barsa-novin-ray-core 2.0.78 → 2.0.79

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.
@@ -3,6 +3,9 @@ export class BarsaApi {
3
3
  static get GanttChartHelper() {
4
4
  return GanttChartHelper;
5
5
  }
6
+ static get Offline() {
7
+ return Offline;
8
+ }
6
9
  static get Ext() {
7
10
  return Ext;
8
11
  }
@@ -37,4 +40,4 @@ export class BarsaApi {
37
40
  return LoginFormData;
38
41
  }
39
42
  }
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2EtYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etbm92aW4tcmF5LWNvcmUvc3JjL2xpYi9hYnN0cmFjdC1jbGFzc2VzL2JhcnNhLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFhQSxNQUFNLE9BQU8sUUFBUTthQUNWLGdCQUFXLEdBQUcsQ0FBQyxLQUFLLENBQUM7SUFDNUIsTUFBTSxLQUFLLGdCQUFnQjtRQUN2QixPQUFPLGdCQUFnQixDQUFDO0lBQzVCLENBQUM7SUFDRCxNQUFNLEtBQUssR0FBRztRQUNWLE9BQU8sR0FBRyxDQUFDO0lBQ2YsQ0FBQztJQUNELE1BQU0sS0FBSyxNQUFNO1FBQ2IsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQztJQUNELE1BQU0sS0FBSyxJQUFJO1FBQ1gsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUNELE1BQU0sS0FBSyxFQUFFO1FBQ1QsT0FBTyxFQUFFLENBQUM7SUFDZCxDQUFDO0lBQ0QsTUFBTSxLQUFLLEVBQUU7UUFDVCxPQUFPLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFDRCxNQUFNLEtBQUssRUFBRTtRQUNULE9BQU8sRUFBRSxDQUFDO0lBQ2QsQ0FBQztJQUNELE1BQU0sS0FBSyxHQUFHO1FBQ1YsT0FBTyxHQUFHLENBQUM7SUFDZixDQUFDO0lBQ0QsTUFBTSxLQUFLLFNBQVM7UUFDaEIsT0FBTyxTQUFTLENBQUM7SUFDckIsQ0FBQztJQUNELE1BQU0sS0FBSyxXQUFXO1FBQ2xCLE9BQU8sV0FBVyxDQUFDO0lBQ3ZCLENBQUM7SUFDRCxNQUFNLEtBQUssV0FBVztRQUNsQixPQUFPLFdBQVcsQ0FBQztJQUN2QixDQUFDO0lBQ0QsTUFBTSxLQUFLLGFBQWE7UUFDcEIsT0FBTyxhQUFhLENBQUM7SUFDekIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWNsYXJlIGNvbnN0IENvbW1vbjogYW55O1xyXG5leHBvcnQgZGVjbGFyZSBjb25zdCBVbDogYW55O1xyXG5leHBvcnQgZGVjbGFyZSBjb25zdCBVaTogYW55O1xyXG5leHBvcnQgZGVjbGFyZSBjb25zdCBVdGlsOiBhbnk7XHJcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IEJ3OiBhbnk7XHJcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IEJCQjogYW55O1xyXG5leHBvcnQgZGVjbGFyZSBjb25zdCBMb2dpbkFjdGlvbjogYW55O1xyXG5leHBvcnQgZGVjbGFyZSBjb25zdCBVbHZNYWluQ3RybDogYW55O1xyXG5leHBvcnQgZGVjbGFyZSBjb25zdCBMb2dpbkZvcm1VaTogYW55O1xyXG5leHBvcnQgZGVjbGFyZSBjb25zdCBMb2dpbkZvcm1EYXRhOiBhbnk7XHJcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IExvZ2luRm9ybTogYW55O1xyXG5leHBvcnQgZGVjbGFyZSBjb25zdCBFeHQ6IGFueTtcclxuZXhwb3J0IGRlY2xhcmUgY29uc3QgR2FudHRDaGFydEhlbHBlcjogYW55O1xyXG5leHBvcnQgY2xhc3MgQmFyc2FBcGkge1xyXG4gICAgc3RhdGljIGlkR2VuZXJhdG9yID0gLTEwMDAwO1xyXG4gICAgc3RhdGljIGdldCBHYW50dENoYXJ0SGVscGVyKCk6IGFueSB7XHJcbiAgICAgICAgcmV0dXJuIEdhbnR0Q2hhcnRIZWxwZXI7XHJcbiAgICB9XHJcbiAgICBzdGF0aWMgZ2V0IEV4dCgpOiBhbnkge1xyXG4gICAgICAgIHJldHVybiBFeHQ7XHJcbiAgICB9XHJcbiAgICBzdGF0aWMgZ2V0IENvbW1vbigpOiBhbnkge1xyXG4gICAgICAgIHJldHVybiBDb21tb247XHJcbiAgICB9XHJcbiAgICBzdGF0aWMgZ2V0IFV0aWwoKTogYW55IHtcclxuICAgICAgICByZXR1cm4gVXRpbDtcclxuICAgIH1cclxuICAgIHN0YXRpYyBnZXQgVWwoKTogYW55IHtcclxuICAgICAgICByZXR1cm4gVWw7XHJcbiAgICB9XHJcbiAgICBzdGF0aWMgZ2V0IFVpKCk6IGFueSB7XHJcbiAgICAgICAgcmV0dXJuIFVpO1xyXG4gICAgfVxyXG4gICAgc3RhdGljIGdldCBCdygpOiBhbnkge1xyXG4gICAgICAgIHJldHVybiBCdztcclxuICAgIH1cclxuICAgIHN0YXRpYyBnZXQgQkJCKCk6IGFueSB7XHJcbiAgICAgICAgcmV0dXJuIEJCQjtcclxuICAgIH1cclxuICAgIHN0YXRpYyBnZXQgTG9naW5Gb3JtKCk6IGFueSB7XHJcbiAgICAgICAgcmV0dXJuIExvZ2luRm9ybTtcclxuICAgIH1cclxuICAgIHN0YXRpYyBnZXQgTG9naW5BY3Rpb24oKTogYW55IHtcclxuICAgICAgICByZXR1cm4gTG9naW5BY3Rpb247XHJcbiAgICB9XHJcbiAgICBzdGF0aWMgZ2V0IExvZ2luRm9ybVVpKCk6IGFueSB7XHJcbiAgICAgICAgcmV0dXJuIExvZ2luRm9ybVVpO1xyXG4gICAgfVxyXG4gICAgc3RhdGljIGdldCBMb2dpbkZvcm1EYXRhKCk6IGFueSB7XHJcbiAgICAgICAgcmV0dXJuIExvZ2luRm9ybURhdGE7XHJcbiAgICB9XHJcbn1cclxuIl19
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2EtYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etbm92aW4tcmF5LWNvcmUvc3JjL2xpYi9hYnN0cmFjdC1jbGFzc2VzL2JhcnNhLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFjQSxNQUFNLE9BQU8sUUFBUTthQUNWLGdCQUFXLEdBQUcsQ0FBQyxLQUFLLENBQUM7SUFDNUIsTUFBTSxLQUFLLGdCQUFnQjtRQUN2QixPQUFPLGdCQUFnQixDQUFDO0lBQzVCLENBQUM7SUFDRCxNQUFNLEtBQUssT0FBTztRQUNkLE9BQU8sT0FBTyxDQUFDO0lBQ25CLENBQUM7SUFDRCxNQUFNLEtBQUssR0FBRztRQUNWLE9BQU8sR0FBRyxDQUFDO0lBQ2YsQ0FBQztJQUNELE1BQU0sS0FBSyxNQUFNO1FBQ2IsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQztJQUNELE1BQU0sS0FBSyxJQUFJO1FBQ1gsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUNELE1BQU0sS0FBSyxFQUFFO1FBQ1QsT0FBTyxFQUFFLENBQUM7SUFDZCxDQUFDO0lBQ0QsTUFBTSxLQUFLLEVBQUU7UUFDVCxPQUFPLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFDRCxNQUFNLEtBQUssRUFBRTtRQUNULE9BQU8sRUFBRSxDQUFDO0lBQ2QsQ0FBQztJQUNELE1BQU0sS0FBSyxHQUFHO1FBQ1YsT0FBTyxHQUFHLENBQUM7SUFDZixDQUFDO0lBQ0QsTUFBTSxLQUFLLFNBQVM7UUFDaEIsT0FBTyxTQUFTLENBQUM7SUFDckIsQ0FBQztJQUNELE1BQU0sS0FBSyxXQUFXO1FBQ2xCLE9BQU8sV0FBVyxDQUFDO0lBQ3ZCLENBQUM7SUFDRCxNQUFNLEtBQUssV0FBVztRQUNsQixPQUFPLFdBQVcsQ0FBQztJQUN2QixDQUFDO0lBQ0QsTUFBTSxLQUFLLGFBQWE7UUFDcEIsT0FBTyxhQUFhLENBQUM7SUFDekIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWNsYXJlIGNvbnN0IENvbW1vbjogYW55O1xuZXhwb3J0IGRlY2xhcmUgY29uc3QgVWw6IGFueTtcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IFVpOiBhbnk7XG5leHBvcnQgZGVjbGFyZSBjb25zdCBVdGlsOiBhbnk7XG5leHBvcnQgZGVjbGFyZSBjb25zdCBCdzogYW55O1xuZXhwb3J0IGRlY2xhcmUgY29uc3QgQkJCOiBhbnk7XG5leHBvcnQgZGVjbGFyZSBjb25zdCBMb2dpbkFjdGlvbjogYW55O1xuZXhwb3J0IGRlY2xhcmUgY29uc3QgVWx2TWFpbkN0cmw6IGFueTtcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IExvZ2luRm9ybVVpOiBhbnk7XG5leHBvcnQgZGVjbGFyZSBjb25zdCBMb2dpbkZvcm1EYXRhOiBhbnk7XG5leHBvcnQgZGVjbGFyZSBjb25zdCBMb2dpbkZvcm06IGFueTtcbmV4cG9ydCBkZWNsYXJlIGNvbnN0IEV4dDogYW55O1xuZXhwb3J0IGRlY2xhcmUgY29uc3QgT2ZmbGluZTogYW55O1xuZXhwb3J0IGRlY2xhcmUgY29uc3QgR2FudHRDaGFydEhlbHBlcjogYW55O1xuZXhwb3J0IGNsYXNzIEJhcnNhQXBpIHtcbiAgICBzdGF0aWMgaWRHZW5lcmF0b3IgPSAtMTAwMDA7XG4gICAgc3RhdGljIGdldCBHYW50dENoYXJ0SGVscGVyKCk6IGFueSB7XG4gICAgICAgIHJldHVybiBHYW50dENoYXJ0SGVscGVyO1xuICAgIH1cbiAgICBzdGF0aWMgZ2V0IE9mZmxpbmUoKTogYW55IHtcbiAgICAgICAgcmV0dXJuIE9mZmxpbmU7XG4gICAgfVxuICAgIHN0YXRpYyBnZXQgRXh0KCk6IGFueSB7XG4gICAgICAgIHJldHVybiBFeHQ7XG4gICAgfVxuICAgIHN0YXRpYyBnZXQgQ29tbW9uKCk6IGFueSB7XG4gICAgICAgIHJldHVybiBDb21tb247XG4gICAgfVxuICAgIHN0YXRpYyBnZXQgVXRpbCgpOiBhbnkge1xuICAgICAgICByZXR1cm4gVXRpbDtcbiAgICB9XG4gICAgc3RhdGljIGdldCBVbCgpOiBhbnkge1xuICAgICAgICByZXR1cm4gVWw7XG4gICAgfVxuICAgIHN0YXRpYyBnZXQgVWkoKTogYW55IHtcbiAgICAgICAgcmV0dXJuIFVpO1xuICAgIH1cbiAgICBzdGF0aWMgZ2V0IEJ3KCk6IGFueSB7XG4gICAgICAgIHJldHVybiBCdztcbiAgICB9XG4gICAgc3RhdGljIGdldCBCQkIoKTogYW55IHtcbiAgICAgICAgcmV0dXJuIEJCQjtcbiAgICB9XG4gICAgc3RhdGljIGdldCBMb2dpbkZvcm0oKTogYW55IHtcbiAgICAgICAgcmV0dXJuIExvZ2luRm9ybTtcbiAgICB9XG4gICAgc3RhdGljIGdldCBMb2dpbkFjdGlvbigpOiBhbnkge1xuICAgICAgICByZXR1cm4gTG9naW5BY3Rpb247XG4gICAgfVxuICAgIHN0YXRpYyBnZXQgTG9naW5Gb3JtVWkoKTogYW55IHtcbiAgICAgICAgcmV0dXJuIExvZ2luRm9ybVVpO1xuICAgIH1cbiAgICBzdGF0aWMgZ2V0IExvZ2luRm9ybURhdGEoKTogYW55IHtcbiAgICAgICAgcmV0dXJuIExvZ2luRm9ybURhdGE7XG4gICAgfVxufVxuIl19
@@ -127,6 +127,34 @@ const pipes = [
127
127
  IsExpandedNodePipe,
128
128
  ThImageOrIconePipe
129
129
  ];
