@bnsights/bbsf-admin-portal 1.1.63 → 1.3.1

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.
Files changed (217) hide show
  1. package/README.md +3 -1
  2. package/bnsights-bbsf-admin-portal-1.3.1.tgz +0 -0
  3. package/esm2022/lib/Pages/ActiveDirectories/active-directories.component.mjs +5 -5
  4. package/esm2022/lib/Pages/ActiveDirectories/active-directory/active-directory.component.mjs +5 -5
  5. package/esm2022/lib/Pages/ActiveDirectories/active-directory-add/active-directory-add.component.mjs +5 -5
  6. package/esm2022/lib/Pages/ActiveDirectories/active-directory-routing.module.mjs +5 -5
  7. package/esm2022/lib/Pages/ActiveDirectories/active-directory.module.mjs +5 -5
  8. package/esm2022/lib/Pages/_layout/components/aside/aside-menu/aside-menu.component.mjs +5 -5
  9. package/esm2022/lib/Pages/_layout/components/aside/aside.component.mjs +5 -5
  10. package/esm2022/lib/Pages/_layout/components/content/content.component.mjs +5 -5
  11. package/esm2022/lib/Pages/_layout/components/footer/footer.component.mjs +5 -5
  12. package/esm2022/lib/Pages/_layout/components/header/header.component.mjs +5 -5
  13. package/esm2022/lib/Pages/_layout/components/header/page-title/page-title.component.mjs +5 -5
  14. package/esm2022/lib/Pages/_layout/components/scripts-init/scripts-init.component.mjs +5 -5
  15. package/esm2022/lib/Pages/_layout/components/subheader/subheader.component.mjs +5 -5
  16. package/esm2022/lib/Pages/_layout/components/subheader/subheader.module.mjs +5 -5
  17. package/esm2022/lib/Pages/_layout/components/toolbar/toolbar.component.mjs +5 -5
  18. package/esm2022/lib/Pages/_layout/components/toolbar/toolbar.module.mjs +5 -5
  19. package/esm2022/lib/Pages/_layout/components/topbar/topbar.component.mjs +5 -5
  20. package/esm2022/lib/Pages/anonymouslayout/activation/activation.component.mjs +5 -5
  21. package/esm2022/lib/Pages/anonymouslayout/anonymouslayout-routing.module.mjs +5 -5
  22. package/esm2022/lib/Pages/anonymouslayout/anonymouslayout.component.mjs +11 -6
  23. package/esm2022/lib/Pages/anonymouslayout/anonymouslayout.module.mjs +5 -5
  24. package/esm2022/lib/Pages/anonymouslayout/change-password/change-password.component.mjs +5 -5
  25. package/esm2022/lib/Pages/anonymouslayout/error/error.component.mjs +5 -5
  26. package/esm2022/lib/Pages/anonymouslayout/forgot-password/forgot-password.component.mjs +5 -5
  27. package/esm2022/lib/Pages/anonymouslayout/login/login.component.mjs +5 -5
  28. package/esm2022/lib/Pages/anonymouslayout/rest-password/rest-password.component.mjs +5 -5
  29. package/esm2022/lib/Pages/anonymouslayout/upload-license/upload-license.component.mjs +5 -5
  30. package/esm2022/lib/Pages/anonymouslayout/verify-two-fa/verify-two-fa.component.mjs +5 -5
  31. package/esm2022/lib/Pages/authentication/auth-callback/auth-callback.component.mjs +5 -5
  32. package/esm2022/lib/Pages/authentication/authentication.component.mjs +5 -5
  33. package/esm2022/lib/Pages/authentication/authentication.module.mjs +5 -5
  34. package/esm2022/lib/Pages/authentication/authentication.routing.mjs +5 -5
  35. package/esm2022/lib/Pages/configurations/auth-configuration/auth-configuration-edit/auth-configuration-edit.component.mjs +5 -5
  36. package/esm2022/lib/Pages/configurations/auth-configuration/auth-configuration.component.mjs +5 -5
  37. package/esm2022/lib/Pages/configurations/configuration/configuration.component.mjs +5 -5
  38. package/esm2022/lib/Pages/configurations/configurations.component.mjs +5 -5
  39. package/esm2022/lib/Pages/configurations/configurations.module.mjs +5 -5
  40. package/esm2022/lib/Pages/configurations/configurations.routing.mjs +5 -5
  41. package/esm2022/lib/Pages/core/auth.module.mjs +5 -5
  42. package/esm2022/lib/Pages/core/authentication/admin.guard.mjs +4 -4
  43. package/esm2022/lib/Pages/core/authentication/auth.guard.mjs +4 -4
  44. package/esm2022/lib/Pages/core/authentication/auth.service.mjs +4 -4
  45. package/esm2022/lib/Pages/departments/department/department.component.mjs +5 -5
  46. package/esm2022/lib/Pages/departments/department-info/department-info.component.mjs +5 -5
  47. package/esm2022/lib/Pages/departments/departments-routing.module.mjs +5 -5
  48. package/esm2022/lib/Pages/departments/departments.component.mjs +5 -5
  49. package/esm2022/lib/Pages/departments/departments.module.mjs +5 -5
  50. package/esm2022/lib/Pages/documents/add-document/add-document.component.mjs +5 -5
  51. package/esm2022/lib/Pages/documents/document-master-layouts/document-master-layouts.component.mjs +5 -5
  52. package/esm2022/lib/Pages/documents/document-template-info/document-template-info.component.mjs +5 -5
  53. package/esm2022/lib/Pages/documents/document-templates/document-templates.component.mjs +5 -5
  54. package/esm2022/lib/Pages/documents/documents.component.mjs +5 -5
  55. package/esm2022/lib/Pages/documents/documents.module.mjs +5 -5
  56. package/esm2022/lib/Pages/documents/documents.routing.mjs +5 -5
  57. package/esm2022/lib/Pages/documents/edit-document/edit-document.component.mjs +5 -5
  58. package/esm2022/lib/Pages/documents/edit-document-template/edit-document-template.component.mjs +5 -5
  59. package/esm2022/lib/Pages/empty-data/empty-data.component.mjs +5 -5
  60. package/esm2022/lib/Pages/empty-data/empty-data.module.mjs +5 -5
  61. package/esm2022/lib/Pages/helpCenter/help-center/help-center.component.mjs +5 -5
  62. package/esm2022/lib/Pages/helpCenter/help-center-preview/help-center-preview.component.mjs +5 -5
  63. package/esm2022/lib/Pages/helpCenter/help-center-routing.module.mjs +5 -5
  64. package/esm2022/lib/Pages/helpCenter/help-center-secondlevel/help-center-secondlevel.component.mjs +5 -5
  65. package/esm2022/lib/Pages/helpCenter/help-center-thirdlevel/help-center-thirdlevel.component.mjs +5 -5
  66. package/esm2022/lib/Pages/helpCenter/help-center.module.mjs +5 -5
  67. package/esm2022/lib/Pages/helpCenter/help-centers.component.mjs +5 -5
  68. package/esm2022/lib/Pages/home/filter-pipe.mjs +6 -5
  69. package/esm2022/lib/Pages/home/home.component.mjs +5 -5
  70. package/esm2022/lib/Pages/home/home.module.mjs +5 -5
  71. package/esm2022/lib/Pages/impersonation-rules/impersonation-rules/impersonation-rules.component.mjs +5 -5
  72. package/esm2022/lib/Pages/impersonation-rules/impersonation-rules.module.mjs +5 -5
  73. package/esm2022/lib/Pages/jobs/jobs/jobs.component.mjs +5 -5
  74. package/esm2022/lib/Pages/jobs/jobs.module.mjs +5 -5
  75. package/esm2022/lib/Pages/license/license/license.component.mjs +5 -5
  76. package/esm2022/lib/Pages/license/license.module.mjs +5 -5
  77. package/esm2022/lib/Pages/localizations/localizations-replace-text/localizations-replace-text.component.mjs +5 -5
  78. package/esm2022/lib/Pages/localizations/localizations.component.mjs +5 -5
  79. package/esm2022/lib/Pages/localizations/localizations.module.mjs +5 -5
  80. package/esm2022/lib/Pages/logs/log/log.component.mjs +5 -5
  81. package/esm2022/lib/Pages/logs/logs-routing.module.mjs +5 -5
  82. package/esm2022/lib/Pages/logs/logs.component.mjs +5 -5
  83. package/esm2022/lib/Pages/logs/logs.module.mjs +5 -5
  84. package/esm2022/lib/Pages/lookups/lookup/lookup.component.mjs +5 -5
  85. package/esm2022/lib/Pages/lookups/lookup-group/lookup-group.component.mjs +5 -5
  86. package/esm2022/lib/Pages/lookups/lookup-item/lookup-item.component.mjs +5 -5
  87. package/esm2022/lib/Pages/lookups/lookups-routing.module.mjs +5 -5
  88. package/esm2022/lib/Pages/lookups/lookups.component.mjs +5 -5
  89. package/esm2022/lib/Pages/lookups/lookups.module.mjs +5 -5
  90. package/esm2022/lib/Pages/notifications/add-notification/add-notification.component.mjs +5 -5
  91. package/esm2022/lib/Pages/notifications/edit-email/edit-email.component.mjs +5 -5
  92. package/esm2022/lib/Pages/notifications/edit-notification/edit-notification.component.mjs +5 -5
  93. package/esm2022/lib/Pages/notifications/edit-sms/edit-sms.component.mjs +5 -5
  94. package/esm2022/lib/Pages/notifications/master-layouts/master-layouts.component.mjs +5 -5
  95. package/esm2022/lib/Pages/notifications/notifications.component.mjs +5 -5
  96. package/esm2022/lib/Pages/notifications/notifications.module.mjs +5 -5
  97. package/esm2022/lib/Pages/notifications/notifications.routing.mjs +5 -5
  98. package/esm2022/lib/Pages/notifications/template-info/template-info.component.mjs +5 -5
  99. package/esm2022/lib/Pages/notifications/templates/templates.component.mjs +5 -5
  100. package/esm2022/lib/Pages/organization/add-organization/add-organization.component.mjs +5 -5
  101. package/esm2022/lib/Pages/organization/edit-organization/edit-organization.component.mjs +5 -5
  102. package/esm2022/lib/Pages/organization/list-organization/list-organization.component.mjs +5 -5
  103. package/esm2022/lib/Pages/organization/organization.component.mjs +5 -5
  104. package/esm2022/lib/Pages/organization/organization.module.mjs +5 -5
  105. package/esm2022/lib/Pages/organization/organization.routing.mjs +5 -5
  106. package/esm2022/lib/Pages/providers/provider/provider.component.mjs +5 -5
  107. package/esm2022/lib/Pages/providers/providers-routing.module.mjs +5 -5
  108. package/esm2022/lib/Pages/providers/providers.component.mjs +5 -5
  109. package/esm2022/lib/Pages/providers/providers.module.mjs +5 -5
  110. package/esm2022/lib/Pages/publicHolidays/public-holiday/public-holiday.component.mjs +5 -5
  111. package/esm2022/lib/Pages/publicHolidays/public-holidays-routing.module.mjs +5 -5
  112. package/esm2022/lib/Pages/publicHolidays/public-holidays.component.mjs +5 -5
  113. package/esm2022/lib/Pages/publicHolidays/public-holidays.module.mjs +5 -5
  114. package/esm2022/lib/Pages/roles/permission-set-info/permission-set-info.component.mjs +5 -5
  115. package/esm2022/lib/Pages/roles/permissions/permissions.component.mjs +5 -5
  116. package/esm2022/lib/Pages/roles/permissionsets/permissionsets.component.mjs +5 -5
  117. package/esm2022/lib/Pages/roles/roles-routing.module.mjs +5 -5
  118. package/esm2022/lib/Pages/roles/roles.component.mjs +5 -5
  119. package/esm2022/lib/Pages/roles/roles.module.mjs +5 -5
  120. package/esm2022/lib/Pages/sectors/sector/sector.component.mjs +5 -5
  121. package/esm2022/lib/Pages/sectors/sector-info/sector-info.component.mjs +5 -5
  122. package/esm2022/lib/Pages/sectors/sectors-department-info/sectors-department-info.component.mjs +5 -5
  123. package/esm2022/lib/Pages/sectors/sectors-routing.module.mjs +5 -5
  124. package/esm2022/lib/Pages/sectors/sectors.component.mjs +5 -5
  125. package/esm2022/lib/Pages/sectors/sectors.module.mjs +5 -5
  126. package/esm2022/lib/Pages/shared/Pipes/survey-date.pipe.mjs +6 -5
  127. package/esm2022/lib/Pages/shared/Services/AccountService.service.mjs +4 -4
  128. package/esm2022/lib/Pages/shared/Services/ActiveDirectoryService.service.mjs +4 -4
  129. package/esm2022/lib/Pages/shared/Services/AnonymousLayoutService.service.mjs +4 -4
  130. package/esm2022/lib/Pages/shared/Services/ConfigurationsService.service.mjs +4 -4
  131. package/esm2022/lib/Pages/shared/Services/DepartmentService.service.mjs +4 -4
  132. package/esm2022/lib/Pages/shared/Services/DocumentHeaderAndFooterTemplate.service.mjs +4 -4
  133. package/esm2022/lib/Pages/shared/Services/DocumentTemplateService.service.mjs +4 -4
  134. package/esm2022/lib/Pages/shared/Services/EmailHeaderAndFooterTemplateService.Service.mjs +4 -4
  135. package/esm2022/lib/Pages/shared/Services/ErrorService.service.mjs +4 -4
  136. package/esm2022/lib/Pages/shared/Services/GlobalErrorHandler.service.mjs +4 -4
  137. package/esm2022/lib/Pages/shared/Services/HelpCenterService.service.mjs +4 -4
  138. package/esm2022/lib/Pages/shared/Services/HttpErrorInterceptor.service.mjs +4 -4
  139. package/esm2022/lib/Pages/shared/Services/ImpersonationRuleService.service.mjs +4 -4
  140. package/esm2022/lib/Pages/shared/Services/JobsService.service.mjs +4 -4
  141. package/esm2022/lib/Pages/shared/Services/LicenseService.service.mjs +4 -4
  142. package/esm2022/lib/Pages/shared/Services/LogsService.mjs +4 -4
  143. package/esm2022/lib/Pages/shared/Services/LookupGroupsService.service.mjs +4 -4
  144. package/esm2022/lib/Pages/shared/Services/LookupService.service.mjs +4 -4
  145. package/esm2022/lib/Pages/shared/Services/PermissionSetService.service.mjs +4 -4
  146. package/esm2022/lib/Pages/shared/Services/PermissionsService.service.mjs +4 -4
  147. package/esm2022/lib/Pages/shared/Services/PublicHolidayService.service.mjs +4 -4
  148. package/esm2022/lib/Pages/shared/Services/SectorService.service.mjs +4 -4
  149. package/esm2022/lib/Pages/shared/Services/TemplateService.service.mjs +4 -4
  150. package/esm2022/lib/Pages/shared/Services/WorkFlowVersionService.service.mjs +4 -4
  151. package/esm2022/lib/Pages/shared/Services/WorkflowActivityService.service.mjs +4 -4
  152. package/esm2022/lib/Pages/shared/Services/WorkflowInstanceService.service.mjs +4 -4
  153. package/esm2022/lib/Pages/shared/Services/WorkflowLogVariablesService.service.mjs +4 -4
  154. package/esm2022/lib/Pages/shared/Services/WorkflowService.service.mjs +4 -4
  155. package/esm2022/lib/Pages/shared/Services/WorkflowVariablesService.service.mjs +4 -4
  156. package/esm2022/lib/Pages/shared/Services/data.service.mjs +4 -4
  157. package/esm2022/lib/Pages/shared/Services/injectionModuleService.service.mjs +4 -4
  158. package/esm2022/lib/Pages/shared/Services/localizationsService.service .mjs +4 -4
  159. package/esm2022/lib/Pages/shared/Services/organization.service.mjs +4 -4
  160. package/esm2022/lib/Pages/shared/Services/provider.service.mjs +4 -4
  161. package/esm2022/lib/Pages/shared/Services/survey-question.service.mjs +4 -4
  162. package/esm2022/lib/Pages/shared/Services/survey.service.mjs +4 -4
  163. package/esm2022/lib/Pages/shared/Services/userService.service.mjs +4 -4
  164. package/esm2022/lib/Pages/shared/components/AdDirective.mjs +5 -4
  165. package/esm2022/lib/Pages/shared/components/external-url/external-url.component.mjs +5 -5
  166. package/esm2022/lib/Pages/shared/components/no-results/no-results.component.mjs +5 -5
  167. package/esm2022/lib/Pages/shared/components/survey/add-survey/add-survey.component.mjs +5 -5
  168. package/esm2022/lib/Pages/shared/components/survey/delete-survey/delete-survey.component.mjs +5 -5
  169. package/esm2022/lib/Pages/shared/components/survey/duplicate-survey/duplicate-survey.component.mjs +5 -5
  170. package/esm2022/lib/Pages/shared/components/survey/edit-survey/edit-survey.component.mjs +5 -5
  171. package/esm2022/lib/Pages/shared/components/survey/submissions/delete-submission/delete-submission.component.mjs +5 -5
  172. package/esm2022/lib/Pages/shared/components/survey/submissions/eliminate-submission/eliminate-submission.component.mjs +5 -5
  173. package/esm2022/lib/Pages/shared/components/survey/submissions/uneliminate-submission/uneliminate-submission.component.mjs +5 -5
  174. package/esm2022/lib/Pages/shared/components/survey/survey-info/add-question/add-question.component.mjs +5 -5
  175. package/esm2022/lib/Pages/shared/components/survey/survey-info/delete-question/delete-question.component.mjs +5 -5
  176. package/esm2022/lib/Pages/shared/components/survey/survey-info/edit-question/edit-question.component.mjs +5 -5
  177. package/esm2022/lib/Pages/shared/components/survey/survey-info/preview/preview.component.mjs +5 -5
  178. package/esm2022/lib/Pages/shared/components/survey/survey-info/publish-survey/publish-survey.component.mjs +5 -5
  179. package/esm2022/lib/Pages/shared/components/survey/survey-info/result-question/result.component.mjs +5 -5
  180. package/esm2022/lib/Pages/shared/components/survey/survey-info/survey-info.component.mjs +5 -5
  181. package/esm2022/lib/Pages/shared/components/survey/survey-info/take-survey/take-survey.component.mjs +5 -5
  182. package/esm2022/lib/Pages/shared/components/survey/survey-info/unpublish-survey/unpublish-survey.component.mjs +5 -5
  183. package/esm2022/lib/Pages/shared/components/survey/survey.component.mjs +5 -5
  184. package/esm2022/lib/Pages/shared/components/survey-form/survey-form.component.mjs +5 -5
  185. package/esm2022/lib/Pages/shared/components/survey-form-item/survey-form-item.component.mjs +5 -5
  186. package/esm2022/lib/Pages/shared/components/survey-layout/survey-layout.component.mjs +5 -5
  187. package/esm2022/lib/Pages/shared/config.service.mjs +4 -4
  188. package/esm2022/lib/Pages/shared/filter/filter.component.mjs +5 -5
  189. package/esm2022/lib/Pages/shared/modules/public-survey.module.mjs +5 -5
  190. package/esm2022/lib/Pages/shared/modules/survey-routing.module.mjs +5 -5
  191. package/esm2022/lib/Pages/shared/modules/survey.module.mjs +5 -5
  192. package/esm2022/lib/Pages/shared/shared.module.mjs +5 -5
  193. package/esm2022/lib/Pages/shared/stylesbundle.service.mjs +4 -4
  194. package/esm2022/lib/Pages/start/index/index.component.mjs +5 -5
  195. package/esm2022/lib/Pages/start/start-routing.module.mjs +5 -5
  196. package/esm2022/lib/Pages/start/start.module.mjs +5 -5
  197. package/esm2022/lib/Pages/users/users.component.mjs +5 -5
  198. package/esm2022/lib/Pages/users/users.module.mjs +5 -5
  199. package/esm2022/lib/Pages/workflows/activity/workflow-activity-add/workflow-activity-add.component.mjs +5 -5
  200. package/esm2022/lib/Pages/workflows/activity/workflow-activity-edit/workflow-activity-edit.component.mjs +5 -5
  201. package/esm2022/lib/Pages/workflows/instance-info/instance-info.component.mjs +5 -5
  202. package/esm2022/lib/Pages/workflows/tabs/tabs.component.mjs +5 -5
  203. package/esm2022/lib/Pages/workflows/version-info/version-info.component.mjs +5 -5
  204. package/esm2022/lib/Pages/workflows/workflow/workflow.component.mjs +5 -5
  205. package/esm2022/lib/Pages/workflows/workflows-routing.module.mjs +5 -5
  206. package/esm2022/lib/Pages/workflows/workflows.component.mjs +5 -5
  207. package/esm2022/lib/Pages/workflows/workflows.module.mjs +5 -5
  208. package/esm2022/lib/_metronic/core/services/layout-init.service.mjs +4 -4
  209. package/esm2022/lib/_metronic/core/services/layout.service.mjs +4 -4
  210. package/esm2022/lib/_metronic/core/services/page-info.service.mjs +4 -4
  211. package/esm2022/lib/masterlayout.component.mjs +5 -5
  212. package/esm2022/lib/masterlayout.module.mjs +5 -5
  213. package/esm2022/lib/masterlayout.routing.mjs +5 -5
  214. package/fesm2022/bnsights-bbsf-admin-portal.mjs +802 -796
  215. package/fesm2022/bnsights-bbsf-admin-portal.mjs.map +1 -1
  216. package/lib/Pages/anonymouslayout/anonymouslayout.component.d.ts +2 -0
  217. package/package.json +12 -12
@@ -673,12 +673,12 @@ export class SurveyFormComponent {
673
673
  }
674
674
  }
675
675
  }
676
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SurveyFormComponent, deps: [{ token: i0.ElementRef }, { token: i1.RenderComponentService }, { token: i2.UtilityService }, { token: i3.FormGroupDirective }], target: i0.ɵɵFactoryTarget.Component }); }
677
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: SurveyFormComponent, selector: "survey-form", inputs: { group: "group", options: "options" }, providers: [FormGroupDirective], viewQueries: [{ propertyName: "adHost", first: true, predicate: AdDirective, descendants: true, static: true }, { propertyName: "myChild", first: true, predicate: DropdownListComponent, descendants: true }, { propertyName: "documentEditForm", first: true, predicate: NgForm, descendants: true }], ngImport: i0, template: "<div class=\"survey-preview\">\r\n <ng-template adHost></ng-template>\r\n</div>\r\n\r\n", dependencies: [{ kind: "directive", type: i4.AdDirective, selector: "[adHost]" }] }); }
676
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: SurveyFormComponent, deps: [{ token: i0.ElementRef }, { token: i1.RenderComponentService }, { token: i2.UtilityService }, { token: i3.FormGroupDirective }], target: i0.ɵɵFactoryTarget.Component }); }
677
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.6", type: SurveyFormComponent, selector: "survey-form", inputs: { group: "group", options: "options" }, providers: [FormGroupDirective], viewQueries: [{ propertyName: "adHost", first: true, predicate: AdDirective, descendants: true, static: true }, { propertyName: "myChild", first: true, predicate: DropdownListComponent, descendants: true }, { propertyName: "documentEditForm", first: true, predicate: NgForm, descendants: true }], ngImport: i0, template: "<div class=\"survey-preview\">\r\n <ng-template adHost></ng-template>\r\n</div>\r\n\r\n", dependencies: [{ kind: "directive", type: i4.AdDirective, selector: "[adHost]" }] }); }
678
678
  }
679
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SurveyFormComponent, decorators: [{
679
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: SurveyFormComponent, decorators: [{
680
680
  type: Component,
681
- args: [{ selector: 'survey-form', providers: [FormGroupDirective], template: "<div class=\"survey-preview\">\r\n <ng-template adHost></ng-template>\r\n</div>\r\n\r\n" }]
681
+ args: [{ selector: 'survey-form', providers: [FormGroupDirective], standalone: false, template: "<div class=\"survey-preview\">\r\n <ng-template adHost></ng-template>\r\n</div>\r\n\r\n" }]
682
682
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.RenderComponentService }, { type: i2.UtilityService }, { type: i3.FormGroupDirective }], propDecorators: { group: [{
683
683
  type: Input
684
684
  }], options: [{
@@ -693,4 +693,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
693
693
  type: ViewChild,
694
694
  args: [NgForm]
695
695
  }] } });
