@coolon/angular-ui-powerups 16.1.0-alpha.301 → 16.1.0-alpha.303

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.
@@ -72,8 +72,11 @@ export class PopupMenuRendererComponent extends DisposableComponent {
72
72
  }
73
73
  executeCommand(data) {
74
74
  if (this.isCommand(data)) {
75
- data.command.execute().finally(() => {
75
+ // Not .finally(): zone never reports a rejection that passes through one, which hid real errors
76
+ // from menu commands. A cancel or other handled rejection stays quiet (provideQuietRejections).
77
+ data.command.execute().then(() => this.commandFired.emit(), error => {
76
78
  this.commandFired.emit();
79
+ throw error;
77
80
  });
78
81
  }
79
82
  }
@@ -134,4 +137,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
134
137
  type: ViewChildren,
135
138
  args: [MatMenuTrigger]
136
139
  }] } });
137
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wdXAtbWVudS1yZW5kZXJlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9jb21wb25lbnRzL2NvbW1hbmRzL2dyb3VwL3BvcHVwLW1lbnUvcG9wdXAtbWVudS1yZW5kZXJlci9wb3B1cC1tZW51LXJlbmRlcmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci11aS1wb3dlcnVwcy9zcmMvbGliL2NvbXBvbmVudHMvY29tbWFuZHMvZ3JvdXAvcG9wdXAtbWVudS9wb3B1cC1tZW51LXJlbmRlcmVyL3BvcHVwLW1lbnUtcmVuZGVyZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsc0dBQXNHO0FBQ3RHLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekcsT0FBTyxFQUFDLE9BQU8sRUFBRSxjQUFjLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUMvRCxPQUFPLEVBQVUsbUJBQW1CLEVBQUUsR0FBRyxFQUFhLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0UsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDckUsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sd0RBQXdELENBQUM7QUFDN0YsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQ3hDLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUNsRCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUNwRSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw4QkFBOEIs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QyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUM7SUFDbEQsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFVO1FBQ3BCLE9BQU8sS0FBSyxZQUFZLGtCQUFrQixDQUFDO0lBQzdDLENBQUM7SUFFRCxjQUFjLENBQUMsS0FBVTtRQUN2QixPQUFPLEtBQUssWUFBWSxxQkFBcUIsQ0FBQztJQUNoRCxDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQVU7UUFDbkIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ2xGLENBQUM7SUFFRCxRQUFRLENBQUMsS0FBMEI7UUFDakMsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQ3JGLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDcEIsU0FBUyxDQUFDO0lBQ2QsQ0FBQzt1R0FqSVUsMEJBQTBCOzJGQUExQiwwQkFBMEIsMlFBc0J2QixjQUFjLHVFQzVDOUIsMnJEQW9DQSxva0NEZGEsMEJBQTBCOzsyRkFBMUIsMEJBQTBCO2tCQUp0QyxTQUFTOytCQUNFLHlCQUF5QjswRUFVL0IsTUFBTTtzQkFEVCxLQUFLO2dCQVdOLGFBQWE7c0JBRFosU0FBUzt1QkFBQyxNQUFNLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDO2dCQUlqQyxZQUFZO3NCQURYLE1BQU07Z0JBSVAsUUFBUTtzQkFEUCxZQUFZO3VCQUFDLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55IC0tIHBvcHVwIG1lbnUgcmVuZGVycyBhcmJpdHJhcnkgY29tbWFuZCBzaGFwZXMgKi9cbmltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIFF1ZXJ5TGlzdCwgVmlld0NoaWxkLCBWaWV3Q2hpbGRyZW59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQge01hdE1lbnUsIE1hdE1lbnVUcmlnZ2VyfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudVwiO1xuaW1wb3J0IHtDb21tYW5kLCBEZWxlZ2F0aW5nTGlzdE1vZGVsLCBEc2wsIFZhbHVlTW9kZWx9IGZyb20gXCJAY29vbG9uL3BlY3RpblwiO1xuaW1wb3J0IHtEaXNwb3NhYmxlQ29tcG9uZW50fSBmcm9tIFwiLi4vLi4vLi4vLi4vZGlzcG9zYWJsZS1jb21wb25lbnRcIjtcbmltcG9ydCB7RmlsZURvd25sb2FkQ29tcG9uZW50fSBmcm9tIFwiLi4vLi4vLi4vLi4vZmlsZS9maWxlLWRvd25sb2FkL2ZpbGUtZG93bmxvYWQuY29tcG9uZW50XCI7XG5pbXBvcnQge1RyYWNrfSBmcm9tIFwiLi4vLi4vLi4vLi4vdHJhY2tcIjtcbmltcG9ydCB7Q29tbWFuZEZhY2V9IGZyb20gXCIuLi8uLi8uLi9jb21tYW5kLWZhY2VcIjtcbmltcG9ydCB7Q29tbWFuZENvbXBvbmVudH0gZnJvbSBcIi4uLy4uLy4uL2NvbW1hbmQvY29tbWFuZC5jb21wb25lbnRcIjtcbmltcG9ydCB7U2VwYXJhdG9yQ29tcG9uZW50fSBmcm9tIFwiLi4vLi4vLi4vc2VwYXJhdG9yLmNvbXBvbmVudFwiO1xuaW1wb3J0IHR5cGUge1BvcHVwQXdhcmVDb21wb25lbnR9IGZyb20gXCIuLi8uLi9wb3B1cC1hd2FyZS5jb21wb25lbnRcIjtcbmltcG9ydCB7QWJzdHJhY3RQb3B1cE1lbnVDb21wb25lbnR9IGZyb20gXCIuLi9hYnN0cmFjdC1wb3B1cC1tZW51LmNvbXBvbmVudFwiO1xuaW1wb3J0IHtjb2xsYXBzZU9ycGhhblNlcGFyYXRvcnN9IGZyb20gXCIuL2NvbGxhcHNlLW9ycGhhbi1zZXBhcmF0b3JzXCI7XG5cbi8vIFRPRE86IGNhbiBJIGdldCByaWQgb2YgdGhpcyBhbmQgaGF2ZSBhdXAtY29tbWFuZHMgZXRjIHRlc3QgZm9yIHRoZWlyIGVudmlyb25tZW50IGJ5IGluamVjdGluZyB0aGUgcGFyZW50IE1hdE1lbnUgbGlrZSBJJ3ZlIGRvbmUgaW5cbi8vICAgICAgIHRoZSBGaWxlRG93bmxvYWRDb21wb25lbnQ/ICBUaGlzIHdvdWxkIGdyZWF0bHkgc2ltcGxpZnkgdGhpbmdzIC0gTm90IGVhc2lseSBpdCBzZWVtcyAtIHRoYXQgc3RydWN0dXJlIGRvZXNuJ3QgcmVzdWx0IGluIG1lbnVzIGJlaW5nXG4vLyAgICAgICBuZXN0ZWQgaW4gZWFjaCBvdGhlciBjb3JyZWN0bHkgc28gc3ViIG1lbnVzIGRvbid0IHdvcmsgcHJvcGVybHkgLSBpLmUuIGNsaWNraW5nIG9uIGEgY2hpbGQgaXRlbSBjbG9zZXMgdGhlIHBhcmVudC5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcImF1cC1wb3B1cC1tZW51LXJlbmRlcmVyXCIsXG4gIHRlbXBsYXRlVXJsOiBcIi4vcG9wdXAtbWVudS1yZW5kZXJlci5jb21wb25lbnQuaHRtbFwiXG59KVxuZXhwb3J0IGNsYXNzIFBvcHVwTWVudVJlbmRlcmVyQ29tcG9uZW50IGV4dGVuZHMgRGlzcG9zYWJsZUNvbXBvbmVudCB7XG5cbiAgcHJpdmF0ZSBfcGFyZW50Q29tcG9uZW50OiBBYnN0cmFjdFBvcHVwTWVudUNvbXBvbmVudDtcblxuICBwcml2YXRlIF9jaGlsZExpc3QgPSB0aGlzLnJlZ2lzdGVyRGlzcG9zYWJsZShuZXcgRGVsZWdhdGluZ0xpc3RNb2RlbDxQb3B1cEF3YXJlQ29tcG9uZW50PigpKTtcblxuICBASW5wdXQoKVxuICBnZXQgcGFyZW50KCk6IEFic3RyYWN0UG9wdXBNZW51Q29tcG9uZW50IHtcbiAgICByZXR1cm4gdGhpcy5fcGFyZW50Q29tcG9uZW50O1xuICB9XG5cbiAgc2V0IHBhcmVudChjb21wOiBBYnN0cmFjdFBvcHVwTWVudUNvbXBvbmVudCkge1xuICAgIHRoaXMuX3BhcmVudENvbXBvbmVudCA9IGNvbXA7XG4gICAgdGhpcy5fY2hpbGRMaXN0LnNldERlbGVnYXRlKGNvbXAuY2hpbGRyZW4pO1xuICB9XG5cbiAgQFZpZXdDaGlsZChcIm1lbnVcIiwge3N0YXRpYzogdHJ1ZX0pXG4gIG1lbnVDb21wb25lbnQ6IE1hdE1lbnU7XG5cbiAgQE91dHB1dCgpXG4gIGNvbW1hbmRGaXJlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBAVmlld0NoaWxkcmVuKE1hdE1lbnVUcmlnZ2VyKVxuICB0cmlnZ2VyczogUXVlcnlMaXN0PE1hdE1lbnVUcmlnZ2VyPjtcblxuICByZWFkb25seSBoYXNNaXhlZEljb25zOiBWYWx1ZU1vZGVsPGJvb2xlYW4+O1xuICByZWFkb25seSBjb21tYW5kUHJveHk6IENvbW1hbmQ8dW5rbm93bj47XG5cbiAgVHJhY2tCeSA9IFRyYWNrO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgY29uc3Qge2NoYWluLCB2YWx1ZU9mLCBiZWZvcmUsIHdoZW4sIGFmdGVyLCBvYnNlcnZlLCBzd2l0Y2hPbn0gPSBEc2wuZGlzcG9zZVdpdGgodGhpcyk7XG4gICAgLy8gdGhpcy5jaGlsZHJlbiA9IGNoYWluKHRoaXMuZ3JvdXBWaWV3RGF0YU1vZGVsKS5wbHVja0xpc3QoJ2NoaWxkcmVuJyk7XG4gICAgLy8gdGhpcy5oYXNNaXhlZEljb25zID0gY2hhaW4odGhpcy5ncm91cFZpZXdEYXRhTW9kZWwpLnBsdWNrKCdoYXNNaXhlZEljb25zJyk7XG4gICAgY29uc3QgZmFjZXMgPSBjaGFpbih0aGlzLl9jaGlsZExpc3QpLm1hcChjaGlsZCA9PiB7XG4gICAgICByZXR1cm4gY2hpbGQuZ2V0RmFjZSgpO1xuICAgIH0pLnJlamVjdE5pbCgpO1xuICAgIGNvbnN0IGljb25zID0gZmFjZXMuc2VsZWN0KGZhY2UgPT4gISFDb21tYW5kRmFjZS5nZXRJY29uT2YoZmFjZSkpO1xuICAgIGNvbnN0IGljb25Db3VudCA9IGljb25zLmNvdW50KCk7XG4gICAgY29uc3QgdG90YWxGYWNlcyA9IGZhY2VzLmNvdW50KCk7XG4gICAgdGhpcy5oYXNNaXhlZEljb25zID0gdmFsdWVPZi5hbGwoXG4gICAgICBpY29uQ291bnQuaXNHcmVhdGVyVGhhbigwKSxcbiAgICAgIHRvdGFsRmFjZXMuZG9lc05vdEVxdWFsKGljb25Db3VudClcbiAgICApLmFyZVRydXRoeSgpO1xuICB9XG5cbiAgZ2V0IGNoaWxkcmVuKCk6IHJlYWRvbmx5IFBvcHVwQXdhcmVDb21wb25lbnRbXSB7XG4gICAgcmV0dXJuIHRoaXMucGFyZW50LmNoaWxkcmVuLnZhbHVlO1xuICB9XG5cbiAgLyoqIFRydWUgd2hlbiB0aGUgY2hpbGQgbWF0Y2hlcyBvbmUgb2YgdGhlIHRlbXBsYXRlJ3MgZm91ciBgKm5nSWZgIGJyYW5jaGVzIGFuZCB3aWxsXG4gICAqICBhY3R1YWxseSBwcm9kdWNlIGEgcmVuZGVyZWQgZWxlbWVudC4gRXZlcnl0aGluZyBlbHNlIOKAlCBub3RhYmx5IGBCdXR0b25SZW5kZXJlckNvbXBvbmVudGBcbiAgICogIGVudHJpZXMgdGhhdCBhcHBlYXIgaW4gYGNoaWxkcmVuYCBmb3Igb3RoZXIgcHVycG9zZXMg4oCUIHJlbmRlcnMgYXMgbm90aGluZywgc28gbXVzdCBiZVxuICAgKiAgaWdub3JlZCB3aGVuIGRlY2lkaW5nIHdoZXRoZXIgYSBuZWlnaGJvdXJpbmcgc2VwYXJhdG9yIGhhcyBjb250ZW50IHRvIGRpdmlkZS5cbiAgICovXG4gIHByaXZhdGUgd2lsbFJlbmRlcihjaGlsZDogUG9wdXBBd2FyZUNvbXBvbmVudCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLmlzQ29tbWFuZChjaGlsZCkpIHJldHVybiB0aGlzLmlzQ29tbWFuZFZpc2libGUoY2hpbGQpO1xuICAgIGlmICh0aGlzLmlzUG9wdXBNZW51KGNoaWxkKSkgcmV0dXJuIHRydWU7XG4gICAgaWYgKHRoaXMuaXNGaWxlRG93bmxvYWQoY2hpbGQpKSByZXR1cm4gdHJ1ZTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKiogQ2hpbGRyZW4gd2l0aCBvcnBoYW4gc2VwYXJhdG9ycyBjb2xsYXBzZWQg4oCUIHNlZSBjb2xsYXBzZS1vcnBoYW4tc2VwYXJhdG9ycy50cyBmb3IgdGhlXG4gICAqICBhbGdvcml0aG0gYW5kIGl0cyB1bml0IHRlc3RzLiAqL1xuICBnZXQgcmVuZGVyYWJsZUNoaWxkcmVuKCk6IHJlYWRvbmx5IFBvcHVwQXdhcmVDb21wb25lbnRbXSB7XG4gICAgcmV0dXJuIGNvbGxhcHNlT3JwaGFuU2VwYXJhdG9ycyhcbiAgICAgIHRoaXMuY2hpbGRyZW4sXG4gICAgICBjaGlsZCA9PiB0aGlzLmlzU2VwYXJhdG9yKGNoaWxkKSxcbiAgICAgIGNoaWxkID0+IHRoaXMud2lsbFJlbmRlcihjaGlsZClcbiAgICApO1xuICB9XG5cbiAgZXhlY3V0ZUNvbW1hbmQoZGF0YTogUG9wdXBBd2FyZUNvbXBvbmVudCkge1xuICAgIGlmICh0aGlzLmlzQ29tbWFuZChkYXRhKSkge1xuICAgICAgZGF0YS5jb21tYW5kLmV4ZWN1dGUoKS5maW5hbGx5KCgpID0+IHtcbiAgICAgICAgdGhpcy5jb21tYW5kRmlyZWQuZW1pdCgpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgaXNDb21tYW5kRW5hYmxlZChkYXRhOiBQb3B1cEF3YXJlQ29tcG9uZW50KSB7XG4gICAgcmV0dXJuIHRoaXMuaXNDb21tYW5kKGRhdGEpICYmIGRhdGEuY29tbWFuZC5lbmFibGVkJC52YWx1ZTtcbiAgfVxuXG4gIC8qKiBBIGNvbW1hbmQgd2l0aCBgdmlzaWJsZVdoaWxlKC4uLilgIGZhbHNlIGNvbGxhcHNlcyBvdXQgb2YgdGhlIG1lbnUg4oCUIG1hdGNoZXMgYHZpc2libGVXaGlsZWBcbiAgICogIHNlbWFudGljcyBlbHNld2hlcmUuIFVuZGVmaW5lZCBkZWZhdWx0cyB0byB2aXNpYmxlIHNvIGNhbGxlcnMgdGhhdCBkb24ndCBnYXRlIHN0YXkgdW5jaGFuZ2VkLiAqL1xuICBpc0NvbW1hbmRWaXNpYmxlKGRhdGE6IFBvcHVwQXdhcmVDb21wb25lbnQpIHtcbiAgICByZXR1cm4gIXRoaXMuaXNDb21tYW5kKGRhdGEpIHx8IChkYXRhLmNvbW1hbmQudmlzaWJsZSQudmFsdWUgPz8gdHJ1ZSk7XG4gIH1cblxuICAvLyBAVHJhY2UoKVxuICBvbkNvbW1hbmRGaXJlZCgpIHtcbiAgICB0aGlzLmNvbW1hbmRGaXJlZC5lbWl0KCk7XG4gICAgdGhpcy50cmlnZ2Vycy5mb3JFYWNoKHRyaWdnZXIgPT4ge1xuICAgICAgaWYgKHRyaWdnZXIubWVudU9wZW4pIHtcbiAgICAgICAgdHJpZ2dlci5jbG9zZU1lbnUoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGlzQ29tbWFuZChjaGlsZDogYW55KTogY2hpbGQgaXMgQ29tbWFuZENvbXBvbmVudCB7XG4gICAgcmV0dXJuIGNoaWxkIGluc3RhbmNlb2YgQ29tbWFuZENvbXBvbmVudDtcbiAgfVxuXG4gIGlzUG9wdXBNZW51KGNoaWxkOiBhbnkpOiBjaGlsZCBpcyBBYnN0cmFjdFBvcHVwTWVudUNvbXBvbmVudCB7XG4gICAgcmV0dXJuIGNoaWxkIGluc3RhbmNlb2YgQWJzdHJhY3RQb3B1cE1lbnVDb21wb25lbnQ7XG4gIH1cblxuICBpc1BvcHVwTWVudUVuYWJsZWQoY2hpbGQ6IGFueSk6IGNoaWxkIGlzIEFic3RyYWN0UG9wdXBNZW51Q29tcG9uZW50IHtcbiAgICByZXR1cm4gdGhpcy5pc1BvcHVwTWVudShjaGlsZCkgJiYgY2hpbGQuZW5hYmxlZDtcbiAgfVxuXG4gIGlzU2VwYXJhdG9yKGNoaWxkOiBhbnkpOiBjaGlsZCBpcyBTZXBhcmF0b3JDb21wb25lbnQge1xuICAgIHJldHVybiBjaGlsZCBpbnN0YW5jZW9mIFNlcGFyYXRvckNvbXBvbmVudDtcbiAgfVxuXG4gIGlzRmlsZURvd25sb2FkKGNoaWxkOiBhbnkpOiBjaGlsZCBpcyBGaWxlRG93bmxvYWRDb21wb25lbnQge1xuICAgIHJldHVybiBjaGlsZCBpbnN0YW5jZW9mIEZpbGVEb3dubG9hZENvbXBvbmVudDtcbiAgfVxuXG4gIGdldFRvb2x0aXAoY2hpbGQ6IGFueSkge1xuICAgIHJldHVybiB0aGlzLmlzQ29tbWFuZChjaGlsZCkgPyBDb21tYW5kRmFjZS5nZXRUb29sdGlwT2YoY2hpbGQuZmFjZSkgOiB1bmRlZmluZWQ7XG4gIH1cblxuICBnZXRGYWNlcyhjaGlsZDogUG9wdXBBd2FyZUNvbXBvbmVudCkge1xuICAgIHJldHVybiB0aGlzLmlzQ29tbWFuZChjaGlsZCkgfHwgdGhpcy5pc1BvcHVwTWVudShjaGlsZCkgfHwgdGhpcy5pc0ZpbGVEb3dubG9hZChjaGlsZCkgP1xuICAgICAgY2hpbGQuZmFjZXMkLnZhbHVlIDpcbiAgICAgIHVuZGVmaW5lZDtcbiAgfVxufVxuXG5cbiIsIjxtYXQtbWVudSAjbWVudSBbeFBvc2l0aW9uXT1cInBhcmVudC54UG9zaXRpb25cIiBbeVBvc2l0aW9uXT1cInBhcmVudC55UG9zaXRpb25cIj5cbiAgPG5nLXRlbXBsYXRlIG1hdE1lbnVDb250ZW50PlxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNoaWxkIG9mIHJlbmRlcmFibGVDaGlsZHJlbjsgdHJhY2tCeTogVHJhY2tCeS5ieUluZGV4XCIgPlxuICAgICAgPGJ1dHRvbiAqbmdJZj1cImlzQ29tbWFuZChjaGlsZCkgJiYgaXNDb21tYW5kVmlzaWJsZShjaGlsZClcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiZXhlY3V0ZUNvbW1hbmQoY2hpbGQpXCJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFpc0NvbW1hbmRFbmFibGVkKGNoaWxkKVwiXG4gICAgICAgICAgICAgIFttYXRUb29sdGlwXT1cImdldFRvb2x0aXAoY2hpbGQpXCJcbiAgICAgICAgICAgICAgbWF0LW1lbnUtaXRlbT5cbiAgICAgICAgICAgICAgICA8YXVwLWNvbW1hbmQtZmFjZSBbZmFjZXNdPVwiZ2V0RmFjZXMoY2hpbGQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaW5jbHVkZU1pc3NpbmdJY29uSW5MYXlvdXRdPVwiaGFzTWl4ZWRJY29ucy52YWx1ZVwiPjwvYXVwLWNvbW1hbmQtZmFjZT5cbiAgICAgIDwvYnV0dG9uPlxuXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNQb3B1cE1lbnUoY2hpbGQpXCI+XG4gICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbVxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhaXNQb3B1cE1lbnVFbmFibGVkKGNoaWxkKVwiXG4gICAgICAgICAgICAgICAgW21hdE1lbnVUcmlnZ2VyRm9yXT1cImlubmVyUGFuZWwubWVudUNvbXBvbmVudFwiXG4gICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGF1cC1jb21tYW5kLWZhY2UgW2ZhY2VzXT1cImdldEZhY2VzKGNoaWxkKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpbmNsdWRlTWlzc2luZ0ljb25JbkxheW91dF09XCJoYXNNaXhlZEljb25zLnZhbHVlXCI+PC9hdXAtY29tbWFuZC1mYWNlPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGF1cC1wb3B1cC1tZW51LXJlbmRlcmVyICNpbm5lclBhbmVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGFyZW50XT1cImNoaWxkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb21tYW5kRmlyZWQpPVwib25Db21tYW5kRmlyZWQoKVwiPjwvYXVwLXBvcHVwLW1lbnUtcmVuZGVyZXI+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPCEtLSBIYWNrLi4uIC0tPlxuICAgICAgPGEgKm5nSWY9XCJpc0ZpbGVEb3dubG9hZChjaGlsZClcIiBtYXQtbWVudS1pdGVtIFtocmVmXT1cImNoaWxkLmRvd25sb2FkLnVybFwiIFtkb3dubG9hZF09XCJjaGlsZC5kb3dubG9hZC5zYXZlQXNcIj5cbiAgICAgICAgPGF1cC1jb21tYW5kLWZhY2UgW2ZhY2VzXT1cImdldEZhY2VzKGNoaWxkKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtpbmNsdWRlTWlzc2luZ0ljb25JbkxheW91dF09XCJoYXNNaXhlZEljb25zLnZhbHVlXCI+PC9hdXAtY29tbWFuZC1mYWNlPlxuICAgICAgPC9hPlxuICAgICAgPG1hdC1kaXZpZGVyICpuZ0lmPVwiaXNTZXBhcmF0b3IoY2hpbGQpXCI+PC9tYXQtZGl2aWRlcj5cblxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gIDwvbmctdGVtcGxhdGU+XG48L21hdC1tZW51PlxuIl19
140
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wdXAtbWVudS1yZW5kZXJlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9jb21wb25lbnRzL2NvbW1hbmRzL2dyb3VwL3BvcHVwLW1lbnUvcG9wdXAtbWVudS1yZW5kZXJlci9wb3B1cC1tZW51LXJlbmRlcmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci11aS1wb3dlcnVwcy9zcmMvbGliL2NvbXBvbmVudHMvY29tbWFuZHMvZ3JvdXAvcG9wdXAtbWVudS9wb3B1cC1tZW51LXJlbmRlcmVyL3BvcHVwLW1lbnUtcmVuZGVyZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsc0dBQXNHO0FBQ3RHLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekcsT0FBTyxFQUFDLE9BQU8sRUFBRSxjQUFjLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUMvRCxPQUFPLEVBQVUsbUJBQW1CLEVBQUUsR0FBRyxFQUFhLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0UsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDckUsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sd0RBQXdELENBQUM7QUFDN0YsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQ3hDLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUNsRCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUNwRSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw4QkFBOEIs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WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55IC0tIHBvcHVwIG1lbnUgcmVuZGVycyBhcmJpdHJhcnkgY29tbWFuZCBzaGFwZXMgKi9cbmltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIFF1ZXJ5TGlzdCwgVmlld0NoaWxkLCBWaWV3Q2hpbGRyZW59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQge01hdE1lbnUsIE1hdE1lbnVUcmlnZ2VyfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudVwiO1xuaW1wb3J0IHtDb21tYW5kLCBEZWxlZ2F0aW5nTGlzdE1vZGVsLCBEc2wsIFZhbHVlTW9kZWx9IGZyb20gXCJAY29vbG9uL3BlY3RpblwiO1xuaW1wb3J0IHtEaXNwb3NhYmxlQ29tcG9uZW50fSBmcm9tIFwiLi4vLi4vLi4vLi4vZGlzcG9zYWJsZS1jb21wb25lbnRcIjtcbmltcG9ydCB7RmlsZURvd25sb2FkQ29tcG9uZW50fSBmcm9tIFwiLi4vLi4vLi4vLi4vZmlsZS9maWxlLWRvd25sb2FkL2ZpbGUtZG93bmxvYWQuY29tcG9uZW50XCI7XG5pbXBvcnQge1RyYWNrfSBmcm9tIFwiLi4vLi4vLi4vLi4vdHJhY2tcIjtcbmltcG9ydCB7Q29tbWFuZEZhY2V9IGZyb20gXCIuLi8uLi8uLi9jb21tYW5kLWZhY2VcIjtcbmltcG9ydCB7Q29tbWFuZENvbXBvbmVudH0gZnJvbSBcIi4uLy4uLy4uL2NvbW1hbmQvY29tbWFuZC5jb21wb25lbnRcIjtcbmltcG9ydCB7U2VwYXJhdG9yQ29tcG9uZW50fSBmcm9tIFwiLi4vLi4vLi4vc2VwYXJhdG9yLmNvbXBvbmVudFwiO1xuaW1wb3J0IHR5cGUge1BvcHVwQXdhcmVDb21wb25lbnR9IGZyb20gXCIuLi8uLi9wb3B1cC1hd2FyZS5jb21wb25lbnRcIjtcbmltcG9ydCB7QWJzdHJhY3RQb3B1cE1lbnVDb21wb25lbnR9IGZyb20gXCIuLi9hYnN0cmFjdC1wb3B1cC1tZW51LmNvbXBvbmVudFwiO1xuaW1wb3J0IHtjb2xsYXBzZU9ycGhhblNlcGFyYXRvcnN9IGZyb20gXCIuL2NvbGxhcHNlLW9ycGhhbi1zZXBhcmF0b3JzXCI7XG5cbi8vIFRPRE86IGNhbiBJIGdldCByaWQgb2YgdGhpcyBhbmQgaGF2ZSBhdXAtY29tbWFuZHMgZXRjIHRlc3QgZm9yIHRoZWlyIGVudmlyb25tZW50IGJ5IGluamVjdGluZyB0aGUgcGFyZW50IE1hdE1lbnUgbGlrZSBJJ3ZlIGRvbmUgaW5cbi8vICAgICAgIHRoZSBGaWxlRG93bmxvYWRDb21wb25lbnQ/ICBUaGlzIHdvdWxkIGdyZWF0bHkgc2ltcGxpZnkgdGhpbmdzIC0gTm90IGVhc2lseSBpdCBzZWVtcyAtIHRoYXQgc3RydWN0dXJlIGRvZXNuJ3QgcmVzdWx0IGluIG1lbnVzIGJlaW5nXG4vLyAgICAgICBuZXN0ZWQgaW4gZWFjaCBvdGhlciBjb3JyZWN0bHkgc28gc3ViIG1lbnVzIGRvbid0IHdvcmsgcHJvcGVybHkgLSBpLmUuIGNsaWNraW5nIG9uIGEgY2hpbGQgaXRlbSBjbG9zZXMgdGhlIHBhcmVudC5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcImF1cC1wb3B1cC1tZW51LXJlbmRlcmVyXCIsXG4gIHRlbXBsYXRlVXJsOiBcIi4vcG9wdXAtbWVudS1yZW5kZXJlci5jb21wb25lbnQuaHRtbFwiXG59KVxuZXhwb3J0IGNsYXNzIFBvcHVwTWVudVJlbmRlcmVyQ29tcG9uZW50IGV4dGVuZHMgRGlzcG9zYWJsZUNvbXBvbmVudCB7XG5cbiAgcHJpdmF0ZSBfcGFyZW50Q29tcG9uZW50OiBBYnN0cmFjdFBvcHVwTWVudUNvbXBvbmVudDtcblxuICBwcml2YXRlIF9jaGlsZExpc3QgPSB0aGlzLnJlZ2lzdGVyRGlzcG9zYWJsZShuZXcgRGVsZWdhdGluZ0xpc3RNb2RlbDxQb3B1cEF3YXJlQ29tcG9uZW50PigpKTtcblxuICBASW5wdXQoKVxuICBnZXQgcGFyZW50KCk6IEFic3RyYWN0UG9wdXBNZW51Q29tcG9uZW50IHtcbiAgICByZXR1cm4gdGhpcy5fcGFyZW50Q29tcG9uZW50O1xuICB9XG5cbiAgc2V0IHBhcmVudChjb21wOiBBYnN0cmFjdFBvcHVwTWVudUNvbXBvbmVudCkge1xuICAgIHRoaXMuX3BhcmVudENvbXBvbmVudCA9IGNvbXA7XG4gICAgdGhpcy5fY2hpbGRMaXN0LnNldERlbGVnYXRlKGNvbXAuY2hpbGRyZW4pO1xuICB9XG5cbiAgQFZpZXdDaGlsZChcIm1lbnVcIiwge3N0YXRpYzogdHJ1ZX0pXG4gIG1lbnVDb21wb25lbnQ6IE1hdE1lbnU7XG5cbiAgQE91dHB1dCgpXG4gIGNvbW1hbmRGaXJlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBAVmlld0NoaWxkcmVuKE1hdE1lbnVUcmlnZ2VyKVxuICB0cmlnZ2VyczogUXVlcnlMaXN0PE1hdE1lbnVUcmlnZ2VyPjtcblxuICByZWFkb25seSBoYXNNaXhlZEljb25zOiBWYWx1ZU1vZGVsPGJvb2xlYW4+O1xuICByZWFkb25seSBjb21tYW5kUHJveHk6IENvbW1hbmQ8dW5rbm93bj47XG5cbiAgVHJhY2tCeSA9IFRyYWNrO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgY29uc3Qge2NoYWluLCB2YWx1ZU9mLCBiZWZvcmUsIHdoZW4sIGFmdGVyLCBvYnNlcnZlLCBzd2l0Y2hPbn0gPSBEc2wuZGlzcG9zZVdpdGgodGhpcyk7XG4gICAgLy8gdGhpcy5jaGlsZHJlbiA9IGNoYWluKHRoaXMuZ3JvdXBWaWV3RGF0YU1vZGVsKS5wbHVja0xpc3QoJ2NoaWxkcmVuJyk7XG4gICAgLy8gdGhpcy5oYXNNaXhlZEljb25zID0gY2hhaW4odGhpcy5ncm91cFZpZXdEYXRhTW9kZWwpLnBsdWNrKCdoYXNNaXhlZEljb25zJyk7XG4gICAgY29uc3QgZmFjZXMgPSBjaGFpbih0aGlzLl9jaGlsZExpc3QpLm1hcChjaGlsZCA9PiB7XG4gICAgICByZXR1cm4gY2hpbGQuZ2V0RmFjZSgpO1xuICAgIH0pLnJlamVjdE5pbCgpO1xuICAgIGNvbnN0IGljb25zID0gZmFjZXMuc2VsZWN0KGZhY2UgPT4gISFDb21tYW5kRmFjZS5nZXRJY29uT2YoZmFjZSkpO1xuICAgIGNvbnN0IGljb25Db3VudCA9IGljb25zLmNvdW50KCk7XG4gICAgY29uc3QgdG90YWxGYWNlcyA9IGZhY2VzLmNvdW50KCk7XG4gICAgdGhpcy5oYXNNaXhlZEljb25zID0gdmFsdWVPZi5hbGwoXG4gICAgICBpY29uQ291bnQuaXNHcmVhdGVyVGhhbigwKSxcbiAgICAgIHRvdGFsRmFjZXMuZG9lc05vdEVxdWFsKGljb25Db3VudClcbiAgICApLmFyZVRydXRoeSgpO1xuICB9XG5cbiAgZ2V0IGNoaWxkcmVuKCk6IHJlYWRvbmx5IFBvcHVwQXdhcmVDb21wb25lbnRbXSB7XG4gICAgcmV0dXJuIHRoaXMucGFyZW50LmNoaWxkcmVuLnZhbHVlO1xuICB9XG5cbiAgLyoqIFRydWUgd2hlbiB0aGUgY2hpbGQgbWF0Y2hlcyBvbmUgb2YgdGhlIHRlbXBsYXRlJ3MgZm91ciBgKm5nSWZgIGJyYW5jaGVzIGFuZCB3aWxsXG4gICAqICBhY3R1YWxseSBwcm9kdWNlIGEgcmVuZGVyZWQgZWxlbWVudC4gRXZlcnl0aGluZyBlbHNlIOKAlCBub3RhYmx5IGBCdXR0b25SZW5kZXJlckNvbXBvbmVudGBcbiAgICogIGVudHJpZXMgdGhhdCBhcHBlYXIgaW4gYGNoaWxkcmVuYCBmb3Igb3RoZXIgcHVycG9zZXMg4oCUIHJlbmRlcnMgYXMgbm90aGluZywgc28gbXVzdCBiZVxuICAgKiAgaWdub3JlZCB3aGVuIGRlY2lkaW5nIHdoZXRoZXIgYSBuZWlnaGJvdXJpbmcgc2VwYXJhdG9yIGhhcyBjb250ZW50IHRvIGRpdmlkZS5cbiAgICovXG4gIHByaXZhdGUgd2lsbFJlbmRlcihjaGlsZDogUG9wdXBBd2FyZUNvbXBvbmVudCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLmlzQ29tbWFuZChjaGlsZCkpIHJldHVybiB0aGlzLmlzQ29tbWFuZFZpc2libGUoY2hpbGQpO1xuICAgIGlmICh0aGlzLmlzUG9wdXBNZW51KGNoaWxkKSkgcmV0dXJuIHRydWU7XG4gICAgaWYgKHRoaXMuaXNGaWxlRG93bmxvYWQoY2hpbGQpKSByZXR1cm4gdHJ1ZTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKiogQ2hpbGRyZW4gd2l0aCBvcnBoYW4gc2VwYXJhdG9ycyBjb2xsYXBzZWQg4oCUIHNlZSBjb2xsYXBzZS1vcnBoYW4tc2VwYXJhdG9ycy50cyBmb3IgdGhlXG4gICAqICBhbGdvcml0aG0gYW5kIGl0cyB1bml0IHRlc3RzLiAqL1xuICBnZXQgcmVuZGVyYWJsZUNoaWxkcmVuKCk6IHJlYWRvbmx5IFBvcHVwQXdhcmVDb21wb25lbnRbXSB7XG4gICAgcmV0dXJuIGNvbGxhcHNlT3JwaGFuU2VwYXJhdG9ycyhcbiAgICAgIHRoaXMuY2hpbGRyZW4sXG4gICAgICBjaGlsZCA9PiB0aGlzLmlzU2VwYXJhdG9yKGNoaWxkKSxcbiAgICAgIGNoaWxkID0+IHRoaXMud2lsbFJlbmRlcihjaGlsZClcbiAgICApO1xuICB9XG5cbiAgZXhlY3V0ZUNvbW1hbmQoZGF0YTogUG9wdXBBd2FyZUNvbXBvbmVudCkge1xuICAgIGlmICh0aGlzLmlzQ29tbWFuZChkYXRhKSkge1xuICAgICAgLy8gTm90IC5maW5hbGx5KCk6IHpvbmUgbmV2ZXIgcmVwb3J0cyBhIHJlamVjdGlvbiB0aGF0IHBhc3NlcyB0aHJvdWdoIG9uZSwgd2hpY2ggaGlkIHJlYWwgZXJyb3JzXG4gICAgICAvLyBmcm9tIG1lbnUgY29tbWFuZHMuIEEgY2FuY2VsIG9yIG90aGVyIGhhbmRsZWQgcmVqZWN0aW9uIHN0YXlzIHF1aWV0IChwcm92aWRlUXVpZXRSZWplY3Rpb25zKS5cbiAgICAgIGRhdGEuY29tbWFuZC5leGVjdXRlKCkudGhlbigoKSA9PiB0aGlzLmNvbW1hbmRGaXJlZC5lbWl0KCksIGVycm9yID0+IHtcbiAgICAgICAgdGhpcy5jb21tYW5kRmlyZWQuZW1pdCgpO1xuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGlzQ29tbWFuZEVuYWJsZWQoZGF0YTogUG9wdXBBd2FyZUNvbXBvbmVudCkge1xuICAgIHJldHVybiB0aGlzLmlzQ29tbWFuZChkYXRhKSAmJiBkYXRhLmNvbW1hbmQuZW5hYmxlZCQudmFsdWU7XG4gIH1cblxuICAvKiogQSBjb21tYW5kIHdpdGggYHZpc2libGVXaGlsZSguLi4pYCBmYWxzZSBjb2xsYXBzZXMgb3V0IG9mIHRoZSBtZW51IOKAlCBtYXRjaGVzIGB2aXNpYmxlV2hpbGVgXG4gICAqICBzZW1hbnRpY3MgZWxzZXdoZXJlLiBVbmRlZmluZWQgZGVmYXVsdHMgdG8gdmlzaWJsZSBzbyBjYWxsZXJzIHRoYXQgZG9uJ3QgZ2F0ZSBzdGF5IHVuY2hhbmdlZC4gKi9cbiAgaXNDb21tYW5kVmlzaWJsZShkYXRhOiBQb3B1cEF3YXJlQ29tcG9uZW50KSB7XG4gICAgcmV0dXJuICF0aGlzLmlzQ29tbWFuZChkYXRhKSB8fCAoZGF0YS5jb21tYW5kLnZpc2libGUkLnZhbHVlID8/IHRydWUpO1xuICB9XG5cbiAgLy8gQFRyYWNlKClcbiAgb25Db21tYW5kRmlyZWQoKSB7XG4gICAgdGhpcy5jb21tYW5kRmlyZWQuZW1pdCgpO1xuICAgIHRoaXMudHJpZ2dlcnMuZm9yRWFjaCh0cmlnZ2VyID0+IHtcbiAgICAgIGlmICh0cmlnZ2VyLm1lbnVPcGVuKSB7XG4gICAgICAgIHRyaWdnZXIuY2xvc2VNZW51KCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBpc0NvbW1hbmQoY2hpbGQ6IGFueSk6IGNoaWxkIGlzIENvbW1hbmRDb21wb25lbnQge1xuICAgIHJldHVybiBjaGlsZCBpbnN0YW5jZW9mIENvbW1hbmRDb21wb25lbnQ7XG4gIH1cblxuICBpc1BvcHVwTWVudShjaGlsZDogYW55KTogY2hpbGQgaXMgQWJzdHJhY3RQb3B1cE1lbnVDb21wb25lbnQge1xuICAgIHJldHVybiBjaGlsZCBpbnN0YW5jZW9mIEFic3RyYWN0UG9wdXBNZW51Q29tcG9uZW50O1xuICB9XG5cbiAgaXNQb3B1cE1lbnVFbmFibGVkKGNoaWxkOiBhbnkpOiBjaGlsZCBpcyBBYnN0cmFjdFBvcHVwTWVudUNvbXBvbmVudCB7XG4gICAgcmV0dXJuIHRoaXMuaXNQb3B1cE1lbnUoY2hpbGQpICYmIGNoaWxkLmVuYWJsZWQ7XG4gIH1cblxuICBpc1NlcGFyYXRvcihjaGlsZDogYW55KTogY2hpbGQgaXMgU2VwYXJhdG9yQ29tcG9uZW50IHtcbiAgICByZXR1cm4gY2hpbGQgaW5zdGFuY2VvZiBTZXBhcmF0b3JDb21wb25lbnQ7XG4gIH1cblxuICBpc0ZpbGVEb3dubG9hZChjaGlsZDogYW55KTogY2hpbGQgaXMgRmlsZURvd25sb2FkQ29tcG9uZW50IHtcbiAgICByZXR1cm4gY2hpbGQgaW5zdGFuY2VvZiBGaWxlRG93bmxvYWRDb21wb25lbnQ7XG4gIH1cblxuICBnZXRUb29sdGlwKGNoaWxkOiBhbnkpIHtcbiAgICByZXR1cm4gdGhpcy5pc0NvbW1hbmQoY2hpbGQpID8gQ29tbWFuZEZhY2UuZ2V0VG9vbHRpcE9mKGNoaWxkLmZhY2UpIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgZ2V0RmFjZXMoY2hpbGQ6IFBvcHVwQXdhcmVDb21wb25lbnQpIHtcbiAgICByZXR1cm4gdGhpcy5pc0NvbW1hbmQoY2hpbGQpIHx8IHRoaXMuaXNQb3B1cE1lbnUoY2hpbGQpIHx8IHRoaXMuaXNGaWxlRG93bmxvYWQoY2hpbGQpID9cbiAgICAgIGNoaWxkLmZhY2VzJC52YWx1ZSA6XG4gICAgICB1bmRlZmluZWQ7XG4gIH1cbn1cblxuXG4iLCI8bWF0LW1lbnUgI21lbnUgW3hQb3NpdGlvbl09XCJwYXJlbnQueFBvc2l0aW9uXCIgW3lQb3NpdGlvbl09XCJwYXJlbnQueVBvc2l0aW9uXCI+XG4gIDxuZy10ZW1wbGF0ZSBtYXRNZW51Q29udGVudD5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjaGlsZCBvZiByZW5kZXJhYmxlQ2hpbGRyZW47IHRyYWNrQnk6IFRyYWNrQnkuYnlJbmRleFwiID5cbiAgICAgIDxidXR0b24gKm5nSWY9XCJpc0NvbW1hbmQoY2hpbGQpICYmIGlzQ29tbWFuZFZpc2libGUoY2hpbGQpXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImV4ZWN1dGVDb21tYW5kKGNoaWxkKVwiXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhaXNDb21tYW5kRW5hYmxlZChjaGlsZClcIlxuICAgICAgICAgICAgICBbbWF0VG9vbHRpcF09XCJnZXRUb29sdGlwKGNoaWxkKVwiXG4gICAgICAgICAgICAgIG1hdC1tZW51LWl0ZW0+XG4gICAgICAgICAgICAgICAgPGF1cC1jb21tYW5kLWZhY2UgW2ZhY2VzXT1cImdldEZhY2VzKGNoaWxkKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2luY2x1ZGVNaXNzaW5nSWNvbkluTGF5b3V0XT1cImhhc01peGVkSWNvbnMudmFsdWVcIj48L2F1cC1jb21tYW5kLWZhY2U+XG4gICAgICA8L2J1dHRvbj5cblxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzUG9wdXBNZW51KGNoaWxkKVwiPlxuICAgICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW1cbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWlzUG9wdXBNZW51RW5hYmxlZChjaGlsZClcIlxuICAgICAgICAgICAgICAgIFttYXRNZW51VHJpZ2dlckZvcl09XCJpbm5lclBhbmVsLm1lbnVDb21wb25lbnRcIlxuICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxhdXAtY29tbWFuZC1mYWNlIFtmYWNlc109XCJnZXRGYWNlcyhjaGlsZClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaW5jbHVkZU1pc3NpbmdJY29uSW5MYXlvdXRdPVwiaGFzTWl4ZWRJY29ucy52YWx1ZVwiPjwvYXVwLWNvbW1hbmQtZmFjZT5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxhdXAtcG9wdXAtbWVudS1yZW5kZXJlciAjaW5uZXJQYW5lbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BhcmVudF09XCJjaGlsZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29tbWFuZEZpcmVkKT1cIm9uQ29tbWFuZEZpcmVkKClcIj48L2F1cC1wb3B1cC1tZW51LXJlbmRlcmVyPlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDwhLS0gSGFjay4uLiAtLT5cbiAgICAgIDxhICpuZ0lmPVwiaXNGaWxlRG93bmxvYWQoY2hpbGQpXCIgbWF0LW1lbnUtaXRlbSBbaHJlZl09XCJjaGlsZC5kb3dubG9hZC51cmxcIiBbZG93bmxvYWRdPVwiY2hpbGQuZG93bmxvYWQuc2F2ZUFzXCI+XG4gICAgICAgIDxhdXAtY29tbWFuZC1mYWNlIFtmYWNlc109XCJnZXRGYWNlcyhjaGlsZClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbaW5jbHVkZU1pc3NpbmdJY29uSW5MYXlvdXRdPVwiaGFzTWl4ZWRJY29ucy52YWx1ZVwiPjwvYXVwLWNvbW1hbmQtZmFjZT5cbiAgICAgIDwvYT5cbiAgICAgIDxtYXQtZGl2aWRlciAqbmdJZj1cImlzU2VwYXJhdG9yKGNoaWxkKVwiPjwvbWF0LWRpdmlkZXI+XG5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICA8L25nLXRlbXBsYXRlPlxuPC9tYXQtbWVudT5cbiJdfQ==
@@ -83,8 +83,14 @@ export class TableBodyComponent extends ResizeAwareComponent {
83
83
  columnIds$;
84
84
  footerRowDefs$;
85
85
  columnsById$;
86
- // TODO: support user defined header and row heights via css vars.
86
+ /**
87
+ * The header row's height, which the virtual scroller offsets its rows by and which pins the header
88
+ * cells in virtual mode. Taken from --aup-table-header-row-height at init (table.scss sets 48px), so
89
+ * a table themed with a shorter header scrolls correctly; 48 when the variable can't be read.
90
+ */
87
91
  headerHeight$ = new MutableValueModel(48);
92
+ // TODO: take the row height from --aup-table-row-height too. Not a drop-in: table.scss sets it to
93
+ // 40px while virtual rows have always been 44, so following it would shrink every virtual row.
88
94
  rowHeight$ = new MutableValueModel(44);
89
95
  baseCssClass = "aup-table-component";
90
96
  get animationsDisabledClass() { return this.animationsDisabled$.value; }
@@ -137,6 +143,9 @@ export class TableBodyComponent extends ResizeAwareComponent {
137
143
  this.resetAnimationsAfterFrame();
138
144
  }, { initialValue: "evaluate" });