130
+ const functionL1 = function () {
131
+ if (BarsaApi.LoginFormData.Culture === 'fa-IR') {
132
+ return Promise.resolve();
133
+ }
134
+ return fetch(`/Localization/Translation/data_${BarsaApi.LoginFormData.Culture}.json`)
135
+ .then(function (res) {
136
+ return res.json();
137
+ })
138
+ .then(function (res) {
139
+ if (BBB) {
140
+ // eslint-disable
141
+ BBB = { ...BarsaApi.BBB, ...res };
142
+ }
143
+ });
144
+ };
145
+ const functionL2 = function (portalService, titleService) {
146
+ portalService.loadUserPortalSetting();
147
+ portalService.loadPortalDataSync();
148
+ if (portalService.portalData?.Title) {
149
+ titleService.setTitle(portalService.portalData?.Title);
150
+ }
151
+ if (BarsaApi.LoginFormData.IsAnonymous && !BarsaApi.LoginFormData.IsServiceDesk) {
152
+ return portalService.loadSystem(BarsaApi.LoginFormData.PortalSystemId); // login form need just portal system
153
+ }
154
+ else {
155
+ return portalService.loadSystem(); // load all systems if user is logged in
156
+ }
157
+ };
130
158
  export class BarsaNovinRayCoreModule extends BaseModule {
131
159
  constructor(dcm, componentFactoryResolver) {
132
160
  super(dcm, componentFactoryResolver, 'BarsaNovinRayCoreModule');
@@ -140,8 +168,20 @@ export class BarsaNovinRayCoreModule extends BaseModule {
140
168
  providers: [
141
169
  {
142
170
  provide: APP_INITIALIZER,
143
- useFactory: (portalService) => () => portalService.loadServerStartupData(),
144
- deps: [PortalService, Title],
171
+ useFactory: (portalService, titleService, promptUpdateService, barsaStorageService, swCommunication) => () => portalService.loadServerStartupData().then(() => {
172
+ Promise.all([functionL1(), functionL2(portalService, titleService)]).finally(() => {
173
+ promptUpdateService.checkForUpdate();
174
+ barsaStorageService.init();
175
+ swCommunication.init();
176
+ });
177
+ }),
178
+ deps: [
179
+ PortalService,
180
+ Title,
181
+ PromptUpdateService,
182
+ BarsaStorageService,
183
+ ServiceWorkerCommuncationService
184
+ ],
145
185
  multi: true
146
186
  },
147
187
  {
@@ -159,54 +199,6 @@ export class BarsaNovinRayCoreModule extends BaseModule {
159
199
  deps: [NotificationService],
160
200
  multi: true
161
201
  },
162
- {
163
- provide: APP_INITIALIZER,
164
- useFactory: (promptUpdateService, barsaStorageService, swCommunication) => () => {
165
- promptUpdateService.checkForUpdate();
166
- barsaStorageService.init();
167
- swCommunication.init();
168
- },
169
- deps: [PromptUpdateService, BarsaStorageService, ServiceWorkerCommuncationService],
170
- multi: true
171
- },
172
- {
173
- provide: APP_INITIALIZER,
174
- useFactory: () => () => {
175
- if (BarsaApi.LoginFormData.Culture === 'fa-IR') {
176
- return Promise.resolve();
177
- }
178
- return fetch(`/Localization/Translation/data_${BarsaApi.LoginFormData.Culture}.json`)
179
- .then(function (res) {
180
- return res.json();
181
- })
182
- .then(function (res) {
183
- if (BBB) {
184
- // eslint-disable
185
- BBB = { ...BarsaApi.BBB, ...res };
186
- }
187
- });
188
- },
189
- deps: [],
190
- multi: true
191
- },
192
- {
193
- provide: APP_INITIALIZER,
194
- useFactory: (portalService, titleService) => () => {
195
- portalService.loadUserPortalSetting();
196
- portalService.loadPortalDataSync();
197
- if (portalService.portalData?.Title) {
198
- titleService.setTitle(portalService.portalData?.Title);
199
- }
200
- if (BarsaApi.LoginFormData.IsAnonymous && !BarsaApi.LoginFormData.IsServiceDesk) {
201
- return portalService.loadSystem(BarsaApi.LoginFormData.PortalSystemId); // login form need just portal system
202
- }
203
- else {
204
- return portalService.loadSystem(); // load all systems if user is logged in
205
- }
206
- },
207
- deps: [PortalService, Title],
208
- multi: true
209
- },
210
202
  ...pipes,
211
203
  PortalService,
212
204
  UploadService,
@@ -433,4 +425,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImpor
433
425
  schemas: [NO_ERRORS_SCHEMA]
434
426
  }]
435
427
  }], ctorParameters: () => [{ type: i1.DynamicComponentService }, { type: i0.ComponentFactoryResolver }] });
