@bizdoc/core 3.2.8 → 3.2.10

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 (32) hide show
  1. package/assets/themes/brown.min.css +1 -1
  2. package/assets/themes/dark.min.css +1 -1
  3. package/assets/themes/deep-purple-light-blue.min.css +1 -1
  4. package/assets/themes/deep-purple-teal.min.css +1 -1
  5. package/assets/themes/default.min.css +1 -1
  6. package/assets/themes/green.min.css +1 -1
  7. package/assets/themes/indigo-amber.min.css +1 -1
  8. package/assets/themes/indigo.min.css +1 -1
  9. package/esm2022/lib/admin/form/workflow/workflow.component.mjs +3 -2
  10. package/esm2022/lib/bizdoc.module.mjs +25 -15
  11. package/esm2022/lib/compose/trace/flow.component.mjs +3 -3
  12. package/esm2022/lib/compose/version-compare/version-compare.directive.mjs +30 -32
  13. package/esm2022/lib/core/configuration.mjs +1 -1
  14. package/esm2022/lib/core/slots/slots.component.mjs +8 -6
  15. package/esm2022/lib/core/tagging/edit-input.component.mjs +10 -3
  16. package/esm2022/lib/core/tagging/tagging.component-base.mjs +1 -1
  17. package/esm2022/lib/core/tagging/tagging.directive.mjs +3 -4
  18. package/esm2022/lib/core/window-title.service.mjs +7 -3
  19. package/esm2022/lib/mobile.module.mjs +5 -3
  20. package/esm2022/lib/modules/diagram.module.mjs +9 -5
  21. package/esm2022/lib/routes.mobile.mjs +3 -4
  22. package/fesm2022/bizdoc-core.mjs +90 -63
  23. package/fesm2022/bizdoc-core.mjs.map +1 -1
  24. package/lib/bizdoc.module.d.ts +6 -7
  25. package/lib/core/configuration.d.ts +3 -0
  26. package/lib/core/functions.d.ts +1 -1
  27. package/lib/core/slots/slots.component.d.ts +1 -0
  28. package/lib/core/tagging/edit-input.component.d.ts +7 -3
  29. package/lib/core/tagging/tagging.component-base.d.ts +1 -1
  30. package/lib/core/window-title.service.d.ts +1 -0
  31. package/lib/routes.mobile.d.ts +1 -1
  32. package/package.json +1 -1
@@ -95,7 +95,7 @@ export class CompareNameDirective extends CompareDirectiveBase {
95
95
  get structure() { return this._structure; }
96
96
  get base() { return this._base ? this._base[this._name[0]] : null; }
97
97
  get version() { return this._version[this._name[0]]; }
98
- get state() { return this._state; }
98
+ get state() { return this._state || CompareState.Unchanged; }
99
99
  ;
100
100
  constructor(_comparision, _context, _group, _translate, _cd, _dom, _element) {
101
101
  super();
@@ -106,7 +106,6 @@ export class CompareNameDirective extends CompareDirectiveBase {
106
106
  this._cd = _cd;
107
107
  this._dom = _dom;
108
108
  this._element = _element;
109
- this._state = CompareState.Unchanged;
110
109
  }
111
110
  ngOnInit() {
112
111
  if (!this._comparision)
@@ -173,40 +172,39 @@ export class CompareNameDirective extends CompareDirectiveBase {
173
172
  }
174
173
  i++;
175
174
  }
176
- if (this._state !== CompareState.Unchanged)
177
- switch (this._state) {
178
- case CompareState.Removed:
179
- // detect with base value(s)
175
+ switch (this._state) {
176
+ case CompareState.Removed:
177
+ // detect with base value(s)
178
+ setTimeout(() => {
179
+ this._cd.detectChanges();
180
+ this._decorate('removed', 'Deleted');
181
+ Object.assign(this._version, versionData);
182
+ });
183
+ break;
184
+ case CompareState.Added:
185
+ this._decorate('added', 'Added');
186
+ break;
187
+ case CompareState.Modified:
188
+ {
189
+ const versionHTML = this._element.nativeElement.innerHTML;
190
+ // this._cd.markForCheck();
180
191
  setTimeout(() => {
192
+ // detect again with base value(s)
181
193
  this._cd.detectChanges();
182
- this._decorate('removed', 'Deleted');
194
+ const originalHTML = this._element.nativeElement.innerHTML;
195
+ // restore version html
196
+ this._element.nativeElement.innerHTML = versionHTML;
197
+ const labelEl = this._decorate('modified', 'Modified');
198
+ const el = document.createElement('span');
199
+ el.className = 'original';
200
+ el.innerHTML = originalHTML; //this._dom.sanitize();
201
+ labelEl.append(el);
202
+ // restore version value(s)
183
203
  Object.assign(this._version, versionData);
184
204
  });
185
205
  break;
186
- case CompareState.Added:
187
- this._decorate('added', 'Added');
188
- break;
189
- case CompareState.Modified:
190
- {
191
- const versionHTML = this._element.nativeElement.innerHTML;
192
- // this._cd.markForCheck();
193
- setTimeout(() => {
194
- // detect again with base value(s)
195
- this._cd.detectChanges();
196
- const originalHTML = this._element.nativeElement.innerHTML;
197
- // restore version html
198
- this._element.nativeElement.innerHTML = versionHTML;
199
- const labelEl = this._decorate('modified', 'Modified');
200
- const el = document.createElement('span');
201
- el.className = 'original';
202
- el.innerHTML = originalHTML; //this._dom.sanitize();
203
- labelEl.append(el);
204
- // restore version value(s)
205
- Object.assign(this._version, versionData);
206
- });
207
- break;
208
- }
209
- }
206
+ }
207
+ }
210
208
  }
211
209
  _decorate(className, label) {
212
210
  this._element.nativeElement.classList.add('compare', className);
@@ -342,4 +340,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImpor
342
340
  type: Input,
343
341
  args: ['bizdocCompareDecorate']
344
342
  }] } });
