taxtank-core 0.33.110 → 0.33.112

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.
@@ -7,6 +7,7 @@ import { RestService } from '../rest';
7
7
  import { PropertyCollection } from '../../../collections';
8
8
  import { PropertyMessagesEnum } from './property-messages.enum';
9
9
  import { UserEventTypeTypeEnum } from '../../../db/Enums/user-event-type-type.enum';
10
+ import orderBy from 'lodash/orderBy';
10
11
  import * as i0 from "@angular/core";
11
12
  /**
12
13
  * @Todo Alex remove functionality related to PropertyShare
@@ -57,10 +58,9 @@ export class PropertyService extends RestService {
57
58
  // property caches child entities to improve performance
58
59
  this.listenCSE(PropertyValuation, (valuations) => {
59
60
  const property = this.getCache().findBy('id', valuations[0].property.id);
60
- if (property.valuation.date <= valuations[0].date) {
61
- property.valuation = valuations[0];
62
- this.updateCache([property], 'put');
63
- }
61
+ property.valuations.push(valuations[0]);
62
+ property.valuations = orderBy(property.valuations, 'date');
63
+ this.updateCache([property], 'put');
64
64
  });
65
65
  this.listenCSE(PropertyCategoryMovement, this.refreshCache);
66
66
  }
@@ -133,4 +133,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
133
133
  type: Inject,
134
134
  args: ['environment']
135
135
  }] }] });
136
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy9odHRwL3Byb3BlcnR5L3Byb3BlcnR5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFLbkQsT0FBTyxFQUFjLEVBQUUsRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUNMLFFBQVEsRUFDUixnQkFBZ0IsRUFDaEIsUUFBUSxFQUFFLHdCQUF3QixFQUNsQyxZQUFZLEVBQ1osYUFBYSxFQUNiLG9CQUFvQixFQUNwQixpQkFBaUIsRUFDbEIsTUFBTSxpQkFBaUIsQ0FBQztBQUV6QixPQUFPLEVBQWMsV0FBVyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ2xELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRzFELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRWhFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDOztBQUVwRjs7OztHQUlHO0FBSUgsTUFBTSxPQUFPLGVBQWdCLFNBQVEsV0FBdUQ7SUFNMUYsWUFBNkMsV0FBZ0I7UUFDM0QsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRHdCLGdCQUFXLEdBQVgsV0FBVyxDQUFLO1FBTDdELGVBQVUsR0FBb0IsUUFBUSxDQUFDO1FBQ3ZDLG9CQUFlLEdBQThCLGtCQUFrQixDQUFDO1FBQ2hFLGdCQUFXLEdBQUcsWUFBWSxDQUFDO1FBQzNCLG9C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LEVBQUUsQ0FBQyxDQUFDO1lBQ2xFLGVBQWUsQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ2xELElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxlQUFlLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUUzQyxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUMsQ0FBQyxFQUNGLFVBQVUsQ0FBQyxDQUFDLEtBQWMsRUFBRSxFQUFFO1lBQzVCLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFeEIsT0FBTyxFQUFFLENBQUMsRUFBRSxhQUFhLEVBQUUsQ0FBQyxFQUFFLGNBQWMsRUFBRSxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUMsRUFBRSxlQUFlLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN6RixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ04sQ0FBQzsrR0EzSVUsZUFBZSxrQkFNTixhQUFhO21IQU50QixlQUFlLGNBRmQsTUFBTTs7NEZBRVAsZUFBZTtrQkFIM0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQU9jLE1BQU07MkJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgUHJvcGVydHkgYXMgUHJvcGVydHlCYXNlLFxuICBQcm9wZXJ0eVN1YnNjcmlwdGlvbiBhcyBQcm9wZXJ0eVN1YnNjcmlwdGlvbkJhc2Vcbn0gZnJvbSAnLi4vLi4vLi4vZGIvTW9kZWxzJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBwbGFpblRvQ2xhc3MgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5pbXBvcnQge1xuICBBcHBFdmVudCxcbiAgQXBwRXZlbnRUeXBlRW51bSwgTm90aWZpY2F0aW9uLFxuICBQcm9wZXJ0eSwgUHJvcGVydHlDYXRlZ29yeU1vdmVtZW50LFxuICBQcm9wZXJ0eVNhbGUsXG4gIFByb3BlcnR5U2hhcmUsXG4gIFByb3BlcnR5U3Vic2NyaXB0aW9uLFxuICBQcm9wZXJ0eVZhbHVhdGlvblxufSBmcm9tICcuLi8uLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgSUV2ZW50TGlzdGVuZXIgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IFJlc3RNZXRob2QsIFJlc3RTZXJ2aWNlIH0gZnJvbSAnLi4vcmVzdCc7XG5pbXBvcnQgeyBQcm9wZXJ0eUNvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi8uLi9jb2xsZWN0aW9ucyc7XG5pbXBvcnQgeyBVc2VyUm9sZXNFbnVtIH0gZnJvbSAndGF4dGFuay1jb3JlL2NvbW1vbic7XG5pbXBvcnQgeyBIdHRwRXJyb3JSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IFByb3BlcnR5TWVzc2FnZXNFbnVtIH0gZnJvbSAnLi9wcm9wZXJ0eS1tZXNzYWdlcy5lbnVtJztcbmltcG9ydCB7IFByb3BlcnR5Q29yZWxvZ2ljU3RhdHNJbnRlcmZhY2UgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvcHJvcGVydHkvcHJvcGVydHktY29yZWxvZ2ljLXN0YXRzLmludGVyZmFjZSc7XG5pbXBvcnQgeyBVc2VyRXZlbnRUeXBlVHlwZUVudW0gfSBmcm9tICcuLi8uLi8uLi9kYi9FbnVtcy91c2VyLWV2ZW50LXR5cGUtdHlwZS5lbnVtJztcblxuLyoqXG4gKiBAVG9kbyBBbGV4IHJlbW92ZSBmdW5jdGlvbmFsaXR5IHJlbGF0ZWQgdG8gUHJvcGVydHlTaGFyZVxuICogQFRPRE8gQWxleCAoVFQtMTc3Nyk6IHJlcGxhY2UgYWxsIGV2ZW50IGxpc3RlbmVycyB3aXRoIHRoZSBuZXcgdGhpcy5saXN0ZW4oKVxuICogU2VydmljZSBmb3Igd29yayB3aXRoIFByb3BlcnR5XG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFByb3BlcnR5U2VydmljZSBleHRlbmRzIFJlc3RTZXJ2aWNlPFByb3BlcnR5QmFzZSwgUHJvcGVydHksIFByb3BlcnR5Q29sbGVjdGlvbj4gaW1wbGVtZW50cyBJRXZlbnRMaXN0ZW5lciB7XG4gIG1vZGVsQ2xhc3M6IHR5cGVvZiBQcm9wZXJ0eSA9IFByb3BlcnR5O1xuICBjb2xsZWN0aW9uQ2xhc3M6IHR5cGVvZiBQcm9wZXJ0eUNvbGxlY3Rpb24gPSBQcm9wZXJ0eUNvbGxlY3Rpb247XG4gIGVuZHBvaW50VXJpID0gJ3Byb3BlcnRpZXMnO1xuICBkaXNhYmxlZE1ldGhvZHM6IFJlc3RNZXRob2RbXSA9IFsnZGVsZXRlQmF0Y2gnXTtcblxuICBjb25zdHJ1Y3RvcihASW5qZWN0KCdlbnZpcm9ubWVudCcpIHByb3RlY3RlZCBlbnZpcm9ubWVudDogYW55KSB7XG4gICAgc3VwZXIoZW52aXJvbm1lbnQpO1xuICAgIHRoaXMubGlzdGVuRXZlbnRzKCk7XG4gICAgdGhpcy5saXN0ZW5Ob3RpZmljYXRpb25zKCk7XG4gIH1cblxuICBnZXQoKTogT2JzZXJ2YWJsZTxQcm9wZXJ0eUNvbGxlY3Rpb24+IHtcbiAgICByZXR1cm4gc3VwZXIuZ2V0KCkucGlwZShtYXAoKHByb3BlcnRpZXMpID0+IHByb3BlcnRpZXMuZ2V0QWN0aXZlKCkpKTtcbiAgfVxuXG4gIGdldEFsbCgpOiBPYnNlcnZhYmxlPFByb3BlcnR5Q29sbGVjdGlvbj4ge1xuICAgIHJldHVybiBzdXBlci5nZXQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAVE9ETyByZW1vdmUgd2hlbiBmb3JlY2FzdCBtb3ZlZCB0byBzZXBhcmF0ZWQgYXBpXG4gICAqL1xuICBwdXQocHJvcGVydHk6IFByb3BlcnR5KTogT2JzZXJ2YWJsZTxQcm9wZXJ0eT4ge1xuICAgIHJldHVybiBzdXBlci5wdXQocHJvcGVydHkpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKCh1cGRhdGVkUHJvcGVydHk6IFByb3BlcnR5KTogUHJvcGVydHkgPT4ge1xuICAgICAgICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5kaXNwYXRjaChuZXcgQXBwRXZlbnQoQXBwRXZlbnRUeXBlRW51bS5QUk9QRVJUWV9VUERBVEVELCBwcm9wZXJ0eSkpO1xuXG4gICAgICAgICAgcmV0dXJuIHVwZGF0ZWRQcm9wZXJ0eTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICBzaGFyZXNpZ2h0Q29ubmVjdChwcm9wZXJ0eTogUHJvcGVydHkpOiBPYnNlcnZhYmxlPFByb3BlcnR5PiB7XG4gICAgcmV0dXJuIHN1cGVyLnB1dChwcm9wZXJ0eSwgYCR7dGhpcy5hcGlVcmx9LyR7cHJvcGVydHkuaWR9L3NoYXJlc2lnaHQtY29ubmVjdGApO1xuICB9XG5cbiAgc2hhcmVzaWdodERpc2Nvbm5lY3QocHJvcGVydHk6IFByb3BlcnR5KTogT2JzZXJ2YWJsZTxQcm9wZXJ0eT4ge1xuICAgIHJldHVybiBzdXBlci5wdXQocHJvcGVydHksIGAke3RoaXMuYXBpVXJsfS8ke3Byb3BlcnR5LmlkfS9zaGFyZXNpZ2h0LWRpc2Nvbm5lY3RgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAVE9ETyBubyByZWZyZXNoIGNhY2hlIHdpdGggdGhpcy51cGRhdGVDYWNoZShbdGhpcy5nZXRDYWNoZSgpLmZpbmRCeSgnaWQnLCBjaGFuZ2UubW9kZWwucHJvcGVydHkuaWQpXSwgJ3B1dCcpO1xuICAgKi9cbiAgbGlzdGVuRXZlbnRzKCk6IHZvaWQge1xuICAgIC8vIHNoYXJlIGludml0ZSBhY2NlcHRlZCBldmVudCBnaXZlcyBhY2Nlc3MgdG8gbmV3IHByb3BlcnR5XG4gICAgdGhpcy5saXN0ZW5DU0UoUHJvcGVydHlTaGFyZSwgdGhpcy5yZWZyZXNoQ2FjaGUsIFsncHV0J10pO1xuICAgIC8vIEBUT0RPIGdldCBmcm9tIHNlcGFyYXRlZCBhcGk/XG4gICAgdGhpcy5saXN0ZW5DU0UoUHJvcGVydHlTYWxlLCB0aGlzLnJlZnJlc2hDYWNoZSwgWydwb3N0JywgJ3B1dCcsICdkZWxldGUnXSk7XG4gICAgLy8gcHJvcGVydHkgY2FjaGVzIGNoaWxkIGVudGl0aWVzIHRvIGltcHJvdmUgcGVyZm9ybWFuY2VcbiAgICB0aGlzLmxpc3RlbkNTRShQcm9wZXJ0eVZhbHVhdGlvbiwgKHZhbHVhdGlvbnM6IFByb3BlcnR5VmFsdWF0aW9uW10pID0+IHtcbiAgICAgIGNvbnN0IHByb3BlcnR5ID0gdGhpcy5nZXRDYWNoZSgpLmZpbmRCeSgnaWQnLCB2YWx1YXRpb25zWzBdLnByb3BlcnR5LmlkKTtcbiAgICAgIGlmIChwcm9wZXJ0eS52YWx1YXRpb24uZGF0ZSA8PSB2YWx1YXRpb25zWzBdLmRhdGUpIHtcbiAgICAgICAgcHJvcGVydHkudmFsdWF0aW9uID0gdmFsdWF0aW9uc1swXTtcbiAgICAgICAgdGhpcy51cGRhdGVDYWNoZShbcHJvcGVydHldLCAncHV0Jyk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5saXN0ZW5DU0UoUHJvcGVydHlDYXRlZ29yeU1vdmVtZW50LCB0aGlzLnJlZnJlc2hDYWNoZSk7XG4gIH1cblxuICBwcml2YXRlIGxpc3Rlbk5vdGlmaWNhdGlvbnMoKTogdm9pZCB7XG4gICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLm9uKEFwcEV2ZW50VHlwZUVudW0uTk9USUZJQ0FUSU9OX0FEREVEKS5zdWJzY3JpYmUoKG5vdGlmaWNhdGlvbjogTm90aWZpY2F0aW9uKTogdm9pZCA9PiB7XG4gICAgICBpZiAoIW5vdGlmaWNhdGlvbi5pc1JlYWQgJiYgbm90aWZpY2F0aW9uLmV2ZW50VHlwZSA9PT0gVXNlckV2ZW50VHlwZVR5cGVFbnVtLlNIQVJFU0lHSFRfSU1QT1JUKSB7XG4gICAgICAgIHRoaXMucmVmcmVzaENhY2hlKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICB1cGRhdGVEZXByZWNpYXRpb25DYWxjdWxhdGlvbihwcm9wZXJ0eTogUHJvcGVydHkpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICBjb25zdCBwcm9wZXJ0eVRvVXBkYXRlOiBQcm9wZXJ0eSA9IHBsYWluVG9DbGFzcyhQcm9wZXJ0eSwgeyBpZDogcHJvcGVydHkuaWQsIGRlcHJlY2lhdGlvbkNhbGN1bGF0aW9uOiBwcm9wZXJ0eS5kZXByZWNpYXRpb25DYWxjdWxhdGlvbiB9KVxuXG4gICAgcmV0dXJuIHRoaXMucHV0KHByb3BlcnR5VG9VcGRhdGUpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKCh1cGRhdGVkUHJvcGVydHk6IFByb3BlcnR5KSA9PiB7XG4gICAgICAgICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLmRpc3BhdGNoKG5ldyBBcHBFdmVudChBcHBFdmVudFR5cGVFbnVtLlBST1BFUlRZX0RFUFJFQ0lBVElPTl9DQUxDVUxBVElPTl9VUERBVEVELCB1cGRhdGVkUHJvcGVydHkpKTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQFRPRE8gbW92ZSB0byBzZXBhcmF0ZWQgYXBpXG4gICAqIEFjdGl2YXRlIGRlYWN0aXZhdGVkIHByb3BlcnR5XG4gICAqL1xuICBhY3RpdmF0ZShwcm9wZXJ0eTogUHJvcGVydHkpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlWMn0vcHJvcGVydHktc3Vic2NyaXB0aW9uc2AsIHsgcHJvcGVydHkgfSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHByb3BlcnR5U3Vic2NyaXB0aW9uQmFzZTogUHJvcGVydHlTdWJzY3JpcHRpb25CYXNlKSA9PiB7XG4gICAgICAgICAgY29uc3QgbmV3UHJvcGVydHlTdWJzY3JpcHRpb246IFByb3BlcnR5U3Vic2NyaXB0aW9uID0gcGxhaW5Ub0NsYXNzKFByb3BlcnR5U3Vic2NyaXB0aW9uLCBwcm9wZXJ0eVN1YnNjcmlwdGlvbkJhc2UpO1xuICAgICAgICAgIGNvbnN0IGFjdGl2YXRlZFByb3BlcnR5OiBQcm9wZXJ0eSA9IHBsYWluVG9DbGFzcyhQcm9wZXJ0eSwgT2JqZWN0LmFzc2lnbih7fSwgcHJvcGVydHksIHsgc3Vic2NyaXB0aW9uczogW25ld1Byb3BlcnR5U3Vic2NyaXB0aW9uXSB9KSk7XG5cbiAgICAgICAgICB0aGlzLnVwZGF0ZUNhY2hlKFthY3RpdmF0ZWRQcm9wZXJ0eV0sICdwdXQnKTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQFRPRE8gbW92ZSB0byBzZXBhcmF0ZWQgYXBpXG4gICAqIERlYWN0aXZhdGUgYWN0aXZhdGVkIHByb3BlcnR5XG4gICAqL1xuICBkZWFjdGl2YXRlKHByb3BlcnR5OiBQcm9wZXJ0eSk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlKGAke3RoaXMuZW52aXJvbm1lbnQuYXBpVjJ9L3Byb3BlcnR5LXN1YnNjcmlwdGlvbnMvJHtwcm9wZXJ0eS5nZXRDdXJyZW50U3Vic2NyaXB0aW9uKCkuaWR9YClcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGRlYWN0aXZhdGVkUHJvcGVydHk6IFByb3BlcnR5ID0gcGxhaW5Ub0NsYXNzKFByb3BlcnR5LCBPYmplY3QuYXNzaWduKHt9LCBwcm9wZXJ0eSwgeyBzdWJzY3JpcHRpb25zOiBbXSB9KSk7XG5cbiAgICAgICAgICB0aGlzLnVwZGF0ZUNhY2hlKFtkZWFjdGl2YXRlZFByb3BlcnR5XSwgJ3B1dCcpO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIGRlbGV0ZShwcm9wZXJ0eTogUHJvcGVydHkpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gc3VwZXIuZGVsZXRlKHByb3BlcnR5KS5waXBlKFxuICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB7XG4gICAgICAgIGlmIChlcnJvci5zdGF0dXMgPT09IDUwMCkge1xuICAgICAgICAgIHRoaXMudG9hc3RTZXJ2aWNlLmVycm9yKFByb3BlcnR5TWVzc2FnZXNFbnVtLkRFTEVURV81MDApO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gZXJyb3IpO1xuICAgICAgfSksXG4gICAgKVxuICB9XG5cbiAgZ2V0Q29yZWxvZ2ljU3RhdHMocHJvcGVydHk6IFByb3BlcnR5KTogT2JzZXJ2YWJsZTxQcm9wZXJ0eUNvcmVsb2dpY1N0YXRzSW50ZXJmYWNlPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8UHJvcGVydHlDb3JlbG9naWNTdGF0c0ludGVyZmFjZT4oYCR7dGhpcy5hcGlVcmx9LyR7cHJvcGVydHkuaWR9L2NvcmVsb2dpYy1zdGF0c2ApXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChzdGF0cykgPT4ge1xuICAgICAgICAgIGNvbnN0IHVwZGF0ZWRQcm9wZXJ0eSA9IHRoaXMuZ2V0Q2FjaGUoKS5maW5kQnkoJ2lkJywgcHJvcGVydHkuaWQpO1xuICAgICAgICAgIHVwZGF0ZWRQcm9wZXJ0eS5jb3JlbG9naWNMYXN0UmVxdWVzdCA9IG5ldyBEYXRlKCk7XG4gICAgICAgICAgdGhpcy51cGRhdGVDYWNoZShbdXBkYXRlZFByb3BlcnR5XSwgJ3B1dCcpO1xuXG4gICAgICAgICAgcmV0dXJuIHN0YXRzO1xuICAgICAgICB9KSxcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IHVua25vd24pID0+IHtcbiAgICAgICAgICB0aGlzLmhhbmRsZUVycm9yKGVycm9yKTtcblxuICAgICAgICAgIHJldHVybiBvZih7IGdyb3d0aFBlcmNlbnQ6IDAsIGxvd01hcmtldFZhbHVlOiAwLCBtYXJrZXRWYWx1ZTogMCwgaGlnaE1hcmtldFZhbHVlOiAwIH0pO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxufVxuIl19
136
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy9odHRwL3Byb3BlcnR5L3Byb3BlcnR5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFLbkQsT0FBTyxFQUFjLEVBQUUsRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUNMLFFBQVEsRUFDUixnQkFBZ0IsRUFDaEIsUUFBUSxFQUFFLHdCQUF3QixFQUVsQyxZQUFZLEVBQ1osYUFBYSxFQUNiLG9CQUFvQixFQUNwQixpQkFBaUIsRUFDbEIsTUFBTSxpQkFBaUIsQ0FBQztBQUV6QixPQUFPLEVBQWMsV0FBVyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ2xELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRTFELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ3BGLE9BQU8sT0FBTyxNQUFNLGdCQUFnQixDQUFDOztBQUVyQzs7OztHQUlHO0FBSUgsTUFBTSxPQUFPLGVBQWdCLFNBQVEsV0FBdUQ7SUFNMUYsWUFBNkMsV0FBZ0I7UUFDM0QsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRHdCLGdCQUFXLEdBQVgsV0FBVyxDQUFLO1FBTDdELGVBQVUsR0FBb0IsUUFBUSxDQUFDO1FBQ3ZDLG9CQUFlLEdBQThCLGtCQUFrQixDQUFDO1FB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RSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ2xFLGVBQWUsQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ2xELElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxlQUFlLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUUzQyxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUMsQ0FBQyxFQUNGLFVBQVUsQ0FBQyxDQUFDLEtBQWMsRUFBRSxFQUFFO1lBQzVCLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFeEIsT0FBTyxFQUFFLENBQUMsRUFBRSxhQUFhLEVBQUUsQ0FBQyxFQUFFLGNBQWMsRUFBRSxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUMsRUFBRSxlQUFlLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN6RixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ04sQ0FBQzsrR0ExSVUsZUFBZSxrQkFNTixhQUFhO21IQU50QixlQUFlLGNBRmQsTUFBTTs7NEZBRVAsZUFBZTtrQkFIM0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQU9jLE1BQU07MkJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgUHJvcGVydHkgYXMgUHJvcGVydHlCYXNlLFxuICBQcm9wZXJ0eVN1YnNjcmlwdGlvbiBhcyBQcm9wZXJ0eVN1YnNjcmlwdGlvbkJhc2Vcbn0gZnJvbSAnLi4vLi4vLi4vZGIvTW9kZWxzJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBwbGFpblRvQ2xhc3MgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5pbXBvcnQge1xuICBBcHBFdmVudCxcbiAgQXBwRXZlbnRUeXBlRW51bSwgTm90aWZpY2F0aW9uLFxuICBQcm9wZXJ0eSwgUHJvcGVydHlDYXRlZ29yeU1vdmVtZW50LFxuICBQcm9wZXJ0eUNvcmVsb2dpY1N0YXRzSW50ZXJmYWNlLFxuICBQcm9wZXJ0eVNhbGUsXG4gIFByb3BlcnR5U2hhcmUsXG4gIFByb3BlcnR5U3Vic2NyaXB0aW9uLFxuICBQcm9wZXJ0eVZhbHVhdGlvblxufSBmcm9tICcuLi8uLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgSUV2ZW50TGlzdGVuZXIgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IFJlc3RNZXRob2QsIFJlc3RTZXJ2aWNlIH0gZnJvbSAnLi4vcmVzdCc7XG5pbXBvcnQgeyBQcm9wZXJ0eUNvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi8uLi9jb2xsZWN0aW9ucyc7XG5pbXBvcnQgeyBIdHRwRXJyb3JSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IFByb3BlcnR5TWVzc2FnZXNFbnVtIH0gZnJvbSAnLi9wcm9wZXJ0eS1tZXNzYWdlcy5lbnVtJztcbmltcG9ydCB7IFVzZXJFdmVudFR5cGVUeXBlRW51bSB9IGZyb20gJy4uLy4uLy4uL2RiL0VudW1zL3VzZXItZXZlbnQtdHlwZS10eXBlLmVudW0nO1xuaW1wb3J0IG9yZGVyQnkgZnJvbSAnbG9kYXNoL29yZGVyQnknO1xuXG4vKipcbiAqIEBUb2RvIEFsZXggcmVtb3ZlIGZ1bmN0aW9uYWxpdHkgcmVsYXRlZCB0byBQcm9wZXJ0eVNoYXJlXG4gKiBAVE9ETyBBbGV4IChUVC0xNzc3KTogcmVwbGFjZSBhbGwgZXZlbnQgbGlzdGVuZXJzIHdpdGggdGhlIG5ldyB0aGlzLmxpc3RlbigpXG4gKiBTZXJ2aWNlIGZvciB3b3JrIHdpdGggUHJvcGVydHlcbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgUHJvcGVydHlTZXJ2aWNlIGV4dGVuZHMgUmVzdFNlcnZpY2U8UHJvcGVydHlCYXNlLCBQcm9wZXJ0eSwgUHJvcGVydHlDb2xsZWN0aW9uPiBpbXBsZW1lbnRzIElFdmVudExpc3RlbmVyIHtcbiAgbW9kZWxDbGFzczogdHlwZW9mIFByb3BlcnR5ID0gUHJvcGVydHk7XG4gIGNvbGxlY3Rpb25DbGFzczogdHlwZW9mIFByb3BlcnR5Q29sbGVjdGlvbiA9IFByb3BlcnR5Q29sbGVjdGlvbjtcbiAgZW5kcG9pbnRVcmkgPSAncHJvcGVydGllcyc7XG4gIGRpc2FibGVkTWV0aG9kczogUmVzdE1ldGhvZFtdID0gWydkZWxldGVCYXRjaCddO1xuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoJ2Vudmlyb25tZW50JykgcHJvdGVjdGVkIGVudmlyb25tZW50OiBhbnkpIHtcbiAgICBzdXBlcihlbnZpcm9ubWVudCk7XG4gICAgdGhpcy5saXN0ZW5FdmVudHMoKTtcbiAgICB0aGlzLmxpc3Rlbk5vdGlmaWNhdGlvbnMoKTtcbiAgfVxuXG4gIGdldCgpOiBPYnNlcnZhYmxlPFByb3BlcnR5Q29sbGVjdGlvbj4ge1xuICAgIHJldHVybiBzdXBlci5nZXQoKS5waXBlKG1hcCgocHJvcGVydGllcykgPT4gcHJvcGVydGllcy5nZXRBY3RpdmUoKSkpO1xuICB9XG5cbiAgZ2V0QWxsKCk6IE9ic2VydmFibGU8UHJvcGVydHlDb2xsZWN0aW9uPiB7XG4gICAgcmV0dXJuIHN1cGVyLmdldCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBUT0RPIHJlbW92ZSB3aGVuIGZvcmVjYXN0IG1vdmVkIHRvIHNlcGFyYXRlZCBhcGlcbiAgICovXG4gIHB1dChwcm9wZXJ0eTogUHJvcGVydHkpOiBPYnNlcnZhYmxlPFByb3BlcnR5PiB7XG4gICAgcmV0dXJuIHN1cGVyLnB1dChwcm9wZXJ0eSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHVwZGF0ZWRQcm9wZXJ0eTogUHJvcGVydHkpOiBQcm9wZXJ0eSA9PiB7XG4gICAgICAgICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLmRpc3BhdGNoKG5ldyBBcHBFdmVudChBcHBFdmVudFR5cGVFbnVtLlBST1BFUlRZX1VQREFURUQsIHByb3BlcnR5KSk7XG5cbiAgICAgICAgICByZXR1cm4gdXBkYXRlZFByb3BlcnR5O1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgfVxuXG4gIHNoYXJlc2lnaHRDb25uZWN0KHByb3BlcnR5OiBQcm9wZXJ0eSk6IE9ic2VydmFibGU8UHJvcGVydHk+IHtcbiAgICByZXR1cm4gc3VwZXIucHV0KHByb3BlcnR5LCBgJHt0aGlzLmFwaVVybH0vJHtwcm9wZXJ0eS5pZH0vc2hhcmVzaWdodC1jb25uZWN0YCk7XG4gIH1cblxuICBzaGFyZXNpZ2h0RGlzY29ubmVjdChwcm9wZXJ0eTogUHJvcGVydHkpOiBPYnNlcnZhYmxlPFByb3BlcnR5PiB7XG4gICAgcmV0dXJuIHN1cGVyLnB1dChwcm9wZXJ0eSwgYCR7dGhpcy5hcGlVcmx9LyR7cHJvcGVydHkuaWR9L3NoYXJlc2lnaHQtZGlzY29ubmVjdGApO1xuICB9XG5cbiAgLyoqXG4gICAqIEBUT0RPIG5vIHJlZnJlc2ggY2FjaGUgd2l0aCB0aGlzLnVwZGF0ZUNhY2hlKFt0aGlzLmdldENhY2hlKCkuZmluZEJ5KCdpZCcsIGNoYW5nZS5tb2RlbC5wcm9wZXJ0eS5pZCldLCAncHV0Jyk7XG4gICAqL1xuICBsaXN0ZW5FdmVudHMoKTogdm9pZCB7XG4gICAgLy8gc2hhcmUgaW52aXRlIGFjY2VwdGVkIGV2ZW50IGdpdmVzIGFjY2VzcyB0byBuZXcgcHJvcGVydHlcbiAgICB0aGlzLmxpc3RlbkNTRShQcm9wZXJ0eVNoYXJlLCB0aGlzLnJlZnJlc2hDYWNoZSwgWydwdXQnXSk7XG4gICAgLy8gQFRPRE8gZ2V0IGZyb20gc2VwYXJhdGVkIGFwaT9cbiAgICB0aGlzLmxpc3RlbkNTRShQcm9wZXJ0eVNhbGUsIHRoaXMucmVmcmVzaENhY2hlLCBbJ3Bvc3QnLCAncHV0JywgJ2RlbGV0ZSddKTtcbiAgICAvLyBwcm9wZXJ0eSBjYWNoZXMgY2hpbGQgZW50aXRpZXMgdG8gaW1wcm92ZSBwZXJmb3JtYW5jZVxuICAgIHRoaXMubGlzdGVuQ1NFKFByb3BlcnR5VmFsdWF0aW9uLCAodmFsdWF0aW9uczogUHJvcGVydHlWYWx1YXRpb25bXSkgPT4ge1xuICAgICAgY29uc3QgcHJvcGVydHkgPSB0aGlzLmdldENhY2hlKCkuZmluZEJ5KCdpZCcsIHZhbHVhdGlvbnNbMF0ucHJvcGVydHkuaWQpO1xuICAgICAgcHJvcGVydHkudmFsdWF0aW9ucy5wdXNoKHZhbHVhdGlvbnNbMF0pO1xuICAgICAgcHJvcGVydHkudmFsdWF0aW9ucyA9IG9yZGVyQnkocHJvcGVydHkudmFsdWF0aW9ucywgJ2RhdGUnKTtcbiAgICAgIHRoaXMudXBkYXRlQ2FjaGUoW3Byb3BlcnR5XSwgJ3B1dCcpO1xuICAgIH0pO1xuICAgIHRoaXMubGlzdGVuQ1NFKFByb3BlcnR5Q2F0ZWdvcnlNb3ZlbWVudCwgdGhpcy5yZWZyZXNoQ2FjaGUpO1xuICB9XG5cbiAgcHJpdmF0ZSBsaXN0ZW5Ob3RpZmljYXRpb25zKCk6IHZvaWQge1xuICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5vbihBcHBFdmVudFR5cGVFbnVtLk5PVElGSUNBVElPTl9BRERFRCkuc3Vic2NyaWJlKChub3RpZmljYXRpb246IE5vdGlmaWNhdGlvbik6IHZvaWQgPT4ge1xuICAgICAgaWYgKCFub3RpZmljYXRpb24uaXNSZWFkICYmIG5vdGlmaWNhdGlvbi5ldmVudFR5cGUgPT09IFVzZXJFdmVudFR5cGVUeXBlRW51bS5TSEFSRVNJR0hUX0lNUE9SVCkge1xuICAgICAgICB0aGlzLnJlZnJlc2hDYWNoZSgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgdXBkYXRlRGVwcmVjaWF0aW9uQ2FsY3VsYXRpb24ocHJvcGVydHk6IFByb3BlcnR5KTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgY29uc3QgcHJvcGVydHlUb1VwZGF0ZTogUHJvcGVydHkgPSBwbGFpblRvQ2xhc3MoUHJvcGVydHksIHsgaWQ6IHByb3BlcnR5LmlkLCBkZXByZWNpYXRpb25DYWxjdWxhdGlvbjogcHJvcGVydHkuZGVwcmVjaWF0aW9uQ2FsY3VsYXRpb24gfSlcblxuICAgIHJldHVybiB0aGlzLnB1dChwcm9wZXJ0eVRvVXBkYXRlKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgodXBkYXRlZFByb3BlcnR5OiBQcm9wZXJ0eSkgPT4ge1xuICAgICAgICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5kaXNwYXRjaChuZXcgQXBwRXZlbnQoQXBwRXZlbnRUeXBlRW51bS5QUk9QRVJUWV9ERVBSRUNJQVRJT05fQ0FMQ1VMQVRJT05fVVBEQVRFRCwgdXBkYXRlZFByb3BlcnR5KSk7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEBUT0RPIG1vdmUgdG8gc2VwYXJhdGVkIGFwaVxuICAgKiBBY3RpdmF0ZSBkZWFjdGl2YXRlZCBwcm9wZXJ0eVxuICAgKi9cbiAgYWN0aXZhdGUocHJvcGVydHk6IFByb3BlcnR5KTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuZW52aXJvbm1lbnQuYXBpVjJ9L3Byb3BlcnR5LXN1YnNjcmlwdGlvbnNgLCB7IHByb3BlcnR5IH0pXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChwcm9wZXJ0eVN1YnNjcmlwdGlvbkJhc2U6IFByb3BlcnR5U3Vic2NyaXB0aW9uQmFzZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IG5ld1Byb3BlcnR5U3Vic2NyaXB0aW9uOiBQcm9wZXJ0eVN1YnNjcmlwdGlvbiA9IHBsYWluVG9DbGFzcyhQcm9wZXJ0eVN1YnNjcmlwdGlvbiwgcHJvcGVydHlTdWJzY3JpcHRpb25CYXNlKTtcbiAgICAgICAgICBjb25zdCBhY3RpdmF0ZWRQcm9wZXJ0eTogUHJvcGVydHkgPSBwbGFpblRvQ2xhc3MoUHJvcGVydHksIE9iamVjdC5hc3NpZ24oe30sIHByb3BlcnR5LCB7IHN1YnNjcmlwdGlvbnM6IFtuZXdQcm9wZXJ0eVN1YnNjcmlwdGlvbl0gfSkpO1xuXG4gICAgICAgICAgdGhpcy51cGRhdGVDYWNoZShbYWN0aXZhdGVkUHJvcGVydHldLCAncHV0Jyk7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEBUT0RPIG1vdmUgdG8gc2VwYXJhdGVkIGFwaVxuICAgKiBEZWFjdGl2YXRlIGFjdGl2YXRlZCBwcm9wZXJ0eVxuICAgKi9cbiAgZGVhY3RpdmF0ZShwcm9wZXJ0eTogUHJvcGVydHkpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZShgJHt0aGlzLmVudmlyb25tZW50LmFwaVYyfS9wcm9wZXJ0eS1zdWJzY3JpcHRpb25zLyR7cHJvcGVydHkuZ2V0Q3VycmVudFN1YnNjcmlwdGlvbigpLmlkfWApXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKCgpID0+IHtcbiAgICAgICAgICBjb25zdCBkZWFjdGl2YXRlZFByb3BlcnR5OiBQcm9wZXJ0eSA9IHBsYWluVG9DbGFzcyhQcm9wZXJ0eSwgT2JqZWN0LmFzc2lnbih7fSwgcHJvcGVydHksIHsgc3Vic2NyaXB0aW9uczogW10gfSkpO1xuXG4gICAgICAgICAgdGhpcy51cGRhdGVDYWNoZShbZGVhY3RpdmF0ZWRQcm9wZXJ0eV0sICdwdXQnKTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cblxuICBkZWxldGUocHJvcGVydHk6IFByb3BlcnR5KTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIHN1cGVyLmRlbGV0ZShwcm9wZXJ0eSkucGlwZShcbiAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4ge1xuICAgICAgICBpZiAoZXJyb3Iuc3RhdHVzID09PSA1MDApIHtcbiAgICAgICAgICB0aGlzLnRvYXN0U2VydmljZS5lcnJvcihQcm9wZXJ0eU1lc3NhZ2VzRW51bS5ERUxFVEVfNTAwKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IGVycm9yKTtcbiAgICAgIH0pLFxuICAgIClcbiAgfVxuXG4gIGdldENvcmVsb2dpY1N0YXRzKHByb3BlcnR5OiBQcm9wZXJ0eSk6IE9ic2VydmFibGU8UHJvcGVydHlDb3JlbG9naWNTdGF0c0ludGVyZmFjZT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFByb3BlcnR5Q29yZWxvZ2ljU3RhdHNJbnRlcmZhY2U+KGAke3RoaXMuYXBpVXJsfS8ke3Byb3BlcnR5LmlkfS9jb3JlbG9naWMtc3RhdHNgKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgoc3RhdHMpID0+IHtcbiAgICAgICAgICBjb25zdCB1cGRhdGVkUHJvcGVydHkgPSB0aGlzLmdldENhY2hlKCkuZmluZEJ5KCdpZCcsIHByb3BlcnR5LmlkKTtcbiAgICAgICAgICB1cGRhdGVkUHJvcGVydHkuY29yZWxvZ2ljTGFzdFJlcXVlc3QgPSBuZXcgRGF0ZSgpO1xuICAgICAgICAgIHRoaXMudXBkYXRlQ2FjaGUoW3VwZGF0ZWRQcm9wZXJ0eV0sICdwdXQnKTtcblxuICAgICAgICAgIHJldHVybiBzdGF0cztcbiAgICAgICAgfSksXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiB1bmtub3duKSA9PiB7XG4gICAgICAgICAgdGhpcy5oYW5kbGVFcnJvcihlcnJvcik7XG5cbiAgICAgICAgICByZXR1cm4gb2YoeyBncm93dGhQZXJjZW50OiAwLCBsb3dNYXJrZXRWYWx1ZTogMCwgbWFya2V0VmFsdWU6IDAsIGhpZ2hNYXJrZXRWYWx1ZTogMCB9KTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cbn1cbiJdfQ==
@@ -128,7 +128,7 @@ export class RestService extends DataService {
128
128
  post(model, path = this.apiUrl) {
129
129
  this.handleAccessError('post');
130
130
  return this.http.post(path, classToPlain(model))
131
- .pipe(map((response) => {
131
+ .pipe(first(), map((response) => {
132
132
  const result = this.createModelInstance(response);
133
133
  if (!this.mercureTopic) {
134
134
  this.handleResponse([result], 'post');
@@ -142,7 +142,7 @@ export class RestService extends DataService {
142
142
  postBatch(models) {
143
143
  this.handleAccessError('postBatch');
144
144
  return this.http.post(this.apiUrl, classToPlain(models))
145
- .pipe(map((response) => {
145
+ .pipe(first(), map((response) => {
146
146
  const result = response.map((item) => this.createModelInstance(item));
147
147
  if (!this.mercureTopic) {
148
148
  this.handleResponse(result, 'post');
@@ -156,7 +156,7 @@ export class RestService extends DataService {
156
156
  put(model, path = `${this.apiUrl}/${model.id}`) {
157
157
  this.handleAccessError('put');
158
158
  return this.http.put(path, classToPlain(model))
159
- .pipe(map((response) => {
159
+ .pipe(first(), map((response) => {
160
160
  const result = this.createModelInstance(response);
161
161
  if (!this.mercureTopic) {
162
162
  this.handleResponse([result], 'put');
@@ -170,7 +170,7 @@ export class RestService extends DataService {
170
170
  putBatch(models) {
171
171
  this.handleAccessError('putBatch');
172
172
  return this.http.put(this.apiUrl, classToPlain(models))
173
- .pipe(map((response) => {
173
+ .pipe(first(), map((response) => {
174
174
  const result = response.map((item) => this.createModelInstance(item));
175
175
  if (!this.mercureTopic) {
176
176
  this.handleResponse(result, 'put');
@@ -184,7 +184,7 @@ export class RestService extends DataService {
184
184
  delete(model, path = `${this.apiUrl}/${model.id}`) {
185
185
  this.handleAccessError('delete');
186
186
  return this.http.delete(path)
187
- .pipe(map(() => {
187
+ .pipe(first(), map(() => {
188
188
  if (!this.mercureTopic) {
189
189
  this.handleResponse([model], 'delete');
190
190
  }
@@ -196,7 +196,7 @@ export class RestService extends DataService {
196
196
  deleteBatch(models) {
197
197
  this.handleAccessError('deleteBatch');
198
198
  return this.http.post(`${this.apiUrl}/delete`, classToPlain(models))
199
- .pipe(map(() => {
199
+ .pipe(first(), map(() => {
200
200
  if (!this.mercureTopic) {
201
201
  this.handleResponse(models, 'delete');
202
202
  }
@@ -208,7 +208,7 @@ export class RestService extends DataService {
208
208
  deleteBatchV2(models) {
209
209
  this.handleAccessError('deleteBatch');
210
210
  return this.http.delete(`${this.apiUrl}`, { body: { ids: models.map(model => model.id) } })
211
- .pipe(map(() => {
211
+ .pipe(first(), map(() => {
212
212
  if (!this.mercureTopic) {
213
213
  this.handleResponse(models, 'delete');
214
214
  }
@@ -353,4 +353,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
353
353
  type: Inject,
354
354
  args: ['environment']
355
355
  }] }] });
356
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL3NlcnZpY2VzL2h0dHAvcmVzdC9yZXN0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNELE9BQU8sRUFBYyxhQUFhLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqRSxPQUFPLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsVUFBVSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDckUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLFVBQVUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNqRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFakQsT0FBTyxFQUFpQixlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBR25ELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzNDLE9BQU8sS0FBSyxNQUFNLGNBQWMsQ0FBQztBQUNqQyxPQUFPLFlBQVksTUFBTSxxQkFBcUIsQ0FBQztBQUMvQyxPQUFPLElBQUksTUFBTSxhQUFhLENBQUM7QUFDL0IsT0FBTyxTQUFTLE1BQU0sa0JBQWtCLENBQUM7QUFDekMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7O0FBRWxFOzs7Ozs7O0dBT0c7QUFJSCxNQUFNLE9BQWdCLFdBQ3BCLFNBQVEsV0FBOEM7SUF5Q3RELFlBQTZDLFdBQWdCO1FBQzNELEtBQUssRUFBRSxDQUFDO1FBRG1DLGdCQUFXLEdBQVgsV0FBVyxDQUFLO1FBbEM3RDs7V0FFRztRQUNPLGlCQUFZLEdBQW1DLElBQUksYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRTlFOzs7O1dBSUc7UUFDSCxvQkFBZSxHQUFpQixFQUFFLENBQUM7UUFDekIsZUFBVSxHQUFlLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM1QyxpQkFBWSxHQUFpQixNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDbEQsU0FBSSxHQUFlLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN0QywyQkFBc0IsR0FBMkIsTUFBTSxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFDMUY7OztXQUdHO1FBQ08sZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFFOUIsVUFBSyxHQUFvQixFQUFFLENBQUM7UUFFNUI7OztXQUdHO1FBQ08sb0JBQWUsR0FBRyxLQUFLLENBQUM7UUFTaEMsNkNBQTZDO1FBQzdDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxFQUFFLEdBQUcsbUJBQW1CLEVBQUUsR0FBRyxJQUFJLENBQUMsMEJBQTBCLEVBQUUsRUFBRSxDQUFDO0lBQzVGLENBQUM7SUFFRCxJQUFjLE1BQU07UUFDbEIsT0FBTyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN6RCxDQUFDO0lBRUQsUUFBUSxDQUFDLElBQVcsRUFBRSxJQUFJLEdBQUcsS0FBSztRQUNoQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXJCLElBQUksSUFBSSxFQUFFO1lBQ1IsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3BDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0gsWUFBWTtRQUNWLElBQUksQ0FBQyxLQUFLLEdBQUcsU0FBUyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUNiLENBQUM7SUFFRDs7T0FFRztJQUNILHlCQUF5QjtRQUN2QixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNqRixDQUFDO0lBRUQ7O09BRUc7SUFDSCxLQUFLLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsS0FBSyxHQUFHLElBQUksRUFBRSxXQUFXLEdBQUcsRUFBRTtRQUN0RCxJQUFJLEtBQUssRUFBRTtZQUNULCtFQUErRTtZQUMvRSxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ25CO1FBRUQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFDO2FBQ3BDLElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxRQUEyQixFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUM1RixHQUFHLENBQUMsQ0FBQyxRQUFxQixFQUFFLEVBQUU7WUFDNUIsSUFBSSxLQUFLLEVBQUU7Z0JBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7YUFDL0I7WUFFRCxPQUFPLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3ZFLENBQUMsQ0FBQyxFQUNGLFVBQVUsQ0FBQyxDQUFDLEtBQWMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUN4RCxDQUFDO0lBQ04sQ0FBQztJQUVELFVBQVUsQ0FBQyxXQUFXLEdBQUcsRUFBRTtRQUN6QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLENBQUM7YUFDM0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFVBQTJCLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRCxHQUFHLENBQUMsT0FBZSxJQUFJLENBQUMsTUFBTTtRQUM1QixJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFOUIsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUNwQixPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQ3BFO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDZixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO1NBQzVDO1FBRUQsT0FBTyxJQUFJLENBQUMseUJBQXlCLEVBQUUsQ0FBQztJQUMxQyxDQUFDO0lBRUQsS0FBSyxDQUFDLElBQVksRUFBRSxNQUFXO1FBQzdCLE9BQU8sSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM3RSxDQUFDO0lBRUQsUUFBUTtRQUNOLE9BQU8sSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxVQUEyQixFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNqRixDQUFDO0lBRUQsVUFBVSxDQUFDLEVBQVU7UUFDbkIsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLE1BQU0sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELFFBQVE7UUFDTixPQUFPLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsVUFBMkIsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNyRixDQUFDO0lBRUQsVUFBVSxDQUFDLElBQVksRUFBRSxNQUFXO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFVBQTJCLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDbkcsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSxDQUFDLEtBQVksRUFBRSxPQUFlLElBQUksQ0FBQyxNQUFNO1FBQzNDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUUvQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDN0MsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLFFBQWdCLEVBQUUsRUFBRTtZQUN2QixNQUFNLE1BQU0sR0FBVSxJQUFJLENBQUMsbUJBQW1CLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDekQsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUU7Z0JBQ3RCLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQzthQUN2QztZQUVELE9BQU8sTUFBTSxDQUFDO1FBQ2hCLENBQUMsQ0FBQyxFQUNGLFVBQVUsQ0FBQyxDQUFDLEtBQWMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUN4RCxDQUFDO0lBQ04sQ0FBQztJQUVEOztPQUVHO0lBQ0gsU0FBUyxDQUFDLE1BQWU7UUFDdkIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRXBDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDckQsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLFFBQWtCLEVBQUUsRUFBRTtZQUN6QixNQUFNLE1BQU0sR0FBWSxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBWSxFQUFTLEVBQUUsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUM5RixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRTtnQkFDdEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7YUFDckM7WUFFRCxPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDLENBQUMsRUFDRixVQUFVLENBQUMsQ0FBQyxLQUFjLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FDeEQsQ0FBQztJQUNOLENBQUM7SUFFRDs7T0FFRztJQUNILEdBQUcsQ0FBQyxLQUFZLEVBQUUsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsRUFBRSxFQUFFO1FBQ25ELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUU5QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDNUMsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLFFBQWdCLEVBQUUsRUFBRTtZQUN2QixNQUFNLE1BQU0sR0FBVSxJQUFJLENBQUMsbUJBQW1CLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDekQsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUU7Z0JBQ3RCLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQzthQUN0QztZQUVELE9BQU8sTUFBTSxDQUFDO1FBQ2hCLENBQUMsQ0FBQyxFQUNGLFVBQVUsQ0FBQyxDQUFDLEtBQWMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUN4RCxDQUFDO0lBQ04sQ0FBQztJQUVEOztPQUVHO0lBQ0gsUUFBUSxDQUFDLE1BQWU7UUFDdEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRW5DLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDcEQsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLFFBQWtCLEVBQUUsRUFBRTtZQUN6QixNQUFNLE1BQU0sR0FBWSxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBWSxFQUFTLEVBQUUsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUM5RixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRTtnQkFDdEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7YUFDcEM7WUFFRCxPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ04sQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLEtBQVksRUFBRSxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxFQUFFLEVBQUU7UUFDdEQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRWpDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO2FBQzFCLElBQUksQ0FDSCxHQUFHLENBQUMsR0FBRyxFQUFFO1lBQ1AsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUU7Z0JBQ3RCLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQzthQUN4QztRQUNILENBQUMsQ0FBQyxFQUNGLFVBQVUsQ0FBQyxDQUFDLEtBQWMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUN4RCxDQUFDO0lBQ04sQ0FBQztJQUVEOztPQUVHO0lBQ0gsV0FBVyxDQUFDLE1BQWU7UUFDekIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRXRDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxTQUFTLEVBQUUsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQ2pFLElBQUksQ0FDSCxHQUFHLENBQUMsR0FBRyxFQUFFO1lBQ1AsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUU7Z0JBQ3RCLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDO2FBQ3ZDO1FBQ0gsQ0FBQyxDQUFDLEVBQ0YsVUFBVSxDQUFDLENBQUMsS0FBYyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQ3hELENBQUM7SUFDTixDQUFDO0lBRUQ7O09BRUc7SUFDSCxhQUFhLENBQUMsTUFBZTtRQUMzQixJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxDQUFDLENBQUM7UUFFdEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQzthQUN4RixJQUFJLENBQ0gsR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUNQLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFO2dCQUN0QixJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQzthQUN2QztRQUNILENBQUMsQ0FBQyxFQUNGLFVBQVUsQ0FBQyxDQUFDLEtBQWMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUN4RCxDQUFDO0lBQ04sQ0FBQztJQUVEOztPQUVHO0lBQ08sMEJBQTBCO1FBQ2xDLE9BQU8sRUFBRSxDQUFBO0lBQ1gsQ0FBQztJQUNEOzs7OztPQUtHO0lBQ0gsV0FBVyxDQUFDLEtBQWM7UUFDeEIsSUFBSSxLQUFLLFlBQVksaUJBQWlCLEVBQUU7WUFDdEMsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFO2dCQUN4QixJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFO29CQUN0QixJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2lCQUM3QztxQkFBTTtvQkFDTCxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQTBCLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztpQkFDbkc7YUFDRjtpQkFBTTtnQkFDTCxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLDRCQUE0QixDQUFDLENBQUM7YUFDL0Y7U0FDRjtRQUVELE9BQU8sVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRDs7T0FFRztJQUNPLGNBQWMsQ0FBQyxRQUFpQixFQUFFLE1BQWtCO1FBQzVELElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxLQUFLLFNBQVMsRUFBRTtZQUNqQyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztTQUNwQztRQUVELHlDQUF5QztRQUN6QyxJQUFJLFFBQVEsQ0FBQyxDQUFDLENBQUMsWUFBWSxlQUFlLEVBQUU7WUFDMUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsUUFBd0MsQ0FBQyxDQUFDO1NBQ3RFO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ08sV0FBVyxDQUFDLEtBQWMsRUFBRSxNQUFrQjtRQUN0RCxJQUFJLEtBQXNCLENBQUM7UUFFM0IsUUFBUSxNQUFNLEVBQUU7WUFDZCxLQUFLLE1BQU07Z0JBQ1QsS0FBSyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUM7Z0JBQ3BGLE1BQU07WUFFUixLQUFLLEtBQUs7Z0JBQ1IsMEJBQTBCO2dCQUMxQixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBVyxFQUFFLEVBQUU7b0JBQzVCLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDcEQsQ0FBQyxDQUFDLENBQUM7Z0JBQ0gsTUFBTTtZQUVSLEtBQUssUUFBUTtnQkFDWCxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFXLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUN2RSxNQUFNO1lBRVIsY0FBYztZQUNkLHdFQUF3RTtTQUN6RTtRQUVELElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRDs7T0FFRztJQUNPLGFBQWEsQ0FBQyxNQUFrQixFQUFFLEtBQXdCO1FBQ2xFLE1BQU0sU0FBUyxHQUFXLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQy9ELElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxTQUFTLENBQUMsSUFBSSxTQUFTLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDekUsQ0FBQztJQUVEOzs7T0FHRztJQUNLLGlCQUFpQixDQUFDLE1BQWtCO1FBQzFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUMxQyxPQUFPO1NBQ1I7UUFFRCxNQUFNLElBQUksS0FBSyxDQUFDLFVBQVUsTUFBTSx5QkFBeUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3BGLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDTyxTQUFTLENBQUMsVUFBa0MsRUFBRSxRQUFrQixFQUFFLFVBQXdCLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxRQUFRLENBQUM7UUFDM0gsUUFBUSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFL0IsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQWtCLEVBQUUsRUFBRTtZQUNyQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUF1QixFQUFFLEVBQUU7Z0JBQ3JHLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNqQixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVEOztPQUVHO0lBQ0gsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRTtZQUN0QixPQUFPLElBQUksQ0FBQztTQUNiO1FBRUQsT0FBTyxDQUFDLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDdEYsQ0FBQztJQUVEOztPQUVHO0lBQ0gsU0FBUztRQUNQLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3RCLE9BQU87U0FDUjtRQUVELElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFJLENBQ3hDLEdBQUcsQ0FBQyxDQUFDLFFBQWdCLEVBQUUsRUFBRTtZQUN2QixJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDL0MsSUFBSSxNQUFrQixDQUFDO1lBQ3ZCLElBQUksS0FBSyxDQUFDLEVBQUUsRUFBRTtnQkFDWixNQUFNLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO2FBQ3JEO2lCQUFNO2dCQUNMLE1BQU0sR0FBRyxRQUFRLENBQUM7Z0JBQ2xCLHdGQUF3RjtnQkFDeEYsS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQzthQUM5RDtZQUVELE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFDM0IsQ0FBQyxDQUFDLENBQ0gsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUNyQixJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUNwRCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7K0dBM1ptQixXQUFXLGtCQTBDWCxhQUFhO21IQTFDYixXQUFXLGNBRm5CLE1BQU07OzRGQUVFLFdBQVc7a0JBSGhDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkEyQ2MsTUFBTTsyQkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFJlcGxheVN1YmplY3QsIG9mLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBmaXJzdCwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBFdmVudERpc3BhdGNoZXJTZXJ2aWNlLCBTc2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZXZlbnQnO1xuaW1wb3J0IHsgY2xhc3NUb1BsYWluIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInO1xuaW1wb3J0IHsgQ29sbGVjdGlvbiB9IGZyb20gJy4uLy4uLy4uL2NvbGxlY3Rpb25zJztcbmltcG9ydCB7IEFic3RyYWN0TW9kZWwsIE9ic2VydmFibGVNb2RlbCB9IGZyb20gJy4uLy4uLy4uL2RiL01vZGVscyc7XG5pbXBvcnQgeyBBcHBFdmVudDIgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgdG9BcnJheSB9IGZyb20gJy4uLy4uLy4uL2Z1bmN0aW9ucy9hcnJheSc7XG5pbXBvcnQgeyBSZXN0TWV0aG9kIH0gZnJvbSAnLi9yZXN0LW1ldGhvZC50eXBlJztcbmltcG9ydCB7IEh0dHBNZXRob2QgfSBmcm9tICcuL2h0dHAtbWV0aG9kLnR5cGUnO1xuaW1wb3J0IHsgRGF0YVNlcnZpY2UgfSBmcm9tICcuLi8uLi9kYXRhLnNlcnZpY2UnO1xuaW1wb3J0IHsgVXNlclJvbGVzRW51bSB9IGZyb20gJ3RheHRhbmstY29yZS9jb21tb24nO1xuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdG9hc3QnO1xuaW1wb3J0IG1lcmdlIGZyb20gJ2xvZGFzaC9tZXJnZSc7XG5pbXBvcnQgaW50ZXJzZWN0aW9uIGZyb20gJ2xvZGFzaC9pbnRlcnNlY3Rpb24nO1xuaW1wb3J0IGxhc3QgZnJvbSAnbG9kYXNoL2xhc3QnO1xuaW1wb3J0IGNsb25lRGVlcCBmcm9tICdsb2Rhc2gvY2xvbmVEZWVwJztcbmltcG9ydCB7IEhUVFBfRVJST1JfTUVTU0FHRVMgfSBmcm9tICcuL2h0dHAtZXJyb3ItbWVzc2FnZXMuY29uc3QnO1xuXG4vKipcbiAqIEBUT0RPIHJlZmFjdG9yIHRvIGJlaGF2aW9yIHN1YmplY3Q/XG4gKiBBYnN0cmFjdCBiYXNlIHNlcnZpY2UgdGhhdCBpbXBsZW1lbnRzIGNvbW1vbiBzZXJ2aWNlcyBmdW5jdGlvbmFsaXR5XG4gKiBhbmQgZGVzY3JpYmUgYWJzdHJhY3QgbWV0aG9kcy9wcm9wZXJ0aWVzIHRoYXQgaGF2ZSB0byBiZSBpbXBsZW1lbnRlZCBpbiBjaGlsZCBzZXJ2aWNlc1xuICogTW9kZWwgLSBlbnRpdHkgc2VydmljZSBpcyB3b3JraW5nIHdpdGhcbiAqIEJhc2VNb2RlbCAtIGJhc2UgZW50aXR5IG1vZGVsIHRoYXQgZXh0ZW5kcyBieSBNb2RlbFxuICogQ29sbGVjdGlvbk1vZGVsIC0gZW50aXR5IGNvbGxlY3Rpb24gY2xhc3NcbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUmVzdFNlcnZpY2U8QmFzZU1vZGVsLCBNb2RlbCBleHRlbmRzIEFic3RyYWN0TW9kZWwsIENvbGxlY3Rpb25Nb2RlbCBleHRlbmRzIENvbGxlY3Rpb248TW9kZWw+PlxuICBleHRlbmRzIERhdGFTZXJ2aWNlPEJhc2VNb2RlbCwgTW9kZWwsIENvbGxlY3Rpb25Nb2RlbD4ge1xuXG4gIC8qKlxuICAgKiBVcmwgcGFydCBmb3Igc2VydmljZSBlbnRpdHkgQVBJXG4gICAqL1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgZW5kcG9pbnRVcmk6IHN0cmluZztcblxuICAvKipcbiAgICogU3ViamVjdCBmb3Igc2VydmljZSBjYWNoZVxuICAgKi9cbiAgcHJvdGVjdGVkIGNhY2hlU3ViamVjdDogUmVwbGF5U3ViamVjdDxDb2xsZWN0aW9uTW9kZWw+ID0gbmV3IFJlcGxheVN1YmplY3QoMSk7XG5cbiAgLyoqXG4gICAqIExpc3Qgb2YgbWV0aG9kcyB1bmF2YWlsYWJsZSBmb3IgY3VycmVudCBBUElcbiAgICogQFRPRE8gQWxleDogYWRkIGFuZCBoYW5kbGUgZW5hYmxlZCBtZXRob2RzIHRvb1xuICAgKiBAVE9ETyBBbGV4OiBkaXNhYmxlIGJhdGNoIGJ5IGRlZmF1bHRcbiAgICovXG4gIGRpc2FibGVkTWV0aG9kczogUmVzdE1ldGhvZFtdID0gW107XG4gIHByb3RlY3RlZCBzc2VTZXJ2aWNlOiBTc2VTZXJ2aWNlID0gaW5qZWN0KFNzZVNlcnZpY2UpO1xuICBwcm90ZWN0ZWQgdG9hc3RTZXJ2aWNlOiBUb2FzdFNlcnZpY2UgPSBpbmplY3QoVG9hc3RTZXJ2aWNlKTtcbiAgcHJvdGVjdGVkIGh0dHA6IEh0dHBDbGllbnQgPSBpbmplY3QoSHR0cENsaWVudCk7XG4gIHByb3RlY3RlZCBldmVudERpc3BhdGNoZXJTZXJ2aWNlOiBFdmVudERpc3BhdGNoZXJTZXJ2aWNlID0gaW5qZWN0KEV2ZW50RGlzcGF0Y2hlclNlcnZpY2UpO1xuICAvKipcbiAgICogYWRkcyBuZXcgZW50aXRpZXMgdG8gdGhlIGJlZ2lubmluZyB3aGVuIHRydWVcbiAgICogQFRPRE8gbWFrZSB0cnVlIGJ5IGRlZmF1bHQgd2hlbiBhbGwgc2VydmljZXMgcmVmYWN0b3JlZFxuICAgKi9cbiAgcHJvdGVjdGVkIG9yZGVyQnlEZXNjID0gZmFsc2U7XG5cbiAgcm9sZXM6IFVzZXJSb2xlc0VudW1bXSA9IFtdO1xuICBtZXJjdXJlVG9waWM6IHN0cmluZztcbiAgLyoqXG4gICAqIGZsYWcgdG8gdXNlIGVycm9yIG1lc3NhZ2VzIGZyb20gYXBpIG9yIGRlZmF1bHQgb25lc1xuICAgKiBAVE9ETzogVFQtNDY0MiBjaGVjayBjdXN0b21IdHRwRXJyb3JNZXNzYWdlcyBmaXggY2hhbmdlIHRvIGJhY2tlbmQgZXJyb3JzXG4gICAqL1xuICBwcm90ZWN0ZWQgdXNlQmFja2VuZEVycm9yID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIG1hcHBpbmcgd2l0aCBIVFRQIGVycm9ycyBjb2RlcyBhbmQgZ2VuZXJhbCBtZXNzYWdlc1xuICAgKi9cbiAgcHJvdGVjdGVkIGh0dHBFcnJvck1lc3NhZ2VzOiB7W2tleTogbnVtYmVyXTogc3RyaW5nfTtcblxuICBjb25zdHJ1Y3RvcihASW5qZWN0KCdlbnZpcm9ubWVudCcpIHByb3RlY3RlZCBlbnZpcm9ubWVudDogYW55KSB7XG4gICAgc3VwZXIoKTtcbiAgICAvLyBAVE9ETyB1cGdyYWRlIHRvIGluY2x1ZGUgc3VjY2VzcyBtZXNzYWdlcz9cbiAgICB0aGlzLmh0dHBFcnJvck1lc3NhZ2VzID0geyAuLi5IVFRQX0VSUk9SX01FU1NBR0VTLCAuLi50aGlzLmdldEN1c3RvbUh0dHBFcnJvck1lc3NhZ2VzKCkgfTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgYXBpVXJsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke3RoaXMuZW52aXJvbm1lbnQuYXBpVjJ9LyR7dGhpcy5lbmRwb2ludFVyaX1gO1xuICB9XG5cbiAgc2V0Q2FjaGUoZGF0YTogYW55W10sIG5leHQgPSBmYWxzZSk6IHZvaWQge1xuICAgIHN1cGVyLnNldENhY2hlKGRhdGEpO1xuXG4gICAgaWYgKG5leHQpIHtcbiAgICAgIHRoaXMuY2FjaGVTdWJqZWN0Lm5leHQodGhpcy5jYWNoZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJlZnJlc2ggY2FjaGUgd2l0aCBhY3R1YWwgYmFja2VuZCBkYXRhXG4gICAqL1xuICByZWZyZXNoQ2FjaGUoKTogdm9pZCB7XG4gICAgdGhpcy5jYWNoZSA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLmdldCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIHBlcmZvcm0gYSBzaGFsbG93IGNvcHkgb2YgdGhlIGVtaXR0ZWQgZGF0YSB0byBtYWtlIGl0IGltbXV0YWJsZVxuICAgKi9cbiAgZ2V0Q2FjaGVTdWJqZWN0T2JzZXJ2YWJsZSgpOiBPYnNlcnZhYmxlPENvbGxlY3Rpb25Nb2RlbD4ge1xuICAgIHJldHVybiB0aGlzLmNhY2hlU3ViamVjdC5hc09ic2VydmFibGUoKS5waXBlKG1hcCgoY2FjaGUpID0+IGNsb25lRGVlcChjYWNoZSkpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgZGF0YSBmcm9tIGJhY2tlbmQgYW5kIGZpbGwgdGhlIGNhY2hlXG4gICAqL1xuICBmZXRjaChwYXRoID0gdGhpcy5hcGlVcmwsIGNhY2hlID0gdHJ1ZSwgcXVlcnlQYXJhbXMgPSB7fSk6IE9ic2VydmFibGU8Q29sbGVjdGlvbk1vZGVsPiB7XG4gICAgaWYgKGNhY2hlKSB7XG4gICAgICAvLyBTZXQgY2FjaGUgYXMgZW1wdHkgY29sbGVjdGlvbiB0byBhdm9pZCBtdWx0aXBsZSByZXF1ZXN0cyBiZWZvcmUgY2FjaGUgZmlsbGVkXG4gICAgICB0aGlzLnNldENhY2hlKFtdKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChwYXRoLCBxdWVyeVBhcmFtcylcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHJlc3BvbnNlOiBvYmplY3QgfCBvYmplY3RbXSkgPT4gQXJyYXkuaXNBcnJheShyZXNwb25zZSkgPyByZXNwb25zZSA6IHRvQXJyYXkocmVzcG9uc2UpKSxcbiAgICAgICAgbWFwKChyZXNwb25zZTogQmFzZU1vZGVsW10pID0+IHtcbiAgICAgICAgICBpZiAoY2FjaGUpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0Q2FjaGUocmVzcG9uc2UsIHRydWUpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZUNvbGxlY3Rpb25JbnN0YW5jZSh0aGlzLmNvbGxlY3Rpb25DbGFzcywgcmVzcG9uc2UpO1xuICAgICAgICB9KSxcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IHVua25vd24pID0+IHRoaXMuaGFuZGxlRXJyb3IoZXJyb3IpKVxuICAgICAgKTtcbiAgfVxuXG4gIGZldGNoRmlyc3QocXVlcnlQYXJhbXMgPSB7fSk6IE9ic2VydmFibGU8TW9kZWw+IHtcbiAgICByZXR1cm4gdGhpcy5mZXRjaCh0aGlzLmFwaVVybCwgZmFsc2UsIHsgcGFyYW1zOiBxdWVyeVBhcmFtcyB9KVxuICAgICAgLnBpcGUobWFwKChjb2xsZWN0aW9uOiBDb2xsZWN0aW9uTW9kZWwpID0+IGNvbGxlY3Rpb24uZmlyc3QpKTtcbiAgfVxuXG4gIGdldChwYXRoOiBzdHJpbmcgPSB0aGlzLmFwaVVybCk6IE9ic2VydmFibGU8Q29sbGVjdGlvbk1vZGVsPiB7XG4gICAgdGhpcy5oYW5kbGVBY2Nlc3NFcnJvcignZ2V0Jyk7XG5cbiAgICBpZiAoIXRoaXMuaGFzUm9sZXMoKSkge1xuICAgICAgcmV0dXJuIG9mKHRoaXMuY3JlYXRlQ29sbGVjdGlvbkluc3RhbmNlKHRoaXMuY29sbGVjdGlvbkNsYXNzLCBbXSkpO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5jYWNoZSkge1xuICAgICAgdGhpcy5mZXRjaChwYXRoKS5waXBlKGZpcnN0KCkpLnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmdldENhY2hlU3ViamVjdE9ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldEJ5KHBhdGg6IHN0cmluZywgdmFsdWVzOiBhbnkpOiBPYnNlcnZhYmxlPENvbGxlY3Rpb25Nb2RlbD4ge1xuICAgIHJldHVybiB0aGlzLmdldCgpLnBpcGUobWFwKChwcm9qZWN0cykgPT4gcHJvamVjdHMuZmlsdGVyQnkocGF0aCwgdmFsdWVzKSkpO1xuICB9XG5cbiAgZ2V0Rmlyc3QoKTogT2JzZXJ2YWJsZTxNb2RlbD4ge1xuICAgIHJldHVybiB0aGlzLmdldCgpLnBpcGUobWFwKChjb2xsZWN0aW9uOiBDb2xsZWN0aW9uTW9kZWwpID0+IGNvbGxlY3Rpb24uZmlyc3QpKTtcbiAgfVxuXG4gIGhhc0luQ2FjaGUoaWQ6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuZ2V0Q2FjaGUoKT8uZmluZEJ5KCdpZCcsIGlkKTtcbiAgfVxuXG4gIGdldEFycmF5KCk6IE9ic2VydmFibGU8TW9kZWxbXT4ge1xuICAgIHJldHVybiB0aGlzLmdldCgpLnBpcGUobWFwKChjb2xsZWN0aW9uOiBDb2xsZWN0aW9uTW9kZWwpID0+IGNvbGxlY3Rpb24udG9BcnJheSgpKSk7XG4gIH1cblxuICBnZXRBcnJheUJ5KHBhdGg6IHN0cmluZywgdmFsdWVzOiBhbnkpOiBPYnNlcnZhYmxlPE1vZGVsW10+IHtcbiAgICByZXR1cm4gdGhpcy5nZXRCeShwYXRoLCB2YWx1ZXMpLnBpcGUobWFwKChjb2xsZWN0aW9uOiBDb2xsZWN0aW9uTW9kZWwpID0+IGNvbGxlY3Rpb24udG9BcnJheSgpKSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgbmV3IE1vZGVsIGluc3RhbmNlIGluIGRhdGFiYXNlXG4gICAqL1xuICBwb3N0KG1vZGVsOiBNb2RlbCwgcGF0aDogc3RyaW5nID0gdGhpcy5hcGlVcmwpOiBPYnNlcnZhYmxlPE1vZGVsPiB7XG4gICAgdGhpcy5oYW5kbGVBY2Nlc3NFcnJvcigncG9zdCcpO1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHBhdGgsIGNsYXNzVG9QbGFpbihtb2RlbCkpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChyZXNwb25zZTogb2JqZWN0KSA9PiB7XG4gICAgICAgICAgY29uc3QgcmVzdWx0OiBNb2RlbCA9IHRoaXMuY3JlYXRlTW9kZWxJbnN0YW5jZShyZXNwb25zZSk7XG4gICAgICAgICAgaWYgKCF0aGlzLm1lcmN1cmVUb3BpYykge1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVSZXNwb25zZShbcmVzdWx0XSwgJ3Bvc3QnKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9KSxcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IHVua25vd24pID0+IHRoaXMuaGFuZGxlRXJyb3IoZXJyb3IpKVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgbXVsdGlwbGUgbmV3IE1vZGVsIGluc3RhbmNlcyBpbiBkYXRhYmFzZVxuICAgKi9cbiAgcG9zdEJhdGNoKG1vZGVsczogTW9kZWxbXSk6IE9ic2VydmFibGU8TW9kZWxbXT4ge1xuICAgIHRoaXMuaGFuZGxlQWNjZXNzRXJyb3IoJ3Bvc3RCYXRjaCcpO1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHRoaXMuYXBpVXJsLCBjbGFzc1RvUGxhaW4obW9kZWxzKSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHJlc3BvbnNlOiBvYmplY3RbXSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHJlc3VsdDogTW9kZWxbXSA9IHJlc3BvbnNlLm1hcCgoaXRlbTogb2JqZWN0KTogTW9kZWwgPT4gdGhpcy5jcmVhdGVNb2RlbEluc3RhbmNlKGl0ZW0pKTtcbiAgICAgICAgICBpZiAoIXRoaXMubWVyY3VyZVRvcGljKSB7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZVJlc3BvbnNlKHJlc3VsdCwgJ3Bvc3QnKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9KSxcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IHVua25vd24pID0+IHRoaXMuaGFuZGxlRXJyb3IoZXJyb3IpKVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGFuZ2UgYW4gZXhpc3RpbmcgTW9kZWwgaW5zdGFuY2UgaW4gZGF0YWJhc2VcbiAgICovXG4gIHB1dChtb2RlbDogTW9kZWwsIHBhdGggPSBgJHt0aGlzLmFwaVVybH0vJHttb2RlbC5pZH1gKTogT2JzZXJ2YWJsZTxNb2RlbD4ge1xuICAgIHRoaXMuaGFuZGxlQWNjZXNzRXJyb3IoJ3B1dCcpO1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQocGF0aCwgY2xhc3NUb1BsYWluKG1vZGVsKSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHJlc3BvbnNlOiBvYmplY3QpID0+IHtcbiAgICAgICAgICBjb25zdCByZXN1bHQ6IE1vZGVsID0gdGhpcy5jcmVhdGVNb2RlbEluc3RhbmNlKHJlc3BvbnNlKTtcbiAgICAgICAgICBpZiAoIXRoaXMubWVyY3VyZVRvcGljKSB7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZVJlc3BvbnNlKFtyZXN1bHRdLCAncHV0Jyk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfSksXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiB1bmtub3duKSA9PiB0aGlzLmhhbmRsZUVycm9yKGVycm9yKSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQ2hhbmdlIG11bHRpcGxlIGV4aXN0aW5nIE1vZGVsIGluc3RhbmNlcyBpbiBkYXRhYmFzZVxuICAgKi9cbiAgcHV0QmF0Y2gobW9kZWxzOiBNb2RlbFtdKTogT2JzZXJ2YWJsZTxNb2RlbFtdPiB7XG4gICAgdGhpcy5oYW5kbGVBY2Nlc3NFcnJvcigncHV0QmF0Y2gnKTtcblxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0KHRoaXMuYXBpVXJsLCBjbGFzc1RvUGxhaW4obW9kZWxzKSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHJlc3BvbnNlOiBvYmplY3RbXSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHJlc3VsdDogTW9kZWxbXSA9IHJlc3BvbnNlLm1hcCgoaXRlbTogb2JqZWN0KTogTW9kZWwgPT4gdGhpcy5jcmVhdGVNb2RlbEluc3RhbmNlKGl0ZW0pKTtcbiAgICAgICAgICBpZiAoIXRoaXMubWVyY3VyZVRvcGljKSB7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZVJlc3BvbnNlKHJlc3VsdCwgJ3B1dCcpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSBhIE1vZGVsIGluc3RhbmNlIGZyb20gZGF0YWJhc2VcbiAgICovXG4gIGRlbGV0ZShtb2RlbDogTW9kZWwsIHBhdGggPSBgJHt0aGlzLmFwaVVybH0vJHttb2RlbC5pZH1gKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgdGhpcy5oYW5kbGVBY2Nlc3NFcnJvcignZGVsZXRlJyk7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZShwYXRoKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgoKSA9PiB7XG4gICAgICAgICAgaWYgKCF0aGlzLm1lcmN1cmVUb3BpYykge1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVSZXNwb25zZShbbW9kZWxdLCAnZGVsZXRlJyk7XG4gICAgICAgICAgfVxuICAgICAgICB9KSxcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IHVua25vd24pID0+IHRoaXMuaGFuZGxlRXJyb3IoZXJyb3IpKVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmUgbXVsdGlwbGUgTW9kZWwgaW5zdGFuY2VzIGZyb20gZGF0YWJhc2VcbiAgICovXG4gIGRlbGV0ZUJhdGNoKG1vZGVsczogTW9kZWxbXSk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHRoaXMuaGFuZGxlQWNjZXNzRXJyb3IoJ2RlbGV0ZUJhdGNoJyk7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5hcGlVcmx9L2RlbGV0ZWAsIGNsYXNzVG9QbGFpbihtb2RlbHMpKVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgoKSA9PiB7XG4gICAgICAgICAgaWYgKCF0aGlzLm1lcmN1cmVUb3BpYykge1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVSZXNwb25zZShtb2RlbHMsICdkZWxldGUnKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pLFxuICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogdW5rbm93bikgPT4gdGhpcy5oYW5kbGVFcnJvcihlcnJvcikpXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEB0b2RvOiByZW1vdmUgZGVsZXRlQmF0Y2ggYWZ0ZXIgYmFja2VuZCByZWZhY3RvclxuICAgKi9cbiAgZGVsZXRlQmF0Y2hWMihtb2RlbHM6IE1vZGVsW10pIHtcbiAgICB0aGlzLmhhbmRsZUFjY2Vzc0Vycm9yKCdkZWxldGVCYXRjaCcpO1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGUoYCR7dGhpcy5hcGlVcmx9YCwgeyBib2R5OiB7IGlkczogbW9kZWxzLm1hcChtb2RlbCA9PiBtb2RlbC5pZCkgfSB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgoKSA9PiB7XG4gICAgICAgICAgaWYgKCF0aGlzLm1lcmN1cmVUb3BpYykge1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVSZXNwb25zZShtb2RlbHMsICdkZWxldGUnKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pLFxuICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogdW5rbm93bikgPT4gdGhpcy5oYW5kbGVFcnJvcihlcnJvcikpXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIG1ldGhvZCB3aXRoIG1lc3NhZ2VzIHRoYXQgY2FuIGJlIHJlZGVmaW5lZCBpbiBvdGhlciBjbGFzc2VzIHRvIGN1c3RvbWl6ZSBodHRwRXJyb3JNZXNzYWdlc1xuICAgKi9cbiAgcHJvdGVjdGVkIGdldEN1c3RvbUh0dHBFcnJvck1lc3NhZ2VzKCk6IFJlY29yZDxudW1iZXIsIHN0cmluZz4ge1xuICAgIHJldHVybiB7fVxuICB9XG4gIC8qKlxuICAgKiBIYW5kbGUgcmVzcG9uc2UgZXJyb3JzIC0gc2hvd3MgZXJyb3IgaW4gdG9hc3RcbiAgICogYW5kIHRocm93cyBlcnJvciBmdXJ0aGVyXG4gICAqIEBwYXJhbSBlcnJvciAtIGFueSBiYWNrZW5kIGVycm9yXG4gICAqIEB0aHJvd3MgSHR0cEVycm9yUmVzcG9uc2UgfCBFcnJvciAtIEFsd2F5cyB0aHJvd3MgdGhlIGVycm9yIGZ1cnRoZXIgYXMgYW4gT2JzZXJ2YWJsZTxuZXZlcj5cbiAgICovXG4gIGhhbmRsZUVycm9yKGVycm9yOiB1bmtub3duKSB7XG4gICAgaWYgKGVycm9yIGluc3RhbmNlb2YgSHR0cEVycm9yUmVzcG9uc2UpIHtcbiAgICAgIGlmICh0aGlzLnVzZUJhY2tlbmRFcnJvcikge1xuICAgICAgICBpZiAoZXJyb3IuZXJyb3IuZGV0YWlsKSB7XG4gICAgICAgICAgdGhpcy50b2FzdFNlcnZpY2UuZXJyb3IoZXJyb3IuZXJyb3IuZGV0YWlsKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnRvYXN0U2VydmljZS5lcnJvcihlcnJvci5lcnJvci5tYXAoKGVycm9yOiB7IG1lc3NhZ2U6IHN0cmluZyB9KSA9PiBlcnJvci5tZXNzYWdlKS5qb2luKCcgJykpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnRvYXN0U2VydmljZS5lcnJvcih0aGlzLmh0dHBFcnJvck1lc3NhZ2VzW2Vycm9yLnN0YXR1c10gfHwgJ1VuZXhwZWN0ZWQgZXJyb3Igb2NjdXJyZWQuJyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gZXJyb3IpO1xuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZSByZXNwb25zZSBkYXRhIC0gdXBkYXRlIGNhY2hlIGFuZCBkaXNwYXRjaCBldmVudCBpZiBpdCBpcyBuZWVkZWRcbiAgICovXG4gIHByb3RlY3RlZCBoYW5kbGVSZXNwb25zZShyZXNwb25zZTogTW9kZWxbXSwgbWV0aG9kOiBIdHRwTWV0aG9kKSB7XG4gICAgaWYgKHRoaXMuZ2V0Q2FjaGUoKSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLnVwZGF0ZUNhY2hlKHJlc3BvbnNlLCBtZXRob2QpO1xuICAgIH1cblxuICAgIC8vIGRpc3BhdGNoIGV2ZW50IGZvciBpbnRlcmVzdGVkIHNlcnZpY2VzXG4gICAgaWYgKHJlc3BvbnNlWzBdIGluc3RhbmNlb2YgT2JzZXJ2YWJsZU1vZGVsKSB7XG4gICAgICB0aGlzLmRpc3BhdGNoRXZlbnQobWV0aG9kLCByZXNwb25zZSBhcyB1bmtub3duIGFzIE9ic2VydmFibGVNb2RlbFtdKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIGNhY2hlIHdpdGggcGFzc2VkIGl0ZW1zLiBBZGQvVXBkYXRlIGRldGVjdHMgYXV0b21hdGljYWxseSwgRGVsZXRlIHZpYSBvcHRpb25hbCBmbGFnXG4gICAqL1xuICBwcm90ZWN0ZWQgdXBkYXRlQ2FjaGUoaXRlbXM6IE1vZGVsW10sIG1ldGhvZDogSHR0cE1ldGhvZCk6IHZvaWQge1xuICAgIGxldCBjYWNoZTogQ29sbGVjdGlvbk1vZGVsO1xuXG4gICAgc3dpdGNoIChtZXRob2QpIHtcbiAgICAgIGNhc2UgJ3Bvc3QnOlxuICAgICAgICBjYWNoZSA9IHRoaXMub3JkZXJCeURlc2MgPyB0aGlzLmNhY2hlLnVuc2hpZnQoLi4uaXRlbXMpIDogdGhpcy5jYWNoZS5wdXNoKC4uLml0ZW1zKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ3B1dCc6XG4gICAgICAgIC8vIEBUT0RPIEFsZXggb2xkIGluc3RhbmNlXG4gICAgICAgIGl0ZW1zLmZvckVhY2goKGl0ZW06IE1vZGVsKSA9PiB7XG4gICAgICAgICAgY2FjaGUgPSB0aGlzLmNhY2hlLnJlcGxhY2VCeSgnaWQnLCBpdGVtLmlkLCBpdGVtKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlICdkZWxldGUnOlxuICAgICAgICBjYWNoZSA9IHRoaXMuY2FjaGUucmVtb3ZlQnkoJ2lkJywgaXRlbXMubWFwKChpdGVtOiBNb2RlbCkgPT4gaXRlbS5pZCkpO1xuICAgICAgICBicmVhaztcblxuICAgICAgLy8gY2FzZSAnZ2V0JzpcbiAgICAgIC8vICAgY2FjaGUgPSB0aGlzLmNyZWF0ZUNvbGxlY3Rpb25JbnN0YW5jZSh0aGlzLmNvbGxlY3Rpb25DbGFzcywgaXRlbXMpO1xuICAgIH1cblxuICAgIHRoaXMuc2V0Q2FjaGUoY2FjaGUudG9BcnJheSgpLCB0cnVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZSBhbmQgZGlzcGF0Y2ggcmVzdCBldmVudFxuICAgKi9cbiAgcHJvdGVjdGVkIGRpc3BhdGNoRXZlbnQobWV0aG9kOiBIdHRwTWV0aG9kLCBpdGVtczogT2JzZXJ2YWJsZU1vZGVsW10pOiB2b2lkIHtcbiAgICBjb25zdCBldmVudE5hbWU6IHN0cmluZyA9IHRoaXMubW9kZWxDbGFzcy5nZXRFdmVudE5hbWUobWV0aG9kKTtcbiAgICB0aGlzLmV2ZW50RGlzcGF0Y2hlclNlcnZpY2UuZGlzcGF0Y2gyKG5ldyBBcHBFdmVudDIoZXZlbnROYW1lLCBpdGVtcykpO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIG1ldGhvZCBpcyBub3QgZGlzYWJsZWQuIFRocm93IGV4Y2VwdGlvbiBvdGhlcndpc2UuXG4gICAqIFNvbWUgZW50aXRpZXMgZG9lcyBub3QgaGF2ZSBlbmRwb2ludHMgZm9yIGFsbCBtZXRob2RzLlxuICAgKi9cbiAgcHJpdmF0ZSBoYW5kbGVBY2Nlc3NFcnJvcihtZXRob2Q6IFJlc3RNZXRob2QpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWRNZXRob2RzLmluY2x1ZGVzKG1ldGhvZCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aHJvdyBuZXcgRXJyb3IoYE1ldGhvZCAke21ldGhvZH0oKSBpcyBub3QgYWxsb3dlZCBmb3IgJHt0aGlzLmNvbnN0cnVjdG9yLm5hbWV9YCk7XG4gIH1cblxuICAvKipcbiAgICogU3Vic2NyaWJlIHRvIGh0dHAgZXZlbnRzIGFuZCBydW4gY2FsbGJhY2suXG4gICAqIENTRSAtIENsZWludCBTZW50IEV2ZW50c1xuICAgKiBAcGFyYW0gbW9kZWxDbGFzc1xuICAgKiBAcGFyYW0gbWV0aG9kcyBUaGUgbGlzdCBvZiBodHRwIG1ldGhvZHMgc2hvdWxkIGJlIGxpc3RlbmVkIGZvclxuICAgKiBAcGFyYW0gY2FsbGJhY2sgVGhlIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVuIGV2ZW50IHRyaWdnZXJlZFxuICAgKi9cbiAgcHJvdGVjdGVkIGxpc3RlbkNTRShtb2RlbENsYXNzOiB0eXBlb2YgT2JzZXJ2YWJsZU1vZGVsLCBjYWxsYmFjazogRnVuY3Rpb24sIG1ldGhvZHM6IEh0dHBNZXRob2RbXSA9IFsncG9zdCcsICdwdXQnLCAnZGVsZXRlJ10pOiB2b2lkIHtcbiAgICBjYWxsYmFjayA9IGNhbGxiYWNrLmJpbmQodGhpcyk7XG5cbiAgICBtZXRob2RzLmZvckVhY2goKG1ldGhvZDogSHR0cE1ldGhvZCkgPT4ge1xuICAgICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLm9uMihtb2RlbENsYXNzLmdldEV2ZW50TmFtZShtZXRob2QpKS5zdWJzY3JpYmUoKGRhdGE6IE9ic2VydmFibGVNb2RlbFtdKSA9PiB7XG4gICAgICAgIGNhbGxiYWNrKGRhdGEpO1xuICAgICAgfSk7XG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBjaGVjayBpZiB1c2VyIGhhcyBzdWJzY3JpcHRpb24gcm9sZSB0byBhY2Nlc3MgYXBpXG4gICAqL1xuICBoYXNSb2xlcygpOiBib29sZWFuIHtcbiAgICBpZiAoIXRoaXMucm9sZXMubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gISFpbnRlcnNlY3Rpb24oSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgncm9sZXMnKSksIHRoaXMucm9sZXMpLmxlbmd0aDtcbiAgfVxuXG4gIC8qKlxuICAgKiBMaXN0ZW4gZm9yIFNlcnZlci1TZW50IEV2ZW50cyAoU1NFKSBvbiB0aGUgc3BlY2lmaWVkIE1lcmN1cmUgdG9waWNcbiAgICovXG4gIGxpc3RlblNTRSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMubWVyY3VyZVRvcGljKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zc2VTZXJ2aWNlLm9uKHRoaXMubWVyY3VyZVRvcGljKS5waXBlKFxuICAgICAgbWFwKChyZXNwb25zZTogb2JqZWN0KSA9PiB7XG4gICAgICAgIGxldCBtb2RlbCA9IHRoaXMuY3JlYXRlTW9kZWxJbnN0YW5jZShyZXNwb25zZSk7XG4gICAgICAgIGxldCBtZXRob2Q6IEh0dHBNZXRob2Q7XG4gICAgICAgIGlmIChtb2RlbC5pZCkge1xuICAgICAgICAgIG1ldGhvZCA9IHRoaXMuaGFzSW5DYWNoZShtb2RlbC5pZCkgPyAncHV0JyA6ICdwb3N0JztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBtZXRob2QgPSAnZGVsZXRlJztcbiAgICAgICAgICAvLyB3ZSBnb3QgZW1wdHkgYm9keSB3aGVuIGl0ZW0gZGVsZXRlZCwgc28gd2Ugc2hvdWxkIGdldCBpZCBmcm9tIEFwaSBQbGF0Zm9ybSBkYXRhIChAaWQpXG4gICAgICAgICAgbW9kZWwgPSBtZXJnZShtb2RlbCwgeyBpZDogK2xhc3QobW9kZWxbJ0BpZCddLnNwbGl0KCcvJykpIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHsgbWV0aG9kLCBtb2RlbCB9O1xuICAgICAgfSlcbiAgICApLnN1YnNjcmliZSgoY2hhbmdlKSA9PiB7XG4gICAgICB0aGlzLmhhbmRsZVJlc3BvbnNlKFtjaGFuZ2UubW9kZWxdLCBjaGFuZ2UubWV0aG9kKVxuICAgIH0pO1xuICB9XG59XG4iXX0=
356
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL3NlcnZpY2VzL2h0dHAvcmVzdC9yZXN0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNELE9BQU8sRUFBYyxhQUFhLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqRSxPQUFPLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsVUFBVSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDckUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLFVBQVUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNqRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFakQsT0FBTyxFQUFpQixlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBR25ELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzNDLE9BQU8sS0FBSyxNQUFNLGNBQWMsQ0FBQztBQUNqQyxPQUFPLFlBQVksTUFBTSxxQkFBcUIsQ0FBQztBQUMvQyxPQUFPLElBQUksTUFBTSxhQUFhLENBQUM7QUFDL0IsT0FBTyxTQUFTLE1BQU0sa0JBQWtCLENBQUM7QUFDekMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7O0FB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UUFDM0IsQ0FBQyxDQUFDLENBQ0gsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUNyQixJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUNwRCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7K0dBbGFtQixXQUFXLGtCQTBDWCxhQUFhO21IQTFDYixXQUFXLGNBRm5CLE1BQU07OzRGQUVFLFdBQVc7a0JBSGhDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkEyQ2MsTUFBTTsyQkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFJlcGxheVN1YmplY3QsIG9mLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBmaXJzdCwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBFdmVudERpc3BhdGNoZXJTZXJ2aWNlLCBTc2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZXZlbnQnO1xuaW1wb3J0IHsgY2xhc3NUb1BsYWluIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInO1xuaW1wb3J0IHsgQ29sbGVjdGlvbiB9IGZyb20gJy4uLy4uLy4uL2NvbGxlY3Rpb25zJztcbmltcG9ydCB7IEFic3RyYWN0TW9kZWwsIE9ic2VydmFibGVNb2RlbCB9IGZyb20gJy4uLy4uLy4uL2RiL01vZGVscyc7XG5pbXBvcnQgeyBBcHBFdmVudDIgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgdG9BcnJheSB9IGZyb20gJy4uLy4uLy4uL2Z1bmN0aW9ucy9hcnJheSc7XG5pbXBvcnQgeyBSZXN0TWV0aG9kIH0gZnJvbSAnLi9yZXN0LW1ldGhvZC50eXBlJztcbmltcG9ydCB7IEh0dHBNZXRob2QgfSBmcm9tICcuL2h0dHAtbWV0aG9kLnR5cGUnO1xuaW1wb3J0IHsgRGF0YVNlcnZpY2UgfSBmcm9tICcuLi8uLi9kYXRhLnNlcnZpY2UnO1xuaW1wb3J0IHsgVXNlclJvbGVzRW51bSB9IGZyb20gJ3RheHRhbmstY29yZS9jb21tb24nO1xuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdG9hc3QnO1xuaW1wb3J0IG1lcmdlIGZyb20gJ2xvZGFzaC9tZXJnZSc7XG5pbXBvcnQgaW50ZXJzZWN0aW9uIGZyb20gJ2xvZGFzaC9pbnRlcnNlY3Rpb24nO1xuaW1wb3J0IGxhc3QgZnJvbSAnbG9kYXNoL2xhc3QnO1xuaW1wb3J0IGNsb25lRGVlcCBmcm9tICdsb2Rhc2gvY2xvbmVEZWVwJztcbmltcG9ydCB7IEhUVFBfRVJST1JfTUVTU0FHRVMgfSBmcm9tICcuL2h0dHAtZXJyb3ItbWVzc2FnZXMuY29uc3QnO1xuXG4vKipcbiAqIEBUT0RPIHJlZmFjdG9yIHRvIGJlaGF2aW9yIHN1YmplY3Q/XG4gKiBBYnN0cmFjdCBiYXNlIHNlcnZpY2UgdGhhdCBpbXBsZW1lbnRzIGNvbW1vbiBzZXJ2aWNlcyBmdW5jdGlvbmFsaXR5XG4gKiBhbmQgZGVzY3JpYmUgYWJzdHJhY3QgbWV0aG9kcy9wcm9wZXJ0aWVzIHRoYXQgaGF2ZSB0byBiZSBpbXBsZW1lbnRlZCBpbiBjaGlsZCBzZXJ2aWNlc1xuICogTW9kZWwgLSBlbnRpdHkgc2VydmljZSBpcyB3b3JraW5nIHdpdGhcbiAqIEJhc2VNb2RlbCAtIGJhc2UgZW50aXR5IG1vZGVsIHRoYXQgZXh0ZW5kcyBieSBNb2RlbFxuICogQ29sbGVjdGlvbk1vZGVsIC0gZW50aXR5IGNvbGxlY3Rpb24gY2xhc3NcbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUmVzdFNlcnZpY2U8QmFzZU1vZGVsLCBNb2RlbCBleHRlbmRzIEFic3RyYWN0TW9kZWwsIENvbGxlY3Rpb25Nb2RlbCBleHRlbmRzIENvbGxlY3Rpb248TW9kZWw+PlxuICBleHRlbmRzIERhdGFTZXJ2aWNlPEJhc2VNb2RlbCwgTW9kZWwsIENvbGxlY3Rpb25Nb2RlbD4ge1xuXG4gIC8qKlxuICAgKiBVcmwgcGFydCBmb3Igc2VydmljZSBlbnRpdHkgQVBJXG4gICAqL1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgZW5kcG9pbnRVcmk6IHN0cmluZztcblxuICAvKipcbiAgICogU3ViamVjdCBmb3Igc2VydmljZSBjYWNoZVxuICAgKi9cbiAgcHJvdGVjdGVkIGNhY2hlU3ViamVjdDogUmVwbGF5U3ViamVjdDxDb2xsZWN0aW9uTW9kZWw+ID0gbmV3IFJlcGxheVN1YmplY3QoMSk7XG5cbiAgLyoqXG4gICAqIExpc3Qgb2YgbWV0aG9kcyB1bmF2YWlsYWJsZSBmb3IgY3VycmVudCBBUElcbiAgICogQFRPRE8gQWxleDogYWRkIGFuZCBoYW5kbGUgZW5hYmxlZCBtZXRob2RzIHRvb1xuICAgKiBAVE9ETyBBbGV4OiBkaXNhYmxlIGJhdGNoIGJ5IGRlZmF1bHRcbiAgICovXG4gIGRpc2FibGVkTWV0aG9kczogUmVzdE1ldGhvZFtdID0gW107XG4gIHByb3RlY3RlZCBzc2VTZXJ2aWNlOiBTc2VTZXJ2aWNlID0gaW5qZWN0KFNzZVNlcnZpY2UpO1xuICBwcm90ZWN0ZWQgdG9hc3RTZXJ2aWNlOiBUb2FzdFNlcnZpY2UgPSBpbmplY3QoVG9hc3RTZXJ2aWNlKTtcbiAgcHJvdGVjdGVkIGh0dHA6IEh0dHBDbGllbnQgPSBpbmplY3QoSHR0cENsaWVudCk7XG4gIHByb3RlY3RlZCBldmVudERpc3BhdGNoZXJTZXJ2aWNlOiBFdmVudERpc3BhdGNoZXJTZXJ2aWNlID0gaW5qZWN0KEV2ZW50RGlzcGF0Y2hlclNlcnZpY2UpO1xuICAvKipcbiAgICogYWRkcyBuZXcgZW50aXRpZXMgdG8gdGhlIGJlZ2lubmluZyB3aGVuIHRydWVcbiAgICogQFRPRE8gbWFrZSB0cnVlIGJ5IGRlZmF1bHQgd2hlbiBhbGwgc2VydmljZXMgcmVmYWN0b3JlZFxuICAgKi9cbiAgcHJvdGVjdGVkIG9yZGVyQnlEZXNjID0gZmFsc2U7XG5cbiAgcm9sZXM6IFVzZXJSb2xlc0VudW1bXSA9IFtdO1xuICBtZXJjdXJlVG9waWM6IHN0cmluZztcbiAgLyoqXG4gICAqIGZsYWcgdG8gdXNlIGVycm9yIG1lc3NhZ2VzIGZyb20gYXBpIG9yIGRlZmF1bHQgb25lc1xuICAgKiBAVE9ETzogVFQtNDY0MiBjaGVjayBjdXN0b21IdHRwRXJyb3JNZXNzYWdlcyBmaXggY2hhbmdlIHRvIGJhY2tlbmQgZXJyb3JzXG4gICAqL1xuICBwcm90ZWN0ZWQgdXNlQmFja2VuZEVycm9yID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIG1hcHBpbmcgd2l0aCBIVFRQIGVycm9ycyBjb2RlcyBhbmQgZ2VuZXJhbCBtZXNzYWdlc1xuICAgKi9cbiAgcHJvdGVjdGVkIGh0dHBFcnJvck1lc3NhZ2VzOiB7W2tleTogbnVtYmVyXTogc3RyaW5nfTtcblxuICBjb25zdHJ1Y3RvcihASW5qZWN0KCdlbnZpcm9ubWVudCcpIHByb3RlY3RlZCBlbnZpcm9ubWVudDogYW55KSB7XG4gICAgc3VwZXIoKTtcbiAgICAvLyBAVE9ETyB1cGdyYWRlIHRvIGluY2x1ZGUgc3VjY2VzcyBtZXNzYWdlcz9cbiAgICB0aGlzLmh0dHBFcnJvck1lc3NhZ2VzID0geyAuLi5IVFRQX0VSUk9SX01FU1NBR0VTLCAuLi50aGlzLmdldEN1c3RvbUh0dHBFcnJvck1lc3NhZ2VzKCkgfTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgYXBpVXJsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke3RoaXMuZW52aXJvbm1lbnQuYXBpVjJ9LyR7dGhpcy5lbmRwb2ludFVyaX1gO1xuICB9XG5cbiAgc2V0Q2FjaGUoZGF0YTogYW55W10sIG5leHQgPSBmYWxzZSk6IHZvaWQge1xuICAgIHN1cGVyLnNldENhY2hlKGRhdGEpO1xuXG4gICAgaWYgKG5leHQpIHtcbiAgICAgIHRoaXMuY2FjaGVTdWJqZWN0Lm5leHQodGhpcy5jYWNoZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJlZnJlc2ggY2FjaGUgd2l0aCBhY3R1YWwgYmFja2VuZCBkYXRhXG4gICAqL1xuICByZWZyZXNoQ2FjaGUoKTogdm9pZCB7XG4gICAgdGhpcy5jYWNoZSA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLmdldCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIHBlcmZvcm0gYSBzaGFsbG93IGNvcHkgb2YgdGhlIGVtaXR0ZWQgZGF0YSB0byBtYWtlIGl0IGltbXV0YWJsZVxuICAgKi9cbiAgZ2V0Q2FjaGVTdWJqZWN0T2JzZXJ2YWJsZSgpOiBPYnNlcnZhYmxlPENvbGxlY3Rpb25Nb2RlbD4ge1xuICAgIHJldHVybiB0aGlzLmNhY2hlU3ViamVjdC5hc09ic2VydmFibGUoKS5waXBlKG1hcCgoY2FjaGUpID0+IGNsb25lRGVlcChjYWNoZSkpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgZGF0YSBmcm9tIGJhY2tlbmQgYW5kIGZpbGwgdGhlIGNhY2hlXG4gICAqL1xuICBmZXRjaChwYXRoID0gdGhpcy5hcGlVcmwsIGNhY2hlID0gdHJ1ZSwgcXVlcnlQYXJhbXMgPSB7fSk6IE9ic2VydmFibGU8Q29sbGVjdGlvbk1vZGVsPiB7XG4gICAgaWYgKGNhY2hlKSB7XG4gICAgICAvLyBTZXQgY2FjaGUgYXMgZW1wdHkgY29sbGVjdGlvbiB0byBhdm9pZCBtdWx0aXBsZSByZXF1ZXN0cyBiZWZvcmUgY2FjaGUgZmlsbGVkXG4gICAgICB0aGlzLnNldENhY2hlKFtdKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChwYXRoLCBxdWVyeVBhcmFtcylcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKHJlc3BvbnNlOiBvYmplY3QgfCBvYmplY3RbXSkgPT4gQXJyYXkuaXNBcnJheShyZXNwb25zZSkgPyByZXNwb25zZSA6IHRvQXJyYXkocmVzcG9uc2UpKSxcbiAgICAgICAgbWFwKChyZXNwb25zZTogQmFzZU1vZGVsW10pID0+IHtcbiAgICAgICAgICBpZiAoY2FjaGUpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0Q2FjaGUocmVzcG9uc2UsIHRydWUpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZUNvbGxlY3Rpb25JbnN0YW5jZSh0aGlzLmNvbGxlY3Rpb25DbGFzcywgcmVzcG9uc2UpO1xuICAgICAgICB9KSxcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IHVua25vd24pID0+IHRoaXMuaGFuZGxlRXJyb3IoZXJyb3IpKVxuICAgICAgKTtcbiAgfVxuXG4gIGZldGNoRmlyc3QocXVlcnlQYXJhbXMgPSB7fSk6IE9ic2VydmFibGU8TW9kZWw+IHtcbiAgICByZXR1cm4gdGhpcy5mZXRjaCh0aGlzLmFwaVVybCwgZmFsc2UsIHsgcGFyYW1zOiBxdWVyeVBhcmFtcyB9KVxuICAgICAgLnBpcGUobWFwKChjb2xsZWN0aW9uOiBDb2xsZWN0aW9uTW9kZWwpID0+IGNvbGxlY3Rpb24uZmlyc3QpKTtcbiAgfVxuXG4gIGdldChwYXRoOiBzdHJpbmcgPSB0aGlzLmFwaVVybCk6IE9ic2VydmFibGU8Q29sbGVjdGlvbk1vZGVsPiB7XG4gICAgdGhpcy5oYW5kbGVBY2Nlc3NFcnJvcignZ2V0Jyk7XG5cbiAgICBpZiAoIXRoaXMuaGFzUm9sZXMoKSkge1xuICAgICAgcmV0dXJuIG9mKHRoaXMuY3JlYXRlQ29sbGVjdGlvbkluc3RhbmNlKHRoaXMuY29sbGVjdGlvbkNsYXNzLCBbXSkpO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5jYWNoZSkge1xuICAgICAgdGhpcy5mZXRjaChwYXRoKS5waXBlKGZpcnN0KCkpLnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmdldENhY2hlU3ViamVjdE9ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldEJ5KHBhdGg6IHN0cmluZywgdmFsdWVzOiBhbnkpOiBPYnNlcnZhYmxlPENvbGxlY3Rpb25Nb2RlbD4ge1xuICAgIHJldHVybiB0aGlzLmdldCgpLnBpcGUobWFwKChwcm9qZWN0cykgPT4gcHJvamVjdHMuZmlsdGVyQnkocGF0aCwgdmFsdWVzKSkpO1xuICB9XG5cbiAgZ2V0Rmlyc3QoKTogT2JzZXJ2YWJsZTxNb2RlbD4ge1xuICAgIHJldHVybiB0aGlzLmdldCgpLnBpcGUobWFwKChjb2xsZWN0aW9uOiBDb2xsZWN0aW9uTW9kZWwpID0+IGNvbGxlY3Rpb24uZmlyc3QpKTtcbiAgfVxuXG4gIGhhc0luQ2FjaGUoaWQ6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuZ2V0Q2FjaGUoKT8uZmluZEJ5KCdpZCcsIGlkKTtcbiAgfVxuXG4gIGdldEFycmF5KCk6IE9ic2VydmFibGU8TW9kZWxbXT4ge1xuICAgIHJldHVybiB0aGlzLmdldCgpLnBpcGUobWFwKChjb2xsZWN0aW9uOiBDb2xsZWN0aW9uTW9kZWwpID0+IGNvbGxlY3Rpb24udG9BcnJheSgpKSk7XG4gIH1cblxuICBnZXRBcnJheUJ5KHBhdGg6IHN0cmluZywgdmFsdWVzOiBhbnkpOiBPYnNlcnZhYmxlPE1vZGVsW10+IHtcbiAgICByZXR1cm4gdGhpcy5nZXRCeShwYXRoLCB2YWx1ZXMpLnBpcGUobWFwKChjb2xsZWN0aW9uOiBDb2xsZWN0aW9uTW9kZWwpID0+IGNvbGxlY3Rpb24udG9BcnJheSgpKSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgbmV3IE1vZGVsIGluc3RhbmNlIGluIGRhdGFiYXNlXG4gICAqL1xuICBwb3N0KG1vZGVsOiBNb2RlbCwgcGF0aDogc3RyaW5nID0gdGhpcy5hcGlVcmwpOiBPYnNlcnZhYmxlPE1vZGVsPiB7XG4gICAgdGhpcy5oYW5kbGVBY2Nlc3NFcnJvcigncG9zdCcpO1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHBhdGgsIGNsYXNzVG9QbGFpbihtb2RlbCkpXG4gICAgICAucGlwZShcbiAgICAgICAgZmlyc3QoKSxcbiAgICAgICAgbWFwKChyZXNwb25zZTogb2JqZWN0KSA9PiB7XG4gICAgICAgICAgY29uc3QgcmVzdWx0OiBNb2RlbCA9IHRoaXMuY3JlYXRlTW9kZWxJbnN0YW5jZShyZXNwb25zZSk7XG4gICAgICAgICAgaWYgKCF0aGlzLm1lcmN1cmVUb3BpYykge1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVSZXNwb25zZShbcmVzdWx0XSwgJ3Bvc3QnKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9KSxcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IHVua25vd24pID0+IHRoaXMuaGFuZGxlRXJyb3IoZXJyb3IpKVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgbXVsdGlwbGUgbmV3IE1vZGVsIGluc3RhbmNlcyBpbiBkYXRhYmFzZVxuICAgKi9cbiAgcG9zdEJhdGNoKG1vZGVsczogTW9kZWxbXSk6IE9ic2VydmFibGU8TW9kZWxbXT4ge1xuICAgIHRoaXMuaGFuZGxlQWNjZXNzRXJyb3IoJ3Bvc3RCYXRjaCcpO1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHRoaXMuYXBpVXJsLCBjbGFzc1RvUGxhaW4obW9kZWxzKSlcbiAgICAgIC5waXBlKFxuICAgICAgICBmaXJzdCgpLFxuICAgICAgICBtYXAoKHJlc3BvbnNlOiBvYmplY3RbXSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHJlc3VsdDogTW9kZWxbXSA9IHJlc3BvbnNlLm1hcCgoaXRlbTogb2JqZWN0KTogTW9kZWwgPT4gdGhpcy5jcmVhdGVNb2RlbEluc3RhbmNlKGl0ZW0pKTtcbiAgICAgICAgICBpZiAoIXRoaXMubWVyY3VyZVRvcGljKSB7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZVJlc3BvbnNlKHJlc3VsdCwgJ3Bvc3QnKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9KSxcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IHVua25vd24pID0+IHRoaXMuaGFuZGxlRXJyb3IoZXJyb3IpKVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGFuZ2UgYW4gZXhpc3RpbmcgTW9kZWwgaW5zdGFuY2UgaW4gZGF0YWJhc2VcbiAgICovXG4gIHB1dChtb2RlbDogTW9kZWwsIHBhdGggPSBgJHt0aGlzLmFwaVVybH0vJHttb2RlbC5pZH1gKTogT2JzZXJ2YWJsZTxNb2RlbD4ge1xuICAgIHRoaXMuaGFuZGxlQWNjZXNzRXJyb3IoJ3B1dCcpO1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQocGF0aCwgY2xhc3NUb1BsYWluKG1vZGVsKSlcbiAgICAgIC5waXBlKFxuICAgICAgICBmaXJzdCgpLFxuICAgICAgICBtYXAoKHJlc3BvbnNlOiBvYmplY3QpID0+IHtcbiAgICAgICAgICBjb25zdCByZXN1bHQ6IE1vZGVsID0gdGhpcy5jcmVhdGVNb2RlbEluc3RhbmNlKHJlc3BvbnNlKTtcbiAgICAgICAgICBpZiAoIXRoaXMubWVyY3VyZVRvcGljKSB7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZVJlc3BvbnNlKFtyZXN1bHRdLCAncHV0Jyk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfSksXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiB1bmtub3duKSA9PiB0aGlzLmhhbmRsZUVycm9yKGVycm9yKSlcbiAgICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQ2hhbmdlIG11bHRpcGxlIGV4aXN0aW5nIE1vZGVsIGluc3RhbmNlcyBpbiBkYXRhYmFzZVxuICAgKi9cbiAgcHV0QmF0Y2gobW9kZWxzOiBNb2RlbFtdKTogT2JzZXJ2YWJsZTxNb2RlbFtdPiB7XG4gICAgdGhpcy5oYW5kbGVBY2Nlc3NFcnJvcigncHV0QmF0Y2gnKTtcblxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0KHRoaXMuYXBpVXJsLCBjbGFzc1RvUGxhaW4obW9kZWxzKSlcbiAgICAgIC5waXBlKFxuICAgICAgICBmaXJzdCgpLFxuICAgICAgICBtYXAoKHJlc3BvbnNlOiBvYmplY3RbXSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHJlc3VsdDogTW9kZWxbXSA9IHJlc3BvbnNlLm1hcCgoaXRlbTogb2JqZWN0KTogTW9kZWwgPT4gdGhpcy5jcmVhdGVNb2RlbEluc3RhbmNlKGl0ZW0pKTtcbiAgICAgICAgICBpZiAoIXRoaXMubWVyY3VyZVRvcGljKSB7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZVJlc3BvbnNlKHJlc3VsdCwgJ3B1dCcpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSBhIE1vZGVsIGluc3RhbmNlIGZyb20gZGF0YWJhc2VcbiAgICovXG4gIGRlbGV0ZShtb2RlbDogTW9kZWwsIHBhdGggPSBgJHt0aGlzLmFwaVVybH0vJHttb2RlbC5pZH1gKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgdGhpcy5oYW5kbGVBY2Nlc3NFcnJvcignZGVsZXRlJyk7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZShwYXRoKVxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpcnN0KCksXG4gICAgICAgIG1hcCgoKSA9PiB7XG4gICAgICAgICAgaWYgKCF0aGlzLm1lcmN1cmVUb3BpYykge1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVSZXNwb25zZShbbW9kZWxdLCAnZGVsZXRlJyk7XG4gICAgICAgICAgfVxuICAgICAgICB9KSxcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IHVua25vd24pID0+IHRoaXMuaGFuZGxlRXJyb3IoZXJyb3IpKVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmUgbXVsdGlwbGUgTW9kZWwgaW5zdGFuY2VzIGZyb20gZGF0YWJhc2VcbiAgICovXG4gIGRlbGV0ZUJhdGNoKG1vZGVsczogTW9kZWxbXSk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHRoaXMuaGFuZGxlQWNjZXNzRXJyb3IoJ2RlbGV0ZUJhdGNoJyk7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5hcGlVcmx9L2RlbGV0ZWAsIGNsYXNzVG9QbGFpbihtb2RlbHMpKVxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpcnN0KCksXG4gICAgICAgIG1hcCgoKSA9PiB7XG4gICAgICAgICAgaWYgKCF0aGlzLm1lcmN1cmVUb3BpYykge1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVSZXNwb25zZShtb2RlbHMsICdkZWxldGUnKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pLFxuICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogdW5rbm93bikgPT4gdGhpcy5oYW5kbGVFcnJvcihlcnJvcikpXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEB0b2RvOiByZW1vdmUgZGVsZXRlQmF0Y2ggYWZ0ZXIgYmFja2VuZCByZWZhY3RvclxuICAgKi9cbiAgZGVsZXRlQmF0Y2hWMihtb2RlbHM6IE1vZGVsW10pIHtcbiAgICB0aGlzLmhhbmRsZUFjY2Vzc0Vycm9yKCdkZWxldGVCYXRjaCcpO1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGUoYCR7dGhpcy5hcGlVcmx9YCwgeyBib2R5OiB7IGlkczogbW9kZWxzLm1hcChtb2RlbCA9PiBtb2RlbC5pZCkgfSB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpcnN0KCksXG4gICAgICAgIG1hcCgoKSA9PiB7XG4gICAgICAgICAgaWYgKCF0aGlzLm1lcmN1cmVUb3BpYykge1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVSZXNwb25zZShtb2RlbHMsICdkZWxldGUnKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pLFxuICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogdW5rbm93bikgPT4gdGhpcy5oYW5kbGVFcnJvcihlcnJvcikpXG4gICAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIG1ldGhvZCB3aXRoIG1lc3NhZ2VzIHRoYXQgY2FuIGJlIHJlZGVmaW5lZCBpbiBvdGhlciBjbGFzc2VzIHRvIGN1c3RvbWl6ZSBodHRwRXJyb3JNZXNzYWdlc1xuICAgKi9cbiAgcHJvdGVjdGVkIGdldEN1c3RvbUh0dHBFcnJvck1lc3NhZ2VzKCk6IFJlY29yZDxudW1iZXIsIHN0cmluZz4ge1xuICAgIHJldHVybiB7fTtcbiAgfVxuICAvKipcbiAgICogSGFuZGxlIHJlc3BvbnNlIGVycm9ycyAtIHNob3dzIGVycm9yIGluIHRvYXN0XG4gICAqIGFuZCB0aHJvd3MgZXJyb3IgZnVydGhlclxuICAgKiBAcGFyYW0gZXJyb3IgLSBhbnkgYmFja2VuZCBlcnJvclxuICAgKiBAdGhyb3dzIEh0dHBFcnJvclJlc3BvbnNlIHwgRXJyb3IgLSBBbHdheXMgdGhyb3dzIHRoZSBlcnJvciBmdXJ0aGVyIGFzIGFuIE9ic2VydmFibGU8bmV2ZXI+XG4gICAqL1xuICBoYW5kbGVFcnJvcihlcnJvcjogdW5rbm93bikge1xuICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEh0dHBFcnJvclJlc3BvbnNlKSB7XG4gICAgICBpZiAodGhpcy51c2VCYWNrZW5kRXJyb3IpIHtcbiAgICAgICAgaWYgKGVycm9yLmVycm9yLmRldGFpbCkge1xuICAgICAgICAgIHRoaXMudG9hc3RTZXJ2aWNlLmVycm9yKGVycm9yLmVycm9yLmRldGFpbCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy50b2FzdFNlcnZpY2UuZXJyb3IoZXJyb3IuZXJyb3IubWFwKChlcnJvcjogeyBtZXNzYWdlOiBzdHJpbmcgfSkgPT4gZXJyb3IubWVzc2FnZSkuam9pbignICcpKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy50b2FzdFNlcnZpY2UuZXJyb3IodGhpcy5odHRwRXJyb3JNZXNzYWdlc1tlcnJvci5zdGF0dXNdIHx8ICdVbmV4cGVjdGVkIGVycm9yIG9jY3VycmVkLicpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IGVycm9yKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGUgcmVzcG9uc2UgZGF0YSAtIHVwZGF0ZSBjYWNoZSBhbmQgZGlzcGF0Y2ggZXZlbnQgaWYgaXQgaXMgbmVlZGVkXG4gICAqL1xuICBwcm90ZWN0ZWQgaGFuZGxlUmVzcG9uc2UocmVzcG9uc2U6IE1vZGVsW10sIG1ldGhvZDogSHR0cE1ldGhvZCkge1xuICAgIGlmICh0aGlzLmdldENhY2hlKCkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy51cGRhdGVDYWNoZShyZXNwb25zZSwgbWV0aG9kKTtcbiAgICB9XG5cbiAgICAvLyBkaXNwYXRjaCBldmVudCBmb3IgaW50ZXJlc3RlZCBzZXJ2aWNlc1xuICAgIGlmIChyZXNwb25zZVswXSBpbnN0YW5jZW9mIE9ic2VydmFibGVNb2RlbCkge1xuICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KG1ldGhvZCwgcmVzcG9uc2UgYXMgdW5rbm93biBhcyBPYnNlcnZhYmxlTW9kZWxbXSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBjYWNoZSB3aXRoIHBhc3NlZCBpdGVtcy4gQWRkL1VwZGF0ZSBkZXRlY3RzIGF1dG9tYXRpY2FsbHksIERlbGV0ZSB2aWEgb3B0aW9uYWwgZmxhZ1xuICAgKi9cbiAgcHJvdGVjdGVkIHVwZGF0ZUNhY2hlKGl0ZW1zOiBNb2RlbFtdLCBtZXRob2Q6IEh0dHBNZXRob2QpOiB2b2lkIHtcbiAgICBsZXQgY2FjaGU6IENvbGxlY3Rpb25Nb2RlbDtcblxuICAgIHN3aXRjaCAobWV0aG9kKSB7XG4gICAgICBjYXNlICdwb3N0JzpcbiAgICAgICAgY2FjaGUgPSB0aGlzLm9yZGVyQnlEZXNjID8gdGhpcy5jYWNoZS51bnNoaWZ0KC4uLml0ZW1zKSA6IHRoaXMuY2FjaGUucHVzaCguLi5pdGVtcyk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlICdwdXQnOlxuICAgICAgICAvLyBAVE9ETyBBbGV4IG9sZCBpbnN0YW5jZVxuICAgICAgICBpdGVtcy5mb3JFYWNoKChpdGVtOiBNb2RlbCkgPT4ge1xuICAgICAgICAgIGNhY2hlID0gdGhpcy5jYWNoZS5yZXBsYWNlQnkoJ2lkJywgaXRlbS5pZCwgaXRlbSk7XG4gICAgICAgIH0pO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAnZGVsZXRlJzpcbiAgICAgICAgY2FjaGUgPSB0aGlzLmNhY2hlLnJlbW92ZUJ5KCdpZCcsIGl0ZW1zLm1hcCgoaXRlbTogTW9kZWwpID0+IGl0ZW0uaWQpKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIC8vIGNhc2UgJ2dldCc6XG4gICAgICAvLyAgIGNhY2hlID0gdGhpcy5jcmVhdGVDb2xsZWN0aW9uSW5zdGFuY2UodGhpcy5jb2xsZWN0aW9uQ2xhc3MsIGl0ZW1zKTtcbiAgICB9XG5cbiAgICB0aGlzLnNldENhY2hlKGNhY2hlLnRvQXJyYXkoKSwgdHJ1ZSk7XG4gIH1cblxuICAvKipcbiAgICogR2VuZXJhdGUgYW5kIGRpc3BhdGNoIHJlc3QgZXZlbnRcbiAgICovXG4gIHByb3RlY3RlZCBkaXNwYXRjaEV2ZW50KG1ldGhvZDogSHR0cE1ldGhvZCwgaXRlbXM6IE9ic2VydmFibGVNb2RlbFtdKTogdm9pZCB7XG4gICAgY29uc3QgZXZlbnROYW1lOiBzdHJpbmcgPSB0aGlzLm1vZGVsQ2xhc3MuZ2V0RXZlbnROYW1lKG1ldGhvZCk7XG4gICAgdGhpcy5ldmVudERpc3BhdGNoZXJTZXJ2aWNlLmRpc3BhdGNoMihuZXcgQXBwRXZlbnQyKGV2ZW50TmFtZSwgaXRlbXMpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBtZXRob2QgaXMgbm90IGRpc2FibGVkLiBUaHJvdyBleGNlcHRpb24gb3RoZXJ3aXNlLlxuICAgKiBTb21lIGVudGl0aWVzIGRvZXMgbm90IGhhdmUgZW5kcG9pbnRzIGZvciBhbGwgbWV0aG9kcy5cbiAgICovXG4gIHByaXZhdGUgaGFuZGxlQWNjZXNzRXJyb3IobWV0aG9kOiBSZXN0TWV0aG9kKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkTWV0aG9kcy5pbmNsdWRlcyhtZXRob2QpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhyb3cgbmV3IEVycm9yKGBNZXRob2QgJHttZXRob2R9KCkgaXMgbm90IGFsbG93ZWQgZm9yICR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfWApO1xuICB9XG5cbiAgLyoqXG4gICAqIFN1YnNjcmliZSB0byBodHRwIGV2ZW50cyBhbmQgcnVuIGNhbGxiYWNrLlxuICAgKiBDU0UgLSBDbGVpbnQgU2VudCBFdmVudHNcbiAgICogQHBhcmFtIG1vZGVsQ2xhc3NcbiAgICogQHBhcmFtIG1ldGhvZHMgVGhlIGxpc3Qgb2YgaHR0cCBtZXRob2RzIHNob3VsZCBiZSBsaXN0ZW5lZCBmb3JcbiAgICogQHBhcmFtIGNhbGxiYWNrIFRoZSBmdW5jdGlvbiB0byBiZSBjYWxsZWQgd2hlbiBldmVudCB0cmlnZ2VyZWRcbiAgICovXG4gIHByb3RlY3RlZCBsaXN0ZW5DU0UobW9kZWxDbGFzczogdHlwZW9mIE9ic2VydmFibGVNb2RlbCwgY2FsbGJhY2s6IEZ1bmN0aW9uLCBtZXRob2RzOiBIdHRwTWV0aG9kW10gPSBbJ3Bvc3QnLCAncHV0JywgJ2RlbGV0ZSddKTogdm9pZCB7XG4gICAgY2FsbGJhY2sgPSBjYWxsYmFjay5iaW5kKHRoaXMpO1xuXG4gICAgbWV0aG9kcy5mb3JFYWNoKChtZXRob2Q6IEh0dHBNZXRob2QpID0+IHtcbiAgICAgIHRoaXMuZXZlbnREaXNwYXRjaGVyU2VydmljZS5vbjIobW9kZWxDbGFzcy5nZXRFdmVudE5hbWUobWV0aG9kKSkuc3Vic2NyaWJlKChkYXRhOiBPYnNlcnZhYmxlTW9kZWxbXSkgPT4ge1xuICAgICAgICBjYWxsYmFjayhkYXRhKTtcbiAgICAgIH0pO1xuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogY2hlY2sgaWYgdXNlciBoYXMgc3Vic2NyaXB0aW9uIHJvbGUgdG8gYWNjZXNzIGFwaVxuICAgKi9cbiAgaGFzUm9sZXMoKTogYm9vbGVhbiB7XG4gICAgaWYgKCF0aGlzLnJvbGVzLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuICEhaW50ZXJzZWN0aW9uKEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3JvbGVzJykpLCB0aGlzLnJvbGVzKS5sZW5ndGg7XG4gIH1cblxuICAvKipcbiAgICogTGlzdGVuIGZvciBTZXJ2ZXItU2VudCBFdmVudHMgKFNTRSkgb24gdGhlIHNwZWNpZmllZCBNZXJjdXJlIHRvcGljXG4gICAqL1xuICBsaXN0ZW5TU0UoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLm1lcmN1cmVUb3BpYykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc3NlU2VydmljZS5vbih0aGlzLm1lcmN1cmVUb3BpYykucGlwZShcbiAgICAgIG1hcCgocmVzcG9uc2U6IG9iamVjdCkgPT4ge1xuICAgICAgICBsZXQgbW9kZWwgPSB0aGlzLmNyZWF0ZU1vZGVsSW5zdGFuY2UocmVzcG9uc2UpO1xuICAgICAgICBsZXQgbWV0aG9kOiBIdHRwTWV0aG9kO1xuICAgICAgICBpZiAobW9kZWwuaWQpIHtcbiAgICAgICAgICBtZXRob2QgPSB0aGlzLmhhc0luQ2FjaGUobW9kZWwuaWQpID8gJ3B1dCcgOiAncG9zdCc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbWV0aG9kID0gJ2RlbGV0ZSc7XG4gICAgICAgICAgLy8gd2UgZ290IGVtcHR5IGJvZHkgd2hlbiBpdGVtIGRlbGV0ZWQsIHNvIHdlIHNob3VsZCBnZXQgaWQgZnJvbSBBcGkgUGxhdGZvcm0gZGF0YSAoQGlkKVxuICAgICAgICAgIG1vZGVsID0gbWVyZ2UobW9kZWwsIHsgaWQ6ICtsYXN0KG1vZGVsWydAaWQnXS5zcGxpdCgnLycpKSB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB7IG1ldGhvZCwgbW9kZWwgfTtcbiAgICAgIH0pXG4gICAgKS5zdWJzY3JpYmUoKGNoYW5nZSkgPT4ge1xuICAgICAgdGhpcy5oYW5kbGVSZXNwb25zZShbY2hhbmdlLm1vZGVsXSwgY2hhbmdlLm1ldGhvZClcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -36,7 +36,7 @@ export class PropertyCalculationService {
36
36
  ]).pipe(map(([properties, transactions, depreciations]) => this.taxPositionGrowth(properties, transactions, depreciations)));
37
37
  }
38
38
  getRentalReturn(properties, transactions) {
39
- return transactions.claimIncome / properties.marketValue;
39
+ return transactions.grossClaimIncome / properties.marketValue;
40
40
  }
41
41
  getLoanAmount(properties, bankAccounts, loans) {
42
42
  return properties.items.reduce((totalAmount, property) => totalAmount + bankAccounts.items
@@ -155,4 +155,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
155
155
  providedIn: 'root'
156
156
  }]
157
157
  }] });
158
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktY2FsY3VsYXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy9wcm9wZXJ0eS9wcm9wZXJ0eS1jYWxjdWxhdGlvbi9wcm9wZXJ0eS1jYWxjdWxhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFjLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFRckMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7O0FBRXhFOzs7R0FHRztBQUlILE1BQU0sT0FBTywwQkFBMEI7SUFDckMsY0FBYyxDQUFDLFlBQW1DLEVBQUUsYUFBcUM7UUFDdkYsOEVBQThFO1FBQzlFLE9BQU8sWUFBWSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFFRCxlQUFlLENBQ2IsYUFBZ0QsRUFDaEQsY0FBa0Q7UUFFbEQsT0FBTyxhQUFhLENBQUM7WUFDbkIsYUFBYTtZQUNiLGNBQWM7U0FDZixDQUFDLENBQUMsSUFBSSxDQUNMLEdBQUcsQ0FBQyxDQUFDLENBQUMsWUFBWSxFQUFFLGFBQWEsQ0FBa0QsRUFBVSxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FDbEosQ0FBQztJQUNKLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxVQUE4QixFQUFF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QUFDLElBQUksQ0FBQyxDQUFDO1lBQ2hFLEtBQUssUUFBUSxDQUFDLEVBQUUsS0FBSyw2QkFBNkIsQ0FBQyxFQUFFO2dCQUNuRCxPQUFPLElBQUksS0FBSyxDQUFDLHlCQUF5QixFQUFFLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNwRTtnQkFDRSxPQUFPLElBQUksS0FBSyxDQUFDLHdCQUF3QixDQUFDLENBQUM7U0FDOUM7SUFDSCxDQUFDOytHQWpNVSwwQkFBMEI7bUhBQTFCLDBCQUEwQixjQUZ6QixNQUFNOzs0RkFFUCwwQkFBMEI7a0JBSHRDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgY29tYmluZUxhdGVzdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQmFua0FjY291bnRDb2xsZWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vY29sbGVjdGlvbnMnO1xuaW1wb3J0IHsgRGVwcmVjaWF0aW9uQ29sbGVjdGlvbiB9IGZyb20gJy4uLy4uLy4uL2NvbGxlY3Rpb25zJztcbmltcG9ydCB7IExvYW5Db2xsZWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vY29sbGVjdGlvbnMnO1xuaW1wb3J0IHsgUHJvcGVydHlDb2xsZWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vY29sbGVjdGlvbnMnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25Db2xsZWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vY29sbGVjdGlvbnMnO1xuaW1wb3J0IHsgUHJvcGVydHkgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgQmFua0FjY291bnQgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgRGljdGlvbmFyeSB9IGZyb20gJy4uLy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBCYWRnZSB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9iYWRnZS9iYWRnZSc7XG5pbXBvcnQgeyBCYWRnZUNvbG9yRW51bSB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9iYWRnZS9iYWRnZS1jb2xvci5lbnVtJztcblxuLyoqXG4gKiBTZXJ2aWNlIHdpdGggY2FsY3VsYXRpb25zIG1ldGhvZHMgZm9yIHByb3BlcnRpZXMgcmVsYXRlZCB3aXRoIG90aGVyIGVudGl0aWVzLlxuICogTG9naWMgaGVyZSB3b3JrcyBsaWtlIGNvbGxlY3Rpb25zIG1ldGhvZHMgYnV0IGZvciBzZXZlcmFsIGVudGl0aWVzXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFByb3BlcnR5Q2FsY3VsYXRpb25TZXJ2aWNlIHtcbiAgZ2V0VGF4UG9zaXRpb24odHJhbnNhY3Rpb25zOiBUcmFuc2FjdGlvbkNvbGxlY3Rpb24sIGRlcHJlY2lhdGlvbnM6IERlcHJlY2lhdGlvbkNvbGxlY3Rpb24pOiBudW1iZXIge1xuICAgIC8vIEBUT0RPIGhhY2s6IG1hdGggYWJzIGFkZGVkIGJlY2F1c2Ugd2UgaGF2ZSBtaXNtYXRjaGluZyBvZiByZWFsIHZhbHVlcyBzaWduc1xuICAgIHJldHVybiB0cmFuc2FjdGlvbnMuZ3Jvc3NDbGFpbUFtb3VudCAtIE1hdGguYWJzKGRlcHJlY2lhdGlvbnMuY2xhaW1BbW91bnQpO1xuICB9XG5cbiAgZ2V0VGF4UG9zaXRpb24kKFxuICAgIHRyYW5zYWN0aW9ucyQ6IE9ic2VydmFibGU8VHJhbnNhY3Rpb25Db2xsZWN0aW9uPixcbiAgICBkZXByZWNpYXRpb25zJDogT2JzZXJ2YWJsZTxEZXByZWNpYXRpb25Db2xsZWN0aW9uPlxuICApOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xuICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRyYW5zYWN0aW9ucyQsXG4gICAgICBkZXByZWNpYXRpb25zJFxuICAgIF0pLnBpcGUoXG4gICAgICBtYXAoKFt0cmFuc2FjdGlvbnMsIGRlcHJlY2lhdGlvbnNdOiBbVHJhbnNhY3Rpb25Db2xsZWN0aW9uLCBEZXByZWNpYXRpb25Db2xsZWN0aW9uXSk6IG51bWJlciA9PiB0aGlzLmdldFRheFBvc2l0aW9uKHRyYW5zYWN0aW9ucywgZGVwcmVjaWF0aW9ucykpXG4gICAgKTtcbiAgfVxuXG4gIHRheFBvc2l0aW9uR3Jvd3RoKHByb3BlcnRpZXM6IFByb3BlcnR5Q29sbGVjdGlvbiwgdHJhbnNhY3Rpb25zOiBUcmFuc2FjdGlvbkNvbGxlY3Rpb24sIGRlcHJlY2lhdGlvbnM6IERlcHJlY2lhdGlvbkNvbGxlY3Rpb24pOiBudW1iZXIge1xuICAgIGNvbnN0IGZvcmVjYXN0ZWRUYXhQb3NpdGlvbjogbnVtYmVyID0gcHJvcGVydGllcy5zdW1CeSgnZm9yZWNhc3RlZFRheFBvc2l0aW9uJyk7XG4gICAgLy8gY2hlY2sgaWYgZm9yZWNhc3RlZFRheFBvc2l0aW9uID0gMCB0byBhdm9pZCBkaXZpc2lvbiBieSB6ZXJvXG4gICAgaWYgKCFmb3JlY2FzdGVkVGF4UG9zaXRpb24pIHtcbiAgICAgIHJldHVybiAwO1xuICAgIH1cblxuICAgIHJldHVybiAodGhpcy5nZXRUYXhQb3NpdGlvbih0cmFuc2FjdGlvbnMsIGRlcHJlY2lhdGlvbnMpIC0gZm9yZWNhc3RlZFRheFBvc2l0aW9uKSAvIGZvcmVjYXN0ZWRUYXhQb3NpdGlvbjtcbiAgfVxuXG4gIHRheFBvc2l0aW9uR3Jvd3RoJChcbiAgICBwcm9wZXJ0aWVzJDogT2JzZXJ2YWJsZTxQcm9wZXJ0eUNvbGxlY3Rpb24+LFxuICAgIHRyYW5zYWN0aW9ucyQ6IE9ic2VydmFibGU8VHJhbnNhY3Rpb25Db2xsZWN0aW9uPixcbiAgICBkZXByZWNpYXRpb25zJDogT2JzZXJ2YWJsZTxEZXByZWNpYXRpb25Db2xsZWN0aW9uPlxuICApOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xuICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHByb3BlcnRpZXMkLFxuICAgICAgdHJhbnNhY3Rpb25zJCxcbiAgICAgIGRlcHJlY2lhdGlvbnMkXG4gICAgXSkucGlwZShcbiAgICAgIG1hcCgoW3Byb3BlcnRpZXMsIHRyYW5zYWN0aW9ucywgZGVwcmVjaWF0aW9uc106IFtQcm9wZXJ0eUNvbGxlY3Rpb24sIFRyYW5zYWN0aW9uQ29sbGVjdGlvbiwgRGVwcmVjaWF0aW9uQ29sbGVjdGlvbl0pOiBudW1iZXIgPT4gdGhpcy50YXhQb3NpdGlvbkdyb3d0aChwcm9wZXJ0aWVzLCB0cmFuc2FjdGlvbnMsIGRlcHJlY2lhdGlvbnMpKVxuICAgICk7XG4gIH1cblxuICBnZXRSZW50YWxSZXR1cm4ocHJvcGVydGllczogUHJvcGVydHlDb2xsZWN0aW9uLCB0cmFuc2FjdGlvbnM6IFRyYW5zYWN0aW9uQ29sbGVjdGlvbik6IG51bWJlciB7XG4gICAgcmV0dXJuIHRyYW5zYWN0aW9ucy5jbGFpbUluY29tZSAvIHByb3BlcnRpZXMubWFya2V0VmFsdWU7XG4gIH1cblxuICBnZXRMb2FuQW1vdW50KHByb3BlcnRpZXM6IFByb3BlcnR5Q29sbGVjdGlvbiwgYmFua0FjY291bnRzOiBCYW5rQWNjb3VudENvbGxlY3Rpb24sIGxvYW5zOiBMb2FuQ29sbGVjdGlvbik6IG51bWJlciB7XG4gICAgcmV0dXJuIHByb3BlcnRpZXMuaXRlbXMucmVkdWNlKCh0b3RhbEFtb3VudDogbnVtYmVyLCBwcm9wZXJ0eTogUHJvcGVydHkpOiBudW1iZXIgPT4gdG90YWxBbW91bnQgKyBiYW5rQWNjb3VudHMuaXRlbXNcbiAgICAgIC5yZWR1Y2UoKHByb3BlcnR5QW1vdW50OiBudW1iZXIsIGJhbmtBY2NvdW50OiBCYW5rQWNjb3VudCk6IG51bWJlciA9PiBwcm9wZXJ0eUFtb3VudCArIGJhbmtBY2NvdW50LmdldFByb3BlcnR5UGVyY2VudGFnZShwcm9wZXJ0eS5pZCkgKiAobG9hbnMuZ2V0QnlCYW5rQWNjb3VudElkKGJhbmtBY2NvdW50LmlkKT8uYW1vdW50IHx8IDApLCAwKSwgMCk7XG4gIH1cblxuICBnZXRMb2FuVmFsdWUocHJvcGVydGllczogUHJvcGVydHlDb2xsZWN0aW9uLCBiYW5rQWNjb3VudHM6IEJhbmtBY2NvdW50Q29sbGVjdGlvbik6IG51bWJlciB7XG4gICAgcmV0dXJuIHByb3BlcnRpZXMuaXRlbXMucmVkdWNlKCh0b3RhbEFtb3VudDogbnVtYmVyLCBwcm9wZXJ0eTogUHJvcGVydHkpOiBudW1iZXIgPT4gdG90YWxBbW91bnQgKyBiYW5rQWNjb3VudHMuaXRlbXNcbiAgICAgIC5yZWR1Y2UoKHByb3BlcnR5QW1vdW50OiBudW1iZXIsIGJhbmtBY2NvdW50OiBCYW5rQWNjb3VudCk6IG51bWJlciA9PiBwcm9wZXJ0eUFtb3VudCArIGJhbmtBY2NvdW50LmdldFByb3BlcnR5QmFsYW5jZUFtb3VudChwcm9wZXJ0eS5pZCksIDApLCAwKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMVlJcbiAgICovXG5cbiAgZ2V0THZyKHByb3BlcnRpZXM6IFByb3BlcnR5Q29sbGVjdGlvbiwgYmFua0FjY291bnRzOiBCYW5rQWNjb3VudENvbGxlY3Rpb24pOiBudW1iZXIge1xuICAgIC8vIE1hdGggYWJzIGlzIHJlcXVpcmVkIGZvciBjb3JyZWN0IHBlcmNlbnRhZ2UgY2FsY3VsYXRpb25cbiAgICByZXR1cm4gYmFua0FjY291bnRzLmdldEFjdGl2ZUxvYW5BY2NvdW50c0J5UHJvcGVydGllcyhwcm9wZXJ0aWVzLmdldElkcygpKS5wcm9wZXJ0aWVzQmFsYW5jZUFtb3VudCAvIHByb3BlcnRpZXMubWFya2V0VmFsdWU7XG4gIH1cblxuICBnZXRMdnIkKFxuICAgIHByb3BlcnRpZXMkOiBPYnNlcnZhYmxlPFByb3BlcnR5Q29sbGVjdGlvbj4sXG4gICAgYmFua0FjY291bnRzJDogT2JzZXJ2YWJsZTxCYW5rQWNjb3VudENvbGxlY3Rpb24+XG4gICk6IE9ic2VydmFibGU8bnVtYmVyPiB7XG4gICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgcHJvcGVydGllcyQsXG4gICAgICBiYW5rQWNjb3VudHMkXG4gICAgXSkucGlwZShcbiAgICAgIG1hcCgoW3Byb3BlcnRpZXMsIGJhbmtBY2NvdW50c106IFtQcm9wZXJ0eUNvbGxlY3Rpb24sIEJhbmtBY2NvdW50Q29sbGVjdGlvbl0pOiBudW1iZXIgPT4gdGhpcy5nZXRMdnIocHJvcGVydGllcywgYmFua0FjY291bnRzKSlcbiAgICApO1xuICB9XG5cbiAgZ2V0THZyQ29tbWVuY2VtZW50KHByb3BlcnRpZXM6IFByb3BlcnR5Q29sbGVjdGlvbiwgbG9hbnM6IExvYW5Db2xsZWN0aW9uLCBiYW5rQWNjb3VudHM6IEJhbmtBY2NvdW50Q29sbGVjdGlvbik6IG51bWJlciB7XG4gICAgLy8gTWF0aCBhYnMgaXMgcmVxdWlyZWQgZm9yIGNvcnJlY3QgcGVyY2VudGFnZSBjYWxjdWxhdGlvblxuICAgIHJldHVybiBNYXRoLmFicyh0aGlzLmdldExvYW5BbW91bnQocHJvcGVydGllcywgYmFua0FjY291bnRzLCBsb2FucykpIC8gcHJvcGVydGllcy5wdXJjaGFzZVByaWNlO1xuICB9XG5cbiAgZ2V0THZyQ29tbWVuY2VtZW50JChcbiAgICBwcm9wZXJ0aWVzJDogT2JzZXJ2YWJsZTxQcm9wZXJ0eUNvbGxlY3Rpb24+LFxuICAgIGJhbmtBY2NvdW50cyQ6IE9ic2VydmFibGU8QmFua0FjY291bnRDb2xsZWN0aW9uPixcbiAgICBsb2FucyQ6IE9ic2VydmFibGU8TG9hbkNvbGxlY3Rpb24+XG4gICk6IE9ic2VydmFibGU8bnVtYmVyPiB7XG4gICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgcHJvcGVydGllcyQsXG4gICAgICBiYW5rQWNjb3VudHMkLFxuICAgICAgbG9hbnMkXG4gICAgXSkucGlwZShcbiAgICAgIG1hcCgoW3Byb3BlcnRpZXMsIGJhbmtBY2NvdW50cywgbG9hbnNdOiBbUHJvcGVydHlDb2xsZWN0aW9uLCBCYW5rQWNjb3VudENvbGxlY3Rpb24sIExvYW5Db2xsZWN0aW9uXSk6IG51bWJlciA9PiB0aGlzLmdldEx2ckNvbW1lbmNlbWVudChwcm9wZXJ0aWVzLCBsb2FucywgYmFua0FjY291bnRzKSlcbiAgICApO1xuICB9XG5cbiAgZ2V0THZyR3Jvd3RoKHByb3BlcnRpZXM6IFByb3BlcnR5Q29sbGVjdGlvbiwgYmFua0FjY291bnRzOiBCYW5rQWNjb3VudENvbGxlY3Rpb24sIGxvYW5zOiBMb2FuQ29sbGVjdGlvbik6IG51bWJlciB7XG4gICAgY29uc3QgbHZyQ29tbWVuY2VtZW50OiBudW1iZXIgPSB0aGlzLmdldEx2ckNvbW1lbmNlbWVudChwcm9wZXJ0aWVzLCBsb2FucywgYmFua0FjY291bnRzKTtcbiAgICBpZiAoIWx2ckNvbW1lbmNlbWVudCkge1xuICAgICAgLy8gY2hlY2sgaWYgbHZyQ29tbWVuY2VtZW50ID0gMCB0byBhdm9pZCBkaXZpc2lvbiBieSB6ZXJvXG4gICAgICByZXR1cm4gMDtcbiAgICB9XG5cbiAgICByZXR1cm4gKHRoaXMuZ2V0THZyKHByb3BlcnRpZXMsIGJhbmtBY2NvdW50cykgLSBsdnJDb21tZW5jZW1lbnQpIC8gbHZyQ29tbWVuY2VtZW50O1xuICB9XG5cbiAgZ2V0THZyR3Jvd3RoJChcbiAgICBwcm9wZXJ0aWVzJDogT2JzZXJ2YWJsZTxQcm9wZXJ0eUNvbGxlY3Rpb24+LFxuICAgIGJhbmtBY2NvdW50cyQ6IE9ic2VydmFibGU8QmFua0FjY291bnRDb2xsZWN0aW9uPixcbiAgICBsb2FucyQ6IE9ic2VydmFibGU8TG9hbkNvbGxlY3Rpb24+XG4gICk6IE9ic2VydmFibGU8bnVtYmVyPiB7XG4gICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgcHJvcGVydGllcyQsXG4gICAgICBiYW5rQWNjb3VudHMkLFxuICAgICAgbG9hbnMkXG4gICAgXSkucGlwZShcbiAgICAgIG1hcCgoW3Byb3BlcnRpZXMsIGJhbmtBY2NvdW50cywgbG9hbnNdOiBbUHJvcGVydHlDb2xsZWN0aW9uLCBCYW5rQWNjb3VudENvbGxlY3Rpb24sIExvYW5Db2xsZWN0aW9uXSk6IG51bWJlciA9PiB0aGlzLmdldEx2ckdyb3d0aChwcm9wZXJ0aWVzLCBiYW5rQWNjb3VudHMsIGxvYW5zKSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEVxdWl0eSBwb3NpdGlvbiA9IE1hcmtldCB2YWx1ZSAtIGN1cnJlbnQgbG9hbiB2YWx1ZVxuICAgKi9cbiAgZ2V0RXF1aXR5UG9zaXRpb24ocHJvcGVydGllczogUHJvcGVydHlDb2xsZWN0aW9uLCBiYW5rQWNjb3VudHM6IEJhbmtBY2NvdW50Q29sbGVjdGlvbik6IG51bWJlciB7XG4gICAgLy8gTWF0aCBhYnMgaXMgcmVxdWlyZWQgZm9yIGNvcnJlY3QgcGVyY2VudGFnZSBjYWxjdWxhdGlvblxuICAgIHJldHVybiBwcm9wZXJ0aWVzLm1hcmtldFZhbHVlIC0gTWF0aC5hYnModGhpcy5nZXRMb2FuVmFsdWUocHJvcGVydGllcywgYmFua0FjY291bnRzKSk7XG4gIH1cblxuICAvKipcbiAgICogUHVyY2hhc2UgRXF1aXR5ID0gUHVyY2hhc2UgcHJpY2UgLSBpbml0aWFsIGxvYW4gdmFsdWVcbiAgICovXG4gIGdldFB1cmNoYXNlRXF1aXR5KHByb3BlcnRpZXM6IFByb3BlcnR5Q29sbGVjdGlvbiwgYmFua0FjY291bnRzOiBCYW5rQWNjb3VudENvbGxlY3Rpb24sIGxvYW5zOiBMb2FuQ29sbGVjdGlvbik6IG51bWJlciB7XG4gICAgLy8gTWF0aCBhYnMgaXMgcmVxdWlyZWQgZm9yIGNvcnJlY3QgcGVyY2VudGFnZSBjYWxjdWxhdGlvblxuICAgIHJldHVybiBwcm9wZXJ0aWVzLnB1cmNoYXNlUHJpY2UgLSBNYXRoLmFicyh0aGlzLmdldExvYW5BbW91bnQocHJvcGVydGllcywgYmFua0FjY291bnRzLCBsb2FucykpO1xuICB9XG5cbiAgZ2V0RXF1aXR5R3Jvd3RoKHByb3BlcnRpZXM6IFByb3BlcnR5Q29sbGVjdGlvbiwgYmFua0FjY291bnRzOiBCYW5rQWNjb3VudENvbGxlY3Rpb24sIGxvYW5zOiBMb2FuQ29sbGVjdGlvbik6IG51bWJlciB7XG4gICAgY29uc3QgcHVyY2hhc2VFcXVpdHk6IG51bWJlciA9IHRoaXMuZ2V0UHVyY2hhc2VFcXVpdHkocHJvcGVydGllcywgYmFua0FjY291bnRzLCBsb2Fucyk7XG4gICAgLy8gY2hlY2sgaWYgcHVyY2hhc2VFcXVpdHkgPSAwIHRvIGF2b2lkIGRpdmlzaW9uIGJ5IHplcm9cbiAgICBpZiAoIXB1cmNoYXNlRXF1aXR5KSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG5cbiAgICByZXR1cm4gKHRoaXMuZ2V0RXF1aXR5UG9zaXRpb24ocHJvcGVydGllcywgYmFua0FjY291bnRzKSAtIHB1cmNoYXNlRXF1aXR5KSAvIHB1cmNoYXNlRXF1aXR5O1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBkaWN0aW9uYXJ5IG9mIGJhZGdlcyBmb3IgZWFjaCBwcm9wZXJ0eSBpbiBjb2xsZWN0aW9uXG4gICAqL1xuICBnZXRCYWRnZXNCeVByb3BlcnR5KHByb3BlcnRpZXM6IFByb3BlcnR5Q29sbGVjdGlvbiwgdHJhbnNhY3Rpb25zOiBUcmFuc2FjdGlvbkNvbGxlY3Rpb24sIGRlcHJlY2lhdGlvbnM6IERlcHJlY2lhdGlvbkNvbGxlY3Rpb24pOiBEaWN0aW9uYXJ5PEJhZGdlPiB7XG4gICAgY29uc3QgYmFkZ2VzQnlQcm9wZXJ0eSA9IG5ldyBEaWN0aW9uYXJ5KFtdKTtcblxuICAgIHByb3BlcnRpZXMudG9BcnJheSgpLmZvckVhY2goKHByb3BlcnR5OiBQcm9wZXJ0eSkgPT4ge1xuICAgICAgYmFkZ2VzQnlQcm9wZXJ0eS5hZGQocHJvcGVydHkuaWQsIHRoaXMuZ2V0QmFkZ2UocHJvcGVydHksIHByb3BlcnRpZXMsIHRyYW5zYWN0aW9ucywgZGVwcmVjaWF0aW9ucykpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIGJhZGdlc0J5UHJvcGVydHk7XG4gIH1cblxuICBnZXRDYXNoUG9zaXRpb25Hcm93dGgocHJvcGVydGllczogUHJvcGVydHlDb2xsZWN0aW9uLCB0cmFuc2FjdGlvbnM6IFRyYW5zYWN0aW9uQ29sbGVjdGlvbik6IG51bWJlciB7XG4gICAgY29uc3QgZm9yZWNhc3RlZENhc2hQb3NpdGlvbjogbnVtYmVyID0gcHJvcGVydGllcy5zdW1CeSgnZm9yZWNhc3RlZENhc2hQb3NpdGlvbicpO1xuXG4gICAgLy8gY2hlY2sgaWYgZm9yZWNhc3RlZENhc2hQb3NpdGlvbiA9IDAgdG8gYXZvaWQgZGl2aXNpb24gYnkgemVyb1xuICAgIGlmICghZm9yZWNhc3RlZENhc2hQb3NpdGlvbikge1xuICAgICAgcmV0dXJuIDA7XG4gICAgfVxuXG4gICAgcmV0dXJuICh0cmFuc2FjdGlvbnMuZ3Jvc3NDbGFpbUFtb3VudCAtIGZvcmVjYXN0ZWRDYXNoUG9zaXRpb24pIC8gZm9yZWNhc3RlZENhc2hQb3NpdGlvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgQmFkZ2UgZm9yIHNpbmdsZSBwcm9wZXJ0eSBpbiBjb2xsZWN0aW9uXG4gICAqL1xuICBwcml2YXRlIGdldEJhZGdlKHByb3BlcnR5OiBQcm9wZXJ0eSwgcHJvcGVydGllczogUHJvcGVydHlDb2xsZWN0aW9uLCB0cmFuc2FjdGlvbnM6IFRyYW5zYWN0aW9uQ29sbGVjdGlvbiwgZGVwcmVjaWF0aW9uczogRGVwcmVjaWF0aW9uQ29sbGVjdGlvbik6IEJhZGdlIHtcbiAgICAvLyBiZXN0IHBlcmZvcm1hbmNlIHByb3BlcnRpZXMgY291bGQgYmUgb25seSBmcm9tIGFjdGl2ZSBwcm9wZXJ0aWVzIGxpc3RcbiAgICBjb25zdCBhY3RpdmVQcm9wZXJ0aWVzOiBQcm9wZXJ0eUNvbGxlY3Rpb24gPSBwcm9wZXJ0aWVzLmdldEFjdGl2ZSgpO1xuICAgIGNvbnN0IGJlc3RQZXJmb3JtYW5jZUdyb3d0aFByb3BlcnR5OiBQcm9wZXJ0eSA9IGFjdGl2ZVByb3BlcnRpZXMuZ2V0QmVzdFBlcmZvcm1hbmNlR3Jvd3RoUHJvcGVydHkoKTtcbiAgICBjb25zdCBiZXN0UGVyZm9ybWFuY2VUYXhQcm9wZXJ0eTogUHJvcGVydHkgPSBhY3RpdmVQcm9wZXJ0aWVzLmdldFRheEluY2x1c2l2ZSgpLmdldEJlc3RQZXJmb3JtYW5jZVRheFByb3BlcnR5KFxuICAgICAgdHJhbnNhY3Rpb25zLCBkZXByZWNpYXRpb25zXG4gICAgKTtcblxuICAgIHN3aXRjaCAodHJ1ZSkge1xuICAgICAgY2FzZSAhcHJvcGVydHkuaXNBY3RpdmU6XG4gICAgICAgIHJldHVybiBuZXcgQmFkZ2UoJ0luYWN0aXZlJywgQmFkZ2VDb2xvckVudW0uR1JBWSk7XG4gICAgICBjYXNlIHByb3BlcnR5LmlkID09PSBiZXN0UGVyZm9ybWFuY2VUYXhQcm9wZXJ0eT8uaWQgJiYgcHJvcGVydHkuaWQgPT09IGJlc3RQZXJmb3JtYW5jZUdyb3d0aFByb3BlcnR5LmlkOlxuICAgICAgICByZXR1cm4gbmV3IEJhZGdlKCdCZXN0IHBlcmZvcm1hbmNlIGdyb3d0aCAmIHRheCcsIEJhZGdlQ29sb3JFbnVtLkdPTEQpO1xuICAgICAgY2FzZSBwcm9wZXJ0eS5pZCA9PT0gYmVzdFBlcmZvcm1hbmNlVGF4UHJvcGVydHk/LmlkOlxuICAgICAgICByZXR1cm4gbmV3IEJhZGdlKCdCZXN0IHBlcmZvcm1hbmNlIHRheCcsIEJhZGdlQ29sb3JFbnVtLkdPTEQpO1xuICAgICAgY2FzZSBwcm9wZXJ0eS5pZCA9PT0gYmVzdFBlcmZvcm1hbmNlR3Jvd3RoUHJvcGVydHkuaWQ6XG4gICAgICAgIHJldHVybiBuZXcgQmFkZ2UoJ0Jlc3QgcGVyZm9ybWFuY2UgZ3Jvd3RoJywgQmFkZ2VDb2xvckVudW0uR1JFRU4pO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIG5ldyBCYWRnZSgnTW9uaXRvcmluZyBwZXJmb3JtYW5jZScpO1xuICAgIH1cbiAgfVxufVxuIl19
158
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktY2FsY3VsYXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy9wcm9wZXJ0eS9wcm9wZXJ0eS1jYWxjdWxhdGlvbi9wcm9wZXJ0eS1jYWxjdWxhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFjLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFRckMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7O0FBRXhFOzs7R0FHRztBQUlILE1BQU0sT0FBTywwQkFBMEI7SUFDckMsY0FBYyxDQUFDLFlBQW1DLEVBQUUsYUFBcUM7UUFDdkYsOEVBQThFO1FBQzlFLE9BQU8sWUFBWSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFFRCxlQUFlLENBQ2IsYUFBZ0QsRUFDaEQsY0FBa0Q7UUFFbEQsT0FBTyxhQUFhLENBQUM7WUFDbkIsYUFBYTtZQUNiLGNBQWM7U0FDZixDQUFDLENBQUMsSUFBSSxDQUNMLEdBQUcsQ0FBQyxDQUFDLENBQUMsWUFBWSxFQUFFLGFBQWEsQ0FBa0QsRUFBVSxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FDbEosQ0FBQztJQUNKLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxVQUE4QixFQUFF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LENBQUMsSUFBSSxDQUFDLENBQUM7WUFDaEUsS0FBSyxRQUFRLENBQUMsRUFBRSxLQUFLLDZCQUE2QixDQUFDLEVBQUU7Z0JBQ25ELE9BQU8sSUFBSSxLQUFLLENBQUMseUJBQXlCLEVBQUUsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3BFO2dCQUNFLE9BQU8sSUFBSSxLQUFLLENBQUMsd0JBQXdCLENBQUMsQ0FBQztTQUM5QztJQUNILENBQUM7K0dBak1VLDBCQUEwQjttSEFBMUIsMEJBQTBCLGNBRnpCLE1BQU07OzRGQUVQLDBCQUEwQjtrQkFIdEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBjb21iaW5lTGF0ZXN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBCYW5rQWNjb3VudENvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi8uLi9jb2xsZWN0aW9ucyc7XG5pbXBvcnQgeyBEZXByZWNpYXRpb25Db2xsZWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vY29sbGVjdGlvbnMnO1xuaW1wb3J0IHsgTG9hbkNvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi8uLi9jb2xsZWN0aW9ucyc7XG5pbXBvcnQgeyBQcm9wZXJ0eUNvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi8uLi9jb2xsZWN0aW9ucyc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkNvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi8uLi9jb2xsZWN0aW9ucyc7XG5pbXBvcnQgeyBQcm9wZXJ0eSB9IGZyb20gJy4uLy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBCYW5rQWNjb3VudCB9IGZyb20gJy4uLy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBEaWN0aW9uYXJ5IH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IEJhZGdlIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2JhZGdlL2JhZGdlJztcbmltcG9ydCB7IEJhZGdlQ29sb3JFbnVtIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2JhZGdlL2JhZGdlLWNvbG9yLmVudW0nO1xuXG4vKipcbiAqIFNlcnZpY2Ugd2l0aCBjYWxjdWxhdGlvbnMgbWV0aG9kcyBmb3IgcHJvcGVydGllcyByZWxhdGVkIHdpdGggb3RoZXIgZW50aXRpZXMuXG4gKiBMb2dpYyBoZXJlIHdvcmtzIGxpa2UgY29sbGVjdGlvbnMgbWV0aG9kcyBidXQgZm9yIHNldmVyYWwgZW50aXRpZXNcbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgUHJvcGVydHlDYWxjdWxhdGlvblNlcnZpY2Uge1xuICBnZXRUYXhQb3NpdGlvbih0cmFuc2FjdGlvbnM6IFRyYW5zYWN0aW9uQ29sbGVjdGlvbiwgZGVwcmVjaWF0aW9uczogRGVwcmVjaWF0aW9uQ29sbGVjdGlvbik6IG51bWJlciB7XG4gICAgLy8gQFRPRE8gaGFjazogbWF0aCBhYnMgYWRkZWQgYmVjYXVzZSB3ZSBoYXZlIG1pc21hdGNoaW5nIG9mIHJlYWwgdmFsdWVzIHNpZ25zXG4gICAgcmV0dXJuIHRyYW5zYWN0aW9ucy5ncm9zc0NsYWltQW1vdW50IC0gTWF0aC5hYnMoZGVwcmVjaWF0aW9ucy5jbGFpbUFtb3VudCk7XG4gIH1cblxuICBnZXRUYXhQb3NpdGlvbiQoXG4gICAgdHJhbnNhY3Rpb25zJDogT2JzZXJ2YWJsZTxUcmFuc2FjdGlvbkNvbGxlY3Rpb24+LFxuICAgIGRlcHJlY2lhdGlvbnMkOiBPYnNlcnZhYmxlPERlcHJlY2lhdGlvbkNvbGxlY3Rpb24+XG4gICk6IE9ic2VydmFibGU8bnVtYmVyPiB7XG4gICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdHJhbnNhY3Rpb25zJCxcbiAgICAgIGRlcHJlY2lhdGlvbnMkXG4gICAgXSkucGlwZShcbiAgICAgIG1hcCgoW3RyYW5zYWN0aW9ucywgZGVwcmVjaWF0aW9uc106IFtUcmFuc2FjdGlvbkNvbGxlY3Rpb24sIERlcHJlY2lhdGlvbkNvbGxlY3Rpb25dKTogbnVtYmVyID0+IHRoaXMuZ2V0VGF4UG9zaXRpb24odHJhbnNhY3Rpb25zLCBkZXByZWNpYXRpb25zKSlcbiAgICApO1xuICB9XG5cbiAgdGF4UG9zaXRpb25Hcm93dGgocHJvcGVydGllczogUHJvcGVydHlDb2xsZWN0aW9uLCB0cmFuc2FjdGlvbnM6IFRyYW5zYWN0aW9uQ29sbGVjdGlvbiwgZGVwcmVjaWF0aW9uczogRGVwcmVjaWF0aW9uQ29sbGVjdGlvbik6IG51bWJlciB7XG4gICAgY29uc3QgZm9yZWNhc3RlZFRheFBvc2l0aW9uOiBudW1iZXIgPSBwcm9wZXJ0aWVzLnN1bUJ5KCdmb3JlY2FzdGVkVGF4UG9zaXRpb24nKTtcbiAgICAvLyBjaGVjayBpZiBmb3JlY2FzdGVkVGF4UG9zaXRpb24gPSAwIHRvIGF2b2lkIGRpdmlzaW9uIGJ5IHplcm9cbiAgICBpZiAoIWZvcmVjYXN0ZWRUYXhQb3NpdGlvbikge1xuICAgICAgcmV0dXJuIDA7XG4gICAgfVxuXG4gICAgcmV0dXJuICh0aGlzLmdldFRheFBvc2l0aW9uKHRyYW5zYWN0aW9ucywgZGVwcmVjaWF0aW9ucykgLSBmb3JlY2FzdGVkVGF4UG9zaXRpb24pIC8gZm9yZWNhc3RlZFRheFBvc2l0aW9uO1xuICB9XG5cbiAgdGF4UG9zaXRpb25Hcm93dGgkKFxuICAgIHByb3BlcnRpZXMkOiBPYnNlcnZhYmxlPFByb3BlcnR5Q29sbGVjdGlvbj4sXG4gICAgdHJhbnNhY3Rpb25zJDogT2JzZXJ2YWJsZTxUcmFuc2FjdGlvbkNvbGxlY3Rpb24+LFxuICAgIGRlcHJlY2lhdGlvbnMkOiBPYnNlcnZhYmxlPERlcHJlY2lhdGlvbkNvbGxlY3Rpb24+XG4gICk6IE9ic2VydmFibGU8bnVtYmVyPiB7XG4gICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgcHJvcGVydGllcyQsXG4gICAgICB0cmFuc2FjdGlvbnMkLFxuICAgICAgZGVwcmVjaWF0aW9ucyRcbiAgICBdKS5waXBlKFxuICAgICAgbWFwKChbcHJvcGVydGllcywgdHJhbnNhY3Rpb25zLCBkZXByZWNpYXRpb25zXTogW1Byb3BlcnR5Q29sbGVjdGlvbiwgVHJhbnNhY3Rpb25Db2xsZWN0aW9uLCBEZXByZWNpYXRpb25Db2xsZWN0aW9uXSk6IG51bWJlciA9PiB0aGlzLnRheFBvc2l0aW9uR3Jvd3RoKHByb3BlcnRpZXMsIHRyYW5zYWN0aW9ucywgZGVwcmVjaWF0aW9ucykpXG4gICAgKTtcbiAgfVxuXG4gIGdldFJlbnRhbFJldHVybihwcm9wZXJ0aWVzOiBQcm9wZXJ0eUNvbGxlY3Rpb24sIHRyYW5zYWN0aW9uczogVHJhbnNhY3Rpb25Db2xsZWN0aW9uKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdHJhbnNhY3Rpb25zLmdyb3NzQ2xhaW1JbmNvbWUgLyBwcm9wZXJ0aWVzLm1hcmtldFZhbHVlO1xuICB9XG5cbiAgZ2V0TG9hbkFtb3VudChwcm9wZXJ0aWVzOiBQcm9wZXJ0eUNvbGxlY3Rpb24sIGJhbmtBY2NvdW50czogQmFua0FjY291bnRDb2xsZWN0aW9uLCBsb2FuczogTG9hbkNvbGxlY3Rpb24pOiBudW1iZXIge1xuICAgIHJldHVybiBwcm9wZXJ0aWVzLml0ZW1zLnJlZHVjZSgodG90YWxBbW91bnQ6IG51bWJlciwgcHJvcGVydHk6IFByb3BlcnR5KTogbnVtYmVyID0+IHRvdGFsQW1vdW50ICsgYmFua0FjY291bnRzLml0ZW1zXG4gICAgICAucmVkdWNlKChwcm9wZXJ0eUFtb3VudDogbnVtYmVyLCBiYW5rQWNjb3VudDogQmFua0FjY291bnQpOiBudW1iZXIgPT4gcHJvcGVydHlBbW91bnQgKyBiYW5rQWNjb3VudC5nZXRQcm9wZXJ0eVBlcmNlbnRhZ2UocHJvcGVydHkuaWQpICogKGxvYW5zLmdldEJ5QmFua0FjY291bnRJZChiYW5rQWNjb3VudC5pZCk/LmFtb3VudCB8fCAwKSwgMCksIDApO1xuICB9XG5cbiAgZ2V0TG9hblZhbHVlKHByb3BlcnRpZXM6IFByb3BlcnR5Q29sbGVjdGlvbiwgYmFua0FjY291bnRzOiBCYW5rQWNjb3VudENvbGxlY3Rpb24pOiBudW1iZXIge1xuICAgIHJldHVybiBwcm9wZXJ0aWVzLml0ZW1zLnJlZHVjZSgodG90YWxBbW91bnQ6IG51bWJlciwgcHJvcGVydHk6IFByb3BlcnR5KTogbnVtYmVyID0+IHRvdGFsQW1vdW50ICsgYmFua0FjY291bnRzLml0ZW1zXG4gICAgICAucmVkdWNlKChwcm9wZXJ0eUFtb3VudDogbnVtYmVyLCBiYW5rQWNjb3VudDogQmFua0FjY291bnQpOiBudW1iZXIgPT4gcHJvcGVydHlBbW91bnQgKyBiYW5rQWNjb3VudC5nZXRQcm9wZXJ0eUJhbGFuY2VBbW91bnQocHJvcGVydHkuaWQpLCAwKSwgMCk7XG4gIH1cblxuICAvKipcbiAgICogTFZSXG4gICAqL1xuXG4gIGdldEx2cihwcm9wZXJ0aWVzOiBQcm9wZXJ0eUNvbGxlY3Rpb24sIGJhbmtBY2NvdW50czogQmFua0FjY291bnRDb2xsZWN0aW9uKTogbnVtYmVyIHtcbiAgICAvLyBNYXRoIGFicyBpcyByZXF1aXJlZCBmb3IgY29ycmVjdCBwZXJjZW50YWdlIGNhbGN1bGF0aW9uXG4gICAgcmV0dXJuIGJhbmtBY2NvdW50cy5nZXRBY3RpdmVMb2FuQWNjb3VudHNCeVByb3BlcnRpZXMocHJvcGVydGllcy5nZXRJZHMoKSkucHJvcGVydGllc0JhbGFuY2VBbW91bnQgLyBwcm9wZXJ0aWVzLm1hcmtldFZhbHVlO1xuICB9XG5cbiAgZ2V0THZyJChcbiAgICBwcm9wZXJ0aWVzJDogT2JzZXJ2YWJsZTxQcm9wZXJ0eUNvbGxlY3Rpb24+LFxuICAgIGJhbmtBY2NvdW50cyQ6IE9ic2VydmFibGU8QmFua0FjY291bnRDb2xsZWN0aW9uPlxuICApOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xuICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHByb3BlcnRpZXMkLFxuICAgICAgYmFua0FjY291bnRzJFxuICAgIF0pLnBpcGUoXG4gICAgICBtYXAoKFtwcm9wZXJ0aWVzLCBiYW5rQWNjb3VudHNdOiBbUHJvcGVydHlDb2xsZWN0aW9uLCBCYW5rQWNjb3VudENvbGxlY3Rpb25dKTogbnVtYmVyID0+IHRoaXMuZ2V0THZyKHByb3BlcnRpZXMsIGJhbmtBY2NvdW50cykpXG4gICAgKTtcbiAgfVxuXG4gIGdldEx2ckNvbW1lbmNlbWVudChwcm9wZXJ0aWVzOiBQcm9wZXJ0eUNvbGxlY3Rpb24sIGxvYW5zOiBMb2FuQ29sbGVjdGlvbiwgYmFua0FjY291bnRzOiBCYW5rQWNjb3VudENvbGxlY3Rpb24pOiBudW1iZXIge1xuICAgIC8vIE1hdGggYWJzIGlzIHJlcXVpcmVkIGZvciBjb3JyZWN0IHBlcmNlbnRhZ2UgY2FsY3VsYXRpb25cbiAgICByZXR1cm4gTWF0aC5hYnModGhpcy5nZXRMb2FuQW1vdW50KHByb3BlcnRpZXMsIGJhbmtBY2NvdW50cywgbG9hbnMpKSAvIHByb3BlcnRpZXMucHVyY2hhc2VQcmljZTtcbiAgfVxuXG4gIGdldEx2ckNvbW1lbmNlbWVudCQoXG4gICAgcHJvcGVydGllcyQ6IE9ic2VydmFibGU8UHJvcGVydHlDb2xsZWN0aW9uPixcbiAgICBiYW5rQWNjb3VudHMkOiBPYnNlcnZhYmxlPEJhbmtBY2NvdW50Q29sbGVjdGlvbj4sXG4gICAgbG9hbnMkOiBPYnNlcnZhYmxlPExvYW5Db2xsZWN0aW9uPlxuICApOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xuICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHByb3BlcnRpZXMkLFxuICAgICAgYmFua0FjY291bnRzJCxcbiAgICAgIGxvYW5zJFxuICAgIF0pLnBpcGUoXG4gICAgICBtYXAoKFtwcm9wZXJ0aWVzLCBiYW5rQWNjb3VudHMsIGxvYW5zXTogW1Byb3BlcnR5Q29sbGVjdGlvbiwgQmFua0FjY291bnRDb2xsZWN0aW9uLCBMb2FuQ29sbGVjdGlvbl0pOiBudW1iZXIgPT4gdGhpcy5nZXRMdnJDb21tZW5jZW1lbnQocHJvcGVydGllcywgbG9hbnMsIGJhbmtBY2NvdW50cykpXG4gICAgKTtcbiAgfVxuXG4gIGdldEx2ckdyb3d0aChwcm9wZXJ0aWVzOiBQcm9wZXJ0eUNvbGxlY3Rpb24sIGJhbmtBY2NvdW50czogQmFua0FjY291bnRDb2xsZWN0aW9uLCBsb2FuczogTG9hbkNvbGxlY3Rpb24pOiBudW1iZXIge1xuICAgIGNvbnN0IGx2ckNvbW1lbmNlbWVudDogbnVtYmVyID0gdGhpcy5nZXRMdnJDb21tZW5jZW1lbnQocHJvcGVydGllcywgbG9hbnMsIGJhbmtBY2NvdW50cyk7XG4gICAgaWYgKCFsdnJDb21tZW5jZW1lbnQpIHtcbiAgICAgIC8vIGNoZWNrIGlmIGx2ckNvbW1lbmNlbWVudCA9IDAgdG8gYXZvaWQgZGl2aXNpb24gYnkgemVyb1xuICAgICAgcmV0dXJuIDA7XG4gICAgfVxuXG4gICAgcmV0dXJuICh0aGlzLmdldEx2cihwcm9wZXJ0aWVzLCBiYW5rQWNjb3VudHMpIC0gbHZyQ29tbWVuY2VtZW50KSAvIGx2ckNvbW1lbmNlbWVudDtcbiAgfVxuXG4gIGdldEx2ckdyb3d0aCQoXG4gICAgcHJvcGVydGllcyQ6IE9ic2VydmFibGU8UHJvcGVydHlDb2xsZWN0aW9uPixcbiAgICBiYW5rQWNjb3VudHMkOiBPYnNlcnZhYmxlPEJhbmtBY2NvdW50Q29sbGVjdGlvbj4sXG4gICAgbG9hbnMkOiBPYnNlcnZhYmxlPExvYW5Db2xsZWN0aW9uPlxuICApOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xuICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHByb3BlcnRpZXMkLFxuICAgICAgYmFua0FjY291bnRzJCxcbiAgICAgIGxvYW5zJFxuICAgIF0pLnBpcGUoXG4gICAgICBtYXAoKFtwcm9wZXJ0aWVzLCBiYW5rQWNjb3VudHMsIGxvYW5zXTogW1Byb3BlcnR5Q29sbGVjdGlvbiwgQmFua0FjY291bnRDb2xsZWN0aW9uLCBMb2FuQ29sbGVjdGlvbl0pOiBudW1iZXIgPT4gdGhpcy5nZXRMdnJHcm93dGgocHJvcGVydGllcywgYmFua0FjY291bnRzLCBsb2FucykpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFcXVpdHkgcG9zaXRpb24gPSBNYXJrZXQgdmFsdWUgLSBjdXJyZW50IGxvYW4gdmFsdWVcbiAgICovXG4gIGdldEVxdWl0eVBvc2l0aW9uKHByb3BlcnRpZXM6IFByb3BlcnR5Q29sbGVjdGlvbiwgYmFua0FjY291bnRzOiBCYW5rQWNjb3VudENvbGxlY3Rpb24pOiBudW1iZXIge1xuICAgIC8vIE1hdGggYWJzIGlzIHJlcXVpcmVkIGZvciBjb3JyZWN0IHBlcmNlbnRhZ2UgY2FsY3VsYXRpb25cbiAgICByZXR1cm4gcHJvcGVydGllcy5tYXJrZXRWYWx1ZSAtIE1hdGguYWJzKHRoaXMuZ2V0TG9hblZhbHVlKHByb3BlcnRpZXMsIGJhbmtBY2NvdW50cykpO1xuICB9XG5cbiAgLyoqXG4gICAqIFB1cmNoYXNlIEVxdWl0eSA9IFB1cmNoYXNlIHByaWNlIC0gaW5pdGlhbCBsb2FuIHZhbHVlXG4gICAqL1xuICBnZXRQdXJjaGFzZUVxdWl0eShwcm9wZXJ0aWVzOiBQcm9wZXJ0eUNvbGxlY3Rpb24sIGJhbmtBY2NvdW50czogQmFua0FjY291bnRDb2xsZWN0aW9uLCBsb2FuczogTG9hbkNvbGxlY3Rpb24pOiBudW1iZXIge1xuICAgIC8vIE1hdGggYWJzIGlzIHJlcXVpcmVkIGZvciBjb3JyZWN0IHBlcmNlbnRhZ2UgY2FsY3VsYXRpb25cbiAgICByZXR1cm4gcHJvcGVydGllcy5wdXJjaGFzZVByaWNlIC0gTWF0aC5hYnModGhpcy5nZXRMb2FuQW1vdW50KHByb3BlcnRpZXMsIGJhbmtBY2NvdW50cywgbG9hbnMpKTtcbiAgfVxuXG4gIGdldEVxdWl0eUdyb3d0aChwcm9wZXJ0aWVzOiBQcm9wZXJ0eUNvbGxlY3Rpb24sIGJhbmtBY2NvdW50czogQmFua0FjY291bnRDb2xsZWN0aW9uLCBsb2FuczogTG9hbkNvbGxlY3Rpb24pOiBudW1iZXIge1xuICAgIGNvbnN0IHB1cmNoYXNlRXF1aXR5OiBudW1iZXIgPSB0aGlzLmdldFB1cmNoYXNlRXF1aXR5KHByb3BlcnRpZXMsIGJhbmtBY2NvdW50cywgbG9hbnMpO1xuICAgIC8vIGNoZWNrIGlmIHB1cmNoYXNlRXF1aXR5ID0gMCB0byBhdm9pZCBkaXZpc2lvbiBieSB6ZXJvXG4gICAgaWYgKCFwdXJjaGFzZUVxdWl0eSkge1xuICAgICAgcmV0dXJuIDA7XG4gICAgfVxuXG4gICAgcmV0dXJuICh0aGlzLmdldEVxdWl0eVBvc2l0aW9uKHByb3BlcnRpZXMsIGJhbmtBY2NvdW50cykgLSBwdXJjaGFzZUVxdWl0eSkgLyBwdXJjaGFzZUVxdWl0eTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgZGljdGlvbmFyeSBvZiBiYWRnZXMgZm9yIGVhY2ggcHJvcGVydHkgaW4gY29sbGVjdGlvblxuICAgKi9cbiAgZ2V0QmFkZ2VzQnlQcm9wZXJ0eShwcm9wZXJ0aWVzOiBQcm9wZXJ0eUNvbGxlY3Rpb24sIHRyYW5zYWN0aW9uczogVHJhbnNhY3Rpb25Db2xsZWN0aW9uLCBkZXByZWNpYXRpb25zOiBEZXByZWNpYXRpb25Db2xsZWN0aW9uKTogRGljdGlvbmFyeTxCYWRnZT4ge1xuICAgIGNvbnN0IGJhZGdlc0J5UHJvcGVydHkgPSBuZXcgRGljdGlvbmFyeShbXSk7XG5cbiAgICBwcm9wZXJ0aWVzLnRvQXJyYXkoKS5mb3JFYWNoKChwcm9wZXJ0eTogUHJvcGVydHkpID0+IHtcbiAgICAgIGJhZGdlc0J5UHJvcGVydHkuYWRkKHByb3BlcnR5LmlkLCB0aGlzLmdldEJhZGdlKHByb3BlcnR5LCBwcm9wZXJ0aWVzLCB0cmFuc2FjdGlvbnMsIGRlcHJlY2lhdGlvbnMpKTtcbiAgICB9KTtcblxuICAgIHJldHVybiBiYWRnZXNCeVByb3BlcnR5O1xuICB9XG5cbiAgZ2V0Q2FzaFBvc2l0aW9uR3Jvd3RoKHByb3BlcnRpZXM6IFByb3BlcnR5Q29sbGVjdGlvbiwgdHJhbnNhY3Rpb25zOiBUcmFuc2FjdGlvbkNvbGxlY3Rpb24pOiBudW1iZXIge1xuICAgIGNvbnN0IGZvcmVjYXN0ZWRDYXNoUG9zaXRpb246IG51bWJlciA9IHByb3BlcnRpZXMuc3VtQnkoJ2ZvcmVjYXN0ZWRDYXNoUG9zaXRpb24nKTtcblxuICAgIC8vIGNoZWNrIGlmIGZvcmVjYXN0ZWRDYXNoUG9zaXRpb24gPSAwIHRvIGF2b2lkIGRpdmlzaW9uIGJ5IHplcm9cbiAgICBpZiAoIWZvcmVjYXN0ZWRDYXNoUG9zaXRpb24pIHtcbiAgICAgIHJldHVybiAwO1xuICAgIH1cblxuICAgIHJldHVybiAodHJhbnNhY3Rpb25zLmdyb3NzQ2xhaW1BbW91bnQgLSBmb3JlY2FzdGVkQ2FzaFBvc2l0aW9uKSAvIGZvcmVjYXN0ZWRDYXNoUG9zaXRpb247XG4gIH1cblxuICAvKipcbiAgICogR2V0IEJhZGdlIGZvciBzaW5nbGUgcHJvcGVydHkgaW4gY29sbGVjdGlvblxuICAgKi9cbiAgcHJpdmF0ZSBnZXRCYWRnZShwcm9wZXJ0eTogUHJvcGVydHksIHByb3BlcnRpZXM6IFByb3BlcnR5Q29sbGVjdGlvbiwgdHJhbnNhY3Rpb25zOiBUcmFuc2FjdGlvbkNvbGxlY3Rpb24sIGRlcHJlY2lhdGlvbnM6IERlcHJlY2lhdGlvbkNvbGxlY3Rpb24pOiBCYWRnZSB7XG4gICAgLy8gYmVzdCBwZXJmb3JtYW5jZSBwcm9wZXJ0aWVzIGNvdWxkIGJlIG9ubHkgZnJvbSBhY3RpdmUgcHJvcGVydGllcyBsaXN0XG4gICAgY29uc3QgYWN0aXZlUHJvcGVydGllczogUHJvcGVydHlDb2xsZWN0aW9uID0gcHJvcGVydGllcy5nZXRBY3RpdmUoKTtcbiAgICBjb25zdCBiZXN0UGVyZm9ybWFuY2VHcm93dGhQcm9wZXJ0eTogUHJvcGVydHkgPSBhY3RpdmVQcm9wZXJ0aWVzLmdldEJlc3RQZXJmb3JtYW5jZUdyb3d0aFByb3BlcnR5KCk7XG4gICAgY29uc3QgYmVzdFBlcmZvcm1hbmNlVGF4UHJvcGVydHk6IFByb3BlcnR5ID0gYWN0aXZlUHJvcGVydGllcy5nZXRUYXhJbmNsdXNpdmUoKS5nZXRCZXN0UGVyZm9ybWFuY2VUYXhQcm9wZXJ0eShcbiAgICAgIHRyYW5zYWN0aW9ucywgZGVwcmVjaWF0aW9uc1xuICAgICk7XG5cbiAgICBzd2l0Y2ggKHRydWUpIHtcbiAgICAgIGNhc2UgIXByb3BlcnR5LmlzQWN0aXZlOlxuICAgICAgICByZXR1cm4gbmV3IEJhZGdlKCdJbmFjdGl2ZScsIEJhZGdlQ29sb3JFbnVtLkdSQVkpO1xuICAgICAgY2FzZSBwcm9wZXJ0eS5pZCA9PT0gYmVzdFBlcmZvcm1hbmNlVGF4UHJvcGVydHk/LmlkICYmIHByb3BlcnR5LmlkID09PSBiZXN0UGVyZm9ybWFuY2VHcm93dGhQcm9wZXJ0eS5pZDpcbiAgICAgICAgcmV0dXJuIG5ldyBCYWRnZSgnQmVzdCBwZXJmb3JtYW5jZSBncm93dGggJiB0YXgnLCBCYWRnZUNvbG9yRW51bS5HT0xEKTtcbiAgICAgIGNhc2UgcHJvcGVydHkuaWQgPT09IGJlc3RQZXJmb3JtYW5jZVRheFByb3BlcnR5Py5pZDpcbiAgICAgICAgcmV0dXJuIG5ldyBCYWRnZSgnQmVzdCBwZXJmb3JtYW5jZSB0YXgnLCBCYWRnZUNvbG9yRW51bS5HT0xEKTtcbiAgICAgIGNhc2UgcHJvcGVydHkuaWQgPT09IGJlc3RQZXJmb3JtYW5jZUdyb3d0aFByb3BlcnR5LmlkOlxuICAgICAgICByZXR1cm4gbmV3IEJhZGdlKCdCZXN0IHBlcmZvcm1hbmNlIGdyb3d0aCcsIEJhZGdlQ29sb3JFbnVtLkdSRUVOKTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBuZXcgQmFkZ2UoJ01vbml0b3JpbmcgcGVyZm9ybWFuY2UnKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -45,6 +45,7 @@ export class PropertyTransactionReportService {
45
45
  * Get collection of property transactions
46
46
  */