696
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VydmV5LWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi1hZG1pbi1wb3J0YWwvc3JjL2xpYi9QYWdlcy9zaGFyZWQvY29tcG9uZW50cy9zdXJ2ZXktZm9ybS9zdXJ2ZXktZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLWFkbWluLXBvcnRhbC9zcmMvbGliL1BhZ2VzL3NoYXJlZC9jb21wb25lbnRzL3N1cnZleS1mb3JtL3N1cnZleS1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsS0FBSyxFQUFVLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRixPQUFPLEVBQUUsU0FBUyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRixPQUFPLEVBQ0wsYUFBYSxFQUFFLGlCQUFpQixFQUFFLHFCQUFxQixFQUFvQixlQUFlLEVBQ2pGLFFBQVEsRUFBRSxpQkFBaUIsRUFBRSxjQUFjLEVBQUUsa0JBQWtCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFDL0Ysa0JBQWtCLEVBQUUsV0FBVyxFQUEwQixVQUFVLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFDL0YsY0FBYyxFQUFFLGtCQUFrQixFQUNuQyxNQUFNLHlCQUF5QixDQUFDO0FBR2pDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBRW5GLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQzs7Ozs7O0FBT3pGLE1BQU0sT0FBTyxt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QUFDLGtCQUFrQixDQUFDLGtFQUtwQixXQUFXLHdGQUNYLHFCQUFxQixtRkFXckIsTUFBTSxnRENwQ25CLDRGQUlBOzs0RkRpQmEsbUJBQW1CO2tCQUwvQixTQUFTOytCQUNFLGFBQWEsYUFFWixDQUFDLGtCQUFrQixDQUFDO2tMQUd0QixLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNvQyxNQUFNO3NCQUEvQyxTQUFTO3VCQUFDLFdBQVcsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBRWhDLE9BQU87c0JBRGQsU0FBUzt1QkFBQyxxQkFBcUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBV2hDLGdCQUFnQjtzQkFBbEMsU0FBUzt1QkFBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbnB1dCwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwLCBGb3JtR3JvdXBEaXJlY3RpdmUsIE5nRm9ybSwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHtcclxuICBDb250cm9sTGF5b3V0LCBEYXRlUGlja2VyT3B0aW9ucywgRHJvcGRvd25MaXN0Q29tcG9uZW50LCBEcm9wZG93bkxpc3RJdGVtLCBEcm9wZG93bk9wdGlvbnMsXHJcbiAgRmlsZURUTywgRmlsZVR5cGUsIEZpbGVVcGxvYWRPcHRpb25zLCBGb3JjZURpcmVjdGlvbiwgSW1hZ2VVcGxvYWRPcHRpb25zLCBJbnB1dFR5cGUsIFBpY2tlclR5cGUsXHJcbiAgUmFkaW9CdXR0b25PcHRpb25zLCBSYW5nZU51bWJlciwgUmVuZGVyQ29tcG9uZW50U2VydmljZSwgU2VsZWN0TW9kZSwgU3RhcnRWaWV3LCBUZXh0QXJlYU9wdGlvbnMsXHJcbiAgVGV4dEJveE9wdGlvbnMsIFRvZ2dsZVNsaWRlT3B0aW9uc1xyXG59IGZyb20gJ0BibnNpZ2h0cy9iYnNmLWNvbnRyb2xzJztcclxuaW1wb3J0IHsgVXRpbGl0eVNlcnZpY2UgfSBmcm9tICdAYm5zaWdodHMvYmJzZi11dGlsaXRpZXMnO1xyXG5cclxuaW1wb3J0IHsgU3VydmV5T3B0aW9uVHlwZSB9IGZyb20gJy4uLy4uL0VudW1zL0VudW1zJztcclxuaW1wb3J0IHsgU3VydmV5RmlsZWRWYWx1ZURUTyB9IGZyb20gJy4uLy4uL21vZGVscy9TdXJ2ZXlNb2RlbHMvc3VydmV5LWZpbGVkLXZhbHVlJztcclxuaW1wb3J0IHsgU3VydmV5Rm9ybU9wdGlvbnMgfSBmcm9tICcuLi8uLi9tb2RlbHMvU3VydmV5TW9kZWxzL3N1cnZleS1mb3JtLW9wdGlvbnMnO1xyXG5pbXBvcnQgeyBBZERpcmVjdGl2ZSB9IGZyb20gJy4uL0FkRGlyZWN0aXZlJztcclxuaW1wb3J0IHsgU3VydmV5Rm9ybUl0ZW1Db21wb25lbnQgfSBmcm9tICcuLi9zdXJ2ZXktZm9ybS1pdGVtL3N1cnZleS1mb3JtLWl0ZW0uY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc3VydmV5LWZvcm0nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zdXJ2ZXktZm9ybS5jb21wb25lbnQuaHRtbCcsXHJcbiAgcHJvdmlkZXJzOiBbRm9ybUdyb3VwRGlyZWN0aXZlXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFN1cnZleUZvcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBJbnB1dCgpIGdyb3VwOiBGb3JtR3JvdXA7XHJcbiAgQElucHV0KCkgb3B0aW9uczogU3VydmV5Rm9ybU9wdGlvbnM7XHJcbiAgQFZpZXdDaGlsZChBZERpcmVjdGl2ZSwgeyBzdGF0aWM6IHRydWUgfSkgYWRIb3N0ITogQWREaXJlY3RpdmU7XHJcbiAgQFZpZXdDaGlsZChEcm9wZG93bkxpc3RDb21wb25lbnQsIHsgc3RhdGljOiBmYWxzZSB9KVxyXG4gIHByaXZhdGUgbXlDaGlsZDogRHJvcGRvd25MaXN0Q29tcG9uZW50O1xyXG5cclxuICBmaWxlZEdyb3VwOiBGb3JtR3JvdXA7XHJcbiAgcmVzdWx0OiBTdXJ2ZXlGaWxlZFZhbHVlRFRPW10gPSBbXTtcclxuICBjaGlsZElkTGlzdDogc3RyaW5nW10gPSBbXTtcclxuICBjaGlsZFF1ZXN0aW9uTGlzdDogYW55W10gPSBbXTtcclxuICBhcmVhT2ZGb2N1c0NvbnRyb2xOYW1lOiBzdHJpbmc7XHJcbiAgY2hhbGxlbmdlQ29udHJvbE5hbWU6IHN0cmluZztcclxuICBhcmVhT2ZGb2N1c0NvbnRyb2xJbmRleCA9IDA7XHJcbiAgY2hhbGxlbmdlQ29udHJvbEluZGV4ID0gMDtcclxuICBAVmlld0NoaWxkKE5nRm9ybSkgZG9jdW1lbnRFZGl0Rm9ybSE6IE5nRm9ybTtcclxuICBpc0RlbGV0ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGNoZWNrTGlzdDogYW55W10gPSBbXTtcclxuICBzaG93ZWRDaGlsZFF1ZXN0aW9uOiBhbnlbXSA9IFtdO1xyXG4gIFRleHRDb250ZXh0OiBhbnk7XHJcbiAgaXNGaXJzdFZhbGlkOiBib29sZWFuID0gdHJ1ZTtcclxuICBsYWJlbENsYXNzOiBzdHJpbmcgPSAnVGVzdHRzYWRmdic7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGVsOiBFbGVtZW50UmVmLFxyXG4gICAgcHJpdmF0ZSByZW5kZXJDb21wb25lbnRTZXJ2aWNlOiBSZW5kZXJDb21wb25lbnRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB1dGlsaXR5U2VydmljZTogVXRpbGl0eVNlcnZpY2UsXHJcbiAgICBwdWJsaWMgVGV4dENvbnRyb2xIb3N0OiBGb3JtR3JvdXBEaXJlY3RpdmVcclxuICApIHsgfVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgY29uc3Qgdmlld0NvbnRhaW5lclJlZiA9IHRoaXMuYWRIb3N0LnZpZXdDb250YWluZXJSZWY7XHJcbiAgICB2aWV3Q29udGFpbmVyUmVmLmNsZWFyKCk7XHJcbiAgICB0aGlzLmZpbGVkR3JvdXAgPSBuZXcgRm9ybUdyb3VwKHt9KTtcclxuICAgIHRoaXMuZ3JvdXAuYWRkQ29udHJvbCh0aGlzLm9wdGlvbnMuTmFtZSwgdGhpcy5maWxlZEdyb3VwKTtcclxuXHJcbiAgICB0aGlzLmdyb3VwLnN0YXR1c0NoYW5nZXMuc3Vic2NyaWJlKChlKSA9PiB7XHJcbiAgICAgIGNvbnNvbGUubG9nKCdHcm91cCcsIGUpO1xyXG4gICAgfSk7XHJcbiAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgdGhpcy5vcHRpb25zLlF1ZXN0aW9uTGlzdC5sZW5ndGg7IGluZGV4KyspIHtcclxuICAgICAgdmFyIGVsZW1lbnQgPSB0aGlzLm9wdGlvbnMuUXVlc3Rpb25MaXN0W2luZGV4XTtcclxuXHJcbiAgICAgIHN3aXRjaCAoZWxlbWVudC5xdWVzdGlvblR5cGVJdGVtSUQpIHtcclxuICAgICAgICAvLy9UZXh0Qm94XHJcblxyXG4gICAgICAgIGNhc2UgU3VydmV5T3B0aW9uVHlwZS5UZXh0LnRvTG9jYWxlTG93ZXJDYXNlKCk6XHJcbiAgICAgICAgICB2YXIgVGV4dCA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgICAgICAgVGV4dC5uYW1lID0gJ3EnICsgZWxlbWVudC5pRF9HVUlEO1xyXG4gICAgICAgICAgVGV4dC5sYWJlbFZhbHVlID0gdGhpcy51dGlsaXR5U2VydmljZS5pc0N1cnJlbnRMYW5ndWFnZUFyYWJpYygpXHJcbiAgICAgICAgICAgID8gZWxlbWVudC50ZXh0LmFyYWJpYyArIGAuJHtlbGVtZW50LnF1ZXN0aW9uVHlwZUl0ZW1JRH1gXHJcbiAgICAgICAgICAgIDogZWxlbWVudC50ZXh0LmVuZ2xpc2ggKyBgLiR7ZWxlbWVudC5xdWVzdGlvblR5cGVJdGVtSUR9YDtcclxuICAgICAgICAgIFRleHQuaGlkZUxhYmVsID0gZmFsc2U7XHJcbiAgICAgICAgICBUZXh0LmlzUmVxdWlyZWQgPSBlbGVtZW50LmlzUmVsYXRlZFRvU3VydmV5UXVlc3Rpb25cclxuICAgICAgICAgICAgPyBmYWxzZVxyXG4gICAgICAgICAgICA6IGVsZW1lbnQub3B0aW9ucy5pc1JlcXVpcmVkO1xyXG4gICAgICAgICAgVGV4dC5pc1JlYWRvbmx5ID0gZWxlbWVudC5pc1JlbGF0ZWRUb1N1cnZleVF1ZXN0aW9uO1xyXG4gICAgICAgICAgVGV4dC5pc0Rpc2FibGVkID0gdGhpcy5vcHRpb25zLlJlYWRvbmx5O1xyXG4gICAgICAgICAgVGV4dC5sYWJlbEV4dHJhQ2xhc3NlcyA9IHRoaXMubGFiZWxDbGFzcztcclxuICAgICAgICAgIFRleHQudmlld1R5cGUgPSBDb250cm9sTGF5b3V0LlZlcnRpY2FsO1xyXG4gICAgICAgICAgVGV4dC5sYWJlbERlc2NyaXB0aW9uID0gdGhpcy51dGlsaXR5U2VydmljZS5pc0N1cnJlbnRMYW5ndWFnZUFyYWJpYygpXHJcbiAgICAgICAgICAgID8gZWxlbWVudC5vcHRpb25zLmRlc2NyaXB0aW9uLmFyYWJpY1xyXG4gICAgICAgICAgICA6IGVsZW1lbnQub3B0aW9ucy5kZXNjcmlwdGlvbi5lbmdsaXNoO1xyXG4gICAgICAgICAgaWYgKGVsZW1lbnQudmFsdWUudGV4dCkgVGV4dC52YWx1ZSA9IGVsZW1lbnQudmFsdWUudGV4dDtcclxuICAgICAgICAgIGlmIChlbGVtZW50Lm9wdGlvbnMubWF4TGVuZ3RoKVxyXG4gICAgICAgICAgICBUZXh0Lm1heExlbmd0aCA9IGVsZW1lbnQub3B0aW9ucy5tYXhMZW5ndGg7XHJcbiAgICAgICAgICBpZiAoZWxlbWVudC5vcHRpb25zLm1pbkxlbmd0aClcclxuICAgICAgICAgICAgVGV4dC5taW5MZW5ndGggPSBlbGVtZW50Lm9wdGlvbnMubWluTGVuZ3RoO1xyXG4gICAgICAgICAgVGV4dC50eXBlID0gSW5wdXRUeXBlLlRleHQ7XHJcbiAgICAgICAgICBpZiAoZWxlbWVudC5pc1JlbGF0ZWRUb1N1cnZleVF1ZXN0aW9uKSB0aGlzLmNoZWNrTGlzdC5wdXNoKFRleHQpO1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJDb21wb25lbnRTZXJ2aWNlLnJlbmRlckR5bmFtaWNDb21wb25lbnQ8U3VydmV5Rm9ybUl0ZW1Db21wb25lbnQ+KFxyXG4gICAgICAgICAgICB2aWV3Q29udGFpbmVyUmVmLFxyXG4gICAgICAgICAgICBTdXJ2ZXlGb3JtSXRlbUNvbXBvbmVudCxcclxuICAgICAgICAgICAgdGhpcy5maWxlZEdyb3VwLFxyXG4gICAgICAgICAgICBUZXh0LFxyXG4gICAgICAgICAgICBlbGVtZW50Lm9wdGlvbnMuc2l6ZVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICBjYXNlIFN1cnZleU9wdGlvblR5cGUuRW1haWwudG9Mb2NhbGVMb3dlckNhc2UoKTpcclxuICAgICAgICAgIGxldCBFbWFpbCA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgICAgICAgRW1haWwubmFtZSA9ICdxJyArIGVsZW1lbnQuaURfR1VJRDtcclxuICAgICAgICAgIEVtYWlsLmxhYmVsVmFsdWUgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmlzQ3VycmVudExhbmd1YWdlQXJhYmljKClcclxuICAgICAgICAgICAgPyBlbGVtZW50LnRleHQuYXJhYmljICsgYC4ke2VsZW1lbnQucXVlc3Rpb25UeXBlSXRlbUlEfWBcclxuICAgICAgICAgICAgOiBlbGVtZW50LnRleHQuZW5nbGlzaCArIGAuJHtlbGVtZW50LnF1ZXN0aW9uVHlwZUl0ZW1JRH1gO1xyXG4gICAgICAgICAgRW1haWwuaGlkZUxhYmVsID0gZmFsc2U7XHJcbiAgICAgICAgICBFbWFpbC5sYWJlbEV4dHJhQ2xhc3NlcyA9IHRoaXMubGFiZWxDbGFzcztcclxuICAgICAgICAgIEVtYWlsLmlzUmVxdWlyZWQgPSBlbGVtZW50LmlzUmVsYXRlZFRvU3VydmV5UXVlc3Rpb25cclxuICAgICAgICAgICAgPyBmYWxzZVxyXG4gICAgICAgICAgICA6IGVsZW1lbnQub3B0aW9ucy5pc1JlcXVpcmVkO1xyXG4gICAgICAgICAgRW1haWwuaXNSZWFkb25seSA9IGVsZW1lbnQuaXNSZWxhdGVkVG9TdXJ2ZXlRdWVzdGlvbjtcclxuICAgICAgICAgIEVtYWlsLnZpZXdUeXBlID0gQ29udHJvbExheW91dC5WZXJ0aWNhbDtcclxuICAgICAgICAgIEVtYWlsLmlzRGlzYWJsZWQgPSB0aGlzLm9wdGlvbnMuUmVhZG9ubHk7XHJcbiAgICAgICAgICBFbWFpbC5sYWJlbERlc2NyaXB0aW9uID0gdGhpcy51dGlsaXR5U2VydmljZS5pc0N1cnJlbnRMYW5ndWFnZUFyYWJpYygpXHJcbiAgICAgICAgICAgID8gZWxlbWVudC5vcHRpb25zLmRlc2NyaXB0aW9uLmFyYWJpY1xyXG4gICAgICAgICAgICA6IGVsZW1lbnQub3B0aW9ucy5kZXNjcmlwdGlvbi5lbmdsaXNoO1xyXG4gICAgICAgICAgRW1haWwudHlwZSA9IElucHV0VHlwZS5FbWFpbDtcclxuICAgICAgICAgIGlmIChlbGVtZW50LnZhbHVlLnRleHQpIEVtYWlsLnZhbHVlID0gZWxlbWVudC52YWx1ZS50ZXh0O1xyXG4gICAgICAgICAgaWYgKGVsZW1lbnQuaXNSZWxhdGVkVG9TdXJ2ZXlRdWVzdGlvbikgdGhpcy5jaGVja0xpc3QucHVzaChFbWFpbCk7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlckNvbXBvbmVudFNlcnZpY2UucmVuZGVyRHluYW1pY0NvbXBvbmVudDxTdXJ2ZXlGb3JtSXRlbUNvbXBvbmVudD4oXHJcbiAgICAgICAgICAgIHZpZXdDb250YWluZXJSZWYsXHJcbiAgICAgICAgICAgIFN1cnZleUZvcm1JdGVtQ29tcG9uZW50LFxyXG4gICAgICAgICAgICB0aGlzLmZpbGVkR3JvdXAsXHJcbiAgICAgICAgICAgIEVtYWlsLFxyXG4gICAgICAgICAgICBlbGVtZW50Lm9wdGlvbnMuc2l6ZVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgU3VydmV5T3B0aW9uVHlwZS5OdW1iZXIudG9Mb2NhbGVMb3dlckNhc2UoKTpcclxuICAgICAgICAgIGxldCBOdW1iZXIgPSBuZXcgVGV4dEJveE9wdGlvbnMoKTtcclxuICAgICAgICAgIE51bWJlci5uYW1lID0gJ3EnICsgZWxlbWVudC5pRF9HVUlEO1xyXG4gICAgICAgICAgTnVtYmVyLmhpZGVMYWJlbCA9IGZhbHNlO1xyXG4gICAgICAgICAgTnVtYmVyLmxhYmVsRXh0cmFDbGFzc2VzID0gdGhpcy5sYWJlbENsYXNzO1xyXG4gICAgICAgICAgTnVtYmVyLmxhYmVsVmFsdWUgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmlzQ3VycmVudExhbmd1YWdlQXJhYmljKClcclxuICAgICAgICAgICAgPyBlbGVtZW50LnRleHQuYXJhYmljICsgYC4ke2VsZW1lbnQucXVlc3Rpb25UeXBlSXRlbUlEfWBcclxuICAgICAgICAgICAgOiBlbGVtZW50LnRleHQuZW5nbGlzaCArIGAuJHtlbGVtZW50LnF1ZXN0aW9uVHlwZUl0ZW1JRH1gO1xyXG4gICAgICAgICAgTnVtYmVyLmlzUmVxdWlyZWQgPSBlbGVtZW50LmlzUmVsYXRlZFRvU3VydmV5UXVlc3Rpb25cclxuICAgICAgICAgICAgPyBmYWxzZVxyXG4gICAgICAgICAgICA6IGVsZW1lbnQub3B0aW9ucy5pc1JlcXVpcmVkO1xyXG4gICAgICAgICAgTnVtYmVyLmlzUmVhZG9ubHkgPSBlbGVtZW50LmlzUmVsYXRlZFRvU3VydmV5UXVlc3Rpb247XHJcbiAgICAgICAgICBOdW1iZXIudmlld1R5cGUgPSBDb250cm9sTGF5b3V0LlZlcnRpY2FsO1xyXG4gICAgICAgICAgTnVtYmVyLmlzRGlzYWJsZWQgPSB0aGlzLm9wdGlvbnMuUmVhZG9ubHk7XHJcbiAgICAgICAgICBOdW1iZXIubGFiZWxEZXNjcmlwdGlvbiA9XHJcbiAgICAgICAgICAgIHRoaXMudXRpbGl0eVNlcnZpY2UuaXNDdXJyZW50TGFuZ3VhZ2VBcmFiaWMoKVxyXG4gICAgICAgICAgICAgID8gZWxlbWVudC5vcHRpb25zLmRlc2NyaXB0aW9uLmFyYWJpY1xyXG4gICAgICAgICAgICAgIDogZWxlbWVudC5vcHRpb25zLmRlc2NyaXB0aW9uLmVuZ2xpc2g7XHJcbiAgICAgICAgICBOdW1iZXIudHlwZSA9IElucHV0VHlwZS5OdW1iZXI7XHJcbiAgICAgICAgICBsZXQgcmFuZ2VOdW1iZXIgPSBuZXcgUmFuZ2VOdW1iZXIoKTtcclxuICAgICAgICAgIHJhbmdlTnVtYmVyLnRvID0gZWxlbWVudC5vcHRpb25zLm1heExlbmd0aDtcclxuICAgICAgICAgIHJhbmdlTnVtYmVyLmZyb20gPSBlbGVtZW50Lm9wdGlvbnMubWluTGVuZ3RoO1xyXG4gICAgICAgICAgTnVtYmVyLm51bWJlclJhbmdlID0gcmFuZ2VOdW1iZXI7XHJcbiAgICAgICAgICBpZiAoZWxlbWVudC52YWx1ZS50ZXh0KSBOdW1iZXIudmFsdWUgPSBlbGVtZW50LnZhbHVlLnRleHQ7XHJcbiAgICAgICAgICBpZiAoZWxlbWVudC5pc1JlbGF0ZWRUb1N1cnZleVF1ZXN0aW9uKSB0aGlzLmNoZWNrTGlzdC5wdXNoKE51bWJlcik7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlckNvbXBvbmVudFNlcnZpY2UucmVuZGVyRHluYW1pY0NvbXBvbmVudDxTdXJ2ZXlGb3JtSXRlbUNvbXBvbmVudD4oXHJcbiAgICAgICAgICAgIHZpZXdDb250YWluZXJSZWYsXHJcbiAgICAgICAgICAgIFN1cnZleUZvcm1JdGVtQ29tcG9uZW50LFxyXG4gICAgICAgICAgICB0aGlzLmZpbGVkR3JvdXAsXHJcbiAgICAgICAgICAgIE51bWJlcixcclxuICAgICAgICAgICAgZWxlbWVudC5vcHRpb25zLnNpemVcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICAvLy9EYXRlVGltZVxyXG4gICAgICAgIGNhc2UgU3VydmV5T3B0aW9uVHlwZS5EYXRlLnRvTG9jYWxlTG93ZXJDYXNlKCk6XHJcbiAgICAgICAgICBsZXQgRGF0ZSA9IG5ldyBEYXRlUGlja2VyT3B0aW9ucygpO1xyXG4gICAgICAgICAgRGF0ZS5uYW1lID0gJ3EnICsgZWxlbWVudC5pRF9HVUlEO1xyXG4gICAgICAgICAgRGF0ZS5oaWRlTGFiZWwgPSBmYWxzZTtcclxuICAgICAgICAgIERhdGUubGFiZWxFeHRyYUNsYXNzZXMgPSB0aGlzLmxhYmVsQ2xhc3M7XHJcbiAgICAgICAgICBEYXRlLmxhYmVsVmFsdWUgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmlzQ3VycmVudExhbmd1YWdlQXJhYmljKClcclxuICAgICAgICAgICAgPyBlbGVtZW50LnRleHQuYXJhYmljICsgYC4ke2VsZW1lbnQucXVlc3Rpb25UeXBlSXRlbUlEfWBcclxuICAgICAgICAgICAgOiBlbGVtZW50LnRleHQuZW5nbGlzaCArIGAuJHtlbGVtZW50LnF1ZXN0aW9uVHlwZUl0ZW1JRH1gO1xyXG4gICAgICAgICAgRGF0ZS5pc1JlcXVpcmVkID0gZWxlbWVudC5pc1JlbGF0ZWRUb1N1cnZleVF1ZXN0aW9uXHJcbiAgICAgICAgICAgID8gZmFsc2VcclxuICAgICAgICAgICAgOiBlbGVtZW50Lm9wdGlvbnMuaXNSZXF1aXJlZDtcclxuICAgICAgICAgIERhdGUuaXNSZWFkb25seSA9IGVsZW1lbnQuaXNSZWxhdGVkVG9TdXJ2ZXlRdWVzdGlvbjtcclxuICAgICAgICAgIERhdGUudmlld1R5cGUgPSBDb250cm9sTGF5b3V0LlZlcnRpY2FsO1xyXG4gICAgICAgICAgRGF0ZS5pc0Rpc2FibGVkID0gdGhpcy5vcHRpb25zLlJlYWRvbmx5O1xyXG4gICAgICAgICAgRGF0ZS5sYWJlbERlc2NyaXB0aW9uID0gdGhpcy51dGlsaXR5U2VydmljZS5pc0N1cnJlbnRMYW5ndWFnZUFyYWJpYygpXHJcbiAgICAgICAgICAgID8gZWxlbWVudC5vcHRpb25zLmRlc2NyaXB0aW9uLmFyYWJpY1xyXG4gICAgICAgICAgICA6IGVsZW1lbnQub3B0aW9ucy5kZXNjcmlwdGlvbi5lbmdsaXNoO1xyXG4gICAgICAgICAgRGF0ZS5waWNrZXJUeXBlID0gUGlja2VyVHlwZS5DYWxlbmRhcjtcclxuICAgICAgICAgIERhdGUuc2VsZWN0TW9kZSA9IFNlbGVjdE1vZGUuU2luZ2xlO1xyXG4gICAgICAgICAgRGF0ZS5zdGFydFZpZXcgPSBTdGFydFZpZXcuTW9udGg7XHJcbiAgICAgICAgICBpZiAoZWxlbWVudC52YWx1ZS5kYXRlVGltZSkgRGF0ZS52YWx1ZSA9IGVsZW1lbnQudmFsdWUuZGF0ZVRpbWU7XHJcbiAgICAgICAgICBpZiAoZWxlbWVudC5pc1JlbGF0ZWRUb1N1cnZleVF1ZXN0aW9uKSB0aGlzLmNoZWNrTGlzdC5wdXNoKERhdGUpO1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJDb21wb25lbnRTZXJ2aWNlLnJlbmRlckR5bmFtaWNDb21wb25lbnQ8U3VydmV5Rm9ybUl0ZW1Db21wb25lbnQ+KFxyXG4gICAgICAgICAgICB2aWV3Q29udGFpbmVyUmVmLFxyXG4gICAgICAgICAgICBTdXJ2ZXlGb3JtSXRlbUNvbXBvbmVudCxcclxuICAgICAgICAgICAgdGhpcy5maWxlZEdyb3VwLFxyXG4gICAgICAgICAgICBEYXRlLFxyXG4gICAgICAgICAgICBlbGVtZW50Lm9wdGlvbnMuc2l6ZVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgU3VydmV5T3B0aW9uVHlwZS5EYXRlVGltZS50b0xvY2FsZUxvd2VyQ2FzZSgpOlxyXG4gICAgICAgICAgbGV0IERhdGVUaW1lID0gbmV3IERhdGVQaWNrZXJPcHRpb25zKCk7XHJcbiAgICAgICAgICBEYXRlVGltZS5uYW1lID0gJ3EnICsgZWxlbWVudC5pRF9HVUlEO1xyXG4gICAgICAgICAgRGF0ZVRpbWUuaGlkZUxhYmVsID0gZmFsc2U7XHJcbiAgICAgICAgICBEYXRlVGltZS5sYWJlbEV4dHJhQ2xhc3NlcyA9IHRoaXMubGFiZWxDbGFzcztcclxuICAgICAgICAgIERhdGVUaW1lLmxhYmVsVmFsdWUgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmlzQ3VycmVudExhbmd1YWdlQXJhYmljKClcclxuICAgICAgICAgICAgPyBlbGVtZW50LnRleHQuYXJhYmljICsgYC4ke2VsZW1lbnQucXVlc3Rpb25UeXBlSXRlbUlEfWBcclxuICAgICAgICAgICAgOiBlbGVtZW50LnRleHQuZW5nbGlzaCArIGAuJHtlbGVtZW50LnF1ZXN0aW9uVHlwZUl0ZW1JRH1gO1xyXG4gICAgICAgICAgRGF0ZVRpbWUuaXNSZXF1aXJlZCA9IGVsZW1lbnQuaXNSZWxhdGVkVG9TdXJ2ZXlRdWVzdGlvblxyXG4gICAgICAgICAgICA/IGZhbHNlXHJcbiAgICAgICAgICAgIDogZWxlbWVudC5vcHRpb25zLmlzUmVxdWlyZWQ7XHJcbiAgICAgICAgICBEYXRlVGltZS5pc1JlYWRvbmx5ID0gZWxlbWVudC5pc1JlbGF0ZWRUb1N1cnZleVF1ZXN0aW9uO1xyXG4gICAgICAgICAgRGF0ZVRpbWUudmlld1R5cGUgPSBDb250cm9sTGF5b3V0LlZlcnRpY2FsO1xyXG4gICAgICAgICAgRGF0ZVRpbWUuaXNEaXNhYmxlZCA9IHRoaXMub3B0aW9ucy5SZWFkb25seTtcclxuICAgICAgICAgIERhdGVUaW1lLmxhYmVsRGVzY3JpcHRpb24gPVxyXG4gICAgICAgICAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLmlzQ3VycmVudExhbmd1YWdlQXJhYmljKClcclxuICAgICAgICAgICAgICA/IGVsZW1lbnQub3B0aW9ucy5kZXNjcmlwdGlvbi5hcmFiaWNcclxuICAgICAgICAgICAgICA6IGVsZW1lbnQub3B0aW9ucy5kZXNjcmlwdGlvbi5lbmdsaXNoO1xyXG4gICAgICAgICAgRGF0ZVRpbWUucGlja2VyVHlwZSA9IFBpY2tlclR5cGUuQm90aDtcclxuICAgICAgICAgIERhdGVUaW1lLnNlbGVjdE1vZGUgPSBTZWxlY3RNb2RlLlNpbmdsZTtcclxuICAgICAgICAgIERhdGVUaW1lLnN0YXJ0VmlldyA9IFN0YXJ0Vmlldy5Nb250aDtcclxuICAgICAgICAgIGlmIChlbGVtZW50LnZhbHVlLmRhdGVUaW1lKSBEYXRlVGltZS52YWx1ZSA9IGVsZW1lbnQudmFsdWUuZGF0ZVRpbWU7XHJcbiAgICAgICAgICBpZiAoZWxlbWVudC5pc1JlbGF0ZWRUb1N1cnZleVF1ZXN0aW9uKSB0aGlzLmNoZWNrTGlzdC5wdXNoKERhdGVUaW1lKTtcclxuICAgICAgICAgIHRoaXMucmVuZGVyQ29tcG9uZW50U2VydmljZS5yZW5kZXJEeW5hbWljQ29tcG9uZW50PFN1cnZleUZvcm1JdGVtQ29tcG9uZW50PihcclxuICAgICAgICAgICAgdmlld0NvbnRhaW5lclJlZixcclxuICAgICAgICAgICAgU3VydmV5Rm9ybUl0ZW1Db21wb25lbnQsXHJcbiAgICAgICAgICAgIHRoaXMuZmlsZWRHcm91cCxcclxuICAgICAgICAgICAgRGF0ZVRpbWUsXHJcbiAgICAgICAgICAgIGVsZW1lbnQub3B0aW9ucy5zaXplXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgLy9Ecm9wZG93blxyXG4gICAgICAgIGNhc2UgU3VydmV5T3B0aW9uVHlwZS5TaW5nbGVTZWxlY3QudG9Mb2NhbGVMb3dlckNhc2UoKTpcclxuICAgICAgICAgIGxldCBTaW5nbGVTZWxlY3QgPSBuZXcgRHJvcGRvd25PcHRpb25zKCk7XHJcbiAgICAgICAgICBTaW5nbGVTZWxlY3QubmFtZSA9ICdxJyArIGVsZW1lbnQuaURfR1VJRDtcclxuICAgICAgICAgIFNpbmdsZVNlbGVjdC5oaWRlTGFiZWwgPSBmYWxzZTtcclxuICAgICAgICAgIFNpbmdsZVNlbGVjdC5sYWJlbEV4dHJhQ2xhc3NlcyA9IHRoaXMubGFiZWxDbGFzcztcclxuICAgICAgICAgIFNpbmdsZVNlbGVjdC5sYWJlbFZhbHVlID1cclxuICAgICAgICAgICAgdGhpcy51dGlsaXR5U2VydmljZS5pc0N1cnJlbnRMYW5ndWFnZUFyYWJpYygpXHJcbiAgICAgICAgICAgICAgPyBlbGVtZW50LnRleHQuYXJhYmljICsgYC4ke2VsZW1lbnQucXVlc3Rpb25UeXBlSXRlbUlEfWBcclxuICAgICAgICAgICAgICA6IGVsZW1lbnQudGV4dC5lbmdsaXNoICsgYC4ke2VsZW1lbnQucXVlc3Rpb25UeXBlSXRlbUlEfWA7XHJcbiAgICAgICAgICBTaW5nbGVTZWxlY3QuaXNSZXF1aXJlZCA9IGVsZW1lbnQuaXNSZWxhdGVkVG9TdXJ2ZXlRdWVzdGlvblxyXG4gICAgICAgICAgICA/IGZhbHNlXHJcbiAgICAgICAgICAgIDogZWxlbWVudC5vcHRpb25zLmlzUmVxdWlyZWQ7XHJcbiAgICAgICAgICBTaW5nbGVTZWxlY3QuaXNSZWFkb25seSA9IGVsZW1lbnQuaXNSZWxhdGVkVG9TdXJ2ZXlRdWVzdGlvbjtcclxuICAgICAgICAgIFNpbmdsZVNlbGVjdC5wbGFjZWhvbGRlciA9XHJcbiAgICAgICAgICAgIHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZSgnRGVmYXVsdE9wdGlvblRleHQnKTtcclxuICAgICAgICAgIFNpbmdsZVNlbGVjdC52aWV3VHlwZSA9IENvbnRyb2xMYXlvdXQuVmVydGljYWw7XHJcbiAgICAgICAgICBTaW5nbGVTZWxlY3QuaXNEaXNhYmxlZCA9IHRoaXMub3B0aW9ucy5SZWFkb25seTtcclxuICAgICAgICAgIFNpbmdsZVNlbGVjdC5sYWJlbERlc2NyaXB0aW9uID1cclxuICAgICAgICAgICAgdGhpcy51dGlsaXR5U2VydmljZS5pc0N1cnJlbnRMYW5ndWFnZUFyYWJpYygpXHJcbiAgICAgICAgICAgICAgPyBlbGVtZW50Lm9wdGlvbnMuZGVzY3JpcHRpb24uYXJhYmljXHJcbiAgICAgICAgICAgICAgOiBlbGVtZW50Lm9wdGlvbnMuZGVzY3JpcHRpb24uZW5nbGlzaDtcclxuICAgICAgICAgIGxldCBkYXRhU291cmNlOiBhbnlbXSA9IFtdO1xyXG4gICAgICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGVsZW1lbnQucXVlc3Rpb25PcHRpb25zLmxlbmd0aDsgaW5kZXgrKykge1xyXG4gICAgICAgICAgICBjb25zdCBvcHRpb24gPSBlbGVtZW50LnF1ZXN0aW9uT3B0aW9uc1tpbmRleF07XHJcbiAgICAgICAgICAgIGxldCBpdGVtOiBhbnkgPSB7fTtcclxuICAgICAgICAgICAgaXRlbS5rZXkgPSBvcHRpb24uaURfR1VJRDtcclxuICAgICAgICAgICAgaXRlbS52YWx1ZSA9IHRoaXMudXRpbGl0eVNlcnZpY2UuaXNDdXJyZW50TGFuZ3VhZ2VBcmFiaWMoKVxyXG4gICAgICAgICAgICAgID8gb3B0aW9uLm5hbWUuYXJhYmljXHJcbiAgICAgICAgICAgICAgOiBvcHRpb24ubmFtZS5lbmdsaXNoO1xyXG4gICAgICAgICAgICBkYXRhU291cmNlLnB1c2goaXRlbSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBTaW5nbGVTZWxlY3QuZGF0YVNvdXJjZSA9IGRhdGFTb3VyY2U7XHJcbiAgICAgICAgICBTaW5nbGVTZWxlY3Quc2luZ2xlU2VsZWN0aW9uID0gdHJ1ZTtcclxuICAgICAgICAgIFNpbmdsZVNlbGVjdC5zaG93Q2hlY2tib3ggPSBmYWxzZTtcclxuICAgICAgICAgIFNpbmdsZVNlbGVjdC5hbGxvd1NlYXJjaEZpbHRlciA9IHRydWU7XHJcbiAgICAgICAgICBpZiAoZWxlbWVudC52YWx1ZS5zZWxlY3RlZElEcylcclxuICAgICAgICAgICAgU2luZ2xlU2VsZWN0LnNlbGVjdGVkSXRlbXMgPSBlbGVtZW50LnZhbHVlLnNlbGVjdGVkSURzWzBdO1xyXG4gICAgICAgICAgaWYgKGVsZW1lbnQuaXNSZWxhdGVkVG9TdXJ2ZXlRdWVzdGlvbilcclxuICAgICAgICAgICAgdGhpcy5jaGVja0xpc3QucHVzaChTaW5nbGVTZWxlY3QpO1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJDb21wb25lbnRTZXJ2aWNlLnJlbmRlckR5bmFtaWNDb21wb25lbnQ8U3VydmV5Rm9ybUl0ZW1Db21wb25lbnQ+KFxyXG4gICAgICAgICAgICB2aWV3Q29udGFpbmVyUmVmLFxyXG4gICAgICAgICAgICBTdXJ2ZXlGb3JtSXRlbUNvbXBvbmVudCxcclxuICAgICAgICAgICAgdGhpcy5maWxlZEdyb3VwLFxyXG4gICAgICAgICAgICBTaW5nbGVTZWxlY3QsXHJcbiAgICAgICAgICAgIGVsZW1lbnQub3B0aW9ucy5zaXplXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBTdXJ2ZXlPcHRpb25UeXBlLlJhZGlvQnV0dG9uLnRvTG9jYWxlTG93ZXJDYXNlKCk6XHJcbiAgICAgICAgICBsZXQgcmFkaW9CdXR0b24gPSBuZXcgUmFkaW9CdXR0b25PcHRpb25zKCk7XHJcbiAgICAgICAgICByYWRpb0J1dHRvbi5uYW1lID0gJ3EnICsgZWxlbWVudC5pRF9HVUlEO1xyXG4gICAgICAgICAgcmFkaW9CdXR0b24uaGlkZUxhYmVsID0gZmFsc2U7XHJcbiAgICAgICAgICByYWRpb0J1dHRvbi5sYWJlbEV4dHJhQ2xhc3NlcyA9IHRoaXMubGFiZWxDbGFzcztcclxuICAgICAgICAgIHJhZGlvQnV0dG9uLmxhYmVsVmFsdWUgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmlzQ3VycmVudExhbmd1YWdlQXJhYmljKClcclxuICAgICAgICAgICAgPyBlbGVtZW50LnRleHQuYXJhYmljICsgYC4ke2VsZW1lbnQucXVlc3Rpb25UeXBlSXRlbUlEfWBcclxuICAgICAgICAgICAgOiBlbGVtZW50LnRleHQuZW5nbGlzaCArIGAuJHtlbGVtZW50LnF1ZXN0aW9uVHlwZUl0ZW1JRH1gO1xyXG4gICAgICAgICAgcmFkaW9CdXR0b24uaXNSZXF1aXJlZCA9IGVsZW1lbnQuaXNSZWxhdGVkVG9TdXJ2ZXlRdWVzdGlvblxyXG4gICAgICAgICAgICA/IGZhbHNlXHJcbiAgICAgICAgICAgIDogZWxlbWVudC5vcHRpb25zLmlzUmVxdWlyZWQ7XHJcbiAgICAgICAgICByYWRpb0J1dHRvbi5pc1JlYWRvbmx5ID0gZWxlbWVudC5pc1JlbGF0ZWRUb1N1cnZleVF1ZXN0aW9uO1xyXG4gICAgICAgICAgcmFkaW9CdXR0b24udmlld1R5cGUgPSBDb250cm9sTGF5b3V0LlZlcnRpY2FsO1xyXG4gICAgICAgICAgcmFkaW9CdXR0b24uaXNEaXNhYmxlZCA9IHRoaXMub3B0aW9ucy5SZWFkb25seTtcclxuICAgICAgICAgIHJhZGlvQnV0dG9uLmxhYmVsRGVzY3JpcHRpb24gPVxyXG4gICAgICAgICAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLmlzQ3VycmVudExhbmd1YWdlQXJhYmljKClcclxuICAgICAgICAgICAgICA/IGVsZW1lbnQub3B0aW9ucy5kZXNjcmlwdGlvbi5hcmFiaWNcclxuICAgICAgICAgICAgICA6IGVsZW1lbnQub3B0aW9ucy5kZXNjcmlwdGlvbi5lbmdsaXNoO1xyXG4gICAgICAgICAgbGV0IGRhdGFTb3VyY2VSYWRpbzogYW55W10gPSBbXTtcclxuICAgICAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBlbGVtZW50LnF1ZXN0aW9uT3B0aW9ucy5sZW5ndGg7IGluZGV4KyspIHtcclxuICAgICAgICAgICAgY29uc3Qgb3B0aW9uID0gZWxlbWVudC5xdWVzdGlvbk9wdGlvbnNbaW5kZXhdO1xyXG4gICAgICAgICAgICBsZXQgaXRlbTogYW55ID0ge307XHJcbiAgICAgICAgICAgIGl0ZW0uVmFsdWUgPSBvcHRpb24uaURfR1VJRDtcclxuICAgICAgICAgICAgaXRlbS5UZXh0ID0gdGhpcy51dGlsaXR5U2VydmljZS5pc0N1cnJlbnRMYW5ndWFnZUFyYWJpYygpXHJcbiAgICAgICAgICAgICAgPyBvcHRpb24ubmFtZS5hcmFiaWNcclxuICAgICAgICAgICAgICA6IG9wdGlvbi5uYW1lLmVuZ2xpc2g7XHJcbiAgICAgICAgICAgIGRhdGFTb3VyY2VSYWRpby5wdXNoKGl0ZW0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgcmFkaW9CdXR0b24uaXRlbXMgPSBkYXRhU291cmNlUmFkaW87XHJcbiAgICAgICAgICBpZiAoZWxlbWVudC52YWx1ZS5zZWxlY3RlZElEcylcclxuICAgICAgICAgICAgcmFkaW9CdXR0b24udmFsdWUgPSBlbGVtZW50LnZhbHVlLnNlbGVjdGVkSURzWzBdO1xyXG4gICAgICAgICAgaWYgKGVsZW1lbnQuaXNSZWxhdGVkVG9TdXJ2ZXlRdWVzdGlvbilcclxuICAgICAgICAgICAgdGhpcy5jaGVja0xpc3QucHVzaChyYWRpb0J1dHRvbik7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlckNvbXBvbmVudFNlcnZpY2UucmVuZGVyRHluYW1pY0NvbXBvbmVudDxTdXJ2ZXlGb3JtSXRlbUNvbXBvbmVudD4oXHJcbiAgICAgICAgICAgIHZpZXdDb250YWluZXJSZWYsXHJcbiAgICAgICAgICAgIFN1cnZleUZvcm1JdGVtQ29tcG9uZW50LFxyXG4gICAgICAgICAgICB0aGlzLmZpbGVkR3JvdXAsXHJcbiAgICAgICAgICAgIHJhZGlvQnV0dG9uLFxyXG4gICAgICAgICAgICBlbGVtZW50Lm9wdGlvbnMuc2l6ZVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgU3VydmV5T3B0aW9uVHlwZS5NdWx0aXBsZVNlbGVjdC50b0xvY2FsZUxvd2VyQ2FzZSgpOlxyXG4gICAgICAgICAgbGV0IE11bGlwbGVTZWxlY3QgPSBuZXcgRHJvcGRvd25PcHRpb25zKCk7XHJcbiAgICAgICAgICBNdWxpcGxlU2VsZWN0Lm5hbWUgPSAncScgKyBlbGVtZW50LmlEX0dVSUQ7XHJcbiAgICAgICAgICBNdWxpcGxlU2VsZWN0LmhpZGVMYWJlbCA9IGZhbHNlO1xyXG4gICAgICAgICAgTXVsaXBsZVNlbGVjdC5sYWJlbEV4dHJhQ2xhc3NlcyA9IHRoaXMubGFiZWxDbGFzcztcclxuICAgICAgICAgIE11bGlwbGVTZWxlY3QubGFiZWxWYWx1ZSA9XHJcbiAgICAgICAgICAgIHRoaXMudXRpbGl0eVNlcnZpY2UuaXNDdXJyZW50TGFuZ3VhZ2VBcmFiaWMoKVxyXG4gICAgICAgICAgICAgID8gZWxlbWVudC50ZXh0LmFyYWJpYyArIGAuJHtlbGVtZW50LnF1ZXN0aW9uVHlwZUl0ZW1JRH1gXHJcbiAgICAgICAgICAgICAgOiBlbGVtZW50LnRleHQuZW5nbGlzaCArIGAuJHtlbGVtZW50LnF1ZXN0aW9uVHlwZUl0ZW1JRH1gO1xyXG4gICAgICAgICAgTXVsaXBsZVNlbGVjdC5pc1JlcXVpcmVkID0gZWxlbWVudC5pc1JlbGF0ZWRUb1N1cnZleVF1ZXN0aW9uXHJcbiAgICAgICAgICAgID8gZmFsc2VcclxuICAgICAgICAgICAgOiBlbGVtZW50Lm9wdGlvbnMuaXNSZXF1aXJlZDtcclxuICAgICAgICAgIE11bGlwbGVTZWxlY3QuaXNSZWFkb25seSA9IGVsZW1lbnQuaXNSZWxhdGVkVG9TdXJ2ZXlRdWVzdGlvbjtcclxuICAgICAgICAgIE11bGlwbGVTZWxlY3QucGxhY2Vob2xkZXIgPVxyXG4gICAgICAgICAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoJ0RlZmF1bHRPcHRpb25UZXh0Jyk7XHJcbiAgICAgICAgICBNdWxpcGxlU2VsZWN0LnZpZXdUeXBlID0gQ29udHJvbExheW91dC5WZXJ0aWNhbDtcclxuICAgICAgICAgIE11bGlwbGVTZWxlY3QuaXNEaXNhYmxlZCA9IHRoaXMub3B0aW9ucy5SZWFkb25seTtcclxuICAgICAgICAgIE11bGlwbGVTZWxlY3QubGFiZWxEZXNjcmlwdGlvbiA9XHJcbiAgICAgICAgICAgIHRoaXMudXRpbGl0eVNlcnZpY2UuaXNDdXJyZW50TGFuZ3VhZ2VBcmFiaWMoKVxyXG4gICAgICAgICAgICAgID8gZWxlbWVudC5vcHRpb25zLmRlc2NyaXB0aW9uLmFyYWJpY1xyXG4gICAgICAgICAgICAgIDogZWxlbWVudC5vcHRpb25zLmRlc2NyaXB0aW9uLmVuZ2xpc2g7XHJcbiAgICAgICAgICBsZXQgbXVsdGlwbGVTZWxlY3REYXRhU291cmNlOiBEcm9wZG93bkxpc3RJdGVtW10gPSBbXTtcclxuICAgICAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBlbGVtZW50LnF1ZXN0aW9uT3B0aW9ucy5sZW5ndGg7IGluZGV4KyspIHtcclxuICAgICAgICAgICAgY29uc3Qgb3B0aW9uID0gZWxlbWVudC5xdWVzdGlvbk9wdGlvbnNbaW5kZXhdO1xyXG4gICAgICAgICAgICBsZXQgaXRlbTogYW55ID0ge307XHJcbiAgICAgICAgICAgIGl0ZW0ua2V5ID0gb3B0aW9uLmlEX0dVSUQ7XHJcbiAgICAgICAgICAgIGl0ZW0udmFsdWUgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmlzQ3VycmVudExhbmd1YWdlQXJhYmljKClcclxuICAgICAgICAgICAgICA/IG9wdGlvbi5uYW1lLmFyYWJpY1xyXG4gICAgICAgICAgICAgIDogb3B0aW9uLm5hbWUuZW5nbGlzaDtcclxuICAgICAgICAgICAgbXVsdGlwbGVTZWxlY3REYXRhU291cmNlLnB1c2goaXRlbSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBNdWxpcGxlU2VsZWN0LmRhdGFTb3VyY2UgPSBtdWx0aXBsZVNlbGVjdERhdGFTb3VyY2U7XHJcbiAgICAgICAgICBNdWxpcGxlU2VsZWN0LnNpbmdsZVNlbGVjdGlvbiA9IGZhbHNlO1xyXG4gICAgICAgICAgTXVsaXBsZVNlbGVjdC5zaG93Q2hlY2tib3ggPSBmYWxzZTtcclxuICAgICAgICAgIE11bGlwbGVTZWxlY3QuYWxsb3dTZWFyY2hGaWx0ZXIgPSB0cnVlO1xyXG4gICAgICAgICAgaWYgKGVsZW1lbnQudmFsdWUuc2VsZWN0ZWRJRHMpXHJcbiAgICAgICAgICAgIE11bGlwbGVTZWxlY3Quc2VsZWN0ZWRJdGVtcyA9IGVsZW1lbnQudmFsdWUuc2VsZWN0ZWRJRHM7XHJcbiAgICAgICAgICBpZiAoZWxlbWVudC5pc1JlbGF0ZWRUb1N1cnZleVF1ZXN0aW9uKVxyXG4gICAgICAgICAgICB0aGlzLmNoZWNrTGlzdC5wdXNoKE11bGlwbGVTZWxlY3QpO1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJDb21wb25lbnRTZXJ2aWNlLnJlbmRlckR5bmFtaWNDb21wb25lbnQ8U3VydmV5Rm9ybUl0ZW1Db21wb25lbnQ+KFxyXG4gICAgICAgICAgICB2aWV3Q29udGFpbmVyUmVmLFxyXG4gICAgICAgICAgICBTdXJ2ZXlGb3JtSXRlbUNvbXBvbmVudCxcclxuICAgICAgICAgICAgdGhpcy5maWxlZEdyb3VwLFxyXG4gICAgICAgICAgICBNdWxpcGxlU2VsZWN0LFxyXG4gICAgICAgICAgICBlbGVtZW50Lm9wdGlvbnMuc2l6ZVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgU3VydmV5T3B0aW9uVHlwZS5Db3VudHJ5LnRvTG9jYWxlTG93ZXJDYXNlKCk6XHJcbiAgICAgICAgICBsZXQgQ291bnRyeSA9IG5ldyBEcm9wZG93bk9wdGlvbnMoKTtcclxuICAgICAgICAgIENvdW50cnkubmFtZSA9ICdxJyArIGVsZW1lbnQuaURfR1VJRDtcclxuICAgICAgICAgIENvdW50cnkuaGlkZUxhYmVsID0gZmFsc2U7XHJcbiAgICAgICAgICBDb3VudHJ5LmxhYmVsRXh0cmFDbGFzc2VzID0gdGhpcy5sYWJlbENsYXNzO1xyXG4gICAgICAgICAgQ291bnRyeS5sYWJlbFZhbHVlID0gdGhpcy51dGlsaXR5U2VydmljZS5pc0N1cnJlbnRMYW5ndWFnZUFyYWJpYygpXHJcbiAgICAgICAgICAgID8gZWxlbWVudC50ZXh0LmFyYWJpYyArIGAuJHtlbGVtZW50LnF1ZXN0aW9uVHlwZUl0ZW1JRH1gXHJcbiAgICAgICAgICAgIDogZWxlbWVudC50ZXh0LmVuZ2xpc2ggKyBgLiR7ZWxlbWVudC5xdWVzdGlvblR5cGVJdGVtSUR9YDtcclxuICAgICAgICAgIENvdW50cnkuaXNSZXF1aXJlZCA9IGVsZW1lbnQuaXNSZWxhdGVkVG9TdXJ2ZXlRdWVzdGlvblxyXG4gICAgICAgICAgICA/IGZhbHNlXHJcbiAgICAgICAgICAgIDogZWxlbWVudC5vcHRpb25zLmlzUmVxdWlyZWQ7XHJcbiAgICAgICAgICBDb3VudHJ5LmlzUmVhZG9ubHkgPSBlbGVtZW50LmlzUmVsYXRlZFRvU3VydmV5UXVlc3Rpb247XHJcbiAgICAgICAgICBDb3VudHJ5LnZpZXdUeXBlID0gQ29udHJvbExheW91dC5WZXJ0aWNhbDtcclxuICAgICAgICAgIENvdW50cnkuaXNEaXNhYmxlZCA9IHRoaXMub3B0aW9ucy5SZWFkb25seTtcclxuICAgICAgICAgIENvdW50cnkubGFiZWxEZXNjcmlwdGlvbiA9XHJcbiAgICAgICAgICAgIHRoaXMudXRpbGl0eVNlcnZpY2UuaXNDdXJyZW50TGFuZ3VhZ2VBcmFiaWMoKVxyXG4gICAgICAgICAgICAgID8gZWxlbWVudC5vcHRpb25zLmRlc2NyaXB0aW9uLmFyYWJpY1xyXG4gICAgICAgICAgICAgIDogZWxlbWVudC5vcHRpb25zLmRlc2NyaXB0aW9uLmVuZ2xpc2g7XHJcbiAgICAgICAgICBDb3VudHJ5LnNpbmdsZVNlbGVjdGlvbiA9IHRydWU7XHJcbiAgICAgICAgICBDb3VudHJ5LnNob3dDaGVja2JveCA9IGZhbHNlO1xyXG4gICAgICAgICAgQ291bnRyeS5hbGxvd1NlYXJjaEZpbHRlciA9IHRydWU7XHJcbiAgICAgICAgICBDb3VudHJ5LmRhdGFTb3VyY2UgPSBlbGVtZW50Lm9wdGlvbnMuZGF0YVNvdXJjZTtcclxuICAgICAgICAgIGlmIChlbGVtZW50LnZhbHVlLnNlbGVjdGVkSURzKVxyXG4gICAgICAgICAgICBDb3VudHJ5LnNlbGVjdGVkSXRlbXMgPSBlbGVtZW50LnZhbHVlLnNlbGVjdGVkSURzWzBdO1xyXG4gICAgICAgICAgaWYgKGVsZW1lbnQuaXNSZWxhdGVkVG9TdXJ2ZXlRdWVzdGlvbikgdGhpcy5jaGVja0xpc3QucHVzaChDb3VudHJ5KTtcclxuICAgICAgICAgIHRoaXMucmVuZGVyQ29tcG9uZW50U2VydmljZS5yZW5kZXJEeW5hbWljQ29tcG9uZW50PFN1cnZleUZvcm1JdGVtQ29tcG9uZW50PihcclxuICAgICAgICAgICAgdmlld0NvbnRhaW5lclJlZixcclxuICAgICAgICAgICAgU3VydmV5Rm9ybUl0ZW1Db21wb25lbnQsXHJcbiAgICAgICAgICAgIHRoaXMuZmlsZWRHcm91cCxcclxuICAgICAgICAgICAgQ291bnRyeSxcclxuICAgICAgICAgICAgZWxlbWVudC5vcHRpb25zLnNpemVcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICAvL0ZpbGVVcGxvYWRcclxuICAgICAgICBjYXNlIFN1cnZleU9wdGlvblR5cGUuTXVsdGlGaWxlLnRvTG9jYWxlTG93ZXJDYXNlKCk6XHJcbiAgICAgICAgICBsZXQgTXVsdGlGaWxlID0gbmV3IEZpbGVVcGxvYWRPcHRpb25zKCk7XHJcbiAgICAgICAgICBNdWx0aUZpbGUubmFtZSA9ICdxJyArIGVsZW1lbnQuaURfR1VJRDtcclxuICAgICAgICAgIE11bHRpRmlsZS5oaWRlTGFiZWwgPSBmYWxzZTtcclxuICAgICAgICAgIE11bHRpRmlsZS5sYWJlbEV4dHJhQ2xhc3NlcyA9IHRoaXMubGFiZWxDbGFzcztcclxuICAgICAgICAgIE11bHRpRmlsZS5sYWJlbFZhbHVlID0gdGhpcy51dGlsaXR5U2VydmljZS5pc0N1cnJlbnRMYW5ndWFnZUFyYWJpYygpXHJcbiAgICAgICAgICAgID8gZWxlbWVudC50ZXh0LmFyYWJpYyArIGAuJHtlbGVtZW50LnF1ZXN0aW9uVHlwZUl0ZW1JRH1gXHJcbiAgICAgICAgICAgIDogZWxlbWVudC50ZXh0LmVuZ2xpc2ggKyBgLiR7ZWxlbWVudC5xdWVzdGlvblR5cGVJdGVtSUR9YDtcclxuICAgICAgICAgIE11bHRpRmlsZS5pc1JlcXVpcmVkID0gZWxlbWVudC5pc1JlbGF0ZWRUb1N1cnZleVF1ZXN0aW9uXHJcbiAgICAgICAgICAgID8gZmFsc2VcclxuICAgICAgICAgICAgOiBlbGVtZW50Lm9wdGlvbnMuaXNSZXF1aXJlZDtcclxuICAgICAgICAgIE11bHRpRmlsZS5pc1JlYWRvbmx5ID0gZWxlbWVudC5pc1JlbGF0ZWRUb1N1cnZleVF1ZXN0aW9uO1xyXG4gICAgICAgICAgTXVsdGlGaWxlLnZpZXdUeXBlID0gQ29udHJvbExheW91dC5WZXJ0aWNhbDtcclxuICAgICAgICAgIE11bHRpRmlsZS5pc0Rpc2FibGVkID0gdGhpcy5vcHRpb25zLlJlYWRvbmx5O1xyXG4gICAgICAgICAgTXVsdGlGaWxlLmxhYmVsRGVzY3JpcHRpb24gPVxyXG4gICAgICAgICAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLmlzQ3VycmVudExhbmd1YWdlQXJhYmljKClcclxuICAgICAgICAgICAgICA/IGVsZW1lbnQub3B0aW9ucy5kZXNjcmlwdGlvbi5hcmFiaWNcclxuICAgICAgICAgICAgICA6IGVsZW1lbnQub3B0aW9ucy5kZXNjcmlwdGlvbi5lbmdsaXNoO1xyXG4gICAgICAgICAgTXVsdGlGaWxlLm1heFNpemVGb3JBbGxGaWxlc0luTUIgPSBlbGVtZW50Lm9wdGlvbnMubWF4RmlsZVNpemVJbk1CO1xyXG4gICAgICAgICAgTXVsdGlGaWxlLm1heE5vT2ZGaWxlcyA9IGVsZW1lbnQub3B0aW9ucy5tYXhGaWxlQ291bnQ7XHJcbiAgICAgICAgICBNdWx0aUZpbGUuaXNNdWx0aXBsZUZpbGUgPSB0cnVlO1xyXG4gICAgICAgICAgbGV0IGFjY2VwdGVkVHlwZXM6IEZpbGVUeXBlW10gPSBbXTtcclxuICAgICAgICAgIGZvciAoXHJcbiAgICAgICAgICAgIGxldCBpbmRleCA9IDA7XHJcbiAgICAgICAgICAgIGluZGV4IDwgZWxlbWVudC5vcHRpb25zLmFsbG93ZWRFeHRlbnNpb25zLmxlbmd0aDtcclxuICAgICAgICAgICAgaW5kZXgrK1xyXG4gICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRWYWx1ZSA9IGVsZW1lbnQub3B0aW9ucy5hbGxvd2VkRXh0ZW5zaW9uc1tpbmRleF07XHJcbiAgICAgICAgICAgIHN3aXRjaCAoZWxlbWVudFZhbHVlKSB7XHJcbiAgICAgICAgICAgICAgY2FzZSAnMCc6XHJcbiAgICAgICAgICAgICAgICBhY2NlcHRlZFR5cGVzLnB1c2goRmlsZVR5cGUuUERGKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgIGNhc2UgJzEnOlxyXG4gICAgICAgICAgICAgICAgYWNjZXB0ZWRUeXBlcy5wdXNoKEZpbGVUeXBlLldvcmQpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgY2FzZSAnMic6XHJcbiAgICAgICAgICAgICAgICBhY2NlcHRlZFR5cGVzLnB1c2goRmlsZVR5cGUuRXhjZWwpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgY2FzZSAnMyc6XHJcbiAgICAgICAgICAgICAgICBhY2NlcHRlZFR5cGVzLnB1c2goRmlsZVR5cGUuSW1hZ2VUeXBlcyk7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICBjYXNlICcxNSc6XHJcbiAgICAgICAgICAgICAgICBhY2NlcHRlZFR5cGVzLnB1c2goRmlsZVR5cGUuUG93ZXJQb2ludCk7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIE11bHRpRmlsZS5maWxlVXBsb2FkQWNjZXB0c1R5cGVzID0gYWNjZXB0ZWRUeXBlcztcclxuICAgICAgICAgIGlmIChlbGVtZW50LnZhbHVlLmZpbGVDb3JyZWxhdGlvbkRUTykge1xyXG4gICAgICAgICAgICBsZXQgbW9kZWwgPSB0aGlzLnRvQ2FtZWwoZWxlbWVudC52YWx1ZS5maWxlQ29ycmVsYXRpb25EVE8pO1xyXG4gICAgICAgICAgICBNdWx0aUZpbGUudmFsdWUgPSBtb2RlbDtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChlbGVtZW50LmlzUmVsYXRlZFRvU3VydmV5UXVlc3Rpb24pIHRoaXMuY2hlY2tMaXN0LnB1c2goTXVsdGlGaWxlKTtcclxuICAgICAgICAgIHRoaXMucmVuZGVyQ29tcG9uZW50U2VydmljZS5yZW5kZXJEeW5hbWljQ29tcG9uZW50PFN1cnZleUZvcm1JdGVtQ29tcG9uZW50PihcclxuICAgICAgICAgICAgdmlld0NvbnRhaW5lclJlZixcclxuICAgICAgICAgICAgU3VydmV5Rm9ybUl0ZW1Db21wb25lbnQsXHJcbiAgICAgICAgICAgIHRoaXMuZmlsZWRHcm91cCxcclxuICAgICAgICAgICAgTXVsdGlGaWxlLFxyXG4gICAgICAgICAgICBlbGVtZW50Lm9wdGlvbnMuc2l6ZVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgU3VydmV5T3B0aW9uVHlwZS5GaWxlLnRvTG9jYWxlTG93ZXJDYXNlKCk6XHJcbiAgICAgICAgICBsZXQgRmlsZSA9IG5ldyBGaWxlVXBsb2FkT3B0aW9ucygpO1xyXG4gICAgICAgICAgRmlsZS5uYW1lID0gJ3EnICsgZWxlbWVudC5pRF9HVUlEO1xyXG4gICAgICAgICAgRmlsZS5oaWRlTGFiZWwgPSBmYWxzZTtcclxuICAgICAgICAgIEZpbGUubGFiZWxFeHRyYUNsYXNzZXMgPSB0aGlzLmxhYmVsQ2xhc3M7XHJcbiAgICAgICAgICBGaWxlLmxhYmVsVmFsdWUgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmlzQ3VycmVudExhbmd1YWdlQXJhYmljKClcclxuICAgICAgICAgICAgPyBlbGVtZW50LnRleHQuYXJhYmljICsgYC4ke2VsZW1lbnQucXVlc3Rpb25UeXBlSXRlbUlEfWBcclxuICAgICAgICAgICAgOiBlbGVtZW50LnRleHQuZW5nbGlzaCArIGAuJHtlbGVtZW50LnF1ZXN0aW9uVHlwZUl0ZW1JRH1gO1xyXG4gICAgICAgICAgRmlsZS5pc1JlcXVpcmVkID0gZWxlbWVudC5pc1JlbGF0ZWRUb1N1cnZleVF1ZXN0aW9uXHJcbiAgICAgICAgICAgID8gZmFsc2VcclxuICAgICAgICAgICAgOiBlbGVtZW50Lm9wdGlvbnMuaXNSZXF1aXJlZDtcclxuICAgICAgICAgIEZpbGUuaXNSZWFkb25seSA9IGVsZW1lbnQuaXNSZWxhdGVkVG9TdXJ2ZXlRdWVzdGlvbjtcclxuICAgICAgICAgIEZpbGUudmlld1R5cGUgPSBDb250cm9sTGF5b3V0LlZlcnRpY2FsO1xyXG4gICAgICAgICAgRmlsZS5pc0Rpc2FibGVkID0gdGhpcy5vcHRpb25zLlJlYWRvbmx5O1xyXG4gICAgICAgICAgRmlsZS5sYWJlbERlc2NyaXB0aW9uID0gdGhpcy51dGlsaXR5U2VydmljZS5pc0N1cnJlbnRMYW5ndWFnZUFyYWJpYygpXHJcbiAgICAgICAgICAgID8gZWxlbWVudC5vcHRpb25zLmRlc2NyaXB0aW9uLmFyYWJpY1xyXG4gICAgICAgICAgICA6IGVsZW1lbnQub3B0aW9ucy5kZXNjcmlwdGlvbi5lbmdsaXNoO1xyXG4gICAgICAgICAgRmlsZS5maWxlTWF4U2l6ZUluTUIgPSBlbGVtZW50Lm9wdGlvbnMubWF4RmlsZVNpemVJbk1CO1xyXG5cclxuICAgICAgICAgIGxldCBhY2NlcHRlZFR5cGVzRmlsZTogRmlsZVR5cGVbXSA9IFtdO1xyXG4gICAgICAgICAgZGVidWdnZXI7XHJcbiAgICAgICAgICBmb3IgKFxyXG4gICAgICAgICAgICBsZXQgaW5kZXggPSAwO1xyXG4gICAgICAgICAgICBpbmRleCA8IGVsZW1lbnQub3B0aW9ucy5hbGxvd2VkRXh0ZW5zaW9ucy5sZW5ndGg7XHJcbiAgICAgICAgICAgIGluZGV4KytcclxuICAgICAgICAgICkge1xyXG4gICAgICAgICAgICBjb25zdCBlbGVtZW50VmFsdWUgPSBlbGVtZW50Lm9wdGlvbnMuYWxsb3dlZEV4dGVuc2lvbnNbaW5kZXhdO1xyXG4gICAgICAgICAgICBzd2l0Y2ggKGVsZW1lbnRWYWx1ZSkge1xyXG4gICAgICAgICAgICAgIGNhc2UgJzAnOlxyXG4gICAgICAgICAgICAgICAgYWNjZXB0ZWRUeXBlc0ZpbGUucHVzaChGaWxlVHlwZS5QREYpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgY2FzZSAnMSc6XHJcbiAgICAgICAgICAgICAgICBhY2NlcHRlZFR5cGVzRmlsZS5wdXNoKEZpbGVUeXBlLldvcmQpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgY2FzZSAnMic6XHJcbiAgICAgICAgICAgICAgICBhY2NlcHRlZFR5cGVzRmlsZS5wdXNoKEZpbGVUeXBlLkV4Y2VsKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgIGNhc2UgJzMnOlxyXG4gICAgICAgICAgICAgICAgYWNjZXB0ZWRUeXBlc0ZpbGUucHVzaChGaWxlVHlwZS5JbWFnZVR5cGVzKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgIGNhc2UgJzE1JzpcclxuICAgICAgICAgICAgICAgIGFjY2VwdGVkVHlwZXNGaWxlLnB1c2goRmlsZVR5cGUuUG93ZXJQb2ludCk7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChlbGVtZW50LnZhbHVlLmZpbGVEVE8pIHtcclxuICAgICAgICAgICAgbGV0IG1vZGVsID0gdGhpcy50b0NhbWVsKGVsZW1lbnQudmFsdWUuZmlsZURUTykgYXMgRmlsZURUTztcclxuICAgICAgICAgICAgRmlsZS52YWx1ZSA9IG1vZGVsO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgRmlsZS5maWxlVXBsb2FkQWNjZXB0c1R5cGVzID0gYWNjZXB0ZWRUeXBlc0ZpbGU7XHJcbiAgICAgICAgICBpZiAoZWxlbWVudC5pc1JlbGF0ZWRUb1N1cnZleVF1ZXN0aW9uKSB0aGlzLmNoZWNrTGlzdC5wdXNoKEZpbGUpO1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJDb21wb25lbnRTZXJ2aWNlLnJlbmRlckR5bmFtaWNDb21wb25lbnQ8U3VydmV5Rm9ybUl0ZW1Db21wb25lbnQ+KFxyXG4gICAgICAgICAgICB2aWV3Q29udGFpbmVyUmVmLFxyXG4gICAgICAgICAgICBTdXJ2ZXlGb3JtSXRlbUNvbXBvbmVudCxcclxuICAgICAgICAgICAgdGhpcy5maWxlZEdyb3VwLFxyXG4gICAgICAgICAgICBGaWxlLFxyXG4gICAgICAgICAgICBlbGVtZW50Lm9wdGlvbnMuc2l6ZVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIC8vSW1hZ2VVcGxvYWRcclxuICAgICAgICBjYXNlIFN1cnZleU9wdGlvblR5cGUuSW1hZ2UudG9Mb2NhbGVMb3dlckNhc2UoKTpcclxuICAgICAgICAgIGxldCBJbWFnZSA9IG5ldyBJbWFnZVVwbG9hZE9wdGlvbnMoKTtcclxuICAgICAgICAgIEltYWdlLm5hbWUgPSAncScgKyBlbGVtZW50LmlEX0dVSUQ7XHJcbiAgICAgICAgICBJbWFnZS5oaWRlTGFiZWwgPSBmYWxzZTtcclxuICAgICAgICAgIEltYWdlLmxhYmVsRXh0cmFDbGFzc2VzID0gdGhpcy5sYWJlbENsYXNzO1xyXG4gICAgICAgICAgSW1hZ2UubGFiZWxWYWx1ZSA9IHRoaXMudXRpbGl0eVNlcnZpY2UuaXNDdXJyZW50TGFuZ3VhZ2VBcmFiaWMoKVxyXG4gICAgICAgICAgICA/IGVsZW1lbnQudGV4dC5hcmFiaWMgKyBgLiR7ZWxlbWVudC5xdWVzdGlvblR5cGVJdGVtSUR9YFxyXG4gICAgICAgICAgICA6IGVsZW1lbnQudGV4dC5lbmdsaXNoICsgYC4ke2VsZW1lbnQucXVlc3Rpb25UeXBlSXRlbUlEfWA7XHJcbiAgICAgICAgICBJbWFnZS5pc1JlcXVpcmVkID0gZWxlbWVudC5pc1JlbGF0ZWRUb1N1cnZleVF1ZXN0aW9uXHJcbiAgICAgICAgICAgID8gZmFsc2VcclxuICAgICAgICAgICAgOiBlbGVtZW50Lm9wdGlvbnMuaXNSZXF1aXJlZDtcclxuICAgICAgICAgIEltYWdlLmlzUmVhZG9ubHkgPSBlbGVtZW50LmlzUmVsYXRlZFRvU3VydmV5UXVlc3Rpb247XHJcbiAgICAgICAgICBJbWFnZS52aWV3VHlwZSA9IENvbnRyb2xMYXlvdXQuVmVydGljYWw7XHJcbiAgICAgICAgICBJbWFnZS5pc0Rpc2FibGVkID0gdGhpcy5vcHRpb25zLlJlYWRvbmx5O1xyXG4gICAgICAgICAgSW1hZ2UubGFiZWxEZXNjcmlwdGlvbiA9IHRoaXMudXRpbGl0eVNlcnZpY2UuaXNDdXJyZW50TGFuZ3VhZ2VBcmFiaWMoKVxyXG4gICAgICAgICAgICA/IGVsZW1lbnQub3B0aW9ucy5kZXNjcmlwdGlvbi5hcmFiaWNcclxuICAgICAgICAgICAgOiBlbGVtZW50Lm9wdGlvbnMuZGVzY3JpcHRpb24uZW5nbGlzaDtcclxuICAgICAgICAgIGlmIChlbGVtZW50Lm9wdGlvbnMubWF4RmlsZVNpemVJbk1CKVxyXG4gICAgICAgICAgICBJbWFnZS5maWxlTWF4U2l6ZUluTUIgPSBlbGVtZW50Lm9wdGlvbnMubWF4RmlsZVNpemVJbk1CO1xyXG4gICAgICAgICAgaWYgKGVsZW1lbnQuaXNSZWxhdGVkVG9TdXJ2ZXlRdWVzdGlvbikgdGhpcy5jaGVja0xpc3QucHVzaChJbWFnZSk7XHJcbiAgICAgICAgICBpZiAoZWxlbWVudC52YWx1ZS5maWxlRFRPKSBJbWFnZS52YWx1ZSA9IGVsZW1lbnQudmFsdWUuZmlsZURUTztcclxuICAgICAgICAgIHRoaXMucmVuZGVyQ29tcG9uZW50U2VydmljZS5yZW5kZXJEeW5hbWljQ29tcG9uZW50PFN1cnZleUZvcm1JdGVtQ29tcG9uZW50PihcclxuICAgICAgICAgICAgdmlld0NvbnRhaW5lclJlZixcclxuICAgICAgICAgICAgU3VydmV5Rm9ybUl0ZW1Db21wb25lbnQsXHJcbiAgICAgICAgICAgIHRoaXMuZmlsZWRHcm91cCxcclxuICAgICAgICAgICAgSW1hZ2UsXHJcbiAgICAgICAgICAgIGVsZW1lbnQub3B0aW9ucy5zaXplXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgLy9NdWx0aWxpbmVUZXh0XHJcbiAgICAgICAgY2FzZSBTdXJ2ZXlPcHRpb25UeXBlLk11bHRpbGluZVRleHQudG9Mb2NhbGVMb3dlckNhc2UoKTpcclxuICAgICAgICAgIGxldCBNdWx0aWxpbmVUZXh0ID0gbmV3IFRleHRBcmVhT3B0aW9ucygpO1xyXG4gICAgICAgICAgTXVsdGlsaW5lVGV4dC5uYW1lID0gJ3EnICsgZWxlbWVudC5pRF9HVUlEO1xyXG4gICAgICAgICAgTXVsdGlsaW5lVGV4dC5oaWRlTGFiZWwgPSBmYWxzZTtcclxuICAgICAgICAgIE11bHRpbGluZVRleHQubGFiZWxFeHRyYUNsYXNzZXMgPSB0aGlzLmxhYmVsQ2xhc3M7XHJcbiAgICAgICAgICBNdWx0aWxpbmVUZXh0LmxhYmVsVmFsdWUgPVxyXG4gICAgICAgICAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLmlzQ3VycmVudExhbmd1YWdlQXJhYmljKClcclxuICAgICAgICAgICAgICA/IGVsZW1lbnQudGV4dC5hcmFiaWMgKyBgLiR7ZWxlbWVudC5xdWVzdGlvblR5cGVJdGVtSUR9YFxyXG4gICAgICAgICAgICAgIDogZWxlbWVudC50ZXh0LmVuZ2xpc2ggKyBgLiR7ZWxlbWVudC5xdWVzdGlvblR5cGVJdGVtSUR9YDtcclxuICAgICAgICAgIE11bHRpbGluZVRleHQuaXNSZXF1aXJlZCA9IGVsZW1lbnQuaXNSZWxhdGVkVG9TdXJ2ZXlRdWVzdGlvblxyXG4gICAgICAgICAgICA/IGZhbHNlXHJcbiAgICAgICAgICAgIDogZWxlbWVudC5vcHRpb25zLmlzUmVxdWlyZWQ7XHJcbiAgICAgICAgICBNdWx0aWxpbmVUZXh0LmlzUmVhZG9ubHkgPSBlbGVtZW50LmlzUmVsYXRlZFRvU3VydmV5UXVlc3Rpb247XHJcbiAgICAgICAgICBNdWx0aWxpbmVUZXh0LnZpZXdUeXBlID0gQ29udHJvbExheW91dC5WZXJ0aWNhbDtcclxuICAgICAgICAgIE11bHRpbGluZVRleHQuaXNEaXNhYmxlZCA9IHRoaXMub3B0aW9ucy5SZWFkb25seTtcclxuICAgICAgICAgIE11bHRpbGluZVRleHQubGFiZWxEZXNjcmlwdGlvbiA9XHJcbiAgICAgICAgICAgIHRoaXMudXRpbGl0eVNlcnZpY2UuaXNDdXJyZW50TGFuZ3VhZ2VBcmFiaWMoKVxyXG4gICAgICAgICAgICAgID8gZWxlbWVudC5vcHRpb25zLmRlc2NyaXB0aW9uLmFyYWJpY1xyXG4gICAgICAgICAgICAgIDogZWxlbWVudC5vcHRpb25zLmRlc2NyaXB0aW9uLmVuZ2xpc2g7XHJcbiAgICAgICAgICBpZiAoZWxlbWVudC5vcHRpb25zLm1heExlbmd0aClcclxuICAgICAgICAgICAgTXVsdGlsaW5lVGV4dC5tYXhMZW5ndGggPSBlbGVtZW50Lm9wdGlvbnMubWF4TGVuZ3RoO1xyXG4gICAgICAgICAgaWYgKGVsZW1lbnQub3B0aW9ucy5taW5MZW5ndGgpXHJcbiAgICAgICAgICAgIE11bHRpbGluZVRleHQubWluTGVuZ3RoID0gZWxlbWVudC5vcHRpb25zLm1pbkxlbmd0aDtcclxuICAgICAgICAgIE11bHRpbGluZVRleHQucm93cyA9IGVsZW1lbnQub3B0aW9ucy5yb3dzO1xyXG4gICAgICAgICAgaWYgKGVsZW1lbnQudmFsdWUudGV4dCkgTXVsdGlsaW5lVGV4dC52YWx1ZSA9IGVsZW1lbnQudmFsdWUudGV4dDtcclxuICAgICAgICAgIGlmIChlbGVtZW50LmlzUmVsYXRlZFRvU3VydmV5UXVlc3Rpb24pXHJcbiAgICAgICAgICAgIHRoaXMuY2hlY2tMaXN0LnB1c2goTXVsdGlsaW5lVGV4dCk7XHJcbiAgICAgICAgICBNdWx0aWxpbmVUZXh0LmZvcmNlRGlyZWN0aW9uID1cclxuICAgICAgICAgICAgdGhpcy51dGlsaXR5U2VydmljZS5pc0N1cnJlbnRMYW5ndWFnZUFyYWJpYygpXHJcbiAgICAgICAgICAgICAgPyBGb3JjZURpcmVjdGlvbi5BcmFiaWNcclxuICAgICAgICAgICAgICA6IEZvcmNlRGlyZWN0aW9uLkVuZ2xpc2g7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlckNvbXBvbmVudFNlcnZpY2UucmVuZGVyRHluYW1pY0NvbXBvbmVudDxTdXJ2ZXlGb3JtSXRlbUNvbXBvbmVudD4oXHJcbiAgICAgICAgICAgIHZpZXdDb250YWluZXJSZWYsXHJcbiAgICAgICAgICAgIFN1cnZleUZvcm1JdGVtQ29tcG9uZW50LFxyXG4gICAgICAgICAgICB0aGlzLmZpbGVkR3JvdXAsXHJcbiAgICAgICAgICAgIE11bHRpbGluZVRleHQsXHJcbiAgICAgICAgICAgIGVsZW1lbnQub3B0aW9ucy5zaXplXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgLy9IVE1MXHJcbiAgICAgICAgY2FzZSBTdXJ2ZXlPcHRpb25UeXBlLkJvb2xlYW4udG9Mb2NhbGVMb3dlckNhc2UoKTpcclxuICAgICAgICAgIGxldCBCb29sZWFuID0gbmV3IFRvZ2dsZVNsaWRlT3B0aW9ucygpO1xyXG4gICAgICAgICAgQm9vbGVhbi5uYW1lID0gJ3EnICsgZWxlbWVudC5pRF9HVUlEO1xyXG4gICAgICAgICAgQm9vbGVhbi5sYWJlbEV4dHJhQ2xhc3NlcyA9IHRoaXMubGFiZWxDbGFzcztcclxuICAgICAgICAgIEJvb2xlYW4udmlld1R5cGUgPSBDb250cm9sTGF5b3V0LlZlcnRpY2FsO1xyXG4gICAgICAgICAgQm9vbGVhbi5pc1JlYWRvbmx5ID0gZWxlbWVudC5pc1JlbGF0ZWRUb1N1cnZleVF1ZXN0aW9uO1xyXG4gICAgICAgICAgQm9vbGVhbi5pc0Rpc2FibGVkID0gdGhpcy5vcHRpb25zLlJlYWRvbmx5O1xyXG4gICAgICAgICAgQm9vbGVhbi5oaWRlTGFiZWwgPSBmYWxzZTtcclxuICAgICAgICAgIGlmIChlbGVtZW50LnZhbHVlLmJvb2xlYW4pIEJvb2xlYW4udmFsdWUgPSBlbGVtZW50LnZhbHVlLmJvb2xlYW47XHJcbiAgICAgICAgICBpZiAoZWxlbWVudC5pc1JlbGF0ZWRUb1N1cnZleVF1ZXN0aW9uKSB0aGlzLmNoZWNrTGlzdC5wdXNoKEJvb2xlYW4pO1xyXG4gICAgICAgICAgQm9vbGVhbi5sYWJlbFZhbHVlID0gdGhpcy51dGlsaXR5U2VydmljZS5pc0N1cnJlbnRMYW5ndWFnZUFyYWJpYygpXHJcbiAgICAgICAgICAgID8gZWxlbWVudC50ZXh0LmFyYWJpYyArIGAuJHtlbGVtZW50LnF1ZXN0aW9uVHlwZUl0ZW1JRH1gXHJcbiAgICAgICAgICAgIDogZWxlbWVudC50ZXh0LmVuZ2xpc2ggKyBgLiR7ZWxlbWVudC5xdWVzdGlvblR5cGVJdGVtSUR9YDtcclxuICAgICAgICAgIEJvb2xlYW4ubGFiZWxEZXNjcmlwdGlvbiA9XHJcbiAgICAgICAgICAgIHRoaXMudXRpbGl0eVNlcnZpY2UuaXNDdXJyZW50TGFuZ3VhZ2VBcmFiaWMoKVxyXG4gICAgICAgICAgICAgID8gZWxlbWVudC5vcHRpb25zLmRlc2NyaXB0aW9uLmFyYWJpY1xyXG4gICAgICAgICAgICAgIDogZWxlbWVudC5vcHRpb25zLmRlc2NyaXB0aW9uLmVuZ2xpc2g7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlckNvbXBvbmVudFNlcnZpY2UucmVuZGVyRHluYW1pY0NvbXBvbmVudDxTdXJ2ZXlGb3JtSXRlbUNvbXBvbmVudD4oXHJcbiAgICAgICAgICAgIHZpZXdDb250YWluZXJSZWYsXHJcbiAgICAgICAgICAgIFN1cnZleUZvcm1JdGVtQ29tcG9uZW50LFxyXG4gICAgICAgICAgICB0aGlzLmZpbGVkR3JvdXAsXHJcbiAgICAgICAgICAgIEJvb2xlYW4sXHJcbiAgICAgICAgICAgIGVsZW1lbnQub3B0aW9ucy5zaXplXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgLy9Mb2NhdGlvblxyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5SZWFkb25seSlcclxuICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IHRoaXMuY2hlY2tMaXN0Lmxlbmd0aDsgaW5kZXgrKykge1xyXG4gICAgICAgIGlmICh0aGlzLmNoZWNrTGlzdFtpbmRleF0uVmFsdWUpIHtcclxuICAgICAgICAgIHRoaXMuY2hlY2tMaXN0W2luZGV4XS5Jc1JlYWRvbmx5ID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgdGhpcy5maWxlZEdyb3VwLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKGVzKSA9PiB7XHJcbiAgICAgIGNvbnNvbGUubG9nKHRoaXMuZmlsZWRHcm91cCk7XHJcbiAgICAgIHRoaXMucmVzdWx0ID0gW107XHJcbiAgICAgIHRoaXMuc2hvd2VkQ2hpbGRRdWVzdGlvbiA9IFtdO1xyXG4gICAgICBmb3IgKGNvbnN0IGtleSBpbiB0aGlzLmZpbGVkR3JvdXAuY29udHJvbHMpIHtcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpcy5maWxlZEdyb3VwLmNvbnRyb2xzLCBrZXkpXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICBsZXQgc2NvcmUgPSAwO1xyXG4gICAgICAgICAgbGV0IGVsZW1lbnQgPSB0aGlzLmZpbGVkR3JvdXAuY29udHJvbHNba2V5XTtcclxuICAgICAgICAgIGxldCBpZCA9IGtleS5yZXBsYWNlKCdxJywgJycpO1xyXG4gICAgICAgICAgdmFyIGZpbHRlcmVkSXRlbSA9IHRoaXMub3B0aW9ucy5RdWVzdGlvbkxpc3QuZmlsdGVyKFxyXG4gICAgICAgICAgICAoaXRlbSkgPT4gaXRlbS5pRF9HVUlEID09IGlkXHJcbiAgICAgICAgICApWzBdO1xyXG5cclxuICAgICAgICAgIGxldCBpdGVtID0gbmV3IFN1cnZleUZpbGVkVmFsdWVEVE8oKTtcclxuICAgICAgICAgIGl0ZW0uUXVlc3Rpb25GaWVsZElEID0gaWQ7XHJcbiAgICAgICAgICBpdGVtLlF1ZXN0aW9uVHlwZUl0ZW1JRCA9IGZpbHRlcmVkSXRlbS5xdWVzdGlvblR5cGVJdGVtSUQ7XHJcbiAgICAgICAgICBzd2l0Y2ggKGZpbHRlcmVkSXRlbS5xdWVzdGlvblR5cGVJdGVtSUQpIHtcclxuICAgICAgICAgICAgY2FzZSBTdXJ2ZXlPcHRpb25UeXBlLlRleHQudG9Mb2NhbGVMb3dlckNhc2UoKTpcclxuICAgICAgICAgICAgICBpdGVtLlRleHQgPSBlbGVtZW50LnZhbHVlO1xyXG4gICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIFN1cnZleU9wdGlvblR5cGUuRW1haWwudG9Mb2NhbGVMb3dlckNhc2UoKTpcclxuICAgICAgICAgICAgICBpdGVtLlRleHQgPSBlbGVtZW50LnZhbHVlO1xyXG4gICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIFN1cnZleU9wdGlvblR5cGUuTnVtYmVyLnRvTG9jYWxlTG93ZXJDYXNlKCk6XHJcbiAgICAgICAgICAgICAgaXRlbS5UZXh0ID0gZWxlbWVudC52YWx1ZTtcclxuICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBTdXJ2ZXlPcHRpb25UeXBlLk11bHRpbGluZVRleHQudG9Mb2NhbGVMb3dlckNhc2UoKTpcclxuICAgICAgICAgICAgICBpdGVtLlRleHQgPSBlbGVtZW50LnZhbHVlO1xyXG4gICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIFN1cnZleU9wdGlvblR5cGUuQm9vbGVhbi50b0xvY2FsZUxvd2VyQ2FzZSgpOlxyXG4gICAgICAgICAgICAgIGl0ZW0uQm9vbGVhbiA9IGVsZW1lbnQudmFsdWU7XHJcbiAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgU3VydmV5T3B0aW9uVHlwZS5EYXRlLnRvTG9jYWxlTG93ZXJDYXNlKCk6XHJcbiAgICAgICAgICAgICAgaXRlbS5EYXRlVGltZSA9IGVsZW1lbnQudmFsdWU7XHJcbiAgICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgICBjYXNlIFN1cnZleU9wdGlvblR5cGUuRGF0ZVRpbWUudG9Mb2NhbGVMb3dlckNhc2UoKTpcclxuICAgICAgICAgICAgICBpdGVtLkRhdGVUaW1lID0gZWxlbWVudC52YWx1ZTtcclxuICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBTdXJ2ZXlPcHRpb25UeXBlLlNpbmdsZVNlbGVjdC50b0xvY2FsZUxvd2VyQ2FzZSgpOlxyXG4gICAgICAgICAgICAgIGl0ZW0uU2VsZWN0ZWRJRHMgPSBbZWxlbWVudC52YWx1ZV07XHJcbiAgICAgICAgICAgICAgdGhpcy5hZGRTaG93ZWRDaGlsZFF1ZXN0aW9ucyhlbGVtZW50LnZhbHVlKTtcclxuICAgICAgICAgICAgICBkZWJ1Z2dlcjtcclxuICAgICAgICAgICAgICBpZiAoZmlsdGVyZWRJdGVtLmlzQWxsb3dTY29yaW5nKVxyXG4gICAgICAgICAgICAgICAgc2NvcmUgPSBmaWx0ZXJlZEl0ZW0ucXVlc3Rpb25PcHRpb25zLmZpbHRlcihcclxuICAgICAgICAgICAgICAgICAgKGl0ZW0pID0+IGl0ZW0uaURfR1VJRCA9PSBlbGVtZW50LnZhbHVlXHJcbiAgICAgICAgICAgICAgICApWzBdPy5zY29yZVxyXG4gICAgICAgICAgICAgICAgICA/IGZpbHRlcmVkSXRlbS5xdWVzdGlvbk9wdGlvbnM/LmZpbHRlcihcclxuICAgICAgICAgICAgICAgICAgICAoaXRlbSkgPT4gaXRlbS5pRF9HVUlEID09IGVsZW1lbnQudmFsdWVcclxuICAgICAgICAgICAgICAgICAgKVswXS5zY29yZVxyXG4gICAgICAgICAgICAgICAgICA6IDA7XHJcbiAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgU3VydmV5T3B0aW9uVHlwZS5SYWRpb0J1dHRvbi50b0xvY2FsZUxvd2VyQ2FzZSgpOlxyXG4gICAgICAgICAgICAgIGl0ZW0uU2VsZWN0ZWRJRHMgPSBbZWxlbWVudC52YWx1ZV07XHJcbiAgICAgICAgICAgICAgdGhpcy5hZGRTaG93ZWRDaGlsZFF1ZXN0aW9ucyhlbGVtZW50LnZhbHVlKTtcclxuICAgICAgICAgICAgICBpZiAoZmlsdGVyZWRJdGVtLmlzQWxsb3dTY29yaW5nKVxyXG4gICAgICAgICAgICAgICAgc2NvcmUgPSBmaWx0ZXJlZEl0ZW0ucXVlc3Rpb25PcHRpb25zLmZpbHRlcihcclxuICAgICAgICAgICAgICAgICAgKGl0ZW0pID0+IGl0ZW0uaURfR1VJRCA9PSBlbGVtZW50LnZhbHVlXHJcbiAgICAgICAgICAgICAgICApWzBdPy5zY29yZVxyXG4gICAgICAgICAgICAgICAgICA/IGZpbHRlcmVkSXRlbS5xdWVzdGlvbk9wdGlvbnM/LmZpbHRlcihcclxuICAgICAgICAgICAgICAgICAgICAoaXRlbSkgPT4gaXRlbS5pRF9HVUlEID09IGVsZW1lbnQudmFsdWVcclxuICAgICAgICAgICAgICAgICAgKVswXS5zY29yZVxyXG4gICAgICAgICAgICAgICAgICA6IDA7XHJcbiAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgU3VydmV5T3B0aW9uVHlwZS5NdWx0aXBsZVNlbGVjdC50b0xvY2FsZUxvd2VyQ2FzZSgpOlxyXG4gICAgICAgICAgICAgIGl0ZW0uU2VsZWN0ZWRJRHMgPSBlbGVtZW50LnZhbHVlO1xyXG4gICAgICAgICAgICAgIGlmIChlbGVtZW50LnZhbHVlKVxyXG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGVsZW1lbnQudmFsdWUubGVuZ3RoOyBpbmRleCsrKSB7XHJcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGl0ZW0gPSBlbGVtZW50LnZhbHVlW2luZGV4XTtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5hZGRTaG93ZWRDaGlsZFF1ZXN0aW9ucyhpdGVtKTtcclxuICAgICAgICAgICAgICAgICAgaWYgKGZpbHRlcmVkSXRlbS5pc0FsbG93U2NvcmluZykge1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBzY29yZVZhbHVlID0gZmlsdGVyZWRJdGVtLnF1ZXN0aW9uT3B0aW9ucy5maWx0ZXIoXHJcbiAgICAgICAgICAgICAgICAgICAgICAoaXRlbU9wdGlvbnMpID0+IGl0ZW1PcHRpb25zLmlEX0dVSUQgPT0gaXRlbVxyXG4gICAgICAgICAgICAgICAgICAgIClbMF0/LnNjb3JlXHJcbiAgICAgICAgICAgICAgICAgICAgICA/IGZpbHRlcmVkSXRlbS5xdWVzdGlvbk9wdGlvbnM/LmZpbHRlcihcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGl0ZW1PcHRpb25zKSA9PiBpdGVtT3B0aW9ucy5pRF9HVUlEID09IGl0ZW1cclxuICAgICAgICAgICAgICAgICAgICAgIClbMF0uc2NvcmVcclxuICAgICAgICAgICAgICAgICAgICAgIDogMDtcclxuICAgICAgICAgICAgICAgICAgICBzY29yZSA9IHNjb3JlVmFsdWUgKyBzY29yZTtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIFN1cnZleU9wdGlvblR5cGUuQ291bnRyeS50b0xvY2FsZUxvd2VyQ2FzZSgpOlxyXG4gICAgICAgICAgICAgIGl0ZW0uU2VsZWN0ZWRJRHMgPSBbZWxlbWVudC52YWx1ZV07XHJcbiAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgU3VydmV5T3B0aW9uVHlwZS5JbWFnZS50b0xvY2FsZUxvd2VyQ2FzZSgpOlxyXG4gICAgICAgICAgICAgIGl0ZW0uRmlsZURUTyA9IGVsZW1lbnQudmFsdWU7XHJcbiAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgU3VydmV5T3B0aW9uVHlwZS5GaWxlLnRvTG9jYWxlTG93ZXJDYXNlKCk6XHJcbiAgICAgICAgICAgICAgaWYgKGVsZW1lbnQudmFsdWUpXHJcbiAgICAgICAgICAgICAgICBpdGVtLkZpbGVEVE8gPSBlbGVtZW50LnZhbHVlLkZpbGVcclxuICAgICAgICAgICAgICAgICAgPyBlbGVtZW50LnZhbHVlLkZpbGVcclxuICAgICAgICAgICAgICAgICAgOiBlbGVtZW50LnZhbHVlO1xyXG4gICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIFN1cnZleU9wdGlvblR5cGUuTXVsdGlGaWxlLnRvTG9jYWxlTG93ZXJDYXNlKCk6XHJcbiAgICAgICAgICAgICAgaXRlbS5GaWxlQ29ycmVsYXRpb25EVE8gPSBlbGVtZW50LnZhbHVlO1xyXG4gICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZmlsdGVyZWRJdGVtLnZhbHVlID0gaXRlbTtcclxuICAgICAgICAgIGZpbHRlcmVkSXRlbS52YWx1ZS5zY29yZSA9IHNjb3JlO1xyXG4gICAgICAgICAgdGhpcy5yZXN1bHQucHVzaChpdGVtKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5vcHRpb25zLlZhbHVlc0xpc3QgPSB0aGlzLnJlc3VsdDtcclxuICAgICAgdGhpcy5jaGFuZ2VIaWRkZW5RdWVzdGlvbnNTdGF0dXMoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgYWRkU2hvd2VkQ2hpbGRRdWVzdGlvbnMobmV3S2V5KSB7XHJcbiAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgdGhpcy5vcHRpb25zLlF1ZXN0aW9uTGlzdC5sZW5ndGg7IGluZGV4KyspIHtcclxuICAgICAgdmFyIHF1ZXN0aW9uT3B0aW9uID0gdGhpcy5vcHRpb25zLlF1ZXN0aW9uTGlzdFtpbmRleF0ucXVlc3Rpb25PcHRpb25zO1xyXG4gICAgICBsZXQgT3B0aW9uID0gcXVlc3Rpb25PcHRpb24uZmlsdGVyKCh4KSA9PiB4LmlEX0dVSUQgPT09IG5ld0tleSlbMF07XHJcbiAgICAgIGlmIChPcHRpb24gJiYgT3B0aW9uPy5saW5rZWRRdWVzdGlvbnMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBPcHRpb24ubGlua2VkUXVlc3Rpb25zLmxlbmd0aDsgaW5kZXgrKykge1xyXG4gICAgICAgICAgY29uc3QgbGlua2VkUXVlc3Rpb24gPSBPcHRpb24ubGlua2VkUXVlc3Rpb25zW2luZGV4XTtcclxuICAgICAgICAgIGxldCBjaGVja0lzUXVlc3Rpb25FeGlzdCA9IHRoaXMuc2hvd2VkQ2hpbGRRdWVzdGlvbi5zb21lKFxyXG4gICAgICAgICAgICAoeCkgPT4geCA9PT0gYHEke2xpbmtlZFF1ZXN0aW9ufWBcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICBpZiAoIWNoZWNrSXNRdWVzdGlvbkV4aXN0KVxyXG4gICAgICAgICAgICB0aGlzLnNob3dlZENoaWxkUXVlc3Rpb24ucHVzaChgcSR7bGlua2VkUXVlc3Rpb259YCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjaGFuZ2VIaWRkZW5RdWVzdGlvbnNTdGF0dXMoKSB7XHJcbiAgICBsZXQgcXVlc3Rpb25zID0gdGhpcy5zaG93ZWRDaGlsZFF1ZXN0aW9uO1xyXG4gICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IHRoaXMuY2hlY2tMaXN0Lmxlbmd0aDsgaW5kZXgrKykge1xyXG4gICAgICBsZXQgY2hlY2tJZkV4aXN0ID0gdGhpcy5zaG93ZWRDaGlsZFF1ZXN0aW9uLnNvbWUoXHJcbiAgICAgICAgKHgpID0+IHggPT09IHRoaXMuY2hlY2tMaXN0W2luZGV4XS5OYW1lXHJcbiAgICAgICk7XHJcbiAgICAgIGlmIChjaGVja0lmRXhpc3QpIHtcclxuICAgICAgICBsZXQgcXVlc3Rpb25JZCA9IHRoaXMuY2hlY2tMaXN0W2luZGV4XS5OYW1lLnJlcGxhY2UoJ3EnLCAnJyk7XHJcbiAgICAgICAgbGV0IFF1ZXN0aW9uID0gdGhpcy5vcHRpb25zLlF1ZXN0aW9uTGlzdC5maWx0ZXIoXHJcbiAgICAgICAgICAoaXRlbSkgPT4gaXRlbS5pRF9HVUlEID09IHF1ZXN0aW9uSWRcclxuICAgICAgICApWzBdO1xyXG4gICAgICAgIHRoaXMuY2hlY2tMaXN0W2luZGV4XS5Jc1JlYWRvbmx5ID0gZmFsc2U7XHJcbiAgICAgICAgaWYgKFF1ZXN0aW9uLm9wdGlvbnMuaXNSZXF1aXJlZCAmJiAhdGhpcy5jaGVja0xpc3RbaW5kZXhdLklzUmVxdWlyZWQpIHtcclxuICAgICAgICAgIHRoaXMuY2hlY2tMaXN0W2luZGV4XS5Jc1JlcXVpcmVkID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMuZmlsZWRHcm91cFxyXG4gICAgICAgICAgICAuZ2V0KHRoaXMuY2hlY2tMaXN0W2luZGV4XS5OYW1lKVxyXG4gICAgICAgICAgICAuYWRkVmFsaWRhdG9ycyhWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgdGhpcy5maWxlZEdyb3VwLmdldCh0aGlzLmNoZWNrTGlzdFtpbmRleF0uTmFtZSkudmFsdWUgPT0gbnVsbCB8fFxyXG4gICAgICAgICAgICB0aGlzLmZpbGVkR3JvdXAuZ2V0KHRoaXMuY2hlY2tMaXN0W2luZGV4XS5OYW1lKS52YWx1ZSA9PVxyXG4gICAgICAgICAgICB1bmRlZmluZWQgfHxcclxuICAgICAgICAgICAgdGhpcy5maWxlZEdyb3VwLmdldCh0aGlzLmNoZWNrTGlzdFtpbmRleF0uTmFtZSkudmFsdWUgPT0gJydcclxuICAgICAgICAgIClcclxuICAgICAgICAgICAgdGhpcy5maWxlZEdyb3VwXHJcbiAgICAgICAgICAgICAgLmdldCh0aGlzLmNoZWNrTGlzdFtpbmRleF0uTmFtZSlcclxuICAgICAgICAgICAgICAuc2V0RXJyb3JzKHsgcmVxdWlyZWQ6IHRydWUgfSk7XHJcbiAgICAgICAgICBlbHNlIHRoaXMuZmlsZWRHcm91cC5nZXQodGhpcy5jaGVja0xpc3RbaW5kZXhdLk5hbWUpLnNldEVycm9ycyhudWxsKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5jaGVja0xpc3RbaW5kZXhdLklzUmVhZG9ubHkgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuY2hlY2tMaXN0W2luZGV4XS5Jc1JlcXVpcmVkID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5jaGVja0xpc3RbaW5kZXhdLlZhbHVlID0gbnVsbDtcclxuICAgICAgICB0aGlzLmZpbGVkR3JvdXAuY29udHJvbHNbdGhpcy5jaGVja0xpc3RbaW5kZXhdLk5hbWVdLnJlbW92ZVZhbGlkYXRvcnMoXHJcbiAgICAgICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkXHJcbiAgICAgICAgKTtcclxuICAgICAgICB0aGlzLmZpbGVkR3JvdXAuZ2V0KHRoaXMuY2hlY2tMaXN0W2luZGV4XS5OYW1lKS5zZXRFcnJvcnMobnVsbCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHRvQ2FtZWwgPSAob2JqKSA9PiB7XHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheShvYmopKSB7XHJcbiAgICAgIHJldHVybiBvYmoubWFwKCh2KSA9PiB0aGlzLnRvQ2FtZWwodikpO1xyXG4gICAgfSBlbHNlIGlmIChvYmogIT0gbnVsbCAmJiBvYmouY29uc3RydWN0b3IgPT09IE9iamVjdCkge1xyXG4gICAgICByZXR1cm4gT2JqZWN0LmtleXMob2JqKS5yZWR1Y2VSaWdodChcclxuICAgICAgICAocmVzdWx0LCBrZXkpID0+ICh7XHJcbiAgICAgICAgICAuLi5yZXN1bHQsXHJcbiAgICAgICAgICBbKGtleS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIGtleS5zbGljZSgxKSB8fCBrZXkpLnRvU3RyaW5nKCldOlxyXG4gICAgICAgICAgICB0aGlzLnRvQ2FtZWwob2JqW2tleV0pLFxyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIHt9XHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gb2JqO1xyXG4gIH07XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInN1cnZleS1wcmV2aWV3XCI+XHJcbiAgICA8bmctdGVtcGxhdGUgYWRIb3N0PjwvbmctdGVtcGxhdGU+XHJcbjwvZGl2PlxyXG5cclxuIl19
696
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VydmV5LWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi1hZG1pbi1wb3J0YWwvc3JjL2xpYi9QYWdlcy9zaGFyZWQvY29tcG9uZW50cy9zdXJ2ZXktZm9ybS9zdXJ2ZXktZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLWFkbWluLXBvcnRhbC9zcmMvbGliL1BhZ2VzL3NoYXJlZC9jb21wb25lbnRzL3N1cnZleS1mb3JtL3N1cnZleS1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsS0FBSyxFQUFVLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRixPQUFPLEVBQUUsU0FBUyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRixPQUFPLEVBQ0wsYUFBYSxFQUFFLGlCQUFpQixFQUFFLHFCQUFxQixFQUFvQixlQUFlLEVBQ2pGLFFBQVEsRUFBRSxpQkFBaUIsRUFBRSxjQUFjLEVBQUUsa0JBQWtCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFDL0Ysa0JBQWtCLEVBQUUsV0FBVyxFQUEwQixVQUFVLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFDL0YsY0FBYyxFQUFFLGtCQUFrQixFQUNuQyxNQUFNLHlCQUF5QixDQUFDO0FBR2pDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBRW5GLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQzs7Ozs7O0FBUXpGLE1BQU0sT0FBTyxt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QUFDLGtCQUFrQixDQUFDLGtFQU10QixXQUFXLHdGQUNYLHFCQUFxQixtRkFXckIsTUFBTSxnRENyQ25CLDRGQUlBOzsyRkRrQmEsbUJBQW1CO2tCQU4vQixTQUFTOytCQUNJLGFBQWEsYUFFWixDQUFDLGtCQUFrQixDQUFDLGNBQ25CLEtBQUs7a0xBR1YsS0FBSztzQkFBYixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDb0MsTUFBTTtzQkFBL0MsU0FBUzt1QkFBQyxXQUFXLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUVoQyxPQUFPO3NCQURkLFNBQVM7dUJBQUMscUJBQXFCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQVdoQyxnQkFBZ0I7c0JBQWxDLFNBQVM7dUJBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCwgRm9ybUdyb3VwRGlyZWN0aXZlLCBOZ0Zvcm0sIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7XHJcbiAgQ29udHJvbExheW91dCwgRGF0ZVBpY2tlck9wdGlvbnMsIERyb3Bkb3duTGlzdENvbXBvbmVudCwgRHJvcGRvd25MaXN0SXRlbSwgRHJvcGRvd25PcHRpb25zLFxyXG4gIEZpbGVEVE8sIEZpbGVUeXBlLCBGaWxlVXBsb2FkT3B0aW9ucywgRm9yY2VEaXJlY3Rpb24sIEltYWdlVXBsb2FkT3B0aW9ucywgSW5wdXRUeXBlLCBQaWNrZXJUeXBlLFxyXG4gIFJhZGlvQnV0dG9uT3B0aW9ucywgUmFuZ2VOdW1iZXIsIFJlbmRlckNvbXBvbmVudFNlcnZpY2UsIFNlbGVjdE1vZGUsIFN0YXJ0VmlldywgVGV4dEFyZWFPcHRpb25zLFxyXG4gIFRleHRCb3hPcHRpb25zLCBUb2dnbGVTbGlkZU9wdGlvbnNcclxufSBmcm9tICdAYm5zaWdodHMvYmJzZi1jb250cm9scyc7XHJcbmltcG9ydCB7IFV0aWxpdHlTZXJ2aWNlIH0gZnJvbSAnQGJuc2lnaHRzL2Jic2YtdXRpbGl0aWVzJztcclxuXHJcbmltcG9ydCB7IFN1cnZleU9wdGlvblR5cGUgfSBmcm9tICcuLi8uLi9FbnVtcy9FbnVtcyc7XHJcbmltcG9ydCB7IFN1cnZleUZpbGVkVmFsdWVEVE8gfSBmcm9tICcuLi8uLi9tb2RlbHMvU3VydmV5TW9kZWxzL3N1cnZleS1maWxlZC12YWx1ZSc7XHJcbmltcG9ydCB7IFN1cnZleUZvcm1PcHRpb25zIH0gZnJvbSAnLi4vLi4vbW9kZWxzL1N1cnZleU1vZGVscy9zdXJ2ZXktZm9ybS1vcHRpb25zJztcclxuaW1wb3J0IHsgQWREaXJlY3RpdmUgfSBmcm9tICcuLi9BZERpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IFN1cnZleUZvcm1JdGVtQ29tcG9uZW50IH0gZnJvbSAnLi4vc3VydmV5LWZvcm0taXRlbS9zdXJ2ZXktZm9ybS1pdGVtLmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnc3VydmV5LWZvcm0nLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3N1cnZleS1mb3JtLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHByb3ZpZGVyczogW0Zvcm1Hcm91cERpcmVjdGl2ZV0sXHJcbiAgICBzdGFuZGFsb25lOiBmYWxzZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU3VydmV5Rm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQElucHV0KCkgZ3JvdXA6IEZvcm1Hcm91cDtcclxuICBASW5wdXQoKSBvcHRpb25zOiBTdXJ2ZXlGb3JtT3B0aW9ucztcclxuICBAVmlld0NoaWxkKEFkRGlyZWN0aXZlLCB7IHN0YXRpYzogdHJ1ZSB9KSBhZEhvc3QhOiBBZERpcmVjdGl2ZTtcclxuICBAVmlld0NoaWxkKERyb3Bkb3duTGlzdENvbXBvbmVudCwgeyBzdGF0aWM6IGZhbHNlIH0pXHJcbiAgcHJpdmF0ZSBteUNoaWxkOiBEcm9wZG93bkxpc3RDb21wb25lbnQ7XHJcblxyXG4gIGZpbGVkR3JvdXA6IEZvcm1Hcm91cDtcclxuICByZXN1bHQ6IFN1cnZleUZpbGVkVmFsdWVEVE9bXSA9IFtdO1xyXG4gIGNoaWxkSWRMaXN0OiBzdHJpbmdbXSA9IFtdO1xyXG4gIGNoaWxkUXVlc3Rpb25MaXN0OiBhbnlbXSA9IFtdO1xyXG4gIGFyZWFPZkZvY3VzQ29udHJvbE5hbWU6IHN0cmluZztcclxuICBjaGFsbGVuZ2VDb250cm9sTmFtZTogc3RyaW5nO1xyXG4gIGFyZWFPZkZvY3VzQ29udHJvbEluZGV4ID0gMDtcclxuICBjaGFsbGVuZ2VDb250cm9sSW5kZXggPSAwO1xyXG4gIEBWaWV3Q2hpbGQoTmdGb3JtKSBkb2N1bWVudEVkaXRGb3JtITogTmdGb3JtO1xyXG4gIGlzRGVsZXRlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgY2hlY2tMaXN0OiBhbnlbXSA9IFtdO1xyXG4gIHNob3dlZENoaWxkUXVlc3Rpb246IGFueVtdID0gW107XHJcbiAgVGV4dENvbnRleHQ6IGFueTtcclxuICBpc0ZpcnN0VmFsaWQ6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIGxhYmVsQ2xhc3M6IHN0cmluZyA9ICdUZXN0dHNhZGZ2JztcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgZWw6IEVsZW1lbnRSZWYsXHJcbiAgICBwcml2YXRlIHJlbmRlckNvbXBvbmVudFNlcnZpY2U6IFJlbmRlckNvbXBvbmVudFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHV0aWxpdHlTZXJ2aWNlOiBVdGlsaXR5U2VydmljZSxcclxuICAgIHB1YmxpYyBUZXh0Q29udHJvbEhvc3Q6IEZvcm1Hcm91cERpcmVjdGl2ZVxyXG4gICkgeyB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBjb25zdCB2aWV3Q29udGFpbmVyUmVmID0gdGhpcy5hZEhvc3Qudmlld0NvbnRhaW5lclJlZjtcclxuICAgIHZpZXdDb250YWluZXJSZWYuY2xlYXIoKTtcclxuICAgIHRoaXMuZmlsZWRHcm91cCA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG4gICAgdGhpcy5ncm91cC5hZGRDb250cm9sKHRoaXMub3B0aW9ucy5OYW1lLCB0aGlzLmZpbGVkR3JvdXApO1xyXG5cclxuICAgIHRoaXMuZ3JvdXAuc3RhdHVzQ2hhbmdlcy5zdWJzY3JpYmUoKGUpID0+IHtcclxuICAgICAgY29uc29sZS5sb2coJ0dyb3VwJywgZSk7XHJcbiAgICB9KTtcclxuICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCB0aGlzLm9wdGlvbnMuUXVlc3Rpb25MaXN0Lmxlbmd0aDsgaW5kZXgrKykge1xyXG4gICAgICB2YXIgZWxlbWVudCA9IHRoaXMub3B0aW9ucy5RdWVzdGlvbkxpc3RbaW5kZXhdO1xyXG5cclxuICAgICAgc3dpdGNoIChlbGVtZW50LnF1ZXN0aW9uVHlwZUl0ZW1JRCkge1xyXG4gICAgICAgIC8vL1RleHRCb3hcclxuXHJcbiAgICAgICAgY2FzZSBTdXJ2ZXlPcHRpb25UeXBlLlRleHQudG9Mb2NhbGVMb3dlckNhc2UoKTpcclxuICAgICAgICAgIHZhciBUZXh0ID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICAgICAgICBUZXh0Lm5hbWUgPSAncScgKyBlbGVtZW50LmlEX0dVSUQ7XHJcbiAgICAgICAgICBUZXh0LmxhYmVsVmFsdWUgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmlzQ3VycmVudExhbmd1YWdlQXJhYmljKClcclxuICAgICAgICAgICAgPyBlbGVtZW50LnRleHQuYXJhYmljICsgYC4ke2VsZW1lbnQucXVlc3Rpb25UeXBlSXRlbUlEfWBcclxuICAgICAgICAgICAgOiBlbGVtZW50LnRleHQuZW5nbGlzaCArIGAuJHtlbGVtZW50LnF1ZXN0aW9uVHlwZUl0ZW1JRH1gO1xyXG4gICAgICAgICAgVGV4dC5oaWRlTGFiZWwgPSBmYWxzZTtcclxuICAgICAgICAgIFRleHQuaXNSZXF1aXJlZCA9IGVsZW1lbnQuaXNSZWxhdGVkVG9TdXJ2ZXlRdWVzdGlvblxyXG4gICAgICAgICAgICA/IGZhbHNlXHJcbiAgICAgICAgICAgIDogZWxlbWVudC5vcHRpb25zLmlzUmVxdWlyZWQ7XHJcbiAgICAgICAgICBUZXh0LmlzUmVhZG9ubHkgPSBlbGVtZW50LmlzUmVsYXRlZFRvU3VydmV5UXVlc3Rpb247XHJcbiAgICAgICAgICBUZXh0LmlzRGlzYWJsZWQgPSB0aGlzLm9wdGlvbnMuUmVhZG9ubHk7XHJcbiAgICAgICAgICBUZXh0LmxhYmVsRXh0cmFDbGFzc2VzID0gdGhpcy5sYWJlbENsYXNzO1xyXG4gICAgICAgICAgVGV4dC52aWV3VHlwZSA9IENvbnRyb2xMYXlvdXQuVmVydGljYWw7XHJcbiAgICAgICAgICBUZXh0LmxhYmVsRGVzY3JpcHRpb24gPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmlzQ3VycmVudExhbmd1YWdlQXJhYmljKClcclxuICAgICAgICAgICAgPyBlbGVtZW50Lm9wdGlvbnMuZGVzY3JpcHRpb24uYXJhYmljXHJcbiAgICAgICAgICAgIDogZWxlbWVudC5vcHRpb25zLmRlc2NyaXB0aW9uLmVuZ2xpc2g7XHJcbiAgICAgICAgICBpZiAoZWxlbWVudC52YWx1ZS50ZXh0KSBUZXh0LnZhbHVlID0gZWxlbWVudC52YWx1ZS50ZXh0O1xyXG4gICAgICAgICAgaWYgKGVsZW1lbnQub3B0aW9ucy5tYXhMZW5ndGgpXHJcbiAgICAgICAgICAgIFRleHQubWF4TGVuZ3RoID0gZWxlbWVudC5vcHRpb25zLm1heExlbmd0aDtcclxuICAgICAgICAgIGlmIChlbGVtZW50Lm9wdGlvbnMubWluTGVuZ3RoKVxyXG4gICAgICAgICAgICBUZXh0Lm1pbkxlbmd0aCA9IGVsZW1lbnQub3B0aW9ucy5taW5MZW5ndGg7XHJcbiAgICAgICAgICBUZXh0LnR5cGUgPSBJbnB1dFR5cGUuVGV4dDtcclxuICAgICAgICAgIGlmIChlbGVtZW50LmlzUmVsYXRlZFRvU3VydmV5UXVlc3Rpb24pIHRoaXMuY2hlY2tMaXN0LnB1c2goVGV4dCk7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlckNvbXBvbmVudFNlcnZpY2UucmVuZGVyRHluYW1pY0NvbXBvbmVudDxTdXJ2ZXlGb3JtSXRlbUNvbXBvbmVudD4oXHJcbiAgICAgICAgICAgIHZpZXdDb250YWluZXJSZWYsXHJcbiAgICAgICAgICAgIFN1cnZleUZvcm1JdGVtQ29tcG9uZW50LFxyXG4gICAgICAgICAgICB0aGlzLmZpbGVkR3JvdXAsXHJcbiAgICAgICAgICAgIFRleHQsXHJcbiAgICAgICAgICAgIGVsZW1lbnQub3B0aW9ucy5zaXplXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgIGNhc2UgU3VydmV5T3B0aW9uVHlwZS5FbWFpbC50b0xvY2FsZUxvd2VyQ2FzZSgpOlxyXG4gICAgICAgICAgbGV0IEVtYWlsID0gbmV3IFRleHRCb3hPcHRpb25zKCk7XHJcbiAgICAgICAgICBFbWFpbC5uYW1lID0gJ3EnICsgZWxlbWVudC5pRF9HVUlEO1xyXG4gICAgICAgICAgRW1haWwubGFiZWxWYWx1ZSA9IHRoaXMudXRpbGl0eVNlcnZpY2UuaXNDdXJyZW50TGFuZ3VhZ2VBcmFiaWMoKVxyXG4gICAgICAgICAgICA/IGVsZW1lbnQudGV4dC5hcmFiaWMgKyBgLiR7ZWxlbWVudC5xdWVzdGlvblR5cGVJdGVtSUR9YFxyXG4gICAgICAgICAgICA6IGVsZW1lbnQudGV4dC5lbmdsaXNoICsgYC4ke2VsZW1lbnQucXVlc3Rpb25UeXBlSXRlbUlEfWA7XHJcbiAgICAgICAgICBFbWFpbC5oaWRlTGFiZWwgPSBmYWxzZTtcclxuICAgICAgICAgIEVtYWlsLmxhYmVsRXh0cmFDbGFzc2VzID0gdGhpcy5sYWJlbENsYXNzO1xyXG4gICAgICAgICAgRW1haWwuaXNSZXF1aXJlZCA9IGVsZW1lbnQuaXNSZWxhdGVkVG9TdXJ2ZXlRdWVzdGlvblxyXG4gICAgICAgICAgICA/IGZhbHNlXHJcbiAgICAgICAgICAgIDogZWxlbWVudC5vcHRpb25zLmlzUmVxdWlyZWQ7XHJcbiAgICAgICAgICBFbWFpbC5pc1JlYWRvbmx5ID0gZWxlbWVudC5pc1JlbGF0ZWRUb1N1cnZleVF1ZXN0aW9uO1xyXG4gICAgICAgICAgRW1haWwudmlld1R5cGUgPSBDb250cm9sTGF5b3V0LlZlcnRpY2FsO1xyXG4gICAgICAgICAgRW1haWwuaXNEaXNhYmxlZCA9IHRoaXMub3B0aW9ucy5SZWFkb25seTtcclxuICAgICAgICAgIEVtYWlsLmxhYmVsRGVzY3JpcHRpb24gPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmlzQ3VycmVudExhbmd1YWdlQXJhYmljKClcclxuICAgICAgICAgICAgPyBlbGVtZW50Lm9wdGlvbnMuZGVzY3JpcHRpb24uYXJhYmljXHJcbiAgICAgICAgICAgIDogZWxlbWVudC5vcHRpb25zLmRlc2NyaXB0aW9uLmVuZ2xpc2g7XHJcbiAgICAgICAgICBFbWFpbC50eXBlID0gSW5wdXRUeXBlLkVtYWlsO1xyXG4gICAgICAgICAgaWYgKGVsZW1lbnQudmFsdWUudGV4dCkgRW1haWwudmFsdWUgPSBlbGVtZW50LnZhbHVlLnRleHQ7XHJcbiAgICAgICAgICBpZiAoZWxlbWVudC5pc1JlbGF0ZWRUb1N1cnZleVF1ZXN0aW9uKSB0aGlzLmNoZWNrTGlzdC5wdXNoKEVtYWlsKTtcclxuICAgICAgICAgIHRoaXMucmVuZGVyQ29tcG9uZW50U2VydmljZS5yZW5kZXJEeW5hbWljQ29tcG9uZW50PFN1cnZleUZvcm1JdGVtQ29tcG9uZW50PihcclxuICAgICAgICAgICAgdmlld0NvbnRhaW5lclJlZixcclxuICAgICAgICAgICAgU3VydmV5Rm9ybUl0ZW1Db21wb25lbnQsXHJcbiAgICAgICAgICAgIHRoaXMuZmlsZWRHcm91cCxcclxuICAgICAgICAgICAgRW1haWwsXHJcbiAgICAgICAgICAgIGVsZW1lbnQub3B0aW9ucy5zaXplXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBTdXJ2ZXlPcHRpb25UeXBlLk51bWJlci50b0xvY2FsZUxvd2VyQ2FzZSgpOlxyXG4gICAgICAgICAgbGV0IE51bWJlciA9IG5ldyBUZXh0Qm94T3B0aW9ucygpO1xyXG4gICAgICAgICAgTnVtYmVyLm5hbWUgPSAncScgKyBlbGVtZW50LmlEX0dVSUQ7XHJcbiAgICAgICAgICBOdW1iZXIuaGlkZUxhYmVsID0gZmFsc2U7XHJcbiAgICAgICAgICBOdW1iZXIubGFiZWxFeHRyYUNsYXNzZXMgPSB0aGlzLmxhYmVsQ2xhc3M7XHJcbiAgICAgICAgICBOdW1iZXIubGFiZWxWYWx1ZSA9IHRoaXMudXRpbGl0eVNlcnZpY2UuaXNDdXJyZW50TGFuZ3VhZ2VBcmFiaWMoKVxyXG4gICAgICAgICAgICA/IGVsZW1lbnQudGV4dC5hcmFiaWMgKyBgLiR7ZWxlbWVudC5xdWVzdGlvblR5cGVJdGVtSUR9YFxyXG4gICAgICAgICAgICA6IGVsZW1lbnQudGV4dC5lbmdsaXNoICsgYC4ke2VsZW1lbnQucXVlc3Rpb25UeXBlSXRlbUlEfWA7XHJcbiAgICAgICAgICBOdW1iZXIuaXNSZXF1aXJlZCA9IGVsZW1lbnQuaXNSZWxhdGVkVG9TdXJ2ZXlRdWVzdGlvblxyXG4gICAgICAgICAgICA/IGZhbHNlXHJcbiAgICAgICAgICAgIDogZWxlbWVudC5vcHRpb25zLmlzUmVxdWlyZWQ7XHJcbiAgICAgICAgICBOdW1iZXIuaXNSZWFkb25seSA9IGVsZW1lbnQuaXNSZWxhdGVkVG9TdXJ2ZXlRdWVzdGlvbjtcclxuICAgICAgICAgIE51bWJlci52aWV3VHlwZSA9IENvbnRyb2xMYXlvdXQuVmVydGljYWw7XHJcbiAgICAgICAgICBOdW1iZXIuaXNEaXNhYmxlZCA9IHRoaXMub3B0aW9ucy5SZWFkb25seTtcclxuICAgICAgICAgIE51bWJlci5sYWJlbERlc2NyaXB0aW9uID1cclxuICAgICAgICAgICAgdGhpcy51dGlsaXR5U2VydmljZS5pc0N1cnJlbnRMYW5ndWFnZUFyYWJpYygpXHJcbiAgICAgICAgICAgICAgPyBlbGVtZW50Lm9wdGlvbnMuZGVzY3JpcHRpb24uYXJhYmljXHJcbiAgICAgICAgICAgICAgOiBlbGVtZW50Lm9wdGlvbnMuZGVzY3JpcHRpb24uZW5nbGlzaDtcclxuICAgICAgICAgIE51bWJlci50eXBlID0gSW5wdXRUeXBlLk51bWJlcjtcclxuICAgICAgICAgIGxldCByYW5nZU51bWJlciA9IG5ldyBSYW5nZU51bWJlcigpO1xyXG4gICAgICAgICAgcmFuZ2VOdW1iZXIudG8gPSBlbGVtZW50Lm9wdGlvbnMubWF4TGVuZ3RoO1xyXG4gICAgICAgICAgcmFuZ2VOdW1iZXIuZnJvbSA9IGVsZW1lbnQub3B0aW9ucy5taW5MZW5ndGg7XHJcbiAgICAgICAgICBOdW1iZXIubnVtYmVyUmFuZ2UgPSByYW5nZU51bWJlcjtcclxuICAgICAgICAgIGlmIChlbGVtZW50LnZhbHVlLnRleHQpIE51bWJlci52YWx1ZSA9IGVsZW1lbnQudmFsdWUudGV4dDtcclxuICAgICAgICAgIGlmIChlbGVtZW50LmlzUmVsYXRlZFRvU3VydmV5UXVlc3Rpb24pIHRoaXMuY2hlY2tMaXN0LnB1c2goTnVtYmVyKTtcclxuICAgICAgICAgIHRoaXMucmVuZGVyQ29tcG9uZW50U2VydmljZS5yZW5kZXJEeW5hbWljQ29tcG9uZW50PFN1cnZleUZvcm1JdGVtQ29tcG9uZW50PihcclxuICAgICAgICAgICAgdmlld0NvbnRhaW5lclJlZixcclxuICAgICAgICAgICAgU3VydmV5Rm9ybUl0ZW1Db21wb25lbnQsXHJcbiAgICAgICAgICAgIHRoaXMuZmlsZWRHcm91cCxcclxuICAgICAgICAgICAgTnVtYmVyLFxyXG4gICAgICAgICAgICBlbGVtZW50Lm9wdGlvbnMuc2l6ZVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIC8vL0RhdGVUaW1lXHJcbiAgICAgICAgY2FzZSBTdXJ2ZXlPcHRpb25UeXBlLkRhdGUudG9Mb2NhbGVMb3dlckNhc2UoKTpcclxuICAgICAgICAgIGxldCBEYXRlID0gbmV3IERhdGVQaWNrZXJPcHRpb25zKCk7XHJcbiAgICAgICAgICBEYXRlLm5hbWUgPSAncScgKyBlbGVtZW50LmlEX0dVSUQ7XHJcbiAgICAgICAgICBEYXRlLmhpZGVMYWJlbCA9IGZhbHNlO1xyXG4gICAgICAgICAgRGF0ZS5sYWJlbEV4dHJhQ2xhc3NlcyA9IHRoaXMubGFiZWxDbGFzcztcclxuICAgICAgICAgIERhdGUubGFiZWxWYWx1ZSA9IHRoaXMudXRpbGl0eVNlcnZpY2UuaXNDdXJyZW50TGFuZ3VhZ2VBcmFiaWMoKVxyXG4gICAgICAgICAgICA/IGVsZW1lbnQudGV4dC5hcmFiaWMgKyBgLiR7ZWxlbWVudC5xdWVzdGlvblR5cGVJdGVtSUR9YFxyXG4gICAgICAgICAgICA6IGVsZW1lbnQudGV4dC5lbmdsaXNoICsgYC4ke2VsZW1lbnQucXVlc3Rpb25UeXBlSXRlbUlEfWA7XHJcbiAgICAgICAgICBEYXRlLmlzUmVxdWlyZWQgPSBlbGVtZW50LmlzUmVsYXRlZFRvU3VydmV5UXVlc3Rpb25cclxuICAgICAgICAgICAgPyBmYWxzZVxyXG4gICAgICAgICAgICA6IGVsZW1lbnQub3B0aW9ucy5pc1JlcXVpcmVkO1xyXG4gICAgICAgICAgRGF0ZS5pc1JlYWRvbmx5ID0gZWxlbWVudC5pc1JlbGF0ZWRUb1N1cnZleVF1ZXN0aW9uO1xyXG4gICAgICAgICAgRGF0ZS52aWV3VHlwZSA9IENvbnRyb2xMYXlvdXQuVmVydGljYWw7XHJcbiAgICAgICAgICBEYXRlLmlzRGlzYWJsZWQgPSB0aGlzLm9wdGlvbnMuUmVhZG9ubHk7XHJcbiAgICAgICAgICBEYXRlLmxhYmVsRGVzY3JpcHRpb24gPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmlzQ3VycmVudExhbmd1YWdlQXJhYmljKClcclxuICAgICAgICAgICAgPyBlbGVtZW50Lm9wdGlvbnMuZGVzY3JpcHRpb24uYXJhYmljXHJcbiAgICAgICAgICAgIDogZWxlbWVudC5vcHRpb25zLmRlc2NyaXB0aW9uLmVuZ2xpc2g7XHJcbiAgICAgICAgICBEYXRlLnBpY2tlclR5cGUgPSBQaWNrZXJUeXBlLkNhbGVuZGFyO1xyXG4gICAgICAgICAgRGF0ZS5zZWxlY3RNb2RlID0gU2VsZWN0TW9kZS5TaW5nbGU7XHJcbiAgICAgICAgICBEYXRlLnN0YXJ0VmlldyA9IFN0YXJ0Vmlldy5Nb250aDtcclxuICAgICAgICAgIGlmIChlbGVtZW50LnZhbHVlLmRhdGVUaW1lKSBEYXRlLnZhbHVlID0gZWxlbWVudC52YWx1ZS5kYXRlVGltZTtcclxuICAgICAgICAgIGlmIChlbGVtZW50LmlzUmVsYXRlZFRvU3VydmV5UXVlc3Rpb24pIHRoaXMuY2hlY2tMaXN0LnB1c2goRGF0ZSk7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlckNvbXBvbmVudFNlcnZpY2UucmVuZGVyRHluYW1pY0NvbXBvbmVudDxTdXJ2ZXlGb3JtSXRlbUNvbXBvbmVudD4oXHJcbiAgICAgICAgICAgIHZpZXdDb250YWluZXJSZWYsXHJcbiAgICAgICAgICAgIFN1cnZleUZvcm1JdGVtQ29tcG9uZW50LFxyXG4gICAgICAgICAgICB0aGlzLmZpbGVkR3JvdXAsXHJcbiAgICAgICAgICAgIERhdGUsXHJcbiAgICAgICAgICAgIGVsZW1lbnQub3B0aW9ucy5zaXplXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBTdXJ2ZXlPcHRpb25UeXBlLkRhdGVUaW1lLnRvTG9jYWxlTG93ZXJDYXNlKCk6XHJcbiAgICAgICAgICBsZXQgRGF0ZVRpbWUgPSBuZXcgRGF0ZVBpY2tlck9wdGlvbnMoKTtcclxuICAgICAgICAgIERhdGVUaW1lLm5hbWUgPSAncScgKyBlbGVtZW50LmlEX0dVSUQ7XHJcbiAgICAgICAgICBEYXRlVGltZS5oaWRlTGFiZWwgPSBmYWxzZTtcclxuICAgICAgICAgIERhdGVUaW1lLmxhYmVsRXh0cmFDbGFzc2VzID0gdGhpcy5sYWJlbENsYXNzO1xyXG4gICAgICAgICAgRGF0ZVRpbWUubGFiZWxWYWx1ZSA9IHRoaXMudXRpbGl0eVNlcnZpY2UuaXNDdXJyZW50TGFuZ3VhZ2VBcmFiaWMoKVxyXG4gICAgICAgICAgICA/IGVsZW1lbnQudGV4dC5hcmFiaWMgKyBgLiR7ZWxlbWVudC5xdWVzdGlvblR5cGVJdGVtSUR9YFxyXG4gICAgICAgICAgICA6IGVsZW1lbnQudGV4dC5lbmdsaXNoICsgYC4ke2VsZW1lbnQucXVlc3Rpb25UeXBlSXRlbUlEfWA7XHJcbiAgICAgICAgICBEYXRlVGltZS5pc1JlcXVpcmVkID0gZWxlbWVudC5pc1JlbGF0ZWRUb1N1cnZleVF1ZXN0aW9uXHJcbiAgICAgICAgICAgID8gZmFsc2VcclxuICAgICAgICAgICAgOiBlbGVtZW50Lm9wdGlvbnMuaXNSZXF1aXJlZDtcclxuICAgICAgICAgIERhdGVUaW1lLmlzUmVhZG9ubHkgPSBlbGVtZW50LmlzUmVsYXRlZFRvU3VydmV5UXVlc3Rpb247XHJcbiAgICAgICAgICBEYXRlVGltZS52aWV3VHlwZSA9IENvbnRyb2xMYXlvdXQuVmVydGljYWw7XHJcbiAgICAgICAgICBEYXRlVGltZS5pc0Rpc2FibGVkID0gdGhpcy5vcHRpb25zLlJlYWRvbmx5O1xyXG4gICAgICAgICAgRGF0ZVRpbWUubGFiZWxEZXNjcmlwdGlvbiA9XHJcbiAgICAgICAgICAgIHRoaXMudXRpbGl0eVNlcnZpY2UuaXNDdXJyZW50TGFuZ3VhZ2VBcmFiaWMoKVxyXG4gICAgICAgICAgICAgID8gZWxlbWVudC5vcHRpb25zLmRlc2NyaXB0aW9uLmFyYWJpY1xyXG4gICAgICAgICAgICAgIDogZWxlbWVudC5vcHRpb25zLmRlc2NyaXB0aW9uLmVuZ2xpc2g7XHJcbiAgICAgICAgICBEYXRlVGltZS5waWNrZXJUeXBlID0gUGlja2VyVHlwZS5Cb3RoO1xyXG4gICAgICAgICAgRGF0ZVRpbWUuc2VsZWN0TW9kZSA9IFNlbGVjdE1vZGUuU2luZ2xlO1xyXG4gICAgICAgICAgRGF0ZVRpbWUuc3RhcnRWaWV3ID0gU3RhcnRWaWV3Lk1vbnRoO1xyXG4gICAgICAgICAgaWYgKGVsZW1lbnQudmFsdWUuZGF0ZVRpbWUpIERhdGVUaW1lLnZhbHVlID0gZWxlbWVudC52YWx1ZS5kYXRlVGltZTtcclxuICAgICAgICAgIGlmIChlbGVtZW50LmlzUmVsYXRlZFRvU3VydmV5UXVlc3Rpb24pIHRoaXMuY2hlY2tMaXN0LnB1c2goRGF0ZVRpbWUpO1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJDb21wb25lbnRTZXJ2aWNlLnJlbmRlckR5bmFtaWNDb21wb25lbnQ8U3VydmV5Rm9ybUl0ZW1Db21wb25lbnQ+KFxyXG4gICAgICAgICAgICB2aWV3Q29udGFpbmVyUmVmLFxyXG4gICAgICAgICAgICBTdXJ2ZXlGb3JtSXRlbUNvbXBvbmVudCxcclxuICAgICAgICAgICAgdGhpcy5maWxlZEdyb3VwLFxyXG4gICAgICAgICAgICBEYXRlVGltZSxcclxuICAgICAgICAgICAgZWxlbWVudC5vcHRpb25zLnNpemVcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICAvL0Ryb3Bkb3duXHJcbiAgICAgICAgY2FzZSBTdXJ2ZXlPcHRpb25UeXBlLlNpbmdsZVNlbGVjdC50b0xvY2FsZUxvd2VyQ2FzZSgpOlxyXG4gICAgICAgICAgbGV0IFNpbmdsZVNlbGVjdCA9IG5ldyBEcm9wZG93bk9wdGlvbnMoKTtcclxuICAgICAgICAgIFNpbmdsZVNlbGVjdC5uYW1lID0gJ3EnICsgZWxlbWVudC5pRF9HVUlEO1xyXG4gICAgICAgICAgU2luZ2xlU2VsZWN0LmhpZGVMYWJlbCA9IGZhbHNlO1xyXG4gICAgICAgICAgU2luZ2xlU2VsZWN0LmxhYmVsRXh0cmFDbGFzc2VzID0gdGhpcy5sYWJlbENsYXNzO1xyXG4gICAgICAgICAgU2luZ2xlU2VsZWN0LmxhYmVsVmFsdWUgPVxyXG4gICAgICAgICAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLmlzQ3VycmVudExhbmd1YWdlQXJhYmljKClcclxuICAgICAgICAgICAgICA/IGVsZW1lbnQudGV4dC5hcmFiaWMgKyBgLiR7ZWxlbWVudC5xdWVzdGlvblR5cGVJdGVtSUR9YFxyXG4gICAgICAgICAgICAgIDogZWxlbWVudC50ZXh0LmVuZ2xpc2ggKyBgLiR7ZWxlbWVudC5xdWVzdGlvblR5cGVJdGVtSUR9YDtcclxuICAgICAgICAgIFNpbmdsZVNlbGVjdC5pc1JlcXVpcmVkID0gZWxlbWVudC5pc1JlbGF0ZWRUb1N1cnZleVF1ZXN0aW9uXHJcbiAgICAgICAgICAgID8gZmFsc2VcclxuICAgICAgICAgICAgOiBlbGVtZW50Lm9wdGlvbnMuaXNSZXF1aXJlZDtcclxuICAgICAgICAgIFNpbmdsZVNlbGVjdC5pc1JlYWRvbmx5ID0gZWxlbWVudC5pc1JlbGF0ZWRUb1N1cnZleVF1ZXN0aW9uO1xyXG4gICAgICAgICAgU2luZ2xlU2VsZWN0LnBsYWNlaG9sZGVyID1cclxuICAgICAgICAgICAgdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKCdEZWZhdWx0T3B0aW9uVGV4dCcpO1xyXG4gICAgICAgICAgU2luZ2xlU2VsZWN0LnZpZXdUeXBlID0gQ29udHJvbExheW91dC5WZXJ0aWNhbDtcclxuICAgICAgICAgIFNpbmdsZVNlbGVjdC5pc0Rpc2FibGVkID0gdGhpcy5vcHRpb25zLlJlYWRvbmx5O1xyXG4gICAgICAgICAgU2luZ2xlU2VsZWN0LmxhYmVsRGVzY3JpcHRpb24gPVxyXG4gICAgICAgICAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLmlzQ3VycmVudExhbmd1YWdlQXJhYmljKClcclxuICAgICAgICAgICAgICA/IGVsZW1lbnQub3B0aW9ucy5kZXNjcmlwdGlvbi5hcmFiaWNcclxuICAgICAgICAgICAgICA6IGVsZW1lbnQub3B0aW9ucy5kZXNjcmlwdGlvbi5lbmdsaXNoO1xyXG4gICAgICAgICAgbGV0IGRhdGFTb3VyY2U6IGFueVtdID0gW107XHJcbiAgICAgICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgZWxlbWVudC5xdWVzdGlvbk9wdGlvbnMubGVuZ3RoOyBpbmRleCsrKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IG9wdGlvbiA9IGVsZW1lbnQucXVlc3Rpb25PcHRpb25zW2luZGV4XTtcclxuICAgICAgICAgICAgbGV0IGl0ZW06IGFueSA9IHt9O1xyXG4gICAgICAgICAgICBpdGVtLmtleSA9IG9wdGlvbi5pRF9HVUlEO1xyXG4gICAgICAgICAgICBpdGVtLnZhbHVlID0gdGhpcy51dGlsaXR5U2VydmljZS5pc0N1cnJlbnRMYW5ndWFnZUFyYWJpYygpXHJcbiAgICAgICAgICAgICAgPyBvcHRpb24ubmFtZS5hcmFiaWNcclxuICAgICAgICAgICAgICA6IG9wdGlvbi5uYW1lLmVuZ2xpc2g7XHJcbiAgICAgICAgICAgIGRhdGFTb3VyY2UucHVzaChpdGVtKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIFNpbmdsZVNlbGVjdC5kYXRhU291cmNlID0gZGF0YVNvdXJjZTtcclxuICAgICAgICAgIFNpbmdsZVNlbGVjdC5zaW5nbGVTZWxlY3Rpb24gPSB0cnVlO1xyXG4gICAgICAgICAgU2luZ2xlU2VsZWN0LnNob3dDaGVja2JveCA9IGZhbHNlO1xyXG4gICAgICAgICAgU2luZ2xlU2VsZWN0LmFsbG93U2VhcmNoRmlsdGVyID0gdHJ1ZTtcclxuICAgICAgICAgIGlmIChlbGVtZW50LnZhbHVlLnNlbGVjdGVkSURzKVxyXG4gICAgICAgICAgICBTaW5nbGVTZWxlY3Quc2VsZWN0ZWRJdGVtcyA9IGVsZW1lbnQudmFsdWUuc2VsZWN0ZWRJRHNbMF07XHJcbiAgICAgICAgICBpZiAoZWxlbWVudC5pc1JlbGF0ZWRUb1N1cnZleVF1ZXN0aW9uKVxyXG4gICAgICAgICAgICB0aGlzLmNoZWNrTGlzdC5wdXNoKFNpbmdsZVNlbGVjdCk7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlckNvbXBvbmVudFNlcnZpY2UucmVuZGVyRHluYW1pY0NvbXBvbmVudDxTdXJ2ZXlGb3JtSXRlbUNvbXBvbmVudD4oXHJcbiAgICAgICAgICAgIHZpZXdDb250YWluZXJSZWYsXHJcbiAgICAgICAgICAgIFN1cnZleUZvcm1JdGVtQ29tcG9uZW50LFxyXG4gICAgICAgICAgICB0aGlzLmZpbGVkR3JvdXAsXHJcbiAgICAgICAgICAgIFNpbmdsZVNlbGVjdCxcclxuICAgICAgICAgICAgZWxlbWVudC5vcHRpb25zLnNpemVcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIFN1cnZleU9wdGlvblR5cGUuUmFkaW9CdXR0b24udG9Mb2NhbGVMb3dlckNhc2UoKTpcclxuICAgICAgICAgIGxldCByYWRpb0J1dHRvbiA9IG5ldyBSYWRpb0J1dHRvbk9wdGlvbnMoKTtcclxuICAgICAgICAgIHJhZGlvQnV0dG9uLm5hbWUgPSAncScgKyBlbGVtZW50LmlEX0dVSUQ7XHJcbiAgICAgICAgICByYWRpb0J1dHRvbi5oaWRlTGFiZWwgPSBmYWxzZTtcclxuICAgICAgICAgIHJhZGlvQnV0dG9uLmxhYmVsRXh0cmFDbGFzc2VzID0gdGhpcy5sYWJlbENsYXNzO1xyXG4gICAgICAgICAgcmFkaW9CdXR0b24ubGFiZWxWYWx1ZSA9IHRoaXMudXRpbGl0eVNlcnZpY2UuaXNDdXJyZW50TGFuZ3VhZ2VBcmFiaWMoKVxyXG4gICAgICAgICAgICA/IGVsZW1lbnQudGV4dC5hcmFiaWMgKyBgLiR7ZWxlbWVudC5xdWVzdGlvblR5cGVJdGVtSUR9YFxyXG4gICAgICAgICAgICA6IGVsZW1lbnQudGV4dC5lbmdsaXNoICsgYC4ke2VsZW1lbnQucXVlc3Rpb25UeXBlSXRlbUlEfWA7XHJcbiAgICAgICAgICByYWRpb0J1dHRvbi5pc1JlcXVpcmVkID0gZWxlbWVudC5pc1JlbGF0ZWRUb1N1cnZleVF1ZXN0aW9uXHJcbiAgICAgICAgICAgID8gZmFsc2VcclxuICAgICAgICAgICAgOiBlbGVtZW50Lm9wdGlvbnMuaXNSZXF1aXJlZDtcclxuICAgICAgICAgIHJhZGlvQnV0dG9uLmlzUmVhZG9ubHkgPSBlbGVtZW50LmlzUmVsYXRlZFRvU3VydmV5UXVlc3Rpb247XHJcbiAgICAgICAgICByYWRpb0J1dHRvbi52aWV3VHlwZSA9IENvbnRyb2xMYXlvdXQuVmVydGljYWw7XHJcbiAgICAgICAgICByYWRpb0J1dHRvbi5pc0Rpc2FibGVkID0gdGhpcy5vcHRpb25zLlJlYWRvbmx5O1xyXG4gICAgICAgICAgcmFkaW9CdXR0b24ubGFiZWxEZXNjcmlwdGlvbiA9XHJcbiAgICAgICAgICAgIHRoaXMudXRpbGl0eVNlcnZpY2UuaXNDdXJyZW50TGFuZ3VhZ2VBcmFiaWMoKVxyXG4gICAgICAgICAgICAgID8gZWxlbWVudC5vcHRpb25zLmRlc2NyaXB0aW9uLmFyYWJpY1xyXG4gICAgICAgICAgICAgIDogZWxlbWVudC5vcHRpb25zLmRlc2NyaXB0aW9uLmVuZ2xpc2g7XHJcbiAgICAgICAgICBsZXQgZGF0YVNvdXJjZVJhZGlvOiBhbnlbXSA9IFtdO1xyXG4gICAgICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGVsZW1lbnQucXVlc3Rpb25PcHRpb25zLmxlbmd0aDsgaW5kZXgrKykge1xyXG4gICAgICAgICAgICBjb25zdCBvcHRpb24gPSBlbGVtZW50LnF1ZXN0aW9uT3B0aW9uc1tpbmRleF07XHJcbiAgICAgICAgICAgIGxldCBpdGVtOiBhbnkgPSB7fTtcclxuICAgICAgICAgICAgaXRlbS5WYWx1ZSA9IG9wdGlvbi5pRF9HVUlEO1xyXG4gICAgICAgICAgICBpdGVtLlRleHQgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmlzQ3VycmVudExhbmd1YWdlQXJhYmljKClcclxuICAgICAgICAgICAgICA/IG9wdGlvbi5uYW1lLmFyYWJpY1xyXG4gICAgICAgICAgICAgIDogb3B0aW9uLm5hbWUuZW5nbGlzaDtcclxuICAgICAgICAgICAgZGF0YVNvdXJjZVJhZGlvLnB1c2goaXRlbSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICByYWRpb0J1dHRvbi5pdGVtcyA9IGRhdGFTb3VyY2VSYWRpbztcclxuICAgICAgICAgIGlmIChlbGVtZW50LnZhbHVlLnNlbGVjdGVkSURzKVxyXG4gICAgICAgICAgICByYWRpb0J1dHRvbi52YWx1ZSA9IGVsZW1lbnQudmFsdWUuc2VsZWN0ZWRJRHNbMF07XHJcbiAgICAgICAgICBpZiAoZWxlbWVudC5pc1JlbGF0ZWRUb1N1cnZleVF1ZXN0aW9uKVxyXG4gICAgICAgICAgICB0aGlzLmNoZWNrTGlzdC5wdXNoKHJhZGlvQnV0dG9uKTtcclxuICAgICAgICAgIHRoaXMucmVuZGVyQ29tcG9uZW50U2VydmljZS5yZW5kZXJEeW5hbWljQ29tcG9uZW50PFN1cnZleUZvcm1JdGVtQ29tcG9uZW50PihcclxuICAgICAgICAgICAgdmlld0NvbnRhaW5lclJlZixcclxuICAgICAgICAgICAgU3VydmV5Rm9ybUl0ZW1Db21wb25lbnQsXHJcbiAgICAgICAgICAgIHRoaXMuZmlsZWRHcm91cCxcclxuICAgICAgICAgICAgcmFkaW9CdXR0b24sXHJcbiAgICAgICAgICAgIGVsZW1lbnQub3B0aW9ucy5zaXplXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBTdXJ2ZXlPcHRpb25UeXBlLk11bHRpcGxlU2VsZWN0LnRvTG9jYWxlTG93ZXJDYXNlKCk6XHJcbiAgICAgICAgICBsZXQgTXVsaXBsZVNlbGVjdCA9IG5ldyBEcm9wZG93bk9wdGlvbnMoKTtcclxuICAgICAgICAgIE11bGlwbGVTZWxlY3QubmFtZSA9ICdxJyArIGVsZW1lbnQuaURfR1VJRDtcclxuICAgICAgICAgIE11bGlwbGVTZWxlY3QuaGlkZUxhYmVsID0gZmFsc2U7XHJcbiAgICAgICAgICBNdWxpcGxlU2VsZWN0LmxhYmVsRXh0cmFDbGFzc2VzID0gdGhpcy5sYWJlbENsYXNzO1xyXG4gICAgICAgICAgTXVsaXBsZVNlbGVjdC5sYWJlbFZhbHVlID1cclxuICAgICAgICAgICAgdGhpcy51dGlsaXR5U2VydmljZS5pc0N1cnJlbnRMYW5ndWFnZUFyYWJpYygpXHJcbiAgICAgICAgICAgICAgPyBlbGVtZW50LnRleHQuYXJhYmljICsgYC4ke2VsZW1lbnQucXVlc3Rpb25UeXBlSXRlbUlEfWBcclxuICAgICAgICAgICAgICA6IGVsZW1lbnQudGV4dC5lbmdsaXNoICsgYC4ke2VsZW1lbnQucXVlc3Rpb25UeXBlSXRlbUlEfWA7XHJcbiAgICAgICAgICBNdWxpcGxlU2VsZWN0LmlzUmVxdWlyZWQgPSBlbGVtZW50LmlzUmVsYXRlZFRvU3VydmV5UXVlc3Rpb25cclxuICAgICAgICAgICAgPyBmYWxzZVxyXG4gICAgICAgICAgICA6IGVsZW1lbnQub3B0aW9ucy5pc1JlcXVpcmVkO1xyXG4gICAgICAgICAgTXVsaXBsZVNlbGVjdC5pc1JlYWRvbmx5ID0gZWxlbWVudC5pc1JlbGF0ZWRUb1N1cnZleVF1ZXN0aW9uO1xyXG4gICAgICAgICAgTXVsaXBsZVNlbGVjdC5wbGFjZWhvbGRlciA9XHJcbiAgICAgICAgICAgIHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZSgnRGVmYXVsdE9wdGlvblRleHQnKTtcclxuICAgICAgICAgIE11bGlwbGVTZWxlY3Qudmlld1R5cGUgPSBDb250cm9sTGF5b3V0LlZlcnRpY2FsO1xyXG4gICAgICAgICAgTXVsaXBsZVNlbGVjdC5pc0Rpc2FibGVkID0gdGhpcy5vcHRpb25zLlJlYWRvbmx5O1xyXG4gICAgICAgICAgTXVsaXBsZVNlbGVjdC5sYWJlbERlc2NyaXB0aW9uID1cclxuICAgICAgICAgICAgdGhpcy51dGlsaXR5U2VydmljZS5pc0N1cnJlbnRMYW5ndWFnZUFyYWJpYygpXHJcbiAgICAgICAgICAgICAgPyBlbGVtZW50Lm9wdGlvbnMuZGVzY3JpcHRpb24uYXJhYmljXHJcbiAgICAgICAgICAgICAgOiBlbGVtZW50Lm9wdGlvbnMuZGVzY3JpcHRpb24uZW5nbGlzaDtcclxuICAgICAgICAgIGxldCBtdWx0aXBsZVNlbGVjdERhdGFTb3VyY2U6IERyb3Bkb3duTGlzdEl0ZW1bXSA9IFtdO1xyXG4gICAgICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGVsZW1lbnQucXVlc3Rpb25PcHRpb25zLmxlbmd0aDsgaW5kZXgrKykge1xyXG4gICAgICAgICAgICBjb25zdCBvcHRpb24gPSBlbGVtZW50LnF1ZXN0aW9uT3B0aW9uc1tpbmRleF07XHJcbiAgICAgICAgICAgIGxldCBpdGVtOiBhbnkgPSB7fTtcclxuICAgICAgICAgICAgaXRlbS5rZXkgPSBvcHRpb24uaURfR1VJRDtcclxuICAgICAgICAgICAgaXRlbS52YWx1ZSA9IHRoaXMudXRpbGl0eVNlcnZpY2UuaXNDdXJyZW50TGFuZ3VhZ2VBcmFiaWMoKVxyXG4gICAgICAgICAgICAgID8gb3B0aW9uLm5hbWUuYXJhYmljXHJcbiAgICAgICAgICAgICAgOiBvcHRpb24ubmFtZS5lbmdsaXNoO1xyXG4gICAgICAgICAgICBtdWx0aXBsZVNlbGVjdERhdGFTb3VyY2UucHVzaChpdGVtKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIE11bGlwbGVTZWxlY3QuZGF0YVNvdXJjZSA9IG11bHRpcGxlU2VsZWN0RGF0YVNvdXJjZTtcclxuICAgICAgICAgIE11bGlwbGVTZWxlY3Quc2luZ2xlU2VsZWN0aW9uID0gZmFsc2U7XHJcbiAgICAgICAgICBNdWxpcGxlU2VsZWN0LnNob3dDaGVja2JveCA9IGZhbHNlO1xyXG4gICAgICAgICAgTXVsaXBsZVNlbGVjdC5hbGxvd1NlYXJjaEZpbHRlciA9IHRydWU7XHJcbiAgICAgICAgICBpZiAoZWxlbWVudC52YWx1ZS5zZWxlY3RlZElEcylcclxuICAgICAgICAgICAgTXVsaXBsZVNlbGVjdC5zZWxlY3RlZEl0ZW1zID0gZWxlbWVudC52YWx1ZS5zZWxlY3RlZElEcztcclxuICAgICAgICAgIGlmIChlbGVtZW50LmlzUmVsYXRlZFRvU3VydmV5UXVlc3Rpb24pXHJcbiAgICAgICAgICAgIHRoaXMuY2hlY2tMaXN0LnB1c2goTXVsaXBsZVNlbGVjdCk7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlckNvbXBvbmVudFNlcnZpY2UucmVuZGVyRHluYW1pY0NvbXBvbmVudDxTdXJ2ZXlGb3JtSXRlbUNvbXBvbmVudD4oXHJcbiAgICAgICAgICAgIHZpZXdDb250YWluZXJSZWYsXHJcbiAgICAgICAgICAgIFN1cnZleUZvcm1JdGVtQ29tcG9uZW50LFxyXG4gICAgICAgICAgICB0aGlzLmZpbGVkR3JvdXAsXHJcbiAgICAgICAgICAgIE11bGlwbGVTZWxlY3QsXHJcbiAgICAgICAgICAgIGVsZW1lbnQub3B0aW9ucy5zaXplXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBTdXJ2ZXlPcHRpb25UeXBlLkNvdW50cnkudG9Mb2NhbGVMb3dlckNhc2UoKTpcclxuICAgICAgICAgIGxldCBDb3VudHJ5ID0gbmV3IERyb3Bkb3duT3B0aW9ucygpO1xyXG4gICAgICAgICAgQ291bnRyeS5uYW1lID0gJ3EnICsgZWxlbWVudC5pRF9HVUlEO1xyXG4gICAgICAgICAgQ291bnRyeS5oaWRlTGFiZWwgPSBmYWxzZTtcclxuICAgICAgICAgIENvdW50cnkubGFiZWxFeHRyYUNsYXNzZXMgPSB0aGlzLmxhYmVsQ2xhc3M7XHJcbiAgICAgICAgICBDb3VudHJ5LmxhYmVsVmFsdWUgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmlzQ3VycmVudExhbmd1YWdlQXJhYmljKClcclxuICAgICAgICAgICAgPyBlbGVtZW50LnRleHQuYXJhYmljICsgYC4ke2VsZW1lbnQucXVlc3Rpb25UeXBlSXRlbUlEfWBcclxuICAgICAgICAgICAgOiBlbGVtZW50LnRleHQuZW5nbGlzaCArIGAuJHtlbGVtZW50LnF1ZXN0aW9uVHlwZUl0ZW1JRH1gO1xyXG4gICAgICAgICAgQ291bnRyeS5pc1JlcXVpcmVkID0gZWxlbWVudC5pc1JlbGF0ZWRUb1N1cnZleVF1ZXN0aW9uXHJcbiAgICAgICAgICAgID8gZmFsc2VcclxuICAgICAgICAgICAgOiBlbGVtZW50Lm9wdGlvbnMuaXNSZXF1aXJlZDtcclxuICAgICAgICAgIENvdW50cnkuaXNSZWFkb25seSA9IGVsZW1lbnQuaXNSZWxhdGVkVG9TdXJ2ZXlRdWVzdGlvbjtcclxuICAgICAgICAgIENvdW50cnkudmlld1R5cGUgPSBDb250cm9sTGF5b3V0LlZlcnRpY2FsO1xyXG4gICAgICAgICAgQ291bnRyeS5pc0Rpc2FibGVkID0gdGhpcy5vcHRpb25zLlJlYWRvbmx5O1xyXG4gICAgICAgICAgQ291bnRyeS5sYWJlbERlc2NyaXB0aW9uID1cclxuICAgICAgICAgICAgdGhpcy51dGlsaXR5U2VydmljZS5pc0N1cnJlbnRMYW5ndWFnZUFyYWJpYygpXHJcbiAgICAgICAgICAgICAgPyBlbGVtZW50Lm9wdGlvbnMuZGVzY3JpcHRpb24uYXJhYmljXHJcbiAgICAgICAgICAgICAgOiBlbGVtZW50Lm9wdGlvbnMuZGVzY3JpcHRpb24uZW5nbGlzaDtcclxuICAgICAgICAgIENvdW50cnkuc2luZ2xlU2VsZWN0aW9uID0gdHJ1ZTtcclxuICAgICAgICAgIENvdW50cnkuc2hvd0NoZWNrYm94ID0gZmFsc2U7XHJcbiAgICAgICAgICBDb3VudHJ5LmFsbG93U2VhcmNoRmlsdGVyID0gdHJ1ZTtcclxuICAgICAgICAgIENvdW50cnkuZGF0YVNvdXJjZSA9IGVsZW1lbnQub3B0aW9ucy5kYXRhU291cmNlO1xyXG4gICAgICAgICAgaWYgKGVsZW1lbnQudmFsdWUuc2VsZWN0ZWRJRHMpXHJcbiAgICAgICAgICAgIENvdW50cnkuc2VsZWN0ZWRJdGVtcyA9IGVsZW1lbnQudmFsdWUuc2VsZWN0ZWRJRHNbMF07XHJcbiAgICAgICAgICBpZiAoZWxlbWVudC5pc1JlbGF0ZWRUb1N1cnZleVF1ZXN0aW9uKSB0aGlzLmNoZWNrTGlzdC5wdXNoKENvdW50cnkpO1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJDb21wb25lbnRTZXJ2aWNlLnJlbmRlckR5bmFtaWNDb21wb25lbnQ8U3VydmV5Rm9ybUl0ZW1Db21wb25lbnQ+KFxyXG4gICAgICAgICAgICB2aWV3Q29udGFpbmVyUmVmLFxyXG4gICAgICAgICAgICBTdXJ2ZXlGb3JtSXRlbUNvbXBvbmVudCxcclxuICAgICAgICAgICAgdGhpcy5maWxlZEdyb3VwLFxyXG4gICAgICAgICAgICBDb3VudHJ5LFxyXG4gICAgICAgICAgICBlbGVtZW50Lm9wdGlvbnMuc2l6ZVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIC8vRmlsZVVwbG9hZFxyXG4gICAgICAgIGNhc2UgU3VydmV5T3B0aW9uVHlwZS5NdWx0aUZpbGUudG9Mb2NhbGVMb3dlckNhc2UoKTpcclxuICAgICAgICAgIGxldCBNdWx0aUZpbGUgPSBuZXcgRmlsZVVwbG9hZE9wdGlvbnMoKTtcclxuICAgICAgICAgIE11bHRpRmlsZS5uYW1lID0gJ3EnICsgZWxlbWVudC5pRF9HVUlEO1xyXG4gICAgICAgICAgTXVsdGlGaWxlLmhpZGVMYWJlbCA9IGZhbHNlO1xyXG4gICAgICAgICAgTXVsdGlGaWxlLmxhYmVsRXh0cmFDbGFzc2VzID0gdGhpcy5sYWJlbENsYXNzO1xyXG4gICAgICAgICAgTXVsdGlGaWxlLmxhYmVsVmFsdWUgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmlzQ3VycmVudExhbmd1YWdlQXJhYmljKClcclxuICAgICAgICAgICAgPyBlbGVtZW50LnRleHQuYXJhYmljICsgYC4ke2VsZW1lbnQucXVlc3Rpb25UeXBlSXRlbUlEfWBcclxuICAgICAgICAgICAgOiBlbGVtZW50LnRleHQuZW5nbGlzaCArIGAuJHtlbGVtZW50LnF1ZXN0aW9uVHlwZUl0ZW1JRH1gO1xyXG4gICAgICAgICAgTXVsdGlGaWxlLmlzUmVxdWlyZWQgPSBlbGVtZW50LmlzUmVsYXRlZFRvU3VydmV5UXVlc3Rpb25cclxuICAgICAgICAgICAgPyBmYWxzZVxyXG4gICAgICAgICAgICA6IGVsZW1lbnQub3B0aW9ucy5pc1JlcXVpcmVkO1xyXG4gICAgICAgICAgTXVsdGlGaWxlLmlzUmVhZG9ubHkgPSBlbGVtZW50LmlzUmVsYXRlZFRvU3VydmV5UXVlc3Rpb247XHJcbiAgICAgICAgICBNdWx0aUZpbGUudmlld1R5cGUgPSBDb250cm9sTGF5b3V0LlZlcnRpY2FsO1xyXG4gICAgICAgICAgTXVsdGlGaWxlLmlzRGlzYWJsZWQgPSB0aGlzLm9wdGlvbnMuUmVhZG9ubHk7XHJcbiAgICAgICAgICBNdWx0aUZpbGUubGFiZWxEZXNjcmlwdGlvbiA9XHJcbiAgICAgICAgICAgIHRoaXMudXRpbGl0eVNlcnZpY2UuaXNDdXJyZW50TGFuZ3VhZ2VBcmFiaWMoKVxyXG4gICAgICAgICAgICAgID8gZWxlbWVudC5vcHRpb25zLmRlc2NyaXB0aW9uLmFyYWJpY1xyXG4gICAgICAgICAgICAgIDogZWxlbWVudC5vcHRpb25zLmRlc2NyaXB0aW9uLmVuZ2xpc2g7XHJcbiAgICAgICAgICBNdWx0aUZpbGUubWF4U2l6ZUZvckFsbEZpbGVzSW5NQiA9IGVsZW1lbnQub3B0aW9ucy5tYXhGaWxlU2l6ZUluTUI7XHJcbiAgICAgICAgICBNdWx0aUZpbGUubWF4Tm9PZkZpbGVzID0gZWxlbWVudC5vcHRpb25zLm1heEZpbGVDb3VudDtcclxuICAgICAgICAgIE11bHRpRmlsZS5pc011bHRpcGxlRmlsZSA9IHRydWU7XHJcbiAgICAgICAgICBsZXQgYWNjZXB0ZWRUeXBlczogRmlsZVR5cGVbXSA9IFtdO1xyXG4gICAgICAgICAgZm9yIChcclxuICAgICAgICAgICAgbGV0IGluZGV4ID0gMDtcclxuICAgICAgICAgICAgaW5kZXggPCBlbGVtZW50Lm9wdGlvbnMuYWxsb3dlZEV4dGVuc2lvbnMubGVuZ3RoO1xyXG4gICAgICAgICAgICBpbmRleCsrXHJcbiAgICAgICAgICApIHtcclxuICAgICAgICAgICAgY29uc3QgZWxlbWVudFZhbHVlID0gZWxlbWVudC5vcHRpb25zLmFsbG93ZWRFeHRlbnNpb25zW2luZGV4XTtcclxuICAgICAgICAgICAgc3dpdGNoIChlbGVtZW50VmFsdWUpIHtcclxuICAgICAgICAgICAgICBjYXNlICcwJzpcclxuICAgICAgICAgICAgICAgIGFjY2VwdGVkVHlwZXMucHVzaChGaWxlVHlwZS5QREYpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgY2FzZSAnMSc6XHJcbiAgICAgICAgICAgICAgICBhY2NlcHRlZFR5cGVzLnB1c2goRmlsZVR5cGUuV29yZCk7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICBjYXNlICcyJzpcclxuICAgICAgICAgICAgICAgIGFjY2VwdGVkVHlwZXMucHVzaChGaWxlVHlwZS5FeGNlbCk7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICBjYXNlICczJzpcclxuICAgICAgICAgICAgICAgIGFjY2VwdGVkVHlwZXMucHVzaChGaWxlVHlwZS5JbWFnZVR5cGVzKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgIGNhc2UgJzE1JzpcclxuICAgICAgICAgICAgICAgIGFjY2VwdGVkVHlwZXMucHVzaChGaWxlVHlwZS5Qb3dlclBvaW50KTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgTXVsdGlGaWxlLmZpbGVVcGxvYWRBY2NlcHRzVHlwZXMgPSBhY2NlcHRlZFR5cGVzO1xyXG4gICAgICAgICAgaWYgKGVsZW1lbnQudmFsdWUuZmlsZUNvcnJlbGF0aW9uRFRPKSB7XHJcbiAgICAgICAgICAgIGxldCBtb2RlbCA9IHRoaXMudG9DYW1lbChlbGVtZW50LnZhbHVlLmZpbGVDb3JyZWxhdGlvbkRUTyk7XHJcbiAgICAgICAgICAgIE11bHRpRmlsZS52YWx1ZSA9IG1vZGVsO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKGVsZW1lbnQuaXNSZWxhdGVkVG9TdXJ2ZXlRdWVzdGlvbikgdGhpcy5jaGVja0xpc3QucHVzaChNdWx0aUZpbGUpO1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJDb21wb25lbnRTZXJ2aWNlLnJlbmRlckR5bmFtaWNDb21wb25lbnQ8U3VydmV5Rm9ybUl0ZW1Db21wb25lbnQ+KFxyXG4gICAgICAgICAgICB2aWV3Q29udGFpbmVyUmVmLFxyXG4gICAgICAgICAgICBTdXJ2ZXlGb3JtSXRlbUNvbXBvbmVudCxcclxuICAgICAgICAgICAgdGhpcy5maWxlZEdyb3VwLFxyXG4gICAgICAgICAgICBNdWx0aUZpbGUsXHJcbiAgICAgICAgICAgIGVsZW1lbnQub3B0aW9ucy5zaXplXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBTdXJ2ZXlPcHRpb25UeXBlLkZpbGUudG9Mb2NhbGVMb3dlckNhc2UoKTpcclxuICAgICAgICAgIGxldCBGaWxlID0gbmV3IEZpbGVVcGxvYWRPcHRpb25zKCk7XHJcbiAgICAgICAgICBGaWxlLm5hbWUgPSAncScgKyBlbGVtZW50LmlEX0dVSUQ7XHJcbiAgICAgICAgICBGaWxlLmhpZGVMYWJlbCA9IGZhbHNlO1xyXG4gICAgICAgICAgRmlsZS5sYWJlbEV4dHJhQ2xhc3NlcyA9IHRoaXMubGFiZWxDbGFzcztcclxuICAgICAgICAgIEZpbGUubGFiZWxWYWx1ZSA9IHRoaXMudXRpbGl0eVNlcnZpY2UuaXNDdXJyZW50TGFuZ3VhZ2VBcmFiaWMoKVxyXG4gICAgICAgICAgICA/IGVsZW1lbnQudGV4dC5hcmFiaWMgKyBgLiR7ZWxlbWVudC5xdWVzdGlvblR5cGVJdGVtSUR9YFxyXG4gICAgICAgICAgICA6IGVsZW1lbnQudGV4dC5lbmdsaXNoICsgYC4ke2VsZW1lbnQucXVlc3Rpb25UeXBlSXRlbUlEfWA7XHJcbiAgICAgICAgICBGaWxlLmlzUmVxdWlyZWQgPSBlbGVtZW50LmlzUmVsYXRlZFRvU3VydmV5UXVlc3Rpb25cclxuICAgICAgICAgICAgPyBmYWxzZVxyXG4gICAgICAgICAgICA6IGVsZW1lbnQub3B0aW9ucy5pc1JlcXVpcmVkO1xyXG4gICAgICAgICAgRmlsZS5pc1JlYWRvbmx5ID0gZWxlbWVudC5pc1JlbGF0ZWRUb1N1cnZleVF1ZXN0aW9uO1xyXG4gICAgICAgICAgRmlsZS52aWV3VHlwZSA9IENvbnRyb2xMYXlvdXQuVmVydGljYWw7XHJcbiAgICAgICAgICBGaWxlLmlzRGlzYWJsZWQgPSB0aGlzLm9wdGlvbnMuUmVhZG9ubHk7XHJcbiAgICAgICAgICBGaWxlLmxhYmVsRGVzY3JpcHRpb24gPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmlzQ3VycmVudExhbmd1YWdlQXJhYmljKClcclxuICAgICAgICAgICAgPyBlbGVtZW50Lm9wdGlvbnMuZGVzY3JpcHRpb24uYXJhYmljXHJcbiAgICAgICAgICAgIDogZWxlbWVudC5vcHRpb25zLmRlc2NyaXB0aW9uLmVuZ2xpc2g7XHJcbiAgICAgICAgICBGaWxlLmZpbGVNYXhTaXplSW5NQiA9IGVsZW1lbnQub3B0aW9ucy5tYXhGaWxlU2l6ZUluTUI7XHJcblxyXG4gICAgICAgICAgbGV0IGFjY2VwdGVkVHlwZXNGaWxlOiBGaWxlVHlwZVtdID0gW107XHJcbiAgICAgICAgICBkZWJ1Z2dlcjtcclxuICAgICAgICAgIGZvciAoXHJcbiAgICAgICAgICAgIGxldCBpbmRleCA9IDA7XHJcbiAgICAgICAgICAgIGluZGV4IDwgZWxlbWVudC5vcHRpb25zLmFsbG93ZWRFeHRlbnNpb25zLmxlbmd0aDtcclxuICAgICAgICAgICAgaW5kZXgrK1xyXG4gICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRWYWx1ZSA9IGVsZW1lbnQub3B0aW9ucy5hbGxvd2VkRXh0ZW5zaW9uc1tpbmRleF07XHJcbiAgICAgICAgICAgIHN3aXRjaCAoZWxlbWVudFZhbHVlKSB7XHJcbiAgICAgICAgICAgICAgY2FzZSAnMCc6XHJcbiAgICAgICAgICAgICAgICBhY2NlcHRlZFR5cGVzRmlsZS5wdXNoKEZpbGVUeXBlLlBERik7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICBjYXNlICcxJzpcclxuICAgICAgICAgICAgICAgIGFjY2VwdGVkVHlwZXNGaWxlLnB1c2goRmlsZVR5cGUuV29yZCk7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICBjYXNlICcyJzpcclxuICAgICAgICAgICAgICAgIGFjY2VwdGVkVHlwZXNGaWxlLnB1c2goRmlsZVR5cGUuRXhjZWwpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgY2FzZSAnMyc6XHJcbiAgICAgICAgICAgICAgICBhY2NlcHRlZFR5cGVzRmlsZS5wdXNoKEZpbGVUeXBlLkltYWdlVHlwZXMpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgY2FzZSAnMTUnOlxyXG4gICAgICAgICAgICAgICAgYWNjZXB0ZWRUeXBlc0ZpbGUucHVzaChGaWxlVHlwZS5Qb3dlclBvaW50KTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKGVsZW1lbnQudmFsdWUuZmlsZURUTykge1xyXG4gICAgICAgICAgICBsZXQgbW9kZWwgPSB0aGlzLnRvQ2FtZWwoZWxlbWVudC52YWx1ZS5maWxlRFRPKSBhcyBGaWxlRFRPO1xyXG4gICAgICAgICAgICBGaWxlLnZhbHVlID0gbW9kZWw7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBGaWxlLmZpbGVVcGxvYWRBY2NlcHRzVHlwZXMgPSBhY2NlcHRlZFR5cGVzRmlsZTtcclxuICAgICAgICAgIGlmIChlbGVtZW50LmlzUmVsYXRlZFRvU3VydmV5UXVlc3Rpb24pIHRoaXMuY2hlY2tMaXN0LnB1c2goRmlsZSk7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlckNvbXBvbmVudFNlcnZpY2UucmVuZGVyRHluYW1pY0NvbXBvbmVudDxTdXJ2ZXlGb3JtSXRlbUNvbXBvbmVudD4oXHJcbiAgICAgICAgICAgIHZpZXdDb250YWluZXJSZWYsXHJcbiAgICAgICAgICAgIFN1cnZleUZvcm1JdGVtQ29tcG9uZW50LFxyXG4gICAgICAgICAgICB0aGlzLmZpbGVkR3JvdXAsXHJcbiAgICAgICAgICAgIEZpbGUsXHJcbiAgICAgICAgICAgIGVsZW1lbnQub3B0aW9ucy5zaXplXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgLy9JbWFnZVVwbG9hZFxyXG4gICAgICAgIGNhc2UgU3VydmV5T3B0aW9uVHlwZS5JbWFnZS50b0xvY2FsZUxvd2VyQ2FzZSgpOlxyXG4gICAgICAgICAgbGV0IEltYWdlID0gbmV3IEltYWdlVXBsb2FkT3B0aW9ucygpO1xyXG4gICAgICAgICAgSW1hZ2UubmFtZSA9ICdxJyArIGVsZW1lbnQuaURfR1VJRDtcclxuICAgICAgICAgIEltYWdlLmhpZGVMYWJlbCA9IGZhbHNlO1xyXG4gICAgICAgICAgSW1hZ2UubGFiZWxFeHRyYUNsYXNzZXMgPSB0aGlzLmxhYmVsQ2xhc3M7XHJcbiAgICAgICAgICBJbWFnZS5sYWJlbFZhbHVlID0gdGhpcy51dGlsaXR5U2VydmljZS5pc0N1cnJlbnRMYW5ndWFnZUFyYWJpYygpXHJcbiAgICAgICAgICAgID8gZWxlbWVudC50ZXh0LmFyYWJpYyArIGAuJHtlbGVtZW50LnF1ZXN0aW9uVHlwZUl0ZW1JRH1gXHJcbiAgICAgICAgICAgIDogZWxlbWVudC50ZXh0LmVuZ2xpc2ggKyBgLiR7ZWxlbWVudC5xdWVzdGlvblR5cGVJdGVtSUR9YDtcclxuICAgICAgICAgIEltYWdlLmlzUmVxdWlyZWQgPSBlbGVtZW50LmlzUmVsYXRlZFRvU3VydmV5UXVlc3Rpb25cclxuICAgICAgICAgICAgPyBmYWxzZVxyXG4gICAgICAgICAgICA6IGVsZW1lbnQub3B0aW9ucy5pc1JlcXVpcmVkO1xyXG4gICAgICAgICAgSW1hZ2UuaXNSZWFkb25seSA9IGVsZW1lbnQuaXNSZWxhdGVkVG9TdXJ2ZXlRdWVzdGlvbjtcclxuICAgICAgICAgIEltYWdlLnZpZXdUeXBlID0gQ29udHJvbExheW91dC5WZXJ0aWNhbDtcclxuICAgICAgICAgIEltYWdlLmlzRGlzYWJsZWQgPSB0aGlzLm9wdGlvbnMuUmVhZG9ubHk7XHJcbiAgICAgICAgICBJbWFnZS5sYWJlbERlc2NyaXB0aW9uID0gdGhpcy51dGlsaXR5U2VydmljZS5pc0N1cnJlbnRMYW5ndWFnZUFyYWJpYygpXHJcbiAgICAgICAgICAgID8gZWxlbWVudC5vcHRpb25zLmRlc2NyaXB0aW9uLmFyYWJpY1xyXG4gICAgICAgICAgICA6IGVsZW1lbnQub3B0aW9ucy5kZXNjcmlwdGlvbi5lbmdsaXNoO1xyXG4gICAgICAgICAgaWYgKGVsZW1lbnQub3B0aW9ucy5tYXhGaWxlU2l6ZUluTUIpXHJcbiAgICAgICAgICAgIEltYWdlLmZpbGVNYXhTaXplSW5NQiA9IGVsZW1lbnQub3B0aW9ucy5tYXhGaWxlU2l6ZUluTUI7XHJcbiAgICAgICAgICBpZiAoZWxlbWVudC5pc1JlbGF0ZWRUb1N1cnZleVF1ZXN0aW9uKSB0aGlzLmNoZWNrTGlzdC5wdXNoKEltYWdlKTtcclxuICAgICAgICAgIGlmIChlbGVtZW50LnZhbHVlLmZpbGVEVE8pIEltYWdlLnZhbHVlID0gZWxlbWVudC52YWx1ZS5maWxlRFRPO1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJDb21wb25lbnRTZXJ2aWNlLnJlbmRlckR5bmFtaWNDb21wb25lbnQ8U3VydmV5Rm9ybUl0ZW1Db21wb25lbnQ+KFxyXG4gICAgICAgICAgICB2aWV3Q29udGFpbmVyUmVmLFxyXG4gICAgICAgICAgICBTdXJ2ZXlGb3JtSXRlbUNvbXBvbmVudCxcclxuICAgICAgICAgICAgdGhpcy5maWxlZEdyb3VwLFxyXG4gICAgICAgICAgICBJbWFnZSxcclxuICAgICAgICAgICAgZWxlbWVudC5vcHRpb25zLnNpemVcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICAvL011bHRpbGluZVRleHRcclxuICAgICAgICBjYXNlIFN1cnZleU9wdGlvblR5cGUuTXVsdGlsaW5lVGV4dC50b0xvY2FsZUxvd2VyQ2FzZSgpOlxyXG4gICAgICAgICAgbGV0IE11bHRpbGluZVRleHQgPSBuZXcgVGV4dEFyZWFPcHRpb25zKCk7XHJcbiAgICAgICAgICBNdWx0aWxpbmVUZXh0Lm5hbWUgPSAncScgKyBlbGVtZW50LmlEX0dVSUQ7XHJcbiAgICAgICAgICBNdWx0aWxpbmVUZXh0LmhpZGVMYWJlbCA9IGZhbHNlO1xyXG4gICAgICAgICAgTXVsdGlsaW5lVGV4dC5sYWJlbEV4dHJhQ2xhc3NlcyA9IHRoaXMubGFiZWxDbGFzcztcclxuICAgICAgICAgIE11bHRpbGluZVRleHQubGFiZWxWYWx1ZSA9XHJcbiAgICAgICAgICAgIHRoaXMudXRpbGl0eVNlcnZpY2UuaXNDdXJyZW50TGFuZ3VhZ2VBcmFiaWMoKVxyXG4gICAgICAgICAgICAgID8gZWxlbWVudC50ZXh0LmFyYWJpYyArIGAuJHtlbGVtZW50LnF1ZXN0aW9uVHlwZUl0ZW1JRH1gXHJcbiAgICAgICAgICAgICAgOiBlbGVtZW50LnRleHQuZW5nbGlzaCArIGAuJHtlbGVtZW50LnF1ZXN0aW9uVHlwZUl0ZW1JRH1gO1xyXG4gICAgICAgICAgTXVsdGlsaW5lVGV4dC5pc1JlcXVpcmVkID0gZWxlbWVudC5pc1JlbGF0ZWRUb1N1cnZleVF1ZXN0aW9uXHJcbiAgICAgICAgICAgID8gZmFsc2VcclxuICAgICAgICAgICAgOiBlbGVtZW50Lm9wdGlvbnMuaXNSZXF1aXJlZDtcclxuICAgICAgICAgIE11bHRpbGluZVRleHQuaXNSZWFkb25seSA9IGVsZW1lbnQuaXNSZWxhdGVkVG9TdXJ2ZXlRdWVzdGlvbjtcclxuICAgICAgICAgIE11bHRpbGluZVRleHQudmlld1R5cGUgPSBDb250cm9sTGF5b3V0LlZlcnRpY2FsO1xyXG4gICAgICAgICAgTXVsdGlsaW5lVGV4dC5pc0Rpc2FibGVkID0gdGhpcy5vcHRpb25zLlJlYWRvbmx5O1xyXG4gICAgICAgICAgTXVsdGlsaW5lVGV4dC5sYWJlbERlc2NyaXB0aW9uID1cclxuICAgICAgICAgICAgdGhpcy51dGlsaXR5U2VydmljZS5pc0N1cnJlbnRMYW5ndWFnZUFyYWJpYygpXHJcbiAgICAgICAgICAgICAgPyBlbGVtZW50Lm9wdGlvbnMuZGVzY3JpcHRpb24uYXJhYmljXHJcbiAgICAgICAgICAgICAgOiBlbGVtZW50Lm9wdGlvbnMuZGVzY3JpcHRpb24uZW5nbGlzaDtcclxuICAgICAgICAgIGlmIChlbGVtZW50Lm9wdGlvbnMubWF4TGVuZ3RoKVxyXG4gICAgICAgICAgICBNdWx0aWxpbmVUZXh0Lm1heExlbmd0aCA9IGVsZW1lbnQub3B0aW9ucy5tYXhMZW5ndGg7XHJcbiAgICAgICAgICBpZiAoZWxlbWVudC5vcHRpb25zLm1pbkxlbmd0aClcclxuICAgICAgICAgICAgTXVsdGlsaW5lVGV4dC5taW5MZW5ndGggPSBlbGVtZW50Lm9wdGlvbnMubWluTGVuZ3RoO1xyXG4gICAgICAgICAgTXVsdGlsaW5lVGV4dC5yb3dzID0gZWxlbWVudC5vcHRpb25zLnJvd3M7XHJcbiAgICAgICAgICBpZiAoZWxlbWVudC52YWx1ZS50ZXh0KSBNdWx0aWxpbmVUZXh0LnZhbHVlID0gZWxlbWVudC52YWx1ZS50ZXh0O1xyXG4gICAgICAgICAgaWYgKGVsZW1lbnQuaXNSZWxhdGVkVG9TdXJ2ZXlRdWVzdGlvbilcclxuICAgICAgICAgICAgdGhpcy5jaGVja0xpc3QucHVzaChNdWx0aWxpbmVUZXh0KTtcclxuICAgICAgICAgIE11bHRpbGluZVRleHQuZm9yY2VEaXJlY3Rpb24gPVxyXG4gICAgICAgICAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLmlzQ3VycmVudExhbmd1YWdlQXJhYmljKClcclxuICAgICAgICAgICAgICA/IEZvcmNlRGlyZWN0aW9uLkFyYWJpY1xyXG4gICAgICAgICAgICAgIDogRm9yY2VEaXJlY3Rpb24uRW5nbGlzaDtcclxuICAgICAgICAgIHRoaXMucmVuZGVyQ29tcG9uZW50U2VydmljZS5yZW5kZXJEeW5hbWljQ29tcG9uZW50PFN1cnZleUZvcm1JdGVtQ29tcG9uZW50PihcclxuICAgICAgICAgICAgdmlld0NvbnRhaW5lclJlZixcclxuICAgICAgICAgICAgU3VydmV5Rm9ybUl0ZW1Db21wb25lbnQsXHJcbiAgICAgICAgICAgIHRoaXMuZmlsZWRHcm91cCxcclxuICAgICAgICAgICAgTXVsdGlsaW5lVGV4dCxcclxuICAgICAgICAgICAgZWxlbWVudC5vcHRpb25zLnNpemVcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICAvL0hUTUxcclxuICAgICAgICBjYXNlIFN1cnZleU9wdGlvblR5cGUuQm9vbGVhbi50b0xvY2FsZUxvd2VyQ2FzZSgpOlxyXG4gICAgICAgICAgbGV0IEJvb2xlYW4gPSBuZXcgVG9nZ2xlU2xpZGVPcHRpb25zKCk7XHJcbiAgICAgICAgICBCb29sZWFuLm5hbWUgPSAncScgKyBlbGVtZW50LmlEX0dVSUQ7XHJcbiAgICAgICAgICBCb29sZWFuLmxhYmVsRXh0cmFDbGFzc2VzID0gdGhpcy5sYWJlbENsYXNzO1xyXG4gICAgICAgICAgQm9vbGVhbi52aWV3VHlwZSA9IENvbnRyb2xMYXlvdXQuVmVydGljYWw7XHJcbiAgICAgICAgICBCb29sZWFuLmlzUmVhZG9ubHkgPSBlbGVtZW50LmlzUmVsYXRlZFRvU3VydmV5UXVlc3Rpb247XHJcbiAgICAgICAgICBCb29sZWFuLmlzRGlzYWJsZWQgPSB0aGlzLm9wdGlvbnMuUmVhZG9ubHk7XHJcbiAgICAgICAgICBCb29sZWFuLmhpZGVMYWJlbCA9IGZhbHNlO1xyXG4gICAgICAgICAgaWYgKGVsZW1lbnQudmFsdWUuYm9vbGVhbikgQm9vbGVhbi52YWx1ZSA9IGVsZW1lbnQudmFsdWUuYm9vbGVhbjtcclxuICAgICAgICAgIGlmIChlbGVtZW50LmlzUmVsYXRlZFRvU3VydmV5UXVlc3Rpb24pIHRoaXMuY2hlY2tMaXN0LnB1c2goQm9vbGVhbik7XHJcbiAgICAgICAgICBCb29sZWFuLmxhYmVsVmFsdWUgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmlzQ3VycmVudExhbmd1YWdlQXJhYmljKClcclxuICAgICAgICAgICAgPyBlbGVtZW50LnRleHQuYXJhYmljICsgYC4ke2VsZW1lbnQucXVlc3Rpb25UeXBlSXRlbUlEfWBcclxuICAgICAgICAgICAgOiBlbGVtZW50LnRleHQuZW5nbGlzaCArIGAuJHtlbGVtZW50LnF1ZXN0aW9uVHlwZUl0ZW1JRH1gO1xyXG4gICAgICAgICAgQm9vbGVhbi5sYWJlbERlc2NyaXB0aW9uID1cclxuICAgICAgICAgICAgdGhpcy51dGlsaXR5U2VydmljZS5pc0N1cnJlbnRMYW5ndWFnZUFyYWJpYygpXHJcbiAgICAgICAgICAgICAgPyBlbGVtZW50Lm9wdGlvbnMuZGVzY3JpcHRpb24uYXJhYmljXHJcbiAgICAgICAgICAgICAgOiBlbGVtZW50Lm9wdGlvbnMuZGVzY3JpcHRpb24uZW5nbGlzaDtcclxuICAgICAgICAgIHRoaXMucmVuZGVyQ29tcG9uZW50U2VydmljZS5yZW5kZXJEeW5hbWljQ29tcG9uZW50PFN1cnZleUZvcm1JdGVtQ29tcG9uZW50PihcclxuICAgICAgICAgICAgdmlld0NvbnRhaW5lclJlZixcclxuICAgICAgICAgICAgU3VydmV5Rm9ybUl0ZW1Db21wb25lbnQsXHJcbiAgICAgICAgICAgIHRoaXMuZmlsZWRHcm91cCxcclxuICAgICAgICAgICAgQm9vbGVhbixcclxuICAgICAgICAgICAgZWxlbWVudC5vcHRpb25zLnNpemVcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICAvL0xvY2F0aW9uXHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5vcHRpb25zLlJlYWRvbmx5KVxyXG4gICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgdGhpcy5jaGVja0xpc3QubGVuZ3RoOyBpbmRleCsrKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuY2hlY2tMaXN0W2luZGV4XS5WYWx1ZSkge1xyXG4gICAgICAgICAgdGhpcy5jaGVja0xpc3RbaW5kZXhdLklzUmVhZG9ubHkgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICB0aGlzLmZpbGVkR3JvdXAudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgoZXMpID0+IHtcclxuICAgICAgY29uc29sZS5sb2codGhpcy5maWxlZEdyb3VwKTtcclxuICAgICAgdGhpcy5yZXN1bHQgPSBbXTtcclxuICAgICAgdGhpcy5zaG93ZWRDaGlsZFF1ZXN0aW9uID0gW107XHJcbiAgICAgIGZvciAoY29uc3Qga2V5IGluIHRoaXMuZmlsZWRHcm91cC5jb250cm9scykge1xyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0aGlzLmZpbGVkR3JvdXAuY29udHJvbHMsIGtleSlcclxuICAgICAgICApIHtcclxuICAgICAgICAgIGxldCBzY29yZSA9IDA7XHJcbiAgICAgICAgICBsZXQgZWxlbWVudCA9IHRoaXMuZmlsZWRHcm91cC5jb250cm9sc1trZXldO1xyXG4gICAgICAgICAgbGV0IGlkID0ga2V5LnJlcGxhY2UoJ3EnLCAnJyk7XHJcbiAgICAgICAgICB2YXIgZmlsdGVyZWRJdGVtID0gdGhpcy5vcHRpb25zLlF1ZXN0aW9uTGlzdC5maWx0ZXIoXHJcbiAgICAgICAgICAgIChpdGVtKSA9PiBpdGVtLmlEX0dVSUQgPT0gaWRcclxuICAgICAgICAgIClbMF07XHJcblxyXG4gICAgICAgICAgbGV0IGl0ZW0gPSBuZXcgU3VydmV5RmlsZWRWYWx1ZURUTygpO1xyXG4gICAgICAgICAgaXRlbS5RdWVzdGlvbkZpZWxkSUQgPSBpZDtcclxuICAgICAgICAgIGl0ZW0uUXVlc3Rpb25UeXBlSXRlbUlEID0gZmlsdGVyZWRJdGVtLnF1ZXN0aW9uVHlwZUl0ZW1JRDtcclxuICAgICAgICAgIHN3aXRjaCAoZmlsdGVyZWRJdGVtLnF1ZXN0aW9uVHlwZUl0ZW1JRCkge1xyXG4gICAgICAgICAgICBjYXNlIFN1cnZleU9wdGlvblR5cGUuVGV4dC50b0xvY2FsZUxvd2VyQ2FzZSgpOlxyXG4gICAgICAgICAgICAgIGl0ZW0uVGV4dCA9IGVsZW1lbnQudmFsdWU7XHJcbiAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgU3VydmV5T3B0aW9uVHlwZS5FbWFpbC50b0xvY2FsZUxvd2VyQ2FzZSgpOlxyXG4gICAgICAgICAgICAgIGl0ZW0uVGV4dCA9IGVsZW1lbnQudmFsdWU7XHJcbiAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgU3VydmV5T3B0aW9uVHlwZS5OdW1iZXIudG9Mb2NhbGVMb3dlckNhc2UoKTpcclxuICAgICAgICAgICAgICBpdGVtLlRleHQgPSBlbGVtZW50LnZhbHVlO1xyXG4gICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIFN1cnZleU9wdGlvblR5cGUuTXVsdGlsaW5lVGV4dC50b0xvY2FsZUxvd2VyQ2FzZSgpOlxyXG4gICAgICAgICAgICAgIGl0ZW0uVGV4dCA9IGVsZW1lbnQudmFsdWU7XHJcbiAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgU3VydmV5T3B0aW9uVHlwZS5Cb29sZWFuLnRvTG9jYWxlTG93ZXJDYXNlKCk6XHJcbiAgICAgICAgICAgICAgaXRlbS5Cb29sZWFuID0gZWxlbWVudC52YWx1ZTtcclxuICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBTdXJ2ZXlPcHRpb25UeXBlLkRhdGUudG9Mb2NhbGVMb3dlckNhc2UoKTpcclxuICAgICAgICAgICAgICBpdGVtLkRhdGVUaW1lID0gZWxlbWVudC52YWx1ZTtcclxuICAgICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgICAgIGNhc2UgU3VydmV5T3B0aW9uVHlwZS5EYXRlVGltZS50b0xvY2FsZUxvd2VyQ2FzZSgpOlxyXG4gICAgICAgICAgICAgIGl0ZW0uRGF0ZVRpbWUgPSBlbGVtZW50LnZhbHVlO1xyXG4gICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlIFN1cnZleU9wdGlvblR5cGUuU2luZ2xlU2VsZWN0LnRvTG9jYWxlTG93ZXJDYXNlKCk6XHJcbiAgICAgICAgICAgICAgaXRlbS5TZWxlY3RlZElEcyA9IFtlbGVtZW50LnZhbHVlXTtcclxuICAgICAgICAgICAgICB0aGlzLmFkZFNob3dlZENoaWxkUXVlc3Rpb25zKGVsZW1lbnQudmFsdWUpO1xyXG4gICAgICAgICAgICAgIGRlYnVnZ2VyO1xyXG4gICAgICAgICAgICAgIGlmIChmaWx0ZXJlZEl0ZW0uaXNBbGxvd1Njb3JpbmcpXHJcbiAgICAgICAgICAgICAgICBzY29yZSA9IGZpbHRlcmVkSXRlbS5xdWVzdGlvbk9wdGlvbnMuZmlsdGVyKFxyXG4gICAgICAgICAgICAgICAgICAoaXRlbSkgPT4gaXRlbS5pRF9HVUlEID09IGVsZW1lbnQudmFsdWVcclxuICAgICAgICAgICAgICAgIClbMF0/LnNjb3JlXHJcbiAgICAgICAgICAgICAgICAgID8gZmlsdGVyZWRJdGVtLnF1ZXN0aW9uT3B0aW9ucz8uZmlsdGVyKFxyXG4gICAgICAgICAgICAgICAgICAgIChpdGVtKSA9PiBpdGVtLmlEX0dVSUQgPT0gZWxlbWVudC52YWx1ZVxyXG4gICAgICAgICAgICAgICAgICApWzBdLnNjb3JlXHJcbiAgICAgICAgICAgICAgICAgIDogMDtcclxuICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBTdXJ2ZXlPcHRpb25UeXBlLlJhZGlvQnV0dG9uLnRvTG9jYWxlTG93ZXJDYXNlKCk6XHJcbiAgICAgICAgICAgICAgaXRlbS5TZWxlY3RlZElEcyA9IFtlbGVtZW50LnZhbHVlXTtcclxuICAgICAgICAgICAgICB0aGlzLmFkZFNob3dlZENoaWxkUXVlc3Rpb25zKGVsZW1lbnQudmFsdWUpO1xyXG4gICAgICAgICAgICAgIGlmIChmaWx0ZXJlZEl0ZW0uaXNBbGxvd1Njb3JpbmcpXHJcbiAgICAgICAgICAgICAgICBzY29yZSA9IGZpbHRlcmVkSXRlbS5xdWVzdGlvbk9wdGlvbnMuZmlsdGVyKFxyXG4gICAgICAgICAgICAgICAgICAoaXRlbSkgPT4gaXRlbS5pRF9HVUlEID09IGVsZW1lbnQudmFsdWVcclxuICAgICAgICAgICAgICAgIClbMF0/LnNjb3JlXHJcbiAgICAgICAgICAgICAgICAgID8gZmlsdGVyZWRJdGVtLnF1ZXN0aW9uT3B0aW9ucz8uZmlsdGVyKFxyXG4gICAgICAgICAgICAgICAgICAgIChpdGVtKSA9PiBpdGVtLmlEX0dVSUQgPT0gZWxlbWVudC52YWx1ZVxyXG4gICAgICAgICAgICAgICAgICApWzBdLnNjb3JlXHJcbiAgICAgICAgICAgICAgICAgIDogMDtcclxuICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBTdXJ2ZXlPcHRpb25UeXBlLk11bHRpcGxlU2VsZWN0LnRvTG9jYWxlTG93ZXJDYXNlKCk6XHJcbiAgICAgICAgICAgICAgaXRlbS5TZWxlY3RlZElEcyA9IGVsZW1lbnQudmFsdWU7XHJcbiAgICAgICAgICAgICAgaWYgKGVsZW1lbnQudmFsdWUpXHJcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgZWxlbWVudC52YWx1ZS5sZW5ndGg7IGluZGV4KyspIHtcclxuICAgICAgICAgICAgICAgICAgY29uc3QgaXRlbSA9IGVsZW1lbnQudmFsdWVbaW5kZXhdO1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmFkZFNob3dlZENoaWxkUXVlc3Rpb25zKGl0ZW0pO1xyXG4gICAgICAgICAgICAgICAgICBpZiAoZmlsdGVyZWRJdGVtLmlzQWxsb3dTY29yaW5nKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IHNjb3JlVmFsdWUgPSBmaWx0ZXJlZEl0ZW0ucXVlc3Rpb25PcHRpb25zLmZpbHRlcihcclxuICAgICAgICAgICAgICAgICAgICAgIChpdGVtT3B0aW9ucykgPT4gaXRlbU9wdGlvbnMuaURfR1VJRCA9PSBpdGVtXHJcbiAgICAgICAgICAgICAgICAgICAgKVswXT8uc2NvcmVcclxuICAgICAgICAgICAgICAgICAgICAgID8gZmlsdGVyZWRJdGVtLnF1ZXN0aW9uT3B0aW9ucz8uZmlsdGVyKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoaXRlbU9wdGlvbnMpID0+IGl0ZW1PcHRpb25zLmlEX0dVSUQgPT0gaXRlbVxyXG4gICAgICAgICAgICAgICAgICAgICAgKVswXS5zY29yZVxyXG4gICAgICAgICAgICAgICAgICAgICAgOiAwO1xyXG4gICAgICAgICAgICAgICAgICAgIHNjb3JlID0gc2NvcmVWYWx1ZSArIHNjb3JlO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgU3VydmV5T3B0aW9uVHlwZS5Db3VudHJ5LnRvTG9jYWxlTG93ZXJDYXNlKCk6XHJcbiAgICAgICAgICAgICAgaXRlbS5TZWxlY3RlZElEcyA9IFtlbGVtZW50LnZhbHVlXTtcclxuICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBTdXJ2ZXlPcHRpb25UeXBlLkltYWdlLnRvTG9jYWxlTG93ZXJDYXNlKCk6XHJcbiAgICAgICAgICAgICAgaXRlbS5GaWxlRFRPID0gZWxlbWVudC52YWx1ZTtcclxuICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSBTdXJ2ZXlPcHRpb25UeXBlLkZpbGUudG9Mb2NhbGVMb3dlckNhc2UoKTpcclxuICAgICAgICAgICAgICBpZiAoZWxlbWVudC52YWx1ZSlcclxuICAgICAgICAgICAgICAgIGl0ZW0uRmlsZURUTyA9IGVsZW1lbnQudmFsdWUuRmlsZVxyXG4gICAgICAgICAgICAgICAgICA/IGVsZW1lbnQudmFsdWUuRmlsZVxyXG4gICAgICAgICAgICAgICAgICA6IGVsZW1lbnQudmFsdWU7XHJcbiAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgU3VydmV5T3B0aW9uVHlwZS5NdWx0aUZpbGUudG9Mb2NhbGVMb3dlckNhc2UoKTpcclxuICAgICAgICAgICAgICBpdGVtLkZpbGVDb3JyZWxhdGlvbkRUTyA9IGVsZW1lbnQudmFsdWU7XHJcbiAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBmaWx0ZXJlZEl0ZW0udmFsdWUgPSBpdGVtO1xyXG4gICAgICAgICAgZmlsdGVyZWRJdGVtLnZhbHVlLnNjb3JlID0gc2NvcmU7XHJcbiAgICAgICAgICB0aGlzLnJlc3VsdC5wdXNoKGl0ZW0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICB0aGlzLm9wdGlvbnMuVmFsdWVzTGlzdCA9IHRoaXMucmVzdWx0O1xyXG4gICAgICB0aGlzLmNoYW5nZUhpZGRlblF1ZXN0aW9uc1N0YXR1cygpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBhZGRTaG93ZWRDaGlsZFF1ZXN0aW9ucyhuZXdLZXkpIHtcclxuICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCB0aGlzLm9wdGlvbnMuUXVlc3Rpb25MaXN0Lmxlbmd0aDsgaW5kZXgrKykge1xyXG4gICAgICB2YXIgcXVlc3Rpb25PcHRpb24gPSB0aGlzLm9wdGlvbnMuUXVlc3Rpb25MaXN0W2luZGV4XS5xdWVzdGlvbk9wdGlvbnM7XHJcbiAgICAgIGxldCBPcHRpb24gPSBxdWVzdGlvbk9wdGlvbi5maWx0ZXIoKHgpID0+IHguaURfR1VJRCA9PT0gbmV3S2V5KVswXTtcclxuICAgICAgaWYgKE9wdGlvbiAmJiBPcHRpb24/LmxpbmtlZFF1ZXN0aW9ucy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IE9wdGlvbi5saW5rZWRRdWVzdGlvbnMubGVuZ3RoOyBpbmRleCsrKSB7XHJcbiAgICAgICAgICBjb25zdCBsaW5rZWRRdWVzdGlvbiA9IE9wdGlvbi5saW5rZWRRdWVzdGlvbnNbaW5kZXhdO1xyXG4gICAgICAgICAgbGV0IGNoZWNrSXNRdWVzdGlvbkV4aXN0ID0gdGhpcy5zaG93ZWRDaGlsZFF1ZXN0aW9uLnNvbWUoXHJcbiAgICAgICAgICAgICh4KSA9PiB4ID09PSBgcSR7bGlua2VkUXVlc3Rpb259YFxyXG4gICAgICAgICAgKTtcclxuICAgICAgICAgIGlmICghY2hlY2tJc1F1ZXN0aW9uRXhpc3QpXHJcbiAgICAgICAgICAgIHRoaXMuc2hvd2VkQ2hpbGRRdWVzdGlvbi5wdXNoKGBxJHtsaW5rZWRRdWVzdGlvbn1gKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNoYW5nZUhpZGRlblF1ZXN0aW9uc1N0YXR1cygpIHtcclxuICAgIGxldCBxdWVzdGlvbnMgPSB0aGlzLnNob3dlZENoaWxkUXVlc3Rpb247XHJcbiAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgdGhpcy5jaGVja0xpc3QubGVuZ3RoOyBpbmRleCsrKSB7XHJcbiAgICAgIGxldCBjaGVja0lmRXhpc3QgPSB0aGlzLnNob3dlZENoaWxkUXVlc3Rpb24uc29tZShcclxuICAgICAgICAoeCkgPT4geCA9PT0gdGhpcy5jaGVja0xpc3RbaW5kZXhdLk5hbWVcclxuICAgICAgKTtcclxuICAgICAgaWYgKGNoZWNrSWZFeGlzdCkge1xyXG4gICAgICAgIGxldCBxdWVzdGlvbklkID0gdGhpcy5jaGVja0xpc3RbaW5kZXhdLk5hbWUucmVwbGFjZSgncScsICcnKTtcclxuICAgICAgICBsZXQgUXVlc3Rpb24gPSB0aGlzLm9wdGlvbnMuUXVlc3Rpb25MaXN0LmZpbHRlcihcclxuICAgICAgICAgIChpdGVtKSA9PiBpdGVtLmlEX0dVSUQgPT0gcXVlc3Rpb25JZFxyXG4gICAgICAgIClbMF07XHJcbiAgICAgICAgdGhpcy5jaGVja0xpc3RbaW5kZXhdLklzUmVhZG9ubHkgPSBmYWxzZTtcclxuICAgICAgICBpZiAoUXVlc3Rpb24ub3B0aW9ucy5pc1JlcXVpcmVkICYmICF0aGlzLmNoZWNrTGlzdFtpbmRleF0uSXNSZXF1aXJlZCkge1xyXG4gICAgICAgICAgdGhpcy5jaGVja0xpc3RbaW5kZXhdLklzUmVxdWlyZWQgPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy5maWxlZEdyb3VwXHJcbiAgICAgICAgICAgIC5nZXQodGhpcy5jaGVja0xpc3RbaW5kZXhdLk5hbWUpXHJcbiAgICAgICAgICAgIC5hZGRWYWxpZGF0b3JzKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xyXG4gICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICB0aGlzLmZpbGVkR3JvdXAuZ2V0KHRoaXMuY2hlY2tMaXN0W2luZGV4XS5OYW1lKS52YWx1ZSA9PSBudWxsIHx8XHJcbiAgICAgICAgICAgIHRoaXMuZmlsZWRHcm91cC5nZXQodGhpcy5jaGVja0xpc3RbaW5kZXhdLk5hbWUpLnZhbHVlID09XHJcbiAgICAgICAgICAgIHVuZGVmaW5lZCB8fFxyXG4gICAgICAgICAgICB0aGlzLmZpbGVkR3JvdXAuZ2V0KHRoaXMuY2hlY2tMaXN0W2luZGV4XS5OYW1lKS52YWx1ZSA9PSAnJ1xyXG4gICAgICAgICAgKVxyXG4gICAgICAgICAgICB0aGlzLmZpbGVkR3JvdXBcclxuICAgICAgICAgICAgICAuZ2V0KHRoaXMuY2hlY2tMaXN0W2luZGV4XS5OYW1lKVxyXG4gICAgICAgICAgICAgIC5zZXRFcnJvcnMoeyByZXF1aXJlZDogdHJ1ZSB9KTtcclxuICAgICAgICAgIGVsc2UgdGhpcy5maWxlZEdyb3VwLmdldCh0aGlzLmNoZWNrTGlzdFtpbmRleF0uTmFtZSkuc2V0RXJyb3JzKG51bGwpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmNoZWNrTGlzdFtpbmRleF0uSXNSZWFkb25seSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5jaGVja0xpc3RbaW5kZXhdLklzUmVxdWlyZWQgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmNoZWNrTGlzdFtpbmRleF0uVmFsdWUgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuZmlsZWRHcm91cC5jb250cm9sc1t0aGlzLmNoZWNrTGlzdFtpbmRleF0uTmFtZV0ucmVtb3ZlVmFsaWRhdG9ycyhcclxuICAgICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWRcclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMuZmlsZWRHcm91cC5nZXQodGhpcy5jaGVja0xpc3RbaW5kZXhdLk5hbWUpLnNldEVycm9ycyhudWxsKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdG9DYW1lbCA9IChvYmopID0+IHtcclxuICAgIGlmIChBcnJheS5pc0FycmF5KG9iaikpIHtcclxuICAgICAgcmV0dXJuIG9iai5tYXAoKHYpID0+IHRoaXMudG9DYW1lbCh2KSk7XHJcbiAgICB9IGVsc2UgaWYgKG9iaiAhPSBudWxsICYmIG9iai5jb25zdHJ1Y3RvciA9PT0gT2JqZWN0KSB7XHJcbiAgICAgIHJldHVybiBPYmplY3Qua2V5cyhvYmopLnJlZHVjZVJpZ2h0KFxyXG4gICAgICAgIChyZXN1bHQsIGtleSkgPT4gKHtcclxuICAgICAgICAgIC4uLnJlc3VsdCxcclxuICAgICAgICAgIFsoa2V5LmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsga2V5LnNsaWNlKDEpIHx8IGtleSkudG9TdHJpbmcoKV06XHJcbiAgICAgICAgICAgIHRoaXMudG9DYW1lbChvYmpba2V5XSksXHJcbiAgICAgICAgfSksXHJcbiAgICAgICAge31cclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIHJldHVybiBvYmo7XHJcbiAgfTtcclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwic3VydmV5LXByZXZpZXdcIj5cclxuICAgIDxuZy10ZW1wbGF0ZSBhZEhvc3Q+PC9uZy10ZW1wbGF0ZT5cclxuPC9kaXY+XHJcblxyXG4iXX0=
@@ -65,12 +65,12 @@ export class SurveyFormItemComponent {
65
65
  break;
66
66
  }
