@myclub_se/data-access 2.15.1 → 3.0.0

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 (774) hide show
  1. package/{esm2020 → esm2022}/index.mjs +2 -1
  2. package/{esm2020 → esm2022}/lib/api-models/api-bookable-item.mjs +1 -1
  3. package/{esm2020 → esm2022}/lib/api-models/api-booking-calendar-application-time.mjs +1 -1
  4. package/{esm2020 → esm2022}/lib/api-models/api-booking-calendar-slot-session.mjs +1 -1
  5. package/{esm2020 → esm2022}/lib/api-models/api-booking-calendar.mjs +1 -1
  6. package/esm2022/lib/api-models/api-feature-flags.mjs +2 -0
  7. package/esm2022/lib/api-models/api-invoice/api-payment-attempt-create.mjs +11 -0
  8. package/esm2022/lib/api-models/index.mjs +57 -0
  9. package/esm2022/lib/authentication/authentication.interceptor.mjs +101 -0
  10. package/esm2022/lib/authentication/authentication.service.mjs +109 -0
  11. package/esm2022/lib/authentication/guards/authenticated.guard.mjs +38 -0
  12. package/esm2022/lib/authentication/guards/handle-grant-token.guard.mjs +31 -0
  13. package/esm2022/lib/data-access.module.mjs +39 -0
  14. package/esm2022/lib/maintenance/maintenance.interceptor.mjs +30 -0
  15. package/esm2022/lib/models/activity-extra-member.mjs +19 -0
  16. package/esm2022/lib/models/activity-invite.mjs +35 -0
  17. package/esm2022/lib/models/activity-location-group.mjs +27 -0
  18. package/esm2022/lib/models/activity-location-part.mjs +16 -0
  19. package/esm2022/lib/models/activity-location-tag.mjs +22 -0
  20. package/esm2022/lib/models/activity-location.mjs +46 -0
  21. package/esm2022/lib/models/activity-participant.mjs +19 -0
  22. package/esm2022/lib/models/activity-settings.mjs +27 -0
  23. package/esm2022/lib/models/activity-type.mjs +34 -0
  24. package/esm2022/lib/models/activity.mjs +137 -0
  25. package/esm2022/lib/models/auth/auth-member.mjs +13 -0
  26. package/{esm2020 → esm2022}/lib/models/auth/auth-section.mjs +3 -1
  27. package/{esm2020 → esm2022}/lib/models/auth/auth-team-section.mjs +3 -1
  28. package/esm2022/lib/models/auth/auth-team.mjs +13 -0
  29. package/esm2022/lib/models/auth/auth.mjs +25 -0
  30. package/{esm2020 → esm2022}/lib/models/authentication.mjs +3 -1
  31. package/esm2022/lib/models/bookable-group.mjs +27 -0
  32. package/esm2022/lib/models/bookable-item.mjs +49 -0
  33. package/esm2022/lib/models/bookable-part.mjs +16 -0
  34. package/esm2022/lib/models/bookable-tag.mjs +22 -0
  35. package/esm2022/lib/models/booking-calendar-application-time.mjs +86 -0
  36. package/esm2022/lib/models/booking-calendar-slot-session.mjs +87 -0
  37. package/esm2022/lib/models/booking-calendar-slot.mjs +79 -0
  38. package/esm2022/lib/models/booking-calendar.mjs +74 -0
  39. package/esm2022/lib/models/booking-settings.mjs +29 -0
  40. package/esm2022/lib/models/booking-slot-filter.mjs +72 -0
  41. package/esm2022/lib/models/calendar-event.mjs +35 -0
  42. package/esm2022/lib/models/calendar.mjs +15 -0
  43. package/esm2022/lib/models/card/card-deal.mjs +15 -0
  44. package/esm2022/lib/models/card/card-logo-urls.mjs +21 -0
  45. package/esm2022/lib/models/card/card-logo.mjs +11 -0
  46. package/esm2022/lib/models/card/card-member-ticket.mjs +17 -0
  47. package/esm2022/lib/models/card/card-theme.mjs +15 -0
  48. package/esm2022/lib/models/card/card-ticket-location.mjs +13 -0
  49. package/esm2022/lib/models/card/card-ticket.mjs +37 -0
  50. package/{esm2020 → esm2022}/lib/models/card/card.mjs +9 -1
  51. package/esm2022/lib/models/card/home-team.mjs +11 -0
  52. package/esm2022/lib/models/card/member-card.mjs +23 -0
  53. package/esm2022/lib/models/card/search-member-card.mjs +13 -0
  54. package/esm2022/lib/models/club-image.mjs +31 -0
  55. package/{esm2020 → esm2022}/lib/models/club-section.mjs +3 -1
  56. package/{esm2020 → esm2022}/lib/models/club.mjs +3 -1
  57. package/esm2022/lib/models/collection.mjs +19 -0
  58. package/esm2022/lib/models/contact.mjs +61 -0
  59. package/esm2022/lib/models/directory.mjs +38 -0
  60. package/esm2022/lib/models/email.mjs +11 -0
  61. package/esm2022/lib/models/event.mjs +47 -0
  62. package/{esm2020 → esm2022}/lib/models/external-link.mjs +3 -1
  63. package/esm2022/lib/models/feature-flags.mjs +14 -0
  64. package/esm2022/lib/models/file-object.mjs +23 -0
  65. package/esm2022/lib/models/general-image.mjs +11 -0
  66. package/esm2022/lib/models/group-role.mjs +17 -0
  67. package/esm2022/lib/models/image-urls.mjs +15 -0
  68. package/esm2022/lib/models/index.mjs +64 -0
  69. package/esm2022/lib/models/invoice/member-fee.mjs +13 -0
  70. package/esm2022/lib/models/invoice/member-invoice-row.mjs +31 -0
  71. package/esm2022/lib/models/invoice/member-invoice.mjs +45 -0
  72. package/esm2022/lib/models/invoice/payment-attempt.mjs +21 -0
  73. package/esm2022/lib/models/invoice/payment-types/credit-card.mjs +27 -0
  74. package/esm2022/lib/models/invoice/payment-types/giro.mjs +17 -0
  75. package/esm2022/lib/models/invoice/payment-types/swish.mjs +31 -0
  76. package/esm2022/lib/models/invoice/payment-types/zimpler.mjs +19 -0
  77. package/esm2022/lib/models/invoice/search-member-invoice.mjs +26 -0
  78. package/{esm2020 → esm2022}/lib/models/invoice/swish-qr-code.mjs +2 -1
  79. package/esm2022/lib/models/invoice/unpaid-member-invoice.mjs +13 -0
  80. package/esm2022/lib/models/member/member-attribute.mjs +44 -0
  81. package/esm2022/lib/models/member/member-contact.mjs +26 -0
  82. package/esm2022/lib/models/member/member-function.mjs +24 -0
  83. package/esm2022/lib/models/member/member-validation-settings.mjs +21 -0
  84. package/esm2022/lib/models/member/member.mjs +101 -0
  85. package/{esm2020 → esm2022}/lib/models/member/other-member-field.mjs +4 -1
  86. package/esm2022/lib/models/member/other-member.mjs +21 -0
  87. package/esm2022/lib/models/member/search-member.mjs +35 -0
  88. package/esm2022/lib/models/member-activity-invite.mjs +42 -0
  89. package/esm2022/lib/models/member-public-form-field-option.mjs +13 -0
  90. package/esm2022/lib/models/member-public-form-field.mjs +27 -0
  91. package/esm2022/lib/models/member-public-form.mjs +55 -0
  92. package/esm2022/lib/models/member-team-through.mjs +23 -0
  93. package/esm2022/lib/models/member-team.mjs +21 -0
  94. package/esm2022/lib/models/member-type.mjs +11 -0
  95. package/esm2022/lib/models/news.mjs +66 -0
  96. package/esm2022/lib/models/open-activity.mjs +117 -0
  97. package/esm2022/lib/models/optional-fee.mjs +16 -0
  98. package/esm2022/lib/models/overbooked-bookable-item.mjs +15 -0
  99. package/esm2022/lib/models/overbooked-location.mjs +15 -0
  100. package/esm2022/lib/models/partner.mjs +13 -0
  101. package/esm2022/lib/models/public-authentication.mjs +9 -0
  102. package/esm2022/lib/models/registration-qr-code.mjs +19 -0
  103. package/esm2022/lib/models/search-club.mjs +23 -0
  104. package/esm2022/lib/models/search-team.mjs +24 -0
  105. package/{esm2020 → esm2022}/lib/models/section.mjs +3 -1
  106. package/esm2022/lib/models/token.mjs +11 -0
  107. package/esm2022/lib/models/user-notification.mjs +21 -0
  108. package/esm2022/lib/models/user.mjs +41 -0
  109. package/esm2022/lib/services/activity.service.mjs +508 -0
  110. package/esm2022/lib/services/api.service.mjs +108 -0
  111. package/esm2022/lib/services/auth.service.mjs +62 -0
  112. package/esm2022/lib/services/bookable.service.mjs +279 -0
  113. package/esm2022/lib/services/booking-calendar.service.mjs +736 -0
  114. package/esm2022/lib/services/club.service.mjs +35 -0
  115. package/esm2022/lib/services/constant.service.mjs +97 -0
  116. package/esm2022/lib/services/email.service.mjs +28 -0
  117. package/esm2022/lib/services/external-link.service.mjs +25 -0
  118. package/esm2022/lib/services/factories/activity-settings-factory.mjs +3 -0
  119. package/esm2022/lib/services/factories/bookable-item-factory.mjs +5 -0
  120. package/{esm2020 → esm2022}/lib/services/factories/booking-calendar-application-time-factory.mjs +2 -2
  121. package/{esm2020 → esm2022}/lib/services/factories/booking-calendar-factory.mjs +2 -2
  122. package/{esm2020 → esm2022}/lib/services/factories/booking-calendar-slot-session-factory.mjs +2 -2
  123. package/esm2022/lib/services/factories/feature-flags-factory.mjs +5 -0
  124. package/esm2022/lib/services/factories/index.mjs +87 -0
  125. package/esm2022/lib/services/factories/member-public-form-factory.mjs +26 -0
  126. package/esm2022/lib/services/factories/payment-attempt-factory.mjs +23 -0
  127. package/esm2022/lib/services/feature-flags.service.mjs +44 -0
  128. package/esm2022/lib/services/file.service.mjs +65 -0
  129. package/esm2022/lib/services/index.mjs +24 -0
  130. package/esm2022/lib/services/invoice/invoice.service.mjs +42 -0
  131. package/esm2022/lib/services/invoice/payment-attempt.service.mjs +52 -0
  132. package/esm2022/lib/services/maintenance-mode.service.mjs +20 -0
  133. package/esm2022/lib/services/member-card.service.mjs +104 -0
  134. package/esm2022/lib/services/member-public-form.service.mjs +33 -0
  135. package/esm2022/lib/services/member.service.mjs +85 -0
  136. package/esm2022/lib/services/news.service.mjs +94 -0
  137. package/esm2022/lib/services/registration-qr-code.service.mjs +37 -0
  138. package/esm2022/lib/services/section.service.mjs +24 -0
  139. package/esm2022/lib/services/storage.service.mjs +44 -0
  140. package/esm2022/lib/services/team.service.mjs +89 -0
  141. package/esm2022/lib/services/token.service.mjs +58 -0
  142. package/esm2022/lib/services/user-notification.service.mjs +24 -0
  143. package/esm2022/lib/services/user.service.mjs +69 -0
  144. package/esm2022/lib/store/actions/activity.actions.mjs +177 -0
  145. package/esm2022/lib/store/actions/auth.actions.mjs +45 -0
  146. package/esm2022/lib/store/actions/booking.actions.mjs +187 -0
  147. package/esm2022/lib/store/actions/calendar.actions.mjs +77 -0
  148. package/esm2022/lib/store/actions/club-info.actions.mjs +23 -0
  149. package/esm2022/lib/store/actions/constant.actions.mjs +124 -0
  150. package/esm2022/lib/store/actions/email.actions.mjs +19 -0
  151. package/esm2022/lib/store/actions/external-link.actions.mjs +11 -0
  152. package/esm2022/lib/store/actions/file.actions.mjs +41 -0
  153. package/esm2022/lib/store/actions/index.mjs +19 -0
  154. package/esm2022/lib/store/actions/invoice.actions.mjs +73 -0
  155. package/esm2022/lib/store/actions/member-card.actions.mjs +71 -0
  156. package/esm2022/lib/store/actions/member.actions.mjs +65 -0
  157. package/esm2022/lib/store/actions/news.actions.mjs +47 -0
  158. package/esm2022/lib/store/actions/public-form.actions.mjs +17 -0
  159. package/esm2022/lib/store/actions/store.actions.mjs +7 -0
  160. package/esm2022/lib/store/actions/team.actions.mjs +83 -0
  161. package/esm2022/lib/store/actions/token.actions.mjs +53 -0
  162. package/esm2022/lib/store/actions/user.actions.mjs +49 -0
  163. package/esm2022/lib/store/effects/activity.effects.mjs +211 -0
  164. package/esm2022/lib/store/effects/auth.effects.mjs +96 -0
  165. package/esm2022/lib/store/effects/booking.effects.mjs +102 -0
  166. package/esm2022/lib/store/effects/calendar.effects.mjs +84 -0
  167. package/esm2022/lib/store/effects/club-info.effects.mjs +26 -0
  168. package/esm2022/lib/store/effects/constant.effects.mjs +69 -0
  169. package/esm2022/lib/store/effects/data-access.effects.mjs +37 -0
  170. package/esm2022/lib/store/effects/email.effects.mjs +27 -0
  171. package/esm2022/lib/store/effects/external-link.effects.mjs +20 -0
  172. package/esm2022/lib/store/effects/file.effects.mjs +149 -0
  173. package/esm2022/lib/store/effects/index.mjs +2 -0
  174. package/esm2022/lib/store/effects/invoice.effects.mjs +72 -0
  175. package/esm2022/lib/store/effects/member-card.effects.mjs +80 -0
  176. package/esm2022/lib/store/effects/member.effects.mjs +75 -0
  177. package/esm2022/lib/store/effects/mixins/extra-members-mixin.mjs +60 -0
  178. package/esm2022/lib/store/effects/news.effects.mjs +82 -0
  179. package/esm2022/lib/store/effects/public-form.effects.mjs +33 -0
  180. package/esm2022/lib/store/effects/team.effects.mjs +82 -0
  181. package/esm2022/lib/store/effects/token.effects.mjs +81 -0
  182. package/esm2022/lib/store/effects/user.effects.mjs +59 -0
  183. package/esm2022/lib/store/index.mjs +8 -0
  184. package/esm2022/lib/store/interfaces/activate-card-ticket.interface.mjs +2 -0
  185. package/esm2022/lib/store/interfaces/activate-user.interface.mjs +2 -0
  186. package/esm2022/lib/store/interfaces/calendar-activity-locations.interface.mjs +2 -0
  187. package/esm2022/lib/store/interfaces/calendar-activity-types.interface.mjs +2 -0
  188. package/esm2022/lib/store/interfaces/calendar-open-activity-result.interface.mjs +2 -0
  189. package/esm2022/lib/store/interfaces/calendar-public-open-activity-results.interface.mjs +2 -0
  190. package/esm2022/lib/store/interfaces/directory-result.interface.mjs +2 -0
  191. package/esm2022/lib/store/interfaces/email-settings.interface.mjs +2 -0
  192. package/esm2022/lib/store/interfaces/index.mjs +20 -0
  193. package/esm2022/lib/store/interfaces/list-result-interface.mjs +4 -0
  194. package/esm2022/lib/store/interfaces/location.interface.mjs +2 -0
  195. package/esm2022/lib/store/interfaces/member-calendar-event-result.interface.mjs +2 -0
  196. package/esm2022/lib/store/interfaces/member-card-deals.interface.mjs +2 -0
  197. package/esm2022/lib/store/interfaces/member-card-tickets.interface.mjs +2 -0
  198. package/esm2022/lib/store/interfaces/public-activate-card-ticket.interface.mjs +2 -0
  199. package/esm2022/lib/store/interfaces/remove-member-auth.interface.mjs +2 -0
  200. package/esm2022/lib/store/interfaces/remove-team-auth.interface.mjs +2 -0
  201. package/esm2022/lib/store/interfaces/retrieve-result.interface.mjs +4 -0
  202. package/esm2022/lib/store/interfaces/team-activity.interface.mjs +2 -0
  203. package/esm2022/lib/store/interfaces/team-calendar-event-result.interface.mjs +2 -0
  204. package/esm2022/lib/store/operators/ensure-activity.mjs +8 -0
  205. package/esm2022/lib/store/operators/ensure-auths.mjs +18 -0
  206. package/esm2022/lib/store/operators/ensure-calendar-events-loading-done.mjs +23 -0
  207. package/esm2022/lib/store/operators/ensure-constants.mjs +21 -0
  208. package/esm2022/lib/store/operators/ensure-current-auth.mjs +17 -0
  209. package/esm2022/lib/store/operators/ensure-current-user.mjs +16 -0
  210. package/esm2022/lib/store/operators/ensure-loading-done.mjs +24 -0
  211. package/esm2022/lib/store/operators/ensure-open-activities-loading-done.mjs +5 -0
  212. package/esm2022/lib/store/operators/ensure-public-open-activities-loading-done.mjs +5 -0
  213. package/esm2022/lib/store/operators/ensure-updated-data.mjs +10 -0
  214. package/esm2022/lib/store/operators/index.mjs +11 -0
  215. package/esm2022/lib/store/reducers/auth.reducer.mjs +52 -0
  216. package/esm2022/lib/store/reducers/booking.reducers.mjs +79 -0
  217. package/esm2022/lib/store/reducers/calendar.reducer.mjs +449 -0
  218. package/esm2022/lib/store/reducers/club-info.reducer.mjs +9 -0
  219. package/esm2022/lib/store/reducers/constant.reducer.mjs +181 -0
  220. package/esm2022/lib/store/reducers/data-access.reducer.mjs +37 -0
  221. package/esm2022/lib/store/reducers/email.reducer.mjs +21 -0
  222. package/esm2022/lib/store/reducers/external-link.reducer.mjs +6 -0
  223. package/esm2022/lib/store/reducers/file.reducer.mjs +118 -0
  224. package/esm2022/lib/store/reducers/index.mjs +2 -0
  225. package/esm2022/lib/store/reducers/invoice.reducer.mjs +6 -0
  226. package/esm2022/lib/store/reducers/member-card.reducer.mjs +33 -0
  227. package/esm2022/lib/store/reducers/member.reducer.mjs +21 -0
  228. package/esm2022/lib/store/reducers/news.reducer.mjs +96 -0
  229. package/esm2022/lib/store/reducers/public-form.reducer.mjs +21 -0
  230. package/esm2022/lib/store/reducers/public.reducer.mjs +109 -0
  231. package/esm2022/lib/store/reducers/reducer-helpers.mjs +61 -0
  232. package/esm2022/lib/store/reducers/team.reducer.mjs +77 -0
  233. package/esm2022/lib/store/reducers/token.reducer.mjs +21 -0
  234. package/esm2022/lib/store/reducers/user.reducer.mjs +18 -0
  235. package/esm2022/lib/store/selectors/auth.selectors.mjs +6 -0
  236. package/esm2022/lib/store/selectors/booking.selectors.mjs +15 -0
  237. package/esm2022/lib/store/selectors/calendar.selectors.mjs +18 -0
  238. package/esm2022/lib/store/selectors/club-info.selectors.mjs +5 -0
  239. package/esm2022/lib/store/selectors/constant.selectors.mjs +38 -0
  240. package/esm2022/lib/store/selectors/email.selectors.mjs +5 -0
  241. package/esm2022/lib/store/selectors/external-links.selectors.mjs +5 -0
  242. package/esm2022/lib/store/selectors/file.selectors.mjs +6 -0
  243. package/esm2022/lib/store/selectors/index.mjs +18 -0
  244. package/esm2022/lib/store/selectors/invoice.selectors.mjs +6 -0
  245. package/esm2022/lib/store/selectors/member-card.selectors.mjs +8 -0
  246. package/esm2022/lib/store/selectors/member.selectors.mjs +10 -0
  247. package/esm2022/lib/store/selectors/news.selectors.mjs +8 -0
  248. package/esm2022/lib/store/selectors/public-form.selectors.mjs +5 -0
  249. package/esm2022/lib/store/selectors/public.selectors.mjs +18 -0
  250. package/esm2022/lib/store/selectors/team.selectors.mjs +12 -0
  251. package/esm2022/lib/store/selectors/token.selectors.mjs +6 -0
  252. package/esm2022/lib/store/selectors/user.selectors.mjs +6 -0
  253. package/esm2022/lib/store/state/auth.state.mjs +5 -0
  254. package/esm2022/lib/store/state/booking.state.mjs +16 -0
  255. package/esm2022/lib/store/state/calendar.state.mjs +17 -0
  256. package/esm2022/lib/store/state/club-info.state.mjs +4 -0
  257. package/esm2022/lib/store/state/constant.state.mjs +21 -0
  258. package/esm2022/lib/store/state/data-access.state.mjs +2 -0
  259. package/esm2022/lib/store/state/email.state.mjs +7 -0
  260. package/esm2022/lib/store/state/external-link.state.mjs +4 -0
  261. package/esm2022/lib/store/state/file.state.mjs +5 -0
  262. package/esm2022/lib/store/state/index.mjs +19 -0
  263. package/esm2022/lib/store/state/invoice.state.mjs +5 -0
  264. package/esm2022/lib/store/state/member-card.state.mjs +7 -0
  265. package/esm2022/lib/store/state/member.state.mjs +10 -0
  266. package/esm2022/lib/store/state/news.state.mjs +7 -0
  267. package/esm2022/lib/store/state/public-form.state.mjs +5 -0
  268. package/esm2022/lib/store/state/public.state.mjs +17 -0
  269. package/esm2022/lib/store/state/team.state.mjs +11 -0
  270. package/esm2022/lib/store/state/token.state.mjs +5 -0
  271. package/esm2022/lib/store/state/user.state.mjs +5 -0
  272. package/fesm2022/myclub_se-data-access.mjs +10080 -0
  273. package/fesm2022/myclub_se-data-access.mjs.map +1 -0
  274. package/index.d.ts +1 -0
  275. package/lib/api-models/api-bookable-item.d.ts +2 -0
  276. package/lib/api-models/api-booking-calendar-application-time.d.ts +3 -0
  277. package/lib/api-models/api-booking-calendar-slot-session.d.ts +3 -0
  278. package/lib/api-models/api-booking-calendar.d.ts +2 -0
  279. package/lib/api-models/api-feature-flags.d.ts +5 -0
  280. package/lib/api-models/api-invoice/payment-attempt-data-types/api-payment-attempt-credit-card-data-type.d.ts +1 -1
  281. package/lib/api-models/api-invoice/payment-attempt-data-types/api-payment-attempt-swish-data-type.d.ts +1 -1
  282. package/lib/api-models/api-invoice/payment-attempt-data-types/api-payment-attempt-zimpler-data-type.d.ts +1 -1
  283. package/lib/api-models/index.d.ts +1 -0
  284. package/lib/authentication/authentication.interceptor.d.ts +12 -7
  285. package/lib/data-access.module.d.ts +3 -1
  286. package/lib/models/activity-settings.d.ts +3 -1
  287. package/lib/models/auth/auth.d.ts +3 -2
  288. package/lib/models/bookable-item.d.ts +6 -1
  289. package/lib/models/booking-calendar-application-time.d.ts +8 -3
  290. package/lib/models/booking-calendar-slot-session.d.ts +10 -5
  291. package/lib/models/booking-calendar-slot.d.ts +7 -6
  292. package/lib/models/booking-calendar.d.ts +4 -1
  293. package/lib/models/booking-settings.d.ts +5 -4
  294. package/lib/models/booking-slot-filter.d.ts +17 -0
  295. package/lib/models/directory.d.ts +1 -0
  296. package/lib/models/feature-flags.d.ts +7 -0
  297. package/lib/models/index.d.ts +2 -0
  298. package/lib/models/invoice/payment-attempt-data-types/payment-attempt-credit-card-data-type.d.ts +1 -1
  299. package/lib/models/invoice/payment-attempt-data-types/payment-attempt-swish-data-type.d.ts +1 -1
  300. package/lib/models/invoice/payment-attempt-data-types/payment-attempt-zimpler-data-type.d.ts +1 -1
  301. package/lib/services/activity.service.d.ts +55 -52
  302. package/lib/services/bookable.service.d.ts +12 -9
  303. package/lib/services/booking-calendar.service.d.ts +6 -23
  304. package/lib/services/constant.service.d.ts +5 -11
  305. package/lib/services/email.service.d.ts +0 -9
  306. package/lib/services/factories/feature-flags-factory.d.ts +3 -0
  307. package/lib/services/factories/index.d.ts +1 -0
  308. package/lib/services/feature-flags.service.d.ts +13 -0
  309. package/lib/services/index.d.ts +2 -0
  310. package/lib/services/member.service.d.ts +7 -3
  311. package/lib/services/storage.service.d.ts +20 -0
  312. package/lib/store/actions/activity.actions.d.ts +641 -0
  313. package/lib/store/actions/auth.actions.d.ts +83 -0
  314. package/lib/store/actions/booking.actions.d.ts +652 -0
  315. package/lib/store/actions/calendar.actions.d.ts +381 -0
  316. package/lib/store/actions/club-info.actions.d.ts +54 -0
  317. package/lib/store/actions/constant.actions.d.ts +249 -0
  318. package/lib/store/actions/email.actions.d.ts +57 -0
  319. package/lib/store/actions/external-link.actions.d.ts +22 -0
  320. package/lib/store/actions/file.actions.d.ts +169 -0
  321. package/lib/store/actions/index.d.ts +18 -0
  322. package/lib/store/actions/invoice.actions.d.ts +298 -0
  323. package/lib/store/actions/member-card.actions.d.ts +251 -0
  324. package/lib/store/actions/member.actions.d.ts +212 -0
  325. package/lib/store/actions/news.actions.d.ts +164 -0
  326. package/lib/store/actions/public-form.actions.d.ts +46 -0
  327. package/lib/store/actions/store.actions.d.ts +4 -0
  328. package/lib/store/actions/team.actions.d.ts +326 -0
  329. package/lib/store/actions/token.actions.d.ts +151 -0
  330. package/lib/store/actions/user.actions.d.ts +102 -0
  331. package/lib/store/effects/activity.effects.d.ts +152 -0
  332. package/lib/store/effects/auth.effects.d.ts +35 -0
  333. package/lib/store/effects/booking.effects.d.ts +196 -0
  334. package/lib/store/effects/calendar.effects.d.ts +129 -0
  335. package/lib/store/effects/club-info.effects.d.ts +24 -0
  336. package/lib/store/effects/constant.effects.d.ts +96 -0
  337. package/lib/store/effects/data-access.effects.d.ts +18 -0
  338. package/lib/store/effects/email.effects.d.ts +14 -0
  339. package/lib/store/effects/external-link.effects.d.ts +14 -0
  340. package/lib/store/effects/file.effects.d.ts +55 -0
  341. package/lib/store/effects/index.d.ts +1 -0
  342. package/lib/store/effects/invoice.effects.d.ts +80 -0
  343. package/lib/store/effects/member-card.effects.d.ts +69 -0
  344. package/lib/store/effects/member.effects.d.ts +58 -0
  345. package/lib/store/effects/mixins/extra-members-mixin.d.ts +10 -0
  346. package/lib/store/effects/news.effects.d.ts +49 -0
  347. package/lib/store/effects/public-form.effects.d.ts +19 -0
  348. package/lib/store/effects/team.effects.d.ts +80 -0
  349. package/lib/store/effects/token.effects.d.ts +66 -0
  350. package/lib/store/effects/user.effects.d.ts +36 -0
  351. package/lib/store/index.d.ts +7 -0
  352. package/lib/store/interfaces/activate-card-ticket.interface.d.ts +6 -0
  353. package/lib/store/interfaces/activate-user.interface.d.ts +4 -0
  354. package/lib/store/interfaces/calendar-activity-locations.interface.d.ts +7 -0
  355. package/lib/store/interfaces/calendar-activity-types.interface.d.ts +7 -0
  356. package/lib/store/interfaces/calendar-open-activity-result.interface.d.ts +8 -0
  357. package/lib/store/interfaces/calendar-public-open-activity-results.interface.d.ts +7 -0
  358. package/lib/store/interfaces/directory-result.interface.d.ts +5 -0
  359. package/lib/store/interfaces/email-settings.interface.d.ts +5 -0
  360. package/lib/store/interfaces/index.d.ts +19 -0
  361. package/lib/store/interfaces/list-result-interface.d.ts +13 -0
  362. package/lib/store/interfaces/location.interface.d.ts +7 -0
  363. package/lib/store/interfaces/member-calendar-event-result.interface.d.ts +8 -0
  364. package/lib/store/interfaces/member-card-deals.interface.d.ts +5 -0
  365. package/lib/store/interfaces/member-card-tickets.interface.d.ts +5 -0
  366. package/lib/store/interfaces/public-activate-card-ticket.interface.d.ts +6 -0
  367. package/lib/store/interfaces/remove-member-auth.interface.d.ts +4 -0
  368. package/lib/store/interfaces/remove-team-auth.interface.d.ts +4 -0
  369. package/lib/store/interfaces/retrieve-result.interface.d.ts +13 -0
  370. package/lib/store/interfaces/team-activity.interface.d.ts +9 -0
  371. package/lib/store/interfaces/team-calendar-event-result.interface.d.ts +8 -0
  372. package/lib/store/operators/ensure-activity.d.ts +4 -0
  373. package/lib/store/operators/ensure-auths.d.ts +13 -0
  374. package/lib/store/operators/ensure-calendar-events-loading-done.d.ts +19 -0
  375. package/lib/store/operators/ensure-constants.d.ts +12 -0
  376. package/lib/store/operators/ensure-current-auth.d.ts +12 -0
  377. package/lib/store/operators/ensure-current-user.d.ts +11 -0
  378. package/lib/store/operators/ensure-loading-done.d.ts +20 -0
  379. package/lib/store/operators/ensure-open-activities-loading-done.d.ts +3 -0
  380. package/lib/store/operators/ensure-public-open-activities-loading-done.d.ts +3 -0
  381. package/lib/store/operators/ensure-updated-data.d.ts +4 -0
  382. package/lib/store/operators/index.d.ts +10 -0
  383. package/lib/store/reducers/auth.reducer.d.ts +2 -0
  384. package/lib/store/reducers/booking.reducers.d.ts +2 -0
  385. package/lib/store/reducers/calendar.reducer.d.ts +2 -0
  386. package/lib/store/reducers/club-info.reducer.d.ts +2 -0
  387. package/lib/store/reducers/constant.reducer.d.ts +2 -0
  388. package/lib/store/reducers/data-access.reducer.d.ts +3 -0
  389. package/lib/store/reducers/email.reducer.d.ts +2 -0
  390. package/lib/store/reducers/external-link.reducer.d.ts +2 -0
  391. package/lib/store/reducers/file.reducer.d.ts +2 -0
  392. package/lib/store/reducers/index.d.ts +1 -0
  393. package/lib/store/reducers/invoice.reducer.d.ts +2 -0
  394. package/lib/store/reducers/member-card.reducer.d.ts +2 -0
  395. package/lib/store/reducers/member.reducer.d.ts +2 -0
  396. package/lib/store/reducers/news.reducer.d.ts +2 -0
  397. package/lib/store/reducers/public-form.reducer.d.ts +2 -0
  398. package/lib/store/reducers/public.reducer.d.ts +2 -0
  399. package/lib/store/reducers/reducer-helpers.d.ts +8 -0
  400. package/lib/store/reducers/team.reducer.d.ts +2 -0
  401. package/lib/store/reducers/token.reducer.d.ts +2 -0
  402. package/lib/store/reducers/user.reducer.d.ts +2 -0
  403. package/lib/store/selectors/auth.selectors.d.ts +4 -0
  404. package/lib/store/selectors/booking.selectors.d.ts +13 -0
  405. package/lib/store/selectors/calendar.selectors.d.ts +16 -0
  406. package/lib/store/selectors/club-info.selectors.d.ts +3 -0
  407. package/lib/store/selectors/constant.selectors.d.ts +19 -0
  408. package/lib/store/selectors/email.selectors.d.ts +3 -0
  409. package/lib/store/selectors/external-links.selectors.d.ts +3 -0
  410. package/lib/store/selectors/file.selectors.d.ts +4 -0
  411. package/lib/store/selectors/index.d.ts +17 -0
  412. package/lib/store/selectors/invoice.selectors.d.ts +4 -0
  413. package/lib/store/selectors/member-card.selectors.d.ts +6 -0
  414. package/lib/store/selectors/member.selectors.d.ts +8 -0
  415. package/lib/store/selectors/news.selectors.d.ts +6 -0
  416. package/lib/store/selectors/public-form.selectors.d.ts +3 -0
  417. package/lib/store/selectors/public.selectors.d.ts +16 -0
  418. package/lib/store/selectors/team.selectors.d.ts +10 -0
  419. package/lib/store/selectors/token.selectors.d.ts +4 -0
  420. package/lib/store/selectors/user.selectors.d.ts +4 -0
  421. package/lib/store/state/auth.state.d.ts +7 -0
  422. package/lib/store/state/booking.state.d.ts +16 -0
  423. package/lib/store/state/calendar.state.d.ts +19 -0
  424. package/lib/store/state/club-info.state.d.ts +6 -0
  425. package/lib/store/state/constant.state.d.ts +23 -0
  426. package/lib/store/state/data-access.state.d.ts +36 -0
  427. package/lib/store/state/email.state.d.ts +5 -0
  428. package/lib/store/state/external-link.state.d.ts +6 -0
  429. package/lib/store/state/file.state.d.ts +6 -0
  430. package/lib/store/state/index.d.ts +18 -0
  431. package/lib/store/state/invoice.state.d.ts +7 -0
  432. package/lib/store/state/member-card.state.d.ts +9 -0
  433. package/lib/store/state/member.state.d.ts +11 -0
  434. package/lib/store/state/news.state.d.ts +9 -0
  435. package/lib/store/state/public-form.state.d.ts +7 -0
  436. package/lib/store/state/public.state.d.ts +19 -0
  437. package/lib/store/state/team.state.d.ts +13 -0
  438. package/lib/store/state/token.state.d.ts +7 -0
  439. package/lib/store/state/user.state.d.ts +7 -0
  440. package/lib/types/attribute-type.d.ts +1 -1
  441. package/lib/types/booking-calendar-slot-reserved-time-position.d.ts +1 -1
  442. package/lib/types/booking-calendar-slot-type.d.ts +1 -1
  443. package/lib/types/contact-type.d.ts +1 -1
  444. package/lib/types/grant-type.d.ts +1 -1
  445. package/lib/types/payment-attempt-status-type.d.ts +1 -1
  446. package/lib/types/payment-attempt-type.d.ts +1 -1
  447. package/lib/types/sex-type.d.ts +1 -1
  448. package/package.json +13 -18
  449. package/esm2020/lib/api-models/api-invoice/api-payment-attempt-create.mjs +0 -8
  450. package/esm2020/lib/api-models/index.mjs +0 -56
  451. package/esm2020/lib/authentication/authentication.interceptor.mjs +0 -66
  452. package/esm2020/lib/authentication/authentication.service.mjs +0 -106
  453. package/esm2020/lib/authentication/guards/authenticated.guard.mjs +0 -36
  454. package/esm2020/lib/authentication/guards/handle-grant-token.guard.mjs +0 -29
  455. package/esm2020/lib/data-access.module.mjs +0 -30
  456. package/esm2020/lib/maintenance/maintenance.interceptor.mjs +0 -29
  457. package/esm2020/lib/models/activity-extra-member.mjs +0 -12
  458. package/esm2020/lib/models/activity-invite.mjs +0 -20
  459. package/esm2020/lib/models/activity-location-group.mjs +0 -21
  460. package/esm2020/lib/models/activity-location-part.mjs +0 -14
  461. package/esm2020/lib/models/activity-location-tag.mjs +0 -17
  462. package/esm2020/lib/models/activity-location.mjs +0 -36
  463. package/esm2020/lib/models/activity-participant.mjs +0 -12
  464. package/esm2020/lib/models/activity-settings.mjs +0 -14
  465. package/esm2020/lib/models/activity-type.mjs +0 -26
  466. package/esm2020/lib/models/activity.mjs +0 -92
  467. package/esm2020/lib/models/auth/auth-member.mjs +0 -10
  468. package/esm2020/lib/models/auth/auth-team.mjs +0 -9
  469. package/esm2020/lib/models/auth/auth.mjs +0 -15
  470. package/esm2020/lib/models/bookable-group.mjs +0 -21
  471. package/esm2020/lib/models/bookable-item.mjs +0 -34
  472. package/esm2020/lib/models/bookable-part.mjs +0 -14
  473. package/esm2020/lib/models/bookable-tag.mjs +0 -17
  474. package/esm2020/lib/models/booking-calendar-application-time.mjs +0 -52
  475. package/esm2020/lib/models/booking-calendar-slot-session.mjs +0 -54
  476. package/esm2020/lib/models/booking-calendar-slot.mjs +0 -53
  477. package/esm2020/lib/models/booking-calendar.mjs +0 -54
  478. package/esm2020/lib/models/booking-settings.mjs +0 -22
  479. package/esm2020/lib/models/calendar-event.mjs +0 -20
  480. package/esm2020/lib/models/calendar.mjs +0 -10
  481. package/esm2020/lib/models/card/card-deal.mjs +0 -10
  482. package/esm2020/lib/models/card/card-logo-urls.mjs +0 -13
  483. package/esm2020/lib/models/card/card-logo.mjs +0 -8
  484. package/esm2020/lib/models/card/card-member-ticket.mjs +0 -11
  485. package/esm2020/lib/models/card/card-theme.mjs +0 -10
  486. package/esm2020/lib/models/card/card-ticket-location.mjs +0 -9
  487. package/esm2020/lib/models/card/card-ticket.mjs +0 -21
  488. package/esm2020/lib/models/card/home-team.mjs +0 -8
  489. package/esm2020/lib/models/card/member-card.mjs +0 -14
  490. package/esm2020/lib/models/card/search-member-card.mjs +0 -9
  491. package/esm2020/lib/models/club-image.mjs +0 -18
  492. package/esm2020/lib/models/collection.mjs +0 -15
  493. package/esm2020/lib/models/contact.mjs +0 -46
  494. package/esm2020/lib/models/directory.mjs +0 -26
  495. package/esm2020/lib/models/email.mjs +0 -8
  496. package/esm2020/lib/models/event.mjs +0 -26
  497. package/esm2020/lib/models/file-object.mjs +0 -14
  498. package/esm2020/lib/models/general-image.mjs +0 -8
  499. package/esm2020/lib/models/group-role.mjs +0 -11
  500. package/esm2020/lib/models/image-urls.mjs +0 -10
  501. package/esm2020/lib/models/index.mjs +0 -62
  502. package/esm2020/lib/models/invoice/member-fee.mjs +0 -9
  503. package/esm2020/lib/models/invoice/member-invoice-row.mjs +0 -18
  504. package/esm2020/lib/models/invoice/member-invoice.mjs +0 -25
  505. package/esm2020/lib/models/invoice/payment-attempt.mjs +0 -13
  506. package/esm2020/lib/models/invoice/payment-types/credit-card.mjs +0 -16
  507. package/esm2020/lib/models/invoice/payment-types/giro.mjs +0 -11
  508. package/esm2020/lib/models/invoice/payment-types/swish.mjs +0 -18
  509. package/esm2020/lib/models/invoice/payment-types/zimpler.mjs +0 -12
  510. package/esm2020/lib/models/invoice/search-member-invoice.mjs +0 -17
  511. package/esm2020/lib/models/invoice/unpaid-member-invoice.mjs +0 -9
  512. package/esm2020/lib/models/member/member-attribute.mjs +0 -33
  513. package/esm2020/lib/models/member/member-contact.mjs +0 -21
  514. package/esm2020/lib/models/member/member-function.mjs +0 -19
  515. package/esm2020/lib/models/member/member-validation-settings.mjs +0 -13
  516. package/esm2020/lib/models/member/member.mjs +0 -75
  517. package/esm2020/lib/models/member/other-member.mjs +0 -13
  518. package/esm2020/lib/models/member/search-member.mjs +0 -20
  519. package/esm2020/lib/models/member-activity-invite.mjs +0 -31
  520. package/esm2020/lib/models/member-public-form-field-option.mjs +0 -9
  521. package/esm2020/lib/models/member-public-form-field.mjs +0 -16
  522. package/esm2020/lib/models/member-public-form.mjs +0 -30
  523. package/esm2020/lib/models/member-team-through.mjs +0 -14
  524. package/esm2020/lib/models/member-team.mjs +0 -13
  525. package/esm2020/lib/models/member-type.mjs +0 -8
  526. package/esm2020/lib/models/news.mjs +0 -47
  527. package/esm2020/lib/models/open-activity.mjs +0 -62
  528. package/esm2020/lib/models/optional-fee.mjs +0 -11
  529. package/esm2020/lib/models/overbooked-bookable-item.mjs +0 -10
  530. package/esm2020/lib/models/overbooked-location.mjs +0 -10
  531. package/esm2020/lib/models/partner.mjs +0 -9
  532. package/esm2020/lib/models/public-authentication.mjs +0 -7
  533. package/esm2020/lib/models/registration-qr-code.mjs +0 -12
  534. package/esm2020/lib/models/search-club.mjs +0 -14
  535. package/esm2020/lib/models/search-team.mjs +0 -18
  536. package/esm2020/lib/models/token.mjs +0 -8
  537. package/esm2020/lib/models/user-notification.mjs +0 -13
  538. package/esm2020/lib/models/user.mjs +0 -31
  539. package/esm2020/lib/services/activity.service.mjs +0 -470
  540. package/esm2020/lib/services/api.service.mjs +0 -106
  541. package/esm2020/lib/services/auth.service.mjs +0 -61
  542. package/esm2020/lib/services/bookable.service.mjs +0 -258
  543. package/esm2020/lib/services/booking-calendar.service.mjs +0 -794
  544. package/esm2020/lib/services/club.service.mjs +0 -34
  545. package/esm2020/lib/services/constant.service.mjs +0 -131
  546. package/esm2020/lib/services/email.service.mjs +0 -53
  547. package/esm2020/lib/services/external-link.service.mjs +0 -24
  548. package/esm2020/lib/services/factories/activity-settings-factory.mjs +0 -3
  549. package/esm2020/lib/services/factories/bookable-item-factory.mjs +0 -5
  550. package/esm2020/lib/services/factories/index.mjs +0 -86
  551. package/esm2020/lib/services/factories/member-public-form-factory.mjs +0 -26
  552. package/esm2020/lib/services/factories/payment-attempt-factory.mjs +0 -23
  553. package/esm2020/lib/services/file.service.mjs +0 -64
  554. package/esm2020/lib/services/index.mjs +0 -22
  555. package/esm2020/lib/services/invoice/invoice.service.mjs +0 -41
  556. package/esm2020/lib/services/invoice/payment-attempt.service.mjs +0 -51
  557. package/esm2020/lib/services/maintenance-mode.service.mjs +0 -21
  558. package/esm2020/lib/services/member-card.service.mjs +0 -103
  559. package/esm2020/lib/services/member-public-form.service.mjs +0 -32
  560. package/esm2020/lib/services/member.service.mjs +0 -63
  561. package/esm2020/lib/services/news.service.mjs +0 -102
  562. package/esm2020/lib/services/registration-qr-code.service.mjs +0 -36
  563. package/esm2020/lib/services/section.service.mjs +0 -23
  564. package/esm2020/lib/services/team.service.mjs +0 -88
  565. package/esm2020/lib/services/token.service.mjs +0 -57
  566. package/esm2020/lib/services/user-notification.service.mjs +0 -23
  567. package/esm2020/lib/services/user.service.mjs +0 -68
  568. package/fesm2015/myclub_se-data-access.mjs +0 -4810
  569. package/fesm2015/myclub_se-data-access.mjs.map +0 -1
  570. package/fesm2020/myclub_se-data-access.mjs +0 -4806
  571. package/fesm2020/myclub_se-data-access.mjs.map +0 -1
  572. /package/{esm2020 → esm2022}/lib/api-models/api-activity-extra-member.mjs +0 -0
  573. /package/{esm2020 → esm2022}/lib/api-models/api-activity-invite.mjs +0 -0
  574. /package/{esm2020 → esm2022}/lib/api-models/api-activity-location-group.mjs +0 -0
  575. /package/{esm2020 → esm2022}/lib/api-models/api-activity-location-part.mjs +0 -0
  576. /package/{esm2020 → esm2022}/lib/api-models/api-activity-location-tag.mjs +0 -0
  577. /package/{esm2020 → esm2022}/lib/api-models/api-activity-location.mjs +0 -0
  578. /package/{esm2020 → esm2022}/lib/api-models/api-activity-participant.mjs +0 -0
  579. /package/{esm2020 → esm2022}/lib/api-models/api-activity-settings.mjs +0 -0
  580. /package/{esm2020 → esm2022}/lib/api-models/api-activity-type.mjs +0 -0
  581. /package/{esm2020 → esm2022}/lib/api-models/api-activity.mjs +0 -0
  582. /package/{esm2020 → esm2022}/lib/api-models/api-auth/api-auth-member.mjs +0 -0
  583. /package/{esm2020 → esm2022}/lib/api-models/api-auth/api-auth-section.mjs +0 -0
  584. /package/{esm2020 → esm2022}/lib/api-models/api-auth/api-auth-team-section.mjs +0 -0
  585. /package/{esm2020 → esm2022}/lib/api-models/api-auth/api-auth-team.mjs +0 -0
  586. /package/{esm2020 → esm2022}/lib/api-models/api-auth/api-auth.mjs +0 -0
  587. /package/{esm2020 → esm2022}/lib/api-models/api-auth/index.mjs +0 -0
  588. /package/{esm2020 → esm2022}/lib/api-models/api-bookable-group.mjs +0 -0
  589. /package/{esm2020 → esm2022}/lib/api-models/api-bookable-part.mjs +0 -0
  590. /package/{esm2020 → esm2022}/lib/api-models/api-bookable-tag.mjs +0 -0
  591. /package/{esm2020 → esm2022}/lib/api-models/api-booking-calendar-slot.mjs +0 -0
  592. /package/{esm2020 → esm2022}/lib/api-models/api-booking-settings.mjs +0 -0
  593. /package/{esm2020 → esm2022}/lib/api-models/api-calendar-event.mjs +0 -0
  594. /package/{esm2020 → esm2022}/lib/api-models/api-calendar.mjs +0 -0
  595. /package/{esm2020 → esm2022}/lib/api-models/api-card/api-card-deal.mjs +0 -0
  596. /package/{esm2020 → esm2022}/lib/api-models/api-card/api-card-logo-urls.mjs +0 -0
  597. /package/{esm2020 → esm2022}/lib/api-models/api-card/api-card-logo.mjs +0 -0
  598. /package/{esm2020 → esm2022}/lib/api-models/api-card/api-card-member-ticket.mjs +0 -0
  599. /package/{esm2020 → esm2022}/lib/api-models/api-card/api-card-theme.mjs +0 -0
  600. /package/{esm2020 → esm2022}/lib/api-models/api-card/api-card-ticket-location.mjs +0 -0
  601. /package/{esm2020 → esm2022}/lib/api-models/api-card/api-card-ticket.mjs +0 -0
  602. /package/{esm2020 → esm2022}/lib/api-models/api-card/api-card.mjs +0 -0
  603. /package/{esm2020 → esm2022}/lib/api-models/api-card/api-home-team.mjs +0 -0
  604. /package/{esm2020 → esm2022}/lib/api-models/api-card/api-member-card.mjs +0 -0
  605. /package/{esm2020 → esm2022}/lib/api-models/api-card/api-search-member-card.mjs +0 -0
  606. /package/{esm2020 → esm2022}/lib/api-models/api-card/index.mjs +0 -0
  607. /package/{esm2020 → esm2022}/lib/api-models/api-club-image.mjs +0 -0
  608. /package/{esm2020 → esm2022}/lib/api-models/api-club-section.mjs +0 -0
  609. /package/{esm2020 → esm2022}/lib/api-models/api-club.mjs +0 -0
  610. /package/{esm2020 → esm2022}/lib/api-models/api-collection.mjs +0 -0
  611. /package/{esm2020 → esm2022}/lib/api-models/api-directory.mjs +0 -0
  612. /package/{esm2020 → esm2022}/lib/api-models/api-event.mjs +0 -0
  613. /package/{esm2020 → esm2022}/lib/api-models/api-external-link.mjs +0 -0
  614. /package/{esm2020 → esm2022}/lib/api-models/api-file-object.mjs +0 -0
  615. /package/{esm2020 → esm2022}/lib/api-models/api-general-image.mjs +0 -0
  616. /package/{esm2020 → esm2022}/lib/api-models/api-group-role.mjs +0 -0
  617. /package/{esm2020 → esm2022}/lib/api-models/api-image-urls.mjs +0 -0
  618. /package/{esm2020 → esm2022}/lib/api-models/api-invoice/api-invoice-payments/api-credit-card.mjs +0 -0
  619. /package/{esm2020 → esm2022}/lib/api-models/api-invoice/api-invoice-payments/api-giro.mjs +0 -0
  620. /package/{esm2020 → esm2022}/lib/api-models/api-invoice/api-invoice-payments/api-swish.mjs +0 -0
  621. /package/{esm2020 → esm2022}/lib/api-models/api-invoice/api-invoice-payments/api-zimpler.mjs +0 -0
  622. /package/{esm2020 → esm2022}/lib/api-models/api-invoice/api-invoice-payments/index.mjs +0 -0
  623. /package/{esm2020 → esm2022}/lib/api-models/api-invoice/api-member-fee.mjs +0 -0
  624. /package/{esm2020 → esm2022}/lib/api-models/api-invoice/api-member-invoice-row.mjs +0 -0
  625. /package/{esm2020 → esm2022}/lib/api-models/api-invoice/api-member-invoice.mjs +0 -0
  626. /package/{esm2020 → esm2022}/lib/api-models/api-invoice/api-payment-attempt.mjs +0 -0
  627. /package/{esm2020 → esm2022}/lib/api-models/api-invoice/api-search-member-invoice.mjs +0 -0
  628. /package/{esm2020 → esm2022}/lib/api-models/api-invoice/api-swish-qr-code.mjs +0 -0
  629. /package/{esm2020 → esm2022}/lib/api-models/api-invoice/api-unpaid-member-invoice.mjs +0 -0
  630. /package/{esm2020 → esm2022}/lib/api-models/api-invoice/index.mjs +0 -0
  631. /package/{esm2020 → esm2022}/lib/api-models/api-invoice/payment-attempt-data-types/api-payment-attempt-credit-card-data-type.mjs +0 -0
  632. /package/{esm2020 → esm2022}/lib/api-models/api-invoice/payment-attempt-data-types/api-payment-attempt-swish-data-type.mjs +0 -0
  633. /package/{esm2020 → esm2022}/lib/api-models/api-invoice/payment-attempt-data-types/api-payment-attempt-zimpler-data-type.mjs +0 -0
  634. /package/{esm2020 → esm2022}/lib/api-models/api-invoice/payment-attempt-data-types/index.mjs +0 -0
  635. /package/{esm2020 → esm2022}/lib/api-models/api-member/api-contact.mjs +0 -0
  636. /package/{esm2020 → esm2022}/lib/api-models/api-member/api-member-attribute.mjs +0 -0
  637. /package/{esm2020 → esm2022}/lib/api-models/api-member/api-member-contact.mjs +0 -0
  638. /package/{esm2020 → esm2022}/lib/api-models/api-member/api-member-function.mjs +0 -0
  639. /package/{esm2020 → esm2022}/lib/api-models/api-member/api-member-validation-settings.mjs +0 -0
  640. /package/{esm2020 → esm2022}/lib/api-models/api-member/api-member.mjs +0 -0
  641. /package/{esm2020 → esm2022}/lib/api-models/api-member/api-other-member-field.mjs +0 -0
  642. /package/{esm2020 → esm2022}/lib/api-models/api-member/api-other-member.mjs +0 -0
  643. /package/{esm2020 → esm2022}/lib/api-models/api-member/api-search-member.mjs +0 -0
  644. /package/{esm2020 → esm2022}/lib/api-models/api-member/index.mjs +0 -0
  645. /package/{esm2020 → esm2022}/lib/api-models/api-member-activity-invite.mjs +0 -0
  646. /package/{esm2020 → esm2022}/lib/api-models/api-member-public-form-field-option.mjs +0 -0
  647. /package/{esm2020 → esm2022}/lib/api-models/api-member-public-form-field.mjs +0 -0
  648. /package/{esm2020 → esm2022}/lib/api-models/api-member-public-form.mjs +0 -0
  649. /package/{esm2020 → esm2022}/lib/api-models/api-member-team-through.mjs +0 -0
  650. /package/{esm2020 → esm2022}/lib/api-models/api-member-team.mjs +0 -0
  651. /package/{esm2020 → esm2022}/lib/api-models/api-member-type.mjs +0 -0
  652. /package/{esm2020 → esm2022}/lib/api-models/api-news.mjs +0 -0
  653. /package/{esm2020 → esm2022}/lib/api-models/api-open-activity.mjs +0 -0
  654. /package/{esm2020 → esm2022}/lib/api-models/api-optional-fee.mjs +0 -0
  655. /package/{esm2020 → esm2022}/lib/api-models/api-overbooked-bookable-item.mjs +0 -0
  656. /package/{esm2020 → esm2022}/lib/api-models/api-overbooked-location.mjs +0 -0
  657. /package/{esm2020 → esm2022}/lib/api-models/api-partner.mjs +0 -0
  658. /package/{esm2020 → esm2022}/lib/api-models/api-public-token.mjs +0 -0
  659. /package/{esm2020 → esm2022}/lib/api-models/api-registration-qr-code.mjs +0 -0
  660. /package/{esm2020 → esm2022}/lib/api-models/api-search-club.mjs +0 -0
  661. /package/{esm2020 → esm2022}/lib/api-models/api-search-team.mjs +0 -0
  662. /package/{esm2020 → esm2022}/lib/api-models/api-section.mjs +0 -0
  663. /package/{esm2020 → esm2022}/lib/api-models/api-token.mjs +0 -0
  664. /package/{esm2020 → esm2022}/lib/api-models/api-user-notification.mjs +0 -0
  665. /package/{esm2020 → esm2022}/lib/api-models/api-user.mjs +0 -0
  666. /package/{esm2020 → esm2022}/lib/authentication/authentication.config.mjs +0 -0
  667. /package/{esm2020 → esm2022}/lib/authentication/index.mjs +0 -0
  668. /package/{esm2020 → esm2022}/lib/interfaces/email-recipient.interface.mjs +0 -0
  669. /package/{esm2020 → esm2022}/lib/interfaces/index.mjs +0 -0
  670. /package/{esm2020 → esm2022}/lib/interfaces/new-account.interface.mjs +0 -0
  671. /package/{esm2020 → esm2022}/lib/interfaces/open-activity-search-params.interface.mjs +0 -0
  672. /package/{esm2020 → esm2022}/lib/interfaces/option.interface.mjs +0 -0
  673. /package/{esm2020 → esm2022}/lib/interfaces/sms-recipient.interface.mjs +0 -0
  674. /package/{esm2020 → esm2022}/lib/maintenance/index.mjs +0 -0
  675. /package/{esm2020 → esm2022}/lib/models/auth/index.mjs +0 -0
  676. /package/{esm2020 → esm2022}/lib/models/card/index.mjs +0 -0
  677. /package/{esm2020 → esm2022}/lib/models/invoice/index.mjs +0 -0
  678. /package/{esm2020 → esm2022}/lib/models/invoice/payment-attempt-data-types/index.mjs +0 -0
  679. /package/{esm2020 → esm2022}/lib/models/invoice/payment-attempt-data-types/payment-attempt-credit-card-data-type.mjs +0 -0
  680. /package/{esm2020 → esm2022}/lib/models/invoice/payment-attempt-data-types/payment-attempt-swish-data-type.mjs +0 -0
  681. /package/{esm2020 → esm2022}/lib/models/invoice/payment-attempt-data-types/payment-attempt-zimpler-data-type.mjs +0 -0
  682. /package/{esm2020 → esm2022}/lib/models/invoice/payment-types/index.mjs +0 -0
  683. /package/{esm2020 → esm2022}/lib/models/member/index.mjs +0 -0
  684. /package/{esm2020 → esm2022}/lib/models/role.mjs +0 -0
  685. /package/{esm2020 → esm2022}/lib/services/factories/activity-extra-member-factory.mjs +0 -0
  686. /package/{esm2020 → esm2022}/lib/services/factories/activity-factory.mjs +0 -0
  687. /package/{esm2020 → esm2022}/lib/services/factories/activity-invite-factory.mjs +0 -0
  688. /package/{esm2020 → esm2022}/lib/services/factories/activity-location-factory.mjs +0 -0
  689. /package/{esm2020 → esm2022}/lib/services/factories/activity-location-group-factory.mjs +0 -0
  690. /package/{esm2020 → esm2022}/lib/services/factories/activity-location-part-factory.mjs +0 -0
  691. /package/{esm2020 → esm2022}/lib/services/factories/activity-location-tag-factory.mjs +0 -0
  692. /package/{esm2020 → esm2022}/lib/services/factories/activity-participant-factory.mjs +0 -0
  693. /package/{esm2020 → esm2022}/lib/services/factories/activity-type-factory.mjs +0 -0
  694. /package/{esm2020 → esm2022}/lib/services/factories/auth-factory.mjs +0 -0
  695. /package/{esm2020 → esm2022}/lib/services/factories/auth-member-factory.mjs +0 -0
  696. /package/{esm2020 → esm2022}/lib/services/factories/auth-section-factory.mjs +0 -0
  697. /package/{esm2020 → esm2022}/lib/services/factories/auth-team-factory.mjs +0 -0
  698. /package/{esm2020 → esm2022}/lib/services/factories/auth-team-section-factory.mjs +0 -0
  699. /package/{esm2020 → esm2022}/lib/services/factories/bookable-group-factory.mjs +0 -0
  700. /package/{esm2020 → esm2022}/lib/services/factories/bookable-part-factory.mjs +0 -0
  701. /package/{esm2020 → esm2022}/lib/services/factories/bookable-tag-factory.mjs +0 -0
  702. /package/{esm2020 → esm2022}/lib/services/factories/booking-calendar-slot-factory.mjs +0 -0
  703. /package/{esm2020 → esm2022}/lib/services/factories/booking-settings-factory.mjs +0 -0
  704. /package/{esm2020 → esm2022}/lib/services/factories/card-deal-factory.mjs +0 -0
  705. /package/{esm2020 → esm2022}/lib/services/factories/card-factory.mjs +0 -0
  706. /package/{esm2020 → esm2022}/lib/services/factories/card-logo-factory.mjs +0 -0
  707. /package/{esm2020 → esm2022}/lib/services/factories/card-logo-urls-factory.mjs +0 -0
  708. /package/{esm2020 → esm2022}/lib/services/factories/card-member-ticket-factory.mjs +0 -0
  709. /package/{esm2020 → esm2022}/lib/services/factories/card-theme-factory.mjs +0 -0
  710. /package/{esm2020 → esm2022}/lib/services/factories/card-ticket-factory.mjs +0 -0
  711. /package/{esm2020 → esm2022}/lib/services/factories/card-ticket-location-factory.mjs +0 -0
  712. /package/{esm2020 → esm2022}/lib/services/factories/club-factory.mjs +0 -0
  713. /package/{esm2020 → esm2022}/lib/services/factories/club-image-factory.mjs +0 -0
  714. /package/{esm2020 → esm2022}/lib/services/factories/club-section-factory.mjs +0 -0
  715. /package/{esm2020 → esm2022}/lib/services/factories/contact-factory.mjs +0 -0
  716. /package/{esm2020 → esm2022}/lib/services/factories/credit-card-factory.mjs +0 -0
  717. /package/{esm2020 → esm2022}/lib/services/factories/directory-factory.mjs +0 -0
  718. /package/{esm2020 → esm2022}/lib/services/factories/event-factory.mjs +0 -0
  719. /package/{esm2020 → esm2022}/lib/services/factories/external-link-factory.mjs +0 -0
  720. /package/{esm2020 → esm2022}/lib/services/factories/file-factory.mjs +0 -0
  721. /package/{esm2020 → esm2022}/lib/services/factories/general-image-factory.mjs +0 -0
  722. /package/{esm2020 → esm2022}/lib/services/factories/giro-factory.mjs +0 -0
  723. /package/{esm2020 → esm2022}/lib/services/factories/group-role-factory.mjs +0 -0
  724. /package/{esm2020 → esm2022}/lib/services/factories/home-team-factory.mjs +0 -0
  725. /package/{esm2020 → esm2022}/lib/services/factories/image-urls-factory.mjs +0 -0
  726. /package/{esm2020 → esm2022}/lib/services/factories/member-attribute-factory.mjs +0 -0
  727. /package/{esm2020 → esm2022}/lib/services/factories/member-card-factory.mjs +0 -0
  728. /package/{esm2020 → esm2022}/lib/services/factories/member-contact-factory.mjs +0 -0
  729. /package/{esm2020 → esm2022}/lib/services/factories/member-factory.mjs +0 -0
  730. /package/{esm2020 → esm2022}/lib/services/factories/member-fee-factory.mjs +0 -0
  731. /package/{esm2020 → esm2022}/lib/services/factories/member-function-factory.mjs +0 -0
  732. /package/{esm2020 → esm2022}/lib/services/factories/member-invite-factory.mjs +0 -0
  733. /package/{esm2020 → esm2022}/lib/services/factories/member-invoice-factory.mjs +0 -0
  734. /package/{esm2020 → esm2022}/lib/services/factories/member-invoice-row-factory.mjs +0 -0
  735. /package/{esm2020 → esm2022}/lib/services/factories/member-public-form-field-factory.mjs +0 -0
  736. /package/{esm2020 → esm2022}/lib/services/factories/member-public-form-field-option-factory.mjs +0 -0
  737. /package/{esm2020 → esm2022}/lib/services/factories/member-team-factory.mjs +0 -0
  738. /package/{esm2020 → esm2022}/lib/services/factories/member-team-through-factory.mjs +0 -0
  739. /package/{esm2020 → esm2022}/lib/services/factories/member-type-factory.mjs +0 -0
  740. /package/{esm2020 → esm2022}/lib/services/factories/member-validation-settings-factory.mjs +0 -0
  741. /package/{esm2020 → esm2022}/lib/services/factories/news-factory.mjs +0 -0
  742. /package/{esm2020 → esm2022}/lib/services/factories/open-activity-factory.mjs +0 -0
  743. /package/{esm2020 → esm2022}/lib/services/factories/optional-fee-factory.mjs +0 -0
  744. /package/{esm2020 → esm2022}/lib/services/factories/other-member-factory.mjs +0 -0
  745. /package/{esm2020 → esm2022}/lib/services/factories/other-member-field-factory.mjs +0 -0
  746. /package/{esm2020 → esm2022}/lib/services/factories/overbooked-bookable-item-factory.mjs +0 -0
  747. /package/{esm2020 → esm2022}/lib/services/factories/overbooked-location-factory.mjs +0 -0
  748. /package/{esm2020 → esm2022}/lib/services/factories/partner-factory.mjs +0 -0
  749. /package/{esm2020 → esm2022}/lib/services/factories/public-authentication-factory.mjs +0 -0
  750. /package/{esm2020 → esm2022}/lib/services/factories/registration-qr-code-factory.mjs +0 -0
  751. /package/{esm2020 → esm2022}/lib/services/factories/search-club-factory.mjs +0 -0
  752. /package/{esm2020 → esm2022}/lib/services/factories/search-member-card-factory.mjs +0 -0
  753. /package/{esm2020 → esm2022}/lib/services/factories/search-member-factory.mjs +0 -0
  754. /package/{esm2020 → esm2022}/lib/services/factories/search-member-invoice-factory.mjs +0 -0
  755. /package/{esm2020 → esm2022}/lib/services/factories/search-member-team-through-factory.mjs +0 -0
  756. /package/{esm2020 → esm2022}/lib/services/factories/search-team-factory.mjs +0 -0
  757. /package/{esm2020 → esm2022}/lib/services/factories/section-factory.mjs +0 -0
  758. /package/{esm2020 → esm2022}/lib/services/factories/swish-factory.mjs +0 -0
  759. /package/{esm2020 → esm2022}/lib/services/factories/token-factory.mjs +0 -0
  760. /package/{esm2020 → esm2022}/lib/services/factories/unpaid-invoice-factory.mjs +0 -0
  761. /package/{esm2020 → esm2022}/lib/services/factories/user-factory.mjs +0 -0
  762. /package/{esm2020 → esm2022}/lib/services/factories/user-notification-factory.mjs +0 -0
  763. /package/{esm2020 → esm2022}/lib/services/factories/zimpler-factory.mjs +0 -0
  764. /package/{esm2020 → esm2022}/lib/services/invoice/index.mjs +0 -0
  765. /package/{esm2020 → esm2022}/lib/types/attribute-type.mjs +0 -0
  766. /package/{esm2020 → esm2022}/lib/types/booking-calendar-slot-reserved-time-position.mjs +0 -0
  767. /package/{esm2020 → esm2022}/lib/types/booking-calendar-slot-type.mjs +0 -0
  768. /package/{esm2020 → esm2022}/lib/types/contact-type.mjs +0 -0
  769. /package/{esm2020 → esm2022}/lib/types/grant-type.mjs +0 -0
  770. /package/{esm2020 → esm2022}/lib/types/index.mjs +0 -0
  771. /package/{esm2020 → esm2022}/lib/types/payment-attempt-status-type.mjs +0 -0
  772. /package/{esm2020 → esm2022}/lib/types/payment-attempt-type.mjs +0 -0
  773. /package/{esm2020 → esm2022}/lib/types/sex-type.mjs +0 -0
  774. /package/{esm2020 → esm2022}/myclub_se-data-access.mjs +0 -0
