ngx-kel-agent 0.7.13 → 0.7.15

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.
@@ -6,13 +6,13 @@ export class AgentMessageService {
6
6
  this.rxMessage$ = new Subject();
7
7
  this.txMessage$ = new Subject();
8
8
  }
9
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: AgentMessageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
10
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: AgentMessageService, providedIn: 'root' }); }
9
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: AgentMessageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
10
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: AgentMessageService, providedIn: 'root' }); }
11
11
  }
12
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: AgentMessageService, decorators: [{
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: AgentMessageService, decorators: [{
13
13
  type: Injectable,
14
14
  args: [{
15
15
  providedIn: 'root',
16
16
  }]
17
17
  }], ctorParameters: () => [] });
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdlbnQtbWVzc2FnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWtlbC1hZ2VudC9zcmMvbGliL2FnZW50LW1lc3NhZ2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBSy9CLE1BQU0sT0FBTyxtQkFBbUI7SUFJOUI7UUFIQSxlQUFVLEdBQUcsSUFBSSxPQUFPLEVBQU8sQ0FBQztRQUNoQyxlQUFVLEdBQUcsSUFBSSxPQUFPLEVBQU8sQ0FBQztJQUVqQixDQUFDOzhHQUpMLG1CQUFtQjtrSEFBbkIsbUJBQW1CLGNBRmxCLE1BQU07OzJGQUVQLG1CQUFtQjtrQkFIL0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBBZ2VudE1lc3NhZ2VTZXJ2aWNlIHtcbiAgcnhNZXNzYWdlJCA9IG5ldyBTdWJqZWN0PGFueT4oKTtcbiAgdHhNZXNzYWdlJCA9IG5ldyBTdWJqZWN0PGFueT4oKTtcblxuICBjb25zdHJ1Y3RvcigpIHt9XG59XG4iXX0=
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdlbnQtbWVzc2FnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWtlbC1hZ2VudC9zcmMvbGliL2FnZW50LW1lc3NhZ2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBSy9CLE1BQU0sT0FBTyxtQkFBbUI7SUFJOUI7UUFIQSxlQUFVLEdBQUcsSUFBSSxPQUFPLEVBQU8sQ0FBQztRQUNoQyxlQUFVLEdBQUcsSUFBSSxPQUFPLEVBQU8sQ0FBQztJQUVqQixDQUFDOytHQUpMLG1CQUFtQjttSEFBbkIsbUJBQW1CLGNBRmxCLE1BQU07OzRGQUVQLG1CQUFtQjtrQkFIL0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBBZ2VudE1lc3NhZ2VTZXJ2aWNlIHtcbiAgcnhNZXNzYWdlJCA9IG5ldyBTdWJqZWN0PGFueT4oKTtcbiAgdHhNZXNzYWdlJCA9IG5ldyBTdWJqZWN0PGFueT4oKTtcblxuICBjb25zdHJ1Y3RvcigpIHt9XG59XG4iXX0=
@@ -167,13 +167,13 @@ export class AgentService {
167
167
  static formatDecode(msg) {
168
168
  return WsjtxService.formatDecode(msg);
169
169
  }
170
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: AgentService, deps: [{ token: i1.AgentMessageService }, { token: i2.HamlibService }, { token: i3.WsjtxService }], target: i0.ɵɵFactoryTarget.Injectable }); }
171
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: AgentService, providedIn: 'root' }); }
170
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: AgentService, deps: [{ token: i1.AgentMessageService }, { token: i2.HamlibService }, { token: i3.WsjtxService }], target: i0.ɵɵFactoryTarget.Injectable }); }
171
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: AgentService, providedIn: 'root' }); }
172
172
  }
173
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: AgentService, decorators: [{
173
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: AgentService, decorators: [{
174
174
  type: Injectable,
175
175
  args: [{
176
176
  providedIn: 'root',
177
177
  }]
178
178
  }], ctorParameters: () => [{ type: i1.AgentMessageService }, { type: i2.HamlibService }, { type: i3.WsjtxService }] });
