@reusa/ngx-reusa-app-lib 0.0.1326 → 0.0.1330

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 (528) hide show
  1. package/esm2022/lib/components/add-employer/add-employer.component.mjs +1251 -2377
  2. package/esm2022/lib/components/add-participant/add-participant.component.mjs +99 -158
  3. package/esm2022/lib/components/add-payment/add-payment.component.mjs +16 -36
  4. package/esm2022/lib/components/address/address.component.mjs +81 -267
  5. package/esm2022/lib/components/bank-details/bank-details.component.mjs +123 -47
  6. package/esm2022/lib/components/contact-us/contact-us.component.mjs +16 -4
  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 +36 -16
  14. package/esm2022/lib/components/employer-grid/employer-grid.component.mjs +435 -319
  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 +67 -90
  19. package/esm2022/lib/components/header/header.component.mjs +136 -456
  20. package/esm2022/lib/components/idle-detector/idle-detector.component.mjs +13 -13
  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 +1 -1
  23. package/esm2022/lib/components/job-title/job-title.component.mjs +94 -93
  24. package/esm2022/lib/components/legal-disclaimar/legal-disclaimar.component.mjs +331 -142
  25. package/esm2022/lib/components/lexis-nexis/lexis-nexis.component.mjs +340 -0
  26. package/esm2022/lib/components/link/link.component.mjs +1 -1
  27. package/esm2022/lib/components/menu/menu.component.mjs +53 -60
  28. package/esm2022/lib/components/mfa/mfa.component.mjs +188 -116
  29. package/esm2022/lib/components/mfa-popup/mfa-popup.component.mjs +18 -11
  30. package/esm2022/lib/components/mfa2/mfa2.component.mjs +261 -0
  31. package/esm2022/lib/components/money-expect/money-expect.component.mjs +36 -148
  32. package/esm2022/lib/components/profile/profile.component.mjs +338 -748
  33. package/esm2022/lib/components/profile-redirect/profile-redirect.component.mjs +33 -110
  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 +129 -386
  37. package/esm2022/lib/components/questionnaire/dynamic-form-panel.component.mjs +70 -72
  38. package/esm2022/lib/components/questionnaire/dynamic-form-question.component.mjs +1085 -862
  39. package/esm2022/lib/components/questionnaire/dynamic-form.component.mjs +565 -186
  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 +29 -113
  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 -491
  46. package/esm2022/lib/components/search-employer/search-employer.component.mjs +27 -155
  47. package/esm2022/lib/components/security-question/security-question.component.mjs +189 -0
  48. package/esm2022/lib/components/sign-ssn/sign-ssn.component.mjs +3 -3
  49. package/esm2022/lib/components/ssn-reverify/ssn-reverify.component.mjs +4 -4
  50. package/esm2022/lib/components/user-login/user-login.component.mjs +300 -116
  51. package/esm2022/lib/components/weekly-cert-employer/weekly-cert-employer.component.mjs +241 -612
  52. package/esm2022/lib/components/weekly-cert-employer-grid/weekly-cert-employer-grid.component.mjs +59 -114
  53. package/esm2022/lib/guards/auth.guard.mjs +2 -50
  54. package/esm2022/lib/guards/no-login/no-login.guard.mjs +1 -1
  55. package/esm2022/lib/interceptors/error-interceptor/http-error-interceptor.mjs +3 -51
  56. package/esm2022/lib/interceptors/header-interceptor/http-header.interceptor.mjs +1 -1
  57. package/esm2022/lib/models/EmployerDetailSearchResult.mjs +1 -1
  58. package/esm2022/lib/models/LexisNexisAccountCreationModel.mjs +2 -0
  59. package/esm2022/lib/models/LexisNexisAuthSelectionRequestModel.mjs +2 -0
  60. package/esm2022/lib/models/LexisNexisAuthSelectionResponseModel.mjs +2 -0
  61. package/esm2022/lib/models/LexisNexisEnabledResponseModel.mjs +2 -0
  62. package/esm2022/lib/models/LexisNexisResponseModel.mjs +3 -0
  63. package/esm2022/lib/models/LibConstants.mjs +6 -45
  64. package/esm2022/lib/models/PartialEmploymentModel.mjs +3 -0
  65. package/esm2022/lib/models/PaymentComponentModel.mjs +1 -1
  66. package/esm2022/lib/models/SecurityQuestionModel.mjs +3 -0
  67. package/esm2022/lib/models/dashboard-model.mjs +1 -1
  68. package/esm2022/lib/models/dependent.model.mjs +1 -1
  69. package/esm2022/lib/models/questionnaire/ClaimAppEmpResponseModel.mjs +1 -1
  70. package/esm2022/lib/models/questionnaire/ClaimAppEmployerDetailsModel.mjs +1 -2
  71. package/esm2022/lib/models/questionnaire/ClaimOnlyEmployerDataModel.mjs +1 -1
  72. package/esm2022/lib/models/questionnaire/ComboModel.mjs +179 -101
  73. package/esm2022/lib/models/questionnaire/ElementsModel.mjs +1 -1
  74. package/esm2022/lib/models/questionnaire/LegalDiscaimarModel.mjs +1 -1
  75. package/esm2022/lib/models/questionnaire/StatusModel.mjs +1 -1
  76. package/esm2022/lib/ngx-reusa-app-lib.module.mjs +23 -135
  77. package/esm2022/lib/pages/BasePage.mjs +23 -4
  78. package/esm2022/lib/pages/common/accessibility-policy/accessibility-policy.page.mjs +18 -22
  79. package/esm2022/lib/pages/common/change-password/change-password.page.mjs +124 -142
  80. package/esm2022/lib/pages/common/landing/landing.component.mjs +8 -7
  81. package/esm2022/lib/pages/common/landing2/landing2.component.mjs +4 -4
  82. package/esm2022/lib/pages/common/login/login.component.mjs +5 -6
  83. package/esm2022/lib/pages/common/privacy-disclaimer/privacy-disclaimer.page.mjs +14 -14
  84. package/esm2022/lib/pages/common/security-policy/security-policy.page.mjs +5 -5
  85. package/esm2022/lib/pages/popovers/language/language.page.mjs +1 -1
  86. package/esm2022/lib/pages/popovers/my-notifications/my-notifications.page.mjs +4 -4
  87. package/esm2022/lib/pages/popovers/my-profile/my-profile.page.mjs +2 -7
  88. package/esm2022/lib/pipes/translate/dynamic-translate.pipe.mjs +1 -1
  89. package/esm2022/lib/services/base-service.mjs +1 -4
  90. package/esm2022/lib/services/chatbot/chatbot.service.mjs +2 -1
  91. package/esm2022/lib/services/claimant-service/claimant-usps-redirect.service.mjs +36 -0
  92. package/esm2022/lib/services/claimant-service/claimant.service.mjs +13 -7
  93. package/esm2022/lib/services/claims/claims.service.mjs +14 -102
  94. package/esm2022/lib/services/help/help.service.mjs +1 -1
  95. package/esm2022/lib/services/lexis-nexis/lexis.nexis.service.mjs +60 -0
  96. package/esm2022/lib/services/logger/logger.service.mjs +1 -1
  97. package/esm2022/lib/services/login/login.service.mjs +11 -29
  98. package/esm2022/lib/services/ovp/ovp.service.mjs +43 -0
  99. package/esm2022/lib/services/questionnaire/questionnaire.service.mjs +1 -4
  100. package/esm2022/lib/services/questionnaire/validation.service.mjs +1 -4
  101. package/esm2022/lib/services/security-service/security.service.mjs +6 -23
  102. package/esm2022/lib/services/util/util.service.mjs +5 -61
  103. package/esm2022/lib/services/weekly-cert/weekly-cert-v2.service.mjs +14 -186
  104. package/esm2022/lib/validations/AppRegex.mjs +3 -1
  105. package/esm2022/lib/validations/AppValidators.mjs +62 -78
  106. package/esm2022/public-api.mjs +5 -47
  107. package/fesm2022/reusa-ngx-reusa-app-lib.mjs +25067 -44572
  108. package/fesm2022/reusa-ngx-reusa-app-lib.mjs.map +1 -1
  109. package/lib/components/add-employer/add-employer.component.d.ts +52 -85
  110. package/lib/components/add-employer/add-employer.component.d.ts.map +1 -1
  111. package/lib/components/add-participant/add-participant.component.d.ts +2 -11
  112. package/lib/components/add-participant/add-participant.component.d.ts.map +1 -1
  113. package/lib/components/add-payment/add-payment.component.d.ts +2 -7
  114. package/lib/components/add-payment/add-payment.component.d.ts.map +1 -1
  115. package/lib/components/address/address.component.d.ts +5 -41
  116. package/lib/components/address/address.component.d.ts.map +1 -1
  117. package/lib/components/bank-details/bank-details.component.d.ts +6 -0
  118. package/lib/components/bank-details/bank-details.component.d.ts.map +1 -1
  119. package/lib/components/correspondence-download/correspondence-download.component.d.ts.map +1 -1
  120. package/lib/components/dashboard-card/dashboard-card.component.d.ts.map +1 -1
  121. package/lib/components/email-update/email-update.component.d.ts +7 -1
  122. package/lib/components/email-update/email-update.component.d.ts.map +1 -1
  123. package/lib/components/employer-grid/employer-grid.component.d.ts +12 -1
  124. package/lib/components/employer-grid/employer-grid.component.d.ts.map +1 -1
  125. package/lib/components/error/error.component.d.ts +2 -3
  126. package/lib/components/error/error.component.d.ts.map +1 -1
  127. package/lib/components/file-uploader/file-uploader.component.d.ts +1 -5
  128. package/lib/components/file-uploader/file-uploader.component.d.ts.map +1 -1
  129. package/lib/components/footer/footer.component.d.ts.map +1 -1
  130. package/lib/components/header/header.component.d.ts +2 -17
  131. package/lib/components/header/header.component.d.ts.map +1 -1
  132. package/lib/components/job-title/job-title.component.d.ts +21 -22
  133. package/lib/components/job-title/job-title.component.d.ts.map +1 -1
  134. package/lib/components/legal-disclaimar/legal-disclaimar.component.d.ts +2 -5
  135. package/lib/components/legal-disclaimar/legal-disclaimar.component.d.ts.map +1 -1
  136. package/lib/components/lexis-nexis/lexis-nexis.component.d.ts +59 -0
  137. package/lib/components/lexis-nexis/lexis-nexis.component.d.ts.map +1 -0
  138. package/lib/components/menu/menu.component.d.ts +1 -2
  139. package/lib/components/menu/menu.component.d.ts.map +1 -1
  140. package/lib/components/mfa/mfa.component.d.ts +14 -7
  141. package/lib/components/mfa/mfa.component.d.ts.map +1 -1
  142. package/lib/components/mfa-popup/mfa-popup.component.d.ts +8 -6
  143. package/lib/components/mfa-popup/mfa-popup.component.d.ts.map +1 -1
  144. package/lib/components/mfa2/mfa2.component.d.ts +48 -0
  145. package/lib/components/mfa2/mfa2.component.d.ts.map +1 -0
  146. package/lib/components/money-expect/money-expect.component.d.ts +4 -15
  147. package/lib/components/money-expect/money-expect.component.d.ts.map +1 -1
  148. package/lib/components/profile/profile.component.d.ts +49 -82
  149. package/lib/components/profile/profile.component.d.ts.map +1 -1
  150. package/lib/components/profile-redirect/profile-redirect.component.d.ts +2 -9
  151. package/lib/components/profile-redirect/profile-redirect.component.d.ts.map +1 -1
  152. package/lib/components/questionnaire/AppValidators.d.ts +0 -1
  153. package/lib/components/questionnaire/AppValidators.d.ts.map +1 -1
  154. package/lib/components/questionnaire/account-success/account-success.page.d.ts +10 -13
  155. package/lib/components/questionnaire/account-success/account-success.page.d.ts.map +1 -1
  156. package/lib/components/questionnaire/common-success/common-success.page.d.ts +0 -7
  157. package/lib/components/questionnaire/common-success/common-success.page.d.ts.map +1 -1
  158. package/lib/components/questionnaire/dynamic-form-panel.component.d.ts +1 -3
  159. package/lib/components/questionnaire/dynamic-form-panel.component.d.ts.map +1 -1
  160. package/lib/components/questionnaire/dynamic-form-question.component.d.ts +34 -31
  161. package/lib/components/questionnaire/dynamic-form-question.component.d.ts.map +1 -1
  162. package/lib/components/questionnaire/dynamic-form.component.d.ts +34 -10
  163. package/lib/components/questionnaire/dynamic-form.component.d.ts.map +1 -1
  164. package/lib/components/questionnaire/form-builder/form-builder.page.d.ts +7 -0
  165. package/lib/components/questionnaire/form-builder/form-builder.page.d.ts.map +1 -1
  166. package/lib/components/questionnaire/multi-questionnaire/multi-questionnaire.component.d.ts +1 -7
  167. package/lib/components/questionnaire/multi-questionnaire/multi-questionnaire.component.d.ts.map +1 -1
  168. package/lib/components/questionnaire/question-control.service.d.ts.map +1 -1
  169. package/lib/components/questionnaire/question.service.d.ts +1 -0
  170. package/lib/components/questionnaire/question.service.d.ts.map +1 -1
  171. package/lib/components/questionnaire/render-questionnaire/render-questionnaire.page.d.ts +7 -1
  172. package/lib/components/questionnaire/render-questionnaire/render-questionnaire.page.d.ts.map +1 -1
  173. package/lib/components/requalify-lift-previous-issues/requalify-lift-previous-issues.component.d.ts +3 -11
  174. package/lib/components/requalify-lift-previous-issues/requalify-lift-previous-issues.component.d.ts.map +1 -1
  175. package/lib/components/search-employer/search-employer.component.d.ts +4 -5
  176. package/lib/components/search-employer/search-employer.component.d.ts.map +1 -1
  177. package/lib/components/security-question/security-question.component.d.ts +37 -0
  178. package/lib/components/security-question/security-question.component.d.ts.map +1 -0
  179. package/lib/components/user-login/user-login.component.d.ts +32 -5
  180. package/lib/components/user-login/user-login.component.d.ts.map +1 -1
  181. package/lib/components/weekly-cert-employer/weekly-cert-employer.component.d.ts +3 -26
  182. package/lib/components/weekly-cert-employer/weekly-cert-employer.component.d.ts.map +1 -1
  183. package/lib/components/weekly-cert-employer-grid/weekly-cert-employer-grid.component.d.ts +3 -9
  184. package/lib/components/weekly-cert-employer-grid/weekly-cert-employer-grid.component.d.ts.map +1 -1
  185. package/lib/guards/auth.guard.d.ts.map +1 -1
  186. package/lib/interceptors/error-interceptor/http-error-interceptor.d.ts.map +1 -1
  187. package/lib/models/EmployerDetailSearchResult.d.ts +1 -4
  188. package/lib/models/EmployerDetailSearchResult.d.ts.map +1 -1
  189. package/lib/models/LexisNexisAccountCreationModel.d.ts +15 -0
  190. package/lib/models/LexisNexisAccountCreationModel.d.ts.map +1 -0
  191. package/lib/models/LexisNexisAuthSelectionRequestModel.d.ts +16 -0
  192. package/lib/models/LexisNexisAuthSelectionRequestModel.d.ts.map +1 -0
  193. package/lib/models/LexisNexisAuthSelectionResponseModel.d.ts +39 -0
  194. package/lib/models/LexisNexisAuthSelectionResponseModel.d.ts.map +1 -0
  195. package/lib/models/LexisNexisEnabledResponseModel.d.ts +5 -0
  196. package/lib/models/LexisNexisEnabledResponseModel.d.ts.map +1 -0
  197. package/lib/models/LexisNexisResponseModel.d.ts +7 -0
  198. package/lib/models/LexisNexisResponseModel.d.ts.map +1 -0
  199. package/lib/models/LibConstants.d.ts +1 -40
  200. package/lib/models/LibConstants.d.ts.map +1 -1
  201. package/lib/models/PartialEmploymentModel.d.ts +6 -0
  202. package/lib/models/PartialEmploymentModel.d.ts.map +1 -0
  203. package/lib/models/PaymentComponentModel.d.ts +1 -1
  204. package/lib/models/PaymentComponentModel.d.ts.map +1 -1
  205. package/lib/models/SecurityQuestionModel.d.ts +7 -0
  206. package/lib/models/SecurityQuestionModel.d.ts.map +1 -0
  207. package/lib/models/dashboard-model.d.ts +0 -22
  208. package/lib/models/dashboard-model.d.ts.map +1 -1
  209. package/lib/models/questionnaire/ClaimAppEmpResponseModel.d.ts +0 -3
  210. package/lib/models/questionnaire/ClaimAppEmpResponseModel.d.ts.map +1 -1
  211. package/lib/models/questionnaire/ClaimAppEmployerDetailsModel.d.ts +4 -13
  212. package/lib/models/questionnaire/ClaimAppEmployerDetailsModel.d.ts.map +1 -1
  213. package/lib/models/questionnaire/ClaimOnlyEmployerDataModel.d.ts +1 -4
  214. package/lib/models/questionnaire/ClaimOnlyEmployerDataModel.d.ts.map +1 -1
  215. package/lib/models/questionnaire/ComboModel.d.ts +16 -28
  216. package/lib/models/questionnaire/ComboModel.d.ts.map +1 -1
  217. package/lib/models/questionnaire/ElementsModel.d.ts +1 -0
  218. package/lib/models/questionnaire/ElementsModel.d.ts.map +1 -1
  219. package/lib/models/questionnaire/LegalDiscaimarModel.d.ts +0 -2
  220. package/lib/models/questionnaire/LegalDiscaimarModel.d.ts.map +1 -1
  221. package/lib/models/questionnaire/StatusModel.d.ts +0 -1
  222. package/lib/models/questionnaire/StatusModel.d.ts.map +1 -1
  223. package/lib/ngx-reusa-app-lib.module.d.ts +86 -124
  224. package/lib/ngx-reusa-app-lib.module.d.ts.map +1 -1
  225. package/lib/pages/BasePage.d.ts +6 -3
  226. package/lib/pages/BasePage.d.ts.map +1 -1
  227. package/lib/pages/common/change-password/change-password.page.d.ts +0 -3
  228. package/lib/pages/common/change-password/change-password.page.d.ts.map +1 -1
  229. package/lib/pages/common/login/login.component.d.ts.map +1 -1
  230. package/lib/pages/popovers/my-profile/my-profile.page.d.ts.map +1 -1
  231. package/lib/services/base-service.d.ts +0 -12
  232. package/lib/services/base-service.d.ts.map +1 -1
  233. package/lib/services/claimant-service/claimant-usps-redirect.service.d.ts +16 -0
  234. package/lib/services/claimant-service/claimant-usps-redirect.service.d.ts.map +1 -0
  235. package/lib/services/claimant-service/claimant.service.d.ts +6 -5
  236. package/lib/services/claimant-service/claimant.service.d.ts.map +1 -1
  237. package/lib/services/claims/claims.service.d.ts +5 -38
  238. package/lib/services/claims/claims.service.d.ts.map +1 -1
  239. package/lib/services/lexis-nexis/lexis.nexis.service.d.ts +26 -0
  240. package/lib/services/lexis-nexis/lexis.nexis.service.d.ts.map +1 -0
  241. package/lib/services/login/login.service.d.ts +3 -5
  242. package/lib/services/login/login.service.d.ts.map +1 -1
  243. package/lib/services/ovp/ovp.service.d.ts +17 -0
  244. package/lib/services/ovp/ovp.service.d.ts.map +1 -0
  245. package/lib/services/questionnaire/questionnaire.service.d.ts +0 -1
  246. package/lib/services/questionnaire/questionnaire.service.d.ts.map +1 -1
  247. package/lib/services/questionnaire/validation.service.d.ts +0 -3
  248. package/lib/services/questionnaire/validation.service.d.ts.map +1 -1
  249. package/lib/services/security-service/security.service.d.ts +4 -12
  250. package/lib/services/security-service/security.service.d.ts.map +1 -1
  251. package/lib/services/util/util.service.d.ts +0 -6
  252. package/lib/services/util/util.service.d.ts.map +1 -1
  253. package/lib/services/weekly-cert/weekly-cert-v2.service.d.ts +5 -47
  254. package/lib/services/weekly-cert/weekly-cert-v2.service.d.ts.map +1 -1
  255. package/lib/validations/AppRegex.d.ts +2 -0
  256. package/lib/validations/AppRegex.d.ts.map +1 -1
  257. package/lib/validations/AppValidators.d.ts +24 -20
  258. package/lib/validations/AppValidators.d.ts.map +1 -1
  259. package/package.json +2 -2
  260. package/public-api.d.ts +4 -46
  261. package/public-api.d.ts.map +1 -1
  262. package/esm2022/lib/components/add-wage/add-wage.component.mjs +0 -161
  263. package/esm2022/lib/components/address-popup/address-popup.component.mjs +0 -97
  264. package/esm2022/lib/components/address-suggestion/address-suggestion.component.mjs +0 -289
  265. package/esm2022/lib/components/appointment-self-scheduler/appointment-self-scheduler.component.mjs +0 -245
  266. package/esm2022/lib/components/associate-ssn/associate-ssn.component.mjs +0 -203
  267. package/esm2022/lib/components/claim-info/claim-info.component.mjs +0 -408
  268. package/esm2022/lib/components/dua-request-page/dua-request-page.component.mjs +0 -596
  269. package/esm2022/lib/components/dua-request-popup/dua-request-popup.component.mjs +0 -356
  270. package/esm2022/lib/components/employer-info/employer-info.component.mjs +0 -319
  271. package/esm2022/lib/components/employer-pay/employer-pay.component.mjs +0 -238
  272. package/esm2022/lib/components/employer-pay-grid/employer-pay-grid.component.mjs +0 -302
  273. package/esm2022/lib/components/farm-usage/farm-usage.component.mjs +0 -172
  274. package/esm2022/lib/components/gross-earnings/gross-earnings.component.mjs +0 -201
  275. package/esm2022/lib/components/history-page/history-page.component.mjs +0 -571
  276. package/esm2022/lib/components/idme/idme.component.mjs +0 -84
  277. package/esm2022/lib/components/offline-add-employer/offline-add-employer.component.mjs +0 -3661
  278. package/esm2022/lib/components/offline-bank-details/offline-bank-details.component.mjs +0 -258
  279. package/esm2022/lib/components/offline-employer-grid/offline-employer-grid.component.mjs +0 -853
  280. package/esm2022/lib/components/offline-legal-disclaimar/offline-legal-disclaimar.component.mjs +0 -251
  281. package/esm2022/lib/components/proof-of-anything/proof-of-anything.component.mjs +0 -261
  282. package/esm2022/lib/components/proof-of-document-upload/proof-of-document-upload.component.mjs +0 -560
  283. package/esm2022/lib/components/scrollable-text/scrollable-text.component.mjs +0 -25
  284. package/esm2022/lib/components/sms/sms.component.mjs +0 -336
  285. package/esm2022/lib/components/wage-calculator/wage-calculator.component.mjs +0 -527
  286. package/esm2022/lib/components/wage-grid/wage-grid.component.mjs +0 -274
  287. package/esm2022/lib/components/weekly-acknowledgement-ms/acknowledgement-ms.component.mjs +0 -147
  288. package/esm2022/lib/components/weekly-acknowledgement-v2/acknowledgement.component-v2.mjs +0 -167
  289. package/esm2022/lib/components/weekly-certification/weekly-certification.component.mjs +0 -806
  290. package/esm2022/lib/components/weekly-confirmation/confirmation.component.mjs +0 -129
  291. package/esm2022/lib/components/weekly-interim-confirmation/interim-confirmation.component.mjs +0 -136
  292. package/esm2022/lib/components/weekly-summary-v2/summary.component-v2.mjs +0 -72
  293. package/esm2022/lib/components/weekly-work-performed-popup/weekly-work-performed-popup.component.mjs +0 -50
  294. package/esm2022/lib/components/weekly-work-search-counter/work-search-counter.component.mjs +0 -92
  295. package/esm2022/lib/components/weekly-work-search-employer-me/work-search-employer.component-me.mjs +0 -1190
  296. package/esm2022/lib/components/weekly-work-search-employer-ms/work-search-employer-ms.component.mjs +0 -684
  297. package/esm2022/lib/components/weekly-work-search-employer-v2/work-search-employer.component-v2.mjs +0 -524
  298. package/esm2022/lib/components/weekly-work-search-journal/weekly-work-search-journal.component.mjs +0 -394
  299. package/esm2022/lib/components/weekly-work-search-question-v2/work-search-question.component-v2.mjs +0 -640
  300. package/esm2022/lib/directives/strip-invisible-characters/strip-invisible-characters.directive.mjs +0 -33
  301. package/esm2022/lib/enums/AddressValidationResponseEnum.mjs +0 -9
  302. package/esm2022/lib/enums/AddressValidationSourceFunctionEnum.mjs +0 -5
  303. package/esm2022/lib/models/ActiveClaimModel.mjs +0 -3
  304. package/esm2022/lib/models/CountyModel.mjs +0 -3
  305. package/esm2022/lib/models/DuaAppDataModel.mjs +0 -3
  306. package/esm2022/lib/models/DuaRequestModel.mjs +0 -3
  307. package/esm2022/lib/models/DuaRetroWeeksComponentModel.mjs +0 -6
  308. package/esm2022/lib/models/EmployerInfoComponentModel.mjs +0 -4
  309. package/esm2022/lib/models/EmployerPayInfoModel.mjs +0 -6
  310. package/esm2022/lib/models/FarmUsageComponentModel.mjs +0 -2
  311. package/esm2022/lib/models/GrossEarningsModel.mjs +0 -3
  312. package/esm2022/lib/models/HelpConstants.mjs +0 -5
  313. package/esm2022/lib/models/LexisNexisOtpDetailsResponseModel.mjs +0 -3
  314. package/esm2022/lib/models/ReasonSeparationRequestModel.mjs +0 -3
  315. package/esm2022/lib/models/RetroWeeksModel.mjs +0 -3
  316. package/esm2022/lib/models/SecurityQuestionAnswerModel.mjs +0 -3
  317. package/esm2022/lib/models/SendOtpRequestModel.mjs +0 -3
  318. package/esm2022/lib/models/VerifyOtpRequestModel.mjs +0 -3
  319. package/esm2022/lib/models/WageCalculatorModel.mjs +0 -3
  320. package/esm2022/lib/models/WageInfoModel.mjs +0 -4
  321. package/esm2022/lib/models/addressValidation/AddressRecommendationModel.mjs +0 -3
  322. package/esm2022/lib/models/addressValidation/AddressValidationRequestComponentModel.mjs +0 -3
  323. package/esm2022/lib/models/addressValidation/AddressValidationResponseComponentModel.mjs +0 -3
  324. package/esm2022/lib/models/addressValidation/AddressValidationReturnComponentModel.mjs +0 -3
  325. package/esm2022/lib/models/combo-model.mjs +0 -343
  326. package/esm2022/lib/models/fileupload/DocUploadModel.mjs +0 -7
  327. package/esm2022/lib/models/fileupload/EmployerDataModel.mjs +0 -3
  328. package/esm2022/lib/models/fileupload/FileObject.mjs +0 -3
  329. package/esm2022/lib/models/fileupload/FileObjectArray.mjs +0 -7
  330. package/esm2022/lib/models/questionnaire/AppealParticipantModel.mjs +0 -8
  331. package/esm2022/lib/models/questionnaire/ScrollableTextModel.mjs +0 -3
  332. package/esm2022/lib/models/questionnaire/WbaHelperTextModel.mjs +0 -3
  333. package/esm2022/lib/models/weekly-cert/WorkSearchWaiverModel.mjs +0 -3
  334. package/esm2022/lib/models/weekly-cert/address-detail-model.mjs +0 -2
  335. package/esm2022/lib/models/weekly-cert/admin-leave-details-model.mjs +0 -7
  336. package/esm2022/lib/models/weekly-cert/employer-info-v2-model.mjs +0 -7
  337. package/esm2022/lib/models/weekly-cert/weekly-cert-eligibility-v2-model.mjs +0 -6
  338. package/esm2022/lib/models/weekly-cert/weekly-certification-v2-model.mjs +0 -34
  339. package/esm2022/lib/models/weekly-cert/work-search-record-v2-model.mjs +0 -15
  340. package/esm2022/lib/models/weekly-cert/work-search-v2-model.mjs +0 -11
  341. package/esm2022/lib/pipes/format-worksearch/format-worksearch.pipe.mjs +0 -101
  342. package/esm2022/lib/services/address-validation-service/address-validation.service.mjs +0 -151
  343. package/esm2022/lib/services/appeal/appeal.service.mjs +0 -37
  344. package/esm2022/lib/services/birt-service/birt.service.mjs +0 -57
  345. package/esm2022/lib/services/employer/employer-service.mjs +0 -35
  346. package/esm2022/lib/services/event-service/event-service.mjs +0 -44
  347. package/esm2022/lib/services/offline-claims/offline-claims.service.mjs +0 -327
  348. package/esm2022/lib/services/weekly-cert/review.service.mjs +0 -101
  349. package/esm2022/lib/services/weekly-cert/weekly-cert.service.mjs +0 -37
  350. package/esm2022/lib/services/weekly-cert/work-search.service.mjs +0 -58
  351. package/lib/components/add-wage/add-wage.component.d.ts +0 -30
  352. package/lib/components/add-wage/add-wage.component.d.ts.map +0 -1
  353. package/lib/components/address-popup/address-popup.component.d.ts +0 -16
  354. package/lib/components/address-popup/address-popup.component.d.ts.map +0 -1
  355. package/lib/components/address-suggestion/address-suggestion.component.d.ts +0 -43
  356. package/lib/components/address-suggestion/address-suggestion.component.d.ts.map +0 -1
  357. package/lib/components/appointment-self-scheduler/appointment-self-scheduler.component.d.ts +0 -37
  358. package/lib/components/appointment-self-scheduler/appointment-self-scheduler.component.d.ts.map +0 -1
  359. package/lib/components/associate-ssn/associate-ssn.component.d.ts +0 -33
  360. package/lib/components/associate-ssn/associate-ssn.component.d.ts.map +0 -1
  361. package/lib/components/claim-info/claim-info.component.d.ts +0 -49
  362. package/lib/components/claim-info/claim-info.component.d.ts.map +0 -1
  363. package/lib/components/dua-request-page/dua-request-page.component.d.ts +0 -74
  364. package/lib/components/dua-request-page/dua-request-page.component.d.ts.map +0 -1
  365. package/lib/components/dua-request-popup/dua-request-popup.component.d.ts +0 -61
  366. package/lib/components/dua-request-popup/dua-request-popup.component.d.ts.map +0 -1
  367. package/lib/components/employer-info/employer-info.component.d.ts +0 -50
  368. package/lib/components/employer-info/employer-info.component.d.ts.map +0 -1
  369. package/lib/components/employer-pay/employer-pay.component.d.ts +0 -51
  370. package/lib/components/employer-pay/employer-pay.component.d.ts.map +0 -1
  371. package/lib/components/employer-pay-grid/employer-pay-grid.component.d.ts +0 -43
  372. package/lib/components/employer-pay-grid/employer-pay-grid.component.d.ts.map +0 -1
  373. package/lib/components/farm-usage/farm-usage.component.d.ts +0 -33
  374. package/lib/components/farm-usage/farm-usage.component.d.ts.map +0 -1
  375. package/lib/components/gross-earnings/gross-earnings.component.d.ts +0 -42
  376. package/lib/components/gross-earnings/gross-earnings.component.d.ts.map +0 -1
  377. package/lib/components/history-page/history-page.component.d.ts +0 -80
  378. package/lib/components/history-page/history-page.component.d.ts.map +0 -1
  379. package/lib/components/idme/idme.component.d.ts +0 -19
  380. package/lib/components/idme/idme.component.d.ts.map +0 -1
  381. package/lib/components/offline-add-employer/offline-add-employer.component.d.ts +0 -311
  382. package/lib/components/offline-add-employer/offline-add-employer.component.d.ts.map +0 -1
  383. package/lib/components/offline-bank-details/offline-bank-details.component.d.ts +0 -33
  384. package/lib/components/offline-bank-details/offline-bank-details.component.d.ts.map +0 -1
  385. package/lib/components/offline-employer-grid/offline-employer-grid.component.d.ts +0 -97
  386. package/lib/components/offline-employer-grid/offline-employer-grid.component.d.ts.map +0 -1
  387. package/lib/components/offline-legal-disclaimar/offline-legal-disclaimar.component.d.ts +0 -33
  388. package/lib/components/offline-legal-disclaimar/offline-legal-disclaimar.component.d.ts.map +0 -1
  389. package/lib/components/proof-of-anything/proof-of-anything.component.d.ts +0 -54
  390. package/lib/components/proof-of-anything/proof-of-anything.component.d.ts.map +0 -1
  391. package/lib/components/proof-of-document-upload/proof-of-document-upload.component.d.ts +0 -74
  392. package/lib/components/proof-of-document-upload/proof-of-document-upload.component.d.ts.map +0 -1
  393. package/lib/components/scrollable-text/scrollable-text.component.d.ts +0 -11
  394. package/lib/components/scrollable-text/scrollable-text.component.d.ts.map +0 -1
  395. package/lib/components/sms/sms.component.d.ts +0 -63
  396. package/lib/components/sms/sms.component.d.ts.map +0 -1
  397. package/lib/components/wage-calculator/wage-calculator.component.d.ts +0 -44
  398. package/lib/components/wage-calculator/wage-calculator.component.d.ts.map +0 -1
  399. package/lib/components/wage-grid/wage-grid.component.d.ts +0 -43
  400. package/lib/components/wage-grid/wage-grid.component.d.ts.map +0 -1
  401. package/lib/components/weekly-acknowledgement-ms/acknowledgement-ms.component.d.ts +0 -28
  402. package/lib/components/weekly-acknowledgement-ms/acknowledgement-ms.component.d.ts.map +0 -1
  403. package/lib/components/weekly-acknowledgement-v2/acknowledgement.component-v2.d.ts +0 -28
  404. package/lib/components/weekly-acknowledgement-v2/acknowledgement.component-v2.d.ts.map +0 -1
  405. package/lib/components/weekly-certification/weekly-certification.component.d.ts +0 -101
  406. package/lib/components/weekly-certification/weekly-certification.component.d.ts.map +0 -1
  407. package/lib/components/weekly-confirmation/confirmation.component.d.ts +0 -21
  408. package/lib/components/weekly-confirmation/confirmation.component.d.ts.map +0 -1
  409. package/lib/components/weekly-interim-confirmation/interim-confirmation.component.d.ts +0 -34
  410. package/lib/components/weekly-interim-confirmation/interim-confirmation.component.d.ts.map +0 -1
  411. package/lib/components/weekly-summary-v2/summary.component-v2.d.ts +0 -17
  412. package/lib/components/weekly-summary-v2/summary.component-v2.d.ts.map +0 -1
  413. package/lib/components/weekly-work-performed-popup/weekly-work-performed-popup.component.d.ts +0 -10
  414. package/lib/components/weekly-work-performed-popup/weekly-work-performed-popup.component.d.ts.map +0 -1
  415. package/lib/components/weekly-work-search-counter/work-search-counter.component.d.ts +0 -17
  416. package/lib/components/weekly-work-search-counter/work-search-counter.component.d.ts.map +0 -1
  417. package/lib/components/weekly-work-search-employer-me/work-search-employer.component-me.d.ts +0 -105
  418. package/lib/components/weekly-work-search-employer-me/work-search-employer.component-me.d.ts.map +0 -1
  419. package/lib/components/weekly-work-search-employer-ms/work-search-employer-ms.component.d.ts +0 -71
  420. package/lib/components/weekly-work-search-employer-ms/work-search-employer-ms.component.d.ts.map +0 -1
  421. package/lib/components/weekly-work-search-employer-v2/work-search-employer.component-v2.d.ts +0 -59
  422. package/lib/components/weekly-work-search-employer-v2/work-search-employer.component-v2.d.ts.map +0 -1
  423. package/lib/components/weekly-work-search-journal/weekly-work-search-journal.component.d.ts +0 -47
  424. package/lib/components/weekly-work-search-journal/weekly-work-search-journal.component.d.ts.map +0 -1
  425. package/lib/components/weekly-work-search-question-v2/work-search-question.component-v2.d.ts +0 -78
  426. package/lib/components/weekly-work-search-question-v2/work-search-question.component-v2.d.ts.map +0 -1
  427. package/lib/directives/strip-invisible-characters/strip-invisible-characters.directive.d.ts +0 -8
  428. package/lib/directives/strip-invisible-characters/strip-invisible-characters.directive.d.ts.map +0 -1
  429. package/lib/enums/AddressValidationResponseEnum.d.ts +0 -8
  430. package/lib/enums/AddressValidationResponseEnum.d.ts.map +0 -1
  431. package/lib/enums/AddressValidationSourceFunctionEnum.d.ts +0 -4
  432. package/lib/enums/AddressValidationSourceFunctionEnum.d.ts.map +0 -1
  433. package/lib/models/ActiveClaimModel.d.ts +0 -8
  434. package/lib/models/ActiveClaimModel.d.ts.map +0 -1
  435. package/lib/models/CountyModel.d.ts +0 -8
  436. package/lib/models/CountyModel.d.ts.map +0 -1
  437. package/lib/models/DuaAppDataModel.d.ts +0 -5
  438. package/lib/models/DuaAppDataModel.d.ts.map +0 -1
  439. package/lib/models/DuaRequestModel.d.ts +0 -10
  440. package/lib/models/DuaRequestModel.d.ts.map +0 -1
  441. package/lib/models/DuaRetroWeeksComponentModel.d.ts +0 -5
  442. package/lib/models/DuaRetroWeeksComponentModel.d.ts.map +0 -1
  443. package/lib/models/EmployerInfoComponentModel.d.ts +0 -9
  444. package/lib/models/EmployerInfoComponentModel.d.ts.map +0 -1
  445. package/lib/models/EmployerPayInfoModel.d.ts +0 -20
  446. package/lib/models/EmployerPayInfoModel.d.ts.map +0 -1
  447. package/lib/models/FarmUsageComponentModel.d.ts +0 -10
  448. package/lib/models/FarmUsageComponentModel.d.ts.map +0 -1
  449. package/lib/models/GrossEarningsModel.d.ts +0 -6
  450. package/lib/models/GrossEarningsModel.d.ts.map +0 -1
  451. package/lib/models/HelpConstants.d.ts +0 -5
  452. package/lib/models/HelpConstants.d.ts.map +0 -1
  453. package/lib/models/LexisNexisOtpDetailsResponseModel.d.ts +0 -7
  454. package/lib/models/LexisNexisOtpDetailsResponseModel.d.ts.map +0 -1
  455. package/lib/models/ReasonSeparationRequestModel.d.ts +0 -7
  456. package/lib/models/ReasonSeparationRequestModel.d.ts.map +0 -1
  457. package/lib/models/RetroWeeksModel.d.ts +0 -11
  458. package/lib/models/RetroWeeksModel.d.ts.map +0 -1
  459. package/lib/models/SecurityQuestionAnswerModel.d.ts +0 -7
  460. package/lib/models/SecurityQuestionAnswerModel.d.ts.map +0 -1
  461. package/lib/models/SendOtpRequestModel.d.ts +0 -12
  462. package/lib/models/SendOtpRequestModel.d.ts.map +0 -1
  463. package/lib/models/VerifyOtpRequestModel.d.ts +0 -8
  464. package/lib/models/VerifyOtpRequestModel.d.ts.map +0 -1
  465. package/lib/models/WageCalculatorModel.d.ts +0 -15
  466. package/lib/models/WageCalculatorModel.d.ts.map +0 -1
  467. package/lib/models/WageInfoModel.d.ts +0 -9
  468. package/lib/models/WageInfoModel.d.ts.map +0 -1
  469. package/lib/models/addressValidation/AddressRecommendationModel.d.ts +0 -12
  470. package/lib/models/addressValidation/AddressRecommendationModel.d.ts.map +0 -1
  471. package/lib/models/addressValidation/AddressValidationRequestComponentModel.d.ts +0 -11
  472. package/lib/models/addressValidation/AddressValidationRequestComponentModel.d.ts.map +0 -1
  473. package/lib/models/addressValidation/AddressValidationResponseComponentModel.d.ts +0 -6
  474. package/lib/models/addressValidation/AddressValidationResponseComponentModel.d.ts.map +0 -1
  475. package/lib/models/addressValidation/AddressValidationReturnComponentModel.d.ts +0 -16
  476. package/lib/models/addressValidation/AddressValidationReturnComponentModel.d.ts.map +0 -1
  477. package/lib/models/combo-model.d.ts +0 -42
  478. package/lib/models/combo-model.d.ts.map +0 -1
  479. package/lib/models/fileupload/DocUploadModel.d.ts +0 -22
  480. package/lib/models/fileupload/DocUploadModel.d.ts.map +0 -1
  481. package/lib/models/fileupload/EmployerDataModel.d.ts +0 -6
  482. package/lib/models/fileupload/EmployerDataModel.d.ts.map +0 -1
  483. package/lib/models/fileupload/FileObject.d.ts +0 -8
  484. package/lib/models/fileupload/FileObject.d.ts.map +0 -1
  485. package/lib/models/fileupload/FileObjectArray.d.ts +0 -8
  486. package/lib/models/fileupload/FileObjectArray.d.ts.map +0 -1
  487. package/lib/models/questionnaire/AppealParticipantModel.d.ts +0 -17
  488. package/lib/models/questionnaire/AppealParticipantModel.d.ts.map +0 -1
  489. package/lib/models/questionnaire/ScrollableTextModel.d.ts +0 -4
  490. package/lib/models/questionnaire/ScrollableTextModel.d.ts.map +0 -1
  491. package/lib/models/questionnaire/WbaHelperTextModel.d.ts +0 -4
  492. package/lib/models/questionnaire/WbaHelperTextModel.d.ts.map +0 -1
  493. package/lib/models/weekly-cert/WorkSearchWaiverModel.d.ts +0 -9
  494. package/lib/models/weekly-cert/WorkSearchWaiverModel.d.ts.map +0 -1
  495. package/lib/models/weekly-cert/address-detail-model.d.ts +0 -14
  496. package/lib/models/weekly-cert/address-detail-model.d.ts.map +0 -1
  497. package/lib/models/weekly-cert/admin-leave-details-model.d.ts +0 -15
  498. package/lib/models/weekly-cert/admin-leave-details-model.d.ts.map +0 -1
  499. package/lib/models/weekly-cert/employer-info-v2-model.d.ts +0 -27
  500. package/lib/models/weekly-cert/employer-info-v2-model.d.ts.map +0 -1
  501. package/lib/models/weekly-cert/weekly-cert-eligibility-v2-model.d.ts +0 -57
  502. package/lib/models/weekly-cert/weekly-cert-eligibility-v2-model.d.ts.map +0 -1
  503. package/lib/models/weekly-cert/weekly-certification-v2-model.d.ts +0 -59
  504. package/lib/models/weekly-cert/weekly-certification-v2-model.d.ts.map +0 -1
  505. package/lib/models/weekly-cert/work-search-record-v2-model.d.ts +0 -66
  506. package/lib/models/weekly-cert/work-search-record-v2-model.d.ts.map +0 -1
  507. package/lib/models/weekly-cert/work-search-v2-model.d.ts +0 -18
  508. package/lib/models/weekly-cert/work-search-v2-model.d.ts.map +0 -1
  509. package/lib/pipes/format-worksearch/format-worksearch.pipe.d.ts +0 -14
  510. package/lib/pipes/format-worksearch/format-worksearch.pipe.d.ts.map +0 -1
  511. package/lib/services/address-validation-service/address-validation.service.d.ts +0 -44
  512. package/lib/services/address-validation-service/address-validation.service.d.ts.map +0 -1
  513. package/lib/services/appeal/appeal.service.d.ts +0 -16
  514. package/lib/services/appeal/appeal.service.d.ts.map +0 -1
  515. package/lib/services/birt-service/birt.service.d.ts +0 -17
  516. package/lib/services/birt-service/birt.service.d.ts.map +0 -1
  517. package/lib/services/employer/employer-service.d.ts +0 -16
  518. package/lib/services/employer/employer-service.d.ts.map +0 -1
  519. package/lib/services/event-service/event-service.d.ts +0 -20
  520. package/lib/services/event-service/event-service.d.ts.map +0 -1
  521. package/lib/services/offline-claims/offline-claims.service.d.ts +0 -64
  522. package/lib/services/offline-claims/offline-claims.service.d.ts.map +0 -1
  523. package/lib/services/weekly-cert/review.service.d.ts +0 -23
  524. package/lib/services/weekly-cert/review.service.d.ts.map +0 -1
  525. package/lib/services/weekly-cert/weekly-cert.service.d.ts +0 -17
  526. package/lib/services/weekly-cert/weekly-cert.service.d.ts.map +0 -1
  527. package/lib/services/weekly-cert/work-search.service.d.ts +0 -26
  528. package/lib/services/weekly-cert/work-search.service.d.ts.map +0 -1
