@uiapplibct/ngx-reusa-app-lib 0.0.20 → 0.0.23

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.
@@ -22,16 +22,13 @@ export class HttpErrorInterceptor {
22
22
  }
23
23
  intercept(req, next) {
24
24
  return next.handle(req).pipe(tap(evt => {
25
- console.log("In http intercept tap", evt);
26
25
  if (evt instanceof HttpResponse) {
27
- console.log("Tap is an instanceof httpResponse", req);
28
26
  this.logger.log('[HttpErrorInterceptor] response ->', evt);
29
27
  if (evt.status >= 200 && evt.status < 300) {
30
28
  //this.util.hideLoader();
31
29
  }
32
30
  }
33
31
  }), catchError((error) => {
34
- console.log("In http intercept", error);
35
32
  let errorModel = new ErrorModel();
36
33
  errorModel.msg = 'Something went wrong. Please check your network connection or try again later.';
37
34
  errorModel.timestamp = new Date().toDateString();
@@ -60,8 +57,6 @@ export class HttpErrorInterceptor {
60
57
  case 0:
61
58
  errorModel.msg = 'Connection Problem. Please check your network connection or try again later.';
62
59
  break;
63
- case 200:
64
- return;
65
60
  case 400:
66
61
  errorModel.msg = 'We could not process your request. Please try again later.';
67
62
  break;
@@ -170,4 +165,4 @@ export class HttpErrorInterceptor {
170
165
  providedIn: 'root'
171
166
  }]
172
167
  }], () => [{ type: i1.Router }, { type: i2.UtilService }, { type: i3.NavController }, { type: i4.LoginService }, { type: i5.LoggerService }, { type: i6.MaintenanceService }], null); })();