47
47
  getTransactions() {
48
+ // @TODO TT-4886
48
49
  return this.transactionService.getWithoutTaxFreeProperty().pipe(map((transactions) => new TransactionCollection(transactions)
49
50
  .getByChartAccountsCategories(CHART_ACCOUNTS_CATEGORIES.property)
50
51
  .filter(transaction => transaction.claimPercent > 0)));
@@ -64,4 +65,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
64
65
  providedIn: 'root'
65
66
  }]
66
67
  }], ctorParameters: () => [{ type: i1.PropertyService }, { type: i1.TransactionService }, { type: i1.DepreciationService }, { type: i1.ChartAccountsService }] });
67
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktdHJhbnNhY3Rpb24tcmVwb3J0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvc2VydmljZXMvcmVwb3J0L3Byb3BlcnR5L3Byb3BlcnR5LXRyYW5zYWN0aW9uLXJlcG9ydC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFjLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqRCxPQUFPLEVBQUUseUJBQXlCLEVBQWUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RSxPQUFPLEVBS0wsNEJBQTRCLEVBQzVCLHdDQUF3QyxFQUN4Qyx1Q0FBdUMsRUFDdkMscUJBQXFCLEdBQ3RCLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFHckM7O0dBRUc7QUFJSCxNQUFNLE9BQU8sZ0NBQWdDO0lBTTNDLFlBQ1UsZUFBZ0MsRUFDaEMsa0JBQXNDLEVBQ3RDLG1CQUF3QyxFQUN4QyxvQkFBMEM7UUFIMUMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4Qyx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO0lBRXBELENBQUM7SUFFRDs7T0FFRztJQUNILEdBQUc7UUFDRCxPQUFPLGFBQWEsQ0FBQztZQUNuQixJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsRUFBb0M7WUFDNUQsSUFBSSxDQUFDLGVBQWUsRUFBdUM7WUFDM0QsSUFBSSxDQUFDLGdCQUFnQixFQUF3QztZQUM3RCxJQUFJLENBQUMsb0JBQW9CLENBQUMsR0FBRyxFQUF5QztTQUN2RSxDQUFDLENBQUMsSUFBSSxDQUNMLEdBQUcsQ0FBQyxDQUFDLENBQUMsVUFBVSxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsYUFBYSxDQUFDLEVBQUUsRUFBRTtZQUMvRCxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztZQUM3QixJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQztZQUNwRyxJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztZQUNuQyxJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztZQUNuQyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQ2xGLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxDQUFDLFVBQXFDO1FBQzFDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FDaEIsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQ3BDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUNyQyxJQUFJLENBQUMsVUFBVSxFQUNmLElBQUksQ0FBQyxhQUFhLENBQ25CLENBQUM7SUFDSixDQUFDO0lBRU8sTUFBTSxDQUNaLFlBQW1DLEVBQ25DLGFBQXFDLEVBQ3JDLFVBQThCLEVBQzlCLGFBQXNDO1FBRXRDLE9BQU8sSUFBSSw0QkFBNEIsQ0FBQztZQUN0QyxHQUFHLElBQUksdUNBQXVDLENBQUMsWUFBWSxFQUFFLFVBQVUsRUFBRSxhQUFhLENBQUMsQ0FBQyxLQUFLO1lBQzdGLEdBQUcsSUFBSSx3Q0FBd0MsQ0FBQyxhQUFhLEVBQUUsVUFBVSxFQUFFLGFBQWEsQ0FBQyxDQUFDLEtBQUs7U0FDaEcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRDs7T0FFRztJQUNLLGVBQWU7UUFDckIsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMseUJBQXlCLEVBQUUsQ0FBQyxJQUFJLENBQzdELEdBQUcsQ0FBQyxDQUFDLFlBQTJCLEVBQUUsRUFBRSxDQUFDLElBQUkscUJBQXFCLENBQUMsWUFBWSxDQUFDO2FBQ3pFLDRCQUE0QixDQUFDLHlCQUF5QixDQUFDLFFBQVEsQ0FBQzthQUNoRSxNQUFNLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQyxDQUNyRCxDQUNGLENBQUM7SUFDSixDQUFDO0lBRUQ7O09BRUc7SUFDSyxnQkFBZ0I7UUFDdEIsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUN4QyxHQUFHLENBQUMsQ0FBQyxhQUFxQyxFQUFFLEVBQUUsQ0FBQyxhQUFhLENBQUMsNEJBQTRCLENBQUMseUJBQXlCLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FDL0gsQ0FBQztJQUNKLENBQUM7K0dBMUVVLGdDQUFnQzttSEFBaEMsZ0NBQWdDLGNBRi9CLE1BQU07OzRGQUVQLGdDQUFnQztrQkFINUMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDaGFydEFjY291bnRzU2VydmljZSwgRGVwcmVjaWF0aW9uU2VydmljZSwgUHJvcGVydHlTZXJ2aWNlLCBUcmFuc2FjdGlvblNlcnZpY2UsIH0gZnJvbSAnLi4vLi4vaHR0cCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBjb21iaW5lTGF0ZXN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDSEFSVF9BQ0NPVU5UU19DQVRFR09SSUVTLCBUcmFuc2FjdGlvbiB9IGZyb20gJy4uLy4uLy4uL21vZGVscyc7XG5pbXBvcnQge1xuICBDaGFydEFjY291bnRzQ29sbGVjdGlvbixcbiAgQ29sbGVjdGlvbkRpY3Rpb25hcnksXG4gIERlcHJlY2lhdGlvbkNvbGxlY3Rpb24sXG4gIFByb3BlcnR5Q29sbGVjdGlvbixcbiAgUHJvcGVydHlSZXBvcnRJdGVtQ29sbGVjdGlvbixcbiAgUHJvcGVydHlSZXBvcnRJdGVtRGVwcmVjaWF0aW9uQ29sbGVjdGlvbixcbiAgUHJvcGVydHlSZXBvcnRJdGVtVHJhbnNhY3Rpb25Db2xsZWN0aW9uLFxuICBUcmFuc2FjdGlvbkNvbGxlY3Rpb24sXG59IGZyb20gJy4uLy4uLy4uL2NvbGxlY3Rpb25zJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uQmFzZUZpbHRlckZvcm0gfSBmcm9tICcuLi8uLi8uLi9mb3Jtcyc7XG5cbi8qKlxuICogU2VydmljZSB0byBoYW5kbGUgUHJvcGVydHkgdHJhbnNhY3Rpb25zIHJlcG9ydCBpdGVtcyBkYXRhIChnZXQgaW5jb21lIC8gZXhwZW5zZSByZXBvcnQgaXRlbXMsIGUudC5jLilcbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgUHJvcGVydHlUcmFuc2FjdGlvblJlcG9ydFNlcnZpY2Uge1xuICBwcm9wZXJ0aWVzOiBQcm9wZXJ0eUNvbGxlY3Rpb247XG4gIHRyYW5zYWN0aW9uczogVHJhbnNhY3Rpb25Db2xsZWN0aW9uO1xuICBkZXByZWNpYXRpb25zOiBEZXByZWNpYXRpb25Db2xsZWN0aW9uO1xuICBjaGFydEFjY291bnRzOiBDaGFydEFjY291bnRzQ29sbGVjdGlvbjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHByb3BlcnR5U2VydmljZTogUHJvcGVydHlTZXJ2aWNlLFxuICAgIHByaXZhdGUgdHJhbnNhY3Rpb25TZXJ2aWNlOiBUcmFuc2FjdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBkZXByZWNpYXRpb25TZXJ2aWNlOiBEZXByZWNpYXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgY2hhcnRBY2NvdW50c1NlcnZpY2U6IENoYXJ0QWNjb3VudHNTZXJ2aWNlXG4gICkge1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBjb2xsZWN0aW9uIG9mIHJlcG9ydCBpdGVtcyBiYXNlZCBvbiB0cmFuc2FjdGlvbnMgJiBkZXByZWNpYXRpb25zXG4gICAqL1xuICBnZXQoKTogT2JzZXJ2YWJsZTxDb2xsZWN0aW9uRGljdGlvbmFyeTxQcm9wZXJ0eVJlcG9ydEl0ZW1Db2xsZWN0aW9uPj4ge1xuICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMucHJvcGVydHlTZXJ2aWNlLmdldCgpIGFzIE9ic2VydmFibGU8UHJvcGVydHlDb2xsZWN0aW9uPixcbiAgICAgIHRoaXMuZ2V0VHJhbnNhY3Rpb25zKCkgYXMgT2JzZXJ2YWJsZTxUcmFuc2FjdGlvbkNvbGxlY3Rpb24+LFxuICAgICAgdGhpcy5nZXREZXByZWNpYXRpb25zKCkgYXMgT2JzZXJ2YWJsZTxEZXByZWNpYXRpb25Db2xsZWN0aW9uPixcbiAgICAgIHRoaXMuY2hhcnRBY2NvdW50c1NlcnZpY2UuZ2V0KCkgYXMgT2JzZXJ2YWJsZTxDaGFydEFjY291bnRzQ29sbGVjdGlvbj5cbiAgICBdKS5waXBlKFxuICAgICAgbWFwKChbcHJvcGVydGllcywgdHJhbnNhY3Rpb25zLCBkZXByZWNpYXRpb25zLCBjaGFydEFjY291bnRzXSkgPT4ge1xuICAgICAgICB0aGlzLnByb3BlcnRpZXMgPSBwcm9wZXJ0aWVzO1xuICAgICAgICB0aGlzLnRyYW5zYWN0aW9ucyA9IHRyYW5zYWN0aW9ucy5maWx0ZXIodHJhbnNhY3Rpb24gPT4gIXRyYW5zYWN0aW9uLmNoYXJ0QWNjb3VudHMuaXNEZXByZWNpYXRpb24oKSk7XG4gICAgICAgIHRoaXMuZGVwcmVjaWF0aW9ucyA9IGRlcHJlY2lhdGlvbnM7XG4gICAgICAgIHRoaXMuY2hhcnRBY2NvdW50cyA9IGNoYXJ0QWNjb3VudHM7XG4gICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZSh0aGlzLnRyYW5zYWN0aW9ucywgZGVwcmVjaWF0aW9ucywgcHJvcGVydGllcywgY2hhcnRBY2NvdW50cyk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBmaWx0ZXIoZmlsdGVyRm9ybTogVHJhbnNhY3Rpb25CYXNlRmlsdGVyRm9ybSk6IENvbGxlY3Rpb25EaWN0aW9uYXJ5PFByb3BlcnR5UmVwb3J0SXRlbUNvbGxlY3Rpb24+IHtcbiAgICByZXR1cm4gdGhpcy5jcmVhdGUoXG4gICAgICBmaWx0ZXJGb3JtLmZpbHRlcih0aGlzLnRyYW5zYWN0aW9ucyksXG4gICAgICBmaWx0ZXJGb3JtLmZpbHRlcih0aGlzLmRlcHJlY2lhdGlvbnMpLFxuICAgICAgdGhpcy5wcm9wZXJ0aWVzLFxuICAgICAgdGhpcy5jaGFydEFjY291bnRzXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlKFxuICAgIHRyYW5zYWN0aW9uczogVHJhbnNhY3Rpb25Db2xsZWN0aW9uLFxuICAgIGRlcHJlY2lhdGlvbnM6IERlcHJlY2lhdGlvbkNvbGxlY3Rpb24sXG4gICAgcHJvcGVydGllczogUHJvcGVydHlDb2xsZWN0aW9uLFxuICAgIGNoYXJ0QWNjb3VudHM6IENoYXJ0QWNjb3VudHNDb2xsZWN0aW9uXG4gICk6IENvbGxlY3Rpb25EaWN0aW9uYXJ5PFByb3BlcnR5UmVwb3J0SXRlbUNvbGxlY3Rpb24+IHtcbiAgICByZXR1cm4gbmV3IFByb3BlcnR5UmVwb3J0SXRlbUNvbGxlY3Rpb24oW1xuICAgICAgLi4ubmV3IFByb3BlcnR5UmVwb3J0SXRlbVRyYW5zYWN0aW9uQ29sbGVjdGlvbih0cmFuc2FjdGlvbnMsIHByb3BlcnRpZXMsIGNoYXJ0QWNjb3VudHMpLml0ZW1zLFxuICAgICAgLi4ubmV3IFByb3BlcnR5UmVwb3J0SXRlbURlcHJlY2lhdGlvbkNvbGxlY3Rpb24oZGVwcmVjaWF0aW9ucywgcHJvcGVydGllcywgY2hhcnRBY2NvdW50cykuaXRlbXMsXG4gICAgXSkuc29ydEJ5KCdzdWJDb2RlJywgJ2FzYycpLmdyb3VwQnkoJ3Byb3BlcnR5SWQnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgY29sbGVjdGlvbiBvZiBwcm9wZXJ0eSB0cmFuc2FjdGlvbnNcbiAgICovXG4gIHByaXZhdGUgZ2V0VHJhbnNhY3Rpb25zKCk6IE9ic2VydmFibGU8VHJhbnNhY3Rpb25Db2xsZWN0aW9uPiB7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLmdldFdpdGhvdXRUYXhGcmVlUHJvcGVydHkoKS5waXBlKFxuICAgICAgbWFwKCh0cmFuc2FjdGlvbnM6IFRyYW5zYWN0aW9uW10pID0+IG5ldyBUcmFuc2FjdGlvbkNvbGxlY3Rpb24odHJhbnNhY3Rpb25zKVxuICAgICAgICAuZ2V0QnlDaGFydEFjY291bnRzQ2F0ZWdvcmllcyhDSEFSVF9BQ0NPVU5UU19DQVRFR09SSUVTLnByb3BlcnR5KVxuICAgICAgICAuZmlsdGVyKHRyYW5zYWN0aW9uID0+IHRyYW5zYWN0aW9uLmNsYWltUGVyY2VudCA+IDApXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgbGlzdCBvZiBhc3NldCAmIGNhcGl0YWwgcHJvcGVydHkgZGVwcmVjaWF0aW9uc1xuICAgKi9cbiAgcHJpdmF0ZSBnZXREZXByZWNpYXRpb25zKCk6IE9ic2VydmFibGU8RGVwcmVjaWF0aW9uQ29sbGVjdGlvbj4ge1xuICAgIHJldHVybiB0aGlzLmRlcHJlY2lhdGlvblNlcnZpY2UuZ2V0KCkucGlwZShcbiAgICAgIG1hcCgoZGVwcmVjaWF0aW9uczogRGVwcmVjaWF0aW9uQ29sbGVjdGlvbikgPT4gZGVwcmVjaWF0aW9ucy5nZXRCeUNoYXJ0QWNjb3VudHNDYXRlZ29yaWVzKENIQVJUX0FDQ09VTlRTX0NBVEVHT1JJRVMucHJvcGVydHkpKVxuICAgICk7XG4gIH1cbn1cbiJdfQ==
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktdHJhbnNhY3Rpb24tcmVwb3J0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvc2VydmljZXMvcmVwb3J0L3Byb3BlcnR5L3Byb3BlcnR5LXRyYW5zYWN0aW9uLXJlcG9ydC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFjLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqRCxPQUFPLEVBQUUseUJBQXlCLEVBQWUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RSxPQUFPLEVBS0wsNEJBQTRCLEVBQzVCLHdDQUF3QyxFQUN4Qyx1Q0FBdUMsRUFDdkMscUJBQXFCLEdBQ3RCLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFHckM7O0dBRUc7QUFJSCxNQUFNLE9BQU8sZ0NBQWdDO0lBTTNDLFlBQ1UsZUFBZ0MsRUFDaEMsa0JBQXNDLEVBQ3RDLG1CQUF3QyxFQUN4QyxvQkFBMEM7UUFIMUMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4Qyx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO0lBRXBELENBQUM7SUFFRDs7T0FFRztJQUNILEdBQUc7UUFDRCxPQUFPLGFBQWEsQ0FBQztZQUNuQixJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsRUFBb0M7WUFDNUQsSUFBSSxDQUFDLGVBQWUsRUFBdUM7WUFDM0QsSUFBSSxDQUFDLGdCQUFnQixFQUF3QztZQUM3RCxJQUFJLENBQUMsb0JBQW9CLENBQUMsR0FBRyxFQUF5QztTQUN2RSxDQUFDLENBQUMsSUFBSSxDQUNMLEdBQUcsQ0FBQyxDQUFDLENBQUMsVUFBVSxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsYUFBYSxDQUFDLEVBQUUsRUFBRTtZQUMvRCxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztZQUM3QixJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQztZQUNwRyxJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztZQUNuQyxJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztZQUNuQyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQ2xGLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxDQUFDLFVBQXFDO1FBQzFDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FDaEIsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQ3BDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUNyQyxJQUFJLENBQUMsVUFBVSxFQUNmLElBQUksQ0FBQyxhQUFhLENBQ25CLENBQUM7SUFDSixDQUFDO0lBRU8sTUFBTSxDQUNaLFlBQW1DLEVBQ25DLGFBQXFDLEVBQ3JDLFVBQThCLEVBQzlCLGFBQXNDO1FBRXRDLE9BQU8sSUFBSSw0QkFBNEIsQ0FBQztZQUN0QyxHQUFHLElBQUksdUNBQXVDLENBQUMsWUFBWSxFQUFFLFVBQVUsRUFBRSxhQUFhLENBQUMsQ0FBQyxLQUFLO1lBQzdGLEdBQUcsSUFBSSx3Q0FBd0MsQ0FBQyxhQUFhLEVBQUUsVUFBVSxFQUFFLGFBQWEsQ0FBQyxDQUFDLEtBQUs7U0FDaEcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRDs7T0FFRztJQUNLLGVBQWU7UUFDckIsZ0JBQWdCO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLHlCQUF5QixFQUFFLENBQUMsSUFBSSxDQUM3RCxHQUFHLENBQUMsQ0FBQyxZQUEyQixFQUFFLEVBQUUsQ0FBQyxJQUFJLHFCQUFxQixDQUFDLFlBQVksQ0FBQzthQUN6RSw0QkFBNEIsQ0FBQyx5QkFBeUIsQ0FBQyxRQUFRLENBQUM7YUFDaEUsTUFBTSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUMsQ0FDckQsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVEOztPQUVHO0lBQ0ssZ0JBQWdCO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FDeEMsR0FBRyxDQUFDLENBQUMsYUFBcUMsRUFBRSxFQUFFLENBQUMsYUFBYSxDQUFDLDRCQUE0QixDQUFDLHlCQUF5QixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQy9ILENBQUM7SUFDSixDQUFDOytHQTNFVSxnQ0FBZ0M7bUhBQWhDLGdDQUFnQyxjQUYvQixNQUFNOzs0RkFFUCxnQ0FBZ0M7a0JBSDVDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2hhcnRBY2NvdW50c1NlcnZpY2UsIERlcHJlY2lhdGlvblNlcnZpY2UsIFByb3BlcnR5U2VydmljZSwgVHJhbnNhY3Rpb25TZXJ2aWNlLCB9IGZyb20gJy4uLy4uL2h0dHAnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgY29tYmluZUxhdGVzdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ0hBUlRfQUNDT1VOVFNfQ0FURUdPUklFUywgVHJhbnNhY3Rpb24gfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHtcbiAgQ2hhcnRBY2NvdW50c0NvbGxlY3Rpb24sXG4gIENvbGxlY3Rpb25EaWN0aW9uYXJ5LFxuICBEZXByZWNpYXRpb25Db2xsZWN0aW9uLFxuICBQcm9wZXJ0eUNvbGxlY3Rpb24sXG4gIFByb3BlcnR5UmVwb3J0SXRlbUNvbGxlY3Rpb24sXG4gIFByb3BlcnR5UmVwb3J0SXRlbURlcHJlY2lhdGlvbkNvbGxlY3Rpb24sXG4gIFByb3BlcnR5UmVwb3J0SXRlbVRyYW5zYWN0aW9uQ29sbGVjdGlvbixcbiAgVHJhbnNhY3Rpb25Db2xsZWN0aW9uLFxufSBmcm9tICcuLi8uLi8uLi9jb2xsZWN0aW9ucyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkJhc2VGaWx0ZXJGb3JtIH0gZnJvbSAnLi4vLi4vLi4vZm9ybXMnO1xuXG4vKipcbiAqIFNlcnZpY2UgdG8gaGFuZGxlIFByb3BlcnR5IHRyYW5zYWN0aW9ucyByZXBvcnQgaXRlbXMgZGF0YSAoZ2V0IGluY29tZSAvIGV4cGVuc2UgcmVwb3J0IGl0ZW1zLCBlLnQuYy4pXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFByb3BlcnR5VHJhbnNhY3Rpb25SZXBvcnRTZXJ2aWNlIHtcbiAgcHJvcGVydGllczogUHJvcGVydHlDb2xsZWN0aW9uO1xuICB0cmFuc2FjdGlvbnM6IFRyYW5zYWN0aW9uQ29sbGVjdGlvbjtcbiAgZGVwcmVjaWF0aW9uczogRGVwcmVjaWF0aW9uQ29sbGVjdGlvbjtcbiAgY2hhcnRBY2NvdW50czogQ2hhcnRBY2NvdW50c0NvbGxlY3Rpb247XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBwcm9wZXJ0eVNlcnZpY2U6IFByb3BlcnR5U2VydmljZSxcbiAgICBwcml2YXRlIHRyYW5zYWN0aW9uU2VydmljZTogVHJhbnNhY3Rpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgZGVwcmVjaWF0aW9uU2VydmljZTogRGVwcmVjaWF0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIGNoYXJ0QWNjb3VudHNTZXJ2aWNlOiBDaGFydEFjY291bnRzU2VydmljZVxuICApIHtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgY29sbGVjdGlvbiBvZiByZXBvcnQgaXRlbXMgYmFzZWQgb24gdHJhbnNhY3Rpb25zICYgZGVwcmVjaWF0aW9uc1xuICAgKi9cbiAgZ2V0KCk6IE9ic2VydmFibGU8Q29sbGVjdGlvbkRpY3Rpb25hcnk8UHJvcGVydHlSZXBvcnRJdGVtQ29sbGVjdGlvbj4+IHtcbiAgICByZXR1cm4gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLnByb3BlcnR5U2VydmljZS5nZXQoKSBhcyBPYnNlcnZhYmxlPFByb3BlcnR5Q29sbGVjdGlvbj4sXG4gICAgICB0aGlzLmdldFRyYW5zYWN0aW9ucygpIGFzIE9ic2VydmFibGU8VHJhbnNhY3Rpb25Db2xsZWN0aW9uPixcbiAgICAgIHRoaXMuZ2V0RGVwcmVjaWF0aW9ucygpIGFzIE9ic2VydmFibGU8RGVwcmVjaWF0aW9uQ29sbGVjdGlvbj4sXG4gICAgICB0aGlzLmNoYXJ0QWNjb3VudHNTZXJ2aWNlLmdldCgpIGFzIE9ic2VydmFibGU8Q2hhcnRBY2NvdW50c0NvbGxlY3Rpb24+XG4gICAgXSkucGlwZShcbiAgICAgIG1hcCgoW3Byb3BlcnRpZXMsIHRyYW5zYWN0aW9ucywgZGVwcmVjaWF0aW9ucywgY2hhcnRBY2NvdW50c10pID0+IHtcbiAgICAgICAgdGhpcy5wcm9wZXJ0aWVzID0gcHJvcGVydGllcztcbiAgICAgICAgdGhpcy50cmFuc2FjdGlvbnMgPSB0cmFuc2FjdGlvbnMuZmlsdGVyKHRyYW5zYWN0aW9uID0+ICF0cmFuc2FjdGlvbi5jaGFydEFjY291bnRzLmlzRGVwcmVjaWF0aW9uKCkpO1xuICAgICAgICB0aGlzLmRlcHJlY2lhdGlvbnMgPSBkZXByZWNpYXRpb25zO1xuICAgICAgICB0aGlzLmNoYXJ0QWNjb3VudHMgPSBjaGFydEFjY291bnRzO1xuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGUodGhpcy50cmFuc2FjdGlvbnMsIGRlcHJlY2lhdGlvbnMsIHByb3BlcnRpZXMsIGNoYXJ0QWNjb3VudHMpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgZmlsdGVyKGZpbHRlckZvcm06IFRyYW5zYWN0aW9uQmFzZUZpbHRlckZvcm0pOiBDb2xsZWN0aW9uRGljdGlvbmFyeTxQcm9wZXJ0eVJlcG9ydEl0ZW1Db2xsZWN0aW9uPiB7XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlKFxuICAgICAgZmlsdGVyRm9ybS5maWx0ZXIodGhpcy50cmFuc2FjdGlvbnMpLFxuICAgICAgZmlsdGVyRm9ybS5maWx0ZXIodGhpcy5kZXByZWNpYXRpb25zKSxcbiAgICAgIHRoaXMucHJvcGVydGllcyxcbiAgICAgIHRoaXMuY2hhcnRBY2NvdW50c1xuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZShcbiAgICB0cmFuc2FjdGlvbnM6IFRyYW5zYWN0aW9uQ29sbGVjdGlvbixcbiAgICBkZXByZWNpYXRpb25zOiBEZXByZWNpYXRpb25Db2xsZWN0aW9uLFxuICAgIHByb3BlcnRpZXM6IFByb3BlcnR5Q29sbGVjdGlvbixcbiAgICBjaGFydEFjY291bnRzOiBDaGFydEFjY291bnRzQ29sbGVjdGlvblxuICApOiBDb2xsZWN0aW9uRGljdGlvbmFyeTxQcm9wZXJ0eVJlcG9ydEl0ZW1Db2xsZWN0aW9uPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9wZXJ0eVJlcG9ydEl0ZW1Db2xsZWN0aW9uKFtcbiAgICAgIC4uLm5ldyBQcm9wZXJ0eVJlcG9ydEl0ZW1UcmFuc2FjdGlvbkNvbGxlY3Rpb24odHJhbnNhY3Rpb25zLCBwcm9wZXJ0aWVzLCBjaGFydEFjY291bnRzKS5pdGVtcyxcbiAgICAgIC4uLm5ldyBQcm9wZXJ0eVJlcG9ydEl0ZW1EZXByZWNpYXRpb25Db2xsZWN0aW9uKGRlcHJlY2lhdGlvbnMsIHByb3BlcnRpZXMsIGNoYXJ0QWNjb3VudHMpLml0ZW1zLFxuICAgIF0pLnNvcnRCeSgnc3ViQ29kZScsICdhc2MnKS5ncm91cEJ5KCdwcm9wZXJ0eUlkJyk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGNvbGxlY3Rpb24gb2YgcHJvcGVydHkgdHJhbnNhY3Rpb25zXG4gICAqL1xuICBwcml2YXRlIGdldFRyYW5zYWN0aW9ucygpOiBPYnNlcnZhYmxlPFRyYW5zYWN0aW9uQ29sbGVjdGlvbj4ge1xuICAgIC8vIEBUT0RPIFRULTQ4ODZcbiAgICByZXR1cm4gdGhpcy50cmFuc2FjdGlvblNlcnZpY2UuZ2V0V2l0aG91dFRheEZyZWVQcm9wZXJ0eSgpLnBpcGUoXG4gICAgICBtYXAoKHRyYW5zYWN0aW9uczogVHJhbnNhY3Rpb25bXSkgPT4gbmV3IFRyYW5zYWN0aW9uQ29sbGVjdGlvbih0cmFuc2FjdGlvbnMpXG4gICAgICAgIC5nZXRCeUNoYXJ0QWNjb3VudHNDYXRlZ29yaWVzKENIQVJUX0FDQ09VTlRTX0NBVEVHT1JJRVMucHJvcGVydHkpXG4gICAgICAgIC5maWx0ZXIodHJhbnNhY3Rpb24gPT4gdHJhbnNhY3Rpb24uY2xhaW1QZXJjZW50ID4gMClcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBsaXN0IG9mIGFzc2V0ICYgY2FwaXRhbCBwcm9wZXJ0eSBkZXByZWNpYXRpb25zXG4gICAqL1xuICBwcml2YXRlIGdldERlcHJlY2lhdGlvbnMoKTogT2JzZXJ2YWJsZTxEZXByZWNpYXRpb25Db2xsZWN0aW9uPiB7XG4gICAgcmV0dXJuIHRoaXMuZGVwcmVjaWF0aW9uU2VydmljZS5nZXQoKS5waXBlKFxuICAgICAgbWFwKChkZXByZWNpYXRpb25zOiBEZXByZWNpYXRpb25Db2xsZWN0aW9uKSA9PiBkZXByZWNpYXRpb25zLmdldEJ5Q2hhcnRBY2NvdW50c0NhdGVnb3JpZXMoQ0hBUlRfQUNDT1VOVFNfQ0FURUdPUklFUy5wcm9wZXJ0eSkpXG4gICAgKTtcbiAgfVxufVxuIl19