@eo-sdk/client 10.6.15 → 10.6.16

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.
Files changed (26) hide show
  1. package/app/eo-framework/actions/actions/signature-action/signature-action.component.d.ts.map +1 -1
  2. package/app/eo-framework/form-elements/string/string.component.d.ts +1 -0
  3. package/app/eo-framework/form-elements/string/string.component.d.ts.map +1 -1
  4. package/app/eo-framework/frame/frame.component.d.ts +2 -1
  5. package/app/eo-framework/frame/frame.component.d.ts.map +1 -1
  6. package/app/eo-framework/media/media.component.d.ts.map +1 -1
  7. package/assets/_default/i18n/en.json +3 -3
  8. package/esm2020/app/eo-client/about-state/about-state.component.mjs +3 -3
  9. package/esm2020/app/eo-client/object-state/object-state/object-state.component.mjs +3 -3
  10. package/esm2020/app/eo-client/process-state/process-state.component.mjs +3 -3
  11. package/esm2020/app/eo-framework/actions/actions/add-subscription-action/add-subscription/add-subscription.component.mjs +6 -6
  12. package/esm2020/app/eo-framework/actions/actions/signature-action/signature/signature.component.mjs +3 -3
  13. package/esm2020/app/eo-framework/actions/actions/signature-action/signature-action.component.mjs +5 -2
  14. package/esm2020/app/eo-framework/app-shell/app-bar/app-bar.component.mjs +2 -2
  15. package/esm2020/app/eo-framework/form-elements/dynamic-list/dynamic-list.component.mjs +4 -4
  16. package/esm2020/app/eo-framework/form-elements/string/string.component.mjs +7 -4
  17. package/esm2020/app/eo-framework/frame/frame.component.mjs +3 -2
  18. package/esm2020/app/eo-framework/grid/filters/dynamic-list-filter.component.mjs +3 -3
  19. package/esm2020/app/eo-framework/media/media.component.mjs +3 -1
  20. package/esm2020/app/eo-framework/object-form/object-form/form-element/form-element.component.mjs +3 -3
  21. package/esm2020/app/eo-framework/ui/indexdata-summary/indexdata-summary.component.mjs +3 -3
  22. package/fesm2015/eo-sdk-client.mjs +40 -29
  23. package/fesm2015/eo-sdk-client.mjs.map +1 -1
  24. package/fesm2020/eo-sdk-client.mjs +37 -28
  25. package/fesm2020/eo-sdk-client.mjs.map +1 -1
  26. package/package.json +2 -2
@@ -19,13 +19,16 @@ export class StringComponent {
19
19
  this.propagateChange = (_) => {
20
20
  };
21
21
  }
22
+ _propagate() {
23
+ this.propagateChange(this.value?.length ? this.value : null);
24
+ }
22
25
  onKeyUpEnter(event) {
23
26
  // applies to multiselect and autocomplete
24
27
  const input = event.target.value.trim();
25
28
  if (input) {
26
29
  this.value = this.value ? this.value : [];
27
30
  this.value = [...this.value, input];
28
- this.propagateChange(this.value);
31
+ this._propagate();
29
32
  event.target.value = '';
30
33
  }
31
34
  }
