@prutech/compliance 1.0.225 → 1.0.227
Sign up to get free protection for your applications and to get access to all the features.
- package/esm2020/lib/conciliation-appointment-work-list/components/context-menu/conciliation-context-menu.component.mjs +3 -2
- package/esm2020/lib/conciliation-appointment-work-list/constants/worklist_id.mjs +5 -0
- package/esm2020/lib/conciliation-appointment-work-list/effects/conciliation-appointment-work-list.effect.mjs +6 -4
- package/esm2020/lib/conciliation-appointment-work-list/models/save-conciliation-status-payload.model.mjs +2 -1
- package/esm2020/lib/conciliation-appointment-work-list/models/save-status-response.mjs +2 -1
- package/esm2020/lib/conciliation-appointment-work-list/services/conciliation-appointment-work-list.service.mjs +10 -4
- package/esm2020/lib/noi-work-list/components/context-menu/context-menu.component.mjs +3 -1
- package/esm2020/lib/noi-work-list/effects/noi-work-list.effect.mjs +4 -3
- package/esm2020/lib/noi-work-list/models/save-noi-status-payload.model.mjs +2 -1
- package/esm2020/lib/pre-conciliation-work-list/components/review-details-dialog/review-details-dialog.component.mjs +14 -9
- package/esm2020/lib/pre-conciliation-work-list/models/review-details.model.mjs +7 -4
- package/esm2020/lib/pre-noi-work-list/components/pre-noi-context-menu/pre-noi-context-menu.component.mjs +25 -23
- package/esm2020/lib/pre-noi-work-list/effects/conciliation-appointment-work-list.effect.mjs +12 -4
- package/esm2020/lib/pre-noi-work-list/models/save-prenoi-status-payload.model.mjs +4 -1
- package/esm2020/lib/pre-noi-work-list/models/save-status-response.mjs +4 -1
- package/esm2020/lib/telephone-settled-conference/components/context-menu/context-menu.component.mjs +100 -55
- package/esm2020/lib/telephone-settled-conference/effects/telephone-or-settled-conference-list.effect.mjs +17 -9
- package/esm2020/lib/telephone-settled-conference/models/save-conciliation-status-payload.model.mjs +5 -1
- package/esm2020/lib/telephone-settled-conference/models/save-status-response.mjs +5 -1
- package/esm2020/lib/telephone-settled-conference/models/telephone-or-settled-conference-work-list-item.model.mjs +1 -1
- package/fesm2015/prutech-compliance.mjs +184 -115
- package/fesm2015/prutech-compliance.mjs.map +1 -1
- package/fesm2020/prutech-compliance.mjs +217 -122
- package/fesm2020/prutech-compliance.mjs.map +1 -1
- package/lib/conciliation-appointment-work-list/constants/worklist_id.d.ts +4 -0
- package/lib/conciliation-appointment-work-list/models/save-conciliation-status-payload.model.d.ts +1 -0
- package/lib/conciliation-appointment-work-list/models/save-status-response.d.ts +1 -0
- package/lib/conciliation-appointment-work-list/services/conciliation-appointment-work-list.service.d.ts +3 -1
- package/lib/noi-work-list/models/save-noi-status-payload.model.d.ts +1 -0
- package/lib/pre-conciliation-work-list/components/review-details-dialog/review-details-dialog.component.d.ts +4 -1
- package/lib/pre-conciliation-work-list/models/review-details.model.d.ts +1 -0
- package/lib/pre-noi-work-list/effects/conciliation-appointment-work-list.effect.d.ts +3 -1
- package/lib/pre-noi-work-list/models/save-prenoi-status-payload.model.d.ts +3 -0
- package/lib/pre-noi-work-list/models/save-status-response.d.ts +3 -0
- package/lib/telephone-settled-conference/effects/telephone-or-settled-conference-list.effect.d.ts +3 -1
- package/lib/telephone-settled-conference/models/save-conciliation-status-payload.model.d.ts +4 -0
- package/lib/telephone-settled-conference/models/save-status-response.d.ts +4 -0
- package/lib/telephone-settled-conference/models/telephone-or-settled-conference-work-list-item.model.d.ts +1 -1
- package/package.json +1 -1
package/esm2020/lib/telephone-settled-conference/components/context-menu/context-menu.component.mjs
CHANGED
@@ -270,65 +270,110 @@ export class TelephoneOrSettledConferencContextMenuComponent extends AbstractCom
|
|
270
270
|
});
|
271
271
|
}
|
272
272
|
openGoodCauseGrantedDialog(item) {
|
273
|
-
|
274
|
-
|
275
|
-
|
276
|
-
|
277
|
-
|
278
|
-
|
279
|
-
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
|
284
|
-
|
285
|
-
|
286
|
-
|
287
|
-
|
288
|
-
|
289
|
-
|
290
|
-
|
291
|
-
|
292
|
-
.pipe(takeUntil(this.componentDestroyed))
|
293
|
-
.subscribe((letterTypeId) => {
|
294
|
-
if (letterTypeId === 1) {
|
295
|
-
this.conciliationWorkListService.dispatchPrintDocument({ letterType: letterTypeId, assessmentId: get(item, 'eaepAssessmentId'), CmsCaseID: get(item, 'cmsCaseId') });
|
296
|
-
}
|
297
|
-
else if (letterTypeId === 2) {
|
298
|
-
this.conciliationWorkListService.dispatchPrintDocument({ letterType: letterTypeId, assessmentId: get(item, 'eaepAssessmentId'), CmsCaseID: get(item, 'cmsCaseId') });
|
299
|
-
}
|
300
|
-
});
|
301
|
-
if (get(item, 'originalCategoryId') === jcAppointments ||
|
302
|
-
get(item, 'originalCategoryId') === csAppointments ||
|
303
|
-
get(item, 'originalCategoryId') === csAssignments ||
|
304
|
-
get(item, 'originalCategoryId') === tagAppointments ||
|
305
|
-
get(item, 'originalCategoryId') === tagAssignments ||
|
306
|
-
get(item, 'originalCategoryId') === splRefAppointments ||
|
307
|
-
get(item, 'originalCategoryId') === null) {
|
308
|
-
const payload = new SaveTelephoneOrSettledConferenceStatusPayload({
|
309
|
-
...res,
|
310
|
-
wlTelephoneSettledId: item.wlTelephoneSettledId,
|
311
|
-
actionId: goodCauseGrantedActionId,
|
273
|
+
if (item?.originalCategoryId === csAppointments || item?.originalCategoryId === csAssignments ||
|
274
|
+
item?.originalCategoryId === tagAppointments || item?.originalCategoryId === tagAssignments) {
|
275
|
+
const dialogRef = this.dialog.open(GoodCauseGrantedActionComponent, {
|
276
|
+
width: dialogSize,
|
277
|
+
disableClose: true,
|
278
|
+
data: {
|
279
|
+
conciliationLookups: this.conciliationLookups,
|
280
|
+
showInPerson: false,
|
281
|
+
},
|
282
|
+
});
|
283
|
+
dialogRef.afterClosed().pipe(takeUntil(this.componentDestroyed)).subscribe((res) => {
|
284
|
+
if (res) {
|
285
|
+
const dialogRef = this.dialog.open(GenerateFIA1187ALetterDialogboxComponent, {
|
286
|
+
width: '55vw',
|
287
|
+
disableClose: true,
|
288
|
+
data: {
|
289
|
+
// assessmentId: this.assessmentId || get(this.data, 'eaepAssessmentId'),
|
290
|
+
// caseId: this.caseId,
|
291
|
+
},
|
312
292
|
});
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
|
318
|
-
|
293
|
+
dialogRef.afterClosed()
|
294
|
+
.pipe(takeUntil(this.componentDestroyed))
|
295
|
+
.subscribe((letterTypeId) => {
|
296
|
+
// if (letterTypeId === 1) {
|
297
|
+
// this.conciliationWorkListService.dispatchPrintDocument({ letterType: letterTypeId, assessmentId: get(item, 'eaepAssessmentId'), CmsCaseID: get(item, 'cmsCaseId'), worklistType: teleConferenceId ,infractionDate: get(item, 'infractionDate')});
|
298
|
+
// } else if (letterTypeId === 2) {
|
299
|
+
// this.conciliationWorkListService.dispatchPrintDocument({ letterType: letterTypeId, assessmentId: get(item, 'eaepAssessmentId'), CmsCaseID: get(item, 'cmsCaseId'), worklistType: teleConferenceId,infractionDate: get(item, 'infractionDate')});
|
300
|
+
// }
|
301
|
+
const payload = new SaveTelephoneOrSettledConferenceStatusPayload({
|
302
|
+
...res,
|
303
|
+
wlTelephoneSettledId: item.wlTelephoneSettledId,
|
304
|
+
actionId: 1,
|
305
|
+
caseId: item?.cmsCaseId,
|
306
|
+
originalCategoryId: item?.originalCategoryId,
|
307
|
+
assessmentId: get(item, 'eaepAssessmentId'),
|
308
|
+
letterType: letterTypeId,
|
309
|
+
infractionDate: get(item, 'infractionDate'),
|
310
|
+
});
|
311
|
+
this.telephoneOrSettledConferenceWorkListService.dispatchSaveStatus(payload);
|
319
312
|
});
|
320
|
-
this.router.navigate(['/ea-ep/' + item?.cmsCaseId], { relativeTo: this.route, state: { clientName: item?.clientName } });
|
321
313
|
}
|
322
|
-
|
323
|
-
|
324
|
-
|
325
|
-
|
326
|
-
|
314
|
+
});
|
315
|
+
}
|
316
|
+
else {
|
317
|
+
const dialogRef = this.dialog.open(GoodCauseGrantedActionComponent, {
|
318
|
+
width: dialogSize,
|
319
|
+
disableClose: true,
|
320
|
+
data: {
|
321
|
+
conciliationLookups: this.conciliationLookups,
|
322
|
+
showInPerson: false,
|
323
|
+
},
|
324
|
+
});
|
325
|
+
dialogRef.afterClosed().pipe(takeUntil(this.componentDestroyed)).subscribe((res) => {
|
326
|
+
if (res) {
|
327
|
+
const dialogRef = this.dialog.open(GenerateFIA1187ALetterDialogboxComponent, {
|
328
|
+
width: '55vw',
|
329
|
+
disableClose: true,
|
330
|
+
data: {
|
331
|
+
// assessmentId: this.assessmentId || get(this.data, 'eaepAssessmentId'),
|
332
|
+
// caseId: this.caseId,
|
333
|
+
},
|
334
|
+
});
|
335
|
+
dialogRef.afterClosed()
|
336
|
+
.pipe(takeUntil(this.componentDestroyed))
|
337
|
+
.subscribe((letterTypeId) => {
|
338
|
+
if (get(item, 'originalCategoryId') === jcAppointments ||
|
339
|
+
get(item, 'originalCategoryId') === splRefAppointments ||
|
340
|
+
get(item, 'originalCategoryId') === null) {
|
341
|
+
const payload = new SaveTelephoneOrSettledConferenceStatusPayload({
|
342
|
+
...res,
|
343
|
+
wlTelephoneSettledId: item.wlTelephoneSettledId,
|
344
|
+
actionId: goodCauseGrantedActionId,
|
345
|
+
caseId: item?.cmsCaseId,
|
346
|
+
originalCategoryId: item?.originalCategoryId,
|
347
|
+
assessmentId: get(item, 'eaepAssessmentId'),
|
348
|
+
letterType: letterTypeId,
|
349
|
+
infractionDate: get(item, 'infractionDate'),
|
350
|
+
});
|
351
|
+
this.telephoneOrSettledConferenceWorkListService.dispatchSaveStatus(payload);
|
352
|
+
this.tabService.dispatchAddTab({
|
353
|
+
tabName: 'ea-ep/' + item?.cmsCaseId,
|
354
|
+
route: '/ea-ep/' + item?.cmsCaseId,
|
355
|
+
label: 'Assessments' + ' - ' + item?.clientName,
|
356
|
+
canClose: true,
|
357
|
+
});
|
358
|
+
this.router.navigate(['/ea-ep/' + item?.cmsCaseId], { relativeTo: this.route, state: { clientName: item?.clientName } });
|
359
|
+
}
|
360
|
+
else {
|
361
|
+
const payload = new SaveTelephoneOrSettledConferenceStatusPayload({
|
362
|
+
...res,
|
363
|
+
wlTelephoneSettledId: item.wlTelephoneSettledId,
|
364
|
+
actionId: goodCauseGrantedActionId,
|
365
|
+
caseId: item?.cmsCaseId,
|
366
|
+
originalCategoryId: item?.originalCategoryId,
|
367
|
+
assessmentId: get(item, 'eaepAssessmentId'),
|
368
|
+
letterType: letterTypeId,
|
369
|
+
infractionDate: get(item, 'infractionDate'),
|
370
|
+
});
|
371
|
+
this.telephoneOrSettledConferenceWorkListService.dispatchSaveStatus(payload);
|
372
|
+
}
|
327
373
|
});
|
328
|
-
this.telephoneOrSettledConferenceWorkListService.dispatchSaveStatus(payload);
|
329
374
|
}
|
330
|
-
}
|
331
|
-
}
|
375
|
+
});
|
376
|
+
}
|
332
377
|
}
|
333
378
|
submitBatchPoolAppointment(item, appointmentNYCWAYcode) {
|
334
379
|
const payload = new SubmitBatchPoolAppointmentModel({
|
@@ -397,4 +442,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
|
|
397
442
|
type: Component,
|
398
443
|
args: [{ selector: 'prutech-telephone-context-menu', changeDetection: ChangeDetectionStrategy.OnPush, template: "<prutech-context-menu [menuItems]=\"menuItems\" (menuAction)=\"doAction($event)\"></prutech-context-menu>\r\n", styles: [""] }]
|
399
444
|
}], ctorParameters: function () { return [{ type: i1.MatDialog }, { type: i2.LookupsService }, { type: i3.TabService }, { type: i4.Router }, { type: i5.UserService }, { type: i6.ConciliationAppointmentWorkListService }, { type: i7.TelephoneOrSettledConferenceWorkListService }, { type: i4.ActivatedRoute }]; } });
|
400
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1tZW51LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3BydXRlY2gvY29tcGxpYW5jZS9zcmMvbGliL3RlbGVwaG9uZS1zZXR0bGVkLWNvbmZlcmVuY2UvY29tcG9uZW50cy9jb250ZXh0LW1lbnUvY29udGV4dC1tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3BydXRlY2gvY29tcGxpYW5jZS9zcmMvbGliL3RlbGVwaG9uZS1zZXR0bGVkLWNvbmZlcmVuY2UvY29tcG9uZW50cy9jb250ZXh0LW1lbnUvY29udGV4dC1tZW51LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFJM0UsT0FBTyxFQUFFLGlCQUFpQixFQUE4RCxNQUFNLHFCQUFxQixDQUFDO0FBRXBILE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQzFELE9BQU8sRUFBRSxNQUFNLElBQUksT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTlELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUd2RCxPQUFPLEVBQUUsVUFBVSxFQUFFLHdCQUF3QixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDOUYsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sMEZBQTBGLENBQUM7QUFHM0ksT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sa0dBQWtHLENBQUM7QUFDdEosT0FBTyxFQUFFLDZDQUE2QyxFQUFFLE1BQU0scURBQXFELENBQUM7QUFDcEgsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLDRGQUE0RixDQUFDO0FBQzlJLE9BQU8sRUFBRSxhQUFhLEVBQUUsdUJBQXVCLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3BILE9BQU8sRUFDTCxjQUFjLEVBQ2QsYUFBYSxFQUNiLGNBQWMsRUFDZCxrQkFBa0IsRUFDbEIsZUFBZSxFQUNmLGNBQWMsRUFDZixNQUFNLCtGQUErRixDQUFDO0FBQ3ZHLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQzNGLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLHdFQUF3RSxDQUFDO0FBQzNILE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQ2xHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSx3Q0FBd0MsRUFBRSxNQUFNLG9GQUFvRixDQUFDO0FBQzlJLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ25GLE9BQU8sRUFDTCxzQkFBc0IsRUFDdEIsd0JBQXdCLEVBQ3hCLDJCQUEyQixFQUMzQixrQ0FBa0MsRUFDbEMsc0JBQXNCLEVBQ3RCLG1DQUFtQyxFQUNuQyxnQkFBZ0IsRUFDaEIsYUFBYSxFQUNkLE1BQU0sa0NBQWtDLENBQUM7QUFDMUMsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sa0VBQWtFLENBQUM7QUFDcEgsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDaEcsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sZ0VBQWdFLENBQUM7QUFDbEgsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sd0ZBQXdGLENBQUM7QUFFekksT0FBTyxFQUFFLHdDQUF3QyxFQUFFLE1BQU0sNEdBQTRHLENBQUM7Ozs7Ozs7OztBQVF0SyxNQUFNLE9BQU8sK0NBQWdELFNBQVEsaUJBQWlCO0lBUXBGLFlBQW1CLE1BQWlCLEVBQzFCLGNBQThCLEVBQzlCLFVBQXNCLEVBQ3RCLE1BQWMsRUFDZCxXQUF3QixFQUN4QiwyQkFBbUUsRUFDbkUsMkNBQXdGLEVBQ3hGLEtBQXFCO1FBRTdCLEtBQUssRUFBRSxDQUFDO1FBVFMsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQUMxQixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsZ0NBQTJCLEdBQTNCLDJCQUEyQixDQUF3QztRQUNuRSxnREFBMkMsR0FBM0MsMkNBQTJDLENBQTZDO1FBQ3hGLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBYi9CLGNBQVMsR0FBc0IsU0FBUyxDQUFDO0lBZ0J6QyxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FDeEIsU0FBUyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxFQUNsQyxPQUFPLENBQUMsQ0FBQyxJQUFVLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUMvQixTQUFTLENBQUMsQ0FBQyxJQUFVLEVBQUUsRUFBRTtZQUN4QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNuQixDQUFDLENBQUMsQ0FBQztRQUVMLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7YUFDakUsU0FBUyxDQUFDLENBQUMsT0FBNEIsRUFBRSxFQUFFO1lBQzFDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxPQUFPLENBQUM7UUFDckMsQ0FBQyxDQUFDLENBQUM7UUFDTCxJQUFJLENBQUMsMkNBQTJDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7YUFDOUYsU0FBUyxDQUFDLENBQUMsT0FBaUIsRUFBRSxFQUFFO1lBQy9CLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDOUMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsTUFBTSxDQUFDLE1BQXFCO1FBQzFCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsbUJBQW1CLENBQUMsSUFBSSwyQkFBMkIsRUFBRTtZQUN4RSxJQUFJLENBQUMsU0FBUyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsSUFBcUIsRUFBRSxFQUFFO2dCQUM3RCxPQUFPO29CQUNMLEdBQUcsSUFBSTtvQkFDUCxLQUFLLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxVQUFpQyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsS0FBSyxLQUFLLFFBQVEsQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxLQUFLLEtBQUssUUFBUSxDQUFDLDJCQUEyQixDQUFDLENBQUM7aUJBQ3hMLENBQUM7WUFDSixDQUFDLENBQUMsQ0FBQztTQUNKO1FBQ0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLGdCQUFnQixDQUFDLEVBQUU7WUFDdkMsSUFBSSxDQUFDLFNBQVMsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLElBQXFCLEVBQUUsRUFBRTtnQkFDN0QsT0FBTztvQkFDTCxHQUFHLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxVQUFpQyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsS0FBSyxLQUFLLFFBQVEsQ0FBQyx3QkFBd0IsQ0FBQyxJQUFHLFVBQVUsQ0FBQyxLQUFLLEtBQUssUUFBUSxDQUFDLDJCQUEyQixDQUFDLENBQUM7aUJBQ2hNLENBQUM7WUFDSixDQUFDLENBQUMsQ0FBQztTQUNKO1FBQ0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLGlCQUFpQixDQUFDLEVBQUc7WUFDekMsSUFBSSxDQUFDLFNBQVMsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLElBQXFCLEVBQUUsRUFBRTtnQkFDN0QsT0FBTztvQkFDTCxHQUFHLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxVQUFpQyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsS0FBSyxLQUFLLFFBQVEsQ0FBQyxzQkFBc0IsQ0FBQyxJQUFHLFVBQVUsQ0FBQyxLQUFLLEtBQUssUUFBUSxDQUFDLGdCQUFnQixDQUFDLENBQUM7aUJBQ25MLENBQUM7WUFDSixDQUFDLENBQUMsQ0FBQztTQUNKO1FBQ0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLG1CQUFtQixDQUFDLEVBQUc7WUFDM0MsSUFBSSxDQUFDLFNBQVMsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLElBQXFCLEVBQUUsRUFBRTtnQkFDN0QsT0FBTztvQkFDTCxHQUFHLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxVQUFpQyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsS0FBSyxLQUFLLFFBQVEsQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDO2lCQUM5SSxDQUFDO1lBQ0osQ0FBQyxDQUFDLENBQUM7U0FDSjtRQUNELElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxpQkFBaUIsQ0FBQyxFQUFFO1lBQ3hDLElBQUksQ0FBQyxTQUFTLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxJQUFxQixFQUFFLEVBQUU7Z0JBQzdELE9BQU87b0JBQ0wsR0FBRyxJQUFJLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsVUFBaUMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLEtBQUssS0FBSyxRQUFRLENBQUMsc0JBQXNCLENBQUMsQ0FBQztpQkFDakksQ0FBQztZQUNKLENBQUMsQ0FBQyxDQUFDO1NBQ0o7UUFDRCxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsaUJBQWlCLENBQUMsRUFBRTtZQUN4QyxJQUFJLENBQUMsU0FBUyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsSUFBcUIsRUFBRSxFQUFFO2dCQUM3RCxPQUFPO29CQUNMLEdBQUcsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLFVBQWlDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEtBQUssUUFBUSxDQUFDLGtDQUFrQyxDQUFDLENBQUM7aUJBQzdJLENBQUM7WUFDSixDQUFDLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQztJQUVELG1CQUFtQjtRQUNqQixPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsSUFBcUIsRUFBRSxFQUFFO1lBQ25ELElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxZQUFZLEVBQUU7Z0JBQy9CLE9BQU87b0JBQ0wsS0FBSyxFQUFFLFlBQVk7b0JBQ25CLEtBQUssRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLFVBQWlDLEVBQUUsRUFBRSxDQUM5RCxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxZQUFvQixFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxLQUFLLFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSSxVQUFVLENBQUMsS0FBSyxLQUFLLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQztpQkFDeEosQ0FBQzthQUNIO2lCQUFNO2dCQUNMLE9BQU8sSUFBSSxDQUFDO2FBQ2I7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxRQUFRLENBQUMsS0FBNEI7UUFDbkMsUUFBUSxLQUFLLENBQUMsS0FBSyxFQUFFO1lBQ25CLEtBQUssUUFBUSxDQUFDLHdCQUF3QixDQUFDO2dCQUNyQyxJQUFJLENBQUMsMEJBQTBCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztnQkFDMUQsTUFBTTtZQUNSLDJDQUEyQztZQUMzQyxLQUFLLFFBQVEsQ0FBQywyQkFBMkIsQ0FBQztnQkFDeEMsSUFBSSxDQUFDLDZCQUE2QixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7Z0JBQzdELE1BQU07WUFDUixLQUFLLFFBQVEsQ0FBQyxtQ0FBbUMsQ0FBQztnQkFDaEQsSUFBSSxDQUFDLDRCQUE0QixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7Z0JBQzVELE1BQU07WUFDUixLQUFLLFFBQVEsQ0FBQyxzQkFBc0IsQ0FBQztnQkFDbkMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7Z0JBQ2xELE1BQU07WUFDUixLQUFLLFFBQVEsQ0FBQyxrQ0FBa0MsQ0FBQztnQkFDL0MsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7Z0JBQ2xELE1BQU07WUFDUixLQUFLLFFBQVEsQ0FBQyxzQkFBc0IsQ0FBQztnQkFDbkMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7Z0JBQ3hELE1BQU07WUFDUixLQUFLLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQztnQkFDN0IsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7Z0JBQ2xELE1BQU07WUFDUixLQUFLLFFBQVEsQ0FBQyxhQUFhLENBQUM7Z0JBQzFCLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztnQkFDL0MsTUFBTTtZQUVSO2dCQUNFLE1BQU07U0FDVDtJQUNILENBQUM7SUFDRCxlQUFlLENBQUMsSUFBbUQ7UUFDakUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFDRCxrQkFBa0IsQ0FBQyxJQUFtRDtRQUNwRSxNQUFNLFNBQVMsR0FBNkMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsMEJBQTBCLEVBQUU7WUFDdkcsS0FBSyxFQUFFLFVBQVU7WUFDakIsWUFBWSxFQUFFLElBQUk7WUFDbEIsSUFBSSxFQUFFO2dCQUNKLG1CQUFtQixFQUFFLElBQUksQ0FBQyxtQkFBbUI7YUFDOUM7U0FDRixDQUFDLENBQUM7UUFFSCxrQ0FBa0M7UUFDbEMsU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRTtZQUN0RixJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ1QsTUFBTSxPQUFPLEdBQXdCLElBQUksbUJBQW1CLENBQUM7b0JBQzNELEdBQUcsR0FBRztvQkFDTixvQkFBb0IsRUFBRSxHQUFHLENBQUMsSUFBSSxFQUFFLHNCQUFzQixDQUFDO29CQUN2RCxRQUFRLEVBQUUsZ0JBQWdCO2lCQUUzQixDQUFDLENBQUM7Z0JBQ0gsSUFBSSxDQUFDLDJDQUEyQyxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBRWhGO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsd0JBQXdCLENBQUMsSUFBbUQ7UUFDMUUsTUFBTSxTQUFTLEdBQW1ELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGdDQUFnQyxFQUFFO1lBQ25ILEtBQUssRUFBRSxVQUFVO1lBQ2pCLFlBQVksRUFBRSxJQUFJO1lBQ2xCLElBQUksRUFBRTtnQkFDSixtQkFBbUIsRUFBRSxJQUFJLENBQUMsbUJBQW1CO2FBQzlDO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsa0NBQWtDO1FBQ2xDLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBUSxFQUFFLEVBQUU7WUFDdEYsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFO2dCQUNULE1BQU0sT0FBTyxHQUF3QixJQUFJLG1CQUFtQixDQUFDO29CQUMzRCxHQUFHLEdBQUc7b0JBQ04sb0JBQW9CLEVBQUUsR0FBRyxDQUFDLElBQUksRUFBRSxzQkFBc0IsQ0FBQztvQkFDdkQsUUFBUSxFQUFFLHNCQUFzQjtpQkFFakMsQ0FBQyxDQUFDO2dCQUNILElBQUksQ0FBQywyQ0FBMkMsQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUVoRjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELDhCQUE4QixDQUFDLElBQW1EO1FBQ2hGLE1BQU0sU0FBUyxHQUEyRCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyx3Q0FBd0MsRUFBRTtZQUNuSSxLQUFLLEVBQUUsVUFBVTtZQUNqQixZQUFZLEVBQUUsSUFBSTtZQUNsQixJQUFJLEVBQUU7Z0JBQ0osbUJBQW1CLEVBQUUsSUFBSSxDQUFDLG1CQUFtQjthQUM5QztTQUNGLENBQUMsQ0FBQztRQUVILGtDQUFrQztRQUNsQyxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ2pGLElBQUksR0FBRyxFQUFFLHNCQUFzQixFQUFFO2dCQUMvQixxQkFBcUI7YUFFdEI7aUJBQU07Z0JBQ0wsT0FBTyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxhQUFhLENBQUMsQ0FBQzthQUNoRTtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGtCQUFrQixDQUFDLElBQW1EO1FBQ3BFLE1BQU0sU0FBUyxHQUE2QyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQywwQkFBMEIsRUFBRTtZQUN2RyxLQUFLLEVBQUUsVUFBVTtZQUNqQixZQUFZLEVBQUUsSUFBSTtZQUNsQixJQUFJLEVBQUU7Z0JBQ0osbUJBQW1CLEVBQUUsSUFBSSxDQUFDLG1CQUFtQjthQUM5QztTQUNGLENBQUMsQ0FBQztRQUVILGtDQUFrQztRQUNsQyxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFO1lBQ3RGLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRTtnQkFDVCxNQUFNLE9BQU8sR0FBd0IsSUFBSSxtQkFBbUIsQ0FBQztvQkFDM0QsR0FBRyxHQUFHO29CQUNOLG9CQUFvQixFQUFFLEdBQUcsQ0FBQyxJQUFJLEVBQUUsc0JBQXNCLENBQUM7b0JBQ3ZELFFBQVEsRUFBRSxrQ0FBa0M7aUJBRTdDLENBQUMsQ0FBQztnQkFDSCxJQUFJLENBQUMsMkNBQTJDLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLENBQUM7YUFFaEY7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCw0QkFBNEIsQ0FBQyxJQUFtRDtRQUM5RSxNQUFNLFNBQVMsR0FBb0QsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsaUNBQWlDLEVBQUU7WUFDdEgsS0FBSyxFQUFFLFVBQVU7WUFDakIsWUFBWSxFQUFFLElBQUk7WUFDbEIsSUFBSSxFQUFFO2dCQUNKLG1CQUFtQixFQUFFLElBQUksQ0FBQyxtQkFBbUI7YUFDOUM7U0FDRixDQUFDLENBQUM7UUFFSCxrQ0FBa0M7UUFDbEMsU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRTtZQUN0RixJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ1QsTUFBTSxPQUFPLEdBQWdDLElBQUksMkJBQTJCLENBQUM7b0JBQzNFLEdBQUcsR0FBRztvQkFDTixvQkFBb0IsRUFBRSxHQUFHLENBQUMsSUFBSSxFQUFFLHNCQUFzQixDQUFDO29CQUN2RCxRQUFRLEVBQUUsbUNBQW1DO2lCQUU5QyxDQUFDLENBQUM7Z0JBRUgsSUFBSSxDQUFDLDJDQUEyQyxDQUFDLDJDQUEyQyxDQUFDLE9BQU8sQ0FBQyxDQUFBO2FBQ3RHO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsa0JBQWtCLENBQUMsSUFBbUQ7UUFDcEUsTUFBTSxTQUFTLEdBQW1ELElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLGdDQUFnQyxFQUFFO1lBQ3BILEtBQUssRUFBRSx3QkFBd0I7WUFDL0IsWUFBWSxFQUFFLElBQUk7WUFDbEIsSUFBSSxFQUFFLElBQUk7U0FDWCxDQUFDLENBQUM7UUFFSCxrQ0FBa0M7UUFDbEMsU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRTtZQUN0RixJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ1QsTUFBTSxPQUFPLEdBQXNCLElBQUksaUJBQWlCLENBQUM7b0JBQ3ZELEdBQUcsR0FBRztvQkFDTixvQkFBb0IsRUFBRSxHQUFHLENBQUMsSUFBSSxFQUFFLHNCQUFzQixDQUFDO29CQUN2RCxRQUFRLEVBQUUsc0JBQXNCO2lCQUNqQyxDQUFDLENBQUM7Z0JBQ0gsSUFBSSxDQUFDLDJDQUEyQyxDQUFDLHlDQUF5QyxDQUFDLE9BQU8sQ0FBQyxDQUFBO2FBQ3BHO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsMEJBQTBCLENBQUMsSUFBbUQ7UUFDNUUsTUFBTSxTQUFTLEdBQWtELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLCtCQUErQixFQUFFO1lBQ2pILEtBQUssRUFBRSxVQUFVO1lBQ2pCLFlBQVksRUFBRSxJQUFJO1lBQ2xCLElBQUksRUFBRTtnQkFDSixtQkFBbUIsRUFBRSxJQUFJLENBQUMsbUJBQW1CO2dCQUM3QyxZQUFZLEVBQUUsS0FBSzthQUNwQjtTQUNGLENBQUMsQ0FBQztRQUNILFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBUSxFQUFFLEVBQUU7WUFDdEYsSUFBSSxHQUFHLEVBQUU7Z0JBRVAsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsd0NBQXdDLEVBQUU7b0JBQzNFLEtBQUssRUFBRSxNQUFNO29CQUNiLFlBQVksRUFBRSxJQUFJO29CQUNsQixJQUFJLEVBQUU7b0JBQ0oseUVBQXlFO29CQUN6RSx1QkFBdUI7cUJBQ3hCO2lCQUNGLENBQUMsQ0FBQztnQkFDSCxTQUFTLENBQUMsV0FBVyxFQUFFO3FCQUNwQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO3FCQUN4QyxTQUFTLENBQUMsQ0FBQyxZQUFvQixFQUFFLEVBQUU7b0JBQ2xDLElBQUksWUFBWSxLQUFLLENBQUMsRUFBRTt3QkFDdEIsSUFBSSxDQUFDLDJCQUEyQixDQUFDLHFCQUFxQixDQUFDLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsR0FBRyxDQUFDLElBQUksRUFBRSxrQkFBa0IsQ0FBQyxFQUFFLFNBQVMsRUFBRSxHQUFHLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQztxQkFDdEs7eUJBQU0sSUFBSSxZQUFZLEtBQUssQ0FBQyxFQUFFO3dCQUM3QixJQUFJLENBQUMsMkJBQTJCLENBQUMscUJBQXFCLENBQUMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxHQUFHLENBQUMsSUFBSSxFQUFFLGtCQUFrQixDQUFDLEVBQUUsU0FBUyxFQUFFLEdBQUcsQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO3FCQUN0SztnQkFDSCxDQUFDLENBQUMsQ0FBQTtnQkFFSixJQUFJLEdBQUcsQ0FBQyxJQUFJLEVBQUUsb0JBQW9CLENBQUMsS0FBSyxjQUFjO29CQUNwRCxHQUFHLENBQUMsSUFBSSxFQUFFLG9CQUFvQixDQUFDLEtBQUssY0FBYztvQkFDbEQsR0FBRyxDQUFDLElBQUksRUFBRSxvQkFBb0IsQ0FBQyxLQUFLLGFBQWE7b0JBQ2pELEdBQUcsQ0FBQyxJQUFJLEVBQUUsb0JBQW9CLENBQUMsS0FBSyxlQUFlO29CQUNuRCxHQUFHLENBQUMsSUFBSSxFQUFFLG9CQUFvQixDQUFDLEtBQUssY0FBYztvQkFDbEQsR0FBRyxDQUFDLElBQUksRUFBRSxvQkFBb0IsQ0FBQyxLQUFLLGtCQUFrQjtvQkFDdEQsR0FBRyxDQUFDLElBQUksRUFBRSxvQkFBb0IsQ0FBQyxLQUFLLElBQUksRUFBRTtvQkFDMUMsTUFBTSxPQUFPLEdBQWtELElBQUksNkNBQTZDLENBQUM7d0JBQy9HLEdBQUcsR0FBRzt3QkFDTixvQkFBb0IsRUFBRSxJQUFJLENBQUMsb0JBQW9CO3dCQUMvQyxRQUFRLEVBQUUsd0JBQXdCO3FCQUNuQyxDQUFDLENBQUM7b0JBQ0gsSUFBSSxDQUFDLDJDQUEyQyxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDO29CQUM3RSxJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQzt3QkFDN0IsT0FBTyxFQUFFLFFBQVEsR0FBRyxJQUFJLEVBQUUsU0FBUzt3QkFDbkMsS0FBSyxFQUFFLFNBQVMsR0FBRyxJQUFJLEVBQUUsU0FBUzt3QkFDbEMsS0FBSyxFQUFFLGFBQWEsR0FBRyxLQUFLLEdBQUcsSUFBSSxFQUFFLFVBQVU7d0JBQy9DLFFBQVEsRUFBRSxJQUFJO3FCQUNmLENBQUMsQ0FBQztvQkFDSCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFNBQVMsR0FBRyxJQUFJLEVBQUUsU0FBUyxDQUFDLEVBQUUsRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQztpQkFDMUg7cUJBQU07b0JBQ0wsTUFBTSxPQUFPLEdBQWtELElBQUksNkNBQTZDLENBQUM7d0JBQy9HLEdBQUcsR0FBRzt3QkFDTixvQkFBb0IsRUFBRSxJQUFJLENBQUMsb0JBQW9CO3dCQUMvQyxRQUFRLEVBQUUsd0JBQXdCO3FCQUNuQyxDQUFDLENBQUM7b0JBQ0gsSUFBSSxDQUFDLDJDQUEyQyxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDO2lCQUM5RTthQUNGO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsMEJBQTBCLENBQUMsSUFBbUQsRUFBRSxxQkFBNkI7UUFDM0csTUFBTSxPQUFPLEdBQW9DLElBQUksK0JBQStCLENBQUM7WUFFbkYsTUFBTSxFQUFFLElBQUksRUFBRSxTQUFTO1lBQ3ZCLE1BQU0sRUFBRSxHQUFHLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQztZQUM3QixhQUFhLEVBQUUsSUFBSSxFQUFFLGFBQWE7WUFDbEMsZ0JBQWdCLEVBQUUsR0FBRyxDQUFDLElBQUksRUFBRSxrQkFBa0IsQ0FBQztZQUMvQyxvQkFBb0IsRUFBRSxHQUFHLENBQUMsSUFBSSxFQUFFLHNCQUFzQixDQUFDO1lBQ3ZELHFCQUFxQixFQUFFLHFCQUFxQjtTQUM3QyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsMkJBQTJCLENBQUMsa0NBQWtDLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDL0UsQ0FBQztJQUVELDZCQUE2QixDQUFDLElBQW1EO1FBQy9FLE1BQU0sU0FBUyxHQUFxRCxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxrQ0FBa0MsRUFBRTtZQUN4SCxLQUFLLEVBQUUsVUFBVTtZQUNqQixZQUFZLEVBQUUsSUFBSTtZQUNsQixJQUFJLEVBQUU7Z0JBQ0osbUJBQW1CLEVBQUUsSUFBSSxDQUFDLG1CQUFtQjtnQkFDN0MsSUFBSSxFQUFFLElBQUk7YUFDWDtTQUNGLENBQUMsQ0FBQztRQUVILGtDQUFrQztRQUNsQyxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFO1lBQ3RGLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRTtnQkFDVCxJQUFJLENBQUMsMkNBQTJDLENBQUMsa0JBQWtCLENBQUMsSUFBSSw2Q0FBNkMsQ0FBQztvQkFDcEgsR0FBRyxHQUFHO29CQUNOLG9CQUFvQixFQUFFLEdBQUcsQ0FBQyxJQUFJLEVBQUUsc0JBQXNCLENBQUM7b0JBQ3ZELFFBQVEsRUFBRSwyQkFBMkI7aUJBQ3RDLENBQUMsQ0FBQyxDQUFDO2FBQ0w7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxjQUFjO1FBQ1osRUFBRTtJQUNKLENBQUM7SUFFRCwyQkFBMkIsQ0FBQyxPQUFzRCxFQUFFLElBQW1EO1FBQ3JJLE1BQU0sZ0JBQWdCLEdBQW1ELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGdDQUFnQyxFQUFFO1lBQzFILEtBQUssRUFBRSxVQUFVO1lBQ2pCLFlBQVksRUFBRSxJQUFJO1lBQ2xCLElBQUksRUFBRTtnQkFDSixRQUFRLEVBQUUsUUFBUTtnQkFDbEIsT0FBTyxFQUFFLE9BQU87Z0JBQ2hCLE1BQU0sRUFBRSxhQUFhO2dCQUNyQixPQUFPLEVBQUUsdUJBQXVCO2FBQ2pDO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsZ0JBQWdCLENBQUMsV0FBVyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQVksRUFBRSxFQUFFO1lBQ2pHLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRTtnQkFDVCxJQUFJLENBQUMsMkNBQTJDLENBQUMsa0JBQWtCLENBQUMsSUFBSSw2Q0FBNkMsQ0FBQztvQkFDcEgsR0FBRyxPQUFPO29CQUNWLFlBQVksRUFBRSxJQUFJO2lCQUNuQixDQUFDLENBQUMsQ0FBQzthQUNMO2lCQUFNO2dCQUNMLElBQUksQ0FBQywyQ0FBMkMsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLDZDQUE2QyxDQUFDO29CQUNwSCxHQUFHLE9BQU87b0JBQ1YsWUFBWSxFQUFFLEtBQUs7aUJBQ3BCLENBQUMsQ0FBQyxDQUFDO2FBQ0w7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OzZJQTdZVSwrQ0FBK0M7aUlBQS9DLCtDQUErQyw2RkMzRDVELCtHQUNBOzRGRDBEYSwrQ0FBK0M7a0JBTjNELFNBQVM7K0JBQ0UsZ0NBQWdDLG1CQUd6Qix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBNYXREaWFsb2csIE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IEFnR3JpZEFuZ3VsYXIgfSBmcm9tICdAYWctZ3JpZC1jb21tdW5pdHkvYW5ndWxhcic7XHJcbmltcG9ydCB7IEFic3RyYWN0Q29tcG9uZW50LCBDb250ZXh0TWVudUFjdGlvbkl0ZW0sIENvbnRleHRNZW51SXRlbSwgTG9va3VwLCBUYWJTZXJ2aWNlIH0gZnJvbSAnQHBydXRlY2gvY29tcG9uZW50cyc7XHJcbmltcG9ydCB7IFVzZXIsIFVzZXJTZXJ2aWNlIH0gZnJvbSAnQHBydXRlY2gvaWRlbnRpdHktY2xpZW50JztcclxuaW1wb3J0IHsgZmlsdGVyLCBmaW5kLCBnZXQsIG1hcCwgdG9TdHJpbmcgfSBmcm9tICdsb2Rhc2gnO1xyXG5pbXBvcnQgeyBmaWx0ZXIgYXMgckZpbHRlciwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgbWVudUl0ZW1zIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL21lbnUtaXRlbXMnO1xyXG5pbXBvcnQgeyBUZWxlcGhvbmVPclNldHRsZWRDb25mZXJlbmNlV29ya0xpc3RJdGVtTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvdGVsZXBob25lLW9yLXNldHRsZWQtY29uZmVyZW5jZS13b3JrLWxpc3QtaXRlbS5tb2RlbCc7XHJcbmltcG9ydCB7IFRlbGVwaG9uZU9yU2V0dGxlZENvbmZlcmVuY2VXb3JrTGlzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90ZWxlcGhvbmUtb3Itc2V0dGxlZC1jb25mZXJlbmNlLWxpc3Quc2VydmljZSc7XHJcbmltcG9ydCB7IGRpYWxvZ1NpemUsIHJlY29yZE91dHJlYWNoZGlhbG9nU2l6ZSB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9jb25zdGFudHMvZGlhZ2xvZy1zaXplJztcclxuaW1wb3J0IHsgR29vZENhdXNlR3JhbnRlZEFjdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9jb21wb25lbnRzL2dvb2QtY2F1c2UtZ3JhbnRlZC1hY3Rpb24vZ29vZC1jYXVzZS1ncmFudGVkLWFjdGlvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBMb29rdXBzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9tb2R1bGVzL2NvbmNpbGlhdGlvbi1sb29rdXBzL3NlcnZpY2VzL2xvb2t1cHMuc2VydmljZSc7XHJcbmltcG9ydCB7IENvbmNpbGlhdGlvbkxvb2t1cHMgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvbW9kZWxzL2NvbmNpbGlhdGlvbi1sb29rdXBzLm1vZGVsJztcclxuaW1wb3J0IHsgR29vZENhdXNlTm90R3JhbnRlZEFjdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9jb21wb25lbnRzL2dvb2QtY2F1c2Utbm90LWdyYW50ZWQtYWN0aW9uL2dvb2QtY2F1c2Utbm90LWdyYW50ZWQtYWN0aW9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNhdmVUZWxlcGhvbmVPclNldHRsZWRDb25mZXJlbmNlU3RhdHVzUGF5bG9hZCB9IGZyb20gJy4uLy4uL21vZGVscy9zYXZlLWNvbmNpbGlhdGlvbi1zdGF0dXMtcGF5bG9hZC5tb2RlbCc7XHJcbmltcG9ydCB7IGFjdGlvbnNMYWJlbCB9IGZyb20gJy4uLy4uLy4uL3ByZS1jb25jaWxpYXRpb24td29yay1saXN0L2NvbnN0YW50cy9tZW51LWl0ZW1zJztcclxuaW1wb3J0IHsgWWVzTm9Db25maXJtYXRpb25EaWFsb2dDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvY29tcG9uZW50cy95ZXMtbm8tY29uZmlybWF0aW9uLWRpYWxvZy95ZXMtbm8tY29uZmlybWF0aW9uLWRpYWxvZy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBjb25maXJtSGVhZGVyLCBnb29kQ2F1c2VDb25maXJtTWVzc2FnZSwgbm9MYWJlbCwgeWVzTGFiZWwgfSBmcm9tICcuLi8uLi9jb25zdGFudHMveWVzLW5vLWNvbmZpcm0tZGVmYXVsdHMnO1xyXG5pbXBvcnQge1xyXG4gIGNzQXBwb2ludG1lbnRzLFxyXG4gIGNzQXNzaWdubWVudHMsXHJcbiAgamNBcHBvaW50bWVudHMsXHJcbiAgc3BsUmVmQXBwb2ludG1lbnRzLFxyXG4gIHRhZ0FwcG9pbnRtZW50cyxcclxuICB0YWdBc3NpZ25tZW50c1xyXG59IGZyb20gJy4uLy4uLy4uL2NvbmNpbGlhdGlvbi1hcHBvaW50bWVudC13b3JrLWxpc3QvY29uc3RhbnRzL29yZ2luYWwtY2F0ZWdvcnktbG9va3VwLXR5cGVzLmNvbnN0YW50cyc7XHJcbmltcG9ydCB7IFNhdmVTY2hlZHVsaW5nQ2FsbEJhY2tNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9zYXZlLXNjaGVkdWxpbmctY2FsbC1iYWNrLm1vZGVsJztcclxuaW1wb3J0IHsgUmVTY2hlZHVsZUNhbGxCYWNrQWN0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vcmUtc2NoZWR1bGUtY2FsbC1iYWNrLWFjdGlvbi9yZS1zY2hlZHVsZS1jYWxsLWJhY2stYWN0aW9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNhdmVPdXRyZWFjaE1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3NhdmUtb3V0cmVhY2gtbW9kZWwnO1xyXG5pbXBvcnQgeyBSZUFzc2lnbkRhaWxvZ2JveENvbXBvbmVudCB9IGZyb20gJy4uL3JlLWFzc2lnbi1kYWlsb2dib3gvcmUtYXNzaWduLWRhaWxvZ2JveC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTdWJtaXRSZWFzc2lnbk1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3N1Ym1pdC1yZS1hc3NpZ24tZnJvbW1vZGVsJztcclxuaW1wb3J0IHsgQXNzaWdubWVudHNTdGlsbEFjdGl2ZURpYWxvZ2JveENvbXBvbmVudCB9IGZyb20gJy4uL2Fzc2lnbm1lbnRzLXN0aWxsLWFjdGl2ZS1kaWFsb2dib3gvYXNzaWdubWVudHMtc3RpbGwtYWN0aXZlLWRpYWxvZ2JveC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBvcGVuQXBwb2ludG1lbnREaWFsb2cgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZnVuY3Rpb25zL29wZW4tYXBwb2ludG1lbnQnO1xyXG5pbXBvcnQge1xyXG4gIGNsaWVudEZvbGxvd1VwQWN0aW9uSWQsXHJcbiAgZ29vZENhdXNlR3JhbnRlZEFjdGlvbklkLFxyXG4gIGdvb2RDYXVzZU5vdEdyYW50ZWRBY3Rpb25JZCxcclxuICByZUFzc2lnbkNvbmZlcmVuY2VDYXRlZ29yeUFjdGlvbklkLFxyXG4gIHJlY29yZE91dHJlYWNoQWN0aW9uSWQsXHJcbiAgcmVTY2hlZHVsZUNvbmZlcmVuY2VCeVBob25lQWN0aW9uSWQsXHJcbiAgd2l0aGRyYXdBY3Rpb25JZCxcclxuICBjYXNlU3VtbWFyeUlkXHJcbn0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL21lbnUtYWN0aW9uLWRlZnMnO1xyXG5pbXBvcnQgeyBDbGllbnRGb2xsb3d1cERhaWxvZ2JveENvbXBvbmVudCB9IGZyb20gJy4uL2NsaWVudC1mb2xsb3d1cC1kYWlsb2dib3gvY2xpZW50LWZvbGxvd3VwLWRhaWxvZ2JveC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBXaXRoZHJhd0RhaWxvZ2JveENvbXBvbmVudCB9IGZyb20gJy4uL3dpdGhkcmF3LWRhaWxvZ2JveC93aXRoZHJhdy1kYWlsb2dib3guY29tcG9uZW50JztcclxuaW1wb3J0IHsgUmVjb3JkT3V0cmVhY2hkaWFsb2dib3hDb21wb25lbnQgfSBmcm9tICcuLi9yZWNvcmQtb3V0cmVhY2hkaWFsb2dib3gvcmVjb3JkLW91dHJlYWNoZGlhbG9nYm94LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFN1Ym1pdEJhdGNoUG9vbEFwcG9pbnRtZW50TW9kZWwgfSBmcm9tICcuLi8uLi8uLi9jb25jaWxpYXRpb24tYXBwb2ludG1lbnQtd29yay1saXN0L21vZGVscy9zdWJtaXQtYmF0Y2gtcG9vbC1hcHBvaW50bWVudC5tb2RlbCc7XHJcbmltcG9ydCB7IENvbmNpbGlhdGlvbkFwcG9pbnRtZW50V29ya0xpc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vY29uY2lsaWF0aW9uLWFwcG9pbnRtZW50LXdvcmstbGlzdC9zZXJ2aWNlcy9jb25jaWxpYXRpb24tYXBwb2ludG1lbnQtd29yay1saXN0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBHZW5lcmF0ZUZJQTExODdBTGV0dGVyRGlhbG9nYm94Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2NvbXBvbmVudHMvZ2VuZXJhdGUtZmlhMTE4Ny1hbGV0dGVyLWRpYWxvZ2JveC9nZW5lcmF0ZS1maWExMTg3LWFsZXR0ZXItZGlhbG9nYm94LmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3BydXRlY2gtdGVsZXBob25lLWNvbnRleHQtbWVudScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbnRleHQtbWVudS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY29udGV4dC1tZW51LmNvbXBvbmVudC5jc3MnXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIFRlbGVwaG9uZU9yU2V0dGxlZENvbmZlcmVuY0NvbnRleHRNZW51Q29tcG9uZW50IGV4dGVuZHMgQWJzdHJhY3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBtZW51SXRlbXM6IENvbnRleHRNZW51SXRlbVtdID0gbWVudUl0ZW1zO1xyXG4gIHBhcmFtczogQWdHcmlkQW5ndWxhcjtcclxuICBjb25jaWxpYXRpb25Mb29rdXBzOiBDb25jaWxpYXRpb25Mb29rdXBzO1xyXG4gIGFjdGlvbnM6IExvb2t1cFtdO1xyXG4gIHVzZXI6IFVzZXI7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBkaWFsb2c6IE1hdERpYWxvZyxcclxuICAgIHByaXZhdGUgbG9va3Vwc1NlcnZpY2U6IExvb2t1cHNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB0YWJTZXJ2aWNlOiBUYWJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcclxuICAgIHByaXZhdGUgdXNlclNlcnZpY2U6IFVzZXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjb25jaWxpYXRpb25Xb3JrTGlzdFNlcnZpY2U6IENvbmNpbGlhdGlvbkFwcG9pbnRtZW50V29ya0xpc3RTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB0ZWxlcGhvbmVPclNldHRsZWRDb25mZXJlbmNlV29ya0xpc3RTZXJ2aWNlOiBUZWxlcGhvbmVPclNldHRsZWRDb25mZXJlbmNlV29ya0xpc3RTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXHJcbiAgKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnVzZXJTZXJ2aWNlLnVzZXIucGlwZShcclxuICAgICAgdGFrZVVudGlsKHRoaXMuY29tcG9uZW50RGVzdHJveWVkKSxcclxuICAgICAgckZpbHRlcigodXNlcjogVXNlcikgPT4gISF1c2VyKSlcclxuICAgICAgLnN1YnNjcmliZSgodXNlcjogVXNlcikgPT4ge1xyXG4gICAgICAgIHRoaXMudXNlciA9IHVzZXI7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgIHRoaXMubG9va3Vwc1NlcnZpY2UubG9va3Vwcy5waXBlKHRha2VVbnRpbCh0aGlzLmNvbXBvbmVudERlc3Ryb3llZCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKGxvb2t1cHM6IENvbmNpbGlhdGlvbkxvb2t1cHMpID0+IHtcclxuICAgICAgICB0aGlzLmNvbmNpbGlhdGlvbkxvb2t1cHMgPSBsb29rdXBzO1xyXG4gICAgICB9KTtcclxuICAgIHRoaXMudGVsZXBob25lT3JTZXR0bGVkQ29uZmVyZW5jZVdvcmtMaXN0U2VydmljZS5hY3Rpb25zLnBpcGUodGFrZVVudGlsKHRoaXMuY29tcG9uZW50RGVzdHJveWVkKSlcclxuICAgICAgLnN1YnNjcmliZSgoYWN0aW9uczogTG9va3VwW10pID0+IHtcclxuICAgICAgICB0aGlzLmFjdGlvbnMgPSBhY3Rpb25zO1xyXG4gICAgICAgIHRoaXMubWVudUl0ZW1zID0gdGhpcy5nZXRVcGRhdGVkTWVudUl0ZW1zKCk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgYWdJbml0KHBhcmFtczogQWdHcmlkQW5ndWxhcik6IHZvaWQge1xyXG4gICAgdGhpcy5wYXJhbXMgPSBwYXJhbXM7XHJcbiAgICBpZiAoZ2V0KHRoaXMucGFyYW1zLCAnZGF0YS5sYXN0QWN0aW9uSWQnKSA9PSBnb29kQ2F1c2VOb3RHcmFudGVkQWN0aW9uSWQpIHtcclxuICAgICAgdGhpcy5tZW51SXRlbXMgPSBtYXAodGhpcy5tZW51SXRlbXMsIChpdGVtOiBDb250ZXh0TWVudUl0ZW0pID0+IHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgLi4uaXRlbSxcclxuICAgICAgICAgIGl0ZW1zOiBmaWx0ZXIoaXRlbS5pdGVtcywgKGFjdGlvbkl0ZW06IENvbnRleHRNZW51QWN0aW9uSXRlbSkgPT4gYWN0aW9uSXRlbS5yb3V0ZSAhPT0gdG9TdHJpbmcoZ29vZENhdXNlR3JhbnRlZEFjdGlvbklkKSAmJiBhY3Rpb25JdGVtLnJvdXRlICE9PSB0b1N0cmluZyhnb29kQ2F1c2VOb3RHcmFudGVkQWN0aW9uSWQpKSxcclxuICAgICAgICB9O1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGlmICghZ2V0KHRoaXMucGFyYW1zLCAnZGF0YS5pc0dyYW50ZWQnKSkge1xyXG4gICAgICB0aGlzLm1lbnVJdGVtcyA9IG1hcCh0aGlzLm1lbnVJdGVtcywgKGl0ZW06IENvbnRleHRNZW51SXRlbSkgPT4ge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAuLi5pdGVtLCBpdGVtczogZmlsdGVyKGl0ZW0uaXRlbXMsIChhY3Rpb25JdGVtOiBDb250ZXh0TWVudUFjdGlvbkl0ZW0pID0+IGFjdGlvbkl0ZW0ucm91dGUgIT09IHRvU3RyaW5nKGdvb2RDYXVzZUdyYW50ZWRBY3Rpb25JZCkmJiBhY3Rpb25JdGVtLnJvdXRlICE9PSB0b1N0cmluZyhnb29kQ2F1c2VOb3RHcmFudGVkQWN0aW9uSWQpKSxcclxuICAgICAgICB9O1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGlmICghZ2V0KHRoaXMucGFyYW1zLCAnZGF0YS5pc1NjaGVkdWxlJykgKSB7XHJcbiAgICAgIHRoaXMubWVudUl0ZW1zID0gbWFwKHRoaXMubWVudUl0ZW1zLCAoaXRlbTogQ29udGV4dE1lbnVJdGVtKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIC4uLml0ZW0sIGl0ZW1zOiBmaWx0ZXIoaXRlbS5pdGVtcywgKGFjdGlvbkl0ZW06IENvbnRleHRNZW51QWN0aW9uSXRlbSkgPT4gYWN0aW9uSXRlbS5yb3V0ZSAhPT0gdG9TdHJpbmcoY2xpZW50Rm9sbG93VXBBY3Rpb25JZCkmJiBhY3Rpb25JdGVtLnJvdXRlICE9PSB0b1N0cmluZyh3aXRoZHJhd0FjdGlvbklkKSksXHJcbiAgICAgICAgfTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBpZiAoIWdldCh0aGlzLnBhcmFtcywgJ2RhdGEuaXNSZVNjaGVkdWxlJykgKSB7XHJcbiAgICAgIHRoaXMubWVudUl0ZW1zID0gbWFwKHRoaXMubWVudUl0ZW1zLCAoaXRlbTogQ29udGV4dE1lbnVJdGVtKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIC4uLml0ZW0sIGl0ZW1zOiBmaWx0ZXIoaXRlbS5pdGVtcywgKGFjdGlvbkl0ZW06IENvbnRleHRNZW51QWN0aW9uSXRlbSkgPT4gYWN0aW9uSXRlbS5yb3V0ZSAhPT0gdG9TdHJpbmcocmVTY2hlZHVsZUNvbmZlcmVuY2VCeVBob25lQWN0aW9uSWQpKSxcclxuICAgICAgICB9O1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGlmICghZ2V0KHRoaXMucGFyYW1zLCAnZGF0YS5pc091dHJlYWNoJykpIHtcclxuICAgICAgdGhpcy5tZW51SXRlbXMgPSBtYXAodGhpcy5tZW51SXRlbXMsIChpdGVtOiBDb250ZXh0TWVudUl0ZW0pID0+IHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgLi4uaXRlbSwgaXRlbXM6IGZpbHRlcihpdGVtLml0ZW1zLCAoYWN0aW9uSXRlbTogQ29udGV4dE1lbnVBY3Rpb25JdGVtKSA9PiBhY3Rpb25JdGVtLnJvdXRlICE9PSB0b1N0cmluZyhyZWNvcmRPdXRyZWFjaEFjdGlvbklkKSksXHJcbiAgICAgICAgfTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBpZiAoIWdldCh0aGlzLnBhcmFtcywgJ2RhdGEuaXNSZUFzc2lnbicpKSB7XHJcbiAgICAgIHRoaXMubWVudUl0ZW1zID0gbWFwKHRoaXMubWVudUl0ZW1zLCAoaXRlbTogQ29udGV4dE1lbnVJdGVtKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIC4uLml0ZW0sIGl0ZW1zOiBmaWx0ZXIoaXRlbS5pdGVtcywgKGFjdGlvbkl0ZW06IENvbnRleHRNZW51QWN0aW9uSXRlbSkgPT4gYWN0aW9uSXRlbS5yb3V0ZSAhPT0gdG9TdHJpbmcocmVBc3NpZ25Db25mZXJlbmNlQ2F0ZWdvcnlBY3Rpb25JZCkpLFxyXG4gICAgICAgIH07XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0VXBkYXRlZE1lbnVJdGVtcygpOiBDb250ZXh0TWVudUl0ZW1bXSB7XHJcbiAgICByZXR1cm4gbWFwKHRoaXMubWVudUl0ZW1zLCAoaXRlbTogQ29udGV4dE1lbnVJdGVtKSA9PiB7XHJcbiAgICAgIGlmIChpdGVtLmxhYmVsID09PSBhY3Rpb25zTGFiZWwpIHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgbGFiZWw6IGFjdGlvbnNMYWJlbCxcclxuICAgICAgICAgIGl0ZW1zOiBmaWx0ZXIoaXRlbS5pdGVtcywgKGFjdGlvbkl0ZW06IENvbnRleHRNZW51QWN0aW9uSXRlbSkgPT5cclxuICAgICAgICAgICAgISFmaW5kKHRoaXMuYWN0aW9ucywgKGFjdGlvbkxvb2t1cDogTG9va3VwKSA9PiB0b1N0cmluZyhhY3Rpb25Mb29rdXAubG9va3VwSWQpID09PSBhY3Rpb25JdGVtLnJvdXRlKSB8fCBhY3Rpb25JdGVtLnJvdXRlID09PSB0b1N0cmluZyhjYXNlU3VtbWFyeUlkKSksXHJcbiAgICAgICAgfTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gaXRlbTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBkb0FjdGlvbihldmVudDogQ29udGV4dE1lbnVBY3Rpb25JdGVtKTogdm9pZCB7XHJcbiAgICBzd2l0Y2ggKGV2ZW50LnJvdXRlKSB7XHJcbiAgICAgIGNhc2UgdG9TdHJpbmcoZ29vZENhdXNlR3JhbnRlZEFjdGlvbklkKTpcclxuICAgICAgICB0aGlzLm9wZW5Hb29kQ2F1c2VHcmFudGVkRGlhbG9nKGdldCh0aGlzLnBhcmFtcywgJ2RhdGEnKSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIC8vIHN1cHBvc2UgZ29vZCBjYXVzZSBncmFudGVkIGxvb2t1cElkIGlzIDJcclxuICAgICAgY2FzZSB0b1N0cmluZyhnb29kQ2F1c2VOb3RHcmFudGVkQWN0aW9uSWQpOlxyXG4gICAgICAgIHRoaXMub3Blbkdvb2RDYXVzZU5vdEdyYW50ZWREaWFsb2coZ2V0KHRoaXMucGFyYW1zLCAnZGF0YScpKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSB0b1N0cmluZyhyZVNjaGVkdWxlQ29uZmVyZW5jZUJ5UGhvbmVBY3Rpb25JZCk6XHJcbiAgICAgICAgdGhpcy5vcGVuUmVTY2hlZHVsZUNhbGxCYWNrRGlhbG9nKGdldCh0aGlzLnBhcmFtcywgJ2RhdGEnKSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgdG9TdHJpbmcocmVjb3JkT3V0cmVhY2hBY3Rpb25JZCk6XHJcbiAgICAgICAgdGhpcy5vcGVuT3V0cmVhY2hEaWFsb2coZ2V0KHRoaXMucGFyYW1zLCAnZGF0YScpKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSB0b1N0cmluZyhyZUFzc2lnbkNvbmZlcmVuY2VDYXRlZ29yeUFjdGlvbklkKTpcclxuICAgICAgICB0aGlzLm9wZW5SZUFzc2lnbkRpYWxvZyhnZXQodGhpcy5wYXJhbXMsICdkYXRhJykpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIHRvU3RyaW5nKGNsaWVudEZvbGxvd1VwQWN0aW9uSWQpOlxyXG4gICAgICAgIHRoaXMub3BlbkNsaWVudEZvbGxvd3VwRGFpbG9nKGdldCh0aGlzLnBhcmFtcywgJ2RhdGEnKSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgdG9TdHJpbmcod2l0aGRyYXdBY3Rpb25JZCk6XHJcbiAgICAgICAgdGhpcy5vcGVud2l0aGRyYXdEYWlsb2coZ2V0KHRoaXMucGFyYW1zLCAnZGF0YScpKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSB0b1N0cmluZyhjYXNlU3VtbWFyeUlkKTpcclxuICAgICAgICB0aGlzLm9wZW5DYXNlc3VtbWFyeShnZXQodGhpcy5wYXJhbXMsICdkYXRhJykpO1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICB9XHJcbiAgb3BlbkNhc2VzdW1tYXJ5KGl0ZW06IFRlbGVwaG9uZU9yU2V0dGxlZENvbmZlcmVuY2VXb3JrTGlzdEl0ZW1Nb2RlbCkge1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgnL2Nhc2Utc3VtbWFyeS8nICsgaXRlbT8uY21zQ2FzZUlkKTtcclxuICB9XHJcbiAgb3BlbndpdGhkcmF3RGFpbG9nKGl0ZW06IFRlbGVwaG9uZU9yU2V0dGxlZENvbmZlcmVuY2VXb3JrTGlzdEl0ZW1Nb2RlbCkge1xyXG4gICAgY29uc3QgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8V2l0aGRyYXdEYWlsb2dib3hDb21wb25lbnQ+ID0gdGhpcy5kaWFsb2cub3BlbihXaXRoZHJhd0RhaWxvZ2JveENvbXBvbmVudCwge1xyXG4gICAgICB3aWR0aDogZGlhbG9nU2l6ZSxcclxuICAgICAgZGlzYWJsZUNsb3NlOiB0cnVlLFxyXG4gICAgICBkYXRhOiB7XHJcbiAgICAgICAgY29uY2lsaWF0aW9uTG9va3VwczogdGhpcy5jb25jaWxpYXRpb25Mb29rdXBzLFxyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcblxyXG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWFueVxyXG4gICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkucGlwZSh0YWtlVW50aWwodGhpcy5jb21wb25lbnREZXN0cm95ZWQpKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcbiAgICAgIGlmICghIXJlcykge1xyXG4gICAgICAgIGNvbnN0IHBheWxvYWQ6IFN1Ym1pdFJlYXNzaWduTW9kZWwgPSBuZXcgU3VibWl0UmVhc3NpZ25Nb2RlbCh7XHJcbiAgICAgICAgICAuLi5yZXMsXHJcbiAgICAgICAgICB3bFRlbGVwaG9uZVNldHRsZWRJZDogZ2V0KGl0ZW0sICd3bFRlbGVwaG9uZVNldHRsZWRJZCcpLFxyXG4gICAgICAgICAgYWN0aW9uSWQ6IHdpdGhkcmF3QWN0aW9uSWQsXHJcblxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMudGVsZXBob25lT3JTZXR0bGVkQ29uZmVyZW5jZVdvcmtMaXN0U2VydmljZS5kaXNwYXRjaFNhdmVSZWFzc2lnbihwYXlsb2FkKTtcclxuXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb3BlbkNsaWVudEZvbGxvd3VwRGFpbG9nKGl0ZW06IFRlbGVwaG9uZU9yU2V0dGxlZENvbmZlcmVuY2VXb3JrTGlzdEl0ZW1Nb2RlbCkge1xyXG4gICAgY29uc3QgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8Q2xpZW50Rm9sbG93dXBEYWlsb2dib3hDb21wb25lbnQ+ID0gdGhpcy5kaWFsb2cub3BlbihDbGllbnRGb2xsb3d1cERhaWxvZ2JveENvbXBvbmVudCwge1xyXG4gICAgICB3aWR0aDogZGlhbG9nU2l6ZSxcclxuICAgICAgZGlzYWJsZUNsb3NlOiB0cnVlLFxyXG4gICAgICBkYXRhOiB7XHJcbiAgICAgICAgY29uY2lsaWF0aW9uTG9va3VwczogdGhpcy5jb25jaWxpYXRpb25Mb29rdXBzLFxyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcblxyXG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWFueVxyXG4gICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkucGlwZSh0YWtlVW50aWwodGhpcy5jb21wb25lbnREZXN0cm95ZWQpKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcbiAgICAgIGlmICghIXJlcykge1xyXG4gICAgICAgIGNvbnN0IHBheWxvYWQ6IFN1Ym1pdFJlYXNzaWduTW9kZWwgPSBuZXcgU3VibWl0UmVhc3NpZ25Nb2RlbCh7XHJcbiAgICAgICAgICAuLi5yZXMsXHJcbiAgICAgICAgICB3bFRlbGVwaG9uZVNldHRsZWRJZDogZ2V0KGl0ZW0sICd3bFRlbGVwaG9uZVNldHRsZWRJZCcpLFxyXG4gICAgICAgICAgYWN0aW9uSWQ6IGNsaWVudEZvbGxvd1VwQWN0aW9uSWQsXHJcblxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMudGVsZXBob25lT3JTZXR0bGVkQ29uZmVyZW5jZVdvcmtMaXN0U2VydmljZS5kaXNwYXRjaFNhdmVSZWFzc2lnbihwYXlsb2FkKTtcclxuXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb3BlbkFzc2lnbWVudFN0aWxsQWN0aXZlRGlhbG9nKGl0ZW06IFRlbGVwaG9uZU9yU2V0dGxlZENvbmZlcmVuY2VXb3JrTGlzdEl0ZW1Nb2RlbCkge1xyXG4gICAgY29uc3QgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8QXNzaWdubWVudHNTdGlsbEFjdGl2ZURpYWxvZ2JveENvbXBvbmVudD4gPSB0aGlzLmRpYWxvZy5vcGVuKEFzc2lnbm1lbnRzU3RpbGxBY3RpdmVEaWFsb2dib3hDb21wb25lbnQsIHtcclxuICAgICAgd2lkdGg6IGRpYWxvZ1NpemUsXHJcbiAgICAgIGRpc2FibGVDbG9zZTogdHJ1ZSxcclxuICAgICAgZGF0YToge1xyXG4gICAgICAgIGNvbmNpbGlhdGlvbkxvb2t1cHM6IHRoaXMuY29uY2lsaWF0aW9uTG9va3VwcyxcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG5cclxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1hbnlcclxuICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnBpcGUodGFrZVVudGlsKHRoaXMuY29tcG9uZW50RGVzdHJveWVkKSkuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuICAgICAgaWYgKHJlcz8uYXNzaWdubWVudHNTdGlsbEFjdGl2ZSkge1xyXG4gICAgICAgIC8vcmVzdGFydCB0aW1la2VlcGluZ1xyXG5cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gb3BlbkFwcG9pbnRtZW50RGlhbG9nKHRoaXMuZGlhbG9nLCBpdGVtPy5hcHBvaW50bWVudElkKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBvcGVuUmVBc3NpZ25EaWFsb2coaXRlbTogVGVsZXBob25lT3JTZXR0bGVkQ29uZmVyZW5jZVdvcmtMaXN0SXRlbU1vZGVsKSB7XHJcbiAgICBjb25zdCBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxSZUFzc2lnbkRhaWxvZ2JveENvbXBvbmVudD4gPSB0aGlzLmRpYWxvZy5vcGVuKFJlQXNzaWduRGFpbG9nYm94Q29tcG9uZW50LCB7XHJcbiAgICAgIHdpZHRoOiBkaWFsb2dTaXplLFxyXG4gICAgICBkaXNhYmxlQ2xvc2U6IHRydWUsXHJcbiAgICAgIGRhdGE6IHtcclxuICAgICAgICBjb25jaWxpYXRpb25Mb29rdXBzOiB0aGlzLmNvbmNpbGlhdGlvbkxvb2t1cHMsXHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuXHJcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tYW55XHJcbiAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5waXBlKHRha2VVbnRpbCh0aGlzLmNvbXBvbmVudERlc3Ryb3llZCkpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcclxuICAgICAgaWYgKCEhcmVzKSB7XHJcbiAgICAgICAgY29uc3QgcGF5bG9hZDogU3VibWl0UmVhc3NpZ25Nb2RlbCA9IG5ldyBTdWJtaXRSZWFzc2lnbk1vZGVsKHtcclxuICAgICAgICAgIC4uLnJlcyxcclxuICAgICAgICAgIHdsVGVsZXBob25lU2V0dGxlZElkOiBnZXQoaXRlbSwgJ3dsVGVsZXBob25lU2V0dGxlZElkJyksXHJcbiAgICAgICAgICBhY3Rpb25JZDogcmVBc3NpZ25Db25mZXJlbmNlQ2F0ZWdvcnlBY3Rpb25JZCxcclxuXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy50ZWxlcGhvbmVPclNldHRsZWRDb25mZXJlbmNlV29ya0xpc3RTZXJ2aWNlLmRpc3BhdGNoU2F2ZVJlYXNzaWduKHBheWxvYWQpO1xyXG5cclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBvcGVuUmVTY2hlZHVsZUNhbGxCYWNrRGlhbG9nKGl0ZW06IFRlbGVwaG9uZU9yU2V0dGxlZENvbmZlcmVuY2VXb3JrTGlzdEl0ZW1Nb2RlbCkge1xyXG4gICAgY29uc3QgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8UmVTY2hlZHVsZUNhbGxCYWNrQWN0aW9uQ29tcG9uZW50PiA9IHRoaXMuZGlhbG9nPy5vcGVuKFJlU2NoZWR1bGVDYWxsQmFja0FjdGlvbkNvbXBvbmVudCwge1xyXG4gICAgICB3aWR0aDogZGlhbG9nU2l6ZSxcclxuICAgICAgZGlzYWJsZUNsb3NlOiB0cnVlLFxyXG4gICAgICBkYXRhOiB7XHJcbiAgICAgICAgY29uY2lsaWF0aW9uTG9va3VwczogdGhpcy5jb25jaWxpYXRpb25Mb29rdXBzLFxyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcblxyXG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWFueVxyXG4gICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkucGlwZSh0YWtlVW50aWwodGhpcy5jb21wb25lbnREZXN0cm95ZWQpKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcbiAgICAgIGlmICghIXJlcykge1xyXG4gICAgICAgIGNvbnN0IHBheWxvYWQ6IFNhdmVTY2hlZHVsaW5nQ2FsbEJhY2tNb2RlbCA9IG5ldyBTYXZlU2NoZWR1bGluZ0NhbGxCYWNrTW9kZWwoe1xyXG4gICAgICAgICAgLi4ucmVzLFxyXG4gICAgICAgICAgd2xUZWxlcGhvbmVTZXR0bGVkSWQ6IGdldChpdGVtLCAnd2xUZWxlcGhvbmVTZXR0bGVkSWQnKSxcclxuICAgICAgICAgIGFjdGlvbklkOiByZVNjaGVkdWxlQ29uZmVyZW5jZUJ5UGhvbmVBY3Rpb25JZCxcclxuXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMudGVsZXBob25lT3JTZXR0bGVkQ29uZmVyZW5jZVdvcmtMaXN0U2VydmljZS5kaXNwYXRjaFNhdmVTY2hlZHVsaW5nQ2FsbEJhY2tEZXRhaWxEZXRhaWxzKHBheWxvYWQpXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb3Blbk91dHJlYWNoRGlhbG9nKGl0ZW06IFRlbGVwaG9uZU9yU2V0dGxlZENvbmZlcmVuY2VXb3JrTGlzdEl0ZW1Nb2RlbCkge1xyXG4gICAgY29uc3QgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8UmVjb3JkT3V0cmVhY2hkaWFsb2dib3hDb21wb25lbnQ+ID0gdGhpcy5kaWFsb2c/Lm9wZW4oUmVjb3JkT3V0cmVhY2hkaWFsb2dib3hDb21wb25lbnQsIHtcclxuICAgICAgd2lkdGg6IHJlY29yZE91dHJlYWNoZGlhbG9nU2l6ZSxcclxuICAgICAgZGlzYWJsZUNsb3NlOiB0cnVlLFxyXG4gICAgICBkYXRhOiBpdGVtXHJcbiAgICB9KTtcclxuXHJcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tYW55XHJcbiAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5waXBlKHRha2VVbnRpbCh0aGlzLmNvbXBvbmVudERlc3Ryb3llZCkpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcclxuICAgICAgaWYgKCEhcmVzKSB7XHJcbiAgICAgICAgY29uc3QgcGF5bG9hZDogU2F2ZU91dHJlYWNoTW9kZWwgPSBuZXcgU2F2ZU91dHJlYWNoTW9kZWwoe1xyXG4gICAgICAgICAgLi4ucmVzLFxyXG4gICAgICAgICAgd2xUZWxlcGhvbmVTZXR0bGVkSWQ6IGdldChpdGVtLCAnd2xUZWxlcGhvbmVTZXR0bGVkSWQnKSxcclxuICAgICAgICAgIGFjdGlvbklkOiByZWNvcmRPdXRyZWFjaEFjdGlvbklkLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMudGVsZXBob25lT3JTZXR0bGVkQ29uZmVyZW5jZVdvcmtMaXN0U2VydmljZS5kaXNwYXRjaFNhdmVPdXRyZWFjaFdvcmtsaXN0RGV0YWlsRGV0YWlscyhwYXlsb2FkKVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG9wZW5Hb29kQ2F1c2VHcmFudGVkRGlhbG9nKGl0ZW06IFRlbGVwaG9uZU9yU2V0dGxlZENvbmZlcmVuY2VXb3JrTGlzdEl0ZW1Nb2RlbCk6IHZvaWQge1xyXG4gICAgY29uc3QgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8R29vZENhdXNlR3JhbnRlZEFjdGlvbkNvbXBvbmVudD4gPSB0aGlzLmRpYWxvZy5vcGVuKEdvb2RDYXVzZUdyYW50ZWRBY3Rpb25Db21wb25lbnQsIHtcclxuICAgICAgd2lkdGg6IGRpYWxvZ1NpemUsXHJcbiAgICAgIGRpc2FibGVDbG9zZTogdHJ1ZSxcclxuICAgICAgZGF0YToge1xyXG4gICAgICAgIGNvbmNpbGlhdGlvbkxvb2t1cHM6IHRoaXMuY29uY2lsaWF0aW9uTG9va3VwcyxcclxuICAgICAgICBzaG93SW5QZXJzb246IGZhbHNlLFxyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5waXBlKHRha2VVbnRpbCh0aGlzLmNvbXBvbmVudERlc3Ryb3llZCkpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcclxuICAgICAgaWYgKHJlcykge1xyXG5cclxuICAgICAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKEdlbmVyYXRlRklBMTE4N0FMZXR0ZXJEaWFsb2dib3hDb21wb25lbnQsIHtcclxuICAgICAgICAgIHdpZHRoOiAnNTV2dycsXHJcbiAgICAgICAgICBkaXNhYmxlQ2xvc2U6IHRydWUsXHJcbiAgICAgICAgICBkYXRhOiB7XHJcbiAgICAgICAgICAgIC8vIGFzc2Vzc21lbnRJZDogdGhpcy5hc3Nlc3NtZW50SWQgfHwgZ2V0KHRoaXMuZGF0YSwgJ2VhZXBBc3Nlc3NtZW50SWQnKSxcclxuICAgICAgICAgICAgLy8gY2FzZUlkOiB0aGlzLmNhc2VJZCxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKClcclxuICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmNvbXBvbmVudERlc3Ryb3llZCkpXHJcbiAgICAgICAgICAuc3Vic2NyaWJlKChsZXR0ZXJUeXBlSWQ6IG51bWJlcikgPT4ge1xyXG4gICAgICAgICAgICBpZiAobGV0dGVyVHlwZUlkID09PSAxKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5jb25jaWxpYXRpb25Xb3JrTGlzdFNlcnZpY2UuZGlzcGF0Y2hQcmludERvY3VtZW50KHsgbGV0dGVyVHlwZTogbGV0dGVyVHlwZUlkLCBhc3Nlc3NtZW50SWQ6IGdldChpdGVtLCAnZWFlcEFzc2Vzc21lbnRJZCcpLCBDbXNDYXNlSUQ6IGdldChpdGVtLCAnY21zQ2FzZUlkJykgfSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobGV0dGVyVHlwZUlkID09PSAyKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5jb25jaWxpYXRpb25Xb3JrTGlzdFNlcnZpY2UuZGlzcGF0Y2hQcmludERvY3VtZW50KHsgbGV0dGVyVHlwZTogbGV0dGVyVHlwZUlkLCBhc3Nlc3NtZW50SWQ6IGdldChpdGVtLCAnZWFlcEFzc2Vzc21lbnRJZCcpLCBDbXNDYXNlSUQ6IGdldChpdGVtLCAnY21zQ2FzZUlkJykgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pXHJcblxyXG4gICAgICAgIGlmIChnZXQoaXRlbSwgJ29yaWdpbmFsQ2F0ZWdvcnlJZCcpID09PSBqY0FwcG9pbnRtZW50cyB8fFxyXG4gICAgICAgICAgZ2V0KGl0ZW0sICdvcmlnaW5hbENhdGVnb3J5SWQnKSA9PT0gY3NBcHBvaW50bWVudHMgfHxcclxuICAgICAgICAgIGdldChpdGVtLCAnb3JpZ2luYWxDYXRlZ29yeUlkJykgPT09IGNzQXNzaWdubWVudHMgfHxcclxuICAgICAgICAgIGdldChpdGVtLCAnb3JpZ2luYWxDYXRlZ29yeUlkJykgPT09IHRhZ0FwcG9pbnRtZW50cyB8fFxyXG4gICAgICAgICAgZ2V0KGl0ZW0sICdvcmlnaW5hbENhdGVnb3J5SWQnKSA9PT0gdGFnQXNzaWdubWVudHMgfHxcclxuICAgICAgICAgIGdldChpdGVtLCAnb3JpZ2luYWxDYXRlZ29yeUlkJykgPT09IHNwbFJlZkFwcG9pbnRtZW50cyB8fFxyXG4gICAgICAgICAgZ2V0KGl0ZW0sICdvcmlnaW5hbENhdGVnb3J5SWQnKSA9PT0gbnVsbCkge1xyXG4gICAgICAgICAgY29uc3QgcGF5bG9hZDogU2F2ZVRlbGVwaG9uZU9yU2V0dGxlZENvbmZlcmVuY2VTdGF0dXNQYXlsb2FkID0gbmV3IFNhdmVUZWxlcGhvbmVPclNldHRsZWRDb25mZXJlbmNlU3RhdHVzUGF5bG9hZCh7XHJcbiAgICAgICAgICAgIC4uLnJlcyxcclxuICAgICAgICAgICAgd2xUZWxlcGhvbmVTZXR0bGVkSWQ6IGl0ZW0ud2xUZWxlcGhvbmVTZXR0bGVkSWQsXHJcbiAgICAgICAgICAgIGFjdGlvbklkOiBnb29kQ2F1c2VHcmFudGVkQWN0aW9uSWQsXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIHRoaXMudGVsZXBob25lT3JTZXR0bGVkQ29uZmVyZW5jZVdvcmtMaXN0U2VydmljZS5kaXNwYXRjaFNhdmVTdGF0dXMocGF5bG9hZCk7XHJcbiAgICAgICAgICB0aGlzLnRhYlNlcnZpY2UuZGlzcGF0Y2hBZGRUYWIoe1xyXG4gICAgICAgICAgICB0YWJOYW1lOiAnZWEtZXAvJyArIGl0ZW0/LmNtc0Nhc2VJZCxcclxuICAgICAgICAgICAgcm91dGU6ICcvZWEtZXAvJyArIGl0ZW0/LmNtc0Nhc2VJZCxcclxuICAgICAgICAgICAgbGFiZWw6ICdBc3Nlc3NtZW50cycgKyAnIC0gJyArIGl0ZW0/LmNsaWVudE5hbWUsXHJcbiAgICAgICAgICAgIGNhbkNsb3NlOiB0cnVlLFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9lYS1lcC8nICsgaXRlbT8uY21zQ2FzZUlkXSwgeyByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlLCBzdGF0ZTogeyBjbGllbnROYW1lOiBpdGVtPy5jbGllbnROYW1lIH0gfSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGNvbnN0IHBheWxvYWQ6IFNhdmVUZWxlcGhvbmVPclNldHRsZWRDb25mZXJlbmNlU3RhdHVzUGF5bG9hZCA9IG5ldyBTYXZlVGVsZXBob25lT3JTZXR0bGVkQ29uZmVyZW5jZVN0YXR1c1BheWxvYWQoe1xyXG4gICAgICAgICAgICAuLi5yZXMsXHJcbiAgICAgICAgICAgIHdsVGVsZXBob25lU2V0dGxlZElkOiBpdGVtLndsVGVsZXBob25lU2V0dGxlZElkLFxyXG4gICAgICAgICAgICBhY3Rpb25JZDogZ29vZENhdXNlR3JhbnRlZEFjdGlvbklkLFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICB0aGlzLnRlbGVwaG9uZU9yU2V0dGxlZENvbmZlcmVuY2VXb3JrTGlzdFNlcnZpY2UuZGlzcGF0Y2hTYXZlU3RhdHVzKHBheWxvYWQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzdWJtaXRCYXRjaFBvb2xBcHBvaW50bWVudChpdGVtOiBUZWxlcGhvbmVPclNldHRsZWRDb25mZXJlbmNlV29ya0xpc3RJdGVtTW9kZWwsIGFwcG9pbnRtZW50TllDV0FZY29kZTogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBwYXlsb2FkOiBTdWJtaXRCYXRjaFBvb2xBcHBvaW50bWVudE1vZGVsID0gbmV3IFN1Ym1pdEJhdGNoUG9vbEFwcG9pbnRtZW50TW9kZWwoe1xyXG5cclxuICAgICAgY2FzZUlkOiBpdGVtPy5jbXNDYXNlSWQsXHJcbiAgICAgIHNpdGVJZDogZ2V0KGl0ZW0sICdzbVNpdGVJZCcpLFxyXG4gICAgICBhcHBvaW50bWVudElkOiBpdGVtPy5hcHBvaW50bWVudElkLFxyXG4gICAgICBlYWVwQXNzZXNzbWVudElkOiBnZXQoaXRlbSwgJ2VhZXBBc3Nlc3NtZW50SWQnKSxcclxuICAgICAgd2xUZWxlcGhvbmVTZXR0bGVkSWQ6IGdldChpdGVtLCAnd2xUZWxlcGhvbmVTZXR0bGVkSWQnKSxcclxuICAgICAgYXBwb2ludG1lbnROWUNXQVljb2RlOiBhcHBvaW50bWVudE5ZQ1dBWWNvZGUsXHJcbiAgICB9KTtcclxuICAgIHRoaXMuY29uY2lsaWF0aW9uV29ya0xpc3RTZXJ2aWNlLmRpc3BhdGNoU3VibWl0QmF0Y2hQb29sQXBwb2ludG1lbnQocGF5bG9hZCk7XHJcbiAgfVxyXG5cclxuICBvcGVuR29vZENhdXNlTm90R3JhbnRlZERpYWxvZyhpdGVtOiBUZWxlcGhvbmVPclNldHRsZWRDb25mZXJlbmNlV29ya0xpc3RJdGVtTW9kZWwpOiB2b2lkIHtcclxuICAgIGNvbnN0IGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPEdvb2RDYXVzZU5vdEdyYW50ZWRBY3Rpb25Db21wb25lbnQ+ID0gdGhpcy5kaWFsb2c/Lm9wZW4oR29vZENhdXNlTm90R3JhbnRlZEFjdGlvbkNvbXBvbmVudCwge1xyXG4gICAgICB3aWR0aDogZGlhbG9nU2l6ZSxcclxuICAgICAgZGlzYWJsZUNsb3NlOiB0cnVlLFxyXG4gICAgICBkYXRhOiB7XHJcbiAgICAgICAgY29uY2lsaWF0aW9uTG9va3VwczogdGhpcy5jb25jaWxpYXRpb25Mb29rdXBzLFxyXG4gICAgICAgIGRhdGE6IGl0ZW1cclxuICAgICAgfSxcclxuICAgIH0pO1xyXG5cclxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1hbnlcclxuICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnBpcGUodGFrZVVudGlsKHRoaXMuY29tcG9uZW50RGVzdHJveWVkKSkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICBpZiAoISFyZXMpIHtcclxuICAgICAgICB0aGlzLnRlbGVwaG9uZU9yU2V0dGxlZENvbmZlcmVuY2VXb3JrTGlzdFNlcnZpY2UuZGlzcGF0Y2hTYXZlU3RhdHVzKG5ldyBTYXZlVGVsZXBob25lT3JTZXR0bGVkQ29uZmVyZW5jZVN0YXR1c1BheWxvYWQoe1xyXG4gICAgICAgICAgLi4ucmVzLFxyXG4gICAgICAgICAgd2xUZWxlcGhvbmVTZXR0bGVkSWQ6IGdldChpdGVtLCAnd2xUZWxlcGhvbmVTZXR0bGVkSWQnKSxcclxuICAgICAgICAgIGFjdGlvbklkOiBnb29kQ2F1c2VOb3RHcmFudGVkQWN0aW9uSWQsXHJcbiAgICAgICAgfSkpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGFmdGVyT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgLy9cclxuICB9XHJcblxyXG4gIG9wZW5ZZXNOb0NvbmZpcm1hdGlvbkRpYWxvZyhwYXlsb2FkOiBTYXZlVGVsZXBob25lT3JTZXR0bGVkQ29uZmVyZW5jZVN0YXR1c1BheWxvYWQsIGl0ZW06IFRlbGVwaG9uZU9yU2V0dGxlZENvbmZlcmVuY2VXb3JrTGlzdEl0ZW1Nb2RlbCk6IHZvaWQge1xyXG4gICAgY29uc3QgY29uZmlybURpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPFllc05vQ29uZmlybWF0aW9uRGlhbG9nQ29tcG9uZW50PiA9IHRoaXMuZGlhbG9nLm9wZW4oWWVzTm9Db25maXJtYXRpb25EaWFsb2dDb21wb25lbnQsIHtcclxuICAgICAgd2lkdGg6IGRpYWxvZ1NpemUsXHJcbiAgICAgIGRpc2FibGVDbG9zZTogdHJ1ZSxcclxuICAgICAgZGF0YToge1xyXG4gICAgICAgIHllc0xhYmVsOiB5ZXNMYWJlbCxcclxuICAgICAgICBub0xhYmVsOiBub0xhYmVsLFxyXG4gICAgICAgIGhlYWRlcjogY29uZmlybUhlYWRlcixcclxuICAgICAgICBtZXNzYWdlOiBnb29kQ2F1c2VDb25maXJtTWVzc2FnZSxcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG5cclxuICAgIGNvbmZpcm1EaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5waXBlKHRha2VVbnRpbCh0aGlzLmNvbXBvbmVudERlc3Ryb3llZCkpLnN1YnNjcmliZSgocmVzOiBib29sZWFuKSA9PiB7XHJcbiAgICAgIGlmICghIXJlcykge1xyXG4gICAgICAgIHRoaXMudGVsZXBob25lT3JTZXR0bGVkQ29uZmVyZW5jZVdvcmtMaXN0U2VydmljZS5kaXNwYXRjaFNhdmVTdGF0dXMobmV3IFNhdmVUZWxlcGhvbmVPclNldHRsZWRDb25mZXJlbmNlU3RhdHVzUGF5bG9hZCh7XHJcbiAgICAgICAgICAuLi5wYXlsb2FkLFxyXG4gICAgICAgICAgY29uZmlybVllc05vOiB0cnVlLFxyXG4gICAgICAgIH0pKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnRlbGVwaG9uZU9yU2V0dGxlZENvbmZlcmVuY2VXb3JrTGlzdFNlcnZpY2UuZGlzcGF0Y2hTYXZlU3RhdHVzKG5ldyBTYXZlVGVsZXBob25lT3JTZXR0bGVkQ29uZmVyZW5jZVN0YXR1c1BheWxvYWQoe1xyXG4gICAgICAgICAgLi4ucGF5bG9hZCxcclxuICAgICAgICAgIGNvbmZpcm1ZZXNObzogZmFsc2UsXHJcbiAgICAgICAgfSkpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIiwiPHBydXRlY2gtY29udGV4dC1tZW51IFttZW51SXRlbXNdPVwibWVudUl0ZW1zXCIgKG1lbnVBY3Rpb24pPVwiZG9BY3Rpb24oJGV2ZW50KVwiPjwvcHJ1dGVjaC1jb250ZXh0LW1lbnU+XHJcbiJdfQ==
|
445
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1tZW51LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3BydXRlY2gvY29tcGxpYW5jZS9zcmMvbGliL3RlbGVwaG9uZS1zZXR0bGVkLWNvbmZlcmVuY2UvY29tcG9uZW50cy9jb250ZXh0LW1lbnUvY29udGV4dC1tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3BydXRlY2gvY29tcGxpYW5jZS9zcmMvbGliL3RlbGVwaG9uZS1zZXR0bGVkLWNvbmZlcmVuY2UvY29tcG9uZW50cy9jb250ZXh0LW1lbnUvY29udGV4dC1tZW51LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFJM0UsT0FBTyxFQUFFLGlCQUFpQixFQUE4RCxNQUFNLHFCQUFxQixDQUFDO0FBRXBILE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQzFELE9BQU8sRUFBRSxNQUFNLElBQUksT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTlELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUd2RCxPQUFPLEVBQUUsVUFBVSxFQUFFLHdCQUF3QixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDOUYsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sMEZBQTBGLENBQUM7QUFHM0ksT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sa0dBQWtHLENBQUM7QUFDdEosT0FBTyxFQUFFLDZDQUE2QyxFQUFFLE1BQU0scURBQXFELENBQUM7QUFDcEgsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDBEQUEwRCxDQUFD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SUFDSixDQUFDO0lBRUQsMkJBQTJCLENBQUMsT0FBc0QsRUFBRSxJQUFtRDtRQUNySSxNQUFNLGdCQUFnQixHQUFtRCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxnQ0FBZ0MsRUFBRTtZQUMxSCxLQUFLLEVBQUUsVUFBVTtZQUNqQixZQUFZLEVBQUUsSUFBSTtZQUNsQixJQUFJLEVBQUU7Z0JBQ0osUUFBUSxFQUFFLFFBQVE7Z0JBQ2xCLE9BQU8sRUFBRSxPQUFPO2dCQUNoQixNQUFNLEVBQUUsYUFBYTtnQkFDckIsT0FBTyxFQUFFLHVCQUF1QjthQUNqQztTQUNGLENBQUMsQ0FBQztRQUVILGdCQUFnQixDQUFDLFdBQVcsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFZLEVBQUUsRUFBRTtZQUNqRyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ1QsSUFBSSxDQUFDLDJDQUEyQyxDQUFDLGtCQUFrQixDQUFDLElBQUksNkNBQTZDLENBQUM7b0JBQ3BILEdBQUcsT0FBTztvQkFDVixZQUFZLEVBQUUsSUFBSTtpQkFDbkIsQ0FBQyxDQUFDLENBQUM7YUFDTDtpQkFBTTtnQkFDTCxJQUFJLENBQUMsMkNBQTJDLENBQUMsa0JBQWtCLENBQUMsSUFBSSw2Q0FBNkMsQ0FBQztvQkFDcEgsR0FBRyxPQUFPO29CQUNWLFlBQVksRUFBRSxLQUFLO2lCQUNwQixDQUFDLENBQUMsQ0FBQzthQUNMO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzs2SUF6YlUsK0NBQStDO2lJQUEvQywrQ0FBK0MsNkZDNUQ1RCwrR0FDQTs0RkQyRGEsK0NBQStDO2tCQU4zRCxTQUFTOytCQUNFLGdDQUFnQyxtQkFHekIsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgTWF0RGlhbG9nLCBNYXREaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBBZ0dyaWRBbmd1bGFyIH0gZnJvbSAnQGFnLWdyaWQtY29tbXVuaXR5L2FuZ3VsYXInO1xyXG5pbXBvcnQgeyBBYnN0cmFjdENvbXBvbmVudCwgQ29udGV4dE1lbnVBY3Rpb25JdGVtLCBDb250ZXh0TWVudUl0ZW0sIExvb2t1cCwgVGFiU2VydmljZSB9IGZyb20gJ0BwcnV0ZWNoL2NvbXBvbmVudHMnO1xyXG5pbXBvcnQgeyBVc2VyLCBVc2VyU2VydmljZSB9IGZyb20gJ0BwcnV0ZWNoL2lkZW50aXR5LWNsaWVudCc7XHJcbmltcG9ydCB7IGZpbHRlciwgZmluZCwgZ2V0LCBtYXAsIHRvU3RyaW5nIH0gZnJvbSAnbG9kYXNoJztcclxuaW1wb3J0IHsgZmlsdGVyIGFzIHJGaWx0ZXIsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmltcG9ydCB7IG1lbnVJdGVtcyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9tZW51LWl0ZW1zJztcclxuaW1wb3J0IHsgVGVsZXBob25lT3JTZXR0bGVkQ29uZmVyZW5jZVdvcmtMaXN0SXRlbU1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3RlbGVwaG9uZS1vci1zZXR0bGVkLWNvbmZlcmVuY2Utd29yay1saXN0LWl0ZW0ubW9kZWwnO1xyXG5pbXBvcnQgeyBUZWxlcGhvbmVPclNldHRsZWRDb25mZXJlbmNlV29ya0xpc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdGVsZXBob25lLW9yLXNldHRsZWQtY29uZmVyZW5jZS1saXN0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBkaWFsb2dTaXplLCByZWNvcmRPdXRyZWFjaGRpYWxvZ1NpemUgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvY29uc3RhbnRzL2RpYWdsb2ctc2l6ZSc7XHJcbmltcG9ydCB7IEdvb2RDYXVzZUdyYW50ZWRBY3Rpb25Db21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvY29tcG9uZW50cy9nb29kLWNhdXNlLWdyYW50ZWQtYWN0aW9uL2dvb2QtY2F1c2UtZ3JhbnRlZC1hY3Rpb24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgTG9va3Vwc1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvbW9kdWxlcy9jb25jaWxpYXRpb24tbG9va3Vwcy9zZXJ2aWNlcy9sb29rdXBzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDb25jaWxpYXRpb25Mb29rdXBzIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL21vZGVscy9jb25jaWxpYXRpb24tbG9va3Vwcy5tb2RlbCc7XHJcbmltcG9ydCB7IEdvb2RDYXVzZU5vdEdyYW50ZWRBY3Rpb25Db21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvY29tcG9uZW50cy9nb29kLWNhdXNlLW5vdC1ncmFudGVkLWFjdGlvbi9nb29kLWNhdXNlLW5vdC1ncmFudGVkLWFjdGlvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTYXZlVGVsZXBob25lT3JTZXR0bGVkQ29uZmVyZW5jZVN0YXR1c1BheWxvYWQgfSBmcm9tICcuLi8uLi9tb2RlbHMvc2F2ZS1jb25jaWxpYXRpb24tc3RhdHVzLXBheWxvYWQubW9kZWwnO1xyXG5pbXBvcnQgeyBhY3Rpb25zTGFiZWwgfSBmcm9tICcuLi8uLi8uLi9wcmUtY29uY2lsaWF0aW9uLXdvcmstbGlzdC9jb25zdGFudHMvbWVudS1pdGVtcyc7XHJcbmltcG9ydCB7IFllc05vQ29uZmlybWF0aW9uRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2NvbXBvbmVudHMveWVzLW5vLWNvbmZpcm1hdGlvbi1kaWFsb2cveWVzLW5vLWNvbmZpcm1hdGlvbi1kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgY29uZmlybUhlYWRlciwgZ29vZENhdXNlQ29uZmlybU1lc3NhZ2UsIG5vTGFiZWwsIHllc0xhYmVsIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL3llcy1uby1jb25maXJtLWRlZmF1bHRzJztcclxuaW1wb3J0IHtcclxuICBjc0FwcG9pbnRtZW50cyxcclxuICBjc0Fzc2lnbm1lbnRzLFxyXG4gIGpjQXBwb2ludG1lbnRzLFxyXG4gIHNwbFJlZkFwcG9pbnRtZW50cyxcclxuICB0YWdBcHBvaW50bWVudHMsXHJcbiAgdGFnQXNzaWdubWVudHNcclxufSBmcm9tICcuLi8uLi8uLi9jb25jaWxpYXRpb24tYXBwb2ludG1lbnQtd29yay1saXN0L2NvbnN0YW50cy9vcmdpbmFsLWNhdGVnb3J5LWxvb2t1cC10eXBlcy5jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBTYXZlU2NoZWR1bGluZ0NhbGxCYWNrTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvc2F2ZS1zY2hlZHVsaW5nLWNhbGwtYmFjay5tb2RlbCc7XHJcbmltcG9ydCB7IFJlU2NoZWR1bGVDYWxsQmFja0FjdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uL3JlLXNjaGVkdWxlLWNhbGwtYmFjay1hY3Rpb24vcmUtc2NoZWR1bGUtY2FsbC1iYWNrLWFjdGlvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTYXZlT3V0cmVhY2hNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9zYXZlLW91dHJlYWNoLW1vZGVsJztcclxuaW1wb3J0IHsgUmVBc3NpZ25EYWlsb2dib3hDb21wb25lbnQgfSBmcm9tICcuLi9yZS1hc3NpZ24tZGFpbG9nYm94L3JlLWFzc2lnbi1kYWlsb2dib3guY29tcG9uZW50JztcclxuaW1wb3J0IHsgU3VibWl0UmVhc3NpZ25Nb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9zdWJtaXQtcmUtYXNzaWduLWZyb21tb2RlbCc7XHJcbmltcG9ydCB7IEFzc2lnbm1lbnRzU3RpbGxBY3RpdmVEaWFsb2dib3hDb21wb25lbnQgfSBmcm9tICcuLi9hc3NpZ25tZW50cy1zdGlsbC1hY3RpdmUtZGlhbG9nYm94L2Fzc2lnbm1lbnRzLXN0aWxsLWFjdGl2ZS1kaWFsb2dib3guY29tcG9uZW50JztcclxuaW1wb3J0IHsgb3BlbkFwcG9pbnRtZW50RGlhbG9nIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2Z1bmN0aW9ucy9vcGVuLWFwcG9pbnRtZW50JztcclxuaW1wb3J0IHtcclxuICBjbGllbnRGb2xsb3dVcEFjdGlvbklkLFxyXG4gIGdvb2RDYXVzZUdyYW50ZWRBY3Rpb25JZCxcclxuICBnb29kQ2F1c2VOb3RHcmFudGVkQWN0aW9uSWQsXHJcbiAgcmVBc3NpZ25Db25mZXJlbmNlQ2F0ZWdvcnlBY3Rpb25JZCxcclxuICByZWNvcmRPdXRyZWFjaEFjdGlvbklkLFxyXG4gIHJlU2NoZWR1bGVDb25mZXJlbmNlQnlQaG9uZUFjdGlvbklkLFxyXG4gIHdpdGhkcmF3QWN0aW9uSWQsXHJcbiAgY2FzZVN1bW1hcnlJZFxyXG59IGZyb20gJy4uLy4uL2NvbnN0YW50cy9tZW51LWFjdGlvbi1kZWZzJztcclxuaW1wb3J0IHsgQ2xpZW50Rm9sbG93dXBEYWlsb2dib3hDb21wb25lbnQgfSBmcm9tICcuLi9jbGllbnQtZm9sbG93dXAtZGFpbG9nYm94L2NsaWVudC1mb2xsb3d1cC1kYWlsb2dib3guY29tcG9uZW50JztcclxuaW1wb3J0IHsgV2l0aGRyYXdEYWlsb2dib3hDb21wb25lbnQgfSBmcm9tICcuLi93aXRoZHJhdy1kYWlsb2dib3gvd2l0aGRyYXctZGFpbG9nYm94LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFJlY29yZE91dHJlYWNoZGlhbG9nYm94Q29tcG9uZW50IH0gZnJvbSAnLi4vcmVjb3JkLW91dHJlYWNoZGlhbG9nYm94L3JlY29yZC1vdXRyZWFjaGRpYWxvZ2JveC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTdWJtaXRCYXRjaFBvb2xBcHBvaW50bWVudE1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vY29uY2lsaWF0aW9uLWFwcG9pbnRtZW50LXdvcmstbGlzdC9tb2RlbHMvc3VibWl0LWJhdGNoLXBvb2wtYXBwb2ludG1lbnQubW9kZWwnO1xyXG5pbXBvcnQgeyBDb25jaWxpYXRpb25BcHBvaW50bWVudFdvcmtMaXN0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2NvbmNpbGlhdGlvbi1hcHBvaW50bWVudC13b3JrLWxpc3Qvc2VydmljZXMvY29uY2lsaWF0aW9uLWFwcG9pbnRtZW50LXdvcmstbGlzdC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgR2VuZXJhdGVGSUExMTg3QUxldHRlckRpYWxvZ2JveENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9jb21wb25lbnRzL2dlbmVyYXRlLWZpYTExODctYWxldHRlci1kaWFsb2dib3gvZ2VuZXJhdGUtZmlhMTE4Ny1hbGV0dGVyLWRpYWxvZ2JveC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyB0ZWxlQ29uZmVyZW5jZUlkIH0gZnJvbSAnLi4vLi4vLi4vY29uY2lsaWF0aW9uLWFwcG9pbnRtZW50LXdvcmstbGlzdC9jb25zdGFudHMvd29ya2xpc3RfaWQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdwcnV0ZWNoLXRlbGVwaG9uZS1jb250ZXh0LW1lbnUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jb250ZXh0LW1lbnUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2NvbnRleHQtbWVudS5jb21wb25lbnQuY3NzJ10sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUZWxlcGhvbmVPclNldHRsZWRDb25mZXJlbmNDb250ZXh0TWVudUNvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgbWVudUl0ZW1zOiBDb250ZXh0TWVudUl0ZW1bXSA9IG1lbnVJdGVtcztcclxuICBwYXJhbXM6IEFnR3JpZEFuZ3VsYXI7XHJcbiAgY29uY2lsaWF0aW9uTG9va3VwczogQ29uY2lsaWF0aW9uTG9va3VwcztcclxuICBhY3Rpb25zOiBMb29rdXBbXTtcclxuICB1c2VyOiBVc2VyO1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZGlhbG9nOiBNYXREaWFsb2csXHJcbiAgICBwcml2YXRlIGxvb2t1cHNTZXJ2aWNlOiBMb29rdXBzU2VydmljZSxcclxuICAgIHByaXZhdGUgdGFiU2VydmljZTogVGFiU2VydmljZSxcclxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwcml2YXRlIHVzZXJTZXJ2aWNlOiBVc2VyU2VydmljZSxcclxuICAgIHByaXZhdGUgY29uY2lsaWF0aW9uV29ya0xpc3RTZXJ2aWNlOiBDb25jaWxpYXRpb25BcHBvaW50bWVudFdvcmtMaXN0U2VydmljZSxcclxuICAgIHByaXZhdGUgdGVsZXBob25lT3JTZXR0bGVkQ29uZmVyZW5jZVdvcmtMaXN0U2VydmljZTogVGVsZXBob25lT3JTZXR0bGVkQ29uZmVyZW5jZVdvcmtMaXN0U2VydmljZSxcclxuICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICkge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy51c2VyU2VydmljZS51c2VyLnBpcGUoXHJcbiAgICAgIHRha2VVbnRpbCh0aGlzLmNvbXBvbmVudERlc3Ryb3llZCksXHJcbiAgICAgIHJGaWx0ZXIoKHVzZXI6IFVzZXIpID0+ICEhdXNlcikpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHVzZXI6IFVzZXIpID0+IHtcclxuICAgICAgICB0aGlzLnVzZXIgPSB1c2VyO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICB0aGlzLmxvb2t1cHNTZXJ2aWNlLmxvb2t1cHMucGlwZSh0YWtlVW50aWwodGhpcy5jb21wb25lbnREZXN0cm95ZWQpKVxyXG4gICAgICAuc3Vic2NyaWJlKChsb29rdXBzOiBDb25jaWxpYXRpb25Mb29rdXBzKSA9PiB7XHJcbiAgICAgICAgdGhpcy5jb25jaWxpYXRpb25Mb29rdXBzID0gbG9va3VwcztcclxuICAgICAgfSk7XHJcbiAgICB0aGlzLnRlbGVwaG9uZU9yU2V0dGxlZENvbmZlcmVuY2VXb3JrTGlzdFNlcnZpY2UuYWN0aW9ucy5waXBlKHRha2VVbnRpbCh0aGlzLmNvbXBvbmVudERlc3Ryb3llZCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKGFjdGlvbnM6IExvb2t1cFtdKSA9PiB7XHJcbiAgICAgICAgdGhpcy5hY3Rpb25zID0gYWN0aW9ucztcclxuICAgICAgICB0aGlzLm1lbnVJdGVtcyA9IHRoaXMuZ2V0VXBkYXRlZE1lbnVJdGVtcygpO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIGFnSW5pdChwYXJhbXM6IEFnR3JpZEFuZ3VsYXIpOiB2b2lkIHtcclxuICAgIHRoaXMucGFyYW1zID0gcGFyYW1zO1xyXG4gICAgaWYgKGdldCh0aGlzLnBhcmFtcywgJ2RhdGEubGFzdEFjdGlvbklkJykgPT0gZ29vZENhdXNlTm90R3JhbnRlZEFjdGlvbklkKSB7XHJcbiAgICAgIHRoaXMubWVudUl0ZW1zID0gbWFwKHRoaXMubWVudUl0ZW1zLCAoaXRlbTogQ29udGV4dE1lbnVJdGVtKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIC4uLml0ZW0sXHJcbiAgICAgICAgICBpdGVtczogZmlsdGVyKGl0ZW0uaXRlbXMsIChhY3Rpb25JdGVtOiBDb250ZXh0TWVudUFjdGlvbkl0ZW0pID0+IGFjdGlvbkl0ZW0ucm91dGUgIT09IHRvU3RyaW5nKGdvb2RDYXVzZUdyYW50ZWRBY3Rpb25JZCkgJiYgYWN0aW9uSXRlbS5yb3V0ZSAhPT0gdG9TdHJpbmcoZ29vZENhdXNlTm90R3JhbnRlZEFjdGlvbklkKSksXHJcbiAgICAgICAgfTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBpZiAoIWdldCh0aGlzLnBhcmFtcywgJ2RhdGEuaXNHcmFudGVkJykpIHtcclxuICAgICAgdGhpcy5tZW51SXRlbXMgPSBtYXAodGhpcy5tZW51SXRlbXMsIChpdGVtOiBDb250ZXh0TWVudUl0ZW0pID0+IHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgLi4uaXRlbSwgaXRlbXM6IGZpbHRlcihpdGVtLml0ZW1zLCAoYWN0aW9uSXRlbTogQ29udGV4dE1lbnVBY3Rpb25JdGVtKSA9PiBhY3Rpb25JdGVtLnJvdXRlICE9PSB0b1N0cmluZyhnb29kQ2F1c2VHcmFudGVkQWN0aW9uSWQpJiYgYWN0aW9uSXRlbS5yb3V0ZSAhPT0gdG9TdHJpbmcoZ29vZENhdXNlTm90R3JhbnRlZEFjdGlvbklkKSksXHJcbiAgICAgICAgfTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBpZiAoIWdldCh0aGlzLnBhcmFtcywgJ2RhdGEuaXNTY2hlZHVsZScpICkge1xyXG4gICAgICB0aGlzLm1lbnVJdGVtcyA9IG1hcCh0aGlzLm1lbnVJdGVtcywgKGl0ZW06IENvbnRleHRNZW51SXRlbSkgPT4ge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAuLi5pdGVtLCBpdGVtczogZmlsdGVyKGl0ZW0uaXRlbXMsIChhY3Rpb25JdGVtOiBDb250ZXh0TWVudUFjdGlvbkl0ZW0pID0+IGFjdGlvbkl0ZW0ucm91dGUgIT09IHRvU3RyaW5nKGNsaWVudEZvbGxvd1VwQWN0aW9uSWQpJiYgYWN0aW9uSXRlbS5yb3V0ZSAhPT0gdG9TdHJpbmcod2l0aGRyYXdBY3Rpb25JZCkpLFxyXG4gICAgICAgIH07XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgaWYgKCFnZXQodGhpcy5wYXJhbXMsICdkYXRhLmlzUmVTY2hlZHVsZScpICkge1xyXG4gICAgICB0aGlzLm1lbnVJdGVtcyA9IG1hcCh0aGlzLm1lbnVJdGVtcywgKGl0ZW06IENvbnRleHRNZW51SXRlbSkgPT4ge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAuLi5pdGVtLCBpdGVtczogZmlsdGVyKGl0ZW0uaXRlbXMsIChhY3Rpb25JdGVtOiBDb250ZXh0TWVudUFjdGlvbkl0ZW0pID0+IGFjdGlvbkl0ZW0ucm91dGUgIT09IHRvU3RyaW5nKHJlU2NoZWR1bGVDb25mZXJlbmNlQnlQaG9uZUFjdGlvbklkKSksXHJcbiAgICAgICAgfTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBpZiAoIWdldCh0aGlzLnBhcmFtcywgJ2RhdGEuaXNPdXRyZWFjaCcpKSB7XHJcbiAgICAgIHRoaXMubWVudUl0ZW1zID0gbWFwKHRoaXMubWVudUl0ZW1zLCAoaXRlbTogQ29udGV4dE1lbnVJdGVtKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIC4uLml0ZW0sIGl0ZW1zOiBmaWx0ZXIoaXRlbS5pdGVtcywgKGFjdGlvbkl0ZW06IENvbnRleHRNZW51QWN0aW9uSXRlbSkgPT4gYWN0aW9uSXRlbS5yb3V0ZSAhPT0gdG9TdHJpbmcocmVjb3JkT3V0cmVhY2hBY3Rpb25JZCkpLFxyXG4gICAgICAgIH07XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgaWYgKCFnZXQodGhpcy5wYXJhbXMsICdkYXRhLmlzUmVBc3NpZ24nKSkge1xyXG4gICAgICB0aGlzLm1lbnVJdGVtcyA9IG1hcCh0aGlzLm1lbnVJdGVtcywgKGl0ZW06IENvbnRleHRNZW51SXRlbSkgPT4ge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAuLi5pdGVtLCBpdGVtczogZmlsdGVyKGl0ZW0uaXRlbXMsIChhY3Rpb25JdGVtOiBDb250ZXh0TWVudUFjdGlvbkl0ZW0pID0+IGFjdGlvbkl0ZW0ucm91dGUgIT09IHRvU3RyaW5nKHJlQXNzaWduQ29uZmVyZW5jZUNhdGVnb3J5QWN0aW9uSWQpKSxcclxuICAgICAgICB9O1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldFVwZGF0ZWRNZW51SXRlbXMoKTogQ29udGV4dE1lbnVJdGVtW10ge1xyXG4gICAgcmV0dXJuIG1hcCh0aGlzLm1lbnVJdGVtcywgKGl0ZW06IENvbnRleHRNZW51SXRlbSkgPT4ge1xyXG4gICAgICBpZiAoaXRlbS5sYWJlbCA9PT0gYWN0aW9uc0xhYmVsKSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIGxhYmVsOiBhY3Rpb25zTGFiZWwsXHJcbiAgICAgICAgICBpdGVtczogZmlsdGVyKGl0ZW0uaXRlbXMsIChhY3Rpb25JdGVtOiBDb250ZXh0TWVudUFjdGlvbkl0ZW0pID0+XHJcbiAgICAgICAgICAgICEhZmluZCh0aGlzLmFjdGlvbnMsIChhY3Rpb25Mb29rdXA6IExvb2t1cCkgPT4gdG9TdHJpbmcoYWN0aW9uTG9va3VwLmxvb2t1cElkKSA9PT0gYWN0aW9uSXRlbS5yb3V0ZSkgfHwgYWN0aW9uSXRlbS5yb3V0ZSA9PT0gdG9TdHJpbmcoY2FzZVN1bW1hcnlJZCkpLFxyXG4gICAgICAgIH07XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIGl0ZW07XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZG9BY3Rpb24oZXZlbnQ6IENvbnRleHRNZW51QWN0aW9uSXRlbSk6IHZvaWQge1xyXG4gICAgc3dpdGNoIChldmVudC5yb3V0ZSkge1xyXG4gICAgICBjYXNlIHRvU3RyaW5nKGdvb2RDYXVzZUdyYW50ZWRBY3Rpb25JZCk6XHJcbiAgICAgICAgdGhpcy5vcGVuR29vZENhdXNlR3JhbnRlZERpYWxvZyhnZXQodGhpcy5wYXJhbXMsICdkYXRhJykpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICAvLyBzdXBwb3NlIGdvb2QgY2F1c2UgZ3JhbnRlZCBsb29rdXBJZCBpcyAyXHJcbiAgICAgIGNhc2UgdG9TdHJpbmcoZ29vZENhdXNlTm90R3JhbnRlZEFjdGlvbklkKTpcclxuICAgICAgICB0aGlzLm9wZW5Hb29kQ2F1c2VOb3RHcmFudGVkRGlhbG9nKGdldCh0aGlzLnBhcmFtcywgJ2RhdGEnKSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgdG9TdHJpbmcocmVTY2hlZHVsZUNvbmZlcmVuY2VCeVBob25lQWN0aW9uSWQpOlxyXG4gICAgICAgIHRoaXMub3BlblJlU2NoZWR1bGVDYWxsQmFja0RpYWxvZyhnZXQodGhpcy5wYXJhbXMsICdkYXRhJykpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIHRvU3RyaW5nKHJlY29yZE91dHJlYWNoQWN0aW9uSWQpOlxyXG4gICAgICAgIHRoaXMub3Blbk91dHJlYWNoRGlhbG9nKGdldCh0aGlzLnBhcmFtcywgJ2RhdGEnKSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgdG9TdHJpbmcocmVBc3NpZ25Db25mZXJlbmNlQ2F0ZWdvcnlBY3Rpb25JZCk6XHJcbiAgICAgICAgdGhpcy5vcGVuUmVBc3NpZ25EaWFsb2coZ2V0KHRoaXMucGFyYW1zLCAnZGF0YScpKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSB0b1N0cmluZyhjbGllbnRGb2xsb3dVcEFjdGlvbklkKTpcclxuICAgICAgICB0aGlzLm9wZW5DbGllbnRGb2xsb3d1cERhaWxvZyhnZXQodGhpcy5wYXJhbXMsICdkYXRhJykpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIHRvU3RyaW5nKHdpdGhkcmF3QWN0aW9uSWQpOlxyXG4gICAgICAgIHRoaXMub3BlbndpdGhkcmF3RGFpbG9nKGdldCh0aGlzLnBhcmFtcywgJ2RhdGEnKSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgdG9TdHJpbmcoY2FzZVN1bW1hcnlJZCk6XHJcbiAgICAgICAgdGhpcy5vcGVuQ2FzZXN1bW1hcnkoZ2V0KHRoaXMucGFyYW1zLCAnZGF0YScpKTtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgfVxyXG4gIG9wZW5DYXNlc3VtbWFyeShpdGVtOiBUZWxlcGhvbmVPclNldHRsZWRDb25mZXJlbmNlV29ya0xpc3RJdGVtTW9kZWwpIHtcclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoJy9jYXNlLXN1bW1hcnkvJyArIGl0ZW0/LmNtc0Nhc2VJZCk7XHJcbiAgfVxyXG4gIG9wZW53aXRoZHJhd0RhaWxvZyhpdGVtOiBUZWxlcGhvbmVPclNldHRsZWRDb25mZXJlbmNlV29ya0xpc3RJdGVtTW9kZWwpIHtcclxuICAgIGNvbnN0IGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPFdpdGhkcmF3RGFpbG9nYm94Q29tcG9uZW50PiA9IHRoaXMuZGlhbG9nLm9wZW4oV2l0aGRyYXdEYWlsb2dib3hDb21wb25lbnQsIHtcclxuICAgICAgd2lkdGg6IGRpYWxvZ1NpemUsXHJcbiAgICAgIGRpc2FibGVDbG9zZTogdHJ1ZSxcclxuICAgICAgZGF0YToge1xyXG4gICAgICAgIGNvbmNpbGlhdGlvbkxvb2t1cHM6IHRoaXMuY29uY2lsaWF0aW9uTG9va3VwcyxcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG5cclxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1hbnlcclxuICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnBpcGUodGFrZVVudGlsKHRoaXMuY29tcG9uZW50RGVzdHJveWVkKSkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICBpZiAoISFyZXMpIHtcclxuICAgICAgICBjb25zdCBwYXlsb2FkOiBTdWJtaXRSZWFzc2lnbk1vZGVsID0gbmV3IFN1Ym1pdFJlYXNzaWduTW9kZWwoe1xyXG4gICAgICAgICAgLi4ucmVzLFxyXG4gICAgICAgICAgd2xUZWxlcGhvbmVTZXR0bGVkSWQ6IGdldChpdGVtLCAnd2xUZWxlcGhvbmVTZXR0bGVkSWQnKSxcclxuICAgICAgICAgIGFjdGlvbklkOiB3aXRoZHJhd0FjdGlvbklkLFxyXG5cclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLnRlbGVwaG9uZU9yU2V0dGxlZENvbmZlcmVuY2VXb3JrTGlzdFNlcnZpY2UuZGlzcGF0Y2hTYXZlUmVhc3NpZ24ocGF5bG9hZCk7XHJcblxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG9wZW5DbGllbnRGb2xsb3d1cERhaWxvZyhpdGVtOiBUZWxlcGhvbmVPclNldHRsZWRDb25mZXJlbmNlV29ya0xpc3RJdGVtTW9kZWwpIHtcclxuICAgIGNvbnN0IGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPENsaWVudEZvbGxvd3VwRGFpbG9nYm94Q29tcG9uZW50PiA9IHRoaXMuZGlhbG9nLm9wZW4oQ2xpZW50Rm9sbG93dXBEYWlsb2dib3hDb21wb25lbnQsIHtcclxuICAgICAgd2lkdGg6IGRpYWxvZ1NpemUsXHJcbiAgICAgIGRpc2FibGVDbG9zZTogdHJ1ZSxcclxuICAgICAgZGF0YToge1xyXG4gICAgICAgIGNvbmNpbGlhdGlvbkxvb2t1cHM6IHRoaXMuY29uY2lsaWF0aW9uTG9va3VwcyxcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG5cclxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1hbnlcclxuICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnBpcGUodGFrZVVudGlsKHRoaXMuY29tcG9uZW50RGVzdHJveWVkKSkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICBpZiAoISFyZXMpIHtcclxuICAgICAgICBjb25zdCBwYXlsb2FkOiBTdWJtaXRSZWFzc2lnbk1vZGVsID0gbmV3IFN1Ym1pdFJlYXNzaWduTW9kZWwoe1xyXG4gICAgICAgICAgLi4ucmVzLFxyXG4gICAgICAgICAgd2xUZWxlcGhvbmVTZXR0bGVkSWQ6IGdldChpdGVtLCAnd2xUZWxlcGhvbmVTZXR0bGVkSWQnKSxcclxuICAgICAgICAgIGFjdGlvbklkOiBjbGllbnRGb2xsb3dVcEFjdGlvbklkLFxyXG5cclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLnRlbGVwaG9uZU9yU2V0dGxlZENvbmZlcmVuY2VXb3JrTGlzdFNlcnZpY2UuZGlzcGF0Y2hTYXZlUmVhc3NpZ24ocGF5bG9hZCk7XHJcblxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG9wZW5Bc3NpZ21lbnRTdGlsbEFjdGl2ZURpYWxvZyhpdGVtOiBUZWxlcGhvbmVPclNldHRsZWRDb25mZXJlbmNlV29ya0xpc3RJdGVtTW9kZWwpIHtcclxuICAgIGNvbnN0IGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPEFzc2lnbm1lbnRzU3RpbGxBY3RpdmVEaWFsb2dib3hDb21wb25lbnQ+ID0gdGhpcy5kaWFsb2cub3BlbihBc3NpZ25tZW50c1N0aWxsQWN0aXZlRGlhbG9nYm94Q29tcG9uZW50LCB7XHJcbiAgICAgIHdpZHRoOiBkaWFsb2dTaXplLFxyXG4gICAgICBkaXNhYmxlQ2xvc2U6IHRydWUsXHJcbiAgICAgIGRhdGE6IHtcclxuICAgICAgICBjb25jaWxpYXRpb25Mb29rdXBzOiB0aGlzLmNvbmNpbGlhdGlvbkxvb2t1cHMsXHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuXHJcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tYW55XHJcbiAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5waXBlKHRha2VVbnRpbCh0aGlzLmNvbXBvbmVudERlc3Ryb3llZCkpLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcbiAgICAgIGlmIChyZXM/LmFzc2lnbm1lbnRzU3RpbGxBY3RpdmUpIHtcclxuICAgICAgICAvL3Jlc3RhcnQgdGltZWtlZXBpbmdcclxuXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIG9wZW5BcHBvaW50bWVudERpYWxvZyh0aGlzLmRpYWxvZywgaXRlbT8uYXBwb2ludG1lbnRJZCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb3BlblJlQXNzaWduRGlhbG9nKGl0ZW06IFRlbGVwaG9uZU9yU2V0dGxlZENvbmZlcmVuY2VXb3JrTGlzdEl0ZW1Nb2RlbCkge1xyXG4gICAgY29uc3QgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8UmVBc3NpZ25EYWlsb2dib3hDb21wb25lbnQ+ID0gdGhpcy5kaWFsb2cub3BlbihSZUFzc2lnbkRhaWxvZ2JveENvbXBvbmVudCwge1xyXG4gICAgICB3aWR0aDogZGlhbG9nU2l6ZSxcclxuICAgICAgZGlzYWJsZUNsb3NlOiB0cnVlLFxyXG4gICAgICBkYXRhOiB7XHJcbiAgICAgICAgY29uY2lsaWF0aW9uTG9va3VwczogdGhpcy5jb25jaWxpYXRpb25Mb29rdXBzLFxyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcblxyXG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWFueVxyXG4gICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkucGlwZSh0YWtlVW50aWwodGhpcy5jb21wb25lbnREZXN0cm95ZWQpKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcbiAgICAgIGlmICghIXJlcykge1xyXG4gICAgICAgIGNvbnN0IHBheWxvYWQ6IFN1Ym1pdFJlYXNzaWduTW9kZWwgPSBuZXcgU3VibWl0UmVhc3NpZ25Nb2RlbCh7XHJcbiAgICAgICAgICAuLi5yZXMsXHJcbiAgICAgICAgICB3bFRlbGVwaG9uZVNldHRsZWRJZDogZ2V0KGl0ZW0sICd3bFRlbGVwaG9uZVNldHRsZWRJZCcpLFxyXG4gICAgICAgICAgYWN0aW9uSWQ6IHJlQXNzaWduQ29uZmVyZW5jZUNhdGVnb3J5QWN0aW9uSWQsXHJcblxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMudGVsZXBob25lT3JTZXR0bGVkQ29uZmVyZW5jZVdvcmtMaXN0U2VydmljZS5kaXNwYXRjaFNhdmVSZWFzc2lnbihwYXlsb2FkKTtcclxuXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb3BlblJlU2NoZWR1bGVDYWxsQmFja0RpYWxvZyhpdGVtOiBUZWxlcGhvbmVPclNldHRsZWRDb25mZXJlbmNlV29ya0xpc3RJdGVtTW9kZWwpIHtcclxuICAgIGNvbnN0IGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPFJlU2NoZWR1bGVDYWxsQmFja0FjdGlvbkNvbXBvbmVudD4gPSB0aGlzLmRpYWxvZz8ub3BlbihSZVNjaGVkdWxlQ2FsbEJhY2tBY3Rpb25Db21wb25lbnQsIHtcclxuICAgICAgd2lkdGg6IGRpYWxvZ1NpemUsXHJcbiAgICAgIGRpc2FibGVDbG9zZTogdHJ1ZSxcclxuICAgICAgZGF0YToge1xyXG4gICAgICAgIGNvbmNpbGlhdGlvbkxvb2t1cHM6IHRoaXMuY29uY2lsaWF0aW9uTG9va3VwcyxcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG5cclxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1hbnlcclxuICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnBpcGUodGFrZVVudGlsKHRoaXMuY29tcG9uZW50RGVzdHJveWVkKSkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICBpZiAoISFyZXMpIHtcclxuICAgICAgICBjb25zdCBwYXlsb2FkOiBTYXZlU2NoZWR1bGluZ0NhbGxCYWNrTW9kZWwgPSBuZXcgU2F2ZVNjaGVkdWxpbmdDYWxsQmFja01vZGVsKHtcclxuICAgICAgICAgIC4uLnJlcyxcclxuICAgICAgICAgIHdsVGVsZXBob25lU2V0dGxlZElkOiBnZXQoaXRlbSwgJ3dsVGVsZXBob25lU2V0dGxlZElkJyksXHJcbiAgICAgICAgICBhY3Rpb25JZDogcmVTY2hlZHVsZUNvbmZlcmVuY2VCeVBob25lQWN0aW9uSWQsXHJcblxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICB0aGlzLnRlbGVwaG9uZU9yU2V0dGxlZENvbmZlcmVuY2VXb3JrTGlzdFNlcnZpY2UuZGlzcGF0Y2hTYXZlU2NoZWR1bGluZ0NhbGxCYWNrRGV0YWlsRGV0YWlscyhwYXlsb2FkKVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG9wZW5PdXRyZWFjaERpYWxvZyhpdGVtOiBUZWxlcGhvbmVPclNldHRsZWRDb25mZXJlbmNlV29ya0xpc3RJdGVtTW9kZWwpIHtcclxuICAgIGNvbnN0IGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPFJlY29yZE91dHJlYWNoZGlhbG9nYm94Q29tcG9uZW50PiA9IHRoaXMuZGlhbG9nPy5vcGVuKFJlY29yZE91dHJlYWNoZGlhbG9nYm94Q29tcG9uZW50LCB7XHJcbiAgICAgIHdpZHRoOiByZWNvcmRPdXRyZWFjaGRpYWxvZ1NpemUsXHJcbiAgICAgIGRpc2FibGVDbG9zZTogdHJ1ZSxcclxuICAgICAgZGF0YTogaXRlbVxyXG4gICAgfSk7XHJcblxyXG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWFueVxyXG4gICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkucGlwZSh0YWtlVW50aWwodGhpcy5jb21wb25lbnREZXN0cm95ZWQpKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcbiAgICAgIGlmICghIXJlcykge1xyXG4gICAgICAgIGNvbnN0IHBheWxvYWQ6IFNhdmVPdXRyZWFjaE1vZGVsID0gbmV3IFNhdmVPdXRyZWFjaE1vZGVsKHtcclxuICAgICAgICAgIC4uLnJlcyxcclxuICAgICAgICAgIHdsVGVsZXBob25lU2V0dGxlZElkOiBnZXQoaXRlbSwgJ3dsVGVsZXBob25lU2V0dGxlZElkJyksXHJcbiAgICAgICAgICBhY3Rpb25JZDogcmVjb3JkT3V0cmVhY2hBY3Rpb25JZCxcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLnRlbGVwaG9uZU9yU2V0dGxlZENvbmZlcmVuY2VXb3JrTGlzdFNlcnZpY2UuZGlzcGF0Y2hTYXZlT3V0cmVhY2hXb3JrbGlzdERldGFpbERldGFpbHMocGF5bG9hZClcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBvcGVuR29vZENhdXNlR3JhbnRlZERpYWxvZyhpdGVtOiBUZWxlcGhvbmVPclNldHRsZWRDb25mZXJlbmNlV29ya0xpc3RJdGVtTW9kZWwpOiB2b2lkIHtcclxuICAgIGlmIChpdGVtID8ub3JpZ2luYWxDYXRlZ29yeUlkID09PSBjc0FwcG9pbnRtZW50cyB8fCBpdGVtID8ub3JpZ2luYWxDYXRlZ29yeUlkID09PSBjc0Fzc2lnbm1lbnRzIHx8XHJcbiAgICAgIGl0ZW0gPy5vcmlnaW5hbENhdGVnb3J5SWQgPT09IHRhZ0FwcG9pbnRtZW50cyB8fCBpdGVtID8ub3JpZ2luYWxDYXRlZ29yeUlkID09PSB0YWdBc3NpZ25tZW50cyApIHtcclxuICAgIGNvbnN0IGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPEdvb2RDYXVzZUdyYW50ZWRBY3Rpb25Db21wb25lbnQ+ID0gdGhpcy5kaWFsb2cub3BlbihHb29kQ2F1c2VHcmFudGVkQWN0aW9uQ29tcG9uZW50LCB7XHJcbiAgICAgIHdpZHRoOiBkaWFsb2dTaXplLFxyXG4gICAgICBkaXNhYmxlQ2xvc2U6IHRydWUsXHJcbiAgICAgIGRhdGE6IHtcclxuICAgICAgICBjb25jaWxpYXRpb25Mb29rdXBzOiB0aGlzLmNvbmNpbGlhdGlvbkxvb2t1cHMsXHJcbiAgICAgICAgc2hvd0luUGVyc29uOiBmYWxzZSxcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG4gICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkucGlwZSh0YWtlVW50aWwodGhpcy5jb21wb25lbnREZXN0cm95ZWQpKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcbiAgICAgIGlmIChyZXMpIHtcclxuXHJcbiAgICAgICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihHZW5lcmF0ZUZJQTExODdBTGV0dGVyRGlhbG9nYm94Q29tcG9uZW50LCB7XHJcbiAgICAgICAgICB3aWR0aDogJzU1dncnLFxyXG4gICAgICAgICAgZGlzYWJsZUNsb3NlOiB0cnVlLFxyXG4gICAgICAgICAgZGF0YToge1xyXG4gICAgICAgICAgICAvLyBhc3Nlc3NtZW50SWQ6IHRoaXMuYXNzZXNzbWVudElkIHx8IGdldCh0aGlzLmRhdGEsICdlYWVwQXNzZXNzbWVudElkJyksXHJcbiAgICAgICAgICAgIC8vIGNhc2VJZDogdGhpcy5jYXNlSWQsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpXHJcbiAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5jb21wb25lbnREZXN0cm95ZWQpKVxyXG4gICAgICAgICAgLnN1YnNjcmliZSgobGV0dGVyVHlwZUlkOiBudW1iZXIpID0+IHtcclxuICAgICAgICAgICAgLy8gaWYgKGxldHRlclR5cGVJZCA9PT0gMSkge1xyXG4gICAgICAgICAgICAvLyAgIHRoaXMuY29uY2lsaWF0aW9uV29ya0xpc3RTZXJ2aWNlLmRpc3BhdGNoUHJpbnREb2N1bWVudCh7IGxldHRlclR5cGU6IGxldHRlclR5cGVJZCwgYXNzZXNzbWVudElkOiBnZXQoaXRlbSwgJ2VhZXBBc3Nlc3NtZW50SWQnKSwgQ21zQ2FzZUlEOiBnZXQoaXRlbSwgJ2Ntc0Nhc2VJZCcpLCB3b3JrbGlzdFR5cGU6IHRlbGVDb25mZXJlbmNlSWQgLGluZnJhY3Rpb25EYXRlOiBnZXQoaXRlbSwgJ2luZnJhY3Rpb25EYXRlJyl9KTtcclxuICAgICAgICAgICAgLy8gfSBlbHNlIGlmIChsZXR0ZXJUeXBlSWQgPT09IDIpIHtcclxuICAgICAgICAgICAgLy8gICB0aGlzLmNvbmNpbGlhdGlvbldvcmtMaXN0U2VydmljZS5kaXNwYXRjaFByaW50RG9jdW1lbnQoeyBsZXR0ZXJUeXBlOiBsZXR0ZXJUeXBlSWQsIGFzc2Vzc21lbnRJZDogZ2V0KGl0ZW0sICdlYWVwQXNzZXNzbWVudElkJyksIENtc0Nhc2VJRDogZ2V0KGl0ZW0sICdjbXNDYXNlSWQnKSwgd29ya2xpc3RUeXBlOiB0ZWxlQ29uZmVyZW5jZUlkLGluZnJhY3Rpb25EYXRlOiBnZXQoaXRlbSwgJ2luZnJhY3Rpb25EYXRlJyl9KTtcclxuICAgICAgICAgICAgLy8gfVxyXG4gICAgICAgICAgICBjb25zdCBwYXlsb2FkOiBTYXZlVGVsZXBob25lT3JTZXR0bGVkQ29uZmVyZW5jZVN0YXR1c1BheWxvYWQgPSBuZXcgU2F2ZVRlbGVwaG9uZU9yU2V0dGxlZENvbmZlcmVuY2VTdGF0dXNQYXlsb2FkKHtcclxuICAgICAgICAgICAgICAuLi5yZXMsXHJcbiAgICAgICAgICAgICAgd2xUZWxlcGhvbmVTZXR0bGVkSWQ6IGl0ZW0ud2xUZWxlcGhvbmVTZXR0bGVkSWQsXHJcbiAgICAgICAgICAgICAgYWN0aW9uSWQ6IDEsXHJcbiAgICAgICAgICAgICAgY2FzZUlkOiBpdGVtID8uY21zQ2FzZUlkLFxyXG4gICAgICAgICAgICAgIG9yaWdpbmFsQ2F0ZWdvcnlJZDogaXRlbSA/Lm9yaWdpbmFsQ2F0ZWdvcnlJZCxcclxuICAgICAgICAgICAgICBhc3Nlc3NtZW50SWQ6IGdldChpdGVtLCAnZWFlcEFzc2Vzc21lbnRJZCcpLFxyXG4gICAgICAgICAgICAgIGxldHRlclR5cGU6IGxldHRlclR5cGVJZCxcclxuICAgICAgICAgICAgICBpbmZyYWN0aW9uRGF0ZSA6IGdldChpdGVtLCAnaW5mcmFjdGlvbkRhdGUnKSxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHRoaXMudGVsZXBob25lT3JTZXR0bGVkQ29uZmVyZW5jZVdvcmtMaXN0U2VydmljZS5kaXNwYXRjaFNhdmVTdGF0dXMocGF5bG9hZCk7XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIH1cclxuICAgIH0pO1xyXG4gIH0gZWxzZXtcclxuICAgIGNvbnN0IGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPEdvb2RDYXVzZUdyYW50ZWRBY3Rpb25Db21wb25lbnQ+ID0gdGhpcy5kaWFsb2cub3BlbihHb29kQ2F1c2VHcmFudGVkQWN0aW9uQ29tcG9uZW50LCB7XHJcbiAgICAgIHdpZHRoOiBkaWFsb2dTaXplLFxyXG4gICAgICBkaXNhYmxlQ2xvc2U6IHRydWUsXHJcbiAgICAgIGRhdGE6IHtcclxuICAgICAgICBjb25jaWxpYXRpb25Mb29rdXBzOiB0aGlzLmNvbmNpbGlhdGlvbkxvb2t1cHMsXHJcbiAgICAgICAgc2hvd0luUGVyc29uOiBmYWxzZSxcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG4gICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkucGlwZSh0YWtlVW50aWwodGhpcy5jb21wb25lbnREZXN0cm95ZWQpKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcbiAgICAgIGlmIChyZXMpIHtcclxuICAgICAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKEdlbmVyYXRlRklBMTE4N0FMZXR0ZXJEaWFsb2dib3hDb21wb25lbnQsIHtcclxuICAgICAgICAgIHdpZHRoOiAnNTV2dycsXHJcbiAgICAgICAgICBkaXNhYmxlQ2xvc2U6IHRydWUsXHJcbiAgICAgICAgICBkYXRhOiB7XHJcbiAgICAgICAgICAgIC8vIGFzc2Vzc21lbnRJZDogdGhpcy5hc3Nlc3NtZW50SWQgfHwgZ2V0KHRoaXMuZGF0YSwgJ2VhZXBBc3Nlc3NtZW50SWQnKSxcclxuICAgICAgICAgICAgLy8gY2FzZUlkOiB0aGlzLmNhc2VJZCxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKClcclxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5jb21wb25lbnREZXN0cm95ZWQpKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKGxldHRlclR5cGVJZDogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgaWYgKGdldChpdGVtLCAnb3JpZ2luYWxDYXRlZ29yeUlkJykgPT09IGpjQXBwb2ludG1lbnRzIHx8XHJcbiAgICAgICAgICBnZXQoaXRlbSwgJ29yaWdpbmFsQ2F0ZWdvcnlJZCcpID09PSBzcGxSZWZBcHBvaW50bWVudHMgfHxcclxuICAgICAgICAgIGdldChpdGVtLCAnb3JpZ2luYWxDYXRlZ29yeUlkJykgPT09IG51bGwpIHtcclxuICAgICAgICAgIGNvbnN0IHBheWxvYWQ6IFNhdmVUZWxlcGhvbmVPclNldHRsZWRDb25mZXJlbmNlU3RhdHVzUGF5bG9hZCA9IG5ldyBTYXZlVGVsZXBob25lT3JTZXR0bGVkQ29uZmVyZW5jZVN0YXR1c1BheWxvYWQoe1xyXG4gICAgICAgICAgICAuLi5yZXMsXHJcbiAgICAgICAgICAgIHdsVGVsZXBob25lU2V0dGxlZElkOiBpdGVtLndsVGVsZXBob25lU2V0dGxlZElkLFxyXG4gICAgICAgICAgICBhY3Rpb25JZDogZ29vZENhdXNlR3JhbnRlZEFjdGlvbklkLFxyXG4gICAgICAgICAgICBjYXNlSWQ6IGl0ZW0gPy5jbXNDYXNlSWQsXHJcbiAgICAgICAgICAgIG9yaWdpbmFsQ2F0ZWdvcnlJZDogaXRlbSA/Lm9yaWdpbmFsQ2F0ZWdvcnlJZCxcclxuICAgICAgICAgICAgYXNzZXNzbWVudElkOiBnZXQoaXRlbSwgJ2VhZXBBc3Nlc3NtZW50SWQnKSxcclxuICAgICAgICAgICAgbGV0dGVyVHlwZTogbGV0dGVyVHlwZUlkLFxyXG4gICAgICAgICAgICBpbmZyYWN0aW9uRGF0ZSA6IGdldChpdGVtLCAnaW5mcmFjdGlvbkRhdGUnKSxcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgdGhpcy50ZWxlcGhvbmVPclNldHRsZWRDb25mZXJlbmNlV29ya0xpc3RTZXJ2aWNlLmRpc3BhdGNoU2F2ZVN0YXR1cyhwYXlsb2FkKTtcclxuICAgICAgICAgIHRoaXMudGFiU2VydmljZS5kaXNwYXRjaEFkZFRhYih7XHJcbiAgICAgICAgICAgIHRhYk5hbWU6ICdlYS1lcC8nICsgaXRlbT8uY21zQ2FzZUlkLFxyXG4gICAgICAgICAgICByb3V0ZTogJy9lYS1lcC8nICsgaXRlbT8uY21zQ2FzZUlkLFxyXG4gICAgICAgICAgICBsYWJlbDogJ0Fzc2Vzc21lbnRzJyArICcgLSAnICsgaXRlbT8uY2xpZW50TmFtZSxcclxuICAgICAgICAgICAgY2FuQ2xvc2U6IHRydWUsXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL2VhLWVwLycgKyBpdGVtPy5jbXNDYXNlSWRdLCB7IHJlbGF0aXZlVG86IHRoaXMucm91dGUsIHN0YXRlOiB7IGNsaWVudE5hbWU6IGl0ZW0/LmNsaWVudE5hbWUgfSB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgY29uc3QgcGF5bG9hZDogU2F2ZVRlbGVwaG9uZU9yU2V0dGxlZENvbmZlcmVuY2VTdGF0dXNQYXlsb2FkID0gbmV3IFNhdmVUZWxlcGhvbmVPclNldHRsZWRDb25mZXJlbmNlU3RhdHVzUGF5bG9hZCh7XHJcbiAgICAgICAgICAgIC4uLnJlcyxcclxuICAgICAgICAgICAgd2xUZWxlcGhvbmVTZXR0bGVkSWQ6IGl0ZW0ud2xUZWxlcGhvbmVTZXR0bGVkSWQsXHJcbiAgICAgICAgICAgIGFjdGlvbklkOiBnb29kQ2F1c2VHcmFudGVkQWN0aW9uSWQsXHJcbiAgICAgICAgICAgIGNhc2VJZDogaXRlbSA/LmNtc0Nhc2VJZCxcclxuICAgICAgICAgICAgb3JpZ2luYWxDYXRlZ29yeUlkOiBpdGVtID8ub3JpZ2luYWxDYXRlZ29yeUlkLFxyXG4gICAgICAgICAgICBhc3Nlc3NtZW50SWQ6IGdldChpdGVtLCAnZWFlcEFzc2Vzc21lbnRJZCcpLFxyXG4gICAgICAgICAgICBsZXR0ZXJUeXBlOiBsZXR0ZXJUeXBlSWQsXHJcbiAgICAgICAgICAgIGluZnJhY3Rpb25EYXRlIDogZ2V0KGl0ZW0sICdpbmZyYWN0aW9uRGF0ZScpLFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICB0aGlzLnRlbGVwaG9uZU9yU2V0dGxlZENvbmZlcmVuY2VXb3JrTGlzdFNlcnZpY2UuZGlzcGF0Y2hTYXZlU3RhdHVzKHBheWxvYWQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG59KVxyXG59XHJcbiAgfVxyXG5cclxuICBzdWJtaXRCYXRjaFBvb2xBcHBvaW50bWVudChpdGVtOiBUZWxlcGhvbmVPclNldHRsZWRDb25mZXJlbmNlV29ya0xpc3RJdGVtTW9kZWwsIGFwcG9pbnRtZW50TllDV0FZY29kZTogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBwYXlsb2FkOiBTdWJtaXRCYXRjaFBvb2xBcHBvaW50bWVudE1vZGVsID0gbmV3IFN1Ym1pdEJhdGNoUG9vbEFwcG9pbnRtZW50TW9kZWwoe1xyXG5cclxuICAgICAgY2FzZUlkOiBpdGVtPy5jbXNDYXNlSWQsXHJcbiAgICAgIHNpdGVJZDogZ2V0KGl0ZW0sICdzbVNpdGVJZCcpLFxyXG4gICAgICBhcHBvaW50bWVudElkOiBpdGVtPy5hcHBvaW50bWVudElkLFxyXG4gICAgICBlYWVwQXNzZXNzbWVudElkOiBnZXQoaXRlbSwgJ2VhZXBBc3Nlc3NtZW50SWQnKSxcclxuICAgICAgd2xUZWxlcGhvbmVTZXR0bGVkSWQ6IGdldChpdGVtLCAnd2xUZWxlcGhvbmVTZXR0bGVkSWQnKSxcclxuICAgICAgYXBwb2ludG1lbnROWUNXQVljb2RlOiBhcHBvaW50bWVudE5ZQ1dBWWNvZGUsXHJcbiAgICB9KTtcclxuICAgIHRoaXMuY29uY2lsaWF0aW9uV29ya0xpc3RTZXJ2aWNlLmRpc3BhdGNoU3VibWl0QmF0Y2hQb29sQXBwb2ludG1lbnQocGF5bG9hZCk7XHJcbiAgfVxyXG5cclxuICBvcGVuR29vZENhdXNlTm90R3JhbnRlZERpYWxvZyhpdGVtOiBUZWxlcGhvbmVPclNldHRsZWRDb25mZXJlbmNlV29ya0xpc3RJdGVtTW9kZWwpOiB2b2lkIHtcclxuICAgIGNvbnN0IGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPEdvb2RDYXVzZU5vdEdyYW50ZWRBY3Rpb25Db21wb25lbnQ+ID0gdGhpcy5kaWFsb2c/Lm9wZW4oR29vZENhdXNlTm90R3JhbnRlZEFjdGlvbkNvbXBvbmVudCwge1xyXG4gICAgICB3aWR0aDogZGlhbG9nU2l6ZSxcclxuICAgICAgZGlzYWJsZUNsb3NlOiB0cnVlLFxyXG4gICAgICBkYXRhOiB7XHJcbiAgICAgICAgY29uY2lsaWF0aW9uTG9va3VwczogdGhpcy5jb25jaWxpYXRpb25Mb29rdXBzLFxyXG4gICAgICAgIGRhdGE6IGl0ZW1cclxuICAgICAgfSxcclxuICAgIH0pO1xyXG5cclxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1hbnlcclxuICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnBpcGUodGFrZVVudGlsKHRoaXMuY29tcG9uZW50RGVzdHJveWVkKSkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICBpZiAoISFyZXMpIHtcclxuICAgICAgICB0aGlzLnRlbGVwaG9uZU9yU2V0dGxlZENvbmZlcmVuY2VXb3JrTGlzdFNlcnZpY2UuZGlzcGF0Y2hTYXZlU3RhdHVzKG5ldyBTYXZlVGVsZXBob25lT3JTZXR0bGVkQ29uZmVyZW5jZVN0YXR1c1BheWxvYWQoe1xyXG4gICAgICAgICAgLi4ucmVzLFxyXG4gICAgICAgICAgd2xUZWxlcGhvbmVTZXR0bGVkSWQ6IGdldChpdGVtLCAnd2xUZWxlcGhvbmVTZXR0bGVkSWQnKSxcclxuICAgICAgICAgIGFjdGlvbklkOiBnb29kQ2F1c2VOb3RHcmFudGVkQWN0aW9uSWQsXHJcbiAgICAgICAgfSkpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGFmdGVyT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgLy9cclxuICB9XHJcblxyXG4gIG9wZW5ZZXNOb0NvbmZpcm1hdGlvbkRpYWxvZyhwYXlsb2FkOiBTYXZlVGVsZXBob25lT3JTZXR0bGVkQ29uZmVyZW5jZVN0YXR1c1BheWxvYWQsIGl0ZW06IFRlbGVwaG9uZU9yU2V0dGxlZENvbmZlcmVuY2VXb3JrTGlzdEl0ZW1Nb2RlbCk6IHZvaWQge1xyXG4gICAgY29uc3QgY29uZmlybURpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPFllc05vQ29uZmlybWF0aW9uRGlhbG9nQ29tcG9uZW50PiA9IHRoaXMuZGlhbG9nLm9wZW4oWWVzTm9Db25maXJtYXRpb25EaWFsb2dDb21wb25lbnQsIHtcclxuICAgICAgd2lkdGg6IGRpYWxvZ1NpemUsXHJcbiAgICAgIGRpc2FibGVDbG9zZTogdHJ1ZSxcclxuICAgICAgZGF0YToge1xyXG4gICAgICAgIHllc0xhYmVsOiB5ZXNMYWJlbCxcclxuICAgICAgICBub0xhYmVsOiBub0xhYmVsLFxyXG4gICAgICAgIGhlYWRlcjogY29uZmlybUhlYWRlcixcclxuICAgICAgICBtZXNzYWdlOiBnb29kQ2F1c2VDb25maXJtTWVzc2FnZSxcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG5cclxuICAgIGNvbmZpcm1EaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5waXBlKHRha2VVbnRpbCh0aGlzLmNvbXBvbmVudERlc3Ryb3llZCkpLnN1YnNjcmliZSgocmVzOiBib29sZWFuKSA9PiB7XHJcbiAgICAgIGlmICghIXJlcykge1xyXG4gICAgICAgIHRoaXMudGVsZXBob25lT3JTZXR0bGVkQ29uZmVyZW5jZVdvcmtMaXN0U2VydmljZS5kaXNwYXRjaFNhdmVTdGF0dXMobmV3IFNhdmVUZWxlcGhvbmVPclNldHRsZWRDb25mZXJlbmNlU3RhdHVzUGF5bG9hZCh7XHJcbiAgICAgICAgICAuLi5wYXlsb2FkLFxyXG4gICAgICAgICAgY29uZmlybVllc05vOiB0cnVlLFxyXG4gICAgICAgIH0pKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnRlbGVwaG9uZU9yU2V0dGxlZENvbmZlcmVuY2VXb3JrTGlzdFNlcnZpY2UuZGlzcGF0Y2hTYXZlU3RhdHVzKG5ldyBTYXZlVGVsZXBob25lT3JTZXR0bGVkQ29uZmVyZW5jZVN0YXR1c1BheWxvYWQoe1xyXG4gICAgICAgICAgLi4ucGF5bG9hZCxcclxuICAgICAgICAgIGNvbmZpcm1ZZXNObzogZmFsc2UsXHJcbiAgICAgICAgfSkpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIiwiPHBydXRlY2gtY29udGV4dC1tZW51IFttZW51SXRlbXNdPVwibWVudUl0ZW1zXCIgKG1lbnVBY3Rpb24pPVwiZG9BY3Rpb24oJGV2ZW50KVwiPjwvcHJ1dGVjaC1jb250ZXh0LW1lbnU+XHJcbiJdfQ==
|
@@ -9,16 +9,20 @@ import { TelephoneOrSettledConferenceWorkListActionTypes, LoadTelephoneOrSettled
|
|
9
9
|
import { openAppointmentDialog } from '../../shared/functions/open-appointment';
|
10
10
|
import { GrantOptionType } from '../constants/grant-option-type';
|
11
11
|
import { getGrantOption } from '../functions/get-grant-option';
|
12
|
+
import { goodCauseGrantedActionId } from '../../shared/constants/conciliation/menu-action-defs';
|
13
|
+
import { teleConferenceId } from '../../conciliation-appointment-work-list/constants/worklist_id';
|
12
14
|
import * as i0 from "@angular/core";
|
13
15
|
import * as i1 from "../services/telephone-or-settled-conference-list.service";
|
14
|
-
import * as i2 from "
|
15
|
-
import * as i3 from "
|
16
|
-
import * as i4 from "@angular/
|
17
|
-
import * as i5 from "@
|
18
|
-
import * as i6 from "@
|
16
|
+
import * as i2 from "../../conciliation-appointment-work-list/services/conciliation-appointment-work-list.service";
|
17
|
+
import * as i3 from "ngx-toastr";
|
18
|
+
import * as i4 from "@angular/material/dialog";
|
19
|
+
import * as i5 from "@angular/router";
|
20
|
+
import * as i6 from "@prutech/components";
|
21
|
+
import * as i7 from "@ngrx/effects";
|
19
22
|
export class TelephoneOrSettledConferenceWorkListEffect {
|
20
|
-
constructor(telephoneOrSettledConference, toastr, dialog, router, tabService, actions$) {
|
23
|
+
constructor(telephoneOrSettledConference, conciliationWorkListService, toastr, dialog, router, tabService, actions$) {
|
21
24
|
this.telephoneOrSettledConference = telephoneOrSettledConference;
|
25
|
+
this.conciliationWorkListService = conciliationWorkListService;
|
22
26
|
this.toastr = toastr;
|
23
27
|
this.dialog = dialog;
|
24
28
|
this.router = router;
|
@@ -40,6 +44,10 @@ export class TelephoneOrSettledConferenceWorkListEffect {
|
|
40
44
|
this.saveStatusSuccess$ = this.actions$.pipe(ofType(TelephoneOrSettledConferenceWorkListActionTypes.SaveStatusSuccess), tap((action) => {
|
41
45
|
handleSuccess(this.toastr);
|
42
46
|
const grantOption = getGrantOption(get(action, 'payload'));
|
47
|
+
const actionId = get(action, 'payload.actionId');
|
48
|
+
if (actionId === goodCauseGrantedActionId) {
|
49
|
+
this.conciliationWorkListService.dispatchPrintDocument({ letterType: get(action, 'payload.letterType'), assessmentId: get(action, 'payload.assessmentId'), CmsCaseID: get(action, 'payload.caseId'), worklistType: teleConferenceId, infractionDate: get(action, 'payload.infractionDate'), });
|
50
|
+
}
|
43
51
|
if (grantOption === GrantOptionType.Appointment) {
|
44
52
|
// this.telephoneOrSettledConference.dispatchOpenAppointmentDialog(get(action, 'payload.caseId'));
|
45
53
|
this.telephoneOrSettledConference.dispatchLoadTelephoneOrSettledConferenceWorkList();
|
@@ -129,7 +137,7 @@ export class TelephoneOrSettledConferenceWorkListEffect {
|
|
129
137
|
}));
|
130
138
|
}
|
131
139
|
}
|
132
|
-
TelephoneOrSettledConferenceWorkListEffect.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: TelephoneOrSettledConferenceWorkListEffect, deps: [{ token: i1.TelephoneOrSettledConferenceWorkListService }, { token: i2.
|
140
|
+
TelephoneOrSettledConferenceWorkListEffect.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: TelephoneOrSettledConferenceWorkListEffect, deps: [{ token: i1.TelephoneOrSettledConferenceWorkListService }, { token: i2.ConciliationAppointmentWorkListService }, { token: i3.ToastrService }, { token: i4.MatDialog }, { token: i5.Router }, { token: i6.TabService }, { token: i7.Actions }], target: i0.ɵɵFactoryTarget.Injectable });
|
133
141
|
TelephoneOrSettledConferenceWorkListEffect.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: TelephoneOrSettledConferenceWorkListEffect });
|
134
142
|
__decorate([
|
135
143
|
Effect()
|
@@ -175,5 +183,5 @@ __decorate([
|
|
175
183
|
], TelephoneOrSettledConferenceWorkListEffect.prototype, "saveReassignSuccessAction$", void 0);
|
176
184
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: TelephoneOrSettledConferenceWorkListEffect, decorators: [{
|
177
185
|
type: Injectable
|
178
|
-
}], ctorParameters: function () { return [{ type: i1.TelephoneOrSettledConferenceWorkListService }, { type: i2.
|
179
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVsZXBob25lLW9yLXNldHRsZWQtY29uZmVyZW5jZS1saXN0LmVmZmVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3BydXRlY2gvY29tcGxpYW5jZS9zcmMvbGliL3RlbGVwaG9uZS1zZXR0bGVkLWNvbmZlcmVuY2UvZWZmZWN0cy90ZWxlcGhvbmUtb3Itc2V0dGxlZC1jb25mZXJlbmNlLWxpc3QuZWZmZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzNDLE9BQU8sRUFBVyxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXhELE9BQU8sRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixFQUFjLE1BQU0scUJBQXFCLENBQUM7QUFDbkcsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdFLE9BQU8sRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLElBQUksRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUcxQyxPQUFPLEVBQ0wsK0NBQStDLEVBQy9DLDhDQUE4QyxFQUM5QyxrREFBa0QsRUFDbEQscURBQXFELEVBR3JELGdEQUFnRCxFQUNoRCxtREFBbUQsRUFFbkQsOEJBQThCLEVBQzlCLGlDQUFpQyxFQUVqQyxzQkFBc0IsRUFDdEIseUJBQXlCLEVBRXpCLGdDQUFnQyxFQUNoQyxtQ0FBbUMsR0FDcEMsTUFBTSx5REFBeUQsQ0FBQztBQUVqRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNoRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDakUsT0FBTyxFQUFFLGNB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b3JlJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgQWN0aW9ucywgRWZmZWN0LCBvZlR5cGUgfSBmcm9tICdAbmdyeC9lZmZlY3RzJztcclxuaW1wb3J0IHsgQWN0aW9uIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xyXG5pbXBvcnQgeyBoYW5kbGVMb2FkRmFpbCwgaGFuZGxlU3VjY2VzcywgU2VhbXNIdHRwUmVzcG9uc2UsIFRhYlNlcnZpY2UgfSBmcm9tICdAcHJ1dGVjaC9jb21wb25lbnRzJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgY2F0Y2hFcnJvciwgZXhoYXVzdE1hcCwgbWFwLCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgZ2V0LCBtYXAgYXMgX21hcCB9IGZyb20gJ2xvZGFzaCc7XHJcbmltcG9ydCB7IFRvYXN0clNlcnZpY2UgfSBmcm9tICduZ3gtdG9hc3RyJztcclxuXHJcbmltcG9ydCB7XHJcbiAgVGVsZXBob25lT3JTZXR0bGVkQ29uZmVyZW5jZVdvcmtMaXN0QWN0aW9uVHlwZXMsXHJcbiAgTG9hZFRlbGVwaG9uZU9yU2V0dGxlZENvbmZlcmVuY2VXb3JrTGlzdEFjdGlvbixcclxuICBMb2FkVGVsZXBob25lT3JTZXR0bGVkQ29uZmVyZW5jZVdvcmtMaXN0RmFpbEFjdGlvbixcclxuICBMb2FkVGVsZXBob25lT3JTZXR0bGVkQ29uZmVyZW5jZVdvcmtMaXN0U3VjY2Vzc0FjdGlvbixcclxuICBPcGVuQXBwb2ludG1lbnREaWFsb2dBY3Rpb24sXHJcbiAgU2F2ZVRlbGVwaG9uZU9yU2V0dGxlZENvbmZlcmVuY2VTdGF0dXNBY3Rpb24sXHJcbiAgU2F2ZVRlbGVwaG9uZU9yU2V0dGxlZENvbmZlcmVuY2VTdGF0dXNGYWlsQWN0aW9uLFxyXG4gIFNhdmVUZWxlcGhvbmVPclNldHRsZWRDb25mZXJlbmNlU3RhdHVzU3VjY2Vzc0FjdGlvbixcclxuICBTYXZlT3V0cmVhY2hXb3JrbGlzdEFjdGlvbixcclxuICBTYXZlT3V0cmVhY2hXb3JrbGlzdEZhaWxBY3Rpb24sXHJcbiAgU2F2ZU91dHJlYWNoV29ya2xpc3RTdWNjZXNzQWN0aW9uLFxyXG4gIFNhdmVSZWFzc2lnbkFjdGlvbixcclxuICBTYXZlUmVhc3NpZ25GYWlsQWN0aW9uLFxyXG4gIFNhdmVSZWFzc2lnblN1Y2Nlc3NBY3Rpb24sXHJcbiAgU2F2ZVNjaGVkdWxpbmdDYWxsQmFja0FjdGlvbixcclxuICBTYXZlU2NoZWR1bGluZ0NhbGxCYWNrRmFpbEFjdGlvbixcclxuICBTYXZlU2NoZWR1bGluZ0NhbGxCYWNrU3VjY2Vzc0FjdGlvbixcclxufSBmcm9tICcuLi9hY3Rpb25zL3RlbGVwaG9uZS1vci1zZXR0bGVkLWNvbmZlcmVuY2UtbGlzdC5hY3Rpb25zJztcclxuaW1wb3J0IHsgU2F2ZVN0YXR1c1Jlc3BvbnNlIH0gZnJvbSAnLi4vbW9kZWxzL3NhdmUtc3RhdHVzLXJlc3BvbnNlJztcclxuaW1wb3J0IHsgb3BlbkFwcG9pbnRtZW50RGlhbG9nIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2Z1bmN0aW9ucy9vcGVuLWFwcG9pbnRtZW50JztcclxuaW1wb3J0IHsgR3JhbnRPcHRpb25UeXBlIH0gZnJvbSAnLi4vY29uc3RhbnRzL2dyYW50LW9wdGlvbi10eXBlJztcclxuaW1wb3J0IHsgZ2V0R3JhbnRPcHRpb24gfSBmcm9tICcuLi9mdW5jdGlvbnMvZ2V0LWdyYW50LW9wdGlvbic7XHJcbmltcG9ydCB7IFNhdmVTY2hlZHVsaW5nQ2FsbEJhY2tNb2RlbCB9IGZyb20gJy4uL21vZGVscy9zYXZlLXNjaGVkdWxpbmctY2FsbC1iYWNrLm1vZGVsJztcclxuaW1wb3J0IHsgU2F2ZU91dHJlYWNoTW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvc2F2ZS1vdXRyZWFjaC1tb2RlbCc7XHJcbmltcG9ydCB7IFN1Ym1pdFJlYXNzaWduTW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvc3VibWl0LXJlLWFzc2lnbi1mcm9tbW9kZWwnO1xyXG5pbXBvcnQgeyBUZWxlcGhvbmVPclNldHRsZWRDb25mZXJlbmNlV29ya0xpc3RTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvdGVsZXBob25lLW9yLXNldHRsZWQtY29uZmVyZW5jZS1saXN0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUZWxlcGhvbmVPclNldHRsZWRDb25mZXJlbmNlV29ya0xpc3QgfSBmcm9tICcuLi9tb2RlbHMvdGVsZXBob25lLW9yLXNldHRsZWQtY29uZmVyZW5jZS13b3JrLWxpc3QnO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgVGVsZXBob25lT3JTZXR0bGVkQ29uZmVyZW5jZVdvcmtMaXN0RWZmZWN0IHtcclxuICBARWZmZWN0KClcclxuICBsb2FkV29ya0xpc3QkOiBPYnNlcnZhYmxlPEFjdGlvbj4gPSB0aGlzLmFjdGlvbnMkLnBpcGUoXHJcbiAgICBvZlR5cGU8TG9hZFRlbGVwaG9uZU9yU2V0dGxlZENvbmZlcmVuY2VXb3JrTGlzdEFjdGlvbj4oVGVsZXBob25lT3JTZXR0bGVkQ29uZmVyZW5jZVdvcmtMaXN0QWN0aW9uVHlwZXMuTG9hZFRlbGVwaG9uZU9yU2V0dGxlZENvbmZlcmVuY2VXb3JrTGlzdCksXHJcbiAgICBzd2l0Y2hNYXAoKCkgPT4ge1xyXG4gICAgICByZXR1cm4gdGhpcy50ZWxlcGhvbmVPclNldHRsZWRDb25mZXJlbmNlLmxvYWRXb3JrTGlzdCgpLnBpcGUoXHJcbiAgICAgICAgbWFwKChkYXRhOiBUZWxlcGhvbmVPclNldHRsZWRDb25mZXJlbmNlV29ya0xpc3QpID0+XHJcbiAgICAgICAgICBuZXcgTG9hZFRlbGVwaG9uZU9yU2V0dGxlZENvbmZlcmVuY2VXb3JrTGlzdFN1Y2Nlc3NBY3Rpb24oZGF0YSksXHJcbiAgICAgICAgKSxcclxuICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tYW55XHJcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyOiBhbnkpID0+IG9mKG5ldyBMb2FkVGVsZXBob25lT3JTZXR0bGVkQ29uZmVyZW5jZVdvcmtMaXN0RmFpbEFjdGlvbihuZXcgU2VhbXNIdHRwUmVzcG9uc2UoZ2V0KGVyciwgJ2Vycm9yJykpKSkpLFxyXG4gICAgICApO1xyXG4gICAgfSksXHJcbiAgKTtcclxuXHJcbiAgQEVmZmVjdCgpXHJcbiAgc2F2ZVN0YXR1cyQ6IE9ic2VydmFibGU8QWN0aW9uPiA9IHRoaXMuYWN0aW9ucyQucGlwZShcclxuICAgIG9mVHlwZTxTYXZlVGVsZXBob25lT3JTZXR0bGVkQ29uZmVyZW5jZVN0YXR1c0FjdGlvbj4oVGVsZXBob25lT3JTZXR0bGVkQ29uZmVyZW5jZVdvcmtMaXN0QWN0aW9uVHlwZXMuU2F2ZVN0YXR1cyksXHJcbiAgICBtYXAoKGFjdGlvbjogU2F2ZVRlbGVwaG9uZU9yU2V0dGxlZENvbmZlcmVuY2VTdGF0dXNBY3Rpb24pID0+IGFjdGlvbi5wYXlsb2FkKSxcclxuICAgIHN3aXRjaE1hcCgocGF5bG9hZDogYW55KSA9PiB7XHJcbiAgICAgIHJldHVybiB0aGlzLnRlbGVwaG9uZU9yU2V0dGxlZENvbmZlcmVuY2Uuc2F2ZVN0YXR1cyhwYXlsb2FkKS5waXBlKFxyXG4gICAgICAgIG1hcCgoZGF0YTogU2F2ZVN0YXR1c1Jlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gbmV3IFNhdmVUZWxlcGhvbmVPclNldHRsZWRDb25mZXJlbmNlU3RhdHVzU3VjY2Vzc0FjdGlvbihkYXRhKTtcclxuICAgICAgICB9KSxcclxuICAgICAgICBjYXRjaEVycm9yKChlcnI6IHVua25vd24pID0+IG9mKG5ldyBTYXZlVGVsZXBob25lT3JTZXR0bGVkQ29uZmVyZW5jZVN0YXR1c0ZhaWxBY3Rpb24obmV3IFNlYW1zSHR0cFJlc3BvbnNlKGdldChlcnIsICdlcnJvcicpKSkpKSxcclxuICAgICAgKTtcclxuICAgIH0pLFxyXG4gICk7XHJcblxyXG4gIEBFZmZlY3QoeyBkaXNwYXRjaDogZmFsc2UgfSlcclxuICBsb2FkV29ya0xpc3RGYWlsQWN0aW9uJDogT2JzZXJ2YWJsZTxTZWFtc0h0dHBSZXNwb25zZT4gPSB0aGlzLmFjdGlvbnMkLnBpcGUoXHJcbiAgICBvZlR5cGUoXHJcbiAgICAgIFRlbGVwaG9uZU9yU2V0dGxlZENvbmZlcmVuY2VXb3JrTGlzdEFjdGlvblR5cGVzLkxvYWRUZWxlcGhvbmVPclNldHRsZWRDb25mZXJlbmNlV29ya0xpc3RGYWlsLFxyXG4gICAgICBUZWxlcGhvbmVPclNldHRsZWRDb25mZXJlbmNlV29ya0xpc3RBY3Rpb25UeXBlcy5TYXZlU3RhdHVzRmFpbCksXHJcbiAgICBtYXAoKGFjdGlvbjogTG9hZFRlbGVwaG9uZU9yU2V0dGxlZENvbmZlcmVuY2VXb3JrTGlzdEZhaWxBY3Rpb24gfCBTYXZlVGVsZXBob25lT3JTZXR0bGVkQ29uZmVyZW5jZVN0YXR1c0ZhaWxBY3Rpb24pID0+IGdldChhY3Rpb24sICdwYXlsb2FkJykpLFxyXG4gICAgdGFwKChyZXNwb25zZTogU2VhbXNIdHRwUmVzcG9uc2UpID0+IHtcclxuICAgICAgaGFuZGxlTG9hZEZhaWwodGhpcy50b2FzdHIsIF9tYXAoZ2V0KHJlc3BvbnNlLCAnc2VhbXNFcnJvckNvZGVzJyksICd2YWx1ZScpKTtcclxuICAgIH0pLFxyXG4gICk7XHJcblxyXG4gIEBFZmZlY3QoeyBkaXNwYXRjaDogZmFsc2UgfSlcclxuICBzYXZlU3RhdHVzU3VjY2VzcyQ6IE9ic2VydmFibGU8U2F2ZVRlbGVwaG9uZU9yU2V0dGxlZENvbmZlcmVuY2VTdGF0dXNTdWNjZXNzQWN0aW9uPiA9IHRoaXMuYWN0aW9ucyQucGlwZShcclxuICAgIG9mVHlwZTxTYXZlVGVsZXBob25lT3JTZXR0bGVkQ29uZmVyZW5jZVN0YXR1c1N1Y2Nlc3NBY3Rpb24+KFRlbGVwaG9uZU9yU2V0dGxlZENvbmZlcmVuY2VXb3JrTGlzdEFjdGlvblR5cGVzLlNhdmVTdGF0dXNTdWNjZXNzKSxcclxuICAgIHRhcCgoYWN0aW9uOiBTYXZlVGVsZXBob25lT3JTZXR0bGVkQ29uZmVyZW5jZVN0YXR1c1N1Y2Nlc3NBY3Rpb24pID0+IHtcclxuICAgICAgaGFuZGxlU3VjY2Vzcyh0aGlzLnRvYXN0cik7XHJcbiAgICAgIGNvbnN0IGdyYW50T3B0aW9uOiBHcmFudE9wdGlvblR5cGUgPSBnZXRHcmFudE9wdGlvbihnZXQoYWN0aW9uLCAncGF5bG9hZCcpKTtcclxuICAgICAgaWYgKGdyYW50T3B0aW9uID09PSBHcmFudE9wdGlvblR5cGUuQXBwb2ludG1lbnQpIHtcclxuICAgICAgICAvLyB0aGlzLnRlbGVwaG9uZU9yU2V0dGxlZENvbmZlcmVuY2UuZGlzcGF0Y2hPcGVuQXBwb2ludG1lbnREaWFsb2coZ2V0KGFjdGlvbiwgJ3BheWxvYWQuY2FzZUlkJykpO1xyXG4gICAgICAgIHRoaXMudGVsZXBob25lT3JTZXR0bGVkQ29uZmVyZW5jZS5kaXNwYXRjaExvYWRUZWxlcGhvbmVPclNldHRsZWRDb25mZXJlbmNlV29ya0xpc3QoKTtcclxuICAgICAgfSBlbHNlIGlmIChncmFudE9wdGlvbiA9PT0gR3JhbnRPcHRpb25UeXBlLkVQKSB7XHJcbiAgICAgICAgdGhpcy50YWJTZXJ2aWNlLmRpc3BhdGNoQWRkVGFiKHtcclxuICAgICAgICAgIHRhYk5hbWU6ICdlYS1lcC8nICsgZ2V0KGFjdGlvbiwgJ3BheWxvYWQuY2FzZUlkJyksXHJcbiAgICAgICAgICByb3V0ZTogJy9lYS1lcC8nICsgZ2V0KGFjdGlvbiwgJ3BheWxvYWQuY2FzZUlkJyksXHJcbiAgICAgICAgICBsYWJlbDogJ0Fzc2Vzc21lbnRzJyxcclxuICAgICAgICAgIGNhbkNsb3NlOiB0cnVlLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtgL2VhLWVwLyR7Z2V0KGFjdGlvbiwgJ3BheWxvYWQuY2FzZUlkJyl9YF0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMudGVsZXBob25lT3JTZXR0bGVkQ29uZmVyZW5jZS5kaXNwYXRjaExvYWRUZWxlcGhvbmVPclNldHRsZWRDb25mZXJlbmNlV29ya0xpc3QoKTtcclxuICAgICAgfVxyXG4gICAgfSksXHJcbiAgKTtcclxuXHJcbiAgQEVmZmVjdCgpXHJcbiAgb3BlbkRpYWxvZyQ6IE9ic2VydmFibGU8QWN0aW9uPiA9IHRoaXMuYWN0aW9ucyQucGlwZShcclxuICAgIG9mVHlwZTxPcGVuQXBwb2ludG1lbnREaWFsb2dBY3Rpb24+KFRlbGVwaG9uZU9yU2V0dGxlZENvbmZlcmVuY2VXb3JrTGlzdEFjdGlvblR5cGVzLk9wZW5BcHBvaW50bWVudERpYWxvZyksXHJcbiAgICBleGhhdXN0TWFwKChhY3Rpb246IE9wZW5BcHBvaW50bWVudERpYWxvZ0FjdGlvbikgPT4ge1xyXG4gICAgICByZXR1cm4gb3BlbkFwcG9pbnRtZW50RGlhbG9nKHRoaXMuZGlhbG9nLCBnZXQoYWN0aW9uLCAncGF5bG9hZCcpKTtcclxuICAgIH0pLFxyXG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWFueVxyXG4gICAgbWFwKChyZXN1bHQ6IGFueSkgPT4ge1xyXG4gICAgICByZXR1cm4gbmV3IExvYWRUZWxlcGhvbmVPclNldHRsZWRDb25mZXJlbmNlV29ya0xpc3RBY3Rpb24oKTtcclxuICAgIH0pLFxyXG4gICk7XHJcblxyXG4gIEBFZmZlY3QoKVxyXG4gIFNhdmVTY2hlZHVsaW5nQ2FsbEJhY2tEZXRhaWwkOiBPYnNlcnZhYmxlPEFjdGlvbj4gPSB0aGlzLmFjdGlvbnMkLnBpcGUoXHJcbiAgICBvZlR5cGU8U2F2ZVNjaGVkdWxpbmdDYWxsQmFja0FjdGlvbj4oVGVsZXBob25lT3JTZXR0bGVkQ29uZmVyZW5jZVdvcmtMaXN0QWN0aW9uVHlwZXMuU2F2ZVNjaGVkdWxpbmdDYWxsQmFjayksXHJcbiAgICBtYXAoKGFjdGlvbjogU2F2ZVNjaGVkdWxpbmdDYWxsQmFja0FjdGlvbikgPT4gYWN0aW9uLnBheWxvYWQpLFxyXG4gICAgc3dpdGNoTWFwKChwYXlsb2FkOiBTYXZlU2NoZWR1bGluZ0NhbGxCYWNrTW9kZWwpID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMudGVsZXBob25lT3JTZXR0bGVkQ29uZmVyZW5jZS5TYXZlU2NoZWR1bGluZ0NhbGxCYWNrRGV0YWlsRGV0YWlscyhwYXlsb2FkKS5waXBlKFxyXG4gICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbm8tYW55XHJcbiAgICAgICAgbWFwKChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChkYXRhKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBuZXcgU2F2ZVNjaGVkdWxpbmdDYWxsQmFja1N1Y2Nlc3NBY3Rpb24oeyBkYXRhLCBwYXlsb2FkIH0pO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIG5ldyBTYXZlU2NoZWR1bGluZ0NhbGxCYWNrU3VjY2Vzc0FjdGlvbih1bmRlZmluZWQpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycjogdW5rbm93bikgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIG9mKG5ldyBTYXZlU2NoZWR1bGluZ0NhbGxCYWNrRmFpbEFjdGlvbihuZXcgU2VhbXNIdHRwUmVzcG9uc2UoZ2V0KGVyciwgJ2Vycm9yJykpKSk7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICk7XHJcbiAgICB9KSxcclxuICApO1xyXG4gIEBFZmZlY3QoeyBkaXNwYXRjaDogZmFsc2UgfSlcclxuICBzYXZTdWNjZXNzQWN0aW9uJDogT2JzZXJ2YWJsZTx2b2lkPiA9IHRoaXMuYWN0aW9ucyQucGlwZShcclxuICAgIG9mVHlwZTxTYXZlU2NoZWR1bGluZ0NhbGxCYWNrU3VjY2Vzc0FjdGlvbj4oVGVsZXBob25lT3JTZXR0bGVkQ29uZmVyZW5jZVdvcmtMaXN0QWN0aW9uVHlwZXMuU2F2ZVNjaGVkdWxpbmdDYWxsQmFja1N1Y2Nlc3MpLFxyXG4gICAgbWFwKChhY3Rpb246IFNhdmVTY2hlZHVsaW5nQ2FsbEJhY2tTdWNjZXNzQWN0aW9uKSA9PiB7XHJcbiAgICAgIGhhbmRsZVN1Y2Nlc3ModGhpcy50b2FzdHIpO1xyXG4gICAgICB0aGlzLnRlbGVwaG9uZU9yU2V0dGxlZENvbmZlcmVuY2UuZGlzcGF0Y2hMb2FkVGVsZXBob25lT3JTZXR0bGVkQ29uZmVyZW5jZVdvcmtMaXN0KCk7XHJcbiAgICB9KSxcclxuICApO1xyXG4gIEBFZmZlY3QoeyBkaXNwYXRjaDogZmFsc2UgfSlcclxuICBzYXZGYWlsQWN0aW9uJDogT2JzZXJ2YWJsZTxTZWFtc0h0dHBSZXNwb25zZT4gPSB0aGlzLmFjdGlvbnMkLnBpcGUoXHJcbiAgICBvZlR5cGU8U2F2ZVNjaGVkdWxpbmdDYWxsQmFja0ZhaWxBY3Rpb24+KFRlbGVwaG9uZU9yU2V0dGxlZENvbmZlcmVuY2VXb3JrTGlzdEFjdGlvblR5cGVzLlNhdmVTY2hlZHVsaW5nQ2FsbEJhY2tGYWlsKSxcclxuICAgIG1hcCgoYWN0aW9uOiBTYXZlU2NoZWR1bGluZ0NhbGxCYWNrRmFpbEFjdGlvbikgPT4gZ2V0KGFjdGlvbiwgJ3BheWxvYWQnKSksXHJcbiAgICB0YXAoKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuICAgICAgaGFuZGxlTG9hZEZhaWwodGhpcy50b2FzdHIsIF9tYXAoZ2V0KHJlc3BvbnNlLCAnc2VhbXNFcnJvckNvZGVzJyksICd2YWx1ZScpKVxyXG5cclxuXHJcbiAgICB9KSxcclxuXHJcbiAgKTtcclxuXHJcblxyXG4gIEBFZmZlY3QoKVxyXG4gIFNhdmVPdXRyZWFjaFdvcmtsaXN0RGV0YWlsJDogT2JzZXJ2YWJsZTxBY3Rpb24+ID0gdGhpcy5hY3Rpb25zJC5waXBlKFxyXG4gICAgb2ZUeXBlPFNhdmVPdXRyZWFjaFdvcmtsaXN0QWN0aW9uPihUZWxlcGhvbmVPclNldHRsZWRDb25mZXJlbmNlV29ya0xpc3RBY3Rpb25UeXBlcy5TYXZlT3V0cmVhY2hXb3JrbGlzdCksXHJcbiAgICBtYXAoKGFjdGlvbjogU2F2ZU91dHJlYWNoV29ya2xpc3RBY3Rpb24pID0+IGFjdGlvbi5wYXlsb2FkKSxcclxuICAgIHN3aXRjaE1hcCgocGF5bG9hZDogU2F2ZU91dHJlYWNoTW9kZWwpID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMudGVsZXBob25lT3JTZXR0bGVkQ29uZmVyZW5jZS5TYXZlT3V0cmVhY2hXb3JrbGlzdERldGFpbERldGFpbHMocGF5bG9hZCkucGlwZShcclxuICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG5vLWFueVxyXG4gICAgICAgIG1hcCgoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAoZGF0YSkge1xyXG4gICAgICAgICAgICByZXR1cm4gbmV3IFNhdmVPdXRyZWFjaFdvcmtsaXN0U3VjY2Vzc0FjdGlvbih7IGRhdGEsIHBheWxvYWQgfSk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gbmV3IFNhdmVPdXRyZWFjaFdvcmtsaXN0U3VjY2Vzc0FjdGlvbih1bmRlZmluZWQpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycjogdW5rbm93bikgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIG9mKG5ldyBTYXZlT3V0cmVhY2hXb3JrbGlzdEZhaWxBY3Rpb24obmV3IFNlYW1zSHR0cFJlc3BvbnNlKGdldChlcnIsICdlcnJvcicpKSkpO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICApO1xyXG4gICAgfSksXHJcbiAgKTtcclxuICBARWZmZWN0KHsgZGlzcGF0Y2g6IGZhbHNlIH0pXHJcbiAgc2F2ZVN1Y2Nlc3NBY3Rpb24kOiBPYnNlcnZhYmxlPHZvaWQ+ID0gdGhpcy5hY3Rpb25zJC5waXBlKFxyXG4gICAgb2ZUeXBlPFNhdmVPdXRyZWFjaFdvcmtsaXN0U3VjY2Vzc0FjdGlvbj4oVGVsZXBob25lT3JTZXR0bGVkQ29uZmVyZW5jZVdvcmtMaXN0QWN0aW9uVHlwZXMuU2F2ZU91dHJlYWNoV29ya2xpc3RTdWNjZXNzKSxcclxuICAgIG1hcCgoYWN0aW9uOiBTYXZlT3V0cmVhY2hXb3JrbGlzdFN1Y2Nlc3NBY3Rpb24pID0+IHtcclxuICAgICAgdGhpcy50ZWxlcGhvbmVPclNldHRsZWRDb25mZXJlbmNlLmRpc3BhdGNoTG9hZFRlbGVwaG9uZU9yU2V0dGxlZENvbmZlcmVuY2VXb3JrTGlzdCgpO1xyXG4gICAgICBoYW5kbGVTdWNjZXNzKHRoaXMudG9hc3RyKTtcclxuICAgIH0pXHJcblxyXG4gICk7XHJcbiAgQEVmZmVjdCh7IGRpc3BhdGNoOiBmYWxzZSB9KVxyXG4gIHNhdmVGYWlsQWN0aW9uJDogT2JzZXJ2YWJsZTxTZWFtc0h0dHBSZXNwb25zZT4gPSB0aGlzLmFjdGlvbnMkLnBpcGUoXHJcbiAgICBvZlR5cGU8U2F2ZU91dHJlYWNoV29ya2xpc3RGYWlsQWN0aW9uPihUZWxlcGhvbmVPclNldHRsZWRDb25mZXJlbmNlV29ya0xpc3RBY3Rpb25UeXBlcy5TYXZlT3V0cmVhY2hXb3JrbGlzdEZhaWwpLFxyXG4gICAgbWFwKChhY3Rpb246IFNhdmVPdXRyZWFjaFdvcmtsaXN0RmFpbEFjdGlvbikgPT4gZ2V0KGFjdGlvbiwgJ3BheWxvYWQnKSksXHJcbiAgICB0YXAoKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuICAgICAgaGFuZGxlTG9hZEZhaWwodGhpcy50b2FzdHIsIF9tYXAoZ2V0KHJlc3BvbnNlLCAnc2VhbXNFcnJvckNvZGVzJyksICd2YWx1ZScpKTtcclxuXHJcbiAgICB9KSxcclxuXHJcbiAgKTtcclxuICBARWZmZWN0KClcclxuICBzYXZlU3RhdHVzd29ya3MkOiBPYnNlcnZhYmxlPEFjdGlvbj4gPSB0aGlzLmFjdGlvbnMkLnBpcGUoXHJcbiAgICBvZlR5cGU8U2F2ZVJlYXNzaWduQWN0aW9uPihUZWxlcGhvbmVPclNldHRsZWRDb25mZXJlbmNlV29ya0xpc3RBY3Rpb25UeXBlcy5TYXZlUmVhc3NpZ24pLFxyXG4gICAgbWFwKChhY3Rpb246IFNhdmVSZWFzc2lnbkFjdGlvbikgPT4gYWN0aW9uLnBheWxvYWQpLFxyXG4gICAgc3dpdGNoTWFwKChwYXlsb2FkOiBTdWJtaXRSZWFzc2lnbk1vZGVsKSA9PiB7XHJcbiAgICAgIHJldHVybiB0aGlzLnRlbGVwaG9uZU9yU2V0dGxlZENvbmZlcmVuY2UuU2F2ZVJlYXNzaWduKHBheWxvYWQpLnBpcGUoXHJcbiAgICAgICAgbWFwKChkYXRhKSA9PiB7XHJcbiAgICAgICAgICBpZiAoZGF0YSkge1xyXG4gICAgICAgICAgICByZXR1cm4gbmV3IFNhdmVSZWFzc2lnblN1Y2Nlc3NBY3Rpb24oZGF0YSk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gbmV3IFNhdmVSZWFzc2lnbkZhaWxBY3Rpb24odW5kZWZpbmVkKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KSxcclxuICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tYW55XHJcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyOiBhbnkpID0+IHtcclxuICAgICAgICAgIHJldHVybiBvZihuZXcgU2F2ZVJlYXNzaWduRmFpbEFjdGlvbihuZXcgU2VhbXNIdHRwUmVzcG9uc2UoZ2V0KGVyciwgJ2Vycm9yJykpKSk7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICk7XHJcbiAgICB9KSxcclxuICApO1xyXG4gIEBFZmZlY3QoeyBkaXNwYXRjaDogZmFsc2UgfSlcclxuICBzYXZlUmVhc3NpZ25GYWlsQWN0aW9uJDogT2JzZXJ2YWJsZTxTZWFtc0h0dHBSZXNwb25zZT4gPSB0aGlzLmFjdGlvbnMkLnBpcGUoXHJcbiAgICBvZlR5cGU8U2F2ZVJlYXNzaWduRmFpbEFjdGlvbj4oVGVsZXBob25lT3JTZXR0bGVkQ29uZmVyZW5jZVdvcmtMaXN0QWN0aW9uVHlwZXMuU2F2ZVJlYXNzaWduRmFpbCksXHJcbiAgICBtYXAoKGFjdGlvbjogU2F2ZVJlYXNzaWduRmFpbEFjdGlvbikgPT4gZ2V0KGFjdGlvbiwgJ3BheWxvYWQnKSksXHJcbiAgICB0YXAoKHJlc3BvbnNlOiBTZWFtc0h0dHBSZXNwb25zZSkgPT4ge1xyXG4gICAgICBoYW5kbGVMb2FkRmFpbCh0aGlzLnRvYXN0ciwgX21hcChnZXQocmVzcG9uc2UsICdzZWFtc0Vycm9yQ29kZXMnKSwgJ3ZhbHVlJykpO1xyXG4gICAgfSksXHJcbiAgKTtcclxuICBARWZmZWN0KHsgZGlzcGF0Y2g6IGZhbHNlIH0pXHJcbiAgc2F2ZVJlYXNzaWduU3VjY2Vzc0FjdGlvbiQ6IE9ic2VydmFibGU8dm9pZD4gPSB0aGlzLmFjdGlvbnMkLnBpcGUoXHJcbiAgICBvZlR5cGU8U2F2ZVJlYXNzaWduU3VjY2Vzc0FjdGlvbj4oVGVsZXBob25lT3JTZXR0bGVkQ29uZmVyZW5jZVdvcmtMaXN0QWN0aW9uVHlwZXMuU2F2ZVJlYXNzaWduU3VjY2VzcyksXHJcbiAgICBtYXAoKGFjdGlvbjogU2F2ZVJlYXNzaWduU3VjY2Vzc0FjdGlvbikgPT4ge1xyXG4gICAgICBoYW5kbGVTdWNjZXNzKHRoaXMudG9hc3RyKTtcclxuICAgICAgdGhpcy50ZWxlcGhvbmVPclNldHRsZWRDb25mZXJlbmNlLmRpc3BhdGNoTG9hZFRlbGVwaG9uZU9yU2V0dGxlZENvbmZlcmVuY2VXb3JrTGlzdCgpO1xyXG4gICAgfSksXHJcbiAgKTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSB0ZWxlcGhvbmVPclNldHRsZWRDb25mZXJlbmNlOiBUZWxlcGhvbmVPclNldHRsZWRDb25mZXJlbmNlV29ya0xpc3RTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB0b2FzdHI6IFRvYXN0clNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGRpYWxvZzogTWF0RGlhbG9nLFxyXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcclxuICAgIHByaXZhdGUgdGFiU2VydmljZTogVGFiU2VydmljZSxcclxuICAgIHByaXZhdGUgYWN0aW9ucyQ6IEFjdGlvbnMpIHtcclxuICB9XHJcbn1cclxuIl19
|
186
|
+
}], ctorParameters: function () { return [{ type: i1.TelephoneOrSettledConferenceWorkListService }, { type: i2.ConciliationAppointmentWorkListService }, { type: i3.ToastrService }, { type: i4.MatDialog }, { type: i5.Router }, { type: i6.TabService }, { type: i7.Actions }]; }, propDecorators: { loadWorkList$: [], saveStatus$: [], loadWorkListFailAction$: [], saveStatusSuccess$: [], openDialog$: [], SaveSchedulingCallBackDetail$: [], savSuccessAction$: [], savFailAction$: [], SaveOutreachWorklistDetail$: [], saveSuccessAction$: [], saveFailAction$: [], saveStatusworks$: [], saveReassignFailAction$: [], saveReassignSuccessAction$: [] } });
|
187
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVsZXBob25lLW9yLXNldHRsZWQtY29uZmVyZW5jZS1saXN0LmVmZmVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3BydXRlY2gvY29tcGxpYW5jZS9zcmMvbGliL3RlbGVwaG9uZS1zZXR0bGVkLWNvbmZlcmVuY2UvZWZmZWN0cy90ZWxlcGhvbmUtb3Itc2V0dGxlZC1jb25mZXJlbmNlLWxpc3QuZWZmZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzNDLE9BQU8sRUFBVyxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXhELE9BQU8sRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixFQUFjLE1BQU0scUJBQXFCLENBQUM7QUFDbkcsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdFLE9BQU8sRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLElBQUksRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUcxQyxPQUFPLEVBQ0wsK0NBQStDLEVBQy9DLDhDQUE4QyxFQUM5QyxrREFBa0QsRUFDbEQscURBQXFELEVBR3JELGdEQUFnRCxFQUNoRCxtREFBbUQsRUFFbkQsOEJBQThCLEVBQzlCLGlDQUFpQyxFQUVqQyxzQkFBc0IsRUFDdEIseUJBQXlCLEVBRXpCLGdDQUFnQyxFQUNoQyxtQ0FBbUMsR0FDcEMsTUFBTSx5REFBeUQsQ0FBQztBQUVqRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNoRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDakUsT0FBTyxFQUFFLGNB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LENBQUMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQUM7c0ZBUTFCO0FBRUY7SUFEQyxNQUFNLENBQUMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQUM7bUZBUzFCO0FBRUY7SUFEQyxNQUFNLEVBQUU7b0ZBbUJQO0FBRUY7SUFEQyxNQUFNLENBQUMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQUM7MkZBTzFCO0FBRUY7SUFEQyxNQUFNLENBQUMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQUM7OEZBTzFCOzRGQWxNUywwQ0FBMEM7a0JBRHRELFVBQVU7K1NBR1QsYUFBYSxNQWNiLFdBQVcsTUFjWCx1QkFBdUIsTUFXdkIsa0JBQWtCLE1BMkJsQixXQUFXLE1BWVgsNkJBQTZCLE1Bb0I3QixpQkFBaUIsTUFRakIsY0FBYyxNQWFkLDJCQUEyQixNQW9CM0Isa0JBQWtCLE1BU2xCLGVBQWUsTUFVZixnQkFBZ0IsTUFvQmhCLHVCQUF1QixNQVF2QiwwQkFBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IEFjdGlvbnMsIEVmZmVjdCwgb2ZUeXBlIH0gZnJvbSAnQG5ncngvZWZmZWN0cyc7XHJcbmltcG9ydCB7IEFjdGlvbiB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcclxuaW1wb3J0IHsgaGFuZGxlTG9hZEZhaWwsIGhhbmRsZVN1Y2Nlc3MsIFNlYW1zSHR0cFJlc3BvbnNlLCBUYWJTZXJ2aWNlIH0gZnJvbSAnQHBydXRlY2gvY29tcG9uZW50cyc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGNhdGNoRXJyb3IsIGV4aGF1c3RNYXAsIG1hcCwgc3dpdGNoTWFwLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IGdldCwgbWFwIGFzIF9tYXAgfSBmcm9tICdsb2Rhc2gnO1xyXG5pbXBvcnQgeyBUb2FzdHJTZXJ2aWNlIH0gZnJvbSAnbmd4LXRvYXN0cic7XHJcblxyXG5pbXBvcnQge1xyXG4gIFRlbGVwaG9uZU9yU2V0dGxlZENvbmZlcmVuY2VXb3JrTGlzdEFjdGlvblR5cGVzLFxyXG4gIExvYWRUZWxlcGhvbmVPclNldHRsZWRDb25mZXJlbmNlV29ya0xpc3RBY3Rpb24sXHJcbiAgTG9hZFRlbGVwaG9uZU9yU2V0dGxlZENvbmZlcmVuY2VXb3JrTGlzdEZhaWxBY3Rpb24sXHJcbiAgTG9hZFRlbGVwaG9uZU9yU2V0dGxlZENvbmZlcmVuY2VXb3JrTGlzdFN1Y2Nlc3NBY3Rpb24sXHJcbiAgT3BlbkFwcG9pbnRtZW50RGlhbG9nQWN0aW9uLFxyXG4gIFNhdmVUZWxlcGhvbmVPclNldHRsZWRDb25mZXJlbmNlU3RhdHVzQWN0aW9uLFxyXG4gIFNhdmVUZWxlcGhvbmVPclNldHRsZWRDb25mZXJlbmNlU3RhdHVzRmFpbEFjdGlvbixcclxuICBTYXZlVGVsZXBob25lT3JTZXR0bGVkQ29uZmVyZW5jZVN0YXR1c1N1Y2Nlc3NBY3Rpb24sXHJcbiAgU2F2ZU91dHJlYWNoV29ya2xpc3RBY3Rpb24sXHJcbiAgU2F2ZU91dHJlYWNoV29ya2xpc3RGYWlsQWN0aW9uLFxyXG4gIFNhdmVPdXRyZWFjaFdvcmtsaXN0U3VjY2Vzc0FjdGlvbixcclxuICBTYXZlUmVhc3NpZ25BY3Rpb24sXHJcbiAgU2F2ZVJlYXNzaWduRmFpbEFjdGlvbixcclxuICBTYXZlUmVhc3NpZ25TdWNjZXNzQWN0aW9uLFxyXG4gIFNhdmVTY2hlZHVsaW5nQ2FsbEJhY2tBY3Rpb24sXHJcbiAgU2F2ZVNjaGVkdWxpbmdDYWxsQmFja0ZhaWxBY3Rpb24sXHJcbiAgU2F2ZVNjaGVkdWxpbmdDYWxsQmFja1N1Y2Nlc3NBY3Rpb24sXHJcbn0gZnJvbSAnLi4vYWN0aW9ucy90ZWxlcGhvbmUtb3Itc2V0dGxlZC1jb25mZXJlbmNlLWxpc3QuYWN0aW9ucyc7XHJcbmltcG9ydCB7IFNhdmVTdGF0dXNSZXNwb25zZSB9IGZyb20gJy4uL21vZGVscy9zYXZlLXN0YXR1cy1yZXNwb25zZSc7XHJcbmltcG9ydCB7IG9wZW5BcHBvaW50bWVudERpYWxvZyB9IGZyb20gJy4uLy4uL3NoYXJlZC9mdW5jdGlvbnMvb3Blbi1hcHBvaW50bWVudCc7XHJcbmltcG9ydCB7IEdyYW50T3B0aW9uVHlwZSB9IGZyb20gJy4uL2NvbnN0YW50cy9ncmFudC1vcHRpb24tdHlwZSc7XHJcbmltcG9ydCB7IGdldEdyYW50T3B0aW9uIH0gZnJvbSAnLi4vZnVuY3Rpb25zL2dldC1ncmFudC1vcHRpb24nO1xyXG5pbXBvcnQgeyBTYXZlU2NoZWR1bGluZ0NhbGxCYWNrTW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvc2F2ZS1zY2hlZHVsaW5nLWNhbGwtYmFjay5tb2RlbCc7XHJcbmltcG9ydCB7IFNhdmVPdXRyZWFjaE1vZGVsIH0gZnJvbSAnLi4vbW9kZWxzL3NhdmUtb3V0cmVhY2gtbW9kZWwnO1xyXG5pbXBvcnQgeyBTdWJtaXRSZWFzc2lnbk1vZGVsIH0gZnJvbSAnLi4vbW9kZWxzL3N1Ym1pdC1yZS1hc3NpZ24tZnJvbW1vZGVsJztcclxuaW1wb3J0IHsgVGVsZXBob25lT3JTZXR0bGVkQ29uZmVyZW5jZVdvcmtMaXN0U2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3RlbGVwaG9uZS1vci1zZXR0bGVkLWNvbmZlcmVuY2UtbGlzdC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVGVsZXBob25lT3JTZXR0bGVkQ29uZmVyZW5jZVdvcmtMaXN0IH0gZnJvbSAnLi4vbW9kZWxzL3RlbGVwaG9uZS1vci1zZXR0bGVkLWNvbmZlcmVuY2Utd29yay1saXN0JztcclxuaW1wb3J0IHtnb29kQ2F1c2VHcmFudGVkQWN0aW9uSWR9IGZyb20gJy4uLy4uL3NoYXJlZC9jb25zdGFudHMvY29uY2lsaWF0aW9uL21lbnUtYWN0aW9uLWRlZnMnO1xyXG5pbXBvcnQge1xyXG4gIGNzQXBwb2ludG1lbnRzLFxyXG4gIGNzQXNzaWdubWVudHMsXHJcbiAgaXZhcEFzc2lnbm1lbnRzLFxyXG4gIGpjQXBwb2ludG1lbnRzLFxyXG4gIHNwbFJlZkFwcG9pbnRtZW50cyxcclxuICB0YWdBcHBvaW50bWVudHMsXHJcbiAgdGFnQXNzaWdubWVudHMsXHJcbiAgdnJzQXBwb2ludG1lbnRzLFxyXG4gIHdlY2FyZUFwcG9pbnRtZW50c1xyXG59IGZyb20gJy4uLy4uL2NvbmNpbGlhdGlvbi1hcHBvaW50bWVudC13b3JrLWxpc3QvY29uc3RhbnRzL29yZ2luYWwtY2F0ZWdvcnktbG9va3VwLXR5cGVzLmNvbnN0YW50cyc7XHJcbmltcG9ydCB7IHRlbGVDb25mZXJlbmNlSWQgfSBmcm9tICcuLi8uLi9jb25jaWxpYXRpb24tYXBwb2ludG1lbnQtd29yay1saXN0L2NvbnN0YW50cy93b3JrbGlzdF9pZCc7XHJcbmltcG9ydCB7IENvbmNpbGlhdGlvbkFwcG9pbnRtZW50V29ya0xpc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29uY2lsaWF0aW9uLWFwcG9pbnRtZW50LXdvcmstbGlzdC9zZXJ2aWNlcy9jb25jaWxpYXRpb24tYXBwb2ludG1lbnQtd29yay1saXN0LnNlcnZpY2UnO1xyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBUZWxlcGhvbmVPclNldHRsZWRDb25mZXJlbmNlV29ya0xpc3RFZmZlY3Qge1xyXG4gIEBFZmZlY3QoKVxyXG4gIGxvYWRXb3JrTGlzdCQ6IE9ic2VydmFibGU8QWN0aW9uPiA9IHRoaXMuYWN0aW9ucyQucGlwZShcclxuICAgIG9mVHlwZTxMb2FkVGVsZXBob25lT3JTZXR0bGVkQ29uZmVyZW5jZVdvcmtMaXN0QWN0aW9uPihUZWxlcGhvbmVPclNldHRsZWRDb25mZXJlbmNlV29ya0xpc3RBY3Rpb25UeXBlcy5Mb2FkVGVsZXBob25lT3JTZXR0bGVkQ29uZmVyZW5jZVdvcmtMaXN0KSxcclxuICAgIHN3aXRjaE1hcCgoKSA9PiB7XHJcbiAgICAgIHJldHVybiB0aGlzLnRlbGVwaG9uZU9yU2V0dGxlZENvbmZlcmVuY2UubG9hZFdvcmtMaXN0KCkucGlwZShcclxuICAgICAgICBtYXAoKGRhdGE6IFRlbGVwaG9uZU9yU2V0dGxlZENvbmZlcmVuY2VXb3JrTGlzdCkgPT5cclxuICAgICAgICAgIG5ldyBMb2FkVGVsZXBob25lT3JTZXR0bGVkQ29uZmVyZW5jZVdvcmtMaXN0U3VjY2Vzc0FjdGlvbihkYXRhKSxcclxuICAgICAgICApLFxyXG4gICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1hbnlcclxuICAgICAgICBjYXRjaEVycm9yKChlcnI6IGFueSkgPT4gb2YobmV3IExvYWRUZWxlcGhvbmVPclNldHRsZWRDb25mZXJlbmNlV29ya0xpc3RGYWlsQWN0aW9uKG5ldyBTZWFtc0h0dHBSZXNwb25zZShnZXQoZXJyLCAnZXJyb3InKSkpKSksXHJcbiAgICAgICk7XHJcbiAgICB9KSxcclxuICApO1xyXG5cclxuICBARWZmZWN0KClcclxuICBzYXZlU3RhdHVzJDogT2JzZXJ2YWJsZTxBY3Rpb24+ID0gdGhpcy5hY3Rpb25zJC5waXBlKFxyXG4gICAgb2ZUeXBlPFNhdmVUZWxlcGhvbmVPclNldHRsZWRDb25mZXJlbmNlU3RhdHVzQWN0aW9uPihUZWxlcGhvbmVPclNldHRsZWRDb25mZXJlbmNlV29ya0xpc3RBY3Rpb25UeXBlcy5TYXZlU3RhdHVzKSxcclxuICAgIG1hcCgoYWN0aW9uOiBTYXZlVGVsZXBob25lT3JTZXR0bGVkQ29uZmVyZW5jZVN0YXR1c0FjdGlvbikgPT4gYWN0aW9uLnBheWxvYWQpLFxyXG4gICAgc3dpdGNoTWFwKChwYXlsb2FkOiBhbnkpID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMudGVsZXBob25lT3JTZXR0bGVkQ29uZmVyZW5jZS5zYXZlU3RhdHVzKHBheWxvYWQpLnBpcGUoXHJcbiAgICAgICAgbWFwKChkYXRhOiBTYXZlU3RhdHVzUmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgIHJldHVybiBuZXcgU2F2ZVRlbGVwaG9uZU9yU2V0dGxlZENvbmZlcmVuY2VTdGF0dXNTdWNjZXNzQWN0aW9uKGRhdGEpO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycjogdW5rbm93bikgPT4gb2YobmV3IFNhdmVUZWxlcGhvbmVPclNldHRsZWRDb25mZXJlbmNlU3RhdHVzRmFpbEFjdGlvbihuZXcgU2VhbXNIdHRwUmVzcG9uc2UoZ2V0KGVyciwgJ2Vycm9yJykpKSkpLFxyXG4gICAgICApO1xyXG4gICAgfSksXHJcbiAgKTtcclxuXHJcbiAgQEVmZmVjdCh7IGRpc3BhdGNoOiBmYWxzZSB9KVxyXG4gIGxvYWRXb3JrTGlzdEZhaWxBY3Rpb24kOiBPYnNlcnZhYmxlPFNlYW1zSHR0cFJlc3BvbnNlPiA9IHRoaXMuYWN0aW9ucyQucGlwZShcclxuICAgIG9mVHlwZShcclxuICAgICAgVGVsZXBob25lT3JTZXR0bGVkQ29uZmVyZW5jZVdvcmtMaXN0QWN0aW9uVHlwZXMuTG9hZFRlbGVwaG9uZU9yU2V0dGxlZENvbmZlcmVuY2VXb3JrTGlzdEZhaWwsXHJcbiAgICAgIFRlbGVwaG9uZU9yU2V0dGxlZENvbmZlcmVuY2VXb3JrTGlzdEFjdGlvblR5cGVzLlNhdmVTdGF0dXNGYWlsKSxcclxuICAgIG1hcCgoYWN0aW9uOiBMb2FkVGVsZXBob25lT3JTZXR0bGVkQ29uZmVyZW5jZVdvcmtMaXN0RmFpbEFjdGlvbiB8IFNhdmVUZWxlcGhvbmVPclNldHRsZWRDb25mZXJlbmNlU3RhdHVzRmFpbEFjdGlvbikgPT4gZ2V0KGFjdGlvbiwgJ3BheWxvYWQnKSksXHJcbiAgICB0YXAoKHJlc3BvbnNlOiBTZWFtc0h0dHBSZXNwb25zZSkgPT4ge1xyXG4gICAgICBoYW5kbGVMb2FkRmFpbCh0aGlzLnRvYXN0ciwgX21hcChnZXQocmVzcG9uc2UsICdzZWFtc0Vycm9yQ29kZXMnKSwgJ3ZhbHVlJykpO1xyXG4gICAgfSksXHJcbiAgKTtcclxuXHJcbiAgQEVmZmVjdCh7IGRpc3BhdGNoOiBmYWxzZSB9KVxyXG4gIHNhdmVTdGF0dXNTdWNjZXNzJDogT2JzZXJ2YWJsZTxTYXZlVGVsZXBob25lT3JTZXR0bGVkQ29uZmVyZW5jZVN0YXR1c1N1Y2Nlc3NBY3Rpb24+ID0gdGhpcy5hY3Rpb25zJC5waXBlKFxyXG4gICAgb2ZUeXBlPFNhdmVUZWxlcGhvbmVPclNldHRsZWRDb25mZXJlbmNlU3RhdHVzU3VjY2Vzc0FjdGlvbj4oVGVsZXBob25lT3JTZXR0bGVkQ29uZmVyZW5jZVdvcmtMaXN0QWN0aW9uVHlwZXMuU2F2ZVN0YXR1c1N1Y2Nlc3MpLFxyXG4gICAgdGFwKChhY3Rpb246IFNhdmVUZWxlcGhvbmVPclNldHRsZWRDb25mZXJlbmNlU3RhdHVzU3VjY2Vzc0FjdGlvbikgPT4ge1xyXG4gICAgICBoYW5kbGVTdWNjZXNzKHRoaXMudG9hc3RyKTtcclxuICAgICAgY29uc3QgZ3JhbnRPcHRpb246IEdyYW50T3B0aW9uVHlwZSA9IGdldEdyYW50T3B0aW9uKGdldChhY3Rpb24sICdwYXlsb2FkJykpO1xyXG4gICAgICBjb25zdCBhY3Rpb25JZCA9IGdldChhY3Rpb24sICdwYXlsb2FkLmFjdGlvbklkJyk7XHJcbiAgICAgIGlmIChhY3Rpb25JZCA9PT0gZ29vZENhdXNlR3JhbnRlZEFjdGlvbklkKSB7XHJcbiAgICAgICAgdGhpcy5jb25jaWxpYXRpb25Xb3JrTGlzdFNlcnZpY2UuZGlzcGF0Y2hQcmludERvY3VtZW50KHsgbGV0dGVyVHlwZTogZ2V0KGFjdGlvbiwgJ3BheWxvYWQubGV0dGVyVHlwZScpLCBhc3Nlc3NtZW50SWQ6IGdldChhY3Rpb24sICdwYXlsb2FkLmFzc2Vzc21lbnRJZCcpLCBDbXNDYXNlSUQ6IGdldChhY3Rpb24sICdwYXlsb2FkLmNhc2VJZCcpLCB3b3JrbGlzdFR5cGU6IHRlbGVDb25mZXJlbmNlSWQsaW5mcmFjdGlvbkRhdGU6IGdldChhY3Rpb24sJ3BheWxvYWQuaW5mcmFjdGlvbkRhdGUnKSwgfSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGdyYW50T3B0aW9uID09PSBHcmFudE9wdGlvblR5cGUuQXBwb2ludG1lbnQpIHtcclxuICAgICAgICAvLyB0aGlzLnRlbGVwaG9uZU9yU2V0dGxlZENvbmZlcmVuY2UuZGlzcGF0Y2hPcGVuQXBwb2ludG1lbnREaWFsb2coZ2V0KGFjdGlvbiwgJ3BheWxvYWQuY2FzZUlkJykpO1xyXG4gICAgICAgIHRoaXMudGVsZXBob25lT3JTZXR0bGVkQ29uZmVyZW5jZS5kaXNwYXRjaExvYWRUZWxlcGhvbmVPclNldHRsZWRDb25mZXJlbmNlV29ya0xpc3QoKTtcclxuICAgICAgfSBlbHNlIGlmIChncmFudE9wdGlvbiA9PT0gR3JhbnRPcHRpb25UeXBlLkVQKSB7XHJcbiAgICAgICAgdGhpcy50YWJTZXJ2aWNlLmRpc3BhdGNoQWRkVGFiKHtcclxuICAgICAgICAgIHRhYk5hbWU6ICdlYS1lcC8nICsgZ2V0KGFjdGlvbiwgJ3BheWxvYWQuY2FzZUlkJyksXHJcbiAgICAgICAgICByb3V0ZTogJy9lYS1lcC8nICsgZ2V0KGFjdGlvbiwgJ3BheWxvYWQuY2FzZUlkJyksXHJcbiAgICAgICAgICBsYWJlbDogJ0Fzc2Vzc21lbnRzJyxcclxuICAgICAgICAgIGNhbkNsb3NlOiB0cnVlLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtgL2VhLWVwLyR7Z2V0KGFjdGlvbiwgJ3BheWxvYWQuY2FzZUlkJyl9YF0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMudGVsZXBob25lT3JTZXR0bGVkQ29uZmVyZW5jZS5kaXNwYXRjaExvYWRUZWxlcGhvbmVPclNldHRsZWRDb25mZXJlbmNlV29ya0xpc3QoKTtcclxuICAgICAgfVxyXG4gICAgfSksXHJcbiAgKTtcclxuXHJcbiAgQEVmZmVjdCgpXHJcbiAgb3BlbkRpYWxvZyQ6IE9ic2VydmFibGU8QWN0aW9uPiA9IHRoaXMuYWN0aW9ucyQucGlwZShcclxuICAgIG9mVHlwZTxPcGVuQXBwb2ludG1lbnREaWFsb2dBY3Rpb24+KFRlbGVwaG9uZU9yU2V0dGxlZENvbmZlcmVuY2VXb3JrTGlzdEFjdGlvblR5cGVzLk9wZW5BcHBvaW50bWVudERpYWxvZyksXHJcbiAgICBleGhhdXN0TWFwKChhY3Rpb246IE9wZW5BcHBvaW50bWVudERpYWxvZ0FjdGlvbikgPT4ge1xyXG4gICAgICByZXR1cm4gb3BlbkFwcG9pbnRtZW50RGlhbG9nKHRoaXMuZGlhbG9nLCBnZXQoYWN0aW9uLCAncGF5bG9hZCcpKTtcclxuICAgIH0pLFxyXG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWFueVxyXG4gICAgbWFwKChyZXN1bHQ6IGFueSkgPT4ge1xyXG4gICAgICByZXR1cm4gbmV3IExvYWRUZWxlcGhvbmVPclNldHRsZWRDb25mZXJlbmNlV29ya0xpc3RBY3Rpb24oKTtcclxuICAgIH0pLFxyXG4gICk7XHJcblxyXG4gIEBFZmZlY3QoKVxyXG4gIFNhdmVTY2hlZHVsaW5nQ2FsbEJhY2tEZXRhaWwkOiBPYnNlcnZhYmxlPEFjdGlvbj4gPSB0aGlzLmFjdGlvbnMkLnBpcGUoXHJcbiAgICBvZlR5cGU8U2F2ZVNjaGVkdWxpbmdDYWxsQmFja0FjdGlvbj4oVGVsZXBob25lT3JTZXR0bGVkQ29uZmVyZW5jZVdvcmtMaXN0QWN0aW9uVHlwZXMuU2F2ZVNjaGVkdWxpbmdDYWxsQmFjayksXHJcbiAgICBtYXAoKGFjdGlvbjogU2F2ZVNjaGVkdWxpbmdDYWxsQmFja0FjdGlvbikgPT4gYWN0aW9uLnBheWxvYWQpLFxyXG4gICAgc3dpdGNoTWFwKChwYXlsb2FkOiBTYXZlU2NoZWR1bGluZ0NhbGxCYWNrTW9kZWwpID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMudGVsZXBob25lT3JTZXR0bGVkQ29uZmVyZW5jZS5TYXZlU2NoZWR1bGluZ0NhbGxCYWNrRGV0YWlsRGV0YWlscyhwYXlsb2FkKS5waXBlKFxyXG4gICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbm8tYW55XHJcbiAgICAgICAgbWFwKChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChkYXRhKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBuZXcgU2F2ZVNjaGVkdWxpbmdDYWxsQmFja1N1Y2Nlc3NBY3Rpb24oeyBkYXRhLCBwYXlsb2FkIH0pO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIG5ldyBTYXZlU2NoZWR1bGluZ0NhbGxCYWNrU3VjY2Vzc0FjdGlvbih1bmRlZmluZWQpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycjogdW5rbm93bikgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIG9mKG5ldyBTYXZlU2NoZWR1bGluZ0NhbGxCYWNrRmFpbEFjdGlvbihuZXcgU2VhbXNIdHRwUmVzcG9uc2UoZ2V0KGVyciwgJ2Vycm9yJykpKSk7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICk7XHJcbiAgICB9KSxcclxuICApO1xyXG4gIEBFZmZlY3QoeyBkaXNwYXRjaDogZmFsc2UgfSlcclxuICBzYXZTdWNjZXNzQWN0aW9uJDogT2JzZXJ2YWJsZTx2b2lkPiA9IHRoaXMuYWN0aW9ucyQucGlwZShcclxuICAgIG9mVHlwZTxTYXZlU2NoZWR1bGluZ0NhbGxCYWNrU3VjY2Vzc0FjdGlvbj4oVGVsZXBob25lT3JTZXR0bGVkQ29uZmVyZW5jZVdvcmtMaXN0QWN0aW9uVHlwZXMuU2F2ZVNjaGVkdWxpbmdDYWxsQmFja1N1Y2Nlc3MpLFxyXG4gICAgbWFwKChhY3Rpb246IFNhdmVTY2hlZHVsaW5nQ2FsbEJhY2tTdWNjZXNzQWN0aW9uKSA9PiB7XHJcbiAgICAgIGhhbmRsZVN1Y2Nlc3ModGhpcy50b2FzdHIpO1xyXG4gICAgICB0aGlzLnRlbGVwaG9uZU9yU2V0dGxlZENvbmZlcmVuY2UuZGlzcGF0Y2hMb2FkVGVsZXBob25lT3JTZXR0bGVkQ29uZmVyZW5jZVdvcmtMaXN0KCk7XHJcbiAgICB9KSxcclxuICApO1xyXG4gIEBFZmZlY3QoeyBkaXNwYXRjaDogZmFsc2UgfSlcclxuICBzYXZGYWlsQWN0aW9uJDogT2JzZXJ2YWJsZTxTZWFtc0h0dHBSZXNwb25zZT4gPSB0aGlzLmFjdGlvbnMkLnBpcGUoXHJcbiAgICBvZlR5cGU8U2F2ZVNjaGVkdWxpbmdDYWxsQmFja0ZhaWxBY3Rpb24+KFRlbGVwaG9uZU9yU2V0dGxlZENvbmZlcmVuY2VXb3JrTGlzdEFjdGlvblR5cGVzLlNhdmVTY2hlZHVsaW5nQ2FsbEJhY2tGYWlsKSxcclxuICAgIG1hcCgoYWN0aW9uOiBTYXZlU2NoZWR1bGluZ0NhbGxCYWNrRmFpbEFjdGlvbikgPT4gZ2V0KGFjdGlvbiwgJ3BheWxvYWQnKSksXHJcbiAgICB0YXAoKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuICAgICAgaGFuZGxlTG9hZEZhaWwodGhpcy50b2FzdHIsIF9tYXAoZ2V0KHJlc3BvbnNlLCAnc2VhbXNFcnJvckNvZGVzJyksICd2YWx1ZScpKVxyXG5cclxuXHJcbiAgICB9KSxcclxuXHJcbiAgKTtcclxuXHJcblxyXG4gIEBFZmZlY3QoKVxyXG4gIFNhdmVPdXRyZWFjaFdvcmtsaXN0RGV0YWlsJDogT2JzZXJ2YWJsZTxBY3Rpb24+ID0gdGhpcy5hY3Rpb25zJC5waXBlKFxyXG4gICAgb2ZUeXBlPFNhdmVPdXRyZWFjaFdvcmtsaXN0QWN0aW9uPihUZWxlcGhvbmVPclNldHRsZWRDb25mZXJlbmNlV29ya0xpc3RBY3Rpb25UeXBlcy5TYXZlT3V0cmVhY2hXb3JrbGlzdCksXHJcbiAgICBtYXAoKGFjdGlvbjogU2F2ZU91dHJlYWNoV29ya2xpc3RBY3Rpb24pID0+IGFjdGlvbi5wYXlsb2FkKSxcclxuICAgIHN3aXRjaE1hcCgocGF5bG9hZDogU2F2ZU91dHJlYWNoTW9kZWwpID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMudGVsZXBob25lT3JTZXR0bGVkQ29uZmVyZW5jZS5TYXZlT3V0cmVhY2hXb3JrbGlzdERldGFpbERldGFpbHMocGF5bG9hZCkucGlwZShcclxuICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG5vLWFueVxyXG4gICAgICAgIG1hcCgoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAoZGF0YSkge1xyXG4gICAgICAgICAgICByZXR1cm4gbmV3IFNhdmVPdXRyZWFjaFdvcmtsaXN0U3VjY2Vzc0FjdGlvbih7IGRhdGEsIHBheWxvYWQgfSk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gbmV3IFNhdmVPdXRyZWFjaFdvcmtsaXN0U3VjY2Vzc0FjdGlvbih1bmRlZmluZWQpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycjogdW5rbm93bikgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIG9mKG5ldyBTYXZlT3V0cmVhY2hXb3JrbGlzdEZhaWxBY3Rpb24obmV3IFNlYW1zSHR0cFJlc3BvbnNlKGdldChlcnIsICdlcnJvcicpKSkpO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICApO1xyXG4gICAgfSksXHJcbiAgKTtcclxuICBARWZmZWN0KHsgZGlzcGF0Y2g6IGZhbHNlIH0pXHJcbiAgc2F2ZVN1Y2Nlc3NBY3Rpb24kOiBPYnNlcnZhYmxlPHZvaWQ+ID0gdGhpcy5hY3Rpb25zJC5waXBlKFxyXG4gICAgb2ZUeXBlPFNhdmVPdXRyZWFjaFdvcmtsaXN0U3VjY2Vzc0FjdGlvbj4oVGVsZXBob25lT3JTZXR0bGVkQ29uZmVyZW5jZVdvcmtMaXN0QWN0aW9uVHlwZXMuU2F2ZU91dHJlYWNoV29ya2xpc3RTdWNjZXNzKSxcclxuICAgIG1hcCgoYWN0aW9uOiBTYXZlT3V0cmVhY2hXb3JrbGlzdFN1Y2Nlc3NBY3Rpb24pID0+IHtcclxuICAgICAgdGhpcy50ZWxlcGhvbmVPclNldHRsZWRDb25mZXJlbmNlLmRpc3BhdGNoTG9hZFRlbGVwaG9uZU9yU2V0dGxlZENvbmZlcmVuY2VXb3JrTGlzdCgpO1xyXG4gICAgICBoYW5kbGVTdWNjZXNzKHRoaXMudG9hc3RyKTtcclxuICAgIH0pXHJcblxyXG4gICk7XHJcbiAgQEVmZmVjdCh7IGRpc3BhdGNoOiBmYWxzZSB9KVxyXG4gIHNhdmVGYWlsQWN0aW9uJDogT2JzZXJ2YWJsZTxTZWFtc0h0dHBSZXNwb25zZT4gPSB0aGlzLmFjdGlvbnMkLnBpcGUoXHJcbiAgICBvZlR5cGU8U2F2ZU91dHJlYWNoV29ya2xpc3RGYWlsQWN0aW9uPihUZWxlcGhvbmVPclNldHRsZWRDb25mZXJlbmNlV29ya0xpc3RBY3Rpb25UeXBlcy5TYXZlT3V0cmVhY2hXb3JrbGlzdEZhaWwpLFxyXG4gICAgbWFwKChhY3Rpb246IFNhdmVPdXRyZWFjaFdvcmtsaXN0RmFpbEFjdGlvbikgPT4gZ2V0KGFjdGlvbiwgJ3BheWxvYWQnKSksXHJcbiAgICB0YXAoKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuICAgICAgaGFuZGxlTG9hZEZhaWwodGhpcy50b2FzdHIsIF9tYXAoZ2V0KHJlc3BvbnNlLCAnc2VhbXNFcnJvckNvZGVzJyksICd2YWx1ZScpKTtcclxuXHJcbiAgICB9KSxcclxuXHJcbiAgKTtcclxuICBARWZmZWN0KClcclxuICBzYXZlU3RhdHVzd29ya3MkOiBPYnNlcnZhYmxlPEFjdGlvbj4gPSB0aGlzLmFjdGlvbnMkLnBpcGUoXHJcbiAgICBvZlR5cGU8U2F2ZVJlYXNzaWduQWN0aW9uPihUZWxlcGhvbmVPclNldHRsZWRDb25mZXJlbmNlV29ya0xpc3RBY3Rpb25UeXBlcy5TYXZlUmVhc3NpZ24pLFxyXG4gICAgbWFwKChhY3Rpb246IFNhdmVSZWFzc2lnbkFjdGlvbikgPT4gYWN0aW9uLnBheWxvYWQpLFxyXG4gICAgc3dpdGNoTWFwKChwYXlsb2FkOiBTdWJtaXRSZWFzc2lnbk1vZGVsKSA9PiB7XHJcbiAgICAgIHJldHVybiB0aGlzLnRlbGVwaG9uZU9yU2V0dGxlZENvbmZlcmVuY2UuU2F2ZVJlYXNzaWduKHBheWxvYWQpLnBpcGUoXHJcbiAgICAgICAgbWFwKChkYXRhKSA9PiB7XHJcbiAgICAgICAgICBpZiAoZGF0YSkge1xyXG4gICAgICAgICAgICByZXR1cm4gbmV3IFNhdmVSZWFzc2lnblN1Y2Nlc3NBY3Rpb24oZGF0YSk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gbmV3IFNhdmVSZWFzc2lnbkZhaWxBY3Rpb24odW5kZWZpbmVkKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KSxcclxuICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tYW55XHJcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyOiBhbnkpID0+IHtcclxuICAgICAgICAgIHJldHVybiBvZihuZXcgU2F2ZVJlYXNzaWduRmFpbEFjdGlvbihuZXcgU2VhbXNIdHRwUmVzcG9uc2UoZ2V0KGVyciwgJ2Vycm9yJykpKSk7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICk7XHJcbiAgICB9KSxcclxuICApO1xyXG4gIEBFZmZlY3QoeyBkaXNwYXRjaDogZmFsc2UgfSlcclxuICBzYXZlUmVhc3NpZ25GYWlsQWN0aW9uJDogT2JzZXJ2YWJsZTxTZWFtc0h0dHBSZXNwb25zZT4gPSB0aGlzLmFjdGlvbnMkLnBpcGUoXHJcbiAgICBvZlR5cGU8U2F2ZVJlYXNzaWduRmFpbEFjdGlvbj4oVGVsZXBob25lT3JTZXR0bGVkQ29uZmVyZW5jZVdvcmtMaXN0QWN0aW9uVHlwZXMuU2F2ZVJlYXNzaWduRmFpbCksXHJcbiAgICBtYXAoKGFjdGlvbjogU2F2ZVJlYXNzaWduRmFpbEFjdGlvbikgPT4gZ2V0KGFjdGlvbiwgJ3BheWxvYWQnKSksXHJcbiAgICB0YXAoKHJlc3BvbnNlOiBTZWFtc0h0dHBSZXNwb25zZSkgPT4ge1xyXG4gICAgICBoYW5kbGVMb2FkRmFpbCh0aGlzLnRvYXN0ciwgX21hcChnZXQocmVzcG9uc2UsICdzZWFtc0Vycm9yQ29kZXMnKSwgJ3ZhbHVlJykpO1xyXG4gICAgfSksXHJcbiAgKTtcclxuICBARWZmZWN0KHsgZGlzcGF0Y2g6IGZhbHNlIH0pXHJcbiAgc2F2ZVJlYXNzaWduU3VjY2Vzc0FjdGlvbiQ6IE9ic2VydmFibGU8dm9pZD4gPSB0aGlzLmFjdGlvbnMkLnBpcGUoXHJcbiAgICBvZlR5cGU8U2F2ZVJlYXNzaWduU3VjY2Vzc0FjdGlvbj4oVGVsZXBob25lT3JTZXR0bGVkQ29uZmVyZW5jZVdvcmtMaXN0QWN0aW9uVHlwZXMuU2F2ZVJlYXNzaWduU3VjY2VzcyksXHJcbiAgICBtYXAoKGFjdGlvbjogU2F2ZVJlYXNzaWduU3VjY2Vzc0FjdGlvbikgPT4ge1xyXG4gICAgICBoYW5kbGVTdWNjZXNzKHRoaXMudG9hc3RyKTtcclxuICAgICAgdGhpcy50ZWxlcGhvbmVPclNldHRsZWRDb25mZXJlbmNlLmRpc3BhdGNoTG9hZFRlbGVwaG9uZU9yU2V0dGxlZENvbmZlcmVuY2VXb3JrTGlzdCgpO1xyXG4gICAgfSksXHJcbiAgKTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSB0ZWxlcGhvbmVPclNldHRsZWRDb25mZXJlbmNlOiBUZWxlcGhvbmVPclNldHRsZWRDb25mZXJlbmNlV29ya0xpc3RTZXJ2aWNlLHByaXZhdGUgY29uY2lsaWF0aW9uV29ya0xpc3RTZXJ2aWNlOiBDb25jaWxpYXRpb25BcHBvaW50bWVudFdvcmtMaXN0U2VydmljZSxcclxuICAgIHByaXZhdGUgdG9hc3RyOiBUb2FzdHJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBkaWFsb2c6IE1hdERpYWxvZyxcclxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwcml2YXRlIHRhYlNlcnZpY2U6IFRhYlNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGFjdGlvbnMkOiBBY3Rpb25zKSB7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|