@@ -18,10 +18,12 @@ import * as i11 from "../../pipes/proper-case/proper-case.pipe";
18
18
  const _c0 = ["bankDetailsFormDirective"];
19
19
  const _c1 = () => ({ required: "required.", pattern: "please enter only letters" });
20
20
  const _c2 = () => ({ required: "required." });
21
- const _c3 = () => ({ required: "required.", hasRouting: "Must be at least 9 digits.", isRoutingNumberNotValid: "Invalid routing number." });
22
- const _c4 = () => ({ required: "required.", pattern: "enter only numbers.", hasNumber: "valid number", maxlength: "cannot exceed 17 characters" });
23
- const _c5 = "Account Number and Re-enter Account Number should match";
24
- const _c6 = () => ({ required: "required.", pattern: "enter only numbers.", accountNumbeComparision: _c5, maxlength: "cannot exceed 17 characters" });
21
+ const _c3 = () => ({ required: "required.", invalidLengthRouting: "Enter valid 9 digit routing number", hasRouting: "Enter only numbers.", isRoutingNumberNotValid: "Invalid routing number." });
22
+ const _c4 = "Account number should have a minimum of 8 characters. \nIf your number has fewer than 8 characters, add leading zeros.";
23
+ const _c5 = () => ({ required: "required.", pattern: "enter only numbers.", hasNumber: "valid number", maxlength: "cannot exceed 17 characters", minlength: _c4 });
24
+ const _c6 = "Account Number and Re-enter Account Number should match";
25
+ const _c7 = "ReAccount number should have a minimum of 8 characters";
26
+ const _c8 = () => ({ required: "required.", pattern: "enter only numbers.", accountNumbeComparision: _c6, maxlength: "cannot exceed 17 characters", minlength: _c7 });
25
27
  export class BankDetailsComponent {
26
28
  constructor(formBuilder, util, dms) {
27
29
  this.formBuilder = formBuilder;
@@ -31,7 +33,8 @@ export class BankDetailsComponent {
31
33
  this.routingNumberValidators = [
32
34
  Validators.minLength(9),
33
35
  Validators.maxLength(9),
34
- Validators.required
36
+ Validators.required,
37
+ AppValidators.isValidLengthRoutingNumber
35
38
  ];
36
39
  this.onTouched = () => { };
37
40
  this.onChangeSubs = [];
@@ -41,28 +44,55 @@ export class BankDetailsComponent {
41
44
  ];
42
45
  }
43
46
  ngOnInit() {
47
+ console.log("inside onInit bankdetailscomponent");
44
48
  this.bankDetailsForm = this.formBuilder.group({
45
49
  'nameOnAccount': [null, Validators.compose([Validators.required, Validators.pattern(AppRegex.NAME_REGEX)])],
46
50
  'accountType': [null, Validators.required],
47
- 'routingNumber': [null, Validators.compose([Validators.required, Validators.pattern(AppRegex.ACCOUNT_NUMBER_REGEX)])],
51
+ 'routingNumber': [null, Validators.compose([Validators.required])],
48
52
  'bankName': [null],
49
- 'accountNumber': [null, Validators.compose([Validators.required, Validators.pattern(AppRegex.ACCOUNT_NUMBER_REGEX), Validators.maxLength(17)])],
50
- 'reEnterAccountNumber': [null, Validators.compose([Validators.required, Validators.pattern(AppRegex.ACCOUNT_NUMBER_REGEX), Validators.maxLength(17)])]
53
+ 'accountNumber': [null, Validators.compose([Validators.required, Validators.pattern(AppRegex.ACCOUNT_NUMBER_REGEX), Validators.maxLength(17), Validators.min(8)])],
54
+ 'reEnterAccountNumber': [null, Validators.compose([Validators.required, Validators.pattern(AppRegex.ACCOUNT_NUMBER_REGEX), Validators.maxLength(17), Validators.min(8)])]
51
55
  });
52
56
  this.setAccountNumberValidator();
53
57
  }
54
58
  submit() {
59
+ //console.log("this.bankDetailsFormDirective : "+this.bankDetailsFormDirective);
55
60
  if (this.bankDetailsFormDirective) {
56
61
  this.bankDetailsFormDirective.onSubmit(undefined);
57
62
  }
58
63
  }
64
+ // Method to remove non-digit characters dynamically
65
+ // PGLP-1750 in correct Routing NUmber
66
+ sanitizeInput(event) {
67
+ let value = event.target.value || '';
68
+ let fieldName = event.target.id; // Get input field ID
69
+ if (fieldName === 'bankAccountNumber') {
70
+ this.accountNumber.setValue(value.replace(/\D+/g, ''));
71
+ event.target.value = value.substring(0, 17); // Trim excess characters
72
+ if (value.length < 8) {
73
+ this.bankDetailsForm.controls['accountNumber'].setErrors({ minlength: true });
74
+ return { minlength: true };
75
+ }
76
+ }
77
+ if (fieldName === 'reEnterAccountNumber') {
78
+ this.reEnterAccountNumber.setValue(value.replace(/\D+/g, ''));
79
+ event.target.value = value.substring(0, 17); // Trim excess characters
80
+ if (value.length < 8) {
81
+ this.bankDetailsForm.controls['reEnterAccountNumber'].setErrors({ minlength: true });
82
+ return { minlength: true };
83
+ }
84
+ }
85
+ }
59
86
  setAccountNumberValidator() {
60
87
  let validators1 = [];
61
88
  let isRoutingNumberNotValid;
62
89
  this.routingNumberValidators.forEach(v => validators1.push(v));
90
+ this.util.setValidation(this.routingNumber, this.routingNumberValidators);
91
+ console.log("Validators : " + this.routingNumberValidators);
63
92
  const ROUTING_NUMBER = /^[0-4]{1}[0-9]{8}$/;
64
93
  this.util.setValidation(this.routingNumber, validators1);
65
94
  this.util.setValidation(this.routingNumber, AppValidators.isValidRoutingNumber);
95
+ this.util.setValidation(this.routingNumber, AppValidators.isValidLengthRoutingNumber);
66
96
  this.reEnterAccountNumber.valueChanges.subscribe(val => {
67
97
  if (this.accountNumber && (this.accountNumber.value != this.reEnterAccountNumber.value)) {
68
98
  this.bankDetailsForm.controls['reEnterAccountNumber'].setErrors({ accountNumbeComparision: true });
@@ -72,8 +102,17 @@ export class BankDetailsComponent {
72
102
  this.routingNumber.valueChanges.subscribe(val => {
73
103
  const valid1 = ROUTING_NUMBER.test(this.routingNumber.value);
74
104
  if (!valid1) {
75
- this.bankDetailsForm.controls['routingNumber'].setErrors({ hasRouting: true });
76
- return { hasRouting: true };
105
+ if (AppValidators.isValidLengthRoutingNumber) {
106
+ this.bankDetailsForm.controls['routingNumber'].setErrors({ invalidLengthRouting: true });
107
+ this.bankDetailsForm.invalid;
108
+ return { invalidLengthRouting: true };
109
+ }
110
+ else {
111
+ this.bankDetailsForm.controls['routingNumber'].setErrors({ hasRouting: true });
112
+ this.bankDetailsForm.invalid;
113
+ //this.bankDetailsForm.controls['address'].setErrors({ bankDetailsValidationFlag: true });
114
+ return { hasRouting: true };
115
+ }
77
116
  }
78
117
  });
79
118
  }
@@ -121,6 +160,7 @@ export class BankDetailsComponent {
121
160
  }
122
161
  }
123
162
  validate(control) {
163
+ console.log("bankDetailsForm : " + this.bankDetailsForm.getError);
124
164
  if (this.bankDetailsForm.valid) {
125
165
  return null;
126
166
  }
@@ -134,11 +174,39 @@ export class BankDetailsComponent {
134
174
  this.bankName = res.bankName;
135
175
  this.bankNameControl.setValue(res.bankName);
136
176
  }, err => {
137
- this.bankName = "No Matching Routing Numbers.";
177
+ this.bankName = "no data found.";
138
178
  this.bankNameControl.setValue(null);
139
179
  });
140
180
  }
141
181
  }
182
+ // PGLP-1750 in correct Routing NUmber
183
+ // Clears the reEnterAccountNumber value when account number and reEnterAccountNumber is not same.
184
+ accountNumberComparision(event) {
185
+ if (this.accountNumber && (this.accountNumber.value != this.reEnterAccountNumber.value)) {
186
+ this.reEnterAccountNumber.setValue(null);
187
+ }
188
+ }
189
+ // PGLP-1750 in correct Routing NUmber
190
+ // Clears the reEnterAccountNumber value when account number and reEnterAccountNumber is not same.
191
+ accountNumberminlenghtvalidation(event) {
192
+ if (this.accountNumber.value.length < 8) {
193
+ this.accountNumber.setValue(null);
194
+ }
195
+ }
196
+ // PGLP-1750 in correct Routing NUmber
197
+ // if Entered RoutingNumber value is not validated with given RegExp then ,RoutingNumber value is set as a null
198
+ routingNumberValidation(event) {
199
+ const ROUTING_NUMBER = /^[0-4]{1}[0-9]{8}$/;
200
+ const valid1 = ROUTING_NUMBER.test(this.routingNumber.value);
201
+ if (!valid1) {
202
+ this.routingNumber.setValue(null);
203
+ }
204
+ if (valid1) {
205
+ if (AppValidators.isValidRoutingNumber(this.routingNumber)) {
206
+ this.routingNumber.setValue(null);
207
+ }
208
+ }
209
+ }
142
210
  static { this.ɵfac = function BankDetailsComponent_Factory(t) { return new (t || BankDetailsComponent)(i0.ɵɵdirectiveInject(i1.UntypedFormBuilder), i0.ɵɵdirectiveInject(i2.UtilService), i0.ɵɵdirectiveInject(i3.DmsService)); }; }
143
211
  static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: BankDetailsComponent, selectors: [["app-bank-details"]], viewQuery: function BankDetailsComponent_Query(rf, ctx) { if (rf & 1) {
144
212
  i0.ɵɵviewQuery(_c0, 5);
@@ -154,107 +222,115 @@ export class BankDetailsComponent {
154
222
  provide: NG_VALIDATORS,
155
223
  multi: true,
156
224
  useExisting: BankDetailsComponent
157
- }])], decls: 70, vars: 62, consts: [[2, "margin-bottom", "0px", "margin-left", "0px", "margin-top", "6px", 3, "formGroup"], ["bankDetailsFormDirective", "ngForm"], [2, "padding", "0px"], [1, "p-formgrid"], [1, "field"], ["for", ""], ["id", "nameOnAccount", "type", "text", "pInputText", "", "maxlength", "30", 3, "formControl"], [3, "field", "form", "errDef"], [2, "display", "inline-flex"], ["optionLabel", "text", "optionValue", "value", 3, "options", "formControl", "multiple"], [2, "padding-left", "8px"], [1, "heading"], [1, "overlay-subheading", "ion-padding-top"], [1, "overlay-desc", "ion-padding-top"], ["alt", "check image", "src", "assets/icon/check1.png", 1, "ion-padding-top"], [1, "col"], ["for", "routingNumber"], ["id", "routingNumber", "type", "input", "pInputText", "", "maxlength", "9", 3, "formControl", "blur"], [1, "form-lbl"], [1, "ion-padding-top", "ion-padding-bottom"], ["for", "accountNumber"], ["id", "accountNumber", 3, "formControl", "maxlength", "feedback", "toggleMask"], ["for", "reEnterAccountNumber"], ["id", "reEnterAccountNumber", 3, "formControl", "maxlength", "feedback", "toggleMask"]], template: function BankDetailsComponent_Template(rf, ctx) { if (rf & 1) {
225
+ }])], decls: 70, vars: 61, consts: [[2, "margin-bottom", "0px", "margin-left", "0px", "margin-top", "6px", 3, "formGroup"], ["bankDetailsFormDirective", "ngForm"], [2, "padding", "0px"], [1, "p-formgrid"], [1, "field"], ["for", "nameOnAccount"], ["id", "nameOnAccount", "type", "text", "pInputText", "", "maxlength", "30", 3, "formControl"], [3, "field", "form", "errDef"], ["for", ""], [2, "display", "inline-flex"], ["optionLabel", "text", "optionValue", "value", 3, "options", "formControl", "multiple"], [2, "padding-left", "8px"], [1, "heading"], [1, "overlay-subheading", "ion-padding-top"], [1, "overlay-desc", "ion-padding-top"], ["alt", "check image", "src", "assets/icon/check.png", 1, "ion-padding-top"], [1, "col"], ["for", "routingNumberInput"], ["id", "routingNumberInput", "type", "input", "pInputText", "", "minlength", "9", "maxlength", "9", "inputmode", "numeric", "oninput", "this.value = this.value.replace(/\\D+/g, '')", "size", "9", 3, "formControl", "focusout"], [1, "form-lbl"], ["for", "routingNumber"], [1, "ion-padding-top", "ion-padding-bottom"], [1, "field", "account"], ["for", "bankAccountNumber"], ["inputId", "bankAccountNumber", 3, "formControl", "maxlength", "feedback", "toggleMask", "input", "focusout"], ["for", "reEnterAccountNumber"], ["inputId", "reEnterAccountNumber", "maxlength", "17", "size", "17", 3, "formControl", "feedback", "toggleMask", "input", "focusout"]], template: function BankDetailsComponent_Template(rf, ctx) { if (rf & 1) {
158
226
  i0.ɵɵelementStart(0, "form", 0, 1)(2, "ion-grid", 2)(3, "div", 3)(4, "div", 4)(5, "label", 5);
159
227
  i0.ɵɵtext(6);
160
228
  i0.ɵɵpipe(7, "translate");
161
229
  i0.ɵɵelementEnd();
162
230
  i0.ɵɵelement(8, "br")(9, "input", 6)(10, "br")(11, "app-error", 7);
163
231
  i0.ɵɵelementEnd();
164
- i0.ɵɵelementStart(12, "div", 4)(13, "label", 5);
232
+ i0.ɵɵelementStart(12, "div", 4)(13, "label", 8);
165
233
  i0.ɵɵtext(14);
166
234
  i0.ɵɵpipe(15, "translate");
167
235
  i0.ɵɵelementEnd();
168
236
  i0.ɵɵelement(16, "br");
169
- i0.ɵɵelementStart(17, "div", 8)(18, "div");
170
- i0.ɵɵelement(19, "p-selectButton", 9)(20, "app-error", 7);
237
+ i0.ɵɵelementStart(17, "div", 9)(18, "div");
238
+ i0.ɵɵelement(19, "p-selectButton", 10)(20, "app-error", 7);
171
239
  i0.ɵɵelementEnd();
172
- i0.ɵɵelementStart(21, "div", 10)(22, "app-overlay-info")(23, "div", 11);
240
+ i0.ɵɵelementStart(21, "div", 11)(22, "app-overlay-info")(23, "div", 12);
173
241
  i0.ɵɵtext(24, "Banking numbers");
174
242
  i0.ɵɵelementEnd();
175
- i0.ɵɵelementStart(25, "div", 12);
243
+ i0.ɵɵelementStart(25, "div", 13);
176
244
  i0.ɵɵtext(26, "Checking Account");
177
245
  i0.ɵɵelementEnd();
178
- i0.ɵɵelementStart(27, "div", 13);
179
- i0.ɵɵtext(28, " Find your bank's routing number and your account number on the bottom of your personal checks. ");
246
+ i0.ɵɵelementStart(27, "div", 14);
247
+ i0.ɵɵtext(28, " Find your bank\u2019s routing number and your account number on the bottom of your personal checks. ");
180
248
  i0.ɵɵelementEnd();
181
- i0.ɵɵelement(29, "img", 14);
182
- i0.ɵɵelementStart(30, "div", 12);
249
+ i0.ɵɵelement(29, "img", 15);
250
+ i0.ɵɵelementStart(30, "div", 13);
183
251
  i0.ɵɵtext(31, "Savings Account");
184
252
  i0.ɵɵelementEnd();
185
- i0.ɵɵelementStart(32, "div", 13);
186
- i0.ɵɵtext(33, " If you prefer direct deposit into a saving account and don't have a checking account with the same bank, call your bank to get the routing number. If you have a checking account at the same bank, the routing number is the same, but the account number is different. ");
253
+ i0.ɵɵelementStart(32, "div", 14);
254
+ i0.ɵɵtext(33, " If you prefer direct deposit into a saving account and don\u2019t have a checking account with the same bank, call your bank to get the routing number. If you have a checking account at the same bank, the routing number is the same, but the account number is different. ");
187
255
  i0.ɵɵelementEnd()()()()();
188
- i0.ɵɵelementStart(34, "ion-row")(35, "ion-col", 15)(36, "div", 4)(37, "label", 16);
256
+ i0.ɵɵelementStart(34, "ion-row")(35, "ion-col", 16)(36, "div", 4)(37, "label", 17);
189
257
  i0.ɵɵtext(38);
190
258
  i0.ɵɵpipe(39, "translate");
191
259
  i0.ɵɵelementEnd();
192
260
  i0.ɵɵelement(40, "br");
193
- i0.ɵɵelementStart(41, "input", 17);
194
- i0.ɵɵlistener("blur", function BankDetailsComponent_Template_input_blur_41_listener($event) { return ctx.fetchBankName($event); });
261
+ i0.ɵɵelementStart(41, "input", 18);
262
+ i0.ɵɵlistener("focusout", function BankDetailsComponent_Template_input_focusout_41_listener($event) { return ctx.routingNumberValidation($event); });
195
263
  i0.ɵɵelementEnd();
196
264
  i0.ɵɵelement(42, "br")(43, "app-error", 7);
197
265
  i0.ɵɵelementEnd()();
198
- i0.ɵɵelementStart(44, "ion-col")(45, "div", 18)(46, "label", 16);
266
+ i0.ɵɵelementStart(44, "ion-col")(45, "div", 19)(46, "label", 20);
199
267
  i0.ɵɵtext(47, "\u00A0");
200
268
  i0.ɵɵelementEnd()();
201
- i0.ɵɵelementStart(48, "div", 19);
269
+ i0.ɵɵelementStart(48, "div", 21);
202
270
  i0.ɵɵtext(49);
203
271
  i0.ɵɵpipe(50, "properCase");
204
272
  i0.ɵɵelementEnd()()();
205
- i0.ɵɵelementStart(51, "ion-row")(52, "ion-col", 15)(53, "div", 4)(54, "label", 20);
273
+ i0.ɵɵelementStart(51, "ion-row")(52, "ion-col", 16)(53, "div", 22)(54, "label", 23);
206
274
  i0.ɵɵtext(55);
207
275
  i0.ɵɵpipe(56, "translate");
208
276
  i0.ɵɵelementEnd();
209
- i0.ɵɵelement(57, "br")(58, "p-password", 21)(59, "br")(60, "app-error", 7);
277
+ i0.ɵɵelement(57, "br");
278
+ i0.ɵɵelementStart(58, "p-password", 24);
279
+ i0.ɵɵlistener("input", function BankDetailsComponent_Template_p_password_input_58_listener($event) { return ctx.sanitizeInput($event); })("focusout", function BankDetailsComponent_Template_p_password_focusout_58_listener($event) { return ctx.accountNumberminlenghtvalidation($event); });
280
+ i0.ɵɵelementEnd();
281
+ i0.ɵɵelement(59, "br")(60, "app-error", 7);
210
282
  i0.ɵɵelementEnd()();
211
- i0.ɵɵelementStart(61, "ion-col", 15)(62, "div", 4)(63, "label", 22);
283
+ i0.ɵɵelementStart(61, "ion-col", 16)(62, "div", 22)(63, "label", 25);
212
284
  i0.ɵɵtext(64);
213
285
  i0.ɵɵpipe(65, "translate");
214
286
  i0.ɵɵelementEnd();
215
- i0.ɵɵelement(66, "br")(67, "p-password", 23)(68, "br")(69, "app-error", 7);
287
+ i0.ɵɵelement(66, "br");
288
+ i0.ɵɵelementStart(67, "p-password", 26);
289
+ i0.ɵɵlistener("input", function BankDetailsComponent_Template_p_password_input_67_listener($event) { return ctx.sanitizeInput($event); })("focusout", function BankDetailsComponent_Template_p_password_focusout_67_listener($event) { return ctx.accountNumberComparision($event); });
290
+ i0.ɵɵelementEnd();
291
+ i0.ɵɵelement(68, "br")(69, "app-error", 7);
216
292
  i0.ɵɵelementEnd()()()()()();
217
293
  } if (rf & 2) {
218
294
  const _r0 = i0.ɵɵreference(1);
219
295
  i0.ɵɵproperty("formGroup", ctx.bankDetailsForm);
220
296
  i0.ɵɵadvance(6);
221
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(7, 45, "Name on Account"));
297
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(7, 44, "Name on Account"));
222
298
  i0.ɵɵadvance(3);