@@ -42,11 +45,11 @@ export class StringComponent {
42
45
  onValueChange(evt) {
43
46
  this.formatedValue = Utils.formatMailTo(evt, this.classification === 'email');
44
47
  this.value = evt;
45
- this.propagateChange(this.value);
48
+ this._propagate();
46
49
  }
47
50
  onBlur() {
48
51
  if (this.trimValue()) {
49
- this.propagateChange(this.value);
52
+ this._propagate();
50
53
  }
51
54
  }
52
55
  /**
@@ -251,4 +254,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
251
254
  }], maxLength: [{
252
255
  type: Input
253
256
  }] } });
254
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tZnJhbWV3b3JrL2Zvcm0tZWxlbWVudHMvc3RyaW5nL3N0cmluZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWZyYW1ld29yay9mb3JtLWVsZW1lbnRzL3N0cmluZy9zdHJpbmcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzNELE9BQU8sRUFJTCxpQkFBaUIsRUFDakIsYUFBYSxFQUNkLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFpQixLQUFLLEVBQWlCLE1BQU0sY0FBYyxDQUFDOzs7Ozs7O0FBb0JuRSxNQUFNLE9BQU8sZUFBZTtJQUcxQixJQUNJLFlBQVksQ0FBQyxPQUFnQjtRQUMvQixJQUFJLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQztJQUMvQixDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7SUFzQkQsWUFBb0IsT0FBdUI7UUFBdkIsWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7UUFHM0Msb0JBQWUsR0FBRyxDQUFDLENBQU0sRUFBRSxFQUFFO1FBQzdCLENBQUMsQ0FBQztJQUhGLENBQUM7SUFLRCxZQUFZLENBQUMsS0FBSztRQUNoQiwwQ0FBMEM7UUFDMUMsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDeEMsSUFBSSxLQUFLLEVBQUU7WUFDVCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFD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RSxDQUFDLGVBQWUsQ0FBQztZQUM5QyxLQUFLLEVBQUUsSUFBSTtTQUNaO1FBQ0Q7WUFDRSxPQUFPLEVBQUUsYUFBYTtZQUN0QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGVBQWUsQ0FBQztZQUM5QyxLQUFLLEVBQUUsSUFBSTtTQUNaO0tBQ0YsMEJDMUJILG02SUEyQ0E7MkZEZmEsZUFBZTtrQkFqQjNCLFNBQVM7K0JBQ0UsV0FBVyxhQUdWO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLGdCQUFnQixDQUFDOzRCQUM5QyxLQUFLLEVBQUUsSUFBSTt5QkFDWjt3QkFDRDs0QkFDRSxPQUFPLEVBQUUsYUFBYTs0QkFDdEIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsZ0JBQWdCLENBQUM7NEJBQzlDLEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGO3FHQU1HLFlBQVk7c0JBRGYsS0FBSztnQkFTRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUVHLElBQUk7c0JBQVosS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgZm9yd2FyZFJlZiwgSW5wdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgVW50eXBlZEZvcm1Db250cm9sLFxuICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgVmFsaWRhdG9yLFxuICBOR19WQUxVRV9BQ0NFU1NPUixcbiAgTkdfVkFMSURBVE9SU1xufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge0JhY2tlbmRTZXJ2aWNlLCBVdGlscywgRm9ybWF0ZWRNYWlsVG99IGZyb20gJ0Blby1zZGsvY29yZSc7XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZW8tc3RyaW5nJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3N0cmluZy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3N0cmluZy5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFN0cmluZ0NvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFN0cmluZ0NvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBTdHJpbmdDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgVmFsaWRhdG9yIHtcblxuICBwcml2YXRlIF9hdXRvY29tcGxldGU6IGJvb2xlYW47XG4gIEBJbnB1dCgpXG4gIHNldCBhdXRvY29tcGxldGUoYXV0b0NvbTogYm9vbGVhbikge1xuICAgIHRoaXMuX2F1dG9jb21wbGV0ZSA9IGF1dG9Db207XG4gIH1cblxuICBnZXQgYXV0b2NvbXBsZXRlKCkge1xuICAgIHJldHVybiB0aGlzLl9hdXRvY29tcGxldGU7XG4gIH1cblxuICBASW5wdXQoKSBtdWx0aXNlbGVjdDogYm9vbGVhbjtcbiAgQElucHV0KCkgbXVsdGlsaW5lOiBib29sZWFuO1xuICBASW5wdXQoKSByZWFkb25seTogYm9vbGVhbjtcbiAgQElucHV0KCkgYXV0b2ZvY3VzOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpIGNsYXNzaWZpY2F0aW9uOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHNpdHVhdGlvbjogc3RyaW5nO1xuICBASW5wdXQoKSByZWdleDogc3RyaW5nO1xuICBASW5wdXQoKSBxbmFtZTogc3RyaW5nO1xuICAvLyBjb3VsZCBiZSBzbWFsbCwgbWVkaXVtLCBsYXJnZVxuICBASW5wdXQoKSBzaXplOiBzdHJpbmc7XG4gIEBJbnB1dCgpIG1pbkxlbmd0aDogbnVtYmVyO1xuICBASW5wdXQoKSBtYXhMZW5ndGg6IG51bWJlcjtcblxuICBhdXRvY29tcGxldGVSZXM6IGFueVtdO1xuICBmb3JtYXRlZFZhbHVlOiBGb3JtYXRlZE1haWxUbztcbiAgLy8gbW9kZWwgdmFsdWVcbiAgdmFsdWU7XG4gIHZhbGlkOiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYmFja2VuZDogQmFja2VuZFNlcnZpY2UpIHtcbiAgfVxuXG4gIHByb3BhZ2F0ZUNoYW5nZSA9IChfOiBhbnkpID0+IHtcbiAgfTtcblxuICBvbktleVVwRW50ZXIoZXZlbnQpIHtcbiAgICAvLyBhcHBsaWVzIHRvIG11bHRpc2VsZWN0IGFuZCBhdXRvY29tcGxldGVcbiAgICBjb25zdCBpbnB1dCA9IGV2ZW50LnRhcmdldC52YWx1ZS50cmltKCk7XG4gICAgaWYgKGlucHV0KSB7XG4gICAgICB0aGlzLnZhbHVlID0gdGhpcy52YWx1ZSA/IHRoaXMudmFsdWUgOiBbXTtcbiAgICAgIHRoaXMudmFsdWUgPSBbLi4udGhpcy52YWx1ZSwgaW5wdXRdO1xuICAgICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UodGhpcy52YWx1ZSk7XG4gICAgICBldmVudC50YXJnZXQudmFsdWUgPSAnJztcbiAgICB9XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLmZvcm1hdGVkVmFsdWUgPSBVdGlscy5mb3JtYXRNYWlsVG8odmFsdWUsIHRoaXMuY2xhc3NpZmljYXRpb24gPT09ICdlbWFpbCcpO1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZSB8fCBudWxsO1xuICAgIHRoaXMuX3ZhbGlkYXRlKCk7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICB9XG5cbiAgb25WYWx1ZUNoYW5nZShldnQpIHtcbiAgICB0aGlzLmZvcm1hdGVkVmFsdWUgPSBVdGlscy5mb3JtYXRNYWlsVG8oZXZ0LCB0aGlzLmNsYXNzaWZpY2F0aW9uID09PSAnZW1haWwnKTtcbiAgICB0aGlzLnZhbHVlID0gZXZ0O1xuICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlKHRoaXMudmFsdWUpO1xuICB9XG5cbiAgb25CbHVyKCkge1xuICAgIGlmICh0aGlzLnRyaW1WYWx1ZSgpKSB7XG4gICAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSh0aGlzLnZhbHVlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVHJpbXMgdGhlIGN1cnJlbnQgdmFsdWUgYW5kIHJldHVybnMgd2V0aGVyIG9yIG5vdCBpdCBoYXMgYmVlbiB0cmltbWVkXG4gICAqL1xuICBwcml2YXRlIHRyaW1WYWx1ZSgpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy52YWx1ZSkge1xuICAgICAgaWYgKHRoaXMubXVsdGlzZWxlY3QpIHtcbiAgICAgICAgY29uc3QgbGVuZ3RoQmVmb3JlID0gdGhpcy52YWx1ZS5qb2luKCcnKS5sZW5ndGg7XG4gICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLnZhbHVlLm1hcCh2ID0+IHYudHJpbSgpKTtcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsdWUuam9pbignJykubGVuZ3RoICE9PSBsZW5ndGhCZWZvcmU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBsZW5ndGhCZWZvcmUgPSB0aGlzLnZhbHVlLmxlbmd0aDtcbiAgICAgICAgdGhpcy52YWx1ZSA9IHRoaXMudmFsdWUudHJpbSgpO1xuICAgICAgICByZXR1cm4gdGhpcy52YWx1ZS5sZW5ndGggIT09IGxlbmd0aEJlZm9yZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgYXV0b2NvbXBsZXRlRm4odGVybTogc3RyaW5nKSB7XG4gICAgY29uc3QgdXJpID0gYC9hdXRvY29tcGxldGUvZWxlbWVudD9wcmVmaXg9JHtlbmNvZGVVUklDb21wb25lbnQodGVybSl9JnFuYW1lPSR7dGhpcy5xbmFtZX1gO1xuICAgIGNvbnN0IGJhc2UgPSB0aGlzLmJhY2tlbmQuZ2V0U2VhcmNoQmFzZSgpO1xuICAgIHRoaXMuYmFja2VuZFxuICAgICAgLmdldEpzb24odXJpLCBiYXNlKVxuICAgICAgLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICBsZXQgciA9IFtdO1xuICAgICAgICByZXMuZm9yRWFjaChpID0+IHtcbiAgICAgICAgICBpZiAoKCFBcnJheS5pc0FycmF5KHRoaXMudmFsdWUpICYmIHRoaXMudmFsdWUgIT09IGkudmFsdWUpIHx8IChBcnJheS5pc0FycmF5KHRoaXMudmFsdWUpICYmICF0aGlzLnZhbHVlLmZpbmQodiA9PiB2ID09PSBpLnZhbHVlKSkpIHtcbiAgICAgICAgICAgIHIucHVzaChpLnZhbHVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmF1dG9jb21wbGV0ZVJlcyA9IHIuc2xpY2UoMCwgMTApO1xuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHZhbGlkYXRlQ2xhc3NpZmljYXRpb24oc3RyaW5nKTogYm9vbGVhbiB7XG5cbiAgICBpZiAodGhpcy5zaXR1YXRpb24gPT09ICdTRUFSQ0gnKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgbGV0IHBhdHRlcm47XG4gICAgICBpZiAodGhpcy5jbGFzc2lmaWNhdGlvbiA9PT0gJ2VtYWlsJykge1xuICAgICAgICBwYXR0ZXJuID0gL14oPzooLis/KVxccyo8KFxcdyspKFtcXC0rLl1bXFx3XSspKkAoXFx3W1xcLVxcd10qXFwuKXsxLDV9KFtBLVphLXpdezIsNn0pPnxbXCInXXsxfSguKz8pW1wiJ117MX1cXHMqPChcXHcrKShbXFwtKy5dW1xcd10rKSpAKFxcd1tcXC1cXHddKlxcLil7MSw1fShbQS1aYS16XXsyLDZ9KT58KFxcdyspKFtcXC0rLl1bXFx3XSspKkAoXFx3W1xcLVxcd10qXFwuKXsxLDV9KFtBLVphLXpdezIsNn0pKSQvO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLmNsYXNzaWZpY2F0aW9uID09PSAndXJsJykge1xuICAgICAgICBwYXR0ZXJuID0gLyhodHRwfGZ0cHxodHRwcyk6XFwvXFwvW1xcdy1dKyhcXC5bXFx3LV0rKSsoW1xcdy4sQD9ePSUmYW1wOzpcXC9+KyMtXSpbXFx3QD9ePSUmYW1wO1xcL34rIy1dKT8vO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHBhdHRlcm4gPyBwYXR0ZXJuLnRlc3Qoc3RyaW5nKSA6IHRydWU7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfdmFsaWRhdGUoKSB7XG4gICAgbGV0IGVycjtcbiAgICAvLyB2YWxpZGF0ZSByZWd1bGFyIGV4cHJlc3Npb25cbiAgICBpZiAodGhpcy52YWx1ZSAmJiB0aGlzLnJlZ2V4KSB7XG4gICAgICBpZiAodGhpcy5tdWx0aXNlbGVjdCkge1xuICAgICAgICBpZiAodGhpcy52YWx1ZS5sZW5ndGggPiAwICYmICEhdGhpcy52YWx1ZS5maW5kKHYgPT4gIVJlZ0V4cCh0aGlzLnJlZ2V4KS50ZXN0KHYpKSkge1xuICAgICAgICAgIGVyciA9IHt9O1xuICAgICAgICAgIGVyclsncmVnZXgnXSA9IHtcbiAgICAgICAgICAgIHZhbGlkOiBmYWxzZVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKCFSZWdFeHAodGhpcy5yZWdleCkudGVzdCh0aGlzLnZhbHVlKSkge1xuICAgICAgICAgIGVyciA9IHt9O1xuICAgICAgICAgIGVyclsncmVnZXgnXSA9IHtcbiAgICAgICAgICAgIHZhbGlkOiBmYWxzZVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAvLyB2YWxpZGF0ZSBjbGFzc2lmaWNhdGlvbiBzZXR0aW5nc1xuICAgIGlmICh0aGlzLnZhbHVlICYmIHRoaXMuY2xhc3NpZmljYXRpb24pIHtcbiAgICAgIGlmICh0aGlzLm11bHRpc2VsZWN0KSB7XG4gICAgICAgIGZvciAobGV0IHYgb2YgdGhpcy52YWx1ZSkge1xuICAgICAgICAgIGlmICghdGhpcy52YWxpZGF0ZUNsYXNzaWZpY2F0aW9uKHYpKSB7XG4gICAgICAgICAgICBlcnIgPSB7fTtcbiAgICAgICAgICAgIGVyclsnY2xhc3NpZmljYXRpb24nICsgdGhpcy5jbGFzc2lmaWNhdGlvbl0gPSB7XG4gICAgICAgICAgICAgIHZhbGlkOiBmYWxzZVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmICghdGhpcy52YWxpZGF0ZUNsYXNzaWZpY2F0aW9uKHRoaXMudmFsdWUpKSB7XG4gICAgICAgICAgZXJyID0ge307XG4gICAgICAgICAgZXJyWydjbGFzc2lmaWNhdGlvbicgKyB0aGlzLmNsYXNzaWZpY2F0aW9uXSA9IHtcbiAgICAgICAgICAgIHZhbGlkOiBmYWxzZVxuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgLy8gdmFsaWRhdGUgbGVuZ3RoIGhlcmUgd2hlbiBtdWx0aXNlbGVjdFxuICAgIGlmICh0aGlzLnZhbHVlICYmIHRoaXMudmFsdWUgIT09IG51bGwpIHtcbiAgICAgIGlmICh0aGlzLm11bHRpc2VsZWN0KSB7XG4gICAgICAgIGlmICh0aGlzLnZhbHVlLmxlbmd0aCA+IDAgJiYgISF0aGlzLnZhbHVlLmZpbmQodiA9PiB2Lmxlbmd0aCA8IHRoaXMubWluTGVuZ3RoKSkge1xuICAgICAgICAgIGVyciA9IHt9O1xuICAgICAgICAgIGVyclsnbWlubGVuZ3RoJ10gPSB7XG4gICAgICAgICAgICB2YWxpZDogZmFsc2VcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMudmFsdWUubGVuZ3RoID4gMCAmJiAhIXRoaXMudmFsdWUuZmluZCh2ID0+IHYubGVuZ3RoID4gdGhpcy5tYXhMZW5ndGgpKSB7XG4gICAgICAgICAgZXJyID0ge307XG4gICAgICAgICAgZXJyWydtYXhsZW5ndGgnXSA9IHtcbiAgICAgICAgICAgIHZhbGlkOiBmYWxzZVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKHRoaXMudmFsdWUubGVuZ3RoID4gMCAmJiB0aGlzLnZhbHVlLmxlbmd0aCA8IHRoaXMubWluTGVuZ3RoKSB7XG4gICAgICAgICAgZXJyID0ge307XG4gICAgICAgICAgZXJyWydtaW5sZW5ndGgnXSA9IHtcbiAgICAgICAgICAgIHZhbGlkOiBmYWxzZVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy52YWx1ZS5sZW5ndGggPiB0aGlzLm1heExlbmd0aCkge1xuICAgICAgICAgIGVyciA9IHt9O1xuICAgICAgICAgIGVyclsnbWF4bGVuZ3RoJ10gPSB7XG4gICAgICAgICAgICB2YWxpZDogZmFsc2VcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgLy8gdmFsaWRhdGUgaW52YWxpZCBpZiBvbmx5IHdoaXRlc3BhY2VzXG4gICAgaWYgKHRoaXMudmFsdWUgJiYgdGhpcy52YWx1ZSAhPT0gbnVsbCkge1xuICAgICAgaWYgKHRoaXMubXVsdGlzZWxlY3QpIHtcbiAgICAgICAgZm9yIChsZXQgdiBvZiB0aGlzLnZhbHVlKSB7XG4gICAgICAgICAgaWYgKHYubGVuZ3RoICYmICF2LnRyaW0oKS5sZW5ndGgpIHtcbiAgICAgICAgICAgIGVyciA9IHt9O1xuICAgICAgICAgICAgZXJyWydvbmx5V2hpdGVzcGFjZXMnXSA9IHtcbiAgICAgICAgICAgICAgdmFsaWQ6IGZhbHNlXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAodGhpcy52YWx1ZS5sZW5ndGggJiYgIXRoaXMudmFsdWUudHJpbSgpLmxlbmd0aCkge1xuICAgICAgICAgIGVyciA9IHt9O1xuICAgICAgICAgIGVyclsnb25seVdoaXRlc3BhY2VzJ10gPSB7XG4gICAgICAgICAgICB2YWxpZDogZmFsc2VcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy52YWxpZCA9ICFlcnI7XG4gICAgcmV0dXJuIGVyciB8fCBudWxsO1xuICB9XG5cbiAgLy8gcmV0dXJucyBudWxsIHdoZW4gdmFsaWQgZWxzZSB0aGUgdmFsaWRhdGlvbiBvYmplY3RcbiAgcHVibGljIHZhbGlkYXRlKGM6IFVudHlwZWRGb3JtQ29udHJvbCkge1xuICAgIHJldHVybiB0aGlzLl92YWxpZGF0ZSgpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZW8tZm9ybS1zdHJpbmdcIj5cblxuICA8aW5wdXQgKm5nSWY9XCIhbXVsdGlsaW5lICYmICFtdWx0aXNlbGVjdCAmJiAhYXV0b2NvbXBsZXRlXCIgdHlwZT1cInRleHRcIiAoYmx1cik9XCJvbkJsdXIoKVwiIFtyZWFkb25seV09XCJyZWFkb25seVwiXG4gICAgW2Rpc2FibGVkXT1cInJlYWRvbmx5XCIgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiIChuZ01vZGVsQ2hhbmdlKT1cIm9uVmFsdWVDaGFuZ2UoJGV2ZW50KVwiIC8+XG5cbiAgPCEtLSBzaW5nbGUgbGluZSBpbnB1dCB3aXRoIGF1dG9jb21wbGV0ZSAtLT5cbiAgPHl2Yy1hdXRvY29tcGxldGUgKm5nSWY9XCIhbXVsdGlsaW5lICYmICFtdWx0aXNlbGVjdCAmJiBhdXRvY29tcGxldGVcIiAjYXV0b2NvbXBsZXRlIFsobmdNb2RlbCldPVwidmFsdWVcIlxuICAgIFtkaXNhYmxlZF09XCJyZWFkb25seVwiIFthdXRvY29tcGxldGVWYWx1ZXNdPVwiYXV0b2NvbXBsZXRlUmVzXCIgKGJsdXIpPVwib25CbHVyKClcIlxuICAgIChzdWdnZXN0aW9uU2VsZWN0KT1cIm9uVmFsdWVDaGFuZ2UoJGV2ZW50KVwiIChuZ01vZGVsQ2hhbmdlKT1cIm9uVmFsdWVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgKGF1dG9jb21wbGV0ZUZuYyk9XCJhdXRvY29tcGxldGVGbigkZXZlbnQpXCI+XG4gIDwveXZjLWF1dG9jb21wbGV0ZT5cblxuICA8IS0tIHNpbmdsZSBsaW5lIGlucHV0IHdpdGggbXVsdGlzZWxlY3QtLT5cbiAgPHl2Yy1jaGlwcyAqbmdJZj1cIiFtdWx0aWxpbmUgJiYgbXVsdGlzZWxlY3QgJiYgIWF1dG9jb21wbGV0ZVwiIFsobmdNb2RlbCldPVwidmFsdWVcIiBbZGlzYWJsZWRdPVwicmVhZG9ubHlcIlxuICAgIChibHVyKT1cIm9uQmx1cigpXCIgKG5nTW9kZWxDaGFuZ2UpPVwib25WYWx1ZUNoYW5nZSgkZXZlbnQpXCI+XG4gIDwveXZjLWNoaXBzPlxuXG4gIDwhLS0gc2luZ2xlIGxpbmUgaW5wdXQgd2l0aCBtdWx0aXNlbGVjdCBhbmQgYXV0b2NvbXBsZXRlIC0tPlxuICA8eXZjLWF1dG9jb21wbGV0ZSAqbmdJZj1cIiFtdWx0aWxpbmUgJiYgbXVsdGlzZWxlY3QgJiYgYXV0b2NvbXBsZXRlXCIgW2F1dG9jb21wbGV0ZVZhbHVlc109XCJhdXRvY29tcGxldGVSZXNcIlxuICAgIFttdWx0aXBsZV09XCJ0cnVlXCIgW2Rpc2FibGVkXT1cInJlYWRvbmx5XCIgKGJsdXIpPVwib25CbHVyKClcIiAoYXV0b2NvbXBsZXRlRm5jKT1cImF1dG9jb21wbGV0ZUZuKCRldmVudClcIlxuICAgIFsobmdNb2RlbCldPVwidmFsdWVcIiAobmdNb2RlbENoYW5nZSk9XCJvblZhbHVlQ2hhbmdlKCRldmVudClcIj5cbiAgPC95dmMtYXV0b2NvbXBsZXRlPlxuXG4gIDwhLS0gbXVsdGkgbGluZSB0ZXh0IGlucHV0cyAtLT5cbiAgPHRleHRhcmVhIGNsYXNzPVwiaW5wdXQtdGV4dGFyZWEgc2l6ZS17e3NpemV9fVwiICpuZ0lmPVwibXVsdGlsaW5lXCIgKGJsdXIpPVwib25CbHVyKClcIiBbKG5nTW9kZWwpXT1cInZhbHVlXCJcbiAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIiBbZGlzYWJsZWRdPVwicmVhZG9ubHlcIiAobmdNb2RlbENoYW5nZSk9XCJvblZhbHVlQ2hhbmdlKCRldmVudClcIj48L3RleHRhcmVhPlxuXG4gIDxkaXYgY2xhc3M9XCJjbGFzc2lmeVwiIFtuZ0NsYXNzXT1cIntlbXB0eTogIXZhbHVlIHx8IHNpdHVhdGlvbiA9PT0gJ1NFQVJDSCd9XCI+XG4gICAgPGEgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj1cIm1haWx0bzp7e2Zvcm1hdGVkVmFsdWV9fVwiICpuZ0lmPVwiY2xhc3NpZmljYXRpb24gPT09ICdlbWFpbCcgJiYgdmFsaWRcIj5cbiAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgLTk2MCA5NjAgOTYwXCIgd2lkdGg9XCIyMFwiPlxuICAgICAgICA8cGF0aFxuICAgICAgICAgIGQ9XCJNMTgwLjMwOS0yMTIuMDAxcS0yNy4wMDggMC00NS42NTgtMTguNjYyLTE4LjY1LTE4LjY2Mi0xOC42NS00NS42ODZ2LTQwNy42MjZxMC0yNy4wMjQgMTguNjUtNDUuNTI0dDQ1LjY1OC0xOC41aDU5OS4zODJxMjcuMDA4IDAgNDUuNjU4IDE4LjY2MiAxOC42NSAxOC42NjIgMTguNjUgNDUuNjg2djQwNy42MjZxMCAyNy4wMjQtMTguNjUgNDUuNTI0dC00NS42NTggMTguNUgxODAuMzA5Wk00ODAtNDQ5LjY5NCAxNjgtNjMzLjMwOXYzNTdxMCA1LjM4NSAzLjQ2MiA4Ljg0NyAzLjQ2MiAzLjQ2MiA4Ljg0NyAzLjQ2Mmg1OTkuMzgycTUuMzg1IDAgOC44NDctMy40NjIgMy40NjItMy40NjIgMy40NjItOC44NDd2LTM1N0w0ODAtNDQ5LjY5NFpNNDgwLTUxN2wzMDUuODQ2LTE3OUgxNzQuMTU0TDQ4MC01MTdaTTE2OC02MzMuMzA5Vi02OTYtMjc2LjMwOXEwIDUuMzg1IDMuNDYyIDguODQ3IDMuNDYyIDMuNDYyIDguODQ3IDMuNDYySDE2OHYtMzY5LjMwOVpcIiAvPlxuICAgICAgPC9zdmc+XG4gICAgPC9hPlxuICAgIDxhIHRhcmdldD1cIl9ibGFua1wiIGhyZWY9XCJ7e3ZhbHVlfX1cIiAqbmdJZj1cImNsYXNzaWZpY2F0aW9uID09PSAndXJsJyAmJiB2YWxpZFwiPlxuICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAtOTYwIDk2MCA5NjBcIiB3aWR0aD1cIjIwXCI+XG4gICAgICAgIDxwYXRoXG4gICAgICAgICAgZD1cIk00ODAtMTE2LjAwMXEtNzUuMTU0IDAtMTQxLjQ5OS0yOC40NjItNjYuMzQ2LTI4LjQ2MS0xMTUuOTYyLTc4LjA3Ni00OS42MTUtNDkuNjE2LTc4LjA3Ni0xMTUuOTYyUTExNi4wMDEtNDA0Ljg0NiAxMTYuMDAxLTQ4MHEwLTc1Ljc2OSAyOC40NjItMTQxLjgwNyAyOC40NjEtNjYuMDM4IDc4LjA3Ni0xMTUuNjU0IDQ5LjYxNi00OS42MTUgMTE1Ljk2Mi03OC4wNzZRNDA0Ljg0Ni04NDMuOTk5IDQ4MC04NDMuOTk5cTc1Ljc2OSAwIDE0MS44MDcgMjguNDYyIDY2LjAzOCAyOC40NjEgMTE1LjY1NCA3OC4wNzYgNDkuNjE1IDQ5LjYxNiA3OC4wNzYgMTE1LjY1NFE4NDMuOTk5LTU1NS43NjkgODQzLjk5OS00ODBxMCA3NS4xNTQtMjguNDYyIDE0MS40OTktMjguNDYxIDY2LjM0Ni03OC4wNzYgMTE1Ljk2Mi00OS42MTYgNDkuNjE1LTExNS42NTQgNzguMDc2UTU1NS43NjktMTE2LjAwMSA0ODAtMTE2LjAwMVptMC01My44NDVxMjEuNjE2LTIxLjYxNiA0MC41MzktNzAuNDI0IDE4LjkyMy00OC44MDggMjkuMDc3LTEwOC44MDhINDEwLjM4NHExMC45MjMgNjEuNTM5IDI5LjQ2MiAxMTAuMzQ3IDE4LjUzOCA0OC44MDggNDAuMTU0IDY4Ljg4NVptLTY0LjQ2LTVxLTE5LTMwLTM0LjMwOC03NS41Mzl0LTIzLjQ2Mi05OC42OTNIMTk3LjA3NnEzMS42OTMgNjkuMzA5IDg5LjUwMSAxMTUuMTk0IDU3LjgwOSA0NS44ODUgMTI4Ljk2MyA1OS4wMzhabTEyOC45MiAwcTcxLjE1NC0xMy4xNTMgMTI4Ljk2My01OS4wMzggNTcuODA4LTQ1Ljg4NSA4OS41MDEtMTE1LjE5NEg2MDIuMjNRNTkyLjE1My0yOTUuNTM5IDU3Ni44NDUtMjUwcS0xNS4zMDggNDUuNTM5LTMyLjM4NSA3NS4xNTRabTc5LjQ2My0yMjYuMjNoMTczLjY5M3E0LjIzMS0yMS4zMDggNi4wMzktNDAuNzMxIDEuODA4LTE5LjQyNCAxLjgwOC0zOC4xOTN0LTEuODA4LTM4LjY5M3EtMS44MDgtMTkuOTIzLTYuMDM5LTQwLjIzMUg2MjMuOTIzcTEuMjMxIDE5LjM4NSAxLjE1NCA0MC4zODUtLjA3NyAyMS0uMDc3IDQwLjUzOXQuMDc3IDM5LjUzOXEuMDc3IDIwLTEuMTU0IDM3LjM4NVptLTIxOC4zMDggMGgxNDguNzdxMi43NjktMjIuMzA4IDMuNDYyLTQxLjM0Ny42OTItMTkuMDM4LjY5Mi0zNy41NzcgMC0xOC41MzktLjY5Mi0zOC4wNzctLjY5My0xOS41MzktMy40NjItNDAuODQ3aC0xNDguNzdxLTIuNzY5IDIxLjMwOC0zLjQ2MiA0MC44NDctLjY5MiAxOS41MzgtLjY5MiAzOC4wNzcgMCAxOC41MzkuNjkyIDM4LjA3Ny42OTMgMTkuNTM5IDMuNDYyIDQwLjg0N1ptLTI0My4yMzEgMGgxNzMuNjkzcS0xLjIzMS0xOS4zODUtMS4xNTQtNDAuMzg1LjA3Ny0yMSAuMDc3LTQwLjUzOXQtLjA3Ny0zOS41MzlxLS4wNzctMjAgMS4xNTQtMzcuMzg1SDE2Mi4zODRxLTQuMjMxIDIxLjMwOC02LjAzOSA0MC43MzEtMS44MDggMTkuNDI0LTEuODA4IDM4LjE5M3QxLjgwOCAzOC4xOTNxMS44MDggMTkuNDIzIDYuMDM5IDQwLjczMVpNNjAyLjIzLTYxMC45MjJoMTYwLjY5NFE3MzAuODQ2LTY4MSA2NzQtNzI2LjExNnEtNTYuODQ3LTQ1LjExNS0xMjkuNTQtNTkuNDIzIDE5IDMxLjkyMyAzMy45MjMgNzYuODg1IDE0LjkyNCA0NC45NjIgMjMuODQ3IDk3LjczMlptLTE5MS44NDYgMGgxMzkuMjMycS0xMC45MjMtNjEuMTU0LTMwLjAzOS0xMTAuOTI0LTE5LjExNS00OS43NjktMzkuNTc3LTY4LjMwOC0yMC40NjIgMTguNTM5LTM5LjU3NyA2OC4zMDgtMTkuMTE2IDQ5Ljc3LTMwLjAzOSAxMTAuOTI0Wm0tMjEzLjMwOCAwSDM1Ny43N3E4LjkyMy01Mi43NyAyMy44NDctOTcuNzMyIDE0LjkyMy00NC45NjIgMzMuOTIzLTc2Ljg4NS03My4wNzcgMTQuMzA4LTEyOS43MzIgNTkuNjE2LTU2LjY1NCA0NS4zMDgtODguNzMyIDExNS4wMDFaXCIgLz5cbiAgICAgIDwvc3ZnPlxuICAgIDwvYT5cbiAgPC9kaXY+XG5cbjwvZGl2PlxuIl19
257
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZW8tZnJhbWV3b3JrL2Zvcm0tZWxlbWVudHMvc3RyaW5nL3N0cmluZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWZyYW1ld29yay9mb3JtLWVsZW1lbnRzL3N0cmluZy9zdHJpbmcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzNELE9BQU8sRUFJTCxpQkFBaUIsRUFDakIsYUFBYSxFQUNkLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFpQixLQUFLLEVBQWlCLE1BQU0sY0FBYyxDQUFDOzs7Ozs7O0FBb0JuRSxNQUFNLE9BQU8sZUFBZTtJQUcxQixJQUNJLFlBQVksQ0FBQyxPQUFnQjtRQUMvQixJQUFJLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQztJQUMvQixDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7SUFzQkQsWUFBb0IsT0FBdUI7UUFBdkIsWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7UUFPM0Msb0JBQWUsR0FBRyxDQUFDLENBQU0sRUFBRSxFQUFFO1FBQzdCLENBQUMsQ0FBQztJQVBGLENBQUM7SUFFTyxVQUFVO1FBQ2hCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFLRCxZQUFZLENBQUMsS0FBSztRQUNoQiwwQ0FBMEM7UUFDMUMsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FB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ZUFBZSx3VUFiZjtRQUNUO1lBQ0UsT0FBTyxFQUFFLGlCQUFpQjtZQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGVBQWUsQ0FBQztZQUM5QyxLQUFLLEVBQUUsSUFBSTtTQUNaO1FBQ0Q7WUFDRSxPQUFPLEVBQUUsYUFBYTtZQUN0QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGVBQWUsQ0FBQztZQUM5QyxLQUFLLEVBQUUsSUFBSTtTQUNaO0tBQ0YsMEJDMUJILG02SUEyQ0E7MkZEZmEsZUFBZTtrQkFqQjNCLFNBQVM7K0JBQ0UsV0FBVyxhQUdWO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLGdCQUFnQixDQUFDOzRCQUM5QyxLQUFLLEVBQUUsSUFBSTt5QkFDWjt3QkFDRDs0QkFDRSxPQUFPLEVBQUUsYUFBYTs0QkFDdEIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsZ0JBQWdCLENBQUM7NEJBQzlDLEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGO3FHQU1HLFlBQVk7c0JBRGYsS0FBSztnQkFTRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUVHLElBQUk7c0JBQVosS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgZm9yd2FyZFJlZiwgSW5wdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgVW50eXBlZEZvcm1Db250cm9sLFxuICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgVmFsaWRhdG9yLFxuICBOR19WQUxVRV9BQ0NFU1NPUixcbiAgTkdfVkFMSURBVE9SU1xufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge0JhY2tlbmRTZXJ2aWNlLCBVdGlscywgRm9ybWF0ZWRNYWlsVG99IGZyb20gJ0Blby1zZGsvY29yZSc7XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZW8tc3RyaW5nJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3N0cmluZy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3N0cmluZy5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFN0cmluZ0NvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFN0cmluZ0NvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBTdHJpbmdDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgVmFsaWRhdG9yIHtcblxuICBwcml2YXRlIF9hdXRvY29tcGxldGU6IGJvb2xlYW47XG4gIEBJbnB1dCgpXG4gIHNldCBhdXRvY29tcGxldGUoYXV0b0NvbTogYm9vbGVhbikge1xuICAgIHRoaXMuX2F1dG9jb21wbGV0ZSA9IGF1dG9Db207XG4gIH1cblxuICBnZXQgYXV0b2NvbXBsZXRlKCkge1xuICAgIHJldHVybiB0aGlzLl9hdXRvY29tcGxldGU7XG4gIH1cblxuICBASW5wdXQoKSBtdWx0aXNlbGVjdDogYm9vbGVhbjtcbiAgQElucHV0KCkgbXVsdGlsaW5lOiBib29sZWFuO1xuICBASW5wdXQoKSByZWFkb25seTogYm9vbGVhbjtcbiAgQElucHV0KCkgYXV0b2ZvY3VzOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpIGNsYXNzaWZpY2F0aW9uOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHNpdHVhdGlvbjogc3RyaW5nO1xuICBASW5wdXQoKSByZWdleDogc3RyaW5nO1xuICBASW5wdXQoKSBxbmFtZTogc3RyaW5nO1xuICAvLyBjb3VsZCBiZSBzbWFsbCwgbWVkaXVtLCBsYXJnZVxuICBASW5wdXQoKSBzaXplOiBzdHJpbmc7XG4gIEBJbnB1dCgpIG1pbkxlbmd0aDogbnVtYmVyO1xuICBASW5wdXQoKSBtYXhMZW5ndGg6IG51bWJlcjtcblxuICBhdXRvY29tcGxldGVSZXM6IGFueVtdO1xuICBmb3JtYXRlZFZhbHVlOiBGb3JtYXRlZE1haWxUbztcbiAgLy8gbW9kZWwgdmFsdWVcbiAgdmFsdWU7XG4gIHZhbGlkOiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYmFja2VuZDogQmFja2VuZFNlcnZpY2UpIHtcbiAgfVxuXG4gIHByaXZhdGUgX3Byb3BhZ2F0ZSgpIHtcbiAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSh0aGlzLnZhbHVlPy5sZW5ndGggPyB0aGlzLnZhbHVlIDogbnVsbCk7XG4gIH1cblxuICBwcm9wYWdhdGVDaGFuZ2UgPSAoXzogYW55KSA9PiB7XG4gIH07XG5cbiAgb25LZXlVcEVudGVyKGV2ZW50KSB7XG4gICAgLy8gYXBwbGllcyB0byBtdWx0aXNlbGVjdCBhbmQgYXV0b2NvbXBsZXRlXG4gICAgY29uc3QgaW5wdXQgPSBldmVudC50YXJnZXQudmFsdWUudHJpbSgpO1xuICAgIGlmIChpbnB1dCkge1xuICAgICAgdGhpcy52YWx1ZSA9IHRoaXMudmFsdWUgPyB0aGlzLnZhbHVlIDogW107XG4gICAgICB0aGlzLnZhbHVlID0gWy4uLnRoaXMudmFsdWUsIGlucHV0XTtcbiAgICAgIHRoaXMuX3Byb3BhZ2F0ZSgpO1xuICAgICAgZXZlbnQudGFyZ2V0LnZhbHVlID0gJyc7XG4gICAgfVxuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgdGhpcy5mb3JtYXRlZFZhbHVlID0gVXRpbHMuZm9ybWF0TWFpbFRvKHZhbHVlLCB0aGlzLmNsYXNzaWZpY2F0aW9uID09PSAnZW1haWwnKTtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWUgfHwgbnVsbDtcbiAgICB0aGlzLl92YWxpZGF0ZSgpO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgfVxuXG4gIG9uVmFsdWVDaGFuZ2UoZXZ0KSB7XG4gICAgdGhpcy5mb3JtYXRlZFZhbHVlID0gVXRpbHMuZm9ybWF0TWFpbFRvKGV2dCwgdGhpcy5jbGFzc2lmaWNhdGlvbiA9PT0gJ2VtYWlsJyk7XG4gICAgdGhpcy52YWx1ZSA9IGV2dDtcbiAgICB0aGlzLl9wcm9wYWdhdGUoKVxuICB9XG5cbiAgb25CbHVyKCkge1xuICAgIGlmICh0aGlzLnRyaW1WYWx1ZSgpKSB7XG4gICAgICB0aGlzLl9wcm9wYWdhdGUoKVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUcmltcyB0aGUgY3VycmVudCB2YWx1ZSBhbmQgcmV0dXJucyB3ZXRoZXIgb3Igbm90IGl0IGhhcyBiZWVuIHRyaW1tZWRcbiAgICovXG4gIHByaXZhdGUgdHJpbVZhbHVlKCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLnZhbHVlKSB7XG4gICAgICBpZiAodGhpcy5tdWx0aXNlbGVjdCkge1xuICAgICAgICBjb25zdCBsZW5ndGhCZWZvcmUgPSB0aGlzLnZhbHVlLmpvaW4oJycpLmxlbmd0aDtcbiAgICAgICAgdGhpcy52YWx1ZSA9IHRoaXMudmFsdWUubWFwKHYgPT4gdi50cmltKCkpO1xuICAgICAgICByZXR1cm4gdGhpcy52YWx1ZS5qb2luKCcnKS5sZW5ndGggIT09IGxlbmd0aEJlZm9yZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGxlbmd0aEJlZm9yZSA9IHRoaXMudmFsdWUubGVuZ3RoO1xuICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy52YWx1ZS50cmltKCk7XG4gICAgICAgIHJldHVybiB0aGlzLnZhbHVlLmxlbmd0aCAhPT0gbGVuZ3RoQmVmb3JlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBhdXRvY29tcGxldGVGbih0ZXJtOiBzdHJpbmcpIHtcbiAgICBjb25zdCB1cmkgPSBgL2F1dG9jb21wbGV0ZS9lbGVtZW50P3ByZWZpeD0ke2VuY29kZVVSSUNvbXBvbmVudCh0ZXJtKX0mcW5hbWU9JHt0aGlzLnFuYW1lfWA7XG4gICAgY29uc3QgYmFzZSA9IHRoaXMuYmFja2VuZC5nZXRTZWFyY2hCYXNlKCk7XG4gICAgdGhpcy5iYWNrZW5kXG4gICAgICAuZ2V0SnNvbih1cmksIGJhc2UpXG4gICAgICAuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgIGxldCByID0gW107XG4gICAgICAgIHJlcy5mb3JFYWNoKGkgPT4ge1xuICAgICAgICAgIGlmICgoIUFycmF5LmlzQXJyYXkodGhpcy52YWx1ZSkgJiYgdGhpcy52YWx1ZSAhPT0gaS52YWx1ZSkgfHwgKEFycmF5LmlzQXJyYXkodGhpcy52YWx1ZSkgJiYgIXRoaXMudmFsdWUuZmluZCh2ID0+IHYgPT09IGkudmFsdWUpKSkge1xuICAgICAgICAgICAgci5wdXNoKGkudmFsdWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuYXV0b2NvbXBsZXRlUmVzID0gci5zbGljZSgwLCAxMCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgdmFsaWRhdGVDbGFzc2lmaWNhdGlvbihzdHJpbmcpOiBib29sZWFuIHtcblxuICAgIGlmICh0aGlzLnNpdHVhdGlvbiA9PT0gJ1NFQVJDSCcpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICBsZXQgcGF0dGVybjtcbiAgICAgIGlmICh0aGlzLmNsYXNzaWZpY2F0aW9uID09PSAnZW1haWwnKSB7XG4gICAgICAgIHBhdHRlcm4gPSAvXig/OiguKz8pXFxzKjwoXFx3KykoW1xcLSsuXVtcXHddKykqQChcXHdbXFwtXFx3XSpcXC4pezEsNX0oW0EtWmEtel17Miw2fSk+fFtcIiddezF9KC4rPylbXCInXXsxfVxccyo8KFxcdyspKFtcXC0rLl1bXFx3XSspKkAoXFx3W1xcLVxcd10qXFwuKXsxLDV9KFtBLVphLXpdezIsNn0pPnwoXFx3KykoW1xcLSsuXVtcXHddKykqQChcXHdbXFwtXFx3XSpcXC4pezEsNX0oW0EtWmEtel17Miw2fSkpJC87XG4gICAgICB9IGVsc2UgaWYgKHRoaXMuY2xhc3NpZmljYXRpb24gPT09ICd1cmwnKSB7XG4gICAgICAgIHBhdHRlcm4gPSAvKGh0dHB8ZnRwfGh0dHBzKTpcXC9cXC9bXFx3LV0rKFxcLltcXHctXSspKyhbXFx3LixAP149JSZhbXA7OlxcL34rIy1dKltcXHdAP149JSZhbXA7XFwvfisjLV0pPy87XG4gICAgICB9XG4gICAgICByZXR1cm4gcGF0dGVybiA/IHBhdHRlcm4udGVzdChzdHJpbmcpIDogdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF92YWxpZGF0ZSgpIHtcbiAgICBsZXQgZXJyO1xuICAgIC8vIHZhbGlkYXRlIHJlZ3VsYXIgZXhwcmVzc2lvblxuICAgIGlmICh0aGlzLnZhbHVlICYmIHRoaXMucmVnZXgpIHtcbiAgICAgIGlmICh0aGlzLm11bHRpc2VsZWN0KSB7XG4gICAgICAgIGlmICh0aGlzLnZhbHVlLmxlbmd0aCA+IDAgJiYgISF0aGlzLnZhbHVlLmZpbmQodiA9PiAhUmVnRXhwKHRoaXMucmVnZXgpLnRlc3QodikpKSB7XG4gICAgICAgICAgZXJyID0ge307XG4gICAgICAgICAgZXJyWydyZWdleCddID0ge1xuICAgICAgICAgICAgdmFsaWQ6IGZhbHNlXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoIVJlZ0V4cCh0aGlzLnJlZ2V4KS50ZXN0KHRoaXMudmFsdWUpKSB7XG4gICAgICAgICAgZXJyID0ge307XG4gICAgICAgICAgZXJyWydyZWdleCddID0ge1xuICAgICAgICAgICAgdmFsaWQ6IGZhbHNlXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIC8vIHZhbGlkYXRlIGNsYXNzaWZpY2F0aW9uIHNldHRpbmdzXG4gICAgaWYgKHRoaXMudmFsdWUgJiYgdGhpcy5jbGFzc2lmaWNhdGlvbikge1xuICAgICAgaWYgKHRoaXMubXVsdGlzZWxlY3QpIHtcbiAgICAgICAgZm9yIChsZXQgdiBvZiB0aGlzLnZhbHVlKSB7XG4gICAgICAgICAgaWYgKCF0aGlzLnZhbGlkYXRlQ2xhc3NpZmljYXRpb24odikpIHtcbiAgICAgICAgICAgIGVyciA9IHt9O1xuICAgICAgICAgICAgZXJyWydjbGFzc2lmaWNhdGlvbicgKyB0aGlzLmNsYXNzaWZpY2F0aW9uXSA9IHtcbiAgICAgICAgICAgICAgdmFsaWQ6IGZhbHNlXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKCF0aGlzLnZhbGlkYXRlQ2xhc3NpZmljYXRpb24odGhpcy52YWx1ZSkpIHtcbiAgICAgICAgICBlcnIgPSB7fTtcbiAgICAgICAgICBlcnJbJ2NsYXNzaWZpY2F0aW9uJyArIHRoaXMuY2xhc3NpZmljYXRpb25dID0ge1xuICAgICAgICAgICAgdmFsaWQ6IGZhbHNlXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAvLyB2YWxpZGF0ZSBsZW5ndGggaGVyZSB3aGVuIG11bHRpc2VsZWN0XG4gICAgaWYgKHRoaXMudmFsdWUgJiYgdGhpcy52YWx1ZSAhPT0gbnVsbCkge1xuICAgICAgaWYgKHRoaXMubXVsdGlzZWxlY3QpIHtcbiAgICAgICAgaWYgKHRoaXMudmFsdWUubGVuZ3RoID4gMCAmJiAhIXRoaXMudmFsdWUuZmluZCh2ID0+IHYubGVuZ3RoIDwgdGhpcy5taW5MZW5ndGgpKSB7XG4gICAgICAgICAgZXJyID0ge307XG4gICAgICAgICAgZXJyWydtaW5sZW5ndGgnXSA9IHtcbiAgICAgICAgICAgIHZhbGlkOiBmYWxzZVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy52YWx1ZS5sZW5ndGggPiAwICYmICEhdGhpcy52YWx1ZS5maW5kKHYgPT4gdi5sZW5ndGggPiB0aGlzLm1heExlbmd0aCkpIHtcbiAgICAgICAgICBlcnIgPSB7fTtcbiAgICAgICAgICBlcnJbJ21heGxlbmd0aCddID0ge1xuICAgICAgICAgICAgdmFsaWQ6IGZhbHNlXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAodGhpcy52YWx1ZS5sZW5ndGggPiAwICYmIHRoaXMudmFsdWUubGVuZ3RoIDwgdGhpcy5taW5MZW5ndGgpIHtcbiAgICAgICAgICBlcnIgPSB7fTtcbiAgICAgICAgICBlcnJbJ21pbmxlbmd0aCddID0ge1xuICAgICAgICAgICAgdmFsaWQ6IGZhbHNlXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnZhbHVlLmxlbmd0aCA+IHRoaXMubWF4TGVuZ3RoKSB7XG4gICAgICAgICAgZXJyID0ge307XG4gICAgICAgICAgZXJyWydtYXhsZW5ndGgnXSA9IHtcbiAgICAgICAgICAgIHZhbGlkOiBmYWxzZVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAvLyB2YWxpZGF0ZSBpbnZhbGlkIGlmIG9ubHkgd2hpdGVzcGFjZXNcbiAgICBpZiAodGhpcy52YWx1ZSAmJiB0aGlzLnZhbHVlICE9PSBudWxsKSB7XG4gICAgICBpZiAodGhpcy5tdWx0aXNlbGVjdCkge1xuICAgICAgICBmb3IgKGxldCB2IG9mIHRoaXMudmFsdWUpIHtcbiAgICAgICAgICBpZiAodi5sZW5ndGggJiYgIXYudHJpbSgpLmxlbmd0aCkge1xuICAgICAgICAgICAgZXJyID0ge307XG4gICAgICAgICAgICBlcnJbJ29ubHlXaGl0ZXNwYWNlcyddID0ge1xuICAgICAgICAgICAgICB2YWxpZDogZmFsc2VcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmICh0aGlzLnZhbHVlLmxlbmd0aCAmJiAhdGhpcy52YWx1ZS50cmltKCkubGVuZ3RoKSB7XG4gICAgICAgICAgZXJyID0ge307XG4gICAgICAgICAgZXJyWydvbmx5V2hpdGVzcGFjZXMnXSA9IHtcbiAgICAgICAgICAgIHZhbGlkOiBmYWxzZVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLnZhbGlkID0gIWVycjtcbiAgICByZXR1cm4gZXJyIHx8IG51bGw7XG4gIH1cblxuICAvLyByZXR1cm5zIG51bGwgd2hlbiB2YWxpZCBlbHNlIHRoZSB2YWxpZGF0aW9uIG9iamVjdFxuICBwdWJsaWMgdmFsaWRhdGUoYzogVW50eXBlZEZvcm1Db250cm9sKSB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhbGlkYXRlKCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJlby1mb3JtLXN0cmluZ1wiPlxuXG4gIDxpbnB1dCAqbmdJZj1cIiFtdWx0aWxpbmUgJiYgIW11bHRpc2VsZWN0ICYmICFhdXRvY29tcGxldGVcIiB0eXBlPVwidGV4dFwiIChibHVyKT1cIm9uQmx1cigpXCIgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcbiAgICBbZGlzYWJsZWRdPVwicmVhZG9ubHlcIiBbKG5nTW9kZWwpXT1cInZhbHVlXCIgKG5nTW9kZWxDaGFuZ2UpPVwib25WYWx1ZUNoYW5nZSgkZXZlbnQpXCIgLz5cblxuICA8IS0tIHNpbmdsZSBsaW5lIGlucHV0IHdpdGggYXV0b2NvbXBsZXRlIC0tPlxuICA8eXZjLWF1dG9jb21wbGV0ZSAqbmdJZj1cIiFtdWx0aWxpbmUgJiYgIW11bHRpc2VsZWN0ICYmIGF1dG9jb21wbGV0ZVwiICNhdXRvY29tcGxldGUgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiXG4gICAgW2Rpc2FibGVkXT1cInJlYWRvbmx5XCIgW2F1dG9jb21wbGV0ZVZhbHVlc109XCJhdXRvY29tcGxldGVSZXNcIiAoYmx1cik9XCJvbkJsdXIoKVwiXG4gICAgKHN1Z2dlc3Rpb25TZWxlY3QpPVwib25WYWx1ZUNoYW5nZSgkZXZlbnQpXCIgKG5nTW9kZWxDaGFuZ2UpPVwib25WYWx1ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAoYXV0b2NvbXBsZXRlRm5jKT1cImF1dG9jb21wbGV0ZUZuKCRldmVudClcIj5cbiAgPC95dmMtYXV0b2NvbXBsZXRlPlxuXG4gIDwhLS0gc2luZ2xlIGxpbmUgaW5wdXQgd2l0aCBtdWx0aXNlbGVjdC0tPlxuICA8eXZjLWNoaXBzICpuZ0lmPVwiIW11bHRpbGluZSAmJiBtdWx0aXNlbGVjdCAmJiAhYXV0b2NvbXBsZXRlXCIgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiIFtkaXNhYmxlZF09XCJyZWFkb25seVwiXG4gICAgKGJsdXIpPVwib25CbHVyKClcIiAobmdNb2RlbENoYW5nZSk9XCJvblZhbHVlQ2hhbmdlKCRldmVudClcIj5cbiAgPC95dmMtY2hpcHM+XG5cbiAgPCEtLSBzaW5nbGUgbGluZSBpbnB1dCB3aXRoIG11bHRpc2VsZWN0IGFuZCBhdXRvY29tcGxldGUgLS0+XG4gIDx5dmMtYXV0b2NvbXBsZXRlICpuZ0lmPVwiIW11bHRpbGluZSAmJiBtdWx0aXNlbGVjdCAmJiBhdXRvY29tcGxldGVcIiBbYXV0b2NvbXBsZXRlVmFsdWVzXT1cImF1dG9jb21wbGV0ZVJlc1wiXG4gICAgW211bHRpcGxlXT1cInRydWVcIiBbZGlzYWJsZWRdPVwicmVhZG9ubHlcIiAoYmx1cik9XCJvbkJsdXIoKVwiIChhdXRvY29tcGxldGVGbmMpPVwiYXV0b2NvbXBsZXRlRm4oJGV2ZW50KVwiXG4gICAgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiIChuZ01vZGVsQ2hhbmdlKT1cIm9uVmFsdWVDaGFuZ2UoJGV2ZW50KVwiPlxuICA8L3l2Yy1hdXRvY29tcGxldGU+XG5cbiAgPCEtLSBtdWx0aSBsaW5lIHRleHQgaW5wdXRzIC0tPlxuICA8dGV4dGFyZWEgY2xhc3M9XCJpbnB1dC10ZXh0YXJlYSBzaXplLXt7c2l6ZX19XCIgKm5nSWY9XCJtdWx0aWxpbmVcIiAoYmx1cik9XCJvbkJsdXIoKVwiIFsobmdNb2RlbCldPVwidmFsdWVcIlxuICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiIFtkaXNhYmxlZF09XCJyZWFkb25seVwiIChuZ01vZGVsQ2hhbmdlKT1cIm9uVmFsdWVDaGFuZ2UoJGV2ZW50KVwiPjwvdGV4dGFyZWE+XG5cbiAgPGRpdiBjbGFzcz1cImNsYXNzaWZ5XCIgW25nQ2xhc3NdPVwie2VtcHR5OiAhdmFsdWUgfHwgc2l0dWF0aW9uID09PSAnU0VBUkNIJ31cIj5cbiAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPVwibWFpbHRvOnt7Zm9ybWF0ZWRWYWx1ZX19XCIgKm5nSWY9XCJjbGFzc2lmaWNhdGlvbiA9PT0gJ2VtYWlsJyAmJiB2YWxpZFwiPlxuICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAtOTYwIDk2MCA5NjBcIiB3aWR0aD1cIjIwXCI+XG4gICAgICAgIDxwYXRoXG4gICAgICAgICAgZD1cIk0xODAuMzA5LTIxMi4wMDFxLTI3LjAwOCAwLTQ1LjY1OC0xOC42NjItMTguNjUtMTguNjYyLTE4LjY1LTQ1LjY4NnYtNDA3LjYyNnEwLTI3LjAyNCAxOC42NS00NS41MjR0NDUuNjU4LTE4LjVoNTk5LjM4MnEyNy4wMDggMCA0NS42NTggMTguNjYyIDE4LjY1IDE4LjY2MiAxOC42NSA0NS42ODZ2NDA3LjYyNnEwIDI3LjAyNC0xOC42NSA0NS41MjR0LTQ1LjY1OCAxOC41SDE4MC4zMDlaTTQ4MC00NDkuNjk0IDE2OC02MzMuMzA5djM1N3EwIDUuMzg1IDMuNDYyIDguODQ3IDMuNDYyIDMuNDYyIDguODQ3IDMuNDYyaDU5OS4zODJxNS4zODUgMCA4Ljg0Ny0zLjQ2MiAzLjQ2Mi0zLjQ2MiAzLjQ2Mi04Ljg0N3YtMzU3TDQ4MC00NDkuNjk0Wk00ODAtNTE3bDMwNS44NDYtMTc5SDE3NC4xNTRMNDgwLTUxN1pNMTY4LTYzMy4zMDlWLTY5Ni0yNzYuMzA5cTAgNS4zODUgMy40NjIgOC44NDcgMy40NjIgMy40NjIgOC44NDcgMy40NjJIMTY4di0zNjkuMzA5WlwiIC8+XG4gICAgICA8L3N2Zz5cbiAgICA8L2E+XG4gICAgPGEgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj1cInt7dmFsdWV9fVwiICpuZ0lmPVwiY2xhc3NpZmljYXRpb24gPT09ICd1cmwnICYmIHZhbGlkXCI+XG4gICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIC05NjAgOTYwIDk2MFwiIHdpZHRoPVwiMjBcIj5cbiAgICAgICAgPHBhdGhcbiAgICAgICAgICBkPVwiTTQ4MC0xMTYuMDAxcS03NS4xNTQgMC0xNDEuNDk5LTI4LjQ2Mi02Ni4zNDYtMjguNDYxLTExNS45NjItNzguMDc2LTQ5LjYxNS00OS42MTYtNzguMDc2LTExNS45NjJRMTE2LjAwMS00MDQuODQ2IDExNi4wMDEtNDgwcTAtNzUuNzY5IDI4LjQ2Mi0xNDEuODA3IDI4LjQ2MS02Ni4wMzggNzguMDc2LTExNS42NTQgNDkuNjE2LTQ5LjYxNSAxMTUuOTYyLTc4LjA3NlE0MDQuODQ2LTg0My45OTkgNDgwLTg0My45OTlxNzUuNzY5IDAgMTQxLjgwNyAyOC40NjIgNjYuMDM4IDI4LjQ2MSAxMTUuNjU0IDc4LjA3NiA0OS42MTUgNDkuNjE2IDc4LjA3NiAxMTUuNjU0UTg0My45OTktNTU1Ljc2OSA4NDMuOTk5LTQ4MHEwIDc1LjE1NC0yOC40NjIgMTQxLjQ5OS0yOC40NjEgNjYuMzQ2LTc4LjA3NiAxMTUuOTYyLTQ5LjYxNiA0OS42MTUtMTE1LjY1NCA3OC4wNzZRNTU1Ljc2OS0xMTYuMDAxIDQ4MC0xMTYuMDAxWm0wLTUzLjg0NXEyMS42MTYtMjEuNjE2IDQwLjUzOS03MC40MjQgMTguOTIzLTQ4LjgwOCAyOS4wNzctMTA4LjgwOEg0MTAuMzg0cTEwLjkyMyA2MS41MzkgMjkuNDYyIDExMC4zNDcgMTguNTM4IDQ4LjgwOCA0MC4xNTQgNjguODg1Wm0tNjQuNDYtNXEtMTktMzAtMzQuMzA4LTc1LjUzOXQtMjMuNDYyLTk4LjY5M0gxOTcuMDc2cTMxLjY5MyA2OS4zMDkgODkuNTAxIDExNS4xOTQgNTcuODA5IDQ1Ljg4NSAxMjguOTYzIDU5LjAzOFptMTI4LjkyIDBxNzEuMTU0LTEzLjE1MyAxMjguOTYzLTU5LjAzOCA1Ny44MDgtNDUuODg1IDg5LjUwMS0xMTUuMTk0SDYwMi4yM1E1OTIuMTUzLTI5NS41MzkgNTc2Ljg0NS0yNTBxLTE1LjMwOCA0NS41MzktMzIuMzg1IDc1LjE1NFptNzkuNDYzLTIyNi4yM2gxNzMuNjkzcTQuMjMxLTIxLjMwOCA2LjAzOS00MC43MzEgMS44MDgtMTkuNDI0IDEuODA4LTM4LjE5M3QtMS44MDgtMzguNjkzcS0xLjgwOC0xOS45MjMtNi4wMzktNDAuMjMxSDYyMy45MjNxMS4yMzEgMTkuMzg1IDEuMTU0IDQwLjM4NS0uMDc3IDIxLS4wNzcgNDAuNTM5dC4wNzcgMzkuNTM5cS4wNzcgMjAtMS4xNTQgMzcuMzg1Wm0tMjE4LjMwOCAwaDE0OC43N3EyLjc2OS0yMi4zMDggMy40NjItNDEuMzQ3LjY5Mi0xOS4wMzguNjkyLTM3LjU3NyAwLTE4LjUzOS0uNjkyLTM4LjA3Ny0uNjkzLTE5LjUzOS0zLjQ2Mi00MC44NDdoLTE0OC43N3EtMi43NjkgMjEuMzA4LTMuNDYyIDQwLjg0Ny0uNjkyIDE5LjUzOC0uNjkyIDM4LjA3NyAwIDE4LjUzOS42OTIgMzguMDc3LjY5MyAxOS41MzkgMy40NjIgNDAuODQ3Wm0tMjQzLjIzMSAwaDE3My42OTNxLTEuMjMxLTE5LjM4NS0xLjE1NC00MC4zODUuMDc3LTIxIC4wNzctNDAuNTM5dC0uMDc3LTM5LjUzOXEtLjA3Ny0yMCAxLjE1NC0zNy4zODVIMTYyLjM4NHEtNC4yMzEgMjEuMzA4LTYuMDM5IDQwLjczMS0xLjgwOCAxOS40MjQtMS44MDggMzguMTkzdDEuODA4IDM4LjE5M3ExLjgwOCAxOS40MjMgNi4wMzkgNDAuNzMxWk02MDIuMjMtNjEwLjkyMmgxNjAuNjk0UTczMC44NDYtNjgxIDY3NC03MjYuMTE2cS01Ni44NDctNDUuMTE1LTEyOS41NC01OS40MjMgMTkgMzEuOTIzIDMzLjkyMyA3Ni44ODUgMTQuOTI0IDQ0Ljk2MiAyMy44NDcgOTcuNzMyWm0tMTkxLjg0NiAwaDEzOS4yMzJxLTEwLjkyMy02MS4xNTQtMzAuMDM5LTExMC45MjQtMTkuMTE1LTQ5Ljc2OS0zOS41NzctNjguMzA4LTIwLjQ2MiAxOC41MzktMzkuNTc3IDY4LjMwOC0xOS4xMTYgNDkuNzctMzAuMDM5IDExMC45MjRabS0yMTMuMzA4IDBIMzU3Ljc3cTguOTIzLTUyLjc3IDIzLjg0Ny05Ny43MzIgMTQuOTIzLTQ0Ljk2MiAzMy45MjMtNzYuODg1LTczLjA3NyAxNC4zMDgtMTI5LjczMiA1OS42MTYtNTYuNjU0IDQ1LjMwOC04OC43MzIgMTE1LjAwMVpcIiAvPlxuICAgICAgPC9zdmc+XG4gICAgPC9hPlxuICA8L2Rpdj5cblxuPC9kaXY+XG4iXX0=
@@ -192,6 +192,7 @@ export class FrameComponent {
192
192
  .subscribe((user) => {
193
193
  this.dir = user ? user.uiDirection : 'ltr';
194
194
  this.roles = user?.roles?.map(r => r.name).join(';') || '';
195
+ this.user = user;
195
196
  });
196
197
  this.router
197
198
  .events
@@ -220,7 +221,7 @@ export class FrameComponent {
220
221
  .user$
221
222
  .subscribe(data => {
222
223
  const docu = this.config.getRaw('about.docu');
223
- const link = docu.link.replace('###userLang###', data?.userSettings?.clientlocale.substring(0, 2));
224
+ const link = docu.link.replace('###userLang###', data?.userSettings?.clientlocale?.substring(0, 2) || this.user.getClientLocale());
224
225
  this.docu = { ...docu, link };
225
226
  });
226
227
  }
@@ -260,4 +261,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
260
261
  type: HostBinding,
261
262
  args: ['attr.data-roles']
262
263
  }] } });
263
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJhbWUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvZnJhbWUvZnJhbWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvZnJhbWUvZnJhbWUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFTLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBUyxhQUFhLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUd0RCxPQUFPLEVBSUwsWUFBWSxFQU1NLGdCQUFnQixFQUNuQyxNQUFNLGNBQWMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFRdEIsTUFBTSxPQUFPLGNBQWM7SUE4SnpCLDZFQUE2RTtJQUU3RSxrQkFBa0IsQ0FBQyxNQUFXO1FBQzVCLE9BQU8sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFJRCxZQUFvQixNQUE0QixFQUM1QixXQUF3QixFQUN4QixNQUFjLEVBQ2QsTUFBYyxFQUNkLFFBQWtCLEVBQ25CLFNBQTJCLEVBQzFCLFdBQXdCLEVBQ3hCLGNBQXFDLEVBQ3JDLG1CQUF3QyxFQUN4QyxjQUFxQztRQUV2RCxrRUFBa0U7UUFYaEQsV0FBTSxHQUFOLE1BQU0sQ0FBc0I7UUFDNUIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ25CLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQzFCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLG1CQUFjLEdBQWQsY0FBYyxDQUF1QjtRQUNyQyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFC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QUFtQjtnQkFDSyxRQUFRO3NCQUE1QyxXQUFXO3VCQUFDLHNCQUFzQjtnQkFDQSxhQUFhO3NCQUEvQyxXQUFXO3VCQUFDLG9CQUFvQjtnQkEwSmpDLGtCQUFrQjtzQkFEakIsWUFBWTt1QkFBQyxxQkFBcUIsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFLZixLQUFLO3NCQUFwQyxXQUFXO3VCQUFDLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBIb3N0QmluZGluZywgSG9zdExpc3RlbmVyLCBPbkluaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtSb3V0ZXIsIE5hdmlnYXRpb25FbmR9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge0xvY2F0aW9ufSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtHbG9iYWxTaG9ydGN1dENvbXBvbmVudH0gZnJvbSAnLi4vc2hvcnRjdXRzL2dsb2JhbC1zaG9ydGN1dC1jb21wb25lbnQuaW50ZXJmYWNlJztcbmltcG9ydCB7XG4gIFVwbG9hZFJlZ2lzdHJ5U2VydmljZSxcbiAgQ2FwYWJpbGl0aWVzLFxuICBDYXBhYmlsaXRpZXNTZXJ2aWNlLFxuICBVcGxvYWRUYXJnZXQsXG4gIFVzZXJTZXJ2aWNlLFxuICBBdXRoU2VydmljZSxcbiAgRW9Vc2VyLFxuICBOb3RpZmljYXRpb25zU2VydmljZSxcbiAgQ29uZmlnLFxuICBUcmFuc2xhdGVTZXJ2aWNlLCBFbnZpcm9ubWVudEVuYWlvXG59IGZyb20gJ0Blby1zZGsvY29yZSc7XG5pbXBvcnQgeyBQZW5kaW5nQ2hhbmdlc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9lby1mcmFtZXdvcmstY29yZS9wZW5kaW5nLWNoYW5nZXMvcGVuZGluZy1jaGFuZ2VzLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlby1mcmFtZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9mcmFtZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2ZyYW1lLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgRnJhbWVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5kYXNoYm9hcmQnKSB0cmFuc3BhcmVudEJhciA9IGZhbHNlO1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnZpZXctbm8tYmFyJykgbm9CYXIgPSAwO1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnZpZXctbm8taGVhZGVyJykgbm9IZWFkZXIgPSAwO1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLm9iamVjdC1zdGF0ZScpIGlzT2JqZWN0U3RhdGUgPSB0cnVlO1xuXG4gIGluaXRFcnJvcjogYW55O1xuICBhdXRoZW50aWNhdGVkID0gZmFsc2U7XG4gIGRpciA9ICdsdHInOyAvLyBkZWZhdWx0IGRpcmVjdGlvbiAtIExlZnQgVG8gUmlnaHRcbiAgaXNNb2JpbGVFbnY6IGJvb2xlYW4gPSBFbnZpcm9ubWVudEVuYWlvLmlzTW9iaWxlRW52aXJvbm1lbnQoKTtcbiAgY2FwYWJpbGl0aWVzOiBDYXBhYmlsaXRpZXM7XG4gIGRvY3U6IHtsaW5rOiBzdHJpbmcsIGxhYmVsOiBzdHJpbmd9O1xuXG4gIC8vIHNob3J0Y3V0IGFjdGlvbnNcbiAgc2hvcnRjdXRzOiBHbG9iYWxTaG9ydGN1dENvbXBvbmVudCA9IHtcbiAgICBpZDogJ2VvLmFwcCcsXG4gICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnNob3J0Y3V0cy5nZW5lcmFsLnRpdGxlJyksXG4gICAgbGFiZWxLZXk6ICdlby5zaG9ydGN1dHMuZ2VuZXJhbC50aXRsZScsXG4gICAgYWN0aW9uczogW1xuICAgICAge1xuICAgICAgICBuYW1lOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5zaG9ydGN1dHMuYWN0aW9uLmFkZCcpLFxuICAgICAgICBuYW1lS2V5OiAnZW8uc2hvcnRjdXRzLmFjdGlvbi5hZGQnLFxuICAgICAgICBzaG9ydGN1dDogJ0MnLFxuICAgICAgICBvbkV4ZWN1dGVBY3Rpb246ICgpID0+IHtcbiAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbe291dGxldHM6IHttb2RhbDogJ2FkZCd9fV0pO1xuICAgICAgICB9LFxuICAgICAgICBpc0hpZGRlbjogKCkgPT4ge1xuICAgICAgICAgIHJldHVybiB0aGlzLmNhcGFiaWxpdGllcyA/ICF0aGlzLmNhcGFiaWxpdGllcy5pbnRyYXkgOiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5zaG9ydGN1dHMuYWN0aW9uLnNlYXJjaCcpLFxuICAgICAgICBuYW1lS2V5OiAnZW8uc2hvcnRjdXRzLmFjdGlvbi5zZWFyY2gnLFxuICAgICAgICBzaG9ydGN1dDogJ0YnLFxuICAgICAgICBvbkV4ZWN1dGVBY3Rpb246ICgpID0+IHtcbiAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbe291dGxldHM6IHttb2RhbDogJ3NlYXJjaCd9fV0pO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5zaG9ydGN1dHMuYWN0aW9uLmxvZ291dCcpLFxuICAgICAgICBuYW1lS2V5OiAnZW8uc2hvcnRjdXRzLmFjdGlvbi5sb2dvdXQnLFxuICAgICAgICBzaG9ydGN1dDogJ0wnLFxuICAgICAgICBvbkV4ZWN1dGVBY3Rpb246ICgpID0+IHtcbiAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbe291dGxldHM6IHttb2RhbDogbnVsbCwgcHJpbWFyeTogWydlbnRlcicsIHtsb2dvdXQ6IHRydWV9XX19XSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnNob3J0Y3V0cy5hY3Rpb24uYWRqdXN0LnZpZXcnKSxcbiAgICAgICAgbmFtZUtleTogJ2VvLnNob3J0Y3V0cy5hY3Rpb24uYWRqdXN0LnZpZXcnLFxuICAgICAgICBzaG9ydGN1dDogJ1YnLFxuICAgICAgICBvbkV4ZWN1dGVBY3Rpb246ICgpID0+IHRoaXMuYWRqdXN0VmlldygpLFxuICAgICAgICBpc0hpZGRlbjogKCkgPT4ge1xuICAgICAgICAgIHJldHVybiB0aGlzLnRyYW5zcGFyZW50QmFyO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5zaWRlYmFyLmhlbHAubWFudWFsJyksXG4gICAgICAgIG5hbWVLZXk6ICdlby5zaWRlYmFyLmhlbHAubWFudWFsJyxcbiAgICAgICAgc2hvcnRjdXQ6ICdEJyxcbiAgICAgICAgb25FeGVjdXRlQWN0aW9uOiAoKSA9PiB7XG4gICAgICAgICAgd2luZG93Lm9wZW4odGhpcy5kb2N1LmxpbmspO1xuICAgICAgICB9LFxuICAgICAgfVxuICAgIF1cbiAgfTtcbiAgLy8gbmF2aWdhdGlvbiBzaG9ydGN1dHNcbiAgbmF2U2hvcnRjdXRzOiBHbG9iYWxTaG9ydGN1dENvbXBvbmVudCA9IHtcbiAgICBpZDogJ2VvLmFwcC5uYXYnLFxuICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby52aWV3Lm5hdmlnYXRpb24udGl0bGUnKSxcbiAgICBsYWJlbEtleTogJ2VvLnZpZXcubmF2aWdhdGlvbi50aXRsZScsXG4gICAgYWN0aW9uczogW1xuICAgICAge1xuICAgICAgICBuYW1lOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5zaG9ydGN1dHMuYWN0aW9uLmRhc2hib2FyZCcpLFxuICAgICAgICBuYW1lS2V5OiAnZW8uc2hvcnRjdXRzLmFjdGlvbi5kYXNoYm9hcmQnLFxuICAgICAgICBzaG9ydGN1dDogJzAnLFxuICAgICAgICBvbkV4ZWN1dGVBY3Rpb246ICgpID0+IHtcbiAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCcvZGFzaGJvYXJkJyk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnZpZXcubmF2aWdhdGlvbi5pbmJveCcpLFxuICAgICAgICBuYW1lS2V5OiAnZW8udmlldy5uYXZpZ2F0aW9uLmluYm94JyxcbiAgICAgICAgc2hvcnRjdXQ6ICcxJyxcbiAgICAgICAgb25FeGVjdXRlQWN0aW9uOiAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgnL2luYm94Jyk7XG4gICAgICAgIH0sXG4gICAgICAgIGlzSGlkZGVuOiAoKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuY2FwYWJpbGl0aWVzID8gIXRoaXMuY2FwYWJpbGl0aWVzLmluYm94IDogdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8udmlldy5uYXZpZ2F0aW9uLnByZXBhcmUnKSxcbiAgICAgICAgbmFtZUtleTogJ2VvLnZpZXcubmF2aWdhdGlvbi5wcmVwYXJlJyxcbiAgICAgICAgc2hvcnRjdXQ6ICcyJyxcbiAgICAgICAgb25FeGVjdXRlQWN0aW9uOiAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgnL3ByZXBhcmUnKTtcbiAgICAgICAgfSxcbiAgICAgICAgaXNIaWRkZW46ICgpID0+IHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5jYXBhYmlsaXRpZXMgPyAhdGhpcy5jYXBhYmlsaXRpZXMuaW50cmF5IDogdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8udmlldy5uYXZpZ2F0aW9uLmZhdm9yaXRlcycpLFxuICAgICAgICBuYW1lS2V5OiAnZW8udmlldy5uYXZpZ2F0aW9uLmZhdm9yaXRlcycsXG4gICAgICAgIHNob3J0Y3V0OiAnMycsXG4gICAgICAgIG9uRXhlY3V0ZUFjdGlvbjogKCkgPT4ge1xuICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoJy9mYXZvcml0ZXMnKTtcbiAgICAgICAgfSxcbiAgICAgICAgaXNIaWRkZW46ICgpID0+IHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5jYXBhYmlsaXRpZXMgPyAhdGhpcy5jYXBhYmlsaXRpZXMuZmF2b3JpdGVzIDogdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uYmFyLmJ1dHRvbi5zZXR0aW5ncy50aXRsZScpLFxuICAgICAgICBuYW1lS2V5OiAnZW8uYmFyLmJ1dHRvbi5zZXR0aW5ncy50aXRsZScsXG4gICAgICAgIHNob3J0Y3V0OiAnNCcsXG4gICAgICAgIG9uRXhlY3V0ZUFjdGlvbjogKCkgPT4ge1xuICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoJy9zZXR0aW5ncycpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby52aWV3Lm5hdmlnYXRpb24ucHJvY2VzcycpLFxuICAgICAgICBuYW1lS2V5OiAnZW8udmlldy5uYXZpZ2F0aW9uLnByb2Nlc3MnLFxuICAgICAgICBzaG9ydGN1dDogJzUnLFxuICAgICAgICBvbkV4ZWN1dGVBY3Rpb246ICgpID0+IHtcbiAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCcvcHJvY2VzcycpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby52aWV3Lm5hdmlnYXRpb24ubm90aWZpY2F0aW9ucycpLFxuICAgICAgICBuYW1lS2V5OiAnZW8udmlldy5uYXZpZ2F0aW9uLm5vdGlmaWNhdGlvbnMnLFxuICAgICAgICBzaG9ydGN1dDogJzYnLFxuICAgICAgICBvbkV4ZWN1dGVBY3Rpb246ICgpID0+IHtcbiAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCcvbm90aWZpY2F0aW9ucycpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby52aWV3Lm5hdmlnYXRpb24uc3RvcmVkcXVlcmllcycpLFxuICAgICAgICBuYW1lS2V5OiAnZW8udmlldy5uYXZpZ2F0aW9uLnN0b3JlZHF1ZXJpZXMnLFxuICAgICAgICBzaG9ydGN1dDogJzcnLFxuICAgICAgICBvbkV4ZWN1dGVBY3Rpb246ICgpID0+IHtcbiAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCcvc3RvcmVkLXF1ZXJpZXMnKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8udmlldy5uYXZpZ2F0aW9uLnJlY3ljbGViaW4nKSxcbiAgICAgICAgbmFtZUtleTogJ2VvLnZpZXcubmF2aWdhdGlvbi5yZWN5Y2xlYmluJyxcbiAgICAgICAgc2hvcnRjdXQ6ICc4JyxcbiAgICAgICAgb25FeGVjdXRlQWN0aW9uOiAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgnL3JlY3ljbGViaW4nKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICBdXG4gIH07XG5cblxuICAvLyBASG9zdExpc3RlbmVyIGFsbG93cyB1cyB0byBhbHNvIGd1YXJkIGFnYWluc3QgYnJvd3NlciByZWZyZXNoLCBjbG9zZSwgZXRjLlxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6YmVmb3JldW5sb2FkJywgWyckZXZlbnQnXSlcbiAgdW5sb2FkTm90aWZpY2F0aW9uKCRldmVudDogYW55KSB7XG4gICAgcmV0dXJuICF0aGlzLnBlbmRpbmdDaGFuZ2VzLmNoZWNrKCk7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2F0dHIuZGF0YS1yb2xlcycpIHJvbGVzID0gJyc7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBub3RpZnk6IE5vdGlmaWNhdGlvbnNTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIHVzZXJTZXJ2aWNlOiBVc2VyU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICAgICAgICAgICAgcHJpdmF0ZSBjb25maWc6IENvbmZpZyxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBsb2NhdGlvbjogTG9jYXRpb24sXG4gICAgICAgICAgICAgIHB1YmxpYyB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIHBlbmRpbmdDaGFuZ2VzOiBQZW5kaW5nQ2hhbmdlc1NlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgY2FwYWJpbGl0aWVzU2VydmljZTogQ2FwYWJpbGl0aWVzU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSB1cGxvYWRSZWdpc3RyeTogVXBsb2FkUmVnaXN0cnlTZXJ2aWNlKSB7XG5cbiAgICAvLyB0aGlzLmNhcGFiaWxpdGllcyA9IHRoaXMuY2FwYWJpbGl0aWVzU2VydmljZS5nZXRDYXBhYmlsaXRpZXMoKTtcblxuICAgIC8vIEluaXRpYWxpemF0aW9uIG9mIHRoZSBjb3JlIGNvbXBvbmVudHMgaXMgZG9uZSwgc28gd2UgY2hlY2sgaXRzIHN0YXRlXG4gICAgLy8gQW55IGVycm9ycyBkdXJpbmcgZ2xvYmFsIGluaXRpYWxpemF0aW9uP1xuICAgIC8vIGlmICh0aGlzLmluaXQuZ2V0U3RhdGUoKS5lcnJvciAhPT0gbnVsbCkge1xuICAgIC8vICAgdGhpcy5pbml0RXJyb3IgPSB7XG4gICAgLy8gICAgIGNhdXNlOiB0aGlzLmluaXQuZ2V0U3RhdGUoKS5lcnJvclxuICAgIC8vICAgfVxuICAgIC8vIH1cblxuICAgIHRoaXMudXNlclNlcnZpY2VcbiAgICAgIC51c2VyJFxuICAgICAgLnN1YnNjcmliZSgodXNlcjogRW9Vc2VyKSA9PiB7XG4gICAgICAgIHRoaXMuZGlyID0gdXNlciA/IHVzZXIudWlEaXJlY3Rpb24gOiAnbHRyJztcbiAgICAgICAgdGhpcy5yb2xlcyA9IHVzZXI/LnJvbGVzPy5tYXAociA9PiByLm5hbWUpLmpvaW4oJzsnKSB8fCAnJztcbiAgICAgIH0pO1xuXG4gICAgdGhpcy5yb3V0ZXJcbiAgICAgIC5ldmVudHNcbiAgICAgIC5zdWJzY3JpYmUoZXZlbnQgPT4ge1xuICAgICAgICBpZiAoZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSB7XG4gICAgICAgICAgdGhpcy5zZXRTdHlsZSgpO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgIHRoaXMuYXV0aFNlcnZpY2VcbiAgICAgIC5hdXRoZW50aWNhdGVkJFxuICAgICAgLnN1YnNjcmliZShhdXRoZW50aWNhdGVkID0+IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLmF1dGhlbnRpY2F0ZWQgPSBhdXRoZW50aWNhdGVkO1xuICAgICAgICAvLyBmZXRjaCBjYXBhYmlsaXRpZXMgYWdhaW4gb25jZSBhIHVzZXIgaXMgYXV0aGVudGljYXRlZFxuICAgICAgICBpZiAoYXV0aGVudGljYXRlZCkge1xuICAgICAgICAgIHRoaXMuY2FwYWJpbGl0aWVzID0gdGhpcy5jYXBhYmlsaXRpZXNTZXJ2aWNlLmdldENhcGFiaWxpdGllcygpO1xuICAgICAgICB9XG4gICAgICB9KSk7XG5cbiAgICAvLyBhZGQgcm9vdCB1cGxvYWQgdGFyZ2V0XG4gICAgbGV0IHJvb3RUYXJnZXQgPSBuZXcgVXBsb2FkVGFyZ2V0KCdyb290JywgVXBsb2FkVGFyZ2V0LlJPT1QpO1xuICAgIHJvb3RUYXJnZXQub25VcGxvYWRTdWNjZXNzID0gKCkgPT4gdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvcHJlcGFyZSddKTtcbiAgICB0aGlzLnVwbG9hZFJlZ2lzdHJ5LnJlZ2lzdGVyKHJvb3RUYXJnZXQpO1xuXG4gICAgdGhpcy5zZXRTdHlsZSgpO1xuICB9XG5cbiAgZ2V0RG9jdW1lbnRhdGlvbigpIHtcbiAgICB0aGlzLnVzZXJTZXJ2aWNlXG4gICAgICAudXNlciRcbiAgICAgIC5zdWJzY3JpYmUoZGF0YSA9PiB7XG4gICAgICAgIGNvbnN0IGRvY3UgPSB0aGlzLmNvbmZpZy5nZXRSYXcoJ2Fib3V0LmRvY3UnKTtcbiAgICAgICAgY29uc3QgbGluayA9IGRvY3UubGluay5yZXBsYWNlKCcjIyN1c2VyTGFuZyMjIycsIGRhdGE/LnVzZXJTZXR0aW5ncz8uY2xpZW50bG9jYWxlLnN1YnN0cmluZygwLCAyKSk7XG4gICAgICAgIHRoaXMuZG9jdSA9IHsuLi5kb2N1LCBsaW5rfTtcbiAgICAgIH0pXG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmdldERvY3VtZW50YXRpb24oKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0U3R5bGUoKSB7XG4gICAgdGhpcy50cmFuc3BhcmVudEJhciA9ICEhdGhpcy5sb2NhdGlvbi5wYXRoKCkubWF0Y2goL1xcL2Rhc2hib2FyZHxcXC9lbnRlci8pO1xuICAgIHRoaXMuaXNPYmplY3RTdGF0ZSA9ICEhdGhpcy5sb2NhdGlvbi5wYXRoKCkubWF0Y2goL1xcL29iamVjdFxcLy8pO1xuICB9XG5cbiAgYWRqdXN0VmlldygpIHtcbiAgICB0aGlzLm5vQmFyID0gKHRoaXMubm9CYXIgKyAxKSAlIDM7XG4gICAgdGhpcy5ub0hlYWRlciA9IHRoaXMubm9CYXIgPT09IDIgPyAxIDogMDtcbiAgfVxufVxuXG4iLCI8IS0tIGdsb2JhbCB1cGxvYWQgY29tcG9uZW50IC0tPlxuPGVvLXVwbG9hZC1vdmVybGF5ICpuZ0lmPVwiYXV0aGVudGljYXRlZCAmJiBjYXBhYmlsaXRpZXM/LmludHJheVwiPjwvZW8tdXBsb2FkLW92ZXJsYXk+XG5cbjwhLS0gbWFpbiBhcHBsaWNhdGlvbiBza2VsZXRvbiAtLT5cbjxkaXYgY2xhc3M9XCJhcHBsaWNhdGlvblwiIFtkaXJdPVwiZGlyXCIgW2VvU2hvcnRjdXRzXT1cIm5hdlNob3J0Y3V0c1wiPlxuXG4gIDxkaXYgY2xhc3M9XCJhcHBcIiAqbmdJZj1cIiFpbml0RXJyb3JcIiBbZW9TaG9ydGN1dHNdPVwic2hvcnRjdXRzXCI+XG4gICAgPGVvLWFwcC1iYXIgW3RyYW5zcGFyZW50XT1cInRyYW5zcGFyZW50QmFyXCIgKm5nSWY9XCJhdXRoZW50aWNhdGVkXCI+XG4gICAgICA8ZW8tc2lkZWJhci1wbHVnaW4gY2xhc3M9XCJuYXZpXCIgW3R5cGVdPVwiJ3NpZGViYXItbmF2aWdhdGlvbidcIj48L2VvLXNpZGViYXItcGx1Z2luPlxuICAgICAgPGVvLXNpZGViYXItcGx1Z2luIGNsYXNzPVwiaGVscFwiIFt0eXBlXT1cIidzaWRlYmFyLWhlbHAnXCI+PC9lby1zaWRlYmFyLXBsdWdpbj5cbiAgICAgIDxlby1zaWRlYmFyLXBsdWdpbiBjbGFzcz1cInByb2ZpbGVcIiBbdHlwZV09XCInc2lkZWJhci1wcm9maWxlJ1wiPjwvZW8tc2lkZWJhci1wbHVnaW4+XG4gICAgPC9lby1hcHAtYmFyPlxuICAgIDxkaXYgY2xhc3M9XCJlby1hcHAtY29udGVudFwiPlxuICAgICAgPHJvdXRlci1vdXRsZXQ+PC9yb3V0ZXItb3V0bGV0PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8IS0tIGFwcCBpbml0IGZhaWxlZCBub3RpZmljYXRpb24gLS0+XG4gIDxkaXYgY2xhc3M9XCJpbml0LWVycm9yXCIgKm5nSWY9XCJpbml0RXJyb3JcIj5cbiAgICA8ZW8taWNvbiBbaWNvblNyY109XCInYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19lcnJvci5zdmcnXCI+PC9lby1pY29uPlxuICAgIDxkaXYgY2xhc3M9XCJtZXNzYWdlXCI+XG4gICAgICA8ZGl2IHRyYW5zbGF0ZT5lby5hcHAuaW5pdC5mYWlsLnRpdGxlPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY2F1c2VcIiB0cmFuc2xhdGU+ZW8uYXBwLmluaXQuZmFpbC5tZXNzYWdlPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY2F1c2UgZXJyb3JcIj57e2luaXRFcnJvci5jYXVzZX19PC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJvdmVybGF5XCI+XG4gICAgPCEtLTxuZy1wcm9ncmVzcyBbcG9zaXRpb25Vc2luZ109XCInbWFyZ2luTGVmdCdcIiBbbWluaW11bV09XCIwLjNcIiBbbWF4aW11bV09XCIxXCItLT5cbiAgICA8IS0tW3NwZWVkXT1cIjMwMFwiIFtzaG93U3Bpbm5lcl09XCJmYWxzZVwiLS0+XG4gICAgPCEtLVtkaXJlY3Rpb25dPVwiZGlyID09PSAncnRsJyA/ICdyaWdodFRvTGVmdEluY3JlYXNlZCcgOiAnbGVmdFRvUmlnaHRJbmNyZWFzZWQnXCItLT5cbiAgICA8IS0tW2NvbG9yXT1cIicjYmIzZjVhJ1wiIFt0cmlja2xlU3BlZWRdPVwiMzAwXCIgW3RoaWNrXT1cInRydWVcIiBbZWFzZV09XCInbGluZWFyJ1wiLS0+XG4gICAgPCEtLSZndDs8L25nLXByb2dyZXNzPi0tPlxuICA8L2Rpdj5cbiAgPHJvdXRlci1vdXRsZXQgbmFtZT1cIm1vZGFsXCI+PC9yb3V0ZXItb3V0bGV0PlxuICA8ZW8tZ2xvYmFsLXNob3J0Y3V0cyAqbmdJZj1cImF1dGhlbnRpY2F0ZWQgJiYgIWlzTW9iaWxlRW52XCI+PC9lby1nbG9iYWwtc2hvcnRjdXRzPlxuICA8ZW8tYWN0aW9uLW1lbnU+PC9lby1hY3Rpb24tbWVudT5cbiAgPHNlY3Rpb24gI2V4dGVybmFsRGlhbG9nPjwvc2VjdGlvbj5cbjwvZGl2PlxuIl19
264
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJhbWUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvZnJhbWUvZnJhbWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvZnJhbWUvZnJhbWUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFTLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBUyxhQUFhLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUd0RCxPQUFPLEVBSUwsWUFBWSxFQU1NLGdCQUFnQixFQUNuQyxNQUFNLGNBQWMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFRdEIsTUFBTSxPQUFPLGNBQWM7SUErSnpCLDZFQUE2RTtJQUU3RSxrQkFBa0IsQ0FBQyxNQUFXO1FBQzVCLE9BQU8sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFJRCxZQUFvQixNQUE0QixFQUM1QixXQUF3QixFQUN4QixNQUFjLEVBQ2QsTUFBYyxFQUNkLFFBQWtCLEVBQ25CLFNBQTJCLEVBQzFCLFdBQXdCLEVBQ3hCLGNBQXFDLEVBQ3JDLG1CQUF3QyxFQUN4QyxjQUFxQztRQUV2RCxrRUFBa0U7UUFYaEQsV0FBTSxHQUFOLE1BQU0sQ0FBc0I7UUFDNUIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ25CLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQzFCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLG1CQUFjLEdBQWQsY0FBYyxDQUF1QjtRQUNyQyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFC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QUFVO3lXQU9ZLGNBQWM7c0JBQTdDLFdBQVc7dUJBQUMsaUJBQWlCO2dCQUNJLEtBQUs7c0JBQXRDLFdBQVc7dUJBQUMsbUJBQW1CO2dCQUNLLFFBQVE7c0JBQTVDLFdBQVc7dUJBQUMsc0JBQXNCO2dCQUNBLGFBQWE7c0JBQS9DLFdBQVc7dUJBQUMsb0JBQW9CO2dCQTJKakMsa0JBQWtCO3NCQURqQixZQUFZO3VCQUFDLHFCQUFxQixFQUFFLENBQUMsUUFBUSxDQUFDO2dCQUtmLEtBQUs7c0JBQXBDLFdBQVc7dUJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBIb3N0TGlzdGVuZXIsIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1JvdXRlciwgTmF2aWdhdGlvbkVuZH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7TG9jYXRpb259IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0dsb2JhbFNob3J0Y3V0Q29tcG9uZW50fSBmcm9tICcuLi9zaG9ydGN1dHMvZ2xvYmFsLXNob3J0Y3V0LWNvbXBvbmVudC5pbnRlcmZhY2UnO1xuaW1wb3J0IHtcbiAgVXBsb2FkUmVnaXN0cnlTZXJ2aWNlLFxuICBDYXBhYmlsaXRpZXMsXG4gIENhcGFiaWxpdGllc1NlcnZpY2UsXG4gIFVwbG9hZFRhcmdldCxcbiAgVXNlclNlcnZpY2UsXG4gIEF1dGhTZXJ2aWNlLFxuICBFb1VzZXIsXG4gIE5vdGlmaWNhdGlvbnNTZXJ2aWNlLFxuICBDb25maWcsXG4gIFRyYW5zbGF0ZVNlcnZpY2UsIEVudmlyb25tZW50RW5haW9cbn0gZnJvbSAnQGVvLXNkay9jb3JlJztcbmltcG9ydCB7IFBlbmRpbmdDaGFuZ2VzU2VydmljZSB9IGZyb20gJy4uLy4uL2VvLWZyYW1ld29yay1jb3JlL3BlbmRpbmctY2hhbmdlcy9wZW5kaW5nLWNoYW5nZXMuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VvLWZyYW1lJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ZyYW1lLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZnJhbWUuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBGcmFtZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmRhc2hib2FyZCcpIHRyYW5zcGFyZW50QmFyID0gZmFsc2U7XG4gIEBIb3N0QmluZGluZygnY2xhc3Mudmlldy1uby1iYXInKSBub0JhciA9IDA7XG4gIEBIb3N0QmluZGluZygnY2xhc3Mudmlldy1uby1oZWFkZXInKSBub0hlYWRlciA9IDA7XG4gIEBIb3N0QmluZGluZygnY2xhc3Mub2JqZWN0LXN0YXRlJykgaXNPYmplY3RTdGF0ZSA9IHRydWU7XG5cbiAgaW5pdEVycm9yOiBhbnk7XG4gIGF1dGhlbnRpY2F0ZWQgPSBmYWxzZTtcbiAgZGlyID0gJ2x0cic7IC8vIGRlZmF1bHQgZGlyZWN0aW9uIC0gTGVmdCBUbyBSaWdodFxuICBpc01vYmlsZUVudjogYm9vbGVhbiA9IEVudmlyb25tZW50RW5haW8uaXNNb2JpbGVFbnZpcm9ubWVudCgpO1xuICBjYXBhYmlsaXRpZXM6IENhcGFiaWxpdGllcztcbiAgZG9jdToge2xpbms6IHN0cmluZywgbGFiZWw6IHN0cmluZ307XG4gIHVzZXI6IEVvVXNlclxuXG4gIC8vIHNob3J0Y3V0IGFjdGlvbnNcbiAgc2hvcnRjdXRzOiBHbG9iYWxTaG9ydGN1dENvbXBvbmVudCA9IHtcbiAgICBpZDogJ2VvLmFwcCcsXG4gICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnNob3J0Y3V0cy5nZW5lcmFsLnRpdGxlJyksXG4gICAgbGFiZWxLZXk6ICdlby5zaG9ydGN1dHMuZ2VuZXJhbC50aXRsZScsXG4gICAgYWN0aW9uczogW1xuICAgICAge1xuICAgICAgICBuYW1lOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5zaG9ydGN1dHMuYWN0aW9uLmFkZCcpLFxuICAgICAgICBuYW1lS2V5OiAnZW8uc2hvcnRjdXRzLmFjdGlvbi5hZGQnLFxuICAgICAgICBzaG9ydGN1dDogJ0MnLFxuICAgICAgICBvbkV4ZWN1dGVBY3Rpb246ICgpID0+IHtcbiAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbe291dGxldHM6IHttb2RhbDogJ2FkZCd9fV0pO1xuICAgICAgICB9LFxuICAgICAgICBpc0hpZGRlbjogKCkgPT4ge1xuICAgICAgICAgIHJldHVybiB0aGlzLmNhcGFiaWxpdGllcyA/ICF0aGlzLmNhcGFiaWxpdGllcy5pbnRyYXkgOiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5zaG9ydGN1dHMuYWN0aW9uLnNlYXJjaCcpLFxuICAgICAgICBuYW1lS2V5OiAnZW8uc2hvcnRjdXRzLmFjdGlvbi5zZWFyY2gnLFxuICAgICAgICBzaG9ydGN1dDogJ0YnLFxuICAgICAgICBvbkV4ZWN1dGVBY3Rpb246ICgpID0+IHtcbiAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbe291dGxldHM6IHttb2RhbDogJ3NlYXJjaCd9fV0pO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5zaG9ydGN1dHMuYWN0aW9uLmxvZ291dCcpLFxuICAgICAgICBuYW1lS2V5OiAnZW8uc2hvcnRjdXRzLmFjdGlvbi5sb2dvdXQnLFxuICAgICAgICBzaG9ydGN1dDogJ0wnLFxuICAgICAgICBvbkV4ZWN1dGVBY3Rpb246ICgpID0+IHtcbiAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbe291dGxldHM6IHttb2RhbDogbnVsbCwgcHJpbWFyeTogWydlbnRlcicsIHtsb2dvdXQ6IHRydWV9XX19XSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnNob3J0Y3V0cy5hY3Rpb24uYWRqdXN0LnZpZXcnKSxcbiAgICAgICAgbmFtZUtleTogJ2VvLnNob3J0Y3V0cy5hY3Rpb24uYWRqdXN0LnZpZXcnLFxuICAgICAgICBzaG9ydGN1dDogJ1YnLFxuICAgICAgICBvbkV4ZWN1dGVBY3Rpb246ICgpID0+IHRoaXMuYWRqdXN0VmlldygpLFxuICAgICAgICBpc0hpZGRlbjogKCkgPT4ge1xuICAgICAgICAgIHJldHVybiB0aGlzLnRyYW5zcGFyZW50QmFyO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5zaWRlYmFyLmhlbHAubWFudWFsJyksXG4gICAgICAgIG5hbWVLZXk6ICdlby5zaWRlYmFyLmhlbHAubWFudWFsJyxcbiAgICAgICAgc2hvcnRjdXQ6ICdEJyxcbiAgICAgICAgb25FeGVjdXRlQWN0aW9uOiAoKSA9PiB7XG4gICAgICAgICAgd2luZG93Lm9wZW4odGhpcy5kb2N1LmxpbmspO1xuICAgICAgICB9LFxuICAgICAgfVxuICAgIF1cbiAgfTtcbiAgLy8gbmF2aWdhdGlvbiBzaG9ydGN1dHNcbiAgbmF2U2hvcnRjdXRzOiBHbG9iYWxTaG9ydGN1dENvbXBvbmVudCA9IHtcbiAgICBpZDogJ2VvLmFwcC5uYXYnLFxuICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby52aWV3Lm5hdmlnYXRpb24udGl0bGUnKSxcbiAgICBsYWJlbEtleTogJ2VvLnZpZXcubmF2aWdhdGlvbi50aXRsZScsXG4gICAgYWN0aW9uczogW1xuICAgICAge1xuICAgICAgICBuYW1lOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby5zaG9ydGN1dHMuYWN0aW9uLmRhc2hib2FyZCcpLFxuICAgICAgICBuYW1lS2V5OiAnZW8uc2hvcnRjdXRzLmFjdGlvbi5kYXNoYm9hcmQnLFxuICAgICAgICBzaG9ydGN1dDogJzAnLFxuICAgICAgICBvbkV4ZWN1dGVBY3Rpb246ICgpID0+IHtcbiAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCcvZGFzaGJvYXJkJyk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ2VvLnZpZXcubmF2aWdhdGlvbi5pbmJveCcpLFxuICAgICAgICBuYW1lS2V5OiAnZW8udmlldy5uYXZpZ2F0aW9uLmluYm94JyxcbiAgICAgICAgc2hvcnRjdXQ6ICcxJyxcbiAgICAgICAgb25FeGVjdXRlQWN0aW9uOiAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgnL2luYm94Jyk7XG4gICAgICAgIH0sXG4gICAgICAgIGlzSGlkZGVuOiAoKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuY2FwYWJpbGl0aWVzID8gIXRoaXMuY2FwYWJpbGl0aWVzLmluYm94IDogdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8udmlldy5uYXZpZ2F0aW9uLnByZXBhcmUnKSxcbiAgICAgICAgbmFtZUtleTogJ2VvLnZpZXcubmF2aWdhdGlvbi5wcmVwYXJlJyxcbiAgICAgICAgc2hvcnRjdXQ6ICcyJyxcbiAgICAgICAgb25FeGVjdXRlQWN0aW9uOiAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgnL3ByZXBhcmUnKTtcbiAgICAgICAgfSxcbiAgICAgICAgaXNIaWRkZW46ICgpID0+IHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5jYXBhYmlsaXRpZXMgPyAhdGhpcy5jYXBhYmlsaXRpZXMuaW50cmF5IDogdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8udmlldy5uYXZpZ2F0aW9uLmZhdm9yaXRlcycpLFxuICAgICAgICBuYW1lS2V5OiAnZW8udmlldy5uYXZpZ2F0aW9uLmZhdm9yaXRlcycsXG4gICAgICAgIHNob3J0Y3V0OiAnMycsXG4gICAgICAgIG9uRXhlY3V0ZUFjdGlvbjogKCkgPT4ge1xuICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoJy9mYXZvcml0ZXMnKTtcbiAgICAgICAgfSxcbiAgICAgICAgaXNIaWRkZW46ICgpID0+IHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5jYXBhYmlsaXRpZXMgPyAhdGhpcy5jYXBhYmlsaXRpZXMuZmF2b3JpdGVzIDogdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8uYmFyLmJ1dHRvbi5zZXR0aW5ncy50aXRsZScpLFxuICAgICAgICBuYW1lS2V5OiAnZW8uYmFyLmJ1dHRvbi5zZXR0aW5ncy50aXRsZScsXG4gICAgICAgIHNob3J0Y3V0OiAnNCcsXG4gICAgICAgIG9uRXhlY3V0ZUFjdGlvbjogKCkgPT4ge1xuICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoJy9zZXR0aW5ncycpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby52aWV3Lm5hdmlnYXRpb24ucHJvY2VzcycpLFxuICAgICAgICBuYW1lS2V5OiAnZW8udmlldy5uYXZpZ2F0aW9uLnByb2Nlc3MnLFxuICAgICAgICBzaG9ydGN1dDogJzUnLFxuICAgICAgICBvbkV4ZWN1dGVBY3Rpb246ICgpID0+IHtcbiAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCcvcHJvY2VzcycpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby52aWV3Lm5hdmlnYXRpb24ubm90aWZpY2F0aW9ucycpLFxuICAgICAgICBuYW1lS2V5OiAnZW8udmlldy5uYXZpZ2F0aW9uLm5vdGlmaWNhdGlvbnMnLFxuICAgICAgICBzaG9ydGN1dDogJzYnLFxuICAgICAgICBvbkV4ZWN1dGVBY3Rpb246ICgpID0+IHtcbiAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCcvbm90aWZpY2F0aW9ucycpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdlby52aWV3Lm5hdmlnYXRpb24uc3RvcmVkcXVlcmllcycpLFxuICAgICAgICBuYW1lS2V5OiAnZW8udmlldy5uYXZpZ2F0aW9uLnN0b3JlZHF1ZXJpZXMnLFxuICAgICAgICBzaG9ydGN1dDogJzcnLFxuICAgICAgICBvbkV4ZWN1dGVBY3Rpb246ICgpID0+IHtcbiAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCcvc3RvcmVkLXF1ZXJpZXMnKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnZW8udmlldy5uYXZpZ2F0aW9uLnJlY3ljbGViaW4nKSxcbiAgICAgICAgbmFtZUtleTogJ2VvLnZpZXcubmF2aWdhdGlvbi5yZWN5Y2xlYmluJyxcbiAgICAgICAgc2hvcnRjdXQ6ICc4JyxcbiAgICAgICAgb25FeGVjdXRlQWN0aW9uOiAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgnL3JlY3ljbGViaW4nKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICBdXG4gIH07XG5cblxuICAvLyBASG9zdExpc3RlbmVyIGFsbG93cyB1cyB0byBhbHNvIGd1YXJkIGFnYWluc3QgYnJvd3NlciByZWZyZXNoLCBjbG9zZSwgZXRjLlxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6YmVmb3JldW5sb2FkJywgWyckZXZlbnQnXSlcbiAgdW5sb2FkTm90aWZpY2F0aW9uKCRldmVudDogYW55KSB7XG4gICAgcmV0dXJuICF0aGlzLnBlbmRpbmdDaGFuZ2VzLmNoZWNrKCk7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2F0dHIuZGF0YS1yb2xlcycpIHJvbGVzID0gJyc7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBub3RpZnk6IE5vdGlmaWNhdGlvbnNTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIHVzZXJTZXJ2aWNlOiBVc2VyU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICAgICAgICAgICAgcHJpdmF0ZSBjb25maWc6IENvbmZpZyxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBsb2NhdGlvbjogTG9jYXRpb24sXG4gICAgICAgICAgICAgIHB1YmxpYyB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIHBlbmRpbmdDaGFuZ2VzOiBQZW5kaW5nQ2hhbmdlc1NlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgY2FwYWJpbGl0aWVzU2VydmljZTogQ2FwYWJpbGl0aWVzU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSB1cGxvYWRSZWdpc3RyeTogVXBsb2FkUmVnaXN0cnlTZXJ2aWNlKSB7XG5cbiAgICAvLyB0aGlzLmNhcGFiaWxpdGllcyA9IHRoaXMuY2FwYWJpbGl0aWVzU2VydmljZS5nZXRDYXBhYmlsaXRpZXMoKTtcblxuICAgIC8vIEluaXRpYWxpemF0aW9uIG9mIHRoZSBjb3JlIGNvbXBvbmVudHMgaXMgZG9uZSwgc28gd2UgY2hlY2sgaXRzIHN0YXRlXG4gICAgLy8gQW55IGVycm9ycyBkdXJpbmcgZ2xvYmFsIGluaXRpYWxpemF0aW9uP1xuICAgIC8vIGlmICh0aGlzLmluaXQuZ2V0U3RhdGUoKS5lcnJvciAhPT0gbnVsbCkge1xuICAgIC8vICAgdGhpcy5pbml0RXJyb3IgPSB7XG4gICAgLy8gICAgIGNhdXNlOiB0aGlzLmluaXQuZ2V0U3RhdGUoKS5lcnJvclxuICAgIC8vICAgfVxuICAgIC8vIH1cblxuICAgIHRoaXMudXNlclNlcnZpY2VcbiAgICAgIC51c2VyJFxuICAgICAgLnN1YnNjcmliZSgodXNlcjogRW9Vc2VyKSA9PiB7XG4gICAgICAgIHRoaXMuZGlyID0gdXNlciA/IHVzZXIudWlEaXJlY3Rpb24gOiAnbHRyJztcbiAgICAgICAgdGhpcy5yb2xlcyA9IHVzZXI/LnJvbGVzPy5tYXAociA9PiByLm5hbWUpLmpvaW4oJzsnKSB8fCAnJztcbiAgICAgICAgdGhpcy51c2VyID0gdXNlcjtcbiAgICAgIH0pO1xuXG4gICAgdGhpcy5yb3V0ZXJcbiAgICAgIC5ldmVudHNcbiAgICAgIC5zdWJzY3JpYmUoZXZlbnQgPT4ge1xuICAgICAgICBpZiAoZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSB7XG4gICAgICAgICAgdGhpcy5zZXRTdHlsZSgpO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgIHRoaXMuYXV0aFNlcnZpY2VcbiAgICAgIC5hdXRoZW50aWNhdGVkJFxuICAgICAgLnN1YnNjcmliZShhdXRoZW50aWNhdGVkID0+IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLmF1dGhlbnRpY2F0ZWQgPSBhdXRoZW50aWNhdGVkO1xuICAgICAgICAvLyBmZXRjaCBjYXBhYmlsaXRpZXMgYWdhaW4gb25jZSBhIHVzZXIgaXMgYXV0aGVudGljYXRlZFxuICAgICAgICBpZiAoYXV0aGVudGljYXRlZCkge1xuICAgICAgICAgIHRoaXMuY2FwYWJpbGl0aWVzID0gdGhpcy5jYXBhYmlsaXRpZXNTZXJ2aWNlLmdldENhcGFiaWxpdGllcygpO1xuICAgICAgICB9XG4gICAgICB9KSk7XG5cbiAgICAvLyBhZGQgcm9vdCB1cGxvYWQgdGFyZ2V0XG4gICAgbGV0IHJvb3RUYXJnZXQgPSBuZXcgVXBsb2FkVGFyZ2V0KCdyb290JywgVXBsb2FkVGFyZ2V0LlJPT1QpO1xuICAgIHJvb3RUYXJnZXQub25VcGxvYWRTdWNjZXNzID0gKCkgPT4gdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvcHJlcGFyZSddKTtcbiAgICB0aGlzLnVwbG9hZFJlZ2lzdHJ5LnJlZ2lzdGVyKHJvb3RUYXJnZXQpO1xuXG4gICAgdGhpcy5zZXRTdHlsZSgpO1xuICB9XG5cbiAgZ2V0RG9jdW1lbnRhdGlvbigpIHtcbiAgICB0aGlzLnVzZXJTZXJ2aWNlXG4gICAgICAudXNlciRcbiAgICAgIC5zdWJzY3JpYmUoZGF0YSA9PiB7XG4gICAgICAgIGNvbnN0IGRvY3UgPSB0aGlzLmNvbmZpZy5nZXRSYXcoJ2Fib3V0LmRvY3UnKTtcbiAgICAgICAgY29uc3QgbGluayA9IGRvY3UubGluay5yZXBsYWNlKCcjIyN1c2VyTGFuZyMjIycsIGRhdGE/LnVzZXJTZXR0aW5ncz8uY2xpZW50bG9jYWxlPy5zdWJzdHJpbmcoMCwgMikgfHwgdGhpcy51c2VyLmdldENsaWVudExvY2FsZSgpKTtcbiAgICAgICAgdGhpcy5kb2N1ID0gey4uLmRvY3UsIGxpbmt9O1xuICAgICAgfSlcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuZ2V0RG9jdW1lbnRhdGlvbigpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRTdHlsZSgpIHtcbiAgICB0aGlzLnRyYW5zcGFyZW50QmFyID0gISF0aGlzLmxvY2F0aW9uLnBhdGgoKS5tYXRjaCgvXFwvZGFzaGJvYXJkfFxcL2VudGVyLyk7XG4gICAgdGhpcy5pc09iamVjdFN0YXRlID0gISF0aGlzLmxvY2F0aW9uLnBhdGgoKS5tYXRjaCgvXFwvb2JqZWN0XFwvLyk7XG4gIH1cblxuICBhZGp1c3RWaWV3KCkge1xuICAgIHRoaXMubm9CYXIgPSAodGhpcy5ub0JhciArIDEpICUgMztcbiAgICB0aGlzLm5vSGVhZGVyID0gdGhpcy5ub0JhciA9PT0gMiA/IDEgOiAwO1xuICB9XG59XG5cbiIsIjwhLS0gZ2xvYmFsIHVwbG9hZCBjb21wb25lbnQgLS0+XG48ZW8tdXBsb2FkLW92ZXJsYXkgKm5nSWY9XCJhdXRoZW50aWNhdGVkICYmIGNhcGFiaWxpdGllcz8uaW50cmF5XCI+PC9lby11cGxvYWQtb3ZlcmxheT5cblxuPCEtLSBtYWluIGFwcGxpY2F0aW9uIHNrZWxldG9uIC0tPlxuPGRpdiBjbGFzcz1cImFwcGxpY2F0aW9uXCIgW2Rpcl09XCJkaXJcIiBbZW9TaG9ydGN1dHNdPVwibmF2U2hvcnRjdXRzXCI+XG5cbiAgPGRpdiBjbGFzcz1cImFwcFwiICpuZ0lmPVwiIWluaXRFcnJvclwiIFtlb1Nob3J0Y3V0c109XCJzaG9ydGN1dHNcIj5cbiAgICA8ZW8tYXBwLWJhciBbdHJhbnNwYXJlbnRdPVwidHJhbnNwYXJlbnRCYXJcIiAqbmdJZj1cImF1dGhlbnRpY2F0ZWRcIj5cbiAgICAgIDxlby1zaWRlYmFyLXBsdWdpbiBjbGFzcz1cIm5hdmlcIiBbdHlwZV09XCInc2lkZWJhci1uYXZpZ2F0aW9uJ1wiPjwvZW8tc2lkZWJhci1wbHVnaW4+XG4gICAgICA8ZW8tc2lkZWJhci1wbHVnaW4gY2xhc3M9XCJoZWxwXCIgW3R5cGVdPVwiJ3NpZGViYXItaGVscCdcIj48L2VvLXNpZGViYXItcGx1Z2luPlxuICAgICAgPGVvLXNpZGViYXItcGx1Z2luIGNsYXNzPVwicHJvZmlsZVwiIFt0eXBlXT1cIidzaWRlYmFyLXByb2ZpbGUnXCI+PC9lby1zaWRlYmFyLXBsdWdpbj5cbiAgICA8L2VvLWFwcC1iYXI+XG4gICAgPGRpdiBjbGFzcz1cImVvLWFwcC1jb250ZW50XCI+XG4gICAgICA8cm91dGVyLW91dGxldD48L3JvdXRlci1vdXRsZXQ+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDwhLS0gYXBwIGluaXQgZmFpbGVkIG5vdGlmaWNhdGlvbiAtLT5cbiAgPGRpdiBjbGFzcz1cImluaXQtZXJyb3JcIiAqbmdJZj1cImluaXRFcnJvclwiPlxuICAgIDxlby1pY29uIFtpY29uU3JjXT1cIidhc3NldHMvX2RlZmF1bHQvc3ZnL2ljX2Vycm9yLnN2ZydcIj48L2VvLWljb24+XG4gICAgPGRpdiBjbGFzcz1cIm1lc3NhZ2VcIj5cbiAgICAgIDxkaXYgdHJhbnNsYXRlPmVvLmFwcC5pbml0LmZhaWwudGl0bGU8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjYXVzZVwiIHRyYW5zbGF0ZT5lby5hcHAuaW5pdC5mYWlsLm1lc3NhZ2U8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjYXVzZSBlcnJvclwiPnt7aW5pdEVycm9yLmNhdXNlfX08L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cIm92ZXJsYXlcIj5cbiAgICA8IS0tPG5nLXByb2dyZXNzIFtwb3NpdGlvblVzaW5nXT1cIidtYXJnaW5MZWZ0J1wiIFttaW5pbXVtXT1cIjAuM1wiIFttYXhpbXVtXT1cIjFcIi0tPlxuICAgIDwhLS1bc3BlZWRdPVwiMzAwXCIgW3Nob3dTcGlubmVyXT1cImZhbHNlXCItLT5cbiAgICA8IS0tW2RpcmVjdGlvbl09XCJkaXIgPT09ICdydGwnID8gJ3JpZ2h0VG9MZWZ0SW5jcmVhc2VkJyA6ICdsZWZ0VG9SaWdodEluY3JlYXNlZCdcIi0tPlxuICAgIDwhLS1bY29sb3JdPVwiJyNiYjNmNWEnXCIgW3RyaWNrbGVTcGVlZF09XCIzMDBcIiBbdGhpY2tdPVwidHJ1ZVwiIFtlYXNlXT1cIidsaW5lYXInXCItLT5cbiAgICA8IS0tJmd0OzwvbmctcHJvZ3Jlc3M+LS0+XG4gIDwvZGl2PlxuICA8cm91dGVyLW91dGxldCBuYW1lPVwibW9kYWxcIj48L3JvdXRlci1vdXRsZXQ+XG4gIDxlby1nbG9iYWwtc2hvcnRjdXRzICpuZ0lmPVwiYXV0aGVudGljYXRlZCAmJiAhaXNNb2JpbGVFbnZcIj48L2VvLWdsb2JhbC1zaG9ydGN1dHM+XG4gIDxlby1hY3Rpb24tbWVudT48L2VvLWFjdGlvbi1tZW51PlxuICA8c2VjdGlvbiAjZXh0ZXJuYWxEaWFsb2c+PC9zZWN0aW9uPlxuPC9kaXY+XG4iXX0=
@@ -85,12 +85,12 @@ export class DynamicListFilterComponent extends DynamicListComponent {
85
85
  }
86
86
  }
87
87
  DynamicListFilterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: DynamicListFilterComponent, deps: [{ token: i1.TranslateService }, { token: i1.EventService }], target: i0.ɵɵFactoryTarget.Component });
88
- DynamicListFilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: DynamicListFilterComponent, selector: "eo-dynamic-list-filter", viewQueries: [{ propertyName: "eoDialog", first: true, predicate: EoDialogComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<eo-dialog #listDialog [title]=\"pickerTitle\" [visible]=\"display\" [ngClass]=\"{empty: !(list?.entries?.length)}\"\n [styleClass]=\"'dynlist-dialog'\" (hide)=\"display = false\">\n\n <eo-tree [tree]=\"tree\" *ngIf=\"display && tree\" [isDisplayed]=\"display\" [options]=\"{multiselect: multiselect}\"\n [(ngModel)]=\"selectedNodes\" (keyup.enter)=\"showDialog($event, false)\"\n (ngModelChange)=\"onTreeSelectionChanged($event)\">\n </eo-tree>\n\n <div class=\"empty\" *ngIf=\"!(list?.entries?.length)\">\n <div translate>eo.form.property.dynamic.list.empty</div>\n </div>\n</eo-dialog>\n\n<div class=\"eo-dynamic-list\" [ngClass]=\"{full: selectedNodes && selectedNodes.length === autocompleteValues.length}\">\n\n <yvc-autocomplete [(ngModel)]=\"selectedNodes\" #autocomplete (suggestionSelect)=\"onAutoCompleteSelect($event)\"\n [disabled]=\"readonly\" (suggestionUnselect)=\"onAutoCompleteUnselect($event)\" [forceSelection]=\"true\"\n [autocompleteValues]=\"autocompleteRes\" field=\"{{valueField}}\" (autocompleteFnc)=\"autocompleteFn($event)\"\n [multiple]=\"multiselect\">\n\n <ng-template let-item #chipTemplate>\n <div>\n <div class=\"value\">{{item[valueField]}}</div>\n </div>\n </ng-template>\n\n <ng-template #autocompleteOptionTemplate let-item>\n <div>\n <div class=\"value\">{{item[valueField]}}</div>\n <div class=\"description\" style=\"font-style: italic; color: var(--text-color-caption)\">{{item[descriptionField]}}</div>\n </div>\n </ng-template>\n </yvc-autocomplete>\n\n <button #button class=\"ui-button\" *ngIf=\"!readonly\" [disabled]=\"readonly\" (click)=\"showDialog($event, $event.detail)\"\n (keyup.arrowDown)=\"showDialog($event)\" (keyup.enter)=\"showDialog($event)\" (keyup.space)=\"showDialog($event)\">\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_arrow_down.svg'\"></eo-icon>\n </button>\n</div>", styles: [".rtl .form-element .form-field>div label{text-align:left!important}:host .eo-dynamic-list{display:flex;align-items:center;justify-content:space-between}:host .eo-dynamic-list .description{padding-left:0!important}:host .eo-dynamic-list yvc-autocomplete{flex:1 1 auto;border:0;outline:0}:host .eo-dynamic-list>button{flex:0 0 auto;padding:0}:host .eo-dynamic-list>button eo-icon{width:16px;height:16px;margin:auto}:host .eo-dynamic-list.full ::ng-deep yvc-autocomplete .inputToken{display:none}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i4.EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "component", type: i5.EoDialogComponent, selector: "eo-dialog", inputs: ["hasPreviewFile", "title", "subtitle", "styleClass", "dirtyCheck", "minWidth", "minHeight", "height", "width", "focusOnShow", "align", "isFormTable", "showPreview", "visible"], outputs: ["onTogglePreview", "visibleChange", "hide", "show"] }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i7.TreeComponent, selector: "eo-tree", inputs: ["options", "isDisplayed", "readonly", "emptyMessage", "selectionKey", "highlightedNodes", "tree", "treeUpdate"], outputs: ["expandedNodesChanged", "onSelected"] }, { kind: "component", type: i8.AutoComplete, selector: "yvc-autocomplete", inputs: ["field", "placeholder", "minLength", "multiple", "typeahead", "distinctValues", "forceSelection", "autocompleteValues", "disabled"], outputs: ["autocompleteFnc", "blur", "focus", "suggestionUnselect", "suggestionSelect"] }] });
88
+ DynamicListFilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: DynamicListFilterComponent, selector: "eo-dynamic-list-filter", viewQueries: [{ propertyName: "eoDialog", first: true, predicate: EoDialogComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<eo-dialog #listDialog [title]=\"pickerTitle\" [visible]=\"display\" [ngClass]=\"{empty: !(list?.entries?.length)}\"\n [styleClass]=\"'dynlist-dialog'\" (hide)=\"display = false\">\n\n <eo-tree [tree]=\"tree\" *ngIf=\"display && tree\" [isDisplayed]=\"display\" [options]=\"{multiselect: multiselect}\"\n [(ngModel)]=\"selectedNodes\" (keyup.enter)=\"showDialog($event, false)\"\n (ngModelChange)=\"onTreeSelectionChanged($event)\">\n </eo-tree>\n\n <div class=\"empty\" *ngIf=\"!(list?.entries?.length)\">\n <div translate>eo.form.property.dynamic.list.empty</div>\n </div>\n</eo-dialog>\n\n<div class=\"eo-dynamic-list\" [ngClass]=\"{full: selectedNodes && selectedNodes.length === autocompleteValues.length}\">\n\n <yvc-autocomplete [(ngModel)]=\"selectedNodes\" #autocomplete (suggestionSelect)=\"onAutoCompleteSelect($event)\"\n [disabled]=\"readonly\" (suggestionUnselect)=\"onAutoCompleteUnselect($event)\" [forceSelection]=\"true\"\n [autocompleteValues]=\"autocompleteRes\" (ngModelChange)=\"onTreeSelectionChanged($event)\" field=\"{{valueField}}\" (autocompleteFnc)=\"autocompleteFn($event)\"\n [multiple]=\"multiselect\">\n\n <ng-template let-item #chipTemplate>\n <div>\n <div class=\"value\">{{item[valueField]}}</div>\n </div>\n </ng-template>\n\n <ng-template #autocompleteOptionTemplate let-item>\n <div>\n <div class=\"value\">{{item[valueField]}}</div>\n <div class=\"description\" style=\"font-style: italic; color: var(--text-color-caption)\">{{item[descriptionField]}}</div>\n </div>\n </ng-template>\n </yvc-autocomplete>\n\n <button #button class=\"ui-button\" *ngIf=\"!readonly\" [disabled]=\"readonly\" (click)=\"showDialog($event, $event.detail)\"\n (keyup.arrowDown)=\"showDialog($event)\" (keyup.enter)=\"showDialog($event)\" (keyup.space)=\"showDialog($event)\">\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_arrow_down.svg'\"></eo-icon>\n </button>\n</div>", styles: [".rtl .form-element .form-field>div label{text-align:left!important}:host .eo-dynamic-list{display:flex;align-items:center;justify-content:space-between}:host .eo-dynamic-list .description{padding-left:0!important}:host .eo-dynamic-list yvc-autocomplete{flex:1 1 auto;border:0;outline:0}:host .eo-dynamic-list>button{flex:0 0 auto;padding:0}:host .eo-dynamic-list>button eo-icon{width:16px;height:16px;margin:auto}:host .eo-dynamic-list.full ::ng-deep yvc-autocomplete .inputToken{display:none}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i4.EoIconComponent, selector: "eo-icon", inputs: ["objectType", "iconId", "iconSrc", "badge", "iconTitle"] }, { kind: "component", type: i5.EoDialogComponent, selector: "eo-dialog", inputs: ["hasPreviewFile", "title", "subtitle", "styleClass", "dirtyCheck", "minWidth", "minHeight", "height", "width", "focusOnShow", "align", "isFormTable", "showPreview", "visible"], outputs: ["onTogglePreview", "visibleChange", "hide", "show"] }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i7.TreeComponent, selector: "eo-tree", inputs: ["options", "isDisplayed", "readonly", "emptyMessage", "selectionKey", "highlightedNodes", "tree", "treeUpdate"], outputs: ["expandedNodesChanged", "onSelected"] }, { kind: "component", type: i8.AutoComplete, selector: "yvc-autocomplete", inputs: ["field", "placeholder", "minLength", "multiple", "typeahead", "distinctValues", "forceSelection", "autocompleteValues", "disabled"], outputs: ["autocompleteFnc", "blur", "focus", "suggestionUnselect", "suggestionSelect"] }] });
89
89
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: DynamicListFilterComponent, decorators: [{
90
90
  type: Component,
91
- args: [{ selector: 'eo-dynamic-list-filter', template: "<eo-dialog #listDialog [title]=\"pickerTitle\" [visible]=\"display\" [ngClass]=\"{empty: !(list?.entries?.length)}\"\n [styleClass]=\"'dynlist-dialog'\" (hide)=\"display = false\">\n\n <eo-tree [tree]=\"tree\" *ngIf=\"display && tree\" [isDisplayed]=\"display\" [options]=\"{multiselect: multiselect}\"\n [(ngModel)]=\"selectedNodes\" (keyup.enter)=\"showDialog($event, false)\"\n (ngModelChange)=\"onTreeSelectionChanged($event)\">\n </eo-tree>\n\n <div class=\"empty\" *ngIf=\"!(list?.entries?.length)\">\n <div translate>eo.form.property.dynamic.list.empty</div>\n </div>\n</eo-dialog>\n\n<div class=\"eo-dynamic-list\" [ngClass]=\"{full: selectedNodes && selectedNodes.length === autocompleteValues.length}\">\n\n <yvc-autocomplete [(ngModel)]=\"selectedNodes\" #autocomplete (suggestionSelect)=\"onAutoCompleteSelect($event)\"\n [disabled]=\"readonly\" (suggestionUnselect)=\"onAutoCompleteUnselect($event)\" [forceSelection]=\"true\"\n [autocompleteValues]=\"autocompleteRes\" field=\"{{valueField}}\" (autocompleteFnc)=\"autocompleteFn($event)\"\n [multiple]=\"multiselect\">\n\n <ng-template let-item #chipTemplate>\n <div>\n <div class=\"value\">{{item[valueField]}}</div>\n </div>\n </ng-template>\n\n <ng-template #autocompleteOptionTemplate let-item>\n <div>\n <div class=\"value\">{{item[valueField]}}</div>\n <div class=\"description\" style=\"font-style: italic; color: var(--text-color-caption)\">{{item[descriptionField]}}</div>\n </div>\n </ng-template>\n </yvc-autocomplete>\n\n <button #button class=\"ui-button\" *ngIf=\"!readonly\" [disabled]=\"readonly\" (click)=\"showDialog($event, $event.detail)\"\n (keyup.arrowDown)=\"showDialog($event)\" (keyup.enter)=\"showDialog($event)\" (keyup.space)=\"showDialog($event)\">\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_arrow_down.svg'\"></eo-icon>\n </button>\n</div>", styles: [".rtl .form-element .form-field>div label{text-align:left!important}:host .eo-dynamic-list{display:flex;align-items:center;justify-content:space-between}:host .eo-dynamic-list .description{padding-left:0!important}:host .eo-dynamic-list yvc-autocomplete{flex:1 1 auto;border:0;outline:0}:host .eo-dynamic-list>button{flex:0 0 auto;padding:0}:host .eo-dynamic-list>button eo-icon{width:16px;height:16px;margin:auto}:host .eo-dynamic-list.full ::ng-deep yvc-autocomplete .inputToken{display:none}\n"] }]
91
+ args: [{ selector: 'eo-dynamic-list-filter', template: "<eo-dialog #listDialog [title]=\"pickerTitle\" [visible]=\"display\" [ngClass]=\"{empty: !(list?.entries?.length)}\"\n [styleClass]=\"'dynlist-dialog'\" (hide)=\"display = false\">\n\n <eo-tree [tree]=\"tree\" *ngIf=\"display && tree\" [isDisplayed]=\"display\" [options]=\"{multiselect: multiselect}\"\n [(ngModel)]=\"selectedNodes\" (keyup.enter)=\"showDialog($event, false)\"\n (ngModelChange)=\"onTreeSelectionChanged($event)\">\n </eo-tree>\n\n <div class=\"empty\" *ngIf=\"!(list?.entries?.length)\">\n <div translate>eo.form.property.dynamic.list.empty</div>\n </div>\n</eo-dialog>\n\n<div class=\"eo-dynamic-list\" [ngClass]=\"{full: selectedNodes && selectedNodes.length === autocompleteValues.length}\">\n\n <yvc-autocomplete [(ngModel)]=\"selectedNodes\" #autocomplete (suggestionSelect)=\"onAutoCompleteSelect($event)\"\n [disabled]=\"readonly\" (suggestionUnselect)=\"onAutoCompleteUnselect($event)\" [forceSelection]=\"true\"\n [autocompleteValues]=\"autocompleteRes\" (ngModelChange)=\"onTreeSelectionChanged($event)\" field=\"{{valueField}}\" (autocompleteFnc)=\"autocompleteFn($event)\"\n [multiple]=\"multiselect\">\n\n <ng-template let-item #chipTemplate>\n <div>\n <div class=\"value\">{{item[valueField]}}</div>\n </div>\n </ng-template>\n\n <ng-template #autocompleteOptionTemplate let-item>\n <div>\n <div class=\"value\">{{item[valueField]}}</div>\n <div class=\"description\" style=\"font-style: italic; color: var(--text-color-caption)\">{{item[descriptionField]}}</div>\n </div>\n </ng-template>\n </yvc-autocomplete>\n\n <button #button class=\"ui-button\" *ngIf=\"!readonly\" [disabled]=\"readonly\" (click)=\"showDialog($event, $event.detail)\"\n (keyup.arrowDown)=\"showDialog($event)\" (keyup.enter)=\"showDialog($event)\" (keyup.space)=\"showDialog($event)\">\n <eo-icon [iconSrc]=\"'assets/_default/svg/ic_arrow_down.svg'\"></eo-icon>\n </button>\n</div>", styles: [".rtl .form-element .form-field>div label{text-align:left!important}:host .eo-dynamic-list{display:flex;align-items:center;justify-content:space-between}:host .eo-dynamic-list .description{padding-left:0!important}:host .eo-dynamic-list yvc-autocomplete{flex:1 1 auto;border:0;outline:0}:host .eo-dynamic-list>button{flex:0 0 auto;padding:0}:host .eo-dynamic-list>button eo-icon{width:16px;height:16px;margin:auto}:host .eo-dynamic-list.full ::ng-deep yvc-autocomplete .inputToken{display:none}\n"] }]
92
92
  }], ctorParameters: function () { return [{ type: i1.TranslateService }, { type: i1.EventService }]; }, propDecorators: { eoDialog: [{
93
93
  type: ViewChild,
94
94
  args: [EoDialogComponent]
95
95
  }] } });
96
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1saXN0LWZpbHRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWZyYW1ld29yay9ncmlkL2ZpbHRlcnMvZHluYW1pYy1saXN0LWZpbHRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWZyYW1ld29yay9mb3JtLWVsZW1lbnRzL2R5bmFtaWMtbGlzdC9keW5hbWljLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFFLFVBQVUsRUFBa0MsTUFBTSxjQUFjLENBQUM7QUFDMUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXhDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBQy9GLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDOzs7Ozs7Ozs7O0FBUTNFLE1BQU0sT0FBTywwQkFBMkIsU0FBUSxvQkFBb0I7SUFRbEUsWUFBWSxTQUEyQixFQUFVLFlBQTBCO1FBQ3pFLEtBQUssRUFBRSxDQUFDO1FBRHVDLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBUDNFLFdBQU0sR0FBUSxFQUFFLENBQUM7UUFFakIsZ0JBQVcsR0FBRyxJQUFJLENBQUM7UUFDbkIsY0FBUyxHQUFHLFFBQVEsQ0FBQztJQU1yQixDQUFDO0lBRUQsYUFBYTtRQUNYLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRTtZQUN0RSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUNsQyx5QkFBeUI7WUFDekIscUJBQXFCO1lBQ3JCLDBIQUEwSDtZQUMxSCxTQUFTO1NBQ1Y7SUFDSCxDQUFDO0lBRUQsb0JBQW9CLENBQUMsSUFBSTtRQUN2QixLQUFLLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxzQkFBc0IsQ0FBQyxJQUFJO1FBQ3pCLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVELHNCQUFzQixDQUFDLEdBQUc7UUFDeEIsS0FBSyxDQUFDLHNCQUFzQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQsY0FBYztRQUNaLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxjQUFjLENBQUMsTUFBNkI7UUFDMUMsSUFBSSxJQUFJLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFO1lBQ25ELE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDcEQsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztpQkFDNUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDckU7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxRQUFRO1FBQ04sT0FBTyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztZQUN2QyxVQUFVLEVBQUUsNEJBQTRCO1lBQ3hDLE1BQU0sRUFBRSxJQUFJLENBQUMsS0FBSztTQUNuQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDWCxDQUFDO0lBRUQsUUFBUSxDQUFDLEtBQVU7UUFDakIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQsTUFBTSxDQUFDLE1BQVc7UUFDaEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLEtBQUssRUFBQyxDQUFDLENBQUMsRUFBQyxDQUFDO1FBQ3BHLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDO1FBRWpELFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDMUYsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRU4sSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLHVCQUF1QixDQUFDLENBQUMsSUFBSSxDQUMzRCxNQUFNLENBQUMsQ0FBQyxLQUFVLEVBQUUsRUFBRSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUMxRixDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQVUsRUFBRSxFQUFFO1lBQ3ZCLElBQUksUUFBUSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUM7WUFDdkUsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtnQkFDckIsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsSUFBSSxFQUFDLENBQUMsQ0FBQzthQUN6QztpQkFBTTtnQkFDTCxVQUFVLENBQUMsR0FBRyxFQUFFO29CQUNkLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEtBQUssUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNoSCxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7YUFDUDtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELGdCQUFnQixDQUFDLE1BQStCO1FBQzlDLDZEQUE2RDtJQUMvRCxDQUFDOzt1SEF0RlUsMEJBQTBCOzJHQUExQiwwQkFBMEIsd0dBTTFCLGlCQUFpQix1RUNyQjlCLHE0REFzQ007MkZEdkJPLDBCQUEwQjtrQkFMdEMsU0FBUzsrQkFDRSx3QkFBd0I7a0lBVUosUUFBUTtzQkFBckMsU0FBUzt1QkFBQyxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJRmlsdGVyQW5ndWxhckNvbXAgfSBmcm9tICdAYWctZ3JpZC1jb21tdW5pdHkvYW5ndWxhcic7XG5pbXBvcnQgeyBJQWZ0ZXJHdWlBdHRhY2hlZFBhcmFtcywgSURvZXNGaWx0ZXJQYXNzUGFyYW1zIH0gZnJvbSAnQGFnLWdyaWQtY29tbXVuaXR5L2NvcmUnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEVuYWlvRXZlbnQsIEV2ZW50U2VydmljZSwgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0Blby1zZGsvY29yZSc7XG5pbXBvcnQgeyBmaWx0ZXIgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IER5bmFtaWNMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vZm9ybS1lbGVtZW50cy9keW5hbWljLWxpc3QvZHluYW1pYy1saXN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFb0RpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL3VpL2VvLWRpYWxvZy9lby1kaWFsb2cuY29tcG9uZW50JztcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlby1keW5hbWljLWxpc3QtZmlsdGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuLi8uLi9mb3JtLWVsZW1lbnRzL2R5bmFtaWMtbGlzdC9keW5hbWljLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi4vLi4vZm9ybS1lbGVtZW50cy9keW5hbWljLWxpc3QvZHluYW1pYy1saXN0LmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgRHluYW1pY0xpc3RGaWx0ZXJDb21wb25lbnQgZXh0ZW5kcyBEeW5hbWljTGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIElGaWx0ZXJBbmd1bGFyQ29tcCB7XG4gIHBhcmFtczogYW55ID0ge307XG4gIGNvbHVtbjogYW55O1xuICBtdWx0aXNlbGVjdCA9IHRydWU7XG4gIHNpdHVhdGlvbiA9ICdTRUFSQ0gnO1xuXG4gIEBWaWV3Q2hpbGQoRW9EaWFsb2dDb21wb25lbnQpIGVvRGlhbG9nOiBFb0RpYWxvZ0NvbXBvbmVudDtcblxuICBjb25zdHJ1Y3Rvcih0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsIHByaXZhdGUgZXZlbnRTZXJ2aWNlOiBFdmVudFNlcnZpY2UpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgb25WYWx1ZUNoYW5nZSgpIHtcbiAgICBpZiAoIXRoaXMucGFyYW1zLmZpbHRlclBhcmFtcyB8fCAhdGhpcy5wYXJhbXMuZmlsdGVyUGFyYW1zLmFwcGx5QnV0dG9uKSB7XG4gICAgICB0aGlzLnBhcmFtcy5hcGkub25GaWx0ZXJDaGFuZ2VkKCk7XG4gICAgICAvLyBUT0RPOiBzdGlsbCBuZWNlc3Nhcnk/XG4gICAgICAvLyBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIC8vICAgdGhpcy5hdXRvQ29tcGxldGVCdXR0b24ubmF0aXZlRWxlbWVudC5zdHlsZS50b3AgPSB0aGlzLmF1dG9Db21wbGV0ZUlucHV0Lm11bHRpSW5wdXRFTC5uYXRpdmVFbGVtZW50Lm9mZnNldFRvcCArICdweCc7XG4gICAgICAvLyB9LCAwKTtcbiAgICB9XG4gIH1cblxuICBvbkF1dG9Db21wbGV0ZVNlbGVjdChub2RlKSB7XG4gICAgc3VwZXIub25BdXRvQ29tcGxldGVTZWxlY3Qobm9kZSk7XG4gICAgdGhpcy5vblZhbHVlQ2hhbmdlKCk7XG4gIH1cblxuICBvbkF1dG9Db21wbGV0ZVVuc2VsZWN0KG5vZGUpIHtcbiAgICBzdXBlci5vbkF1dG9Db21wbGV0ZVVuc2VsZWN0KG5vZGUpO1xuICAgIHRoaXMub25WYWx1ZUNoYW5nZSgpO1xuICB9XG5cbiAgb25UcmVlU2VsZWN0aW9uQ2hhbmdlZChldnQpIHtcbiAgICBzdXBlci5vblRyZWVTZWxlY3Rpb25DaGFuZ2VkKGV2dCk7XG4gICAgdGhpcy5vblZhbHVlQ2hhbmdlKCk7XG4gIH1cblxuICBpc0ZpbHRlckFjdGl2ZSgpIHtcbiAgICByZXR1cm4gISEodGhpcy52YWx1ZSAmJiB0aGlzLnZhbHVlLmxlbmd0aCk7XG4gIH1cblxuICBkb2VzRmlsdGVyUGFzcyhwYXJhbXM6IElEb2VzRmlsdGVyUGFzc1BhcmFtcykge1xuICAgIGlmICh0aGlzLnNlbGVjdGVkTm9kZXMgJiYgdGhpcy5zZWxlY3RlZE5vZGVzLmxlbmd0aCkge1xuICAgICAgY29uc3QgdmFsdWUgPSBwYXJhbXMuZGF0YVt0aGlzLnBhcmFtcy5jb2xEZWYuZmllbGRdO1xuICAgICAgcmV0dXJuIChBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlIDogW3ZhbHVlXSlcbiAgICAgICAgLnNvbWUodmFsID0+ICEhfnRoaXMuc2VsZWN0ZWROb2Rlcy5tYXAodiA9PiB2Lm5hbWUpLmluZGV4T2YodmFsKSk7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGdldE1vZGVsKCkge1xuICAgIHJldHVybiB0aGlzLnZhbHVlICYmIHRoaXMudmFsdWUubGVuZ3RoID8ge1xuICAgICAgZmlsdGVyVHlwZTogJ0R5bmFtaWNMaXN0RmlsdGVyQ29tcG9uZW50JyxcbiAgICAgIGZpbHRlcjogdGhpcy52YWx1ZVxuICAgIH0gOiBudWxsO1xuICB9XG5cbiAgc2V0TW9kZWwodmFsdWU6IGFueSkge1xuICAgIHRoaXMud3JpdGVWYWx1ZSh2YWx1ZSk7XG4gIH1cblxuICBhZ0luaXQocGFyYW1zOiBhbnkpIHtcbiAgICB0aGlzLnBhcmFtcyA9IHBhcmFtcztcbiAgICB0aGlzLmxpc3RPYmplY3QgPSB7ZW50cmllczogKHRoaXMucGFyYW1zLmNvbERlZi5maWx0ZXJQYXJhbXMudmFsdWVzIHx8IFtdKS5tYXAodmFsdWUgPT4gKHt2YWx1ZX0pKX07XG4gICAgdGhpcy5waWNrZXJUaXRsZSA9IHRoaXMucGFyYW1zLmNvbERlZi5oZWFkZXJOYW1lO1xuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmNvbHVtbiA9IHRoaXMucGFyYW1zLmFwaS5jb2x1bW5Db250cm9sbGVyLmdyaWRDb2x1bW5zLmZpbmQoY29sID0+IGNvbC5tZW51VmlzaWJsZSk7XG4gICAgfSwgMCk7XG5cbiAgICB0aGlzLmV2ZW50U2VydmljZS5vbihFbmFpb0V2ZW50LkVPX0RJQUxPR19TVEFDS19DSEFOR0VEKS5waXBlKFxuICAgICAgZmlsdGVyKChldmVudDogYW55KSA9PiBldmVudCAmJiB0aGlzLnBhcmFtcy5jb2x1bW4gJiYgdGhpcy5wYXJhbXMuY29sdW1uLmlzTWVudVZpc2libGUoKSlcbiAgICApLnN1YnNjcmliZSgoZXZlbnQ6IGFueSkgPT4ge1xuICAgICAgICBsZXQgZWxlbWVudHMgPSB0aGlzLnBhcmFtcy5hcGlbJ2ZpbHRlck1hbmFnZXInXS5wb3B1cFNlcnZpY2UucG9wdXBMaXN0O1xuICAgICAgICBpZiAoZXZlbnQuZGF0YS5hY3RpdmUpIHtcbiAgICAgICAgICBlbGVtZW50cy5wdXNoKHtlbGVtZW50OiBkb2N1bWVudC5ib2R5fSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnBhcmFtcy5hcGlbJ2ZpbHRlck1hbmFnZXInXS5wb3B1cFNlcnZpY2UucG9wdXBMaXN0ID0gZWxlbWVudHMuZmlsdGVyKGVsID0+IGVsLmVsZW1lbnQgIT09IGRvY3VtZW50LmJvZHkpO1xuICAgICAgICAgIH0sIDApO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIGFmdGVyR3VpQXR0YWNoZWQocGFyYW1zOiBJQWZ0ZXJHdWlBdHRhY2hlZFBhcmFtcyk6IHZvaWQge1xuICAgIC8vIHRoaXMuYXV0b0NvbXBsZXRlSW5wdXQubXVsdGlJbnB1dEVMLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgfVxufVxuIiwiPGVvLWRpYWxvZyAjbGlzdERpYWxvZyBbdGl0bGVdPVwicGlja2VyVGl0bGVcIiBbdmlzaWJsZV09XCJkaXNwbGF5XCIgW25nQ2xhc3NdPVwie2VtcHR5OiAhKGxpc3Q/LmVudHJpZXM/Lmxlbmd0aCl9XCJcbiAgW3N0eWxlQ2xhc3NdPVwiJ2R5bmxpc3QtZGlhbG9nJ1wiIChoaWRlKT1cImRpc3BsYXkgPSBmYWxzZVwiPlxuXG4gIDxlby10cmVlIFt0cmVlXT1cInRyZWVcIiAqbmdJZj1cImRpc3BsYXkgJiYgdHJlZVwiIFtpc0Rpc3BsYXllZF09XCJkaXNwbGF5XCIgW29wdGlvbnNdPVwie211bHRpc2VsZWN0OiBtdWx0aXNlbGVjdH1cIlxuICAgIFsobmdNb2RlbCldPVwic2VsZWN0ZWROb2Rlc1wiIChrZXl1cC5lbnRlcik9XCJzaG93RGlhbG9nKCRldmVudCwgZmFsc2UpXCJcbiAgICAobmdNb2RlbENoYW5nZSk9XCJvblRyZWVTZWxlY3Rpb25DaGFuZ2VkKCRldmVudClcIj5cbiAgPC9lby10cmVlPlxuXG4gIDxkaXYgY2xhc3M9XCJlbXB0eVwiICpuZ0lmPVwiIShsaXN0Py5lbnRyaWVzPy5sZW5ndGgpXCI+XG4gICAgPGRpdiB0cmFuc2xhdGU+ZW8uZm9ybS5wcm9wZXJ0eS5keW5hbWljLmxpc3QuZW1wdHk8L2Rpdj5cbiAgPC9kaXY+XG48L2VvLWRpYWxvZz5cblxuPGRpdiBjbGFzcz1cImVvLWR5bmFtaWMtbGlzdFwiIFtuZ0NsYXNzXT1cIntmdWxsOiBzZWxlY3RlZE5vZGVzICYmIHNlbGVjdGVkTm9kZXMubGVuZ3RoID09PSBhdXRvY29tcGxldGVWYWx1ZXMubGVuZ3RofVwiPlxuXG4gIDx5dmMtYXV0b2NvbXBsZXRlIFsobmdNb2RlbCldPVwic2VsZWN0ZWROb2Rlc1wiICNhdXRvY29tcGxldGUgKHN1Z2dlc3Rpb25TZWxlY3QpPVwib25BdXRvQ29tcGxldGVTZWxlY3QoJGV2ZW50KVwiXG4gICAgW2Rpc2FibGVkXT1cInJlYWRvbmx5XCIgKHN1Z2dlc3Rpb25VbnNlbGVjdCk9XCJvbkF1dG9Db21wbGV0ZVVuc2VsZWN0KCRldmVudClcIiBbZm9yY2VTZWxlY3Rpb25dPVwidHJ1ZVwiXG4gICAgW2F1dG9jb21wbGV0ZVZhbHVlc109XCJhdXRvY29tcGxldGVSZXNcIiBmaWVsZD1cInt7dmFsdWVGaWVsZH19XCIgKGF1dG9jb21wbGV0ZUZuYyk9XCJhdXRvY29tcGxldGVGbigkZXZlbnQpXCJcbiAgICBbbXVsdGlwbGVdPVwibXVsdGlzZWxlY3RcIj5cblxuICAgIDxuZy10ZW1wbGF0ZSBsZXQtaXRlbSAjY2hpcFRlbXBsYXRlPlxuICAgICAgPGRpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInZhbHVlXCI+e3tpdGVtW3ZhbHVlRmllbGRdfX08L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8bmctdGVtcGxhdGUgI2F1dG9jb21wbGV0ZU9wdGlvblRlbXBsYXRlIGxldC1pdGVtPlxuICAgICAgPGRpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInZhbHVlXCI+e3tpdGVtW3ZhbHVlRmllbGRdfX08L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImRlc2NyaXB0aW9uXCIgc3R5bGU9XCJmb250LXN0eWxlOiBpdGFsaWM7IGNvbG9yOiB2YXIoLS10ZXh0LWNvbG9yLWNhcHRpb24pXCI+e3tpdGVtW2Rlc2NyaXB0aW9uRmllbGRdfX08L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwveXZjLWF1dG9jb21wbGV0ZT5cblxuICA8YnV0dG9uICNidXR0b24gY2xhc3M9XCJ1aS1idXR0b25cIiAqbmdJZj1cIiFyZWFkb25seVwiIFtkaXNhYmxlZF09XCJyZWFkb25seVwiIChjbGljayk9XCJzaG93RGlhbG9nKCRldmVudCwgJGV2ZW50LmRldGFpbClcIlxuICAgIChrZXl1cC5hcnJvd0Rvd24pPVwic2hvd0RpYWxvZygkZXZlbnQpXCIgKGtleXVwLmVudGVyKT1cInNob3dEaWFsb2coJGV2ZW50KVwiIChrZXl1cC5zcGFjZSk9XCJzaG93RGlhbG9nKCRldmVudClcIj5cbiAgICA8ZW8taWNvbiBbaWNvblNyY109XCInYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19hcnJvd19kb3duLnN2ZydcIj48L2VvLWljb24+XG4gIDwvYnV0dG9uPlxuPC9kaXY+Il19
96
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1saXN0LWZpbHRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWZyYW1ld29yay9ncmlkL2ZpbHRlcnMvZHluYW1pYy1saXN0LWZpbHRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2VvLWZyYW1ld29yay9mb3JtLWVsZW1lbnRzL2R5bmFtaWMtbGlzdC9keW5hbWljLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFFLFVBQVUsRUFBa0MsTUFBTSxjQUFjLENBQUM7QUFDMUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXhDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBQy9GLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDOzs7Ozs7Ozs7O0FBUTNFLE1BQU0sT0FBTywwQkFBMkIsU0FBUSxvQkFBb0I7SUFRbEUsWUFBWSxTQUEyQixFQUFVLFlBQTBCO1FBQ3pFLEtBQUssRUFBRSxDQUFDO1FBRHVDLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBUDNFLFdBQU0sR0FBUSxFQUFFLENBQUM7UUFFakIsZ0JBQVcsR0FBRyxJQUFJLENBQUM7UUFDbkIsY0FBUyxHQUFHLFFBQVEsQ0FBQztJQU1yQixDQUFDO0lBRUQsYUFBYTtRQUNYLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRTtZQUN0RSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUNsQyx5QkFBeUI7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QUMsTUFBTSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUMxRixDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQVUsRUFBRSxFQUFFO1lBQ3ZCLElBQUksUUFBUSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUM7WUFDdkUsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtnQkFDckIsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsSUFBSSxFQUFDLENBQUMsQ0FBQzthQUN6QztpQkFBTTtnQkFDTCxVQUFVLENBQUMsR0FBRyxFQUFFO29CQUNkLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEtBQUssUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNoSCxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7YUFDUDtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELGdCQUFnQixDQUFDLE1BQStCO1FBQzlDLDZEQUE2RDtJQUMvRCxDQUFDOzt1SEF0RlUsMEJBQTBCOzJHQUExQiwwQkFBMEIsd0dBTTFCLGlCQUFpQix1RUNyQjlCLHc3REFzQ007MkZEdkJPLDBCQUEwQjtrQkFMdEMsU0FBUzsrQkFDRSx3QkFBd0I7a0lBVUosUUFBUTtzQkFBckMsU0FBUzt1QkFBQyxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJRmlsdGVyQW5ndWxhckNvbXAgfSBmcm9tICdAYWctZ3JpZC1jb21tdW5pdHkvYW5ndWxhcic7XG5pbXBvcnQgeyBJQWZ0ZXJHdWlBdHRhY2hlZFBhcmFtcywgSURvZXNGaWx0ZXJQYXNzUGFyYW1zIH0gZnJvbSAnQGFnLWdyaWQtY29tbXVuaXR5L2NvcmUnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEVuYWlvRXZlbnQsIEV2ZW50U2VydmljZSwgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0Blby1zZGsvY29yZSc7XG5pbXBvcnQgeyBmaWx0ZXIgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IER5bmFtaWNMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vZm9ybS1lbGVtZW50cy9keW5hbWljLWxpc3QvZHluYW1pYy1saXN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFb0RpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL3VpL2VvLWRpYWxvZy9lby1kaWFsb2cuY29tcG9uZW50JztcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlby1keW5hbWljLWxpc3QtZmlsdGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuLi8uLi9mb3JtLWVsZW1lbnRzL2R5bmFtaWMtbGlzdC9keW5hbWljLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi4vLi4vZm9ybS1lbGVtZW50cy9keW5hbWljLWxpc3QvZHluYW1pYy1saXN0LmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgRHluYW1pY0xpc3RGaWx0ZXJDb21wb25lbnQgZXh0ZW5kcyBEeW5hbWljTGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIElGaWx0ZXJBbmd1bGFyQ29tcCB7XG4gIHBhcmFtczogYW55ID0ge307XG4gIGNvbHVtbjogYW55O1xuICBtdWx0aXNlbGVjdCA9IHRydWU7XG4gIHNpdHVhdGlvbiA9ICdTRUFSQ0gnO1xuXG4gIEBWaWV3Q2hpbGQoRW9EaWFsb2dDb21wb25lbnQpIGVvRGlhbG9nOiBFb0RpYWxvZ0NvbXBvbmVudDtcblxuICBjb25zdHJ1Y3Rvcih0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsIHByaXZhdGUgZXZlbnRTZXJ2aWNlOiBFdmVudFNlcnZpY2UpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgb25WYWx1ZUNoYW5nZSgpIHtcbiAgICBpZiAoIXRoaXMucGFyYW1zLmZpbHRlclBhcmFtcyB8fCAhdGhpcy5wYXJhbXMuZmlsdGVyUGFyYW1zLmFwcGx5QnV0dG9uKSB7XG4gICAgICB0aGlzLnBhcmFtcy5hcGkub25GaWx0ZXJDaGFuZ2VkKCk7XG4gICAgICAvLyBUT0RPOiBzdGlsbCBuZWNlc3Nhcnk/XG4gICAgICAvLyBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIC8vICAgdGhpcy5hdXRvQ29tcGxldGVCdXR0b24ubmF0aXZlRWxlbWVudC5zdHlsZS50b3AgPSB0aGlzLmF1dG9Db21wbGV0ZUlucHV0Lm11bHRpSW5wdXRFTC5uYXRpdmVFbGVtZW50Lm9mZnNldFRvcCArICdweCc7XG4gICAgICAvLyB9LCAwKTtcbiAgICB9XG4gIH1cblxuICBvbkF1dG9Db21wbGV0ZVNlbGVjdChub2RlKSB7XG4gICAgc3VwZXIub25BdXRvQ29tcGxldGVTZWxlY3Qobm9kZSk7XG4gICAgdGhpcy5vblZhbHVlQ2hhbmdlKCk7XG4gIH1cblxuICBvbkF1dG9Db21wbGV0ZVVuc2VsZWN0KG5vZGUpIHtcbiAgICBzdXBlci5vbkF1dG9Db21wbGV0ZVVuc2VsZWN0KG5vZGUpO1xuICAgIHRoaXMub25WYWx1ZUNoYW5nZSgpO1xuICB9XG5cbiAgb25UcmVlU2VsZWN0aW9uQ2hhbmdlZChldnQpIHtcbiAgICBzdXBlci5vblRyZWVTZWxlY3Rpb25DaGFuZ2VkKGV2dCk7XG4gICAgdGhpcy5vblZhbHVlQ2hhbmdlKCk7XG4gIH1cblxuICBpc0ZpbHRlckFjdGl2ZSgpIHtcbiAgICByZXR1cm4gISEodGhpcy52YWx1ZSAmJiB0aGlzLnZhbHVlLmxlbmd0aCk7XG4gIH1cblxuICBkb2VzRmlsdGVyUGFzcyhwYXJhbXM6IElEb2VzRmlsdGVyUGFzc1BhcmFtcykge1xuICAgIGlmICh0aGlzLnNlbGVjdGVkTm9kZXMgJiYgdGhpcy5zZWxlY3RlZE5vZGVzLmxlbmd0aCkge1xuICAgICAgY29uc3QgdmFsdWUgPSBwYXJhbXMuZGF0YVt0aGlzLnBhcmFtcy5jb2xEZWYuZmllbGRdO1xuICAgICAgcmV0dXJuIChBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlIDogW3ZhbHVlXSlcbiAgICAgICAgLnNvbWUodmFsID0+ICEhfnRoaXMuc2VsZWN0ZWROb2Rlcy5tYXAodiA9PiB2Lm5hbWUpLmluZGV4T2YodmFsKSk7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGdldE1vZGVsKCkge1xuICAgIHJldHVybiB0aGlzLnZhbHVlICYmIHRoaXMudmFsdWUubGVuZ3RoID8ge1xuICAgICAgZmlsdGVyVHlwZTogJ0R5bmFtaWNMaXN0RmlsdGVyQ29tcG9uZW50JyxcbiAgICAgIGZpbHRlcjogdGhpcy52YWx1ZVxuICAgIH0gOiBudWxsO1xuICB9XG5cbiAgc2V0TW9kZWwodmFsdWU6IGFueSkge1xuICAgIHRoaXMud3JpdGVWYWx1ZSh2YWx1ZSk7XG4gIH1cblxuICBhZ0luaXQocGFyYW1zOiBhbnkpIHtcbiAgICB0aGlzLnBhcmFtcyA9IHBhcmFtcztcbiAgICB0aGlzLmxpc3RPYmplY3QgPSB7ZW50cmllczogKHRoaXMucGFyYW1zLmNvbERlZi5maWx0ZXJQYXJhbXMudmFsdWVzIHx8IFtdKS5tYXAodmFsdWUgPT4gKHt2YWx1ZX0pKX07XG4gICAgdGhpcy5waWNrZXJUaXRsZSA9IHRoaXMucGFyYW1zLmNvbERlZi5oZWFkZXJOYW1lO1xuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmNvbHVtbiA9IHRoaXMucGFyYW1zLmFwaS5jb2x1bW5Db250cm9sbGVyLmdyaWRDb2x1bW5zLmZpbmQoY29sID0+IGNvbC5tZW51VmlzaWJsZSk7XG4gICAgfSwgMCk7XG5cbiAgICB0aGlzLmV2ZW50U2VydmljZS5vbihFbmFpb0V2ZW50LkVPX0RJQUxPR19TVEFDS19DSEFOR0VEKS5waXBlKFxuICAgICAgZmlsdGVyKChldmVudDogYW55KSA9PiBldmVudCAmJiB0aGlzLnBhcmFtcy5jb2x1bW4gJiYgdGhpcy5wYXJhbXMuY29sdW1uLmlzTWVudVZpc2libGUoKSlcbiAgICApLnN1YnNjcmliZSgoZXZlbnQ6IGFueSkgPT4ge1xuICAgICAgICBsZXQgZWxlbWVudHMgPSB0aGlzLnBhcmFtcy5hcGlbJ2ZpbHRlck1hbmFnZXInXS5wb3B1cFNlcnZpY2UucG9wdXBMaXN0O1xuICAgICAgICBpZiAoZXZlbnQuZGF0YS5hY3RpdmUpIHtcbiAgICAgICAgICBlbGVtZW50cy5wdXNoKHtlbGVtZW50OiBkb2N1bWVudC5ib2R5fSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnBhcmFtcy5hcGlbJ2ZpbHRlck1hbmFnZXInXS5wb3B1cFNlcnZpY2UucG9wdXBMaXN0ID0gZWxlbWVudHMuZmlsdGVyKGVsID0+IGVsLmVsZW1lbnQgIT09IGRvY3VtZW50LmJvZHkpO1xuICAgICAgICAgIH0sIDApO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIGFmdGVyR3VpQXR0YWNoZWQocGFyYW1zOiBJQWZ0ZXJHdWlBdHRhY2hlZFBhcmFtcyk6IHZvaWQge1xuICAgIC8vIHRoaXMuYXV0b0NvbXBsZXRlSW5wdXQubXVsdGlJbnB1dEVMLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgfVxufVxuIiwiPGVvLWRpYWxvZyAjbGlzdERpYWxvZyBbdGl0bGVdPVwicGlja2VyVGl0bGVcIiBbdmlzaWJsZV09XCJkaXNwbGF5XCIgW25nQ2xhc3NdPVwie2VtcHR5OiAhKGxpc3Q/LmVudHJpZXM/Lmxlbmd0aCl9XCJcbiAgW3N0eWxlQ2xhc3NdPVwiJ2R5bmxpc3QtZGlhbG9nJ1wiIChoaWRlKT1cImRpc3BsYXkgPSBmYWxzZVwiPlxuXG4gIDxlby10cmVlIFt0cmVlXT1cInRyZWVcIiAqbmdJZj1cImRpc3BsYXkgJiYgdHJlZVwiIFtpc0Rpc3BsYXllZF09XCJkaXNwbGF5XCIgW29wdGlvbnNdPVwie211bHRpc2VsZWN0OiBtdWx0aXNlbGVjdH1cIlxuICAgIFsobmdNb2RlbCldPVwic2VsZWN0ZWROb2Rlc1wiIChrZXl1cC5lbnRlcik9XCJzaG93RGlhbG9nKCRldmVudCwgZmFsc2UpXCJcbiAgICAobmdNb2RlbENoYW5nZSk9XCJvblRyZWVTZWxlY3Rpb25DaGFuZ2VkKCRldmVudClcIj5cbiAgPC9lby10cmVlPlxuXG4gIDxkaXYgY2xhc3M9XCJlbXB0eVwiICpuZ0lmPVwiIShsaXN0Py5lbnRyaWVzPy5sZW5ndGgpXCI+XG4gICAgPGRpdiB0cmFuc2xhdGU+ZW8uZm9ybS5wcm9wZXJ0eS5keW5hbWljLmxpc3QuZW1wdHk8L2Rpdj5cbiAgPC9kaXY+XG48L2VvLWRpYWxvZz5cblxuPGRpdiBjbGFzcz1cImVvLWR5bmFtaWMtbGlzdFwiIFtuZ0NsYXNzXT1cIntmdWxsOiBzZWxlY3RlZE5vZGVzICYmIHNlbGVjdGVkTm9kZXMubGVuZ3RoID09PSBhdXRvY29tcGxldGVWYWx1ZXMubGVuZ3RofVwiPlxuXG4gIDx5dmMtYXV0b2NvbXBsZXRlIFsobmdNb2RlbCldPVwic2VsZWN0ZWROb2Rlc1wiICNhdXRvY29tcGxldGUgKHN1Z2dlc3Rpb25TZWxlY3QpPVwib25BdXRvQ29tcGxldGVTZWxlY3QoJGV2ZW50KVwiXG4gICAgW2Rpc2FibGVkXT1cInJlYWRvbmx5XCIgKHN1Z2dlc3Rpb25VbnNlbGVjdCk9XCJvbkF1dG9Db21wbGV0ZVVuc2VsZWN0KCRldmVudClcIiBbZm9yY2VTZWxlY3Rpb25dPVwidHJ1ZVwiXG4gICAgW2F1dG9jb21wbGV0ZVZhbHVlc109XCJhdXRvY29tcGxldGVSZXNcIiAobmdNb2RlbENoYW5nZSk9XCJvblRyZWVTZWxlY3Rpb25DaGFuZ2VkKCRldmVudClcIiBmaWVsZD1cInt7dmFsdWVGaWVsZH19XCIgKGF1dG9jb21wbGV0ZUZuYyk9XCJhdXRvY29tcGxldGVGbigkZXZlbnQpXCJcbiAgICBbbXVsdGlwbGVdPVwibXVsdGlzZWxlY3RcIj5cblxuICAgIDxuZy10ZW1wbGF0ZSBsZXQtaXRlbSAjY2hpcFRlbXBsYXRlPlxuICAgICAgPGRpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInZhbHVlXCI+e3tpdGVtW3ZhbHVlRmllbGRdfX08L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8bmctdGVtcGxhdGUgI2F1dG9jb21wbGV0ZU9wdGlvblRlbXBsYXRlIGxldC1pdGVtPlxuICAgICAgPGRpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInZhbHVlXCI+e3tpdGVtW3ZhbHVlRmllbGRdfX08L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImRlc2NyaXB0aW9uXCIgc3R5bGU9XCJmb250LXN0eWxlOiBpdGFsaWM7IGNvbG9yOiB2YXIoLS10ZXh0LWNvbG9yLWNhcHRpb24pXCI+e3tpdGVtW2Rlc2NyaXB0aW9uRmllbGRdfX08L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwveXZjLWF1dG9jb21wbGV0ZT5cblxuICA8YnV0dG9uICNidXR0b24gY2xhc3M9XCJ1aS1idXR0b25cIiAqbmdJZj1cIiFyZWFkb25seVwiIFtkaXNhYmxlZF09XCJyZWFkb25seVwiIChjbGljayk9XCJzaG93RGlhbG9nKCRldmVudCwgJGV2ZW50LmRldGFpbClcIlxuICAgIChrZXl1cC5hcnJvd0Rvd24pPVwic2hvd0RpYWxvZygkZXZlbnQpXCIgKGtleXVwLmVudGVyKT1cInNob3dEaWFsb2coJGV2ZW50KVwiIChrZXl1cC5zcGFjZSk9XCJzaG93RGlhbG9nKCRldmVudClcIj5cbiAgICA8ZW8taWNvbiBbaWNvblNyY109XCInYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19hcnJvd19kb3duLnN2ZydcIj48L2VvLWljb24+XG4gIDwvYnV0dG9uPlxuPC9kaXY+Il19
@@ -261,6 +261,8 @@ let MediaComponent = MediaComponent_1 = class MediaComponent {
261
261
  // set api to iframe window
262
262
  const win = iframe?.contentWindow || iframe;
263
263
  win['api'] = window['api'];
264
+ // disable beforeunload popup (Reload site? Changes that you made may not be saved.)
265
+ win.addEventListener('beforeunload', (event) => event.stopImmediatePropagation());
264
266
  if (win['api']?.content) {
265
267
  win['api'].content.resolveViewerParams = (parameters) => {
266
268
  const uri = parameters.path.replace(location.origin, '');
@@ -311,4 +313,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
311
313
  }], dmsObject: [{
312
314
  type: Input
313
315
  }] } });
314
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVkaWEuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvbWVkaWEvbWVkaWEuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvbWVkaWEvbWVkaWEuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQWdCLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUF3QixTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFVNUcsT0FBTyxFQUFDLHFCQUFxQixFQUFxQixNQUFNLDJCQUEyQixDQUFDO0FBQ3BGLE9BQU8sRUFBQyxTQUFTLEVBQWUsTUFBTSxNQUFNLENBQUM7QUFLN0MsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDaEUsT0FBTyxFQUFDLFlBQVksRUFBRSxjQUFjLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7Ozs7O0FBMEI1RCxJQUFNLGNBQWMsc0JBQXBCLE1BQU0sY0FBYztJQW9FekIsSUFDSSxjQUFjLENBQUMsV0FBVztRQUM1QixJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztRQUMvQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxJQUNJLGFBQWEsQ0FBQyxVQUFVO1FBQzFCLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxJQUFJLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBRUQsSUFDSSxVQUFVLENBQUMsR0FBVztRQUN4QixJQUFJLENBQUMsV0FBVyxHQUFHLEdBQUcsQ0FBQztRQUN2QixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFDSSxXQUFX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c3RCaW5kaW5nLCBJbnB1dCwgT25EZXN0cm95LCBSZW5kZXJlcjIsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBDb25maWcsXG4gIERtc09iamVjdCxcbiAgRG1zT2JqZWN0QXR0YWNobWVudCxcbiAgRG1zU2VydmljZSxcbiAgT2JqZWN0VHlwZSxcbiAgU3lzdGVtU2VydmljZSxcbiAgVHJhbnNsYXRlU2VydmljZSxcbn0gZnJvbSAnQGVvLXNkay9jb3JlJztcbmltcG9ydCB7UG9wb3V0VHJpZ2dlclBvc2l0aW9uLCBQb3BvdXRXaW5kb3dDb25maWd9IGZyb20gJ0B5dXV2aXMvY29tcG9uZW50cy9wb3BvdXQnO1xuaW1wb3J0IHtmcm9tRXZlbnQsIFN1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge3Rha2VVbnRpbH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge0ZpbGVTaXplUGlwZX0gZnJvbSAnLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvcGlwZXMvZmlsZXNpemUucGlwZSc7XG5pbXBvcnQge1BsdWdpbnNTZXJ2aWNlfSBmcm9tICcuLy4uLy4uL2VvLWZyYW1ld29yay1jb3JlL2FwaS9wbHVnaW5zLnNlcnZpY2UnO1xuaW1wb3J0IHtDb250ZW50UHJldmlld1NlcnZpY2V9IGZyb20gJy4vY29udGVudC1wcmV2aWV3LnNlcnZpY2UnO1xuaW1wb3J0IHtVbnRpbERlc3Ryb3ksIHVudGlsRGVzdHJveWVkfSBmcm9tICdAbmduZWF0L3VudGlsLWRlc3Ryb3knO1xuXG5leHBvcnQgaW50ZXJmYWNlIFZpZXdlckNvbmZpZyB7XG4gIG1pbWVUeXBlPzogc3RyaW5nIHwgc3RyaW5nW107XG4gIGZpbGVFeHRlbnNpb24/OiBzdHJpbmcgfCBzdHJpbmdbXTtcbiAgdmlld2VyOiBzdHJpbmc7XG4gIGVycm9yPzogYm9vbGVhbjtcbiAgdHlwZT86ICdjb21wYXJlJyB8ICdleHRlbmQnIHwgJ2Vycm9yJyB8ICdkZWZhdWx0Jztcbn1cbmV4cG9ydCBpbnRlcmZhY2UgUHJldmlld0ZpbGUge1xuICB1cmk6IHN0cmluZztcbiAgdXJpUGRmOiBzdHJpbmc7XG4gIG1pbWV0eXBlOiBzdHJpbmc7XG4gIG1pbWVncm91cDogc3RyaW5nO1xuICBzaXplOiBudW1iZXI7XG4gIHBhdGg/OiBzdHJpbmc7XG4gIGZpbGVFeHRlbnNpb24/OiBzdHJpbmc7XG4gIG1lZGlhVHlwZU5hbWU/OiBzdHJpbmc7XG59XG5AVW50aWxEZXN0cm95KClcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VvLW1lZGlhJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21lZGlhLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbWVkaWEuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbQ29udGVudFByZXZpZXdTZXJ2aWNlXVxufSlcbmV4cG9ydCBjbGFzcyBNZWRpYUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG5cbiAgc3RhdGljIFZJREVPX1ZJRVdFUiA9ICd2aWV3ZXIvdmlldy9hcGkvdmlkZW8vP3BhdGg9JHtwYXRofSZtaW1lVHlwZT0ke21pbWVUeXBlfSZmaWxlRXh0ZW5zaW9uPSR7ZmlsZUV4dGVuc2lvbn0mbGFuZz0ke2xhbmd9JnRoZW1lPSR7dGhlbWV9JztcbiAgc3RhdGljIFBERl9WSUVXRVIgPSAndmlld2VyL3ZpZXcvYXBpL3BkZi93ZWIvdmlld2VyLmh0bWw/ZmlsZT0mcGF0aD0ke3BhdGh9JnBhdGhQZGY9JHtwYXRoUGRmfSZtaW1lVHlwZT0ke21pbWVUeXBlfSZmaWxlRXh0ZW5zaW9uPSR7ZmlsZUV4dGVuc2lvbn0mbGFuZz0ke2xhbmd9JnRoZW1lPSR7dGhlbWV9JmNzcz0lMjN0b29sYmFyVmlld2VyUmlnaHQlMjAlMjNwcmludCU3QmRpc3BsYXklM0FibG9jayFpbXBvcnRhbnQlM0IlN0QnO1xuXG4gIHByaXZhdGUgU0laRV9MSU1JVCA9IDEwMjQgKiAxMDI0ICogMTA7IC8vIDEwTUJcbiAgcHJpdmF0ZSBwZGZqczogYW55O1xuICBsYXRlc3RVcmk6IHN0cmluZztcbiAgc2xpZGVVcmk6IHN0cmluZztcbiAgdmlld2VyOiBhbnk7XG4gIGRtc09iamVjdFRpdGxlOiBzdHJpbmc7XG4gIHByaXZhdGUgX3ByZXZpZXdVcmk6IHN0cmluZztcbiAgcHJpdmF0ZSBfZG1zT2JqZWN0OiBEbXNPYmplY3Q7XG4gIGZpbGVTaXplUGlwZTogRmlsZVNpemVQaXBlO1xuICBjdXJyZW50SW5kZXg6IG51bWJlcjtcbiAgYXR0YWNobWVudHM6IERtc09iamVjdEF0dGFjaG1lbnRbXSA9IFtdO1xuICBhdHRhY2htZW50c0xvYWRpbmc6IFN1YnNjcmlwdGlvbjtcbiAgYXR0YWNobWVudHNTaG93bjogYm9vbGVhbjtcbiAgc2VhcmNoVGVybTogc3RyaW5nO1xuICBtZWRpYVR5cGU6IE9iamVjdFR5cGU7XG4gIGN1c3RvbUNvbmZpZzogYW55W10gPSBbXTtcblxuICBwb3BvdXRUcmlnZ2VyUG9zaXRpb24gPSBQb3BvdXRUcmlnZ2VyUG9zaXRpb24uQk9UVE9NX1JJR0hUXG4gIHBvcG91dFdpbmRvd0NvbmZpZzogUG9wb3V0V2luZG93Q29uZmlnO1xuXG5cblxuXG4gIGRlZmF1bHRWaWV3ZXJzID0gW1xuICAgIHtcbiAgICAgIFwibWltZVR5cGVcIjogW1wiYXBwbGljYXRpb24vanNvblwiLCBcInRleHQvanNvblwiLCBcInRleHQvcGxhaW5cIiwgXCJ0ZXh0L3htbFwiLCBcInRleHQvamF2YVwiLCBcInRleHQvamF2YXNjcmlwdFwiLCBcImFwcGxpY2F0aW9uL2phdmFzY3JpcHRcIiwgXCJ0ZXh0L2h0bWxcIiwgXCJ0ZXh0L21hcmtkb3duXCIsIFwidGV4dC94LXdlYi1tYXJrZG93blwiLCBcInRleHQveC1tYXJrZG93blwiXSxcbiAgICAgIFwidmlld2VyXCI6IFwidmlld2VyL3ZpZXcvYXBpL21vbmFjby8/cGF0aD0ke3BhdGh9Jm1pbWVUeXBlPSR7bWltZVR5cGV9JmZpbGVFeHRlbnNpb249JHtmaWxlRXh0ZW5zaW9ufSZsYW5nPSR7bGFuZ30mdGhlbWU9JHt0aGVtZX1cIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJtaW1lVHlwZVwiOiBbXCJhdWRpby9tcDNcIiwgXCJhdWRpby93ZWJtXCIsIFwiYXVkaW8vb2dnXCIsIFwiYXVkaW8vbXBlZ1wiLCBcInZpZGVvL21wNFwiLCBcInZpZGVvL3dlYm1cIiwgXCJ2aWRlby9vZ2dcIiwgXCJhcHBsaWNhdGlvbi9vZ2dcIl0sXG4gICAgICBcInZpZXdlclwiOiBcInZpZXdlci92aWV3L2FwaS92aWRlby8/cGF0aD0ke3BhdGh9Jm1pbWVUeXBlPSR7bWltZVR5cGV9JmZpbGVFeHRlbnNpb249JHtmaWxlRXh0ZW5zaW9ufSZsYW5nPSR7bGFuZ30mdGhlbWU9JHt0aGVtZX1cIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJtaW1lVHlwZVwiOiBbXCJpbWFnZS90aWZmXCIsIFwiaW1hZ2UvanBlZ1wiLCBcImltYWdlL3BuZ1wiLCBcImltYWdlL2FwbmdcIiwgXCJpbWFnZS9naWZcIiwgXCJpbWFnZS9zdmcreG1sXCIsIFwiaW1hZ2Uvd2VicFwiXSxcbiAgICAgIFwidmlld2VyXCI6IFwidmlld2VyL3ZpZXcvYXBpL2ltZy8/cGF0aD0ke3BhdGh9Jm1pbWVUeXBlPSR7bWltZVR5cGV9JmZpbGVFeHRlbnNpb249JHtmaWxlRXh0ZW5zaW9ufSZsYW5nPSR7bGFuZ30mdGhlbWU9JHt0aGVtZX1cIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJtaW1lVHlwZVwiOiBbXCJtZXNzYWdlL3JmYzgyMlwiLCBcImFwcGxpY2F0aW9uL3ZuZC5tcy1vdXRsb29rXCJdLFxuICAgICAgXCJ2aWV3ZXJcIjogXCJ2aWV3ZXIvdmlldy9hcGkvbWFpbC8/cGF0aD0ke3BhdGh9Jm1pbWVUeXBlPSR7bWltZVR5cGV9JmZpbGVFeHRlbnNpb249JHtmaWxlRXh0ZW5zaW9ufSZsYW5nPSR7bGFuZ30mdGhlbWU9JHt0aGVtZX1cIlxuICAgIH0sXG4gICAgLy8gT05MWSBhcHBsaWVzIHRvIGxvY2FsaG9zdCBlbnY7IGZpeGVkIGVtYWlsIGNvcnMgZm9yIGxvY2FsaG9zdCB0ZXN0aW5nXG4gICAge1xuICAgICAgXCJ0eXBlXCI6IFwiZXh0ZW5kXCIsXG4gICAgICBcInZpZXdlclwiOiBcIigpID0+IHsgaWYgKHBhcmFtZXRlcnMudmlld2VyLm1hdGNoKCcvdmlldy9hcGkvbWFpbC8nKSAmJiBwYXJhbWV0ZXJzLnBhdGgubWF0Y2goJ2xvY2FsaG9zdCcpKSB7IHZhciBob3N0ID0gJ2xvY2FsaG9zdDo0MjAwJzsgdmFyIGNvcnMgPSAna29saWJyaXByb2xpYW50Lm9wdGltYWwtc3lzdGVtcy5kZSc7IHBhcmFtZXRlcnMucGF0aCA9IHBhcmFtZXRlcnMucGF0aC5yZXBsYWNlKGhvc3QsIGNvcnMpOyByZXR1cm4gcGFyYW1ldGVycy52aWV3ZXIgKyAnJmNvcnM9JyArIGNvcnM7fSByZXR1cm4gcGFyYW1ldGVycy52aWV3ZXI7IH1cIlxuICAgIH0sXG4gICAgLy8gV2UgbmVlZCBhbm90aGVyIHBhdGhQZGYgZm9yIGVtYWlsIGF0dGFjaG1lbnQgZmlsZXMuIFRoaXMgd2lsbCBvbmx5IGNvbWUgaW4gcGxhY2UgaWYgdGhlIG1pbWV0eXBlIGlzIHBkZiBvciBvbmUgb2YgdGhlIG5vdCBzdXBwb3J0ZWQgb25lcy4gKHZpZXdlciBhdHRhY2htZW50cyAmIGFwaSBhdHRhY2htZW50cyBjYW4gYmUgcGFyc2VkIGluIGRpZmZlcmVudCBvcmRlciwgc28gd2UgaGF2ZSB0byBtYXRjaCB0aGVtIGJ5IGZpbGVuYW1lKVxuICAgIHtcInZpZXdlclwiOiBcIigpID0+IHt2YXIgYXR0YWNobWVudCA9IHBhcmFtZXRlcnMucGF0aFBkZi5tYXRjaChuZXcgUmVnRXhwKCdhdHRhY2htZW50PShcXFxcXFxcXGQrKScpKTsgdmFyIGEgPSBhdHRhY2htZW50ICYmIGFwaS5jb250ZW50LnZpZXdlcigpLmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lmcmFtZScpLmNvbnRlbnREb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdhW2RhdGEtc3JjJD1cXFwiJyArIGF0dGFjaG1lbnRbMF0gKyAnXFxcIl0nKTsgIHZhciBwYXJhbXMgPSBhICYmIChhcGkuY29udGVudC5hdHRhY2htZW50cyB8fCBbXSkuZmluZChhdHQgPT4gYXBpLnV0aWwuZGVjb2RlSHRtbENoYXJDb2RlcyhhdHQubmFtZSkgPT09IGEuZ2V0QXR0cmlidXRlKCdkYXRhLWZpbGVuYW1lJykpOyBpZihwYXJhbXMgJiYgcGFyYW1zLnByZXZpZXdVcmkpIHsgZGVidWdnZXI7IHBhcmFtZXRlcnMucGF0aFBkZiA9IGxvY2F0aW9uLm9yaWdpbiArIHBhcmFtcy5wcmV2aWV3VXJpOyB9IHJldHVybiBwYXJhbWV0ZXJzLmRlZmF1bHRWaWV3ZXI7fVwifSxcbiAgICB7XCJlcnJvclwiOiB0cnVlLCBcInR5cGVcIjogXCJlcnJvclwiLCBcInZpZXdlclwiOiBcInZpZXdlci92aWV3L2FwaS9lcnJvci8/cGF0aD0ke3BhdGh9Jm1pbWVUeXBlPSR7bWltZVR5cGV9JmZpbGVFeHRlbnNpb249JHtmaWxlRXh0ZW5zaW9ufSZsYW5nPSR7bGFuZ30mdGhlbWU9JHt0aGVtZX1cIn1cbiAgXTtcblxuICBpc1VuZG9ja2VkOiBib29sZWFuO1xuICBsb2FkaW5nOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpIHVuZG9ja0Rpc2FibGVkID0gZmFsc2U7XG5cbiAgQElucHV0KCkgZW5hYmxlQ2xvc2VCdG4gPSBmYWxzZTtcbiAgLy8gYnkgZGVmYXVsdCwgdGhlIHZpZXdlciBpZ25vcmVzIHRoZSB2ZXJzaW9uIG9mIHRoZSBkbXMgb2JqZWN0LiBUaGlzIHdpbGwgYWx3YXlzIHNob3cgdGhlIGxhdGVzdCB2ZXJzaW9uLlxuICAvLyBXZSBuZWVkIHRoaXMgdG8gYmUgYWJsZSB0byByZWZyZXNoIHRoZSB2aWV3ZXIgYmVjYXVzZSBvdGhlcndpc2UgcGRmanMgd29ya2VyIHdpbGwgZmFpbC5cbiAgQElucHV0KCkgdXNlVmVyc2lvbiA9IGZhbHNlO1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLm9wZW4nKSBvcGVuO1xuXG4gIEBWaWV3Q2hpbGQoJ2lmcmFtZScsIHtzdGF0aWM6IHRydWV9KSBpZnJhbWU7XG5cbiAgQElucHV0KCdhdHRhY2htZW50cycpXG4gIHNldCBzZXRBdHRhY2htZW50cyhhdHRhY2htZW50cykge1xuICAgIHRoaXMuYXR0YWNobWVudHMgPSBhdHRhY2htZW50cztcbiAgICB0aGlzLmF0dGFjaG1lbnRzU2hvd24gPSBmYWxzZTtcbiAgfVxuXG4gIEBJbnB1dCgnc2VhcmNoVGVybScpXG4gIHNldCBzZXRTZWFyY2hUZXJtKHNlYXJjaFRlcm0pIHtcbiAgICB0aGlzLnNlYXJjaFRlcm0gPSBzZWFyY2hUZXJtIHx8ICcnO1xuICB9XG5cbiAgQElucHV0KClcbiAgc2V0IHByZXZpZXdVcmkodXJpOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9wcmV2aWV3VXJpID0gdXJpO1xuICAgIHRoaXMudG9nZ2xlVmlld2VyKCk7XG4gIH1cblxuICBnZXQgcHJldmlld1VyaSgpIHtcbiAgICByZXR1cm4gdGhpcy5fcHJldmlld1VyaTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHNldCBwcmV2aWV3RmlsZShmaWxlOiBQcmV2aWV3RmlsZSkge1xuICAgIGlmIChmaWxlKSB7XG4gICAgICB0aGlzLnZpZXdlciA9IHRoaXMuZ2V0Vmlld2VyKGZpbGUpO1xuICAgICAgdGhpcy5tZWRpYVR5cGUgPSBmaWxlLm1lZGlhVHlwZU5hbWUgJiYgdGhpcy5zeXN0ZW0uZ2V0T2JqZWN0VHlwZShmaWxlLm1lZGlhVHlwZU5hbWUpO1xuICAgICAgdGhpcy5wcmV2aWV3VXJpID0gdGhpcy52aWV3ZXIucHJldmlld1VyaTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5wcmV2aWV3VXJpID0gJyc7XG4gICAgICB0aGlzLnBvcG91dFdpbmRvd0NvbmZpZyA9IHVuZGVmaW5lZDtcbiAgICB9XG4gICAgdGhpcy5fc2V0UG9wb3V0V2luZG93Q29uZmlnKCFmaWxlKTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHNldCBkbXNPYmplY3QoaXRlbTogRG1zT2JqZWN0KSB7XG4gICAgdGhpcy5fZG1zT2JqZWN0ID0gaXRlbTtcbiAgICB0aGlzLmRtc09iamVjdFRpdGxlID0gaXRlbS50aXRsZSB8fCAnLi4uJztcblxuXG4gICAgdGhpcy5zZXRBdHRhY2htZW50cyA9IFtdO1xuICAgIGlmICh0aGlzLmF0dGFjaG1lbnRzTG9hZGluZykge1xuICAgICAgLy8gY2FuY2VsIGFueSBwZW5kaW5nIHJlcXVlc3RzXG4gICAgICB0aGlzLmF0dGFjaG1lbnRzTG9hZGluZy51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgICBpZiAoaXRlbS5jb250ZW50ICYmIGl0ZW0uY29udGVudC5jb250ZW50cyAmJiBpdGVtLmNvbnRlbnQuY29udGVudHMubGVuZ3RoKSB7XG4gICAgICBjb25zdCBmaWxlID0gaXRlbS5jb250ZW50LmNvbnRlbnRzWzBdIHx8IHt9O1xuXG4gICAgICB0aGlzLnByZXZpZXdGaWxlID0ge1xuICAgICAgICB1cmk6IHRoaXMuZG1zLmdldFByZXZpZXcoaXRlbS5jb250ZW50LmlkLCBpdGVtLmNvbnRlbnQudHlwZSwgdGhpcy51c2VWZXJzaW9uID8gaXRlbS52ZXJzaW9uIDogbnVsbCwgdW5kZWZpbmVkLCB0cnVlKSxcbiAgICAgICAgdXJpUGRmOiB0aGlzLmRtcy5nZXRQcmV2aWV3KGl0ZW0uY29udGVudC5pZCwgaXRlbS5jb250ZW50LnR5cGUsIHRoaXMudXNlVmVyc2lvbiA/IGl0ZW0udmVyc2lvbiA6IG51bGwsICdQREYnLCB0cnVlKSxcbiAgICAgICAgbWltZXR5cGU6IGZpbGUubWltZXR5cGUsXG4gICAgICAgIG1pbWVncm91cDogZmlsZS5taW1lZ3JvdXAsXG4gICAgICAgIHNpemU6IGZpbGUuc2l6ZSxcbiAgICAgICAgcGF0aDogZmlsZS5wYXRoLFxuICAgICAgICBtZWRpYVR5cGVOYW1lOiBpdGVtLnR5cGVOYW1lXG4gICAgICB9O1xuXG4gICAgICBpZiAoISFmaWxlLm1pbWVncm91cD8ubWF0Y2goL15tYWlsfG9jdGV0LXN0cmVhbS8pICYmIHRoaXMudmlld2VyLnZpZXdlci5tYXRjaCgnL3ZpZXcvYXBpL3BkZi8nKSkge1xuICAgICAgICB0aGlzLnNsaWRlVXJpID0gdGhpcy5kbXMuZ2V0U2xpZGUoaXRlbS5jb250ZW50LmlkLCBpdGVtLmNvbnRlbnQudHlwZSwgdGhpcy51c2VWZXJzaW9uID8gaXRlbS52ZXJzaW9uIDogbnVsbCwgMjU2KTtcbiAgICAgICAgdGhpcy5hdHRhY2htZW50c0xvYWRpbmcgPSB0aGlzLmRtcy5nZXRBdHRhY2htZW50cyhpdGVtKS5zdWJzY3JpYmUoYSA9PiB0aGlzLnNldEF0dGFjaG1lbnRzID0gYSk7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLnZpZXdlci52aWV3ZXIubWF0Y2goJy92aWV3L2FwaS9tYWlsLycpKSB7XG4gICAgICAgIHRoaXMuZG1zLmdldEF0dGFjaG1lbnRzKGl0ZW0pLnN1YnNjcmliZShhID0+IHdpbmRvdy5hcGkuY29udGVudC5hdHRhY2htZW50cyA9IGEpO1xuICAgICAgfVxuXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucHJldmlld1VyaSA9ICcnO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBkbXM6IERtc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIHByaXZhdGUgc3lzdGVtOiBTeXN0ZW1TZXJ2aWNlLFxuICAgIHByaXZhdGUgY29uZmlnOiBDb25maWcsXG4gICAgcHJpdmF0ZSBwbHVnaW5zU2VydmljZTogUGx1Z2luc1NlcnZpY2UpIHtcbiAgICB0aGlzLlNJWkVfTElNSVQgPSB0aGlzLmNvbmZpZy5nZXRSYXcoJ3ByZXZpZXcuZmlsZVNpemVMaW1pdCcpIHx8IHRoaXMuU0laRV9MSU1JVDtcbiAgICB0aGlzLmN1c3RvbUNvbmZpZyA9ICh0aGlzLmNvbmZpZy5nZXRSYXcoJ3ByZXZpZXcudmlld2VycycpIHx8IFtdKS5jb25jYXQodGhpcy5kZWZhdWx0Vmlld2Vycyk7XG5cbiAgICB0aGlzLnBsdWdpbnNTZXJ2aWNlLmFwaS5jb250ZW50LmNhdGNoRXJyb3IoKS5zdWJzY3JpYmUoKGV2dDogYW55KSA9PiB7XG4gICAgICBjb25zdCB7ZXJyLCB3aW4sIHBhcmFtZXRlcnN9ID0gZXZ0LmRhdGE7XG4gICAgICBjb25zdCB1cmkgPSB0aGlzLnBsdWdpbnNTZXJ2aWNlLmFwcGx5RnVuY3Rpb24odGhpcy5jdXN0b21Db25maWc/LmZpbmQoKHYpID0+IHYuZXJyb3IpPy52aWV3ZXIsICdhcGksIGVyciwgd2luLCBwYXJhbWV0ZXJzJywgW1xuICAgICAgICB0aGlzLnBsdWdpbnNTZXJ2aWNlLmFwaSxcbiAgICAgICAgZXJyLFxuICAgICAgICB3aW4sXG4gICAgICAgIHBhcmFtZXRlcnNcbiAgICAgIF0pO1xuICAgICAgdXJpICYmIHdpbiAmJiAod2luLmxvY2F0aW9uLmhyZWYgPSB0aGlzLnJlc29sdmVVcmkodXJpLCBwYXJhbWV0ZXJzKSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9zZXRQb3BvdXRXaW5kb3dDb25maWcocmVzZXQ/OiBib29sZWFuKSB7XG4gICAgY29uc3Qgd2luSW5zZXQgPSAyMDtcbiAgICB0aGlzLnBvcG91dFdpbmRvd0NvbmZpZyA9ICFyZXNldCA/IHtcbiAgICAgIHRpdGxlOiB0aGlzLmRtc09iamVjdFRpdGxlLFxuICAgICAgcG9zaXRpb246IHtcbiAgICAgICAgYmxvY2tTdGFydDogd2luSW5zZXQsXG4gICAgICAgIGlubGluZVN0YXJ0OiB3aW5kb3cuc2NyZWVuLndpZHRoIC8gMlxuICAgICAgfSwgc2l6ZToge1xuICAgICAgICB3aWR0aDogd2luZG93LnNjcmVlbi53aWR0aCAvIDIgLSB3aW5JbnNldCxcbiAgICAgICAgaGVpZ2h0OiB3aW5kb3cuc2NyZWVuLmhlaWdodCAtIHdpbkluc2V0ICogMixcbiAgICAgIH1cbiAgICB9IDogdW5kZWZpbmVkO1xuICB9XG5cbiAgc2VsZWN0QXR0YWNobWVudChhdHRhY2htZW50PzogYW55KSB7XG4gICAgY29uc3QgcHJldmlld1VyaSA9IGF0dGFjaG1lbnQgJiYgdGhpcy5nZXRWaWV3ZXIoe3VyaVBkZjogYXR0YWNobWVudC5wcmV2aWV3VXJpfSBhcyBQcmV2aWV3RmlsZSkucHJldmlld1VyaTtcbiAgICB0aGlzLmxvYWREb2N1bWVudChwcmV2aWV3VXJpIHx8IHRoaXMucHJldmlld1VyaSwgdHJ1ZSk7XG4gIH1cblxuICBwdWJsaWMgdG9nZ2xlVmlld2VyKCkge1xuICAgIHRoaXMub3BlbiA9ICEhdGhpcy5wcmV2aWV3VXJpO1xuICAgIGlmICghIXRoaXMucHJldmlld1VyaSkge1xuICAgICAgdGhpcy5sb2FkRG9jdW1lbnQodGhpcy5wcmV2aWV3VXJpKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcmVmcmVzaCgpIHtcbiAgICB0aGlzLmxvYWREb2N1bWVudCh0aGlzLnByZXZpZXdVcmksIHRydWUpO1xuICB9XG5cbiAgZ2V0Vmlld2VyKGZpbGU6IFByZXZpZXdGaWxlKTogYW55IHtcbiAgICBjb25zdCBpc1ZpZGVvID0gISFmaWxlLm1pbWVncm91cD8ubWF0Y2goL15hdWRpb3xedmlkZW8vKTtcbiAgICBjb25zdCBkZWZhdWx0Vmlld2VyID0gaXNWaWRlbyA/IE1lZGlhQ29tcG9uZW50LlZJREVPX1ZJRVdFUiA6IE1lZGlhQ29tcG9uZW50LlBERl9WSUVXRVI7XG4gICAgY29uc3QgZmlsZUV4dGVuc2lvbiA9IGZpbGUuZmlsZUV4dGVuc2lvbiB8fCAoZmlsZS5wYXRoPy5pbmNsdWRlcygnLicpID8gZmlsZS5wYXRoLnNwbGl0KCcuJykucG9wKCkgOiAnJyk7XG4gICAgY29uc3QgbWltZVR5cGUgPSBmaWxlLm1pbWV0eXBlO1xuICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMuY3VzdG9tQ29uZmlnLmZpbmQoKGM6IFZpZXdlckNvbmZpZykgPT4ge1xuICAgICAgY29uc3QgbWF0Y2hNVCA9ICFjLm1pbWVUeXBlIHx8ICh0eXBlb2YgYy5taW1lVHlwZSA9PT0gJ3N0cmluZycgPyBbYy5taW1lVHlwZV0gOiBjLm1pbWVUeXBlKS5pbmNsdWRlcyhtaW1lVHlwZT8udG9Mb3dlckNhc2UoKSk7XG4gICAgICBjb25zdCBtYXRjaEZFID0gIWMuZmlsZUV4dGVuc2lvbiB8fCAodHlwZW9mIGMuZmlsZUV4dGVuc2lvbiA9PT0gJ3N0cmluZycgPyBbYy5maWxlRXh0ZW5zaW9uXSA6IGMuZmlsZUV4dGVuc2lvbikuaW5jbHVkZXMoKGZpbGVFeHRlbnNpb24pLnRvTG93ZXJDYXNlKCkpO1xuICAgICAgcmV0dXJuIG1hdGNoTVQgJiYgbWF0Y2hGRSAmJiAoIWMudHlwZSB8fCBjLnR5cGUgPT09ICdkZWZhdWx0Jyk7XG4gICAgfSk7XG4gICAgY29uc3QgcGFyYW1ldGVycyA9IHtcbiAgICAgIGZpbGUsXG4gICAgICBwYXRoOiBsb2NhdGlvbi5vcmlnaW4gKyBmaWxlLnVyaSxcbiAgICAgIHBhdGhQZGY6IGxvY2F0aW9uLm9yaWdpbiArIGZpbGUudXJpUGRmLFxuICAgICAgdmlld2VyOiBjb25maWc/LnZpZXdlciB8fCBkZWZhdWx0Vmlld2VyLFxuICAgICAgbG9hZDogY29uZmlnPy5sb2FkLFxuICAgICAgZmlsZUV4dGVuc2lvbixcbiAgICAgIG1pbWVUeXBlLFxuICAgICAgdGhlbWU6ICcnLFxuICAgICAgZGVmYXVsdFZpZXdlcixcbiAgICAgIHByZXZpZXdVcmk6ICcnXG4gICAgfTtcbiAgICBwYXJhbWV0ZXJzLnZpZXdlciA9IHRoaXMucGx1Z2luc1NlcnZpY2UuYXBwbHlGdW5jdGlvbihwYXJhbWV0ZXJzLnZpZXdlciwgJ2NvbXBvbmVudCwgZG1zT2JqZWN0LCBwYXJhbWV0ZXJzJywgW3RoaXMsIHRoaXMuX2Rtc09iamVjdCwgcGFyYW1ldGVyc10pIHx8IGRlZmF1bHRWaWV3ZXI7XG5cbiAgICBjb25zdCBleHRlbmQgPSB0aGlzLmN1c3RvbUNvbmZpZy5maW5kKChjKSA9PiBjLnR5cGUgPT09ICdleHRlbmQnKTtcbiAgICBpZiAoZXh0ZW5kKSBwYXJhbWV0ZXJzLnZpZXdlciA9IHRoaXMucGx1Z2luc1NlcnZpY2UuYXBwbHlGdW5jdGlvbihleHRlbmQudmlld2VyLCAnY29tcG9uZW50LCBkbXNPYmplY3QsIHBhcmFtZXRlcnMnLCBbdGhpcywgdGhpcy5fZG1zT2JqZWN0LCBwYXJhbWV0ZXJzXSk7XG5cbiAgICBwYXJhbWV0ZXJzLnByZXZpZXdVcmkgPSB0aGlzLnJlc29sdmVVcmkocGFyYW1ldGVycy52aWV3ZXIsIHBhcmFtZXRlcnMpO1xuICAgIHJldHVybiBwYXJhbWV0ZXJzO1xuICB9XG5cbiAgcHJpdmF0ZSByZXNvbHZlVXJpKHZpZXdlcjogc3RyaW5nLCBwYXJhbWV0ZXJzOiBhbnkpIHtcbiAgICBsZXQgb3JpZ2luID0gJyc7XG4gICAgaWYgKCF2aWV3ZXIuc3RhcnRzV2l0aCgnaHR0cCcpKSB7XG4gICAgICBvcmlnaW4gPSB3aW5kb3cubG9jYXRpb24ub3JpZ2luICsgdGhpcy5jb25maWcuZ2V0UmF3KCd1cmkuY29udGV4dFBhdGgnKTtcbiAgICAgIGlmICghb3JpZ2luLmVuZHNXaXRoKCcvJykgJiYgIXZpZXdlci5zdGFydHNXaXRoKCcvJykpIHtcbiAgICAgICAgb3JpZ2luICs9ICcvJztcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG9yaWdpbiArIHZpZXdlclxuICAgICAgLnJlcGxhY2UoJyR7b3JpZ2luYWxQYXRofScsIHBhcmFtZXRlcnMucGF0aClcbiAgICAgIC5yZXBsYWNlKCcke3BhdGh9JywgZW5jb2RlVVJJQ29tcG9uZW50KHBhcmFtZXRlcnMucGF0aCkpXG4gICAgICAucmVwbGFjZSgnJHtwYXRoUGRmfScsIGVuY29kZVVSSUNvbXBvbmVudChwYXJhbWV0ZXJzLnBhdGhQZGYpKVxuICAgICAgLnJlcGxhY2UoJyR7ZmlsZUV4dGVuc2lvbn0nLCBlbmNvZGVVUklDb21wb25lbnQocGFyYW1ldGVycy5maWxlRXh0ZW5zaW9uKSlcbiAgICAgIC5yZXBsYWNlKCcke21pbWVUeXBlfScsIGVuY29kZVVSSUNvbXBvbmVudChwYXJhbWV0ZXJzLm1pbWVUeXBlKSlcbiAgICAgIC5yZXBsYWNlKCcke3RoZW1lfScsIGVuY29kZVVSSUNvbXBvbmVudChwYXJhbWV0ZXJzLnRoZW1lKSlcbiAgICAgIC5yZXBsYWNlKCcke2xhbmd9JywgQ29udGVudFByZXZpZXdTZXJ2aWNlLm1hcExhbmcodGhpcy50cmFuc2xhdGUuY3VycmVudExhbmcpKTtcbiAgfVxuXG4gIGxvYWREb2N1bWVudCh1cmk6IHN0cmluZywgZm9yY2U/OiBib29sZWFuKSB7XG4gICAgaWYgKCFmb3JjZSAmJiAoIXVyaSB8fCAodXJpID09PSB0aGlzLmxhdGVzdFVyaSkpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHRoaXMubGF0ZXN0VXJpID0gdXJpIHx8ICcnO1xuXG4gICAgaWYgKHRoaXMucHJldmlld1VyaSkge1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUodGhpcy5pZnJhbWUubmF0aXZlRWxlbWVudCwgJ3NyYycsIHRoaXMubGF0ZXN0VXJpKTtcbiAgICAgIGNvbnN0IG9ubG9hZCA9ICgpID0+IHRoaXMucGx1Z2luc1NlcnZpY2UuYXBwbHlGdW5jdGlvbih0aGlzLnZpZXdlcj8ubG9hZCwgJ2lmcmFtZSwgY29tcG9uZW50JywgW3RoaXMuaWZyYW1lLm5hdGl2ZUVsZW1lbnQsIHRoaXNdKTtcbiAgICAgIHRoaXMuaWZyYW1lSW5pdCh0aGlzLmlmcmFtZS5uYXRpdmVFbGVtZW50LCB0aGlzLnZpZXdlcj8ubG9hZCAmJiBvbmxvYWQpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLmlmcmFtZS5uYXRpdmVFbGVtZW50LCAnc3JjJywgdGhpcy5sYXRlc3RVcmkpO1xuICAgICAgY29uc3Qgb25sb2FkID0gKCkgPT4gdGhpcy5wbHVnaW5zU2VydmljZS5hcHBseUZ1bmN0aW9uKHRoaXMudmlld2VyPy5sb2FkLCAnaWZyYW1lLCBjb21wb25lbnQnLCBbdGhpcy5pZnJhbWUubmF0aXZlRWxlbWVudCwgdGhpc10pO1xuICAgICAgdGhpcy5pZnJhbWVJbml0KHRoaXMuaWZyYW1lLm5hdGl2ZUVsZW1lbnQsIHRoaXMudmlld2VyPy5sb2FkICYmIG9ubG9hZCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEN1c3RvbSBzZWFyY2ggaW5zaWRlIFBERi5KUyBiYXNlZCBvbiBzZWFyY2ggdGVybVxuICAgKiBAcGFyYW0gdGVybSBzZWFyY2ggdGVybVxuICAgKiBAcGFyYW0gd2luIGlmcmFtZSB3aW5kb3dcbiAgICovXG4gIHByaXZhdGUgc2VhcmNoUERGKHRlcm0gPSAnJywgd2luOiBhbnkpIHtcbiAgICAvLyByZW1vdmUgYWxsIHNwZWNpYWwgY2hhcmFjdGVyc1xuICAgIHRlcm0gPSAodGVybSB8fCAnJykucmVwbGFjZSgvW1xcXCJ8XFwqXS9nLCAnJykudHJpbSgpO1xuICAgIGlmICh0ZXJtICYmIHdpbj8uUERGVmlld2VyQXBwbGljYXRpb24/LmFwcENvbmZpZz8uZmluZEJhcikge1xuICAgICAgd2luLlBERlZpZXdlckFwcGxpY2F0aW9uLmFwcENvbmZpZy5maW5kQmFyLmZpbmRGaWVsZC52YWx1ZSA9IHRlcm07XG4gICAgICB3aW4uUERGVmlld2VyQXBwbGljYXRpb24uYXBwQ29uZmlnLmZpbmRCYXIuaGlnaGxpZ2h0QWxsQ2hlY2tib3guY2hlY2tlZCA9IHRydWU7XG4gICAgICB3aW4uUERGVmlld2VyQXBwbGljYXRpb24uYXBwQ29uZmlnLmZpbmRCYXIuY2FzZVNlbnNpdGl2ZUNoZWNrYm94LmNoZWNrZWQgPSBmYWxzZTtcbiAgICAgIC8vIHRyaWdnZXIgZmluZCBldmVudCBvbiBwZGYuanMgbG9hZFxuICAgICAgd2luLlBERlZpZXdlckFwcGxpY2F0aW9uLmluaXRpYWxpemVkUHJvbWlzZT8udGhlbigoKSA9PiB3aW4uUERGVmlld2VyQXBwbGljYXRpb24uZmluZEJhci5kaXNwYXRjaEV2ZW50KCkpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcHJldmVudERyb3BFdmVudCh3aW46IGFueSkge1xuICAgIGlmICh3aW4/LmxvY2F0aW9uPy5vcmlnaW4gPT09IHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4pIHtcbiAgICAgIHdpbj8uZG9jdW1lbnQ/LmFkZEV2ZW50TGlzdGVuZXIoJ2Ryb3AnLCAoZSkgPT4gZS5zdG9wUHJvcGFnYXRpb24oKSk7XG4gICAgICAvLyBkaXNwYWNoIGRyYWcgJiBkcm9wIGV2ZW50cyB0byBtYWluIHdpbmRvd1xuICAgICAgd2luPy5kb2N1bWVudD8uYWRkRXZlbnRMaXN0ZW5lcignZHJhZ2VudGVyJywgKGUpID0+IHtcbiAgICAgICAgd2luZG93LmRvY3VtZW50LmRpc3BhdGNoRXZlbnQobmV3IERyYWdFdmVudCgnZHJhZ2VudGVyJywgZSkpO1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHdpbmRvdy5kb2N1bWVudC5kaXNwYXRjaEV2ZW50KG5ldyBEcmFnRXZlbnQoJ2RyYWdsZWF2ZScsIGUpKSwgMTApO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgaWZyYW1lSW5pdChpZnJhbWUgPSB0aGlzLmlmcmFtZSwgb25sb2FkPzogRnVuY3Rpb24pIHtcbiAgICBpZiAoaWZyYW1lKSB7XG4gICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgICAgaWZyYW1lLl9pbml0IHx8IGZyb21FdmVudChpZnJhbWUsICdsb2FkJylcbiAgICAgICAgLnBpcGUodW50aWxEZXN0cm95ZWQodGhpcykpXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHdpbiA9IHRoaXMuc2V0QXBpKGlmcmFtZSk7XG4gICAgICAgICAgb25sb2FkICYmIG9ubG9hZCgpO1xuICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zZWFyY2hQREYodGhpcy5zZWFyY2hUZXJtLCB3aW4pO1xuICAgICAgICAgICAgdGhpcy5wcmV2ZW50RHJvcEV2ZW50KHdpbik7XG4gICAgICAgICAgfSwgMTAwKTtcbiAgICAgICAgfSk7XG4gICAgICBpZnJhbWUuX2luaXQgPSAhIXRoaXMuc2V0QXBpKGlmcmFtZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXRBcGkoaWZyYW1lOiBhbnkpIHtcbiAgICAvLyBzZXQgYXBpIHRvIGlmcmFtZSB3aW5kb3dcbiAgICBjb25zdCB3aW4gPSBpZnJhbWU/LmNvbnRlbnRXaW5kb3cgfHwgaWZyYW1lO1xuICAgIHdpblsnYXBpJ10gPSB3aW5kb3dbJ2FwaSddO1xuICAgIGlmICh3aW5bJ2FwaSddPy5jb250ZW50KSB7XG4gICAgICB3aW5bJ2FwaSddLmNvbnRlbnQucmVzb2x2ZVZpZXdlclBhcmFtcyA9IChwYXJhbWV0ZXJzOiBhbnkpID0+IHtcbiAgICAgICAgY29uc3QgdXJpID0gcGFyYW1ldGVycy5wYXRoLnJlcGxhY2UobG9jYXRpb24ub3JpZ2luLCAnJyk7XG4gICAgICAgIGNvbnN0IHZpZXdlciA9IHRoaXMuZ2V0Vmlld2VyKHt1cmksIG1pbWV0eXBlOiBwYXJhbWV0ZXJzLm1pbWVUeXBlLCBmaWxlRXh0ZW5zaW9uOiBwYXJhbWV0ZXJzLmZpbGVFeHRlbnNpb24sIHVyaVBkZjogdXJpLCBtaW1lZ3JvdXA6ICcnLCBzaXplOiAxfSk7XG4gICAgICAgIHJldHVybiB7dXJpOiB2aWV3ZXIucHJldmlld1VyaSB8fCBwYXJhbWV0ZXJzLnBhdGh9O1xuICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIHdpbjtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICB9XG5cbn1cbiIsIjxkaXYgW2hpZGRlbl09XCIhb3BlblwiPlxuICA8IS0tIGF0dGFjaG1lbnRzIG92ZXJsYXkgLS0+XG4gIDxkaXYgY2xhc3M9XCJhdHRhY2htZW50c1wiICpuZ0lmPVwiYXR0YWNobWVudHM/Lmxlbmd0aFwiXG4gICAgW25nQ2xhc3NdPVwie25vdG1haW46IGxhdGVzdFVyaSAhPT0gcHJldmlld1VyaSAmJiAhYXR0YWNobWVudHNTaG93biwgYWN0aXZlOiBhdHRhY2htZW50c1Nob3dufVwiXG4gICAgKGVvT3V0c2lkZUNsaWNrKT1cImF0dGFjaG1lbnRzU2hvd24gPSBmYWxzZVwiPlxuICAgIDxkaXYgY2xhc3M9XCJhdHRhY2htZW50cy1saXN0XCIgKm5nSWY9XCJhdHRhY2htZW50c1Nob3duXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiYXR0YWNobWVudCBtYWluXCIgKGNsaWNrKT1cInNlbGVjdEF0dGFjaG1lbnQobnVsbClcIiBbbmdDbGFzc109XCJ7Y3VycmVudDogbGF0ZXN0VXJpID09PSBwcmV2aWV3VXJpfVwiPnt7ZG1zT2JqZWN0VGl0bGV9fTwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImF0dGFjaG1lbnRcIiAqbmdGb3I9XCJsZXQgYSBvZiBhdHRhY2htZW50c1wiIChjbGljayk9XCJzZWxlY3RBdHRhY2htZW50KGEpXCIgW25nQ2xhc3NdPVwie2N1cnJlbnQ6IGxhdGVzdFVyaSA9PT0gYS5wcmV2aWV3VXJpfVwiPlxuICAgICAgICB7e2EubmFtZX19XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxlby1pY29uIGNsYXNzPVwiYnV0dG9uXCIgW2JhZGdlXT1cImF0dGFjaG1lbnRzPy5sZW5ndGhcIiAoY2xpY2spPVwiYXR0YWNobWVudHNTaG93biA9ICFhdHRhY2htZW50c1Nob3duXCJcbiAgICAgIFtpY29uU3JjXT1cImF0dGFjaG1lbnRzU2hvd24gPyAnYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19jbGVhci5zdmcnIDogJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfYXR0YWNobWVudC5zdmcnXCI+PC9lby1pY29uPlxuICA8L2Rpdj5cblxuICA8eXZjLXBvcG91dFxuICBbcG9wb3V0V2luZG93Q29uZmlnXT1cInBvcG91dFdpbmRvd0NvbmZpZ1wiXG4gIFt0cmlnZ2VyUG9zaXRpb25dPVwicG9wb3V0VHJpZ2dlclBvc2l0aW9uXCIgW2Rpc2FibGVkXT1cInVuZG9ja0Rpc2FibGVkXCI+XG5cbiAgICA8ZGl2IGNsYXNzPVwicHJldmlldy1jb250YWluZXJcIiBbc3R5bGUub3ZlcmZsb3ddPVwiJ2hpZGRlbidcIj5cbiAgICAgIDxpZnJhbWUgW2hpZGRlbl09XCJpc1VuZG9ja2VkIHx8IGxvYWRpbmdcIiAjaWZyYW1lIGhlaWdodD1cIjEwMCVcIiB3aWR0aD1cIjEwMCVcIiBmcmFtZWJvcmRlcj1cIjBcIj48L2lmcmFtZT5cbiAgICAgIDxkaXYgY2xhc3M9XCJsb2FkZXItb3ZlcmxheV9fbWFza1wiICpuZ0lmPVwibG9hZGluZ1wiPlxuICAgICAgICA8ZW8tbG9hZGluZy1zcGlubmVyIGNsYXNzPVwiaWZyYW1lX19sb2FkZXJcIj48L2VvLWxvYWRpbmctc3Bpbm5lcj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cInNsaWRlXCIgKm5nSWY9XCJpc1VuZG9ja2VkXCI+XG4gICAgICAgIDxlby1pY29uICpuZ0lmPVwibWVkaWFUeXBlXCIgW29iamVjdFR5cGVdPVwibWVkaWFUeXBlXCI+PC9lby1pY29uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwveXZjLXBvcG91dD5cbjwvZGl2PlxuXG48ZGl2IFtoaWRkZW5dPVwib3BlblwiIGNsYXNzPVwiZW1wdHktY29udGFpbmVyXCI+XG4gIDxlby1pY29uIGNsYXNzPVwibm9maWxlXCIgW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfbm8tZmlsZS5zdmcnXCI+PC9lby1pY29uPlxuPC9kaXY+XG4iXX0=
316
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVkaWEuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvbWVkaWEvbWVkaWEuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9lby1mcmFtZXdvcmsvbWVkaWEvbWVkaWEuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQWdCLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUF3QixTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFVNUcsT0FBTyxFQUFDLHFCQUFxQixFQUFxQixNQUFNLDJCQUEyQixDQUFDO0FBQ3BGLE9BQU8sRUFBQyxTQUFTLEVBQWUsTUFBTSxNQUFNLENBQUM7QUFLN0MsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDaEUsT0FBTyxFQUFDLFlBQVksRUFBRSxjQUFjLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7Ozs7O0FBMEI1RCxJQUFNLGNBQWMsc0JBQXBCLE1BQU0sY0FBYztJQW9FekIsSUFDSSxjQUFjLENBQUMsV0FBVztRQUM1QixJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztRQUMvQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxJQUNJLGFBQWEsQ0FBQyxVQUFVO1FBQzFCLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxJQUFJLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBRUQsSUFDSSxVQUFVLENBQUMsR0FBVztRQUN4QixJQUFJLENBQUMsV0FBVyxHQUFHLEdBQUcsQ0FBQztRQUN2QixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFDSSxXQUFX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RGIsS0FBSztnQkFXRixXQUFXO3NCQURkLEtBQUs7Z0JBY0YsU0FBUztzQkFEWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT25EZXN0cm95LCBSZW5kZXJlcjIsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBDb25maWcsXG4gIERtc09iamVjdCxcbiAgRG1zT2JqZWN0QXR0YWNobWVudCxcbiAgRG1zU2VydmljZSxcbiAgT2JqZWN0VHlwZSxcbiAgU3lzdGVtU2VydmljZSxcbiAgVHJhbnNsYXRlU2VydmljZSxcbn0gZnJvbSAnQGVvLXNkay9jb3JlJztcbmltcG9ydCB7UG9wb3V0VHJpZ2dlclBvc2l0aW9uLCBQb3BvdXRXaW5kb3dDb25maWd9IGZyb20gJ0B5dXV2aXMvY29tcG9uZW50cy9wb3BvdXQnO1xuaW1wb3J0IHtmcm9tRXZlbnQsIFN1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge3Rha2VVbnRpbH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge0ZpbGVTaXplUGlwZX0gZnJvbSAnLi4vLi4vZW8tZnJhbWV3b3JrLWNvcmUvcGlwZXMvZmlsZXNpemUucGlwZSc7XG5pbXBvcnQge1BsdWdpbnNTZXJ2aWNlfSBmcm9tICcuLy4uLy4uL2VvLWZyYW1ld29yay1jb3JlL2FwaS9wbHVnaW5zLnNlcnZpY2UnO1xuaW1wb3J0IHtDb250ZW50UHJldmlld1NlcnZpY2V9IGZyb20gJy4vY29udGVudC1wcmV2aWV3LnNlcnZpY2UnO1xuaW1wb3J0IHtVbnRpbERlc3Ryb3ksIHVudGlsRGVzdHJveWVkfSBmcm9tICdAbmduZWF0L3VudGlsLWRlc3Ryb3knO1xuXG5leHBvcnQgaW50ZXJmYWNlIFZpZXdlckNvbmZpZyB7XG4gIG1pbWVUeXBlPzogc3RyaW5nIHwgc3RyaW5nW107XG4gIGZpbGVFeHRlbnNpb24/OiBzdHJpbmcgfCBzdHJpbmdbXTtcbiAgdmlld2VyOiBzdHJpbmc7XG4gIGVycm9yPzogYm9vbGVhbjtcbiAgdHlwZT86ICdjb21wYXJlJyB8ICdleHRlbmQnIHwgJ2Vycm9yJyB8ICdkZWZhdWx0Jztcbn1cbmV4cG9ydCBpbnRlcmZhY2UgUHJldmlld0ZpbGUge1xuICB1cmk6IHN0cmluZztcbiAgdXJpUGRmOiBzdHJpbmc7XG4gIG1pbWV0eXBlOiBzdHJpbmc7XG4gIG1pbWVncm91cDogc3RyaW5nO1xuICBzaXplOiBudW1iZXI7XG4gIHBhdGg/OiBzdHJpbmc7XG4gIGZpbGVFeHRlbnNpb24/OiBzdHJpbmc7XG4gIG1lZGlhVHlwZU5hbWU/OiBzdHJpbmc7XG59XG5AVW50aWxEZXN0cm95KClcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VvLW1lZGlhJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21lZGlhLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbWVkaWEuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbQ29udGVudFByZXZpZXdTZXJ2aWNlXVxufSlcbmV4cG9ydCBjbGFzcyBNZWRpYUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG5cbiAgc3RhdGljIFZJREVPX1ZJRVdFUiA9ICd2aWV3ZXIvdmlldy9hcGkvdmlkZW8vP3BhdGg9JHtwYXRofSZtaW1lVHlwZT0ke21pbWVUeXBlfSZmaWxlRXh0ZW5zaW9uPSR7ZmlsZUV4dGVuc2lvbn0mbGFuZz0ke2xhbmd9JnRoZW1lPSR7dGhlbWV9JztcbiAgc3RhdGljIFBERl9WSUVXRVIgPSAndmlld2VyL3ZpZXcvYXBpL3BkZi93ZWIvdmlld2VyLmh0bWw/ZmlsZT0mcGF0aD0ke3BhdGh9JnBhdGhQZGY9JHtwYXRoUGRmfSZtaW1lVHlwZT0ke21pbWVUeXBlfSZmaWxlRXh0ZW5zaW9uPSR7ZmlsZUV4dGVuc2lvbn0mbGFuZz0ke2xhbmd9JnRoZW1lPSR7dGhlbWV9JmNzcz0lMjN0b29sYmFyVmlld2VyUmlnaHQlMjAlMjNwcmludCU3QmRpc3BsYXklM0FibG9jayFpbXBvcnRhbnQlM0IlN0QnO1xuXG4gIHByaXZhdGUgU0laRV9MSU1JVCA9IDEwMjQgKiAxMDI0ICogMTA7IC8vIDEwTUJcbiAgcHJpdmF0ZSBwZGZqczogYW55O1xuICBsYXRlc3RVcmk6IHN0cmluZztcbiAgc2xpZGVVcmk6IHN0cmluZztcbiAgdmlld2VyOiBhbnk7XG4gIGRtc09iamVjdFRpdGxlOiBzdHJpbmc7XG4gIHByaXZhdGUgX3ByZXZpZXdVcmk6IHN0cmluZztcbiAgcHJpdmF0ZSBfZG1zT2JqZWN0OiBEbXNPYmplY3Q7XG4gIGZpbGVTaXplUGlwZTogRmlsZVNpemVQaXBlO1xuICBjdXJyZW50SW5kZXg6IG51bWJlcjtcbiAgYXR0YWNobWVudHM6IERtc09iamVjdEF0dGFjaG1lbnRbXSA9IFtdO1xuICBhdHRhY2htZW50c0xvYWRpbmc6IFN1YnNjcmlwdGlvbjtcbiAgYXR0YWNobWVudHNTaG93bjogYm9vbGVhbjtcbiAgc2VhcmNoVGVybTogc3RyaW5nO1xuICBtZWRpYVR5cGU6IE9iamVjdFR5cGU7XG4gIGN1c3RvbUNvbmZpZzogYW55W10gPSBbXTtcblxuICBwb3BvdXRUcmlnZ2VyUG9zaXRpb24gPSBQb3BvdXRUcmlnZ2VyUG9zaXRpb24uQk9UVE9NX1JJR0hUXG4gIHBvcG91dFdpbmRvd0NvbmZpZzogUG9wb3V0V2luZG93Q29uZmlnO1xuXG5cblxuXG4gIGRlZmF1bHRWaWV3ZXJzID0gW1xuICAgIHtcbiAgICAgIFwibWltZVR5cGVcIjogW1wiYXBwbGljYXRpb24vanNvblwiLCBcInRleHQvanNvblwiLCBcInRleHQvcGxhaW5cIiwgXCJ0ZXh0L3htbFwiLCBcInRleHQvamF2YVwiLCBcInRleHQvamF2YXNjcmlwdFwiLCBcImFwcGxpY2F0aW9uL2phdmFzY3JpcHRcIiwgXCJ0ZXh0L2h0bWxcIiwgXCJ0ZXh0L21hcmtkb3duXCIsIFwidGV4dC94LXdlYi1tYXJrZG93blwiLCBcInRleHQveC1tYXJrZG93blwiXSxcbiAgICAgIFwidmlld2VyXCI6IFwidmlld2VyL3ZpZXcvYXBpL21vbmFjby8/cGF0aD0ke3BhdGh9Jm1pbWVUeXBlPSR7bWltZVR5cGV9JmZpbGVFeHRlbnNpb249JHtmaWxlRXh0ZW5zaW9ufSZsYW5nPSR7bGFuZ30mdGhlbWU9JHt0aGVtZX1cIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJtaW1lVHlwZVwiOiBbXCJhdWRpby9tcDNcIiwgXCJhdWRpby93ZWJtXCIsIFwiYXVkaW8vb2dnXCIsIFwiYXVkaW8vbXBlZ1wiLCBcInZpZGVvL21wNFwiLCBcInZpZGVvL3dlYm1cIiwgXCJ2aWRlby9vZ2dcIiwgXCJhcHBsaWNhdGlvbi9vZ2dcIl0sXG4gICAgICBcInZpZXdlclwiOiBcInZpZXdlci92aWV3L2FwaS92aWRlby8/cGF0aD0ke3BhdGh9Jm1pbWVUeXBlPSR7bWltZVR5cGV9JmZpbGVFeHRlbnNpb249JHtmaWxlRXh0ZW5zaW9ufSZsYW5nPSR7bGFuZ30mdGhlbWU9JHt0aGVtZX1cIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJtaW1lVHlwZVwiOiBbXCJpbWFnZS90aWZmXCIsIFwiaW1hZ2UvanBlZ1wiLCBcImltYWdlL3BuZ1wiLCBcImltYWdlL2FwbmdcIiwgXCJpbWFnZS9naWZcIiwgXCJpbWFnZS9zdmcreG1sXCIsIFwiaW1hZ2Uvd2VicFwiXSxcbiAgICAgIFwidmlld2VyXCI6IFwidmlld2VyL3ZpZXcvYXBpL2ltZy8/cGF0aD0ke3BhdGh9Jm1pbWVUeXBlPSR7bWltZVR5cGV9JmZpbGVFeHRlbnNpb249JHtmaWxlRXh0ZW5zaW9ufSZsYW5nPSR7bGFuZ30mdGhlbWU9JHt0aGVtZX1cIlxuICAgIH0sXG4gICAge1xuICAgICAgXCJtaW1lVHlwZVwiOiBbXCJtZXNzYWdlL3JmYzgyMlwiLCBcImFwcGxpY2F0aW9uL3ZuZC5tcy1vdXRsb29rXCJdLFxuICAgICAgXCJ2aWV3ZXJcIjogXCJ2aWV3ZXIvdmlldy9hcGkvbWFpbC8/cGF0aD0ke3BhdGh9Jm1pbWVUeXBlPSR7bWltZVR5cGV9JmZpbGVFeHRlbnNpb249JHtmaWxlRXh0ZW5zaW9ufSZsYW5nPSR7bGFuZ30mdGhlbWU9JHt0aGVtZX1cIlxuICAgIH0sXG4gICAgLy8gT05MWSBhcHBsaWVzIHRvIGxvY2FsaG9zdCBlbnY7IGZpeGVkIGVtYWlsIGNvcnMgZm9yIGxvY2FsaG9zdCB0ZXN0aW5nXG4gICAge1xuICAgICAgXCJ0eXBlXCI6IFwiZXh0ZW5kXCIsXG4gICAgICBcInZpZXdlclwiOiBcIigpID0+IHsgaWYgKHBhcmFtZXRlcnMudmlld2VyLm1hdGNoKCcvdmlldy9hcGkvbWFpbC8nKSAmJiBwYXJhbWV0ZXJzLnBhdGgubWF0Y2goJ2xvY2FsaG9zdCcpKSB7IHZhciBob3N0ID0gJ2xvY2FsaG9zdDo0MjAwJzsgdmFyIGNvcnMgPSAna29saWJyaXByb2xpYW50Lm9wdGltYWwtc3lzdGVtcy5kZSc7IHBhcmFtZXRlcnMucGF0aCA9IHBhcmFtZXRlcnMucGF0aC5yZXBsYWNlKGhvc3QsIGNvcnMpOyByZXR1cm4gcGFyYW1ldGVycy52aWV3ZXIgKyAnJmNvcnM9JyArIGNvcnM7fSByZXR1cm4gcGFyYW1ldGVycy52aWV3ZXI7IH1cIlxuICAgIH0sXG4gICAgLy8gV2UgbmVlZCBhbm90aGVyIHBhdGhQZGYgZm9yIGVtYWlsIGF0dGFjaG1lbnQgZmlsZXMuIFRoaXMgd2lsbCBvbmx5IGNvbWUgaW4gcGxhY2UgaWYgdGhlIG1pbWV0eXBlIGlzIHBkZiBvciBvbmUgb2YgdGhlIG5vdCBzdXBwb3J0ZWQgb25lcy4gKHZpZXdlciBhdHRhY2htZW50cyAmIGFwaSBhdHRhY2htZW50cyBjYW4gYmUgcGFyc2VkIGluIGRpZmZlcmVudCBvcmRlciwgc28gd2UgaGF2ZSB0byBtYXRjaCB0aGVtIGJ5IGZpbGVuYW1lKVxuICAgIHtcInZpZXdlclwiOiBcIigpID0+IHt2YXIgYXR0YWNobWVudCA9IHBhcmFtZXRlcnMucGF0aFBkZi5tYXRjaChuZXcgUmVnRXhwKCdhdHRhY2htZW50PShcXFxcXFxcXGQrKScpKTsgdmFyIGEgPSBhdHRhY2htZW50ICYmIGFwaS5jb250ZW50LnZpZXdlcigpLmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lmcmFtZScpLmNvbnRlbnREb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdhW2RhdGEtc3JjJD1cXFwiJyArIGF0dGFjaG1lbnRbMF0gKyAnXFxcIl0nKTsgIHZhciBwYXJhbXMgPSBhICYmIChhcGkuY29udGVudC5hdHRhY2htZW50cyB8fCBbXSkuZmluZChhdHQgPT4gYXBpLnV0aWwuZGVjb2RlSHRtbENoYXJDb2RlcyhhdHQubmFtZSkgPT09IGEuZ2V0QXR0cmlidXRlKCdkYXRhLWZpbGVuYW1lJykpOyBpZihwYXJhbXMgJiYgcGFyYW1zLnByZXZpZXdVcmkpIHsgZGVidWdnZXI7IHBhcmFtZXRlcnMucGF0aFBkZiA9IGxvY2F0aW9uLm9yaWdpbiArIHBhcmFtcy5wcmV2aWV3VXJpOyB9IHJldHVybiBwYXJhbWV0ZXJzLmRlZmF1bHRWaWV3ZXI7fVwifSxcbiAgICB7XCJlcnJvclwiOiB0cnVlLCBcInR5cGVcIjogXCJlcnJvclwiLCBcInZpZXdlclwiOiBcInZpZXdlci92aWV3L2FwaS9lcnJvci8/cGF0aD0ke3BhdGh9Jm1pbWVUeXBlPSR7bWltZVR5cGV9JmZpbGVFeHRlbnNpb249JHtmaWxlRXh0ZW5zaW9ufSZsYW5nPSR7bGFuZ30mdGhlbWU9JHt0aGVtZX1cIn1cbiAgXTtcblxuICBpc1VuZG9ja2VkOiBib29sZWFuO1xuICBsb2FkaW5nOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpIHVuZG9ja0Rpc2FibGVkID0gZmFsc2U7XG5cbiAgQElucHV0KCkgZW5hYmxlQ2xvc2VCdG4gPSBmYWxzZTtcbiAgLy8gYnkgZGVmYXVsdCwgdGhlIHZpZXdlciBpZ25vcmVzIHRoZSB2ZXJzaW9uIG9mIHRoZSBkbXMgb2JqZWN0LiBUaGlzIHdpbGwgYWx3YXlzIHNob3cgdGhlIGxhdGVzdCB2ZXJzaW9uLlxuICAvLyBXZSBuZWVkIHRoaXMgdG8gYmUgYWJsZSB0byByZWZyZXNoIHRoZSB2aWV3ZXIgYmVjYXVzZSBvdGhlcndpc2UgcGRmanMgd29ya2VyIHdpbGwgZmFpbC5cbiAgQElucHV0KCkgdXNlVmVyc2lvbiA9IGZhbHNlO1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLm9wZW4nKSBvcGVuO1xuXG4gIEBWaWV3Q2hpbGQoJ2lmcmFtZScsIHtzdGF0aWM6IHRydWV9KSBpZnJhbWU7XG5cbiAgQElucHV0KCdhdHRhY2htZW50cycpXG4gIHNldCBzZXRBdHRhY2htZW50cyhhdHRhY2htZW50cykge1xuICAgIHRoaXMuYXR0YWNobWVudHMgPSBhdHRhY2htZW50cztcbiAgICB0aGlzLmF0dGFjaG1lbnRzU2hvd24gPSBmYWxzZTtcbiAgfVxuXG4gIEBJbnB1dCgnc2VhcmNoVGVybScpXG4gIHNldCBzZXRTZWFyY2hUZXJtKHNlYXJjaFRlcm0pIHtcbiAgICB0aGlzLnNlYXJjaFRlcm0gPSBzZWFyY2hUZXJtIHx8ICcnO1xuICB9XG5cbiAgQElucHV0KClcbiAgc2V0IHByZXZpZXdVcmkodXJpOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9wcmV2aWV3VXJpID0gdXJpO1xuICAgIHRoaXMudG9nZ2xlVmlld2VyKCk7XG4gIH1cblxuICBnZXQgcHJldmlld1VyaSgpIHtcbiAgICByZXR1cm4gdGhpcy5fcHJldmlld1VyaTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHNldCBwcmV2aWV3RmlsZShmaWxlOiBQcmV2aWV3RmlsZSkge1xuICAgIGlmIChmaWxlKSB7XG4gICAgICB0aGlzLnZpZXdlciA9IHRoaXMuZ2V0Vmlld2VyKGZpbGUpO1xuICAgICAgdGhpcy5tZWRpYVR5cGUgPSBmaWxlLm1lZGlhVHlwZU5hbWUgJiYgdGhpcy5zeXN0ZW0uZ2V0T2JqZWN0VHlwZShmaWxlLm1lZGlhVHlwZU5hbWUpO1xuICAgICAgdGhpcy5wcmV2aWV3VXJpID0gdGhpcy52aWV3ZXIucHJldmlld1VyaTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5wcmV2aWV3VXJpID0gJyc7XG4gICAgICB0aGlzLnBvcG91dFdpbmRvd0NvbmZpZyA9IHVuZGVmaW5lZDtcbiAgICB9XG4gICAgdGhpcy5fc2V0UG9wb3V0V2luZG93Q29uZmlnKCFmaWxlKTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHNldCBkbXNPYmplY3QoaXRlbTogRG1zT2JqZWN0KSB7XG4gICAgdGhpcy5fZG1zT2JqZWN0ID0gaXRlbTtcbiAgICB0aGlzLmRtc09iamVjdFRpdGxlID0gaXRlbS50aXRsZSB8fCAnLi4uJztcblxuXG4gICAgdGhpcy5zZXRBdHRhY2htZW50cyA9IFtdO1xuICAgIGlmICh0aGlzLmF0dGFjaG1lbnRzTG9hZGluZykge1xuICAgICAgLy8gY2FuY2VsIGFueSBwZW5kaW5nIHJlcXVlc3RzXG4gICAgICB0aGlzLmF0dGFjaG1lbnRzTG9hZGluZy51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgICBpZiAoaXRlbS5jb250ZW50ICYmIGl0ZW0uY29udGVudC5jb250ZW50cyAmJiBpdGVtLmNvbnRlbnQuY29udGVudHMubGVuZ3RoKSB7XG4gICAgICBjb25zdCBmaWxlID0gaXRlbS5jb250ZW50LmNvbnRlbnRzWzBdIHx8IHt9O1xuXG4gICAgICB0aGlzLnByZXZpZXdGaWxlID0ge1xuICAgICAgICB1cmk6IHRoaXMuZG1zLmdldFByZXZpZXcoaXRlbS5jb250ZW50LmlkLCBpdGVtLmNvbnRlbnQudHlwZSwgdGhpcy51c2VWZXJzaW9uID8gaXRlbS52ZXJzaW9uIDogbnVsbCwgdW5kZWZpbmVkLCB0cnVlKSxcbiAgICAgICAgdXJpUGRmOiB0aGlzLmRtcy5nZXRQcmV2aWV3KGl0ZW0uY29udGVudC5pZCwgaXRlbS5jb250ZW50LnR5cGUsIHRoaXMudXNlVmVyc2lvbiA/IGl0ZW0udmVyc2lvbiA6IG51bGwsICdQREYnLCB0cnVlKSxcbiAgICAgICAgbWltZXR5cGU6IGZpbGUubWltZXR5cGUsXG4gICAgICAgIG1pbWVncm91cDogZmlsZS5taW1lZ3JvdXAsXG4gICAgICAgIHNpemU6IGZpbGUuc2l6ZSxcbiAgICAgICAgcGF0aDogZmlsZS5wYXRoLFxuICAgICAgICBtZWRpYVR5cGVOYW1lOiBpdGVtLnR5cGVOYW1lXG4gICAgICB9O1xuXG4gICAgICBpZiAoISFmaWxlLm1pbWVncm91cD8ubWF0Y2goL15tYWlsfG9jdGV0LXN0cmVhbS8pICYmIHRoaXMudmlld2VyLnZpZXdlci5tYXRjaCgnL3ZpZXcvYXBpL3BkZi8nKSkge1xuICAgICAgICB0aGlzLnNsaWRlVXJpID0gdGhpcy5kbXMuZ2V0U2xpZGUoaXRlbS5jb250ZW50LmlkLCBpdGVtLmNvbnRlbnQudHlwZSwgdGhpcy51c2VWZXJzaW9uID8gaXRlbS52ZXJzaW9uIDogbnVsbCwgMjU2KTtcbiAgICAgICAgdGhpcy5hdHRhY2htZW50c0xvYWRpbmcgPSB0aGlzLmRtcy5nZXRBdHRhY2htZW50cyhpdGVtKS5zdWJzY3JpYmUoYSA9PiB0aGlzLnNldEF0dGFjaG1lbnRzID0gYSk7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLnZpZXdlci52aWV3ZXIubWF0Y2goJy92aWV3L2FwaS9tYWlsLycpKSB7XG4gICAgICAgIHRoaXMuZG1zLmdldEF0dGFjaG1lbnRzKGl0ZW0pLnN1YnNjcmliZShhID0+IHdpbmRvdy5hcGkuY29udGVudC5hdHRhY2htZW50cyA9IGEpO1xuICAgICAgfVxuXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucHJldmlld1VyaSA9ICcnO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBkbXM6IERtc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIHByaXZhdGUgc3lzdGVtOiBTeXN0ZW1TZXJ2aWNlLFxuICAgIHByaXZhdGUgY29uZmlnOiBDb25maWcsXG4gICAgcHJpdmF0ZSBwbHVnaW5zU2VydmljZTogUGx1Z2luc1NlcnZpY2UpIHtcbiAgICB0aGlzLlNJWkVfTElNSVQgPSB0aGlzLmNvbmZpZy5nZXRSYXcoJ3ByZXZpZXcuZmlsZVNpemVMaW1pdCcpIHx8IHRoaXMuU0laRV9MSU1JVDtcbiAgICB0aGlzLmN1c3RvbUNvbmZpZyA9ICh0aGlzLmNvbmZpZy5nZXRSYXcoJ3ByZXZpZXcudmlld2VycycpIHx8IFtdKS5jb25jYXQodGhpcy5kZWZhdWx0Vmlld2Vycyk7XG5cbiAgICB0aGlzLnBsdWdpbnNTZXJ2aWNlLmFwaS5jb250ZW50LmNhdGNoRXJyb3IoKS5zdWJzY3JpYmUoKGV2dDogYW55KSA9PiB7XG4gICAgICBjb25zdCB7ZXJyLCB3aW4sIHBhcmFtZXRlcnN9ID0gZXZ0LmRhdGE7XG4gICAgICBjb25zdCB1cmkgPSB0aGlzLnBsdWdpbnNTZXJ2aWNlLmFwcGx5RnVuY3Rpb24odGhpcy5jdXN0b21Db25maWc/LmZpbmQoKHYpID0+IHYuZXJyb3IpPy52aWV3ZXIsICdhcGksIGVyciwgd2luLCBwYXJhbWV0ZXJzJywgW1xuICAgICAgICB0aGlzLnBsdWdpbnNTZXJ2aWNlLmFwaSxcbiAgICAgICAgZXJyLFxuICAgICAgICB3aW4sXG4gICAgICAgIHBhcmFtZXRlcnNcbiAgICAgIF0pO1xuICAgICAgdXJpICYmIHdpbiAmJiAod2luLmxvY2F0aW9uLmhyZWYgPSB0aGlzLnJlc29sdmVVcmkodXJpLCBwYXJhbWV0ZXJzKSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9zZXRQb3BvdXRXaW5kb3dDb25maWcocmVzZXQ/OiBib29sZWFuKSB7XG4gICAgY29uc3Qgd2luSW5zZXQgPSAyMDtcbiAgICB0aGlzLnBvcG91dFdpbmRvd0NvbmZpZyA9ICFyZXNldCA/IHtcbiAgICAgIHRpdGxlOiB0aGlzLmRtc09iamVjdFRpdGxlLFxuICAgICAgcG9zaXRpb246IHtcbiAgICAgICAgYmxvY2tTdGFydDogd2luSW5zZXQsXG4gICAgICAgIGlubGluZVN0YXJ0OiB3aW5kb3cuc2NyZWVuLndpZHRoIC8gMlxuICAgICAgfSwgc2l6ZToge1xuICAgICAgICB3aWR0aDogd2luZG93LnNjcmVlbi53aWR0aCAvIDIgLSB3aW5JbnNldCxcbiAgICAgICAgaGVpZ2h0OiB3aW5kb3cuc2NyZWVuLmhlaWdodCAtIHdpbkluc2V0ICogMixcbiAgICAgIH1cbiAgICB9IDogdW5kZWZpbmVkO1xuICB9XG5cbiAgc2VsZWN0QXR0YWNobWVudChhdHRhY2htZW50PzogYW55KSB7XG4gICAgY29uc3QgcHJldmlld1VyaSA9IGF0dGFjaG1lbnQgJiYgdGhpcy5nZXRWaWV3ZXIoe3VyaVBkZjogYXR0YWNobWVudC5wcmV2aWV3VXJpfSBhcyBQcmV2aWV3RmlsZSkucHJldmlld1VyaTtcbiAgICB0aGlzLmxvYWREb2N1bWVudChwcmV2aWV3VXJpIHx8IHRoaXMucHJldmlld1VyaSwgdHJ1ZSk7XG4gIH1cblxuICBwdWJsaWMgdG9nZ2xlVmlld2VyKCkge1xuICAgIHRoaXMub3BlbiA9ICEhdGhpcy5wcmV2aWV3VXJpO1xuICAgIGlmICghIXRoaXMucHJldmlld1VyaSkge1xuICAgICAgdGhpcy5sb2FkRG9jdW1lbnQodGhpcy5wcmV2aWV3VXJpKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcmVmcmVzaCgpIHtcbiAgICB0aGlzLmxvYWREb2N1bWVudCh0aGlzLnByZXZpZXdVcmksIHRydWUpO1xuICB9XG5cbiAgZ2V0Vmlld2VyKGZpbGU6IFByZXZpZXdGaWxlKTogYW55IHtcbiAgICBjb25zdCBpc1ZpZGVvID0gISFmaWxlLm1pbWVncm91cD8ubWF0Y2goL15hdWRpb3xedmlkZW8vKTtcbiAgICBjb25zdCBkZWZhdWx0Vmlld2VyID0gaXNWaWRlbyA/IE1lZGlhQ29tcG9uZW50LlZJREVPX1ZJRVdFUiA6IE1lZGlhQ29tcG9uZW50LlBERl9WSUVXRVI7XG4gICAgY29uc3QgZmlsZUV4dGVuc2lvbiA9IGZpbGUuZmlsZUV4dGVuc2lvbiB8fCAoZmlsZS5wYXRoPy5pbmNsdWRlcygnLicpID8gZmlsZS5wYXRoLnNwbGl0KCcuJykucG9wKCkgOiAnJyk7XG4gICAgY29uc3QgbWltZVR5cGUgPSBmaWxlLm1pbWV0eXBlO1xuICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMuY3VzdG9tQ29uZmlnLmZpbmQoKGM6IFZpZXdlckNvbmZpZykgPT4ge1xuICAgICAgY29uc3QgbWF0Y2hNVCA9ICFjLm1pbWVUeXBlIHx8ICh0eXBlb2YgYy5taW1lVHlwZSA9PT0gJ3N0cmluZycgPyBbYy5taW1lVHlwZV0gOiBjLm1pbWVUeXBlKS5pbmNsdWRlcyhtaW1lVHlwZT8udG9Mb3dlckNhc2UoKSk7XG4gICAgICBjb25zdCBtYXRjaEZFID0gIWMuZmlsZUV4dGVuc2lvbiB8fCAodHlwZW9mIGMuZmlsZUV4dGVuc2lvbiA9PT0gJ3N0cmluZycgPyBbYy5maWxlRXh0ZW5zaW9uXSA6IGMuZmlsZUV4dGVuc2lvbikuaW5jbHVkZXMoKGZpbGVFeHRlbnNpb24pLnRvTG93ZXJDYXNlKCkpO1xuICAgICAgcmV0dXJuIG1hdGNoTVQgJiYgbWF0Y2hGRSAmJiAoIWMudHlwZSB8fCBjLnR5cGUgPT09ICdkZWZhdWx0Jyk7XG4gICAgfSk7XG4gICAgY29uc3QgcGFyYW1ldGVycyA9IHtcbiAgICAgIGZpbGUsXG4gICAgICBwYXRoOiBsb2NhdGlvbi5vcmlnaW4gKyBmaWxlLnVyaSxcbiAgICAgIHBhdGhQZGY6IGxvY2F0aW9uLm9yaWdpbiArIGZpbGUudXJpUGRmLFxuICAgICAgdmlld2VyOiBjb25maWc/LnZpZXdlciB8fCBkZWZhdWx0Vmlld2VyLFxuICAgICAgbG9hZDogY29uZmlnPy5sb2FkLFxuICAgICAgZmlsZUV4dGVuc2lvbixcbiAgICAgIG1pbWVUeXBlLFxuICAgICAgdGhlbWU6ICcnLFxuICAgICAgZGVmYXVsdFZpZXdlcixcbiAgICAgIHByZXZpZXdVcmk6ICcnXG4gICAgfTtcbiAgICBwYXJhbWV0ZXJzLnZpZXdlciA9IHRoaXMucGx1Z2luc1NlcnZpY2UuYXBwbHlGdW5jdGlvbihwYXJhbWV0ZXJzLnZpZXdlciwgJ2NvbXBvbmVudCwgZG1zT2JqZWN0LCBwYXJhbWV0ZXJzJywgW3RoaXMsIHRoaXMuX2Rtc09iamVjdCwgcGFyYW1ldGVyc10pIHx8IGRlZmF1bHRWaWV3ZXI7XG5cbiAgICBjb25zdCBleHRlbmQgPSB0aGlzLmN1c3RvbUNvbmZpZy5maW5kKChjKSA9PiBjLnR5cGUgPT09ICdleHRlbmQnKTtcbiAgICBpZiAoZXh0ZW5kKSBwYXJhbWV0ZXJzLnZpZXdlciA9IHRoaXMucGx1Z2luc1NlcnZpY2UuYXBwbHlGdW5jdGlvbihleHRlbmQudmlld2VyLCAnY29tcG9uZW50LCBkbXNPYmplY3QsIHBhcmFtZXRlcnMnLCBbdGhpcywgdGhpcy5fZG1zT2JqZWN0LCBwYXJhbWV0ZXJzXSk7XG5cbiAgICBwYXJhbWV0ZXJzLnByZXZpZXdVcmkgPSB0aGlzLnJlc29sdmVVcmkocGFyYW1ldGVycy52aWV3ZXIsIHBhcmFtZXRlcnMpO1xuICAgIHJldHVybiBwYXJhbWV0ZXJzO1xuICB9XG5cbiAgcHJpdmF0ZSByZXNvbHZlVXJpKHZpZXdlcjogc3RyaW5nLCBwYXJhbWV0ZXJzOiBhbnkpIHtcbiAgICBsZXQgb3JpZ2luID0gJyc7XG4gICAgaWYgKCF2aWV3ZXIuc3RhcnRzV2l0aCgnaHR0cCcpKSB7XG4gICAgICBvcmlnaW4gPSB3aW5kb3cubG9jYXRpb24ub3JpZ2luICsgdGhpcy5jb25maWcuZ2V0UmF3KCd1cmkuY29udGV4dFBhdGgnKTtcbiAgICAgIGlmICghb3JpZ2luLmVuZHNXaXRoKCcvJykgJiYgIXZpZXdlci5zdGFydHNXaXRoKCcvJykpIHtcbiAgICAgICAgb3JpZ2luICs9ICcvJztcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG9yaWdpbiArIHZpZXdlclxuICAgICAgLnJlcGxhY2UoJyR7b3JpZ2luYWxQYXRofScsIHBhcmFtZXRlcnMucGF0aClcbiAgICAgIC5yZXBsYWNlKCcke3BhdGh9JywgZW5jb2RlVVJJQ29tcG9uZW50KHBhcmFtZXRlcnMucGF0aCkpXG4gICAgICAucmVwbGFjZSgnJHtwYXRoUGRmfScsIGVuY29kZVVSSUNvbXBvbmVudChwYXJhbWV0ZXJzLnBhdGhQZGYpKVxuICAgICAgLnJlcGxhY2UoJyR7ZmlsZUV4dGVuc2lvbn0nLCBlbmNvZGVVUklDb21wb25lbnQocGFyYW1ldGVycy5maWxlRXh0ZW5zaW9uKSlcbiAgICAgIC5yZXBsYWNlKCcke21pbWVUeXBlfScsIGVuY29kZVVSSUNvbXBvbmVudChwYXJhbWV0ZXJzLm1pbWVUeXBlKSlcbiAgICAgIC5yZXBsYWNlKCcke3RoZW1lfScsIGVuY29kZVVSSUNvbXBvbmVudChwYXJhbWV0ZXJzLnRoZW1lKSlcbiAgICAgIC5yZXBsYWNlKCcke2xhbmd9JywgQ29udGVudFByZXZpZXdTZXJ2aWNlLm1hcExhbmcodGhpcy50cmFuc2xhdGUuY3VycmVudExhbmcpKTtcbiAgfVxuXG4gIGxvYWREb2N1bWVudCh1cmk6IHN0cmluZywgZm9yY2U/OiBib29sZWFuKSB7XG4gICAgaWYgKCFmb3JjZSAmJiAoIXVyaSB8fCAodXJpID09PSB0aGlzLmxhdGVzdFVyaSkpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHRoaXMubGF0ZXN0VXJpID0gdXJpIHx8ICcnO1xuXG4gICAgaWYgKHRoaXMucHJldmlld1VyaSkge1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUodGhpcy5pZnJhbWUubmF0aXZlRWxlbWVudCwgJ3NyYycsIHRoaXMubGF0ZXN0VXJpKTtcbiAgICAgIGNvbnN0IG9ubG9hZCA9ICgpID0+IHRoaXMucGx1Z2luc1NlcnZpY2UuYXBwbHlGdW5jdGlvbih0aGlzLnZpZXdlcj8ubG9hZCwgJ2lmcmFtZSwgY29tcG9uZW50JywgW3RoaXMuaWZyYW1lLm5hdGl2ZUVsZW1lbnQsIHRoaXNdKTtcbiAgICAgIHRoaXMuaWZyYW1lSW5pdCh0aGlzLmlmcmFtZS5uYXRpdmVFbGVtZW50LCB0aGlzLnZpZXdlcj8ubG9hZCAmJiBvbmxvYWQpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLmlmcmFtZS5uYXRpdmVFbGVtZW50LCAnc3JjJywgdGhpcy5sYXRlc3RVcmkpO1xuICAgICAgY29uc3Qgb25sb2FkID0gKCkgPT4gdGhpcy5wbHVnaW5zU2VydmljZS5hcHBseUZ1bmN0aW9uKHRoaXMudmlld2VyPy5sb2FkLCAnaWZyYW1lLCBjb21wb25lbnQnLCBbdGhpcy5pZnJhbWUubmF0aXZlRWxlbWVudCwgdGhpc10pO1xuICAgICAgdGhpcy5pZnJhbWVJbml0KHRoaXMuaWZyYW1lLm5hdGl2ZUVsZW1lbnQsIHRoaXMudmlld2VyPy5sb2FkICYmIG9ubG9hZCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEN1c3RvbSBzZWFyY2ggaW5zaWRlIFBERi5KUyBiYXNlZCBvbiBzZWFyY2ggdGVybVxuICAgKiBAcGFyYW0gdGVybSBzZWFyY2ggdGVybVxuICAgKiBAcGFyYW0gd2luIGlmcmFtZSB3aW5kb3dcbiAgICovXG4gIHByaXZhdGUgc2VhcmNoUERGKHRlcm0gPSAnJywgd2luOiBhbnkpIHtcbiAgICAvLyByZW1vdmUgYWxsIHNwZWNpYWwgY2hhcmFjdGVyc1xuICAgIHRlcm0gPSAodGVybSB8fCAnJykucmVwbGFjZSgvW1xcXCJ8XFwqXS9nLCAnJykudHJpbSgpO1xuICAgIGlmICh0ZXJtICYmIHdpbj8uUERGVmlld2VyQXBwbGljYXRpb24/LmFwcENvbmZpZz8uZmluZEJhcikge1xuICAgICAgd2luLlBERlZpZXdlckFwcGxpY2F0aW9uLmFwcENvbmZpZy5maW5kQmFyLmZpbmRGaWVsZC52YWx1ZSA9IHRlcm07XG4gICAgICB3aW4uUERGVmlld2VyQXBwbGljYXRpb24uYXBwQ29uZmlnLmZpbmRCYXIuaGlnaGxpZ2h0QWxsQ2hlY2tib3guY2hlY2tlZCA9IHRydWU7XG4gICAgICB3aW4uUERGVmlld2VyQXBwbGljYXRpb24uYXBwQ29uZmlnLmZpbmRCYXIuY2FzZVNlbnNpdGl2ZUNoZWNrYm94LmNoZWNrZWQgPSBmYWxzZTtcbiAgICAgIC8vIHRyaWdnZXIgZmluZCBldmVudCBvbiBwZGYuanMgbG9hZFxuICAgICAgd2luLlBERlZpZXdlckFwcGxpY2F0aW9uLmluaXRpYWxpemVkUHJvbWlzZT8udGhlbigoKSA9PiB3aW4uUERGVmlld2VyQXBwbGljYXRpb24uZmluZEJhci5kaXNwYXRjaEV2ZW50KCkpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcHJldmVudERyb3BFdmVudCh3aW46IGFueSkge1xuICAgIGlmICh3aW4/LmxvY2F0aW9uPy5vcmlnaW4gPT09IHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4pIHtcbiAgICAgIHdpbj8uZG9jdW1lbnQ/LmFkZEV2ZW50TGlzdGVuZXIoJ2Ryb3AnLCAoZSkgPT4gZS5zdG9wUHJvcGFnYXRpb24oKSk7XG4gICAgICAvLyBkaXNwYWNoIGRyYWcgJiBkcm9wIGV2ZW50cyB0byBtYWluIHdpbmRvd1xuICAgICAgd2luPy5kb2N1bWVudD8uYWRkRXZlbnRMaXN0ZW5lcignZHJhZ2VudGVyJywgKGUpID0+IHtcbiAgICAgICAgd2luZG93LmRvY3VtZW50LmRpc3BhdGNoRXZlbnQobmV3IERyYWdFdmVudCgnZHJhZ2VudGVyJywgZSkpO1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHdpbmRvdy5kb2N1bWVudC5kaXNwYXRjaEV2ZW50KG5ldyBEcmFnRXZlbnQoJ2RyYWdsZWF2ZScsIGUpKSwgMTApO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgaWZyYW1lSW5pdChpZnJhbWUgPSB0aGlzLmlmcmFtZSwgb25sb2FkPzogRnVuY3Rpb24pIHtcbiAgICBpZiAoaWZyYW1lKSB7XG4gICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgICAgaWZyYW1lLl9pbml0IHx8IGZyb21FdmVudChpZnJhbWUsICdsb2FkJylcbiAgICAgICAgLnBpcGUodW50aWxEZXN0cm95ZWQodGhpcykpXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHdpbiA9IHRoaXMuc2V0QXBpKGlmcmFtZSk7XG4gICAgICAgICAgb25sb2FkICYmIG9ubG9hZCgpO1xuICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5zZWFyY2hQREYodGhpcy5zZWFyY2hUZXJtLCB3aW4pO1xuICAgICAgICAgICAgdGhpcy5wcmV2ZW50RHJvcEV2ZW50KHdpbik7XG4gICAgICAgICAgfSwgMTAwKTtcbiAgICAgICAgfSk7XG4gICAgICBpZnJhbWUuX2luaXQgPSAhIXRoaXMuc2V0QXBpKGlmcmFtZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXRBcGkoaWZyYW1lOiBhbnkpIHtcbiAgICAvLyBzZXQgYXBpIHRvIGlmcmFtZSB3aW5kb3dcbiAgICBjb25zdCB3aW4gPSBpZnJhbWU/LmNvbnRlbnRXaW5kb3cgfHwgaWZyYW1lO1xuICAgIHdpblsnYXBpJ10gPSB3aW5kb3dbJ2FwaSddO1xuXG4gICAgLy8gZGlzYWJsZSBiZWZvcmV1bmxvYWQgcG9wdXAgKFJlbG9hZCBzaXRlPyBDaGFuZ2VzIHRoYXQgeW91IG1hZGUgbWF5IG5vdCBiZSBzYXZlZC4pXG4gICAgd2luLmFkZEV2ZW50TGlzdGVuZXIoJ2JlZm9yZXVubG9hZCcsIChldmVudDogRXZlbnQpID0+IGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpKTtcblxuICAgIGlmICh3aW5bJ2FwaSddPy5jb250ZW50KSB7XG4gICAgICB3aW5bJ2FwaSddLmNvbnRlbnQucmVzb2x2ZVZpZXdlclBhcmFtcyA9IChwYXJhbWV0ZXJzOiBhbnkpID0+IHtcbiAgICAgICAgY29uc3QgdXJpID0gcGFyYW1ldGVycy5wYXRoLnJlcGxhY2UobG9jYXRpb24ub3JpZ2luLCAnJyk7XG4gICAgICAgIGNvbnN0IHZpZXdlciA9IHRoaXMuZ2V0Vmlld2VyKHt1cmksIG1pbWV0eXBlOiBwYXJhbWV0ZXJzLm1pbWVUeXBlLCBmaWxlRXh0ZW5zaW9uOiBwYXJhbWV0ZXJzLmZpbGVFeHRlbnNpb24sIHVyaVBkZjogdXJpLCBtaW1lZ3JvdXA6ICcnLCBzaXplOiAxfSk7XG4gICAgICAgIHJldHVybiB7dXJpOiB2aWV3ZXIucHJldmlld1VyaSB8fCBwYXJhbWV0ZXJzLnBhdGh9O1xuICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIHdpbjtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICB9XG5cbn1cbiIsIjxkaXYgW2hpZGRlbl09XCIhb3BlblwiPlxuICA8IS0tIGF0dGFjaG1lbnRzIG92ZXJsYXkgLS0+XG4gIDxkaXYgY2xhc3M9XCJhdHRhY2htZW50c1wiICpuZ0lmPVwiYXR0YWNobWVudHM/Lmxlbmd0aFwiXG4gICAgW25nQ2xhc3NdPVwie25vdG1haW46IGxhdGVzdFVyaSAhPT0gcHJldmlld1VyaSAmJiAhYXR0YWNobWVudHNTaG93biwgYWN0aXZlOiBhdHRhY2htZW50c1Nob3dufVwiXG4gICAgKGVvT3V0c2lkZUNsaWNrKT1cImF0dGFjaG1lbnRzU2hvd24gPSBmYWxzZVwiPlxuICAgIDxkaXYgY2xhc3M9XCJhdHRhY2htZW50cy1saXN0XCIgKm5nSWY9XCJhdHRhY2htZW50c1Nob3duXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiYXR0YWNobWVudCBtYWluXCIgKGNsaWNrKT1cInNlbGVjdEF0dGFjaG1lbnQobnVsbClcIiBbbmdDbGFzc109XCJ7Y3VycmVudDogbGF0ZXN0VXJpID09PSBwcmV2aWV3VXJpfVwiPnt7ZG1zT2JqZWN0VGl0bGV9fTwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImF0dGFjaG1lbnRcIiAqbmdGb3I9XCJsZXQgYSBvZiBhdHRhY2htZW50c1wiIChjbGljayk9XCJzZWxlY3RBdHRhY2htZW50KGEpXCIgW25nQ2xhc3NdPVwie2N1cnJlbnQ6IGxhdGVzdFVyaSA9PT0gYS5wcmV2aWV3VXJpfVwiPlxuICAgICAgICB7e2EubmFtZX19XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxlby1pY29uIGNsYXNzPVwiYnV0dG9uXCIgW2JhZGdlXT1cImF0dGFjaG1lbnRzPy5sZW5ndGhcIiAoY2xpY2spPVwiYXR0YWNobWVudHNTaG93biA9ICFhdHRhY2htZW50c1Nob3duXCJcbiAgICAgIFtpY29uU3JjXT1cImF0dGFjaG1lbnRzU2hvd24gPyAnYXNzZXRzL19kZWZhdWx0L3N2Zy9pY19jbGVhci5zdmcnIDogJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfYXR0YWNobWVudC5zdmcnXCI+PC9lby1pY29uPlxuICA8L2Rpdj5cblxuICA8eXZjLXBvcG91dFxuICBbcG9wb3V0V2luZG93Q29uZmlnXT1cInBvcG91dFdpbmRvd0NvbmZpZ1wiXG4gIFt0cmlnZ2VyUG9zaXRpb25dPVwicG9wb3V0VHJpZ2dlclBvc2l0aW9uXCIgW2Rpc2FibGVkXT1cInVuZG9ja0Rpc2FibGVkXCI+XG5cbiAgICA8ZGl2IGNsYXNzPVwicHJldmlldy1jb250YWluZXJcIiBbc3R5bGUub3ZlcmZsb3ddPVwiJ2hpZGRlbidcIj5cbiAgICAgIDxpZnJhbWUgW2hpZGRlbl09XCJpc1VuZG9ja2VkIHx8IGxvYWRpbmdcIiAjaWZyYW1lIGhlaWdodD1cIjEwMCVcIiB3aWR0aD1cIjEwMCVcIiBmcmFtZWJvcmRlcj1cIjBcIj48L2lmcmFtZT5cbiAgICAgIDxkaXYgY2xhc3M9XCJsb2FkZXItb3ZlcmxheV9fbWFza1wiICpuZ0lmPVwibG9hZGluZ1wiPlxuICAgICAgICA8ZW8tbG9hZGluZy1zcGlubmVyIGNsYXNzPVwiaWZyYW1lX19sb2FkZXJcIj48L2VvLWxvYWRpbmctc3Bpbm5lcj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cInNsaWRlXCIgKm5nSWY9XCJpc1VuZG9ja2VkXCI+XG4gICAgICAgIDxlby1pY29uICpuZ0lmPVwibWVkaWFUeXBlXCIgW29iamVjdFR5cGVdPVwibWVkaWFUeXBlXCI+PC9lby1pY29uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwveXZjLXBvcG91dD5cbjwvZGl2PlxuXG48ZGl2IFtoaWRkZW5dPVwib3BlblwiIGNsYXNzPVwiZW1wdHktY29udGFpbmVyXCI+XG4gIDxlby1pY29uIGNsYXNzPVwibm9maWxlXCIgW2ljb25TcmNdPVwiJ2Fzc2V0cy9fZGVmYXVsdC9zdmcvaWNfbm8tZmlsZS5zdmcnXCI+PC9lby1pY29uPlxuPC9kaXY+XG4iXX0=