@xsolla/payment-client-core 0.2.16 → 0.2.18-1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (458) hide show
  1. package/{esm2020 → esm2022}/lib/core/combined-payment-methods/combined-payment-methods.service.mjs +5 -5
  2. package/{esm2020 → esm2022}/lib/core/countries-api/countries-api.service.mjs +5 -5
  3. package/{esm2020 → esm2022}/lib/core/country/country.service.mjs +5 -5
  4. package/{esm2020 → esm2022}/lib/core/credit-card/credit-card.service.mjs +4 -4
  5. package/esm2022/lib/core/device-finger-print/device-finger-print.service.mjs +67 -0
  6. package/{esm2020 → esm2022}/lib/core/edit-saved-methods/edit-saved-methods.service.mjs +5 -5
  7. package/esm2022/lib/core/encrypt-credit-card/encrypt-credit-card.service.mjs +72 -0
  8. package/esm2022/lib/core/errors-mapping/xps-response-errors-mapping.service.mjs +52 -0
  9. package/esm2022/lib/core/exceptions-handling/elk/elk-logger.service.mjs +120 -0
  10. package/esm2022/lib/core/exceptions-handling/errors/http-error.class.mjs +40 -0
  11. package/esm2022/lib/core/exceptions-handling/errors/tagged-error.class.mjs +16 -0
  12. package/{esm2020 → esm2022}/lib/core/exceptions-handling/http-interceptor/http-exceptions.interceptor.mjs +5 -5
  13. package/esm2022/lib/core/http/secure-api/secure-api.service.mjs +55 -0
  14. package/{esm2020 → esm2022}/lib/core/legal/disclaimer.service.mjs +4 -4
  15. package/{esm2020 → esm2022}/lib/core/legal/legal.service.mjs +5 -5
  16. package/esm2022/lib/core/legal/refund-policy.service.mjs +30 -0
  17. package/esm2022/lib/core/legal/secure-connection.service.mjs +31 -0
  18. package/{esm2020 → esm2022}/lib/core/payment/actions/check-status/check-status.action.class.mjs +4 -4
  19. package/esm2022/lib/core/payment/actions/next-action.service.mjs +61 -0
  20. package/esm2022/lib/core/payment/actions/redirect/redirect.action.class.mjs +60 -0
  21. package/{esm2020 → esm2022}/lib/core/payment/actions/show-errors/show-errors.action.class.mjs +4 -4
  22. package/{esm2020 → esm2022}/lib/core/payment/actions/show-fields/show-fields.action.class.mjs +4 -4
  23. package/{esm2020 → esm2022}/lib/core/payment/actions/show-mobile-payment-screen/show-mobile-payment-screen.action.class.mjs +4 -4
  24. package/{esm2020 → esm2022}/lib/core/payment/actions/show-qr-code/show-qr-code.action.class.mjs +4 -4
  25. package/{esm2020 → esm2022}/lib/core/payment/actions/special-button/special-button.action.class.mjs +4 -4
  26. package/esm2022/lib/core/payment/actions/status-updated/status-updated.action.class.mjs +38 -0
  27. package/{esm2020 → esm2022}/lib/core/payment/actions/three-ds/three-ds.action.class.mjs +4 -4
  28. package/esm2022/lib/core/payment/config/config.service.mjs +37 -0
  29. package/{esm2020 → esm2022}/lib/core/payment/credit-card-state/credit-card-state.service.mjs +4 -4
  30. package/esm2022/lib/core/payment/finance-details/finance-details.service.mjs +38 -0
  31. package/{esm2020 → esm2022}/lib/core/payment/finance-details/status/status-finance-details-adapter.service.mjs +5 -5
  32. package/esm2022/lib/core/payment/finance-details/summary/summary-finance-details-adapter.service.mjs +264 -0
  33. package/esm2022/lib/core/payment/form/controls/control-config.service.mjs +46 -0
  34. package/{esm2020 → esm2022}/lib/core/payment/form/converters/birth-date/birth-date.converter.mjs +5 -5
  35. package/{esm2020 → esm2022}/lib/core/payment/form/converters/card-month/card-month.converter.mjs +5 -5
  36. package/{esm2020 → esm2022}/lib/core/payment/form/converters/card-number/card-number.converter.mjs +5 -5
  37. package/{esm2020 → esm2022}/lib/core/payment/form/converters/card-year/card-year.converter.mjs +5 -5
  38. package/{esm2020 → esm2022}/lib/core/payment/form/converters/cardholder-name/cardholder-name.converter.mjs +5 -5
  39. package/esm2022/lib/core/payment/form/converters/checkbox/checkbox.converter.mjs +33 -0
  40. package/esm2022/lib/core/payment/form/converters/converter.abstract.mjs +76 -0
  41. package/{esm2020 → esm2022}/lib/core/payment/form/converters/coupon/coupon.converter.mjs +5 -5
  42. package/{esm2020 → esm2022}/lib/core/payment/form/converters/cpf-name/cpf-name.converter.mjs +5 -5
  43. package/{esm2020 → esm2022}/lib/core/payment/form/converters/cpf-number/cpf-number.converter.mjs +5 -5
  44. package/esm2022/lib/core/payment/form/converters/cvv/cvv.converter.mjs +72 -0
  45. package/{esm2020 → esm2022}/lib/core/payment/form/converters/email/email.converter.mjs +5 -5
  46. package/{esm2020 → esm2022}/lib/core/payment/form/converters/phone.converter.mjs +5 -5
  47. package/{esm2020 → esm2022}/lib/core/payment/form/converters/pin/pin.converter.mjs +5 -5
  48. package/{esm2020 → esm2022}/lib/core/payment/form/converters/pricepoint/pricepoint.converter.mjs +5 -5
  49. package/{esm2020 → esm2022}/lib/core/payment/form/converters/radio-group/radio-group.converter.mjs +5 -5
  50. package/{esm2020 → esm2022}/lib/core/payment/form/converters/select/select.converter.mjs +5 -5
  51. package/esm2022/lib/core/payment/form/converters/street-number/street-number.converter.mjs +28 -0
  52. package/{esm2020 → esm2022}/lib/core/payment/form/converters/text/text.converter.mjs +5 -5
  53. package/esm2022/lib/core/payment/form/converters/zip/zip.converter.mjs +64 -0
  54. package/{esm2020 → esm2022}/lib/core/payment/form/form.module.mjs +33 -33
  55. package/esm2022/lib/core/payment/form/form.service.mjs +49 -0
  56. package/esm2022/lib/core/payment/form/validators/birth-date/birth-date.validator.mjs +37 -0
  57. package/esm2022/lib/core/payment/form/validators/card-month/card-month.validator.mjs +37 -0
  58. package/esm2022/lib/core/payment/form/validators/card-year/card-year.validator.mjs +34 -0
  59. package/esm2022/lib/core/payment/form/validators/convert.function.mjs +15 -0
  60. package/esm2022/lib/core/payment/form/validators/credit-card-length/credit-card-min-length.validator.mjs +32 -0
  61. package/esm2022/lib/core/payment/form/validators/luhn-formula-validator/luhn-formula.validator.mjs +40 -0
  62. package/{esm2020 → esm2022}/lib/core/payment/form/validators/validators.module.mjs +5 -5
  63. package/esm2022/lib/core/payment/form-messages/form-messages.service.mjs +26 -0
  64. package/esm2022/lib/core/payment/initialize/initialize.service.mjs +85 -0
  65. package/esm2022/lib/core/payment/initialize/response/initialize-response.class.mjs +43 -0
  66. package/{esm2020 → esm2022}/lib/core/payment/payment.interface.mjs +1 -1
  67. package/esm2022/lib/core/payment/payment.service.mjs +369 -0
  68. package/{esm2020 → esm2022}/lib/core/payment/status/check-status/check-status.service.mjs +6 -6
  69. package/{esm2020 → esm2022}/lib/core/payment/status/check-status/request/check-status-request.class.mjs +1 -1
  70. package/esm2022/lib/core/payment/status/listen-status/listen-status.service.mjs +124 -0
  71. package/{esm2020 → esm2022}/lib/core/payment/status/save-payment-method-status/api/saved-payment-account-changes.service.mjs +5 -5
  72. package/esm2022/lib/core/payment/status/save-payment-method-status/save-payment-method-status.service.mjs +121 -0
  73. package/esm2022/lib/core/payment/status/status-request/request/status-request.class.mjs +22 -0
  74. package/esm2022/lib/core/payment/status/status-request/response/status-response.class.mjs +98 -0
  75. package/esm2022/lib/core/payment/status/status-request/status-request.service.mjs +69 -0
  76. package/{esm2020 → esm2022}/lib/core/payment/status/status.interface.mjs +1 -1
  77. package/esm2022/lib/core/payment/status/status.service.mjs +75 -0
  78. package/esm2022/lib/core/payment/status/websocket-status/websocket-status.service.mjs +76 -0
  79. package/esm2022/lib/core/payment/submit/request/submit-request.class.mjs +24 -0
  80. package/esm2022/lib/core/payment/submit/response/submit-response.class.mjs +31 -0
  81. package/esm2022/lib/core/payment/submit/submit.service.mjs +78 -0
  82. package/esm2022/lib/core/payment/sync/request/sync-request.class.mjs +31 -0
  83. package/esm2022/lib/core/payment/sync/response/sync-response.class.mjs +17 -0
  84. package/esm2022/lib/core/payment/sync/sync.service.mjs +157 -0
  85. package/esm2022/lib/core/payment/three-ds/api/notify-dfp-status/notify-dfp-status.service.mjs +49 -0
  86. package/esm2022/lib/core/payment/three-ds/api/status-three-ds/status-three-ds.service.mjs +60 -0
  87. package/esm2022/lib/core/payment/three-ds/dfp-collect/dfp-collect.service.mjs +105 -0
  88. package/esm2022/lib/core/payment/three-ds/reinsurance-check/reinsurance-check.service.mjs +41 -0
  89. package/esm2022/lib/core/payment/three-ds/three-ds-20/three-ds20.service.mjs +109 -0
  90. package/esm2022/lib/core/payment/three-ds/three-ds.service.mjs +42 -0
  91. package/esm2022/lib/core/payment/xps-api/xps-api.service.mjs +85 -0
  92. package/esm2022/lib/core/payment/xps-api-part-request.abstract.mjs +8 -0
  93. package/{esm2020 → esm2022}/lib/core/payment/xps-response.interface.mjs +1 -1
  94. package/esm2022/lib/core/payment-methods/payment-methods.service.mjs +75 -0
  95. package/esm2022/lib/core/performance/performance.service.mjs +111 -0
  96. package/esm2022/lib/core/performance/xhr-action.service.mjs +114 -0
  97. package/esm2022/lib/core/saved-methods/saved-methods.service.mjs +54 -0
  98. package/esm2022/lib/core/sdk-payment-systems/apple-pay/apple-pay.service.mjs +268 -0
  99. package/esm2022/lib/core/sdk-payment-systems/google-pay/google-pay-button-color.type.mjs +2 -0
  100. package/esm2022/lib/core/sdk-payment-systems/google-pay/google-pay.service.mjs +177 -0
  101. package/esm2022/lib/core/sdk-payment-systems/payment-systems/payment-system-processing.service.mjs +84 -0
  102. package/esm2022/lib/core/session/session.service.mjs +57 -0
  103. package/esm2022/lib/core/settings/settings.service.mjs +92 -0
  104. package/esm2022/lib/core/url/url.service.mjs +34 -0
  105. package/esm2022/lib/core/user-agent/user-agent.service.mjs +211 -0
  106. package/esm2022/lib/core/user-balance/user-balance.service.mjs +53 -0
  107. package/esm2022/lib/core/user-behaviour-analytics/event-builder/event-builder.service.mjs +144 -0
  108. package/esm2022/lib/core/user-behaviour-analytics/user-behaviour-analytics.service.mjs +158 -0
  109. package/esm2022/lib/core/web-socket/centrifugo-web-socket.service.mjs +200 -0
  110. package/esm2022/lib/core/web-socket/nchan-web-socket.service.mjs +116 -0
  111. package/esm2022/lib/core/web-socket/web-socket.factory.mjs +28 -0
  112. package/esm2022/lib/core-library.module.mjs +92 -0
  113. package/esm2022/lib/core-library.service.mjs +152 -0
  114. package/{esm2020 → esm2022}/lib/shared/pipes/pipes.module.mjs +5 -5
  115. package/esm2022/lib/shared/pipes/unescape-html/unescape-html.pipe.mjs +23 -0
  116. package/esm2022/public-api.mjs +17 -0
  117. package/{fesm2020 → fesm2022}/xsolla-payment-client-core.mjs +480 -458
  118. package/fesm2022/xsolla-payment-client-core.mjs.map +1 -0
  119. package/lib/core/payment/payment.interface.d.ts +1 -0
  120. package/lib/core/payment/payment.service.d.ts +2 -0
  121. package/lib/core/payment/status/status-request/response/status-response.class.d.ts +1 -0
  122. package/lib/core/payment/status/status.interface.d.ts +1 -0
  123. package/lib/core/payment/xps-response.interface.d.ts +3 -0
  124. package/lib/core/sdk-payment-systems/google-pay/google-pay-button-color.type.d.ts +1 -0
  125. package/lib/core/sdk-payment-systems/google-pay/google-pay.service.d.ts +2 -1
  126. package/package.json +10 -16
  127. package/public-api.d.ts +1 -0
  128. package/xsolla-payment-client-core-0.2.18-1.tgz +0 -0
  129. package/esm2020/lib/core/device-finger-print/device-finger-print.service.mjs +0 -67
  130. package/esm2020/lib/core/encrypt-credit-card/encrypt-credit-card.service.mjs +0 -72
  131. package/esm2020/lib/core/errors-mapping/xps-response-errors-mapping.service.mjs +0 -52
  132. package/esm2020/lib/core/exceptions-handling/elk/elk-logger.service.mjs +0 -120
  133. package/esm2020/lib/core/exceptions-handling/errors/http-error.class.mjs +0 -40
  134. package/esm2020/lib/core/exceptions-handling/errors/tagged-error.class.mjs +0 -16
  135. package/esm2020/lib/core/http/secure-api/secure-api.service.mjs +0 -55
  136. package/esm2020/lib/core/legal/refund-policy.service.mjs +0 -30
  137. package/esm2020/lib/core/legal/secure-connection.service.mjs +0 -31
  138. package/esm2020/lib/core/payment/actions/next-action.service.mjs +0 -61
  139. package/esm2020/lib/core/payment/actions/redirect/redirect.action.class.mjs +0 -60
  140. package/esm2020/lib/core/payment/actions/status-updated/status-updated.action.class.mjs +0 -38
  141. package/esm2020/lib/core/payment/config/config.service.mjs +0 -37
  142. package/esm2020/lib/core/payment/finance-details/finance-details.service.mjs +0 -38
  143. package/esm2020/lib/core/payment/finance-details/summary/summary-finance-details-adapter.service.mjs +0 -264
  144. package/esm2020/lib/core/payment/form/controls/control-config.service.mjs +0 -46
  145. package/esm2020/lib/core/payment/form/converters/checkbox/checkbox.converter.mjs +0 -33
  146. package/esm2020/lib/core/payment/form/converters/converter.abstract.mjs +0 -76
  147. package/esm2020/lib/core/payment/form/converters/cvv/cvv.converter.mjs +0 -72
  148. package/esm2020/lib/core/payment/form/converters/street-number/street-number.converter.mjs +0 -28
  149. package/esm2020/lib/core/payment/form/converters/zip/zip.converter.mjs +0 -64
  150. package/esm2020/lib/core/payment/form/form.service.mjs +0 -49
  151. package/esm2020/lib/core/payment/form/validators/birth-date/birth-date.validator.mjs +0 -37
  152. package/esm2020/lib/core/payment/form/validators/card-month/card-month.validator.mjs +0 -37
  153. package/esm2020/lib/core/payment/form/validators/card-year/card-year.validator.mjs +0 -34
  154. package/esm2020/lib/core/payment/form/validators/convert.function.mjs +0 -15
  155. package/esm2020/lib/core/payment/form/validators/credit-card-length/credit-card-min-length.validator.mjs +0 -32
  156. package/esm2020/lib/core/payment/form/validators/luhn-formula-validator/luhn-formula.validator.mjs +0 -40
  157. package/esm2020/lib/core/payment/form-messages/form-messages.service.mjs +0 -26
  158. package/esm2020/lib/core/payment/initialize/initialize.service.mjs +0 -85
  159. package/esm2020/lib/core/payment/initialize/response/initialize-response.class.mjs +0 -43
  160. package/esm2020/lib/core/payment/payment.service.mjs +0 -351
  161. package/esm2020/lib/core/payment/status/listen-status/listen-status.service.mjs +0 -124
  162. package/esm2020/lib/core/payment/status/save-payment-method-status/save-payment-method-status.service.mjs +0 -121
  163. package/esm2020/lib/core/payment/status/status-request/request/status-request.class.mjs +0 -22
  164. package/esm2020/lib/core/payment/status/status-request/response/status-response.class.mjs +0 -96
  165. package/esm2020/lib/core/payment/status/status-request/status-request.service.mjs +0 -68
  166. package/esm2020/lib/core/payment/status/status.service.mjs +0 -75
  167. package/esm2020/lib/core/payment/status/websocket-status/websocket-status.service.mjs +0 -76
  168. package/esm2020/lib/core/payment/submit/request/submit-request.class.mjs +0 -24
  169. package/esm2020/lib/core/payment/submit/response/submit-response.class.mjs +0 -31
  170. package/esm2020/lib/core/payment/submit/submit.service.mjs +0 -78
  171. package/esm2020/lib/core/payment/sync/request/sync-request.class.mjs +0 -31
  172. package/esm2020/lib/core/payment/sync/response/sync-response.class.mjs +0 -17
  173. package/esm2020/lib/core/payment/sync/sync.service.mjs +0 -157
  174. package/esm2020/lib/core/payment/three-ds/api/notify-dfp-status/notify-dfp-status.service.mjs +0 -49
  175. package/esm2020/lib/core/payment/three-ds/api/status-three-ds/status-three-ds.service.mjs +0 -60
  176. package/esm2020/lib/core/payment/three-ds/dfp-collect/dfp-collect.service.mjs +0 -105
  177. package/esm2020/lib/core/payment/three-ds/reinsurance-check/reinsurance-check.service.mjs +0 -41
  178. package/esm2020/lib/core/payment/three-ds/three-ds-20/three-ds20.service.mjs +0 -109
  179. package/esm2020/lib/core/payment/three-ds/three-ds.service.mjs +0 -42
  180. package/esm2020/lib/core/payment/xps-api/xps-api.service.mjs +0 -85
  181. package/esm2020/lib/core/payment/xps-api-part-request.abstract.mjs +0 -8
  182. package/esm2020/lib/core/payment-methods/payment-methods.service.mjs +0 -75
  183. package/esm2020/lib/core/performance/performance.service.mjs +0 -111
  184. package/esm2020/lib/core/performance/xhr-action.service.mjs +0 -114
  185. package/esm2020/lib/core/saved-methods/saved-methods.service.mjs +0 -54
  186. package/esm2020/lib/core/sdk-payment-systems/apple-pay/apple-pay.service.mjs +0 -268
  187. package/esm2020/lib/core/sdk-payment-systems/google-pay/google-pay.service.mjs +0 -177
  188. package/esm2020/lib/core/sdk-payment-systems/payment-systems/payment-system-processing.service.mjs +0 -84
  189. package/esm2020/lib/core/session/session.service.mjs +0 -57
  190. package/esm2020/lib/core/settings/settings.service.mjs +0 -92
  191. package/esm2020/lib/core/url/url.service.mjs +0 -34
  192. package/esm2020/lib/core/user-agent/user-agent.service.mjs +0 -211
  193. package/esm2020/lib/core/user-balance/user-balance.service.mjs +0 -53
  194. package/esm2020/lib/core/user-behaviour-analytics/event-builder/event-builder.service.mjs +0 -144
  195. package/esm2020/lib/core/user-behaviour-analytics/user-behaviour-analytics.service.mjs +0 -158
  196. package/esm2020/lib/core/web-socket/centrifugo-web-socket.service.mjs +0 -200
  197. package/esm2020/lib/core/web-socket/nchan-web-socket.service.mjs +0 -116
  198. package/esm2020/lib/core/web-socket/web-socket.factory.mjs +0 -28
  199. package/esm2020/lib/core-library.module.mjs +0 -92
  200. package/esm2020/lib/core-library.service.mjs +0 -151
  201. package/esm2020/lib/shared/pipes/unescape-html/unescape-html.pipe.mjs +0 -23
  202. package/esm2020/public-api.mjs +0 -16
  203. package/fesm2015/xsolla-payment-client-core.mjs +0 -8113
  204. package/fesm2015/xsolla-payment-client-core.mjs.map +0 -1
  205. package/fesm2020/xsolla-payment-client-core.mjs.map +0 -1
  206. package/xsolla-payment-client-core-0.2.16.tgz +0 -0
  207. /package/{esm2020 → esm2022}/lib/core/agreementsGroup.const.mjs +0 -0
  208. /package/{esm2020 → esm2022}/lib/core/boolean-number.enum.mjs +0 -0
  209. /package/{esm2020 → esm2022}/lib/core/combined-payment-methods/combined-payment-methods.interface.mjs +0 -0
  210. /package/{esm2020 → esm2022}/lib/core/countries-api/country-response.interface.mjs +0 -0
  211. /package/{esm2020 → esm2022}/lib/core/countries-api/country.interface.mjs +0 -0
  212. /package/{esm2020 → esm2022}/lib/core/country/country-iso-code.enum.mjs +0 -0
  213. /package/{esm2020 → esm2022}/lib/core/credit-card/credit-card-settings.interface.mjs +0 -0
  214. /package/{esm2020 → esm2022}/lib/core/credit-card/credit-card-types.enum.mjs +0 -0
  215. /package/{esm2020 → esm2022}/lib/core/credit-card/credit-card.interface.mjs +0 -0
  216. /package/{esm2020 → esm2022}/lib/core/credit-card/credit-cards-map.const.mjs +0 -0
  217. /package/{esm2020 → esm2022}/lib/core/credit-card/default-mask.const.mjs +0 -0
  218. /package/{esm2020 → esm2022}/lib/core/credit-card/four-block-mask.const.mjs +0 -0
  219. /package/{esm2020 → esm2022}/lib/core/credit-card/ordered-cards-settings.const.mjs +0 -0
  220. /package/{esm2020 → esm2022}/lib/core/credit-card/types/american-express.mjs +0 -0
  221. /package/{esm2020 → esm2022}/lib/core/credit-card/types/aura.mjs +0 -0
  222. /package/{esm2020 → esm2022}/lib/core/credit-card/types/china-union-pay.mjs +0 -0
  223. /package/{esm2020 → esm2022}/lib/core/credit-card/types/dankort.mjs +0 -0
  224. /package/{esm2020 → esm2022}/lib/core/credit-card/types/default-card.mjs +0 -0
  225. /package/{esm2020 → esm2022}/lib/core/credit-card/types/diners-clubs.mjs +0 -0
  226. /package/{esm2020 → esm2022}/lib/core/credit-card/types/discover.mjs +0 -0
  227. /package/{esm2020 → esm2022}/lib/core/credit-card/types/elo.mjs +0 -0
  228. /package/{esm2020 → esm2022}/lib/core/credit-card/types/hipercard.mjs +0 -0
  229. /package/{esm2020 → esm2022}/lib/core/credit-card/types/jcb.mjs +0 -0
  230. /package/{esm2020 → esm2022}/lib/core/credit-card/types/maestro.mjs +0 -0
  231. /package/{esm2020 → esm2022}/lib/core/credit-card/types/mastercard.mjs +0 -0
  232. /package/{esm2020 → esm2022}/lib/core/credit-card/types/mir.mjs +0 -0
  233. /package/{esm2020 → esm2022}/lib/core/credit-card/types/naranja.mjs +0 -0
  234. /package/{esm2020 → esm2022}/lib/core/credit-card/types/postepay.mjs +0 -0
  235. /package/{esm2020 → esm2022}/lib/core/credit-card/types/visa.mjs +0 -0
  236. /package/{esm2020 → esm2022}/lib/core/deep-readonly.type.mjs +0 -0
  237. /package/{esm2020 → esm2022}/lib/core/device-finger-print/hash.type.mjs +0 -0
  238. /package/{esm2020 → esm2022}/lib/core/edit-saved-methods/delete-method-response.interface.mjs +0 -0
  239. /package/{esm2020 → esm2022}/lib/core/encrypt-credit-card/encrypted-card.interface.mjs +0 -0
  240. /package/{esm2020 → esm2022}/lib/core/encrypt-credit-card/open-card.interface.mjs +0 -0
  241. /package/{esm2020 → esm2022}/lib/core/errors-mapping/card-number-sanction-error-codes.const.mjs +0 -0
  242. /package/{esm2020 → esm2022}/lib/core/errors-mapping/field-special-errors-map.const.mjs +0 -0
  243. /package/{esm2020 → esm2022}/lib/core/exceptions-handling/elk/additional-info.interface.mjs +0 -0
  244. /package/{esm2020 → esm2022}/lib/core/exceptions-handling/elk/error-without-meta-fields.interface.mjs +0 -0
  245. /package/{esm2020 → esm2022}/lib/core/exceptions-handling/elk/log-message.interface.mjs +0 -0
  246. /package/{esm2020 → esm2022}/lib/core/exceptions-handling/errors/api-error.interface.mjs +0 -0
  247. /package/{esm2020 → esm2022}/lib/core/exceptions-handling/errors/app-error.class.mjs +0 -0
  248. /package/{esm2020 → esm2022}/lib/core/exceptions-handling/errors/elk-error-types.enum.mjs +0 -0
  249. /package/{esm2020 → esm2022}/lib/core/exceptions-handling/errors/encrypt-card-error.mjs +0 -0
  250. /package/{esm2020 → esm2022}/lib/core/exceptions-handling/errors/response-error.class.mjs +0 -0
  251. /package/{esm2020 → esm2022}/lib/core/exceptions-handling/errors/terminal-error.class.mjs +0 -0
  252. /package/{esm2020 → esm2022}/lib/core/exceptions-handling/errors/token-error.class.mjs +0 -0
  253. /package/{esm2020 → esm2022}/lib/core/exceptions-handling/errors/ws-error.class.mjs +0 -0
  254. /package/{esm2020 → esm2022}/lib/core/exceptions-handling/http-interceptor/http-error-data.interface.mjs +0 -0
  255. /package/{esm2020 → esm2022}/lib/core/exceptions-handling/http-interceptor/http-error-response-data.interface.mjs +0 -0
  256. /package/{esm2020 → esm2022}/lib/core/extended-window.interface.mjs +0 -0
  257. /package/{esm2020 → esm2022}/lib/core/http/secure-api/api-url.const.mjs +0 -0
  258. /package/{esm2020 → esm2022}/lib/core/http/secure-api/options.interface.mjs +0 -0
  259. /package/{esm2020 → esm2022}/lib/core/legal/legal.component.config.mjs +0 -0
  260. /package/{esm2020 → esm2022}/lib/core/payment/actions/action.interface.mjs +0 -0
  261. /package/{esm2020 → esm2022}/lib/core/payment/actions/check-status/check-status.action.type.mjs +0 -0
  262. /package/{esm2020 → esm2022}/lib/core/payment/actions/next-action.interface.mjs +0 -0
  263. /package/{esm2020 → esm2022}/lib/core/payment/actions/next-actions.mjs +0 -0
  264. /package/{esm2020 → esm2022}/lib/core/payment/actions/redirect/pay-station4-url.const.mjs +0 -0
  265. /package/{esm2020 → esm2022}/lib/core/payment/actions/redirect/ps4-pages/pages-payment-methods-id.const.mjs +0 -0
  266. /package/{esm2020 → esm2022}/lib/core/payment/actions/redirect/ps4-pages/pages-routes.const.mjs +0 -0
  267. /package/{esm2020 → esm2022}/lib/core/payment/actions/redirect/redirect.action.type.mjs +0 -0
  268. /package/{esm2020 → esm2022}/lib/core/payment/actions/show-errors/show-errors.action.type.mjs +0 -0
  269. /package/{esm2020 → esm2022}/lib/core/payment/actions/show-fields/show-fields.action.type.mjs +0 -0
  270. /package/{esm2020 → esm2022}/lib/core/payment/actions/show-mobile-payment-screen/show-mobile-payment-screen.action.type.mjs +0 -0
  271. /package/{esm2020 → esm2022}/lib/core/payment/actions/show-qr-code/show-qr-code.action.type.mjs +0 -0
  272. /package/{esm2020 → esm2022}/lib/core/payment/actions/special-button/special-button.action.type.mjs +0 -0
  273. /package/{esm2020 → esm2022}/lib/core/payment/actions/status-updated/status-updated.action.type.mjs +0 -0
  274. /package/{esm2020 → esm2022}/lib/core/payment/actions/three-ds/three-ds.action.type.mjs +0 -0
  275. /package/{esm2020 → esm2022}/lib/core/payment/checkout-item.interface.mjs +0 -0
  276. /package/{esm2020 → esm2022}/lib/core/payment/credit-card-payment-methods-id.variable.mjs +0 -0
  277. /package/{esm2020 → esm2022}/lib/core/payment/credit-card-state/credit-card-state.interface.mjs +0 -0
  278. /package/{esm2020 → esm2022}/lib/core/payment/emit-data.service.abstract.mjs +0 -0
  279. /package/{esm2020 → esm2022}/lib/core/payment/field-names.enum.mjs +0 -0
  280. /package/{esm2020 → esm2022}/lib/core/payment/field.interface.mjs +0 -0
  281. /package/{esm2020 → esm2022}/lib/core/payment/finance-details/cart-item.interface.mjs +0 -0
  282. /package/{esm2020 → esm2022}/lib/core/payment/finance-details/cart-line.interface.mjs +0 -0
  283. /package/{esm2020 → esm2022}/lib/core/payment/finance-details/cart-summary.interface.mjs +0 -0
  284. /package/{esm2020 → esm2022}/lib/core/payment/finance-details/finance-details.interface.mjs +0 -0
  285. /package/{esm2020 → esm2022}/lib/core/payment/finance-details/price.helpers.mjs +0 -0
  286. /package/{esm2020 → esm2022}/lib/core/payment/finance-details/price.interface.mjs +0 -0
  287. /package/{esm2020 → esm2022}/lib/core/payment/finance-details/status/field-with-amount-and-currency.interface.mjs +0 -0
  288. /package/{esm2020 → esm2022}/lib/core/payment/finance-details/status/fields-with-currency.mjs +0 -0
  289. /package/{esm2020 → esm2022}/lib/core/payment/finance-details/status/finance-info.interface.mjs +0 -0
  290. /package/{esm2020 → esm2022}/lib/core/payment/finance-details/summary/default-image-patterns.const.mjs +0 -0
  291. /package/{esm2020 → esm2022}/lib/core/payment/finance-details/summary/sales-tax-details-key.enum.mjs +0 -0
  292. /package/{esm2020 → esm2022}/lib/core/payment/finance-details/vat-details-key.enum.mjs +0 -0
  293. /package/{esm2020 → esm2022}/lib/core/payment/form/common-control-config.interface.mjs +0 -0
  294. /package/{esm2020 → esm2022}/lib/core/payment/form/control-status.interface.mjs +0 -0
  295. /package/{esm2020 → esm2022}/lib/core/payment/form/controls/card-number/card-number-control.config.mjs +0 -0
  296. /package/{esm2020 → esm2022}/lib/core/payment/form/controls/checkbox/checkbox-control.config.mjs +0 -0
  297. /package/{esm2020 → esm2022}/lib/core/payment/form/controls/control-config.mjs +0 -0
  298. /package/{esm2020 → esm2022}/lib/core/payment/form/controls/control-type.type.mjs +0 -0
  299. /package/{esm2020 → esm2022}/lib/core/payment/form/controls/coupon/coupon-control.config.mjs +0 -0
  300. /package/{esm2020 → esm2022}/lib/core/payment/form/controls/phone-control.config.mjs +0 -0
  301. /package/{esm2020 → esm2022}/lib/core/payment/form/controls/radio-control/radio-control.config.mjs +0 -0
  302. /package/{esm2020 → esm2022}/lib/core/payment/form/controls/radio-control/radio-option.interface.mjs +0 -0
  303. /package/{esm2020 → esm2022}/lib/core/payment/form/controls/search-select/search-select-option.interface.mjs +0 -0
  304. /package/{esm2020 → esm2022}/lib/core/payment/form/controls/search-select/select-control.config.mjs +0 -0
  305. /package/{esm2020 → esm2022}/lib/core/payment/form/controls/search-select/select-option.interface.mjs +0 -0
  306. /package/{esm2020 → esm2022}/lib/core/payment/form/controls/text-control.config.mjs +0 -0
  307. /package/{esm2020 → esm2022}/lib/core/payment/form/converters/converters-map.interface.mjs +0 -0
  308. /package/{esm2020 → esm2022}/lib/core/payment/form/converters/converters-map.mjs +0 -0
  309. /package/{esm2020 → esm2022}/lib/core/payment/form/converters/cpf-name/cpf-name-regex.variable.mjs +0 -0
  310. /package/{esm2020 → esm2022}/lib/core/payment/form/converters/cvv/cvv-form-state.interface.mjs +0 -0
  311. /package/{esm2020 → esm2022}/lib/core/payment/form/converters/street-number/street-number-from-state.interface.mjs +0 -0
  312. /package/{esm2020 → esm2022}/lib/core/payment/form/field-form-states.interface.mjs +0 -0
  313. /package/{esm2020 → esm2022}/lib/core/payment/form/field-status.interface.mjs +0 -0
  314. /package/{esm2020 → esm2022}/lib/core/payment/form/form-fields-status.interface.mjs +0 -0
  315. /package/{esm2020 → esm2022}/lib/core/payment/form/form-state.interface.mjs +0 -0
  316. /package/{esm2020 → esm2022}/lib/core/payment/form/input-event.enum.mjs +0 -0
  317. /package/{esm2020 → esm2022}/lib/core/payment/form/validators/async-validator-fn.type.mjs +0 -0
  318. /package/{esm2020 → esm2022}/lib/core/payment/form/validators/coupon/coupon-validator.mjs +0 -0
  319. /package/{esm2020 → esm2022}/lib/core/payment/form/validators/email/email-validator.mjs +0 -0
  320. /package/{esm2020 → esm2022}/lib/core/payment/form/validators/is-empty-input-value.function.mjs +0 -0
  321. /package/{esm2020 → esm2022}/lib/core/payment/form/validators/max-length-validator.mjs +0 -0
  322. /package/{esm2020 → esm2022}/lib/core/payment/form/validators/min-length-validator.mjs +0 -0
  323. /package/{esm2020 → esm2022}/lib/core/payment/form/validators/phone-validator.mjs +0 -0
  324. /package/{esm2020 → esm2022}/lib/core/payment/form/validators/required/required.validator.mjs +0 -0
  325. /package/{esm2020 → esm2022}/lib/core/payment/form/validators/restricted-value/restricted-value.validator.mjs +0 -0
  326. /package/{esm2020 → esm2022}/lib/core/payment/form/validators/validation-error.interface.mjs +0 -0
  327. /package/{esm2020 → esm2022}/lib/core/payment/form/validators/validation-errors.interface.mjs +0 -0
  328. /package/{esm2020 → esm2022}/lib/core/payment/form/validators/validator-fn.type.mjs +0 -0
  329. /package/{esm2020 → esm2022}/lib/core/payment/form-response.interface.mjs +0 -0
  330. /package/{esm2020 → esm2022}/lib/core/payment/initialize/initialize-request-params.interface.mjs +0 -0
  331. /package/{esm2020 → esm2022}/lib/core/payment/initialize/response/initialize-response.token.mjs +0 -0
  332. /package/{esm2020 → esm2022}/lib/core/payment/invoice.interface.mjs +0 -0
  333. /package/{esm2020 → esm2022}/lib/core/payment/payment-config.interface.mjs +0 -0
  334. /package/{esm2020 → esm2022}/lib/core/payment/payment-form.interface.mjs +0 -0
  335. /package/{esm2020 → esm2022}/lib/core/payment/status/check-status/request/check-status-request.token.mjs +0 -0
  336. /package/{esm2020 → esm2022}/lib/core/payment/status/check-status/response/check-status-response.class.mjs +0 -0
  337. /package/{esm2020 → esm2022}/lib/core/payment/status/check-status/response/check-status-response.token.mjs +0 -0
  338. /package/{esm2020 → esm2022}/lib/core/payment/status/finance-info-field.interface.mjs +0 -0
  339. /package/{esm2020 → esm2022}/lib/core/payment/status/line-item.interface.mjs +0 -0
  340. /package/{esm2020 → esm2022}/lib/core/payment/status/save-payment-method-status/api/saved-payment-account-changes.interface.mjs +0 -0
  341. /package/{esm2020 → esm2022}/lib/core/payment/status/save-payment-method-status/api/saved-payment-account.interface.mjs +0 -0
  342. /package/{esm2020 → esm2022}/lib/core/payment/status/save-payment-method-status/save-payment-method-status.enum.mjs +0 -0
  343. /package/{esm2020 → esm2022}/lib/core/payment/status/status-finance-info.interface.mjs +0 -0
  344. /package/{esm2020 → esm2022}/lib/core/payment/status/status-groups.mjs +0 -0
  345. /package/{esm2020 → esm2022}/lib/core/payment/status/status-order.interface.mjs +0 -0
  346. /package/{esm2020 → esm2022}/lib/core/payment/status/status-request/request/status-request.token.mjs +0 -0
  347. /package/{esm2020 → esm2022}/lib/core/payment/status/status-request/required-status-search-params.const.mjs +0 -0
  348. /package/{esm2020 → esm2022}/lib/core/payment/status/status-request/response/status-response.token.mjs +0 -0
  349. /package/{esm2020 → esm2022}/lib/core/payment/status/status-request/status-request-params.interface.mjs +0 -0
  350. /package/{esm2020 → esm2022}/lib/core/payment/status/status-request/status-search-param.enum.mjs +0 -0
  351. /package/{esm2020 → esm2022}/lib/core/payment/status/status-request/status-search-params.map.mjs +0 -0
  352. /package/{esm2020 → esm2022}/lib/core/payment/status/status-settings.interface.mjs +0 -0
  353. /package/{esm2020 → esm2022}/lib/core/payment/status/status-updated.interface.mjs +0 -0
  354. /package/{esm2020 → esm2022}/lib/core/payment/status/status.enum.mjs +0 -0
  355. /package/{esm2020 → esm2022}/lib/core/payment/status/title-class.enum.mjs +0 -0
  356. /package/{esm2020 → esm2022}/lib/core/payment/status/web-socket-client-type.enum.mjs +0 -0
  357. /package/{esm2020 → esm2022}/lib/core/payment/status/websocket-status/websocket-status.enum.mjs +0 -0
  358. /package/{esm2020 → esm2022}/lib/core/payment/submit/request/submit-request.token.mjs +0 -0
  359. /package/{esm2020 → esm2022}/lib/core/payment/submit/response/is-submit-response.function.mjs +0 -0
  360. /package/{esm2020 → esm2022}/lib/core/payment/submit/response/submit-response.token.mjs +0 -0
  361. /package/{esm2020 → esm2022}/lib/core/payment/sync/field-async-validation.interface.mjs +0 -0
  362. /package/{esm2020 → esm2022}/lib/core/payment/sync/field-sync-state.interface.mjs +0 -0
  363. /package/{esm2020 → esm2022}/lib/core/payment/sync/request/sync-request.token.mjs +0 -0
  364. /package/{esm2020 → esm2022}/lib/core/payment/sync/response/sync-response.token.mjs +0 -0
  365. /package/{esm2020 → esm2022}/lib/core/payment/three-ds/api/notify-dfp-status/request/notify-dfp-status-request.class.mjs +0 -0
  366. /package/{esm2020 → esm2022}/lib/core/payment/three-ds/api/notify-dfp-status/request/notify-dfp-status-request.token.mjs +0 -0
  367. /package/{esm2020 → esm2022}/lib/core/payment/three-ds/api/status-three-ds/request/status-three-ds-request.class.mjs +0 -0
  368. /package/{esm2020 → esm2022}/lib/core/payment/three-ds/api/status-three-ds/request/status-three-ds-request.token.mjs +0 -0
  369. /package/{esm2020 → esm2022}/lib/core/payment/three-ds/api/status-three-ds/response/status-three-ds-response.class.mjs +0 -0
  370. /package/{esm2020 → esm2022}/lib/core/payment/three-ds/api/status-three-ds/response/status-three-ds-response.token.mjs +0 -0
  371. /package/{esm2020 → esm2022}/lib/core/payment/three-ds/api/status-three-ds/status-three-ds-response.interface.mjs +0 -0
  372. /package/{esm2020 → esm2022}/lib/core/payment/three-ds/api/status-three-ds/status-types.enum.mjs +0 -0
  373. /package/{esm2020 → esm2022}/lib/core/payment/three-ds/api/status-three-ds/three-ds-checkout-form.interface.mjs +0 -0
  374. /package/{esm2020 → esm2022}/lib/core/payment/three-ds/reinsurance-check/timer.interface.mjs +0 -0
  375. /package/{esm2020 → esm2022}/lib/core/payment/three-ds/three-ds-20/status-update.interface.mjs +0 -0
  376. /package/{esm2020 → esm2022}/lib/core/payment/three-ds/three-ds-form.interface.mjs +0 -0
  377. /package/{esm2020 → esm2022}/lib/core/payment/three-ds/three-ds-status-websocket-types.enum.mjs +0 -0
  378. /package/{esm2020 → esm2022}/lib/core/payment/virtual-currency.interface.mjs +0 -0
  379. /package/{esm2020 → esm2022}/lib/core/payment/xps-api-part.abstract.mjs +0 -0
  380. /package/{esm2020 → esm2022}/lib/core/payment/xps-checkout.mjs +0 -0
  381. /package/{esm2020 → esm2022}/lib/core/payment/xps-comand.enum.mjs +0 -0
  382. /package/{esm2020 → esm2022}/lib/core/payment/xps-error.interface.mjs +0 -0
  383. /package/{esm2020 → esm2022}/lib/core/payment/xps-finance.interface.mjs +0 -0
  384. /package/{esm2020 → esm2022}/lib/core/payment/xps-message.interface.mjs +0 -0
  385. /package/{esm2020 → esm2022}/lib/core/payment/xps-purchase.interface.mjs +0 -0
  386. /package/{esm2020 → esm2022}/lib/core/payment/xps-request-params.interface.mjs +0 -0
  387. /package/{esm2020 → esm2022}/lib/core/payment/xps-request.interface.mjs +0 -0
  388. /package/{esm2020 → esm2022}/lib/core/payment/xps-response.error.mjs +0 -0
  389. /package/{esm2020 → esm2022}/lib/core/payment/xps-summary.interface.mjs +0 -0
  390. /package/{esm2020 → esm2022}/lib/core/payment-methods/payment-method-api.interface.mjs +0 -0
  391. /package/{esm2020 → esm2022}/lib/core/payment-methods/payment-method.interface.mjs +0 -0
  392. /package/{esm2020 → esm2022}/lib/core/payment-methods/payment-methods-api.interface.mjs +0 -0
  393. /package/{esm2020 → esm2022}/lib/core/payment-methods/payment-methods-request-params.interface.mjs +0 -0
  394. /package/{esm2020 → esm2022}/lib/core/payment-methods/payment-methods-response.class.mjs +0 -0
  395. /package/{esm2020 → esm2022}/lib/core/payment-methods/payment-methods-response.interface.mjs +0 -0
  396. /package/{esm2020 → esm2022}/lib/core/payment-methods/payment-methods-response.token.mjs +0 -0
  397. /package/{esm2020 → esm2022}/lib/core/performance/xhr-action.interface.mjs +0 -0
  398. /package/{esm2020 → esm2022}/lib/core/properties.type.mjs +0 -0
  399. /package/{esm2020 → esm2022}/lib/core/saved-methods/saved-method-api.interface.mjs +0 -0
  400. /package/{esm2020 → esm2022}/lib/core/saved-methods/saved-method.interface.mjs +0 -0
  401. /package/{esm2020 → esm2022}/lib/core/saved-methods/saved-methods-request-params.interface.mjs +0 -0
  402. /package/{esm2020 → esm2022}/lib/core/saved-methods/saved-methods-response.class.mjs +0 -0
  403. /package/{esm2020 → esm2022}/lib/core/saved-methods/saved-methods-response.interface.mjs +0 -0
  404. /package/{esm2020 → esm2022}/lib/core/saved-methods/saved-methods-response.token.mjs +0 -0
  405. /package/{esm2020 → esm2022}/lib/core/sdk-payment-systems/apple-pay/apple-pay-integration.type.mjs +0 -0
  406. /package/{esm2020 → esm2022}/lib/core/sdk-payment-systems/apple-pay/apple-pay-params.interface.mjs +0 -0
  407. /package/{esm2020 → esm2022}/lib/core/sdk-payment-systems/apple-pay/apple-pay.const.mjs +0 -0
  408. /package/{esm2020 → esm2022}/lib/core/sdk-payment-systems/apple-pay/apple-pay.errors.enum.mjs +0 -0
  409. /package/{esm2020 → esm2022}/lib/core/sdk-payment-systems/apple-pay/checkout-params.interface.mjs +0 -0
  410. /package/{esm2020 → esm2022}/lib/core/sdk-payment-systems/google-pay/google-pay-checkout.interface.mjs +0 -0
  411. /package/{esm2020 → esm2022}/lib/core/sdk-payment-systems/google-pay/google-pay-init-params.interface.mjs +0 -0
  412. /package/{esm2020 → esm2022}/lib/core/sdk-payment-systems/google-pay/google-pay-library.interface.mjs +0 -0
  413. /package/{esm2020 → esm2022}/lib/core/sdk-payment-systems/sdk-payment-methods.const.mjs +0 -0
  414. /package/{esm2020 → esm2022}/lib/core/sdk-payment-systems/sdk-payment-systems-initial-data.interface.mjs +0 -0
  415. /package/{esm2020 → esm2022}/lib/core/sdk-payment-systems/sdk-payment-systems.interface.mjs +0 -0
  416. /package/{esm2020 → esm2022}/lib/core/settings/auto-redirect-on-status.mjs +0 -0
  417. /package/{esm2020 → esm2022}/lib/core/settings/balance.interface.mjs +0 -0
  418. /package/{esm2020 → esm2022}/lib/core/settings/bonus.interface.mjs +0 -0
  419. /package/{esm2020 → esm2022}/lib/core/settings/configuration.interface.mjs +0 -0
  420. /package/{esm2020 → esm2022}/lib/core/settings/empty-utils-response.error.mjs +0 -0
  421. /package/{esm2020 → esm2022}/lib/core/settings/header-type.enum.mjs +0 -0
  422. /package/{esm2020 → esm2022}/lib/core/settings/offer.interface.mjs +0 -0
  423. /package/{esm2020 → esm2022}/lib/core/settings/project.interface.mjs +0 -0
  424. /package/{esm2020 → esm2022}/lib/core/settings/purchase.interface.mjs +0 -0
  425. /package/{esm2020 → esm2022}/lib/core/settings/settings-mode.enum.mjs +0 -0
  426. /package/{esm2020 → esm2022}/lib/core/settings/settings.interface.mjs +0 -0
  427. /package/{esm2020 → esm2022}/lib/core/settings/status-back-show.mjs +0 -0
  428. /package/{esm2020 → esm2022}/lib/core/settings/tracking-info.interface.mjs +0 -0
  429. /package/{esm2020 → esm2022}/lib/core/settings/user.interface.mjs +0 -0
  430. /package/{esm2020 → esm2022}/lib/core/settings/utils-response.interface.mjs +0 -0
  431. /package/{esm2020 → esm2022}/lib/core/type-guards/is-null.function.mjs +0 -0
  432. /package/{esm2020 → esm2022}/lib/core/type-guards/is-string.function.mjs +0 -0
  433. /package/{esm2020 → esm2022}/lib/core/type-guards/is-undefined.function.mjs +0 -0
  434. /package/{esm2020 → esm2022}/lib/core/url/search-params.interface.mjs +0 -0
  435. /package/{esm2020 → esm2022}/lib/core/user-agent/browserInfo.interface.mjs +0 -0
  436. /package/{esm2020 → esm2022}/lib/core/user-agent/browsers.mjs +0 -0
  437. /package/{esm2020 → esm2022}/lib/core/user-agent/device.enum.mjs +0 -0
  438. /package/{esm2020 → esm2022}/lib/core/user-agent/os.mjs +0 -0
  439. /package/{esm2020 → esm2022}/lib/core/user-agent/user-agent-data.interface.mjs +0 -0
  440. /package/{esm2020 → esm2022}/lib/core/user-balance/user-balance-api.interface.mjs +0 -0
  441. /package/{esm2020 → esm2022}/lib/core/user-balance/user-balance-request-params.interface.mjs +0 -0
  442. /package/{esm2020 → esm2022}/lib/core/user-balance/user-balance-response.class.mjs +0 -0
  443. /package/{esm2020 → esm2022}/lib/core/user-balance/user-balance-response.token.mjs +0 -0
  444. /package/{esm2020 → esm2022}/lib/core/user-behaviour-analytics/event-builder/event-parameter-types.mjs +0 -0
  445. /package/{esm2020 → esm2022}/lib/core/user-behaviour-analytics/event-builder/invoice.interface.mjs +0 -0
  446. /package/{esm2020 → esm2022}/lib/core/user-behaviour-analytics/event-builder/purchase.type.mjs +0 -0
  447. /package/{esm2020 → esm2022}/lib/core/user-behaviour-analytics/event-builder/user-behaviour-event.interface.mjs +0 -0
  448. /package/{esm2020 → esm2022}/lib/core/user-behaviour-analytics/one-time-analytics-events.const.mjs +0 -0
  449. /package/{esm2020 → esm2022}/lib/core/user-behaviour-analytics/user-behaviour-analytics.interface.mjs +0 -0
  450. /package/{esm2020 → esm2022}/lib/core/user-behaviour-analytics/user-behaviour-event/user-behaviour-event-categories.mjs +0 -0
  451. /package/{esm2020 → esm2022}/lib/core/user-behaviour-analytics/user-behaviour-event/user-behaviour-event-types.mjs +0 -0
  452. /package/{esm2020 → esm2022}/lib/core/user-behaviour-analytics/user-behaviour-event-name.enum.mjs +0 -0
  453. /package/{esm2020 → esm2022}/lib/core/user-behaviour-analytics/user-session-options.mjs +0 -0
  454. /package/{esm2020 → esm2022}/lib/core/web-socket/web-socket-client-type.enum.mjs +0 -0
  455. /package/{esm2020 → esm2022}/lib/core/web-socket/web-socket.interface.mjs +0 -0
  456. /package/{esm2020 → esm2022}/lib/core/window.token.mjs +0 -0
  457. /package/{esm2020 → esm2022}/lib/core/xps-boolean.enum.mjs +0 -0
  458. /package/{esm2020 → esm2022}/xsolla-payment-client-core.mjs +0 -0