345
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi1jb21wYXJlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9jb21wb3NlL3ZlcnNpb24tY29tcGFyZS92ZXJzaW9uLWNvbXBhcmUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFzQixRQUFRLEVBQUUsSUFBSSxFQUFvQyxRQUFRLEVBQWlDLE1BQU0sZUFBZSxDQUFDO0FBRWhLLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7QUFLaEQsSUFBSyxZQUtKO0FBTEQsV0FBSyxZQUFZO0lBQ2Ysc0RBQVksQ0FBQTtJQUNaLHlEQUFhLENBQUE7SUFDYixpREFBUyxDQUFBO0lBQ1QsdURBQVksQ0FBQTtBQUNkLENBQUMsRUFMSSxZQUFZLEtBQVosWUFBWSxRQUtoQjtBQUVELE1BQU0sT0FBZ0Isb0JBQW9CO0NBSXpDO0FBQ0QsTUFBTTtBQUVOLE1BQU0sT0FDRSxxQkFBc0IsU0FBUSxvQkFBb0I7SUFNeEQsSUFBVyxTQUFTLEtBQWdCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7SUFDN0QsSUFBVyxJQUFJLEtBQVUsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUM1RSxJQUFXLE9BQU8sS0FBVSxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM5RCxJQUFXLElBQUksS0FBZSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xELFlBQ3NCLFlBQXFDLEVBQzdCLFFBQWlDLEVBQ3JCLE9BQThCO1FB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QVM7bUJBQUMsRUFBRSxRQUFRLEVBQUUsd0NBQXdDLEVBQUUsUUFBUSxFQUFFLGVBQWUsRUFBRTs7MEJBWXZGLFFBQVE7OzBCQUNSLFFBQVE7OzBCQUFJLElBQUk7OzBCQUVoQixRQUFRO2tFQVhtQixTQUFTO3NCQUF0QyxLQUFLO3VCQUFDLGlCQUFpQjtnQkFDVyxPQUFPO3NCQUF6QyxLQUFLO3VCQUFDLHNCQUFzQjtnQkFFRyxRQUFRO3NCQUF2QyxLQUFLO3VCQUFDLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElucHV0LCBEaXJlY3RpdmUsIE9uSW5pdCwgRWxlbWVudFJlZiwgT3B0aW9uYWwsIEhvc3QsIEFmdGVyVmlld0luaXQsIENoYW5nZURldGVjdG9yUmVmLCBTa2lwU2VsZiwgVmlld0NvbnRhaW5lclJlZiwgVGVtcGxhdGVSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIgfSBmcm9tIFwiQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3NlclwiO1xyXG5pbXBvcnQgeyBpc09iamVjdCB9IGZyb20gXCIuLi8uLi9jb3JlL2Z1bmN0aW9uc1wiO1xyXG5pbXBvcnQgeyBGaWVsZEluZm8gfSBmcm9tIFwiLi4vLi4vY29yZS9tb2RlbHNcIjtcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gXCIuLi8uLi9jb3JlL3RyYW5zbGF0ZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFZlcnNpb25Db21wYXJlQ29tcG9uZW50IH0gZnJvbSBcIi4vdmVyc2lvbi1jb21wYXJlLmNvbXBvbmVudFwiO1xyXG5cclxuZW51bSBDb21wYXJlU3RhdGUge1xyXG4gIFJlbW92ZWQgPSAtMSxcclxuICBVbmNoYW5nZWQgPSAwLFxyXG4gIEFkZGVkID0gMSxcclxuICBNb2RpZmllZCA9IDJcclxufVxyXG5cclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIENvbXBhcmVEaXJlY3RpdmVCYXNlIHtcclxuICBhYnN0cmFjdCBnZXQgYmFzZSgpOiBhbnk7XHJcbiAgYWJzdHJhY3QgZ2V0IHZlcnNpb24oKTogYW55O1xyXG4gIGFic3RyYWN0IGdldCBzdHJ1Y3R1cmUoKTogRmllbGRJbmZvO1xyXG59XHJcbi8qKiAqL1xyXG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICdbYml6ZG9jQ29tcGFyZUdyb3VwXSxbYml6ZG9jQ29tcGFyZUFycmF5XScgfSlcclxuZXhwb3J0XHJcbiAgY2xhc3MgQ29tcGFyZUdyb3VwRGlyZWN0aXZlIGV4dGVuZHMgQ29tcGFyZURpcmVjdGl2ZUJhc2UgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBJbnB1dCgnYml6ZG9jQ29tcGFyZUdyb3VwJykgbmFtZTogc3RyaW5nO1xyXG4gIHByaXZhdGUgX2tleXM6IHN0cmluZ1tdO1xyXG4gIHByaXZhdGUgX3N0cnVjdHVyZTogRmllbGRJbmZvO1xyXG4gIHByaXZhdGUgX2Jhc2U6IGFueTtcclxuICBwcml2YXRlIF92ZXJzaW9uOiBhbnk7XHJcbiAgcHVibGljIGdldCBzdHJ1Y3R1cmUoKTogRmllbGRJbmZvIHsgcmV0dXJuIHRoaXMuX3N0cnVjdHVyZTsgfVxyXG4gIHB1YmxpYyBnZXQgYmFzZSgpOiBhbnkgeyByZXR1cm4gdGhpcy5fYmFzZSA/IHRoaXMuX2Jhc2VbdGhpcy5uYW1lXSA6IG51bGw7IH1cclxuICBwdWJsaWMgZ2V0IHZlcnNpb24oKTogYW55IHsgcmV0dXJuIHRoaXMuX3ZlcnNpb25bdGhpcy5uYW1lXTsgfVxyXG4gIHB1YmxpYyBnZXQga2V5cygpOiBzdHJpbmdbXSB7IHJldHVybiB0aGlzLl9rZXlzOyB9XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIF9jb21wYXJpc2lvbjogVmVyc2lvbkNvbXBhcmVDb21wb25lbnQsXHJcbiAgICBAT3B0aW9uYWwoKSBASG9zdCgpIHByaXZhdGUgX2NvbnRleHQ6IENvbXBhcmVDb250ZXh0RGlyZWN0aXZlLFxyXG4gICAgQE9wdGlvbmFsKCkgQEhvc3QoKSBAU2tpcFNlbGYoKSBwcml2YXRlIF9wYXJlbnQ6IENvbXBhcmVHcm91cERpcmVjdGl2ZSkge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuX2NvbXBhcmlzaW9uKSByZXR1cm47XHJcbiAgICBpZiAodGhpcy5fY29udGV4dCkge1xyXG4gICAgICBjb25zdCB7IGJhc2UsIHN0cnVjdHVyZSwgdmVyc2lvbiB9ID0gdGhpcy5fY29udGV4dDtcclxuICAgICAgdGhpcy5fc3RydWN0dXJlID0gc3RydWN0dXJlLmNvbnRyb2xzIS5maW5kKGUgPT4gZS5uYW1lID09PSB0aGlzLm5hbWUpITtcclxuICAgICAgdGhpcy5fYmFzZSA9IGJhc2U7XHJcbiAgICAgIHRoaXMuX3ZlcnNpb24gPSB2ZXJzaW9uO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAodGhpcy5fcGFyZW50KSB7XHJcbiAgICAgIGNvbnN0IHsgYmFzZSwgc3RydWN0dXJlLCB2ZXJzaW9uIH0gPSB0aGlzLl9wYXJlbnQ7XHJcbiAgICAgIHRoaXMuX3N0cnVjdHVyZSA9IHN0cnVjdHVyZS5jb250cm9scyEuZmluZChlID0+IGUubmFtZSA9PT0gdGhpcy5uYW1lKSE7XHJcbiAgICAgIHRoaXMuX2Jhc2UgPSBiYXNlO1xyXG4gICAgICB0aGlzLl92ZXJzaW9uID0gdmVyc2lvbjtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICBjb25zdCB7IGZvcm0sIGN1cnJlbnRWZXJzaW9uLCBiYXNlVmVyc2lvbiB9ID0gdGhpcy5fY29tcGFyaXNpb247XHJcbiAgICAgIHRoaXMuX3N0cnVjdHVyZSA9IGZvcm0uZmllbGRzIS5maW5kKGUgPT4gZS5uYW1lID09PSB0aGlzLm5hbWUpITtcclxuICAgICAgdGhpcy5fYmFzZSA9IGJhc2VWZXJzaW9uO1xyXG4gICAgICB0aGlzLl92ZXJzaW9uID0gY3VycmVudFZlcnNpb247XHJcbiAgICB9XHJcbiAgICBpZiAoIXRoaXMuX3N0cnVjdHVyZSkgdGhyb3cgYE5vIGZvcm0gZmllbGQgd2l0aCBuYW1lICR7dGhpcy5uYW1lfWA7XHJcbiAgICBpZiAoIXRoaXMuX3N0cnVjdHVyZS5mbGFncyB8fCB0aGlzLl9zdHJ1Y3R1cmUuZmxhZ3MuaW5kZXhPZignSXNPYmplY3QnKSA8IDApIHRocm93IGBiaXpkb2NDb21wYXJlR3JvdXAgJHt0aGlzLm5hbWV9IG5vdCBhbiBvYmplY3QuYDtcclxuICAgIGlmICh0aGlzLl9zdHJ1Y3R1cmUuZmxhZ3MgJiYgdGhpcy5zdHJ1Y3R1cmUuZmxhZ3MhLmluZGV4T2YoJ0lzQXJyYXknKSA+IC0xKSB7XHJcbiAgICAgIHRoaXMuX2tleXMgPSB0aGlzLnN0cnVjdHVyZS5jb250cm9scyEuZmlsdGVyKGMgPT4gYy5mbGFncyAmJiBjLmZsYWdzLmluZGV4T2YoJ0tleScpID4gLTEpLm1hcChrID0+IGsubmFtZSk7XHJcbiAgICAgICh0aGlzLmJhc2UgYXMgYW55W10pLmZvckVhY2goKGI6IGFueSwgaTogYW55KSA9PiAhKHRoaXMudmVyc2lvbiBhcyBhbnlbXSkuZmluZCh2ID0+IHRoaXMuX2tleXMuZXZlcnkoayA9PiB2W2tdID09PSBiW2tdKSkgLyogZG9lc24ndCBoYXZlIGEgdmVyc2lvbiAqLyAmJlxyXG4gICAgICAgIHRoaXMudmVyc2lvbi5zcGxpY2UoaSwgMCwgT2JqZWN0LmFzc2lnbih7IF9jb21wYXJlOiBDb21wYXJlU3RhdGUuUmVtb3ZlZCB9LCBiKSkpO1xyXG4gICAgICAodGhpcy52ZXJzaW9uIGFzIGFueVtdKS5mb3JFYWNoKHYgPT4ge1xyXG4gICAgICAgIGlmICh2WydfY29tcGFyZSddID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgIGNvbnN0IGJhc2UgPSAodGhpcy5iYXNlIGFzIGFueVtdKS5maW5kKGIgPT4gdGhpcy5fa2V5cy5ldmVyeShrID0+IGJba10gPT09IHZba10pKTtcclxuICAgICAgICAgIGlmICghYmFzZSlcclxuICAgICAgICAgICAgdlsnX2NvbXBhcmUnXSA9IENvbXBhcmVTdGF0ZS5BZGRlZDtcclxuICAgICAgICAgIGVsc2UgaWYgKEpTT04uc3RyaW5naWZ5KHYpICE9PSBKU09OLnN0cmluZ2lmeShiYXNlKSlcclxuICAgICAgICAgICAgdlsnX2NvbXBhcmUnXSA9IENvbXBhcmVTdGF0ZS5Nb2RpZmllZDtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4vKiogKi9cclxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnW2JpemRvY0NvbXBhcmVOYW1lXScgfSlcclxuZXhwb3J0XHJcbiAgY2xhc3MgQ29tcGFyZU5hbWVEaXJlY3RpdmUgZXh0ZW5kcyBDb21wYXJlRGlyZWN0aXZlQmFzZSBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgcHJpdmF0ZSBfbmFtZTogc3RyaW5nW107XHJcbiAgQElucHV0KCdiaXpkb2NDb21wYXJlTmFtZScpIHNldCBuYW1lKHZhbDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl9uYW1lID0gdmFsLnNwbGl0KCcsJyk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX3N0cnVjdHVyZTogRmllbGRJbmZvO1xyXG4gIHByaXZhdGUgX2Jhc2U6IGFueTtcclxuICBwcml2YXRlIF92ZXJzaW9uOiBhbnk7XHJcbiAgcHJpdmF0ZSBfc3RhdGU6IENvbXBhcmVTdGF0ZSA9IENvbXBhcmVTdGF0ZS5VbmNoYW5nZWQ7XHJcbiAgcHVibGljIGdldCBzdHJ1Y3R1cmUoKTogRmllbGRJbmZvIHsgcmV0dXJuIHRoaXMuX3N0cnVjdHVyZTsgfVxyXG4gIHB1YmxpYyBnZXQgYmFzZSgpOiBhbnkgeyByZXR1cm4gdGhpcy5fYmFzZSA/IHRoaXMuX2Jhc2VbdGhpcy5fbmFtZVswXV0gOiBudWxsOyB9XHJcbiAgcHVibGljIGdldCB2ZXJzaW9uKCk6IGFueSB7IHJldHVybiB0aGlzLl92ZXJzaW9uW3RoaXMuX25hbWVbMF1dOyB9XHJcbiAgZ2V0IHN0YXRlKCk6IENvbXBhcmVTdGF0ZSB7IHJldHVybiB0aGlzLl9zdGF0ZSB9O1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBfY29tcGFyaXNpb246IFZlcnNpb25Db21wYXJlQ29tcG9uZW50LFxyXG4gICAgQE9wdGlvbmFsKCkgQEhvc3QoKSBwcml2YXRlIF9jb250ZXh0OiBDb21wYXJlQ29udGV4dERpcmVjdGl2ZSxcclxuICAgIEBPcHRpb25hbCgpIEBIb3N0KCkgcHJpdmF0ZSBfZ3JvdXA6IENvbXBhcmVHcm91cERpcmVjdGl2ZSxcclxuICAgIHByaXZhdGUgX3RyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcclxuICAgIHByaXZhdGUgX2NkOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgX2RvbTogRG9tU2FuaXRpemVyLFxyXG4gICAgcHJpdmF0ZSBfZWxlbWVudDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4pIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLl9jb21wYXJpc2lvbikgcmV0dXJuO1xyXG4gICAgaWYgKHRoaXMuX2NvbnRleHQpIHtcclxuICAgICAgdGhpcy5fc3RydWN0dXJlID0gdGhpcy5fY29udGV4dC5zdHJ1Y3R1cmUuY29udHJvbHMhLmZpbmQoZSA9PiBlLm5hbWUgPT09IHRoaXMuX25hbWVbMF0pITtcclxuICAgICAgdGhpcy5fYmFzZSA9IHRoaXMuX2NvbnRleHQuYmFzZTtcclxuICAgICAgdGhpcy5fdmVyc2lvbiA9IHRoaXMuX2NvbnRleHQudmVyc2lvbjtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKHRoaXMuX2dyb3VwKSB7XHJcbiAgICAgIHRoaXMuX3N0cnVjdHVyZSA9IHRoaXMuX2dyb3VwLnN0cnVjdHVyZS5jb250cm9scyEuZmluZChlID0+IGUubmFtZSA9PT0gdGhpcy5fbmFtZVswXSkhO1xyXG4gICAgICB0aGlzLl9iYXNlID0gdGhpcy5fZ3JvdXAuYmFzZTtcclxuICAgICAgdGhpcy5fdmVyc2lvbiA9IHRoaXMuX2dyb3VwLnZlcnNpb247XHJcbiAgICAgIGlmICghdGhpcy5fc3RydWN0dXJlKSB0aHJvdyBgTm8gZm9ybSBmaWVsZCB3aXRoIG5hbWUgJHt0aGlzLl9uYW1lWzBdfWA7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5fc3RydWN0dXJlID0gdGhpcy5fY29tcGFyaXNpb24uZm9ybS5maWVsZHMhLmZpbmQoZSA9PiBlLm5hbWUgPT09IHRoaXMuX25hbWVbMF0pITtcclxuICAgICAgY29uc3QgeyBjdXJyZW50VmVyc2lvbiwgYmFzZVZlcnNpb24gfSA9IHRoaXMuX2NvbXBhcmlzaW9uO1xyXG4gICAgICB0aGlzLl9iYXNlID0gYmFzZVZlcnNpb247XHJcbiAgICAgIHRoaXMuX3ZlcnNpb24gPSBjdXJyZW50VmVyc2lvbjtcclxuICAgIH1cclxuICB9XHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLl9jb21wYXJpc2lvbikgcmV0dXJuO1xyXG4gICAgLy8gaWYgb2JqZWN0IGhhcyBzdGF0ZVxyXG4gICAgY29uc3Qgc3RhdGUgPSB0aGlzLl92ZXJzaW9uWydfY29tcGFyZSddO1xyXG4gICAgaWYgKHN0YXRlICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgc3dpdGNoIChzdGF0ZSkge1xyXG4gICAgICAgIGNhc2UgQ29tcGFyZVN0YXRlLlJlbW92ZWQ6XHJcbiAgICAgICAgICB0aGlzLl9kZWNvcmF0ZSgncmVtb3ZlZCcsICdEZWxldGVkJyk7XHJcbiAgICAgICAgICB0aGlzLl9zdGF0ZSA9IHN0YXRlO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIGNhc2UgQ29tcGFyZVN0YXRlLkFkZGVkOlxyXG4gICAgICAgICAgdGhpcy5fZGVjb3JhdGUoJ2FkZGVkJywgJ0FkZGVkJyk7XHJcbiAgICAgICAgICB0aGlzLl9zdGF0ZSA9IHN0YXRlO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBjb25zdCB2ZXJzaW9uRGF0YTogeyBbZmllbGQ6IHN0cmluZ106IGFueSB9ID0ge307XHJcbiAgICAvLyBpdGVyYXRlIG5hbWVzXHJcbiAgICBsZXQgbmFtZTogc3RyaW5nLCBpID0gMDtcclxuICAgIHdoaWxlIChpIDwgdGhpcy5fbmFtZS5sZW5ndGgpIHtcclxuICAgICAgbmFtZSA9IHRoaXMuX25hbWVbaV07XHJcbiAgICAgIGlmICghdGhpcy5fYmFzZSkge1xyXG4gICAgICAgIGlmICh0aGlzLl92ZXJzaW9uW25hbWVdICE9PSB1bmRlZmluZWQpXHJcbiAgICAgICAgICB0aGlzLl9zdGF0ZSA9IENvbXBhcmVTdGF0ZS5BZGRlZDtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIGlmICh0aGlzLl92ZXJzaW9uW25hbWVdICE9PSB0aGlzLl9iYXNlW25hbWVdKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuX3ZlcnNpb25bbmFtZV0gPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgdGhpcy5fdmVyc2lvbltuYW1lXSA9IHRoaXMuX2Jhc2VbbmFtZV07XHJcbiAgICAgICAgICB2ZXJzaW9uRGF0YVtuYW1lXSA9IHVuZGVmaW5lZDtcclxuICAgICAgICAgIHRoaXMuX3N0YXRlID0gQ29tcGFyZVN0YXRlLlJlbW92ZWQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKHRoaXMuX2Jhc2VbbmFtZV0gPT09IHVuZGVmaW5lZClcclxuICAgICAgICAgIHRoaXMuX3N0YXRlID0gQ29tcGFyZVN0YXRlLkFkZGVkO1xyXG4gICAgICAgIGVsc2UgaWYgKEpTT04uc3RyaW5naWZ5KHRoaXMuX3ZlcnNpb25bbmFtZV0pICE9PSBKU09OLnN0cmluZ2lmeSh0aGlzLl9iYXNlW25hbWVdKSkge1xyXG4gICAgICAgICAgLy8gc3RvcmUgdmVyc2lvbiBkYXRhXHJcbiAgICAgICAgICB2ZXJzaW9uRGF0YVtuYW1lXSA9IHRoaXMuX3ZlcnNpb25bbmFtZV07XHJcbiAgICAgICAgICB0aGlzLl92ZXJzaW9uW25hbWVdID0gdGhpcy5fYmFzZVtuYW1lXTtcclxuICAgICAgICAgIHRoaXMuX3N0YXRlID0gQ29tcGFyZVN0YXRlLk1vZGlmaWVkO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpKys7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5fc3RhdGUgIT09IENvbXBhcmVTdGF0ZS5VbmNoYW5nZWQpXHJcbiAgICAgIHN3aXRjaCAodGhpcy5fc3RhdGUpIHtcclxuICAgICAgICBjYXNlIENvbXBhcmVTdGF0ZS5SZW1vdmVkOlxyXG4gICAgICAgICAgLy8gZGV0ZWN0IHdpdGggYmFzZSB2YWx1ZShzKVxyXG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuX2NkLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICAgICAgdGhpcy5fZGVjb3JhdGUoJ3JlbW92ZWQnLCAnRGVsZXRlZCcpO1xyXG4gICAgICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMuX3ZlcnNpb24sIHZlcnNpb25EYXRhKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBDb21wYXJlU3RhdGUuQWRkZWQ6XHJcbiAgICAgICAgICB0aGlzLl9kZWNvcmF0ZSgnYWRkZWQnLCAnQWRkZWQnKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgQ29tcGFyZVN0YXRlLk1vZGlmaWVkOlxyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICBjb25zdCB2ZXJzaW9uSFRNTCA9IHRoaXMuX2VsZW1lbnQubmF0aXZlRWxlbWVudC5pbm5lckhUTUw7XHJcbiAgICAgICAgICAgIC8vICAgICAgICAgICAgdGhpcy5fY2QubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgIC8vIGRldGVjdCBhZ2FpbiB3aXRoIGJhc2UgdmFsdWUocylcclxuICAgICAgICAgICAgICB0aGlzLl9jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgICAgICAgY29uc3Qgb3JpZ2luYWxIVE1MID0gdGhpcy5fZWxlbWVudC5uYXRpdmVFbGVtZW50LmlubmVySFRNTDtcclxuICAgICAgICAgICAgICAvLyByZXN0b3JlIHZlcnNpb24gaHRtbFxyXG4gICAgICAgICAgICAgIHRoaXMuX2VsZW1lbnQubmF0aXZlRWxlbWVudC5pbm5lckhUTUwgPSB2ZXJzaW9uSFRNTDtcclxuICAgICAgICAgICAgICBjb25zdCBsYWJlbEVsID0gdGhpcy5fZGVjb3JhdGUoJ21vZGlmaWVkJywgJ01vZGlmaWVkJyk7XHJcbiAgICAgICAgICAgICAgY29uc3QgZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XHJcbiAgICAgICAgICAgICAgZWwuY2xhc3NOYW1lID0gJ29yaWdpbmFsJztcclxuICAgICAgICAgICAgICBlbC5pbm5lckhUTUwgPSBvcmlnaW5hbEhUTUw7IC8vdGhpcy5fZG9tLnNhbml0aXplKCk7XHJcbiAgICAgICAgICAgICAgbGFiZWxFbC5hcHBlbmQoZWwpO1xyXG4gICAgICAgICAgICAgIC8vIHJlc3RvcmUgdmVyc2lvbiB2YWx1ZShzKVxyXG4gICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5fdmVyc2lvbiwgdmVyc2lvbkRhdGEpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICB9XHJcbiAgICAgIH1cclxuICB9XHJcbiAgcHJpdmF0ZSBfZGVjb3JhdGUoY2xhc3NOYW1lOiBzdHJpbmcsIGxhYmVsOiBzdHJpbmcpOiBIVE1MRWxlbWVudCB7XHJcbiAgICB0aGlzLl9lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZCgnY29tcGFyZScsIGNsYXNzTmFtZSk7XHJcbiAgICBjb25zdCBsYWJlbENvbnRhaW5lckVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcbiAgICBsYWJlbENvbnRhaW5lckVsLmNsYXNzTmFtZSA9ICdsYWJlbCc7XHJcbiAgICBjb25zdCBsYWJlbEVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xyXG4gICAgbGFiZWxFbC5pbm5lclRleHQgPSB0aGlzLl90cmFuc2xhdGUuZ2V0KGxhYmVsKTtcclxuICAgIGxhYmVsQ29udGFpbmVyRWwuYXBwZW5kKGxhYmVsRWwpO1xyXG4gICAgdGhpcy5fZWxlbWVudC5uYXRpdmVFbGVtZW50LmFwcGVuZENoaWxkKGxhYmVsQ29udGFpbmVyRWwpO1xyXG4gICAgcmV0dXJuIGxhYmVsRWw7XHJcbiAgfVxyXG59XHJcbi8qKiAqL1xyXG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICdbYml6ZG9jQ29tcGFyZUNvbnRleHRdLFtiaXpkb2NDb21wYXJlXScsIGV4cG9ydEFzOiAnYml6ZG9jQ29tcGFyZScgfSlcclxuZXhwb3J0XHJcbiAgY2xhc3MgQ29tcGFyZUNvbnRleHREaXJlY3RpdmUgZXh0ZW5kcyBDb21wYXJlRGlyZWN0aXZlQmFzZSBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgcHJpdmF0ZSBfdmVyc2lvbjogYW55O1xyXG4gIEBJbnB1dCgnYml6ZG9jQ29tcGFyZU9mJykgc2V0IGNvbXBhcmVPZih2YWw6IHt9KSB7IHRoaXMuX3ZlcnNpb24gPSB2YWw7IH1cclxuICBASW5wdXQoJ2JpemRvY0NvbXBhcmVDb250ZXh0Jykgc2V0IGNvbnRleHQodmFsOiB7fSkgeyB0aGlzLl92ZXJzaW9uID0gdmFsOyB9XHJcbiAgZ2V0IHZlcnNpb24oKTogYW55IHsgcmV0dXJuIHRoaXMuX3ZlcnNpb247IH1cclxuICBASW5wdXQoJ2JpemRvY0NvbXBhcmVEZWNvcmF0ZScpIGRlY29yYXRlOiAnZ3JvdXAnIHwgJ3NpbmdsZScgfCAndGFibGUnO1xyXG4gIHByaXZhdGUgX2Jhc2U6IHt9O1xyXG4gIHB1YmxpYyBnZXQgYmFzZSgpOiB7fSB7IHJldHVybiB0aGlzLl9iYXNlOyB9XHJcbiAgcHVibGljIGdldCBzdHJ1Y3R1cmUoKTogRmllbGRJbmZvIHsgcmV0dXJuIHRoaXMuX2dyb3VwLnN0cnVjdHVyZTsgfVxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBfY29tcGFyaXNpb246IFZlcnNpb25Db21wYXJlQ29tcG9uZW50LFxyXG4gICAgQE9wdGlvbmFsKCkgQEhvc3QoKSBwcml2YXRlIF9ncm91cDogQ29tcGFyZUdyb3VwRGlyZWN0aXZlLFxyXG4gICAgcHJpdmF0ZSBfdmM6IFZpZXdDb250YWluZXJSZWYsXHJcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIF90ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PixcclxuICAgIHByaXZhdGUgX2VsZW1lbnQ6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+KSB7XHJcbiAgICBzdXBlcigpO1xyXG4gICAgdGhpcy5kZWNvcmF0ZSA9IF9lbGVtZW50Lm5hdGl2ZUVsZW1lbnQudGFnTmFtZSA9PT0gJ1RSJyA/ICd0YWJsZScgOiAnZ3JvdXAnO1xyXG4gIH1cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLl9jb21wYXJpc2lvbikge1xyXG4gICAgICBpZiAoIXRoaXMuX2dyb3VwKSB0aHJvdyBgTWlzc2luZyBlbmNsb3NpbmcgYml6ZG9jQ29tcGFyZUdyb3VwIGRpcmVjdGl2ZWA7XHJcbiAgICAgIGlmICghaXNPYmplY3QodGhpcy52ZXJzaW9uKSkgdGhyb3cgYFtiaXpkb2NDb21wYXJlQ29udGV4dF0gc3ludGF4YDtcclxuICAgICAgdGhpcy5fYmFzZSA9ICh0aGlzLl9ncm91cC5iYXNlIGFzIGFueVtdKS5maW5kKGIgPT4gdGhpcy5fZ3JvdXAua2V5cy5ldmVyeShrID0+IGJba10gPT09IHRoaXMuX3ZlcnNpb25ba10pKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLl90ZW1wbGF0ZSkge1xyXG4gICAgICB0aGlzLl92Yy5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy5fdGVtcGxhdGUsIHtcclxuICAgICAgICAkaW1wbGljaXQ6IHRoaXMuX2Jhc2VcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5fY29tcGFyaXNpb24pIHJldHVybjtcclxuICAgIHN3aXRjaCAodGhpcy5kZWNvcmF0ZSkge1xyXG4gICAgICBjYXNlICd0YWJsZSc6XHJcbiAgICAgICAgdGhpcy5fdGFibGUoKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnZ3JvdXAnOlxyXG4gICAgICAgIHRoaXMuX2NvbGxhcHNlKCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8qKiAqL1xyXG4gIHByaXZhdGUgX3RhYmxlKCkge1xyXG4gICAgbGV0IGNsYXNzTmFtZTogc3RyaW5nO1xyXG4gICAgc3dpdGNoICh0aGlzLl92ZXJzaW9uWydfY29tcGFyZSddIGFzIENvbXBhcmVTdGF0ZSkge1xyXG4gICAgICBjYXNlIENvbXBhcmVTdGF0ZS5BZGRlZDpcclxuICAgICAgICBjbGFzc05hbWUgPSAnYWRkZWQnO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIENvbXBhcmVTdGF0ZS5SZW1vdmVkOlxyXG4gICAgICAgIGNsYXNzTmFtZSA9ICdyZW1vdmVkJztcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBDb21wYXJlU3RhdGUuTW9kaWZpZWQ6XHJcbiAgICAgICAgY2xhc3NOYW1lID0gJ21vZGlmaWVkJztcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICAgIHRoaXMuX2VsZW1lbnQubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKCdjb21wYXJlJywgY2xhc3NOYW1lISk7XHJcbiAgfVxyXG4gIC8qKiByZW1vdmVzIHJlcGVhdGVkIGFkZGVkIGFuZCByZW1vdmVkIHRhZ3MgKi9cclxuICBwcml2YXRlIF9jb2xsYXBzZSgpIHtcclxuICAgIGNvbnN0IGVscyA9IHRoaXMuX2VsZW1lbnQubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50IS5xdWVyeVNlbGVjdG9yQWxsKCcuY29tcGFyZScpO1xyXG4gICAgbGV0IHByZXZTdGF0ZTogQ29tcGFyZVN0YXRlID0gQ29tcGFyZVN0YXRlLlVuY2hhbmdlZDtcclxuICAgIGZvciAobGV0IGkgPSBlbHMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcclxuICAgICAgY29uc3QgZWwgPSBlbHNbaV07XHJcbiAgICAgIGxldCBzdGF0ZTogQ29tcGFyZVN0YXRlO1xyXG4gICAgICBpZiAoZWwuY2xhc3NMaXN0LmNvbnRhaW5zKCdhZGRlZCcpKVxyXG4gICAgICAgIHN0YXRlID0gQ29tcGFyZVN0YXRlLkFkZGVkO1xyXG4gICAgICBlbHNlIGlmIChlbC5jbGFzc0xpc3QuY29udGFpbnMoJ3JlbW92ZWQnKSlcclxuICAgICAgICBzdGF0ZSA9IENvbXBhcmVTdGF0ZS5SZW1vdmVkO1xyXG4gICAgICBlbHNlIHtcclxuICAgICAgICBzdGF0ZSA9IENvbXBhcmVTdGF0ZS5VbmNoYW5nZWQ7XHJcbiAgICAgICAgY29udGludWU7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHByZXZTdGF0ZSA9PT0gc3RhdGUpIHtcclxuICAgICAgICBjb25zdCBsYWJlbEVsID0gZWwucXVlcnlTZWxlY3RvcignLmxhYmVsJyk7XHJcbiAgICAgICAgbGFiZWxFbCAmJiBsYWJlbEVsLnJlbW92ZSgpO1xyXG4gICAgICB9XHJcbiAgICAgIHByZXZTdGF0ZSA9IHN0YXRlO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
343
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi1jb21wYXJlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9jb21wb3NlL3ZlcnNpb24tY29tcGFyZS92ZXJzaW9uLWNvbXBhcmUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFzQixRQUFRLEVBQUUsSUFBSSxFQUFvQyxRQUFRLEVBQWlDLE1BQU0sZUFBZSxDQUFDO0FBRWhLLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7QUFLaEQsSUFBSyxZQUtKO0FBTEQsV0FBSyxZQUFZO0lBQ2Ysc0RBQVksQ0FBQTtJQUNaLHlEQUFhLENBQUE7SUFDYixpREFBUyxDQUFBO0lBQ1QsdURBQVksQ0FBQTtBQUNkLENBQUMsRUFMSSxZQUFZLEtBQVosWUFBWSxRQUtoQjtBQUVELE1BQU0sT0FBZ0Isb0JBQW9CO0NBSXpDO0FBQ0QsTUFBTTtBQUVOLE1BQU0sT0FDRSxxQkFBc0IsU0FBUSxvQkFBb0I7SUFNeEQsSUFBVyxTQUFTLEtBQWdCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7SUFDN0QsSUFBVyxJQUFJLEtBQVUsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUM1RSxJQUFXLE9BQU8sS0FBVSxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM5RCxJQUFXLElBQUksS0FBZSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xELFlBQ3NCLFlBQXFDLEVBQzdCLFFBQWlDLEVBQ3JCLE9BQThCO1FB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QVE7OzBCQUNSLFFBQVE7OzBCQUFJLElBQUk7OzBCQUVoQixRQUFRO2tFQVhtQixTQUFTO3NCQUF0QyxLQUFLO3VCQUFDLGlCQUFpQjtnQkFDVyxPQUFPO3NCQUF6QyxLQUFLO3VCQUFDLHNCQUFzQjtnQkFFRyxRQUFRO3NCQUF2QyxLQUFLO3VCQUFDLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElucHV0LCBEaXJlY3RpdmUsIE9uSW5pdCwgRWxlbWVudFJlZiwgT3B0aW9uYWwsIEhvc3QsIEFmdGVyVmlld0luaXQsIENoYW5nZURldGVjdG9yUmVmLCBTa2lwU2VsZiwgVmlld0NvbnRhaW5lclJlZiwgVGVtcGxhdGVSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIgfSBmcm9tIFwiQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3NlclwiO1xyXG5pbXBvcnQgeyBpc09iamVjdCB9IGZyb20gXCIuLi8uLi9jb3JlL2Z1bmN0aW9uc1wiO1xyXG5pbXBvcnQgeyBGaWVsZEluZm8gfSBmcm9tIFwiLi4vLi4vY29yZS9tb2RlbHNcIjtcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gXCIuLi8uLi9jb3JlL3RyYW5zbGF0ZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFZlcnNpb25Db21wYXJlQ29tcG9uZW50IH0gZnJvbSBcIi4vdmVyc2lvbi1jb21wYXJlLmNvbXBvbmVudFwiO1xyXG5cclxuZW51bSBDb21wYXJlU3RhdGUge1xyXG4gIFJlbW92ZWQgPSAtMSxcclxuICBVbmNoYW5nZWQgPSAwLFxyXG4gIEFkZGVkID0gMSxcclxuICBNb2RpZmllZCA9IDJcclxufVxyXG5cclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIENvbXBhcmVEaXJlY3RpdmVCYXNlIHtcclxuICBhYnN0cmFjdCBnZXQgYmFzZSgpOiBhbnk7XHJcbiAgYWJzdHJhY3QgZ2V0IHZlcnNpb24oKTogYW55O1xyXG4gIGFic3RyYWN0IGdldCBzdHJ1Y3R1cmUoKTogRmllbGRJbmZvO1xyXG59XHJcbi8qKiAqL1xyXG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICdbYml6ZG9jQ29tcGFyZUdyb3VwXSxbYml6ZG9jQ29tcGFyZUFycmF5XScgfSlcclxuZXhwb3J0XHJcbiAgY2xhc3MgQ29tcGFyZUdyb3VwRGlyZWN0aXZlIGV4dGVuZHMgQ29tcGFyZURpcmVjdGl2ZUJhc2UgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBJbnB1dCgnYml6ZG9jQ29tcGFyZUdyb3VwJykgbmFtZTogc3RyaW5nO1xyXG4gIHByaXZhdGUgX2tleXM6IHN0cmluZ1tdO1xyXG4gIHByaXZhdGUgX3N0cnVjdHVyZTogRmllbGRJbmZvO1xyXG4gIHByaXZhdGUgX2Jhc2U6IGFueTtcclxuICBwcml2YXRlIF92ZXJzaW9uOiBhbnk7XHJcbiAgcHVibGljIGdldCBzdHJ1Y3R1cmUoKTogRmllbGRJbmZvIHsgcmV0dXJuIHRoaXMuX3N0cnVjdHVyZTsgfVxyXG4gIHB1YmxpYyBnZXQgYmFzZSgpOiBhbnkgeyByZXR1cm4gdGhpcy5fYmFzZSA/IHRoaXMuX2Jhc2VbdGhpcy5uYW1lXSA6IG51bGw7IH1cclxuICBwdWJsaWMgZ2V0IHZlcnNpb24oKTogYW55IHsgcmV0dXJuIHRoaXMuX3ZlcnNpb25bdGhpcy5uYW1lXTsgfVxyXG4gIHB1YmxpYyBnZXQga2V5cygpOiBzdHJpbmdbXSB7IHJldHVybiB0aGlzLl9rZXlzOyB9XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIF9jb21wYXJpc2lvbjogVmVyc2lvbkNvbXBhcmVDb21wb25lbnQsXHJcbiAgICBAT3B0aW9uYWwoKSBASG9zdCgpIHByaXZhdGUgX2NvbnRleHQ6IENvbXBhcmVDb250ZXh0RGlyZWN0aXZlLFxyXG4gICAgQE9wdGlvbmFsKCkgQEhvc3QoKSBAU2tpcFNlbGYoKSBwcml2YXRlIF9wYXJlbnQ6IENvbXBhcmVHcm91cERpcmVjdGl2ZSkge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuX2NvbXBhcmlzaW9uKSByZXR1cm47XHJcbiAgICBpZiAodGhpcy5fY29udGV4dCkge1xyXG4gICAgICBjb25zdCB7IGJhc2UsIHN0cnVjdHVyZSwgdmVyc2lvbiB9ID0gdGhpcy5fY29udGV4dDtcclxuICAgICAgdGhpcy5fc3RydWN0dXJlID0gc3RydWN0dXJlLmNvbnRyb2xzIS5maW5kKGUgPT4gZS5uYW1lID09PSB0aGlzLm5hbWUpITtcclxuICAgICAgdGhpcy5fYmFzZSA9IGJhc2U7XHJcbiAgICAgIHRoaXMuX3ZlcnNpb24gPSB2ZXJzaW9uO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAodGhpcy5fcGFyZW50KSB7XHJcbiAgICAgIGNvbnN0IHsgYmFzZSwgc3RydWN0dXJlLCB2ZXJzaW9uIH0gPSB0aGlzLl9wYXJlbnQ7XHJcbiAgICAgIHRoaXMuX3N0cnVjdHVyZSA9IHN0cnVjdHVyZS5jb250cm9scyEuZmluZChlID0+IGUubmFtZSA9PT0gdGhpcy5uYW1lKSE7XHJcbiAgICAgIHRoaXMuX2Jhc2UgPSBiYXNlO1xyXG4gICAgICB0aGlzLl92ZXJzaW9uID0gdmVyc2lvbjtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICBjb25zdCB7IGZvcm0sIGN1cnJlbnRWZXJzaW9uLCBiYXNlVmVyc2lvbiB9ID0gdGhpcy5fY29tcGFyaXNpb247XHJcbiAgICAgIHRoaXMuX3N0cnVjdHVyZSA9IGZvcm0uZmllbGRzIS5maW5kKGUgPT4gZS5uYW1lID09PSB0aGlzLm5hbWUpITtcclxuICAgICAgdGhpcy5fYmFzZSA9IGJhc2VWZXJzaW9uO1xyXG4gICAgICB0aGlzLl92ZXJzaW9uID0gY3VycmVudFZlcnNpb247XHJcbiAgICB9XHJcbiAgICBpZiAoIXRoaXMuX3N0cnVjdHVyZSkgdGhyb3cgYE5vIGZvcm0gZmllbGQgd2l0aCBuYW1lICR7dGhpcy5uYW1lfWA7XHJcbiAgICBpZiAoIXRoaXMuX3N0cnVjdHVyZS5mbGFncyB8fCB0aGlzLl9zdHJ1Y3R1cmUuZmxhZ3MuaW5kZXhPZignSXNPYmplY3QnKSA8IDApIHRocm93IGBiaXpkb2NDb21wYXJlR3JvdXAgJHt0aGlzLm5hbWV9IG5vdCBhbiBvYmplY3QuYDtcclxuICAgIGlmICh0aGlzLl9zdHJ1Y3R1cmUuZmxhZ3MgJiYgdGhpcy5zdHJ1Y3R1cmUuZmxhZ3MhLmluZGV4T2YoJ0lzQXJyYXknKSA+IC0xKSB7XHJcbiAgICAgIHRoaXMuX2tleXMgPSB0aGlzLnN0cnVjdHVyZS5jb250cm9scyEuZmlsdGVyKGMgPT4gYy5mbGFncyAmJiBjLmZsYWdzLmluZGV4T2YoJ0tleScpID4gLTEpLm1hcChrID0+IGsubmFtZSk7XHJcbiAgICAgICh0aGlzLmJhc2UgYXMgYW55W10pLmZvckVhY2goKGI6IGFueSwgaTogYW55KSA9PiAhKHRoaXMudmVyc2lvbiBhcyBhbnlbXSkuZmluZCh2ID0+IHRoaXMuX2tleXMuZXZlcnkoayA9PiB2W2tdID09PSBiW2tdKSkgLyogZG9lc24ndCBoYXZlIGEgdmVyc2lvbiAqLyAmJlxyXG4gICAgICAgIHRoaXMudmVyc2lvbi5zcGxpY2UoaSwgMCwgT2JqZWN0LmFzc2lnbih7IF9jb21wYXJlOiBDb21wYXJlU3RhdGUuUmVtb3ZlZCB9LCBiKSkpO1xyXG4gICAgICAodGhpcy52ZXJzaW9uIGFzIGFueVtdKS5mb3JFYWNoKHYgPT4ge1xyXG4gICAgICAgIGlmICh2WydfY29tcGFyZSddID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgIGNvbnN0IGJhc2UgPSAodGhpcy5iYXNlIGFzIGFueVtdKS5maW5kKGIgPT4gdGhpcy5fa2V5cy5ldmVyeShrID0+IGJba10gPT09IHZba10pKTtcclxuICAgICAgICAgIGlmICghYmFzZSlcclxuICAgICAgICAgICAgdlsnX2NvbXBhcmUnXSA9IENvbXBhcmVTdGF0ZS5BZGRlZDtcclxuICAgICAgICAgIGVsc2UgaWYgKEpTT04uc3RyaW5naWZ5KHYpICE9PSBKU09OLnN0cmluZ2lmeShiYXNlKSlcclxuICAgICAgICAgICAgdlsnX2NvbXBhcmUnXSA9IENvbXBhcmVTdGF0ZS5Nb2RpZmllZDtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4vKiogKi9cclxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnW2JpemRvY0NvbXBhcmVOYW1lXScgfSlcclxuZXhwb3J0XHJcbiAgY2xhc3MgQ29tcGFyZU5hbWVEaXJlY3RpdmUgZXh0ZW5kcyBDb21wYXJlRGlyZWN0aXZlQmFzZSBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgcHJpdmF0ZSBfbmFtZTogc3RyaW5nW107XHJcbiAgQElucHV0KCdiaXpkb2NDb21wYXJlTmFtZScpIHNldCBuYW1lKHZhbDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl9uYW1lID0gdmFsLnNwbGl0KCcsJyk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX3N0cnVjdHVyZTogRmllbGRJbmZvO1xyXG4gIHByaXZhdGUgX2Jhc2U6IGFueTtcclxuICBwcml2YXRlIF92ZXJzaW9uOiBhbnk7XHJcbiAgcHJpdmF0ZSBfc3RhdGU6IENvbXBhcmVTdGF0ZSB8IHVuZGVmaW5lZDtcclxuICBwdWJsaWMgZ2V0IHN0cnVjdHVyZSgpOiBGaWVsZEluZm8geyByZXR1cm4gdGhpcy5fc3RydWN0dXJlOyB9XHJcbiAgcHVibGljIGdldCBiYXNlKCk6IGFueSB7IHJldHVybiB0aGlzLl9iYXNlID8gdGhpcy5fYmFzZVt0aGlzLl9uYW1lWzBdXSA6IG51bGw7IH1cclxuICBwdWJsaWMgZ2V0IHZlcnNpb24oKTogYW55IHsgcmV0dXJuIHRoaXMuX3ZlcnNpb25bdGhpcy5fbmFtZVswXV07IH1cclxuICBnZXQgc3RhdGUoKTogQ29tcGFyZVN0YXRlIHsgcmV0dXJuIHRoaXMuX3N0YXRlIHx8IENvbXBhcmVTdGF0ZS5VbmNoYW5nZWQgfTtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgX2NvbXBhcmlzaW9uOiBWZXJzaW9uQ29tcGFyZUNvbXBvbmVudCxcclxuICAgIEBPcHRpb25hbCgpIEBIb3N0KCkgcHJpdmF0ZSBfY29udGV4dDogQ29tcGFyZUNvbnRleHREaXJlY3RpdmUsXHJcbiAgICBAT3B0aW9uYWwoKSBASG9zdCgpIHByaXZhdGUgX2dyb3VwOiBDb21wYXJlR3JvdXBEaXJlY3RpdmUsXHJcbiAgICBwcml2YXRlIF90cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9jZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIF9kb206IERvbVNhbml0aXplcixcclxuICAgIHByaXZhdGUgX2VsZW1lbnQ6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+KSB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5fY29tcGFyaXNpb24pIHJldHVybjtcclxuICAgIGlmICh0aGlzLl9jb250ZXh0KSB7XHJcbiAgICAgIHRoaXMuX3N0cnVjdHVyZSA9IHRoaXMuX2NvbnRleHQuc3RydWN0dXJlLmNvbnRyb2xzIS5maW5kKGUgPT4gZS5uYW1lID09PSB0aGlzLl9uYW1lWzBdKSE7XHJcbiAgICAgIHRoaXMuX2Jhc2UgPSB0aGlzLl9jb250ZXh0LmJhc2U7XHJcbiAgICAgIHRoaXMuX3ZlcnNpb24gPSB0aGlzLl9jb250ZXh0LnZlcnNpb247XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmICh0aGlzLl9ncm91cCkge1xyXG4gICAgICB0aGlzLl9zdHJ1Y3R1cmUgPSB0aGlzLl9ncm91cC5zdHJ1Y3R1cmUuY29udHJvbHMhLmZpbmQoZSA9PiBlLm5hbWUgPT09IHRoaXMuX25hbWVbMF0pITtcclxuICAgICAgdGhpcy5fYmFzZSA9IHRoaXMuX2dyb3VwLmJhc2U7XHJcbiAgICAgIHRoaXMuX3ZlcnNpb24gPSB0aGlzLl9ncm91cC52ZXJzaW9uO1xyXG4gICAgICBpZiAoIXRoaXMuX3N0cnVjdHVyZSkgdGhyb3cgYE5vIGZvcm0gZmllbGQgd2l0aCBuYW1lICR7dGhpcy5fbmFtZVswXX1gO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuX3N0cnVjdHVyZSA9IHRoaXMuX2NvbXBhcmlzaW9uLmZvcm0uZmllbGRzIS5maW5kKGUgPT4gZS5uYW1lID09PSB0aGlzLl9uYW1lWzBdKSE7XHJcbiAgICAgIGNvbnN0IHsgY3VycmVudFZlcnNpb24sIGJhc2VWZXJzaW9uIH0gPSB0aGlzLl9jb21wYXJpc2lvbjtcclxuICAgICAgdGhpcy5fYmFzZSA9IGJhc2VWZXJzaW9uO1xyXG4gICAgICB0aGlzLl92ZXJzaW9uID0gY3VycmVudFZlcnNpb247XHJcbiAgICB9XHJcbiAgfVxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5fY29tcGFyaXNpb24pIHJldHVybjtcclxuICAgIC8vIGlmIG9iamVjdCBoYXMgc3RhdGVcclxuICAgIGNvbnN0IHN0YXRlID0gdGhpcy5fdmVyc2lvblsnX2NvbXBhcmUnXTtcclxuICAgIGlmIChzdGF0ZSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHN3aXRjaCAoc3RhdGUpIHtcclxuICAgICAgICBjYXNlIENvbXBhcmVTdGF0ZS5SZW1vdmVkOlxyXG4gICAgICAgICAgdGhpcy5fZGVjb3JhdGUoJ3JlbW92ZWQnLCAnRGVsZXRlZCcpO1xyXG4gICAgICAgICAgdGhpcy5fc3RhdGUgPSBzdGF0ZTtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICBjYXNlIENvbXBhcmVTdGF0ZS5BZGRlZDpcclxuICAgICAgICAgIHRoaXMuX2RlY29yYXRlKCdhZGRlZCcsICdBZGRlZCcpO1xyXG4gICAgICAgICAgdGhpcy5fc3RhdGUgPSBzdGF0ZTtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgY29uc3QgdmVyc2lvbkRhdGE6IHsgW2ZpZWxkOiBzdHJpbmddOiBhbnkgfSA9IHt9O1xyXG4gICAgLy8gaXRlcmF0ZSBuYW1lc1xyXG4gICAgbGV0IG5hbWU6IHN0cmluZywgaSA9IDA7XHJcbiAgICB3aGlsZSAoaSA8IHRoaXMuX25hbWUubGVuZ3RoKSB7XHJcbiAgICAgIG5hbWUgPSB0aGlzLl9uYW1lW2ldO1xyXG4gICAgICBpZiAoIXRoaXMuX2Jhc2UpIHtcclxuICAgICAgICBpZiAodGhpcy5fdmVyc2lvbltuYW1lXSAhPT0gdW5kZWZpbmVkKVxyXG4gICAgICAgICAgdGhpcy5fc3RhdGUgPSBDb21wYXJlU3RhdGUuQWRkZWQ7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSBpZiAodGhpcy5fdmVyc2lvbltuYW1lXSAhPT0gdGhpcy5fYmFzZVtuYW1lXSkge1xyXG4gICAgICAgIGlmICh0aGlzLl92ZXJzaW9uW25hbWVdID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgIHRoaXMuX3ZlcnNpb25bbmFtZV0gPSB0aGlzLl9iYXNlW25hbWVdO1xyXG4gICAgICAgICAgdmVyc2lvbkRhdGFbbmFtZV0gPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgICB0aGlzLl9zdGF0ZSA9IENvbXBhcmVTdGF0ZS5SZW1vdmVkO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmICh0aGlzLl9iYXNlW25hbWVdID09PSB1bmRlZmluZWQpXHJcbiAgICAgICAgICB0aGlzLl9zdGF0ZSA9IENvbXBhcmVTdGF0ZS5BZGRlZDtcclxuICAgICAgICBlbHNlIGlmIChKU09OLnN0cmluZ2lmeSh0aGlzLl92ZXJzaW9uW25hbWVdKSAhPT0gSlNPTi5zdHJpbmdpZnkodGhpcy5fYmFzZVtuYW1lXSkpIHtcclxuICAgICAgICAgIC8vIHN0b3JlIHZlcnNpb24gZGF0YVxyXG4gICAgICAgICAgdmVyc2lvbkRhdGFbbmFtZV0gPSB0aGlzLl92ZXJzaW9uW25hbWVdO1xyXG4gICAgICAgICAgdGhpcy5fdmVyc2lvbltuYW1lXSA9IHRoaXMuX2Jhc2VbbmFtZV07XHJcbiAgICAgICAgICB0aGlzLl9zdGF0ZSA9IENvbXBhcmVTdGF0ZS5Nb2RpZmllZDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgaSsrO1xyXG4gICAgfVxyXG4gICAgICBzd2l0Y2ggKHRoaXMuX3N0YXRlKSB7XHJcbiAgICAgICAgY2FzZSBDb21wYXJlU3RhdGUuUmVtb3ZlZDpcclxuICAgICAgICAgIC8vIGRldGVjdCB3aXRoIGJhc2UgdmFsdWUocylcclxuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLl9jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgICAgIHRoaXMuX2RlY29yYXRlKCdyZW1vdmVkJywgJ0RlbGV0ZWQnKTtcclxuICAgICAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLl92ZXJzaW9uLCB2ZXJzaW9uRGF0YSk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgQ29tcGFyZVN0YXRlLkFkZGVkOlxyXG4gICAgICAgICAgdGhpcy5fZGVjb3JhdGUoJ2FkZGVkJywgJ0FkZGVkJyk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIENvbXBhcmVTdGF0ZS5Nb2RpZmllZDpcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgY29uc3QgdmVyc2lvbkhUTUwgPSB0aGlzLl9lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuaW5uZXJIVE1MO1xyXG4gICAgICAgICAgICAvLyAgICAgICAgICAgIHRoaXMuX2NkLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAvLyBkZXRlY3QgYWdhaW4gd2l0aCBiYXNlIHZhbHVlKHMpXHJcbiAgICAgICAgICAgICAgdGhpcy5fY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgICAgICAgIGNvbnN0IG9yaWdpbmFsSFRNTCA9IHRoaXMuX2VsZW1lbnQubmF0aXZlRWxlbWVudC5pbm5lckhUTUw7XHJcbiAgICAgICAgICAgICAgLy8gcmVzdG9yZSB2ZXJzaW9uIGh0bWxcclxuICAgICAgICAgICAgICB0aGlzLl9lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuaW5uZXJIVE1MID0gdmVyc2lvbkhUTUw7XHJcbiAgICAgICAgICAgICAgY29uc3QgbGFiZWxFbCA9IHRoaXMuX2RlY29yYXRlKCdtb2RpZmllZCcsICdNb2RpZmllZCcpO1xyXG4gICAgICAgICAgICAgIGNvbnN0IGVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xyXG4gICAgICAgICAgICAgIGVsLmNsYXNzTmFtZSA9ICdvcmlnaW5hbCc7XHJcbiAgICAgICAgICAgICAgZWwuaW5uZXJIVE1MID0gb3JpZ2luYWxIVE1MOyAvL3RoaXMuX2RvbS5zYW5pdGl6ZSgpO1xyXG4gICAgICAgICAgICAgIGxhYmVsRWwuYXBwZW5kKGVsKTtcclxuICAgICAgICAgICAgICAvLyByZXN0b3JlIHZlcnNpb24gdmFsdWUocylcclxuICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMuX3ZlcnNpb24sIHZlcnNpb25EYXRhKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgfVxyXG4gIHByaXZhdGUgX2RlY29yYXRlKGNsYXNzTmFtZTogc3RyaW5nLCBsYWJlbDogc3RyaW5nKTogSFRNTEVsZW1lbnQge1xyXG4gICAgdGhpcy5fZWxlbWVudC5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoJ2NvbXBhcmUnLCBjbGFzc05hbWUpO1xyXG4gICAgY29uc3QgbGFiZWxDb250YWluZXJFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xyXG4gICAgbGFiZWxDb250YWluZXJFbC5jbGFzc05hbWUgPSAnbGFiZWwnO1xyXG4gICAgY29uc3QgbGFiZWxFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTtcclxuICAgIGxhYmVsRWwuaW5uZXJUZXh0ID0gdGhpcy5fdHJhbnNsYXRlLmdldChsYWJlbCk7XHJcbiAgICBsYWJlbENvbnRhaW5lckVsLmFwcGVuZChsYWJlbEVsKTtcclxuICAgIHRoaXMuX2VsZW1lbnQubmF0aXZlRWxlbWVudC5hcHBlbmRDaGlsZChsYWJlbENvbnRhaW5lckVsKTtcclxuICAgIHJldHVybiBsYWJlbEVsO1xyXG4gIH1cclxufVxyXG4vKiogKi9cclxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnW2JpemRvY0NvbXBhcmVDb250ZXh0XSxbYml6ZG9jQ29tcGFyZV0nLCBleHBvcnRBczogJ2JpemRvY0NvbXBhcmUnIH0pXHJcbmV4cG9ydFxyXG4gIGNsYXNzIENvbXBhcmVDb250ZXh0RGlyZWN0aXZlIGV4dGVuZHMgQ29tcGFyZURpcmVjdGl2ZUJhc2UgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xyXG4gIHByaXZhdGUgX3ZlcnNpb246IGFueTtcclxuICBASW5wdXQoJ2JpemRvY0NvbXBhcmVPZicpIHNldCBjb21wYXJlT2YodmFsOiB7fSkgeyB0aGlzLl92ZXJzaW9uID0gdmFsOyB9XHJcbiAgQElucHV0KCdiaXpkb2NDb21wYXJlQ29udGV4dCcpIHNldCBjb250ZXh0KHZhbDoge30pIHsgdGhpcy5fdmVyc2lvbiA9IHZhbDsgfVxyXG4gIGdldCB2ZXJzaW9uKCk6IGFueSB7IHJldHVybiB0aGlzLl92ZXJzaW9uOyB9XHJcbiAgQElucHV0KCdiaXpkb2NDb21wYXJlRGVjb3JhdGUnKSBkZWNvcmF0ZTogJ2dyb3VwJyB8ICdzaW5nbGUnIHwgJ3RhYmxlJztcclxuICBwcml2YXRlIF9iYXNlOiB7fTtcclxuICBwdWJsaWMgZ2V0IGJhc2UoKToge30geyByZXR1cm4gdGhpcy5fYmFzZTsgfVxyXG4gIHB1YmxpYyBnZXQgc3RydWN0dXJlKCk6IEZpZWxkSW5mbyB7IHJldHVybiB0aGlzLl9ncm91cC5zdHJ1Y3R1cmU7IH1cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgX2NvbXBhcmlzaW9uOiBWZXJzaW9uQ29tcGFyZUNvbXBvbmVudCxcclxuICAgIEBPcHRpb25hbCgpIEBIb3N0KCkgcHJpdmF0ZSBfZ3JvdXA6IENvbXBhcmVHcm91cERpcmVjdGl2ZSxcclxuICAgIHByaXZhdGUgX3ZjOiBWaWV3Q29udGFpbmVyUmVmLFxyXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBfdGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4sXHJcbiAgICBwcml2YXRlIF9lbGVtZW50OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50Pikge1xyXG4gICAgc3VwZXIoKTtcclxuICAgIHRoaXMuZGVjb3JhdGUgPSBfZWxlbWVudC5uYXRpdmVFbGVtZW50LnRhZ05hbWUgPT09ICdUUicgPyAndGFibGUnIDogJ2dyb3VwJztcclxuICB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5fY29tcGFyaXNpb24pIHtcclxuICAgICAgaWYgKCF0aGlzLl9ncm91cCkgdGhyb3cgYE1pc3NpbmcgZW5jbG9zaW5nIGJpemRvY0NvbXBhcmVHcm91cCBkaXJlY3RpdmVgO1xyXG4gICAgICBpZiAoIWlzT2JqZWN0KHRoaXMudmVyc2lvbikpIHRocm93IGBbYml6ZG9jQ29tcGFyZUNvbnRleHRdIHN5bnRheGA7XHJcbiAgICAgIHRoaXMuX2Jhc2UgPSAodGhpcy5fZ3JvdXAuYmFzZSBhcyBhbnlbXSkuZmluZChiID0+IHRoaXMuX2dyb3VwLmtleXMuZXZlcnkoayA9PiBiW2tdID09PSB0aGlzLl92ZXJzaW9uW2tdKSk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5fdGVtcGxhdGUpIHtcclxuICAgICAgdGhpcy5fdmMuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMuX3RlbXBsYXRlLCB7XHJcbiAgICAgICAgJGltcGxpY2l0OiB0aGlzLl9iYXNlXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuX2NvbXBhcmlzaW9uKSByZXR1cm47XHJcbiAgICBzd2l0Y2ggKHRoaXMuZGVjb3JhdGUpIHtcclxuICAgICAgY2FzZSAndGFibGUnOlxyXG4gICAgICAgIHRoaXMuX3RhYmxlKCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2dyb3VwJzpcclxuICAgICAgICB0aGlzLl9jb2xsYXBzZSgpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gIH1cclxuICAvKiogKi9cclxuICBwcml2YXRlIF90YWJsZSgpIHtcclxuICAgIGxldCBjbGFzc05hbWU6IHN0cmluZztcclxuICAgIHN3aXRjaCAodGhpcy5fdmVyc2lvblsnX2NvbXBhcmUnXSBhcyBDb21wYXJlU3RhdGUpIHtcclxuICAgICAgY2FzZSBDb21wYXJlU3RhdGUuQWRkZWQ6XHJcbiAgICAgICAgY2xhc3NOYW1lID0gJ2FkZGVkJztcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBDb21wYXJlU3RhdGUuUmVtb3ZlZDpcclxuICAgICAgICBjbGFzc05hbWUgPSAncmVtb3ZlZCc7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgQ29tcGFyZVN0YXRlLk1vZGlmaWVkOlxyXG4gICAgICAgIGNsYXNzTmFtZSA9ICdtb2RpZmllZCc7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgICB0aGlzLl9lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZCgnY29tcGFyZScsIGNsYXNzTmFtZSEpO1xyXG4gIH1cclxuICAvKiogcmVtb3ZlcyByZXBlYXRlZCBhZGRlZCBhbmQgcmVtb3ZlZCB0YWdzICovXHJcbiAgcHJpdmF0ZSBfY29sbGFwc2UoKSB7XHJcbiAgICBjb25zdCBlbHMgPSB0aGlzLl9lbGVtZW50Lm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudCEucXVlcnlTZWxlY3RvckFsbCgnLmNvbXBhcmUnKTtcclxuICAgIGxldCBwcmV2U3RhdGU6IENvbXBhcmVTdGF0ZSA9IENvbXBhcmVTdGF0ZS5VbmNoYW5nZWQ7XHJcbiAgICBmb3IgKGxldCBpID0gZWxzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XHJcbiAgICAgIGNvbnN0IGVsID0gZWxzW2ldO1xyXG4gICAgICBsZXQgc3RhdGU6IENvbXBhcmVTdGF0ZTtcclxuICAgICAgaWYgKGVsLmNsYXNzTGlzdC5jb250YWlucygnYWRkZWQnKSlcclxuICAgICAgICBzdGF0ZSA9IENvbXBhcmVTdGF0ZS5BZGRlZDtcclxuICAgICAgZWxzZSBpZiAoZWwuY2xhc3NMaXN0LmNvbnRhaW5zKCdyZW1vdmVkJykpXHJcbiAgICAgICAgc3RhdGUgPSBDb21wYXJlU3RhdGUuUmVtb3ZlZDtcclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgc3RhdGUgPSBDb21wYXJlU3RhdGUuVW5jaGFuZ2VkO1xyXG4gICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChwcmV2U3RhdGUgPT09IHN0YXRlKSB7XHJcbiAgICAgICAgY29uc3QgbGFiZWxFbCA9IGVsLnF1ZXJ5U2VsZWN0b3IoJy5sYWJlbCcpO1xyXG4gICAgICAgIGxhYmVsRWwgJiYgbGFiZWxFbC5yZW1vdmUoKTtcclxuICAgICAgfVxyXG4gICAgICBwcmV2U3RhdGUgPSBzdGF0ZTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
@@ -14,4 +14,4 @@ export var OpenPolicy;
14
14
  OpenPolicy[OpenPolicy["Dialog"] = 832] = "Dialog";