179
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdlbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1rZWwtYWdlbnQvc3JjL2xpYi9hZ2VudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxlQUFlLEVBQXdDLE1BQU0sTUFBTSxDQUFDO0FBRzdFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFZM0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxTQUFTLEVBQW9CLE1BQU0sZ0JBQWdCLENBQUM7Ozs7O0FBSzdELE1BQU0sT0FBTyxZQUFZO0lBb0Z2QixZQUNVLFFBQTZCLEVBQzdCLGFBQTRCLEVBQzVCLFlBQTBCO1FBRjFCLGFBQVEsR0FBUixRQUFRLENBQXFCO1FBQzdCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBdEZwQyw0Q0FBNEM7UUFDNUIsb0JBQWUsR0FBRyxJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztRQXdFckQscUJBQWdCLEdBQUcsV0FBVyxDQUFDO1FBQy9CLHFCQUFnQixHQUFHLElBQUksQ0FBQztRQUN4Qix3QkFBbUIsR0FBRyxZQUFZLENBQUM7UUFDbkMsd0JBQW1CLEdBQUcsWUFBWSxDQUFDO1FBRTVDLGNBQVMsR0FBVyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7UUFDMUMsY0FBUyxHQUFXLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztRQUMxQywwQkFBcUIsR0FBb0MsSUFBSSxDQUFDO1FBQzlELCtCQUEwQixHQUF3QixJQUFJLENBQUM7UUFPN0QsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQztRQUNs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QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFnZW50TWVzc2FnZVNlcnZpY2UgfSBmcm9tICcuL2FnZW50LW1lc3NhZ2Uuc2VydmljZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFJlcGxheVN1YmplY3QsIFN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgSGFtbGliUmlnU3RhdGUgfSBmcm9tICcuL2hhbWxpYi1tZXNzYWdlcyc7XG5pbXBvcnQgeyBIYW1saWJTZXJ2aWNlIH0gZnJvbSAnLi9oYW1saWIuc2VydmljZSc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBXc2p0eENsZWFyLFxuICBXc2p0eENsb3NlLFxuICBXc2p0eERlY29kZSxcbiAgV3NqdHhIZWFydGJlYXQsXG4gIFdzanR4SGlnaGxpZ2h0Q2FsbHNpZ24sXG4gIFdzanR4TG9nZ2VkQWRpZixcbiAgV3NqdHhRc29Mb2dnZWQsXG4gIFdzanR4U3RhdHVzLFxuICBXc2p0eFdzcHJEZWNvZGUsXG59IGZyb20gJy4vd3NqdHgtbWVzc2FnZXMnO1xuaW1wb3J0IHsgV3NqdHhTZXJ2aWNlIH0gZnJvbSAnLi93c2p0eC5zZXJ2aWNlJztcbmltcG9ydCB7IGRlbGF5LCByZXRyeVdoZW4sIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IHdlYlNvY2tldCwgV2ViU29ja2V0U3ViamVjdCB9IGZyb20gJ3J4anMvd2ViU29ja2V0JztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEFnZW50U2VydmljZSB7XG4gIC8qKiBXaGV0aGVyIHdlJ3JlIGNvbm5lY3RlZCB0byB0aGUgYWdlbnQuICovXG4gIHB1YmxpYyByZWFkb25seSBjb25uZWN0ZWRTdGF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcblxuICAvKiAgV1NKVC1YICAqL1xuICAvKipcbiAgICogV2hldGhlciB3ZSdyZSBnZXR0aW5nIGFueSBtZXNzYWdlcyBmcm9tIFdTSlQtWC5cbiAgICpcbiAgICogQGRlcHJlY2F0ZWQgVXNlIHtAbGluayBXc2p0eFNlcnZpY2UuY29ubmVjdGVkJH0gaW5zdGVhZC5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB3c2p0eFN0YXRlJDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+O1xuICAvKipcbiAgICogU3ViamVjdCBmb3IgbGlzdGVuaW5nIHRvIFdTSlQtWCBcIkhlYXJ0YmVhdFwiIG1lc3NhZ2VzLlxuICAgKlxuICAgKiBAZGVwcmVjYXRlZCBVc2Uge0BsaW5rIFdzanR4U2VydmljZS5oZWFydGJlYXQkfSBpbnN0ZWFkLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHdzanR4SGVhcnRiZWF0JDogUmVwbGF5U3ViamVjdDxXc2p0eEhlYXJ0YmVhdCB8IG51bGw+O1xuICAvKipcbiAgICogU3ViamVjdCBmb3IgbGlzdGVuaW5nIHRvIFdTSlQtWCBcIlN0YXR1c1wiIG1lc3NhZ2VzLlxuICAgKlxuICAgKiBAZGVwcmVjYXRlZCBVc2Uge0BsaW5rIFdzanR4U2VydmljZS5zdGF0dXMkfSBpbnN0ZWFkLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHdzanR4U3RhdHVzJDogUmVwbGF5U3ViamVjdDxXc2p0eFN0YXR1cyB8IG51bGw+O1xuICAvKipcbiAgICogU3ViamVjdCBmb3IgbGlzdGVuaW5nIHRvIFdTSlQtWCBcIkRlY29kZVwiIG1lc3NhZ2VzLlxuICAgKlxuICAgKiBAZGVwcmVjYXRlZCBVc2Uge0BsaW5rIFdzanR4U2VydmljZS5kZWNvZGUkfSBpbnN0ZWFkLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHdzanR4RGVjb2RlJDogU3ViamVjdDxXc2p0eERlY29kZT47XG4gIC8qKlxuICAgKiBTdWJqZWN0IGZvciBsaXN0ZW5pbmcgdG8gV1NKVC1YIFwiQ2xlYXJcIiBtZXNzYWdlcy5cbiAgICpcbiAgICogQGRlcHJlY2F0ZWQgVXNlIHtAbGluayBXc2p0eFNlcnZpY2UuY2xlYXIkfSBpbnN0ZWFkLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHdzanR4Q2xlYXIkOiBTdWJqZWN0PFdzanR4Q2xlYXI+O1xuICAvKipcbiAgICogU3ViamVjdCBmb3IgbGlzdGVuaW5nIHRvIFdTSlQtWCBcIlFzb0xvZ2dlZFwiIG1lc3NhZ2VzLlxuICAgKlxuICAgKiBAZGVwcmVjYXRlZCBVc2Uge0BsaW5rIFdzanR4U2VydmljZS5xc29Mb2dnZWQkfSBpbnN0ZWFkLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHdzanR4UXNvTG9nZ2VkJDogU3ViamVjdDxXc2p0eFFzb0xvZ2dlZD47XG4gIC8qKlxuICAgKiBTdWJqZWN0IGZvciBsaXN0ZW5pbmcgdG8gV1NKVC1YIFwiQ2xvc2VcIiBtZXNzYWdlcy5cbiAgICpcbiAgICogQGRlcHJlY2F0ZWQgVXNlIHtAbGluayBXc2p0eFNlcnZpY2UuY2xvc2UkfSBpbnN0ZWFkLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHdzanR4Q2xvc2UkOiBTdWJqZWN0PFdzanR4Q2xvc2U+O1xuICAvKipcbiAgICogU3ViamVjdCBmb3IgbGlzdGVuaW5nIHRvIFdTSlQtWCBcIldzcHJEZWNvZGVcIiBtZXNzYWdlcy5cbiAgICpcbiAgICogQGRlcHJlY2F0ZWQgVXNlIHtAbGluayBXc2p0eFNlcnZpY2Uud3NwckRlY29kZSR9IGluc3RlYWQuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgd3NqdHhXc3ByRGVjb2RlJDogU3ViamVjdDxXc2p0eFdzcHJEZWNvZGU+O1xuICAvKipcbiAgICogU3ViamVjdCBmb3IgbGlzdGVuaW5nIHRvIFdTSlQtWCBcIkxvZ2dlZEFkaWZcIiBtZXNzYWdlcy5cbiAgICpcbiAgICogQGRlcHJlY2F0ZWQgVXNlIHtAbGluayBXc2p0eFNlcnZpY2UubG9nZ2VkQWRpZiR9IGluc3RlYWQuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgd3NqdHhMb2dnZWRBZGlmJDogU3ViamVjdDxXc2p0eExvZ2dlZEFkaWY+O1xuXG4gIC8qICBIYW1saWIgICovXG4gIC8qKlxuICAgKiBXaGV0aGVyIHdlJ3JlIGdldHRpbmcgYW55IG1lc3NhZ2VzIGZyb20gSGFtbGliLlxuICAgKlxuICAgKiBAZGVwcmVjYXRlZCBVc2Uge0BsaW5rIEhhbWxpYlNlcnZpY2UuY29ubmVjdGVkJH0gaW5zdGVhZC5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBoYW1saWJTdGF0ZSQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPjtcbiAgLyoqXG4gICAqIFN1YmplY3QgZm9yIGxpc3RlbmluZyB0byBIYW1saWIgXCJSaWdTdGF0ZVwiIG1lc3NhZ2VzLlxuICAgKlxuICAgKiBAZGVwcmVjYXRlZCBVc2Uge0BsaW5rIEhhbWxpYlNlcnZpY2UucmlnU3RhdGUkfSBpbnN0ZWFkLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGhhbWxpYlJpZ1N0YXRlJDogQmVoYXZpb3JTdWJqZWN0PEhhbWxpYlJpZ1N0YXRlIHwgbnVsbD47XG5cbiAgcHJpdmF0ZSByZWFkb25seSBkZWZhdWx0QWdlbnRIb3N0ID0gJ2xvY2FsaG9zdCc7XG4gIHByaXZhdGUgcmVhZG9ubHkgZGVmYXVsdEFnZW50UG9ydCA9IDgwODE7XG4gIHByaXZhdGUgcmVhZG9ubHkgbG9jYWxTdG9yYWdlSG9zdEtleSA9ICdhZ2VudC1ob3N0JztcbiAgcHJpdmF0ZSByZWFkb25seSBsb2NhbFN0b3JhZ2VQb3J0S2V5ID0gJ2FnZW50LXBvcnQnO1xuXG4gIHByaXZhdGUgYWdlbnRIb3N0OiBzdHJpbmcgPSB0aGlzLmRlZmF1bHRBZ2VudEhvc3Q7XG4gIHByaXZhdGUgYWdlbnRQb3J0OiBudW1iZXIgPSB0aGlzLmRlZmF1bHRBZ2VudFBvcnQ7XG4gIHByaXZhdGUgYWdlbnRXZWJTb2NrZXRTdWJqZWN0OiBXZWJTb2NrZXRTdWJqZWN0PG9iamVjdD4gfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBhZ2VudFdlYnNvY2tldFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uIHwgbnVsbCA9IG51bGw7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBtZXNzYWdlczogQWdlbnRNZXNzYWdlU2VydmljZSxcbiAgICBwcml2YXRlIGhhbWxpYlNlcnZpY2U6IEhhbWxpYlNlcnZpY2UsXG4gICAgcHJpdmF0ZSB3c2p0eFNlcnZpY2U6IFdzanR4U2VydmljZVxuICApIHtcbiAgICB0aGlzLmhhbWxpYlN0YXRlJCA9IHRoaXMuaGFtbGliU2VydmljZS5jb25uZWN0ZWQkO1xuICAgIHRoaXMuaGFtbGliUmlnU3RhdGUkID0gdGhpcy5oYW1saWJTZXJ2aWNlLnJpZ1N0YXRlJDtcblxuICAgIHRoaXMud3NqdHhTdGF0ZSQgPSB0aGlzLndzanR4U2VydmljZS5jb25uZWN0ZWQkO1xuICAgIHRoaXMud3NqdHhIZWFydGJlYXQkID0gdGhpcy53c2p0eFNlcnZpY2UuaGVhcnRiZWF0JDtcbiAgICB0aGlzLndzanR4U3RhdHVzJCA9IHRoaXMud3NqdHhTZXJ2aWNlLnN0YXR1cyQ7XG4gICAgdGhpcy53c2p0eERlY29kZSQgPSB0aGlzLndzanR4U2VydmljZS5kZWNvZGUkO1xuICAgIHRoaXMud3NqdHhDbGVhciQgPSB0aGlzLndzanR4U2VydmljZS5jbGVhciQ7XG4gICAgdGhpcy53c2p0eFFzb0xvZ2dlZCQgPSB0aGlzLndzanR4U2VydmljZS5xc29Mb2dnZWQkO1xuICAgIHRoaXMud3NqdHhDbG9zZSQgPSB0aGlzLndzanR4U2VydmljZS5jbG9zZSQ7XG4gICAgdGhpcy53c2p0eFdzcHJEZWNvZGUkID0gdGhpcy53c2p0eFNlcnZpY2Uud3NwckRlY29kZSQ7XG4gICAgdGhpcy53c2p0eExvZ2dlZEFkaWYkID0gdGhpcy53c2p0eFNlcnZpY2UubG9nZ2VkQWRpZiQ7XG4gIH1cblxuICBwdWJsaWMgaW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLm1lc3NhZ2VzLnR4TWVzc2FnZSQuc3Vic2NyaWJlKChtc2cpID0+IHRoaXMuc2VuZChtc2cpKTtcbiAgICB0aGlzLmFnZW50SG9zdCA9IHRoaXMuZ2V0SG9zdCgpO1xuICAgIHRoaXMuYWdlbnRQb3J0ID0gdGhpcy5nZXRQb3J0KCk7XG4gICAgdGhpcy5jb25uZWN0KCk7XG4gIH1cblxuICAvKiogQ29ubmVjdCAob3IgcmVjb25uZWN0KSB0aGUgd2Vic29ja2V0IHRvIHRoZSBrZWwtYWdlbnQgc2VydmVyLiAqL1xuICBwdWJsaWMgY29ubmVjdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5hZ2VudFdlYnNvY2tldFN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5hZ2VudFdlYnNvY2tldFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgICB0aGlzLmFnZW50SG9zdCA9IHRoaXMuZ2V0SG9zdCgpO1xuICAgIHRoaXMuYWdlbnRQb3J0ID0gdGhpcy5nZXRQb3J0KCk7XG4gICAgY29uc3QgcHJvdG9jb2wgPSB0aGlzLmFnZW50SG9zdCA9PT0gJ2xvY2FsaG9zdCcgPyAnd3M6Ly8nIDogJ3dzczovLyc7XG4gICAgdGhpcy5hZ2VudFdlYlNvY2tldFN1YmplY3QgPSB3ZWJTb2NrZXQ8b2JqZWN0Pih7XG4gICAgICB1cmw6IHByb3RvY29sICsgdGhpcy5hZ2VudEhvc3QgKyAnOicgKyB0aGlzLmFnZW50UG9ydCArICcvd2Vic29ja2V0JyxcbiAgICB9KTtcbiAgICB0aGlzLmNvbm5lY3RlZFN0YXRlJC5uZXh0KHRydWUpO1xuICAgIHRoaXMuYWdlbnRXZWJzb2NrZXRTdWJzY3JpcHRpb24gPSB0aGlzLmFnZW50V2ViU29ja2V0U3ViamVjdFxuICAgICAgLnBpcGUoXG4gICAgICAgIHJldHJ5V2hlbigoZXJyb3JzKSA9PlxuICAgICAgICAgIC8vIHJldHJ5IHRoZSB3ZWJzb2NrZXQgY29ubmVjdGlvbiBhZnRlciAxMCBzZWNvbmRzXG4gICAgICAgICAgZXJyb3JzLnBpcGUoXG4gICAgICAgICAgICB0YXAoKCkgPT4gdGhpcy5jb25uZWN0ZWRTdGF0ZSQubmV4dChmYWxzZSkpLFxuICAgICAgICAgICAgZGVsYXkoMTAwMDApXG4gICAgICAgICAgKVxuICAgICAgICApXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKG1zZykgPT4ge1xuICAgICAgICAgIHRoaXMuY29ubmVjdGVkU3RhdGUkLm5leHQodHJ1ZSk7XG4gICAgICAgICAgdGhpcy5tZXNzYWdlcy5yeE1lc3NhZ2UkLm5leHQobXNnKTtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6ICgpID0+IHRoaXMuY29ubmVjdGVkU3RhdGUkLm5leHQoZmFsc2UpLFxuICAgICAgICBjb21wbGV0ZTogKCkgPT4gdGhpcy5jb25uZWN0ZWRTdGF0ZSQubmV4dChmYWxzZSksXG4gICAgICB9KTtcbiAgfVxuXG4gIC8qKiBHZXQgdGhlIGN1cnJlbnRseSBjb25maWd1cmVkIGtlbC1hZ2VudCBob3N0LiAqL1xuICBwdWJsaWMgZ2V0SG9zdCgpOiBzdHJpbmcge1xuICAgIHJldHVybiAoXG4gICAgICBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmxvY2FsU3RvcmFnZUhvc3RLZXkpIHx8IHRoaXMuZGVmYXVsdEFnZW50SG9zdFxuICAgICk7XG4gIH1cblxuICAvKiogR2V0IHRoZSBjdXJyZW50bHkgY29uZmlndXJlZCBrZWwtYWdlbnQgcG9ydC4gKi9cbiAgcHVibGljIGdldFBvcnQoKTogbnVtYmVyIHtcbiAgICBsZXQgcG9ydFN0ciA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMubG9jYWxTdG9yYWdlUG9ydEtleSk7XG4gICAgaWYgKHBvcnRTdHIgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHRoaXMuZGVmYXVsdEFnZW50UG9ydDtcbiAgICB9XG4gICAgbGV0IHBvcnROdW0gPSBwYXJzZUludChwb3J0U3RyLCAxMCk7XG4gICAgaWYgKGlzTmFOKHBvcnROdW0pKSB7XG4gICAgICByZXR1cm4gdGhpcy5kZWZhdWx0QWdlbnRQb3J0O1xuICAgIH1cbiAgICByZXR1cm4gcG9ydE51bTtcbiAgfVxuXG4gIC8qKiBTZXQgdGhlIGtlbC1hZ2VudCBob3N0LiAqL1xuICBwdWJsaWMgc2V0SG9zdChob3N0OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmxvY2FsU3RvcmFnZUhvc3RLZXksIGhvc3QpO1xuICAgIHRoaXMuY29ubmVjdCgpO1xuICB9XG5cbiAgLyoqIFNldCB0aGUga2VsLWFnZW50IHBvcnQuICovXG4gIHB1YmxpYyBzZXRQb3J0KHBvcnQ6IG51bWJlcik6IHZvaWQge1xuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMubG9jYWxTdG9yYWdlUG9ydEtleSwgU3RyaW5nKHBvcnQpKTtcbiAgICB0aGlzLmNvbm5lY3QoKTtcbiAgfVxuXG4gIHByaXZhdGUgc2VuZCh3c01zZzogYW55KSB7XG4gICAgdGhpcy5hZ2VudFdlYlNvY2tldFN1YmplY3Q/Lm5leHQod3NNc2cpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNlbmQgYSBjb21tYW5kIHRvIFdTSlQtWCB0byBjbGVhciB0aGUgQmFuZCBBY3Rpdml0eSB3aW5kb3cuXG4gICAqXG4gICAqIEBkZXByZWNhdGVkIFVzZSB7QGxpbmsgV3NqdHhTZXJ2aWNlLmNsZWFyQmFuZEFjdGl2aXR5fSBpbnN0ZWFkLlxuICAgKi9cbiAgcHVibGljIHNlbmRXc2p0eENsZWFyQmFuZEFjdGl2aXR5KCkge1xuICAgIHRoaXMud3NqdHhTZXJ2aWNlLmNsZWFyQmFuZEFjdGl2aXR5KCk7XG4gIH1cblxuICAvKipcbiAgICogU2VuZCBhIGNvbW1hbmQgdG8gV1NKVC1YIHRvIGNsZWFyIHRoZSBSeCBGcmVxdWVuY3kgd2luZG93LlxuICAgKlxuICAgKiBAZGVwcmVjYXRlZCBVc2Uge0BsaW5rIFdzanR4U2VydmljZS5jbGVhclJ4RnJlcVdpbmRvd30gaW5zdGVhZC5cbiAgICovXG4gIHB1YmxpYyBzZW5kV3NqdHhDbGVhclJ4RnJlcVdpbmRvdygpIHtcbiAgICB0aGlzLndzanR4U2VydmljZS5jbGVhclJ4RnJlcVdpbmRvdygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNlbmQgYSBjb21tYW5kIHRvIFdTSlQtWCB0byBjbGVhciB0aGUgQmFuZCBBY3Rpdml0eSBhbmQgUnggRnJlcXVlbmN5IHdpbmRvd3MuXG4gICAqXG4gICAqIEBkZXByZWNhdGVkIFVzZSB7QGxpbmsgV3NqdHhTZXJ2aWNlLmNsZWFyQWxsfSBpbnN0ZWFkLlxuICAgKi9cbiAgcHVibGljIHNlbmRXc2p0eENsZWFyQWxsKCkge1xuICAgIHRoaXMud3NqdHhTZXJ2aWNlLmNsZWFyQWxsKCk7XG4gIH1cblxuICAvKipcbiAgICogU2VuZCBhIGNvbW1hbmQgdG8gV1NKVC1YIHRvIHJlcGxheSBtZXNzYWdlcy4gVXNlZnVsIGZvciBhIGZyZXNoIGNsaWVudCB0aGF0IHdhbnRzIHRvIGhlYXJcbiAgICogcHJldmlvdXMgV1NKVC1YIGRlY29kZXMuXG4gICAqXG4gICAqIEBkZXByZWNhdGVkIFVzZSB7QGxpbmsgV3NqdHhTZXJ2aWNlLnJlcGxheX0gaW5zdGVhZC5cbiAgICovXG4gIHB1YmxpYyBzZW5kV3NqdHhSZXBsYXkoKSB7XG4gICAgdGhpcy53c2p0eFNlcnZpY2UucmVwbGF5KCk7XG4gIH1cblxuICAvKipcbiAgICogU2VuZCBhIGNvbW1hbmQgdG8gV1NKVC1YIHRvIGhhbHQgYW55IHRyYW5zbWlzc2lvbnMgaW1tZWRpYXRlbHkuXG4gICAqXG4gICAqIEBkZXByZWNhdGVkIFVzZSB7QGxpbmsgV3NqdHhTZXJ2aWNlLmhhbHRUeE5vd30gaW5zdGVhZC5cbiAgICovXG4gIHB1YmxpYyBzZW5kV3NqdHhIYWx0VHhOb3coKSB7XG4gICAgdGhpcy53c2p0eFNlcnZpY2UuaGFsdFR4Tm93KCk7XG4gIH1cblxuICAvKiogU2VuZCBhIGNvbW1hbmQgdG8gV1NKVC1YIHRvIHN0b3AgYXV0by10cmFuc21pdHRpbmcgYWZ0ZXIgZmluaXNoaW5nIHRoZSBjdXJyZW50IHJvdW5kLlxuICAgKlxuICAgKiBAZGVwcmVjYXRlZCBVc2Uge0BsaW5rIFdzanR4U2VydmljZS5oYWx0VHhBZnRlckN1cnJlbnR9IGluc3RlYWQuXG4gICAqL1xuICBwdWJsaWMgc2VuZFdzanR4SGFsdFR4QWZ0ZXJDdXJyZW50KCkge1xuICAgIHRoaXMud3NqdHhTZXJ2aWNlLmhhbHRUeEFmdGVyQ3VycmVudCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNlbmQgYSBjb21tYW5kIHRvIFdTSlQtWCB0byByZXBseSB0byB0aGUgZ2l2ZW4gZGVjb2RlLiBUaGUgbWVzc2FnZSBtdXN0IGluY2x1ZGUgQ1Egb3IgUVJaLlxuICAgKlxuICAgKiBAZGVwcmVjYXRlZCBVc2Uge0BsaW5rIFdzanR4U2VydmljZS5yZXBseX0gaW5zdGVhZC5cbiAgICovXG4gIHB1YmxpYyBzZW5kV3NqdHhSZXBseShkZWNvZGU6IFdzanR4RGVjb2RlKSB7XG4gICAgdGhpcy53c2p0eFNlcnZpY2UucmVwbHkoZGVjb2RlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZW5kIGEgY29tbWFuZCB0byBXU0pULVggdG8gcmVwbHkgdG8gdGhlIGdpdmVuIGRlY29kZS4gVGhlIG1lc3NhZ2UgbXVzdCBpbmNsdWRlIENRIG9yIFFSWi5cbiAgICpcbiAgICogQGRlcHJlY2F0ZWQgVXNlIHtAbGluayBXc2p0eFNlcnZpY2UuaGlnaGxpZ2h0Q2FsbHNpZ259IGluc3RlYWQuXG4gICAqL1xuICBwdWJsaWMgc2VuZFdzanR4SGlnaGxpZ2h0Q2FsbHNpZ24oaGlnaGxpZ2h0TXNnOiBXc2p0eEhpZ2hsaWdodENhbGxzaWduKSB7XG4gICAgdGhpcy53c2p0eFNlcnZpY2UuaGlnaGxpZ2h0Q2FsbHNpZ24oaGlnaGxpZ2h0TXNnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHaXZlbiBhIGRlY29kZSBtZXNzYWdlLCBmb3JtYXQgYSBzdHJpbmcgdGhlIHNhbWUgd2F5IGFzIGRpc3BsYXllZCBpbiB0aGUgV1NKVC1YIEJhbmRcbiAgICogQWN0aXZpdHkvUnggRnJlcXVlbmN5IHdpbmRvd3MuXG4gICAqXG4gICAqIEBkZXByZWNhdGVkIFVzZSB7QGxpbmsgV3NqdHhTZXJ2aWNlLmZvcm1hdERlY29kZX0gaW5zdGVhZC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZm9ybWF0RGVjb2RlKG1zZzogV3NqdHhEZWNvZGUpOiBzdHJpbmcge1xuICAgIHJldHVybiBXc2p0eFNlcnZpY2UuZm9ybWF0RGVjb2RlKG1zZyk7XG4gIH1cbn1cbiJdfQ==
179
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdlbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1rZWwtYWdlbnQvc3JjL2xpYi9hZ2VudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxlQUFlLEVBQXdDLE1BQU0sTUFBTSxDQUFDO0FBRzdFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFZM0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxTQUFTLEVBQW9CLE1BQU0sZ0JBQWdCLENBQUM7Ozs7O0FBSzdELE1BQU0sT0FBTyxZQUFZO0lBb0Z2QixZQUNVLFFBQTZCLEVBQzdCLGFBQTRCLEVBQzVCLFlBQTBCO1FBRjFCLGFBQVEsR0FBUixRQUFRLENBQXFCO1FBQzdCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBdEZwQyw0Q0FBNEM7UUFDNUIsb0JBQWUsR0FBRyxJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztRQXdFckQscUJBQWdCLEdBQUcsV0FBVyxDQUFDO1FBQy9CLHFCQUFnQixHQUFHLElBQUksQ0FBQztRQUN4Qix3QkFBbUIsR0FBRyxZQUFZLENBQUM7UUFDbkMsd0JBQW1CLEdBQUcsWUFBWSxDQUFDO1FBRTVDLGNBQVMsR0FBVyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7UUFDMUMsY0FBUyxHQUFXLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztRQUMxQywwQkFBcUIsR0FBb0MsSUFBSSxDQUFDO1FBQzlELCtCQUEwQixHQUF3QixJQUFJLENBQUM7UUFPN0QsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQztRQUNs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QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFnZW50TWVzc2FnZVNlcnZpY2UgfSBmcm9tICcuL2FnZW50LW1lc3NhZ2Uuc2VydmljZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFJlcGxheVN1YmplY3QsIFN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgSGFtbGliUmlnU3RhdGUgfSBmcm9tICcuL2hhbWxpYi1tZXNzYWdlcyc7XG5pbXBvcnQgeyBIYW1saWJTZXJ2aWNlIH0gZnJvbSAnLi9oYW1saWIuc2VydmljZSc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBXc2p0eENsZWFyLFxuICBXc2p0eENsb3NlLFxuICBXc2p0eERlY29kZSxcbiAgV3NqdHhIZWFydGJlYXQsXG4gIFdzanR4SGlnaGxpZ2h0Q2FsbHNpZ24sXG4gIFdzanR4TG9nZ2VkQWRpZixcbiAgV3NqdHhRc29Mb2dnZWQsXG4gIFdzanR4U3RhdHVzLFxuICBXc2p0eFdzcHJEZWNvZGUsXG59IGZyb20gJy4vd3NqdHgtbWVzc2FnZXMnO1xuaW1wb3J0IHsgV3NqdHhTZXJ2aWNlIH0gZnJvbSAnLi93c2p0eC5zZXJ2aWNlJztcbmltcG9ydCB7IGRlbGF5LCByZXRyeVdoZW4sIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IHdlYlNvY2tldCwgV2ViU29ja2V0U3ViamVjdCB9IGZyb20gJ3J4anMvd2ViU29ja2V0JztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEFnZW50U2VydmljZSB7XG4gIC8qKiBXaGV0aGVyIHdlJ3JlIGNvbm5lY3RlZCB0byB0aGUgYWdlbnQuICovXG4gIHB1YmxpYyByZWFkb25seSBjb25uZWN0ZWRTdGF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcblxuICAvKiAgV1NKVC1YICAqL1xuICAvKipcbiAgICogV2hldGhlciB3ZSdyZSBnZXR0aW5nIGFueSBtZXNzYWdlcyBmcm9tIFdTSlQtWC5cbiAgICpcbiAgICogQGRlcHJlY2F0ZWQgVXNlIHtAbGluayBXc2p0eFNlcnZpY2UuY29ubmVjdGVkJH0gaW5zdGVhZC5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB3c2p0eFN0YXRlJDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+O1xuICAvKipcbiAgICogU3ViamVjdCBmb3IgbGlzdGVuaW5nIHRvIFdTSlQtWCBcIkhlYXJ0YmVhdFwiIG1lc3NhZ2VzLlxuICAgKlxuICAgKiBAZGVwcmVjYXRlZCBVc2Uge0BsaW5rIFdzanR4U2VydmljZS5oZWFydGJlYXQkfSBpbnN0ZWFkLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHdzanR4SGVhcnRiZWF0JDogUmVwbGF5U3ViamVjdDxXc2p0eEhlYXJ0YmVhdCB8IG51bGw+O1xuICAvKipcbiAgICogU3ViamVjdCBmb3IgbGlzdGVuaW5nIHRvIFdTSlQtWCBcIlN0YXR1c1wiIG1lc3NhZ2VzLlxuICAgKlxuICAgKiBAZGVwcmVjYXRlZCBVc2Uge0BsaW5rIFdzanR4U2VydmljZS5zdGF0dXMkfSBpbnN0ZWFkLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHdzanR4U3RhdHVzJDogUmVwbGF5U3ViamVjdDxXc2p0eFN0YXR1cyB8IG51bGw+O1xuICAvKipcbiAgICogU3ViamVjdCBmb3IgbGlzdGVuaW5nIHRvIFdTSlQtWCBcIkRlY29kZVwiIG1lc3NhZ2VzLlxuICAgKlxuICAgKiBAZGVwcmVjYXRlZCBVc2Uge0BsaW5rIFdzanR4U2VydmljZS5kZWNvZGUkfSBpbnN0ZWFkLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHdzanR4RGVjb2RlJDogU3ViamVjdDxXc2p0eERlY29kZT47XG4gIC8qKlxuICAgKiBTdWJqZWN0IGZvciBsaXN0ZW5pbmcgdG8gV1NKVC1YIFwiQ2xlYXJcIiBtZXNzYWdlcy5cbiAgICpcbiAgICogQGRlcHJlY2F0ZWQgVXNlIHtAbGluayBXc2p0eFNlcnZpY2UuY2xlYXIkfSBpbnN0ZWFkLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHdzanR4Q2xlYXIkOiBTdWJqZWN0PFdzanR4Q2xlYXI+O1xuICAvKipcbiAgICogU3ViamVjdCBmb3IgbGlzdGVuaW5nIHRvIFdTSlQtWCBcIlFzb0xvZ2dlZFwiIG1lc3NhZ2VzLlxuICAgKlxuICAgKiBAZGVwcmVjYXRlZCBVc2Uge0BsaW5rIFdzanR4U2VydmljZS5xc29Mb2dnZWQkfSBpbnN0ZWFkLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHdzanR4UXNvTG9nZ2VkJDogU3ViamVjdDxXc2p0eFFzb0xvZ2dlZD47XG4gIC8qKlxuICAgKiBTdWJqZWN0IGZvciBsaXN0ZW5pbmcgdG8gV1NKVC1YIFwiQ2xvc2VcIiBtZXNzYWdlcy5cbiAgICpcbiAgICogQGRlcHJlY2F0ZWQgVXNlIHtAbGluayBXc2p0eFNlcnZpY2UuY2xvc2UkfSBpbnN0ZWFkLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHdzanR4Q2xvc2UkOiBTdWJqZWN0PFdzanR4Q2xvc2U+O1xuICAvKipcbiAgICogU3ViamVjdCBmb3IgbGlzdGVuaW5nIHRvIFdTSlQtWCBcIldzcHJEZWNvZGVcIiBtZXNzYWdlcy5cbiAgICpcbiAgICogQGRlcHJlY2F0ZWQgVXNlIHtAbGluayBXc2p0eFNlcnZpY2Uud3NwckRlY29kZSR9IGluc3RlYWQuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgd3NqdHhXc3ByRGVjb2RlJDogU3ViamVjdDxXc2p0eFdzcHJEZWNvZGU+O1xuICAvKipcbiAgICogU3ViamVjdCBmb3IgbGlzdGVuaW5nIHRvIFdTSlQtWCBcIkxvZ2dlZEFkaWZcIiBtZXNzYWdlcy5cbiAgICpcbiAgICogQGRlcHJlY2F0ZWQgVXNlIHtAbGluayBXc2p0eFNlcnZpY2UubG9nZ2VkQWRpZiR9IGluc3RlYWQuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgd3NqdHhMb2dnZWRBZGlmJDogU3ViamVjdDxXc2p0eExvZ2dlZEFkaWY+O1xuXG4gIC8qICBIYW1saWIgICovXG4gIC8qKlxuICAgKiBXaGV0aGVyIHdlJ3JlIGdldHRpbmcgYW55IG1lc3NhZ2VzIGZyb20gSGFtbGliLlxuICAgKlxuICAgKiBAZGVwcmVjYXRlZCBVc2Uge0BsaW5rIEhhbWxpYlNlcnZpY2UuY29ubmVjdGVkJH0gaW5zdGVhZC5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBoYW1saWJTdGF0ZSQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPjtcbiAgLyoqXG4gICAqIFN1YmplY3QgZm9yIGxpc3RlbmluZyB0byBIYW1saWIgXCJSaWdTdGF0ZVwiIG1lc3NhZ2VzLlxuICAgKlxuICAgKiBAZGVwcmVjYXRlZCBVc2Uge0BsaW5rIEhhbWxpYlNlcnZpY2UucmlnU3RhdGUkfSBpbnN0ZWFkLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGhhbWxpYlJpZ1N0YXRlJDogQmVoYXZpb3JTdWJqZWN0PEhhbWxpYlJpZ1N0YXRlIHwgbnVsbD47XG5cbiAgcHJpdmF0ZSByZWFkb25seSBkZWZhdWx0QWdlbnRIb3N0ID0gJ2xvY2FsaG9zdCc7XG4gIHByaXZhdGUgcmVhZG9ubHkgZGVmYXVsdEFnZW50UG9ydCA9IDgwODE7XG4gIHByaXZhdGUgcmVhZG9ubHkgbG9jYWxTdG9yYWdlSG9zdEtleSA9ICdhZ2VudC1ob3N0JztcbiAgcHJpdmF0ZSByZWFkb25seSBsb2NhbFN0b3JhZ2VQb3J0S2V5ID0gJ2FnZW50LXBvcnQnO1xuXG4gIHByaXZhdGUgYWdlbnRIb3N0OiBzdHJpbmcgPSB0aGlzLmRlZmF1bHRBZ2VudEhvc3Q7XG4gIHByaXZhdGUgYWdlbnRQb3J0OiBudW1iZXIgPSB0aGlzLmRlZmF1bHRBZ2VudFBvcnQ7XG4gIHByaXZhdGUgYWdlbnRXZWJTb2NrZXRTdWJqZWN0OiBXZWJTb2NrZXRTdWJqZWN0PG9iamVjdD4gfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBhZ2VudFdlYnNvY2tldFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uIHwgbnVsbCA9IG51bGw7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBtZXNzYWdlczogQWdlbnRNZXNzYWdlU2VydmljZSxcbiAgICBwcml2YXRlIGhhbWxpYlNlcnZpY2U6IEhhbWxpYlNlcnZpY2UsXG4gICAgcHJpdmF0ZSB3c2p0eFNlcnZpY2U6IFdzanR4U2VydmljZVxuICApIHtcbiAgICB0aGlzLmhhbWxpYlN0YXRlJCA9IHRoaXMuaGFtbGliU2VydmljZS5jb25uZWN0ZWQkO1xuICAgIHRoaXMuaGFtbGliUmlnU3RhdGUkID0gdGhpcy5oYW1saWJTZXJ2aWNlLnJpZ1N0YXRlJDtcblxuICAgIHRoaXMud3NqdHhTdGF0ZSQgPSB0aGlzLndzanR4U2VydmljZS5jb25uZWN0ZWQkO1xuICAgIHRoaXMud3NqdHhIZWFydGJlYXQkID0gdGhpcy53c2p0eFNlcnZpY2UuaGVhcnRiZWF0JDtcbiAgICB0aGlzLndzanR4U3RhdHVzJCA9IHRoaXMud3NqdHhTZXJ2aWNlLnN0YXR1cyQ7XG4gICAgdGhpcy53c2p0eERlY29kZSQgPSB0aGlzLndzanR4U2VydmljZS5kZWNvZGUkO1xuICAgIHRoaXMud3NqdHhDbGVhciQgPSB0aGlzLndzanR4U2VydmljZS5jbGVhciQ7XG4gICAgdGhpcy53c2p0eFFzb0xvZ2dlZCQgPSB0aGlzLndzanR4U2VydmljZS5xc29Mb2dnZWQkO1xuICAgIHRoaXMud3NqdHhDbG9zZSQgPSB0aGlzLndzanR4U2VydmljZS5jbG9zZSQ7XG4gICAgdGhpcy53c2p0eFdzcHJEZWNvZGUkID0gdGhpcy53c2p0eFNlcnZpY2Uud3NwckRlY29kZSQ7XG4gICAgdGhpcy53c2p0eExvZ2dlZEFkaWYkID0gdGhpcy53c2p0eFNlcnZpY2UubG9nZ2VkQWRpZiQ7XG4gIH1cblxuICBwdWJsaWMgaW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLm1lc3NhZ2VzLnR4TWVzc2FnZSQuc3Vic2NyaWJlKChtc2cpID0+IHRoaXMuc2VuZChtc2cpKTtcbiAgICB0aGlzLmFnZW50SG9zdCA9IHRoaXMuZ2V0SG9zdCgpO1xuICAgIHRoaXMuYWdlbnRQb3J0ID0gdGhpcy5nZXRQb3J0KCk7XG4gICAgdGhpcy5jb25uZWN0KCk7XG4gIH1cblxuICAvKiogQ29ubmVjdCAob3IgcmVjb25uZWN0KSB0aGUgd2Vic29ja2V0IHRvIHRoZSBrZWwtYWdlbnQgc2VydmVyLiAqL1xuICBwdWJsaWMgY29ubmVjdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5hZ2VudFdlYnNvY2tldFN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5hZ2VudFdlYnNvY2tldFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgICB0aGlzLmFnZW50SG9zdCA9IHRoaXMuZ2V0SG9zdCgpO1xuICAgIHRoaXMuYWdlbnRQb3J0ID0gdGhpcy5nZXRQb3J0KCk7XG4gICAgY29uc3QgcHJvdG9jb2wgPSB0aGlzLmFnZW50SG9zdCA9PT0gJ2xvY2FsaG9zdCcgPyAnd3M6Ly8nIDogJ3dzczovLyc7XG4gICAgdGhpcy5hZ2VudFdlYlNvY2tldFN1YmplY3QgPSB3ZWJTb2NrZXQ8b2JqZWN0Pih7XG4gICAgICB1cmw6IHByb3RvY29sICsgdGhpcy5hZ2VudEhvc3QgKyAnOicgKyB0aGlzLmFnZW50UG9ydCArICcvd2Vic29ja2V0JyxcbiAgICB9KTtcbiAgICB0aGlzLmNvbm5lY3RlZFN0YXRlJC5uZXh0KHRydWUpO1xuICAgIHRoaXMuYWdlbnRXZWJzb2NrZXRTdWJzY3JpcHRpb24gPSB0aGlzLmFnZW50V2ViU29ja2V0U3ViamVjdFxuICAgICAgLnBpcGUoXG4gICAgICAgIHJldHJ5V2hlbigoZXJyb3JzKSA9PlxuICAgICAgICAgIC8vIHJldHJ5IHRoZSB3ZWJzb2NrZXQgY29ubmVjdGlvbiBhZnRlciAxMCBzZWNvbmRzXG4gICAgICAgICAgZXJyb3JzLnBpcGUoXG4gICAgICAgICAgICB0YXAoKCkgPT4gdGhpcy5jb25uZWN0ZWRTdGF0ZSQubmV4dChmYWxzZSkpLFxuICAgICAgICAgICAgZGVsYXkoMTAwMDApXG4gICAgICAgICAgKVxuICAgICAgICApXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKG1zZykgPT4ge1xuICAgICAgICAgIHRoaXMuY29ubmVjdGVkU3RhdGUkLm5leHQodHJ1ZSk7XG4gICAgICAgICAgdGhpcy5tZXNzYWdlcy5yeE1lc3NhZ2UkLm5leHQobXNnKTtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6ICgpID0+IHRoaXMuY29ubmVjdGVkU3RhdGUkLm5leHQoZmFsc2UpLFxuICAgICAgICBjb21wbGV0ZTogKCkgPT4gdGhpcy5jb25uZWN0ZWRTdGF0ZSQubmV4dChmYWxzZSksXG4gICAgICB9KTtcbiAgfVxuXG4gIC8qKiBHZXQgdGhlIGN1cnJlbnRseSBjb25maWd1cmVkIGtlbC1hZ2VudCBob3N0LiAqL1xuICBwdWJsaWMgZ2V0SG9zdCgpOiBzdHJpbmcge1xuICAgIHJldHVybiAoXG4gICAgICBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmxvY2FsU3RvcmFnZUhvc3RLZXkpIHx8IHRoaXMuZGVmYXVsdEFnZW50SG9zdFxuICAgICk7XG4gIH1cblxuICAvKiogR2V0IHRoZSBjdXJyZW50bHkgY29uZmlndXJlZCBrZWwtYWdlbnQgcG9ydC4gKi9cbiAgcHVibGljIGdldFBvcnQoKTogbnVtYmVyIHtcbiAgICBsZXQgcG9ydFN0ciA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMubG9jYWxTdG9yYWdlUG9ydEtleSk7XG4gICAgaWYgKHBvcnRTdHIgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHRoaXMuZGVmYXVsdEFnZW50UG9ydDtcbiAgICB9XG4gICAgbGV0IHBvcnROdW0gPSBwYXJzZUludChwb3J0U3RyLCAxMCk7XG4gICAgaWYgKGlzTmFOKHBvcnROdW0pKSB7XG4gICAgICByZXR1cm4gdGhpcy5kZWZhdWx0QWdlbnRQb3J0O1xuICAgIH1cbiAgICByZXR1cm4gcG9ydE51bTtcbiAgfVxuXG4gIC8qKiBTZXQgdGhlIGtlbC1hZ2VudCBob3N0LiAqL1xuICBwdWJsaWMgc2V0SG9zdChob3N0OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmxvY2FsU3RvcmFnZUhvc3RLZXksIGhvc3QpO1xuICAgIHRoaXMuY29ubmVjdCgpO1xuICB9XG5cbiAgLyoqIFNldCB0aGUga2VsLWFnZW50IHBvcnQuICovXG4gIHB1YmxpYyBzZXRQb3J0KHBvcnQ6IG51bWJlcik6IHZvaWQge1xuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMubG9jYWxTdG9yYWdlUG9ydEtleSwgU3RyaW5nKHBvcnQpKTtcbiAgICB0aGlzLmNvbm5lY3QoKTtcbiAgfVxuXG4gIHByaXZhdGUgc2VuZCh3c01zZzogYW55KSB7XG4gICAgdGhpcy5hZ2VudFdlYlNvY2tldFN1YmplY3Q/Lm5leHQod3NNc2cpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNlbmQgYSBjb21tYW5kIHRvIFdTSlQtWCB0byBjbGVhciB0aGUgQmFuZCBBY3Rpdml0eSB3aW5kb3cuXG4gICAqXG4gICAqIEBkZXByZWNhdGVkIFVzZSB7QGxpbmsgV3NqdHhTZXJ2aWNlLmNsZWFyQmFuZEFjdGl2aXR5fSBpbnN0ZWFkLlxuICAgKi9cbiAgcHVibGljIHNlbmRXc2p0eENsZWFyQmFuZEFjdGl2aXR5KCkge1xuICAgIHRoaXMud3NqdHhTZXJ2aWNlLmNsZWFyQmFuZEFjdGl2aXR5KCk7XG4gIH1cblxuICAvKipcbiAgICogU2VuZCBhIGNvbW1hbmQgdG8gV1NKVC1YIHRvIGNsZWFyIHRoZSBSeCBGcmVxdWVuY3kgd2luZG93LlxuICAgKlxuICAgKiBAZGVwcmVjYXRlZCBVc2Uge0BsaW5rIFdzanR4U2VydmljZS5jbGVhclJ4RnJlcVdpbmRvd30gaW5zdGVhZC5cbiAgICovXG4gIHB1YmxpYyBzZW5kV3NqdHhDbGVhclJ4RnJlcVdpbmRvdygpIHtcbiAgICB0aGlzLndzanR4U2VydmljZS5jbGVhclJ4RnJlcVdpbmRvdygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNlbmQgYSBjb21tYW5kIHRvIFdTSlQtWCB0byBjbGVhciB0aGUgQmFuZCBBY3Rpdml0eSBhbmQgUnggRnJlcXVlbmN5IHdpbmRvd3MuXG4gICAqXG4gICAqIEBkZXByZWNhdGVkIFVzZSB7QGxpbmsgV3NqdHhTZXJ2aWNlLmNsZWFyQWxsfSBpbnN0ZWFkLlxuICAgKi9cbiAgcHVibGljIHNlbmRXc2p0eENsZWFyQWxsKCkge1xuICAgIHRoaXMud3NqdHhTZXJ2aWNlLmNsZWFyQWxsKCk7XG4gIH1cblxuICAvKipcbiAgICogU2VuZCBhIGNvbW1hbmQgdG8gV1NKVC1YIHRvIHJlcGxheSBtZXNzYWdlcy4gVXNlZnVsIGZvciBhIGZyZXNoIGNsaWVudCB0aGF0IHdhbnRzIHRvIGhlYXJcbiAgICogcHJldmlvdXMgV1NKVC1YIGRlY29kZXMuXG4gICAqXG4gICAqIEBkZXByZWNhdGVkIFVzZSB7QGxpbmsgV3NqdHhTZXJ2aWNlLnJlcGxheX0gaW5zdGVhZC5cbiAgICovXG4gIHB1YmxpYyBzZW5kV3NqdHhSZXBsYXkoKSB7XG4gICAgdGhpcy53c2p0eFNlcnZpY2UucmVwbGF5KCk7XG4gIH1cblxuICAvKipcbiAgICogU2VuZCBhIGNvbW1hbmQgdG8gV1NKVC1YIHRvIGhhbHQgYW55IHRyYW5zbWlzc2lvbnMgaW1tZWRpYXRlbHkuXG4gICAqXG4gICAqIEBkZXByZWNhdGVkIFVzZSB7QGxpbmsgV3NqdHhTZXJ2aWNlLmhhbHRUeE5vd30gaW5zdGVhZC5cbiAgICovXG4gIHB1YmxpYyBzZW5kV3NqdHhIYWx0VHhOb3coKSB7XG4gICAgdGhpcy53c2p0eFNlcnZpY2UuaGFsdFR4Tm93KCk7XG4gIH1cblxuICAvKiogU2VuZCBhIGNvbW1hbmQgdG8gV1NKVC1YIHRvIHN0b3AgYXV0by10cmFuc21pdHRpbmcgYWZ0ZXIgZmluaXNoaW5nIHRoZSBjdXJyZW50IHJvdW5kLlxuICAgKlxuICAgKiBAZGVwcmVjYXRlZCBVc2Uge0BsaW5rIFdzanR4U2VydmljZS5oYWx0VHhBZnRlckN1cnJlbnR9IGluc3RlYWQuXG4gICAqL1xuICBwdWJsaWMgc2VuZFdzanR4SGFsdFR4QWZ0ZXJDdXJyZW50KCkge1xuICAgIHRoaXMud3NqdHhTZXJ2aWNlLmhhbHRUeEFmdGVyQ3VycmVudCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNlbmQgYSBjb21tYW5kIHRvIFdTSlQtWCB0byByZXBseSB0byB0aGUgZ2l2ZW4gZGVjb2RlLiBUaGUgbWVzc2FnZSBtdXN0IGluY2x1ZGUgQ1Egb3IgUVJaLlxuICAgKlxuICAgKiBAZGVwcmVjYXRlZCBVc2Uge0BsaW5rIFdzanR4U2VydmljZS5yZXBseX0gaW5zdGVhZC5cbiAgICovXG4gIHB1YmxpYyBzZW5kV3NqdHhSZXBseShkZWNvZGU6IFdzanR4RGVjb2RlKSB7XG4gICAgdGhpcy53c2p0eFNlcnZpY2UucmVwbHkoZGVjb2RlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZW5kIGEgY29tbWFuZCB0byBXU0pULVggdG8gcmVwbHkgdG8gdGhlIGdpdmVuIGRlY29kZS4gVGhlIG1lc3NhZ2UgbXVzdCBpbmNsdWRlIENRIG9yIFFSWi5cbiAgICpcbiAgICogQGRlcHJlY2F0ZWQgVXNlIHtAbGluayBXc2p0eFNlcnZpY2UuaGlnaGxpZ2h0Q2FsbHNpZ259IGluc3RlYWQuXG4gICAqL1xuICBwdWJsaWMgc2VuZFdzanR4SGlnaGxpZ2h0Q2FsbHNpZ24oaGlnaGxpZ2h0TXNnOiBXc2p0eEhpZ2hsaWdodENhbGxzaWduKSB7XG4gICAgdGhpcy53c2p0eFNlcnZpY2UuaGlnaGxpZ2h0Q2FsbHNpZ24oaGlnaGxpZ2h0TXNnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHaXZlbiBhIGRlY29kZSBtZXNzYWdlLCBmb3JtYXQgYSBzdHJpbmcgdGhlIHNhbWUgd2F5IGFzIGRpc3BsYXllZCBpbiB0aGUgV1NKVC1YIEJhbmRcbiAgICogQWN0aXZpdHkvUnggRnJlcXVlbmN5IHdpbmRvd3MuXG4gICAqXG4gICAqIEBkZXByZWNhdGVkIFVzZSB7QGxpbmsgV3NqdHhTZXJ2aWNlLmZvcm1hdERlY29kZX0gaW5zdGVhZC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZm9ybWF0RGVjb2RlKG1zZzogV3NqdHhEZWNvZGUpOiBzdHJpbmcge1xuICAgIHJldHVybiBXc2p0eFNlcnZpY2UuZm9ybWF0RGVjb2RlKG1zZyk7XG4gIH1cbn1cbiJdfQ==
@@ -36,13 +36,13 @@ export class HamlibService {
36
36
  return;
37
37
  }