139
145
  this.onInit(() => {
146
+ // On init, not after the view: the header height is bound in this view and in a host binding,
147
+ // and changing it after they are checked would trip ExpressionChangedAfterItHasBeenChecked.
148
+ this.takeHeaderHeightFromTheme();
140
149
  this.columns$ = chain(this.tableModel.visibleColumns$);
141
150
  this.columnIds$ = chain(this.columns$).pluck("columnId");
142
151
  this.columnsById$ = chain(this.columns$).indexBy('columnId');
@@ -210,6 +219,15 @@ export class TableBodyComponent extends ResizeAwareComponent {
210
219
  }
211
220
  return classes;
212
221
  }
222
+ /** Sets [headerHeight$] from --aup-table-header-row-height, keeping the current value when it can't be read. */
223
+ takeHeaderHeightFromTheme() {
224
+ this.headerHeight$.value = this.readCssPixels("--aup-table-header-row-height") ?? this.headerHeight$.value;
225
+ }
226
+ /** A length custom property as resolved on this element, in px; undefined when unset or not a length. */
227
+ readCssPixels(property) {
228
+ const pixels = parseFloat(getComputedStyle(this.elementRef.nativeElement).getPropertyValue(property));
229
+ return Number.isFinite(pixels) && pixels > 0 ? pixels : undefined;
230
+ }
213
231
  scheduleTableHeightCheck(waitMillis = 50) {
214
232
  setTimeout(() => {
215
233
  // Use CDK's internal rendered range to detect a broken virtual scroll state —
@@ -351,4 +369,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
351
369
  type: HostBinding,
352
370
  args: ["style.--aup-table-row-height"]
353
371
  }] } });
