@prutech/compliance 1.0.241 → 1.0.242

Sign up to get free protection for your applications and to get access to all the features.
Files changed (39) hide show
  1. package/esm2020/lib/conciliation-appointment-work-list/actions/conciliation-appointment-work-list.actions.mjs +4 -4
  2. package/esm2020/lib/conciliation-appointment-work-list/components/context-menu/conciliation-context-menu.component.mjs +11 -3
  3. package/esm2020/lib/conciliation-appointment-work-list/components/schedule-call-back-action/schedule-call-back-action.component.mjs +27 -20
  4. package/esm2020/lib/conciliation-appointment-work-list/conciliation-appointment-work-list.component.mjs +2 -1
  5. package/esm2020/lib/conciliation-appointment-work-list/effects/conciliation-appointment-work-list.effect.mjs +16 -3
  6. package/esm2020/lib/conciliation-appointment-work-list/models/federal-holidays-model.mjs +7 -4
  7. package/esm2020/lib/conciliation-appointment-work-list/reducers/federal-holidays-list.reducer.mjs +33 -0
  8. package/esm2020/lib/conciliation-appointment-work-list/reducers/root.reducer.mjs +8 -1
  9. package/esm2020/lib/conciliation-appointment-work-list/services/conciliation-appointment-work-list.service.mjs +4 -4
  10. package/esm2020/lib/conciliation-appointment-work-list/state/federal-holidays-list.state.mjs +10 -0
  11. package/esm2020/lib/noi-work-list/components/conference-by-phone-dialogbox/conference-by-phone-dialogbox.component.mjs +39 -6
  12. package/esm2020/lib/noi-work-list/components/context-menu/context-menu.component.mjs +6 -2
  13. package/esm2020/lib/noi-work-list/models/conference-by-phone-formmodel.mjs +2 -2
  14. package/esm2020/lib/noi-work-list/noi-work-list.component.mjs +11 -8
  15. package/esm2020/lib/noi-work-list/noi-work-list.module.mjs +4 -3
  16. package/esm2020/lib/telephone-settled-conference/components/context-menu/context-menu.component.mjs +6 -1
  17. package/esm2020/lib/telephone-settled-conference/components/re-schedule-call-back-action/re-schedule-call-back-action.component.mjs +24 -2
  18. package/esm2020/lib/telephone-settled-conference/models/conference-by-phone-formmodel.mjs +2 -2
  19. package/esm2020/lib/telephone-settled-conference/telephone-settled-conference.component.mjs +15 -8
  20. package/fesm2015/prutech-compliance.mjs +220 -79
  21. package/fesm2015/prutech-compliance.mjs.map +1 -1
  22. package/fesm2020/prutech-compliance.mjs +227 -79
  23. package/fesm2020/prutech-compliance.mjs.map +1 -1
  24. package/lib/conciliation-appointment-work-list/actions/conciliation-appointment-work-list.actions.d.ts +3 -3
  25. package/lib/conciliation-appointment-work-list/components/context-menu/conciliation-context-menu.component.d.ts +2 -0
  26. package/lib/conciliation-appointment-work-list/components/schedule-call-back-action/schedule-call-back-action.component.d.ts +7 -4
  27. package/lib/conciliation-appointment-work-list/effects/conciliation-appointment-work-list.effect.d.ts +1 -0
  28. package/lib/conciliation-appointment-work-list/models/federal-holidays-model.d.ts +5 -3
  29. package/lib/conciliation-appointment-work-list/reducers/federal-holidays-list.reducer.d.ts +5 -0
  30. package/lib/conciliation-appointment-work-list/reducers/root.reducer.d.ts +8 -0
  31. package/lib/conciliation-appointment-work-list/services/conciliation-appointment-work-list.service.d.ts +1 -1
  32. package/lib/conciliation-appointment-work-list/state/federal-holidays-list.state.d.ts +8 -0
  33. package/lib/noi-work-list/components/conference-by-phone-dialogbox/conference-by-phone-dialogbox.component.d.ts +7 -0
  34. package/lib/noi-work-list/components/context-menu/context-menu.component.d.ts +1 -0
  35. package/lib/noi-work-list/noi-work-list.component.d.ts +3 -1
  36. package/lib/telephone-settled-conference/components/context-menu/context-menu.component.d.ts +1 -0
  37. package/lib/telephone-settled-conference/components/re-schedule-call-back-action/re-schedule-call-back-action.component.d.ts +4 -0
  38. package/lib/telephone-settled-conference/telephone-settled-conference.component.d.ts +4 -1
  39. package/package.json +1 -1
@@ -24,9 +24,9 @@ export var ConciliationAppointmentWorkListActionTypes;
24
24
  ConciliationAppointmentWorkListActionTypes["PrintDocument"] = "[FIA1187 Document] Print";
25
25
  ConciliationAppointmentWorkListActionTypes["PrintDocumentSuccess"] = "[FIA1187 Document] Print Success";
26
26
  ConciliationAppointmentWorkListActionTypes["PrintDocumentFail"] = "[FIA1187 Document] Print Fail";
27
- ConciliationAppointmentWorkListActionTypes["LoadFederalHolidaysList"] = "[Conciliation Federal Holidays List] Load";
28
- ConciliationAppointmentWorkListActionTypes["LoadFederalHolidaysListSuccess"] = "[Conciliation Federal Holidays List] Load Success";
29
- ConciliationAppointmentWorkListActionTypes["LoadFederalHolidaysListFail"] = "[Conciliation Federal Holidays List] Load Fail";
27
+ ConciliationAppointmentWorkListActionTypes["LoadFederalHolidaysList"] = "[Federal Holidays List] Load";
28
+ ConciliationAppointmentWorkListActionTypes["LoadFederalHolidaysListSuccess"] = "[Federal Holidays List] Load Success";
29
+ ConciliationAppointmentWorkListActionTypes["LoadFederalHolidaysListFail"] = "[Federal Holidays List] Load Fail";
30
30
  })(ConciliationAppointmentWorkListActionTypes || (ConciliationAppointmentWorkListActionTypes = {}));