223
299
  i0.ɵɵproperty("formControl", ctx.nameOnAccount);
224
300
  i0.ɵɵadvance(2);
225
301
  i0.ɵɵclassMap("app-grid");
226
- i0.ɵɵproperty("field", ctx.nameOnAccount)("form", _r0)("errDef", i0.ɵɵpureFunction0(57, _c1));
302
+ i0.ɵɵproperty("field", ctx.nameOnAccount)("form", _r0)("errDef", i0.ɵɵpureFunction0(56, _c1));
227
303
  i0.ɵɵadvance(3);
228
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(15, 47, "Account Type"));
304
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(15, 46, "Account Type"));
229
305
  i0.ɵɵadvance(5);
230
306
  i0.ɵɵproperty("options", ctx.accountTypeOptions)("formControl", ctx.accountType)("multiple", false);
231
307
  i0.ɵɵadvance(1);
232
308
  i0.ɵɵclassMap("app-grid");
233
- i0.ɵɵproperty("field", ctx.accountType)("form", _r0)("errDef", i0.ɵɵpureFunction0(58, _c2));
309
+ i0.ɵɵproperty("field", ctx.accountType)("form", _r0)("errDef", i0.ɵɵpureFunction0(57, _c2));
234
310
  i0.ɵɵadvance(18);