354
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtYm9keS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9jb21wb25lbnRzL3RhYmxlcy9yZW5kZXJlci90YWJsZS1ib2R5L3RhYmxlLWJvZHkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvY29tcG9uZW50cy90YWJsZXMvcmVuZGVyZXIvdGFibGUtYm9keS90YWJsZS1ib2R5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxzR0FBc0c7QUFDdEcsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDaEUsT0FBTyxFQUVMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsU0FBUyxFQUNULFVBQVUsRUFDVixXQUFXLEVBQ1gsTUFBTSxFQUNOLGNBQWMsRUFDZCxLQUFLLEVBR0wsUUFBUSxFQUNSLFNBQVMsRUFDVCxNQUFNLEVBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLEdBQUcsRUFDSCxTQUFTLEVBR1QsaUJBQWlCLEVBQ2pCLE9BQU8sRUFDUCxPQUFPLEVBQ1AsaUJBQWlCLEVBQ2pCLFVBQVUsRUFDWCxNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBQyw0QkFBNEIsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ3JFLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQ3JFLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBSTlELE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxtQkFBbUIsRUFBQyxNQUFNLCtCQUErQixDQUFDOzs7Ozs7Ozs7QUFFM0YsTUFBTSxDQUFDLE1BQU0sMENBQTBDLEdBQUcsSUFBSSxjQUFj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QkFEbEIsS0FBSztnQkFJTixPQUFPO3NCQUROLEtBQUs7Z0JBSUcsV0FBVztzQkFEbkIsS0FBSztnQkFLRyxVQUFVO3NCQUZsQixLQUFLOztzQkFDTCxXQUFXO3VCQUFDLGlCQUFpQjtnQkFJOUIsY0FBYztzQkFEYixTQUFTO3VCQUFDLHdCQUF3QjtnQkFlbkMsWUFBWTtzQkFEWCxXQUFXO3VCQUFDLE9BQU87Z0JBSWhCLHVCQUF1QjtzQkFEMUIsV0FBVzt1QkFBQywrQkFBK0I7Z0JBZ0h4QyxVQUFVO3NCQURiLFdBQVc7dUJBQUMsbUJBQW1CO2dCQU01QixrQkFBa0I7c0JBRHJCLFdBQVc7dUJBQUMsaUNBQWlDO2dCQU0xQyxlQUFlO3NCQURsQixXQUFXO3VCQUFDLDhCQUE4QiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgLS0gdGFibGUgYm9keSByZW5kZXJzIGFyYml0cmFyeSByb3cvY2VsbCB0eXBlcyAqL1xuaW1wb3J0IHtDZGtWaXJ0dWFsU2Nyb2xsVmlld3BvcnR9IGZyb20gXCJAYW5ndWxhci9jZGsvc2Nyb2xsaW5nXCI7XG5pbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RCaW5kaW5nLFxuICBJbmplY3QsXG4gIEluamVjdGlvblRva2VuLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE9wdGlvbmFsLFxuICBWaWV3Q2hpbGQsXG4gIGluamVjdFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtcbiAgRHNsLFxuICBMaXN0TW9kZWwsXG4gIExpc3RNb2RlbENoYWluLFxuICBNYXBNb2RlbENoYWluLFxuICBNdXRhYmxlVmFsdWVNb2RlbCxcbiAgUHJveGlmeSxcbiAgcHJveGlmeSxcbiAgU3RvcmVJblZhbHVlTW9kZWwsXG4gIFZhbHVlTW9kZWxcbn0gZnJvbSBcIkBjb29sb24vcGVjdGluXCI7XG5pbXBvcnQge1RhYmxlVmlydHVhbFNjcm9sbERhdGFTb3VyY2V9IGZyb20gXCJuZy10YWJsZS12aXJ0dWFsLXNjcm9sbFwiO1xuaW1wb3J0IHtSZXNpemVBd2FyZUNvbXBvbmVudH0gZnJvbSBcIi4uLy4uLy4uL3Jlc2l6ZS1hd2FyZS5jb21wb25lbnRcIjtcbmltcG9ydCB7QWJzdHJhY3RUYWJsZU1vZGVsfSBmcm9tIFwiLi4vLi4vYWJzdHJhY3QtdGFibGUtbW9kZWxcIjtcbmltcG9ydCB0eXBlIHtDb2x1bW5Nb2RlbH0gZnJvbSBcIi4uLy4uL2NvbHVtbi9jb2x1bW4tbW9kZWxcIjtcbmltcG9ydCB7Rm9vdGVyUm93TW9kZWwsIFJlc29sdmVkRm9vdGVyUm93fSBmcm9tIFwiLi4vLi4vZm9vdGVyL2Zvb3Rlci1yb3ctbW9kZWxcIjtcblxuaW1wb3J0IHtBVVBfREVUQUNIRURfUEFSRU5UX0NEUiwgRGlzcG9zYWJsZUNvbXBvbmVudH0gZnJvbSBcIi4uLy4uLy4uL2Rpc3Bvc2FibGUtY29tcG9uZW50XCI7XG5cbmV4cG9ydCBjb25zdCBBVVBfVEFCTEVfVklSVFVBTF9TQ1JPTExfQlVGRkVSX01VTFRJUExJRVIgPSBuZXcgSW5qZWN0aW9uVG9rZW48bnVtYmVyPihcIkFVUF9UQUJMRV9WSVJUVUFMX1NDUk9MTF9CVUZGRVJfTVVMVElQTElFUlwiKVxuZXhwb3J0IGNvbnN0IEFVUF9UQUJMRV9PUFRJTUlaRURfQ0hBTkdFX0RFVEVDVElPTiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxib29sZWFuPihcIkFVUF9UQUJMRV9PUFRJTUlaRURfQ0hBTkdFX0RFVEVDVElPTlwiKVxuXG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogXCJbYXVwVGFibGVSb3dBdHRyaWJ1dGVzXVwiLFxufSlcbmV4cG9ydCBjbGFzcyBUYWJsZVJvd0F0dHJpYnV0ZXNEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuXG4gIEBJbnB1dCgpXG4gIGF1cFRhYmxlUm93QXR0cmlidXRlczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9O1xuXG4gIC8qKiBBdHRyaWJ1dGUgbmFtZXMgYXBwbGllZCBvbiB0aGUgcHJldmlvdXMgcGFzcywgc28gb25lcyB0aGF0IGRpc2FwcGVhciBjYW4gYmUgcmVtb3ZlZC4gKi9cbiAgcHJpdmF0ZSBhcHBsaWVkQXR0cmlidXRlTmFtZXM6IHN0cmluZ1tdID0gW107XG5cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIHJlYWRvbmx5IGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+KSB7XG4gIH1cblxuICAvLyBSZS1hcHBseSBvbiBldmVyeSBjaGFuZ2UsIG5vdCBqdXN0IG9uY2UgYXQgaW5pdDogYSByb3cncyBhdHRyaWJ1dGUgdmFsdWVzIGNhbiBjaGFuZ2UgYWZ0ZXIgdGhlXG4gIC8vIHJvdyBoYXMgcmVuZGVyZWQgKGUuZy4gYW4gT1RBUCBkZXZpY2Ugcm93IHdob3NlIGRldmljZSByZWNvcmQgcmVzb2x2ZXMgYWZ0ZXIgaXRzIHNjcmF0Y2hwYWQgcm93XG4gIC8vIHdhcyBjcmVhdGVkKSwgYW5kIHRoZSBlbGVtZW50IG11c3QgcmVmbGVjdCB0aGUgbGF0ZXN0IHZhbHVlcy4gUHJldmlvdXNseSB0aGlzIGltcGxlbWVudGVkIE9uSW5pdCxcbiAgLy8gc28gdGhlIGF0dHJpYnV0ZXMgd2VyZSBmcm96ZW4gYXQgcm93LWNyZWF0aW9uIHRpbWUgYW5kIHdlbnQgc3RhbGUgKGUuZy4gZGV2aWNlSGFyZHdhcmVJZCBzdHVjayBvblxuICAvLyBpdHMgaW5pdGlhbCBcInVuZGVmaW5lZFwiKS5cbiAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgY29uc3QgZWxlbWVudCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgIGNvbnN0IG5leHQgPSB0aGlzLmF1cFRhYmxlUm93QXR0cmlidXRlcyA/PyB7fTtcbiAgICBmb3IgKGNvbnN0IGF0dHIgb2YgdGhpcy5hcHBsaWVkQXR0cmlidXRlTmFtZXMpIHtcbiAgICAgIGlmICghKGF0dHIgaW4gbmV4dCkpIHtcbiAgICAgICAgZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoYXR0cik7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuYXBwbGllZEF0dHJpYnV0ZU5hbWVzID0gT2JqZWN0LmtleXMobmV4dCk7XG4gICAgZm9yIChjb25zdCBhdHRyIG9mIHRoaXMuYXBwbGllZEF0dHJpYnV0ZU5hbWVzKSB7XG4gICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZShhdHRyLCBuZXh0W2F0dHJdKTtcbiAgICB9XG4gIH1cbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcImF1cC10YWJsZS1ib2R5XCIsXG4gIHRlbXBsYXRlVXJsOiBcIi4vdGFibGUtYm9keS5jb21wb25lbnQuaHRtbFwiLFxuICBzdHlsZVVybHM6IFtcIi4vdGFibGUtYm9keS5jb21wb25lbnQuc2Nzc1wiXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgeyBwcm92aWRlOiBBVVBfREVUQUNIRURfUEFSRU5UX0NEUiwgdXNlRmFjdG9yeTogKCkgPT4gaW5qZWN0KEFVUF9UQUJMRV9PUFRJTUlaRURfQ0hBTkdFX0RFVEVDVElPTiwgeyBvcHRpb25hbDogdHJ1ZSB9KSA/IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZikgOiBudWxsIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBUYWJsZUJvZHlDb21wb25lbnQ8Um93IGV4dGVuZHMgb2JqZWN0PiBleHRlbmRzIFJlc2l6ZUF3YXJlQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcblxuICBASW5wdXQoKSBAUHJveGlmeSgpXG4gIGFjY2Vzc29yIGRhdGEkOiBMaXN0TW9kZWw8Um93PiA9IHByb3hpZnkoTGlzdE1vZGVsPFJvdz4pO1xuXG4gIEBJbnB1dCgpIEBQcm94aWZ5KClcbiAgYWNjZXNzb3IgdGFibGVNb2RlbDogQWJzdHJhY3RUYWJsZU1vZGVsPFJvdz4gPSBwcm94aWZ5KEFic3RyYWN0VGFibGVNb2RlbDxSb3c+KTtcblxuICAvLyBGb290ZXIgcm93cyBhcmUgYnVpbHQgb25jZSBpbiB0aGUgVGFibGVNb2RlbCBidWlsZGVyIGNhbGxiYWNrLCBzbyBhIHBsYWluIGlucHV0IGlzIGVub3VnaDtcbiAgLy8gdGhlIHBlci1yb3cgY2VsbCBsYXlvdXQgKGZvb3RlclJvd0RlZnMkKSBpcyBkZXJpdmVkIHJlYWN0aXZlbHkgZnJvbSB0aGUgdmlzaWJsZSBjb2x1bW5zLlxuICBASW5wdXQoKVxuICBmb290ZXJSb3dzOiBGb290ZXJSb3dNb2RlbC5JbXBsW10gPSBbXTtcblxuICBASW5wdXQoKSBAUHJveGlmeSgpXG4gIGFjY2Vzc29yIHNob3dIZWFkZXIkOiBWYWx1ZU1vZGVsPGJvb2xlYW4+ID0gcHJveGlmeShWYWx1ZU1vZGVsPGJvb2xlYW4+KTtcblxuICBASW5wdXQoKSBAU3RvcmVJblZhbHVlTW9kZWwoKVxuICBhY2Nlc3NvciBzaG93SGVhZGVyID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICB0cmFja0J5OiAoaW5kZXg6IG51bWJlciwgaXRlbTogUm93KSA9PiBhbnlcblxuICBASW5wdXQoKSBAUHJveGlmeSgpXG4gIGFjY2Vzc29yIHNjcm9sbE1vZGUkOiBWYWx1ZU1vZGVsPFRhYmxlQm9keUNvbXBvbmVudC5TY3JvbGxNb2RlPiA9IHByb3hpZnkoVmFsdWVNb2RlbDxUYWJsZUJvZHlDb21wb25lbnQuU2Nyb2xsTW9kZT4pO1xuXG4gIEBJbnB1dCgpIEBTdG9yZUluVmFsdWVNb2RlbCgpXG4gIEBIb3N0QmluZGluZyhcImF0dHIuc2Nyb2xsTW9kZVwiKVxuICBhY2Nlc3NvciBzY3JvbGxNb2RlOiBUYWJsZUJvZHlDb21wb25lbnQuU2Nyb2xsTW9kZSA9IFwibm9uZVwiO1xuXG4gIEBWaWV3Q2hpbGQoQ2RrVmlydHVhbFNjcm9sbFZpZXdwb3J0KVxuICBzY3JvbGxWaWV3cG9ydDogQ2RrVmlydHVhbFNjcm9sbFZpZXdwb3J0XG5cbiAgY29sdW1ucyQ6IExpc3RNb2RlbENoYWluPENvbHVtbk1vZGVsPFJvdz4+O1xuICBjb2x1bW5JZHMkOiBMaXN0TW9kZWxDaGFpbjxzdHJpbmc+O1xuICBmb290ZXJSb3dEZWZzJDogVmFsdWVNb2RlbDxSZXNvbHZlZEZvb3RlclJvd1tdPjtcblxuICBwcml2YXRlIGNvbHVtbnNCeUlkJDogTWFwTW9kZWxDaGFpbjxzdHJpbmcsIENvbHVtbk1vZGVsPFJvdz4+O1xuXG5cbiAgLy8gVE9ETzogc3VwcG9ydCB1c2VyIGRlZmluZWQgaGVhZGVyIGFuZCByb3cgaGVpZ2h0cyB2aWEgY3NzIHZhcnMuXG4gIHByb3RlY3RlZCByZWFkb25seSBoZWFkZXJIZWlnaHQkID0gbmV3IE11dGFibGVWYWx1ZU1vZGVsPG51bWJlcj4oNDgpO1xuICBwcm90ZWN0ZWQgcm93SGVpZ2h0JCA9IG5ldyBNdXRhYmxlVmFsdWVNb2RlbDxudW1iZXI+KDQ0KTtcblxuICBASG9zdEJpbmRpbmcoXCJjbGFzc1wiKVxuICBiYXNlQ3NzQ2xhc3MgPSBcImF1cC10YWJsZS1jb21wb25lbnRcIjtcblxuICBASG9zdEJpbmRpbmcoXCJjbGFzcy5hdXAtYW5pbWF0aW9ucy1kaXNhYmxlZFwiKVxuICBnZXQgYW5pbWF0aW9uc0Rpc2FibGVkQ2xhc3MoKSB7IHJldHVybiB0aGlzLmFuaW1hdGlvbnNEaXNhYmxlZCQudmFsdWU7IH1cblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdmlydHVhbFNjcm9sbERhdGFTb3VyY2UgPSBuZXcgVGFibGVWaXJ0dWFsU2Nyb2xsRGF0YVNvdXJjZTxSb3c+KCk7XG4gIHByb3RlY3RlZCByZWFkb25seSB2aXJ0dWFsU2Nyb2xsQWN0aXZlJCA9IG5ldyBNdXRhYmxlVmFsdWVNb2RlbChmYWxzZSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBhbmltYXRpb25zRGlzYWJsZWQkID0gbmV3IE11dGFibGVWYWx1ZU1vZGVsKGZhbHNlKTtcbiAgcHJpdmF0ZSBzY3JvbGxUaW1lb3V0OiBhbnk7XG4gIHByaXZhdGUgYW5pbWF0aW9uc1Jlc2V0UmFmSWQ6IG51bWJlciB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIHNjcm9sbEVuZEFib3J0Q29udHJvbGxlcjogQWJvcnRDb250cm9sbGVyIHwgbnVsbCA9IG51bGw7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IG9wdGltaXNlZENoYW5nZURldGVjdGlvbkVuYWJsZWQ6IGJvb2xlYW47XG4gIHByaXZhdGUgdmlld0luaXRpYWxpemVkID0gZmFsc2U7XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIG1hcmtGb3JDaGVjaygpIHtcbiAgICBpZiAodGhpcy5vcHRpbWlzZWRDaGFuZ2VEZXRlY3Rpb25FbmFibGVkKSB7XG4gICAgICAvLyBUaGUgdGFibGUtYm9keSBkZXRhY2hlcyBpdHMgb3duIENEUiBhbmQgaGFzIG5vIGRldGFjaGVkIHBhcmVudCAoQVVQX0RFVEFDSEVEX1BBUkVOVF9DRFJcbiAgICAgIC8vIHVzZXMgc2tpcFNlbGYpLCBzbyB0aGUgYmFzZSBtYXJrRm9yQ2hlY2soKSB3b3VsZCBjYWxsIGNkci5tYXJrRm9yQ2hlY2soKSB3aGljaCBpcyBhXG4gICAgICAvLyBuby1vcCBvbiBhIGRldGFjaGVkIHZpZXcuIFNjaGVkdWxlIGFuIGV4cGxpY2l0IGRldGVjdENoYW5nZXMoKSBvbiBvdXJzZWx2ZXMgaW5zdGVhZCBzb1xuICAgICAgLy8gdGhhdCB2aWV3U3RhdGVEZXBlbmRzT24oKSBjb3JyZWN0bHkgdHJpZ2dlcnMgcmUtcmVuZGVycyAoZS5nLiByb3cgc2VsZWN0aW9uIGNsYXNzZXMpLlxuICAgICAgRGlzcG9zYWJsZUNvbXBvbmVudC5zY2hlZHVsZVBhcmVudFN3ZWVwKHRoaXMuY2RyKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc3VwZXIubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuICB9XG5cblxuICBjb25zdHJ1Y3RvcihASW5qZWN0KEFVUF9UQUJMRV9WSVJUVUFMX1NDUk9MTF9CVUZGRVJfTVVMVElQTElFUikgQE9wdGlvbmFsKCkgcHJvdGVjdGVkIGJ1ZmZlck11bHRpcGxpZXI6IG51bWJlciA9IDMpIHtcbiAgICBzdXBlcigpO1xuICAgIGNvbnN0IHtjaGFpbiwgd2hlbiwgb2JzZXJ2ZX0gPSBEc2wuZGlzcG9zZVdpdGgodGhpcyk7XG5cbiAgICB0aGlzLm9wdGltaXNlZENoYW5nZURldGVjdGlvbkVuYWJsZWQgPSB0aGlzLmluamVjdChBVVBfVEFCTEVfT1BUSU1JWkVEX0NIQU5HRV9ERVRFQ1RJT04sIHsgb3B0aW9uYWw6IHRydWUgfSk7XG4gICAgY29uc3QgYWN0dWFsSGVhZGVySGVpZ2h0JCA9IGNoYWluKHRoaXMuc2hvd0hlYWRlciQpLm1hcChzaG93ID0+IHtcbiAgICAgIHJldHVybiBzaG93ID8gdGhpcy5oZWFkZXJIZWlnaHQkLnZhbHVlIDogMDtcbiAgICB9LCB7ZGVwZW5kc09uOiB0aGlzLmhlYWRlckhlaWdodCR9KTtcblxuXG4gICAgLy8gcGVyZm9ybWFuY2UgaXMgdGVycmlibGUgaWYgdGhlIGRhdGEgY2hhbmdlcyB3aGlsZSB3ZSdyZSBzY3JvbGxpbmcsIHNvIHdlIHBvc3Rwb25lIHVwZGF0ZXMgdW50aWxcbiAgICAvLyBzY3JvbGxpbmcgc3RvcHMuXG4gICAgY29uc3QgZGVsYXllZERhdGEkID0gY2hhaW4odGhpcy5kYXRhJCkucG9zdHBvbmVXaGlsZSh0aGlzLnZpcnR1YWxTY3JvbGxBY3RpdmUkKVxuICAgIHdoZW4oZGVsYXllZERhdGEkKS5jaGFuZ2VzKGRlbGF0ZWREYXRhID0+IHtcbiAgICAgIHRoaXMuYW5pbWF0aW9uc0Rpc2FibGVkJC52YWx1ZSA9IHRydWU7XG4gICAgICAvLyBVcGRhdGUgdGhlIENESyBkYXRhIHNvdXJjZSBiZWZvcmUgZGV0ZWN0Q2hhbmdlcyBzbyB0aGF0IGJvdGggdGhlIGV4cGxpY2l0IGRldGVjdENoYW5nZXNcbiAgICAgIC8vIGFuZCBhbnkgc3Vic2VxdWVudCBTV0VFUC10cmlnZ2VyZWQgZGV0ZWN0Q2hhbmdlcyBzZWUgdGhlIHNhbWUgZGF0YS4gSWYgd2UgdXBkYXRlIGFmdGVyLFxuICAgICAgLy8gdGhlIFNXRUVQJ3MgZGV0ZWN0Q2hhbmdlcyBzZWVzIGRpZmZlcmVudCByb3cgb2JqZWN0cyBhbmQgdHJpZ2dlcnMgYSBzZWNvbmQgY2FzY2FkZS5cbiAgICAgIHRoaXMudmlydHVhbFNjcm9sbERhdGFTb3VyY2UuZGF0YSA9IGRlbGF0ZWREYXRhO1xuICAgICAgLy8gV2l0aCBkZXRhY2hlZCBDRCwgbWFya0ZvckNoZWNrKCkgYWxvbmUgd29uJ3QgcHVzaCBbQC5kaXNhYmxlZF09XCJ0cnVlXCIgdG8gdGhlIERPTS5cbiAgICAgIC8vIERldGVjdCBzeW5jaHJvbm91c2x5IHNvIENESyByZW5kZXJzIG5ldyByb3dzIHdpdGggYW5pbWF0aW9ucyBhbHJlYWR5IHN1cHByZXNzZWQuXG4gICAgICAvLyBhbmltYXRpb25zRGlzYWJsZWQkLnZhbHVlIGlzIGFscmVhZHkgdHJ1ZSAoc2V0IGFib3ZlKSwgc28gdGhlIHRlbXBsYXRlIGV2YWx1YXRpb25cbiAgICAgIC8vIGluIHRoaXMgZGV0ZWN0Q2hhbmdlcyB3aWxsIHNlZSBbQC5kaXNhYmxlZF09XCJ0cnVlXCIgYmVmb3JlIGFueSBuZXcgcm93cyBhcmUgY3JlYXRlZC5cbiAgICAgIC8vIEd1YXJkIGFnYWluc3QgdGhlIHtpbml0aWFsVmFsdWU6XCJldmFsdWF0ZVwifSBmaXJpbmcgZHVyaW5nIGNvbnN0cnVjdGlvbiBiZWZvcmUgdGhlIHZpZXcgZXhpc3RzLlxuICAgICAgaWYgKHRoaXMub3B0aW1pc2VkQ2hhbmdlRGV0ZWN0aW9uRW5hYmxlZCAmJiB0aGlzLnZpZXdJbml0aWFsaXplZCkge1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9XG4gICAgICB0aGlzLnNjaGVkdWxlVGFibGVIZWlnaHRDaGVjaygpO1xuICAgICAgdGhpcy5yZXNldEFuaW1hdGlvbnNBZnRlckZyYW1lKCk7XG4gICAgfSwge2luaXRpYWxWYWx1ZTogXCJldmFsdWF0ZVwifSlcblxuXG4gICAgdGhpcy5vbkluaXQoKCkgPT4ge1xuICAgICAgdGhpcy5jb2x1bW5zJCA9IGNoYWluKHRoaXMudGFibGVNb2RlbC52aXNpYmxlQ29sdW1ucyQpO1xuICAgICAgdGhpcy5jb2x1bW5JZHMkID0gY2hhaW4odGhpcy5jb2x1bW5zJCkucGx1Y2soXCJjb2x1bW5JZFwiKTtcbiAgICAgIHRoaXMuY29sdW1uc0J5SWQkID0gY2hhaW4odGhpcy5jb2x1bW5zJCkuaW5kZXhCeSgnY29sdW1uSWQnKTtcbiAgICAgIHRoaXMuZm9vdGVyUm93RGVmcyQgPSBjaGFpbih0aGlzLmNvbHVtbklkcyQpLnJlZHVjZUFsbChpZHMgPT5cbiAgICAgICAgKHRoaXMuZm9vdGVyUm93cyA/PyBbXSkubWFwKChyb3csIGkpID0+IHJvdy5yZXNvbHZlKGksIFsuLi5pZHNdKSlcbiAgICAgICk7XG4gICAgICAvLyBGb290ZXIgcm93cyBnYXRlZCB2aWEgdmlzaWJsZVdoaWxlKCkgZmxpcCBpbmRlcGVuZGVudGx5IG9mIHRoZSBjb2x1bW5zIHRoYXQgZHJpdmVcbiAgICAgIC8vIGZvb3RlclJvd0RlZnMkLCBzbyBkZXBlbmQgb24gdGhlaXIgbW9kZWxzIGRpcmVjdGx5IHRvIHJlLXJlbmRlciB0aGUgPHRyPiByZWFjdGl2ZWx5LlxuICAgICAgY29uc3QgZm9vdGVyVmlzaWJpbGl0eSQgPSAodGhpcy5mb290ZXJSb3dzID8/IFtdKVxuICAgICAgICAubWFwKHJvdyA9PiByb3cudmlzaWJsZSQpXG4gICAgICAgIC5maWx0ZXIoKG0pOiBtIGlzIFZhbHVlTW9kZWw8Ym9vbGVhbiB8IHVuZGVmaW5lZD4gPT4gbSAhPSBudWxsKTtcbiAgICAgIHRoaXMudmlld1N0YXRlRGVwZW5kc09uKHRoaXMudGFibGVNb2RlbC5maWx0ZXJlZFJvd3MkLCB0aGlzLnRhYmxlTW9kZWwudmlzaWJsZUNvbHVtbnMkLCB0aGlzLnZpcnR1YWxTY3JvbGxBY3RpdmUkLCB0aGlzLmFuaW1hdGlvbnNEaXNhYmxlZCQsIHRoaXMudGFibGVNb2RlbC5zZWxlY3RlZEl0ZW1zJCwgdGhpcy50YWJsZU1vZGVsLnNlbGVjdGFibGVSb3dzJCwgdGhpcy5mb290ZXJSb3dEZWZzJCwgLi4uZm9vdGVyVmlzaWJpbGl0eSQpXG4gICAgfSk7XG5cbiAgfVxuXG4gIG92ZXJyaWRlIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBzdXBlci5uZ0FmdGVyVmlld0luaXQoKTtcbiAgICB0aGlzLnZpZXdJbml0aWFsaXplZCA9IHRydWU7XG4gICAgaWYgKHRoaXMuc2Nyb2xsVmlld3BvcnQpIHtcbiAgICAgIGNvbnN0IHtvYnNlcnZlfSA9IERzbC5kaXNwb3NlV2l0aCh0aGlzKTtcbiAgICAgIHRoaXMuc2Nyb2xsVmlld3BvcnQuZWxlbWVudFNjcm9sbGVkKCkuc3Vic2NyaWJlKCgpID0+IHRoaXMubm90aWZ5U2Nyb2xsZWQoKSk7XG4gICAgICB0aGlzLnNjcm9sbEVuZEFib3J0Q29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcbiAgICAgIHRoaXMuc2Nyb2xsVmlld3BvcnQuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAgICdzY3JvbGxlbmQnLFxuICAgICAgICAoKSA9PiB0aGlzLm5vdGlmeVNjcm9sbEVuZGVkKCksXG4gICAgICAgIHtwYXNzaXZlOiB0cnVlLCBzaWduYWw6IHRoaXMuc2Nyb2xsRW5kQWJvcnRDb250cm9sbGVyLnNpZ25hbH1cbiAgICAgICk7XG4gICAgfVxuICAgIGlmICh0aGlzLm9wdGltaXNlZENoYW5nZURldGVjdGlvbkVuYWJsZWQpIHtcbiAgICAgIHRoaXMuY2RyLmRldGFjaCgpO1xuICAgICAgaWYgKHRoaXMuc2Nyb2xsVmlld3BvcnQpIHtcbiAgICAgICAgdGhpcy5zY3JvbGxWaWV3cG9ydC5yZW5kZXJlZFJhbmdlU3RyZWFtLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgLy8gRGVmZXIgcGFzdCB0aGUgY3VycmVudCBzeW5jIGJhdGNoIHNvIHRoZSBkYXRhIHNvdXJjZSBoYXMgdXBkYXRlZCBfcmVuZGVyZWRJdGVtcyBiZWZvcmUgd2UgcnVuIENELlxuICAgICAgICAgIC8vIE11c3QgY2FsbCBkZXRlY3RDaGFuZ2VzKCkgZGlyZWN0bHkg4oCUIG1hcmtGb3JDaGVjaygpIGFsb25lIGRvZXMgbm90aGluZyBvbiBhIGRldGFjaGVkIHZpZXcuXG4gICAgICAgICAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgLy8gRXh0ZW5kIHRoZSBhbmltYXRpb24gc3VwcHJlc3Npb24gd2luZG93IG9uIGVhY2ggQ0RLIHJhbmdlIGNoYW5nZSBzbyBhbmltYXRpb25zIGNhbid0XG4gICAgICAgICAgLy8gZmlyZSBtaWQtcmVuZGVyIHJlZ2FyZGxlc3Mgb2YgaG93IG1hbnkgZnJhbWVzIHRoZSByYW5nZSB1cGRhdGUgc3BhbnMuXG4gICAgICAgICAgaWYgKHRoaXMuYW5pbWF0aW9uc0Rpc2FibGVkJC52YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5yZXNldEFuaW1hdGlvbnNBZnRlckZyYW1lKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIC8vIERlZmVyIHBhc3QgdGhlIGN1cnJlbnQgdGljayBzbyB0aGUgdmlld3BvcnQncyBpbml0aWFsIHJlbmRlcmVkIHJhbmdlIGlzIHN0YWJsZVxuICAgICAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiB7XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIEBIb3N0QmluZGluZyhcImNsYXNzLmhpZGUtaGVhZGVyXCIpXG4gIGdldCBoaWRlSGVhZGVyKCkge1xuICAgIHJldHVybiAhdGhpcy5zaG93SGVhZGVyO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKFwic3R5bGUuLS1hdXAtdGFibGUtaGVhZGVyLWhlaWdodFwiKVxuICBnZXQgaGVhZGVySGVpZ2h0Q3NzVmFyKCkge1xuICAgIHJldHVybiBgJHt0aGlzLmhlYWRlckhlaWdodCQudmFsdWV9cHhgXG4gIH1cblxuICBASG9zdEJpbmRpbmcoXCJzdHlsZS4tLWF1cC10YWJsZS1yb3ctaGVpZ2h0XCIpXG4gIGdldCByb3dIZWlnaHRDc3NWYXIoKSB7XG4gICAgcmV0dXJuIGAke3RoaXMucm93SGVpZ2h0JC52YWx1ZX1weGBcbiAgfVxuXG4gIG5vdGlmeUNlbGxDbGlja2VkKGNvbHVtbk1vZGVsOiBDb2x1bW5Nb2RlbDxSb3c+LCByb3c6IFJvdykge1xuICAgIHRoaXMudGFibGVNb2RlbC5fbm90aWZ5Q2VsbENsaWNrZWQoY29sdW1uTW9kZWwsIHJvdyk7XG4gIH1cblxuICAvLyBAVHJhY2UoKVxuXG4gIGlzRmlyc3RWaXNpYmxlQ29sdW1uKGNvbHVtbklkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy50YWJsZU1vZGVsLmZpcnN0VmlzaWJsZUNvbHVtbiQucXVlcnkoKS52YWx1ZT8uY29sdW1uSWQgPT09IGNvbHVtbklkO1xuICB9XG5cbiAgLy8gQFRyYWNlKClcblxuICBpc0xhc3RWaXNpYmxlQ29sdW1uKGNvbHVtbklkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy50YWJsZU1vZGVsLmxhc3RWaXNpYmxlQ29sdW1uJC5xdWVyeSgpLnZhbHVlPy5jb2x1bW5JZCA9PT0gY29sdW1uSWQ7XG4gIH1cblxuICBnZXRDb2x1bW5DbGFzc2VzKGNvbHVtbklkOiBzdHJpbmcpIHtcbiAgICBjb25zdCBjbGFzc2VzID0gW2BhdXAtY29sLSR7dGhpcy5jb2x1bW5zQnlJZCQuZ2V0KGNvbHVtbklkKS5kYXNoZXJpc2VkQ29sdW1uSWR9YF07XG4gICAgaWYgKHRoaXMuaXNGaXJzdFZpc2libGVDb2x1bW4oY29sdW1uSWQpKSB7XG4gICAgICBjbGFzc2VzLnB1c2goXCJmaXJzdC12aXNpYmxlLWNvbHVtblwiKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuaXNMYXN0VmlzaWJsZUNvbHVtbihjb2x1bW5JZCkpIHtcbiAgICAgIGNsYXNzZXMucHVzaChcImxhc3QtdmlzaWJsZS1jb2x1bW5cIik7XG4gICAgfVxuICAgIHJldHVybiBjbGFzc2VzO1xuICB9XG5cbiAgcHJpdmF0ZSBzY2hlZHVsZVRhYmxlSGVpZ2h0Q2hlY2sod2FpdE1pbGxpcyA9IDUwKSB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAvLyBVc2UgQ0RLJ3MgaW50ZXJuYWwgcmVuZGVyZWQgcmFuZ2UgdG8gZGV0ZWN0IGEgYnJva2VuIHZpcnR1YWwgc2Nyb2xsIHN0YXRlIOKAlFxuICAgICAgLy8gYXZvaWRzIHJlYWRpbmcgb2Zmc2V0SGVpZ2h0IChmb3JjZWQgbGF5b3V0KSBhbmQgZGlzcGF0Y2hpbmcgYSBnbG9iYWwgcmVzaXplIGV2ZW50XG4gICAgICAvLyAod2hpY2ggdHJpZ2dlcnMgQW5ndWxhcidzIGFuaW1hdGlvbiBlbmdpbmUgdG8gY2FsbCBnZXRDb21wdXRlZFN0eWxlIG9uIGFsbCBlbGVtZW50cykuXG4gICAgICBjb25zdCByZW5kZXJlZFJhbmdlID0gdGhpcy5zY3JvbGxWaWV3cG9ydD8uZ2V0UmVuZGVyZWRSYW5nZSgpO1xuICAgICAgLy8gQSB1c2FibGUgdmlydHVhbCB2aWV3cG9ydCByZW5kZXJzIG1vcmUgdGhhbiBvbmUgcm93IHdoZW5ldmVyIG1vcmUgZGF0YSBleGlzdHMuIFJlbmRlcmluZ1xuICAgICAgLy8gbm9uZSBvciBvbmUgcm93IGF0IHRoZSB0b3Agd2hpbGUgZGF0YSQgaG9sZHMgbW9yZSBtZWFucyB0aGUgdmlld3BvcnQgbWVhc3VyZWQgYVxuICAgICAgLy8gY29sbGFwc2VkL3N0YWxlIGhlaWdodCAoZS5nLiBpdCB3YXMgbWVhc3VyZWQgYmVmb3JlIHRoZSB0YWJsZSB3YXMgc2l6ZWQgdXAsIHRoZW4gbmV2ZXJcbiAgICAgIC8vIHJlLW1lYXN1cmVkIHVuZGVyIGRldGFjaGVkIGNoYW5nZSBkZXRlY3Rpb24pIOKAlCBzbyByZS1tZWFzdXJlIHRvIGV4cGFuZCB0aGUgcmVuZGVyZWQgcmFuZ2UuXG4gICAgICAvLyBDb3ZlcnMgYm90aCB0aGUgemVyby1yb3cgY29sbGFwc2UgYW5kIHRoZSBwYXJ0aWFsIChvbmUtcm93KSB1bmRlci1yZW5kZXIuIERldGVjdGlvbiBzdGF5c1xuICAgICAgLy8gbGF5b3V0LWZyZWUgKGdldFJlbmRlcmVkUmFuZ2Ugb25seSk7IGNvcnJlY3RseS1zaXplZCBhbmQgZ2VudWluZWx5LXZpcnR1YWxpc2VkIGxhcmdlXG4gICAgICAvLyB0YWJsZXMgcmVuZGVyIG1hbnkgcm93cywgc28gdGhleSBuZXZlciByZWFjaCB0aGUgY2hlY2tWaWV3cG9ydFNpemUoKSByZWZsb3cgYmVsb3cuXG4gICAgICBjb25zdCByZW5kZXJlZENvdW50ID0gcmVuZGVyZWRSYW5nZSAhPSBudWxsID8gcmVuZGVyZWRSYW5nZS5lbmQgLSByZW5kZXJlZFJhbmdlLnN0YXJ0IDogMDtcbiAgICAgIGNvbnN0IHVuZGVyUmVuZGVyZWQgPSByZW5kZXJlZFJhbmdlICE9IG51bGwgJiYgcmVuZGVyZWRSYW5nZS5zdGFydCA9PT0gMCAmJiByZW5kZXJlZENvdW50IDw9IDE7XG4gICAgICBpZiAodW5kZXJSZW5kZXJlZCAmJiB0aGlzLmRhdGEkLmxlbmd0aCA+IHJlbmRlcmVkQ291bnQpIHtcbiAgICAgICAgdGhpcy5zY3JvbGxWaWV3cG9ydD8uY2hlY2tWaWV3cG9ydFNpemUoKTtcbiAgICAgICAgaWYgKHdhaXRNaWxsaXMgPCA1MDApIHtcbiAgICAgICAgICB0aGlzLnNjaGVkdWxlVGFibGVIZWlnaHRDaGVjayh3YWl0TWlsbGlzICsgNTApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSwgd2FpdE1pbGxpcylcbiAgfVxuXG4gIHByaXZhdGUgbm90aWZ5U2Nyb2xsZWQoKSB7XG4gICAgdGhpcy52aXJ0dWFsU2Nyb2xsQWN0aXZlJC52YWx1ZSA9IHRydWU7XG4gICAgdGhpcy5hbmltYXRpb25zRGlzYWJsZWQkLnZhbHVlID0gdHJ1ZTtcbiAgICAvLyBTeW5jIHRoZSBbQC5kaXNhYmxlZF09XCJ0cnVlXCIgdG8gdGhlIERPTSBpbW1lZGlhdGVseSBzbyBDREsncyBwZW5kaW5nIHJhbmdlXG4gICAgLy8gdXBkYXRlICh3aGljaCBpcyBzY2hlZHVsZWQgYXN5bmMpIHNlZXMgYW5pbWF0aW9ucyBzdXBwcmVzc2VkIHdoZW4gaXQgcmVuZGVycyByb3dzLlxuICAgIGlmICh0aGlzLm9wdGltaXNlZENoYW5nZURldGVjdGlvbkVuYWJsZWQpIHtcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG4gICAgdGhpcy5jbGVhclNjcm9sbFRpbWVvdXQoKTtcbiAgICB0aGlzLnNjcm9sbFRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHRoaXMubm90aWZ5U2Nyb2xsRW5kZWQoKSwgMTAwKTtcbiAgfVxuXG4gIHByaXZhdGUgbm90aWZ5U2Nyb2xsRW5kZWQoKSB7XG4gICAgdGhpcy5jbGVhclNjcm9sbFRpbWVvdXQoKTtcbiAgICB0aGlzLnZpcnR1YWxTY3JvbGxBY3RpdmUkLnZhbHVlID0gZmFsc2U7XG4gICAgdGhpcy5yZXNldEFuaW1hdGlvbnNBZnRlckZyYW1lKCk7XG4gIH1cblxuICBvdmVycmlkZSBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnNjcm9sbEVuZEFib3J0Q29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICB9XG5cbiAgcHJpdmF0ZSByZXNldEFuaW1hdGlvbnNBZnRlckZyYW1lKCkge1xuICAgIC8vIENhbmNlbCBhbnkgcGVuZGluZyByZXNldCBzbyByYXBpZCBkYXRhIGNoYW5nZXMgZG9uJ3QgcmUtZW5hYmxlIGFuaW1hdGlvbnMgbWlkLXJlbmRlci5cbiAgICBpZiAodGhpcy5hbmltYXRpb25zUmVzZXRSYWZJZCAhPT0gbnVsbCkge1xuICAgICAgY2FuY2VsQW5pbWF0aW9uRnJhbWUodGhpcy5hbmltYXRpb25zUmVzZXRSYWZJZCk7XG4gICAgfVxuICAgIC8vIFJlLWVuYWJsZSBhZnRlciB0aGUgbmV4dCBmcmFtZTogYnkgdGhlbiBDREsgaGFzIGNyZWF0ZWQgcm93cyBhbmQgQ0QgaGFzIHJ1bixcbiAgICAvLyBzbyA6ZW50ZXIgYW5pbWF0aW9ucyB3b24ndCBmaXJlIG9uIHRoZSBuZXdseSBjcmVhdGVkIHJvdyBjb21wb25lbnRzLlxuICAgIHRoaXMuYW5pbWF0aW9uc1Jlc2V0UmFmSWQgPSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgdGhpcy5hbmltYXRpb25zUmVzZXRSYWZJZCA9IG51bGw7XG4gICAgICB0aGlzLmFuaW1hdGlvbnNEaXNhYmxlZCQudmFsdWUgPSBmYWxzZTtcbiAgICAgIGlmICh0aGlzLm9wdGltaXNlZENoYW5nZURldGVjdGlvbkVuYWJsZWQpIHtcbiAgICAgICAgLy8gZGV0ZWN0Q2hhbmdlcygpIGRpcmVjdGx5IOKAlCBtYXJrRm9yQ2hlY2soKSBkb2VzIG5vdGhpbmcgb24gYSBkZXRhY2hlZCB2aWV3LlxuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNsZWFyU2Nyb2xsVGltZW91dCgpIHtcbiAgICBpZiAodGhpcy5zY3JvbGxUaW1lb3V0KSB7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5zY3JvbGxUaW1lb3V0KTtcbiAgICB9XG4gIH1cblxufVxuXG5cbmV4cG9ydCBuYW1lc3BhY2UgVGFibGVCb2R5Q29tcG9uZW50IHtcbiAgZXhwb3J0IHR5cGUgU2Nyb2xsTW9kZSA9IFwibm9uZVwiIHwgXCJjbGFzc2ljXCIgfCBcInZpcnR1YWxcIjtcbn1cbiIsIlxuPGRpdiBjbGFzcz1cImNsYXNzaWMtc2Nyb2xsLWNvbnRhaW5lclwiICpuZ0lmPVwic2Nyb2xsTW9kZSQudmFsdWUgIT09ICd2aXJ0dWFsJ1wiPlxuICA8dGFibGUgbWF0LXRhYmxlIFtkYXRhU291cmNlXT1cImRhdGEkLnZhbHVlXCIgW3RyYWNrQnldPVwidHJhY2tCeVwiIFttdWx0aVRlbXBsYXRlRGF0YVJvd3NdPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGNvbHVtbnMkLnZhbHVlOyBpbmRleCBhcyBpbmRleDsgZmlyc3QgYXMgZmlyc3Q7IGxhc3QgYXMgbGFzdFwiXG4gICAgICAgICAgICAgICAgICBtYXRDb2x1bW5EZWY9XCJ7e2NvbHVtbi5jb2x1bW5JZH19XCI+XG4gICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmIFtjbGFzcy5mbGV4XT1cImNvbHVtbi5pc0ZsZXgoKVwiIFtjbGFzcy5oaWRlXT1cIiFjb2x1bW4uaXNWaXNpYmxlKClcIj5cbiAgICAgICAgPGF1cC10YWJsZS1oZWFkZXItY2VsbCBbY29sdW1uXT1cIiRhbnkoY29sdW1uKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuY29sdW1uLWluZGV4XT1cImluZGV4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5jb2x1bW4taWRdPVwiY29sdW1uLmNvbHVtbklkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3NdPVwiZ2V0Q29sdW1uQ2xhc3Nlcyhjb2x1bW4uY29sdW1uSWQpXCJcbiAgICAgICAgPjwvYXVwLXRhYmxlLWhlYWRlci1jZWxsPlxuICAgICAgPC90aD5cbiAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCByb3dcIiAoY2xpY2spPVwibm90aWZ5Q2VsbENsaWNrZWQoY29sdW1uLCByb3cpXCJcbiAgICAgICAgICBbY2xhc3MuZW5hYmxlLWN1cnNvcl09XCJ0YWJsZU1vZGVsLmlzQ3Vyc29yRW5hYmxlZEZvclJvdyhjb2x1bW4sIHJvdylcIlxuICAgICAgICAgIFtjbGFzcy5mbGV4XT1cImNvbHVtbi5pc0ZsZXgoKVwiXG4gICAgICAgICAgW2NsYXNzLmhpZGVdPVwiIWNvbHVtbi5pc1Zpc2libGUoKVwiXG4gICAgICA+XG4gICAgICAgIDxhdXAtdGFibGUtY2VsbCBbY29sdW1uXT1cIiRhbnkoY29sdW1uKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbcm93XT1cInJvd1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbdGFibGVNb2RlbF09XCIkYW55KHRhYmxlTW9kZWwpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmNvbHVtbi1pbmRleF09XCJpbmRleFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5jb2x1bW4taWRdPVwiY29sdW1uLmNvbHVtbklkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzc109XCJnZXRDb2x1bW5DbGFzc2VzKGNvbHVtbi5jb2x1bW5JZClcIlxuICAgICAgICA+PC9hdXAtdGFibGUtY2VsbD5cbiAgICAgIDwvdGQ+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8dHIgbWF0LWhlYWRlci1yb3cgKm1hdEhlYWRlclJvd0RlZj1cImNvbHVtbklkcyQudmFsdWU7IHN0aWNreTogdHJ1ZVwiPjwvdHI+XG4gICAgPHRyIG1hdC1yb3cgKm1hdFJvd0RlZj1cImxldCByb3c7IGNvbHVtbnM6IGNvbHVtbklkcyQudmFsdWU7IGxldCBpID0gaW5kZXhcIlxuICAgICAgICBbbmdDbGFzc109XCJ0YWJsZU1vZGVsLmdldFJvd0NsYXNzZXMocm93KVwiXG4gICAgICAgIFtjbGFzcy5lbmFibGUtaG92ZXJdPVwidGFibGVNb2RlbC5pc0hvdmVyRW5hYmxlZEZvclJvdyhyb3cpXCJcbiAgICAgICAgW2F1cFRhYmxlUm93QXR0cmlidXRlc109XCJ0YWJsZU1vZGVsLmdldFJvd0F0dHJpYnV0ZXMocm93KVwiXG4gICAgICAgIFthdHRyLmF1cC1yb3ctaWRdPVwidHJhY2tCeShpLCByb3cpXCJcbiAgICA+PC90cj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGZvb3RlciBvZiBmb290ZXJSb3dEZWZzJC52YWx1ZVwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY2VsbCBvZiBmb290ZXIuY2VsbHNcIiBbbWF0Q29sdW1uRGVmXT1cImNlbGwuZGVmSWRcIj5cbiAgICAgICAgPHRkIG1hdC1mb290ZXItY2VsbCAqbWF0Rm9vdGVyQ2VsbERlZiBbYXR0ci5jb2xzcGFuXT1cImNlbGwuY29sc3BhblwiXG4gICAgICAgICAgICBbYXR0ci5jb2x1bW4taWRdPVwiY2VsbC5jb2x1bW5JZFwiIGNsYXNzPVwiZm9vdGVyLWNlbGxcIj5cbiAgICAgICAgICA8YXVwLXRhYmxlLWZvb3Rlci1yb3cgKm5nSWY9XCIhY2VsbC5maWxsZXJcIiBbY2VsbF09XCJjZWxsXCI+PC9hdXAtdGFibGUtZm9vdGVyLXJvdz5cbiAgICAgICAgPC90ZD5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPHRyIG1hdC1mb290ZXItcm93ICptYXRGb290ZXJSb3dEZWY9XCJmb290ZXIuZGVmSWRzOyBzdGlja3k6IHRydWVcIiBbbmdDbGFzc109XCJmb290ZXIucm93Q2xhc3Nlc1wiXG4gICAgICAgICAgW2NsYXNzLmF1cC1mb290ZXItcm93LWhpZGRlbl09XCJmb290ZXIudmlzaWJsZSQgJiYgIWZvb3Rlci52aXNpYmxlJC52YWx1ZVwiPjwvdHI+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgPC90YWJsZT5cbjwvZGl2PlxuXG48Y2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0ICAqbmdJZj1cInNjcm9sbE1vZGUkLnZhbHVlID09PSAndmlydHVhbCdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW0AuZGlzYWJsZWRdPVwiYW5pbWF0aW9uc0Rpc2FibGVkJC52YWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdHZzSXRlbVNpemVdPVwicm93SGVpZ2h0JC52YWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaGVhZGVySGVpZ2h0XT1cImhlYWRlckhlaWdodCQudmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Zvb3RlckVuYWJsZWRdPVwiKGZvb3RlclJvd0RlZnMkPy52YWx1ZT8ubGVuZ3RoID8/IDApID4gMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZm9vdGVySGVpZ2h0XT1cIjQ4ICogKGZvb3RlclJvd0RlZnMkPy52YWx1ZT8ubGVuZ3RoID8/IDApXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtidWZmZXJNdWx0aXBsaWVyXT1cImJ1ZmZlck11bHRpcGxpZXJcIlxuPlxuICA8dGFibGUgbWF0LXRhYmxlIFtkYXRhU291cmNlXT1cInZpcnR1YWxTY3JvbGxEYXRhU291cmNlXCIgW3RyYWNrQnldPVwidHJhY2tCeVwiPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGNvbHVtbnMkLnZhbHVlOyBpbmRleCBhcyBpbmRleDsgZmlyc3QgYXMgZmlyc3Q7IGxhc3QgYXMgbGFzdFwiXG4gICAgICAgICAgICAgICAgICBtYXRDb2x1bW5EZWY9XCJ7e2NvbHVtbi5jb2x1bW5JZH19XCI+XG4gICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmIFtjbGFzcy5mbGV4XT1cImNvbHVtbi5pc0ZsZXgoKVwiIFtjbGFzcy5oaWRlXT1cIiFjb2x1bW4uaXNWaXNpYmxlKClcIj5cbiAgICAgICAgPGF1cC10YWJsZS1oZWFkZXItY2VsbCBbY29sdW1uXT1cImNvbHVtblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuY29sdW1uLWluZGV4XT1cImluZGV4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5jb2x1bW4taWRdPVwiY29sdW1uLmNvbHVtbklkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3NdPVwiZ2V0Q29sdW1uQ2xhc3Nlcyhjb2x1bW4uY29sdW1uSWQpXCJcbiAgICAgICAgPjwvYXVwLXRhYmxlLWhlYWRlci1jZWxsPlxuICAgICAgPC90aD5cbiAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCByb3dcIiAoY2xpY2spPVwibm90aWZ5Q2VsbENsaWNrZWQoY29sdW1uLCByb3cpXCJcbiAgICAgICAgICBbY2xhc3MuZW5hYmxlLWN1cnNvcl09XCJ0YWJsZU1vZGVsLmlzQ3Vyc29yRW5hYmxlZEZvclJvdyhjb2x1bW4sIHJvdylcIlxuICAgICAgICAgIFtjbGFzcy5mbGV4XT1cImNvbHVtbi5pc0ZsZXgoKVwiXG4gICAgICAgICAgW2NsYXNzLmhpZGVdPVwiIWNvbHVtbi5pc1Zpc2libGUoKVwiXG4gICAgICA+XG4gICAgICAgIDxhdXAtdGFibGUtY2VsbCBbY29sdW1uXT1cIiRhbnkoY29sdW1uKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbcm93XT1cInJvd1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbdGFibGVNb2RlbF09XCIkYW55KHRhYmxlTW9kZWwpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmNvbHVtbi1pbmRleF09XCJpbmRleFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5jb2x1bW4taWRdPVwiY29sdW1uLmNvbHVtbklkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzc109XCJnZXRDb2x1bW5DbGFzc2VzKGNvbHVtbi5jb2x1bW5JZClcIlxuICAgICAgICA+PC9hdXAtdGFibGUtY2VsbD5cbiAgICAgIDwvdGQ+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8dHIgbWF0LWhlYWRlci1yb3cgKm1hdEhlYWRlclJvd0RlZj1cImNvbHVtbklkcyQudmFsdWU7IHN0aWNreTogdHJ1ZVwiPjwvdHI+XG4gICAgPHRyIG1hdC1yb3cgKm1hdFJvd0RlZj1cImxldCByb3c7IGNvbHVtbnM6IGNvbHVtbklkcyQudmFsdWU7IGxldCBpID0gaW5kZXhcIlxuICAgICAgICBbbmdDbGFzc109XCJ0YWJsZU1vZGVsLmdldFJvd0NsYXNzZXMocm93KVwiXG4gICAgICAgIFtjbGFzcy5lbmFibGUtaG92ZXJdPVwidGFibGVNb2RlbC5pc0hvdmVyRW5hYmxlZEZvclJvdyhyb3cpXCJcbiAgICAgICAgW2F1cFRhYmxlUm93QXR0cmlidXRlc109XCJ0YWJsZU1vZGVsLmdldFJvd0F0dHJpYnV0ZXMocm93KVwiXG4gICAgICAgIFthdHRyLmF1cC1yb3ctaWRdPVwidHJhY2tCeShpLCByb3cpXCJcbiAgICA+PC90cj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGZvb3RlciBvZiBmb290ZXJSb3dEZWZzJC52YWx1ZVwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY2VsbCBvZiBmb290ZXIuY2VsbHNcIiBbbWF0Q29sdW1uRGVmXT1cImNlbGwuZGVmSWRcIj5cbiAgICAgICAgPHRkIG1hdC1mb290ZXItY2VsbCAqbWF0Rm9vdGVyQ2VsbERlZiBbYXR0ci5jb2xzcGFuXT1cImNlbGwuY29sc3BhblwiXG4gICAgICAgICAgICBbYXR0ci5jb2x1bW4taWRdPVwiY2VsbC5jb2x1bW5JZFwiIGNsYXNzPVwiZm9vdGVyLWNlbGxcIj5cbiAgICAgICAgICA8YXVwLXRhYmxlLWZvb3Rlci1yb3cgKm5nSWY9XCIhY2VsbC5maWxsZXJcIiBbY2VsbF09XCJjZWxsXCI+PC9hdXAtdGFibGUtZm9vdGVyLXJvdz5cbiAgICAgICAgPC90ZD5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPHRyIG1hdC1mb290ZXItcm93ICptYXRGb290ZXJSb3dEZWY9XCJmb290ZXIuZGVmSWRzOyBzdGlja3k6IHRydWVcIiBbbmdDbGFzc109XCJmb290ZXIucm93Q2xhc3Nlc1wiXG4gICAgICAgICAgW2NsYXNzLmF1cC1mb290ZXItcm93LWhpZGRlbl09XCJmb290ZXIudmlzaWJsZSQgJiYgIWZvb3Rlci52aXNpYmxlJC52YWx1ZVwiPjwvdHI+XG4gICAgPC9uZy1jb250YWluZXI+XG5cblxuICA8L3RhYmxlPlxuPC9jZGstdmlydHVhbC1zY3JvbGwtdmlld3BvcnQ+XG5cbiJdfQ==
372
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtYm9keS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9jb21wb25lbnRzL3RhYmxlcy9yZW5kZXJlci90YWJsZS1ib2R5L3RhYmxlLWJvZHkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvY29tcG9uZW50cy90YWJsZXMvcmVuZGVyZXIvdGFibGUtYm9keS90YWJsZS1ib2R5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxzR0FBc0c7QUFDdEcsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDaEUsT0FBTyxFQUVMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsU0FBUyxFQUNULFVBQVUsRUFDVixXQUFXLEVBQ1gsTUFBTSxFQUNOLGNBQWMsRUFDZCxLQUFLLEVBR0wsUUFBUSxFQUNSLFNBQVMsRUFDVCxNQUFNLEVBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLEdBQUcsRUFDSCxTQUFTLEVBR1QsaUJBQWlCLEVBQ2pCLE9BQU8sRUFDUCxPQUFPLEVBQ1AsaUJBQWlCLEVBQ2pCLFVBQVUsRUFDWCxNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBQyw0QkFBNEIsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ3JFLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQ3JFLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBSTlELE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxtQkFBbUIsRUFBQyxNQUFNLCtCQUErQixDQUFDOzs7Ozs7Ozs7QUFFM0YsTUFBTSxDQUFDLE1BQU0sMENBQTBDLEdBQUcsSUFBSSxjQUFj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RTs4QkFDRyxVQUFVO3FEQUF5QztBQUdoRTtJQURDLGlCQUFpQixFQUFFOztvREFDRjtBQU1sQjtJQURDLE9BQU8sRUFBRTs4QkFDRyxVQUFVO3FEQUFxRjtBQUk1RztJQUZDLGlCQUFpQixFQUFFOztvREFFK0I7MkZBM0JqRCxrQkFBa0I7a0JBUjlCLFNBQVM7K0JBQ0UsZ0JBQWdCLGFBR2Y7d0JBQ1QsRUFBRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxvQ0FBb0MsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFO3FCQUM1Sjs7MEJBZ0ZZLE1BQU07MkJBQUMsMENBQTBDOzswQkFBRyxRQUFROzRDQTNFaEUsS0FBSztzQkFEYixLQUFLO2dCQUlHLFVBQVU7c0JBRGxCLEtBQUs7Z0JBTU4sVUFBVTtzQkFEVCxLQUFLO2dCQUlHLFdBQVc7c0JBRG5CLEtBQUs7Z0JBSUcsVUFBVTtzQkFEbEIsS0FBSztnQkFJTixPQUFPO3NCQUROLEtBQUs7Z0JBSUcsV0FBVztzQkFEbkIsS0FBSztnQkFLRyxVQUFVO3NCQUZsQixLQUFLOztzQkFDTCxXQUFXO3VCQUFDLGlCQUFpQjtnQkFJOUIsY0FBYztzQkFEYixTQUFTO3VCQUFDLHdCQUF3QjtnQkFxQm5DLFlBQVk7c0JBRFgsV0FBVzt1QkFBQyxPQUFPO2dCQUloQix1QkFBdUI7c0JBRDFCLFdBQVc7dUJBQUMsK0JBQStCO2dCQW1IeEMsVUFBVTtzQkFEYixXQUFXO3VCQUFDLG1CQUFtQjtnQkFNNUIsa0JBQWtCO3NCQURyQixXQUFXO3VCQUFDLGlDQUFpQztnQkFNMUMsZUFBZTtzQkFEbEIsV0FBVzt1QkFBQyw4QkFBOEIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55IC0tIHRhYmxlIGJvZHkgcmVuZGVycyBhcmJpdHJhcnkgcm93L2NlbGwgdHlwZXMgKi9cbmltcG9ydCB7Q2RrVmlydHVhbFNjcm9sbFZpZXdwb3J0fSBmcm9tIFwiQGFuZ3VsYXIvY2RrL3Njcm9sbGluZ1wiO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBIb3N0QmluZGluZyxcbiAgSW5qZWN0LFxuICBJbmplY3Rpb25Ub2tlbixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPcHRpb25hbCxcbiAgVmlld0NoaWxkLFxuICBpbmplY3Rcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7XG4gIERzbCxcbiAgTGlzdE1vZGVsLFxuICBMaXN0TW9kZWxDaGFpbixcbiAgTWFwTW9kZWxDaGFpbixcbiAgTXV0YWJsZVZhbHVlTW9kZWwsXG4gIFByb3hpZnksXG4gIHByb3hpZnksXG4gIFN0b3JlSW5WYWx1ZU1vZGVsLFxuICBWYWx1ZU1vZGVsXG59IGZyb20gXCJAY29vbG9uL3BlY3RpblwiO1xuaW1wb3J0IHtUYWJsZVZpcnR1YWxTY3JvbGxEYXRhU291cmNlfSBmcm9tIFwibmctdGFibGUtdmlydHVhbC1zY3JvbGxcIjtcbmltcG9ydCB7UmVzaXplQXdhcmVDb21wb25lbnR9IGZyb20gXCIuLi8uLi8uLi9yZXNpemUtYXdhcmUuY29tcG9uZW50XCI7XG5pbXBvcnQge0Fic3RyYWN0VGFibGVNb2RlbH0gZnJvbSBcIi4uLy4uL2Fic3RyYWN0LXRhYmxlLW1vZGVsXCI7XG5pbXBvcnQgdHlwZSB7Q29sdW1uTW9kZWx9IGZyb20gXCIuLi8uLi9jb2x1bW4vY29sdW1uLW1vZGVsXCI7XG5pbXBvcnQge0Zvb3RlclJvd01vZGVsLCBSZXNvbHZlZEZvb3RlclJvd30gZnJvbSBcIi4uLy4uL2Zvb3Rlci9mb290ZXItcm93LW1vZGVsXCI7XG5cbmltcG9ydCB7QVVQX0RFVEFDSEVEX1BBUkVOVF9DRFIsIERpc3Bvc2FibGVDb21wb25lbnR9IGZyb20gXCIuLi8uLi8uLi9kaXNwb3NhYmxlLWNvbXBvbmVudFwiO1xuXG5leHBvcnQgY29uc3QgQVVQX1RBQkxFX1ZJUlRVQUxfU0NST0xMX0JVRkZFUl9NVUxUSVBMSUVSID0gbmV3IEluamVjdGlvblRva2VuPG51bWJlcj4oXCJBVVBfVEFCTEVfVklSVFVBTF9TQ1JPTExfQlVGRkVSX01VTFRJUExJRVJcIilcbmV4cG9ydCBjb25zdCBBVVBfVEFCTEVfT1BUSU1JWkVEX0NIQU5HRV9ERVRFQ1RJT04gPSBuZXcgSW5qZWN0aW9uVG9rZW48Ym9vbGVhbj4oXCJBVVBfVEFCTEVfT1BUSU1JWkVEX0NIQU5HRV9ERVRFQ1RJT05cIilcblxuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6IFwiW2F1cFRhYmxlUm93QXR0cmlidXRlc11cIixcbn0pXG5leHBvcnQgY2xhc3MgVGFibGVSb3dBdHRyaWJ1dGVzRGlyZWN0aXZlIGltcGxlbWVudHMgT25DaGFuZ2VzIHtcblxuICBASW5wdXQoKVxuICBhdXBUYWJsZVJvd0F0dHJpYnV0ZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcblxuICAvKiogQXR0cmlidXRlIG5hbWVzIGFwcGxpZWQgb24gdGhlIHByZXZpb3VzIHBhc3MsIHNvIG9uZXMgdGhhdCBkaXNhcHBlYXIgY2FuIGJlIHJlbW92ZWQuICovXG4gIHByaXZhdGUgYXBwbGllZEF0dHJpYnV0ZU5hbWVzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCByZWFkb25seSBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50Pikge1xuICB9XG5cbiAgLy8gUmUtYXBwbHkgb24gZXZlcnkgY2hhbmdlLCBub3QganVzdCBvbmNlIGF0IGluaXQ6IGEgcm93J3MgYXR0cmlidXRlIHZhbHVlcyBjYW4gY2hhbmdlIGFmdGVyIHRoZVxuICAvLyByb3cgaGFzIHJlbmRlcmVkIChlLmcuIGFuIE9UQVAgZGV2aWNlIHJvdyB3aG9zZSBkZXZpY2UgcmVjb3JkIHJlc29sdmVzIGFmdGVyIGl0cyBzY3JhdGNocGFkIHJvd1xuICAvLyB3YXMgY3JlYXRlZCksIGFuZCB0aGUgZWxlbWVudCBtdXN0IHJlZmxlY3QgdGhlIGxhdGVzdCB2YWx1ZXMuIFByZXZpb3VzbHkgdGhpcyBpbXBsZW1lbnRlZCBPbkluaXQsXG4gIC8vIHNvIHRoZSBhdHRyaWJ1dGVzIHdlcmUgZnJvemVuIGF0IHJvdy1jcmVhdGlvbiB0aW1lIGFuZCB3ZW50IHN0YWxlIChlLmcuIGRldmljZUhhcmR3YXJlSWQgc3R1Y2sgb25cbiAgLy8gaXRzIGluaXRpYWwgXCJ1bmRlZmluZWRcIikuXG4gIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xuICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICBjb25zdCBuZXh0ID0gdGhpcy5hdXBUYWJsZVJvd0F0dHJpYnV0ZXMgPz8ge307XG4gICAgZm9yIChjb25zdCBhdHRyIG9mIHRoaXMuYXBwbGllZEF0dHJpYnV0ZU5hbWVzKSB7XG4gICAgICBpZiAoIShhdHRyIGluIG5leHQpKSB7XG4gICAgICAgIGVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKGF0dHIpO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLmFwcGxpZWRBdHRyaWJ1dGVOYW1lcyA9IE9iamVjdC5rZXlzKG5leHQpO1xuICAgIGZvciAoY29uc3QgYXR0ciBvZiB0aGlzLmFwcGxpZWRBdHRyaWJ1dGVOYW1lcykge1xuICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoYXR0ciwgbmV4dFthdHRyXSk7XG4gICAgfVxuICB9XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJhdXAtdGFibGUtYm9keVwiLFxuICB0ZW1wbGF0ZVVybDogXCIuL3RhYmxlLWJvZHkuY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVVcmxzOiBbXCIuL3RhYmxlLWJvZHkuY29tcG9uZW50LnNjc3NcIl0sXG4gIHByb3ZpZGVyczogW1xuICAgIHsgcHJvdmlkZTogQVVQX0RFVEFDSEVEX1BBUkVOVF9DRFIsIHVzZUZhY3Rvcnk6ICgpID0+IGluamVjdChBVVBfVEFCTEVfT1BUSU1JWkVEX0NIQU5HRV9ERVRFQ1RJT04sIHsgb3B0aW9uYWw6IHRydWUgfSkgPyBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpIDogbnVsbCB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgVGFibGVCb2R5Q29tcG9uZW50PFJvdyBleHRlbmRzIG9iamVjdD4gZXh0ZW5kcyBSZXNpemVBd2FyZUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG5cbiAgQElucHV0KCkgQFByb3hpZnkoKVxuICBhY2Nlc3NvciBkYXRhJDogTGlzdE1vZGVsPFJvdz4gPSBwcm94aWZ5KExpc3RNb2RlbDxSb3c+KTtcblxuICBASW5wdXQoKSBAUHJveGlmeSgpXG4gIGFjY2Vzc29yIHRhYmxlTW9kZWw6IEFic3RyYWN0VGFibGVNb2RlbDxSb3c+ID0gcHJveGlmeShBYnN0cmFjdFRhYmxlTW9kZWw8Um93Pik7XG5cbiAgLy8gRm9vdGVyIHJvd3MgYXJlIGJ1aWx0IG9uY2UgaW4gdGhlIFRhYmxlTW9kZWwgYnVpbGRlciBjYWxsYmFjaywgc28gYSBwbGFpbiBpbnB1dCBpcyBlbm91Z2g7XG4gIC8vIHRoZSBwZXItcm93IGNlbGwgbGF5b3V0IChmb290ZXJSb3dEZWZzJCkgaXMgZGVyaXZlZCByZWFjdGl2ZWx5IGZyb20gdGhlIHZpc2libGUgY29sdW1ucy5cbiAgQElucHV0KClcbiAgZm9vdGVyUm93czogRm9vdGVyUm93TW9kZWwuSW1wbFtdID0gW107XG5cbiAgQElucHV0KCkgQFByb3hpZnkoKVxuICBhY2Nlc3NvciBzaG93SGVhZGVyJDogVmFsdWVNb2RlbDxib29sZWFuPiA9IHByb3hpZnkoVmFsdWVNb2RlbDxib29sZWFuPik7XG5cbiAgQElucHV0KCkgQFN0b3JlSW5WYWx1ZU1vZGVsKClcbiAgYWNjZXNzb3Igc2hvd0hlYWRlciA9IHRydWU7XG5cbiAgQElucHV0KClcbiAgdHJhY2tCeTogKGluZGV4OiBudW1iZXIsIGl0ZW06IFJvdykgPT4gYW55XG5cbiAgQElucHV0KCkgQFByb3hpZnkoKVxuICBhY2Nlc3NvciBzY3JvbGxNb2RlJDogVmFsdWVNb2RlbDxUYWJsZUJvZHlDb21wb25lbnQuU2Nyb2xsTW9kZT4gPSBwcm94aWZ5KFZhbHVlTW9kZWw8VGFibGVCb2R5Q29tcG9uZW50LlNjcm9sbE1vZGU+KTtcblxuICBASW5wdXQoKSBAU3RvcmVJblZhbHVlTW9kZWwoKVxuICBASG9zdEJpbmRpbmcoXCJhdHRyLnNjcm9sbE1vZGVcIilcbiAgYWNjZXNzb3Igc2Nyb2xsTW9kZTogVGFibGVCb2R5Q29tcG9uZW50LlNjcm9sbE1vZGUgPSBcIm5vbmVcIjtcblxuICBAVmlld0NoaWxkKENka1ZpcnR1YWxTY3JvbGxWaWV3cG9ydClcbiAgc2Nyb2xsVmlld3BvcnQ6IENka1ZpcnR1YWxTY3JvbGxWaWV3cG9ydFxuXG4gIGNvbHVtbnMkOiBMaXN0TW9kZWxDaGFpbjxDb2x1bW5Nb2RlbDxSb3c+PjtcbiAgY29sdW1uSWRzJDogTGlzdE1vZGVsQ2hhaW48c3RyaW5nPjtcbiAgZm9vdGVyUm93RGVmcyQ6IFZhbHVlTW9kZWw8UmVzb2x2ZWRGb290ZXJSb3dbXT47XG5cbiAgcHJpdmF0ZSBjb2x1bW5zQnlJZCQ6IE1hcE1vZGVsQ2hhaW48c3RyaW5nLCBDb2x1bW5Nb2RlbDxSb3c+PjtcblxuXG4gIC8qKlxuICAgKiBUaGUgaGVhZGVyIHJvdydzIGhlaWdodCwgd2hpY2ggdGhlIHZpcnR1YWwgc2Nyb2xsZXIgb2Zmc2V0cyBpdHMgcm93cyBieSBhbmQgd2hpY2ggcGlucyB0aGUgaGVhZGVyXG4gICAqIGNlbGxzIGluIHZpcnR1YWwgbW9kZS4gVGFrZW4gZnJvbSAtLWF1cC10YWJsZS1oZWFkZXItcm93LWhlaWdodCBhdCBpbml0ICh0YWJsZS5zY3NzIHNldHMgNDhweCksIHNvXG4gICAqIGEgdGFibGUgdGhlbWVkIHdpdGggYSBzaG9ydGVyIGhlYWRlciBzY3JvbGxzIGNvcnJlY3RseTsgNDggd2hlbiB0aGUgdmFyaWFibGUgY2FuJ3QgYmUgcmVhZC5cbiAgICovXG4gIHByb3RlY3RlZCByZWFkb25seSBoZWFkZXJIZWlnaHQkID0gbmV3IE11dGFibGVWYWx1ZU1vZGVsPG51bWJlcj4oNDgpO1xuICAvLyBUT0RPOiB0YWtlIHRoZSByb3cgaGVpZ2h0IGZyb20gLS1hdXAtdGFibGUtcm93LWhlaWdodCB0b28uIE5vdCBhIGRyb3AtaW46IHRhYmxlLnNjc3Mgc2V0cyBpdCB0b1xuICAvLyA0MHB4IHdoaWxlIHZpcnR1YWwgcm93cyBoYXZlIGFsd2F5cyBiZWVuIDQ0LCBzbyBmb2xsb3dpbmcgaXQgd291bGQgc2hyaW5rIGV2ZXJ5IHZpcnR1YWwgcm93LlxuICBwcm90ZWN0ZWQgcm93SGVpZ2h0JCA9IG5ldyBNdXRhYmxlVmFsdWVNb2RlbDxudW1iZXI+KDQ0KTtcblxuICBASG9zdEJpbmRpbmcoXCJjbGFzc1wiKVxuICBiYXNlQ3NzQ2xhc3MgPSBcImF1cC10YWJsZS1jb21wb25lbnRcIjtcblxuICBASG9zdEJpbmRpbmcoXCJjbGFzcy5hdXAtYW5pbWF0aW9ucy1kaXNhYmxlZFwiKVxuICBnZXQgYW5pbWF0aW9uc0Rpc2FibGVkQ2xhc3MoKSB7IHJldHVybiB0aGlzLmFuaW1hdGlvbnNEaXNhYmxlZCQudmFsdWU7IH1cblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdmlydHVhbFNjcm9sbERhdGFTb3VyY2UgPSBuZXcgVGFibGVWaXJ0dWFsU2Nyb2xsRGF0YVNvdXJjZTxSb3c+KCk7XG4gIHByb3RlY3RlZCByZWFkb25seSB2aXJ0dWFsU2Nyb2xsQWN0aXZlJCA9IG5ldyBNdXRhYmxlVmFsdWVNb2RlbChmYWxzZSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBhbmltYXRpb25zRGlzYWJsZWQkID0gbmV3IE11dGFibGVWYWx1ZU1vZGVsKGZhbHNlKTtcbiAgcHJpdmF0ZSBzY3JvbGxUaW1lb3V0OiBhbnk7XG4gIHByaXZhdGUgYW5pbWF0aW9uc1Jlc2V0UmFmSWQ6IG51bWJlciB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIHNjcm9sbEVuZEFib3J0Q29udHJvbGxlcjogQWJvcnRDb250cm9sbGVyIHwgbnVsbCA9IG51bGw7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IG9wdGltaXNlZENoYW5nZURldGVjdGlvbkVuYWJsZWQ6IGJvb2xlYW47XG4gIHByaXZhdGUgdmlld0luaXRpYWxpemVkID0gZmFsc2U7XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIG1hcmtGb3JDaGVjaygpIHtcbiAgICBpZiAodGhpcy5vcHRpbWlzZWRDaGFuZ2VEZXRlY3Rpb25FbmFibGVkKSB7XG4gICAgICAvLyBUaGUgdGFibGUtYm9keSBkZXRhY2hlcyBpdHMgb3duIENEUiBhbmQgaGFzIG5vIGRldGFjaGVkIHBhcmVudCAoQVVQX0RFVEFDSEVEX1BBUkVOVF9DRFJcbiAgICAgIC8vIHVzZXMgc2tpcFNlbGYpLCBzbyB0aGUgYmFzZSBtYXJrRm9yQ2hlY2soKSB3b3VsZCBjYWxsIGNkci5tYXJrRm9yQ2hlY2soKSB3aGljaCBpcyBhXG4gICAgICAvLyBuby1vcCBvbiBhIGRldGFjaGVkIHZpZXcuIFNjaGVkdWxlIGFuIGV4cGxpY2l0IGRldGVjdENoYW5nZXMoKSBvbiBvdXJzZWx2ZXMgaW5zdGVhZCBzb1xuICAgICAgLy8gdGhhdCB2aWV3U3RhdGVEZXBlbmRzT24oKSBjb3JyZWN0bHkgdHJpZ2dlcnMgcmUtcmVuZGVycyAoZS5nLiByb3cgc2VsZWN0aW9uIGNsYXNzZXMpLlxuICAgICAgRGlzcG9zYWJsZUNvbXBvbmVudC5zY2hlZHVsZVBhcmVudFN3ZWVwKHRoaXMuY2RyKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc3VwZXIubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuICB9XG5cblxuICBjb25zdHJ1Y3RvcihASW5qZWN0KEFVUF9UQUJMRV9WSVJUVUFMX1NDUk9MTF9CVUZGRVJfTVVMVElQTElFUikgQE9wdGlvbmFsKCkgcHJvdGVjdGVkIGJ1ZmZlck11bHRpcGxpZXI6IG51bWJlciA9IDMpIHtcbiAgICBzdXBlcigpO1xuICAgIGNvbnN0IHtjaGFpbiwgd2hlbiwgb2JzZXJ2ZX0gPSBEc2wuZGlzcG9zZVdpdGgodGhpcyk7XG5cbiAgICB0aGlzLm9wdGltaXNlZENoYW5nZURldGVjdGlvbkVuYWJsZWQgPSB0aGlzLmluamVjdChBVVBfVEFCTEVfT1BUSU1JWkVEX0NIQU5HRV9ERVRFQ1RJT04sIHsgb3B0aW9uYWw6IHRydWUgfSk7XG4gICAgY29uc3QgYWN0dWFsSGVhZGVySGVpZ2h0JCA9IGNoYWluKHRoaXMuc2hvd0hlYWRlciQpLm1hcChzaG93ID0+IHtcbiAgICAgIHJldHVybiBzaG93ID8gdGhpcy5oZWFkZXJIZWlnaHQkLnZhbHVlIDogMDtcbiAgICB9LCB7ZGVwZW5kc09uOiB0aGlzLmhlYWRlckhlaWdodCR9KTtcblxuXG4gICAgLy8gcGVyZm9ybWFuY2UgaXMgdGVycmlibGUgaWYgdGhlIGRhdGEgY2hhbmdlcyB3aGlsZSB3ZSdyZSBzY3JvbGxpbmcsIHNvIHdlIHBvc3Rwb25lIHVwZGF0ZXMgdW50aWxcbiAgICAvLyBzY3JvbGxpbmcgc3RvcHMuXG4gICAgY29uc3QgZGVsYXllZERhdGEkID0gY2hhaW4odGhpcy5kYXRhJCkucG9zdHBvbmVXaGlsZSh0aGlzLnZpcnR1YWxTY3JvbGxBY3RpdmUkKVxuICAgIHdoZW4oZGVsYXllZERhdGEkKS5jaGFuZ2VzKGRlbGF0ZWREYXRhID0+IHtcbiAgICAgIHRoaXMuYW5pbWF0aW9uc0Rpc2FibGVkJC52YWx1ZSA9IHRydWU7XG4gICAgICAvLyBVcGRhdGUgdGhlIENESyBkYXRhIHNvdXJjZSBiZWZvcmUgZGV0ZWN0Q2hhbmdlcyBzbyB0aGF0IGJvdGggdGhlIGV4cGxpY2l0IGRldGVjdENoYW5nZXNcbiAgICAgIC8vIGFuZCBhbnkgc3Vic2VxdWVudCBTV0VFUC10cmlnZ2VyZWQgZGV0ZWN0Q2hhbmdlcyBzZWUgdGhlIHNhbWUgZGF0YS4gSWYgd2UgdXBkYXRlIGFmdGVyLFxuICAgICAgLy8gdGhlIFNXRUVQJ3MgZGV0ZWN0Q2hhbmdlcyBzZWVzIGRpZmZlcmVudCByb3cgb2JqZWN0cyBhbmQgdHJpZ2dlcnMgYSBzZWNvbmQgY2FzY2FkZS5cbiAgICAgIHRoaXMudmlydHVhbFNjcm9sbERhdGFTb3VyY2UuZGF0YSA9IGRlbGF0ZWREYXRhO1xuICAgICAgLy8gV2l0aCBkZXRhY2hlZCBDRCwgbWFya0ZvckNoZWNrKCkgYWxvbmUgd29uJ3QgcHVzaCBbQC5kaXNhYmxlZF09XCJ0cnVlXCIgdG8gdGhlIERPTS5cbiAgICAgIC8vIERldGVjdCBzeW5jaHJvbm91c2x5IHNvIENESyByZW5kZXJzIG5ldyByb3dzIHdpdGggYW5pbWF0aW9ucyBhbHJlYWR5IHN1cHByZXNzZWQuXG4gICAgICAvLyBhbmltYXRpb25zRGlzYWJsZWQkLnZhbHVlIGlzIGFscmVhZHkgdHJ1ZSAoc2V0IGFib3ZlKSwgc28gdGhlIHRlbXBsYXRlIGV2YWx1YXRpb25cbiAgICAgIC8vIGluIHRoaXMgZGV0ZWN0Q2hhbmdlcyB3aWxsIHNlZSBbQC5kaXNhYmxlZF09XCJ0cnVlXCIgYmVmb3JlIGFueSBuZXcgcm93cyBhcmUgY3JlYXRlZC5cbiAgICAgIC8vIEd1YXJkIGFnYWluc3QgdGhlIHtpbml0aWFsVmFsdWU6XCJldmFsdWF0ZVwifSBmaXJpbmcgZHVyaW5nIGNvbnN0cnVjdGlvbiBiZWZvcmUgdGhlIHZpZXcgZXhpc3RzLlxuICAgICAgaWYgKHRoaXMub3B0aW1pc2VkQ2hhbmdlRGV0ZWN0aW9uRW5hYmxlZCAmJiB0aGlzLnZpZXdJbml0aWFsaXplZCkge1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9XG4gICAgICB0aGlzLnNjaGVkdWxlVGFibGVIZWlnaHRDaGVjaygpO1xuICAgICAgdGhpcy5yZXNldEFuaW1hdGlvbnNBZnRlckZyYW1lKCk7XG4gICAgfSwge2luaXRpYWxWYWx1ZTogXCJldmFsdWF0ZVwifSlcblxuXG4gICAgdGhpcy5vbkluaXQoKCkgPT4ge1xuICAgICAgLy8gT24gaW5pdCwgbm90IGFmdGVyIHRoZSB2aWV3OiB0aGUgaGVhZGVyIGhlaWdodCBpcyBib3VuZCBpbiB0aGlzIHZpZXcgYW5kIGluIGEgaG9zdCBiaW5kaW5nLFxuICAgICAgLy8gYW5kIGNoYW5naW5nIGl0IGFmdGVyIHRoZXkgYXJlIGNoZWNrZWQgd291bGQgdHJpcCBFeHByZXNzaW9uQ2hhbmdlZEFmdGVySXRIYXNCZWVuQ2hlY2tlZC5cbiAgICAgIHRoaXMudGFrZUhlYWRlckhlaWdodEZyb21UaGVtZSgpO1xuICAgICAgdGhpcy5jb2x1bW5zJCA9IGNoYWluKHRoaXMudGFibGVNb2RlbC52aXNpYmxlQ29sdW1ucyQpO1xuICAgICAgdGhpcy5jb2x1bW5JZHMkID0gY2hhaW4odGhpcy5jb2x1bW5zJCkucGx1Y2soXCJjb2x1bW5JZFwiKTtcbiAgICAgIHRoaXMuY29sdW1uc0J5SWQkID0gY2hhaW4odGhpcy5jb2x1bW5zJCkuaW5kZXhCeSgnY29sdW1uSWQnKTtcbiAgICAgIHRoaXMuZm9vdGVyUm93RGVmcyQgPSBjaGFpbih0aGlzLmNvbHVtbklkcyQpLnJlZHVjZUFsbChpZHMgPT5cbiAgICAgICAgKHRoaXMuZm9vdGVyUm93cyA/PyBbXSkubWFwKChyb3csIGkpID0+IHJvdy5yZXNvbHZlKGksIFsuLi5pZHNdKSlcbiAgICAgICk7XG4gICAgICAvLyBGb290ZXIgcm93cyBnYXRlZCB2aWEgdmlzaWJsZVdoaWxlKCkgZmxpcCBpbmRlcGVuZGVudGx5IG9mIHRoZSBjb2x1bW5zIHRoYXQgZHJpdmVcbiAgICAgIC8vIGZvb3RlclJvd0RlZnMkLCBzbyBkZXBlbmQgb24gdGhlaXIgbW9kZWxzIGRpcmVjdGx5IHRvIHJlLXJlbmRlciB0aGUgPHRyPiByZWFjdGl2ZWx5LlxuICAgICAgY29uc3QgZm9vdGVyVmlzaWJpbGl0eSQgPSAodGhpcy5mb290ZXJSb3dzID8/IFtdKVxuICAgICAgICAubWFwKHJvdyA9PiByb3cudmlzaWJsZSQpXG4gICAgICAgIC5maWx0ZXIoKG0pOiBtIGlzIFZhbHVlTW9kZWw8Ym9vbGVhbiB8IHVuZGVmaW5lZD4gPT4gbSAhPSBudWxsKTtcbiAgICAgIHRoaXMudmlld1N0YXRlRGVwZW5kc09uKHRoaXMudGFibGVNb2RlbC5maWx0ZXJlZFJvd3MkLCB0aGlzLnRhYmxlTW9kZWwudmlzaWJsZUNvbHVtbnMkLCB0aGlzLnZpcnR1YWxTY3JvbGxBY3RpdmUkLCB0aGlzLmFuaW1hdGlvbnNEaXNhYmxlZCQsIHRoaXMudGFibGVNb2RlbC5zZWxlY3RlZEl0ZW1zJCwgdGhpcy50YWJsZU1vZGVsLnNlbGVjdGFibGVSb3dzJCwgdGhpcy5mb290ZXJSb3dEZWZzJCwgLi4uZm9vdGVyVmlzaWJpbGl0eSQpXG4gICAgfSk7XG5cbiAgfVxuXG4gIG92ZXJyaWRlIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBzdXBlci5uZ0FmdGVyVmlld0luaXQoKTtcbiAgICB0aGlzLnZpZXdJbml0aWFsaXplZCA9IHRydWU7XG4gICAgaWYgKHRoaXMuc2Nyb2xsVmlld3BvcnQpIHtcbiAgICAgIGNvbnN0IHtvYnNlcnZlfSA9IERzbC5kaXNwb3NlV2l0aCh0aGlzKTtcbiAgICAgIHRoaXMuc2Nyb2xsVmlld3BvcnQuZWxlbWVudFNjcm9sbGVkKCkuc3Vic2NyaWJlKCgpID0+IHRoaXMubm90aWZ5U2Nyb2xsZWQoKSk7XG4gICAgICB0aGlzLnNjcm9sbEVuZEFib3J0Q29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcbiAgICAgIHRoaXMuc2Nyb2xsVmlld3BvcnQuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAgICdzY3JvbGxlbmQnLFxuICAgICAgICAoKSA9PiB0aGlzLm5vdGlmeVNjcm9sbEVuZGVkKCksXG4gICAgICAgIHtwYXNzaXZlOiB0cnVlLCBzaWduYWw6IHRoaXMuc2Nyb2xsRW5kQWJvcnRDb250cm9sbGVyLnNpZ25hbH1cbiAgICAgICk7XG4gICAgfVxuICAgIGlmICh0aGlzLm9wdGltaXNlZENoYW5nZURldGVjdGlvbkVuYWJsZWQpIHtcbiAgICAgIHRoaXMuY2RyLmRldGFjaCgpO1xuICAgICAgaWYgKHRoaXMuc2Nyb2xsVmlld3BvcnQpIHtcbiAgICAgICAgdGhpcy5zY3JvbGxWaWV3cG9ydC5yZW5kZXJlZFJhbmdlU3RyZWFtLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgLy8gRGVmZXIgcGFzdCB0aGUgY3VycmVudCBzeW5jIGJhdGNoIHNvIHRoZSBkYXRhIHNvdXJjZSBoYXMgdXBkYXRlZCBfcmVuZGVyZWRJdGVtcyBiZWZvcmUgd2UgcnVuIENELlxuICAgICAgICAgIC8vIE11c3QgY2FsbCBkZXRlY3RDaGFuZ2VzKCkgZGlyZWN0bHkg4oCUIG1hcmtGb3JDaGVjaygpIGFsb25lIGRvZXMgbm90aGluZyBvbiBhIGRldGFjaGVkIHZpZXcuXG4gICAgICAgICAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgLy8gRXh0ZW5kIHRoZSBhbmltYXRpb24gc3VwcHJlc3Npb24gd2luZG93IG9uIGVhY2ggQ0RLIHJhbmdlIGNoYW5nZSBzbyBhbmltYXRpb25zIGNhbid0XG4gICAgICAgICAgLy8gZmlyZSBtaWQtcmVuZGVyIHJlZ2FyZGxlc3Mgb2YgaG93IG1hbnkgZnJhbWVzIHRoZSByYW5nZSB1cGRhdGUgc3BhbnMuXG4gICAgICAgICAgaWYgKHRoaXMuYW5pbWF0aW9uc0Rpc2FibGVkJC52YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5yZXNldEFuaW1hdGlvbnNBZnRlckZyYW1lKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIC8vIERlZmVyIHBhc3QgdGhlIGN1cnJlbnQgdGljayBzbyB0aGUgdmlld3BvcnQncyBpbml0aWFsIHJlbmRlcmVkIHJhbmdlIGlzIHN0YWJsZVxuICAgICAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiB7XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIEBIb3N0QmluZGluZyhcImNsYXNzLmhpZGUtaGVhZGVyXCIpXG4gIGdldCBoaWRlSGVhZGVyKCkge1xuICAgIHJldHVybiAhdGhpcy5zaG93SGVhZGVyO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKFwic3R5bGUuLS1hdXAtdGFibGUtaGVhZGVyLWhlaWdodFwiKVxuICBnZXQgaGVhZGVySGVpZ2h0Q3NzVmFyKCkge1xuICAgIHJldHVybiBgJHt0aGlzLmhlYWRlckhlaWdodCQudmFsdWV9cHhgXG4gIH1cblxuICBASG9zdEJpbmRpbmcoXCJzdHlsZS4tLWF1cC10YWJsZS1yb3ctaGVpZ2h0XCIpXG4gIGdldCByb3dIZWlnaHRDc3NWYXIoKSB7XG4gICAgcmV0dXJuIGAke3RoaXMucm93SGVpZ2h0JC52YWx1ZX1weGBcbiAgfVxuXG4gIG5vdGlmeUNlbGxDbGlja2VkKGNvbHVtbk1vZGVsOiBDb2x1bW5Nb2RlbDxSb3c+LCByb3c6IFJvdykge1xuICAgIHRoaXMudGFibGVNb2RlbC5fbm90aWZ5Q2VsbENsaWNrZWQoY29sdW1uTW9kZWwsIHJvdyk7XG4gIH1cblxuICAvLyBAVHJhY2UoKVxuXG4gIGlzRmlyc3RWaXNpYmxlQ29sdW1uKGNvbHVtbklkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy50YWJsZU1vZGVsLmZpcnN0VmlzaWJsZUNvbHVtbiQucXVlcnkoKS52YWx1ZT8uY29sdW1uSWQgPT09IGNvbHVtbklkO1xuICB9XG5cbiAgLy8gQFRyYWNlKClcblxuICBpc0xhc3RWaXNpYmxlQ29sdW1uKGNvbHVtbklkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy50YWJsZU1vZGVsLmxhc3RWaXNpYmxlQ29sdW1uJC5xdWVyeSgpLnZhbHVlPy5jb2x1bW5JZCA9PT0gY29sdW1uSWQ7XG4gIH1cblxuICBnZXRDb2x1bW5DbGFzc2VzKGNvbHVtbklkOiBzdHJpbmcpIHtcbiAgICBjb25zdCBjbGFzc2VzID0gW2BhdXAtY29sLSR7dGhpcy5jb2x1bW5zQnlJZCQuZ2V0KGNvbHVtbklkKS5kYXNoZXJpc2VkQ29sdW1uSWR9YF07XG4gICAgaWYgKHRoaXMuaXNGaXJzdFZpc2libGVDb2x1bW4oY29sdW1uSWQpKSB7XG4gICAgICBjbGFzc2VzLnB1c2goXCJmaXJzdC12aXNpYmxlLWNvbHVtblwiKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuaXNMYXN0VmlzaWJsZUNvbHVtbihjb2x1bW5JZCkpIHtcbiAgICAgIGNsYXNzZXMucHVzaChcImxhc3QtdmlzaWJsZS1jb2x1bW5cIik7XG4gICAgfVxuICAgIHJldHVybiBjbGFzc2VzO1xuICB9XG5cbiAgLyoqIFNldHMgW2hlYWRlckhlaWdodCRdIGZyb20gLS1hdXAtdGFibGUtaGVhZGVyLXJvdy1oZWlnaHQsIGtlZXBpbmcgdGhlIGN1cnJlbnQgdmFsdWUgd2hlbiBpdCBjYW4ndCBiZSByZWFkLiAqL1xuICBwcm90ZWN0ZWQgdGFrZUhlYWRlckhlaWdodEZyb21UaGVtZSgpIHtcbiAgICB0aGlzLmhlYWRlckhlaWdodCQudmFsdWUgPSB0aGlzLnJlYWRDc3NQaXhlbHMoXCItLWF1cC10YWJsZS1oZWFkZXItcm93LWhlaWdodFwiKSA/PyB0aGlzLmhlYWRlckhlaWdodCQudmFsdWU7XG4gIH1cblxuICAvKiogQSBsZW5ndGggY3VzdG9tIHByb3BlcnR5IGFzIHJlc29sdmVkIG9uIHRoaXMgZWxlbWVudCwgaW4gcHg7IHVuZGVmaW5lZCB3aGVuIHVuc2V0IG9yIG5vdCBhIGxlbmd0aC4gKi9cbiAgcHJpdmF0ZSByZWFkQ3NzUGl4ZWxzKHByb3BlcnR5OiBzdHJpbmcpOiBudW1iZXIgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IHBpeGVscyA9IHBhcnNlRmxvYXQoZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCkuZ2V0UHJvcGVydHlWYWx1ZShwcm9wZXJ0eSkpO1xuICAgIHJldHVybiBOdW1iZXIuaXNGaW5pdGUocGl4ZWxzKSAmJiBwaXhlbHMgPiAwID8gcGl4ZWxzIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgcHJpdmF0ZSBzY2hlZHVsZVRhYmxlSGVpZ2h0Q2hlY2sod2FpdE1pbGxpcyA9IDUwKSB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAvLyBVc2UgQ0RLJ3MgaW50ZXJuYWwgcmVuZGVyZWQgcmFuZ2UgdG8gZGV0ZWN0IGEgYnJva2VuIHZpcnR1YWwgc2Nyb2xsIHN0YXRlIOKAlFxuICAgICAgLy8gYXZvaWRzIHJlYWRpbmcgb2Zmc2V0SGVpZ2h0IChmb3JjZWQgbGF5b3V0KSBhbmQgZGlzcGF0Y2hpbmcgYSBnbG9iYWwgcmVzaXplIGV2ZW50XG4gICAgICAvLyAod2hpY2ggdHJpZ2dlcnMgQW5ndWxhcidzIGFuaW1hdGlvbiBlbmdpbmUgdG8gY2FsbCBnZXRDb21wdXRlZFN0eWxlIG9uIGFsbCBlbGVtZW50cykuXG4gICAgICBjb25zdCByZW5kZXJlZFJhbmdlID0gdGhpcy5zY3JvbGxWaWV3cG9ydD8uZ2V0UmVuZGVyZWRSYW5nZSgpO1xuICAgICAgLy8gQSB1c2FibGUgdmlydHVhbCB2aWV3cG9ydCByZW5kZXJzIG1vcmUgdGhhbiBvbmUgcm93IHdoZW5ldmVyIG1vcmUgZGF0YSBleGlzdHMuIFJlbmRlcmluZ1xuICAgICAgLy8gbm9uZSBvciBvbmUgcm93IGF0IHRoZSB0b3Agd2hpbGUgZGF0YSQgaG9sZHMgbW9yZSBtZWFucyB0aGUgdmlld3BvcnQgbWVhc3VyZWQgYVxuICAgICAgLy8gY29sbGFwc2VkL3N0YWxlIGhlaWdodCAoZS5nLiBpdCB3YXMgbWVhc3VyZWQgYmVmb3JlIHRoZSB0YWJsZSB3YXMgc2l6ZWQgdXAsIHRoZW4gbmV2ZXJcbiAgICAgIC8vIHJlLW1lYXN1cmVkIHVuZGVyIGRldGFjaGVkIGNoYW5nZSBkZXRlY3Rpb24pIOKAlCBzbyByZS1tZWFzdXJlIHRvIGV4cGFuZCB0aGUgcmVuZGVyZWQgcmFuZ2UuXG4gICAgICAvLyBDb3ZlcnMgYm90aCB0aGUgemVyby1yb3cgY29sbGFwc2UgYW5kIHRoZSBwYXJ0aWFsIChvbmUtcm93KSB1bmRlci1yZW5kZXIuIERldGVjdGlvbiBzdGF5c1xuICAgICAgLy8gbGF5b3V0LWZyZWUgKGdldFJlbmRlcmVkUmFuZ2Ugb25seSk7IGNvcnJlY3RseS1zaXplZCBhbmQgZ2VudWluZWx5LXZpcnR1YWxpc2VkIGxhcmdlXG4gICAgICAvLyB0YWJsZXMgcmVuZGVyIG1hbnkgcm93cywgc28gdGhleSBuZXZlciByZWFjaCB0aGUgY2hlY2tWaWV3cG9ydFNpemUoKSByZWZsb3cgYmVsb3cuXG4gICAgICBjb25zdCByZW5kZXJlZENvdW50ID0gcmVuZGVyZWRSYW5nZSAhPSBudWxsID8gcmVuZGVyZWRSYW5nZS5lbmQgLSByZW5kZXJlZFJhbmdlLnN0YXJ0IDogMDtcbiAgICAgIGNvbnN0IHVuZGVyUmVuZGVyZWQgPSByZW5kZXJlZFJhbmdlICE9IG51bGwgJiYgcmVuZGVyZWRSYW5nZS5zdGFydCA9PT0gMCAmJiByZW5kZXJlZENvdW50IDw9IDE7XG4gICAgICBpZiAodW5kZXJSZW5kZXJlZCAmJiB0aGlzLmRhdGEkLmxlbmd0aCA+IHJlbmRlcmVkQ291bnQpIHtcbiAgICAgICAgdGhpcy5zY3JvbGxWaWV3cG9ydD8uY2hlY2tWaWV3cG9ydFNpemUoKTtcbiAgICAgICAgaWYgKHdhaXRNaWxsaXMgPCA1MDApIHtcbiAgICAgICAgICB0aGlzLnNjaGVkdWxlVGFibGVIZWlnaHRDaGVjayh3YWl0TWlsbGlzICsgNTApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSwgd2FpdE1pbGxpcylcbiAgfVxuXG4gIHByaXZhdGUgbm90aWZ5U2Nyb2xsZWQoKSB7XG4gICAgdGhpcy52aXJ0dWFsU2Nyb2xsQWN0aXZlJC52YWx1ZSA9IHRydWU7XG4gICAgdGhpcy5hbmltYXRpb25zRGlzYWJsZWQkLnZhbHVlID0gdHJ1ZTtcbiAgICAvLyBTeW5jIHRoZSBbQC5kaXNhYmxlZF09XCJ0cnVlXCIgdG8gdGhlIERPTSBpbW1lZGlhdGVseSBzbyBDREsncyBwZW5kaW5nIHJhbmdlXG4gICAgLy8gdXBkYXRlICh3aGljaCBpcyBzY2hlZHVsZWQgYXN5bmMpIHNlZXMgYW5pbWF0aW9ucyBzdXBwcmVzc2VkIHdoZW4gaXQgcmVuZGVycyByb3dzLlxuICAgIGlmICh0aGlzLm9wdGltaXNlZENoYW5nZURldGVjdGlvbkVuYWJsZWQpIHtcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG4gICAgdGhpcy5jbGVhclNjcm9sbFRpbWVvdXQoKTtcbiAgICB0aGlzLnNjcm9sbFRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHRoaXMubm90aWZ5U2Nyb2xsRW5kZWQoKSwgMTAwKTtcbiAgfVxuXG4gIHByaXZhdGUgbm90aWZ5U2Nyb2xsRW5kZWQoKSB7XG4gICAgdGhpcy5jbGVhclNjcm9sbFRpbWVvdXQoKTtcbiAgICB0aGlzLnZpcnR1YWxTY3JvbGxBY3RpdmUkLnZhbHVlID0gZmFsc2U7XG4gICAgdGhpcy5yZXNldEFuaW1hdGlvbnNBZnRlckZyYW1lKCk7XG4gIH1cblxuICBvdmVycmlkZSBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnNjcm9sbEVuZEFib3J0Q29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICB9XG5cbiAgcHJpdmF0ZSByZXNldEFuaW1hdGlvbnNBZnRlckZyYW1lKCkge1xuICAgIC8vIENhbmNlbCBhbnkgcGVuZGluZyByZXNldCBzbyByYXBpZCBkYXRhIGNoYW5nZXMgZG9uJ3QgcmUtZW5hYmxlIGFuaW1hdGlvbnMgbWlkLXJlbmRlci5cbiAgICBpZiAodGhpcy5hbmltYXRpb25zUmVzZXRSYWZJZCAhPT0gbnVsbCkge1xuICAgICAgY2FuY2VsQW5pbWF0aW9uRnJhbWUodGhpcy5hbmltYXRpb25zUmVzZXRSYWZJZCk7XG4gICAgfVxuICAgIC8vIFJlLWVuYWJsZSBhZnRlciB0aGUgbmV4dCBmcmFtZTogYnkgdGhlbiBDREsgaGFzIGNyZWF0ZWQgcm93cyBhbmQgQ0QgaGFzIHJ1bixcbiAgICAvLyBzbyA6ZW50ZXIgYW5pbWF0aW9ucyB3b24ndCBmaXJlIG9uIHRoZSBuZXdseSBjcmVhdGVkIHJvdyBjb21wb25lbnRzLlxuICAgIHRoaXMuYW5pbWF0aW9uc1Jlc2V0UmFmSWQgPSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgdGhpcy5hbmltYXRpb25zUmVzZXRSYWZJZCA9IG51bGw7XG4gICAgICB0aGlzLmFuaW1hdGlvbnNEaXNhYmxlZCQudmFsdWUgPSBmYWxzZTtcbiAgICAgIGlmICh0aGlzLm9wdGltaXNlZENoYW5nZURldGVjdGlvbkVuYWJsZWQpIHtcbiAgICAgICAgLy8gZGV0ZWN0Q2hhbmdlcygpIGRpcmVjdGx5IOKAlCBtYXJrRm9yQ2hlY2soKSBkb2VzIG5vdGhpbmcgb24gYSBkZXRhY2hlZCB2aWV3LlxuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNsZWFyU2Nyb2xsVGltZW91dCgpIHtcbiAgICBpZiAodGhpcy5zY3JvbGxUaW1lb3V0KSB7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5zY3JvbGxUaW1lb3V0KTtcbiAgICB9XG4gIH1cblxufVxuXG5cbmV4cG9ydCBuYW1lc3BhY2UgVGFibGVCb2R5Q29tcG9uZW50IHtcbiAgZXhwb3J0IHR5cGUgU2Nyb2xsTW9kZSA9IFwibm9uZVwiIHwgXCJjbGFzc2ljXCIgfCBcInZpcnR1YWxcIjtcbn1cbiIsIlxuPGRpdiBjbGFzcz1cImNsYXNzaWMtc2Nyb2xsLWNvbnRhaW5lclwiICpuZ0lmPVwic2Nyb2xsTW9kZSQudmFsdWUgIT09ICd2aXJ0dWFsJ1wiPlxuICA8dGFibGUgbWF0LXRhYmxlIFtkYXRhU291cmNlXT1cImRhdGEkLnZhbHVlXCIgW3RyYWNrQnldPVwidHJhY2tCeVwiIFttdWx0aVRlbXBsYXRlRGF0YVJvd3NdPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGNvbHVtbnMkLnZhbHVlOyBpbmRleCBhcyBpbmRleDsgZmlyc3QgYXMgZmlyc3Q7IGxhc3QgYXMgbGFzdFwiXG4gICAgICAgICAgICAgICAgICBtYXRDb2x1bW5EZWY9XCJ7e2NvbHVtbi5jb2x1bW5JZH19XCI+XG4gICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmIFtjbGFzcy5mbGV4XT1cImNvbHVtbi5pc0ZsZXgoKVwiIFtjbGFzcy5oaWRlXT1cIiFjb2x1bW4uaXNWaXNpYmxlKClcIj5cbiAgICAgICAgPGF1cC10YWJsZS1oZWFkZXItY2VsbCBbY29sdW1uXT1cIiRhbnkoY29sdW1uKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuY29sdW1uLWluZGV4XT1cImluZGV4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5jb2x1bW4taWRdPVwiY29sdW1uLmNvbHVtbklkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3NdPVwiZ2V0Q29sdW1uQ2xhc3Nlcyhjb2x1bW4uY29sdW1uSWQpXCJcbiAgICAgICAgPjwvYXVwLXRhYmxlLWhlYWRlci1jZWxsPlxuICAgICAgPC90aD5cbiAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCByb3dcIiAoY2xpY2spPVwibm90aWZ5Q2VsbENsaWNrZWQoY29sdW1uLCByb3cpXCJcbiAgICAgICAgICBbY2xhc3MuZW5hYmxlLWN1cnNvcl09XCJ0YWJsZU1vZGVsLmlzQ3Vyc29yRW5hYmxlZEZvclJvdyhjb2x1bW4sIHJvdylcIlxuICAgICAgICAgIFtjbGFzcy5mbGV4XT1cImNvbHVtbi5pc0ZsZXgoKVwiXG4gICAgICAgICAgW2NsYXNzLmhpZGVdPVwiIWNvbHVtbi5pc1Zpc2libGUoKVwiXG4gICAgICA+XG4gICAgICAgIDxhdXAtdGFibGUtY2VsbCBbY29sdW1uXT1cIiRhbnkoY29sdW1uKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbcm93XT1cInJvd1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbdGFibGVNb2RlbF09XCIkYW55KHRhYmxlTW9kZWwpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmNvbHVtbi1pbmRleF09XCJpbmRleFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5jb2x1bW4taWRdPVwiY29sdW1uLmNvbHVtbklkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzc109XCJnZXRDb2x1bW5DbGFzc2VzKGNvbHVtbi5jb2x1bW5JZClcIlxuICAgICAgICA+PC9hdXAtdGFibGUtY2VsbD5cbiAgICAgIDwvdGQ+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8dHIgbWF0LWhlYWRlci1yb3cgKm1hdEhlYWRlclJvd0RlZj1cImNvbHVtbklkcyQudmFsdWU7IHN0aWNreTogdHJ1ZVwiPjwvdHI+XG4gICAgPHRyIG1hdC1yb3cgKm1hdFJvd0RlZj1cImxldCByb3c7IGNvbHVtbnM6IGNvbHVtbklkcyQudmFsdWU7IGxldCBpID0gaW5kZXhcIlxuICAgICAgICBbbmdDbGFzc109XCJ0YWJsZU1vZGVsLmdldFJvd0NsYXNzZXMocm93KVwiXG4gICAgICAgIFtjbGFzcy5lbmFibGUtaG92ZXJdPVwidGFibGVNb2RlbC5pc0hvdmVyRW5hYmxlZEZvclJvdyhyb3cpXCJcbiAgICAgICAgW2F1cFRhYmxlUm93QXR0cmlidXRlc109XCJ0YWJsZU1vZGVsLmdldFJvd0F0dHJpYnV0ZXMocm93KVwiXG4gICAgICAgIFthdHRyLmF1cC1yb3ctaWRdPVwidHJhY2tCeShpLCByb3cpXCJcbiAgICA+PC90cj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGZvb3RlciBvZiBmb290ZXJSb3dEZWZzJC52YWx1ZVwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY2VsbCBvZiBmb290ZXIuY2VsbHNcIiBbbWF0Q29sdW1uRGVmXT1cImNlbGwuZGVmSWRcIj5cbiAgICAgICAgPHRkIG1hdC1mb290ZXItY2VsbCAqbWF0Rm9vdGVyQ2VsbERlZiBbYXR0ci5jb2xzcGFuXT1cImNlbGwuY29sc3BhblwiXG4gICAgICAgICAgICBbYXR0ci5jb2x1bW4taWRdPVwiY2VsbC5jb2x1bW5JZFwiIGNsYXNzPVwiZm9vdGVyLWNlbGxcIj5cbiAgICAgICAgICA8YXVwLXRhYmxlLWZvb3Rlci1yb3cgKm5nSWY9XCIhY2VsbC5maWxsZXJcIiBbY2VsbF09XCJjZWxsXCI+PC9hdXAtdGFibGUtZm9vdGVyLXJvdz5cbiAgICAgICAgPC90ZD5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPHRyIG1hdC1mb290ZXItcm93ICptYXRGb290ZXJSb3dEZWY9XCJmb290ZXIuZGVmSWRzOyBzdGlja3k6IHRydWVcIiBbbmdDbGFzc109XCJmb290ZXIucm93Q2xhc3Nlc1wiXG4gICAgICAgICAgW2NsYXNzLmF1cC1mb290ZXItcm93LWhpZGRlbl09XCJmb290ZXIudmlzaWJsZSQgJiYgIWZvb3Rlci52aXNpYmxlJC52YWx1ZVwiPjwvdHI+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgPC90YWJsZT5cbjwvZGl2PlxuXG48Y2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0ICAqbmdJZj1cInNjcm9sbE1vZGUkLnZhbHVlID09PSAndmlydHVhbCdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW0AuZGlzYWJsZWRdPVwiYW5pbWF0aW9uc0Rpc2FibGVkJC52YWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdHZzSXRlbVNpemVdPVwicm93SGVpZ2h0JC52YWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaGVhZGVySGVpZ2h0XT1cImhlYWRlckhlaWdodCQudmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Zvb3RlckVuYWJsZWRdPVwiKGZvb3RlclJvd0RlZnMkPy52YWx1ZT8ubGVuZ3RoID8/IDApID4gMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZm9vdGVySGVpZ2h0XT1cIjQ4ICogKGZvb3RlclJvd0RlZnMkPy52YWx1ZT8ubGVuZ3RoID8/IDApXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtidWZmZXJNdWx0aXBsaWVyXT1cImJ1ZmZlck11bHRpcGxpZXJcIlxuPlxuICA8dGFibGUgbWF0LXRhYmxlIFtkYXRhU291cmNlXT1cInZpcnR1YWxTY3JvbGxEYXRhU291cmNlXCIgW3RyYWNrQnldPVwidHJhY2tCeVwiPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGNvbHVtbnMkLnZhbHVlOyBpbmRleCBhcyBpbmRleDsgZmlyc3QgYXMgZmlyc3Q7IGxhc3QgYXMgbGFzdFwiXG4gICAgICAgICAgICAgICAgICBtYXRDb2x1bW5EZWY9XCJ7e2NvbHVtbi5jb2x1bW5JZH19XCI+XG4gICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmIFtjbGFzcy5mbGV4XT1cImNvbHVtbi5pc0ZsZXgoKVwiIFtjbGFzcy5oaWRlXT1cIiFjb2x1bW4uaXNWaXNpYmxlKClcIj5cbiAgICAgICAgPGF1cC10YWJsZS1oZWFkZXItY2VsbCBbY29sdW1uXT1cImNvbHVtblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuY29sdW1uLWluZGV4XT1cImluZGV4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5jb2x1bW4taWRdPVwiY29sdW1uLmNvbHVtbklkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3NdPVwiZ2V0Q29sdW1uQ2xhc3Nlcyhjb2x1bW4uY29sdW1uSWQpXCJcbiAgICAgICAgPjwvYXVwLXRhYmxlLWhlYWRlci1jZWxsPlxuICAgICAgPC90aD5cbiAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCByb3dcIiAoY2xpY2spPVwibm90aWZ5Q2VsbENsaWNrZWQoY29sdW1uLCByb3cpXCJcbiAgICAgICAgICBbY2xhc3MuZW5hYmxlLWN1cnNvcl09XCJ0YWJsZU1vZGVsLmlzQ3Vyc29yRW5hYmxlZEZvclJvdyhjb2x1bW4sIHJvdylcIlxuICAgICAgICAgIFtjbGFzcy5mbGV4XT1cImNvbHVtbi5pc0ZsZXgoKVwiXG4gICAgICAgICAgW2NsYXNzLmhpZGVdPVwiIWNvbHVtbi5pc1Zpc2libGUoKVwiXG4gICAgICA+XG4gICAgICAgIDxhdXAtdGFibGUtY2VsbCBbY29sdW1uXT1cIiRhbnkoY29sdW1uKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbcm93XT1cInJvd1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbdGFibGVNb2RlbF09XCIkYW55KHRhYmxlTW9kZWwpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmNvbHVtbi1pbmRleF09XCJpbmRleFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5jb2x1bW4taWRdPVwiY29sdW1uLmNvbHVtbklkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzc109XCJnZXRDb2x1bW5DbGFzc2VzKGNvbHVtbi5jb2x1bW5JZClcIlxuICAgICAgICA+PC9hdXAtdGFibGUtY2VsbD5cbiAgICAgIDwvdGQ+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8dHIgbWF0LWhlYWRlci1yb3cgKm1hdEhlYWRlclJvd0RlZj1cImNvbHVtbklkcyQudmFsdWU7IHN0aWNreTogdHJ1ZVwiPjwvdHI+XG4gICAgPHRyIG1hdC1yb3cgKm1hdFJvd0RlZj1cImxldCByb3c7IGNvbHVtbnM6IGNvbHVtbklkcyQudmFsdWU7IGxldCBpID0gaW5kZXhcIlxuICAgICAgICBbbmdDbGFzc109XCJ0YWJsZU1vZGVsLmdldFJvd0NsYXNzZXMocm93KVwiXG4gICAgICAgIFtjbGFzcy5lbmFibGUtaG92ZXJdPVwidGFibGVNb2RlbC5pc0hvdmVyRW5hYmxlZEZvclJvdyhyb3cpXCJcbiAgICAgICAgW2F1cFRhYmxlUm93QXR0cmlidXRlc109XCJ0YWJsZU1vZGVsLmdldFJvd0F0dHJpYnV0ZXMocm93KVwiXG4gICAgICAgIFthdHRyLmF1cC1yb3ctaWRdPVwidHJhY2tCeShpLCByb3cpXCJcbiAgICA+PC90cj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGZvb3RlciBvZiBmb290ZXJSb3dEZWZzJC52YWx1ZVwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY2VsbCBvZiBmb290ZXIuY2VsbHNcIiBbbWF0Q29sdW1uRGVmXT1cImNlbGwuZGVmSWRcIj5cbiAgICAgICAgPHRkIG1hdC1mb290ZXItY2VsbCAqbWF0Rm9vdGVyQ2VsbERlZiBbYXR0ci5jb2xzcGFuXT1cImNlbGwuY29sc3BhblwiXG4gICAgICAgICAgICBbYXR0ci5jb2x1bW4taWRdPVwiY2VsbC5jb2x1bW5JZFwiIGNsYXNzPVwiZm9vdGVyLWNlbGxcIj5cbiAgICAgICAgICA8YXVwLXRhYmxlLWZvb3Rlci1yb3cgKm5nSWY9XCIhY2VsbC5maWxsZXJcIiBbY2VsbF09XCJjZWxsXCI+PC9hdXAtdGFibGUtZm9vdGVyLXJvdz5cbiAgICAgICAgPC90ZD5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPHRyIG1hdC1mb290ZXItcm93ICptYXRGb290ZXJSb3dEZWY9XCJmb290ZXIuZGVmSWRzOyBzdGlja3k6IHRydWVcIiBbbmdDbGFzc109XCJmb290ZXIucm93Q2xhc3Nlc1wiXG4gICAgICAgICAgW2NsYXNzLmF1cC1mb290ZXItcm93LWhpZGRlbl09XCJmb290ZXIudmlzaWJsZSQgJiYgIWZvb3Rlci52aXNpYmxlJC52YWx1ZVwiPjwvdHI+XG4gICAgPC9uZy1jb250YWluZXI+XG5cblxuICA8L3RhYmxlPlxuPC9jZGstdmlydHVhbC1zY3JvbGwtdmlld3BvcnQ+XG5cbiJdfQ==
@@ -1,3 +1,4 @@
1
+ import { Rejection } from '@coolon/pectin';
1
2
  import { AlertDialogComponent } from './components/alert-dialog/alert-dialog.component';
