@hmcts/ccpay-web-component 5.0.10 → 5.1.0-beta01

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 (389) hide show
  1. package/bundles/hmcts-ccpay-web-component.umd.js +5092 -8696
  2. package/bundles/hmcts-ccpay-web-component.umd.js.map +1 -1
  3. package/bundles/hmcts-ccpay-web-component.umd.min.js +1 -1
  4. package/bundles/hmcts-ccpay-web-component.umd.min.js.map +1 -1
  5. package/esm2015/hmcts-ccpay-web-component.js +2 -6
  6. package/esm2015/lib/components/add-remission/add-remission.component.js +34 -407
  7. package/esm2015/lib/components/allocate-payments/allocate-payments.component.js +37 -348
  8. package/esm2015/lib/components/card-details/card-details.component.js +3 -46
  9. package/esm2015/lib/components/case-transactions/case-transactions.component.js +111 -687
  10. package/esm2015/lib/components/error-banner/error-banner.component.js +2 -14
  11. package/esm2015/lib/components/fee-summary/fee-summary.component.js +29 -255
  12. package/esm2015/lib/components/mark-unidentified-payment/mark-unidentified-payment.component.js +23 -181
  13. package/esm2015/lib/components/mark-unsolicited-payment/mark-unsolicited-payment.component.js +27 -225
  14. package/esm2015/lib/components/page-not-found.component.js +2 -6
  15. package/esm2015/lib/components/payment-list/payment-list.component.js +4 -48
  16. package/esm2015/lib/components/payment-view/payment-view.component.js +39 -336
  17. package/esm2015/lib/components/pba-details/pba-details.component.js +3 -15
  18. package/esm2015/lib/components/pba-payment/pba-payment.component.js +13 -120
  19. package/esm2015/lib/components/process-refund/process-refund.component.js +16 -178
  20. package/esm2015/lib/components/processed-payments/processed-payments.component.js +4 -42
  21. package/esm2015/lib/components/refund-list/refund-list.component.js +9 -77
  22. package/esm2015/lib/components/refund-status/refund-status.component.js +25 -257
  23. package/esm2015/lib/components/reports/reports.component.js +21 -212
  24. package/esm2015/lib/components/service-request/service-request.component.js +36 -370
  25. package/esm2015/lib/components/status-history/status-history.component.js +4 -44
  26. package/esm2015/lib/components/table/table.component.js +5 -105
  27. package/esm2015/lib/components/unprocessed-payments/unprocessed-payments.component.js +12 -184
  28. package/esm2015/lib/interfaces/AddRemissionRequest.js +1 -28
  29. package/esm2015/lib/interfaces/AddRetroRemissionRequest.js +1 -15
  30. package/esm2015/lib/interfaces/AllocatePaymentRequest.js +1 -42
  31. package/esm2015/lib/interfaces/IAllocationPaymentsRequest.js +1 -26
  32. package/esm2015/lib/interfaces/IBSPayments.js +2 -45
  33. package/esm2015/lib/interfaces/ICardDetails.js +2 -21
  34. package/esm2015/lib/interfaces/IFee.js +2 -53
  35. package/esm2015/lib/interfaces/IOrderReferenceFee.js +2 -25
  36. package/esm2015/lib/interfaces/IPatchRefundAction.js +2 -15
  37. package/esm2015/lib/interfaces/IPayment.js +2 -65
  38. package/esm2015/lib/interfaces/IPaymentFailure.js +2 -33
  39. package/esm2015/lib/interfaces/IPaymentGroup.js +2 -19
  40. package/esm2015/lib/interfaces/IPaymentStatus.js +1 -25
  41. package/esm2015/lib/interfaces/IPaymentView.js +2 -17
  42. package/esm2015/lib/interfaces/IPayments.js +2 -13
  43. package/esm2015/lib/interfaces/IRefundAction.js +2 -15
  44. package/esm2015/lib/interfaces/IRefundList.js +2 -29
  45. package/esm2015/lib/interfaces/IRefundReasons.js +2 -19
  46. package/esm2015/lib/interfaces/IRefundRejectReason.js +2 -15
  47. package/esm2015/lib/interfaces/IRefundStatus.js +2 -23
  48. package/esm2015/lib/interfaces/IRefundStatusHistory.js +2 -15
  49. package/esm2015/lib/interfaces/IRemission.js +2 -25
  50. package/esm2015/lib/interfaces/IResubmitRefundRequest.js +1 -15
  51. package/esm2015/lib/interfaces/IStatusHistories.js +2 -19
  52. package/esm2015/lib/interfaces/IStatusHistory.js +2 -21
  53. package/esm2015/lib/interfaces/IserviceRequestCardPayment.js +1 -16
  54. package/esm2015/lib/interfaces/IserviceRequestPbaPayment.js +1 -23
  55. package/esm2015/lib/interfaces/IssueRefundRequest.js +1 -18
  56. package/esm2015/lib/interfaces/PayhubAntennaRequest.js +2 -21
  57. package/esm2015/lib/interfaces/PaymentToPayhubRequest.js +2 -27
  58. package/esm2015/lib/interfaces/PostIssueRefundRetroRemission.js +1 -12
  59. package/esm2015/lib/interfaces/PostRefundRetroRemission.js +1 -15
  60. package/esm2015/lib/interfaces/RefundsRequest.js +1 -15
  61. package/esm2015/lib/interfaces/UnidentifiedPaymentsRequest.js +1 -20
  62. package/esm2015/lib/interfaces/UnsolicitedPaymentsRequest.js +1 -29
  63. package/esm2015/lib/payment-lib.component.js +2 -147
  64. package/esm2015/lib/payment-lib.module.js +1 -5
  65. package/esm2015/lib/payment-lib.service.js +2 -45
  66. package/esm2015/lib/pipes/capitalize.pipe.js +1 -11
  67. package/esm2015/lib/pipes/ccd-hyphens.pipe.js +1 -12
  68. package/esm2015/lib/pipes/key-value.pipe.js +1 -11
  69. package/esm2015/lib/pipes/sanitize-html.pipe.js +1 -20
  70. package/esm2015/lib/services/bulk-scaning-payment/bulk-scaning-payment.service.js +9 -102
  71. package/esm2015/lib/services/card-details/card-details.service.js +2 -39
  72. package/esm2015/lib/services/case-transactions/case-transactions.service.js +2 -39
  73. package/esm2015/lib/services/orderslist.service.js +2 -251
  74. package/esm2015/lib/services/payment-list/payment-list.service.js +2 -42
  75. package/esm2015/lib/services/payment-view/payment-view.service.js +3 -168
  76. package/esm2015/lib/services/refunds/refunds.service.js +7 -109
  77. package/esm2015/lib/services/shared/error-handler.service.js +4 -21
  78. package/esm2015/lib/services/shared/httpclient/webcomponent.http.client.js +6 -82
  79. package/esm2015/lib/services/shared/logger/console-logger.service.js +3 -27
  80. package/esm2015/lib/services/shared/logger/logger.service.js +3 -35
  81. package/esm2015/lib/services/status-history/status-history.service.js +2 -40
  82. package/esm2015/lib/services/xl-file/xl-file.service.js +2 -60
  83. package/esm2015/public_api.js +4 -8
  84. package/fesm2015/hmcts-ccpay-web-component.js +557 -3558
  85. package/fesm2015/hmcts-ccpay-web-component.js.map +1 -1
  86. package/hmcts-ccpay-web-component.d.ts +1 -0
  87. package/hmcts-ccpay-web-component.d.ts.map +1 -0
  88. package/hmcts-ccpay-web-component.metadata.json +1 -1
  89. package/lib/components/add-remission/add-remission.component.d.ts +1 -0
  90. package/lib/components/add-remission/add-remission.component.d.ts.map +1 -0
  91. package/lib/components/add-remission/add-remission.component.ngfactory.d.ts.map +1 -0
  92. package/lib/components/add-remission/add-remission.component.scss.shim.ngstyle.d.ts.map +1 -0
  93. package/lib/components/allocate-payments/allocate-payments.component.d.ts +1 -0
  94. package/lib/components/allocate-payments/allocate-payments.component.d.ts.map +1 -0
  95. package/lib/components/allocate-payments/allocate-payments.component.ngfactory.d.ts.map +1 -0
  96. package/lib/components/allocate-payments/allocate-payments.component.scss.shim.ngstyle.d.ts.map +1 -0
  97. package/lib/components/card-details/card-details.component.css.shim.ngstyle.d.ts.map +1 -0
  98. package/lib/components/card-details/card-details.component.d.ts +2 -1
  99. package/lib/components/card-details/card-details.component.d.ts.map +1 -0
  100. package/lib/components/card-details/card-details.component.ngfactory.d.ts.map +1 -0
  101. package/lib/components/case-transactions/case-transactions.component.css.shim.ngstyle.d.ts.map +1 -0
  102. package/lib/components/case-transactions/case-transactions.component.d.ts +2 -1
  103. package/lib/components/case-transactions/case-transactions.component.d.ts.map +1 -0
  104. package/lib/components/case-transactions/case-transactions.component.ngfactory.d.ts.map +1 -0
  105. package/lib/components/error-banner/error-banner.component.d.ts +1 -0
  106. package/lib/components/error-banner/error-banner.component.d.ts.map +1 -0
  107. package/lib/components/error-banner/error-banner.component.ngfactory.d.ts.map +1 -0
  108. package/lib/components/error-banner/error-banner.component.scss.shim.ngstyle.d.ts.map +1 -0
  109. package/lib/components/fee-summary/fee-summary.component.d.ts +1 -0
  110. package/lib/components/fee-summary/fee-summary.component.d.ts.map +1 -0
  111. package/lib/components/fee-summary/fee-summary.component.ngfactory.d.ts.map +1 -0
  112. package/lib/components/fee-summary/fee-summary.component.scss.shim.ngstyle.d.ts.map +1 -0
  113. package/lib/components/mark-unidentified-payment/mark-unidentified-payment.component.d.ts +1 -0
  114. package/lib/components/mark-unidentified-payment/mark-unidentified-payment.component.d.ts.map +1 -0
  115. package/lib/components/mark-unidentified-payment/mark-unidentified-payment.component.ngfactory.d.ts.map +1 -0
  116. package/lib/components/mark-unidentified-payment/mark-unidentified-payment.component.scss.shim.ngstyle.d.ts.map +1 -0
  117. package/lib/components/mark-unsolicited-payment/mark-unsolicited-payment.component.d.ts +1 -0
  118. package/lib/components/mark-unsolicited-payment/mark-unsolicited-payment.component.d.ts.map +1 -0
  119. package/lib/components/mark-unsolicited-payment/mark-unsolicited-payment.component.ngfactory.d.ts.map +1 -0
  120. package/lib/components/mark-unsolicited-payment/mark-unsolicited-payment.component.scss.shim.ngstyle.d.ts.map +1 -0
  121. package/lib/components/page-not-found.component.d.ts +1 -0
  122. package/lib/components/page-not-found.component.d.ts.map +1 -0
  123. package/lib/components/page-not-found.component.ngfactory.d.ts.map +1 -0
  124. package/lib/components/payment-list/payment-list.component.css.shim.ngstyle.d.ts.map +1 -0
  125. package/lib/components/payment-list/payment-list.component.d.ts +1 -0
  126. package/lib/components/payment-list/payment-list.component.d.ts.map +1 -0
  127. package/lib/components/payment-list/payment-list.component.ngfactory.d.ts.map +1 -0
  128. package/lib/components/payment-view/payment-view.component.css.shim.ngstyle.d.ts.map +1 -0
  129. package/lib/components/payment-view/payment-view.component.d.ts +3 -2
  130. package/lib/components/payment-view/payment-view.component.d.ts.map +1 -0
  131. package/lib/components/payment-view/payment-view.component.ngfactory.d.ts.map +1 -0
  132. package/lib/components/pba-details/pba-details.component.css.shim.ngstyle.d.ts.map +1 -0
  133. package/lib/components/pba-details/pba-details.component.d.ts +1 -0
  134. package/lib/components/pba-details/pba-details.component.d.ts.map +1 -0
  135. package/lib/components/pba-details/pba-details.component.ngfactory.d.ts.map +1 -0
  136. package/lib/components/pba-payment/pba-payment.component.d.ts +1 -0
  137. package/lib/components/pba-payment/pba-payment.component.d.ts.map +1 -0
  138. package/lib/components/pba-payment/pba-payment.component.ngfactory.d.ts.map +1 -0
  139. package/lib/components/pba-payment/pba-payment.component.scss.shim.ngstyle.d.ts.map +1 -0
  140. package/lib/components/process-refund/process-refund.component.css.shim.ngstyle.d.ts.map +1 -0
  141. package/lib/components/process-refund/process-refund.component.d.ts +1 -0
  142. package/lib/components/process-refund/process-refund.component.d.ts.map +1 -0
  143. package/lib/components/process-refund/process-refund.component.ngfactory.d.ts.map +1 -0
  144. package/lib/components/processed-payments/processed-payments.component.d.ts +1 -0
  145. package/lib/components/processed-payments/processed-payments.component.d.ts.map +1 -0
  146. package/lib/components/processed-payments/processed-payments.component.ngfactory.d.ts.map +1 -0
  147. package/lib/components/processed-payments/processed-payments.component.scss.shim.ngstyle.d.ts.map +1 -0
  148. package/lib/components/refund-list/refund-list.component.css.shim.ngstyle.d.ts.map +1 -0
  149. package/lib/components/refund-list/refund-list.component.d.ts +1 -0
  150. package/lib/components/refund-list/refund-list.component.d.ts.map +1 -0
  151. package/lib/components/refund-list/refund-list.component.ngfactory.d.ts.map +1 -0
  152. package/lib/components/refund-status/refund-status.component.css.shim.ngstyle.d.ts.map +1 -0
  153. package/lib/components/refund-status/refund-status.component.d.ts +2 -1
  154. package/lib/components/refund-status/refund-status.component.d.ts.map +1 -0
  155. package/lib/components/refund-status/refund-status.component.ngfactory.d.ts.map +1 -0
  156. package/lib/components/reports/reports.component.d.ts +1 -0
  157. package/lib/components/reports/reports.component.d.ts.map +1 -0
  158. package/lib/components/reports/reports.component.ngfactory.d.ts.map +1 -0
  159. package/lib/components/reports/reports.component.scss.shim.ngstyle.d.ts.map +1 -0
  160. package/lib/components/service-request/service-request.component.css.shim.ngstyle.d.ts.map +1 -0
  161. package/lib/components/service-request/service-request.component.d.ts +1 -0
  162. package/lib/components/service-request/service-request.component.d.ts.map +1 -0
  163. package/lib/components/service-request/service-request.component.ngfactory.d.ts.map +1 -0
  164. package/lib/components/status-history/status-history.component.css.shim.ngstyle.d.ts.map +1 -0
  165. package/lib/components/status-history/status-history.component.d.ts +1 -0
  166. package/lib/components/status-history/status-history.component.d.ts.map +1 -0
  167. package/lib/components/status-history/status-history.component.ngfactory.d.ts.map +1 -0
  168. package/lib/components/table/table.component.css.shim.ngstyle.d.ts.map +1 -0
  169. package/lib/components/table/table.component.d.ts +1 -0
  170. package/lib/components/table/table.component.d.ts.map +1 -0
  171. package/lib/components/table/table.component.ngfactory.d.ts.map +1 -0
  172. package/lib/components/unprocessed-payments/unprocessed-payments.component.d.ts +1 -0
  173. package/lib/components/unprocessed-payments/unprocessed-payments.component.d.ts.map +1 -0
  174. package/lib/components/unprocessed-payments/unprocessed-payments.component.ngfactory.d.ts.map +1 -0
  175. package/lib/components/unprocessed-payments/unprocessed-payments.component.scss.shim.ngstyle.d.ts.map +1 -0
  176. package/lib/interfaces/AddRemissionRequest.d.ts +1 -0
  177. package/lib/interfaces/AddRemissionRequest.d.ts.map +1 -0
  178. package/lib/interfaces/AddRetroRemissionRequest.d.ts +1 -0
  179. package/lib/interfaces/AddRetroRemissionRequest.d.ts.map +1 -0
  180. package/lib/interfaces/AllocatePaymentRequest.d.ts +1 -0
  181. package/lib/interfaces/AllocatePaymentRequest.d.ts.map +1 -0
  182. package/lib/interfaces/IAllocationPaymentsRequest.d.ts +1 -0
  183. package/lib/interfaces/IAllocationPaymentsRequest.d.ts.map +1 -0
  184. package/lib/interfaces/IBSPayments.d.ts +1 -0
  185. package/lib/interfaces/IBSPayments.d.ts.map +1 -0
  186. package/lib/interfaces/ICardDetails.d.ts +1 -0
  187. package/lib/interfaces/ICardDetails.d.ts.map +1 -0
  188. package/lib/interfaces/IFee.d.ts +1 -0
  189. package/lib/interfaces/IFee.d.ts.map +1 -0
  190. package/lib/interfaces/IOrderReferenceFee.d.ts +1 -0
  191. package/lib/interfaces/IOrderReferenceFee.d.ts.map +1 -0
  192. package/lib/interfaces/IPatchRefundAction.d.ts +1 -0
  193. package/lib/interfaces/IPatchRefundAction.d.ts.map +1 -0
  194. package/lib/interfaces/IPayment.d.ts +1 -0
  195. package/lib/interfaces/IPayment.d.ts.map +1 -0
  196. package/lib/interfaces/IPaymentFailure.d.ts +1 -0
  197. package/lib/interfaces/IPaymentFailure.d.ts.map +1 -0
  198. package/lib/interfaces/IPaymentGroup.d.ts +1 -0
  199. package/lib/interfaces/IPaymentGroup.d.ts.map +1 -0
  200. package/lib/interfaces/IPaymentStatus.d.ts +1 -0
  201. package/lib/interfaces/IPaymentStatus.d.ts.map +1 -0
  202. package/lib/interfaces/IPaymentView.d.ts +1 -0
  203. package/lib/interfaces/IPaymentView.d.ts.map +1 -0
  204. package/lib/interfaces/IPayments.d.ts +1 -0
  205. package/lib/interfaces/IPayments.d.ts.map +1 -0
  206. package/lib/interfaces/IRefundAction.d.ts +1 -0
  207. package/lib/interfaces/IRefundAction.d.ts.map +1 -0
  208. package/lib/interfaces/IRefundList.d.ts +1 -0
  209. package/lib/interfaces/IRefundList.d.ts.map +1 -0
  210. package/lib/interfaces/IRefundReasons.d.ts +1 -0
  211. package/lib/interfaces/IRefundReasons.d.ts.map +1 -0
  212. package/lib/interfaces/IRefundRejectReason.d.ts +1 -0
  213. package/lib/interfaces/IRefundRejectReason.d.ts.map +1 -0
  214. package/lib/interfaces/IRefundStatus.d.ts +1 -0
  215. package/lib/interfaces/IRefundStatus.d.ts.map +1 -0
  216. package/lib/interfaces/IRefundStatusHistory.d.ts +1 -0
  217. package/lib/interfaces/IRefundStatusHistory.d.ts.map +1 -0
  218. package/lib/interfaces/IRemission.d.ts +1 -0
  219. package/lib/interfaces/IRemission.d.ts.map +1 -0
  220. package/lib/interfaces/IResubmitRefundRequest.d.ts +1 -0
  221. package/lib/interfaces/IResubmitRefundRequest.d.ts.map +1 -0
  222. package/lib/interfaces/IStatusHistories.d.ts +1 -0
  223. package/lib/interfaces/IStatusHistories.d.ts.map +1 -0
  224. package/lib/interfaces/IStatusHistory.d.ts +1 -0
  225. package/lib/interfaces/IStatusHistory.d.ts.map +1 -0
  226. package/lib/interfaces/IserviceRequestCardPayment.d.ts +1 -0
  227. package/lib/interfaces/IserviceRequestCardPayment.d.ts.map +1 -0
  228. package/lib/interfaces/IserviceRequestPbaPayment.d.ts +1 -0
  229. package/lib/interfaces/IserviceRequestPbaPayment.d.ts.map +1 -0
  230. package/lib/interfaces/IssueRefundRequest.d.ts +1 -0
  231. package/lib/interfaces/IssueRefundRequest.d.ts.map +1 -0
  232. package/lib/interfaces/PayhubAntennaRequest.d.ts +1 -0
  233. package/lib/interfaces/PayhubAntennaRequest.d.ts.map +1 -0
  234. package/lib/interfaces/PaymentToPayhubRequest.d.ts +1 -0
  235. package/lib/interfaces/PaymentToPayhubRequest.d.ts.map +1 -0
  236. package/lib/interfaces/PostIssueRefundRetroRemission.d.ts +1 -0
  237. package/lib/interfaces/PostIssueRefundRetroRemission.d.ts.map +1 -0
  238. package/lib/interfaces/PostRefundRetroRemission.d.ts +1 -0
  239. package/lib/interfaces/PostRefundRetroRemission.d.ts.map +1 -0
  240. package/lib/interfaces/RefundsRequest.d.ts +1 -0
  241. package/lib/interfaces/RefundsRequest.d.ts.map +1 -0
  242. package/lib/interfaces/UnidentifiedPaymentsRequest.d.ts +1 -0
  243. package/lib/interfaces/UnidentifiedPaymentsRequest.d.ts.map +1 -0
  244. package/lib/interfaces/UnsolicitedPaymentsRequest.d.ts +1 -0
  245. package/lib/interfaces/UnsolicitedPaymentsRequest.d.ts.map +1 -0
  246. package/lib/payment-lib.component.d.ts +1 -0
  247. package/lib/payment-lib.component.d.ts.map +1 -0
  248. package/lib/payment-lib.component.ngfactory.d.ts.map +1 -0
  249. package/lib/payment-lib.module.d.ts +1 -0
  250. package/lib/payment-lib.module.d.ts.map +1 -0
  251. package/lib/payment-lib.module.ngfactory.d.ts.map +1 -0
  252. package/lib/payment-lib.service.d.ts +1 -0
  253. package/lib/payment-lib.service.d.ts.map +1 -0
  254. package/lib/payment-lib.service.ngfactory.d.ts.map +1 -0
  255. package/lib/pipes/capitalize.pipe.d.ts +1 -0
  256. package/lib/pipes/capitalize.pipe.d.ts.map +1 -0
  257. package/lib/pipes/capitalize.pipe.ngfactory.d.ts.map +1 -0
  258. package/lib/pipes/ccd-hyphens.pipe.d.ts +1 -0
  259. package/lib/pipes/ccd-hyphens.pipe.d.ts.map +1 -0
  260. package/lib/pipes/ccd-hyphens.pipe.ngfactory.d.ts.map +1 -0
  261. package/lib/pipes/key-value.pipe.d.ts +1 -0
  262. package/lib/pipes/key-value.pipe.d.ts.map +1 -0
  263. package/lib/pipes/key-value.pipe.ngfactory.d.ts.map +1 -0
  264. package/lib/pipes/sanitize-html.pipe.d.ts +1 -0
  265. package/lib/pipes/sanitize-html.pipe.d.ts.map +1 -0
  266. package/lib/pipes/sanitize-html.pipe.ngfactory.d.ts.map +1 -0
  267. package/lib/services/bulk-scaning-payment/bulk-scaning-payment.service.d.ts +1 -0
  268. package/lib/services/bulk-scaning-payment/bulk-scaning-payment.service.d.ts.map +1 -0
  269. package/lib/services/bulk-scaning-payment/bulk-scaning-payment.service.ngfactory.d.ts.map +1 -0
  270. package/lib/services/card-details/card-details.service.d.ts +1 -0
  271. package/lib/services/card-details/card-details.service.d.ts.map +1 -0
  272. package/lib/services/card-details/card-details.service.ngfactory.d.ts.map +1 -0
  273. package/lib/services/case-transactions/case-transactions.service.d.ts +1 -0
  274. package/lib/services/case-transactions/case-transactions.service.d.ts.map +1 -0
  275. package/lib/services/case-transactions/case-transactions.service.ngfactory.d.ts.map +1 -0
  276. package/lib/services/orderslist.service.d.ts +1 -0
  277. package/lib/services/orderslist.service.d.ts.map +1 -0
  278. package/lib/services/orderslist.service.ngfactory.d.ts.map +1 -0
  279. package/lib/services/payment-list/payment-list.service.d.ts +1 -0
  280. package/lib/services/payment-list/payment-list.service.d.ts.map +1 -0
  281. package/lib/services/payment-list/payment-list.service.ngfactory.d.ts.map +1 -0
  282. package/lib/services/payment-view/payment-view.service.d.ts +1 -0
  283. package/lib/services/payment-view/payment-view.service.d.ts.map +1 -0
  284. package/lib/services/payment-view/payment-view.service.ngfactory.d.ts.map +1 -0
  285. package/lib/services/refunds/refunds.service.d.ts +1 -0
  286. package/lib/services/refunds/refunds.service.d.ts.map +1 -0
  287. package/lib/services/refunds/refunds.service.ngfactory.d.ts.map +1 -0
  288. package/lib/services/shared/error-handler.service.d.ts +2 -1
  289. package/lib/services/shared/error-handler.service.d.ts.map +1 -0
  290. package/lib/services/shared/error-handler.service.ngfactory.d.ts.map +1 -0
  291. package/lib/services/shared/httpclient/webcomponent.http.client.d.ts +1 -0
  292. package/lib/services/shared/httpclient/webcomponent.http.client.d.ts.map +1 -0
  293. package/lib/services/shared/httpclient/webcomponent.http.client.ngfactory.d.ts.map +1 -0
  294. package/lib/services/shared/logger/console-logger.service.d.ts +4 -3
  295. package/lib/services/shared/logger/console-logger.service.d.ts.map +1 -0
  296. package/lib/services/shared/logger/console-logger.service.ngfactory.d.ts.map +1 -0
  297. package/lib/services/shared/logger/logger.service.d.ts +1 -0
  298. package/lib/services/shared/logger/logger.service.d.ts.map +1 -0
  299. package/lib/services/shared/logger/logger.service.ngfactory.d.ts.map +1 -0
  300. package/lib/services/status-history/status-history.service.d.ts +1 -0
  301. package/lib/services/status-history/status-history.service.d.ts.map +1 -0
  302. package/lib/services/status-history/status-history.service.ngfactory.d.ts.map +1 -0
  303. package/lib/services/xl-file/xl-file.service.d.ts +1 -0
  304. package/lib/services/xl-file/xl-file.service.d.ts.map +1 -0
  305. package/lib/services/xl-file/xl-file.service.ngfactory.d.ts.map +1 -0
  306. package/package.json +6 -8
  307. package/public_api.d.ts +1 -0
  308. package/public_api.d.ts.map +1 -0
  309. package/esm5/hmcts-ccpay-web-component.js +0 -48
  310. package/esm5/lib/components/add-remission/add-remission.component.js +0 -1146
  311. package/esm5/lib/components/allocate-payments/allocate-payments.component.js +0 -745
  312. package/esm5/lib/components/card-details/card-details.component.js +0 -77
  313. package/esm5/lib/components/case-transactions/case-transactions.component.js +0 -1444
  314. package/esm5/lib/components/error-banner/error-banner.component.js +0 -36
  315. package/esm5/lib/components/fee-summary/fee-summary.component.js +0 -504
  316. package/esm5/lib/components/mark-unidentified-payment/mark-unidentified-payment.component.js +0 -371
  317. package/esm5/lib/components/mark-unsolicited-payment/mark-unsolicited-payment.component.js +0 -474
  318. package/esm5/lib/components/page-not-found.component.js +0 -17
  319. package/esm5/lib/components/payment-list/payment-list.component.js +0 -83
  320. package/esm5/lib/components/payment-view/payment-view.component.js +0 -673
  321. package/esm5/lib/components/pba-details/pba-details.component.js +0 -36
  322. package/esm5/lib/components/pba-payment/pba-payment.component.js +0 -269
  323. package/esm5/lib/components/process-refund/process-refund.component.js +0 -536
  324. package/esm5/lib/components/processed-payments/processed-payments.component.js +0 -83
  325. package/esm5/lib/components/refund-list/refund-list.component.js +0 -130
  326. package/esm5/lib/components/refund-status/refund-status.component.js +0 -554
  327. package/esm5/lib/components/reports/reports.component.js +0 -515
  328. package/esm5/lib/components/service-request/service-request.component.js +0 -690
  329. package/esm5/lib/components/status-history/status-history.component.js +0 -70
  330. package/esm5/lib/components/table/table.component.js +0 -229
  331. package/esm5/lib/components/unprocessed-payments/unprocessed-payments.component.js +0 -418
  332. package/esm5/lib/interfaces/AddRemissionRequest.js +0 -32
  333. package/esm5/lib/interfaces/AddRetroRemissionRequest.js +0 -19
  334. package/esm5/lib/interfaces/AllocatePaymentRequest.js +0 -63
  335. package/esm5/lib/interfaces/IAllocationPaymentsRequest.js +0 -34
  336. package/esm5/lib/interfaces/IBSPayments.js +0 -45
  337. package/esm5/lib/interfaces/ICardDetails.js +0 -21
  338. package/esm5/lib/interfaces/IFee.js +0 -53
  339. package/esm5/lib/interfaces/IOrderReferenceFee.js +0 -25
  340. package/esm5/lib/interfaces/IPatchRefundAction.js +0 -15
  341. package/esm5/lib/interfaces/IPayment.js +0 -65
  342. package/esm5/lib/interfaces/IPaymentFailure.js +0 -33
  343. package/esm5/lib/interfaces/IPaymentGroup.js +0 -19
  344. package/esm5/lib/interfaces/IPaymentStatus.js +0 -31
  345. package/esm5/lib/interfaces/IPaymentView.js +0 -17
  346. package/esm5/lib/interfaces/IPayments.js +0 -13
  347. package/esm5/lib/interfaces/IRefundAction.js +0 -15
  348. package/esm5/lib/interfaces/IRefundList.js +0 -29
  349. package/esm5/lib/interfaces/IRefundReasons.js +0 -19
  350. package/esm5/lib/interfaces/IRefundRejectReason.js +0 -15
  351. package/esm5/lib/interfaces/IRefundStatus.js +0 -23
  352. package/esm5/lib/interfaces/IRefundStatusHistory.js +0 -15
  353. package/esm5/lib/interfaces/IRemission.js +0 -25
  354. package/esm5/lib/interfaces/IResubmitRefundRequest.js +0 -19
  355. package/esm5/lib/interfaces/IStatusHistories.js +0 -19
  356. package/esm5/lib/interfaces/IStatusHistory.js +0 -21
  357. package/esm5/lib/interfaces/IserviceRequestCardPayment.js +0 -22
  358. package/esm5/lib/interfaces/IserviceRequestPbaPayment.js +0 -28
  359. package/esm5/lib/interfaces/IssueRefundRequest.js +0 -22
  360. package/esm5/lib/interfaces/PayhubAntennaRequest.js +0 -25
  361. package/esm5/lib/interfaces/PaymentToPayhubRequest.js +0 -34
  362. package/esm5/lib/interfaces/PostIssueRefundRetroRemission.js +0 -16
  363. package/esm5/lib/interfaces/PostRefundRetroRemission.js +0 -19
  364. package/esm5/lib/interfaces/RefundsRequest.js +0 -19
  365. package/esm5/lib/interfaces/UnidentifiedPaymentsRequest.js +0 -28
  366. package/esm5/lib/interfaces/UnsolicitedPaymentsRequest.js +0 -37
  367. package/esm5/lib/payment-lib.component.js +0 -237
  368. package/esm5/lib/payment-lib.module.js +0 -103
  369. package/esm5/lib/payment-lib.service.js +0 -111
  370. package/esm5/lib/pipes/capitalize.pipe.js +0 -32
  371. package/esm5/lib/pipes/ccd-hyphens.pipe.js +0 -37
  372. package/esm5/lib/pipes/key-value.pipe.js +0 -37
  373. package/esm5/lib/pipes/sanitize-html.pipe.js +0 -39
  374. package/esm5/lib/services/bulk-scaning-payment/bulk-scaning-payment.service.js +0 -218
  375. package/esm5/lib/services/card-details/card-details.service.js +0 -76
  376. package/esm5/lib/services/case-transactions/case-transactions.service.js +0 -76
  377. package/esm5/lib/services/orderslist.service.js +0 -531
  378. package/esm5/lib/services/payment-list/payment-list.service.js +0 -80
  379. package/esm5/lib/services/payment-view/payment-view.service.js +0 -416
  380. package/esm5/lib/services/refunds/refunds.service.js +0 -256
  381. package/esm5/lib/services/shared/error-handler.service.js +0 -127
  382. package/esm5/lib/services/shared/httpclient/webcomponent.http.client.js +0 -167
  383. package/esm5/lib/services/shared/logger/console-logger.service.js +0 -88
  384. package/esm5/lib/services/shared/logger/logger.service.js +0 -68
  385. package/esm5/lib/services/status-history/status-history.service.js +0 -80
  386. package/esm5/lib/services/xl-file/xl-file.service.js +0 -254
  387. package/esm5/public_api.js +0 -11
  388. package/fesm5/hmcts-ccpay-web-component.js +0 -10017
  389. package/fesm5/hmcts-ccpay-web-component.js.map +0 -1