173
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1lcnJvci1pbnRlcmNlcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvaW50ZXJjZXB0b3JzL2Vycm9yLWludGVyY2VwdG9yL2h0dHAtZXJyb3ItaW50ZXJjZXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQXFELFlBQVksRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ3hILE9BQU8sRUFBYSxVQUFVLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDNUMsT0FBTyxFQUFDLFVBQVUsRUFBRSxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUcvQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFLckQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7OztBQUt6RCxNQUFNLE9BQU8sb0JBQW9CO0lBRS9CLFlBQW1CLE1BQWUsRUFBVSxJQUFrQixFQUFVLEdBQW1CLEVBQVUsRUFBaUIsRUFBVSxNQUFxQixFQUFTLEVBQXVCO1FBQWxLLFdBQU0sR0FBTixNQUFNLENBQVM7UUFBVSxTQUFJLEdBQUosSUFBSSxDQUFjO1FBQVUsUUFBRyxHQUFILEdBQUcsQ0FBZ0I7UUFBVSxPQUFFLEdBQUYsRUFBRSxDQUFlO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUFTLE9BQUUsR0FBRixFQUFFLENBQXFCO0lBQUksQ0FBQztJQUUxTCxTQUFTLENBQUMsR0FBcUIsRUFBRSxJQUFpQjtRQUMxQyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUMxQixHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDVSxPQUFPLENBQUMsR0FBRyxDQUFDLHVCQUF1QixFQUFDLEdBQUcsQ0FBQyxDQUFBO1lBQ3hELElBQUksR0FBRyxZQUFZLFlBQVksRUFBRTtnQkFDNUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxtQ0FBbUMsRUFBQyxHQUFHLENBQUMsQ0FBQTtnQkFDckQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsb0NBQW9DLEVBQUUsR0FBRyxDQUFDLENBQUM7Z0JBQzNELElBQUcsR0FBRyxDQUFDLE1BQU0sSUFBSSxHQUFHLElBQUksR0FBRyxDQUFDLE1BQU0sR0FBRyxHQUFHLEVBQUM7b0JBQ3JDLHlCQUF5QjtpQkFDNUI7YUFDSjtRQUNMLENBQUMsQ0FBQyxFQUNGLFVBQVUsQ0FBRSxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ2xCLE9BQU8sQ0FBQyxHQUFHLENBQUMsbUJBQW1CLEVBQUMsS0FBSyxDQUFDLENBQUE7WUFDdkMsSUFBSSxVQUFVLEdBQWdCLElBQUksVUFBVSxFQUFFLENBQUM7WUFDL0MsVUFBVSxDQUFDLEdBQUcsR0FBRyxnRkFBZ0YsQ0FBQztZQUNsRyxVQUFVLENBQUMsU0FBUyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDaEQsSUFBSSxjQUFjLEdBQWU7Z0JBQzdCLE9BQU8sRUFBRSxJQUFJO2dCQUNiLFNBQVMsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRTtnQkFDbkMsR0FBRyxFQUFFLCtFQUErRTtnQkFDcEYsT0FBTyxFQUFFLEVBQUU7YUFDZCxDQUFDO1lBQ0gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsc0NBQXNDLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDbEUsSUFBSSxLQUFLLFlBQVksaUJBQWlCLEVBQUU7Z0JBQ3RDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxZQUFZLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssWUFBWSxhQUFhLENBQUMsRUFBRTtvQkFDL0UsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsb0NBQW9DLEVBQUUsS0FBSyxDQUFDLENBQUM7b0JBQy9ELElBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxJQUFJLFlBQVksQ0FBQyw2QkFBNkIsSUFBSSxNQUFNLEVBQUM7d0JBQzNILElBQUksQ0FBQyxFQUFFLENBQUMsbUJBQW1CLEVBQUU7NkJBQ3BCLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRTs0QkFDakIsSUFBRyxHQUFHLENBQUMscUJBQXFCLEVBQUU7Z0NBQzFCLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRSxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFBLENBQUEsQ0FBQyxDQUFDLENBQUM7NkJBQy9FO3dCQUFBLENBQUMsQ0FBQyxDQUFDO3FCQUNmO2lCQUNKO3FCQUFNO29CQUNILElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLHlDQUF5QyxLQUFLLENBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO29CQUUvRixRQUFRLEtBQUssQ0FBQyxNQUFNLEVBQUU7d0JBQ2xCLEtBQUssQ0FBQzs0QkFDRixVQUFVLENBQUMsR0FBRyxHQUFHLDhFQUE4RSxDQUFDOzRCQUNoRyxNQUFNO3dCQUNWLEtBQUssR0FBRzs0QkFDSixPQUFPO3dCQUNYLEtBQUssR0FBRzs0QkFDSixVQUFVLENBQUMsR0FBRyxHQUFHLDREQUE0RCxDQUFDOzRCQUM5RSxNQUFNO3dCQUNWLEtBQUssR0FBRyxFQUFPLE9BQU87NEJBQ2xCLFVBQVUsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDOzRCQUN6QixJQUFHLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksaUJBQWlCLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksVUFBVSxDQUFDLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFLEVBQUM7Z0NBQ3RHLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLDhEQUE4RCxFQUFFLFVBQVUsQ0FBQyxDQUFDO2dDQUM5RixNQUFNOzZCQUNUO2lDQUFJO2dDQUNELElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FDL0IsR0FBRyxFQUFFO29DQUNELElBQUcsVUFBVSxDQUFDLEdBQUcsSUFBSSxjQUFjOzJDQUM1QixVQUFVLENBQUMsR0FBRyxJQUFJLGVBQWU7MkNBQ2pDLFVBQVUsQ0FBQyxHQUFHLElBQUksZUFBZTsyQ0FDakMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLGVBQWU7MkNBQ3RDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxlQUFlLEVBQUM7d0NBQzFDLFVBQVUsQ0FBQyxHQUFHLEdBQUcsc0NBQXNDLENBQUM7cUNBQzNEO29DQUNELElBQUksQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUM7b0NBQ2pCLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2dDQUN2QyxDQUFDLENBQ0osQ0FBQzs2QkFDTDs0QkFDRCxNQUFNO3dCQUNWLEtBQUssR0FBRyxFQUFNLFdBQVc7NEJBQ3JCLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDOzRCQUNuQyxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUMsQ0FBQzs0QkFDdEMsTUFBTTt3QkFDVixLQUFLLEdBQUcsQ0FBQyxDQUFLLFdBQVc7d0JBQ3pCLEtBQUssR0FBRyxFQUFNLHNCQUFzQjs0QkFDaEMsVUFBVSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUM7NEJBQ3pCLE1BQU07d0JBQ1YsS0FBSyxHQUFHOzRCQUNKLE1BQU0sV0FBVyxHQUFHLEtBQUssRUFBRSxLQUFLLENBQUM7NEJBQ2pDLElBQUksV0FBVyxJQUFJLE9BQU8sV0FBVyxLQUFLLFFBQVEsRUFBRTtnQ0FDaEQsTUFBTSxVQUFVLEdBQUcsV0FBVyxDQUFDLEdBQUcsQ0FBQztnQ0FDbkMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO29DQUNwRCxVQUFVLENBQUMsR0FBRyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7aUNBQzFDO3FDQUFNLElBQUksT0FBTyxVQUFVLEtBQUssUUFBUSxJQUFJLFVBQVUsRUFBRTtvQ0FDckQsVUFBVSxDQUFDLEdBQUcsR0FBRyxVQUFVLENBQUM7aUNBQy9CO3FDQUFNO29DQUNILFVBQVUsQ0FBQyxHQUFHLEdBQUcsOENBQThDLENBQUM7aUNBQ25FO2dDQUNELFVBQVUsQ0FBQyxPQUFPLEdBQUcsV0FBVyxDQUFDLE9BQU8sSUFBSSxVQUFVLENBQUMsT0FBTyxDQUFDO2dDQUMvRCxVQUFVLENBQUMsU0FBUyxHQUFHLFdBQVcsQ0FBQyxTQUFTLElBQUksVUFBVSxDQUFDLFNBQVMsQ0FBQztnQ0FDckUsVUFBVSxDQUFDLE9BQU8sR0FBRyxXQUFXLENBQUMsT0FBTyxJQUFJLFVBQVUsQ0FBQyxPQUFPLENBQUM7NkJBQ2xFO2lDQUFNO2dDQUNILFVBQVUsQ0FBQyxHQUFHLEdBQUcsOENBQThDLENBQUM7NkJBQ25FOzRCQUNELE1BQU07d0JBQ1YsS0FBSyxHQUFHOzRCQUNKLFVBQVUsQ0FBQyxHQUFHLEdBQUcsdUJBQXVCLENBQUM7NEJBQ3pDLE1BQU07d0JBQ1YsS0FBSyxHQUFHLENBQUM7d0JBQ1QsS0FBSyxHQUFHOzRCQUNKLFVBQVUsQ0FBQyxHQUFHLEdBQUcsMERBQTBELENBQUM7NEJBQzVFLE1BQU07d0JBQ1YsS0FBSyxHQUFHOzRCQUNKLFVBQVUsQ0FBQyxHQUFHLEdBQUcsaURBQWlELENBQUM7NEJBQ25FLE1BQU07d0JBQ1Y7NEJBQ0ksc0RBQXNEOzRCQUN0RCxNQUFNLFFBQVEsR0FBRyxLQUFLLEVBQUUsS0FBSyxDQUFDOzRCQUM5QixJQUFJLFFBQVEsSUFBSSxPQUFPLFFBQVEsS0FBSyxRQUFRLElBQUksUUFBUSxLQUFLLElBQUksRUFBQztnQ0FDOUQsY0FBYyxDQUFDLEdBQUcsR0FBRyxRQUFRLENBQUMsR0FBRyxJQUFJLFFBQVEsQ0FBQyxPQUFPLElBQUksY0FBYyxDQUFDLEdBQUcsQ0FBQztnQ0FDNUUsY0FBYyxDQUFDLE9BQU8sR0FBRyxRQUFRLENBQUMsT0FBTyxJQUFJLFFBQVEsQ0FBQyxXQUFXLElBQUksY0FBYyxDQUFDLE9BQU8sQ0FBQztnQ0FDNUYsY0FBYyxDQUFDLE9BQU8sR0FBRyxRQUFRLENBQUMsT0FBTyxJQUFJLGNBQWMsQ0FBQyxPQUFPLENBQUM7Z0NBQ3BFLGNBQWMsQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDLFNBQVMsSUFBSSxjQUFjLENBQUMsU0FBUyxDQUFBOzZCQUM1RTtpQ0FBTSxJQUFJLE9BQU8sUUFBUSxLQUFLLFFBQVEsRUFBRTtnQ0FDckMsaUVBQWlFO2dDQUNqRSxjQUFjLENBQUMsR0FBRyxHQUFHLFFBQVEsQ0FBQzs2QkFDakM7NEJBQ0QsVUFBVSxHQUFHLGNBQWMsQ0FBQzs0QkFDNUI7Ozs7O2lDQUtLOzRCQUNMLE1BQU07cUJBQ2I7aUJBQ0o7YUFDSjtpQkFBTTtnQkFDSCxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxpREFBaUQsRUFBRSxLQUFLLENBQUMsQ0FBQzthQUMvRTtZQUNELHlCQUF5QjtZQUN6QixPQUFPLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNoQyxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ04sQ0FBQztJQUVELGdCQUFnQjtRQUNaLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDO1lBQzFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUM7WUFDbkMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQztZQUNqQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUN2RCxDQUFDO3FGQS9JUSxvQkFBb0I7dUVBQXBCLG9CQUFvQixXQUFwQixvQkFBb0IsbUJBRm5CLE1BQU07O2lGQUVQLG9CQUFvQjtjQUhoQyxVQUFVO2VBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0h0dHBFdmVudCwgSHR0cEhhbmRsZXIsIEh0dHBJbnRlcmNlcHRvcixIdHRwUmVxdWVzdCxIdHRwUmVzcG9uc2UsSHR0cEVycm9yUmVzcG9uc2V9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7T2JzZXJ2YWJsZSwgdGhyb3dFcnJvcn0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7Y2F0Y2hFcnJvciwgdGFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgTmF2Q29udHJvbGxlciB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbmltcG9ydCB7IEVycm9yTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvRXJyb3JNb2RlbCc7XG5pbXBvcnQgeyBVdGlsU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3V0aWwvdXRpbC5zZXJ2aWNlJztcbmltcG9ydCB7IExvZ2luU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2xvZ2luL2xvZ2luLnNlcnZpY2UnO1xuaW1wb3J0IHsgTG9nZ2VyU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2xvZ2dlci9sb2dnZXIuc2VydmljZSc7XG5pbXBvcnQgeyBNYWludGVuYW5jZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9tYWludGVuYW5jZS9tYWludGVuYW5jZS5zZXJ2aWNlJztcbmltcG9ydCB7IExpYkNvbnN0YW50cyB9IGZyb20gJy4uLy4uL21vZGVscy9MaWJDb25zdGFudHMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBIdHRwRXJyb3JJbnRlcmNlcHRvciBpbXBsZW1lbnRzIEh0dHBJbnRlcmNlcHRvcntcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcm91dGVyIDogUm91dGVyLCBwcml2YXRlIHV0aWwgOiBVdGlsU2VydmljZSwgcHJpdmF0ZSBuYXYgOiBOYXZDb250cm9sbGVyLCBwcml2YXRlIGxzIDogTG9naW5TZXJ2aWNlLCBwcml2YXRlIGxvZ2dlcjogTG9nZ2VyU2VydmljZSwgcHVibGljIG1zIDogTWFpbnRlbmFuY2VTZXJ2aWNlKSB7IH1cblxuICBpbnRlcmNlcHQocmVxOiBIdHRwUmVxdWVzdDxhbnk+LCBuZXh0OiBIdHRwSGFuZGxlcik6IE9ic2VydmFibGU8SHR0cEV2ZW50PGFueT4+IHtcbiAgICAgICAgICByZXR1cm4gbmV4dC5oYW5kbGUocmVxKS5waXBlKFxuICAgICAgICAgICAgdGFwKGV2dCA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiSW4gaHR0cCBpbnRlcmNlcHQgdGFwXCIsZXZ0KVxuICAgICAgICAgICAgICAgIGlmIChldnQgaW5zdGFuY2VvZiBIdHRwUmVzcG9uc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiVGFwIGlzIGFuIGluc3RhbmNlb2YgaHR0cFJlc3BvbnNlXCIscmVxKVxuICAgICAgICAgICAgICAgICAgICB0aGlzLmxvZ2dlci5sb2coJ1tIdHRwRXJyb3JJbnRlcmNlcHRvcl0gcmVzcG9uc2UgLT4nLCBldnQpO1xuICAgICAgICAgICAgICAgICAgICBpZihldnQuc3RhdHVzID49IDIwMCAmJiBldnQuc3RhdHVzIDwgMzAwKXtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vdGhpcy51dGlsLmhpZGVMb2FkZXIoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgY2F0Y2hFcnJvciggKGVycm9yKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJJbiBodHRwIGludGVyY2VwdFwiLGVycm9yKVxuICAgICAgICAgICAgICAgbGV0IGVycm9yTW9kZWwgOiBFcnJvck1vZGVsID0gbmV3IEVycm9yTW9kZWwoKTtcbiAgICAgICAgICAgICAgIGVycm9yTW9kZWwubXNnID0gJ1NvbWV0aGluZyB3ZW50IHdyb25nLiBQbGVhc2UgY2hlY2sgeW91ciBuZXR3b3JrIGNvbm5lY3Rpb24gb3IgdHJ5IGFnYWluIGxhdGVyLic7XG4gICAgICAgICAgICAgICBlcnJvck1vZGVsLnRpbWVzdGFtcCA9IG5ldyBEYXRlKCkudG9EYXRlU3RyaW5nKCk7XG4gICAgICAgICAgICAgICAgbGV0IHRlbXBFcnJvck1vZGVsOiBFcnJvck1vZGVsID0ge1xuICAgICAgICAgICAgICAgICAgICBlcnJvcklkOiAnTkEnLFxuICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXA6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgICAgICAgICAgICAgICAgICAgbXNnOiAnU29tZXRoaW5nIHdlbnQgd3JvbmcuIFBsZWFzZSBjaGVjayB5b3VyIG5ldHdvcmsgY29ubmVjdGlvbiBvciB0cnkgYWdhaW4gbGF0ZXInLFxuICAgICAgICAgICAgICAgICAgICBkZXRhaWxzOiAnJyxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoJ1tIdHRwRXJyb3JJbnRlcmNlcHRvcl0gRXJyb3Igb2NjdXJlZCcsIGVycm9yKTtcbiAgICAgICAgICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgSHR0cEVycm9yUmVzcG9uc2UpIHtcbiAgICAgICAgICAgICAgICBpZiAoKGVycm9yLmVycm9yIGluc3RhbmNlb2YgRXJyb3JFdmVudCkgfHwgKGVycm9yLmVycm9yIGluc3RhbmNlb2YgUHJvZ3Jlc3NFdmVudCkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoXCJbSHR0cEVycm9ySW50ZXJjZXB0b3JdIEVycm9yIEV2ZW50XCIsIGVycm9yKTtcbiAgICAgICAgICAgICAgICAgICAgaWYoKCFyZXEudXJsLmluY2x1ZGVzKCdsb2NhbGhvc3QnKSB8fCB0aGlzLnV0aWwuaXNQbGF5Zm9ybUNhcGFjaXRvcigpKSAmJiBMaWJDb25zdGFudHMubWFpbnRlbmFuY2VNb2RlRmVhdHVyZUVuYWJsZWQgPT0gJ3RydWUnKXtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubXMuY2hlY2tmb3JNYWludGVuYW5jZSgpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYocmVzLmlzQXBwVW5kZXJNYWludGVuYW5jZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5uYXYubmF2aWdhdGVSb290KCdtYWludGVuYW5jZScpLnRoZW4oKCkgPT4ge3dpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKX0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmxvZ2dlci5lcnJvcihgW0h0dHBFcnJvckludGVyY2VwdG9yXSBlcnJvciBzdGF0dXMgOiAke2Vycm9yLnN0YXR1c30gJHtlcnJvci5zdGF0dXNUZXh0fWApO1xuICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChlcnJvci5zdGF0dXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvck1vZGVsLm1zZyA9ICdDb25uZWN0aW9uIFByb2JsZW0uIFBsZWFzZSBjaGVjayB5b3VyIG5ldHdvcmsgY29ubmVjdGlvbiBvciB0cnkgYWdhaW4gbGF0ZXIuJztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMjAwOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgNDAwOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yTW9kZWwubXNnID0gJ1dlIGNvdWxkIG5vdCBwcm9jZXNzIHlvdXIgcmVxdWVzdC4gUGxlYXNlIHRyeSBhZ2FpbiBsYXRlci4nOyAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSA0MDE6ICAgICAgLy9sb2dpblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yTW9kZWwgPSBlcnJvci5lcnJvcjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZigoZXJyb3IuZXJyb3IuZXJyb3IgPT0gJ2ludmFsaWRfcmVxdWVzdCcgJiYgZXJyb3IuZXJyb3Iucm9sZXMgPT0gJ1BSRV9BVVRIJykgfHwgdGhpcy5zaG91bGRTdGF5T25QYWdlKCkpe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxvZ2dlci5lcnJvcihcIltIdHRwRXJyb3JJbnRlcmNlcHRvcl0gaW52YWxpZCByZXF1ZXN0LCBzdGF5aW5nIG9uIHNhbWUgcGFnZVwiLCBlcnJvck1vZGVsKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfWVsc2V7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubmF2Lm5hdmlnYXRlUm9vdChcImxvZ2luXCIpLnRoZW4oXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoZXJyb3JNb2RlbC5tc2cgPT0gJ3VuYXV0aG9yaXplZCcgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8IGVycm9yTW9kZWwubXNnID09ICdpbnZhbGlkX3Rva2VuJyBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgZXJyb3JNb2RlbC5tc2cgPT0gJ3Rva2VuX2V4cGlyZWQnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8IGVycm9yTW9kZWxbJ2Vycm9yJ10gPT0gJ2ludmFsaWRfdG9rZW4nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8IGVycm9yTW9kZWxbJ2Vycm9yJ10gPT0gJ3Rva2VuX2V4cGlyZWQnKXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JNb2RlbC5tc2cgPSAnU2Vzc2lvbiBFeHBpcmVkLiBQbGVhc2UgbG9naW4gYWdhaW4uJztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5scy5sb2dvdXQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnV0aWwuZXJyb3JIYW5kbGVyKGVycm9yTW9kZWwpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgNDAzOiAgICAgLy9mb3JiaWRkZW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnV0aWwuZXJyb3JIYW5kbGVyKGVycm9yTW9kZWwpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubmF2Lm5hdmlnYXRlUm9vdChcInVuYXV0aG9yaXplZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgNDA0OiAgICAgLy9Ob3QgRm91bmRcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgNDIyOiAgICAgLy9VbnByb2Nlc3NhYmxlIEVudGl0eVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yTW9kZWwgPSBlcnJvci5lcnJvcjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgNTAwOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJhd0Vycm9yNTAwID0gZXJyb3I/LmVycm9yO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyYXdFcnJvcjUwMCAmJiB0eXBlb2YgcmF3RXJyb3I1MDAgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGJhY2tlbmRNc2cgPSByYXdFcnJvcjUwMC5tc2c7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGJhY2tlbmRNc2cpICYmIGJhY2tlbmRNc2cubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JNb2RlbC5tc2cgPSBiYWNrZW5kTXNnLmpvaW4oJywgJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGJhY2tlbmRNc2cgPT09ICdzdHJpbmcnICYmIGJhY2tlbmRNc2cpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yTW9kZWwubXNnID0gYmFja2VuZE1zZztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yTW9kZWwubXNnID0gJ1NvbWV0aGluZyB3ZW50IHdyb25nLiBQbGVhc2UgdHJ5IGFnYWluIGxhdGVyJztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvck1vZGVsLmVycm9ySWQgPSByYXdFcnJvcjUwMC5lcnJvcklkIHx8IGVycm9yTW9kZWwuZXJyb3JJZDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JNb2RlbC50aW1lc3RhbXAgPSByYXdFcnJvcjUwMC50aW1lc3RhbXAgfHwgZXJyb3JNb2RlbC50aW1lc3RhbXA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yTW9kZWwuZGV0YWlscyA9IHJhd0Vycm9yNTAwLmRldGFpbHMgfHwgZXJyb3JNb2RlbC5kZXRhaWxzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yTW9kZWwubXNnID0gJ1NvbWV0aGluZyB3ZW50IHdyb25nLiBQbGVhc2UgdHJ5IGFnYWluIGxhdGVyJztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDUwMTpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvck1vZGVsLm1zZyA9ICdGZWF0dXJlIG5vdCBhdmFpbGFibGUnO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOyBcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgNTAyOlxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSA1MDQ6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JNb2RlbC5tc2cgPSAnV2VcXCdyZSBoYXZpbmcgdHJvdWJsZSBjb25uZWN0aW5nLiBQbGVhc2UgdHJ5IGFnYWluIGxhdGVyJztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgNTAzOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yTW9kZWwubXNnID0gJ1RlbXBvcmFyaWx5IHVuYXZhaWxhYmxlLiBQbGVhc2UgdHJ5IGFnYWluIGxhdGVyJztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9lcnJvck1vZGVsID0gZXJyb3IuZXJyb3IgPyBlcnJvci5lcnJvciA6IGVycm9yTW9kZWw7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmF3RXJyb3IgPSBlcnJvcj8uZXJyb3I7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJhd0Vycm9yICYmIHR5cGVvZiByYXdFcnJvciA9PT0gJ29iamVjdCcgJiYgcmF3RXJyb3IgIT09IG51bGwpe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wRXJyb3JNb2RlbC5tc2cgPSByYXdFcnJvci5tc2cgfHwgcmF3RXJyb3IubWVzc2FnZSB8fCB0ZW1wRXJyb3JNb2RlbC5tc2c7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBFcnJvck1vZGVsLmRldGFpbHMgPSByYXdFcnJvci5kZXRhaWxzIHx8IHJhd0Vycm9yLmRlc2NyaXB0aW9uIHx8IHRlbXBFcnJvck1vZGVsLmRldGFpbHM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBFcnJvck1vZGVsLmVycm9ySWQgPSByYXdFcnJvci5lcnJvcklkIHx8IHRlbXBFcnJvck1vZGVsLmVycm9ySWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBFcnJvck1vZGVsLnRpbWVzdGFtcCA9IHJhd0Vycm9yLnRpbWVzdGFtcCB8fCB0ZW1wRXJyb3JNb2RlbC50aW1lc3RhbXBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiByYXdFcnJvciA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlIHNlcnZlciBqdXN0IHNlbnQgYSBzaW1wbGUgdGV4dCBtZXNzYWdlLCB3ZSdsbCB1c2UgdGhhdC5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVtcEVycm9yTW9kZWwubXNnID0gcmF3RXJyb3I7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yTW9kZWwgPSB0ZW1wRXJyb3JNb2RlbDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBlcnJvck1vZGVsID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcklkOiB0eXBlb2YgcmF3RXJyb3IgPT09ICdvYmplY3QnICYmIHJhd0Vycm9yPy5lcnJvcklkID8gcmF3RXJyb3IuZXJyb3JJZCA6ICdOQScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcDogdHlwZW9mIHJhd0Vycm9yID09PSAnb2JqZWN0JyAmJiByYXdFcnJvcj8udGltZXN0YW1wID8gcmF3RXJyb3IudGltZXN0YW1wIDogbmV3IERhdGUoKS50b0RhdGVTdHJpbmcoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXNnOiB0eXBlb2YgcmF3RXJyb3IgPT09ICdzdHJpbmcnID8gJ0FuIGVycm9yIG9jY3VyZWQgd2hpbGUgcHJvY2Vzc2luZyB5b3VyIHJlcXVlc3QuIFBsZWFzZSB0cnkgYWdhaW4gbGF0ZXIuJzogJycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRldGFpbHM6IHR5cGVvZiByYXdFcnJvciA9PT0gJ29iamVjdCcgJiYgcmF3RXJyb3I/LmRldGFpbHMgPyByYXdFcnJvci5kZXRhaWxzIDogJydcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9OyAqL1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoXCJbSHR0cEVycm9ySW50ZXJjZXB0b3JdIHNvbWUgdGhpbmcgZWxzZSBoYXBwZW5lZFwiLCBlcnJvcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvL3RoaXMudXRpbC5oaWRlTG9hZGVyKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihlcnJvck1vZGVsKTtcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHNob3VsZFN0YXlPblBhZ2UoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnJvdXRlci51cmwuaW5jbHVkZXMoJ2FjY291bnQtc3VjY2VzcycpIHx8XG4gICAgICAgICAgICAgICAgdGhpcy5yb3V0ZXIudXJsLmluY2x1ZGVzKCdsYW5kaW5nJykgfHxcbiAgICAgICAgICAgICAgICB0aGlzLnJvdXRlci51cmwuaW5jbHVkZXMoJ2xvZ2luJykgfHxcbiAgICAgICAgICAgICAgICB0aGlzLnJvdXRlci51cmwuaW5jbHVkZXMoJ3dlbGNvbWUtc3BsYXNoJyk7XG4gICAgfVxufVxuIl19
168
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1lcnJvci1pbnRlcmNlcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvaW50ZXJjZXB0b3JzL2Vycm9yLWludGVyY2VwdG9yL2h0dHAtZXJyb3ItaW50ZXJjZXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQXFELFlBQVksRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ3hILE9BQU8sRUFBYSxVQUFVLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDNUMsT0FBTyxFQUFDLFVBQVUsRUFBRSxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUcvQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFLckQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7OztBQUt6RCxNQUFNLE9BQU8sb0JBQW9CO0lBRS9CLFlBQW1CLE1BQWUsRUFBVSxJQUFrQixFQUFVLEdBQW1CLEVBQVUsRUFBaUIsRUFBVSxNQUFxQixFQUFTLEVBQXVCO1FBQWxLLFdBQU0sR0FBTixNQUFNLENBQVM7UUFBVSxTQUFJLEdBQUosSUFBSSxDQUFjO1FBQVUsUUFBRyxHQUFILEdBQUcsQ0FBZ0I7UUFBVSxPQUFFLEdBQUYsRUFBRSxDQUFlO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUFTLE9BQUUsR0FBRixFQUFFLENBQXFCO0lBQUksQ0FBQztJQUUxTCxTQUFTLENBQUMsR0FBcUIsRUFBRSxJQUFpQjtRQUMxQyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUMxQixHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDTixJQUFJLEdBQUcsWUFBWSxZQUFZLEVBQUU7Z0JB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dWxhci9jb3JlJztcbmltcG9ydCB7SHR0cEV2ZW50LCBIdHRwSGFuZGxlciwgSHR0cEludGVyY2VwdG9yLEh0dHBSZXF1ZXN0LEh0dHBSZXNwb25zZSxIdHRwRXJyb3JSZXNwb25zZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtPYnNlcnZhYmxlLCB0aHJvd0Vycm9yfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHtjYXRjaEVycm9yLCB0YXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBOYXZDb250cm9sbGVyIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xuaW1wb3J0IHsgRXJyb3JNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9FcnJvck1vZGVsJztcbmltcG9ydCB7IFV0aWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdXRpbC91dGlsLnNlcnZpY2UnO1xuaW1wb3J0IHsgTG9naW5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbG9naW4vbG9naW4uc2VydmljZSc7XG5pbXBvcnQgeyBMb2dnZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbG9nZ2VyL2xvZ2dlci5zZXJ2aWNlJztcbmltcG9ydCB7IE1haW50ZW5hbmNlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL21haW50ZW5hbmNlL21haW50ZW5hbmNlLnNlcnZpY2UnO1xuaW1wb3J0IHsgTGliQ29uc3RhbnRzIH0gZnJvbSAnLi4vLi4vbW9kZWxzL0xpYkNvbnN0YW50cyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEh0dHBFcnJvckludGVyY2VwdG9yIGltcGxlbWVudHMgSHR0cEludGVyY2VwdG9ye1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyByb3V0ZXIgOiBSb3V0ZXIsIHByaXZhdGUgdXRpbCA6IFV0aWxTZXJ2aWNlLCBwcml2YXRlIG5hdiA6IE5hdkNvbnRyb2xsZXIsIHByaXZhdGUgbHMgOiBMb2dpblNlcnZpY2UsIHByaXZhdGUgbG9nZ2VyOiBMb2dnZXJTZXJ2aWNlLCBwdWJsaWMgbXMgOiBNYWludGVuYW5jZVNlcnZpY2UpIHsgfVxuXG4gIGludGVyY2VwdChyZXE6IEh0dHBSZXF1ZXN0PGFueT4sIG5leHQ6IEh0dHBIYW5kbGVyKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8YW55Pj4ge1xuICAgICAgICAgIHJldHVybiBuZXh0LmhhbmRsZShyZXEpLnBpcGUoXG4gICAgICAgICAgICB0YXAoZXZ0ID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZXZ0IGluc3RhbmNlb2YgSHR0cFJlc3BvbnNlKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubG9nZ2VyLmxvZygnW0h0dHBFcnJvckludGVyY2VwdG9yXSByZXNwb25zZSAtPicsIGV2dCk7XG4gICAgICAgICAgICAgICAgICAgIGlmKGV2dC5zdGF0dXMgPj0gMjAwICYmIGV2dC5zdGF0dXMgPCAzMDApe1xuICAgICAgICAgICAgICAgICAgICAgICAgLy90aGlzLnV0aWwuaGlkZUxvYWRlcigpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBjYXRjaEVycm9yKCAoZXJyb3IpID0+IHtcbiAgICAgICAgICAgICAgIGxldCBlcnJvck1vZGVsIDogRXJyb3JNb2RlbCA9IG5ldyBFcnJvck1vZGVsKCk7XG4gICAgICAgICAgICAgICBlcnJvck1vZGVsLm1zZyA9ICdTb21ldGhpbmcgd2VudCB3cm9uZy4gUGxlYXNlIGNoZWNrIHlvdXIgbmV0d29yayBjb25uZWN0aW9uIG9yIHRyeSBhZ2FpbiBsYXRlci4nO1xuICAgICAgICAgICAgICAgZXJyb3JNb2RlbC50aW1lc3RhbXAgPSBuZXcgRGF0ZSgpLnRvRGF0ZVN0cmluZygpO1xuICAgICAgICAgICAgICAgIGxldCB0ZW1wRXJyb3JNb2RlbDogRXJyb3JNb2RlbCA9IHtcbiAgICAgICAgICAgICAgICAgICAgZXJyb3JJZDogJ05BJyxcbiAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wOiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG4gICAgICAgICAgICAgICAgICAgIG1zZzogJ1NvbWV0aGluZyB3ZW50IHdyb25nLiBQbGVhc2UgY2hlY2sgeW91ciBuZXR3b3JrIGNvbm5lY3Rpb24gb3IgdHJ5IGFnYWluIGxhdGVyJyxcbiAgICAgICAgICAgICAgICAgICAgZGV0YWlsczogJycsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgIHRoaXMubG9nZ2VyLmVycm9yKCdbSHR0cEVycm9ySW50ZXJjZXB0b3JdIEVycm9yIG9jY3VyZWQnLCBlcnJvcik7XG4gICAgICAgICAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEh0dHBFcnJvclJlc3BvbnNlKSB7XG4gICAgICAgICAgICAgICAgaWYgKChlcnJvci5lcnJvciBpbnN0YW5jZW9mIEVycm9yRXZlbnQpIHx8IChlcnJvci5lcnJvciBpbnN0YW5jZW9mIFByb2dyZXNzRXZlbnQpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubG9nZ2VyLmVycm9yKFwiW0h0dHBFcnJvckludGVyY2VwdG9yXSBFcnJvciBFdmVudFwiLCBlcnJvcik7XG4gICAgICAgICAgICAgICAgICAgIGlmKCghcmVxLnVybC5pbmNsdWRlcygnbG9jYWxob3N0JykgfHwgdGhpcy51dGlsLmlzUGxheWZvcm1DYXBhY2l0b3IoKSkgJiYgTGliQ29uc3RhbnRzLm1haW50ZW5hbmNlTW9kZUZlYXR1cmVFbmFibGVkID09ICd0cnVlJyl7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm1zLmNoZWNrZm9yTWFpbnRlbmFuY2UoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKHJlcy5pc0FwcFVuZGVyTWFpbnRlbmFuY2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubmF2Lm5hdmlnYXRlUm9vdCgnbWFpbnRlbmFuY2UnKS50aGVuKCgpID0+IHt3aW5kb3cubG9jYXRpb24ucmVsb2FkKCl9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoYFtIdHRwRXJyb3JJbnRlcmNlcHRvcl0gZXJyb3Igc3RhdHVzIDogJHtlcnJvci5zdGF0dXN9ICR7ZXJyb3Iuc3RhdHVzVGV4dH1gKTtcbiAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoZXJyb3Iuc3RhdHVzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JNb2RlbC5tc2cgPSAnQ29ubmVjdGlvbiBQcm9ibGVtLiBQbGVhc2UgY2hlY2sgeW91ciBuZXR3b3JrIGNvbm5lY3Rpb24gb3IgdHJ5IGFnYWluIGxhdGVyLic7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDQwMDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvck1vZGVsLm1zZyA9ICdXZSBjb3VsZCBub3QgcHJvY2VzcyB5b3VyIHJlcXVlc3QuIFBsZWFzZSB0cnkgYWdhaW4gbGF0ZXIuJzsgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgNDAxOiAgICAgIC8vbG9naW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvck1vZGVsID0gZXJyb3IuZXJyb3I7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoKGVycm9yLmVycm9yLmVycm9yID09ICdpbnZhbGlkX3JlcXVlc3QnICYmIGVycm9yLmVycm9yLnJvbGVzID09ICdQUkVfQVVUSCcpIHx8IHRoaXMuc2hvdWxkU3RheU9uUGFnZSgpKXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoXCJbSHR0cEVycm9ySW50ZXJjZXB0b3JdIGludmFsaWQgcmVxdWVzdCwgc3RheWluZyBvbiBzYW1lIHBhZ2VcIiwgZXJyb3JNb2RlbCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1lbHNle1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm5hdi5uYXZpZ2F0ZVJvb3QoXCJsb2dpblwiKS50aGVuKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGVycm9yTW9kZWwubXNnID09ICd1bmF1dGhvcml6ZWQnIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCBlcnJvck1vZGVsLm1zZyA9PSAnaW52YWxpZF90b2tlbicgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8IGVycm9yTW9kZWwubXNnID09ICd0b2tlbl9leHBpcmVkJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCBlcnJvck1vZGVsWydlcnJvciddID09ICdpbnZhbGlkX3Rva2VuJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCBlcnJvck1vZGVsWydlcnJvciddID09ICd0b2tlbl9leHBpcmVkJyl7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yTW9kZWwubXNnID0gJ1Nlc3Npb24gRXhwaXJlZC4gUGxlYXNlIGxvZ2luIGFnYWluLic7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubHMubG9nb3V0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51dGlsLmVycm9ySGFuZGxlcihlcnJvck1vZGVsKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDQwMzogICAgIC8vZm9yYmlkZGVuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51dGlsLmVycm9ySGFuZGxlcihlcnJvck1vZGVsKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm5hdi5uYXZpZ2F0ZVJvb3QoXCJ1bmF1dGhvcml6ZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDQwNDogICAgIC8vTm90IEZvdW5kXG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDQyMjogICAgIC8vVW5wcm9jZXNzYWJsZSBFbnRpdHlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvck1vZGVsID0gZXJyb3IuZXJyb3I7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDUwMDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByYXdFcnJvcjUwMCA9IGVycm9yPy5lcnJvcjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmF3RXJyb3I1MDAgJiYgdHlwZW9mIHJhd0Vycm9yNTAwID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBiYWNrZW5kTXNnID0gcmF3RXJyb3I1MDAubXNnO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShiYWNrZW5kTXNnKSAmJiBiYWNrZW5kTXNnLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yTW9kZWwubXNnID0gYmFja2VuZE1zZy5qb2luKCcsICcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBiYWNrZW5kTXNnID09PSAnc3RyaW5nJyAmJiBiYWNrZW5kTXNnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvck1vZGVsLm1zZyA9IGJhY2tlbmRNc2c7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvck1vZGVsLm1zZyA9ICdTb21ldGhpbmcgd2VudCB3cm9uZy4gUGxlYXNlIHRyeSBhZ2FpbiBsYXRlcic7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JNb2RlbC5lcnJvcklkID0gcmF3RXJyb3I1MDAuZXJyb3JJZCB8fCBlcnJvck1vZGVsLmVycm9ySWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yTW9kZWwudGltZXN0YW1wID0gcmF3RXJyb3I1MDAudGltZXN0YW1wIHx8IGVycm9yTW9kZWwudGltZXN0YW1wO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvck1vZGVsLmRldGFpbHMgPSByYXdFcnJvcjUwMC5kZXRhaWxzIHx8IGVycm9yTW9kZWwuZGV0YWlscztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvck1vZGVsLm1zZyA9ICdTb21ldGhpbmcgd2VudCB3cm9uZy4gUGxlYXNlIHRyeSBhZ2FpbiBsYXRlcic7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSA1MDE6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JNb2RlbC5tc2cgPSAnRmVhdHVyZSBub3QgYXZhaWxhYmxlJztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsgXG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDUwMjpcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgNTA0OlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yTW9kZWwubXNnID0gJ1dlXFwncmUgaGF2aW5nIHRyb3VibGUgY29ubmVjdGluZy4gUGxlYXNlIHRyeSBhZ2FpbiBsYXRlcic7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDUwMzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvck1vZGVsLm1zZyA9ICdUZW1wb3JhcmlseSB1bmF2YWlsYWJsZS4gUGxlYXNlIHRyeSBhZ2FpbiBsYXRlcic7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vZXJyb3JNb2RlbCA9IGVycm9yLmVycm9yID8gZXJyb3IuZXJyb3IgOiBlcnJvck1vZGVsO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJhd0Vycm9yID0gZXJyb3I/LmVycm9yO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyYXdFcnJvciAmJiB0eXBlb2YgcmF3RXJyb3IgPT09ICdvYmplY3QnICYmIHJhd0Vycm9yICE9PSBudWxsKXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVtcEVycm9yTW9kZWwubXNnID0gcmF3RXJyb3IubXNnIHx8IHJhd0Vycm9yLm1lc3NhZ2UgfHwgdGVtcEVycm9yTW9kZWwubXNnO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wRXJyb3JNb2RlbC5kZXRhaWxzID0gcmF3RXJyb3IuZGV0YWlscyB8fCByYXdFcnJvci5kZXNjcmlwdGlvbiB8fCB0ZW1wRXJyb3JNb2RlbC5kZXRhaWxzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wRXJyb3JNb2RlbC5lcnJvcklkID0gcmF3RXJyb3IuZXJyb3JJZCB8fCB0ZW1wRXJyb3JNb2RlbC5lcnJvcklkO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wRXJyb3JNb2RlbC50aW1lc3RhbXAgPSByYXdFcnJvci50aW1lc3RhbXAgfHwgdGVtcEVycm9yTW9kZWwudGltZXN0YW1wXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgcmF3RXJyb3IgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZSBzZXJ2ZXIganVzdCBzZW50IGEgc2ltcGxlIHRleHQgbWVzc2FnZSwgd2UnbGwgdXNlIHRoYXQuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBFcnJvck1vZGVsLm1zZyA9IHJhd0Vycm9yO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvck1vZGVsID0gdGVtcEVycm9yTW9kZWw7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogZXJyb3JNb2RlbCA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JJZDogdHlwZW9mIHJhd0Vycm9yID09PSAnb2JqZWN0JyAmJiByYXdFcnJvcj8uZXJyb3JJZCA/IHJhd0Vycm9yLmVycm9ySWQgOiAnTkEnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXA6IHR5cGVvZiByYXdFcnJvciA9PT0gJ29iamVjdCcgJiYgcmF3RXJyb3I/LnRpbWVzdGFtcCA/IHJhd0Vycm9yLnRpbWVzdGFtcCA6IG5ldyBEYXRlKCkudG9EYXRlU3RyaW5nKCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1zZzogdHlwZW9mIHJhd0Vycm9yID09PSAnc3RyaW5nJyA/ICdBbiBlcnJvciBvY2N1cmVkIHdoaWxlIHByb2Nlc3NpbmcgeW91ciByZXF1ZXN0LiBQbGVhc2UgdHJ5IGFnYWluIGxhdGVyLic6ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXRhaWxzOiB0eXBlb2YgcmF3RXJyb3IgPT09ICdvYmplY3QnICYmIHJhd0Vycm9yPy5kZXRhaWxzID8gcmF3RXJyb3IuZGV0YWlscyA6ICcnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfTsgKi9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMubG9nZ2VyLmVycm9yKFwiW0h0dHBFcnJvckludGVyY2VwdG9yXSBzb21lIHRoaW5nIGVsc2UgaGFwcGVuZWRcIiwgZXJyb3IpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy90aGlzLnV0aWwuaGlkZUxvYWRlcigpO1xuICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXJyb3JNb2RlbCk7XG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBzaG91bGRTdGF5T25QYWdlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5yb3V0ZXIudXJsLmluY2x1ZGVzKCdhY2NvdW50LXN1Y2Nlc3MnKSB8fFxuICAgICAgICAgICAgICAgIHRoaXMucm91dGVyLnVybC5pbmNsdWRlcygnbGFuZGluZycpIHx8XG4gICAgICAgICAgICAgICAgdGhpcy5yb3V0ZXIudXJsLmluY2x1ZGVzKCdsb2dpbicpIHx8XG4gICAgICAgICAgICAgICAgdGhpcy5yb3V0ZXIudXJsLmluY2x1ZGVzKCd3ZWxjb21lLXNwbGFzaCcpO1xuICAgIH1cbn1cbiJdfQ==
@@ -332,10 +332,12 @@ export class ChangePasswordPage extends BasePage {
332
332
  this.isCSR = false;
333
333
  this.isClaimant = false;
334
334
  this.useNewPasswordPolicy = false;
335
+ this.context = "";
335
336
  }