2
3
  import { ConfirmThenDialogComponent } from './components/confirm-then-dialog/confirm-then-dialog.component';
3
4
  import { ConfirmThenExecuteDialogComponent } from './components/confirm-then-execute-dialog/confirm-then-execute-dialog.component';
@@ -12,8 +13,17 @@ export class AbstractInteractionContext {
12
13
  // without caring about returning a value.
13
14
  return this.confirmOrReject(confirm).then(() => true).catch(() => false);
14
15
  }
16
+ /**
17
+ * Resolves however the alert closes — OK, Esc, the backdrop, or a teardown such as sign-out: it is
18
+ * only ever acknowledged, so the code after it always runs. A real failure still rejects.
19
+ */
15
20
  alert(alert) {
16
- return this.createAndLaunchActivity(AlertDialogComponent, alert, { enableCloseOnBackdropClick: true });
21
+ return this.createAndLaunchActivity(AlertDialogComponent, alert, { enableCloseOnBackdropClick: true })
22
+ .then(() => undefined, reason => {
23
+ if (!Rejection.isHandled(reason)) {
24
+ throw reason;
25
+ }
26
+ });
17
27
  }
18
28
  confirmOrReject(confirm) {
19
29
  return this.createAndLaunchActivity(ConfirmationDialogComponent, confirm);
@@ -38,4 +48,4 @@ export class AbstractInteractionContext {
38
48
  });