31
31
  export class LoadConciliationWorkListAction {
32
32
  constructor(payload) {
@@ -187,4 +187,4 @@ export class LoadFederalHolidaysListFailAction {
187
187
  this.type = ConciliationAppointmentWorkListActionTypes.LoadFederalHolidaysListFail;
188
188
  }
189
189
  }
190
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uY2lsaWF0aW9uLWFwcG9pbnRtZW50LXdvcmstbGlzdC5hY3Rpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJ1dGVjaC9jb21wbGlhbmNlL3NyYy9saWIvY29uY2lsaWF0aW9uLWFwcG9pbnRtZW50LXdvcmstbGlzdC9hY3Rpb25zL2NvbmNpbGlhdGlvbi1hcHBvaW50bWVudC13b3JrLWxpc3QuYWN0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFZQSx3QkFBd0I7QUFDeEIsTUFBTSxDQUFOLElBQVksMENBb0NYO0FBcENELFdBQVksMENBQTBDO0lBQ3BELG1HQUFxRCxDQUFBO0lBQ3JELGtIQUFvRSxDQUFBO0lBQ3BFLDRHQUE4RCxDQUFBO0lBRTlELHVGQUF5QyxDQUFBO0lBQ3pDLHNHQUF3RCxDQUFBO0lBQ3hELGdHQUFrRCxDQUFBO0lBRWxELDhHQUFnRSxDQUFBO0lBQ2hFLGdIQUFrRSxDQUFBO0lBRWxFLHNIQUF3RSxDQUFBO0lBQ3hFLG9JQUFzRixDQUFBO0lBQ3RGLDhIQUFnRixDQUFBO0lBRWhGLG1HQUFxRCxDQUFBO0lBQ3JELGtIQUFvRSxDQUFBO0lBQ3BFLDRHQUE4RCxDQUFBO0lBRTlELG1GQUFxQyxDQUFBO0lBQ3JDLGtHQUFvRCxDQUFBO0lBQ3BELDRGQUE4QyxDQUFBO0lBRTlDLGlIQUFtRSxDQUFBO0lBQ25FLGdJQUFrRixDQUFBO0lBQ2xGLDBIQUE0RSxDQUFBO0lBRTVFLHdGQUEwQyxDQUFBO0lBQzFDLHVHQUF5RCxDQUFBO0lBQ3pELGlHQUFtRCxDQUFBO0lBRW5ELG1IQUFxRSxDQUFBO0lBQ3JFLGtJQUFvRixDQUFBO0lBQ3BGLDRIQUE4RSxDQUFBO0FBRWhGLENBQUMsRUFwQ1csMENBQTBDLEtBQTFDLDBDQUEwQyxRQW9DckQ7QUFFRCxNQUFNLE9BQU8sOEJBQThCO0lBR3pDLFlBQW1CLE9BQWE7UUFBYixZQUFPLEdBQVAsT0FBTyxDQUFN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T0FBTyxDQUFvQjtRQUZyQyxTQUFJLEdBQVcsMENBQTBDLENBQUMsaUJBQWlCLENBQUM7SUFHckYsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLDZCQUE2QjtJQUd4QyxZQUFtQixPQUFhO1FBQWIsWUFBTyxHQUFQLE9BQU8sQ0FBTTtRQUZ2QixTQUFJLEdBQVcsMENBQTBDLENBQUMsdUJBQXVCLENBQUM7SUFHM0YsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLG9DQUFvQztJQUcvQyxZQUFtQixPQUErQjtRQUEvQixZQUFPLEdBQVAsT0FBTyxDQUF3QjtRQUZ6QyxTQUFJLEdBQVcsMENBQTBDLENBQUMsOEJBQThCLENBQUM7SUFHbEcsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLGlDQUFpQztJQUc1QyxZQUFtQixPQUEyQjtRQUEzQixZQUFPLEdBQVAsT0FBTyxDQUFvQjtRQUZyQyxTQUFJLEdBQVcsMENBQTBDLENBQUMsMkJBQTJCLENBQUM7SUFHL0YsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWN0aW9uIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xyXG5pbXBvcnQgeyBTZWFtc0h0dHBSZXNwb25zZSB9IGZyb20gJ0BwcnV0ZWNoL2NvbXBvbmVudHMnO1xyXG5cclxuaW1wb3J0IHsgU2F2ZUNvbmNpbGlhdGlvblN0YXR1c1BheWxvYWQgfSBmcm9tICcuLi9tb2RlbHMvc2F2ZS1jb25jaWxpYXRpb24tc3RhdHVzLXBheWxvYWQubW9kZWwnO1xyXG5pbXBvcnQgeyBDb25jaWxpYXRpb25Xb3JrTGlzdCB9IGZyb20gJy4uL21vZGVscy9jb25jaWxpYXRpb24td29yay1saXN0JztcclxuaW1wb3J0IHsgU2F2ZVN0YXR1c1Jlc3BvbnNlIH0gZnJvbSAnLi4vbW9kZWxzL3NhdmUtc3RhdHVzLXJlc3BvbnNlJztcclxuaW1wb3J0IHsgU2F2ZVNjaGVkdWxpbmdDYWxsQmFja01vZGVsIH0gZnJvbSAnLi4vbW9kZWxzL3NhdmUtc2NoZWR1bGluZy1jYWxsLWJhY2subW9kZWwnO1xyXG5pbXBvcnQgeyBTYXZlT3V0cmVhY2hNb2RlbCB9IGZyb20gJy4uL21vZGVscy9zYXZlLW91dHJlYWNoLW1vZGVsJztcclxuaW1wb3J0IHsgU3VibWl0UmVhc3NpZ25Nb2RlbCB9IGZyb20gJy4uL21vZGVscy9zdWJtaXQtcmUtYXNzaWduLWZyb21tb2RlbCc7XHJcbmltcG9ydCB7IFN1Ym1pdEJhdGNoUG9vbEFwcG9pbnRtZW50TW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvc3VibWl0LWJhdGNoLXBvb2wtYXBwb2ludG1lbnQubW9kZWwnO1xyXG5pbXBvcnQgeyBGZWRlcmFsSG9saWRheXNNb2RlbCB9IGZyb20gJy4uL21vZGVscy9mZWRlcmFsLWhvbGlkYXlzLW1vZGVsJztcclxuXHJcbi8vIHRzbGludDpkaXNhYmxlOm5vLWFueVxyXG5leHBvcnQgZW51bSBDb25jaWxpYXRpb25BcHBvaW50bWVudFdvcmtMaXN0QWN0aW9uVHlwZXMge1xyXG4gIExvYWRDb25jaWxpYXRpb25Xb3JrTGlzdCA9ICdbQ29uY2lsaWF0aW9uXSBMb2FkIExpc3QnLFxyXG4gIExvYWRDb25jaWxpYXRpb25Xb3JrTGlzdFN1Y2Nlc3MgPSAnW0NvbmNpbGlhdGlvbl0gTG9hZCBMaXN0IFN1Y2Nlc3MnLFxyXG4gIExvYWRDb25jaWxpYXRpb25Xb3JrTGlzdEZhaWwgPSAnW0NvbmNpbGlhdGlvbl0gTG9hZCBMaXN0IEZhaWwnLFxyXG5cclxuICBTYXZlU3RhdHVzID0gJ1tDb25jaWxpYXRpb25dIFNhdmUgU3RhdHVzJyxcclxuICBTYXZlU3RhdHVzU3VjY2VzcyA9ICdbQ29uY2lsaWF0aW9uXSBTYXZlIFN0YXR1cyBTdWNjZXNzJyxcclxuICBTYXZlU3RhdHVzRmFpbCA9ICdbQ29uY2lsaWF0aW9uXSBTYXZlIFN0YXR1cyBGYWlsJyxcclxuXHJcbiAgT3BlbkFwcG9pbnRtZW50RGlhbG9nID0gJ1tDb25jaWxpYXRpb25dIE9wZW4gQXBwb2ludG1lbnQgRGlhbG9nJyxcclxuICBDbG9zZUFwcG9pbnRtZW50RGlhbG9nID0gJ1tDb25jaWxpYXRpb25dIENsb3NlIEFwcG9pbnRtZW50IERpYWxvZycsXHJcblxyXG4gIFNhdmVTY2hlZHVsaW5nQ2FsbEJhY2sgPSAnW1NhdmUgU2NoZWR1bGluZyBDYWxsIEJhY2sgRGV0YWlscyBTYXZlXSBTYXZlJyxcclxuICBTYXZlU2NoZWR1bGluZ0NhbGxCYWNrU3VjY2VzcyA9ICdbU2F2ZSBTY2hlZHVsaW5nIENhbGwgQmFjayBEZXRhaWwgU2F2ZV0gU2F2ZSBTdWNjZXNzJyxcclxuICBTYXZlU2NoZWR1bGluZ0NhbGxCYWNrRmFpbCA9ICdbU2F2ZSBTY2hlZHVsaW5nIENhbGwgQmFjayBEZXRhaWwgU2F2ZV0gU2F2ZSBGYWlsJyxcclxuXHJcbiAgU2F2ZU91dHJlYWNoV29ya2xpc3QgPSAnW1NhdmUgIE91dHJlYWNoIERldGFpbF0gU2F2ZScsXHJcbiAgU2F2ZU91dHJlYWNoV29ya2xpc3RTdWNjZXNzID0gJ1tTYXZlICBPdXRyZWFjaCBEZXRhaWxdIFNhdmUgU3VjY2VzcycsXHJcbiAgU2F2ZU91dHJlYWNoV29ya2xpc3RGYWlsID0gJ1tTYXZlICBPdXRyZWFjaCBEZXRhaWxdIFNhdmUgRmFpbCcsXHJcblxyXG4gIFNhdmVSZWFzc2lnbiA9ICdbU2F2ZSBSZWFzc2lnbl0gTG9hZCcsXHJcbiAgU2F2ZVJlYXNzaWduU3VjY2VzcyA9ICdbU2F2ZSBSZWFzc2lnbl0gTG9hZCBTdWNjZXNzJyxcclxuICBTYXZlUmVhc3NpZ25GYWlsID0gJ1tTYXZlIFJlYXNzaWduXSBMb2FkIEZhaWwnLFxyXG5cclxuICBTdWJtaXRCYXRjaFBvb2xBcHBvaW50bWVudCA9ICdbU3VibWl0IEJhdGNoIFBvb2wgQXBwb2ludG1lbnRdIExvYWQnLFxyXG4gIFN1Ym1pdEJhdGNoUG9vbEFwcG9pbnRtZW50U3VjY2VzcyA9ICdbU3VibWl0IEJhdGNoIFBvb2wgQXBwb2ludG1lbnRdIExvYWQgU3VjY2VzcycsXHJcbiAgU3VibWl0QmF0Y2hQb29sQXBwb2ludG1lbnRGYWlsID0gJ1tTdWJtaXQgQmF0Y2ggUG9vbCBBcHBvaW50bWVudF0gTG9hZCBGYWlsJyxcclxuXHJcbiAgUHJpbnREb2N1bWVudCA9ICdbRklBMTE4NyBEb2N1bWVudF0gUHJpbnQnLFxyXG4gIFByaW50RG9jdW1lbnRTdWNjZXNzID0gJ1tGSUExMTg3IERvY3VtZW50XSBQcmludCBTdWNjZXNzJyxcclxuICBQcmludERvY3VtZW50RmFpbCA9ICdbRklBMTE4NyBEb2N1bWVudF0gUHJpbnQgRmFpbCcsXHJcbiAgXHJcbiAgTG9hZEZlZGVyYWxIb2xpZGF5c0xpc3QgPSAnW0NvbmNpbGlhdGlvbiBGZWRlcmFsIEhvbGlkYXlzIExpc3RdIExvYWQnLFxyXG4gIExvYWRGZWRlcmFsSG9saWRheXNMaXN0U3VjY2VzcyA9ICdbQ29uY2lsaWF0aW9uIEZlZGVyYWwgSG9saWRheXMgTGlzdF0gTG9hZCBTdWNjZXNzJyxcclxuICBMb2FkRmVkZXJhbEhvbGlkYXlzTGlzdEZhaWwgPSAnW0NvbmNpbGlhdGlvbiBGZWRlcmFsIEhvbGlkYXlzIExpc3RdIExvYWQgRmFpbCcsXHJcblxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgTG9hZENvbmNpbGlhdGlvbldvcmtMaXN0QWN0aW9uIGltcGxlbWVudHMgQWN0aW9uIHtcclxuICByZWFkb25seSB0eXBlOiBzdHJpbmcgPSBDb25jaWxpYXRpb25BcHBvaW50bWVudFdvcmtMaXN0QWN0aW9uVHlwZXMuTG9hZENvbmNpbGlhdGlvbldvcmtMaXN0O1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcGF5bG9hZD86IGFueSkge1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIExvYWRDb25jaWxpYXRpb25Xb3JrTGlzdFN1Y2Nlc3NBY3Rpb24gaW1wbGVtZW50cyBBY3Rpb24ge1xyXG4gIHJlYWRvbmx5IHR5cGU6IHN0cmluZyA9IENvbmNpbGlhdGlvbkFwcG9pbnRtZW50V29ya0xpc3RBY3Rpb25UeXBlcy5Mb2FkQ29uY2lsaWF0aW9uV29ya0xpc3RTdWNjZXNzO1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcGF5bG9hZDogQ29uY2lsaWF0aW9uV29ya0xpc3QpIHtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBMb2FkQ29uY2lsaWF0aW9uV29ya0xpc3RGYWlsQWN0aW9uIGltcGxlbWVudHMgQWN0aW9uIHtcclxuICByZWFkb25seSB0eXBlOiBzdHJpbmcgPSBDb25jaWxpYXRpb25BcHBvaW50bWVudFdvcmtMaXN0QWN0aW9uVHlwZXMuTG9hZENvbmNpbGlhdGlvbldvcmtMaXN0RmFpbDtcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIHBheWxvYWQ/OiBTZWFtc0h0dHBSZXNwb25zZSkge1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFNhdmVDb25jaWxpYXRpb25TdGF0dXNBY3Rpb24gaW1wbGVtZW50cyBBY3Rpb24ge1xyXG4gIHJlYWRvbmx5IHR5cGU6IHN0cmluZyA9IENvbmNpbGlhdGlvbkFwcG9pbnRtZW50V29ya0xpc3RBY3Rpb25UeXBlcy5TYXZlU3RhdHVzO1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcGF5bG9hZDogU2F2ZUNvbmNpbGlhdGlvblN0YXR1c1BheWxvYWQpIHtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBTYXZlQ29uY2lsaWF0aW9uU3RhdHVzU3VjY2Vzc0FjdGlvbiBpbXBsZW1lbnRzIEFjdGlvbiB7XHJcbiAgcmVhZG9ubHkgdHlwZTogc3RyaW5nID0gQ29uY2lsaWF0aW9uQXBwb2ludG1lbnRXb3JrTGlzdEFjdGlvblR5cGVzLlNhdmVTdGF0dXNTdWNjZXNzO1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcGF5bG9hZDogU2F2ZVN0YXR1c1Jlc3BvbnNlKSB7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgU2F2ZUNvbmNpbGlhdGlvblN0YXR1c0ZhaWxBY3Rpb24gaW1wbGVtZW50cyBBY3Rpb24ge1xyXG4gIHJlYWRvbmx5IHR5cGU6IHN0cmluZyA9IENvbmNpbGlhdGlvbkFwcG9pbnRtZW50V29ya0xpc3RBY3Rpb25UeXBlcy5TYXZlU3RhdHVzRmFpbDtcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIHBheWxvYWQ/OiBTZWFtc0h0dHBSZXNwb25zZSkge1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIE9wZW5BcHBvaW50bWVudERpYWxvZ0FjdGlvbiBpbXBsZW1lbnRzIEFjdGlvbiB7XHJcbiAgcmVhZG9ubHkgdHlwZTogc3RyaW5nID0gQ29uY2lsaWF0aW9uQXBwb2ludG1lbnRXb3JrTGlzdEFjdGlvblR5cGVzLk9wZW5BcHBvaW50bWVudERpYWxvZztcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIHBheWxvYWQ6IG51bWJlcikge1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIENsb3NlQXBwb2ludG1lbnREaWFsb2dBY3Rpb24gaW1wbGVtZW50cyBBY3Rpb24ge1xyXG4gIHJlYWRvbmx5IHR5cGU6IHN0cmluZyA9IENvbmNpbGlhdGlvbkFwcG9pbnRtZW50V29ya0xpc3RBY3Rpb25UeXBlcy5DbG9zZUFwcG9pbnRtZW50RGlhbG9nO1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcGF5bG9hZD86IGFueSkge1xyXG4gIH1cclxufVxyXG5cclxuXHJcbmV4cG9ydCBjbGFzcyBTYXZlU2NoZWR1bGluZ0NhbGxCYWNrQWN0aW9uIGltcGxlbWVudHMgQWN0aW9uIHtcclxuICByZWFkb25seSB0eXBlOiBzdHJpbmcgPSBDb25jaWxpYXRpb25BcHBvaW50bWVudFdvcmtMaXN0QWN0aW9uVHlwZXMuU2F2ZVNjaGVkdWxpbmdDYWxsQmFjaztcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIHBheWxvYWQ6IFNhdmVTY2hlZHVsaW5nQ2FsbEJhY2tNb2RlbCkge1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFNhdmVTY2hlZHVsaW5nQ2FsbEJhY2tTdWNjZXNzQWN0aW9uIGltcGxlbWVudHMgQWN0aW9uIHtcclxuICByZWFkb25seSB0eXBlOiBzdHJpbmcgPSBDb25jaWxpYXRpb25BcHBvaW50bWVudFdvcmtMaXN0QWN0aW9uVHlwZXMuU2F2ZVNjaGVkdWxpbmdDYWxsQmFja1N1Y2Nlc3M7XHJcblxyXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbm8tYW55XHJcbiAgY29uc3RydWN0b3IocHVibGljIHBheWxvYWQ6IGFueSkge1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFNhdmVTY2hlZHVsaW5nQ2FsbEJhY2tGYWlsQWN0aW9uIGltcGxlbWVudHMgQWN0aW9uIHtcclxuICByZWFkb25seSB0eXBlOiBzdHJpbmcgPSBDb25jaWxpYXRpb25BcHBvaW50bWVudFdvcmtMaXN0QWN0aW9uVHlwZXMuU2F2ZVNjaGVkdWxpbmdDYWxsQmFja0ZhaWw7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBwYXlsb2FkPzogYW55KSB7XHJcbiAgfVxyXG59XHJcbmV4cG9ydCBjbGFzcyBTYXZlT3V0cmVhY2hXb3JrbGlzdEFjdGlvbiBpbXBsZW1lbnRzIEFjdGlvbiB7XHJcbiAgcmVhZG9ubHkgdHlwZTogc3RyaW5nID0gQ29uY2lsaWF0aW9uQXBwb2ludG1lbnRXb3JrTGlzdEFjdGlvblR5cGVzLlNhdmVPdXRyZWFjaFdvcmtsaXN0O1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcGF5bG9hZDogU2F2ZU91dHJlYWNoTW9kZWwpIHtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBTYXZlT3V0cmVhY2hXb3JrbGlzdFN1Y2Nlc3NBY3Rpb24gaW1wbGVtZW50cyBBY3Rpb24ge1xyXG4gIHJlYWRvbmx5IHR5cGU6IHN0cmluZyA9IENvbmNpbGlhdGlvbkFwcG9pbnRtZW50V29ya0xpc3RBY3Rpb25UeXBlcy5TYXZlT3V0cmVhY2hXb3JrbGlzdFN1Y2Nlc3M7XHJcblxyXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbm8tYW55XHJcbiAgY29uc3RydWN0b3IocHVibGljIHBheWxvYWQ6IGFueSkge1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFNhdmVPdXRyZWFjaFdvcmtsaXN0RmFpbEFjdGlvbiBpbXBsZW1lbnRzIEFjdGlvbiB7XHJcbiAgcmVhZG9ubHkgdHlwZTogc3RyaW5nID0gQ29uY2lsaWF0aW9uQXBwb2ludG1lbnRXb3JrTGlzdEFjdGlvblR5cGVzLlNhdmVPdXRyZWFjaFdvcmtsaXN0RmFpbDtcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIHBheWxvYWQ/OiBhbnkpIHtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBTYXZlUmVhc3NpZ25BY3Rpb24gaW1wbGVtZW50cyBBY3Rpb24ge1xyXG4gIHJlYWRvbmx5IHR5cGU6IHN0cmluZyA9IENvbmNpbGlhdGlvbkFwcG9pbnRtZW50V29ya0xpc3RBY3Rpb25UeXBlcy5TYXZlUmVhc3NpZ247XHJcbiAgY29uc3RydWN0b3IocHVibGljIHBheWxvYWQ6IFN1Ym1pdFJlYXNzaWduTW9kZWwpIHtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBTYXZlUmVhc3NpZ25TdWNjZXNzQWN0aW9uIGltcGxlbWVudHMgQWN0aW9uIHtcclxuICByZWFkb25seSB0eXBlOiBzdHJpbmcgPSBDb25jaWxpYXRpb25BcHBvaW50bWVudFdvcmtMaXN0QWN0aW9uVHlwZXMuU2F2ZVJlYXNzaWduU3VjY2VzcztcclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcGF5bG9hZDogYW55KSB7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgU2F2ZVJlYXNzaWduRmFpbEFjdGlvbiBpbXBsZW1lbnRzIEFjdGlvbiB7XHJcbiAgcmVhZG9ubHkgdHlwZTogc3RyaW5nID0gQ29uY2lsaWF0aW9uQXBwb2ludG1lbnRXb3JrTGlzdEFjdGlvblR5cGVzLlNhdmVSZWFzc2lnbkZhaWw7XHJcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBuby1hbnlcclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcGF5bG9hZDogYW55KSB7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgU3VibWl0QmF0Y2hQb29sQXBwb2ludG1lbnRBY3Rpb24gaW1wbGVtZW50cyBBY3Rpb24ge1xyXG4gIHJlYWRvbmx5IHR5cGU6IHN0cmluZyA9IENvbmNpbGlhdGlvbkFwcG9pbnRtZW50V29ya0xpc3RBY3Rpb25UeXBlcy5TdWJtaXRCYXRjaFBvb2xBcHBvaW50bWVudDtcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIHBheWxvYWQ6IFN1Ym1pdEJhdGNoUG9vbEFwcG9pbnRtZW50TW9kZWwpIHtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBTdWJtaXRCYXRjaFBvb2xBcHBvaW50bWVudFN1Y2Nlc3NBY3Rpb24gaW1wbGVtZW50cyBBY3Rpb24ge1xyXG4gIHJlYWRvbmx5IHR5cGU6IHN0cmluZyA9IENvbmNpbGlhdGlvbkFwcG9pbnRtZW50V29ya0xpc3RBY3Rpb25UeXBlcy5TdWJtaXRCYXRjaFBvb2xBcHBvaW50bWVudFN1Y2Nlc3M7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBwYXlsb2FkOiBTdWJtaXRCYXRjaFBvb2xBcHBvaW50bWVudE1vZGVsKSB7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgU3VibWl0QmF0Y2hQb29sQXBwb2ludG1lbnRGYWlsQWN0aW9uIGltcGxlbWVudHMgQWN0aW9uIHtcclxuICByZWFkb25seSB0eXBlOiBzdHJpbmcgPSBDb25jaWxpYXRpb25BcHBvaW50bWVudFdvcmtMaXN0QWN0aW9uVHlwZXMuU3VibWl0QmF0Y2hQb29sQXBwb2ludG1lbnRGYWlsO1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcGF5bG9hZDogU2VhbXNIdHRwUmVzcG9uc2UpIHtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBQcmludERvY3VtZW50QWN0aW9uIGltcGxlbWVudHMgQWN0aW9uIHtcclxuICByZWFkb25seSB0eXBlOiBzdHJpbmcgPSBDb25jaWxpYXRpb25BcHBvaW50bWVudFdvcmtMaXN0QWN0aW9uVHlwZXMuUHJpbnREb2N1bWVudDtcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIHBheWxvYWQ6IHsgbGV0dGVyVHlwZTogbnVtYmVyLCBhc3Nlc3NtZW50SWQ6IG51bWJlciAsIENtc0Nhc2VJRDogbnVtYmVyfSkge1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFByaW50RG9jdW1lbnRTdWNjZXNzQWN0aW9uIGltcGxlbWVudHMgQWN0aW9uIHtcclxuICByZWFkb25seSB0eXBlOiBzdHJpbmcgPSBDb25jaWxpYXRpb25BcHBvaW50bWVudFdvcmtMaXN0QWN0aW9uVHlwZXMuUHJpbnREb2N1bWVudFN1Y2Nlc3M7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBwYXlsb2FkOiBhbnkpIHtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBQcmludERvY3VtZW50RmFpbEFjdGlvbiBpbXBsZW1lbnRzIEFjdGlvbiB7XHJcbiAgcmVhZG9ubHkgdHlwZTogc3RyaW5nID0gQ29uY2lsaWF0aW9uQXBwb2ludG1lbnRXb3JrTGlzdEFjdGlvblR5cGVzLlByaW50RG9jdW1lbnRGYWlsO1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcGF5bG9hZD86IFNlYW1zSHR0cFJlc3BvbnNlKSB7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgTG9hZEZlZGVyYWxIb2xpZGF5c0xpc3RBY3Rpb24gaW1wbGVtZW50cyBBY3Rpb257XHJcbiAgcmVhZG9ubHkgdHlwZTogc3RyaW5nID0gQ29uY2lsaWF0aW9uQXBwb2ludG1lbnRXb3JrTGlzdEFjdGlvblR5cGVzLkxvYWRGZWRlcmFsSG9saWRheXNMaXN0O1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcGF5bG9hZD86IGFueSkge1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIExvYWRGZWRlcmFsSG9saWRheXNMaXN0U3VjY2Vzc0FjdGlvbiBpbXBsZW1lbnRzIEFjdGlvbiB7XHJcbiAgcmVhZG9ubHkgdHlwZTogc3RyaW5nID0gQ29uY2lsaWF0aW9uQXBwb2ludG1lbnRXb3JrTGlzdEFjdGlvblR5cGVzLkxvYWRGZWRlcmFsSG9saWRheXNMaXN0U3VjY2VzcztcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIHBheWxvYWQ6IEZlZGVyYWxIb2xpZGF5c01vZGVsW10pIHtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBMb2FkRmVkZXJhbEhvbGlkYXlzTGlzdEZhaWxBY3Rpb24gaW1wbGVtZW50cyBBY3Rpb24ge1xyXG4gIHJlYWRvbmx5IHR5cGU6IHN0cmluZyA9IENvbmNpbGlhdGlvbkFwcG9pbnRtZW50V29ya0xpc3RBY3Rpb25UeXBlcy5Mb2FkRmVkZXJhbEhvbGlkYXlzTGlzdEZhaWw7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBwYXlsb2FkPzogU2VhbXNIdHRwUmVzcG9uc2UpIHtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIENvbmNpbGlhdGlvbkFwcG9pbnRtZW50V29ya0xpc3RBY3Rpb25zID0gTG9hZENvbmNpbGlhdGlvbldvcmtMaXN0QWN0aW9uXHJcbiAgfCBMb2FkQ29uY2lsaWF0aW9uV29ya0xpc3RTdWNjZXNzQWN0aW9uXHJcbiAgfCBMb2FkQ29uY2lsaWF0aW9uV29ya0xpc3RGYWlsQWN0aW9uXHJcbiAgfCBTYXZlQ29uY2lsaWF0aW9uU3RhdHVzQWN0aW9uXHJcbiAgfCBTYXZlQ29uY2lsaWF0aW9uU3RhdHVzU3VjY2Vzc0FjdGlvblxyXG4gIHwgU2F2ZUNvbmNpbGlhdGlvblN0YXR1c0ZhaWxBY3Rpb25cclxuICB8IE9wZW5BcHBvaW50bWVudERpYWxvZ0FjdGlvblxyXG4gIHwgQ2xvc2VBcHBvaW50bWVudERpYWxvZ0FjdGlvblxyXG4gIHwgUHJpbnREb2N1bWVudEFjdGlvblxyXG4gIHwgUHJpbnREb2N1bWVudFN1Y2Nlc3NBY3Rpb25cclxuICB8IFByaW50RG9jdW1lbnRGYWlsQWN0aW9uXHJcbiAgfCBMb2FkRmVkZXJhbEhvbGlkYXlzTGlzdEFjdGlvblxyXG4gIHwgTG9hZEZlZGVyYWxIb2xpZGF5c0xpc3RTdWNjZXNzQWN0aW9uXHJcbiAgfCBMb2FkRmVkZXJhbEhvbGlkYXlzTGlzdEZhaWxBY3Rpb247XHJcbiJdfQ==
190
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uY2lsaWF0aW9uLWFwcG9pbnRtZW50LXdvcmstbGlzdC5hY3Rpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJ1dGVjaC9jb21wbGlhbmNlL3NyYy9saWIvY29uY2lsaWF0aW9uLWFwcG9pbnRtZW50LXdvcmstbGlzdC9hY3Rpb25zL2NvbmNpbGlhdGlvbi1hcHBvaW50bWVudC13b3JrLWxpc3QuYWN0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFZQSx3QkFBd0I7QUFDeEIsTUFBTSxDQUFOLElBQVksMENBb0NYO0FBcENELFdBQVksMENBQTBDO0lBQ3BELG1HQUFxRCxDQUFBO0lBQ3JELGtIQUFvRSxDQUFBO0lBQ3BFLDRHQUE4RCxDQUFBO0lBRTlELHVGQUF5QyxDQUFBO0lBQ3pDLHNHQUF3RCxDQUFBO0lBQ3hELGdHQUFrRCxDQUFBO0lBRWxELDhHQUFnRSxDQUFBO0lBQ2hFLGdIQUFrRSxDQUFBO0lBRWxFLHNIQUF3RSxDQUFBO0lBQ3hFLG9JQUFzRixDQUFBO0lBQ3RGLDhIQUFnRixDQUFBO0lBRWhGLG1HQUFxRCxDQUFBO0lBQ3JELGtIQUFvRSxDQUFBO0lBQ3BFLDRHQUE4RCxDQUFBO0lBRTlELG1GQUFxQyxDQUFBO0lBQ3JDLGtHQUFvRCxDQUFBO0lBQ3BELDRGQUE4QyxDQUFBO0lBRTlDLGlIQUFtRSxDQUFBO0lBQ25FLGdJQUFrRixDQUFBO0lBQ2xGLDBIQUE0RSxDQUFBO0lBRTVFLHdGQUEwQyxDQUFBO0lBQzFDLHVHQUF5RCxDQUFBO0lBQ3pELGlHQUFtRCxDQUFBO0lBRW5ELHNHQUF3RCxDQUFBO0lBQ3hELHFIQUF1RSxDQUFBO0lBQ3ZFLCtHQUFpRSxDQUFBO0FBRW5FLENBQUMsRUFwQ1csMENBQTBDLEtBQTFDLDBDQUEwQyxRQW9DckQ7QUFFRCxNQUFNLE9BQU8sOEJBQThCO0lBR3pDLFlBQW1CLE9BQWE7UUFBYixZQUFPLEdBQVAsT0FBTyxDQUFN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T0FBTyxDQUFvQjtRQUZyQyxTQUFJLEdBQVcsMENBQTBDLENBQUMsaUJBQWlCLENBQUM7SUFHckYsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLDZCQUE2QjtJQUd4QyxZQUFtQixPQUFhO1FBQWIsWUFBTyxHQUFQLE9BQU8sQ0FBTTtRQUZ2QixTQUFJLEdBQVcsMENBQTBDLENBQUMsdUJBQXVCLENBQUM7SUFHM0YsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLG9DQUFvQztJQUcvQyxZQUFtQixPQUErQjtRQUEvQixZQUFPLEdBQVAsT0FBTyxDQUF3QjtRQUZ6QyxTQUFJLEdBQVcsMENBQTBDLENBQUMsOEJBQThCLENBQUM7SUFHbEcsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLGlDQUFpQztJQUc1QyxZQUFtQixPQUEyQjtRQUEzQixZQUFPLEdBQVAsT0FBTyxDQUFvQjtRQUZyQyxTQUFJLEdBQVcsMENBQTBDLENBQUMsMkJBQTJCLENBQUM7SUFHL0YsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWN0aW9uIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xyXG5pbXBvcnQgeyBTZWFtc0h0dHBSZXNwb25zZSB9IGZyb20gJ0BwcnV0ZWNoL2NvbXBvbmVudHMnO1xyXG5cclxuaW1wb3J0IHsgU2F2ZUNvbmNpbGlhdGlvblN0YXR1c1BheWxvYWQgfSBmcm9tICcuLi9tb2RlbHMvc2F2ZS1jb25jaWxpYXRpb24tc3RhdHVzLXBheWxvYWQubW9kZWwnO1xyXG5pbXBvcnQgeyBDb25jaWxpYXRpb25Xb3JrTGlzdCB9IGZyb20gJy4uL21vZGVscy9jb25jaWxpYXRpb24td29yay1saXN0JztcclxuaW1wb3J0IHsgU2F2ZVN0YXR1c1Jlc3BvbnNlIH0gZnJvbSAnLi4vbW9kZWxzL3NhdmUtc3RhdHVzLXJlc3BvbnNlJztcclxuaW1wb3J0IHsgU2F2ZVNjaGVkdWxpbmdDYWxsQmFja01vZGVsIH0gZnJvbSAnLi4vbW9kZWxzL3NhdmUtc2NoZWR1bGluZy1jYWxsLWJhY2subW9kZWwnO1xyXG5pbXBvcnQgeyBTYXZlT3V0cmVhY2hNb2RlbCB9IGZyb20gJy4uL21vZGVscy9zYXZlLW91dHJlYWNoLW1vZGVsJztcclxuaW1wb3J0IHsgU3VibWl0UmVhc3NpZ25Nb2RlbCB9IGZyb20gJy4uL21vZGVscy9zdWJtaXQtcmUtYXNzaWduLWZyb21tb2RlbCc7XHJcbmltcG9ydCB7IFN1Ym1pdEJhdGNoUG9vbEFwcG9pbnRtZW50TW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvc3VibWl0LWJhdGNoLXBvb2wtYXBwb2ludG1lbnQubW9kZWwnO1xyXG5pbXBvcnQgeyBGZWRlcmFsSG9saWRheXNNb2RlbCB9IGZyb20gJy4uL21vZGVscy9mZWRlcmFsLWhvbGlkYXlzLW1vZGVsJztcclxuXHJcbi8vIHRzbGludDpkaXNhYmxlOm5vLWFueVxyXG5leHBvcnQgZW51bSBDb25jaWxpYXRpb25BcHBvaW50bWVudFdvcmtMaXN0QWN0aW9uVHlwZXMge1xyXG4gIExvYWRDb25jaWxpYXRpb25Xb3JrTGlzdCA9ICdbQ29uY2lsaWF0aW9uXSBMb2FkIExpc3QnLFxyXG4gIExvYWRDb25jaWxpYXRpb25Xb3JrTGlzdFN1Y2Nlc3MgPSAnW0NvbmNpbGlhdGlvbl0gTG9hZCBMaXN0IFN1Y2Nlc3MnLFxyXG4gIExvYWRDb25jaWxpYXRpb25Xb3JrTGlzdEZhaWwgPSAnW0NvbmNpbGlhdGlvbl0gTG9hZCBMaXN0IEZhaWwnLFxyXG5cclxuICBTYXZlU3RhdHVzID0gJ1tDb25jaWxpYXRpb25dIFNhdmUgU3RhdHVzJyxcclxuICBTYXZlU3RhdHVzU3VjY2VzcyA9ICdbQ29uY2lsaWF0aW9uXSBTYXZlIFN0YXR1cyBTdWNjZXNzJyxcclxuICBTYXZlU3RhdHVzRmFpbCA9ICdbQ29uY2lsaWF0aW9uXSBTYXZlIFN0YXR1cyBGYWlsJyxcclxuXHJcbiAgT3BlbkFwcG9pbnRtZW50RGlhbG9nID0gJ1tDb25jaWxpYXRpb25dIE9wZW4gQXBwb2ludG1lbnQgRGlhbG9nJyxcclxuICBDbG9zZUFwcG9pbnRtZW50RGlhbG9nID0gJ1tDb25jaWxpYXRpb25dIENsb3NlIEFwcG9pbnRtZW50IERpYWxvZycsXHJcblxyXG4gIFNhdmVTY2hlZHVsaW5nQ2FsbEJhY2sgPSAnW1NhdmUgU2NoZWR1bGluZyBDYWxsIEJhY2sgRGV0YWlscyBTYXZlXSBTYXZlJyxcclxuICBTYXZlU2NoZWR1bGluZ0NhbGxCYWNrU3VjY2VzcyA9ICdbU2F2ZSBTY2hlZHVsaW5nIENhbGwgQmFjayBEZXRhaWwgU2F2ZV0gU2F2ZSBTdWNjZXNzJyxcclxuICBTYXZlU2NoZWR1bGluZ0NhbGxCYWNrRmFpbCA9ICdbU2F2ZSBTY2hlZHVsaW5nIENhbGwgQmFjayBEZXRhaWwgU2F2ZV0gU2F2ZSBGYWlsJyxcclxuXHJcbiAgU2F2ZU91dHJlYWNoV29ya2xpc3QgPSAnW1NhdmUgIE91dHJlYWNoIERldGFpbF0gU2F2ZScsXHJcbiAgU2F2ZU91dHJlYWNoV29ya2xpc3RTdWNjZXNzID0gJ1tTYXZlICBPdXRyZWFjaCBEZXRhaWxdIFNhdmUgU3VjY2VzcycsXHJcbiAgU2F2ZU91dHJlYWNoV29ya2xpc3RGYWlsID0gJ1tTYXZlICBPdXRyZWFjaCBEZXRhaWxdIFNhdmUgRmFpbCcsXHJcblxyXG4gIFNhdmVSZWFzc2lnbiA9ICdbU2F2ZSBSZWFzc2lnbl0gTG9hZCcsXHJcbiAgU2F2ZVJlYXNzaWduU3VjY2VzcyA9ICdbU2F2ZSBSZWFzc2lnbl0gTG9hZCBTdWNjZXNzJyxcclxuICBTYXZlUmVhc3NpZ25GYWlsID0gJ1tTYXZlIFJlYXNzaWduXSBMb2FkIEZhaWwnLFxyXG5cclxuICBTdWJtaXRCYXRjaFBvb2xBcHBvaW50bWVudCA9ICdbU3VibWl0IEJhdGNoIFBvb2wgQXBwb2ludG1lbnRdIExvYWQnLFxyXG4gIFN1Ym1pdEJhdGNoUG9vbEFwcG9pbnRtZW50U3VjY2VzcyA9ICdbU3VibWl0IEJhdGNoIFBvb2wgQXBwb2ludG1lbnRdIExvYWQgU3VjY2VzcycsXHJcbiAgU3VibWl0QmF0Y2hQb29sQXBwb2ludG1lbnRGYWlsID0gJ1tTdWJtaXQgQmF0Y2ggUG9vbCBBcHBvaW50bWVudF0gTG9hZCBGYWlsJyxcclxuXHJcbiAgUHJpbnREb2N1bWVudCA9ICdbRklBMTE4NyBEb2N1bWVudF0gUHJpbnQnLFxyXG4gIFByaW50RG9jdW1lbnRTdWNjZXNzID0gJ1tGSUExMTg3IERvY3VtZW50XSBQcmludCBTdWNjZXNzJyxcclxuICBQcmludERvY3VtZW50RmFpbCA9ICdbRklBMTE4NyBEb2N1bWVudF0gUHJpbnQgRmFpbCcsXHJcbiAgXHJcbiAgTG9hZEZlZGVyYWxIb2xpZGF5c0xpc3QgPSAnW0ZlZGVyYWwgSG9saWRheXMgTGlzdF0gTG9hZCcsXHJcbiAgTG9hZEZlZGVyYWxIb2xpZGF5c0xpc3RTdWNjZXNzID0gJ1tGZWRlcmFsIEhvbGlkYXlzIExpc3RdIExvYWQgU3VjY2VzcycsXHJcbiAgTG9hZEZlZGVyYWxIb2xpZGF5c0xpc3RGYWlsID0gJ1tGZWRlcmFsIEhvbGlkYXlzIExpc3RdIExvYWQgRmFpbCcsXHJcblxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgTG9hZENvbmNpbGlhdGlvbldvcmtMaXN0QWN0aW9uIGltcGxlbWVudHMgQWN0aW9uIHtcclxuICByZWFkb25seSB0eXBlOiBzdHJpbmcgPSBDb25jaWxpYXRpb25BcHBvaW50bWVudFdvcmtMaXN0QWN0aW9uVHlwZXMuTG9hZENvbmNpbGlhdGlvbldvcmtMaXN0O1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcGF5bG9hZD86IGFueSkge1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIExvYWRDb25jaWxpYXRpb25Xb3JrTGlzdFN1Y2Nlc3NBY3Rpb24gaW1wbGVtZW50cyBBY3Rpb24ge1xyXG4gIHJlYWRvbmx5IHR5cGU6IHN0cmluZyA9IENvbmNpbGlhdGlvbkFwcG9pbnRtZW50V29ya0xpc3RBY3Rpb25UeXBlcy5Mb2FkQ29uY2lsaWF0aW9uV29ya0xpc3RTdWNjZXNzO1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcGF5bG9hZDogQ29uY2lsaWF0aW9uV29ya0xpc3QpIHtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBMb2FkQ29uY2lsaWF0aW9uV29ya0xpc3RGYWlsQWN0aW9uIGltcGxlbWVudHMgQWN0aW9uIHtcclxuICByZWFkb25seSB0eXBlOiBzdHJpbmcgPSBDb25jaWxpYXRpb25BcHBvaW50bWVudFdvcmtMaXN0QWN0aW9uVHlwZXMuTG9hZENvbmNpbGlhdGlvbldvcmtMaXN0RmFpbDtcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIHBheWxvYWQ/OiBTZWFtc0h0dHBSZXNwb25zZSkge1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFNhdmVDb25jaWxpYXRpb25TdGF0dXNBY3Rpb24gaW1wbGVtZW50cyBBY3Rpb24ge1xyXG4gIHJlYWRvbmx5IHR5cGU6IHN0cmluZyA9IENvbmNpbGlhdGlvbkFwcG9pbnRtZW50V29ya0xpc3RBY3Rpb25UeXBlcy5TYXZlU3RhdHVzO1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcGF5bG9hZDogU2F2ZUNvbmNpbGlhdGlvblN0YXR1c1BheWxvYWQpIHtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBTYXZlQ29uY2lsaWF0aW9uU3RhdHVzU3VjY2Vzc0FjdGlvbiBpbXBsZW1lbnRzIEFjdGlvbiB7XHJcbiAgcmVhZG9ubHkgdHlwZTogc3RyaW5nID0gQ29uY2lsaWF0aW9uQXBwb2ludG1lbnRXb3JrTGlzdEFjdGlvblR5cGVzLlNhdmVTdGF0dXNTdWNjZXNzO1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcGF5bG9hZDogU2F2ZVN0YXR1c1Jlc3BvbnNlKSB7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgU2F2ZUNvbmNpbGlhdGlvblN0YXR1c0ZhaWxBY3Rpb24gaW1wbGVtZW50cyBBY3Rpb24ge1xyXG4gIHJlYWRvbmx5IHR5cGU6IHN0cmluZyA9IENvbmNpbGlhdGlvbkFwcG9pbnRtZW50V29ya0xpc3RBY3Rpb25UeXBlcy5TYXZlU3RhdHVzRmFpbDtcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIHBheWxvYWQ/OiBTZWFtc0h0dHBSZXNwb25zZSkge1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIE9wZW5BcHBvaW50bWVudERpYWxvZ0FjdGlvbiBpbXBsZW1lbnRzIEFjdGlvbiB7XHJcbiAgcmVhZG9ubHkgdHlwZTogc3RyaW5nID0gQ29uY2lsaWF0aW9uQXBwb2ludG1lbnRXb3JrTGlzdEFjdGlvblR5cGVzLk9wZW5BcHBvaW50bWVudERpYWxvZztcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIHBheWxvYWQ6IG51bWJlcikge1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIENsb3NlQXBwb2ludG1lbnREaWFsb2dBY3Rpb24gaW1wbGVtZW50cyBBY3Rpb24ge1xyXG4gIHJlYWRvbmx5IHR5cGU6IHN0cmluZyA9IENvbmNpbGlhdGlvbkFwcG9pbnRtZW50V29ya0xpc3RBY3Rpb25UeXBlcy5DbG9zZUFwcG9pbnRtZW50RGlhbG9nO1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcGF5bG9hZD86IGFueSkge1xyXG4gIH1cclxufVxyXG5cclxuXHJcbmV4cG9ydCBjbGFzcyBTYXZlU2NoZWR1bGluZ0NhbGxCYWNrQWN0aW9uIGltcGxlbWVudHMgQWN0aW9uIHtcclxuICByZWFkb25seSB0eXBlOiBzdHJpbmcgPSBDb25jaWxpYXRpb25BcHBvaW50bWVudFdvcmtMaXN0QWN0aW9uVHlwZXMuU2F2ZVNjaGVkdWxpbmdDYWxsQmFjaztcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIHBheWxvYWQ6IFNhdmVTY2hlZHVsaW5nQ2FsbEJhY2tNb2RlbCkge1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFNhdmVTY2hlZHVsaW5nQ2FsbEJhY2tTdWNjZXNzQWN0aW9uIGltcGxlbWVudHMgQWN0aW9uIHtcclxuICByZWFkb25seSB0eXBlOiBzdHJpbmcgPSBDb25jaWxpYXRpb25BcHBvaW50bWVudFdvcmtMaXN0QWN0aW9uVHlwZXMuU2F2ZVNjaGVkdWxpbmdDYWxsQmFja1N1Y2Nlc3M7XHJcblxyXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbm8tYW55XHJcbiAgY29uc3RydWN0b3IocHVibGljIHBheWxvYWQ6IGFueSkge1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFNhdmVTY2hlZHVsaW5nQ2FsbEJhY2tGYWlsQWN0aW9uIGltcGxlbWVudHMgQWN0aW9uIHtcclxuICByZWFkb25seSB0eXBlOiBzdHJpbmcgPSBDb25jaWxpYXRpb25BcHBvaW50bWVudFdvcmtMaXN0QWN0aW9uVHlwZXMuU2F2ZVNjaGVkdWxpbmdDYWxsQmFja0ZhaWw7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBwYXlsb2FkPzogYW55KSB7XHJcbiAgfVxyXG59XHJcbmV4cG9ydCBjbGFzcyBTYXZlT3V0cmVhY2hXb3JrbGlzdEFjdGlvbiBpbXBsZW1lbnRzIEFjdGlvbiB7XHJcbiAgcmVhZG9ubHkgdHlwZTogc3RyaW5nID0gQ29uY2lsaWF0aW9uQXBwb2ludG1lbnRXb3JrTGlzdEFjdGlvblR5cGVzLlNhdmVPdXRyZWFjaFdvcmtsaXN0O1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcGF5bG9hZDogU2F2ZU91dHJlYWNoTW9kZWwpIHtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBTYXZlT3V0cmVhY2hXb3JrbGlzdFN1Y2Nlc3NBY3Rpb24gaW1wbGVtZW50cyBBY3Rpb24ge1xyXG4gIHJlYWRvbmx5IHR5cGU6IHN0cmluZyA9IENvbmNpbGlhdGlvbkFwcG9pbnRtZW50V29ya0xpc3RBY3Rpb25UeXBlcy5TYXZlT3V0cmVhY2hXb3JrbGlzdFN1Y2Nlc3M7XHJcblxyXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbm8tYW55XHJcbiAgY29uc3RydWN0b3IocHVibGljIHBheWxvYWQ6IGFueSkge1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFNhdmVPdXRyZWFjaFdvcmtsaXN0RmFpbEFjdGlvbiBpbXBsZW1lbnRzIEFjdGlvbiB7XHJcbiAgcmVhZG9ubHkgdHlwZTogc3RyaW5nID0gQ29uY2lsaWF0aW9uQXBwb2ludG1lbnRXb3JrTGlzdEFjdGlvblR5cGVzLlNhdmVPdXRyZWFjaFdvcmtsaXN0RmFpbDtcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIHBheWxvYWQ/OiBhbnkpIHtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBTYXZlUmVhc3NpZ25BY3Rpb24gaW1wbGVtZW50cyBBY3Rpb24ge1xyXG4gIHJlYWRvbmx5IHR5cGU6IHN0cmluZyA9IENvbmNpbGlhdGlvbkFwcG9pbnRtZW50V29ya0xpc3RBY3Rpb25UeXBlcy5TYXZlUmVhc3NpZ247XHJcbiAgY29uc3RydWN0b3IocHVibGljIHBheWxvYWQ6IFN1Ym1pdFJlYXNzaWduTW9kZWwpIHtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBTYXZlUmVhc3NpZ25TdWNjZXNzQWN0aW9uIGltcGxlbWVudHMgQWN0aW9uIHtcclxuICByZWFkb25seSB0eXBlOiBzdHJpbmcgPSBDb25jaWxpYXRpb25BcHBvaW50bWVudFdvcmtMaXN0QWN0aW9uVHlwZXMuU2F2ZVJlYXNzaWduU3VjY2VzcztcclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcGF5bG9hZDogYW55KSB7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgU2F2ZVJlYXNzaWduRmFpbEFjdGlvbiBpbXBsZW1lbnRzIEFjdGlvbiB7XHJcbiAgcmVhZG9ubHkgdHlwZTogc3RyaW5nID0gQ29uY2lsaWF0aW9uQXBwb2ludG1lbnRXb3JrTGlzdEFjdGlvblR5cGVzLlNhdmVSZWFzc2lnbkZhaWw7XHJcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBuby1hbnlcclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcGF5bG9hZDogYW55KSB7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgU3VibWl0QmF0Y2hQb29sQXBwb2ludG1lbnRBY3Rpb24gaW1wbGVtZW50cyBBY3Rpb24ge1xyXG4gIHJlYWRvbmx5IHR5cGU6IHN0cmluZyA9IENvbmNpbGlhdGlvbkFwcG9pbnRtZW50V29ya0xpc3RBY3Rpb25UeXBlcy5TdWJtaXRCYXRjaFBvb2xBcHBvaW50bWVudDtcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIHBheWxvYWQ6IFN1Ym1pdEJhdGNoUG9vbEFwcG9pbnRtZW50TW9kZWwpIHtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBTdWJtaXRCYXRjaFBvb2xBcHBvaW50bWVudFN1Y2Nlc3NBY3Rpb24gaW1wbGVtZW50cyBBY3Rpb24ge1xyXG4gIHJlYWRvbmx5IHR5cGU6IHN0cmluZyA9IENvbmNpbGlhdGlvbkFwcG9pbnRtZW50V29ya0xpc3RBY3Rpb25UeXBlcy5TdWJtaXRCYXRjaFBvb2xBcHBvaW50bWVudFN1Y2Nlc3M7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBwYXlsb2FkOiBTdWJtaXRCYXRjaFBvb2xBcHBvaW50bWVudE1vZGVsKSB7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgU3VibWl0QmF0Y2hQb29sQXBwb2ludG1lbnRGYWlsQWN0aW9uIGltcGxlbWVudHMgQWN0aW9uIHtcclxuICByZWFkb25seSB0eXBlOiBzdHJpbmcgPSBDb25jaWxpYXRpb25BcHBvaW50bWVudFdvcmtMaXN0QWN0aW9uVHlwZXMuU3VibWl0QmF0Y2hQb29sQXBwb2ludG1lbnRGYWlsO1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcGF5bG9hZDogU2VhbXNIdHRwUmVzcG9uc2UpIHtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBQcmludERvY3VtZW50QWN0aW9uIGltcGxlbWVudHMgQWN0aW9uIHtcclxuICByZWFkb25seSB0eXBlOiBzdHJpbmcgPSBDb25jaWxpYXRpb25BcHBvaW50bWVudFdvcmtMaXN0QWN0aW9uVHlwZXMuUHJpbnREb2N1bWVudDtcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIHBheWxvYWQ6IHsgbGV0dGVyVHlwZTogbnVtYmVyLCBhc3Nlc3NtZW50SWQ6IG51bWJlciAsIENtc0Nhc2VJRDogbnVtYmVyfSkge1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFByaW50RG9jdW1lbnRTdWNjZXNzQWN0aW9uIGltcGxlbWVudHMgQWN0aW9uIHtcclxuICByZWFkb25seSB0eXBlOiBzdHJpbmcgPSBDb25jaWxpYXRpb25BcHBvaW50bWVudFdvcmtMaXN0QWN0aW9uVHlwZXMuUHJpbnREb2N1bWVudFN1Y2Nlc3M7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBwYXlsb2FkOiBhbnkpIHtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBQcmludERvY3VtZW50RmFpbEFjdGlvbiBpbXBsZW1lbnRzIEFjdGlvbiB7XHJcbiAgcmVhZG9ubHkgdHlwZTogc3RyaW5nID0gQ29uY2lsaWF0aW9uQXBwb2ludG1lbnRXb3JrTGlzdEFjdGlvblR5cGVzLlByaW50RG9jdW1lbnRGYWlsO1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcGF5bG9hZD86IFNlYW1zSHR0cFJlc3BvbnNlKSB7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgTG9hZEZlZGVyYWxIb2xpZGF5c0xpc3RBY3Rpb24gaW1wbGVtZW50cyBBY3Rpb257XHJcbiAgcmVhZG9ubHkgdHlwZTogc3RyaW5nID0gQ29uY2lsaWF0aW9uQXBwb2ludG1lbnRXb3JrTGlzdEFjdGlvblR5cGVzLkxvYWRGZWRlcmFsSG9saWRheXNMaXN0O1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcGF5bG9hZD86IGFueSkge1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIExvYWRGZWRlcmFsSG9saWRheXNMaXN0U3VjY2Vzc0FjdGlvbiBpbXBsZW1lbnRzIEFjdGlvbiB7XHJcbiAgcmVhZG9ubHkgdHlwZTogc3RyaW5nID0gQ29uY2lsaWF0aW9uQXBwb2ludG1lbnRXb3JrTGlzdEFjdGlvblR5cGVzLkxvYWRGZWRlcmFsSG9saWRheXNMaXN0U3VjY2VzcztcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIHBheWxvYWQ6IEZlZGVyYWxIb2xpZGF5c01vZGVsW10pIHtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBMb2FkRmVkZXJhbEhvbGlkYXlzTGlzdEZhaWxBY3Rpb24gaW1wbGVtZW50cyBBY3Rpb24ge1xyXG4gIHJlYWRvbmx5IHR5cGU6IHN0cmluZyA9IENvbmNpbGlhdGlvbkFwcG9pbnRtZW50V29ya0xpc3RBY3Rpb25UeXBlcy5Mb2FkRmVkZXJhbEhvbGlkYXlzTGlzdEZhaWw7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBwYXlsb2FkPzogU2VhbXNIdHRwUmVzcG9uc2UpIHtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIENvbmNpbGlhdGlvbkFwcG9pbnRtZW50V29ya0xpc3RBY3Rpb25zID0gTG9hZENvbmNpbGlhdGlvbldvcmtMaXN0QWN0aW9uXHJcbiAgfCBMb2FkQ29uY2lsaWF0aW9uV29ya0xpc3RTdWNjZXNzQWN0aW9uXHJcbiAgfCBMb2FkQ29uY2lsaWF0aW9uV29ya0xpc3RGYWlsQWN0aW9uXHJcbiAgfCBTYXZlQ29uY2lsaWF0aW9uU3RhdHVzQWN0aW9uXHJcbiAgfCBTYXZlQ29uY2lsaWF0aW9uU3RhdHVzU3VjY2Vzc0FjdGlvblxyXG4gIHwgU2F2ZUNvbmNpbGlhdGlvblN0YXR1c0ZhaWxBY3Rpb25cclxuICB8IE9wZW5BcHBvaW50bWVudERpYWxvZ0FjdGlvblxyXG4gIHwgQ2xvc2VBcHBvaW50bWVudERpYWxvZ0FjdGlvblxyXG4gIHwgUHJpbnREb2N1bWVudEFjdGlvblxyXG4gIHwgUHJpbnREb2N1bWVudFN1Y2Nlc3NBY3Rpb25cclxuICB8IFByaW50RG9jdW1lbnRGYWlsQWN0aW9uXHJcbiAgfCBMb2FkRmVkZXJhbEhvbGlkYXlzTGlzdEFjdGlvblxyXG4gIHwgTG9hZEZlZGVyYWxIb2xpZGF5c0xpc3RTdWNjZXNzQWN0aW9uXHJcbiAgfCBMb2FkRmVkZXJhbEhvbGlkYXlzTGlzdEZhaWxBY3Rpb247XHJcbiJdfQ==
@@ -58,6 +58,10 @@ export class ConciliationContextMenuComponent extends AbstractComponent {
58
58
  this.actions = actions;
59
59
  this.menuItems = this.getUpdatedMenuItems();
60
60
  });