336
337
  ngOnInit() {
337
338
  this.initializeChangePwdForm();
338
339
  this.user = this.loginService.getUser();
340
+ this.context = this.util.getContextRoot().replace("/", "");
339
341
  this.showChangePassword = this.route.snapshot.queryParamMap.get('changePwd') ? this.route.snapshot.queryParamMap.get('changePwd') : 'false';
340
342
  }
341
343
  initializeChangePwdForm() {
@@ -464,7 +466,7 @@ export class ChangePasswordPage extends BasePage {
464
466
  }
465
467
  }
466
468
  static { this.ɵfac = function ChangePasswordPage_Factory(t) { return new (t || ChangePasswordPage)(i0.ɵɵdirectiveInject(i1.UntypedFormBuilder), i0.ɵɵdirectiveInject(i2.LoginService), i0.ɵɵdirectiveInject(i3.UtilService), i0.ɵɵdirectiveInject(i4.NavController), i0.ɵɵdirectiveInject(i5.ActivatedRoute), i0.ɵɵdirectiveInject(i4.Platform)); }; }
467
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ChangePasswordPage, selectors: [["app-change-password"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 12, vars: 3, consts: [["title", "Change Password", "pageId", "CNGPWD-001"], [3, "formGroup"], ["changePwdFormDirective", "ngForm"], ["color", "primary", 1, "ion-justify-content-center"], ["size-md", "6", "size-lg", "4", "size-xs", "12", "size-sm", "12", "size-xl", "4", 1, "ion-align-self-center"], ["title", "Change Password", 3, "capsLock"], [4, "ngIf"], ["class", "ion-text-center", 4, "ngIf"], [1, "p-pl-2", "p-ml-2", "p-mt-0", 2, "line-height", "1.5", "margin-left", "1rem !important", "list-style-type", "square"], [3, "ngClass", 4, "ngIf"], [3, "ngClass"], [2, "display", "grid"], [1, "p-float-label"], ["inputId", "oldPassword", "appAutofocus", "", 3, "formControl", "toggleMask", "feedback"], ["for", "float-input"], ["inputId", "password", "appendTo", "body", 3, "formControl", "toggleMask"], ["inputId", "confirmPassword", "appendTo", "body", 3, "formControl", "toggleMask"], ["style", "color:var(--ion-color-danger);", 4, "ngIf"], [1, "ion-text-center", "ion-padding-top"], ["shape", "round", "color", "success", "type", "submit", 3, "click"], ["name", "save-outline", "slot", "start"], [2, "color", "var(--ion-color-danger)"], [1, "ion-text-center"], ["name", "shuffle-outline", "slot", "start"], ["name", "analytics-outline", "slot", "start"]], template: function ChangePasswordPage_Template(rf, ctx) { if (rf & 1) {
469
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ChangePasswordPage, selectors: [["app-change-password"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 12, vars: 4, consts: [["title", "Change Password", "pageId", "CNGPWD-001", 3, "context"], [3, "formGroup"], ["changePwdFormDirective", "ngForm"], ["color", "primary", 1, "ion-justify-content-center"], ["size-md", "6", "size-lg", "4", "size-xs", "12", "size-sm", "12", "size-xl", "4", 1, "ion-align-self-center"], ["title", "Change Password", 3, "capsLock"], [4, "ngIf"], ["class", "ion-text-center", 4, "ngIf"], [1, "p-pl-2", "p-ml-2", "p-mt-0", 2, "line-height", "1.5", "margin-left", "1rem !important", "list-style-type", "square"], [3, "ngClass", 4, "ngIf"], [3, "ngClass"], [2, "display", "grid"], [1, "p-float-label"], ["inputId", "oldPassword", "appAutofocus", "", 3, "formControl", "toggleMask", "feedback"], ["for", "float-input"], ["inputId", "password", "appendTo", "body", 3, "formControl", "toggleMask"], ["inputId", "confirmPassword", "appendTo", "body", 3, "formControl", "toggleMask"], ["style", "color:var(--ion-color-danger);", 4, "ngIf"], [1, "ion-text-center", "ion-padding-top"], ["shape", "round", "color", "success", "type", "submit", 3, "click"], ["name", "save-outline", "slot", "start"], [2, "color", "var(--ion-color-danger)"], [1, "ion-text-center"], ["name", "shuffle-outline", "slot", "start"], ["name", "analytics-outline", "slot", "start"]], template: function ChangePasswordPage_Template(rf, ctx) { if (rf & 1) {
468
470
  i0.ɵɵelementStart(0, "ion-header");
469
471
  i0.ɵɵelement(1, "app-header", 0);
470
472
  i0.ɵɵelementEnd();
@@ -473,7 +475,9 @@ export class ChangePasswordPage extends BasePage {
473
475
  i0.ɵɵtemplate(10, ChangePasswordPage_div_10_Template, 54, 30, "div", 6)(11, ChangePasswordPage_div_11_Template, 11, 1, "div", 7);
474
476
  i0.ɵɵelementEnd()()()()()()();
475
477
  } if (rf & 2) {
476
- i0.ɵɵadvance(4);
478
+ i0.ɵɵadvance(1);
479
+ i0.ɵɵproperty("context", ctx.context);
480
+ i0.ɵɵadvance(3);
477
481
  i0.ɵɵproperty("formGroup", ctx.changePwdForm);
478
482
  i0.ɵɵadvance(6);
479
483
  i0.ɵɵproperty("ngIf", ctx.showChangePassword == "false");
@@ -483,7 +487,7 @@ export class ChangePasswordPage extends BasePage {
483
487
  }
484
488
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ChangePasswordPage, [{
485
489
  type: Component,
486
- args: [{ selector: 'app-change-password', template: "<ion-header>\r\n <app-header title=\"Change Password\" pageId=\"CNGPWD-001\">\r\n </app-header>\r\n</ion-header>\r\n\r\n<ion-content>\r\n <app-content>\r\n <form [formGroup]=\"changePwdForm\" #changePwdFormDirective=\"ngForm\">\r\n <ion-grid>\r\n <ion-row color=\"primary\" class=\"ion-justify-content-center\">\r\n <ion-col class=\"ion-align-self-center\" size-md=\"6\" size-lg=\"4\" size-xs=\"12\" size-sm=\"12\" size-xl=\"4\">\r\n \r\n <app-card title=\"Change Password\" (capsLock)=\"capsOn=$event\">\r\n <div *ngIf=\"showChangePassword == 'false'\">\r\n <div>\r\n In order to <strong>protect your account</strong>, make sure your password has:\r\n <ul class=\"p-pl-2 p-ml-2 p-mt-0\" style=\"line-height: 1.5; margin-left: 1rem !important; list-style-type: square;\">\r\n <li [ngClass]=\"!password.hasError('minlength') && password.dirty ? 'success' : 'error'\" *ngIf=\"!useNewPasswordPolicy\">Minimum 8 characters.</li>\r\n <li [ngClass]=\"!password.hasError('maxlength') && password.dirty ? 'success' : 'error'\" *ngIf=\"!useNewPasswordPolicy\">Maximum 15 characters.</li>\r\n <li [ngClass]=\"!password.hasError('minlength') && password.dirty ? 'success' : 'error'\" *ngIf=\"useNewPasswordPolicy\">Minimum 14 characters.</li>\r\n <li [ngClass]=\"!password.hasError('maxlength') && password.dirty ? 'success' : 'error'\" *ngIf=\"useNewPasswordPolicy\">Maximum 21 characters.</li>\r\n <li [ngClass]=\"!password.hasError('hasNumber') && password.dirty ? 'success' : 'error'\">At least 1 number</li>\r\n <li [ngClass]=\"!password.hasError('hasCapitalCase') && password.dirty ? 'success' : 'error'\">At least 1 uppercase letter</li>\r\n <li [ngClass]=\"!password.hasError('hasSmallCase') && password.dirty ? 'success' : 'error'\">At least 1 lowercase letter</li>\r\n <li [ngClass]=\"!password.hasError('hasCsrSpecialCharacters') && password.dirty ? 'success' : 'error'\" *ngIf=\"!loginService.isClaimant()\">At least 2 special characters from following <strong>_ &#64; * $ ! # .</strong></li>\r\n <li [ngClass]=\"!password.hasError('hasClaimantSpecialCharacters') && password.dirty ? 'success' : 'error'\" *ngIf=\"loginService.isClaimant() && !isSameSymbolPolicyForClaimantAndAgency\">At least 1 special characters from following <strong>_ &#64; * $ ! # .</strong></li>\r\n <li [ngClass]=\"!password.hasError('hasClaimantSpecialCharacters') && password.dirty ? 'success' : 'error'\" *ngIf=\"loginService.isClaimant() && isSameSymbolPolicyForClaimantAndAgency\">At least 2 special characters from following <strong>_ &#64; * $ ! # .</strong></li>\r\n </ul>\r\n </div>\r\n <div style=\"display: grid;\">\r\n <span class=\"p-float-label\">\r\n <p-password [formControl]=\"oldPassword\" inputId=\"oldPassword\" [toggleMask]='true' [feedback]='false' appAutofocus></p-password> \r\n <label for=\"float-input\">Current Password</label>\r\n </span>\r\n <mat-error *ngIf=\"oldPassword.hasError('required')\">\r\n Current Password is required.\r\n </mat-error>\r\n <mat-error *ngIf=\"oldPassword.hasError('match')\">\r\n Current Password should not be same as New Password.\r\n </mat-error>\r\n </div>\r\n <br/>\r\n <div style=\"display: grid;\">\r\n <span class=\"p-float-label\">\r\n <p-password [formControl]=\"password\" inputId=\"password\" [toggleMask]='true' appendTo=\"body\">\r\n </p-password> \r\n <label for=\"float-input\">New Password</label>\r\n </span>\r\n <mat-error *ngIf=\"password.hasError('required')\">\r\n New Password is required.\r\n </mat-error>\r\n <mat-error *ngIf=\"password.hasError('notMatch')\">\r\n New Password and Confirm Password did not match.\r\n </mat-error>\r\n <mat-error *ngIf=\"password.hasError('match')\">\r\n Current Password should not be same as New Password.\r\n </mat-error>\r\n </div>\r\n \r\n <br/>\r\n <div style=\"display: grid;\">\r\n <span class=\"p-float-label\">\r\n <p-password [formControl]=\"confirmPassword\" inputId=\"confirmPassword\" [toggleMask]='true' appendTo=\"body\">\r\n </p-password> \r\n <label for=\"float-input\">Confirm Password</label>\r\n </span>\r\n <mat-error *ngIf=\"confirmPassword.hasError('required')\">\r\n Confirm Password is required.\r\n </mat-error>\r\n <mat-error *ngIf=\"confirmPassword.hasError('minlength') && useNewPasswordPolicy\">\r\n Confirm Password should have minimum <strong>14 characters</strong>.\r\n </mat-error>\r\n <mat-error *ngIf=\"confirmPassword.hasError('maxlength') && useNewPasswordPolicy\">\r\n Confirm Password should not have more than <strong>21 characters</strong>.\r\n </mat-error>\r\n <mat-error *ngIf=\"confirmPassword.hasError('minlength') && !useNewPasswordPolicy\">\r\n Confirm Password should have minimum <strong>8 characters</strong>.\r\n </mat-error>\r\n <mat-error *ngIf=\"confirmPassword.hasError('maxlength') && !useNewPasswordPolicy\">\r\n Confirm Password should not have more than <strong>15 characters</strong>.\r\n </mat-error>\r\n <mat-error *ngIf=\"confirmPassword.hasError('notMatch')\">\r\n New Password and Confirm Password did not match.\r\n </mat-error>\r\n <mat-error *ngIf=\"confirmPassword.hasError('match')\">\r\n Current Password should not be same as Confirm Password.\r\n </mat-error>\r\n </div>\r\n \r\n <label *ngIf=\"capsOn\" style=\"color:var(--ion-color-danger);\"><strong>Caps Lock is On</strong></label>\r\n \r\n <div class=\"ion-text-center ion-padding-top\">\r\n <ion-button shape=\"round\" (click)=\"save()\" color=\"success\" type=\"submit\">\r\n <ion-icon name=\"save-outline\" slot=\"start\" ></ion-icon>\r\n Change Password\r\n </ion-button>\r\n </div>\r\n </div>\r\n <div *ngIf=\"showChangePassword == 'true'\" class=\"ion-text-center\">\r\n Your password will expire in <strong *ngIf=\"user\">{{user.daysTillPasswordExpire}}</strong> day(s). Consider changing it now.\r\n <div class=\"ion-text-center ion-padding-top\">\r\n <ion-button shape=\"round\" (click)=\"showChangePassword = 'false'\" color=\"success\" type=\"submit\">\r\n <ion-icon name=\"shuffle-outline\" slot=\"start\" ></ion-icon>\r\n Change Now\r\n </ion-button>\r\n <ion-button shape=\"round\" (click)=\"redirect()\" color=\"success\" type=\"submit\">\r\n <ion-icon name=\"analytics-outline\" slot=\"start\" ></ion-icon>\r\n Dashboard\r\n </ion-button>\r\n </div>\r\n </div>\r\n </app-card>\r\n </ion-col>\r\n </ion-row>\r\n </ion-grid>\r\n </form>\r\n </app-content>\r\n</ion-content>", styles: [":host ::ng-deep .p-inputwrapper,:host ::ng-deep .p-inputtext{width:100%}.error{color:var(--ion-color-danger)}.success{color:var(--ion-color-green)}\n"] }]
490
+ args: [{ selector: 'app-change-password', template: "<ion-header>\r\n <app-header title=\"Change Password\" pageId=\"CNGPWD-001\" [context]=\"context\" >\r\n </app-header>\r\n</ion-header>\r\n\r\n<ion-content>\r\n <app-content>\r\n <form [formGroup]=\"changePwdForm\" #changePwdFormDirective=\"ngForm\">\r\n <ion-grid>\r\n <ion-row color=\"primary\" class=\"ion-justify-content-center\">\r\n <ion-col class=\"ion-align-self-center\" size-md=\"6\" size-lg=\"4\" size-xs=\"12\" size-sm=\"12\" size-xl=\"4\">\r\n \r\n <app-card title=\"Change Password\" (capsLock)=\"capsOn=$event\">\r\n <div *ngIf=\"showChangePassword == 'false'\">\r\n <div>\r\n In order to <strong>protect your account</strong>, make sure your password has:\r\n <ul class=\"p-pl-2 p-ml-2 p-mt-0\" style=\"line-height: 1.5; margin-left: 1rem !important; list-style-type: square;\">\r\n <li [ngClass]=\"!password.hasError('minlength') && password.dirty ? 'success' : 'error'\" *ngIf=\"!useNewPasswordPolicy\">Minimum 8 characters.</li>\r\n <li [ngClass]=\"!password.hasError('maxlength') && password.dirty ? 'success' : 'error'\" *ngIf=\"!useNewPasswordPolicy\">Maximum 15 characters.</li>\r\n <li [ngClass]=\"!password.hasError('minlength') && password.dirty ? 'success' : 'error'\" *ngIf=\"useNewPasswordPolicy\">Minimum 14 characters.</li>\r\n <li [ngClass]=\"!password.hasError('maxlength') && password.dirty ? 'success' : 'error'\" *ngIf=\"useNewPasswordPolicy\">Maximum 21 characters.</li>\r\n <li [ngClass]=\"!password.hasError('hasNumber') && password.dirty ? 'success' : 'error'\">At least 1 number</li>\r\n <li [ngClass]=\"!password.hasError('hasCapitalCase') && password.dirty ? 'success' : 'error'\">At least 1 uppercase letter</li>\r\n <li [ngClass]=\"!password.hasError('hasSmallCase') && password.dirty ? 'success' : 'error'\">At least 1 lowercase letter</li>\r\n <li [ngClass]=\"!password.hasError('hasCsrSpecialCharacters') && password.dirty ? 'success' : 'error'\" *ngIf=\"!loginService.isClaimant()\">At least 2 special characters from following <strong>_ &#64; * $ ! # .</strong></li>\r\n <li [ngClass]=\"!password.hasError('hasClaimantSpecialCharacters') && password.dirty ? 'success' : 'error'\" *ngIf=\"loginService.isClaimant() && !isSameSymbolPolicyForClaimantAndAgency\">At least 1 special characters from following <strong>_ &#64; * $ ! # .</strong></li>\r\n <li [ngClass]=\"!password.hasError('hasClaimantSpecialCharacters') && password.dirty ? 'success' : 'error'\" *ngIf=\"loginService.isClaimant() && isSameSymbolPolicyForClaimantAndAgency\">At least 2 special characters from following <strong>_ &#64; * $ ! # .</strong></li>\r\n </ul>\r\n </div>\r\n <div style=\"display: grid;\">\r\n <span class=\"p-float-label\">\r\n <p-password [formControl]=\"oldPassword\" inputId=\"oldPassword\" [toggleMask]='true' [feedback]='false' appAutofocus></p-password> \r\n <label for=\"float-input\">Current Password</label>\r\n </span>\r\n <mat-error *ngIf=\"oldPassword.hasError('required')\">\r\n Current Password is required.\r\n </mat-error>\r\n <mat-error *ngIf=\"oldPassword.hasError('match')\">\r\n Current Password should not be same as New Password.\r\n </mat-error>\r\n </div>\r\n <br/>\r\n <div style=\"display: grid;\">\r\n <span class=\"p-float-label\">\r\n <p-password [formControl]=\"password\" inputId=\"password\" [toggleMask]='true' appendTo=\"body\">\r\n </p-password> \r\n <label for=\"float-input\">New Password</label>\r\n </span>\r\n <mat-error *ngIf=\"password.hasError('required')\">\r\n New Password is required.\r\n </mat-error>\r\n <mat-error *ngIf=\"password.hasError('notMatch')\">\r\n New Password and Confirm Password did not match.\r\n </mat-error>\r\n <mat-error *ngIf=\"password.hasError('match')\">\r\n Current Password should not be same as New Password.\r\n </mat-error>\r\n </div>\r\n \r\n <br/>\r\n <div style=\"display: grid;\">\r\n <span class=\"p-float-label\">\r\n <p-password [formControl]=\"confirmPassword\" inputId=\"confirmPassword\" [toggleMask]='true' appendTo=\"body\">\r\n </p-password> \r\n <label for=\"float-input\">Confirm Password</label>\r\n </span>\r\n <mat-error *ngIf=\"confirmPassword.hasError('required')\">\r\n Confirm Password is required.\r\n </mat-error>\r\n <mat-error *ngIf=\"confirmPassword.hasError('minlength') && useNewPasswordPolicy\">\r\n Confirm Password should have minimum <strong>14 characters</strong>.\r\n </mat-error>\r\n <mat-error *ngIf=\"confirmPassword.hasError('maxlength') && useNewPasswordPolicy\">\r\n Confirm Password should not have more than <strong>21 characters</strong>.\r\n </mat-error>\r\n <mat-error *ngIf=\"confirmPassword.hasError('minlength') && !useNewPasswordPolicy\">\r\n Confirm Password should have minimum <strong>8 characters</strong>.\r\n </mat-error>\r\n <mat-error *ngIf=\"confirmPassword.hasError('maxlength') && !useNewPasswordPolicy\">\r\n Confirm Password should not have more than <strong>15 characters</strong>.\r\n </mat-error>\r\n <mat-error *ngIf=\"confirmPassword.hasError('notMatch')\">\r\n New Password and Confirm Password did not match.\r\n </mat-error>\r\n <mat-error *ngIf=\"confirmPassword.hasError('match')\">\r\n Current Password should not be same as Confirm Password.\r\n </mat-error>\r\n </div>\r\n \r\n <label *ngIf=\"capsOn\" style=\"color:var(--ion-color-danger);\"><strong>Caps Lock is On</strong></label>\r\n \r\n <div class=\"ion-text-center ion-padding-top\">\r\n <ion-button shape=\"round\" (click)=\"save()\" color=\"success\" type=\"submit\">\r\n <ion-icon name=\"save-outline\" slot=\"start\" ></ion-icon>\r\n Change Password\r\n </ion-button>\r\n </div>\r\n </div>\r\n <div *ngIf=\"showChangePassword == 'true'\" class=\"ion-text-center\">\r\n Your password will expire in <strong *ngIf=\"user\">{{user.daysTillPasswordExpire}}</strong> day(s). Consider changing it now.\r\n <div class=\"ion-text-center ion-padding-top\">\r\n <ion-button shape=\"round\" (click)=\"showChangePassword = 'false'\" color=\"success\" type=\"submit\">\r\n <ion-icon name=\"shuffle-outline\" slot=\"start\" ></ion-icon>\r\n Change Now\r\n </ion-button>\r\n <ion-button shape=\"round\" (click)=\"redirect()\" color=\"success\" type=\"submit\">\r\n <ion-icon name=\"analytics-outline\" slot=\"start\" ></ion-icon>\r\n Dashboard\r\n </ion-button>\r\n </div>\r\n </div>\r\n </app-card>\r\n </ion-col>\r\n </ion-row>\r\n </ion-grid>\r\n </form>\r\n </app-content>\r\n</ion-content>", styles: [":host ::ng-deep .p-inputwrapper,:host ::ng-deep .p-inputtext{width:100%}.error{color:var(--ion-color-danger)}.success{color:var(--ion-color-green)}\n"] }]
487
491
  }], () => [{ type: i1.UntypedFormBuilder }, { type: i2.LoginService }, { type: i3.UtilService }, { type: i4.NavController }, { type: i5.ActivatedRoute }, { type: i4.Platform }], null); })();
488
492
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ChangePasswordPage, { className: "ChangePasswordPage", filePath: "lib\\pages\\common\\change-password\\change-password.page.ts", lineNumber: 18 }); })();
489
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhbmdlLXBhc3N3b3JkLnBhZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmV1c2EtYXBwLWxpYi9zcmMvbGliL3BhZ2VzL2NvbW1vbi9jaGFuZ2UtcGFzc3dvcmQvY2hhbmdlLXBhc3N3b3JkLnBhZ2UudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmV1c2EtYXBwLWxpYi9zcmMvbGliL3BhZ2VzL2NvbW1vbi9jaGFuZ2UtcGFzc3dvcmQvY2hhbmdlLXBhc3N3b3JkLnBhZ2UuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBd0MsVUFBVSxFQUFlLE1BQU0sZ0JBQWdCLENBQUM7QUFHL0YsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFJMUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7O0lDT3hDLDhCQUFzSDtJQUFBLHFDQUFxQjtJQUFBLGlCQUFLOzs7SUFBNUksK0dBQW1GOzs7SUFDdkYsOEJBQXNIO0lBQUEsc0NBQXNCO0lBQUEsaUJBQUs7OztJQUE3SSwrR0FBbUY7OztJQUN2Riw4QkFBcUg7SUFBQSxzQ0FBc0I7SUFBQSxpQkFBSzs7O0lBQTVJLCtHQUFtRjs7O0lBQ3ZGLDhCQUFxSDtJQUFBLHNDQUFzQjtJQUFBLGlCQUFLOzs7SUFBNUksK0dBQW1GOzs7SUFJdkYsOEJBQTBJO0lBQUEsNkRBQTZDO0lBQUEsOEJBQVE7SUFBQSw2QkFBaUI7SUFBQSxpQkFBUyxFQUFBOzs7SUFBck4sNkhBQWtHOzs7SUFDdEcsOEJBQXlMO0lB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QTtZQWNSLGlCQUFXLEVBQUEsRUFBQSxFQUFBLEVBQUEsRUFBQSxFQUFBOztZQXhHYixlQUEyQjtZQUEzQiw2Q0FBMkI7WUFNakIsZUFBbUM7WUFBbkMsd0RBQW1DO1lBcUZuQyxlQUFrQztZQUFsQyx1REFBa0M7OztpRkRqRnpDLGtCQUFrQjtjQUw5QixTQUFTOzJCQUNFLHFCQUFxQjs7a0ZBSXBCLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVbnR5cGVkRm9ybUJ1aWxkZXIsIFVudHlwZWRGb3JtR3JvdXAsIFZhbGlkYXRvcnMsIFZhbGlkYXRvckZuIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgTmF2Q29udHJvbGxlciwgUGxhdGZvcm0gfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XG5pbXBvcnQgeyBBcHBWYWxpZGF0b3JzIH0gZnJvbSAnLi4vLi4vLi4vdmFsaWRhdGlvbnMvQXBwVmFsaWRhdG9ycyc7XG5pbXBvcnQgeyBBcHBSZWdleCB9IGZyb20gJy4uLy4uLy4uL3ZhbGlkYXRpb25zL0FwcFJlZ2V4JztcbmltcG9ydCB7IEJhc2VQYWdlIH0gZnJvbSAnLi4vLi4vQmFzZVBhZ2UnO1xuaW1wb3J0IHsgVXNlck1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL1VzZXJNb2RlbCc7XG5pbXBvcnQgeyBMb2dpblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9sb2dpbi9sb2dpbi5zZXJ2aWNlJztcbmltcG9ydCB7IFV0aWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvdXRpbC91dGlsLnNlcnZpY2UnO1xuaW1wb3J0IHsgTGliQ29uc3RhbnRzIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL0xpYkNvbnN0YW50cyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1jaGFuZ2UtcGFzc3dvcmQnLFxuICB0ZW1wbGF0ZVVybDogJy4vY2hhbmdlLXBhc3N3b3JkLnBhZ2UuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NoYW5nZS1wYXNzd29yZC5wYWdlLnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgQ2hhbmdlUGFzc3dvcmRQYWdlIGV4dGVuZHMgQmFzZVBhZ2UgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIHB1YmxpYyBjYXBzT24gPSBmYWxzZTtcblxuICBjb21tb25WYWxpZGF0b3JzIDogVmFsaWRhdG9yRm5bXSA9IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXBwVmFsaWRhdG9ycy5tYXRjaChBcHBSZWdleC5VUFBFUl9DQVNFX1JFR0VYLCB7aGFzQ2FwaXRhbENhc2UgOiB0cnVlfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFwcFZhbGlkYXRvcnMubWF0Y2goQXBwUmVnZXguTE9XRVJfQ0FTRV9SRUdFWCwge2hhc1NtYWxsQ2FzZSA6IHRydWV9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXBwVmFsaWRhdG9ycy5tYXRjaChBcHBSZWdleC5OVU1CRVJfUkVHRVgsIHtoYXNOdW1iZXIgOiB0cnVlfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF07XG5cbiAgY3NyUGFzc3dvcmRWYWxpZGF0b3JzIDogVmFsaWRhdG9yRm5bXSA9IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBcHBWYWxpZGF0b3JzLm1hdGNoKEFwcFJlZ2V4LkFHRU5DWV9TWU1CT0xfUkVHRVgsIHtoYXNDc3JTcGVjaWFsQ2hhcmFjdGVycyA6IHRydWV9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdO1xuXG4gIGNzckNvbmZpcm1QYXNzd29yZFZhbGlkYXRvcnMgOiBWYWxpZGF0b3JGbltdID0gW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBcHBWYWxpZGF0b3JzLm1hdGNoKEFwcFJlZ2V4LkFHRU5DWV9TWU1CT0xfUkVHRVgsIHtoYXNDc3JTcGVjaWFsQ2hhcmFjdGVycyA6IHRydWV9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXBwVmFsaWRhdG9ycy5lcXVhbCgncGFzc3dvcmQnLCB7bm90TWF0Y2ggOiB0cnVlfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIGNsYWltYW50UGFzc3dvcmRWYWxpZGF0b3JzIDogVmFsaWRhdG9yRm5bXSA9IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXBwVmFsaWRhdG9ycy5tYXRjaCh0aGlzLmlzU2FtZVN5bWJvbFBvbGljeUZvckNsYWltYW50QW5kQWdlbmN5P0FwcFJlZ2V4LkFHRU5DWV9TWU1CT0xfUkVHRVg6QXBwUmVnZXguQ0xBSU1BTlRfU1lNQk9MX1JFR0VYLCB7aGFzQ2xhaW1hbnRTcGVjaWFsQ2hhcmFjdGVycyA6IHRydWV9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXTtcblxuICBjbGFpbWFudENvbmZpcm1QYXNzd29yZFZhbGlkYXRvcnMgOiBWYWxpZGF0b3JGbltdID0gW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFwcFZhbGlkYXRvcnMubWF0Y2godGhpcy5pc1NhbWVTeW1ib2xQb2xpY3lGb3JDbGFpbWFudEFuZEFnZW5jeT9BcHBSZWdleC5BR0VOQ1lfU1lNQk9MX1JFR0VYOkFwcFJlZ2V4LkNMQUlNQU5UX1NZTUJPTF9SRUdFWCwge2hhc0NsYWltYW50U3BlY2lhbENoYXJhY3RlcnMgOiB0cnVlfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXBwVmFsaWRhdG9ycy5lcXVhbCgncGFzc3dvcmQnLCB7bm90TWF0Y2ggOiB0cnVlfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXTtcblxuICBwdWJsaWMgY2hhbmdlUHdkRm9ybSA6IFVudHlwZWRGb3JtR3JvdXA7XG5cbiAgcHVibGljIGhpZGVQYXNzd29yZCA9IHRydWU7XG5cbiAgcHVibGljIGhpZGVDb25maXJtUGFzc3dvcmQgPSB0cnVlO1xuXG4gIHB1YmxpYyBoaWRlT2xkUGFzc3dvcmQgPSB0cnVlO1xuXG4gIHB1YmxpYyB1c2VyIDogVXNlck1vZGVsO1xuXG4gIHB1YmxpYyBzaG93Q2hhbmdlUGFzc3dvcmQgPSAnZmFsc2UnO1xuXG4gIHB1YmxpYyBpc0NTUiA6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHVibGljIGlzQ2xhaW1hbnQgOmJvb2xlYW4gPSBmYWxzZTtcblxuICBwdWJsaWMgdXNlTmV3UGFzc3dvcmRQb2xpY3kgOiBib29sZWFuID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHVibGljIGZiIDogVW50eXBlZEZvcm1CdWlsZGVyLCBwdWJsaWMgbG9naW5TZXJ2aWNlIDogTG9naW5TZXJ2aWNlLCBcbiAgICAgICAgICAgICAgcHVibGljIHV0aWwgOiBVdGlsU2VydmljZSwgcHJpdmF0ZSBuYXY6IE5hdkNvbnRyb2xsZXIsIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgICAgICAgICAgICBwcml2YXRlIHBsYXRmb3JtOiBQbGF0Zm9ybSkge1xuICAgICAgICAgICAgICAgIHN1cGVyKCk7XG4gICAgICAgICAgICAgICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5pbml0aWFsaXplQ2hhbmdlUHdkRm9ybSgpO1xuICAgIHRoaXMudXNlciA9IHRoaXMubG9naW5TZXJ2aWNlLmdldFVzZXIoKTtcbiAgICB0aGlzLnNob3dDaGFuZ2VQYXNzd29yZCA9IHRoaXMucm91dGUuc25hcHNob3QucXVlcnlQYXJhbU1hcC5nZXQoJ2NoYW5nZVB3ZCcpID8gdGhpcy5yb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtTWFwLmdldCgnY2hhbmdlUHdkJykgOiAnZmFsc2UnO1xuICB9XG5cbiAgaW5pdGlhbGl6ZUNoYW5nZVB3ZEZvcm0oKXtcbiAgICB0aGlzLmNoYW5nZVB3ZEZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgICdvbGRQYXNzd29yZCcgOiBbbnVsbCAsIFtdXSxcbiAgICAgICdwYXNzd29yZCc6IFtudWxsLCBbXV0sXG4gICAgICAnY29uZmlybVBhc3N3b3JkJzogW251bGwsIFtdXVxuICAgIH0pO1xuXG4gICAgdGhpcy5wYXNzd29yZC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHYgPT4ge1xuICAgICAgaWYodGhpcy5jb25maXJtUGFzc3dvcmQudmFsdWUpe1xuICAgICAgICB0aGlzLmNvbmZpcm1QYXNzd29yZC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgICB9XG4gICAgICBpZih0aGlzLm9sZFBhc3N3b3JkLnZhbHVlKXtcbiAgICAgICAgdGhpcy5vbGRQYXNzd29yZC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgXG4gICAgdGhpcy5zZXRQYXNzd29yZFZhbGlkYXRvcnMoKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0UGFzc3dvcmRWYWxpZGF0b3JzKCkge1xuICAgIGxldCB2YWxpZGF0b3JzMTogVmFsaWRhdG9yRm5bXSA9IFtWYWxpZGF0b3JzLnJlcXVpcmVkXTtcbiAgICBsZXQgdmFsaWRhdG9yczI6IFZhbGlkYXRvckZuW10gPSBbVmFsaWRhdG9ycy5yZXF1aXJlZF07XG4gICAgbGV0IHZhbGlkYXRvcnMzOiBWYWxpZGF0b3JGbltdID0gW1ZhbGlkYXRvcnMucmVxdWlyZWQsIEFwcFZhbGlkYXRvcnMubm90RXF1YWwoJ3Bhc3N3b3JkJywge21hdGNoIDogdHJ1ZX0pXTtcblxuICAgIHRoaXMuY29tbW9uVmFsaWRhdG9ycy5mb3JFYWNoKHYgPT4gdmFsaWRhdG9yczEucHVzaCh2KSk7XG4gICAgdGhpcy5jb21tb25WYWxpZGF0b3JzLmZvckVhY2godiA9PiB2YWxpZGF0b3JzMi5wdXNoKHYpKTtcblxuICAgIGlmICh0aGlzLmxvZ2luU2VydmljZS5pc0NzcigpKSB7XG4gICAgICB0aGlzLmNzclBhc3N3b3JkVmFsaWRhdG9ycy5mb3JFYWNoKHYgPT4gdmFsaWRhdG9yczEucHVzaCh2KSk7XG4gICAgICB0aGlzLmNzckNvbmZpcm1QYXNzd29yZFZhbGlkYXRvcnMuZm9yRWFjaCh2ID0+IHZhbGlkYXRvcnMyLnB1c2godikpO1xuICAgICAgaWYodGhpcy5pc05ld1Bhc3N3b3JkUG9saWN5RW5hYmxlZCl7XG4gICAgICAgIHRoaXMudXNlTmV3UGFzc3dvcmRQb2xpY3kgPSB0cnVlO1xuICAgICAgICB0aGlzLm5ld1Bhc3N3b3JkUG9saWN5VmFsaWRhdG9ycy5mb3JFYWNoKHYgPT4gdmFsaWRhdG9yczEucHVzaCh2KSk7XG4gICAgICAgIHRoaXMubmV3UGFzc3dvcmRQb2xpY3lWYWxpZGF0b3JzLmZvckVhY2godiA9PiB2YWxpZGF0b3JzMi5wdXNoKHYpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMub2xkUGFzc3dvcmRQb2xpY3lWYWxpZGF0b3JzLmZvckVhY2godiA9PiB2YWxpZGF0b3JzMS5wdXNoKHYpKTtcbiAgICAgICAgdGhpcy5vbGRQYXNzd29yZFBvbGljeVZhbGlkYXRvcnMuZm9yRWFjaCh2ID0+IHZhbGlkYXRvcnMyLnB1c2godikpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodGhpcy5sb2dpblNlcnZpY2UuaXNDbGFpbWFudCgpKSB7XG4gICAgICB0aGlzLmNsYWltYW50UGFzc3dvcmRWYWxpZGF0b3JzLmZvckVhY2godiA9PiB2YWxpZGF0b3JzMS5wdXNoKHYpKTtcbiAgICAgIHRoaXMuY2xhaW1hbnRDb25maXJtUGFzc3dvcmRWYWxpZGF0b3JzLmZvckVhY2godiA9PiB2YWxpZGF0b3JzMi5wdXNoKHYpKTtcbiAgICAgIGlmKHRoaXMuaXNOZXdQYXNzd29yZFBvbGljeUVuYWJsZWRGb3JDbGFpbWFudCl7XG4gICAgICAgIHRoaXMudXNlTmV3UGFzc3dvcmRQb2xpY3kgPSB0cnVlO1xuICAgICAgICB0aGlzLm5ld1Bhc3N3b3JkUG9saWN5VmFsaWRhdG9ycy5mb3JFYWNoKHYgPT4gdmFsaWRhdG9yczEucHVzaCh2KSk7XG4gICAgICAgIHRoaXMubmV3UGFzc3dvcmRQb2xpY3lWYWxpZGF0b3JzLmZvckVhY2godiA9PiB2YWxpZGF0b3JzMi5wdXNoKHYpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMub2xkUGFzc3dvcmRQb2xpY3lWYWxpZGF0b3JzLmZvckVhY2godiA9PiB2YWxpZGF0b3JzMS5wdXNoKHYpKTtcbiAgICAgICAgdGhpcy5vbGRQYXNzd29yZFBvbGljeVZhbGlkYXRvcnMuZm9yRWFjaCh2ID0+IHZhbGlkYXRvcnMyLnB1c2godikpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNsYWltYW50UGFzc3dvcmRWYWxpZGF0b3JzLmZvckVhY2godiA9PiB2YWxpZGF0b3JzMS5wdXNoKHYpKTtcbiAgICAgIHRoaXMuY2xhaW1hbnRDb25maXJtUGFzc3dvcmRWYWxpZGF0b3JzLmZvckVhY2godiA9PiB2YWxpZGF0b3JzMi5wdXNoKHYpKTtcbiAgICAgIGlmKHRoaXMuaXNOZXdQYXNzd29yZFBvbGljeUVuYWJsZWRGb3JFbXBsb3llcil7XG4gICAgICAgIHRoaXMudXNlTmV3UGFzc3dvcmRQb2xpY3kgPSB0cnVlO1xuICAgICAgICB0aGlzLm5ld1Bhc3N3b3JkUG9saWN5VmFsaWRhdG9ycy5mb3JFYWNoKHYgPT4gdmFsaWRhdG9yczEucHVzaCh2KSk7XG4gICAgICAgIHRoaXMubmV3UGFzc3dvcmRQb2xpY3lWYWxpZGF0b3JzLmZvckVhY2godiA9PiB2YWxpZGF0b3JzMi5wdXNoKHYpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMub2xkUGFzc3dvcmRQb2xpY3lWYWxpZGF0b3JzLmZvckVhY2godiA9PiB2YWxpZGF0b3JzMS5wdXNoKHYpKTtcbiAgICAgICAgdGhpcy5vbGRQYXNzd29yZFBvbGljeVZhbGlkYXRvcnMuZm9yRWFjaCh2ID0+IHZhbGlkYXRvcnMyLnB1c2godikpO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLnV0aWwuc2V0VmFsaWRhdGlvbih0aGlzLm9sZFBhc3N3b3JkLCB2YWxpZGF0b3JzMyk7XG4gICAgdGhpcy51dGlsLnNldFZhbGlkYXRpb24odGhpcy5wYXNzd29yZCwgdmFsaWRhdG9yczEpO1xuICAgIHRoaXMudXRpbC5zZXRWYWxpZGF0aW9uKHRoaXMuY29uZmlybVBhc3N3b3JkLCB2YWxpZGF0b3JzMik7XG4gIH1cblxuICBnZXQgb2xkUGFzc3dvcmQoKXtcbiAgICByZXR1cm4gdGhpcy5jaGFuZ2VQd2RGb3JtLmdldCgnb2xkUGFzc3dvcmQnKTtcbiAgfVxuXG4gIGdldCBwYXNzd29yZCgpe1xuICAgIHJldHVybiB0aGlzLmNoYW5nZVB3ZEZvcm0uZ2V0KCdwYXNzd29yZCcpO1xuICB9XG5cbiAgZ2V0IGNvbmZpcm1QYXNzd29yZCgpe1xuICAgIHJldHVybiB0aGlzLmNoYW5nZVB3ZEZvcm0uZ2V0KCdjb25maXJtUGFzc3dvcmQnKTtcbiAgfVxuXG4gIHNhdmUoKXtcbiAgICBpZih0aGlzLmNoYW5nZVB3ZEZvcm0uaW52YWxpZCl7XG4gICAgICByZXR1cm4gO1xuICAgIH1cbiAgICB0aGlzLnV0aWwuc2hvd0xvYWRlcigpXG4gICAgICAgICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgdGhpcy5sb2dpblNlcnZpY2UudXBkYXRlUGFzc3dvcmQodGhpcy5vbGRQYXNzd29yZC52YWx1ZS50cmltKCksIHRoaXMucGFzc3dvcmQudmFsdWUudHJpbSgpLCB0aGlzLmNvbmZpcm1QYXNzd29yZC52YWx1ZS50cmltKCkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubG9naW5TZXJ2aWNlLmxvZ291dCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5uYXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAubmF2aWdhdGVSb290KCdsb2dpbicpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnRoZW4oICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudXRpbC5zdWNjZXNzKCdQYXNzd29yZCBDaGFuZ2VkIFN1Y2Nlc3NmdWxseS4gUGxlYXNlIGxvZ2luIGFnYWluLicpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51dGlsLmhpZGVMb2FkZXIoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudXRpbC5oaWRlTG9hZGVyKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnV0aWwuZXJyb3JIYW5kbGVyKGVycik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgIH0pXG4gIH1cblxuICByZWRpcmVjdCgpe1xuICAgIGxldCB1c2VyTW9kZWwgPSB0aGlzLmxvZ2luU2VydmljZS5nZXRVc2VyKCk7XG4gICAgaWYodGhpcy5sb2dpblNlcnZpY2UuaXNDbGFpbWFudCgpKXtcbiAgICAgIGNvbnN0IGlzQ2FwYWNpdG9yID0gdGhpcy5wbGF0Zm9ybS5pcygnY2FwYWNpdG9yJyk7XG4gICAgICBpZihpc0NhcGFjaXRvcil7XG4gICAgICAgIHRoaXMubmF2Lm5hdmlnYXRlUm9vdChcIndlbGNvbWVcIik7XG4gICAgICAgIHRoaXMudXRpbC5oaWRlTG9hZGVyKCk7XG4gICAgICB9IGVsc2V7XG4gICAgICAgIGlmKExpYkNvbnN0YW50cy5sZWdhY3lNZW51ID09ICd0cnVlJyl7XG4gICAgICAgICAgdGhpcy5uYXYubmF2aWdhdGVSb290KFwid2VsY29tZVwiKTtcbiAgICAgICAgdGhpcy51dGlsLmhpZGVMb2FkZXIoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZigoTGliQ29uc3RhbnRzLnNzb0Nvb2tpZU5hbWUgKyBcIlwiKS5pbmNsdWRlcygnVUFUJykgfHwgKExpYkNvbnN0YW50cy5zc29Db29raWVOYW1lICsgXCJcIikuaW5jbHVkZXMoJ1BST0QnKSApe1xuICAgICAgICAgICAgd2luZG93Lm9wZW4oYCR7TGliQ29uc3RhbnRzLm1zd29ya3NVcmx9YCwgJ19zZWxmJyk7XG4gICAgICAgICAgfWVsc2V7XG4gICAgICAgICAgICB3aW5kb3cub3BlbihgJHtMaWJDb25zdGFudHMuYmVuZWZpdHNVcmxFeHRlcm5hbH0vZmFjZXMvdmlydHVhbC9jb250ZXh0c3dpdGNoLnhodG1sP2E9JHt1c2VyTW9kZWwuYWNjZXNzX3Rva2VufSZyPSR7dXNlck1vZGVsLnJlZnJlc2hfdG9rZW59JnY9MjI5OWAsICdfc2VsZicpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSBpZih0aGlzLmxvZ2luU2VydmljZS5pc0VtcGxveWVyKCkgfHwgdGhpcy5sb2dpblNlcnZpY2UuaXNUcGEoKSl7XG4gICAgICB3aW5kb3cub3BlbihgJHtMaWJDb25zdGFudHMudGF4VXJsRXh0ZXJuYWx9L2ZhY2VzL3ZpcnR1YWwvY29udGV4dHN3aXRjaC54aHRtbD9hPSR7dXNlck1vZGVsLmFjY2Vzc190b2tlbn0mcj0ke3VzZXJNb2RlbC5yZWZyZXNoX3Rva2VufSZ2PTIyOTlgLCAnX3NlbGYnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgd2luZG93Lm9wZW4oYCR7TGliQ29uc3RhbnRzLmJlbmVmaXRzVXJsfS9mYWNlcy92aXJ0dWFsL2NvbnRleHRzd2l0Y2gueGh0bWw/YT0ke3VzZXJNb2RlbC5hY2Nlc3NfdG9rZW59JnI9JHt1c2VyTW9kZWwucmVmcmVzaF90b2tlbn0mdj0yMjk5YCwgJ19zZWxmJyk7XG4gICAgfVxuICB9XG5cbn1cbiIsIjxpb24taGVhZGVyPlxyXG4gIDxhcHAtaGVhZGVyIHRpdGxlPVwiQ2hhbmdlIFBhc3N3b3JkXCIgcGFnZUlkPVwiQ05HUFdELTAwMVwiPlxyXG4gIDwvYXBwLWhlYWRlcj5cclxuPC9pb24taGVhZGVyPlxyXG5cclxuPGlvbi1jb250ZW50PlxyXG4gIDxhcHAtY29udGVudD5cclxuICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiY2hhbmdlUHdkRm9ybVwiICNjaGFuZ2VQd2RGb3JtRGlyZWN0aXZlPVwibmdGb3JtXCI+XHJcbiAgICAgIDxpb24tZ3JpZD5cclxuICAgICAgICA8aW9uLXJvdyBjb2xvcj1cInByaW1hcnlcIiBjbGFzcz1cImlvbi1qdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XHJcbiAgICAgICAgICA8aW9uLWNvbCBjbGFzcz1cImlvbi1hbGlnbi1zZWxmLWNlbnRlclwiIHNpemUtbWQ9XCI2XCIgc2l6ZS1sZz1cIjRcIiBzaXplLXhzPVwiMTJcIiBzaXplLXNtPVwiMTJcIiBzaXplLXhsPVwiNFwiPlxyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgPGFwcC1jYXJkIHRpdGxlPVwiQ2hhbmdlIFBhc3N3b3JkXCIgKGNhcHNMb2NrKT1cImNhcHNPbj0kZXZlbnRcIj5cclxuICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic2hvd0NoYW5nZVBhc3N3b3JkID09ICdmYWxzZSdcIj5cclxuICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgIEluIG9yZGVyIHRvIDxzdHJvbmc+cHJvdGVjdCB5b3VyIGFjY291bnQ8L3N0cm9uZz4sIG1ha2Ugc3VyZSB5b3VyIHBhc3N3b3JkIGhhczpcclxuICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwicC1wbC0yIHAtbWwtMiBwLW10LTBcIiBzdHlsZT1cImxpbmUtaGVpZ2h0OiAxLjU7IG1hcmdpbi1sZWZ0OiAxcmVtICFpbXBvcnRhbnQ7IGxpc3Qtc3R5bGUtdHlwZTogc3F1YXJlO1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsaSBbbmdDbGFzc109XCIhcGFzc3dvcmQuaGFzRXJyb3IoJ21pbmxlbmd0aCcpICYmIHBhc3N3b3JkLmRpcnR5ID8gJ3N1Y2Nlc3MnIDogJ2Vycm9yJ1wiICpuZ0lmPVwiIXVzZU5ld1Bhc3N3b3JkUG9saWN5XCI+TWluaW11bSA4IGNoYXJhY3RlcnMuPC9saT5cclxuICAgICAgICAgICAgICAgICAgICA8bGkgW25nQ2xhc3NdPVwiIXBhc3N3b3JkLmhhc0Vycm9yKCdtYXhsZW5ndGgnKSAmJiBwYXNzd29yZC5kaXJ0eSA/ICdzdWNjZXNzJyA6ICdlcnJvcidcIiAqbmdJZj1cIiF1c2VOZXdQYXNzd29yZFBvbGljeVwiPk1heGltdW0gMTUgY2hhcmFjdGVycy48L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsaSBbbmdDbGFzc109XCIhcGFzc3dvcmQuaGFzRXJyb3IoJ21pbmxlbmd0aCcpICYmIHBhc3N3b3JkLmRpcnR5ID8gJ3N1Y2Nlc3MnIDogJ2Vycm9yJ1wiICpuZ0lmPVwidXNlTmV3UGFzc3dvcmRQb2xpY3lcIj5NaW5pbXVtIDE0IGNoYXJhY3RlcnMuPC9saT5cclxuICAgICAgICAgICAgICAgICAgICA8bGkgW25nQ2xhc3NdPVwiIXBhc3N3b3JkLmhhc0Vycm9yKCdtYXhsZW5ndGgnKSAmJiBwYXNzd29yZC5kaXJ0eSA/ICdzdWNjZXNzJyA6ICdlcnJvcidcIiAqbmdJZj1cInVzZU5ld1Bhc3N3b3JkUG9saWN5XCI+TWF4aW11bSAyMSBjaGFyYWN0ZXJzLjwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxpIFtuZ0NsYXNzXT1cIiFwYXNzd29yZC5oYXNFcnJvcignaGFzTnVtYmVyJykgJiYgcGFzc3dvcmQuZGlydHkgID8gJ3N1Y2Nlc3MnIDogJ2Vycm9yJ1wiPkF0IGxlYXN0IDEgbnVtYmVyPC9saT5cclxuICAgICAgICAgICAgICAgICAgICA8bGkgW25nQ2xhc3NdPVwiIXBhc3N3b3JkLmhhc0Vycm9yKCdoYXNDYXBpdGFsQ2FzZScpICYmIHBhc3N3b3JkLmRpcnR5ICA/ICdzdWNjZXNzJyA6ICdlcnJvcidcIj5BdCBsZWFzdCAxIHVwcGVyY2FzZSBsZXR0ZXI8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsaSBbbmdDbGFzc109XCIhcGFzc3dvcmQuaGFzRXJyb3IoJ2hhc1NtYWxsQ2FzZScpICYmIHBhc3N3b3JkLmRpcnR5ICA/ICdzdWNjZXNzJyA6ICdlcnJvcidcIj5BdCBsZWFzdCAxIGxvd2VyY2FzZSBsZXR0ZXI8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsaSBbbmdDbGFzc109XCIhcGFzc3dvcmQuaGFzRXJyb3IoJ2hhc0NzclNwZWNpYWxDaGFyYWN0ZXJzJykgJiYgcGFzc3dvcmQuZGlydHkgID8gJ3N1Y2Nlc3MnIDogJ2Vycm9yJ1wiICpuZ0lmPVwiIWxvZ2luU2VydmljZS5pc0NsYWltYW50KClcIj5BdCBsZWFzdCAyIHNwZWNpYWwgY2hhcmFjdGVycyBmcm9tIGZvbGxvd2luZyA8c3Ryb25nPl8gJiM2NDsgKiAkICEgIyAuPC9zdHJvbmc+PC9saT5cclxuICAgICAgICAgICAgICAgICAgICA8bGkgW25nQ2xhc3NdPVwiIXBhc3N3b3JkLmhhc0Vycm9yKCdoYXNDbGFpbWFudFNwZWNpYWxDaGFyYWN0ZXJzJykgJiYgcGFzc3dvcmQuZGlydHkgID8gJ3N1Y2Nlc3MnIDogJ2Vycm9yJ1wiICpuZ0lmPVwibG9naW5TZXJ2aWNlLmlzQ2xhaW1hbnQoKSAmJiAhaXNTYW1lU3ltYm9sUG9saWN5Rm9yQ2xhaW1hbnRBbmRBZ2VuY3lcIj5BdCBsZWFzdCAxIHNwZWNpYWwgY2hhcmFjdGVycyBmcm9tIGZvbGxvd2luZyA8c3Ryb25nPl8gJiM2NDsgKiAkICEgIyAuPC9zdHJvbmc+PC9saT5cclxuICAgICAgICAgICAgICAgICAgICA8bGkgW25nQ2xhc3NdPVwiIXBhc3N3b3JkLmhhc0Vycm9yKCdoYXNDbGFpbWFudFNwZWNpYWxDaGFyYWN0ZXJzJykgJiYgcGFzc3dvcmQuZGlydHkgID8gJ3N1Y2Nlc3MnIDogJ2Vycm9yJ1wiICpuZ0lmPVwibG9naW5TZXJ2aWNlLmlzQ2xhaW1hbnQoKSAmJiBpc1NhbWVTeW1ib2xQb2xpY3lGb3JDbGFpbWFudEFuZEFnZW5jeVwiPkF0IGxlYXN0IDIgc3BlY2lhbCBjaGFyYWN0ZXJzIGZyb20gZm9sbG93aW5nIDxzdHJvbmc+XyAmIzY0OyAqICQgISAjIC48L3N0cm9uZz48L2xpPlxyXG4gICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGdyaWQ7XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicC1mbG9hdC1sYWJlbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwLXBhc3N3b3JkIFtmb3JtQ29udHJvbF09XCJvbGRQYXNzd29yZFwiIGlucHV0SWQ9XCJvbGRQYXNzd29yZFwiIFt0b2dnbGVNYXNrXT0ndHJ1ZScgW2ZlZWRiYWNrXT0nZmFsc2UnIGFwcEF1dG9mb2N1cz48L3AtcGFzc3dvcmQ+IFxyXG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJmbG9hdC1pbnB1dFwiPkN1cnJlbnQgUGFzc3dvcmQ8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJvbGRQYXNzd29yZC5oYXNFcnJvcigncmVxdWlyZWQnKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIEN1cnJlbnQgUGFzc3dvcmQgaXMgcmVxdWlyZWQuXHJcbiAgICAgICAgICAgICAgICAgIDwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWVycm9yICpuZ0lmPVwib2xkUGFzc3dvcmQuaGFzRXJyb3IoJ21hdGNoJylcIj5cclxuICAgICAgICAgICAgICAgICAgICBDdXJyZW50IFBhc3N3b3JkIHNob3VsZCBub3QgYmUgc2FtZSBhcyBOZXcgUGFzc3dvcmQuXHJcbiAgICAgICAgICAgICAgICAgIDwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8YnIvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGdyaWQ7XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicC1mbG9hdC1sYWJlbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwLXBhc3N3b3JkIFtmb3JtQ29udHJvbF09XCJwYXNzd29yZFwiIGlucHV0SWQ9XCJwYXNzd29yZFwiIFt0b2dnbGVNYXNrXT0ndHJ1ZScgYXBwZW5kVG89XCJib2R5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9wLXBhc3N3b3JkPiBcclxuICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiZmxvYXQtaW5wdXRcIj5OZXcgUGFzc3dvcmQ8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJwYXNzd29yZC5oYXNFcnJvcigncmVxdWlyZWQnKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIE5ldyBQYXNzd29yZCBpcyByZXF1aXJlZC5cclxuICAgICAgICAgICAgICAgICAgPC9tYXQtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJwYXNzd29yZC5oYXNFcnJvcignbm90TWF0Y2gnKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIE5ldyBQYXNzd29yZCBhbmQgQ29uZmlybSBQYXNzd29yZCBkaWQgbm90IG1hdGNoLlxyXG4gICAgICAgICAgICAgICAgICA8L21hdC1lcnJvcj5cclxuICAgICAgICAgICAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cInBhc3N3b3JkLmhhc0Vycm9yKCdtYXRjaCcpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgQ3VycmVudCBQYXNzd29yZCBzaG91bGQgbm90IGJlIHNhbWUgYXMgTmV3IFBhc3N3b3JkLlxyXG4gICAgICAgICAgICAgICAgICA8L21hdC1lcnJvcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gIFxyXG4gICAgICAgICAgICAgICAgPGJyLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBncmlkO1wiPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInAtZmxvYXQtbGFiZWxcIj5cclxuICAgICAgICAgICAgICAgICAgICA8cC1wYXNzd29yZCBbZm9ybUNvbnRyb2xdPVwiY29uZmlybVBhc3N3b3JkXCIgaW5wdXRJZD1cImNvbmZpcm1QYXNzd29yZFwiIFt0b2dnbGVNYXNrXT0ndHJ1ZScgYXBwZW5kVG89XCJib2R5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9wLXBhc3N3b3JkPiBcclxuICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiZmxvYXQtaW5wdXRcIj5Db25maXJtIFBhc3N3b3JkPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWVycm9yICpuZ0lmPVwiY29uZmlybVBhc3N3b3JkLmhhc0Vycm9yKCdyZXF1aXJlZCcpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgQ29uZmlybSBQYXNzd29yZCBpcyByZXF1aXJlZC5cclxuICAgICAgICAgICAgICAgICAgPC9tYXQtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJjb25maXJtUGFzc3dvcmQuaGFzRXJyb3IoJ21pbmxlbmd0aCcpICYmIHVzZU5ld1Bhc3N3b3JkUG9saWN5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgQ29uZmlybSBQYXNzd29yZCBzaG91bGQgaGF2ZSBtaW5pbXVtIDxzdHJvbmc+MTQgY2hhcmFjdGVyczwvc3Ryb25nPi5cclxuICAgICAgICAgICAgICAgICAgPC9tYXQtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJjb25maXJtUGFzc3dvcmQuaGFzRXJyb3IoJ21heGxlbmd0aCcpICYmIHVzZU5ld1Bhc3N3b3JkUG9saWN5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgQ29uZmlybSBQYXNzd29yZCBzaG91bGQgbm90IGhhdmUgbW9yZSB0aGFuIDxzdHJvbmc+MjEgY2hhcmFjdGVyczwvc3Ryb25nPi5cclxuICAgICAgICAgICAgICAgICAgPC9tYXQtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJjb25maXJtUGFzc3dvcmQuaGFzRXJyb3IoJ21pbmxlbmd0aCcpICYmICF1c2VOZXdQYXNzd29yZFBvbGljeVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIENvbmZpcm0gUGFzc3dvcmQgc2hvdWxkIGhhdmUgbWluaW11bSA8c3Ryb25nPjggY2hhcmFjdGVyczwvc3Ryb25nPi5cclxuICAgICAgICAgICAgICAgICAgPC9tYXQtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJjb25maXJtUGFzc3dvcmQuaGFzRXJyb3IoJ21heGxlbmd0aCcpICYmICF1c2VOZXdQYXNzd29yZFBvbGljeVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIENvbmZpcm0gUGFzc3dvcmQgc2hvdWxkIG5vdCBoYXZlIG1vcmUgdGhhbiA8c3Ryb25nPjE1IGNoYXJhY3RlcnM8L3N0cm9uZz4uXHJcbiAgICAgICAgICAgICAgICAgIDwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWVycm9yICpuZ0lmPVwiY29uZmlybVBhc3N3b3JkLmhhc0Vycm9yKCdub3RNYXRjaCcpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgTmV3IFBhc3N3b3JkIGFuZCBDb25maXJtIFBhc3N3b3JkIGRpZCBub3QgbWF0Y2guXHJcbiAgICAgICAgICAgICAgICAgIDwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWVycm9yICpuZ0lmPVwiY29uZmlybVBhc3N3b3JkLmhhc0Vycm9yKCdtYXRjaCcpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgQ3VycmVudCBQYXNzd29yZCBzaG91bGQgbm90IGJlIHNhbWUgYXMgQ29uZmlybSBQYXNzd29yZC5cclxuICAgICAgICAgICAgICAgICAgPC9tYXQtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgPGxhYmVsICpuZ0lmPVwiY2Fwc09uXCIgc3R5bGU9XCJjb2xvcjp2YXIoLS1pb24tY29sb3ItZGFuZ2VyKTtcIj48c3Ryb25nPkNhcHMgTG9jayBpcyBPbjwvc3Ryb25nPjwvbGFiZWw+XHJcbiAgXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW9uLXRleHQtY2VudGVyIGlvbi1wYWRkaW5nLXRvcFwiPlxyXG4gICAgICAgICAgICAgICAgICA8aW9uLWJ1dHRvbiBzaGFwZT1cInJvdW5kXCIgKGNsaWNrKT1cInNhdmUoKVwiIGNvbG9yPVwic3VjY2Vzc1wiIHR5cGU9XCJzdWJtaXRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cInNhdmUtb3V0bGluZVwiIHNsb3Q9XCJzdGFydFwiID48L2lvbi1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgIENoYW5nZSBQYXNzd29yZFxyXG4gICAgICAgICAgICAgICAgICA8L2lvbi1idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic2hvd0NoYW5nZVBhc3N3b3JkID09ICd0cnVlJ1wiIGNsYXNzPVwiaW9uLXRleHQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICBZb3VyIHBhc3N3b3JkIHdpbGwgZXhwaXJlIGluIDxzdHJvbmcgKm5nSWY9XCJ1c2VyXCI+e3t1c2VyLmRheXNUaWxsUGFzc3dvcmRFeHBpcmV9fTwvc3Ryb25nPiBkYXkocykuIENvbnNpZGVyIGNoYW5naW5nIGl0IG5vdy5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpb24tdGV4dC1jZW50ZXIgaW9uLXBhZGRpbmctdG9wXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpb24tYnV0dG9uIHNoYXBlPVwicm91bmRcIiAoY2xpY2spPVwic2hvd0NoYW5nZVBhc3N3b3JkID0gJ2ZhbHNlJ1wiIGNvbG9yPVwic3VjY2Vzc1wiIHR5cGU9XCJzdWJtaXRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cInNodWZmbGUtb3V0bGluZVwiIHNsb3Q9XCJzdGFydFwiID48L2lvbi1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgIENoYW5nZSBOb3dcclxuICAgICAgICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICA8aW9uLWJ1dHRvbiBzaGFwZT1cInJvdW5kXCIgKGNsaWNrKT1cInJlZGlyZWN0KClcIiBjb2xvcj1cInN1Y2Nlc3NcIiB0eXBlPVwic3VibWl0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJhbmFseXRpY3Mtb3V0bGluZVwiIHNsb3Q9XCJzdGFydFwiID48L2lvbi1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgIERhc2hib2FyZFxyXG4gICAgICAgICAgICAgICAgICA8L2lvbi1idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9hcHAtY2FyZD5cclxuICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICA8L2lvbi1yb3c+XHJcbiAgICAgIDwvaW9uLWdyaWQ+XHJcbiAgICA8L2Zvcm0+XHJcbiAgPC9hcHAtY29udGVudD5cclxuPC9pb24tY29udGVudD4iXX0=
493
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhbmdlLXBhc3N3b3JkLnBhZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmV1c2EtYXBwLWxpYi9zcmMvbGliL3BhZ2VzL2NvbW1vbi9jaGFuZ2UtcGFzc3dvcmQvY2hhbmdlLXBhc3N3b3JkLnBhZ2UudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmV1c2EtYXBwLWxpYi9zcmMvbGliL3BhZ2VzL2NvbW1vbi9jaGFuZ2UtcGFzc3dvcmQvY2hhbmdlLXBhc3N3b3JkLnBhZ2UuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBd0MsVUFBVSxFQUFlLE1BQU0sZ0JBQWdCLENBQUM7QUFHL0YsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFJMUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDhCQUE4QixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7O0lDT3hDLDhCQUFzSDtJQUFBLHFDQUFxQjtJQUFBLGlCQUFLOzs7SUFBNUksK0dBQW1GOzs7SUFDdkYsOEJBQXNIO0lBQUEsc0NBQXNCO0lBQUEsaUJBQUs7OztJQUE3SSwrR0FBbUY7OztJQUN2Riw4QkFBcUg7SUFBQSxzQ0FBc0I7SUFBQSxpQkFBSzs7O0lBQTVJLCtHQUFtRjs7O0lBQ3ZGLDhCQUFxSDtJQUFBLHNDQUFzQjtJQUFBLGlCQUFLOzs7SUFBNUksK0dBQW1GOzs7SUFJdkYsOEJBQTBJO0lBQUEsNkRBQTZDO0lBQUEsOEJBQVE7SUFBQSw2QkFBaUI7SUFBQSxpQkFBUyxFQUFBOzs7SUFBck4sNkhBQWtHOzs7SUFDdEcsOEJBQXlMO0lB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bEIsa0JBQWtCO1lDakIvQixrQ0FBWTtZQUNWLGdDQUNhO1lBQ2YsaUJBQWE7WUFFYixtQ0FBYSxrQkFBQSxpQkFBQSxlQUFBLGlCQUFBLGlCQUFBLGtCQUFBO1lBT2lDLG9JQUEwQjtZQUMxRCx1RUFvRk0seURBQUE7WUFjUixpQkFBVyxFQUFBLEVBQUEsRUFBQSxFQUFBLEVBQUEsRUFBQTs7WUE5R21DLGVBQW1CO1lBQW5CLHFDQUFtQjtZQU1uRSxlQUEyQjtZQUEzQiw2Q0FBMkI7WUFNakIsZUFBbUM7WUFBbkMsd0RBQW1DO1lBcUZuQyxlQUFrQztZQUFsQyx1REFBa0M7OztpRkRqRnpDLGtCQUFrQjtjQUw5QixTQUFTOzJCQUNFLHFCQUFxQjs7a0ZBSXBCLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVbnR5cGVkRm9ybUJ1aWxkZXIsIFVudHlwZWRGb3JtR3JvdXAsIFZhbGlkYXRvcnMsIFZhbGlkYXRvckZuIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgTmF2Q29udHJvbGxlciwgUGxhdGZvcm0gfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XG5pbXBvcnQgeyBBcHBWYWxpZGF0b3JzIH0gZnJvbSAnLi4vLi4vLi4vdmFsaWRhdGlvbnMvQXBwVmFsaWRhdG9ycyc7XG5pbXBvcnQgeyBBcHBSZWdleCB9IGZyb20gJy4uLy4uLy4uL3ZhbGlkYXRpb25zL0FwcFJlZ2V4JztcbmltcG9ydCB7IEJhc2VQYWdlIH0gZnJvbSAnLi4vLi4vQmFzZVBhZ2UnO1xuaW1wb3J0IHsgVXNlck1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL1VzZXJNb2RlbCc7XG5pbXBvcnQgeyBMb2dpblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9sb2dpbi9sb2dpbi5zZXJ2aWNlJztcbmltcG9ydCB7IFV0aWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvdXRpbC91dGlsLnNlcnZpY2UnO1xuaW1wb3J0IHsgTGliQ29uc3RhbnRzIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL0xpYkNvbnN0YW50cyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1jaGFuZ2UtcGFzc3dvcmQnLFxuICB0ZW1wbGF0ZVVybDogJy4vY2hhbmdlLXBhc3N3b3JkLnBhZ2UuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NoYW5nZS1wYXNzd29yZC5wYWdlLnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgQ2hhbmdlUGFzc3dvcmRQYWdlIGV4dGVuZHMgQmFzZVBhZ2UgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIHB1YmxpYyBjYXBzT24gPSBmYWxzZTtcblxuICBjb21tb25WYWxpZGF0b3JzIDogVmFsaWRhdG9yRm5bXSA9IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXBwVmFsaWRhdG9ycy5tYXRjaChBcHBSZWdleC5VUFBFUl9DQVNFX1JFR0VYLCB7aGFzQ2FwaXRhbENhc2UgOiB0cnVlfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFwcFZhbGlkYXRvcnMubWF0Y2goQXBwUmVnZXguTE9XRVJfQ0FTRV9SRUdFWCwge2hhc1NtYWxsQ2FzZSA6IHRydWV9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXBwVmFsaWRhdG9ycy5tYXRjaChBcHBSZWdleC5OVU1CRVJfUkVHRVgsIHtoYXNOdW1iZXIgOiB0cnVlfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF07XG5cbiAgY3NyUGFzc3dvcmRWYWxpZGF0b3JzIDogVmFsaWRhdG9yRm5bXSA9IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBcHBWYWxpZGF0b3JzLm1hdGNoKEFwcFJlZ2V4LkFHRU5DWV9TWU1CT0xfUkVHRVgsIHtoYXNDc3JTcGVjaWFsQ2hhcmFjdGVycyA6IHRydWV9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdO1xuXG4gIGNzckNvbmZpcm1QYXNzd29yZFZhbGlkYXRvcnMgOiBWYWxpZGF0b3JGbltdID0gW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBcHBWYWxpZGF0b3JzLm1hdGNoKEFwcFJlZ2V4LkFHRU5DWV9TWU1CT0xfUkVHRVgsIHtoYXNDc3JTcGVjaWFsQ2hhcmFjdGVycyA6IHRydWV9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXBwVmFsaWRhdG9ycy5lcXVhbCgncGFzc3dvcmQnLCB7bm90TWF0Y2ggOiB0cnVlfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIGNsYWltYW50UGFzc3dvcmRWYWxpZGF0b3JzIDogVmFsaWRhdG9yRm5bXSA9IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXBwVmFsaWRhdG9ycy5tYXRjaCh0aGlzLmlzU2FtZVN5bWJvbFBvbGljeUZvckNsYWltYW50QW5kQWdlbmN5P0FwcFJlZ2V4LkFHRU5DWV9TWU1CT0xfUkVHRVg6QXBwUmVnZXguQ0xBSU1BTlRfU1lNQk9MX1JFR0VYLCB7aGFzQ2xhaW1hbnRTcGVjaWFsQ2hhcmFjdGVycyA6IHRydWV9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXTtcblxuICBjbGFpbWFudENvbmZpcm1QYXNzd29yZFZhbGlkYXRvcnMgOiBWYWxpZGF0b3JGbltdID0gW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFwcFZhbGlkYXRvcnMubWF0Y2godGhpcy5pc1NhbWVTeW1ib2xQb2xpY3lGb3JDbGFpbWFudEFuZEFnZW5jeT9BcHBSZWdleC5BR0VOQ1lfU1lNQk9MX1JFR0VYOkFwcFJlZ2V4LkNMQUlNQU5UX1NZTUJPTF9SRUdFWCwge2hhc0NsYWltYW50U3BlY2lhbENoYXJhY3RlcnMgOiB0cnVlfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXBwVmFsaWRhdG9ycy5lcXVhbCgncGFzc3dvcmQnLCB7bm90TWF0Y2ggOiB0cnVlfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXTtcblxuICBwdWJsaWMgY2hhbmdlUHdkRm9ybSA6IFVudHlwZWRGb3JtR3JvdXA7XG5cbiAgcHVibGljIGhpZGVQYXNzd29yZCA9IHRydWU7XG5cbiAgcHVibGljIGhpZGVDb25maXJtUGFzc3dvcmQgPSB0cnVlO1xuXG4gIHB1YmxpYyBoaWRlT2xkUGFzc3dvcmQgPSB0cnVlO1xuXG4gIHB1YmxpYyB1c2VyIDogVXNlck1vZGVsO1xuXG4gIHB1YmxpYyBzaG93Q2hhbmdlUGFzc3dvcmQgPSAnZmFsc2UnO1xuXG4gIHB1YmxpYyBpc0NTUiA6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHVibGljIGlzQ2xhaW1hbnQgOmJvb2xlYW4gPSBmYWxzZTtcblxuICBwdWJsaWMgdXNlTmV3UGFzc3dvcmRQb2xpY3kgOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHVibGljIGNvbnRleHQgPSBcIlwiO1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgZmIgOiBVbnR5cGVkRm9ybUJ1aWxkZXIsIHB1YmxpYyBsb2dpblNlcnZpY2UgOiBMb2dpblNlcnZpY2UsIFxuICAgICAgICAgICAgICBwdWJsaWMgdXRpbCA6IFV0aWxTZXJ2aWNlLCBwcml2YXRlIG5hdjogTmF2Q29udHJvbGxlciwgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgICAgICAgICAgIHByaXZhdGUgcGxhdGZvcm06IFBsYXRmb3JtKSB7XG4gICAgICAgICAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgICAgICAgIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmluaXRpYWxpemVDaGFuZ2VQd2RGb3JtKCk7XG4gICAgdGhpcy51c2VyID0gdGhpcy5sb2dpblNlcnZpY2UuZ2V0VXNlcigpO1xuICAgIHRoaXMuY29udGV4dCA9IHRoaXMudXRpbC5nZXRDb250ZXh0Um9vdCgpLnJlcGxhY2UoXCIvXCIsIFwiXCIpO1xuICAgIHRoaXMuc2hvd0NoYW5nZVBhc3N3b3JkID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtTWFwLmdldCgnY2hhbmdlUHdkJykgPyB0aGlzLnJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1NYXAuZ2V0KCdjaGFuZ2VQd2QnKSA6ICdmYWxzZSc7XG4gIH1cblxuICBpbml0aWFsaXplQ2hhbmdlUHdkRm9ybSgpe1xuICAgIHRoaXMuY2hhbmdlUHdkRm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgJ29sZFBhc3N3b3JkJyA6IFtudWxsICwgW11dLFxuICAgICAgJ3Bhc3N3b3JkJzogW251bGwsIFtdXSxcbiAgICAgICdjb25maXJtUGFzc3dvcmQnOiBbbnVsbCwgW11dXG4gICAgfSk7XG5cbiAgICB0aGlzLnBhc3N3b3JkLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUodiA9PiB7XG4gICAgICBpZih0aGlzLmNvbmZpcm1QYXNzd29yZC52YWx1ZSl7XG4gICAgICAgIHRoaXMuY29uZmlybVBhc3N3b3JkLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICAgIH1cbiAgICAgIGlmKHRoaXMub2xkUGFzc3dvcmQudmFsdWUpe1xuICAgICAgICB0aGlzLm9sZFBhc3N3b3JkLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBcbiAgICB0aGlzLnNldFBhc3N3b3JkVmFsaWRhdG9ycygpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRQYXNzd29yZFZhbGlkYXRvcnMoKSB7XG4gICAgbGV0IHZhbGlkYXRvcnMxOiBWYWxpZGF0b3JGbltdID0gW1ZhbGlkYXRvcnMucmVxdWlyZWRdO1xuICAgIGxldCB2YWxpZGF0b3JzMjogVmFsaWRhdG9yRm5bXSA9IFtWYWxpZGF0b3JzLnJlcXVpcmVkXTtcbiAgICBsZXQgdmFsaWRhdG9yczM6IFZhbGlkYXRvckZuW10gPSBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgQXBwVmFsaWRhdG9ycy5ub3RFcXVhbCgncGFzc3dvcmQnLCB7bWF0Y2ggOiB0cnVlfSldO1xuXG4gICAgdGhpcy5jb21tb25WYWxpZGF0b3JzLmZvckVhY2godiA9PiB2YWxpZGF0b3JzMS5wdXNoKHYpKTtcbiAgICB0aGlzLmNvbW1vblZhbGlkYXRvcnMuZm9yRWFjaCh2ID0+IHZhbGlkYXRvcnMyLnB1c2godikpO1xuXG4gICAgaWYgKHRoaXMubG9naW5TZXJ2aWNlLmlzQ3NyKCkpIHtcbiAgICAgIHRoaXMuY3NyUGFzc3dvcmRWYWxpZGF0b3JzLmZvckVhY2godiA9PiB2YWxpZGF0b3JzMS5wdXNoKHYpKTtcbiAgICAgIHRoaXMuY3NyQ29uZmlybVBhc3N3b3JkVmFsaWRhdG9ycy5mb3JFYWNoKHYgPT4gdmFsaWRhdG9yczIucHVzaCh2KSk7XG4gICAgICBpZih0aGlzLmlzTmV3UGFzc3dvcmRQb2xpY3lFbmFibGVkKXtcbiAgICAgICAgdGhpcy51c2VOZXdQYXNzd29yZFBvbGljeSA9IHRydWU7XG4gICAgICAgIHRoaXMubmV3UGFzc3dvcmRQb2xpY3lWYWxpZGF0b3JzLmZvckVhY2godiA9PiB2YWxpZGF0b3JzMS5wdXNoKHYpKTtcbiAgICAgICAgdGhpcy5uZXdQYXNzd29yZFBvbGljeVZhbGlkYXRvcnMuZm9yRWFjaCh2ID0+IHZhbGlkYXRvcnMyLnB1c2godikpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5vbGRQYXNzd29yZFBvbGljeVZhbGlkYXRvcnMuZm9yRWFjaCh2ID0+IHZhbGlkYXRvcnMxLnB1c2godikpO1xuICAgICAgICB0aGlzLm9sZFBhc3N3b3JkUG9saWN5VmFsaWRhdG9ycy5mb3JFYWNoKHYgPT4gdmFsaWRhdG9yczIucHVzaCh2KSk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0aGlzLmxvZ2luU2VydmljZS5pc0NsYWltYW50KCkpIHtcbiAgICAgIHRoaXMuY2xhaW1hbnRQYXNzd29yZFZhbGlkYXRvcnMuZm9yRWFjaCh2ID0+IHZhbGlkYXRvcnMxLnB1c2godikpO1xuICAgICAgdGhpcy5jbGFpbWFudENvbmZpcm1QYXNzd29yZFZhbGlkYXRvcnMuZm9yRWFjaCh2ID0+IHZhbGlkYXRvcnMyLnB1c2godikpO1xuICAgICAgaWYodGhpcy5pc05ld1Bhc3N3b3JkUG9saWN5RW5hYmxlZEZvckNsYWltYW50KXtcbiAgICAgICAgdGhpcy51c2VOZXdQYXNzd29yZFBvbGljeSA9IHRydWU7XG4gICAgICAgIHRoaXMubmV3UGFzc3dvcmRQb2xpY3lWYWxpZGF0b3JzLmZvckVhY2godiA9PiB2YWxpZGF0b3JzMS5wdXNoKHYpKTtcbiAgICAgICAgdGhpcy5uZXdQYXNzd29yZFBvbGljeVZhbGlkYXRvcnMuZm9yRWFjaCh2ID0+IHZhbGlkYXRvcnMyLnB1c2godikpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5vbGRQYXNzd29yZFBvbGljeVZhbGlkYXRvcnMuZm9yRWFjaCh2ID0+IHZhbGlkYXRvcnMxLnB1c2godikpO1xuICAgICAgICB0aGlzLm9sZFBhc3N3b3JkUG9saWN5VmFsaWRhdG9ycy5mb3JFYWNoKHYgPT4gdmFsaWRhdG9yczIucHVzaCh2KSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY2xhaW1hbnRQYXNzd29yZFZhbGlkYXRvcnMuZm9yRWFjaCh2ID0+IHZhbGlkYXRvcnMxLnB1c2godikpO1xuICAgICAgdGhpcy5jbGFpbWFudENvbmZpcm1QYXNzd29yZFZhbGlkYXRvcnMuZm9yRWFjaCh2ID0+IHZhbGlkYXRvcnMyLnB1c2godikpO1xuICAgICAgaWYodGhpcy5pc05ld1Bhc3N3b3JkUG9saWN5RW5hYmxlZEZvckVtcGxveWVyKXtcbiAgICAgICAgdGhpcy51c2VOZXdQYXNzd29yZFBvbGljeSA9IHRydWU7XG4gICAgICAgIHRoaXMubmV3UGFzc3dvcmRQb2xpY3lWYWxpZGF0b3JzLmZvckVhY2godiA9PiB2YWxpZGF0b3JzMS5wdXNoKHYpKTtcbiAgICAgICAgdGhpcy5uZXdQYXNzd29yZFBvbGljeVZhbGlkYXRvcnMuZm9yRWFjaCh2ID0+IHZhbGlkYXRvcnMyLnB1c2godikpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5vbGRQYXNzd29yZFBvbGljeVZhbGlkYXRvcnMuZm9yRWFjaCh2ID0+IHZhbGlkYXRvcnMxLnB1c2godikpO1xuICAgICAgICB0aGlzLm9sZFBhc3N3b3JkUG9saWN5VmFsaWRhdG9ycy5mb3JFYWNoKHYgPT4gdmFsaWRhdG9yczIucHVzaCh2KSk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMudXRpbC5zZXRWYWxpZGF0aW9uKHRoaXMub2xkUGFzc3dvcmQsIHZhbGlkYXRvcnMzKTtcbiAgICB0aGlzLnV0aWwuc2V0VmFsaWRhdGlvbih0aGlzLnBhc3N3b3JkLCB2YWxpZGF0b3JzMSk7XG4gICAgdGhpcy51dGlsLnNldFZhbGlkYXRpb24odGhpcy5jb25maXJtUGFzc3dvcmQsIHZhbGlkYXRvcnMyKTtcbiAgfVxuXG4gIGdldCBvbGRQYXNzd29yZCgpe1xuICAgIHJldHVybiB0aGlzLmNoYW5nZVB3ZEZvcm0uZ2V0KCdvbGRQYXNzd29yZCcpO1xuICB9XG5cbiAgZ2V0IHBhc3N3b3JkKCl7XG4gICAgcmV0dXJuIHRoaXMuY2hhbmdlUHdkRm9ybS5nZXQoJ3Bhc3N3b3JkJyk7XG4gIH1cblxuICBnZXQgY29uZmlybVBhc3N3b3JkKCl7XG4gICAgcmV0dXJuIHRoaXMuY2hhbmdlUHdkRm9ybS5nZXQoJ2NvbmZpcm1QYXNzd29yZCcpO1xuICB9XG5cbiAgc2F2ZSgpe1xuICAgIGlmKHRoaXMuY2hhbmdlUHdkRm9ybS5pbnZhbGlkKXtcbiAgICAgIHJldHVybiA7XG4gICAgfVxuICAgIHRoaXMudXRpbC5zaG93TG9hZGVyKClcbiAgICAgICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICB0aGlzLmxvZ2luU2VydmljZS51cGRhdGVQYXNzd29yZCh0aGlzLm9sZFBhc3N3b3JkLnZhbHVlLnRyaW0oKSwgdGhpcy5wYXNzd29yZC52YWx1ZS50cmltKCksIHRoaXMuY29uZmlybVBhc3N3b3JkLnZhbHVlLnRyaW0oKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXMgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2dpblNlcnZpY2UubG9nb3V0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm5hdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5uYXZpZ2F0ZVJvb3QoJ2xvZ2luJylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAudGhlbiggKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51dGlsLnN1Y2Nlc3MoJ1Bhc3N3b3JkIENoYW5nZWQgU3VjY2Vzc2Z1bGx5LiBQbGVhc2UgbG9naW4gYWdhaW4uJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnV0aWwuaGlkZUxvYWRlcigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnIgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51dGlsLmhpZGVMb2FkZXIoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudXRpbC5lcnJvckhhbmRsZXIoZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgfSlcbiAgfVxuXG4gIHJlZGlyZWN0KCl7XG4gICAgbGV0IHVzZXJNb2RlbCA9IHRoaXMubG9naW5TZXJ2aWNlLmdldFVzZXIoKTtcbiAgICBpZih0aGlzLmxvZ2luU2VydmljZS5pc0NsYWltYW50KCkpe1xuICAgICAgY29uc3QgaXNDYXBhY2l0b3IgPSB0aGlzLnBsYXRmb3JtLmlzKCdjYXBhY2l0b3InKTtcbiAgICAgIGlmKGlzQ2FwYWNpdG9yKXtcbiAgICAgICAgdGhpcy5uYXYubmF2aWdhdGVSb290KFwid2VsY29tZVwiKTtcbiAgICAgICAgdGhpcy51dGlsLmhpZGVMb2FkZXIoKTtcbiAgICAgIH0gZWxzZXtcbiAgICAgICAgaWYoTGliQ29uc3RhbnRzLmxlZ2FjeU1lbnUgPT0gJ3RydWUnKXtcbiAgICAgICAgICB0aGlzLm5hdi5uYXZpZ2F0ZVJvb3QoXCJ3ZWxjb21lXCIpO1xuICAgICAgICB0aGlzLnV0aWwuaGlkZUxvYWRlcigpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmKChMaWJDb25zdGFudHMuc3NvQ29va2llTmFtZSArIFwiXCIpLmluY2x1ZGVzKCdVQVQnKSB8fCAoTGliQ29uc3RhbnRzLnNzb0Nvb2tpZU5hbWUgKyBcIlwiKS5pbmNsdWRlcygnUFJPRCcpICl7XG4gICAgICAgICAgICB3aW5kb3cub3BlbihgJHtMaWJDb25zdGFudHMubXN3b3Jrc1VybH1gLCAnX3NlbGYnKTtcbiAgICAgICAgICB9ZWxzZXtcbiAgICAgICAgICAgIHdpbmRvdy5vcGVuKGAke0xpYkNvbnN0YW50cy5iZW5lZml0c1VybEV4dGVybmFsfS9mYWNlcy92aXJ0dWFsL2NvbnRleHRzd2l0Y2gueGh0bWw/YT0ke3VzZXJNb2RlbC5hY2Nlc3NfdG9rZW59JnI9JHt1c2VyTW9kZWwucmVmcmVzaF90b2tlbn0mdj0yMjk5YCwgJ19zZWxmJyk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIGlmKHRoaXMubG9naW5TZXJ2aWNlLmlzRW1wbG95ZXIoKSB8fCB0aGlzLmxvZ2luU2VydmljZS5pc1RwYSgpKXtcbiAgICAgIHdpbmRvdy5vcGVuKGAke0xpYkNvbnN0YW50cy50YXhVcmxFeHRlcm5hbH0vZmFjZXMvdmlydHVhbC9jb250ZXh0c3dpdGNoLnhodG1sP2E9JHt1c2VyTW9kZWwuYWNjZXNzX3Rva2VufSZyPSR7dXNlck1vZGVsLnJlZnJlc2hfdG9rZW59JnY9MjI5OWAsICdfc2VsZicpO1xuICAgIH0gZWxzZSB7XG4gICAgICB3aW5kb3cub3BlbihgJHtMaWJDb25zdGFudHMuYmVuZWZpdHNVcmx9L2ZhY2VzL3ZpcnR1YWwvY29udGV4dHN3aXRjaC54aHRtbD9hPSR7dXNlck1vZGVsLmFjY2Vzc190b2tlbn0mcj0ke3VzZXJNb2RlbC5yZWZyZXNoX3Rva2VufSZ2PTIyOTlgLCAnX3NlbGYnKTtcbiAgICB9XG4gIH1cblxufVxuIiwiPGlvbi1oZWFkZXI+XHJcbiAgPGFwcC1oZWFkZXIgdGl0bGU9XCJDaGFuZ2UgUGFzc3dvcmRcIiBwYWdlSWQ9XCJDTkdQV0QtMDAxXCIgW2NvbnRleHRdPVwiY29udGV4dFwiID5cclxuICA8L2FwcC1oZWFkZXI+XHJcbjwvaW9uLWhlYWRlcj5cclxuXHJcbjxpb24tY29udGVudD5cclxuICA8YXBwLWNvbnRlbnQ+XHJcbiAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImNoYW5nZVB3ZEZvcm1cIiAjY2hhbmdlUHdkRm9ybURpcmVjdGl2ZT1cIm5nRm9ybVwiPlxyXG4gICAgICA8aW9uLWdyaWQ+XHJcbiAgICAgICAgPGlvbi1yb3cgY29sb3I9XCJwcmltYXJ5XCIgY2xhc3M9XCJpb24tanVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgPGlvbi1jb2wgY2xhc3M9XCJpb24tYWxpZ24tc2VsZi1jZW50ZXJcIiBzaXplLW1kPVwiNlwiIHNpemUtbGc9XCI0XCIgc2l6ZS14cz1cIjEyXCIgc2l6ZS1zbT1cIjEyXCIgc2l6ZS14bD1cIjRcIj5cclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIDxhcHAtY2FyZCB0aXRsZT1cIkNoYW5nZSBQYXNzd29yZFwiIChjYXBzTG9jayk9XCJjYXBzT249JGV2ZW50XCI+XHJcbiAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInNob3dDaGFuZ2VQYXNzd29yZCA9PSAnZmFsc2UnXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICBJbiBvcmRlciB0byA8c3Ryb25nPnByb3RlY3QgeW91ciBhY2NvdW50PC9zdHJvbmc+LCBtYWtlIHN1cmUgeW91ciBwYXNzd29yZCBoYXM6XHJcbiAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cInAtcGwtMiBwLW1sLTIgcC1tdC0wXCIgc3R5bGU9XCJsaW5lLWhlaWdodDogMS41OyBtYXJnaW4tbGVmdDogMXJlbSAhaW1wb3J0YW50OyBsaXN0LXN0eWxlLXR5cGU6IHNxdWFyZTtcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bGkgW25nQ2xhc3NdPVwiIXBhc3N3b3JkLmhhc0Vycm9yKCdtaW5sZW5ndGgnKSAmJiBwYXNzd29yZC5kaXJ0eSA/ICdzdWNjZXNzJyA6ICdlcnJvcidcIiAqbmdJZj1cIiF1c2VOZXdQYXNzd29yZFBvbGljeVwiPk1pbmltdW0gOCBjaGFyYWN0ZXJzLjwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxpIFtuZ0NsYXNzXT1cIiFwYXNzd29yZC5oYXNFcnJvcignbWF4bGVuZ3RoJykgJiYgcGFzc3dvcmQuZGlydHkgPyAnc3VjY2VzcycgOiAnZXJyb3InXCIgKm5nSWY9XCIhdXNlTmV3UGFzc3dvcmRQb2xpY3lcIj5NYXhpbXVtIDE1IGNoYXJhY3RlcnMuPC9saT5cclxuICAgICAgICAgICAgICAgICAgICA8bGkgW25nQ2xhc3NdPVwiIXBhc3N3b3JkLmhhc0Vycm9yKCdtaW5sZW5ndGgnKSAmJiBwYXNzd29yZC5kaXJ0eSA/ICdzdWNjZXNzJyA6ICdlcnJvcidcIiAqbmdJZj1cInVzZU5ld1Bhc3N3b3JkUG9saWN5XCI+TWluaW11bSAxNCBjaGFyYWN0ZXJzLjwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxpIFtuZ0NsYXNzXT1cIiFwYXNzd29yZC5oYXNFcnJvcignbWF4bGVuZ3RoJykgJiYgcGFzc3dvcmQuZGlydHkgPyAnc3VjY2VzcycgOiAnZXJyb3InXCIgKm5nSWY9XCJ1c2VOZXdQYXNzd29yZFBvbGljeVwiPk1heGltdW0gMjEgY2hhcmFjdGVycy48L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsaSBbbmdDbGFzc109XCIhcGFzc3dvcmQuaGFzRXJyb3IoJ2hhc051bWJlcicpICYmIHBhc3N3b3JkLmRpcnR5ICA/ICdzdWNjZXNzJyA6ICdlcnJvcidcIj5BdCBsZWFzdCAxIG51bWJlcjwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxpIFtuZ0NsYXNzXT1cIiFwYXNzd29yZC5oYXNFcnJvcignaGFzQ2FwaXRhbENhc2UnKSAmJiBwYXNzd29yZC5kaXJ0eSAgPyAnc3VjY2VzcycgOiAnZXJyb3InXCI+QXQgbGVhc3QgMSB1cHBlcmNhc2UgbGV0dGVyPC9saT5cclxuICAgICAgICAgICAgICAgICAgICA8bGkgW25nQ2xhc3NdPVwiIXBhc3N3b3JkLmhhc0Vycm9yKCdoYXNTbWFsbENhc2UnKSAmJiBwYXNzd29yZC5kaXJ0eSAgPyAnc3VjY2VzcycgOiAnZXJyb3InXCI+QXQgbGVhc3QgMSBsb3dlcmNhc2UgbGV0dGVyPC9saT5cclxuICAgICAgICAgICAgICAgICAgICA8bGkgW25nQ2xhc3NdPVwiIXBhc3N3b3JkLmhhc0Vycm9yKCdoYXNDc3JTcGVjaWFsQ2hhcmFjdGVycycpICYmIHBhc3N3b3JkLmRpcnR5ICA/ICdzdWNjZXNzJyA6ICdlcnJvcidcIiAqbmdJZj1cIiFsb2dpblNlcnZpY2UuaXNDbGFpbWFudCgpXCI+QXQgbGVhc3QgMiBzcGVjaWFsIGNoYXJhY3RlcnMgZnJvbSBmb2xsb3dpbmcgPHN0cm9uZz5fICYjNjQ7ICogJCAhICMgLjwvc3Ryb25nPjwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxpIFtuZ0NsYXNzXT1cIiFwYXNzd29yZC5oYXNFcnJvcignaGFzQ2xhaW1hbnRTcGVjaWFsQ2hhcmFjdGVycycpICYmIHBhc3N3b3JkLmRpcnR5ICA/ICdzdWNjZXNzJyA6ICdlcnJvcidcIiAqbmdJZj1cImxvZ2luU2VydmljZS5pc0NsYWltYW50KCkgJiYgIWlzU2FtZVN5bWJvbFBvbGljeUZvckNsYWltYW50QW5kQWdlbmN5XCI+QXQgbGVhc3QgMSBzcGVjaWFsIGNoYXJhY3RlcnMgZnJvbSBmb2xsb3dpbmcgPHN0cm9uZz5fICYjNjQ7ICogJCAhICMgLjwvc3Ryb25nPjwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxpIFtuZ0NsYXNzXT1cIiFwYXNzd29yZC5oYXNFcnJvcignaGFzQ2xhaW1hbnRTcGVjaWFsQ2hhcmFjdGVycycpICYmIHBhc3N3b3JkLmRpcnR5ICA/ICdzdWNjZXNzJyA6ICdlcnJvcidcIiAqbmdJZj1cImxvZ2luU2VydmljZS5pc0NsYWltYW50KCkgJiYgaXNTYW1lU3ltYm9sUG9saWN5Rm9yQ2xhaW1hbnRBbmRBZ2VuY3lcIj5BdCBsZWFzdCAyIHNwZWNpYWwgY2hhcmFjdGVycyBmcm9tIGZvbGxvd2luZyA8c3Ryb25nPl8gJiM2NDsgKiAkICEgIyAuPC9zdHJvbmc+PC9saT5cclxuICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBncmlkO1wiPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInAtZmxvYXQtbGFiZWxcIj5cclxuICAgICAgICAgICAgICAgICAgICA8cC1wYXNzd29yZCBbZm9ybUNvbnRyb2xdPVwib2xkUGFzc3dvcmRcIiBpbnB1dElkPVwib2xkUGFzc3dvcmRcIiBbdG9nZ2xlTWFza109J3RydWUnIFtmZWVkYmFja109J2ZhbHNlJyBhcHBBdXRvZm9jdXM+PC9wLXBhc3N3b3JkPiBcclxuICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiZmxvYXQtaW5wdXRcIj5DdXJyZW50IFBhc3N3b3JkPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWVycm9yICpuZ0lmPVwib2xkUGFzc3dvcmQuaGFzRXJyb3IoJ3JlcXVpcmVkJylcIj5cclxuICAgICAgICAgICAgICAgICAgICBDdXJyZW50IFBhc3N3b3JkIGlzIHJlcXVpcmVkLlxyXG4gICAgICAgICAgICAgICAgICA8L21hdC1lcnJvcj5cclxuICAgICAgICAgICAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cIm9sZFBhc3N3b3JkLmhhc0Vycm9yKCdtYXRjaCcpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgQ3VycmVudCBQYXNzd29yZCBzaG91bGQgbm90IGJlIHNhbWUgYXMgTmV3IFBhc3N3b3JkLlxyXG4gICAgICAgICAgICAgICAgICA8L21hdC1lcnJvcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGJyLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBncmlkO1wiPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInAtZmxvYXQtbGFiZWxcIj5cclxuICAgICAgICAgICAgICAgICAgICA8cC1wYXNzd29yZCBbZm9ybUNvbnRyb2xdPVwicGFzc3dvcmRcIiBpbnB1dElkPVwicGFzc3dvcmRcIiBbdG9nZ2xlTWFza109J3RydWUnIGFwcGVuZFRvPVwiYm9keVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvcC1wYXNzd29yZD4gXHJcbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImZsb2F0LWlucHV0XCI+TmV3IFBhc3N3b3JkPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWVycm9yICpuZ0lmPVwicGFzc3dvcmQuaGFzRXJyb3IoJ3JlcXVpcmVkJylcIj5cclxuICAgICAgICAgICAgICAgICAgICBOZXcgUGFzc3dvcmQgaXMgcmVxdWlyZWQuXHJcbiAgICAgICAgICAgICAgICAgIDwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWVycm9yICpuZ0lmPVwicGFzc3dvcmQuaGFzRXJyb3IoJ25vdE1hdGNoJylcIj5cclxuICAgICAgICAgICAgICAgICAgICBOZXcgUGFzc3dvcmQgYW5kIENvbmZpcm0gUGFzc3dvcmQgZGlkIG5vdCBtYXRjaC5cclxuICAgICAgICAgICAgICAgICAgPC9tYXQtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJwYXNzd29yZC5oYXNFcnJvcignbWF0Y2gnKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIEN1cnJlbnQgUGFzc3dvcmQgc2hvdWxkIG5vdCBiZSBzYW1lIGFzIE5ldyBQYXNzd29yZC5cclxuICAgICAgICAgICAgICAgICAgPC9tYXQtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICBcclxuICAgICAgICAgICAgICAgIDxici8+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZ3JpZDtcIj5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwLWZsb2F0LWxhYmVsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHAtcGFzc3dvcmQgW2Zvcm1Db250cm9sXT1cImNvbmZpcm1QYXNzd29yZFwiIGlucHV0SWQ9XCJjb25maXJtUGFzc3dvcmRcIiBbdG9nZ2xlTWFza109J3RydWUnIGFwcGVuZFRvPVwiYm9keVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvcC1wYXNzd29yZD4gXHJcbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImZsb2F0LWlucHV0XCI+Q29uZmlybSBQYXNzd29yZDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImNvbmZpcm1QYXNzd29yZC5oYXNFcnJvcigncmVxdWlyZWQnKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIENvbmZpcm0gUGFzc3dvcmQgaXMgcmVxdWlyZWQuXHJcbiAgICAgICAgICAgICAgICAgIDwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWVycm9yICpuZ0lmPVwiY29uZmlybVBhc3N3b3JkLmhhc0Vycm9yKCdtaW5sZW5ndGgnKSAmJiB1c2VOZXdQYXNzd29yZFBvbGljeVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIENvbmZpcm0gUGFzc3dvcmQgc2hvdWxkIGhhdmUgbWluaW11bSA8c3Ryb25nPjE0IGNoYXJhY3RlcnM8L3N0cm9uZz4uXHJcbiAgICAgICAgICAgICAgICAgIDwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWVycm9yICpuZ0lmPVwiY29uZmlybVBhc3N3b3JkLmhhc0Vycm9yKCdtYXhsZW5ndGgnKSAmJiB1c2VOZXdQYXNzd29yZFBvbGljeVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIENvbmZpcm0gUGFzc3dvcmQgc2hvdWxkIG5vdCBoYXZlIG1vcmUgdGhhbiA8c3Ryb25nPjIxIGNoYXJhY3RlcnM8L3N0cm9uZz4uXHJcbiAgICAgICAgICAgICAgICAgIDwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWVycm9yICpuZ0lmPVwiY29uZmlybVBhc3N3b3JkLmhhc0Vycm9yKCdtaW5sZW5ndGgnKSAmJiAhdXNlTmV3UGFzc3dvcmRQb2xpY3lcIj5cclxuICAgICAgICAgICAgICAgICAgICBDb25maXJtIFBhc3N3b3JkIHNob3VsZCBoYXZlIG1pbmltdW0gPHN0cm9uZz44IGNoYXJhY3RlcnM8L3N0cm9uZz4uXHJcbiAgICAgICAgICAgICAgICAgIDwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LWVycm9yICpuZ0lmPVwiY29uZmlybVBhc3N3b3JkLmhhc0Vycm9yKCdtYXhsZW5ndGgnKSAmJiAhdXNlTmV3UGFzc3dvcmRQb2xpY3lcIj5cclxuICAgICAgICAgICAgICAgICAgICBDb25maXJtIFBhc3N3b3JkIHNob3VsZCBub3QgaGF2ZSBtb3JlIHRoYW4gPHN0cm9uZz4xNSBjaGFyYWN0ZXJzPC9zdHJvbmc+LlxyXG4gICAgICAgICAgICAgICAgICA8L21hdC1lcnJvcj5cclxuICAgICAgICAgICAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImNvbmZpcm1QYXNzd29yZC5oYXNFcnJvcignbm90TWF0Y2gnKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIE5ldyBQYXNzd29yZCBhbmQgQ29uZmlybSBQYXNzd29yZCBkaWQgbm90IG1hdGNoLlxyXG4gICAgICAgICAgICAgICAgICA8L21hdC1lcnJvcj5cclxuICAgICAgICAgICAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImNvbmZpcm1QYXNzd29yZC5oYXNFcnJvcignbWF0Y2gnKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIEN1cnJlbnQgUGFzc3dvcmQgc2hvdWxkIG5vdCBiZSBzYW1lIGFzIENvbmZpcm0gUGFzc3dvcmQuXHJcbiAgICAgICAgICAgICAgICAgIDwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIDxsYWJlbCAqbmdJZj1cImNhcHNPblwiIHN0eWxlPVwiY29sb3I6dmFyKC0taW9uLWNvbG9yLWRhbmdlcik7XCI+PHN0cm9uZz5DYXBzIExvY2sgaXMgT248L3N0cm9uZz48L2xhYmVsPlxyXG4gIFxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlvbi10ZXh0LWNlbnRlciBpb24tcGFkZGluZy10b3BcIj5cclxuICAgICAgICAgICAgICAgICAgPGlvbi1idXR0b24gc2hhcGU9XCJyb3VuZFwiIChjbGljayk9XCJzYXZlKClcIiBjb2xvcj1cInN1Y2Nlc3NcIiB0eXBlPVwic3VibWl0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJzYXZlLW91dGxpbmVcIiBzbG90PVwic3RhcnRcIiA+PC9pb24taWNvbj5cclxuICAgICAgICAgICAgICAgICAgICBDaGFuZ2UgUGFzc3dvcmRcclxuICAgICAgICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInNob3dDaGFuZ2VQYXNzd29yZCA9PSAndHJ1ZSdcIiBjbGFzcz1cImlvbi10ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgWW91ciBwYXNzd29yZCB3aWxsIGV4cGlyZSBpbiA8c3Ryb25nICpuZ0lmPVwidXNlclwiPnt7dXNlci5kYXlzVGlsbFBhc3N3b3JkRXhwaXJlfX08L3N0cm9uZz4gZGF5KHMpLiBDb25zaWRlciBjaGFuZ2luZyBpdCBub3cuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW9uLXRleHQtY2VudGVyIGlvbi1wYWRkaW5nLXRvcFwiPlxyXG4gICAgICAgICAgICAgICAgICA8aW9uLWJ1dHRvbiBzaGFwZT1cInJvdW5kXCIgKGNsaWNrKT1cInNob3dDaGFuZ2VQYXNzd29yZCA9ICdmYWxzZSdcIiBjb2xvcj1cInN1Y2Nlc3NcIiB0eXBlPVwic3VibWl0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJzaHVmZmxlLW91dGxpbmVcIiBzbG90PVwic3RhcnRcIiA+PC9pb24taWNvbj5cclxuICAgICAgICAgICAgICAgICAgICBDaGFuZ2UgTm93XHJcbiAgICAgICAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgPGlvbi1idXR0b24gc2hhcGU9XCJyb3VuZFwiIChjbGljayk9XCJyZWRpcmVjdCgpXCIgY29sb3I9XCJzdWNjZXNzXCIgdHlwZT1cInN1Ym1pdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwiYW5hbHl0aWNzLW91dGxpbmVcIiBzbG90PVwic3RhcnRcIiA+PC9pb24taWNvbj5cclxuICAgICAgICAgICAgICAgICAgICBEYXNoYm9hcmRcclxuICAgICAgICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvYXBwLWNhcmQ+XHJcbiAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgPC9pb24tcm93PlxyXG4gICAgICA8L2lvbi1ncmlkPlxyXG4gICAgPC9mb3JtPlxyXG4gIDwvYXBwLWNvbnRlbnQ+XHJcbjwvaW9uLWNvbnRlbnQ+Il19