15
15
  })(OpenPolicy || (OpenPolicy = {}));
16
16
  export const DEFAULT_POLICY = OpenPolicy.Pane;
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9jb3JlL2NvbmZpZ3VyYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBUSxNQUFNLGVBQWUsQ0FBQztBQU1yRCxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsSUFBSSxjQUFjLENBQWUsUUFBUSxDQUFDLENBQUM7QUF1QnhFLE1BQU0sQ0FBTixJQUFZLFVBV1g7QUFYRCxXQUFZLFVBQVU7SUFDcEIsMkNBQWEsQ0FBQTtJQUNiLDZDQUFjLENBQUE7SUFDZCw2Q0FBYyxDQUFBO0lBQ2QsbURBQWlCLENBQUE7SUFDakIsa0RBQWdCLENBQUE7SUFDaEIsd0RBQW1CLENBQUE7SUFDbkIsMERBQW9CLENBQUE7SUFDcEIsaURBQWUsQ0FBQTtJQUNmLDJDQUFxQyxDQUFBO0lBQ3JDLGlEQUFnQyxDQUFBO0FBQ2xDLENBQUMsRUFYVyxVQUFVLEtBQVYsVUFBVSxRQVdyQjtBQUVELE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4sIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkQXBwZWFyYW5jZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEZvbGRlckNvbHVtbiB9IGZyb20gJy4vbW9kZWxzJztcclxuaW1wb3J0IHsgQmFzZUNvbG9yIH0gZnJvbSAnLi9jb2xvcnMnO1xyXG5cclxuZXhwb3J0IGNvbnN0IEJJWkRPQ19DT05GSUcgPSBuZXcgSW5qZWN0aW9uVG9rZW48Qml6RG9jQ29uZmlnPignYml6ZG9jJyk7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFBhbmVSb3V0ZSB7XHJcbiAgcGF0aDogc3RyaW5nO1xyXG4gIGd1aWRlPzogc3RyaW5nO1xyXG4gIGNvbXBvbmVudD86IFR5cGU8YW55PjtcclxuICByZXNvbHZlPzogeyBba2V5OiBzdHJpbmddOiBUeXBlPFBhbmVSZXNvbHZlPGFueT4+IH07XHJcbiAgY2FuRGlzbWlzcz86IFR5cGU8Q2FuRGlzbWlzczxhbnk+PjtcclxuICBpY29uPzogc3RyaW5nO1xyXG4gIGhlbHA/OiBzdHJpbmc7XHJcbiAgY2hpbGRyZW4/OiBQYW5lUm91dGVbXTtcclxuICBwb2xpY3k/OiBPcGVuUG9saWN5O1xyXG59XHJcblxyXG5leHBvcnQgdHlwZSBQYXJhbU1hcCA9IHsgW2tleTogc3RyaW5nXTogYW55IH07XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFBhbmVSZXNvbHZlPFQ+IHtcclxuICBvblJlc29sdmUocGFyYW1zOiBQYXJhbU1hcCwgcXVlcnlQYXJhbXM/OiBQYXJhbU1hcCk6IE9ic2VydmFibGU8VD4gfCBQcm9taXNlPFQ+IHwgVDtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIENhbkRpc21pc3M8VD4ge1xyXG4gIG9uRGlzbWlzcyhjb21wb25lbnQ6IFQpOiBib29sZWFuIHwgUHJvbWlzZTxib29sZWFuPiB8IE9ic2VydmFibGU8Ym9vbGVhbj47XHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIE9wZW5Qb2xpY3kge1xyXG4gIFBhbmUgPSAxIDw8IDAsXHJcbiAgQ2xlYXIgPSAxIDw8IDEsXHJcbiAgRGVmZXIgPSAxIDw8IDIsXHJcbiAgUGlubmFibGUgPSAxIDw8IDMsXHJcbiAgU3RyZXRjaCA9IDEgPDwgNCxcclxuICBFeHBhbmRhYmxlID0gMSA8PCA1LFxyXG4gIERpc21pc3NhYmxlID0gMSA8PCA2LFxyXG4gIFRvZ2dsZSA9IDEgPDwgNyxcclxuICBUYWIgPSAxIDw8IDggfCBPcGVuUG9saWN5LkRpc21pc3NhYmxlLFxyXG4gIERpYWxvZyA9IDEgPDwgOSB8IE9wZW5Qb2xpY3kuVGFiLFxyXG59XHJcblxyXG5leHBvcnQgY29uc3QgREVGQVVMVF9QT0xJQ1kgPSBPcGVuUG9saWN5LlBhbmU7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEJpekRvY0NoaWxkQ29uZmlnIHtcclxuICBjb21wb25lbnRzOiBUeXBlPGFueT5bXTtcclxuICByb3V0ZXM/OiBQYW5lUm91dGVbXTtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFRoZW1lIHtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgdGl0bGU6IHN0cmluZztcclxuICBwcmltYXJ5OiBCYXNlQ29sb3I7XHJcbiAgYWNjZW50OiBCYXNlQ29sb3I7XHJcbiAgY29sb3I6IHN0cmluZztcclxuICBkYXJrPzogYm9vbGVhbjtcclxufVxyXG5cclxuLyoqIEJpekRvYyBhcHAgb3B0aW9ucyAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIEJpekRvY0NvbmZpZyB7XHJcbiAgYXBwZWFyYW5jZT86IE1hdEZvcm1GaWVsZEFwcGVhcmFuY2U7XHJcbiAgY3VycmVuY3lDb2RlPzogc3RyaW5nO1xyXG4gIC8qKiBhdmFpbGFibGUgdXNlciBpbnRlcmZhY2UgbGFuZ3VhZ2VzICovXHJcbiAgdGhlbWVzPzogVGhlbWVbXTtcclxuICBsYW5ndWFnZXM/OiBzdHJpbmdbXTtcclxuICBhcHBUaXRsZT86IHN0cmluZztcclxuICAvKiogdXJpICovXHJcbiAgYXBwTG9nbz86IHN0cmluZztcclxuICBmaXJlYmFzZT86IEZpcmViYXNlU2V0dGluZ3M7XHJcbiAgY2hhdD86IENoYXRTZXR0aW5ncyB8IGJvb2xlYW47XHJcbiAgY29tbWVudHM/OiBDb21tZW50c1NldHRpbmdzO1xyXG4gIG1hcHM/OiBHb29nbGVNYXBzU2V0dGluZ3MgfCBib29sZWFuO1xyXG4gIGZvcm1hdHM/OiBGb3JtYXRzU2V0dGluZ3M7XHJcbiAgcm91dGVzPzogUGFuZVJvdXRlW107XHJcbiAgY29tcG9uZW50czogVHlwZTxhbnk+W107XHJcbiAgc2NoZWR1bGVyPzogU2NoZWR1bGVyU2V0dGluZ3MgfCBib29sZWFuO1xyXG4gIGZvbGRlcnM/OiBGb2xkZXJzU2V0dGluZ3M7XHJcbiAgYW5hbHlzaXM/OiBBbmFseXNpc1NldHRpbmdzIHwgYm9vbGVhbjtcclxufVxyXG5leHBvcnQgdHlwZSBTY29wZVR5cGUgPSAncGF0dGVybnMnIHwgJ3Bvc2l0aW9ucyc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEFuYWx5c2lzU2V0dGluZ3Mge1xyXG59XHJcbmV4cG9ydFxyXG4gIGludGVyZmFjZSBTY2hlZHVsZXJTZXR0aW5ncyB7XHJcblxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEZvbGRlcnNTZXR0aW5ncyB7XHJcbiAgY3ViZT86IHN0cmluZztcclxuICBheGVzPzogc3RyaW5nW107XHJcbiAgY29sdW1ucz86IEZvbGRlckNvbHVtbltdO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgRm9ybWF0c1NldHRpbmdzIHtcclxuICBkYXRlPzogc3RyaW5nO1xyXG4gIGRhdGVUaW1lPzogc3RyaW5nO1xyXG4gIGZyYWN0aW9uRGlnaXRzPzogbnVtYmVyO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgQ29tbWVudHNTZXR0aW5ncyB7XHJcbiAgcHJlc2VydmVEcmFmdD86IGJvb2xlYW47XHJcbiAgdm90aW5nPzogYm9vbGVhbjtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIENoYXRTZXR0aW5ncyB7XHJcbiAgcHJlc2VydmVEcmFmdD86IGJvb2xlYW47XHJcbiAgYXBwPzogc3RyaW5nIHwgQ2hhdExhdW5jaGVyRm47XHJcbn1cclxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIENoYXRMYXVuY2hlckZuIHtcclxuICAoaWRlbnRpdHk6IHN0cmluZyk6IHZvaWQ7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRmlyZWJhc2VTZXR0aW5ncyB7XHJcbiAgYXBpS2V5OiBzdHJpbmc7XHJcbiAgdmFwaWRLZXk/OiBzdHJpbmc7XHJcbiAgcHJvamVjdElkOiBzdHJpbmc7XHJcbiAgc2VuZGVySWQ6IHN0cmluZztcclxuICBhcHBJZDogc3RyaW5nO1xyXG4gIC8qKiBtaWxsaXNlY29uZGVzIGJlZm9yZSB1c2VyIGlzIHByb21wdCB0byBhcHByb3ZlIHJlY2VpdmluZyBtZXNzYWdlcyAqL1xyXG4gIGdyYWNlPzogbnVtYmVyO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgR29vZ2xlTWFwc1NldHRpbmdzIHtcclxuICBhcGlLZXk6IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBjb25maWd1cmF0aW9uIHsgfVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTaGFyZWRDb25maWcge1xyXG4gIG1hcHM/OiBHb29nbGVNYXBzU2V0dGluZ3MgfCBib29sZWFuO1xyXG4gIGZvcm1hdHM/OiBGb3JtYXRzU2V0dGluZ3M7XHJcbiAgcm91dGVzPzogUGFuZVJvdXRlW107XHJcblxyXG4gIHJvdXRpbmdFbmdpbmU/OiAnbmcnIHwgJ3BhbmUnXHJcbn1cclxuIl19
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9jb3JlL2NvbmZpZ3VyYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBUSxNQUFNLGVBQWUsQ0FBQztBQU1yRCxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsSUFBSSxjQUFjLENBQWUsUUFBUSxDQUFDLENBQUM7QUEwQnhFLE1BQU0sQ0FBTixJQUFZLFVBV1g7QUFYRCxXQUFZLFVBQVU7SUFDcEIsMkNBQWEsQ0FBQTtJQUNiLDZDQUFjLENBQUE7SUFDZCw2Q0FBYyxDQUFBO0lBQ2QsbURBQWlCLENBQUE7SUFDakIsa0RBQWdCLENBQUE7SUFDaEIsd0RBQW1CLENBQUE7SUFDbkIsMERBQW9CLENBQUE7SUFDcEIsaURBQWUsQ0FBQTtJQUNmLDJDQUFxQyxDQUFBO0lBQ3JDLGlEQUFnQyxDQUFBO0FBQ2xDLENBQUMsRUFYVyxVQUFVLEtBQVYsVUFBVSxRQVdyQjtBQUVELE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4sIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkQXBwZWFyYW5jZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEZvbGRlckNvbHVtbiB9IGZyb20gJy4vbW9kZWxzJztcclxuaW1wb3J0IHsgQmFzZUNvbG9yIH0gZnJvbSAnLi9jb2xvcnMnO1xyXG5cclxuZXhwb3J0IGNvbnN0IEJJWkRPQ19DT05GSUcgPSBuZXcgSW5qZWN0aW9uVG9rZW48Qml6RG9jQ29uZmlnPignYml6ZG9jJyk7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFBhbmVSb3V0ZSB7XHJcbiAgcGF0aDogc3RyaW5nO1xyXG4gIHJlZGlyZWN0VG8/OiBzdHJpbmc7XHJcbiAgZ3VpZGU/OiBzdHJpbmc7XHJcbiAgY29tcG9uZW50PzogVHlwZTxhbnk+O1xyXG4gIHJlc29sdmU/OiB7IFtrZXk6IHN0cmluZ106IFR5cGU8UGFuZVJlc29sdmU8YW55Pj4gfTtcclxuICBjYW5EaXNtaXNzPzogVHlwZTxDYW5EaXNtaXNzPGFueT4+O1xyXG4gIGljb24/OiBzdHJpbmc7XHJcbiAgaGVscD86IHN0cmluZztcclxuICBjaGlsZHJlbj86IFBhbmVSb3V0ZVtdO1xyXG4gIHBvbGljeT86IE9wZW5Qb2xpY3k7XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIFJvdXRlRm4gPSAoKSA9PiBzdHJpbmc7XHJcblxyXG5leHBvcnQgdHlwZSBQYXJhbU1hcCA9IHsgW2tleTogc3RyaW5nXTogYW55IH07XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFBhbmVSZXNvbHZlPFQ+IHtcclxuICBvblJlc29sdmUocGFyYW1zOiBQYXJhbU1hcCwgcXVlcnlQYXJhbXM/OiBQYXJhbU1hcCk6IE9ic2VydmFibGU8VD4gfCBQcm9taXNlPFQ+IHwgVDtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIENhbkRpc21pc3M8VD4ge1xyXG4gIG9uRGlzbWlzcyhjb21wb25lbnQ6IFQpOiBib29sZWFuIHwgUHJvbWlzZTxib29sZWFuPiB8IE9ic2VydmFibGU8Ym9vbGVhbj47XHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIE9wZW5Qb2xpY3kge1xyXG4gIFBhbmUgPSAxIDw8IDAsXHJcbiAgQ2xlYXIgPSAxIDw8IDEsXHJcbiAgRGVmZXIgPSAxIDw8IDIsXHJcbiAgUGlubmFibGUgPSAxIDw8IDMsXHJcbiAgU3RyZXRjaCA9IDEgPDwgNCxcclxuICBFeHBhbmRhYmxlID0gMSA8PCA1LFxyXG4gIERpc21pc3NhYmxlID0gMSA8PCA2LFxyXG4gIFRvZ2dsZSA9IDEgPDwgNyxcclxuICBUYWIgPSAxIDw8IDggfCBPcGVuUG9saWN5LkRpc21pc3NhYmxlLFxyXG4gIERpYWxvZyA9IDEgPDwgOSB8IE9wZW5Qb2xpY3kuVGFiLFxyXG59XHJcblxyXG5leHBvcnQgY29uc3QgREVGQVVMVF9QT0xJQ1kgPSBPcGVuUG9saWN5LlBhbmU7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEJpekRvY0NoaWxkQ29uZmlnIHtcclxuICBjb21wb25lbnRzOiBUeXBlPGFueT5bXTtcclxuICByb3V0ZXM/OiBQYW5lUm91dGVbXTtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFRoZW1lIHtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgdGl0bGU6IHN0cmluZztcclxuICBwcmltYXJ5OiBCYXNlQ29sb3I7XHJcbiAgYWNjZW50OiBCYXNlQ29sb3I7XHJcbiAgY29sb3I6IHN0cmluZztcclxuICBkYXJrPzogYm9vbGVhbjtcclxufVxyXG5cclxuLyoqIEJpekRvYyBhcHAgb3B0aW9ucyAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIEJpekRvY0NvbmZpZyB7XHJcbiAgYXBwZWFyYW5jZT86IE1hdEZvcm1GaWVsZEFwcGVhcmFuY2U7XHJcbiAgY3VycmVuY3lDb2RlPzogc3RyaW5nO1xyXG4gIC8qKiBhdmFpbGFibGUgdXNlciBpbnRlcmZhY2UgbGFuZ3VhZ2VzICovXHJcbiAgdGhlbWVzPzogVGhlbWVbXTtcclxuICBsYW5ndWFnZXM/OiBzdHJpbmdbXTtcclxuICBhcHBUaXRsZT86IHN0cmluZztcclxuICAvKiogdXJpICovXHJcbiAgYXBwTG9nbz86IHN0cmluZztcclxuICBmaXJlYmFzZT86IEZpcmViYXNlU2V0dGluZ3M7XHJcbiAgY2hhdD86IENoYXRTZXR0aW5ncyB8IGJvb2xlYW47XHJcbiAgY29tbWVudHM/OiBDb21tZW50c1NldHRpbmdzO1xyXG4gIG1hcHM/OiBHb29nbGVNYXBzU2V0dGluZ3MgfCBib29sZWFuO1xyXG4gIGZvcm1hdHM/OiBGb3JtYXRzU2V0dGluZ3M7XHJcbiAgZGVmYXVsdFJvdXRlPzogc3RyaW5nIHwgUm91dGVGbjtcclxuICByb3V0ZXM/OiBQYW5lUm91dGVbXTtcclxuICBjb21wb25lbnRzOiBUeXBlPGFueT5bXTtcclxuICBzY2hlZHVsZXI/OiBTY2hlZHVsZXJTZXR0aW5ncyB8IGJvb2xlYW47XHJcbiAgZm9sZGVycz86IEZvbGRlcnNTZXR0aW5ncztcclxuICBhbmFseXNpcz86IEFuYWx5c2lzU2V0dGluZ3MgfCBib29sZWFuO1xyXG59XHJcbmV4cG9ydCB0eXBlIFNjb3BlVHlwZSA9ICdwYXR0ZXJucycgfCAncG9zaXRpb25zJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQW5hbHlzaXNTZXR0aW5ncyB7XHJcbn1cclxuZXhwb3J0XHJcbiAgaW50ZXJmYWNlIFNjaGVkdWxlclNldHRpbmdzIHtcclxuXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRm9sZGVyc1NldHRpbmdzIHtcclxuICBjdWJlPzogc3RyaW5nO1xyXG4gIGF4ZXM/OiBzdHJpbmdbXTtcclxuICBjb2x1bW5zPzogRm9sZGVyQ29sdW1uW107XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBGb3JtYXRzU2V0dGluZ3Mge1xyXG4gIGRhdGU/OiBzdHJpbmc7XHJcbiAgZGF0ZVRpbWU/OiBzdHJpbmc7XHJcbiAgZnJhY3Rpb25EaWdpdHM/OiBudW1iZXI7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBDb21tZW50c1NldHRpbmdzIHtcclxuICBwcmVzZXJ2ZURyYWZ0PzogYm9vbGVhbjtcclxuICB2b3Rpbmc/OiBib29sZWFuO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgQ2hhdFNldHRpbmdzIHtcclxuICBwcmVzZXJ2ZURyYWZ0PzogYm9vbGVhbjtcclxuICBhcHA/OiBzdHJpbmcgfCBDaGF0TGF1bmNoZXJGbjtcclxufVxyXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQ2hhdExhdW5jaGVyRm4ge1xyXG4gIChpZGVudGl0eTogc3RyaW5nKTogdm9pZDtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBGaXJlYmFzZVNldHRpbmdzIHtcclxuICBhcGlLZXk6IHN0cmluZztcclxuICB2YXBpZEtleT86IHN0cmluZztcclxuICBwcm9qZWN0SWQ6IHN0cmluZztcclxuICBzZW5kZXJJZDogc3RyaW5nO1xyXG4gIGFwcElkOiBzdHJpbmc7XHJcbiAgLyoqIG1pbGxpc2Vjb25kZXMgYmVmb3JlIHVzZXIgaXMgcHJvbXB0IHRvIGFwcHJvdmUgcmVjZWl2aW5nIG1lc3NhZ2VzICovXHJcbiAgZ3JhY2U/OiBudW1iZXI7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBHb29nbGVNYXBzU2V0dGluZ3Mge1xyXG4gIGFwaUtleTogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIGNvbmZpZ3VyYXRpb24geyB9XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNoYXJlZENvbmZpZyB7XHJcbiAgbWFwcz86IEdvb2dsZU1hcHNTZXR0aW5ncyB8IGJvb2xlYW47XHJcbiAgZm9ybWF0cz86IEZvcm1hdHNTZXR0aW5ncztcclxuICByb3V0ZXM/OiBQYW5lUm91dGVbXTtcclxuXHJcbiAgcm91dGluZ0VuZ2luZT86ICduZycgfCAncGFuZSdcclxufVxyXG4iXX0=