67
67
  }
68
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SurveyFormItemComponent, deps: [{ token: i0.ElementRef }, { token: i1.RenderComponentService }, { token: i2.UtilityService }, { token: i3.FormGroupDirective }], target: i0.ɵɵFactoryTarget.Component }); }
69
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: SurveyFormItemComponent, selector: "survey-form_item", inputs: { group: "group", options: "options", Size: "Size" }, providers: [FormGroupDirective], viewQueries: [{ propertyName: "adHost", first: true, predicate: AdDirective, descendants: true, static: true }], ngImport: i0, template: "\r\n<div class=\"survey-preview-data\" id=\"{{options.Name}}\" [hidden]=\"options.IsReadonly\">\r\n <span class=\"question-number\" ngbTooltip=\"Question Number\"></span>\r\n <div class=\"survey-preview-question\">\r\n <div class=\"survey-answer\">\r\n <ng-template adHost></ng-template>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n", dependencies: [{ kind: "directive", type: i4.NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "popperOptions", "triggers", "positionTarget", "container", "disableTooltip", "tooltipClass", "tooltipContext", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }, { kind: "directive", type: i5.AdDirective, selector: "[adHost]" }] }); }
68
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: SurveyFormItemComponent, deps: [{ token: i0.ElementRef }, { token: i1.RenderComponentService }, { token: i2.UtilityService }, { token: i3.FormGroupDirective }], target: i0.ɵɵFactoryTarget.Component }); }
69
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.6", type: SurveyFormItemComponent, selector: "survey-form_item", inputs: { group: "group", options: "options", Size: "Size" }, providers: [FormGroupDirective], viewQueries: [{ propertyName: "adHost", first: true, predicate: AdDirective, descendants: true, static: true }], ngImport: i0, template: "\r\n<div class=\"survey-preview-data\" id=\"{{options.Name}}\" [hidden]=\"options.IsReadonly\">\r\n <span class=\"question-number\" ngbTooltip=\"Question Number\"></span>\r\n <div class=\"survey-preview-question\">\r\n <div class=\"survey-answer\">\r\n <ng-template adHost></ng-template>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n", dependencies: [{ kind: "directive", type: i4.NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "popperOptions", "triggers", "positionTarget", "container", "disableTooltip", "tooltipClass", "tooltipContext", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }, { kind: "directive", type: i5.AdDirective, selector: "[adHost]" }] }); }
70
70
  }
