vcomply-workflow-engine 2.4.24 → 2.4.25

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"moduleName":null,"summaries":[{"symbol":{"__symbol":0,"members":[]},"metadata":{"__symbolic":"class","members":{"mode":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":1,"members":[]}}]}],"responsibilityId":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":1,"members":[]}}]}],"frameworkDetails":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":1,"members":[]}}]}],"isEntrust":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":1,"members":[]}}]}],"pickerChanged":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":2,"members":[]}}]}],"populateOption":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":2,"members":[]}}]}],"hideElementsFromMoreOptions":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":2,"members":[]}}]}],"closeWorkflow":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":2,"members":[]}}]}],"resetForm":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":2,"members":[]}}]}],"disconnectRefresh":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":2,"members":[]}}]}],"checkpointCountUpdated":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":2,"members":[]}}]}],"rcSelected":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":2,"members":[]}}]}],"openedFrom":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":1,"members":[]}}]}],"selectedRC":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":1,"members":[]}}]}],"selectedProgram":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":1,"members":[]}}]}],"onRemovingCheckpoint":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":2,"members":[]}}]}],"isAssessmentDisabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":2,"members":[]}}]}],"whatInput":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":3,"members":[]},"arguments":["what"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbol":4,"members":[]},{"__symbol":5,"members":[]},{"__symbol":6,"members":[]},{"__symbol":7,"members":[]},{"__symbol":8,"members":[]},{"__symbol":4,"members":[]}]}],"ngOnInit":[{"__symbolic":"method"}],"activateSelector":[{"__symbolic":"method"}],"whatChanged":[{"__symbolic":"method"}],"activeDeselector":[{"__symbolic":"method"}],"addMoreInfo":[{"__symbolic":"method"}],"getRCList":[{"__symbolic":"method"}],"getUserDetails":[{"__symbolic":"method"}],"getAssurance":[{"__symbolic":"method"}],"getAssuranceForRequiresAudit":[{"__symbolic":"method"}],"getOrganizationDetails":[{"__symbolic":"method"}],"getCategoryList":[{"__symbolic":"method"}],"filterListsAccordingToProgram":[{"__symbolic":"method"}],"getAssignorsList":[{"__symbolic":"method"}],"getAssigneesList":[{"__symbolic":"method"}],"getPeopleListAgainstPID":[{"__symbolic":"method"}],"getGroupsList":[{"__symbolic":"method"}],"getEditResponsibilityDetails":[{"__symbolic":"method"}],"setList":[{"__symbolic":"method"}],"returnIds":[{"__symbolic":"method"}],"setReviewerPayload":[{"__symbolic":"method"}],"checkWhetherAllListsLoaded":[{"__symbolic":"method"}],"saveSelectedList":[{"__symbolic":"method"}],"remove":[{"__symbolic":"method"}],"entrustFramework":[{"__symbolic":"method"}],"refreshAllLists":[{"__symbolic":"method"}],"refreshListsWhileProgramSelected":[{"__symbolic":"method"}],"submitResponsibility":[{"__symbolic":"method"}],"validateResponsibility":[{"__symbolic":"method"}],"entrustResponsibility":[{"__symbolic":"method"}],"reset":[{"__symbolic":"method"}],"action":[{"__symbolic":"method"}],"viewResponsibilities":[{"__symbolic":"method"}],"closeSmiley":[{"__symbolic":"method"}],"frequencyDataPopulation":[{"__symbolic":"method"}],"frequencyPopulation":[{"__symbolic":"method"}],"frequencyData":[{"__symbolic":"method"}],"checkBlank":[{"__symbolic":"method"}],"getFrequencyPlaceholder":[{"__symbolic":"method"}],"getOnCompletionOf":[{"__symbolic":"method"}],"getDailyPlaceholder":[{"__symbolic":"method"}],"getWeeklyPlaceholder":[{"__symbolic":"method"}],"getMonthlyPlaceholder":[{"__symbolic":"method"}],"getQuarterlyPlaceholder":[{"__symbolic":"method"}],"getBiannualPlaceholder":[{"__symbolic":"method"}],"getYearlyPlaceholder":[{"__symbolic":"method"}],"getRandomPlaceholder":[{"__symbolic":"method"}],"onEditWhat":[{"__symbolic":"method"}],"getEditMoreOptions":[{"__symbolic":"method"}],"testFunction":[{"__symbolic":"method"}],"reviewerTypeChange":[{"__symbolic":"method"}],"selectedSampleData":[{"__symbolic":"method"}],"populateAssuranceList":[{"__symbolic":"method"}],"checkInputValue":[{"__symbolic":"method"}],"switchEnable":[{"__symbolic":"method"}],"onAssessmentSelect":[{"__symbolic":"method"}],"getAssessmentDetails":[{"__symbolic":"method"}],"onRemoveCheckpoints":[{"__symbolic":"method"}],"removeCheckpoint":[{"__symbolic":"method"}],"postAssessment":[{"__symbolic":"method"}],"setIsUploaded":[{"__symbolic":"method"}]}},"type":{"summaryKind":1,"type":{"reference":{"__symbol":0,"members":[]},"diDeps":[{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbol":4,"members":[]}}}},{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbol":5,"members":[]}}}},{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbol":6,"members":[]}}}},{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbol":7,"members":[]}}}},{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbol":8,"members":[]}}}},{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbol":4,"members":[]}}}}],"lifecycleHooks":[0]},"isComponent":true,"selector":"app-workflow-compliance","exportAs":null,"inputs":{"mode":"mode","responsibilityId":"responsibilityId","frameworkDetails":"frameworkDetails","isEntrust":"isEntrust","openedFrom":"openedFrom","selectedRC":"selectedRC","selectedProgram":"selectedProgram"},"outputs":{"pickerChanged":"pickerChanged","populateOption":"populateOption","hideElementsFromMoreOptions":"hideElementsFromMoreOptions","closeWorkflow":"closeWorkflow","resetForm":"resetForm","disconnectRefresh":"disconnectRefresh","checkpointCountUpdated":"checkpointCountUpdated","rcSelected":"rcSelected","onRemovingCheckpoint":"onRemovingCheckpoint","isAssessmentDisabled":"isAssessmentDisabled"},"hostListeners":{},"hostProperties":{},"hostAttributes":{},"providers":[],"viewProviders":[],"queries":[],"guards":{},"viewQueries":[{"selectors":[{"value":"what"}],"first":true,"descendants":true,"propertyName":"whatInput","read":null}],"entryComponents":[],"changeDetection":1,"template":{"ngContentSelectors":[],"encapsulation":0,"styles":[],"animations":[]},"componentViewType":{"__symbol":9,"members":[]},"rendererType":{"__symbol":10,"members":[]},"componentFactory":{"__symbol":11,"members":[]}}}],"symbols":[{"__symbol":0,"name":"WorkflowComplianceComponent","filePath":"./workflow-compliance.component"},{"__symbol":1,"name":"Input","filePath":"@angular/core"},{"__symbol":2,"name":"Output","filePath":"@angular/core"},{"__symbol":3,"name":"ViewChild","filePath":"@angular/core"},{"__symbol":4,"name":"AuthService","filePath":"../workflow-services/auth.service"},{"__symbol":5,"name":"ResponsibilityService","filePath":"../workflow-services/responsibility.service"},{"__symbol":6,"name":"FrequencyService","filePath":"../sharedComponents/frequency/frequency.service"},{"__symbol":7,"name":"UiKitService","filePath":"../workflow-services/ui-kit.service"},{"__symbol":8,"name":"SnackBarService","filePath":"../ui-kit/snack-bar/snack-bar.service"},{"__symbol":9,"name":"View_WorkflowComplianceComponent_0","filePath":"./workflow-compliance.component.ngfactory"},{"__symbol":10,"name":"RenderType_WorkflowComplianceComponent","filePath":"./workflow-compliance.component.ngfactory"},{"__symbol":11,"name":"WorkflowComplianceComponentNgFactory","filePath":"./workflow-compliance.component.ngfactory"}]}
1
+ {"moduleName":null,"summaries":[{"symbol":{"__symbol":0,"members":[]},"metadata":{"__symbolic":"class","members":{"mode":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":1,"members":[]}}]}],"responsibilityId":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":1,"members":[]}}]}],"frameworkDetails":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":1,"members":[]}}]}],"isEntrust":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":1,"members":[]}}]}],"pickerChanged":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":2,"members":[]}}]}],"populateOption":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":2,"members":[]}}]}],"hideElementsFromMoreOptions":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":2,"members":[]}}]}],"closeWorkflow":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":2,"members":[]}}]}],"resetForm":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":2,"members":[]}}]}],"disconnectRefresh":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":2,"members":[]}}]}],"checkpointCountUpdated":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":2,"members":[]}}]}],"rcSelected":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":2,"members":[]}}]}],"openedFrom":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":1,"members":[]}}]}],"selectedRC":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":1,"members":[]}}]}],"selectedProgram":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":1,"members":[]}}]}],"onRemovingCheckpoint":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":2,"members":[]}}]}],"isAssessmentDisabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":2,"members":[]}}]}],"whatInput":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":3,"members":[]},"arguments":["what"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbol":4,"members":[]},{"__symbol":5,"members":[]},{"__symbol":6,"members":[]},{"__symbol":7,"members":[]},{"__symbol":8,"members":[]},{"__symbol":4,"members":[]}]}],"ngOnInit":[{"__symbolic":"method"}],"activateSelector":[{"__symbolic":"method"}],"whatChanged":[{"__symbolic":"method"}],"activeDeselector":[{"__symbolic":"method"}],"addMoreInfo":[{"__symbolic":"method"}],"getRCList":[{"__symbolic":"method"}],"getUserDetails":[{"__symbolic":"method"}],"getAssurance":[{"__symbolic":"method"}],"getAssuranceForRequiresAudit":[{"__symbolic":"method"}],"getOrganizationDetails":[{"__symbolic":"method"}],"getCategoryList":[{"__symbolic":"method"}],"filterListsAccordingToProgram":[{"__symbolic":"method"}],"getAssignorsList":[{"__symbolic":"method"}],"getAssigneesList":[{"__symbolic":"method"}],"getPeopleListAgainstPID":[{"__symbolic":"method"}],"getGroupsList":[{"__symbolic":"method"}],"getEditResponsibilityDetails":[{"__symbolic":"method"}],"setList":[{"__symbolic":"method"}],"returnIds":[{"__symbolic":"method"}],"setReviewerPayload":[{"__symbolic":"method"}],"checkWhetherAllListsLoaded":[{"__symbolic":"method"}],"saveSelectedList":[{"__symbolic":"method"}],"remove":[{"__symbolic":"method"}],"entrustFramework":[{"__symbolic":"method"}],"refreshAllLists":[{"__symbolic":"method"}],"submitResponsibility":[{"__symbolic":"method"}],"validateResponsibility":[{"__symbolic":"method"}],"entrustResponsibility":[{"__symbolic":"method"}],"reset":[{"__symbolic":"method"}],"action":[{"__symbolic":"method"}],"viewResponsibilities":[{"__symbolic":"method"}],"closeSmiley":[{"__symbolic":"method"}],"frequencyDataPopulation":[{"__symbolic":"method"}],"frequencyPopulation":[{"__symbolic":"method"}],"frequencyData":[{"__symbolic":"method"}],"checkBlank":[{"__symbolic":"method"}],"getFrequencyPlaceholder":[{"__symbolic":"method"}],"getOnCompletionOf":[{"__symbolic":"method"}],"getDailyPlaceholder":[{"__symbolic":"method"}],"getWeeklyPlaceholder":[{"__symbolic":"method"}],"getMonthlyPlaceholder":[{"__symbolic":"method"}],"getQuarterlyPlaceholder":[{"__symbolic":"method"}],"getBiannualPlaceholder":[{"__symbolic":"method"}],"getYearlyPlaceholder":[{"__symbolic":"method"}],"getRandomPlaceholder":[{"__symbolic":"method"}],"onEditWhat":[{"__symbolic":"method"}],"getEditMoreOptions":[{"__symbolic":"method"}],"testFunction":[{"__symbolic":"method"}],"reviewerTypeChange":[{"__symbolic":"method"}],"selectedSampleData":[{"__symbolic":"method"}],"populateAssuranceList":[{"__symbolic":"method"}],"checkInputValue":[{"__symbolic":"method"}],"switchEnable":[{"__symbolic":"method"}],"onAssessmentSelect":[{"__symbolic":"method"}],"getAssessmentDetails":[{"__symbolic":"method"}],"onRemoveCheckpoints":[{"__symbolic":"method"}],"removeCheckpoint":[{"__symbolic":"method"}],"postAssessment":[{"__symbolic":"method"}],"setIsUploaded":[{"__symbolic":"method"}]}},"type":{"summaryKind":1,"type":{"reference":{"__symbol":0,"members":[]},"diDeps":[{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbol":4,"members":[]}}}},{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbol":5,"members":[]}}}},{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbol":6,"members":[]}}}},{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbol":7,"members":[]}}}},{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbol":8,"members":[]}}}},{"isAttribute":false,"isHost":false,"isSelf":false,"isSkipSelf":false,"isOptional":false,"token":{"identifier":{"reference":{"__symbol":4,"members":[]}}}}],"lifecycleHooks":[0]},"isComponent":true,"selector":"app-workflow-compliance","exportAs":null,"inputs":{"mode":"mode","responsibilityId":"responsibilityId","frameworkDetails":"frameworkDetails","isEntrust":"isEntrust","openedFrom":"openedFrom","selectedRC":"selectedRC","selectedProgram":"selectedProgram"},"outputs":{"pickerChanged":"pickerChanged","populateOption":"populateOption","hideElementsFromMoreOptions":"hideElementsFromMoreOptions","closeWorkflow":"closeWorkflow","resetForm":"resetForm","disconnectRefresh":"disconnectRefresh","checkpointCountUpdated":"checkpointCountUpdated","rcSelected":"rcSelected","onRemovingCheckpoint":"onRemovingCheckpoint","isAssessmentDisabled":"isAssessmentDisabled"},"hostListeners":{},"hostProperties":{},"hostAttributes":{},"providers":[],"viewProviders":[],"queries":[],"guards":{},"viewQueries":[{"selectors":[{"value":"what"}],"first":true,"descendants":true,"propertyName":"whatInput","read":null}],"entryComponents":[],"changeDetection":1,"template":{"ngContentSelectors":[],"encapsulation":0,"styles":[],"animations":[]},"componentViewType":{"__symbol":9,"members":[]},"rendererType":{"__symbol":10,"members":[]},"componentFactory":{"__symbol":11,"members":[]}}}],"symbols":[{"__symbol":0,"name":"WorkflowComplianceComponent","filePath":"./workflow-compliance.component"},{"__symbol":1,"name":"Input","filePath":"@angular/core"},{"__symbol":2,"name":"Output","filePath":"@angular/core"},{"__symbol":3,"name":"ViewChild","filePath":"@angular/core"},{"__symbol":4,"name":"AuthService","filePath":"../workflow-services/auth.service"},{"__symbol":5,"name":"ResponsibilityService","filePath":"../workflow-services/responsibility.service"},{"__symbol":6,"name":"FrequencyService","filePath":"../sharedComponents/frequency/frequency.service"},{"__symbol":7,"name":"UiKitService","filePath":"../workflow-services/ui-kit.service"},{"__symbol":8,"name":"SnackBarService","filePath":"../ui-kit/snack-bar/snack-bar.service"},{"__symbol":9,"name":"View_WorkflowComplianceComponent_0","filePath":"./workflow-compliance.component.ngfactory"},{"__symbol":10,"name":"RenderType_WorkflowComplianceComponent","filePath":"./workflow-compliance.component.ngfactory"},{"__symbol":11,"name":"WorkflowComplianceComponentNgFactory","filePath":"./workflow-compliance.component.ngfactory"}]}
@@ -43,10 +43,10 @@ export class ResponsibilityService {
43
43
  params, headers
44
44
  }).pipe(retry(2));
