stream-chat-angular 4.52.0-support-angular-17.2 → 4.52.1

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.
@@ -31,6 +31,7 @@ export class ChatClientService {
31
31
  * @param userOrId you can emit this for anonymous logins
32
32
  * @param userTokenOrProvider You can provide:<ul>
33
33
  * <li> a token, </li>
34
+ * <li> a token provider, a method that returns `Promise<string>`, which can be called when the previous token expires (recommended setup for production applications)</li>
34
35
  * <li> the keyword 'guest' to connect as [guest user](https://getstream.io/chat/docs/javascript/authless_users/?language=javascript#guest-users) </li>
35
36
  * <li> the keyword 'anonymous' to connect as [anonymous user](https://getstream.io/chat/docs/javascript/authless_users/?language=javascript#anonymous-users) </li>
36
37
  * </ul>
@@ -206,4 +207,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.5", ngImpor
206
207
  providedIn: 'root',
207
208
  }]
208
209
  }], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i1.NotificationService }]; } });
209
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdC1jbGllbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3N0cmVhbS1jaGF0LWFuZ3VsYXIvc3JjL2xpYi9jaGF0LWNsaWVudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxlQUFlLEVBQWMsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBV2xFLE9BQU8sRUFBc0IsVUFBVSxFQUFtQixNQUFNLGFBQWEsQ0FBQztBQUM5RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHNUMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFTdEM7O0dBRUc7QUFJSCxNQUFNLE9BQU8saUJBQWlCO0lBMkM1QixZQUNVLE1BQWMsRUFDZCxtQkFBd0M7UUFEeEMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFmMUMsd0JBQW1CLEdBQUcsSUFBSSxhQUFhLENBQWlCLENBQUMsQ0FBQyxDQUFDO1FBQzNELDJCQUFzQixHQUFHLElBQUksYUFBYSxDQUF1QixDQUFDLENBQUMsQ0FBQztRQUNwRSx1QkFBa0IsR0FBRyxJQUFJLGVBQWUsQ0FDOUMsU0FBUyxDQUNWLENBQUM7UUFDTSwwQkFBcUIsR0FBRyxJQUFJLGVBQWUsQ0FFakQsRUFBRSxDQUFDLENBQUM7UUFDRSxnQkFBVyxHQUFHLElBQUksYUFBYSxDQUVyQyxDQUFDLENBQUMsQ0FBQztRQUNHLGtCQUFhLEdBQWtDLEVBQUUsQ0FBQztRQU14RCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN2RCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFlBQVks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QkFDaEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLGlDQUNoQixJQUFJLEtBQ1AsWUFBWSxFQUFFLENBQUMsQ0FBQyxZQUFZLElBQzVCLENBQUM7YUFDSjtTQUNGO1FBQ0QsSUFDRSxDQUFDLENBQUMsSUFBSSxLQUFLLGNBQWM7WUFDekIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJO1lBQ3BCLENBQUEsTUFBQSxDQUFDLENBQUMsSUFBSSwwQ0FBRSxFQUFFLE1BQUssSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUN0QztZQUNBLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxtQkFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRyxDQUFDO1NBQ3BEO0lBQ0gsQ0FBQzs7OEdBN1BVLGlCQUFpQjtrSEFBakIsaUJBQWlCLGNBRmhCLE1BQU07MkZBRVAsaUJBQWlCO2tCQUg3QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBSZXBsYXlTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICBDaGFubmVsLFxuICBDaGFubmVsRmlsdGVycyxcbiAgQ2hhbm5lbFJlc3BvbnNlLFxuICBDb25uZWN0QVBJUmVzcG9uc2UsXG4gIE93blVzZXJSZXNwb25zZSxcbiAgU3RyZWFtQ2hhdE9wdGlvbnMsXG4gIFVzZXJGaWx0ZXJzLFxuICBVc2VyUmVzcG9uc2UsXG59IGZyb20gJ3N0cmVhbS1jaGF0JztcbmltcG9ydCB7IEFwcFNldHRpbmdzLCBFdmVudCwgU3RyZWFtQ2hhdCwgVG9rZW5PclByb3ZpZGVyIH0gZnJvbSAnc3RyZWFtLWNoYXQnO1xuaW1wb3J0IHsgdmVyc2lvbiB9IGZyb20gJy4uL2Fzc2V0cy92ZXJzaW9uJztcbmltcG9ydCB7IE5vdGlmaWNhdGlvblNlcnZpY2UgfSBmcm9tICcuL25vdGlmaWNhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IERlZmF1bHRTdHJlYW1DaGF0R2VuZXJpY3MgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmV4cG9ydCB0eXBlIENsaWVudEV2ZW50PFxuICBUIGV4dGVuZHMgRGVmYXVsdFN0cmVhbUNoYXRHZW5lcmljcyA9IERlZmF1bHRTdHJlYW1DaGF0R2VuZXJpY3Ncbj4gPSB7XG4gIGV2ZW50VHlwZTogc3RyaW5nO1xuICBldmVudDogRXZlbnQ8VD47XG59O1xuXG4vKipcbiAqIFRoZSBgQ2hhdENsaWVudGAgc2VydmljZSBjb25uZWN0cyB0aGUgdXNlciB0byB0aGUgU3RyZWFtIGNoYXQuXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBDaGF0Q2xpZW50U2VydmljZTxcbiAgVCBleHRlbmRzIERlZmF1bHRTdHJlYW1DaGF0R2VuZXJpY3MgPSBEZWZhdWx0U3RyZWFtQ2hhdEdlbmVyaWNzXG4+IHtcbiAgLyoqXG4gICAqIFRoZSBbU3RyZWFtQ2hhdCBjbGllbnRdKGh0dHBzOi8vZ2l0aHViLmNvbS9HZXRTdHJlYW0vc3RyZWFtLWNoYXQtanMvYmxvYi9tYXN0ZXIvc3JjL2NsaWVudC50cykgaW5zdGFuY2UuIEluIGdlbmVyYWwgeW91IHNob3VsZG4ndCBuZWVkIHRvIGFjY2VzcyB0aGUgY2xpZW50LCBidXQgaXQncyB0aGVyZSBpZiB5b3Ugd2FudCB0byB1c2UgaXQuXG4gICAqL1xuICBjaGF0Q2xpZW50ITogU3RyZWFtQ2hhdDxUPjtcbiAgLyoqXG4gICAqIEVtaXRzIFtgQ2xpZW50RXZlbnRgXShodHRwczovL2dpdGh1Yi5jb20vR2V0U3RyZWFtL3N0cmVhbS1jaGF0LWFuZ3VsYXIvYmxvYi9tYXN0ZXIvcHJvamVjdHMvc3RyZWFtLWNoYXQtYW5ndWxhci9zcmMvbGliL2NoYXQtY2xpZW50LnNlcnZpY2UudHMpIGV2ZW50cy4gVGhlIHBsYXRmb3JtIGRvY3VtZW50YXRpb24gY292ZXJzIFt0aGUgbGlzdCBvZiBjbGllbnQsIHVzZXIgcHJlc2VuY2UgYW5kIG5vdGlmaWNhdGlvbiBldmVudHNdKGh0dHBzOi8vZ2V0c3RyZWFtLmlvL2NoYXQvZG9jcy9qYXZhc2NyaXB0L2V2ZW50X29iamVjdC8/bGFuZ3VhZ2U9amF2YXNjcmlwdCkuXG4gICAqIDo6OmltcG9ydGFudFxuICAgKiBGb3IgcGVyZm9ybWFuY2UgcmVhc29ucyB0aGlzIE9ic2VydmFibGUgb3BlcmF0ZXMgb3V0c2lkZSBvZiB0aGUgQW5ndWxhciBjaGFuZ2UgZGV0ZWN0aW9uIHpvbmUuIElmIHlvdSBzdWJzY3JpYmUgdG8gaXQsIHlvdSBuZWVkIHRvIG1hbnVhbGx5IHJlZW50ZXIgQW5ndWxhcidzIGNoYW5nZSBkZXRlY3Rpb24gem9uZSwgb3VyIFtDaGFuZ2UgZGV0ZWN0aW9uIGd1aWRlXSguLi9jb25jZXB0cy9jaGFuZ2UtZGV0ZWN0aW9uLm1keCkgZXhwbGFpbnMgdGhpcyBpbiBkZXRhaWwuXG4gICAqIDo6OlxuICAgKi9cbiAgZXZlbnRzJDogT2JzZXJ2YWJsZTxDbGllbnRFdmVudDxUPj47XG4gIC8qKlxuICAgKiBFbWl0cyB0aGUgY3VycmVudCBbYXBwbGljYXRpb24gc2V0dGluZ3NdKGh0dHBzOi8vZ2V0c3RyZWFtLmlvL2NoYXQvZG9jcy9qYXZhc2NyaXB0L2FwcF9zZXR0aW5nX292ZXJ2aWV3Lz9sYW5ndWFnZT1qYXZhc2NyaXB0KS4gU2luY2UgZ2V0dGluZyB0aGUgYXBwbGljYXRpb24gc2V0dGluZ3MgaXMgYW4gZXhwZW5zaXZlIEFQSSBjYWxsIGFuZCB3ZSBkb24ndCBhbHdheXMgbmVlZCB0aGUgcmVzdWx0LCB0aGlzIGlzIG5vdCBpbml0aWFsaXplZCBieSBkZWZhdWx0LCB5b3UgbmVlZCB0byBjYWxsIGBnZXRBcHBsaWNhdGlvblNldHRpbmdzYCB0byBsb2FkIHRoZW0uXG4gICAqL1xuICBhcHBTZXR0aW5ncyQ6IE9ic2VydmFibGU8QXBwU2V0dGluZ3MgfCB1bmRlZmluZWQ+O1xuICAvKipcbiAgICogRW1pdHMgdGhlIGN1cnJlbnQgY29ubmVjdGlvbiBzdGF0ZSBvZiB0aGUgdXNlciAoYG9ubGluZWAgb3IgYG9mZmxpbmVgKVxuICAgKi9cbiAgY29ubmVjdGlvblN0YXRlJDogT2JzZXJ2YWJsZTwnb2ZmbGluZScgfCAnb25saW5lJz47XG4gIC8qKlxuICAgKiBFbWl0cyB0aGUgbGlzdCBvZiBwZW5kaW5nIGludml0ZXMgb2YgdGhlIHVzZXIuIEl0IGVtaXRzIGV2ZXJ5IHBlbmRpbmcgaW52aXRhdGlvbiBkdXJpbmcgaW5pdGlhbGl6YXRpb24gYW5kIHRoZW4gZXh0ZW5kcyB0aGUgbGlzdCB3aGVuIGEgbmV3IGludml0ZSBpcyByZWNlaXZlZC4gTW9yZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgaW4gdGhlIFtjaGFubmVsIGludml0YXRpb25zXSguLi9jb2RlLWV4YW1wbGVzL2NoYW5uZWwtaW52aXRlcy5tZHgpIGd1aWRlLlxuICAgKi9cbiAgcGVuZGluZ0ludml0ZXMkOiBPYnNlcnZhYmxlPChDaGFubmVsUmVzcG9uc2U8VD4gfCBDaGFubmVsPFQ+KVtdPjtcbiAgLyoqXG4gICAqIEVtaXRzIHRoZSBjdXJyZW50IGNoYXQgdXNlclxuICAgKi9cbiAgdXNlciQ6IE9ic2VydmFibGU8T3duVXNlclJlc3BvbnNlPFQ+IHwgVXNlclJlc3BvbnNlPFQ+IHwgdW5kZWZpbmVkPjtcbiAgcHJpdmF0ZSBub3RpZmljYXRpb25TdWJqZWN0ID0gbmV3IFJlcGxheVN1YmplY3Q8Q2xpZW50RXZlbnQ8VD4+KDEpO1xuICBwcml2YXRlIGNvbm5lY3Rpb25TdGF0ZVN1YmplY3QgPSBuZXcgUmVwbGF5U3ViamVjdDwnb2ZmbGluZScgfCAnb25saW5lJz4oMSk7XG4gIHByaXZhdGUgYXBwU2V0dGluZ3NTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBcHBTZXR0aW5ncyB8IHVuZGVmaW5lZD4oXG4gICAgdW5kZWZpbmVkXG4gICk7XG4gIHByaXZhdGUgcGVuZGluZ0ludml0ZXNTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxcbiAgICAoQ2hhbm5lbFJlc3BvbnNlPFQ+IHwgQ2hhbm5lbDxUPilbXVxuICA+KFtdKTtcbiAgcHJpdmF0ZSB1c2VyU3ViamVjdCA9IG5ldyBSZXBsYXlTdWJqZWN0PFxuICAgIE93blVzZXJSZXNwb25zZTxUPiB8IFVzZXJSZXNwb25zZTxUPiB8IHVuZGVmaW5lZFxuICA+KDEpO1xuICBwcml2YXRlIHN1YnNjcmlwdGlvbnM6IHsgdW5zdWJzY3JpYmU6ICgpID0+IHZvaWQgfVtdID0gW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSxcbiAgICBwcml2YXRlIG5vdGlmaWNhdGlvblNlcnZpY2U6IE5vdGlmaWNhdGlvblNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5ldmVudHMkID0gdGhpcy5ub3RpZmljYXRpb25TdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICAgIHRoaXMuY29ubmVjdGlvblN0YXRlJCA9IHRoaXMuY29ubmVjdGlvblN0YXRlU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgICB0aGlzLmFwcFNldHRpbmdzJCA9IHRoaXMuYXBwU2V0dGluZ3NTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICAgIHRoaXMucGVuZGluZ0ludml0ZXMkID0gdGhpcy5wZW5kaW5nSW52aXRlc1N1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gICAgdGhpcy51c2VyJCA9IHRoaXMudXNlclN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIFtgU3RyZWFtQ2hhdGBdKGh0dHBzOi8vZ2l0aHViLmNvbS9HZXRTdHJlYW0vc3RyZWFtLWNoYXQtanMvYmxvYi82NjhiM2U1NTIxMzM5ZjRlMTRmYzY1NzgzNDUzMWI0YzhiZjgxNzZiL3NyYy9jbGllbnQudHMjTDEyNCkgaW5zdGFuY2UgdXNpbmcgdGhlIHByb3ZpZGVkIGBhcGlLZXlgLCBhbmQgY29ubmVjdHMgYSB1c2VyIHdpdGggdGhlIGdpdmVuIG1ldGEgZGF0YSBhbmQgdG9rZW4uIE1vcmUgaW5mbyBhYm91dCBbY29ubmVjdGluZyB1c2Vyc10oaHR0cHM6Ly9nZXRzdHJlYW0uaW8vY2hhdC9kb2NzL2phdmFzY3JpcHQvaW5pdF9hbmRfdXNlcnMvP2xhbmd1YWdlPWphdmFzY3JpcHQpIGNhbiBiZSBmb3VuZCBpbiB0aGUgcGxhdGZvcm0gZG9jdW1lbnRhdGlvbi5cbiAgICogQHBhcmFtIGFwaUtleVxuICAgKiBAcGFyYW0gdXNlck9ySWQgeW91IGNhbiBlbWl0IHRoaXMgZm9yIGFub255bW91cyBsb2dpbnNcbiAgICogQHBhcmFtIHVzZXJUb2tlbk9yUHJvdmlkZXIgWW91IGNhbiBwcm92aWRlOjx1bD5cbiAgICogIDxsaT4gYSB0b2tlbiwgPC9saT5cbiAgICogIDxsaT4gdGhlIGtleXdvcmQgJ2d1ZXN0JyB0byBjb25uZWN0IGFzIFtndWVzdCB1c2VyXShodHRwczovL2dldHN0cmVhbS5pby9jaGF0L2RvY3MvamF2YXNjcmlwdC9hdXRobGVzc191c2Vycy8/bGFuZ3VhZ2U9amF2YXNjcmlwdCNndWVzdC11c2VycykgPC9saT5cbiAgICogIDxsaT4gdGhlIGtleXdvcmQgJ2Fub255bW91cycgdG8gY29ubmVjdCBhcyBbYW5vbnltb3VzIHVzZXJdKGh0dHBzOi8vZ2V0c3RyZWFtLmlvL2NoYXQvZG9jcy9qYXZhc2NyaXB0L2F1dGhsZXNzX3VzZXJzLz9sYW5ndWFnZT1qYXZhc2NyaXB0I2Fub255bW91cy11c2VycykgPC9saT5cbiAgICogIDwvdWw+XG4gICAqIEBwYXJhbSBjbGllbnRPcHRpb25zIFNldHRpbmcgdG8gcHJvdmlkZSB0byB0aGUgU3RyZWFtIGNsaWVudCBpbnN0YW5jZVxuICAgKi9cbiAgYXN5bmMgaW5pdChcbiAgICBhcGlLZXk6IHN0cmluZyxcbiAgICB1c2VyT3JJZDogc3RyaW5nIHwgT3duVXNlclJlc3BvbnNlPFQ+IHwgVXNlclJlc3BvbnNlPFQ+IHwgdW5kZWZpbmVkLFxuICAgIHVzZXJUb2tlbk9yUHJvdmlkZXI6IFRva2VuT3JQcm92aWRlciB8ICdhbm9ueW1vdXMnIHwgJ2d1ZXN0JyxcbiAgICBjbGllbnRPcHRpb25zPzogU3RyZWFtQ2hhdE9wdGlvbnNcbiAgKTogQ29ubmVjdEFQSVJlc3BvbnNlPFQ+IHtcbiAgICB0aGlzLmNoYXRDbGllbnQgPSBTdHJlYW1DaGF0LmdldEluc3RhbmNlPFQ+KGFwaUtleSwgY2xpZW50T3B0aW9ucyk7XG4gICAgdGhpcy5jaGF0Q2xpZW50LmRldlRva2VuO1xuICAgIGxldCByZXN1bHQ7XG4gICAgYXdhaXQgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgdXNlciA9IHR5cGVvZiB1c2VyT3JJZCA9PT0gJ3N0cmluZycgPyB7IGlkOiB1c2VyT3JJZCB9IDogdXNlck9ySWQ7XG4gICAgICB0cnkge1xuICAgICAgICByZXN1bHQgPSBhd2FpdCAoXG4gICAgICAgICAge1xuICAgICAgICAgICAgZ3Vlc3Q6ICgpID0+IHRoaXMuY2hhdENsaWVudC5zZXRHdWVzdFVzZXIodXNlciEpLFxuICAgICAgICAgICAgYW5vbnltb3VzOiAoKSA9PiB0aGlzLmNoYXRDbGllbnQuY29ubmVjdEFub255bW91c1VzZXIoKSxcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvcmVzdHJpY3QtdGVtcGxhdGUtZXhwcmVzc2lvbnNcbiAgICAgICAgICB9W2Ake3VzZXJUb2tlbk9yUHJvdmlkZXJ9YF0gPz9cbiAgICAgICAgICAoKCkgPT4gdGhpcy5jaGF0Q2xpZW50LmNvbm5lY3RVc2VyKHVzZXIhLCB1c2VyVG9rZW5PclByb3ZpZGVyKSlcbiAgICAgICAgKSgpO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLmFkZFBlcm1hbmVudE5vdGlmaWNhdGlvbihcbiAgICAgICAgICAnc3RyZWFtQ2hhdC5FcnJvciBjb25uZWN0aW5nIHRvIGNoYXQsIHJlZnJlc2ggdGhlIHBhZ2UgdG8gdHJ5IGFnYWluLicsXG4gICAgICAgICAgJ2Vycm9yJ1xuICAgICAgICApO1xuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgIH1cbiAgICAgIHRoaXMudXNlclN1YmplY3QubmV4dChcbiAgICAgICAgdGhpcy5jaGF0Q2xpZW50LnVzZXIgPyB7IC4uLnRoaXMuY2hhdENsaWVudC51c2VyIH0gOiB1bmRlZmluZWRcbiAgICAgICk7XG4gICAgICBjb25zdCBzZGtQcmVmaXggPSAnc3RyZWFtLWNoYXQtYW5ndWxhcic7XG4gICAgICBpZiAoIXRoaXMuY2hhdENsaWVudC5nZXRVc2VyQWdlbnQoKS5pbmNsdWRlcyhzZGtQcmVmaXgpKSB7XG4gICAgICAgIHRoaXMuY2hhdENsaWVudC5zZXRVc2VyQWdlbnQoXG4gICAgICAgICAgYCR7c2RrUHJlZml4fS0ke3ZlcnNpb259LSR7dGhpcy5jaGF0Q2xpZW50LmdldFVzZXJBZ2VudCgpfWBcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCBjaGFubmVscyA9IGF3YWl0IHRoaXMuY2hhdENsaWVudC5xdWVyeUNoYW5uZWxzKFxuICAgICAgeyBpbnZpdGU6ICdwZW5kaW5nJyB9IGFzIGFueSBhcyBDaGFubmVsRmlsdGVyczxUPiwgLy8gVE9ETzogZmluZCBvdXQgd2h5IHdlIG5lZWQgdGhpcyB0eXBlY2FzdFxuICAgICAge30sXG4gICAgICB7IHVzZXJfaWQ6IHRoaXMuY2hhdENsaWVudC51c2VyPy5pZCB9XG4gICAgKTtcbiAgICB0aGlzLnBlbmRpbmdJbnZpdGVzU3ViamVjdC5uZXh0KGNoYW5uZWxzKTtcbiAgICB0aGlzLmFwcFNldHRpbmdzU3ViamVjdC5uZXh0KHVuZGVmaW5lZCk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICB0aGlzLmNoYXRDbGllbnQub24oKGUpID0+IHtcbiAgICAgICAgdGhpcy51cGRhdGVVc2VyKGUpO1xuICAgICAgICB0aGlzLnVwZGF0ZVBlbmRpbmdJbnZpdGVzKGUpO1xuICAgICAgICB0aGlzLm5vdGlmaWNhdGlvblN1YmplY3QubmV4dCh7XG4gICAgICAgICAgZXZlbnRUeXBlOiBlLnR5cGUsXG4gICAgICAgICAgZXZlbnQ6IGUsXG4gICAgICAgIH0pO1xuICAgICAgfSlcbiAgICApO1xuICAgIGxldCByZW1vdmVOb3RpZmljYXRpb246IHVuZGVmaW5lZCB8IEZ1bmN0aW9uO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgdGhpcy5jaGF0Q2xpZW50Lm9uKCdjb25uZWN0aW9uLmNoYW5nZWQnLCAoZSkgPT4ge1xuICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGlzT25saW5lID0gZS5vbmxpbmU7XG4gICAgICAgICAgaWYgKGlzT25saW5lKSB7XG4gICAgICAgICAgICBpZiAocmVtb3ZlTm90aWZpY2F0aW9uKSB7XG4gICAgICAgICAgICAgIHJlbW92ZU5vdGlmaWNhdGlvbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZW1vdmVOb3RpZmljYXRpb24gPVxuICAgICAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2UuYWRkUGVybWFuZW50Tm90aWZpY2F0aW9uKFxuICAgICAgICAgICAgICAgICdzdHJlYW1DaGF0LkNvbm5lY3Rpb24gZmFpbHVyZSwgcmVjb25uZWN0aW5nIG5vdy4uLidcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5jb25uZWN0aW9uU3RhdGVTdWJqZWN0Lm5leHQoaXNPbmxpbmUgPyAnb25saW5lJyA6ICdvZmZsaW5lJyk7XG4gICAgICAgIH0pO1xuICAgICAgfSlcbiAgICApO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICAvKipcbiAgICogRGlzY29ubmVjdHMgdGhlIGN1cnJlbnQgdXNlciwgYW5kIGNsb3NlcyB0aGUgV2ViU29ja2V0IGNvbm5lY3Rpb24uIFVzZWZ1bCB3aGVuIGRpc2Nvbm5lY3RpbmcgYSBjaGF0IHVzZXIsIHVzZSBpbiBjb21iaW5hdGlvbiB3aXRoIFtgcmVzZXRgXSguL0NoYW5uZWxTZXJ2aWNlLm1keC8jcmVzZXQpLlxuICAgKi9cbiAgYXN5bmMgZGlzY29ubmVjdFVzZXIoKSB7XG4gICAgdGhpcy5wZW5kaW5nSW52aXRlc1N1YmplY3QubmV4dChbXSk7XG4gICAgYXdhaXQgdGhpcy5jaGF0Q2xpZW50LmRpc2Nvbm5lY3RVc2VyKCk7XG4gICAgdGhpcy51c2VyU3ViamVjdC5uZXh0KHVuZGVmaW5lZCk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goKHMpID0+IHMudW5zdWJzY3JpYmUoKSk7XG4gIH1cblxuICAvKipcbiAgICogTG9hZHMgdGhlIGN1cnJlbnQgW2FwcGxpY2F0aW9uIHNldHRpbmdzXShodHRwczovL2dldHN0cmVhbS5pby9jaGF0L2RvY3MvamF2YXNjcmlwdC9hcHBfc2V0dGluZ19vdmVydmlldy8/bGFuZ3VhZ2U9amF2YXNjcmlwdCksIGlmIHRoZSBhcHBsaWNhdGlvbiBzZXR0aW5ncyBoYXZlIGFscmVhZHkgYmVlbiBsb2FkZWQsIGl0IGRvZXMgbm90aGluZy5cbiAgICovXG4gIGFzeW5jIGdldEFwcFNldHRpbmdzKCkge1xuICAgIGlmICh0aGlzLmFwcFNldHRpbmdzU3ViamVjdC5nZXRWYWx1ZSgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHNldHRpbmdzID0gYXdhaXQgdGhpcy5jaGF0Q2xpZW50LmdldEFwcFNldHRpbmdzKCk7XG4gICAgdGhpcy5hcHBTZXR0aW5nc1N1YmplY3QubmV4dCgoc2V0dGluZ3MuYXBwIGFzIEFwcFNldHRpbmdzKSB8fCB7fSk7XG4gIH1cblxuICAvKipcbiAgICogRmxhZyB0aGUgbWVzc2FnZSB3aXRoIHRoZSBnaXZlbiBJRC4gSWYgeW91IHdhbnQgdG8ga25vdyBbbW9yZSBhYm91dCBmbGFnc10oaHR0cHM6Ly9nZXRzdHJlYW0uaW8vY2hhdC9kb2NzL2phdmFzY3JpcHQvbW9kZXJhdGlvbi8/bGFuZ3VhZ2U9amF2YXNjcmlwdCkgY2hlY2sgb3V0IHRoZSBwbGF0Zm9ybSBkb2N1bWVudGF0aW9uLlxuICAgKiBAcGFyYW0gbWVzc2FnZUlkXG4gICAqL1xuICBhc3luYyBmbGFnTWVzc2FnZShtZXNzYWdlSWQ6IHN0cmluZykge1xuICAgIGF3YWl0IHRoaXMuY2hhdENsaWVudC5mbGFnTWVzc2FnZShtZXNzYWdlSWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNlYXJjaGVzIGZvciB1c2VycyBpbiB0aGUgYXBwbGljYXRpb24gdGhhdCBoYXZlIElEIG9yIG5hbWUgbWF0Y2hpbmcgdGhlIHByb3ZpZGVkIHNlYXJjaCB0ZXJtXG4gICAqIEBwYXJhbSBzZWFyY2hUZXJtXG4gICAqIEByZXR1cm5zIFRoZSB1c2VycyBtYXRjaGluZyB0aGUgc2VhcmNoXG4gICAqL1xuICBhc3luYyBhdXRvY29tcGxldGVVc2VycyhzZWFyY2hUZXJtOiBzdHJpbmcpIHtcbiAgICBpZiAoIXNlYXJjaFRlcm0pIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5jaGF0Q2xpZW50LnF1ZXJ5VXNlcnMoe1xuICAgICAgJG9yOiBbXG4gICAgICAgIHsgaWQ6IHsgJGF1dG9jb21wbGV0ZTogc2VhcmNoVGVybSB9IH0sXG4gICAgICAgIHsgbmFtZTogeyAkYXV0b2NvbXBsZXRlOiBzZWFyY2hUZXJtIH0gfSxcbiAgICAgIF0sXG4gICAgICBpZDogeyAkbmU6IHRoaXMuY2hhdENsaWVudC51c2VySUQhIH0sXG4gICAgfSBhcyBVc2VyRmlsdGVyczxUPik7IC8vIFRPRE86IGZpbmQgb3V0IHdoeSB3ZSBuZWVkIHRoaXMgdHlwZWNhc3RcbiAgICByZXR1cm4gcmVzdWx0LnVzZXJzO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVQZW5kaW5nSW52aXRlcyhlOiBFdmVudDxUPikge1xuICAgIGlmIChlLm1lbWJlcj8udXNlcj8uaWQgPT09IHRoaXMuY2hhdENsaWVudC51c2VyPy5pZCAmJiBlLmNoYW5uZWwpIHtcbiAgICAgIGNvbnN0IHBlbmRpbmdJbnZpdGVzID0gdGhpcy5wZW5kaW5nSW52aXRlc1N1YmplY3QuZ2V0VmFsdWUoKTtcbiAgICAgIGlmIChlLnR5cGUgPT09ICdub3RpZmljYXRpb24uaW52aXRlZCcpIHtcbiAgICAgICAgdGhpcy5wZW5kaW5nSW52aXRlc1N1YmplY3QubmV4dChbLi4ucGVuZGluZ0ludml0ZXMsIGUuY2hhbm5lbF0pO1xuICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgZS50eXBlID09PSAnbm90aWZpY2F0aW9uLmludml0ZV9hY2NlcHRlZCcgfHxcbiAgICAgICAgZS50eXBlID09PSAnbm90aWZpY2F0aW9uLmludml0ZV9yZWplY3RlZCdcbiAgICAgICkge1xuICAgICAgICBjb25zdCBpbmRleCA9IHBlbmRpbmdJbnZpdGVzLmZpbmRJbmRleChcbiAgICAgICAgICAoaSkgPT4gaT8uY2lkID09PSBlLmNoYW5uZWw/LmNpZFxuICAgICAgICApO1xuICAgICAgICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgICAgICAgcGVuZGluZ0ludml0ZXMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgICB0aGlzLnBlbmRpbmdJbnZpdGVzU3ViamVjdC5uZXh0KFsuLi5wZW5kaW5nSW52aXRlc10pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVVc2VyKGU6IEV2ZW50PFQ+KSB7XG4gICAgaWYgKHR5cGVvZiBlLnRvdGFsX3VucmVhZF9jb3VudCAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIGxldCB1c2VyOiBPd25Vc2VyUmVzcG9uc2U8VD4gfCBVc2VyUmVzcG9uc2U8VD4gfCB1bmRlZmluZWQ7XG4gICAgICB0aGlzLnVzZXJTdWJqZWN0LnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKCh1KSA9PiB7XG4gICAgICAgIHVzZXIgPSB1O1xuICAgICAgfSk7XG4gICAgICBpZiAodXNlciAmJiB1c2VyLnRvdGFsX3VucmVhZF9jb3VudCAhPT0gZS50b3RhbF91bnJlYWRfY291bnQpIHtcbiAgICAgICAgdGhpcy51c2VyU3ViamVjdC5uZXh0KHtcbiAgICAgICAgICAuLi51c2VyLFxuICAgICAgICAgIHRvdGFsX3VucmVhZF9jb3VudDogZS50b3RhbF91bnJlYWRfY291bnQsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAodHlwZW9mIGUudW5yZWFkX2NoYW5uZWxzICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgbGV0IHVzZXI6IE93blVzZXJSZXNwb25zZTxUPiB8IFVzZXJSZXNwb25zZTxUPiB8IHVuZGVmaW5lZDtcbiAgICAgIHRoaXMudXNlclN1YmplY3QucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoKHUpID0+IHtcbiAgICAgICAgdXNlciA9IHU7XG4gICAgICB9KTtcbiAgICAgIGlmICh1c2VyICYmIHVzZXIudW5yZWFkX2NoYW5uZWxzICE9PSBlLnVucmVhZF9jaGFubmVscykge1xuICAgICAgICB0aGlzLnVzZXJTdWJqZWN0Lm5leHQoe1xuICAgICAgICAgIC4uLnVzZXIsXG4gICAgICAgICAgdW5yZWFkX2NoYW5uZWxzOiBlLnVucmVhZF9jaGFubmVscyxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICh0eXBlb2YgZS51bnJlYWRfY291bnQgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICBsZXQgdXNlcjogT3duVXNlclJlc3BvbnNlPFQ+IHwgVXNlclJlc3BvbnNlPFQ+IHwgdW5kZWZpbmVkO1xuICAgICAgdGhpcy51c2VyU3ViamVjdC5waXBlKHRha2UoMSkpLnN1YnNjcmliZSgodSkgPT4ge1xuICAgICAgICB1c2VyID0gdTtcbiAgICAgIH0pO1xuICAgICAgaWYgKHVzZXIgJiYgdXNlci51bnJlYWRfY291bnQgIT09IGUudW5yZWFkX2NvdW50KSB7XG4gICAgICAgIHRoaXMudXNlclN1YmplY3QubmV4dCh7XG4gICAgICAgICAgLi4udXNlcixcbiAgICAgICAgICB1bnJlYWRfY291bnQ6IGUudW5yZWFkX2NvdW50LFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKFxuICAgICAgZS50eXBlID09PSAndXNlci51cGRhdGVkJyAmJlxuICAgICAgdGhpcy5jaGF0Q2xpZW50LnVzZXIgJiZcbiAgICAgIGUudXNlcj8uaWQgPT09IHRoaXMuY2hhdENsaWVudC51c2VyLmlkXG4gICAgKSB7XG4gICAgICB0aGlzLnVzZXJTdWJqZWN0Lm5leHQoeyAuLi50aGlzLmNoYXRDbGllbnQudXNlciB9KTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
210
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdC1jbGllbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3N0cmVhbS1jaGF0LWFuZ3VsYXIvc3JjL2xpYi9jaGF0LWNsaWVudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxlQUFlLEVBQWMsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBV2xFLE9BQU8sRUFBc0IsVUFBVSxFQUFtQixNQUFNLGFBQWEsQ0FBQztBQUM5RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHNUMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFTdEM7O0dBRUc7QUFJSCxNQUFNLE9BQU8saUJBQWlCO0lBMkM1QixZQUNVLE1BQWMsRUFDZCxtQkFBd0M7UUFEeEMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFmMUMsd0JBQW1CLEdBQUcsSUFBSSxhQUFhLENBQWlCLENBQUMsQ0FBQyxDQUFDO1FBQzNELDJCQUFzQixHQUFHLElBQUksYUFBYSxDQUF1QixDQUFDLENBQUMsQ0FBQztRQUNwRSx1QkFBa0IsR0FBRyxJQUFJLGVBQWUsQ0FDOUMsU0FBUyxDQUNWLENBQUM7UUFDTSwwQkFBcUIsR0FBRyxJQUFJLGVBQWUsQ0FFakQsRUFBRSxDQUFDLENBQUM7UUFDRSxnQkFBVyxHQUFHLElBQUksYUFBYSxDQUVyQyxDQUFDLENBQUMsQ0FBQztRQUNHLGtCQUFhLEdBQWtDLEVBQUUsQ0FBQztRQU14RCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN2RCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFlBQVks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Z0JBQ2hELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxpQ0FDaEIsSUFBSSxLQUNQLFlBQVksRUFBRSxDQUFDLENBQUMsWUFBWSxJQUM1QixDQUFDO2FBQ0o7U0FDRjtRQUNELElBQ0UsQ0FBQyxDQUFDLElBQUksS0FBSyxjQUFjO1lBQ3pCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSTtZQUNwQixDQUFBLE1BQUEsQ0FBQyxDQUFDLElBQUksMENBQUUsRUFBRSxNQUFLLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFDdEM7WUFDQSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksbUJBQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUcsQ0FBQztTQUNwRDtJQUNILENBQUM7OzhHQTlQVSxpQkFBaUI7a0hBQWpCLGlCQUFpQixjQUZoQixNQUFNOzJGQUVQLGlCQUFpQjtrQkFIN0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgUmVwbGF5U3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgQ2hhbm5lbCxcbiAgQ2hhbm5lbEZpbHRlcnMsXG4gIENoYW5uZWxSZXNwb25zZSxcbiAgQ29ubmVjdEFQSVJlc3BvbnNlLFxuICBPd25Vc2VyUmVzcG9uc2UsXG4gIFN0cmVhbUNoYXRPcHRpb25zLFxuICBVc2VyRmlsdGVycyxcbiAgVXNlclJlc3BvbnNlLFxufSBmcm9tICdzdHJlYW0tY2hhdCc7XG5pbXBvcnQgeyBBcHBTZXR0aW5ncywgRXZlbnQsIFN0cmVhbUNoYXQsIFRva2VuT3JQcm92aWRlciB9IGZyb20gJ3N0cmVhbS1jaGF0JztcbmltcG9ydCB7IHZlcnNpb24gfSBmcm9tICcuLi9hc3NldHMvdmVyc2lvbic7XG5pbXBvcnQgeyBOb3RpZmljYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi9ub3RpZmljYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBEZWZhdWx0U3RyZWFtQ2hhdEdlbmVyaWNzIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5leHBvcnQgdHlwZSBDbGllbnRFdmVudDxcbiAgVCBleHRlbmRzIERlZmF1bHRTdHJlYW1DaGF0R2VuZXJpY3MgPSBEZWZhdWx0U3RyZWFtQ2hhdEdlbmVyaWNzXG4+ID0ge1xuICBldmVudFR5cGU6IHN0cmluZztcbiAgZXZlbnQ6IEV2ZW50PFQ+O1xufTtcblxuLyoqXG4gKiBUaGUgYENoYXRDbGllbnRgIHNlcnZpY2UgY29ubmVjdHMgdGhlIHVzZXIgdG8gdGhlIFN0cmVhbSBjaGF0LlxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQ2hhdENsaWVudFNlcnZpY2U8XG4gIFQgZXh0ZW5kcyBEZWZhdWx0U3RyZWFtQ2hhdEdlbmVyaWNzID0gRGVmYXVsdFN0cmVhbUNoYXRHZW5lcmljc1xuPiB7XG4gIC8qKlxuICAgKiBUaGUgW1N0cmVhbUNoYXQgY2xpZW50XShodHRwczovL2dpdGh1Yi5jb20vR2V0U3RyZWFtL3N0cmVhbS1jaGF0LWpzL2Jsb2IvbWFzdGVyL3NyYy9jbGllbnQudHMpIGluc3RhbmNlLiBJbiBnZW5lcmFsIHlvdSBzaG91bGRuJ3QgbmVlZCB0byBhY2Nlc3MgdGhlIGNsaWVudCwgYnV0IGl0J3MgdGhlcmUgaWYgeW91IHdhbnQgdG8gdXNlIGl0LlxuICAgKi9cbiAgY2hhdENsaWVudCE6IFN0cmVhbUNoYXQ8VD47XG4gIC8qKlxuICAgKiBFbWl0cyBbYENsaWVudEV2ZW50YF0oaHR0cHM6Ly9naXRodWIuY29tL0dldFN0cmVhbS9zdHJlYW0tY2hhdC1hbmd1bGFyL2Jsb2IvbWFzdGVyL3Byb2plY3RzL3N0cmVhbS1jaGF0LWFuZ3VsYXIvc3JjL2xpYi9jaGF0LWNsaWVudC5zZXJ2aWNlLnRzKSBldmVudHMuIFRoZSBwbGF0Zm9ybSBkb2N1bWVudGF0aW9uIGNvdmVycyBbdGhlIGxpc3Qgb2YgY2xpZW50LCB1c2VyIHByZXNlbmNlIGFuZCBub3RpZmljYXRpb24gZXZlbnRzXShodHRwczovL2dldHN0cmVhbS5pby9jaGF0L2RvY3MvamF2YXNjcmlwdC9ldmVudF9vYmplY3QvP2xhbmd1YWdlPWphdmFzY3JpcHQpLlxuICAgKiA6OjppbXBvcnRhbnRcbiAgICogRm9yIHBlcmZvcm1hbmNlIHJlYXNvbnMgdGhpcyBPYnNlcnZhYmxlIG9wZXJhdGVzIG91dHNpZGUgb2YgdGhlIEFuZ3VsYXIgY2hhbmdlIGRldGVjdGlvbiB6b25lLiBJZiB5b3Ugc3Vic2NyaWJlIHRvIGl0LCB5b3UgbmVlZCB0byBtYW51YWxseSByZWVudGVyIEFuZ3VsYXIncyBjaGFuZ2UgZGV0ZWN0aW9uIHpvbmUsIG91ciBbQ2hhbmdlIGRldGVjdGlvbiBndWlkZV0oLi4vY29uY2VwdHMvY2hhbmdlLWRldGVjdGlvbi5tZHgpIGV4cGxhaW5zIHRoaXMgaW4gZGV0YWlsLlxuICAgKiA6OjpcbiAgICovXG4gIGV2ZW50cyQ6IE9ic2VydmFibGU8Q2xpZW50RXZlbnQ8VD4+O1xuICAvKipcbiAgICogRW1pdHMgdGhlIGN1cnJlbnQgW2FwcGxpY2F0aW9uIHNldHRpbmdzXShodHRwczovL2dldHN0cmVhbS5pby9jaGF0L2RvY3MvamF2YXNjcmlwdC9hcHBfc2V0dGluZ19vdmVydmlldy8/bGFuZ3VhZ2U9amF2YXNjcmlwdCkuIFNpbmNlIGdldHRpbmcgdGhlIGFwcGxpY2F0aW9uIHNldHRpbmdzIGlzIGFuIGV4cGVuc2l2ZSBBUEkgY2FsbCBhbmQgd2UgZG9uJ3QgYWx3YXlzIG5lZWQgdGhlIHJlc3VsdCwgdGhpcyBpcyBub3QgaW5pdGlhbGl6ZWQgYnkgZGVmYXVsdCwgeW91IG5lZWQgdG8gY2FsbCBgZ2V0QXBwbGljYXRpb25TZXR0aW5nc2AgdG8gbG9hZCB0aGVtLlxuICAgKi9cbiAgYXBwU2V0dGluZ3MkOiBPYnNlcnZhYmxlPEFwcFNldHRpbmdzIHwgdW5kZWZpbmVkPjtcbiAgLyoqXG4gICAqIEVtaXRzIHRoZSBjdXJyZW50IGNvbm5lY3Rpb24gc3RhdGUgb2YgdGhlIHVzZXIgKGBvbmxpbmVgIG9yIGBvZmZsaW5lYClcbiAgICovXG4gIGNvbm5lY3Rpb25TdGF0ZSQ6IE9ic2VydmFibGU8J29mZmxpbmUnIHwgJ29ubGluZSc+O1xuICAvKipcbiAgICogRW1pdHMgdGhlIGxpc3Qgb2YgcGVuZGluZyBpbnZpdGVzIG9mIHRoZSB1c2VyLiBJdCBlbWl0cyBldmVyeSBwZW5kaW5nIGludml0YXRpb24gZHVyaW5nIGluaXRpYWxpemF0aW9uIGFuZCB0aGVuIGV4dGVuZHMgdGhlIGxpc3Qgd2hlbiBhIG5ldyBpbnZpdGUgaXMgcmVjZWl2ZWQuIE1vcmUgaW5mb3JtYXRpb24gY2FuIGJlIGZvdW5kIGluIHRoZSBbY2hhbm5lbCBpbnZpdGF0aW9uc10oLi4vY29kZS1leGFtcGxlcy9jaGFubmVsLWludml0ZXMubWR4KSBndWlkZS5cbiAgICovXG4gIHBlbmRpbmdJbnZpdGVzJDogT2JzZXJ2YWJsZTwoQ2hhbm5lbFJlc3BvbnNlPFQ+IHwgQ2hhbm5lbDxUPilbXT47XG4gIC8qKlxuICAgKiBFbWl0cyB0aGUgY3VycmVudCBjaGF0IHVzZXJcbiAgICovXG4gIHVzZXIkOiBPYnNlcnZhYmxlPE93blVzZXJSZXNwb25zZTxUPiB8IFVzZXJSZXNwb25zZTxUPiB8IHVuZGVmaW5lZD47XG4gIHByaXZhdGUgbm90aWZpY2F0aW9uU3ViamVjdCA9IG5ldyBSZXBsYXlTdWJqZWN0PENsaWVudEV2ZW50PFQ+PigxKTtcbiAgcHJpdmF0ZSBjb25uZWN0aW9uU3RhdGVTdWJqZWN0ID0gbmV3IFJlcGxheVN1YmplY3Q8J29mZmxpbmUnIHwgJ29ubGluZSc+KDEpO1xuICBwcml2YXRlIGFwcFNldHRpbmdzU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXBwU2V0dGluZ3MgfCB1bmRlZmluZWQ+KFxuICAgIHVuZGVmaW5lZFxuICApO1xuICBwcml2YXRlIHBlbmRpbmdJbnZpdGVzU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8XG4gICAgKENoYW5uZWxSZXNwb25zZTxUPiB8IENoYW5uZWw8VD4pW11cbiAgPihbXSk7XG4gIHByaXZhdGUgdXNlclN1YmplY3QgPSBuZXcgUmVwbGF5U3ViamVjdDxcbiAgICBPd25Vc2VyUmVzcG9uc2U8VD4gfCBVc2VyUmVzcG9uc2U8VD4gfCB1bmRlZmluZWRcbiAgPigxKTtcbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb25zOiB7IHVuc3Vic2NyaWJlOiAoKSA9PiB2b2lkIH1bXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmUsXG4gICAgcHJpdmF0ZSBub3RpZmljYXRpb25TZXJ2aWNlOiBOb3RpZmljYXRpb25TZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuZXZlbnRzJCA9IHRoaXMubm90aWZpY2F0aW9uU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgICB0aGlzLmNvbm5lY3Rpb25TdGF0ZSQgPSB0aGlzLmNvbm5lY3Rpb25TdGF0ZVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gICAgdGhpcy5hcHBTZXR0aW5ncyQgPSB0aGlzLmFwcFNldHRpbmdzU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgICB0aGlzLnBlbmRpbmdJbnZpdGVzJCA9IHRoaXMucGVuZGluZ0ludml0ZXNTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICAgIHRoaXMudXNlciQgPSB0aGlzLnVzZXJTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBbYFN0cmVhbUNoYXRgXShodHRwczovL2dpdGh1Yi5jb20vR2V0U3RyZWFtL3N0cmVhbS1jaGF0LWpzL2Jsb2IvNjY4YjNlNTUyMTMzOWY0ZTE0ZmM2NTc4MzQ1MzFiNGM4YmY4MTc2Yi9zcmMvY2xpZW50LnRzI0wxMjQpIGluc3RhbmNlIHVzaW5nIHRoZSBwcm92aWRlZCBgYXBpS2V5YCwgYW5kIGNvbm5lY3RzIGEgdXNlciB3aXRoIHRoZSBnaXZlbiBtZXRhIGRhdGEgYW5kIHRva2VuLiBNb3JlIGluZm8gYWJvdXQgW2Nvbm5lY3RpbmcgdXNlcnNdKGh0dHBzOi8vZ2V0c3RyZWFtLmlvL2NoYXQvZG9jcy9qYXZhc2NyaXB0L2luaXRfYW5kX3VzZXJzLz9sYW5ndWFnZT1qYXZhc2NyaXB0KSBjYW4gYmUgZm91bmQgaW4gdGhlIHBsYXRmb3JtIGRvY3VtZW50YXRpb24uXG4gICAqIEBwYXJhbSBhcGlLZXlcbiAgICogQHBhcmFtIHVzZXJPcklkIHlvdSBjYW4gZW1pdCB0aGlzIGZvciBhbm9ueW1vdXMgbG9naW5zXG4gICAqIEBwYXJhbSB1c2VyVG9rZW5PclByb3ZpZGVyIFlvdSBjYW4gcHJvdmlkZTo8dWw+XG4gICAqICA8bGk+IGEgdG9rZW4sIDwvbGk+XG4gICAqICA8bGk+IGEgdG9rZW4gcHJvdmlkZXIsIGEgbWV0aG9kIHRoYXQgcmV0dXJucyBgUHJvbWlzZTxzdHJpbmc+YCwgd2hpY2ggY2FuIGJlIGNhbGxlZCB3aGVuIHRoZSBwcmV2aW91cyB0b2tlbiBleHBpcmVzIChyZWNvbW1lbmRlZCBzZXR1cCBmb3IgcHJvZHVjdGlvbiBhcHBsaWNhdGlvbnMpPC9saT5cbiAgICogIDxsaT4gdGhlIGtleXdvcmQgJ2d1ZXN0JyB0byBjb25uZWN0IGFzIFtndWVzdCB1c2VyXShodHRwczovL2dldHN0cmVhbS5pby9jaGF0L2RvY3MvamF2YXNjcmlwdC9hdXRobGVzc191c2Vycy8/bGFuZ3VhZ2U9amF2YXNjcmlwdCNndWVzdC11c2VycykgPC9saT5cbiAgICogIDxsaT4gdGhlIGtleXdvcmQgJ2Fub255bW91cycgdG8gY29ubmVjdCBhcyBbYW5vbnltb3VzIHVzZXJdKGh0dHBzOi8vZ2V0c3RyZWFtLmlvL2NoYXQvZG9jcy9qYXZhc2NyaXB0L2F1dGhsZXNzX3VzZXJzLz9sYW5ndWFnZT1qYXZhc2NyaXB0I2Fub255bW91cy11c2VycykgPC9saT5cbiAgICogIDwvdWw+XG4gICAqIEBwYXJhbSBjbGllbnRPcHRpb25zIFNldHRpbmcgdG8gcHJvdmlkZSB0byB0aGUgU3RyZWFtIGNsaWVudCBpbnN0YW5jZVxuICAgKi9cbiAgYXN5bmMgaW5pdChcbiAgICBhcGlLZXk6IHN0cmluZyxcbiAgICB1c2VyT3JJZDogc3RyaW5nIHwgT3duVXNlclJlc3BvbnNlPFQ+IHwgVXNlclJlc3BvbnNlPFQ+IHwgdW5kZWZpbmVkLFxuICAgIHVzZXJUb2tlbk9yUHJvdmlkZXI6IFRva2VuT3JQcm92aWRlciB8ICdhbm9ueW1vdXMnIHwgJ2d1ZXN0JyxcbiAgICBjbGllbnRPcHRpb25zPzogU3RyZWFtQ2hhdE9wdGlvbnNcbiAgKTogQ29ubmVjdEFQSVJlc3BvbnNlPFQ+IHtcbiAgICB0aGlzLmNoYXRDbGllbnQgPSBTdHJlYW1DaGF0LmdldEluc3RhbmNlPFQ+KGFwaUtleSwgY2xpZW50T3B0aW9ucyk7XG4gICAgdGhpcy5jaGF0Q2xpZW50LmRldlRva2VuO1xuICAgIGxldCByZXN1bHQ7XG4gICAgYXdhaXQgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgdXNlciA9IHR5cGVvZiB1c2VyT3JJZCA9PT0gJ3N0cmluZycgPyB7IGlkOiB1c2VyT3JJZCB9IDogdXNlck9ySWQ7XG4gICAgICB0cnkge1xuICAgICAgICByZXN1bHQgPSBhd2FpdCAoXG4gICAgICAgICAge1xuICAgICAgICAgICAgZ3Vlc3Q6ICgpID0+IHRoaXMuY2hhdENsaWVudC5zZXRHdWVzdFVzZXIodXNlciEpLFxuICAgICAgICAgICAgYW5vbnltb3VzOiAoKSA9PiB0aGlzLmNoYXRDbGllbnQuY29ubmVjdEFub255bW91c1VzZXIoKSxcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvcmVzdHJpY3QtdGVtcGxhdGUtZXhwcmVzc2lvbnNcbiAgICAgICAgICB9W2Ake3VzZXJUb2tlbk9yUHJvdmlkZXJ9YF0gPz9cbiAgICAgICAgICAoKCkgPT4gdGhpcy5jaGF0Q2xpZW50LmNvbm5lY3RVc2VyKHVzZXIhLCB1c2VyVG9rZW5PclByb3ZpZGVyKSlcbiAgICAgICAgKSgpO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLmFkZFBlcm1hbmVudE5vdGlmaWNhdGlvbihcbiAgICAgICAgICAnc3RyZWFtQ2hhdC5FcnJvciBjb25uZWN0aW5nIHRvIGNoYXQsIHJlZnJlc2ggdGhlIHBhZ2UgdG8gdHJ5IGFnYWluLicsXG4gICAgICAgICAgJ2Vycm9yJ1xuICAgICAgICApO1xuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgIH1cbiAgICAgIHRoaXMudXNlclN1YmplY3QubmV4dChcbiAgICAgICAgdGhpcy5jaGF0Q2xpZW50LnVzZXIgPyB7IC4uLnRoaXMuY2hhdENsaWVudC51c2VyIH0gOiB1bmRlZmluZWRcbiAgICAgICk7XG4gICAgICBjb25zdCBzZGtQcmVmaXggPSAnc3RyZWFtLWNoYXQtYW5ndWxhcic7XG4gICAgICBpZiAoIXRoaXMuY2hhdENsaWVudC5nZXRVc2VyQWdlbnQoKS5pbmNsdWRlcyhzZGtQcmVmaXgpKSB7XG4gICAgICAgIHRoaXMuY2hhdENsaWVudC5zZXRVc2VyQWdlbnQoXG4gICAgICAgICAgYCR7c2RrUHJlZml4fS0ke3ZlcnNpb259LSR7dGhpcy5jaGF0Q2xpZW50LmdldFVzZXJBZ2VudCgpfWBcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCBjaGFubmVscyA9IGF3YWl0IHRoaXMuY2hhdENsaWVudC5xdWVyeUNoYW5uZWxzKFxuICAgICAgeyBpbnZpdGU6ICdwZW5kaW5nJyB9IGFzIGFueSBhcyBDaGFubmVsRmlsdGVyczxUPiwgLy8gVE9ETzogZmluZCBvdXQgd2h5IHdlIG5lZWQgdGhpcyB0eXBlY2FzdFxuICAgICAge30sXG4gICAgICB7IHVzZXJfaWQ6IHRoaXMuY2hhdENsaWVudC51c2VyPy5pZCB9XG4gICAgKTtcbiAgICB0aGlzLnBlbmRpbmdJbnZpdGVzU3ViamVjdC5uZXh0KGNoYW5uZWxzKTtcbiAgICB0aGlzLmFwcFNldHRpbmdzU3ViamVjdC5uZXh0KHVuZGVmaW5lZCk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICB0aGlzLmNoYXRDbGllbnQub24oKGUpID0+IHtcbiAgICAgICAgdGhpcy51cGRhdGVVc2VyKGUpO1xuICAgICAgICB0aGlzLnVwZGF0ZVBlbmRpbmdJbnZpdGVzKGUpO1xuICAgICAgICB0aGlzLm5vdGlmaWNhdGlvblN1YmplY3QubmV4dCh7XG4gICAgICAgICAgZXZlbnRUeXBlOiBlLnR5cGUsXG4gICAgICAgICAgZXZlbnQ6IGUsXG4gICAgICAgIH0pO1xuICAgICAgfSlcbiAgICApO1xuICAgIGxldCByZW1vdmVOb3RpZmljYXRpb246IHVuZGVmaW5lZCB8IEZ1bmN0aW9uO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgdGhpcy5jaGF0Q2xpZW50Lm9uKCdjb25uZWN0aW9uLmNoYW5nZWQnLCAoZSkgPT4ge1xuICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGlzT25saW5lID0gZS5vbmxpbmU7XG4gICAgICAgICAgaWYgKGlzT25saW5lKSB7XG4gICAgICAgICAgICBpZiAocmVtb3ZlTm90aWZpY2F0aW9uKSB7XG4gICAgICAgICAgICAgIHJlbW92ZU5vdGlmaWNhdGlvbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZW1vdmVOb3RpZmljYXRpb24gPVxuICAgICAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2UuYWRkUGVybWFuZW50Tm90aWZpY2F0aW9uKFxuICAgICAgICAgICAgICAgICdzdHJlYW1DaGF0LkNvbm5lY3Rpb24gZmFpbHVyZSwgcmVjb25uZWN0aW5nIG5vdy4uLidcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5jb25uZWN0aW9uU3RhdGVTdWJqZWN0Lm5leHQoaXNPbmxpbmUgPyAnb25saW5lJyA6ICdvZmZsaW5lJyk7XG4gICAgICAgIH0pO1xuICAgICAgfSlcbiAgICApO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICAvKipcbiAgICogRGlzY29ubmVjdHMgdGhlIGN1cnJlbnQgdXNlciwgYW5kIGNsb3NlcyB0aGUgV2ViU29ja2V0IGNvbm5lY3Rpb24uIFVzZWZ1bCB3aGVuIGRpc2Nvbm5lY3RpbmcgYSBjaGF0IHVzZXIsIHVzZSBpbiBjb21iaW5hdGlvbiB3aXRoIFtgcmVzZXRgXSguL0NoYW5uZWxTZXJ2aWNlLm1keC8jcmVzZXQpLlxuICAgKi9cbiAgYXN5bmMgZGlzY29ubmVjdFVzZXIoKSB7XG4gICAgdGhpcy5wZW5kaW5nSW52aXRlc1N1YmplY3QubmV4dChbXSk7XG4gICAgYXdhaXQgdGhpcy5jaGF0Q2xpZW50LmRpc2Nvbm5lY3RVc2VyKCk7XG4gICAgdGhpcy51c2VyU3ViamVjdC5uZXh0KHVuZGVmaW5lZCk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goKHMpID0+IHMudW5zdWJzY3JpYmUoKSk7XG4gIH1cblxuICAvKipcbiAgICogTG9hZHMgdGhlIGN1cnJlbnQgW2FwcGxpY2F0aW9uIHNldHRpbmdzXShodHRwczovL2dldHN0cmVhbS5pby9jaGF0L2RvY3MvamF2YXNjcmlwdC9hcHBfc2V0dGluZ19vdmVydmlldy8/bGFuZ3VhZ2U9amF2YXNjcmlwdCksIGlmIHRoZSBhcHBsaWNhdGlvbiBzZXR0aW5ncyBoYXZlIGFscmVhZHkgYmVlbiBsb2FkZWQsIGl0IGRvZXMgbm90aGluZy5cbiAgICovXG4gIGFzeW5jIGdldEFwcFNldHRpbmdzKCkge1xuICAgIGlmICh0aGlzLmFwcFNldHRpbmdzU3ViamVjdC5nZXRWYWx1ZSgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHNldHRpbmdzID0gYXdhaXQgdGhpcy5jaGF0Q2xpZW50LmdldEFwcFNldHRpbmdzKCk7XG4gICAgdGhpcy5hcHBTZXR0aW5nc1N1YmplY3QubmV4dCgoc2V0dGluZ3MuYXBwIGFzIEFwcFNldHRpbmdzKSB8fCB7fSk7XG4gIH1cblxuICAvKipcbiAgICogRmxhZyB0aGUgbWVzc2FnZSB3aXRoIHRoZSBnaXZlbiBJRC4gSWYgeW91IHdhbnQgdG8ga25vdyBbbW9yZSBhYm91dCBmbGFnc10oaHR0cHM6Ly9nZXRzdHJlYW0uaW8vY2hhdC9kb2NzL2phdmFzY3JpcHQvbW9kZXJhdGlvbi8/bGFuZ3VhZ2U9amF2YXNjcmlwdCkgY2hlY2sgb3V0IHRoZSBwbGF0Zm9ybSBkb2N1bWVudGF0aW9uLlxuICAgKiBAcGFyYW0gbWVzc2FnZUlkXG4gICAqL1xuICBhc3luYyBmbGFnTWVzc2FnZShtZXNzYWdlSWQ6IHN0cmluZykge1xuICAgIGF3YWl0IHRoaXMuY2hhdENsaWVudC5mbGFnTWVzc2FnZShtZXNzYWdlSWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNlYXJjaGVzIGZvciB1c2VycyBpbiB0aGUgYXBwbGljYXRpb24gdGhhdCBoYXZlIElEIG9yIG5hbWUgbWF0Y2hpbmcgdGhlIHByb3ZpZGVkIHNlYXJjaCB0ZXJtXG4gICAqIEBwYXJhbSBzZWFyY2hUZXJtXG4gICAqIEByZXR1cm5zIFRoZSB1c2VycyBtYXRjaGluZyB0aGUgc2VhcmNoXG4gICAqL1xuICBhc3luYyBhdXRvY29tcGxldGVVc2VycyhzZWFyY2hUZXJtOiBzdHJpbmcpIHtcbiAgICBpZiAoIXNlYXJjaFRlcm0pIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5jaGF0Q2xpZW50LnF1ZXJ5VXNlcnMoe1xuICAgICAgJG9yOiBbXG4gICAgICAgIHsgaWQ6IHsgJGF1dG9jb21wbGV0ZTogc2VhcmNoVGVybSB9IH0sXG4gICAgICAgIHsgbmFtZTogeyAkYXV0b2NvbXBsZXRlOiBzZWFyY2hUZXJtIH0gfSxcbiAgICAgIF0sXG4gICAgICBpZDogeyAkbmU6IHRoaXMuY2hhdENsaWVudC51c2VySUQhIH0sXG4gICAgfSBhcyBVc2VyRmlsdGVyczxUPik7IC8vIFRPRE86IGZpbmQgb3V0IHdoeSB3ZSBuZWVkIHRoaXMgdHlwZWNhc3RcbiAgICByZXR1cm4gcmVzdWx0LnVzZXJzO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVQZW5kaW5nSW52aXRlcyhlOiBFdmVudDxUPikge1xuICAgIGlmIChlLm1lbWJlcj8udXNlcj8uaWQgPT09IHRoaXMuY2hhdENsaWVudC51c2VyPy5pZCAmJiBlLmNoYW5uZWwpIHtcbiAgICAgIGNvbnN0IHBlbmRpbmdJbnZpdGVzID0gdGhpcy5wZW5kaW5nSW52aXRlc1N1YmplY3QuZ2V0VmFsdWUoKTtcbiAgICAgIGlmIChlLnR5cGUgPT09ICdub3RpZmljYXRpb24uaW52aXRlZCcpIHtcbiAgICAgICAgdGhpcy5wZW5kaW5nSW52aXRlc1N1YmplY3QubmV4dChbLi4ucGVuZGluZ0ludml0ZXMsIGUuY2hhbm5lbF0pO1xuICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgZS50eXBlID09PSAnbm90aWZpY2F0aW9uLmludml0ZV9hY2NlcHRlZCcgfHxcbiAgICAgICAgZS50eXBlID09PSAnbm90aWZpY2F0aW9uLmludml0ZV9yZWplY3RlZCdcbiAgICAgICkge1xuICAgICAgICBjb25zdCBpbmRleCA9IHBlbmRpbmdJbnZpdGVzLmZpbmRJbmRleChcbiAgICAgICAgICAoaSkgPT4gaT8uY2lkID09PSBlLmNoYW5uZWw/LmNpZFxuICAgICAgICApO1xuICAgICAgICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgICAgICAgcGVuZGluZ0ludml0ZXMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgICB0aGlzLnBlbmRpbmdJbnZpdGVzU3ViamVjdC5uZXh0KFsuLi5wZW5kaW5nSW52aXRlc10pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVVc2VyKGU6IEV2ZW50PFQ+KSB7XG4gICAgaWYgKHR5cGVvZiBlLnRvdGFsX3VucmVhZF9jb3VudCAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIGxldCB1c2VyOiBPd25Vc2VyUmVzcG9uc2U8VD4gfCBVc2VyUmVzcG9uc2U8VD4gfCB1bmRlZmluZWQ7XG4gICAgICB0aGlzLnVzZXJTdWJqZWN0LnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKCh1KSA9PiB7XG4gICAgICAgIHVzZXIgPSB1O1xuICAgICAgfSk7XG4gICAgICBpZiAodXNlciAmJiB1c2VyLnRvdGFsX3VucmVhZF9jb3VudCAhPT0gZS50b3RhbF91bnJlYWRfY291bnQpIHtcbiAgICAgICAgdGhpcy51c2VyU3ViamVjdC5uZXh0KHtcbiAgICAgICAgICAuLi51c2VyLFxuICAgICAgICAgIHRvdGFsX3VucmVhZF9jb3VudDogZS50b3RhbF91bnJlYWRfY291bnQsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAodHlwZW9mIGUudW5yZWFkX2NoYW5uZWxzICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgbGV0IHVzZXI6IE93blVzZXJSZXNwb25zZTxUPiB8IFVzZXJSZXNwb25zZTxUPiB8IHVuZGVmaW5lZDtcbiAgICAgIHRoaXMudXNlclN1YmplY3QucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoKHUpID0+IHtcbiAgICAgICAgdXNlciA9IHU7XG4gICAgICB9KTtcbiAgICAgIGlmICh1c2VyICYmIHVzZXIudW5yZWFkX2NoYW5uZWxzICE9PSBlLnVucmVhZF9jaGFubmVscykge1xuICAgICAgICB0aGlzLnVzZXJTdWJqZWN0Lm5leHQoe1xuICAgICAgICAgIC4uLnVzZXIsXG4gICAgICAgICAgdW5yZWFkX2NoYW5uZWxzOiBlLnVucmVhZF9jaGFubmVscyxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICh0eXBlb2YgZS51bnJlYWRfY291bnQgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICBsZXQgdXNlcjogT3duVXNlclJlc3BvbnNlPFQ+IHwgVXNlclJlc3BvbnNlPFQ+IHwgdW5kZWZpbmVkO1xuICAgICAgdGhpcy51c2VyU3ViamVjdC5waXBlKHRha2UoMSkpLnN1YnNjcmliZSgodSkgPT4ge1xuICAgICAgICB1c2VyID0gdTtcbiAgICAgIH0pO1xuICAgICAgaWYgKHVzZXIgJiYgdXNlci51bnJlYWRfY291bnQgIT09IGUudW5yZWFkX2NvdW50KSB7XG4gICAgICAgIHRoaXMudXNlclN1YmplY3QubmV4dCh7XG4gICAgICAgICAgLi4udXNlcixcbiAgICAgICAgICB1bnJlYWRfY291bnQ6IGUudW5yZWFkX2NvdW50LFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKFxuICAgICAgZS50eXBlID09PSAndXNlci51cGRhdGVkJyAmJlxuICAgICAgdGhpcy5jaGF0Q2xpZW50LnVzZXIgJiZcbiAgICAgIGUudXNlcj8uaWQgPT09IHRoaXMuY2hhdENsaWVudC51c2VyLmlkXG4gICAgKSB7XG4gICAgICB0aGlzLnVzZXJTdWJqZWN0Lm5leHQoeyAuLi50aGlzLmNoYXRDbGllbnQudXNlciB9KTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -20,7 +20,7 @@ import transliterate from '@stream-io/transliterate';
20
20
  import * as i8 from 'angular-mentions';
