@reusa/ngx-reusa-app-lib 0.0.1361 → 0.0.1363

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 (536) hide show
  1. package/esm2022/lib/components/add-employer/add-employer.component.mjs +1324 -2388
  2. package/esm2022/lib/components/add-participant/add-participant.component.mjs +105 -159
  3. package/esm2022/lib/components/add-payment/add-payment.component.mjs +53 -59
  4. package/esm2022/lib/components/address/address.component.mjs +150 -285
  5. package/esm2022/lib/components/bank-details/bank-details.component.mjs +219 -79
  6. package/esm2022/lib/components/contact-us/contact-us.component.mjs +43 -17
  7. package/esm2022/lib/components/correspondence-download/correspondence-download.component.mjs +9 -3
  8. package/esm2022/lib/components/dashboard-card/dashboard-card.component.mjs +4 -32
  9. package/esm2022/lib/components/dependent-grid/dependent-grid.component.mjs +15 -30
  10. package/esm2022/lib/components/disclosure/disclosure.component.mjs +1 -1
  11. package/esm2022/lib/components/dropdown/dropdown.component.mjs +4 -4
  12. package/esm2022/lib/components/dropdown/dropdown.interface.mjs +1 -1
  13. package/esm2022/lib/components/email-update/email-update.component.mjs +140 -63
  14. package/esm2022/lib/components/employer-grid/employer-grid.component.mjs +574 -422
  15. package/esm2022/lib/components/error/error.component.mjs +5 -22
  16. package/esm2022/lib/components/fav-menu/fav-menu.component.mjs +1 -1
  17. package/esm2022/lib/components/file-uploader/file-uploader.component.mjs +49 -178
  18. package/esm2022/lib/components/footer/footer.component.mjs +101 -112
  19. package/esm2022/lib/components/header/header.component.mjs +174 -440
  20. package/esm2022/lib/components/idle-detector/idle-detector.component.mjs +36 -25
  21. package/esm2022/lib/components/info/info.component.mjs +12 -4
  22. package/esm2022/lib/components/job-search-result-page/job-search-result-page.component.mjs +22 -16
  23. package/esm2022/lib/components/job-title/job-title.component.mjs +97 -92
  24. package/esm2022/lib/components/legal-disclaimar/legal-disclaimar.component.mjs +513 -143
  25. package/esm2022/lib/components/lexis-nexis/lexis-nexis.component.mjs +402 -0
  26. package/esm2022/lib/components/link/link.component.mjs +1 -1
  27. package/esm2022/lib/components/menu/menu.component.mjs +100 -68
  28. package/esm2022/lib/components/mfa/mfa.component.mjs +287 -158
  29. package/esm2022/lib/components/mfa-popup/mfa-popup.component.mjs +18 -11
  30. package/esm2022/lib/components/mfa2/mfa2.component.mjs +285 -0
  31. package/esm2022/lib/components/money-expect/money-expect.component.mjs +54 -158
  32. package/esm2022/lib/components/profile/profile.component.mjs +353 -749
  33. package/esm2022/lib/components/profile-redirect/profile-redirect.component.mjs +38 -108
  34. package/esm2022/lib/components/questionnaire/AppValidators.mjs +47 -296
  35. package/esm2022/lib/components/questionnaire/account-success/account-success.page.mjs +65 -110
  36. package/esm2022/lib/components/questionnaire/common-success/common-success.page.mjs +173 -377
  37. package/esm2022/lib/components/questionnaire/dynamic-form-panel.component.mjs +95 -76
  38. package/esm2022/lib/components/questionnaire/dynamic-form-question.component.mjs +1142 -878
  39. package/esm2022/lib/components/questionnaire/dynamic-form.component.mjs +667 -207
  40. package/esm2022/lib/components/questionnaire/form-builder/form-builder.page.mjs +22 -28
  41. package/esm2022/lib/components/questionnaire/multi-questionnaire/multi-questionnaire.component.mjs +41 -128
  42. package/esm2022/lib/components/questionnaire/question-control.service.mjs +1 -2
  43. package/esm2022/lib/components/questionnaire/question.service.mjs +7 -5
  44. package/esm2022/lib/components/questionnaire/render-questionnaire/render-questionnaire.page.mjs +29 -15
  45. package/esm2022/lib/components/requalify-lift-previous-issues/requalify-lift-previous-issues.component.mjs +237 -497
  46. package/esm2022/lib/components/search-employer/search-employer.component.mjs +30 -155
  47. package/esm2022/lib/components/security-question/security-question.component.mjs +199 -0
  48. package/esm2022/lib/components/select/select.component.mjs +10 -5
  49. package/esm2022/lib/components/sign-ssn/sign-ssn.component.mjs +3 -3
  50. package/esm2022/lib/components/ssn-reverify/ssn-reverify.component.mjs +72 -52
  51. package/esm2022/lib/components/user-login/user-login.component.mjs +357 -139
  52. package/esm2022/lib/components/weekly-cert-employer/weekly-cert-employer.component.mjs +272 -622
  53. package/esm2022/lib/components/weekly-cert-employer-grid/weekly-cert-employer-grid.component.mjs +61 -125
  54. package/esm2022/lib/guards/auth.guard.mjs +2 -50
  55. package/esm2022/lib/guards/no-login/no-login.guard.mjs +1 -1
  56. package/esm2022/lib/interceptors/error-interceptor/http-error-interceptor.mjs +3 -51
  57. package/esm2022/lib/interceptors/header-interceptor/http-header.interceptor.mjs +1 -1
  58. package/esm2022/lib/models/EmployerDetailSearchResult.mjs +1 -1
  59. package/esm2022/lib/models/LexisNexisAccountCreationModel.mjs +2 -0
  60. package/esm2022/lib/models/LexisNexisAuthSelectionRequestModel.mjs +2 -0
  61. package/esm2022/lib/models/LexisNexisAuthSelectionResponseModel.mjs +2 -0
  62. package/esm2022/lib/models/LexisNexisEnabledResponseModel.mjs +2 -0
  63. package/esm2022/lib/models/LexisNexisResponseModel.mjs +3 -0
  64. package/esm2022/lib/models/LibConstants.mjs +6 -45
  65. package/esm2022/lib/models/PartialEmploymentModel.mjs +3 -0
  66. package/esm2022/lib/models/PaymentComponentModel.mjs +1 -1
  67. package/esm2022/lib/models/SecurityQuestionModel.mjs +3 -0
  68. package/esm2022/lib/models/dashboard-model.mjs +1 -1
  69. package/esm2022/lib/models/dependent.model.mjs +1 -1
  70. package/esm2022/lib/models/questionnaire/ClaimAppEmpResponseModel.mjs +1 -1
  71. package/esm2022/lib/models/questionnaire/ClaimAppEmployerDetailsModel.mjs +1 -2
  72. package/esm2022/lib/models/questionnaire/ClaimOnlyEmployerDataModel.mjs +1 -1
  73. package/esm2022/lib/models/questionnaire/ComboModel.mjs +653 -96
  74. package/esm2022/lib/models/questionnaire/ElementsModel.mjs +1 -1
  75. package/esm2022/lib/models/questionnaire/LegalDiscaimarModel.mjs +1 -1
  76. package/esm2022/lib/models/questionnaire/StatusModel.mjs +1 -1
  77. package/esm2022/lib/ngx-reusa-app-lib.module.mjs +23 -135
  78. package/esm2022/lib/pages/BasePage.mjs +23 -4
  79. package/esm2022/lib/pages/common/accessibility-policy/accessibility-policy.page.mjs +18 -22
  80. package/esm2022/lib/pages/common/change-password/change-password.page.mjs +124 -142
  81. package/esm2022/lib/pages/common/landing/landing.component.mjs +8 -7
  82. package/esm2022/lib/pages/common/landing2/landing2.component.mjs +4 -4
  83. package/esm2022/lib/pages/common/login/login.component.mjs +11 -7
  84. package/esm2022/lib/pages/common/privacy-disclaimer/privacy-disclaimer.page.mjs +14 -14
  85. package/esm2022/lib/pages/common/security-policy/security-policy.page.mjs +5 -5
  86. package/esm2022/lib/pages/popovers/language/language.page.mjs +2 -1
  87. package/esm2022/lib/pages/popovers/my-notifications/my-notifications.page.mjs +4 -4
  88. package/esm2022/lib/pages/popovers/my-profile/my-profile.page.mjs +2 -7
  89. package/esm2022/lib/pipes/translate/dynamic-translate.pipe.mjs +2 -2
  90. package/esm2022/lib/services/base-service.mjs +1 -4
  91. package/esm2022/lib/services/chatbot/chatbot.service.mjs +2 -1
  92. package/esm2022/lib/services/claimant-service/claimant-usps-redirect.service.mjs +36 -0
  93. package/esm2022/lib/services/claimant-service/claimant.service.mjs +13 -7
  94. package/esm2022/lib/services/claims/claims.service.mjs +14 -105
  95. package/esm2022/lib/services/help/help.service.mjs +1 -1
  96. package/esm2022/lib/services/lexis-nexis/lexis.nexis.service.mjs +60 -0
  97. package/esm2022/lib/services/logger/logger.service.mjs +1 -1
  98. package/esm2022/lib/services/login/login.service.mjs +11 -29
  99. package/esm2022/lib/services/ovp/ovp.service.mjs +43 -0
  100. package/esm2022/lib/services/questionnaire/questionnaire.service.mjs +1 -4
  101. package/esm2022/lib/services/questionnaire/validation.service.mjs +1 -4
  102. package/esm2022/lib/services/security-service/security.service.mjs +6 -23
  103. package/esm2022/lib/services/util/util.service.mjs +5 -61
  104. package/esm2022/lib/services/weekly-cert/weekly-cert-v2.service.mjs +14 -186
  105. package/esm2022/lib/validations/AppRegex.mjs +3 -1
  106. package/esm2022/lib/validations/AppValidators.mjs +62 -78
  107. package/esm2022/public-api.mjs +5 -47
  108. package/fesm2022/reusa-ngx-reusa-app-lib.mjs +26883 -44887
  109. package/fesm2022/reusa-ngx-reusa-app-lib.mjs.map +1 -1
  110. package/lib/components/add-employer/add-employer.component.d.ts +53 -137
  111. package/lib/components/add-employer/add-employer.component.d.ts.map +1 -1
  112. package/lib/components/add-participant/add-participant.component.d.ts +5 -11
  113. package/lib/components/add-participant/add-participant.component.d.ts.map +1 -1
  114. package/lib/components/add-payment/add-payment.component.d.ts +3 -9
  115. package/lib/components/add-payment/add-payment.component.d.ts.map +1 -1
  116. package/lib/components/address/address.component.d.ts +15 -42
  117. package/lib/components/address/address.component.d.ts.map +1 -1
  118. package/lib/components/bank-details/bank-details.component.d.ts +23 -1
  119. package/lib/components/bank-details/bank-details.component.d.ts.map +1 -1
  120. package/lib/components/contact-us/contact-us.component.d.ts +4 -1
  121. package/lib/components/contact-us/contact-us.component.d.ts.map +1 -1
  122. package/lib/components/correspondence-download/correspondence-download.component.d.ts.map +1 -1
  123. package/lib/components/dashboard-card/dashboard-card.component.d.ts.map +1 -1
  124. package/lib/components/email-update/email-update.component.d.ts +12 -1
  125. package/lib/components/email-update/email-update.component.d.ts.map +1 -1
  126. package/lib/components/employer-grid/employer-grid.component.d.ts +15 -25
  127. package/lib/components/employer-grid/employer-grid.component.d.ts.map +1 -1
  128. package/lib/components/error/error.component.d.ts +2 -3
  129. package/lib/components/error/error.component.d.ts.map +1 -1
  130. package/lib/components/file-uploader/file-uploader.component.d.ts +1 -5
  131. package/lib/components/file-uploader/file-uploader.component.d.ts.map +1 -1
  132. package/lib/components/footer/footer.component.d.ts.map +1 -1
  133. package/lib/components/header/header.component.d.ts +5 -17
  134. package/lib/components/header/header.component.d.ts.map +1 -1
  135. package/lib/components/job-search-result-page/job-search-result-page.component.d.ts +3 -1
  136. package/lib/components/job-search-result-page/job-search-result-page.component.d.ts.map +1 -1
  137. package/lib/components/job-title/job-title.component.d.ts +23 -22
  138. package/lib/components/job-title/job-title.component.d.ts.map +1 -1
  139. package/lib/components/legal-disclaimar/legal-disclaimar.component.d.ts +6 -5
  140. package/lib/components/legal-disclaimar/legal-disclaimar.component.d.ts.map +1 -1
  141. package/lib/components/lexis-nexis/lexis-nexis.component.d.ts +59 -0
  142. package/lib/components/lexis-nexis/lexis-nexis.component.d.ts.map +1 -0
  143. package/lib/components/menu/menu.component.d.ts +12 -3
  144. package/lib/components/menu/menu.component.d.ts.map +1 -1
  145. package/lib/components/mfa/mfa.component.d.ts +19 -7
  146. package/lib/components/mfa/mfa.component.d.ts.map +1 -1
  147. package/lib/components/mfa-popup/mfa-popup.component.d.ts +8 -6
  148. package/lib/components/mfa-popup/mfa-popup.component.d.ts.map +1 -1
  149. package/lib/components/mfa2/mfa2.component.d.ts +48 -0
  150. package/lib/components/mfa2/mfa2.component.d.ts.map +1 -0
  151. package/lib/components/money-expect/money-expect.component.d.ts +4 -15
  152. package/lib/components/money-expect/money-expect.component.d.ts.map +1 -1
  153. package/lib/components/profile/profile.component.d.ts +49 -82
  154. package/lib/components/profile/profile.component.d.ts.map +1 -1
  155. package/lib/components/profile-redirect/profile-redirect.component.d.ts +2 -9
  156. package/lib/components/profile-redirect/profile-redirect.component.d.ts.map +1 -1
  157. package/lib/components/questionnaire/AppValidators.d.ts +0 -1
  158. package/lib/components/questionnaire/AppValidators.d.ts.map +1 -1
  159. package/lib/components/questionnaire/account-success/account-success.page.d.ts +10 -13
  160. package/lib/components/questionnaire/account-success/account-success.page.d.ts.map +1 -1
  161. package/lib/components/questionnaire/common-success/common-success.page.d.ts +1 -7
  162. package/lib/components/questionnaire/common-success/common-success.page.d.ts.map +1 -1
  163. package/lib/components/questionnaire/dynamic-form-panel.component.d.ts +1 -3
  164. package/lib/components/questionnaire/dynamic-form-panel.component.d.ts.map +1 -1
  165. package/lib/components/questionnaire/dynamic-form-question.component.d.ts +34 -33
  166. package/lib/components/questionnaire/dynamic-form-question.component.d.ts.map +1 -1
  167. package/lib/components/questionnaire/dynamic-form.component.d.ts +34 -10
  168. package/lib/components/questionnaire/dynamic-form.component.d.ts.map +1 -1
  169. package/lib/components/questionnaire/form-builder/form-builder.page.d.ts +7 -0
  170. package/lib/components/questionnaire/form-builder/form-builder.page.d.ts.map +1 -1
  171. package/lib/components/questionnaire/multi-questionnaire/multi-questionnaire.component.d.ts +1 -7
  172. package/lib/components/questionnaire/multi-questionnaire/multi-questionnaire.component.d.ts.map +1 -1
  173. package/lib/components/questionnaire/question-control.service.d.ts.map +1 -1
  174. package/lib/components/questionnaire/question.service.d.ts +1 -0
  175. package/lib/components/questionnaire/question.service.d.ts.map +1 -1
  176. package/lib/components/questionnaire/render-questionnaire/render-questionnaire.page.d.ts +7 -1
  177. package/lib/components/questionnaire/render-questionnaire/render-questionnaire.page.d.ts.map +1 -1
  178. package/lib/components/requalify-lift-previous-issues/requalify-lift-previous-issues.component.d.ts +3 -11
  179. package/lib/components/requalify-lift-previous-issues/requalify-lift-previous-issues.component.d.ts.map +1 -1
  180. package/lib/components/search-employer/search-employer.component.d.ts +4 -5
  181. package/lib/components/search-employer/search-employer.component.d.ts.map +1 -1
  182. package/lib/components/security-question/security-question.component.d.ts +37 -0
  183. package/lib/components/security-question/security-question.component.d.ts.map +1 -0
  184. package/lib/components/ssn-reverify/ssn-reverify.component.d.ts +5 -1
  185. package/lib/components/ssn-reverify/ssn-reverify.component.d.ts.map +1 -1
  186. package/lib/components/user-login/user-login.component.d.ts +38 -5
  187. package/lib/components/user-login/user-login.component.d.ts.map +1 -1
  188. package/lib/components/weekly-cert-employer/weekly-cert-employer.component.d.ts +10 -27
  189. package/lib/components/weekly-cert-employer/weekly-cert-employer.component.d.ts.map +1 -1
  190. package/lib/components/weekly-cert-employer-grid/weekly-cert-employer-grid.component.d.ts +3 -9
  191. package/lib/components/weekly-cert-employer-grid/weekly-cert-employer-grid.component.d.ts.map +1 -1
  192. package/lib/guards/auth.guard.d.ts.map +1 -1
  193. package/lib/interceptors/error-interceptor/http-error-interceptor.d.ts.map +1 -1
  194. package/lib/models/EmployerDetailSearchResult.d.ts +1 -4
  195. package/lib/models/EmployerDetailSearchResult.d.ts.map +1 -1
  196. package/lib/models/LexisNexisAccountCreationModel.d.ts +15 -0
  197. package/lib/models/LexisNexisAccountCreationModel.d.ts.map +1 -0
  198. package/lib/models/LexisNexisAuthSelectionRequestModel.d.ts +16 -0
  199. package/lib/models/LexisNexisAuthSelectionRequestModel.d.ts.map +1 -0
  200. package/lib/models/LexisNexisAuthSelectionResponseModel.d.ts +39 -0
  201. package/lib/models/LexisNexisAuthSelectionResponseModel.d.ts.map +1 -0
  202. package/lib/models/LexisNexisEnabledResponseModel.d.ts +5 -0
  203. package/lib/models/LexisNexisEnabledResponseModel.d.ts.map +1 -0
  204. package/lib/models/LexisNexisResponseModel.d.ts +7 -0
  205. package/lib/models/LexisNexisResponseModel.d.ts.map +1 -0
  206. package/lib/models/LibConstants.d.ts +1 -40
  207. package/lib/models/LibConstants.d.ts.map +1 -1
  208. package/lib/models/PartialEmploymentModel.d.ts +6 -0
  209. package/lib/models/PartialEmploymentModel.d.ts.map +1 -0
  210. package/lib/models/PaymentComponentModel.d.ts +1 -1
  211. package/lib/models/PaymentComponentModel.d.ts.map +1 -1
  212. package/lib/models/SecurityQuestionModel.d.ts +7 -0
  213. package/lib/models/SecurityQuestionModel.d.ts.map +1 -0
  214. package/lib/models/dashboard-model.d.ts +0 -22
  215. package/lib/models/dashboard-model.d.ts.map +1 -1
  216. package/lib/models/questionnaire/ClaimAppEmpResponseModel.d.ts +0 -3
  217. package/lib/models/questionnaire/ClaimAppEmpResponseModel.d.ts.map +1 -1
  218. package/lib/models/questionnaire/ClaimAppEmployerDetailsModel.d.ts +4 -15
  219. package/lib/models/questionnaire/ClaimAppEmployerDetailsModel.d.ts.map +1 -1
  220. package/lib/models/questionnaire/ClaimOnlyEmployerDataModel.d.ts +1 -4
  221. package/lib/models/questionnaire/ClaimOnlyEmployerDataModel.d.ts.map +1 -1
  222. package/lib/models/questionnaire/ComboModel.d.ts +82 -14
  223. package/lib/models/questionnaire/ComboModel.d.ts.map +1 -1
  224. package/lib/models/questionnaire/ElementsModel.d.ts +1 -0
  225. package/lib/models/questionnaire/ElementsModel.d.ts.map +1 -1
  226. package/lib/models/questionnaire/LegalDiscaimarModel.d.ts +0 -2
  227. package/lib/models/questionnaire/LegalDiscaimarModel.d.ts.map +1 -1
  228. package/lib/models/questionnaire/StatusModel.d.ts +0 -1
  229. package/lib/models/questionnaire/StatusModel.d.ts.map +1 -1
  230. package/lib/ngx-reusa-app-lib.module.d.ts +86 -124
  231. package/lib/ngx-reusa-app-lib.module.d.ts.map +1 -1
  232. package/lib/pages/BasePage.d.ts +6 -3
  233. package/lib/pages/BasePage.d.ts.map +1 -1
  234. package/lib/pages/common/change-password/change-password.page.d.ts +0 -3
  235. package/lib/pages/common/change-password/change-password.page.d.ts.map +1 -1
  236. package/lib/pages/common/login/login.component.d.ts.map +1 -1
  237. package/lib/pages/popovers/language/language.page.d.ts.map +1 -1
  238. package/lib/pages/popovers/my-profile/my-profile.page.d.ts.map +1 -1
  239. package/lib/services/base-service.d.ts +0 -12
  240. package/lib/services/base-service.d.ts.map +1 -1
  241. package/lib/services/claimant-service/claimant-usps-redirect.service.d.ts +16 -0
  242. package/lib/services/claimant-service/claimant-usps-redirect.service.d.ts.map +1 -0
  243. package/lib/services/claimant-service/claimant.service.d.ts +6 -5
  244. package/lib/services/claimant-service/claimant.service.d.ts.map +1 -1
  245. package/lib/services/claims/claims.service.d.ts +5 -39
  246. package/lib/services/claims/claims.service.d.ts.map +1 -1
  247. package/lib/services/lexis-nexis/lexis.nexis.service.d.ts +26 -0
  248. package/lib/services/lexis-nexis/lexis.nexis.service.d.ts.map +1 -0
  249. package/lib/services/login/login.service.d.ts +3 -5
  250. package/lib/services/login/login.service.d.ts.map +1 -1
  251. package/lib/services/ovp/ovp.service.d.ts +17 -0
  252. package/lib/services/ovp/ovp.service.d.ts.map +1 -0
  253. package/lib/services/questionnaire/questionnaire.service.d.ts +0 -1
  254. package/lib/services/questionnaire/questionnaire.service.d.ts.map +1 -1
  255. package/lib/services/questionnaire/validation.service.d.ts +0 -3
  256. package/lib/services/questionnaire/validation.service.d.ts.map +1 -1
  257. package/lib/services/security-service/security.service.d.ts +4 -12
  258. package/lib/services/security-service/security.service.d.ts.map +1 -1
  259. package/lib/services/util/util.service.d.ts +0 -6
  260. package/lib/services/util/util.service.d.ts.map +1 -1
  261. package/lib/services/weekly-cert/weekly-cert-v2.service.d.ts +5 -47
  262. package/lib/services/weekly-cert/weekly-cert-v2.service.d.ts.map +1 -1
  263. package/lib/validations/AppRegex.d.ts +2 -0
  264. package/lib/validations/AppRegex.d.ts.map +1 -1
  265. package/lib/validations/AppValidators.d.ts +24 -20
  266. package/lib/validations/AppValidators.d.ts.map +1 -1
  267. package/package.json +2 -2
  268. package/public-api.d.ts +4 -46
  269. package/public-api.d.ts.map +1 -1
  270. package/esm2022/lib/components/add-wage/add-wage.component.mjs +0 -161
  271. package/esm2022/lib/components/address-popup/address-popup.component.mjs +0 -97
  272. package/esm2022/lib/components/address-suggestion/address-suggestion.component.mjs +0 -289
  273. package/esm2022/lib/components/appointment-self-scheduler/appointment-self-scheduler.component.mjs +0 -245
  274. package/esm2022/lib/components/associate-ssn/associate-ssn.component.mjs +0 -203
  275. package/esm2022/lib/components/claim-info/claim-info.component.mjs +0 -408
  276. package/esm2022/lib/components/dua-request-page/dua-request-page.component.mjs +0 -596
  277. package/esm2022/lib/components/dua-request-popup/dua-request-popup.component.mjs +0 -356
  278. package/esm2022/lib/components/employer-info/employer-info.component.mjs +0 -319
  279. package/esm2022/lib/components/employer-pay/employer-pay.component.mjs +0 -238
  280. package/esm2022/lib/components/employer-pay-grid/employer-pay-grid.component.mjs +0 -302
  281. package/esm2022/lib/components/farm-usage/farm-usage.component.mjs +0 -172
  282. package/esm2022/lib/components/gross-earnings/gross-earnings.component.mjs +0 -201
  283. package/esm2022/lib/components/history-page/history-page.component.mjs +0 -571
  284. package/esm2022/lib/components/idme/idme.component.mjs +0 -84
  285. package/esm2022/lib/components/offline-add-employer/offline-add-employer.component.mjs +0 -3661
  286. package/esm2022/lib/components/offline-bank-details/offline-bank-details.component.mjs +0 -258
  287. package/esm2022/lib/components/offline-employer-grid/offline-employer-grid.component.mjs +0 -853
  288. package/esm2022/lib/components/offline-legal-disclaimar/offline-legal-disclaimar.component.mjs +0 -251
  289. package/esm2022/lib/components/proof-of-anything/proof-of-anything.component.mjs +0 -261
  290. package/esm2022/lib/components/proof-of-document-upload/proof-of-document-upload.component.mjs +0 -560
  291. package/esm2022/lib/components/scrollable-text/scrollable-text.component.mjs +0 -25
  292. package/esm2022/lib/components/sms/sms.component.mjs +0 -336
  293. package/esm2022/lib/components/wage-calculator/wage-calculator.component.mjs +0 -527
  294. package/esm2022/lib/components/wage-grid/wage-grid.component.mjs +0 -274
  295. package/esm2022/lib/components/weekly-acknowledgement-ms/acknowledgement-ms.component.mjs +0 -147
  296. package/esm2022/lib/components/weekly-acknowledgement-v2/acknowledgement.component-v2.mjs +0 -167
  297. package/esm2022/lib/components/weekly-certification/weekly-certification.component.mjs +0 -828
  298. package/esm2022/lib/components/weekly-confirmation/confirmation.component.mjs +0 -129
  299. package/esm2022/lib/components/weekly-interim-confirmation/interim-confirmation.component.mjs +0 -136
  300. package/esm2022/lib/components/weekly-summary-v2/summary.component-v2.mjs +0 -72
  301. package/esm2022/lib/components/weekly-work-performed-popup/weekly-work-performed-popup.component.mjs +0 -50
  302. package/esm2022/lib/components/weekly-work-search-counter/work-search-counter.component.mjs +0 -92
  303. package/esm2022/lib/components/weekly-work-search-employer-me/work-search-employer.component-me.mjs +0 -1190
  304. package/esm2022/lib/components/weekly-work-search-employer-ms/work-search-employer-ms.component.mjs +0 -690
  305. package/esm2022/lib/components/weekly-work-search-employer-v2/work-search-employer.component-v2.mjs +0 -524
  306. package/esm2022/lib/components/weekly-work-search-journal/weekly-work-search-journal.component.mjs +0 -394
  307. package/esm2022/lib/components/weekly-work-search-question-v2/work-search-question.component-v2.mjs +0 -640
  308. package/esm2022/lib/directives/strip-invisible-characters/strip-invisible-characters.directive.mjs +0 -33
  309. package/esm2022/lib/enums/AddressValidationResponseEnum.mjs +0 -9
  310. package/esm2022/lib/enums/AddressValidationSourceFunctionEnum.mjs +0 -5
  311. package/esm2022/lib/models/ActiveClaimModel.mjs +0 -3
  312. package/esm2022/lib/models/CountyModel.mjs +0 -3
  313. package/esm2022/lib/models/DuaAppDataModel.mjs +0 -3
  314. package/esm2022/lib/models/DuaRequestModel.mjs +0 -3
  315. package/esm2022/lib/models/DuaRetroWeeksComponentModel.mjs +0 -6
  316. package/esm2022/lib/models/EmployerInfoComponentModel.mjs +0 -4
  317. package/esm2022/lib/models/EmployerPayInfoModel.mjs +0 -6
  318. package/esm2022/lib/models/FarmUsageComponentModel.mjs +0 -2
  319. package/esm2022/lib/models/GrossEarningsModel.mjs +0 -3
  320. package/esm2022/lib/models/HelpConstants.mjs +0 -5
  321. package/esm2022/lib/models/LexisNexisOtpDetailsResponseModel.mjs +0 -3
  322. package/esm2022/lib/models/ReasonSeparationRequestModel.mjs +0 -3
  323. package/esm2022/lib/models/RetroWeeksModel.mjs +0 -3
  324. package/esm2022/lib/models/SecurityQuestionAnswerModel.mjs +0 -3
  325. package/esm2022/lib/models/SendOtpRequestModel.mjs +0 -3
  326. package/esm2022/lib/models/VerifyOtpRequestModel.mjs +0 -3
  327. package/esm2022/lib/models/WageCalculatorModel.mjs +0 -3
  328. package/esm2022/lib/models/WageInfoModel.mjs +0 -4
  329. package/esm2022/lib/models/addressValidation/AddressRecommendationModel.mjs +0 -3
  330. package/esm2022/lib/models/addressValidation/AddressValidationRequestComponentModel.mjs +0 -3
  331. package/esm2022/lib/models/addressValidation/AddressValidationResponseComponentModel.mjs +0 -3
  332. package/esm2022/lib/models/addressValidation/AddressValidationReturnComponentModel.mjs +0 -3
  333. package/esm2022/lib/models/combo-model.mjs +0 -343
  334. package/esm2022/lib/models/fileupload/DocUploadModel.mjs +0 -7
  335. package/esm2022/lib/models/fileupload/EmployerDataModel.mjs +0 -3
  336. package/esm2022/lib/models/fileupload/FileObject.mjs +0 -3
  337. package/esm2022/lib/models/fileupload/FileObjectArray.mjs +0 -7
  338. package/esm2022/lib/models/questionnaire/AppealParticipantModel.mjs +0 -8
  339. package/esm2022/lib/models/questionnaire/ScrollableTextModel.mjs +0 -3
  340. package/esm2022/lib/models/questionnaire/WbaHelperTextModel.mjs +0 -3
  341. package/esm2022/lib/models/weekly-cert/WorkSearchWaiverModel.mjs +0 -3
  342. package/esm2022/lib/models/weekly-cert/address-detail-model.mjs +0 -2
  343. package/esm2022/lib/models/weekly-cert/admin-leave-details-model.mjs +0 -7
  344. package/esm2022/lib/models/weekly-cert/employer-info-v2-model.mjs +0 -7
  345. package/esm2022/lib/models/weekly-cert/weekly-cert-eligibility-v2-model.mjs +0 -6
  346. package/esm2022/lib/models/weekly-cert/weekly-certification-v2-model.mjs +0 -34
  347. package/esm2022/lib/models/weekly-cert/work-search-record-v2-model.mjs +0 -15
  348. package/esm2022/lib/models/weekly-cert/work-search-v2-model.mjs +0 -11
  349. package/esm2022/lib/pipes/format-worksearch/format-worksearch.pipe.mjs +0 -101
  350. package/esm2022/lib/services/address-validation-service/address-validation.service.mjs +0 -151
  351. package/esm2022/lib/services/appeal/appeal.service.mjs +0 -37
  352. package/esm2022/lib/services/birt-service/birt.service.mjs +0 -57
  353. package/esm2022/lib/services/employer/employer-service.mjs +0 -35
  354. package/esm2022/lib/services/event-service/event-service.mjs +0 -44
  355. package/esm2022/lib/services/offline-claims/offline-claims.service.mjs +0 -327
  356. package/esm2022/lib/services/weekly-cert/review.service.mjs +0 -101
  357. package/esm2022/lib/services/weekly-cert/weekly-cert.service.mjs +0 -37
  358. package/esm2022/lib/services/weekly-cert/work-search.service.mjs +0 -58
  359. package/lib/components/add-wage/add-wage.component.d.ts +0 -30
  360. package/lib/components/add-wage/add-wage.component.d.ts.map +0 -1
  361. package/lib/components/address-popup/address-popup.component.d.ts +0 -16
  362. package/lib/components/address-popup/address-popup.component.d.ts.map +0 -1
  363. package/lib/components/address-suggestion/address-suggestion.component.d.ts +0 -43
  364. package/lib/components/address-suggestion/address-suggestion.component.d.ts.map +0 -1
  365. package/lib/components/appointment-self-scheduler/appointment-self-scheduler.component.d.ts +0 -37
  366. package/lib/components/appointment-self-scheduler/appointment-self-scheduler.component.d.ts.map +0 -1
  367. package/lib/components/associate-ssn/associate-ssn.component.d.ts +0 -33
  368. package/lib/components/associate-ssn/associate-ssn.component.d.ts.map +0 -1
  369. package/lib/components/claim-info/claim-info.component.d.ts +0 -49
  370. package/lib/components/claim-info/claim-info.component.d.ts.map +0 -1
  371. package/lib/components/dua-request-page/dua-request-page.component.d.ts +0 -74
  372. package/lib/components/dua-request-page/dua-request-page.component.d.ts.map +0 -1
  373. package/lib/components/dua-request-popup/dua-request-popup.component.d.ts +0 -61
  374. package/lib/components/dua-request-popup/dua-request-popup.component.d.ts.map +0 -1
  375. package/lib/components/employer-info/employer-info.component.d.ts +0 -50
  376. package/lib/components/employer-info/employer-info.component.d.ts.map +0 -1
  377. package/lib/components/employer-pay/employer-pay.component.d.ts +0 -51
  378. package/lib/components/employer-pay/employer-pay.component.d.ts.map +0 -1
  379. package/lib/components/employer-pay-grid/employer-pay-grid.component.d.ts +0 -43
  380. package/lib/components/employer-pay-grid/employer-pay-grid.component.d.ts.map +0 -1
  381. package/lib/components/farm-usage/farm-usage.component.d.ts +0 -33
  382. package/lib/components/farm-usage/farm-usage.component.d.ts.map +0 -1
  383. package/lib/components/gross-earnings/gross-earnings.component.d.ts +0 -42
  384. package/lib/components/gross-earnings/gross-earnings.component.d.ts.map +0 -1
  385. package/lib/components/history-page/history-page.component.d.ts +0 -80
  386. package/lib/components/history-page/history-page.component.d.ts.map +0 -1
  387. package/lib/components/idme/idme.component.d.ts +0 -19
  388. package/lib/components/idme/idme.component.d.ts.map +0 -1
  389. package/lib/components/offline-add-employer/offline-add-employer.component.d.ts +0 -311
  390. package/lib/components/offline-add-employer/offline-add-employer.component.d.ts.map +0 -1
  391. package/lib/components/offline-bank-details/offline-bank-details.component.d.ts +0 -33
  392. package/lib/components/offline-bank-details/offline-bank-details.component.d.ts.map +0 -1
  393. package/lib/components/offline-employer-grid/offline-employer-grid.component.d.ts +0 -97
  394. package/lib/components/offline-employer-grid/offline-employer-grid.component.d.ts.map +0 -1
  395. package/lib/components/offline-legal-disclaimar/offline-legal-disclaimar.component.d.ts +0 -33
  396. package/lib/components/offline-legal-disclaimar/offline-legal-disclaimar.component.d.ts.map +0 -1
  397. package/lib/components/proof-of-anything/proof-of-anything.component.d.ts +0 -54
  398. package/lib/components/proof-of-anything/proof-of-anything.component.d.ts.map +0 -1
  399. package/lib/components/proof-of-document-upload/proof-of-document-upload.component.d.ts +0 -74
  400. package/lib/components/proof-of-document-upload/proof-of-document-upload.component.d.ts.map +0 -1
  401. package/lib/components/scrollable-text/scrollable-text.component.d.ts +0 -11
  402. package/lib/components/scrollable-text/scrollable-text.component.d.ts.map +0 -1
  403. package/lib/components/sms/sms.component.d.ts +0 -63
  404. package/lib/components/sms/sms.component.d.ts.map +0 -1
  405. package/lib/components/wage-calculator/wage-calculator.component.d.ts +0 -44
  406. package/lib/components/wage-calculator/wage-calculator.component.d.ts.map +0 -1
  407. package/lib/components/wage-grid/wage-grid.component.d.ts +0 -43
  408. package/lib/components/wage-grid/wage-grid.component.d.ts.map +0 -1
  409. package/lib/components/weekly-acknowledgement-ms/acknowledgement-ms.component.d.ts +0 -28
  410. package/lib/components/weekly-acknowledgement-ms/acknowledgement-ms.component.d.ts.map +0 -1
  411. package/lib/components/weekly-acknowledgement-v2/acknowledgement.component-v2.d.ts +0 -28
  412. package/lib/components/weekly-acknowledgement-v2/acknowledgement.component-v2.d.ts.map +0 -1
  413. package/lib/components/weekly-certification/weekly-certification.component.d.ts +0 -101
  414. package/lib/components/weekly-certification/weekly-certification.component.d.ts.map +0 -1
  415. package/lib/components/weekly-confirmation/confirmation.component.d.ts +0 -21
  416. package/lib/components/weekly-confirmation/confirmation.component.d.ts.map +0 -1
  417. package/lib/components/weekly-interim-confirmation/interim-confirmation.component.d.ts +0 -34
  418. package/lib/components/weekly-interim-confirmation/interim-confirmation.component.d.ts.map +0 -1
  419. package/lib/components/weekly-summary-v2/summary.component-v2.d.ts +0 -17
  420. package/lib/components/weekly-summary-v2/summary.component-v2.d.ts.map +0 -1
  421. package/lib/components/weekly-work-performed-popup/weekly-work-performed-popup.component.d.ts +0 -10
  422. package/lib/components/weekly-work-performed-popup/weekly-work-performed-popup.component.d.ts.map +0 -1
  423. package/lib/components/weekly-work-search-counter/work-search-counter.component.d.ts +0 -17
  424. package/lib/components/weekly-work-search-counter/work-search-counter.component.d.ts.map +0 -1
  425. package/lib/components/weekly-work-search-employer-me/work-search-employer.component-me.d.ts +0 -105
  426. package/lib/components/weekly-work-search-employer-me/work-search-employer.component-me.d.ts.map +0 -1
  427. package/lib/components/weekly-work-search-employer-ms/work-search-employer-ms.component.d.ts +0 -71
  428. package/lib/components/weekly-work-search-employer-ms/work-search-employer-ms.component.d.ts.map +0 -1
  429. package/lib/components/weekly-work-search-employer-v2/work-search-employer.component-v2.d.ts +0 -59
  430. package/lib/components/weekly-work-search-employer-v2/work-search-employer.component-v2.d.ts.map +0 -1
  431. package/lib/components/weekly-work-search-journal/weekly-work-search-journal.component.d.ts +0 -47
  432. package/lib/components/weekly-work-search-journal/weekly-work-search-journal.component.d.ts.map +0 -1
  433. package/lib/components/weekly-work-search-question-v2/work-search-question.component-v2.d.ts +0 -78
  434. package/lib/components/weekly-work-search-question-v2/work-search-question.component-v2.d.ts.map +0 -1
  435. package/lib/directives/strip-invisible-characters/strip-invisible-characters.directive.d.ts +0 -8
  436. package/lib/directives/strip-invisible-characters/strip-invisible-characters.directive.d.ts.map +0 -1
  437. package/lib/enums/AddressValidationResponseEnum.d.ts +0 -8
  438. package/lib/enums/AddressValidationResponseEnum.d.ts.map +0 -1
  439. package/lib/enums/AddressValidationSourceFunctionEnum.d.ts +0 -4
  440. package/lib/enums/AddressValidationSourceFunctionEnum.d.ts.map +0 -1
  441. package/lib/models/ActiveClaimModel.d.ts +0 -8
  442. package/lib/models/ActiveClaimModel.d.ts.map +0 -1
  443. package/lib/models/CountyModel.d.ts +0 -8
  444. package/lib/models/CountyModel.d.ts.map +0 -1
  445. package/lib/models/DuaAppDataModel.d.ts +0 -5
  446. package/lib/models/DuaAppDataModel.d.ts.map +0 -1
  447. package/lib/models/DuaRequestModel.d.ts +0 -10
  448. package/lib/models/DuaRequestModel.d.ts.map +0 -1
  449. package/lib/models/DuaRetroWeeksComponentModel.d.ts +0 -5
  450. package/lib/models/DuaRetroWeeksComponentModel.d.ts.map +0 -1
  451. package/lib/models/EmployerInfoComponentModel.d.ts +0 -9
  452. package/lib/models/EmployerInfoComponentModel.d.ts.map +0 -1
  453. package/lib/models/EmployerPayInfoModel.d.ts +0 -20
  454. package/lib/models/EmployerPayInfoModel.d.ts.map +0 -1
  455. package/lib/models/FarmUsageComponentModel.d.ts +0 -10
  456. package/lib/models/FarmUsageComponentModel.d.ts.map +0 -1
  457. package/lib/models/GrossEarningsModel.d.ts +0 -6
  458. package/lib/models/GrossEarningsModel.d.ts.map +0 -1
  459. package/lib/models/HelpConstants.d.ts +0 -5
  460. package/lib/models/HelpConstants.d.ts.map +0 -1
  461. package/lib/models/LexisNexisOtpDetailsResponseModel.d.ts +0 -7
  462. package/lib/models/LexisNexisOtpDetailsResponseModel.d.ts.map +0 -1
  463. package/lib/models/ReasonSeparationRequestModel.d.ts +0 -7
  464. package/lib/models/ReasonSeparationRequestModel.d.ts.map +0 -1
  465. package/lib/models/RetroWeeksModel.d.ts +0 -11
  466. package/lib/models/RetroWeeksModel.d.ts.map +0 -1
  467. package/lib/models/SecurityQuestionAnswerModel.d.ts +0 -7
  468. package/lib/models/SecurityQuestionAnswerModel.d.ts.map +0 -1
  469. package/lib/models/SendOtpRequestModel.d.ts +0 -12
  470. package/lib/models/SendOtpRequestModel.d.ts.map +0 -1
  471. package/lib/models/VerifyOtpRequestModel.d.ts +0 -8
  472. package/lib/models/VerifyOtpRequestModel.d.ts.map +0 -1
  473. package/lib/models/WageCalculatorModel.d.ts +0 -15
  474. package/lib/models/WageCalculatorModel.d.ts.map +0 -1
  475. package/lib/models/WageInfoModel.d.ts +0 -9
  476. package/lib/models/WageInfoModel.d.ts.map +0 -1
  477. package/lib/models/addressValidation/AddressRecommendationModel.d.ts +0 -12
  478. package/lib/models/addressValidation/AddressRecommendationModel.d.ts.map +0 -1
  479. package/lib/models/addressValidation/AddressValidationRequestComponentModel.d.ts +0 -11
  480. package/lib/models/addressValidation/AddressValidationRequestComponentModel.d.ts.map +0 -1
  481. package/lib/models/addressValidation/AddressValidationResponseComponentModel.d.ts +0 -6
  482. package/lib/models/addressValidation/AddressValidationResponseComponentModel.d.ts.map +0 -1
  483. package/lib/models/addressValidation/AddressValidationReturnComponentModel.d.ts +0 -16
  484. package/lib/models/addressValidation/AddressValidationReturnComponentModel.d.ts.map +0 -1
  485. package/lib/models/combo-model.d.ts +0 -42
  486. package/lib/models/combo-model.d.ts.map +0 -1
  487. package/lib/models/fileupload/DocUploadModel.d.ts +0 -22
  488. package/lib/models/fileupload/DocUploadModel.d.ts.map +0 -1
  489. package/lib/models/fileupload/EmployerDataModel.d.ts +0 -6
  490. package/lib/models/fileupload/EmployerDataModel.d.ts.map +0 -1
  491. package/lib/models/fileupload/FileObject.d.ts +0 -8
  492. package/lib/models/fileupload/FileObject.d.ts.map +0 -1
  493. package/lib/models/fileupload/FileObjectArray.d.ts +0 -8
  494. package/lib/models/fileupload/FileObjectArray.d.ts.map +0 -1
  495. package/lib/models/questionnaire/AppealParticipantModel.d.ts +0 -17
  496. package/lib/models/questionnaire/AppealParticipantModel.d.ts.map +0 -1
  497. package/lib/models/questionnaire/ScrollableTextModel.d.ts +0 -4
  498. package/lib/models/questionnaire/ScrollableTextModel.d.ts.map +0 -1
  499. package/lib/models/questionnaire/WbaHelperTextModel.d.ts +0 -4
  500. package/lib/models/questionnaire/WbaHelperTextModel.d.ts.map +0 -1
  501. package/lib/models/weekly-cert/WorkSearchWaiverModel.d.ts +0 -9
  502. package/lib/models/weekly-cert/WorkSearchWaiverModel.d.ts.map +0 -1
  503. package/lib/models/weekly-cert/address-detail-model.d.ts +0 -14
  504. package/lib/models/weekly-cert/address-detail-model.d.ts.map +0 -1
  505. package/lib/models/weekly-cert/admin-leave-details-model.d.ts +0 -15
  506. package/lib/models/weekly-cert/admin-leave-details-model.d.ts.map +0 -1
  507. package/lib/models/weekly-cert/employer-info-v2-model.d.ts +0 -27
  508. package/lib/models/weekly-cert/employer-info-v2-model.d.ts.map +0 -1
  509. package/lib/models/weekly-cert/weekly-cert-eligibility-v2-model.d.ts +0 -57
  510. package/lib/models/weekly-cert/weekly-cert-eligibility-v2-model.d.ts.map +0 -1
  511. package/lib/models/weekly-cert/weekly-certification-v2-model.d.ts +0 -59
  512. package/lib/models/weekly-cert/weekly-certification-v2-model.d.ts.map +0 -1
  513. package/lib/models/weekly-cert/work-search-record-v2-model.d.ts +0 -66
  514. package/lib/models/weekly-cert/work-search-record-v2-model.d.ts.map +0 -1
  515. package/lib/models/weekly-cert/work-search-v2-model.d.ts +0 -18
  516. package/lib/models/weekly-cert/work-search-v2-model.d.ts.map +0 -1
  517. package/lib/pipes/format-worksearch/format-worksearch.pipe.d.ts +0 -14
  518. package/lib/pipes/format-worksearch/format-worksearch.pipe.d.ts.map +0 -1
  519. package/lib/services/address-validation-service/address-validation.service.d.ts +0 -44
  520. package/lib/services/address-validation-service/address-validation.service.d.ts.map +0 -1
  521. package/lib/services/appeal/appeal.service.d.ts +0 -16
  522. package/lib/services/appeal/appeal.service.d.ts.map +0 -1
  523. package/lib/services/birt-service/birt.service.d.ts +0 -17
  524. package/lib/services/birt-service/birt.service.d.ts.map +0 -1
  525. package/lib/services/employer/employer-service.d.ts +0 -16
  526. package/lib/services/employer/employer-service.d.ts.map +0 -1
  527. package/lib/services/event-service/event-service.d.ts +0 -20
  528. package/lib/services/event-service/event-service.d.ts.map +0 -1
  529. package/lib/services/offline-claims/offline-claims.service.d.ts +0 -64
  530. package/lib/services/offline-claims/offline-claims.service.d.ts.map +0 -1
  531. package/lib/services/weekly-cert/review.service.d.ts +0 -23
  532. package/lib/services/weekly-cert/review.service.d.ts.map +0 -1
  533. package/lib/services/weekly-cert/weekly-cert.service.d.ts +0 -17
  534. package/lib/services/weekly-cert/weekly-cert.service.d.ts.map +0 -1
  535. package/lib/services/weekly-cert/work-search.service.d.ts +0 -26
  536. package/lib/services/weekly-cert/work-search.service.d.ts.map +0 -1