61
+ this.conciliationWorkListService.holidaysList.pipe(takeUntil(this.componentDestroyed))
62
+ .subscribe((data) => {
63
+ this.holidayList = data;
64
+ });
61
65
  }
62
66
  agInit(params) {
63
67
  this.params = params;
@@ -76,7 +80,7 @@ export class ConciliationContextMenuComponent extends AbstractComponent {
76
80
  };
77
81
  });
78
82
  }
79
- if (!get(this.params, 'data.isSchedule') || canReschedule) {
83
+ if (get(this.params, 'data.isSchedule') || canReschedule) {
80
84
  this.menuItems = map(this.menuItems, (item) => {
81
85
  return {
82
86
  ...item, items: filter(item.items, (actionItem) => actionItem.route !== toString(scheduleCallBackActionId)),
@@ -149,6 +153,7 @@ export class ConciliationContextMenuComponent extends AbstractComponent {
149
153
  break;
150
154
  case toString(showCasesummaryId):
151
155
  this.router.navigate(['case-summary/' + caseId]);
156
+ break;
152
157
  case toString(showOutreachHistoryId):
153
158
  this.openOutreachHistoryDialog(get(this.params, 'data'));
154
159
  break;
@@ -223,7 +228,10 @@ export class ConciliationContextMenuComponent extends AbstractComponent {
223
228
  const dialogRef = this.dialog.open(ScheduleCallBackActionComponent, {
224
229
  width: dialogSize,
225
230
  disableClose: true,
226
- data: { ...item, isReSchedule: false },
231
+ data: { ...item,
232
+ isReSchedule: false,
233
+ val: this.holidayList
234
+ },
227
235
  });
228
236
  // tslint:disable-next-line:no-any
229
237
  dialogRef.afterClosed().pipe(takeUntil(this.componentDestroyed)).subscribe((res) => {
@@ -506,4 +514,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
506
514
  type: Inject,
507
515
  args: ['environment']
508
516
  }] }, { type: i4.ActivatedRoute }]; } });
509
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uY2lsaWF0aW9uLWNvbnRleHQtbWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcnV0ZWNoL2NvbXBsaWFuY2Uvc3JjL2xpYi9jb25jaWxpYXRpb24tYXBwb2ludG1lbnQtd29yay1saXN0L2NvbXBvbmVudHMvY29udGV4dC1tZW51L2NvbmNpbGlhdGlvbi1jb250ZXh0LW1lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJ1dGVjaC9jb21wbGlhbmNlL3NyYy9saWIvY29uY2lsaWF0aW9uLWFwcG9pbnRtZW50LXdvcmstbGlzdC9jb21wb25lbnRzL2NvbnRleHQtbWVudS9jb25jaWxpYXRpb24tY29udGV4dC1tZW51LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBS25GLE9BQU8sRUFBRSxpQkFBaUIsRUFBMkUsTUFBTSxxQkFBcUIsQ0FBQztBQUVqSSxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDakUsT0FBTyxFQUFFLE1BQU0sSUFBSSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBR3ZELE9BQU8sRUFBRSxVQUFVLEVBQUUsd0JBQXdCLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDOUcsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sMEZBQTBGLENBQUM7QUFHM0ksT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sa0dBQWtHLENBQUM7QUFDdEos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QU41QyxTQUFTOytCQUNFLG1DQUFtQyxtQkFHNUIsdUJBQXVCLENBQUMsTUFBTTs7MEJBa0I1QyxNQUFNOzJCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbmplY3QsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgTWF0RGlhbG9nLCBNYXREaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBTY2hlZHVsZUFwcG9pbnRtZW50UG9zdE1vZGVsIH0gZnJvbSAnQHBydXRlY2gvYXBwb2ludG1lbnQnO1xyXG5pbXBvcnQgeyBBZ0dyaWRBbmd1bGFyIH0gZnJvbSAnQGFnLWdyaWQtY29tbXVuaXR5L2FuZ3VsYXInO1xyXG5pbXBvcnQgeyBBYnN0cmFjdENvbXBvbmVudCwgQ29udGV4dE1lbnVBY3Rpb25JdGVtLCBDb250ZXh0TWVudUl0ZW0sIEVudmlyb25tZW50LCBMb29rdXAsIFRhYlNlcnZpY2UgfSBmcm9tICdAcHJ1dGVjaC9jb21wb25lbnRzJztcclxuaW1wb3J0IHsgVXNlciwgVXNlclNlcnZpY2UgfSBmcm9tICdAcHJ1dGVjaC9pZGVudGl0eS1jbGllbnQnO1xyXG5pbXBvcnQgeyBmaWx0ZXIsIGZpbmQsIGdldCwgaXNOaWwsIG1hcCwgdG9TdHJpbmcgfSBmcm9tICdsb2Rhc2gnO1xyXG5pbXBvcnQgeyBmaWx0ZXIgYXMgckZpbHRlciwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBtZW51SXRlbXMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvbWVudS1pdGVtcyc7XHJcbmltcG9ydCB7IENvbmNpbGlhdGlvbldvcmtMaXN0SXRlbU1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2NvbmNpbGlhdGlvbi13b3JrLWxpc3QtaXRlbS5tb2RlbCc7XHJcbmltcG9ydCB7IENvbmNpbGlhdGlvbkFwcG9pbnRtZW50V29ya0xpc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY29uY2lsaWF0aW9uLWFwcG9pbnRtZW50LXdvcmstbGlzdC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgZGlhbG9nU2l6ZSwgcmVjb3JkT3V0cmVhY2hkaWFsb2dTaXplLCBmb3JtRGlhbG9nU2l6ZSB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9jb25zdGFudHMvZGlhZ2xvZy1zaXplJztcclxuaW1wb3J0IHsgR29vZENhdXNlR3JhbnRlZEFjdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9jb21wb25lbnRzL2dvb2QtY2F1c2UtZ3JhbnRlZC1hY3Rpb24vZ29vZC1jYXVzZS1ncmFudGVkLWFjdGlvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBMb29rdXBzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9tb2R1bGVzL2NvbmNpbGlhdGlvbi1sb29rdXBzL3NlcnZpY2VzL2xvb2t1cHMuc2VydmljZSc7XHJcbmltcG9ydCB7IENvbmNpbGlhdGlvbkxvb2t1cHMgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvbW9kZWxzL2NvbmNpbGlhdGlvbi1sb29rdXBzLm1vZGVsJztcclxuaW1wb3J0IHsgR29vZENhdXNlTm90R3JhbnRlZEFjdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9jb21wb25lbnRzL2dvb2QtY2F1c2Utbm90LWdyYW50ZWQtYWN0aW9uL2dvb2QtY2F1c2Utbm90LWdyYW50ZWQtYWN0aW9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNhdmVDb25jaWxpYXRpb25TdGF0dXNQYXlsb2FkIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3NhdmUtY29uY2lsaWF0aW9uLXN0YXR1cy1wYXlsb2FkLm1vZGVsJztcclxuaW1wb3J0IHtcclxuICBnb29kQ2F1c2VHcmFudGVkQWN0aW9uSWQsXHJcbiAgZ29vZENhdXNlTm90R3JhbnRlZEFjdGlvbklkLFxyXG4gIHJlQXNzaWduQWN0aW9uSWQsXHJcbiAgcmVjb3JkT3V0cmVhY2hBY3Rpb25JZCxcclxuICByZVNjaGVkdWxlQ2FsbEJhY2tBY3Rpb25JZCxcclxuICBzY2hlZHVsZUNhbGxCYWNrQWN0aW9uSWQsXHJcbiAgc2hvd0Nhc2VzdW1tYXJ5SWQsXHJcbiAgc2hvd091dHJlYWNoSGlzdG9yeUlkXHJcbn0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2NvbnN0YW50cy9jb25jaWxpYXRpb24vbWVudS1hY3Rpb24tZGVmcyc7XHJcbmltcG9ydCB7IGFjdGlvbnNMYWJlbCB9IGZyb20gJy4uLy4uLy4uL3ByZS1jb25jaWxpYXRpb24td29yay1saXN0L2NvbnN0YW50cy9tZW51LWl0ZW1zJztcclxuaW1wb3J0IHsgWWVzTm9Db25maXJtYXRpb25EaWFsb2dDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvY29tcG9uZW50cy95ZXMtbm8tY29uZmlybWF0aW9uLWRpYWxvZy95ZXMtbm8tY29uZmlybWF0aW9uLWRpYWxvZy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBjb25maXJtSGVhZGVyLCBnb29kQ2F1c2VDb25maXJtTWVzc2FnZSwgbm9MYWJlbCwgeWVzTGFiZWwgfSBmcm9tICcuLi8uLi9jb25zdGFudHMveWVzLW5vLWNvbmZpcm0tZGVmYXVsdHMnO1xyXG5pbXBvcnQgeyBJbmZyYWN0aW9uVHlwZUVudW0gfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvY29uc3RhbnRzL2luZnJhY3Rpb24tdHlwZS1lbnVtJztcclxuaW1wb3J0IHsgSW5mcmFjdGlvbkF0RW51bSB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9jb25zdGFudHMvaW5mcmFjdGlvbi1hdC1lbnVtJztcclxuaW1wb3J0IHsgU2NoZWR1bGVDYWxsQmFja0FjdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uL3NjaGVkdWxlLWNhbGwtYmFjay1hY3Rpb24vc2NoZWR1bGUtY2FsbC1iYWNrLWFjdGlvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTYXZlU2NoZWR1bGluZ0NhbGxCYWNrTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvc2F2ZS1zY2hlZHVsaW5nLWNhbGwtYmFjay5tb2RlbCc7XHJcbmltcG9ydCB7IFNhdmVPdXRyZWFjaE1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3NhdmUtb3V0cmVhY2gtbW9kZWwnO1xyXG5pbXBvcnQgeyBSZWNvcmRPdXRyZWFjaGRpYWxvZ2JveENvbXBvbmVudCB9IGZyb20gJy4uL3JlY29yZC1vdXRyZWFjaGRpYWxvZ2JveC9yZWNvcmQtb3V0cmVhY2hkaWFsb2dib3guY29tcG9uZW50JztcclxuaW1wb3J0IHsgUmVBc3NpZ25EYWlsb2dib3hDb21wb25lbnQgfSBmcm9tICcuLi9yZS1hc3NpZ24tZGFpbG9nYm94L3JlLWFzc2lnbi1kYWlsb2dib3guY29tcG9uZW50JztcclxuaW1wb3J0IHsgU3VibWl0UmVhc3NpZ25Nb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9zdWJtaXQtcmUtYXNzaWduLWZyb21tb2RlbCc7XHJcbmltcG9ydCB7IFdhbnRUb1NlbmRDbGllbnRCYWNrRGlhbG9nYm94Q29tcG9uZW50IH0gZnJvbSAnLi4vd2FudC10by1zZW5kLWNsaWVudC1iYWNrLWRpYWxvZ2JveC93YW50LXRvLXNlbmQtY2xpZW50LWJhY2stZGlhbG9nYm94LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IG9wZW5BcHBvaW50bWVudERpYWxvZ2JveCB9IGZyb20gJy4uLy4uL21vZGVscy9vcGVuLWFwcG9pbnRtZW50JztcclxuaW1wb3J0IHsgU3VibWl0QmF0Y2hQb29sQXBwb2ludG1lbnRNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9zdWJtaXQtYmF0Y2gtcG9vbC1hcHBvaW50bWVudC5tb2RlbCc7XHJcbmltcG9ydCB7XHJcbiAgY3NBcHBvaW50bWVudHMsXHJcbiAgY3NBc3NpZ25tZW50cyxcclxuICBpdmFwQXNzaWdubWVudHMsXHJcbiAgamNBcHBvaW50bWVudHMsXHJcbiAgc3BsUmVmQXBwb2ludG1lbnRzLFxyXG4gIHRhZ0FwcG9pbnRtZW50cyxcclxuICB0YWdBc3NpZ25tZW50cyxcclxuICB2cnNBcHBvaW50bWVudHMsXHJcbiAgd2VjYXJlQXBwb2ludG1lbnRzXHJcbn0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL29yZ2luYWwtY2F0ZWdvcnktbG9va3VwLXR5cGVzLmNvbnN0YW50cyc7XHJcbmltcG9ydCB7IEdlbmVyYXRlRklBMTE4N0FMZXR0ZXJEaWFsb2dib3hDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvY29tcG9uZW50cy9nZW5lcmF0ZS1maWExMTg3LWFsZXR0ZXItZGlhbG9nYm94L2dlbmVyYXRlLWZpYTExODctYWxldHRlci1kaWFsb2dib3guY29tcG9uZW50JztcclxuaW1wb3J0IHsgT3V0cmVhY2hIaXN0b3J5R3JpZERpYWxvZ2JveENvbXBvbmVudCB9IGZyb20gJy4uL291dHJlYWNoLWhpc3RvcnktZ3JpZC1kaWFsb2dib3gvb3V0cmVhY2gtaGlzdG9yeS1ncmlkLWRpYWxvZ2JveC5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdwcnV0ZWNoLWNvbmNpbGlhdGlvbi1jb250ZXh0LW1lbnUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jb25jaWxpYXRpb24tY29udGV4dC1tZW51LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jb25jaWxpYXRpb24tY29udGV4dC1tZW51LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb25jaWxpYXRpb25Db250ZXh0TWVudUNvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgbWVudUl0ZW1zOiBDb250ZXh0TWVudUl0ZW1bXSA9IG1lbnVJdGVtcztcclxuICBwYXJhbXM6IEFnR3JpZEFuZ3VsYXI7XHJcbiAgY29uY2lsaWF0aW9uTG9va3VwczogQ29uY2lsaWF0aW9uTG9va3VwcztcclxuICBhY3Rpb25zOiBMb29rdXBbXTtcclxuICB1c2VyOiBVc2VyO1xyXG4gIGlzQ29uY2lsaWF0aW9uV2xDaGVjazogYW55O1xyXG4gIGFwcHRTY2hlZHVsZWREZXRhaWxzOiBTY2hlZHVsZUFwcG9pbnRtZW50UG9zdE1vZGVsO1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZGlhbG9nOiBNYXREaWFsb2csXHJcbiAgICBwcml2YXRlIGxvb2t1cHNTZXJ2aWNlOiBMb29rdXBzU2VydmljZSxcclxuICAgIHByaXZhdGUgdGFiU2VydmljZTogVGFiU2VydmljZSxcclxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwcml2YXRlIHVzZXJTZXJ2aWNlOiBVc2VyU2VydmljZSxcclxuICAgIHByaXZhdGUgY29uY2lsaWF0aW9uV29ya0xpc3RTZXJ2aWNlOiBDb25jaWxpYXRpb25BcHBvaW50bWVudFdvcmtMaXN0U2VydmljZSxcclxuICAgIEBJbmplY3QoJ2Vudmlyb25tZW50JykgcHJpdmF0ZSBlbnZpcm9ubWVudDogRW52aXJvbm1lbnQsXHJcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSkge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy51c2VyU2VydmljZS51c2VyLnBpcGUoXHJcbiAgICAgIHRha2VVbnRpbCh0aGlzLmNvbXBvbmVudERlc3Ryb3llZCksXHJcbiAgICAgIHJGaWx0ZXIoKHVzZXI6IFVzZXIpID0+ICEhdXNlcikpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHVzZXI6IFVzZXIpID0+IHtcclxuICAgICAgICB0aGlzLnVzZXIgPSB1c2VyO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICB0aGlzLmxvb2t1cHNTZXJ2aWNlLmxvb2t1cHMucGlwZSh0YWtlVW50aWwodGhpcy5jb21wb25lbnREZXN0cm95ZWQpKVxyXG4gICAgICAuc3Vic2NyaWJlKChsb29rdXBzOiBDb25jaWxpYXRpb25Mb29rdXBzKSA9PiB7XHJcbiAgICAgICAgdGhpcy5jb25jaWxpYXRpb25Mb29rdXBzID0gbG9va3VwcztcclxuICAgICAgfSk7XHJcbiAgICB0aGlzLmNvbmNpbGlhdGlvbldvcmtMaXN0U2VydmljZS5hY3Rpb25zLnBpcGUodGFrZVVudGlsKHRoaXMuY29tcG9uZW50RGVzdHJveWVkKSlcclxuICAgICAgLnN1YnNjcmliZSgoYWN0aW9uczogTG9va3VwW10pID0+IHtcclxuICAgICAgICB0aGlzLmFjdGlvbnMgPSBhY3Rpb25zO1xyXG4gICAgICAgIHRoaXMubWVudUl0ZW1zID0gdGhpcy5nZXRVcGRhdGVkTWVudUl0ZW1zKCk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgYWdJbml0KHBhcmFtczogQWdHcmlkQW5ndWxhcik6IHZvaWQge1xyXG4gICAgdGhpcy5wYXJhbXMgPSBwYXJhbXM7XHJcbiAgICBjb25zdCBjYW5SZXNjaGVkdWxlOiBib29sZWFuID0gIWlzTmlsKGdldCh0aGlzLnBhcmFtcywgJ2RhdGEuc2NoZWR1bGVkRGF0ZScpKTtcclxuICAgIGlmICghZ2V0KHRoaXMucGFyYW1zLCAnZGF0YS5pc0dyYW50ZWQnKSkge1xyXG4gICAgICB0aGlzLm1lbnVJdGVtcyA9IG1hcCh0aGlzLm1lbnVJdGVtcywgKGl0ZW06IENvbnRleHRNZW51SXRlbSkgPT4ge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAuLi5pdGVtLCBpdGVtczogZmlsdGVyKGl0ZW0uaXRlbXMsIChhY3Rpb25JdGVtOiBDb250ZXh0TWVudUFjdGlvbkl0ZW0pID0+IGFjdGlvbkl0ZW0ucm91dGUgIT09ICcxJyksXHJcbiAgICAgICAgfTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBpZiAoIWdldCh0aGlzLnBhcmFtcywgJ2RhdGEuaXNHcmFudGVkJykpIHtcclxuICAgICAgdGhpcy5tZW51SXRlbXMgPSBtYXAodGhpcy5tZW51SXRlbXMsIChpdGVtOiBDb250ZXh0TWVudUl0ZW0pID0+IHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgLi4uaXRlbSwgaXRlbXM6IGZpbHRlcihpdGVtLml0ZW1zLCAoYWN0aW9uSXRlbTogQ29udGV4dE1lbnVBY3Rpb25JdGVtKSA9PiBhY3Rpb25JdGVtLnJvdXRlICE9PSAnMicpLFxyXG4gICAgICAgIH07XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgaWYgKCFnZXQodGhpcy5wYXJhbXMsICdkYXRhLmlzU2NoZWR1bGUnKSB8fCBjYW5SZXNjaGVkdWxlKSB7XHJcbiAgICAgIHRoaXMubWVudUl0ZW1zID0gbWFwKHRoaXMubWVudUl0ZW1zLCAoaXRlbTogQ29udGV4dE1lbnVJdGVtKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIC4uLml0ZW0sIGl0ZW1zOiBmaWx0ZXIoaXRlbS5pdGVtcywgKGFjdGlvbkl0ZW06IENvbnRleHRNZW51QWN0aW9uSXRlbSkgPT4gYWN0aW9uSXRlbS5yb3V0ZSAhPT0gdG9TdHJpbmcoc2NoZWR1bGVDYWxsQmFja0FjdGlvbklkKSksXHJcbiAgICAgICAgfTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBpZiAoIWdldCh0aGlzLnBhcmFtcywgJ2RhdGEuaXNSZVNjaGVkdWxlJykgfHwgIWNhblJlc2NoZWR1bGUpIHtcclxuICAgICAgdGhpcy5tZW51SXRlbXMgPSBtYXAodGhpcy5tZW51SXRlbXMsIChpdGVtOiBDb250ZXh0TWVudUl0ZW0pID0+IHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgLi4uaXRlbSwgaXRlbXM6IGZpbHRlcihpdGVtLml0ZW1zLCAoYWN0aW9uSXRlbTogQ29udGV4dE1lbnVBY3Rpb25JdGVtKSA9PiBhY3Rpb25JdGVtLnJvdXRlICE9PSB0b1N0cmluZyhyZVNjaGVkdWxlQ2FsbEJhY2tBY3Rpb25JZCkpLFxyXG4gICAgICAgIH07XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgaWYgKCFnZXQodGhpcy5wYXJhbXMsICdkYXRhLmlzT3V0cmVhY2gnKSkge1xyXG4gICAgICB0aGlzLm1lbnVJdGVtcyA9IG1hcCh0aGlzLm1lbnVJdGVtcywgKGl0ZW06IENvbnRleHRNZW51SXRlbSkgPT4ge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAuLi5pdGVtLCBpdGVtczogZmlsdGVyKGl0ZW0uaXRlbXMsIChhY3Rpb25JdGVtOiBDb250ZXh0TWVudUFjdGlvbkl0ZW0pID0+IGFjdGlvbkl0ZW0ucm91dGUgIT09ICc2JyksXHJcbiAgICAgICAgfTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBpZiAoIWdldCh0aGlzLnBhcmFtcywgJ2RhdGEuaXNSZUFzc2lnbicpKSB7XHJcbiAgICAgIHRoaXMubWVudUl0ZW1zID0gbWFwKHRoaXMubWVudUl0ZW1zLCAoaXRlbTogQ29udGV4dE1lbnVJdGVtKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIC4uLml0ZW0sIGl0ZW1zOiBmaWx0ZXIoaXRlbS5pdGVtcywgKGFjdGlvbkl0ZW06IENvbnRleHRNZW51QWN0aW9uSXRlbSkgPT4gYWN0aW9uSXRlbS5yb3V0ZSAhPT0gJzUnKSxcclxuICAgICAgICB9O1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgICBpZiAoZ2V0KHRoaXMucGFyYW1zLCAnZGF0YS5zaG93T25seUNhc2VTdW1tYXknKSkge1xyXG4gICAgICB0aGlzLm1lbnVJdGVtcyA9IG1hcCh0aGlzLm1lbnVJdGVtcywgKGl0ZW06IENvbnRleHRNZW51SXRlbSkgPT4ge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAuLi5pdGVtLCBpdGVtczogZmlsdGVyKGl0ZW0uaXRlbXMsIChhY3Rpb25JdGVtOiBDb250ZXh0TWVudUFjdGlvbkl0ZW0pID0+KChhY3Rpb25JdGVtLnJvdXRlICE9PSAnOCcpKSksXHJcbiAgICAgICAgfTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRVcGRhdGVkTWVudUl0ZW1zKCk6IENvbnRleHRNZW51SXRlbVtdIHtcclxuICAgIHJldHVybiBtYXAodGhpcy5tZW51SXRlbXMsIChpdGVtOiBDb250ZXh0TWVudUl0ZW0pID0+IHtcclxuICAgICAgaWYgKGl0ZW0ubGFiZWwgPT09IGFjdGlvbnNMYWJlbCkge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICBsYWJlbDogYWN0aW9uc0xhYmVsLFxyXG4gICAgICAgICAgaXRlbXM6IGZpbHRlcihpdGVtLml0ZW1zLCAoYWN0aW9uSXRlbTogQ29udGV4dE1lbnVBY3Rpb25JdGVtKSA9PlxyXG4gICAgICAgICAgICAhIWZpbmQodGhpcy5hY3Rpb25zLCAoYWN0aW9uTG9va3VwOiBMb29rdXApID0+IHRvU3RyaW5nKGFjdGlvbkxvb2t1cC5sb29rdXBJZCkgPT09IGFjdGlvbkl0ZW0ucm91dGUpKSxcclxuICAgICAgICB9O1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiBpdGVtO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGRvQWN0aW9uKGV2ZW50OiBDb250ZXh0TWVudUFjdGlvbkl0ZW0pOiB2b2lkIHtcclxuICAgIGNvbnN0IGNhc2VJZDogbnVtYmVyID0gZ2V0KHRoaXMucGFyYW1zLCAnZGF0YS5jbXNDYXNlSWQnKTtcclxuICAgIHN3aXRjaCAoZXZlbnQucm91dGUpIHtcclxuICAgICAgY2FzZSB0b1N0cmluZyhnb29kQ2F1c2VHcmFudGVkQWN0aW9uSWQpOlxyXG4gICAgICAgIHRoaXMub3Blbkdvb2RDYXVzZUdyYW50ZWREaWFsb2coZ2V0KHRoaXMucGFyYW1zLCAnZGF0YScpKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgLy8gc3VwcG9zZSBnb29kIGNhdXNlIGdyYW50ZWQgbG9va3VwSWQgaXMgMlxyXG4gICAgICBjYXNlIHRvU3RyaW5nKGdvb2RDYXVzZU5vdEdyYW50ZWRBY3Rpb25JZCk6XHJcbiAgICAgICAgdGhpcy5vcGVuR29vZENhdXNlTm90R3JhbnRlZERpYWxvZyhnZXQodGhpcy5wYXJhbXMsICdkYXRhJykpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIHRvU3RyaW5nKHNjaGVkdWxlQ2FsbEJhY2tBY3Rpb25JZCk6XHJcbiAgICAgICAgdGhpcy5vcGVuU2NoZWR1bGVDYWxsQmFja0RpYWxvZyhnZXQodGhpcy5wYXJhbXMsICdkYXRhJykpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIHRvU3RyaW5nKHJlU2NoZWR1bGVDYWxsQmFja0FjdGlvbklkKTpcclxuICAgICAgICB0aGlzLm9wZW5SZVNjaGVkdWxlQ2FsbEJhY2tEaWFsb2coZ2V0KHRoaXMucGFyYW1zLCAnZGF0YScpKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSB0b1N0cmluZyhyZWNvcmRPdXRyZWFjaEFjdGlvbklkKTpcclxuICAgICAgICB0aGlzLm9wZW5PdXRyZWFjaERpYWxvZyhnZXQodGhpcy5wYXJhbXMsICdkYXRhJykpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIHRvU3RyaW5nKHJlQXNzaWduQWN0aW9uSWQpOlxyXG4gICAgICAgIHRoaXMub3BlblJlQXNzaWduRGlhbG9nKGdldCh0aGlzLnBhcmFtcywgJ2RhdGEnKSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgdG9TdHJpbmcoc2hvd0Nhc2VzdW1tYXJ5SWQpOlxyXG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJ2Nhc2Utc3VtbWFyeS8nICsgY2FzZUlkXSk7XHJcbiAgICAgIGNhc2UgdG9TdHJpbmcoc2hvd091dHJlYWNoSGlzdG9yeUlkKTpcclxuICAgICAgdGhpcy5vcGVuT3V0cmVhY2hIaXN0b3J5RGlhbG9nKGdldCh0aGlzLnBhcmFtcywgJ2RhdGEnKSk7XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICBicmVhaztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9wZW5XYW50ZWRDbGllbnREYWlsb2coaXRlbTogQ29uY2lsaWF0aW9uV29ya0xpc3RJdGVtTW9kZWwpIHtcclxuICAgIGNvbnN0IGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPFdhbnRUb1NlbmRDbGllbnRCYWNrRGlhbG9nYm94Q29tcG9uZW50PiA9IHRoaXMuZGlhbG9nLm9wZW4oV2FudFRvU2VuZENsaWVudEJhY2tEaWFsb2dib3hDb21wb25lbnQsIHtcclxuICAgICAgd2lkdGg6IGRpYWxvZ1NpemUsXHJcbiAgICAgIGRpc2FibGVDbG9zZTogdHJ1ZSxcclxuICAgICAgZGF0YToge1xyXG4gICAgICAgIGNvbmNpbGlhdGlvbkxvb2t1cHM6IHRoaXMuY29uY2lsaWF0aW9uTG9va3VwcyxcclxuICAgICAgICB3bENvbmNpbGlhdGlvbklkOiBnZXQoaXRlbSwgJ3dsQ29uY2lsaWF0aW9uSWQnKVxyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcblxyXG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWFueVxyXG4gICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkucGlwZSh0YWtlVW50aWwodGhpcy5jb21wb25lbnREZXN0cm95ZWQpKS5zdWJzY3JpYmUoKHJlcykgPT4ge1xyXG4gICAgICBpZiAocmVzICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICBjb25zdCBpc1dhbnRUb1NlbmRDbGllbnRCYWNrID0gZ2V0KHJlcywgJ3dhbnR0b3NlbmRjbGllbnRiYWNrJyk7XHJcbiAgICAgICAgaWYgKGlzV2FudFRvU2VuZENsaWVudEJhY2spIHtcclxuICAgICAgICAgIGlmICghZ2V0KGl0ZW0sICdpc0FjdGl2ZUFzc2lnbm1lbnQnKSkge1xyXG4gICAgICAgICAgICBvcGVuQXBwb2ludG1lbnREaWFsb2dib3godGhpcy5kaWFsb2csIGl0ZW0/LmNtc0Nhc2VJZCwgZ2V0KHRoaXMuZW52aXJvbm1lbnQsICdjb25jaWxpYXRpb25Bc3Nlc3NtZW50QXBwb2ludG1lbnRUeXBlSWQnKSwgMCwgZmFsc2UpXHJcbiAgICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuY29tcG9uZW50RGVzdHJveWVkKSlcclxuICAgICAgICAgICAgICAuc3Vic2NyaWJlKChzY2hlZHVsZURldGFpbHM6IFNjaGVkdWxlQXBwb2ludG1lbnRQb3N0TW9kZWwpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuYXBwdFNjaGVkdWxlZERldGFpbHMgPSBzY2hlZHVsZURldGFpbHM7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBwYXlsb2FkOiBTYXZlQ29uY2lsaWF0aW9uU3RhdHVzUGF5bG9hZCA9IG5ldyBTYXZlQ29uY2lsaWF0aW9uU3RhdHVzUGF5bG9hZCh7XHJcbiAgICAgICAgICAgICAgICAgIGlzV2FudFRvU2VuZENsaWVudEJhY2ssXHJcbiAgICAgICAgICAgICAgICAgIGFjdGlvbklkOiBnb29kQ2F1c2VHcmFudGVkQWN0aW9uSWQsXHJcbiAgICAgICAgICAgICAgICAgIHdsQ29uY2lsaWF0aW9uSWQ6IGdldChpdGVtLCAnd2xDb25jaWxpYXRpb25JZCcpLFxyXG4gICAgICAgICAgICAgICAgICBhcHBvaW50bWVudElkOiBzY2hlZHVsZURldGFpbHMuYXBwb2ludG1lbnRJZCxcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgaWYgKHNjaGVkdWxlRGV0YWlscykge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmNvbmNpbGlhdGlvbldvcmtMaXN0U2VydmljZS5kaXNwYXRjaFNhdmVTdGF0dXMocGF5bG9hZCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMudGFiU2VydmljZS5kaXNwYXRjaEFkZFRhYih7XHJcbiAgICAgICAgICAgIHRhYk5hbWU6ICdlYS1lcC8nICsgaXRlbT8uZWFlcEFzc2Vzc21lbnRJZCxcclxuICAgICAgICAgICAgcm91dGU6ICcvZWEtZXAvJyArIGl0ZW0/LmNtc0Nhc2VJZCxcclxuICAgICAgICAgICAgbGFiZWw6ICdBc3Nlc3NtZW50cycgKyAnIC0gJyArIGl0ZW0/LmNsaWVudE5hbWUsXHJcbiAgICAgICAgICAgIGNhbkNsb3NlOiB0cnVlLFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9lYS1lcC8nICsgaXRlbT8uY21zQ2FzZUlkXSwgeyByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlLCBzdGF0ZTogeyBjbGllbnROYW1lOiBpdGVtPy5jbGllbnROYW1lIH0gfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG9wZW5SZUFzc2lnbkRpYWxvZyhpdGVtOiBDb25jaWxpYXRpb25Xb3JrTGlzdEl0ZW1Nb2RlbCkge1xyXG4gICAgY29uc3QgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8UmVBc3NpZ25EYWlsb2dib3hDb21wb25lbnQ+ID0gdGhpcy5kaWFsb2cub3BlbihSZUFzc2lnbkRhaWxvZ2JveENvbXBvbmVudCwge1xyXG4gICAgICB3aWR0aDogZGlhbG9nU2l6ZSxcclxuICAgICAgZGlzYWJsZUNsb3NlOiB0cnVlLFxyXG4gICAgICBkYXRhOiB7XHJcbiAgICAgICAgY29uY2lsaWF0aW9uTG9va3VwczogdGhpcy5jb25jaWxpYXRpb25Mb29rdXBzLFxyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tYW55XHJcbiAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5waXBlKHRha2VVbnRpbCh0aGlzLmNvbXBvbmVudERlc3Ryb3llZCkpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcclxuICAgICAgaWYgKCEhcmVzKSB7XHJcbiAgICAgICAgY29uc3QgcGF5bG9hZDogU3VibWl0UmVhc3NpZ25Nb2RlbCA9IG5ldyBTdWJtaXRSZWFzc2lnbk1vZGVsKHtcclxuICAgICAgICAgIC4uLnJlcyxcclxuICAgICAgICAgIHdsQ29uY2lsaWF0aW9uSWQ6IGl0ZW0/LndsQ29uY2lsaWF0aW9uSWQsXHJcbiAgICAgICAgICBhY3Rpb25JZDogcmVBc3NpZ25BY3Rpb25JZCxcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLmNvbmNpbGlhdGlvbldvcmtMaXN0U2VydmljZS5kaXNwYXRjaFNhdmVSZWFzc2lnbihwYXlsb2FkKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBvcGVuU2NoZWR1bGVDYWxsQmFja0RpYWxvZyhpdGVtOiBDb25jaWxpYXRpb25Xb3JrTGlzdEl0ZW1Nb2RlbCkge1xyXG4gICAgY29uc3QgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8U2NoZWR1bGVDYWxsQmFja0FjdGlvbkNvbXBvbmVudD4gPSB0aGlzLmRpYWxvZy5vcGVuKFNjaGVkdWxlQ2FsbEJhY2tBY3Rpb25Db21wb25lbnQsIHtcclxuICAgICAgd2lkdGg6IGRpYWxvZ1NpemUsXHJcbiAgICAgIGRpc2FibGVDbG9zZTogdHJ1ZSxcclxuICAgICAgZGF0YTogeyAuLi5pdGVtLCBpc1JlU2NoZWR1bGU6IGZhbHNlIH0sXHJcbiAgICB9KTtcclxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1hbnlcclxuICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnBpcGUodGFrZVVudGlsKHRoaXMuY29tcG9uZW50RGVzdHJveWVkKSkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICBpZiAoISFyZXMpIHtcclxuICAgICAgICBjb25zdCBwYXlsb2FkOiBTYXZlU2NoZWR1bGluZ0NhbGxCYWNrTW9kZWwgPSBuZXcgU2F2ZVNjaGVkdWxpbmdDYWxsQmFja01vZGVsKHtcclxuICAgICAgICAgIC4uLnJlcyxcclxuICAgICAgICAgIHdsQ29uY2lsaWF0aW9uSWQ6IGl0ZW0/LndsQ29uY2lsaWF0aW9uSWQsXHJcbiAgICAgICAgICBhY3Rpb25JZDogc2NoZWR1bGVDYWxsQmFja0FjdGlvbklkLFxyXG5cclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLmNvbmNpbGlhdGlvbldvcmtMaXN0U2VydmljZS5kaXNwYXRjaFNhdmVTY2hlZHVsaW5nQ2FsbEJhY2tEZXRhaWxEZXRhaWxzKHBheWxvYWQpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG9wZW5SZVNjaGVkdWxlQ2FsbEJhY2tEaWFsb2coaXRlbTogQ29uY2lsaWF0aW9uV29ya0xpc3RJdGVtTW9kZWwpIHtcclxuICAgIGNvbnN0IGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPFNjaGVkdWxlQ2FsbEJhY2tBY3Rpb25Db21wb25lbnQ+ID0gdGhpcy5kaWFsb2c/Lm9wZW4oU2NoZWR1bGVDYWxsQmFja0FjdGlvbkNvbXBvbmVudCwge1xyXG4gICAgICB3aWR0aDogZGlhbG9nU2l6ZSxcclxuICAgICAgZGlzYWJsZUNsb3NlOiB0cnVlLFxyXG4gICAgICBkYXRhOiB7IC4uLml0ZW0sIGlzUmVTY2hlZHVsZTogdHJ1ZSB9LFxyXG4gICAgfSk7XHJcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tYW55XHJcbiAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5waXBlKHRha2VVbnRpbCh0aGlzLmNvbXBvbmVudERlc3Ryb3llZCkpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcclxuICAgICAgaWYgKCEhcmVzKSB7XHJcbiAgICAgICAgY29uc3QgcGF5bG9hZDogU2F2ZVNjaGVkdWxpbmdDYWxsQmFja01vZGVsID0gbmV3IFNhdmVTY2hlZHVsaW5nQ2FsbEJhY2tNb2RlbCh7XHJcbiAgICAgICAgICAuLi5yZXMsXHJcbiAgICAgICAgICB3bENvbmNpbGlhdGlvbklkOiBpdGVtPy53bENvbmNpbGlhdGlvbklkLFxyXG4gICAgICAgICAgYWN0aW9uSWQ6IHJlU2NoZWR1bGVDYWxsQmFja0FjdGlvbklkLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuY29uY2lsaWF0aW9uV29ya0xpc3RTZXJ2aWNlLmRpc3BhdGNoU2F2ZVNjaGVkdWxpbmdDYWxsQmFja0RldGFpbERldGFpbHMocGF5bG9hZClcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBvcGVuT3V0cmVhY2hEaWFsb2coaXRlbTogQ29uY2lsaWF0aW9uV29ya0xpc3RJdGVtTW9kZWwpIHtcclxuICAgIGNvbnN0IGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPFJlY29yZE91dHJlYWNoZGlhbG9nYm94Q29tcG9uZW50PiA9IHRoaXMuZGlhbG9nPy5vcGVuKFJlY29yZE91dHJlYWNoZGlhbG9nYm94Q29tcG9uZW50LCB7XHJcbiAgICAgIHdpZHRoOiByZWNvcmRPdXRyZWFjaGRpYWxvZ1NpemUsXHJcbiAgICAgIGRpc2FibGVDbG9zZTogdHJ1ZSxcclxuICAgICAgZGF0YToge1xyXG4gICAgICAgIGNvbmNpbGlhdGlvbkxvb2t1cHM6IHRoaXMuY29uY2lsaWF0aW9uTG9va3VwcyxcclxuICAgICAgICBkYXRhOiBpdGVtXHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1hbnlcclxuICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnBpcGUodGFrZVVudGlsKHRoaXMuY29tcG9uZW50RGVzdHJveWVkKSkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICBpZiAoISFyZXMpIHtcclxuICAgICAgICBjb25zdCBwYXlsb2FkOiBTYXZlT3V0cmVhY2hNb2RlbCA9IG5ldyBTYXZlT3V0cmVhY2hNb2RlbCh7XHJcbiAgICAgICAgICAuLi5yZXMsXHJcbiAgICAgICAgICB3bENvbmNpbGlhdGlvbklkOiBpdGVtPy53bENvbmNpbGlhdGlvbklkLFxyXG4gICAgICAgICAgYWN0aW9uSWQ6IHJlY29yZE91dHJlYWNoQWN0aW9uSWQsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5jb25jaWxpYXRpb25Xb3JrTGlzdFNlcnZpY2UuZGlzcGF0Y2hTYXZlT3V0cmVhY2hXb3JrbGlzdERldGFpbHMocGF5bG9hZClcclxuXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuICBvcGVuT3V0cmVhY2hIaXN0b3J5RGlhbG9nKGl0ZW06IENvbmNpbGlhdGlvbldvcmtMaXN0SXRlbU1vZGVsKXtcclxuICAgIGNvbnN0IGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPE91dHJlYWNoSGlzdG9yeUdyaWREaWFsb2dib3hDb21wb25lbnQ+ID0gdGhpcy5kaWFsb2c/Lm9wZW4oT3V0cmVhY2hIaXN0b3J5R3JpZERpYWxvZ2JveENvbXBvbmVudCwge1xyXG4gICAgICB3aWR0aDogZm9ybURpYWxvZ1NpemUsXHJcbiAgICAgIGRpc2FibGVDbG9zZTogdHJ1ZSxcclxuICAgICAgZGF0YToge1xyXG4gICAgICAgIGRhdGE6IGl0ZW0ud2xDb25jaWxpYXRpb25JZFxyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBvcGVuR29vZENhdXNlR3JhbnRlZERpYWxvZyhpdGVtOiBDb25jaWxpYXRpb25Xb3JrTGlzdEl0ZW1Nb2RlbCk6IHZvaWQge1xyXG4gICAgaWYgKGl0ZW0/Lm9yaWdpbmFsQ2F0ZWdvcnlJZCA9PT0gY3NBcHBvaW50bWVudHMgfHwgaXRlbT8ub3JpZ2luYWxDYXRlZ29yeUlkID09PSBjc0Fzc2lnbm1lbnRzIHx8XHJcbiAgICAgIGl0ZW0/Lm9yaWdpbmFsQ2F0ZWdvcnlJZCA9PT0gdGFnQXBwb2ludG1lbnRzIHx8IGl0ZW0/Lm9yaWdpbmFsQ2F0ZWdvcnlJZCA9PT0gdGFnQXNzaWdubWVudHMpIHtcclxuICAgICAgY29uc3QgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8R29vZENhdXNlR3JhbnRlZEFjdGlvbkNvbXBvbmVudD4gPSB0aGlzLmRpYWxvZz8ub3BlbihHb29kQ2F1c2VHcmFudGVkQWN0aW9uQ29tcG9uZW50LCB7XHJcbiAgICAgICAgd2lkdGg6IGRpYWxvZ1NpemUsXHJcbiAgICAgICAgZGlzYWJsZUNsb3NlOiB0cnVlLFxyXG4gICAgICAgIGRhdGE6IHtcclxuICAgICAgICAgIGNvbmNpbGlhdGlvbkxvb2t1cHM6IHRoaXMuY29uY2lsaWF0aW9uTG9va3VwcyxcclxuICAgICAgICAgIGRhdGE6IGl0ZW1cclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWFueVxyXG4gICAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5waXBlKHRha2VVbnRpbCh0aGlzLmNvbXBvbmVudERlc3Ryb3llZCkpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAocmVzKSB7XHJcbiAgICAgICAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKEdlbmVyYXRlRklBMTE4N0FMZXR0ZXJEaWFsb2dib3hDb21wb25lbnQsIHtcclxuICAgICAgICAgICAgd2lkdGg6ICc1NXZ3JyxcclxuICAgICAgICAgICAgZGlzYWJsZUNsb3NlOiB0cnVlLFxyXG4gICAgICAgICAgICBkYXRhOiB7fSxcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKClcclxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuY29tcG9uZW50RGVzdHJveWVkKSlcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgobGV0dGVyVHlwZUlkOiBudW1iZXIpID0+IHtcclxuICAgICAgICAgICAgICAvLyBpZiAobGV0dGVyVHlwZUlkID09PSAxKSB7XHJcbiAgICAgICAgICAgICAgLy8gICB0aGlzLmNvbmNpbGlhdGlvbldvcmtMaXN0U2VydmljZS5kaXNwYXRjaFByaW50RG9jdW1lbnQoeyBsZXR0ZXJUeXBlOiBsZXR0ZXJUeXBlSWQsIGFzc2Vzc21lbnRJZDogZ2V0KGl0ZW0sICdlYWVwQXNzZXNzbWVudElkJyksIENtc0Nhc2VJRDogZ2V0KGl0ZW0sICdjbXNDYXNlSWQnKSB9KTtcclxuICAgICAgICAgICAgICAvLyB9IGVsc2UgaWYgKGxldHRlclR5cGVJZCA9PT0gMikge1xyXG4gICAgICAgICAgICAgIC8vICAgdGhpcy5jb25jaWxpYXRpb25Xb3JrTGlzdFNlcnZpY2UuZGlzcGF0Y2hQcmludERvY3VtZW50KHsgbGV0dGVyVHlwZTogbGV0dGVyVHlwZUlkLCBhc3Nlc3NtZW50SWQ6IGdldChpdGVtLCAnZWFlcEFzc2Vzc21lbnRJZCcpLCBDbXNDYXNlSUQ6IGdldChpdGVtLCAnY21zQ2FzZUlkJykgfSk7XHJcbiAgICAgICAgICAgICAgLy8gfVxyXG4gICAgICAgICAgICAgIGNvbnN0IHBheWxvYWQ6IFNhdmVDb25jaWxpYXRpb25TdGF0dXNQYXlsb2FkID0gbmV3IFNhdmVDb25jaWxpYXRpb25TdGF0dXNQYXlsb2FkKHtcclxuICAgICAgICAgICAgICAgIC4uLnJlcyxcclxuICAgICAgICAgICAgICAgIGlzV2FudFRvU2VuZENsaWVudEJhY2s6IG51bGwsXHJcbiAgICAgICAgICAgICAgICBhY3Rpb25JZDogZ29vZENhdXNlR3JhbnRlZEFjdGlvbklkLFxyXG4gICAgICAgICAgICAgICAgd2xDb25jaWxpYXRpb25JZDogZ2V0KGl0ZW0sICd3bENvbmNpbGlhdGlvbklkJyksXHJcbiAgICAgICAgICAgICAgICBhcHBvaW50bWVudElkOiBudWxsLFxyXG4gICAgICAgICAgICAgICAgY2FzZUlkOiBpdGVtPy5jbXNDYXNlSWQsXHJcbiAgICAgICAgICAgICAgICBvcmlnaW5hbENhdGVnb3J5SWQ6IGl0ZW0/Lm9yaWdpbmFsQ2F0ZWdvcnlJZCxcclxuICAgICAgICAgICAgICAgIGFzc2Vzc21lbnRJZDogZ2V0KGl0ZW0sICdlYWVwQXNzZXNzbWVudElkJyksXHJcbiAgICAgICAgICAgICAgICBsZXR0ZXJUeXBlOiBsZXR0ZXJUeXBlSWQsXHJcbiAgICAgICAgICAgICAgICBpbmZyYWN0aW9uRGF0ZTogZ2V0KGl0ZW0sICdpbmZyYWN0aW9uRGF0ZScpLFxyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgIHRoaXMuY29uY2lsaWF0aW9uV29ya0xpc3RTZXJ2aWNlLmRpc3BhdGNoU2F2ZVN0YXR1cyhwYXlsb2FkKTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICAvLyB0aGlzLmNvbmNpbGlhdGlvbldvcmtMaXN0U2VydmljZS5zYXZlU3RhdHVzKHBheWxvYWQpLnBpcGUodGFrZVVudGlsKHRoaXMuY29tcG9uZW50RGVzdHJveWVkKSlcclxuICAgICAgLy8gLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcclxuICAgICAgLy8gICBjb25zb2xlLmxvZyhyZXMpXHJcbiAgICAgIC8vICAgaWYocmVzKXtcclxuICAgICAgLy8gdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvZWEtZXAvJyArIGl0ZW0/LmNtc0Nhc2VJZF0gLCB7cXVlcnlQYXJhbXM6e2lzY29uY2lsaWF0aW9uV0w6dHJ1ZX19KVxyXG4gICAgICAvLyAgIH1cclxuICAgICAgLy8gfSk7IFxyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIGNvbnN0IGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPEdvb2RDYXVzZUdyYW50ZWRBY3Rpb25Db21wb25lbnQ+ID0gdGhpcy5kaWFsb2c/Lm9wZW4oR29vZENhdXNlR3JhbnRlZEFjdGlvbkNvbXBvbmVudCwge1xyXG4gICAgICAgIHdpZHRoOiBkaWFsb2dTaXplLFxyXG4gICAgICAgIGRpc2FibGVDbG9zZTogdHJ1ZSxcclxuICAgICAgICBkYXRhOiB7XHJcbiAgICAgICAgICBjb25jaWxpYXRpb25Mb29rdXBzOiB0aGlzLmNvbmNpbGlhdGlvbkxvb2t1cHMsXHJcbiAgICAgICAgICBkYXRhOiBpdGVtXHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1hbnlcclxuICAgICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkucGlwZSh0YWtlVW50aWwodGhpcy5jb21wb25lbnREZXN0cm95ZWQpKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcykge1xyXG4gICAgICAgICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihHZW5lcmF0ZUZJQTExODdBTGV0dGVyRGlhbG9nYm94Q29tcG9uZW50LCB7XHJcbiAgICAgICAgICAgIHdpZHRoOiAnNTV2dycsXHJcbiAgICAgICAgICAgIGRpc2FibGVDbG9zZTogdHJ1ZSxcclxuICAgICAgICAgICAgZGF0YToge30sXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpXHJcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmNvbXBvbmVudERlc3Ryb3llZCkpXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGxldHRlclR5cGVJZDogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgICAgICAgLy8gaWYgKGxldHRlclR5cGVJZCA9PT0gMSkge1xyXG4gICAgICAgICAgICAgIC8vICAgdGhpcy5jb25jaWxpYXRpb25Xb3JrTGlzdFNlcnZpY2UuZGlzcGF0Y2hQcmludERvY3VtZW50KHsgbGV0dGVyVHlwZTogbGV0dGVyVHlwZUlkLCBhc3Nlc3NtZW50SWQ6IGdldChpdGVtLCAnZWFlcEFzc2Vzc21lbnRJZCcpLCBDbXNDYXNlSUQ6IGdldChpdGVtLCAnY21zQ2FzZUlkJykgfSk7XHJcbiAgICAgICAgICAgICAgLy8gfSBlbHNlIGlmIChsZXR0ZXJUeXBlSWQgPT09IDIpIHtcclxuICAgICAgICAgICAgICAvLyAgIHRoaXMuY29uY2lsaWF0aW9uV29ya0xpc3RTZXJ2aWNlLmRpc3BhdGNoUHJpbnREb2N1bWVudCh7IGxldHRlclR5cGU6IGxldHRlclR5cGVJZCwgYXNzZXNzbWVudElkOiBnZXQoaXRlbSwgJ2VhZXBBc3Nlc3NtZW50SWQnKSwgQ21zQ2FzZUlEOiBnZXQoaXRlbSwgJ2Ntc0Nhc2VJZCcpIH0pO1xyXG4gICAgICAgICAgICAgIC8vIH1cclxuICAgICAgICAgICAgICAvLyBpZiAoaXRlbSA/Lm91dHJlYWNoSWQgIT0gbnVsbCB8fCBpdGVtID8ub3JpZ2luYWxDYXRlZ29yeUlkID09PSB0YWdBc3NpZ25tZW50cykge1xyXG4gICAgICAgICAgICAgIC8vICAgY29uc3QgcGF5bG9hZDogU2F2ZUNvbmNpbGlhdGlvblN0YXR1c1BheWxvYWQgPSBuZXcgU2F2ZUNvbmNpbGlhdGlvblN0YXR1c1BheWxvYWQoe1xyXG4gICAgICAgICAgICAgIC8vICAgICAuLi5yZXMsXHJcbiAgICAgICAgICAgICAgLy8gICAgIGFjdGlvbklkOiBnb29kQ2F1c2VHcmFudGVkQWN0aW9uSWQsXHJcbiAgICAgICAgICAgICAgLy8gICAgIHdsQ29uY2lsaWF0aW9uSWQ6IGl0ZW0gPy53bENvbmNpbGlhdGlvbklkLFxyXG4gICAgICAgICAgICAgIC8vICAgICBjYXNlSWQ6IGl0ZW0gPy5jbXNDYXNlSWQsXHJcbiAgICAgICAgICAgICAgLy8gICAgIG9yaWdpbmFsQ2F0ZWdvcnlJZDogaXRlbSA/Lm9yaWdpbmFsQ2F0ZWdvcnlJZCxcclxuICAgICAgICAgICAgICAvLyAgICAgYXNzZXNzbWVudElkOiBnZXQoaXRlbSwgJ2VhZXBBc3Nlc3NtZW50SWQnKSxcclxuICAgICAgICAgICAgICAvLyAgICAgbGV0dGVyVHlwZTogbGV0dGVyVHlwZUlkLFxyXG4gICAgICAgICAgICAgIC8vICAgfSk7XHJcbiAgICAgICAgICAgICAgLy8gICB0aGlzLmNvbmNpbGlhdGlvbldvcmtMaXN0U2VydmljZS5kaXNwYXRjaFNhdmVTdGF0dXMocGF5bG9hZCk7XHJcbiAgICAgICAgICAgICAgLy8gfVxyXG4gICAgICAgICAgICAgIGlmIChpdGVtPy5vcmlnaW5hbENhdGVnb3J5SWQgPT09IGpjQXBwb2ludG1lbnRzIHx8IGl0ZW0/Lm9yaWdpbmFsQ2F0ZWdvcnlJZCA9PT0gc3BsUmVmQXBwb2ludG1lbnRzKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBwYXlsb2FkOiBTYXZlQ29uY2lsaWF0aW9uU3RhdHVzUGF5bG9hZCA9IG5ldyBTYXZlQ29uY2lsaWF0aW9uU3RhdHVzUGF5bG9hZCh7XHJcbiAgICAgICAgICAgICAgICAgIC4uLnJlcyxcclxuICAgICAgICAgICAgICAgICAgYWN0aW9uSWQ6IGdvb2RDYXVzZUdyYW50ZWRBY3Rpb25JZCxcclxuICAgICAgICAgICAgICAgICAgd2xDb25jaWxpYXRpb25JZDogaXRlbT8ud2xDb25jaWxpYXRpb25JZCxcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jb25jaWxpYXRpb25Xb3JrTGlzdFNlcnZpY2UuZGlzcGF0Y2hTYXZlU3RhdHVzKHBheWxvYWQpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy50YWJTZXJ2aWNlLmRpc3BhdGNoQWRkVGFiKHtcclxuICAgICAgICAgICAgICAgICAgdGFiTmFtZTogJ2VhLWVwLycgKyBpdGVtPy5lYWVwQXNzZXNzbWVudElkLFxyXG4gICAgICAgICAgICAgICAgICByb3V0ZTogJy9lYS1lcC8nICsgaXRlbT8uY21zQ2FzZUlkLFxyXG4gICAgICAgICAgICAgICAgICBsYWJlbDogJ0Fzc2Vzc21lbnRzJyArICcgLSAnICsgaXRlbT8uY2xpZW50TmFtZSxcclxuICAgICAgICAgICAgICAgICAgY2FuQ2xvc2U6IHRydWUsXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL2VhLWVwLycgKyBpdGVtPy5jbXNDYXNlSWRdLCB7IHJlbGF0aXZlVG86IHRoaXMucm91dGUsIHN0YXRlOiB7IGNsaWVudE5hbWU6IGl0ZW0/LmNsaWVudE5hbWUgfSB9KTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgLy8gZWxzZSBpZiAoKCgoaXRlbSA/Lm9yaWdpbmFsQ2F0ZWdvcnlJZCA9PT0gd2VjYXJlQXBwb2ludG1lbnRzIHx8XHJcbiAgICAgICAgICAgICAgLy8gICBpdGVtID8ub3JpZ2luYWxDYXRlZ29yeUlkID09PSBpdmFwQXNzaWdubWVudHMgfHxcclxuICAgICAgICAgICAgICAvLyAgICAgaXRlbSA/Lm9yaWdpbmFsQ2F0ZWdvcnlJZCA9PT0gdnJzQXBwb2ludG1lbnRzKSBcclxuICAgICAgICAgICAgICAvLyAgICAgJiYgaXRlbSA/Lm55Y3dheUFwcHRDb2RlICE9PSBudWxsKSB8fCBpdGVtID8ubnljd2F5QXBwdENvZGUgPT09ICdDSCcpKSB7XHJcbiAgICAgICAgICAgICAgZWxzZSBpZiAoaXRlbT8ub3JpZ2luYWxDYXRlZ29yeUlkID09PSB3ZWNhcmVBcHBvaW50bWVudHMgfHxcclxuICAgICAgICAgICAgICAgIGl0ZW0/Lm9yaWdpbmFsQ2F0ZWdvcnlJZCA9PT0gaXZhcEFzc2lnbm1lbnRzIHx8XHJcbiAgICAgICAgICAgICAgICBpdGVtPy5vcmlnaW5hbENhdGVnb3J5SWQgPT09IHZyc0FwcG9pbnRtZW50cykge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcGF5bG9hZDogU2F2ZUNvbmNpbGlhdGlvblN0YXR1c1BheWxvYWQgPSBuZXcgU2F2ZUNvbmNpbGlhdGlvblN0YXR1c1BheWxvYWQoe1xyXG4gICAgICAgICAgICAgICAgICAuLi5yZXMsXHJcbiAgICAgICAgICAgICAgICAgIGFjdGlvbklkOiBnb29kQ2F1c2VHcmFudGVkQWN0aW9uSWQsXHJcbiAgICAgICAgICAgICAgICAgIHdsQ29uY2lsaWF0aW9uSWQ6IGl0ZW0/LndsQ29uY2lsaWF0aW9uSWQsXHJcbiAgICAgICAgICAgICAgICAgIGNhc2VJZDogaXRlbT8uY21zQ2FzZUlkLFxyXG4gICAgICAgICAgICAgICAgICBvcmlnaW5hbENhdGVnb3J5SWQ6IGl0ZW0/Lm9yaWdpbmFsQ2F0ZWdvcnlJZCxcclxuICAgICAgICAgICAgICAgICAgYXNzZXNzbWVudElkOiBnZXQoaXRlbSwgJ2VhZXBBc3Nlc3NtZW50SWQnKSxcclxuICAgICAgICAgICAgICAgICAgbGV0dGVyVHlwZTogbGV0dGVyVHlwZUlkLCBpbmZyYWN0aW9uRGF0ZTogZ2V0KGl0ZW0sICdpbmZyYWN0aW9uRGF0ZScpLFxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmNpbGlhdGlvbldvcmtMaXN0U2VydmljZS5kaXNwYXRjaFNhdmVTdGF0dXMocGF5bG9hZCk7XHJcbiAgICAgICAgICAgICAgICAvL0JhdGNoIHBvb2wgbG9naWMgYWRkZWQgdG8gU3VibWl0R3JhbnRlZENvbmNpbGlhdGlvbiBhcGlcclxuICAgICAgICAgICAgICAgIC8vIGNvbnN0IHBheWxvYWQ6IFN1Ym1pdEJhdGNoUG9vbEFwcG9pbnRtZW50TW9kZWwgPSBuZXcgU3VibWl0QmF0Y2hQb29sQXBwb2ludG1lbnRNb2RlbCh7XHJcbiAgICAgICAgICAgICAgICAvLyAgIGNhc2VJZDogaXRlbSA/LmNtc0Nhc2VJZCxcclxuICAgICAgICAgICAgICAgIC8vICAgc2l0ZUlkOiBpdGVtID8uc21TaXRlSWQsXHJcbiAgICAgICAgICAgICAgICAvLyAgIGFwcG9pbnRtZW50SWQ6IGl0ZW0gPy5hcHBvaW50QXNzaWduTmFtZSxcclxuICAgICAgICAgICAgICAgIC8vICAgZWFlcEFzc2Vzc21lbnRJZDogaXRlbSA/LmVhZXBBc3Nlc3NtZW50SWQsXHJcbiAgICAgICAgICAgICAgICAvLyAgIHdsQ29uY2lsaWF0aW9uSWQ6IGl0ZW0gPy53bENvbmNpbGlhdGlvbklkLFxyXG4gICAgICAgICAgICAgICAgLy8gICBhcHBvaW50bWVudE5ZQ1dBWWNvZGU6IGl0ZW0gPy5ueWN3YXlBcHB0Q29kZSxcclxuICAgICAgICAgICAgICAgIC8vICAgbGV0dGVyVHlwZTogbGV0dGVyVHlwZUlkLFxyXG4gICAgICAgICAgICAgICAgLy8gfSk7XHJcbiAgICAgICAgICAgICAgICAvLyB0aGlzLmNvbmNpbGlhdGlvbldvcmtMaXN0U2VydmljZS5kaXNwYXRjaFN1Ym1pdEJhdGNoUG9vbEFwcG9pbnRtZW50KHBheWxvYWQpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHBheWxvYWQ6IFNhdmVDb25jaWxpYXRpb25TdGF0dXNQYXlsb2FkID0gbmV3IFNhdmVDb25jaWxpYXRpb25TdGF0dXNQYXlsb2FkKHtcclxuICAgICAgICAgICAgICAgICAgLi4ucmVzLFxyXG4gICAgICAgICAgICAgICAgICBhY3Rpb25JZDogZ29vZENhdXNlR3JhbnRlZEFjdGlvbklkLFxyXG4gICAgICAgICAgICAgICAgICB3bENvbmNpbGlhdGlvbklkOiBpdGVtPy53bENvbmNpbGlhdGlvbklkLFxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAvL1xyXG4gICAgICAgICAgICAgICAgaWYgKGdldChpdGVtLCAnaW5mcmFjdGVkVHlwZS52YWx1ZS5sb29rdXBJZCcpID09PSBJbmZyYWN0aW9uVHlwZUVudW0uRlRSQXBwb2ludG1lbnRcclxuICAgICAgICAgICAgICAgICAgJiYgKChnZXQoaXRlbSwgJ2luZnJhY3RlZEF0LnZhbHVlLmxvb2t1cElkJykgPT09IEluZnJhY3Rpb25BdEVudW0uQ2FyZWVyU2VydmljZXMgJiYgdGhpcy51c2VyXHJcbiAgICAgICAgICAgICAgICAgICAgJiYgKHRoaXMudXNlci5pc0pvc1dvcmtlciB8fCB0aGlzLnVzZXIuaXNKb3NTdXBlcnZpc29yIHx8IHRoaXMudXNlci5pc091dFN0YXRpb25Xb3JrZXIgfHwgdGhpcy51c2VyLmlzT3V0U3RhdGlvblN1cGVydmlzb3IpKSAvLyBiciA4LCA5XHJcbiAgICAgICAgICAgICAgICAgICAgfHwgKGdldChpdGVtLCAnaW5mcmFjdGVkQXQudmFsdWUubG9va3VwSWQnKSA9PT0gSW5mcmFjdGlvbkF0RW51bS5DYXJlZXJBZHZhbmNlICYmIHRoaXMudXNlclxyXG4gICAgICAgICAgICAgICAgICAgICAgJiYgKHRoaXMudXNlci5pc0pvc1dvcmtlciB8fCB0aGlzLnVzZXIuaXNKb3NTdXBlcnZpc29yIHx8IHRoaXMudXNlci5pc091dFN0YXRpb25Xb3JrZXIgfHwgdGhpcy51c2VyLmlzT3V0U3RhdGlvblN1cGVydmlzb3IpKSkpIHtcclxuICAgICAgICAgICAgICAgICAgLy8gYnIgMTAsIDExXHJcbiAgICAgICAgICAgICAgICAgIHRoaXMub3Blblllc05vQ29uZmlybWF0aW9uRGlhbG9nKHBheWxvYWQsIGl0ZW0pO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgLy8gc2VuZCB0byBCRVxyXG4gICAgICAgICAgICAgICAgICB0aGlzLmNvbmNpbGlhdGlvbldvcmtMaXN0U2VydmljZS5kaXNwYXRjaFNhdmVTdGF0dXMocGF5bG9hZCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIC8vaGVyZVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb3Blbkdvb2RDYXVzZU5vdEdyYW50ZWREaWFsb2coaXRlbTogQ29uY2lsaWF0aW9uV29ya0xpc3RJdGVtTW9kZWwpOiB2b2lkIHtcclxuXHJcbiAgICBpZiAoaXRlbT8ub3JpZ2luYWxDYXRlZ29yeUlkID09PSBjc0FwcG9pbnRtZW50cyB8fCBpdGVtPy5vcmlnaW5hbENhdGVnb3J5SWQgPT09IGNzQXNzaWdubWVudHMpIHtcclxuICAgICAgdGhpcy5pc0NvbmNpbGlhdGlvbldsQ2hlY2sgPSB0cnVlXHJcbiAgICB9XHJcblxyXG4gICAgLy93ZSBkb24ndCBuZWVkIHRvIHNlbmQgb3JpZ2luYWwgYXBwdCBJZC4gT3JpZ2luYWwgYXBwdCB0eXBlIElkIGlzIGRpZmZlcmVudC5cclxuICAgIGNvbnN0IGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPEdvb2RDYXVzZU5vdEdyYW50ZWRBY3Rpb25Db21wb25lbnQ+ID0gdGhpcy5kaWFsb2c/Lm9wZW4oR29vZENhdXNlTm90R3JhbnRlZEFjdGlvbkNvbXBvbmVudCwge1xyXG4gICAgICB3aWR0aDogZGlhbG9nU2l6ZSxcclxuICAgICAgZGlzYWJsZUNsb3NlOiB0cnVlLFxyXG4gICAgICBkYXRhOiB7XHJcbiAgICAgICAgY29uY2lsaWF0aW9uTG9va3VwczogdGhpcy5jb25jaWxpYXRpb25Mb29rdXBzLFxyXG4gICAgICAgIGRhdGE6IHsgLi4uaXRlbSwgYXBwb2ludG1lbnRJZDogMCwgaXNjb25jaWxpYXRpb25XTDogdGhpcy5pc0NvbmNpbGlhdGlvbldsQ2hlY2sgfVxyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcblxyXG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWFueVxyXG4gICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkucGlwZSh0YWtlVW50aWwodGhpcy5jb21wb25lbnREZXN0cm95ZWQpKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcbiAgICAgIGlmICghIXJlcykge1xyXG4gICAgICAgIHRoaXMuY29uY2lsaWF0aW9uV29ya0xpc3RTZXJ2aWNlLmRpc3BhdGNoU2F2ZVN0YXR1cyhuZXcgU2F2ZUNvbmNpbGlhdGlvblN0YXR1c1BheWxvYWQoe1xyXG4gICAgICAgICAgLi4ucmVzLFxyXG4gICAgICAgICAgd2xDb25jaWxpYXRpb25JZDogaXRlbT8ud2xDb25jaWxpYXRpb25JZCxcclxuICAgICAgICAgIGFjdGlvbklkOiBnb29kQ2F1c2VOb3RHcmFudGVkQWN0aW9uSWQsXHJcbiAgICAgICAgfSkpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG9wZW5ZZXNOb0NvbmZpcm1hdGlvbkRpYWxvZyhwYXlsb2FkOiBTYXZlQ29uY2lsaWF0aW9uU3RhdHVzUGF5bG9hZCwgaXRlbTogQ29uY2lsaWF0aW9uV29ya0xpc3RJdGVtTW9kZWwpOiB2b2lkIHtcclxuICAgIGNvbnN0IGNvbmZpcm1EaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxZZXNOb0NvbmZpcm1hdGlvbkRpYWxvZ0NvbXBvbmVudD4gPSB0aGlzLmRpYWxvZy5vcGVuKFllc05vQ29uZmlybWF0aW9uRGlhbG9nQ29tcG9uZW50LCB7XHJcbiAgICAgIHdpZHRoOiBkaWFsb2dTaXplLFxyXG4gICAgICBkaXNhYmxlQ2xvc2U6IHRydWUsXHJcbiAgICAgIGRhdGE6IHtcclxuICAgICAgICB5ZXNMYWJlbDogeWVzTGFiZWwsXHJcbiAgICAgICAgbm9MYWJlbDogbm9MYWJlbCxcclxuICAgICAgICBoZWFkZXI6IGNvbmZpcm1IZWFkZXIsXHJcbiAgICAgICAgbWVzc2FnZTogZ29vZENhdXNlQ29uZmlybU1lc3NhZ2UsXHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuXHJcbiAgICBjb25maXJtRGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkucGlwZSh0YWtlVW50aWwodGhpcy5jb21wb25lbnREZXN0cm95ZWQpKS5zdWJzY3JpYmUoKHJlczogYm9vbGVhbikgPT4ge1xyXG4gICAgICBpZiAoISFyZXMpIHtcclxuICAgICAgICB0aGlzLmNvbmNpbGlhdGlvbldvcmtMaXN0U2VydmljZS5kaXNwYXRjaFNhdmVTdGF0dXMobmV3IFNhdmVDb25jaWxpYXRpb25TdGF0dXNQYXlsb2FkKHtcclxuICAgICAgICAgIC4uLnBheWxvYWQsXHJcbiAgICAgICAgICBjb25maXJtWWVzTm86IHRydWUsXHJcbiAgICAgICAgfSkpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuY29uY2lsaWF0aW9uV29ya0xpc3RTZXJ2aWNlLmRpc3BhdGNoU2F2ZVN0YXR1cyhuZXcgU2F2ZUNvbmNpbGlhdGlvblN0YXR1c1BheWxvYWQoe1xyXG4gICAgICAgICAgLi4ucGF5bG9hZCxcclxuICAgICAgICAgIGNvbmZpcm1ZZXNObzogZmFsc2UsXHJcbiAgICAgICAgfSkpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGFmdGVyT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgLy9cclxuICB9XHJcbn0iLCI8cHJ1dGVjaC1jb250ZXh0LW1lbnUgW21lbnVJdGVtc109XCJtZW51SXRlbXNcIiAobWVudUFjdGlvbik9XCJkb0FjdGlvbigkZXZlbnQpXCI+PC9wcnV0ZWNoLWNvbnRleHQtbWVudT5cclxuIl19
517
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uY2lsaWF0aW9uLWNvbnRleHQtbWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcnV0ZWNoL2NvbXBsaWFuY2Uvc3JjL2xpYi9jb25jaWxpYXRpb24tYXBwb2ludG1lbnQtd29yay1saXN0L2NvbXBvbmVudHMvY29udGV4dC1tZW51L2NvbmNpbGlhdGlvbi1jb250ZXh0LW1lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJ1dGVjaC9jb21wbGlhbmNlL3NyYy9saWIvY29uY2lsaWF0aW9uLWFwcG9pbnRtZW50LXdvcmstbGlzdC9jb21wb25lbnRzL2NvbnRleHQtbWVudS9jb25jaWxpYXRpb24tY29udGV4dC1tZW51LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBS25GLE9BQU8sRUFBRSxpQkFBaUIsRUFBMkUsTUFBTSxxQkFBcUIsQ0FBQztBQUVqSSxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDakUsT0FBTyxFQUFFLE1BQU0sSUFBSSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBR3ZELE9BQU8sRUFBRSxVQUFVLEVBQUUsd0JBQXdCLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDOUcsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sMEZBQTBGLENBQUM7QUFHM0ksT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sa0dBQWtHLENBQUM7QUFDdEos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QUFDLElBQUksNkJBQTZCLENBQUM7b0JBQ3BGLEdBQUcsT0FBTztvQkFDVixZQUFZLEVBQUUsS0FBSztpQkFDcEIsQ0FBQyxDQUFDLENBQUM7YUFDTDtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGNBQWM7UUFDWixFQUFFO0lBQ0osQ0FBQzs7OEhBcmZVLGdDQUFnQywwTUFpQmpDLGFBQWE7a0hBakJaLGdDQUFnQyxnR0MvRDdDLCtHQUNBOzRGRDhEYSxnQ0FBZ0M7a0JBTjVDLFNBQVM7K0JBQ0UsbUNBQW1DLG1CQUc1Qix1QkFBdUIsQ0FBQyxNQUFNOzswQkFtQjVDLE1BQU07MkJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEluamVjdCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBNYXREaWFsb2csIE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IFNjaGVkdWxlQXBwb2ludG1lbnRQb3N0TW9kZWwgfSBmcm9tICdAcHJ1dGVjaC9hcHBvaW50bWVudCc7XHJcbmltcG9ydCB7IEFnR3JpZEFuZ3VsYXIgfSBmcm9tICdAYWctZ3JpZC1jb21tdW5pdHkvYW5ndWxhcic7XHJcbmltcG9ydCB7IEFic3RyYWN0Q29tcG9uZW50LCBDb250ZXh0TWVudUFjdGlvbkl0ZW0sIENvbnRleHRNZW51SXRlbSwgRW52aXJvbm1lbnQsIExvb2t1cCwgVGFiU2VydmljZSB9IGZyb20gJ0BwcnV0ZWNoL2NvbXBvbmVudHMnO1xyXG5pbXBvcnQgeyBVc2VyLCBVc2VyU2VydmljZSB9IGZyb20gJ0BwcnV0ZWNoL2lkZW50aXR5LWNsaWVudCc7XHJcbmltcG9ydCB7IGZpbHRlciwgZmluZCwgZ2V0LCBpc05pbCwgbWFwLCB0b1N0cmluZyB9IGZyb20gJ2xvZGFzaCc7XHJcbmltcG9ydCB7IGZpbHRlciBhcyByRmlsdGVyLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IG1lbnVJdGVtcyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9tZW51LWl0ZW1zJztcclxuaW1wb3J0IHsgQ29uY2lsaWF0aW9uV29ya0xpc3RJdGVtTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvY29uY2lsaWF0aW9uLXdvcmstbGlzdC1pdGVtLm1vZGVsJztcclxuaW1wb3J0IHsgQ29uY2lsaWF0aW9uQXBwb2ludG1lbnRXb3JrTGlzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jb25jaWxpYXRpb24tYXBwb2ludG1lbnQtd29yay1saXN0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBkaWFsb2dTaXplLCByZWNvcmRPdXRyZWFjaGRpYWxvZ1NpemUsIGZvcm1EaWFsb2dTaXplIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2NvbnN0YW50cy9kaWFnbG9nLXNpemUnO1xyXG5pbXBvcnQgeyBHb29kQ2F1c2VHcmFudGVkQWN0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2NvbXBvbmVudHMvZ29vZC1jYXVzZS1ncmFudGVkLWFjdGlvbi9nb29kLWNhdXNlLWdyYW50ZWQtYWN0aW9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IExvb2t1cHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL21vZHVsZXMvY29uY2lsaWF0aW9uLWxvb2t1cHMvc2VydmljZXMvbG9va3Vwcy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29uY2lsaWF0aW9uTG9va3VwcyB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9tb2RlbHMvY29uY2lsaWF0aW9uLWxvb2t1cHMubW9kZWwnO1xyXG5pbXBvcnQgeyBHb29kQ2F1c2VOb3RHcmFudGVkQWN0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2NvbXBvbmVudHMvZ29vZC1jYXVzZS1ub3QtZ3JhbnRlZC1hY3Rpb24vZ29vZC1jYXVzZS1ub3QtZ3JhbnRlZC1hY3Rpb24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgU2F2ZUNvbmNpbGlhdGlvblN0YXR1c1BheWxvYWQgfSBmcm9tICcuLi8uLi9tb2RlbHMvc2F2ZS1jb25jaWxpYXRpb24tc3RhdHVzLXBheWxvYWQubW9kZWwnO1xyXG5pbXBvcnQge1xyXG4gIGdvb2RDYXVzZUdyYW50ZWRBY3Rpb25JZCxcclxuICBnb29kQ2F1c2VOb3RHcmFudGVkQWN0aW9uSWQsXHJcbiAgcmVBc3NpZ25BY3Rpb25JZCxcclxuICByZWNvcmRPdXRyZWFjaEFjdGlvbklkLFxyXG4gIHJlU2NoZWR1bGVDYWxsQmFja0FjdGlvbklkLFxyXG4gIHNjaGVkdWxlQ2FsbEJhY2tBY3Rpb25JZCxcclxuICBzaG93Q2FzZXN1bW1hcnlJZCxcclxuICBzaG93T3V0cmVhY2hIaXN0b3J5SWRcclxufSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvY29uc3RhbnRzL2NvbmNpbGlhdGlvbi9tZW51LWFjdGlvbi1kZWZzJztcclxuaW1wb3J0IHsgYWN0aW9uc0xhYmVsIH0gZnJvbSAnLi4vLi4vLi4vcHJlLWNvbmNpbGlhdGlvbi13b3JrLWxpc3QvY29uc3RhbnRzL21lbnUtaXRlbXMnO1xyXG5pbXBvcnQgeyBZZXNOb0NvbmZpcm1hdGlvbkRpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9jb21wb25lbnRzL3llcy1uby1jb25maXJtYXRpb24tZGlhbG9nL3llcy1uby1jb25maXJtYXRpb24tZGlhbG9nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IGNvbmZpcm1IZWFkZXIsIGdvb2RDYXVzZUNvbmZpcm1NZXNzYWdlLCBub0xhYmVsLCB5ZXNMYWJlbCB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy95ZXMtbm8tY29uZmlybS1kZWZhdWx0cyc7XHJcbmltcG9ydCB7IEluZnJhY3Rpb25UeXBlRW51bSB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9jb25zdGFudHMvaW5mcmFjdGlvbi10eXBlLWVudW0nO1xyXG5pbXBvcnQgeyBJbmZyYWN0aW9uQXRFbnVtIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2NvbnN0YW50cy9pbmZyYWN0aW9uLWF0LWVudW0nO1xyXG5pbXBvcnQgeyBTY2hlZHVsZUNhbGxCYWNrQWN0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vc2NoZWR1bGUtY2FsbC1iYWNrLWFjdGlvbi9zY2hlZHVsZS1jYWxsLWJhY2stYWN0aW9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNhdmVTY2hlZHVsaW5nQ2FsbEJhY2tNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9zYXZlLXNjaGVkdWxpbmctY2FsbC1iYWNrLm1vZGVsJztcclxuaW1wb3J0IHsgU2F2ZU91dHJlYWNoTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvc2F2ZS1vdXRyZWFjaC1tb2RlbCc7XHJcbmltcG9ydCB7IFJlY29yZE91dHJlYWNoZGlhbG9nYm94Q29tcG9uZW50IH0gZnJvbSAnLi4vcmVjb3JkLW91dHJlYWNoZGlhbG9nYm94L3JlY29yZC1vdXRyZWFjaGRpYWxvZ2JveC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBSZUFzc2lnbkRhaWxvZ2JveENvbXBvbmVudCB9IGZyb20gJy4uL3JlLWFzc2lnbi1kYWlsb2dib3gvcmUtYXNzaWduLWRhaWxvZ2JveC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTdWJtaXRSZWFzc2lnbk1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3N1Ym1pdC1yZS1hc3NpZ24tZnJvbW1vZGVsJztcclxuaW1wb3J0IHsgV2FudFRvU2VuZENsaWVudEJhY2tEaWFsb2dib3hDb21wb25lbnQgfSBmcm9tICcuLi93YW50LXRvLXNlbmQtY2xpZW50LWJhY2stZGlhbG9nYm94L3dhbnQtdG8tc2VuZC1jbGllbnQtYmFjay1kaWFsb2dib3guY29tcG9uZW50JztcclxuaW1wb3J0IHsgb3BlbkFwcG9pbnRtZW50RGlhbG9nYm94IH0gZnJvbSAnLi4vLi4vbW9kZWxzL29wZW4tYXBwb2ludG1lbnQnO1xyXG5pbXBvcnQgeyBTdWJtaXRCYXRjaFBvb2xBcHBvaW50bWVudE1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3N1Ym1pdC1iYXRjaC1wb29sLWFwcG9pbnRtZW50Lm1vZGVsJztcclxuaW1wb3J0IHtcclxuICBjc0FwcG9pbnRtZW50cyxcclxuICBjc0Fzc2lnbm1lbnRzLFxyXG4gIGl2YXBBc3NpZ25tZW50cyxcclxuICBqY0FwcG9pbnRtZW50cyxcclxuICBzcGxSZWZBcHBvaW50bWVudHMsXHJcbiAgdGFnQXBwb2ludG1lbnRzLFxyXG4gIHRhZ0Fzc2lnbm1lbnRzLFxyXG4gIHZyc0FwcG9pbnRtZW50cyxcclxuICB3ZWNhcmVBcHBvaW50bWVudHNcclxufSBmcm9tICcuLi8uLi9jb25zdGFudHMvb3JnaW5hbC1jYXRlZ29yeS1sb29rdXAtdHlwZXMuY29uc3RhbnRzJztcclxuaW1wb3J0IHsgR2VuZXJhdGVGSUExMTg3QUxldHRlckRpYWxvZ2JveENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9jb21wb25lbnRzL2dlbmVyYXRlLWZpYTExODctYWxldHRlci1kaWFsb2dib3gvZ2VuZXJhdGUtZmlhMTE4Ny1hbGV0dGVyLWRpYWxvZ2JveC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBPdXRyZWFjaEhpc3RvcnlHcmlkRGlhbG9nYm94Q29tcG9uZW50IH0gZnJvbSAnLi4vb3V0cmVhY2gtaGlzdG9yeS1ncmlkLWRpYWxvZ2JveC9vdXRyZWFjaC1oaXN0b3J5LWdyaWQtZGlhbG9nYm94LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZlZGVyYWxIb2xpZGF5c01vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2ZlZGVyYWwtaG9saWRheXMtbW9kZWwnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdwcnV0ZWNoLWNvbmNpbGlhdGlvbi1jb250ZXh0LW1lbnUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jb25jaWxpYXRpb24tY29udGV4dC1tZW51LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jb25jaWxpYXRpb24tY29udGV4dC1tZW51LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb25jaWxpYXRpb25Db250ZXh0TWVudUNvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgbWVudUl0ZW1zOiBDb250ZXh0TWVudUl0ZW1bXSA9IG1lbnVJdGVtcztcclxuICBwYXJhbXM6IEFnR3JpZEFuZ3VsYXI7XHJcbiAgY29uY2lsaWF0aW9uTG9va3VwczogQ29uY2lsaWF0aW9uTG9va3VwcztcclxuICBhY3Rpb25zOiBMb29rdXBbXTtcclxuICB1c2VyOiBVc2VyO1xyXG4gIGlzQ29uY2lsaWF0aW9uV2xDaGVjazogYW55O1xyXG4gIGFwcHRTY2hlZHVsZWREZXRhaWxzOiBTY2hlZHVsZUFwcG9pbnRtZW50UG9zdE1vZGVsO1xyXG4gIGhvbGlkYXlMaXN0OkZlZGVyYWxIb2xpZGF5c01vZGVsW107XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBkaWFsb2c6IE1hdERpYWxvZyxcclxuICAgIHByaXZhdGUgbG9va3Vwc1NlcnZpY2U6IExvb2t1cHNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB0YWJTZXJ2aWNlOiBUYWJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcclxuICAgIHByaXZhdGUgdXNlclNlcnZpY2U6IFVzZXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjb25jaWxpYXRpb25Xb3JrTGlzdFNlcnZpY2U6IENvbmNpbGlhdGlvbkFwcG9pbnRtZW50V29ya0xpc3RTZXJ2aWNlLFxyXG4gICAgQEluamVjdCgnZW52aXJvbm1lbnQnKSBwcml2YXRlIGVudmlyb25tZW50OiBFbnZpcm9ubWVudCxcclxuICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnVzZXJTZXJ2aWNlLnVzZXIucGlwZShcclxuICAgICAgdGFrZVVudGlsKHRoaXMuY29tcG9uZW50RGVzdHJveWVkKSxcclxuICAgICAgckZpbHRlcigodXNlcjogVXNlcikgPT4gISF1c2VyKSlcclxuICAgICAgLnN1YnNjcmliZSgodXNlcjogVXNlcikgPT4ge1xyXG4gICAgICAgIHRoaXMudXNlciA9IHVzZXI7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgIHRoaXMubG9va3Vwc1NlcnZpY2UubG9va3Vwcy5waXBlKHRha2VVbnRpbCh0aGlzLmNvbXBvbmVudERlc3Ryb3llZCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKGxvb2t1cHM6IENvbmNpbGlhdGlvbkxvb2t1cHMpID0+IHtcclxuICAgICAgICB0aGlzLmNvbmNpbGlhdGlvbkxvb2t1cHMgPSBsb29rdXBzO1xyXG4gICAgICB9KTtcclxuICAgIHRoaXMuY29uY2lsaWF0aW9uV29ya0xpc3RTZXJ2aWNlLmFjdGlvbnMucGlwZSh0YWtlVW50aWwodGhpcy5jb21wb25lbnREZXN0cm95ZWQpKVxyXG4gICAgICAuc3Vic2NyaWJlKChhY3Rpb25zOiBMb29rdXBbXSkgPT4ge1xyXG4gICAgICAgIHRoaXMuYWN0aW9ucyA9IGFjdGlvbnM7XHJcbiAgICAgICAgdGhpcy5tZW51SXRlbXMgPSB0aGlzLmdldFVwZGF0ZWRNZW51SXRlbXMoKTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgdGhpcy5jb25jaWxpYXRpb25Xb3JrTGlzdFNlcnZpY2UuaG9saWRheXNMaXN0LnBpcGUodGFrZVVudGlsKHRoaXMuY29tcG9uZW50RGVzdHJveWVkKSlcclxuICAgICAuc3Vic2NyaWJlKChkYXRhOkZlZGVyYWxIb2xpZGF5c01vZGVsW10pID0+IHtcclxuICAgICAgdGhpcy5ob2xpZGF5TGlzdCA9IGRhdGE7XHJcbiAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBhZ0luaXQocGFyYW1zOiBBZ0dyaWRBbmd1bGFyKTogdm9pZCB7XHJcbiAgICB0aGlzLnBhcmFtcyA9IHBhcmFtcztcclxuICAgIGNvbnN0IGNhblJlc2NoZWR1bGU6IGJvb2xlYW4gPSAhaXNOaWwoZ2V0KHRoaXMucGFyYW1zLCAnZGF0YS5zY2hlZHVsZWREYXRlJykpO1xyXG4gICAgaWYgKCFnZXQodGhpcy5wYXJhbXMsICdkYXRhLmlzR3JhbnRlZCcpKSB7XHJcbiAgICAgIHRoaXMubWVudUl0ZW1zID0gbWFwKHRoaXMubWVudUl0ZW1zLCAoaXRlbTogQ29udGV4dE1lbnVJdGVtKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIC4uLml0ZW0sIGl0ZW1zOiBmaWx0ZXIoaXRlbS5pdGVtcywgKGFjdGlvbkl0ZW06IENvbnRleHRNZW51QWN0aW9uSXRlbSkgPT4gYWN0aW9uSXRlbS5yb3V0ZSAhPT0gJzEnKSxcclxuICAgICAgICB9O1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGlmICghZ2V0KHRoaXMucGFyYW1zLCAnZGF0YS5pc0dyYW50ZWQnKSkge1xyXG4gICAgICB0aGlzLm1lbnVJdGVtcyA9IG1hcCh0aGlzLm1lbnVJdGVtcywgKGl0ZW06IENvbnRleHRNZW51SXRlbSkgPT4ge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAuLi5pdGVtLCBpdGVtczogZmlsdGVyKGl0ZW0uaXRlbXMsIChhY3Rpb25JdGVtOiBDb250ZXh0TWVudUFjdGlvbkl0ZW0pID0+IGFjdGlvbkl0ZW0ucm91dGUgIT09ICcyJyksXHJcbiAgICAgICAgfTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBpZiAoZ2V0KHRoaXMucGFyYW1zLCAnZGF0YS5pc1NjaGVkdWxlJykgfHwgY2FuUmVzY2hlZHVsZSkge1xyXG4gICAgICB0aGlzLm1lbnVJdGVtcyA9IG1hcCh0aGlzLm1lbnVJdGVtcywgKGl0ZW06IENvbnRleHRNZW51SXRlbSkgPT4ge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAuLi5pdGVtLCBpdGVtczogZmlsdGVyKGl0ZW0uaXRlbXMsIChhY3Rpb25JdGVtOiBDb250ZXh0TWVudUFjdGlvbkl0ZW0pID0+IGFjdGlvbkl0ZW0ucm91dGUgIT09IHRvU3RyaW5nKHNjaGVkdWxlQ2FsbEJhY2tBY3Rpb25JZCkpLFxyXG4gICAgICAgIH07XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgaWYgKCFnZXQodGhpcy5wYXJhbXMsICdkYXRhLmlzUmVTY2hlZHVsZScpIHx8ICFjYW5SZXNjaGVkdWxlKSB7XHJcbiAgICAgIHRoaXMubWVudUl0ZW1zID0gbWFwKHRoaXMubWVudUl0ZW1zLCAoaXRlbTogQ29udGV4dE1lbnVJdGVtKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIC4uLml0ZW0sIGl0ZW1zOiBmaWx0ZXIoaXRlbS5pdGVtcywgKGFjdGlvbkl0ZW06IENvbnRleHRNZW51QWN0aW9uSXRlbSkgPT4gYWN0aW9uSXRlbS5yb3V0ZSAhPT0gdG9TdHJpbmcocmVTY2hlZHVsZUNhbGxCYWNrQWN0aW9uSWQpKSxcclxuICAgICAgICB9O1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGlmICghZ2V0KHRoaXMucGFyYW1zLCAnZGF0YS5pc091dHJlYWNoJykpIHtcclxuICAgICAgdGhpcy5tZW51SXRlbXMgPSBtYXAodGhpcy5tZW51SXRlbXMsIChpdGVtOiBDb250ZXh0TWVudUl0ZW0pID0+IHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgLi4uaXRlbSwgaXRlbXM6IGZpbHRlcihpdGVtLml0ZW1zLCAoYWN0aW9uSXRlbTogQ29udGV4dE1lbnVBY3Rpb25JdGVtKSA9PiBhY3Rpb25JdGVtLnJvdXRlICE9PSAnNicpLFxyXG4gICAgICAgIH07XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgaWYgKCFnZXQodGhpcy5wYXJhbXMsICdkYXRhLmlzUmVBc3NpZ24nKSkge1xyXG4gICAgICB0aGlzLm1lbnVJdGVtcyA9IG1hcCh0aGlzLm1lbnVJdGVtcywgKGl0ZW06IENvbnRleHRNZW51SXRlbSkgPT4ge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAuLi5pdGVtLCBpdGVtczogZmlsdGVyKGl0ZW0uaXRlbXMsIChhY3Rpb25JdGVtOiBDb250ZXh0TWVudUFjdGlvbkl0ZW0pID0+IGFjdGlvbkl0ZW0ucm91dGUgIT09ICc1JyksXHJcbiAgICAgICAgfTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICAgaWYgKGdldCh0aGlzLnBhcmFtcywgJ2RhdGEuc2hvd09ubHlDYXNlU3VtbWF5JykpIHtcclxuICAgICAgdGhpcy5tZW51SXRlbXMgPSBtYXAodGhpcy5tZW51SXRlbXMsIChpdGVtOiBDb250ZXh0TWVudUl0ZW0pID0+IHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgLi4uaXRlbSwgaXRlbXM6IGZpbHRlcihpdGVtLml0ZW1zLCAoYWN0aW9uSXRlbTogQ29udGV4dE1lbnVBY3Rpb25JdGVtKSA9PigoYWN0aW9uSXRlbS5yb3V0ZSAhPT0gJzgnKSkpLFxyXG4gICAgICAgIH07XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0VXBkYXRlZE1lbnVJdGVtcygpOiBDb250ZXh0TWVudUl0ZW1bXSB7XHJcbiAgICByZXR1cm4gbWFwKHRoaXMubWVudUl0ZW1zLCAoaXRlbTogQ29udGV4dE1lbnVJdGVtKSA9PiB7XHJcbiAgICAgIGlmIChpdGVtLmxhYmVsID09PSBhY3Rpb25zTGFiZWwpIHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgbGFiZWw6IGFjdGlvbnNMYWJlbCxcclxuICAgICAgICAgIGl0ZW1zOiBmaWx0ZXIoaXRlbS5pdGVtcywgKGFjdGlvbkl0ZW06IENvbnRleHRNZW51QWN0aW9uSXRlbSkgPT5cclxuICAgICAgICAgICAgISFmaW5kKHRoaXMuYWN0aW9ucywgKGFjdGlvbkxvb2t1cDogTG9va3VwKSA9PiB0b1N0cmluZyhhY3Rpb25Mb29rdXAubG9va3VwSWQpID09PSBhY3Rpb25JdGVtLnJvdXRlKSksXHJcbiAgICAgICAgfTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gaXRlbTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBkb0FjdGlvbihldmVudDogQ29udGV4dE1lbnVBY3Rpb25JdGVtKTogdm9pZCB7XHJcbiAgICBjb25zdCBjYXNlSWQ6IG51bWJlciA9IGdldCh0aGlzLnBhcmFtcywgJ2RhdGEuY21zQ2FzZUlkJyk7XHJcbiAgICBzd2l0Y2ggKGV2ZW50LnJvdXRlKSB7XHJcbiAgICAgIGNhc2UgdG9TdHJpbmcoZ29vZENhdXNlR3JhbnRlZEFjdGlvbklkKTpcclxuICAgICAgICB0aGlzLm9wZW5Hb29kQ2F1c2VHcmFudGVkRGlhbG9nKGdldCh0aGlzLnBhcmFtcywgJ2RhdGEnKSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIC8vIHN1cHBvc2UgZ29vZCBjYXVzZSBncmFudGVkIGxvb2t1cElkIGlzIDJcclxuICAgICAgY2FzZSB0b1N0cmluZyhnb29kQ2F1c2VOb3RHcmFudGVkQWN0aW9uSWQpOlxyXG4gICAgICAgIHRoaXMub3Blbkdvb2RDYXVzZU5vdEdyYW50ZWREaWFsb2coZ2V0KHRoaXMucGFyYW1zLCAnZGF0YScpKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSB0b1N0cmluZyhzY2hlZHVsZUNhbGxCYWNrQWN0aW9uSWQpOlxyXG4gICAgICAgIHRoaXMub3BlblNjaGVkdWxlQ2FsbEJhY2tEaWFsb2coZ2V0KHRoaXMucGFyYW1zLCAnZGF0YScpKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSB0b1N0cmluZyhyZVNjaGVkdWxlQ2FsbEJhY2tBY3Rpb25JZCk6XHJcbiAgICAgICAgdGhpcy5vcGVuUmVTY2hlZHVsZUNhbGxCYWNrRGlhbG9nKGdldCh0aGlzLnBhcmFtcywgJ2RhdGEnKSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgdG9TdHJpbmcocmVjb3JkT3V0cmVhY2hBY3Rpb25JZCk6XHJcbiAgICAgICAgdGhpcy5vcGVuT3V0cmVhY2hEaWFsb2coZ2V0KHRoaXMucGFyYW1zLCAnZGF0YScpKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSB0b1N0cmluZyhyZUFzc2lnbkFjdGlvbklkKTpcclxuICAgICAgICB0aGlzLm9wZW5SZUFzc2lnbkRpYWxvZyhnZXQodGhpcy5wYXJhbXMsICdkYXRhJykpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIHRvU3RyaW5nKHNob3dDYXNlc3VtbWFyeUlkKTpcclxuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWydjYXNlLXN1bW1hcnkvJyArIGNhc2VJZF0pO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIHRvU3RyaW5nKHNob3dPdXRyZWFjaEhpc3RvcnlJZCk6XHJcbiAgICAgIHRoaXMub3Blbk91dHJlYWNoSGlzdG9yeURpYWxvZyhnZXQodGhpcy5wYXJhbXMsICdkYXRhJykpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICBicmVhaztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9wZW5XYW50ZWRDbGllbnREYWlsb2coaXRlbTogQ29uY2lsaWF0aW9uV29ya0xpc3RJdGVtTW9kZWwpIHtcclxuICAgIGNvbnN0IGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPFdhbnRUb1NlbmRDbGllbnRCYWNrRGlhbG9nYm94Q29tcG9uZW50PiA9IHRoaXMuZGlhbG9nLm9wZW4oV2FudFRvU2VuZENsaWVudEJhY2tEaWFsb2dib3hDb21wb25lbnQsIHtcclxuICAgICAgd2lkdGg6IGRpYWxvZ1NpemUsXHJcbiAgICAgIGRpc2FibGVDbG9zZTogdHJ1ZSxcclxuICAgICAgZGF0YToge1xyXG4gICAgICAgIGNvbmNpbGlhdGlvbkxvb2t1cHM6IHRoaXMuY29uY2lsaWF0aW9uTG9va3VwcyxcclxuICAgICAgICB3bENvbmNpbGlhdGlvbklkOiBnZXQoaXRlbSwgJ3dsQ29uY2lsaWF0aW9uSWQnKVxyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcblxyXG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWFueVxyXG4gICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkucGlwZSh0YWtlVW50aWwodGhpcy5jb21wb25lbnREZXN0cm95ZWQpKS5zdWJzY3JpYmUoKHJlcykgPT4ge1xyXG4gICAgICBpZiAocmVzICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICBjb25zdCBpc1dhbnRUb1NlbmRDbGllbnRCYWNrID0gZ2V0KHJlcywgJ3dhbnR0b3NlbmRjbGllbnRiYWNrJyk7XHJcbiAgICAgICAgaWYgKGlzV2FudFRvU2VuZENsaWVudEJhY2spIHtcclxuICAgICAgICAgIGlmICghZ2V0KGl0ZW0sICdpc0FjdGl2ZUFzc2lnbm1lbnQnKSkge1xyXG4gICAgICAgICAgICBvcGVuQXBwb2ludG1lbnREaWFsb2dib3godGhpcy5kaWFsb2csIGl0ZW0/LmNtc0Nhc2VJZCwgZ2V0KHRoaXMuZW52aXJvbm1lbnQsICdjb25jaWxpYXRpb25Bc3Nlc3NtZW50QXBwb2ludG1lbnRUeXBlSWQnKSwgMCwgZmFsc2UpXHJcbiAgICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuY29tcG9uZW50RGVzdHJveWVkKSlcclxuICAgICAgICAgICAgICAuc3Vic2NyaWJlKChzY2hlZHVsZURldGFpbHM6IFNjaGVkdWxlQXBwb2ludG1lbnRQb3N0TW9kZWwpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuYXBwdFNjaGVkdWxlZERldGFpbHMgPSBzY2hlZHVsZURldGFpbHM7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBwYXlsb2FkOiBTYXZlQ29uY2lsaWF0aW9uU3RhdHVzUGF5bG9hZCA9IG5ldyBTYXZlQ29uY2lsaWF0aW9uU3RhdHVzUGF5bG9hZCh7XHJcbiAgICAgICAgICAgICAgICAgIGlzV2FudFRvU2VuZENsaWVudEJhY2ssXHJcbiAgICAgICAgICAgICAgICAgIGFjdGlvbklkOiBnb29kQ2F1c2VHcmFudGVkQWN0aW9uSWQsXHJcbiAgICAgICAgICAgICAgICAgIHdsQ29uY2lsaWF0aW9uSWQ6IGdldChpdGVtLCAnd2xDb25jaWxpYXRpb25JZCcpLFxyXG4gICAgICAgICAgICAgICAgICBhcHBvaW50bWVudElkOiBzY2hlZHVsZURldGFpbHMuYXBwb2ludG1lbnRJZCxcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgaWYgKHNjaGVkdWxlRGV0YWlscykge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmNvbmNpbGlhdGlvbldvcmtMaXN0U2VydmljZS5kaXNwYXRjaFNhdmVTdGF0dXMocGF5bG9hZCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMudGFiU2VydmljZS5kaXNwYXRjaEFkZFRhYih7XHJcbiAgICAgICAgICAgIHRhYk5hbWU6ICdlYS1lcC8nICsgaXRlbT8uZWFlcEFzc2Vzc21lbnRJZCxcclxuICAgICAgICAgICAgcm91dGU6ICcvZWEtZXAvJyArIGl0ZW0/LmNtc0Nhc2VJZCxcclxuICAgICAgICAgICAgbGFiZWw6ICdBc3Nlc3NtZW50cycgKyAnIC0gJyArIGl0ZW0/LmNsaWVudE5hbWUsXHJcbiAgICAgICAgICAgIGNhbkNsb3NlOiB0cnVlLFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9lYS1lcC8nICsgaXRlbT8uY21zQ2FzZUlkXSwgeyByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlLCBzdGF0ZTogeyBjbGllbnROYW1lOiBpdGVtPy5jbGllbnROYW1lIH0gfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG9wZW5SZUFzc2lnbkRpYWxvZyhpdGVtOiBDb25jaWxpYXRpb25Xb3JrTGlzdEl0ZW1Nb2RlbCkge1xyXG4gICAgY29uc3QgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8UmVBc3NpZ25EYWlsb2dib3hDb21wb25lbnQ+ID0gdGhpcy5kaWFsb2cub3BlbihSZUFzc2lnbkRhaWxvZ2JveENvbXBvbmVudCwge1xyXG4gICAgICB3aWR0aDogZGlhbG9nU2l6ZSxcclxuICAgICAgZGlzYWJsZUNsb3NlOiB0cnVlLFxyXG4gICAgICBkYXRhOiB7XHJcbiAgICAgICAgY29uY2lsaWF0aW9uTG9va3VwczogdGhpcy5jb25jaWxpYXRpb25Mb29rdXBzLFxyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tYW55XHJcbiAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5waXBlKHRha2VVbnRpbCh0aGlzLmNvbXBvbmVudERlc3Ryb3llZCkpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcclxuICAgICAgaWYgKCEhcmVzKSB7XHJcbiAgICAgICAgY29uc3QgcGF5bG9hZDogU3VibWl0UmVhc3NpZ25Nb2RlbCA9IG5ldyBTdWJtaXRSZWFzc2lnbk1vZGVsKHtcclxuICAgICAgICAgIC4uLnJlcyxcclxuICAgICAgICAgIHdsQ29uY2lsaWF0aW9uSWQ6IGl0ZW0/LndsQ29uY2lsaWF0aW9uSWQsXHJcbiAgICAgICAgICBhY3Rpb25JZDogcmVBc3NpZ25BY3Rpb25JZCxcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLmNvbmNpbGlhdGlvbldvcmtMaXN0U2VydmljZS5kaXNwYXRjaFNhdmVSZWFzc2lnbihwYXlsb2FkKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBvcGVuU2NoZWR1bGVDYWxsQmFja0RpYWxvZyhpdGVtOiBDb25jaWxpYXRpb25Xb3JrTGlzdEl0ZW1Nb2RlbCkge1xyXG4gICAgY29uc3QgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8U2NoZWR1bGVDYWxsQmFja0FjdGlvbkNvbXBvbmVudD4gPSB0aGlzLmRpYWxvZy5vcGVuKFNjaGVkdWxlQ2FsbEJhY2tBY3Rpb25Db21wb25lbnQsIHtcclxuICAgICAgd2lkdGg6IGRpYWxvZ1NpemUsXHJcbiAgICAgIGRpc2FibGVDbG9zZTogdHJ1ZSxcclxuICAgICAgZGF0YTogeyAuLi5pdGVtLCBcclxuICAgICAgICBpc1JlU2NoZWR1bGU6IGZhbHNlICwgXHJcbiAgICAgICAgdmFsOnRoaXMuaG9saWRheUxpc3RcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWFueVxyXG4gICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkucGlwZSh0YWtlVW50aWwodGhpcy5jb21wb25lbnREZXN0cm95ZWQpKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcbiAgICAgIGlmICghIXJlcykge1xyXG4gICAgICAgIGNvbnN0IHBheWxvYWQ6IFNhdmVTY2hlZHVsaW5nQ2FsbEJhY2tNb2RlbCA9IG5ldyBTYXZlU2NoZWR1bGluZ0NhbGxCYWNrTW9kZWwoe1xyXG4gICAgICAgICAgLi4ucmVzLFxyXG4gICAgICAgICAgd2xDb25jaWxpYXRpb25JZDogaXRlbT8ud2xDb25jaWxpYXRpb25JZCxcclxuICAgICAgICAgIGFjdGlvbklkOiBzY2hlZHVsZUNhbGxCYWNrQWN0aW9uSWQsXHJcblxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuY29uY2lsaWF0aW9uV29ya0xpc3RTZXJ2aWNlLmRpc3BhdGNoU2F2ZVNjaGVkdWxpbmdDYWxsQmFja0RldGFpbERldGFpbHMocGF5bG9hZCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb3BlblJlU2NoZWR1bGVDYWxsQmFja0RpYWxvZyhpdGVtOiBDb25jaWxpYXRpb25Xb3JrTGlzdEl0ZW1Nb2RlbCkge1xyXG4gICAgY29uc3QgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8U2NoZWR1bGVDYWxsQmFja0FjdGlvbkNvbXBvbmVudD4gPSB0aGlzLmRpYWxvZz8ub3BlbihTY2hlZHVsZUNhbGxCYWNrQWN0aW9uQ29tcG9uZW50LCB7XHJcbiAgICAgIHdpZHRoOiBkaWFsb2dTaXplLFxyXG4gICAgICBkaXNhYmxlQ2xvc2U6IHRydWUsXHJcbiAgICAgIGRhdGE6IHsgLi4uaXRlbSwgaXNSZVNjaGVkdWxlOiB0cnVlIH0sXHJcbiAgICB9KTtcclxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1hbnlcclxuICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnBpcGUodGFrZVVudGlsKHRoaXMuY29tcG9uZW50RGVzdHJveWVkKSkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICBpZiAoISFyZXMpIHtcclxuICAgICAgICBjb25zdCBwYXlsb2FkOiBTYXZlU2NoZWR1bGluZ0NhbGxCYWNrTW9kZWwgPSBuZXcgU2F2ZVNjaGVkdWxpbmdDYWxsQmFja01vZGVsKHtcclxuICAgICAgICAgIC4uLnJlcyxcclxuICAgICAgICAgIHdsQ29uY2lsaWF0aW9uSWQ6IGl0ZW0/LndsQ29uY2lsaWF0aW9uSWQsXHJcbiAgICAgICAgICBhY3Rpb25JZDogcmVTY2hlZHVsZUNhbGxCYWNrQWN0aW9uSWQsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5jb25jaWxpYXRpb25Xb3JrTGlzdFNlcnZpY2UuZGlzcGF0Y2hTYXZlU2NoZWR1bGluZ0NhbGxCYWNrRGV0YWlsRGV0YWlscyhwYXlsb2FkKVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG9wZW5PdXRyZWFjaERpYWxvZyhpdGVtOiBDb25jaWxpYXRpb25Xb3JrTGlzdEl0ZW1Nb2RlbCkge1xyXG4gICAgY29uc3QgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8UmVjb3JkT3V0cmVhY2hkaWFsb2dib3hDb21wb25lbnQ+ID0gdGhpcy5kaWFsb2c/Lm9wZW4oUmVjb3JkT3V0cmVhY2hkaWFsb2dib3hDb21wb25lbnQsIHtcclxuICAgICAgd2lkdGg6IHJlY29yZE91dHJlYWNoZGlhbG9nU2l6ZSxcclxuICAgICAgZGlzYWJsZUNsb3NlOiB0cnVlLFxyXG4gICAgICBkYXRhOiB7XHJcbiAgICAgICAgY29uY2lsaWF0aW9uTG9va3VwczogdGhpcy5jb25jaWxpYXRpb25Mb29rdXBzLFxyXG4gICAgICAgIGRhdGE6IGl0ZW1cclxuICAgICAgfSxcclxuICAgIH0pO1xyXG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWFueVxyXG4gICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkucGlwZSh0YWtlVW50aWwodGhpcy5jb21wb25lbnREZXN0cm95ZWQpKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcbiAgICAgIGlmICghIXJlcykge1xyXG4gICAgICAgIGNvbnN0IHBheWxvYWQ6IFNhdmVPdXRyZWFjaE1vZGVsID0gbmV3IFNhdmVPdXRyZWFjaE1vZGVsKHtcclxuICAgICAgICAgIC4uLnJlcyxcclxuICAgICAgICAgIHdsQ29uY2lsaWF0aW9uSWQ6IGl0ZW0/LndsQ29uY2lsaWF0aW9uSWQsXHJcbiAgICAgICAgICBhY3Rpb25JZDogcmVjb3JkT3V0cmVhY2hBY3Rpb25JZCxcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLmNvbmNpbGlhdGlvbldvcmtMaXN0U2VydmljZS5kaXNwYXRjaFNhdmVPdXRyZWFjaFdvcmtsaXN0RGV0YWlscyhwYXlsb2FkKVxyXG5cclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIG9wZW5PdXRyZWFjaEhpc3RvcnlEaWFsb2coaXRlbTogQ29uY2lsaWF0aW9uV29ya0xpc3RJdGVtTW9kZWwpe1xyXG4gICAgY29uc3QgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8T3V0cmVhY2hIaXN0b3J5R3JpZERpYWxvZ2JveENvbXBvbmVudD4gPSB0aGlzLmRpYWxvZz8ub3BlbihPdXRyZWFjaEhpc3RvcnlHcmlkRGlhbG9nYm94Q29tcG9uZW50LCB7XHJcbiAgICAgIHdpZHRoOiBmb3JtRGlhbG9nU2l6ZSxcclxuICAgICAgZGlzYWJsZUNsb3NlOiB0cnVlLFxyXG4gICAgICBkYXRhOiB7XHJcbiAgICAgICAgZGF0YTogaXRlbS53bENvbmNpbGlhdGlvbklkXHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG9wZW5Hb29kQ2F1c2VHcmFudGVkRGlhbG9nKGl0ZW06IENvbmNpbGlhdGlvbldvcmtMaXN0SXRlbU1vZGVsKTogdm9pZCB7XHJcbiAgICBpZiAoaXRlbT8ub3JpZ2luYWxDYXRlZ29yeUlkID09PSBjc0FwcG9pbnRtZW50cyB8fCBpdGVtPy5vcmlnaW5hbENhdGVnb3J5SWQgPT09IGNzQXNzaWdubWVudHMgfHxcclxuICAgICAgaXRlbT8ub3JpZ2luYWxDYXRlZ29yeUlkID09PSB0YWdBcHBvaW50bWVudHMgfHwgaXRlbT8ub3JpZ2luYWxDYXRlZ29yeUlkID09PSB0YWdBc3NpZ25tZW50cykge1xyXG4gICAgICBjb25zdCBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxHb29kQ2F1c2VHcmFudGVkQWN0aW9uQ29tcG9uZW50PiA9IHRoaXMuZGlhbG9nPy5vcGVuKEdvb2RDYXVzZUdyYW50ZWRBY3Rpb25Db21wb25lbnQsIHtcclxuICAgICAgICB3aWR0aDogZGlhbG9nU2l6ZSxcclxuICAgICAgICBkaXNhYmxlQ2xvc2U6IHRydWUsXHJcbiAgICAgICAgZGF0YToge1xyXG4gICAgICAgICAgY29uY2lsaWF0aW9uTG9va3VwczogdGhpcy5jb25jaWxpYXRpb25Mb29rdXBzLFxyXG4gICAgICAgICAgZGF0YTogaXRlbVxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG4gICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tYW55XHJcbiAgICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnBpcGUodGFrZVVudGlsKHRoaXMuY29tcG9uZW50RGVzdHJveWVkKSkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXMpIHtcclxuICAgICAgICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oR2VuZXJhdGVGSUExMTg3QUxldHRlckRpYWxvZ2JveENvbXBvbmVudCwge1xyXG4gICAgICAgICAgICB3aWR0aDogJzU1dncnLFxyXG4gICAgICAgICAgICBkaXNhYmxlQ2xvc2U6IHRydWUsXHJcbiAgICAgICAgICAgIGRhdGE6IHt9LFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKVxyXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5jb21wb25lbnREZXN0cm95ZWQpKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChsZXR0ZXJUeXBlSWQ6IG51bWJlcikgPT4ge1xyXG4gICAgICAgICAgICAgIC8vIGlmIChsZXR0ZXJUeXBlSWQgPT09IDEpIHtcclxuICAgICAgICAgICAgICAvLyAgIHRoaXMuY29uY2lsaWF0aW9uV29ya0xpc3RTZXJ2aWNlLmRpc3BhdGNoUHJpbnREb2N1bWVudCh7IGxldHRlclR5cGU6IGxldHRlclR5cGVJZCwgYXNzZXNzbWVudElkOiBnZXQoaXRlbSwgJ2VhZXBBc3Nlc3NtZW50SWQnKSwgQ21zQ2FzZUlEOiBnZXQoaXRlbSwgJ2Ntc0Nhc2VJZCcpIH0pO1xyXG4gICAgICAgICAgICAgIC8vIH0gZWxzZSBpZiAobGV0dGVyVHlwZUlkID09PSAyKSB7XHJcbiAgICAgICAgICAgICAgLy8gICB0aGlzLmNvbmNpbGlhdGlvbldvcmtMaXN0U2VydmljZS5kaXNwYXRjaFByaW50RG9jdW1lbnQoeyBsZXR0ZXJUeXBlOiBsZXR0ZXJUeXBlSWQsIGFzc2Vzc21lbnRJZDogZ2V0KGl0ZW0sICdlYWVwQXNzZXNzbWVudElkJyksIENtc0Nhc2VJRDogZ2V0KGl0ZW0sICdjbXNDYXNlSWQnKSB9KTtcclxuICAgICAgICAgICAgICAvLyB9XHJcbiAgICAgICAgICAgICAgY29uc3QgcGF5bG9hZDogU2F2ZUNvbmNpbGlhdGlvblN0YXR1c1BheWxvYWQgPSBuZXcgU2F2ZUNvbmNpbGlhdGlvblN0YXR1c1BheWxvYWQoe1xyXG4gICAgICAgICAgICAgICAgLi4ucmVzLFxyXG4gICAgICAgICAgICAgICAgaXNXYW50VG9TZW5kQ2xpZW50QmFjazogbnVsbCxcclxuICAgICAgICAgICAgICAgIGFjdGlvbklkOiBnb29kQ2F1c2VHcmFudGVkQWN0aW9uSWQsXHJcbiAgICAgICAgICAgICAgICB3bENvbmNpbGlhdGlvbklkOiBnZXQoaXRlbSwgJ3dsQ29uY2lsaWF0aW9uSWQnKSxcclxuICAgICAgICAgICAgICAgIGFwcG9pbnRtZW50SWQ6IG51bGwsXHJcbiAgICAgICAgICAgICAgICBjYXNlSWQ6IGl0ZW0/LmNtc0Nhc2VJZCxcclxuICAgICAgICAgICAgICAgIG9yaWdpbmFsQ2F0ZWdvcnlJZDogaXRlbT8ub3JpZ2luYWxDYXRlZ29yeUlkLFxyXG4gICAgICAgICAgICAgICAgYXNzZXNzbWVudElkOiBnZXQoaXRlbSwgJ2VhZXBBc3Nlc3NtZW50SWQnKSxcclxuICAgICAgICAgICAgICAgIGxldHRlclR5cGU6IGxldHRlclR5cGVJZCxcclxuICAgICAgICAgICAgICAgIGluZnJhY3Rpb25EYXRlOiBnZXQoaXRlbSwgJ2luZnJhY3Rpb25EYXRlJyksXHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgdGhpcy5jb25jaWxpYXRpb25Xb3JrTGlzdFNlcnZpY2UuZGlzcGF0Y2hTYXZlU3RhdHVzKHBheWxvYWQpO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIC8vIHRoaXMuY29uY2lsaWF0aW9uV29ya0xpc3RTZXJ2aWNlLnNhdmVTdGF0dXMocGF5bG9hZCkucGlwZSh0YWtlVW50aWwodGhpcy5jb21wb25lbnREZXN0cm95ZWQpKVxyXG4gICAgICAvLyAuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAvLyAgIGNvbnNvbGUubG9nKHJlcylcclxuICAgICAgLy8gICBpZihyZXMpe1xyXG4gICAgICAvLyB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9lYS1lcC8nICsgaXRlbT8uY21zQ2FzZUlkXSAsIHtxdWVyeVBhcmFtczp7aXNjb25jaWxpYXRpb25XTDp0cnVlfX0pXHJcbiAgICAgIC8vICAgfVxyXG4gICAgICAvLyB9KTsgXHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgY29uc3QgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8R29vZENhdXNlR3JhbnRlZEFjdGlvbkNvbXBvbmVudD4gPSB0aGlzLmRpYWxvZz8ub3BlbihHb29kQ2F1c2VHcmFudGVkQWN0aW9uQ29tcG9uZW50LCB7XHJcbiAgICAgICAgd2lkdGg6IGRpYWxvZ1NpemUsXHJcbiAgICAgICAgZGlzYWJsZUNsb3NlOiB0cnVlLFxyXG4gICAgICAgIGRhdGE6IHtcclxuICAgICAgICAgIGNvbmNpbGlhdGlvbkxvb2t1cHM6IHRoaXMuY29uY2lsaWF0aW9uTG9va3VwcyxcclxuICAgICAgICAgIGRhdGE6IGl0ZW1cclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWFueVxyXG4gICAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5waXBlKHRha2VVbnRpbCh0aGlzLmNvbXBvbmVudERlc3Ryb3llZCkpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAocmVzKSB7XHJcbiAgICAgICAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKEdlbmVyYXRlRklBMTE4N0FMZXR0ZXJEaWFsb2dib3hDb21wb25lbnQsIHtcclxuICAgICAgICAgICAgd2lkdGg6ICc1NXZ3JyxcclxuICAgICAgICAgICAgZGlzYWJsZUNsb3NlOiB0cnVlLFxyXG4gICAgICAgICAgICBkYXRhOiB7fSxcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKClcclxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuY29tcG9uZW50RGVzdHJveWVkKSlcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgobGV0dGVyVHlwZUlkOiBudW1iZXIpID0+IHtcclxuICAgICAgICAgICAgICAvLyBpZiAobGV0dGVyVHlwZUlkID09PSAxKSB7XHJcbiAgICAgICAgICAgICAgLy8gICB0aGlzLmNvbmNpbGlhdGlvbldvcmtMaXN0U2VydmljZS5kaXNwYXRjaFByaW50RG9jdW1lbnQoeyBsZXR0ZXJUeXBlOiBsZXR0ZXJUeXBlSWQsIGFzc2Vzc21lbnRJZDogZ2V0KGl0ZW0sICdlYWVwQXNzZXNzbWVudElkJyksIENtc0Nhc2VJRDogZ2V0KGl0ZW0sICdjbXNDYXNlSWQnKSB9KTtcclxuICAgICAgICAgICAgICAvLyB9IGVsc2UgaWYgKGxldHRlclR5cGVJZCA9PT0gMikge1xyXG4gICAgICAgICAgICAgIC8vICAgdGhpcy5jb25jaWxpYXRpb25Xb3JrTGlzdFNlcnZpY2UuZGlzcGF0Y2hQcmludERvY3VtZW50KHsgbGV0dGVyVHlwZTogbGV0dGVyVHlwZUlkLCBhc3Nlc3NtZW50SWQ6IGdldChpdGVtLCAnZWFlcEFzc2Vzc21lbnRJZCcpLCBDbXNDYXNlSUQ6IGdldChpdGVtLCAnY21zQ2FzZUlkJykgfSk7XHJcbiAgICAgICAgICAgICAgLy8gfVxyXG4gICAgICAgICAgICAgIC8vIGlmIChpdGVtID8ub3V0cmVhY2hJZCAhPSBudWxsIHx8IGl0ZW0gPy5vcmlnaW5hbENhdGVnb3J5SWQgPT09IHRhZ0Fzc2lnbm1lbnRzKSB7XHJcbiAgICAgICAgICAgICAgLy8gICBjb25zdCBwYXlsb2FkOiBTYXZlQ29uY2lsaWF0aW9uU3RhdHVzUGF5bG9hZCA9IG5ldyBTYXZlQ29uY2lsaWF0aW9uU3RhdHVzUGF5bG9hZCh7XHJcbiAgICAgICAgICAgICAgLy8gICAgIC4uLnJlcyxcclxuICAgICAgICAgICAgICAvLyAgICAgYWN0aW9uSWQ6IGdvb2RDYXVzZUdyYW50ZWRBY3Rpb25JZCxcclxuICAgICAgICAgICAgICAvLyAgICAgd2xDb25jaWxpYXRpb25JZDogaXRlbSA/LndsQ29uY2lsaWF0aW9uSWQsXHJcbiAgICAgICAgICAgICAgLy8gICAgIGNhc2VJZDogaXRlbSA/LmNtc0Nhc2VJZCxcclxuICAgICAgICAgICAgICAvLyAgICAgb3JpZ2luYWxDYXRlZ29yeUlkOiBpdGVtID8ub3JpZ2luYWxDYXRlZ29yeUlkLFxyXG4gICAgICAgICAgICAgIC8vICAgICBhc3Nlc3NtZW50SWQ6IGdldChpdGVtLCAnZWFlcEFzc2Vzc21lbnRJZCcpLFxyXG4gICAgICAgICAgICAgIC8vICAgICBsZXR0ZXJUeXBlOiBsZXR0ZXJUeXBlSWQsXHJcbiAgICAgICAgICAgICAgLy8gICB9KTtcclxuICAgICAgICAgICAgICAvLyAgIHRoaXMuY29uY2lsaWF0aW9uV29ya0xpc3RTZXJ2aWNlLmRpc3BhdGNoU2F2ZVN0YXR1cyhwYXlsb2FkKTtcclxuICAgICAgICAgICAgICAvLyB9XHJcbiAgICAgICAgICAgICAgaWYgKGl0ZW0/Lm9yaWdpbmFsQ2F0ZWdvcnlJZCA9PT0gamNBcHBvaW50bWVudHMgfHwgaXRlbT8ub3JpZ2luYWxDYXRlZ29yeUlkID09PSBzcGxSZWZBcHBvaW50bWVudHMpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHBheWxvYWQ6IFNhdmVDb25jaWxpYXRpb25TdGF0dXNQYXlsb2FkID0gbmV3IFNhdmVDb25jaWxpYXRpb25TdGF0dXNQYXlsb2FkKHtcclxuICAgICAgICAgICAgICAgICAgLi4ucmVzLFxyXG4gICAgICAgICAgICAgICAgICBhY3Rpb25JZDogZ29vZENhdXNlR3JhbnRlZEFjdGlvbklkLFxyXG4gICAgICAgICAgICAgICAgICB3bENvbmNpbGlhdGlvbklkOiBpdGVtPy53bENvbmNpbGlhdGlvbklkLFxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmNpbGlhdGlvbldvcmtMaXN0U2VydmljZS5kaXNwYXRjaFNhdmVTdGF0dXMocGF5bG9hZCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnRhYlNlcnZpY2UuZGlzcGF0Y2hBZGRUYWIoe1xyXG4gICAgICAgICAgICAgICAgICB0YWJOYW1lOiAnZWEtZXAvJyArIGl0ZW0/LmVhZXBBc3Nlc3NtZW50SWQsXHJcbiAgICAgICAgICAgICAgICAgIHJvdXRlOiAnL2VhLWVwLycgKyBpdGVtPy5jbXNDYXNlSWQsXHJcbiAgICAgICAgICAgICAgICAgIGxhYmVsOiAnQXNzZXNzbWVudHMnICsgJyAtICcgKyBpdGVtPy5jbGllbnROYW1lLFxyXG4gICAgICAgICAgICAgICAgICBjYW5DbG9zZTogdHJ1ZSxcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvZWEtZXAvJyArIGl0ZW0/LmNtc0Nhc2VJZF0sIHsgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZSwgc3RhdGU6IHsgY2xpZW50TmFtZTogaXRlbT8uY2xpZW50TmFtZSB9IH0pO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAvLyBlbHNlIGlmICgoKChpdGVtID8ub3JpZ2luYWxDYXRlZ29yeUlkID09PSB3ZWNhcmVBcHBvaW50bWVudHMgfHxcclxuICAgICAgICAgICAgICAvLyAgIGl0ZW0gPy5vcmlnaW5hbENhdGVnb3J5SWQgPT09IGl2YXBBc3NpZ25tZW50cyB8fFxyXG4gICAgICAgICAgICAgIC8vICAgICBpdGVtID8ub3JpZ2luYWxDYXRlZ29yeUlkID09PSB2cnNBcHBvaW50bWVudHMpIFxyXG4gICAgICAgICAgICAgIC8vICAgICAmJiBpdGVtID8ubnljd2F5QXBwdENvZGUgIT09IG51bGwpIHx8IGl0ZW0gPy5ueWN3YXlBcHB0Q29kZSA9PT0gJ0NIJykpIHtcclxuICAgICAgICAgICAgICBlbHNlIGlmIChpdGVtPy5vcmlnaW5hbENhdGVnb3J5SWQgPT09IHdlY2FyZUFwcG9pbnRtZW50cyB8fFxyXG4gICAgICAgICAgICAgICAgaXRlbT8ub3JpZ2luYWxDYXRlZ29yeUlkID09PSBpdmFwQXNzaWdubWVudHMgfHxcclxuICAgICAgICAgICAgICAgIGl0ZW0/Lm9yaWdpbmFsQ2F0ZWdvcnlJZCA9PT0gdnJzQXBwb2ludG1lbnRzKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBwYXlsb2FkOiBTYXZlQ29uY2lsaWF0aW9uU3RhdHVzUGF5bG9hZCA9IG5ldyBTYXZlQ29uY2lsaWF0aW9uU3RhdHVzUGF5bG9hZCh7XHJcbiAgICAgICAgICAgICAgICAgIC4uLnJlcyxcclxuICAgICAgICAgICAgICAgICAgYWN0aW9uSWQ6IGdvb2RDYXVzZUdyYW50ZWRBY3Rpb25JZCxcclxuICAgICAgICAgICAgICAgICAgd2xDb25jaWxpYXRpb25JZDogaXRlbT8ud2xDb25jaWxpYXRpb25JZCxcclxuICAgICAgICAgICAgICAgICAgY2FzZUlkOiBpdGVtPy5jbXNDYXNlSWQsXHJcbiAgICAgICAgICAgICAgICAgIG9yaWdpbmFsQ2F0ZWdvcnlJZDogaXRlbT8ub3JpZ2luYWxDYXRlZ29yeUlkLFxyXG4gICAgICAgICAgICAgICAgICBhc3Nlc3NtZW50SWQ6IGdldChpdGVtLCAnZWFlcEFzc2Vzc21lbnRJZCcpLFxyXG4gICAgICAgICAgICAgICAgICBsZXR0ZXJUeXBlOiBsZXR0ZXJUeXBlSWQsIGluZnJhY3Rpb25EYXRlOiBnZXQoaXRlbSwgJ2luZnJhY3Rpb25EYXRlJyksXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIHRoaXMuY29uY2lsaWF0aW9uV29ya0xpc3RTZXJ2aWNlLmRpc3BhdGNoU2F2ZVN0YXR1cyhwYXlsb2FkKTtcclxuICAgICAgICAgICAgICAgIC8vQmF0Y2ggcG9vbCBsb2dpYyBhZGRlZCB0byBTdWJtaXRHcmFudGVkQ29uY2lsaWF0aW9uIGFwaVxyXG4gICAgICAgICAgICAgICAgLy8gY29uc3QgcGF5bG9hZDogU3VibWl0QmF0Y2hQb29sQXBwb2ludG1lbnRNb2RlbCA9IG5ldyBTdWJtaXRCYXRjaFBvb2xBcHBvaW50bWVudE1vZGVsKHtcclxuICAgICAgICAgICAgICAgIC8vICAgY2FzZUlkOiBpdGVtID8uY21zQ2FzZUlkLFxyXG4gICAgICAgICAgICAgICAgLy8gICBzaXRlSWQ6IGl0ZW0gPy5zbVNpdGVJZCxcclxuICAgICAgICAgICAgICAgIC8vICAgYXBwb2ludG1lbnRJZDogaXRlbSA/LmFwcG9pbnRBc3NpZ25OYW1lLFxyXG4gICAgICAgICAgICAgICAgLy8gICBlYWVwQXNzZXNzbWVudElkOiBpdGVtID8uZWFlcEFzc2Vzc21lbnRJZCxcclxuICAgICAgICAgICAgICAgIC8vICAgd2xDb25jaWxpYXRpb25JZDogaXRlbSA/LndsQ29uY2lsaWF0aW9uSWQsXHJcbiAgICAgICAgICAgICAgICAvLyAgIGFwcG9pbnRtZW50TllDV0FZY29kZTogaXRlbSA/Lm55Y3dheUFwcHRDb2RlLFxyXG4gICAgICAgICAgICAgICAgLy8gICBsZXR0ZXJUeXBlOiBsZXR0ZXJUeXBlSWQsXHJcbiAgICAgICAgICAgICAgICAvLyB9KTtcclxuICAgICAgICAgICAgICAgIC8vIHRoaXMuY29uY2lsaWF0aW9uV29ya0xpc3RTZXJ2aWNlLmRpc3BhdGNoU3VibWl0QmF0Y2hQb29sQXBwb2ludG1lbnQocGF5bG9hZCk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcGF5bG9hZDogU2F2ZUNvbmNpbGlhdGlvblN0YXR1c1BheWxvYWQgPSBuZXcgU2F2ZUNvbmNpbGlhdGlvblN0YXR1c1BheWxvYWQoe1xyXG4gICAgICAgICAgICAgICAgICAuLi5yZXMsXHJcbiAgICAgICAgICAgICAgICAgIGFjdGlvbklkOiBnb29kQ2F1c2VHcmFudGVkQWN0aW9uSWQsXHJcbiAgICAgICAgICAgICAgICAgIHdsQ29uY2lsaWF0aW9uSWQ6IGl0ZW0/LndsQ29uY2lsaWF0aW9uSWQsXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIC8vXHJcbiAgICAgICAgICAgICAgICBpZiAoZ2V0KGl0ZW0sICdpbmZyYWN0ZWRUeXBlLnZhbHVlLmxvb2t1cElkJykgPT09IEluZnJhY3Rpb25UeXBlRW51bS5GVFJBcHBvaW50bWVudFxyXG4gICAgICAgICAgICAgICAgICAmJiAoKGdldChpdGVtLCAnaW5mcmFjdGVkQXQudmFsdWUubG9va3VwSWQnKSA9PT0gSW5mcmFjdGlvbkF0RW51bS5DYXJlZXJTZXJ2aWNlcyAmJiB0aGlzLnVzZXJcclxuICAgICAgICAgICAgICAgICAgICAmJiAodGhpcy51c2VyLmlzSm9zV29ya2VyIHx8IHRoaXMudXNlci5pc0pvc1N1cGVydmlzb3IgfHwgdGhpcy51c2VyLmlzT3V0U3RhdGlvbldvcmtlciB8fCB0aGlzLnVzZXIuaXNPdXRTdGF0aW9uU3VwZXJ2aXNvcikpIC8vIGJyIDgsIDlcclxuICAgICAgICAgICAgICAgICAgICB8fCAoZ2V0KGl0ZW0sICdpbmZyYWN0ZWRBdC52YWx1ZS5sb29rdXBJZCcpID09PSBJbmZyYWN0aW9uQXRFbnVtLkNhcmVlckFkdmFuY2UgJiYgdGhpcy51c2VyXHJcbiAgICAgICAgICAgICAgICAgICAgICAmJiAodGhpcy51c2VyLmlzSm9zV29ya2VyIHx8IHRoaXMudXNlci5pc0pvc1N1cGVydmlzb3IgfHwgdGhpcy51c2VyLmlzT3V0U3RhdGlvbldvcmtlciB8fCB0aGlzLnVzZXIuaXNPdXRTdGF0aW9uU3VwZXJ2aXNvcikpKSkge1xyXG4gICAgICAgICAgICAgICAgICAvLyBiciAxMCwgMTFcclxuICAgICAgICAgICAgICAgICAgdGhpcy5vcGVuWWVzTm9Db25maXJtYXRpb25EaWFsb2cocGF5bG9hZCwgaXRlbSk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAvLyBzZW5kIHRvIEJFXHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuY29uY2lsaWF0aW9uV29ya0xpc3RTZXJ2aWNlLmRpc3BhdGNoU2F2ZVN0YXR1cyhwYXlsb2FkKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgLy9oZXJlXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvcGVuR29vZENhdXNlTm90R3JhbnRlZERpYWxvZyhpdGVtOiBDb25jaWxpYXRpb25Xb3JrTGlzdEl0ZW1Nb2RlbCk6IHZvaWQge1xyXG5cclxuICAgIGlmIChpdGVtPy5vcmlnaW5hbENhdGVnb3J5SWQgPT09IGNzQXBwb2ludG1lbnRzIHx8IGl0ZW0/Lm9yaWdpbmFsQ2F0ZWdvcnlJZCA9PT0gY3NBc3NpZ25tZW50cykge1xyXG4gICAgICB0aGlzLmlzQ29uY2lsaWF0aW9uV2xDaGVjayA9IHRydWVcclxuICAgIH1cclxuXHJcbiAgICAvL3dlIGRvbid0IG5lZWQgdG8gc2VuZCBvcmlnaW5hbCBhcHB0IElkLiBPcmlnaW5hbCBhcHB0IHR5cGUgSWQgaXMgZGlmZmVyZW50LlxyXG4gICAgY29uc3QgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8R29vZENhdXNlTm90R3JhbnRlZEFjdGlvbkNvbXBvbmVudD4gPSB0aGlzLmRpYWxvZz8ub3BlbihHb29kQ2F1c2VOb3RHcmFudGVkQWN0aW9uQ29tcG9uZW50LCB7XHJcbiAgICAgIHdpZHRoOiBkaWFsb2dTaXplLFxyXG4gICAgICBkaXNhYmxlQ2xvc2U6IHRydWUsXHJcbiAgICAgIGRhdGE6IHtcclxuICAgICAgICBjb25jaWxpYXRpb25Mb29rdXBzOiB0aGlzLmNvbmNpbGlhdGlvbkxvb2t1cHMsXHJcbiAgICAgICAgZGF0YTogeyAuLi5pdGVtLCBhcHBvaW50bWVudElkOiAwLCBpc2NvbmNpbGlhdGlvbldMOiB0aGlzLmlzQ29uY2lsaWF0aW9uV2xDaGVjayB9XHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuXHJcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tYW55XHJcbiAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5waXBlKHRha2VVbnRpbCh0aGlzLmNvbXBvbmVudERlc3Ryb3llZCkpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcclxuICAgICAgaWYgKCEhcmVzKSB7XHJcbiAgICAgICAgdGhpcy5jb25jaWxpYXRpb25Xb3JrTGlzdFNlcnZpY2UuZGlzcGF0Y2hTYXZlU3RhdHVzKG5ldyBTYXZlQ29uY2lsaWF0aW9uU3RhdHVzUGF5bG9hZCh7XHJcbiAgICAgICAgICAuLi5yZXMsXHJcbiAgICAgICAgICB3bENvbmNpbGlhdGlvbklkOiBpdGVtPy53bENvbmNpbGlhdGlvbklkLFxyXG4gICAgICAgICAgYWN0aW9uSWQ6IGdvb2RDYXVzZU5vdEdyYW50ZWRBY3Rpb25JZCxcclxuICAgICAgICB9KSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb3Blblllc05vQ29uZmlybWF0aW9uRGlhbG9nKHBheWxvYWQ6IFNhdmVDb25jaWxpYXRpb25TdGF0dXNQYXlsb2FkLCBpdGVtOiBDb25jaWxpYXRpb25Xb3JrTGlzdEl0ZW1Nb2RlbCk6IHZvaWQge1xyXG4gICAgY29uc3QgY29uZmlybURpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPFllc05vQ29uZmlybWF0aW9uRGlhbG9nQ29tcG9uZW50PiA9IHRoaXMuZGlhbG9nLm9wZW4oWWVzTm9Db25maXJtYXRpb25EaWFsb2dDb21wb25lbnQsIHtcclxuICAgICAgd2lkdGg6IGRpYWxvZ1NpemUsXHJcbiAgICAgIGRpc2FibGVDbG9zZTogdHJ1ZSxcclxuICAgICAgZGF0YToge1xyXG4gICAgICAgIHllc0xhYmVsOiB5ZXNMYWJlbCxcclxuICAgICAgICBub0xhYmVsOiBub0xhYmVsLFxyXG4gICAgICAgIGhlYWRlcjogY29uZmlybUhlYWRlcixcclxuICAgICAgICBtZXNzYWdlOiBnb29kQ2F1c2VDb25maXJtTWVzc2FnZSxcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG5cclxuICAgIGNvbmZpcm1EaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5waXBlKHRha2VVbnRpbCh0aGlzLmNvbXBvbmVudERlc3Ryb3llZCkpLnN1YnNjcmliZSgocmVzOiBib29sZWFuKSA9PiB7XHJcbiAgICAgIGlmICghIXJlcykge1xyXG4gICAgICAgIHRoaXMuY29uY2lsaWF0aW9uV29ya0xpc3RTZXJ2aWNlLmRpc3BhdGNoU2F2ZVN0YXR1cyhuZXcgU2F2ZUNvbmNpbGlhdGlvblN0YXR1c1BheWxvYWQoe1xyXG4gICAgICAgICAgLi4ucGF5bG9hZCxcclxuICAgICAgICAgIGNvbmZpcm1ZZXNObzogdHJ1ZSxcclxuICAgICAgICB9KSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5jb25jaWxpYXRpb25Xb3JrTGlzdFNlcnZpY2UuZGlzcGF0Y2hTYXZlU3RhdHVzKG5ldyBTYXZlQ29uY2lsaWF0aW9uU3RhdHVzUGF5bG9hZCh7XHJcbiAgICAgICAgICAuLi5wYXlsb2FkLFxyXG4gICAgICAgICAgY29uZmlybVllc05vOiBmYWxzZSxcclxuICAgICAgICB9KSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgYWZ0ZXJPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICAvL1xyXG4gIH1cclxufSIsIjxwcnV0ZWNoLWNvbnRleHQtbWVudSBbbWVudUl0ZW1zXT1cIm1lbnVJdGVtc1wiIChtZW51QWN0aW9uKT1cImRvQWN0aW9uKCRldmVudClcIj48L3BydXRlY2gtY29udGV4dC1tZW51PlxyXG4iXX0=
@@ -1,14 +1,12 @@
1
1
  import { Component, Inject, ViewChild } from '@angular/core';
2
2
  import { AbstractComponent } from '@prutech/components';
3
3
  import { MAT_DIALOG_DATA } from '@angular/material/dialog';
4
- import { takeUntil } from 'rxjs/operators';
5
- import { find, get, set } from 'lodash';
4
+ import { find, get, set, range, map, some } from 'lodash';
6
5
  import { scheduleOrRescheduleActionFormModel } from '../../models/schedule-call-back-action.formmodel';
7
- import { openAppointmentDialogbox } from '../../models/open-appointment';
8
6
  import moment from 'moment';
9
7
  import { momentDateFormat, timeFormat } from '../../../shared/constants/date-format';
10
8
  import { apptCancelledReason } from '../../../shared/models/schedule-assignment-constants';
11
- import { timeHourslots, timeMinSlots } from '../../constants/slot-time';
9
+ import { timeMinSlots } from '../../constants/slot-time';
12
10
  import * as i0 from "@angular/core";
13
11
  import * as i1 from "@angular/material/dialog";
14
12
  import * as i2 from "@prutech/components";
@@ -36,9 +34,23 @@ export class ScheduleCallBackActionComponent extends AbstractComponent {
36
34
  this.apptMinuteCtrlName = 'minute1';
37
35
  this.showInPerson = true;
38
36
  this.showApptScheduler = true;
37
+ this.myFilter = (date) => {
38
+ if (!date)
39
+ return false;
40
+ const day = date.day();
41
+ let isFederalHoliday = some(this.filteredDates, (f) => moment(f).isSame(moment(date)));
42
+ if (day === 0 || day === 6 || isFederalHoliday) {
43
+ return false;
44
+ }
45
+ return true;
46
+ };
39
47
  this.elements =
40
48
  this.dynamicFormService.mapFormData(this.scheduleData, scheduleOrRescheduleActionFormModel.editTemplate, undefined);
41
49
  this.showInPerson = get(data, 'showInPerson', true);
50
+ this.filteredDates = map(get(data, 'val'), (d) => get(d, 'holidayDate'));
51
+ }
52
+ ngOnInit() {
53
+ this.hours = range(1, 25);
42
54
  }
43
55
  get dynamicFormGroup() {
44
56
  return get(this.dynamicForm, 'dynamicFormGroup');
@@ -46,16 +58,14 @@ export class ScheduleCallBackActionComponent extends AbstractComponent {
46
58
  get isDisabled() {
47
59
  return this.dynamicFormGroup && this.dynamicFormGroup.invalid;
48
60
  }
49
- filterWeekends(val) {
50
- }
51
61
  initElements() {
52
62
  const apptDateElement = find(get(this.dynamicForm, 'elements'), (e) => e.name === this.apptDateCtrlName);
53
63
  set(apptDateElement, 'min', new Date());
54
64
  const today = new Date();
55
65
  set(apptDateElement, 'max', new Date(today.getFullYear(), today.getMonth(), today.getDate() + 30));
56
- // this.filteredDates = this.filterWeekends()
66
+ set(apptDateElement, 'filter', this.myFilter);
57
67
  const apptTimeElement = find(get(this.dynamicForm, 'elements'), (e) => e.name === this.apptTimeCtrlName);
58
- set(apptTimeElement, 'selections', timeHourslots);
68
+ set(apptTimeElement, 'selections', this.hours);
59
69
  const apptMinuteElement = find(get(this.dynamicForm, 'elements'), (e) => e.name === this.apptMinuteCtrlName);
60
70
  set(apptMinuteElement, 'selections', timeMinSlots);
61
71
  }
@@ -70,16 +80,13 @@ export class ScheduleCallBackActionComponent extends AbstractComponent {
70
80
  fg.get(this.apptTimeCtrlName).setValue(apptDateTime.format(timeFormat));
71
81
  }
72
82
  }
73
- openAppointmentScheduler() {
74
- openAppointmentDialogbox(this.dialog, get(this.data, 'cmsCaseId'), get(this.environment, 'conciliationScheduleCallBackAppointmentTypeId'), 0, false, get(this.data, 'eaepAssessmentId'))
75
- .pipe(takeUntil(this.componentDestroyed))
76
- .subscribe((scheduleDetails) => {
77
- if (scheduleDetails != null) {
78
- this.showApptScheduler = false;
79
- this.scheduleDetails = scheduleDetails;
80
- this.setApptDateTime(moment(get(scheduleDetails, 'appointmentDatetime')));
81
- }
82
- });
83
+ getApptDate(apptDate, apphour, apptime) {
84
+ const date = moment(apptDate).get('date');
85
+ const month = moment(apptDate).get('month');
86
+ const year = moment(apptDate).get('year');
87
+ const hrs = apphour;
88
+ const mins = apptime;
89
+ return moment().utcOffset(0).set('date', date).set('month', month).set('year', year).set('hours', hrs).set('minutes', mins).toISOString();
83
90
  }
84
91
  closeModal(action) {
85
92
  // tslint:disable-next-line:no-any
@@ -87,7 +94,7 @@ export class ScheduleCallBackActionComponent extends AbstractComponent {
87
94
  if (action) {
88
95
  this.dialogRef.close({
89
96
  ...formValue,
90
- apptDateTime: get(this.scheduleDetails, 'appointmentDatetime'),
97
+ apptDateTime: this.getApptDate(formValue.apptDate, formValue.hour1, formValue.minute1),
91
98
  });
92
99
  }
93
100
  else {
@@ -121,4 +128,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
121
128
  type: ViewChild,
122
129
  args: ['dynamicForm', { static: false }]
123
130
  }] } });
124
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZWR1bGUtY2FsbC1iYWNrLWFjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcnV0ZWNoL2NvbXBsaWFuY2Uvc3JjL2xpYi9jb25jaWxpYXRpb24tYXBwb2ludG1lbnQtd29yay1saXN0L2NvbXBvbmVudHMvc2NoZWR1bGUtY2FsbC1iYWNrLWFjdGlvbi9zY2hlZHVsZS1jYWxsLWJhY2stYWN0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3BydXRlY2gvY29tcGxpYW5jZS9zcmMvbGliL2NvbmNpbGlhdGlvbi1hcHBvaW50bWVudC13b3JrLWxpc3QvY29tcG9uZW50cy9zY2hlZHVsZS1jYWxsLWJhY2stYWN0aW9uL3NjaGVkdWxlLWNhbGwtYmFjay1hY3Rpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTdELE9BQU8sRUFDTCxpQkFBaUIsRUFFbEIsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsZUFBZSxFQUEyQixNQUFNLDBCQUEwQixDQUFDO0FBQ3BGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDeEMsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDdkcsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFHekUsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBQzVCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxVQUFVLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNyRixPQUFP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QUFFLGVBQWUsQ0FBQztTQUMxRCxDQUFDO1FBQ0YsSUFBSSxDQUFDLHlCQUF5QixDQUFDLHlCQUF5QixDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFFRCxjQUFjO1FBQ1osOENBQThDO0lBQ2hELENBQUM7OzZIQWxIVSwrQkFBK0IsNEdBb0JoQyxhQUFhLHNEQUdiLGVBQWU7aUhBdkJkLCtCQUErQix3TUN2QjVDLG0xQ0FzQnFCOzRGRENSLCtCQUErQjtrQkFMM0MsU0FBUzsrQkFDRSwrQkFBK0I7OzBCQXdCdEMsTUFBTTsyQkFBQyxhQUFhOzswQkFHcEIsTUFBTTsyQkFBQyxlQUFlOzRDQVIyQixXQUFXO3NCQUE5RCxTQUFTO3VCQUFDLGFBQWEsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHtcclxuICBBYnN0cmFjdENvbXBvbmVudCwgRW52aXJvbm1lbnQsIElQdER5bmFtaWNFbGVtZW50Q29uZmlnLFxyXG4gIFB0RHluYW1pY0Zvcm1zQ29tcG9uZW50LCBQdER5bmFtaWNGb3Jtc1NlcnZpY2VcclxufSBmcm9tICdAcHJ1dGVjaC9jb21wb25lbnRzJztcclxuaW1wb3J0IHsgTUFUX0RJQUxPR19EQVRBLCBNYXREaWFsb2dSZWYsIE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgZmluZCwgZ2V0LCBzZXQgfSBmcm9tICdsb2Rhc2gnO1xyXG5pbXBvcnQgeyBzY2hlZHVsZU9yUmVzY2hlZHVsZUFjdGlvbkZvcm1Nb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9zY2hlZHVsZS1jYWxsLWJhY2stYWN0aW9uLmZvcm1tb2RlbCc7XHJcbmltcG9ydCB7IG9wZW5BcHBvaW50bWVudERpYWxvZ2JveCB9IGZyb20gJy4uLy4uL21vZGVscy9vcGVuLWFwcG9pbnRtZW50JztcclxuaW1wb3J0IHsgQ29uY2lsaWF0aW9uV29ya0xpc3RJdGVtTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvY29uY2lsaWF0aW9uLXdvcmstbGlzdC1pdGVtLm1vZGVsJztcclxuaW1wb3J0IHsgQ2FuY2VsQXBwb2ludG1lbnRQYXlsb2FkLCBNYW5hZ2VBcHBvaW50bWVudHNTZXJ2aWNlLCBTY2hlZHVsZUFwcG9pbnRtZW50UG9zdE1vZGVsLCBTbG90VHlwZUVudW0gfSBmcm9tICdAcHJ1dGVjaC9hcHBvaW50bWVudCc7XHJcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcclxuaW1wb3J0IHsgbW9tZW50RGF0ZUZvcm1hdCwgdGltZUZvcm1hdCB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9jb25zdGFudHMvZGF0ZS1mb3JtYXQnO1xyXG5pbXBvcnQgeyBhcHB0Q2FuY2VsbGVkUmVhc29uIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL21vZGVscy9zY2hlZHVsZS1hc3NpZ25tZW50LWNvbnN0YW50cyc7XHJcbmltcG9ydCB7IHRpbWVIb3Vyc2xvdHMsIHRpbWVNaW5TbG90cyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9zbG90LXRpbWUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItc2NoZWR1bGUtY2FsbC1iYWNrLWFjdGlvbicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3NjaGVkdWxlLWNhbGwtYmFjay1hY3Rpb24uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3NjaGVkdWxlLWNhbGwtYmFjay1hY3Rpb24uY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTY2hlZHVsZUNhbGxCYWNrQWN0aW9uQ29tcG9uZW50IGV4dGVuZHMgQWJzdHJhY3RDb21wb25lbnQge1xyXG5cclxuICByZWFkb25seSByZWFzb25DdHJsTmFtZTogc3RyaW5nID0gJ3JlYXNvbnMnO1xyXG4gIHJlYWRvbmx5IGluUGVyc29uQ3RybE5hbWU6IHN0cmluZyA9ICdwZXJzb24nO1xyXG4gIHJlYWRvbmx5IG90aGVyUmVhc29uQ3RybE5hbWU6IHN0cmluZyA9ICdvdGhlclJlYXNvbic7XHJcbiAgcmVhZG9ubHkgYXBwdERhdGVDdHJsTmFtZTogc3RyaW5nID0gJ2FwcHREYXRlJztcclxuICByZWFkb25seSBhcHB0VGltZUN0cmxOYW1lOiBzdHJpbmcgPSAnaG91cjEnO1xyXG4gIHJlYWRvbmx5IGFwcHRNaW51dGVDdHJsTmFtZTogc3RyaW5nID0gJ21pbnV0ZTEnO1xyXG5cclxuICBlbGVtZW50czogSVB0RHluYW1pY0VsZW1lbnRDb25maWdbXTtcclxuICBzaG93SW5QZXJzb246IGJvb2xlYW4gPSB0cnVlO1xyXG4gIHNob3dBcHB0U2NoZWR1bGVyOiBib29sZWFuID0gdHJ1ZTtcclxuICBzY2hlZHVsZURldGFpbHM6IFNjaGVkdWxlQXBwb2ludG1lbnRQb3N0TW9kZWw7XHJcbiAgZmlsdGVyZWREYXRlczogc3RyaW5nIFtdO1xyXG5cclxuICBAVmlld0NoaWxkKCdkeW5hbWljRm9ybScsIHsgc3RhdGljOiBmYWxzZSB9KSBwdWJsaWMgZHluYW1pY0Zvcm06IFB0RHluYW1pY0Zvcm1zQ29tcG9uZW50O1xyXG4gIHNjaGVkdWxlRGF0YTogYW55O1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8U2NoZWR1bGVDYWxsQmFja0FjdGlvbkNvbXBvbmVudD4sIHB1YmxpYyBkaWFsb2c6IE1hdERpYWxvZyxcclxuICAgIHByaXZhdGUgZHluYW1pY0Zvcm1TZXJ2aWNlOiBQdER5bmFtaWNGb3Jtc1NlcnZpY2UsXHJcbiAgICBASW5qZWN0KCdlbnZpcm9ubWVudCcpIHByaXZhdGUgZW52aXJvbm1lbnQ6IEVudmlyb25tZW50LFxyXG4gICAgcHJpdmF0ZSBtYW5hZ2VBcHBvaW50bWVudHNTZXJ2aWNlOiBNYW5hZ2VBcHBvaW50bWVudHNTZXJ2aWNlLFxyXG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWFueVxyXG4gICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHB1YmxpYyBkYXRhOiBDb25jaWxpYXRpb25Xb3JrTGlzdEl0ZW1Nb2RlbCkge1xyXG4gICAgc3VwZXIoKTtcclxuICAgIHRoaXMuZWxlbWVudHMgPVxyXG4gICAgICB0aGlzLmR5bmFtaWNGb3JtU2VydmljZS5tYXBGb3JtRGF0YSh0aGlzLnNjaGVkdWxlRGF0YSwgc2NoZWR1bGVPclJlc2NoZWR1bGVBY3Rpb25Gb3JtTW9kZWwuZWRpdFRlbXBsYXRlLCB1bmRlZmluZWQpO1xyXG4gICAgdGhpcy5zaG93SW5QZXJzb24gPSBnZXQoZGF0YSwgJ3Nob3dJblBlcnNvbicsIHRydWUpO1xyXG5cclxuICB9XHJcblxyXG4gIGdldCBkeW5hbWljRm9ybUdyb3VwKCk6IEZvcm1Hcm91cCB7XHJcbiAgICByZXR1cm4gZ2V0KHRoaXMuZHluYW1pY0Zvcm0sICdkeW5hbWljRm9ybUdyb3VwJyk7XHJcbiAgfVxyXG4gIFxyXG4gIGdldCBpc0Rpc2FibGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZHluYW1pY0Zvcm1Hcm91cCAmJiB0aGlzLmR5bmFtaWNGb3JtR3JvdXAuaW52YWxpZDtcclxuICB9XHJcbiAgZmlsdGVyV2Vla2VuZHModmFsOiBEYXRlW10pe1xyXG5cclxuICB9XHJcbiAgaW5pdEVsZW1lbnRzKCk6IHZvaWQge1xyXG4gICAgY29uc3QgYXBwdERhdGVFbGVtZW50OiBJUHREeW5hbWljRWxlbWVudENvbmZpZyA9IGZpbmQoZ2V0KHRoaXMuZHluYW1pY0Zvcm0sICdlbGVtZW50cycpLFxyXG4gICAgKGU6IElQdER5bmFtaWNFbGVtZW50Q29uZmlnKSA9PiBlLm5hbWUgPT09IHRoaXMuYXBwdERhdGVDdHJsTmFtZSk7XHJcbiAgICBzZXQoYXBwdERhdGVFbGVtZW50LCAnbWluJywgbmV3IERhdGUoKSk7XHJcblxyXG4gICAgY29uc3QgdG9kYXkgPSBuZXcgRGF0ZSgpO1xyXG4gICAgc2V0KGFwcHREYXRlRWxlbWVudCwnbWF4JyxuZXcgRGF0ZSh0b2RheS5nZXRGdWxsWWVhcigpLHRvZGF5LmdldE1vbnRoKCksIHRvZGF5LmdldERhdGUoKSszMCkpO1xyXG5cclxuICAgLy8gdGhpcy5maWx0ZXJlZERhdGVzID0gdGhpcy5maWx0ZXJXZWVrZW5kcygpXHJcblxyXG4gICAgY29uc3QgYXBwdFRpbWVFbGVtZW50OiBJUHREeW5hbWljRWxlbWVudENvbmZpZyA9IGZpbmQoZ2V0KHRoaXMuZHluYW1pY0Zvcm0sICdlbGVtZW50cycpLFxyXG4gICAgKGU6IElQdER5bmFtaWNFbGVtZW50Q29uZmlnKSA9PiBlLm5hbWUgPT09IHRoaXMuYXBwdFRpbWVDdHJsTmFtZSk7XHJcbiAgICBzZXQoYXBwdFRpbWVFbGVtZW50LCdzZWxlY3Rpb25zJyx0aW1lSG91cnNsb3RzKTtcclxuXHJcbiAgICBjb25zdCBhcHB0TWludXRlRWxlbWVudDogSVB0RHluYW1pY0VsZW1lbnRDb25maWcgPSBmaW5kKGdldCh0aGlzLmR5bmFtaWNGb3JtLCAnZWxlbWVudHMnKSxcclxuICAgIChlOiBJUHREeW5hbWljRWxlbWVudENvbmZpZykgPT4gZS5uYW1lID09PSB0aGlzLmFwcHRNaW51dGVDdHJsTmFtZSk7XHJcbiAgICBzZXQoYXBwdE1pbnV0ZUVsZW1lbnQsJ3NlbGVjdGlvbnMnLHRpbWVNaW5TbG90cyk7XHJcbiAgICBcclxuICB9XHJcblxyXG4gIHNldEFwcHREYXRlVGltZShhcHB0RGF0ZVRpbWU6IG1vbWVudC5Nb21lbnQpOiB2b2lkIHtcclxuICAgIGNvbnN0IGFwcHREYXRlRWxlbWVudDogSVB0RHluYW1pY0VsZW1lbnRDb25maWcgPSBmaW5kKGdldCh0aGlzLmR5bmFtaWNGb3JtLCAnZWxlbWVudHMnKSxcclxuICAgICAgKGU6IElQdER5bmFtaWNFbGVtZW50Q29uZmlnKSA9PiBlLm5hbWUgPT09IHRoaXMuYXBwdERhdGVDdHJsTmFtZSk7XHJcblxyXG4gICAgY29uc3QgYXBwdFRpbWVFbGVtZW50OiBJUHREeW5hbWljRWxlbWVudENvbmZpZyA9IGZpbmQoZ2V0KHRoaXMuZHluYW1pY0Zvcm0sICdlbGVtZW50cycpLFxyXG4gICAgICAoZTogSVB0RHluYW1pY0VsZW1lbnRDb25maWcpID0+IGUubmFtZSA9PT0gdGhpcy5hcHB0VGltZUN0cmxOYW1lKTtcclxuXHJcbiAgICAgIGNvbnN0IGZnOiBGb3JtR3JvdXAgPSBnZXQodGhpcy5keW5hbWljRm9ybSwgJ2R5bmFtaWNGb3JtR3JvdXAnKTtcclxuICAgICAgaWYoISFmZykge1xyXG4gICAgICAgIHNldChhcHB0RGF0ZUVsZW1lbnQsICdoaWRkZW4nLCBmYWxzZSk7XHJcbiAgICAgICAgZmcuZ2V0KHRoaXMuYXBwdERhdGVDdHJsTmFtZSkuc2V0VmFsdWUoYXBwdERhdGVUaW1lLmZvcm1hdChtb21lbnREYXRlRm9ybWF0KSk7XHJcblxyXG4gICAgICAgIHNldChhcHB0VGltZUVsZW1lbnQsICdoaWRkZW4nLCBmYWxzZSk7XHJcbiAgICAgICAgZmcuZ2V0KHRoaXMuYXBwdFRpbWVDdHJsTmFtZSkuc2V0VmFsdWUoYXBwdERhdGVUaW1lLmZvcm1hdCh0aW1lRm9ybWF0KSk7XHJcbiAgICAgIH1cclxuICB9XHJcblxyXG4gIG9wZW5BcHBvaW50bWVudFNjaGVkdWxlcigpOiB2b2lkIHtcclxuICAgIG9wZW5BcHBvaW50bWVudERpYWxvZ2JveCh0aGlzLmRpYWxvZywgZ2V0KHRoaXMuZGF0YSwgJ2Ntc0Nhc2VJZCcpLCBnZXQodGhpcy5lbnZpcm9ubWVudCwgJ2NvbmNpbGlhdGlvblNjaGVkdWxlQ2FsbEJhY2tBcHBvaW50bWVudFR5cGVJZCcpLCAwLGZhbHNlLGdldCh0aGlzLmRhdGEsICdlYWVwQXNzZXNzbWVudElkJykpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmNvbXBvbmVudERlc3Ryb3llZCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHNjaGVkdWxlRGV0YWlsczogU2NoZWR1bGVBcHBvaW50bWVudFBvc3RNb2RlbCkgPT4ge1xyXG4gICAgICAgIGlmKHNjaGVkdWxlRGV0YWlscyAhPSBudWxsKSB7XHJcbiAgICAgICAgICB0aGlzLnNob3dBcHB0U2NoZWR1bGVyID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnNjaGVkdWxlRGV0YWlscyA9IHNjaGVkdWxlRGV0YWlscztcclxuICAgICAgICAgIHRoaXMuc2V0QXBwdERhdGVUaW1lKG1vbWVudChnZXQoc2NoZWR1bGVEZXRhaWxzLCAnYXBwb2ludG1lbnREYXRldGltZScpKSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIGNsb3NlTW9kYWwoYWN0aW9uOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tYW55XHJcbiAgICBjb25zdCBmb3JtVmFsdWU6IGFueSA9IHRoaXMuZHluYW1pY0Zvcm1Hcm91cC5nZXRSYXdWYWx1ZSgpO1xyXG4gICAgaWYgKGFjdGlvbikge1xyXG4gICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSh7XHJcbiAgICAgICAgLi4uZm9ybVZhbHVlLFxyXG4gICAgICAgIGFwcHREYXRlVGltZTogZ2V0KHRoaXMuc2NoZWR1bGVEZXRhaWxzLCAnYXBwb2ludG1lbnREYXRldGltZScpLFxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuY2FuY2VsQXBwb2ludG1lbnQoKTtcclxuICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UodW5kZWZpbmVkKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNhbmNlbEFwcG9pbnRtZW50KCk6IHZvaWQge1xyXG4gICAgY29uc3QgY2FuY2VsUGF5bG9hZDogQ2FuY2VsQXBwb2ludG1lbnRQYXlsb2FkID0ge1xyXG4gICAgICBjYW5jZWxsYXRpb25SZWFzb25JZDogYXBwdENhbmNlbGxlZFJlYXNvbixcclxuICAgICAgYXBwb2ludG1lbnRJZDogZ2V0KHRoaXMuc2NoZWR1bGVEZXRhaWxzLCAnYXBwb2ludG1lbnRJZCcpLFxyXG4gICAgfTtcclxuICAgIHRoaXMubWFuYWdlQXBwb2ludG1lbnRzU2VydmljZS5kaXNwYXRjaENhbmNlbEFwcG9pbnRtZW50KGNhbmNlbFBheWxvYWQpO1xyXG4gIH1cclxuICBcclxuICBhZnRlck9uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIC8vIHRocm93IG5ldyBFcnJvcihcIk1ldGhvZCBub3QgaW1wbGVtZW50ZWQuXCIpO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPHBydXRlY2gtZGlhbG9nLWJveCBjbGFzcz1cInBydXRlY2gtZGlhbG9nLWJveFwiPlxyXG4gIDxkaXYgY2xhc3M9XCJoZWFkZXJcIj57eyBkYXRhPy5pc1JlU2NoZWR1bGUgPyAnUmUtc2NoZWR1bGUgQ2FsbCBCYWNrJyA6ICdTY2hlZHVsZSBDYWxsIEJhY2snIH19PC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cImJvZHkgcHJ1dGVjaC1kaWFsb2ctY29udGVudFwiIGZ4TGF5b3V0PVwiY29sdW1uXCIgZnhMYXlvdXRBbGlnbj1cInN0YXJ0IHN0cmV0Y2hcIiBmeExheW91dEdhcD1cIjEwcHhcIj5cclxuICAgIDwhLS0gPGRpdiAqbmdJZj1cInNob3dBcHB0U2NoZWR1bGVyXCI+XHJcbiAgICAgIDxidXR0b24gbWF0LXN0cm9rZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJvcGVuQXBwb2ludG1lbnRTY2hlZHVsZXIoKVwiPkFwcG9pbnRtZW50IFNjaGVkdWxlcjwvYnV0dG9uPlxyXG4gICAgPC9kaXY+IC0tPlxyXG4gICAgPHBydXRlY2gtZHluYW1pYy1mb3JtcyAoaW5pdCk9XCJpbml0RWxlbWVudHMoKVwiICAqbmdJZj1cImVsZW1lbnRzXCIgW2VsZW1lbnRzXT1cImVsZW1lbnRzXCIgI2R5bmFtaWNGb3JtPlxyXG4gICAgICA8bmctdGVtcGxhdGUgbGV0LWVsZW1lbnQgbmdGb3IgW25nRm9yT2ZdPVwiZWxlbWVudHNcIj5cclxuICAgICAgICA8bmctdGVtcGxhdGUgbGV0LWNvbnRyb2w9XCJjb250cm9sXCIgW3RkRHluYW1pY0Zvcm1zRXJyb3JdPVwiZWxlbWVudC5uYW1lXCI+XHJcbiAgICAgICAgICA8c3BhbiAqbmdJZj1cImNvbnRyb2wudG91Y2hlZCB8fCAhY29udHJvbC5wcmlzdGluZVwiPlxyXG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cImNvbnRyb2wuaGFzRXJyb3IoJ3JlcXVpcmVkJylcIj5SZXF1aXJlZDwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJjb250cm9sLmhhc0Vycm9yKCdpbnZhbGlkU2VsZWN0aW9uJylcIj5JbnZhbGlkIFNlbGVjdGlvbjwvc3Bhbj5cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC9wcnV0ZWNoLWR5bmFtaWMtZm9ybXM+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cImRpYWxvZ2JveGZvb3RlclwiPlxyXG4gICAgPGJ1dHRvbiBtYXQtZmxhdC1idXR0b24gKGNsaWNrKT1cImNsb3NlTW9kYWwoZmFsc2UpXCI+RVhJVDwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvbiBtYXQtZmxhdC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrKT1cImNsb3NlTW9kYWwodHJ1ZSlcIiBbZGlzYWJsZWRdPVwiaXNEaXNhYmxlZFwiPiBTVUJNSVRcclxuICAgIDwvYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG48L3BydXRlY2gtZGlhbG9nLWJveD4iXX0=
131
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZWR1bGUtY2FsbC1iYWNrLWFjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcnV0ZWNoL2NvbXBsaWFuY2Uvc3JjL2xpYi9jb25jaWxpYXRpb24tYXBwb2ludG1lbnQtd29yay1saXN0L2NvbXBvbmVudHMvc2NoZWR1bGUtY2FsbC1iYWNrLWFjdGlvbi9zY2hlZHVsZS1jYWxsLWJhY2stYWN0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3BydXRlY2gvY29tcGxpYW5jZS9zcmMvbGliL2NvbmNpbGlhdGlvbi1hcHBvaW50bWVudC13b3JrLWxpc3QvY29tcG9uZW50cy9zY2hlZHVsZS1jYWxsLWJhY2stYWN0aW9uL3NjaGVkdWxlLWNhbGwtYmFjay1hY3Rpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRXJFLE9BQU8sRUFDTCxpQkFBaUIsRUFFbEIsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsZUFBZSxFQUEyQixNQUFNLDBCQUEwQixDQUFDO0FBRXBGLE9BQU8sRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBQyxLQUFLLEVBQUUsR0FBRyxFQUFZLElBQUksRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNuRSxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUl2RyxPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFDNUIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFVBQVUsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQzNGLE9BQU8sRUFBRyxZQUFZLEVB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QkFBQyxhQUFhOzswQkFHcEIsTUFBTTsyQkFBQyxlQUFlOzRDQVIyQixXQUFXO3NCQUE5RCxTQUFTO3VCQUFDLGFBQWEsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgVmlld0NoaWxkLCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQge1xyXG4gIEFic3RyYWN0Q29tcG9uZW50LCBFbnZpcm9ubWVudCwgSVB0RHluYW1pY0VsZW1lbnRDb25maWcsXHJcbiAgUHREeW5hbWljRm9ybXNDb21wb25lbnQsIFB0RHluYW1pY0Zvcm1zU2VydmljZVxyXG59IGZyb20gJ0BwcnV0ZWNoL2NvbXBvbmVudHMnO1xyXG5pbXBvcnQgeyBNQVRfRElBTE9HX0RBVEEsIE1hdERpYWxvZ1JlZiwgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBmaW5kLCBnZXQsIHNldCxyYW5nZSwgbWFwLCBpbmNsdWRlcywgc29tZSB9IGZyb20gJ2xvZGFzaCc7XHJcbmltcG9ydCB7IHNjaGVkdWxlT3JSZXNjaGVkdWxlQWN0aW9uRm9ybU1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3NjaGVkdWxlLWNhbGwtYmFjay1hY3Rpb24uZm9ybW1vZGVsJztcclxuaW1wb3J0IHsgb3BlbkFwcG9pbnRtZW50RGlhbG9nYm94IH0gZnJvbSAnLi4vLi4vbW9kZWxzL29wZW4tYXBwb2ludG1lbnQnO1xyXG5pbXBvcnQgeyBDb25jaWxpYXRpb25Xb3JrTGlzdEl0ZW1Nb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9jb25jaWxpYXRpb24td29yay1saXN0LWl0ZW0ubW9kZWwnO1xyXG5pbXBvcnQgeyBDYW5jZWxBcHBvaW50bWVudFBheWxvYWQsIE1hbmFnZUFwcG9pbnRtZW50c1NlcnZpY2UsIFNjaGVkdWxlQXBwb2ludG1lbnRQb3N0TW9kZWwsIFNsb3RUeXBlRW51bSB9IGZyb20gJ0BwcnV0ZWNoL2FwcG9pbnRtZW50JztcclxuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnO1xyXG5pbXBvcnQgeyBtb21lbnREYXRlRm9ybWF0LCB0aW1lRm9ybWF0IH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2NvbnN0YW50cy9kYXRlLWZvcm1hdCc7XHJcbmltcG9ydCB7IGFwcHRDYW5jZWxsZWRSZWFzb24gfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvbW9kZWxzL3NjaGVkdWxlLWFzc2lnbm1lbnQtY29uc3RhbnRzJztcclxuaW1wb3J0IHsgIHRpbWVNaW5TbG90cyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9zbG90LXRpbWUnO1xyXG5pbXBvcnQgeyBGZWRlcmFsSG9saWRheXNNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9mZWRlcmFsLWhvbGlkYXlzLW1vZGVsJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLXNjaGVkdWxlLWNhbGwtYmFjay1hY3Rpb24nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zY2hlZHVsZS1jYWxsLWJhY2stYWN0aW9uLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9zY2hlZHVsZS1jYWxsLWJhY2stYWN0aW9uLmNvbXBvbmVudC5jc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2NoZWR1bGVDYWxsQmFja0FjdGlvbkNvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0e1xyXG5cclxuICByZWFkb25seSByZWFzb25DdHJsTmFtZTogc3RyaW5nID0gJ3JlYXNvbnMnO1xyXG4gIHJlYWRvbmx5IGluUGVyc29uQ3RybE5hbWU6IHN0cmluZyA9ICdwZXJzb24nO1xyXG4gIHJlYWRvbmx5IG90aGVyUmVhc29uQ3RybE5hbWU6IHN0cmluZyA9ICdvdGhlclJlYXNvbic7XHJcbiAgcmVhZG9ubHkgYXBwdERhdGVDdHJsTmFtZTogc3RyaW5nID0gJ2FwcHREYXRlJztcclxuICByZWFkb25seSBhcHB0VGltZUN0cmxOYW1lOiBzdHJpbmcgPSAnaG91cjEnO1xyXG4gIHJlYWRvbmx5IGFwcHRNaW51dGVDdHJsTmFtZTogc3RyaW5nID0gJ21pbnV0ZTEnO1xyXG5cclxuICBlbGVtZW50czogSVB0RHluYW1pY0VsZW1lbnRDb25maWdbXTtcclxuICBzaG93SW5QZXJzb246IGJvb2xlYW4gPSB0cnVlO1xyXG4gIHNob3dBcHB0U2NoZWR1bGVyOiBib29sZWFuID0gdHJ1ZTtcclxuICBzY2hlZHVsZURldGFpbHM6IFNjaGVkdWxlQXBwb2ludG1lbnRQb3N0TW9kZWw7XHJcbiAgZmlsdGVyZWREYXRlczogYW55O1xyXG4gIGhvdXJzOiBudW1iZXJbXVxyXG4gXHJcbiAgQFZpZXdDaGlsZCgnZHluYW1pY0Zvcm0nLCB7IHN0YXRpYzogZmFsc2UgfSkgcHVibGljIGR5bmFtaWNGb3JtOiBQdER5bmFtaWNGb3Jtc0NvbXBvbmVudDtcclxuICBzY2hlZHVsZURhdGE6IGFueTtcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPFNjaGVkdWxlQ2FsbEJhY2tBY3Rpb25Db21wb25lbnQ+LCBwdWJsaWMgZGlhbG9nOiBNYXREaWFsb2csXHJcbiAgICBwcml2YXRlIGR5bmFtaWNGb3JtU2VydmljZTogUHREeW5hbWljRm9ybXNTZXJ2aWNlLFxyXG4gICAgQEluamVjdCgnZW52aXJvbm1lbnQnKSBwcml2YXRlIGVudmlyb25tZW50OiBFbnZpcm9ubWVudCxcclxuICAgIHByaXZhdGUgbWFuYWdlQXBwb2ludG1lbnRzU2VydmljZTogTWFuYWdlQXBwb2ludG1lbnRzU2VydmljZSxcclxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1hbnlcclxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGF0YTogQ29uY2lsaWF0aW9uV29ya0xpc3RJdGVtTW9kZWwpIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgICB0aGlzLmVsZW1lbnRzID1cclxuICAgIHRoaXMuZHluYW1pY0Zvcm1TZXJ2aWNlLm1hcEZvcm1EYXRhKHRoaXMuc2NoZWR1bGVEYXRhLCBzY2hlZHVsZU9yUmVzY2hlZHVsZUFjdGlvbkZvcm1Nb2RlbC5lZGl0VGVtcGxhdGUsIHVuZGVmaW5lZCk7XHJcbiAgICB0aGlzLnNob3dJblBlcnNvbiA9IGdldChkYXRhLCAnc2hvd0luUGVyc29uJywgdHJ1ZSk7XHJcbiAgICB0aGlzLmZpbHRlcmVkRGF0ZXMgPSBtYXAoZ2V0KGRhdGEsJ3ZhbCcpLCAoZDogbW9tZW50Lk1vbWVudCkgPT4gZ2V0KGQsICdob2xpZGF5RGF0ZScpKTtcclxuICB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmhvdXJzID0gcmFuZ2UoMSwgMjUpO1xyXG4gIH1cclxuICBnZXQgZHluYW1pY0Zvcm1Hcm91cCgpOiBGb3JtR3JvdXAge1xyXG4gICAgcmV0dXJuIGdldCh0aGlzLmR5bmFtaWNGb3JtLCAnZHluYW1pY0Zvcm1Hcm91cCcpO1xyXG4gIH1cclxuICBcclxuICBnZXQgaXNEaXNhYmxlZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmR5bmFtaWNGb3JtR3JvdXAgJiYgdGhpcy5keW5hbWljRm9ybUdyb3VwLmludmFsaWQ7XHJcbiAgfVxyXG4gIFxyXG4gIG15RmlsdGVyID0gKGRhdGUpOiBib29sZWFuID0+IHtcclxuICAgaWYoIWRhdGUpIHJldHVybiBmYWxzZTtcclxuICAgIGNvbnN0IGRheSA9IGRhdGUuZGF5KCk7XHJcbiAgICBsZXQgaXNGZWRlcmFsSG9saWRheTogYm9vbGVhbiA9IHNvbWUodGhpcy5maWx0ZXJlZERhdGVzLCAoZjogRGF0ZSkgPT4gbW9tZW50KGYpLmlzU2FtZShtb21lbnQoZGF0ZSkpKTtcclxuICAgIGlmKGRheSA9PT0gMCB8fCBkYXkgPT09IDYgfHwgaXNGZWRlcmFsSG9saWRheSl7XHJcbiAgICAgIHJldHVybiBmYWxzZVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBpbml0RWxlbWVudHMoKTogdm9pZCB7XHJcbiAgICBjb25zdCBhcHB0RGF0ZUVsZW1lbnQ6IElQdER5bmFtaWNFbGVtZW50Q29uZmlnID0gZmluZChnZXQodGhpcy5keW5hbWljRm9ybSwgJ2VsZW1lbnRzJyksXHJcbiAgICAoZTogSVB0RHluYW1pY0VsZW1lbnRDb25maWcpID0+IGUubmFtZSA9PT0gdGhpcy5hcHB0RGF0ZUN0cmxOYW1lKTtcclxuICAgIHNldChhcHB0RGF0ZUVsZW1lbnQsICdtaW4nLCBuZXcgRGF0ZSgpKTtcclxuXHJcbiAgICBjb25zdCB0b2RheSA9IG5ldyBEYXRlKCk7XHJcbiAgICBzZXQoYXBwdERhdGVFbGVtZW50LCdtYXgnLG5ldyBEYXRlKHRvZGF5LmdldEZ1bGxZZWFyKCksdG9kYXkuZ2V0TW9udGgoKSwgdG9kYXkuZ2V0RGF0ZSgpKzMwKSk7XHJcblxyXG4gICAgc2V0KGFwcHREYXRlRWxlbWVudCwnZmlsdGVyJyx0aGlzLm15RmlsdGVyKTtcclxuXHJcbiAgICBjb25zdCBhcHB0VGltZUVsZW1lbnQ6IElQdER5bmFtaWNFbGVtZW50Q29uZmlnID0gZmluZChnZXQodGhpcy5keW5hbWljRm9ybSwgJ2VsZW1lbnRzJyksXHJcbiAgICAoZTogSVB0RHluYW1pY0VsZW1lbnRDb25maWcpID0+IGUubmFtZSA9PT0gdGhpcy5hcHB0VGltZUN0cmxOYW1lKTtcclxuICAgIHNldChhcHB0VGltZUVsZW1lbnQsJ3NlbGVjdGlvbnMnLHRoaXMuaG91cnMpO1xyXG5cclxuICAgIGNvbnN0IGFwcHRNaW51dGVFbGVtZW50OiBJUHREeW5hbWljRWxlbWVudENvbmZpZyA9IGZpbmQoZ2V0KHRoaXMuZHluYW1pY0Zvcm0sICdlbGVtZW50cycpLFxyXG4gICAgKGU6IElQdER5bmFtaWNFbGVtZW50Q29uZmlnKSA9PiBlLm5hbWUgPT09IHRoaXMuYXBwdE1pbnV0ZUN0cmxOYW1lKTtcclxuICAgIHNldChhcHB0TWludXRlRWxlbWVudCwnc2VsZWN0aW9ucycsdGltZU1pblNsb3RzKTtcclxuICB9XHJcblxyXG4gIHNldEFwcHREYXRlVGltZShhcHB0RGF0ZVRpbWU6IG1vbWVudC5Nb21lbnQpOiB2b2lkIHtcclxuICAgIGNvbnN0IGFwcHREYXRlRWxlbWVudDogSVB0RHluYW1pY0VsZW1lbnRDb25maWcgPSBmaW5kKGdldCh0aGlzLmR5bmFtaWNGb3JtLCAnZWxlbWVudHMnKSxcclxuICAgICAgKGU6IElQdER5bmFtaWNFbGVtZW50Q29uZmlnKSA9PiBlLm5hbWUgPT09IHRoaXMuYXBwdERhdGVDdHJsTmFtZSk7XHJcblxyXG4gICAgY29uc3QgYXBwdFRpbWVFbGVtZW50OiBJUHREeW5hbWljRWxlbWVudENvbmZpZyA9IGZpbmQoZ2V0KHRoaXMuZHluYW1pY0Zvcm0sICdlbGVtZW50cycpLFxyXG4gICAgICAoZTogSVB0RHluYW1pY0VsZW1lbnRDb25maWcpID0+IGUubmFtZSA9PT0gdGhpcy5hcHB0VGltZUN0cmxOYW1lKTtcclxuXHJcbiAgICAgIGNvbnN0IGZnOiBGb3JtR3JvdXAgPSBnZXQodGhpcy5keW5hbWljRm9ybSwgJ2R5bmFtaWNGb3JtR3JvdXAnKTtcclxuICAgICAgaWYoISFmZykge1xyXG4gICAgICAgIHNldChhcHB0RGF0ZUVsZW1lbnQsICdoaWRkZW4nLCBmYWxzZSk7XHJcbiAgICAgICAgZmcuZ2V0KHRoaXMuYXBwdERhdGVDdHJsTmFtZSkuc2V0VmFsdWUoYXBwdERhdGVUaW1lLmZvcm1hdChtb21lbnREYXRlRm9ybWF0KSk7XHJcblxyXG4gICAgICAgIHNldChhcHB0VGltZUVsZW1lbnQsICdoaWRkZW4nLCBmYWxzZSk7XHJcbiAgICAgICAgZmcuZ2V0KHRoaXMuYXBwdFRpbWVDdHJsTmFtZSkuc2V0VmFsdWUoYXBwdERhdGVUaW1lLmZvcm1hdCh0aW1lRm9ybWF0KSk7XHJcbiAgICAgIH1cclxuICB9XHJcblxyXG4gIGdldEFwcHREYXRlKGFwcHREYXRlLGFwcGhvdXIsYXBwdGltZSk6IHN0cmluZyB7XHJcbiAgIFxyXG4gICAgY29uc3QgZGF0ZTogbnVtYmVyID0gbW9tZW50KGFwcHREYXRlKS5nZXQoJ2RhdGUnKTtcclxuICAgIGNvbnN0IG1vbnRoOiBudW1iZXIgPSBtb21lbnQoYXBwdERhdGUpLmdldCgnbW9udGgnKTtcclxuICAgIGNvbnN0IHllYXI6IG51bWJlciA9IG1vbWVudChhcHB0RGF0ZSkuZ2V0KCd5ZWFyJyk7XHJcbiAgICBjb25zdCBocnM6IG51bWJlciA9YXBwaG91cjtcclxuICAgIGNvbnN0IG1pbnM6IG51bWJlciA9YXBwdGltZTtcclxuICAgIHJldHVybiBtb21lbnQoKS51dGNPZmZzZXQoMCkuc2V0KCdkYXRlJywgZGF0ZSkuc2V0KCdtb250aCcsIG1vbnRoKS5zZXQoJ3llYXInLCB5ZWFyKS5zZXQoJ2hvdXJzJywgaHJzKS5zZXQoJ21pbnV0ZXMnLCBtaW5zKS50b0lTT1N0cmluZygpO1xyXG4gIH1cclxuXHJcbiAgY2xvc2VNb2RhbChhY3Rpb246IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1hbnlcclxuICAgIGNvbnN0IGZvcm1WYWx1ZTogYW55ID0gdGhpcy5keW5hbWljRm9ybUdyb3VwLmdldFJhd1ZhbHVlKCk7XHJcbiAgICBpZiAoYWN0aW9uKSB7XHJcbiAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHtcclxuICAgICAgICAuLi5mb3JtVmFsdWUsXHJcbiAgICAgICAgYXBwdERhdGVUaW1lOiB0aGlzLmdldEFwcHREYXRlKGZvcm1WYWx1ZS5hcHB0RGF0ZSxmb3JtVmFsdWUuaG91cjEsZm9ybVZhbHVlLm1pbnV0ZTEpLFxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuY2FuY2VsQXBwb2ludG1lbnQoKTtcclxuICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UodW5kZWZpbmVkKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNhbmNlbEFwcG9pbnRtZW50KCk6IHZvaWQge1xyXG4gICAgY29uc3QgY2FuY2VsUGF5bG9hZDogQ2FuY2VsQXBwb2ludG1lbnRQYXlsb2FkID0ge1xyXG4gICAgICBjYW5jZWxsYXRpb25SZWFzb25JZDogYXBwdENhbmNlbGxlZFJlYXNvbixcclxuICAgICAgYXBwb2ludG1lbnRJZDogZ2V0KHRoaXMuc2NoZWR1bGVEZXRhaWxzLCAnYXBwb2ludG1lbnRJZCcpLFxyXG4gICAgfTtcclxuICAgIHRoaXMubWFuYWdlQXBwb2ludG1lbnRzU2VydmljZS5kaXNwYXRjaENhbmNlbEFwcG9pbnRtZW50KGNhbmNlbFBheWxvYWQpO1xyXG4gIH1cclxuICBcclxuICBhZnRlck9uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIC8vIHRocm93IG5ldyBFcnJvcihcIk1ldGhvZCBub3QgaW1wbGVtZW50ZWQuXCIpO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPHBydXRlY2gtZGlhbG9nLWJveCBjbGFzcz1cInBydXRlY2gtZGlhbG9nLWJveFwiPlxyXG4gIDxkaXYgY2xhc3M9XCJoZWFkZXJcIj57eyBkYXRhPy5pc1JlU2NoZWR1bGUgPyAnUmUtc2NoZWR1bGUgQ2FsbCBCYWNrJyA6ICdTY2hlZHVsZSBDYWxsIEJhY2snIH19PC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cImJvZHkgcHJ1dGVjaC1kaWFsb2ctY29udGVudFwiIGZ4TGF5b3V0PVwiY29sdW1uXCIgZnhMYXlvdXRBbGlnbj1cInN0YXJ0IHN0cmV0Y2hcIiBmeExheW91dEdhcD1cIjEwcHhcIj5cclxuICAgIDwhLS0gPGRpdiAqbmdJZj1cInNob3dBcHB0U2NoZWR1bGVyXCI+XHJcbiAgICAgIDxidXR0b24gbWF0LXN0cm9rZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJvcGVuQXBwb2ludG1lbnRTY2hlZHVsZXIoKVwiPkFwcG9pbnRtZW50IFNjaGVkdWxlcjwvYnV0dG9uPlxyXG4gICAgPC9kaXY+IC0tPlxyXG4gICAgPHBydXRlY2gtZHluYW1pYy1mb3JtcyAoaW5pdCk9XCJpbml0RWxlbWVudHMoKVwiICAqbmdJZj1cImVsZW1lbnRzXCIgW2VsZW1lbnRzXT1cImVsZW1lbnRzXCIgI2R5bmFtaWNGb3JtPlxyXG4gICAgICA8bmctdGVtcGxhdGUgbGV0LWVsZW1lbnQgbmdGb3IgW25nRm9yT2ZdPVwiZWxlbWVudHNcIj5cclxuICAgICAgICA8bmctdGVtcGxhdGUgbGV0LWNvbnRyb2w9XCJjb250cm9sXCIgW3RkRHluYW1pY0Zvcm1zRXJyb3JdPVwiZWxlbWVudC5uYW1lXCI+XHJcbiAgICAgICAgICA8c3BhbiAqbmdJZj1cImNvbnRyb2wudG91Y2hlZCB8fCAhY29udHJvbC5wcmlzdGluZVwiPlxyXG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cImNvbnRyb2wuaGFzRXJyb3IoJ3JlcXVpcmVkJylcIj5SZXF1aXJlZDwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJjb250cm9sLmhhc0Vycm9yKCdpbnZhbGlkU2VsZWN0aW9uJylcIj5JbnZhbGlkIFNlbGVjdGlvbjwvc3Bhbj5cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC9wcnV0ZWNoLWR5bmFtaWMtZm9ybXM+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cImRpYWxvZ2JveGZvb3RlclwiPlxyXG4gICAgPGJ1dHRvbiBtYXQtZmxhdC1idXR0b24gKGNsaWNrKT1cImNsb3NlTW9kYWwoZmFsc2UpXCI+RVhJVDwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvbiBtYXQtZmxhdC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrKT1cImNsb3NlTW9kYWwodHJ1ZSlcIiBbZGlzYWJsZWRdPVwiaXNEaXNhYmxlZFwiPiBTVUJNSVRcclxuICAgIDwvYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG48L3BydXRlY2gtZGlhbG9nLWJveD4iXX0=