barsa-novin-ray-core 1.0.409 → 1.0.410
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.
|
@@ -161,8 +161,8 @@ export class NotificationService {
|
|
|
161
161
|
}
|
|
162
162
|
loadUnreadNotificationCount() {
|
|
163
163
|
BarsaApi.Bw.RunBlMethodAsync({
|
|
164
|
-
Parameters: [],
|
|
165
|
-
Method: '
|
|
164
|
+
Parameters: [BarsaApi.LoginFormData.PortalId],
|
|
165
|
+
Method: 'GetShellbarNotificationCountByPortalId',
|
|
166
166
|
SuccessFn: (e) => {
|
|
167
167
|
this._updateUnreadAndCount(e);
|
|
168
168
|
this._notifiationCountLoaded$.next(true);
|
|
@@ -178,8 +178,8 @@ export class NotificationService {
|
|
|
178
178
|
}
|
|
179
179
|
this.notificationLoading(true);
|
|
180
180
|
BarsaApi.Bw.RunBlMethodAsync({
|
|
181
|
-
Parameters: [pageIndex],
|
|
182
|
-
Method: '
|
|
181
|
+
Parameters: [pageIndex, BarsaApi.LoginFormData.PortalId],
|
|
182
|
+
Method: 'GetShellbarNotificationsByPortalId',
|
|
183
183
|
SuccessFn: (e) => {
|
|
184
184
|
const notifications = this._notifications$.getValue();
|
|
185
185
|
const notifListOfTags = notifications.map((c) => c.Tag);
|
|
@@ -296,4 +296,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImpor
|
|
|
296
296
|
type: Inject,
|
|
297
297
|
args: [NOTIFICATAION_POPUP_SERVER]
|
|
298
298
|
}] }, { type: i1.LogService }, { type: i2.LowerCasePipe }, { type: i3.BbbTranslatePipe }, { type: i4.DomSanitizer }, { type: i5.ServiceWorkerNotificationService }, { type: i6.PortalService }, { type: i0.NgZone }]; } });
|
|
299
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1ub3Zpbi1yYXktY29yZS9zcmMvbGliL3NlcnZpY2VzL25vdGlmaWNhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRTNELE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFFbkQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRXpELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7Ozs7OztBQVFsRSxNQUFNLE9BQU8sbUJBQW1CO0lBUTVCLFlBQ2tELGFBQXVDLEVBQzdFLFdBQXVCLEVBQ3ZCLFVBQXlCLEVBQ3pCLGFBQStCLEVBQy9CLGFBQTJCLEVBQzNCLDBCQUE0RCxFQUM1RCxjQUE2QixFQUM3QixPQUFlO1FBUHVCLGtCQUFhLEdBQWIsYUFBYSxDQUEwQjtRQUM3RSxnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQUN2QixlQUFVLEdBQVYsVUFBVSxDQUFlO1FBQ3pCLGtCQUFhLEdBQWIsYUFBYSxDQUFrQjtRQUMvQixrQkFBYSxHQUFiLGFBQWEsQ0FBYztRQUMzQiwrQkFBMEIsR0FBMUIsMEJBQTBCLENBQWtDO1FBQzVELG1CQUFjLEdBQWQsY0FBYyxDQUFlO1FBQzdCLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFmbkIsb0JBQWUsR0FBRyxJQUFJLGVBQWUsQ0FBd0IsRUFBRSxDQUFDLENBQUM7UUFDakUsd0JBQW1CLEdBQUcsSUFBSSxlQUFlLENBQWtDLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNsRyw4QkFBeUIsR0FBRyxJQUFJLGVBQWUsQ0FBUyxDQUFDLENBQUMsQ0FB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ekIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsaUNBQWlDLENBQUMsQ0FBQzthQUM3RDtRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs7Z0hBOVRRLG1CQUFtQixrQkFTaEIsMEJBQTBCO29IQVQ3QixtQkFBbUI7MkZBQW5CLG1CQUFtQjtrQkFEL0IsVUFBVTs7MEJBVUYsTUFBTTsyQkFBQywwQkFBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMb3dlckNhc2VQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgTmdab25lIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBCYXJzYUFwaSB9IGZyb20gJy4uL2Fic3RyYWN0LWNsYXNzZXMvYmFyc2EtYXBpJztcbmltcG9ydCB7IE1ldGFvYmplY3REYXRhTW9kZWwsIE5vdGlmaWNhdGlvbkl0ZW0sIE5vdGlmeU9wdGlvbnMgfSBmcm9tICcuLi9hYnN0cmFjdC1jbGFzc2VzL21vZGVscyc7XG5pbXBvcnQgeyBOT1RJRklDQVRBSU9OX1BPUFVQX1NFUlZFUiB9IGZyb20gJy4uL2luamRlY3Rpb24tdG9rZW5zJztcbmltcG9ydCB7IEJiYlRyYW5zbGF0ZVBpcGUgfSBmcm9tICcuLi9waXBlcy9iYmItdHJhbnNsYXRlLnBpcGUnO1xuaW1wb3J0IHsgTG9nU2VydmljZSB9IGZyb20gJy4vbG9nLnNlcnZpY2UnO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uUG9wdXBTZXJ2aWNlIH0gZnJvbSAnLi9ub3RpZmljYXRpb24tcG9wdXAuc2VydmljZSc7XG5pbXBvcnQgeyBTZXJ2aWNlV29ya2VyTm90aWZpY2F0aW9uU2VydmljZSB9IGZyb20gJy4vbm90aWZpY2F0aW9uLXN3LnNlcnZpY2UnO1xuaW1wb3J0IHsgUG9ydGFsU2VydmljZSB9IGZyb20gJy4vcG9ydGFsLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTm90aWZpY2F0aW9uU2VydmljZSB7XG4gICAgcHJpdmF0ZSBfbm90aWZpY2F0aW9ucyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE1ldGFvYmplY3REYXRhTW9kZWxbXT4oW10pO1xuICAgIHByaXZhdGUgX25vdGlmaWNhdGlvbkNvdW50JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8eyB1bnJlYWQ6IG51bWJlcjsgYWxsOiBudW1iZXIgfT4oeyB1bnJlYWQ6IDAsIGFsbDogMCB9KTtcbiAgICBwcml2YXRlIF9ub3RpZmljYXRpb25VbnJlYWRDb3VudCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4oMCk7XG4gICAgcHJpdmF0ZSBfbm90aWZpY2F0aW9uTG9hZGluZyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgICBwcml2YXRlIF9ub3RpZmlhdGlvbkNvdW50TG9hZGVkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICAgIHBhZ2VDb3VudCA9IDE7XG4gICAgcGFnZUluZGV4ID0gMDtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQEluamVjdChOT1RJRklDQVRBSU9OX1BPUFVQX1NFUlZFUikgcHJvdGVjdGVkIF9wb3B1cFNlcnZpY2U6IE5vdGlmaWNhdGlvblBvcHVwU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBfbG9nU2VydmljZTogTG9nU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBfbG93ZXJDYXNlOiBMb3dlckNhc2VQaXBlLFxuICAgICAgICBwcml2YXRlIF9iYmJUcmFuc2xhdGU6IEJiYlRyYW5zbGF0ZVBpcGUsXG4gICAgICAgIHByaXZhdGUgX2RvbVNhbml0aXplcjogRG9tU2FuaXRpemVyLFxuICAgICAgICBwcml2YXRlIF9zZXJ2aWNlV29ya2VyTm90aWZpY2F0aW9uOiBTZXJ2aWNlV29ya2VyTm90aWZpY2F0aW9uU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBfcG9ydGFsU2VydmljZTogUG9ydGFsU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBfbmdab25lOiBOZ1pvbmVcbiAgICApIHt9XG4gICAgZ2V0IG5vdGlmaWNhdGlvbkNvdW50TG9hZGVkJCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX25vdGlmaWF0aW9uQ291bnRMb2FkZWQkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cbiAgICBnZXQgbm90aWZpY2F0aW9uQ291bnQkKCk6IE9ic2VydmFibGU8eyB1bnJlYWQ6IG51bWJlcjsgYWxsOiBudW1iZXIgfT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fbm90aWZpY2F0aW9uQ291bnQkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIGdldCBub3RpZmljYXRpb25zJCgpOiBPYnNlcnZhYmxlPE1ldGFvYmplY3REYXRhTW9kZWxbXT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fbm90aWZpY2F0aW9ucyQuYXNPYnNlcnZhYmxlKCkucGlwZSgpO1xuICAgIH1cbiAgICBnZXQgbm90aWZpY2F0aW9uTG9hZGluZyQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9ub3RpZmljYXRpb25Mb2FkaW5nJC5hc09ic2VydmFibGUoKTtcbiAgICB9XG4gICAgcHVibGljIGxvYWRNb3JlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmxvYWROb3RpZmljYXRpb25zKHRoaXMucGFnZUluZGV4KTtcbiAgICB9XG4gICAgcHVibGljIHNldE5vdGlmaWNhdGlvblZpZXdlZCh0YWdzOiBzdHJpbmdbXSk6IHZvaWQge1xuICAgICAgICBCYXJzYUFwaS5Cdy5SdW5CbE1ldGhvZEFzeW5jKHtcbiAgICAgICAgICAgIFBhcmFtZXRlcnM6IFt0YWdzXSxcbiAgICAgICAgICAgIE1ldGhvZDogJ1NldE5vdGlmaWNhdGlvblZpZXdlZCcsXG4gICAgICAgICAgICBTdWNjZXNzRm46ICgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBtb2xpc3RDdXJyID0gdGhpcy5fbm90aWZpY2F0aW9ucyQuZ2V0VmFsdWUoKTtcbiAgICAgICAgICAgICAgICBjb25zdCB1cGRhdGVkVW5yZWFkTW9MaXN0ID0gbW9saXN0Q3Vyci5tYXAoKGMpID0+ICh7XG4gICAgICAgICAgICAgICAgICAgIC4uLmMsXG4gICAgICAgICAgICAgICAgICAgIFVucmVhZDogdGFncy5pbmRleE9mKGMuVGFnKSA+IC0xID8gZmFsc2UgOiBjLlVucmVhZFxuICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9ub3RpZmljYXRpb25zJC5uZXh0KFsuLi51cGRhdGVkVW5yZWFkTW9MaXN0XSk7XG4gICAgICAgICAgICAgICAgdGhpcy5pbmNyZWFzZU5vdGlmY2F0aW9uQ291bnQoLXRhZ3MubGVuZ3RoLCAwKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGFncztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBGYWlsRm46IChlKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fbG9nU2VydmljZS5lcnJvcihlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHB1YmxpYyBTaG93Tm90aWZpY2F0aW9uUmVsYXRlZE1vKGU6IHsgdGFnOiBzdHJpbmc7IG1vOiBNZXRhb2JqZWN0RGF0YU1vZGVsOyBuYW1hOiBzdHJpbmcgfSk6IHZvaWQge1xuICAgICAgICBjb25zdCBlZSA9IHtcbiAgICAgICAgICAgIC4uLmUsXG4gICAgICAgICAgICBhZnRlclJlYWR5OiAoZTI6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIEJhcnNhQXBpLkJ3LlJ1bkJsTWV0aG9kQXN5bmMoe1xuICAgICAgICAgICAgICAgICAgICBQYXJhbWV0ZXJzOiBbZS50YWddLFxuICAgICAgICAgICAgICAgICAgICBNZXRob2Q6ICdCYXJzYV9TZXRSZWFkUmFkaWZDYXJ0YWJsZUJ5VGFnJyxcbiAgICAgICAgICAgICAgICAgICAgRmFpbEZuOiAoZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9sb2dTZXJ2aWNlLmVycm9yKGVycik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5fcG9ydGFsU2VydmljZS5TaG93Rm9ybShlZSk7XG4gICAgfVxuICAgIHB1YmxpYyBoYW5kbGVUb3BpYyhldmVudFRvcGljLCBjb250ZW50LCBvd25lcktleSk6IHZvaWQge1xuICAgICAgICBpZiAoZXZlbnRUb3BpYyA9PT0gJ0RlbGV0ZU5vdGlmaWNhdGlvbk1lc3NhZ2UnKSB7XG4gICAgICAgICAgICBjb25zdCB7IFRhZ3MgfTogeyBUYWdzOiBzdHJpbmdbXSB9ID0gY29udGVudDtcbiAgICAgICAgICAgIGNvbnN0IG5vdGlmaWNhdGlvbnMgPSB0aGlzLl9ub3RpZmljYXRpb25zJC5nZXRWYWx1ZSgpO1xuICAgICAgICAgICAgY29uc3QgeyBmaW5kSW5Ob3RpZmljYXRpb25zLCB1bnJlYWRDb3VudCwgY291bnQgfSA9IHRoaXMuX2ZpbmROb3RpZmljYXRpb25zTWVzc2FnZShUYWdzLCBub3RpZmljYXRpb25zKTtcbiAgICAgICAgICAgIGlmIChmaW5kSW5Ob3RpZmljYXRpb25zKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fbm90aWZpY2F0aW9ucyQubmV4dChub3RpZmljYXRpb25zLmZpbHRlcigoYykgPT4gIVRhZ3MuaW5jbHVkZXMoYy5UYWcpKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodW5yZWFkQ291bnQgPiAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pbmNyZWFzZU5vdGlmY2F0aW9uQ291bnQoLXVucmVhZENvdW50LCAtY291bnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKGV2ZW50VG9waWMgPT09ICdTZXRSZWFkTm90aWZpY2F0aW9uTWVzc2FnZScpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vdGlmaWNhdGlvbnMgPSB0aGlzLl9ub3RpZmljYXRpb25zJC5nZXRWYWx1ZSgpO1xuICAgICAgICAgICAgY29uc3QgeyBUYWdzIH06IHsgVGFnczogc3RyaW5nW10gfSA9IGNvbnRlbnQ7XG4gICAgICAgICAgICBUYWdzLmZvckVhY2goKHRhZykgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZvdW5kSW5kZXggPSBub3RpZmljYXRpb25zLmZpbmRJbmRleCgoYykgPT4gYy5UYWcgPT09IHRhZyk7XG4gICAgICAgICAgICAgICAgaWYgKGZvdW5kSW5kZXggPiAtMSkge1xuICAgICAgICAgICAgICAgICAgICBub3RpZmljYXRpb25zW2ZvdW5kSW5kZXhdID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgLi4ubm90aWZpY2F0aW9uc1tmb3VuZEluZGV4XSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFVucmVhZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBVbnJlYWQkQ2FwdGlvbjogJ9mG2KfYr9ix2LPYqidcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fbm90aWZpY2F0aW9ucyQubmV4dChbLi4ubm90aWZpY2F0aW9uc10pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBjb25zdCBub3RpZmljYXRpb25zQ291bnQgPSB0aGlzLl9ub3RpZmljYXRpb25Db3VudCQuZ2V0VmFsdWUoKTtcbiAgICAgICAgICAgIHRoaXMuaW5jcmVhc2VOb3RpZmNhdGlvbkNvdW50KC1UYWdzLmxlbmd0aCwgbm90aWZpY2F0aW9uc0NvdW50LmFsbCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcHJpdmF0ZSBfZmluZE5vdGlmaWNhdGlvbnNNZXNzYWdlKFxuICAgICAgICBUYWdzOiBzdHJpbmdbXSxcbiAgICAgICAgbm90aWZpY2F0aW9uczogTWV0YW9iamVjdERhdGFNb2RlbFtdXG4gICAgKTogeyBmaW5kSW5Ob3RpZmljYXRpb25zOiBib29sZWFuOyB1bnJlYWRDb3VudDogbnVtYmVyOyBjb3VudDogbnVtYmVyIH0ge1xuICAgICAgICBsZXQgZmluZEluTm90aWZpY2F0aW9ucyA9IGZhbHNlO1xuICAgICAgICBsZXQgdW5yZWFkQ291bnQgPSAwO1xuICAgICAgICBsZXQgY291bnQgPSAwO1xuICAgICAgICBUYWdzLmZvckVhY2goKHRhZykgPT4ge1xuICAgICAgICAgICAgY29uc3QgZm91bmROb3RpZmljYXRpb24gPSBub3RpZmljYXRpb25zLmZpbmQoKGMpID0+IGMuVGFnID09PSB0YWcpO1xuICAgICAgICAgICAgaWYgKGZvdW5kTm90aWZpY2F0aW9uKSB7XG4gICAgICAgICAgICAgICAgZmluZEluTm90aWZpY2F0aW9ucyA9IHRydWU7XG4gICAgICAgICAgICAgICAgY291bnQrKztcbiAgICAgICAgICAgICAgICBpZiAoZm91bmROb3RpZmljYXRpb24uVW5yZWFkKSB7XG4gICAgICAgICAgICAgICAgICAgIHVucmVhZENvdW50Kys7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHsgZmluZEluTm90aWZpY2F0aW9ucywgdW5yZWFkQ291bnQsIGNvdW50IH07XG4gICAgfVxuXG4gICAgcHVibGljIGFkZE5vdGlmaWNhdGlvbihcbiAgICAgICAgbXNnOiBzdHJpbmcsXG4gICAgICAgIHRpdGxlOiBzdHJpbmcsXG4gICAgICAgIHR5cGU6IHN0cmluZyxcbiAgICAgICAgaW1hZ2U6IHN0cmluZyxcbiAgICAgICAgbW8sXG4gICAgICAgIHVpT3B0aW9uczogTm90aWZ5T3B0aW9ucyxcbiAgICAgICAgb3RoZXJPcHRpb25zOiBSZWNvcmQ8c3RyaW5nLCBhbnk+XG4gICAgKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX25nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgaWYgKG90aGVyT3B0aW9ucykge1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgTW9JZCwgVHlwZURlZklkIH0gPSBvdGhlck9wdGlvbnM7XG4gICAgICAgICAgICAgICAgbGV0IG5ld05vdGlmaWNhdGlvbjogTm90aWZpY2F0aW9uSXRlbSA9IHtcbiAgICAgICAgICAgICAgICAgICAgJENhcHRpb246IHRpdGxlLFxuICAgICAgICAgICAgICAgICAgICBJZDogTW9JZCxcbiAgICAgICAgICAgICAgICAgICAgJFR5cGVEZWZJZDogVHlwZURlZklkLFxuICAgICAgICAgICAgICAgICAgICBUaXRsZTogdGl0bGUsXG4gICAgICAgICAgICAgICAgICAgIFVucmVhZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgSWNvbjogaW1hZ2UsXG4gICAgICAgICAgICAgICAgICAgIEltYWdlOiAnJyxcbiAgICAgICAgICAgICAgICAgICAgQ29udGVudDogbXNnLFxuICAgICAgICAgICAgICAgICAgICBUYWc6ICcnLFxuICAgICAgICAgICAgICAgICAgICBQcmlvcml0eTogMCxcbiAgICAgICAgICAgICAgICAgICAgU3ViamVjdDogJycsXG4gICAgICAgICAgICAgICAgICAgICRTYWZlQ29udGVudDogdGhpcy5fZG9tU2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKG1zZyksXG4gICAgICAgICAgICAgICAgICAgIENyZWF0aW9uRGF0ZTogbmV3IERhdGUoKSxcbiAgICAgICAgICAgICAgICAgICAgQ3JlYXRpb25EYXRlJENhcHRpb246IHRoaXMuX2JiYlRyYW5zbGF0ZS50cmFuc2Zvcm0oJ0RhdGVSX1RvZGF5JylcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGNvbnN0IHBhcnNlZE1vID0gbW8gPyBCYXJzYUFwaS5FeHQuZGVjb2RlKG1vKSA6IG51bGw7XG4gICAgICAgICAgICAgICAgbmV3Tm90aWZpY2F0aW9uID0gdGhpcy5fcHJlcGFyZVByb3BlcnRpZXMobmV3Tm90aWZpY2F0aW9uLCBwYXJzZWRNbywgbXNnKTtcblxuICAgICAgICAgICAgICAgIGlmIChwYXJzZWRNbykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBtb2xpc3QgPSB0aGlzLl9ub3RpZmljYXRpb25zJC5nZXRWYWx1ZSgpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9ub3RpZmljYXRpb25zJC5uZXh0KFtuZXdOb3RpZmljYXRpb24sIC4uLm1vbGlzdF0pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluY3JlYXNlTm90aWZjYXRpb25Db3VudCgxLCAxKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5zaG93Tm90aWZpY2F0aW9uKG5ld05vdGlmaWNhdGlvbiwgcGFyc2VkTW8sIHVpT3B0aW9ucywgb3RoZXJPcHRpb25zKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGluY3JlYXNlTm90aWZjYXRpb25Db3VudCh1bnJlYWQ6IG51bWJlciwgY291bnQ6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBjb25zdCBjb3VudFZhbHVlID0gdGhpcy5fbm90aWZpY2F0aW9uQ291bnQkLmdldFZhbHVlKCk7XG4gICAgICAgIGNvbnN0IHN1bVVucmVhZCA9IGNvdW50VmFsdWUudW5yZWFkICsgK3VucmVhZDtcbiAgICAgICAgY29uc3Qgc3VtQWxsID0gY291bnRWYWx1ZS5hbGwgKyArY291bnQ7XG4gICAgICAgIHRoaXMuX25vdGlmaWNhdGlvbkNvdW50JC5uZXh0KHsgdW5yZWFkOiBzdW1VbnJlYWQgPiAwID8gc3VtVW5yZWFkIDogMCwgYWxsOiBzdW1BbGwgPiAwID8gc3VtQWxsIDogMCB9KTtcbiAgICB9XG4gICAgcHVibGljIGxvYWRVbnJlYWROb3RpZmljYXRpb25Db3VudCgpOiB2b2lkIHtcbiAgICAgICAgQmFyc2FBcGkuQncuUnVuQmxNZXRob2RBc3luYyh7XG4gICAgICAgICAgICBQYXJhbWV0ZXJzOiBbXSxcbiAgICAgICAgICAgIE1ldGhvZDogJ0dldFNoZWxsYmFyTm90aWZpY2F0aW9uQ291bnQnLFxuICAgICAgICAgICAgU3VjY2Vzc0ZuOiAoZTogeyBVbnJlYWQ6IG51bWJlcjsgQWxsOiBudW1iZXIgfSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX3VwZGF0ZVVucmVhZEFuZENvdW50KGUpO1xuICAgICAgICAgICAgICAgIHRoaXMuX25vdGlmaWF0aW9uQ291bnRMb2FkZWQkLm5leHQodHJ1ZSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgRmFpbEZuOiAoZSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX2xvZ1NlcnZpY2UuZXJyb3IoZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBwdWJsaWMgbG9hZE5vdGlmaWNhdGlvbnMocGFnZUluZGV4OiBudW1iZXIgPSAwKTogdm9pZCB7XG4gICAgICAgIGlmIChwYWdlSW5kZXggKyAxID4gdGhpcy5wYWdlQ291bnQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbkxvYWRpbmcodHJ1ZSk7XG4gICAgICAgIEJhcnNhQXBpLkJ3LlJ1bkJsTWV0aG9kQXN5bmMoe1xuICAgICAgICAgICAgUGFyYW1ldGVyczogW3BhZ2VJbmRleF0sXG4gICAgICAgICAgICBNZXRob2Q6ICdHZXRTaGVsbGJhck5vdGlmaWNhdGlvbnMnLFxuICAgICAgICAgICAgU3VjY2Vzc0ZuOiAoZTogeyBQYWdlQ291bnQ6IG51bWJlcjsgTW9MaXN0OiBNZXRhb2JqZWN0RGF0YU1vZGVsW10gfSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IG5vdGlmaWNhdGlvbnMgPSB0aGlzLl9ub3RpZmljYXRpb25zJC5nZXRWYWx1ZSgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IG5vdGlmTGlzdE9mVGFncyA9IG5vdGlmaWNhdGlvbnMubWFwKChjKSA9PiBjLlRhZyk7XG4gICAgICAgICAgICAgICAgY29uc3QgbW9saXN0ID0gZS5Nb0xpc3QuZmlsdGVyKChjKSA9PiBub3RpZkxpc3RPZlRhZ3MuaW5kZXhPZihjLlRhZykgPT09IC0xKS5tYXAoKG1vKSA9PlxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9wcmVwYXJlUHJvcGVydGllcyg8Tm90aWZpY2F0aW9uSXRlbT5tbywgbW8sIG1vLklNZXNzYWdlPy5Db250ZW50KVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgdGhpcy5fbm90aWZpY2F0aW9ucyQubmV4dChbLi4ubm90aWZpY2F0aW9ucywgLi4ubW9saXN0XSk7XG4gICAgICAgICAgICAgICAgdGhpcy5wYWdlQ291bnQgPSArZS5QYWdlQ291bnQ7XG4gICAgICAgICAgICAgICAgdGhpcy5wYWdlSW5kZXggPSBwYWdlSW5kZXggKyAxO1xuICAgICAgICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uTG9hZGluZyhmYWxzZSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgRmFpbEZuOiAoZSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX2xvZ1NlcnZpY2UuZXJyb3IoZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25Mb2FkaW5nKGZhbHNlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHJlbW92ZU5vdGlmaWNhdGlvbihtb2xpc3Q6IE1ldGFvYmplY3REYXRhTW9kZWxbXSwgY2xvc2VOb3RpZmljYXRpb24gPSB0cnVlKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IG1vSWRzID0gdGhpcy5fc2V0Tm90aWZpY2F0aW9uTG9hZGluZyhtb2xpc3QsIHRydWUpO1xuICAgICAgICBCYXJzYUFwaS5Cdy5SdW5CbE1ldGhvZEFzeW5jKHtcbiAgICAgICAgICAgIFBhcmFtZXRlcnM6IFttb0lkc10sXG4gICAgICAgICAgICBNZXRob2Q6ICdSZW1vdmVTaGVsbGJhck5vdGlmaWNhdGlvbicsXG4gICAgICAgICAgICBTdWNjZXNzRm46IChlOiB7IFVucmVhZDogbnVtYmVyOyBBbGw6IG51bWJlciB9KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3Qgbm90aWZpY2F0aW9uTGlzdCA9IHRoaXMuX25vdGlmaWNhdGlvbnMkLmdldFZhbHVlKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5fdXBkYXRlVW5yZWFkQW5kQ291bnQoZSk7XG4gICAgICAgICAgICAgICAgY29uc3QgbmV3TW9MaXN0ID0gbm90aWZpY2F0aW9uTGlzdC5maWx0ZXIoKGMpID0+IG1vSWRzLmluZGV4T2YoYy5JZCkgPT09IC0xKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9ub3RpZmljYXRpb25zJC5uZXh0KG5ld01vTGlzdCk7XG4gICAgICAgICAgICAgICAgaWYgKGNsb3NlTm90aWZpY2F0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3NlcnZpY2VXb3JrZXJOb3RpZmljYXRpb24uY2xvc2VOb3RpZmljYXRpb25zKG1vSWRzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX25vdGlmaWNhdGlvbkNvdW50JC5nZXRWYWx1ZSgpLmFsbCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkTm90aWZpY2F0aW9ucyh0aGlzLnBhZ2VJbmRleCAtIDEpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBGYWlsRm46IChlKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fbG9nU2VydmljZS5lcnJvcihlKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9zZXROb3RpZmljYXRpb25Mb2FkaW5nKG1vbGlzdCwgZmFsc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfdXBkYXRlVW5yZWFkQW5kQ291bnQoZTogeyBVbnJlYWQ6IG51bWJlcjsgQWxsOiBudW1iZXIgfSk6IHZvaWQge1xuICAgICAgICB0aGlzLl9ub3RpZmljYXRpb25VbnJlYWRDb3VudCQubmV4dCgrZS5VbnJlYWQpO1xuICAgICAgICB0aGlzLl9ub3RpZmljYXRpb25Db3VudCQubmV4dCh7IHVucmVhZDogK2UuVW5yZWFkLCBhbGw6ICtlLkFsbCB9KTtcbiAgICB9XG5cbiAgICBnZXQgU3VwcG9ydE5vdGlmaWNhdGlvbnMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0eXBlb2YgTm90aWZpY2F0aW9uICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLl9zZXJ2aWNlV29ya2VyTm90aWZpY2F0aW9uLmlzRW5hYmxlZDtcbiAgICB9XG4gICAgcHVibGljIHNob3dOb3RpZmljYXRpb24oXG4gICAgICAgIG5vdGlmaWNhdGlvbkl0ZW06IE5vdGlmaWNhdGlvbkl0ZW0sXG4gICAgICAgIG1vOiBNZXRhb2JqZWN0RGF0YU1vZGVsIHwgbnVsbCxcbiAgICAgICAgdWlPcHRpb25zOiBOb3RpZnlPcHRpb25zLFxuICAgICAgICBvdGhlck9wdGlvbnM6IFJlY29yZDxzdHJpbmcsIGFueT5cbiAgICApOiB2b2lkIHtcbiAgICAgICAgaWYgKG5vdGlmaWNhdGlvbkl0ZW0uVGl0bGUgJiYgbm90aWZpY2F0aW9uSXRlbS5UaXRsZS5zdGFydHNXaXRoKCdbJykgJiYgbm90aWZpY2F0aW9uSXRlbS5UaXRsZS5lbmRzV2l0aCgnXScpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLlN1cHBvcnROb3RpZmljYXRpb25zKSB7XG4gICAgICAgICAgICB0aGlzLl9sb2dTZXJ2aWNlLndhcm4oYEluQXBwIE5vdGlmaWNhdGlvbiBpcyBub3Qgc3VwcG9ydGVkLmApO1xuICAgICAgICAgICAgdWlPcHRpb25zID0gdWlPcHRpb25zID8/IHt9O1xuICAgICAgICAgICAgdWlPcHRpb25zLk5vdGlmaWNhdGlvbkl0ZW0gPSBub3RpZmljYXRpb25JdGVtO1xuICAgICAgICAgICAgdGhpcy5fcG9wdXBOb3RpZnkobm90aWZpY2F0aW9uSXRlbSwgbW8sIHVpT3B0aW9ucywgb3RoZXJPcHRpb25zKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9pbkFwcE5vdGlmeShub3RpZmljYXRpb25JdGVtKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBub3RpZmljYXRpb25Mb2FkaW5nKGxvYWRpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fbm90aWZpY2F0aW9uTG9hZGluZyQubmV4dChsb2FkaW5nKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfc2V0Tm90aWZpY2F0aW9uTG9hZGluZyhtb2xpc3Q6IE1ldGFvYmplY3REYXRhTW9kZWxbXSwgbG9hZGluZzogYm9vbGVhbiA9IHRydWUpOiBzdHJpbmdbXSB7XG4gICAgICAgIGNvbnN0IG1vbGlzdEN1cnIgPSB0aGlzLl9ub3RpZmljYXRpb25zJC5nZXRWYWx1ZSgpO1xuICAgICAgICBjb25zdCBtb0lkcyA9IG1vbGlzdC5tYXAoKGMpID0+IGMuSWQpO1xuICAgICAgICBjb25zdCBtb2xpc3RXaXRoTG9hZGluZ1Byb3BlcnR5ID0gbW9saXN0Q3Vyci5tYXAoKGMpID0+ICh7XG4gICAgICAgICAgICAuLi5jLFxuICAgICAgICAgICAgJE5vdGlmaWNhdG9pbkxvYWRpbmc6IG1vSWRzLmluZGV4T2YoYy5JZCkgIT09IC0xID8gbG9hZGluZyA6IGMuJE5vdGlmaWNhdG9pbkxvYWRpbmdcbiAgICAgICAgfSkpO1xuICAgICAgICB0aGlzLl9ub3RpZmljYXRpb25zJC5uZXh0KFsuLi5tb2xpc3RXaXRoTG9hZGluZ1Byb3BlcnR5XSk7XG4gICAgICAgIHJldHVybiBtb0lkcztcbiAgICB9XG4gICAgcHJpdmF0ZSBfcG9wdXBOb3RpZnkoXG4gICAgICAgIG5vdGlmaWNhdGlvbkl0ZW06IE5vdGlmaWNhdGlvbkl0ZW0sXG4gICAgICAgIG1vOiBNZXRhb2JqZWN0RGF0YU1vZGVsIHwgbnVsbCxcbiAgICAgICAgdWlPcHRpb25zOiBOb3RpZnlPcHRpb25zLFxuICAgICAgICBvdGhlck9wdGlvbnM6IFJlY29yZDxzdHJpbmcsIGFueT5cbiAgICApOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fcG9wdXBTZXJ2aWNlLnBvcHVwTm90aWZ5KFxuICAgICAgICAgICAgbm90aWZpY2F0aW9uSXRlbS4kU2FmZUNvbnRlbnQsXG4gICAgICAgICAgICBub3RpZmljYXRpb25JdGVtLlRpdGxlLFxuICAgICAgICAgICAgbm90aWZpY2F0aW9uSXRlbS5TdWJqZWN0LFxuICAgICAgICAgICAgbm90aWZpY2F0aW9uSXRlbS5JbWFnZSxcbiAgICAgICAgICAgIG1vLFxuICAgICAgICAgICAgdWlPcHRpb25zLFxuICAgICAgICAgICAgb3RoZXJPcHRpb25zXG4gICAgICAgICk7XG4gICAgfVxuICAgIHByaXZhdGUgX3ByZXBhcmVQcm9wZXJ0aWVzKFxuICAgICAgICBub3RpZmljYXRpb25JdGVtOiBOb3RpZmljYXRpb25JdGVtLFxuICAgICAgICBtbzogTWV0YW9iamVjdERhdGFNb2RlbCxcbiAgICAgICAgY29udGVudDogc3RyaW5nXG4gICAgKTogTm90aWZpY2F0aW9uSXRlbSB7XG4gICAgICAgIGlmICghbW8pIHtcbiAgICAgICAgICAgIHJldHVybiBub3RpZmljYXRpb25JdGVtO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi5ub3RpZmljYXRpb25JdGVtLFxuICAgICAgICAgICAgLi4ubW8sXG4gICAgICAgICAgICBVaUFjdGlvbnM6ICFtby5VaUFjdGlvbnMgPyBbXSA6IEpTT04ucGFyc2UobW8uVWlBY3Rpb25zKSxcbiAgICAgICAgICAgIENyZWF0aW9uRGF0ZTogbW8uSU1lc3NhZ2UuQ3JlYXRpb25EYXRlLFxuICAgICAgICAgICAgQ3JlYXRpb25EYXRlJENhcHRpb246IG1vLklNZXNzYWdlLkNyZWF0aW9uRGF0ZSRDYXB0aW9uLFxuICAgICAgICAgICAgQ3JlYXRvclVzZXI6IG1vLklNZXNzYWdlLkNyZWF0b3JVc2VyLFxuICAgICAgICAgICAgQ3JlYXRvclVzZXIkQ2FwdGlvbjogbW8uSU1lc3NhZ2UuQ3JlYXRvclVzZXIkQ2FwdGlvbixcbiAgICAgICAgICAgIEljb246IGAke0JhcnNhQXBpLkJ3Lk9yaWdpbigpfSR7bm90aWZpY2F0aW9uSXRlbS5JY29ufWAsXG4gICAgICAgICAgICAkU2FmZUNvbnRlbnQ6IHRoaXMuX2RvbVNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChjb250ZW50KVxuICAgICAgICB9O1xuICAgIH1cbiAgICBwcml2YXRlIF9pbkFwcE5vdGlmeShub3RpZmljYXRpb25JdGVtOiBOb3RpZmljYXRpb25JdGVtKTogdm9pZCB7XG4gICAgICAgIE5vdGlmaWNhdGlvbi5yZXF1ZXN0UGVybWlzc2lvbigocmVzdWx0KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBsYW5nID0gQmFyc2FBcGkuTG9naW5Gb3JtRGF0YS5DdWx0dXJlO1xuICAgICAgICAgICAgY29uc3QgaXNSdGwgPSBCYXJzYUFwaS5Mb2dpbkZvcm1EYXRhLkN1bHR1cmVzUnRsW2xhbmddO1xuXG4gICAgICAgICAgICBpZiAocmVzdWx0ID09PSAnZ3JhbnRlZCcpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zZXJ2aWNlV29ya2VyTm90aWZpY2F0aW9uLnNob3dOb3RpZmljYXRpb24oe1xuICAgICAgICAgICAgICAgICAgICBub3RpZmljYXRpb25JdGVtLFxuICAgICAgICAgICAgICAgICAgICBpc1J0bCxcbiAgICAgICAgICAgICAgICAgICAgbGFuZ1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBUT0RPOnBlcm1pc3Npb24gZGVuaWVkXG4gICAgICAgICAgICAgICAgdGhpcy5fbG9nU2VydmljZS5lcnJvcignbm90aWZpY2F0aW9uIHBlcm1pc3Npb24gZGVuaWVkLicpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG59XG4iXX0=
|
|
299
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1ub3Zpbi1yYXktY29yZS9zcmMvbGliL3NlcnZpY2VzL25vdGlmaWNhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRTNELE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFFbkQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRXpELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7Ozs7OztBQVFsRSxNQUFNLE9BQU8sbUJBQW1CO0lBUTVCLFlBQ2tELGFBQXVDLEVBQzdFLFdBQXVCLEVBQ3ZCLFVBQXlCLEVBQ3pCLGFBQStCLEVBQy9CLGFBQTJCLEVBQzNCLDBCQUE0RCxFQUM1RCxjQUE2QixFQUM3QixPQUFlO1FBUHVCLGtCQUFhLEdBQWIsYUFBYSxDQUEwQjtRQUM3RSxnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQUN2QixlQUFVLEdBQVYsVUFBVSxDQUFlO1FBQ3pCLGtCQUFhLEdBQWIsYUFBYSxDQUFrQjtRQUMvQixrQkFBYSxHQUFiLGFBQWEsQ0FBYztRQUMzQiwrQkFBMEIsR0FBMUIsMEJBQTBCLENBQWtDO1FBQzVELG1CQUFjLEdBQWQsY0FBYyxDQUFlO1FBQzdCLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFmbkIsb0JBQWUsR0FBRyxJQUFJLGVBQWUsQ0FBd0IsRUFBRSxDQUFDLENBQUM7UUFDakUsd0JBQW1CLEdBQUcsSUFBSSxlQUFlLENBQWtDLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNsRyw4QkFBeUIsR0FBRyxJQUFJLGVBQWUsQ0FBUyxDQUFDLENBQUMsQ0FB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LEtBQUs7b0JBQ0wsSUFBSTtpQkFDUCxDQUFDLENBQUM7YUFDTjtpQkFBTTtnQkFDSCx5QkFBeUI7Z0JBQ3pCLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLGlDQUFpQyxDQUFDLENBQUM7YUFDN0Q7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7O2dIQTlUUSxtQkFBbUIsa0JBU2hCLDBCQUEwQjtvSEFUN0IsbUJBQW1COzJGQUFuQixtQkFBbUI7a0JBRC9CLFVBQVU7OzBCQVVGLE1BQU07MkJBQUMsMEJBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTG93ZXJDYXNlUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgQmFyc2FBcGkgfSBmcm9tICcuLi9hYnN0cmFjdC1jbGFzc2VzL2JhcnNhLWFwaSc7XG5pbXBvcnQgeyBNZXRhb2JqZWN0RGF0YU1vZGVsLCBOb3RpZmljYXRpb25JdGVtLCBOb3RpZnlPcHRpb25zIH0gZnJvbSAnLi4vYWJzdHJhY3QtY2xhc3Nlcy9tb2RlbHMnO1xuaW1wb3J0IHsgTk9USUZJQ0FUQUlPTl9QT1BVUF9TRVJWRVIgfSBmcm9tICcuLi9pbmpkZWN0aW9uLXRva2Vucyc7XG5pbXBvcnQgeyBCYmJUcmFuc2xhdGVQaXBlIH0gZnJvbSAnLi4vcGlwZXMvYmJiLXRyYW5zbGF0ZS5waXBlJztcbmltcG9ydCB7IExvZ1NlcnZpY2UgfSBmcm9tICcuL2xvZy5zZXJ2aWNlJztcbmltcG9ydCB7IE5vdGlmaWNhdGlvblBvcHVwU2VydmljZSB9IGZyb20gJy4vbm90aWZpY2F0aW9uLXBvcHVwLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2VydmljZVdvcmtlck5vdGlmaWNhdGlvblNlcnZpY2UgfSBmcm9tICcuL25vdGlmaWNhdGlvbi1zdy5zZXJ2aWNlJztcbmltcG9ydCB7IFBvcnRhbFNlcnZpY2UgfSBmcm9tICcuL3BvcnRhbC5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE5vdGlmaWNhdGlvblNlcnZpY2Uge1xuICAgIHByaXZhdGUgX25vdGlmaWNhdGlvbnMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxNZXRhb2JqZWN0RGF0YU1vZGVsW10+KFtdKTtcbiAgICBwcml2YXRlIF9ub3RpZmljYXRpb25Db3VudCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHsgdW5yZWFkOiBudW1iZXI7IGFsbDogbnVtYmVyIH0+KHsgdW5yZWFkOiAwLCBhbGw6IDAgfSk7XG4gICAgcHJpdmF0ZSBfbm90aWZpY2F0aW9uVW5yZWFkQ291bnQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+KDApO1xuICAgIHByaXZhdGUgX25vdGlmaWNhdGlvbkxvYWRpbmckID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gICAgcHJpdmF0ZSBfbm90aWZpYXRpb25Db3VudExvYWRlZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgICBwYWdlQ291bnQgPSAxO1xuICAgIHBhZ2VJbmRleCA9IDA7XG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBJbmplY3QoTk9USUZJQ0FUQUlPTl9QT1BVUF9TRVJWRVIpIHByb3RlY3RlZCBfcG9wdXBTZXJ2aWNlOiBOb3RpZmljYXRpb25Qb3B1cFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgX2xvZ1NlcnZpY2U6IExvZ1NlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgX2xvd2VyQ2FzZTogTG93ZXJDYXNlUGlwZSxcbiAgICAgICAgcHJpdmF0ZSBfYmJiVHJhbnNsYXRlOiBCYmJUcmFuc2xhdGVQaXBlLFxuICAgICAgICBwcml2YXRlIF9kb21TYW5pdGl6ZXI6IERvbVNhbml0aXplcixcbiAgICAgICAgcHJpdmF0ZSBfc2VydmljZVdvcmtlck5vdGlmaWNhdGlvbjogU2VydmljZVdvcmtlck5vdGlmaWNhdGlvblNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgX3BvcnRhbFNlcnZpY2U6IFBvcnRhbFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgX25nWm9uZTogTmdab25lXG4gICAgKSB7fVxuICAgIGdldCBub3RpZmljYXRpb25Db3VudExvYWRlZCQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9ub3RpZmlhdGlvbkNvdW50TG9hZGVkJC5hc09ic2VydmFibGUoKTtcbiAgICB9XG4gICAgZ2V0IG5vdGlmaWNhdGlvbkNvdW50JCgpOiBPYnNlcnZhYmxlPHsgdW5yZWFkOiBudW1iZXI7IGFsbDogbnVtYmVyIH0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX25vdGlmaWNhdGlvbkNvdW50JC5hc09ic2VydmFibGUoKTtcbiAgICB9XG5cbiAgICBnZXQgbm90aWZpY2F0aW9ucyQoKTogT2JzZXJ2YWJsZTxNZXRhb2JqZWN0RGF0YU1vZGVsW10+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX25vdGlmaWNhdGlvbnMkLmFzT2JzZXJ2YWJsZSgpLnBpcGUoKTtcbiAgICB9XG4gICAgZ2V0IG5vdGlmaWNhdGlvbkxvYWRpbmckKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fbm90aWZpY2F0aW9uTG9hZGluZyQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuICAgIHB1YmxpYyBsb2FkTW9yZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5sb2FkTm90aWZpY2F0aW9ucyh0aGlzLnBhZ2VJbmRleCk7XG4gICAgfVxuICAgIHB1YmxpYyBzZXROb3RpZmljYXRpb25WaWV3ZWQodGFnczogc3RyaW5nW10pOiB2b2lkIHtcbiAgICAgICAgQmFyc2FBcGkuQncuUnVuQmxNZXRob2RBc3luYyh7XG4gICAgICAgICAgICBQYXJhbWV0ZXJzOiBbdGFnc10sXG4gICAgICAgICAgICBNZXRob2Q6ICdTZXROb3RpZmljYXRpb25WaWV3ZWQnLFxuICAgICAgICAgICAgU3VjY2Vzc0ZuOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgbW9saXN0Q3VyciA9IHRoaXMuX25vdGlmaWNhdGlvbnMkLmdldFZhbHVlKCk7XG4gICAgICAgICAgICAgICAgY29uc3QgdXBkYXRlZFVucmVhZE1vTGlzdCA9IG1vbGlzdEN1cnIubWFwKChjKSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICAuLi5jLFxuICAgICAgICAgICAgICAgICAgICBVbnJlYWQ6IHRhZ3MuaW5kZXhPZihjLlRhZykgPiAtMSA/IGZhbHNlIDogYy5VbnJlYWRcbiAgICAgICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICAgICAgdGhpcy5fbm90aWZpY2F0aW9ucyQubmV4dChbLi4udXBkYXRlZFVucmVhZE1vTGlzdF0pO1xuICAgICAgICAgICAgICAgIHRoaXMuaW5jcmVhc2VOb3RpZmNhdGlvbkNvdW50KC10YWdzLmxlbmd0aCwgMCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRhZ3M7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgRmFpbEZuOiAoZSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX2xvZ1NlcnZpY2UuZXJyb3IoZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBwdWJsaWMgU2hvd05vdGlmaWNhdGlvblJlbGF0ZWRNbyhlOiB7IHRhZzogc3RyaW5nOyBtbzogTWV0YW9iamVjdERhdGFNb2RlbDsgbmFtYTogc3RyaW5nIH0pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZWUgPSB7XG4gICAgICAgICAgICAuLi5lLFxuICAgICAgICAgICAgYWZ0ZXJSZWFkeTogKGUyOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICBCYXJzYUFwaS5Cdy5SdW5CbE1ldGhvZEFzeW5jKHtcbiAgICAgICAgICAgICAgICAgICAgUGFyYW1ldGVyczogW2UudGFnXSxcbiAgICAgICAgICAgICAgICAgICAgTWV0aG9kOiAnQmFyc2FfU2V0UmVhZFJhZGlmQ2FydGFibGVCeVRhZycsXG4gICAgICAgICAgICAgICAgICAgIEZhaWxGbjogKGVycikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fbG9nU2VydmljZS5lcnJvcihlcnIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuX3BvcnRhbFNlcnZpY2UuU2hvd0Zvcm0oZWUpO1xuICAgIH1cbiAgICBwdWJsaWMgaGFuZGxlVG9waWMoZXZlbnRUb3BpYywgY29udGVudCwgb3duZXJLZXkpOiB2b2lkIHtcbiAgICAgICAgaWYgKGV2ZW50VG9waWMgPT09ICdEZWxldGVOb3RpZmljYXRpb25NZXNzYWdlJykge1xuICAgICAgICAgICAgY29uc3QgeyBUYWdzIH06IHsgVGFnczogc3RyaW5nW10gfSA9IGNvbnRlbnQ7XG4gICAgICAgICAgICBjb25zdCBub3RpZmljYXRpb25zID0gdGhpcy5fbm90aWZpY2F0aW9ucyQuZ2V0VmFsdWUoKTtcbiAgICAgICAgICAgIGNvbnN0IHsgZmluZEluTm90aWZpY2F0aW9ucywgdW5yZWFkQ291bnQsIGNvdW50IH0gPSB0aGlzLl9maW5kTm90aWZpY2F0aW9uc01lc3NhZ2UoVGFncywgbm90aWZpY2F0aW9ucyk7XG4gICAgICAgICAgICBpZiAoZmluZEluTm90aWZpY2F0aW9ucykge1xuICAgICAgICAgICAgICAgIHRoaXMuX25vdGlmaWNhdGlvbnMkLm5leHQobm90aWZpY2F0aW9ucy5maWx0ZXIoKGMpID0+ICFUYWdzLmluY2x1ZGVzKGMuVGFnKSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHVucmVhZENvdW50ID4gMCkge1xuICAgICAgICAgICAgICAgIHRoaXMuaW5jcmVhc2VOb3RpZmNhdGlvbkNvdW50KC11bnJlYWRDb3VudCwgLWNvdW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChldmVudFRvcGljID09PSAnU2V0UmVhZE5vdGlmaWNhdGlvbk1lc3NhZ2UnKSB7XG4gICAgICAgICAgICBjb25zdCBub3RpZmljYXRpb25zID0gdGhpcy5fbm90aWZpY2F0aW9ucyQuZ2V0VmFsdWUoKTtcbiAgICAgICAgICAgIGNvbnN0IHsgVGFncyB9OiB7IFRhZ3M6IHN0cmluZ1tdIH0gPSBjb250ZW50O1xuICAgICAgICAgICAgVGFncy5mb3JFYWNoKCh0YWcpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBmb3VuZEluZGV4ID0gbm90aWZpY2F0aW9ucy5maW5kSW5kZXgoKGMpID0+IGMuVGFnID09PSB0YWcpO1xuICAgICAgICAgICAgICAgIGlmIChmb3VuZEluZGV4ID4gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgbm90aWZpY2F0aW9uc1tmb3VuZEluZGV4XSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLm5vdGlmaWNhdGlvbnNbZm91bmRJbmRleF0sXG4gICAgICAgICAgICAgICAgICAgICAgICBVbnJlYWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgVW5yZWFkJENhcHRpb246ICfZhtin2K/Ysdiz2KonXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX25vdGlmaWNhdGlvbnMkLm5leHQoWy4uLm5vdGlmaWNhdGlvbnNdKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgY29uc3Qgbm90aWZpY2F0aW9uc0NvdW50ID0gdGhpcy5fbm90aWZpY2F0aW9uQ291bnQkLmdldFZhbHVlKCk7XG4gICAgICAgICAgICB0aGlzLmluY3JlYXNlTm90aWZjYXRpb25Db3VudCgtVGFncy5sZW5ndGgsIG5vdGlmaWNhdGlvbnNDb3VudC5hbGwpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHByaXZhdGUgX2ZpbmROb3RpZmljYXRpb25zTWVzc2FnZShcbiAgICAgICAgVGFnczogc3RyaW5nW10sXG4gICAgICAgIG5vdGlmaWNhdGlvbnM6IE1ldGFvYmplY3REYXRhTW9kZWxbXVxuICAgICk6IHsgZmluZEluTm90aWZpY2F0aW9uczogYm9vbGVhbjsgdW5yZWFkQ291bnQ6IG51bWJlcjsgY291bnQ6IG51bWJlciB9IHtcbiAgICAgICAgbGV0IGZpbmRJbk5vdGlmaWNhdGlvbnMgPSBmYWxzZTtcbiAgICAgICAgbGV0IHVucmVhZENvdW50ID0gMDtcbiAgICAgICAgbGV0IGNvdW50ID0gMDtcbiAgICAgICAgVGFncy5mb3JFYWNoKCh0YWcpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGZvdW5kTm90aWZpY2F0aW9uID0gbm90aWZpY2F0aW9ucy5maW5kKChjKSA9PiBjLlRhZyA9PT0gdGFnKTtcbiAgICAgICAgICAgIGlmIChmb3VuZE5vdGlmaWNhdGlvbikge1xuICAgICAgICAgICAgICAgIGZpbmRJbk5vdGlmaWNhdGlvbnMgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGNvdW50Kys7XG4gICAgICAgICAgICAgICAgaWYgKGZvdW5kTm90aWZpY2F0aW9uLlVucmVhZCkge1xuICAgICAgICAgICAgICAgICAgICB1bnJlYWRDb3VudCsrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiB7IGZpbmRJbk5vdGlmaWNhdGlvbnMsIHVucmVhZENvdW50LCBjb3VudCB9O1xuICAgIH1cblxuICAgIHB1YmxpYyBhZGROb3RpZmljYXRpb24oXG4gICAgICAgIG1zZzogc3RyaW5nLFxuICAgICAgICB0aXRsZTogc3RyaW5nLFxuICAgICAgICB0eXBlOiBzdHJpbmcsXG4gICAgICAgIGltYWdlOiBzdHJpbmcsXG4gICAgICAgIG1vLFxuICAgICAgICB1aU9wdGlvbnM6IE5vdGlmeU9wdGlvbnMsXG4gICAgICAgIG90aGVyT3B0aW9uczogUmVjb3JkPHN0cmluZywgYW55PlxuICAgICk6IHZvaWQge1xuICAgICAgICB0aGlzLl9uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICAgIGlmIChvdGhlck9wdGlvbnMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB7IE1vSWQsIFR5cGVEZWZJZCB9ID0gb3RoZXJPcHRpb25zO1xuICAgICAgICAgICAgICAgIGxldCBuZXdOb3RpZmljYXRpb246IE5vdGlmaWNhdGlvbkl0ZW0gPSB7XG4gICAgICAgICAgICAgICAgICAgICRDYXB0aW9uOiB0aXRsZSxcbiAgICAgICAgICAgICAgICAgICAgSWQ6IE1vSWQsXG4gICAgICAgICAgICAgICAgICAgICRUeXBlRGVmSWQ6IFR5cGVEZWZJZCxcbiAgICAgICAgICAgICAgICAgICAgVGl0bGU6IHRpdGxlLFxuICAgICAgICAgICAgICAgICAgICBVbnJlYWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIEljb246IGltYWdlLFxuICAgICAgICAgICAgICAgICAgICBJbWFnZTogJycsXG4gICAgICAgICAgICAgICAgICAgIENvbnRlbnQ6IG1zZyxcbiAgICAgICAgICAgICAgICAgICAgVGFnOiAnJyxcbiAgICAgICAgICAgICAgICAgICAgUHJpb3JpdHk6IDAsXG4gICAgICAgICAgICAgICAgICAgIFN1YmplY3Q6ICcnLFxuICAgICAgICAgICAgICAgICAgICAkU2FmZUNvbnRlbnQ6IHRoaXMuX2RvbVNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChtc2cpLFxuICAgICAgICAgICAgICAgICAgICBDcmVhdGlvbkRhdGU6IG5ldyBEYXRlKCksXG4gICAgICAgICAgICAgICAgICAgIENyZWF0aW9uRGF0ZSRDYXB0aW9uOiB0aGlzLl9iYmJUcmFuc2xhdGUudHJhbnNmb3JtKCdEYXRlUl9Ub2RheScpXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBjb25zdCBwYXJzZWRNbyA9IG1vID8gQmFyc2FBcGkuRXh0LmRlY29kZShtbykgOiBudWxsO1xuICAgICAgICAgICAgICAgIG5ld05vdGlmaWNhdGlvbiA9IHRoaXMuX3ByZXBhcmVQcm9wZXJ0aWVzKG5ld05vdGlmaWNhdGlvbiwgcGFyc2VkTW8sIG1zZyk7XG5cbiAgICAgICAgICAgICAgICBpZiAocGFyc2VkTW8pIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbW9saXN0ID0gdGhpcy5fbm90aWZpY2F0aW9ucyQuZ2V0VmFsdWUoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fbm90aWZpY2F0aW9ucyQubmV4dChbbmV3Tm90aWZpY2F0aW9uLCAuLi5tb2xpc3RdKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmNyZWFzZU5vdGlmY2F0aW9uQ291bnQoMSwgMSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuc2hvd05vdGlmaWNhdGlvbihuZXdOb3RpZmljYXRpb24sIHBhcnNlZE1vLCB1aU9wdGlvbnMsIG90aGVyT3B0aW9ucyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBpbmNyZWFzZU5vdGlmY2F0aW9uQ291bnQodW5yZWFkOiBudW1iZXIsIGNvdW50OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY291bnRWYWx1ZSA9IHRoaXMuX25vdGlmaWNhdGlvbkNvdW50JC5nZXRWYWx1ZSgpO1xuICAgICAgICBjb25zdCBzdW1VbnJlYWQgPSBjb3VudFZhbHVlLnVucmVhZCArICt1bnJlYWQ7XG4gICAgICAgIGNvbnN0IHN1bUFsbCA9IGNvdW50VmFsdWUuYWxsICsgK2NvdW50O1xuICAgICAgICB0aGlzLl9ub3RpZmljYXRpb25Db3VudCQubmV4dCh7IHVucmVhZDogc3VtVW5yZWFkID4gMCA/IHN1bVVucmVhZCA6IDAsIGFsbDogc3VtQWxsID4gMCA/IHN1bUFsbCA6IDAgfSk7XG4gICAgfVxuICAgIHB1YmxpYyBsb2FkVW5yZWFkTm90aWZpY2F0aW9uQ291bnQoKTogdm9pZCB7XG4gICAgICAgIEJhcnNhQXBpLkJ3LlJ1bkJsTWV0aG9kQXN5bmMoe1xuICAgICAgICAgICAgUGFyYW1ldGVyczogW0JhcnNhQXBpLkxvZ2luRm9ybURhdGEuUG9ydGFsSWRdLFxuICAgICAgICAgICAgTWV0aG9kOiAnR2V0U2hlbGxiYXJOb3RpZmljYXRpb25Db3VudEJ5UG9ydGFsSWQnLFxuICAgICAgICAgICAgU3VjY2Vzc0ZuOiAoZTogeyBVbnJlYWQ6IG51bWJlcjsgQWxsOiBudW1iZXIgfSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX3VwZGF0ZVVucmVhZEFuZENvdW50KGUpO1xuICAgICAgICAgICAgICAgIHRoaXMuX25vdGlmaWF0aW9uQ291bnRMb2FkZWQkLm5leHQodHJ1ZSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgRmFpbEZuOiAoZSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX2xvZ1NlcnZpY2UuZXJyb3IoZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBwdWJsaWMgbG9hZE5vdGlmaWNhdGlvbnMocGFnZUluZGV4OiBudW1iZXIgPSAwKTogdm9pZCB7XG4gICAgICAgIGlmIChwYWdlSW5kZXggKyAxID4gdGhpcy5wYWdlQ291bnQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbkxvYWRpbmcodHJ1ZSk7XG4gICAgICAgIEJhcnNhQXBpLkJ3LlJ1bkJsTWV0aG9kQXN5bmMoe1xuICAgICAgICAgICAgUGFyYW1ldGVyczogW3BhZ2VJbmRleCwgQmFyc2FBcGkuTG9naW5Gb3JtRGF0YS5Qb3J0YWxJZF0sXG4gICAgICAgICAgICBNZXRob2Q6ICdHZXRTaGVsbGJhck5vdGlmaWNhdGlvbnNCeVBvcnRhbElkJyxcbiAgICAgICAgICAgIFN1Y2Nlc3NGbjogKGU6IHsgUGFnZUNvdW50OiBudW1iZXI7IE1vTGlzdDogTWV0YW9iamVjdERhdGFNb2RlbFtdIH0pID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBub3RpZmljYXRpb25zID0gdGhpcy5fbm90aWZpY2F0aW9ucyQuZ2V0VmFsdWUoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBub3RpZkxpc3RPZlRhZ3MgPSBub3RpZmljYXRpb25zLm1hcCgoYykgPT4gYy5UYWcpO1xuICAgICAgICAgICAgICAgIGNvbnN0IG1vbGlzdCA9IGUuTW9MaXN0LmZpbHRlcigoYykgPT4gbm90aWZMaXN0T2ZUYWdzLmluZGV4T2YoYy5UYWcpID09PSAtMSkubWFwKChtbykgPT5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fcHJlcGFyZVByb3BlcnRpZXMoPE5vdGlmaWNhdGlvbkl0ZW0+bW8sIG1vLCBtby5JTWVzc2FnZT8uQ29udGVudClcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIHRoaXMuX25vdGlmaWNhdGlvbnMkLm5leHQoWy4uLm5vdGlmaWNhdGlvbnMsIC4uLm1vbGlzdF0pO1xuICAgICAgICAgICAgICAgIHRoaXMucGFnZUNvdW50ID0gK2UuUGFnZUNvdW50O1xuICAgICAgICAgICAgICAgIHRoaXMucGFnZUluZGV4ID0gcGFnZUluZGV4ICsgMTtcbiAgICAgICAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbkxvYWRpbmcoZmFsc2UpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIEZhaWxGbjogKGUpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9sb2dTZXJ2aWNlLmVycm9yKGUpO1xuICAgICAgICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uTG9hZGluZyhmYWxzZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyByZW1vdmVOb3RpZmljYXRpb24obW9saXN0OiBNZXRhb2JqZWN0RGF0YU1vZGVsW10sIGNsb3NlTm90aWZpY2F0aW9uID0gdHJ1ZSk6IHZvaWQge1xuICAgICAgICBjb25zdCBtb0lkcyA9IHRoaXMuX3NldE5vdGlmaWNhdGlvbkxvYWRpbmcobW9saXN0LCB0cnVlKTtcbiAgICAgICAgQmFyc2FBcGkuQncuUnVuQmxNZXRob2RBc3luYyh7XG4gICAgICAgICAgICBQYXJhbWV0ZXJzOiBbbW9JZHNdLFxuICAgICAgICAgICAgTWV0aG9kOiAnUmVtb3ZlU2hlbGxiYXJOb3RpZmljYXRpb24nLFxuICAgICAgICAgICAgU3VjY2Vzc0ZuOiAoZTogeyBVbnJlYWQ6IG51bWJlcjsgQWxsOiBudW1iZXIgfSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IG5vdGlmaWNhdGlvbkxpc3QgPSB0aGlzLl9ub3RpZmljYXRpb25zJC5nZXRWYWx1ZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuX3VwZGF0ZVVucmVhZEFuZENvdW50KGUpO1xuICAgICAgICAgICAgICAgIGNvbnN0IG5ld01vTGlzdCA9IG5vdGlmaWNhdGlvbkxpc3QuZmlsdGVyKChjKSA9PiBtb0lkcy5pbmRleE9mKGMuSWQpID09PSAtMSk7XG4gICAgICAgICAgICAgICAgdGhpcy5fbm90aWZpY2F0aW9ucyQubmV4dChuZXdNb0xpc3QpO1xuICAgICAgICAgICAgICAgIGlmIChjbG9zZU5vdGlmaWNhdGlvbikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zZXJ2aWNlV29ya2VyTm90aWZpY2F0aW9uLmNsb3NlTm90aWZpY2F0aW9ucyhtb0lkcyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh0aGlzLl9ub3RpZmljYXRpb25Db3VudCQuZ2V0VmFsdWUoKS5hbGwgPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubG9hZE5vdGlmaWNhdGlvbnModGhpcy5wYWdlSW5kZXggLSAxKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgRmFpbEZuOiAoZSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX2xvZ1NlcnZpY2UuZXJyb3IoZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5fc2V0Tm90aWZpY2F0aW9uTG9hZGluZyhtb2xpc3QsIGZhbHNlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHByaXZhdGUgX3VwZGF0ZVVucmVhZEFuZENvdW50KGU6IHsgVW5yZWFkOiBudW1iZXI7IEFsbDogbnVtYmVyIH0pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fbm90aWZpY2F0aW9uVW5yZWFkQ291bnQkLm5leHQoK2UuVW5yZWFkKTtcbiAgICAgICAgdGhpcy5fbm90aWZpY2F0aW9uQ291bnQkLm5leHQoeyB1bnJlYWQ6ICtlLlVucmVhZCwgYWxsOiArZS5BbGwgfSk7XG4gICAgfVxuXG4gICAgZ2V0IFN1cHBvcnROb3RpZmljYXRpb25zKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdHlwZW9mIE5vdGlmaWNhdGlvbiAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5fc2VydmljZVdvcmtlck5vdGlmaWNhdGlvbi5pc0VuYWJsZWQ7XG4gICAgfVxuICAgIHB1YmxpYyBzaG93Tm90aWZpY2F0aW9uKFxuICAgICAgICBub3RpZmljYXRpb25JdGVtOiBOb3RpZmljYXRpb25JdGVtLFxuICAgICAgICBtbzogTWV0YW9iamVjdERhdGFNb2RlbCB8IG51bGwsXG4gICAgICAgIHVpT3B0aW9uczogTm90aWZ5T3B0aW9ucyxcbiAgICAgICAgb3RoZXJPcHRpb25zOiBSZWNvcmQ8c3RyaW5nLCBhbnk+XG4gICAgKTogdm9pZCB7XG4gICAgICAgIGlmIChub3RpZmljYXRpb25JdGVtLlRpdGxlICYmIG5vdGlmaWNhdGlvbkl0ZW0uVGl0bGUuc3RhcnRzV2l0aCgnWycpICYmIG5vdGlmaWNhdGlvbkl0ZW0uVGl0bGUuZW5kc1dpdGgoJ10nKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy5TdXBwb3J0Tm90aWZpY2F0aW9ucykge1xuICAgICAgICAgICAgdGhpcy5fbG9nU2VydmljZS53YXJuKGBJbkFwcCBOb3RpZmljYXRpb24gaXMgbm90IHN1cHBvcnRlZC5gKTtcbiAgICAgICAgICAgIHVpT3B0aW9ucyA9IHVpT3B0aW9ucyA/PyB7fTtcbiAgICAgICAgICAgIHVpT3B0aW9ucy5Ob3RpZmljYXRpb25JdGVtID0gbm90aWZpY2F0aW9uSXRlbTtcbiAgICAgICAgICAgIHRoaXMuX3BvcHVwTm90aWZ5KG5vdGlmaWNhdGlvbkl0ZW0sIG1vLCB1aU9wdGlvbnMsIG90aGVyT3B0aW9ucyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5faW5BcHBOb3RpZnkobm90aWZpY2F0aW9uSXRlbSk7XG4gICAgfVxuICAgIHByaXZhdGUgbm90aWZpY2F0aW9uTG9hZGluZyhsb2FkaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX25vdGlmaWNhdGlvbkxvYWRpbmckLm5leHQobG9hZGluZyk7XG4gICAgfVxuICAgIHByaXZhdGUgX3NldE5vdGlmaWNhdGlvbkxvYWRpbmcobW9saXN0OiBNZXRhb2JqZWN0RGF0YU1vZGVsW10sIGxvYWRpbmc6IGJvb2xlYW4gPSB0cnVlKTogc3RyaW5nW10ge1xuICAgICAgICBjb25zdCBtb2xpc3RDdXJyID0gdGhpcy5fbm90aWZpY2F0aW9ucyQuZ2V0VmFsdWUoKTtcbiAgICAgICAgY29uc3QgbW9JZHMgPSBtb2xpc3QubWFwKChjKSA9PiBjLklkKTtcbiAgICAgICAgY29uc3QgbW9saXN0V2l0aExvYWRpbmdQcm9wZXJ0eSA9IG1vbGlzdEN1cnIubWFwKChjKSA9PiAoe1xuICAgICAgICAgICAgLi4uYyxcbiAgICAgICAgICAgICROb3RpZmljYXRvaW5Mb2FkaW5nOiBtb0lkcy5pbmRleE9mKGMuSWQpICE9PSAtMSA/IGxvYWRpbmcgOiBjLiROb3RpZmljYXRvaW5Mb2FkaW5nXG4gICAgICAgIH0pKTtcbiAgICAgICAgdGhpcy5fbm90aWZpY2F0aW9ucyQubmV4dChbLi4ubW9saXN0V2l0aExvYWRpbmdQcm9wZXJ0eV0pO1xuICAgICAgICByZXR1cm4gbW9JZHM7XG4gICAgfVxuICAgIHByaXZhdGUgX3BvcHVwTm90aWZ5KFxuICAgICAgICBub3RpZmljYXRpb25JdGVtOiBOb3RpZmljYXRpb25JdGVtLFxuICAgICAgICBtbzogTWV0YW9iamVjdERhdGFNb2RlbCB8IG51bGwsXG4gICAgICAgIHVpT3B0aW9uczogTm90aWZ5T3B0aW9ucyxcbiAgICAgICAgb3RoZXJPcHRpb25zOiBSZWNvcmQ8c3RyaW5nLCBhbnk+XG4gICAgKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3BvcHVwU2VydmljZS5wb3B1cE5vdGlmeShcbiAgICAgICAgICAgIG5vdGlmaWNhdGlvbkl0ZW0uJFNhZmVDb250ZW50LFxuICAgICAgICAgICAgbm90aWZpY2F0aW9uSXRlbS5UaXRsZSxcbiAgICAgICAgICAgIG5vdGlmaWNhdGlvbkl0ZW0uU3ViamVjdCxcbiAgICAgICAgICAgIG5vdGlmaWNhdGlvbkl0ZW0uSW1hZ2UsXG4gICAgICAgICAgICBtbyxcbiAgICAgICAgICAgIHVpT3B0aW9ucyxcbiAgICAgICAgICAgIG90aGVyT3B0aW9uc1xuICAgICAgICApO1xuICAgIH1cbiAgICBwcml2YXRlIF9wcmVwYXJlUHJvcGVydGllcyhcbiAgICAgICAgbm90aWZpY2F0aW9uSXRlbTogTm90aWZpY2F0aW9uSXRlbSxcbiAgICAgICAgbW86IE1ldGFvYmplY3REYXRhTW9kZWwsXG4gICAgICAgIGNvbnRlbnQ6IHN0cmluZ1xuICAgICk6IE5vdGlmaWNhdGlvbkl0ZW0ge1xuICAgICAgICBpZiAoIW1vKSB7XG4gICAgICAgICAgICByZXR1cm4gbm90aWZpY2F0aW9uSXRlbTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4ubm90aWZpY2F0aW9uSXRlbSxcbiAgICAgICAgICAgIC4uLm1vLFxuICAgICAgICAgICAgVWlBY3Rpb25zOiAhbW8uVWlBY3Rpb25zID8gW10gOiBKU09OLnBhcnNlKG1vLlVpQWN0aW9ucyksXG4gICAgICAgICAgICBDcmVhdGlvbkRhdGU6IG1vLklNZXNzYWdlLkNyZWF0aW9uRGF0ZSxcbiAgICAgICAgICAgIENyZWF0aW9uRGF0ZSRDYXB0aW9uOiBtby5JTWVzc2FnZS5DcmVhdGlvbkRhdGUkQ2FwdGlvbixcbiAgICAgICAgICAgIENyZWF0b3JVc2VyOiBtby5JTWVzc2FnZS5DcmVhdG9yVXNlcixcbiAgICAgICAgICAgIENyZWF0b3JVc2VyJENhcHRpb246IG1vLklNZXNzYWdlLkNyZWF0b3JVc2VyJENhcHRpb24sXG4gICAgICAgICAgICBJY29uOiBgJHtCYXJzYUFwaS5Cdy5PcmlnaW4oKX0ke25vdGlmaWNhdGlvbkl0ZW0uSWNvbn1gLFxuICAgICAgICAgICAgJFNhZmVDb250ZW50OiB0aGlzLl9kb21TYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwoY29udGVudClcbiAgICAgICAgfTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfaW5BcHBOb3RpZnkobm90aWZpY2F0aW9uSXRlbTogTm90aWZpY2F0aW9uSXRlbSk6IHZvaWQge1xuICAgICAgICBOb3RpZmljYXRpb24ucmVxdWVzdFBlcm1pc3Npb24oKHJlc3VsdCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgbGFuZyA9IEJhcnNhQXBpLkxvZ2luRm9ybURhdGEuQ3VsdHVyZTtcbiAgICAgICAgICAgIGNvbnN0IGlzUnRsID0gQmFyc2FBcGkuTG9naW5Gb3JtRGF0YS5DdWx0dXJlc1J0bFtsYW5nXTtcblxuICAgICAgICAgICAgaWYgKHJlc3VsdCA9PT0gJ2dyYW50ZWQnKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc2VydmljZVdvcmtlck5vdGlmaWNhdGlvbi5zaG93Tm90aWZpY2F0aW9uKHtcbiAgICAgICAgICAgICAgICAgICAgbm90aWZpY2F0aW9uSXRlbSxcbiAgICAgICAgICAgICAgICAgICAgaXNSdGwsXG4gICAgICAgICAgICAgICAgICAgIGxhbmdcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gVE9ETzpwZXJtaXNzaW9uIGRlbmllZFxuICAgICAgICAgICAgICAgIHRoaXMuX2xvZ1NlcnZpY2UuZXJyb3IoJ25vdGlmaWNhdGlvbiBwZXJtaXNzaW9uIGRlbmllZC4nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
|
|
@@ -6490,8 +6490,8 @@ class NotificationService {
|
|
|
6490
6490
|
}
|
|
6491
6491
|
loadUnreadNotificationCount() {
|
|
6492
6492
|
BarsaApi.Bw.RunBlMethodAsync({
|
|
6493
|
-
Parameters: [],
|
|
6494
|
-
Method: '
|
|
6493
|
+
Parameters: [BarsaApi.LoginFormData.PortalId],
|
|
6494
|
+
Method: 'GetShellbarNotificationCountByPortalId',
|
|
6495
6495
|
SuccessFn: (e) => {
|
|
6496
6496
|
this._updateUnreadAndCount(e);
|
|
6497
6497
|
this._notifiationCountLoaded$.next(true);
|
|
@@ -6507,8 +6507,8 @@ class NotificationService {
|
|
|
6507
6507
|
}
|
|
6508
6508
|
this.notificationLoading(true);
|
|
6509
6509
|
BarsaApi.Bw.RunBlMethodAsync({
|
|
6510
|
-
Parameters: [pageIndex],
|
|
6511
|
-
Method: '
|
|
6510
|
+
Parameters: [pageIndex, BarsaApi.LoginFormData.PortalId],
|
|
6511
|
+
Method: 'GetShellbarNotificationsByPortalId',
|
|
6512
6512
|
SuccessFn: (e) => {
|
|
6513
6513
|
const notifications = this._notifications$.getValue();
|
|
6514
6514
|
const notifListOfTags = notifications.map((c) => c.Tag);
|