45
45
  }
46
- getAssignorsList(params) {
46
+ getAssignorsList() {
47
47
  const headers = new HttpHeaders().set('token', this.authService.getAuthorizationToken());
48
48
  return this.http.get(this.env.organizationGet + 'organizationUsers&isOnBehalf=1', {
49
- params, headers
49
+ headers,
50
50
  }).pipe(retry(2));
51
51
  }
52
52
  getCategoriesList() {
@@ -136,4 +136,4 @@ ResponsibilityService.ctorParameters = () => [
136
136
  { type: AuthService },
137
137
  { type: Configurations, decorators: [{ type: Optional }] }
138
138
  ];
139
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzcG9uc2liaWxpdHkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3dvcmtmbG93LXNlcnZpY2VzL3Jlc3BvbnNpYmlsaXR5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQWMsTUFBTSxzQkFBc0IsQ0FBQztBQUMzRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFNN0MsTUFBTSxPQUFPLHFCQUFxQjtJQUloQyxZQUFvQixJQUFnQixFQUFVLFdBQXdCLEVBQWMsTUFBdUI7UUFBdkYsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUFVLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBRnRFLGdCQUFXLEdBQUcsRUFBRSxDQUFDO1FBaUhqQixtQkFBYyxHQUFVLEVBQUUsQ0FBQztRQUMzQixrQkFBYSxHQUFVLEVBQUUsQ0FBQztRQUMxQiw4QkFBeUIsR0FBVSxFQUFFLENBQUM7UUFoSHBDLElBQUksTUFBTSxFQUFFO1lBQ1YsSUFBSSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDO1NBRTdCO0lBQ0gsQ0FBQztJQUVELDJCQUEyQixDQUFDLE1BQWtCO1FBQzVDLE1BQU0sT0FBTyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLHFCQUFxQixFQUFFLENBQUMsQ0FBQztRQUN6RixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFRLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxHQUFHLDBCQUEwQixFQUFFO1lBQy9FLE1BQU0sRUFBRSxPQUFPO1NBQ2QsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0QixDQUFDO0lBR0QscUJBQXFCLENBQUMsTUFBbUI7UUFDdkMsTUFBTSxPQUFPLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxDQUFDO1FBQ3pGLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQVEsSUFBSSxDQUFDLEdBQUcsQ0FBQyxlQUFlLEdBQUcscUNBQXFDLEVBQUU7WUFDNUYsTUFBTSxFQUFHLE9BQU87U0FDZixDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxvQkFBb0I7UUFDbEIsTUFBTSxPQUFPLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxDQUFDO1FBQ3pGLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQVEsSUFBSSxDQUFDLEdBQUcsQ0FBQyxlQUFlLEdBQUcsbUJBQW1CLEVBQUU7WUFDeEUsT0FBTztTQUNSLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQUVELHFCQUFxQixDQUFDLE1BQWtCO1FBQ3RDLE1BQU0sT0FBTyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLHFCQUFxQixFQUFFLENBQUMsQ0FBQztRQUN6RixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFRLElBQUksQ0FBQyxHQUFHLENBQUMsZUFBZSxHQUFHLFFBQVEsRUFBRTtZQUMvRCxNQUFNLEVBQUUsT0FBTztTQUNkLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQUVELGdCQUFnQixDQUFDLE1BQWtCO1FBQ2pDLE1BQU0sT0FBTyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLHFCQUFxQixFQUFFLENBQUMsQ0FBQztRQUN6RixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFRLElBQUksQ0FBQyxHQUFHLENBQUMsZUFBZSxHQUFHLGdDQUFnQyxFQUFFO1lBQ3ZGLE1BQU0sRUFBRSxPQUFPO1NBQ2QsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0QixDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsTUFBTSxPQUFPLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxDQUFDO1FBQ3pGLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQVEsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEdBQUcscUNBQXFDLEVBQUU7WUFDeEYsT0FBTztTQUNSLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQUNELGVBQWUsQ0FBQyxNQUFpQjtRQUMvQixNQUFNLE9BQU8sR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLENBQUM7UUFDekYsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBUSxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsR0FBRyxnQ0FBZ0MsRUFBRTtZQUNyRixNQUFNLEVBQUUsT0FBTztTQUNkLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQUNELHlCQUF5QixDQUFDLE1BQWlCO1FBQ3pDLE1BQU0sT0FBTyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLHFCQUFxQixFQUFFLENBQUMsQ0FBQztRQUN6RixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFRLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxHQUFHLHFDQUFxQyxFQUFFO1lBQzFGLE1BQU0sRUFBRSxPQUFPO1NBQ2QsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0QixDQUFDO0lBQ0QsWUFBWTtRQUNWLE1BQU0sT0FBTyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLHFCQUFxQixFQUFFLENBQUMsQ0FBQztRQUN6RixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFRLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxHQUFHLG9CQUFvQixFQUFFO1lBQ3hFLE9BQU87U0FDUixDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3BCLENBQUM7SUFFRCw0QkFBNEI7UUFDMUIsTUFBTSxPQUFPLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxDQUFDO1FBQ3pGLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQVEsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEdBQUcsMENBQTBDLEVBQUU7WUFDOUYsT0FBTztTQUNSLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDcEIsQ0FBQztJQUVELHVCQUF1QixDQUFDLEtBQVMsRUFBRSxXQUFlO1FBQ2hELE1BQU0sT0FBTyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLHFCQUFxQixFQUFFLENBQUMsQ0FBQztRQUN6RixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxHQUFHLDJDQUEyQyxHQUFHLFdBQVcsR0FBRyxTQUFTLEdBQUcsS0FBSyxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUM1SSxDQUFDO0lBRUQsYUFBYSxDQUFDLFlBQWdCO1FBRTVCLE1BQU0sT0FBTyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLHFCQUFxQixFQUFFLENBQUMsQ0FBQztRQUN6RixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBYyxHQUFHLGNBQWMsRUFBRSxZQUFZLEVBQUUsRUFBQyxPQUFPLEVBQUMsQ0FBQyxDQUFDO0lBQzNGLENBQUM7SUFDRCxhQUFhLENBQUMsWUFBZ0IsRUFBRSxTQUFhLEVBQUUsVUFBYztRQUUzRCxNQUFNLE9BQU8sR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLENBQUM7UUFDekYsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQWMsR0FBRyx3QkFBd0IsR0FBRyxTQUFTLEdBQUcsZUFBZSxFQUFFLFlBQVksRUFBRyxFQUFDLE9BQU8sRUFBQyxDQUFDLENBQUM7SUFDcEksQ0FBQztJQUVELGtCQUFrQixDQUFDLFFBQVk7UUFFN0IsTUFBTSxPQUFPLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxDQUFDO1FBQ3pGLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEdBQUcsaUNBQWlDLEdBQUcsUUFBUSxFQUFHLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFM0gsQ0FBQztJQUVELHFCQUFxQixDQUFDLFlBQWdCO1FBRXBDLE1BQU0sT0FBTyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLHFCQUFxQixFQUFFLENBQUMsQ0FBQztRQUN6RixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBYyxHQUFHLGVBQWUsRUFBRSxZQUFZLEVBQUcsRUFBQyxPQUFPLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUU1RyxDQUFDO0lBRUQsWUFBWSxDQUFDLE9BQVksRUFBRSxHQUFRO1FBQ2pDLDRGQUE0RjtRQUM1Rix5SkFBeUo7UUFDekosT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBTSxJQUFJLENBQUMsR0FBRyxDQUFDLGtCQUFrQixHQUFHLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBT0Qsc0JBQXNCLENBQUMsRUFBTztRQUU1QixNQUFNLE9BQU8sR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLENBQUM7UUFDekYsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBUSxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsR0FBRyx5Q0FBeUMsR0FBQyxFQUFFLEVBQ2hHLEVBQUUsT0FBTyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELFVBQVUsQ0FBQyxJQUFRO1FBQ2pCLE1BQU0sT0FBTyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLHFCQUFxQixFQUFFLENBQUMsQ0FBQztRQUN6RixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBYyxHQUFHLGFBQWEsRUFBRSxJQUFJLEVBQUcsRUFBQyxPQUFPLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNsRyxDQUFDO0lBR0QscUJBQXFCLENBQUMsT0FBWSxFQUFFLFdBQW9CO1FBQ3RELE1BQU0sT0FBTyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLHFCQUFxQixFQUFFLENBQUMsQ0FBQztRQUN6RixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsaUJBQWlCLEdBQUcsMkNBQTJDLEdBQUcsQ0FBQyxXQUFXLENBQUEsQ0FBQyxDQUFDLGVBQWUsR0FBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRyxFQUFDLE9BQU8sRUFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3pMLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxPQUFZLEVBQUUsRUFBVSxFQUFFLFdBQW9CO1FBQzlELE1BQU0sT0FBTyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLHFCQUFxQixFQUFFLENBQUMsQ0FBQztRQUN6RixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUF3QixJQUFJLENBQUMsR0FBRyxDQUFDLGlCQUFpQixHQUFHLGdFQUFnRSxHQUFDLEVBQUUsR0FBRyxDQUFDLFdBQVcsQ0FBQSxDQUFDLENBQUMsZUFBZSxHQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFHLEVBQUMsT0FBTyxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDeE8sQ0FBQztJQUVELHdCQUF3QixDQUFDLEVBQVU7UUFDakMsTUFBTSxPQUFPLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxDQUFDO1FBQ3pGLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQXdCLElBQUksQ0FBQyxHQUFHLENBQUMsaUJBQWlCLEdBQUcsa0NBQWtDLEdBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFDLE9BQU8sRUFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2pKLENBQUM7Ozs7WUFySkYsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7WUFUUSxVQUFVO1lBSVYsV0FBVztZQURYLGNBQWMsdUJBV29ELFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwSGVhZGVycywgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgcmV0cnkgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IENvbmZpZ3VyYXRpb25zIH0gZnJvbSAnLi4vY29uZmlndXJhdGlvbnMnO1xyXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4vYXV0aC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQXNzZXNzbWVudExpc3QgfSBmcm9tICcuLi9zaGFyZWRDb21wb25lbnRzL2Fzc2Vzc21lbnQtbGlzdC9zZXJ2aWNlL2Fzc2Vzc21lbnQuaW50ZXJmYWNlJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSZXNwb25zaWJpbGl0eVNlcnZpY2Uge1xyXG4gIGVudiAhOiBhbnk7XHJcbiAgZGF0YVBlclBhZ2UgPSAzMDtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LCBwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSwgQE9wdGlvbmFsKCkgY29uZmlnPzogQ29uZmlndXJhdGlvbnMpIHtcclxuICAgIGlmIChjb25maWcpIHtcclxuICAgICAgdGhpcy5lbnYgPSBjb25maWcuZW52Q29uZmlnO1xyXG5cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldFJlc3BvbnNpYmlsaXR5Q2VudGVyTGlzdChwYXJhbXM/Okh0dHBQYXJhbXMpIHtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoJ3Rva2VuJywgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKSk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnlbXT4odGhpcy5lbnYuY29tcGxpYW5jZUdldCArICdyZXNwb25zaWJpbGl0eUNlbnRlclRyZWUnLCB7XHJcbiAgICAgIHBhcmFtcywgaGVhZGVyc1xyXG4gICAgICB9KS5waXBlKHJldHJ5KDIpKTtcclxuICB9XHJcblxyXG5cclxuICBnZXRPcmdhbml6YXRpb25Hcm91cHMocGFyYW1zPzogSHR0cFBhcmFtcykge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldCgndG9rZW4nLCB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueVtdPih0aGlzLmVudi5vcmdhbml6YXRpb25HZXQgKyAnZ3JvdXBzTGlzdCZzdGF0dXM9MSZ0eXBlPWNvbXBsaWFuY2UnLCB7XHJcbiAgICAgIHBhcmFtcywgIGhlYWRlcnMsXHJcbiAgICAgIH0pLnBpcGUocmV0cnkoMikpO1xyXG4gIH1cclxuXHJcbiAgZ2V0T3JnYW5pemF0aW9uVXNlcnMoKSB7XHJcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KCd0b2tlbicsIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKCkpO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55W10+KHRoaXMuZW52Lm9yZ2FuaXphdGlvbkdldCArICdvcmdhbml6YXRpb25Vc2VycycsIHtcclxuICAgICAgICBoZWFkZXJzLFxyXG4gICAgICB9KS5waXBlKHJldHJ5KDIpKTtcclxuICB9XHJcblxyXG4gIGdldE9yZ2FuaXphdGlvblBlb3BsZShwYXJhbXM/Okh0dHBQYXJhbXMpIHtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoJ3Rva2VuJywgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKSk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnlbXT4odGhpcy5lbnYub3JnYW5pemF0aW9uR2V0ICsgJ3Blb3BsZScsIHtcclxuICAgICAgcGFyYW1zLCBoZWFkZXJzXHJcbiAgICAgIH0pLnBpcGUocmV0cnkoMikpO1xyXG4gIH1cclxuXHJcbiAgZ2V0QXNzaWdub3JzTGlzdChwYXJhbXM/Okh0dHBQYXJhbXMpIHtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoJ3Rva2VuJywgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKSk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnlbXT4odGhpcy5lbnYub3JnYW5pemF0aW9uR2V0ICsgJ29yZ2FuaXphdGlvblVzZXJzJmlzT25CZWhhbGY9MScsIHtcclxuICAgICAgcGFyYW1zLCBoZWFkZXJzXHJcbiAgICAgIH0pLnBpcGUocmV0cnkoMikpO1xyXG4gIH1cclxuXHJcbiAgZ2V0Q2F0ZWdvcmllc0xpc3QoKSB7XHJcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KCd0b2tlbicsIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKCkpO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55W10+KHRoaXMuZW52LmNvbXBsaWFuY2VHZXQgKyAnY29tcGxpYW5jZUNhdGVnb3J5L0NhdGVnb3J5TGlzdFRyZWUnLCB7XHJcbiAgICAgICAgaGVhZGVycyxcclxuICAgICAgfSkucGlwZShyZXRyeSgyKSk7XHJcbiAgfVxyXG4gIGdldFByb2dyYW1zTGlzdChwYXJhbXM6SHR0cFBhcmFtcykge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldCgndG9rZW4nLCB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueVtdPih0aGlzLmVudi5jb21wbGlhbmNlR2V0ICsgJ2NvbXBsaWFuY2VDYXRlZ29yeS9wcm9ncmFtTGlzdCcsIHtcclxuICAgICAgcGFyYW1zLCBoZWFkZXJzXHJcbiAgICAgIH0pLnBpcGUocmV0cnkoMikpO1xyXG4gIH1cclxuICBnZXRDYXRlZ29yaWVzVW5kZXJQcm9ncmFtKHBhcmFtczpIdHRwUGFyYW1zKSB7XHJcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KCd0b2tlbicsIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKCkpO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55W10+KHRoaXMuZW52LmNvbXBsaWFuY2VHZXQgKyAnY29tcGxpYW5jZUNhdGVnb3J5L0NhdGVnb3J5TGlzdFRyZWUnLCB7XHJcbiAgICAgIHBhcmFtcywgaGVhZGVyc1xyXG4gICAgICB9KS5waXBlKHJldHJ5KDIpKTtcclxuICB9XHJcbiAgZ2V0QXNzdXJhbmNlKCkge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldCgndG9rZW4nLCB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueVtdPih0aGlzLmVudi5hc3N1cmFuY2VHZXQgKyAnY2F0ZWdvcnkvbGlzdCZpZD0xJywge1xyXG4gICAgICBoZWFkZXJzLFxyXG4gICAgfSkucGlwZShyZXRyeSgyKSk7XHJcbiAgfVxyXG5cclxuICBnZXRBc3N1cmFuY2VGb3JSZXF1aXJlc0F1ZGl0KCkge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldCgndG9rZW4nLCB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueVtdPih0aGlzLmVudi5hc3N1cmFuY2VBcGkgKyAnQXVkaXQvQ2F0ZWdvcnkvTGlzdC8/bW9kZT1lbnRydXN0X21vZHVsZScsIHtcclxuICAgICAgaGVhZGVycyxcclxuICAgIH0pLnBpcGUocmV0cnkoMikpO1xyXG4gIH1cclxuXHJcbiAgZ2V0UkNEZXRhaWxzT2ZGcmFtZXdvcmsocmNfaWQ6YW55LCBjYXRlZ29yeV9pZDphbnkpIHtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoJ3Rva2VuJywgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKSk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLmVudi5jb21wbGlhbmNlR2V0ICsgJ2NvbXBsaWFuY2VDYXRlZ29yeS9DYXRlZ29yeVJDVHJlZUJ5SWQmaWQ9JyArIGNhdGVnb3J5X2lkICsgJyZyY19pZD0nICsgcmNfaWQsIHsgaGVhZGVycyB9KTtcclxuICB9XHJcblxyXG4gIHN1Ym1pdEVudHJ1c3QoZW50cnVzdF9ib2R5OmFueSl7XHJcblxyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldCgndG9rZW4nLCB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdCh0aGlzLmVudi5jb21wbGlhbmNlUG9zdCArICdjcmVhdGVSZXBvcnQnLCBlbnRydXN0X2JvZHksIHtoZWFkZXJzfSk7XHJcbiAgfVxyXG4gIHVwZGF0ZUVudHJ1c3QoZW50cnVzdF9ib2R5OmFueSwgb2JqZWN0X2lkOmFueSwgaXNEZWxlZ2F0ZTphbnkpe1xyXG5cclxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoJ3Rva2VuJywgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKSk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QodGhpcy5lbnYuY29tcGxpYW5jZVBvc3QgKyAnY3JlYXRlUmVwb3J0JnJlcG9ydElkPScgKyBvYmplY3RfaWQgKyAnJmlzRGVsZWdhdGU9MCcsIGVudHJ1c3RfYm9keSwgIHtoZWFkZXJzfSk7XHJcbiAgfVxyXG4gIFxyXG4gIGVkaXRSZXNwb25zaWJpbGl0eShvYmplY3RJZDphbnkpe1xyXG5cclxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoJ3Rva2VuJywgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKSk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLmVudi5jb21wbGlhbmNlR2V0ICsgJ2NvbXBsaWFuY2VSZXBvcnQvcmVwb3J0QnlJZCZpZD0nICsgb2JqZWN0SWQgLCB7IGhlYWRlcnMgfSkucGlwZShyZXRyeSgyKSk7XHJcblxyXG4gIH1cclxuXHJcbiAgYWRkQnVsa1Jlc3BvbnNpYmlsaXR5KGVudHJ1c3RfYm9keTphbnkpe1xyXG5cclxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoJ3Rva2VuJywgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKSk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QodGhpcy5lbnYuY29tcGxpYW5jZVBvc3QgKyAnaW1wb3J0L2NyZWF0ZScsIGVudHJ1c3RfYm9keSwgIHtoZWFkZXJzfSkucGlwZShyZXRyeSgyKSk7XHJcblxyXG4gIH1cclxuXHJcbiAgdXBsb2FkVG9Ob2RlKHBheWxvYWQ6IGFueSwgZGVzOiBhbnkpIHtcclxuICAgIC8vIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoJ3Rva2VuJywgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKSk7XHJcbiAgICAvLyByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55W10+KHRoaXMuZW52LmZpbGVVcGxvYWRFbmRQb2ludCArICdyaXNrL3Jlc3BvbnNpYmlsaXR5Q2VudGVyTGlzdCcsIHsgcmNfaWRfYXJyOiByY0FycmF5ID8/IFtdIH0sIHsgaGVhZGVycyB9KS5waXBlKHJldHJ5KDIpKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KHRoaXMuZW52LmZpbGVVcGxvYWRFbmRQb2ludCArIGRlcywgcGF5bG9hZCk7XHJcbiAgfVxyXG5cclxuICBmaWxlc1VwbG9hZGluZzogYW55W10gPSBbXTtcclxuICBmaWxlc1VwbG9hZGVkOiBhbnlbXSA9IFtdO1xyXG4gIGZpbGVzVXBsb2FkZWRBbmRVcGxvYWRpbmc6IGFueVtdID0gW107XHJcblxyXG5cclxuICBnZXRDYXRlZ29yeURldGFpbHNCeUlkKGlkOiBhbnkpIHtcclxuXHJcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KCd0b2tlbicsIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKCkpO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55W10+KHRoaXMuZW52LmNvbXBsaWFuY2VHZXQgKyAnY29tcGxpYW5jZUNhdGVnb3J5L0NhdGVnb3J5VHJlZUJ5SWQmaWQ9JytpZCxcclxuICAgICB7IGhlYWRlcnMsIH0pLnBpcGUocmV0cnkoMikpO1xyXG4gIH1cclxuXHJcbiAgZmlsZVVwbG9hZChmaWxlOmFueSkge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldCgndG9rZW4nLCB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdCh0aGlzLmVudi5jb21wbGlhbmNlUG9zdCArICdmaWxlL3VwbG9hZCcsIGZpbGUsICB7aGVhZGVyc30pLnBpcGUocmV0cnkoMikpO1xyXG4gIH1cclxuXHJcbiBcclxuICBnZXRBc3Nlc3NtZW50Q2F0ZWdvcnkocGF5bG9hZDogYW55LCBwcm9ncmFtX2lkcz86IHN0cmluZykge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldCgndG9rZW4nLCB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdCh0aGlzLmVudi5hc3Nlc3NtZW50RW5wb2ludCArICdjYXRlZ29yeS9saXN0JmlzQ3JlYXRlUmVzcG9uc2liaWxpdHk9dHJ1ZScgKyAocHJvZ3JhbV9pZHM/ICcmcHJvZ3JhbV9pZHM9JysgcHJvZ3JhbV9pZHMgOiAnJyksIHBheWxvYWQsICB7aGVhZGVyc30pLnBpcGUocmV0cnkoMikpO1xyXG4gIH1cclxuXHJcbiAgZ2V0QXNzZXNzbWVudExpc3QocGF5bG9hZDogYW55LCBpZDogc3RyaW5nLCBwcm9ncmFtX2lkcz86IHN0cmluZykge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldCgndG9rZW4nLCB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxBcnJheTxBc3Nlc3NtZW50TGlzdD4+KHRoaXMuZW52LmFzc2Vzc21lbnRFbnBvaW50ICsgJ2Fzc2Vzc21lbnQvc2VsZWN0QXNzZXNzbWVudCZpc0NyZWF0ZVJlc3BvbnNpYmlsaXR5PXRydWUmY2F0aWQ9JytpZCArIChwcm9ncmFtX2lkcz8gJyZwcm9ncmFtX2lkcz0nKyBwcm9ncmFtX2lkcyA6ICcnKSwgcGF5bG9hZCwgIHtoZWFkZXJzfSkucGlwZShyZXRyeSgyKSk7XHJcbiAgfVxyXG5cclxuICBnZXRBc3Nlc3NtZW50RGV0YWlsc0J5SUQoaWQ6IHN0cmluZykge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldCgndG9rZW4nLCB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxBcnJheTxBc3Nlc3NtZW50TGlzdD4+KHRoaXMuZW52LmFzc2Vzc21lbnRFbnBvaW50ICsgJ2Fzc2Vzc21lbnQvZ2V0QXNzZXNzbWVudEJ5SWQmaWQ9JytpZCwge30sIHtoZWFkZXJzfSkucGlwZShyZXRyeSgyKSk7XHJcbiAgfVxyXG5cclxuXHJcbn1cclxuIl19
139
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzcG9uc2liaWxpdHkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3dvcmtmbG93LXNlcnZpY2VzL3Jlc3BvbnNpYmlsaXR5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQWMsTUFBTSxzQkFBc0IsQ0FBQztBQUMzRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFNN0MsTUFBTSxPQUFPLHFCQUFxQjtJQUloQyxZQUFvQixJQUFnQixFQUFVLFdBQXdCLEVBQWMsTUFBdUI7UUFBdkYsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUFVLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBRnRFLGdCQUFXLEdBQUcsRUFBRSxDQUFDO1FBaUhqQixtQkFBYyxHQUFVLEVBQUUsQ0FBQztRQUMzQixrQkFBYSxHQUFVLEVBQUUsQ0FBQztRQUMxQiw4QkFBeUIsR0FBVSxFQUFFLENBQUM7UUFoSHBDLElBQUksTUFBTSxFQUFFO1lBQ1YsSUFBSSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDO1NBRTdCO0lBQ0gsQ0FBQztJQUVELDJCQUEyQixDQUFDLE1BQWtCO1FBQzVDLE1BQU0sT0FBTyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLHFCQUFxQixFQUFFLENBQUMsQ0FBQztRQUN6RixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FB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Q0FBQyxJQUFJLENBQXdCLElBQUksQ0FBQyxHQUFHLENBQUMsaUJBQWlCLEdBQUcsZ0VBQWdFLEdBQUMsRUFBRSxHQUFHLENBQUMsV0FBVyxDQUFBLENBQUMsQ0FBQyxlQUFlLEdBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUcsRUFBQyxPQUFPLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4TyxDQUFDO0lBRUQsd0JBQXdCLENBQUMsRUFBVTtRQUNqQyxNQUFNLE9BQU8sR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLENBQUM7UUFDekYsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBd0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsR0FBRyxrQ0FBa0MsR0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUMsT0FBTyxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDakosQ0FBQzs7OztZQXJKRixVQUFVLFNBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7OztZQVRRLFVBQVU7WUFJVixXQUFXO1lBRFgsY0FBYyx1QkFXb0QsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBIZWFkZXJzLCBIdHRwUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyByZXRyeSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgQ29uZmlndXJhdGlvbnMgfSBmcm9tICcuLi9jb25maWd1cmF0aW9ucyc7XHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi9hdXRoLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBc3Nlc3NtZW50TGlzdCB9IGZyb20gJy4uL3NoYXJlZENvbXBvbmVudHMvYXNzZXNzbWVudC1saXN0L3NlcnZpY2UvYXNzZXNzbWVudC5pbnRlcmZhY2UnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFJlc3BvbnNpYmlsaXR5U2VydmljZSB7XHJcbiAgZW52ICE6IGFueTtcclxuICBkYXRhUGVyUGFnZSA9IDMwO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLCBAT3B0aW9uYWwoKSBjb25maWc/OiBDb25maWd1cmF0aW9ucykge1xyXG4gICAgaWYgKGNvbmZpZykge1xyXG4gICAgICB0aGlzLmVudiA9IGNvbmZpZy5lbnZDb25maWc7XHJcblxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0UmVzcG9uc2liaWxpdHlDZW50ZXJMaXN0KHBhcmFtcz86SHR0cFBhcmFtcykge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldCgndG9rZW4nLCB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueVtdPih0aGlzLmVudi5jb21wbGlhbmNlR2V0ICsgJ3Jlc3BvbnNpYmlsaXR5Q2VudGVyVHJlZScsIHtcclxuICAgICAgcGFyYW1zLCBoZWFkZXJzXHJcbiAgICAgIH0pLnBpcGUocmV0cnkoMikpO1xyXG4gIH1cclxuXHJcblxyXG4gIGdldE9yZ2FuaXphdGlvbkdyb3VwcyhwYXJhbXM/OiBIdHRwUGFyYW1zKSB7XHJcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KCd0b2tlbicsIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKCkpO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55W10+KHRoaXMuZW52Lm9yZ2FuaXphdGlvbkdldCArICdncm91cHNMaXN0JnN0YXR1cz0xJnR5cGU9Y29tcGxpYW5jZScsIHtcclxuICAgICAgcGFyYW1zLCAgaGVhZGVycyxcclxuICAgICAgfSkucGlwZShyZXRyeSgyKSk7XHJcbiAgfVxyXG5cclxuICBnZXRPcmdhbml6YXRpb25Vc2VycygpIHtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoJ3Rva2VuJywgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKSk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnlbXT4odGhpcy5lbnYub3JnYW5pemF0aW9uR2V0ICsgJ29yZ2FuaXphdGlvblVzZXJzJywge1xyXG4gICAgICAgIGhlYWRlcnMsXHJcbiAgICAgIH0pLnBpcGUocmV0cnkoMikpO1xyXG4gIH1cclxuXHJcbiAgZ2V0T3JnYW5pemF0aW9uUGVvcGxlKHBhcmFtcz86SHR0cFBhcmFtcykge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldCgndG9rZW4nLCB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueVtdPih0aGlzLmVudi5vcmdhbml6YXRpb25HZXQgKyAncGVvcGxlJywge1xyXG4gICAgICBwYXJhbXMsIGhlYWRlcnNcclxuICAgICAgfSkucGlwZShyZXRyeSgyKSk7XHJcbiAgfVxyXG5cclxuICBnZXRBc3NpZ25vcnNMaXN0KCkge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldCgndG9rZW4nLCB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueVtdPih0aGlzLmVudi5vcmdhbml6YXRpb25HZXQgKyAnb3JnYW5pemF0aW9uVXNlcnMmaXNPbkJlaGFsZj0xJywge1xyXG4gICAgICAgIGhlYWRlcnMsXHJcbiAgICAgIH0pLnBpcGUocmV0cnkoMikpO1xyXG4gIH1cclxuXHJcbiAgZ2V0Q2F0ZWdvcmllc0xpc3QoKSB7XHJcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KCd0b2tlbicsIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKCkpO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55W10+KHRoaXMuZW52LmNvbXBsaWFuY2VHZXQgKyAnY29tcGxpYW5jZUNhdGVnb3J5L0NhdGVnb3J5TGlzdFRyZWUnLCB7XHJcbiAgICAgICAgaGVhZGVycyxcclxuICAgICAgfSkucGlwZShyZXRyeSgyKSk7XHJcbiAgfVxyXG4gIGdldFByb2dyYW1zTGlzdChwYXJhbXM6SHR0cFBhcmFtcykge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldCgndG9rZW4nLCB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueVtdPih0aGlzLmVudi5jb21wbGlhbmNlR2V0ICsgJ2NvbXBsaWFuY2VDYXRlZ29yeS9wcm9ncmFtTGlzdCcsIHtcclxuICAgICAgcGFyYW1zLCBoZWFkZXJzXHJcbiAgICAgIH0pLnBpcGUocmV0cnkoMikpO1xyXG4gIH1cclxuICBnZXRDYXRlZ29yaWVzVW5kZXJQcm9ncmFtKHBhcmFtczpIdHRwUGFyYW1zKSB7XHJcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KCd0b2tlbicsIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKCkpO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55W10+KHRoaXMuZW52LmNvbXBsaWFuY2VHZXQgKyAnY29tcGxpYW5jZUNhdGVnb3J5L0NhdGVnb3J5TGlzdFRyZWUnLCB7XHJcbiAgICAgIHBhcmFtcywgaGVhZGVyc1xyXG4gICAgICB9KS5waXBlKHJldHJ5KDIpKTtcclxuICB9XHJcbiAgZ2V0QXNzdXJhbmNlKCkge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldCgndG9rZW4nLCB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueVtdPih0aGlzLmVudi5hc3N1cmFuY2VHZXQgKyAnY2F0ZWdvcnkvbGlzdCZpZD0xJywge1xyXG4gICAgICBoZWFkZXJzLFxyXG4gICAgfSkucGlwZShyZXRyeSgyKSk7XHJcbiAgfVxyXG5cclxuICBnZXRBc3N1cmFuY2VGb3JSZXF1aXJlc0F1ZGl0KCkge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldCgndG9rZW4nLCB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueVtdPih0aGlzLmVudi5hc3N1cmFuY2VBcGkgKyAnQXVkaXQvQ2F0ZWdvcnkvTGlzdC8/bW9kZT1lbnRydXN0X21vZHVsZScsIHtcclxuICAgICAgaGVhZGVycyxcclxuICAgIH0pLnBpcGUocmV0cnkoMikpO1xyXG4gIH1cclxuXHJcbiAgZ2V0UkNEZXRhaWxzT2ZGcmFtZXdvcmsocmNfaWQ6YW55LCBjYXRlZ29yeV9pZDphbnkpIHtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoJ3Rva2VuJywgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKSk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLmVudi5jb21wbGlhbmNlR2V0ICsgJ2NvbXBsaWFuY2VDYXRlZ29yeS9DYXRlZ29yeVJDVHJlZUJ5SWQmaWQ9JyArIGNhdGVnb3J5X2lkICsgJyZyY19pZD0nICsgcmNfaWQsIHsgaGVhZGVycyB9KTtcclxuICB9XHJcblxyXG4gIHN1Ym1pdEVudHJ1c3QoZW50cnVzdF9ib2R5OmFueSl7XHJcblxyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldCgndG9rZW4nLCB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdCh0aGlzLmVudi5jb21wbGlhbmNlUG9zdCArICdjcmVhdGVSZXBvcnQnLCBlbnRydXN0X2JvZHksIHtoZWFkZXJzfSk7XHJcbiAgfVxyXG4gIHVwZGF0ZUVudHJ1c3QoZW50cnVzdF9ib2R5OmFueSwgb2JqZWN0X2lkOmFueSwgaXNEZWxlZ2F0ZTphbnkpe1xyXG5cclxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoJ3Rva2VuJywgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKSk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QodGhpcy5lbnYuY29tcGxpYW5jZVBvc3QgKyAnY3JlYXRlUmVwb3J0JnJlcG9ydElkPScgKyBvYmplY3RfaWQgKyAnJmlzRGVsZWdhdGU9MCcsIGVudHJ1c3RfYm9keSwgIHtoZWFkZXJzfSk7XHJcbiAgfVxyXG4gIFxyXG4gIGVkaXRSZXNwb25zaWJpbGl0eShvYmplY3RJZDphbnkpe1xyXG5cclxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoJ3Rva2VuJywgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKSk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldCh0aGlzLmVudi5jb21wbGlhbmNlR2V0ICsgJ2NvbXBsaWFuY2VSZXBvcnQvcmVwb3J0QnlJZCZpZD0nICsgb2JqZWN0SWQgLCB7IGhlYWRlcnMgfSkucGlwZShyZXRyeSgyKSk7XHJcblxyXG4gIH1cclxuXHJcbiAgYWRkQnVsa1Jlc3BvbnNpYmlsaXR5KGVudHJ1c3RfYm9keTphbnkpe1xyXG5cclxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoJ3Rva2VuJywgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKSk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QodGhpcy5lbnYuY29tcGxpYW5jZVBvc3QgKyAnaW1wb3J0L2NyZWF0ZScsIGVudHJ1c3RfYm9keSwgIHtoZWFkZXJzfSkucGlwZShyZXRyeSgyKSk7XHJcblxyXG4gIH1cclxuXHJcbiAgdXBsb2FkVG9Ob2RlKHBheWxvYWQ6IGFueSwgZGVzOiBhbnkpIHtcclxuICAgIC8vIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoJ3Rva2VuJywgdGhpcy5hdXRoU2VydmljZS5nZXRBdXRob3JpemF0aW9uVG9rZW4oKSk7XHJcbiAgICAvLyByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55W10+KHRoaXMuZW52LmZpbGVVcGxvYWRFbmRQb2ludCArICdyaXNrL3Jlc3BvbnNpYmlsaXR5Q2VudGVyTGlzdCcsIHsgcmNfaWRfYXJyOiByY0FycmF5ID8/IFtdIH0sIHsgaGVhZGVycyB9KS5waXBlKHJldHJ5KDIpKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KHRoaXMuZW52LmZpbGVVcGxvYWRFbmRQb2ludCArIGRlcywgcGF5bG9hZCk7XHJcbiAgfVxyXG5cclxuICBmaWxlc1VwbG9hZGluZzogYW55W10gPSBbXTtcclxuICBmaWxlc1VwbG9hZGVkOiBhbnlbXSA9IFtdO1xyXG4gIGZpbGVzVXBsb2FkZWRBbmRVcGxvYWRpbmc6IGFueVtdID0gW107XHJcblxyXG5cclxuICBnZXRDYXRlZ29yeURldGFpbHNCeUlkKGlkOiBhbnkpIHtcclxuXHJcbiAgICBjb25zdCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCkuc2V0KCd0b2tlbicsIHRoaXMuYXV0aFNlcnZpY2UuZ2V0QXV0aG9yaXphdGlvblRva2VuKCkpO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55W10+KHRoaXMuZW52LmNvbXBsaWFuY2VHZXQgKyAnY29tcGxpYW5jZUNhdGVnb3J5L0NhdGVnb3J5VHJlZUJ5SWQmaWQ9JytpZCxcclxuICAgICB7IGhlYWRlcnMsIH0pLnBpcGUocmV0cnkoMikpO1xyXG4gIH1cclxuXHJcbiAgZmlsZVVwbG9hZChmaWxlOmFueSkge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldCgndG9rZW4nLCB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdCh0aGlzLmVudi5jb21wbGlhbmNlUG9zdCArICdmaWxlL3VwbG9hZCcsIGZpbGUsICB7aGVhZGVyc30pLnBpcGUocmV0cnkoMikpO1xyXG4gIH1cclxuXHJcbiBcclxuICBnZXRBc3Nlc3NtZW50Q2F0ZWdvcnkocGF5bG9hZDogYW55LCBwcm9ncmFtX2lkcz86IHN0cmluZykge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldCgndG9rZW4nLCB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdCh0aGlzLmVudi5hc3Nlc3NtZW50RW5wb2ludCArICdjYXRlZ29yeS9saXN0JmlzQ3JlYXRlUmVzcG9uc2liaWxpdHk9dHJ1ZScgKyAocHJvZ3JhbV9pZHM/ICcmcHJvZ3JhbV9pZHM9JysgcHJvZ3JhbV9pZHMgOiAnJyksIHBheWxvYWQsICB7aGVhZGVyc30pLnBpcGUocmV0cnkoMikpO1xyXG4gIH1cclxuXHJcbiAgZ2V0QXNzZXNzbWVudExpc3QocGF5bG9hZDogYW55LCBpZDogc3RyaW5nLCBwcm9ncmFtX2lkcz86IHN0cmluZykge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldCgndG9rZW4nLCB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxBcnJheTxBc3Nlc3NtZW50TGlzdD4+KHRoaXMuZW52LmFzc2Vzc21lbnRFbnBvaW50ICsgJ2Fzc2Vzc21lbnQvc2VsZWN0QXNzZXNzbWVudCZpc0NyZWF0ZVJlc3BvbnNpYmlsaXR5PXRydWUmY2F0aWQ9JytpZCArIChwcm9ncmFtX2lkcz8gJyZwcm9ncmFtX2lkcz0nKyBwcm9ncmFtX2lkcyA6ICcnKSwgcGF5bG9hZCwgIHtoZWFkZXJzfSkucGlwZShyZXRyeSgyKSk7XHJcbiAgfVxyXG5cclxuICBnZXRBc3Nlc3NtZW50RGV0YWlsc0J5SUQoaWQ6IHN0cmluZykge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpLnNldCgndG9rZW4nLCB0aGlzLmF1dGhTZXJ2aWNlLmdldEF1dGhvcml6YXRpb25Ub2tlbigpKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxBcnJheTxBc3Nlc3NtZW50TGlzdD4+KHRoaXMuZW52LmFzc2Vzc21lbnRFbnBvaW50ICsgJ2Fzc2Vzc21lbnQvZ2V0QXNzZXNzbWVudEJ5SWQmaWQ9JytpZCwge30sIHtoZWFkZXJzfSkucGlwZShyZXRyeSgyKSk7XHJcbiAgfVxyXG5cclxuXHJcbn1cclxuIl19