71
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SurveyFormItemComponent, decorators: [{
71
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: SurveyFormItemComponent, decorators: [{
72
72
  type: Component,
73
- args: [{ selector: 'survey-form_item', providers: [FormGroupDirective], template: "\r\n<div class=\"survey-preview-data\" id=\"{{options.Name}}\" [hidden]=\"options.IsReadonly\">\r\n <span class=\"question-number\" ngbTooltip=\"Question Number\"></span>\r\n <div class=\"survey-preview-question\">\r\n <div class=\"survey-answer\">\r\n <ng-template adHost></ng-template>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n" }]
73
+ args: [{ selector: 'survey-form_item', providers: [FormGroupDirective], standalone: false, template: "\r\n<div class=\"survey-preview-data\" id=\"{{options.Name}}\" [hidden]=\"options.IsReadonly\">\r\n <span class=\"question-number\" ngbTooltip=\"Question Number\"></span>\r\n <div class=\"survey-preview-question\">\r\n <div class=\"survey-answer\">\r\n <ng-template adHost></ng-template>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n" }]
74
74
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.RenderComponentService }, { type: i2.UtilityService }, { type: i3.FormGroupDirective }], propDecorators: { group: [{
75
75
  type: Input
76
76
  }], options: [{
@@ -81,4 +81,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
81
81
  type: ViewChild,
82
82
  args: [AdDirective, { static: true }]
83
83
  }] } });
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VydmV5LWZvcm0taXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLWFkbWluLXBvcnRhbC9zcmMvbGliL1BhZ2VzL3NoYXJlZC9jb21wb25lbnRzL3N1cnZleS1mb3JtLWl0ZW0vc3VydmV5LWZvcm0taXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLWFkbWluLXBvcnRhbC9zcmMvbGliL1BhZ2VzL3NoYXJlZC9jb21wb25lbnRzL3N1cnZleS1mb3JtLWl0ZW0vc3VydmV5LWZvcm0taXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLEtBQUssRUFBVSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEYsT0FBTyxFQUFhLGtCQUFrQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGdCQUFnQixFQUFFLHFCQUFxQixFQUFFLG1CQUFtQixFQUFFLHNCQUFzQixFQUFFLGlCQUFpQixFQUFFLG9CQUFvQixFQUEwQixvQkFBb0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRTFPLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7OztBQVE3QyxNQUFNLE9BQU8sdUJBQXVCO0lBUWxDLFlBQW9CLEVBQWMsRUFDeEIsc0JBQThDLEVBQzlDLGNBQThCLEVBQy9CLGVBQW1DO1FBSHhCLE9BQUUsR0FBRixFQUFFLENBQVk7UUFDeEIsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF3QjtRQUM5QyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDL0Isb0JBQWUsR0FBZixlQUFlLENBQW9CO0lBQ3hDLENBQUM7SUFDTCxRQUFRO1FBQ04sTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDO1FBQ3RELGdCQUFnQixDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3pCLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMvQyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0QixJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMvQixJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ3JDLFFBQVEsSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUMzQixVQUFVO1lBRVYsS0FBSyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUNoRCxLQUFLLGdCQUFnQixDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQy9DLEtBQUssZ0JBQWdCLENBQUMsTUFBTSxDQUFDLGlCQUFpQixFQUFFO2dCQUM5QyxJQUFJLENBQUMsc0JBQXNCLENBQUMsc0JBQXNCLENBQW1CLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUNuSSxNQUFNO1lBQ1IsV0FBVztZQUNYLEtBQUssZ0JBQWdCLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDL0MsS0FBSyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsaUJBQWlCLEVBQUU7Z0JBQ2hELElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxzQkFBc0IsQ0FBcUIsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQ3ZJLE1BQU07WUFDUixVQUFVO1lBQ1YsS0FBSyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUNsRCxLQUFLLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQ3pELEtBQUssZ0JBQWdCLENBQUMsWUFBWSxDQUFDLGlCQUFpQixFQUFFO2dCQUNwRCxJQUFJLENBQUMsc0JBQXNCLENBQUMsc0JBQXNCLENBQXdCLGdCQUFnQixFQUFFLHFCQUFxQixFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUM3SSxNQUFNO1lBQ1IsWUFBWTtZQUNaLEtBQUssZ0JBQWdCLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDL0MsS0FBSyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsaUJBQWlCLEVBQUU7Z0JBQ2pELElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxzQkFBc0IsQ0FBc0IsZ0JBQWdCLEVBQUUsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQ3pJLE1BQU07WUFDUixTQUFTO1lBQ1QsS0FBSyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLEVBQUU7Z0JBQy9DLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxzQkFBc0IsQ0FBdUIsZ0JBQWdCLEVBQUUsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQzNJLE1BQU07WUFDUixlQUFlO1lBQ2YsS0FBSyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsaUJBQWlCLEVBQUU7Z0JBQ3JELElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxzQkFBc0IsQ0FBb0IsZ0JBQWdCLEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQ3JJLE1BQU07WUFDUixLQUFLLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxpQkFBaUIsRUFBRTtnQkFDN0MsSUFBSSxDQUFDLHNCQUFzQixDQUFDLHNCQUFzQixDQUF5QixnQkFBZ0IsRUFBRSxzQkFBc0IsRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDL0ksTUFBTTtZQUNSLGVBQWU7WUFDZixLQUFLLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsRUFBRTtnQkFDbkQsSUFBSSxDQUFDLHNCQUFzQixDQUFDLHNCQUFzQixDQUF1QixnQkFBZ0IsRUFBRSxvQkFBb0IsRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDM0ksTUFBTTtZQUNSO2dCQUNFLE1BQU07U0FDVDtJQUVILENBQUM7K0dBL0RVLHVCQUF1QjttR0FBdkIsdUJBQXVCLHlHQUZ2QixDQUFDLGtCQUFrQixDQUFDLGtFQU1wQixXQUFXLDhEQ2pCeEIsb1dBVUE7OzRGREdhLHVCQUF1QjtrQkFMbkMsU0FBUzsrQkFDRSxrQkFBa0IsYUFFakIsQ0FBQyxrQkFBa0IsQ0FBQztrTEFHdEIsS0FBSztzQkFBYixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ29DLE1BQU07c0JBQS9DLFNBQVM7dUJBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCwgRm9ybUdyb3VwRGlyZWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBEYXRlSW5wdXRDb21wb25lbnQsIFRleHRib3hDb21wb25lbnQsIERyb3Bkb3duTGlzdENvbXBvbmVudCwgRmlsZVVwbG9hZENvbXBvbmVudCwgSW1hZ2VVcGxvYWRlckNvbXBvbmVudCwgVGV4dEFyZWFDb21wb25lbnQsIFRvZ2dsZXNsaWRlQ29tcG9uZW50LCBSZW5kZXJDb21wb25lbnRTZXJ2aWNlLCBSYWRpb0J1dHRvbkNvbXBvbmVudCB9IGZyb20gJ0BibnNpZ2h0cy9iYnNmLWNvbnRyb2xzJztcclxuaW1wb3J0IHsgVXRpbGl0eVNlcnZpY2UgfSBmcm9tICdAYm5zaWdodHMvYmJzZi11dGlsaXRpZXMnO1xyXG5pbXBvcnQgeyBTdXJ2ZXlPcHRpb25UeXBlIH0gZnJvbSAnLi4vLi4vRW51bXMvRW51bXMnO1xyXG5pbXBvcnQgeyBBZERpcmVjdGl2ZSB9IGZyb20gJy4uL0FkRGlyZWN0aXZlJztcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3N1cnZleS1mb3JtX2l0ZW0nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zdXJ2ZXktZm9ybS1pdGVtLmNvbXBvbmVudC5odG1sJyxcclxuICBwcm92aWRlcnM6IFtGb3JtR3JvdXBEaXJlY3RpdmVdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTdXJ2ZXlGb3JtSXRlbUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQElucHV0KCkgZ3JvdXA6IEZvcm1Hcm91cDtcclxuICBASW5wdXQoKSBvcHRpb25zOiBhbnk7XHJcbiAgQElucHV0KCkgU2l6ZTogYW55O1xyXG4gIEBWaWV3Q2hpbGQoQWREaXJlY3RpdmUsIHsgc3RhdGljOiB0cnVlIH0pIGFkSG9zdCE6IEFkRGlyZWN0aXZlO1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgcXVlc3Rpb25OdW1iZXI6IG51bWJlcjtcclxuICBwcm9wZXJ0eVR5cGVJRDogc3RyaW5nO1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWw6IEVsZW1lbnRSZWYsXHJcbiAgICBwcml2YXRlIHJlbmRlckNvbXBvbmVudFNlcnZpY2U6IFJlbmRlckNvbXBvbmVudFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHV0aWxpdHlTZXJ2aWNlOiBVdGlsaXR5U2VydmljZSxcclxuICAgIHB1YmxpYyBUZXh0Q29udHJvbEhvc3Q6IEZvcm1Hcm91cERpcmVjdGl2ZSxcclxuICApIHsgfVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgY29uc3Qgdmlld0NvbnRhaW5lclJlZiA9IHRoaXMuYWRIb3N0LnZpZXdDb250YWluZXJSZWY7XHJcbiAgICB2aWV3Q29udGFpbmVyUmVmLmNsZWFyKCk7XHJcbiAgICBsZXQgdmFsdWUgPSB0aGlzLm9wdGlvbnMuTGFiZWxWYWx1ZS5zcGxpdChcIi5cIik7XHJcbiAgICB0aGlzLnRpdGxlID0gdmFsdWVbMF07XHJcbiAgICB0aGlzLnByb3BlcnR5VHlwZUlEID0gdmFsdWVbMV07XHJcbiAgICB0aGlzLm9wdGlvbnMuTGFiZWxWYWx1ZSA9IHRoaXMudGl0bGU7XHJcbiAgICBzd2l0Y2ggKHRoaXMucHJvcGVydHlUeXBlSUQpIHtcclxuICAgICAgLy8vVGV4dEJveFxyXG5cclxuICAgICAgY2FzZSBTdXJ2ZXlPcHRpb25UeXBlLkVtYWlsLnRvTG9jYWxlTG93ZXJDYXNlKCk6XHJcbiAgICAgIGNhc2UgU3VydmV5T3B0aW9uVHlwZS5UZXh0LnRvTG9jYWxlTG93ZXJDYXNlKCk6XHJcbiAgICAgIGNhc2UgU3VydmV5T3B0aW9uVHlwZS5OdW1iZXIudG9Mb2NhbGVMb3dlckNhc2UoKTpcclxuICAgICAgICB0aGlzLnJlbmRlckNvbXBvbmVudFNlcnZpY2UucmVuZGVyRHluYW1pY0NvbXBvbmVudDxUZXh0Ym94Q29tcG9uZW50Pih2aWV3Q29udGFpbmVyUmVmLCBUZXh0Ym94Q29tcG9uZW50LCB0aGlzLmdyb3VwLCB0aGlzLm9wdGlvbnMpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICAvLy9EYXRlVGltZVxyXG4gICAgICBjYXNlIFN1cnZleU9wdGlvblR5cGUuRGF0ZS50b0xvY2FsZUxvd2VyQ2FzZSgpOlxyXG4gICAgICBjYXNlIFN1cnZleU9wdGlvblR5cGUuRGF0ZVRpbWUudG9Mb2NhbGVMb3dlckNhc2UoKTpcclxuICAgICAgICB0aGlzLnJlbmRlckNvbXBvbmVudFNlcnZpY2UucmVuZGVyRHluYW1pY0NvbXBvbmVudDxEYXRlSW5wdXRDb21wb25lbnQ+KHZpZXdDb250YWluZXJSZWYsIERhdGVJbnB1dENvbXBvbmVudCwgdGhpcy5ncm91cCwgdGhpcy5vcHRpb25zKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgLy9Ecm9wZG93blxyXG4gICAgICBjYXNlIFN1cnZleU9wdGlvblR5cGUuQ291bnRyeS50b0xvY2FsZUxvd2VyQ2FzZSgpOlxyXG4gICAgICBjYXNlIFN1cnZleU9wdGlvblR5cGUuTXVsdGlwbGVTZWxlY3QudG9Mb2NhbGVMb3dlckNhc2UoKTpcclxuICAgICAgY2FzZSBTdXJ2ZXlPcHRpb25UeXBlLlNpbmdsZVNlbGVjdC50b0xvY2FsZUxvd2VyQ2FzZSgpOlxyXG4gICAgICAgIHRoaXMucmVuZGVyQ29tcG9uZW50U2VydmljZS5yZW5kZXJEeW5hbWljQ29tcG9uZW50PERyb3Bkb3duTGlzdENvbXBvbmVudD4odmlld0NvbnRhaW5lclJlZiwgRHJvcGRvd25MaXN0Q29tcG9uZW50LCB0aGlzLmdyb3VwLCB0aGlzLm9wdGlvbnMpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICAvL0ZpbGVVcGxvYWRcclxuICAgICAgY2FzZSBTdXJ2ZXlPcHRpb25UeXBlLkZpbGUudG9Mb2NhbGVMb3dlckNhc2UoKTpcclxuICAgICAgY2FzZSBTdXJ2ZXlPcHRpb25UeXBlLk11bHRpRmlsZS50b0xvY2FsZUxvd2VyQ2FzZSgpOlxyXG4gICAgICAgIHRoaXMucmVuZGVyQ29tcG9uZW50U2VydmljZS5yZW5kZXJEeW5hbWljQ29tcG9uZW50PEZpbGVVcGxvYWRDb21wb25lbnQ+KHZpZXdDb250YWluZXJSZWYsIEZpbGVVcGxvYWRDb21wb25lbnQsIHRoaXMuZ3JvdXAsIHRoaXMub3B0aW9ucyk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIC8vQm9vbGVhblxyXG4gICAgICBjYXNlIFN1cnZleU9wdGlvblR5cGUuQm9vbGVhbi50b0xvY2FsZUxvd2VyQ2FzZSgpOlxyXG4gICAgICAgIHRoaXMucmVuZGVyQ29tcG9uZW50U2VydmljZS5yZW5kZXJEeW5hbWljQ29tcG9uZW50PFRvZ2dsZXNsaWRlQ29tcG9uZW50Pih2aWV3Q29udGFpbmVyUmVmLCBUb2dnbGVzbGlkZUNvbXBvbmVudCwgdGhpcy5ncm91cCwgdGhpcy5vcHRpb25zKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgLy9NdWx0aWxpbmVUZXh0XHJcbiAgICAgIGNhc2UgU3VydmV5T3B0aW9uVHlwZS5NdWx0aWxpbmVUZXh0LnRvTG9jYWxlTG93ZXJDYXNlKCk6XHJcbiAgICAgICAgdGhpcy5yZW5kZXJDb21wb25lbnRTZXJ2aWNlLnJlbmRlckR5bmFtaWNDb21wb25lbnQ8VGV4dEFyZWFDb21wb25lbnQ+KHZpZXdDb250YWluZXJSZWYsIFRleHRBcmVhQ29tcG9uZW50LCB0aGlzLmdyb3VwLCB0aGlzLm9wdGlvbnMpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFN1cnZleU9wdGlvblR5cGUuSW1hZ2UudG9Mb2NhbGVMb3dlckNhc2UoKTpcclxuICAgICAgICB0aGlzLnJlbmRlckNvbXBvbmVudFNlcnZpY2UucmVuZGVyRHluYW1pY0NvbXBvbmVudDxJbWFnZVVwbG9hZGVyQ29tcG9uZW50Pih2aWV3Q29udGFpbmVyUmVmLCBJbWFnZVVwbG9hZGVyQ29tcG9uZW50LCB0aGlzLmdyb3VwLCB0aGlzLm9wdGlvbnMpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICAvL011bHRpbGluZVRleHRcclxuICAgICAgY2FzZSBTdXJ2ZXlPcHRpb25UeXBlLlJhZGlvQnV0dG9uLnRvTG9jYWxlTG93ZXJDYXNlKCk6XHJcbiAgICAgICAgdGhpcy5yZW5kZXJDb21wb25lbnRTZXJ2aWNlLnJlbmRlckR5bmFtaWNDb21wb25lbnQ8UmFkaW9CdXR0b25Db21wb25lbnQ+KHZpZXdDb250YWluZXJSZWYsIFJhZGlvQnV0dG9uQ29tcG9uZW50LCB0aGlzLmdyb3VwLCB0aGlzLm9wdGlvbnMpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG5cclxuXHJcblxyXG59XHJcbiIsIlxyXG48ZGl2IGNsYXNzPVwic3VydmV5LXByZXZpZXctZGF0YVwiIGlkPVwie3tvcHRpb25zLk5hbWV9fVwiICBbaGlkZGVuXT1cIm9wdGlvbnMuSXNSZWFkb25seVwiPlxyXG4gICAgPHNwYW4gY2xhc3M9XCJxdWVzdGlvbi1udW1iZXJcIiBuZ2JUb29sdGlwPVwiUXVlc3Rpb24gTnVtYmVyXCI+PC9zcGFuPlxyXG4gICAgPGRpdiBjbGFzcz1cInN1cnZleS1wcmV2aWV3LXF1ZXN0aW9uXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJzdXJ2ZXktYW5zd2VyXCI+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlIGFkSG9zdD48L25nLXRlbXBsYXRlPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbiJdfQ==
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VydmV5LWZvcm0taXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLWFkbWluLXBvcnRhbC9zcmMvbGliL1BhZ2VzL3NoYXJlZC9jb21wb25lbnRzL3N1cnZleS1mb3JtLWl0ZW0vc3VydmV5LWZvcm0taXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLWFkbWluLXBvcnRhbC9zcmMvbGliL1BhZ2VzL3NoYXJlZC9jb21wb25lbnRzL3N1cnZleS1mb3JtLWl0ZW0vc3VydmV5LWZvcm0taXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLEtBQUssRUFBVSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEYsT0FBTyxFQUFhLGtCQUFrQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGdCQUFnQixFQUFFLHFCQUFxQixFQUFFLG1CQUFtQixFQUFFLHNCQUFzQixFQUFFLGlCQUFpQixFQUFFLG9CQUFvQixFQUEwQixvQkFBb0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRTFPLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7OztBQVM3QyxNQUFNLE9BQU8sdUJBQXVCO0lBUWxDLFlBQW9CLEVBQWMsRUFDeEIsc0JBQThDLEVBQzlDLGNBQThCLEVBQy9CLGVBQW1DO1FBSHhCLE9BQUUsR0FBRixFQUFFLENBQVk7UUFDeEIsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF3QjtRQUM5QyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDL0Isb0JBQWUsR0FBZixlQUFlLENBQW9CO0lBQ3hDLENBQUM7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QUFzQixDQUF5QixnQkFBZ0IsRUFBRSxzQkFBc0IsRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDL0ksTUFBTTtZQUNSLGVBQWU7WUFDZixLQUFLLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsRUFBRTtnQkFDbkQsSUFBSSxDQUFDLHNCQUFzQixDQUFDLHNCQUFzQixDQUF1QixnQkFBZ0IsRUFBRSxvQkFBb0IsRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDM0ksTUFBTTtZQUNSO2dCQUNFLE1BQU07U0FDVDtJQUVILENBQUM7OEdBL0RVLHVCQUF1QjtrR0FBdkIsdUJBQXVCLHlHQUhyQixDQUFDLGtCQUFrQixDQUFDLGtFQU90QixXQUFXLDhEQ2xCeEIsb1dBVUE7OzJGRElhLHVCQUF1QjtrQkFObkMsU0FBUzsrQkFDSSxrQkFBa0IsYUFFakIsQ0FBQyxrQkFBa0IsQ0FBQyxjQUNuQixLQUFLO2tMQUdWLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNvQyxNQUFNO3NCQUEvQyxTQUFTO3VCQUFDLFdBQVcsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIElucHV0LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAsIEZvcm1Hcm91cERpcmVjdGl2ZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgRGF0ZUlucHV0Q29tcG9uZW50LCBUZXh0Ym94Q29tcG9uZW50LCBEcm9wZG93bkxpc3RDb21wb25lbnQsIEZpbGVVcGxvYWRDb21wb25lbnQsIEltYWdlVXBsb2FkZXJDb21wb25lbnQsIFRleHRBcmVhQ29tcG9uZW50LCBUb2dnbGVzbGlkZUNvbXBvbmVudCwgUmVuZGVyQ29tcG9uZW50U2VydmljZSwgUmFkaW9CdXR0b25Db21wb25lbnQgfSBmcm9tICdAYm5zaWdodHMvYmJzZi1jb250cm9scyc7XHJcbmltcG9ydCB7IFV0aWxpdHlTZXJ2aWNlIH0gZnJvbSAnQGJuc2lnaHRzL2Jic2YtdXRpbGl0aWVzJztcclxuaW1wb3J0IHsgU3VydmV5T3B0aW9uVHlwZSB9IGZyb20gJy4uLy4uL0VudW1zL0VudW1zJztcclxuaW1wb3J0IHsgQWREaXJlY3RpdmUgfSBmcm9tICcuLi9BZERpcmVjdGl2ZSc7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3N1cnZleS1mb3JtX2l0ZW0nLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3N1cnZleS1mb3JtLWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgcHJvdmlkZXJzOiBbRm9ybUdyb3VwRGlyZWN0aXZlXSxcclxuICAgIHN0YW5kYWxvbmU6IGZhbHNlXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTdXJ2ZXlGb3JtSXRlbUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQElucHV0KCkgZ3JvdXA6IEZvcm1Hcm91cDtcclxuICBASW5wdXQoKSBvcHRpb25zOiBhbnk7XHJcbiAgQElucHV0KCkgU2l6ZTogYW55O1xyXG4gIEBWaWV3Q2hpbGQoQWREaXJlY3RpdmUsIHsgc3RhdGljOiB0cnVlIH0pIGFkSG9zdCE6IEFkRGlyZWN0aXZlO1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgcXVlc3Rpb25OdW1iZXI6IG51bWJlcjtcclxuICBwcm9wZXJ0eVR5cGVJRDogc3RyaW5nO1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWw6IEVsZW1lbnRSZWYsXHJcbiAgICBwcml2YXRlIHJlbmRlckNvbXBvbmVudFNlcnZpY2U6IFJlbmRlckNvbXBvbmVudFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHV0aWxpdHlTZXJ2aWNlOiBVdGlsaXR5U2VydmljZSxcclxuICAgIHB1YmxpYyBUZXh0Q29udHJvbEhvc3Q6IEZvcm1Hcm91cERpcmVjdGl2ZSxcclxuICApIHsgfVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgY29uc3Qgdmlld0NvbnRhaW5lclJlZiA9IHRoaXMuYWRIb3N0LnZpZXdDb250YWluZXJSZWY7XHJcbiAgICB2aWV3Q29udGFpbmVyUmVmLmNsZWFyKCk7XHJcbiAgICBsZXQgdmFsdWUgPSB0aGlzLm9wdGlvbnMuTGFiZWxWYWx1ZS5zcGxpdChcIi5cIik7XHJcbiAgICB0aGlzLnRpdGxlID0gdmFsdWVbMF07XHJcbiAgICB0aGlzLnByb3BlcnR5VHlwZUlEID0gdmFsdWVbMV07XHJcbiAgICB0aGlzLm9wdGlvbnMuTGFiZWxWYWx1ZSA9IHRoaXMudGl0bGU7XHJcbiAgICBzd2l0Y2ggKHRoaXMucHJvcGVydHlUeXBlSUQpIHtcclxuICAgICAgLy8vVGV4dEJveFxyXG5cclxuICAgICAgY2FzZSBTdXJ2ZXlPcHRpb25UeXBlLkVtYWlsLnRvTG9jYWxlTG93ZXJDYXNlKCk6XHJcbiAgICAgIGNhc2UgU3VydmV5T3B0aW9uVHlwZS5UZXh0LnRvTG9jYWxlTG93ZXJDYXNlKCk6XHJcbiAgICAgIGNhc2UgU3VydmV5T3B0aW9uVHlwZS5OdW1iZXIudG9Mb2NhbGVMb3dlckNhc2UoKTpcclxuICAgICAgICB0aGlzLnJlbmRlckNvbXBvbmVudFNlcnZpY2UucmVuZGVyRHluYW1pY0NvbXBvbmVudDxUZXh0Ym94Q29tcG9uZW50Pih2aWV3Q29udGFpbmVyUmVmLCBUZXh0Ym94Q29tcG9uZW50LCB0aGlzLmdyb3VwLCB0aGlzLm9wdGlvbnMpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICAvLy9EYXRlVGltZVxyXG4gICAgICBjYXNlIFN1cnZleU9wdGlvblR5cGUuRGF0ZS50b0xvY2FsZUxvd2VyQ2FzZSgpOlxyXG4gICAgICBjYXNlIFN1cnZleU9wdGlvblR5cGUuRGF0ZVRpbWUudG9Mb2NhbGVMb3dlckNhc2UoKTpcclxuICAgICAgICB0aGlzLnJlbmRlckNvbXBvbmVudFNlcnZpY2UucmVuZGVyRHluYW1pY0NvbXBvbmVudDxEYXRlSW5wdXRDb21wb25lbnQ+KHZpZXdDb250YWluZXJSZWYsIERhdGVJbnB1dENvbXBvbmVudCwgdGhpcy5ncm91cCwgdGhpcy5vcHRpb25zKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgLy9Ecm9wZG93blxyXG4gICAgICBjYXNlIFN1cnZleU9wdGlvblR5cGUuQ291bnRyeS50b0xvY2FsZUxvd2VyQ2FzZSgpOlxyXG4gICAgICBjYXNlIFN1cnZleU9wdGlvblR5cGUuTXVsdGlwbGVTZWxlY3QudG9Mb2NhbGVMb3dlckNhc2UoKTpcclxuICAgICAgY2FzZSBTdXJ2ZXlPcHRpb25UeXBlLlNpbmdsZVNlbGVjdC50b0xvY2FsZUxvd2VyQ2FzZSgpOlxyXG4gICAgICAgIHRoaXMucmVuZGVyQ29tcG9uZW50U2VydmljZS5yZW5kZXJEeW5hbWljQ29tcG9uZW50PERyb3Bkb3duTGlzdENvbXBvbmVudD4odmlld0NvbnRhaW5lclJlZiwgRHJvcGRvd25MaXN0Q29tcG9uZW50LCB0aGlzLmdyb3VwLCB0aGlzLm9wdGlvbnMpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICAvL0ZpbGVVcGxvYWRcclxuICAgICAgY2FzZSBTdXJ2ZXlPcHRpb25UeXBlLkZpbGUudG9Mb2NhbGVMb3dlckNhc2UoKTpcclxuICAgICAgY2FzZSBTdXJ2ZXlPcHRpb25UeXBlLk11bHRpRmlsZS50b0xvY2FsZUxvd2VyQ2FzZSgpOlxyXG4gICAgICAgIHRoaXMucmVuZGVyQ29tcG9uZW50U2VydmljZS5yZW5kZXJEeW5hbWljQ29tcG9uZW50PEZpbGVVcGxvYWRDb21wb25lbnQ+KHZpZXdDb250YWluZXJSZWYsIEZpbGVVcGxvYWRDb21wb25lbnQsIHRoaXMuZ3JvdXAsIHRoaXMub3B0aW9ucyk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIC8vQm9vbGVhblxyXG4gICAgICBjYXNlIFN1cnZleU9wdGlvblR5cGUuQm9vbGVhbi50b0xvY2FsZUxvd2VyQ2FzZSgpOlxyXG4gICAgICAgIHRoaXMucmVuZGVyQ29tcG9uZW50U2VydmljZS5yZW5kZXJEeW5hbWljQ29tcG9uZW50PFRvZ2dsZXNsaWRlQ29tcG9uZW50Pih2aWV3Q29udGFpbmVyUmVmLCBUb2dnbGVzbGlkZUNvbXBvbmVudCwgdGhpcy5ncm91cCwgdGhpcy5vcHRpb25zKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgLy9NdWx0aWxpbmVUZXh0XHJcbiAgICAgIGNhc2UgU3VydmV5T3B0aW9uVHlwZS5NdWx0aWxpbmVUZXh0LnRvTG9jYWxlTG93ZXJDYXNlKCk6XHJcbiAgICAgICAgdGhpcy5yZW5kZXJDb21wb25lbnRTZXJ2aWNlLnJlbmRlckR5bmFtaWNDb21wb25lbnQ8VGV4dEFyZWFDb21wb25lbnQ+KHZpZXdDb250YWluZXJSZWYsIFRleHRBcmVhQ29tcG9uZW50LCB0aGlzLmdyb3VwLCB0aGlzLm9wdGlvbnMpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFN1cnZleU9wdGlvblR5cGUuSW1hZ2UudG9Mb2NhbGVMb3dlckNhc2UoKTpcclxuICAgICAgICB0aGlzLnJlbmRlckNvbXBvbmVudFNlcnZpY2UucmVuZGVyRHluYW1pY0NvbXBvbmVudDxJbWFnZVVwbG9hZGVyQ29tcG9uZW50Pih2aWV3Q29udGFpbmVyUmVmLCBJbWFnZVVwbG9hZGVyQ29tcG9uZW50LCB0aGlzLmdyb3VwLCB0aGlzLm9wdGlvbnMpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICAvL011bHRpbGluZVRleHRcclxuICAgICAgY2FzZSBTdXJ2ZXlPcHRpb25UeXBlLlJhZGlvQnV0dG9uLnRvTG9jYWxlTG93ZXJDYXNlKCk6XHJcbiAgICAgICAgdGhpcy5yZW5kZXJDb21wb25lbnRTZXJ2aWNlLnJlbmRlckR5bmFtaWNDb21wb25lbnQ8UmFkaW9CdXR0b25Db21wb25lbnQ+KHZpZXdDb250YWluZXJSZWYsIFJhZGlvQnV0dG9uQ29tcG9uZW50LCB0aGlzLmdyb3VwLCB0aGlzLm9wdGlvbnMpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG5cclxuXHJcblxyXG59XHJcbiIsIlxyXG48ZGl2IGNsYXNzPVwic3VydmV5LXByZXZpZXctZGF0YVwiIGlkPVwie3tvcHRpb25zLk5hbWV9fVwiICBbaGlkZGVuXT1cIm9wdGlvbnMuSXNSZWFkb25seVwiPlxyXG4gICAgPHNwYW4gY2xhc3M9XCJxdWVzdGlvbi1udW1iZXJcIiBuZ2JUb29sdGlwPVwiUXVlc3Rpb24gTnVtYmVyXCI+PC9zcGFuPlxyXG4gICAgPGRpdiBjbGFzcz1cInN1cnZleS1wcmV2aWV3LXF1ZXN0aW9uXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJzdXJ2ZXktYW5zd2VyXCI+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlIGFkSG9zdD48L25nLXRlbXBsYXRlPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbiJdfQ==
@@ -5,11 +5,11 @@ export class SurveyLayoutComponent {
5
5
  constructor() { }
6
6
  ngOnInit() {
7
7
  }
8
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SurveyLayoutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
9
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: SurveyLayoutComponent, selector: "lib-survey-layout", ngImport: i0, template: "<router-outlet></router-outlet>", styles: [""], dependencies: [{ kind: "directive", type: i1.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }] }); }
8
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: SurveyLayoutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
9
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.6", type: SurveyLayoutComponent, selector: "lib-survey-layout", ngImport: i0, template: "<router-outlet></router-outlet>", styles: [""], dependencies: [{ kind: "directive", type: i1.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }] }); }
10
10
  }