39
49
  }
40
50
  }
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtaW50ZXJhY3Rpb24tY29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci11aS1wb3dlcnVwcy9zcmMvbGliL2ludGVyYWN0aW9uL2Fic3RyYWN0LWludGVyYWN0aW9uLWNvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS0EsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sa0RBQWtELENBQUM7QUFDdEYsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sZ0VBQWdFLENBQUM7QUFDMUcsT0FBTyxFQUFDLGlDQUFpQyxFQUFDLE1BQU0sZ0ZBQWdGLENBQUM7QUFDakksT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0sZ0VBQWdFLENBQUM7QUFLM0csTUFBTSxPQUFnQiwwQkFBMEI7SUFhOUMsYUFBYSxDQUFVLFlBQThDLEVBQUUsSUFBUSxFQUFFLE9BQW9DO1FBQ25ILE9BQU8sSUFBSSxDQUFDLHVCQUF1QixDQUFDLFlBQVksRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVELE9BQU8sQ0FBQyxPQUFnQjtRQUN0QiwwRUFBMEU7UUFDMUUseUVBQXlFO1FBQ3pFLDBDQUEwQztRQUMxQyxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzRSxDQUFDO0lBRUQsS0FBSyxDQUFDLEtBQVk7UUFDaEIsT0FBTyxJQUFJLENBQUMsdUJBQXVCLENBQUMsb0JBQW9CLEVBQUUsS0FBSyxFQUFFLEVBQUUsMEJBQTBCLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN6RyxDQUFDO0lBRUQsZUFBZSxDQUFDLE9BQWdCO1FBQzlCLE9BQU8sSUFBSSxDQUFDLHVCQUF1QixDQUFDLDJCQUEyQixFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILFdBQVcsQ0FBVSxPQUFnQixFQUFFLFlBQThDLEVBQUUsSUFBUTtRQUM3RixPQUFPLElBQUksQ0FBQyx1QkFBdUIsQ0FBaUQsMEJBQTBCLEVBQUU7WUFDOUcsT0FBTztZQUNQLFlBQVksRUFBRSxZQUFZO1lBQzFCLElBQUksRUFBRSxJQUFJO1NBQ1gsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGtCQUFrQixDQUFJLE9BQWdCLEVBQUUsU0FBc0U7UUFDNUcsT0FBTyxJQUFJLENBQUMsdUJBQXVCLENBQWlFLGlDQUFpQyxFQUFFO1lBQ3JJLE9BQU87WUFDUCxTQUFTLEVBQUUsU0FBUztTQUNyQixDQUFDLENBQUM7SUFFTCxDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0QsIEUsIFJ9IGZyb20gXCJAYW5ndWxhci9jZGsva2V5Y29kZXNcIjtcbmltcG9ydCB7Q29uc3RydWN0YWJsZSwgRGlzcG9zYWJsZX0gZnJvbSAnQGNvb2xvbi9wZWN0aW4nO1xuaW1wb3J0IHtPcHRzfSBmcm9tICdAY29vbG9uL3R5cGVzY3JpcHQtdXRpbGl0aWVzJztcbmltcG9ydCB0eXBlIHtBY3Rpdml0eX0gZnJvbSAnLi9hY3Rpdml0eSc7XG5pbXBvcnQgdHlwZSB7QWxlcnR9IGZyb20gJy4vYWxlcnQnO1xuaW1wb3J0IHtBbGVydERpYWxvZ0NvbXBvbmVudH0gZnJvbSAnLi9jb21wb25lbnRzL2FsZXJ0LWRpYWxvZy9hbGVydC1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7Q29uZmlybVRoZW5EaWFsb2dDb21wb25lbnR9IGZyb20gJy4vY29tcG9uZW50cy9jb25maXJtLXRoZW4tZGlhbG9nL2NvbmZpcm0tdGhlbi1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7Q29uZmlybVRoZW5FeGVjdXRlRGlhbG9nQ29tcG9uZW50fSBmcm9tICcuL2NvbXBvbmVudHMvY29uZmlybS10aGVuLWV4ZWN1dGUtZGlhbG9nL2NvbmZpcm0tdGhlbi1leGVjdXRlLWRpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHtDb25maXJtYXRpb25EaWFsb2dDb21wb25lbnR9IGZyb20gJy4vY29tcG9uZW50cy9jb25maXJtYXRpb24tZGlhbG9nL2NvbmZpcm1hdGlvbi1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB0eXBlIHtDb25maXJtfSBmcm9tICcuL2NvbmZpcm0nO1xuaW1wb3J0IHR5cGUge0ludGVyYWN0aW9uQ29udGV4dH0gZnJvbSAnLi9pbnRlcmFjdGlvbi1jb250ZXh0JztcblxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3RJbnRlcmFjdGlvbkNvbnRleHQgaW1wbGVtZW50cyBJbnRlcmFjdGlvbkNvbnRleHQge1xuICBhYnN0cmFjdCByZWFkb25seSBpZGVudGlmaWVyOiBzdHJpbmc7XG5cbiAgYWJzdHJhY3QgY2FuY2VsQWN0aXZlQWN0aXZpdHkoKTogUHJvbWlzZTxib29sZWFuPjtcblxuICBhYnN0cmFjdCBkaXNwb3NlKCk6IHZvaWQ7XG5cbiAgYWJzdHJhY3QgcmVnaXN0ZXJEaXNwb3NhYmxlPFQgZXh0ZW5kcyBEaXNwb3NhYmxlPihkaXNwb3NhYmxlOiBUKTogVDtcblxuICBhYnN0cmFjdCBpc0FjdGl2ZSgpOiBib29sZWFuO1xuXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBjcmVhdGVBbmRMYXVuY2hBY3Rpdml0eTxELCBSLCBFPihhY3Rpdml0eVR5cGU6IENvbnN0cnVjdGFibGU8QWN0aXZpdHk8RCwgUiwgRT4+LCBkYXRhOiBELCBvcHRpb25zPzogSW50ZXJhY3Rpb25Db250ZXh0Lk9wdGlvbnMpOiBQcm9taXNlPFI+O1xuXG4gIHN0YXJ0QWN0aXZpdHk8RCwgUiwgRT4oYWN0aXZpdHlUeXBlOiBDb25zdHJ1Y3RhYmxlPEFjdGl2aXR5PEQsIFIsIEU+PiwgZGF0YT86IEQsIG9wdGlvbnM/OiBJbnRlcmFjdGlvbkNvbnRleHQuT3B0aW9ucyk6IFByb21pc2U8Uj4ge1xuICAgIHJldHVybiB0aGlzLmNyZWF0ZUFuZExhdW5jaEFjdGl2aXR5KGFjdGl2aXR5VHlwZSwgZGF0YSwgb3B0aW9ucyk7XG4gIH1cblxuICBjb25maXJtKGNvbmZpcm06IENvbmZpcm0pOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICAvLyBJbXBvcnRhbnQ6IHdlIGhhdmUgdG8gaW1wbGVtZW50IGNvbmZpcm1PclJlamVjdCBhcyB0aGUgbWFpbiBlbnRyeSBwb2ludFxuICAgIC8vIGFzIHRoZSBjYW5EZWFjdGl2YXRpb24gZ3VhcmRzIG5lZWQgdG8gYmUgYWJsZSB0byBjYW5jZWwgYW4gaW50ZXJhY3Rpb25cbiAgICAvLyB3aXRob3V0IGNhcmluZyBhYm91dCByZXR1cm5pbmcgYSB2YWx1ZS5cbiAgICByZXR1cm4gdGhpcy5jb25maXJtT3JSZWplY3QoY29uZmlybSkudGhlbigoKSA9PiB0cnVlKS5jYXRjaCgoKSA9PiBmYWxzZSk7XG4gIH1cblxuICBhbGVydChhbGVydDogQWxlcnQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5jcmVhdGVBbmRMYXVuY2hBY3Rpdml0eShBbGVydERpYWxvZ0NvbXBvbmVudCwgYWxlcnQsIHsgZW5hYmxlQ2xvc2VPbkJhY2tkcm9wQ2xpY2s6IHRydWUgfSk7XG4gIH1cblxuICBjb25maXJtT3JSZWplY3QoY29uZmlybTogQ29uZmlybSk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmNyZWF0ZUFuZExhdW5jaEFjdGl2aXR5KENvbmZpcm1hdGlvbkRpYWxvZ0NvbXBvbmVudCwgY29uZmlybSk7XG4gIH1cblxuICAvKipcbiAgICogUHJlc2VudHMgdGhlIGNvbmZpcm1hdGlvbiB0byB0aGUgdXNlciBhbmQgcnVucyB0aGUgYWN0aXZpdHkgb25seSBpZiB0aGUgdXNlciBjb25maXJtcy5cbiAgICogQHBhcmFtIGNvbmZpcm06Q29uZmlybSB0aGUgY29uZmlybWF0aW9uIHRvIGRpc3BsYXkuXG4gICAqIEBwYXJhbSBhY3Rpdml0eVR5cGUgdGhlIGFjdGl2aXR5IHRvIHJ1biBpZiBjb25maXJtZWQuXG4gICAqIEBwYXJhbSBkYXRhIHRoZSBhY3Rpdml0eSBkYXRhLlxuICAgKi9cbiAgY29uZmlybVRoZW48RCwgUiwgRT4oY29uZmlybTogQ29uZmlybSwgYWN0aXZpdHlUeXBlOiBDb25zdHJ1Y3RhYmxlPEFjdGl2aXR5PEQsIFIsIEU+PiwgZGF0YT86IEQpOiBQcm9taXNlPFI+IHtcbiAgICByZXR1cm4gdGhpcy5jcmVhdGVBbmRMYXVuY2hBY3Rpdml0eTxDb25maXJtVGhlbkRpYWxvZ0NvbXBvbmVudC5EYXRhPEQsIFIsIEU+LCBSLCBFPihDb25maXJtVGhlbkRpYWxvZ0NvbXBvbmVudCwge1xuICAgICAgY29uZmlybSxcbiAgICAgIGFjdGl2aXR5VHlwZTogYWN0aXZpdHlUeXBlLFxuICAgICAgZGF0YTogZGF0YVxuICAgIH0pO1xuICB9XG5cbiAgY29uZmlybVRoZW5FeGVjdXRlPFI+KGNvbmZpcm06IENvbmZpcm0sIG9wZXJhdGlvbjogKGludGVyYWN0aW9uQ29udGV4dDpJbnRlcmFjdGlvbkNvbnRleHQpID0+IChQcm9taXNlPFI+IHwgUikpOiBQcm9taXNlPFI+IHtcbiAgICByZXR1cm4gdGhpcy5jcmVhdGVBbmRMYXVuY2hBY3Rpdml0eTxDb25maXJtVGhlbkV4ZWN1dGVEaWFsb2dDb21wb25lbnQuRGF0YTxSLCB1bmtub3duPiwgUiwgdW5rbm93bj4oQ29uZmlybVRoZW5FeGVjdXRlRGlhbG9nQ29tcG9uZW50LCB7XG4gICAgICBjb25maXJtLFxuICAgICAgb3BlcmF0aW9uOiBvcGVyYXRpb25cbiAgICB9KTtcblxuICB9XG5cbn1cbiJdfQ==
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtaW50ZXJhY3Rpb24tY29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci11aS1wb3dlcnVwcy9zcmMvbGliL2ludGVyYWN0aW9uL2Fic3RyYWN0LWludGVyYWN0aW9uLWNvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUE0QixTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUlwRSxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxrREFBa0QsQ0FBQztBQUN0RixPQUFPLEVBQUMsMEJBQTBCLEVBQUMsTUFBTSxnRUFBZ0UsQ0FBQztBQUMxRyxPQUFPLEVBQUMsaUNBQWlDLEVBQUMsTUFBTSxnRkFBZ0YsQ0FBQztBQUNqSSxPQUFPLEVBQUMsMkJBQTJCLEVBQUMsTUFBTSxnRUFBZ0UsQ0FBQztBQUszRyxNQUFNLE9BQWdCLDBCQUEwQjtJQWE5QyxhQUFhLENBQVUsWUFBOEMsRUFBRSxJQUFRLEVBQUUsT0FBb0M7UUFDbkgsT0FBTyxJQUFJLENBQUMsdUJBQXVCLENBQUMsWUFBWSxFQUFFLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRUQsT0FBTyxDQUFDLE9BQWdCO1FBQ3RCLDBFQUEwRTtRQUMxRSx5RUFBeUU7UUFDekUsMENBQTBDO1FBQzFDLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNFLENBQUM7SUFFRDs7O09BR0c7SUFDSCxLQUFLLENBQUMsS0FBWTtRQUNoQixPQUFPLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxvQkFBb0IsRUFBRSxLQUFLLEVBQUUsRUFBRSwwQkFBMEIsRUFBRSxJQUFJLEVBQUUsQ0FBQzthQUNuRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxFQUFFO1lBQzlCLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFO2dCQUNoQyxNQUFNLE1BQU0sQ0FBQzthQUNkO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsZUFBZSxDQUFDLE9BQWdCO1FBQzlCLE9BQU8sSUFBSSxDQUFDLHVCQUF1QixDQUFDLDJCQUEyQixFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILFdBQVcsQ0FBVSxPQUFnQixFQUFFLFlBQThDLEVBQUUsSUFBUTtRQUM3RixPQUFPLElBQUksQ0FBQyx1QkFBdUIsQ0FBaUQsMEJBQTBCLEVBQUU7WUFDOUcsT0FBTztZQUNQLFlBQVksRUFBRSxZQUFZO1lBQzFCLElBQUksRUFBRSxJQUFJO1NBQ1gsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGtCQUFrQixDQUFJLE9BQWdCLEVBQUUsU0FBc0U7UUFDNUcsT0FBTyxJQUFJLENBQUMsdUJBQXVCLENBQWlFLGlDQUFpQyxFQUFFO1lBQ3JJLE9BQU87WUFDUCxTQUFTLEVBQUUsU0FBUztTQUNyQixDQUFDLENBQUM7SUFFTCxDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0QsIEUsIFJ9IGZyb20gXCJAYW5ndWxhci9jZGsva2V5Y29kZXNcIjtcbmltcG9ydCB7Q29uc3RydWN0YWJsZSwgRGlzcG9zYWJsZSwgUmVqZWN0aW9ufSBmcm9tICdAY29vbG9uL3BlY3Rpbic7XG5pbXBvcnQge09wdHN9IGZyb20gJ0Bjb29sb24vdHlwZXNjcmlwdC11dGlsaXRpZXMnO1xuaW1wb3J0IHR5cGUge0FjdGl2aXR5fSBmcm9tICcuL2FjdGl2aXR5JztcbmltcG9ydCB0eXBlIHtBbGVydH0gZnJvbSAnLi9hbGVydCc7XG5pbXBvcnQge0FsZXJ0RGlhbG9nQ29tcG9uZW50fSBmcm9tICcuL2NvbXBvbmVudHMvYWxlcnQtZGlhbG9nL2FsZXJ0LWRpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHtDb25maXJtVGhlbkRpYWxvZ0NvbXBvbmVudH0gZnJvbSAnLi9jb21wb25lbnRzL2NvbmZpcm0tdGhlbi1kaWFsb2cvY29uZmlybS10aGVuLWRpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHtDb25maXJtVGhlbkV4ZWN1dGVEaWFsb2dDb21wb25lbnR9IGZyb20gJy4vY29tcG9uZW50cy9jb25maXJtLXRoZW4tZXhlY3V0ZS1kaWFsb2cvY29uZmlybS10aGVuLWV4ZWN1dGUtZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQge0NvbmZpcm1hdGlvbkRpYWxvZ0NvbXBvbmVudH0gZnJvbSAnLi9jb21wb25lbnRzL2NvbmZpcm1hdGlvbi1kaWFsb2cvY29uZmlybWF0aW9uLWRpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHR5cGUge0NvbmZpcm19IGZyb20gJy4vY29uZmlybSc7XG5pbXBvcnQgdHlwZSB7SW50ZXJhY3Rpb25Db250ZXh0fSBmcm9tICcuL2ludGVyYWN0aW9uLWNvbnRleHQnO1xuXG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBYnN0cmFjdEludGVyYWN0aW9uQ29udGV4dCBpbXBsZW1lbnRzIEludGVyYWN0aW9uQ29udGV4dCB7XG4gIGFic3RyYWN0IHJlYWRvbmx5IGlkZW50aWZpZXI6IHN0cmluZztcblxuICBhYnN0cmFjdCBjYW5jZWxBY3RpdmVBY3Rpdml0eSgpOiBQcm9taXNlPGJvb2xlYW4+O1xuXG4gIGFic3RyYWN0IGRpc3Bvc2UoKTogdm9pZDtcblxuICBhYnN0cmFjdCByZWdpc3RlckRpc3Bvc2FibGU8VCBleHRlbmRzIERpc3Bvc2FibGU+KGRpc3Bvc2FibGU6IFQpOiBUO1xuXG4gIGFic3RyYWN0IGlzQWN0aXZlKCk6IGJvb2xlYW47XG5cbiAgcHJvdGVjdGVkIGFic3RyYWN0IGNyZWF0ZUFuZExhdW5jaEFjdGl2aXR5PEQsIFIsIEU+KGFjdGl2aXR5VHlwZTogQ29uc3RydWN0YWJsZTxBY3Rpdml0eTxELCBSLCBFPj4sIGRhdGE6IEQsIG9wdGlvbnM/OiBJbnRlcmFjdGlvbkNvbnRleHQuT3B0aW9ucyk6IFByb21pc2U8Uj47XG5cbiAgc3RhcnRBY3Rpdml0eTxELCBSLCBFPihhY3Rpdml0eVR5cGU6IENvbnN0cnVjdGFibGU8QWN0aXZpdHk8RCwgUiwgRT4+LCBkYXRhPzogRCwgb3B0aW9ucz86IEludGVyYWN0aW9uQ29udGV4dC5PcHRpb25zKTogUHJvbWlzZTxSPiB7XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlQW5kTGF1bmNoQWN0aXZpdHkoYWN0aXZpdHlUeXBlLCBkYXRhLCBvcHRpb25zKTtcbiAgfVxuXG4gIGNvbmZpcm0oY29uZmlybTogQ29uZmlybSk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIC8vIEltcG9ydGFudDogd2UgaGF2ZSB0byBpbXBsZW1lbnQgY29uZmlybU9yUmVqZWN0IGFzIHRoZSBtYWluIGVudHJ5IHBvaW50XG4gICAgLy8gYXMgdGhlIGNhbkRlYWN0aXZhdGlvbiBndWFyZHMgbmVlZCB0byBiZSBhYmxlIHRvIGNhbmNlbCBhbiBpbnRlcmFjdGlvblxuICAgIC8vIHdpdGhvdXQgY2FyaW5nIGFib3V0IHJldHVybmluZyBhIHZhbHVlLlxuICAgIHJldHVybiB0aGlzLmNvbmZpcm1PclJlamVjdChjb25maXJtKS50aGVuKCgpID0+IHRydWUpLmNhdGNoKCgpID0+IGZhbHNlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNvbHZlcyBob3dldmVyIHRoZSBhbGVydCBjbG9zZXMg4oCUIE9LLCBFc2MsIHRoZSBiYWNrZHJvcCwgb3IgYSB0ZWFyZG93biBzdWNoIGFzIHNpZ24tb3V0OiBpdCBpc1xuICAgKiBvbmx5IGV2ZXIgYWNrbm93bGVkZ2VkLCBzbyB0aGUgY29kZSBhZnRlciBpdCBhbHdheXMgcnVucy4gQSByZWFsIGZhaWx1cmUgc3RpbGwgcmVqZWN0cy5cbiAgICovXG4gIGFsZXJ0KGFsZXJ0OiBBbGVydCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmNyZWF0ZUFuZExhdW5jaEFjdGl2aXR5KEFsZXJ0RGlhbG9nQ29tcG9uZW50LCBhbGVydCwgeyBlbmFibGVDbG9zZU9uQmFja2Ryb3BDbGljazogdHJ1ZSB9KVxuICAgICAgLnRoZW4oKCkgPT4gdW5kZWZpbmVkLCByZWFzb24gPT4ge1xuICAgICAgICBpZiAoIVJlamVjdGlvbi5pc0hhbmRsZWQocmVhc29uKSkge1xuICAgICAgICAgIHRocm93IHJlYXNvbjtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBjb25maXJtT3JSZWplY3QoY29uZmlybTogQ29uZmlybSk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmNyZWF0ZUFuZExhdW5jaEFjdGl2aXR5KENvbmZpcm1hdGlvbkRpYWxvZ0NvbXBvbmVudCwgY29uZmlybSk7XG4gIH1cblxuICAvKipcbiAgICogUHJlc2VudHMgdGhlIGNvbmZpcm1hdGlvbiB0byB0aGUgdXNlciBhbmQgcnVucyB0aGUgYWN0aXZpdHkgb25seSBpZiB0aGUgdXNlciBjb25maXJtcy5cbiAgICogQHBhcmFtIGNvbmZpcm06Q29uZmlybSB0aGUgY29uZmlybWF0aW9uIHRvIGRpc3BsYXkuXG4gICAqIEBwYXJhbSBhY3Rpdml0eVR5cGUgdGhlIGFjdGl2aXR5IHRvIHJ1biBpZiBjb25maXJtZWQuXG4gICAqIEBwYXJhbSBkYXRhIHRoZSBhY3Rpdml0eSBkYXRhLlxuICAgKi9cbiAgY29uZmlybVRoZW48RCwgUiwgRT4oY29uZmlybTogQ29uZmlybSwgYWN0aXZpdHlUeXBlOiBDb25zdHJ1Y3RhYmxlPEFjdGl2aXR5PEQsIFIsIEU+PiwgZGF0YT86IEQpOiBQcm9taXNlPFI+IHtcbiAgICByZXR1cm4gdGhpcy5jcmVhdGVBbmRMYXVuY2hBY3Rpdml0eTxDb25maXJtVGhlbkRpYWxvZ0NvbXBvbmVudC5EYXRhPEQsIFIsIEU+LCBSLCBFPihDb25maXJtVGhlbkRpYWxvZ0NvbXBvbmVudCwge1xuICAgICAgY29uZmlybSxcbiAgICAgIGFjdGl2aXR5VHlwZTogYWN0aXZpdHlUeXBlLFxuICAgICAgZGF0YTogZGF0YVxuICAgIH0pO1xuICB9XG5cbiAgY29uZmlybVRoZW5FeGVjdXRlPFI+KGNvbmZpcm06IENvbmZpcm0sIG9wZXJhdGlvbjogKGludGVyYWN0aW9uQ29udGV4dDpJbnRlcmFjdGlvbkNvbnRleHQpID0+IChQcm9taXNlPFI+IHwgUikpOiBQcm9taXNlPFI+IHtcbiAgICByZXR1cm4gdGhpcy5jcmVhdGVBbmRMYXVuY2hBY3Rpdml0eTxDb25maXJtVGhlbkV4ZWN1dGVEaWFsb2dDb21wb25lbnQuRGF0YTxSLCB1bmtub3duPiwgUiwgdW5rbm93bj4oQ29uZmlybVRoZW5FeGVjdXRlRGlhbG9nQ29tcG9uZW50LCB7XG4gICAgICBjb25maXJtLFxuICAgICAgb3BlcmF0aW9uOiBvcGVyYXRpb25cbiAgICB9KTtcblxuICB9XG5cbn1cbiJdfQ==
@@ -0,0 +1,25 @@
1
+ import { Rejection } from '@coolon/pectin';
2
+ /**
3
+ * An activity cancelled without an error of its own — Esc, the backdrop, a Cancel button, a teardown —
4
+ * rejects with a handled AbortError (pectin's `Rejection.aborted`): the code awaiting it stops, and
5
+ * nobody sees an error. An activity cancelled with an error rejects with that error, as before.
6
+ */
7
+ export var ActivityCancellation;
8
+ (function (ActivityCancellation) {
9
+ /** The reason a plainly cancelled activity rejects with. */
10
+ function reason() {
11
+ return Rejection.aborted('Activity cancelled');
12
+ }
13
+ ActivityCancellation.reason = reason;
14
+ /** Whether [rejection] is a plain cancel, rather than a cancel with an error of its own. */
15
+ function isCancellation(rejection) {
16
+ return Rejection.isHandled(rejection) && rejection?.name === 'AbortError';
17
+ }
18
+ ActivityCancellation.isCancellation = isCancellation;
19
+ /** For cancel events, which report a plain cancel as undefined: the event payload for [rejection]. */
20
+ function eventPayload(rejection) {
21
+ return isCancellation(rejection) ? undefined : rejection;
22
+ }
23
+ ActivityCancellation.eventPayload = eventPayload;
24
+ })(ActivityCancellation || (ActivityCancellation = {}));
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHktY2FuY2VsbGF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvaW50ZXJhY3Rpb24vYWN0aXZpdHktY2FuY2VsbGF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6Qzs7OztHQUlHO0FBQ0gsTUFBTSxLQUFXLG9CQUFvQixDQWdCcEM7QUFoQkQsV0FBaUIsb0JBQW9CO0lBRW5DLDREQUE0RDtJQUM1RCxTQUFnQixNQUFNO1FBQ3BCLE9BQU8sU0FBUyxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFGZSwyQkFBTSxTQUVyQixDQUFBO0lBRUQsNEZBQTRGO0lBQzVGLFNBQWdCLGNBQWMsQ0FBQyxTQUFrQjtRQUMvQyxPQUFPLFNBQVMsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLElBQUssU0FBK0IsRUFBRSxJQUFJLEtBQUssWUFBWSxDQUFDO0lBQ25HLENBQUM7SUFGZSxtQ0FBYyxpQkFFN0IsQ0FBQTtJQUVELHNHQUFzRztJQUN0RyxTQUFnQixZQUFZLENBQUksU0FBa0I7UUFDaEQsT0FBTyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBYyxDQUFDO0lBQ2hFLENBQUM7SUFGZSxpQ0FBWSxlQUUzQixDQUFBO0FBQ0gsQ0FBQyxFQWhCZ0Isb0JBQW9CLEtBQXBCLG9CQUFvQixRQWdCcEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1JlamVjdGlvbn0gZnJvbSAnQGNvb2xvbi9wZWN0aW4nO1xuXG4vKipcbiAqIEFuIGFjdGl2aXR5IGNhbmNlbGxlZCB3aXRob3V0IGFuIGVycm9yIG9mIGl0cyBvd24g4oCUIEVzYywgdGhlIGJhY2tkcm9wLCBhIENhbmNlbCBidXR0b24sIGEgdGVhcmRvd24g4oCUXG4gKiByZWplY3RzIHdpdGggYSBoYW5kbGVkIEFib3J0RXJyb3IgKHBlY3RpbidzIGBSZWplY3Rpb24uYWJvcnRlZGApOiB0aGUgY29kZSBhd2FpdGluZyBpdCBzdG9wcywgYW5kXG4gKiBub2JvZHkgc2VlcyBhbiBlcnJvci4gQW4gYWN0aXZpdHkgY2FuY2VsbGVkIHdpdGggYW4gZXJyb3IgcmVqZWN0cyB3aXRoIHRoYXQgZXJyb3IsIGFzIGJlZm9yZS5cbiAqL1xuZXhwb3J0IG5hbWVzcGFjZSBBY3Rpdml0eUNhbmNlbGxhdGlvbiB7XG5cbiAgLyoqIFRoZSByZWFzb24gYSBwbGFpbmx5IGNhbmNlbGxlZCBhY3Rpdml0eSByZWplY3RzIHdpdGguICovXG4gIGV4cG9ydCBmdW5jdGlvbiByZWFzb24oKTogRXJyb3Ige1xuICAgIHJldHVybiBSZWplY3Rpb24uYWJvcnRlZCgnQWN0aXZpdHkgY2FuY2VsbGVkJyk7XG4gIH1cblxuICAvKiogV2hldGhlciBbcmVqZWN0aW9uXSBpcyBhIHBsYWluIGNhbmNlbCwgcmF0aGVyIHRoYW4gYSBjYW5jZWwgd2l0aCBhbiBlcnJvciBvZiBpdHMgb3duLiAqL1xuICBleHBvcnQgZnVuY3Rpb24gaXNDYW5jZWxsYXRpb24ocmVqZWN0aW9uOiB1bmtub3duKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIFJlamVjdGlvbi5pc0hhbmRsZWQocmVqZWN0aW9uKSAmJiAocmVqZWN0aW9uIGFzIEVycm9yIHwgdW5kZWZpbmVkKT8ubmFtZSA9PT0gJ0Fib3J0RXJyb3InO1xuICB9XG5cbiAgLyoqIEZvciBjYW5jZWwgZXZlbnRzLCB3aGljaCByZXBvcnQgYSBwbGFpbiBjYW5jZWwgYXMgdW5kZWZpbmVkOiB0aGUgZXZlbnQgcGF5bG9hZCBmb3IgW3JlamVjdGlvbl0uICovXG4gIGV4cG9ydCBmdW5jdGlvbiBldmVudFBheWxvYWQ8RT4ocmVqZWN0aW9uOiB1bmtub3duKTogRSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIGlzQ2FuY2VsbGF0aW9uKHJlamVjdGlvbikgPyB1bmRlZmluZWQgOiByZWplY3Rpb24gYXMgRTtcbiAgfVxufVxuIl19
@@ -1,4 +1,5 @@
1
1
  import { assert, Deferred, DelegatingValueModel, MutableValueModel } from '@coolon/pectin';