436
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2Etbm92aW4tcmF5LWNvcmUubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etbm92aW4tcmF5LWNvcmUvc3JjL2xpYi9iYXJzYS1ub3Zpbi1yYXktY29yZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILGVBQWUsRUFFZixZQUFZLEVBRVosUUFBUSxFQUNSLGdCQUFnQixFQUNuQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFeEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRWpFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFekMsT0FBTyxFQUNILG9CQUFvQixFQUNwQixvQkFBb0IsRUFDcEIsb0JBQW9CLEVBQ3BCLCtCQUErQixFQUMvQixzQkFBc0IsRUFDekIsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFP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QUFFLENBQUMsR0FBRyxVQUFVLEVBQUUsR0FBRyxLQUFLLEVBQUUsR0FBRyxVQUFVLENBQUM7b0JBQ3RELE9BQU8sRUFBRTt3QkFDTCxZQUFZO3dCQUNaLGdCQUFnQjt3QkFDaEIsOEJBQThCO3dCQUM5Qix3QkFBd0I7d0JBQ3hCLGVBQWU7cUJBQ2xCO29CQUNELE9BQU8sRUFBRSxDQUFDLEdBQUcsVUFBVSxFQUFFLEdBQUcsS0FBSyxFQUFFLEdBQUcsVUFBVSxDQUFDO29CQUNqRCxPQUFPLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQztpQkFDOUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFQUF9JTklUSUFMSVpFUixcbiAgICBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gICAgRXJyb3JIYW5kbGVyLFxuICAgIE1vZHVsZVdpdGhQcm92aWRlcnMsXG4gICAgTmdNb2R1bGUsXG4gICAgTk9fRVJST1JTX1NDSEVNQVxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBIdHRwQ2xpZW50TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuXG5pbXBvcnQgeyBGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9mb3JtL2Zvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IEZpZWxkVWlDb21wb25lbnQgfSBmcm9tICcuL2ZpZWxkLXVpL2ZpZWxkLXVpLmNvbXBvbmVudCc7XG5cbmltcG9ydCB7IFJlcG9ydENvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4vcmVwb3J0LWNvbnRhaW5lci9yZXBvcnQtY29udGFpbmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBbmNob3JTY3JvbGxEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvYW5jaG9yLXNjcm9sbC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQmFyc2FOb3ZpblJheUNvcmVSb3V0aW5nTW9kdWxlIH0gZnJvbSAnLi9iYXJzYS1ub3Zpbi1yYXktY29yZS1yb3V0aW5nLm1vZHVsZSc7XG5pbXBvcnQgeyBNb2RhbFJvb3RDb21wb25lbnQgfSBmcm9tICcuL21vZGFsLXJvb3QuY29tcG9uZW50JztcbmltcG9ydCB7IEZvcm1OZXdDb21wb25lbnQgfSBmcm9tICcuL2Zvcm0tbmV3L2Zvcm0tbmV3LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSb290UG9ydGFsQ29tcG9uZW50IH0gZnJvbSAnLi9yb290LXBvcnRhbC9yb290LXBvcnRhbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXV0aEd1YXJkIH0gZnJvbSAnLi9hdXRoLWd1YXJkJztcblxuaW1wb3J0IHtcbiAgICBEeW5hbWljRm9ybUNvbXBvbmVudCxcbiAgICBEeW5hbWljSXRlbUNvbXBvbmVudCxcbiAgICBCYXNlRHluYW1pY0NvbXBvbmVudCxcbiAgICBEeW5hbWljRm9ybVRvb2xiYXJpdGVtQ29tcG9uZW50LFxuICAgIER5bmFtaWNMYXlvdXRDb21wb25lbnRcbn0gZnJvbSAnLi9keW5hbWljLWNvbXBvbmVudCc7XG5pbXBvcnQgeyBSZWRpcmVjdEhvbWVHdWFyZCB9IGZyb20gJy4vcmVkaXJlY3QtaG9tZS1ndWFyZCc7XG5pbXBvcnQgeyBOb3RGb3VuZENvbXBvbmVudCB9IGZyb20gJy4vbm90LWZvdW5kL25vdC1mb3VuZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUm9vdFBhZ2VDb21wb25lbnQgfSBmcm9tICcuL3Jvb3QtcGFnZS9yb290LXBhZ2UuY29tcG9uZW50JztcbmltcG9ydCB7IEJhc2VNb2R1bGUgfSBmcm9tICcuL2Jhc2UubW9kdWxlJztcbmltcG9ydCB7IFBvcnRhbFBhZ2VDb21wb25lbnQgfSBmcm9tICcuL3BvcnRhbC1wYWdlL3BvcnRhbC1wYWdlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBHbG9iYWxFcnJvckhhbmRsZXIgfSBmcm9tICcuL2dsb2JhbC1lcnJvci1oYW5kbGVyJztcblxuaW1wb3J0IHsgUmVkaXJlY3RSZXBvcnROYXZpZ2F0b3JDb21tYW5kQ29tcG9uZW50IH0gZnJvbSAnLi9yZWRpcmVjdC1yZXBvcnQtbmF2aWdhdG9yLWNvbW1hbmQvcmVkaXJlY3QtcmVwb3J0LW5hdmlnYXRvci1jb21tYW5kLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFbXB0eVBhZ2VXaXRoUm91dGVyQW5kUm91dGVyT3V0bGV0Q29tcG9uZW50IH0gZnJvbSAnLi9lbXB0eS1wYWdlLXdpdGgtcm91dGVyLWFuZC1yb3V0ZXItb3V0bGV0L2VtcHR5LXBhZ2Utd2l0aC1yb3V0ZXItYW5kLXJvdXRlci1vdXRsZXQuY29tcG9uZW50JztcbmltcG9ydCB7IEVtcHR5UGFnZUNvbXBvbmVudCB9IGZyb20gJy4vZW1wdHktcGFnZS9lbXB0eS1wYWdlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCYXJzYUFwaSB9IGZyb20gJy4vYWJzdHJhY3QtY2xhc3Nlcy9iYXJzYS1hcGknO1xuaW1wb3J0IHsgRm9ybVBhZ2VDb21wb25lbnQgfSBmcm9tICcuL2Fic3RyYWN0LWNsYXNzZXMvZm9ybS1wYWdlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb3JtRmllbGRSZXBvcnRQYWdlQ29tcG9uZW50IH0gZnJvbSAnLi9hYnN0cmFjdC1jbGFzc2VzJztcbmltcG9ydCB7IFBvcnRhbFBhZ2VTaWRlYmFyQ29tcG9uZW50IH0gZnJvbSAnLi9wb3J0YWwtcGFnZS9wb3J0YWwtc2lkZWJhci5jb21wb25lbnQnO1xuXG5pbXBvcnQge1xuICAgIEJyZWFkY3J1bWJTZXJ2aWNlLFxuICAgIFVwbG9hZFNlcnZpY2UsXG4gICAgQXBpU2VydmljZSxcbiAgICBMb2dTZXJ2aWNlLFxuICAgIEJhcnNhRGlhbG9nU2VydmljZSxcbiAgICBQb3J0YWxTZXJ2aWNlLFxuICAgIFVpU2VydmljZSxcbiAgICBMYXlvdXRTZXJ2aWNlLFxuICAgIER5bmFtaWNDb21wb25lbnRTZXJ2aWNlLFxuICAgIE5ldHdvcmtTdGF0dXNTZXJ2aWNlLFxuICAgIEF1ZGlvUmVjb3JkaW5nU2VydmljZSxcbiAgICBWaWRlb1JlY29yZGluZ1NlcnZpY2UsXG4gICAgUHJvbXB0VXBkYXRlU2VydmljZSxcbiAgICBCYXJzYVN0b3JhZ2VTZXJ2aWNlLFxuICAgIExvY2FsU3RvcmFnZVNlcnZpY2UsXG4gICAgSW5kZXhlZERiU2VydmljZSxcbiAgICBOb3RpZmljYXRpb25TZXJ2aWNlLFxuICAgIFNlcnZpY2VXb3JrZXJOb3RpZmljYXRpb25TZXJ2aWNlLFxuICAgIFNlcnZpY2VXb3JrZXJDb21tdW5jYXRpb25TZXJ2aWNlLFxuICAgIFNhdmVTY3JvbGxQb3NpdGlvblNlcnZpY2Vcbn0gZnJvbSAnLi9zZXJ2aWNlcyc7XG5pbXBvcnQge1xuICAgIER5bmFtaWNDb21tYW5kRGlyZWN0aXZlLFxuICAgIEl0ZW1zUmVuZGVyZXJEaXJlY3RpdmUsXG4gICAgTnVtYmVyc09ubHlJbnB1dERpcmVjdGl2ZSxcbiAgICBQbGFjZUhvbGRlckRpcmVjdGl2ZSxcbiAgICBSZW5kZXJVbHZQYWdpbkRpcmVjdGl2ZSxcbiAgICBJbWFnZUxhenlEaXJlY3RpdmUsXG4gICAgVW50aWxJblZpZXdEaXJlY3RpdmUsXG4gICAgSW50ZXJzZWN0aW9uT2JzZXJ2ZXJEaXJlY3RpdmUsXG4gICAgRWxsaXBzaWZ5RGlyZWN0aXZlLFxuICAgIFRhYmxlUmVzaXplckRpcmVjdGl2ZSxcbiAgICBDb2x1bW5SZXNpemVyRGlyZWN0aXZlLFxuICAgIEF0dHJSdGxEaXJlY3RpdmUsXG4gICAgUmVuZGVyVWx2Vmlld2VyRGlyZWN0aXZlLFxuICAgIFVsdkNvbW1hbmREaXJlY3RpdmUsXG4gICAgV29yZmtmbG93d0Nob2ljZUNvbW1hbmREaXJlY3RpdmUsXG4gICAgQ29weURpcmVjdGl2ZSxcbiAgICBFbGxhcHNpc1RleHREaXJlY3RpdmUsXG4gICAgRmlsbEVtcHR5U3BhY2VEaXJlY3RpdmUsXG4gICAgRm9ybUNsb3NlRGlyZWN0aXZlLFxuICAgIE1vYmlsZURpcmVjdGl2ZSxcbiAgICBCb2R5Q2xpY2tEaXJlY3RpdmUsXG4gICAgQ291bnREb3duRGlyZWN0aXZlLFxuICAgIFJvdXRlRm9ybUNoYW5nZURpcmVjdGl2ZSxcbiAgICBEeW5hbWljU3R5bGVEaXJlY3RpdmUsXG4gICAgTm93cmFwdGV4dERpcmVjdGl2ZVxufSBmcm9tICcuL2RpcmVjdGl2ZXMnO1xuaW1wb3J0IHtcbiAgICBOdW1lcmFsUGlwZSxcbiAgICBDYW5VcGxvYWRGaWxlUGlwZSxcbiAgICBSZW1vdmVOZXdsaW5lUGlwZSxcbiAgICBDb252ZXJ0VG9TdHlsZVBpcGUsXG4gICAgRmlsdGVyUGlwZSxcbiAgICBGaWx0ZXJUYWJQaXBlLFxuICAgIEZpbHRlclN0cmluZ1BpcGUsXG4gICAgRmlvcmlJY29uUGlwZSxcbiAgICBTb3J0UGlwZSxcbiAgICBHcm91cEJ5UGlwZSxcbiAgICBNdWx0aXBsZUdyb3VwQnlQaXBlLFxuICAgIE1vVmFsdWVQaXBlLFxuICAgIE1vUmVwb3J0VmFsdWVQaXBlLFxuICAgIEhlYWRlckZhY2V0VmFsdWVQaXBlLFxuICAgIFBpY3R1cmVGaWVsZFNvdXJjZVBpcGUsXG4gICAgVGxiQnV0dG9uc1BpcGUsXG4gICAgU2VwZXJhdG9yRml4UGlwZSxcbiAgICBNb1JlcG9ydFZhbHVlQ29uY2F0UGlwZSxcbiAgICBDb250ZXh0TWVudVBpcGUsXG4gICAgQmJiVHJhbnNsYXRlUGlwZSxcbiAgICBCYXJzYUljb25EaWN0UGlwZSxcbiAgICBGaWxlSW5mb0NvdW50UGlwZSxcbiAgICBDb250cm9sVWlQaXBlLFxuICAgIFZpc2libGVWYWx1ZVBpcGUsXG4gICAgRGF0ZVRpbWVUb0NhcHRpb25QaXBlLFxuICAgIEZpbHRlclRvb2xiYXJDb250cm9sUGlwZSxcbiAgICBMaXN0Q291bnRQaXBlLFxuICAgIFRvdGFsU3VtbWFyeVBpcGUsXG4gICAgTWVyZ2VGaWVsZHNUb0NvbHVtbnNQaXBlLFxuICAgIEZpbmRDb2x1bW5CeURiTmFtZVBpcGUsXG4gICAgRmlsdGVyQ29sdW1uc0J5RGV0YWlsc1BpcGUsXG4gICAgTW9JbmZvVWx2TW9MaXN0UGlwZSxcbiAgICBNb0luZm9VbHZQYWdpbmdQaXBlLFxuICAgIFJldmVyc2VQaXBlLFxuICAgIENvbHVtbkN1c3RvbVVpUGlwZSxcbiAgICBTYW5pdGl6ZVRleHRQaXBlLFxuICAgIENvbHVtbkN1c3RvbUNvbXBvbmVudFBpcGUsXG4gICAgQ29sdW1uSWNvblBpcGUsXG4gICAgQ29sdW1uVmFsdWVQaXBlLFxuICAgIFJvd051bWJlclBpcGUsXG4gICAgQ29tYm9Sb3dJbWFnZVBpcGUsXG4gICAgSXNFeHBhbmRlZE5vZGVQaXBlLFxuICAgIFRoSW1hZ2VPckljb25lUGlwZVxufSBmcm9tICcuL3BpcGVzJztcbmltcG9ydCB7IEJhcnNhU2FwVWlGb3JtUGFnZU1vZHVsZSB9IGZyb20gJy4vZm9ybS1wYWdlLXJvdXRpbmcnO1xuaW1wb3J0IHsgUmVzaXphYmxlTW9kdWxlIH0gZnJvbSAnLi9yZXNpemFibGUtbW9kdWxlL3Jlc2l6YWJsZS5tb2R1bGUnO1xuaW1wb3J0IHsgVGl0bGUgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXZhclxuZGVjbGFyZSB2YXIgQkJCOiBhbnk7XG5cbmNvbnN0IGNvbXBvbmVudHMgPSBbXG4gICAgRm9ybUNvbXBvbmVudCxcbiAgICBGaWVsZFVpQ29tcG9uZW50LFxuICAgIE5vdEZvdW5kQ29tcG9uZW50LFxuICAgIFJvb3RQYWdlQ29tcG9uZW50LFxuICAgIFJvb3RQb3J0YWxDb21wb25lbnQsXG4gICAgUmVwb3J0Q29udGFpbmVyQ29tcG9uZW50LFxuICAgIEZvcm1OZXdDb21wb25lbnQsXG4gICAgTW9kYWxSb290Q29tcG9uZW50LFxuICAgIFBvcnRhbFBhZ2VDb21wb25lbnQsXG4gICAgUG9ydGFsUGFnZVNpZGViYXJDb21wb25lbnQsXG4gICAgUmVkaXJlY3RSZXBvcnROYXZpZ2F0b3JDb21tYW5kQ29tcG9uZW50LFxuICAgIEVtcHR5UGFnZVdpdGhSb3V0ZXJBbmRSb3V0ZXJPdXRsZXRDb21wb25lbnQsXG4gICAgRHluYW1pY0l0ZW1Db21wb25lbnQsXG4gICAgRHluYW1pY0Zvcm1Db21wb25lbnQsXG4gICAgQmFzZUR5bmFtaWNDb21wb25lbnQsXG4gICAgRHluYW1pY0Zvcm1Ub29sYmFyaXRlbUNvbXBvbmVudCxcbiAgICBEeW5hbWljTGF5b3V0Q29tcG9uZW50LFxuICAgIEVtcHR5UGFnZUNvbXBvbmVudCxcbiAgICBGb3JtUGFnZUNvbXBvbmVudCxcbiAgICBGb3JtRmllbGRSZXBvcnRQYWdlQ29tcG9uZW50XG5dO1xuY29uc3QgZGlyZWN0aXZlcyA9IFtcbiAgICBQbGFjZUhvbGRlckRpcmVjdGl2ZSxcbiAgICBOdW1iZXJzT25seUlucHV0RGlyZWN0aXZlLFxuICAgIFJlbmRlclVsdlZpZXdlckRpcmVjdGl2ZSxcbiAgICBSZW5kZXJVbHZQYWdpbkRpcmVjdGl2ZSxcbiAgICBBbmNob3JTY3JvbGxEaXJlY3RpdmUsXG4gICAgSXRlbXNSZW5kZXJlckRpcmVjdGl2ZSxcbiAgICBVbHZDb21tYW5kRGlyZWN0aXZlLFxuICAgIER5bmFtaWNDb21tYW5kRGlyZWN0aXZlLFxuICAgIFdvcmZrZmxvd3dDaG9pY2VDb21tYW5kRGlyZWN0aXZlLFxuICAgIEltYWdlTGF6eURpcmVjdGl2ZSxcbiAgICBVbnRpbEluVmlld0RpcmVjdGl2ZSxcbiAgICBJbnRlcnNlY3Rpb25PYnNlcnZlckRpcmVjdGl2ZSxcbiAgICBFbGxpcHNpZnlEaXJlY3RpdmUsXG4gICAgVGFibGVSZXNpemVyRGlyZWN0aXZlLFxuICAgIENvbHVtblJlc2l6ZXJEaXJlY3RpdmUsXG4gICAgQXR0clJ0bERpcmVjdGl2ZSxcbiAgICBDb3B5RGlyZWN0aXZlLFxuICAgIEVsbGFwc2lzVGV4dERpcmVjdGl2ZSxcbiAgICBGaWxsRW1wdHlTcGFjZURpcmVjdGl2ZSxcbiAgICBGb3JtQ2xvc2VEaXJlY3RpdmUsXG4gICAgTW9iaWxlRGlyZWN0aXZlLFxuICAgIEJvZHlDbGlja0RpcmVjdGl2ZSxcbiAgICBDb3VudERvd25EaXJlY3RpdmUsXG4gICAgUm91dGVGb3JtQ2hhbmdlRGlyZWN0aXZlLFxuICAgIER5bmFtaWNTdHlsZURpcmVjdGl2ZSxcbiAgICBOb3dyYXB0ZXh0RGlyZWN0aXZlXG5dO1xuY29uc3QgcGlwZXMgPSBbXG4gICAgTnVtZXJhbFBpcGUsXG4gICAgQ2FuVXBsb2FkRmlsZVBpcGUsXG4gICAgUmVtb3ZlTmV3bGluZVBpcGUsXG4gICAgQ29udmVydFRvU3R5bGVQaXBlLFxuICAgIEZpbHRlclBpcGUsXG4gICAgRmlsdGVyVGFiUGlwZSxcbiAgICBGaWx0ZXJTdHJpbmdQaXBlLFxuICAgIEZpb3JpSWNvblBpcGUsXG4gICAgU29ydFBpcGUsXG4gICAgR3JvdXBCeVBpcGUsXG4gICAgTXVsdGlwbGVHcm91cEJ5UGlwZSxcbiAgICBNb1ZhbHVlUGlwZSxcbiAgICBNb1JlcG9ydFZhbHVlUGlwZSxcbiAgICBIZWFkZXJGYWNldFZhbHVlUGlwZSxcbiAgICBQaWN0dXJlRmllbGRTb3VyY2VQaXBlLFxuICAgIFRsYkJ1dHRvbnNQaXBlLFxuICAgIFNlcGVyYXRvckZpeFBpcGUsXG4gICAgTW9SZXBvcnRWYWx1ZUNvbmNhdFBpcGUsXG4gICAgQ29udGV4dE1lbnVQaXBlLFxuICAgIEJiYlRyYW5zbGF0ZVBpcGUsXG4gICAgQmFyc2FJY29uRGljdFBpcGUsXG4gICAgRmlsZUluZm9Db3VudFBpcGUsXG4gICAgQ29udHJvbFVpUGlwZSxcbiAgICBWaXNpYmxlVmFsdWVQaXBlLFxuICAgIERhdGVUaW1lVG9DYXB0aW9uUGlwZSxcbiAgICBGaWx0ZXJUb29sYmFyQ29udHJvbFBpcGUsXG4gICAgTGlzdENvdW50UGlwZSxcbiAgICBUb3RhbFN1bW1hcnlQaXBlLFxuICAgIE1lcmdlRmllbGRzVG9Db2x1bW5zUGlwZSxcbiAgICBGaW5kQ29sdW1uQnlEYk5hbWVQaXBlLFxuICAgIEZpbHRlckNvbHVtbnNCeURldGFpbHNQaXBlLFxuICAgIE1vSW5mb1Vsdk1vTGlzdFBpcGUsXG4gICAgTW9JbmZvVWx2UGFnaW5nUGlwZSxcbiAgICBSZXZlcnNlUGlwZSxcbiAgICBDb2x1bW5DdXN0b21VaVBpcGUsXG4gICAgU2FuaXRpemVUZXh0UGlwZSxcbiAgICBDb2x1bW5DdXN0b21Db21wb25lbnRQaXBlLFxuICAgIENvbHVtbkljb25QaXBlLFxuICAgIENvbHVtblZhbHVlUGlwZSxcbiAgICBSb3dOdW1iZXJQaXBlLFxuICAgIENvbWJvUm93SW1hZ2VQaXBlLFxuICAgIElzRXhwYW5kZWROb2RlUGlwZSxcbiAgICBUaEltYWdlT3JJY29uZVBpcGVcbl07XG5ATmdNb2R1bGUoe1xuICAgIGRlY2xhcmF0aW9uczogWy4uLmNvbXBvbmVudHMsIC4uLnBpcGVzLCAuLi5kaXJlY3RpdmVzXSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgSHR0cENsaWVudE1vZHVsZSxcbiAgICAgICAgQmFyc2FOb3ZpblJheUNvcmVSb3V0aW5nTW9kdWxlLFxuICAgICAgICBCYXJzYVNhcFVpRm9ybVBhZ2VNb2R1bGUsXG4gICAgICAgIFJlc2l6YWJsZU1vZHVsZVxuICAgIF0sXG4gICAgZXhwb3J0czogWy4uLmNvbXBvbmVudHMsIC4uLnBpcGVzLCAuLi5kaXJlY3RpdmVzXSxcbiAgICBzY2hlbWFzOiBbTk9fRVJST1JTX1NDSEVNQV1cbn0pXG5leHBvcnQgY2xhc3MgQmFyc2FOb3ZpblJheUNvcmVNb2R1bGUgZXh0ZW5kcyBCYXNlTW9kdWxlIHtcbiAgICBwcm90ZWN0ZWQgZHluYW1pY0NvbXBvbmVudHMgPSBbLi4uY29tcG9uZW50c107XG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIGRjbTogRHluYW1pY0NvbXBvbmVudFNlcnZpY2UsIHByb3RlY3RlZCBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcikge1xuICAgICAgICBzdXBlcihkY20sIGNvbXBvbmVudEZhY3RvcnlSZXNvbHZlciwgJ0JhcnNhTm92aW5SYXlDb3JlTW9kdWxlJyk7XG4gICAgfVxuICAgIHN0YXRpYyBmb3JSb290KCk6IE1vZHVsZVdpdGhQcm92aWRlcnM8QmFyc2FOb3ZpblJheUNvcmVNb2R1bGU+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG5nTW9kdWxlOiBCYXJzYU5vdmluUmF5Q29yZU1vZHVsZSxcbiAgICAgICAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgcHJvdmlkZTogQVBQX0lOSVRJQUxJWkVSLFxuICAgICAgICAgICAgICAgICAgICB1c2VGYWN0b3J5OiAocG9ydGFsU2VydmljZTogUG9ydGFsU2VydmljZSkgPT4gKCkgPT4gcG9ydGFsU2VydmljZS5sb2FkU2VydmVyU3RhcnR1cERhdGEoKSxcbiAgICAgICAgICAgICAgICAgICAgZGVwczogW1BvcnRhbFNlcnZpY2UsIFRpdGxlXSxcbiAgICAgICAgICAgICAgICAgICAgbXVsdGk6IHRydWVcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgcHJvdmlkZTogRXJyb3JIYW5kbGVyLFxuICAgICAgICAgICAgICAgICAgICB1c2VDbGFzczogR2xvYmFsRXJyb3JIYW5kbGVyXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcbiAgICAgICAgICAgICAgICAgICAgdXNlRmFjdG9yeTogKG5vdGlmaWNhdGlvblNlcnZpY2U6IE5vdGlmaWNhdGlvblNlcnZpY2UpID0+ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIEJhcnNhQXBpLlVsLk5vdGlmaWNhdGlvbk1hbmFnZXIub24oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNob3dQb3B1cDogbm90aWZpY2F0aW9uU2VydmljZS5hZGROb3RpZmljYXRpb24uYmluZChub3RpZmljYXRpb25TZXJ2aWNlKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaXNoRXZlbnQ6IG5vdGlmaWNhdGlvblNlcnZpY2UuaGFuZGxlVG9waWMuYmluZChub3RpZmljYXRpb25TZXJ2aWNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIGRlcHM6IFtOb3RpZmljYXRpb25TZXJ2aWNlXSxcbiAgICAgICAgICAgICAgICAgICAgbXVsdGk6IHRydWVcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgcHJvdmlkZTogQVBQX0lOSVRJQUxJWkVSLFxuICAgICAgICAgICAgICAgICAgICB1c2VGYWN0b3J5OlxuICAgICAgICAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb21wdFVwZGF0ZVNlcnZpY2U6IFByb21wdFVwZGF0ZVNlcnZpY2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFyc2FTdG9yYWdlU2VydmljZTogQmFyc2FTdG9yYWdlU2VydmljZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzd0NvbW11bmljYXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICkgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9tcHRVcGRhdGVTZXJ2aWNlLmNoZWNrRm9yVXBkYXRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFyc2FTdG9yYWdlU2VydmljZS5pbml0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3dDb21tdW5pY2F0aW9uLmluaXQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIGRlcHM6IFtQcm9tcHRVcGRhdGVTZXJ2aWNlLCBCYXJzYVN0b3JhZ2VTZXJ2aWNlLCBTZXJ2aWNlV29ya2VyQ29tbXVuY2F0aW9uU2VydmljZV0sXG4gICAgICAgICAgICAgICAgICAgIG11bHRpOiB0cnVlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcbiAgICAgICAgICAgICAgICAgICAgdXNlRmFjdG9yeTogKCkgPT4gKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKEJhcnNhQXBpLkxvZ2luRm9ybURhdGEuQ3VsdHVyZSA9PT0gJ2ZhLUlSJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmZXRjaChgL0xvY2FsaXphdGlvbi9UcmFuc2xhdGlvbi9kYXRhXyR7QmFyc2FBcGkuTG9naW5Gb3JtRGF0YS5DdWx0dXJlfS5qc29uYClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAudGhlbihmdW5jdGlvbiAocmVzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXMuanNvbigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnRoZW4oZnVuY3Rpb24gKHJlcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoQkJCKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQkJCID0geyAuLi5CYXJzYUFwaS5CQkIsIC4uLnJlcyB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIGRlcHM6IFtdLFxuICAgICAgICAgICAgICAgICAgICBtdWx0aTogdHJ1ZVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBwcm92aWRlOiBBUFBfSU5JVElBTElaRVIsXG4gICAgICAgICAgICAgICAgICAgIHVzZUZhY3Rvcnk6IChwb3J0YWxTZXJ2aWNlOiBQb3J0YWxTZXJ2aWNlLCB0aXRsZVNlcnZpY2U6IFRpdGxlKSA9PiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwb3J0YWxTZXJ2aWNlLmxvYWRVc2VyUG9ydGFsU2V0dGluZygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcG9ydGFsU2VydmljZS5sb2FkUG9ydGFsRGF0YVN5bmMoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwb3J0YWxTZXJ2aWNlLnBvcnRhbERhdGE/LlRpdGxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGVTZXJ2aWNlLnNldFRpdGxlKHBvcnRhbFNlcnZpY2UucG9ydGFsRGF0YT8uVGl0bGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKEJhcnNhQXBpLkxvZ2luRm9ybURhdGEuSXNBbm9ueW1vdXMgJiYgIUJhcnNhQXBpLkxvZ2luRm9ybURhdGEuSXNTZXJ2aWNlRGVzaykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBwb3J0YWxTZXJ2aWNlLmxvYWRTeXN0ZW0oQmFyc2FBcGkuTG9naW5Gb3JtRGF0YS5Qb3J0YWxTeXN0ZW1JZCk7IC8vIGxvZ2luIGZvcm0gbmVlZCBqdXN0IHBvcnRhbCBzeXN0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHBvcnRhbFNlcnZpY2UubG9hZFN5c3RlbSgpOyAvLyBsb2FkIGFsbCBzeXN0ZW1zIGlmIHVzZXIgaXMgbG9nZ2VkIGluXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIGRlcHM6IFtQb3J0YWxTZXJ2aWNlLCBUaXRsZV0sXG4gICAgICAgICAgICAgICAgICAgIG11bHRpOiB0cnVlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAuLi5waXBlcyxcbiAgICAgICAgICAgICAgICBQb3J0YWxTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIFVwbG9hZFNlcnZpY2UsXG4gICAgICAgICAgICAgICAgQXBpU2VydmljZSxcbiAgICAgICAgICAgICAgICBMb2dTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIEJhcnNhRGlhbG9nU2VydmljZSxcbiAgICAgICAgICAgICAgICBVaVNlcnZpY2UsXG4gICAgICAgICAgICAgICAgTGF5b3V0U2VydmljZSxcbiAgICAgICAgICAgICAgICBEeW5hbWljQ29tcG9uZW50U2VydmljZSxcbiAgICAgICAgICAgICAgICBCcmVhZGNydW1iU2VydmljZSxcbiAgICAgICAgICAgICAgICBBdXRoR3VhcmQsXG4gICAgICAgICAgICAgICAgTmV0d29ya1N0YXR1c1NlcnZpY2UsXG4gICAgICAgICAgICAgICAgQXVkaW9SZWNvcmRpbmdTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIFZpZGVvUmVjb3JkaW5nU2VydmljZSxcbiAgICAgICAgICAgICAgICBSZWRpcmVjdEhvbWVHdWFyZCxcbiAgICAgICAgICAgICAgICBQcm9tcHRVcGRhdGVTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIE5vdGlmaWNhdGlvblNlcnZpY2UsXG4gICAgICAgICAgICAgICAgU2VydmljZVdvcmtlck5vdGlmaWNhdGlvblNlcnZpY2UsXG4gICAgICAgICAgICAgICAgU2F2ZVNjcm9sbFBvc2l0aW9uU2VydmljZSxcbiAgICAgICAgICAgICAgICBMb2NhbFN0b3JhZ2VTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIEluZGV4ZWREYlNlcnZpY2UsXG4gICAgICAgICAgICAgICAgQmJiVHJhbnNsYXRlUGlwZSxcbiAgICAgICAgICAgICAgICBCYXJzYVN0b3JhZ2VTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIFNlcnZpY2VXb3JrZXJDb21tdW5jYXRpb25TZXJ2aWNlXG4gICAgICAgICAgICBdXG4gICAgICAgIH07XG4gICAgfVxufVxuIl19
428
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2Etbm92aW4tcmF5LWNvcmUubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etbm92aW4tcmF5LWNvcmUvc3JjL2xpYi9iYXJzYS1ub3Zpbi1yYXktY29yZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILGVBQWUsRUFFZixZQUFZLEVBRVosUUFBUSxFQUNSLGdCQUFnQixFQUNuQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFeEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRWpFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFekMsT0FBTyxFQUNILG9CQUFvQixFQUNwQixvQkFBb0IsRUFDcEIsb0JBQW9CLEVBQ3BCLCtCQUErQixFQUMvQixzQkFBc0IsRUFDekIsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFP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QUcsVUFBVSxFQUFFLEdBQUcsS0FBSyxFQUFFLEdBQUcsVUFBVSxDQUFDO29CQUNqRCxPQUFPLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQztpQkFDOUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFQUF9JTklUSUFMSVpFUixcbiAgICBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gICAgRXJyb3JIYW5kbGVyLFxuICAgIE1vZHVsZVdpdGhQcm92aWRlcnMsXG4gICAgTmdNb2R1bGUsXG4gICAgTk9fRVJST1JTX1NDSEVNQVxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBIdHRwQ2xpZW50TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuXG5pbXBvcnQgeyBGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9mb3JtL2Zvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IEZpZWxkVWlDb21wb25lbnQgfSBmcm9tICcuL2ZpZWxkLXVpL2ZpZWxkLXVpLmNvbXBvbmVudCc7XG5cbmltcG9ydCB7IFJlcG9ydENvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4vcmVwb3J0LWNvbnRhaW5lci9yZXBvcnQtY29udGFpbmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBbmNob3JTY3JvbGxEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvYW5jaG9yLXNjcm9sbC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQmFyc2FOb3ZpblJheUNvcmVSb3V0aW5nTW9kdWxlIH0gZnJvbSAnLi9iYXJzYS1ub3Zpbi1yYXktY29yZS1yb3V0aW5nLm1vZHVsZSc7XG5pbXBvcnQgeyBNb2RhbFJvb3RDb21wb25lbnQgfSBmcm9tICcuL21vZGFsLXJvb3QuY29tcG9uZW50JztcbmltcG9ydCB7IEZvcm1OZXdDb21wb25lbnQgfSBmcm9tICcuL2Zvcm0tbmV3L2Zvcm0tbmV3LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSb290UG9ydGFsQ29tcG9uZW50IH0gZnJvbSAnLi9yb290LXBvcnRhbC9yb290LXBvcnRhbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXV0aEd1YXJkIH0gZnJvbSAnLi9hdXRoLWd1YXJkJztcblxuaW1wb3J0IHtcbiAgICBEeW5hbWljRm9ybUNvbXBvbmVudCxcbiAgICBEeW5hbWljSXRlbUNvbXBvbmVudCxcbiAgICBCYXNlRHluYW1pY0NvbXBvbmVudCxcbiAgICBEeW5hbWljRm9ybVRvb2xiYXJpdGVtQ29tcG9uZW50LFxuICAgIER5bmFtaWNMYXlvdXRDb21wb25lbnRcbn0gZnJvbSAnLi9keW5hbWljLWNvbXBvbmVudCc7XG5pbXBvcnQgeyBSZWRpcmVjdEhvbWVHdWFyZCB9IGZyb20gJy4vcmVkaXJlY3QtaG9tZS1ndWFyZCc7XG5pbXBvcnQgeyBOb3RGb3VuZENvbXBvbmVudCB9IGZyb20gJy4vbm90LWZvdW5kL25vdC1mb3VuZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUm9vdFBhZ2VDb21wb25lbnQgfSBmcm9tICcuL3Jvb3QtcGFnZS9yb290LXBhZ2UuY29tcG9uZW50JztcbmltcG9ydCB7IEJhc2VNb2R1bGUgfSBmcm9tICcuL2Jhc2UubW9kdWxlJztcbmltcG9ydCB7IFBvcnRhbFBhZ2VDb21wb25lbnQgfSBmcm9tICcuL3BvcnRhbC1wYWdlL3BvcnRhbC1wYWdlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBHbG9iYWxFcnJvckhhbmRsZXIgfSBmcm9tICcuL2dsb2JhbC1lcnJvci1oYW5kbGVyJztcblxuaW1wb3J0IHsgUmVkaXJlY3RSZXBvcnROYXZpZ2F0b3JDb21tYW5kQ29tcG9uZW50IH0gZnJvbSAnLi9yZWRpcmVjdC1yZXBvcnQtbmF2aWdhdG9yLWNvbW1hbmQvcmVkaXJlY3QtcmVwb3J0LW5hdmlnYXRvci1jb21tYW5kLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFbXB0eVBhZ2VXaXRoUm91dGVyQW5kUm91dGVyT3V0bGV0Q29tcG9uZW50IH0gZnJvbSAnLi9lbXB0eS1wYWdlLXdpdGgtcm91dGVyLWFuZC1yb3V0ZXItb3V0bGV0L2VtcHR5LXBhZ2Utd2l0aC1yb3V0ZXItYW5kLXJvdXRlci1vdXRsZXQuY29tcG9uZW50JztcbmltcG9ydCB7IEVtcHR5UGFnZUNvbXBvbmVudCB9IGZyb20gJy4vZW1wdHktcGFnZS9lbXB0eS1wYWdlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCYXJzYUFwaSB9IGZyb20gJy4vYWJzdHJhY3QtY2xhc3Nlcy9iYXJzYS1hcGknO1xuaW1wb3J0IHsgRm9ybVBhZ2VDb21wb25lbnQgfSBmcm9tICcuL2Fic3RyYWN0LWNsYXNzZXMvZm9ybS1wYWdlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb3JtRmllbGRSZXBvcnRQYWdlQ29tcG9uZW50IH0gZnJvbSAnLi9hYnN0cmFjdC1jbGFzc2VzJztcbmltcG9ydCB7IFBvcnRhbFBhZ2VTaWRlYmFyQ29tcG9uZW50IH0gZnJvbSAnLi9wb3J0YWwtcGFnZS9wb3J0YWwtc2lkZWJhci5jb21wb25lbnQnO1xuXG5pbXBvcnQge1xuICAgIEJyZWFkY3J1bWJTZXJ2aWNlLFxuICAgIFVwbG9hZFNlcnZpY2UsXG4gICAgQXBpU2VydmljZSxcbiAgICBMb2dTZXJ2aWNlLFxuICAgIEJhcnNhRGlhbG9nU2VydmljZSxcbiAgICBQb3J0YWxTZXJ2aWNlLFxuICAgIFVpU2VydmljZSxcbiAgICBMYXlvdXRTZXJ2aWNlLFxuICAgIER5bmFtaWNDb21wb25lbnRTZXJ2aWNlLFxuICAgIE5ldHdvcmtTdGF0dXNTZXJ2aWNlLFxuICAgIEF1ZGlvUmVjb3JkaW5nU2VydmljZSxcbiAgICBWaWRlb1JlY29yZGluZ1NlcnZpY2UsXG4gICAgUHJvbXB0VXBkYXRlU2VydmljZSxcbiAgICBCYXJzYVN0b3JhZ2VTZXJ2aWNlLFxuICAgIExvY2FsU3RvcmFnZVNlcnZpY2UsXG4gICAgSW5kZXhlZERiU2VydmljZSxcbiAgICBOb3RpZmljYXRpb25TZXJ2aWNlLFxuICAgIFNlcnZpY2VXb3JrZXJOb3RpZmljYXRpb25TZXJ2aWNlLFxuICAgIFNlcnZpY2VXb3JrZXJDb21tdW5jYXRpb25TZXJ2aWNlLFxuICAgIFNhdmVTY3JvbGxQb3NpdGlvblNlcnZpY2Vcbn0gZnJvbSAnLi9zZXJ2aWNlcyc7XG5pbXBvcnQge1xuICAgIER5bmFtaWNDb21tYW5kRGlyZWN0aXZlLFxuICAgIEl0ZW1zUmVuZGVyZXJEaXJlY3RpdmUsXG4gICAgTnVtYmVyc09ubHlJbnB1dERpcmVjdGl2ZSxcbiAgICBQbGFjZUhvbGRlckRpcmVjdGl2ZSxcbiAgICBSZW5kZXJVbHZQYWdpbkRpcmVjdGl2ZSxcbiAgICBJbWFnZUxhenlEaXJlY3RpdmUsXG4gICAgVW50aWxJblZpZXdEaXJlY3RpdmUsXG4gICAgSW50ZXJzZWN0aW9uT2JzZXJ2ZXJEaXJlY3RpdmUsXG4gICAgRWxsaXBzaWZ5RGlyZWN0aXZlLFxuICAgIFRhYmxlUmVzaXplckRpcmVjdGl2ZSxcbiAgICBDb2x1bW5SZXNpemVyRGlyZWN0aXZlLFxuICAgIEF0dHJSdGxEaXJlY3RpdmUsXG4gICAgUmVuZGVyVWx2Vmlld2VyRGlyZWN0aXZlLFxuICAgIFVsdkNvbW1hbmREaXJlY3RpdmUsXG4gICAgV29yZmtmbG93d0Nob2ljZUNvbW1hbmREaXJlY3RpdmUsXG4gICAgQ29weURpcmVjdGl2ZSxcbiAgICBFbGxhcHNpc1RleHREaXJlY3RpdmUsXG4gICAgRmlsbEVtcHR5U3BhY2VEaXJlY3RpdmUsXG4gICAgRm9ybUNsb3NlRGlyZWN0aXZlLFxuICAgIE1vYmlsZURpcmVjdGl2ZSxcbiAgICBCb2R5Q2xpY2tEaXJlY3RpdmUsXG4gICAgQ291bnREb3duRGlyZWN0aXZlLFxuICAgIFJvdXRlRm9ybUNoYW5nZURpcmVjdGl2ZSxcbiAgICBEeW5hbWljU3R5bGVEaXJlY3RpdmUsXG4gICAgTm93cmFwdGV4dERpcmVjdGl2ZVxufSBmcm9tICcuL2RpcmVjdGl2ZXMnO1xuaW1wb3J0IHtcbiAgICBOdW1lcmFsUGlwZSxcbiAgICBDYW5VcGxvYWRGaWxlUGlwZSxcbiAgICBSZW1vdmVOZXdsaW5lUGlwZSxcbiAgICBDb252ZXJ0VG9TdHlsZVBpcGUsXG4gICAgRmlsdGVyUGlwZSxcbiAgICBGaWx0ZXJUYWJQaXBlLFxuICAgIEZpbHRlclN0cmluZ1BpcGUsXG4gICAgRmlvcmlJY29uUGlwZSxcbiAgICBTb3J0UGlwZSxcbiAgICBHcm91cEJ5UGlwZSxcbiAgICBNdWx0aXBsZUdyb3VwQnlQaXBlLFxuICAgIE1vVmFsdWVQaXBlLFxuICAgIE1vUmVwb3J0VmFsdWVQaXBlLFxuICAgIEhlYWRlckZhY2V0VmFsdWVQaXBlLFxuICAgIFBpY3R1cmVGaWVsZFNvdXJjZVBpcGUsXG4gICAgVGxiQnV0dG9uc1BpcGUsXG4gICAgU2VwZXJhdG9yRml4UGlwZSxcbiAgICBNb1JlcG9ydFZhbHVlQ29uY2F0UGlwZSxcbiAgICBDb250ZXh0TWVudVBpcGUsXG4gICAgQmJiVHJhbnNsYXRlUGlwZSxcbiAgICBCYXJzYUljb25EaWN0UGlwZSxcbiAgICBGaWxlSW5mb0NvdW50UGlwZSxcbiAgICBDb250cm9sVWlQaXBlLFxuICAgIFZpc2libGVWYWx1ZVBpcGUsXG4gICAgRGF0ZVRpbWVUb0NhcHRpb25QaXBlLFxuICAgIEZpbHRlclRvb2xiYXJDb250cm9sUGlwZSxcbiAgICBMaXN0Q291bnRQaXBlLFxuICAgIFRvdGFsU3VtbWFyeVBpcGUsXG4gICAgTWVyZ2VGaWVsZHNUb0NvbHVtbnNQaXBlLFxuICAgIEZpbmRDb2x1bW5CeURiTmFtZVBpcGUsXG4gICAgRmlsdGVyQ29sdW1uc0J5RGV0YWlsc1BpcGUsXG4gICAgTW9JbmZvVWx2TW9MaXN0UGlwZSxcbiAgICBNb0luZm9VbHZQYWdpbmdQaXBlLFxuICAgIFJldmVyc2VQaXBlLFxuICAgIENvbHVtbkN1c3RvbVVpUGlwZSxcbiAgICBTYW5pdGl6ZVRleHRQaXBlLFxuICAgIENvbHVtbkN1c3RvbUNvbXBvbmVudFBpcGUsXG4gICAgQ29sdW1uSWNvblBpcGUsXG4gICAgQ29sdW1uVmFsdWVQaXBlLFxuICAgIFJvd051bWJlclBpcGUsXG4gICAgQ29tYm9Sb3dJbWFnZVBpcGUsXG4gICAgSXNFeHBhbmRlZE5vZGVQaXBlLFxuICAgIFRoSW1hZ2VPckljb25lUGlwZVxufSBmcm9tICcuL3BpcGVzJztcbmltcG9ydCB7IEJhcnNhU2FwVWlGb3JtUGFnZU1vZHVsZSB9IGZyb20gJy4vZm9ybS1wYWdlLXJvdXRpbmcnO1xuaW1wb3J0IHsgUmVzaXphYmxlTW9kdWxlIH0gZnJvbSAnLi9yZXNpemFibGUtbW9kdWxlL3Jlc2l6YWJsZS5tb2R1bGUnO1xuaW1wb3J0IHsgVGl0bGUgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXZhclxuZGVjbGFyZSB2YXIgQkJCOiBhbnk7XG5cbmNvbnN0IGNvbXBvbmVudHMgPSBbXG4gICAgRm9ybUNvbXBvbmVudCxcbiAgICBGaWVsZFVpQ29tcG9uZW50LFxuICAgIE5vdEZvdW5kQ29tcG9uZW50LFxuICAgIFJvb3RQYWdlQ29tcG9uZW50LFxuICAgIFJvb3RQb3J0YWxDb21wb25lbnQsXG4gICAgUmVwb3J0Q29udGFpbmVyQ29tcG9uZW50LFxuICAgIEZvcm1OZXdDb21wb25lbnQsXG4gICAgTW9kYWxSb290Q29tcG9uZW50LFxuICAgIFBvcnRhbFBhZ2VDb21wb25lbnQsXG4gICAgUG9ydGFsUGFnZVNpZGViYXJDb21wb25lbnQsXG4gICAgUmVkaXJlY3RSZXBvcnROYXZpZ2F0b3JDb21tYW5kQ29tcG9uZW50LFxuICAgIEVtcHR5UGFnZVdpdGhSb3V0ZXJBbmRSb3V0ZXJPdXRsZXRDb21wb25lbnQsXG4gICAgRHluYW1pY0l0ZW1Db21wb25lbnQsXG4gICAgRHluYW1pY0Zvcm1Db21wb25lbnQsXG4gICAgQmFzZUR5bmFtaWNDb21wb25lbnQsXG4gICAgRHluYW1pY0Zvcm1Ub29sYmFyaXRlbUNvbXBvbmVudCxcbiAgICBEeW5hbWljTGF5b3V0Q29tcG9uZW50LFxuICAgIEVtcHR5UGFnZUNvbXBvbmVudCxcbiAgICBGb3JtUGFnZUNvbXBvbmVudCxcbiAgICBGb3JtRmllbGRSZXBvcnRQYWdlQ29tcG9uZW50XG5dO1xuY29uc3QgZGlyZWN0aXZlcyA9IFtcbiAgICBQbGFjZUhvbGRlckRpcmVjdGl2ZSxcbiAgICBOdW1iZXJzT25seUlucHV0RGlyZWN0aXZlLFxuICAgIFJlbmRlclVsdlZpZXdlckRpcmVjdGl2ZSxcbiAgICBSZW5kZXJVbHZQYWdpbkRpcmVjdGl2ZSxcbiAgICBBbmNob3JTY3JvbGxEaXJlY3RpdmUsXG4gICAgSXRlbXNSZW5kZXJlckRpcmVjdGl2ZSxcbiAgICBVbHZDb21tYW5kRGlyZWN0aXZlLFxuICAgIER5bmFtaWNDb21tYW5kRGlyZWN0aXZlLFxuICAgIFdvcmZrZmxvd3dDaG9pY2VDb21tYW5kRGlyZWN0aXZlLFxuICAgIEltYWdlTGF6eURpcmVjdGl2ZSxcbiAgICBVbnRpbEluVmlld0RpcmVjdGl2ZSxcbiAgICBJbnRlcnNlY3Rpb25PYnNlcnZlckRpcmVjdGl2ZSxcbiAgICBFbGxpcHNpZnlEaXJlY3RpdmUsXG4gICAgVGFibGVSZXNpemVyRGlyZWN0aXZlLFxuICAgIENvbHVtblJlc2l6ZXJEaXJlY3RpdmUsXG4gICAgQXR0clJ0bERpcmVjdGl2ZSxcbiAgICBDb3B5RGlyZWN0aXZlLFxuICAgIEVsbGFwc2lzVGV4dERpcmVjdGl2ZSxcbiAgICBGaWxsRW1wdHlTcGFjZURpcmVjdGl2ZSxcbiAgICBGb3JtQ2xvc2VEaXJlY3RpdmUsXG4gICAgTW9iaWxlRGlyZWN0aXZlLFxuICAgIEJvZHlDbGlja0RpcmVjdGl2ZSxcbiAgICBDb3VudERvd25EaXJlY3RpdmUsXG4gICAgUm91dGVGb3JtQ2hhbmdlRGlyZWN0aXZlLFxuICAgIER5bmFtaWNTdHlsZURpcmVjdGl2ZSxcbiAgICBOb3dyYXB0ZXh0RGlyZWN0aXZlXG5dO1xuY29uc3QgcGlwZXMgPSBbXG4gICAgTnVtZXJhbFBpcGUsXG4gICAgQ2FuVXBsb2FkRmlsZVBpcGUsXG4gICAgUmVtb3ZlTmV3bGluZVBpcGUsXG4gICAgQ29udmVydFRvU3R5bGVQaXBlLFxuICAgIEZpbHRlclBpcGUsXG4gICAgRmlsdGVyVGFiUGlwZSxcbiAgICBGaWx0ZXJTdHJpbmdQaXBlLFxuICAgIEZpb3JpSWNvblBpcGUsXG4gICAgU29ydFBpcGUsXG4gICAgR3JvdXBCeVBpcGUsXG4gICAgTXVsdGlwbGVHcm91cEJ5UGlwZSxcbiAgICBNb1ZhbHVlUGlwZSxcbiAgICBNb1JlcG9ydFZhbHVlUGlwZSxcbiAgICBIZWFkZXJGYWNldFZhbHVlUGlwZSxcbiAgICBQaWN0dXJlRmllbGRTb3VyY2VQaXBlLFxuICAgIFRsYkJ1dHRvbnNQaXBlLFxuICAgIFNlcGVyYXRvckZpeFBpcGUsXG4gICAgTW9SZXBvcnRWYWx1ZUNvbmNhdFBpcGUsXG4gICAgQ29udGV4dE1lbnVQaXBlLFxuICAgIEJiYlRyYW5zbGF0ZVBpcGUsXG4gICAgQmFyc2FJY29uRGljdFBpcGUsXG4gICAgRmlsZUluZm9Db3VudFBpcGUsXG4gICAgQ29udHJvbFVpUGlwZSxcbiAgICBWaXNpYmxlVmFsdWVQaXBlLFxuICAgIERhdGVUaW1lVG9DYXB0aW9uUGlwZSxcbiAgICBGaWx0ZXJUb29sYmFyQ29udHJvbFBpcGUsXG4gICAgTGlzdENvdW50UGlwZSxcbiAgICBUb3RhbFN1bW1hcnlQaXBlLFxuICAgIE1lcmdlRmllbGRzVG9Db2x1bW5zUGlwZSxcbiAgICBGaW5kQ29sdW1uQnlEYk5hbWVQaXBlLFxuICAgIEZpbHRlckNvbHVtbnNCeURldGFpbHNQaXBlLFxuICAgIE1vSW5mb1Vsdk1vTGlzdFBpcGUsXG4gICAgTW9JbmZvVWx2UGFnaW5nUGlwZSxcbiAgICBSZXZlcnNlUGlwZSxcbiAgICBDb2x1bW5DdXN0b21VaVBpcGUsXG4gICAgU2FuaXRpemVUZXh0UGlwZSxcbiAgICBDb2x1bW5DdXN0b21Db21wb25lbnRQaXBlLFxuICAgIENvbHVtbkljb25QaXBlLFxuICAgIENvbHVtblZhbHVlUGlwZSxcbiAgICBSb3dOdW1iZXJQaXBlLFxuICAgIENvbWJvUm93SW1hZ2VQaXBlLFxuICAgIElzRXhwYW5kZWROb2RlUGlwZSxcbiAgICBUaEltYWdlT3JJY29uZVBpcGVcbl07XG5jb25zdCBmdW5jdGlvbkwxID0gZnVuY3Rpb24gKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmIChCYXJzYUFwaS5Mb2dpbkZvcm1EYXRhLkN1bHR1cmUgPT09ICdmYS1JUicpIHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICAgIH1cbiAgICByZXR1cm4gZmV0Y2goYC9Mb2NhbGl6YXRpb24vVHJhbnNsYXRpb24vZGF0YV8ke0JhcnNhQXBpLkxvZ2luRm9ybURhdGEuQ3VsdHVyZX0uanNvbmApXG4gICAgICAgIC50aGVuKGZ1bmN0aW9uIChyZXMpIHtcbiAgICAgICAgICAgIHJldHVybiByZXMuanNvbigpO1xuICAgICAgICB9KVxuICAgICAgICAudGhlbihmdW5jdGlvbiAocmVzKSB7XG4gICAgICAgICAgICBpZiAoQkJCKSB7XG4gICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGVcbiAgICAgICAgICAgICAgICBCQkIgPSB7IC4uLkJhcnNhQXBpLkJCQiwgLi4ucmVzIH07XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xufTtcbmNvbnN0IGZ1bmN0aW9uTDIgPSBmdW5jdGlvbiAocG9ydGFsU2VydmljZTogUG9ydGFsU2VydmljZSwgdGl0bGVTZXJ2aWNlOiBUaXRsZSk6IFByb21pc2U8YW55PiB7XG4gICAgcG9ydGFsU2VydmljZS5sb2FkVXNlclBvcnRhbFNldHRpbmcoKTtcbiAgICBwb3J0YWxTZXJ2aWNlLmxvYWRQb3J0YWxEYXRhU3luYygpO1xuICAgIGlmIChwb3J0YWxTZXJ2aWNlLnBvcnRhbERhdGE/LlRpdGxlKSB7XG4gICAgICAgIHRpdGxlU2VydmljZS5zZXRUaXRsZShwb3J0YWxTZXJ2aWNlLnBvcnRhbERhdGE/LlRpdGxlKTtcbiAgICB9XG4gICAgaWYgKEJhcnNhQXBpLkxvZ2luRm9ybURhdGEuSXNBbm9ueW1vdXMgJiYgIUJhcnNhQXBpLkxvZ2luRm9ybURhdGEuSXNTZXJ2aWNlRGVzaykge1xuICAgICAgICByZXR1cm4gcG9ydGFsU2VydmljZS5sb2FkU3lzdGVtKEJhcnNhQXBpLkxvZ2luRm9ybURhdGEuUG9ydGFsU3lzdGVtSWQpOyAvLyBsb2dpbiBmb3JtIG5lZWQganVzdCBwb3J0YWwgc3lzdGVtXG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHBvcnRhbFNlcnZpY2UubG9hZFN5c3RlbSgpOyAvLyBsb2FkIGFsbCBzeXN0ZW1zIGlmIHVzZXIgaXMgbG9nZ2VkIGluXG4gICAgfVxufTtcbkBOZ01vZHVsZSh7XG4gICAgZGVjbGFyYXRpb25zOiBbLi4uY29tcG9uZW50cywgLi4ucGlwZXMsIC4uLmRpcmVjdGl2ZXNdLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBIdHRwQ2xpZW50TW9kdWxlLFxuICAgICAgICBCYXJzYU5vdmluUmF5Q29yZVJvdXRpbmdNb2R1bGUsXG4gICAgICAgIEJhcnNhU2FwVWlGb3JtUGFnZU1vZHVsZSxcbiAgICAgICAgUmVzaXphYmxlTW9kdWxlXG4gICAgXSxcbiAgICBleHBvcnRzOiBbLi4uY29tcG9uZW50cywgLi4ucGlwZXMsIC4uLmRpcmVjdGl2ZXNdLFxuICAgIHNjaGVtYXM6IFtOT19FUlJPUlNfU0NIRU1BXVxufSlcbmV4cG9ydCBjbGFzcyBCYXJzYU5vdmluUmF5Q29yZU1vZHVsZSBleHRlbmRzIEJhc2VNb2R1bGUge1xuICAgIHByb3RlY3RlZCBkeW5hbWljQ29tcG9uZW50cyA9IFsuLi5jb21wb25lbnRzXTtcbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgZGNtOiBEeW5hbWljQ29tcG9uZW50U2VydmljZSwgcHJvdGVjdGVkIGNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyKSB7XG4gICAgICAgIHN1cGVyKGRjbSwgY29tcG9uZW50RmFjdG9yeVJlc29sdmVyLCAnQmFyc2FOb3ZpblJheUNvcmVNb2R1bGUnKTtcbiAgICB9XG4gICAgc3RhdGljIGZvclJvb3QoKTogTW9kdWxlV2l0aFByb3ZpZGVyczxCYXJzYU5vdmluUmF5Q29yZU1vZHVsZT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbmdNb2R1bGU6IEJhcnNhTm92aW5SYXlDb3JlTW9kdWxlLFxuICAgICAgICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBwcm92aWRlOiBBUFBfSU5JVElBTElaRVIsXG4gICAgICAgICAgICAgICAgICAgIHVzZUZhY3Rvcnk6XG4gICAgICAgICAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9ydGFsU2VydmljZTogUG9ydGFsU2VydmljZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZVNlcnZpY2U6IFRpdGxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb21wdFVwZGF0ZVNlcnZpY2U6IFByb21wdFVwZGF0ZVNlcnZpY2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFyc2FTdG9yYWdlU2VydmljZTogQmFyc2FTdG9yYWdlU2VydmljZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzd0NvbW11bmljYXRpb246IFNlcnZpY2VXb3JrZXJDb21tdW5jYXRpb25TZXJ2aWNlXG4gICAgICAgICAgICAgICAgICAgICAgICApID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAoKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcnRhbFNlcnZpY2UubG9hZFNlcnZlclN0YXJ0dXBEYXRhKCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFByb21pc2UuYWxsKFtmdW5jdGlvbkwxKCksIGZ1bmN0aW9uTDIocG9ydGFsU2VydmljZSwgdGl0bGVTZXJ2aWNlKV0pLmZpbmFsbHkoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvbXB0VXBkYXRlU2VydmljZS5jaGVja0ZvclVwZGF0ZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFyc2FTdG9yYWdlU2VydmljZS5pbml0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzd0NvbW11bmljYXRpb24uaW5pdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgZGVwczogW1xuICAgICAgICAgICAgICAgICAgICAgICAgUG9ydGFsU2VydmljZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFRpdGxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgUHJvbXB0VXBkYXRlU2VydmljZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIEJhcnNhU3RvcmFnZVNlcnZpY2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBTZXJ2aWNlV29ya2VyQ29tbXVuY2F0aW9uU2VydmljZVxuICAgICAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgICAgICBtdWx0aTogdHJ1ZVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBwcm92aWRlOiBFcnJvckhhbmRsZXIsXG4gICAgICAgICAgICAgICAgICAgIHVzZUNsYXNzOiBHbG9iYWxFcnJvckhhbmRsZXJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgcHJvdmlkZTogQVBQX0lOSVRJQUxJWkVSLFxuICAgICAgICAgICAgICAgICAgICB1c2VGYWN0b3J5OiAobm90aWZpY2F0aW9uU2VydmljZTogTm90aWZpY2F0aW9uU2VydmljZSkgPT4gKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgQmFyc2FBcGkuVWwuTm90aWZpY2F0aW9uTWFuYWdlci5vbih7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgU2hvd1BvcHVwOiBub3RpZmljYXRpb25TZXJ2aWNlLmFkZE5vdGlmaWNhdGlvbi5iaW5kKG5vdGlmaWNhdGlvblNlcnZpY2UpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1Ymxpc2hFdmVudDogbm90aWZpY2F0aW9uU2VydmljZS5oYW5kbGVUb3BpYy5iaW5kKG5vdGlmaWNhdGlvblNlcnZpY2UpXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgZGVwczogW05vdGlmaWNhdGlvblNlcnZpY2VdLFxuICAgICAgICAgICAgICAgICAgICBtdWx0aTogdHJ1ZVxuICAgICAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgICAgICAuLi5waXBlcyxcbiAgICAgICAgICAgICAgICBQb3J0YWxTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIFVwbG9hZFNlcnZpY2UsXG4gICAgICAgICAgICAgICAgQXBpU2VydmljZSxcbiAgICAgICAgICAgICAgICBMb2dTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIEJhcnNhRGlhbG9nU2VydmljZSxcbiAgICAgICAgICAgICAgICBVaVNlcnZpY2UsXG4gICAgICAgICAgICAgICAgTGF5b3V0U2VydmljZSxcbiAgICAgICAgICAgICAgICBEeW5hbWljQ29tcG9uZW50U2VydmljZSxcbiAgICAgICAgICAgICAgICBCcmVhZGNydW1iU2VydmljZSxcbiAgICAgICAgICAgICAgICBBdXRoR3VhcmQsXG4gICAgICAgICAgICAgICAgTmV0d29ya1N0YXR1c1NlcnZpY2UsXG4gICAgICAgICAgICAgICAgQXVkaW9SZWNvcmRpbmdTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIFZpZGVvUmVjb3JkaW5nU2VydmljZSxcbiAgICAgICAgICAgICAgICBSZWRpcmVjdEhvbWVHdWFyZCxcbiAgICAgICAgICAgICAgICBQcm9tcHRVcGRhdGVTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIE5vdGlmaWNhdGlvblNlcnZpY2UsXG4gICAgICAgICAgICAgICAgU2VydmljZVdvcmtlck5vdGlmaWNhdGlvblNlcnZpY2UsXG4gICAgICAgICAgICAgICAgU2F2ZVNjcm9sbFBvc2l0aW9uU2VydmljZSxcbiAgICAgICAgICAgICAgICBMb2NhbFN0b3JhZ2VTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIEluZGV4ZWREYlNlcnZpY2UsXG4gICAgICAgICAgICAgICAgQmJiVHJhbnNsYXRlUGlwZSxcbiAgICAgICAgICAgICAgICBCYXJzYVN0b3JhZ2VTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIFNlcnZpY2VXb3JrZXJDb21tdW5jYXRpb25TZXJ2aWNlXG4gICAgICAgICAgICBdXG4gICAgICAgIH07XG4gICAgfVxufVxuIl19
@@ -49,9 +49,6 @@ export class BarsaStorageService {
49
49
  init() {
50
50
  this.interceptXhr();
51
51
  const localStorage = this._localStorageService;
52
- // we set runtime structure version in localstorage
53
- // in indexdb service we can read current version and cached version and
54
- // if they are different we need to to add version to indexdb database
55
52
  const db_version = localStorage.getItem(this.DBNAME_VERSION_KEY);
56
53
  const bazavari_version = localStorage.getItem(this.BAZAVARI_VERSION_KEY);
57
54
  let dbVer = 0;
@@ -78,4 +75,4 @@ export class BarsaStorageService {
78
75
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: BarsaStorageService, decorators: [{
79
76
  type: Injectable
80
77
  }], ctorParameters: () => [{ type: i1.LogService }, { type: i2.LocalStorageService }, { type: i3.IndexedDbService }] });
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2Etc3RvcmFnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etbm92aW4tcmF5LWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy9iYXJzYS1zdG9yYWdlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUczQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sK0JBQStCLENBQUM7Ozs7O0FBR3pELE1BQU0sT0FBTyxtQkFBbUI7SUFLNUIsWUFDWSxXQUF1QixFQUN2QixvQkFBeUMsRUFDekMsaUJBQW1DO1FBRm5DLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBQ3ZCLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBcUI7UUFDekMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFrQjtRQVAvQyxxQkFBZ0IsR0FBRyxjQUFjLENBQUM7UUFDbEMsZUFBVSxHQUFHLFVBQVUsQ0FBQztRQUN4Qix1QkFBa0IsR0FBRyxHQUFHLElBQUksQ0FBQyxVQUFVLFVBQVUsQ0FBQztRQUNsRCx5QkFBb0IsR0FBRyxrQkFBa0IsQ0FBQztJQUt2QyxDQUFDO0lBQ0osSUFBYyxzQkFBc0I7UUFDaEMsT0FBTyxRQUFRLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDO0lBQ25ELENBQUM7SUFDRCxZQUFZO1FBQ1IsTUFBTSxRQUFRLEdBQUcsY0FBYyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUM7UUFDL0MsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUNwQywwREFBMEQ7UUFDMUQsOERBQThEO1FBQzlELDREQUE0RDtRQUM1RCxtQkFBbUI7UUFDbkIsT0FBTztRQUNQLGNBQWMsQ0FBQyxTQUFTLENBQUMsSUFBSSxHQUFHLFVBQzVCLE1BQWMsRUFDZCxHQUFpQixFQUNqQixLQUFlLEVBQ2YsUUFBd0IsRUFDeEIsUUFBd0I7WUFFeEIsbUNBQW1DO1lBQ25DLG1CQUFtQjtZQUNuQixzREFBc0Q7WUFDdEQsd0JBQXdCO1lBRXhCLFFBQVE7WUFDUixjQUFjO1lBQ2QsSUFBSTtZQUNKLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUU7Z0JBQzFCLHdDQUF3QztnQkFDeEMsdUZBQXVGO2dCQUN2RiwrREFBK0Q7Z0JBQy9ELElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxHQUFHLElBQUksUUFBUSxDQUFDLGFBQWEsQ0FBQyxPQUFPLEtBQUssS0FBSyxFQUFFLENBQUM7b0JBQ2xFLFVBQVUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO29CQUMvQyxxQ0FBcUM7b0JBQ3JDLHdCQUF3QjtnQkFDNUIsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1lBQ0gsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxLQUFLLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDekYsQ0FBQyxDQUFDO0lBQ04sQ0FBQztJQUNELElBQUk7UUFDQSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDcEIsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDO1FBRS9DLG1EQUFtRDtRQUNuRCx3RUFBd0U7UUFDeEUsc0VBQXNFO1FBQ3RFLE1BQU0sVUFBVSxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDakUsTUFBTSxnQkFBZ0IsR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ3pFLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQztRQUNkLEtBQUssR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLFVBQVUsSUFBSSxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDL0MsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUM5QixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDMUIsQ0FBQztRQUNELElBQUksZ0JBQWdCLEtBQUssSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7WUFDbkQsS0FBSyxFQUFFLENBQUM7UUFDWixDQUFDO1FBQ0QsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDaEUsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFDN0UsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBQ0QsY0FBYztRQUNWLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFDRCxZQUFZLENBQUMsT0FBZTtRQUN4QixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDMUQsQ0FBQzs4R0EzRVEsbUJBQW1CO2tIQUFuQixtQkFBbUI7OzJGQUFuQixtQkFBbUI7a0JBRC9CLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IExvY2FsU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuL2xvY2FsLXN0b3JhZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IEluZGV4ZWREYlNlcnZpY2UgfSBmcm9tICcuL2luZGV4ZWRkYi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQmFyc2FBcGkgfSBmcm9tICcuLi9hYnN0cmFjdC1jbGFzc2VzL2JhcnNhLWFwaSc7XHJcbmltcG9ydCB7IExvZ1NlcnZpY2UgfSBmcm9tICcuL2xvZy5zZXJ2aWNlJztcclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgQmFyc2FTdG9yYWdlU2VydmljZSB7XHJcbiAgICBTVEFSVFVQX0RBVEFfS0VZID0gJ1NUQVJUVVBfREFUQSc7XHJcbiAgICBEQk5BTUVfS0VZID0gJ0JBUlNBX0RCJztcclxuICAgIERCTkFNRV9WRVJTSU9OX0tFWSA9IGAke3RoaXMuREJOQU1FX0tFWX1fVkVSU0lPTmA7XHJcbiAgICBCQVpBVkFSSV9WRVJTSU9OX0tFWSA9IGBCQVpBVkFSSV9WRVJTSU9OYDtcclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgX2xvZ1NlcnZpY2U6IExvZ1NlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBfbG9jYWxTdG9yYWdlU2VydmljZTogTG9jYWxTdG9yYWdlU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIF9pbmRleGVkRGJTZXJ2aWNlOiBJbmRleGVkRGJTZXJ2aWNlXHJcbiAgICApIHt9XHJcbiAgICBwcm90ZWN0ZWQgZ2V0IGN1cnJlbnRCYXphdmFyaVZlcnNpb24oKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gQmFyc2FBcGkuTG9naW5Gb3JtRGF0YS5DaGFuZ2VLZXlWZXJzaW9uO1xyXG4gICAgfVxyXG4gICAgaW50ZXJjZXB0WGhyKCk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IG9yaWdPcGVuID0gWE1MSHR0cFJlcXVlc3QucHJvdG90eXBlLm9wZW47XHJcbiAgICAgICAgY29uc3QgbG9nU2VydmljZSA9IHRoaXMuX2xvZ1NlcnZpY2U7XHJcbiAgICAgICAgLy8gY29uc3QgaXNBbm9ueW1vdXMgPSBCYXJzYUFwaS5Mb2dpbkZvcm1EYXRhLklzQW5vbnltb3VzO1xyXG4gICAgICAgIC8vIGNvbnN0IHN0YXJ0dXBEYXRhID0gSlNPTi5zdHJpbmdpZnkoQmFyc2FBcGkuTG9naW5Gb3JtRGF0YSk7XHJcbiAgICAgICAgLy8gbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5TVEFSVFVQX0RBVEFfS0VZLCBzdGFydHVwRGF0YSk7XHJcbiAgICAgICAgLy8gY29uc3QgbWUgPSB0aGlzO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgICBYTUxIdHRwUmVxdWVzdC5wcm90b3R5cGUub3BlbiA9IGZ1bmN0aW9uIChcclxuICAgICAgICAgICAgbWV0aG9kOiBzdHJpbmcsXHJcbiAgICAgICAgICAgIHVybDogc3RyaW5nIHwgVVJMLFxyXG4gICAgICAgICAgICBhc3luYz86IGJvb2xlYW4sXHJcbiAgICAgICAgICAgIHVzZXJuYW1lPzogc3RyaW5nIHwgbnVsbCxcclxuICAgICAgICAgICAgcGFzc3dvcmQ/OiBzdHJpbmcgfCBudWxsXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCdyZXF1ZXN0IHN0YXJ0ZWQhJyk7XHJcbiAgICAgICAgICAgIC8vIGlmKGlzQW5vbnltb3VzKXtcclxuICAgICAgICAgICAgLy8gICAgIHZhciByZXNwb25zZVRleHQ9bWUuX2luZGV4ZWREYlNlcnZpY2UuZ2V0KHVybCk7XHJcbiAgICAgICAgICAgIC8vICAgICBpZihyZXNwb25zZVRleHQpe1xyXG5cclxuICAgICAgICAgICAgLy8gICAgIH1cclxuICAgICAgICAgICAgLy8gICAgIHJldHVybjtcclxuICAgICAgICAgICAgLy8gfVxyXG4gICAgICAgICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICAvLyAgICBjb25zb2xlLmxvZygncmVxdWVzdCBjb21wbGV0ZWQhJyk7XHJcbiAgICAgICAgICAgICAgICAvLyAgIGNvbnNvbGUubG9nKHRoaXMucmVhZHlTdGF0ZSk7IC8vIHdpbGwgYWx3YXlzIGJlIDQgKGFqYXggaXMgY29tcGxldGVkIHN1Y2Nlc3NmdWxseSlcclxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKHRoaXMucmVzcG9uc2VUZXh0KTsgLy8gd2hhdGV2ZXIgdGhlIHJlc3BvbnNlIHdhc1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuc3RhdHVzID09PSA0MDEgJiYgQmFyc2FBcGkuTG9naW5Gb3JtRGF0YS5zdWNjZWVkICE9PSBmYWxzZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGxvZ1NlcnZpY2UuaW5mbyhgdW5hdXRob3JpemVkICR7dGhpcy5zdGF0dXN9YCk7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coJ2NsZWFyIGxvY2Fsc3RvcmFnZScpO1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIGxvY2FsU3RvcmFnZS5jbGVhcigpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgb3JpZ09wZW4uY2FsbCh0aGlzLCBtZXRob2QsIHVybCwgYXN5bmMgPT09IGZhbHNlID8gZmFsc2UgOiB0cnVlLCB1c2VybmFtZSwgcGFzc3dvcmQpO1xyXG4gICAgICAgIH07XHJcbiAgICB9XHJcbiAgICBpbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuaW50ZXJjZXB0WGhyKCk7XHJcbiAgICAgICAgY29uc3QgbG9jYWxTdG9yYWdlID0gdGhpcy5fbG9jYWxTdG9yYWdlU2VydmljZTtcclxuXHJcbiAgICAgICAgLy8gd2Ugc2V0IHJ1bnRpbWUgc3RydWN0dXJlIHZlcnNpb24gaW4gbG9jYWxzdG9yYWdlXHJcbiAgICAgICAgLy8gaW4gaW5kZXhkYiBzZXJ2aWNlIHdlIGNhbiByZWFkIGN1cnJlbnQgdmVyc2lvbiBhbmQgY2FjaGVkIHZlcnNpb24gYW5kXHJcbiAgICAgICAgLy8gaWYgdGhleSBhcmUgZGlmZmVyZW50IHdlIG5lZWQgdG8gdG8gYWRkIHZlcnNpb24gdG8gaW5kZXhkYiBkYXRhYmFzZVxyXG4gICAgICAgIGNvbnN0IGRiX3ZlcnNpb24gPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLkRCTkFNRV9WRVJTSU9OX0tFWSk7XHJcbiAgICAgICAgY29uc3QgYmF6YXZhcmlfdmVyc2lvbiA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuQkFaQVZBUklfVkVSU0lPTl9LRVkpO1xyXG4gICAgICAgIGxldCBkYlZlciA9IDA7XHJcbiAgICAgICAgZGJWZXIgPSBOdW1iZXIucGFyc2VJbnQoZGJfdmVyc2lvbiA/PyAnMCcsIDEwKTtcclxuICAgICAgICBpZiAoaXNOYU4oZGJWZXIpIHx8ICFkYl92ZXJzaW9uKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZGVsZXRlRGF0YWJhc2UoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGJhemF2YXJpX3ZlcnNpb24gIT09IHRoaXMuY3VycmVudEJhemF2YXJpVmVyc2lvbikge1xyXG4gICAgICAgICAgICBkYlZlcisrO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLkRCTkFNRV9WRVJTSU9OX0tFWSwgZGJWZXIudG9TdHJpbmcoKSk7XHJcbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5CQVpBVkFSSV9WRVJTSU9OX0tFWSwgdGhpcy5jdXJyZW50QmF6YXZhcmlWZXJzaW9uKTtcclxuICAgICAgICB0aGlzLm9wZW5EYXRhYmFzZShkYlZlcik7XHJcbiAgICB9XHJcbiAgICBkZWxldGVEYXRhYmFzZSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9pbmRleGVkRGJTZXJ2aWNlLmRlbGV0ZSh0aGlzLkRCTkFNRV9LRVkpO1xyXG4gICAgfVxyXG4gICAgb3BlbkRhdGFiYXNlKHZlcnNpb246IG51bWJlcik6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX2luZGV4ZWREYlNlcnZpY2Uub3Blbih0aGlzLkRCTkFNRV9LRVksIHZlcnNpb24pO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2Etc3RvcmFnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etbm92aW4tcmF5LWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy9iYXJzYS1zdG9yYWdlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUczQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sK0JBQStCLENBQUM7Ozs7O0FBR3pELE1BQU0sT0FBTyxtQkFBbUI7SUFLNUIsWUFDWSxXQUF1QixFQUN2QixvQkFBeUMsRUFDekMsaUJBQW1DO1FBRm5DLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBQ3ZCLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBcUI7UUFDekMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFrQjtRQVAvQyxxQkFBZ0IsR0FBRyxjQUFjLENBQUM7UUFDbEMsZUFBVSxHQUFHLFVBQVUsQ0FBQztRQUN4Qix1QkFBa0IsR0FBRyxHQUFHLElBQUksQ0FBQyxVQUFVLFVBQVUsQ0FBQztRQUNsRCx5QkFBb0IsR0FBRyxrQkFBa0IsQ0FBQztJQUt2QyxDQUFDO0lBQ0osSUFBYyxzQkFBc0I7UUFDaEMsT0FBTyxRQUFRLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDO0lBQ25ELENBQUM7SUFDRCxZQUFZO1FBQ1IsTUFBTSxRQUFRLEdBQUcsY0FBYyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUM7UUFDL0MsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUNwQywwREFBMEQ7UUFDMUQsOERBQThEO1FBQzlELDREQUE0RDtRQUM1RCxtQkFBbUI7UUFDbkIsT0FBTztRQUNQLGNBQWMsQ0FBQyxTQUFTLENBQUMsSUFBSSxHQUFHLFVBQzVCLE1BQWMsRUFDZCxHQUFpQixFQUNqQixLQUFlLEVBQ2YsUUFBd0IsRUFDeEIsUUFBd0I7WUFFeEIsbUNBQW1DO1lBQ25DLG1CQUFtQjtZQUNuQixzREFBc0Q7WUFDdEQsd0JBQXdCO1lBRXhCLFFBQVE7WUFDUixjQUFjO1lBQ2QsSUFBSTtZQUNKLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUU7Z0JBQzFCLHdDQUF3QztnQkFDeEMsdUZBQXVGO2dCQUN2RiwrREFBK0Q7Z0JBQy9ELElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxHQUFHLElBQUksUUFBUSxDQUFDLGFBQWEsQ0FBQyxPQUFPLEtBQUssS0FBSyxFQUFFLENBQUM7b0JBQ2xFLFVBQVUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO29CQUMvQyxxQ0FBcUM7b0JBQ3JDLHdCQUF3QjtnQkFDNUIsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1lBQ0gsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxLQUFLLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDekYsQ0FBQyxDQUFDO0lBQ04sQ0FBQztJQUNELElBQUk7UUFDQSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDcEIsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDO1FBRS9DLE1BQU0sVUFBVSxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDakUsTUFBTSxnQkFBZ0IsR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ3pFLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQztRQUNkLEtBQUssR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLFVBQVUsSUFBSSxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDL0MsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUM5QixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDMUIsQ0FBQztRQUNELElBQUksZ0JBQWdCLEtBQUssSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7WUFDbkQsS0FBSyxFQUFFLENBQUM7UUFDWixDQUFDO1FBQ0QsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDaEUsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFDN0UsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBQ0QsY0FBYztRQUNWLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFDRCxZQUFZLENBQUMsT0FBZTtRQUN4QixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDMUQsQ0FBQzs4R0F4RVEsbUJBQW1CO2tIQUFuQixtQkFBbUI7OzJGQUFuQixtQkFBbUI7a0JBRC9CLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBMb2NhbFN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi9sb2NhbC1zdG9yYWdlLnNlcnZpY2UnO1xuaW1wb3J0IHsgSW5kZXhlZERiU2VydmljZSB9IGZyb20gJy4vaW5kZXhlZGRiLnNlcnZpY2UnO1xuaW1wb3J0IHsgQmFyc2FBcGkgfSBmcm9tICcuLi9hYnN0cmFjdC1jbGFzc2VzL2JhcnNhLWFwaSc7XG5pbXBvcnQgeyBMb2dTZXJ2aWNlIH0gZnJvbSAnLi9sb2cuc2VydmljZSc7XG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQmFyc2FTdG9yYWdlU2VydmljZSB7XG4gICAgU1RBUlRVUF9EQVRBX0tFWSA9ICdTVEFSVFVQX0RBVEEnO1xuICAgIERCTkFNRV9LRVkgPSAnQkFSU0FfREInO1xuICAgIERCTkFNRV9WRVJTSU9OX0tFWSA9IGAke3RoaXMuREJOQU1FX0tFWX1fVkVSU0lPTmA7XG4gICAgQkFaQVZBUklfVkVSU0lPTl9LRVkgPSBgQkFaQVZBUklfVkVSU0lPTmA7XG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgX2xvZ1NlcnZpY2U6IExvZ1NlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgX2xvY2FsU3RvcmFnZVNlcnZpY2U6IExvY2FsU3RvcmFnZVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgX2luZGV4ZWREYlNlcnZpY2U6IEluZGV4ZWREYlNlcnZpY2VcbiAgICApIHt9XG4gICAgcHJvdGVjdGVkIGdldCBjdXJyZW50QmF6YXZhcmlWZXJzaW9uKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBCYXJzYUFwaS5Mb2dpbkZvcm1EYXRhLkNoYW5nZUtleVZlcnNpb247XG4gICAgfVxuICAgIGludGVyY2VwdFhocigpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgb3JpZ09wZW4gPSBYTUxIdHRwUmVxdWVzdC5wcm90b3R5cGUub3BlbjtcbiAgICAgICAgY29uc3QgbG9nU2VydmljZSA9IHRoaXMuX2xvZ1NlcnZpY2U7XG4gICAgICAgIC8vIGNvbnN0IGlzQW5vbnltb3VzID0gQmFyc2FBcGkuTG9naW5Gb3JtRGF0YS5Jc0Fub255bW91cztcbiAgICAgICAgLy8gY29uc3Qgc3RhcnR1cERhdGEgPSBKU09OLnN0cmluZ2lmeShCYXJzYUFwaS5Mb2dpbkZvcm1EYXRhKTtcbiAgICAgICAgLy8gbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5TVEFSVFVQX0RBVEFfS0VZLCBzdGFydHVwRGF0YSk7XG4gICAgICAgIC8vIGNvbnN0IG1lID0gdGhpcztcbiAgICAgICAgcmV0dXJuO1xuICAgICAgICBYTUxIdHRwUmVxdWVzdC5wcm90b3R5cGUub3BlbiA9IGZ1bmN0aW9uIChcbiAgICAgICAgICAgIG1ldGhvZDogc3RyaW5nLFxuICAgICAgICAgICAgdXJsOiBzdHJpbmcgfCBVUkwsXG4gICAgICAgICAgICBhc3luYz86IGJvb2xlYW4sXG4gICAgICAgICAgICB1c2VybmFtZT86IHN0cmluZyB8IG51bGwsXG4gICAgICAgICAgICBwYXNzd29yZD86IHN0cmluZyB8IG51bGxcbiAgICAgICAgKSB7XG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZygncmVxdWVzdCBzdGFydGVkIScpO1xuICAgICAgICAgICAgLy8gaWYoaXNBbm9ueW1vdXMpe1xuICAgICAgICAgICAgLy8gICAgIHZhciByZXNwb25zZVRleHQ9bWUuX2luZGV4ZWREYlNlcnZpY2UuZ2V0KHVybCk7XG4gICAgICAgICAgICAvLyAgICAgaWYocmVzcG9uc2VUZXh0KXtcblxuICAgICAgICAgICAgLy8gICAgIH1cbiAgICAgICAgICAgIC8vICAgICByZXR1cm47XG4gICAgICAgICAgICAvLyB9XG4gICAgICAgICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgLy8gICAgY29uc29sZS5sb2coJ3JlcXVlc3QgY29tcGxldGVkIScpO1xuICAgICAgICAgICAgICAgIC8vICAgY29uc29sZS5sb2codGhpcy5yZWFkeVN0YXRlKTsgLy8gd2lsbCBhbHdheXMgYmUgNCAoYWpheCBpcyBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5KVxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKHRoaXMucmVzcG9uc2VUZXh0KTsgLy8gd2hhdGV2ZXIgdGhlIHJlc3BvbnNlIHdhc1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLnN0YXR1cyA9PT0gNDAxICYmIEJhcnNhQXBpLkxvZ2luRm9ybURhdGEuc3VjY2VlZCAhPT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgbG9nU2VydmljZS5pbmZvKGB1bmF1dGhvcml6ZWQgJHt0aGlzLnN0YXR1c31gKTtcbiAgICAgICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coJ2NsZWFyIGxvY2Fsc3RvcmFnZScpO1xuICAgICAgICAgICAgICAgICAgICAvLyBsb2NhbFN0b3JhZ2UuY2xlYXIoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIG9yaWdPcGVuLmNhbGwodGhpcywgbWV0aG9kLCB1cmwsIGFzeW5jID09PSBmYWxzZSA/IGZhbHNlIDogdHJ1ZSwgdXNlcm5hbWUsIHBhc3N3b3JkKTtcbiAgICAgICAgfTtcbiAgICB9XG4gICAgaW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbnRlcmNlcHRYaHIoKTtcbiAgICAgICAgY29uc3QgbG9jYWxTdG9yYWdlID0gdGhpcy5fbG9jYWxTdG9yYWdlU2VydmljZTtcblxuICAgICAgICBjb25zdCBkYl92ZXJzaW9uID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5EQk5BTUVfVkVSU0lPTl9LRVkpO1xuICAgICAgICBjb25zdCBiYXphdmFyaV92ZXJzaW9uID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5CQVpBVkFSSV9WRVJTSU9OX0tFWSk7XG4gICAgICAgIGxldCBkYlZlciA9IDA7XG4gICAgICAgIGRiVmVyID0gTnVtYmVyLnBhcnNlSW50KGRiX3ZlcnNpb24gPz8gJzAnLCAxMCk7XG4gICAgICAgIGlmIChpc05hTihkYlZlcikgfHwgIWRiX3ZlcnNpb24pIHtcbiAgICAgICAgICAgIHRoaXMuZGVsZXRlRGF0YWJhc2UoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYmF6YXZhcmlfdmVyc2lvbiAhPT0gdGhpcy5jdXJyZW50QmF6YXZhcmlWZXJzaW9uKSB7XG4gICAgICAgICAgICBkYlZlcisrO1xuICAgICAgICB9XG4gICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuREJOQU1FX1ZFUlNJT05fS0VZLCBkYlZlci50b1N0cmluZygpKTtcbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5CQVpBVkFSSV9WRVJTSU9OX0tFWSwgdGhpcy5jdXJyZW50QmF6YXZhcmlWZXJzaW9uKTtcbiAgICAgICAgdGhpcy5vcGVuRGF0YWJhc2UoZGJWZXIpO1xuICAgIH1cbiAgICBkZWxldGVEYXRhYmFzZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5faW5kZXhlZERiU2VydmljZS5kZWxldGUodGhpcy5EQk5BTUVfS0VZKTtcbiAgICB9XG4gICAgb3BlbkRhdGFiYXNlKHZlcnNpb246IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLl9pbmRleGVkRGJTZXJ2aWNlLm9wZW4odGhpcy5EQk5BTUVfS0VZLCB2ZXJzaW9uKTtcbiAgICB9XG59XG4iXX0=