@@ -163,7 +163,7 @@ export class LoginComponent extends BasePage {
163
163
  }));
164
164
  }, err => {
165
165
  this.util.hideLoader();
166
- this.util.showError('Verification at the bottom of the screen failed. Please retry.');
166
+ this.util.showError('Captcha verification failed. Please retry.');
167
167
  });
168
168
  });
169
169
  }
@@ -191,7 +191,6 @@ export class LoginComponent extends BasePage {
191
191
  this.loginForm.reset();
192
192
  this.loginFormDirective.resetForm();
193
193
  this.loginTypeFormDirective.resetForm();
194
- this.loginService.reset();
195
194
  }
196
195
  ngOnInit() {
197
196
  this.initilizeLoginForm();
@@ -322,7 +321,7 @@ export class LoginComponent extends BasePage {
322
321
  userModel.lastName = this.lastName.value;
323
322
  userModel.dob = this.dob.value;
324
323
  userModel.username = this.signUpUserId.value;
325
- userModel.password = this.password.value.trim();
324
+ userModel.password = this.password.value;
326
325
  this.loginService.setUser(userModel);
327
326
  this.loginService.signUp(userModel).subscribe(res => {
328
327
  this.opt = 'signin';
@@ -354,7 +353,12 @@ export class LoginComponent extends BasePage {
354
353
  this.loginService
355
354
  .initiateForgotPassword(this.userId.value)
356
355
  .subscribe(res => {
357
- this.util.success('Your password has been reset. You should receive an email with a temporary password and login instructions.');
356
+ if (localStorage.getItem("language") === "es") {
357
+ this.util.success('Se ha restablecido su contraseña. Recibirá un correo electrónico con una contraseña temporal e instrucciones para iniciar sesión.');
358
+ }
359
+ else {
360
+ this.util.success('Your password has been reset. You should receive an email with a temporary password and login instructions.');
361
+ }
358
362
  this.loginForm.reset();
359
363
  this.loginService.reset();
360
364
  this.loginFormDirective.resetForm();
@@ -385,7 +389,7 @@ export class LoginComponent extends BasePage {
385
389
  i0.ɵɵelement(1, "p-toast", 1);
386
390
  i0.ɵɵelementStart(2, "app-content", 2)(3, "app-page", 3)(4, "div")(5, "app-card", 4)(6, "p-dialog", 5);
387
391
  i0.ɵɵlistener("visibleChange", function LoginComponent_Template_p_dialog_visibleChange_6_listener($event) { return ctx.displayDialog = $event; });
388
- i0.ɵɵtext(7, " If you forgot your user ID, please contact helpdesk during business hours. ");
392
+ i0.ɵɵtext(7, " Maybe you forgot your User ID, a Customer Service Representative is available to assist you Monday through Friday from 8 AM to 5 PM. if weather permits ");
389
393
  i0.ɵɵtemplate(8, LoginComponent_div_8_Template, 3, 0, "div", 6)(9, LoginComponent_div_9_Template, 5, 0, "div", 6);
390
394
  i0.ɵɵelement(10, "br");
391
395
  i0.ɵɵelementStart(11, "p-footer")(12, "div", 7)(13, "ion-button", 8);
@@ -509,7 +513,7 @@ export class LoginComponent extends BasePage {
509
513
  }
510
514
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(LoginComponent, [{
511
515
  type: Component,
512
- args: [{ selector: 'app-login', template: "<ion-content class=\"background\">\r\n <p-toast position=\"top-center\" ></p-toast>\r\n <app-content [showHelp]=\"true\">\r\n <app-page src=\"assets/icon/ReEmploy{{util.getState()}}.svg\" [hideCard]=\"true\">\r\n <div>\r\n <app-card title=\"login.card.title\">\r\n <p-dialog header=\"Message\" [(visible)]=\"displayDialog\" modal=\"true\">\r\n If you forgot your user ID, please contact helpdesk during business hours.\r\n <div *ngIf=\"isMS()\">\r\n <br/>- Employers may call 601-321-6334 \r\n </div>\r\n <div *ngIf=\"isME()\">\r\n <br/>- Employers may call 207-621-5120\r\n <br/>- Claimants may call 1-800-593-7660.\r\n </div>\r\n <br/>\r\n <p-footer>\r\n <div class=\"ion-text-center\">\r\n <ion-button shape=\"round\" type=\"submit\" (click)=\"displayDialog = !displayDialog\" color=\"success\">\r\n <ion-icon slot=\"start\" name=\"close-sharp\"></ion-icon>\r\n Close\r\n </ion-button>\r\n </div>\r\n </p-footer>\r\n </p-dialog>\r\n <mat-horizontal-stepper [linear]=\"true\" #stepper>\r\n <mat-step [stepControl]=\"loginForm\">\r\n <ng-template matStepLabel>\r\n <app-msg key=\"login.card.step1\"></app-msg>\r\n </ng-template>\r\n <form [formGroup]=\"loginForm\" #loginFormDirective=\"ngForm\">\r\n <ion-row color=\"primary\" class=\"ion-justify-content-center\" joyrideStep=\"step1\" title=\"{{'guide.login.userid.title' | translate}}\" \r\n text=\"{{'guide.login.userid.message' | translate}}\">\r\n <ion-col class=\"ion-align-self-center\">\r\n <div class=\"ion-justify-content-center\">\r\n <span class=\"p-float-label\">\r\n <input type=\"text\" pInputText [formControl]=\"userId\" id=\"userId\" inlength=\"5\" autocomplete=\"off\" appAutofocus>\r\n <label for=\"float-input\">User ID</label>\r\n <app-error [field]='userId' [form]=\"loginTypeFormDirective\" [errDef]=\"{ \r\n required: 'User ID is required.',\r\n minlength: 'User ID should have minimum 5 characters.'\r\n }\"></app-error>\r\n </span>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n <ion-row class=\"justify-content-center\" joyrideStep=\"step2\" title=\"{{'guide.login.options.title' | translate}}\" \r\n text=\"{{'guide.login.options.message' | translate}}\">\r\n <ion-col>\r\n <ion-button shape=\"round\" type=\"submit\" expand=\"block\" (click)=\"enablePasswordField()\"\r\n color=\"success\" pTooltip=\"Login with password\" tooltipPosition=\"bottom\"\r\n joyrideStep=\"step3\" title=\"{{'guide.login.password.title' | translate}}\" \r\n text=\"{{'guide.login.password.message' | translate}}\">\r\n <ion-icon slot=\"start\" name=\"log-in-outline\"></ion-icon>\r\n Password\r\n </ion-button>\r\n </ion-col>\r\n <ion-col>\r\n <ion-button shape=\"round\" type=\"submit\" expand=\"block\" expand=\"block\" (click)=\"enableOtpField()\"\r\n color=\"success\" pTooltip=\"Login with authcode\" tooltipPosition=\"bottom\" \r\n joyrideStep=\"step4\" title=\"{{'guide.login.authcode.title' | translate}}\" \r\n text=\"{{'guide.login.authcode.message' | translate}}\">\r\n <ion-icon slot=\"start\" name=\"log-in-outline\"></ion-icon>\r\n Authcode\r\n </ion-button>\r\n </ion-col>\r\n </ion-row>\r\n <ion-row class=\"justify-content-center\">\r\n <ion-col class=\"ion-text-center\">\r\n <ion-button joyrideStep=\"step5\" title=\"Forgot User ID?\" \r\n text=\"Provides assistance if you forget your User ID to login\" \r\n shape=\"round\" type=\"submit\" expand=\"outline\" color=\"success\" pTooltip=\"Forgot User ID?\"\r\n tooltipPosition=\"bottom\" size=\"small\" (click)=\"showDialog()\">\r\n Forgot User ID?\r\n </ion-button>\r\n </ion-col>\r\n <ion-col class=\"ion-text-center\">\r\n <ion-button \r\n joyrideStep=\"step6\" title=\"Forgot password?\" \r\n text=\"Provides assistance to reset your password using your registered email address\" \r\n shape=\"round\" type=\"submit\" expand=\"outline\" color=\"success\" pTooltip=\"Forgot Password?\"\r\n tooltipPosition=\"bottom\" size=\"small\" (click)=\"initiateForgotPassword()\">\r\n Forgot Password?\r\n </ion-button>\r\n </ion-col>\r\n </ion-row>\r\n </form>\r\n </mat-step>\r\n <mat-step>\r\n <form [formGroup]=\"loginTypeForm\" #loginTypeFormDirective=\"ngForm\">\r\n <ng-template matStepLabel>\r\n <app-msg key=\"login.card.step2\"></app-msg>\r\n </ng-template>\r\n <ion-grid class=\"ion-padding-top\">\r\n <ion-row color=\"primary\" class=\"ion-justify-content-center\">\r\n <ion-col class=\"ion-align-self-center\">\r\n <div class=\"ion-justify-content-center\" (capsLock)=\"capsOn=$event\">\r\n <mat-label class=\"ion-padding-right\">User ID</mat-label>\r\n <mat-label class=\"ion-padding-left\" style=\"float: right;\">\r\n <app-mask [value]=\"userId.value + ''\" *ngIf=\"userId.value\"></app-mask>\r\n </mat-label>\r\n <br /><br />\r\n\r\n <div *ngIf=\"enableOtp\">\r\n <span class=\"p-float-label\">\r\n <p-password [formControl]=\"otp\" inputId=\"signInPassword\" [toggleMask]='true' [feedback]='false'></p-password>\r\n <label for=\"float-input\">Authcode</label>\r\n </span>\r\n <app-error [field]='otp' [form]=\"loginTypeFormDirective\" [errDef]=\"{ \r\n required: 'Authcode is required.',\r\n minlength: 'Authcode should have minimum 6 characters.'\r\n }\"></app-error>\r\n </div>\r\n\r\n <div *ngIf=\"enablePassword\">\r\n <span class=\"p-float-label\">\r\n <p-password [formControl]=\"signInPassword\" inputId=\"signInPassword\" [toggleMask]='true' [feedback]='false'></p-password>\r\n <label for=\"float-input\">Password</label>\r\n </span>\r\n <app-error [field]='signInPassword' [form]=\"loginTypeFormDirective\" [errDef]=\"{ \r\n required: 'Password is required.'\r\n }\"></app-error>\r\n </div>\r\n \r\n <label *ngIf=\"capsOn\" style=\"color:#b3411d;\"><strong>Caps Lock is On</strong></label>\r\n </div>\r\n <div class=\"ion-justify-content-center\">\r\n <ion-grid>\r\n <ion-row class=\"justify-content-center\" [hidden]=\"!enableSignin\">\r\n <ion-col>\r\n <ion-button shape=\"round\" type=\"submit\" expand=\"block\" (click)=\"signIn()\" color=\"success\">\r\n <ion-icon slot=\"start\" name=\"log-in-outline\"></ion-icon>\r\n Sign In\r\n </ion-button>\r\n </ion-col>\r\n <ion-col>\r\n <ion-button shape=\"round\" type=\"reset\" expand=\"block\" expand=\"block\" (click)=\"reset()\"\r\n color=\"medium\">\r\n <ion-icon slot=\"start\" name=\"refresh\"></ion-icon>\r\n Reset\r\n </ion-button>\r\n </ion-col>\r\n </ion-row>\r\n </ion-grid>\r\n <br />\r\n <ion-grid *ngIf=\"false\">\r\n <ion-row class=\"justify-content-center\">\r\n <ion-col class=\"ion-text-center\">\r\n <a href=\"#\">Forgot user ID?</a>\r\n </ion-col>\r\n <ion-col class=\"ion-text-center\">\r\n <a href=\"#\">Forgot Password?</a>\r\n </ion-col>\r\n </ion-row>\r\n </ion-grid>\r\n </div>\r\n \r\n </ion-col>\r\n </ion-row>\r\n </ion-grid>\r\n </form>\r\n </mat-step>\r\n </mat-horizontal-stepper>\r\n \r\n </app-card>\r\n </div>\r\n <!-- <div class=\"g-signin2\" data-width=\"300\" data-height=\"200\" data-longtitle=\"true\"></div> -->\r\n </app-page>\r\n </app-content>\r\n </ion-content>\r\n\r\n\r\n\r\n", styles: [".group-3{height:518px;width:946px}mat-form-field{width:-webkit-fill-available}div.mat-form-field-outline{background:#fff!important}.ui-messages-close{font-size:.5em!important}:host ::ng-deep .p-inputwrapper,:host ::ng-deep .p-inputtext{width:100%}\n"] }]
516
+ args: [{ selector: 'app-login', template: "<ion-content class=\"background\">\r\n <p-toast position=\"top-center\" ></p-toast>\r\n <app-content [showHelp]=\"true\">\r\n <app-page src=\"assets/icon/ReEmploy{{util.getState()}}.svg\" [hideCard]=\"true\">\r\n <div>\r\n <app-card title=\"login.card.title\">\r\n <p-dialog header=\"Message\" [(visible)]=\"displayDialog\" modal=\"true\">\r\n Maybe you forgot your User ID, a Customer Service Representative is available to assist you Monday through Friday from 8 AM to 5 PM. if weather permits\r\n <div *ngIf=\"isMS()\">\r\n <br/>- Employers may call 601-321-6334 \r\n </div>\r\n <div *ngIf=\"isME()\">\r\n <br/>- Employers may call 207-621-5120\r\n <br/>- Claimants may call 1-800-593-7660.\r\n </div>\r\n <br/>\r\n <p-footer>\r\n <div class=\"ion-text-center\">\r\n <ion-button shape=\"round\" type=\"submit\" (click)=\"displayDialog = !displayDialog\" color=\"success\">\r\n <ion-icon slot=\"start\" name=\"close-sharp\"></ion-icon>\r\n Close\r\n </ion-button>\r\n </div>\r\n </p-footer>\r\n </p-dialog>\r\n <mat-horizontal-stepper [linear]=\"true\" #stepper>\r\n <mat-step [stepControl]=\"loginForm\">\r\n <ng-template matStepLabel>\r\n <app-msg key=\"login.card.step1\"></app-msg>\r\n </ng-template>\r\n <form [formGroup]=\"loginForm\" #loginFormDirective=\"ngForm\">\r\n <ion-row color=\"primary\" class=\"ion-justify-content-center\" joyrideStep=\"step1\" title=\"{{'guide.login.userid.title' | translate}}\" \r\n text=\"{{'guide.login.userid.message' | translate}}\">\r\n <ion-col class=\"ion-align-self-center\">\r\n <div class=\"ion-justify-content-center\">\r\n <span class=\"p-float-label\">\r\n <input type=\"text\" pInputText [formControl]=\"userId\" id=\"userId\" inlength=\"5\" autocomplete=\"off\" appAutofocus>\r\n <label for=\"float-input\">User ID</label>\r\n <app-error [field]='userId' [form]=\"loginTypeFormDirective\" [errDef]=\"{ \r\n required: 'User ID is required.',\r\n minlength: 'User ID should have minimum 5 characters.'\r\n }\"></app-error>\r\n </span>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n <ion-row class=\"justify-content-center\" joyrideStep=\"step2\" title=\"{{'guide.login.options.title' | translate}}\" \r\n text=\"{{'guide.login.options.message' | translate}}\">\r\n <ion-col>\r\n <ion-button shape=\"round\" type=\"submit\" expand=\"block\" (click)=\"enablePasswordField()\"\r\n color=\"success\" pTooltip=\"Login with password\" tooltipPosition=\"bottom\"\r\n joyrideStep=\"step3\" title=\"{{'guide.login.password.title' | translate}}\" \r\n text=\"{{'guide.login.password.message' | translate}}\">\r\n <ion-icon slot=\"start\" name=\"log-in-outline\"></ion-icon>\r\n Password\r\n </ion-button>\r\n </ion-col>\r\n <ion-col>\r\n <ion-button shape=\"round\" type=\"submit\" expand=\"block\" expand=\"block\" (click)=\"enableOtpField()\"\r\n color=\"success\" pTooltip=\"Login with authcode\" tooltipPosition=\"bottom\" \r\n joyrideStep=\"step4\" title=\"{{'guide.login.authcode.title' | translate}}\" \r\n text=\"{{'guide.login.authcode.message' | translate}}\">\r\n <ion-icon slot=\"start\" name=\"log-in-outline\"></ion-icon>\r\n Authcode\r\n </ion-button>\r\n </ion-col>\r\n </ion-row>\r\n <ion-row class=\"justify-content-center\">\r\n <ion-col class=\"ion-text-center\">\r\n <ion-button joyrideStep=\"step5\" title=\"Forgot User ID?\" \r\n text=\"Provides assistance if you forget your User ID to login\" \r\n shape=\"round\" type=\"submit\" expand=\"outline\" color=\"success\" pTooltip=\"Forgot User ID?\"\r\n tooltipPosition=\"bottom\" size=\"small\" (click)=\"showDialog()\">\r\n Forgot User ID?\r\n </ion-button>\r\n </ion-col>\r\n <ion-col class=\"ion-text-center\">\r\n <ion-button \r\n joyrideStep=\"step6\" title=\"Forgot password?\" \r\n text=\"Provides assistance to reset your password using your registered email address\" \r\n shape=\"round\" type=\"submit\" expand=\"outline\" color=\"success\" pTooltip=\"Forgot Password?\"\r\n tooltipPosition=\"bottom\" size=\"small\" (click)=\"initiateForgotPassword()\">\r\n Forgot Password?\r\n </ion-button>\r\n </ion-col>\r\n </ion-row>\r\n </form>\r\n </mat-step>\r\n <mat-step>\r\n <form [formGroup]=\"loginTypeForm\" #loginTypeFormDirective=\"ngForm\">\r\n <ng-template matStepLabel>\r\n <app-msg key=\"login.card.step2\"></app-msg>\r\n </ng-template>\r\n <ion-grid class=\"ion-padding-top\">\r\n <ion-row color=\"primary\" class=\"ion-justify-content-center\">\r\n <ion-col class=\"ion-align-self-center\">\r\n <div class=\"ion-justify-content-center\" (capsLock)=\"capsOn=$event\">\r\n <mat-label class=\"ion-padding-right\">User ID</mat-label>\r\n <mat-label class=\"ion-padding-left\" style=\"float: right;\">\r\n <app-mask [value]=\"userId.value + ''\" *ngIf=\"userId.value\"></app-mask>\r\n </mat-label>\r\n <br /><br />\r\n\r\n <div *ngIf=\"enableOtp\">\r\n <span class=\"p-float-label\">\r\n <p-password [formControl]=\"otp\" inputId=\"signInPassword\" [toggleMask]='true' [feedback]='false'></p-password>\r\n <label for=\"float-input\">Authcode</label>\r\n </span>\r\n <app-error [field]='otp' [form]=\"loginTypeFormDirective\" [errDef]=\"{ \r\n required: 'Authcode is required.',\r\n minlength: 'Authcode should have minimum 6 characters.'\r\n }\"></app-error>\r\n </div>\r\n\r\n <div *ngIf=\"enablePassword\">\r\n <span class=\"p-float-label\">\r\n <p-password [formControl]=\"signInPassword\" inputId=\"signInPassword\" [toggleMask]='true' [feedback]='false'></p-password>\r\n <label for=\"float-input\">Password</label>\r\n </span>\r\n <app-error [field]='signInPassword' [form]=\"loginTypeFormDirective\" [errDef]=\"{ \r\n required: 'Password is required.'\r\n }\"></app-error>\r\n </div>\r\n \r\n <label *ngIf=\"capsOn\" style=\"color:#b3411d;\"><strong>Caps Lock is On</strong></label>\r\n </div>\r\n <div class=\"ion-justify-content-center\">\r\n <ion-grid>\r\n <ion-row class=\"justify-content-center\" [hidden]=\"!enableSignin\">\r\n <ion-col>\r\n <ion-button shape=\"round\" type=\"submit\" expand=\"block\" (click)=\"signIn()\" color=\"success\">\r\n <ion-icon slot=\"start\" name=\"log-in-outline\"></ion-icon>\r\n Sign In\r\n </ion-button>\r\n </ion-col>\r\n <ion-col>\r\n <ion-button shape=\"round\" type=\"reset\" expand=\"block\" expand=\"block\" (click)=\"reset()\"\r\n color=\"medium\">\r\n <ion-icon slot=\"start\" name=\"refresh\"></ion-icon>\r\n Reset\r\n </ion-button>\r\n </ion-col>\r\n </ion-row>\r\n </ion-grid>\r\n <br />\r\n <ion-grid *ngIf=\"false\">\r\n <ion-row class=\"justify-content-center\">\r\n <ion-col class=\"ion-text-center\">\r\n <a href=\"#\">Forgot user ID?</a>\r\n </ion-col>\r\n <ion-col class=\"ion-text-center\">\r\n <a href=\"#\">Forgot Password?</a>\r\n </ion-col>\r\n </ion-row>\r\n </ion-grid>\r\n </div>\r\n \r\n </ion-col>\r\n </ion-row>\r\n </ion-grid>\r\n </form>\r\n </mat-step>\r\n </mat-horizontal-stepper>\r\n \r\n </app-card>\r\n </div>\r\n <!-- <div class=\"g-signin2\" data-width=\"300\" data-height=\"200\" data-longtitle=\"true\"></div> -->\r\n </app-page>\r\n </app-content>\r\n </ion-content>\r\n\r\n\r\n\r\n", styles: [".group-3{height:518px;width:946px}mat-form-field{width:-webkit-fill-available}div.mat-form-field-outline{background:#fff!important}.ui-messages-close{font-size:.5em!important}:host ::ng-deep .p-inputwrapper,:host ::ng-deep .p-inputtext{width:100%}\n"] }]
513
517
  }], () => [{ type: i1.UntypedFormBuilder }, { type: i2.LoginService }, { type: i3.Router }, { type: i4.UtilService }, { type: i5.PopoverController }, { type: i5.NavController }, { type: i6.CaptchaService }], { loginElement: [{
514
518
  type: ViewChild,
515
519
  args: ['loginRef', { static: true }]
@@ -524,4 +528,4 @@ export class LoginComponent extends BasePage {
524
528
  args: ['loginTypeFormDirective', { static: false }]
525
529
  }] }); })();
526
530
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(LoginComponent, { className: "LoginComponent", filePath: "lib\\pages\\common\\login\\login.component.ts", lineNumber: 19 }); })();
527
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJldXNhLWFwcC1saWIvc3JjL2xpYi9wYWdlcy9jb21tb24vbG9naW4vbG9naW4uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJldXNhLWFwcC1saWIvc3JjL2xpYi9wYWdlcy9jb21tb24vbG9naW4vbG9naW4uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxTQUFTLEVBQTZELE1BQU0sZUFBZSxDQUFDO0FBQ3hILE9BQU8sRUFBc0IsVUFBVSxFQUE2RCxNQUFNLGdCQUFnQixDQUFDO0FBSTNILE9BQU8sRUFBRSxRQUFRLEVBQTJCLE1BQU0sZ0JBQWdCLENBQUM7QUFHbkUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUNEdkQsMkJBQW9CO0lBQ2xCLHFCQUFLO0lBQUEsa0RBQ1A7SUFBQSxpQkFBTTs7O0lBQ04sMkJBQW9CO0lBQ2xCLHFCQUFLO0lBQUEsa0RBQ0w7SUFBQSxxQkFBSztJQUFBLHFEQUNQO0lBQUEsaUJBQU07OztJQWNGLDhCQUEwQzs7O0lBK0R4Qyw4QkFBMEM7OztJQVFsQywrQkFBdUU7OztJQUE3RCxnREFBNEI7Ozs7SUFJeEMsMkJBQXVCLGVBQUE7SUFFbkIsaUNBQTZHO0lBQzdHLGlDQUF5QjtJQUFBLHdCQUFRO0lBQUEsaUJBQVEsRUFBQTtJQUUzQyxnQ0FHaUI7SUFDbkIsaUJBQU07Ozs7SUFQVSxlQUFtQjtJQUFuQix3Q0FBbUIsb0JBQUEsbUJBQUE7SUFHdEIsZUFBYTtJQUFiLGtDQUFhLGFBQUEsc0NBQUE7Ozs7SUFNMUIs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TUFBTSxFQUFHLEtBQUssRUFBQzs7a0ZBZDFDLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgVmlld0NoaWxkLCBFbGVtZW50UmVmLCBEaXJlY3RpdmUsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBIb3N0TGlzdGVuZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVudHlwZWRGb3JtQnVpbGRlciwgVmFsaWRhdG9ycywgVW50eXBlZEZvcm1Hcm91cCwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cERpcmVjdGl2ZSwgTmdGb3JtIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFBvcG92ZXJDb250cm9sbGVyLCBOYXZDb250cm9sbGVyIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xuaW1wb3J0IHtNYXRTdGVwcGVyfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zdGVwcGVyJztcbmltcG9ydCB7IEJhc2VQYWdlLCBDdXN0b21FcnJvclN0YXRlTWF0Y2hlciB9IGZyb20gJy4uLy4uL0Jhc2VQYWdlJztcbmltcG9ydCB7IExvZ2luU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2xvZ2luL2xvZ2luLnNlcnZpY2UnO1xuaW1wb3J0IHsgVXRpbFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy91dGlsL3V0aWwuc2VydmljZSc7XG5pbXBvcnQgeyBVc2VyTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvVXNlck1vZGVsJztcbmltcG9ydCB7IExhbmd1YWdlUGFnZSB9IGZyb20gJy4uLy4uL3BvcG92ZXJzL2xhbmd1YWdlL2xhbmd1YWdlLnBhZ2UnO1xuaW1wb3J0IHsgTGliQ29uc3RhbnRzIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL0xpYkNvbnN0YW50cyc7XG5pbXBvcnQgeyBDYXB0Y2hhU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2NhcHRjaGEvY2FwdGNoYS5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWxvZ2luJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2xvZ2luLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbG9naW4uY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBMb2dpbkNvbXBvbmVudCBleHRlbmRzIEJhc2VQYWdlIGltcGxlbWVudHMgT25Jbml0IHtcblxuICBwcml2YXRlIExPR0lOX0FVVEhfQ09ERV9BQ1RJT05fTkFNRSA9IFwiTE9HSU5fQVVUSF9DT0RFXCI7XG5cbiAgcHVibGljIGNhcHNPbiA9IGZhbHNlO1xuXG4gIHB1YmxpYyBkaXNwbGF5RGlhbG9nID0gZmFsc2U7XG5cbiAgQFZpZXdDaGlsZCgnbG9naW5SZWYnLCB7c3RhdGljOiB0cnVlIH0pIGxvZ2luRWxlbWVudDogRWxlbWVudFJlZjtcblxuICBAVmlld0NoaWxkKCdzdGVwcGVyJykgc3RlcHBlcjogTWF0U3RlcHBlcjtcblxuICBAVmlld0NoaWxkKCdsb2dpbkZvcm1EaXJlY3RpdmUnLCB7c3RhdGljIDogZmFsc2V9KSBwcml2YXRlIGxvZ2luRm9ybURpcmVjdGl2ZTogTmdGb3JtO1xuXG4gIEBWaWV3Q2hpbGQoJ2xvZ2luVHlwZUZvcm1EaXJlY3RpdmUnLCB7c3RhdGljIDogZmFsc2V9KSBwcml2YXRlIGxvZ2luVHlwZUZvcm1EaXJlY3RpdmU6IE5nRm9ybTtcblxuICBhdXRoMjogYW55O1xuICBwcml2YXRlIGxvZ2luRXJyb3JTdHJpbmc6IHN0cmluZztcbiAgcHVibGljIG9wdDogc3RyaW5nID0gJ3NpZ25pbic7XG4gIHB1YmxpYyBsb2dpbkZvcm0gOiBVbnR5cGVkRm9ybUdyb3VwO1xuICBwdWJsaWMgbG9naW5UeXBlRm9ybSA6IFVudHlwZWRGb3JtR3JvdXA7XG4gIHB1YmxpYyBzaWdudXBGb3JtIDogVW50eXBlZEZvcm1Hcm91cDtcbiAgcHVibGljIGVuYWJsZU90cCA6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHVibGljIGVuYWJsZVBhc3N3b3JkIDogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgZW5hYmxlU2lnbmluIDogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgaXNMb2dpbkluUHJvZ3Jlc3MgPSBmYWxzZTtcbiAgcHVibGljIGZhcSA9ICdwdWEnO1xuICBwdWJsaWMgc2hvd1Byb2dyZXNzQmFyID0gZmFsc2U7XG4gIHB1YmxpYyBoaWRlUGFzc3dvcmQgPSB0cnVlO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBmYiA6IFVudHlwZWRGb3JtQnVpbGRlciwgcHVibGljIGxvZ2luU2VydmljZSA6IExvZ2luU2VydmljZSwgcHVibGljIHJvdXRlciA6IFJvdXRlciwgcHVibGljIHV0aWwgOiBVdGlsU2VydmljZSxcbiAgICAgICAgICAgICAgcHVibGljIHBvcHVwOiBQb3BvdmVyQ29udHJvbGxlciwgcHJpdmF0ZSBuYXY6IE5hdkNvbnRyb2xsZXIsIHByaXZhdGUgY3M6IENhcHRjaGFTZXJ2aWNlKSB7IFxuICAgICAgICAgICAgICAgc3VwZXIoKTtcbiAgfVxuXG4gIHNob3dEaWFsb2coKSB7XG4gICAgdGhpcy5kaXNwbGF5RGlhbG9nID0gdHJ1ZTtcbiAgfVxuICBcbiAgaW9uVmlld0RpZEVudGVyKCl7XG4gICAgdGhpcy5yZXNldCgpO1xuICB9XG5cbiAgZW5hYmxlT3RwRmllbGQoKXtcbiAgICBpZih0aGlzLmxvZ2luRm9ybS5pbnZhbGlkKXtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnV0aWxcbiAgICAgICAgLnNob3dMb2FkZXIoKVxuICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgdGhpcy5jcy5nZW5lcmF0ZUNhcHRjaGFUb2tlbih0aGlzLkxPR0lOX0FVVEhfQ09ERV9BQ1RJT05fTkFNRSlcbiAgICAgICAgLnN1YnNjcmliZSgodG9rZW46IHN0cmluZykgPT4ge1xuICAgICAgICAgIHRoaXMuY3Muc2V0SW52aXNpYmVsQ2FwdGNoYSh0b2tlbik7XG4gICAgICAgICAgdGhpcy5sb2dpblNlcnZpY2VcbiAgICAgICAgICAgICAgLmdlbmVyYXRlT3RwKHRoaXMudXNlcklkLnZhbHVlLCBcImVtYWlsXCIpXG4gICAgICAgICAgICAgIC5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgICAgICAgICBpZighdGhpcy5lbmFibGVPdHApe1xuICAgICAgICAgICAgICAgICAgdGhpcy5zdGVwcGVyLm5leHQoKTtcbiAgICAgICAgICAgICAgICAgIHRoaXMuZW5hYmxlUGFzc3dvcmQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgIHRoaXMuZW5hYmxlU2lnbmluID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgIHRoaXMudXRpbC5zZXRWYWxpZGF0aW9uKHRoaXMub3RwLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCxWYWxpZGF0b3JzLm1pbkxlbmd0aCg2KSwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoNildKTtcbiAgICAgICAgICAgICAgICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5zaWduSW5QYXNzd29yZCk7XG4gICAgICAgICAgICAgICAgICB0aGlzLmVuYWJsZU90cCA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMudXRpbC5oaWRlTG9hZGVyKCk7XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIChlcnIgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMudXRpbC5lcnJvckhhbmRsZXIoZXJyKTtcbiAgICAgICAgICAgICAgICB0aGlzLnV0aWwuaGlkZUxvYWRlcigpO1xuICAgICAgICAgICAgICB9KSk7XG4gICAgICAgICAgfSwgZXJyID0+IHtcbiAgICAgICAgICAgICAgdGhpcy51dGlsLmhpZGVMb2FkZXIoKTtcbiAgICAgICAgICAgICAgdGhpcy51dGlsLnNob3dFcnJvcignVmVyaWZpY2F0aW9uIGF0IHRoZSBib3R0b20gb2YgdGhlIHNjcmVlbiBmYWlsZWQuIFBsZWFzZSByZXRyeS4nKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gIH1cblxuICBlbmFibGVQYXNzd29yZEZpZWxkKCl7XG4gICAgaWYodGhpcy5sb2dpbkZvcm0uaW52YWxpZCl7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmKCF0aGlzLmVuYWJsZVBhc3N3b3JkKXtcbiAgICAgIHRoaXMuZW5hYmxlT3RwID0gZmFsc2U7XG4gICAgICB0aGlzLmVuYWJsZVBhc3N3b3JkID0gdHJ1ZTtcbiAgICAgIHRoaXMuZW5hYmxlU2lnbmluID0gdHJ1ZTtcbiAgICAgIHRoaXMuc3RlcHBlci5uZXh0KCk7XG4gICAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMub3RwKTtcbiAgICB9XG4gIH1cblxuICByZXNldCgpe1xuICAgIHRoaXMuZW5hYmxlT3RwID0gZmFsc2U7XG4gICAgdGhpcy5lbmFibGVQYXNzd29yZCA9IGZhbHNlO1xuICAgIHRoaXMuZW5hYmxlU2lnbmluID0gZmFsc2U7XG4gICAgdGhpcy5zaWduSW5QYXNzd29yZC5yZXNldCgpO1xuICAgIHRoaXMuc2hvd1Byb2dyZXNzQmFyID0gZmFsc2U7XG4gICAgdGhpcy5zdGVwcGVyLnJlc2V0KCk7XG4gICAgdGhpcy5vdHAucmVzZXQoKTtcbiAgICB0aGlzLmxvZ2luVHlwZUZvcm0ucmVzZXQoKTtcbiAgICB0aGlzLmxvZ2luRm9ybS5yZXNldCgpO1xuICAgIHRoaXMubG9naW5Gb3JtRGlyZWN0aXZlLnJlc2V0Rm9ybSgpO1xuICAgIHRoaXMubG9naW5UeXBlRm9ybURpcmVjdGl2ZS5yZXNldEZvcm0oKTtcbiAgICB0aGlzLmxvZ2luU2VydmljZS5yZXNldCgpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5pbml0aWxpemVMb2dpbkZvcm0oKTtcbiAgfVxuICBcbiAgaW5pdGlsaXplTG9naW5Gb3JtKCl7XG4gICAgdGhpcy5sb2dpbkZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgICd1c2VySWQnIDogWycnLFZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgIH0pO1xuXG4gICAgdGhpcy5zaWdudXBGb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICAnc2lnblVwVXNlcklkJyA6IFsnJyxWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgICdwYXNzd29yZCcgOiBbJycsVmFsaWRhdG9ycy5yZXF1aXJlZF0sXG4gICAgICAnZmlyc3ROYW1lJyA6IFsnJyxWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgICdtaWRkbGVOYW1lJyA6IFsnJyxWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgICdsYXN0TmFtZScgOiBbJycsVmFsaWRhdG9ycy5yZXF1aXJlZF0sXG4gICAgICAnZG9iJyA6IFsnJyxWYWxpZGF0b3JzLnJlcXVpcmVkXVxuICAgIH0pO1xuXG4gICAgdGhpcy5sb2dpblR5cGVGb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICAnb3RwJyA6IFsnJ10sXG4gICAgICAnc2lnbkluUGFzc3dvcmQnIDogWycnXSxcbiAgICB9KTtcbiAgfVxuXG5cbiAgZ2V0IHNpZ25JblBhc3N3b3JkKCl7XG4gICAgcmV0dXJuIHRoaXMubG9naW5UeXBlRm9ybS5jb250cm9sc1snc2lnbkluUGFzc3dvcmQnXTtcbiAgfVxuXG4gIGdldCB1c2VySWQoKXtcbiAgICByZXR1cm4gdGhpcy5sb2dpbkZvcm0uY29udHJvbHNbJ3VzZXJJZCddO1xuICB9XG5cbiAgZ2V0IG90cCgpe1xuICAgIHJldHVybiB0aGlzLmxvZ2luVHlwZUZvcm0uY29udHJvbHNbJ290cCddO1xuICB9XG5cbiAgZ2V0IHNpZ25VcFVzZXJJZCgpe1xuICAgIHJldHVybiB0aGlzLnNpZ251cEZvcm0uY29udHJvbHNbJ3NpZ25VcFVzZXJJZCddO1xuICB9XG5cbiAgZ2V0IHBhc3N3b3JkKCl7XG4gICAgcmV0dXJuIHRoaXMuc2lnbnVwRm9ybS5jb250cm9sc1sncGFzc3dvcmQnXTtcbiAgfVxuXG4gIGdldCBmaXJzdE5hbWUoKXtcbiAgICByZXR1cm4gdGhpcy5zaWdudXBGb3JtLmNvbnRyb2xzWydmaXJzdE5hbWUnXTtcbiAgfVxuXG4gIGdldCBtaWRkbGVOYW1lKCl7XG4gICAgcmV0dXJuIHRoaXMuc2lnbnVwRm9ybS5jb250cm9sc1snbWlkZGxlTmFtZSddO1xuICB9XG5cbiAgZ2V0IGxhc3ROYW1lKCl7XG4gICAgcmV0dXJuIHRoaXMuc2lnbnVwRm9ybS5jb250cm9sc1snbGFzdE5hbWUnXTtcbiAgfVxuXG4gIGdldCBkb2IoKXtcbiAgICByZXR1cm4gdGhpcy5zaWdudXBGb3JtLmNvbnRyb2xzWydkb2InXTtcbiAgfVxuICBcblxuXG4gIGdlbmVyYXRlT3RwKGlzUmVnaXN0ZXJlZCA6IGJvb2xlYW4pe1xuICAgIGlmKGlzUmVnaXN0ZXJlZCl7XG4gICAgICB0aGlzLnV0aWwuc2hvd0xvYWRlcigpO1xuICAgICAgdGhpcy5sb2dpblNlcnZpY2VcbiAgICAgICAgICAuZ2VuZXJhdGVPdHAodGhpcy51c2VySWQudmFsdWUsIFwiZW1haWxcIilcbiAgICAgICAgICAuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgICAgICB0aGlzLmVuYWJsZU90cCA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLmVuYWJsZVBhc3N3b3JkID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLnV0aWwuaGlkZUxvYWRlcigpO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgKGVyciA9PiB7XG4gICAgICAgICAgICB0aGlzLnV0aWwuZXJyb3JIYW5kbGVyKGVycik7XG4gICAgICAgICAgICB0aGlzLmVuYWJsZU90cCA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5lbmFibGVQYXNzd29yZCA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy51dGlsLmhpZGVMb2FkZXIoKTtcbiAgICAgICAgICB9KSk7XG4gICAgfWVsc2V7XG4gICAgICB0aGlzLmxvZ2luU2VydmljZVxuICAgICAgICAgIC5nZW5lcmF0ZU90cFVucmVnaXN0ZXJlZCh0aGlzLnNpZ25VcFVzZXJJZC52YWx1ZSlcbiAgICAgICAgICAuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgICAgICB0aGlzLnByZXNlbnRQb3BvdmVyKCk7XG4gICAgICAgICAgfSxcbiAgICAgICAgICAoZXJyID0+IHtcbiAgICAgICAgICAgIHRoaXMudXRpbC5lcnJvckhhbmRsZXIoZXJyKTtcbiAgICAgICAgICB9KSk7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgcHJlc2VudFBvcG92ZXIoKSB7fVxuXG4gIGFzeW5jIHNpZ25Jbigpe1xuICAgIGlmKHRoaXMubG9naW5Gb3JtLmludmFsaWQgfHwgdGhpcy5sb2dpblR5cGVGb3JtLmludmFsaWQpe1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmlzTG9naW5JblByb2dyZXNzID0gdHJ1ZTtcbiAgICAvL3RoaXMuc2hvd1Byb2dyZXNzQmFyID0gdHJ1ZTtcbiAgICBsZXQgYXV0aCA6IGFueT0ge307XG4gICAgYXV0aC51c2VySWQgPSB0aGlzLnVzZXJJZC52YWx1ZTtcbiAgICBpZih0aGlzLmVuYWJsZU90cCl7XG4gICAgICBhdXRoLnBhc3N3b3JkID0gdGhpcy5vdHAudmFsdWU7XG4gICAgfWVsc2UgaWYodGhpcy5lbmFibGVQYXNzd29yZCl7XG4gICAgICBhdXRoLnBhc3N3b3JkID0gdGhpcy5zaWduSW5QYXNzd29yZC52YWx1ZTtcbiAgICB9XG5cbiAgICB0aGlzLnV0aWxcbiAgICAgICAgLnNob3dMb2FkZXIoKVxuICAgICAgICAudGhlbihcbiAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmxvZ2luU2VydmljZS5sb2dpbihhdXRoKVxuICAgICAgICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgICAgICAgcmVzID0+IHtcbiAgICAgICAgICAgICAgICBsZXQgdXNlck1vZGVsIDogVXNlck1vZGVsID0gcmVzO1xuICAgICAgICAgICAgICAgIHRoaXMubG9naW5TZXJ2aWNlLnNldFVzZXIodXNlck1vZGVsKS50aGVuKFxuICAgICAgICAgICAgICAgICAgcmVzID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYodXNlck1vZGVsLmNoYW5nZVB3ZCl7XG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy5uYXYubmF2aWdhdGVSb290KCdjaGFuZ2UtcGFzc3dvcmQnKTtcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNob3dQcm9ncmVzc0JhciA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaXNMb2dpbkluUHJvZ3Jlc3MgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNle1xuICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2hvd1Byb2dyZXNzQmFyID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy5pc0xvZ2luSW5Qcm9ncmVzcyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgIHRoaXMubmF2Lm5hdmlnYXRlUm9vdCgnd2VsY29tZScpXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy51dGlsLmhpZGVMb2FkZXIoKTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBlcnIgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMub3RwLnNldFZhbHVlKCcnKTtcbiAgICAgICAgICAgICAgICBpZighdGhpcy5lbmFibGVPdHApe1xuICAgICAgICAgICAgICAgICAgdGhpcy5yZXNldCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLnNob3dQcm9ncmVzc0JhciA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHRoaXMuaXNMb2dpbkluUHJvZ3Jlc3MgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB0aGlzLnV0aWwuZXJyb3JIYW5kbGVyKGVycik7XG4gICAgICAgICAgICAgICAgdGhpcy51dGlsLmhpZGVMb2FkZXIoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgfVxuXG4gIHNpZ25VcChvdHApe1xuXG4gICAgaWYob3RwID09IG51bGwgfHwgb3RwID09IHVuZGVmaW5lZCl7XG4gICAgICB0aGlzLnV0aWwuc2hvd0Vycm9yKCdPVFAgVmVyaWZpY2F0aW9uIEZhaWxlZC4gUGxlYXNlIHZlcmlmeSBhZ2Fpbi4nKTtcbiAgICB9XG5cbiAgICBsZXQgdXNlck1vZGVsIDogVXNlck1vZGVsID0gbmV3IFVzZXJNb2RlbCgpO1xuICAgIHVzZXJNb2RlbC5maXJzdE5hbWUgPSB0aGlzLmZpcnN0TmFtZS52YWx1ZTtcbiAgICB1c2VyTW9kZWwubWlkZGxlTmFtZSA9IHRoaXMubWlkZGxlTmFtZS52YWx1ZTtcbiAgICB1c2VyTW9kZWwubGFzdE5hbWUgPSB0aGlzLmxhc3ROYW1lLnZhbHVlO1xuICAgIHVzZXJNb2RlbC5kb2IgPSB0aGlzLmRvYi52YWx1ZTtcbiAgICB1c2VyTW9kZWwudXNlcm5hbWUgPSB0aGlzLnNpZ25VcFVzZXJJZC52YWx1ZTtcbiAgICB1c2VyTW9kZWwucGFzc3dvcmQgPSB0aGlzLnBhc3N3b3JkLnZhbHVlLnRyaW0oKTtcblxuICAgIHRoaXMubG9naW5TZXJ2aWNlLnNldFVzZXIodXNlck1vZGVsKTtcbiAgICB0aGlzLmxvZ2luU2VydmljZS5zaWduVXAodXNlck1vZGVsKS5zdWJzY3JpYmUoXG4gICAgICByZXMgPT4ge1xuICAgICAgICB0aGlzLm9wdCA9ICdzaWduaW4nO1xuICAgICAgICB0aGlzLnV0aWwuc3VjY2VzcygnWW91IGhhdmUgYmVlbiBzdWNjZXNzZnVsbHkgcmVnaXN0ZXJlZCBpbiBSZUVtcGxveU1TLiBQbGVhc2UgbG9naW4gdG8gdXNlIHRvIHRoZSBmZWF0dXJlcyBvZiB0aGUgYXBwLicpO1xuICAgICAgICB0aGlzLnNpZ251cEZvcm0ucmVzZXQoKTtcbiAgICAgICAgdGhpcy5sb2dpblNlcnZpY2UucmVzZXQoKTtcbiAgICAgIH0sXG4gICAgICBlcnIgPT4ge1xuICAgICAgICB0aGlzLnV0aWwuZXJyb3JIYW5kbGVyKGVycik7XG4gICAgICAgIHRoaXMubG9naW5TZXJ2aWNlLnJlc2V0KCk7XG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIGNoYW5nZUxhbmd1YWdlKGV2ZW50KSB7XG4gICAgY29uc3QgcG9wb3ZlciA9IGF3YWl0IHRoaXMucG9wdXAuY3JlYXRlKHtcbiAgICAgIGNvbXBvbmVudDogTGFuZ3VhZ2VQYWdlLFxuICAgICAgZXZlbnQ6IGV2ZW50LFxuICAgICAgdHJhbnNsdWNlbnQ6IHRydWUsXG4gICAgICBiYWNrZHJvcERpc21pc3M6IGZhbHNlLFxuICAgICAgY3NzQ2xhc3M6ICdib3R0b20tc2hlZXQtcG9wb3ZlcidcbiAgICB9KTtcblxuICAgIHJldHVybiBhd2FpdCBwb3BvdmVyLnByZXNlbnQoKTtcbiAgfVxuXG4gIGluaXRpYXRlRm9yZ290UGFzc3dvcmQoKXtcbiAgICBpZih0aGlzLmxvZ2luRm9ybS5pbnZhbGlkKXtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy51dGlsXG4gICAgICAgIC5zaG93TG9hZGVyKClcbiAgICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICAgIHRoaXMubG9naW5TZXJ2aWNlXG4gICAgICAgICAgICAgIC5pbml0aWF0ZUZvcmdvdFBhc3N3b3JkKHRoaXMudXNlcklkLnZhbHVlKVxuICAgICAgICAgICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgIHJlcyA9PiB7XG4gICAgICAgICAgICAgICAgICB0aGlzLnV0aWwuc3VjY2VzcygnWW91ciBwYXNzd29yZCBoYXMgYmVlbiByZXNldC4gIFlvdSBzaG91bGQgcmVjZWl2ZSBhbiBlbWFpbCB3aXRoIGEgdGVtcG9yYXJ5IHBhc3N3b3JkIGFuZCBsb2dpbiBpbnN0cnVjdGlvbnMuJyk7XG4gICAgICAgICAgICAgICAgICB0aGlzLmxvZ2luRm9ybS5yZXNldCgpO1xuICAgICAgICAgICAgICAgICAgdGhpcy5sb2dpblNlcnZpY2UucmVzZXQoKTtcbiAgICAgICAgICAgICAgICAgIHRoaXMubG9naW5Gb3JtRGlyZWN0aXZlLnJlc2V0Rm9ybSgpO1xuICAgICAgICAgICAgICAgICAgdGhpcy51dGlsLmhpZGVMb2FkZXIoKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGVyciA9PiB7XG4gICAgICAgICAgICAgICAgICB0aGlzLnV0aWwuZXJyb3JIYW5kbGVyKGVycik7XG4gICAgICAgICAgICAgICAgICB0aGlzLmxvZ2luRm9ybS5yZXNldCgpO1xuICAgICAgICAgICAgICAgICAgdGhpcy5sb2dpblNlcnZpY2UucmVzZXQoKTtcbiAgICAgICAgICAgICAgICAgIHRoaXMubG9naW5Gb3JtRGlyZWN0aXZlLnJlc2V0Rm9ybSgpO1xuICAgICAgICAgICAgICAgICAgdGhpcy51dGlsLmhpZGVMb2FkZXIoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICB9XG59XG4iLCI8aW9uLWNvbnRlbnQgY2xhc3M9XCJiYWNrZ3JvdW5kXCI+XHJcbiAgPHAtdG9hc3QgcG9zaXRpb249XCJ0b3AtY2VudGVyXCIgPjwvcC10b2FzdD5cclxuICAgIDxhcHAtY29udGVudCBbc2hvd0hlbHBdPVwidHJ1ZVwiPlxyXG4gICAgICA8YXBwLXBhZ2Ugc3JjPVwiYXNzZXRzL2ljb24vUmVFbXBsb3l7e3V0aWwuZ2V0U3RhdGUoKX19LnN2Z1wiIFtoaWRlQ2FyZF09XCJ0cnVlXCI+XHJcbiAgICAgICAgPGRpdj5cclxuICAgICAgICAgIDxhcHAtY2FyZCB0aXRsZT1cImxvZ2luLmNhcmQudGl0bGVcIj5cclxuICAgICAgICAgICAgPHAtZGlhbG9nIGhlYWRlcj1cIk1lc3NhZ2VcIiBbKHZpc2libGUpXT1cImRpc3BsYXlEaWFsb2dcIiBtb2RhbD1cInRydWVcIj5cclxuICAgICAgICAgICAgICBJZiB5b3UgZm9yZ290IHlvdXIgdXNlciBJRCwgcGxlYXNlIGNvbnRhY3QgaGVscGRlc2sgZHVyaW5nIGJ1c2luZXNzIGhvdXJzLlxyXG4gICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpc01TKClcIj5cclxuICAgICAgICAgICAgICAgIDxici8+LSBFbXBsb3llcnMgbWF5IGNhbGwgNjAxLTMyMS02MzM0IFxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpc01FKClcIj5cclxuICAgICAgICAgICAgICAgIDxici8+LSBFbXBsb3llcnMgbWF5IGNhbGwgMjA3LTYyMS01MTIwXHJcbiAgICAgICAgICAgICAgICA8YnIvPi0gQ2xhaW1hbnRzIG1heSBjYWxsIDEtODAwLTU5My03NjYwLlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxici8+XHJcbiAgICAgICAgICAgICAgPHAtZm9vdGVyPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlvbi10ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICA8aW9uLWJ1dHRvbiBzaGFwZT1cInJvdW5kXCIgdHlwZT1cInN1Ym1pdFwiIChjbGljayk9XCJkaXNwbGF5RGlhbG9nID0gIWRpc3BsYXlEaWFsb2dcIiBjb2xvcj1cInN1Y2Nlc3NcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aW9uLWljb24gc2xvdD1cInN0YXJ0XCIgbmFtZT1cImNsb3NlLXNoYXJwXCI+PC9pb24taWNvbj5cclxuICAgICAgICAgICAgICAgICAgICBDbG9zZVxyXG4gICAgICAgICAgICAgICAgICA8L2lvbi1idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L3AtZm9vdGVyPlxyXG4gICAgICAgICAgPC9wLWRpYWxvZz5cclxuICAgICAgICAgICAgPG1hdC1ob3Jpem9udGFsLXN0ZXBwZXIgW2xpbmVhcl09XCJ0cnVlXCIgI3N0ZXBwZXI+XHJcbiAgICAgICAgICAgICAgPG1hdC1zdGVwIFtzdGVwQ29udHJvbF09XCJsb2dpbkZvcm1cIj5cclxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBtYXRTdGVwTGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtbXNnIGtleT1cImxvZ2luLmNhcmQuc3RlcDFcIj48L2FwcC1tc2c+XHJcbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJsb2dpbkZvcm1cIiAjbG9naW5Gb3JtRGlyZWN0aXZlPVwibmdGb3JtXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpb24tcm93IGNvbG9yPVwicHJpbWFyeVwiIGNsYXNzPVwiaW9uLWp1c3RpZnktY29udGVudC1jZW50ZXJcIiBqb3lyaWRlU3RlcD1cInN0ZXAxXCIgdGl0bGU9XCJ7eydndWlkZS5sb2dpbi51c2VyaWQudGl0bGUnIHwgdHJhbnNsYXRlfX1cIiBcclxuICAgICAgICAgICAgICAgICAgdGV4dD1cInt7J2d1aWRlLmxvZ2luLnVzZXJpZC5tZXNzYWdlJyB8IHRyYW5zbGF0ZX19XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlvbi1jb2wgY2xhc3M9XCJpb24tYWxpZ24tc2VsZi1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpb24tanVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInAtZmxvYXQtbGFiZWxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBwSW5wdXRUZXh0IFtmb3JtQ29udHJvbF09XCJ1c2VySWRcIiBpZD1cInVzZXJJZFwiIGlubGVuZ3RoPVwiNVwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiIGFwcEF1dG9mb2N1cz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiZmxvYXQtaW5wdXRcIj5Vc2VyIElEPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtmaWVsZF09J3VzZXJJZCcgW2Zvcm1dPVwibG9naW5UeXBlRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAnVXNlciBJRCBpcyByZXF1aXJlZC4nLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWlubGVuZ3RoOiAnVXNlciBJRCBzaG91bGQgaGF2ZSBtaW5pbXVtIDUgY2hhcmFjdGVycy4nXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgICAgICAgIDwvaW9uLXJvdz5cclxuICAgICAgICAgICAgICAgICAgPGlvbi1yb3cgY2xhc3M9XCJqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCIgam95cmlkZVN0ZXA9XCJzdGVwMlwiIHRpdGxlPVwie3snZ3VpZGUubG9naW4ub3B0aW9ucy50aXRsZScgfCB0cmFuc2xhdGV9fVwiIFxyXG4gICAgICAgICAgICAgICAgICB0ZXh0PVwie3snZ3VpZGUubG9naW4ub3B0aW9ucy5tZXNzYWdlJyB8IHRyYW5zbGF0ZX19XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlvbi1jb2w+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8aW9uLWJ1dHRvbiBzaGFwZT1cInJvdW5kXCIgdHlwZT1cInN1Ym1pdFwiIGV4cGFuZD1cImJsb2NrXCIgKGNsaWNrKT1cImVuYWJsZVBhc3N3b3JkRmllbGQoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yPVwic3VjY2Vzc1wiIHBUb29sdGlwPVwiTG9naW4gd2l0aCBwYXNzd29yZFwiIHRvb2x0aXBQb3NpdGlvbj1cImJvdHRvbVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGpveXJpZGVTdGVwPVwic3RlcDNcIiB0aXRsZT1cInt7J2d1aWRlLmxvZ2luLnBhc3N3b3JkLnRpdGxlJyB8IHRyYW5zbGF0ZX19XCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dD1cInt7J2d1aWRlLmxvZ2luLnBhc3N3b3JkLm1lc3NhZ2UnIHwgdHJhbnNsYXRlfX1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlvbi1pY29uIHNsb3Q9XCJzdGFydFwiIG5hbWU9XCJsb2ctaW4tb3V0bGluZVwiPjwvaW9uLWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFBhc3N3b3JkXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2lvbi1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpb24tY29sPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGlvbi1idXR0b24gc2hhcGU9XCJyb3VuZFwiIHR5cGU9XCJzdWJtaXRcIiBleHBhbmQ9XCJibG9ja1wiIGV4cGFuZD1cImJsb2NrXCIgKGNsaWNrKT1cImVuYWJsZU90cEZpZWxkKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcj1cInN1Y2Nlc3NcIiBwVG9vbHRpcD1cIkxvZ2luIHdpdGggYXV0aGNvZGVcIiB0b29sdGlwUG9zaXRpb249XCJib3R0b21cIiAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgam95cmlkZVN0ZXA9XCJzdGVwNFwiIHRpdGxlPVwie3snZ3VpZGUubG9naW4uYXV0aGNvZGUudGl0bGUnIHwgdHJhbnNsYXRlfX1cIiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0PVwie3snZ3VpZGUubG9naW4uYXV0aGNvZGUubWVzc2FnZScgfCB0cmFuc2xhdGV9fVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW9uLWljb24gc2xvdD1cInN0YXJ0XCIgbmFtZT1cImxvZy1pbi1vdXRsaW5lXCI+PC9pb24taWNvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgQXV0aGNvZGVcclxuICAgICAgICAgICAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgICAgICAgIDwvaW9uLXJvdz5cclxuICAgICAgICAgICAgICAgICAgPGlvbi1yb3cgY2xhc3M9XCJqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlvbi1jb2wgY2xhc3M9XCJpb24tdGV4dC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxpb24tYnV0dG9uIGpveXJpZGVTdGVwPVwic3RlcDVcIiB0aXRsZT1cIkZvcmdvdCBVc2VyIElEP1wiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgdGV4dD1cIlByb3ZpZGVzIGFzc2lzdGFuY2UgaWYgeW91IGZvcmdldCB5b3VyIFVzZXIgSUQgdG8gbG9naW5cIiBcclxuICAgICAgICAgICAgICAgICAgICAgICBzaGFwZT1cInJvdW5kXCIgdHlwZT1cInN1Ym1pdFwiIGV4cGFuZD1cIm91dGxpbmVcIiBjb2xvcj1cInN1Y2Nlc3NcIiBwVG9vbHRpcD1cIkZvcmdvdCBVc2VyIElEP1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvb2x0aXBQb3NpdGlvbj1cImJvdHRvbVwiIHNpemU9XCJzbWFsbFwiIChjbGljayk9XCJzaG93RGlhbG9nKClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgRm9yZ290IFVzZXIgSUQ/XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2lvbi1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpb24tY29sIGNsYXNzPVwiaW9uLXRleHQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8aW9uLWJ1dHRvbiBcclxuICAgICAgICAgICAgICAgICAgICAgIGpveXJpZGVTdGVwPVwic3RlcDZcIiB0aXRsZT1cIkZvcmdvdCBwYXNzd29yZD9cIiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0PVwiUHJvdmlkZXMgYXNzaXN0YW5jZSB0byByZXNldCB5b3VyIHBhc3N3b3JkIHVzaW5nIHlvdXIgcmVnaXN0ZXJlZCBlbWFpbCBhZGRyZXNzXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICBzaGFwZT1cInJvdW5kXCIgdHlwZT1cInN1Ym1pdFwiIGV4cGFuZD1cIm91dGxpbmVcIiBjb2xvcj1cInN1Y2Nlc3NcIiBwVG9vbHRpcD1cIkZvcmdvdCBQYXNzd29yZD9cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0b29sdGlwUG9zaXRpb249XCJib3R0b21cIiBzaXplPVwic21hbGxcIiAoY2xpY2spPVwiaW5pdGlhdGVGb3Jnb3RQYXNzd29yZCgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEZvcmdvdCBQYXNzd29yZD9cclxuICAgICAgICAgICAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgICAgICAgIDwvaW9uLXJvdz5cclxuICAgICAgICAgICAgICAgIDwvZm9ybT5cclxuICAgICAgICAgICAgICA8L21hdC1zdGVwPlxyXG4gICAgICAgICAgICAgIDxtYXQtc3RlcD5cclxuICAgICAgICAgICAgICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwibG9naW5UeXBlRm9ybVwiICNsb2dpblR5cGVGb3JtRGlyZWN0aXZlPVwibmdGb3JtXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBtYXRTdGVwTGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPGFwcC1tc2cga2V5PVwibG9naW4uY2FyZC5zdGVwMlwiPjwvYXBwLW1zZz5cclxuICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgPGlvbi1ncmlkIGNsYXNzPVwiaW9uLXBhZGRpbmctdG9wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlvbi1yb3cgY29sb3I9XCJwcmltYXJ5XCIgY2xhc3M9XCJpb24tanVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGlvbi1jb2wgY2xhc3M9XCJpb24tYWxpZ24tc2VsZi1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlvbi1qdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCIgKGNhcHNMb2NrKT1cImNhcHNPbj0kZXZlbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsIGNsYXNzPVwiaW9uLXBhZGRpbmctcmlnaHRcIj5Vc2VyIElEPC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbCBjbGFzcz1cImlvbi1wYWRkaW5nLWxlZnRcIiBzdHlsZT1cImZsb2F0OiByaWdodDtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhcHAtbWFzayBbdmFsdWVdPVwidXNlcklkLnZhbHVlICArICcnXCIgKm5nSWY9XCJ1c2VySWQudmFsdWVcIj48L2FwcC1tYXNrPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxiciAvPjxiciAvPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZW5hYmxlT3RwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInAtZmxvYXQtbGFiZWxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAtcGFzc3dvcmQgW2Zvcm1Db250cm9sXT1cIm90cFwiIGlucHV0SWQ9XCJzaWduSW5QYXNzd29yZFwiIFt0b2dnbGVNYXNrXT0ndHJ1ZScgW2ZlZWRiYWNrXT0nZmFsc2UnPjwvcC1wYXNzd29yZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImZsb2F0LWlucHV0XCI+QXV0aGNvZGU8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbZmllbGRdPSdvdHAnIFtmb3JtXT1cImxvZ2luVHlwZUZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdBdXRoY29kZSBpcyByZXF1aXJlZC4nLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbmxlbmd0aDogJ0F1dGhjb2RlIHNob3VsZCBoYXZlIG1pbmltdW0gNiBjaGFyYWN0ZXJzLidcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZW5hYmxlUGFzc3dvcmRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicC1mbG9hdC1sYWJlbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cC1wYXNzd29yZCBbZm9ybUNvbnRyb2xdPVwic2lnbkluUGFzc3dvcmRcIiBpbnB1dElkPVwic2lnbkluUGFzc3dvcmRcIiBbdG9nZ2xlTWFza109J3RydWUnIFtmZWVkYmFja109J2ZhbHNlJz48L3AtcGFzc3dvcmQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJmbG9hdC1pbnB1dFwiPlBhc3N3b3JkPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2ZpZWxkXT0nc2lnbkluUGFzc3dvcmQnIFtmb3JtXT1cImxvZ2luVHlwZUZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdQYXNzd29yZCBpcyByZXF1aXJlZC4nXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgKm5nSWY9XCJjYXBzT25cIiBzdHlsZT1cImNvbG9yOiNiMzQxMWQ7XCI+PHN0cm9uZz5DYXBzIExvY2sgaXMgT248L3N0cm9uZz48L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlvbi1qdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGlvbi1ncmlkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlvbi1yb3cgY2xhc3M9XCJqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCIgW2hpZGRlbl09XCIhZW5hYmxlU2lnbmluXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpb24tY29sPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpb24tYnV0dG9uIHNoYXBlPVwicm91bmRcIiB0eXBlPVwic3VibWl0XCIgZXhwYW5kPVwiYmxvY2tcIiAoY2xpY2spPVwic2lnbkluKClcIiBjb2xvcj1cInN1Y2Nlc3NcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpb24taWNvbiBzbG90PVwic3RhcnRcIiBuYW1lPVwibG9nLWluLW91dGxpbmVcIj48L2lvbi1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2lnbiBJblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW9uLWNvbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW9uLWJ1dHRvbiBzaGFwZT1cInJvdW5kXCIgdHlwZT1cInJlc2V0XCIgZXhwYW5kPVwiYmxvY2tcIiBleHBhbmQ9XCJibG9ja1wiIChjbGljayk9XCJyZXNldCgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yPVwibWVkaXVtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW9uLWljb24gc2xvdD1cInN0YXJ0XCIgbmFtZT1cInJlZnJlc2hcIj48L2lvbi1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzZXRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2lvbi1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvaW9uLXJvdz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2lvbi1ncmlkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxiciAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpb24tZ3JpZCAqbmdJZj1cImZhbHNlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW9uLXJvdyBjbGFzcz1cImp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlvbi1jb2wgY2xhc3M9XCJpb24tdGV4dC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPVwiI1wiPkZvcmdvdCB1c2VyIElEPzwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW9uLWNvbCBjbGFzcz1cImlvbi10ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9XCIjXCI+Rm9yZ290IFBhc3N3b3JkPzwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9pb24tcm93PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvaW9uLWdyaWQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gIFxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvaW9uLXJvdz5cclxuICAgICAgICAgICAgICAgICAgPC9pb24tZ3JpZD5cclxuICAgICAgICAgICAgICAgIDwvZm9ybT5cclxuICAgICAgICAgICAgICA8L21hdC1zdGVwPlxyXG4gICAgICAgICAgICA8L21hdC1ob3Jpem9udGFsLXN0ZXBwZXI+XHJcbiAgXHJcbiAgICAgICAgICA8L2FwcC1jYXJkPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImctc2lnbmluMlwiIGRhdGEtd2lkdGg9XCIzMDBcIiBkYXRhLWhlaWdodD1cIjIwMFwiIGRhdGEtbG9uZ3RpdGxlPVwidHJ1ZVwiPjwvZGl2PiAtLT5cclxuICAgICAgPC9hcHAtcGFnZT5cclxuICAgIDwvYXBwLWNvbnRlbnQ+XHJcbiAgPC9pb24tY29udGVudD5cclxuXHJcblxyXG5cclxuIl19
531
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJldXNhLWFwcC1saWIvc3JjL2xpYi9wYWdlcy9jb21tb24vbG9naW4vbG9naW4uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJldXNhLWFwcC1saWIvc3JjL2xpYi9wYWdlcy9jb21tb24vbG9naW4vbG9naW4uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxTQUFTLEVBQTZELE1BQU0sZUFBZSxDQUFDO0FBQ3hILE9BQU8sRUFBc0IsVUFBVSxFQUE2RCxNQUFNLGdCQUFnQixDQUFDO0FBSTNILE9BQU8sRUFBRSxRQUFRLEVBQTJCLE1BQU0sZ0JBQWdCLENBQUM7QUFHbkUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUNEdkQsMkJBQW9CO0lBQ2xCLHFCQUFLO0lBQUEsa0RBQ1A7SUFBQSxpQkFBTTs7O0lBQ04sMkJBQW9CO0lBQ2xCLHFCQUFLO0lBQUEsa0RBQ0w7SUFBQSxxQkFBSztJQUFBLHFEQUNQO0lBQUEsaUJBQU07OztJQWNGLDhCQUEwQzs7O0lBK0R4Qyw4QkFBMEM7OztJQVFsQywrQkFBdUU7OztJQUE3RCxnREFBNEI7Ozs7SUFJeEMsMkJBQXVCLGVBQUE7SUFFbkIsaUNBQTZHO0lBQzdHLGlDQUF5QjtJQUFBLHdCQUFRO0lBQUEsaUJBQVEsRUFBQTtJQUUzQyxnQ0FHaUI7SUFDbkIsaUJBQU07Ozs7SUFQVSxlQUFtQjtJQUFuQix3Q0FBbUIsb0JBQUEsbUJBQUE7SUFHdEIsZUFBYTtJQUFiLGtDQUFhLGFBQUEsc0NBQUE7Ozs7SUFNMUIs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LEVBQUMsTUFBTSxFQUFHLEtBQUssRUFBQztZQUVjLHNCQUFzQjtrQkFBcEYsU0FBUzttQkFBQyx3QkFBd0IsRUFBRSxFQUFDLE1BQU0sRUFBRyxLQUFLLEVBQUM7O2tGQWQxQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiwgRGlyZWN0aXZlLCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgSG9zdExpc3RlbmVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFVudHlwZWRGb3JtQnVpbGRlciwgVmFsaWRhdG9ycywgVW50eXBlZEZvcm1Hcm91cCwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cERpcmVjdGl2ZSwgTmdGb3JtIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBQb3BvdmVyQ29udHJvbGxlciwgTmF2Q29udHJvbGxlciB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcclxuaW1wb3J0IHtNYXRTdGVwcGVyfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zdGVwcGVyJztcclxuaW1wb3J0IHsgQmFzZVBhZ2UsIEN1c3RvbUVycm9yU3RhdGVNYXRjaGVyIH0gZnJvbSAnLi4vLi4vQmFzZVBhZ2UnO1xyXG5pbXBvcnQgeyBMb2dpblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9sb2dpbi9sb2dpbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVXRpbFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy91dGlsL3V0aWwuc2VydmljZSc7XHJcbmltcG9ydCB7IFVzZXJNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9Vc2VyTW9kZWwnO1xyXG5pbXBvcnQgeyBMYW5ndWFnZVBhZ2UgfSBmcm9tICcuLi8uLi9wb3BvdmVycy9sYW5ndWFnZS9sYW5ndWFnZS5wYWdlJztcclxuaW1wb3J0IHsgTGliQ29uc3RhbnRzIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL0xpYkNvbnN0YW50cyc7XHJcbmltcG9ydCB7IENhcHRjaGFTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvY2FwdGNoYS9jYXB0Y2hhLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtbG9naW4nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9sb2dpbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vbG9naW4uY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTG9naW5Db21wb25lbnQgZXh0ZW5kcyBCYXNlUGFnZSBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIHByaXZhdGUgTE9HSU5fQVVUSF9DT0RFX0FDVElPTl9OQU1FID0gXCJMT0dJTl9BVVRIX0NPREVcIjtcclxuXHJcbiAgcHVibGljIGNhcHNPbiA9IGZhbHNlO1xyXG5cclxuICBwdWJsaWMgZGlzcGxheURpYWxvZyA9IGZhbHNlO1xyXG5cclxuICBAVmlld0NoaWxkKCdsb2dpblJlZicsIHtzdGF0aWM6IHRydWUgfSkgbG9naW5FbGVtZW50OiBFbGVtZW50UmVmO1xyXG5cclxuICBAVmlld0NoaWxkKCdzdGVwcGVyJykgc3RlcHBlcjogTWF0U3RlcHBlcjtcclxuXHJcbiAgQFZpZXdDaGlsZCgnbG9naW5Gb3JtRGlyZWN0aXZlJywge3N0YXRpYyA6IGZhbHNlfSkgcHJpdmF0ZSBsb2dpbkZvcm1EaXJlY3RpdmU6IE5nRm9ybTtcclxuXHJcbiAgQFZpZXdDaGlsZCgnbG9naW5UeXBlRm9ybURpcmVjdGl2ZScsIHtzdGF0aWMgOiBmYWxzZX0pIHByaXZhdGUgbG9naW5UeXBlRm9ybURpcmVjdGl2ZTogTmdGb3JtO1xyXG5cclxuICBhdXRoMjogYW55O1xyXG4gIHByaXZhdGUgbG9naW5FcnJvclN0cmluZzogc3RyaW5nO1xyXG4gIHB1YmxpYyBvcHQ6IHN0cmluZyA9ICdzaWduaW4nO1xyXG4gIHB1YmxpYyBsb2dpbkZvcm0gOiBVbnR5cGVkRm9ybUdyb3VwO1xyXG4gIHB1YmxpYyBsb2dpblR5cGVGb3JtIDogVW50eXBlZEZvcm1Hcm91cDtcclxuICBwdWJsaWMgc2lnbnVwRm9ybSA6IFVudHlwZWRGb3JtR3JvdXA7XHJcbiAgcHVibGljIGVuYWJsZU90cCA6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgZW5hYmxlUGFzc3dvcmQgOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIGVuYWJsZVNpZ25pbiA6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgaXNMb2dpbkluUHJvZ3Jlc3MgPSBmYWxzZTtcclxuICBwdWJsaWMgZmFxID0gJ3B1YSc7XHJcbiAgcHVibGljIHNob3dQcm9ncmVzc0JhciA9IGZhbHNlO1xyXG4gIHB1YmxpYyBoaWRlUGFzc3dvcmQgPSB0cnVlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZmIgOiBVbnR5cGVkRm9ybUJ1aWxkZXIsIHB1YmxpYyBsb2dpblNlcnZpY2UgOiBMb2dpblNlcnZpY2UsIHB1YmxpYyByb3V0ZXIgOiBSb3V0ZXIsIHB1YmxpYyB1dGlsIDogVXRpbFNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgcHVibGljIHBvcHVwOiBQb3BvdmVyQ29udHJvbGxlciwgcHJpdmF0ZSBuYXY6IE5hdkNvbnRyb2xsZXIsIHByaXZhdGUgY3M6IENhcHRjaGFTZXJ2aWNlKSB7IFxyXG4gICAgICAgICAgICAgICBzdXBlcigpO1xyXG4gIH1cclxuXHJcbiAgc2hvd0RpYWxvZygpIHtcclxuICAgIHRoaXMuZGlzcGxheURpYWxvZyA9IHRydWU7XHJcbiAgfVxyXG4gIFxyXG4gIGlvblZpZXdEaWRFbnRlcigpe1xyXG4gICAgdGhpcy5yZXNldCgpO1xyXG4gIH1cclxuXHJcbiAgZW5hYmxlT3RwRmllbGQoKXtcclxuICAgIGlmKHRoaXMubG9naW5Gb3JtLmludmFsaWQpe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy51dGlsXHJcbiAgICAgICAgLnNob3dMb2FkZXIoKVxyXG4gICAgICAgIC50aGVuKCgpID0+IHtcclxuICAgICAgICAgIHRoaXMuY3MuZ2VuZXJhdGVDYXB0Y2hhVG9rZW4odGhpcy5MT0dJTl9BVVRIX0NPREVfQUNUSU9OX05BTUUpXHJcbiAgICAgICAgLnN1YnNjcmliZSgodG9rZW46IHN0cmluZykgPT4ge1xyXG4gICAgICAgICAgdGhpcy5jcy5zZXRJbnZpc2liZWxDYXB0Y2hhKHRva2VuKTtcclxuICAgICAgICAgIHRoaXMubG9naW5TZXJ2aWNlXHJcbiAgICAgICAgICAgICAgLmdlbmVyYXRlT3RwKHRoaXMudXNlcklkLnZhbHVlLCBcImVtYWlsXCIpXHJcbiAgICAgICAgICAgICAgLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYoIXRoaXMuZW5hYmxlT3RwKXtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5zdGVwcGVyLm5leHQoKTtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5lbmFibGVQYXNzd29yZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmVuYWJsZVNpZ25pbiA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMudXRpbC5zZXRWYWxpZGF0aW9uKHRoaXMub3RwLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCxWYWxpZGF0b3JzLm1pbkxlbmd0aCg2KSwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoNildKTtcclxuICAgICAgICAgICAgICAgICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLnNpZ25JblBhc3N3b3JkKTtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5lbmFibGVPdHAgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdGhpcy51dGlsLmhpZGVMb2FkZXIoKTtcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIChlcnIgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy51dGlsLmVycm9ySGFuZGxlcihlcnIpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy51dGlsLmhpZGVMb2FkZXIoKTtcclxuICAgICAgICAgICAgICB9KSk7XHJcbiAgICAgICAgICB9LCBlcnIgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMudXRpbC5oaWRlTG9hZGVyKCk7XHJcbiAgICAgICAgICAgICAgdGhpcy51dGlsLnNob3dFcnJvcignQ2FwdGNoYSB2ZXJpZmljYXRpb24gZmFpbGVkLiBQbGVhc2UgcmV0cnkuJyk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuICB9XHJcblxyXG4gIGVuYWJsZVBhc3N3b3JkRmllbGQoKXtcclxuICAgIGlmKHRoaXMubG9naW5Gb3JtLmludmFsaWQpe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZighdGhpcy5lbmFibGVQYXNzd29yZCl7XHJcbiAgICAgIHRoaXMuZW5hYmxlT3RwID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuZW5hYmxlUGFzc3dvcmQgPSB0cnVlO1xyXG4gICAgICB0aGlzLmVuYWJsZVNpZ25pbiA9IHRydWU7XHJcbiAgICAgIHRoaXMuc3RlcHBlci5uZXh0KCk7XHJcbiAgICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5vdHApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVzZXQoKXtcclxuICAgIHRoaXMuZW5hYmxlT3RwID0gZmFsc2U7XHJcbiAgICB0aGlzLmVuYWJsZVBhc3N3b3JkID0gZmFsc2U7XHJcbiAgICB0aGlzLmVuYWJsZVNpZ25pbiA9IGZhbHNlO1xyXG4gICAgdGhpcy5zaWduSW5QYXNzd29yZC5yZXNldCgpO1xyXG4gICAgdGhpcy5zaG93UHJvZ3Jlc3NCYXIgPSBmYWxzZTtcclxuICAgIHRoaXMuc3RlcHBlci5yZXNldCgpO1xyXG4gICAgdGhpcy5vdHAucmVzZXQoKTtcclxuICAgIHRoaXMubG9naW5UeXBlRm9ybS5yZXNldCgpO1xyXG4gICAgdGhpcy5sb2dpbkZvcm0ucmVzZXQoKTtcclxuICAgIHRoaXMubG9naW5Gb3JtRGlyZWN0aXZlLnJlc2V0Rm9ybSgpO1xyXG4gICAgdGhpcy5sb2dpblR5cGVGb3JtRGlyZWN0aXZlLnJlc2V0Rm9ybSgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmluaXRpbGl6ZUxvZ2luRm9ybSgpO1xyXG4gIH1cclxuICBcclxuICBpbml0aWxpemVMb2dpbkZvcm0oKXtcclxuICAgIHRoaXMubG9naW5Gb3JtID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgICd1c2VySWQnIDogWycnLFZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5zaWdudXBGb3JtID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgICdzaWduVXBVc2VySWQnIDogWycnLFZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG4gICAgICAncGFzc3dvcmQnIDogWycnLFZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG4gICAgICAnZmlyc3ROYW1lJyA6IFsnJyxWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuICAgICAgJ21pZGRsZU5hbWUnIDogWycnLFZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG4gICAgICAnbGFzdE5hbWUnIDogWycnLFZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG4gICAgICAnZG9iJyA6IFsnJyxWYWxpZGF0b3JzLnJlcXVpcmVkXVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5sb2dpblR5cGVGb3JtID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgICdvdHAnIDogWycnXSxcclxuICAgICAgJ3NpZ25JblBhc3N3b3JkJyA6IFsnJ10sXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG5cclxuICBnZXQgc2lnbkluUGFzc3dvcmQoKXtcclxuICAgIHJldHVybiB0aGlzLmxvZ2luVHlwZUZvcm0uY29udHJvbHNbJ3NpZ25JblBhc3N3b3JkJ107XHJcbiAgfVxyXG5cclxuICBnZXQgdXNlcklkKCl7XHJcbiAgICByZXR1cm4gdGhpcy5sb2dpbkZvcm0uY29udHJvbHNbJ3VzZXJJZCddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IG90cCgpe1xyXG4gICAgcmV0dXJuIHRoaXMubG9naW5UeXBlRm9ybS5jb250cm9sc1snb3RwJ107XHJcbiAgfVxyXG5cclxuICBnZXQgc2lnblVwVXNlcklkKCl7XHJcbiAgICByZXR1cm4gdGhpcy5zaWdudXBGb3JtLmNvbnRyb2xzWydzaWduVXBVc2VySWQnXTtcclxuICB9XHJcblxyXG4gIGdldCBwYXNzd29yZCgpe1xyXG4gICAgcmV0dXJuIHRoaXMuc2lnbnVwRm9ybS5jb250cm9sc1sncGFzc3dvcmQnXTtcclxuICB9XHJcblxyXG4gIGdldCBmaXJzdE5hbWUoKXtcclxuICAgIHJldHVybiB0aGlzLnNpZ251cEZvcm0uY29udHJvbHNbJ2ZpcnN0TmFtZSddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IG1pZGRsZU5hbWUoKXtcclxuICAgIHJldHVybiB0aGlzLnNpZ251cEZvcm0uY29udHJvbHNbJ21pZGRsZU5hbWUnXTtcclxuICB9XHJcblxyXG4gIGdldCBsYXN0TmFtZSgpe1xyXG4gICAgcmV0dXJuIHRoaXMuc2lnbnVwRm9ybS5jb250cm9sc1snbGFzdE5hbWUnXTtcclxuICB9XHJcblxyXG4gIGdldCBkb2IoKXtcclxuICAgIHJldHVybiB0aGlzLnNpZ251cEZvcm0uY29udHJvbHNbJ2RvYiddO1xyXG4gIH1cclxuICBcclxuXHJcblxyXG4gIGdlbmVyYXRlT3RwKGlzUmVnaXN0ZXJlZCA6IGJvb2xlYW4pe1xyXG4gICAgaWYoaXNSZWdpc3RlcmVkKXtcclxuICAgICAgdGhpcy51dGlsLnNob3dMb2FkZXIoKTtcclxuICAgICAgdGhpcy5sb2dpblNlcnZpY2VcclxuICAgICAgICAgIC5nZW5lcmF0ZU90cCh0aGlzLnVzZXJJZC52YWx1ZSwgXCJlbWFpbFwiKVxyXG4gICAgICAgICAgLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmVuYWJsZU90cCA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuZW5hYmxlUGFzc3dvcmQgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy51dGlsLmhpZGVMb2FkZXIoKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICAoZXJyID0+IHtcclxuICAgICAgICAgICAgdGhpcy51dGlsLmVycm9ySGFuZGxlcihlcnIpO1xyXG4gICAgICAgICAgICB0aGlzLmVuYWJsZU90cCA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLmVuYWJsZVBhc3N3b3JkID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMudXRpbC5oaWRlTG9hZGVyKCk7XHJcbiAgICAgICAgICB9KSk7XHJcbiAgICB9ZWxzZXtcclxuICAgICAgdGhpcy5sb2dpblNlcnZpY2VcclxuICAgICAgICAgIC5nZW5lcmF0ZU90cFVucmVnaXN0ZXJlZCh0aGlzLnNpZ25VcFVzZXJJZC52YWx1ZSlcclxuICAgICAgICAgIC5zdWJzY3JpYmUocmVzID0+IHtcclxuICAgICAgICAgICAgdGhpcy5wcmVzZW50UG9wb3ZlcigpO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIChlcnIgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnV0aWwuZXJyb3JIYW5kbGVyKGVycik7XHJcbiAgICAgICAgICB9KSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBhc3luYyBwcmVzZW50UG9wb3ZlcigpIHt9XHJcblxyXG4gIGFzeW5jIHNpZ25Jbigpe1xyXG4gICAgaWYodGhpcy5sb2dpbkZvcm0uaW52YWxpZCB8fCB0aGlzLmxvZ2luVHlwZUZvcm0uaW52YWxpZCl7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuaXNMb2dpbkluUHJvZ3Jlc3MgPSB0cnVlO1xyXG4gICAgLy90aGlzLnNob3dQcm9ncmVzc0JhciA9IHRydWU7XHJcbiAgICBsZXQgYXV0aCA6IGFueT0ge307XHJcbiAgICBhdXRoLnVzZXJJZCA9IHRoaXMudXNlcklkLnZhbHVlO1xyXG4gICAgaWYodGhpcy5lbmFibGVPdHApe1xyXG4gICAgICBhdXRoLnBhc3N3b3JkID0gdGhpcy5vdHAudmFsdWU7XHJcbiAgICB9ZWxzZSBpZih0aGlzLmVuYWJsZVBhc3N3b3JkKXtcclxuICAgICAgYXV0aC5wYXNzd29yZCA9IHRoaXMuc2lnbkluUGFzc3dvcmQudmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy51dGlsXHJcbiAgICAgICAgLnNob3dMb2FkZXIoKVxyXG4gICAgICAgIC50aGVuKFxyXG4gICAgICAgICAgKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmxvZ2luU2VydmljZS5sb2dpbihhdXRoKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgICAgIHJlcyA9PiB7XHJcbiAgICAgICAgICAgICAgICBsZXQgdXNlck1vZGVsIDogVXNlck1vZGVsID0gcmVzO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5sb2dpblNlcnZpY2Uuc2V0VXNlcih1c2VyTW9kZWwpLnRoZW4oXHJcbiAgICAgICAgICAgICAgICAgIHJlcyA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYodXNlck1vZGVsLmNoYW5nZVB3ZCl7XHJcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLm5hdi5uYXZpZ2F0ZVJvb3QoJ2NoYW5nZS1wYXNzd29yZCcpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy5zaG93UHJvZ3Jlc3NCYXIgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaXNMb2dpbkluUHJvZ3Jlc3MgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2V7XHJcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNob3dQcm9ncmVzc0JhciA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy5pc0xvZ2luSW5Qcm9ncmVzcyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy5uYXYubmF2aWdhdGVSb290KCd3ZWxjb21lJylcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51dGlsLmhpZGVMb2FkZXIoKTtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIGVyciA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm90cC5zZXRWYWx1ZSgnJyk7XHJcbiAgICAgICAgICAgICAgICBpZighdGhpcy5lbmFibGVPdHApe1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLnJlc2V0KCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNob3dQcm9ncmVzc0JhciA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pc0xvZ2luSW5Qcm9ncmVzcyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy51dGlsLmVycm9ySGFuZGxlcihlcnIpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy51dGlsLmhpZGVMb2FkZXIoKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgKTtcclxuICB9XHJcblxyXG4gIHNpZ25VcChvdHApe1xyXG5cclxuICAgIGlmKG90cCA9PSBudWxsIHx8IG90cCA9PSB1bmRlZmluZWQpe1xyXG4gICAgICB0aGlzLnV0aWwuc2hvd0Vycm9yKCdPVFAgVmVyaWZpY2F0aW9uIEZhaWxlZC4gUGxlYXNlIHZlcmlmeSBhZ2Fpbi4nKTtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgdXNlck1vZGVsIDogVXNlck1vZGVsID0gbmV3IFVzZXJNb2RlbCgpO1xyXG4gICAgdXNlck1vZGVsLmZpcnN0TmFtZSA9IHRoaXMuZmlyc3ROYW1lLnZhbHVlO1xyXG4gICAgdXNlck1vZGVsLm1pZGRsZU5hbWUgPSB0aGlzLm1pZGRsZU5hbWUudmFsdWU7XHJcbiAgICB1c2VyTW9kZWwubGFzdE5hbWUgPSB0aGlzLmxhc3ROYW1lLnZhbHVlO1xyXG4gICAgdXNlck1vZGVsLmRvYiA9IHRoaXMuZG9iLnZhbHVlO1xyXG4gICAgdXNlck1vZGVsLnVzZXJuYW1lID0gdGhpcy5zaWduVXBVc2VySWQudmFsdWU7XHJcbiAgICB1c2VyTW9kZWwucGFzc3dvcmQgPSB0aGlzLnBhc3N3b3JkLnZhbHVlO1xyXG5cclxuICAgIHRoaXMubG9naW5TZXJ2aWNlLnNldFVzZXIodXNlck1vZGVsKTtcclxuICAgIHRoaXMubG9naW5TZXJ2aWNlLnNpZ25VcCh1c2VyTW9kZWwpLnN1YnNjcmliZShcclxuICAgICAgcmVzID0+IHtcclxuICAgICAgICB0aGlzLm9wdCA9ICdzaWduaW4nO1xyXG4gICAgICAgIHRoaXMudXRpbC5zdWNjZXNzKCdZb3UgaGF2ZSBiZWVuIHN1Y2Nlc3NmdWxseSByZWdpc3RlcmVkIGluIFJlRW1wbG95TVMuIFBsZWFzZSBsb2dpbiB0byB1c2UgdG8gdGhlIGZlYXR1cmVzIG9mIHRoZSBhcHAuJyk7XHJcbiAgICAgICAgdGhpcy5zaWdudXBGb3JtLnJlc2V0KCk7XHJcbiAgICAgICAgdGhpcy5sb2dpblNlcnZpY2UucmVzZXQoKTtcclxuICAgICAgfSxcclxuICAgICAgZXJyID0+IHtcclxuICAgICAgICB0aGlzLnV0aWwuZXJyb3JIYW5kbGVyKGVycik7XHJcbiAgICAgICAgdGhpcy5sb2dpblNlcnZpY2UucmVzZXQoKTtcclxuICAgICAgfVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGFzeW5jIGNoYW5nZUxhbmd1YWdlKGV2ZW50KSB7XHJcbiAgICBjb25zdCBwb3BvdmVyID0gYXdhaXQgdGhpcy5wb3B1cC5jcmVhdGUoe1xyXG4gICAgICBjb21wb25lbnQ6IExhbmd1YWdlUGFnZSxcclxuICAgICAgZXZlbnQ6IGV2ZW50LFxyXG4gICAgICB0cmFuc2x1Y2VudDogdHJ1ZSxcclxuICAgICAgYmFja2Ryb3BEaXNtaXNzOiBmYWxzZSxcclxuICAgICAgY3NzQ2xhc3M6ICdib3R0b20tc2hlZXQtcG9wb3ZlcidcclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiBhd2FpdCBwb3BvdmVyLnByZXNlbnQoKTtcclxuICB9XHJcblxyXG4gIGluaXRpYXRlRm9yZ290UGFzc3dvcmQoKXtcclxuICAgIGlmKHRoaXMubG9naW5Gb3JtLmludmFsaWQpe1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLnV0aWxcclxuICAgICAgICAuc2hvd0xvYWRlcigpXHJcbiAgICAgICAgLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5sb2dpblNlcnZpY2VcclxuICAgICAgICAgICAgICAuaW5pdGlhdGVGb3Jnb3RQYXNzd29yZCh0aGlzLnVzZXJJZC52YWx1ZSlcclxuICAgICAgICAgICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgICAgICAgcmVzID0+IHtcclxuICAgICAgICAgICAgICAgICAgaWYobG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJsYW5ndWFnZVwiKSA9PT0gXCJlc1wiKXtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnV0aWwuc3VjY2VzcygnU2UgaGEgcmVzdGFibGVjaWRvIHN1IGNvbnRyYXNlw7FhLiBSZWNpYmlyw6EgdW4gY29ycmVvIGVsZWN0csOzbmljbyBjb24gdW5hIGNvbnRyYXNlw7FhIHRlbXBvcmFsIGUgaW5zdHJ1Y2Npb25lcyBwYXJhIGluaWNpYXIgc2VzacOzbi4nKTtcclxuICAgICAgICAgICAgICAgICAgfSBlbHNle1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudXRpbC5zdWNjZXNzKCdZb3VyIHBhc3N3b3JkIGhhcyBiZWVuIHJlc2V0LiBZb3Ugc2hvdWxkIHJlY2VpdmUgYW4gZW1haWwgd2l0aCBhIHRlbXBvcmFyeSBwYXNzd29yZCBhbmQgbG9naW4gaW5zdHJ1Y3Rpb25zLicpO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMubG9naW5Gb3JtLnJlc2V0KCk7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMubG9naW5TZXJ2aWNlLnJlc2V0KCk7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMubG9naW5Gb3JtRGlyZWN0aXZlLnJlc2V0Rm9ybSgpO1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLnV0aWwuaGlkZUxvYWRlcigpO1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGVyciA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMudXRpbC5lcnJvckhhbmRsZXIoZXJyKTtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5sb2dpbkZvcm0ucmVzZXQoKTtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5sb2dpblNlcnZpY2UucmVzZXQoKTtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5sb2dpbkZvcm1EaXJlY3RpdmUucmVzZXRGb3JtKCk7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMudXRpbC5oaWRlTG9hZGVyKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgKTtcclxuICAgICAgICB9KTtcclxuICB9XHJcbn1cclxuIiwiPGlvbi1jb250ZW50IGNsYXNzPVwiYmFja2dyb3VuZFwiPlxyXG4gIDxwLXRvYXN0IHBvc2l0aW9uPVwidG9wLWNlbnRlclwiID48L3AtdG9hc3Q+XHJcbiAgICA8YXBwLWNvbnRlbnQgW3Nob3dIZWxwXT1cInRydWVcIj5cclxuICAgICAgPGFwcC1wYWdlIHNyYz1cImFzc2V0cy9pY29uL1JlRW1wbG95e3t1dGlsLmdldFN0YXRlKCl9fS5zdmdcIiBbaGlkZUNhcmRdPVwidHJ1ZVwiPlxyXG4gICAgICAgIDxkaXY+XHJcbiAgICAgICAgICA8YXBwLWNhcmQgdGl0bGU9XCJsb2dpbi5jYXJkLnRpdGxlXCI+XHJcbiAgICAgICAgICAgIDxwLWRpYWxvZyBoZWFkZXI9XCJNZXNzYWdlXCIgWyh2aXNpYmxlKV09XCJkaXNwbGF5RGlhbG9nXCIgbW9kYWw9XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgICAgTWF5YmUgeW91IGZvcmdvdCB5b3VyIFVzZXIgSUQsIGEgQ3VzdG9tZXIgU2VydmljZSBSZXByZXNlbnRhdGl2ZSBpcyBhdmFpbGFibGUgdG8gYXNzaXN0IHlvdSBNb25kYXkgdGhyb3VnaCBGcmlkYXkgZnJvbSA4IEFNIHRvIDUgUE0uICBpZiB3ZWF0aGVyIHBlcm1pdHNcclxuICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaXNNUygpXCI+XHJcbiAgICAgICAgICAgICAgICA8YnIvPi0gRW1wbG95ZXJzIG1heSBjYWxsIDYwMS0zMjEtNjMzNCBcclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaXNNRSgpXCI+XHJcbiAgICAgICAgICAgICAgICA8YnIvPi0gRW1wbG95ZXJzIG1heSBjYWxsIDIwNy02MjEtNTEyMFxyXG4gICAgICAgICAgICAgICAgPGJyLz4tIENsYWltYW50cyBtYXkgY2FsbCAxLTgwMC01OTMtNzY2MC5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8YnIvPlxyXG4gICAgICAgICAgICAgIDxwLWZvb3Rlcj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpb24tdGV4dC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgPGlvbi1idXR0b24gc2hhcGU9XCJyb3VuZFwiIHR5cGU9XCJzdWJtaXRcIiAoY2xpY2spPVwiZGlzcGxheURpYWxvZyA9ICFkaXNwbGF5RGlhbG9nXCIgY29sb3I9XCJzdWNjZXNzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlvbi1pY29uIHNsb3Q9XCJzdGFydFwiIG5hbWU9XCJjbG9zZS1zaGFycFwiPjwvaW9uLWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgQ2xvc2VcclxuICAgICAgICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9wLWZvb3Rlcj5cclxuICAgICAgICAgIDwvcC1kaWFsb2c+XHJcbiAgICAgICAgICAgIDxtYXQtaG9yaXpvbnRhbC1zdGVwcGVyIFtsaW5lYXJdPVwidHJ1ZVwiICNzdGVwcGVyPlxyXG4gICAgICAgICAgICAgIDxtYXQtc3RlcCBbc3RlcENvbnRyb2xdPVwibG9naW5Gb3JtXCI+XHJcbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbWF0U3RlcExhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8YXBwLW1zZyBrZXk9XCJsb2dpbi5jYXJkLnN0ZXAxXCI+PC9hcHAtbXNnPlxyXG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwibG9naW5Gb3JtXCIgI2xvZ2luRm9ybURpcmVjdGl2ZT1cIm5nRm9ybVwiPlxyXG4gICAgICAgICAgICAgICAgICA8aW9uLXJvdyBjb2xvcj1cInByaW1hcnlcIiBjbGFzcz1cImlvbi1qdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCIgam95cmlkZVN0ZXA9XCJzdGVwMVwiIHRpdGxlPVwie3snZ3VpZGUubG9naW4udXNlcmlkLnRpdGxlJyB8IHRyYW5zbGF0ZX19XCIgXHJcbiAgICAgICAgICAgICAgICAgIHRleHQ9XCJ7eydndWlkZS5sb2dpbi51c2VyaWQubWVzc2FnZScgfCB0cmFuc2xhdGV9fVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpb24tY29sIGNsYXNzPVwiaW9uLWFsaWduLXNlbGYtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW9uLWp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwLWZsb2F0LWxhYmVsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgcElucHV0VGV4dCBbZm9ybUNvbnRyb2xdPVwidXNlcklkXCIgaWQ9XCJ1c2VySWRcIiBpbmxlbmd0aD1cIjVcIiBhdXRvY29tcGxldGU9XCJvZmZcIiBhcHBBdXRvZm9jdXM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImZsb2F0LWlucHV0XCI+VXNlciBJRDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbZmllbGRdPSd1c2VySWQnIFtmb3JtXT1cImxvZ2luVHlwZUZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogJ1VzZXIgSUQgaXMgcmVxdWlyZWQuJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbmxlbmd0aDogJ1VzZXIgSUQgc2hvdWxkIGhhdmUgbWluaW11bSA1IGNoYXJhY3RlcnMuJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICAgICAgICA8L2lvbi1yb3c+XHJcbiAgICAgICAgICAgICAgICAgIDxpb24tcm93IGNsYXNzPVwianVzdGlmeS1jb250ZW50LWNlbnRlclwiIGpveXJpZGVTdGVwPVwic3RlcDJcIiB0aXRsZT1cInt7J2d1aWRlLmxvZ2luLm9wdGlvbnMudGl0bGUnIHwgdHJhbnNsYXRlfX1cIiBcclxuICAgICAgICAgICAgICAgICAgdGV4dD1cInt7J2d1aWRlLmxvZ2luLm9wdGlvbnMubWVzc2FnZScgfCB0cmFuc2xhdGV9fVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpb24tY29sPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGlvbi1idXR0b24gc2hhcGU9XCJyb3VuZFwiIHR5cGU9XCJzdWJtaXRcIiBleHBhbmQ9XCJibG9ja1wiIChjbGljayk9XCJlbmFibGVQYXNzd29yZEZpZWxkKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcj1cInN1Y2Nlc3NcIiBwVG9vbHRpcD1cIkxvZ2luIHdpdGggcGFzc3dvcmRcIiB0b29sdGlwUG9zaXRpb249XCJib3R0b21cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBqb3lyaWRlU3RlcD1cInN0ZXAzXCIgdGl0bGU9XCJ7eydndWlkZS5sb2dpbi5wYXNzd29yZC50aXRsZScgfCB0cmFuc2xhdGV9fVwiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQ9XCJ7eydndWlkZS5sb2dpbi5wYXNzd29yZC5tZXNzYWdlJyB8IHRyYW5zbGF0ZX19XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpb24taWNvbiBzbG90PVwic3RhcnRcIiBuYW1lPVwibG9nLWluLW91dGxpbmVcIj48L2lvbi1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBQYXNzd29yZFxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgICAgICAgICA8aW9uLWNvbD5cclxuICAgICAgICAgICAgICAgICAgICAgIDxpb24tYnV0dG9uIHNoYXBlPVwicm91bmRcIiB0eXBlPVwic3VibWl0XCIgZXhwYW5kPVwiYmxvY2tcIiBleHBhbmQ9XCJibG9ja1wiIChjbGljayk9XCJlbmFibGVPdHBGaWVsZCgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I9XCJzdWNjZXNzXCIgcFRvb2x0aXA9XCJMb2dpbiB3aXRoIGF1dGhjb2RlXCIgdG9vbHRpcFBvc2l0aW9uPVwiYm90dG9tXCIgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGpveXJpZGVTdGVwPVwic3RlcDRcIiB0aXRsZT1cInt7J2d1aWRlLmxvZ2luLmF1dGhjb2RlLnRpdGxlJyB8IHRyYW5zbGF0ZX19XCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dD1cInt7J2d1aWRlLmxvZ2luLmF1dGhjb2RlLm1lc3NhZ2UnIHwgdHJhbnNsYXRlfX1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlvbi1pY29uIHNsb3Q9XCJzdGFydFwiIG5hbWU9XCJsb2ctaW4tb3V0bGluZVwiPjwvaW9uLWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEF1dGhjb2RlXHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2lvbi1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICAgICAgICA8L2lvbi1yb3c+XHJcbiAgICAgICAgICAgICAgICAgIDxpb24tcm93IGNsYXNzPVwianVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpb24tY29sIGNsYXNzPVwiaW9uLXRleHQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8aW9uLWJ1dHRvbiBqb3lyaWRlU3RlcD1cInN0ZXA1XCIgdGl0bGU9XCJGb3Jnb3QgVXNlciBJRD9cIiBcclxuICAgICAgICAgICAgICAgICAgICAgIHRleHQ9XCJQcm92aWRlcyBhc3Npc3RhbmNlIGlmIHlvdSBmb3JnZXQgeW91ciBVc2VyIElEIHRvIGxvZ2luXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgc2hhcGU9XCJyb3VuZFwiIHR5cGU9XCJzdWJtaXRcIiBleHBhbmQ9XCJvdXRsaW5lXCIgY29sb3I9XCJzdWNjZXNzXCIgcFRvb2x0aXA9XCJGb3Jnb3QgVXNlciBJRD9cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0b29sdGlwUG9zaXRpb249XCJib3R0b21cIiBzaXplPVwic21hbGxcIiAoY2xpY2spPVwic2hvd0RpYWxvZygpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEZvcmdvdCBVc2VyIElEP1xyXG4gICAgICAgICAgICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgICAgICAgICA8aW9uLWNvbCBjbGFzcz1cImlvbi10ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGlvbi1idXR0b24gXHJcbiAgICAgICAgICAgICAgICAgICAgICBqb3lyaWRlU3RlcD1cInN0ZXA2XCIgdGl0bGU9XCJGb3Jnb3QgcGFzc3dvcmQ/XCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dD1cIlByb3ZpZGVzIGFzc2lzdGFuY2UgdG8gcmVzZXQgeW91ciBwYXNzd29yZCB1c2luZyB5b3VyIHJlZ2lzdGVyZWQgZW1haWwgYWRkcmVzc1wiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgc2hhcGU9XCJyb3VuZFwiIHR5cGU9XCJzdWJtaXRcIiBleHBhbmQ9XCJvdXRsaW5lXCIgY29sb3I9XCJzdWNjZXNzXCIgcFRvb2x0aXA9XCJGb3Jnb3QgUGFzc3dvcmQ/XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgdG9vbHRpcFBvc2l0aW9uPVwiYm90dG9tXCIgc2l6ZT1cInNtYWxsXCIgKGNsaWNrKT1cImluaXRpYXRlRm9yZ290UGFzc3dvcmQoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBGb3Jnb3QgUGFzc3dvcmQ/XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2lvbi1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICAgICAgICA8L2lvbi1yb3c+XHJcbiAgICAgICAgICAgICAgICA8L2Zvcm0+XHJcbiAgICAgICAgICAgICAgPC9tYXQtc3RlcD5cclxuICAgICAgICAgICAgICA8bWF0LXN0ZXA+XHJcbiAgICAgICAgICAgICAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImxvZ2luVHlwZUZvcm1cIiAjbG9naW5UeXBlRm9ybURpcmVjdGl2ZT1cIm5nRm9ybVwiPlxyXG4gICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbWF0U3RlcExhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDxhcHAtbXNnIGtleT1cImxvZ2luLmNhcmQuc3RlcDJcIj48L2FwcC1tc2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgIDxpb24tZ3JpZCBjbGFzcz1cImlvbi1wYWRkaW5nLXRvcFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpb24tcm93IGNvbG9yPVwicHJpbWFyeVwiIGNsYXNzPVwiaW9uLWp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxpb24tY29sIGNsYXNzPVwiaW9uLWFsaWduLXNlbGYtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpb24tanVzdGlmeS1jb250ZW50LWNlbnRlclwiIChjYXBzTG9jayk9XCJjYXBzT249JGV2ZW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbCBjbGFzcz1cImlvbi1wYWRkaW5nLXJpZ2h0XCI+VXNlciBJRDwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWwgY2xhc3M9XCJpb24tcGFkZGluZy1sZWZ0XCIgc3R5bGU9XCJmbG9hdDogcmlnaHQ7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXBwLW1hc2sgW3ZhbHVlXT1cInVzZXJJZC52YWx1ZSAgKyAnJ1wiICpuZ0lmPVwidXNlcklkLnZhbHVlXCI+PC9hcHAtbWFzaz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8YnIgLz48YnIgLz5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImVuYWJsZU90cFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwLWZsb2F0LWxhYmVsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwLXBhc3N3b3JkIFtmb3JtQ29udHJvbF09XCJvdHBcIiBpbnB1dElkPVwic2lnbkluUGFzc3dvcmRcIiBbdG9nZ2xlTWFza109J3RydWUnIFtmZWVkYmFja109J2ZhbHNlJz48L3AtcGFzc3dvcmQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJmbG9hdC1pbnB1dFwiPkF1dGhjb2RlPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2ZpZWxkXT0nb3RwJyBbZm9ybV09XCJsb2dpblR5cGVGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAnQXV0aGNvZGUgaXMgcmVxdWlyZWQuJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW5sZW5ndGg6ICdBdXRoY29kZSBzaG91bGQgaGF2ZSBtaW5pbXVtIDYgY2hhcmFjdGVycy4nXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImVuYWJsZVBhc3N3b3JkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInAtZmxvYXQtbGFiZWxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAtcGFzc3dvcmQgW2Zvcm1Db250cm9sXT1cInNpZ25JblBhc3N3b3JkXCIgaW5wdXRJZD1cInNpZ25JblBhc3N3b3JkXCIgW3RvZ2dsZU1hc2tdPSd0cnVlJyBbZmVlZGJhY2tdPSdmYWxzZSc+PC9wLXBhc3N3b3JkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiZmxvYXQtaW5wdXRcIj5QYXNzd29yZDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtmaWVsZF09J3NpZ25JblBhc3N3b3JkJyBbZm9ybV09XCJsb2dpblR5cGVGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAnUGFzc3dvcmQgaXMgcmVxdWlyZWQuJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsICpuZ0lmPVwiY2Fwc09uXCIgc3R5bGU9XCJjb2xvcjojYjM0MTFkO1wiPjxzdHJvbmc+Q2FwcyBMb2NrIGlzIE9uPC9zdHJvbmc+PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpb24tanVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpb24tZ3JpZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpb24tcm93IGNsYXNzPVwianVzdGlmeS1jb250ZW50LWNlbnRlclwiIFtoaWRkZW5dPVwiIWVuYWJsZVNpZ25pblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW9uLWNvbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW9uLWJ1dHRvbiBzaGFwZT1cInJvdW5kXCIgdHlwZT1cInN1Ym1pdFwiIGV4cGFuZD1cImJsb2NrXCIgKGNsaWNrKT1cInNpZ25JbigpXCIgY29sb3I9XCJzdWNjZXNzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW9uLWljb24gc2xvdD1cInN0YXJ0XCIgbmFtZT1cImxvZy1pbi1vdXRsaW5lXCI+PC9pb24taWNvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNpZ24gSW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2lvbi1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlvbi1jb2w+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlvbi1idXR0b24gc2hhcGU9XCJyb3VuZFwiIHR5cGU9XCJyZXNldFwiIGV4cGFuZD1cImJsb2NrXCIgZXhwYW5kPVwiYmxvY2tcIiAoY2xpY2spPVwicmVzZXQoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcj1cIm1lZGl1bVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlvbi1pY29uIHNsb3Q9XCJzdGFydFwiIG5hbWU9XCJyZWZyZXNoXCI+PC9pb24taWNvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlc2V0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2lvbi1yb3c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9pb24tZ3JpZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8YnIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aW9uLWdyaWQgKm5nSWY9XCJmYWxzZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlvbi1yb3cgY2xhc3M9XCJqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpb24tY29sIGNsYXNzPVwiaW9uLXRleHQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj1cIiNcIj5Gb3Jnb3QgdXNlciBJRD88L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlvbi1jb2wgY2xhc3M9XCJpb24tdGV4dC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPVwiI1wiPkZvcmdvdCBQYXNzd29yZD88L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvaW9uLXJvdz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2lvbi1ncmlkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICBcclxuICAgICAgICAgICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgICAgICAgICA8L2lvbi1yb3c+XHJcbiAgICAgICAgICAgICAgICAgIDwvaW9uLWdyaWQ+XHJcbiAgICAgICAgICAgICAgICA8L2Zvcm0+XHJcbiAgICAgICAgICAgICAgPC9tYXQtc3RlcD5cclxuICAgICAgICAgICAgPC9tYXQtaG9yaXpvbnRhbC1zdGVwcGVyPlxyXG4gIFxyXG4gICAgICAgICAgPC9hcHAtY2FyZD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJnLXNpZ25pbjJcIiBkYXRhLXdpZHRoPVwiMzAwXCIgZGF0YS1oZWlnaHQ9XCIyMDBcIiBkYXRhLWxvbmd0aXRsZT1cInRydWVcIj48L2Rpdj4gLS0+XHJcbiAgICAgIDwvYXBwLXBhZ2U+XHJcbiAgICA8L2FwcC1jb250ZW50PlxyXG4gIDwvaW9uLWNvbnRlbnQ+XHJcblxyXG5cclxuXHJcbiJdfQ==