2
+ import { ActivityCancellation } from './activity-cancellation';
2
3
  export class ActivityRef {
3
4
  activityClass;
4
5
  activityData;
@@ -38,7 +39,7 @@ export class ActivityRef {
38
39
  self.finishActivity(deferred => deferred.resolve(result));
39
40
  },
40
41
  onCancel(error) {
41
- self.finishActivity(deferred => deferred.reject(error));
42
+ self.finishActivity(deferred => deferred.reject(error === undefined ? ActivityCancellation.reason() : error));
42
43
  },
43
44
  focused: this.focusedModel.readonly$
44
45
  });
@@ -66,4 +67,4 @@ export class ActivityRef {
66
67
  return this._activityBusy.readonly$;
67
68
  }
68
69
  }
69
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHktcmVmLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvaW50ZXJhY3Rpb24vYWN0aXZpdHktcmVmLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxNQUFNLEVBQWlCLFFBQVEsRUFBRSxvQkFBb0IsRUFBRSxpQkFBaUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBSXhHLE1BQU0sT0FBTyxXQUFXO0lBUUQ7SUFDQTtJQUNBO0lBUmIsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUNsQixTQUFTLENBQW9CO0lBQzdCLGNBQWMsR0FBRyxRQUFRLENBQUMsS0FBSyxFQUFLLENBQUM7SUFDNUIsWUFBWSxHQUFHLElBQUksaUJBQWlCLEVBQVcsQ0FBQztJQUNoRCxhQUFhLEdBQUcsSUFBSSxvQkFBb0IsRUFBVyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUV4RixZQUFxQixhQUErQyxFQUMvQyxZQUFlLEVBQ2YsVUFBdUQ7UUFGdkQsa0JBQWEsR0FBYixhQUFhLENBQWtDO1FBQy9DLGlCQUFZLEdBQVosWUFBWSxDQUFHO1FBQ2YsZUFBVSxHQUFWLFVBQVUsQ0FBNkM7SUFDNUUsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQzFCLENBQUM7SUFFRCxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDVixNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLENBQUM7UUFDM0MsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxVQUFVLENBQUMsT0FBZ0I7UUFDekIsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFBO0lBQ2hDLENBQUM7SUFFRCxxQkFBcUIsQ0FBQyxRQUEyQixFQUFFLHdCQUE0QztRQUM3RixNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM3QixJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQztRQUMxQixNQUFNLElBQUksR0FBRyxJQUFJLENBQUM7UUFDbEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsd0JBQXdCLEVBQUU7WUFDbEQsTUFBTSxDQUFDLE1BQVM7Z0JBQ2QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztZQUM1RCxDQUFDO1lBQ0QsUUFBUSxDQUFDLEtBQVE7Z0JBQ2YsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUMxRCxDQUFDO1lBQ0QsT0FBTyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUztTQUNyQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFUyxjQUFjLENBQUMsZUFBZ0Q7UUFDdkUsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRTtZQUN0QixNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO1lBQ25DLGVBQWUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDckMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7WUFDdEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN0QixJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sRUFBRSxDQUFDO1NBQzlCO2FBQU07WUFDTCxPQUFPLENBQUMsSUFBSSxDQUFDLCtEQUErRCxDQUFDLENBQUE7U0FDOUU7SUFDSCxDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELElBQUksY0FBYztRQUNoQixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDO0lBQ3RDLENBQUM7Q0FFRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7YXNzZXJ0LCBDb25zdHJ1Y3RhYmxlLCBEZWZlcnJlZCwgRGVsZWdhdGluZ1ZhbHVlTW9kZWwsIE11dGFibGVWYWx1ZU1vZGVsfSBmcm9tICdAY29vbG9uL3BlY3Rpbic7XG5pbXBvcnQgdHlwZSB7QWN0aXZpdHl9IGZyb20gJy4vYWN0aXZpdHknO1xuaW1wb3J0IHR5cGUge0ludGVyYWN0aW9uQ29udGV4dH0gZnJvbSAnLi9pbnRlcmFjdGlvbi1jb250ZXh0JztcblxuZXhwb3J0IGNsYXNzIEFjdGl2aXR5UmVmPEQsIFIsIEU+IHtcblxuICBwcml2YXRlIF9jb21wbGV0ZSA9IGZhbHNlO1xuICBwcml2YXRlIF9hY3Rpdml0eTogQWN0aXZpdHk8RCwgUiwgRT47XG4gIHByaXZhdGUgZGVmZXJyZWRSZXN1bHQgPSBEZWZlcnJlZC5kZWZlcjxSPigpO1xuICBwcml2YXRlIHJlYWRvbmx5IGZvY3VzZWRNb2RlbCA9IG5ldyBNdXRhYmxlVmFsdWVNb2RlbDxib29sZWFuPigpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9hY3Rpdml0eUJ1c3kgPSBuZXcgRGVsZWdhdGluZ1ZhbHVlTW9kZWw8Ym9vbGVhbj4oKS53aXRoRGVmYXVsdChmYWxzZSk7XG5cbiAgY29uc3RydWN0b3IocmVhZG9ubHkgYWN0aXZpdHlDbGFzczogQ29uc3RydWN0YWJsZTxBY3Rpdml0eTxELCBSLCBFPj4sXG4gICAgICAgICAgICAgIHJlYWRvbmx5IGFjdGl2aXR5RGF0YTogRCxcbiAgICAgICAgICAgICAgcmVhZG9ubHkgb25Db21wbGV0ZTogKGFjdGl2aXR5UmVmOiBBY3Rpdml0eVJlZjxELCBSLCBFPikgPT4gdm9pZCkge1xuICB9XG5cbiAgaXNBY3Rpdml0eVJlYWxpc2VkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuX2FjdGl2aXR5O1xuICB9XG5cbiAgaXNDb21wbGV0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fY29tcGxldGU7XG4gIH1cblxuICBnZXQgYWN0aXZpdHkoKTogQWN0aXZpdHk8RCwgUiwgRT4ge1xuICAgIGFzc2VydC5pc1RydXRoeSh0aGlzLmlzQWN0aXZpdHlSZWFsaXNlZCgpKTtcbiAgICByZXR1cm4gdGhpcy5fYWN0aXZpdHk7XG4gIH1cblxuICBzZXRGb2N1c2VkKGZvY3VzZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmZvY3VzZWRNb2RlbC52YWx1ZSA9IGZvY3VzZWQ7XG4gIH1cblxuICBnZXQgZm9jdXNlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5mb2N1c2VkTW9kZWwudmFsdWVcbiAgfVxuXG4gIG5vdGlmeUFjdGl2aXR5Q3JlYXRlZChhY3Rpdml0eTogQWN0aXZpdHk8RCwgUiwgRT4sIG5lc3RlZEludGVyYWN0aW9uQ29udGV4dDogSW50ZXJhY3Rpb25Db250ZXh0KSB7XG4gICAgYXNzZXJ0LmlzTmlsKHRoaXMuX2FjdGl2aXR5KTtcbiAgICB0aGlzLl9hY3Rpdml0eSA9IGFjdGl2aXR5O1xuICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xuICAgIHRoaXMuX2FjdGl2aXR5LmluaXRpYWxpc2UobmVzdGVkSW50ZXJhY3Rpb25Db250ZXh0LCB7XG4gICAgICBvbkRvbmUocmVzdWx0OiBSKSB7XG4gICAgICAgIHNlbGYuZmluaXNoQWN0aXZpdHkoZGVmZXJyZWQgPT4gZGVmZXJyZWQucmVzb2x2ZShyZXN1bHQpKTtcbiAgICAgIH0sXG4gICAgICBvbkNhbmNlbChlcnJvcjogRSkge1xuICAgICAgICBzZWxmLmZpbmlzaEFjdGl2aXR5KGRlZmVycmVkID0+IGRlZmVycmVkLnJlamVjdChlcnJvcikpO1xuICAgICAgfSxcbiAgICAgIGZvY3VzZWQ6IHRoaXMuZm9jdXNlZE1vZGVsLnJlYWRvbmx5JFxuICAgIH0pO1xuICAgIHRoaXMuX2FjdGl2aXR5QnVzeS5zZXREZWxlZ2F0ZSh0aGlzLl9hY3Rpdml0eS5idXN5JCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZmluaXNoQWN0aXZpdHkocmVzb2x2ZU9yUmVqZWN0OiAoZGVmZXJyZWQ6IERlZmVycmVkPFI+KSA9PiB2b2lkKSB7XG4gICAgaWYgKCF0aGlzLmlzQ29tcGxldGUoKSkge1xuICAgICAgYXNzZXJ0LmlzRmFsc2V5KHRoaXMuaXNDb21wbGV0ZSgpKTtcbiAgICAgIHJlc29sdmVPclJlamVjdCh0aGlzLmRlZmVycmVkUmVzdWx0KTtcbiAgICAgIHRoaXMuX2NvbXBsZXRlID0gdHJ1ZTtcbiAgICAgIHRoaXMub25Db21wbGV0ZSh0aGlzKTtcbiAgICAgIHRoaXMuX2FjdGl2aXR5QnVzeS5kaXNwb3NlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUud2FybihcImZpbmlzaEFjdGl2aXR5IGNhbGxlZCB3aGVuIGFjdGl2aXR5IGhhcyBhbHJlYWR5IGJlZW4gZmluaXNoZWRcIilcbiAgICB9XG4gIH1cblxuICBjYW5jZWwoKSB7XG4gICAgdGhpcy5hY3Rpdml0eS5jYW5jZWwoKTtcbiAgfVxuXG4gIGdldCBhY3Rpdml0eVJlc3VsdCgpOiBQcm9taXNlPFI+IHtcbiAgICByZXR1cm4gdGhpcy5kZWZlcnJlZFJlc3VsdC5wcm9taXNlO1xuICB9XG5cbiAgZ2V0IGFjdGl2aXR5QnVzeSgpIHtcbiAgICByZXR1cm4gdGhpcy5fYWN0aXZpdHlCdXN5LnJlYWRvbmx5JDtcbiAgfVxuXG59XG4iXX0=
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHktcmVmLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvaW50ZXJhY3Rpb24vYWN0aXZpdHktcmVmLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxNQUFNLEVBQWlCLFFBQVEsRUFBRSxvQkFBb0IsRUFBRSxpQkFBaUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRXhHLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBRzdELE1BQU0sT0FBTyxXQUFXO0lBUUQ7SUFDQTtJQUNBO0lBUmIsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUNsQixTQUFTLENBQW9CO0lBQzdCLGNBQWMsR0FBRyxRQUFRLENBQUMsS0FBSyxFQUFLLENBQUM7SUFDNUIsWUFBWSxHQUFHLElBQUksaUJBQWlCLEVBQVcsQ0FBQztJQUNoRCxhQUFhLEdBQUcsSUFBSSxvQkFBb0IsRUFBVyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUV4RixZQUFxQixhQUErQyxFQUMvQyxZQUFlLEVBQ2YsVUFBdUQ7UUFGdkQsa0JBQWEsR0FBYixhQUFhLENBQWtDO1FBQy9DLGlCQUFZLEdBQVosWUFBWSxDQUFHO1FBQ2YsZUFBVSxHQUFWLFVBQVUsQ0FBNkM7SUFDNUUsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQzFCLENBQUM7SUFFRCxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDVixNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLENBQUM7UUFDM0MsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxVQUFVLENBQUMsT0FBZ0I7UUFDekIsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFBO0lBQ2hDLENBQUM7SUFFRCxxQkFBcUIsQ0FBQyxRQUEyQixFQUFFLHdCQUE0QztRQUM3RixNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM3QixJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQztRQUMxQixNQUFNLElBQUksR0FBRyxJQUFJLENBQUM7UUFDbEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsd0JBQXdCLEVBQUU7WUFDbEQsTUFBTSxDQUFDLE1BQVM7Z0JBQ2QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztZQUM1RCxDQUFDO1lBQ0QsUUFBUSxDQUFDLEtBQVE7Z0JBQ2YsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDaEgsQ0FBQztZQUNELE9BQU8sRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVM7U0FDckMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRVMsY0FBYyxDQUFDLGVBQWdEO1FBQ3ZFLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUU7WUFDdEIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztZQUNuQyxlQUFlLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQ3JDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDdEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztTQUM5QjthQUFNO1lBQ0wsT0FBTyxDQUFDLElBQUksQ0FBQywrREFBK0QsQ0FBQyxDQUFBO1NBQzlFO0lBQ0gsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxJQUFJLGNBQWM7UUFDaEIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQztJQUNyQyxDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQztJQUN0QyxDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2Fzc2VydCwgQ29uc3RydWN0YWJsZSwgRGVmZXJyZWQsIERlbGVnYXRpbmdWYWx1ZU1vZGVsLCBNdXRhYmxlVmFsdWVNb2RlbH0gZnJvbSAnQGNvb2xvbi9wZWN0aW4nO1xuaW1wb3J0IHR5cGUge0FjdGl2aXR5fSBmcm9tICcuL2FjdGl2aXR5JztcbmltcG9ydCB7QWN0aXZpdHlDYW5jZWxsYXRpb259IGZyb20gJy4vYWN0aXZpdHktY2FuY2VsbGF0aW9uJztcbmltcG9ydCB0eXBlIHtJbnRlcmFjdGlvbkNvbnRleHR9IGZyb20gJy4vaW50ZXJhY3Rpb24tY29udGV4dCc7XG5cbmV4cG9ydCBjbGFzcyBBY3Rpdml0eVJlZjxELCBSLCBFPiB7XG5cbiAgcHJpdmF0ZSBfY29tcGxldGUgPSBmYWxzZTtcbiAgcHJpdmF0ZSBfYWN0aXZpdHk6IEFjdGl2aXR5PEQsIFIsIEU+O1xuICBwcml2YXRlIGRlZmVycmVkUmVzdWx0ID0gRGVmZXJyZWQuZGVmZXI8Uj4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBmb2N1c2VkTW9kZWwgPSBuZXcgTXV0YWJsZVZhbHVlTW9kZWw8Ym9vbGVhbj4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfYWN0aXZpdHlCdXN5ID0gbmV3IERlbGVnYXRpbmdWYWx1ZU1vZGVsPGJvb2xlYW4+KCkud2l0aERlZmF1bHQoZmFsc2UpO1xuXG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IGFjdGl2aXR5Q2xhc3M6IENvbnN0cnVjdGFibGU8QWN0aXZpdHk8RCwgUiwgRT4+LFxuICAgICAgICAgICAgICByZWFkb25seSBhY3Rpdml0eURhdGE6IEQsXG4gICAgICAgICAgICAgIHJlYWRvbmx5IG9uQ29tcGxldGU6IChhY3Rpdml0eVJlZjogQWN0aXZpdHlSZWY8RCwgUiwgRT4pID0+IHZvaWQpIHtcbiAgfVxuXG4gIGlzQWN0aXZpdHlSZWFsaXNlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLl9hY3Rpdml0eTtcbiAgfVxuXG4gIGlzQ29tcGxldGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbXBsZXRlO1xuICB9XG5cbiAgZ2V0IGFjdGl2aXR5KCk6IEFjdGl2aXR5PEQsIFIsIEU+IHtcbiAgICBhc3NlcnQuaXNUcnV0aHkodGhpcy5pc0FjdGl2aXR5UmVhbGlzZWQoKSk7XG4gICAgcmV0dXJuIHRoaXMuX2FjdGl2aXR5O1xuICB9XG5cbiAgc2V0Rm9jdXNlZChmb2N1c2VkOiBib29sZWFuKSB7XG4gICAgdGhpcy5mb2N1c2VkTW9kZWwudmFsdWUgPSBmb2N1c2VkO1xuICB9XG5cbiAgZ2V0IGZvY3VzZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZm9jdXNlZE1vZGVsLnZhbHVlXG4gIH1cblxuICBub3RpZnlBY3Rpdml0eUNyZWF0ZWQoYWN0aXZpdHk6IEFjdGl2aXR5PEQsIFIsIEU+LCBuZXN0ZWRJbnRlcmFjdGlvbkNvbnRleHQ6IEludGVyYWN0aW9uQ29udGV4dCkge1xuICAgIGFzc2VydC5pc05pbCh0aGlzLl9hY3Rpdml0eSk7XG4gICAgdGhpcy5fYWN0aXZpdHkgPSBhY3Rpdml0eTtcbiAgICBjb25zdCBzZWxmID0gdGhpcztcbiAgICB0aGlzLl9hY3Rpdml0eS5pbml0aWFsaXNlKG5lc3RlZEludGVyYWN0aW9uQ29udGV4dCwge1xuICAgICAgb25Eb25lKHJlc3VsdDogUikge1xuICAgICAgICBzZWxmLmZpbmlzaEFjdGl2aXR5KGRlZmVycmVkID0+IGRlZmVycmVkLnJlc29sdmUocmVzdWx0KSk7XG4gICAgICB9LFxuICAgICAgb25DYW5jZWwoZXJyb3I6IEUpIHtcbiAgICAgICAgc2VsZi5maW5pc2hBY3Rpdml0eShkZWZlcnJlZCA9PiBkZWZlcnJlZC5yZWplY3QoZXJyb3IgPT09IHVuZGVmaW5lZCA/IEFjdGl2aXR5Q2FuY2VsbGF0aW9uLnJlYXNvbigpIDogZXJyb3IpKTtcbiAgICAgIH0sXG4gICAgICBmb2N1c2VkOiB0aGlzLmZvY3VzZWRNb2RlbC5yZWFkb25seSRcbiAgICB9KTtcbiAgICB0aGlzLl9hY3Rpdml0eUJ1c3kuc2V0RGVsZWdhdGUodGhpcy5fYWN0aXZpdHkuYnVzeSQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGZpbmlzaEFjdGl2aXR5KHJlc29sdmVPclJlamVjdDogKGRlZmVycmVkOiBEZWZlcnJlZDxSPikgPT4gdm9pZCkge1xuICAgIGlmICghdGhpcy5pc0NvbXBsZXRlKCkpIHtcbiAgICAgIGFzc2VydC5pc0ZhbHNleSh0aGlzLmlzQ29tcGxldGUoKSk7XG4gICAgICByZXNvbHZlT3JSZWplY3QodGhpcy5kZWZlcnJlZFJlc3VsdCk7XG4gICAgICB0aGlzLl9jb21wbGV0ZSA9IHRydWU7XG4gICAgICB0aGlzLm9uQ29tcGxldGUodGhpcyk7XG4gICAgICB0aGlzLl9hY3Rpdml0eUJ1c3kuZGlzcG9zZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zb2xlLndhcm4oXCJmaW5pc2hBY3Rpdml0eSBjYWxsZWQgd2hlbiBhY3Rpdml0eSBoYXMgYWxyZWFkeSBiZWVuIGZpbmlzaGVkXCIpXG4gICAgfVxuICB9XG5cbiAgY2FuY2VsKCkge1xuICAgIHRoaXMuYWN0aXZpdHkuY2FuY2VsKCk7XG4gIH1cblxuICBnZXQgYWN0aXZpdHlSZXN1bHQoKTogUHJvbWlzZTxSPiB7XG4gICAgcmV0dXJuIHRoaXMuZGVmZXJyZWRSZXN1bHQucHJvbWlzZTtcbiAgfVxuXG4gIGdldCBhY3Rpdml0eUJ1c3koKSB7XG4gICAgcmV0dXJuIHRoaXMuX2FjdGl2aXR5QnVzeS5yZWFkb25seSQ7XG4gIH1cblxufVxuIl19
@@ -6,6 +6,7 @@ import { lang } from '@coolon/typescript-utilities';
6
6
  import { HorizontalAlignment } from '../../../components/alignment';