@@ -0,0 +1,102 @@
1
+ import { inject, Injectable } from '@angular/core';
2
+ import { Actions, createEffect, ofType } from '@ngrx/effects';
3
+ import { exhaustMap, map, mergeMap } from 'rxjs/operators';
4
+ import { createBookableGroupAction, createBookableGroupFailureAction, createBookableGroupSuccessAction, createBookableItemAction, createBookableItemFailureAction, createBookableItemSuccessAction, createBookableTagAction, createBookableTagFailureAction, createBookableTagSuccessAction, createBookingCalendarAction, createBookingCalendarFailureAction, createBookingCalendarSlotAction, createBookingCalendarSlotFailureAction, createBookingCalendarSlotSessionAction, createBookingCalendarSlotSessionFailureAction, createBookingCalendarSlotSessionSuccessAction, createBookingCalendarSlotSuccessAction, createBookingCalendarSuccessAction, deleteBookableTagAction, deleteBookableTagFailureAction, deleteBookableTagSuccessAction, deleteBookingCalendarAction, deleteBookingCalendarFailureAction, deleteBookingCalendarRepeatableSlotAction, deleteBookingCalendarRepeatableSlotFailureAction, deleteBookingCalendarRepeatableSlotSessionAction, deleteBookingCalendarRepeatableSlotSessionFailureAction, deleteBookingCalendarRepeatableSlotSessionSuccessAction, deleteBookingCalendarRepeatableSlotSuccessAction, deleteBookingCalendarSlotAction, deleteBookingCalendarSlotFailureAction, deleteBookingCalendarSlotSessionAction, deleteBookingCalendarSlotSessionFailureAction, deleteBookingCalendarSlotSessionSuccessAction, deleteBookingCalendarSlotSuccessAction, deleteBookingCalendarSuccessAction, listActivityTypeAction, listActivityTypeFailureAction, listActivityTypeSuccessAction, listBookableGroupAction, listBookableGroupFailureAction, listBookableGroupSuccessAction, listBookableItemAction, listBookableItemFailureAction, listBookableItemSuccessAction, listBookableTagAction, listBookableTagFailureAction, listBookableTagSuccessAction, listCalendarAction, listCalendarFailureAction, listCalendarSuccessAction, listLocationAction, listLocationFailureAction, listLocationSuccessAction, listTeamAction, listTeamFailureAction, listTeamSuccessAction, retrieveBookingSettingsAction, retrieveBookingSettingsFailureAction, retrieveBookingSettingsSuccessAction, retrieveSettingsAction, retrieveSettingsFailureAction, retrieveSettingsSuccessAction, updateActivityTypeAction, updateActivityTypeFailureAction, updateActivityTypeSuccessAction, updateBookableGroupAction, updateBookableGroupFailureAction, updateBookableGroupSuccessAction, updateBookableItemAction, updateBookableItemFailureAction, updateBookableItemSuccessAction, updateBookableTagAction, updateBookableTagFailureAction, updateBookableTagSuccessAction, updateBookingCalendarAction, updateBookingCalendarFailureAction, updateBookingCalendarSlotAction, updateBookingCalendarSlotFailureAction, updateBookingCalendarSlotSessionAction, updateBookingCalendarSlotSessionFailureAction, updateBookingCalendarSlotSessionSuccessAction, updateBookingCalendarSlotSuccessAction, updateBookingCalendarSuccessAction, updateBookingSettingsAction, updateBookingSettingsFailureAction, updateBookingSettingsSuccessAction } from '../actions';
5
+ import { ActivityService, BookableService, BookingCalendarService, TeamService } from '../../services';
6
+ import { catchError, of } from 'rxjs';
7
+ import * as i0 from "@angular/core";
8
+ export class BookingEffects {
9
+ actions$ = inject(Actions);
10
+ bookingCalendarService = inject(BookingCalendarService);
11
+ bookableService = inject(BookableService);
12
+ activityService = inject(ActivityService);
13
+ teamService = inject(TeamService);
14
+ listCalendars$ = createEffect(() => this.actions$.pipe(ofType(listCalendarAction), exhaustMap(({ role, clubOrSectionOrTeamId }) => this.bookingCalendarService.getBookingCalendars(role, clubOrSectionOrTeamId).pipe(map((calendars) => listCalendarSuccessAction({ bookingCalendars: calendars.toArray() })))), catchError((error) => of(listCalendarFailureAction({ payload: error })))));
15
+ listLocations$ = createEffect(() => this.actions$.pipe(ofType(listLocationAction), exhaustMap(({ role, clubOrSectionOrTeamId }) => this.activityService.getActivityLocations(role, clubOrSectionOrTeamId, true).pipe(map((locations) => listLocationSuccessAction({ locations: locations.toArray() })))), catchError((error) => of(listLocationFailureAction({ payload: error })))));
16
+ listBookableItems$ = createEffect(() => this.actions$.pipe(ofType(listBookableItemAction), exhaustMap(({ role, clubOrSectionOrTeamId }) => this.bookableService.getBookableItems(role, clubOrSectionOrTeamId).pipe(map((bookableItems) => listBookableItemSuccessAction({ items: bookableItems.toArray() })))), catchError((error) => of(listBookableItemFailureAction({ payload: error })))));
17
+ listBookableGroups$ = createEffect(() => this.actions$.pipe(ofType(listBookableGroupAction), exhaustMap(({ role, clubOrSectionOrTeamId }) => this.bookableService.getBookableGroups(role, clubOrSectionOrTeamId).pipe(map((bookableGroups) => listBookableGroupSuccessAction({ groups: bookableGroups.toArray() })))), catchError((error) => of(listBookableGroupFailureAction({ payload: error })))));
18
+ listBookableTags$ = createEffect(() => this.actions$.pipe(ofType(listBookableTagAction), exhaustMap(({ role, clubOrSectionOrTeamId }) => this.bookableService.getBookableTags(role, clubOrSectionOrTeamId).pipe(map((bookableTags) => listBookableTagSuccessAction({ tags: bookableTags.toArray() })))), catchError((error) => of(listBookableTagFailureAction({ payload: error })))));
19
+ listTeams$ = createEffect(() => this.actions$.pipe(ofType(listTeamAction), exhaustMap(({ role, clubOrSectionOrTeamId }) => this.teamService.getTeams(role, clubOrSectionOrTeamId).pipe(map((teams) => listTeamSuccessAction({ teams: teams.toArray() })))), catchError((error) => of(listTeamFailureAction({ payload: error })))));
20
+ retrieveSettings$ = createEffect(() => this.actions$.pipe(ofType(retrieveSettingsAction), exhaustMap(({ role, clubOrSectionOrTeamId }) => this.activityService.getActivitySettings(role, clubOrSectionOrTeamId).pipe(map((settings) => retrieveSettingsSuccessAction({ settings: settings })))), catchError((error) => of(retrieveSettingsFailureAction({ payload: error })))));
21
+ retrieveBookingSettings$ = createEffect(() => this.actions$.pipe(ofType(retrieveBookingSettingsAction), exhaustMap(({ role, clubOrSectionOrTeamId }) => this.bookingCalendarService.getBookingSettings(role, clubOrSectionOrTeamId).pipe(map((bookingSettings) => retrieveBookingSettingsSuccessAction({ settings: bookingSettings })))), catchError((error) => of(retrieveBookingSettingsFailureAction({ payload: error })))));
22
+ listActivityTypes$ = createEffect(() => this.actions$.pipe(ofType(listActivityTypeAction), exhaustMap(({ role, clubOrSectionOrTeamId }) => this.activityService.getActivityTypes(role, clubOrSectionOrTeamId).pipe(map((activityTypes) => listActivityTypeSuccessAction({ activityTypes: activityTypes.toArray() })))), catchError((error) => of(listActivityTypeFailureAction({ payload: error })))));
23
+ updateActivityType$ = createEffect(() => this.actions$.pipe(ofType(updateActivityTypeAction), exhaustMap(({ role, clubOrSectionOrTeamId, activityType }) => this.activityService.updateActivityType(role, clubOrSectionOrTeamId, activityType).pipe(mergeMap((activityType) => [
24
+ updateActivityTypeSuccessAction({ activityType: activityType }),
25
+ listActivityTypeAction({ role, clubOrSectionOrTeamId }),
26
+ ]), catchError((error) => of(updateActivityTypeFailureAction({ payload: error })))))));
27
+ createBookableItem$ = createEffect(() => this.actions$.pipe(ofType(createBookableItemAction), exhaustMap(({ role, clubOrSectionOrTeamId, item }) => this.bookableService.createBookableItem(role, clubOrSectionOrTeamId, { ...item }).pipe(mergeMap((bookableItem) => [
28
+ createBookableItemSuccessAction({ item: bookableItem }),
29
+ listBookableItemAction({ role, clubOrSectionOrTeamId }),
30
+ ]), catchError((error) => of(createBookableItemFailureAction({ payload: error })))))));
31
+ updateBookableItem$ = createEffect(() => this.actions$.pipe(ofType(updateBookableItemAction), exhaustMap(({ role, clubOrSectionOrTeamId, item }) => this.bookableService.updateBookableItem(role, clubOrSectionOrTeamId, { ...item }).pipe(mergeMap((bookableItem) => [
32
+ updateBookableItemSuccessAction({ item: bookableItem }),
33
+ listBookableItemAction({ role, clubOrSectionOrTeamId }),
34
+ listBookableGroupAction({ role, clubOrSectionOrTeamId }),
35
+ ]), catchError((error) => of(updateBookableItemFailureAction({ payload: error })))))));
36
+ createBookableTag$ = createEffect(() => this.actions$.pipe(ofType(createBookableTagAction), exhaustMap(({ role, clubOrSectionOrTeamId, tag }) => this.bookableService.createBookableTag(role, clubOrSectionOrTeamId, { ...tag }).pipe(mergeMap((tag) => [
37
+ createBookableTagSuccessAction({ tag: tag }),
38
+ listBookableTagAction({ role, clubOrSectionOrTeamId }),
39
+ ]), catchError((error) => of(createBookableTagFailureAction({ payload: error })))))));
40
+ updateBookableTag$ = createEffect(() => this.actions$.pipe(ofType(updateBookableTagAction), exhaustMap(({ role, clubOrSectionOrTeamId, tag }) => this.bookableService.updateBookableTag(role, clubOrSectionOrTeamId, { ...tag }).pipe(mergeMap((tag) => [
41
+ updateBookableTagSuccessAction({ tag: tag }),
42
+ ]), catchError((error) => of(updateBookableTagFailureAction({ payload: error })))))));
43
+ deleteBookableTag$ = createEffect(() => this.actions$.pipe(ofType(deleteBookableTagAction), exhaustMap(({ role, clubOrSectionOrTeamId, tag }) => this.bookableService.deleteBookableTag(role, clubOrSectionOrTeamId, tag).pipe(mergeMap(() => [
44
+ deleteBookableTagSuccessAction({ tag: tag }),
45
+ listBookableTagAction({ role, clubOrSectionOrTeamId }),
46
+ ]), catchError((error) => of(deleteBookableTagFailureAction({ payload: error })))))));
47
+ createBookableGroup$ = createEffect(() => this.actions$.pipe(ofType(createBookableGroupAction), exhaustMap(({ role, clubOrSectionOrTeamId, group }) => this.bookableService.createBookableGroup(role, clubOrSectionOrTeamId, { ...group }).pipe(mergeMap((bookableGroup) => [
48
+ createBookableGroupSuccessAction({ group: bookableGroup }),
49
+ listBookableGroupAction({ role, clubOrSectionOrTeamId }),
50
+ ]), catchError((error) => of(createBookableGroupFailureAction({ payload: error })))))));
51
+ updateBookableGroup$ = createEffect(() => this.actions$.pipe(ofType(updateBookableGroupAction), exhaustMap(({ role, clubOrSectionOrTeamId, group }) => this.bookableService.updateBookableGroup(role, clubOrSectionOrTeamId, { ...group }).pipe(mergeMap((bookableGroup) => [
52
+ updateBookableGroupSuccessAction({ group: bookableGroup }),
53
+ listBookableGroupAction({ role, clubOrSectionOrTeamId }),
54
+ listCalendarAction({ role, clubOrSectionOrTeamId }),
55
+ ]), catchError((error) => of(updateBookableGroupFailureAction({ payload: error })))))));
56
+ createBookingCalendar$ = createEffect(() => this.actions$.pipe(ofType(createBookingCalendarAction), exhaustMap(({ role, clubOrSectionOrTeamId, calendar }) => this.bookingCalendarService.createBookingCalendar(role, clubOrSectionOrTeamId, { ...calendar }).pipe(mergeMap((bookingCalendar) => [
57
+ createBookingCalendarSuccessAction({ calendar: bookingCalendar }),
58
+ listCalendarAction({ role, clubOrSectionOrTeamId }),
59
+ ]), catchError((error) => of(createBookingCalendarFailureAction({ payload: error })))))));
60
+ updateBookingCalendar$ = createEffect(() => this.actions$.pipe(ofType(updateBookingCalendarAction), exhaustMap(({ role, clubOrSectionOrTeamId, calendar }) => this.bookingCalendarService.updateBookingCalendar(role, clubOrSectionOrTeamId, { ...calendar }).pipe(mergeMap((bookingCalendar) => [
61
+ updateBookingCalendarSuccessAction({ calendar: bookingCalendar }),
62
+ listCalendarAction({ role, clubOrSectionOrTeamId }),
63
+ ]), catchError((error) => of(updateBookingCalendarFailureAction({ payload: error })))))));
64
+ deleteBookingCalendar$ = createEffect(() => this.actions$.pipe(ofType(deleteBookingCalendarAction), exhaustMap(({ role, clubOrSectionOrTeamId, calendar }) => this.bookingCalendarService.deleteBookingCalendar(role, clubOrSectionOrTeamId, calendar.id).pipe(mergeMap(() => [
65
+ deleteBookingCalendarSuccessAction({ calendar: calendar }),
66
+ listCalendarAction({ role, clubOrSectionOrTeamId }),
67
+ ]), catchError((error) => of(deleteBookingCalendarFailureAction({ payload: error })))))));
68
+ updateBookingSettings$ = createEffect(() => this.actions$.pipe(ofType(updateBookingSettingsAction), exhaustMap(({ role, clubOrSectionOrTeamId, settings }) => this.bookingCalendarService.updateBookingSettings(role, clubOrSectionOrTeamId, settings).pipe(mergeMap((newSettings) => [
69
+ updateBookingSettingsSuccessAction({ settings: newSettings }),
70
+ retrieveBookingSettingsAction({ role, clubOrSectionOrTeamId }),
71
+ ]), catchError((error) => of(updateBookingSettingsFailureAction({ payload: error })))))));
72
+ createBookingCalendarSlot$ = createEffect(() => this.actions$.pipe(ofType(createBookingCalendarSlotAction), exhaustMap(({ role, clubOrSectionOrTeamId, slot }) => this.bookingCalendarService.createBookingCalendarSlot(role, clubOrSectionOrTeamId, { ...slot }).pipe(mergeMap((slot) => [
73
+ createBookingCalendarSlotSuccessAction({ slot: slot }),
74
+ ]), catchError((error) => of(createBookingCalendarSlotFailureAction({ payload: error })))))));
75
+ updateBookingCalendarSlot$ = createEffect(() => this.actions$.pipe(ofType(updateBookingCalendarSlotAction), exhaustMap(({ role, clubOrSectionOrTeamId, slot }) => this.bookingCalendarService.updateBookingCalendarSlot(role, clubOrSectionOrTeamId, { ...slot }).pipe(mergeMap((slot) => [
76
+ updateBookingCalendarSlotSuccessAction({ slot: slot }),
77
+ ]), catchError((error) => of(updateBookingCalendarSlotFailureAction({ payload: error })))))));
78
+ deleteBookingCalendarSlot$ = createEffect(() => this.actions$.pipe(ofType(deleteBookingCalendarSlotAction), exhaustMap(({ role, clubOrSectionOrTeamId, slot }) => this.bookingCalendarService.deleteBookingCalendarSlot(role, clubOrSectionOrTeamId, slot.id).pipe(mergeMap(() => [
79
+ deleteBookingCalendarSlotSuccessAction({ slot: slot }),
80
+ ]), catchError((error) => of(deleteBookingCalendarSlotFailureAction({ payload: error })))))));
81
+ deleteBookingCalendarRepeatableSlot$ = createEffect(() => this.actions$.pipe(ofType(deleteBookingCalendarRepeatableSlotAction), exhaustMap(({ role, clubOrSectionOrTeamId, slot, deleteUntilDate }) => this.bookingCalendarService.deleteBookingCalendarSlotRepeatable(role, clubOrSectionOrTeamId, slot.id, deleteUntilDate).pipe(mergeMap(() => [
82
+ deleteBookingCalendarRepeatableSlotSuccessAction({ slot: slot }),
83
+ ]), catchError((error) => of(deleteBookingCalendarRepeatableSlotFailureAction({ payload: error })))))));
84
+ createBookingCalendarSlotSession$ = createEffect(() => this.actions$.pipe(ofType(createBookingCalendarSlotSessionAction), exhaustMap(({ role, clubOrSectionOrTeamId, session }) => this.bookingCalendarService.createBookingCalendarSlotSession(role, clubOrSectionOrTeamId, { ...session }).pipe(mergeMap((session) => [
85
+ createBookingCalendarSlotSessionSuccessAction({ session: session }),
86
+ ]), catchError((error) => of(createBookingCalendarSlotSessionFailureAction({ payload: error })))))));
87
+ updateBookingCalendarSlotSession$ = createEffect(() => this.actions$.pipe(ofType(updateBookingCalendarSlotSessionAction), exhaustMap(({ role, clubOrSectionOrTeamId, session }) => this.bookingCalendarService.updateBookingCalendarSlotSession(role, clubOrSectionOrTeamId, { ...session }).pipe(mergeMap((session) => [
88
+ updateBookingCalendarSlotSessionSuccessAction({ session: session }),
89
+ ]), catchError((error) => of(updateBookingCalendarSlotSessionFailureAction({ payload: error })))))));
90
+ deleteBookingCalendarSlotSession$ = createEffect(() => this.actions$.pipe(ofType(deleteBookingCalendarSlotSessionAction), exhaustMap(({ role, clubOrSectionOrTeamId, session }) => this.bookingCalendarService.deleteBookingCalendarSlotSession(role, clubOrSectionOrTeamId, session.id).pipe(mergeMap(() => [
91
+ deleteBookingCalendarSlotSessionSuccessAction({ session: session }),
92
+ ]), catchError((error) => of(deleteBookingCalendarSlotSessionFailureAction({ payload: error })))))));
93
+ deleteBookingCalendarRepeatableSlotSession$ = createEffect(() => this.actions$.pipe(ofType(deleteBookingCalendarRepeatableSlotSessionAction), exhaustMap(({ role, clubOrSectionOrTeamId, session, deleteUntilDate }) => this.bookingCalendarService.deleteBookingCalendarSlotSessionRepeatable(role, clubOrSectionOrTeamId, session.id, deleteUntilDate).pipe(mergeMap(() => [
94
+ deleteBookingCalendarRepeatableSlotSessionSuccessAction({ session: session }),
95
+ ]), catchError((error) => of(deleteBookingCalendarRepeatableSlotSessionFailureAction({ payload: error })))))));
96
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: BookingEffects, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
97
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: BookingEffects });
98
+ }
99
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: BookingEffects, decorators: [{
100
+ type: Injectable
101
+ }] });
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9va2luZy5lZmZlY3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YS1hY2Nlc3Mvc3JjL2xpYi9zdG9yZS9lZmZlY3RzL2Jvb2tpbmcuZWZmZWN0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0QsT0FBTyxFQUNMLHlCQUF5QixFQUN6QixnQ0FBZ0MsRUFDaEMsZ0NBQWdDLEVBQ2hDLHdCQUF3QixFQUN4QiwrQkFBK0IsRUFDL0IsK0JBQStCLEVBQy9CLHVCQUF1QixFQUN2Qiw4QkFBOEIsRUFDOUIsOEJBQThCLEVBQzlCLDJCQUEyQixFQUMzQixrQ0FBa0MsRUFDbEMsK0JBQStCLEVBQy9CLHNDQUFzQyxFQUN0QyxzQ0FBc0MsRUFDdEMsNkNBQTZDLEVBQzdDLDZDQUE2QyxFQUM3QyxzQ0FBc0MsRUFDdEMsa0NBQWtDLEVBQ2xDLHVCQUF1QixFQUN2Qiw4QkFBOEIsRUFDOUIsOEJBQThCLEVBQzlCLDJCQUEyQixFQUMzQixrQ0FBa0MsRUFDbEMseUNBQXlDLEVBQ3pDLGdEQUFnRCxFQUNoRCxnREFBZ0QsRUFDaEQsdURBQXVELEVBQ3ZELHVEQUF1RCxFQUN2RCxnREFBZ0QsRUFDaEQsK0JBQStCLEVBQy9CLHNDQUFzQyxFQUN0QyxzQ0FBc0MsRUFDdEMsNkNBQTZDLEVBQzdDLDZDQUE2QyxFQUM3QyxzQ0FBc0MsRUFDdEMsa0NBQWtDLEVBQ2xDLHNCQUFzQixFQUN0Qiw2QkFBNkIsRUFDN0IsNkJBQTZCLEVBQzdCLHVCQUF1QixFQUN2Qiw4QkFBOEIsRUFDOUIsOEJBQThCLEVBQzlCLHNCQUFzQixFQUN0Qiw2QkFBNkIsRUFDN0IsNkJBQTZCLEVBQzdCLHFCQUFxQixFQUNyQiw0QkFBNEIsRUFDNUIsNEJBQTRCLEVBQzVCLGtCQUFrQixFQUNsQix5QkFBeUIsRUFDekIseUJBQXlCLEVBQ3pCLGtCQUFrQixFQUNsQix5QkFBeUIsRUFDekIseUJBQXlCLEVBQ3pCLGNBQWMsRUFDZCxxQkFBcUIsRUFDckIscUJBQXFCLEVBQ3JCLDZCQUE2QixFQUM3QixvQ0FBb0MsRUFDcEMsb0NBQW9DLEVBQ3BDLHNCQUFzQixFQUN0Qiw2QkFBNkIsRUFDN0IsNkJBQTZCLEVBQzdCLHdCQUF3QixFQUN4QiwrQkFBK0IsRUFDL0IsK0JBQStCLEVBQy9CLHlCQUF5QixFQUN6QixnQ0FBZ0MsRUFDaEMsZ0NBQWdDLEVBQ2hDLHdCQUF3QixFQUN4QiwrQkFBK0IsRUFDL0IsK0JBQStCLEVBQy9CLHVCQUF1QixFQUN2Qiw4QkFBOEIsRUFDOUIsOEJBQThCLEVBQzlCLDJCQUEyQixFQUMzQixrQ0FBa0MsRUFDbEMsK0JBQStCLEVBQy9CLHNDQUFzQyxFQUN0QyxzQ0FBc0MsRUFDdEMsNkNBQTZDLEVBQzdDLDZDQUE2QyxFQUM3QyxzQ0FBc0MsRUFDdEMsa0NBQWtDLEVBQ2xDLDJCQUEyQixFQUMzQixrQ0FBa0MsRUFDbEMsa0NBQWtDLEVBQ25DLE1BQU0sWUFBWSxDQUFDO0FBZ0JwQixPQUFPLEVBQUUsZUFBZSxFQUFFLGVBQWUsRUFBRSxzQkFBc0IsRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RyxPQUFPLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFLdEMsTUFBTSxPQUFPLGNBQWM7SUFDakIsUUFBUSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMzQixzQkFBc0IsR0FBRyxNQUFNLENBQUMsc0JBQXNCLENBQUMsQ0FBQztJQUN4RCxlQUFlLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQzFDLGVBQWUsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDMUMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUUxQyxjQUFjLEdBQUcsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUNwRCxNQUFNLENBQUMsa0JBQWtCLENBQUMsRUFDMUIsVUFBVSxDQUNSLENBQUMsRUFBQyxJQUFJLEVBQUUscUJBQXFCLEVBRzVCLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUscUJBQXFCLENBQUMsQ0FBQyxJQUFJLENBQ3JGLEdBQUcsQ0FDRCxDQUFDLFNBQXNDLEVBQUUsRUFBRSxDQUFDLHlCQUF5QixDQUFDLEVBQUMsZ0JBQWdCLEVBQUUsU0FBUyxDQUFDLE9BQU8sRUFBRSxFQUFDLENBQUMsQ0FDL0csQ0FDRixDQUNGLEVBQ0QsVUFBVSxDQUFDLENBQUMsS0FBd0IsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLHlCQUF5QixDQUFDLEVBQUMsT0FBTyxFQUFFLEtBQUssRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUMxRixDQUFDLENBQUM7SUFFSCxjQUFjLEdBQUcsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUNwRCxNQUFNLENBQUMsa0JBQWtCLENBQUMsRUFDMUIsVUFBVSxDQUNSLENBQUMsRUFBQyxJQUFJLEVBQUUscUJBQXFCLEVBRzVCLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsb0JBQW9CLENBQUMsSUFBSSxFQUFFLHFCQUFxQixFQUFFLElBQUksQ0FBQyxDQUFDLElBQUksQ0FDckYsR0FBRyxDQUNELENBQUMsU0FBbUQsRUFBRSxFQUFFLENBQUMseUJBQXlCLENBQUMsRUFBQyxTQUFTLEVBQUcsU0FBMEMsQ0FBQyxPQUFPLEVBQUUsRUFBQyxDQUFDLENBQ3ZKLENBQ0YsQ0FDRixFQUNELFVBQVUsQ0FBQyxDQUFDLEtBQXdCLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyx5QkFBeUIsQ0FBQyxFQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDMUYsQ0FBQyxDQUFDO0lBRUgsa0JBQWtCLEdBQUcsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUN4RCxNQUFNLENBQUMsc0JBQXNCLENBQUMsRUFDOUIsVUFBVSxDQUNSLENBQUMsRUFBQyxJQUFJLEVBQUUscUJBQXFCLEVBRzVCLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLHFCQUFxQixDQUFDLENBQUMsSUFBSSxDQUMzRSxHQUFHLENBQ0QsQ0FBQyxhQUFtRCxFQUFFLEVBQUUsQ0FBQyw2QkFBNkIsQ0FBQyxFQUFDLEtBQUssRUFBRyxhQUEwQyxDQUFDLE9BQU8sRUFBRSxFQUFDLENBQUMsQ0FDdkosQ0FDRixDQUNGLEVBQ0QsVUFBVSxDQUFDLENBQUMsS0FBd0IsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLDZCQUE2QixDQUFDLEVBQUMsT0FBTyxFQUFFLEtBQUssRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUM5RixDQUFDLENBQUM7SUFFSCxtQkFBbUIsR0FBRyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQ3pELE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxFQUMvQixVQUFVLENBQ1IsQ0FBQyxFQUFDLElBQUksRUFBRSxxQkFBcUIsRUFHNUIsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUscUJBQXFCLENBQUMsQ0FBQyxJQUFJLENBQzVFLEdBQUcsQ0FDRCxDQUFDLGNBQXFELEVBQUUsRUFBRSxDQUFDLDhCQUE4QixDQUFDLEVBQUMsTUFBTSxFQUFHLGNBQTRDLENBQUMsT0FBTyxFQUFFLEVBQUMsQ0FBQyxDQUM3SixDQUNGLENBQ0YsRUFDRCxVQUFVLENBQUMsQ0FBQyxLQUF3QixFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsOEJBQThCLENBQUMsRUFBQyxPQUFPLEVBQUUsS0FBSyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQy9GLENBQUMsQ0FBQztJQUVILGlCQUFpQixHQUFHLFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FDdkQsTUFBTSxDQUFDLHFCQUFxQixDQUFDLEVBQzdCLFVBQVUsQ0FDUixDQUFDLEVBQUMsSUFBSSxFQUFFLHFCQUFxQixFQUc1QixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUscUJBQXFCLENBQUMsQ0FBQyxJQUFJLENBQzFFLEdBQUcsQ0FDRCxDQUFDLFlBQWlELEVBQUUsRUFBRSxDQUFDLDRCQUE0QixDQUFDLEVBQUMsSUFBSSxFQUFHLFlBQXdDLENBQUMsT0FBTyxFQUFFLEVBQUMsQ0FBQyxDQUNqSixDQUNGLENBQ0YsRUFDRCxVQUFVLENBQUMsQ0FBQyxLQUF3QixFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsNEJBQTRCLENBQUMsRUFBQyxPQUFPLEVBQUUsS0FBSyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQzdGLENBQUMsQ0FBQztJQUVILFVBQVUsR0FBRyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQ2hELE1BQU0sQ0FBQyxjQUFjLENBQUMsRUFDdEIsVUFBVSxDQUNSLENBQUMsRUFBQyxJQUFJLEVBQUUscUJBQXFCLEVBRzVCLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxxQkFBcUIsQ0FBQyxDQUFDLElBQUksQ0FDL0QsR0FBRyxDQUNELENBQUMsS0FBNkIsRUFBRSxFQUFFLENBQUMscUJBQXFCLENBQUMsRUFBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLE9BQU8sRUFBRSxFQUFDLENBQUMsQ0FDbkYsQ0FDRixDQUNGLEVBQ0QsVUFBVSxDQUFDLENBQUMsS0FBd0IsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLHFCQUFxQixDQUFDLEVBQUMsT0FBTyxFQUFFLEtBQUssRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUN0RixDQUFDLENBQUM7SUFFSCxpQkFBaUIsR0FBRyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQ3ZELE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxFQUM5QixVQUFVLENBQ1IsQ0FBQyxFQUFDLElBQUksRUFBRSxxQkFBcUIsRUFHNUIsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUscUJBQXFCLENBQUMsQ0FBQyxJQUFJLENBQzlFLEdBQUcsQ0FDRCxDQUFDLFFBQTBCLEVBQUUsRUFBRSxDQUFDLDZCQUE2QixDQUFDLEVBQUMsUUFBUSxFQUFFLFFBQVEsRUFBQyxDQUFDLENBQ3BGLENBQ0YsQ0FDRixFQUNELFVBQVUsQ0FBQyxDQUFDLEtBQXdCLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyw2QkFBNkIsQ0FBQyxFQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDOUYsQ0FBQyxDQUFBO0lBRUYsd0JBQXdCLEdBQUcsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUM5RCxNQUFNLENBQUMsNkJBQTZCLENBQUMsRUFDckMsVUFBVSxDQUNSLENBQUMsRUFBQyxJQUFJLEVBQUUscUJBQXFCLEVBRzVCLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUscUJBQXFCLENBQUMsQ0FBQyxJQUFJLENBQ3BGLEdBQUcsQ0FDRCxDQUFDLGVBQWdDLEVBQUUsRUFBRSxDQUFDLG9DQUFvQyxDQUFDLEVBQUMsUUFBUSxFQUFFLGVBQWUsRUFBQyxDQUFDLENBQ3hHLENBQ0YsQ0FDRixFQUNELFVBQVUsQ0FBQyxDQUFDLEtBQXdCLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxvQ0FBb0MsQ0FBQyxFQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDckcsQ0FBQyxDQUFBO0lBRUYsa0JBQWtCLEdBQUcsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUN4RCxNQUFNLENBQUMsc0JBQXNCLENBQUMsRUFDOUIsVUFBVSxDQUNSLENBQUMsRUFBQyxJQUFJLEVBQUUscUJBQXFCLEVBRzVCLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLHFCQUFxQixDQUFDLENBQUMsSUFBSSxDQUMzRSxHQUFHLENBQ0QsQ0FBQyxhQUF1QyxFQUFFLEVBQUUsQ0FBQyw2QkFBNkIsQ0FBQyxFQUFDLGFBQWEsRUFBRSxhQUFhLENBQUMsT0FBTyxFQUFFLEVBQUMsQ0FBQyxDQUNySCxDQUNGLENBQ0YsRUFDRCxVQUFVLENBQUMsQ0FBQyxLQUF3QixFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsNkJBQTZCLENBQUMsRUFBQyxPQUFPLEVBQUUsS0FBSyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQzlGLENBQUMsQ0FBQztJQUVILG1CQUFtQixHQUFHLFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FDekQsTUFBTSxDQUFDLHdCQUF3QixDQUFDLEVBQ2hDLFVBQVUsQ0FDUixDQUFDLEVBQUMsSUFBSSxFQUFFLHFCQUFxQixFQUFFLFlBQVksRUFJMUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUscUJBQXFCLEVBQUUsWUFBWSxDQUFDLENBQUMsSUFBSSxDQUMzRixRQUFRLENBQUMsQ0FBQyxZQUEwQixFQUFFLEVBQUUsQ0FBQztRQUN2QywrQkFBK0IsQ0FBQyxFQUFDLFlBQVksRUFBRSxZQUFZLEVBQUMsQ0FBQztRQUM3RCxzQkFBc0IsQ0FBQyxFQUFDLElBQUksRUFBRSxxQkFBcUIsRUFBQyxDQUFDO0tBQ3RELENBQUMsRUFDRixVQUFVLENBQUMsQ0FBQyxLQUF3QixFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsK0JBQStCLENBQUMsRUFBQyxPQUFPLEVBQUUsS0FBSyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQ2hHLENBQUMsQ0FDTCxDQUFDLENBQUM7SUFFSCxtQkFBbUIsR0FBRyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQ3pELE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxFQUNoQyxVQUFVLENBQ1IsQ0FBQyxFQUFDLElBQUksRUFBRSxxQkFBcUIsRUFBRSxJQUFJLEVBSWxDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsa0JBQWtCLENBQUMsSUFBSSxFQUFFLHFCQUFxQixFQUFFLEVBQUMsR0FBRyxJQUFJLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FDeEYsUUFBUSxDQUFDLENBQUMsWUFBMEIsRUFBRSxFQUFFLENBQUM7UUFDdkMsK0JBQStCLENBQUMsRUFBQyxJQUFJLEVBQUUsWUFBWSxFQUFDLENBQUM7UUFDckQsc0JBQXNCLENBQUMsRUFBQyxJQUFJLEVBQUUscUJBQXFCLEVBQUMsQ0FBQztLQUN0RCxDQUFDLEVBQ0YsVUFBVSxDQUFDLENBQUMsS0FBd0IsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLCtCQUErQixDQUFDLEVBQUMsT0FBTyxFQUFFLEtBQUssRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUNoRyxDQUFDLENBQ0wsQ0FBQyxDQUFDO0lBRUgsbUJBQW1CLEdBQUcsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUN6RCxNQUFNLENBQUMsd0JBQXdCLENBQUMsRUFDaEMsVUFBVSxDQUNSLENBQUMsRUFBQyxJQUFJLEVBQUUscUJBQXFCLEVBQUUsSUFBSSxFQUlsQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLGtCQUFrQixDQUFDLElBQUksRUFBRSxxQkFBcUIsRUFBRSxFQUFDLEdBQUcsSUFBSSxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQ3hGLFFBQVEsQ0FBQyxDQUFDLFlBQTBCLEVBQUUsRUFBRSxDQUFDO1FBQ3ZDLCtCQUErQixDQUFDLEVBQUMsSUFBSSxFQUFFLFlBQVksRUFBQyxDQUFDO1FBQ3JELHNCQUFzQixDQUFDLEVBQUMsSUFBSSxFQUFFLHFCQUFxQixFQUFDLENBQUM7UUFDckQsdUJBQXVCLENBQUMsRUFBQyxJQUFJLEVBQUUscUJBQXFCLEVBQUMsQ0FBQztLQUN2RCxDQUFDLEVBQ0YsVUFBVSxDQUFDLENBQUMsS0FBd0IsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLCtCQUErQixDQUFDLEVBQUMsT0FBTyxFQUFFLEtBQUssRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUNoRyxDQUFDLENBQ0wsQ0FBQyxDQUFDO0lBRUgsa0JBQWtCLEdBQUcsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUN4RCxNQUFNLENBQUMsdUJBQXVCLENBQUMsRUFDL0IsVUFBVSxDQUNSLENBQUMsRUFBQyxJQUFJLEVBQUUscUJBQXFCLEVBQUUsR0FBRyxFQUlqQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxxQkFBcUIsRUFBRSxFQUFDLEdBQUcsR0FBRyxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQ3RGLFFBQVEsQ0FBQyxDQUFDLEdBQWdCLEVBQUUsRUFBRSxDQUFDO1FBQzdCLDhCQUE4QixDQUFDLEVBQUMsR0FBRyxFQUFFLEdBQUcsRUFBQyxDQUFDO1FBQzFDLHFCQUFxQixDQUFDLEVBQUMsSUFBSSxFQUFFLHFCQUFxQixFQUFDLENBQUM7S0FDckQsQ0FBQyxFQUNGLFVBQVUsQ0FBQyxDQUFDLEtBQXdCLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyw4QkFBOEIsQ0FBQyxFQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDL0YsQ0FBQyxDQUNMLENBQUMsQ0FBQztJQUVILGtCQUFrQixHQUFHLFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FDeEQsTUFBTSxDQUFDLHVCQUF1QixDQUFDLEVBQy9CLFVBQVUsQ0FDUixDQUFDLEVBQUMsSUFBSSxFQUFFLHFCQUFxQixFQUFFLEdBQUcsRUFJakMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUscUJBQXFCLEVBQUUsRUFBQyxHQUFHLEdBQUcsRUFBQyxDQUFDLENBQUMsSUFBSSxDQUN0RixRQUFRLENBQUMsQ0FBQyxHQUFnQixFQUFFLEVBQUUsQ0FBQztRQUM3Qiw4QkFBOEIsQ0FBQyxFQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUMsQ0FBQztLQUMzQyxDQUFDLEVBQ0YsVUFBVSxDQUFDLENBQUMsS0FBd0IsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLDhCQUE4QixDQUFDLEVBQUMsT0FBTyxFQUFFLEtBQUssRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUMvRixDQUFDLENBQ0wsQ0FBQyxDQUFDO0lBRUgsa0JBQWtCLEdBQUcsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUN4RCxNQUFNLENBQUMsdUJBQXVCLENBQUMsRUFDL0IsVUFBVSxDQUNSLENBQUMsRUFBQyxJQUFJLEVBQUUscUJBQXFCLEVBQUUsR0FBRyxFQUlqQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxxQkFBcUIsRUFBRSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQ2pGLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNiLDhCQUE4QixDQUFDLEVBQUMsR0FBRyxFQUFFLEdBQUcsRUFBQyxDQUFDO1FBQzFDLHFCQUFxQixDQUFDLEVBQUMsSUFBSSxFQUFFLHFCQUFxQixFQUFDLENBQUM7S0FDckQsQ0FBQyxFQUNGLFVBQVUsQ0FBQyxDQUFDLEtBQXdCLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyw4QkFBOEIsQ0FBQyxFQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDL0YsQ0FBQyxDQUNMLENBQUMsQ0FBQztJQUVILG9CQUFvQixHQUFHLFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FDMUQsTUFBTSxDQUFDLHlCQUF5QixDQUFDLEVBQ2pDLFVBQVUsQ0FDUixDQUFDLEVBQUMsSUFBSSxFQUFFLHFCQUFxQixFQUFFLEtBQUssRUFJbkMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUscUJBQXFCLEVBQUUsRUFBQyxHQUFHLEtBQUssRUFBQyxDQUFDLENBQUMsSUFBSSxDQUMxRixRQUFRLENBQUMsQ0FBQyxhQUE0QixFQUFFLEVBQUUsQ0FBQztRQUN6QyxnQ0FBZ0MsQ0FBQyxFQUFDLEtBQUssRUFBRSxhQUFhLEVBQUMsQ0FBQztRQUN4RCx1QkFBdUIsQ0FBQyxFQUFDLElBQUksRUFBRSxxQkFBcUIsRUFBQyxDQUFDO0tBQ3ZELENBQUMsRUFDRixVQUFVLENBQUMsQ0FBQyxLQUF3QixFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsZ0NBQWdDLENBQUMsRUFBQyxPQUFPLEVBQUUsS0FBSyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQ2pHLENBQUMsQ0FDTCxDQUFDLENBQUM7SUFFSCxvQkFBb0IsR0FBRyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQzFELE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxFQUNqQyxVQUFVLENBQ1IsQ0FBQyxFQUFDLElBQUksRUFBRSxxQkFBcUIsRUFBRSxLQUFLLEVBSW5DLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsbUJBQW1CLENBQUMsSUFBSSxFQUFFLHFCQUFxQixFQUFFLEVBQUMsR0FBRyxLQUFLLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FDMUYsUUFBUSxDQUFDLENBQUMsYUFBNEIsRUFBRSxFQUFFLENBQUM7UUFDekMsZ0NBQWdDLENBQUMsRUFBQyxLQUFLLEVBQUUsYUFBYSxFQUFDLENBQUM7UUFDeEQsdUJBQXVCLENBQUMsRUFBQyxJQUFJLEVBQUUscUJBQXFCLEVBQUMsQ0FBQztRQUN0RCxrQkFBa0IsQ0FBQyxFQUFDLElBQUksRUFBRSxxQkFBcUIsRUFBQyxDQUFDO0tBQ2xELENBQUMsRUFDRixVQUFVLENBQUMsQ0FBQyxLQUF3QixFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsZ0NBQWdDLENBQUMsRUFBQyxPQUFPLEVBQUUsS0FBSyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQ2pHLENBQUMsQ0FDTCxDQUFDLENBQUM7SUFFSCxzQkFBc0IsR0FBRyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQzVELE1BQU0sQ0FBQywyQkFBMkIsQ0FBQyxFQUNuQyxVQUFVLENBQ1IsQ0FBQyxFQUFDLElBQUksRUFBRSxxQkFBcUIsRUFBRSxRQUFRLEVBSXRDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLEVBQUUscUJBQXFCLEVBQUUsRUFBQyxHQUFHLFFBQVEsRUFBQyxDQUFDLENBQUMsSUFBSSxDQUN0RyxRQUFRLENBQUMsQ0FBQyxlQUFnQyxFQUFFLEVBQUUsQ0FBQztRQUM3QyxrQ0FBa0MsQ0FBQyxFQUFDLFFBQVEsRUFBRSxlQUFlLEVBQUMsQ0FBQztRQUMvRCxrQkFBa0IsQ0FBQyxFQUFDLElBQUksRUFBRSxxQkFBcUIsRUFBQyxDQUFDO0tBQ2xELENBQUMsRUFDRixVQUFVLENBQUMsQ0FBQyxLQUF3QixFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsa0NBQWtDLENBQUMsRUFBQyxPQUFPLEVBQUUsS0FBSyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQ25HLENBQUMsQ0FDTCxDQUFDLENBQUM7SUFFSCxzQkFBc0IsR0FBRyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQzVELE1BQU0sQ0FBQywyQkFBMkIsQ0FBQyxFQUNuQyxVQUFVLENBQ1IsQ0FBQyxFQUFDLElBQUksRUFBRSxxQkFBcUIsRUFBRSxRQUFRLEVBSXRDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLEVBQUUscUJBQXFCLEVBQUUsRUFBQyxHQUFHLFFBQVEsRUFBQyxDQUFDLENBQUMsSUFBSSxDQUN0RyxRQUFRLENBQUMsQ0FBQyxlQUFnQyxFQUFFLEVBQUUsQ0FBQztRQUM3QyxrQ0FBa0MsQ0FBQyxFQUFDLFFBQVEsRUFBRSxlQUFlLEVBQUMsQ0FBQztRQUMvRCxrQkFBa0IsQ0FBQyxFQUFDLElBQUksRUFBRSxxQkFBcUIsRUFBQyxDQUFDO0tBQ2xELENBQUMsRUFDRixVQUFVLENBQUMsQ0FBQyxLQUF3QixFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsa0NBQWtDLENBQUMsRUFBQyxPQUFPLEVBQUUsS0FBSyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQ25HLENBQUMsQ0FDTCxDQUFDLENBQUM7SUFFSCxzQkFBc0IsR0FBRyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQzVELE1BQU0sQ0FBQywyQkFBMkIsQ0FBQyxFQUNuQyxVQUFVLENBQ1IsQ0FBQyxFQUFDLElBQUksRUFBRSxxQkFBcUIsRUFBRSxRQUFRLEVBSXRDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLEVBQUUscUJBQXFCLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FDcEcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ2Isa0NBQWtDLENBQUMsRUFBQyxRQUFRLEVBQUUsUUFBUSxFQUFDLENBQUM7UUFDeEQsa0JBQWtCLENBQUMsRUFBQyxJQUFJLEVBQUUscUJBQXFCLEVBQUMsQ0FBQztLQUNsRCxDQUFDLEVBQ0YsVUFBVSxDQUFDLENBQUMsS0FBd0IsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLGtDQUFrQyxDQUFDLEVBQUMsT0FBTyxFQUFFLEtBQUssRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUNuRyxDQUFDLENBQ0wsQ0FBQyxDQUFDO0lBRUgsc0JBQXNCLEdBQUcsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUM1RCxNQUFNLENBQUMsMkJBQTJCLENBQUMsRUFDbkMsVUFBVSxDQUNSLENBQUMsRUFBQyxJQUFJLEVBQUUscUJBQXFCLEVBQUUsUUFBUSxFQUl0QyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMscUJBQXFCLENBQUMsSUFBSSxFQUFFLHFCQUFxQixFQUFFLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FDakcsUUFBUSxDQUFDLENBQUMsV0FBNEIsRUFBRSxFQUFFLENBQUM7UUFDekMsa0NBQWtDLENBQUMsRUFBQyxRQUFRLEVBQUUsV0FBVyxFQUFDLENBQUM7UUFDM0QsNkJBQTZCLENBQUMsRUFBQyxJQUFJLEVBQUUscUJBQXFCLEVBQUMsQ0FBQztLQUM3RCxDQUFDLEVBQ0YsVUFBVSxDQUFDLENBQUMsS0FBd0IsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLGtDQUFrQyxDQUFDLEVBQUMsT0FBTyxFQUFFLEtBQUssRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUNuRyxDQUFDLENBQ0wsQ0FBQyxDQUFDO0lBRUgsMEJBQTBCLEdBQUcsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUNoRSxNQUFNLENBQUMsK0JBQStCLENBQUMsRUFDdkMsVUFBVSxDQUNSLENBQUMsRUFBQyxJQUFJLEVBQUUscUJBQXFCLEVBQUUsSUFBSSxFQUlsQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMseUJBQXlCLENBQUMsSUFBWSxFQUFFLHFCQUFxQixFQUFFLEVBQUMsR0FBRyxJQUFJLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FDOUcsUUFBUSxDQUFDLENBQUMsSUFBeUIsRUFBRSxFQUFFLENBQUM7UUFDdEMsc0NBQXNDLENBQUMsRUFBQyxJQUFJLEVBQUUsSUFBSSxFQUFDLENBQUM7S0FDckQsQ0FBQyxFQUNGLFVBQVUsQ0FBQyxDQUFDLEtBQXdCLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxzQ0FBc0MsQ0FBQyxFQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDdkcsQ0FBQyxDQUNMLENBQUMsQ0FBQztJQUVILDBCQUEwQixHQUFHLFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FDaEUsTUFBTSxDQUFDLCtCQUErQixDQUFDLEVBQ3ZDLFVBQVUsQ0FDUixDQUFDLEVBQUMsSUFBSSxFQUFFLHFCQUFxQixFQUFFLElBQUksRUFJbEMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLHlCQUF5QixDQUFDLElBQUksRUFBRSxxQkFBcUIsRUFBRSxFQUFDLEdBQUcsSUFBSSxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQ3RHLFFBQVEsQ0FBQyxDQUFDLElBQXlCLEVBQUUsRUFBRSxDQUFDO1FBQ3RDLHNDQUFzQyxDQUFDLEVBQUMsSUFBSSxFQUFFLElBQUksRUFBQyxDQUFDO0tBQ3JELENBQUMsRUFDRixVQUFVLENBQUMsQ0FBQyxLQUF3QixFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsc0NBQXNDLENBQUMsRUFBQyxPQUFPLEVBQUUsS0FBSyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQ3ZHLENBQUMsQ0FDTCxDQUFDLENBQUM7SUFFSCwwQkFBMEIsR0FBRyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQ2hFLE1BQU0sQ0FBQywrQkFBK0IsQ0FBQyxFQUN2QyxVQUFVLENBQ1IsQ0FBQyxFQUFDLElBQUksRUFBRSxxQkFBcUIsRUFBRSxJQUFJLEVBSWxDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLEVBQUUscUJBQXFCLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FDcEcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ2Isc0NBQXNDLENBQUMsRUFBQyxJQUFJLEVBQUUsSUFBSSxFQUFDLENBQUM7S0FDckQsQ0FBQyxFQUNGLFVBQVUsQ0FBQyxDQUFDLEtBQXdCLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxzQ0FBc0MsQ0FBQyxFQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDdkcsQ0FBQyxDQUNMLENBQUMsQ0FBQztJQUVILG9DQUFvQyxHQUFHLFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FDMUUsTUFBTSxDQUFDLHlDQUF5QyxDQUFDLEVBQ2pELFVBQVUsQ0FDUixDQUFDLEVBQUMsSUFBSSxFQUFFLHFCQUFxQixFQUFFLElBQUksRUFBRSxlQUFlLEVBS25ELEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxtQ0FBbUMsQ0FBQyxJQUFJLEVBQUUscUJBQXFCLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxlQUFlLENBQUMsQ0FBQyxJQUFJLENBQy9ILFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNiLGdEQUFnRCxDQUFDLEVBQUMsSUFBSSxFQUFFLElBQUksRUFBQyxDQUFDO0tBQy9ELENBQUMsRUFDRixVQUFVLENBQUMsQ0FBQyxLQUF3QixFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsZ0RBQWdELENBQUMsRUFBQyxPQUFPLEVBQUUsS0FBSyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQ2pILENBQUMsQ0FDTCxDQUFDLENBQUM7SUFFSCxpQ0FBaUMsR0FBRyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQ3ZFLE1BQU0sQ0FBQyxzQ0FBc0MsQ0FBQyxFQUM5QyxVQUFVLENBQ1IsQ0FBQyxFQUFDLElBQUksRUFBRSxxQkFBcUIsRUFBRSxPQUFPLEVBSXJDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxnQ0FBZ0MsQ0FBQyxJQUFJLEVBQUUscUJBQXFCLEVBQUUsRUFBQyxHQUFHLE9BQU8sRUFBQyxDQUFDLENBQUMsSUFBSSxDQUNoSCxRQUFRLENBQUMsQ0FBQyxPQUFtQyxFQUFFLEVBQUUsQ0FBQztRQUNoRCw2Q0FBNkMsQ0FBQyxFQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUMsQ0FBQztLQUNsRSxDQUFDLEVBQ0YsVUFBVSxDQUFDLENBQUMsS0FBd0IsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLDZDQUE2QyxDQUFDLEVBQUMsT0FBTyxFQUFFLEtBQUssRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUM5RyxDQUFDLENBQ0wsQ0FBQyxDQUFDO0lBRUgsaUNBQWlDLEdBQUcsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUN2RSxNQUFNLENBQUMsc0NBQXNDLENBQUMsRUFDOUMsVUFBVSxDQUNSLENBQUMsRUFBQyxJQUFJLEVBQUUscUJBQXFCLEVBQUUsT0FBTyxFQUlyQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsZ0NBQWdDLENBQUMsSUFBSSxFQUFFLHFCQUFxQixFQUFFLEVBQUMsR0FBRyxPQUFPLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FDaEgsUUFBUSxDQUFDLENBQUMsT0FBbUMsRUFBRSxFQUFFLENBQUM7UUFDaEQsNkNBQTZDLENBQUMsRUFBQyxPQUFPLEVBQUUsT0FBTyxFQUFDLENBQUM7S0FDbEUsQ0FBQyxFQUNGLFVBQVUsQ0FBQyxDQUFDLEtBQXdCLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyw2Q0FBNkMsQ0FBQyxFQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDOUcsQ0FBQyxDQUNMLENBQUMsQ0FBQztJQUVILGlDQUFpQyxHQUFHLFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FDdkUsTUFBTSxDQUFDLHNDQUFzQyxDQUFDLEVBQzlDLFVBQVUsQ0FDUixDQUFDLEVBQUMsSUFBSSxFQUFFLHFCQUFxQixFQUFFLE9BQU8sRUFJckMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLGdDQUFnQyxDQUFDLElBQUksRUFBRSxxQkFBcUIsRUFBRSxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUM5RyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDYiw2Q0FBNkMsQ0FBQyxFQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUMsQ0FBQztLQUNsRSxDQUFDLEVBQ0YsVUFBVSxDQUFDLENBQUMsS0FBd0IsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLDZDQUE2QyxDQUFDLEVBQUMsT0FBTyxFQUFFLEtBQUssRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUM5RyxDQUFDLENBQ0wsQ0FBQyxDQUFDO0lBRUgsMkNBQTJDLEdBQUcsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUNqRixNQUFNLENBQUMsZ0RBQWdELENBQUMsRUFDeEQsVUFBVSxDQUNSLENBQUMsRUFBQyxJQUFJLEVBQUUscUJBQXFCLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFLdEQsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLDBDQUEwQyxDQUFDLElBQUksRUFBRSxxQkFBcUIsRUFBRSxPQUFPLENBQUMsRUFBRSxFQUFFLGVBQWUsQ0FBQyxDQUFDLElBQUksQ0FDekksUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ2IsdURBQXVELENBQUMsRUFBQyxPQUFPLEVBQUUsT0FBTyxFQUFDLENBQUM7S0FDNUUsQ0FBQyxFQUNGLFVBQVUsQ0FBQyxDQUFDLEtBQXdCLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyx1REFBdUQsQ0FBQyxFQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDeEgsQ0FBQyxDQUNMLENBQUMsQ0FBQzt1R0F2Y1EsY0FBYzsyR0FBZCxjQUFjOzsyRkFBZCxjQUFjO2tCQUQxQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEFjdGlvbnMsIGNyZWF0ZUVmZmVjdCwgb2ZUeXBlIH0gZnJvbSAnQG5ncngvZWZmZWN0cyc7XG5pbXBvcnQgeyBleGhhdXN0TWFwLCBtYXAsIG1lcmdlTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge1xuICBjcmVhdGVCb29rYWJsZUdyb3VwQWN0aW9uLFxuICBjcmVhdGVCb29rYWJsZUdyb3VwRmFpbHVyZUFjdGlvbixcbiAgY3JlYXRlQm9va2FibGVHcm91cFN1Y2Nlc3NBY3Rpb24sXG4gIGNyZWF0ZUJvb2thYmxlSXRlbUFjdGlvbixcbiAgY3JlYXRlQm9va2FibGVJdGVtRmFpbHVyZUFjdGlvbixcbiAgY3JlYXRlQm9va2FibGVJdGVtU3VjY2Vzc0FjdGlvbixcbiAgY3JlYXRlQm9va2FibGVUYWdBY3Rpb24sXG4gIGNyZWF0ZUJvb2thYmxlVGFnRmFpbHVyZUFjdGlvbixcbiAgY3JlYXRlQm9va2FibGVUYWdTdWNjZXNzQWN0aW9uLFxuICBjcmVhdGVCb29raW5nQ2FsZW5kYXJBY3Rpb24sXG4gIGNyZWF0ZUJvb2tpbmdDYWxlbmRhckZhaWx1cmVBY3Rpb24sXG4gIGNyZWF0ZUJvb2tpbmdDYWxlbmRhclNsb3RBY3Rpb24sXG4gIGNyZWF0ZUJvb2tpbmdDYWxlbmRhclNsb3RGYWlsdXJlQWN0aW9uLFxuICBjcmVhdGVCb29raW5nQ2FsZW5kYXJTbG90U2Vzc2lvbkFjdGlvbixcbiAgY3JlYXRlQm9va2luZ0NhbGVuZGFyU2xvdFNlc3Npb25GYWlsdXJlQWN0aW9uLFxuICBjcmVhdGVCb29raW5nQ2FsZW5kYXJTbG90U2Vzc2lvblN1Y2Nlc3NBY3Rpb24sXG4gIGNyZWF0ZUJvb2tpbmdDYWxlbmRhclNsb3RTdWNjZXNzQWN0aW9uLFxuICBjcmVhdGVCb29raW5nQ2FsZW5kYXJTdWNjZXNzQWN0aW9uLFxuICBkZWxldGVCb29rYWJsZVRhZ0FjdGlvbixcbiAgZGVsZXRlQm9va2FibGVUYWdGYWlsdXJlQWN0aW9uLFxuICBkZWxldGVCb29rYWJsZVRhZ1N1Y2Nlc3NBY3Rpb24sXG4gIGRlbGV0ZUJvb2tpbmdDYWxlbmRhckFjdGlvbixcbiAgZGVsZXRlQm9va2luZ0NhbGVuZGFyRmFpbHVyZUFjdGlvbixcbiAgZGVsZXRlQm9va2luZ0NhbGVuZGFyUmVwZWF0YWJsZVNsb3RBY3Rpb24sXG4gIGRlbGV0ZUJvb2tpbmdDYWxlbmRhclJlcGVhdGFibGVTbG90RmFpbHVyZUFjdGlvbixcbiAgZGVsZXRlQm9va2luZ0NhbGVuZGFyUmVwZWF0YWJsZVNsb3RTZXNzaW9uQWN0aW9uLFxuICBkZWxldGVCb29raW5nQ2FsZW5kYXJSZXBlYXRhYmxlU2xvdFNlc3Npb25GYWlsdXJlQWN0aW9uLFxuICBkZWxldGVCb29raW5nQ2FsZW5kYXJSZXBlYXRhYmxlU2xvdFNlc3Npb25TdWNjZXNzQWN0aW9uLFxuICBkZWxldGVCb29raW5nQ2FsZW5kYXJSZXBlYXRhYmxlU2xvdFN1Y2Nlc3NBY3Rpb24sXG4gIGRlbGV0ZUJvb2tpbmdDYWxlbmRhclNsb3RBY3Rpb24sXG4gIGRlbGV0ZUJvb2tpbmdDYWxlbmRhclNsb3RGYWlsdXJlQWN0aW9uLFxuICBkZWxldGVCb29raW5nQ2FsZW5kYXJTbG90U2Vzc2lvbkFjdGlvbixcbiAgZGVsZXRlQm9va2luZ0NhbGVuZGFyU2xvdFNlc3Npb25GYWlsdXJlQWN0aW9uLFxuICBkZWxldGVCb29raW5nQ2FsZW5kYXJTbG90U2Vzc2lvblN1Y2Nlc3NBY3Rpb24sXG4gIGRlbGV0ZUJvb2tpbmdDYWxlbmRhclNsb3RTdWNjZXNzQWN0aW9uLFxuICBkZWxldGVCb29raW5nQ2FsZW5kYXJTdWNjZXNzQWN0aW9uLFxuICBsaXN0QWN0aXZpdHlUeXBlQWN0aW9uLFxuICBsaXN0QWN0aXZpdHlUeXBlRmFpbHVyZUFjdGlvbixcbiAgbGlzdEFjdGl2aXR5VHlwZVN1Y2Nlc3NBY3Rpb24sXG4gIGxpc3RCb29rYWJsZUdyb3VwQWN0aW9uLFxuICBsaXN0Qm9va2FibGVHcm91cEZhaWx1cmVBY3Rpb24sXG4gIGxpc3RCb29rYWJsZUdyb3VwU3VjY2Vzc0FjdGlvbixcbiAgbGlzdEJvb2thYmxlSXRlbUFjdGlvbixcbiAgbGlzdEJvb2thYmxlSXRlbUZhaWx1cmVBY3Rpb24sXG4gIGxpc3RCb29rYWJsZUl0ZW1TdWNjZXNzQWN0aW9uLFxuICBsaXN0Qm9va2FibGVUYWdBY3Rpb24sXG4gIGxpc3RCb29rYWJsZVRhZ0ZhaWx1cmVBY3Rpb24sXG4gIGxpc3RCb29rYWJsZVRhZ1N1Y2Nlc3NBY3Rpb24sXG4gIGxpc3RDYWxlbmRhckFjdGlvbixcbiAgbGlzdENhbGVuZGFyRmFpbHVyZUFjdGlvbixcbiAgbGlzdENhbGVuZGFyU3VjY2Vzc0FjdGlvbixcbiAgbGlzdExvY2F0aW9uQWN0aW9uLFxuICBsaXN0TG9jYXRpb25GYWlsdXJlQWN0aW9uLFxuICBsaXN0TG9jYXRpb25TdWNjZXNzQWN0aW9uLFxuICBsaXN0VGVhbUFjdGlvbixcbiAgbGlzdFRlYW1GYWlsdXJlQWN0aW9uLFxuICBsaXN0VGVhbVN1Y2Nlc3NBY3Rpb24sXG4gIHJldHJpZXZlQm9va2luZ1NldHRpbmdzQWN0aW9uLFxuICByZXRyaWV2ZUJvb2tpbmdTZXR0aW5nc0ZhaWx1cmVBY3Rpb24sXG4gIHJldHJpZXZlQm9va2luZ1NldHRpbmdzU3VjY2Vzc0FjdGlvbixcbiAgcmV0cmlldmVTZXR0aW5nc0FjdGlvbixcbiAgcmV0cmlldmVTZXR0aW5nc0ZhaWx1cmVBY3Rpb24sXG4gIHJldHJpZXZlU2V0dGluZ3NTdWNjZXNzQWN0aW9uLFxuICB1cGRhdGVBY3Rpdml0eVR5cGVBY3Rpb24sXG4gIHVwZGF0ZUFjdGl2aXR5VHlwZUZhaWx1cmVBY3Rpb24sXG4gIHVwZGF0ZUFjdGl2aXR5VHlwZVN1Y2Nlc3NBY3Rpb24sXG4gIHVwZGF0ZUJvb2thYmxlR3JvdXBBY3Rpb24sXG4gIHVwZGF0ZUJvb2thYmxlR3JvdXBGYWlsdXJlQWN0aW9uLFxuICB1cGRhdGVCb29rYWJsZUdyb3VwU3VjY2Vzc0FjdGlvbixcbiAgdXBkYXRlQm9va2FibGVJdGVtQWN0aW9uLFxuICB1cGRhdGVCb29rYWJsZUl0ZW1GYWlsdXJlQWN0aW9uLFxuICB1cGRhdGVCb29rYWJsZUl0ZW1TdWNjZXNzQWN0aW9uLFxuICB1cGRhdGVCb29rYWJsZVRhZ0FjdGlvbixcbiAgdXBkYXRlQm9va2FibGVUYWdGYWlsdXJlQWN0aW9uLFxuICB1cGRhdGVCb29rYWJsZVRhZ1N1Y2Nlc3NBY3Rpb24sXG4gIHVwZGF0ZUJvb2tpbmdDYWxlbmRhckFjdGlvbixcbiAgdXBkYXRlQm9va2luZ0NhbGVuZGFyRmFpbHVyZUFjdGlvbixcbiAgdXBkYXRlQm9va2luZ0NhbGVuZGFyU2xvdEFjdGlvbixcbiAgdXBkYXRlQm9va2luZ0NhbGVuZGFyU2xvdEZhaWx1cmVBY3Rpb24sXG4gIHVwZGF0ZUJvb2tpbmdDYWxlbmRhclNsb3RTZXNzaW9uQWN0aW9uLFxuICB1cGRhdGVCb29raW5nQ2FsZW5kYXJTbG90U2Vzc2lvbkZhaWx1cmVBY3Rpb24sXG4gIHVwZGF0ZUJvb2tpbmdDYWxlbmRhclNsb3RTZXNzaW9uU3VjY2Vzc0FjdGlvbixcbiAgdXBkYXRlQm9va2luZ0NhbGVuZGFyU2xvdFN1Y2Nlc3NBY3Rpb24sXG4gIHVwZGF0ZUJvb2tpbmdDYWxlbmRhclN1Y2Nlc3NBY3Rpb24sXG4gIHVwZGF0ZUJvb2tpbmdTZXR0aW5nc0FjdGlvbixcbiAgdXBkYXRlQm9va2luZ1NldHRpbmdzRmFpbHVyZUFjdGlvbixcbiAgdXBkYXRlQm9va2luZ1NldHRpbmdzU3VjY2Vzc0FjdGlvblxufSBmcm9tICcuLi9hY3Rpb25zJztcbmltcG9ydCB7XG4gIEFjdGl2aXR5TG9jYXRpb24sXG4gIEFjdGl2aXR5U2V0dGluZ3MsXG4gIEFjdGl2aXR5VHlwZSxcbiAgQm9va2FibGVHcm91cCxcbiAgQm9va2FibGVJdGVtLFxuICBCb29rYWJsZVRhZyxcbiAgQm9va2luZ0NhbGVuZGFyLFxuICBCb29raW5nQ2FsZW5kYXJTbG90LFxuICBCb29raW5nQ2FsZW5kYXJTbG90U2Vzc2lvbixcbiAgQm9va2luZ1NldHRpbmdzLFxuICBDb2xsZWN0aW9uLFxuICBSb2xlLFxuICBTZWFyY2hUZWFtLFxufSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgQWN0aXZpdHlTZXJ2aWNlLCBCb29rYWJsZVNlcnZpY2UsIEJvb2tpbmdDYWxlbmRhclNlcnZpY2UsIFRlYW1TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuXG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBCb29raW5nRWZmZWN0cyB7XG4gIHByaXZhdGUgYWN0aW9ucyQgPSBpbmplY3QoQWN0aW9ucyk7XG4gIHByaXZhdGUgYm9va2luZ0NhbGVuZGFyU2VydmljZSA9IGluamVjdChCb29raW5nQ2FsZW5kYXJTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBib29rYWJsZVNlcnZpY2UgPSBpbmplY3QoQm9va2FibGVTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBhY3Rpdml0eVNlcnZpY2UgPSBpbmplY3QoQWN0aXZpdHlTZXJ2aWNlKTtcbiAgcHJpdmF0ZSB0ZWFtU2VydmljZSA9IGluamVjdChUZWFtU2VydmljZSk7XG5cbiAgbGlzdENhbGVuZGFycyQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgIG9mVHlwZShsaXN0Q2FsZW5kYXJBY3Rpb24pLFxuICAgIGV4aGF1c3RNYXAoXG4gICAgICAoe3JvbGUsIGNsdWJPclNlY3Rpb25PclRlYW1JZH06IHtcbiAgICAgICAgcm9sZTogUm9sZSxcbiAgICAgICAgY2x1Yk9yU2VjdGlvbk9yVGVhbUlkOiBzdHJpbmdcbiAgICAgIH0pID0+IHRoaXMuYm9va2luZ0NhbGVuZGFyU2VydmljZS5nZXRCb29raW5nQ2FsZW5kYXJzKHJvbGUsIGNsdWJPclNlY3Rpb25PclRlYW1JZCkucGlwZShcbiAgICAgICAgbWFwKFxuICAgICAgICAgIChjYWxlbmRhcnM6IENvbGxlY3Rpb248Qm9va2luZ0NhbGVuZGFyPikgPT4gbGlzdENhbGVuZGFyU3VjY2Vzc0FjdGlvbih7Ym9va2luZ0NhbGVuZGFyczogY2FsZW5kYXJzLnRvQXJyYXkoKX0pLFxuICAgICAgICApLFxuICAgICAgKSxcbiAgICApLFxuICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gb2YobGlzdENhbGVuZGFyRmFpbHVyZUFjdGlvbih7cGF5bG9hZDogZXJyb3J9KSkpLFxuICApKTtcblxuICBsaXN0TG9jYXRpb25zJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgb2ZUeXBlKGxpc3RMb2NhdGlvbkFjdGlvbiksXG4gICAgZXhoYXVzdE1hcChcbiAgICAgICh7cm9sZSwgY2x1Yk9yU2VjdGlvbk9yVGVhbUlkfToge1xuICAgICAgICByb2xlOiBSb2xlLFxuICAgICAgICBjbHViT3JTZWN0aW9uT3JUZWFtSWQ6IHN0cmluZ1xuICAgICAgfSkgPT4gdGhpcy5hY3Rpdml0eVNlcnZpY2UuZ2V0QWN0aXZpdHlMb2NhdGlvbnMocm9sZSwgY2x1Yk9yU2VjdGlvbk9yVGVhbUlkLCB0cnVlKS5waXBlKFxuICAgICAgICBtYXAoXG4gICAgICAgICAgKGxvY2F0aW9uczogQ29sbGVjdGlvbjxBY3Rpdml0eUxvY2F0aW9uPiB8IHVuZGVmaW5lZCkgPT4gbGlzdExvY2F0aW9uU3VjY2Vzc0FjdGlvbih7bG9jYXRpb25zOiAobG9jYXRpb25zIGFzIENvbGxlY3Rpb248QWN0aXZpdHlMb2NhdGlvbj4pLnRvQXJyYXkoKX0pLFxuICAgICAgICApLFxuICAgICAgKVxuICAgICksXG4gICAgY2F0Y2hFcnJvcigoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiBvZihsaXN0TG9jYXRpb25GYWlsdXJlQWN0aW9uKHtwYXlsb2FkOiBlcnJvcn0pKSksXG4gICkpO1xuXG4gIGxpc3RCb29rYWJsZUl0ZW1zJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgb2ZUeXBlKGxpc3RCb29rYWJsZUl0ZW1BY3Rpb24pLFxuICAgIGV4aGF1c3RNYXAoXG4gICAgICAoe3JvbGUsIGNsdWJPclNlY3Rpb25PclRlYW1JZH06IHtcbiAgICAgICAgcm9sZTogUm9sZSxcbiAgICAgICAgY2x1Yk9yU2VjdGlvbk9yVGVhbUlkOiBzdHJpbmdcbiAgICAgIH0pID0+IHRoaXMuYm9va2FibGVTZXJ2aWNlLmdldEJvb2thYmxlSXRlbXMocm9sZSwgY2x1Yk9yU2VjdGlvbk9yVGVhbUlkKS5waXBlKFxuICAgICAgICBtYXAoXG4gICAgICAgICAgKGJvb2thYmxlSXRlbXM6IENvbGxlY3Rpb248Qm9va2FibGVJdGVtPiB8IHVuZGVmaW5lZCkgPT4gbGlzdEJvb2thYmxlSXRlbVN1Y2Nlc3NBY3Rpb24oe2l0ZW1zOiAoYm9va2FibGVJdGVtcyBhcyBDb2xsZWN0aW9uPEJvb2thYmxlSXRlbT4pLnRvQXJyYXkoKX0pLFxuICAgICAgICApLFxuICAgICAgKVxuICAgICksXG4gICAgY2F0Y2hFcnJvcigoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiBvZihsaXN0Qm9va2FibGVJdGVtRmFpbHVyZUFjdGlvbih7cGF5bG9hZDogZXJyb3J9KSkpLFxuICApKTtcblxuICBsaXN0Qm9va2FibGVHcm91cHMkID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICBvZlR5cGUobGlzdEJvb2thYmxlR3JvdXBBY3Rpb24pLFxuICAgIGV4aGF1c3RNYXAoXG4gICAgICAoe3JvbGUsIGNsdWJPclNlY3Rpb25PclRlYW1JZH06IHtcbiAgICAgICAgcm9sZTogUm9sZSxcbiAgICAgICAgY2x1Yk9yU2VjdGlvbk9yVGVhbUlkOiBzdHJpbmdcbiAgICAgIH0pID0+IHRoaXMuYm9va2FibGVTZXJ2aWNlLmdldEJvb2thYmxlR3JvdXBzKHJvbGUsIGNsdWJPclNlY3Rpb25PclRlYW1JZCkucGlwZShcbiAgICAgICAgbWFwKFxuICAgICAgICAgIChib29rYWJsZUdyb3VwczogQ29sbGVjdGlvbjxCb29rYWJsZUdyb3VwPiB8IHVuZGVmaW5lZCkgPT4gbGlzdEJvb2thYmxlR3JvdXBTdWNjZXNzQWN0aW9uKHtncm91cHM6IChib29rYWJsZUdyb3VwcyBhcyBDb2xsZWN0aW9uPEJvb2thYmxlR3JvdXA+KS50b0FycmF5KCl9KSxcbiAgICAgICAgKSxcbiAgICAgIClcbiAgICApLFxuICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gb2YobGlzdEJvb2thYmxlR3JvdXBGYWlsdXJlQWN0aW9uKHtwYXlsb2FkOiBlcnJvcn0pKSksXG4gICkpO1xuXG4gIGxpc3RCb29rYWJsZVRhZ3MkID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICBvZlR5cGUobGlzdEJvb2thYmxlVGFnQWN0aW9uKSxcbiAgICBleGhhdXN0TWFwKFxuICAgICAgKHtyb2xlLCBjbHViT3JTZWN0aW9uT3JUZWFtSWR9OiB7XG4gICAgICAgIHJvbGU6IFJvbGUsXG4gICAgICAgIGNsdWJPclNlY3Rpb25PclRlYW1JZDogc3RyaW5nXG4gICAgICB9KSA9PiB0aGlzLmJvb2thYmxlU2VydmljZS5nZXRCb29rYWJsZVRhZ3Mocm9sZSwgY2x1Yk9yU2VjdGlvbk9yVGVhbUlkKS5waXBlKFxuICAgICAgICBtYXAoXG4gICAgICAgICAgKGJvb2thYmxlVGFnczogQ29sbGVjdGlvbjxCb29rYWJsZVRhZz4gfCB1bmRlZmluZWQpID0+IGxpc3RCb29rYWJsZVRhZ1N1Y2Nlc3NBY3Rpb24oe3RhZ3M6IChib29rYWJsZVRhZ3MgYXMgQ29sbGVjdGlvbjxCb29rYWJsZVRhZz4pLnRvQXJyYXkoKX0pLFxuICAgICAgICApLFxuICAgICAgKVxuICAgICksXG4gICAgY2F0Y2hFcnJvcigoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiBvZihsaXN0Qm9va2FibGVUYWdGYWlsdXJlQWN0aW9uKHtwYXlsb2FkOiBlcnJvcn0pKSksXG4gICkpO1xuXG4gIGxpc3RUZWFtcyQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgIG9mVHlwZShsaXN0VGVhbUFjdGlvbiksXG4gICAgZXhoYXVzdE1hcChcbiAgICAgICh7cm9sZSwgY2x1Yk9yU2VjdGlvbk9yVGVhbUlkfToge1xuICAgICAgICByb2xlOiBSb2xlLFxuICAgICAgICBjbHViT3JTZWN0aW9uT3JUZWFtSWQ6IHN0cmluZ1xuICAgICAgfSkgPT4gdGhpcy50ZWFtU2VydmljZS5nZXRUZWFtcyhyb2xlLCBjbHViT3JTZWN0aW9uT3JUZWFtSWQpLnBpcGUoXG4gICAgICAgIG1hcChcbiAgICAgICAgICAodGVhbXM6IENvbGxlY3Rpb248U2VhcmNoVGVhbT4pID0+IGxpc3RUZWFtU3VjY2Vzc0FjdGlvbih7dGVhbXM6IHRlYW1zLnRvQXJyYXkoKX0pLFxuICAgICAgICApLFxuICAgICAgKSxcbiAgICApLFxuICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gb2YobGlzdFRlYW1GYWlsdXJlQWN0aW9uKHtwYXlsb2FkOiBlcnJvcn0pKSksXG4gICkpO1xuXG4gIHJldHJpZXZlU2V0dGluZ3MkID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICBvZlR5cGUocmV0cmlldmVTZXR0aW5nc0FjdGlvbiksXG4gICAgZXhoYXVzdE1hcChcbiAgICAgICh7cm9sZSwgY2x1Yk9yU2VjdGlvbk9yVGVhbUlkfToge1xuICAgICAgICByb2xlOiBSb2xlLFxuICAgICAgICBjbHViT3JTZWN0aW9uT3JUZWFtSWQ6IHN0cmluZ1xuICAgICAgfSkgPT4gdGhpcy5hY3Rpdml0eVNlcnZpY2UuZ2V0QWN0aXZpdHlTZXR0aW5ncyhyb2xlLCBjbHViT3JTZWN0aW9uT3JUZWFtSWQpLnBpcGUoXG4gICAgICAgIG1hcChcbiAgICAgICAgICAoc2V0dGluZ3M6IEFjdGl2aXR5U2V0dGluZ3MpID0+IHJldHJpZXZlU2V0dGluZ3NTdWNjZXNzQWN0aW9uKHtzZXR0aW5nczogc2V0dGluZ3N9KSxcbiAgICAgICAgKSxcbiAgICAgICksXG4gICAgKSxcbiAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IG9mKHJldHJpZXZlU2V0dGluZ3NGYWlsdXJlQWN0aW9uKHtwYXlsb2FkOiBlcnJvcn0pKSksXG4gICkpXG5cbiAgcmV0cmlldmVCb29raW5nU2V0dGluZ3MkID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICBvZlR5cGUocmV0cmlldmVCb29raW5nU2V0dGluZ3NBY3Rpb24pLFxuICAgIGV4aGF1c3RNYXAoXG4gICAgICAoe3JvbGUsIGNsdWJPclNlY3Rpb25PclRlYW1JZH06IHtcbiAgICAgICAgcm9sZTogUm9sZSxcbiAgICAgICAgY2x1Yk9yU2VjdGlvbk9yVGVhbUlkOiBzdHJpbmdcbiAgICAgIH0pID0+IHRoaXMuYm9va2luZ0NhbGVuZGFyU2VydmljZS5nZXRCb29raW5nU2V0dGluZ3Mocm9sZSwgY2x1Yk9yU2VjdGlvbk9yVGVhbUlkKS5waXBlKFxuICAgICAgICBtYXAoXG4gICAgICAgICAgKGJvb2tpbmdTZXR0aW5nczogQm9va2luZ1NldHRpbmdzKSA9PiByZXRyaWV2ZUJvb2tpbmdTZXR0aW5nc1N1Y2Nlc3NBY3Rpb24oe3NldHRpbmdzOiBib29raW5nU2V0dGluZ3N9KSxcbiAgICAgICAgKSxcbiAgICAgICksXG4gICAgKSxcbiAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IG9mKHJldHJpZXZlQm9va2luZ1NldHRpbmdzRmFpbHVyZUFjdGlvbih7cGF5bG9hZDogZXJyb3J9KSkpLFxuICApKVxuXG4gIGxpc3RBY3Rpdml0eVR5cGVzJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgb2ZUeXBlKGxpc3RBY3Rpdml0eVR5cGVBY3Rpb24pLFxuICAgIGV4aGF1c3RNYXAoXG4gICAgICAoe3JvbGUsIGNsdWJPclNlY3Rpb25PclRlYW1JZH06IHtcbiAgICAgICAgcm9sZTogUm9sZSxcbiAgICAgICAgY2x1Yk9yU2VjdGlvbk9yVGVhbUlkOiBzdHJpbmdcbiAgICAgIH0pID0+IHRoaXMuYWN0aXZpdHlTZXJ2aWNlLmdldEFjdGl2aXR5VHlwZXMocm9sZSwgY2x1Yk9yU2VjdGlvbk9yVGVhbUlkKS5waXBlKFxuICAgICAgICBtYXAoXG4gICAgICAgICAgKGFjdGl2aXR5VHlwZXM6IENvbGxlY3Rpb248QWN0aXZpdHlUeXBlPikgPT4gbGlzdEFjdGl2aXR5VHlwZVN1Y2Nlc3NBY3Rpb24oe2FjdGl2aXR5VHlwZXM6IGFjdGl2aXR5VHlwZXMudG9BcnJheSgpfSksXG4gICAgICAgICksXG4gICAgICApLFxuICAgICksXG4gICAgY2F0Y2hFcnJvcigoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiBvZihsaXN0QWN0aXZpdHlUeXBlRmFpbHVyZUFjdGlvbih7cGF5bG9hZDogZXJyb3J9KSkpLFxuICApKTtcblxuICB1cGRhdGVBY3Rpdml0eVR5cGUkID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICBvZlR5cGUodXBkYXRlQWN0aXZpdHlUeXBlQWN0aW9uKSxcbiAgICBleGhhdXN0TWFwKFxuICAgICAgKHtyb2xlLCBjbHViT3JTZWN0aW9uT3JUZWFtSWQsIGFjdGl2aXR5VHlwZX06IHtcbiAgICAgICAgcm9sZTogUm9sZSxcbiAgICAgICAgY2x1Yk9yU2VjdGlvbk9yVGVhbUlkOiBzdHJpbmcsXG4gICAgICAgIGFjdGl2aXR5VHlwZTogQWN0aXZpdHlUeXBlXG4gICAgICB9KSA9PiB0aGlzLmFjdGl2aXR5U2VydmljZS51cGRhdGVBY3Rpdml0eVR5cGUocm9sZSwgY2x1Yk9yU2VjdGlvbk9yVGVhbUlkLCBhY3Rpdml0eVR5cGUpLnBpcGUoXG4gICAgICAgIG1lcmdlTWFwKChhY3Rpdml0eVR5cGU6IEFjdGl2aXR5VHlwZSkgPT4gW1xuICAgICAgICAgIHVwZGF0ZUFjdGl2aXR5VHlwZVN1Y2Nlc3NBY3Rpb24oe2FjdGl2aXR5VHlwZTogYWN0aXZpdHlUeXBlfSksXG4gICAgICAgICAgbGlzdEFjdGl2aXR5VHlwZUFjdGlvbih7cm9sZSwgY2x1Yk9yU2VjdGlvbk9yVGVhbUlkfSksXG4gICAgICAgIF0pLFxuICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IG9mKHVwZGF0ZUFjdGl2aXR5VHlwZUZhaWx1cmVBY3Rpb24oe3BheWxvYWQ6IGVycm9yfSkpKVxuICAgICAgKSlcbiAgKSk7XG5cbiAgY3JlYXRlQm9va2FibGVJdGVtJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgb2ZUeXBlKGNyZWF0ZUJvb2thYmxlSXRlbUFjdGlvbiksXG4gICAgZXhoYXVzdE1hcChcbiAgICAgICh7cm9sZSwgY2x1Yk9yU2VjdGlvbk9yVGVhbUlkLCBpdGVtfToge1xuICAgICAgICByb2xlOiBSb2xlLFxuICAgICAgICBjbHViT3JTZWN0aW9uT3JUZWFtSWQ6IHN0cmluZyxcbiAgICAgICAgaXRlbTogUGFydGlhbDxCb29rYWJsZUl0ZW0+XG4gICAgICB9KSA9PiB0aGlzLmJvb2thYmxlU2VydmljZS5jcmVhdGVCb29rYWJsZUl0ZW0ocm9sZSwgY2x1Yk9yU2VjdGlvbk9yVGVhbUlkLCB7Li4uaXRlbX0pLnBpcGUoXG4gICAgICAgIG1lcmdlTWFwKChib29rYWJsZUl0ZW06IEJvb2thYmxlSXRlbSkgPT4gW1xuICAgICAgICAgIGNyZWF0ZUJvb2thYmxlSXRlbVN1Y2Nlc3NBY3Rpb24oe2l0ZW06IGJvb2thYmxlSXRlbX0pLFxuICAgICAgICAgIGxpc3RCb29rYWJsZUl0ZW1BY3Rpb24oe3JvbGUsIGNsdWJPclNlY3Rpb25PclRlYW1JZH0pLFxuICAgICAgICBdKSxcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiBvZihjcmVhdGVCb29rYWJsZUl0ZW1GYWlsdXJlQWN0aW9uKHtwYXlsb2FkOiBlcnJvcn0pKSlcbiAgICAgICkpXG4gICkpO1xuXG4gIHVwZGF0ZUJvb2thYmxlSXRlbSQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgIG9mVHlwZSh1cGRhdGVCb29rYWJsZUl0ZW1BY3Rpb24pLFxuICAgIGV4aGF1c3RNYXAoXG4gICAgICAoe3JvbGUsIGNsdWJPclNlY3Rpb25PclRlYW1JZCwgaXRlbX06IHtcbiAgICAgICAgcm9sZTogUm9sZSxcbiAgICAgICAgY2x1Yk9yU2VjdGlvbk9yVGVhbUlkOiBzdHJpbmcsXG4gICAgICAgIGl0ZW06IFBhcnRpYWw8Qm9va2FibGVJdGVtPlxuICAgICAgfSkgPT4gdGhpcy5ib29rYWJsZVNlcnZpY2UudXBkYXRlQm9va2FibGVJdGVtKHJvbGUsIGNsdWJPclNlY3Rpb25PclRlYW1JZCwgey4uLml0ZW19KS5waXBlKFxuICAgICAgICBtZXJnZU1hcCgoYm9va2FibGVJdGVtOiBCb29rYWJsZUl0ZW0pID0+IFtcbiAgICAgICAgICB1cGRhdGVCb29rYWJsZUl0ZW1TdWNjZXNzQWN0aW9uKHtpdGVtOiBib29rYWJsZUl0ZW19KSxcbiAgICAgICAgICBsaXN0Qm9va2FibGVJdGVtQWN0aW9uKHtyb2xlLCBjbHViT3JTZWN0aW9uT3JUZWFtSWR9KSxcbiAgICAgICAgICBsaXN0Qm9va2FibGVHcm91cEFjdGlvbih7cm9sZSwgY2x1Yk9yU2VjdGlvbk9yVGVhbUlkfSksXG4gICAgICAgIF0pLFxuICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IG9mKHVwZGF0ZUJvb2thYmxlSXRlbUZhaWx1cmVBY3Rpb24oe3BheWxvYWQ6IGVycm9yfSkpKVxuICAgICAgKSlcbiAgKSk7XG5cbiAgY3JlYXRlQm9va2FibGVUYWckID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICBvZlR5cGUoY3JlYXRlQm9va2FibGVUYWdBY3Rpb24pLFxuICAgIGV4aGF1c3RNYXAoXG4gICAgICAoe3JvbGUsIGNsdWJPclNlY3Rpb25PclRlYW1JZCwgdGFnfToge1xuICAgICAgICByb2xlOiBSb2xlLFxuICAgICAgICBjbHViT3JTZWN0aW9uT3JUZWFtSWQ6IHN0cmluZyxcbiAgICAgICAgdGFnOiBQYXJ0aWFsPEJvb2thYmxlVGFnPlxuICAgICAgfSkgPT4gdGhpcy5ib29rYWJsZVNlcnZpY2UuY3JlYXRlQm9va2FibGVUYWcocm9sZSwgY2x1Yk9yU2VjdGlvbk9yVGVhbUlkLCB7Li4udGFnfSkucGlwZShcbiAgICAgICAgbWVyZ2VNYXAoKHRhZzogQm9va2FibGVUYWcpID0+IFtcbiAgICAgICAgICBjcmVhdGVCb29rYWJsZVRhZ1N1Y2Nlc3NBY3Rpb24oe3RhZzogdGFnfSksXG4gICAgICAgICAgbGlzdEJvb2thYmxlVGFnQWN0aW9uKHtyb2xlLCBjbHViT3JTZWN0aW9uT3JUZWFtSWR9KSxcbiAgICAgICAgXSksXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gb2YoY3JlYXRlQm9va2FibGVUYWdGYWlsdXJlQWN0aW9uKHtwYXlsb2FkOiBlcnJvcn0pKSlcbiAgICAgICkpXG4gICkpO1xuXG4gIHVwZGF0ZUJvb2thYmxlVGFnJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgb2ZUeXBlKHVwZGF0ZUJvb2thYmxlVGFnQWN0aW9uKSxcbiAgICBleGhhdXN0TWFwKFxuICAgICAgKHtyb2xlLCBjbHViT3JTZWN0aW9uT3JUZWFtSWQsIHRhZ306IHtcbiAgICAgICAgcm9sZTogUm9sZSxcbiAgICAgICAgY2x1Yk9yU2VjdGlvbk9yVGVhbUlkOiBzdHJpbmcsXG4gICAgICAgIHRhZzogUGFydGlhbDxCb29rYWJsZVRhZz5cbiAgICAgIH0pID0+IHRoaXMuYm9va2FibGVTZXJ2aWNlLnVwZGF0ZUJvb2thYmxlVGFnKHJvbGUsIGNsdWJPclNlY3Rpb25PclRlYW1JZCwgey4uLnRhZ30pLnBpcGUoXG4gICAgICAgIG1lcmdlTWFwKCh0YWc6IEJvb2thYmxlVGFnKSA9PiBbXG4gICAgICAgICAgdXBkYXRlQm9va2FibGVUYWdTdWNjZXNzQWN0aW9uKHt0YWc6IHRhZ30pLFxuICAgICAgICBdKSxcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiBvZih1cGRhdGVCb29rYWJsZVRhZ0ZhaWx1cmVBY3Rpb24oe3BheWxvYWQ6IGVycm9yfSkpKVxuICAgICAgKSlcbiAgKSk7XG5cbiAgZGVsZXRlQm9va2FibGVUYWckID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICBvZlR5cGUoZGVsZXRlQm9va2FibGVUYWdBY3Rpb24pLFxuICAgIGV4aGF1c3RNYXAoXG4gICAgICAoe3JvbGUsIGNsdWJPclNlY3Rpb25PclRlYW1JZCwgdGFnfToge1xuICAgICAgICByb2xlOiBSb2xlLFxuICAgICAgICBjbHViT3JTZWN0aW9uT3JUZWFtSWQ6IHN0cmluZyxcbiAgICAgICAgdGFnOiBCb29rYWJsZVRhZ1xuICAgICAgfSkgPT4gdGhpcy5ib29rYWJsZVNlcnZpY2UuZGVsZXRlQm9va2FibGVUYWcocm9sZSwgY2x1Yk9yU2VjdGlvbk9yVGVhbUlkLCB0YWcpLnBpcGUoXG4gICAgICAgIG1lcmdlTWFwKCgpID0+IFtcbiAgICAgICAgICBkZWxldGVCb29rYWJsZVRhZ1N1Y2Nlc3NBY3Rpb24oe3RhZzogdGFnfSksXG4gICAgICAgICAgbGlzdEJvb2thYmxlVGFnQWN0aW9uKHtyb2xlLCBjbHViT3JTZWN0aW9uT3JUZWFtSWR9KSxcbiAgICAgICAgXSksXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gb2YoZGVsZXRlQm9va2FibGVUYWdGYWlsdXJlQWN0aW9uKHtwYXlsb2FkOiBlcnJvcn0pKSlcbiAgICAgICkpXG4gICkpO1xuXG4gIGNyZWF0ZUJvb2thYmxlR3JvdXAkID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICBvZlR5cGUoY3JlYXRlQm9va2FibGVHcm91cEFjdGlvbiksXG4gICAgZXhoYXVzdE1hcChcbiAgICAgICh7cm9sZSwgY2x1Yk9yU2VjdGlvbk9yVGVhbUlkLCBncm91cH06IHtcbiAgICAgICAgcm9sZTogUm9sZSxcbiAgICAgICAgY2x1Yk9yU2VjdGlvbk9yVGVhbUlkOiBzdHJpbmcsXG4gICAgICAgIGdyb3VwOiBQYXJ0aWFsPEJvb2thYmxlR3JvdXA+XG4gICAgICB9KSA9PiB0aGlzLmJvb2thYmxlU2VydmljZS5jcmVhdGVCb29rYWJsZUdyb3VwKHJvbGUsIGNsdWJPclNlY3Rpb25PclRlYW1JZCwgey4uLmdyb3VwfSkucGlwZShcbiAgICAgICAgbWVyZ2VNYXAoKGJvb2thYmxlR3JvdXA6IEJvb2thYmxlR3JvdXApID0+IFtcbiAgICAgICAgICBjcmVhdGVCb29rYWJsZUdyb3VwU3VjY2Vzc0FjdGlvbih7Z3JvdXA6IGJvb2thYmxlR3JvdXB9KSxcbiAgICAgICAgICBsaXN0Qm9va2FibGVHcm91cEFjdGlvbih7cm9sZSwgY2x1Yk9yU2VjdGlvbk9yVGVhbUlkfSksXG4gICAgICAgIF0pLFxuICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IG9mKGNyZWF0ZUJvb2thYmxlR3JvdXBGYWlsdXJlQWN0aW9uKHtwYXlsb2FkOiBlcnJvcn0pKSlcbiAgICAgICkpXG4gICkpO1xuXG4gIHVwZGF0ZUJvb2thYmxlR3JvdXAkID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICBvZlR5cGUodXBkYXRlQm9va2FibGVHcm91cEFjdGlvbiksXG4gICAgZXhoYXVzdE1hcChcbiAgICAgICh7cm9sZSwgY2x1Yk9yU2VjdGlvbk9yVGVhbUlkLCBncm91cH06IHtcbiAgICAgICAgcm9sZTogUm9sZSxcbiAgICAgICAgY2x1Yk9yU2VjdGlvbk9yVGVhbUlkOiBzdHJpbmcsXG4gICAgICAgIGdyb3VwOiBQYXJ0aWFsPEJvb2thYmxlR3JvdXA+XG4gICAgICB9KSA9PiB0aGlzLmJvb2thYmxlU2VydmljZS51cGRhdGVCb29rYWJsZUdyb3VwKHJvbGUsIGNsdWJPclNlY3Rpb25PclRlYW1JZCwgey4uLmdyb3VwfSkucGlwZShcbiAgICAgICAgbWVyZ2VNYXAoKGJvb2thYmxlR3JvdXA6IEJvb2thYmxlR3JvdXApID0+IFtcbiAgICAgICAgICB1cGRhdGVCb29rYWJsZUdyb3VwU3VjY2Vzc0FjdGlvbih7Z3JvdXA6IGJvb2thYmxlR3JvdXB9KSxcbiAgICAgICAgICBsaXN0Qm9va2FibGVHcm91cEFjdGlvbih7cm9sZSwgY2x1Yk9yU2VjdGlvbk9yVGVhbUlkfSksXG4gICAgICAgICAgbGlzdENhbGVuZGFyQWN0aW9uKHtyb2xlLCBjbHViT3JTZWN0aW9uT3JUZWFtSWR9KSxcbiAgICAgICAgXSksXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gb2YodXBkYXRlQm9va2FibGVHcm91cEZhaWx1cmVBY3Rpb24oe3BheWxvYWQ6IGVycm9yfSkpKVxuICAgICAgKSlcbiAgKSk7XG5cbiAgY3JlYXRlQm9va2luZ0NhbGVuZGFyJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgb2ZUeXBlKGNyZWF0ZUJvb2tpbmdDYWxlbmRhckFjdGlvbiksXG4gICAgZXhoYXVzdE1hcChcbiAgICAgICh7cm9sZSwgY2x1Yk9yU2VjdGlvbk9yVGVhbUlkLCBjYWxlbmRhcn06IHtcbiAgICAgICAgcm9sZTogUm9sZSxcbiAgICAgICAgY2x1Yk9yU2VjdGlvbk9yVGVhbUlkOiBzdHJpbmcsXG4gICAgICAgIGNhbGVuZGFyOiBQYXJ0aWFsPEJvb2tpbmdDYWxlbmRhcj5cbiAgICAgIH0pID0+IHRoaXMuYm9va2luZ0NhbGVuZGFyU2VydmljZS5jcmVhdGVCb29raW5nQ2FsZW5kYXIocm9sZSwgY2x1Yk9yU2VjdGlvbk9yVGVhbUlkLCB7Li4uY2FsZW5kYXJ9KS5waXBlKFxuICAgICAgICBtZXJnZU1hcCgoYm9va2luZ0NhbGVuZGFyOiBCb29raW5nQ2FsZW5kYXIpID0+IFtcbiAgICAgICAgICBjcmVhdGVCb29raW5nQ2FsZW5kYXJTdWNjZXNzQWN0aW9uKHtjYWxlbmRhcjogYm9va2luZ0NhbGVuZGFyfSksXG4gICAgICAgICAgbGlzdENhbGVuZGFyQWN0aW9uKHtyb2xlLCBjbHViT3JTZWN0aW9uT3JUZWFtSWR9KSxcbiAgICAgICAgXSksXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gb2YoY3JlYXRlQm9va2luZ0NhbGVuZGFyRmFpbHVyZUFjdGlvbih7cGF5bG9hZDogZXJyb3J9KSkpXG4gICAgICApKVxuICApKTtcblxuICB1cGRhdGVCb29raW5nQ2FsZW5kYXIkID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICBvZlR5cGUodXBkYXRlQm9va2luZ0NhbGVuZGFyQWN0aW9uKSxcbiAgICBleGhhdXN0TWFwKFxuICAgICAgKHtyb2xlLCBjbHViT3JTZWN0aW9uT3JUZWFtSWQsIGNhbGVuZGFyfToge1xuICAgICAgICByb2xlOiBSb2xlLFxuICAgICAgICBjbHViT3JTZWN0aW9uT3JUZWFtSWQ6IHN0cmluZyxcbiAgICAgICAgY2FsZW5kYXI6IFBhcnRpYWw8Qm9va2luZ0NhbGVuZGFyPlxuICAgICAgfSkgPT4gdGhpcy5ib29raW5nQ2FsZW5kYXJTZXJ2aWNlLnVwZGF0ZUJvb2tpbmdDYWxlbmRhcihyb2xlLCBjbHViT3JTZWN0aW9uT3JUZWFtSWQsIHsuLi5jYWxlbmRhcn0pLnBpcGUoXG4gICAgICAgIG1lcmdlTWFwKChib29raW5nQ2FsZW5kYXI6IEJvb2tpbmdDYWxlbmRhcikgPT4gW1xuICAgICAgICAgIHVwZGF0ZUJvb2tpbmdDYWxlbmRhclN1Y2Nlc3NBY3Rpb24oe2NhbGVuZGFyOiBib29raW5nQ2FsZW5kYXJ9KSxcbiAgICAgICAgICBsaXN0Q2FsZW5kYXJBY3Rpb24oe3JvbGUsIGNsdWJPclNlY3Rpb25PclRlYW1JZH0pLFxuICAgICAgICBdKSxcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiBvZih1cGRhdGVCb29raW5nQ2FsZW5kYXJGYWlsdXJlQWN0aW9uKHtwYXlsb2FkOiBlcnJvcn0pKSlcbiAgICAgICkpXG4gICkpO1xuXG4gIGRlbGV0ZUJvb2tpbmdDYWxlbmRhciQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgIG9mVHlwZShkZWxldGVCb29raW5nQ2FsZW5kYXJBY3Rpb24pLFxuICAgIGV4aGF1c3RNYXAoXG4gICAgICAoe3JvbGUsIGNsdWJPclNlY3Rpb25PclRlYW1JZCwgY2FsZW5kYXJ9OiB7XG4gICAgICAgIHJvbGU6IFJvbGUsXG4gICAgICAgIGNsdWJPclNlY3Rpb25PclRlYW1JZDogc3RyaW5nLFxuICAgICAgICBjYWxlbmRhcjogQm9va2luZ0NhbGVuZGFyXG4gICAgICB9KSA9PiB0aGlzLmJvb2tpbmdDYWxlbmRhclNlcnZpY2UuZGVsZXRlQm9va2luZ0NhbGVuZGFyKHJvbGUsIGNsdWJPclNlY3Rpb25PclRlYW1JZCwgY2FsZW5kYXIuaWQpLnBpcGUoXG4gICAgICAgIG1lcmdlTWFwKCgpID0+IFtcbiAgICAgICAgICBkZWxldGVCb29raW5nQ2FsZW5kYXJTdWNjZXNzQWN0aW9uKHtjYWxlbmRhcjogY2FsZW5kYXJ9KSxcbiAgICAgICAgICBsaXN0Q2FsZW5kYXJBY3Rpb24oe3JvbGUsIGNsdWJPclNlY3Rpb25PclRlYW1JZH0pLFxuICAgICAgICBdKSxcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiBvZihkZWxldGVCb29raW5nQ2FsZW5kYXJGYWlsdXJlQWN0aW9uKHtwYXlsb2FkOiBlcnJvcn0pKSlcbiAgICAgICkpXG4gICkpO1xuXG4gIHVwZGF0ZUJvb2tpbmdTZXR0aW5ncyQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgIG9mVHlwZSh1cGRhdGVCb29raW5nU2V0dGluZ3NBY3Rpb24pLFxuICAgIGV4aGF1c3RNYXAoXG4gICAgICAoe3JvbGUsIGNsdWJPclNlY3Rpb25PclRlYW1JZCwgc2V0dGluZ3N9OiB7XG4gICAgICAgIHJvbGU6IFJvbGUsXG4gICAgICAgIGNsdWJPclNlY3Rpb25PclRlYW1JZDogc3RyaW5nLFxuICAgICAgICBzZXR0aW5nczogQm9va2luZ1NldHRpbmdzXG4gICAgICB9KSA9PiB0aGlzLmJvb2tpbmdDYWxlbmRhclNlcnZpY2UudXBkYXRlQm9va2luZ1NldHRpbmdzKHJvbGUsIGNsdWJPclNlY3Rpb25PclRlYW1JZCwgc2V0dGluZ3MpLnBpcGUoXG4gICAgICAgIG1lcmdlTWFwKChuZXdTZXR0aW5nczogQm9va2luZ1NldHRpbmdzKSA9PiBbXG4gICAgICAgICAgdXBkYXRlQm9va2luZ1NldHRpbmdzU3VjY2Vzc0FjdGlvbih7c2V0dGluZ3M6IG5ld1NldHRpbmdzfSksXG4gICAgICAgICAgcmV0cmlldmVCb29raW5nU2V0dGluZ3NBY3Rpb24oe3JvbGUsIGNsdWJPclNlY3Rpb25PclRlYW1JZH0pLFxuICAgICAgICBdKSxcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiBvZih1cGRhdGVCb29raW5nU2V0dGluZ3NGYWlsdXJlQWN0aW9uKHtwYXlsb2FkOiBlcnJvcn0pKSlcbiAgICAgICkpXG4gICkpO1xuXG4gIGNyZWF0ZUJvb2tpbmdDYWxlbmRhclNsb3QkID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICBvZlR5cGUoY3JlYXRlQm9va2luZ0NhbGVuZGFyU2xvdEFjdGlvbiksXG4gICAgZXhoYXVzdE1hcChcbiAgICAgICh7cm9sZSwgY2x1Yk9yU2VjdGlvbk9yVGVhbUlkLCBzbG90fToge1xuICAgICAgICByb2xlOiBSb2xlLFxuICAgICAgICBjbHViT3JTZWN0aW9uT3JUZWFtSWQ6IHN0cmluZyxcbiAgICAgICAgc2xvdDogUGFydGlhbDxCb29raW5nQ2FsZW5kYXJTbG90PlxuICAgICAgfSkgPT4gdGhpcy5ib29raW5nQ2FsZW5kYXJTZXJ2aWNlLmNyZWF0ZUJvb2tpbmdDYWxlbmRhclNsb3Qocm9sZSBhcyBSb2xlLCBjbHViT3JTZWN0aW9uT3JUZWFtSWQsIHsuLi5zbG90fSkucGlwZShcbiAgICAgICAgbWVyZ2VNYXAoKHNsb3Q6IEJvb2tpbmdDYWxlbmRhclNsb3QpID0+IFtcbiAgICAgICAgICBjcmVhdGVCb29raW5nQ2FsZW5kYXJTbG90U3VjY2Vzc0FjdGlvbih7c2xvdDogc2xvdH0pLFxuICAgICAgICBdKSxcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiBvZihjcmVhdGVCb29raW5nQ2FsZW5kYXJTbG90RmFpbHVyZUFjdGlvbih7cGF5bG9hZDogZXJyb3J9KSkpXG4gICAgICApKVxuICApKTtcblxuICB1cGRhdGVCb29raW5nQ2FsZW5kYXJTbG90JCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgb2ZUeXBlKHVwZGF0ZUJvb2tpbmdDYWxlbmRhclNsb3RBY3Rpb24pLFxuICAgIGV4aGF1c3RNYXAoXG4gICAgICAoe3JvbGUsIGNsdWJPclNlY3Rpb25PclRlYW1JZCwgc2xvdH06IHtcbiAgICAgICAgcm9sZTogUm9sZSxcbiAgICAgICAgY2x1Yk9yU2VjdGlvbk9yVGVhbUlkOiBzdHJpbmcsXG4gICAgICAgIHNsb3Q6IFBhcnRpYWw8Qm9va2luZ0NhbGVuZGFyU2xvdD5cbiAgICAgIH0pID0+IHRoaXMuYm9va2luZ0NhbGVuZGFyU2VydmljZS51cGRhdGVCb29raW5nQ2FsZW5kYXJTbG90KHJvbGUsIGNsdWJPclNlY3Rpb25PclRlYW1JZCwgey4uLnNsb3R9KS5waXBlKFxuICAgICAgICBtZXJnZU1hcCgoc2xvdDogQm9va2luZ0NhbGVuZGFyU2xvdCkgPT4gW1xuICAgICAgICAgIHVwZGF0ZUJvb2tpbmdDYWxlbmRhclNsb3RTdWNjZXNzQWN0aW9uKHtzbG90OiBzbG90fSksXG4gICAgICAgIF0pLFxuICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IG9mKHVwZGF0ZUJvb2tpbmdDYWxlbmRhclNsb3RGYWlsdXJlQWN0aW9uKHtwYXlsb2FkOiBlcnJvcn0pKSlcbiAgICAgICkpXG4gICkpO1xuXG4gIGRlbGV0ZUJvb2tpbmdDYWxlbmRhclNsb3QkID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICBvZlR5cGUoZGVsZXRlQm9va2luZ0NhbGVuZGFyU2xvdEFjdGlvbiksXG4gICAgZXhoYXVzdE1hcChcbiAgICAgICh7cm9sZSwgY2x1Yk9yU2VjdGlvbk9yVGVhbUlkLCBzbG90fToge1xuICAgICAgICByb2xlOiBSb2xlLFxuICAgICAgICBjbHViT3JTZWN0aW9uT3JUZWFtSWQ6IHN0cmluZyxcbiAgICAgICAgc2xvdDogQm9va2luZ0NhbGVuZGFyU2xvdFxuICAgICAgfSkgPT4gdGhpcy5ib29raW5nQ2FsZW5kYXJTZXJ2aWNlLmRlbGV0ZUJvb2tpbmdDYWxlbmRhclNsb3Qocm9sZSwgY2x1Yk9yU2VjdGlvbk9yVGVhbUlkLCBzbG90LmlkKS5waXBlKFxuICAgICAgICBtZXJnZU1hcCgoKSA9PiBbXG4gICAgICAgICAgZGVsZXRlQm9va2luZ0NhbGVuZGFyU2xvdFN1Y2Nlc3NBY3Rpb24oe3Nsb3Q6IHNsb3R9KSxcbiAgICAgICAgXSksXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gb2YoZGVsZXRlQm9va2luZ0NhbGVuZGFyU2xvdEZhaWx1cmVBY3Rpb24oe3BheWxvYWQ6IGVycm9yfSkpKVxuICAgICAgKSlcbiAgKSk7XG5cbiAgZGVsZXRlQm9va2luZ0NhbGVuZGFyUmVwZWF0YWJsZVNsb3QkID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICBvZlR5cGUoZGVsZXRlQm9va2luZ0NhbGVuZGFyUmVwZWF0YWJsZVNsb3RBY3Rpb24pLFxuICAgIGV4aGF1c3RNYXAoXG4gICAgICAoe3JvbGUsIGNsdWJPclNlY3Rpb25PclRlYW1JZCwgc2xvdCwgZGVsZXRlVW50aWxEYXRlfToge1xuICAgICAgICByb2xlOiBSb2xlLFxuICAgICAgICBjbHViT3JTZWN0aW9uT3JUZWFtSWQ6IHN0cmluZyxcbiAgICAgICAgc2xvdDogQm9va2luZ0NhbGVuZGFyU2xvdCxcbiAgICAgICAgZGVsZXRlVW50aWxEYXRlOiBzdHJpbmcgfCBudWxsXG4gICAgICB9KSA9PiB0aGlzLmJvb2tpbmdDYWxlbmRhclNlcnZpY2UuZGVsZXRlQm9va2luZ0NhbGVuZGFyU2xvdFJlcGVhdGFibGUocm9sZSwgY2x1Yk9yU2VjdGlvbk9yVGVhbUlkLCBzbG90LmlkLCBkZWxldGVVbnRpbERhdGUpLnBpcGUoXG4gICAgICAgIG1lcmdlTWFwKCgpID0+IFtcbiAgICAgICAgICBkZWxldGVCb29raW5nQ2FsZW5kYXJSZXBlYXRhYmxlU2xvdFN1Y2Nlc3NBY3Rpb24oe3Nsb3Q6IHNsb3R9KSxcbiAgICAgICAgXSksXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gb2YoZGVsZXRlQm9va2luZ0NhbGVuZGFyUmVwZWF0YWJsZVNsb3RGYWlsdXJlQWN0aW9uKHtwYXlsb2FkOiBlcnJvcn0pKSlcbiAgICAgICkpXG4gICkpO1xuXG4gIGNyZWF0ZUJvb2tpbmdDYWxlbmRhclNsb3RTZXNzaW9uJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgb2ZUeXBlKGNyZWF0ZUJvb2tpbmdDYWxlbmRhclNsb3RTZXNzaW9uQWN0aW9uKSxcbiAgICBleGhhdXN0TWFwKFxuICAgICAgKHtyb2xlLCBjbHViT3JTZWN0aW9uT3JUZWFtSWQsIHNlc3Npb259OiB7XG4gICAgICAgIHJvbGU6IFJvbGUsXG4gICAgICAgIGNsdWJPclNlY3Rpb25PclRlYW1JZDogc3RyaW5nLFxuICAgICAgICBzZXNzaW9uOiBQYXJ0aWFsPEJvb2tpbmdDYWxlbmRhclNsb3RTZXNzaW9uPlxuICAgICAgfSkgPT4gdGhpcy5ib29raW5nQ2FsZW5kYXJTZXJ2aWNlLmNyZWF0ZUJvb2tpbmdDYWxlbmRhclNsb3RTZXNzaW9uKHJvbGUsIGNsdWJPclNlY3Rpb25PclRlYW1JZCwgey4uLnNlc3Npb259KS5waXBlKFxuICAgICAgICBtZXJnZU1hcCgoc2Vzc2lvbjogQm9va2luZ0NhbGVuZGFyU2xvdFNlc3Npb24pID0+IFtcbiAgICAgICAgICBjcmVhdGVCb29raW5nQ2FsZW5kYXJTbG90U2Vzc2lvblN1Y2Nlc3NBY3Rpb24oe3Nlc3Npb246IHNlc3Npb259KSxcbiAgICAgICAgXSksXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gb2YoY3JlYXRlQm9va2luZ0NhbGVuZGFyU2xvdFNlc3Npb25GYWlsdXJlQWN0aW9uKHtwYXlsb2FkOiBlcnJvcn0pKSlcbiAgICAgICkpXG4gICkpO1xuXG4gIHVwZGF0ZUJvb2tpbmdDYWxlbmRhclNsb3RTZXNzaW9uJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgb2ZUeXBlKHVwZGF0ZUJvb2tpbmdDYWxlbmRhclNsb3RTZXNzaW9uQWN0aW9uKSxcbiAgICBleGhhdXN0TWFwKFxuICAgICAgKHtyb2xlLCBjbHViT3JTZWN0aW9uT3JUZWFtSWQsIHNlc3Npb259OiB7XG4gICAgICAgIHJvbGU6IFJvbGUsXG4gICAgICAgIGNsdWJPclNlY3Rpb25PclRlYW1JZDogc3RyaW5nLFxuICAgICAgICBzZXNzaW9uOiBQYXJ0aWFsPEJvb2tpbmdDYWxlbmRhclNsb3RTZXNzaW9uPlxuICAgICAgfSkgPT4gdGhpcy5ib29raW5nQ2FsZW5kYXJTZXJ2aWNlLnVwZGF0ZUJvb2tpbmdDYWxlbmRhclNsb3RTZXNzaW9uKHJvbGUsIGNsdWJPclNlY3Rpb25PclRlYW1JZCwgey4uLnNlc3Npb259KS5waXBlKFxuICAgICAgICBtZXJnZU1hcCgoc2Vzc2lvbjogQm9va2luZ0NhbGVuZGFyU2xvdFNlc3Npb24pID0+IFtcbiAgICAgICAgICB1cGRhdGVCb29raW5nQ2FsZW5kYXJTbG90U2Vzc2lvblN1Y2Nlc3NBY3Rpb24oe3Nlc3Npb246IHNlc3Npb259KSxcbiAgICAgICAgXSksXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gb2YodXBkYXRlQm9va2luZ0NhbGVuZGFyU2xvdFNlc3Npb25GYWlsdXJlQWN0aW9uKHtwYXlsb2FkOiBlcnJvcn0pKSlcbiAgICAgICkpXG4gICkpO1xuXG4gIGRlbGV0ZUJvb2tpbmdDYWxlbmRhclNsb3RTZXNzaW9uJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgb2ZUeXBlKGRlbGV0ZUJvb2tpbmdDYWxlbmRhclNsb3RTZXNzaW9uQWN0aW9uKSxcbiAgICBleGhhdXN0TWFwKFxuICAgICAgKHtyb2xlLCBjbHViT3JTZWN0aW9uT3JUZWFtSWQsIHNlc3Npb259OiB7XG4gICAgICAgIHJvbGU6IFJvbGUsXG4gICAgICAgIGNsdWJPclNlY3Rpb25PclRlYW1JZDogc3RyaW5nLFxuICAgICAgICBzZXNzaW9uOiBCb29raW5nQ2FsZW5kYXJTbG90U2Vzc2lvblxuICAgICAgfSkgPT4gdGhpcy5ib29raW5nQ2FsZW5kYXJTZXJ2aWNlLmRlbGV0ZUJvb2tpbmdDYWxlbmRhclNsb3RTZXNzaW9uKHJvbGUsIGNsdWJPclNlY3Rpb25PclRlYW1JZCwgc2Vzc2lvbi5pZCkucGlwZShcbiAgICAgICAgbWVyZ2VNYXAoKCkgPT4gW1xuICAgICAgICAgIGRlbGV0ZUJvb2tpbmdDYWxlbmRhclNsb3RTZXNzaW9uU3VjY2Vzc0FjdGlvbih7c2Vzc2lvbjogc2Vzc2lvbn0pLFxuICAgICAgICBdKSxcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiBvZihkZWxldGVCb29raW5nQ2FsZW5kYXJTbG90U2Vzc2lvbkZhaWx1cmVBY3Rpb24oe3BheWxvYWQ6IGVycm9yfSkpKVxuICAgICAgKSlcbiAgKSk7XG5cbiAgZGVsZXRlQm9va2luZ0NhbGVuZGFyUmVwZWF0YWJsZVNsb3RTZXNzaW9uJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgb2ZUeXBlKGRlbGV0ZUJvb2tpbmdDYWxlbmRhclJlcGVhdGFibGVTbG90U2Vzc2lvbkFjdGlvbiksXG4gICAgZXhoYXVzdE1hcChcbiAgICAgICh7cm9sZSwgY2x1Yk9yU2VjdGlvbk9yVGVhbUlkLCBzZXNzaW9uLCBkZWxldGVVbnRpbERhdGV9OiB7XG4gICAgICAgIHJvbGU6IFJvbGUsXG4gICAgICAgIGNsdWJPclNlY3Rpb25PclRlYW1JZDogc3RyaW5nLFxuICAgICAgICBzZXNzaW9uOiBCb29raW5nQ2FsZW5kYXJTbG90U2Vzc2lvbixcbiAgICAgICAgZGVsZXRlVW50aWxEYXRlOiBzdHJpbmcgfCBudWxsXG4gICAgICB9KSA9PiB0aGlzLmJvb2tpbmdDYWxlbmRhclNlcnZpY2UuZGVsZXRlQm9va2luZ0NhbGVuZGFyU2xvdFNlc3Npb25SZXBlYXRhYmxlKHJvbGUsIGNsdWJPclNlY3Rpb25PclRlYW1JZCwgc2Vzc2lvbi5pZCwgZGVsZXRlVW50aWxEYXRlKS5waXBlKFxuICAgICAgICBtZXJnZU1hcCgoKSA9PiBbXG4gICAgICAgICAgZGVsZXRlQm9va2luZ0NhbGVuZGFyUmVwZWF0YWJsZVNsb3RTZXNzaW9uU3VjY2Vzc0FjdGlvbih7c2Vzc2lvbjogc2Vzc2lvbn0pLFxuICAgICAgICBdKSxcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiBvZihkZWxldGVCb29raW5nQ2FsZW5kYXJSZXBlYXRhYmxlU2xvdFNlc3Npb25GYWlsdXJlQWN0aW9uKHtwYXlsb2FkOiBlcnJvcn0pKSlcbiAgICAgICkpXG4gICkpO1xuXG59XG4iXX0=
@@ -0,0 +1,84 @@
1
+ import { inject, Injectable } from '@angular/core';
2
+ import { Actions, createEffect, ofType } from '@ngrx/effects';
3
+ import { listAllMemberOpenActivityLocationsAction, listAllMemberOpenActivityLocationsFailureAction, listAllMemberOpenActivityLocationsSuccessAction, listAllMemberOpenActivityTypesAction, listAllMemberOpenActivityTypesFailureAction, listAllMemberOpenActivityTypesSuccessAction, listAllPublicOpenActivityLocationsAction, listAllPublicOpenActivityLocationsFailureAction, listAllPublicOpenActivityLocationsSuccessAction, listAllPublicOpenActivityTypesAction, listAllPublicOpenActivityTypesFailureAction, listAllPublicOpenActivityTypesSuccessAction, listMemberActivitiesAction, listMemberActivitiesFailureAction, listMemberActivitiesSuccessAction, listMemberOpenActivitiesAction, listMemberOpenActivitiesFailureAction, listMemberOpenActivitiesSuccessAction, listMemberOpenActivityLocationsAction, listMemberOpenActivityLocationsFailureAction, listMemberOpenActivityLocationsSuccessAction, listMemberOpenActivityTypesAction, listMemberOpenActivityTypesFailureAction, listMemberOpenActivityTypesSuccessAction, listPublicOpenActivitiesAction, listPublicOpenActivitiesFailureAction, listPublicOpenActivitiesSuccessAction, listPublicOpenActivityLocationsAction, listPublicOpenActivityLocationsFailureAction, listPublicOpenActivityLocationsSuccessAction, listPublicOpenActivityTypesAction, listPublicOpenActivityTypesFailureAction, listPublicOpenActivityTypesSuccessAction, listTeamActivitiesAction, listTeamActivitiesFailureAction, listTeamActivitiesSuccessAction } from '../actions';
4
+ import { ActivityService } from '../../services';
5
+ import { exhaustMap, forkJoin, mergeMap, of } from 'rxjs';
6
+ import { catchError, map } from 'rxjs/operators';
7
+ import * as i0 from "@angular/core";
8
+ export class CalendarEffects {
9
+ actions$ = inject(Actions);
10
+ activityService = inject(ActivityService);
11
+ listMemberActivities$ = createEffect(() => this.actions$
12
+ .pipe(ofType(listMemberActivitiesAction), mergeMap(({ payload }) => forkJoin(payload.memberIds.map((id) => this.activityService.getMemberCalendarEvents(id, payload.startDate, payload.endDate)
13
+ .pipe(map((events) => ({ id, events: events.toArray() })), catchError((error) => of({ id, error }))))).pipe(map(results => {
14
+ const resultMap = new Map();
15
+ results.forEach((result) => {
16
+ if (result.events) {
17
+ resultMap.set(result.id, result.events);
18
+ }
19
+ });
20
+ return listMemberActivitiesSuccessAction({ payload: { ...payload, results: resultMap } });
21
+ }), catchError((error) => of(listMemberActivitiesFailureAction({
22
+ payload: {
23
+ ...payload,
24
+ error
25
+ }
26
+ })))))));
27
+ listMemberOpenActivities$ = createEffect(() => this.actions$
28
+ .pipe(ofType(listMemberOpenActivitiesAction), mergeMap(({ payload }) => forkJoin(payload.memberIds.map((id) => this.activityService.getMemberOpenActivities(id, payload.openActivitySearchParams)
29
+ .pipe(map((activities) => ({ id, activities: activities.toArray() })), catchError((error) => of({ id, error }))))).pipe(map(results => {
30
+ const resultMap = new Map();
31
+ results.forEach((result) => {
32
+ if (result.activities) {
33
+ resultMap.set(result.id, result.activities);
34
+ }
35
+ });
36
+ return listMemberOpenActivitiesSuccessAction({ payload: { ...payload, results: resultMap } });
37
+ }), catchError((error) => of(listMemberOpenActivitiesFailureAction({
38
+ payload: {
39
+ ...payload,
40
+ error
41
+ }
42
+ })))))));
43
+ listMemberAllOpenActivityLocations$ = createEffect(() => this.actions$
44
+ .pipe(ofType(listAllMemberOpenActivityLocationsAction), exhaustMap(({ payload }) => this.activityService.getMemberOpenActivityLocations(payload, null, null, true)
45
+ .pipe(map((activityLocations) => listAllMemberOpenActivityLocationsSuccessAction({ payload: activityLocations.toArray() })), catchError((error) => of(listAllMemberOpenActivityLocationsFailureAction({ payload: error })))))));
46
+ listMemberAllOpenActivityTypes$ = createEffect(() => this.actions$
47
+ .pipe(ofType(listAllMemberOpenActivityTypesAction), exhaustMap(({ payload }) => this.activityService.getMemberOpenActivityActivityTypes(payload, null, null, true)
48
+ .pipe(map((activityTypes) => listAllMemberOpenActivityTypesSuccessAction({ payload: activityTypes.toArray() })), catchError((error) => of(listAllMemberOpenActivityTypesFailureAction({ payload: error })))))));
49
+ listMemberOpenActivityLocations$ = createEffect(() => this.actions$
50
+ .pipe(ofType(listMemberOpenActivityLocationsAction), exhaustMap(({ payload }) => this.activityService.getMemberOpenActivityLocations(payload.memberId, payload.startDate, payload.endDate, false)
51
+ .pipe(map((activityLocations) => listMemberOpenActivityLocationsSuccessAction({ payload: { memberId: payload.memberId, startDate: payload.startDate, endDate: payload.endDate, locations: activityLocations.toArray() } })), catchError((error) => of(listMemberOpenActivityLocationsFailureAction({ payload: { memberId: payload.memberId, startDate: payload.startDate, endDate: payload.endDate, error } })))))));
52
+ listMemberOpenActivityTypes$ = createEffect(() => this.actions$
53
+ .pipe(ofType(listMemberOpenActivityTypesAction), exhaustMap(({ payload }) => this.activityService.getMemberOpenActivityActivityTypes(payload.memberId, payload.startDate, payload.endDate, false)
54
+ .pipe(map((activityTypes) => listMemberOpenActivityTypesSuccessAction({ payload: { memberId: payload.memberId, startDate: payload.startDate, endDate: payload.endDate, types: activityTypes.toArray() } })), catchError((error) => of(listMemberOpenActivityTypesFailureAction({ payload: { memberId: payload.memberId, startDate: payload.startDate, endDate: payload.endDate, error } })))))));
55
+ listPublicAllOpenActivityLocations$ = createEffect(() => this.actions$
56
+ .pipe(ofType(listAllPublicOpenActivityLocationsAction), exhaustMap(() => this.activityService.getPublicOpenActivityLocations(null, null, true)
57
+ .pipe(map((activityLocations) => listAllPublicOpenActivityLocationsSuccessAction({ payload: activityLocations.toArray() })), catchError((error) => of(listAllPublicOpenActivityLocationsFailureAction({ payload: error })))))));
58
+ listPublicAllOpenActivityTypes$ = createEffect(() => this.actions$
59
+ .pipe(ofType(listAllPublicOpenActivityTypesAction), exhaustMap(() => this.activityService.getPublicOpenActivityActivityTypes(null, null, true)
60
+ .pipe(map((activityTypes) => listAllPublicOpenActivityTypesSuccessAction({ payload: activityTypes.toArray() })), catchError((error) => of(listAllPublicOpenActivityTypesFailureAction({ payload: error })))))));
61
+ listPublicOpenActivities$ = createEffect(() => this.actions$
62
+ .pipe(ofType(listPublicOpenActivitiesAction), exhaustMap(({ payload }) => this.activityService.getPublicOpenActivities(payload)
63
+ .pipe(map((result) => listPublicOpenActivitiesSuccessAction({ payload: { openActivitySearchParams: payload, results: result.toArray() } })), catchError((error) => of(listPublicOpenActivitiesFailureAction({ payload: error })))))));
64
+ listPublicOpenActivityLocations$ = createEffect(() => this.actions$
65
+ .pipe(ofType(listPublicOpenActivityLocationsAction), exhaustMap(({ payload }) => this.activityService.getPublicOpenActivityLocations(payload.startDate, payload.endDate, false)
66
+ .pipe(map((result) => listPublicOpenActivityLocationsSuccessAction({ payload: { startDate: payload.startDate, endDate: payload.endDate, locations: result.toArray() } })), catchError((error) => of(listPublicOpenActivityLocationsFailureAction({ payload: error })))))));
67
+ listPublicOpenActivityTypes$ = createEffect(() => this.actions$
68
+ .pipe(ofType(listPublicOpenActivityTypesAction), exhaustMap(({ payload }) => this.activityService.getPublicOpenActivityActivityTypes(payload.startDate, payload.endDate, false)
69
+ .pipe(map((result) => listPublicOpenActivityTypesSuccessAction({ payload: { startDate: payload.startDate, endDate: payload.endDate, types: result.toArray() } })), catchError((error) => of(listPublicOpenActivityTypesFailureAction({ payload: error })))))));
70
+ listTeamActivities = createEffect(() => this.actions$
71
+ .pipe(ofType(listTeamActivitiesAction), exhaustMap(({ payload }) => this.activityService.getTeamCalendarEvents(payload.teamId, payload.startDate, payload.endDate)
72
+ .pipe(map((results) => listTeamActivitiesSuccessAction({
73
+ payload: {
74
+ ...payload,
75
+ results: results.toArray()
76
+ }
77
+ })), catchError((error) => of(listTeamActivitiesFailureAction({ payload: { ...payload, error } })))))));
78
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: CalendarEffects, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
79
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: CalendarEffects });
80
+ }
81
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: CalendarEffects, decorators: [{
82
+ type: Injectable
83
+ }] });
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuZWZmZWN0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGEtYWNjZXNzL3NyYy9saWIvc3RvcmUvZWZmZWN0cy9jYWxlbmRhci5lZmZlY3RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQ0wsd0NBQXdDLEVBQ3hDLCtDQUErQyxFQUMvQywrQ0FBK0MsRUFDL0Msb0NBQW9DLEVBQ3BDLDJDQUEyQyxFQUMzQywyQ0FBMkMsRUFDM0Msd0NBQXdDLEVBQ3hDLCtDQUErQyxFQUMvQywrQ0FBK0MsRUFDL0Msb0NBQW9DLEVBQUUsMkNBQTJDLEVBQ2pGLDJDQUEyQyxFQUMzQywwQkFBMEIsRUFDMUIsaUNBQWlDLEVBQ2pDLGlDQUFpQyxFQUNqQyw4QkFBOEIsRUFDOUIscUNBQXFDLEVBQ3JDLHFDQUFxQyxFQUNyQyxxQ0FBcUMsRUFDckMsNENBQTRDLEVBQzVDLDRDQUE0QyxFQUM1QyxpQ0FBaUMsRUFDakMsd0NBQXdDLEVBQ3hDLHdDQUF3QyxFQUN4Qyw4QkFBOEIsRUFDOUIscUNBQXFDLEVBQ3JDLHFDQUFxQyxFQUNyQyxxQ0FBcUMsRUFDckMsNENBQTRDLEVBQzVDLDRDQUE0QyxFQUM1QyxpQ0FBaUMsRUFDakMsd0NBQXdDLEVBQ3hDLHdDQUF3QyxFQUN4Qyx3QkFBd0IsRUFDeEIsK0JBQStCLEVBQy9CLCtCQUErQixFQUNoQyxNQUFNLFlBQVksQ0FBQztBQUNwQixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHakQsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztB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QyxNQUFNLEVBQUUsT0FBTyxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDO1NBQ2pHLElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxPQUEwQixFQUFFLEVBQUUsQ0FBQywrQkFBK0IsQ0FBQztRQUNsRSxPQUFPLEVBQUU7WUFDUCxHQUFHLE9BQU87WUFDVixPQUFPLEVBQUUsT0FBTyxDQUFDLE9BQU8sRUFBRTtTQUMzQjtLQUNGLENBQUMsQ0FBQyxFQUNILFVBQVUsQ0FBQyxDQUFDLEtBQXdCLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQywrQkFBK0IsQ0FBQyxFQUFDLE9BQU8sRUFBRSxFQUFDLEdBQUcsT0FBTyxFQUFFLEtBQUssRUFBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQzlHLENBQ0osQ0FDRixDQUNGLENBQUM7dUdBbk1TLGVBQWU7MkdBQWYsZUFBZTs7MkZBQWYsZUFBZTtrQkFEM0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aW9ucywgY3JlYXRlRWZmZWN0LCBvZlR5cGUgfSBmcm9tICdAbmdyeC9lZmZlY3RzJztcbmltcG9ydCB7XG4gIGxpc3RBbGxNZW1iZXJPcGVuQWN0aXZpdHlMb2NhdGlvbnNBY3Rpb24sXG4gIGxpc3RBbGxNZW1iZXJPcGVuQWN0aXZpdHlMb2NhdGlvbnNGYWlsdXJlQWN0aW9uLFxuICBsaXN0QWxsTWVtYmVyT3BlbkFjdGl2aXR5TG9jYXRpb25zU3VjY2Vzc0FjdGlvbixcbiAgbGlzdEFsbE1lbWJlck9wZW5BY3Rpdml0eVR5cGVzQWN0aW9uLFxuICBsaXN0QWxsTWVtYmVyT3BlbkFjdGl2aXR5VHlwZXNGYWlsdXJlQWN0aW9uLFxuICBsaXN0QWxsTWVtYmVyT3BlbkFjdGl2aXR5VHlwZXNTdWNjZXNzQWN0aW9uLFxuICBsaXN0QWxsUHVibGljT3BlbkFjdGl2aXR5TG9jYXRpb25zQWN0aW9uLFxuICBsaXN0QWxsUHVibGljT3BlbkFjdGl2aXR5TG9jYXRpb25zRmFpbHVyZUFjdGlvbixcbiAgbGlzdEFsbFB1YmxpY09wZW5BY3Rpdml0eUxvY2F0aW9uc1N1Y2Nlc3NBY3Rpb24sXG4gIGxpc3RBbGxQdWJsaWNPcGVuQWN0aXZpdHlUeXBlc0FjdGlvbiwgbGlzdEFsbFB1YmxpY09wZW5BY3Rpdml0eVR5cGVzRmFpbHVyZUFjdGlvbixcbiAgbGlzdEFsbFB1YmxpY09wZW5BY3Rpdml0eVR5cGVzU3VjY2Vzc0FjdGlvbixcbiAgbGlzdE1lbWJlckFjdGl2aXRpZXNBY3Rpb24sXG4gIGxpc3RNZW1iZXJBY3Rpdml0aWVzRmFpbHVyZUFjdGlvbixcbiAgbGlzdE1lbWJlckFjdGl2aXRpZXNTdWNjZXNzQWN0aW9uLFxuICBsaXN0TWVtYmVyT3BlbkFjdGl2aXRpZXNBY3Rpb24sXG4gIGxpc3RNZW1iZXJPcGVuQWN0aXZpdGllc0ZhaWx1cmVBY3Rpb24sXG4gIGxpc3RNZW1iZXJPcGVuQWN0aXZpdGllc1N1Y2Nlc3NBY3Rpb24sXG4gIGxpc3RNZW1iZXJPcGVuQWN0aXZpdHlMb2NhdGlvbnNBY3Rpb24sXG4gIGxpc3RNZW1iZXJPcGVuQWN0aXZpdHlMb2NhdGlvbnNGYWlsdXJlQWN0aW9uLFxuICBsaXN0TWVtYmVyT3BlbkFjdGl2aXR5TG9jYXRpb25zU3VjY2Vzc0FjdGlvbixcbiAgbGlzdE1lbWJlck9wZW5BY3Rpdml0eVR5cGVzQWN0aW9uLFxuICBsaXN0TWVtYmVyT3BlbkFjdGl2aXR5VHlwZXNGYWlsdXJlQWN0aW9uLFxuICBsaXN0TWVtYmVyT3BlbkFjdGl2aXR5VHlwZXNTdWNjZXNzQWN0aW9uLFxuICBsaXN0UHVibGljT3BlbkFjdGl2aXRpZXNBY3Rpb24sXG4gIGxpc3RQdWJsaWNPcGVuQWN0aXZpdGllc0ZhaWx1cmVBY3Rpb24sXG4gIGxpc3RQdWJsaWNPcGVuQWN0aXZpdGllc1N1Y2Nlc3NBY3Rpb24sXG4gIGxpc3RQdWJsaWNPcGVuQWN0aXZpdHlMb2NhdGlvbnNBY3Rpb24sXG4gIGxpc3RQdWJsaWNPcGVuQWN0aXZpdHlMb2NhdGlvbnNGYWlsdXJlQWN0aW9uLFxuICBsaXN0UHVibGljT3BlbkFjdGl2aXR5TG9jYXRpb25zU3VjY2Vzc0FjdGlvbixcbiAgbGlzdFB1YmxpY09wZW5BY3Rpdml0eVR5cGVzQWN0aW9uLFxuICBsaXN0UHVibGljT3BlbkFjdGl2aXR5VHlwZXNGYWlsdXJlQWN0aW9uLFxuICBsaXN0UHVibGljT3BlbkFjdGl2aXR5VHlwZXNTdWNjZXNzQWN0aW9uLFxuICBsaXN0VGVhbUFjdGl2aXRpZXNBY3Rpb24sXG4gIGxpc3RUZWFtQWN0aXZpdGllc0ZhaWx1cmVBY3Rpb24sXG4gIGxpc3RUZWFtQWN0aXZpdGllc1N1Y2Nlc3NBY3Rpb25cbn0gZnJvbSAnLi4vYWN0aW9ucyc7XG5pbXBvcnQgeyBBY3Rpdml0eVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBBY3Rpdml0eUxvY2F0aW9uLCBBY3Rpdml0eVR5cGUsIENvbGxlY3Rpb24sIEV2ZW50LCBPcGVuQWN0aXZpdHkgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgT3BlbkFjdGl2aXR5U2VhcmNoUGFyYW1zSW50ZXJmYWNlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBleGhhdXN0TWFwLCBmb3JrSm9pbiwgbWVyZ2VNYXAsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBIdHRwRXJyb3JSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIENhbGVuZGFyRWZmZWN0cyB7XG4gIHByaXZhdGUgYWN0aW9ucyQgPSBpbmplY3QoQWN0aW9ucyk7XG4gIHByaXZhdGUgYWN0aXZpdHlTZXJ2aWNlID0gaW5qZWN0KEFjdGl2aXR5U2VydmljZSk7XG5cbiAgbGlzdE1lbWJlckFjdGl2aXRpZXMkID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyRcbiAgICAucGlwZShcbiAgICAgIG9mVHlwZShsaXN0TWVtYmVyQWN0aXZpdGllc0FjdGlvbiksXG4gICAgICBtZXJnZU1hcCgoe3BheWxvYWR9OiB7IHBheWxvYWQ6IHsgbWVtYmVySWRzOiBBcnJheTxzdHJpbmc+LCBzdGFydERhdGU6IHN0cmluZywgZW5kRGF0ZTogc3RyaW5nIH0gfSkgPT5cbiAgICAgICAgZm9ya0pvaW4ocGF5bG9hZC5tZW1iZXJJZHMubWFwKChpZDogc3RyaW5nKSA9PlxuICAgICAgICAgIHRoaXMuYWN0aXZpdHlTZXJ2aWNlLmdldE1lbWJlckNhbGVuZGFyRXZlbnRzKGlkLCBwYXlsb2FkLnN0YXJ0RGF0ZSwgcGF5bG9hZC5lbmREYXRlKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgIG1hcCgoZXZlbnRzOiBDb2xsZWN0aW9uPEV2ZW50PikgPT4gKHtpZCwgZXZlbnRzOiBldmVudHMudG9BcnJheSgpfSkpLFxuICAgICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IG9mKHtpZCwgZXJyb3J9KSksXG4gICAgICAgICAgICApXG4gICAgICAgICkpLnBpcGUoXG4gICAgICAgICAgbWFwKHJlc3VsdHMgPT4ge1xuICAgICAgICAgICAgICBjb25zdCByZXN1bHRNYXAgPSBuZXcgTWFwPHN0cmluZywgQXJyYXk8RXZlbnQ+PigpO1xuICAgICAgICAgICAgICByZXN1bHRzLmZvckVhY2goKHJlc3VsdDogeyBpZDogc3RyaW5nLCBldmVudHM/OiBBcnJheTxFdmVudD4sIGVycm9yPzogSHR0cEVycm9yUmVzcG9uc2UgfSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChyZXN1bHQuZXZlbnRzKSB7XG4gICAgICAgICAgICAgICAgICByZXN1bHRNYXAuc2V0KHJlc3VsdC5pZCwgcmVzdWx0LmV2ZW50cyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgcmV0dXJuIGxpc3RNZW1iZXJBY3Rpdml0aWVzU3VjY2Vzc0FjdGlvbih7cGF5bG9hZDogey4uLnBheWxvYWQsIHJlc3VsdHM6IHJlc3VsdE1hcH19KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICApLFxuICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gb2YobGlzdE1lbWJlckFjdGl2aXRpZXNGYWlsdXJlQWN0aW9uKHtcbiAgICAgICAgICAgIHBheWxvYWQ6IHtcbiAgICAgICAgICAgICAgLi4ucGF5bG9hZCxcbiAgICAgICAgICAgICAgZXJyb3JcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KSkpXG4gICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgbGlzdE1lbWJlck9wZW5BY3Rpdml0aWVzJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkXG4gICAgLnBpcGUoXG4gICAgICBvZlR5cGUobGlzdE1lbWJlck9wZW5BY3Rpdml0aWVzQWN0aW9uKSxcbiAgICAgIG1lcmdlTWFwKCh7cGF5bG9hZH06IHtcbiAgICAgICAgICBwYXlsb2FkOiB7IG1lbWJlcklkczogQXJyYXk8c3RyaW5nPiwgb3BlbkFjdGl2aXR5U2VhcmNoUGFyYW1zOiBPcGVuQWN0aXZpdHlTZWFyY2hQYXJhbXNJbnRlcmZhY2UgfVxuICAgICAgICB9KSA9PlxuICAgICAgICAgIGZvcmtKb2luKHBheWxvYWQubWVtYmVySWRzLm1hcCgoaWQ6IHN0cmluZykgPT5cbiAgICAgICAgICAgIHRoaXMuYWN0aXZpdHlTZXJ2aWNlLmdldE1lbWJlck9wZW5BY3Rpdml0aWVzKGlkLCBwYXlsb2FkLm9wZW5BY3Rpdml0eVNlYXJjaFBhcmFtcylcbiAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKChhY3Rpdml0aWVzOiBDb2xsZWN0aW9uPE9wZW5BY3Rpdml0eT4pID0+ICh7aWQsIGFjdGl2aXRpZXM6IGFjdGl2aXRpZXMudG9BcnJheSgpfSkpLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gb2Yoe2lkLCBlcnJvcn0pKSxcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICkpLnBpcGUoXG4gICAgICAgICAgICBtYXAocmVzdWx0cyA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0TWFwID0gbmV3IE1hcDxzdHJpbmcsIEFycmF5PE9wZW5BY3Rpdml0eT4+KCk7XG4gICAgICAgICAgICAgICAgcmVzdWx0cy5mb3JFYWNoKChyZXN1bHQ6IHsgaWQ6IHN0cmluZywgYWN0aXZpdGllcz86IEFycmF5PE9wZW5BY3Rpdml0eT4sIGVycm9yPzogSHR0cEVycm9yUmVzcG9uc2UgfSkgPT4ge1xuICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdC5hY3Rpdml0aWVzKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdE1hcC5zZXQocmVzdWx0LmlkLCByZXN1bHQuYWN0aXZpdGllcyk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGxpc3RNZW1iZXJPcGVuQWN0aXZpdGllc1N1Y2Nlc3NBY3Rpb24oe3BheWxvYWQ6IHsuLi5wYXlsb2FkLCByZXN1bHRzOiByZXN1bHRNYXB9fSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IG9mKGxpc3RNZW1iZXJPcGVuQWN0aXZpdGllc0ZhaWx1cmVBY3Rpb24oe1xuICAgICAgICAgICAgICBwYXlsb2FkOiB7XG4gICAgICAgICAgICAgICAgLi4ucGF5bG9hZCxcbiAgICAgICAgICAgICAgICBlcnJvclxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSkpXG4gICAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICBsaXN0TWVtYmVyQWxsT3BlbkFjdGl2aXR5TG9jYXRpb25zJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkXG4gICAgLnBpcGUoXG4gICAgICBvZlR5cGUobGlzdEFsbE1lbWJlck9wZW5BY3Rpdml0eUxvY2F0aW9uc0FjdGlvbiksXG4gICAgICBleGhhdXN0TWFwKCh7cGF5bG9hZH06IHtwYXlsb2FkOiBzdHJpbmd9KSA9PiB0aGlzLmFjdGl2aXR5U2VydmljZS5nZXRNZW1iZXJPcGVuQWN0aXZpdHlMb2NhdGlvbnMocGF5bG9hZCwgbnVsbCwgbnVsbCwgdHJ1ZSlcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgbWFwKChhY3Rpdml0eUxvY2F0aW9uczogQ29sbGVjdGlvbjxBY3Rpdml0eUxvY2F0aW9uPikgPT4gbGlzdEFsbE1lbWJlck9wZW5BY3Rpdml0eUxvY2F0aW9uc1N1Y2Nlc3NBY3Rpb24oe3BheWxvYWQ6IGFjdGl2aXR5TG9jYXRpb25zLnRvQXJyYXkoKX0pKSxcbiAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IG9mKGxpc3RBbGxNZW1iZXJPcGVuQWN0aXZpdHlMb2NhdGlvbnNGYWlsdXJlQWN0aW9uKHtwYXlsb2FkOiBlcnJvcn0pKSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICBsaXN0TWVtYmVyQWxsT3BlbkFjdGl2aXR5VHlwZXMkID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyRcbiAgICAucGlwZShcbiAgICAgIG9mVHlwZShsaXN0QWxsTWVtYmVyT3BlbkFjdGl2aXR5VHlwZXNBY3Rpb24pLFxuICAgICAgZXhoYXVzdE1hcCgoe3BheWxvYWR9OiB7cGF5bG9hZDogc3RyaW5nfSkgPT4gdGhpcy5hY3Rpdml0eVNlcnZpY2UuZ2V0TWVtYmVyT3BlbkFjdGl2aXR5QWN0aXZpdHlUeXBlcyhwYXlsb2FkLCBudWxsLCBudWxsLCB0cnVlKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBtYXAoKGFjdGl2aXR5VHlwZXM6IENvbGxlY3Rpb248QWN0aXZpdHlUeXBlPikgPT4gbGlzdEFsbE1lbWJlck9wZW5BY3Rpdml0eVR5cGVzU3VjY2Vzc0FjdGlvbih7cGF5bG9hZDogYWN0aXZpdHlUeXBlcy50b0FycmF5KCl9KSksXG4gICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiBvZihsaXN0QWxsTWVtYmVyT3BlbkFjdGl2aXR5VHlwZXNGYWlsdXJlQWN0aW9uKHtwYXlsb2FkOiBlcnJvcn0pKSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICBsaXN0TWVtYmVyT3BlbkFjdGl2aXR5TG9jYXRpb25zJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkXG4gICAgLnBpcGUoXG4gICAgICBvZlR5cGUobGlzdE1lbWJlck9wZW5BY3Rpdml0eUxvY2F0aW9uc0FjdGlvbiksXG4gICAgICBleGhhdXN0TWFwKCh7cGF5bG9hZH06IHtwYXlsb2FkOiB7bWVtYmVySWQ6IHN0cmluZywgc3RhcnREYXRlOiBzdHJpbmcsIGVuZERhdGU6IHN0cmluZ319KSA9PiB0aGlzLmFjdGl2aXR5U2VydmljZS5nZXRNZW1iZXJPcGVuQWN0aXZpdHlMb2NhdGlvbnMocGF5bG9hZC5tZW1iZXJJZCwgcGF5bG9hZC5zdGFydERhdGUsIHBheWxvYWQuZW5kRGF0ZSwgZmFsc2UpXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIG1hcCgoYWN0aXZpdHlMb2NhdGlvbnM6IENvbGxlY3Rpb248QWN0aXZpdHlMb2NhdGlvbj4pID0+IGxpc3RNZW1iZXJPcGVuQWN0aXZpdHlMb2NhdGlvbnNTdWNjZXNzQWN0aW9uKHtwYXlsb2FkOiB7bWVtYmVySWQ6IHBheWxvYWQubWVtYmVySWQsIHN0YXJ0RGF0ZTogcGF5bG9hZC5zdGFydERhdGUsIGVuZERhdGU6IHBheWxvYWQuZW5kRGF0ZSwgbG9jYXRpb25zOiBhY3Rpdml0eUxvY2F0aW9ucy50b0FycmF5KCl9fSkpLFxuICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gb2YobGlzdE1lbWJlck9wZW5BY3Rpdml0eUxvY2F0aW9uc0ZhaWx1cmVBY3Rpb24oe3BheWxvYWQ6IHttZW1iZXJJZDogcGF5bG9hZC5tZW1iZXJJZCwgc3RhcnREYXRlOiBwYXlsb2FkLnN0YXJ0RGF0ZSwgZW5kRGF0ZTogcGF5bG9hZC5lbmREYXRlLCBlcnJvcn19KSkpXG4gICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgbGlzdE1lbWJlck9wZW5BY3Rpdml0eVR5cGVzJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkXG4gICAgLnBpcGUoXG4gICAgICBvZlR5cGUobGlzdE1lbWJlck9wZW5BY3Rpdml0eVR5cGVzQWN0aW9uKSxcbiAgICAgIGV4aGF1c3RNYXAoKHtwYXlsb2FkfToge3BheWxvYWQ6IHttZW1iZXJJZDogc3RyaW5nLCBzdGFydERhdGU6IHN0cmluZywgZW5kRGF0ZTogc3RyaW5nfX0pID0+IHRoaXMuYWN0aXZpdHlTZXJ2aWNlLmdldE1lbWJlck9wZW5BY3Rpdml0eUFjdGl2aXR5VHlwZXMocGF5bG9hZC5tZW1iZXJJZCwgcGF5bG9hZC5zdGFydERhdGUsIHBheWxvYWQuZW5kRGF0ZSwgZmFsc2UpXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIG1hcCgoYWN0aXZpdHlUeXBlczogQ29sbGVjdGlvbjxBY3Rpdml0eVR5cGU+KSA9PiBsaXN0TWVtYmVyT3BlbkFjdGl2aXR5VHlwZXNTdWNjZXNzQWN0aW9uKHtwYXlsb2FkOiB7bWVtYmVySWQ6IHBheWxvYWQubWVtYmVySWQsIHN0YXJ0RGF0ZTogcGF5bG9hZC5zdGFydERhdGUsIGVuZERhdGU6IHBheWxvYWQuZW5kRGF0ZSwgdHlwZXM6IGFjdGl2aXR5VHlwZXMudG9BcnJheSgpfX0pKSxcbiAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IG9mKGxpc3RNZW1iZXJPcGVuQWN0aXZpdHlUeXBlc0ZhaWx1cmVBY3Rpb24oe3BheWxvYWQ6IHttZW1iZXJJZDogcGF5bG9hZC5tZW1iZXJJZCwgc3RhcnREYXRlOiBwYXlsb2FkLnN0YXJ0RGF0ZSwgZW5kRGF0ZTogcGF5bG9hZC5lbmREYXRlLCBlcnJvcn19KSkpXG4gICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgbGlzdFB1YmxpY0FsbE9wZW5BY3Rpdml0eUxvY2F0aW9ucyQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5hY3Rpb25zJFxuICAgIC5waXBlKFxuICAgICAgb2ZUeXBlKGxpc3RBbGxQdWJsaWNPcGVuQWN0aXZpdHlMb2NhdGlvbnNBY3Rpb24pLFxuICAgICAgZXhoYXVzdE1hcCgoKSA9PiB0aGlzLmFjdGl2aXR5U2VydmljZS5nZXRQdWJsaWNPcGVuQWN0aXZpdHlMb2NhdGlvbnMobnVsbCwgbnVsbCwgdHJ1ZSlcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgbWFwKChhY3Rpdml0eUxvY2F0aW9uczogQ29sbGVjdGlvbjxBY3Rpdml0eUxvY2F0aW9uPikgPT4gbGlzdEFsbFB1YmxpY09wZW5BY3Rpdml0eUxvY2F0aW9uc1N1Y2Nlc3NBY3Rpb24oe3BheWxvYWQ6IGFjdGl2aXR5TG9jYXRpb25zLnRvQXJyYXkoKX0pKSxcbiAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IG9mKGxpc3RBbGxQdWJsaWNPcGVuQWN0aXZpdHlMb2NhdGlvbnNGYWlsdXJlQWN0aW9uKHtwYXlsb2FkOiBlcnJvcn0pKSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICBsaXN0UHVibGljQWxsT3BlbkFjdGl2aXR5VHlwZXMkID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyRcbiAgICAucGlwZShcbiAgICAgIG9mVHlwZShsaXN0QWxsUHVibGljT3BlbkFjdGl2aXR5VHlwZXNBY3Rpb24pLFxuICAgICAgZXhoYXVzdE1hcCgoKSA9PiB0aGlzLmFjdGl2aXR5U2VydmljZS5nZXRQdWJsaWNPcGVuQWN0aXZpdHlBY3Rpdml0eVR5cGVzKG51bGwsIG51bGwsIHRydWUpXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIG1hcCgoYWN0aXZpdHlUeXBlczogQ29sbGVjdGlvbjxBY3Rpdml0eVR5cGU+KSA9PiBsaXN0QWxsUHVibGljT3BlbkFjdGl2aXR5VHlwZXNTdWNjZXNzQWN0aW9uKHtwYXlsb2FkOiBhY3Rpdml0eVR5cGVzLnRvQXJyYXkoKX0pKSxcbiAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IG9mKGxpc3RBbGxQdWJsaWNPcGVuQWN0aXZpdHlUeXBlc0ZhaWx1cmVBY3Rpb24oe3BheWxvYWQ6IGVycm9yfSkpKVxuICAgICAgICApXG4gICAgICApXG4gICAgKVxuICApO1xuXG4gIGxpc3RQdWJsaWNPcGVuQWN0aXZpdGllcyQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5hY3Rpb25zJFxuICAgIC5waXBlKFxuICAgICAgb2ZUeXBlKGxpc3RQdWJsaWNPcGVuQWN0aXZpdGllc0FjdGlvbiksXG4gICAgICBleGhhdXN0TWFwKCh7cGF5bG9hZH06IHtwYXlsb2FkOiBPcGVuQWN0aXZpdHlTZWFyY2hQYXJhbXNJbnRlcmZhY2V9KSA9PiB0aGlzLmFjdGl2aXR5U2VydmljZS5nZXRQdWJsaWNPcGVuQWN0aXZpdGllcyhwYXlsb2FkKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBtYXAoKHJlc3VsdDogQ29sbGVjdGlvbjxPcGVuQWN0aXZpdHk+KSA9PiBsaXN0UHVibGljT3BlbkFjdGl2aXRpZXNTdWNjZXNzQWN0aW9uKHtwYXlsb2FkOiB7b3BlbkFjdGl2aXR5U2VhcmNoUGFyYW1zOiBwYXlsb2FkLCByZXN1bHRzOiByZXN1bHQudG9BcnJheSgpfX0pKSxcbiAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IG9mKGxpc3RQdWJsaWNPcGVuQWN0aXZpdGllc0ZhaWx1cmVBY3Rpb24oe3BheWxvYWQ6IGVycm9yfSkpKVxuICAgICAgICApXG4gICAgICApXG4gICAgKVxuICApO1xuXG4gIGxpc3RQdWJsaWNPcGVuQWN0aXZpdHlMb2NhdGlvbnMkID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyRcbiAgICAucGlwZShcbiAgICAgIG9mVHlwZShsaXN0UHVibGljT3BlbkFjdGl2aXR5TG9jYXRpb25zQWN0aW9uKSxcbiAgICAgIGV4aGF1c3RNYXAoKHtwYXlsb2FkfToge3BheWxvYWQ6IHtzdGFydERhdGU6IHN0cmluZywgZW5kRGF0ZTogc3RyaW5nfX0pID0+IHRoaXMuYWN0aXZpdHlTZXJ2aWNlLmdldFB1YmxpY09wZW5BY3Rpdml0eUxvY2F0aW9ucyhwYXlsb2FkLnN0YXJ0RGF0ZSwgcGF5bG9hZC5lbmREYXRlLCBmYWxzZSlcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgbWFwKChyZXN1bHQ6IENvbGxlY3Rpb248QWN0aXZpdHlMb2NhdGlvbj4pID0+IGxpc3RQdWJsaWNPcGVuQWN0aXZpdHlMb2NhdGlvbnNTdWNjZXNzQWN0aW9uKHtwYXlsb2FkOiB7c3RhcnREYXRlOiBwYXlsb2FkLnN0YXJ0RGF0ZSwgZW5kRGF0ZTogcGF5bG9hZC5lbmREYXRlLCBsb2NhdGlvbnM6IHJlc3VsdC50b0FycmF5KCl9fSkpLFxuICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gb2YobGlzdFB1YmxpY09wZW5BY3Rpdml0eUxvY2F0aW9uc0ZhaWx1cmVBY3Rpb24oe3BheWxvYWQ6IGVycm9yfSkpKVxuICAgICAgICApXG4gICAgICApXG4gICAgKVxuICApO1xuXG4gIGxpc3RQdWJsaWNPcGVuQWN0aXZpdHlUeXBlcyQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5hY3Rpb25zJFxuICAgIC5waXBlKFxuICAgICAgb2ZUeXBlKGxpc3RQdWJsaWNPcGVuQWN0aXZpdHlUeXBlc0FjdGlvbiksXG4gICAgICBleGhhdXN0TWFwKCh7cGF5bG9hZH06IHtwYXlsb2FkOiB7c3RhcnREYXRlOiBzdHJpbmcsIGVuZERhdGU6IHN0cmluZ319KSA9PiB0aGlzLmFjdGl2aXR5U2VydmljZS5nZXRQdWJsaWNPcGVuQWN0aXZpdHlBY3Rpdml0eVR5cGVzKHBheWxvYWQuc3RhcnREYXRlLCBwYXlsb2FkLmVuZERhdGUsIGZhbHNlKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBtYXAoKHJlc3VsdDogQ29sbGVjdGlvbjxBY3Rpdml0eVR5cGU+KSA9PiBsaXN0UHVibGljT3BlbkFjdGl2aXR5VHlwZXNTdWNjZXNzQWN0aW9uKHtwYXlsb2FkOiB7c3RhcnREYXRlOiBwYXlsb2FkLnN0YXJ0RGF0ZSwgZW5kRGF0ZTogcGF5bG9hZC5lbmREYXRlLCB0eXBlczogcmVzdWx0LnRvQXJyYXkoKX19KSksXG4gICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiBvZihsaXN0UHVibGljT3BlbkFjdGl2aXR5VHlwZXNGYWlsdXJlQWN0aW9uKHtwYXlsb2FkOiBlcnJvcn0pKSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICBsaXN0VGVhbUFjdGl2aXRpZXMgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5hY3Rpb25zJFxuICAgIC5waXBlKFxuICAgICAgb2ZUeXBlKGxpc3RUZWFtQWN0aXZpdGllc0FjdGlvbiksXG4gICAgICBleGhhdXN0TWFwKCh7cGF5bG9hZH06IHtcbiAgICAgICAgICBwYXlsb2FkOiB7IHRlYW1JZDogc3RyaW5nLCBzdGFydERhdGU6IHN0cmluZywgZW5kRGF0ZTogc3RyaW5nIH1cbiAgICAgICAgfSkgPT4gdGhpcy5hY3Rpdml0eVNlcnZpY2UuZ2V0VGVhbUNhbGVuZGFyRXZlbnRzKHBheWxvYWQudGVhbUlkLCBwYXlsb2FkLnN0YXJ0RGF0ZSwgcGF5bG9hZC5lbmREYXRlKVxuICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgbWFwKChyZXN1bHRzOiBDb2xsZWN0aW9uPEV2ZW50PikgPT4gbGlzdFRlYW1BY3Rpdml0aWVzU3VjY2Vzc0FjdGlvbih7XG4gICAgICAgICAgICAgIHBheWxvYWQ6IHtcbiAgICAgICAgICAgICAgICAuLi5wYXlsb2FkLFxuICAgICAgICAgICAgICAgIHJlc3VsdHM6IHJlc3VsdHMudG9BcnJheSgpXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pKSxcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gb2YobGlzdFRlYW1BY3Rpdml0aWVzRmFpbHVyZUFjdGlvbih7cGF5bG9hZDogey4uLnBheWxvYWQsIGVycm9yfX0pKSlcbiAgICAgICAgICApXG4gICAgICApXG4gICAgKVxuICApO1xufVxuIl19
@@ -0,0 +1,26 @@
1
+ import { inject, Injectable } from '@angular/core';
2
+ import { Actions, createEffect, ofType } from '@ngrx/effects';
3
+ import { ClubService } from '../../services';
4
+ import { getCurrentMemberClubInfoAction, getCurrentMemberClubInfoFailureAction, getCurrentMemberClubInfoSuccessAction, getCurrentPublicClubInfoAction, getCurrentPublicClubInfoFailureAction, getCurrentPublicClubInfoSuccessAction, getCurrentTeamClubInfoAction, getCurrentTeamClubInfoFailureAction, getCurrentTeamClubInfoSuccessAction } from '../actions';
5
+ import { exhaustMap, of } from 'rxjs';
6
+ import { catchError, map } from 'rxjs/operators';
7
+ import * as i0 from "@angular/core";
8
+ export class ClubInfoEffects {
9
+ actions$ = inject(Actions);
10
+ clubService = inject(ClubService);
11
+ getMemberCurrent$ = createEffect(() => this.actions$
12
+ .pipe(ofType(getCurrentMemberClubInfoAction), exhaustMap(({ payload }) => this.clubService.getMemberClubInfo(payload)
13
+ .pipe(map((clubInfo) => getCurrentMemberClubInfoSuccessAction({ payload: clubInfo })), catchError((error) => of(getCurrentMemberClubInfoFailureAction({ payload: error })))))));
14
+ getPublicCurrent$ = createEffect(() => this.actions$
15
+ .pipe(ofType(getCurrentPublicClubInfoAction), exhaustMap(() => this.clubService.getPublicClubInfo()
16
+ .pipe(map((clubInfo) => getCurrentPublicClubInfoSuccessAction({ payload: clubInfo })), catchError((error) => of(getCurrentPublicClubInfoFailureAction({ payload: error })))))));
17
+ getTeamCurrent$ = createEffect(() => this.actions$
18
+ .pipe(ofType(getCurrentTeamClubInfoAction), exhaustMap(({ payload }) => this.clubService.getTeamClubInfo(payload)
19
+ .pipe(map((clubInfo) => getCurrentTeamClubInfoSuccessAction({ payload: clubInfo })), catchError((error) => of(getCurrentTeamClubInfoFailureAction({ payload: error })))))));
20
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ClubInfoEffects, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
21
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ClubInfoEffects });
22
+ }
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ClubInfoEffects, decorators: [{
24
+ type: Injectable
25
+ }] });
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2x1Yi1pbmZvLmVmZmVjdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhLWFjY2Vzcy9zcmMvbGliL3N0b3JlL2VmZmVjdHMvY2x1Yi1pbmZvLmVmZmVjdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU3QyxPQUFPLEVBQ0wsOEJBQThCLEVBQzlCLHFDQUFxQyxFQUNyQyxxQ0FBcUMsRUFDckMsOEJBQThCLEVBQzlCLHFDQUFxQyxFQUNyQyxxQ0FBcUMsRUFDckMsNEJBQTRCLEVBQzVCLG1DQUFtQyxFQUNuQyxtQ0FBbUMsRUFDcEMsTUFBTSxZQUFZLENBQUM7QUFDcEIsT0FBTyxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFJakQsTUFBTSxPQUFPLGVBQWU7SUFDbEIsUUFBUSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMzQixXQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBRTFDLGlCQUFpQixHQUFHLFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUTtTQUNqRCxJQUFJLENBQ0gsTUFBTSxDQUFDLDhCQUE4QixDQUFDLEVBQ3RDLFVBQVUsQ0FBQyxDQUFDLEVBQUMsT0FBTyxFQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDO1NBQ2xFLElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxRQUFvQixFQUFFLEVBQUUsQ0FBQyxxQ0FBcUMsQ0FBQyxFQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUMsQ0FBQyxDQUFDLEVBQ3pGLFVBQVUsQ0FBQyxDQUFDLEtBQXdCLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxxQ0FBcUMsQ0FBQyxFQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDdEcsQ0FDRixDQUNGLENBQ0YsQ0FBQztJQUVGLGlCQUFpQixHQUFHLFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUTtTQUNqRCxJQUFJLENBQ0gsTUFBTSxDQUFDLDhCQUE4QixDQUFDLEVBQ3RDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGlCQUFpQixFQUFFO1NBQ2xELElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxRQUFvQixFQUFFLEVBQUUsQ0FBQyxxQ0FBcUMsQ0FBQyxFQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUMsQ0FBQyxDQUFDLEVBQ3pGLFVBQVUsQ0FBQyxDQUFDLEtBQXdCLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxxQ0FBcUMsQ0FBQyxFQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDdEcsQ0FDRixDQUNGLENBQ0YsQ0FBQztJQUVGLGVBQWUsR0FBRyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVE7U0FDL0MsSUFBSSxDQUNILE1BQU0sQ0FBQyw0QkFBNEIsQ0FBQyxFQUNwQyxVQUFVLENBQUMsQ0FBQyxFQUFDLE9BQU8sRUFBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUM7U0FDaEUsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLFFBQW9CLEVBQUUsRUFBRSxDQUFDLG1DQUFtQyxDQUFDLEVBQUMsT0FBTyxFQUFFLFFBQVEsRUFBQyxDQUFDLENBQUMsRUFDdkYsVUFBVSxDQUFDLENBQUMsS0FBd0IsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLG1DQUFtQyxDQUFDLEVBQUMsT0FBTyxFQUFFLEtBQUssRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUNwRyxDQUNGLENBQ0YsQ0FDRixDQUFDO3VHQXRDUyxlQUFlOzJHQUFmLGVBQWU7OzJGQUFmLGVBQWU7a0JBRDNCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGlvbnMsIGNyZWF0ZUVmZmVjdCwgb2ZUeXBlIH0gZnJvbSAnQG5ncngvZWZmZWN0cyc7XG5pbXBvcnQgeyBDbHViU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7IFNlYXJjaENsdWIgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHtcbiAgZ2V0Q3VycmVudE1lbWJlckNsdWJJbmZvQWN0aW9uLFxuICBnZXRDdXJyZW50TWVtYmVyQ2x1YkluZm9GYWlsdXJlQWN0aW9uLFxuICBnZXRDdXJyZW50TWVtYmVyQ2x1YkluZm9TdWNjZXNzQWN0aW9uLFxuICBnZXRDdXJyZW50UHVibGljQ2x1YkluZm9BY3Rpb24sXG4gIGdldEN1cnJlbnRQdWJsaWNDbHViSW5mb0ZhaWx1cmVBY3Rpb24sXG4gIGdldEN1cnJlbnRQdWJsaWNDbHViSW5mb1N1Y2Nlc3NBY3Rpb24sXG4gIGdldEN1cnJlbnRUZWFtQ2x1YkluZm9BY3Rpb24sXG4gIGdldEN1cnJlbnRUZWFtQ2x1YkluZm9GYWlsdXJlQWN0aW9uLFxuICBnZXRDdXJyZW50VGVhbUNsdWJJbmZvU3VjY2Vzc0FjdGlvblxufSBmcm9tICcuLi9hY3Rpb25zJztcbmltcG9ydCB7IGV4aGF1c3RNYXAsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBIdHRwRXJyb3JSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIENsdWJJbmZvRWZmZWN0cyB7XG4gIHByaXZhdGUgYWN0aW9ucyQgPSBpbmplY3QoQWN0aW9ucyk7XG4gIHByaXZhdGUgY2x1YlNlcnZpY2UgPSBpbmplY3QoQ2x1YlNlcnZpY2UpO1xuXG4gIGdldE1lbWJlckN1cnJlbnQkID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyRcbiAgICAucGlwZShcbiAgICAgIG9mVHlwZShnZXRDdXJyZW50TWVtYmVyQ2x1YkluZm9BY3Rpb24pLFxuICAgICAgZXhoYXVzdE1hcCgoe3BheWxvYWR9KSA9PiB0aGlzLmNsdWJTZXJ2aWNlLmdldE1lbWJlckNsdWJJbmZvKHBheWxvYWQpXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIG1hcCgoY2x1YkluZm86IFNlYXJjaENsdWIpID0+IGdldEN1cnJlbnRNZW1iZXJDbHViSW5mb1N1Y2Nlc3NBY3Rpb24oe3BheWxvYWQ6IGNsdWJJbmZvfSkpLFxuICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gb2YoZ2V0Q3VycmVudE1lbWJlckNsdWJJbmZvRmFpbHVyZUFjdGlvbih7cGF5bG9hZDogZXJyb3J9KSkpXG4gICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgZ2V0UHVibGljQ3VycmVudCQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5hY3Rpb25zJFxuICAgIC5waXBlKFxuICAgICAgb2ZUeXBlKGdldEN1cnJlbnRQdWJsaWNDbHViSW5mb0FjdGlvbiksXG4gICAgICBleGhhdXN0TWFwKCgpID0+IHRoaXMuY2x1YlNlcnZpY2UuZ2V0UHVibGljQ2x1YkluZm8oKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBtYXAoKGNsdWJJbmZvOiBTZWFyY2hDbHViKSA9PiBnZXRDdXJyZW50UHVibGljQ2x1YkluZm9TdWNjZXNzQWN0aW9uKHtwYXlsb2FkOiBjbHViSW5mb30pKSxcbiAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IG9mKGdldEN1cnJlbnRQdWJsaWNDbHViSW5mb0ZhaWx1cmVBY3Rpb24oe3BheWxvYWQ6IGVycm9yfSkpKVxuICAgICAgICApXG4gICAgICApXG4gICAgKVxuICApO1xuXG4gIGdldFRlYW1DdXJyZW50JCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkXG4gICAgLnBpcGUoXG4gICAgICBvZlR5cGUoZ2V0Q3VycmVudFRlYW1DbHViSW5mb0FjdGlvbiksXG4gICAgICBleGhhdXN0TWFwKCh7cGF5bG9hZH0pID0+IHRoaXMuY2x1YlNlcnZpY2UuZ2V0VGVhbUNsdWJJbmZvKHBheWxvYWQpXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIG1hcCgoY2x1YkluZm86IFNlYXJjaENsdWIpID0+IGdldEN1cnJlbnRUZWFtQ2x1YkluZm9TdWNjZXNzQWN0aW9uKHtwYXlsb2FkOiBjbHViSW5mb30pKSxcbiAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IG9mKGdldEN1cnJlbnRUZWFtQ2x1YkluZm9GYWlsdXJlQWN0aW9uKHtwYXlsb2FkOiBlcnJvcn0pKSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcbn1cbiJdfQ==
@@ -0,0 +1,69 @@
1
+ import { inject, Injectable } from '@angular/core';
2
+ import { Actions, createEffect, ofType } from '@ngrx/effects';
3
+ import { retrieveActivityMaxAttendantsTypesConstantsAction, retrieveActivityMaxAttendantsTypesConstantsFailureAction, retrieveActivityMaxAttendantsTypesConstantsSuccessAction, retrieveActivityMeetUpTimesConstantsAction, retrieveActivityMeetUpTimesConstantsFailureAction, retrieveActivityMeetUpTimesConstantsSuccessAction, retrieveActivityReminderDaysConstantsAction, retrieveActivityReminderDaysConstantsFailureAction, retrieveActivityReminderDaysConstantsSuccessAction, retrieveActivityReminderReceiversConstantsAction, retrieveActivityReminderReceiversConstantsFailureAction, retrieveActivityReminderReceiversConstantsSuccessAction, retrieveActivityReminderTimesConstantsAction, retrieveActivityReminderTimesConstantsFailureAction, retrieveActivityReminderTimesConstantsSuccessAction, retrieveActivityRepeatOptionsConstantsAction, retrieveActivityRepeatOptionsConstantsFailureAction, retrieveActivityRepeatOptionsConstantsSuccessAction, retrieveActivityRepeatTypeOptionsConstantsAction, retrieveActivityRepeatTypeOptionsConstantsFailureAction, retrieveActivityRepeatTypeOptionsConstantsSuccessAction, retrieveActivitySettingsConstantsAction, retrieveActivitySettingsConstantsFailureAction, retrieveActivitySettingsConstantsSuccessAction, retrieveBookingCalendarStatusesAction, retrieveBookingCalendarStatusesFailureAction, retrieveBookingCalendarStatusesSuccessAction, retrieveBookingCalendarTypesAction, retrieveBookingCalendarTypesFailureAction, retrieveBookingCalendarTypesSuccessAction, retrieveBookingSlotReservedTimePositionsAction, retrieveBookingSlotReservedTimePositionsFailureAction, retrieveBookingSlotReservedTimePositionsSuccessAction, retrieveBookingSlotSessionTypesAction, retrieveBookingSlotSessionTypesFailureAction, retrieveBookingSlotSessionTypesSuccessAction, retrieveBookingSlotTypesAction, retrieveBookingSlotTypesFailureAction, retrieveBookingSlotTypesSuccessAction, retrieveCountriesConstantsAction, retrieveCountriesConstantsFailureAction, retrieveCountriesConstantsSuccessAction, retrieveFeatureFlagsAction, retrieveFeatureFlagsFailureAction, retrieveFeatureFlagsSuccessAction, retrieveLanguagesConstantsAction, retrieveLanguagesConstantsFailureAction, retrieveLanguagesConstantsSuccessAction, retrieveMemberContactTypesConstantsAction, retrieveMemberContactTypesConstantsFailureAction, retrieveMemberContactTypesConstantsSuccessAction } from '../actions';
4
+ import { ConstantService, FeatureFlagsService } from '../../services';
5
+ import { exhaustMap, of } from 'rxjs';
6
+ import { catchError, map } from 'rxjs/operators';
7
+ import * as i0 from "@angular/core";
8
+ export class ConstantEffects {
9
+ actions$ = inject(Actions);
10
+ constantService = inject(ConstantService);
11
+ featureFlagsService = inject(FeatureFlagsService);
12
+ retrieveLanguages$ = createEffect(() => this.actions$
13
+ .pipe(ofType(retrieveLanguagesConstantsAction), exhaustMap(() => this.constantService.getLanguages()
14
+ .pipe(map((constants) => retrieveLanguagesConstantsSuccessAction({ payload: constants })), catchError((error) => of(retrieveLanguagesConstantsFailureAction({ payload: error })))))));
15
+ retrieveActivitySettings$ = createEffect(() => this.actions$
16
+ .pipe(ofType(retrieveActivitySettingsConstantsAction), exhaustMap(() => this.constantService.getActivityInviteSettings()
17
+ .pipe(map((constants) => retrieveActivitySettingsConstantsSuccessAction({ payload: constants })), catchError((error) => of(retrieveActivitySettingsConstantsFailureAction({ payload: error })))))));
18
+ retrieveActivityMaxAttendantsTypes$ = createEffect(() => this.actions$
19
+ .pipe(ofType(retrieveActivityMaxAttendantsTypesConstantsAction), exhaustMap(() => this.constantService.getActivityMaxAttendantsTypes()
20
+ .pipe(map((constants) => retrieveActivityMaxAttendantsTypesConstantsSuccessAction({ payload: constants })), catchError((error) => of(retrieveActivityMaxAttendantsTypesConstantsFailureAction({ payload: error })))))));
21
+ retrieveActivityMeetUpTimes$ = createEffect(() => this.actions$
22
+ .pipe(ofType(retrieveActivityMeetUpTimesConstantsAction), exhaustMap(() => this.constantService.getActivityMeetUpTimes()
23
+ .pipe(map((constants) => retrieveActivityMeetUpTimesConstantsSuccessAction({ payload: constants })), catchError((error) => of(retrieveActivityMeetUpTimesConstantsFailureAction({ payload: error })))))));
24
+ retrieveActivityReminderDays$ = createEffect(() => this.actions$
25
+ .pipe(ofType(retrieveActivityReminderDaysConstantsAction), exhaustMap(() => this.constantService.getActivityReminderDays()
26
+ .pipe(map((constants) => retrieveActivityReminderDaysConstantsSuccessAction({ payload: constants })), catchError((error) => of(retrieveActivityReminderDaysConstantsFailureAction({ payload: error })))))));
27
+ retrieveActivityReminderReceivers$ = createEffect(() => this.actions$
28
+ .pipe(ofType(retrieveActivityReminderReceiversConstantsAction), exhaustMap(() => this.constantService.getActivityReminderReceivers()
29
+ .pipe(map((constants) => retrieveActivityReminderReceiversConstantsSuccessAction({ payload: constants })), catchError((error) => of(retrieveActivityReminderReceiversConstantsFailureAction({ payload: error })))))));
30
+ retrieveActivityReminderTimes$ = createEffect(() => this.actions$
31
+ .pipe(ofType(retrieveActivityReminderTimesConstantsAction), exhaustMap(() => this.constantService.getActivityReminderTimes()
32
+ .pipe(map((constants) => retrieveActivityReminderTimesConstantsSuccessAction({ payload: constants })), catchError((error) => of(retrieveActivityReminderTimesConstantsFailureAction({ payload: error })))))));
33
+ retrieveActivityRepeatOptions$ = createEffect(() => this.actions$
34
+ .pipe(ofType(retrieveActivityRepeatOptionsConstantsAction), exhaustMap(() => this.constantService.getActivityRepeatOptions()
35
+ .pipe(map((constants) => retrieveActivityRepeatOptionsConstantsSuccessAction({ payload: constants })), catchError((error) => of(retrieveActivityRepeatOptionsConstantsFailureAction({ payload: error })))))));
36
+ retrieveActivityRepeatTypeOptions$ = createEffect(() => this.actions$
37
+ .pipe(ofType(retrieveActivityRepeatTypeOptionsConstantsAction), exhaustMap(() => this.constantService.getActivityRepeatTypeOptions()
38
+ .pipe(map((constants) => retrieveActivityRepeatTypeOptionsConstantsSuccessAction({ payload: constants })), catchError((error) => of(retrieveActivityRepeatTypeOptionsConstantsFailureAction({ payload: error })))))));
39
+ retrieveCountries$ = createEffect(() => this.actions$
40
+ .pipe(ofType(retrieveCountriesConstantsAction), exhaustMap(() => this.constantService.getCountries()
41
+ .pipe(map((constants) => retrieveCountriesConstantsSuccessAction({ payload: constants })), catchError((error) => of(retrieveCountriesConstantsFailureAction({ payload: error })))))));
42
+ retrieveMemberContactTypes$ = createEffect(() => this.actions$
43
+ .pipe(ofType(retrieveMemberContactTypesConstantsAction), exhaustMap(() => this.constantService.getMemberContactTypes()
44
+ .pipe(map((constants) => retrieveMemberContactTypesConstantsSuccessAction({ payload: constants })), catchError((error) => of(retrieveMemberContactTypesConstantsFailureAction({ payload: error })))))));
45
+ retrieveBookingSlotTypes$ = createEffect(() => this.actions$
46
+ .pipe(ofType(retrieveBookingSlotTypesAction), exhaustMap(() => this.constantService.getBookingSlotTypes()
47
+ .pipe(map((constants) => retrieveBookingSlotTypesSuccessAction({ payload: constants })), catchError((error) => of(retrieveBookingSlotTypesFailureAction({ payload: error })))))));
48
+ retrieveBookingSlotReservedTimePositions$ = createEffect(() => this.actions$
49
+ .pipe(ofType(retrieveBookingSlotReservedTimePositionsAction), exhaustMap(() => this.constantService.getBookingSlotReservedTimePositions()
50
+ .pipe(map((constants) => retrieveBookingSlotReservedTimePositionsSuccessAction({ payload: constants })), catchError((error) => of(retrieveBookingSlotReservedTimePositionsFailureAction({ payload: error })))))));
51
+ retrieveBookingSlotSessionTypes$ = createEffect(() => this.actions$
52
+ .pipe(ofType(retrieveBookingSlotSessionTypesAction), exhaustMap(() => this.constantService.getBookingSlotSessionTypes()
53
+ .pipe(map((constants) => retrieveBookingSlotSessionTypesSuccessAction({ payload: constants })), catchError((error) => of(retrieveBookingSlotSessionTypesFailureAction({ payload: error })))))));
54
+ retrieveBookingCalendarStatuses$ = createEffect(() => this.actions$
55
+ .pipe(ofType(retrieveBookingCalendarStatusesAction), exhaustMap(() => this.constantService.getBookingCalendarStatuses()
56
+ .pipe(map((constants) => retrieveBookingCalendarStatusesSuccessAction({ payload: constants })), catchError((error) => of(retrieveBookingCalendarStatusesFailureAction({ payload: error })))))));
57
+ retrieveBookingCalendarTypes$ = createEffect(() => this.actions$
58
+ .pipe(ofType(retrieveBookingCalendarTypesAction), exhaustMap(() => this.constantService.getBookingCalendarTypes()
59
+ .pipe(map((constants) => retrieveBookingCalendarTypesSuccessAction({ payload: constants })), catchError((error) => of(retrieveBookingCalendarTypesFailureAction({ payload: error })))))));
60
+ retrieveFeatureFlags$ = createEffect(() => this.actions$
61
+ .pipe(ofType(retrieveFeatureFlagsAction), exhaustMap(({ role, clubOrSectionOrTeamId }) => this.featureFlagsService.getFeatureFlags(role, clubOrSectionOrTeamId)
62
+ .pipe(map((featureFlags) => retrieveFeatureFlagsSuccessAction({ payload: featureFlags })), catchError((error) => of(retrieveFeatureFlagsFailureAction({ payload: error })))))));
63
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ConstantEffects, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
64
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ConstantEffects });
65
+ }
66
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ConstantEffects, decorators: [{
67
+ type: Injectable
68
+ }] });
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnQuZWZmZWN0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGEtYWNjZXNzL3NyYy9saWIvc3RvcmUvZWZmZWN0cy9jb25zdGFudC5lZmZlY3RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQ0wsaURBQWlELEVBQ2pELHdEQUF3RCxFQUN4RCx3REFBd0QsRUFDeEQsMENBQTBDLEVBQzFDLGlEQUFpRCxFQUNqRCxpREFBaUQsRUFDakQsMkNBQTJDLEVBQzNDLGtEQUFrRCxFQUNsRCxrREFBa0QsRUFDbEQsZ0RBQWdELEVBQ2hELHVEQUF1RCxFQUN2RCx1REFBdUQsRUFDdkQsNENBQTRDLEVBQzVDLG1EQUFtRCxFQUNuRCxtREFBbUQsRUFDbkQsNENBQTRDLEVBQzVDLG1EQUFtRCxFQUNuRCxtREFBbUQsRUFDbkQsZ0RBQWdELEVBQ2hELHVEQUF1RCxFQUN2RCx1REFBdUQsRUFDdkQsdUNBQXVDLEVBQ3ZDLDhDQUE4QyxFQUM5Qyw4Q0FBOEMsRUFDOUMscUNBQXFDLEVBQ3JDLDRDQUE0QyxFQUM1Qyw0Q0FBNEMsRUFDNUMsa0NBQWtDLEVBQ2xDLHlDQUF5QyxFQUN6Qyx5Q0FBeUMsRUFDekMsOENBQThDLEVBQzlDLHFEQUFxRCxFQUNyRCxxREFBcUQsRUFDckQscUNBQXFDLEVBQ3JDLDRDQUE0QyxFQUM1Qyw0Q0FBNEMsRUFDNUMsOEJBQThCLEVBQzlCLHFDQUFxQyxFQUNyQyxxQ0FBcUMsRUFDckMsZ0NBQWdDLEVBQ2hDLHVDQUF1QyxFQUN2Qyx1Q0FBdUMsRUFDdkMsMEJBQTBCLEVBQzFCLGlDQUFpQyxFQUNqQyxpQ0FBaUMsRUFDakMsZ0NBQWdDLEVBQ2hD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QyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLHVCQUF1QixFQUFFO1NBQzVELElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxTQUFpQyxFQUFFLEVBQUUsQ0FBQyx5Q0FBeUMsQ0FBQyxFQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUMsQ0FBQyxDQUFDLEVBQzNHLFVBQVUsQ0FBQyxDQUFDLEtBQXdCLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyx5Q0FBeUMsQ0FBQyxFQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDMUcsQ0FDRixDQUNGLENBQ0YsQ0FBQztJQUVGLHFCQUFxQixHQUFHLFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUTtTQUNyRCxJQUFJLENBQ0gsTUFBTSxDQUFDLDBCQUEwQixDQUFDLEVBQ2xDLFVBQVUsQ0FDUixDQUFDLEVBQUMsSUFBSSxFQUFFLHFCQUFxQixFQUc1QixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxxQkFBcUIsQ0FBQztTQUN4RSxJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsWUFBMEIsRUFBRSxFQUFFLENBQUMsaUNBQWlDLENBQUMsRUFBQyxPQUFPLEVBQUUsWUFBWSxFQUFDLENBQUMsQ0FBQyxFQUMvRixVQUFVLENBQUMsQ0FBQyxLQUF3QixFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsaUNBQWlDLENBQUMsRUFBQyxPQUFPLEVBQUUsS0FBSyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQ2xHLENBQ0osQ0FDRixDQUNGLENBQUM7dUdBbk5TLGVBQWU7MkdBQWYsZUFBZTs7MkZBQWYsZUFBZTtrQkFEM0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aW9ucywgY3JlYXRlRWZmZWN0LCBvZlR5cGUgfSBmcm9tICdAbmdyeC9lZmZlY3RzJztcbmltcG9ydCB7XG4gIHJldHJpZXZlQWN0aXZpdHlNYXhBdHRlbmRhbnRzVHlwZXNDb25zdGFudHNBY3Rpb24sXG4gIHJldHJpZXZlQWN0aXZpdHlNYXhBdHRlbmRhbnRzVHlwZXNDb25zdGFudHNGYWlsdXJlQWN0aW9uLFxuICByZXRyaWV2ZUFjdGl2aXR5TWF4QXR0ZW5kYW50c1R5cGVzQ29uc3RhbnRzU3VjY2Vzc0FjdGlvbixcbiAgcmV0cmlldmVBY3Rpdml0eU1lZXRVcFRpbWVzQ29uc3RhbnRzQWN0aW9uLFxuICByZXRyaWV2ZUFjdGl2aXR5TWVldFVwVGltZXNDb25zdGFudHNGYWlsdXJlQWN0aW9uLFxuICByZXRyaWV2ZUFjdGl2aXR5TWVldFVwVGltZXNDb25zdGFudHNTdWNjZXNzQWN0aW9uLFxuICByZXRyaWV2ZUFjdGl2aXR5UmVtaW5kZXJEYXlzQ29uc3RhbnRzQWN0aW9uLFxuICByZXRyaWV2ZUFjdGl2aXR5UmVtaW5kZXJEYXlzQ29uc3RhbnRzRmFpbHVyZUFjdGlvbixcbiAgcmV0cmlldmVBY3Rpdml0eVJlbWluZGVyRGF5c0NvbnN0YW50c1N1Y2Nlc3NBY3Rpb24sXG4gIHJldHJpZXZlQWN0aXZpdHlSZW1pbmRlclJlY2VpdmVyc0NvbnN0YW50c0FjdGlvbixcbiAgcmV0cmlldmVBY3Rpdml0eVJlbWluZGVyUmVjZWl2ZXJzQ29uc3RhbnRzRmFpbHVyZUFjdGlvbixcbiAgcmV0cmlldmVBY3Rpdml0eVJlbWluZGVyUmVjZWl2ZXJzQ29uc3RhbnRzU3VjY2Vzc0FjdGlvbixcbiAgcmV0cmlldmVBY3Rpdml0eVJlbWluZGVyVGltZXNDb25zdGFudHNBY3Rpb24sXG4gIHJldHJpZXZlQWN0aXZpdHlSZW1pbmRlclRpbWVzQ29uc3RhbnRzRmFpbHVyZUFjdGlvbixcbiAgcmV0cmlldmVBY3Rpdml0eVJlbWluZGVyVGltZXNDb25zdGFudHNTdWNjZXNzQWN0aW9uLFxuICByZXRyaWV2ZUFjdGl2aXR5UmVwZWF0T3B0aW9uc0NvbnN0YW50c0FjdGlvbixcbiAgcmV0cmlldmVBY3Rpdml0eVJlcGVhdE9wdGlvbnNDb25zdGFudHNGYWlsdXJlQWN0aW9uLFxuICByZXRyaWV2ZUFjdGl2aXR5UmVwZWF0T3B0aW9uc0NvbnN0YW50c1N1Y2Nlc3NBY3Rpb24sXG4gIHJldHJpZXZlQWN0aXZpdHlSZXBlYXRUeXBlT3B0aW9uc0NvbnN0YW50c0FjdGlvbixcbiAgcmV0cmlldmVBY3Rpdml0eVJlcGVhdFR5cGVPcHRpb25zQ29uc3RhbnRzRmFpbHVyZUFjdGlvbixcbiAgcmV0cmlldmVBY3Rpdml0eVJlcGVhdFR5cGVPcHRpb25zQ29uc3RhbnRzU3VjY2Vzc0FjdGlvbixcbiAgcmV0cmlldmVBY3Rpdml0eVNldHRpbmdzQ29uc3RhbnRzQWN0aW9uLFxuICByZXRyaWV2ZUFjdGl2aXR5U2V0dGluZ3NDb25zdGFudHNGYWlsdXJlQWN0aW9uLFxuICByZXRyaWV2ZUFjdGl2aXR5U2V0dGluZ3NDb25zdGFudHNTdWNjZXNzQWN0aW9uLFxuICByZXRyaWV2ZUJvb2tpbmdDYWxlbmRhclN0YXR1c2VzQWN0aW9uLFxuICByZXRyaWV2ZUJvb2tpbmdDYWxlbmRhclN0YXR1c2VzRmFpbHVyZUFjdGlvbixcbiAgcmV0cmlldmVCb29raW5nQ2FsZW5kYXJTdGF0dXNlc1N1Y2Nlc3NBY3Rpb24sXG4gIHJldHJpZXZlQm9va2luZ0NhbGVuZGFyVHlwZXNBY3Rpb24sXG4gIHJldHJpZXZlQm9va2luZ0NhbGVuZGFyVHlwZXNGYWlsdXJlQWN0aW9uLFxuICByZXRyaWV2ZUJvb2tpbmdDYWxlbmRhclR5cGVzU3VjY2Vzc0FjdGlvbixcbiAgcmV0cmlldmVCb29raW5nU2xvdFJlc2VydmVkVGltZVBvc2l0aW9uc0FjdGlvbixcbiAgcmV0cmlldmVCb29raW5nU2xvdFJlc2VydmVkVGltZVBvc2l0aW9uc0ZhaWx1cmVBY3Rpb24sXG4gIHJldHJpZXZlQm9va2luZ1Nsb3RSZXNlcnZlZFRpbWVQb3NpdGlvbnNTdWNjZXNzQWN0aW9uLFxuICByZXRyaWV2ZUJvb2tpbmdTbG90U2Vzc2lvblR5cGVzQWN0aW9uLFxuICByZXRyaWV2ZUJvb2tpbmdTbG90U2Vzc2lvblR5cGVzRmFpbHVyZUFjdGlvbixcbiAgcmV0cmlldmVCb29raW5nU2xvdFNlc3Npb25UeXBlc1N1Y2Nlc3NBY3Rpb24sXG4gIHJldHJpZXZlQm9va2luZ1Nsb3RUeXBlc0FjdGlvbixcbiAgcmV0cmlldmVCb29raW5nU2xvdFR5cGVzRmFpbHVyZUFjdGlvbixcbiAgcmV0cmlldmVCb29raW5nU2xvdFR5cGVzU3VjY2Vzc0FjdGlvbixcbiAgcmV0cmlldmVDb3VudHJpZXNDb25zdGFudHNBY3Rpb24sXG4gIHJldHJpZXZlQ291bnRyaWVzQ29uc3RhbnRzRmFpbHVyZUFjdGlvbixcbiAgcmV0cmlldmVDb3VudHJpZXNDb25zdGFudHNTdWNjZXNzQWN0aW9uLFxuICByZXRyaWV2ZUZlYXR1cmVGbGFnc0FjdGlvbixcbiAgcmV0cmlldmVGZWF0dXJlRmxhZ3NGYWlsdXJlQWN0aW9uLFxuICByZXRyaWV2ZUZlYXR1cmVGbGFnc1N1Y2Nlc3NBY3Rpb24sXG4gIHJldHJpZXZlTGFuZ3VhZ2VzQ29uc3RhbnRzQWN0aW9uLFxuICByZXRyaWV2ZUxhbmd1YWdlc0NvbnN0YW50c0ZhaWx1cmVBY3Rpb24sXG4gIHJldHJpZXZlTGFuZ3VhZ2VzQ29uc3RhbnRzU3VjY2Vzc0FjdGlvbixcbiAgcmV0cmlldmVNZW1iZXJDb250YWN0VHlwZXNDb25zdGFudHNBY3Rpb24sXG4gIHJldHJpZXZlTWVtYmVyQ29udGFjdFR5cGVzQ29uc3RhbnRzRmFpbHVyZUFjdGlvbixcbiAgcmV0cmlldmVNZW1iZXJDb250YWN0VHlwZXNDb25zdGFudHNTdWNjZXNzQWN0aW9uXG59IGZyb20gJy4uL2FjdGlvbnMnO1xuaW1wb3J0IHsgQ29uc3RhbnRTZXJ2aWNlLCBGZWF0dXJlRmxhZ3NTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHsgT3B0aW9uSW50ZXJmYWNlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBleGhhdXN0TWFwLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBGZWF0dXJlRmxhZ3MsIFJvbGUgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuXG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDb25zdGFudEVmZmVjdHMge1xuICBwcml2YXRlIGFjdGlvbnMkID0gaW5qZWN0KEFjdGlvbnMpO1xuICBwcml2YXRlIGNvbnN0YW50U2VydmljZSA9IGluamVjdChDb25zdGFudFNlcnZpY2UpO1xuICBwcml2YXRlIGZlYXR1cmVGbGFnc1NlcnZpY2UgPSBpbmplY3QoRmVhdHVyZUZsYWdzU2VydmljZSk7XG5cbiAgcmV0cmlldmVMYW5ndWFnZXMkID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyRcbiAgICAucGlwZShcbiAgICAgIG9mVHlwZShyZXRyaWV2ZUxhbmd1YWdlc0NvbnN0YW50c0FjdGlvbiksXG4gICAgICBleGhhdXN0TWFwKCgpID0+IHRoaXMuY29uc3RhbnRTZXJ2aWNlLmdldExhbmd1YWdlcygpXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIG1hcCgoY29uc3RhbnRzOiBBcnJheTxPcHRpb25JbnRlcmZhY2U+KSA9PiByZXRyaWV2ZUxhbmd1YWdlc0NvbnN0YW50c1N1Y2Nlc3NBY3Rpb24oe3BheWxvYWQ6IGNvbnN0YW50c30pKSxcbiAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IG9mKHJldHJpZXZlTGFuZ3VhZ2VzQ29uc3RhbnRzRmFpbHVyZUFjdGlvbih7cGF5bG9hZDogZXJyb3J9KSkpXG4gICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgcmV0cmlldmVBY3Rpdml0eVNldHRpbmdzJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkXG4gICAgLnBpcGUoXG4gICAgICBvZlR5cGUocmV0cmlldmVBY3Rpdml0eVNldHRpbmdzQ29uc3RhbnRzQWN0aW9uKSxcbiAgICAgIGV4aGF1c3RNYXAoKCkgPT4gdGhpcy5jb25zdGFudFNlcnZpY2UuZ2V0QWN0aXZpdHlJbnZpdGVTZXR0aW5ncygpXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIG1hcCgoY29uc3RhbnRzOiBBcnJheTxPcHRpb25JbnRlcmZhY2U+KSA9PiByZXRyaWV2ZUFjdGl2aXR5U2V0dGluZ3NDb25zdGFudHNTdWNjZXNzQWN0aW9uKHtwYXlsb2FkOiBjb25zdGFudHN9KSksXG4gICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiBvZihyZXRyaWV2ZUFjdGl2aXR5U2V0dGluZ3NDb25zdGFudHNGYWlsdXJlQWN0aW9uKHtwYXlsb2FkOiBlcnJvcn0pKSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICByZXRyaWV2ZUFjdGl2aXR5TWF4QXR0ZW5kYW50c1R5cGVzJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkXG4gICAgLnBpcGUoXG4gICAgICBvZlR5cGUocmV0cmlldmVBY3Rpdml0eU1heEF0dGVuZGFudHNUeXBlc0NvbnN0YW50c0FjdGlvbiksXG4gICAgICBleGhhdXN0TWFwKCgpID0+IHRoaXMuY29uc3RhbnRTZXJ2aWNlLmdldEFjdGl2aXR5TWF4QXR0ZW5kYW50c1R5cGVzKClcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgbWFwKChjb25zdGFudHM6IEFycmF5PE9wdGlvbkludGVyZmFjZT4pID0+IHJldHJpZXZlQWN0aXZpdHlNYXhBdHRlbmRhbnRzVHlwZXNDb25zdGFudHNTdWNjZXNzQWN0aW9uKHtwYXlsb2FkOiBjb25zdGFudHN9KSksXG4gICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiBvZihyZXRyaWV2ZUFjdGl2aXR5TWF4QXR0ZW5kYW50c1R5cGVzQ29uc3RhbnRzRmFpbHVyZUFjdGlvbih7cGF5bG9hZDogZXJyb3J9KSkpXG4gICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgcmV0cmlldmVBY3Rpdml0eU1lZXRVcFRpbWVzJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkXG4gICAgLnBpcGUoXG4gICAgICBvZlR5cGUocmV0cmlldmVBY3Rpdml0eU1lZXRVcFRpbWVzQ29uc3RhbnRzQWN0aW9uKSxcbiAgICAgIGV4aGF1c3RNYXAoKCkgPT4gdGhpcy5jb25zdGFudFNlcnZpY2UuZ2V0QWN0aXZpdHlNZWV0VXBUaW1lcygpXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIG1hcCgoY29uc3RhbnRzOiBBcnJheTxPcHRpb25JbnRlcmZhY2U+KSA9PiByZXRyaWV2ZUFjdGl2aXR5TWVldFVwVGltZXNDb25zdGFudHNTdWNjZXNzQWN0aW9uKHtwYXlsb2FkOiBjb25zdGFudHN9KSksXG4gICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiBvZihyZXRyaWV2ZUFjdGl2aXR5TWVldFVwVGltZXNDb25zdGFudHNGYWlsdXJlQWN0aW9uKHtwYXlsb2FkOiBlcnJvcn0pKSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICByZXRyaWV2ZUFjdGl2aXR5UmVtaW5kZXJEYXlzJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkXG4gICAgLnBpcGUoXG4gICAgICBvZlR5cGUocmV0cmlldmVBY3Rpdml0eVJlbWluZGVyRGF5c0NvbnN0YW50c0FjdGlvbiksXG4gICAgICBleGhhdXN0TWFwKCgpID0+IHRoaXMuY29uc3RhbnRTZXJ2aWNlLmdldEFjdGl2aXR5UmVtaW5kZXJEYXlzKClcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgbWFwKChjb25zdGFudHM6IEFycmF5PE9wdGlvbkludGVyZmFjZT4pID0+IHJldHJpZXZlQWN0aXZpdHlSZW1pbmRlckRheXNDb25zdGFudHNTdWNjZXNzQWN0aW9uKHtwYXlsb2FkOiBjb25zdGFudHN9KSksXG4gICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiBvZihyZXRyaWV2ZUFjdGl2aXR5UmVtaW5kZXJEYXlzQ29uc3RhbnRzRmFpbHVyZUFjdGlvbih7cGF5bG9hZDogZXJyb3J9KSkpXG4gICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgcmV0cmlldmVBY3Rpdml0eVJlbWluZGVyUmVjZWl2ZXJzJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkXG4gICAgLnBpcGUoXG4gICAgICBvZlR5cGUocmV0cmlldmVBY3Rpdml0eVJlbWluZGVyUmVjZWl2ZXJzQ29uc3RhbnRzQWN0aW9uKSxcbiAgICAgIGV4aGF1c3RNYXAoKCkgPT4gdGhpcy5jb25zdGFudFNlcnZpY2UuZ2V0QWN0aXZpdHlSZW1pbmRlclJlY2VpdmVycygpXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIG1hcCgoY29uc3RhbnRzOiBBcnJheTxPcHRpb25JbnRlcmZhY2U+KSA9PiByZXRyaWV2ZUFjdGl2aXR5UmVtaW5kZXJSZWNlaXZlcnNDb25zdGFudHNTdWNjZXNzQWN0aW9uKHtwYXlsb2FkOiBjb25zdGFudHN9KSksXG4gICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiBvZihyZXRyaWV2ZUFjdGl2aXR5UmVtaW5kZXJSZWNlaXZlcnNDb25zdGFudHNGYWlsdXJlQWN0aW9uKHtwYXlsb2FkOiBlcnJvcn0pKSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICByZXRyaWV2ZUFjdGl2aXR5UmVtaW5kZXJUaW1lcyQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5hY3Rpb25zJFxuICAgIC5waXBlKFxuICAgICAgb2ZUeXBlKHJldHJpZXZlQWN0aXZpdHlSZW1pbmRlclRpbWVzQ29uc3RhbnRzQWN0aW9uKSxcbiAgICAgIGV4aGF1c3RNYXAoKCkgPT4gdGhpcy5jb25zdGFudFNlcnZpY2UuZ2V0QWN0aXZpdHlSZW1pbmRlclRpbWVzKClcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgbWFwKChjb25zdGFudHM6IEFycmF5PE9wdGlvbkludGVyZmFjZT4pID0+IHJldHJpZXZlQWN0aXZpdHlSZW1pbmRlclRpbWVzQ29uc3RhbnRzU3VjY2Vzc0FjdGlvbih7cGF5bG9hZDogY29uc3RhbnRzfSkpLFxuICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gb2YocmV0cmlldmVBY3Rpdml0eVJlbWluZGVyVGltZXNDb25zdGFudHNGYWlsdXJlQWN0aW9uKHtwYXlsb2FkOiBlcnJvcn0pKSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICByZXRyaWV2ZUFjdGl2aXR5UmVwZWF0T3B0aW9ucyQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5hY3Rpb25zJFxuICAgIC5waXBlKFxuICAgICAgb2ZUeXBlKHJldHJpZXZlQWN0aXZpdHlSZXBlYXRPcHRpb25zQ29uc3RhbnRzQWN0aW9uKSxcbiAgICAgIGV4aGF1c3RNYXAoKCkgPT4gdGhpcy5jb25zdGFudFNlcnZpY2UuZ2V0QWN0aXZpdHlSZXBlYXRPcHRpb25zKClcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgbWFwKChjb25zdGFudHM6IEFycmF5PE9wdGlvbkludGVyZmFjZT4pID0+IHJldHJpZXZlQWN0aXZpdHlSZXBlYXRPcHRpb25zQ29uc3RhbnRzU3VjY2Vzc0FjdGlvbih7cGF5bG9hZDogY29uc3RhbnRzfSkpLFxuICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gb2YocmV0cmlldmVBY3Rpdml0eVJlcGVhdE9wdGlvbnNDb25zdGFudHNGYWlsdXJlQWN0aW9uKHtwYXlsb2FkOiBlcnJvcn0pKSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICByZXRyaWV2ZUFjdGl2aXR5UmVwZWF0VHlwZU9wdGlvbnMkID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyRcbiAgICAucGlwZShcbiAgICAgIG9mVHlwZShyZXRyaWV2ZUFjdGl2aXR5UmVwZWF0VHlwZU9wdGlvbnNDb25zdGFudHNBY3Rpb24pLFxuICAgICAgZXhoYXVzdE1hcCgoKSA9PiB0aGlzLmNvbnN0YW50U2VydmljZS5nZXRBY3Rpdml0eVJlcGVhdFR5cGVPcHRpb25zKClcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgbWFwKChjb25zdGFudHM6IEFycmF5PE9wdGlvbkludGVyZmFjZT4pID0+IHJldHJpZXZlQWN0aXZpdHlSZXBlYXRUeXBlT3B0aW9uc0NvbnN0YW50c1N1Y2Nlc3NBY3Rpb24oe3BheWxvYWQ6IGNvbnN0YW50c30pKSxcbiAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IG9mKHJldHJpZXZlQWN0aXZpdHlSZXBlYXRUeXBlT3B0aW9uc0NvbnN0YW50c0ZhaWx1cmVBY3Rpb24oe3BheWxvYWQ6IGVycm9yfSkpKVxuICAgICAgICApXG4gICAgICApXG4gICAgKVxuICApO1xuXG4gIHJldHJpZXZlQ291bnRyaWVzJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkXG4gICAgLnBpcGUoXG4gICAgICBvZlR5cGUocmV0cmlldmVDb3VudHJpZXNDb25zdGFudHNBY3Rpb24pLFxuICAgICAgZXhoYXVzdE1hcCgoKSA9PiB0aGlzLmNvbnN0YW50U2VydmljZS5nZXRDb3VudHJpZXMoKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBtYXAoKGNvbnN0YW50czogQXJyYXk8T3B0aW9uSW50ZXJmYWNlPikgPT4gcmV0cmlldmVDb3VudHJpZXNDb25zdGFudHNTdWNjZXNzQWN0aW9uKHtwYXlsb2FkOiBjb25zdGFudHN9KSksXG4gICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiBvZihyZXRyaWV2ZUNvdW50cmllc0NvbnN0YW50c0ZhaWx1cmVBY3Rpb24oe3BheWxvYWQ6IGVycm9yfSkpKVxuICAgICAgICApXG4gICAgICApXG4gICAgKVxuICApO1xuXG4gIHJldHJpZXZlTWVtYmVyQ29udGFjdFR5cGVzJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkXG4gICAgLnBpcGUoXG4gICAgICBvZlR5cGUocmV0cmlldmVNZW1iZXJDb250YWN0VHlwZXNDb25zdGFudHNBY3Rpb24pLFxuICAgICAgZXhoYXVzdE1hcCgoKSA9PiB0aGlzLmNvbnN0YW50U2VydmljZS5nZXRNZW1iZXJDb250YWN0VHlwZXMoKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBtYXAoKGNvbnN0YW50czogQXJyYXk8T3B0aW9uSW50ZXJmYWNlPikgPT4gcmV0cmlldmVNZW1iZXJDb250YWN0VHlwZXNDb25zdGFudHNTdWNjZXNzQWN0aW9uKHtwYXlsb2FkOiBjb25zdGFudHN9KSksXG4gICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiBvZihyZXRyaWV2ZU1lbWJlckNvbnRhY3RUeXBlc0NvbnN0YW50c0ZhaWx1cmVBY3Rpb24oe3BheWxvYWQ6IGVycm9yfSkpKVxuICAgICAgICApXG4gICAgICApXG4gICAgKVxuICApO1xuXG4gIHJldHJpZXZlQm9va2luZ1Nsb3RUeXBlcyQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5hY3Rpb25zJFxuICAgIC5waXBlKFxuICAgICAgb2ZUeXBlKHJldHJpZXZlQm9va2luZ1Nsb3RUeXBlc0FjdGlvbiksXG4gICAgICBleGhhdXN0TWFwKCgpID0+IHRoaXMuY29uc3RhbnRTZXJ2aWNlLmdldEJvb2tpbmdTbG90VHlwZXMoKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBtYXAoKGNvbnN0YW50czogQXJyYXk8T3B0aW9uSW50ZXJmYWNlPikgPT4gcmV0cmlldmVCb29raW5nU2xvdFR5cGVzU3VjY2Vzc0FjdGlvbih7cGF5bG9hZDogY29uc3RhbnRzfSkpLFxuICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gb2YocmV0cmlldmVCb29raW5nU2xvdFR5cGVzRmFpbHVyZUFjdGlvbih7cGF5bG9hZDogZXJyb3J9KSkpXG4gICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgcmV0cmlldmVCb29raW5nU2xvdFJlc2VydmVkVGltZVBvc2l0aW9ucyQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5hY3Rpb25zJFxuICAgIC5waXBlKFxuICAgICAgb2ZUeXBlKHJldHJpZXZlQm9va2luZ1Nsb3RSZXNlcnZlZFRpbWVQb3NpdGlvbnNBY3Rpb24pLFxuICAgICAgZXhoYXVzdE1hcCgoKSA9PiB0aGlzLmNvbnN0YW50U2VydmljZS5nZXRCb29raW5nU2xvdFJlc2VydmVkVGltZVBvc2l0aW9ucygpXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIG1hcCgoY29uc3RhbnRzOiBBcnJheTxPcHRpb25JbnRlcmZhY2U+KSA9PiByZXRyaWV2ZUJvb2tpbmdTbG90UmVzZXJ2ZWRUaW1lUG9zaXRpb25zU3VjY2Vzc0FjdGlvbih7cGF5bG9hZDogY29uc3RhbnRzfSkpLFxuICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gb2YocmV0cmlldmVCb29raW5nU2xvdFJlc2VydmVkVGltZVBvc2l0aW9uc0ZhaWx1cmVBY3Rpb24oe3BheWxvYWQ6IGVycm9yfSkpKVxuICAgICAgICApXG4gICAgICApXG4gICAgKVxuICApO1xuXG4gIHJldHJpZXZlQm9va2luZ1Nsb3RTZXNzaW9uVHlwZXMkID0gY3JlYXRlRWZmZWN0KCgpID0+IHRoaXMuYWN0aW9ucyRcbiAgICAucGlwZShcbiAgICAgIG9mVHlwZShyZXRyaWV2ZUJvb2tpbmdTbG90U2Vzc2lvblR5cGVzQWN0aW9uKSxcbiAgICAgIGV4aGF1c3RNYXAoKCkgPT4gdGhpcy5jb25zdGFudFNlcnZpY2UuZ2V0Qm9va2luZ1Nsb3RTZXNzaW9uVHlwZXMoKVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBtYXAoKGNvbnN0YW50czogQXJyYXk8T3B0aW9uSW50ZXJmYWNlPikgPT4gcmV0cmlldmVCb29raW5nU2xvdFNlc3Npb25UeXBlc1N1Y2Nlc3NBY3Rpb24oe3BheWxvYWQ6IGNvbnN0YW50c30pKSxcbiAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IG9mKHJldHJpZXZlQm9va2luZ1Nsb3RTZXNzaW9uVHlwZXNGYWlsdXJlQWN0aW9uKHtwYXlsb2FkOiBlcnJvcn0pKSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgIClcbiAgKTtcblxuICByZXRyaWV2ZUJvb2tpbmdDYWxlbmRhclN0YXR1c2VzJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkXG4gICAgLnBpcGUoXG4gICAgICBvZlR5cGUocmV0cmlldmVCb29raW5nQ2FsZW5kYXJTdGF0dXNlc0FjdGlvbiksXG4gICAgICBleGhhdXN0TWFwKCgpID0+IHRoaXMuY29uc3RhbnRTZXJ2aWNlLmdldEJvb2tpbmdDYWxlbmRhclN0YXR1c2VzKClcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgbWFwKChjb25zdGFudHM6IEFycmF5PE9wdGlvbkludGVyZmFjZT4pID0+IHJldHJpZXZlQm9va2luZ0NhbGVuZGFyU3RhdHVzZXNTdWNjZXNzQWN0aW9uKHtwYXlsb2FkOiBjb25zdGFudHN9KSksXG4gICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiBvZihyZXRyaWV2ZUJvb2tpbmdDYWxlbmRhclN0YXR1c2VzRmFpbHVyZUFjdGlvbih7cGF5bG9hZDogZXJyb3J9KSkpXG4gICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG5cbiAgcmV0cmlldmVCb29raW5nQ2FsZW5kYXJUeXBlcyQgPSBjcmVhdGVFZmZlY3QoKCkgPT4gdGhpcy5hY3Rpb25zJFxuICAgIC5waXBlKFxuICAgICAgb2ZUeXBlKHJldHJpZXZlQm9va2luZ0NhbGVuZGFyVHlwZXNBY3Rpb24pLFxuICAgICAgZXhoYXVzdE1hcCgoKSA9PiB0aGlzLmNvbnN0YW50U2VydmljZS5nZXRCb29raW5nQ2FsZW5kYXJUeXBlcygpXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIG1hcCgoY29uc3RhbnRzOiBBcnJheTxPcHRpb25JbnRlcmZhY2U+KSA9PiByZXRyaWV2ZUJvb2tpbmdDYWxlbmRhclR5cGVzU3VjY2Vzc0FjdGlvbih7cGF5bG9hZDogY29uc3RhbnRzfSkpLFxuICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkgPT4gb2YocmV0cmlldmVCb29raW5nQ2FsZW5kYXJUeXBlc0ZhaWx1cmVBY3Rpb24oe3BheWxvYWQ6IGVycm9yfSkpKVxuICAgICAgICApXG4gICAgICApXG4gICAgKVxuICApO1xuXG4gIHJldHJpZXZlRmVhdHVyZUZsYWdzJCA9IGNyZWF0ZUVmZmVjdCgoKSA9PiB0aGlzLmFjdGlvbnMkXG4gICAgLnBpcGUoXG4gICAgICBvZlR5cGUocmV0cmlldmVGZWF0dXJlRmxhZ3NBY3Rpb24pLFxuICAgICAgZXhoYXVzdE1hcChcbiAgICAgICAgKHtyb2xlLCBjbHViT3JTZWN0aW9uT3JUZWFtSWR9OiB7XG4gICAgICAgICAgcm9sZTogUm9sZSxcbiAgICAgICAgICBjbHViT3JTZWN0aW9uT3JUZWFtSWQ6IHN0cmluZ1xuICAgICAgICB9KSA9PiB0aGlzLmZlYXR1cmVGbGFnc1NlcnZpY2UuZ2V0RmVhdHVyZUZsYWdzKHJvbGUsIGNsdWJPclNlY3Rpb25PclRlYW1JZClcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIG1hcCgoZmVhdHVyZUZsYWdzOiBGZWF0dXJlRmxhZ3MpID0+IHJldHJpZXZlRmVhdHVyZUZsYWdzU3VjY2Vzc0FjdGlvbih7cGF5bG9hZDogZmVhdHVyZUZsYWdzfSkpLFxuICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiBvZihyZXRyaWV2ZUZlYXR1cmVGbGFnc0ZhaWx1cmVBY3Rpb24oe3BheWxvYWQ6IGVycm9yfSkpKVxuICAgICAgICAgIClcbiAgICAgIClcbiAgICApXG4gICk7XG59XG4iXX0=