235
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(39, 49, "Routing Number"));
311
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(39, 48, "Routing Number"));
236
312
  i0.ɵɵadvance(3);
237
313
  i0.ɵɵproperty("formControl", ctx.routingNumber);
238
314
  i0.ɵɵadvance(2);
239
315
  i0.ɵɵclassMap("app-grid");
240
- i0.ɵɵproperty("field", ctx.routingNumber)("form", _r0)("errDef", i0.ɵɵpureFunction0(59, _c3));
316
+ i0.ɵɵproperty("field", ctx.routingNumber)("form", _r0)("errDef", i0.ɵɵpureFunction0(58, _c3));
241
317
  i0.ɵɵadvance(6);
242
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(50, 51, ctx.bankName), " ");
318
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(50, 50, ctx.bankName), " ");
243
319
  i0.ɵɵadvance(6);
244
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(56, 53, "Account Number"));
320
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(56, 52, "Account Number"));
245
321
  i0.ɵɵadvance(3);
246
322
  i0.ɵɵproperty("formControl", ctx.accountNumber)("maxlength", 17)("feedback", false)("toggleMask", true);
247
323
  i0.ɵɵadvance(2);
248
324
  i0.ɵɵclassMap("app-grid");
249
- i0.ɵɵproperty("field", ctx.accountNumber)("form", _r0)("errDef", i0.ɵɵpureFunction0(60, _c4));
325
+ i0.ɵɵproperty("field", ctx.accountNumber)("form", _r0)("errDef", i0.ɵɵpureFunction0(59, _c5));
250
326
  i0.ɵɵadvance(4);
251
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(65, 55, "Re-enter Account"));
327
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(65, 54, "Re-enter Account"));
252
328
  i0.ɵɵadvance(3);
253
- i0.ɵɵproperty("formControl", ctx.reEnterAccountNumber)("maxlength", 17)("feedback", false)("toggleMask", true);
329
+ i0.ɵɵproperty("formControl", ctx.reEnterAccountNumber)("feedback", false)("toggleMask", true);
254
330
  i0.ɵɵadvance(2);
255
331
  i0.ɵɵclassMap("app-grid");
256
- i0.ɵɵproperty("field", ctx.reEnterAccountNumber)("form", _r0)("errDef", i0.ɵɵpureFunction0(61, _c6));
257
- } }, dependencies: [i4.IonCol, i4.IonGrid, i4.IonRow, i1.ɵNgNoValidate, i1.DefaultValueAccessor, i1.NgControlStatus, i1.NgControlStatusGroup, i1.MaxLengthValidator, i1.FormControlDirective, i1.FormGroupDirective, i5.Password, i6.InputText, i7.SelectButton, i8.ErrorComponent, i9.OverlayInfoComponent, i10.TranslatePipe, i11.ProperCasePipe], styles: [".col[_ngcontent-%COMP%]{padding-left:0;padding-top:0;padding-bottom:0;max-width:-moz-fit-content;max-width:fit-content}.form-lbl[_ngcontent-%COMP%]{padding-bottom:6px}.inline-flex[_ngcontent-%COMP%]{display:inline-flex}"] }); }
332
+ i0.ɵɵproperty("field", ctx.reEnterAccountNumber)("form", _r0)("errDef", i0.ɵɵpureFunction0(60, _c8));
333
+ } }, dependencies: [i4.IonCol, i4.IonGrid, i4.IonRow, i1.ɵNgNoValidate, i1.DefaultValueAccessor, i1.NgControlStatus, i1.NgControlStatusGroup, i1.MinLengthValidator, i1.MaxLengthValidator, i1.FormControlDirective, i1.FormGroupDirective, i5.Password, i6.InputText, i7.SelectButton, i8.ErrorComponent, i9.OverlayInfoComponent, i10.TranslatePipe, i11.ProperCasePipe], styles: [".col[_ngcontent-%COMP%]{padding-left:0;padding-top:0;padding-bottom:0;max-width:-moz-fit-content;max-width:fit-content}.form-lbl[_ngcontent-%COMP%]{padding-bottom:6px}.inline-flex[_ngcontent-%COMP%]{display:inline-flex}.account[_ngcontent-%COMP%]{min-width:150px}"] }); }
258
334
  }