11
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SurveyLayoutComponent, decorators: [{
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: SurveyLayoutComponent, decorators: [{
12
12
  type: Component,
13
- args: [{ selector: 'lib-survey-layout', template: "<router-outlet></router-outlet>" }]
13
+ args: [{ selector: 'lib-survey-layout', standalone: false, template: "<router-outlet></router-outlet>" }]
14
14
  }], ctorParameters: () => [] });
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VydmV5LWxheW91dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLWFkbWluLXBvcnRhbC9zcmMvbGliL1BhZ2VzL3NoYXJlZC9jb21wb25lbnRzL3N1cnZleS1sYXlvdXQvc3VydmV5LWxheW91dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLWFkbWluLXBvcnRhbC9zcmMvbGliL1BhZ2VzL3NoYXJlZC9jb21wb25lbnRzL3N1cnZleS1sYXlvdXQvc3VydmV5LWxheW91dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDOzs7QUFPbEQsTUFBTSxPQUFPLHFCQUFxQjtJQUVoQyxnQkFBZ0IsQ0FBQztJQUVqQixRQUFRO0lBQ1IsQ0FBQzsrR0FMVSxxQkFBcUI7bUdBQXJCLHFCQUFxQix5RENQbEMsaUNBQStCOzs0RkRPbEIscUJBQXFCO2tCQUxqQyxTQUFTOytCQUNFLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1zdXJ2ZXktbGF5b3V0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc3VydmV5LWxheW91dC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vc3VydmV5LWxheW91dC5jb21wb25lbnQuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFN1cnZleUxheW91dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPHJvdXRlci1vdXRsZXQ+PC9yb3V0ZXItb3V0bGV0PiJdfQ==
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VydmV5LWxheW91dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLWFkbWluLXBvcnRhbC9zcmMvbGliL1BhZ2VzL3NoYXJlZC9jb21wb25lbnRzL3N1cnZleS1sYXlvdXQvc3VydmV5LWxheW91dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLWFkbWluLXBvcnRhbC9zcmMvbGliL1BhZ2VzL3NoYXJlZC9jb21wb25lbnRzL3N1cnZleS1sYXlvdXQvc3VydmV5LWxheW91dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDOzs7QUFRbEQsTUFBTSxPQUFPLHFCQUFxQjtJQUVoQyxnQkFBZ0IsQ0FBQztJQUVqQixRQUFRO0lBQ1IsQ0FBQzs4R0FMVSxxQkFBcUI7a0dBQXJCLHFCQUFxQix5RENSbEMsaUNBQStCOzsyRkRRbEIscUJBQXFCO2tCQU5qQyxTQUFTOytCQUNJLG1CQUFtQixjQUdqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdsaWItc3VydmV5LWxheW91dCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vc3VydmV5LWxheW91dC5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9zdXJ2ZXktbGF5b3V0LmNvbXBvbmVudC5jc3MnXSxcclxuICAgIHN0YW5kYWxvbmU6IGZhbHNlXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTdXJ2ZXlMYXlvdXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICB9XHJcblxyXG59XHJcbiIsIjxyb3V0ZXItb3V0bGV0Pjwvcm91dGVyLW91dGxldD4iXX0=
@@ -8,10 +8,10 @@ export class ConfigService {
8
8
  resourceApiURI() {
9
9
  return 'http://localhost:5050/api';
10
10
  }
11
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ConfigService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
12
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ConfigService }); }
11
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: ConfigService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
12
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: ConfigService }); }
13
13
  }