@@ -1,351 +0,0 @@
1
- import { BehaviorSubject, Subject, filter, takeUntil, take, } from 'rxjs';
2
- import { Injectable } from '@angular/core';
3
- import { SubmitResponse } from './submit/response/submit-response.class';
4
- import { InitializeResponse } from './initialize/response/initialize-response.class';
5
- import { isSubmitResponse } from './submit/response/is-submit-response.function';
6
- import { InputEventName } from './form/input-event.enum';
7
- import { XpsCommand } from './xps-comand.enum';
8
- import { FieldNames } from './field-names.enum';
9
- import * as i0 from "@angular/core";
10
- import * as i1 from "./initialize/initialize.service";
11
- import * as i2 from "./submit/submit.service";
12
- import * as i3 from "./sync/sync.service";
13
- import * as i4 from "./form/form.service";
14
- import * as i5 from "./status/status.service";
15
- import * as i6 from "./finance-details/finance-details.service";
16
- import * as i7 from "./credit-card-state/credit-card-state.service";
17
- import * as i8 from "./actions/next-action.service";
18
- import * as i9 from "./form/controls/control-config.service";
19
- import * as i10 from "./three-ds/three-ds.service";
20
- import * as i11 from "./form-messages/form-messages.service";
21
- import * as i12 from "../settings/settings.service";
22
- import * as i13 from "../country/country.service";
23
- import * as i14 from "./actions/check-status/check-status.action.class";
24
- export class PaymentService {
25
- get formFieldsStatus$() {
26
- return this.formFieldsStatusSubject.asObservable().pipe(filter(Boolean));
27
- }
28
- get paymentForm$() {
29
- return this._paymentForm$.asObservable();
30
- }
31
- get formResponse$() {
32
- return this._formResponse$.asObservable();
33
- }
34
- get formResponseValue() {
35
- return this._formResponse$.getValue();
36
- }
37
- constructor(initializeService, submitService, syncService, formService, statusService, financeDetailsService, creditCardStateService, nextActionService, controlConfigService, threeDsService, formMessagesService, settingsService, countryService, checkStatusActionCreator) {
38
- this.initializeService = initializeService;
39
- this.submitService = submitService;
40
- this.syncService = syncService;
41
- this.formService = formService;
42
- this.statusService = statusService;
43
- this.financeDetailsService = financeDetailsService;
44
- this.creditCardStateService = creditCardStateService;
45
- this.nextActionService = nextActionService;
46
- this.controlConfigService = controlConfigService;
47
- this.threeDsService = threeDsService;
48
- this.formMessagesService = formMessagesService;
49
- this.settingsService = settingsService;
50
- this.countryService = countryService;
51
- this.checkStatusActionCreator = checkStatusActionCreator;
52
- this.form = null;
53
- this.data = null;
54
- this.financeDetails = null;
55
- this.focusFieldName = null;
56
- this.fields = [];
57
- this.destroy$ = new Subject();
58
- this.formDestroy$ = new Subject();
59
- this._paymentForm$ = new BehaviorSubject(null);
60
- this.formFieldsStatusSubject = new BehaviorSubject(null);
61
- this._formResponse$ = new BehaviorSubject(null);
62
- this.isSavingMethodMode = false;
63
- }
64
- async initialize(config) {
65
- this.destroy$ = new Subject();
66
- this.formDestroy$ = new Subject();
67
- this.listenFinanceDetails();
68
- this.config = config;
69
- this.data = await this.initializeService.request(config);
70
- this.emitFormResponse(this.data);
71
- this.fields = this.getFields();
72
- this.form = this.formService.createForm(this.fields);
73
- this.updatePidConfig();
74
- this.setupSyncService(this.form, this.fields);
75
- this.listenFormStatusChanges(this.form);
76
- this.emitFinanceDetails(this.data.paymentForm?.summary);
77
- this.emitFormFieldsStatus(this.form);
78
- this.emitFormMessages(this.data.paymentForm?.messages);
79
- return this.fields.filter((field) => field?.isVisible === "1" /* XpsBoolean.true */);
80
- }
81
- async submit() {
82
- if (!this.form) {
83
- throw new Error('form is empty!');
84
- }
85
- if (!this.form.valid) {
86
- this.form.markAllAsTouched();
87
- this.emitFormFieldsStatus(this.form);
88
- return;
89
- }
90
- this.isSavingMethodMode = this.fields.some(({ name, value }) => name === 'savePsAccountOnly' && value === "1" /* XpsBoolean.true */);
91
- const submitResponse = await this.submitService.request(this.fields, this.form);
92
- this.data = submitResponse;
93
- this.emitFormResponse(this.data);
94
- if (!this.isSavingMethodMode) {
95
- this.emitFinanceDetails(submitResponse.summary);
96
- }
97
- this.emitFormMessages(submitResponse.messages);
98
- // Handle 3ds flow
99
- if (submitResponse.currentCommand === XpsCommand.create &&
100
- submitResponse.parameters.threeDSForm) {
101
- this.runThreeDs();
102
- return;
103
- }
104
- this.fields = this.getFields();
105
- this.form = this.formService.createForm(this.fields);
106
- this.syncService.setup(this.form, this.fields);
107
- return this.nextActionService.getNextAction(submitResponse);
108
- }
109
- getFields() {
110
- if (this.data instanceof SubmitResponse) {
111
- return this.data.fields ?? [];
112
- }
113
- return this.data?.paymentForm?.fields ?? [];
114
- }
115
- getControlStatus(name) {
116
- const control = this.form?.get(name);
117
- if (!control) {
118
- return null;
119
- }
120
- return {
121
- name,
122
- errors: control.errors,
123
- status: control.status,
124
- };
125
- }
126
- getInitialDataForSdkPaymentSystems() {
127
- if (!isSubmitResponse(this.data)) {
128
- throw new Error('Should submit form first');
129
- }
130
- return {
131
- data: this.data.parameters.checkout.data.data,
132
- sandbox: this.settingsService.isSandboxMode()
133
- ? "1" /* XpsBoolean.true */
134
- : "0" /* XpsBoolean.false */,
135
- country: this.countryService.getCountry(),
136
- };
137
- }
138
- getQrCode() {
139
- if (!isSubmitResponse(this.data)) {
140
- throw new Error('Should submit form first');
141
- }
142
- return this.data.parameters.form.qr.title;
143
- }
144
- getPid() {
145
- if (this.data instanceof SubmitResponse) {
146
- return (Number(this.data.fields.find((field) => field.name === 'fix_pid')?.value) || null);
147
- }
148
- if (this.data instanceof InitializeResponse) {
149
- return (Number(this.data.paymentForm?.fields.find((field) => field.name === 'fix_pid')?.value) || null);
150
- }
151
- return null;
152
- }
153
- async validate(field) {
154
- const syncErrors = this.syncService.getSyncValidationErrors(field);
155
- if (syncErrors) {
156
- return Promise.resolve(syncErrors);
157
- }
158
- return this.syncService.validate(field);
159
- }
160
- runThreeDs() {
161
- if (!isSubmitResponse(this.data)) {
162
- throw new Error('Should submit form first');
163
- }
164
- this.threeDsService.checkThreeDs(this.data);
165
- }
166
- getFinanceDetails() {
167
- return this.financeDetails;
168
- }
169
- updateFieldFormState(fieldName, formState) {
170
- if (this.form) {
171
- this.formService.updateFieldFormState(this.form, this.fields, fieldName, formState);
172
- }
173
- }
174
- getFieldFormState(fieldName) {
175
- return this.formService.getFieldFormState(fieldName);
176
- }
177
- async getStatus() {
178
- if (!isSubmitResponse(this.data)) {
179
- throw new Error('Should submit form first');
180
- }
181
- const params = {
182
- pid: this.config.paymentMethodId,
183
- invoice: parseInt(this.data.fixInvoice ?? ''),
184
- signature: this.data.signature ?? '',
185
- locale: this.data.fields.find((field) => field.name === 'locale')?.value ??
186
- 'en',
187
- isSavePaymentAccount: this.isSavingMethodMode
188
- ? "1" /* XpsBoolean.true */
189
- : "0" /* XpsBoolean.false */,
190
- };
191
- return this.statusService.getStatus(params);
192
- }
193
- async listenFinalStatus() {
194
- const { invoice } = await this.getStatus();
195
- this.statusService
196
- .listenFinalStatus(invoice)
197
- .pipe(take(1))
198
- .subscribe(() => {
199
- this.nextActionService.emitFlowUpdates(this.checkStatusActionCreator.getActionData());
200
- });
201
- }
202
- getFieldConfig(field) {
203
- return this.controlConfigService.getConfig(field);
204
- }
205
- changeFieldValue(name, value) {
206
- const formControl = this.form?.get(name);
207
- formControl?.setValue(value);
208
- }
209
- changeFieldState(name, state) {
210
- const formControl = this.form?.get(name);
211
- if (!this.form || !formControl) {
212
- return;
213
- }
214
- switch (state) {
215
- case InputEventName.blur: {
216
- formControl.markAsTouched();
217
- this.focusFieldName = null;
218
- break;
219
- }
220
- case InputEventName.focus: {
221
- formControl.markAsUntouched();
222
- this.focusFieldName = name;
223
- break;
224
- }
225
- }
226
- this.emitFormFieldsStatus(this.form);
227
- }
228
- addExtraField(name, value) {
229
- const isHaveField = this.fields.find((field) => {
230
- return field.name === name;
231
- });
232
- if (isHaveField) {
233
- this.fields = this.fields.map((field) => {
234
- if (field.name === name) {
235
- field.value = value;
236
- }
237
- return field;
238
- });
239
- return;
240
- }
241
- const field = {
242
- name: name,
243
- value: value,
244
- title: '',
245
- type: 'text',
246
- example: '',
247
- isMandatory: "1" /* XpsBoolean.true */,
248
- isVisible: "0" /* XpsBoolean.false */,
249
- };
250
- this.fields.push(field);
251
- }
252
- destroy() {
253
- this.data = null;
254
- this.financeDetails = null;
255
- this.form = null;
256
- this.fields = [];
257
- this.formDestroy$.next();
258
- this.destroy$.next();
259
- this.threeDsService.stopChecking();
260
- }
261
- emitFinanceDetails(summary) {
262
- this.financeDetailsService.emitWithSummary(summary);
263
- }
264
- emitCreditCardState(idCardType) {
265
- this.creditCardStateService.emit({ idCardType });
266
- }
267
- emitFormFieldsStatus(form) {
268
- const formFieldsStatus = {};
269
- Object.keys(form.controls).forEach((name) => {
270
- const control = form.controls[name];
271
- formFieldsStatus[name] = {
272
- name: name,
273
- validationStatus: control.status,
274
- errors: control.errors,
275
- isFocused: this.focusFieldName === name,
276
- isTouched: control.touched,
277
- };
278
- });
279
- this.formFieldsStatusSubject.next(formFieldsStatus);
280
- }
281
- emitFormMessages(messages) {
282
- this.formMessagesService.emitOnResponse(messages);
283
- }
284
- setupSyncService(form, fields) {
285
- this.syncService.setup(form, fields);
286
- this.syncService.data$
287
- .pipe(takeUntil(this.destroy$))
288
- .subscribe((response) => {
289
- this.emitFinanceDetails(response.summary);
290
- this.emitFormMessages(response.messages);
291
- this.emitFormResponse(response);
292
- });
293
- this.syncService.fieldAsyncValidation$
294
- .pipe(takeUntil(this.destroy$))
295
- .subscribe((fieldAsyncValidation) => {
296
- switch (fieldAsyncValidation.field.name) {
297
- case FieldNames.cardNumber:
298
- this.emitCreditCardState(fieldAsyncValidation.response.parameters.idCardType);
299
- }
300
- });
301
- }
302
- listenFinanceDetails() {
303
- this.financeDetailsService.data$
304
- .pipe(takeUntil(this.destroy$))
305
- .subscribe((financeDetails) => (this.financeDetails = financeDetails));
306
- }
307
- listenFormStatusChanges(form) {
308
- form.statusChanges
309
- .pipe(takeUntil(this.formDestroy$))
310
- .subscribe((status) => {
311
- this.emitFormFieldsStatus(form);
312
- this._paymentForm$.next(status);
313
- });
314
- }
315
- /*
316
- * in case the form pid changes despite the one passed during initialization
317
- * */
318
- updatePidConfig() {
319
- const currentPid = this.getPid();
320
- if (currentPid) {
321
- this.config.paymentMethodId = currentPid;
322
- }
323
- }
324
- emitFormResponse(data) {
325
- let type;
326
- if (data instanceof InitializeResponse) {
327
- type = 'initialize';
328
- }
329
- else if (data instanceof SubmitResponse) {
330
- type = 'submit';
331
- }
332
- else {
333
- type = 'sync';
334
- }
335
- this._formResponse$.next({
336
- type,
337
- data,
338
- token: this.settingsService.token,
339
- isSandbox: this.settingsService.isSandboxMode(),
340
- });
341
- }
342
- }
343
- PaymentService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: PaymentService, deps: [{ token: i1.InitializeService }, { token: i2.SubmitService }, { token: i3.SyncService }, { token: i4.FormService }, { token: i5.StatusService }, { token: i6.FinanceDetailsService }, { token: i7.CreditCardStateService }, { token: i8.NextActionService }, { token: i9.ControlConfigService }, { token: i10.ThreeDsService }, { token: i11.FormMessagesService }, { token: i12.SettingsService }, { token: i13.CountryService }, { token: i14.CheckStatusActionCreator }], target: i0.ɵɵFactoryTarget.Injectable });
344
- PaymentService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: PaymentService, providedIn: 'root' });
345
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: PaymentService, decorators: [{
346
- type: Injectable,
347
- args: [{
348
- providedIn: 'root',
349
- }]
350
- }], ctorParameters: function () { return [{ type: i1.InitializeService }, { type: i2.SubmitService }, { type: i3.SyncService }, { type: i4.FormService }, { type: i5.StatusService }, { type: i6.FinanceDetailsService }, { type: i7.CreditCardStateService }, { type: i8.NextActionService }, { type: i9.ControlConfigService }, { type: i10.ThreeDsService }, { type: i11.FormMessagesService }, { type: i12.SettingsService }, { type: i13.CountryService }, { type: i14.CheckStatusActionCreator }]; } });
351
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bWVudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcGF5bWVudC1jbGllbnQtY29yZS9zcmMvbGliL2NvcmUvcGF5bWVudC9wYXltZW50LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGVBQWUsRUFFZixPQUFPLEVBQ1AsTUFBTSxFQUNOLFNBQVMsRUFDVCxJQUFJLEdBQ0wsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUV6RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQWVyRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUlqRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFHekQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7OztBQWNoRCxNQUFNLE9BQU8sY0FBYztJQUd6QixJQUFXLGlCQUFpQjtRQUMxQixPQUFPLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDM0UsQ0FBQztJQUVELElBQVcsWUFBWTtRQUNyQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDM0MsQ0FBQztJQUVELElBQVcsYUFBYTtRQUN0QixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDNUMsQ0FBQztJQUVELElBQVcsaUJBQWlCO1FBQzFCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBb0JELFlBQ21CLGlCQUFvQyxFQUNwQyxhQUE0QixFQUM1QixXQUF3QixFQUN4QixXQUF3QixFQUN4QixhQUE0QixFQUM1QixxQkFBNEMsRUFDNUMsc0JBQThDLEVBQzlDLGlCQUFvQyxFQUNwQyxvQkFBMEMsRUFDMUMsY0FBOEIsRUFDOUIsbUJBQXdDLEVBQ3hDLGVBQWdDLEVBQ2hDLGNBQThCLEVBQzlCLHdCQUFrRDtRQWJsRCxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ3BDLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBdUI7UUFDNUMsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF3QjtRQUM5QyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ3BDLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBc0I7UUFDMUMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDeEMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5Qiw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQTBCO1FBbEQ5RCxTQUFJLEdBQTRCLElBQUksQ0FBQztRQWtCcEMsU0FBSSxHQUErQyxJQUFJLENBQUM7UUFDeEQsbUJBQWMsR0FBMEIsSUFBSSxDQUFDO1FBQzdDLG1CQUFjLEdBQWtCLElBQUksQ0FBQztRQUNyQyxXQUFNLEdBQVksRUFBRSxDQUFDO1FBR3JCLGFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBQy9CLGlCQUFZLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUMxQixrQkFBYSxHQUM1QixJQUFJLGVBQWUsQ0FBMkIsSUFBSSxDQUFDLENBQUM7UUFDckMsNEJBQXVCLEdBQ3RDLElBQUksZUFBZSxDQUEwQixJQUFJLENBQUMsQ0FBQztRQUNwQyxtQkFBYyxHQUFHLElBQUksZUFBZSxDQUNuRCxJQUFJLENBQ0wsQ0FBQztRQUVNLHVCQUFrQixHQUFHLEtBQUssQ0FBQztJQWlCaEMsQ0FBQztJQUVHLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBcUI7UUFDM0MsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUV4QyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUU1QixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN6RCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRWpDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQy9CLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRXJELElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDOUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUV4QyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNyQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFFdkQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FDdkIsQ0FBQyxLQUFZLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxTQUFTLDhCQUFvQixDQUN2RCxDQUFDO0lBQ0osQ0FBQztJQUVNLEtBQUssQ0FBQyxNQUFNO1FBQ2pCLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ2QsTUFBTSxJQUFJLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1NBQ25DO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ3BCLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUM3QixJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3JDLE9BQU87U0FDUjtRQUVELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDeEMsQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQ2xCLElBQUksS0FBSyxtQkFBbUIsSUFBSSxLQUFLLDhCQUFvQixDQUM1RCxDQUFDO1FBQ0YsTUFBTSxjQUFjLEdBQUcsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FDckQsSUFBSSxDQUFDLE1BQU0sRUFDWCxJQUFJLENBQUMsSUFBSSxDQUNWLENBQUM7UUFFRixJQUFJLENBQUMsSUFBSSxHQUFHLGNBQWMsQ0FBQztRQUMzQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRWpDLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUU7WUFDNUIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUNqRDtRQUNELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFL0Msa0JBQWtCO1FBQ2xCLElBQ0UsY0FBYyxDQUFDLGNBQWMsS0FBSyxVQUFVLENBQUMsTUFBTTtZQUNuRCxjQUFjLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFDckM7WUFDQSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDbEIsT0FBTztTQUNSO1FBRUQsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDL0IsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFckQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFL0MsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFTSxTQUFTO1FBQ2QsSUFBSSxJQUFJLENBQUMsSUFBSSxZQUFZLGNBQWMsRUFBRTtZQUN2QyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQztTQUMvQjtRQUVELE9BQU8sSUFBSSxDQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsTUFBTSxJQUFJLEVBQUUsQ0FBQztJQUM5QyxDQUFDO0lBRU0sZ0JBQWdCLENBQUMsSUFBZ0I7UUFDdEMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDckMsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNaLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCxPQUFPO1lBQ0wsSUFBSTtZQUNKLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTTtZQUN0QixNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU07U0FDdkIsQ0FBQztJQUNKLENBQUM7SUFFTSxrQ0FBa0M7UUFDdkMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNoQyxNQUFNLElBQUksS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUM7U0FDN0M7UUFFRCxPQUFPO1lBQ0wsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSTtZQUM3QyxPQUFPLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLEVBQUU7Z0JBQzNDLENBQUM7Z0JBQ0QsQ0FBQywyQkFBaUI7WUFDcEIsT0FBTyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxFQUFFO1NBQzFDLENBQUM7SUFDSixDQUFDO0lBRU0sU0FBUztRQUNkLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDaEMsTUFBTSxJQUFJLEtBQUssQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1NBQzdDO1FBRUQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQztJQUM1QyxDQUFDO0lBRU0sTUFBTTtRQUNYLElBQUksSUFBSSxDQUFDLElBQUksWUFBWSxjQUFjLEVBQUU7WUFDdkMsT0FBTyxDQUNMLE1BQU0sQ0FDSixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDLEVBQUUsS0FBSyxDQUNsRSxJQUFJLElBQUksQ0FDVixDQUFDO1NBQ0g7UUFFRCxJQUFJLElBQUksQ0FBQyxJQUFJLFlBQVksa0JBQWtCLEVBQUU7WUFDM0MsT0FBTyxDQUNMLE1BQU0sQ0FDSixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUNoQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxTQUFTLENBQ3BDLEVBQUUsS0FBSyxDQUNULElBQUksSUFBSSxDQUNWLENBQUM7U0FDSDtRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVNLEtBQUssQ0FBQyxRQUFRLENBQUMsS0FBWTtRQUNoQyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLHVCQUF1QixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRW5FLElBQUksVUFBVSxFQUFFO1lBQ2QsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQ3BDO1FBRUQsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRU0sVUFBVTtRQUNmLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDaEMsTUFBTSxJQUFJLEtBQUssQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1NBQzdDO1FBRUQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFTSxpQkFBaUI7UUFDdEIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQzdCLENBQUM7SUFFTSxvQkFBb0IsQ0FBQyxTQUFpQixFQUFFLFNBQW9CO1FBQ2pFLElBQUksSUFBSSxDQUFDLElBQUksRUFBRTtZQUNiLElBQUksQ0FBQyxXQUFXLENBQUMsb0JBQW9CLENBQ25DLElBQUksQ0FBQyxJQUFJLEVBQ1QsSUFBSSxDQUFDLE1BQU0sRUFDWCxTQUFTLEVBQ1QsU0FBUyxDQUNWLENBQUM7U0FDSDtJQUNILENBQUM7SUFFTSxpQkFBaUIsQ0FBQyxTQUFxQjtRQUM1QyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVNLEtBQUssQ0FBQyxTQUFTO1FBQ3BCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDaEMsTUFBTSxJQUFJLEtBQUssQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1NBQzdDO1FBRUQsTUFBTSxNQUFNLEdBQXdCO1lBQ2xDLEdBQUcsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLGVBQWU7WUFDaEMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsSUFBSSxFQUFFLENBQUM7WUFDN0MsU0FBUyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLEVBQUU7WUFDcEMsTUFBTSxFQUNKLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxRQUFRLENBQUMsRUFBRSxLQUFLO2dCQUNoRSxJQUFJO1lBQ04sb0JBQW9CLEVBQUUsSUFBSSxDQUFDLGtCQUFrQjtnQkFDM0MsQ0FBQztnQkFDRCxDQUFDLDJCQUFpQjtTQUNyQixDQUFDO1FBQ0YsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRU0sS0FBSyxDQUFDLGlCQUFpQjtRQUM1QixNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFFM0MsSUFBSSxDQUFDLGFBQWE7YUFDZixpQkFBaUIsQ0FBQyxPQUE0QixDQUFDO2FBQy9DLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDYixTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGVBQWUsQ0FDcEMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLGFBQWEsRUFBRSxDQUM5QyxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU0sY0FBYyxDQUFDLEtBQVk7UUFDaEMsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFTSxnQkFBZ0IsQ0FBQyxJQUFZLEVBQUUsS0FBYTtRQUNqRCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6QyxXQUFXLEVBQUUsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFTSxnQkFBZ0IsQ0FBQyxJQUFZLEVBQUUsS0FBcUI7UUFDekQsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFekMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDOUIsT0FBTztTQUNSO1FBRUQsUUFBUSxLQUFLLEVBQUU7WUFDYixLQUFLLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDeEIsV0FBVyxDQUFDLGFBQWEsRUFBRSxDQUFDO2dCQUM1QixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztnQkFDM0IsTUFBTTthQUNQO1lBQ0QsS0FBSyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3pCLFdBQVcsQ0FBQyxlQUFlLEVBQUUsQ0FBQztnQkFDOUIsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7Z0JBQzNCLE1BQU07YUFDUDtTQUNGO1FBRUQsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRU0sYUFBYSxDQUFDLElBQVksRUFBRSxLQUFhO1FBQzlDLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDN0MsT0FBTyxLQUFLLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQztRQUM3QixDQUFDLENBQUMsQ0FBQztRQUVILElBQUksV0FBVyxFQUFFO1lBQ2YsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO2dCQUN0QyxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssSUFBSSxFQUFFO29CQUN2QixLQUFLLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztpQkFDckI7Z0JBRUQsT0FBTyxLQUFLLENBQUM7WUFDZixDQUFDLENBQUMsQ0FBQztZQUNILE9BQU87U0FDUjtRQUVELE1BQU0sS0FBSyxHQUFHO1lBQ1osSUFBSSxFQUFFLElBQUk7WUFDVixLQUFLLEVBQUUsS0FBSztZQUNaLEtBQUssRUFBRSxFQUFFO1lBQ1QsSUFBSSxFQUFFLE1BQU07WUFDWixPQUFPLEVBQUUsRUFBRTtZQUNYLFdBQVcsMkJBQWlCO1lBQzVCLFNBQVMsNEJBQWtCO1NBQ25CLENBQUM7UUFFWCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRU0sT0FBTztRQUNaLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO1FBQzNCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUVyQixJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFFTyxrQkFBa0IsQ0FBQyxPQUFvQjtRQUM3QyxJQUFJLENBQUMscUJBQXFCLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFTyxtQkFBbUIsQ0FBQyxVQUFrQjtRQUM1QyxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRU8sb0JBQW9CLENBQUMsSUFBc0I7UUFDakQsTUFBTSxnQkFBZ0IsR0FBcUIsRUFBRSxDQUFDO1FBRTlDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQzFDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDcEMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEdBQUc7Z0JBQ3ZCLElBQUksRUFBRSxJQUFJO2dCQUNWLGdCQUFnQixFQUFFLE9BQU8sQ0FBQyxNQUFNO2dCQUNoQyxNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU07Z0JBQ3RCLFNBQVMsRUFBRSxJQUFJLENBQUMsY0FBYyxLQUFLLElBQUk7Z0JBQ3ZDLFNBQVMsRUFBRSxPQUFPLENBQUMsT0FBTzthQUMzQixDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVPLGdCQUFnQixDQUFDLFFBQXVCO1FBQzlDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVPLGdCQUFnQixDQUFDLElBQXNCLEVBQUUsTUFBZTtRQUM5RCxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDckMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLO2FBQ25CLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQzlCLFNBQVMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQ3RCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDMUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN6QyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbEMsQ0FBQyxDQUFDLENBQUM7UUFFTCxJQUFJLENBQUMsV0FBVyxDQUFDLHFCQUFxQjthQUNuQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUM5QixTQUFTLENBQUMsQ0FBQyxvQkFBb0IsRUFBRSxFQUFFO1lBQ2xDLFFBQVEsb0JBQW9CLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRTtnQkFDdkMsS0FBSyxVQUFVLENBQUMsVUFBVTtvQkFDeEIsSUFBSSxDQUFDLG1CQUFtQixDQUN0QixvQkFBb0IsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FDcEQsQ0FBQzthQUNMO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU8sb0JBQW9CO1FBQzFCLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLO2FBQzdCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQzlCLFNBQVMsQ0FBQyxDQUFDLGNBQWMsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQyxDQUFDLENBQUM7SUFDM0UsQ0FBQztJQUVPLHVCQUF1QixDQUFDLElBQXNCO1FBQ3BELElBQUksQ0FBQyxhQUFhO2FBQ2YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7YUFDbEMsU0FBUyxDQUFDLENBQUMsTUFBeUIsRUFBRSxFQUFFO1lBQ3ZDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNoQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNsQyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRDs7VUFFTTtJQUNFLGVBQWU7UUFDckIsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2pDLElBQUksVUFBVSxFQUFFO1lBQ2QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFlLEdBQUcsVUFBVSxDQUFDO1NBQzFDO0lBQ0gsQ0FBQztJQUVPLGdCQUFnQixDQUFDLElBQTBCO1FBQ2pELElBQUksSUFBMEIsQ0FBQztRQUMvQixJQUFJLElBQUksWUFBWSxrQkFBa0IsRUFBRTtZQUN0QyxJQUFJLEdBQUcsWUFBWSxDQUFDO1NBQ3JCO2FBQU0sSUFBSSxJQUFJLFlBQVksY0FBYyxFQUFFO1lBQ3pDLElBQUksR0FBRyxRQUFRLENBQUM7U0FDakI7YUFBTTtZQUNMLElBQUksR0FBRyxNQUFNLENBQUM7U0FDZjtRQUNELElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDO1lBQ3ZCLElBQUk7WUFDSixJQUFJO1lBQ0osS0FBSyxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSztZQUNqQyxTQUFTLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLEVBQUU7U0FDaEQsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7MkdBdGFVLGNBQWM7K0dBQWQsY0FBYyxjQUZiLE1BQU07MkZBRVAsY0FBYztrQkFIMUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCZWhhdmlvclN1YmplY3QsXG4gIE9ic2VydmFibGUsXG4gIFN1YmplY3QsXG4gIGZpbHRlcixcbiAgdGFrZVVudGlsLFxuICB0YWtlLFxufSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sU3RhdHVzLCBVbnR5cGVkRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU3VibWl0UmVzcG9uc2UgfSBmcm9tICcuL3N1Ym1pdC9yZXNwb25zZS9zdWJtaXQtcmVzcG9uc2UuY2xhc3MnO1xuaW1wb3J0IHsgRm9ybVNlcnZpY2UgfSBmcm9tICcuL2Zvcm0vZm9ybS5zZXJ2aWNlJztcbmltcG9ydCB7IEluaXRpYWxpemVSZXNwb25zZSB9IGZyb20gJy4vaW5pdGlhbGl6ZS9yZXNwb25zZS9pbml0aWFsaXplLXJlc3BvbnNlLmNsYXNzJztcbmltcG9ydCB7IEluaXRpYWxpemVTZXJ2aWNlIH0gZnJvbSAnLi9pbml0aWFsaXplL2luaXRpYWxpemUuc2VydmljZSc7XG5pbXBvcnQgeyBTdGF0dXMgfSBmcm9tICcuL3N0YXR1cy9zdGF0dXMuaW50ZXJmYWNlJztcbmltcG9ydCB7IFN1Ym1pdFNlcnZpY2UgfSBmcm9tICcuL3N1Ym1pdC9zdWJtaXQuc2VydmljZSc7XG5pbXBvcnQgeyBTeW5jU2VydmljZSB9IGZyb20gJy4vc3luYy9zeW5jLnNlcnZpY2UnO1xuaW1wb3J0IHsgU3RhdHVzU2VydmljZSB9IGZyb20gJy4vc3RhdHVzL3N0YXR1cy5zZXJ2aWNlJztcbmltcG9ydCB7IE5leHRBY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi9hY3Rpb25zL25leHQtYWN0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29udHJvbENvbmZpZyB9IGZyb20gJy4vZm9ybS9jb250cm9scy9jb250cm9sLWNvbmZpZyc7XG5pbXBvcnQgeyBDb250cm9sQ29uZmlnU2VydmljZSB9IGZyb20gJy4vZm9ybS9jb250cm9scy9jb250cm9sLWNvbmZpZy5zZXJ2aWNlJztcbmltcG9ydCB7IEZpbmFuY2VEZXRhaWxzIH0gZnJvbSAnLi9maW5hbmNlLWRldGFpbHMvZmluYW5jZS1kZXRhaWxzLmludGVyZmFjZSc7XG5pbXBvcnQgeyBGaW5hbmNlRGV0YWlsc1NlcnZpY2UgfSBmcm9tICcuL2ZpbmFuY2UtZGV0YWlscy9maW5hbmNlLWRldGFpbHMuc2VydmljZSc7XG5pbXBvcnQgeyBOZXh0QWN0aW9uIH0gZnJvbSAnLi9hY3Rpb25zL25leHQtYWN0aW9uLmludGVyZmFjZSc7XG5pbXBvcnQgeyBYcHNTdW1tYXJ5IH0gZnJvbSAnLi94cHMtc3VtbWFyeS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRmllbGQgfSBmcm9tICcuL2ZpZWxkLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQYXltZW50Q29uZmlnIH0gZnJvbSAnLi9wYXltZW50LWNvbmZpZy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgaXNTdWJtaXRSZXNwb25zZSB9IGZyb20gJy4vc3VibWl0L3Jlc3BvbnNlL2lzLXN1Ym1pdC1yZXNwb25zZS5mdW5jdGlvbic7XG5pbXBvcnQgeyBYcHNCb29sZWFuIH0gZnJvbSAnLi4veHBzLWJvb2xlYW4uZW51bSc7XG5pbXBvcnQgeyBTdGF0dXNSZXF1ZXN0UGFyYW1zIH0gZnJvbSAnLi9zdGF0dXMvc3RhdHVzLXJlcXVlc3Qvc3RhdHVzLXJlcXVlc3QtcGFyYW1zLmludGVyZmFjZSc7XG5pbXBvcnQgeyBWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSAnLi9mb3JtL3ZhbGlkYXRvcnMvdmFsaWRhdGlvbi1lcnJvcnMuaW50ZXJmYWNlJztcbmltcG9ydCB7IElucHV0RXZlbnROYW1lIH0gZnJvbSAnLi9mb3JtL2lucHV0LWV2ZW50LmVudW0nO1xuaW1wb3J0IHsgRm9ybUZpZWxkc1N0YXR1cyB9IGZyb20gJy4vZm9ybS9mb3JtLWZpZWxkcy1zdGF0dXMuaW50ZXJmYWNlJztcbmltcG9ydCB7IFRocmVlRHNTZXJ2aWNlIH0gZnJvbSAnLi90aHJlZS1kcy90aHJlZS1kcy5zZXJ2aWNlJztcbmltcG9ydCB7IFhwc0NvbW1hbmQgfSBmcm9tICcuL3hwcy1jb21hbmQuZW51bSc7XG5pbXBvcnQgeyBDcmVkaXRDYXJkU3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi9jcmVkaXQtY2FyZC1zdGF0ZS9jcmVkaXQtY2FyZC1zdGF0ZS5zZXJ2aWNlJztcbmltcG9ydCB7IEZpZWxkTmFtZXMgfSBmcm9tICcuL2ZpZWxkLW5hbWVzLmVudW0nO1xuaW1wb3J0IHsgRm9ybVN0YXRlIH0gZnJvbSAnLi9mb3JtL2Zvcm0tc3RhdGUuaW50ZXJmYWNlJztcbmltcG9ydCB7IEZvcm1NZXNzYWdlc1NlcnZpY2UgfSBmcm9tICcuL2Zvcm0tbWVzc2FnZXMvZm9ybS1tZXNzYWdlcy5zZXJ2aWNlJztcbmltcG9ydCB7IFhwc01lc3NhZ2UgfSBmcm9tICcuL3hwcy1tZXNzYWdlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBTZXR0aW5nc1NlcnZpY2UgfSBmcm9tICcuLi9zZXR0aW5ncy9zZXR0aW5ncy5zZXJ2aWNlJztcbmltcG9ydCB7IENvdW50cnlTZXJ2aWNlIH0gZnJvbSAnLi4vY291bnRyeS9jb3VudHJ5LnNlcnZpY2UnO1xuaW1wb3J0IHsgU2RrUGF5bWVudFN5c3RlbXNJbml0aWFsRGF0YSB9IGZyb20gJy4uL3Nkay1wYXltZW50LXN5c3RlbXMvc2RrLXBheW1lbnQtc3lzdGVtcy1pbml0aWFsLWRhdGEuaW50ZXJmYWNlJztcbmltcG9ydCB7IEZvcm1SZXNwb25zZSB9IGZyb20gJy4vZm9ybS1yZXNwb25zZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQ2hlY2tTdGF0dXNBY3Rpb25DcmVhdG9yIH0gZnJvbSAnLi9hY3Rpb25zL2NoZWNrLXN0YXR1cy9jaGVjay1zdGF0dXMuYWN0aW9uLmNsYXNzJztcbmltcG9ydCB7IENvbnRyb2xTdGF0dXMgfSBmcm9tICcuL2Zvcm0vY29udHJvbC1zdGF0dXMuaW50ZXJmYWNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFBheW1lbnRTZXJ2aWNlIHtcbiAgcHVibGljIGZvcm06IFVudHlwZWRGb3JtR3JvdXAgfCBudWxsID0gbnVsbDtcblxuICBwdWJsaWMgZ2V0IGZvcm1GaWVsZHNTdGF0dXMkKCk6IE9ic2VydmFibGU8Rm9ybUZpZWxkc1N0YXR1cz4ge1xuICAgIHJldHVybiB0aGlzLmZvcm1GaWVsZHNTdGF0dXNTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpLnBpcGUoZmlsdGVyKEJvb2xlYW4pKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcGF5bWVudEZvcm0kKCk6IE9ic2VydmFibGU8Rm9ybUNvbnRyb2xTdGF0dXMgfCBudWxsPiB7XG4gICAgcmV0dXJuIHRoaXMuX3BheW1lbnRGb3JtJC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZm9ybVJlc3BvbnNlJCgpOiBPYnNlcnZhYmxlPEZvcm1SZXNwb25zZSB8IG51bGw+IHtcbiAgICByZXR1cm4gdGhpcy5fZm9ybVJlc3BvbnNlJC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZm9ybVJlc3BvbnNlVmFsdWUoKTogRm9ybVJlc3BvbnNlIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX2Zvcm1SZXNwb25zZSQuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIHByaXZhdGUgZGF0YTogSW5pdGlhbGl6ZVJlc3BvbnNlIHwgU3VibWl0UmVzcG9uc2UgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBmaW5hbmNlRGV0YWlsczogRmluYW5jZURldGFpbHMgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBmb2N1c0ZpZWxkTmFtZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgZmllbGRzOiBGaWVsZFtdID0gW107XG4gIHByaXZhdGUgY29uZmlnITogUGF5bWVudENvbmZpZztcblxuICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHJpdmF0ZSBmb3JtRGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9wYXltZW50Rm9ybSQgPVxuICAgIG5ldyBCZWhhdmlvclN1YmplY3Q8Rm9ybUNvbnRyb2xTdGF0dXMgfCBudWxsPihudWxsKTtcbiAgcHJpdmF0ZSByZWFkb25seSBmb3JtRmllbGRzU3RhdHVzU3ViamVjdCA9XG4gICAgbmV3IEJlaGF2aW9yU3ViamVjdDxGb3JtRmllbGRzU3RhdHVzIHwgbnVsbD4obnVsbCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2Zvcm1SZXNwb25zZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEZvcm1SZXNwb25zZSB8IG51bGw+KFxuICAgIG51bGxcbiAgKTtcblxuICBwcml2YXRlIGlzU2F2aW5nTWV0aG9kTW9kZSA9IGZhbHNlO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGluaXRpYWxpemVTZXJ2aWNlOiBJbml0aWFsaXplU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHN1Ym1pdFNlcnZpY2U6IFN1Ym1pdFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBzeW5jU2VydmljZTogU3luY1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBmb3JtU2VydmljZTogRm9ybVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBzdGF0dXNTZXJ2aWNlOiBTdGF0dXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZmluYW5jZURldGFpbHNTZXJ2aWNlOiBGaW5hbmNlRGV0YWlsc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBjcmVkaXRDYXJkU3RhdGVTZXJ2aWNlOiBDcmVkaXRDYXJkU3RhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbmV4dEFjdGlvblNlcnZpY2U6IE5leHRBY3Rpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY29udHJvbENvbmZpZ1NlcnZpY2U6IENvbnRyb2xDb25maWdTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdGhyZWVEc1NlcnZpY2U6IFRocmVlRHNTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZm9ybU1lc3NhZ2VzU2VydmljZTogRm9ybU1lc3NhZ2VzU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHNldHRpbmdzU2VydmljZTogU2V0dGluZ3NTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY291bnRyeVNlcnZpY2U6IENvdW50cnlTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2hlY2tTdGF0dXNBY3Rpb25DcmVhdG9yOiBDaGVja1N0YXR1c0FjdGlvbkNyZWF0b3JcbiAgKSB7fVxuXG4gIHB1YmxpYyBhc3luYyBpbml0aWFsaXplKGNvbmZpZzogUGF5bWVudENvbmZpZyk6IFByb21pc2U8RmllbGRbXT4ge1xuICAgIHRoaXMuZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICAgIHRoaXMuZm9ybURlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIHRoaXMubGlzdGVuRmluYW5jZURldGFpbHMoKTtcblxuICAgIHRoaXMuY29uZmlnID0gY29uZmlnO1xuICAgIHRoaXMuZGF0YSA9IGF3YWl0IHRoaXMuaW5pdGlhbGl6ZVNlcnZpY2UucmVxdWVzdChjb25maWcpO1xuICAgIHRoaXMuZW1pdEZvcm1SZXNwb25zZSh0aGlzLmRhdGEpO1xuXG4gICAgdGhpcy5maWVsZHMgPSB0aGlzLmdldEZpZWxkcygpO1xuICAgIHRoaXMuZm9ybSA9IHRoaXMuZm9ybVNlcnZpY2UuY3JlYXRlRm9ybSh0aGlzLmZpZWxkcyk7XG5cbiAgICB0aGlzLnVwZGF0ZVBpZENvbmZpZygpO1xuICAgIHRoaXMuc2V0dXBTeW5jU2VydmljZSh0aGlzLmZvcm0sIHRoaXMuZmllbGRzKTtcbiAgICB0aGlzLmxpc3RlbkZvcm1TdGF0dXNDaGFuZ2VzKHRoaXMuZm9ybSk7XG5cbiAgICB0aGlzLmVtaXRGaW5hbmNlRGV0YWlscyh0aGlzLmRhdGEucGF5bWVudEZvcm0/LnN1bW1hcnkpO1xuICAgIHRoaXMuZW1pdEZvcm1GaWVsZHNTdGF0dXModGhpcy5mb3JtKTtcbiAgICB0aGlzLmVtaXRGb3JtTWVzc2FnZXModGhpcy5kYXRhLnBheW1lbnRGb3JtPy5tZXNzYWdlcyk7XG5cbiAgICByZXR1cm4gdGhpcy5maWVsZHMuZmlsdGVyKFxuICAgICAgKGZpZWxkOiBGaWVsZCkgPT4gZmllbGQ/LmlzVmlzaWJsZSA9PT0gWHBzQm9vbGVhbi50cnVlXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBzdWJtaXQoKTogUHJvbWlzZTxOZXh0QWN0aW9uIHwgbnVsbCB8IHZvaWQ+IHtcbiAgICBpZiAoIXRoaXMuZm9ybSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdmb3JtIGlzIGVtcHR5IScpO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5mb3JtLnZhbGlkKSB7XG4gICAgICB0aGlzLmZvcm0ubWFya0FsbEFzVG91Y2hlZCgpO1xuICAgICAgdGhpcy5lbWl0Rm9ybUZpZWxkc1N0YXR1cyh0aGlzLmZvcm0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuaXNTYXZpbmdNZXRob2RNb2RlID0gdGhpcy5maWVsZHMuc29tZShcbiAgICAgICh7IG5hbWUsIHZhbHVlIH0pID0+XG4gICAgICAgIG5hbWUgPT09ICdzYXZlUHNBY2NvdW50T25seScgJiYgdmFsdWUgPT09IFhwc0Jvb2xlYW4udHJ1ZVxuICAgICk7XG4gICAgY29uc3Qgc3VibWl0UmVzcG9uc2UgPSBhd2FpdCB0aGlzLnN1Ym1pdFNlcnZpY2UucmVxdWVzdChcbiAgICAgIHRoaXMuZmllbGRzLFxuICAgICAgdGhpcy5mb3JtXG4gICAgKTtcblxuICAgIHRoaXMuZGF0YSA9IHN1Ym1pdFJlc3BvbnNlO1xuICAgIHRoaXMuZW1pdEZvcm1SZXNwb25zZSh0aGlzLmRhdGEpO1xuXG4gICAgaWYgKCF0aGlzLmlzU2F2aW5nTWV0aG9kTW9kZSkge1xuICAgICAgdGhpcy5lbWl0RmluYW5jZURldGFpbHMoc3VibWl0UmVzcG9uc2Uuc3VtbWFyeSk7XG4gICAgfVxuICAgIHRoaXMuZW1pdEZvcm1NZXNzYWdlcyhzdWJtaXRSZXNwb25zZS5tZXNzYWdlcyk7XG5cbiAgICAvLyBIYW5kbGUgM2RzIGZsb3dcbiAgICBpZiAoXG4gICAgICBzdWJtaXRSZXNwb25zZS5jdXJyZW50Q29tbWFuZCA9PT0gWHBzQ29tbWFuZC5jcmVhdGUgJiZcbiAgICAgIHN1Ym1pdFJlc3BvbnNlLnBhcmFtZXRlcnMudGhyZWVEU0Zvcm1cbiAgICApIHtcbiAgICAgIHRoaXMucnVuVGhyZWVEcygpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuZmllbGRzID0gdGhpcy5nZXRGaWVsZHMoKTtcbiAgICB0aGlzLmZvcm0gPSB0aGlzLmZvcm1TZXJ2aWNlLmNyZWF0ZUZvcm0odGhpcy5maWVsZHMpO1xuXG4gICAgdGhpcy5zeW5jU2VydmljZS5zZXR1cCh0aGlzLmZvcm0sIHRoaXMuZmllbGRzKTtcblxuICAgIHJldHVybiB0aGlzLm5leHRBY3Rpb25TZXJ2aWNlLmdldE5leHRBY3Rpb24oc3VibWl0UmVzcG9uc2UpO1xuICB9XG5cbiAgcHVibGljIGdldEZpZWxkcygpOiBGaWVsZFtdIHtcbiAgICBpZiAodGhpcy5kYXRhIGluc3RhbmNlb2YgU3VibWl0UmVzcG9uc2UpIHtcbiAgICAgIHJldHVybiB0aGlzLmRhdGEuZmllbGRzID8/IFtdO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmRhdGE/LnBheW1lbnRGb3JtPy5maWVsZHMgPz8gW107XG4gIH1cblxuICBwdWJsaWMgZ2V0Q29udHJvbFN0YXR1cyhuYW1lOiBGaWVsZE5hbWVzKTogQ29udHJvbFN0YXR1cyB8IG51bGwge1xuICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmZvcm0/LmdldChuYW1lKTtcbiAgICBpZiAoIWNvbnRyb2wpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBuYW1lLFxuICAgICAgZXJyb3JzOiBjb250cm9sLmVycm9ycyxcbiAgICAgIHN0YXR1czogY29udHJvbC5zdGF0dXMsXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRJbml0aWFsRGF0YUZvclNka1BheW1lbnRTeXN0ZW1zKCk6IFNka1BheW1lbnRTeXN0ZW1zSW5pdGlhbERhdGEge1xuICAgIGlmICghaXNTdWJtaXRSZXNwb25zZSh0aGlzLmRhdGEpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Nob3VsZCBzdWJtaXQgZm9ybSBmaXJzdCcpO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBkYXRhOiB0aGlzLmRhdGEucGFyYW1ldGVycy5jaGVja291dC5kYXRhLmRhdGEsXG4gICAgICBzYW5kYm94OiB0aGlzLnNldHRpbmdzU2VydmljZS5pc1NhbmRib3hNb2RlKClcbiAgICAgICAgPyBYcHNCb29sZWFuLnRydWVcbiAgICAgICAgOiBYcHNCb29sZWFuLmZhbHNlLFxuICAgICAgY291bnRyeTogdGhpcy5jb3VudHJ5U2VydmljZS5nZXRDb3VudHJ5KCksXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRRckNvZGUoKTogc3RyaW5nIHtcbiAgICBpZiAoIWlzU3VibWl0UmVzcG9uc2UodGhpcy5kYXRhKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdTaG91bGQgc3VibWl0IGZvcm0gZmlyc3QnKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5kYXRhLnBhcmFtZXRlcnMuZm9ybS5xci50aXRsZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRQaWQoKTogbnVtYmVyIHwgbnVsbCB7XG4gICAgaWYgKHRoaXMuZGF0YSBpbnN0YW5jZW9mIFN1Ym1pdFJlc3BvbnNlKSB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICBOdW1iZXIoXG4gICAgICAgICAgdGhpcy5kYXRhLmZpZWxkcy5maW5kKChmaWVsZCkgPT4gZmllbGQubmFtZSA9PT0gJ2ZpeF9waWQnKT8udmFsdWVcbiAgICAgICAgKSB8fCBudWxsXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmRhdGEgaW5zdGFuY2VvZiBJbml0aWFsaXplUmVzcG9uc2UpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIE51bWJlcihcbiAgICAgICAgICB0aGlzLmRhdGEucGF5bWVudEZvcm0/LmZpZWxkcy5maW5kKFxuICAgICAgICAgICAgKGZpZWxkKSA9PiBmaWVsZC5uYW1lID09PSAnZml4X3BpZCdcbiAgICAgICAgICApPy52YWx1ZVxuICAgICAgICApIHx8IG51bGxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgdmFsaWRhdGUoZmllbGQ6IEZpZWxkKTogUHJvbWlzZTxWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbD4ge1xuICAgIGNvbnN0IHN5bmNFcnJvcnMgPSB0aGlzLnN5bmNTZXJ2aWNlLmdldFN5bmNWYWxpZGF0aW9uRXJyb3JzKGZpZWxkKTtcblxuICAgIGlmIChzeW5jRXJyb3JzKSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHN5bmNFcnJvcnMpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnN5bmNTZXJ2aWNlLnZhbGlkYXRlKGZpZWxkKTtcbiAgfVxuXG4gIHB1YmxpYyBydW5UaHJlZURzKCk6IHZvaWQge1xuICAgIGlmICghaXNTdWJtaXRSZXNwb25zZSh0aGlzLmRhdGEpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Nob3VsZCBzdWJtaXQgZm9ybSBmaXJzdCcpO1xuICAgIH1cblxuICAgIHRoaXMudGhyZWVEc1NlcnZpY2UuY2hlY2tUaHJlZURzKHRoaXMuZGF0YSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0RmluYW5jZURldGFpbHMoKTogRmluYW5jZURldGFpbHMgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5maW5hbmNlRGV0YWlscztcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVGaWVsZEZvcm1TdGF0ZShmaWVsZE5hbWU6IHN0cmluZywgZm9ybVN0YXRlOiBGb3JtU3RhdGUpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5mb3JtKSB7XG4gICAgICB0aGlzLmZvcm1TZXJ2aWNlLnVwZGF0ZUZpZWxkRm9ybVN0YXRlKFxuICAgICAgICB0aGlzLmZvcm0sXG4gICAgICAgIHRoaXMuZmllbGRzLFxuICAgICAgICBmaWVsZE5hbWUsXG4gICAgICAgIGZvcm1TdGF0ZVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0RmllbGRGb3JtU3RhdGUoZmllbGROYW1lOiBGaWVsZE5hbWVzKTogRm9ybVN0YXRlIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybVNlcnZpY2UuZ2V0RmllbGRGb3JtU3RhdGUoZmllbGROYW1lKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRTdGF0dXMoKTogUHJvbWlzZTxTdGF0dXM+IHtcbiAgICBpZiAoIWlzU3VibWl0UmVzcG9uc2UodGhpcy5kYXRhKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdTaG91bGQgc3VibWl0IGZvcm0gZmlyc3QnKTtcbiAgICB9XG5cbiAgICBjb25zdCBwYXJhbXM6IFN0YXR1c1JlcXVlc3RQYXJhbXMgPSB7XG4gICAgICBwaWQ6IHRoaXMuY29uZmlnLnBheW1lbnRNZXRob2RJZCxcbiAgICAgIGludm9pY2U6IHBhcnNlSW50KHRoaXMuZGF0YS5maXhJbnZvaWNlID8/ICcnKSxcbiAgICAgIHNpZ25hdHVyZTogdGhpcy5kYXRhLnNpZ25hdHVyZSA/PyAnJyxcbiAgICAgIGxvY2FsZTpcbiAgICAgICAgdGhpcy5kYXRhLmZpZWxkcy5maW5kKChmaWVsZCkgPT4gZmllbGQubmFtZSA9PT0gJ2xvY2FsZScpPy52YWx1ZSA/P1xuICAgICAgICAnZW4nLFxuICAgICAgaXNTYXZlUGF5bWVudEFjY291bnQ6IHRoaXMuaXNTYXZpbmdNZXRob2RNb2RlXG4gICAgICAgID8gWHBzQm9vbGVhbi50cnVlXG4gICAgICAgIDogWHBzQm9vbGVhbi5mYWxzZSxcbiAgICB9O1xuICAgIHJldHVybiB0aGlzLnN0YXR1c1NlcnZpY2UuZ2V0U3RhdHVzKHBhcmFtcyk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgbGlzdGVuRmluYWxTdGF0dXMoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgeyBpbnZvaWNlIH0gPSBhd2FpdCB0aGlzLmdldFN0YXR1cygpO1xuXG4gICAgdGhpcy5zdGF0dXNTZXJ2aWNlXG4gICAgICAubGlzdGVuRmluYWxTdGF0dXMoaW52b2ljZSBhcyB1bmtub3duIGFzIG51bWJlcilcbiAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5uZXh0QWN0aW9uU2VydmljZS5lbWl0Rmxvd1VwZGF0ZXMoXG4gICAgICAgICAgdGhpcy5jaGVja1N0YXR1c0FjdGlvbkNyZWF0b3IuZ2V0QWN0aW9uRGF0YSgpXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRGaWVsZENvbmZpZyhmaWVsZDogRmllbGQpOiBDb250cm9sQ29uZmlnIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuY29udHJvbENvbmZpZ1NlcnZpY2UuZ2V0Q29uZmlnKGZpZWxkKTtcbiAgfVxuXG4gIHB1YmxpYyBjaGFuZ2VGaWVsZFZhbHVlKG5hbWU6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGZvcm1Db250cm9sID0gdGhpcy5mb3JtPy5nZXQobmFtZSk7XG4gICAgZm9ybUNvbnRyb2w/LnNldFZhbHVlKHZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyBjaGFuZ2VGaWVsZFN0YXRlKG5hbWU6IHN0cmluZywgc3RhdGU6IElucHV0RXZlbnROYW1lKTogdm9pZCB7XG4gICAgY29uc3QgZm9ybUNvbnRyb2wgPSB0aGlzLmZvcm0/LmdldChuYW1lKTtcblxuICAgIGlmICghdGhpcy5mb3JtIHx8ICFmb3JtQ29udHJvbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHN3aXRjaCAoc3RhdGUpIHtcbiAgICAgIGNhc2UgSW5wdXRFdmVudE5hbWUuYmx1cjoge1xuICAgICAgICBmb3JtQ29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XG4gICAgICAgIHRoaXMuZm9jdXNGaWVsZE5hbWUgPSBudWxsO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgSW5wdXRFdmVudE5hbWUuZm9jdXM6IHtcbiAgICAgICAgZm9ybUNvbnRyb2wubWFya0FzVW50b3VjaGVkKCk7XG4gICAgICAgIHRoaXMuZm9jdXNGaWVsZE5hbWUgPSBuYW1lO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLmVtaXRGb3JtRmllbGRzU3RhdHVzKHRoaXMuZm9ybSk7XG4gIH1cblxuICBwdWJsaWMgYWRkRXh0cmFGaWVsZChuYW1lOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBpc0hhdmVGaWVsZCA9IHRoaXMuZmllbGRzLmZpbmQoKGZpZWxkKSA9PiB7XG4gICAgICByZXR1cm4gZmllbGQubmFtZSA9PT0gbmFtZTtcbiAgICB9KTtcblxuICAgIGlmIChpc0hhdmVGaWVsZCkge1xuICAgICAgdGhpcy5maWVsZHMgPSB0aGlzLmZpZWxkcy5tYXAoKGZpZWxkKSA9PiB7XG4gICAgICAgIGlmIChmaWVsZC5uYW1lID09PSBuYW1lKSB7XG4gICAgICAgICAgZmllbGQudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmaWVsZDtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGZpZWxkID0ge1xuICAgICAgbmFtZTogbmFtZSxcbiAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAgIHRpdGxlOiAnJyxcbiAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgIGV4YW1wbGU6ICcnLFxuICAgICAgaXNNYW5kYXRvcnk6IFhwc0Jvb2xlYW4udHJ1ZSxcbiAgICAgIGlzVmlzaWJsZTogWHBzQm9vbGVhbi5mYWxzZSxcbiAgICB9IGFzIEZpZWxkO1xuXG4gICAgdGhpcy5maWVsZHMucHVzaChmaWVsZCk7XG4gIH1cblxuICBwdWJsaWMgZGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRhdGEgPSBudWxsO1xuICAgIHRoaXMuZmluYW5jZURldGFpbHMgPSBudWxsO1xuICAgIHRoaXMuZm9ybSA9IG51bGw7XG4gICAgdGhpcy5maWVsZHMgPSBbXTtcbiAgICB0aGlzLmZvcm1EZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG5cbiAgICB0aGlzLnRocmVlRHNTZXJ2aWNlLnN0b3BDaGVja2luZygpO1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0RmluYW5jZURldGFpbHMoc3VtbWFyeT86IFhwc1N1bW1hcnkpOiB2b2lkIHtcbiAgICB0aGlzLmZpbmFuY2VEZXRhaWxzU2VydmljZS5lbWl0V2l0aFN1bW1hcnkoc3VtbWFyeSk7XG4gIH1cblxuICBwcml2YXRlIGVtaXRDcmVkaXRDYXJkU3RhdGUoaWRDYXJkVHlwZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5jcmVkaXRDYXJkU3RhdGVTZXJ2aWNlLmVtaXQoeyBpZENhcmRUeXBlIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0Rm9ybUZpZWxkc1N0YXR1cyhmb3JtOiBVbnR5cGVkRm9ybUdyb3VwKTogdm9pZCB7XG4gICAgY29uc3QgZm9ybUZpZWxkc1N0YXR1czogRm9ybUZpZWxkc1N0YXR1cyA9IHt9O1xuXG4gICAgT2JqZWN0LmtleXMoZm9ybS5jb250cm9scykuZm9yRWFjaCgobmFtZSkgPT4ge1xuICAgICAgY29uc3QgY29udHJvbCA9IGZvcm0uY29udHJvbHNbbmFtZV07XG4gICAgICBmb3JtRmllbGRzU3RhdHVzW25hbWVdID0ge1xuICAgICAgICBuYW1lOiBuYW1lLFxuICAgICAgICB2YWxpZGF0aW9uU3RhdHVzOiBjb250cm9sLnN0YXR1cyxcbiAgICAgICAgZXJyb3JzOiBjb250cm9sLmVycm9ycyxcbiAgICAgICAgaXNGb2N1c2VkOiB0aGlzLmZvY3VzRmllbGROYW1lID09PSBuYW1lLFxuICAgICAgICBpc1RvdWNoZWQ6IGNvbnRyb2wudG91Y2hlZCxcbiAgICAgIH07XG4gICAgfSk7XG5cbiAgICB0aGlzLmZvcm1GaWVsZHNTdGF0dXNTdWJqZWN0Lm5leHQoZm9ybUZpZWxkc1N0YXR1cyk7XG4gIH1cblxuICBwcml2YXRlIGVtaXRGb3JtTWVzc2FnZXMobWVzc2FnZXM/OiBYcHNNZXNzYWdlW10pOiB2b2lkIHtcbiAgICB0aGlzLmZvcm1NZXNzYWdlc1NlcnZpY2UuZW1pdE9uUmVzcG9uc2UobWVzc2FnZXMpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXR1cFN5bmNTZXJ2aWNlKGZvcm06IFVudHlwZWRGb3JtR3JvdXAsIGZpZWxkczogRmllbGRbXSk6IHZvaWQge1xuICAgIHRoaXMuc3luY1NlcnZpY2Uuc2V0dXAoZm9ybSwgZmllbGRzKTtcbiAgICB0aGlzLnN5bmNTZXJ2aWNlLmRhdGEkXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAuc3Vic2NyaWJlKChyZXNwb25zZSkgPT4ge1xuICAgICAgICB0aGlzLmVtaXRGaW5hbmNlRGV0YWlscyhyZXNwb25zZS5zdW1tYXJ5KTtcbiAgICAgICAgdGhpcy5lbWl0Rm9ybU1lc3NhZ2VzKHJlc3BvbnNlLm1lc3NhZ2VzKTtcbiAgICAgICAgdGhpcy5lbWl0Rm9ybVJlc3BvbnNlKHJlc3BvbnNlKTtcbiAgICAgIH0pO1xuXG4gICAgdGhpcy5zeW5jU2VydmljZS5maWVsZEFzeW5jVmFsaWRhdGlvbiRcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgIC5zdWJzY3JpYmUoKGZpZWxkQXN5bmNWYWxpZGF0aW9uKSA9PiB7XG4gICAgICAgIHN3aXRjaCAoZmllbGRBc3luY1ZhbGlkYXRpb24uZmllbGQubmFtZSkge1xuICAgICAgICAgIGNhc2UgRmllbGROYW1lcy5jYXJkTnVtYmVyOlxuICAgICAgICAgICAgdGhpcy5lbWl0Q3JlZGl0Q2FyZFN0YXRlKFxuICAgICAgICAgICAgICBmaWVsZEFzeW5jVmFsaWRhdGlvbi5yZXNwb25zZS5wYXJhbWV0ZXJzLmlkQ2FyZFR5cGVcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBsaXN0ZW5GaW5hbmNlRGV0YWlscygpOiB2b2lkIHtcbiAgICB0aGlzLmZpbmFuY2VEZXRhaWxzU2VydmljZS5kYXRhJFxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgLnN1YnNjcmliZSgoZmluYW5jZURldGFpbHMpID0+ICh0aGlzLmZpbmFuY2VEZXRhaWxzID0gZmluYW5jZURldGFpbHMpKTtcbiAgfVxuXG4gIHByaXZhdGUgbGlzdGVuRm9ybVN0YXR1c0NoYW5nZXMoZm9ybTogVW50eXBlZEZvcm1Hcm91cCk6IHZvaWQge1xuICAgIGZvcm0uc3RhdHVzQ2hhbmdlc1xuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZm9ybURlc3Ryb3kkKSlcbiAgICAgIC5zdWJzY3JpYmUoKHN0YXR1czogRm9ybUNvbnRyb2xTdGF0dXMpID0+IHtcbiAgICAgICAgdGhpcy5lbWl0Rm9ybUZpZWxkc1N0YXR1cyhmb3JtKTtcbiAgICAgICAgdGhpcy5fcGF5bWVudEZvcm0kLm5leHQoc3RhdHVzKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgLypcbiAgICogaW4gY2FzZSB0aGUgZm9ybSBwaWQgY2hhbmdlcyBkZXNwaXRlIHRoZSBvbmUgcGFzc2VkIGR1cmluZyBpbml0aWFsaXphdGlvblxuICAgKiAgKi9cbiAgcHJpdmF0ZSB1cGRhdGVQaWRDb25maWcoKTogdm9pZCB7XG4gICAgY29uc3QgY3VycmVudFBpZCA9IHRoaXMuZ2V0UGlkKCk7XG4gICAgaWYgKGN1cnJlbnRQaWQpIHtcbiAgICAgIHRoaXMuY29uZmlnLnBheW1lbnRNZXRob2RJZCA9IGN1cnJlbnRQaWQ7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBlbWl0Rm9ybVJlc3BvbnNlKGRhdGE6IEZvcm1SZXNwb25zZVsnZGF0YSddKTogdm9pZCB7XG4gICAgbGV0IHR5cGU6IEZvcm1SZXNwb25zZVsndHlwZSddO1xuICAgIGlmIChkYXRhIGluc3RhbmNlb2YgSW5pdGlhbGl6ZVJlc3BvbnNlKSB7XG4gICAgICB0eXBlID0gJ2luaXRpYWxpemUnO1xuICAgIH0gZWxzZSBpZiAoZGF0YSBpbnN0YW5jZW9mIFN1Ym1pdFJlc3BvbnNlKSB7XG4gICAgICB0eXBlID0gJ3N1Ym1pdCc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHR5cGUgPSAnc3luYyc7XG4gICAgfVxuICAgIHRoaXMuX2Zvcm1SZXNwb25zZSQubmV4dCh7XG4gICAgICB0eXBlLFxuICAgICAgZGF0YSxcbiAgICAgIHRva2VuOiB0aGlzLnNldHRpbmdzU2VydmljZS50b2tlbixcbiAgICAgIGlzU2FuZGJveDogdGhpcy5zZXR0aW5nc1NlcnZpY2UuaXNTYW5kYm94TW9kZSgpLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -1,124 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { filter, Subject, takeUntil } from 'rxjs';
3
- import { StatusEnum } from '../status.enum';
4
- import { UserBehaviourEventName } from '../../../user-behaviour-analytics/user-behaviour-event-name.enum';
5
- import { userBehaviourEventTypes } from '../../../user-behaviour-analytics/user-behaviour-event/user-behaviour-event-types';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "../status-request/status-request.service";
8
- import * as i2 from "../check-status/check-status.service";
9
- import * as i3 from "../websocket-status/websocket-status.service";
10
- import * as i4 from "../../../user-behaviour-analytics/user-behaviour-analytics.service";
11
- export class ListenStatusService {
12
- get websocketOpened$() {
13
- return this.websocketOpenedSubject.asObservable();
14
- }
15
- get statusUpdated$() {
16
- return this.statusUpdatedSubject.asObservable();
17
- }
18
- constructor(statusService, checkStatusService, websocketStatusService, userBehaviourAnalyticsService) {
19
- this.statusService = statusService;
20
- this.checkStatusService = checkStatusService;
21
- this.websocketStatusService = websocketStatusService;
22
- this.userBehaviourAnalyticsService = userBehaviourAnalyticsService;
23
- this.isListening = false;
24
- this.websocketOpenedSubject = new Subject();
25
- this.statusUpdatedSubject = new Subject();
26
- this.statusDoneSubject = new Subject();
27
- this.destroy$ = new Subject();
28
- }
29
- listen(invoice) {
30
- if (this.isListening) {
31
- this.stopListening();
32
- }
33
- this.destroy$ = new Subject();
34
- this.isListening = true;
35
- this.subscribeStatusUpdate(invoice);
36
- this.subscribeCheckStatusUpdate();
37
- this.subscribeWebsocketEvent();
38
- this.checkStatusService.setRequestParams(invoice);
39
- return this.statusDoneSubject.asObservable();
40
- }
41
- stopListening() {
42
- this.isListening = false;
43
- this.websocketStatusService.closeWebSocket();
44
- this.destroy$.next();
45
- this.destroy$.complete();
46
- }
47
- subscribeStatusUpdate(invoice) {
48
- this.statusService.response$
49
- .pipe(filter((statusResponse) => {
50
- return statusResponse?.status?.invoice === Number(invoice);
51
- }), takeUntil(this.destroy$))
52
- .subscribe((statusResponse) => {
53
- if (!statusResponse?.status) {
54
- return;
55
- }
56
- const statusSettings = {
57
- statusState: statusResponse.status.statusState,
58
- isCancelUser: statusResponse.status.isCancelUser,
59
- needWebSocket: statusResponse.status.needToCheck,
60
- backUrlSettings: statusResponse.status.backUrlSettings,
61
- autoRedirect: statusResponse.status.autoRedirect,
62
- webSocketUrl: statusResponse.status.webSocketUrl,
63
- webSocketChannelName: statusResponse.status.webSocketChannelName,
64
- webSocketClientType: statusResponse.status.webSocketClientType,
65
- };
66
- this.statusUpdatedSubject.next({
67
- statusResponse: statusResponse,
68
- statusSettings: statusSettings,
69
- });
70
- const isStatusError = statusSettings.statusState === StatusEnum.canceled ||
71
- statusSettings.statusState === StatusEnum.error ||
72
- statusSettings.isCancelUser;
73
- if (isStatusError) {
74
- this.userBehaviourAnalyticsService.send(UserBehaviourEventName.openStatusError, userBehaviourEventTypes.manual, {
75
- instanceId: statusResponse.status.pid,
76
- });
77
- }
78
- if (statusSettings.needWebSocket) {
79
- this.openWebsocket(statusSettings);
80
- return;
81
- }
82
- this.stopListening();
83
- this.statusDoneSubject.next(statusSettings);
84
- });
85
- }
86
- subscribeCheckStatusUpdate() {
87
- this.checkStatusService.response$
88
- .pipe(takeUntil(this.destroy$))
89
- .subscribe((checkStatusResponse) => {
90
- if (!checkStatusResponse?.status)
91
- return;
92
- if (checkStatusResponse.status === StatusEnum.done) {
93
- this.statusService.request();
94
- this.websocketStatusService.closeWebSocket();
95
- return;
96
- }
97
- if (checkStatusResponse.final === false) {
98
- this.websocketStatusService.startReinsuranceCheckTimeout();
99
- return;
100
- }
101
- });
102
- }
103
- subscribeWebsocketEvent() {
104
- this.websocketStatusService.needCheckStatus$
105
- .pipe(takeUntil(this.destroy$))
106
- .subscribe(() => this.checkStatusService.request());
107
- this.websocketStatusService.statusChanged$
108
- .pipe(takeUntil(this.destroy$))
109
- .subscribe(() => this.statusService.request());
110
- }
111
- openWebsocket(statusSettings) {
112
- void this.websocketStatusService.checkStatusWithWebSocket(statusSettings.webSocketUrl, statusSettings.webSocketChannelName, statusSettings.webSocketClientType);
113
- this.websocketOpenedSubject.next(statusSettings);
114
- }
115
- }
116
- ListenStatusService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ListenStatusService, deps: [{ token: i1.StatusRequestService }, { token: i2.CheckStatusService }, { token: i3.WebsocketStatusService }, { token: i4.UserBehaviourAnalyticsService }], target: i0.ɵɵFactoryTarget.Injectable });
117
- ListenStatusService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ListenStatusService, providedIn: 'root' });
118
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ListenStatusService, decorators: [{
119
- type: Injectable,
120
- args: [{
121
- providedIn: 'root',
122
- }]
123
- }], ctorParameters: function () { return [{ type: i1.StatusRequestService }, { type: i2.CheckStatusService }, { type: i3.WebsocketStatusService }, { type: i4.UserBehaviourAnalyticsService }]; } });
124
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdGVuLXN0YXR1cy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcGF5bWVudC1jbGllbnQtY29yZS9zcmMvbGliL2NvcmUvcGF5bWVudC9zdGF0dXMvbGlzdGVuLXN0YXR1cy9saXN0ZW4tc3RhdHVzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsTUFBTSxFQUFjLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFLOUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSzVDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGtFQUFrRSxDQUFDO0FBQzFHLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG1GQUFtRixDQUFDOzs7Ozs7QUFLNUgsTUFBTSxPQUFPLG1CQUFtQjtJQVE5QixJQUFXLGdCQUFnQjtRQUN6QixPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNwRCxDQUFDO0lBRUQsSUFBVyxjQUFjO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ2xELENBQUM7SUFFRCxZQUNtQixhQUFtQyxFQUNuQyxrQkFBc0MsRUFDdEMsc0JBQThDLEVBQzlDLDZCQUE0RDtRQUg1RCxrQkFBYSxHQUFiLGFBQWEsQ0FBc0I7UUFDbkMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUN0QywyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBQzlDLGtDQUE2QixHQUE3Qiw2QkFBNkIsQ0FBK0I7UUFuQnhFLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBRVYsMkJBQXNCLEdBQUcsSUFBSSxPQUFPLEVBQWtCLENBQUM7UUFDdkQseUJBQW9CLEdBQUcsSUFB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QUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVPLGFBQWEsQ0FBQyxjQUE4QjtRQUNsRCxLQUFLLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyx3QkFBd0IsQ0FDdkQsY0FBYyxDQUFDLFlBQVksRUFDM0IsY0FBYyxDQUFDLG9CQUFvQixFQUNuQyxjQUFjLENBQUMsbUJBQW1CLENBQ25DLENBQUM7UUFDRixJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ25ELENBQUM7O2dIQXpJVSxtQkFBbUI7b0hBQW5CLG1CQUFtQixjQUZsQixNQUFNOzJGQUVQLG1CQUFtQjtrQkFIL0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBmaWx0ZXIsIE9ic2VydmFibGUsIFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgU3RhdHVzUmVxdWVzdFNlcnZpY2UgfSBmcm9tICcuLi9zdGF0dXMtcmVxdWVzdC9zdGF0dXMtcmVxdWVzdC5zZXJ2aWNlJztcbmltcG9ydCB7IENoZWNrU3RhdHVzU2VydmljZSB9IGZyb20gJy4uL2NoZWNrLXN0YXR1cy9jaGVjay1zdGF0dXMuc2VydmljZSc7XG5pbXBvcnQgeyBXZWJzb2NrZXRTdGF0dXNTZXJ2aWNlIH0gZnJvbSAnLi4vd2Vic29ja2V0LXN0YXR1cy93ZWJzb2NrZXQtc3RhdHVzLnNlcnZpY2UnO1xuaW1wb3J0IHsgU3RhdHVzU2V0dGluZ3MgfSBmcm9tICcuLi9zdGF0dXMtc2V0dGluZ3MuaW50ZXJmYWNlJztcbmltcG9ydCB7IFN0YXR1c0VudW0gfSBmcm9tICcuLi9zdGF0dXMuZW51bSc7XG5pbXBvcnQgeyBTdGF0dXNVcGRhdGVkIH0gZnJvbSAnLi4vc3RhdHVzLXVwZGF0ZWQuaW50ZXJmYWNlJztcbmltcG9ydCB7IFN0YXR1c1Jlc3BvbnNlIH0gZnJvbSAnLi4vc3RhdHVzLXJlcXVlc3QvcmVzcG9uc2Uvc3RhdHVzLXJlc3BvbnNlLmNsYXNzJztcbmltcG9ydCB7IENoZWNrU3RhdHVzUmVzcG9uc2UgfSBmcm9tICcuLi9jaGVjay1zdGF0dXMvcmVzcG9uc2UvY2hlY2stc3RhdHVzLXJlc3BvbnNlLmNsYXNzJztcbmltcG9ydCB7IFVzZXJCZWhhdmlvdXJBbmFseXRpY3NTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vdXNlci1iZWhhdmlvdXItYW5hbHl0aWNzL3VzZXItYmVoYXZpb3VyLWFuYWx5dGljcy5zZXJ2aWNlJztcbmltcG9ydCB7IFVzZXJCZWhhdmlvdXJFdmVudE5hbWUgfSBmcm9tICcuLi8uLi8uLi91c2VyLWJlaGF2aW91ci1hbmFseXRpY3MvdXNlci1iZWhhdmlvdXItZXZlbnQtbmFtZS5lbnVtJztcbmltcG9ydCB7IHVzZXJCZWhhdmlvdXJFdmVudFR5cGVzIH0gZnJvbSAnLi4vLi4vLi4vdXNlci1iZWhhdmlvdXItYW5hbHl0aWNzL3VzZXItYmVoYXZpb3VyLWV2ZW50L3VzZXItYmVoYXZpb3VyLWV2ZW50LXR5cGVzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIExpc3RlblN0YXR1c1NlcnZpY2Uge1xuICBwdWJsaWMgaXNMaXN0ZW5pbmcgPSBmYWxzZTtcblxuICBwcml2YXRlIHJlYWRvbmx5IHdlYnNvY2tldE9wZW5lZFN1YmplY3QgPSBuZXcgU3ViamVjdDxTdGF0dXNTZXR0aW5ncz4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBzdGF0dXNVcGRhdGVkU3ViamVjdCA9IG5ldyBTdWJqZWN0PFN0YXR1c1VwZGF0ZWQ+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgc3RhdHVzRG9uZVN1YmplY3QgPSBuZXcgU3ViamVjdDxTdGF0dXNTZXR0aW5ncz4oKTtcbiAgcHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgcHVibGljIGdldCB3ZWJzb2NrZXRPcGVuZWQkKCk6IE9ic2VydmFibGU8U3RhdHVzU2V0dGluZ3M+IHtcbiAgICByZXR1cm4gdGhpcy53ZWJzb2NrZXRPcGVuZWRTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBzdGF0dXNVcGRhdGVkJCgpOiBPYnNlcnZhYmxlPFN0YXR1c1VwZGF0ZWQ+IHtcbiAgICByZXR1cm4gdGhpcy5zdGF0dXNVcGRhdGVkU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHN0YXR1c1NlcnZpY2U6IFN0YXR1c1JlcXVlc3RTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2hlY2tTdGF0dXNTZXJ2aWNlOiBDaGVja1N0YXR1c1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSB3ZWJzb2NrZXRTdGF0dXNTZXJ2aWNlOiBXZWJzb2NrZXRTdGF0dXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdXNlckJlaGF2aW91ckFuYWx5dGljc1NlcnZpY2U6IFVzZXJCZWhhdmlvdXJBbmFseXRpY3NTZXJ2aWNlXG4gICkge31cblxuICBwdWJsaWMgbGlzdGVuKGludm9pY2U6IG51bWJlcik6IE9ic2VydmFibGU8U3RhdHVzU2V0dGluZ3M+IHtcbiAgICBpZiAodGhpcy5pc0xpc3RlbmluZykge1xuICAgICAgdGhpcy5zdG9wTGlzdGVuaW5nKCk7XG4gICAgfVxuXG4gICAgdGhpcy5kZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICAgdGhpcy5pc0xpc3RlbmluZyA9IHRydWU7XG5cbiAgICB0aGlzLnN1YnNjcmliZVN0YXR1c1VwZGF0ZShpbnZvaWNlKTtcbiAgICB0aGlzLnN1YnNjcmliZUNoZWNrU3RhdHVzVXBkYXRlKCk7XG4gICAgdGhpcy5zdWJzY3JpYmVXZWJzb2NrZXRFdmVudCgpO1xuXG4gICAgdGhpcy5jaGVja1N0YXR1c1NlcnZpY2Uuc2V0UmVxdWVzdFBhcmFtcyhpbnZvaWNlKTtcblxuICAgIHJldHVybiB0aGlzLnN0YXR1c0RvbmVTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIHN0b3BMaXN0ZW5pbmcoKTogdm9pZCB7XG4gICAgdGhpcy5pc0xpc3RlbmluZyA9IGZhbHNlO1xuICAgIHRoaXMud2Vic29ja2V0U3RhdHVzU2VydmljZS5jbG9zZVdlYlNvY2tldCgpO1xuICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgc3Vic2NyaWJlU3RhdHVzVXBkYXRlKGludm9pY2U6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuc3RhdHVzU2VydmljZS5yZXNwb25zZSRcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoKHN0YXR1c1Jlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHN0YXR1c1Jlc3BvbnNlPy5zdGF0dXM/Lmludm9pY2UgPT09IE51bWJlcihpbnZvaWNlKTtcbiAgICAgICAgfSksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoc3RhdHVzUmVzcG9uc2U6IFN0YXR1c1Jlc3BvbnNlIHwgbnVsbCkgPT4ge1xuICAgICAgICBpZiAoIXN0YXR1c1Jlc3BvbnNlPy5zdGF0dXMpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBzdGF0dXNTZXR0aW5ncyA9IHtcbiAgICAgICAgICBzdGF0dXNTdGF0ZTogc3RhdHVzUmVzcG9uc2Uuc3RhdHVzLnN0YXR1c1N0YXRlLFxuICAgICAgICAgIGlzQ2FuY2VsVXNlcjogc3RhdHVzUmVzcG9uc2Uuc3RhdHVzLmlzQ2FuY2VsVXNlcixcbiAgICAgICAgICBuZWVkV2ViU29ja2V0OiBzdGF0dXNSZXNwb25zZS5zdGF0dXMubmVlZFRvQ2hlY2ssXG4gICAgICAgICAgYmFja1VybFNldHRpbmdzOiBzdGF0dXNSZXNwb25zZS5zdGF0dXMuYmFja1VybFNldHRpbmdzLFxuICAgICAgICAgIGF1dG9SZWRpcmVjdDogc3RhdHVzUmVzcG9uc2Uuc3RhdHVzLmF1dG9SZWRpcmVjdCxcbiAgICAgICAgICB3ZWJTb2NrZXRVcmw6IHN0YXR1c1Jlc3BvbnNlLnN0YXR1cy53ZWJTb2NrZXRVcmwsXG4gICAgICAgICAgd2ViU29ja2V0Q2hhbm5lbE5hbWU6IHN0YXR1c1Jlc3BvbnNlLnN0YXR1cy53ZWJTb2NrZXRDaGFubmVsTmFtZSxcbiAgICAgICAgICB3ZWJTb2NrZXRDbGllbnRUeXBlOiBzdGF0dXNSZXNwb25zZS5zdGF0dXMud2ViU29ja2V0Q2xpZW50VHlwZSxcbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLnN0YXR1c1VwZGF0ZWRTdWJqZWN0Lm5leHQoe1xuICAgICAgICAgIHN0YXR1c1Jlc3BvbnNlOiBzdGF0dXNSZXNwb25zZSxcbiAgICAgICAgICBzdGF0dXNTZXR0aW5nczogc3RhdHVzU2V0dGluZ3MsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNvbnN0IGlzU3RhdHVzRXJyb3IgPVxuICAgICAgICAgIHN0YXR1c1NldHRpbmdzLnN0YXR1c1N0YXRlID09PSBTdGF0dXNFbnVtLmNhbmNlbGVkIHx8XG4gICAgICAgICAgc3RhdHVzU2V0dGluZ3Muc3RhdHVzU3RhdGUgPT09IFN0YXR1c0VudW0uZXJyb3IgfHxcbiAgICAgICAgICBzdGF0dXNTZXR0aW5ncy5pc0NhbmNlbFVzZXI7XG5cbiAgICAgICAgaWYgKGlzU3RhdHVzRXJyb3IpIHtcbiAgICAgICAgICB0aGlzLnVzZXJCZWhhdmlvdXJBbmFseXRpY3NTZXJ2aWNlLnNlbmQoXG4gICAgICAgICAgICBVc2VyQmVoYXZpb3VyRXZlbnROYW1lLm9wZW5TdGF0dXNFcnJvcixcbiAgICAgICAgICAgIHVzZXJCZWhhdmlvdXJFdmVudFR5cGVzLm1hbnVhbCxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgaW5zdGFuY2VJZDogc3RhdHVzUmVzcG9uc2Uuc3RhdHVzLnBpZCxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHN0YXR1c1NldHRpbmdzLm5lZWRXZWJTb2NrZXQpIHtcbiAgICAgICAgICB0aGlzLm9wZW5XZWJzb2NrZXQoc3RhdHVzU2V0dGluZ3MpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc3RvcExpc3RlbmluZygpO1xuICAgICAgICB0aGlzLnN0YXR1c0RvbmVTdWJqZWN0Lm5leHQoc3RhdHVzU2V0dGluZ3MpO1xuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHN1YnNjcmliZUNoZWNrU3RhdHVzVXBkYXRlKCk6IHZvaWQge1xuICAgIHRoaXMuY2hlY2tTdGF0dXNTZXJ2aWNlLnJlc3BvbnNlJFxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgLnN1YnNjcmliZSgoY2hlY2tTdGF0dXNSZXNwb25zZTogQ2hlY2tTdGF0dXNSZXNwb25zZSB8IG51bGwpID0+IHtcbiAgICAgICAgaWYgKCFjaGVja1N0YXR1c1Jlc3BvbnNlPy5zdGF0dXMpIHJldHVybjtcblxuICAgICAgICBpZiAoY2hlY2tTdGF0dXNSZXNwb25zZS5zdGF0dXMgPT09IFN0YXR1c0VudW0uZG9uZSkge1xuICAgICAgICAgIHRoaXMuc3RhdHVzU2VydmljZS5yZXF1ZXN0KCk7XG4gICAgICAgICAgdGhpcy53ZWJzb2NrZXRTdGF0dXNTZXJ2aWNlLmNsb3NlV2ViU29ja2V0KCk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNoZWNrU3RhdHVzUmVzcG9uc2UuZmluYWwgPT09IGZhbHNlKSB7XG4gICAgICAgICAgdGhpcy53ZWJzb2NrZXRTdGF0dXNTZXJ2aWNlLnN0YXJ0UmVpbnN1cmFuY2VDaGVja1RpbWVvdXQoKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBzdWJzY3JpYmVXZWJzb2NrZXRFdmVudCgpOiB2b2lkIHtcbiAgICB0aGlzLndlYnNvY2tldFN0YXR1c1NlcnZpY2UubmVlZENoZWNrU3RhdHVzJFxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLmNoZWNrU3RhdHVzU2VydmljZS5yZXF1ZXN0KCkpO1xuXG4gICAgdGhpcy53ZWJzb2NrZXRTdGF0dXNTZXJ2aWNlLnN0YXR1c0NoYW5nZWQkXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuc3RhdHVzU2VydmljZS5yZXF1ZXN0KCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBvcGVuV2Vic29ja2V0KHN0YXR1c1NldHRpbmdzOiBTdGF0dXNTZXR0aW5ncyk6IHZvaWQge1xuICAgIHZvaWQgdGhpcy53ZWJzb2NrZXRTdGF0dXNTZXJ2aWNlLmNoZWNrU3RhdHVzV2l0aFdlYlNvY2tldChcbiAgICAgIHN0YXR1c1NldHRpbmdzLndlYlNvY2tldFVybCxcbiAgICAgIHN0YXR1c1NldHRpbmdzLndlYlNvY2tldENoYW5uZWxOYW1lLFxuICAgICAgc3RhdHVzU2V0dGluZ3Mud2ViU29ja2V0Q2xpZW50VHlwZVxuICAgICk7XG4gICAgdGhpcy53ZWJzb2NrZXRPcGVuZWRTdWJqZWN0Lm5leHQoc3RhdHVzU2V0dGluZ3MpO1xuICB9XG59XG4iXX0=