259
335
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(BankDetailsComponent, [{
260
336
  type: Component,
@@ -267,10 +343,10 @@ export class BankDetailsComponent {
267
343
  provide: NG_VALIDATORS,
268
344
  multi: true,
269
345
  useExisting: BankDetailsComponent
270
- }], template: "<form [formGroup]=\"bankDetailsForm\" #bankDetailsFormDirective=\"ngForm\" style=\"margin-bottom: 0px; margin-left: 0px; margin-top: 6px;\">\r\n <ion-grid style=\"padding: 0px;\">\r\n <div class=\"p-formgrid\">\r\n <div class=\"field\">\r\n <label for=\"\">{{'Name on Account' | translate}}</label><br/>\r\n <input id=\"nameOnAccount\" type=\"text\" pInputText [formControl]=\"nameOnAccount\" maxlength=\"30\"/> \r\n <br/>\r\n <app-error [class]=\"'app-grid'\" [field]='nameOnAccount' [form]=\"bankDetailsFormDirective\"\r\n [errDef]=\"{ \r\n required: 'required.',\r\n pattern: 'please enter only letters'\r\n }\"></app-error>\r\n </div>\r\n <div class=\"field\">\r\n <label for=\"\">{{'Account Type' | translate}}</label><br/>\r\n <div style=\"display: inline-flex;\">\r\n <div>\r\n <p-selectButton [options]=\"accountTypeOptions\" [formControl]=\"accountType\" [multiple]=false\r\n optionLabel=\"text\" optionValue=\"value\"></p-selectButton>\r\n <app-error [class]=\"'app-grid'\" [field]='accountType' [form]=\"bankDetailsFormDirective\"\r\n [errDef]=\"{required: 'required.'}\"></app-error>\r\n </div>\r\n <div style=\"flex-grow: 1;\" style=\"padding-left: 8px\">\r\n <app-overlay-info>\r\n <div class=\"heading\">Banking numbers</div>\r\n <div class=\"overlay-subheading ion-padding-top\">Checking Account</div>\r\n <div class=\"overlay-desc ion-padding-top\">\r\n Find your bank's routing number and your account number on the bottom of your personal checks.\r\n </div>\r\n <img alt=\"check image\" src=\"assets/icon/check1.png\" class=\"ion-padding-top\"/>\r\n <div class=\"overlay-subheading ion-padding-top\">Savings Account</div>\r\n <div class=\"overlay-desc ion-padding-top\">\r\n If you prefer direct deposit into a saving account and don't have a checking account with the same bank, call your bank to get the routing number. If you have a checking account at the same bank, the routing number is the same, but the account number is different.\r\n </div>\r\n </app-overlay-info>\r\n </div>\r\n </div>\r\n </div>\r\n <ion-row>\r\n <ion-col class=\"col\">\r\n <div class=\"field\">\r\n <label for=\"routingNumber\">{{'Routing Number' | translate}}</label><br/>\r\n <input id=\"routingNumber\" type=\"input\" pInputText [formControl]=\"routingNumber\" maxlength=\"9\"\r\n (blur)=\"fetchBankName($event)\" /><br/>\r\n <app-error [class]=\"'app-grid'\" [field]='routingNumber' [form]=\"bankDetailsFormDirective\"\r\n [errDef]=\"{ \r\n required: 'required.',\r\n hasRouting:'Must be at least 9 digits.',\r\n isRoutingNumberNotValid: 'Invalid routing number.'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n <ion-col>\r\n <div class=\"form-lbl\">\r\n <label for=\"routingNumber\">&nbsp;</label>\r\n </div>\r\n <div class=\"ion-padding-top ion-padding-bottom\">\r\n {{bankName | properCase}}\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n <ion-row>\r\n <ion-col class=\"col\">\r\n <div class=\"field\">\r\n <label for=\"accountNumber\">{{'Account Number' | translate}}</label><br/>\r\n <p-password id=\"accountNumber\" [formControl]=\"accountNumber\" [maxlength]=\"17\"\r\n [feedback]=\"false\" [toggleMask]=\"true\"></p-password><br/>\r\n <app-error [class]=\"'app-grid'\" [field]='accountNumber' [form]=\"bankDetailsFormDirective\"\r\n [errDef]=\"{ \r\n required: 'required.',\r\n pattern: 'enter only numbers.',\r\n hasNumber: 'valid number',\r\n maxlength: 'cannot exceed 17 characters'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n <ion-col class=\"col\">\r\n <div class=\"field\">\r\n <label for=\"reEnterAccountNumber\">{{'Re-enter Account' | translate}}</label><br/>\r\n <p-password id=\"reEnterAccountNumber\" [formControl]=\"reEnterAccountNumber\" [maxlength]=\"17\"\r\n [feedback]=\"false\" [toggleMask]=\"true\"></p-password><br/>\r\n <app-error [class]=\"'app-grid'\" [field]='reEnterAccountNumber' [form]=\"bankDetailsFormDirective\"\r\n [errDef]=\"{ \r\n required: 'required.',\r\n pattern: 'enter only numbers.',\r\n accountNumbeComparision:'Account Number and Re-enter Account Number should match',\r\n maxlength: 'cannot exceed 17 characters'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n </div>\r\n </ion-grid>\r\n</form>", styles: [".col{padding-left:0;padding-top:0;padding-bottom:0;max-width:-moz-fit-content;max-width:fit-content}.form-lbl{padding-bottom:6px}.inline-flex{display:inline-flex}\n"] }]
346
+ }], template: "<form [formGroup]=\"bankDetailsForm\" #bankDetailsFormDirective=\"ngForm\" style=\"margin-bottom: 0px; margin-left: 0px; margin-top: 6px;\">\r\n <ion-grid style=\"padding: 0px;\">\r\n <div class=\"p-formgrid\">\r\n <div class=\"field\">\r\n <label for=\"nameOnAccount\">{{'Name on Account' | translate}}</label><br/>\r\n <input id=\"nameOnAccount\" type=\"text\" pInputText [formControl]=\"nameOnAccount\" maxlength=\"30\"/> \r\n <br/>\r\n <app-error [class]=\"'app-grid'\" [field]='nameOnAccount' [form]=\"bankDetailsFormDirective\"\r\n [errDef]=\"{ \r\n required: 'required.',\r\n pattern: 'please enter only letters'\r\n }\"></app-error>\r\n </div>\r\n <div class=\"field\">\r\n <label for=\"\">{{'Account Type' | translate}}</label><br/>\r\n <div style=\"display: inline-flex;\">\r\n <div>\r\n <p-selectButton [options]=\"accountTypeOptions\" [formControl]=\"accountType\" [multiple]=false\r\n optionLabel=\"text\" optionValue=\"value\"></p-selectButton>\r\n <app-error [class]=\"'app-grid'\" [field]='accountType' [form]=\"bankDetailsFormDirective\"\r\n [errDef]=\"{required: 'required.'}\"></app-error>\r\n </div>\r\n <div style=\"flex-grow: 1;\" style=\"padding-left: 8px\">\r\n <app-overlay-info>\r\n <div class=\"heading\">Banking numbers</div>\r\n <div class=\"overlay-subheading ion-padding-top\">Checking Account</div>\r\n <div class=\"overlay-desc ion-padding-top\">\r\n Find your bank\u2019s routing number and your account number on the bottom of your personal checks.\r\n </div>\r\n <img alt=\"check image\" src=\"assets/icon/check.png\" class=\"ion-padding-top\"/>\r\n <div class=\"overlay-subheading ion-padding-top\">Savings Account</div>\r\n <div class=\"overlay-desc ion-padding-top\">\r\n If you prefer direct deposit into a saving account and don\u2019t have a checking account with the same bank, call your bank to get the routing number. If you have a checking account at the same bank, the routing number is the same, but the account number is different.\r\n </div>\r\n </app-overlay-info>\r\n </div>\r\n </div>\r\n </div>\r\n <ion-row>\r\n <ion-col class=\"col\">\r\n <div class=\"field\">\r\n <label for=\"routingNumberInput\">{{'Routing Number' | translate}}</label><br/>\r\n <input id=\"routingNumberInput\" type=\"input\" pInputText [formControl]=\"routingNumber\" minlength=\"9\" maxlength=\"9\" inputmode=\"numeric\" \r\n oninput=\"this.value = this.value.replace(/\\D+/g, '')\" size=\"9\" \r\n (focusout)=\"routingNumberValidation($event)\"\r\n /> \r\n <br/>\r\n <!-- TCSUX-254 commented the check for valid bank account for routing number as KDOL doesnt need it-->\r\n <!-- <input id=\"routingNumber\" type=\"input\" pInputText [formControl]=\"routingNumber\" maxlength=\"9\"\r\n (blur)=\"fetchBankName($event)\" /><br/> -->\r\n <app-error [class]=\"'app-grid'\" [field]='routingNumber' [form]=\"bankDetailsFormDirective\"\r\n [errDef]=\"{ \r\n required: 'required.',\r\n invalidLengthRouting: 'Enter valid 9 digit routing number',\r\n hasRouting:'Enter only numbers.',\r\n isRoutingNumberNotValid: 'Invalid routing number.',\r\n \r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n <ion-col>\r\n <div class=\"form-lbl\">\r\n <label for=\"routingNumber\">&nbsp;</label>\r\n </div>\r\n <div class=\"ion-padding-top ion-padding-bottom\">\r\n {{bankName | properCase}}\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n <ion-row>\r\n <ion-col class=\"col\">\r\n <div class=\"field account\">\r\n <label for=\"bankAccountNumber\">{{'Account Number' | translate}}</label><br/>\r\n <p-password inputId=\"bankAccountNumber\" [formControl]=\"accountNumber\" \r\n [maxlength]=\"17\"\r\n (input)=\"sanitizeInput($event)\" \r\n (focusout)= \"accountNumberminlenghtvalidation($event)\" \r\n [feedback]=\"false\" [toggleMask]=\"true\" >\r\n </p-password> <br/>\r\n <app-error [class]=\"'app-grid'\" [field]='accountNumber' [form]=\"bankDetailsFormDirective\"\r\n [errDef]=\"{ \r\n required: 'required.',\r\n pattern: 'enter only numbers.',\r\n hasNumber: 'valid number',\r\n maxlength: 'cannot exceed 17 characters',\r\n minlength: 'Account number should have a minimum of 8 characters. \\nIf your number has fewer than 8 characters, add leading zeros.'\r\n \r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n <ion-col class=\"col\">\r\n <div class=\"field account\">\r\n <label for=\"reEnterAccountNumber\">{{'Re-enter Account' | translate}}</label><br/>\r\n <p-password inputId=\"reEnterAccountNumber\" [formControl]=\"reEnterAccountNumber\" \r\n maxlength=\"17\"\r\n (input)=\"sanitizeInput($event)\"\r\n (focusout)=\"accountNumberComparision($event)\"\r\n [feedback]=\"false\" [toggleMask]=\"true\" size=\"17\"></p-password><br/>\r\n <app-error [class]=\"'app-grid'\" [field]='reEnterAccountNumber' [form]=\"bankDetailsFormDirective\"\r\n [errDef]=\"{ \r\n required: 'required.',\r\n pattern: 'enter only numbers.',\r\n accountNumbeComparision:'Account Number and Re-enter Account Number should match',\r\n maxlength: 'cannot exceed 17 characters',\r\n minlength: 'ReAccount number should have a minimum of 8 characters'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n </div>\r\n </ion-grid>\r\n</form>", styles: [".col{padding-left:0;padding-top:0;padding-bottom:0;max-width:-moz-fit-content;max-width:fit-content}.form-lbl{padding-bottom:6px}.inline-flex{display:inline-flex}.account{min-width:150px}\n"] }]
271
347
  }], () => [{ type: i1.UntypedFormBuilder }, { type: i2.UtilService }, { type: i3.DmsService }], { bankDetailsFormDirective: [{
272
348
  type: ViewChild,
273
349
  args: ['bankDetailsFormDirective', { static: false }]
274
350
  }] }); })();