38
38
  }
39
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: HamlibService, deps: [{ token: i1.AgentMessageService }], target: i0.ɵɵFactoryTarget.Injectable }); }
40
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: HamlibService, providedIn: 'root' }); }
39
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: HamlibService, deps: [{ token: i1.AgentMessageService }], target: i0.ɵɵFactoryTarget.Injectable }); }
40
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: HamlibService, providedIn: 'root' }); }
41
41
  }
42
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: HamlibService, decorators: [{
42
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: HamlibService, decorators: [{
43
43
  type: Injectable,
44
44
  args: [{
45
45
  providedIn: 'root',
46
46
  }]
47
47
  }], ctorParameters: () => [{ type: i1.AgentMessageService }] });
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFtbGliLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gta2VsLWFnZW50L3NyYy9saWIvaGFtbGliLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXZDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBTTlDLE1BQU0sT0FBTyxhQUFhO0lBTXhCLFlBQW9CLFFBQTZCO1FBQTdCLGFBQVEsR0FBUixRQUFRLENBQXFCO1FBTGpELHNEQUFzRDtRQUN0QyxlQUFVLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7UUFDakUsMkRBQTJEO1FBQzNDLGNBQVMsR0FBRyxJQUFJLGVBQWUsQ0FBd0IsSUFBSSxDQUFDLENBQUM7UUFHM0UsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxjQUFjO1FBQ1osSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDckUsa0VBQWtFO1FBQ2xFLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDdkQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUIsQ0FBQyxDQUFDLENBQUM7UUFDSCwrREFBK0Q7UUFDL0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNqQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ1YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDNUIsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLGFBQWEsQ0FBQyxHQUFRO1FBQzVCLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNwQyxPQUFPO1FBQ1QsQ0FBQztRQUNELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzNCLFFBQVEsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUN4QixLQUFLLFVBQVU7Z0JBQ2IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxPQUF5QixDQUFDLENBQUM7Z0JBQzFELE9BQU87UUFDWCxDQUFDO0lBQ0gsQ0FBQzs4R0FsQ1UsYUFBYTtrSEFBYixhQUFhLGNBRlosTUFBTTs7MkZBRVAsYUFBYTtrQkFIekIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEhhbWxpYlJpZ1N0YXRlIH0gZnJvbSAnLi9oYW1saWItbWVzc2FnZXMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQWdlbnRNZXNzYWdlU2VydmljZSB9IGZyb20gJy4vYWdlbnQtbWVzc2FnZS5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEhhbWxpYlNlcnZpY2Uge1xuICAvKiogV2hldGhlciB3ZSdyZSBnZXR0aW5nIGFueSBtZXNzYWdlcyBmcm9tIEhhbWxpYi4gKi9cbiAgcHVibGljIHJlYWRvbmx5IGNvbm5lY3RlZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgLyoqIFN1YmplY3QgZm9yIGxpc3RlbmluZyB0byBIYW1saWIgXCJSaWdTdGF0ZVwiIG1lc3NhZ2VzLiAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcmlnU3RhdGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxIYW1saWJSaWdTdGF0ZSB8IG51bGw+KG51bGwpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbWVzc2FnZXM6IEFnZW50TWVzc2FnZVNlcnZpY2UpIHtcbiAgICB0aGlzLnNldHVwQmVoYXZpb3JzKCk7XG4gIH1cblxuICBzZXR1cEJlaGF2aW9ycygpOiB2b2lkIHtcbiAgICB0aGlzLm1lc3NhZ2VzLnJ4TWVzc2FnZSQuc3Vic2NyaWJlKChtc2cpID0+IHRoaXMuaGFuZGxlTWVzc2FnZShtc2cpKTtcbiAgICAvLyBpZiB3ZSBoYXZlbid0IGhlYXJkIGZyb20gSGFtbGliIGluIDE1IHNlY29uZHMsIGNvbnNpZGVyIGl0IGRvd25cbiAgICB0aGlzLmNvbm5lY3RlZCQucGlwZShkZWJvdW5jZVRpbWUoMTUwMDApKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5jb25uZWN0ZWQkLm5leHQoZmFsc2UpO1xuICAgIH0pO1xuICAgIC8vIFdoZW4gSGFtbGliIGdvZXMgZG93biwgY2xlYXIgaXRzIHBlcnNpc3RlbnQgbWVzc2FnZSBzdWJqZWN0c1xuICAgIHRoaXMuY29ubmVjdGVkJC5zdWJzY3JpYmUoKGlzVXApID0+IHtcbiAgICAgIGlmICghaXNVcCkge1xuICAgICAgICB0aGlzLnJpZ1N0YXRlJC5uZXh0KG51bGwpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVNZXNzYWdlKG1zZzogYW55KTogdm9pZCB7XG4gICAgaWYgKCFtc2cuaGFtbGliIHx8ICFtc2cuaGFtbGliLnR5cGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5jb25uZWN0ZWQkLm5leHQodHJ1ZSk7XG4gICAgc3dpdGNoIChtc2cuaGFtbGliLnR5cGUpIHtcbiAgICAgIGNhc2UgJ1JpZ1N0YXRlJzpcbiAgICAgICAgdGhpcy5yaWdTdGF0ZSQubmV4dChtc2cuaGFtbGliLnBheWxvYWQgYXMgSGFtbGliUmlnU3RhdGUpO1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICB9XG59XG4iXX0=
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFtbGliLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gta2VsLWFnZW50L3NyYy9saWIvaGFtbGliLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXZDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBTTlDLE1BQU0sT0FBTyxhQUFhO0lBTXhCLFlBQW9CLFFBQTZCO1FBQTdCLGFBQVEsR0FBUixRQUFRLENBQXFCO1FBTGpELHNEQUFzRDtRQUN0QyxlQUFVLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7UUFDakUsMkRBQTJEO1FBQzNDLGNBQVMsR0FBRyxJQUFJLGVBQWUsQ0FBd0IsSUFBSSxDQUFDLENBQUM7UUFHM0UsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxjQUFjO1FBQ1osSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDckUsa0VBQWtFO1FBQ2xFLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDdkQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUIsQ0FBQyxDQUFDLENBQUM7UUFDSCwrREFBK0Q7UUFDL0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNqQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ1YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDNUIsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLGFBQWEsQ0FBQyxHQUFRO1FBQzVCLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNwQyxPQUFPO1FBQ1QsQ0FBQztRQUNELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzNCLFFBQVEsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUN4QixLQUFLLFVBQVU7Z0JBQ2IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxPQUF5QixDQUFDLENBQUM7Z0JBQzFELE9BQU87UUFDWCxDQUFDO0lBQ0gsQ0FBQzsrR0FsQ1UsYUFBYTttSEFBYixhQUFhLGNBRlosTUFBTTs7NEZBRVAsYUFBYTtrQkFIekIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEhhbWxpYlJpZ1N0YXRlIH0gZnJvbSAnLi9oYW1saWItbWVzc2FnZXMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQWdlbnRNZXNzYWdlU2VydmljZSB9IGZyb20gJy4vYWdlbnQtbWVzc2FnZS5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEhhbWxpYlNlcnZpY2Uge1xuICAvKiogV2hldGhlciB3ZSdyZSBnZXR0aW5nIGFueSBtZXNzYWdlcyBmcm9tIEhhbWxpYi4gKi9cbiAgcHVibGljIHJlYWRvbmx5IGNvbm5lY3RlZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgLyoqIFN1YmplY3QgZm9yIGxpc3RlbmluZyB0byBIYW1saWIgXCJSaWdTdGF0ZVwiIG1lc3NhZ2VzLiAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcmlnU3RhdGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxIYW1saWJSaWdTdGF0ZSB8IG51bGw+KG51bGwpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbWVzc2FnZXM6IEFnZW50TWVzc2FnZVNlcnZpY2UpIHtcbiAgICB0aGlzLnNldHVwQmVoYXZpb3JzKCk7XG4gIH1cblxuICBzZXR1cEJlaGF2aW9ycygpOiB2b2lkIHtcbiAgICB0aGlzLm1lc3NhZ2VzLnJ4TWVzc2FnZSQuc3Vic2NyaWJlKChtc2cpID0+IHRoaXMuaGFuZGxlTWVzc2FnZShtc2cpKTtcbiAgICAvLyBpZiB3ZSBoYXZlbid0IGhlYXJkIGZyb20gSGFtbGliIGluIDE1IHNlY29uZHMsIGNvbnNpZGVyIGl0IGRvd25cbiAgICB0aGlzLmNvbm5lY3RlZCQucGlwZShkZWJvdW5jZVRpbWUoMTUwMDApKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5jb25uZWN0ZWQkLm5leHQoZmFsc2UpO1xuICAgIH0pO1xuICAgIC8vIFdoZW4gSGFtbGliIGdvZXMgZG93biwgY2xlYXIgaXRzIHBlcnNpc3RlbnQgbWVzc2FnZSBzdWJqZWN0c1xuICAgIHRoaXMuY29ubmVjdGVkJC5zdWJzY3JpYmUoKGlzVXApID0+IHtcbiAgICAgIGlmICghaXNVcCkge1xuICAgICAgICB0aGlzLnJpZ1N0YXRlJC5uZXh0KG51bGwpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVNZXNzYWdlKG1zZzogYW55KTogdm9pZCB7XG4gICAgaWYgKCFtc2cuaGFtbGliIHx8ICFtc2cuaGFtbGliLnR5cGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5jb25uZWN0ZWQkLm5leHQodHJ1ZSk7XG4gICAgc3dpdGNoIChtc2cuaGFtbGliLnR5cGUpIHtcbiAgICAgIGNhc2UgJ1JpZ1N0YXRlJzpcbiAgICAgICAgdGhpcy5yaWdTdGF0ZSQubmV4dChtc2cuaGFtbGliLnBheWxvYWQgYXMgSGFtbGliUmlnU3RhdGUpO1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -239,13 +239,13 @@ export class WsjtxService {
239
239
  .toString()
240
240
  .padStart(2, '0')}${seconds.toString().padStart(2, '0')}`;
241
241
  }
242
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: WsjtxService, deps: [{ token: i1.AgentMessageService }], target: i0.ɵɵFactoryTarget.Injectable }); }
243
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: WsjtxService, providedIn: 'root' }); }
242
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: WsjtxService, deps: [{ token: i1.AgentMessageService }], target: i0.ɵɵFactoryTarget.Injectable }); }
243
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: WsjtxService, providedIn: 'root' }); }
244
244
  }
245
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: WsjtxService, decorators: [{
245
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: WsjtxService, decorators: [{
246
246
  type: Injectable,
247
247
  args: [{
248
248
  providedIn: 'root',
249
249
  }]
250
250
  }], ctorParameters: () => [{ type: i1.AgentMessageService }] });
251
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3NqdHguc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1rZWwtYWdlbnQvc3JjL2xpYi93c2p0eC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBbUIvRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQU05QyxNQUFNLE9BQU8sWUFBWTtJQXNCdkIsWUFBb0IsUUFBNkI7UUFBN0IsYUFBUSxHQUFSLFFBQVEsQ0FBcUI7UUFyQmpELHNEQUFzRDtRQUN0QyxlQUFVLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7UUFDakUsNERBQTREO1FBQzVDLGVBQVUsR0FBRyxJQUFJLGFBQWEsQ0FBd0IsQ0FBQyxDQUFDLENBQUM7UUFDekUseURBQXlEO1FBQ3pDLFlBQU8sR0FBRyxJQUFJLGFBQWEsQ0FBcUIsQ0FBQyxDQUFDLENBQUM7UUFDbkUseURBQXlEO1FBQ3pDLFlBQU8sR0FBRyxJQUFJLE9BQU8sRUFBZSxDQUFDO1FBQ3JELHdEQUF3RDtRQUN4QyxXQUFNLEdBQUcsSUFBSSxPQUFPLEVBQWMsQ0FBQztRQUNuRCw0REFBNEQ7UUFDNUMsZUFBVSxHQUFHLElBQUksT0FBTyxFQUFrQixDQUFDO1FBQzNELHdEQUF3RDtRQUN4QyxXQUFNLEdBQUcsSUFBSSxPQUFPLEVBQWMsQ0FBQztRQUNuRCw2REFBNkQ7UUFDN0MsZ0JBQVcsR0FBRyxJQUFJLE9BQU8sRUFBbUIsQ0FBQztRQUM3RCw2REFBNkQ7UUFDN0MsZ0JBQVcsR0FBRyxJQUFJLE9BQU8sRUFBbUIsQ0FBQztRQUVyRCxZQUFPLEdBQVcsUUFBUSxDQUFDO1FBR2pDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FB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QUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUN0RCxNQUFNLGdCQUFnQixHQUFHLG9CQUFvQixHQUFHLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDN0QsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUNsRCxNQUFNLE9BQU8sR0FBRyxnQkFBZ0IsR0FBRyxPQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2hELE9BQU8sR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsR0FBRyxPQUFPO2FBQ2xELFFBQVEsRUFBRTthQUNWLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEdBQUcsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQztJQUM5RCxDQUFDOzhHQTlQVSxZQUFZO2tIQUFaLFlBQVksY0FGWCxNQUFNOzsyRkFFUCxZQUFZO2tCQUh4QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgUmVwbGF5U3ViamVjdCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgV3NqdHhDbGVhcixcbiAgV3NqdHhDbG9zZSxcbiAgV3NqdHhDb25maWd1cmUsXG4gIFdzanR4RGVjb2RlLFxuICBXc2p0eEZyZWVUZXh0LFxuICBXc2p0eEhhbHRUeCxcbiAgV3NqdHhIZWFydGJlYXQsXG4gIFdzanR4SGlnaGxpZ2h0Q2FsbHNpZ24sXG4gIFdzanR4TG9jYXRpb24sXG4gIFdzanR4TG9nZ2VkQWRpZixcbiAgV3NqdHhRc29Mb2dnZWQsXG4gIFdzanR4UmVwbGF5LFxuICBXc2p0eFJlcGx5LFxuICBXc2p0eFN0YXR1cyxcbiAgV3NqdHhTd2l0Y2hDb25maWd1cmF0aW9uLFxuICBXc2p0eFdzcHJEZWNvZGUsXG59IGZyb20gJy4vd3NqdHgtbWVzc2FnZXMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQWdlbnRNZXNzYWdlU2VydmljZSB9IGZyb20gJy4vYWdlbnQtbWVzc2FnZS5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFdzanR4U2VydmljZSB7XG4gIC8qKiBXaGV0aGVyIHdlJ3JlIGdldHRpbmcgYW55IG1lc3NhZ2VzIGZyb20gV1NKVC1YLiAqL1xuICBwdWJsaWMgcmVhZG9ubHkgY29ubmVjdGVkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICAvKiogU3ViamVjdCBmb3IgbGlzdGVuaW5nIHRvIFdTSlQtWCBcIkhlYXJ0YmVhdFwiIG1lc3NhZ2VzLiAqL1xuICBwdWJsaWMgcmVhZG9ubHkgaGVhcnRiZWF0JCA9IG5ldyBSZXBsYXlTdWJqZWN0PFdzanR4SGVhcnRiZWF0IHwgbnVsbD4oMSk7XG4gIC8qKiBTdWJqZWN0IGZvciBsaXN0ZW5pbmcgdG8gV1NKVC1YIFwiU3RhdHVzXCIgbWVzc2FnZXMuICovXG4gIHB1YmxpYyByZWFkb25seSBzdGF0dXMkID0gbmV3IFJlcGxheVN1YmplY3Q8V3NqdHhTdGF0dXMgfCBudWxsPigxKTtcbiAgLyoqIFN1YmplY3QgZm9yIGxpc3RlbmluZyB0byBXU0pULVggXCJEZWNvZGVcIiBtZXNzYWdlcy4gKi9cbiAgcHVibGljIHJlYWRvbmx5IGRlY29kZSQgPSBuZXcgU3ViamVjdDxXc2p0eERlY29kZT4oKTtcbiAgLyoqIFN1YmplY3QgZm9yIGxpc3RlbmluZyB0byBXU0pULVggXCJDbGVhclwiIG1lc3NhZ2VzLiAqL1xuICBwdWJsaWMgcmVhZG9ubHkgY2xlYXIkID0gbmV3IFN1YmplY3Q8V3NqdHhDbGVhcj4oKTtcbiAgLyoqIFN1YmplY3QgZm9yIGxpc3RlbmluZyB0byBXU0pULVggXCJRc29Mb2dnZWRcIiBtZXNzYWdlcy4gKi9cbiAgcHVibGljIHJlYWRvbmx5IHFzb0xvZ2dlZCQgPSBuZXcgU3ViamVjdDxXc2p0eFFzb0xvZ2dlZD4oKTtcbiAgLyoqIFN1YmplY3QgZm9yIGxpc3RlbmluZyB0byBXU0pULVggXCJDbG9zZVwiIG1lc3NhZ2VzLiAqL1xuICBwdWJsaWMgcmVhZG9ubHkgY2xvc2UkID0gbmV3IFN1YmplY3Q8V3NqdHhDbG9zZT4oKTtcbiAgLyoqIFN1YmplY3QgZm9yIGxpc3RlbmluZyB0byBXU0pULVggXCJXc3ByRGVjb2RlXCIgbWVzc2FnZXMuICovXG4gIHB1YmxpYyByZWFkb25seSB3c3ByRGVjb2RlJCA9IG5ldyBTdWJqZWN0PFdzanR4V3NwckRlY29kZT4oKTtcbiAgLyoqIFN1YmplY3QgZm9yIGxpc3RlbmluZyB0byBXU0pULVggXCJMb2dnZWRBZGlmXCIgbWVzc2FnZXMuICovXG4gIHB1YmxpYyByZWFkb25seSBsb2dnZWRBZGlmJCA9IG5ldyBTdWJqZWN0PFdzanR4TG9nZ2VkQWRpZj4oKTtcblxuICBwcml2YXRlIHdzanR4SWQ6IHN0cmluZyA9ICdXU0pULVgnO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbWVzc2FnZXM6IEFnZW50TWVzc2FnZVNlcnZpY2UpIHtcbiAgICB0aGlzLnNldHVwQmVoYXZpb3JzKCk7XG4gIH1cblxuICBwcml2YXRlIHNldHVwQmVoYXZpb3JzKCk6IHZvaWQge1xuICAgIHRoaXMubWVzc2FnZXMucnhNZXNzYWdlJC5zdWJzY3JpYmUoKG1zZykgPT4gdGhpcy5oYW5kbGVNZXNzYWdlKG1zZykpO1xuICAgIC8vIGlmIHdlIGhhdmVuJ3QgaGVhcmQgZnJvbSBXU0pULVggaW4gMTUgc2Vjb25kcywgY29uc2lkZXIgaXQgXCJkb3duXCJcbiAgICB0aGlzLmNvbm5lY3RlZCRcbiAgICAgIC5waXBlKGRlYm91bmNlVGltZSgxNTAwMCkpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuY29ubmVjdGVkJC5uZXh0KGZhbHNlKSk7XG4gICAgLy8gV2hlbiBXU0pULVggYW5ub3VuY2VzIGl0J3MgY2xvc2luZywgc2V0IGl0IHRvIFwiZG93blwiIGltbWVkaWF0ZWx5XG4gICAgdGhpcy5jbG9zZSQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuY29ubmVjdGVkJC5uZXh0KGZhbHNlKTtcbiAgICB9KTtcbiAgICAvLyBXaGVuIFdTSlQtWCBnb2VzIGRvd24sIGNsZWFyIGl0cyBwZXJzaXN0ZW50IG1lc3NhZ2Ugc3ViamVjdHNcbiAgICB0aGlzLmNvbm5lY3RlZCQuc3Vic2NyaWJlKChpc1VwKSA9PiB7XG4gICAgICBpZiAoIWlzVXApIHtcbiAgICAgICAgdGhpcy5oZWFydGJlYXQkLm5leHQobnVsbCk7XG4gICAgICAgIHRoaXMuc3RhdHVzJC5uZXh0KG51bGwpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVNZXNzYWdlKG1zZzogYW55KTogdm9pZCB7XG4gICAgaWYgKCFtc2cud3NqdHggfHwgIW1zZy53c2p0eC50eXBlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuY29ubmVjdGVkJC5uZXh0KHRydWUpO1xuICAgIHRoaXMud3NqdHhJZCA9IG1zZy53c2p0eC5wYXlsb2FkLmlkO1xuICAgIHN3aXRjaCAobXNnLndzanR4LnR5cGUpIHtcbiAgICAgIGNhc2UgJ0hlYXJ0YmVhdE1lc3NhZ2UnOlxuICAgICAgICB0aGlzLmhlYXJ0YmVhdCQubmV4dChtc2cud3NqdHgucGF5bG9hZCBhcyBXc2p0eEhlYXJ0YmVhdCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIGNhc2UgJ1N0YXR1c01lc3NhZ2UnOlxuICAgICAgICB0aGlzLnN0YXR1cyQubmV4dChtc2cud3NqdHgucGF5bG9hZCBhcyBXc2p0eFN0YXR1cyk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIGNhc2UgJ0RlY29kZU1lc3NhZ2UnOlxuICAgICAgICB0aGlzLmRlY29kZSQubmV4dChtc2cud3NqdHgucGF5bG9hZCBhcyBXc2p0eERlY29kZSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIGNhc2UgJ0NsZWFyTWVzc2FnZSc6XG4gICAgICAgIHRoaXMuY2xlYXIkLm5leHQobXNnLndzanR4LnBheWxvYWQgYXMgV3NqdHhDbGVhcik7XG4gICAgICAgIHJldHVybjtcbiAgICAgIGNhc2UgJ1Fzb0xvZ2dlZE1lc3NhZ2UnOlxuICAgICAgICB0aGlzLnFzb0xvZ2dlZCQubmV4dChtc2cud3NqdHgucGF5bG9hZCBhcyBXc2p0eFFzb0xvZ2dlZCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIGNhc2UgJ0Nsb3NlTWVzc2FnZSc6XG4gICAgICAgIHRoaXMuY2xvc2UkLm5leHQobXNnLndzanR4LnBheWxvYWQgYXMgV3NqdHhDbG9zZSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIGNhc2UgJ1dTUFJEZWNvZGVNZXNzYWdlJzpcbiAgICAgICAgdGhpcy53c3ByRGVjb2RlJC5uZXh0KG1zZy53c2p0eC5wYXlsb2FkIGFzIFdzanR4V3NwckRlY29kZSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIGNhc2UgJ0xvZ2dlZEFkaWZNZXNzYWdlJzpcbiAgICAgICAgdGhpcy5sb2dnZWRBZGlmJC5uZXh0KG1zZy53c2p0eC5wYXlsb2FkIGFzIFdzanR4TG9nZ2VkQWRpZik7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cblxuICAvKiogU2VuZCBhIGNvbW1hbmQgdG8gV1NKVC1YIHRvIGNsZWFyIHRoZSBCYW5kIEFjdGl2aXR5IHdpbmRvdy4gKi9cbiAgcHVibGljIGNsZWFyQmFuZEFjdGl2aXR5KCkge1xuICAgIGNvbnN0IHdzTXNnID0ge1xuICAgICAgd3NqdHg6IHtcbiAgICAgICAgdHlwZTogJ0NsZWFyTWVzc2FnZScsXG4gICAgICAgIHBheWxvYWQ6IDxXc2p0eENsZWFyPnsgaWQ6IHRoaXMud3NqdHhJZCwgd2luZG93OiAwIH0sXG4gICAgICB9LFxuICAgIH07XG4gICAgdGhpcy5tZXNzYWdlcy50eE1lc3NhZ2UkLm5leHQod3NNc2cpO1xuICB9XG5cbiAgLyoqIFNlbmQgYSBjb21tYW5kIHRvIFdTSlQtWCB0byBjbGVhciB0aGUgUnggRnJlcXVlbmN5IHdpbmRvdy4gKi9cbiAgcHVibGljIGNsZWFyUnhGcmVxV2luZG93KCkge1xuICAgIGNvbnN0IHdzTXNnID0ge1xuICAgICAgd3NqdHg6IHtcbiAgICAgICAgdHlwZTogJ0NsZWFyTWVzc2FnZScsXG4gICAgICAgIHBheWxvYWQ6IDxXc2p0eENsZWFyPnsgaWQ6IHRoaXMud3NqdHhJZCwgd2luZG93OiAxIH0sXG4gICAgICB9LFxuICAgIH07XG4gICAgdGhpcy5tZXNzYWdlcy50eE1lc3NhZ2UkLm5leHQod3NNc2cpO1xuICB9XG5cbiAgLyoqIFNlbmQgYSBjb21tYW5kIHRvIFdTSlQtWCB0byBjbGVhciB0aGUgQmFuZCBBY3Rpdml0eSBhbmQgUnggRnJlcXVlbmN5IHdpbmRvd3MuICovXG4gIHB1YmxpYyBjbGVhckFsbCgpIHtcbiAgICBjb25zdCB3c01zZyA9IHtcbiAgICAgIHdzanR4OiB7XG4gICAgICAgIHR5cGU6ICdDbGVhck1lc3NhZ2UnLFxuICAgICAgICBwYXlsb2FkOiA8V3NqdHhDbGVhcj57IGlkOiB0aGlzLndzanR4SWQsIHdpbmRvdzogMiB9LFxuICAgICAgfSxcbiAgICB9O1xuICAgIHRoaXMubWVzc2FnZXMudHhNZXNzYWdlJC5uZXh0KHdzTXNnKTtcbiAgfVxuXG4gIC8qKiBTZW5kIGEgY29tbWFuZCB0byBXU0pULVggdG8gcmVwbGF5IG1lc3NhZ2VzLiBVc2VmdWwgZm9yIGEgZnJlc2ggY2xpZW50IHRoYXQgd2FudHMgdG8gaGVhclxuICAgKiBwcmV2aW91cyBXU0pULVggZGVjb2Rlcy4gKi9cbiAgcHVibGljIHJlcGxheSgpIHtcbiAgICBjb25zdCB3c01zZyA9IHtcbiAgICAgIHdzanR4OiB7XG4gICAgICAgIHR5cGU6ICdSZXBsYXlNZXNzYWdlJyxcbiAgICAgICAgcGF5bG9hZDogPFdzanR4UmVwbGF5PnsgaWQ6IHRoaXMud3NqdHhJZCB9LFxuICAgICAgfSxcbiAgICB9O1xuICAgIHRoaXMubWVzc2FnZXMudHhNZXNzYWdlJC5uZXh0KHdzTXNnKTtcbiAgfVxuXG4gIC8qKiBTZW5kIGEgY29tbWFuZCB0byBXU0pULVggdG8gaGFsdCBhbnkgdHJhbnNtaXNzaW9ucyBpbW1lZGlhdGVseS4gKi9cbiAgcHVibGljIGhhbHRUeE5vdygpIHtcbiAgICBjb25zdCB3c01zZyA9IHtcbiAgICAgIHdzanR4OiB7XG4gICAgICAgIHR5cGU6ICdIYWx0VHhNZXNzYWdlJyxcbiAgICAgICAgcGF5bG9hZDogPFdzanR4SGFsdFR4PnsgaWQ6IHRoaXMud3NqdHhJZCwgYXV0b1R4T25seTogZmFsc2UgfSxcbiAgICAgIH0sXG4gICAgfTtcbiAgICB0aGlzLm1lc3NhZ2VzLnR4TWVzc2FnZSQubmV4dCh3c01zZyk7XG4gIH1cblxuICAvKiogU2VuZCBhIGNvbW1hbmQgdG8gV1NKVC1YIHRvIHN0b3AgYXV0by10cmFuc21pdHRpbmcgYWZ0ZXIgZmluaXNoaW5nIHRoZSBjdXJyZW50IHJvdW5kLiAqL1xuICBwdWJsaWMgaGFsdFR4QWZ0ZXJDdXJyZW50KCkge1xuICAgIGNvbnN0IHdzTXNnID0ge1xuICAgICAgd3NqdHg6IHtcbiAgICAgICAgdHlwZTogJ0hhbHRUeE1lc3NhZ2UnLFxuICAgICAgICBwYXlsb2FkOiA8V3NqdHhIYWx0VHg+eyBpZDogdGhpcy53c2p0eElkLCBhdXRvVHhPbmx5OiB0cnVlIH0sXG4gICAgICB9LFxuICAgIH07XG4gICAgdGhpcy5tZXNzYWdlcy50eE1lc3NhZ2UkLm5leHQod3NNc2cpO1xuICB9XG5cbiAgLyoqIFNlbmQgYSBjb21tYW5kIHRvIFdTSlQtWCB0byByZXBseSB0byB0aGUgZ2l2ZW4gZGVjb2RlLiBUaGUgbWVzc2FnZSBtdXN0IGluY2x1ZGUgQ1Egb3IgUVJaLiAqL1xuICBwdWJsaWMgcmVwbHkoZGVjb2RlOiBXc2p0eERlY29kZSkge1xuICAgIGNvbnN0IHdzTXNnID0ge1xuICAgICAgd3NqdHg6IHtcbiAgICAgICAgdHlwZTogJ1JlcGx5TWVzc2FnZScsXG4gICAgICAgIHBheWxvYWQ6IDxXc2p0eFJlcGx5PntcbiAgICAgICAgICBpZDogZGVjb2RlLmlkLFxuICAgICAgICAgIHRpbWU6IGRlY29kZS50aW1lLFxuICAgICAgICAgIHNucjogZGVjb2RlLnNucixcbiAgICAgICAgICBkZWx0YVRpbWU6IGRlY29kZS5kZWx0YVRpbWUsXG4gICAgICAgICAgZGVsdGFGcmVxdWVuY3k6IGRlY29kZS5kZWx0YUZyZXF1ZW5jeSxcbiAgICAgICAgICBtb2RlOiBkZWNvZGUubW9kZSxcbiAgICAgICAgICBtZXNzYWdlOiBkZWNvZGUubWVzc2FnZSxcbiAgICAgICAgICBsb3dDb25maWRlbmNlOiBkZWNvZGUubG93Q29uZmlkZW5jZSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfTtcbiAgICB0aGlzLm1lc3NhZ2VzLnR4TWVzc2FnZSQubmV4dCh3c01zZyk7XG4gIH1cblxuICAvKiogU2VuZCBhIGNvbW1hbmQgdG8gV1NKVC1YIHRvIHJlcGx5IHRvIHRoZSBnaXZlbiBkZWNvZGUuIFRoZSBtZXNzYWdlIG11c3QgaW5jbHVkZSBDUSBvciBRUlouICovXG4gIHB1YmxpYyBoaWdobGlnaHRDYWxsc2lnbihoaWdobGlnaHRNc2c6IFdzanR4SGlnaGxpZ2h0Q2FsbHNpZ24pIHtcbiAgICBoaWdobGlnaHRNc2cuaWQgPSB0aGlzLndzanR4SWQ7XG4gICAgY29uc3Qgd3NNc2cgPSB7XG4gICAgICB3c2p0eDoge1xuICAgICAgICB0eXBlOiAnSGlnaGxpZ2h0Q2FsbHNpZ25NZXNzYWdlJyxcbiAgICAgICAgcGF5bG9hZDogaGlnaGxpZ2h0TXNnLFxuICAgICAgfSxcbiAgICB9O1xuICAgIHRoaXMubWVzc2FnZXMudHhNZXNzYWdlJC5uZXh0KHdzTXNnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZW5kIGEgY29tbWFuZCB0byBXU0pULVggdG8gdHJhbnNtaXQgdGhlIGdpdmVuIGZyZWUgdGV4dC4gSWYgdGhlIHRleHQgaXMgdG9vIGxvbmcgdG8gYmVcbiAgICogZW5jb2RlZCBpbiBhIHNpbmdsZSBtZXNzYWdlLCBpdCBtYXkgYmUgc2lsZW50bHkgdHJ1bmNhdGVkLiAqL1xuICBwdWJsaWMgc2VuZEZyZWVUZXh0KGZyZWVUZXh0OiBXc2p0eEZyZWVUZXh0KSB7XG4gICAgZnJlZVRleHQuaWQgPSB0aGlzLndzanR4SWQ7XG4gICAgY29uc3Qgd3NNc2cgPSB7XG4gICAgICB3c2p0eDoge1xuICAgICAgICB0eXBlOiAnRnJlZVRleHRNZXNzYWdlJyxcbiAgICAgICAgcGF5bG9hZDogZnJlZVRleHQsXG4gICAgICB9LFxuICAgIH07XG4gICAgdGhpcy5tZXNzYWdlcy50eE1lc3NhZ2UkLm5leHQod3NNc2cpO1xuICB9XG5cbiAgLyoqIFNlbmQgYSBjb21tYW5kIHRvIFdTSlQtWCB0byBzZXQgdGhlIGxvY2FsIHN0YXRpb24ncyBNYWlkZW5oZWFkIGdyaWQuIFRoaXMgaXMgdGVtcG9yYXJ5LFxuICAgKiBsYXN0aW5nIG9ubHkgYXMgbG9uZyBhcyBXU0pULVggaXMgcnVubmluZy4gKi9cbiAgcHVibGljIHNldExvY2F0aW9uKGdyaWQ6IHN0cmluZykge1xuICAgIGNvbnN0IHdzTXNnID0ge1xuICAgICAgd3NqdHg6IHtcbiAgICAgICAgdHlwZTogJ0xvY2F0aW9uTWVzc2FnZScsXG4gICAgICAgIHBheWxvYWQ6IDxXc2p0eExvY2F0aW9uPntcbiAgICAgICAgICBpZDogdGhpcy53c2p0eElkLFxuICAgICAgICAgIGxvY2F0aW9uOiBncmlkLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9O1xuICAgIHRoaXMubWVzc2FnZXMudHhNZXNzYWdlJC5uZXh0KHdzTXNnKTtcbiAgfVxuXG4gIC8qKiBTZW5kIGEgY29tbWFuZCB0byBXU0pULVggdG8gc3dpdGNoIHRvIHRoZSBuYW1lZCBjb25maWd1cmF0aW9uLiAqL1xuICBwdWJsaWMgc3dpdGNoQ29uZmlndXJhdGlvbihjb25maWdOYW1lOiBzdHJpbmcpIHtcbiAgICBjb25zdCB3c01zZyA9IHtcbiAgICAgIHdzanR4OiB7XG4gICAgICAgIHR5cGU6ICdTd2l0Y2hDb25maWd1cmF0aW9uTWVzc2FnZScsXG4gICAgICAgIHBheWxvYWQ6IDxXc2p0eFN3aXRjaENvbmZpZ3VyYXRpb24+e1xuICAgICAgICAgIGlkOiB0aGlzLndzanR4SWQsXG4gICAgICAgICAgY29uZmlndXJhdGlvbk5hbWU6IGNvbmZpZ05hbWUsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH07XG4gICAgdGhpcy5tZXNzYWdlcy50eE1lc3NhZ2UkLm5leHQod3NNc2cpO1xuICB9XG5cbiAgLyoqIFNlbmQgYSBjb21tYW5kIHRvIFdTSlQtWCB0byBzZXQgdGhlIGdpdmVuIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVycy4gKi9cbiAgcHVibGljIGNvbmZpZ3VyZShjb25maWc6IFdzanR4Q29uZmlndXJlKSB7XG4gICAgY29uZmlnLmlkID0gdGhpcy53c2p0eElkO1xuICAgIGNvbnN0IHdzTXNnID0ge1xuICAgICAgd3NqdHg6IHtcbiAgICAgICAgdHlwZTogJ0NvbmZpZ3VyZU1lc3NhZ2UnLFxuICAgICAgICBwYXlsb2FkOiBjb25maWcsXG4gICAgICB9LFxuICAgIH07XG4gICAgdGhpcy5tZXNzYWdlcy50eE1lc3NhZ2UkLm5leHQod3NNc2cpO1xuICB9XG5cbiAgLyoqIEdpdmVuIGEgZGVjb2RlIG1lc3NhZ2UsIGZvcm1hdCBhIHN0cmluZyB0aGUgc2FtZSB3YXkgYXMgZGlzcGxheWVkIGluIHRoZSBXU0pULVggQmFuZFxuICAgKiBBY3Rpdml0eS9SeCBGcmVxdWVuY3kgd2luZG93cy4gKi9cbiAgcHVibGljIHN0YXRpYyBmb3JtYXREZWNvZGUobXNnOiBXc2p0eERlY29kZSk6IHN0cmluZyB7XG4gICAgY29uc3QgdGltZVN0ciA9IHRoaXMuZm9ybWF0VGltZShtc2cudGltZSk7XG4gICAgcmV0dXJuIGAke3RpbWVTdHJ9ICR7bXNnLnNuci50b1N0cmluZygpLnBhZFN0YXJ0KDMpfSAke21zZy5kZWx0YVRpbWVcbiAgICAgIC50b0ZpeGVkKDEpXG4gICAgICAucGFkU3RhcnQoNCl9ICR7bXNnLmRlbHRhRnJlcXVlbmN5LnRvU3RyaW5nKCkucGFkU3RhcnQoNCl9IH4gICR7XG4gICAgICBtc2cubWVzc2FnZVxuICAgIH1gO1xuICB9XG5cbiAgLyoqIEdpdmVuIGEgdGltZSBpbiBtaWxsaXNlY29uZHMgc2luY2UgbWlkbmlnaHQgVVRDLCBmb3JtYXQgYXMgSEhNTVNTLiAqL1xuICBwdWJsaWMgc3RhdGljIGZvcm1hdFRpbWUodGltZTogbnVtYmVyKSB7XG4gICAgY29uc3Qgc2Vjb25kc1NpbmNlTWlkbmlnaHQgPSBNYXRoLmZsb29yKHRpbWUgLyAxMDAwKTtcbiAgICBjb25zdCBob3VycyA9IE1hdGguZmxvb3Ioc2Vjb25kc1NpbmNlTWlkbmlnaHQgLyAzNjAwKTtcbiAgICBjb25zdCBzZWNvbmRzU2luY2VIb3VyID0gc2Vjb25kc1NpbmNlTWlkbmlnaHQgLSBob3VycyAqIDM2MDA7XG4gICAgY29uc3QgbWludXRlcyA9IE1hdGguZmxvb3Ioc2Vjb25kc1NpbmNlSG91ciAvIDYwKTtcbiAgICBjb25zdCBzZWNvbmRzID0gc2Vjb25kc1NpbmNlSG91ciAtIG1pbnV0ZXMgKiA2MDtcbiAgICByZXR1cm4gYCR7aG91cnMudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpfSR7bWludXRlc1xuICAgICAgLnRvU3RyaW5nKClcbiAgICAgIC5wYWRTdGFydCgyLCAnMCcpfSR7c2Vjb25kcy50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJyl9YDtcbiAgfVxufVxuIl19
251
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3NqdHguc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1rZWwtYWdlbnQvc3JjL2xpYi93c2p0eC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBbUIvRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQU05QyxNQUFNLE9BQU8sWUFBWTtJQXNCdkIsWUFBb0IsUUFBNkI7UUFBN0IsYUFBUSxHQUFSLFFBQVEsQ0FBcUI7UUFyQmpELHNEQUFzRDtRQUN0QyxlQUFVLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7UUFDakUsNERBQTREO1FBQzVDLGVBQVUsR0FBRyxJQUFJLGFBQWEsQ0FBd0IsQ0FBQyxDQUFDLENBQUM7UUFDekUseURBQXlEO1FBQ3pDLFlBQU8sR0FBRyxJQUFJLGFBQWEsQ0FBcUIsQ0FBQyxDQUFDLENBQUM7UUFDbkUseURBQXlEO1FBQ3pDLFlBQU8sR0FBRyxJQUFJLE9BQU8sRUFBZSxDQUFDO1FBQ3JELHdEQUF3RDtRQUN4QyxXQUFNLEdBQUcsSUFBSSxPQUFPLEVBQWMsQ0FBQztRQUNuRCw0REFBNEQ7UUFDNUMsZUFBVSxHQUFHLElBQUksT0FBTyxFQUFrQixDQUFDO1FBQzNELHdEQUF3RDtRQUN4QyxXQUFNLEdBQUcsSUFBSSxPQUFPLEVBQWMsQ0FBQztRQUNuRCw2REFBNkQ7UUFDN0MsZ0JBQVcsR0FBRyxJQUFJLE9BQU8sRUFBbUIsQ0FBQztRQUM3RCw2REFBNkQ7UUFDN0MsZ0JBQVcsR0FBRyxJQUFJLE9BQU8sRUFBbUIsQ0FBQztRQUVyRCxZQUFPLEdBQVcsUUFBUSxDQUFDO1FBR2pDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FB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QUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUN0RCxNQUFNLGdCQUFnQixHQUFHLG9CQUFvQixHQUFHLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDN0QsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUNsRCxNQUFNLE9BQU8sR0FBRyxnQkFBZ0IsR0FBRyxPQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2hELE9BQU8sR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsR0FBRyxPQUFPO2FBQ2xELFFBQVEsRUFBRTthQUNWLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEdBQUcsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQztJQUM5RCxDQUFDOytHQTlQVSxZQUFZO21IQUFaLFlBQVksY0FGWCxNQUFNOzs0RkFFUCxZQUFZO2tCQUh4QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgUmVwbGF5U3ViamVjdCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgV3NqdHhDbGVhcixcbiAgV3NqdHhDbG9zZSxcbiAgV3NqdHhDb25maWd1cmUsXG4gIFdzanR4RGVjb2RlLFxuICBXc2p0eEZyZWVUZXh0LFxuICBXc2p0eEhhbHRUeCxcbiAgV3NqdHhIZWFydGJlYXQsXG4gIFdzanR4SGlnaGxpZ2h0Q2FsbHNpZ24sXG4gIFdzanR4TG9jYXRpb24sXG4gIFdzanR4TG9nZ2VkQWRpZixcbiAgV3NqdHhRc29Mb2dnZWQsXG4gIFdzanR4UmVwbGF5LFxuICBXc2p0eFJlcGx5LFxuICBXc2p0eFN0YXR1cyxcbiAgV3NqdHhTd2l0Y2hDb25maWd1cmF0aW9uLFxuICBXc2p0eFdzcHJEZWNvZGUsXG59IGZyb20gJy4vd3NqdHgtbWVzc2FnZXMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQWdlbnRNZXNzYWdlU2VydmljZSB9IGZyb20gJy4vYWdlbnQtbWVzc2FnZS5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFdzanR4U2VydmljZSB7XG4gIC8qKiBXaGV0aGVyIHdlJ3JlIGdldHRpbmcgYW55IG1lc3NhZ2VzIGZyb20gV1NKVC1YLiAqL1xuICBwdWJsaWMgcmVhZG9ubHkgY29ubmVjdGVkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICAvKiogU3ViamVjdCBmb3IgbGlzdGVuaW5nIHRvIFdTSlQtWCBcIkhlYXJ0YmVhdFwiIG1lc3NhZ2VzLiAqL1xuICBwdWJsaWMgcmVhZG9ubHkgaGVhcnRiZWF0JCA9IG5ldyBSZXBsYXlTdWJqZWN0PFdzanR4SGVhcnRiZWF0IHwgbnVsbD4oMSk7XG4gIC8qKiBTdWJqZWN0IGZvciBsaXN0ZW5pbmcgdG8gV1NKVC1YIFwiU3RhdHVzXCIgbWVzc2FnZXMuICovXG4gIHB1YmxpYyByZWFkb25seSBzdGF0dXMkID0gbmV3IFJlcGxheVN1YmplY3Q8V3NqdHhTdGF0dXMgfCBudWxsPigxKTtcbiAgLyoqIFN1YmplY3QgZm9yIGxpc3RlbmluZyB0byBXU0pULVggXCJEZWNvZGVcIiBtZXNzYWdlcy4gKi9cbiAgcHVibGljIHJlYWRvbmx5IGRlY29kZSQgPSBuZXcgU3ViamVjdDxXc2p0eERlY29kZT4oKTtcbiAgLyoqIFN1YmplY3QgZm9yIGxpc3RlbmluZyB0byBXU0pULVggXCJDbGVhclwiIG1lc3NhZ2VzLiAqL1xuICBwdWJsaWMgcmVhZG9ubHkgY2xlYXIkID0gbmV3IFN1YmplY3Q8V3NqdHhDbGVhcj4oKTtcbiAgLyoqIFN1YmplY3QgZm9yIGxpc3RlbmluZyB0byBXU0pULVggXCJRc29Mb2dnZWRcIiBtZXNzYWdlcy4gKi9cbiAgcHVibGljIHJlYWRvbmx5IHFzb0xvZ2dlZCQgPSBuZXcgU3ViamVjdDxXc2p0eFFzb0xvZ2dlZD4oKTtcbiAgLyoqIFN1YmplY3QgZm9yIGxpc3RlbmluZyB0byBXU0pULVggXCJDbG9zZVwiIG1lc3NhZ2VzLiAqL1xuICBwdWJsaWMgcmVhZG9ubHkgY2xvc2UkID0gbmV3IFN1YmplY3Q8V3NqdHhDbG9zZT4oKTtcbiAgLyoqIFN1YmplY3QgZm9yIGxpc3RlbmluZyB0byBXU0pULVggXCJXc3ByRGVjb2RlXCIgbWVzc2FnZXMuICovXG4gIHB1YmxpYyByZWFkb25seSB3c3ByRGVjb2RlJCA9IG5ldyBTdWJqZWN0PFdzanR4V3NwckRlY29kZT4oKTtcbiAgLyoqIFN1YmplY3QgZm9yIGxpc3RlbmluZyB0byBXU0pULVggXCJMb2dnZWRBZGlmXCIgbWVzc2FnZXMuICovXG4gIHB1YmxpYyByZWFkb25seSBsb2dnZWRBZGlmJCA9IG5ldyBTdWJqZWN0PFdzanR4TG9nZ2VkQWRpZj4oKTtcblxuICBwcml2YXRlIHdzanR4SWQ6IHN0cmluZyA9ICdXU0pULVgnO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbWVzc2FnZXM6IEFnZW50TWVzc2FnZVNlcnZpY2UpIHtcbiAgICB0aGlzLnNldHVwQmVoYXZpb3JzKCk7XG4gIH1cblxuICBwcml2YXRlIHNldHVwQmVoYXZpb3JzKCk6IHZvaWQge1xuICAgIHRoaXMubWVzc2FnZXMucnhNZXNzYWdlJC5zdWJzY3JpYmUoKG1zZykgPT4gdGhpcy5oYW5kbGVNZXNzYWdlKG1zZykpO1xuICAgIC8vIGlmIHdlIGhhdmVuJ3QgaGVhcmQgZnJvbSBXU0pULVggaW4gMTUgc2Vjb25kcywgY29uc2lkZXIgaXQgXCJkb3duXCJcbiAgICB0aGlzLmNvbm5lY3RlZCRcbiAgICAgIC5waXBlKGRlYm91bmNlVGltZSgxNTAwMCkpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuY29ubmVjdGVkJC5uZXh0KGZhbHNlKSk7XG4gICAgLy8gV2hlbiBXU0pULVggYW5ub3VuY2VzIGl0J3MgY2xvc2luZywgc2V0IGl0IHRvIFwiZG93blwiIGltbWVkaWF0ZWx5XG4gICAgdGhpcy5jbG9zZSQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuY29ubmVjdGVkJC5uZXh0KGZhbHNlKTtcbiAgICB9KTtcbiAgICAvLyBXaGVuIFdTSlQtWCBnb2VzIGRvd24sIGNsZWFyIGl0cyBwZXJzaXN0ZW50IG1lc3NhZ2Ugc3ViamVjdHNcbiAgICB0aGlzLmNvbm5lY3RlZCQuc3Vic2NyaWJlKChpc1VwKSA9PiB7XG4gICAgICBpZiAoIWlzVXApIHtcbiAgICAgICAgdGhpcy5oZWFydGJlYXQkLm5leHQobnVsbCk7XG4gICAgICAgIHRoaXMuc3RhdHVzJC5uZXh0KG51bGwpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVNZXNzYWdlKG1zZzogYW55KTogdm9pZCB7XG4gICAgaWYgKCFtc2cud3NqdHggfHwgIW1zZy53c2p0eC50eXBlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuY29ubmVjdGVkJC5uZXh0KHRydWUpO1xuICAgIHRoaXMud3NqdHhJZCA9IG1zZy53c2p0eC5wYXlsb2FkLmlkO1xuICAgIHN3aXRjaCAobXNnLndzanR4LnR5cGUpIHtcbiAgICAgIGNhc2UgJ0hlYXJ0YmVhdE1lc3NhZ2UnOlxuICAgICAgICB0aGlzLmhlYXJ0YmVhdCQubmV4dChtc2cud3NqdHgucGF5bG9hZCBhcyBXc2p0eEhlYXJ0YmVhdCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIGNhc2UgJ1N0YXR1c01lc3NhZ2UnOlxuICAgICAgICB0aGlzLnN0YXR1cyQubmV4dChtc2cud3NqdHgucGF5bG9hZCBhcyBXc2p0eFN0YXR1cyk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIGNhc2UgJ0RlY29kZU1lc3NhZ2UnOlxuICAgICAgICB0aGlzLmRlY29kZSQubmV4dChtc2cud3NqdHgucGF5bG9hZCBhcyBXc2p0eERlY29kZSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIGNhc2UgJ0NsZWFyTWVzc2FnZSc6XG4gICAgICAgIHRoaXMuY2xlYXIkLm5leHQobXNnLndzanR4LnBheWxvYWQgYXMgV3NqdHhDbGVhcik7XG4gICAgICAgIHJldHVybjtcbiAgICAgIGNhc2UgJ1Fzb0xvZ2dlZE1lc3NhZ2UnOlxuICAgICAgICB0aGlzLnFzb0xvZ2dlZCQubmV4dChtc2cud3NqdHgucGF5bG9hZCBhcyBXc2p0eFFzb0xvZ2dlZCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIGNhc2UgJ0Nsb3NlTWVzc2FnZSc6XG4gICAgICAgIHRoaXMuY2xvc2UkLm5leHQobXNnLndzanR4LnBheWxvYWQgYXMgV3NqdHhDbG9zZSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIGNhc2UgJ1dTUFJEZWNvZGVNZXNzYWdlJzpcbiAgICAgICAgdGhpcy53c3ByRGVjb2RlJC5uZXh0KG1zZy53c2p0eC5wYXlsb2FkIGFzIFdzanR4V3NwckRlY29kZSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIGNhc2UgJ0xvZ2dlZEFkaWZNZXNzYWdlJzpcbiAgICAgICAgdGhpcy5sb2dnZWRBZGlmJC5uZXh0KG1zZy53c2p0eC5wYXlsb2FkIGFzIFdzanR4TG9nZ2VkQWRpZik7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cblxuICAvKiogU2VuZCBhIGNvbW1hbmQgdG8gV1NKVC1YIHRvIGNsZWFyIHRoZSBCYW5kIEFjdGl2aXR5IHdpbmRvdy4gKi9cbiAgcHVibGljIGNsZWFyQmFuZEFjdGl2aXR5KCkge1xuICAgIGNvbnN0IHdzTXNnID0ge1xuICAgICAgd3NqdHg6IHtcbiAgICAgICAgdHlwZTogJ0NsZWFyTWVzc2FnZScsXG4gICAgICAgIHBheWxvYWQ6IDxXc2p0eENsZWFyPnsgaWQ6IHRoaXMud3NqdHhJZCwgd2luZG93OiAwIH0sXG4gICAgICB9LFxuICAgIH07XG4gICAgdGhpcy5tZXNzYWdlcy50eE1lc3NhZ2UkLm5leHQod3NNc2cpO1xuICB9XG5cbiAgLyoqIFNlbmQgYSBjb21tYW5kIHRvIFdTSlQtWCB0byBjbGVhciB0aGUgUnggRnJlcXVlbmN5IHdpbmRvdy4gKi9cbiAgcHVibGljIGNsZWFyUnhGcmVxV2luZG93KCkge1xuICAgIGNvbnN0IHdzTXNnID0ge1xuICAgICAgd3NqdHg6IHtcbiAgICAgICAgdHlwZTogJ0NsZWFyTWVzc2FnZScsXG4gICAgICAgIHBheWxvYWQ6IDxXc2p0eENsZWFyPnsgaWQ6IHRoaXMud3NqdHhJZCwgd2luZG93OiAxIH0sXG4gICAgICB9LFxuICAgIH07XG4gICAgdGhpcy5tZXNzYWdlcy50eE1lc3NhZ2UkLm5leHQod3NNc2cpO1xuICB9XG5cbiAgLyoqIFNlbmQgYSBjb21tYW5kIHRvIFdTSlQtWCB0byBjbGVhciB0aGUgQmFuZCBBY3Rpdml0eSBhbmQgUnggRnJlcXVlbmN5IHdpbmRvd3MuICovXG4gIHB1YmxpYyBjbGVhckFsbCgpIHtcbiAgICBjb25zdCB3c01zZyA9IHtcbiAgICAgIHdzanR4OiB7XG4gICAgICAgIHR5cGU6ICdDbGVhck1lc3NhZ2UnLFxuICAgICAgICBwYXlsb2FkOiA8V3NqdHhDbGVhcj57IGlkOiB0aGlzLndzanR4SWQsIHdpbmRvdzogMiB9LFxuICAgICAgfSxcbiAgICB9O1xuICAgIHRoaXMubWVzc2FnZXMudHhNZXNzYWdlJC5uZXh0KHdzTXNnKTtcbiAgfVxuXG4gIC8qKiBTZW5kIGEgY29tbWFuZCB0byBXU0pULVggdG8gcmVwbGF5IG1lc3NhZ2VzLiBVc2VmdWwgZm9yIGEgZnJlc2ggY2xpZW50IHRoYXQgd2FudHMgdG8gaGVhclxuICAgKiBwcmV2aW91cyBXU0pULVggZGVjb2Rlcy4gKi9cbiAgcHVibGljIHJlcGxheSgpIHtcbiAgICBjb25zdCB3c01zZyA9IHtcbiAgICAgIHdzanR4OiB7XG4gICAgICAgIHR5cGU6ICdSZXBsYXlNZXNzYWdlJyxcbiAgICAgICAgcGF5bG9hZDogPFdzanR4UmVwbGF5PnsgaWQ6IHRoaXMud3NqdHhJZCB9LFxuICAgICAgfSxcbiAgICB9O1xuICAgIHRoaXMubWVzc2FnZXMudHhNZXNzYWdlJC5uZXh0KHdzTXNnKTtcbiAgfVxuXG4gIC8qKiBTZW5kIGEgY29tbWFuZCB0byBXU0pULVggdG8gaGFsdCBhbnkgdHJhbnNtaXNzaW9ucyBpbW1lZGlhdGVseS4gKi9cbiAgcHVibGljIGhhbHRUeE5vdygpIHtcbiAgICBjb25zdCB3c01zZyA9IHtcbiAgICAgIHdzanR4OiB7XG4gICAgICAgIHR5cGU6ICdIYWx0VHhNZXNzYWdlJyxcbiAgICAgICAgcGF5bG9hZDogPFdzanR4SGFsdFR4PnsgaWQ6IHRoaXMud3NqdHhJZCwgYXV0b1R4T25seTogZmFsc2UgfSxcbiAgICAgIH0sXG4gICAgfTtcbiAgICB0aGlzLm1lc3NhZ2VzLnR4TWVzc2FnZSQubmV4dCh3c01zZyk7XG4gIH1cblxuICAvKiogU2VuZCBhIGNvbW1hbmQgdG8gV1NKVC1YIHRvIHN0b3AgYXV0by10cmFuc21pdHRpbmcgYWZ0ZXIgZmluaXNoaW5nIHRoZSBjdXJyZW50IHJvdW5kLiAqL1xuICBwdWJsaWMgaGFsdFR4QWZ0ZXJDdXJyZW50KCkge1xuICAgIGNvbnN0IHdzTXNnID0ge1xuICAgICAgd3NqdHg6IHtcbiAgICAgICAgdHlwZTogJ0hhbHRUeE1lc3NhZ2UnLFxuICAgICAgICBwYXlsb2FkOiA8V3NqdHhIYWx0VHg+eyBpZDogdGhpcy53c2p0eElkLCBhdXRvVHhPbmx5OiB0cnVlIH0sXG4gICAgICB9LFxuICAgIH07XG4gICAgdGhpcy5tZXNzYWdlcy50eE1lc3NhZ2UkLm5leHQod3NNc2cpO1xuICB9XG5cbiAgLyoqIFNlbmQgYSBjb21tYW5kIHRvIFdTSlQtWCB0byByZXBseSB0byB0aGUgZ2l2ZW4gZGVjb2RlLiBUaGUgbWVzc2FnZSBtdXN0IGluY2x1ZGUgQ1Egb3IgUVJaLiAqL1xuICBwdWJsaWMgcmVwbHkoZGVjb2RlOiBXc2p0eERlY29kZSkge1xuICAgIGNvbnN0IHdzTXNnID0ge1xuICAgICAgd3NqdHg6IHtcbiAgICAgICAgdHlwZTogJ1JlcGx5TWVzc2FnZScsXG4gICAgICAgIHBheWxvYWQ6IDxXc2p0eFJlcGx5PntcbiAgICAgICAgICBpZDogZGVjb2RlLmlkLFxuICAgICAgICAgIHRpbWU6IGRlY29kZS50aW1lLFxuICAgICAgICAgIHNucjogZGVjb2RlLnNucixcbiAgICAgICAgICBkZWx0YVRpbWU6IGRlY29kZS5kZWx0YVRpbWUsXG4gICAgICAgICAgZGVsdGFGcmVxdWVuY3k6IGRlY29kZS5kZWx0YUZyZXF1ZW5jeSxcbiAgICAgICAgICBtb2RlOiBkZWNvZGUubW9kZSxcbiAgICAgICAgICBtZXNzYWdlOiBkZWNvZGUubWVzc2FnZSxcbiAgICAgICAgICBsb3dDb25maWRlbmNlOiBkZWNvZGUubG93Q29uZmlkZW5jZSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfTtcbiAgICB0aGlzLm1lc3NhZ2VzLnR4TWVzc2FnZSQubmV4dCh3c01zZyk7XG4gIH1cblxuICAvKiogU2VuZCBhIGNvbW1hbmQgdG8gV1NKVC1YIHRvIHJlcGx5IHRvIHRoZSBnaXZlbiBkZWNvZGUuIFRoZSBtZXNzYWdlIG11c3QgaW5jbHVkZSBDUSBvciBRUlouICovXG4gIHB1YmxpYyBoaWdobGlnaHRDYWxsc2lnbihoaWdobGlnaHRNc2c6IFdzanR4SGlnaGxpZ2h0Q2FsbHNpZ24pIHtcbiAgICBoaWdobGlnaHRNc2cuaWQgPSB0aGlzLndzanR4SWQ7XG4gICAgY29uc3Qgd3NNc2cgPSB7XG4gICAgICB3c2p0eDoge1xuICAgICAgICB0eXBlOiAnSGlnaGxpZ2h0Q2FsbHNpZ25NZXNzYWdlJyxcbiAgICAgICAgcGF5bG9hZDogaGlnaGxpZ2h0TXNnLFxuICAgICAgfSxcbiAgICB9O1xuICAgIHRoaXMubWVzc2FnZXMudHhNZXNzYWdlJC5uZXh0KHdzTXNnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZW5kIGEgY29tbWFuZCB0byBXU0pULVggdG8gdHJhbnNtaXQgdGhlIGdpdmVuIGZyZWUgdGV4dC4gSWYgdGhlIHRleHQgaXMgdG9vIGxvbmcgdG8gYmVcbiAgICogZW5jb2RlZCBpbiBhIHNpbmdsZSBtZXNzYWdlLCBpdCBtYXkgYmUgc2lsZW50bHkgdHJ1bmNhdGVkLiAqL1xuICBwdWJsaWMgc2VuZEZyZWVUZXh0KGZyZWVUZXh0OiBXc2p0eEZyZWVUZXh0KSB7XG4gICAgZnJlZVRleHQuaWQgPSB0aGlzLndzanR4SWQ7XG4gICAgY29uc3Qgd3NNc2cgPSB7XG4gICAgICB3c2p0eDoge1xuICAgICAgICB0eXBlOiAnRnJlZVRleHRNZXNzYWdlJyxcbiAgICAgICAgcGF5bG9hZDogZnJlZVRleHQsXG4gICAgICB9LFxuICAgIH07XG4gICAgdGhpcy5tZXNzYWdlcy50eE1lc3NhZ2UkLm5leHQod3NNc2cpO1xuICB9XG5cbiAgLyoqIFNlbmQgYSBjb21tYW5kIHRvIFdTSlQtWCB0byBzZXQgdGhlIGxvY2FsIHN0YXRpb24ncyBNYWlkZW5oZWFkIGdyaWQuIFRoaXMgaXMgdGVtcG9yYXJ5LFxuICAgKiBsYXN0aW5nIG9ubHkgYXMgbG9uZyBhcyBXU0pULVggaXMgcnVubmluZy4gKi9cbiAgcHVibGljIHNldExvY2F0aW9uKGdyaWQ6IHN0cmluZykge1xuICAgIGNvbnN0IHdzTXNnID0ge1xuICAgICAgd3NqdHg6IHtcbiAgICAgICAgdHlwZTogJ0xvY2F0aW9uTWVzc2FnZScsXG4gICAgICAgIHBheWxvYWQ6IDxXc2p0eExvY2F0aW9uPntcbiAgICAgICAgICBpZDogdGhpcy53c2p0eElkLFxuICAgICAgICAgIGxvY2F0aW9uOiBncmlkLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9O1xuICAgIHRoaXMubWVzc2FnZXMudHhNZXNzYWdlJC5uZXh0KHdzTXNnKTtcbiAgfVxuXG4gIC8qKiBTZW5kIGEgY29tbWFuZCB0byBXU0pULVggdG8gc3dpdGNoIHRvIHRoZSBuYW1lZCBjb25maWd1cmF0aW9uLiAqL1xuICBwdWJsaWMgc3dpdGNoQ29uZmlndXJhdGlvbihjb25maWdOYW1lOiBzdHJpbmcpIHtcbiAgICBjb25zdCB3c01zZyA9IHtcbiAgICAgIHdzanR4OiB7XG4gICAgICAgIHR5cGU6ICdTd2l0Y2hDb25maWd1cmF0aW9uTWVzc2FnZScsXG4gICAgICAgIHBheWxvYWQ6IDxXc2p0eFN3aXRjaENvbmZpZ3VyYXRpb24+e1xuICAgICAgICAgIGlkOiB0aGlzLndzanR4SWQsXG4gICAgICAgICAgY29uZmlndXJhdGlvbk5hbWU6IGNvbmZpZ05hbWUsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH07XG4gICAgdGhpcy5tZXNzYWdlcy50eE1lc3NhZ2UkLm5leHQod3NNc2cpO1xuICB9XG5cbiAgLyoqIFNlbmQgYSBjb21tYW5kIHRvIFdTSlQtWCB0byBzZXQgdGhlIGdpdmVuIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVycy4gKi9cbiAgcHVibGljIGNvbmZpZ3VyZShjb25maWc6IFdzanR4Q29uZmlndXJlKSB7XG4gICAgY29uZmlnLmlkID0gdGhpcy53c2p0eElkO1xuICAgIGNvbnN0IHdzTXNnID0ge1xuICAgICAgd3NqdHg6IHtcbiAgICAgICAgdHlwZTogJ0NvbmZpZ3VyZU1lc3NhZ2UnLFxuICAgICAgICBwYXlsb2FkOiBjb25maWcsXG4gICAgICB9LFxuICAgIH07XG4gICAgdGhpcy5tZXNzYWdlcy50eE1lc3NhZ2UkLm5leHQod3NNc2cpO1xuICB9XG5cbiAgLyoqIEdpdmVuIGEgZGVjb2RlIG1lc3NhZ2UsIGZvcm1hdCBhIHN0cmluZyB0aGUgc2FtZSB3YXkgYXMgZGlzcGxheWVkIGluIHRoZSBXU0pULVggQmFuZFxuICAgKiBBY3Rpdml0eS9SeCBGcmVxdWVuY3kgd2luZG93cy4gKi9cbiAgcHVibGljIHN0YXRpYyBmb3JtYXREZWNvZGUobXNnOiBXc2p0eERlY29kZSk6IHN0cmluZyB7XG4gICAgY29uc3QgdGltZVN0ciA9IHRoaXMuZm9ybWF0VGltZShtc2cudGltZSk7XG4gICAgcmV0dXJuIGAke3RpbWVTdHJ9ICR7bXNnLnNuci50b1N0cmluZygpLnBhZFN0YXJ0KDMpfSAke21zZy5kZWx0YVRpbWVcbiAgICAgIC50b0ZpeGVkKDEpXG4gICAgICAucGFkU3RhcnQoNCl9ICR7bXNnLmRlbHRhRnJlcXVlbmN5LnRvU3RyaW5nKCkucGFkU3RhcnQoNCl9IH4gICR7XG4gICAgICBtc2cubWVzc2FnZVxuICAgIH1gO1xuICB9XG5cbiAgLyoqIEdpdmVuIGEgdGltZSBpbiBtaWxsaXNlY29uZHMgc2luY2UgbWlkbmlnaHQgVVRDLCBmb3JtYXQgYXMgSEhNTVNTLiAqL1xuICBwdWJsaWMgc3RhdGljIGZvcm1hdFRpbWUodGltZTogbnVtYmVyKSB7XG4gICAgY29uc3Qgc2Vjb25kc1NpbmNlTWlkbmlnaHQgPSBNYXRoLmZsb29yKHRpbWUgLyAxMDAwKTtcbiAgICBjb25zdCBob3VycyA9IE1hdGguZmxvb3Ioc2Vjb25kc1NpbmNlTWlkbmlnaHQgLyAzNjAwKTtcbiAgICBjb25zdCBzZWNvbmRzU2luY2VIb3VyID0gc2Vjb25kc1NpbmNlTWlkbmlnaHQgLSBob3VycyAqIDM2MDA7XG4gICAgY29uc3QgbWludXRlcyA9IE1hdGguZmxvb3Ioc2Vjb25kc1NpbmNlSG91ciAvIDYwKTtcbiAgICBjb25zdCBzZWNvbmRzID0gc2Vjb25kc1NpbmNlSG91ciAtIG1pbnV0ZXMgKiA2MDtcbiAgICByZXR1cm4gYCR7aG91cnMudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpfSR7bWludXRlc1xuICAgICAgLnRvU3RyaW5nKClcbiAgICAgIC5wYWRTdGFydCgyLCAnMCcpfSR7c2Vjb25kcy50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJyl9YDtcbiAgfVxufVxuIl19
@@ -9,10 +9,10 @@ class AgentMessageService {
9
9
  this.rxMessage$ = new Subject();
10
10
  this.txMessage$ = new Subject();
11
11
  }
12
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: AgentMessageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
13
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: AgentMessageService, providedIn: 'root' }); }
12
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: AgentMessageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
13
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: AgentMessageService, providedIn: 'root' }); }
14
14
  }
15
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: AgentMessageService, decorators: [{
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: AgentMessageService, decorators: [{
16
16
  type: Injectable,
17
17
  args: [{
18
18
  providedIn: 'root',
@@ -255,10 +255,10 @@ class WsjtxService {
255
255
  .toString()
256
256
  .padStart(2, '0')}${seconds.toString().padStart(2, '0')}`;