7
7
  import { CommandFace } from '../../../components/commands/command-face';
8
8
  import { DisposableComponent } from '../../../components/disposable-component';
9
+ import { ActivityCancellation } from '../../activity-cancellation';
9
10
  import * as i0 from "@angular/core";
10
11
  export class AbstractActivityTriggerComponent extends DisposableComponent {
11
12
  #activityClass_accessor_storage;
@@ -42,7 +43,7 @@ export class AbstractActivityTriggerComponent extends DisposableComponent {
42
43
  .then(result => {
43
44
  this.confirmEvent.emit(result);
44
45
  }).catch(error => {
45
- this.cancelEvent.emit(error);
46
+ this.cancelEvent.emit(ActivityCancellation.eventPayload(error));
46
47
  });
47
48
  });
48
49
  }
@@ -104,4 +105,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
104
105
  type: HostBinding,
105
106
  args: ['class.active']
106
107
  }] } });
107
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtYWN0aXZpdHktdHJpZ2dlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9pbnRlcmFjdGlvbi9jb21wb25lbnRzL2FjdGl2aXR5LXRyaWdnZXJzL2Fic3RyYWN0LWFjdGl2aXR5LXRyaWdnZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSwrR0FBK0c7QUFDL0csT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDMUYsT0FBTyxFQUFDLE1BQU0sRUFBRSxPQUFPLEVBQWlCLE9BQU8sRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsVUFBVSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0csT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ2xELE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSwyQ0FBMkMsQ0FBQztBQUN0RSxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQzs7QUFRN0UsTUFBTSxPQUFPLGdDQUE0RCxTQUFRLG1CQUFtQjtJQUd6RixnQ0FBZ0Q7SUFBaEQsSUFBQSxhQUFhLG1EQUFtQztJQUFoRCxJQUFBLGFBQWEseURBQW1DO0lBR2hELG1DQUFpQixPQUFPLENBQUMsQ0FBQSxVQUE0QyxDQUFBLENBQUMsQ0FBQztJQUF2RSxJQUFBLGNBQWMsb0RBQXlEO0lBQXZFLElBQUEsY0FBYywwREFBeUQ7SUFHdkUsK0JBQWdCO0lBQWhCLElBQUEsWUFBWSxrREFBSTtJQUFoQixJQUFBLFlBQVksd0RBQUk7SUFHaEIsa0NBQWdCLE9BQU8sQ0FBQyxDQUFBLFVBQWEsQ0FBQSxDQUFDLENBQUM7SUFBdkMsSUFBQSxhQUFhLG1EQUEwQjtJQUF2QyxJQUFBLGFBQWEseURBQTBCO0lBR3ZDLHVCQUFrQjtJQUFsQixJQUFBLElBQUksMENBQWM7SUFBbEIsSUFBQSxJQUFJLGdEQUFjO0lBR2xCLDBCQUFRLE9BQU8sQ0FBQyxDQUFBLFVBQXVCLENBQUEsQ0FBQyxDQUFDO0lBQXpDLElBQUEsS0FBSywyQ0FBb0M7SUFBekMsSUFBQSxLQUFLLGlEQUFvQztJQUdsRCxTQUFTLEdBQXdCLG1CQUFtQixDQUFDLE1BQU0sQ0FBQztJQUVuRCxvQkFBb0IsQ0FBbUI7SUFFaEQsSUFBSSxrQkFBa0I7UUFDcEIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQTtJQUM5QyxDQUFDO0lBR0QsWUFBWSxHQUFHLElBQUksWUFBWSxFQUFLLENBQUM7SUFHckMsV0FBVyxHQUFHLElBQUksWUFBWSxFQUFLLENBQUM7SUFFcEM7UUFDRSxLQUFLLEVBQUUsQ0FBQztRQUNSLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUM5QyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUNsQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDO2lCQUN6RSxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUU7Z0JBQ2IsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDakMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUNqQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMvQixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUdELElBQ0ksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixFQUFFLFFBQVEsRUFBRSxDQUFDO0lBQzdDLENBQUM7dUdBckRVLGdDQUFnQzsyRkFBaEMsZ0NBQWdDLGdhQUZqQyxFQUFFOztBQUtIO0lBREMsaUJBQWlCLEVBQUU7O3FFQUM0QjtBQUdoRDtJQURDLE9BQU8sRUFBRTs7c0VBQzZEO0FBR3ZFO0lBREMsaUJBQWlCLEVBQUU7O29FQUNKO0FBR2hCO0lBREMsT0FBTyxFQUFFOztxRUFDNkI7QUFHdkM7SUFEQyxpQkFBaUIsRUFBRTs7NERBQ0Y7QUFHbEI7SUFEQyxPQUFPLEVBQUU7OzZEQUMrQjsyRkFsQnZDLGdDQUFnQztrQkFKNUMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsK0JBQStCO29CQUN6QyxRQUFRLEVBQUUsRUFBRTtpQkFDYjswRUFJVSxhQUFhO3NCQURyQixLQUFLO2dCQUlHLGNBQWM7c0JBRHRCLEtBQUs7Z0JBSUcsWUFBWTtzQkFEcEIsS0FBSztnQkFJRyxhQUFhO3NCQURyQixLQUFLO2dCQUlHLElBQUk7c0JBRFosS0FBSztnQkFJRyxLQUFLO3NCQURiLEtBQUs7Z0JBSU4sU0FBUztzQkFEUixLQUFLO2dCQVVOLFlBQVk7c0JBRFgsTUFBTTtnQkFJUCxXQUFXO3NCQURWLE1BQU07Z0JBbUJILFFBQVE7c0JBRFgsV0FBVzt1QkFBQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAtLSB0cmlnZ2VycyBkaXNwYXRjaCBhcmJpdHJhcnkgQWN0aXZpdHk8RCwgUiwgRT4gc2hhcGVzICovXG5pbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgSW5wdXQsIE9uSW5pdCwgT3V0cHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7YXNzZXJ0LCBDb21tYW5kLCBDb25zdHJ1Y3RhYmxlLCBQcm94aWZ5LCBwcm94aWZ5LCBTdG9yZUluVmFsdWVNb2RlbCwgVmFsdWVNb2RlbH0gZnJvbSAnQGNvb2xvbi9wZWN0aW4nO1xuaW1wb3J0IHtsYW5nfSBmcm9tICdAY29vbG9uL3R5cGVzY3JpcHQtdXRpbGl0aWVzJztcbmltcG9ydCB7SG9yaXpvbnRhbEFsaWdubWVudH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9hbGlnbm1lbnQnO1xuaW1wb3J0IHtDb21tYW5kRmFjZX0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9jb21tYW5kcy9jb21tYW5kLWZhY2UnO1xuaW1wb3J0IHtEaXNwb3NhYmxlQ29tcG9uZW50fSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL2Rpc3Bvc2FibGUtY29tcG9uZW50JztcbmltcG9ydCB0eXBlIHtBY3Rpdml0eX0gZnJvbSAnLi4vLi4vYWN0aXZpdHknO1xuaW1wb3J0IHR5cGUge0ludGVyYWN0aW9uQ29udGV4dH0gZnJvbSAnLi4vLi4vaW50ZXJhY3Rpb24tY29udGV4dCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F1cC1hYnN0cmFjdC1hY3Rpdml0eS10cmlnZ2VyJyxcbiAgdGVtcGxhdGU6ICcnXG59KVxuZXhwb3J0IGNsYXNzIEFic3RyYWN0QWN0aXZpdHlUcmlnZ2VyQ29tcG9uZW50PEQgPSBhbnksIFIgPSBhbnksIEUgPSBhbnk+IGV4dGVuZHMgRGlzcG9zYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQElucHV0KCkgQFN0b3JlSW5WYWx1ZU1vZGVsKClcbiAgYWNjZXNzb3IgYWN0aXZpdHlDbGFzczogQ29uc3RydWN0YWJsZTxBY3Rpdml0eTxELCBSLCBFPj47XG5cbiAgQElucHV0KCkgQFByb3hpZnkoKVxuICBhY2Nlc3NvciBhY3Rpdml0eUNsYXNzJCA9IHByb3hpZnkoVmFsdWVNb2RlbDxDb25zdHJ1Y3RhYmxlPEFjdGl2aXR5PEQsIFIsIEU+Pj4pO1xuXG4gIEBJbnB1dCgpIEBTdG9yZUluVmFsdWVNb2RlbCgpXG4gIGFjY2Vzc29yIGFjdGl2aXR5RGF0YTogRDtcblxuICBASW5wdXQoKSBAUHJveGlmeSgpXG4gIGFjY2Vzc29yIGFjdGl2aXR5RGF0YSQgPSBwcm94aWZ5KFZhbHVlTW9kZWw8RD4pO1xuXG4gIEBJbnB1dCgpIEBTdG9yZUluVmFsdWVNb2RlbCgpXG4gIGFjY2Vzc29yIGZhY2U6IENvbW1hbmRGYWNlO1xuXG4gIEBJbnB1dCgpIEBQcm94aWZ5KClcbiAgYWNjZXNzb3IgZmFjZSQgPSBwcm94aWZ5KFZhbHVlTW9kZWw8Q29tbWFuZEZhY2U+KTtcblxuICBASW5wdXQoKVxuICBhbGlnbkZhY2U6IEhvcml6b250YWxBbGlnbm1lbnQgPSBIb3Jpem9udGFsQWxpZ25tZW50LkNFTlRFUjtcblxuICByZWFkb25seSBzdGFydEFjdGl2aXR5Q29tbWFuZDogQ29tbWFuZDx1bmtub3duPjtcblxuICBnZXQgaW50ZXJhY3Rpb25Db250ZXh0KCk6IEludGVyYWN0aW9uQ29udGV4dCB7XG4gICAgcmV0dXJuIGxhbmcuYWJzdHJhY3RNZXRob2QodGhpcy5jb25zdHJ1Y3RvcilcbiAgfVxuXG4gIEBPdXRwdXQoKVxuICBjb25maXJtRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPFI+KCk7XG5cbiAgQE91dHB1dCgpXG4gIGNhbmNlbEV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxFPigpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5zdGFydEFjdGl2aXR5Q29tbWFuZCA9IENvbW1hbmQuY3JlYXRlKCgpID0+IHtcbiAgICAgIGFzc2VydC5ub3ROaWwodGhpcy5hY3Rpdml0eUNsYXNzKTtcbiAgICAgIGFzc2VydC5ub3ROaWwodGhpcy5pbnRlcmFjdGlvbkNvbnRleHQpO1xuICAgICAgdGhpcy5pbnRlcmFjdGlvbkNvbnRleHQuc3RhcnRBY3Rpdml0eSh0aGlzLmFjdGl2aXR5Q2xhc3MsIHRoaXMuYWN0aXZpdHlEYXRhKVxuICAgICAgICAudGhlbihyZXN1bHQgPT4ge1xuICAgICAgICAgIHRoaXMuY29uZmlybUV2ZW50LmVtaXQocmVzdWx0KTtcbiAgICAgICAgfSkuY2F0Y2goZXJyb3IgPT4ge1xuICAgICAgICB0aGlzLmNhbmNlbEV2ZW50LmVtaXQoZXJyb3IpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MuYWN0aXZlJylcbiAgZ2V0IGlzQWN0aXZlKCkge1xuICAgIHJldHVybiB0aGlzLmludGVyYWN0aW9uQ29udGV4dD8uaXNBY3RpdmUoKTtcbiAgfVxuXG59XG4iXX0=
108
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtYWN0aXZpdHktdHJpZ2dlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9pbnRlcmFjdGlvbi9jb21wb25lbnRzL2FjdGl2aXR5LXRyaWdnZXJzL2Fic3RyYWN0LWFjdGl2aXR5LXRyaWdnZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSwrR0FBK0c7QUFDL0csT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDMUYsT0FBTyxFQUFDLE1BQU0sRUFBRSxPQUFPLEVBQWlCLE9BQU8sRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsVUFBVSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0csT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ2xELE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSwyQ0FBMkMsQ0FBQztBQUN0RSxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQztBQUU3RSxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQzs7QUFPakUsTUFBTSxPQUFPLGdDQUE0RCxTQUFRLG1CQUFtQjtJQUd6RixnQ0FBZ0Q7SUFBaEQsSUFBQSxhQUFhLG1EQUFtQztJQUFoRCxJQUFBLGFBQWEseURBQW1DO0lBR2hELG1DQUFpQixPQUFPLENBQUMsQ0FBQSxVQUE0QyxDQUFBLENBQUMsQ0FBQztJQUF2RSxJQUFBLGNBQWMsb0RBQXlEO0lBQXZFLElBQUEsY0FBYywwREFBeUQ7SUFHdkUsK0JBQWdCO0lBQWhCLElBQUEsWUFBWSxrREFBSTtJQUFoQixJQUFBLFlBQVksd0RBQUk7SUFHaEIsa0NBQWdCLE9BQU8sQ0FBQyxDQUFBLFVBQWEsQ0FBQSxDQUFDLENBQUM7SUFBdkMsSUFBQSxhQUFhLG1EQUEwQjtJQUF2QyxJQUFBLGFBQWEseURBQTBCO0lBR3ZDLHVCQUFrQjtJQUFsQixJQUFBLElBQUksMENBQWM7SUFBbEIsSUFBQSxJQUFJLGdEQUFjO0lBR2xCLDBCQUFRLE9BQU8sQ0FBQyxDQUFBLFVBQXVCLENBQUEsQ0FBQyxDQUFDO0lBQXpDLElBQUEsS0FBSywyQ0FBb0M7SUFBekMsSUFBQSxLQUFLLGlEQUFvQztJQUdsRCxTQUFTLEdBQXdCLG1CQUFtQixDQUFDLE1BQU0sQ0FBQztJQUVuRCxvQkFBb0IsQ0FBbUI7SUFFaEQsSUFBSSxrQkFBa0I7UUFDcEIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQTtJQUM5QyxDQUFDO0lBR0QsWUFBWSxHQUFHLElBQUksWUFBWSxFQUFLLENBQUM7SUFHckMsV0FBVyxHQUFHLElBQUksWUFBWSxFQUFLLENBQUM7SUFFcEM7UUFDRSxLQUFLLEVBQUUsQ0FBQztRQUNSLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUM5QyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUNsQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDO2lCQUN6RSxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUU7Z0JBQ2IsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDakMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUNqQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxZQUFZLENBQUksS0FBSyxDQUFDLENBQUMsQ0FBQztZQUNyRSxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUdELElBQ0ksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixFQUFFLFFBQVEsRUFBRSxDQUFDO0lBQzdDLENBQUM7dUdBckRVLGdDQUFnQzsyRkFBaEMsZ0NBQWdDLGdhQUZqQyxFQUFFOztBQUtIO0lBREMsaUJBQWlCLEVBQUU7O3FFQUM0QjtBQUdoRDtJQURDLE9BQU8sRUFBRTs7c0VBQzZEO0FBR3ZFO0lBREMsaUJBQWlCLEVBQUU7O29FQUNKO0FBR2hCO0lBREMsT0FBTyxFQUFFOztxRUFDNkI7QUFHdkM7SUFEQyxpQkFBaUIsRUFBRTs7NERBQ0Y7QUFHbEI7SUFEQyxPQUFPLEVBQUU7OzZEQUMrQjsyRkFsQnZDLGdDQUFnQztrQkFKNUMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsK0JBQStCO29CQUN6QyxRQUFRLEVBQUUsRUFBRTtpQkFDYjswRUFJVSxhQUFhO3NCQURyQixLQUFLO2dCQUlHLGNBQWM7c0JBRHRCLEtBQUs7Z0JBSUcsWUFBWTtzQkFEcEIsS0FBSztnQkFJRyxhQUFhO3NCQURyQixLQUFLO2dCQUlHLElBQUk7c0JBRFosS0FBSztnQkFJRyxLQUFLO3NCQURiLEtBQUs7Z0JBSU4sU0FBUztzQkFEUixLQUFLO2dCQVVOLFlBQVk7c0JBRFgsTUFBTTtnQkFJUCxXQUFXO3NCQURWLE1BQU07Z0JBbUJILFFBQVE7c0JBRFgsV0FBVzt1QkFBQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAtLSB0cmlnZ2VycyBkaXNwYXRjaCBhcmJpdHJhcnkgQWN0aXZpdHk8RCwgUiwgRT4gc2hhcGVzICovXG5pbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgSW5wdXQsIE9uSW5pdCwgT3V0cHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7YXNzZXJ0LCBDb21tYW5kLCBDb25zdHJ1Y3RhYmxlLCBQcm94aWZ5LCBwcm94aWZ5LCBTdG9yZUluVmFsdWVNb2RlbCwgVmFsdWVNb2RlbH0gZnJvbSAnQGNvb2xvbi9wZWN0aW4nO1xuaW1wb3J0IHtsYW5nfSBmcm9tICdAY29vbG9uL3R5cGVzY3JpcHQtdXRpbGl0aWVzJztcbmltcG9ydCB7SG9yaXpvbnRhbEFsaWdubWVudH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9hbGlnbm1lbnQnO1xuaW1wb3J0IHtDb21tYW5kRmFjZX0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9jb21tYW5kcy9jb21tYW5kLWZhY2UnO1xuaW1wb3J0IHtEaXNwb3NhYmxlQ29tcG9uZW50fSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL2Rpc3Bvc2FibGUtY29tcG9uZW50JztcbmltcG9ydCB0eXBlIHtBY3Rpdml0eX0gZnJvbSAnLi4vLi4vYWN0aXZpdHknO1xuaW1wb3J0IHtBY3Rpdml0eUNhbmNlbGxhdGlvbn0gZnJvbSAnLi4vLi4vYWN0aXZpdHktY2FuY2VsbGF0aW9uJztcbmltcG9ydCB0eXBlIHtJbnRlcmFjdGlvbkNvbnRleHR9IGZyb20gJy4uLy4uL2ludGVyYWN0aW9uLWNvbnRleHQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhdXAtYWJzdHJhY3QtYWN0aXZpdHktdHJpZ2dlcicsXG4gIHRlbXBsYXRlOiAnJ1xufSlcbmV4cG9ydCBjbGFzcyBBYnN0cmFjdEFjdGl2aXR5VHJpZ2dlckNvbXBvbmVudDxEID0gYW55LCBSID0gYW55LCBFID0gYW55PiBleHRlbmRzIERpc3Bvc2FibGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIEBJbnB1dCgpIEBTdG9yZUluVmFsdWVNb2RlbCgpXG4gIGFjY2Vzc29yIGFjdGl2aXR5Q2xhc3M6IENvbnN0cnVjdGFibGU8QWN0aXZpdHk8RCwgUiwgRT4+O1xuXG4gIEBJbnB1dCgpIEBQcm94aWZ5KClcbiAgYWNjZXNzb3IgYWN0aXZpdHlDbGFzcyQgPSBwcm94aWZ5KFZhbHVlTW9kZWw8Q29uc3RydWN0YWJsZTxBY3Rpdml0eTxELCBSLCBFPj4+KTtcblxuICBASW5wdXQoKSBAU3RvcmVJblZhbHVlTW9kZWwoKVxuICBhY2Nlc3NvciBhY3Rpdml0eURhdGE6IEQ7XG5cbiAgQElucHV0KCkgQFByb3hpZnkoKVxuICBhY2Nlc3NvciBhY3Rpdml0eURhdGEkID0gcHJveGlmeShWYWx1ZU1vZGVsPEQ+KTtcblxuICBASW5wdXQoKSBAU3RvcmVJblZhbHVlTW9kZWwoKVxuICBhY2Nlc3NvciBmYWNlOiBDb21tYW5kRmFjZTtcblxuICBASW5wdXQoKSBAUHJveGlmeSgpXG4gIGFjY2Vzc29yIGZhY2UkID0gcHJveGlmeShWYWx1ZU1vZGVsPENvbW1hbmRGYWNlPik7XG5cbiAgQElucHV0KClcbiAgYWxpZ25GYWNlOiBIb3Jpem9udGFsQWxpZ25tZW50ID0gSG9yaXpvbnRhbEFsaWdubWVudC5DRU5URVI7XG5cbiAgcmVhZG9ubHkgc3RhcnRBY3Rpdml0eUNvbW1hbmQ6IENvbW1hbmQ8dW5rbm93bj47XG5cbiAgZ2V0IGludGVyYWN0aW9uQ29udGV4dCgpOiBJbnRlcmFjdGlvbkNvbnRleHQge1xuICAgIHJldHVybiBsYW5nLmFic3RyYWN0TWV0aG9kKHRoaXMuY29uc3RydWN0b3IpXG4gIH1cblxuICBAT3V0cHV0KClcbiAgY29uZmlybUV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxSPigpO1xuXG4gIEBPdXRwdXQoKVxuICBjYW5jZWxFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8RT4oKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuc3RhcnRBY3Rpdml0eUNvbW1hbmQgPSBDb21tYW5kLmNyZWF0ZSgoKSA9PiB7XG4gICAgICBhc3NlcnQubm90TmlsKHRoaXMuYWN0aXZpdHlDbGFzcyk7XG4gICAgICBhc3NlcnQubm90TmlsKHRoaXMuaW50ZXJhY3Rpb25Db250ZXh0KTtcbiAgICAgIHRoaXMuaW50ZXJhY3Rpb25Db250ZXh0LnN0YXJ0QWN0aXZpdHkodGhpcy5hY3Rpdml0eUNsYXNzLCB0aGlzLmFjdGl2aXR5RGF0YSlcbiAgICAgICAgLnRoZW4ocmVzdWx0ID0+IHtcbiAgICAgICAgICB0aGlzLmNvbmZpcm1FdmVudC5lbWl0KHJlc3VsdCk7XG4gICAgICAgIH0pLmNhdGNoKGVycm9yID0+IHtcbiAgICAgICAgdGhpcy5jYW5jZWxFdmVudC5lbWl0KEFjdGl2aXR5Q2FuY2VsbGF0aW9uLmV2ZW50UGF5bG9hZDxFPihlcnJvcikpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MuYWN0aXZlJylcbiAgZ2V0IGlzQWN0aXZlKCkge1xuICAgIHJldHVybiB0aGlzLmludGVyYWN0aW9uQ29udGV4dD8uaXNBY3RpdmUoKTtcbiAgfVxuXG59XG4iXX0=
@@ -1,6 +1,7 @@
1
1
  import { Directive, EventEmitter, HostListener, Input, Output } from '@angular/core';