275
351
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(BankDetailsComponent, { className: "BankDetailsComponent", filePath: "lib\\components\\bank-details\\bank-details.component.ts", lineNumber: 25 }); })();
276
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFuay1kZXRhaWxzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy9iYW5rLWRldGFpbHMvYmFuay1kZXRhaWxzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy9iYW5rLWRldGFpbHMvYmFuay1kZXRhaWxzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXFCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RSxPQUFPLEVBQXVGLGFBQWEsRUFBRSxpQkFBaUIsRUFBMEIsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0wsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFHakUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFpQnRELE1BQU0sT0FBTyxvQkFBb0I7SUFpQi9CLFlBQW1CLFdBQStCLEVBQVEsSUFBa0IsRUFDbkUsR0FBZTtRQURMLGdCQUFXLEdBQVgsV0FBVyxDQUFvQjtRQUFRLFNBQUksR0FBSixJQUFJLENBQWM7UUFDbkUsUUFBRyxHQUFILEdBQUcsQ0FBWTtRQVZqQixxQkFBZ0IsR0FBb0IsSUFBSSxnQkFBZ0IsRUFBRSxDQUFDO1FBR2xFLDRCQUF1QixHQUFtQjtZQUN4QyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztZQUN2QixVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztZQUN2QixVQUFVLENBQUMsUUFBUTtTQUNwQixDQUFDO1FBeUVGLGNBQVMsR0FB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QWtDO1lBQzlCLGVBQW9DO1lBQXBDLHNEQUFvQyxpQkFBQSxtQkFBQSxvQkFBQTtZQUUvRCxlQUFvQjtZQUFwQix5QkFBb0I7WUFBQyxnREFBOEIsYUFBQSx1Q0FBQTs7O2lGRHpEekUsb0JBQW9CO2NBZmhDLFNBQVM7MkJBQ0Usa0JBQWtCLGFBR2pCLENBQUM7d0JBQ1YsT0FBTyxFQUFFLGlCQUFpQjt3QkFDMUIsV0FBVyxzQkFBc0I7d0JBQ2pDLEtBQUssRUFBRSxJQUFJO3FCQUNaO29CQUNEO3dCQUNFLE9BQU8sRUFBRSxhQUFhO3dCQUN0QixLQUFLLEVBQUUsSUFBSTt3QkFDWCxXQUFXLHNCQUFzQjtxQkFDbEMsQ0FBQztzR0FLSyx3QkFBd0I7a0JBRDlCLFNBQVM7bUJBQUMsMEJBQTBCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFOztrRkFGN0Msb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBVbnR5cGVkRm9ybUJ1aWxkZXIsIFVudHlwZWRGb3JtR3JvdXAsIE5nRm9ybSwgTkdfVkFMSURBVE9SUywgTkdfVkFMVUVfQUNDRVNTT1IsIFZhbGlkYXRvciwgVmFsaWRhdG9yRm4sIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEJhbmtEZXRhaWxzTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvQmFua0RldGFpbHNNb2RlbCc7XG5pbXBvcnQgeyBEbXNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZG1zLXNlcnZpY2UvZG1zLnNlcnZpY2UnO1xuaW1wb3J0IHsgVXRpbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy91dGlsL3V0aWwuc2VydmljZSc7XG5pbXBvcnQgeyBBcHBWYWxpZGF0b3JzIH0gZnJvbSAnLi4vLi4vdmFsaWRhdGlvbnMvQXBwVmFsaWRhdG9ycyc7XG5pbXBvcnQgeyBBcHBSZWdleCB9IGZyb20gJy4uLy4uL3ZhbGlkYXRpb25zL0FwcFJlZ2V4JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWJhbmstZGV0YWlscycsXG4gIHRlbXBsYXRlVXJsOiAnLi9iYW5rLWRldGFpbHMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9iYW5rLWRldGFpbHMuY29tcG9uZW50LmNzcyddLFxuICBwcm92aWRlcnM6IFt7XG4gICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgdXNlRXhpc3Rpbmc6IEJhbmtEZXRhaWxzQ29tcG9uZW50LFxuICAgIG11bHRpOiB0cnVlXG4gIH0sXG4gIHtcbiAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxuICAgIG11bHRpOiB0cnVlLFxuICAgIHVzZUV4aXN0aW5nOiBCYW5rRGV0YWlsc0NvbXBvbmVudFxuICB9XSxcbn0pXG5leHBvcnQgY2xhc3MgQmFua0RldGFpbHNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkRlc3Ryb3ksIFZhbGlkYXRvciB7XG5cbiAgQFZpZXdDaGlsZCgnYmFua0RldGFpbHNGb3JtRGlyZWN0aXZlJywgeyBzdGF0aWM6IGZhbHNlIH0pXG4gIHB1YmxpYyBiYW5rRGV0YWlsc0Zvcm1EaXJlY3RpdmU6IE5nRm9ybTtcblxuICBwdWJsaWMgYmFua0RldGFpbHNGb3JtOiBVbnR5cGVkRm9ybUdyb3VwO1xuICBhY2NvdW50VHlwZU9wdGlvbnM6IGFueVtdO1xuXG4gIHB1YmxpYyBiYW5rRGV0YWlsc01vZGVsOiBCYW5rRGV0YWlsc01vZGVsPSBuZXcgQmFua0RldGFpbHNNb2RlbCgpO1xuICBwdWJsaWMgYmFua05hbWU6IHN0cmluZztcbiAgXG4gIHJvdXRpbmdOdW1iZXJWYWxpZGF0b3JzIDogVmFsaWRhdG9yRm5bXSA9IFtcbiAgICBWYWxpZGF0b3JzLm1pbkxlbmd0aCg5KSwgXG4gICAgVmFsaWRhdG9ycy5tYXhMZW5ndGgoOSksIFxuICAgIFZhbGlkYXRvcnMucmVxdWlyZWRcbiAgXTtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZm9ybUJ1aWxkZXI6IFVudHlwZWRGb3JtQnVpbGRlcixwdWJsaWMgdXRpbCA6IFV0aWxTZXJ2aWNlLFxuICAgIHB1YmxpYyBkbXM6IERtc1NlcnZpY2UpIHsgXG4gICAgdGhpcy5hY2NvdW50VHlwZU9wdGlvbnMgPSBbXG4gICAgICB7IHRleHQ6ICdjaGVja2luZycsIHZhbHVlOiAnQ0hFQycgfSxcbiAgICAgIHsgdGV4dDogJ3NhdmluZ3MnLCB2YWx1ZTogJ1NBVkUnIH0sXG4gICAgXTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuYmFua0RldGFpbHNGb3JtID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XG4gICAgICAnbmFtZU9uQWNjb3VudCc6IFtudWxsLCBWYWxpZGF0b3JzLmNvbXBvc2UoW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMucGF0dGVybihBcHBSZWdleC5OQU1FX1JFR0VYKV0pXSxcbiAgICAgICdhY2NvdW50VHlwZSc6IFtudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgICdyb3V0aW5nTnVtYmVyJzogW251bGwsIFZhbGlkYXRvcnMuY29tcG9zZShbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5wYXR0ZXJuKEFwcFJlZ2V4LkFDQ09VTlRfTlVNQkVSX1JFR0VYKV0pXSxcbiAgICAgICdiYW5rTmFtZSc6IFtudWxsXSxcbiAgICAgICdhY2NvdW50TnVtYmVyJzogW251bGwsIFZhbGlkYXRvcnMuY29tcG9zZShbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5wYXR0ZXJuKEFwcFJlZ2V4LkFDQ09VTlRfTlVNQkVSX1JFR0VYKSwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoMTcpXSldLFxuICAgICAgJ3JlRW50ZXJBY2NvdW50TnVtYmVyJzogW251bGwsIFZhbGlkYXRvcnMuY29tcG9zZShbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5wYXR0ZXJuKEFwcFJlZ2V4LkFDQ09VTlRfTlVNQkVSX1JFR0VYKSwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoMTcpXSldXG4gICAgfSk7XG5cbiAgICB0aGlzLnNldEFjY291bnROdW1iZXJWYWxpZGF0b3IoKTtcbiAgfVxuXG4gIHN1Ym1pdCgpe1xuICAgIGlmKHRoaXMuYmFua0RldGFpbHNGb3JtRGlyZWN0aXZlKXtcbiAgICAgIHRoaXMuYmFua0RldGFpbHNGb3JtRGlyZWN0aXZlLm9uU3VibWl0KHVuZGVmaW5lZCk7XG4gICAgfVxuICB9XG5cbiAgc2V0QWNjb3VudE51bWJlclZhbGlkYXRvcigpIHtcbiAgICBsZXQgdmFsaWRhdG9yczE6IFZhbGlkYXRvckZuW10gPSBbXTtcbiAgICBsZXQgaXNSb3V0aW5nTnVtYmVyTm90VmFsaWQ6IGJvb2xlYW47XG4gICAgdGhpcy5yb3V0aW5nTnVtYmVyVmFsaWRhdG9ycy5mb3JFYWNoKHYgPT4gdmFsaWRhdG9yczEucHVzaCh2KSk7XG4gICAgY29uc3QgUk9VVElOR19OVU1CRVI6UmVnRXhwID0gL15bMC00XXsxfVswLTldezh9JC87XG4gICAgdGhpcy51dGlsLnNldFZhbGlkYXRpb24odGhpcy5yb3V0aW5nTnVtYmVyLCB2YWxpZGF0b3JzMSk7XG4gICAgXG4gICAgdGhpcy51dGlsLnNldFZhbGlkYXRpb24odGhpcy5yb3V0aW5nTnVtYmVyLCBBcHBWYWxpZGF0b3JzLmlzVmFsaWRSb3V0aW5nTnVtYmVyKTtcblxuICAgIHRoaXMucmVFbnRlckFjY291bnROdW1iZXIudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh2YWwgPT4ge1xuICAgICAgaWYgKHRoaXMuYWNjb3VudE51bWJlciAmJiAodGhpcy5hY2NvdW50TnVtYmVyLnZhbHVlICE9IHRoaXMucmVFbnRlckFjY291bnROdW1iZXIudmFsdWUpKSB7XG4gICAgICAgIHRoaXMuYmFua0RldGFpbHNGb3JtLmNvbnRyb2xzWydyZUVudGVyQWNjb3VudE51bWJlciddLnNldEVycm9ycyh7IGFjY291bnROdW1iZUNvbXBhcmlzaW9uOiB0cnVlIH0pO1xuICAgICAgICByZXR1cm4geyBhY2NvdW50TnVtYmVDb21wYXJpc2lvbjogdHJ1ZSB9O1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5yb3V0aW5nTnVtYmVyLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUodmFsID0+IHtcbiAgICBjb25zdCB2YWxpZDEgPSBST1VUSU5HX05VTUJFUi50ZXN0KHRoaXMucm91dGluZ051bWJlci52YWx1ZSk7XG4gICAgICBpZiAoIXZhbGlkMSkge1xuICAgICAgICB0aGlzLmJhbmtEZXRhaWxzRm9ybS5jb250cm9sc1sncm91dGluZ051bWJlciddLnNldEVycm9ycyh7IGhhc1JvdXRpbmc6IHRydWUgfSk7XG4gICAgICAgIHJldHVybiB7IGhhc1JvdXRpbmc6IHRydWUgfTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGdldCBuYW1lT25BY2NvdW50KCkge1xuICAgIHJldHVybiB0aGlzLmJhbmtEZXRhaWxzRm9ybS5jb250cm9sc1snbmFtZU9uQWNjb3VudCddO1xuICB9XG4gIGdldCBhY2NvdW50VHlwZSgpIHtcbiAgICByZXR1cm4gdGhpcy5iYW5rRGV0YWlsc0Zvcm0uY29udHJvbHNbJ2FjY291bnRUeXBlJ107XG4gIH1cbiAgZ2V0IHJvdXRpbmdOdW1iZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuYmFua0RldGFpbHNGb3JtLmNvbnRyb2xzWydyb3V0aW5nTnVtYmVyJ107XG4gIH1cbiAgZ2V0IGFjY291bnROdW1iZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuYmFua0RldGFpbHNGb3JtLmNvbnRyb2xzWydhY2NvdW50TnVtYmVyJ107XG4gIH1cbiAgZ2V0IGJhbmtOYW1lQ29udHJvbCgpIHtcbiAgICByZXR1cm4gdGhpcy5iYW5rRGV0YWlsc0Zvcm0uY29udHJvbHNbJ2JhbmtOYW1lJ107XG4gIH1cbiAgZ2V0IHJlRW50ZXJBY2NvdW50TnVtYmVyKCkge1xuICAgIHJldHVybiB0aGlzLmJhbmtEZXRhaWxzRm9ybS5jb250cm9sc1sncmVFbnRlckFjY291bnROdW1iZXInXTtcbiAgfVxuXG4gIG9uVG91Y2hlZDogRnVuY3Rpb24gPSAoKSA9PiB7IH07XG5cbiAgb25DaGFuZ2VTdWJzOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIGZvciAobGV0IHN1YiBvZiB0aGlzLm9uQ2hhbmdlU3Vicykge1xuICAgICAgc3ViLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShvbkNoYW5nZTogYW55KSB7XG4gICAgY29uc3Qgc3ViID0gdGhpcy5iYW5rRGV0YWlsc0Zvcm0udmFsdWVDaGFuZ2VzLnN1YnNjcmliZShvbkNoYW5nZSk7XG4gICAgdGhpcy5vbkNoYW5nZVN1YnMucHVzaChzdWIpO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQob25Ub3VjaGVkOiBGdW5jdGlvbikge1xuICAgIHRoaXMub25Ub3VjaGVkID0gb25Ub3VjaGVkO1xuICB9IFxuICBcbiAgc2V0RGlzYWJsZWRTdGF0ZShkaXNhYmxlZDogYm9vbGVhbikge1xuICAgIGlmIChkaXNhYmxlZCkge1xuICAgICAgdGhpcy5iYW5rRGV0YWlsc0Zvcm0uZGlzYWJsZSgpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIHRoaXMuYmFua0RldGFpbHNGb3JtLmVuYWJsZSgpO1xuICAgIH1cbiAgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSkge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5iYW5rRGV0YWlsc0Zvcm0uc2V0VmFsdWUodmFsdWUsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICB9XG4gIH1cblxuXG4gIHZhbGlkYXRlKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCkge1xuICAgIFxuICAgIGlmICh0aGlzLmJhbmtEZXRhaWxzRm9ybS52YWxpZCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgZmV0Y2hCYW5rTmFtZShldmVudCl7XG4gICAgaWYodGhpcy5yb3V0aW5nTnVtYmVyICYmIHRoaXMucm91dGluZ051bWJlci52YWx1ZSl7ICAgXG4gICAgICB0aGlzLmRtc1xuICAgICAgICAuZ2V0QmFua05hbWUodGhpcy5yb3V0aW5nTnVtYmVyLnZhbHVlKVxuICAgICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAgIHJlcyA9PiB7XG4gICAgICAgICAgICB0aGlzLmJhbmtEZXRhaWxzTW9kZWwgPSByZXM7XG4gICAgICAgICAgICB0aGlzLmJhbmtOYW1lID0gcmVzLmJhbmtOYW1lO1xuICAgICAgICAgICAgdGhpcy5iYW5rTmFtZUNvbnRyb2wuc2V0VmFsdWUocmVzLmJhbmtOYW1lKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIGVyciA9PiB7XG4gICAgICAgICAgICB0aGlzLmJhbmtOYW1lID0gXCJObyBNYXRjaGluZyBSb3V0aW5nIE51bWJlcnMuXCI7XG4gICAgICAgICAgICB0aGlzLmJhbmtOYW1lQ29udHJvbC5zZXRWYWx1ZShudWxsKTtcbiAgICAgICAgICB9XG4gICAgICApO1xuICAgIH1cbiAgfVxuXG5cbn1cbiIsIjxmb3JtIFtmb3JtR3JvdXBdPVwiYmFua0RldGFpbHNGb3JtXCIgI2JhbmtEZXRhaWxzRm9ybURpcmVjdGl2ZT1cIm5nRm9ybVwiIHN0eWxlPVwibWFyZ2luLWJvdHRvbTogMHB4OyBtYXJnaW4tbGVmdDogMHB4OyBtYXJnaW4tdG9wOiA2cHg7XCI+XHJcbiAgICA8aW9uLWdyaWQgc3R5bGU9XCJwYWRkaW5nOiAwcHg7XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInAtZm9ybWdyaWRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiXCI+e3snTmFtZSBvbiBBY2NvdW50JyB8IHRyYW5zbGF0ZX19PC9sYWJlbD48YnIvPlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IGlkPVwibmFtZU9uQWNjb3VudFwiIHR5cGU9XCJ0ZXh0XCIgcElucHV0VGV4dCBbZm9ybUNvbnRyb2xdPVwibmFtZU9uQWNjb3VudFwiIG1heGxlbmd0aD1cIjMwXCIvPiAgXHJcbiAgICAgICAgICAgICAgICA8YnIvPlxyXG4gICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J25hbWVPbkFjY291bnQnIFtmb3JtXT1cImJhbmtEZXRhaWxzRm9ybURpcmVjdGl2ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkLicsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhdHRlcm46ICdwbGVhc2UgZW50ZXIgb25seSBsZXR0ZXJzJ1xyXG4gICAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cIlwiPnt7J0FjY291bnQgVHlwZScgfCB0cmFuc2xhdGV9fTwvbGFiZWw+PGJyLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBpbmxpbmUtZmxleDtcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cC1zZWxlY3RCdXR0b24gW29wdGlvbnNdPVwiYWNjb3VudFR5cGVPcHRpb25zXCIgW2Zvcm1Db250cm9sXT1cImFjY291bnRUeXBlXCIgW211bHRpcGxlXT1mYWxzZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uTGFiZWw9XCJ0ZXh0XCIgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiPjwvcC1zZWxlY3RCdXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdhY2NvdW50VHlwZScgW2Zvcm1dPVwiYmFua0RldGFpbHNGb3JtRGlyZWN0aXZlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtlcnJEZWZdPVwie3JlcXVpcmVkOiAncmVxdWlyZWQuJ31cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwiZmxleC1ncm93OiAxO1wiIHN0eWxlPVwicGFkZGluZy1sZWZ0OiA4cHhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGFwcC1vdmVybGF5LWluZm8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGluZ1wiPkJhbmtpbmcgbnVtYmVyczwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm92ZXJsYXktc3ViaGVhZGluZyBpb24tcGFkZGluZy10b3BcIj5DaGVja2luZyBBY2NvdW50PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3ZlcmxheS1kZXNjIGlvbi1wYWRkaW5nLXRvcFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZpbmQgeW91ciBiYW5rJ3Mgcm91dGluZyBudW1iZXIgYW5kIHlvdXIgYWNjb3VudCBudW1iZXIgb24gdGhlIGJvdHRvbSBvZiB5b3VyIHBlcnNvbmFsIGNoZWNrcy5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBhbHQ9XCJjaGVjayBpbWFnZVwiIHNyYz1cImFzc2V0cy9pY29uL2NoZWNrMS5wbmdcIiBjbGFzcz1cImlvbi1wYWRkaW5nLXRvcFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvdmVybGF5LXN1YmhlYWRpbmcgaW9uLXBhZGRpbmctdG9wXCI+U2F2aW5ncyBBY2NvdW50PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3ZlcmxheS1kZXNjIGlvbi1wYWRkaW5nLXRvcFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIHlvdSBwcmVmZXIgZGlyZWN0IGRlcG9zaXQgaW50byBhIHNhdmluZyBhY2NvdW50IGFuZCBkb24ndCBoYXZlIGEgY2hlY2tpbmcgYWNjb3VudCB3aXRoIHRoZSBzYW1lIGJhbmssIGNhbGwgeW91ciBiYW5rIHRvIGdldCB0aGUgcm91dGluZyBudW1iZXIuICBJZiB5b3UgaGF2ZSBhIGNoZWNraW5nIGFjY291bnQgYXQgdGhlIHNhbWUgYmFuaywgdGhlIHJvdXRpbmcgbnVtYmVyIGlzIHRoZSBzYW1lLCBidXQgdGhlIGFjY291bnQgbnVtYmVyIGlzIGRpZmZlcmVudC5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2FwcC1vdmVybGF5LWluZm8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxpb24tcm93PlxyXG4gICAgICAgICAgICAgICAgPGlvbi1jb2wgY2xhc3M9XCJjb2xcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInJvdXRpbmdOdW1iZXJcIj57eydSb3V0aW5nIE51bWJlcicgfCB0cmFuc2xhdGV9fTwvbGFiZWw+PGJyLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPVwicm91dGluZ051bWJlclwiIHR5cGU9XCJpbnB1dFwiIHBJbnB1dFRleHQgW2Zvcm1Db250cm9sXT1cInJvdXRpbmdOdW1iZXJcIiBtYXhsZW5ndGg9XCI5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYmx1cik9XCJmZXRjaEJhbmtOYW1lKCRldmVudClcIiAvPjxici8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3JvdXRpbmdOdW1iZXInIFtmb3JtXT1cImJhbmtEZXRhaWxzRm9ybURpcmVjdGl2ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkLicsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFzUm91dGluZzonTXVzdCBiZSBhdCBsZWFzdCA5IGRpZ2l0cy4nLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzUm91dGluZ051bWJlck5vdFZhbGlkOiAnSW52YWxpZCByb3V0aW5nIG51bWJlci4nXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgICAgICA8aW9uLWNvbD5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1sYmxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInJvdXRpbmdOdW1iZXJcIj4mbmJzcDs8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpb24tcGFkZGluZy10b3AgaW9uLXBhZGRpbmctYm90dG9tXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7YmFua05hbWUgfCBwcm9wZXJDYXNlfX1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgPC9pb24tcm93PlxyXG4gICAgICAgICAgICA8aW9uLXJvdz5cclxuICAgICAgICAgICAgICAgIDxpb24tY29sIGNsYXNzPVwiY29sXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJhY2NvdW50TnVtYmVyXCI+e3snQWNjb3VudCBOdW1iZXInIHwgdHJhbnNsYXRlfX08L2xhYmVsPjxici8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwLXBhc3N3b3JkIGlkPVwiYWNjb3VudE51bWJlclwiIFtmb3JtQ29udHJvbF09XCJhY2NvdW50TnVtYmVyXCIgW21heGxlbmd0aF09XCIxN1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmZWVkYmFja109XCJmYWxzZVwiIFt0b2dnbGVNYXNrXT1cInRydWVcIj48L3AtcGFzc3dvcmQ+PGJyLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2FjY291bnROdW1iZXInIFtmb3JtXT1cImJhbmtEZXRhaWxzRm9ybURpcmVjdGl2ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQuJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0dGVybjogJ2VudGVyIG9ubHkgbnVtYmVycy4nLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYXNOdW1iZXI6ICd2YWxpZCBudW1iZXInLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhsZW5ndGg6ICdjYW5ub3QgZXhjZWVkIDE3IGNoYXJhY3RlcnMnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICAgICAgPGlvbi1jb2wgY2xhc3M9XCJjb2xcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInJlRW50ZXJBY2NvdW50TnVtYmVyXCI+e3snUmUtZW50ZXIgQWNjb3VudCcgfCB0cmFuc2xhdGV9fTwvbGFiZWw+PGJyLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHAtcGFzc3dvcmQgaWQ9XCJyZUVudGVyQWNjb3VudE51bWJlclwiIFtmb3JtQ29udHJvbF09XCJyZUVudGVyQWNjb3VudE51bWJlclwiIFttYXhsZW5ndGhdPVwiMTdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZlZWRiYWNrXT1cImZhbHNlXCIgW3RvZ2dsZU1hc2tdPVwidHJ1ZVwiPjwvcC1wYXNzd29yZD48YnIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0ncmVFbnRlckFjY291bnROdW1iZXInIFtmb3JtXT1cImJhbmtEZXRhaWxzRm9ybURpcmVjdGl2ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkLicsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXR0ZXJuOiAnZW50ZXIgb25seSBudW1iZXJzLicsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY2NvdW50TnVtYmVDb21wYXJpc2lvbjonQWNjb3VudCBOdW1iZXIgYW5kIFJlLWVudGVyIEFjY291bnQgTnVtYmVyIHNob3VsZCBtYXRjaCcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhsZW5ndGg6ICdjYW5ub3QgZXhjZWVkIDE3IGNoYXJhY3RlcnMnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICA8L2lvbi1yb3c+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2lvbi1ncmlkPlxyXG48L2Zvcm0+Il19
352
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFuay1kZXRhaWxzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy9iYW5rLWRldGFpbHMvYmFuay1kZXRhaWxzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy9iYW5rLWRldGFpbHMvYmFuay1kZXRhaWxzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXFCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RSxPQUFPLEVBQXVGLGFBQWEsRUFBRSxpQkFBaUIsRUFBMEIsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0wsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFHakUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWlCdEQsTUFBTSxPQUFPLG9CQUFvQjtJQW1CL0IsWUFBbUIsV0FBK0IsRUFBUSxJQUFrQixFQUNuRSxHQUFlO1FBREwsZ0JBQVcsR0FBWCxXQUFXLENBQW9CO1FBQVEsU0FBSSxHQUFKLElBQUksQ0FBYztRQUNuRSxRQUFHLEdBQUgsR0FBRyxDQUFZO1FBWmpCLHFCQUFnQixHQUFvQixJQUFJLGdCQUFnQixFQUFFLENBQUM7UUFJbEUsNEJBQXVCLEdBQW1CO1lBQ3hDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1lBQ3ZCLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1lBQ3ZCLFVBQVUsQ0FBQyxRQUFRO1lBQ25CLGFBQWEsQ0FBQywwQkFBMEI7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QjtjQWZoQyxTQUFTOzJCQUNFLGtCQUFrQixhQUdqQixDQUFDO3dCQUNWLE9BQU8sRUFBRSxpQkFBaUI7d0JBQzFCLFdBQVcsc0JBQXNCO3dCQUNqQyxLQUFLLEVBQUUsSUFBSTtxQkFDWjtvQkFDRDt3QkFDRSxPQUFPLEVBQUUsYUFBYTt3QkFDdEIsS0FBSyxFQUFFLElBQUk7d0JBQ1gsV0FBVyxzQkFBc0I7cUJBQ2xDLENBQUM7c0dBS0ssd0JBQXdCO2tCQUQ5QixTQUFTO21CQUFDLDBCQUEwQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTs7a0ZBRjdDLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBVbnR5cGVkRm9ybUJ1aWxkZXIsIFVudHlwZWRGb3JtR3JvdXAsIE5nRm9ybSwgTkdfVkFMSURBVE9SUywgTkdfVkFMVUVfQUNDRVNTT1IsIFZhbGlkYXRvciwgVmFsaWRhdG9yRm4sIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBCYW5rRGV0YWlsc01vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL0JhbmtEZXRhaWxzTW9kZWwnO1xyXG5pbXBvcnQgeyBEbXNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZG1zLXNlcnZpY2UvZG1zLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBVdGlsU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3V0aWwvdXRpbC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQXBwVmFsaWRhdG9ycyB9IGZyb20gJy4uLy4uL3ZhbGlkYXRpb25zL0FwcFZhbGlkYXRvcnMnO1xyXG5pbXBvcnQgeyBBcHBSZWdleCB9IGZyb20gJy4uLy4uL3ZhbGlkYXRpb25zL0FwcFJlZ2V4JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWJhbmstZGV0YWlscycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2JhbmstZGV0YWlscy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vYmFuay1kZXRhaWxzLmNvbXBvbmVudC5jc3MnXSxcclxuICBwcm92aWRlcnM6IFt7XHJcbiAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgIHVzZUV4aXN0aW5nOiBCYW5rRGV0YWlsc0NvbXBvbmVudCxcclxuICAgIG11bHRpOiB0cnVlXHJcbiAgfSxcclxuICB7XHJcbiAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxyXG4gICAgbXVsdGk6IHRydWUsXHJcbiAgICB1c2VFeGlzdGluZzogQmFua0RldGFpbHNDb21wb25lbnRcclxuICB9XSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEJhbmtEZXRhaWxzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25EZXN0cm95LCBWYWxpZGF0b3Ige1xyXG5cclxuICBAVmlld0NoaWxkKCdiYW5rRGV0YWlsc0Zvcm1EaXJlY3RpdmUnLCB7IHN0YXRpYzogZmFsc2UgfSlcclxuICBwdWJsaWMgYmFua0RldGFpbHNGb3JtRGlyZWN0aXZlOiBOZ0Zvcm07XHJcblxyXG4gIHB1YmxpYyBiYW5rRGV0YWlsc0Zvcm06IFVudHlwZWRGb3JtR3JvdXA7XHJcbiAgYWNjb3VudFR5cGVPcHRpb25zOiBhbnlbXTtcclxuXHJcbiAgcHVibGljIGJhbmtEZXRhaWxzTW9kZWw6IEJhbmtEZXRhaWxzTW9kZWw9IG5ldyBCYW5rRGV0YWlsc01vZGVsKCk7XHJcbiAgcHVibGljIGJhbmtOYW1lOiBzdHJpbmc7XHJcbiAgXHJcbiAgXHJcbiAgcm91dGluZ051bWJlclZhbGlkYXRvcnMgOiBWYWxpZGF0b3JGbltdID0gW1xyXG4gICAgVmFsaWRhdG9ycy5taW5MZW5ndGgoOSksIFxyXG4gICAgVmFsaWRhdG9ycy5tYXhMZW5ndGgoOSksIFxyXG4gICAgVmFsaWRhdG9ycy5yZXF1aXJlZCxcclxuICAgIEFwcFZhbGlkYXRvcnMuaXNWYWxpZExlbmd0aFJvdXRpbmdOdW1iZXJcclxuICBdO1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZm9ybUJ1aWxkZXI6IFVudHlwZWRGb3JtQnVpbGRlcixwdWJsaWMgdXRpbCA6IFV0aWxTZXJ2aWNlLFxyXG4gICAgcHVibGljIGRtczogRG1zU2VydmljZSkgeyBcclxuICAgIHRoaXMuYWNjb3VudFR5cGVPcHRpb25zID0gW1xyXG4gICAgICB7IHRleHQ6ICdjaGVja2luZycsIHZhbHVlOiAnQ0hFQycgfSxcclxuICAgICAgeyB0ZXh0OiAnc2F2aW5ncycsIHZhbHVlOiAnU0FWRScgfSxcclxuICAgIF07XHJcbiAgfVxyXG5cclxuICBcclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgXHJcbiAgICBjb25zb2xlLmxvZyhcImluc2lkZSBvbkluaXQgYmFua2RldGFpbHNjb21wb25lbnRcIik7XHJcbiAgICB0aGlzLmJhbmtEZXRhaWxzRm9ybSA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xyXG4gICAgICAnbmFtZU9uQWNjb3VudCc6IFtudWxsLCBWYWxpZGF0b3JzLmNvbXBvc2UoW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMucGF0dGVybihBcHBSZWdleC5OQU1FX1JFR0VYKV0pXSxcclxuICAgICAgJ2FjY291bnRUeXBlJzogW251bGwsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG4gICAgICAncm91dGluZ051bWJlcic6IFtudWxsLCBWYWxpZGF0b3JzLmNvbXBvc2UoW1ZhbGlkYXRvcnMucmVxdWlyZWRdKV0sXHJcbiAgICAgICdiYW5rTmFtZSc6IFtudWxsXSxcclxuICAgICAgJ2FjY291bnROdW1iZXInOiBbbnVsbCwgVmFsaWRhdG9ycy5jb21wb3NlKFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLnBhdHRlcm4oQXBwUmVnZXguQUNDT1VOVF9OVU1CRVJfUkVHRVgpLCBWYWxpZGF0b3JzLm1heExlbmd0aCgxNyksIFZhbGlkYXRvcnMubWluKDgpXSldLFxyXG4gICAgICAncmVFbnRlckFjY291bnROdW1iZXInOiBbbnVsbCwgVmFsaWRhdG9ycy5jb21wb3NlKFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLnBhdHRlcm4oQXBwUmVnZXguQUNDT1VOVF9OVU1CRVJfUkVHRVgpLCBWYWxpZGF0b3JzLm1heExlbmd0aCgxNyksIFZhbGlkYXRvcnMubWluKDgpXSldXHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLnNldEFjY291bnROdW1iZXJWYWxpZGF0b3IoKTtcclxuICB9XHJcblxyXG4gIHN1Ym1pdCgpe1xyXG5cclxuICAgIC8vY29uc29sZS5sb2coXCJ0aGlzLmJhbmtEZXRhaWxzRm9ybURpcmVjdGl2ZSA6IFwiK3RoaXMuYmFua0RldGFpbHNGb3JtRGlyZWN0aXZlKTtcclxuICAgIGlmKHRoaXMuYmFua0RldGFpbHNGb3JtRGlyZWN0aXZlKXtcclxuICAgICAgdGhpcy5iYW5rRGV0YWlsc0Zvcm1EaXJlY3RpdmUub25TdWJtaXQodW5kZWZpbmVkKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICAvLyBNZXRob2QgdG8gcmVtb3ZlIG5vbi1kaWdpdCBjaGFyYWN0ZXJzIGR5bmFtaWNhbGx5XHJcbiAgICAvLyBQR0xQLTE3NTAgIGluIGNvcnJlY3QgUm91dGluZyBOVW1iZXIgIFxyXG4gICBzYW5pdGl6ZUlucHV0KGV2ZW50OmFueSkge1xyXG4gICAgbGV0IHZhbHVlID0gZXZlbnQudGFyZ2V0LnZhbHVlIHx8ICcnO1xyXG4gICAgbGV0IGZpZWxkTmFtZSA9IGV2ZW50LnRhcmdldC5pZDsgLy8gR2V0IGlucHV0IGZpZWxkIElEXHJcbiAgICBpZihmaWVsZE5hbWU9PT0nYmFua0FjY291bnROdW1iZXInKXtcclxuICAgICAgdGhpcy5hY2NvdW50TnVtYmVyLnNldFZhbHVlKHZhbHVlLnJlcGxhY2UoL1xcRCsvZywgJycpKTtcclxuICAgICAgZXZlbnQudGFyZ2V0LnZhbHVlID0gdmFsdWUuc3Vic3RyaW5nKDAsIDE3KTsgLy8gVHJpbSBleGNlc3MgY2hhcmFjdGVyc1xyXG4gICAgICBpZih2YWx1ZS5sZW5ndGg8OCl7XHJcbiAgICAgICAgdGhpcy5iYW5rRGV0YWlsc0Zvcm0uY29udHJvbHNbJ2FjY291bnROdW1iZXInXS5zZXRFcnJvcnMoeyBtaW5sZW5ndGg6IHRydWUgfSk7ICAgICAgXHJcbiAgICAgICAgcmV0dXJuIHsgbWlubGVuZ3RoOiB0cnVlIH07ICAgXHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmKGZpZWxkTmFtZT09PSdyZUVudGVyQWNjb3VudE51bWJlcicpe1xyXG4gICAgICB0aGlzLnJlRW50ZXJBY2NvdW50TnVtYmVyLnNldFZhbHVlKHZhbHVlLnJlcGxhY2UoL1xcRCsvZywgJycpKTtcclxuICAgICAgZXZlbnQudGFyZ2V0LnZhbHVlID0gdmFsdWUuc3Vic3RyaW5nKDAsIDE3KTsgLy8gVHJpbSBleGNlc3MgY2hhcmFjdGVyc1xyXG4gICAgICBpZih2YWx1ZS5sZW5ndGg8OCl7XHJcbiAgICAgICAgdGhpcy5iYW5rRGV0YWlsc0Zvcm0uY29udHJvbHNbJ3JlRW50ZXJBY2NvdW50TnVtYmVyJ10uc2V0RXJyb3JzKHsgbWlubGVuZ3RoOiB0cnVlIH0pOyAgICAgIFxyXG4gICAgICAgIHJldHVybiB7IG1pbmxlbmd0aDogdHJ1ZSB9OyAgIFxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAgXHJcbiAgICBcclxuXHJcbiAgfVxyXG5cclxuICBzZXRBY2NvdW50TnVtYmVyVmFsaWRhdG9yKCkge1xyXG4gICAgbGV0IHZhbGlkYXRvcnMxOiBWYWxpZGF0b3JGbltdID0gW107XHJcbiAgICBsZXQgaXNSb3V0aW5nTnVtYmVyTm90VmFsaWQ6IGJvb2xlYW47XHJcbiAgICB0aGlzLnJvdXRpbmdOdW1iZXJWYWxpZGF0b3JzLmZvckVhY2godiA9PiB2YWxpZGF0b3JzMS5wdXNoKHYpKTtcclxuICAgIHRoaXMudXRpbC5zZXRWYWxpZGF0aW9uKHRoaXMucm91dGluZ051bWJlciwgdGhpcy5yb3V0aW5nTnVtYmVyVmFsaWRhdG9ycyk7XHJcbiAgICBjb25zb2xlLmxvZyhcIlZhbGlkYXRvcnMgOiBcIit0aGlzLnJvdXRpbmdOdW1iZXJWYWxpZGF0b3JzKTtcclxuICAgIGNvbnN0IFJPVVRJTkdfTlVNQkVSOlJlZ0V4cCA9IC9eWzAtNF17MX1bMC05XXs4fSQvO1xyXG4gICAgdGhpcy51dGlsLnNldFZhbGlkYXRpb24odGhpcy5yb3V0aW5nTnVtYmVyLCB2YWxpZGF0b3JzMSk7XHJcbiAgICBcclxuICAgIHRoaXMudXRpbC5zZXRWYWxpZGF0aW9uKHRoaXMucm91dGluZ051bWJlciwgQXBwVmFsaWRhdG9ycy5pc1ZhbGlkUm91dGluZ051bWJlcik7XHJcbiAgICB0aGlzLnV0aWwuc2V0VmFsaWRhdGlvbih0aGlzLnJvdXRpbmdOdW1iZXIsIEFwcFZhbGlkYXRvcnMuaXNWYWxpZExlbmd0aFJvdXRpbmdOdW1iZXIpO1xyXG5cclxuICAgIHRoaXMucmVFbnRlckFjY291bnROdW1iZXIudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh2YWwgPT4ge1xyXG4gICAgICBpZiAodGhpcy5hY2NvdW50TnVtYmVyICYmICh0aGlzLmFjY291bnROdW1iZXIudmFsdWUgIT0gdGhpcy5yZUVudGVyQWNjb3VudE51bWJlci52YWx1ZSkpIHtcclxuICAgICAgICB0aGlzLmJhbmtEZXRhaWxzRm9ybS5jb250cm9sc1sncmVFbnRlckFjY291bnROdW1iZXInXS5zZXRFcnJvcnMoeyBhY2NvdW50TnVtYmVDb21wYXJpc2lvbjogdHJ1ZSB9KTtcclxuICAgICAgICByZXR1cm4geyBhY2NvdW50TnVtYmVDb21wYXJpc2lvbjogdHJ1ZSB9O1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLnJvdXRpbmdOdW1iZXIudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh2YWwgPT4ge1xyXG4gICAgY29uc3QgdmFsaWQxID0gUk9VVElOR19OVU1CRVIudGVzdCh0aGlzLnJvdXRpbmdOdW1iZXIudmFsdWUpO1xyXG4gICAgICBpZiAoIXZhbGlkMSkge1xyXG4gICAgICAgIGlmKEFwcFZhbGlkYXRvcnMuaXNWYWxpZExlbmd0aFJvdXRpbmdOdW1iZXIpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgdGhpcy5iYW5rRGV0YWlsc0Zvcm0uY29udHJvbHNbJ3JvdXRpbmdOdW1iZXInXS5zZXRFcnJvcnMoe2ludmFsaWRMZW5ndGhSb3V0aW5nOiB0cnVlIH0pO1xyXG4gICAgICAgICAgdGhpcy5iYW5rRGV0YWlsc0Zvcm0uaW52YWxpZDtcclxuICAgICAgICAgIHJldHVybiB7IGludmFsaWRMZW5ndGhSb3V0aW5nOiB0cnVlIH07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2V7XHJcbiAgICAgICAgdGhpcy5iYW5rRGV0YWlsc0Zvcm0uY29udHJvbHNbJ3JvdXRpbmdOdW1iZXInXS5zZXRFcnJvcnMoeyBoYXNSb3V0aW5nOiB0cnVlIH0pO1xyXG4gICAgICAgIHRoaXMuYmFua0RldGFpbHNGb3JtLmludmFsaWQ7XHJcbiAgICAgICAgLy90aGlzLmJhbmtEZXRhaWxzRm9ybS5jb250cm9sc1snYWRkcmVzcyddLnNldEVycm9ycyh7IGJhbmtEZXRhaWxzVmFsaWRhdGlvbkZsYWc6IHRydWUgfSk7XHJcbiAgICAgICAgcmV0dXJuIHsgaGFzUm91dGluZzogdHJ1ZSB9O1xyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBnZXQgbmFtZU9uQWNjb3VudCgpIHtcclxuICAgIHJldHVybiB0aGlzLmJhbmtEZXRhaWxzRm9ybS5jb250cm9sc1snbmFtZU9uQWNjb3VudCddO1xyXG4gIH1cclxuICBnZXQgYWNjb3VudFR5cGUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5iYW5rRGV0YWlsc0Zvcm0uY29udHJvbHNbJ2FjY291bnRUeXBlJ107XHJcbiAgfVxyXG4gIGdldCByb3V0aW5nTnVtYmVyKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYmFua0RldGFpbHNGb3JtLmNvbnRyb2xzWydyb3V0aW5nTnVtYmVyJ107XHJcbiAgfVxyXG4gIGdldCBhY2NvdW50TnVtYmVyKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYmFua0RldGFpbHNGb3JtLmNvbnRyb2xzWydhY2NvdW50TnVtYmVyJ107XHJcbiAgfVxyXG4gIGdldCBiYW5rTmFtZUNvbnRyb2woKSB7XHJcbiAgICByZXR1cm4gdGhpcy5iYW5rRGV0YWlsc0Zvcm0uY29udHJvbHNbJ2JhbmtOYW1lJ107XHJcbiAgfVxyXG4gIGdldCByZUVudGVyQWNjb3VudE51bWJlcigpIHtcclxuICAgIHJldHVybiB0aGlzLmJhbmtEZXRhaWxzRm9ybS5jb250cm9sc1sncmVFbnRlckFjY291bnROdW1iZXInXTtcclxuICB9XHJcblxyXG4gIG9uVG91Y2hlZDogRnVuY3Rpb24gPSAoKSA9PiB7IH07XHJcblxyXG4gIG9uQ2hhbmdlU3ViczogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICBmb3IgKGxldCBzdWIgb2YgdGhpcy5vbkNoYW5nZVN1YnMpIHtcclxuICAgICAgc3ViLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uQ2hhbmdlKG9uQ2hhbmdlOiBhbnkpIHtcclxuICAgIGNvbnN0IHN1YiA9IHRoaXMuYmFua0RldGFpbHNGb3JtLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUob25DaGFuZ2UpO1xyXG4gICAgdGhpcy5vbkNoYW5nZVN1YnMucHVzaChzdWIpO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQob25Ub3VjaGVkOiBGdW5jdGlvbikge1xyXG4gICAgdGhpcy5vblRvdWNoZWQgPSBvblRvdWNoZWQ7XHJcbiAgfSBcclxuICBcclxuICBzZXREaXNhYmxlZFN0YXRlKGRpc2FibGVkOiBib29sZWFuKSB7XHJcbiAgICBpZiAoZGlzYWJsZWQpIHtcclxuICAgICAgdGhpcy5iYW5rRGV0YWlsc0Zvcm0uZGlzYWJsZSgpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuYmFua0RldGFpbHNGb3JtLmVuYWJsZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XHJcbiAgICBpZiAodmFsdWUpIHtcclxuICAgICAgdGhpcy5iYW5rRGV0YWlsc0Zvcm0uc2V0VmFsdWUodmFsdWUsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICB2YWxpZGF0ZShjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpIHtcclxuICAgIGNvbnNvbGUubG9nKFwiYmFua0RldGFpbHNGb3JtIDogXCIrIHRoaXMuYmFua0RldGFpbHNGb3JtLmdldEVycm9yKTtcclxuICAgIGlmICh0aGlzLmJhbmtEZXRhaWxzRm9ybS52YWxpZCkge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGZldGNoQmFua05hbWUoZXZlbnQpe1xyXG4gICAgaWYodGhpcy5yb3V0aW5nTnVtYmVyICYmIHRoaXMucm91dGluZ051bWJlci52YWx1ZSl7ICAgXHJcbiAgICAgIHRoaXMuZG1zXHJcbiAgICAgICAgLmdldEJhbmtOYW1lKHRoaXMucm91dGluZ051bWJlci52YWx1ZSlcclxuICAgICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgcmVzID0+IHtcclxuICAgICAgICAgICAgdGhpcy5iYW5rRGV0YWlsc01vZGVsID0gcmVzO1xyXG4gICAgICAgICAgICB0aGlzLmJhbmtOYW1lID0gcmVzLmJhbmtOYW1lO1xyXG4gICAgICAgICAgICB0aGlzLmJhbmtOYW1lQ29udHJvbC5zZXRWYWx1ZShyZXMuYmFua05hbWUpO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGVyciA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuYmFua05hbWUgPSBcIm5vIGRhdGEgZm91bmQuXCI7XHJcbiAgICAgICAgICAgIHRoaXMuYmFua05hbWVDb250cm9sLnNldFZhbHVlKG51bGwpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuIC8vIFBHTFAtMTc1MCAgaW4gY29ycmVjdCBSb3V0aW5nIE5VbWJlciAgXHJcbiAgLy8gQ2xlYXJzIHRoZSByZUVudGVyQWNjb3VudE51bWJlciB2YWx1ZSB3aGVuIGFjY291bnQgbnVtYmVyIGFuZCByZUVudGVyQWNjb3VudE51bWJlciBpcyBub3Qgc2FtZS5cclxuICBhY2NvdW50TnVtYmVyQ29tcGFyaXNpb24oZXZlbnQgOmFueSkge1xyXG4gICAgaWYgKHRoaXMuYWNjb3VudE51bWJlciAmJiAodGhpcy5hY2NvdW50TnVtYmVyLnZhbHVlICE9IHRoaXMucmVFbnRlckFjY291bnROdW1iZXIudmFsdWUpKSB7XHJcbiAgICAgIHRoaXMucmVFbnRlckFjY291bnROdW1iZXIuc2V0VmFsdWUobnVsbCk7ICAgICAgIFxyXG4gIH1cclxufVxyXG4gLy8gUEdMUC0xNzUwICBpbiBjb3JyZWN0IFJvdXRpbmcgTlVtYmVyICBcclxuICAvLyBDbGVhcnMgdGhlIHJlRW50ZXJBY2NvdW50TnVtYmVyIHZhbHVlIHdoZW4gYWNjb3VudCBudW1iZXIgYW5kIHJlRW50ZXJBY2NvdW50TnVtYmVyIGlzIG5vdCBzYW1lLlxyXG4gIGFjY291bnROdW1iZXJtaW5sZW5naHR2YWxpZGF0aW9uKGV2ZW50IDphbnkpIHtcclxuICAgIGlmICh0aGlzLmFjY291bnROdW1iZXIudmFsdWUubGVuZ3RoPDgpIHsgIFxyXG4gICAgICB0aGlzLmFjY291bnROdW1iZXIuc2V0VmFsdWUobnVsbCk7IFxyXG5cclxuICB9XHJcbn1cclxuXHJcblxyXG4gLy8gUEdMUC0xNzUwICBpbiBjb3JyZWN0IFJvdXRpbmcgTlVtYmVyICBcclxuICAvLyAgaWYgRW50ZXJlZCBSb3V0aW5nTnVtYmVyIHZhbHVlIGlzIG5vdCB2YWxpZGF0ZWQgd2l0aCBnaXZlbiBSZWdFeHAgdGhlbiAsUm91dGluZ051bWJlciB2YWx1ZSBpcyBzZXQgYXMgYSBudWxsXHJcbiAgcm91dGluZ051bWJlclZhbGlkYXRpb24oZXZlbnQgOmFueSkge1xyXG4gICAgY29uc3QgUk9VVElOR19OVU1CRVI6UmVnRXhwID0gL15bMC00XXsxfVswLTldezh9JC87ICAgXHJcbiAgICAgIGNvbnN0IHZhbGlkMSA9IFJPVVRJTkdfTlVNQkVSLnRlc3QodGhpcy5yb3V0aW5nTnVtYmVyLnZhbHVlKTsgICAgIFxyXG4gICAgICAgIGlmICghdmFsaWQxKSB7XHJcbiAgICAgICAgICB0aGlzLnJvdXRpbmdOdW1iZXIuc2V0VmFsdWUobnVsbCk7ICBcclxuICAgICAgICB9XHJcbiAgICAgICBpZih2YWxpZDEpe1xyXG4gICAgICAgICAgaWYoQXBwVmFsaWRhdG9ycy5pc1ZhbGlkUm91dGluZ051bWJlcih0aGlzLnJvdXRpbmdOdW1iZXIpKXtcclxuICAgICAgICAgICAgdGhpcy5yb3V0aW5nTnVtYmVyLnNldFZhbHVlKG51bGwpOyAgXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG59XHJcblxyXG5cclxuXHJcbn1cclxuIiwiPGZvcm0gW2Zvcm1Hcm91cF09XCJiYW5rRGV0YWlsc0Zvcm1cIiAjYmFua0RldGFpbHNGb3JtRGlyZWN0aXZlPVwibmdGb3JtXCIgc3R5bGU9XCJtYXJnaW4tYm90dG9tOiAwcHg7IG1hcmdpbi1sZWZ0OiAwcHg7IG1hcmdpbi10b3A6IDZweDtcIj5cclxuICAgIDxpb24tZ3JpZCBzdHlsZT1cInBhZGRpbmc6IDBweDtcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicC1mb3JtZ3JpZFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJuYW1lT25BY2NvdW50XCI+e3snTmFtZSBvbiBBY2NvdW50JyB8IHRyYW5zbGF0ZX19PC9sYWJlbD48YnIvPlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IGlkPVwibmFtZU9uQWNjb3VudFwiIHR5cGU9XCJ0ZXh0XCIgcElucHV0VGV4dCBbZm9ybUNvbnRyb2xdPVwibmFtZU9uQWNjb3VudFwiIG1heGxlbmd0aD1cIjMwXCIvPiAgXHJcbiAgICAgICAgICAgICAgICA8YnIvPlxyXG4gICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J25hbWVPbkFjY291bnQnIFtmb3JtXT1cImJhbmtEZXRhaWxzRm9ybURpcmVjdGl2ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkLicsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhdHRlcm46ICdwbGVhc2UgZW50ZXIgb25seSBsZXR0ZXJzJ1xyXG4gICAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cIlwiPnt7J0FjY291bnQgVHlwZScgfCB0cmFuc2xhdGV9fTwvbGFiZWw+PGJyLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBpbmxpbmUtZmxleDtcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cC1zZWxlY3RCdXR0b24gW29wdGlvbnNdPVwiYWNjb3VudFR5cGVPcHRpb25zXCIgW2Zvcm1Db250cm9sXT1cImFjY291bnRUeXBlXCIgW211bHRpcGxlXT1mYWxzZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uTGFiZWw9XCJ0ZXh0XCIgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiPjwvcC1zZWxlY3RCdXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdhY2NvdW50VHlwZScgW2Zvcm1dPVwiYmFua0RldGFpbHNGb3JtRGlyZWN0aXZlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtlcnJEZWZdPVwie3JlcXVpcmVkOiAncmVxdWlyZWQuJ31cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwiZmxleC1ncm93OiAxO1wiIHN0eWxlPVwicGFkZGluZy1sZWZ0OiA4cHhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGFwcC1vdmVybGF5LWluZm8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGluZ1wiPkJhbmtpbmcgbnVtYmVyczwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm92ZXJsYXktc3ViaGVhZGluZyBpb24tcGFkZGluZy10b3BcIj5DaGVja2luZyBBY2NvdW50PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3ZlcmxheS1kZXNjIGlvbi1wYWRkaW5nLXRvcFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZpbmQgeW91ciBiYW5r4oCZcyByb3V0aW5nIG51bWJlciBhbmQgeW91ciBhY2NvdW50IG51bWJlciBvbiB0aGUgYm90dG9tIG9mIHlvdXIgcGVyc29uYWwgY2hlY2tzLlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGFsdD1cImNoZWNrIGltYWdlXCIgc3JjPVwiYXNzZXRzL2ljb24vY2hlY2sucG5nXCIgY2xhc3M9XCJpb24tcGFkZGluZy10b3BcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3ZlcmxheS1zdWJoZWFkaW5nIGlvbi1wYWRkaW5nLXRvcFwiPlNhdmluZ3MgQWNjb3VudDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm92ZXJsYXktZGVzYyBpb24tcGFkZGluZy10b3BcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiB5b3UgcHJlZmVyIGRpcmVjdCBkZXBvc2l0IGludG8gYSBzYXZpbmcgYWNjb3VudCBhbmQgZG9u4oCZdCBoYXZlIGEgY2hlY2tpbmcgYWNjb3VudCB3aXRoIHRoZSBzYW1lIGJhbmssIGNhbGwgeW91ciBiYW5rIHRvIGdldCB0aGUgcm91dGluZyBudW1iZXIuICBJZiB5b3UgaGF2ZSBhIGNoZWNraW5nIGFjY291bnQgYXQgdGhlIHNhbWUgYmFuaywgdGhlIHJvdXRpbmcgbnVtYmVyIGlzIHRoZSBzYW1lLCBidXQgdGhlIGFjY291bnQgbnVtYmVyIGlzIGRpZmZlcmVudC5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2FwcC1vdmVybGF5LWluZm8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxpb24tcm93PlxyXG4gICAgICAgICAgICAgICAgPGlvbi1jb2wgY2xhc3M9XCJjb2xcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInJvdXRpbmdOdW1iZXJJbnB1dFwiPnt7J1JvdXRpbmcgTnVtYmVyJyB8IHRyYW5zbGF0ZX19PC9sYWJlbD48YnIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9XCJyb3V0aW5nTnVtYmVySW5wdXRcIiB0eXBlPVwiaW5wdXRcIiBwSW5wdXRUZXh0IFtmb3JtQ29udHJvbF09XCJyb3V0aW5nTnVtYmVyXCIgbWlubGVuZ3RoPVwiOVwiIG1heGxlbmd0aD1cIjlcIiAgaW5wdXRtb2RlPVwibnVtZXJpY1wiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBvbmlucHV0PVwidGhpcy52YWx1ZSA9IHRoaXMudmFsdWUucmVwbGFjZSgvXFxEKy9nLCAnJylcIiBzaXplPVwiOVwiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgKGZvY3Vzb3V0KT1cInJvdXRpbmdOdW1iZXJWYWxpZGF0aW9uKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgLz4gXHJcbiAgICAgICAgICAgICAgICAgICAgICA8YnIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8IS0tIFRDU1VYLTI1NCBjb21tZW50ZWQgdGhlIGNoZWNrIGZvciB2YWxpZCBiYW5rIGFjY291bnQgZm9yIHJvdXRpbmcgbnVtYmVyIGFzIEtET0wgZG9lc250IG5lZWQgaXQtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxpbnB1dCBpZD1cInJvdXRpbmdOdW1iZXJcIiB0eXBlPVwiaW5wdXRcIiBwSW5wdXRUZXh0IFtmb3JtQ29udHJvbF09XCJyb3V0aW5nTnVtYmVyXCIgbWF4bGVuZ3RoPVwiOVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJsdXIpPVwiZmV0Y2hCYW5rTmFtZSgkZXZlbnQpXCIgLz48YnIvPiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0ncm91dGluZ051bWJlcicgW2Zvcm1dPVwiYmFua0RldGFpbHNGb3JtRGlyZWN0aXZlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQuJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnZhbGlkTGVuZ3RoUm91dGluZzogJ0VudGVyIHZhbGlkIDkgZGlnaXQgcm91dGluZyBudW1iZXInLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhc1JvdXRpbmc6J0VudGVyIG9ubHkgbnVtYmVycy4nLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzUm91dGluZ051bWJlck5vdFZhbGlkOiAnSW52YWxpZCByb3V0aW5nIG51bWJlci4nLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgICAgICA8aW9uLWNvbD5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1sYmxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInJvdXRpbmdOdW1iZXJcIj4mbmJzcDs8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpb24tcGFkZGluZy10b3AgaW9uLXBhZGRpbmctYm90dG9tXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7YmFua05hbWUgfCBwcm9wZXJDYXNlfX1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgPC9pb24tcm93PlxyXG4gICAgICAgICAgICA8aW9uLXJvdz5cclxuICAgICAgICAgICAgICAgIDxpb24tY29sIGNsYXNzPVwiY29sXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGFjY291bnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImJhbmtBY2NvdW50TnVtYmVyXCI+e3snQWNjb3VudCBOdW1iZXInIHwgdHJhbnNsYXRlfX08L2xhYmVsPjxici8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwLXBhc3N3b3JkIGlucHV0SWQ9XCJiYW5rQWNjb3VudE51bWJlclwiIFtmb3JtQ29udHJvbF09XCJhY2NvdW50TnVtYmVyXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbbWF4bGVuZ3RoXT1cIjE3XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGlucHV0KT1cInNhbml0aXplSW5wdXQoJGV2ZW50KVwiICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoZm9jdXNvdXQpPSBcImFjY291bnROdW1iZXJtaW5sZW5naHR2YWxpZGF0aW9uKCRldmVudClcIiAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2ZlZWRiYWNrXT1cImZhbHNlXCIgW3RvZ2dsZU1hc2tdPVwidHJ1ZVwiID5cclxuICAgICAgICAgICAgICAgICAgICA8L3AtcGFzc3dvcmQ+IDxici8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdhY2NvdW50TnVtYmVyJyBbZm9ybV09XCJiYW5rRGV0YWlsc0Zvcm1EaXJlY3RpdmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogJ3JlcXVpcmVkLicsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdHRlcm46ICdlbnRlciBvbmx5IG51bWJlcnMuJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFzTnVtYmVyOiAndmFsaWQgbnVtYmVyJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4bGVuZ3RoOiAnY2Fubm90IGV4Y2VlZCAxNyBjaGFyYWN0ZXJzJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWlubGVuZ3RoOiAnQWNjb3VudCBudW1iZXIgc2hvdWxkIGhhdmUgYSBtaW5pbXVtIG9mIDggY2hhcmFjdGVycy4gXFxuSWYgeW91ciBudW1iZXIgaGFzIGZld2VyIHRoYW4gOCBjaGFyYWN0ZXJzLCBhZGQgbGVhZGluZyB6ZXJvcy4nXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgICAgIDxpb24tY29sIGNsYXNzPVwiY29sXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGFjY291bnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInJlRW50ZXJBY2NvdW50TnVtYmVyXCI+e3snUmUtZW50ZXIgQWNjb3VudCcgfCB0cmFuc2xhdGV9fTwvbGFiZWw+PGJyLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHAtcGFzc3dvcmQgaW5wdXRJZD1cInJlRW50ZXJBY2NvdW50TnVtYmVyXCIgW2Zvcm1Db250cm9sXT1cInJlRW50ZXJBY2NvdW50TnVtYmVyXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1heGxlbmd0aD1cIjE3XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGlucHV0KT1cInNhbml0aXplSW5wdXQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChmb2N1c291dCk9XCJhY2NvdW50TnVtYmVyQ29tcGFyaXNpb24oJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZmVlZGJhY2tdPVwiZmFsc2VcIiBbdG9nZ2xlTWFza109XCJ0cnVlXCIgc2l6ZT1cIjE3XCI+PC9wLXBhc3N3b3JkPjxici8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdyZUVudGVyQWNjb3VudE51bWJlcicgW2Zvcm1dPVwiYmFua0RldGFpbHNGb3JtRGlyZWN0aXZlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQuJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdHRlcm46ICdlbnRlciBvbmx5IG51bWJlcnMuJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjY291bnROdW1iZUNvbXBhcmlzaW9uOidBY2NvdW50IE51bWJlciBhbmQgUmUtZW50ZXIgQWNjb3VudCBOdW1iZXIgc2hvdWxkIG1hdGNoJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heGxlbmd0aDogJ2Nhbm5vdCBleGNlZWQgMTcgY2hhcmFjdGVycycsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW5sZW5ndGg6ICdSZUFjY291bnQgbnVtYmVyIHNob3VsZCBoYXZlIGEgbWluaW11bSBvZiA4IGNoYXJhY3RlcnMnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICA8L2lvbi1yb3c+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2lvbi1ncmlkPlxyXG48L2Zvcm0+Il19