257
257
  }
258
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: WsjtxService, deps: [{ token: AgentMessageService }], target: i0.ɵɵFactoryTarget.Injectable }); }
259
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: WsjtxService, providedIn: 'root' }); }
258
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: WsjtxService, deps: [{ token: AgentMessageService }], target: i0.ɵɵFactoryTarget.Injectable }); }
259
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: WsjtxService, providedIn: 'root' }); }
260
260
  }
261
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: WsjtxService, decorators: [{
261
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: WsjtxService, decorators: [{
262
262
  type: Injectable,
263
263
  args: [{
264
264
  providedIn: 'root',
@@ -298,10 +298,10 @@ class HamlibService {
298
298
  return;
299
299
  }
300
300
  }
301
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: HamlibService, deps: [{ token: AgentMessageService }], target: i0.ɵɵFactoryTarget.Injectable }); }
302
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: HamlibService, providedIn: 'root' }); }
301
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: HamlibService, deps: [{ token: AgentMessageService }], target: i0.ɵɵFactoryTarget.Injectable }); }
302
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: HamlibService, providedIn: 'root' }); }
303
303
  }
304
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: HamlibService, decorators: [{
304
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: HamlibService, decorators: [{
305
305
  type: Injectable,
306
306
  args: [{
307
307
  providedIn: 'root',
@@ -468,10 +468,10 @@ class AgentService {
468
468
  static formatDecode(msg) {
469
469
  return WsjtxService.formatDecode(msg);
470
470
  }
471
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: AgentService, deps: [{ token: AgentMessageService }, { token: HamlibService }, { token: WsjtxService }], target: i0.ɵɵFactoryTarget.Injectable }); }
472
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: AgentService, providedIn: 'root' }); }
471
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: AgentService, deps: [{ token: AgentMessageService }, { token: HamlibService }, { token: WsjtxService }], target: i0.ɵɵFactoryTarget.Injectable }); }
472
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: AgentService, providedIn: 'root' }); }
473
473
  }