14
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ConfigService, decorators: [{
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: ConfigService, decorators: [{
15
15
  type: Injectable
16
16
  }], ctorParameters: () => [] });
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLWFkbWluLXBvcnRhbC9zcmMvbGliL1BhZ2VzL3NoYXJlZC9jb25maWcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUczQyxNQUFNLE9BQU8sYUFBYTtJQUV0QixnQkFBZSxDQUFDO0lBRWYsVUFBVTtRQUNQLE9BQU8sNkJBQTZCLENBQUM7SUFDekMsQ0FBQztJQUVBLGNBQWM7UUFDWCxPQUFPLDJCQUEyQixDQUFDO0lBQ3ZDLENBQUM7K0dBVlEsYUFBYTttSEFBYixhQUFhOzs0RkFBYixhQUFhO2tCQUR6QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG4gXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIENvbmZpZ1NlcnZpY2UgeyAgICBcclxuXHJcbiAgICBjb25zdHJ1Y3RvcigpIHt9XHJcblxyXG4gICAgIGF1dGhBcGlVUkkoKSB7XHJcbiAgICAgICAgcmV0dXJuICdodHRwczovL2xvY2FsaG9zdDo0NDMzNS9hcGknO1xyXG4gICAgfSAgICBcclxuICAgICBcclxuICAgICByZXNvdXJjZUFwaVVSSSgpIHtcclxuICAgICAgICByZXR1cm4gJ2h0dHA6Ly9sb2NhbGhvc3Q6NTA1MC9hcGknO1xyXG4gICAgfSAgXHJcbn0iXX0=
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLWFkbWluLXBvcnRhbC9zcmMvbGliL1BhZ2VzL3NoYXJlZC9jb25maWcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUczQyxNQUFNLE9BQU8sYUFBYTtJQUV0QixnQkFBZSxDQUFDO0lBRWYsVUFBVTtRQUNQLE9BQU8sNkJBQTZCLENBQUM7SUFDekMsQ0FBQztJQUVBLGNBQWM7UUFDWCxPQUFPLDJCQUEyQixDQUFDO0lBQ3ZDLENBQUM7OEdBVlEsYUFBYTtrSEFBYixhQUFhOzsyRkFBYixhQUFhO2tCQUR6QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG4gXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIENvbmZpZ1NlcnZpY2UgeyAgICBcclxuXHJcbiAgICBjb25zdHJ1Y3RvcigpIHt9XHJcblxyXG4gICAgIGF1dGhBcGlVUkkoKSB7XHJcbiAgICAgICAgcmV0dXJuICdodHRwczovL2xvY2FsaG9zdDo0NDMzNS9hcGknO1xyXG4gICAgfSAgICBcclxuICAgICBcclxuICAgICByZXNvdXJjZUFwaVVSSSgpIHtcclxuICAgICAgICByZXR1cm4gJ2h0dHA6Ly9sb2NhbGhvc3Q6NTA1MC9hcGknO1xyXG4gICAgfSAgXHJcbn0iXX0=