@@ -1,7 +1,3 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
- */
5
1
  import { Injectable } from '@angular/core';
6
2
  import { HttpClient } from '@angular/common/http';
7
3
  import { PaymentLibService } from '../../payment-lib.service';
@@ -17,26 +13,14 @@ import * as i3 from "../shared/logger/logger.service";
17
13
  import * as i4 from "../shared/error-handler.service";
18
14
  import * as i5 from "../../payment-lib.service";
19
15
  export class PaymentViewService {
20
- /**
21
- * @param {?} http
22
- * @param {?} https
23
- * @param {?} logger
24
- * @param {?} errorHandlerService
25
- * @param {?} paymentLibService
26
- */
27
16
  constructor(http, https, logger, errorHandlerService, paymentLibService) {
28
17
  this.http = http;
29
18
  this.https = https;
30
19
  this.logger = logger;
31
20
  this.errorHandlerService = errorHandlerService;
32
21
  this.paymentLibService = paymentLibService;
33
- this.ordersList = (/** @type {?} */ (new BehaviorSubject([])));
22
+ this.ordersList = new BehaviorSubject([]);
34
23
  }
35
- /**
36
- * @param {?} paymentReference
37
- * @param {?} paymentMethod
38
- * @return {?}
39
- */
40
24
  getPaymentDetails(paymentReference, paymentMethod) {
41
25
  this.logger.info('Payment-view-service getPaymentDetails for: ', paymentReference);
42
26
  return this.http.get(paymentMethod === 'card' || paymentMethod === 'cash' || paymentMethod === 'cheque' || paymentMethod === 'postal order' ?
@@ -46,10 +30,6 @@ export class PaymentViewService {
46
30
  })
47
31
  .pipe(catchError(this.errorHandlerService.handleError));
48
32
  }
49
- /**
50
- * @param {?} paymentGroupReference
51
- * @return {?}
52
- */
53
33
  getPaymentGroupDetails(paymentGroupReference) {
54
34
  this.logger.info('Payment-view-service getPaymentGroupDetails for: ', paymentGroupReference);
55
35
  return this.http.get(`${this.paymentLibService.API_ROOT}/payment-groups/${paymentGroupReference}`, {
@@ -57,10 +37,6 @@ export class PaymentViewService {
57
37
  })
58
38
  .pipe(catchError(this.errorHandlerService.handleError));
59
39
  }
60
- /**
61
- * @param {?} paymentReference
62
- * @return {?}
63
- */
64
40
  getApportionPaymentDetails(paymentReference) {
65
41
  this.logger.info('Payment-view-service getPaymentGroupDetails for: ', paymentReference);
66
42
  return this.http.get(`${this.paymentLibService.API_ROOT}/payment-groups/fee-pay-apportion/${paymentReference}`, {
@@ -68,197 +44,94 @@ export class PaymentViewService {
68
44
  })
69
45
  .pipe(catchError(this.errorHandlerService.handleError));
70
46
  }
71
- /**
72
- * @return {?}
73
- */
74
47
  getPBAaccountDetails() {
75
- /** @type {?} */
76
48
  const url = `${this.paymentLibService.API_ROOT}/pba-accounts`;
77
49
  return this.http.get(url, { withCredentials: true }).pipe(catchError(this.errorHandlerService.handleError));
78
50
  }
79
- /**
80
- * @param {?} serviceRef
81
- * @param {?} body
82
- * @return {?}
83
- */
84
51
  postWays2PayCardPayment(serviceRef, body) {
85
- /** @type {?} */
86
52
  const url = `${this.paymentLibService.API_ROOT}/service-request/${serviceRef}/card-payments`;
87
- /** @type {?} */
88
53
  const rurl = this.paymentLibService.CARDPAYMENTRETURNURL.replace('.prod', '');
89
54
  body['return-url'] = `${rurl}/payment`;
90
55
  return this.https.post(url, body).pipe(catchError(this.errorHandlerService.handleError));
91
56
  }
92
- /**
93
- * @param {?} serviceRef
94
- * @param {?} body
95
- * @return {?}
96
- */
97
57
  postPBAaccountPayment(serviceRef, body) {
98
- /** @type {?} */
99
58
  let randomKey = 'idam-key-' + Math.random().toString().split('.').join('-');
100
59
  body['idempotency_key'] = randomKey;
101
- /** @type {?} */
102
60
  const url = `${this.paymentLibService.API_ROOT}/service-request/${serviceRef}/pba-payments`;
103
61
  return this.https.post(url, body);
104
62
  }
105
- /**
106
- * @param {?} body
107
- * @return {?}
108
- */
109
63
  postBSPayments(body) {
110
64
  return this.https.post(`${this.paymentLibService.API_ROOT}/payment-groups/bulk-scan-payments`, body).pipe(catchError(this.errorHandlerService.handleError));
111
65
  }
112
- /**
113
- * @param {?} body
114
- * @return {?}
115
- */
116
66
  postBSUnidentifiedPayments(body) {
117
67
  return this.https.post(`${this.paymentLibService.API_ROOT}/payment-allocations`, body).pipe(catchError(this.errorHandlerService.handleError));
118
68
  }
119
- /**
120
- * @param {?} body
121
- * @return {?}
122
- */
123
69
  postBSUnsolicitedPayments(body) {
124
70
  return this.https.post(`${this.paymentLibService.API_ROOT}/payment-allocations`, body).pipe(catchError(this.errorHandlerService.handleError));
125
71
  }
126
- /**
127
- * @param {?} body
128
- * @return {?}
129
- */
130
72
  postBSAllocationPayments(body) {
131
73
  return this.https.post(`${this.paymentLibService.API_ROOT}/payment-allocations`, body).pipe(catchError(this.errorHandlerService.handleError));
132
74
  }
133
- /**
134
- * @param {?} paymentGroupReference
135
- * @param {?} feeId
136
- * @param {?} body
137
- * @return {?}
138
- */
139
75
  postPaymentGroupWithRemissions(paymentGroupReference, feeId, body) {
140
76
  return this.https.post(`${this.paymentLibService.API_ROOT}/payment-groups/${paymentGroupReference}/fees/${feeId}/remissions`, body).pipe(catchError(this.errorHandlerService.handleError));
141
77
  }
142
- /**
143
- * @param {?} feeId
144
- * @return {?}
145
- */
146
78
  deleteFeeFromPaymentGroup(feeId) {
147
79
  this.logger.info('Payment-view-service deleteFeeFromPaymentGroup for: ', feeId);
148
80
  return this.https.delete(`${this.paymentLibService.API_ROOT}/fees/${feeId}`).pipe(catchError(this.errorHandlerService.handleError));
149
81
  }
150
- /**
151
- * @param {?} body
152
- * @param {?} paymentGroupRef
153
- * @return {?}
154
- */
155
82
  postPaymentToPayHub(body, paymentGroupRef) {
156
83
  return this.https.post(`${this.paymentLibService.API_ROOT}/payment-groups/${paymentGroupRef}/card-payments`, body).pipe(catchError(this.errorHandlerService.handleError));
157
84
  }
158
- /**
159
- * @param {?} body
160
- * @param {?} paymentGroupRef
161
- * @return {?}
162
- */
163
85
  postPaymentAntennaToPayHub(body, paymentGroupRef) {
164
86
  return this.https.post(`${this.paymentLibService.API_ROOT}/payment-groups/${paymentGroupRef}/telephony-card-payments`, body).pipe(catchError(this.errorHandlerService.handleError));
165
87
  }
166
- /**
167
- * @param {?} reportName
168
- * @param {?} startDate
169
- * @param {?} endDate
170
- * @return {?}
171
- */
172
88
  downloadSelectedReport(reportName, startDate, endDate) {
173
- /** @type {?} */
174
89
  const url = `${this.paymentLibService.API_ROOT}/report/data?date_from=${startDate}&date_to=${endDate}&report_type=${reportName}`;
175
90
  return this.https.get(url, { withCredentials: true }).pipe(catchError(this.errorHandlerService.handleError));
176
91
  }
177
- /**
178
- * @param {?} startDate
179
- * @param {?} endDate
180
- * @return {?}
181
- */
182
92
  downloadFailureReport(startDate, endDate) {
183
- /** @type {?} */
184
93
  const url = `${this.paymentLibService.API_ROOT}/payment-failures/failure-report?date_from=${startDate}&date_to=${endDate}`;
185
94
  return this.https.get(url, { withCredentials: true }).pipe(catchError(this.errorHandlerService.handleError));
186
95
  }
187
- /**
188
- * @return {?}
189
- */
190
96
  getBSfeature() {
191
97
  return this.https.get('api/payment-history/bulk-scan-feature', { withCredentials: true }).pipe(catchError(this.errorHandlerService.handleError));
192
98
  }
193
- /**
194
- * @return {?}
195
- */
196
99
  getSiteID() {
197
100
  return this.https.get('api/payment-history/refdata/legacy-sites', { withCredentials: true }).pipe(catchError(this.errorHandlerService.handleError));
198
101
  }
199
- /**
200
- * @param {?} caseNumber
201
- * @return {?}
202
- */
203
102
  getPartyDetails(caseNumber) {
204
- /** @type {?} */
205
103
  const url = `${this.paymentLibService.API_ROOT}/case-payment-orders?case_ids=${caseNumber}`;
206
104
  return this.https.get(url, { withCredentials: true }).pipe(catchError(this.errorHandlerService.handleError));
207
105
  }
208
- /**
209
- * @param {?} orderLevelFees
210
- * @return {?}
211
- */
212
106
  setOrdersList(orderLevelFees) {
213
107
  this.ordersList.next(Object.assign([], orderLevelFees));
214
108
  }
215
- /**
216
- * @return {?}
217
- */
218
109
  getOrdersList() {
219
110
  return this.ordersList;
220
111
  }
221
112
  //issue refund
222
- /**
223
- * @param {?} body
224
- * @return {?}
225
- */
226
113
  postRefundsReason(body) {
227
114
  return this.https.post(`${this.paymentLibService.API_ROOT}/refund-for-payment`, body).pipe(catchError(this.errorHandlerService.handleError));
228
115
  }
229
116
  // retro remissions
230
- /**
231
- * @param {?} paymentGroupReference
232
- * @param {?} feeId
233
- * @param {?} body
234
- * @return {?}
235
- */
236
117
  postPaymentGroupWithRetroRemissions(paymentGroupReference, feeId, body) {
237
118
  return this.https.post(`${this.paymentLibService.API_ROOT}/payment-groups/${paymentGroupReference}/fees/${feeId}/retro-remission`, body).pipe(catchError(this.errorHandlerService.handleError));
238
119
  }
239
- /**
240
- * @param {?} body
241
- * @return {?}
242
- */
243
120
  postRefundRetroRemission(body) {
244
121
  return this.https.post(`${this.paymentLibService.API_ROOT}/refund-retro-remission`, body).pipe(catchError(this.errorHandlerService.handleError));
245
122
  }
246
- /**
247
- * @param {?} paymentReference
248
- * @return {?}
249
- */
250
123
  getPaymentFailure(paymentReference) {
251
124
  return this.https.get(`${this.paymentLibService.API_ROOT}/payment-failures/${paymentReference}`, {
252
125
  withCredentials: true
253
126
  }).pipe(catchError(this.errorHandlerService.handleError));
254
127
  }
255
128
  }
129
+ PaymentViewService.ɵprov = i0.ɵɵdefineInjectable({ factory: function PaymentViewService_Factory() { return new PaymentViewService(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(i2.WebComponentHttpClient), i0.ɵɵinject(i3.LoggerService), i0.ɵɵinject(i4.ErrorHandlerService), i0.ɵɵinject(i5.PaymentLibService)); }, token: PaymentViewService, providedIn: "root" });
256
130
  PaymentViewService.decorators = [
257
131
  { type: Injectable, args: [{
258
132
  providedIn: 'root'
259
133
  },] }
260
134
  ];
261
- /** @nocollapse */
262
135
  PaymentViewService.ctorParameters = () => [
263
136
  { type: HttpClient },
264
137
  { type: WebComponentHttpClient },
@@ -266,42 +139,4 @@ PaymentViewService.ctorParameters = () => [
266
139
  { type: ErrorHandlerService },
267
140
  { type: PaymentLibService }
268
141
  ];
269
- /** @nocollapse */ PaymentViewService.ngInjectableDef = i0.defineInjectable({ factory: function PaymentViewService_Factory() { return new PaymentViewService(i0.inject(i1.HttpClient), i0.inject(i2.WebComponentHttpClient), i0.inject(i3.LoggerService), i0.inject(i4.ErrorHandlerService), i0.inject(i5.PaymentLibService)); }, token: PaymentViewService, providedIn: "root" });
270
- if (false) {
271
- /**
272
- * @type {?}
273
- * @private
274
- */
275
- PaymentViewService.prototype.ordersList;
276
- /**
277
- * @type {?}
278
- * @private
279
- */
280
- PaymentViewService.prototype.meta;
281
- /**
282
- * @type {?}
283
- * @private
284
- */
285
- PaymentViewService.prototype.http;
286
- /**
287
- * @type {?}
288
- * @private
289
- */
290
- PaymentViewService.prototype.https;
291
- /**
292
- * @type {?}
293
- * @private
294
- */
295
- PaymentViewService.prototype.logger;
296
- /**
297
- * @type {?}
298
- * @private
299
- */
300
- PaymentViewService.prototype.errorHandlerService;
301
- /**
302
- * @type {?}
303
- * @private
304
- */
305
- PaymentViewService.prototype.paymentLibService;
306
- }
307
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bWVudC12aWV3LnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AaG1jdHMvY2NwYXktd2ViLWNvbXBvbmVudC8iLCJzb3VyY2VzIjpbImxpYi9zZXJ2aWNlcy9wYXltZW50LXZpZXcvcGF5bWVudC12aWV3LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFVBQVUsRUFBZSxNQUFNLHNCQUFzQixDQUFDO0FBSS9ELE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQzVELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFXaEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7OztBQVl2QyxNQUFNLE9BQU8sa0JBQWtCOzs7Ozs7OztJQUs3QixZQUFvQixJQUFnQixFQUNoQixLQUE2QixFQUM3QixNQUFxQixFQUNyQixtQkFBd0MsRUFDeEMsaUJBQW9DO1FBSnBDLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsVUFBSyxHQUFMLEtBQUssQ0FBd0I7UUFDN0IsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUNyQix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFSaEQsZUFBVSxHQUFJLG1CQUF1QyxJQUFJLGVBQWUsQ0FBQyxFQUFFLENBQUMsRUFBQSxDQUFDO0lBUXpCLENBQUM7Ozs7OztJQUU3RCxpQkFBaUIsQ0FBQyxnQkFBd0IsRUFBRSxhQUFxQjtRQUMvRCxJQUFJLENB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QXFCLFNBQVMsS0FBSyxrQkFBa0IsRUFBRSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQzNJLFVBQVUsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsV0FBVyxDQUFDLENBQ2pELENBQUM7SUFDSixDQUFDOzs7OztJQUVELHdCQUF3QixDQUFDLElBQWtDO1FBQ3pELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSx5QkFBeUIsRUFBRSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQzVGLFVBQVUsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsV0FBVyxDQUFDLENBQ2pELENBQUM7SUFDSixDQUFDOzs7OztJQUNGLGlCQUFpQixDQUFDLGdCQUF3QjtRQUN2QyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVEscUJBQXFCLGdCQUFnQixFQUFFLEVBQUU7WUFDL0YsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDLElBQUksQ0FDTCxVQUFVLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFdBQVcsQ0FBQyxDQUNqRCxDQUFDO0lBQ0osQ0FBQzs7O1lBcktGLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7OztZQTlCUSxVQUFVO1lBS1Ysc0JBQXNCO1lBR3RCLGFBQWE7WUFGYixtQkFBbUI7WUFGcEIsaUJBQWlCOzs7Ozs7OztJQTRCdkIsd0NBQXFGOzs7OztJQUVyRixrQ0FBbUI7Ozs7O0lBRVAsa0NBQXdCOzs7OztJQUN4QixtQ0FBcUM7Ozs7O0lBQ3JDLG9DQUE2Qjs7Ozs7SUFDN0IsaURBQWdEOzs7OztJQUNoRCwrQ0FBNEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzL2ludGVybmFsL09ic2VydmFibGUnO1xuaW1wb3J0IHsgdjQgYXMgdXVpZHY0IH0gZnJvbSAndXVpZCc7XG5pbXBvcnQge0lQYXltZW50fSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL0lQYXltZW50JztcbmltcG9ydCB7UGF5bWVudExpYlNlcnZpY2V9IGZyb20gJy4uLy4uL3BheW1lbnQtbGliLnNlcnZpY2UnO1xuaW1wb3J0IHsgV2ViQ29tcG9uZW50SHR0cENsaWVudCB9IGZyb20gJy4uL3NoYXJlZC9odHRwY2xpZW50L3dlYmNvbXBvbmVudC5odHRwLmNsaWVudCc7XG5pbXBvcnQgeyBFcnJvckhhbmRsZXJTZXJ2aWNlIH0gZnJvbSAnLi4vc2hhcmVkL2Vycm9yLWhhbmRsZXIuc2VydmljZSc7XG5pbXBvcnQgeyBjYXRjaEVycm9yIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgTG9nZ2VyU2VydmljZSB9IGZyb20gJy4uL3NoYXJlZC9sb2dnZXIvbG9nZ2VyLnNlcnZpY2UnO1xuaW1wb3J0IHtJUGF5bWVudEdyb3VwfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL0lQYXltZW50R3JvdXAnO1xuaW1wb3J0IHsgQWRkUmVtaXNzaW9uUmVxdWVzdCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvQWRkUmVtaXNzaW9uUmVxdWVzdCc7XG5pbXBvcnQgeyBQYXltZW50VG9QYXlodWJSZXF1ZXN0IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9QYXltZW50VG9QYXlodWJSZXF1ZXN0JztcbmltcG9ydCB7IFBheWh1YkFudGVubmFSZXF1ZXN0IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9QYXlodWJBbnRlbm5hUmVxdWVzdCc7XG5pbXBvcnQgeyBVbmlkZW50aWZpZWRQYXltZW50c1JlcXVlc3QgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL1VuaWRlbnRpZmllZFBheW1lbnRzUmVxdWVzdCc7XG5pbXBvcnQgeyBVbnNvbGljaXRlZFBheW1lbnRzUmVxdWVzdCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvVW5zb2xpY2l0ZWRQYXltZW50c1JlcXVlc3QnO1xuaW1wb3J0IHsgTWV0YSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgQWxsb2NhdGVQYXltZW50UmVxdWVzdCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvQWxsb2NhdGVQYXltZW50UmVxdWVzdCc7XG5pbXBvcnQgeyBJQWxsb2NhdGlvblBheW1lbnRzUmVxdWVzdCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvSUFsbG9jYXRpb25QYXltZW50c1JlcXVlc3QnO1xuaW1wb3J0IHtJT3JkZXJSZWZlcmVuY2VGZWV9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvSU9yZGVyUmVmZXJlbmNlRmVlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgSXNlcnZpY2VSZXF1ZXN0UGJhUGF5bWVudCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvSXNlcnZpY2VSZXF1ZXN0UGJhUGF5bWVudCc7XG5pbXBvcnQgeyBJc2VydmljZVJlcXVlc3RDYXJkUGF5bWVudCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvSXNlcnZpY2VSZXF1ZXN0Q2FyZFBheW1lbnQnO1xuaW1wb3J0IHsgUmVmdW5kc1JlcXVlc3QgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL1JlZnVuZHNSZXF1ZXN0JztcbmltcG9ydCB7IEFkZFJldHJvUmVtaXNzaW9uUmVxdWVzdCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvQWRkUmV0cm9SZW1pc3Npb25SZXF1ZXN0JztcbmltcG9ydCB7IFBvc3RSZWZ1bmRSZXRyb1JlbWlzc2lvbiB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvUG9zdFJlZnVuZFJldHJvUmVtaXNzaW9uJztcbmltcG9ydCB7IFBvc3RJc3N1ZVJlZnVuZFJldHJvUmVtaXNzaW9uIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9Qb3N0SXNzdWVSZWZ1bmRSZXRyb1JlbWlzc2lvbic7XG5pbXBvcnQgeyBlcnJvciB9IGZyb20gJ0Bhbmd1bGFyL2NvbXBpbGVyL3NyYy91dGlsJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgUGF5bWVudFZpZXdTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBvcmRlcnNMaXN0ICA9IDxCZWhhdmlvclN1YmplY3Q8SU9yZGVyUmVmZXJlbmNlRmVlW10+Pm5ldyBCZWhhdmlvclN1YmplY3QoW10pO1xuXG4gIHByaXZhdGUgbWV0YTogTWV0YTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgICAgICAgICAgIHByaXZhdGUgaHR0cHM6IFdlYkNvbXBvbmVudEh0dHBDbGllbnQsXG4gICAgICAgICAgICAgIHByaXZhdGUgbG9nZ2VyOiBMb2dnZXJTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIGVycm9ySGFuZGxlclNlcnZpY2U6IEVycm9ySGFuZGxlclNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgcGF5bWVudExpYlNlcnZpY2U6IFBheW1lbnRMaWJTZXJ2aWNlKSB7IH1cblxuICBnZXRQYXltZW50RGV0YWlscyhwYXltZW50UmVmZXJlbmNlOiBzdHJpbmcsIHBheW1lbnRNZXRob2Q6IHN0cmluZyk6IE9ic2VydmFibGU8SVBheW1lbnQ+IHtcbiAgICB0aGlzLmxvZ2dlci5pbmZvKCdQYXltZW50LXZpZXctc2VydmljZSBnZXRQYXltZW50RGV0YWlscyBmb3I6ICcsIHBheW1lbnRSZWZlcmVuY2UpO1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8SVBheW1lbnQ+KHBheW1lbnRNZXRob2QgPT09ICdjYXJkJyB8fCBwYXltZW50TWV0aG9kID09PSAnY2FzaCcgfHwgcGF5bWVudE1ldGhvZCA9PT0gJ2NoZXF1ZScgfHwgcGF5bWVudE1ldGhvZCA9PT0gJ3Bvc3RhbCBvcmRlcicgP1xuICAgICAgICAgIGAke3RoaXMucGF5bWVudExpYlNlcnZpY2UuQVBJX1JPT1R9L2NhcmQtcGF5bWVudHMvJHtwYXltZW50UmVmZXJlbmNlfWAgOlxuICAgICAgICAgIGAke3RoaXMucGF5bWVudExpYlNlcnZpY2UuQVBJX1JPT1R9L2NyZWRpdC1hY2NvdW50LXBheW1lbnRzLyR7cGF5bWVudFJlZmVyZW5jZX1gLCB7XG4gICAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZVxuICAgICAgfSlcbiAgICAgIC5waXBlKFxuICAgICAgICBjYXRjaEVycm9yKHRoaXMuZXJyb3JIYW5kbGVyU2VydmljZS5oYW5kbGVFcnJvcilcbiAgICAgICk7XG4gIH1cblxuICBnZXRQYXltZW50R3JvdXBEZXRhaWxzKHBheW1lbnRHcm91cFJlZmVyZW5jZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxJUGF5bWVudEdyb3VwPiB7XG4gICAgdGhpcy5sb2dnZXIuaW5mbygnUGF5bWVudC12aWV3LXNlcnZpY2UgZ2V0UGF5bWVudEdyb3VwRGV0YWlscyBmb3I6ICcsIHBheW1lbnRHcm91cFJlZmVyZW5jZSk7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxJUGF5bWVudD4oYCR7dGhpcy5wYXltZW50TGliU2VydmljZS5BUElfUk9PVH0vcGF5bWVudC1ncm91cHMvJHtwYXltZW50R3JvdXBSZWZlcmVuY2V9YCwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlXG4gICAgfSlcbiAgICAgIC5waXBlKFxuICAgICAgICBjYXRjaEVycm9yKHRoaXMuZXJyb3JIYW5kbGVyU2VydmljZS5oYW5kbGVFcnJvcilcbiAgICAgICk7XG4gIH1cbiAgZ2V0QXBwb3J0aW9uUGF5bWVudERldGFpbHMocGF5bWVudFJlZmVyZW5jZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxJUGF5bWVudEdyb3VwPiB7XG4gICAgdGhpcy5sb2dnZXIuaW5mbygnUGF5bWVudC12aWV3LXNlcnZpY2UgZ2V0UGF5bWVudEdyb3VwRGV0YWlscyBmb3I6ICcsIHBheW1lbnRSZWZlcmVuY2UpO1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8SVBheW1lbnQ+KGAke3RoaXMucGF5bWVudExpYlNlcnZpY2UuQVBJX1JPT1R9L3BheW1lbnQtZ3JvdXBzL2ZlZS1wYXktYXBwb3J0aW9uLyR7cGF5bWVudFJlZmVyZW5jZX1gLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWVcbiAgICB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIGNhdGNoRXJyb3IodGhpcy5lcnJvckhhbmRsZXJTZXJ2aWNlLmhhbmRsZUVycm9yKVxuICAgICAgKTtcbiAgfVxuICBnZXRQQkFhY2NvdW50RGV0YWlscygpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IHVybCA9IGAke3RoaXMucGF5bWVudExpYlNlcnZpY2UuQVBJX1JPT1R9L3BiYS1hY2NvdW50c2A7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodXJsLCB7IHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KS5waXBlKFxuICAgICAgICBjYXRjaEVycm9yKHRoaXMuZXJyb3JIYW5kbGVyU2VydmljZS5oYW5kbGVFcnJvcilcbiAgICAgICk7XG4gIH1cblxuICBwb3N0V2F5czJQYXlDYXJkUGF5bWVudChzZXJ2aWNlUmVmOiBzdHJpbmcsIGJvZHk6IElzZXJ2aWNlUmVxdWVzdENhcmRQYXltZW50KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLnBheW1lbnRMaWJTZXJ2aWNlLkFQSV9ST09UfS9zZXJ2aWNlLXJlcXVlc3QvJHtzZXJ2aWNlUmVmfS9jYXJkLXBheW1lbnRzYDtcbiAgICBjb25zdCBydXJsID0gdGhpcy5wYXltZW50TGliU2VydmljZS5DQVJEUEFZTUVOVFJFVFVSTlVSTC5yZXBsYWNlKCcucHJvZCcsICcnKTtcbiAgICBib2R5WydyZXR1cm4tdXJsJ10gPSBgJHtydXJsfS9wYXltZW50YDtcbiAgICByZXR1cm4gdGhpcy5odHRwcy5wb3N0KHVybCwgYm9keSkucGlwZShcbiAgICAgIGNhdGNoRXJyb3IodGhpcy5lcnJvckhhbmRsZXJTZXJ2aWNlLmhhbmRsZUVycm9yKVxuICAgICk7XG4gIH1cbiAgXG4gIHBvc3RQQkFhY2NvdW50UGF5bWVudChzZXJ2aWNlUmVmOiBzdHJpbmcsIGJvZHk6IElzZXJ2aWNlUmVxdWVzdFBiYVBheW1lbnQpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCByYW5kb21LZXkgPSAnaWRhbS1rZXktJyArIE1hdGgucmFuZG9tKCkudG9TdHJpbmcoKS5zcGxpdCgnLicpLmpvaW4oJy0nKTtcbiAgICBib2R5WydpZGVtcG90ZW5jeV9rZXknXSA9IHJhbmRvbUtleTsgXG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5wYXltZW50TGliU2VydmljZS5BUElfUk9PVH0vc2VydmljZS1yZXF1ZXN0LyR7c2VydmljZVJlZn0vcGJhLXBheW1lbnRzYDtcbiAgICByZXR1cm4gdGhpcy5odHRwcy5wb3N0KHVybCwgYm9keSk7XG4gIH1cblxuICBwb3N0QlNQYXltZW50cyhib2R5OiBBbGxvY2F0ZVBheW1lbnRSZXF1ZXN0KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwcy5wb3N0KGAke3RoaXMucGF5bWVudExpYlNlcnZpY2UuQVBJX1JPT1R9L3BheW1lbnQtZ3JvdXBzL2J1bGstc2Nhbi1wYXltZW50c2AsIGJvZHkpLnBpcGUoXG4gICAgICBjYXRjaEVycm9yKHRoaXMuZXJyb3JIYW5kbGVyU2VydmljZS5oYW5kbGVFcnJvcilcbiAgICApO1xuICB9XG4gIHBvc3RCU1VuaWRlbnRpZmllZFBheW1lbnRzKGJvZHk6IFVuaWRlbnRpZmllZFBheW1lbnRzUmVxdWVzdCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cHMucG9zdChgJHt0aGlzLnBheW1lbnRMaWJTZXJ2aWNlLkFQSV9ST09UfS9wYXltZW50LWFsbG9jYXRpb25zYCwgYm9keSkucGlwZShcbiAgICAgIGNhdGNoRXJyb3IodGhpcy5lcnJvckhhbmRsZXJTZXJ2aWNlLmhhbmRsZUVycm9yKVxuICAgICk7XG4gIH1cbiAgcG9zdEJTVW5zb2xpY2l0ZWRQYXltZW50cyhib2R5OiBVbnNvbGljaXRlZFBheW1lbnRzUmVxdWVzdCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cHMucG9zdChgJHt0aGlzLnBheW1lbnRMaWJTZXJ2aWNlLkFQSV9ST09UfS9wYXltZW50LWFsbG9jYXRpb25zYCwgYm9keSkucGlwZShcbiAgICAgIGNhdGNoRXJyb3IodGhpcy5lcnJvckhhbmRsZXJTZXJ2aWNlLmhhbmRsZUVycm9yKVxuICAgICk7XG4gIH1cbiAgcG9zdEJTQWxsb2NhdGlvblBheW1lbnRzKGJvZHk6IElBbGxvY2F0aW9uUGF5bWVudHNSZXF1ZXN0KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwcy5wb3N0KGAke3RoaXMucGF5bWVudExpYlNlcnZpY2UuQVBJX1JPT1R9L3BheW1lbnQtYWxsb2NhdGlvbnNgLCBib2R5KS5waXBlKFxuICAgICAgY2F0Y2hFcnJvcih0aGlzLmVycm9ySGFuZGxlclNlcnZpY2UuaGFuZGxlRXJyb3IpXG4gICAgKTtcbiAgfVxuXG4gIHBvc3RQYXltZW50R3JvdXBXaXRoUmVtaXNzaW9ucyhwYXltZW50R3JvdXBSZWZlcmVuY2U6IHN0cmluZywgZmVlSWQ6IG51bWJlciwgYm9keTogQWRkUmVtaXNzaW9uUmVxdWVzdCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cHMucG9zdChgJHt0aGlzLnBheW1lbnRMaWJTZXJ2aWNlLkFQSV9ST09UfS9wYXltZW50LWdyb3Vwcy8ke3BheW1lbnRHcm91cFJlZmVyZW5jZX0vZmVlcy8ke2ZlZUlkfS9yZW1pc3Npb25zYCwgYm9keSkucGlwZShcbiAgICAgIGNhdGNoRXJyb3IodGhpcy5lcnJvckhhbmRsZXJTZXJ2aWNlLmhhbmRsZUVycm9yKVxuICAgICk7XG4gIH1cblxuICBkZWxldGVGZWVGcm9tUGF5bWVudEdyb3VwKGZlZUlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgICAgICB0aGlzLmxvZ2dlci5pbmZvKCdQYXltZW50LXZpZXctc2VydmljZSBkZWxldGVGZWVGcm9tUGF5bWVudEdyb3VwIGZvcjogJywgZmVlSWQpO1xuICAgIHJldHVybiB0aGlzLmh0dHBzLmRlbGV0ZShgJHt0aGlzLnBheW1lbnRMaWJTZXJ2aWNlLkFQSV9ST09UfS9mZWVzLyR7ZmVlSWR9YCkucGlwZShcbiAgICAgIGNhdGNoRXJyb3IodGhpcy5lcnJvckhhbmRsZXJTZXJ2aWNlLmhhbmRsZUVycm9yKVxuICAgICk7XG4gIH1cbiAgcG9zdFBheW1lbnRUb1BheUh1Yihib2R5OiBQYXltZW50VG9QYXlodWJSZXF1ZXN0LCBwYXltZW50R3JvdXBSZWY6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cHMucG9zdChgJHt0aGlzLnBheW1lbnRMaWJTZXJ2aWNlLkFQSV9ST09UfS9wYXltZW50LWdyb3Vwcy8ke3BheW1lbnRHcm91cFJlZn0vY2FyZC1wYXltZW50c2AsIGJvZHkpLnBpcGUoXG4gICAgICBjYXRjaEVycm9yKHRoaXMuZXJyb3JIYW5kbGVyU2VydmljZS5oYW5kbGVFcnJvcilcbiAgICApO1xuICB9XG5cbiAgcG9zdFBheW1lbnRBbnRlbm5hVG9QYXlIdWIoYm9keTogUGF5aHViQW50ZW5uYVJlcXVlc3QsIHBheW1lbnRHcm91cFJlZjogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwcy5wb3N0KGAke3RoaXMucGF5bWVudExpYlNlcnZpY2UuQVBJX1JPT1R9L3BheW1lbnQtZ3JvdXBzLyR7cGF5bWVudEdyb3VwUmVmfS90ZWxlcGhvbnktY2FyZC1wYXltZW50c2AsIGJvZHkpLnBpcGUoXG4gICAgICBjYXRjaEVycm9yKHRoaXMuZXJyb3JIYW5kbGVyU2VydmljZS5oYW5kbGVFcnJvcilcbiAgICApO1xuICB9XG4gIGRvd25sb2FkU2VsZWN0ZWRSZXBvcnQocmVwb3J0TmFtZTogc3RyaW5nLCBzdGFydERhdGU6IHN0cmluZywgZW5kRGF0ZTpzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IHVybCA9IGAke3RoaXMucGF5bWVudExpYlNlcnZpY2UuQVBJX1JPT1R9L3JlcG9ydC9kYXRhP2RhdGVfZnJvbT0ke3N0YXJ0RGF0ZX0mZGF0ZV90bz0ke2VuZERhdGV9JnJlcG9ydF90eXBlPSR7cmVwb3J0TmFtZX1gO1xuICAgIHJldHVybiB0aGlzLmh0dHBzLmdldCh1cmwsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pLnBpcGUoIGNhdGNoRXJyb3IodGhpcy5lcnJvckhhbmRsZXJTZXJ2aWNlLmhhbmRsZUVycm9yKSk7XG4gIH1cbiAgZG93bmxvYWRGYWlsdXJlUmVwb3J0KHN0YXJ0RGF0ZTogc3RyaW5nLCBlbmREYXRlOnN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5wYXltZW50TGliU2VydmljZS5BUElfUk9PVH0vcGF5bWVudC1mYWlsdXJlcy9mYWlsdXJlLXJlcG9ydD9kYXRlX2Zyb209JHtzdGFydERhdGV9JmRhdGVfdG89JHtlbmREYXRlfWA7XG4gICAgcmV0dXJuIHRoaXMuaHR0cHMuZ2V0KHVybCwgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSkucGlwZSggY2F0Y2hFcnJvcih0aGlzLmVycm9ySGFuZGxlclNlcnZpY2UuaGFuZGxlRXJyb3IpKTtcbiAgfVxuICBnZXRCU2ZlYXR1cmUoKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwcy5nZXQoJ2FwaS9wYXltZW50LWhpc3RvcnkvYnVsay1zY2FuLWZlYXR1cmUnLCB7IHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KS5waXBlKCBjYXRjaEVycm9yKHRoaXMuZXJyb3JIYW5kbGVyU2VydmljZS5oYW5kbGVFcnJvcikpO1xuICB9XG4gIGdldFNpdGVJRCgpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBzLmdldCgnYXBpL3BheW1lbnQtaGlzdG9yeS9yZWZkYXRhL2xlZ2FjeS1zaXRlcycsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pLnBpcGUoIGNhdGNoRXJyb3IodGhpcy5lcnJvckhhbmRsZXJTZXJ2aWNlLmhhbmRsZUVycm9yKSk7XG4gIH1cbiAgZ2V0UGFydHlEZXRhaWxzKGNhc2VOdW1iZXI6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5wYXltZW50TGliU2VydmljZS5BUElfUk9PVH0vY2FzZS1wYXltZW50LW9yZGVycz9jYXNlX2lkcz0ke2Nhc2VOdW1iZXJ9YDtcbiAgICByZXR1cm4gdGhpcy5odHRwcy5nZXQodXJsLCB7IHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KS5waXBlKCBjYXRjaEVycm9yKHRoaXMuZXJyb3JIYW5kbGVyU2VydmljZS5oYW5kbGVFcnJvcikpO1xuICB9XG4gIFxuICBzZXRPcmRlcnNMaXN0KG9yZGVyTGV2ZWxGZWVzOiBJT3JkZXJSZWZlcmVuY2VGZWVbXSk6IHZvaWQge1xuICAgIHRoaXMub3JkZXJzTGlzdC5uZXh0KE9iamVjdC5hc3NpZ24oW10sIG9yZGVyTGV2ZWxGZWVzKSk7XG59XG4gIGdldE9yZGVyc0xpc3QoKSB7XG4gICAgcmV0dXJuIHRoaXMub3JkZXJzTGlzdDtcbiAgfVxuXG4gIC8vaXNzdWUgcmVmdW5kXG4gIHBvc3RSZWZ1bmRzUmVhc29uKGJvZHk6IFBvc3RSZWZ1bmRSZXRyb1JlbWlzc2lvbik6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cHMucG9zdChgJHt0aGlzLnBheW1lbnRMaWJTZXJ2aWNlLkFQSV9ST09UfS9yZWZ1bmQtZm9yLXBheW1lbnRgLCBib2R5KS5waXBlKFxuICAgICAgY2F0Y2hFcnJvcih0aGlzLmVycm9ySGFuZGxlclNlcnZpY2UuaGFuZGxlRXJyb3IpXG4gICAgKTtcbiAgfVxuXG4gIC8vIHJldHJvIHJlbWlzc2lvbnNcbiAgcG9zdFBheW1lbnRHcm91cFdpdGhSZXRyb1JlbWlzc2lvbnMocGF5bWVudEdyb3VwUmVmZXJlbmNlOiBzdHJpbmcsIGZlZUlkOiBudW1iZXIsIGJvZHk6IEFkZFJldHJvUmVtaXNzaW9uUmVxdWVzdCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cHMucG9zdChgJHt0aGlzLnBheW1lbnRMaWJTZXJ2aWNlLkFQSV9ST09UfS9wYXltZW50LWdyb3Vwcy8ke3BheW1lbnRHcm91cFJlZmVyZW5jZX0vZmVlcy8ke2ZlZUlkfS9yZXRyby1yZW1pc3Npb25gLCBib2R5KS5waXBlKFxuICAgICAgY2F0Y2hFcnJvcih0aGlzLmVycm9ySGFuZGxlclNlcnZpY2UuaGFuZGxlRXJyb3IpXG4gICAgKTtcbiAgfVxuXG4gIHBvc3RSZWZ1bmRSZXRyb1JlbWlzc2lvbihib2R5OlBvc3RJc3N1ZVJlZnVuZFJldHJvUmVtaXNzaW9uKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cHMucG9zdChgJHt0aGlzLnBheW1lbnRMaWJTZXJ2aWNlLkFQSV9ST09UfS9yZWZ1bmQtcmV0cm8tcmVtaXNzaW9uYCwgYm9keSkucGlwZShcbiAgICAgIGNhdGNoRXJyb3IodGhpcy5lcnJvckhhbmRsZXJTZXJ2aWNlLmhhbmRsZUVycm9yKVxuICAgICk7XG4gIH1cbiBnZXRQYXltZW50RmFpbHVyZShwYXltZW50UmVmZXJlbmNlOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBzLmdldChgJHt0aGlzLnBheW1lbnRMaWJTZXJ2aWNlLkFQSV9ST09UfS9wYXltZW50LWZhaWx1cmVzLyR7cGF5bWVudFJlZmVyZW5jZX1gLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWVcbiAgICB9KS5waXBlKFxuICAgICAgY2F0Y2hFcnJvcih0aGlzLmVycm9ySGFuZGxlclNlcnZpY2UuaGFuZGxlRXJyb3IpXG4gICAgKTtcbiAgfVxufVxuIl19
142
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bWVudC12aWV3LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wYXltZW50LWxpYi9zcmMvbGliL3NlcnZpY2VzL3BheW1lbnQtdmlldy9wYXltZW50LXZpZXcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQWUsTUFBTSxzQkFBc0IsQ0FBQztBQUkvRCxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUN2RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBV2hFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7QUFZdkMsTUFBTSxPQUFPLGtCQUFrQjtJQUs3QixZQUFvQixJQUFnQixFQUNoQixLQUE2QixFQUM3QixNQUFxQixFQUNyQixtQkFBd0MsRUFDeEMsaUJBQW9DO1FBSnBDLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsVUFBSyxHQUFMLEtBQUssQ0FBd0I7UUFDN0IsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUNyQix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFSaEQsZUFBVSxHQUEyQyxJQUFJLGVBQWUsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQVF6QixDQUFDO0lBRTdELGlCQUFpQixDQUFDLGdCQUF3QixFQUFFLGFBQXFCO1FBQy9ELElBQUksQ0FBQyxNQUFNLENBQUMsSUFB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QWtCLEVBQUUsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUMzSSxVQUFVLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFdBQVcsQ0FBQyxDQUNqRCxDQUFDO0lBQ0osQ0FBQztJQUVELHdCQUF3QixDQUFDLElBQWtDO1FBQ3pELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSx5QkFBeUIsRUFBRSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQzVGLFVBQVUsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsV0FBVyxDQUFDLENBQ2pELENBQUM7SUFDSixDQUFDO0lBQ0YsaUJBQWlCLENBQUMsZ0JBQXdCO1FBQ3ZDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSxxQkFBcUIsZ0JBQWdCLEVBQUUsRUFBRTtZQUMvRixlQUFlLEVBQUUsSUFBSTtTQUN0QixDQUFDLENBQUMsSUFBSSxDQUNMLFVBQVUsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsV0FBVyxDQUFDLENBQ2pELENBQUM7SUFDSixDQUFDOzs7O1lBcktGLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7O1lBOUJRLFVBQVU7WUFLVixzQkFBc0I7WUFHdEIsYUFBYTtZQUZiLG1CQUFtQjtZQUZwQixpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzL2ludGVybmFsL09ic2VydmFibGUnO1xuaW1wb3J0IHsgdjQgYXMgdXVpZHY0IH0gZnJvbSAndXVpZCc7XG5pbXBvcnQge0lQYXltZW50fSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL0lQYXltZW50JztcbmltcG9ydCB7UGF5bWVudExpYlNlcnZpY2V9IGZyb20gJy4uLy4uL3BheW1lbnQtbGliLnNlcnZpY2UnO1xuaW1wb3J0IHsgV2ViQ29tcG9uZW50SHR0cENsaWVudCB9IGZyb20gJy4uL3NoYXJlZC9odHRwY2xpZW50L3dlYmNvbXBvbmVudC5odHRwLmNsaWVudCc7XG5pbXBvcnQgeyBFcnJvckhhbmRsZXJTZXJ2aWNlIH0gZnJvbSAnLi4vc2hhcmVkL2Vycm9yLWhhbmRsZXIuc2VydmljZSc7XG5pbXBvcnQgeyBjYXRjaEVycm9yIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgTG9nZ2VyU2VydmljZSB9IGZyb20gJy4uL3NoYXJlZC9sb2dnZXIvbG9nZ2VyLnNlcnZpY2UnO1xuaW1wb3J0IHtJUGF5bWVudEdyb3VwfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL0lQYXltZW50R3JvdXAnO1xuaW1wb3J0IHsgQWRkUmVtaXNzaW9uUmVxdWVzdCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvQWRkUmVtaXNzaW9uUmVxdWVzdCc7XG5pbXBvcnQgeyBQYXltZW50VG9QYXlodWJSZXF1ZXN0IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9QYXltZW50VG9QYXlodWJSZXF1ZXN0JztcbmltcG9ydCB7IFBheWh1YkFudGVubmFSZXF1ZXN0IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9QYXlodWJBbnRlbm5hUmVxdWVzdCc7XG5pbXBvcnQgeyBVbmlkZW50aWZpZWRQYXltZW50c1JlcXVlc3QgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL1VuaWRlbnRpZmllZFBheW1lbnRzUmVxdWVzdCc7XG5pbXBvcnQgeyBVbnNvbGljaXRlZFBheW1lbnRzUmVxdWVzdCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvVW5zb2xpY2l0ZWRQYXltZW50c1JlcXVlc3QnO1xuaW1wb3J0IHsgTWV0YSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgQWxsb2NhdGVQYXltZW50UmVxdWVzdCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvQWxsb2NhdGVQYXltZW50UmVxdWVzdCc7XG5pbXBvcnQgeyBJQWxsb2NhdGlvblBheW1lbnRzUmVxdWVzdCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvSUFsbG9jYXRpb25QYXltZW50c1JlcXVlc3QnO1xuaW1wb3J0IHtJT3JkZXJSZWZlcmVuY2VGZWV9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvSU9yZGVyUmVmZXJlbmNlRmVlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgSXNlcnZpY2VSZXF1ZXN0UGJhUGF5bWVudCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvSXNlcnZpY2VSZXF1ZXN0UGJhUGF5bWVudCc7XG5pbXBvcnQgeyBJc2VydmljZVJlcXVlc3RDYXJkUGF5bWVudCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvSXNlcnZpY2VSZXF1ZXN0Q2FyZFBheW1lbnQnO1xuaW1wb3J0IHsgUmVmdW5kc1JlcXVlc3QgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL1JlZnVuZHNSZXF1ZXN0JztcbmltcG9ydCB7IEFkZFJldHJvUmVtaXNzaW9uUmVxdWVzdCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvQWRkUmV0cm9SZW1pc3Npb25SZXF1ZXN0JztcbmltcG9ydCB7IFBvc3RSZWZ1bmRSZXRyb1JlbWlzc2lvbiB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvUG9zdFJlZnVuZFJldHJvUmVtaXNzaW9uJztcbmltcG9ydCB7IFBvc3RJc3N1ZVJlZnVuZFJldHJvUmVtaXNzaW9uIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9Qb3N0SXNzdWVSZWZ1bmRSZXRyb1JlbWlzc2lvbic7XG5pbXBvcnQgeyBlcnJvciB9IGZyb20gJ0Bhbmd1bGFyL2NvbXBpbGVyL3NyYy91dGlsJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgUGF5bWVudFZpZXdTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBvcmRlcnNMaXN0ICA9IDxCZWhhdmlvclN1YmplY3Q8SU9yZGVyUmVmZXJlbmNlRmVlW10+Pm5ldyBCZWhhdmlvclN1YmplY3QoW10pO1xuXG4gIHByaXZhdGUgbWV0YTogTWV0YTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgICAgICAgICAgIHByaXZhdGUgaHR0cHM6IFdlYkNvbXBvbmVudEh0dHBDbGllbnQsXG4gICAgICAgICAgICAgIHByaXZhdGUgbG9nZ2VyOiBMb2dnZXJTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIGVycm9ySGFuZGxlclNlcnZpY2U6IEVycm9ySGFuZGxlclNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgcGF5bWVudExpYlNlcnZpY2U6IFBheW1lbnRMaWJTZXJ2aWNlKSB7IH1cblxuICBnZXRQYXltZW50RGV0YWlscyhwYXltZW50UmVmZXJlbmNlOiBzdHJpbmcsIHBheW1lbnRNZXRob2Q6IHN0cmluZyk6IE9ic2VydmFibGU8SVBheW1lbnQ+IHtcbiAgICB0aGlzLmxvZ2dlci5pbmZvKCdQYXltZW50LXZpZXctc2VydmljZSBnZXRQYXltZW50RGV0YWlscyBmb3I6ICcsIHBheW1lbnRSZWZlcmVuY2UpO1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8SVBheW1lbnQ+KHBheW1lbnRNZXRob2QgPT09ICdjYXJkJyB8fCBwYXltZW50TWV0aG9kID09PSAnY2FzaCcgfHwgcGF5bWVudE1ldGhvZCA9PT0gJ2NoZXF1ZScgfHwgcGF5bWVudE1ldGhvZCA9PT0gJ3Bvc3RhbCBvcmRlcicgP1xuICAgICAgICAgIGAke3RoaXMucGF5bWVudExpYlNlcnZpY2UuQVBJX1JPT1R9L2NhcmQtcGF5bWVudHMvJHtwYXltZW50UmVmZXJlbmNlfWAgOlxuICAgICAgICAgIGAke3RoaXMucGF5bWVudExpYlNlcnZpY2UuQVBJX1JPT1R9L2NyZWRpdC1hY2NvdW50LXBheW1lbnRzLyR7cGF5bWVudFJlZmVyZW5jZX1gLCB7XG4gICAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZVxuICAgICAgfSlcbiAgICAgIC5waXBlKFxuICAgICAgICBjYXRjaEVycm9yKHRoaXMuZXJyb3JIYW5kbGVyU2VydmljZS5oYW5kbGVFcnJvcilcbiAgICAgICk7XG4gIH1cblxuICBnZXRQYXltZW50R3JvdXBEZXRhaWxzKHBheW1lbnRHcm91cFJlZmVyZW5jZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxJUGF5bWVudEdyb3VwPiB7XG4gICAgdGhpcy5sb2dnZXIuaW5mbygnUGF5bWVudC12aWV3LXNlcnZpY2UgZ2V0UGF5bWVudEdyb3VwRGV0YWlscyBmb3I6ICcsIHBheW1lbnRHcm91cFJlZmVyZW5jZSk7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxJUGF5bWVudD4oYCR7dGhpcy5wYXltZW50TGliU2VydmljZS5BUElfUk9PVH0vcGF5bWVudC1ncm91cHMvJHtwYXltZW50R3JvdXBSZWZlcmVuY2V9YCwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlXG4gICAgfSlcbiAgICAgIC5waXBlKFxuICAgICAgICBjYXRjaEVycm9yKHRoaXMuZXJyb3JIYW5kbGVyU2VydmljZS5oYW5kbGVFcnJvcilcbiAgICAgICk7XG4gIH1cbiAgZ2V0QXBwb3J0aW9uUGF5bWVudERldGFpbHMocGF5bWVudFJlZmVyZW5jZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxJUGF5bWVudEdyb3VwPiB7XG4gICAgdGhpcy5sb2dnZXIuaW5mbygnUGF5bWVudC12aWV3LXNlcnZpY2UgZ2V0UGF5bWVudEdyb3VwRGV0YWlscyBmb3I6ICcsIHBheW1lbnRSZWZlcmVuY2UpO1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8SVBheW1lbnQ+KGAke3RoaXMucGF5bWVudExpYlNlcnZpY2UuQVBJX1JPT1R9L3BheW1lbnQtZ3JvdXBzL2ZlZS1wYXktYXBwb3J0aW9uLyR7cGF5bWVudFJlZmVyZW5jZX1gLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWVcbiAgICB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIGNhdGNoRXJyb3IodGhpcy5lcnJvckhhbmRsZXJTZXJ2aWNlLmhhbmRsZUVycm9yKVxuICAgICAgKTtcbiAgfVxuICBnZXRQQkFhY2NvdW50RGV0YWlscygpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IHVybCA9IGAke3RoaXMucGF5bWVudExpYlNlcnZpY2UuQVBJX1JPT1R9L3BiYS1hY2NvdW50c2A7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodXJsLCB7IHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KS5waXBlKFxuICAgICAgICBjYXRjaEVycm9yKHRoaXMuZXJyb3JIYW5kbGVyU2VydmljZS5oYW5kbGVFcnJvcilcbiAgICAgICk7XG4gIH1cblxuICBwb3N0V2F5czJQYXlDYXJkUGF5bWVudChzZXJ2aWNlUmVmOiBzdHJpbmcsIGJvZHk6IElzZXJ2aWNlUmVxdWVzdENhcmRQYXltZW50KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLnBheW1lbnRMaWJTZXJ2aWNlLkFQSV9ST09UfS9zZXJ2aWNlLXJlcXVlc3QvJHtzZXJ2aWNlUmVmfS9jYXJkLXBheW1lbnRzYDtcbiAgICBjb25zdCBydXJsID0gdGhpcy5wYXltZW50TGliU2VydmljZS5DQVJEUEFZTUVOVFJFVFVSTlVSTC5yZXBsYWNlKCcucHJvZCcsICcnKTtcbiAgICBib2R5WydyZXR1cm4tdXJsJ10gPSBgJHtydXJsfS9wYXltZW50YDtcbiAgICByZXR1cm4gdGhpcy5odHRwcy5wb3N0KHVybCwgYm9keSkucGlwZShcbiAgICAgIGNhdGNoRXJyb3IodGhpcy5lcnJvckhhbmRsZXJTZXJ2aWNlLmhhbmRsZUVycm9yKVxuICAgICk7XG4gIH1cbiAgXG4gIHBvc3RQQkFhY2NvdW50UGF5bWVudChzZXJ2aWNlUmVmOiBzdHJpbmcsIGJvZHk6IElzZXJ2aWNlUmVxdWVzdFBiYVBheW1lbnQpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCByYW5kb21LZXkgPSAnaWRhbS1rZXktJyArIE1hdGgucmFuZG9tKCkudG9TdHJpbmcoKS5zcGxpdCgnLicpLmpvaW4oJy0nKTtcbiAgICBib2R5WydpZGVtcG90ZW5jeV9rZXknXSA9IHJhbmRvbUtleTsgXG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5wYXltZW50TGliU2VydmljZS5BUElfUk9PVH0vc2VydmljZS1yZXF1ZXN0LyR7c2VydmljZVJlZn0vcGJhLXBheW1lbnRzYDtcbiAgICByZXR1cm4gdGhpcy5odHRwcy5wb3N0KHVybCwgYm9keSk7XG4gIH1cblxuICBwb3N0QlNQYXltZW50cyhib2R5OiBBbGxvY2F0ZVBheW1lbnRSZXF1ZXN0KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwcy5wb3N0KGAke3RoaXMucGF5bWVudExpYlNlcnZpY2UuQVBJX1JPT1R9L3BheW1lbnQtZ3JvdXBzL2J1bGstc2Nhbi1wYXltZW50c2AsIGJvZHkpLnBpcGUoXG4gICAgICBjYXRjaEVycm9yKHRoaXMuZXJyb3JIYW5kbGVyU2VydmljZS5oYW5kbGVFcnJvcilcbiAgICApO1xuICB9XG4gIHBvc3RCU1VuaWRlbnRpZmllZFBheW1lbnRzKGJvZHk6IFVuaWRlbnRpZmllZFBheW1lbnRzUmVxdWVzdCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cHMucG9zdChgJHt0aGlzLnBheW1lbnRMaWJTZXJ2aWNlLkFQSV9ST09UfS9wYXltZW50LWFsbG9jYXRpb25zYCwgYm9keSkucGlwZShcbiAgICAgIGNhdGNoRXJyb3IodGhpcy5lcnJvckhhbmRsZXJTZXJ2aWNlLmhhbmRsZUVycm9yKVxuICAgICk7XG4gIH1cbiAgcG9zdEJTVW5zb2xpY2l0ZWRQYXltZW50cyhib2R5OiBVbnNvbGljaXRlZFBheW1lbnRzUmVxdWVzdCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cHMucG9zdChgJHt0aGlzLnBheW1lbnRMaWJTZXJ2aWNlLkFQSV9ST09UfS9wYXltZW50LWFsbG9jYXRpb25zYCwgYm9keSkucGlwZShcbiAgICAgIGNhdGNoRXJyb3IodGhpcy5lcnJvckhhbmRsZXJTZXJ2aWNlLmhhbmRsZUVycm9yKVxuICAgICk7XG4gIH1cbiAgcG9zdEJTQWxsb2NhdGlvblBheW1lbnRzKGJvZHk6IElBbGxvY2F0aW9uUGF5bWVudHNSZXF1ZXN0KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwcy5wb3N0KGAke3RoaXMucGF5bWVudExpYlNlcnZpY2UuQVBJX1JPT1R9L3BheW1lbnQtYWxsb2NhdGlvbnNgLCBib2R5KS5waXBlKFxuICAgICAgY2F0Y2hFcnJvcih0aGlzLmVycm9ySGFuZGxlclNlcnZpY2UuaGFuZGxlRXJyb3IpXG4gICAgKTtcbiAgfVxuXG4gIHBvc3RQYXltZW50R3JvdXBXaXRoUmVtaXNzaW9ucyhwYXltZW50R3JvdXBSZWZlcmVuY2U6IHN0cmluZywgZmVlSWQ6IG51bWJlciwgYm9keTogQWRkUmVtaXNzaW9uUmVxdWVzdCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cHMucG9zdChgJHt0aGlzLnBheW1lbnRMaWJTZXJ2aWNlLkFQSV9ST09UfS9wYXltZW50LWdyb3Vwcy8ke3BheW1lbnRHcm91cFJlZmVyZW5jZX0vZmVlcy8ke2ZlZUlkfS9yZW1pc3Npb25zYCwgYm9keSkucGlwZShcbiAgICAgIGNhdGNoRXJyb3IodGhpcy5lcnJvckhhbmRsZXJTZXJ2aWNlLmhhbmRsZUVycm9yKVxuICAgICk7XG4gIH1cblxuICBkZWxldGVGZWVGcm9tUGF5bWVudEdyb3VwKGZlZUlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgICAgICB0aGlzLmxvZ2dlci5pbmZvKCdQYXltZW50LXZpZXctc2VydmljZSBkZWxldGVGZWVGcm9tUGF5bWVudEdyb3VwIGZvcjogJywgZmVlSWQpO1xuICAgIHJldHVybiB0aGlzLmh0dHBzLmRlbGV0ZShgJHt0aGlzLnBheW1lbnRMaWJTZXJ2aWNlLkFQSV9ST09UfS9mZWVzLyR7ZmVlSWR9YCkucGlwZShcbiAgICAgIGNhdGNoRXJyb3IodGhpcy5lcnJvckhhbmRsZXJTZXJ2aWNlLmhhbmRsZUVycm9yKVxuICAgICk7XG4gIH1cbiAgcG9zdFBheW1lbnRUb1BheUh1Yihib2R5OiBQYXltZW50VG9QYXlodWJSZXF1ZXN0LCBwYXltZW50R3JvdXBSZWY6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cHMucG9zdChgJHt0aGlzLnBheW1lbnRMaWJTZXJ2aWNlLkFQSV9ST09UfS9wYXltZW50LWdyb3Vwcy8ke3BheW1lbnRHcm91cFJlZn0vY2FyZC1wYXltZW50c2AsIGJvZHkpLnBpcGUoXG4gICAgICBjYXRjaEVycm9yKHRoaXMuZXJyb3JIYW5kbGVyU2VydmljZS5oYW5kbGVFcnJvcilcbiAgICApO1xuICB9XG5cbiAgcG9zdFBheW1lbnRBbnRlbm5hVG9QYXlIdWIoYm9keTogUGF5aHViQW50ZW5uYVJlcXVlc3QsIHBheW1lbnRHcm91cFJlZjogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwcy5wb3N0KGAke3RoaXMucGF5bWVudExpYlNlcnZpY2UuQVBJX1JPT1R9L3BheW1lbnQtZ3JvdXBzLyR7cGF5bWVudEdyb3VwUmVmfS90ZWxlcGhvbnktY2FyZC1wYXltZW50c2AsIGJvZHkpLnBpcGUoXG4gICAgICBjYXRjaEVycm9yKHRoaXMuZXJyb3JIYW5kbGVyU2VydmljZS5oYW5kbGVFcnJvcilcbiAgICApO1xuICB9XG4gIGRvd25sb2FkU2VsZWN0ZWRSZXBvcnQocmVwb3J0TmFtZTogc3RyaW5nLCBzdGFydERhdGU6IHN0cmluZywgZW5kRGF0ZTpzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IHVybCA9IGAke3RoaXMucGF5bWVudExpYlNlcnZpY2UuQVBJX1JPT1R9L3JlcG9ydC9kYXRhP2RhdGVfZnJvbT0ke3N0YXJ0RGF0ZX0mZGF0ZV90bz0ke2VuZERhdGV9JnJlcG9ydF90eXBlPSR7cmVwb3J0TmFtZX1gO1xuICAgIHJldHVybiB0aGlzLmh0dHBzLmdldCh1cmwsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pLnBpcGUoIGNhdGNoRXJyb3IodGhpcy5lcnJvckhhbmRsZXJTZXJ2aWNlLmhhbmRsZUVycm9yKSk7XG4gIH1cbiAgZG93bmxvYWRGYWlsdXJlUmVwb3J0KHN0YXJ0RGF0ZTogc3RyaW5nLCBlbmREYXRlOnN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5wYXltZW50TGliU2VydmljZS5BUElfUk9PVH0vcGF5bWVudC1mYWlsdXJlcy9mYWlsdXJlLXJlcG9ydD9kYXRlX2Zyb209JHtzdGFydERhdGV9JmRhdGVfdG89JHtlbmREYXRlfWA7XG4gICAgcmV0dXJuIHRoaXMuaHR0cHMuZ2V0KHVybCwgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSkucGlwZSggY2F0Y2hFcnJvcih0aGlzLmVycm9ySGFuZGxlclNlcnZpY2UuaGFuZGxlRXJyb3IpKTtcbiAgfVxuICBnZXRCU2ZlYXR1cmUoKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwcy5nZXQoJ2FwaS9wYXltZW50LWhpc3RvcnkvYnVsay1zY2FuLWZlYXR1cmUnLCB7IHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KS5waXBlKCBjYXRjaEVycm9yKHRoaXMuZXJyb3JIYW5kbGVyU2VydmljZS5oYW5kbGVFcnJvcikpO1xuICB9XG4gIGdldFNpdGVJRCgpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBzLmdldCgnYXBpL3BheW1lbnQtaGlzdG9yeS9yZWZkYXRhL2xlZ2FjeS1zaXRlcycsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pLnBpcGUoIGNhdGNoRXJyb3IodGhpcy5lcnJvckhhbmRsZXJTZXJ2aWNlLmhhbmRsZUVycm9yKSk7XG4gIH1cbiAgZ2V0UGFydHlEZXRhaWxzKGNhc2VOdW1iZXI6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5wYXltZW50TGliU2VydmljZS5BUElfUk9PVH0vY2FzZS1wYXltZW50LW9yZGVycz9jYXNlX2lkcz0ke2Nhc2VOdW1iZXJ9YDtcbiAgICByZXR1cm4gdGhpcy5odHRwcy5nZXQodXJsLCB7IHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KS5waXBlKCBjYXRjaEVycm9yKHRoaXMuZXJyb3JIYW5kbGVyU2VydmljZS5oYW5kbGVFcnJvcikpO1xuICB9XG4gIFxuICBzZXRPcmRlcnNMaXN0KG9yZGVyTGV2ZWxGZWVzOiBJT3JkZXJSZWZlcmVuY2VGZWVbXSk6IHZvaWQge1xuICAgIHRoaXMub3JkZXJzTGlzdC5uZXh0KE9iamVjdC5hc3NpZ24oW10sIG9yZGVyTGV2ZWxGZWVzKSk7XG59XG4gIGdldE9yZGVyc0xpc3QoKSB7XG4gICAgcmV0dXJuIHRoaXMub3JkZXJzTGlzdDtcbiAgfVxuXG4gIC8vaXNzdWUgcmVmdW5kXG4gIHBvc3RSZWZ1bmRzUmVhc29uKGJvZHk6IFBvc3RSZWZ1bmRSZXRyb1JlbWlzc2lvbik6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cHMucG9zdChgJHt0aGlzLnBheW1lbnRMaWJTZXJ2aWNlLkFQSV9ST09UfS9yZWZ1bmQtZm9yLXBheW1lbnRgLCBib2R5KS5waXBlKFxuICAgICAgY2F0Y2hFcnJvcih0aGlzLmVycm9ySGFuZGxlclNlcnZpY2UuaGFuZGxlRXJyb3IpXG4gICAgKTtcbiAgfVxuXG4gIC8vIHJldHJvIHJlbWlzc2lvbnNcbiAgcG9zdFBheW1lbnRHcm91cFdpdGhSZXRyb1JlbWlzc2lvbnMocGF5bWVudEdyb3VwUmVmZXJlbmNlOiBzdHJpbmcsIGZlZUlkOiBudW1iZXIsIGJvZHk6IEFkZFJldHJvUmVtaXNzaW9uUmVxdWVzdCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cHMucG9zdChgJHt0aGlzLnBheW1lbnRMaWJTZXJ2aWNlLkFQSV9ST09UfS9wYXltZW50LWdyb3Vwcy8ke3BheW1lbnRHcm91cFJlZmVyZW5jZX0vZmVlcy8ke2ZlZUlkfS9yZXRyby1yZW1pc3Npb25gLCBib2R5KS5waXBlKFxuICAgICAgY2F0Y2hFcnJvcih0aGlzLmVycm9ySGFuZGxlclNlcnZpY2UuaGFuZGxlRXJyb3IpXG4gICAgKTtcbiAgfVxuXG4gIHBvc3RSZWZ1bmRSZXRyb1JlbWlzc2lvbihib2R5OlBvc3RJc3N1ZVJlZnVuZFJldHJvUmVtaXNzaW9uKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cHMucG9zdChgJHt0aGlzLnBheW1lbnRMaWJTZXJ2aWNlLkFQSV9ST09UfS9yZWZ1bmQtcmV0cm8tcmVtaXNzaW9uYCwgYm9keSkucGlwZShcbiAgICAgIGNhdGNoRXJyb3IodGhpcy5lcnJvckhhbmRsZXJTZXJ2aWNlLmhhbmRsZUVycm9yKVxuICAgICk7XG4gIH1cbiBnZXRQYXltZW50RmFpbHVyZShwYXltZW50UmVmZXJlbmNlOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBzLmdldChgJHt0aGlzLnBheW1lbnRMaWJTZXJ2aWNlLkFQSV9ST09UfS9wYXltZW50LWZhaWx1cmVzLyR7cGF5bWVudFJlZmVyZW5jZX1gLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWVcbiAgICB9KS5waXBlKFxuICAgICAgY2F0Y2hFcnJvcih0aGlzLmVycm9ySGFuZGxlclNlcnZpY2UuaGFuZGxlRXJyb3IpXG4gICAgKTtcbiAgfVxufVxuIl19
@@ -1,7 +1,3 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
- */
5
1
  import { Injectable } from '@angular/core';
6
2
  import { HttpClient, HttpHeaders } from '@angular/common/http';
7
3
  import { Meta } from '@angular/platform-browser';
@@ -16,13 +12,6 @@ import * as i3 from "../shared/error-handler.service";
16
12
  import * as i4 from "../../payment-lib.service";
17
13
  import * as i5 from "@angular/platform-browser";
18
14
  export class RefundsService {
19
- /**
20
- * @param {?} http
21
- * @param {?} https
22
- * @param {?} errorHandlerService
23
- * @param {?} paymentLibService
24
- * @param {?} meta
25
- */
26
15
  constructor(http, https, errorHandlerService, paymentLibService, meta) {
27
16
  this.http = http;
28
17
  this.https = https;
@@ -30,138 +19,75 @@ export class RefundsService {
30
19
  this.paymentLibService = paymentLibService;
31
20
  this.meta = meta;
32
21
  }
33
- /**
34
- * @return {?}
35
- */
36
22
  getRefundReasons() {
37
23
  return this.http.get(`${this.paymentLibService.REFUNDS_API_ROOT}/reasons`, {
38
24
  withCredentials: true
39
25
  })
40
26
  .pipe(catchError(this.errorHandlerService.handleError));
41
27
  }
42
- /**
43
- * @return {?}
44
- */
45
28
  getRefundRejectReasons() {
46
29
  return this.http.get(`${this.paymentLibService.REFUNDS_API_ROOT}/rejection-reasons`, {
47
30
  withCredentials: true
48
31
  })
49
32
  .pipe(catchError(this.errorHandlerService.handleError));
50
33
  }
51
- /**
52
- * @param {?} refundReference
53
- * @return {?}
54
- */
55
34
  getRefundActions(refundReference) {
56
35
  return this.http.get(`${this.paymentLibService.REFUNDS_API_ROOT}/${refundReference}/actions`, {
57
36
  withCredentials: true
58
37
  })
59
38
  .pipe(catchError(this.errorHandlerService.handleError));
60
39
  }
61
- /**
62
- * @param {?} body
63
- * @param {?} refundReference
64
- * @param {?} reviewerAction
65
- * @return {?}
66
- */
67
40
  patchRefundActions(body, refundReference, reviewerAction) {
68
41
  // const opts = this.addHeaders({});
69
42
  return this.https.patch(`${this.paymentLibService.REFUNDS_API_ROOT}/${refundReference}/action/${reviewerAction}`, body)
70
43
  .pipe(catchError(this.errorHandlerService.handleError));
71
44
  }
72
- /**
73
- * @param {?=} refundstatus
74
- * @param {?=} selfexclusive
75
- * @return {?}
76
- */
77
45
  getRefundList(refundstatus, selfexclusive) {
78
46
  return this.http.get(`${this.paymentLibService.REFUNDS_API_ROOT}?status=${refundstatus}&excludeCurrentUser=${selfexclusive}`, {
79
47
  withCredentials: true
80
48
  })
81
49
  .pipe(catchError(this.errorHandlerService.handleError));
82
50
  }
83
- /**
84
- * @param {?=} reference
85
- * @return {?}
86
- */
87
51
  getRefundStatusHistory(reference) {
88
52
  return this.http.get(`${this.paymentLibService.REFUNDS_API_ROOT}/${reference}/status-history`, {
89
53
  withCredentials: true
90
54
  })
91
55
  .pipe(catchError(this.errorHandlerService.handleError));
92
56
  }
93
- /**
94
- * @param {?} ccdCaseNumber
95
- * @return {?}
96
- */
97
57
  getRefundStatusList(ccdCaseNumber) {
98
58
  return this.http.get(`${this.paymentLibService.REFUNDS_API_ROOT}?ccdCaseNumber=${ccdCaseNumber}`, {
99
59
  withCredentials: true
100
60
  })
101
61
  .pipe(catchError(this.errorHandlerService.handleError));
102
62
  }
103
- /**
104
- * @return {?}
105
- */
106
63
  getUserDetails() {
107
64
  return this.http.get(`${this.paymentLibService.REFUNDS_API_ROOT}/get-user-details`, {
108
65
  withCredentials: true
109
66
  })
110
67
  .pipe(catchError(this.errorHandlerService.handleError));
111
68
  }
112
- /**
113
- * @param {?} body
114
- * @return {?}
115
- */
116
69
  postIssueRefund(body) {
117
70
  return this.https.post(`${this.paymentLibService.REFUNDS_API_ROOT}/refund`, body).pipe(catchError(this.errorHandlerService.handleError));
118
71
  }
119
- /**
120
- * @param {?} body
121
- * @param {?} refund_reference
122
- * @return {?}
123
- */
124
72
  patchResubmitRefund(body, refund_reference) {
125
73
  // const opts = this.addHeaders({});
126
74
  return this.https.patch(`${this.paymentLibService.REFUNDS_API_ROOT}/resubmit/${refund_reference}`, body).pipe(catchError(this.errorHandlerService.handleError));
127
75
  }
128
- /**
129
- * @param {?} options
130
- * @return {?}
131
- */
132
76
  addHeaders(options) {
133
- /** @type {?} */
134
77
  const csrfToken = this.meta.getTag('name=csrf-token');
135
- /** @type {?} */
136
78
  const headers = {};
137
79
  if (options.headers) {
138
- options.headers.forEach((/**
139
- * @param {?} element
140
- * @return {?}
141
- */
142
- element => {
80
+ options.headers.forEach(element => {
143
81
  headers[element] = options.headers.get(element);
144
- }));
82
+ });
145
83
  }
146
84
  headers['X-Requested-With'] = 'XMLHttpRequest';
147
85
  if (csrfToken.content === null) {
148
- if (document.cookie.split(';').find((/**
149
- * @param {?} row
150
- * @return {?}
151
- */
152
- row => row.startsWith('XSRF-TOKEN'))) !== undefined) {
153
- headers['CSRF-Token'] = document.cookie.split(';').find((/**
154
- * @param {?} row
155
- * @return {?}
156
- */
157
- row => row.startsWith('XSRF-TOKEN'))).split('=')[1];
86
+ if (document.cookie.split(';').find(row => row.startsWith('XSRF-TOKEN')) !== undefined) {
87
+ headers['CSRF-Token'] = document.cookie.split(';').find(row => row.startsWith('XSRF-TOKEN')).split('=')[1];
158
88
  }
159
89
  else {
160
- headers['CSRF-Token'] = document.cookie.split(';').find((/**
161
- * @param {?} row
162
- * @return {?}
163
- */
164
- row => row.startsWith(' XSRF-TOKEN'))).split('=')[1];
90
+ headers['CSRF-Token'] = document.cookie.split(';').find(row => row.startsWith(' XSRF-TOKEN')).split('=')[1];
165
91
  }
166
92
  }
167
93
  else {
@@ -172,12 +98,12 @@ export class RefundsService {
172
98
  return options;
173
99
  }
174
100
  }
101
+ RefundsService.ɵprov = i0.ɵɵdefineInjectable({ factory: function RefundsService_Factory() { return new RefundsService(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(i2.WebComponentHttpClient), i0.ɵɵinject(i3.ErrorHandlerService), i0.ɵɵinject(i4.PaymentLibService), i0.ɵɵinject(i5.Meta)); }, token: RefundsService, providedIn: "root" });
175
102
  RefundsService.decorators = [
176
103
  { type: Injectable, args: [{
177
104
  providedIn: 'root'
178
105
  },] }
179
106
  ];
180
- /** @nocollapse */
181
107
  RefundsService.ctorParameters = () => [
182
108
  { type: HttpClient },
183
109
  { type: WebComponentHttpClient },
@@ -185,32 +111,4 @@ RefundsService.ctorParameters = () => [
185
111
  { type: PaymentLibService },
186
112
  { type: Meta }
187
113
  ];
188
- /** @nocollapse */ RefundsService.ngInjectableDef = i0.defineInjectable({ factory: function RefundsService_Factory() { return new RefundsService(i0.inject(i1.HttpClient), i0.inject(i2.WebComponentHttpClient), i0.inject(i3.ErrorHandlerService), i0.inject(i4.PaymentLibService), i0.inject(i5.Meta)); }, token: RefundsService, providedIn: "root" });
189
- if (false) {
190
- /**
191
- * @type {?}
192
- * @private
193
- */
194
- RefundsService.prototype.http;
195
- /**
196
- * @type {?}
197
- * @private
198
- */
199
- RefundsService.prototype.https;
200
- /**
201
- * @type {?}
202
- * @private
203
- */
204
- RefundsService.prototype.errorHandlerService;
205
- /**
206
- * @type {?}
207
- * @private
208
- */
209
- RefundsService.prototype.paymentLibService;
210
- /**
211
- * @type {?}
212
- * @private
213
- */
214
- RefundsService.prototype.meta;
215
- }
216
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVmdW5kcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGhtY3RzL2NjcGF5LXdlYi1jb21wb25lbnQvIiwic291cmNlcyI6WyJsaWIvc2VydmljZXMvcmVmdW5kcy9yZWZ1bmRzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFDLFVBQVUsRUFBRSxXQUFXLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDakQsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDcEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDdkYsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFFNUQsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7O0FBVTFDLE1BQU0sT0FBTyxjQUFjOzs7Ozs7OztJQUV6QixZQUFvQixJQUFnQixFQUMxQixLQUE2QixFQUNuQixtQkFBd0MsRUFDeEMsaUJBQW9DLEVBQ3BDLElBQVU7UUFKVixTQUFJLEdBQUosSUFBSSxDQUFZO1FBQzFCLFVBQUssR0FBTCxLQUFLLENBQXdCO1FBQ25CLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDeEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxTQUFJLEdBQUosSUFBSSxDQUFNO0lBQ2QsQ0FBQzs7OztJQUVqQixnQkFBZ0I7UUFDWixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFtQixHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxnQkFBZ0IsVUFBVSxFQUFFO1lBQzdGLGVBQWUsRUFBRSxJQUFJO1NBQ3hCLENBQUM7YUFDRyxJQUFJLENBQ0gsVUFBVSxDQUFDLElBQUks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R0FBRyxDQUFDLENBQUMsSUFBSTs7OztnQkFBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLEVBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDNUc7aUJBQU07Z0JBQ0wsT0FBTyxDQUFDLFlBQVksQ0FBQyxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUk7Ozs7Z0JBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxFQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQzdHO1NBQ0Y7YUFBTTtZQUNMLE9BQU8sQ0FBQyxZQUFZLENBQUMsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDO1NBQzNDO1FBQ0QsT0FBTyxDQUFDLE9BQU8sR0FBRyxJQUFJLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMzQyxPQUFPLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQztRQUM5QixPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDOzs7WUF2SEEsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7O1lBZk8sVUFBVTtZQUdULHNCQUFzQjtZQUR2QixtQkFBbUI7WUFFbkIsaUJBQWlCO1lBSGhCLElBQUk7Ozs7Ozs7O0lBaUJDLDhCQUF3Qjs7Ozs7SUFDbEMsK0JBQXFDOzs7OztJQUMzQiw2Q0FBZ0Q7Ozs7O0lBQ2hELDJDQUE0Qzs7Ozs7SUFDNUMsOEJBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtIdHRwQ2xpZW50LCBIdHRwSGVhZGVyc30gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgTWV0YSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHtFcnJvckhhbmRsZXJTZXJ2aWNlfSBmcm9tICcuLi9zaGFyZWQvZXJyb3ItaGFuZGxlci5zZXJ2aWNlJztcbmltcG9ydCB7IFdlYkNvbXBvbmVudEh0dHBDbGllbnQgfSBmcm9tICcuLi9zaGFyZWQvaHR0cGNsaWVudC93ZWJjb21wb25lbnQuaHR0cC5jbGllbnQnO1xuaW1wb3J0IHtQYXltZW50TGliU2VydmljZX0gZnJvbSAnLi4vLi4vcGF5bWVudC1saWIuc2VydmljZSc7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMvT2JzZXJ2YWJsZSc7XG5pbXBvcnQge2NhdGNoRXJyb3J9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IElSZWZ1bmRSZWFzb25zIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9JUmVmdW5kUmVhc29ucyc7XG5pbXBvcnQgeyBJUGF0Y2hSZWZ1bmRBY3Rpb24gfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL0lQYXRjaFJlZnVuZEFjdGlvbic7XG5pbXBvcnQgeyBJUmVmdW5kTGlzdCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvSVJlZnVuZExpc3QnO1xuaW1wb3J0IHsgSXNzdWVSZWZ1bmRSZXF1ZXN0IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9Jc3N1ZVJlZnVuZFJlcXVlc3QnO1xuaW1wb3J0IHsgSVJlc3VibWl0UmVmdW5kUmVxdWVzdCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvSVJlc3VibWl0UmVmdW5kUmVxdWVzdCc7XG5pbXBvcnQgeyBJUmVmdW5kU3RhdHVzSGlzdG9yeSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvSVJlZnVuZFN0YXR1c0hpc3RvcnknO1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgUmVmdW5kc1NlcnZpY2Uge1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcbiAgICBwcml2YXRlIGh0dHBzOiBXZWJDb21wb25lbnRIdHRwQ2xpZW50LFxuICAgICAgICAgICAgICBwcml2YXRlIGVycm9ySGFuZGxlclNlcnZpY2U6IEVycm9ySGFuZGxlclNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgcGF5bWVudExpYlNlcnZpY2U6IFBheW1lbnRMaWJTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIG1ldGE6IE1ldGFcbiAgICAgICAgICAgICAgKSB7IH1cblxuICBnZXRSZWZ1bmRSZWFzb25zKCk6IE9ic2VydmFibGU8SVJlZnVuZFJlYXNvbnNbXT4ge1xuICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8SVJlZnVuZFJlYXNvbnNbXT4oYCR7dGhpcy5wYXltZW50TGliU2VydmljZS5SRUZVTkRTX0FQSV9ST09UfS9yZWFzb25zYCwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlXG4gIH0pXG4gICAgICAucGlwZShcbiAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmVycm9ySGFuZGxlclNlcnZpY2UuaGFuZGxlRXJyb3IpXG4gICAgICApO1xuICB9XG5cbiAgZ2V0UmVmdW5kUmVqZWN0UmVhc29ucygpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYCR7dGhpcy5wYXltZW50TGliU2VydmljZS5SRUZVTkRTX0FQSV9ST09UfS9yZWplY3Rpb24tcmVhc29uc2AsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZVxuICAgIH0pXG4gICAgLnBpcGUoXG4gICAgICBjYXRjaEVycm9yKHRoaXMuZXJyb3JIYW5kbGVyU2VydmljZS5oYW5kbGVFcnJvcilcbiAgICApO1xuICB9XG5cbiAgZ2V0UmVmdW5kQWN0aW9ucyhyZWZ1bmRSZWZlcmVuY2U6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PihgJHt0aGlzLnBheW1lbnRMaWJTZXJ2aWNlLlJFRlVORFNfQVBJX1JPT1R9LyR7cmVmdW5kUmVmZXJlbmNlfS9hY3Rpb25zYCwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlXG4gICAgICB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIGNhdGNoRXJyb3IodGhpcy5lcnJvckhhbmRsZXJTZXJ2aWNlLmhhbmRsZUVycm9yKVxuICAgICAgKTtcbiAgfVxuXG5wYXRjaFJlZnVuZEFjdGlvbnMoYm9keTpJUGF0Y2hSZWZ1bmRBY3Rpb24sIHJlZnVuZFJlZmVyZW5jZTogc3RyaW5nLCByZXZpZXdlckFjdGlvbjogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgLy8gY29uc3Qgb3B0cyA9IHRoaXMuYWRkSGVhZGVycyh7fSk7XG4gIHJldHVybiB0aGlzLmh0dHBzLnBhdGNoKGAke3RoaXMucGF5bWVudExpYlNlcnZpY2UuUkVGVU5EU19BUElfUk9PVH0vJHtyZWZ1bmRSZWZlcmVuY2V9L2FjdGlvbi8ke3Jldmlld2VyQWN0aW9ufWAsIGJvZHkpXG4gIC5waXBlKFxuICAgIGNhdGNoRXJyb3IodGhpcy5lcnJvckhhbmRsZXJTZXJ2aWNlLmhhbmRsZUVycm9yKVxuICApO1xufVxuXG5nZXRSZWZ1bmRMaXN0KHJlZnVuZHN0YXR1cz86IHN0cmluZywgc2VsZmV4Y2x1c2l2ZT86Ym9vbGVhbik6IE9ic2VydmFibGU8SVJlZnVuZExpc3RbXT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PElSZWZ1bmRMaXN0W10+KGAke3RoaXMucGF5bWVudExpYlNlcnZpY2UuUkVGVU5EU19BUElfUk9PVH0/c3RhdHVzPSR7cmVmdW5kc3RhdHVzfSZleGNsdWRlQ3VycmVudFVzZXI9JHtzZWxmZXhjbHVzaXZlfWAsIFxuICAgIHtcbiAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWVcbn0pXG4gICAgLnBpcGUoXG4gICAgICBjYXRjaEVycm9yKHRoaXMuZXJyb3JIYW5kbGVyU2VydmljZS5oYW5kbGVFcnJvcilcbiAgICApO1xufVxuXG5nZXRSZWZ1bmRTdGF0dXNIaXN0b3J5KHJlZmVyZW5jZT86IHN0cmluZykge1xuICByZXR1cm4gdGhpcy5odHRwLmdldDxJUmVmdW5kU3RhdHVzSGlzdG9yeT4oYCR7dGhpcy5wYXltZW50TGliU2VydmljZS5SRUZVTkRTX0FQSV9ST09UfS8ke3JlZmVyZW5jZX0vc3RhdHVzLWhpc3RvcnlgLCBcbiAge1xuICB3aXRoQ3JlZGVudGlhbHM6IHRydWVcbn0pXG4gIC5waXBlKFxuICAgIGNhdGNoRXJyb3IodGhpcy5lcnJvckhhbmRsZXJTZXJ2aWNlLmhhbmRsZUVycm9yKVxuICApO1xufVxuXG5nZXRSZWZ1bmRTdGF0dXNMaXN0KGNjZENhc2VOdW1iZXI6c3RyaW5nKTogT2JzZXJ2YWJsZTxJUmVmdW5kTGlzdFtdPiB7XG4gIHJldHVybiB0aGlzLmh0dHAuZ2V0PElSZWZ1bmRMaXN0W10+KGAke3RoaXMucGF5bWVudExpYlNlcnZpY2UuUkVGVU5EU19BUElfUk9PVH0/Y2NkQ2FzZU51bWJlcj0ke2NjZENhc2VOdW1iZXJ9YCwge1xuICB3aXRoQ3JlZGVudGlhbHM6IHRydWVcbn0pXG4gIC5waXBlKFxuICAgIGNhdGNoRXJyb3IodGhpcy5lcnJvckhhbmRsZXJTZXJ2aWNlLmhhbmRsZUVycm9yKVxuICApO1xufVxuXG5nZXRVc2VyRGV0YWlscygpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYCR7dGhpcy5wYXltZW50TGliU2VydmljZS5SRUZVTkRTX0FQSV9ST09UfS9nZXQtdXNlci1kZXRhaWxzYCwge1xuICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZVxuICB9KVxuICAgIC5waXBlKFxuICAgICAgY2F0Y2hFcnJvcih0aGlzLmVycm9ySGFuZGxlclNlcnZpY2UuaGFuZGxlRXJyb3IpXG4gICAgKTtcbn1cbiBcbnBvc3RJc3N1ZVJlZnVuZChib2R5OiBJc3N1ZVJlZnVuZFJlcXVlc3QpOiBPYnNlcnZhYmxlPGFueT4ge1xuICByZXR1cm4gdGhpcy5odHRwcy5wb3N0KGAke3RoaXMucGF5bWVudExpYlNlcnZpY2UuUkVGVU5EU19BUElfUk9PVH0vcmVmdW5kYCwgYm9keSkucGlwZShcbiAgICBjYXRjaEVycm9yKHRoaXMuZXJyb3JIYW5kbGVyU2VydmljZS5oYW5kbGVFcnJvcilcbiAgKTtcbn1cblxucGF0Y2hSZXN1Ym1pdFJlZnVuZChib2R5OiBJUmVzdWJtaXRSZWZ1bmRSZXF1ZXN0LCByZWZ1bmRfcmVmZXJlbmNlOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAvLyBjb25zdCBvcHRzID0gdGhpcy5hZGRIZWFkZXJzKHt9KTtcbiAgcmV0dXJuIHRoaXMuaHR0cHMucGF0Y2goYCR7dGhpcy5wYXltZW50TGliU2VydmljZS5SRUZVTkRTX0FQSV9ST09UfS9yZXN1Ym1pdC8ke3JlZnVuZF9yZWZlcmVuY2V9YCwgYm9keSkucGlwZShcbiAgICBjYXRjaEVycm9yKHRoaXMuZXJyb3JIYW5kbGVyU2VydmljZS5oYW5kbGVFcnJvcilcbiAgKTtcbn1cblxuYWRkSGVhZGVycyhvcHRpb25zOiBhbnkpOiBhbnkge1xuICBjb25zdCBjc3JmVG9rZW4gPSB0aGlzLm1ldGEuZ2V0VGFnKCduYW1lPWNzcmYtdG9rZW4nKTtcbiAgY29uc3QgaGVhZGVycyA9IHt9O1xuICBpZiAob3B0aW9ucy5oZWFkZXJzKSB7XG4gICAgb3B0aW9ucy5oZWFkZXJzLmZvckVhY2goZWxlbWVudCA9PiB7XG4gICAgICBoZWFkZXJzW2VsZW1lbnRdID0gb3B0aW9ucy5oZWFkZXJzLmdldChlbGVtZW50KTtcbiAgICB9KTtcbiAgfVxuICBoZWFkZXJzWydYLVJlcXVlc3RlZC1XaXRoJ10gPSAnWE1MSHR0cFJlcXVlc3QnO1xuICBpZiAoY3NyZlRva2VuLmNvbnRlbnQgPT09IG51bGwpIHtcbiAgICBpZiggZG9jdW1lbnQuY29va2llLnNwbGl0KCc7JykuZmluZChyb3cgPT4gcm93LnN0YXJ0c1dpdGgoJ1hTUkYtVE9LRU4nKSkgIT09IHVuZGVmaW5lZCApIHtcbiAgICAgIGhlYWRlcnNbJ0NTUkYtVG9rZW4nXSA9IGRvY3VtZW50LmNvb2tpZS5zcGxpdCgnOycpLmZpbmQocm93ID0+IHJvdy5zdGFydHNXaXRoKCdYU1JGLVRPS0VOJykpLnNwbGl0KCc9JylbMV07ICAgICBcbiAgICB9IGVsc2Uge1xuICAgICAgaGVhZGVyc1snQ1NSRi1Ub2tlbiddID0gZG9jdW1lbnQuY29va2llLnNwbGl0KCc7JykuZmluZChyb3cgPT4gcm93LnN0YXJ0c1dpdGgoJyBYU1JGLVRPS0VOJykpLnNwbGl0KCc9JylbMV07XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGhlYWRlcnNbJ0NTUkYtVG9rZW4nXSA9IGNzcmZUb2tlbi5jb250ZW50O1xuICB9XG4gIG9wdGlvbnMuaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycyhoZWFkZXJzKTtcbiAgb3B0aW9ucy5yZXNwb25zZVR5cGUgPSAndGV4dCc7XG4gIHJldHVybiBvcHRpb25zO1xufVxufVxuIl19
114
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVmdW5kcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcGF5bWVudC1saWIvc3JjL2xpYi9zZXJ2aWNlcy9yZWZ1bmRzL3JlZnVuZHMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBQyxVQUFVLEVBQUUsV0FBVyxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDN0QsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pELE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ3ZGLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBRTVELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7OztBQVUxQyxNQUFNLE9BQU8sY0FBYztJQUV6QixZQUFvQixJQUFnQixFQUMxQixLQUE2QixFQUNuQixtQkFBd0MsRUFDeEMsaUJBQW9DLEVBQ3BDLElBQVU7UUFKVixTQUFJLEdBQUosSUFBSSxDQUFZO1FBQzFCLFVBQUssR0FBTCxLQUFLLENBQXdCO1FBQ25CLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDeEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxTQUFJLEdBQUosSUFBSSxDQUFNO0lBQ2QsQ0FBQztJQUVqQixnQkFBZ0I7UUFDWixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFtQixHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxnQkFBZ0IsVUFBVSxFQUFFO1lBQzdGLGVBQWUsRUFBRSxJQUFJO1NBQ3hCLENBQUM7YUFDRyxJQUFJLENBQ0gsVUFBVSxDQUFDLElBQUksQ0FB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QUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDNUc7aUJBQU07Z0JBQ0wsT0FBTyxDQUFDLFlBQVksQ0FBQyxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDN0c7U0FDRjthQUFNO1lBQ0wsT0FBTyxDQUFDLFlBQVksQ0FBQyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUM7U0FDM0M7UUFDRCxPQUFPLENBQUMsT0FBTyxHQUFHLElBQUksV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzNDLE9BQU8sQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDO1FBQzlCLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7Ozs7WUF2SEEsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7WUFmTyxVQUFVO1lBR1Qsc0JBQXNCO1lBRHZCLG1CQUFtQjtZQUVuQixpQkFBaUI7WUFIaEIsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7SHR0cENsaWVudCwgSHR0cEhlYWRlcnN9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IE1ldGEgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7RXJyb3JIYW5kbGVyU2VydmljZX0gZnJvbSAnLi4vc2hhcmVkL2Vycm9yLWhhbmRsZXIuc2VydmljZSc7XG5pbXBvcnQgeyBXZWJDb21wb25lbnRIdHRwQ2xpZW50IH0gZnJvbSAnLi4vc2hhcmVkL2h0dHBjbGllbnQvd2ViY29tcG9uZW50Lmh0dHAuY2xpZW50JztcbmltcG9ydCB7UGF5bWVudExpYlNlcnZpY2V9IGZyb20gJy4uLy4uL3BheW1lbnQtbGliLnNlcnZpY2UnO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzL09ic2VydmFibGUnO1xuaW1wb3J0IHtjYXRjaEVycm9yfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBJUmVmdW5kUmVhc29ucyB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvSVJlZnVuZFJlYXNvbnMnO1xuaW1wb3J0IHsgSVBhdGNoUmVmdW5kQWN0aW9uIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9JUGF0Y2hSZWZ1bmRBY3Rpb24nO1xuaW1wb3J0IHsgSVJlZnVuZExpc3QgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL0lSZWZ1bmRMaXN0JztcbmltcG9ydCB7IElzc3VlUmVmdW5kUmVxdWVzdCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvSXNzdWVSZWZ1bmRSZXF1ZXN0JztcbmltcG9ydCB7IElSZXN1Ym1pdFJlZnVuZFJlcXVlc3QgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL0lSZXN1Ym1pdFJlZnVuZFJlcXVlc3QnO1xuaW1wb3J0IHsgSVJlZnVuZFN0YXR1c0hpc3RvcnkgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL0lSZWZ1bmRTdGF0dXNIaXN0b3J5JztcbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFJlZnVuZHNTZXJ2aWNlIHtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgcHJpdmF0ZSBodHRwczogV2ViQ29tcG9uZW50SHR0cENsaWVudCxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBlcnJvckhhbmRsZXJTZXJ2aWNlOiBFcnJvckhhbmRsZXJTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIHBheW1lbnRMaWJTZXJ2aWNlOiBQYXltZW50TGliU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBtZXRhOiBNZXRhXG4gICAgICAgICAgICAgICkgeyB9XG5cbiAgZ2V0UmVmdW5kUmVhc29ucygpOiBPYnNlcnZhYmxlPElSZWZ1bmRSZWFzb25zW10+IHtcbiAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PElSZWZ1bmRSZWFzb25zW10+KGAke3RoaXMucGF5bWVudExpYlNlcnZpY2UuUkVGVU5EU19BUElfUk9PVH0vcmVhc29uc2AsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZVxuICB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIGNhdGNoRXJyb3IodGhpcy5lcnJvckhhbmRsZXJTZXJ2aWNlLmhhbmRsZUVycm9yKVxuICAgICAgKTtcbiAgfVxuXG4gIGdldFJlZnVuZFJlamVjdFJlYXNvbnMoKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KGAke3RoaXMucGF5bWVudExpYlNlcnZpY2UuUkVGVU5EU19BUElfUk9PVH0vcmVqZWN0aW9uLXJlYXNvbnNgLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWVcbiAgICB9KVxuICAgIC5waXBlKFxuICAgICAgY2F0Y2hFcnJvcih0aGlzLmVycm9ySGFuZGxlclNlcnZpY2UuaGFuZGxlRXJyb3IpXG4gICAgKTtcbiAgfVxuXG4gIGdldFJlZnVuZEFjdGlvbnMocmVmdW5kUmVmZXJlbmNlOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYCR7dGhpcy5wYXltZW50TGliU2VydmljZS5SRUZVTkRTX0FQSV9ST09UfS8ke3JlZnVuZFJlZmVyZW5jZX0vYWN0aW9uc2AsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZVxuICAgICAgfSlcbiAgICAgIC5waXBlKFxuICAgICAgICBjYXRjaEVycm9yKHRoaXMuZXJyb3JIYW5kbGVyU2VydmljZS5oYW5kbGVFcnJvcilcbiAgICAgICk7XG4gIH1cblxucGF0Y2hSZWZ1bmRBY3Rpb25zKGJvZHk6SVBhdGNoUmVmdW5kQWN0aW9uLCByZWZ1bmRSZWZlcmVuY2U6IHN0cmluZywgcmV2aWV3ZXJBY3Rpb246IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gIC8vIGNvbnN0IG9wdHMgPSB0aGlzLmFkZEhlYWRlcnMoe30pO1xuICByZXR1cm4gdGhpcy5odHRwcy5wYXRjaChgJHt0aGlzLnBheW1lbnRMaWJTZXJ2aWNlLlJFRlVORFNfQVBJX1JPT1R9LyR7cmVmdW5kUmVmZXJlbmNlfS9hY3Rpb24vJHtyZXZpZXdlckFjdGlvbn1gLCBib2R5KVxuICAucGlwZShcbiAgICBjYXRjaEVycm9yKHRoaXMuZXJyb3JIYW5kbGVyU2VydmljZS5oYW5kbGVFcnJvcilcbiAgKTtcbn1cblxuZ2V0UmVmdW5kTGlzdChyZWZ1bmRzdGF0dXM/OiBzdHJpbmcsIHNlbGZleGNsdXNpdmU/OmJvb2xlYW4pOiBPYnNlcnZhYmxlPElSZWZ1bmRMaXN0W10+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxJUmVmdW5kTGlzdFtdPihgJHt0aGlzLnBheW1lbnRMaWJTZXJ2aWNlLlJFRlVORFNfQVBJX1JPT1R9P3N0YXR1cz0ke3JlZnVuZHN0YXR1c30mZXhjbHVkZUN1cnJlbnRVc2VyPSR7c2VsZmV4Y2x1c2l2ZX1gLCBcbiAgICB7XG4gICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlXG59KVxuICAgIC5waXBlKFxuICAgICAgY2F0Y2hFcnJvcih0aGlzLmVycm9ySGFuZGxlclNlcnZpY2UuaGFuZGxlRXJyb3IpXG4gICAgKTtcbn1cblxuZ2V0UmVmdW5kU3RhdHVzSGlzdG9yeShyZWZlcmVuY2U/OiBzdHJpbmcpIHtcbiAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8SVJlZnVuZFN0YXR1c0hpc3Rvcnk+KGAke3RoaXMucGF5bWVudExpYlNlcnZpY2UuUkVGVU5EU19BUElfUk9PVH0vJHtyZWZlcmVuY2V9L3N0YXR1cy1oaXN0b3J5YCwgXG4gIHtcbiAgd2l0aENyZWRlbnRpYWxzOiB0cnVlXG59KVxuICAucGlwZShcbiAgICBjYXRjaEVycm9yKHRoaXMuZXJyb3JIYW5kbGVyU2VydmljZS5oYW5kbGVFcnJvcilcbiAgKTtcbn1cblxuZ2V0UmVmdW5kU3RhdHVzTGlzdChjY2RDYXNlTnVtYmVyOnN0cmluZyk6IE9ic2VydmFibGU8SVJlZnVuZExpc3RbXT4ge1xuICByZXR1cm4gdGhpcy5odHRwLmdldDxJUmVmdW5kTGlzdFtdPihgJHt0aGlzLnBheW1lbnRMaWJTZXJ2aWNlLlJFRlVORFNfQVBJX1JPT1R9P2NjZENhc2VOdW1iZXI9JHtjY2RDYXNlTnVtYmVyfWAsIHtcbiAgd2l0aENyZWRlbnRpYWxzOiB0cnVlXG59KVxuICAucGlwZShcbiAgICBjYXRjaEVycm9yKHRoaXMuZXJyb3JIYW5kbGVyU2VydmljZS5oYW5kbGVFcnJvcilcbiAgKTtcbn1cblxuZ2V0VXNlckRldGFpbHMoKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KGAke3RoaXMucGF5bWVudExpYlNlcnZpY2UuUkVGVU5EU19BUElfUk9PVH0vZ2V0LXVzZXItZGV0YWlsc2AsIHtcbiAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWVcbiAgfSlcbiAgICAucGlwZShcbiAgICAgIGNhdGNoRXJyb3IodGhpcy5lcnJvckhhbmRsZXJTZXJ2aWNlLmhhbmRsZUVycm9yKVxuICAgICk7XG59XG4gXG5wb3N0SXNzdWVSZWZ1bmQoYm9keTogSXNzdWVSZWZ1bmRSZXF1ZXN0KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgcmV0dXJuIHRoaXMuaHR0cHMucG9zdChgJHt0aGlzLnBheW1lbnRMaWJTZXJ2aWNlLlJFRlVORFNfQVBJX1JPT1R9L3JlZnVuZGAsIGJvZHkpLnBpcGUoXG4gICAgY2F0Y2hFcnJvcih0aGlzLmVycm9ySGFuZGxlclNlcnZpY2UuaGFuZGxlRXJyb3IpXG4gICk7XG59XG5cbnBhdGNoUmVzdWJtaXRSZWZ1bmQoYm9keTogSVJlc3VibWl0UmVmdW5kUmVxdWVzdCwgcmVmdW5kX3JlZmVyZW5jZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgLy8gY29uc3Qgb3B0cyA9IHRoaXMuYWRkSGVhZGVycyh7fSk7XG4gIHJldHVybiB0aGlzLmh0dHBzLnBhdGNoKGAke3RoaXMucGF5bWVudExpYlNlcnZpY2UuUkVGVU5EU19BUElfUk9PVH0vcmVzdWJtaXQvJHtyZWZ1bmRfcmVmZXJlbmNlfWAsIGJvZHkpLnBpcGUoXG4gICAgY2F0Y2hFcnJvcih0aGlzLmVycm9ySGFuZGxlclNlcnZpY2UuaGFuZGxlRXJyb3IpXG4gICk7XG59XG5cbmFkZEhlYWRlcnMob3B0aW9uczogYW55KTogYW55IHtcbiAgY29uc3QgY3NyZlRva2VuID0gdGhpcy5tZXRhLmdldFRhZygnbmFtZT1jc3JmLXRva2VuJyk7XG4gIGNvbnN0IGhlYWRlcnMgPSB7fTtcbiAgaWYgKG9wdGlvbnMuaGVhZGVycykge1xuICAgIG9wdGlvbnMuaGVhZGVycy5mb3JFYWNoKGVsZW1lbnQgPT4ge1xuICAgICAgaGVhZGVyc1tlbGVtZW50XSA9IG9wdGlvbnMuaGVhZGVycy5nZXQoZWxlbWVudCk7XG4gICAgfSk7XG4gIH1cbiAgaGVhZGVyc1snWC1SZXF1ZXN0ZWQtV2l0aCddID0gJ1hNTEh0dHBSZXF1ZXN0JztcbiAgaWYgKGNzcmZUb2tlbi5jb250ZW50ID09PSBudWxsKSB7XG4gICAgaWYoIGRvY3VtZW50LmNvb2tpZS5zcGxpdCgnOycpLmZpbmQocm93ID0+IHJvdy5zdGFydHNXaXRoKCdYU1JGLVRPS0VOJykpICE9PSB1bmRlZmluZWQgKSB7XG4gICAgICBoZWFkZXJzWydDU1JGLVRva2VuJ10gPSBkb2N1bWVudC5jb29raWUuc3BsaXQoJzsnKS5maW5kKHJvdyA9PiByb3cuc3RhcnRzV2l0aCgnWFNSRi1UT0tFTicpKS5zcGxpdCgnPScpWzFdOyAgICAgXG4gICAgfSBlbHNlIHtcbiAgICAgIGhlYWRlcnNbJ0NTUkYtVG9rZW4nXSA9IGRvY3VtZW50LmNvb2tpZS5zcGxpdCgnOycpLmZpbmQocm93ID0+IHJvdy5zdGFydHNXaXRoKCcgWFNSRi1UT0tFTicpKS5zcGxpdCgnPScpWzFdO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBoZWFkZXJzWydDU1JGLVRva2VuJ10gPSBjc3JmVG9rZW4uY29udGVudDtcbiAgfVxuICBvcHRpb25zLmhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoaGVhZGVycyk7XG4gIG9wdGlvbnMucmVzcG9uc2VUeXBlID0gJ3RleHQnO1xuICByZXR1cm4gb3B0aW9ucztcbn1cbn1cbiJdfQ==