474
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: AgentService, decorators: [{
474
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: AgentService, decorators: [{
475
475
  type: Injectable,
476
476
  args: [{
477
477
  providedIn: 'root',
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-kel-agent.mjs","sources":["../../../projects/ngx-kel-agent/src/lib/agent-message.service.ts","../../../projects/ngx-kel-agent/src/lib/wsjtx.service.ts","../../../projects/ngx-kel-agent/src/lib/hamlib.service.ts","../../../projects/ngx-kel-agent/src/lib/agent.service.ts","../../../projects/ngx-kel-agent/src/public-api.ts","../../../projects/ngx-kel-agent/src/ngx-kel-agent.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AgentMessageService {\n rxMessage$ = new Subject<any>();\n txMessage$ = new Subject<any>();\n\n constructor() {}\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, ReplaySubject, Subject } from 'rxjs';\nimport {\n WsjtxClear,\n WsjtxClose,\n WsjtxConfigure,\n WsjtxDecode,\n WsjtxFreeText,\n WsjtxHaltTx,\n WsjtxHeartbeat,\n WsjtxHighlightCallsign,\n WsjtxLocation,\n WsjtxLoggedAdif,\n WsjtxQsoLogged,\n WsjtxReplay,\n WsjtxReply,\n WsjtxStatus,\n WsjtxSwitchConfiguration,\n WsjtxWsprDecode,\n} from './wsjtx-messages';\nimport { debounceTime } from 'rxjs/operators';\nimport { AgentMessageService } from './agent-message.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class WsjtxService {\n /** Whether we're getting any messages from WSJT-X. */\n public readonly connected$ = new BehaviorSubject<boolean>(false);\n /** Subject for listening to WSJT-X \"Heartbeat\" messages. */\n public readonly heartbeat$ = new ReplaySubject<WsjtxHeartbeat | null>(1);\n /** Subject for listening to WSJT-X \"Status\" messages. */\n public readonly status$ = new ReplaySubject<WsjtxStatus | null>(1);\n /** Subject for listening to WSJT-X \"Decode\" messages. */\n public readonly decode$ = new Subject<WsjtxDecode>();\n /** Subject for listening to WSJT-X \"Clear\" messages. */\n public readonly clear$ = new Subject<WsjtxClear>();\n /** Subject for listening to WSJT-X \"QsoLogged\" messages. */\n public readonly qsoLogged$ = new Subject<WsjtxQsoLogged>();\n /** Subject for listening to WSJT-X \"Close\" messages. */\n public readonly close$ = new Subject<WsjtxClose>();\n /** Subject for listening to WSJT-X \"WsprDecode\" messages. */\n public readonly wsprDecode$ = new Subject<WsjtxWsprDecode>();\n /** Subject for listening to WSJT-X \"LoggedAdif\" messages. */\n public readonly loggedAdif$ = new Subject<WsjtxLoggedAdif>();\n\n private wsjtxId: string = 'WSJT-X';\n\n constructor(private messages: AgentMessageService) {\n this.setupBehaviors();\n }\n\n private setupBehaviors(): void {\n this.messages.rxMessage$.subscribe((msg) => this.handleMessage(msg));\n // if we haven't heard from WSJT-X in 15 seconds, consider it \"down\"\n this.connected$\n .pipe(debounceTime(15000))\n .subscribe(() => this.connected$.next(false));\n // When WSJT-X announces it's closing, set it to \"down\" immediately\n this.close$.subscribe(() => {\n this.connected$.next(false);\n });\n // When WSJT-X goes down, clear its persistent message subjects\n this.connected$.subscribe((isUp) => {\n if (!isUp) {\n this.heartbeat$.next(null);\n this.status$.next(null);\n }\n });\n }\n\n private handleMessage(msg: any): void {\n if (!msg.wsjtx || !msg.wsjtx.type) {\n return;\n }\n this.connected$.next(true);\n this.wsjtxId = msg.wsjtx.payload.id;\n switch (msg.wsjtx.type) {\n case 'HeartbeatMessage':\n this.heartbeat$.next(msg.wsjtx.payload as WsjtxHeartbeat);\n return;\n case 'StatusMessage':\n this.status$.next(msg.wsjtx.payload as WsjtxStatus);\n return;\n case 'DecodeMessage':\n this.decode$.next(msg.wsjtx.payload as WsjtxDecode);\n return;\n case 'ClearMessage':\n this.clear$.next(msg.wsjtx.payload as WsjtxClear);\n return;\n case 'QsoLoggedMessage':\n this.qsoLogged$.next(msg.wsjtx.payload as WsjtxQsoLogged);\n return;\n case 'CloseMessage':\n this.close$.next(msg.wsjtx.payload as WsjtxClose);\n return;\n case 'WSPRDecodeMessage':\n this.wsprDecode$.next(msg.wsjtx.payload as WsjtxWsprDecode);\n return;\n case 'LoggedAdifMessage':\n this.loggedAdif$.next(msg.wsjtx.payload as WsjtxLoggedAdif);\n return;\n }\n }\n\n /** Send a command to WSJT-X to clear the Band Activity window. */\n public clearBandActivity() {\n const wsMsg = {\n wsjtx: {\n type: 'ClearMessage',\n payload: <WsjtxClear>{ id: this.wsjtxId, window: 0 },\n },\n };\n this.messages.txMessage$.next(wsMsg);\n }\n\n /** Send a command to WSJT-X to clear the Rx Frequency window. */\n public clearRxFreqWindow() {\n const wsMsg = {\n wsjtx: {\n type: 'ClearMessage',\n payload: <WsjtxClear>{ id: this.wsjtxId, window: 1 },\n },\n };\n this.messages.txMessage$.next(wsMsg);\n }\n\n /** Send a command to WSJT-X to clear the Band Activity and Rx Frequency windows. */\n public clearAll() {\n const wsMsg = {\n wsjtx: {\n type: 'ClearMessage',\n payload: <WsjtxClear>{ id: this.wsjtxId, window: 2 },\n },\n };\n this.messages.txMessage$.next(wsMsg);\n }\n\n /** Send a command to WSJT-X to replay messages. Useful for a fresh client that wants to hear\n * previous WSJT-X decodes. */\n public replay() {\n const wsMsg = {\n wsjtx: {\n type: 'ReplayMessage',\n payload: <WsjtxReplay>{ id: this.wsjtxId },\n },\n };\n this.messages.txMessage$.next(wsMsg);\n }\n\n /** Send a command to WSJT-X to halt any transmissions immediately. */\n public haltTxNow() {\n const wsMsg = {\n wsjtx: {\n type: 'HaltTxMessage',\n payload: <WsjtxHaltTx>{ id: this.wsjtxId, autoTxOnly: false },\n },\n };\n this.messages.txMessage$.next(wsMsg);\n }\n\n /** Send a command to WSJT-X to stop auto-transmitting after finishing the current round. */\n public haltTxAfterCurrent() {\n const wsMsg = {\n wsjtx: {\n type: 'HaltTxMessage',\n payload: <WsjtxHaltTx>{ id: this.wsjtxId, autoTxOnly: true },\n },\n };\n this.messages.txMessage$.next(wsMsg);\n }\n\n /** Send a command to WSJT-X to reply to the given decode. The message must include CQ or QRZ. */\n public reply(decode: WsjtxDecode) {\n const wsMsg = {\n wsjtx: {\n type: 'ReplyMessage',\n payload: <WsjtxReply>{\n id: decode.id,\n time: decode.time,\n snr: decode.snr,\n deltaTime: decode.deltaTime,\n deltaFrequency: decode.deltaFrequency,\n mode: decode.mode,\n message: decode.message,\n lowConfidence: decode.lowConfidence,\n },\n },\n };\n this.messages.txMessage$.next(wsMsg);\n }\n\n /** Send a command to WSJT-X to reply to the given decode. The message must include CQ or QRZ. */\n public highlightCallsign(highlightMsg: WsjtxHighlightCallsign) {\n highlightMsg.id = this.wsjtxId;\n const wsMsg = {\n wsjtx: {\n type: 'HighlightCallsignMessage',\n payload: highlightMsg,\n },\n };\n this.messages.txMessage$.next(wsMsg);\n }\n\n /**\n * Send a command to WSJT-X to transmit the given free text. If the text is too long to be\n * encoded in a single message, it may be silently truncated. */\n public sendFreeText(freeText: WsjtxFreeText) {\n freeText.id = this.wsjtxId;\n const wsMsg = {\n wsjtx: {\n type: 'FreeTextMessage',\n payload: freeText,\n },\n };\n this.messages.txMessage$.next(wsMsg);\n }\n\n /** Send a command to WSJT-X to set the local station's Maidenhead grid. This is temporary,\n * lasting only as long as WSJT-X is running. */\n public setLocation(grid: string) {\n const wsMsg = {\n wsjtx: {\n type: 'LocationMessage',\n payload: <WsjtxLocation>{\n id: this.wsjtxId,\n location: grid,\n },\n },\n };\n this.messages.txMessage$.next(wsMsg);\n }\n\n /** Send a command to WSJT-X to switch to the named configuration. */\n public switchConfiguration(configName: string) {\n const wsMsg = {\n wsjtx: {\n type: 'SwitchConfigurationMessage',\n payload: <WsjtxSwitchConfiguration>{\n id: this.wsjtxId,\n configurationName: configName,\n },\n },\n };\n this.messages.txMessage$.next(wsMsg);\n }\n\n /** Send a command to WSJT-X to set the given configuration parameters. */\n public configure(config: WsjtxConfigure) {\n config.id = this.wsjtxId;\n const wsMsg = {\n wsjtx: {\n type: 'ConfigureMessage',\n payload: config,\n },\n };\n this.messages.txMessage$.next(wsMsg);\n }\n\n /** Given a decode message, format a string the same way as displayed in the WSJT-X Band\n * Activity/Rx Frequency windows. */\n public static formatDecode(msg: WsjtxDecode): string {\n const timeStr = this.formatTime(msg.time);\n return `${timeStr} ${msg.snr.toString().padStart(3)} ${msg.deltaTime\n .toFixed(1)\n .padStart(4)} ${msg.deltaFrequency.toString().padStart(4)} ~ ${\n msg.message\n }`;\n }\n\n /** Given a time in milliseconds since midnight UTC, format as HHMMSS. */\n public static formatTime(time: number) {\n const secondsSinceMidnight = Math.floor(time / 1000);\n const hours = Math.floor(secondsSinceMidnight / 3600);\n const secondsSinceHour = secondsSinceMidnight - hours * 3600;\n const minutes = Math.floor(secondsSinceHour / 60);\n const seconds = secondsSinceHour - minutes * 60;\n return `${hours.toString().padStart(2, '0')}${minutes\n .toString()\n .padStart(2, '0')}${seconds.toString().padStart(2, '0')}`;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { HamlibRigState } from './hamlib-messages';\nimport { debounceTime } from 'rxjs/operators';\nimport { AgentMessageService } from './agent-message.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class HamlibService {\n /** Whether we're getting any messages from Hamlib. */\n public readonly connected$ = new BehaviorSubject<boolean>(false);\n /** Subject for listening to Hamlib \"RigState\" messages. */\n public readonly rigState$ = new BehaviorSubject<HamlibRigState | null>(null);\n\n constructor(private messages: AgentMessageService) {\n this.setupBehaviors();\n }\n\n setupBehaviors(): void {\n this.messages.rxMessage$.subscribe((msg) => this.handleMessage(msg));\n // if we haven't heard from Hamlib in 15 seconds, consider it down\n this.connected$.pipe(debounceTime(15000)).subscribe(() => {\n this.connected$.next(false);\n });\n // When Hamlib goes down, clear its persistent message subjects\n this.connected$.subscribe((isUp) => {\n if (!isUp) {\n this.rigState$.next(null);\n }\n });\n }\n\n private handleMessage(msg: any): void {\n if (!msg.hamlib || !msg.hamlib.type) {\n return;\n }\n this.connected$.next(true);\n switch (msg.hamlib.type) {\n case 'RigState':\n this.rigState$.next(msg.hamlib.payload as HamlibRigState);\n return;\n }\n }\n}\n","import { AgentMessageService } from './agent-message.service';\nimport { BehaviorSubject, ReplaySubject, Subject, Subscription } from 'rxjs';\nimport { HamlibRigState } from './hamlib-messages';\nimport { HamlibService } from './hamlib.service';\nimport { Injectable } from '@angular/core';\nimport {\n WsjtxClear,\n WsjtxClose,\n WsjtxDecode,\n WsjtxHeartbeat,\n WsjtxHighlightCallsign,\n WsjtxLoggedAdif,\n WsjtxQsoLogged,\n WsjtxStatus,\n WsjtxWsprDecode,\n} from './wsjtx-messages';\nimport { WsjtxService } from './wsjtx.service';\nimport { delay, retryWhen, tap } from 'rxjs/operators';\nimport { webSocket, WebSocketSubject } from 'rxjs/webSocket';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AgentService {\n /** Whether we're connected to the agent. */\n public readonly connectedState$ = new BehaviorSubject<boolean>(false);\n\n /* WSJT-X */\n /**\n * Whether we're getting any messages from WSJT-X.\n *\n * @deprecated Use {@link WsjtxService.connected$} instead.\n */\n public readonly wsjtxState$: BehaviorSubject<boolean>;\n /**\n * Subject for listening to WSJT-X \"Heartbeat\" messages.\n *\n * @deprecated Use {@link WsjtxService.heartbeat$} instead.\n */\n public readonly wsjtxHeartbeat$: ReplaySubject<WsjtxHeartbeat | null>;\n /**\n * Subject for listening to WSJT-X \"Status\" messages.\n *\n * @deprecated Use {@link WsjtxService.status$} instead.\n */\n public readonly wsjtxStatus$: ReplaySubject<WsjtxStatus | null>;\n /**\n * Subject for listening to WSJT-X \"Decode\" messages.\n *\n * @deprecated Use {@link WsjtxService.decode$} instead.\n */\n public readonly wsjtxDecode$: Subject<WsjtxDecode>;\n /**\n * Subject for listening to WSJT-X \"Clear\" messages.\n *\n * @deprecated Use {@link WsjtxService.clear$} instead.\n */\n public readonly wsjtxClear$: Subject<WsjtxClear>;\n /**\n * Subject for listening to WSJT-X \"QsoLogged\" messages.\n *\n * @deprecated Use {@link WsjtxService.qsoLogged$} instead.\n */\n public readonly wsjtxQsoLogged$: Subject<WsjtxQsoLogged>;\n /**\n * Subject for listening to WSJT-X \"Close\" messages.\n *\n * @deprecated Use {@link WsjtxService.close$} instead.\n */\n public readonly wsjtxClose$: Subject<WsjtxClose>;\n /**\n * Subject for listening to WSJT-X \"WsprDecode\" messages.\n *\n * @deprecated Use {@link WsjtxService.wsprDecode$} instead.\n */\n public readonly wsjtxWsprDecode$: Subject<WsjtxWsprDecode>;\n /**\n * Subject for listening to WSJT-X \"LoggedAdif\" messages.\n *\n * @deprecated Use {@link WsjtxService.loggedAdif$} instead.\n */\n public readonly wsjtxLoggedAdif$: Subject<WsjtxLoggedAdif>;\n\n /* Hamlib */\n /**\n * Whether we're getting any messages from Hamlib.\n *\n * @deprecated Use {@link HamlibService.connected$} instead.\n */\n public readonly hamlibState$: BehaviorSubject<boolean>;\n /**\n * Subject for listening to Hamlib \"RigState\" messages.\n *\n * @deprecated Use {@link HamlibService.rigState$} instead.\n */\n public readonly hamlibRigState$: BehaviorSubject<HamlibRigState | null>;\n\n private readonly defaultAgentHost = 'localhost';\n private readonly defaultAgentPort = 8081;\n private readonly localStorageHostKey = 'agent-host';\n private readonly localStoragePortKey = 'agent-port';\n\n private agentHost: string = this.defaultAgentHost;\n private agentPort: number = this.defaultAgentPort;\n private agentWebSocketSubject: WebSocketSubject<object> | null = null;\n private agentWebsocketSubscription: Subscription | null = null;\n\n constructor(\n private messages: AgentMessageService,\n private hamlibService: HamlibService,\n private wsjtxService: WsjtxService\n ) {\n this.hamlibState$ = this.hamlibService.connected$;\n this.hamlibRigState$ = this.hamlibService.rigState$;\n\n this.wsjtxState$ = this.wsjtxService.connected$;\n this.wsjtxHeartbeat$ = this.wsjtxService.heartbeat$;\n this.wsjtxStatus$ = this.wsjtxService.status$;\n this.wsjtxDecode$ = this.wsjtxService.decode$;\n this.wsjtxClear$ = this.wsjtxService.clear$;\n this.wsjtxQsoLogged$ = this.wsjtxService.qsoLogged$;\n this.wsjtxClose$ = this.wsjtxService.close$;\n this.wsjtxWsprDecode$ = this.wsjtxService.wsprDecode$;\n this.wsjtxLoggedAdif$ = this.wsjtxService.loggedAdif$;\n }\n\n public init(): void {\n this.messages.txMessage$.subscribe((msg) => this.send(msg));\n this.agentHost = this.getHost();\n this.agentPort = this.getPort();\n this.connect();\n }\n\n /** Connect (or reconnect) the websocket to the kel-agent server. */\n public connect(): void {\n if (this.agentWebsocketSubscription) {\n this.agentWebsocketSubscription.unsubscribe();\n }\n this.agentHost = this.getHost();\n this.agentPort = this.getPort();\n const protocol = this.agentHost === 'localhost' ? 'ws://' : 'wss://';\n this.agentWebSocketSubject = webSocket<object>({\n url: protocol + this.agentHost + ':' + this.agentPort + '/websocket',\n });\n this.connectedState$.next(true);\n this.agentWebsocketSubscription = this.agentWebSocketSubject\n .pipe(\n retryWhen((errors) =>\n // retry the websocket connection after 10 seconds\n errors.pipe(\n tap(() => this.connectedState$.next(false)),\n delay(10000)\n )\n )\n )\n .subscribe({\n next: (msg) => {\n this.connectedState$.next(true);\n this.messages.rxMessage$.next(msg);\n },\n error: () => this.connectedState$.next(false),\n complete: () => this.connectedState$.next(false),\n });\n }\n\n /** Get the currently configured kel-agent host. */\n public getHost(): string {\n return (\n localStorage.getItem(this.localStorageHostKey) || this.defaultAgentHost\n );\n }\n\n /** Get the currently configured kel-agent port. */\n public getPort(): number {\n let portStr = localStorage.getItem(this.localStoragePortKey);\n if (portStr == null) {\n return this.defaultAgentPort;\n }\n let portNum = parseInt(portStr, 10);\n if (isNaN(portNum)) {\n return this.defaultAgentPort;\n }\n return portNum;\n }\n\n /** Set the kel-agent host. */\n public setHost(host: string): void {\n localStorage.setItem(this.localStorageHostKey, host);\n this.connect();\n }\n\n /** Set the kel-agent port. */\n public setPort(port: number): void {\n localStorage.setItem(this.localStoragePortKey, String(port));\n this.connect();\n }\n\n private send(wsMsg: any) {\n this.agentWebSocketSubject?.next(wsMsg);\n }\n\n /**\n * Send a command to WSJT-X to clear the Band Activity window.\n *\n * @deprecated Use {@link WsjtxService.clearBandActivity} instead.\n */\n public sendWsjtxClearBandActivity() {\n this.wsjtxService.clearBandActivity();\n }\n\n /**\n * Send a command to WSJT-X to clear the Rx Frequency window.\n *\n * @deprecated Use {@link WsjtxService.clearRxFreqWindow} instead.\n */\n public sendWsjtxClearRxFreqWindow() {\n this.wsjtxService.clearRxFreqWindow();\n }\n\n /**\n * Send a command to WSJT-X to clear the Band Activity and Rx Frequency windows.\n *\n * @deprecated Use {@link WsjtxService.clearAll} instead.\n */\n public sendWsjtxClearAll() {\n this.wsjtxService.clearAll();\n }\n\n /**\n * Send a command to WSJT-X to replay messages. Useful for a fresh client that wants to hear\n * previous WSJT-X decodes.\n *\n * @deprecated Use {@link WsjtxService.replay} instead.\n */\n public sendWsjtxReplay() {\n this.wsjtxService.replay();\n }\n\n /**\n * Send a command to WSJT-X to halt any transmissions immediately.\n *\n * @deprecated Use {@link WsjtxService.haltTxNow} instead.\n */\n public sendWsjtxHaltTxNow() {\n this.wsjtxService.haltTxNow();\n }\n\n /** Send a command to WSJT-X to stop auto-transmitting after finishing the current round.\n *\n * @deprecated Use {@link WsjtxService.haltTxAfterCurrent} instead.\n */\n public sendWsjtxHaltTxAfterCurrent() {\n this.wsjtxService.haltTxAfterCurrent();\n }\n\n /**\n * Send a command to WSJT-X to reply to the given decode. The message must include CQ or QRZ.\n *\n * @deprecated Use {@link WsjtxService.reply} instead.\n */\n public sendWsjtxReply(decode: WsjtxDecode) {\n this.wsjtxService.reply(decode);\n }\n\n /**\n * Send a command to WSJT-X to reply to the given decode. The message must include CQ or QRZ.\n *\n * @deprecated Use {@link WsjtxService.highlightCallsign} instead.\n */\n public sendWsjtxHighlightCallsign(highlightMsg: WsjtxHighlightCallsign) {\n this.wsjtxService.highlightCallsign(highlightMsg);\n }\n\n /**\n * Given a decode message, format a string the same way as displayed in the WSJT-X Band\n * Activity/Rx Frequency windows.\n *\n * @deprecated Use {@link WsjtxService.formatDecode} instead.\n */\n public static formatDecode(msg: WsjtxDecode): string {\n return WsjtxService.formatDecode(msg);\n }\n}\n","/*\n * Public API Surface of ngx-kel-agent\n */\n\nexport * from './lib/agent.service';\nexport * from './lib/agent-message.service';\nexport * from './lib/hamlib-messages';\nexport * from './lib/hamlib.service';\nexport * from './lib/wsjtx-messages';\nexport * from './lib/wsjtx.service';\n// export * from './lib/ngx-kel-agent.component';\n// export * from './lib/ngx-kel-agent.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.AgentMessageService","i2.HamlibService","i3.WsjtxService"],"mappings":"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"}
1
+ {"version":3,"file":"ngx-kel-agent.mjs","sources":["../../../projects/ngx-kel-agent/src/lib/agent-message.service.ts","../../../projects/ngx-kel-agent/src/lib/wsjtx.service.ts","../../../projects/ngx-kel-agent/src/lib/hamlib.service.ts","../../../projects/ngx-kel-agent/src/lib/agent.service.ts","../../../projects/ngx-kel-agent/src/public-api.ts","../../../projects/ngx-kel-agent/src/ngx-kel-agent.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AgentMessageService {\n rxMessage$ = new Subject<any>();\n txMessage$ = new Subject<any>();\n\n constructor() {}\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, ReplaySubject, Subject } from 'rxjs';\nimport {\n WsjtxClear,\n WsjtxClose,\n WsjtxConfigure,\n WsjtxDecode,\n WsjtxFreeText,\n WsjtxHaltTx,\n WsjtxHeartbeat,\n WsjtxHighlightCallsign,\n WsjtxLocation,\n WsjtxLoggedAdif,\n WsjtxQsoLogged,\n WsjtxReplay,\n WsjtxReply,\n WsjtxStatus,\n WsjtxSwitchConfiguration,\n WsjtxWsprDecode,\n} from './wsjtx-messages';\nimport { debounceTime } from 'rxjs/operators';\nimport { AgentMessageService } from './agent-message.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class WsjtxService {\n /** Whether we're getting any messages from WSJT-X. */\n public readonly connected$ = new BehaviorSubject<boolean>(false);\n /** Subject for listening to WSJT-X \"Heartbeat\" messages. */\n public readonly heartbeat$ = new ReplaySubject<WsjtxHeartbeat | null>(1);\n /** Subject for listening to WSJT-X \"Status\" messages. */\n public readonly status$ = new ReplaySubject<WsjtxStatus | null>(1);\n /** Subject for listening to WSJT-X \"Decode\" messages. */\n public readonly decode$ = new Subject<WsjtxDecode>();\n /** Subject for listening to WSJT-X \"Clear\" messages. */\n public readonly clear$ = new Subject<WsjtxClear>();\n /** Subject for listening to WSJT-X \"QsoLogged\" messages. */\n public readonly qsoLogged$ = new Subject<WsjtxQsoLogged>();\n /** Subject for listening to WSJT-X \"Close\" messages. */\n public readonly close$ = new Subject<WsjtxClose>();\n /** Subject for listening to WSJT-X \"WsprDecode\" messages. */\n public readonly wsprDecode$ = new Subject<WsjtxWsprDecode>();\n /** Subject for listening to WSJT-X \"LoggedAdif\" messages. */\n public readonly loggedAdif$ = new Subject<WsjtxLoggedAdif>();\n\n private wsjtxId: string = 'WSJT-X';\n\n constructor(private messages: AgentMessageService) {\n this.setupBehaviors();\n }\n\n private setupBehaviors(): void {\n this.messages.rxMessage$.subscribe((msg) => this.handleMessage(msg));\n // if we haven't heard from WSJT-X in 15 seconds, consider it \"down\"\n this.connected$\n .pipe(debounceTime(15000))\n .subscribe(() => this.connected$.next(false));\n // When WSJT-X announces it's closing, set it to \"down\" immediately\n this.close$.subscribe(() => {\n this.connected$.next(false);\n });\n // When WSJT-X goes down, clear its persistent message subjects\n this.connected$.subscribe((isUp) => {\n if (!isUp) {\n this.heartbeat$.next(null);\n this.status$.next(null);\n }\n });\n }\n\n private handleMessage(msg: any): void {\n if (!msg.wsjtx || !msg.wsjtx.type) {\n return;\n }\n this.connected$.next(true);\n this.wsjtxId = msg.wsjtx.payload.id;\n switch (msg.wsjtx.type) {\n case 'HeartbeatMessage':\n this.heartbeat$.next(msg.wsjtx.payload as WsjtxHeartbeat);\n return;\n case 'StatusMessage':\n this.status$.next(msg.wsjtx.payload as WsjtxStatus);\n return;\n case 'DecodeMessage':\n this.decode$.next(msg.wsjtx.payload as WsjtxDecode);\n return;\n case 'ClearMessage':\n this.clear$.next(msg.wsjtx.payload as WsjtxClear);\n return;\n case 'QsoLoggedMessage':\n this.qsoLogged$.next(msg.wsjtx.payload as WsjtxQsoLogged);\n return;\n case 'CloseMessage':\n this.close$.next(msg.wsjtx.payload as WsjtxClose);\n return;\n case 'WSPRDecodeMessage':\n this.wsprDecode$.next(msg.wsjtx.payload as WsjtxWsprDecode);\n return;\n case 'LoggedAdifMessage':\n this.loggedAdif$.next(msg.wsjtx.payload as WsjtxLoggedAdif);\n return;\n }\n }\n\n /** Send a command to WSJT-X to clear the Band Activity window. */\n public clearBandActivity() {\n const wsMsg = {\n wsjtx: {\n type: 'ClearMessage',\n payload: <WsjtxClear>{ id: this.wsjtxId, window: 0 },\n },\n };\n this.messages.txMessage$.next(wsMsg);\n }\n\n /** Send a command to WSJT-X to clear the Rx Frequency window. */\n public clearRxFreqWindow() {\n const wsMsg = {\n wsjtx: {\n type: 'ClearMessage',\n payload: <WsjtxClear>{ id: this.wsjtxId, window: 1 },\n },\n };\n this.messages.txMessage$.next(wsMsg);\n }\n\n /** Send a command to WSJT-X to clear the Band Activity and Rx Frequency windows. */\n public clearAll() {\n const wsMsg = {\n wsjtx: {\n type: 'ClearMessage',\n payload: <WsjtxClear>{ id: this.wsjtxId, window: 2 },\n },\n };\n this.messages.txMessage$.next(wsMsg);\n }\n\n /** Send a command to WSJT-X to replay messages. Useful for a fresh client that wants to hear\n * previous WSJT-X decodes. */\n public replay() {\n const wsMsg = {\n wsjtx: {\n type: 'ReplayMessage',\n payload: <WsjtxReplay>{ id: this.wsjtxId },\n },\n };\n this.messages.txMessage$.next(wsMsg);\n }\n\n /** Send a command to WSJT-X to halt any transmissions immediately. */\n public haltTxNow() {\n const wsMsg = {\n wsjtx: {\n type: 'HaltTxMessage',\n payload: <WsjtxHaltTx>{ id: this.wsjtxId, autoTxOnly: false },\n },\n };\n this.messages.txMessage$.next(wsMsg);\n }\n\n /** Send a command to WSJT-X to stop auto-transmitting after finishing the current round. */\n public haltTxAfterCurrent() {\n const wsMsg = {\n wsjtx: {\n type: 'HaltTxMessage',\n payload: <WsjtxHaltTx>{ id: this.wsjtxId, autoTxOnly: true },\n },\n };\n this.messages.txMessage$.next(wsMsg);\n }\n\n /** Send a command to WSJT-X to reply to the given decode. The message must include CQ or QRZ. */\n public reply(decode: WsjtxDecode) {\n const wsMsg = {\n wsjtx: {\n type: 'ReplyMessage',\n payload: <WsjtxReply>{\n id: decode.id,\n time: decode.time,\n snr: decode.snr,\n deltaTime: decode.deltaTime,\n deltaFrequency: decode.deltaFrequency,\n mode: decode.mode,\n message: decode.message,\n lowConfidence: decode.lowConfidence,\n },\n },\n };\n this.messages.txMessage$.next(wsMsg);\n }\n\n /** Send a command to WSJT-X to reply to the given decode. The message must include CQ or QRZ. */\n public highlightCallsign(highlightMsg: WsjtxHighlightCallsign) {\n highlightMsg.id = this.wsjtxId;\n const wsMsg = {\n wsjtx: {\n type: 'HighlightCallsignMessage',\n payload: highlightMsg,\n },\n };\n this.messages.txMessage$.next(wsMsg);\n }\n\n /**\n * Send a command to WSJT-X to transmit the given free text. If the text is too long to be\n * encoded in a single message, it may be silently truncated. */\n public sendFreeText(freeText: WsjtxFreeText) {\n freeText.id = this.wsjtxId;\n const wsMsg = {\n wsjtx: {\n type: 'FreeTextMessage',\n payload: freeText,\n },\n };\n this.messages.txMessage$.next(wsMsg);\n }\n\n /** Send a command to WSJT-X to set the local station's Maidenhead grid. This is temporary,\n * lasting only as long as WSJT-X is running. */\n public setLocation(grid: string) {\n const wsMsg = {\n wsjtx: {\n type: 'LocationMessage',\n payload: <WsjtxLocation>{\n id: this.wsjtxId,\n location: grid,\n },\n },\n };\n this.messages.txMessage$.next(wsMsg);\n }\n\n /** Send a command to WSJT-X to switch to the named configuration. */\n public switchConfiguration(configName: string) {\n const wsMsg = {\n wsjtx: {\n type: 'SwitchConfigurationMessage',\n payload: <WsjtxSwitchConfiguration>{\n id: this.wsjtxId,\n configurationName: configName,\n },\n },\n };\n this.messages.txMessage$.next(wsMsg);\n }\n\n /** Send a command to WSJT-X to set the given configuration parameters. */\n public configure(config: WsjtxConfigure) {\n config.id = this.wsjtxId;\n const wsMsg = {\n wsjtx: {\n type: 'ConfigureMessage',\n payload: config,\n },\n };\n this.messages.txMessage$.next(wsMsg);\n }\n\n /** Given a decode message, format a string the same way as displayed in the WSJT-X Band\n * Activity/Rx Frequency windows. */\n public static formatDecode(msg: WsjtxDecode): string {\n const timeStr = this.formatTime(msg.time);\n return `${timeStr} ${msg.snr.toString().padStart(3)} ${msg.deltaTime\n .toFixed(1)\n .padStart(4)} ${msg.deltaFrequency.toString().padStart(4)} ~ ${\n msg.message\n }`;\n }\n\n /** Given a time in milliseconds since midnight UTC, format as HHMMSS. */\n public static formatTime(time: number) {\n const secondsSinceMidnight = Math.floor(time / 1000);\n const hours = Math.floor(secondsSinceMidnight / 3600);\n const secondsSinceHour = secondsSinceMidnight - hours * 3600;\n const minutes = Math.floor(secondsSinceHour / 60);\n const seconds = secondsSinceHour - minutes * 60;\n return `${hours.toString().padStart(2, '0')}${minutes\n .toString()\n .padStart(2, '0')}${seconds.toString().padStart(2, '0')}`;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { HamlibRigState } from './hamlib-messages';\nimport { debounceTime } from 'rxjs/operators';\nimport { AgentMessageService } from './agent-message.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class HamlibService {\n /** Whether we're getting any messages from Hamlib. */\n public readonly connected$ = new BehaviorSubject<boolean>(false);\n /** Subject for listening to Hamlib \"RigState\" messages. */\n public readonly rigState$ = new BehaviorSubject<HamlibRigState | null>(null);\n\n constructor(private messages: AgentMessageService) {\n this.setupBehaviors();\n }\n\n setupBehaviors(): void {\n this.messages.rxMessage$.subscribe((msg) => this.handleMessage(msg));\n // if we haven't heard from Hamlib in 15 seconds, consider it down\n this.connected$.pipe(debounceTime(15000)).subscribe(() => {\n this.connected$.next(false);\n });\n // When Hamlib goes down, clear its persistent message subjects\n this.connected$.subscribe((isUp) => {\n if (!isUp) {\n this.rigState$.next(null);\n }\n });\n }\n\n private handleMessage(msg: any): void {\n if (!msg.hamlib || !msg.hamlib.type) {\n return;\n }\n this.connected$.next(true);\n switch (msg.hamlib.type) {\n case 'RigState':\n this.rigState$.next(msg.hamlib.payload as HamlibRigState);\n return;\n }\n }\n}\n","import { AgentMessageService } from './agent-message.service';\nimport { BehaviorSubject, ReplaySubject, Subject, Subscription } from 'rxjs';\nimport { HamlibRigState } from './hamlib-messages';\nimport { HamlibService } from './hamlib.service';\nimport { Injectable } from '@angular/core';\nimport {\n WsjtxClear,\n WsjtxClose,\n WsjtxDecode,\n WsjtxHeartbeat,\n WsjtxHighlightCallsign,\n WsjtxLoggedAdif,\n WsjtxQsoLogged,\n WsjtxStatus,\n WsjtxWsprDecode,\n} from './wsjtx-messages';\nimport { WsjtxService } from './wsjtx.service';\nimport { delay, retryWhen, tap } from 'rxjs/operators';\nimport { webSocket, WebSocketSubject } from 'rxjs/webSocket';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AgentService {\n /** Whether we're connected to the agent. */\n public readonly connectedState$ = new BehaviorSubject<boolean>(false);\n\n /* WSJT-X */\n /**\n * Whether we're getting any messages from WSJT-X.\n *\n * @deprecated Use {@link WsjtxService.connected$} instead.\n */\n public readonly wsjtxState$: BehaviorSubject<boolean>;\n /**\n * Subject for listening to WSJT-X \"Heartbeat\" messages.\n *\n * @deprecated Use {@link WsjtxService.heartbeat$} instead.\n */\n public readonly wsjtxHeartbeat$: ReplaySubject<WsjtxHeartbeat | null>;\n /**\n * Subject for listening to WSJT-X \"Status\" messages.\n *\n * @deprecated Use {@link WsjtxService.status$} instead.\n */\n public readonly wsjtxStatus$: ReplaySubject<WsjtxStatus | null>;\n /**\n * Subject for listening to WSJT-X \"Decode\" messages.\n *\n * @deprecated Use {@link WsjtxService.decode$} instead.\n */\n public readonly wsjtxDecode$: Subject<WsjtxDecode>;\n /**\n * Subject for listening to WSJT-X \"Clear\" messages.\n *\n * @deprecated Use {@link WsjtxService.clear$} instead.\n */\n public readonly wsjtxClear$: Subject<WsjtxClear>;\n /**\n * Subject for listening to WSJT-X \"QsoLogged\" messages.\n *\n * @deprecated Use {@link WsjtxService.qsoLogged$} instead.\n */\n public readonly wsjtxQsoLogged$: Subject<WsjtxQsoLogged>;\n /**\n * Subject for listening to WSJT-X \"Close\" messages.\n *\n * @deprecated Use {@link WsjtxService.close$} instead.\n */\n public readonly wsjtxClose$: Subject<WsjtxClose>;\n /**\n * Subject for listening to WSJT-X \"WsprDecode\" messages.\n *\n * @deprecated Use {@link WsjtxService.wsprDecode$} instead.\n */\n public readonly wsjtxWsprDecode$: Subject<WsjtxWsprDecode>;\n /**\n * Subject for listening to WSJT-X \"LoggedAdif\" messages.\n *\n * @deprecated Use {@link WsjtxService.loggedAdif$} instead.\n */\n public readonly wsjtxLoggedAdif$: Subject<WsjtxLoggedAdif>;\n\n /* Hamlib */\n /**\n * Whether we're getting any messages from Hamlib.\n *\n * @deprecated Use {@link HamlibService.connected$} instead.\n */\n public readonly hamlibState$: BehaviorSubject<boolean>;\n /**\n * Subject for listening to Hamlib \"RigState\" messages.\n *\n * @deprecated Use {@link HamlibService.rigState$} instead.\n */\n public readonly hamlibRigState$: BehaviorSubject<HamlibRigState | null>;\n\n private readonly defaultAgentHost = 'localhost';\n private readonly defaultAgentPort = 8081;\n private readonly localStorageHostKey = 'agent-host';\n private readonly localStoragePortKey = 'agent-port';\n\n private agentHost: string = this.defaultAgentHost;\n private agentPort: number = this.defaultAgentPort;\n private agentWebSocketSubject: WebSocketSubject<object> | null = null;\n private agentWebsocketSubscription: Subscription | null = null;\n\n constructor(\n private messages: AgentMessageService,\n private hamlibService: HamlibService,\n private wsjtxService: WsjtxService\n ) {\n this.hamlibState$ = this.hamlibService.connected$;\n this.hamlibRigState$ = this.hamlibService.rigState$;\n\n this.wsjtxState$ = this.wsjtxService.connected$;\n this.wsjtxHeartbeat$ = this.wsjtxService.heartbeat$;\n this.wsjtxStatus$ = this.wsjtxService.status$;\n this.wsjtxDecode$ = this.wsjtxService.decode$;\n this.wsjtxClear$ = this.wsjtxService.clear$;\n this.wsjtxQsoLogged$ = this.wsjtxService.qsoLogged$;\n this.wsjtxClose$ = this.wsjtxService.close$;\n this.wsjtxWsprDecode$ = this.wsjtxService.wsprDecode$;\n this.wsjtxLoggedAdif$ = this.wsjtxService.loggedAdif$;\n }\n\n public init(): void {\n this.messages.txMessage$.subscribe((msg) => this.send(msg));\n this.agentHost = this.getHost();\n this.agentPort = this.getPort();\n this.connect();\n }\n\n /** Connect (or reconnect) the websocket to the kel-agent server. */\n public connect(): void {\n if (this.agentWebsocketSubscription) {\n this.agentWebsocketSubscription.unsubscribe();\n }\n this.agentHost = this.getHost();\n this.agentPort = this.getPort();\n const protocol = this.agentHost === 'localhost' ? 'ws://' : 'wss://';\n this.agentWebSocketSubject = webSocket<object>({\n url: protocol + this.agentHost + ':' + this.agentPort + '/websocket',\n });\n this.connectedState$.next(true);\n this.agentWebsocketSubscription = this.agentWebSocketSubject\n .pipe(\n retryWhen((errors) =>\n // retry the websocket connection after 10 seconds\n errors.pipe(\n tap(() => this.connectedState$.next(false)),\n delay(10000)\n )\n )\n )\n .subscribe({\n next: (msg) => {\n this.connectedState$.next(true);\n this.messages.rxMessage$.next(msg);\n },\n error: () => this.connectedState$.next(false),\n complete: () => this.connectedState$.next(false),\n });\n }\n\n /** Get the currently configured kel-agent host. */\n public getHost(): string {\n return (\n localStorage.getItem(this.localStorageHostKey) || this.defaultAgentHost\n );\n }\n\n /** Get the currently configured kel-agent port. */\n public getPort(): number {\n let portStr = localStorage.getItem(this.localStoragePortKey);\n if (portStr == null) {\n return this.defaultAgentPort;\n }\n let portNum = parseInt(portStr, 10);\n if (isNaN(portNum)) {\n return this.defaultAgentPort;\n }\n return portNum;\n }\n\n /** Set the kel-agent host. */\n public setHost(host: string): void {\n localStorage.setItem(this.localStorageHostKey, host);\n this.connect();\n }\n\n /** Set the kel-agent port. */\n public setPort(port: number): void {\n localStorage.setItem(this.localStoragePortKey, String(port));\n this.connect();\n }\n\n private send(wsMsg: any) {\n this.agentWebSocketSubject?.next(wsMsg);\n }\n\n /**\n * Send a command to WSJT-X to clear the Band Activity window.\n *\n * @deprecated Use {@link WsjtxService.clearBandActivity} instead.\n */\n public sendWsjtxClearBandActivity() {\n this.wsjtxService.clearBandActivity();\n }\n\n /**\n * Send a command to WSJT-X to clear the Rx Frequency window.\n *\n * @deprecated Use {@link WsjtxService.clearRxFreqWindow} instead.\n */\n public sendWsjtxClearRxFreqWindow() {\n this.wsjtxService.clearRxFreqWindow();\n }\n\n /**\n * Send a command to WSJT-X to clear the Band Activity and Rx Frequency windows.\n *\n * @deprecated Use {@link WsjtxService.clearAll} instead.\n */\n public sendWsjtxClearAll() {\n this.wsjtxService.clearAll();\n }\n\n /**\n * Send a command to WSJT-X to replay messages. Useful for a fresh client that wants to hear\n * previous WSJT-X decodes.\n *\n * @deprecated Use {@link WsjtxService.replay} instead.\n */\n public sendWsjtxReplay() {\n this.wsjtxService.replay();\n }\n\n /**\n * Send a command to WSJT-X to halt any transmissions immediately.\n *\n * @deprecated Use {@link WsjtxService.haltTxNow} instead.\n */\n public sendWsjtxHaltTxNow() {\n this.wsjtxService.haltTxNow();\n }\n\n /** Send a command to WSJT-X to stop auto-transmitting after finishing the current round.\n *\n * @deprecated Use {@link WsjtxService.haltTxAfterCurrent} instead.\n */\n public sendWsjtxHaltTxAfterCurrent() {\n this.wsjtxService.haltTxAfterCurrent();\n }\n\n /**\n * Send a command to WSJT-X to reply to the given decode. The message must include CQ or QRZ.\n *\n * @deprecated Use {@link WsjtxService.reply} instead.\n */\n public sendWsjtxReply(decode: WsjtxDecode) {\n this.wsjtxService.reply(decode);\n }\n\n /**\n * Send a command to WSJT-X to reply to the given decode. The message must include CQ or QRZ.\n *\n * @deprecated Use {@link WsjtxService.highlightCallsign} instead.\n */\n public sendWsjtxHighlightCallsign(highlightMsg: WsjtxHighlightCallsign) {\n this.wsjtxService.highlightCallsign(highlightMsg);\n }\n\n /**\n * Given a decode message, format a string the same way as displayed in the WSJT-X Band\n * Activity/Rx Frequency windows.\n *\n * @deprecated Use {@link WsjtxService.formatDecode} instead.\n */\n public static formatDecode(msg: WsjtxDecode): string {\n return WsjtxService.formatDecode(msg);\n }\n}\n","/*\n * Public API Surface of ngx-kel-agent\n */\n\nexport * from './lib/agent.service';\nexport * from './lib/agent-message.service';\nexport * from './lib/hamlib-messages';\nexport * from './lib/hamlib.service';\nexport * from './lib/wsjtx-messages';\nexport * from './lib/wsjtx.service';\n// export * from './lib/ngx-kel-agent.component';\n// export * from './lib/ngx-kel-agent.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.AgentMessageService","i2.HamlibService","i3.WsjtxService"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ngx-kel-agent",
3
- "version": "0.7.13",
3
+ "version": "0.7.15",
4
4
  "license": "Apache-2.0",
5
5
  "homepage": "https://github.com/k0swe/ngx-kel-agent/tree/main/projects/ngx-kel-agent#readme",
6
6
  "repository": {
@@ -20,7 +20,7 @@
20
20
  "rxjs": ">=6 <8"
21
21
  },
22
22
  "dependencies": {
23
- "tslib": "2.8.0"
23
+ "tslib": "2.8.1"
24
24
  },
25
25
  "module": "fesm2022/ngx-kel-agent.mjs",
26
26
  "typings": "index.d.ts",