2
2
  import { assert, GarbageCollector } from '@coolon/pectin';
3
3
  import { isFunction } from 'lodash-es';
4
+ import { ActivityCancellation } from '../activity-cancellation';
4
5
  import * as i0 from "@angular/core";
5
6
  export class InteractionContextTriggerForDirective extends GarbageCollector {
6
7
  aupInteractionContextTriggerFor;
@@ -41,7 +42,7 @@ export class InteractionContextTriggerForDirective extends GarbageCollector {
41
42
  this.activityDone.emit(result);
42
43
  })
43
44
  .catch(error => {
44
- this.activityCancelled.emit(error);
45
+ this.activityCancelled.emit(ActivityCancellation.eventPayload(error));
45
46
  });
46
47
  }
47
48
  prepareActivityData() {
@@ -74,4 +75,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
74
75
  type: HostListener,
75
76
  args: ['click', ['$event']]
76
77
  }] } });
77
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJhY3Rpb24tY29udGV4dC10cmlnZ2VyLWZvci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9pbnRlcmFjdGlvbi9kaXJlY3RpdmVzL2ludGVyYWN0aW9uLWNvbnRleHQtdHJpZ2dlci1mb3IuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ25GLE9BQU8sRUFBQyxNQUFNLEVBQWlCLGdCQUFnQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFdkUsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLFdBQVcsQ0FBQzs7QUFPckMsTUFBTSxPQUFPLHFDQUErQyxTQUFRLGdCQUFnQjtJQUdsRiwrQkFBK0IsQ0FBa0Y7SUFHakgsYUFBYSxDQUFtQztJQUdoRCxZQUFZLENBQUs7SUFHakIsbUJBQW1CLENBQVc7SUFHOUIsWUFBWSxHQUFHLElBQUksWUFBWSxFQUFLLENBQUM7SUFHckMsaUJBQWlCLEdBQUcsSUFBSSxZQUFZLEVBQUssQ0FBQztJQUUxQztRQUNFLEtBQUssRUFBRSxDQUFDO0lBQ1YsQ0FBQztJQUdELE9BQU8sQ0FBQyxLQUFvQjtRQUMxQixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxJQUFJLENBQUMsK0JBQStCLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDcEQsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1NBQ3RCO2FBQU07WUFDTCxJQUFJLENBQUMsK0JBQStCLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztTQUM3RDtJQUNILENBQUM7SUFHRCxPQUFPLENBQUMsS0FBaUI7UUFDdkIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsSUFBSSxDQUFDLCtCQUErQixDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQ3BELElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztTQUN0QjthQUFNO1lBQ0wsSUFBSSxDQUFDLCtCQUErQixDQUFDLG9CQUFvQixFQUFFLENBQUM7U0FDN0Q7SUFDSCxDQUFDO0lBRVMsYUFBYTtRQUNyQixNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO1FBQ3RELE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLCtCQUErQixDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDakUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLCtCQUErQixDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUM7YUFDdEYsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ2IsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDakMsQ0FBQyxDQUFDO2FBQ0QsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ2IsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxtQkFBbUI7UUFDakIsT0FBTyxVQUFVLENBQUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDakcsQ0FBQzt1R0E3RFUscUNBQXFDOzJGQUFyQyxxQ0FBcUM7OzJGQUFyQyxxQ0FBcUM7a0JBSGpELFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG1DQUFtQztpQkFDOUM7MEVBSUMsK0JBQStCO3NCQUQ5QixLQUFLO2dCQUlOLGFBQWE7c0JBRFosS0FBSztnQkFJTixZQUFZO3NCQURYLEtBQUs7Z0JBSU4sbUJBQW1CO3NCQURsQixLQUFLO2dCQUlOLFlBQVk7c0JBRFgsTUFBTTtnQkFJUCxpQkFBaUI7c0JBRGhCLE1BQU07Z0JBUVAsT0FBTztzQkFETixZQUFZO3VCQUFDLGFBQWEsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFZdkMsT0FBTztzQkFETixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBFdmVudEVtaXR0ZXIsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE91dHB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge2Fzc2VydCwgQ29uc3RydWN0YWJsZSwgR2FyYmFnZUNvbGxlY3Rvcn0gZnJvbSAnQGNvb2xvbi9wZWN0aW4nO1xuXG5pbXBvcnQge2lzRnVuY3Rpb259IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgdHlwZSB7QWN0aXZpdHl9IGZyb20gJy4uL2FjdGl2aXR5JztcbmltcG9ydCB0eXBlIHtJbnRlcmFjdGlvbkNvbnRleHR9IGZyb20gJy4uL2ludGVyYWN0aW9uLWNvbnRleHQnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbYXVwSW50ZXJhY3Rpb25Db250ZXh0VHJpZ2dlckZvcl0nXG59KVxuZXhwb3J0IGNsYXNzIEludGVyYWN0aW9uQ29udGV4dFRyaWdnZXJGb3JEaXJlY3RpdmU8RCwgUiwgRT4gZXh0ZW5kcyBHYXJiYWdlQ29sbGVjdG9yIHtcblxuICBASW5wdXQoKVxuICBhdXBJbnRlcmFjdGlvbkNvbnRleHRUcmlnZ2VyRm9yOiBQaWNrPEludGVyYWN0aW9uQ29udGV4dCwgJ3N0YXJ0QWN0aXZpdHknIHwgJ2lzQWN0aXZlJyB8ICdjYW5jZWxBY3RpdmVBY3Rpdml0eSc+O1xuXG4gIEBJbnB1dCgpXG4gIGFjdGl2aXR5Q2xhc3M6IENvbnN0cnVjdGFibGU8QWN0aXZpdHk8RCwgUiwgRT4+O1xuXG4gIEBJbnB1dCgpXG4gIGFjdGl2aXR5RGF0YT86IEQ7XG5cbiAgQElucHV0KClcbiAgYWN0aXZpdHlEYXRhRmFjdG9yeT86ICgpID0+IEQ7XG5cbiAgQE91dHB1dCgpXG4gIGFjdGl2aXR5RG9uZSA9IG5ldyBFdmVudEVtaXR0ZXI8Uj4oKTtcblxuICBAT3V0cHV0KClcbiAgYWN0aXZpdHlDYW5jZWxsZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEU+KCk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2tleXVwLmVudGVyJywgWyckZXZlbnQnXSlcbiAgb25FbnRlcihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgaWYgKCF0aGlzLmF1cEludGVyYWN0aW9uQ29udGV4dFRyaWdnZXJGb3IuaXNBY3RpdmUoKSkge1xuICAgICAgdGhpcy5zdGFydEFjdGl2aXR5KCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYXVwSW50ZXJhY3Rpb25Db250ZXh0VHJpZ2dlckZvci5jYW5jZWxBY3RpdmVBY3Rpdml0eSgpO1xuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnXSlcbiAgb25DbGljayhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgaWYgKCF0aGlzLmF1cEludGVyYWN0aW9uQ29udGV4dFRyaWdnZXJGb3IuaXNBY3RpdmUoKSkge1xuICAgICAgdGhpcy5zdGFydEFjdGl2aXR5KCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYXVwSW50ZXJhY3Rpb25Db250ZXh0VHJpZ2dlckZvci5jYW5jZWxBY3RpdmVBY3Rpdml0eSgpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBzdGFydEFjdGl2aXR5KCkge1xuICAgIGFzc2VydC5pc1RydXRoeSh0aGlzLmF1cEludGVyYWN0aW9uQ29udGV4dFRyaWdnZXJGb3IpO1xuICAgIGFzc2VydC5pc0ZhbHNleSh0aGlzLmF1cEludGVyYWN0aW9uQ29udGV4dFRyaWdnZXJGb3IuaXNBY3RpdmUoKSk7XG4gICAgYXNzZXJ0LmlzVHJ1dGh5KHRoaXMuYWN0aXZpdHlDbGFzcyk7XG4gICAgdGhpcy5hdXBJbnRlcmFjdGlvbkNvbnRleHRUcmlnZ2VyRm9yLnN0YXJ0QWN0aXZpdHkodGhpcy5hY3Rpdml0eUNsYXNzLCB0aGlzLmFjdGl2aXR5RGF0YSlcbiAgICAgIC50aGVuKHJlc3VsdCA9PiB7XG4gICAgICAgIHRoaXMuYWN0aXZpdHlEb25lLmVtaXQocmVzdWx0KTtcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goZXJyb3IgPT4ge1xuICAgICAgICB0aGlzLmFjdGl2aXR5Q2FuY2VsbGVkLmVtaXQoZXJyb3IpO1xuICAgICAgfSk7XG4gIH1cblxuICBwcmVwYXJlQWN0aXZpdHlEYXRhKCk6IEQge1xuICAgIHJldHVybiBpc0Z1bmN0aW9uKHRoaXMuYWN0aXZpdHlEYXRhRmFjdG9yeSgpKSA/IHRoaXMuYWN0aXZpdHlEYXRhRmFjdG9yeSgpIDogdGhpcy5hY3Rpdml0eURhdGE7XG4gIH1cblxufVxuIl19
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJhY3Rpb24tY29udGV4dC10cmlnZ2VyLWZvci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9pbnRlcmFjdGlvbi9kaXJlY3RpdmVzL2ludGVyYWN0aW9uLWNvbnRleHQtdHJpZ2dlci1mb3IuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ25GLE9BQU8sRUFBQyxNQUFNLEVBQWlCLGdCQUFnQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFdkUsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLFdBQVcsQ0FBQztBQUVyQyxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQzs7QUFNOUQsTUFBTSxPQUFPLHFDQUErQyxTQUFRLGdCQUFnQjtJQUdsRiwrQkFBK0IsQ0FBa0Y7SUFHakgsYUFBYSxDQUFtQztJQUdoRCxZQUFZLENBQUs7SUFHakIsbUJBQW1CLENBQVc7SUFHOUIsWUFBWSxHQUFHLElBQUksWUFBWSxFQUFLLENBQUM7SUFHckMsaUJBQWlCLEdBQUcsSUFBSSxZQUFZLEVBQUssQ0FBQztJQUUxQztRQUNFLEtBQUssRUFBRSxDQUFDO0lBQ1YsQ0FBQztJQUdELE9BQU8sQ0FBQyxLQUFvQjtRQUMxQixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxJQUFJLENBQUMsK0JBQStCLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDcEQsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1NBQ3RCO2FBQU07WUFDTCxJQUFJLENBQUMsK0JBQStCLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztTQUM3RDtJQUNILENBQUM7SUFHRCxPQUFPLENBQUMsS0FBaUI7UUFDdkIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsSUFBSSxDQUFDLCtCQUErQixDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQ3BELElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztTQUN0QjthQUFNO1lBQ0wsSUFBSSxDQUFDLCtCQUErQixDQUFDLG9CQUFvQixFQUFFLENBQUM7U0FDN0Q7SUFDSCxDQUFDO0lBRVMsYUFBYTtRQUNyQixNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO1FBQ3RELE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLCtCQUErQixDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDakUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLCtCQUErQixDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUM7YUFDdEYsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ2IsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDakMsQ0FBQyxDQUFDO2FBQ0QsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ2IsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxZQUFZLENBQUksS0FBSyxDQUFDLENBQUMsQ0FBQztRQUMzRSxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxtQkFBbUI7UUFDakIsT0FBTyxVQUFVLENBQUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDakcsQ0FBQzt1R0E3RFUscUNBQXFDOzJGQUFyQyxxQ0FBcUM7OzJGQUFyQyxxQ0FBcUM7a0JBSGpELFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG1DQUFtQztpQkFDOUM7MEVBSUMsK0JBQStCO3NCQUQ5QixLQUFLO2dCQUlOLGFBQWE7c0JBRFosS0FBSztnQkFJTixZQUFZO3NCQURYLEtBQUs7Z0JBSU4sbUJBQW1CO3NCQURsQixLQUFLO2dCQUlOLFlBQVk7c0JBRFgsTUFBTTtnQkFJUCxpQkFBaUI7c0JBRGhCLE1BQU07Z0JBUVAsT0FBTztzQkFETixZQUFZO3VCQUFDLGFBQWEsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFZdkMsT0FBTztzQkFETixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBFdmVudEVtaXR0ZXIsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE91dHB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge2Fzc2VydCwgQ29uc3RydWN0YWJsZSwgR2FyYmFnZUNvbGxlY3Rvcn0gZnJvbSAnQGNvb2xvbi9wZWN0aW4nO1xuXG5pbXBvcnQge2lzRnVuY3Rpb259IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgdHlwZSB7QWN0aXZpdHl9IGZyb20gJy4uL2FjdGl2aXR5JztcbmltcG9ydCB7QWN0aXZpdHlDYW5jZWxsYXRpb259IGZyb20gJy4uL2FjdGl2aXR5LWNhbmNlbGxhdGlvbic7XG5pbXBvcnQgdHlwZSB7SW50ZXJhY3Rpb25Db250ZXh0fSBmcm9tICcuLi9pbnRlcmFjdGlvbi1jb250ZXh0JztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2F1cEludGVyYWN0aW9uQ29udGV4dFRyaWdnZXJGb3JdJ1xufSlcbmV4cG9ydCBjbGFzcyBJbnRlcmFjdGlvbkNvbnRleHRUcmlnZ2VyRm9yRGlyZWN0aXZlPEQsIFIsIEU+IGV4dGVuZHMgR2FyYmFnZUNvbGxlY3RvciB7XG5cbiAgQElucHV0KClcbiAgYXVwSW50ZXJhY3Rpb25Db250ZXh0VHJpZ2dlckZvcjogUGljazxJbnRlcmFjdGlvbkNvbnRleHQsICdzdGFydEFjdGl2aXR5JyB8ICdpc0FjdGl2ZScgfCAnY2FuY2VsQWN0aXZlQWN0aXZpdHknPjtcblxuICBASW5wdXQoKVxuICBhY3Rpdml0eUNsYXNzOiBDb25zdHJ1Y3RhYmxlPEFjdGl2aXR5PEQsIFIsIEU+PjtcblxuICBASW5wdXQoKVxuICBhY3Rpdml0eURhdGE/OiBEO1xuXG4gIEBJbnB1dCgpXG4gIGFjdGl2aXR5RGF0YUZhY3Rvcnk/OiAoKSA9PiBEO1xuXG4gIEBPdXRwdXQoKVxuICBhY3Rpdml0eURvbmUgPSBuZXcgRXZlbnRFbWl0dGVyPFI+KCk7XG5cbiAgQE91dHB1dCgpXG4gIGFjdGl2aXR5Q2FuY2VsbGVkID0gbmV3IEV2ZW50RW1pdHRlcjxFPigpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdrZXl1cC5lbnRlcicsIFsnJGV2ZW50J10pXG4gIG9uRW50ZXIoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGlmICghdGhpcy5hdXBJbnRlcmFjdGlvbkNvbnRleHRUcmlnZ2VyRm9yLmlzQWN0aXZlKCkpIHtcbiAgICAgIHRoaXMuc3RhcnRBY3Rpdml0eSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmF1cEludGVyYWN0aW9uQ29udGV4dFRyaWdnZXJGb3IuY2FuY2VsQWN0aXZlQWN0aXZpdHkoKTtcbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pXG4gIG9uQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGlmICghdGhpcy5hdXBJbnRlcmFjdGlvbkNvbnRleHRUcmlnZ2VyRm9yLmlzQWN0aXZlKCkpIHtcbiAgICAgIHRoaXMuc3RhcnRBY3Rpdml0eSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmF1cEludGVyYWN0aW9uQ29udGV4dFRyaWdnZXJGb3IuY2FuY2VsQWN0aXZlQWN0aXZpdHkoKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgc3RhcnRBY3Rpdml0eSgpIHtcbiAgICBhc3NlcnQuaXNUcnV0aHkodGhpcy5hdXBJbnRlcmFjdGlvbkNvbnRleHRUcmlnZ2VyRm9yKTtcbiAgICBhc3NlcnQuaXNGYWxzZXkodGhpcy5hdXBJbnRlcmFjdGlvbkNvbnRleHRUcmlnZ2VyRm9yLmlzQWN0aXZlKCkpO1xuICAgIGFzc2VydC5pc1RydXRoeSh0aGlzLmFjdGl2aXR5Q2xhc3MpO1xuICAgIHRoaXMuYXVwSW50ZXJhY3Rpb25Db250ZXh0VHJpZ2dlckZvci5zdGFydEFjdGl2aXR5KHRoaXMuYWN0aXZpdHlDbGFzcywgdGhpcy5hY3Rpdml0eURhdGEpXG4gICAgICAudGhlbihyZXN1bHQgPT4ge1xuICAgICAgICB0aGlzLmFjdGl2aXR5RG9uZS5lbWl0KHJlc3VsdCk7XG4gICAgICB9KVxuICAgICAgLmNhdGNoKGVycm9yID0+IHtcbiAgICAgICAgdGhpcy5hY3Rpdml0eUNhbmNlbGxlZC5lbWl0KEFjdGl2aXR5Q2FuY2VsbGF0aW9uLmV2ZW50UGF5bG9hZDxFPihlcnJvcikpO1xuICAgICAgfSk7XG4gIH1cblxuICBwcmVwYXJlQWN0aXZpdHlEYXRhKCk6IEQge1xuICAgIHJldHVybiBpc0Z1bmN0aW9uKHRoaXMuYWN0aXZpdHlEYXRhRmFjdG9yeSgpKSA/IHRoaXMuYWN0aXZpdHlEYXRhRmFjdG9yeSgpIDogdGhpcy5hY3Rpdml0eURhdGE7XG4gIH1cblxufVxuIl19