21
21
  import { MentionModule } from 'angular-mentions';
22
22
 
23
- const version = '4.52.0-support-angular-17.2';
23
+ const version = '4.52.1';
24
24
 
25
25
  /**
26
26
  * The `NotificationService` can be used to add or remove notifications. By default the [`NotificationList`](../components/NotificationListComponent.mdx) component displays the currently active notifications.
@@ -123,6 +123,7 @@ class ChatClientService {
123
123
  * @param userOrId you can emit this for anonymous logins
124
124
  * @param userTokenOrProvider You can provide:<ul>
125
125
  * <li> a token, </li>
126
+ * <li> a token provider, a method that returns `Promise<string>`, which can be called when the previous token expires (recommended setup for production applications)</li>
126
127
  * <li> the keyword 'guest' to connect as [guest user](https://getstream.io/chat/docs/javascript/authless_users/?language=javascript#guest-users) </li>
127
128
  * <li> the keyword 'anonymous' to connect as [anonymous user](https://getstream.io/chat/docs/javascript/authless_users/?language=javascript#anonymous-users) </li>
128
129
  * </ul>
@@ -1199,7 +1200,13 @@ class ChannelService {
1199
1200
  if (!latestMessage || !e.user) {
1200
1201
  return;
1201
1202
  }
1202
- latestMessage.readBy = getReadBy(latestMessage, channel);
1203
+ if (latestMessage.readBy) {
1204
+ latestMessage.readBy.splice(0, latestMessage.readBy.length);
1205
+ }
1206
+ else {
1207
+ latestMessage.readBy = [];
1208
+ }
1209
+ latestMessage.readBy.push(...getReadBy(latestMessage, channel));
1203
1210
  messages[messages.length - 1] = Object.assign({}, latestMessage);
1204
1211
  this.activeChannelMessagesSubject.next([...messages]);
1205
1212
  });