@vendure/admin-ui 1.3.2 → 1.4.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 (255) hide show
  1. package/bundles/vendure-admin-ui-catalog.umd.js +87 -162
  2. package/bundles/vendure-admin-ui-catalog.umd.js.map +1 -1
  3. package/bundles/vendure-admin-ui-core.umd.js +2058 -426
  4. package/bundles/vendure-admin-ui-core.umd.js.map +1 -1
  5. package/bundles/vendure-admin-ui-customer.umd.js +79 -57
  6. package/bundles/vendure-admin-ui-customer.umd.js.map +1 -1
  7. package/bundles/vendure-admin-ui-marketing.umd.js +11 -1
  8. package/bundles/vendure-admin-ui-marketing.umd.js.map +1 -1
  9. package/bundles/vendure-admin-ui-order.umd.js +10 -2
  10. package/bundles/vendure-admin-ui-order.umd.js.map +1 -1
  11. package/bundles/vendure-admin-ui-settings.umd.js +156 -153
  12. package/bundles/vendure-admin-ui-settings.umd.js.map +1 -1
  13. package/catalog/components/collection-detail/collection-detail.component.d.ts +0 -1
  14. package/catalog/components/collection-list/collection-list.component.d.ts +3 -0
  15. package/catalog/components/facet-detail/facet-detail.component.d.ts +0 -1
  16. package/catalog/components/facet-list/facet-list.component.d.ts +3 -5
  17. package/catalog/components/product-detail/product-detail.component.d.ts +0 -1
  18. package/catalog/vendure-admin-ui-catalog.metadata.json +1 -1
  19. package/core/app.component.d.ts +1 -0
  20. package/core/common/base-detail.component.d.ts +42 -1
  21. package/core/common/base-entity-resolver.d.ts +28 -1
  22. package/core/common/base-list.component.d.ts +75 -1
  23. package/core/common/component-registry-types.d.ts +46 -0
  24. package/core/common/generated-types.d.ts +286 -27
  25. package/core/common/utilities/get-default-ui-language.d.ts +1 -0
  26. package/core/common/version.d.ts +1 -1
  27. package/core/components/app-shell/app-shell.component.d.ts +1 -1
  28. package/core/components/ui-language-switcher-dialog/ui-language-switcher-dialog.component.d.ts +17 -4
  29. package/core/components/user-menu/user-menu.component.d.ts +1 -1
  30. package/core/data/client-state/client-defaults.d.ts +1 -1
  31. package/core/data/definitions/client-definitions.d.ts +3 -1
  32. package/core/data/definitions/customer-definitions.d.ts +1 -0
  33. package/core/data/definitions/settings-definitions.d.ts +1 -0
  34. package/core/data/providers/client-data.service.d.ts +3 -1
  35. package/core/data/providers/data.service.d.ts +54 -12
  36. package/core/data/providers/settings-data.service.d.ts +3 -0
  37. package/core/data/query-result.d.ts +11 -2
  38. package/core/providers/custom-detail-component/custom-detail-component-types.d.ts +25 -0
  39. package/core/providers/custom-detail-component/custom-detail-component.service.d.ts +15 -0
  40. package/core/providers/custom-field-component/custom-field-component.service.d.ts +3 -3
  41. package/core/providers/local-storage/local-storage.service.d.ts +1 -0
  42. package/core/providers/modal/modal.service.d.ts +41 -12
  43. package/core/providers/nav-builder/nav-builder-types.d.ts +19 -1
  44. package/core/providers/nav-builder/nav-builder.service.d.ts +14 -10
  45. package/core/providers/notification/notification.service.d.ts +37 -0
  46. package/core/public_api.d.ts +8 -0
  47. package/core/shared/components/action-bar-items/action-bar-items.component.d.ts +2 -1
  48. package/core/shared/components/asset-picker-dialog/asset-picker-dialog.component.d.ts +18 -0
  49. package/core/shared/components/asset-preview/asset-preview.component.d.ts +0 -1
  50. package/core/shared/components/channel-assignment-control/channel-assignment-control.component.d.ts +2 -0
  51. package/core/shared/components/chip/chip.component.d.ts +20 -0
  52. package/core/shared/components/currency-input/currency-input.component.d.ts +11 -0
  53. package/core/shared/components/custom-detail-component-host/custom-detail-component-host.component.d.ts +17 -0
  54. package/core/shared/components/data-table/data-table.component.d.ts +59 -0
  55. package/core/shared/components/datetime-picker/datetime-picker.component.d.ts +17 -0
  56. package/core/shared/components/dropdown/dropdown.component.d.ts +25 -0
  57. package/core/shared/components/extension-host/extension-host.service.d.ts +3 -1
  58. package/core/shared/components/facet-value-selector/facet-value-selector.component.d.ts +22 -0
  59. package/core/shared/components/modal-dialog/modal-dialog.component.d.ts +1 -1
  60. package/core/shared/components/object-tree/object-tree.component.d.ts +8 -0
  61. package/core/shared/components/order-state-label/order-state-label.component.d.ts +10 -0
  62. package/core/shared/components/product-selector/product-selector.component.d.ts +12 -0
  63. package/core/shared/components/rich-text-editor/rich-text-editor.component.d.ts +12 -1
  64. package/core/shared/components/tabbed-custom-fields/tabbed-custom-fields.component.d.ts +21 -0
  65. package/core/shared/components/ui-extension-point/ui-extension-point.component.d.ts +15 -0
  66. package/core/shared/directives/if-multichannel.directive.d.ts +14 -0
  67. package/core/shared/directives/if-permissions.directive.d.ts +3 -0
  68. package/core/shared/dynamic-form-inputs/boolean-form-input/boolean-form-input.component.d.ts +7 -0
  69. package/core/shared/dynamic-form-inputs/code-editor-form-input/json-editor-form-input.component.d.ts +32 -0
  70. package/core/shared/dynamic-form-inputs/currency-form-input/currency-form-input.component.d.ts +7 -0
  71. package/core/shared/dynamic-form-inputs/customer-group-form-input/customer-group-form-input.component.d.ts +8 -0
  72. package/core/shared/dynamic-form-inputs/date-form-input/date-form-input.component.d.ts +10 -0
  73. package/core/shared/dynamic-form-inputs/facet-value-form-input/facet-value-form-input.component.d.ts +8 -0
  74. package/core/shared/dynamic-form-inputs/number-form-input/number-form-input.component.d.ts +12 -0
  75. package/core/shared/dynamic-form-inputs/password-form-input/password-form-input.component.d.ts +7 -0
  76. package/core/shared/dynamic-form-inputs/product-selector-form-input/product-selector-form-input.component.d.ts +8 -0
  77. package/core/shared/dynamic-form-inputs/register-dynamic-input-components.d.ts +40 -3
  78. package/core/shared/dynamic-form-inputs/relation-form-input/relation-form-input.component.d.ts +9 -0
  79. package/core/shared/dynamic-form-inputs/rich-text-form-input/rich-text-form-input.component.d.ts +16 -0
  80. package/core/shared/dynamic-form-inputs/select-form-input/select-form-input.component.d.ts +9 -0
  81. package/core/shared/dynamic-form-inputs/text-form-input/text-form-input.component.d.ts +12 -3
  82. package/core/shared/dynamic-form-inputs/textarea-form-input/textarea-form-input.component.d.ts +7 -0
  83. package/core/shared/pipes/asset-preview.pipe.d.ts +14 -0
  84. package/core/shared/pipes/duration.pipe.d.ts +8 -0
  85. package/core/shared/pipes/file-size.pipe.d.ts +8 -0
  86. package/core/shared/pipes/has-permission.pipe.d.ts +3 -1
  87. package/core/shared/pipes/locale-currency-name.pipe.d.ts +8 -0
  88. package/core/shared/pipes/locale-currency.pipe.d.ts +12 -0
  89. package/core/shared/pipes/locale-date.pipe.d.ts +7 -0
  90. package/core/shared/pipes/locale-language-name.pipe.d.ts +9 -1
  91. package/core/shared/pipes/locale-region-name.pipe.d.ts +18 -0
  92. package/core/shared/pipes/time-ago.pipe.d.ts +8 -0
  93. package/core/vendure-admin-ui-core.metadata.json +1 -1
  94. package/customer/components/customer-detail/customer-detail.component.d.ts +2 -3
  95. package/customer/components/customer-group-detail-dialog/customer-group-detail-dialog.component.d.ts +14 -3
  96. package/customer/vendure-admin-ui-customer.metadata.json +1 -1
  97. package/esm2015/catalog/catalog.module.js +29 -28
  98. package/esm2015/catalog/components/asset-detail/asset-detail.component.js +2 -10
  99. package/esm2015/catalog/components/collection-detail/collection-detail.component.js +3 -16
  100. package/esm2015/catalog/components/collection-list/collection-list.component.js +23 -5
  101. package/esm2015/catalog/components/collection-tree/collection-tree-node.component.js +1 -1
  102. package/esm2015/catalog/components/collection-tree/collection-tree.component.js +1 -1
  103. package/esm2015/catalog/components/facet-detail/facet-detail.component.js +3 -15
  104. package/esm2015/catalog/components/facet-list/facet-list.component.js +24 -9
  105. package/esm2015/catalog/components/product-assets/product-assets.component.js +2 -2
  106. package/esm2015/catalog/components/product-detail/product-detail.component.js +5 -27
  107. package/esm2015/catalog/components/product-variants-list/product-variants-list.component.js +3 -3
  108. package/esm2015/catalog/components/update-product-option-dialog/update-product-option-dialog.component.js +2 -2
  109. package/esm2015/catalog/components/variant-price-detail/variant-price-detail.component.js +2 -2
  110. package/esm2015/core/app.component.js +20 -2
  111. package/esm2015/core/common/base-detail.component.js +53 -1
  112. package/esm2015/core/common/base-entity-resolver.js +29 -2
  113. package/esm2015/core/common/base-list.component.js +76 -2
  114. package/esm2015/core/common/component-registry-types.js +1 -1
  115. package/esm2015/core/common/generated-types.js +1 -1
  116. package/esm2015/core/common/introspection-result.js +249 -183
  117. package/esm2015/core/common/utilities/get-default-ui-language.js +9 -1
  118. package/esm2015/core/common/version.js +2 -2
  119. package/esm2015/core/components/app-shell/app-shell.component.js +12 -7
  120. package/esm2015/core/components/main-nav/main-nav.component.js +2 -2
  121. package/esm2015/core/components/ui-language-switcher-dialog/ui-language-switcher-dialog.component.js +281 -5
  122. package/esm2015/core/components/user-menu/user-menu.component.js +3 -3
  123. package/esm2015/core/data/client-state/client-defaults.js +5 -2
  124. package/esm2015/core/data/client-state/client-resolvers.js +32 -33
  125. package/esm2015/core/data/definitions/client-definitions.js +18 -3
  126. package/esm2015/core/data/definitions/customer-definitions.js +21 -25
  127. package/esm2015/core/data/definitions/settings-definitions.js +50 -5
  128. package/esm2015/core/data/providers/client-data.service.js +15 -4
  129. package/esm2015/core/data/providers/data.service.js +44 -2
  130. package/esm2015/core/data/providers/settings-data.service.js +12 -4
  131. package/esm2015/core/data/query-result.js +14 -4
  132. package/esm2015/core/providers/custom-detail-component/custom-detail-component-types.js +2 -0
  133. package/esm2015/core/providers/custom-detail-component/custom-detail-component.service.js +44 -0
  134. package/esm2015/core/providers/custom-field-component/custom-field-component.service.js +6 -6
  135. package/esm2015/core/providers/local-storage/local-storage.service.js +1 -1
  136. package/esm2015/core/providers/modal/modal.service.js +20 -12
  137. package/esm2015/core/providers/nav-builder/nav-builder-types.js +1 -1
  138. package/esm2015/core/providers/nav-builder/nav-builder.service.js +15 -11
  139. package/esm2015/core/providers/notification/notification.service.js +24 -1
  140. package/esm2015/core/public_api.js +9 -1
  141. package/esm2015/core/shared/components/action-bar/action-bar.component.js +1 -1
  142. package/esm2015/core/shared/components/action-bar-items/action-bar-items.component.js +3 -3
  143. package/esm2015/core/shared/components/address-form/address-form.component.js +2 -2
  144. package/esm2015/core/shared/components/asset-picker-dialog/asset-picker-dialog.component.js +19 -1
  145. package/esm2015/core/shared/components/asset-preview/asset-preview.component.js +2 -6
  146. package/esm2015/core/shared/components/channel-assignment-control/channel-assignment-control.component.js +36 -22
  147. package/esm2015/core/shared/components/chip/chip.component.js +12 -1
  148. package/esm2015/core/shared/components/currency-input/currency-input.component.js +12 -1
  149. package/esm2015/core/shared/components/custom-detail-component-host/custom-detail-component-host.component.js +44 -0
  150. package/esm2015/core/shared/components/data-table/data-table.component.js +60 -1
  151. package/esm2015/core/shared/components/datetime-picker/datetime-picker.component.js +17 -1
  152. package/esm2015/core/shared/components/dropdown/dropdown.component.js +26 -1
  153. package/esm2015/core/shared/components/extension-host/extension-host.component.js +3 -3
  154. package/esm2015/core/shared/components/extension-host/extension-host.service.js +16 -2
  155. package/esm2015/core/shared/components/facet-value-selector/facet-value-selector.component.js +23 -1
  156. package/esm2015/core/shared/components/modal-dialog/modal-dialog.component.js +2 -2
  157. package/esm2015/core/shared/components/object-tree/object-tree.component.js +11 -3
  158. package/esm2015/core/shared/components/order-state-label/order-state-label.component.js +11 -1
  159. package/esm2015/core/shared/components/product-selector/product-selector.component.js +13 -1
  160. package/esm2015/core/shared/components/rich-text-editor/rich-text-editor.component.js +14 -3
  161. package/esm2015/core/shared/components/tabbed-custom-fields/tabbed-custom-fields.component.js +48 -0
  162. package/esm2015/core/shared/components/title-input/title-input.component.js +1 -1
  163. package/esm2015/core/shared/components/ui-extension-point/ui-extension-point.component.js +31 -0
  164. package/esm2015/core/shared/directives/if-multichannel.directive.js +15 -1
  165. package/esm2015/core/shared/directives/if-permissions.directive.js +4 -1
  166. package/esm2015/core/shared/dynamic-form-inputs/boolean-form-input/boolean-form-input.component.js +8 -1
  167. package/esm2015/core/shared/dynamic-form-inputs/code-editor-form-input/json-editor-form-input.component.js +125 -0
  168. package/esm2015/core/shared/dynamic-form-inputs/currency-form-input/currency-form-input.component.js +8 -1
  169. package/esm2015/core/shared/dynamic-form-inputs/customer-group-form-input/customer-group-form-input.component.js +9 -1
  170. package/esm2015/core/shared/dynamic-form-inputs/date-form-input/date-form-input.component.js +21 -2
  171. package/esm2015/core/shared/dynamic-form-inputs/dynamic-form-input/dynamic-form-input.component.js +2 -1
  172. package/esm2015/core/shared/dynamic-form-inputs/facet-value-form-input/facet-value-form-input.component.js +9 -1
  173. package/esm2015/core/shared/dynamic-form-inputs/number-form-input/number-form-input.component.js +29 -2
  174. package/esm2015/core/shared/dynamic-form-inputs/password-form-input/password-form-input.component.js +8 -1
  175. package/esm2015/core/shared/dynamic-form-inputs/product-selector-form-input/product-selector-form-input.component.js +9 -1
  176. package/esm2015/core/shared/dynamic-form-inputs/register-dynamic-input-components.js +42 -2
  177. package/esm2015/core/shared/dynamic-form-inputs/relation-form-input/relation-form-input.component.js +10 -1
  178. package/esm2015/core/shared/dynamic-form-inputs/rich-text-form-input/rich-text-form-input.component.js +20 -0
  179. package/esm2015/core/shared/dynamic-form-inputs/select-form-input/select-form-input.component.js +14 -2
  180. package/esm2015/core/shared/dynamic-form-inputs/text-form-input/text-form-input.component.js +17 -2
  181. package/esm2015/core/shared/dynamic-form-inputs/textarea-form-input/textarea-form-input.component.js +8 -1
  182. package/esm2015/core/shared/pipes/asset-preview.pipe.js +15 -1
  183. package/esm2015/core/shared/pipes/duration.pipe.js +9 -1
  184. package/esm2015/core/shared/pipes/file-size.pipe.js +9 -1
  185. package/esm2015/core/shared/pipes/has-permission.pipe.js +4 -2
  186. package/esm2015/core/shared/pipes/locale-base.pipe.js +7 -4
  187. package/esm2015/core/shared/pipes/locale-currency-name.pipe.js +9 -1
  188. package/esm2015/core/shared/pipes/locale-currency.pipe.js +13 -1
  189. package/esm2015/core/shared/pipes/locale-date.pipe.js +8 -1
  190. package/esm2015/core/shared/pipes/locale-language-name.pipe.js +10 -2
  191. package/esm2015/core/shared/pipes/locale-region-name.pipe.js +48 -0
  192. package/esm2015/core/shared/pipes/time-ago.pipe.js +9 -1
  193. package/esm2015/core/shared/shared.module.js +13 -1
  194. package/esm2015/customer/components/customer-detail/customer-detail.component.js +5 -16
  195. package/esm2015/customer/components/customer-group-detail-dialog/customer-group-detail-dialog.component.js +32 -3
  196. package/esm2015/customer/components/customer-group-list/customer-group-list.component.js +22 -18
  197. package/esm2015/marketing/components/promotion-detail/promotion-detail.component.js +9 -2
  198. package/esm2015/order/components/order-detail/order-detail.component.js +11 -3
  199. package/esm2015/settings/components/admin-detail/admin-detail.component.js +3 -14
  200. package/esm2015/settings/components/channel-detail/channel-detail.component.js +3 -14
  201. package/esm2015/settings/components/country-detail/country-detail.component.js +11 -3
  202. package/esm2015/settings/components/country-list/country-list.component.js +19 -7
  203. package/esm2015/settings/components/global-settings/global-settings.component.js +3 -14
  204. package/esm2015/settings/components/payment-method-detail/payment-method-detail.component.js +9 -2
  205. package/esm2015/settings/components/profile/profile.component.js +3 -14
  206. package/esm2015/settings/components/shipping-method-detail/shipping-method-detail.component.js +3 -16
  207. package/esm2015/settings/components/tax-category-detail/tax-category-detail.component.js +13 -3
  208. package/esm2015/settings/components/tax-rate-detail/tax-rate-detail.component.js +9 -2
  209. package/esm2015/settings/components/zone-detail-dialog/zone-detail-dialog.component.js +32 -3
  210. package/esm2015/settings/components/zone-list/zone-list.component.js +19 -8
  211. package/fesm2015/vendure-admin-ui-catalog.js +83 -102
  212. package/fesm2015/vendure-admin-ui-catalog.js.map +1 -1
  213. package/fesm2015/vendure-admin-ui-core.js +1900 -362
  214. package/fesm2015/vendure-admin-ui-core.js.map +1 -1
  215. package/fesm2015/vendure-admin-ui-customer.js +54 -34
  216. package/fesm2015/vendure-admin-ui-customer.js.map +1 -1
  217. package/fesm2015/vendure-admin-ui-marketing.js +8 -1
  218. package/fesm2015/vendure-admin-ui-marketing.js.map +1 -1
  219. package/fesm2015/vendure-admin-ui-order.js +10 -2
  220. package/fesm2015/vendure-admin-ui-order.js.map +1 -1
  221. package/fesm2015/vendure-admin-ui-settings.js +110 -85
  222. package/fesm2015/vendure-admin-ui-settings.js.map +1 -1
  223. package/marketing/components/promotion-detail/promotion-detail.component.d.ts +2 -1
  224. package/marketing/vendure-admin-ui-marketing.metadata.json +1 -1
  225. package/order/vendure-admin-ui-order.metadata.json +1 -1
  226. package/package.json +6 -5
  227. package/settings/components/admin-detail/admin-detail.component.d.ts +0 -1
  228. package/settings/components/channel-detail/channel-detail.component.d.ts +0 -1
  229. package/settings/components/country-detail/country-detail.component.d.ts +2 -1
  230. package/settings/components/country-list/country-list.component.d.ts +7 -2
  231. package/settings/components/global-settings/global-settings.component.d.ts +0 -1
  232. package/settings/components/payment-method-detail/payment-method-detail.component.d.ts +2 -1
  233. package/settings/components/profile/profile.component.d.ts +0 -1
  234. package/settings/components/shipping-method-detail/shipping-method-detail.component.d.ts +0 -1
  235. package/settings/components/tax-category-detail/tax-category-detail.component.d.ts +2 -1
  236. package/settings/components/tax-rate-detail/tax-rate-detail.component.d.ts +2 -1
  237. package/settings/components/zone-detail-dialog/zone-detail-dialog.component.d.ts +14 -3
  238. package/settings/components/zone-list/zone-list.component.d.ts +6 -2
  239. package/settings/vendure-admin-ui-settings.metadata.json +1 -1
  240. package/static/i18n-messages/cs.json +7 -0
  241. package/static/i18n-messages/de.json +7 -0
  242. package/static/i18n-messages/en.json +7 -0
  243. package/static/i18n-messages/es.json +8 -1
  244. package/static/i18n-messages/fr.json +7 -0
  245. package/static/i18n-messages/it.json +7 -0
  246. package/static/i18n-messages/pl.json +7 -0
  247. package/static/i18n-messages/pt_BR.json +7 -0
  248. package/static/i18n-messages/pt_PT.json +7 -0
  249. package/static/i18n-messages/ru.json +7 -0
  250. package/static/i18n-messages/uk.json +7 -0
  251. package/static/i18n-messages/zh_Hans.json +7 -0
  252. package/static/i18n-messages/zh_Hant.json +7 -0
  253. package/static/styles/theme/dark.scss +9 -0
  254. package/static/styles/theme/default.scss +8 -0
  255. package/static/theme.min.css +1 -1
@@ -4,8 +4,12 @@ import { merge, Subject } from 'rxjs';
4
4
  import { distinctUntilChanged, filter, finalize, map, skip, take, takeUntil, tap } from 'rxjs/operators';
5
5
  import { GET_USER_STATUS } from './definitions/client-definitions';
6
6
  /**
7
+ * @description
7
8
  * This class wraps the Apollo Angular QueryRef object and exposes some getters
8
9
  * for convenience.
10
+ *
11
+ * @docsCategory providers
12
+ * @docsPage DataService
9
13
  */
10
14
  export class QueryResult {
11
15
  constructor(queryRef, apollo) {
@@ -15,11 +19,13 @@ export class QueryResult {
15
19
  this.valueChanges = queryRef.valueChanges;
16
20
  }
17
21
  /**
18
- * Refetch this query whenever the active Channel changes.
22
+ * @description
23
+ * Re-fetch this query whenever the active Channel changes.
19
24
  */
20
25
  refetchOnChannelChange() {
21
- const userStatus$ = this.apollo.watchQuery({ query: GET_USER_STATUS })
22
- .valueChanges;
26
+ const userStatus$ = this.apollo.watchQuery({
27
+ query: GET_USER_STATUS,
28
+ }).valueChanges;
23
29
  const activeChannelId$ = userStatus$.pipe(map(data => data.data.userStatus.activeChannelId), filter(notNullOrUndefined), distinctUntilChanged(), skip(1), takeUntil(this.completed$));
24
30
  const loggedOut$ = userStatus$.pipe(map(data => data.data.userStatus.isLoggedIn), distinctUntilChanged(), skip(1), filter(isLoggedIn => !isLoggedIn), takeUntil(this.completed$));
25
31
  this.valueChanges = merge(activeChannelId$, this.queryRef.valueChanges).pipe(tap(val => {
@@ -31,6 +37,7 @@ export class QueryResult {
31
37
  return this;
32
38
  }
33
39
  /**
40
+ * @description
34
41
  * Returns an Observable which emits a single result and then completes.
35
42
  */
36
43
  get single$() {
@@ -40,6 +47,7 @@ export class QueryResult {
40
47
  }));
41
48
  }
42
49
  /**
50
+ * @description
43
51
  * Returns an Observable which emits until unsubscribed.
44
52
  */
45
53
  get stream$() {
@@ -52,16 +60,18 @@ export class QueryResult {
52
60
  return this.queryRef;
53
61
  }
54
62
  /**
63
+ * @description
55
64
  * Returns a single-result Observable after applying the map function.
56
65
  */
57
66
  mapSingle(mapFn) {
58
67
  return this.single$.pipe(map(mapFn));
59
68
  }
60
69
  /**
70
+ * @description
61
71
  * Returns a multiple-result Observable after applying the map function.
62
72
  */
63
73
  mapStream(mapFn) {
64
74
  return this.stream$.pipe(map(mapFn));
65
75
  }
66
76
  }
67
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktcmVzdWx0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9jb3JlL3NyYy9kYXRhL3F1ZXJ5LXJlc3VsdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRXRFLE9BQU8sRUFBRSxLQUFLLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUl6RyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFFbkU7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLFdBQVc7SUFDcEIsWUFBb0IsUUFBd0IsRUFBVSxNQUFjO1FBQWhELGFBQVEsR0FBUixRQUFRLENBQWdCO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUlwRSxlQUFVLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUh2QixJQUFJLENBQUMsWUFBWSxHQUFHLFFBQVEsQ0FBQyxZQUFZLENBQUM7SUFDOUMsQ0FBQztJQUtEOztPQUVHO0lBQ0gsc0JBQXNCO1FBQ2xCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFzQixFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUUsQ0FBQzthQUN0RixZQUFZLENBQUM7UUFDbEIsTUFBTSxnQkFBZ0IsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUNyQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUMsRUFDakQsTUFBTSxDQUFDLGtCQUFr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SUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDekMsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXBvbGxvUXVlcnlSZXN1bHQsIE5ldHdvcmtTdGF0dXMgfSBmcm9tICdAYXBvbGxvL2NsaWVudC9jb3JlJztcclxuaW1wb3J0IHsgbm90TnVsbE9yVW5kZWZpbmVkIH0gZnJvbSAnQHZlbmR1cmUvY29tbW9uL2xpYi9zaGFyZWQtdXRpbHMnO1xyXG5pbXBvcnQgeyBBcG9sbG8sIFF1ZXJ5UmVmIH0gZnJvbSAnYXBvbGxvLWFuZ3VsYXInO1xyXG5pbXBvcnQgeyBtZXJnZSwgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZmlsdGVyLCBmaW5hbGl6ZSwgbWFwLCBza2lwLCB0YWtlLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmltcG9ydCB7IEdldFVzZXJTdGF0dXMgfSBmcm9tICcuLi9jb21tb24vZ2VuZXJhdGVkLXR5cGVzJztcclxuXHJcbmltcG9ydCB7IEdFVF9VU0VSX1NUQVRVUyB9IGZyb20gJy4vZGVmaW5pdGlvbnMvY2xpZW50LWRlZmluaXRpb25zJztcclxuXHJcbi8qKlxyXG4gKiBUaGlzIGNsYXNzIHdyYXBzIHRoZSBBcG9sbG8gQW5ndWxhciBRdWVyeVJlZiBvYmplY3QgYW5kIGV4cG9zZXMgc29tZSBnZXR0ZXJzXHJcbiAqIGZvciBjb252ZW5pZW5jZS5cclxuICovXHJcbmV4cG9ydCBjbGFzcyBRdWVyeVJlc3VsdDxULCBWID0gUmVjb3JkPHN0cmluZywgYW55Pj4ge1xyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBxdWVyeVJlZjogUXVlcnlSZWY8VCwgVj4sIHByaXZhdGUgYXBvbGxvOiBBcG9sbG8pIHtcclxuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlcyA9IHF1ZXJ5UmVmLnZhbHVlQ2hhbmdlcztcclxuICAgIH1cclxuXHJcbiAgICBjb21wbGV0ZWQkID0gbmV3IFN1YmplY3QoKTtcclxuICAgIHByaXZhdGUgdmFsdWVDaGFuZ2VzOiBPYnNlcnZhYmxlPEFwb2xsb1F1ZXJ5UmVzdWx0PFQ+PjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFJlZmV0Y2ggdGhpcyBxdWVyeSB3aGVuZXZlciB0aGUgYWN0aXZlIENoYW5uZWwgY2hhbmdlcy5cclxuICAgICAqL1xyXG4gICAgcmVmZXRjaE9uQ2hhbm5lbENoYW5nZSgpIHtcclxuICAgICAgICBjb25zdCB1c2VyU3RhdHVzJCA9IHRoaXMuYXBvbGxvLndhdGNoUXVlcnk8R2V0VXNlclN0YXR1cy5RdWVyeT4oeyBxdWVyeTogR0VUX1VTRVJfU1RBVFVTIH0pXHJcbiAgICAgICAgICAgIC52YWx1ZUNoYW5nZXM7XHJcbiAgICAgICAgY29uc3QgYWN0aXZlQ2hhbm5lbElkJCA9IHVzZXJTdGF0dXMkLnBpcGUoXHJcbiAgICAgICAgICAgIG1hcChkYXRhID0+IGRhdGEuZGF0YS51c2VyU3RhdHVzLmFjdGl2ZUNoYW5uZWxJZCksXHJcbiAgICAgICAgICAgIGZpbHRlcihub3ROdWxsT3JVbmRlZmluZWQpLFxyXG4gICAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxyXG4gICAgICAgICAgICBza2lwKDEpLFxyXG4gICAgICAgICAgICB0YWtlVW50aWwodGhpcy5jb21wbGV0ZWQkKSxcclxuICAgICAgICApO1xyXG4gICAgICAgIGNvbnN0IGxvZ2dlZE91dCQgPSB1c2VyU3RhdHVzJC5waXBlKFxyXG4gICAgICAgICAgICBtYXAoZGF0YSA9PiBkYXRhLmRhdGEudXNlclN0YXR1cy5pc0xvZ2dlZEluKSxcclxuICAgICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcclxuICAgICAgICAgICAgc2tpcCgxKSxcclxuICAgICAgICAgICAgZmlsdGVyKGlzTG9nZ2VkSW4gPT4gIWlzTG9nZ2VkSW4pLFxyXG4gICAgICAgICAgICB0YWtlVW50aWwodGhpcy5jb21wbGV0ZWQkKSxcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlcyA9IG1lcmdlKGFjdGl2ZUNoYW5uZWxJZCQsIHRoaXMucXVlcnlSZWYudmFsdWVDaGFuZ2VzKS5waXBlKFxyXG4gICAgICAgICAgICB0YXAodmFsID0+IHtcclxuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsID09PSAnc3RyaW5nJykge1xyXG4gICAgICAgICAgICAgICAgICAgIG5ldyBQcm9taXNlKHJlc29sdmUgPT4gc2V0VGltZW91dChyZXNvbHZlLCA1MCkpLnRoZW4oKCkgPT4gdGhpcy5xdWVyeVJlZi5yZWZldGNoKCkpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgZmlsdGVyPGFueT4odmFsID0+IHR5cGVvZiB2YWwgIT09ICdzdHJpbmcnKSxcclxuICAgICAgICAgICAgdGFrZVVudGlsKGxvZ2dlZE91dCQpLFxyXG4gICAgICAgICAgICB0YWtlVW50aWwodGhpcy5jb21wbGV0ZWQkKSxcclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMucXVlcnlSZWYudmFsdWVDaGFuZ2VzID0gdGhpcy52YWx1ZUNoYW5nZXM7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXR1cm5zIGFuIE9ic2VydmFibGUgd2hpY2ggZW1pdHMgYSBzaW5nbGUgcmVzdWx0IGFuZCB0aGVuIGNvbXBsZXRlcy5cclxuICAgICAqL1xyXG4gICAgZ2V0IHNpbmdsZSQoKTogT2JzZXJ2YWJsZTxUPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsdWVDaGFuZ2VzLnBpcGUoXHJcbiAgICAgICAgICAgIGZpbHRlcihyZXN1bHQgPT4gcmVzdWx0Lm5ldHdvcmtTdGF0dXMgPT09IE5ldHdvcmtTdGF0dXMucmVhZHkpLFxyXG4gICAgICAgICAgICB0YWtlKDEpLFxyXG4gICAgICAgICAgICBtYXAocmVzdWx0ID0+IHJlc3VsdC5kYXRhKSxcclxuICAgICAgICAgICAgZmluYWxpemUoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jb21wbGV0ZWQkLm5leHQoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuY29tcGxldGVkJC5jb21wbGV0ZSgpO1xyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0dXJucyBhbiBPYnNlcnZhYmxlIHdoaWNoIGVtaXRzIHVudGlsIHVuc3Vic2NyaWJlZC5cclxuICAgICAqL1xyXG4gICAgZ2V0IHN0cmVhbSQoKTogT2JzZXJ2YWJsZTxUPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsdWVDaGFuZ2VzLnBpcGUoXHJcbiAgICAgICAgICAgIGZpbHRlcihyZXN1bHQgPT4gcmVzdWx0Lm5ldHdvcmtTdGF0dXMgPT09IE5ldHdvcmtTdGF0dXMucmVhZHkpLFxyXG4gICAgICAgICAgICBtYXAocmVzdWx0ID0+IHJlc3VsdC5kYXRhKSxcclxuICAgICAgICAgICAgZmluYWxpemUoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jb21wbGV0ZWQkLm5leHQoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuY29tcGxldGVkJC5jb21wbGV0ZSgpO1xyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCByZWYoKTogUXVlcnlSZWY8VCwgVj4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnF1ZXJ5UmVmO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0dXJucyBhIHNpbmdsZS1yZXN1bHQgT2JzZXJ2YWJsZSBhZnRlciBhcHBseWluZyB0aGUgbWFwIGZ1bmN0aW9uLlxyXG4gICAgICovXHJcbiAgICBtYXBTaW5nbGU8Uj4obWFwRm46IChpdGVtOiBUKSA9PiBSKTogT2JzZXJ2YWJsZTxSPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2luZ2xlJC5waXBlKG1hcChtYXBGbikpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0dXJucyBhIG11bHRpcGxlLXJlc3VsdCBPYnNlcnZhYmxlIGFmdGVyIGFwcGx5aW5nIHRoZSBtYXAgZnVuY3Rpb24uXHJcbiAgICAgKi9cclxuICAgIG1hcFN0cmVhbTxSPihtYXBGbjogKGl0ZW06IFQpID0+IFIpOiBPYnNlcnZhYmxlPFI+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5zdHJlYW0kLnBpcGUobWFwKG1hcEZuKSk7XHJcbiAgICB9XHJcbn1cclxuIl19
77
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktcmVzdWx0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9jb3JlL3NyYy9kYXRhL3F1ZXJ5LXJlc3VsdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRXRFLE9BQU8sRUFBRSxLQUFLLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUl6RyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFFbkU7Ozs7Ozs7R0FPRztBQUNILE1BQU0sT0FBTyxXQUFXO0lBQ3BCLFlBQW9CLFFBQXdCLEVBQVUsTUFBYztRQUFoRCxhQUFRLEdBQVIsUUFBUSxDQUFnQjtRQUFVLFdBQU0sR0FBTixNQUFNLENBQVE7UUFJcEUsZUFBVSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFIdkIsSUFBSSxDQUFDLFlBQVksR0FBRyxRQUFRLENBQUMsWUFBWSxDQUFDO0lBQzlDLENBQUM7SUFLRDs7O09BR0c7SUFDSCxzQkFBc0I7UUFDbEIsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQXNCO1lBQzVELEtBQUssRUFBRSxlQUFlO1NBQ3pCLENBQUMsQ0FBQyxZQUFZLENBQUM7UUFDaEIsTUFBTSxnQkFBZ0IsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUNyQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUMsRUFDakQsTUFBTSxDQUFD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QUM5QixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFwb2xsb1F1ZXJ5UmVzdWx0LCBOZXR3b3JrU3RhdHVzIH0gZnJvbSAnQGFwb2xsby9jbGllbnQvY29yZSc7XHJcbmltcG9ydCB7IG5vdE51bGxPclVuZGVmaW5lZCB9IGZyb20gJ0B2ZW5kdXJlL2NvbW1vbi9saWIvc2hhcmVkLXV0aWxzJztcclxuaW1wb3J0IHsgQXBvbGxvLCBRdWVyeVJlZiB9IGZyb20gJ2Fwb2xsby1hbmd1bGFyJztcclxuaW1wb3J0IHsgbWVyZ2UsIE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgZmluYWxpemUsIG1hcCwgc2tpcCwgdGFrZSwgdGFrZVVudGlsLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQgeyBHZXRVc2VyU3RhdHVzIH0gZnJvbSAnLi4vY29tbW9uL2dlbmVyYXRlZC10eXBlcyc7XHJcblxyXG5pbXBvcnQgeyBHRVRfVVNFUl9TVEFUVVMgfSBmcm9tICcuL2RlZmluaXRpb25zL2NsaWVudC1kZWZpbml0aW9ucyc7XHJcblxyXG4vKipcclxuICogQGRlc2NyaXB0aW9uXHJcbiAqIFRoaXMgY2xhc3Mgd3JhcHMgdGhlIEFwb2xsbyBBbmd1bGFyIFF1ZXJ5UmVmIG9iamVjdCBhbmQgZXhwb3NlcyBzb21lIGdldHRlcnNcclxuICogZm9yIGNvbnZlbmllbmNlLlxyXG4gKlxyXG4gKiBAZG9jc0NhdGVnb3J5IHByb3ZpZGVyc1xyXG4gKiBAZG9jc1BhZ2UgRGF0YVNlcnZpY2VcclxuICovXHJcbmV4cG9ydCBjbGFzcyBRdWVyeVJlc3VsdDxULCBWID0gUmVjb3JkPHN0cmluZywgYW55Pj4ge1xyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBxdWVyeVJlZjogUXVlcnlSZWY8VCwgVj4sIHByaXZhdGUgYXBvbGxvOiBBcG9sbG8pIHtcclxuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlcyA9IHF1ZXJ5UmVmLnZhbHVlQ2hhbmdlcztcclxuICAgIH1cclxuXHJcbiAgICBjb21wbGV0ZWQkID0gbmV3IFN1YmplY3QoKTtcclxuICAgIHByaXZhdGUgdmFsdWVDaGFuZ2VzOiBPYnNlcnZhYmxlPEFwb2xsb1F1ZXJ5UmVzdWx0PFQ+PjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEBkZXNjcmlwdGlvblxyXG4gICAgICogUmUtZmV0Y2ggdGhpcyBxdWVyeSB3aGVuZXZlciB0aGUgYWN0aXZlIENoYW5uZWwgY2hhbmdlcy5cclxuICAgICAqL1xyXG4gICAgcmVmZXRjaE9uQ2hhbm5lbENoYW5nZSgpOiBRdWVyeVJlc3VsdDxULCBWPiB7XHJcbiAgICAgICAgY29uc3QgdXNlclN0YXR1cyQgPSB0aGlzLmFwb2xsby53YXRjaFF1ZXJ5PEdldFVzZXJTdGF0dXMuUXVlcnk+KHtcclxuICAgICAgICAgICAgcXVlcnk6IEdFVF9VU0VSX1NUQVRVUyxcclxuICAgICAgICB9KS52YWx1ZUNoYW5nZXM7XHJcbiAgICAgICAgY29uc3QgYWN0aXZlQ2hhbm5lbElkJCA9IHVzZXJTdGF0dXMkLnBpcGUoXHJcbiAgICAgICAgICAgIG1hcChkYXRhID0+IGRhdGEuZGF0YS51c2VyU3RhdHVzLmFjdGl2ZUNoYW5uZWxJZCksXHJcbiAgICAgICAgICAgIGZpbHRlcihub3ROdWxsT3JVbmRlZmluZWQpLFxyXG4gICAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxyXG4gICAgICAgICAgICBza2lwKDEpLFxyXG4gICAgICAgICAgICB0YWtlVW50aWwodGhpcy5jb21wbGV0ZWQkKSxcclxuICAgICAgICApO1xyXG4gICAgICAgIGNvbnN0IGxvZ2dlZE91dCQgPSB1c2VyU3RhdHVzJC5waXBlKFxyXG4gICAgICAgICAgICBtYXAoZGF0YSA9PiBkYXRhLmRhdGEudXNlclN0YXR1cy5pc0xvZ2dlZEluKSxcclxuICAgICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcclxuICAgICAgICAgICAgc2tpcCgxKSxcclxuICAgICAgICAgICAgZmlsdGVyKGlzTG9nZ2VkSW4gPT4gIWlzTG9nZ2VkSW4pLFxyXG4gICAgICAgICAgICB0YWtlVW50aWwodGhpcy5jb21wbGV0ZWQkKSxcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlcyA9IG1lcmdlKGFjdGl2ZUNoYW5uZWxJZCQsIHRoaXMucXVlcnlSZWYudmFsdWVDaGFuZ2VzKS5waXBlKFxyXG4gICAgICAgICAgICB0YXAodmFsID0+IHtcclxuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsID09PSAnc3RyaW5nJykge1xyXG4gICAgICAgICAgICAgICAgICAgIG5ldyBQcm9taXNlKHJlc29sdmUgPT4gc2V0VGltZW91dChyZXNvbHZlLCA1MCkpLnRoZW4oKCkgPT4gdGhpcy5xdWVyeVJlZi5yZWZldGNoKCkpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgZmlsdGVyPGFueT4odmFsID0+IHR5cGVvZiB2YWwgIT09ICdzdHJpbmcnKSxcclxuICAgICAgICAgICAgdGFrZVVudGlsKGxvZ2dlZE91dCQpLFxyXG4gICAgICAgICAgICB0YWtlVW50aWwodGhpcy5jb21wbGV0ZWQkKSxcclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMucXVlcnlSZWYudmFsdWVDaGFuZ2VzID0gdGhpcy52YWx1ZUNoYW5nZXM7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAZGVzY3JpcHRpb25cclxuICAgICAqIFJldHVybnMgYW4gT2JzZXJ2YWJsZSB3aGljaCBlbWl0cyBhIHNpbmdsZSByZXN1bHQgYW5kIHRoZW4gY29tcGxldGVzLlxyXG4gICAgICovXHJcbiAgICBnZXQgc2luZ2xlJCgpOiBPYnNlcnZhYmxlPFQ+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy52YWx1ZUNoYW5nZXMucGlwZShcclxuICAgICAgICAgICAgZmlsdGVyKHJlc3VsdCA9PiByZXN1bHQubmV0d29ya1N0YXR1cyA9PT0gTmV0d29ya1N0YXR1cy5yZWFkeSksXHJcbiAgICAgICAgICAgIHRha2UoMSksXHJcbiAgICAgICAgICAgIG1hcChyZXN1bHQgPT4gcmVzdWx0LmRhdGEpLFxyXG4gICAgICAgICAgICBmaW5hbGl6ZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbXBsZXRlZCQubmV4dCgpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jb21wbGV0ZWQkLmNvbXBsZXRlKCk7XHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAZGVzY3JpcHRpb25cclxuICAgICAqIFJldHVybnMgYW4gT2JzZXJ2YWJsZSB3aGljaCBlbWl0cyB1bnRpbCB1bnN1YnNjcmliZWQuXHJcbiAgICAgKi9cclxuICAgIGdldCBzdHJlYW0kKCk6IE9ic2VydmFibGU8VD4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnZhbHVlQ2hhbmdlcy5waXBlKFxyXG4gICAgICAgICAgICBmaWx0ZXIocmVzdWx0ID0+IHJlc3VsdC5uZXR3b3JrU3RhdHVzID09PSBOZXR3b3JrU3RhdHVzLnJlYWR5KSxcclxuICAgICAgICAgICAgbWFwKHJlc3VsdCA9PiByZXN1bHQuZGF0YSksXHJcbiAgICAgICAgICAgIGZpbmFsaXplKCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuY29tcGxldGVkJC5uZXh0KCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbXBsZXRlZCQuY29tcGxldGUoKTtcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgcmVmKCk6IFF1ZXJ5UmVmPFQsIFY+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5xdWVyeVJlZjtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEBkZXNjcmlwdGlvblxyXG4gICAgICogUmV0dXJucyBhIHNpbmdsZS1yZXN1bHQgT2JzZXJ2YWJsZSBhZnRlciBhcHBseWluZyB0aGUgbWFwIGZ1bmN0aW9uLlxyXG4gICAgICovXHJcbiAgICBtYXBTaW5nbGU8Uj4obWFwRm46IChpdGVtOiBUKSA9PiBSKTogT2JzZXJ2YWJsZTxSPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2luZ2xlJC5waXBlKG1hcChtYXBGbikpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQGRlc2NyaXB0aW9uXHJcbiAgICAgKiBSZXR1cm5zIGEgbXVsdGlwbGUtcmVzdWx0IE9ic2VydmFibGUgYWZ0ZXIgYXBwbHlpbmcgdGhlIG1hcCBmdW5jdGlvbi5cclxuICAgICAqL1xyXG4gICAgbWFwU3RyZWFtPFI+KG1hcEZuOiAoaXRlbTogVCkgPT4gUik6IE9ic2VydmFibGU8Uj4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnN0cmVhbSQucGlwZShtYXAobWFwRm4pKTtcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWRldGFpbC1jb21wb25lbnQtdHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL3Byb3ZpZGVycy9jdXN0b20tZGV0YWlsLWNvbXBvbmVudC9jdXN0b20tZGV0YWlsLWNvbXBvbmVudC10eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7IEN1c3RvbURldGFpbENvbXBvbmVudExvY2F0aW9uSWQgfSBmcm9tICcuLi8uLi9jb21tb24vY29tcG9uZW50LXJlZ2lzdHJ5LXR5cGVzJztcclxuXHJcbi8qKlxyXG4gKiBAZGVzY3JpcHRpb25cclxuICogQ3VzdG9tRGV0YWlsQ29tcG9uZW50cyBhbGxvdyBhbnkgYXJiaXRyYXJ5IEFuZ3VsYXIgY29tcG9uZW50cyB0byBiZSBlbWJlZGRlZCBpbiBlbnRpdHkgZGV0YWlsXHJcbiAqIHBhZ2VzIG9mIHRoZSBBZG1pbiBVSS5cclxuICpcclxuICogQGRvY3NDYXRlZ29yeSBjdXN0b20tZGV0YWlsLWNvbXBvbmVudHNcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ3VzdG9tRGV0YWlsQ29tcG9uZW50IHtcclxuICAgIGVudGl0eSQ6IE9ic2VydmFibGU8YW55PjtcclxuICAgIGRldGFpbEZvcm06IEZvcm1Hcm91cDtcclxufVxyXG5cclxuLyoqXHJcbiAqIEBkZXNjcmlwdGlvblxyXG4gKiBDb25maWd1cmVzIGEge0BsaW5rIEN1c3RvbURldGFpbENvbXBvbmVudH0gdG8gYmUgcGxhY2VkIGluIHRoZSBnaXZlbiBsb2NhdGlvbi5cclxuICpcclxuICogQGRvY3NDYXRlZ29yeSBjdXN0b20tZGV0YWlsLWNvbXBvbmVudHNcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ3VzdG9tRGV0YWlsQ29tcG9uZW50Q29uZmlnIHtcclxuICAgIGxvY2F0aW9uSWQ6IEN1c3RvbURldGFpbENvbXBvbmVudExvY2F0aW9uSWQ7XHJcbiAgICBjb21wb25lbnQ6IFR5cGU8Q3VzdG9tRGV0YWlsQ29tcG9uZW50PjtcclxufVxyXG4iXX0=
@@ -0,0 +1,44 @@
1
+ import { APP_INITIALIZER, Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ /**
4
+ * @description
5
+ * Registers a {@link CustomDetailComponent} to be placed in a given location. This allows you
6
+ * to embed any type of custom Angular component in the entity detail pages of the Admin UI.
7
+ *
8
+ * @docsCategory custom-detail-components
9
+ */
10
+ export function registerCustomDetailComponent(config) {
11
+ return {
12
+ provide: APP_INITIALIZER,
13
+ multi: true,
14
+ useFactory: (customDetailComponentService) => () => {
15
+ customDetailComponentService.registerCustomDetailComponent(config);
16
+ },
17
+ deps: [CustomDetailComponentService],
18
+ };
19
+ }
20
+ export class CustomDetailComponentService {
21
+ constructor() {
22
+ this.customDetailComponents = new Map();
23
+ }
24
+ registerCustomDetailComponent(config) {
25
+ var _a;
26
+ if (this.customDetailComponents.has(config.locationId)) {
27
+ (_a = this.customDetailComponents.get(config.locationId)) === null || _a === void 0 ? void 0 : _a.push(config);
28
+ }
29
+ else {
30
+ this.customDetailComponents.set(config.locationId, [config]);
31
+ }
32
+ }
33
+ getCustomDetailComponentsFor(locationId) {
34
+ var _a;
35
+ return (_a = this.customDetailComponents.get(locationId)) !== null && _a !== void 0 ? _a : [];
36
+ }
37
+ }
38
+ CustomDetailComponentService.ɵprov = i0.ɵɵdefineInjectable({ factory: function CustomDetailComponentService_Factory() { return new CustomDetailComponentService(); }, token: CustomDetailComponentService, providedIn: "root" });
39
+ CustomDetailComponentService.decorators = [
40
+ { type: Injectable, args: [{
41
+ providedIn: 'root',
42
+ },] }
43
+ ];
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWRldGFpbC1jb21wb25lbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9zcmMvcHJvdmlkZXJzL2N1c3RvbS1kZXRhaWwtY29tcG9uZW50L2N1c3RvbS1kZXRhaWwtY29tcG9uZW50LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxVQUFVLEVBQVksTUFBTSxlQUFlLENBQUM7O0FBSXRFOzs7Ozs7R0FNRztBQUNILE1BQU0sVUFBVSw2QkFBNkIsQ0FBQyxNQUFtQztJQUM3RSxPQUFPO1FBQ0gsT0FBTyxFQUFFLGVBQWU7UUFDeEIsS0FBSyxFQUFFLElBQUk7UUFDWCxVQUFVLEVBQUUsQ0FBQyw0QkFBMEQsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFO1lBQzdFLDRCQUE0QixDQUFDLDZCQUE2QixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3ZFLENBQUM7UUFDRCxJQUFJLEVBQUUsQ0FBQyw0QkFBNEIsQ0FBQztLQUN2QyxDQUFDO0FBQ04sQ0FBQztBQUtELE1BQU0sT0FBTyw0QkFBNEI7SUFIekM7UUFJWSwyQkFBc0IsR0FBRyxJQUFJLEdBQUcsRUFBeUMsQ0FBQztLQWFyRjtJQVhHLDZCQUE2QixDQUFDLE1BQW1DOztRQUM3RCxJQUFJLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQ3BELE1BQUEsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLDBDQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUNwRTthQUFNO1lBQ0gsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztTQUNoRTtJQUNMLENBQUM7SUFFRCw0QkFBNEIsQ0FBQyxVQUFrQjs7UUFDM0MsT0FBTyxNQUFBLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLG1DQUFJLEVBQUUsQ0FBQztJQUM3RCxDQUFDOzs7O1lBaEJKLFVBQVUsU0FBQztnQkFDUixVQUFVLEVBQUUsTUFBTTthQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFQUF9JTklUSUFMSVpFUiwgSW5qZWN0YWJsZSwgUHJvdmlkZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IEN1c3RvbURldGFpbENvbXBvbmVudENvbmZpZyB9IGZyb20gJy4vY3VzdG9tLWRldGFpbC1jb21wb25lbnQtdHlwZXMnO1xyXG5cclxuLyoqXHJcbiAqIEBkZXNjcmlwdGlvblxyXG4gKiBSZWdpc3RlcnMgYSB7QGxpbmsgQ3VzdG9tRGV0YWlsQ29tcG9uZW50fSB0byBiZSBwbGFjZWQgaW4gYSBnaXZlbiBsb2NhdGlvbi4gVGhpcyBhbGxvd3MgeW91XHJcbiAqIHRvIGVtYmVkIGFueSB0eXBlIG9mIGN1c3RvbSBBbmd1bGFyIGNvbXBvbmVudCBpbiB0aGUgZW50aXR5IGRldGFpbCBwYWdlcyBvZiB0aGUgQWRtaW4gVUkuXHJcbiAqXHJcbiAqIEBkb2NzQ2F0ZWdvcnkgY3VzdG9tLWRldGFpbC1jb21wb25lbnRzXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gcmVnaXN0ZXJDdXN0b21EZXRhaWxDb21wb25lbnQoY29uZmlnOiBDdXN0b21EZXRhaWxDb21wb25lbnRDb25maWcpOiBQcm92aWRlciB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcclxuICAgICAgICBtdWx0aTogdHJ1ZSxcclxuICAgICAgICB1c2VGYWN0b3J5OiAoY3VzdG9tRGV0YWlsQ29tcG9uZW50U2VydmljZTogQ3VzdG9tRGV0YWlsQ29tcG9uZW50U2VydmljZSkgPT4gKCkgPT4ge1xyXG4gICAgICAgICAgICBjdXN0b21EZXRhaWxDb21wb25lbnRTZXJ2aWNlLnJlZ2lzdGVyQ3VzdG9tRGV0YWlsQ29tcG9uZW50KGNvbmZpZyk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBkZXBzOiBbQ3VzdG9tRGV0YWlsQ29tcG9uZW50U2VydmljZV0sXHJcbiAgICB9O1xyXG59XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDdXN0b21EZXRhaWxDb21wb25lbnRTZXJ2aWNlIHtcclxuICAgIHByaXZhdGUgY3VzdG9tRGV0YWlsQ29tcG9uZW50cyA9IG5ldyBNYXA8c3RyaW5nLCBDdXN0b21EZXRhaWxDb21wb25lbnRDb25maWdbXT4oKTtcclxuXHJcbiAgICByZWdpc3RlckN1c3RvbURldGFpbENvbXBvbmVudChjb25maWc6IEN1c3RvbURldGFpbENvbXBvbmVudENvbmZpZykge1xyXG4gICAgICAgIGlmICh0aGlzLmN1c3RvbURldGFpbENvbXBvbmVudHMuaGFzKGNvbmZpZy5sb2NhdGlvbklkKSkge1xyXG4gICAgICAgICAgICB0aGlzLmN1c3RvbURldGFpbENvbXBvbmVudHMuZ2V0KGNvbmZpZy5sb2NhdGlvbklkKT8ucHVzaChjb25maWcpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuY3VzdG9tRGV0YWlsQ29tcG9uZW50cy5zZXQoY29uZmlnLmxvY2F0aW9uSWQsIFtjb25maWddKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0Q3VzdG9tRGV0YWlsQ29tcG9uZW50c0Zvcihsb2NhdGlvbklkOiBzdHJpbmcpOiBDdXN0b21EZXRhaWxDb21wb25lbnRDb25maWdbXSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3VzdG9tRGV0YWlsQ29tcG9uZW50cy5nZXQobG9jYXRpb25JZCkgPz8gW107XHJcbiAgICB9XHJcbn1cclxuIl19
@@ -1,13 +1,14 @@
1
- import { ComponentFactoryResolver, Injectable } from '@angular/core';
1
+ import { Injectable } from '@angular/core';
2
2
  import { ComponentRegistryService } from '../component-registry/component-registry.service';
3
3
  import * as i0 from "@angular/core";
4
4
  import * as i1 from "../component-registry/component-registry.service";
5
5
  /**
6
6
  * This service allows the registration of custom controls for customFields.
7
+ *
8
+ * @deprecated The ComponentRegistryService now handles custom field components directly.
7
9
  */
8
10
  export class CustomFieldComponentService {
9
- constructor(componentFactoryResolver, componentRegistryService) {
10
- this.componentFactoryResolver = componentFactoryResolver;
11
+ constructor(componentRegistryService) {
11
12
  this.componentRegistryService = componentRegistryService;
12
13
  }
13
14
  /**
@@ -34,14 +35,13 @@ export class CustomFieldComponentService {
34
35
  return id;
35
36
  }
36
37
  }
37
- CustomFieldComponentService.ɵprov = i0.ɵɵdefineInjectable({ factory: function CustomFieldComponentService_Factory() { return new CustomFieldComponentService(i0.ɵɵinject(i0.ComponentFactoryResolver), i0.ɵɵinject(i1.ComponentRegistryService)); }, token: CustomFieldComponentService, providedIn: "root" });
38
+ CustomFieldComponentService.ɵprov = i0.ɵɵdefineInjectable({ factory: function CustomFieldComponentService_Factory() { return new CustomFieldComponentService(i0.ɵɵinject(i1.ComponentRegistryService)); }, token: CustomFieldComponentService, providedIn: "root" });
38
39
  CustomFieldComponentService.decorators = [
39
40
  { type: Injectable, args: [{
40
41
  providedIn: 'root',
41
42
  },] }
42
43
  ];
43
44
  CustomFieldComponentService.ctorParameters = () => [
44
- { type: ComponentFactoryResolver },
45
45
  { type: ComponentRegistryService }
46
46
  ];
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWZpZWxkLWNvbXBvbmVudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb3JlL3NyYy9wcm92aWRlcnMvY3VzdG9tLWZpZWxkLWNvbXBvbmVudC9jdXN0b20tZmllbGQtY29tcG9uZW50LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHdCQUF3QixFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUtyRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQzs7O0FBUTVGOztHQUVHO0FBSUgsTUFBTSxPQUFPLDJCQUEyQjtJQUNwQyxZQUNZLHdCQUFrRCxFQUNsRCx3QkFBa0Q7UUFEbEQsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtRQUNsRCw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQTBCO0lBQzNELENBQUM7SUFFSjs7T0FFRztJQUNILDRCQUE0QixDQUN4QixNQUE2QixFQUM3QixTQUFpQixFQUNqQixTQUFtQztRQUVuQyxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDcEQsSUFBSSxDQUFDLHdCQUF3QixDQUFDLHNCQUFzQixDQUFDLEVBQUUsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsMEJBQTBCLENBQUMsTUFBNkIsRUFBRSxTQUFpQjtRQUN2RSxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDcEQsT0FBTyxJQUFJLENBQUMsd0JBQXdCLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ2hGLENBQUM7SUFFTyxVQUFVLENBQUMsTUFBNkIsRUFBRSxTQUFpQixFQUFFLGFBQXNCO1FBQ3ZGLElBQUksRUFBRSxHQUFHLE1BQU0sQ0FBQztRQUNoQixJQUFJLGFBQWEsRUFBRTtZQUNmLEVBQUUsSUFBSSxlQUFlLENBQUM7U0FDekI7UUFDRCxFQUFFLElBQUksR0FBRyxHQUFHLFNBQVMsQ0FBQztRQUN0QixPQUFPLEVBQUUsQ0FBQztJQUNkLENBQUM7Ozs7WUFyQ0osVUFBVSxTQUFDO2dCQUNSLFVBQVUsRUFBRSxNQUFNO2FBQ3JCOzs7WUFsQlEsd0JBQXdCO1lBS3hCLHdCQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlciwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBUeXBlIH0gZnJvbSAnQHZlbmR1cmUvY29tbW9uL2xpYi9zaGFyZWQtdHlwZXMnO1xyXG5cclxuaW1wb3J0IHsgRm9ybUlucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29tbW9uL2NvbXBvbmVudC1yZWdpc3RyeS10eXBlcyc7XHJcbmltcG9ydCB7IEN1c3RvbUZpZWxkcywgQ3VzdG9tRmllbGRzRnJhZ21lbnQgfSBmcm9tICcuLi8uLi9jb21tb24vZ2VuZXJhdGVkLXR5cGVzJztcclxuaW1wb3J0IHsgQ29tcG9uZW50UmVnaXN0cnlTZXJ2aWNlIH0gZnJvbSAnLi4vY29tcG9uZW50LXJlZ2lzdHJ5L2NvbXBvbmVudC1yZWdpc3RyeS5zZXJ2aWNlJztcclxuXHJcbmV4cG9ydCB0eXBlIEN1c3RvbUZpZWxkQ29uZmlnVHlwZSA9IEN1c3RvbUZpZWxkc0ZyYWdtZW50O1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDdXN0b21GaWVsZENvbnRyb2wgZXh0ZW5kcyBGb3JtSW5wdXRDb21wb25lbnQ8Q3VzdG9tRmllbGRDb25maWdUeXBlPiB7fVxyXG5cclxuZXhwb3J0IHR5cGUgQ3VzdG9tRmllbGRFbnRpdHlOYW1lID0gRXhjbHVkZTxrZXlvZiBDdXN0b21GaWVsZHMsICdfX3R5cGVuYW1lJz47XHJcblxyXG4vKipcclxuICogVGhpcyBzZXJ2aWNlIGFsbG93cyB0aGUgcmVnaXN0cmF0aW9uIG9mIGN1c3RvbSBjb250cm9scyBmb3IgY3VzdG9tRmllbGRzLlxyXG4gKi9cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ3VzdG9tRmllbGRDb21wb25lbnRTZXJ2aWNlIHtcclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgY29tcG9uZW50RmFjdG9yeVJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXHJcbiAgICAgICAgcHJpdmF0ZSBjb21wb25lbnRSZWdpc3RyeVNlcnZpY2U6IENvbXBvbmVudFJlZ2lzdHJ5U2VydmljZSxcclxuICAgICkge31cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJlZ2lzdGVyIGEgQ3VzdG9tRmllbGRDb250cm9sIGNvbXBvbmVudCB0byBiZSB1c2VkIHdpdGggdGhlIHNwZWNpZmllZCBjdXN0b21GaWVsZCBhbmQgZW50aXR5LlxyXG4gICAgICovXHJcbiAgICByZWdpc3RlckN1c3RvbUZpZWxkQ29tcG9uZW50KFxyXG4gICAgICAgIGVudGl0eTogQ3VzdG9tRmllbGRFbnRpdHlOYW1lLFxyXG4gICAgICAgIGZpZWxkTmFtZTogc3RyaW5nLFxyXG4gICAgICAgIGNvbXBvbmVudDogVHlwZTxDdXN0b21GaWVsZENvbnRyb2w+LFxyXG4gICAgKSB7XHJcbiAgICAgICAgY29uc3QgaWQgPSB0aGlzLmdlbmVyYXRlSWQoZW50aXR5LCBmaWVsZE5hbWUsIHRydWUpO1xyXG4gICAgICAgIHRoaXMuY29tcG9uZW50UmVnaXN0cnlTZXJ2aWNlLnJlZ2lzdGVySW5wdXRDb21wb25lbnQoaWQsIGNvbXBvbmVudCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDaGVja3Mgd2hldGhlciBhIGN1c3RvbSBjb21wb25lbnQgaXMgcmVnaXN0ZXJlZCBmb3IgdGhlIGdpdmVuIGVudGl0eSBjdXN0b20gZmllbGQsXHJcbiAgICAgKiBhbmQgaWYgc28gcmV0dXJucyB0aGUgSUQgb2YgdGhhdCBjb21wb25lbnQuXHJcbiAgICAgKi9cclxuICAgIGN1c3RvbUZpZWxkQ29tcG9uZW50RXhpc3RzKGVudGl0eTogQ3VzdG9tRmllbGRFbnRpdHlOYW1lLCBmaWVsZE5hbWU6IHN0cmluZyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XHJcbiAgICAgICAgY29uc3QgaWQgPSB0aGlzLmdlbmVyYXRlSWQoZW50aXR5LCBmaWVsZE5hbWUsIHRydWUpO1xyXG4gICAgICAgIHJldHVybiB0aGlzLmNvbXBvbmVudFJlZ2lzdHJ5U2VydmljZS5nZXRJbnB1dENvbXBvbmVudChpZCkgPyBpZCA6IHVuZGVmaW5lZDtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdlbmVyYXRlSWQoZW50aXR5OiBDdXN0b21GaWVsZEVudGl0eU5hbWUsIGZpZWxkTmFtZTogc3RyaW5nLCBpc0N1c3RvbUZpZWxkOiBib29sZWFuKSB7XHJcbiAgICAgICAgbGV0IGlkID0gZW50aXR5O1xyXG4gICAgICAgIGlmIChpc0N1c3RvbUZpZWxkKSB7XHJcbiAgICAgICAgICAgIGlkICs9ICctY3VzdG9tRmllbGRzJztcclxuICAgICAgICB9XHJcbiAgICAgICAgaWQgKz0gJy0nICsgZmllbGROYW1lO1xyXG4gICAgICAgIHJldHVybiBpZDtcclxuICAgIH1cclxufVxyXG4iXX0=
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWZpZWxkLWNvbXBvbmVudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb3JlL3NyYy9wcm92aWRlcnMvY3VzdG9tLWZpZWxkLWNvbXBvbmVudC9jdXN0b20tZmllbGQtY29tcG9uZW50LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUszQyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQzs7O0FBUTVGOzs7O0dBSUc7QUFJSCxNQUFNLE9BQU8sMkJBQTJCO0lBQ3BDLFlBQW9CLHdCQUFrRDtRQUFsRCw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQTBCO0lBQUcsQ0FBQztJQUUxRTs7T0FFRztJQUNILDRCQUE0QixDQUN4QixNQUE2QixFQUM3QixTQUFpQixFQUNqQixTQUFtQztRQUVuQyxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDcEQsSUFBSSxDQUFDLHdCQUF3QixDQUFDLHNCQUFzQixDQUFDLEVBQUUsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsMEJBQTBCLENBQUMsTUFBNkIsRUFBRSxTQUFpQjtRQUN2RSxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDcEQsT0FBTyxJQUFJLENBQUMsd0JBQXdCLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ2hGLENBQUM7SUFFTyxVQUFVLENBQUMsTUFBNkIsRUFBRSxTQUFpQixFQUFFLGFBQXNCO1FBQ3ZGLElBQUksRUFBRSxHQUFHLE1BQU0sQ0FBQztRQUNoQixJQUFJLGFBQWEsRUFBRTtZQUNmLEVBQUUsSUFBSSxlQUFlLENBQUM7U0FDekI7UUFDRCxFQUFFLElBQUksR0FBRyxHQUFHLFNBQVMsQ0FBQztRQUN0QixPQUFPLEVBQUUsQ0FBQztJQUNkLENBQUM7Ozs7WUFsQ0osVUFBVSxTQUFDO2dCQUNSLFVBQVUsRUFBRSxNQUFNO2FBQ3JCOzs7WUFmUSx3QkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFR5cGUgfSBmcm9tICdAdmVuZHVyZS9jb21tb24vbGliL3NoYXJlZC10eXBlcyc7XHJcblxyXG5pbXBvcnQgeyBGb3JtSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb21tb24vY29tcG9uZW50LXJlZ2lzdHJ5LXR5cGVzJztcclxuaW1wb3J0IHsgQ3VzdG9tRmllbGRzLCBDdXN0b21GaWVsZHNGcmFnbWVudCB9IGZyb20gJy4uLy4uL2NvbW1vbi9nZW5lcmF0ZWQtdHlwZXMnO1xyXG5pbXBvcnQgeyBDb21wb25lbnRSZWdpc3RyeVNlcnZpY2UgfSBmcm9tICcuLi9jb21wb25lbnQtcmVnaXN0cnkvY29tcG9uZW50LXJlZ2lzdHJ5LnNlcnZpY2UnO1xyXG5cclxuZXhwb3J0IHR5cGUgQ3VzdG9tRmllbGRDb25maWdUeXBlID0gQ3VzdG9tRmllbGRzRnJhZ21lbnQ7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEN1c3RvbUZpZWxkQ29udHJvbCBleHRlbmRzIEZvcm1JbnB1dENvbXBvbmVudDxDdXN0b21GaWVsZENvbmZpZ1R5cGU+IHt9XHJcblxyXG5leHBvcnQgdHlwZSBDdXN0b21GaWVsZEVudGl0eU5hbWUgPSBFeGNsdWRlPGtleW9mIEN1c3RvbUZpZWxkcywgJ19fdHlwZW5hbWUnPjtcclxuXHJcbi8qKlxyXG4gKiBUaGlzIHNlcnZpY2UgYWxsb3dzIHRoZSByZWdpc3RyYXRpb24gb2YgY3VzdG9tIGNvbnRyb2xzIGZvciBjdXN0b21GaWVsZHMuXHJcbiAqXHJcbiAqIEBkZXByZWNhdGVkIFRoZSBDb21wb25lbnRSZWdpc3RyeVNlcnZpY2Ugbm93IGhhbmRsZXMgY3VzdG9tIGZpZWxkIGNvbXBvbmVudHMgZGlyZWN0bHkuXHJcbiAqL1xyXG5ASW5qZWN0YWJsZSh7XHJcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDdXN0b21GaWVsZENvbXBvbmVudFNlcnZpY2Uge1xyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBjb21wb25lbnRSZWdpc3RyeVNlcnZpY2U6IENvbXBvbmVudFJlZ2lzdHJ5U2VydmljZSkge31cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJlZ2lzdGVyIGEgQ3VzdG9tRmllbGRDb250cm9sIGNvbXBvbmVudCB0byBiZSB1c2VkIHdpdGggdGhlIHNwZWNpZmllZCBjdXN0b21GaWVsZCBhbmQgZW50aXR5LlxyXG4gICAgICovXHJcbiAgICByZWdpc3RlckN1c3RvbUZpZWxkQ29tcG9uZW50KFxyXG4gICAgICAgIGVudGl0eTogQ3VzdG9tRmllbGRFbnRpdHlOYW1lLFxyXG4gICAgICAgIGZpZWxkTmFtZTogc3RyaW5nLFxyXG4gICAgICAgIGNvbXBvbmVudDogVHlwZTxDdXN0b21GaWVsZENvbnRyb2w+LFxyXG4gICAgKSB7XHJcbiAgICAgICAgY29uc3QgaWQgPSB0aGlzLmdlbmVyYXRlSWQoZW50aXR5LCBmaWVsZE5hbWUsIHRydWUpO1xyXG4gICAgICAgIHRoaXMuY29tcG9uZW50UmVnaXN0cnlTZXJ2aWNlLnJlZ2lzdGVySW5wdXRDb21wb25lbnQoaWQsIGNvbXBvbmVudCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDaGVja3Mgd2hldGhlciBhIGN1c3RvbSBjb21wb25lbnQgaXMgcmVnaXN0ZXJlZCBmb3IgdGhlIGdpdmVuIGVudGl0eSBjdXN0b20gZmllbGQsXHJcbiAgICAgKiBhbmQgaWYgc28gcmV0dXJucyB0aGUgSUQgb2YgdGhhdCBjb21wb25lbnQuXHJcbiAgICAgKi9cclxuICAgIGN1c3RvbUZpZWxkQ29tcG9uZW50RXhpc3RzKGVudGl0eTogQ3VzdG9tRmllbGRFbnRpdHlOYW1lLCBmaWVsZE5hbWU6IHN0cmluZyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XHJcbiAgICAgICAgY29uc3QgaWQgPSB0aGlzLmdlbmVyYXRlSWQoZW50aXR5LCBmaWVsZE5hbWUsIHRydWUpO1xyXG4gICAgICAgIHJldHVybiB0aGlzLmNvbXBvbmVudFJlZ2lzdHJ5U2VydmljZS5nZXRJbnB1dENvbXBvbmVudChpZCkgPyBpZCA6IHVuZGVmaW5lZDtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdlbmVyYXRlSWQoZW50aXR5OiBDdXN0b21GaWVsZEVudGl0eU5hbWUsIGZpZWxkTmFtZTogc3RyaW5nLCBpc0N1c3RvbUZpZWxkOiBib29sZWFuKSB7XHJcbiAgICAgICAgbGV0IGlkID0gZW50aXR5O1xyXG4gICAgICAgIGlmIChpc0N1c3RvbUZpZWxkKSB7XHJcbiAgICAgICAgICAgIGlkICs9ICctY3VzdG9tRmllbGRzJztcclxuICAgICAgICB9XHJcbiAgICAgICAgaWQgKz0gJy0nICsgZmllbGROYW1lO1xyXG4gICAgICAgIHJldHVybiBpZDtcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -76,4 +76,4 @@ LocalStorageService.decorators = [
76
76
  LocalStorageService.ctorParameters = () => [
77
77
  { type: Location }
78
78
  ];
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwtc3RvcmFnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb3JlL3NyYy9wcm92aWRlcnMvbG9jYWwtc3RvcmFnZS9sb2NhbC1zdG9yYWdlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQW9CM0MsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDO0FBRXRCOztHQUVHO0FBSUgsTUFBTSxPQUFPLG1CQUFtQjtJQUM1QixZQUFvQixRQUFrQjtRQUFsQixhQUFRLEdBQVIsUUFBUSxDQUFVO0lBQUcsQ0FBQztJQUMxQzs7T0FFRztJQUNJLEdBQUcsQ0FBc0MsR0FBTSxFQUFFLEtBQTZCO1FBQ2pGLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbEMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRDs7T0FFRztJQUNJLHFCQUFxQixDQUN4QixHQUFNLEVBQ04sS0FBMEM7UUFFMUMsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQyxHQUFHLENBQUMsWUFBbUIsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxhQUFhLENBQXNDLEdBQU0sRUFBRSxLQUE2QjtRQUMzRixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2xDLGNBQWMsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxHQUFHLENBQXNDLEdBQU07UUFDbEQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNsQyxNQUFNLElBQUksR0FBRyxjQUFjLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLFlBQVksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDOUUsSUFBSSxNQUFXLENBQUM7UUFDaEIsSUFBSTtZQUNBLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxNQUFNLENBQUMsQ0FBQztTQUN2QztRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1Isc0NBQXNDO1lBQ3RDLE9BQU8sQ0FBQyxLQUFLLENBQUMsK0NBQStDLEdBQUcsTUFBTSxJQUFJLEdBQUcsQ0FBQyxDQUFDO1NBQ2xGO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQztJQUVEOztPQUVHO0lBQ0kscUJBQXFCLENBQ3hCLEdBQU07UUFFTixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbkQsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQW1CLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRU0sTUFBTSxDQUFDLEdBQThCO1FBQ3hDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbEMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNuQyxZQUFZLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFTyxtQkFBbUIsQ0FBQyxHQUFXO1FBQ25DLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDbEMsT0FBTyxHQUFHLEdBQUcsSUFBSSxDQUFDO0lBQ3RCLENBQUM7SUFFTyxPQUFPLENBQUMsR0FBOEI7UUFDMUMsT0FBTyxNQUFNLEdBQUcsR0FBRyxDQUFDO0lBQ3hCLENBQUM7Ozs7WUF2RUosVUFBVSxTQUFDO2dCQUNSLFVBQVUsRUFBRSxNQUFNO2FBQ3JCOzs7WUE1QlEsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExvY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgTGFuZ3VhZ2VDb2RlIH0gZnJvbSAnLi4vLi4vY29tbW9uL2dlbmVyYXRlZC10eXBlcyc7XHJcbmltcG9ydCB7IFdpZGdldExheW91dERlZmluaXRpb24gfSBmcm9tICcuLi9kYXNoYm9hcmQtd2lkZ2V0L2Rhc2hib2FyZC13aWRnZXQtdHlwZXMnO1xyXG5cclxuZXhwb3J0IHR5cGUgTG9jYWxTdG9yYWdlVHlwZU1hcCA9IHtcclxuICAgIGFjdGl2ZUNoYW5uZWxUb2tlbjogc3RyaW5nO1xyXG4gICAgYXV0aFRva2VuOiBzdHJpbmc7XHJcbiAgICB1aUxhbmd1YWdlQ29kZTogTGFuZ3VhZ2VDb2RlO1xyXG4gICAgY29udGVudExhbmd1YWdlQ29kZTogTGFuZ3VhZ2VDb2RlO1xyXG4gICAgb3JkZXJMaXN0TGFzdEN1c3RvbUZpbHRlcnM6IGFueTtcclxuICAgIGRhc2hib2FyZFdpZGdldExheW91dDogV2lkZ2V0TGF5b3V0RGVmaW5pdGlvbjtcclxuICAgIGFjdGl2ZVRoZW1lOiBzdHJpbmc7XHJcbn07XHJcblxyXG5leHBvcnQgdHlwZSBMb2NhbFN0b3JhZ2VMb2NhdGlvbkJhc2VkVHlwZU1hcCA9IHtcclxuICAgIHNoaXBwaW5nVGVzdE9yZGVyOiBhbnk7XHJcbiAgICBzaGlwcGluZ1Rlc3RBZGRyZXNzOiBhbnk7XHJcbn07XHJcblxyXG5jb25zdCBQUkVGSVggPSAndm5kXyc7XHJcblxyXG4vKipcclxuICogV3JhcHBlciBhcm91bmQgdGhlIGJyb3dzZXIncyBMb2NhbFN0b3JhZ2UgLyBTZXNzaW9uU3RvcmFnZSBvYmplY3QsIGZvciBwZXJzaXN0aW5nIGRhdGEgdG8gdGhlIGJyb3dzZXIuXHJcbiAqL1xyXG5ASW5qZWN0YWJsZSh7XHJcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMb2NhbFN0b3JhZ2VTZXJ2aWNlIHtcclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgbG9jYXRpb246IExvY2F0aW9uKSB7fVxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXQgYSBrZXktdmFsdWUgcGFpciBpbiB0aGUgYnJvd3NlcidzIExvY2FsU3RvcmFnZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc2V0PEsgZXh0ZW5kcyBrZXlvZiBMb2NhbFN0b3JhZ2VUeXBlTWFwPihrZXk6IEssIHZhbHVlOiBMb2NhbFN0b3JhZ2VUeXBlTWFwW0tdKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3Qga2V5TmFtZSA9IHRoaXMua2V5TmFtZShrZXkpO1xyXG4gICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKGtleU5hbWUsIEpTT04uc3RyaW5naWZ5KHZhbHVlKSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXQgYSBrZXktdmFsdWUgcGFpciBzcGVjaWZpYyB0byB0aGUgY3VycmVudCBsb2NhdGlvbiAodXJsKVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc2V0Rm9yQ3VycmVudExvY2F0aW9uPEsgZXh0ZW5kcyBrZXlvZiBMb2NhbFN0b3JhZ2VMb2NhdGlvbkJhc2VkVHlwZU1hcD4oXHJcbiAgICAgICAga2V5OiBLLFxyXG4gICAgICAgIHZhbHVlOiBMb2NhbFN0b3JhZ2VMb2NhdGlvbkJhc2VkVHlwZU1hcFtLXSxcclxuICAgICkge1xyXG4gICAgICAgIGNvbnN0IGNvbXBvc2l0ZUtleSA9IHRoaXMuZ2V0TG9jYXRpb25CYXNlZEtleShrZXkpO1xyXG4gICAgICAgIHRoaXMuc2V0KGNvbXBvc2l0ZUtleSBhcyBhbnksIHZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldCBhIGtleS12YWx1ZSBwYWlyIGluIHRoZSBicm93c2VyJ3MgU2Vzc2lvblN0b3JhZ2VcclxuICAgICAqL1xyXG4gICAgcHVibGljIHNldEZvclNlc3Npb248SyBleHRlbmRzIGtleW9mIExvY2FsU3RvcmFnZVR5cGVNYXA+KGtleTogSywgdmFsdWU6IExvY2FsU3RvcmFnZVR5cGVNYXBbS10pOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBrZXlOYW1lID0gdGhpcy5rZXlOYW1lKGtleSk7XHJcbiAgICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShrZXlOYW1lLCBKU09OLnN0cmluZ2lmeSh2YWx1ZSkpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0IHRoZSB2YWx1ZSBvZiB0aGUgZ2l2ZW4ga2V5IGZyb20gdGhlIFNlc3Npb25TdG9yYWdlIG9yIExvY2FsU3RvcmFnZS5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldDxLIGV4dGVuZHMga2V5b2YgTG9jYWxTdG9yYWdlVHlwZU1hcD4oa2V5OiBLKTogTG9jYWxTdG9yYWdlVHlwZU1hcFtLXSB8IG51bGwge1xyXG4gICAgICAgIGNvbnN0IGtleU5hbWUgPSB0aGlzLmtleU5hbWUoa2V5KTtcclxuICAgICAgICBjb25zdCBpdGVtID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShrZXlOYW1lKSB8fCBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShrZXlOYW1lKTtcclxuICAgICAgICBsZXQgcmVzdWx0OiBhbnk7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgcmVzdWx0ID0gSlNPTi5wYXJzZShpdGVtIHx8ICdudWxsJyk7XHJcbiAgICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tY29uc29sZVxyXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGBDb3VsZCBub3QgcGFyc2UgdGhlIGxvY2FsU3RvcmFnZSB2YWx1ZSBmb3IgXCIke2tleX1cIiAoJHtpdGVtfSlgKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldCB0aGUgdmFsdWUgb2YgdGhlIGdpdmVuIGtleSBmb3IgdGhlIGN1cnJlbnQgbG9jYXRpb24gKHVybClcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldEZvckN1cnJlbnRMb2NhdGlvbjxLIGV4dGVuZHMga2V5b2YgTG9jYWxTdG9yYWdlTG9jYXRpb25CYXNlZFR5cGVNYXA+KFxyXG4gICAgICAgIGtleTogSyxcclxuICAgICk6IExvY2FsU3RvcmFnZUxvY2F0aW9uQmFzZWRUeXBlTWFwW0tdIHtcclxuICAgICAgICBjb25zdCBjb21wb3NpdGVLZXkgPSB0aGlzLmdldExvY2F0aW9uQmFzZWRLZXkoa2V5KTtcclxuICAgICAgICByZXR1cm4gdGhpcy5nZXQoY29tcG9zaXRlS2V5IGFzIGFueSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHJlbW92ZShrZXk6IGtleW9mIExvY2FsU3RvcmFnZVR5cGVNYXApOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBrZXlOYW1lID0gdGhpcy5rZXlOYW1lKGtleSk7XHJcbiAgICAgICAgc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbShrZXlOYW1lKTtcclxuICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShrZXlOYW1lKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldExvY2F0aW9uQmFzZWRLZXkoa2V5OiBzdHJpbmcpIHtcclxuICAgICAgICBjb25zdCBwYXRoID0gdGhpcy5sb2NhdGlvbi5wYXRoKCk7XHJcbiAgICAgICAgcmV0dXJuIGtleSArIHBhdGg7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBrZXlOYW1lKGtleToga2V5b2YgTG9jYWxTdG9yYWdlVHlwZU1hcCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIFBSRUZJWCArIGtleTtcclxuICAgIH1cclxufVxyXG4iXX0=
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwtc3RvcmFnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb3JlL3NyYy9wcm92aWRlcnMvbG9jYWwtc3RvcmFnZS9sb2NhbC1zdG9yYWdlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQXFCM0MsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDO0FBRXRCOztHQUVHO0FBSUgsTUFBTSxPQUFPLG1CQUFtQjtJQUM1QixZQUFvQixRQUFrQjtRQUFsQixhQUFRLEdBQVIsUUFBUSxDQUFVO0lBQUcsQ0FBQztJQUMxQzs7T0FFRztJQUNJLEdBQUcsQ0FBc0MsR0FBTSxFQUFFLEtBQTZCO1FBQ2pGLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbEMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRDs7T0FFRztJQUNJLHFCQUFxQixDQUN4QixHQUFNLEVBQ04sS0FBMEM7UUFFMUMsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQyxHQUFHLENBQUMsWUFBbUIsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxhQUFhLENBQXNDLEdBQU0sRUFBRSxLQUE2QjtRQUMzRixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2xDLGNBQWMsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxHQUFHLENBQXNDLEdBQU07UUFDbEQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNsQyxNQUFNLElBQUksR0FBRyxjQUFjLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLFlBQVksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDOUUsSUFBSSxNQUFXLENBQUM7UUFDaEIsSUFBSTtZQUNBLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxNQUFNLENBQUMsQ0FBQztTQUN2QztRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1Isc0NBQXNDO1lBQ3RDLE9BQU8sQ0FBQyxLQUFLLENBQUMsK0NBQStDLEdBQUcsTUFBTSxJQUFJLEdBQUcsQ0FBQyxDQUFDO1NBQ2xGO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQztJQUVEOztPQUVHO0lBQ0kscUJBQXFCLENBQ3hCLEdBQU07UUFFTixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbkQsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQW1CLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRU0sTUFBTSxDQUFDLEdBQThCO1FBQ3hDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbEMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNuQyxZQUFZLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFTyxtQkFBbUIsQ0FBQyxHQUFXO1FBQ25DLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDbEMsT0FBTyxHQUFHLEdBQUcsSUFBSSxDQUFDO0lBQ3RCLENBQUM7SUFFTyxPQUFPLENBQUMsR0FBOEI7UUFDMUMsT0FBTyxNQUFNLEdBQUcsR0FBRyxDQUFDO0lBQ3hCLENBQUM7Ozs7WUF2RUosVUFBVSxTQUFDO2dCQUNSLFVBQVUsRUFBRSxNQUFNO2FBQ3JCOzs7WUE3QlEsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExvY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgTGFuZ3VhZ2VDb2RlIH0gZnJvbSAnLi4vLi4vY29tbW9uL2dlbmVyYXRlZC10eXBlcyc7XHJcbmltcG9ydCB7IFdpZGdldExheW91dERlZmluaXRpb24gfSBmcm9tICcuLi9kYXNoYm9hcmQtd2lkZ2V0L2Rhc2hib2FyZC13aWRnZXQtdHlwZXMnO1xyXG5cclxuZXhwb3J0IHR5cGUgTG9jYWxTdG9yYWdlVHlwZU1hcCA9IHtcclxuICAgIGFjdGl2ZUNoYW5uZWxUb2tlbjogc3RyaW5nO1xyXG4gICAgYXV0aFRva2VuOiBzdHJpbmc7XHJcbiAgICB1aUxhbmd1YWdlQ29kZTogTGFuZ3VhZ2VDb2RlO1xyXG4gICAgdWlMb2NhbGU6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgIGNvbnRlbnRMYW5ndWFnZUNvZGU6IExhbmd1YWdlQ29kZTtcclxuICAgIG9yZGVyTGlzdExhc3RDdXN0b21GaWx0ZXJzOiBhbnk7XHJcbiAgICBkYXNoYm9hcmRXaWRnZXRMYXlvdXQ6IFdpZGdldExheW91dERlZmluaXRpb247XHJcbiAgICBhY3RpdmVUaGVtZTogc3RyaW5nO1xyXG59O1xyXG5cclxuZXhwb3J0IHR5cGUgTG9jYWxTdG9yYWdlTG9jYXRpb25CYXNlZFR5cGVNYXAgPSB7XHJcbiAgICBzaGlwcGluZ1Rlc3RPcmRlcjogYW55O1xyXG4gICAgc2hpcHBpbmdUZXN0QWRkcmVzczogYW55O1xyXG59O1xyXG5cclxuY29uc3QgUFJFRklYID0gJ3ZuZF8nO1xyXG5cclxuLyoqXHJcbiAqIFdyYXBwZXIgYXJvdW5kIHRoZSBicm93c2VyJ3MgTG9jYWxTdG9yYWdlIC8gU2Vzc2lvblN0b3JhZ2Ugb2JqZWN0LCBmb3IgcGVyc2lzdGluZyBkYXRhIHRvIHRoZSBicm93c2VyLlxyXG4gKi9cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTG9jYWxTdG9yYWdlU2VydmljZSB7XHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGxvY2F0aW9uOiBMb2NhdGlvbikge31cclxuICAgIC8qKlxyXG4gICAgICogU2V0IGEga2V5LXZhbHVlIHBhaXIgaW4gdGhlIGJyb3dzZXIncyBMb2NhbFN0b3JhZ2VcclxuICAgICAqL1xyXG4gICAgcHVibGljIHNldDxLIGV4dGVuZHMga2V5b2YgTG9jYWxTdG9yYWdlVHlwZU1hcD4oa2V5OiBLLCB2YWx1ZTogTG9jYWxTdG9yYWdlVHlwZU1hcFtLXSk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IGtleU5hbWUgPSB0aGlzLmtleU5hbWUoa2V5KTtcclxuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShrZXlOYW1lLCBKU09OLnN0cmluZ2lmeSh2YWx1ZSkpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0IGEga2V5LXZhbHVlIHBhaXIgc3BlY2lmaWMgdG8gdGhlIGN1cnJlbnQgbG9jYXRpb24gKHVybClcclxuICAgICAqL1xyXG4gICAgcHVibGljIHNldEZvckN1cnJlbnRMb2NhdGlvbjxLIGV4dGVuZHMga2V5b2YgTG9jYWxTdG9yYWdlTG9jYXRpb25CYXNlZFR5cGVNYXA+KFxyXG4gICAgICAgIGtleTogSyxcclxuICAgICAgICB2YWx1ZTogTG9jYWxTdG9yYWdlTG9jYXRpb25CYXNlZFR5cGVNYXBbS10sXHJcbiAgICApIHtcclxuICAgICAgICBjb25zdCBjb21wb3NpdGVLZXkgPSB0aGlzLmdldExvY2F0aW9uQmFzZWRLZXkoa2V5KTtcclxuICAgICAgICB0aGlzLnNldChjb21wb3NpdGVLZXkgYXMgYW55LCB2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXQgYSBrZXktdmFsdWUgcGFpciBpbiB0aGUgYnJvd3NlcidzIFNlc3Npb25TdG9yYWdlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzZXRGb3JTZXNzaW9uPEsgZXh0ZW5kcyBrZXlvZiBMb2NhbFN0b3JhZ2VUeXBlTWFwPihrZXk6IEssIHZhbHVlOiBMb2NhbFN0b3JhZ2VUeXBlTWFwW0tdKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3Qga2V5TmFtZSA9IHRoaXMua2V5TmFtZShrZXkpO1xyXG4gICAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oa2V5TmFtZSwgSlNPTi5zdHJpbmdpZnkodmFsdWUpKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldCB0aGUgdmFsdWUgb2YgdGhlIGdpdmVuIGtleSBmcm9tIHRoZSBTZXNzaW9uU3RvcmFnZSBvciBMb2NhbFN0b3JhZ2UuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXQ8SyBleHRlbmRzIGtleW9mIExvY2FsU3RvcmFnZVR5cGVNYXA+KGtleTogSyk6IExvY2FsU3RvcmFnZVR5cGVNYXBbS10gfCBudWxsIHtcclxuICAgICAgICBjb25zdCBrZXlOYW1lID0gdGhpcy5rZXlOYW1lKGtleSk7XHJcbiAgICAgICAgY29uc3QgaXRlbSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oa2V5TmFtZSkgfHwgbG9jYWxTdG9yYWdlLmdldEl0ZW0oa2V5TmFtZSk7XHJcbiAgICAgICAgbGV0IHJlc3VsdDogYW55O1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIHJlc3VsdCA9IEpTT04ucGFyc2UoaXRlbSB8fCAnbnVsbCcpO1xyXG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWNvbnNvbGVcclxuICAgICAgICAgICAgY29uc29sZS5lcnJvcihgQ291bGQgbm90IHBhcnNlIHRoZSBsb2NhbFN0b3JhZ2UgdmFsdWUgZm9yIFwiJHtrZXl9XCIgKCR7aXRlbX0pYCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXQgdGhlIHZhbHVlIG9mIHRoZSBnaXZlbiBrZXkgZm9yIHRoZSBjdXJyZW50IGxvY2F0aW9uICh1cmwpXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXRGb3JDdXJyZW50TG9jYXRpb248SyBleHRlbmRzIGtleW9mIExvY2FsU3RvcmFnZUxvY2F0aW9uQmFzZWRUeXBlTWFwPihcclxuICAgICAgICBrZXk6IEssXHJcbiAgICApOiBMb2NhbFN0b3JhZ2VMb2NhdGlvbkJhc2VkVHlwZU1hcFtLXSB7XHJcbiAgICAgICAgY29uc3QgY29tcG9zaXRlS2V5ID0gdGhpcy5nZXRMb2NhdGlvbkJhc2VkS2V5KGtleSk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0KGNvbXBvc2l0ZUtleSBhcyBhbnkpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyByZW1vdmUoa2V5OiBrZXlvZiBMb2NhbFN0b3JhZ2VUeXBlTWFwKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3Qga2V5TmFtZSA9IHRoaXMua2V5TmFtZShrZXkpO1xyXG4gICAgICAgIHNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oa2V5TmFtZSk7XHJcbiAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oa2V5TmFtZSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRMb2NhdGlvbkJhc2VkS2V5KGtleTogc3RyaW5nKSB7XHJcbiAgICAgICAgY29uc3QgcGF0aCA9IHRoaXMubG9jYXRpb24ucGF0aCgpO1xyXG4gICAgICAgIHJldHVybiBrZXkgKyBwYXRoO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUga2V5TmFtZShrZXk6IGtleW9mIExvY2FsU3RvcmFnZVR5cGVNYXApOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiBQUkVGSVggKyBrZXk7XHJcbiAgICB9XHJcbn1cclxuIl19
@@ -7,8 +7,13 @@ import { OverlayHostService } from '../overlay-host/overlay-host.service';
7
7
  import * as i0 from "@angular/core";
8
8
  import * as i1 from "../overlay-host/overlay-host.service";
9
9
  /**
10
+ * @description
10
11
  * This service is responsible for instantiating a ModalDialog component and
11
12
  * embedding the specified component within.
13
+ *
14
+ * @docsCategory providers
15
+ * @docsPage ModalService
16
+ * @docsWeight 0
12
17
  */
13
18
  export class ModalService {
14
19
  constructor(componentFactoryResolver, overlayHostService) {
@@ -16,12 +21,13 @@ export class ModalService {
16
21
  this.overlayHostService = overlayHostService;
17
22
  }
18
23
  /**
24
+ * @description
19
25
  * Create a modal from a component. The component must implement the {@link Dialog} interface.
20
26
  * Additionally, the component should include templates for the title and the buttons to be
21
27
  * displayed in the modal dialog. See example:
22
28
  *
23
29
  * @example
24
- * ```
30
+ * ```HTML
25
31
  * class MyDialog implements Dialog {
26
32
  * resolveWith: (result?: any) => void;
27
33
  *
@@ -37,31 +43,32 @@ export class ModalService {
37
43
  * }
38
44
  * ```
39
45
  *
40
- * ```
46
+ * @example
47
+ * ```HTML
41
48
  * <ng-template vdrDialogTitle>Title of the modal</ng-template>
42
49
  *
43
50
  * <p>
44
- * My Content
51
+ * My Content
45
52
  * </p>
46
53
  *
47
54
  * <ng-template vdrDialogButtons>
48
- * <button type="button"
49
- * class="btn"
50
- * (click)="cancel()">Cancel</button>
51
- * <button type="button"
52
- * class="btn btn-primary"
53
- * (click)="okay()">Okay</button>
55
+ * <button type="button"
56
+ * class="btn"
57
+ * (click)="cancel()">Cancel</button>
58
+ * <button type="button"
59
+ * class="btn btn-primary"
60
+ * (click)="okay()">Okay</button>
54
61
  * </ng-template>
55
62
  * ```
56
63
  */
57
64
  fromComponent(component, options) {
58
65
  const modalFactory = this.componentFactoryResolver.resolveComponentFactory(ModalDialogComponent);
59
- return from(this.overlayHostService.getHostView()).pipe(mergeMap((hostView) => {
66
+ return from(this.overlayHostService.getHostView()).pipe(mergeMap(hostView => {
60
67
  const modalComponentRef = hostView.createComponent(modalFactory);
61
68
  const modalInstance = modalComponentRef.instance;
62
69
  modalInstance.childComponentType = component;
63
70
  modalInstance.options = options;
64
- return new Observable((subscriber) => {
71
+ return new Observable(subscriber => {
65
72
  modalInstance.closeModal = (result) => {
66
73
  modalComponentRef.destroy();
67
74
  subscriber.next(result);
@@ -71,6 +78,7 @@ export class ModalService {
71
78
  }));
72
79
  }
73
80
  /**
81
+ * @description
74
82
  * Displays a modal dialog with the provided title, body and buttons.
75
83
  */
76
84
  dialog(config) {
@@ -89,4 +97,4 @@ ModalService.ctorParameters = () => [
89
97
  { type: ComponentFactoryResolver },
90
98
  { type: OverlayHostService }
91
99
  ];
92
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9zcmMvcHJvdmlkZXJzL21vZGFsL21vZGFsLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHdCQUF3QixFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVyRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN4QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFMUMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNkRBQTZELENBQUM7QUFDbkcsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sK0RBQStELENBQUM7QUFDdEcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7OztBQWtEMUU7OztHQUdHO0FBSUgsTUFBTSxPQUFPLFlBQVk7SUFDckIsWUFDWSx3QkFBa0QsRUFDbEQsa0JBQXNDO1FBRHRDLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBMEI7UUFDbEQsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtJQUMvQyxDQUFDO0lBRUo7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09Bc0NHO0lBQ0gsYUFBYSxDQUNULFNBQW9DLEVBQ3BDLE9BQXlCO1FBRXpCLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyx1QkFBdUIsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBRWpHLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FDbkQsUUFBUSxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDbEIsTUFBTSxpQkFBaUIsR0FBRyxRQUFRLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ2pFLE1BQU0sYUFBYSxHQUE4QixpQkFBaUIsQ0FBQyxRQUFRLENBQUM7WUFDNUUsYUFBYSxDQUFDLGtCQUFrQixHQUFHLFNBQVMsQ0FBQztZQUM3QyxhQUFhLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztZQUVoQyxPQUFPLElBQUksVUFBVSxDQUFJLENBQUMsVUFBVSxFQUFFLEVBQUU7Z0JBQ3BDLGFBQWEsQ0FBQyxVQUFVLEdBQUcsQ0FBQyxNQUFTLEVBQUUsRUFBRTtvQkFDckMsaUJBQWlCLENBQUMsT0FBTyxFQUFFLENBQUM7b0JBQzVCLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQ3hCLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDMUIsQ0FBQyxDQUFDO1lBQ04sQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FDTCxDQUFDO0lBQ04sQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFJLE1BQXVCO1FBQzdCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsRUFBRTtZQUM3QyxNQUFNLEVBQUUsTUFBTTtTQUNqQixDQUFDLENBQUM7SUFDUCxDQUFDOzs7O1lBL0VKLFVBQVUsU0FBQztnQkFDUixVQUFVLEVBQUUsTUFBTTthQUNyQjs7O1lBL0RRLHdCQUF3QjtZQU94QixrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVHlwZSB9IGZyb20gJ0B2ZW5kdXJlL2NvbW1vbi9saWIvc2hhcmVkLXR5cGVzJztcclxuaW1wb3J0IHsgZnJvbSwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtZXJnZU1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmltcG9ydCB7IE1vZGFsRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vc2hhcmVkL2NvbXBvbmVudHMvbW9kYWwtZGlhbG9nL21vZGFsLWRpYWxvZy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTaW1wbGVEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuLi8uLi9zaGFyZWQvY29tcG9uZW50cy9zaW1wbGUtZGlhbG9nL3NpbXBsZS1kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgT3ZlcmxheUhvc3RTZXJ2aWNlIH0gZnJvbSAnLi4vb3ZlcmxheS1ob3N0L292ZXJsYXktaG9zdC5zZXJ2aWNlJztcclxuXHJcbi8qKlxyXG4gKiBBbnkgY29tcG9uZW50IGludGVuZGVkIHRvIGJlIHVzZWQgd2l0aCB0aGUgTW9kYWxTZXJ2aWNlLmZyb21Db21wb25lbnQoKSBtZXRob2QgbXVzdCBpbXBsZW1lbnRcclxuICogdGhpcyBpbnRlcmZhY2UuXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIERpYWxvZzxSID0gYW55PiB7XHJcbiAgICAvKipcclxuICAgICAqIEZ1bmN0aW9uIHRvIGJlIGludm9rZWQgaW4gb3JkZXIgdG8gY2xvc2UgdGhlIGRpYWxvZyB3aGVuIHRoZSBhY3Rpb24gaXMgY29tcGxldGUuXHJcbiAgICAgKiBUaGUgT2JzZXJ2YWJsZSByZXR1cm5lZCBmcm9tIHRoZSAuZnJvbUNvbXBvbmVudCgpIG1ldGhvZCB3aWxsIGVtaXQgdGhlIHZhbHVlIHBhc3NlZFxyXG4gICAgICogdG8gdGhpcyBtZXRob2QgYW5kIHRoZW4gY29tcGxldGUuXHJcbiAgICAgKi9cclxuICAgIHJlc29sdmVXaXRoOiAocmVzdWx0PzogUikgPT4gdm9pZDtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBEaWFsb2dCdXR0b25Db25maWc8VD4ge1xyXG4gICAgbGFiZWw6IHN0cmluZztcclxuICAgIHR5cGU6ICdzZWNvbmRhcnknIHwgJ3ByaW1hcnknIHwgJ2Rhbmdlcic7XHJcbiAgICByZXR1cm5WYWx1ZT86IFQ7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDb25maWd1cmVzIGEgZ2VuZXJpYyBtb2RhbCBkaWFsb2cuXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIERpYWxvZ0NvbmZpZzxUPiB7XHJcbiAgICB0aXRsZTogc3RyaW5nO1xyXG4gICAgYm9keT86IHN0cmluZztcclxuICAgIHRyYW5zbGF0aW9uVmFycz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIHwgbnVtYmVyIH07XHJcbiAgICBidXR0b25zOiBBcnJheTxEaWFsb2dCdXR0b25Db25maWc8VD4+O1xyXG59XHJcblxyXG4vKipcclxuICogT3B0aW9ucyB0byBjb25maWd1cmUgdGhlIGJlaGF2aW91ciBvZiB0aGUgbW9kYWwuXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIE1vZGFsT3B0aW9uczxUPiB7XHJcbiAgICAvKiogU2V0cyB0aGUgd2lkdGggb2YgdGhlIGRpYWxvZyAqL1xyXG4gICAgc2l6ZT86ICdzbScgfCAnbWQnIHwgJ2xnJyB8ICd4bCc7XHJcbiAgICAvKiogU2V0cyB0aGUgdmVydGljYWwgYWxpZ25tZW50IG9mIHRoZSBkaWFsb2cgKi9cclxuICAgIHZlcnRpY2FsQWxpZ24/OiAndG9wJyB8ICdjZW50ZXInIHwgJ2JvdHRvbSc7XHJcbiAgICAvKipcclxuICAgICAqIFdoZW4gdHJ1ZSwgdGhlIFwieFwiIGljb24gaXMgc2hvd25cclxuICAgICAqIGFuZCBjbGlja2luZyBpdCBvciB0aGUgbWFzayB3aWxsIGNsb3NlIHRoZSBkaWFsb2dcclxuICAgICAqL1xyXG4gICAgY2xvc2FibGU/OiBib29sZWFuO1xyXG4gICAgLyoqXHJcbiAgICAgKiBWYWx1ZXMgdG8gYmUgcGFzc2VkIGRpcmVjdGx5IHRvIHRoZSBjb21wb25lbnQuXHJcbiAgICAgKi9cclxuICAgIGxvY2Fscz86IFBhcnRpYWw8VD47XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBUaGlzIHNlcnZpY2UgaXMgcmVzcG9uc2libGUgZm9yIGluc3RhbnRpYXRpbmcgYSBNb2RhbERpYWxvZyBjb21wb25lbnQgYW5kXHJcbiAqIGVtYmVkZGluZyB0aGUgc3BlY2lmaWVkIGNvbXBvbmVudCB3aXRoaW4uXHJcbiAqL1xyXG5ASW5qZWN0YWJsZSh7XHJcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNb2RhbFNlcnZpY2Uge1xyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcclxuICAgICAgICBwcml2YXRlIG92ZXJsYXlIb3N0U2VydmljZTogT3ZlcmxheUhvc3RTZXJ2aWNlLFxyXG4gICAgKSB7fVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ3JlYXRlIGEgbW9kYWwgZnJvbSBhIGNvbXBvbmVudC4gVGhlIGNvbXBvbmVudCBtdXN0IGltcGxlbWVudCB0aGUge0BsaW5rIERpYWxvZ30gaW50ZXJmYWNlLlxyXG4gICAgICogQWRkaXRpb25hbGx5LCB0aGUgY29tcG9uZW50IHNob3VsZCBpbmNsdWRlIHRlbXBsYXRlcyBmb3IgdGhlIHRpdGxlIGFuZCB0aGUgYnV0dG9ucyB0byBiZVxyXG4gICAgICogZGlzcGxheWVkIGluIHRoZSBtb2RhbCBkaWFsb2cuIFNlZSBleGFtcGxlOlxyXG4gICAgICpcclxuICAgICAqIEBleGFtcGxlXHJcbiAgICAgKiBgYGBcclxuICAgICAqIGNsYXNzIE15RGlhbG9nIGltcGxlbWVudHMgRGlhbG9nIHtcclxuICAgICAqICByZXNvbHZlV2l0aDogKHJlc3VsdD86IGFueSkgPT4gdm9pZDtcclxuICAgICAqXHJcbiAgICAgKiAgb2theSgpIHtcclxuICAgICAqICAgIGRvU29tZVdvcmsoKS5zdWJzY3JpYmUocmVzdWx0ID0+IHtcclxuICAgICAqICAgICAgdGhpcy5yZXNvbHZlV2l0aChyZXN1bHQpO1xyXG4gICAgICogICAgfSlcclxuICAgICAqICB9XHJcbiAgICAgKlxyXG4gICAgICogIGNhbmNlbCgpIHtcclxuICAgICAqICAgIHRoaXMucmVzb2x2ZVdpdGgoZmFsc2UpO1xyXG4gICAgICogIH1cclxuICAgICAqIH1cclxuICAgICAqIGBgYFxyXG4gICAgICpcclxuICAgICAqIGBgYFxyXG4gICAgICogPG5nLXRlbXBsYXRlIHZkckRpYWxvZ1RpdGxlPlRpdGxlIG9mIHRoZSBtb2RhbDwvbmctdGVtcGxhdGU+XHJcbiAgICAgKlxyXG4gICAgICogPHA+XHJcbiAgICAgKiAgICAgTXkgQ29udGVudFxyXG4gICAgICogPC9wPlxyXG4gICAgICpcclxuICAgICAqIDxuZy10ZW1wbGF0ZSB2ZHJEaWFsb2dCdXR0b25zPlxyXG4gICAgICogICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgKiAgICAgICAgICAgICBjbGFzcz1cImJ0blwiXHJcbiAgICAgKiAgICAgICAgICAgICAoY2xpY2spPVwiY2FuY2VsKClcIj5DYW5jZWw8L2J1dHRvbj5cclxuICAgICAqICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICogICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIlxyXG4gICAgICogICAgICAgICAgICAgKGNsaWNrKT1cIm9rYXkoKVwiPk9rYXk8L2J1dHRvbj5cclxuICAgICAqIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgKiBgYGBcclxuICAgICAqL1xyXG4gICAgZnJvbUNvbXBvbmVudDxUIGV4dGVuZHMgRGlhbG9nPGFueT4sIFI+KFxyXG4gICAgICAgIGNvbXBvbmVudDogVHlwZTxUPiAmIFR5cGU8RGlhbG9nPFI+PixcclxuICAgICAgICBvcHRpb25zPzogTW9kYWxPcHRpb25zPFQ+LFxyXG4gICAgKTogT2JzZXJ2YWJsZTxSIHwgdW5kZWZpbmVkPiB7XHJcbiAgICAgICAgY29uc3QgbW9kYWxGYWN0b3J5ID0gdGhpcy5jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoTW9kYWxEaWFsb2dDb21wb25lbnQpO1xyXG5cclxuICAgICAgICByZXR1cm4gZnJvbSh0aGlzLm92ZXJsYXlIb3N0U2VydmljZS5nZXRIb3N0VmlldygpKS5waXBlKFxyXG4gICAgICAgICAgICBtZXJnZU1hcCgoaG9zdFZpZXcpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IG1vZGFsQ29tcG9uZW50UmVmID0gaG9zdFZpZXcuY3JlYXRlQ29tcG9uZW50KG1vZGFsRmFjdG9yeSk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBtb2RhbEluc3RhbmNlOiBNb2RhbERpYWxvZ0NvbXBvbmVudDxhbnk+ID0gbW9kYWxDb21wb25lbnRSZWYuaW5zdGFuY2U7XHJcbiAgICAgICAgICAgICAgICBtb2RhbEluc3RhbmNlLmNoaWxkQ29tcG9uZW50VHlwZSA9IGNvbXBvbmVudDtcclxuICAgICAgICAgICAgICAgIG1vZGFsSW5zdGFuY2Uub3B0aW9ucyA9IG9wdGlvbnM7XHJcblxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlPFI+KChzdWJzY3JpYmVyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgbW9kYWxJbnN0YW5jZS5jbG9zZU1vZGFsID0gKHJlc3VsdDogUikgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBtb2RhbENvbXBvbmVudFJlZi5kZXN0cm95KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN1YnNjcmliZXIubmV4dChyZXN1bHQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdWJzY3JpYmVyLmNvbXBsZXRlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGlzcGxheXMgYSBtb2RhbCBkaWFsb2cgd2l0aCB0aGUgcHJvdmlkZWQgdGl0bGUsIGJvZHkgYW5kIGJ1dHRvbnMuXHJcbiAgICAgKi9cclxuICAgIGRpYWxvZzxUPihjb25maWc6IERpYWxvZ0NvbmZpZzxUPik6IE9ic2VydmFibGU8VCB8IHVuZGVmaW5lZD4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmZyb21Db21wb25lbnQoU2ltcGxlRGlhbG9nQ29tcG9uZW50LCB7XHJcbiAgICAgICAgICAgIGxvY2FsczogY29uZmlnLFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
100
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9zcmMvcHJvdmlkZXJzL21vZGFsL21vZGFsLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHdCQUF3QixFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVyRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN4QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFMUMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNkRBQTZELENBQUM7QUFDbkcsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sK0RBQStELENBQUM7QUFDdEcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7OztBQXVFMUU7Ozs7Ozs7O0dBUUc7QUFJSCxNQUFNLE9BQU8sWUFBWTtJQUNyQixZQUNZLHdCQUFrRCxFQUNsRCxrQkFBc0M7UUFEdEMsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtRQUNsRCx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO0lBQy9DLENBQUM7SUFFSjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQXdDRztJQUNILGFBQWEsQ0FDVCxTQUFvQyxFQUNwQyxPQUF5QjtRQUV6QixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsd0JBQXdCLENBQUMsdUJBQXVCLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUVqRyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQ25ELFFBQVEsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUNoQixNQUFNLGlCQUFpQixHQUFHLFFBQVEsQ0FBQyxlQUFlLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDakUsTUFBTSxhQUFhLEdBQThCLGlCQUFpQixDQUFDLFFBQVEsQ0FBQztZQUM1RSxhQUFhLENBQUMsa0JBQWtCLEdBQUcsU0FBUyxDQUFDO1lBQzdDLGFBQWEsQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1lBRWhDLE9BQU8sSUFBSSxVQUFVLENBQUksVUFBVSxDQUFDLEVBQUU7Z0JBQ2xDLGFBQWEsQ0FBQyxVQUFVLEdBQUcsQ0FBQyxNQUFTLEVBQUUsRUFBRTtvQkFDckMsaUJBQWlCLENBQUMsT0FBTyxFQUFFLENBQUM7b0JBQzVCLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQ3hCLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDMUIsQ0FBQyxDQUFDO1lBQ04sQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FDTCxDQUFDO0lBQ04sQ0FBQztJQUVEOzs7T0FHRztJQUNILE1BQU0sQ0FBSSxNQUF1QjtRQUM3QixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMscUJBQXFCLEVBQUU7WUFDN0MsTUFBTSxFQUFFLE1BQU07U0FDakIsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs7OztZQWxGSixVQUFVLFNBQUM7Z0JBQ1IsVUFBVSxFQUFFLE1BQU07YUFDckI7OztZQXpGUSx3QkFBd0I7WUFPeEIsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFR5cGUgfSBmcm9tICdAdmVuZHVyZS9jb21tb24vbGliL3NoYXJlZC10eXBlcyc7XHJcbmltcG9ydCB7IGZyb20sIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWVyZ2VNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQgeyBNb2RhbERpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL3NoYXJlZC9jb21wb25lbnRzL21vZGFsLWRpYWxvZy9tb2RhbC1kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU2ltcGxlRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vc2hhcmVkL2NvbXBvbmVudHMvc2ltcGxlLWRpYWxvZy9zaW1wbGUtZGlhbG9nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE92ZXJsYXlIb3N0U2VydmljZSB9IGZyb20gJy4uL292ZXJsYXktaG9zdC9vdmVybGF5LWhvc3Quc2VydmljZSc7XHJcblxyXG4vKipcclxuICogQGRlc2NyaXB0aW9uXHJcbiAqIEFueSBjb21wb25lbnQgaW50ZW5kZWQgdG8gYmUgdXNlZCB3aXRoIHRoZSBNb2RhbFNlcnZpY2UuZnJvbUNvbXBvbmVudCgpIG1ldGhvZCBtdXN0IGltcGxlbWVudFxyXG4gKiB0aGlzIGludGVyZmFjZS5cclxuICpcclxuICogQGRvY3NDYXRlZ29yeSBwcm92aWRlcnNcclxuICogQGRvY3NQYWdlIE1vZGFsU2VydmljZVxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBEaWFsb2c8UiA9IGFueT4ge1xyXG4gICAgLyoqXHJcbiAgICAgKiBAZGVzY3JpcHRpb25cclxuICAgICAqIEZ1bmN0aW9uIHRvIGJlIGludm9rZWQgaW4gb3JkZXIgdG8gY2xvc2UgdGhlIGRpYWxvZyB3aGVuIHRoZSBhY3Rpb24gaXMgY29tcGxldGUuXHJcbiAgICAgKiBUaGUgT2JzZXJ2YWJsZSByZXR1cm5lZCBmcm9tIHRoZSAuZnJvbUNvbXBvbmVudCgpIG1ldGhvZCB3aWxsIGVtaXQgdGhlIHZhbHVlIHBhc3NlZFxyXG4gICAgICogdG8gdGhpcyBtZXRob2QgYW5kIHRoZW4gY29tcGxldGUuXHJcbiAgICAgKi9cclxuICAgIHJlc29sdmVXaXRoOiAocmVzdWx0PzogUikgPT4gdm9pZDtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBEaWFsb2dCdXR0b25Db25maWc8VD4ge1xyXG4gICAgbGFiZWw6IHN0cmluZztcclxuICAgIHR5cGU6ICdzZWNvbmRhcnknIHwgJ3ByaW1hcnknIHwgJ2Rhbmdlcic7XHJcbiAgICByZXR1cm5WYWx1ZT86IFQ7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBAZGVzY3JpcHRpb25cclxuICogQ29uZmlndXJlcyBhIGdlbmVyaWMgbW9kYWwgZGlhbG9nLlxyXG4gKlxyXG4gKiBAZG9jc0NhdGVnb3J5IHByb3ZpZGVyc1xyXG4gKiBAZG9jc1BhZ2UgTW9kYWxTZXJ2aWNlXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIERpYWxvZ0NvbmZpZzxUPiB7XHJcbiAgICB0aXRsZTogc3RyaW5nO1xyXG4gICAgYm9keT86IHN0cmluZztcclxuICAgIHRyYW5zbGF0aW9uVmFycz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIHwgbnVtYmVyIH07XHJcbiAgICBidXR0b25zOiBBcnJheTxEaWFsb2dCdXR0b25Db25maWc8VD4+O1xyXG59XHJcblxyXG4vKipcclxuICogQGRlc2NyaXB0aW9uXHJcbiAqIE9wdGlvbnMgdG8gY29uZmlndXJlIHRoZSBiZWhhdmlvdXIgb2YgdGhlIG1vZGFsLlxyXG4gKlxyXG4gKiBAZG9jc0NhdGVnb3J5IHByb3ZpZGVyc1xyXG4gKiBAZG9jc1BhZ2UgTW9kYWxTZXJ2aWNlXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIE1vZGFsT3B0aW9uczxUPiB7XHJcbiAgICAvKipcclxuICAgICAqIEBkZXNjcmlwdGlvblxyXG4gICAgICogU2V0cyB0aGUgd2lkdGggb2YgdGhlIGRpYWxvZ1xyXG4gICAgICovXHJcbiAgICBzaXplPzogJ3NtJyB8ICdtZCcgfCAnbGcnIHwgJ3hsJztcclxuICAgIC8qKlxyXG4gICAgICogQGRlc2NyaXB0aW9uXHJcbiAgICAgKiBTZXRzIHRoZSB2ZXJ0aWNhbCBhbGlnbm1lbnQgb2YgdGhlIGRpYWxvZ1xyXG4gICAgICovXHJcbiAgICB2ZXJ0aWNhbEFsaWduPzogJ3RvcCcgfCAnY2VudGVyJyB8ICdib3R0b20nO1xyXG4gICAgLyoqXHJcbiAgICAgKiBAZGVzY3JpcHRpb25cclxuICAgICAqIFdoZW4gdHJ1ZSwgdGhlIFwieFwiIGljb24gaXMgc2hvd25cclxuICAgICAqIGFuZCBjbGlja2luZyBpdCBvciB0aGUgbWFzayB3aWxsIGNsb3NlIHRoZSBkaWFsb2dcclxuICAgICAqL1xyXG4gICAgY2xvc2FibGU/OiBib29sZWFuO1xyXG4gICAgLyoqXHJcbiAgICAgKiBAZGVzY3JpcHRpb25cclxuICAgICAqIFZhbHVlcyB0byBiZSBwYXNzZWQgZGlyZWN0bHkgdG8gdGhlIGNvbXBvbmVudCBiZWluZyBpbnN0YW50aWF0ZWQgaW5zaWRlIHRoZSBkaWFsb2cuXHJcbiAgICAgKi9cclxuICAgIGxvY2Fscz86IFBhcnRpYWw8VD47XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBAZGVzY3JpcHRpb25cclxuICogVGhpcyBzZXJ2aWNlIGlzIHJlc3BvbnNpYmxlIGZvciBpbnN0YW50aWF0aW5nIGEgTW9kYWxEaWFsb2cgY29tcG9uZW50IGFuZFxyXG4gKiBlbWJlZGRpbmcgdGhlIHNwZWNpZmllZCBjb21wb25lbnQgd2l0aGluLlxyXG4gKlxyXG4gKiBAZG9jc0NhdGVnb3J5IHByb3ZpZGVyc1xyXG4gKiBAZG9jc1BhZ2UgTW9kYWxTZXJ2aWNlXHJcbiAqIEBkb2NzV2VpZ2h0IDBcclxuICovXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIE1vZGFsU2VydmljZSB7XHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIGNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxyXG4gICAgICAgIHByaXZhdGUgb3ZlcmxheUhvc3RTZXJ2aWNlOiBPdmVybGF5SG9zdFNlcnZpY2UsXHJcbiAgICApIHt9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAZGVzY3JpcHRpb25cclxuICAgICAqIENyZWF0ZSBhIG1vZGFsIGZyb20gYSBjb21wb25lbnQuIFRoZSBjb21wb25lbnQgbXVzdCBpbXBsZW1lbnQgdGhlIHtAbGluayBEaWFsb2d9IGludGVyZmFjZS5cclxuICAgICAqIEFkZGl0aW9uYWxseSwgdGhlIGNvbXBvbmVudCBzaG91bGQgaW5jbHVkZSB0ZW1wbGF0ZXMgZm9yIHRoZSB0aXRsZSBhbmQgdGhlIGJ1dHRvbnMgdG8gYmVcclxuICAgICAqIGRpc3BsYXllZCBpbiB0aGUgbW9kYWwgZGlhbG9nLiBTZWUgZXhhbXBsZTpcclxuICAgICAqXHJcbiAgICAgKiBAZXhhbXBsZVxyXG4gICAgICogYGBgSFRNTFxyXG4gICAgICogY2xhc3MgTXlEaWFsb2cgaW1wbGVtZW50cyBEaWFsb2cge1xyXG4gICAgICogIHJlc29sdmVXaXRoOiAocmVzdWx0PzogYW55KSA9PiB2b2lkO1xyXG4gICAgICpcclxuICAgICAqICBva2F5KCkge1xyXG4gICAgICogICAgZG9Tb21lV29yaygpLnN1YnNjcmliZShyZXN1bHQgPT4ge1xyXG4gICAgICogICAgICB0aGlzLnJlc29sdmVXaXRoKHJlc3VsdCk7XHJcbiAgICAgKiAgICB9KVxyXG4gICAgICogIH1cclxuICAgICAqXHJcbiAgICAgKiAgY2FuY2VsKCkge1xyXG4gICAgICogICAgdGhpcy5yZXNvbHZlV2l0aChmYWxzZSk7XHJcbiAgICAgKiAgfVxyXG4gICAgICogfVxyXG4gICAgICogYGBgXHJcbiAgICAgKlxyXG4gICAgICogQGV4YW1wbGVcclxuICAgICAqIGBgYEhUTUxcclxuICAgICAqIDxuZy10ZW1wbGF0ZSB2ZHJEaWFsb2dUaXRsZT5UaXRsZSBvZiB0aGUgbW9kYWw8L25nLXRlbXBsYXRlPlxyXG4gICAgICpcclxuICAgICAqIDxwPlxyXG4gICAgICogICBNeSBDb250ZW50XHJcbiAgICAgKiA8L3A+XHJcbiAgICAgKlxyXG4gICAgICogPG5nLXRlbXBsYXRlIHZkckRpYWxvZ0J1dHRvbnM+XHJcbiAgICAgKiAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgKiAgICAgICAgICAgY2xhc3M9XCJidG5cIlxyXG4gICAgICogICAgICAgICAgIChjbGljayk9XCJjYW5jZWwoKVwiPkNhbmNlbDwvYnV0dG9uPlxyXG4gICAgICogICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICogICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCJcclxuICAgICAqICAgICAgICAgICAoY2xpY2spPVwib2theSgpXCI+T2theTwvYnV0dG9uPlxyXG4gICAgICogPC9uZy10ZW1wbGF0ZT5cclxuICAgICAqIGBgYFxyXG4gICAgICovXHJcbiAgICBmcm9tQ29tcG9uZW50PFQgZXh0ZW5kcyBEaWFsb2c8YW55PiwgUj4oXHJcbiAgICAgICAgY29tcG9uZW50OiBUeXBlPFQ+ICYgVHlwZTxEaWFsb2c8Uj4+LFxyXG4gICAgICAgIG9wdGlvbnM/OiBNb2RhbE9wdGlvbnM8VD4sXHJcbiAgICApOiBPYnNlcnZhYmxlPFIgfCB1bmRlZmluZWQ+IHtcclxuICAgICAgICBjb25zdCBtb2RhbEZhY3RvcnkgPSB0aGlzLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShNb2RhbERpYWxvZ0NvbXBvbmVudCk7XHJcblxyXG4gICAgICAgIHJldHVybiBmcm9tKHRoaXMub3ZlcmxheUhvc3RTZXJ2aWNlLmdldEhvc3RWaWV3KCkpLnBpcGUoXHJcbiAgICAgICAgICAgIG1lcmdlTWFwKGhvc3RWaWV3ID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IG1vZGFsQ29tcG9uZW50UmVmID0gaG9zdFZpZXcuY3JlYXRlQ29tcG9uZW50KG1vZGFsRmFjdG9yeSk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBtb2RhbEluc3RhbmNlOiBNb2RhbERpYWxvZ0NvbXBvbmVudDxhbnk+ID0gbW9kYWxDb21wb25lbnRSZWYuaW5zdGFuY2U7XHJcbiAgICAgICAgICAgICAgICBtb2RhbEluc3RhbmNlLmNoaWxkQ29tcG9uZW50VHlwZSA9IGNvbXBvbmVudDtcclxuICAgICAgICAgICAgICAgIG1vZGFsSW5zdGFuY2Uub3B0aW9ucyA9IG9wdGlvbnM7XHJcblxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlPFI+KHN1YnNjcmliZXIgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIG1vZGFsSW5zdGFuY2UuY2xvc2VNb2RhbCA9IChyZXN1bHQ6IFIpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbW9kYWxDb21wb25lbnRSZWYuZGVzdHJveSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdWJzY3JpYmVyLm5leHQocmVzdWx0KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEBkZXNjcmlwdGlvblxyXG4gICAgICogRGlzcGxheXMgYSBtb2RhbCBkaWFsb2cgd2l0aCB0aGUgcHJvdmlkZWQgdGl0bGUsIGJvZHkgYW5kIGJ1dHRvbnMuXHJcbiAgICAgKi9cclxuICAgIGRpYWxvZzxUPihjb25maWc6IERpYWxvZ0NvbmZpZzxUPik6IE9ic2VydmFibGU8VCB8IHVuZGVmaW5lZD4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmZyb21Db21wb25lbnQoU2ltcGxlRGlhbG9nQ29tcG9uZW50LCB7XHJcbiAgICAgICAgICAgIGxvY2FsczogY29uZmlnLFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2LWJ1aWxkZXItdHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL3Byb3ZpZGVycy9uYXYtYnVpbGRlci9uYXYtYnVpbGRlci10eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBEYXRhU2VydmljZSB9IGZyb20gJy4uLy4uL2RhdGEvcHJvdmlkZXJzL2RhdGEuc2VydmljZSc7XG5pbXBvcnQgeyBOb3RpZmljYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vbm90aWZpY2F0aW9uL25vdGlmaWNhdGlvbi5zZXJ2aWNlJztcblxuZXhwb3J0IHR5cGUgTmF2TWVudUJhZGdlVHlwZSA9ICdub25lJyB8ICdpbmZvJyB8ICdzdWNjZXNzJyB8ICd3YXJuaW5nJyB8ICdlcnJvcic7XG5cbi8qKlxuICogQSBjb2xvci1jb2RlZCBub3RpZmljYXRpb24gYmFkZ2Ugd2hpY2ggd2lsbCBiZSBkaXNwbGF5ZWQgYnkgdGhlXG4gKiBOYXZNZW51SXRlbSdzIGljb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTmF2TWVudUJhZGdlIHtcbiAgICB0eXBlOiBOYXZNZW51QmFkZ2VUeXBlO1xuICAgIC8qKlxuICAgICAqIElmIHRydWUsIHRoZSBiYWRnZSB3aWxsIHByb3BhZ2F0ZSB0byB0aGUgTmF2TWVudUl0ZW0nc1xuICAgICAqIHBhcmVudCBzZWN0aW9uLCBkaXNwbGF5aW5nIGEgbm90aWZpY2F0aW9uIGJhZGdlIG5leHRcbiAgICAgKiB0byB0aGUgc2VjdGlvbiBuYW1lLlxuICAgICAqL1xuICAgIHByb3BhZ2F0ZVRvU2VjdGlvbj86IGJvb2xlYW47XG59XG5cbi8qKlxuICogQSBOYXZNZW51SXRlbSBpcyBhIG1lbnUgaXRlbSBpbiB0aGUgbWFpbiAobGVmdC1oYW5kIHNpZGUpIG5hdlxuICogYmFyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE5hdk1lbnVJdGVtIHtcbiAgICBpZDogc3RyaW5nO1xuICAgIGxhYmVsOiBzdHJpbmc7XG4gICAgcm91dGVyTGluazogUm91dGVyTGlua0RlZmluaXRpb247XG4gICAgb25DbGljaz86IChldmVudDogTW91c2VFdmVudCkgPT4gdm9pZDtcbiAgICBpY29uPzogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIENvbnRyb2wgdGhlIGRpc3BsYXkgb2YgdGhpcyBpdGVtIGJhc2VkIG9uIHRoZSB1c2VyIHBlcm1pc3Npb25zLlxuICAgICAqL1xuICAgIHJlcXVpcmVzUGVybWlzc2lvbj86IHN0cmluZyB8ICgodXNlclBlcm1pc3Npb25zOiBzdHJpbmdbXSkgPT4gYm9vbGVhbik7XG4gICAgc3RhdHVzQmFkZ2U/OiBPYnNlcnZhYmxlPE5hdk1lbnVCYWRnZT47XG59XG5cbi8qKlxuICogQSBOYXZNZW51U2VjdGlvbiBpcyBhIGdyb3VwaW5nIG9mIGxpbmtzIGluIHRoZSBtYWluXG4gKiAobGVmdC1oYW5kIHNpZGUpIG5hdiBiYXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTmF2TWVudVNlY3Rpb24ge1xuICAgIGlkOiBzdHJpbmc7XG4gICAgbGFiZWw6IHN0cmluZztcbiAgICBpdGVtczogTmF2TWVudUl0ZW1bXTtcbiAgICAvKipcbiAgICAgKiBDb250cm9sIHRoZSBkaXNwbGF5IG9mIHRoaXMgaXRlbSBiYXNlZCBvbiB0aGUgdXNlciBwZXJtaXNzaW9ucy5cbiAgICAgKi9cbiAgICByZXF1aXJlc1Blcm1pc3Npb24/OiBzdHJpbmcgfCAoKHVzZXJQZXJtaXNzaW9uczogc3RyaW5nW10pID0+IGJvb2xlYW4pO1xuICAgIGNvbGxhcHNpYmxlPzogYm9vbGVhbjtcbiAgICBjb2xsYXBzZWRCeURlZmF1bHQ/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIFV0aWxpdGllcyBhdmFpbGFibGUgdG8gdGhlIG9uQ2xpY2sgaGFuZGxlciBvZiBhbiBBY3Rpb25CYXJJdGVtLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE9uQ2xpY2tDb250ZXh0IHtcbiAgICByb3V0ZTogQWN0aXZhdGVkUm91dGU7XG4gICAgZGF0YVNlcnZpY2U6IERhdGFTZXJ2aWNlO1xuICAgIG5vdGlmaWNhdGlvblNlcnZpY2U6IE5vdGlmaWNhdGlvblNlcnZpY2U7XG59XG5cbi8qKlxuICogQSBidXR0b24gaW4gdGhlIEFjdGlvbkJhciBhcmVhIGF0IHRoZSB0b3Agb2Ygb25lIG9mIHRoZSBsaXN0IG9yIGRldGFpbCB2aWV3cy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBY3Rpb25CYXJJdGVtIHtcbiAgICBpZDogc3RyaW5nO1xuICAgIGxhYmVsOiBzdHJpbmc7XG4gICAgbG9jYXRpb25JZDogc3RyaW5nO1xuICAgIGRpc2FibGVkPzogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgICBvbkNsaWNrPzogKGV2ZW50OiBNb3VzZUV2ZW50LCBjb250ZXh0OiBPbkNsaWNrQ29udGV4dCkgPT4gdm9pZDtcbiAgICByb3V0ZXJMaW5rPzogUm91dGVyTGlua0RlZmluaXRpb247XG4gICAgYnV0dG9uQ29sb3I/OiAncHJpbWFyeScgfCAnc3VjY2VzcycgfCAnd2FybmluZyc7XG4gICAgYnV0dG9uU3R5bGU/OiAnc29saWQnIHwgJ291dGxpbmUnIHwgJ2xpbmsnO1xuICAgIGljb24/OiBzdHJpbmc7XG4gICAgcmVxdWlyZXNQZXJtaXNzaW9uPzogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBSb3V0ZXJMaW5rRGVmaW5pdGlvbiA9ICgocm91dGU6IEFjdGl2YXRlZFJvdXRlKSA9PiBhbnlbXSkgfCBhbnlbXTtcbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2LWJ1aWxkZXItdHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL3Byb3ZpZGVycy9uYXYtYnVpbGRlci9uYXYtYnVpbGRlci10eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQgeyBBY3Rpb25CYXJMb2NhdGlvbklkLCBVSUV4dGVuc2lvbkxvY2F0aW9uSWQgfSBmcm9tICcuLi8uLi9jb21tb24vY29tcG9uZW50LXJlZ2lzdHJ5LXR5cGVzJztcclxuaW1wb3J0IHsgRGF0YVNlcnZpY2UgfSBmcm9tICcuLi8uLi9kYXRhL3Byb3ZpZGVycy9kYXRhLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBOb3RpZmljYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vbm90aWZpY2F0aW9uL25vdGlmaWNhdGlvbi5zZXJ2aWNlJztcclxuXHJcbmV4cG9ydCB0eXBlIE5hdk1lbnVCYWRnZVR5cGUgPSAnbm9uZScgfCAnaW5mbycgfCAnc3VjY2VzcycgfCAnd2FybmluZycgfCAnZXJyb3InO1xyXG5cclxuLyoqXHJcbiAqIEBkZXNjcmlwdGlvblxyXG4gKiBBIGNvbG9yLWNvZGVkIG5vdGlmaWNhdGlvbiBiYWRnZSB3aGljaCB3aWxsIGJlIGRpc3BsYXllZCBieSB0aGVcclxuICogTmF2TWVudUl0ZW0ncyBpY29uLlxyXG4gKlxyXG4gKiBAZG9jc0NhdGVnb3J5IG5hdi1tZW51XHJcbiAqIEBkb2NzUGFnZSBuYXZpZ2F0aW9uLXR5cGVzXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIE5hdk1lbnVCYWRnZSB7XHJcbiAgICB0eXBlOiBOYXZNZW51QmFkZ2VUeXBlO1xyXG4gICAgLyoqXHJcbiAgICAgKiBAZGVzY3JpcHRpb25cclxuICAgICAqIElmIHRydWUsIHRoZSBiYWRnZSB3aWxsIHByb3BhZ2F0ZSB0byB0aGUgTmF2TWVudUl0ZW0nc1xyXG4gICAgICogcGFyZW50IHNlY3Rpb24sIGRpc3BsYXlpbmcgYSBub3RpZmljYXRpb24gYmFkZ2UgbmV4dFxyXG4gICAgICogdG8gdGhlIHNlY3Rpb24gbmFtZS5cclxuICAgICAqL1xyXG4gICAgcHJvcGFnYXRlVG9TZWN0aW9uPzogYm9vbGVhbjtcclxufVxyXG5cclxuLyoqXHJcbiAqIEBkZXNjcmlwdGlvblxyXG4gKiBBIE5hdk1lbnVJdGVtIGlzIGEgbWVudSBpdGVtIGluIHRoZSBtYWluIChsZWZ0LWhhbmQgc2lkZSkgbmF2XHJcbiAqIGJhci5cclxuICpcclxuICogQGRvY3NDYXRlZ29yeSBuYXYtbWVudVxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBOYXZNZW51SXRlbSB7XHJcbiAgICBpZDogc3RyaW5nO1xyXG4gICAgbGFiZWw6IHN0cmluZztcclxuICAgIHJvdXRlckxpbms6IFJvdXRlckxpbmtEZWZpbml0aW9uO1xyXG4gICAgb25DbGljaz86IChldmVudDogTW91c2VFdmVudCkgPT4gdm9pZDtcclxuICAgIGljb24/OiBzdHJpbmc7XHJcbiAgICAvKipcclxuICAgICAqIENvbnRyb2wgdGhlIGRpc3BsYXkgb2YgdGhpcyBpdGVtIGJhc2VkIG9uIHRoZSB1c2VyIHBlcm1pc3Npb25zLlxyXG4gICAgICovXHJcbiAgICByZXF1aXJlc1Blcm1pc3Npb24/OiBzdHJpbmcgfCAoKHVzZXJQZXJtaXNzaW9uczogc3RyaW5nW10pID0+IGJvb2xlYW4pO1xyXG4gICAgc3RhdHVzQmFkZ2U/OiBPYnNlcnZhYmxlPE5hdk1lbnVCYWRnZT47XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBAZGVzY3JpcHRpb25cclxuICogQSBOYXZNZW51U2VjdGlvbiBpcyBhIGdyb3VwaW5nIG9mIGxpbmtzIGluIHRoZSBtYWluXHJcbiAqIChsZWZ0LWhhbmQgc2lkZSkgbmF2IGJhci5cclxuICpcclxuICogQGRvY3NDYXRlZ29yeSBuYXYtbWVudVxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBOYXZNZW51U2VjdGlvbiB7XHJcbiAgICBpZDogc3RyaW5nO1xyXG4gICAgbGFiZWw6IHN0cmluZztcclxuICAgIGl0ZW1zOiBOYXZNZW51SXRlbVtdO1xyXG4gICAgLyoqXHJcbiAgICAgKiBDb250cm9sIHRoZSBkaXNwbGF5IG9mIHRoaXMgaXRlbSBiYXNlZCBvbiB0aGUgdXNlciBwZXJtaXNzaW9ucy5cclxuICAgICAqL1xyXG4gICAgcmVxdWlyZXNQZXJtaXNzaW9uPzogc3RyaW5nIHwgKCh1c2VyUGVybWlzc2lvbnM6IHN0cmluZ1tdKSA9PiBib29sZWFuKTtcclxuICAgIGNvbGxhcHNpYmxlPzogYm9vbGVhbjtcclxuICAgIGNvbGxhcHNlZEJ5RGVmYXVsdD86IGJvb2xlYW47XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBAZGVzY3JpcHRpb25cclxuICogVXRpbGl0aWVzIGF2YWlsYWJsZSB0byB0aGUgb25DbGljayBoYW5kbGVyIG9mIGFuIEFjdGlvbkJhckl0ZW0uXHJcbiAqXHJcbiAqIEBkb2NzQ2F0ZWdvcnkgYWN0aW9uLWJhclxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBPbkNsaWNrQ29udGV4dCB7XHJcbiAgICByb3V0ZTogQWN0aXZhdGVkUm91dGU7XHJcbiAgICBkYXRhU2VydmljZTogRGF0YVNlcnZpY2U7XHJcbiAgICBub3RpZmljYXRpb25TZXJ2aWNlOiBOb3RpZmljYXRpb25TZXJ2aWNlO1xyXG59XHJcblxyXG4vKipcclxuICogQGRlc2NyaXB0aW9uXHJcbiAqIEEgYnV0dG9uIGluIHRoZSBBY3Rpb25CYXIgYXJlYSBhdCB0aGUgdG9wIG9mIG9uZSBvZiB0aGUgbGlzdCBvciBkZXRhaWwgdmlld3MuXHJcbiAqXHJcbiAqIEBkb2NzQ2F0ZWdvcnkgYWN0aW9uLWJhclxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBBY3Rpb25CYXJJdGVtIHtcclxuICAgIGlkOiBzdHJpbmc7XHJcbiAgICBsYWJlbDogc3RyaW5nO1xyXG4gICAgbG9jYXRpb25JZDogQWN0aW9uQmFyTG9jYXRpb25JZDtcclxuICAgIGRpc2FibGVkPzogT2JzZXJ2YWJsZTxib29sZWFuPjtcclxuICAgIG9uQ2xpY2s/OiAoZXZlbnQ6IE1vdXNlRXZlbnQsIGNvbnRleHQ6IE9uQ2xpY2tDb250ZXh0KSA9PiB2b2lkO1xyXG4gICAgcm91dGVyTGluaz86IFJvdXRlckxpbmtEZWZpbml0aW9uO1xyXG4gICAgYnV0dG9uQ29sb3I/OiAncHJpbWFyeScgfCAnc3VjY2VzcycgfCAnd2FybmluZyc7XHJcbiAgICBidXR0b25TdHlsZT86ICdzb2xpZCcgfCAnb3V0bGluZScgfCAnbGluayc7XHJcbiAgICBpY29uPzogc3RyaW5nO1xyXG4gICAgcmVxdWlyZXNQZXJtaXNzaW9uPzogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgdHlwZSBSb3V0ZXJMaW5rRGVmaW5pdGlvbiA9ICgocm91dGU6IEFjdGl2YXRlZFJvdXRlKSA9PiBhbnlbXSkgfCBhbnlbXTtcclxuIl19
@@ -18,16 +18,18 @@ import * as i0 from "@angular/core";
18
18
  * imports: [SharedModule],
19
19
  * providers: [
20
20
  * addNavMenuSection({
21
- * id: 'reviews',
22
- * label: 'Product Reviews',
23
- * routerLink: ['/extensions/reviews'],
24
- * icon: 'star',
21
+ * id: 'reports',
22
+ * label: 'Reports',
23
+ * items: [{
24
+ * // ...
25
+ * }],
25
26
  * },
26
27
  * 'settings'),
27
28
  * ],
28
29
  * })
29
30
  * export class MyUiExtensionModule {}
30
31
  * ```
32
+ * @docsCategory nav-menu
31
33
  */
32
34
  export function addNavMenuSection(config, before) {
33
35
  return {
@@ -55,17 +57,18 @@ export function addNavMenuSection(config, before) {
55
57
  * imports: [SharedModule],
56
58
  * providers: [
57
59
  * addNavMenuItem({
58
- * id: 'reports',
59
- * label: 'Reports',
60
- * items: [{
61
- * // ...
62
- * }],
60
+ * id: 'reviews',
61
+ * label: 'Product Reviews',
62
+ * routerLink: ['/extensions/reviews'],
63
+ * icon: 'star',
63
64
  * },
64
65
  * 'marketing'),
65
66
  * ],
66
67
  * })
67
68
  * export class MyUiExtensionModule {}
68
- * ```
69
+ * ``
70
+ *
71
+ * @docsCategory nav-menu
69
72
  */
70
73
  export function addNavMenuItem(config, sectionId, before) {
71
74
  return {
@@ -100,6 +103,7 @@ export function addNavMenuItem(config, sectionId, before) {
100
103
  * })
101
104
  * export class MyUiExtensionModule {}
102
105
  * ```
106
+ * @docsCategory action-bar
103
107
  */
104
108
  export function addActionBarItem(config) {
105
109
  return {
@@ -257,4 +261,4 @@ NavBuilderService.decorators = [
257
261
  },] }
258
262
  ];
259
263
  NavBuilderService.ctorParameters = () => [];
260
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2LWJ1aWxkZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9zcmMvcHJvdmlkZXJzL25hdi1idWlsZGVyL25hdi1idWlsZGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxVQUFVLEVBQVksTUFBTSxlQUFlLENBQUM7QUFFdEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDhCQUE4QixDQUFDOztBQVUxRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBd0JHO0FBQ0gsTUFBTSxVQUFVLGlCQUFpQixDQUFDLE1BQXNCLEVBQUUsTUFBZTtJQUNyRSxPQUFPO1FBQ0gsT0FBTyxFQUFFLGVBQWU7UUFDeEIsS0FBSyxFQUFFLElBQUk7UUFDWCxVQUFVLEVBQUUsQ0FBQyxpQkFBb0MsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFO1lBQ3ZELGlCQUFpQixDQUFDLGlCQUFpQixDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUN4RCxDQUFDO1FBQ0QsSUFBSSxFQUFFLENBQUMsaUJBQWlCLENBQUM7S0FDNUIsQ0FBQztBQUNOLENBQUM7QUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMkJHO0FBQ0gsTUFBTSxVQUFVLGNBQWMsQ0FBQyxNQUFtQixFQUFFLFNBQWlCLEVBQUUsTUFBZTtJQUNsRixPQUFPO1FBQ0gsT0FBTyxFQUFFLGVBQWU7UUFDeEIsS0FBSyxFQUFFLElBQUk7UUFDWCxVQUFVLEVBQUUsQ0FBQyxpQkFBb0MsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFO1lBQ3ZELGlCQUFpQixDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ2hFLENBQUM7UUFDRCxJQUFJLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztLQUM1QixDQUFDO0FBQ04sQ0FBQztBQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXVCRztBQUNILE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxNQUFxQjtJQUNsRCxPQUFPO1FBQ0gsT0FBTyxFQUFFLGVBQWU7UUFDeEIsS0FBSyxFQUFFLElBQUk7UUFDWCxVQUFVLEVBQUUsQ0FBQyxpQkFBb0MsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFO1lBQ3ZELGlCQUFpQixDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQy9DLENBQUM7UUFDRCxJQUFJLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztLQUM1QixDQUFDO0FBQ04sQ0FBQztBQUVEOztHQUVHO0FBSUgsTUFBTSxPQUFPLGlCQUFpQjtJQWMxQjtRQVhBLGtCQUFhLEdBQTBELEVBQUUsQ0FBQztRQUVsRSwwQkFBcUIsR0FBRyxJQUFJLGVBQWUsQ0FBbUIsRUFBRSxDQUFDLENBQUM7UUFDbEUseUJBQW9CLEdBQXVELEVBQUUsQ0FBQztRQUM5RSxzQkFBaUIsR0FJcEIsRUFBRSxDQUFDO1FBQ0Esd0JBQW1CLEdBQW9CLEVBQUUsQ0FBQztRQUc5QyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVEOztPQUVHO0lBQ0gscUJBQXFCLENBQUMsTUFBd0I7UUFDMUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILGlCQUFpQixDQUFDLE1BQXNCLEVBQUUsTUFBZTtRQUNyRCxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVEOzs7Ozs7Ozs7T0FTRztJQUNILGNBQWMsQ0FBQyxNQUFtQixFQUFFLFNBQWlCLEVBQUUsTUFBZTtRQUNsRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsZ0JBQWdCLENBQUMsTUFBcUI7UUFDbEMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksaUJBQ3pCLGtCQUFrQixFQUFFLFVBQVUsQ0FBQyxhQUFhLElBQ3pDLE1BQU0sRUFDWCxDQUFDO0lBQ1AsQ0FBQztJQUVELGFBQWEsQ0FBQyxNQUE2QyxFQUFFLEtBQXFCO1FBQzlFLElBQUksT0FBTyxNQUFNLENBQUMsVUFBVSxLQUFLLFVBQVUsRUFBRTtZQUN6QyxPQUFPLE1BQU0sQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDbkM7UUFDRCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQ2xDLE9BQU8sTUFBTSxDQUFDLFVBQVUsQ0FBQztTQUM1QjtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFTyxZQUFZO1FBQ2hCLE1BQU0saUJBQWlCLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ3hELE1BQU0sY0FBYyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUVsRCxNQUFNLGVBQWUsR0FBRyxhQUFhLENBQUMsSUFBSSxDQUFDLHFCQUFxQixFQUFFLGlCQUFpQixDQUFDLENBQUMsSUFBSSxDQUNyRixHQUFHLENBQUMsQ0FBQyxDQUFDLGFBQWEsRUFBRSxTQUFTLENBQUMsRUFBRSxFQUFFO1lBQy9CLEtBQUssTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsSUFBSSxTQUFTLEVBQUU7Z0JBQ3hDLElBQUksQ0FBQyxNQUFNLENBQUMsa0JBQWtCLEVBQUU7b0JBQzVCLE1BQU0sQ0FBQyxrQkFBa0IsR0FBRyxVQUFVLENBQUMsYUFBYSxDQUFDO2lCQUN4RDtnQkFDRCxNQUFNLGFBQWEsR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ3ZFLElBQUksQ0FBQyxDQUFDLEdBQUcsYUFBYSxFQUFFO29CQUNwQixhQUFhLENBQUMsYUFBYSxDQUFDLEdBQUcsTUFBTSxDQUFDO2lCQUN6QztnQkFDRCxNQUFNLFdBQVcsR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxNQUFNLENBQUMsQ0FBQztnQkFDbEUsSUFBSSxDQUFDLENBQUMsR0FBRyxXQUFXLEVBQUU7b0JBQ2xCLElBQUksQ0FBQyxDQUFDLEdBQUcsYUFBYSxFQUFFO3dCQUNwQixhQUFhLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQztxQkFDMUM7b0JBQ0QsYUFBYSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO2lCQUNoRDtxQkFBTSxJQUFJLGFBQWEsS0FBSyxDQUFDLENBQUMsRUFBRTtvQkFDN0IsYUFBYSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztpQkFDOUI7YUFDSjtZQUNELE9BQU8sYUFBYSxDQUFDO1FBQ3pCLENBQUMsQ0FBQyxFQUNGLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FDakIsQ0FBQztRQUVGLElBQUksQ0FBQyxjQUFjLEdBQUcsYUFBYSxDQUFDLGVBQWUsRUFBRSxjQUFjLENBQUMsQ0FBQyxJQUFJLENBQ3JFLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLGVBQWUsQ0FBQyxFQUFFLEVBQUU7WUFDaEMsS0FBSyxNQUFNLElBQUksSUFBSSxlQUFlLEVBQUU7Z0JBQ2hDLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFDNUQsSUFBSSxDQUFDLE9BQU8sRUFBRTtvQkFDVixzQ0FBc0M7b0JBQ3RDLE9BQU8sQ0FBQyxLQUFLLENBQ1QsNEJBQTRCLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxlQUFlLElBQUksQ0FBQyxTQUFTLGtCQUFrQixDQUM1RixDQUFDO2lCQUNMO3FCQUFNO29CQUNILE1BQU0sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQztvQkFDM0MsTUFBTSxhQUFhLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztvQkFDdkUsSUFBSSxDQUFDLENBQUMsR0FBRyxhQUFhLEVBQUU7d0JBQ3BCLE9BQU8sQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLEdBQUcsTUFBTSxDQUFDO3FCQUN6QztvQkFDRCxNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssTUFBTSxDQUFDLENBQUM7b0JBQ2xFLElBQUksQ0FBQyxDQUFDLEdBQUcsV0FBVyxFQUFFO3dCQUNsQixJQUFJLENBQUMsQ0FBQyxHQUFHLGFBQWEsRUFBRTs0QkFDcEIsT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxDQUFDO3lCQUMxQzt3QkFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO3FCQUNoRDt5QkFBTSxJQUFJLGFBQWEsS0FBSyxDQUFDLENBQUMsRUFBRTt3QkFDN0IsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7cUJBQzlCO2lCQUNKO2FBQ0o7WUFFRCxpRUFBaUU7WUFDakUsS0FBSyxNQUFNLE9BQU8sSUFBSSxRQUFRLEVBQUU7Z0JBQzVCLE1BQU0saUJBQWlCLEdBQUcsT0FBTyxDQUFDLEtBQUs7cUJBQ2xDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUM7cUJBQ3ZCLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO2dCQUNoQyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsR0FBRyxhQUFhLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxJQUFJLENBQ2xFLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRTtvQkFDVCxNQUFNLGlCQUFpQixHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsQ0FBQztvQkFDbkUsSUFBSSxpQkFBaUIsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO3dCQUNoQyxPQUFPLE1BQU0sQ0FBQztxQkFDakI7b0JBQ0QsTUFBTSxRQUFRLEdBQUcsaUJBQWlCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUNwRCxJQUFJLFFBQVEsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUU7d0JBQzVCLE9BQU8sT0FBTyxDQUFDO3FCQUNsQjt5QkFBTSxJQUFJLFFBQVEsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEVBQUU7d0JBQ3JDLE9BQU8sU0FBUyxDQUFDO3FCQUNwQjt5QkFBTSxJQUFJLFFBQVEsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUU7d0JBQ2xDLE9BQU8sTUFBTSxDQUFDO3FCQUNqQjt5QkFBTTt3QkFDSCxPQUFPLE1BQU0sQ0FBQztxQkFDakI7Z0JBQ0wsQ0FBQyxDQUFDLENBQ0wsQ0FBQzthQUNMO1lBRUQsT0FBTyxRQUFRLENBQUM7UUFDcEIsQ0FBQyxDQUFDLENBQ0wsQ0FBQztRQUVGLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDekQsQ0FBQzs7OztZQWxLSixVQUFVLFNBQUM7Z0JBQ1IsVUFBVSxFQUFFLE1BQU07YUFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBUFBfSU5JVElBTElaRVIsIEluamVjdGFibGUsIFByb3ZpZGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBub3ROdWxsT3JVbmRlZmluZWQgfSBmcm9tICdAdmVuZHVyZS9jb21tb24vbGliL3NoYXJlZC11dGlscyc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAsIHNoYXJlUmVwbGF5IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBQZXJtaXNzaW9uIH0gZnJvbSAnLi4vLi4vY29tbW9uL2dlbmVyYXRlZC10eXBlcyc7XG5cbmltcG9ydCB7XG4gICAgQWN0aW9uQmFySXRlbSxcbiAgICBOYXZNZW51QmFkZ2VUeXBlLFxuICAgIE5hdk1lbnVJdGVtLFxuICAgIE5hdk1lbnVTZWN0aW9uLFxuICAgIFJvdXRlckxpbmtEZWZpbml0aW9uLFxufSBmcm9tICcuL25hdi1idWlsZGVyLXR5cGVzJztcblxuLyoqXG4gKiBAZGVzY3JpcHRpb25cbiAqIEFkZCBhIHNlY3Rpb24gdG8gdGhlIG1haW4gbmF2IG1lbnUuIFByb3ZpZGluZyB0aGUgYGJlZm9yZWAgYXJndW1lbnQgd2lsbFxuICogbW92ZSB0aGUgc2VjdGlvbiBiZWZvcmUgYW55IGV4aXN0aW5nIHNlY3Rpb24gd2l0aCB0aGUgc3BlY2lmaWVkIGlkLiBJZlxuICogb21pdHRlZCAob3IgaWYgdGhlIGlkIGlzIG5vdCBmb3VuZCkgdGhlIHNlY3Rpb24gd2lsbCBiZSBhcHBlbmRlZCB0byB0aGVcbiAqIGV4aXN0aW5nIHNldCBvZiBzZWN0aW9ucy5cbiAqIFRoaXMgc2hvdWxkIGJlIHVzZWQgaW4gdGhlIE5nTW9kdWxlIGBwcm92aWRlcnNgIGFycmF5IG9mIHlvdXIgdWkgZXh0ZW5zaW9uIG1vZHVsZS5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgVHlwZVNjcmlwdFxuICogXFxATmdNb2R1bGUoe1xuICogICBpbXBvcnRzOiBbU2hhcmVkTW9kdWxlXSxcbiAqICAgcHJvdmlkZXJzOiBbXG4gKiAgICAgYWRkTmF2TWVudVNlY3Rpb24oe1xuICogICAgICAgaWQ6ICdyZXZpZXdzJyxcbiAqICAgICAgIGxhYmVsOiAnUHJvZHVjdCBSZXZpZXdzJyxcbiAqICAgICAgIHJvdXRlckxpbms6IFsnL2V4dGVuc2lvbnMvcmV2aWV3cyddLFxuICogICAgICAgaWNvbjogJ3N0YXInLFxuICogICAgIH0sXG4gKiAgICAgJ3NldHRpbmdzJyksXG4gKiAgIF0sXG4gKiB9KVxuICogZXhwb3J0IGNsYXNzIE15VWlFeHRlbnNpb25Nb2R1bGUge31cbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gYWRkTmF2TWVudVNlY3Rpb24oY29uZmlnOiBOYXZNZW51U2VjdGlvbiwgYmVmb3JlPzogc3RyaW5nKTogUHJvdmlkZXIge1xuICAgIHJldHVybiB7XG4gICAgICAgIHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcbiAgICAgICAgbXVsdGk6IHRydWUsXG4gICAgICAgIHVzZUZhY3Rvcnk6IChuYXZCdWlsZGVyU2VydmljZTogTmF2QnVpbGRlclNlcnZpY2UpID0+ICgpID0+IHtcbiAgICAgICAgICAgIG5hdkJ1aWxkZXJTZXJ2aWNlLmFkZE5hdk1lbnVTZWN0aW9uKGNvbmZpZywgYmVmb3JlKTtcbiAgICAgICAgfSxcbiAgICAgICAgZGVwczogW05hdkJ1aWxkZXJTZXJ2aWNlXSxcbiAgICB9O1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvblxuICogQWRkIGEgbWVudSBpdGVtIHRvIGFuIGV4aXN0aW5nIHNlY3Rpb24gc3BlY2lmaWVkIGJ5IGBzZWN0aW9uSWRgLiBUaGUgaWQgb2YgdGhlIHNlY3Rpb25cbiAqIGNhbiBiZSBmb3VuZCBieSBpbnNwZWN0aW5nIHRoZSBET00gYW5kIGZpbmRpbmcgdGhlIGBkYXRhLXNlY3Rpb24taWRgIGF0dHJpYnV0ZS5cbiAqIFByb3ZpZGluZyB0aGUgYGJlZm9yZWAgYXJndW1lbnQgd2lsbCBtb3ZlIHRoZSBpdGVtIGJlZm9yZSBhbnkgZXhpc3RpbmcgaXRlbSB3aXRoIHRoZSBzcGVjaWZpZWQgaWQuXG4gKiBJZiBvbWl0dGVkIChvciBpZiB0aGUgbmFtZSBpcyBub3QgZm91bmQpIHRoZSBpdGVtIHdpbGwgYmUgYXBwZW5kZWQgdG8gdGhlXG4gKiBlbmQgb2YgdGhlIHNlY3Rpb24uXG4gKlxuICogVGhpcyBzaG91bGQgYmUgdXNlZCBpbiB0aGUgTmdNb2R1bGUgYHByb3ZpZGVyc2AgYXJyYXkgb2YgeW91ciB1aSBleHRlbnNpb24gbW9kdWxlLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGBUeXBlU2NyaXB0XG4gKiBcXEBOZ01vZHVsZSh7XG4gKiAgIGltcG9ydHM6IFtTaGFyZWRNb2R1bGVdLFxuICogICBwcm92aWRlcnM6IFtcbiAqICAgICBhZGROYXZNZW51SXRlbSh7XG4gKiAgICAgICBpZDogJ3JlcG9ydHMnLFxuICogICAgICAgbGFiZWw6ICdSZXBvcnRzJyxcbiAqICAgICAgIGl0ZW1zOiBbe1xuICogICAgICAgICAgIC8vIC4uLlxuICogICAgICAgfV0sXG4gKiAgICAgfSxcbiAqICAgICAnbWFya2V0aW5nJyksXG4gKiAgIF0sXG4gKiB9KVxuICogZXhwb3J0IGNsYXNzIE15VWlFeHRlbnNpb25Nb2R1bGUge31cbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gYWRkTmF2TWVudUl0ZW0oY29uZmlnOiBOYXZNZW51SXRlbSwgc2VjdGlvbklkOiBzdHJpbmcsIGJlZm9yZT86IHN0cmluZyk6IFByb3ZpZGVyIHtcbiAgICByZXR1cm4ge1xuICAgICAgICBwcm92aWRlOiBBUFBfSU5JVElBTElaRVIsXG4gICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICB1c2VGYWN0b3J5OiAobmF2QnVpbGRlclNlcnZpY2U6IE5hdkJ1aWxkZXJTZXJ2aWNlKSA9PiAoKSA9PiB7XG4gICAgICAgICAgICBuYXZCdWlsZGVyU2VydmljZS5hZGROYXZNZW51SXRlbShjb25maWcsIHNlY3Rpb25JZCwgYmVmb3JlKTtcbiAgICAgICAgfSxcbiAgICAgICAgZGVwczogW05hdkJ1aWxkZXJTZXJ2aWNlXSxcbiAgICB9O1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvblxuICogQWRkcyBhIGJ1dHRvbiB0byB0aGUgQWN0aW9uQmFyIGF0IHRoZSB0b3AgcmlnaHQgb2YgZWFjaCBsaXN0IG9yIGRldGFpbCB2aWV3LiBUaGUgbG9jYXRpb25JZCBjYW5cbiAqIGJlIGRldGVybWluZWQgYnkgaW5zcGVjdGluZyB0aGUgRE9NIGFuZCBmaW5kaW5nIHRoZSA8dmRyLWFjdGlvbi1iYXI+IGVsZW1lbnQgYW5kIGl0c1xuICogYGRhdGEtbG9jYXRpb24taWRgIGF0dHJpYnV0ZS5cbiAqXG4gKiBUaGlzIHNob3VsZCBiZSB1c2VkIGluIHRoZSBOZ01vZHVsZSBgcHJvdmlkZXJzYCBhcnJheSBvZiB5b3VyIHVpIGV4dGVuc2lvbiBtb2R1bGUuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYFR5cGVTY3JpcHRcbiAqIFxcQE5nTW9kdWxlKHtcbiAqICAgaW1wb3J0czogW1NoYXJlZE1vZHVsZV0sXG4gKiAgIHByb3ZpZGVyczogW1xuICogICAgIGFkZEFjdGlvbkJhckl0ZW0oe1xuICogICAgICBpZDogJ3ByaW50LWludm9pY2UnXG4gKiAgICAgIGxhYmVsOiAnUHJpbnQgSW52b2ljZScsXG4gKiAgICAgIGxvY2F0aW9uSWQ6ICdvcmRlci1kZXRhaWwnLFxuICogICAgICByb3V0ZXJMaW5rOiBbJy9leHRlbnNpb25zL2ludm9pY2luZyddLFxuICogICAgIH0pLFxuICogICBdLFxuICogfSlcbiAqIGV4cG9ydCBjbGFzcyBNeVVpRXh0ZW5zaW9uTW9kdWxlIHt9XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFkZEFjdGlvbkJhckl0ZW0oY29uZmlnOiBBY3Rpb25CYXJJdGVtKTogUHJvdmlkZXIge1xuICAgIHJldHVybiB7XG4gICAgICAgIHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcbiAgICAgICAgbXVsdGk6IHRydWUsXG4gICAgICAgIHVzZUZhY3Rvcnk6IChuYXZCdWlsZGVyU2VydmljZTogTmF2QnVpbGRlclNlcnZpY2UpID0+ICgpID0+IHtcbiAgICAgICAgICAgIG5hdkJ1aWxkZXJTZXJ2aWNlLmFkZEFjdGlvbkJhckl0ZW0oY29uZmlnKTtcbiAgICAgICAgfSxcbiAgICAgICAgZGVwczogW05hdkJ1aWxkZXJTZXJ2aWNlXSxcbiAgICB9O1xufVxuXG4vKipcbiAqIFRoaXMgc2VydmljZSBpcyB1c2VkIHRvIGRlZmluZSB0aGUgY29udGVudHMgb2YgY29uZmlndXJhYmxlIG1lbnVzIGluIHRoZSBhcHBsaWNhdGlvbi5cbiAqL1xuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgTmF2QnVpbGRlclNlcnZpY2Uge1xuICAgIG5hdk1lbnVDb25maWckOiBPYnNlcnZhYmxlPE5hdk1lbnVTZWN0aW9uW10+O1xuICAgIGFjdGlvbkJhckNvbmZpZyQ6IE9ic2VydmFibGU8QWN0aW9uQmFySXRlbVtdPjtcbiAgICBzZWN0aW9uQmFkZ2VzOiB7IFtzZWN0aW9uSWQ6IHN0cmluZ106IE9ic2VydmFibGU8TmF2TWVudUJhZGdlVHlwZT4gfSA9IHt9O1xuXG4gICAgcHJpdmF0ZSBpbml0aWFsTmF2TWVudUNvbmZpZyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE5hdk1lbnVTZWN0aW9uW10+KFtdKTtcbiAgICBwcml2YXRlIGFkZGVkTmF2TWVudVNlY3Rpb25zOiBBcnJheTx7IGNvbmZpZzogTmF2TWVudVNlY3Rpb247IGJlZm9yZT86IHN0cmluZyB9PiA9IFtdO1xuICAgIHByaXZhdGUgYWRkZWROYXZNZW51SXRlbXM6IEFycmF5PHtcbiAgICAgICAgY29uZmlnOiBOYXZNZW51SXRlbTtcbiAgICAgICAgc2VjdGlvbklkOiBzdHJpbmc7XG4gICAgICAgIGJlZm9yZT86IHN0cmluZztcbiAgICB9PiA9IFtdO1xuICAgIHByaXZhdGUgYWRkZWRBY3Rpb25CYXJJdGVtczogQWN0aW9uQmFySXRlbVtdID0gW107XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5zZXR1cFN0cmVhbXMoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBVc2VkIHRvIGRlZmluZSB0aGUgaW5pdGlhbCBzZWN0aW9ucyBhbmQgaXRlbXMgb2YgdGhlIG1haW4gbmF2IG1lbnUuXG4gICAgICovXG4gICAgZGVmaW5lTmF2TWVudVNlY3Rpb25zKGNvbmZpZzogTmF2TWVudVNlY3Rpb25bXSkge1xuICAgICAgICB0aGlzLmluaXRpYWxOYXZNZW51Q29uZmlnJC5uZXh0KGNvbmZpZyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkIGEgc2VjdGlvbiB0byB0aGUgbWFpbiBuYXYgbWVudS4gUHJvdmlkaW5nIHRoZSBgYmVmb3JlYCBhcmd1bWVudCB3aWxsXG4gICAgICogbW92ZSB0aGUgc2VjdGlvbiBiZWZvcmUgYW55IGV4aXN0aW5nIHNlY3Rpb24gd2l0aCB0aGUgc3BlY2lmaWVkIGlkLiBJZlxuICAgICAqIG9taXR0ZWQgKG9yIGlmIHRoZSBpZCBpcyBub3QgZm91bmQpIHRoZSBzZWN0aW9uIHdpbGwgYmUgYXBwZW5kZWQgdG8gdGhlXG4gICAgICogZXhpc3Rpbmcgc2V0IG9mIHNlY3Rpb25zLlxuICAgICAqXG4gICAgICogUHJvdmlkaW5nIHRoZSBgaWRgIG9mIGFuIGV4aXN0aW5nIHNlY3Rpb24gd2lsbCByZXBsYWNlIHRoYXQgc2VjdGlvbi5cbiAgICAgKi9cbiAgICBhZGROYXZNZW51U2VjdGlvbihjb25maWc6IE5hdk1lbnVTZWN0aW9uLCBiZWZvcmU/OiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5hZGRlZE5hdk1lbnVTZWN0aW9ucy5wdXNoKHsgY29uZmlnLCBiZWZvcmUgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkIGEgbWVudSBpdGVtIHRvIGFuIGV4aXN0aW5nIHNlY3Rpb24gc3BlY2lmaWVkIGJ5IGBzZWN0aW9uSWRgLiBUaGUgaWQgb2YgdGhlIHNlY3Rpb25cbiAgICAgKiBjYW4gYmUgZm91bmQgYnkgaW5zcGVjdGluZyB0aGUgRE9NIGFuZCBmaW5kaW5nIHRoZSBgZGF0YS1zZWN0aW9uLWlkYCBhdHRyaWJ1dGUuXG4gICAgICogUHJvdmlkaW5nIHRoZSBgYmVmb3JlYCBhcmd1bWVudCB3aWxsIG1vdmUgdGhlIGl0ZW0gYmVmb3JlIGFueSBleGlzdGluZyBpdGVtIHdpdGggdGhlIHNwZWNpZmllZCBpZC5cbiAgICAgKiBJZiBvbWl0dGVkIChvciBpZiB0aGUgbmFtZSBpcyBub3QgZm91bmQpIHRoZSBpdGVtIHdpbGwgYmUgYXBwZW5kZWQgdG8gdGhlXG4gICAgICogZW5kIG9mIHRoZSBzZWN0aW9uLlxuICAgICAqXG4gICAgICogUHJvdmlkaW5nIHRoZSBgaWRgIG9mIGFuIGV4aXN0aW5nIGl0ZW0gaW4gdGhhdCBzZWN0aW9uIHdpbGwgcmVwbGFjZVxuICAgICAqIHRoYXQgaXRlbS5cbiAgICAgKi9cbiAgICBhZGROYXZNZW51SXRlbShjb25maWc6IE5hdk1lbnVJdGVtLCBzZWN0aW9uSWQ6IHN0cmluZywgYmVmb3JlPzogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuYWRkZWROYXZNZW51SXRlbXMucHVzaCh7IGNvbmZpZywgc2VjdGlvbklkLCBiZWZvcmUgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkcyBhIGJ1dHRvbiB0byB0aGUgQWN0aW9uQmFyIGF0IHRoZSB0b3AgcmlnaHQgb2YgZWFjaCBsaXN0IG9yIGRldGFpbCB2aWV3LiBUaGUgbG9jYXRpb25JZCBjYW5cbiAgICAgKiBiZSBkZXRlcm1pbmVkIGJ5IGluc3BlY3RpbmcgdGhlIERPTSBhbmQgZmluZGluZyB0aGUgPHZkci1hY3Rpb24tYmFyPiBlbGVtZW50IGFuZCBpdHNcbiAgICAgKiBgZGF0YS1sb2NhdGlvbi1pZGAgYXR0cmlidXRlLlxuICAgICAqL1xuICAgIGFkZEFjdGlvbkJhckl0ZW0oY29uZmlnOiBBY3Rpb25CYXJJdGVtKSB7XG4gICAgICAgIHRoaXMuYWRkZWRBY3Rpb25CYXJJdGVtcy5wdXNoKHtcbiAgICAgICAgICAgIHJlcXVpcmVzUGVybWlzc2lvbjogUGVybWlzc2lvbi5BdXRoZW50aWNhdGVkLFxuICAgICAgICAgICAgLi4uY29uZmlnLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBnZXRSb3V0ZXJMaW5rKGNvbmZpZzogeyByb3V0ZXJMaW5rPzogUm91dGVyTGlua0RlZmluaXRpb24gfSwgcm91dGU6IEFjdGl2YXRlZFJvdXRlKTogc3RyaW5nW10gfCBudWxsIHtcbiAgICAgICAgaWYgKHR5cGVvZiBjb25maWcucm91dGVyTGluayA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgcmV0dXJuIGNvbmZpZy5yb3V0ZXJMaW5rKHJvdXRlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShjb25maWcucm91dGVyTGluaykpIHtcbiAgICAgICAgICAgIHJldHVybiBjb25maWcucm91dGVyTGluaztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldHVwU3RyZWFtcygpIHtcbiAgICAgICAgY29uc3Qgc2VjdGlvbkFkZGl0aW9ucyQgPSBvZih0aGlzLmFkZGVkTmF2TWVudVNlY3Rpb25zKTtcbiAgICAgICAgY29uc3QgaXRlbUFkZGl0aW9ucyQgPSBvZih0aGlzLmFkZGVkTmF2TWVudUl0ZW1zKTtcblxuICAgICAgICBjb25zdCBjb21iaW5lZENvbmZpZyQgPSBjb21iaW5lTGF0ZXN0KHRoaXMuaW5pdGlhbE5hdk1lbnVDb25maWckLCBzZWN0aW9uQWRkaXRpb25zJCkucGlwZShcbiAgICAgICAgICAgIG1hcCgoW2luaXRpYWxDb25maWcsIGFkZGl0aW9uc10pID0+IHtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHsgY29uZmlnLCBiZWZvcmUgfSBvZiBhZGRpdGlvbnMpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFjb25maWcucmVxdWlyZXNQZXJtaXNzaW9uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25maWcucmVxdWlyZXNQZXJtaXNzaW9uID0gUGVybWlzc2lvbi5BdXRoZW50aWNhdGVkO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGV4aXN0aW5nSW5kZXggPSBpbml0aWFsQ29uZmlnLmZpbmRJbmRleChjID0+IGMuaWQgPT09IGNvbmZpZy5pZCk7XG4gICAgICAgICAgICAgICAgICAgIGlmICgtMSA8IGV4aXN0aW5nSW5kZXgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGluaXRpYWxDb25maWdbZXhpc3RpbmdJbmRleF0gPSBjb25maWc7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmVmb3JlSW5kZXggPSBpbml0aWFsQ29uZmlnLmZpbmRJbmRleChjID0+IGMuaWQgPT09IGJlZm9yZSk7XG4gICAgICAgICAgICAgICAgICAgIGlmICgtMSA8IGJlZm9yZUluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoLTEgPCBleGlzdGluZ0luZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5pdGlhbENvbmZpZy5zcGxpY2UoZXhpc3RpbmdJbmRleCwgMSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBpbml0aWFsQ29uZmlnLnNwbGljZShiZWZvcmVJbmRleCwgMCwgY29uZmlnKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChleGlzdGluZ0luZGV4ID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5pdGlhbENvbmZpZy5wdXNoKGNvbmZpZyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIGluaXRpYWxDb25maWc7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHNoYXJlUmVwbGF5KDEpLFxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMubmF2TWVudUNvbmZpZyQgPSBjb21iaW5lTGF0ZXN0KGNvbWJpbmVkQ29uZmlnJCwgaXRlbUFkZGl0aW9ucyQpLnBpcGUoXG4gICAgICAgICAgICBtYXAoKFtzZWN0aW9ucywgYWRkaXRpb25hbEl0ZW1zXSkgPT4ge1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgaXRlbSBvZiBhZGRpdGlvbmFsSXRlbXMpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2VjdGlvbiA9IHNlY3Rpb25zLmZpbmQocyA9PiBzLmlkID09PSBpdGVtLnNlY3Rpb25JZCk7XG4gICAgICAgICAgICAgICAgICAgIGlmICghc2VjdGlvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWNvbnNvbGVcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYENvdWxkIG5vdCBhZGQgbWVudSBpdGVtIFwiJHtpdGVtLmNvbmZpZy5pZH1cIiwgc2VjdGlvbiBcIiR7aXRlbS5zZWN0aW9uSWR9XCIgZG9lcyBub3QgZXhpc3RgLFxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgY29uZmlnLCBzZWN0aW9uSWQsIGJlZm9yZSB9ID0gaXRlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGV4aXN0aW5nSW5kZXggPSBzZWN0aW9uLml0ZW1zLmZpbmRJbmRleChpID0+IGkuaWQgPT09IGNvbmZpZy5pZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoLTEgPCBleGlzdGluZ0luZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VjdGlvbi5pdGVtc1tleGlzdGluZ0luZGV4XSA9IGNvbmZpZztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGJlZm9yZUluZGV4ID0gc2VjdGlvbi5pdGVtcy5maW5kSW5kZXgoaSA9PiBpLmlkID09PSBiZWZvcmUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKC0xIDwgYmVmb3JlSW5kZXgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoLTEgPCBleGlzdGluZ0luZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlY3Rpb24uaXRlbXMuc3BsaWNlKGV4aXN0aW5nSW5kZXgsIDEpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWN0aW9uLml0ZW1zLnNwbGljZShiZWZvcmVJbmRleCwgMCwgY29uZmlnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZXhpc3RpbmdJbmRleCA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWN0aW9uLml0ZW1zLnB1c2goY29uZmlnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC8vIEFnZ3JlZ2F0ZSBhbnkgYmFkZ2VzIGRlZmluZWQgZm9yIHRoZSBuYXYgaXRlbXMgaW4gZWFjaCBzZWN0aW9uXG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBzZWN0aW9uIG9mIHNlY3Rpb25zKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGl0ZW1CYWRnZVN0YXR1c2VzID0gc2VjdGlvbi5pdGVtc1xuICAgICAgICAgICAgICAgICAgICAgICAgLm1hcChpID0+IGkuc3RhdHVzQmFkZ2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAuZmlsdGVyKG5vdE51bGxPclVuZGVmaW5lZCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VjdGlvbkJhZGdlc1tzZWN0aW9uLmlkXSA9IGNvbWJpbmVMYXRlc3QoaXRlbUJhZGdlU3RhdHVzZXMpLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXAoYmFkZ2VzID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBwcm9wYWdhdGluZ0JhZGdlcyA9IGJhZGdlcy5maWx0ZXIoYiA9PiBiLnByb3BhZ2F0ZVRvU2VjdGlvbik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHByb3BhZ2F0aW5nQmFkZ2VzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ25vbmUnO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdGF0dXNlcyA9IHByb3BhZ2F0aW5nQmFkZ2VzLm1hcChiID0+IGIudHlwZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHN0YXR1c2VzLmluY2x1ZGVzKCdlcnJvcicpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnZXJyb3InO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoc3RhdHVzZXMuaW5jbHVkZXMoJ3dhcm5pbmcnKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ3dhcm5pbmcnO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoc3RhdHVzZXMuaW5jbHVkZXMoJ2luZm8nKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ2luZm8nO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnbm9uZSc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHNlY3Rpb25zO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5hY3Rpb25CYXJDb25maWckID0gb2YodGhpcy5hZGRlZEFjdGlvbkJhckl0ZW1zKTtcbiAgICB9XG59XG4iXX0=
264
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2LWJ1aWxkZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9zcmMvcHJvdmlkZXJzL25hdi1idWlsZGVyL25hdi1idWlsZGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxVQUFVLEVBQVksTUFBTSxlQUFlLENBQUM7QUFFdEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDhCQUE4QixDQUFDOztBQVUxRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EwQkc7QUFDSCxNQUFNLFVBQVUsaUJBQWlCLENBQUMsTUFBc0IsRUFBRSxNQUFlO0lBQ3JFLE9BQU87UUFDSCxPQUFPLEVBQUUsZUFBZTtRQUN4QixLQUFLLEVBQUUsSUFBSTtRQUNYLFVBQVUsRUFBRSxDQUFDLGlCQUFvQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUU7WUFDdkQsaUJBQWlCLENBQUMsaUJBQWlCLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3hELENBQUM7UUFDRCxJQUFJLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztLQUM1QixDQUFDO0FBQ04sQ0FBQztBQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNEJHO0FBQ0gsTUFBTSxVQUFVLGNBQWMsQ0FBQyxNQUFtQixFQUFFLFNBQWlCLEVBQUUsTUFBZTtJQUNsRixPQUFPO1FBQ0gsT0FBTyxFQUFFLGVBQWU7UUFDeEIsS0FBSyxFQUFFLElBQUk7UUFDWCxVQUFVLEVBQUUsQ0FBQyxpQkFBb0MsRUFBRSxFQUFFLENBQUMsR0FBRyxFQUFFO1lBQ3ZELGlCQUFpQixDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ2hFLENBQUM7UUFDRCxJQUFJLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztLQUM1QixDQUFDO0FBQ04sQ0FBQztBQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F3Qkc7QUFDSCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsTUFBcUI7SUFDbEQsT0FBTztRQUNILE9BQU8sRUFBRSxlQUFlO1FBQ3hCLEtBQUssRUFBRSxJQUFJO1FBQ1gsVUFBVSxFQUFFLENBQUMsaUJBQW9DLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRTtZQUN2RCxpQkFBaUIsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMvQyxDQUFDO1FBQ0QsSUFBSSxFQUFFLENBQUMsaUJBQWlCLENBQUM7S0FDNUIsQ0FBQztBQUNOLENBQUM7QUFFRDs7R0FFRztBQUlILE1BQU0sT0FBTyxpQkFBaUI7SUFjMUI7UUFYQSxrQkFBYSxHQUEwRCxFQUFFLENBQUM7UUFFbEUsMEJBQXFCLEdBQUcsSUFBSSxlQUFlLENBQW1CLEVBQUUsQ0FBQyxDQUFDO1FBQ2xFLHlCQUFvQixHQUF1RCxFQUFFLENBQUM7UUFDOUUsc0JBQWlCLEdBSXBCLEVBQUUsQ0FBQztRQUNBLHdCQUFtQixHQUFvQixFQUFFLENBQUM7UUFHOUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRDs7T0FFRztJQUNILHFCQUFxQixDQUFDLE1BQXdCO1FBQzFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSCxpQkFBaUIsQ0FBQyxNQUFzQixFQUFFLE1BQWU7UUFDckQsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDSCxjQUFjLENBQUMsTUFBbUIsRUFBRSxTQUFpQixFQUFFLE1BQWU7UUFDbEUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGdCQUFnQixDQUFDLE1BQXFCO1FBQ2xDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLGlCQUN6QixrQkFBa0IsRUFBRSxVQUFVLENBQUMsYUFBYSxJQUN6QyxNQUFNLEVBQ1gsQ0FBQztJQUNQLENBQUM7SUFFRCxhQUFhLENBQUMsTUFBNkMsRUFBRSxLQUFxQjtRQUM5RSxJQUFJLE9BQU8sTUFBTSxDQUFDLFVBQVUsS0FBSyxVQUFVLEVBQUU7WUFDekMsT0FBTyxNQUFNLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ25DO1FBQ0QsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUNsQyxPQUFPLE1BQU0sQ0FBQyxVQUFVLENBQUM7U0FDNUI7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRU8sWUFBWTtRQUNoQixNQUFNLGlCQUFpQixHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUN4RCxNQUFNLGNBQWMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFFbEQsTUFBTSxlQUFlLEdBQUcsYUFBYSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDLElBQUksQ0FDckYsR0FBRyxDQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUUsU0FBUyxDQUFDLEVBQUUsRUFBRTtZQUMvQixLQUFLLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLElBQUksU0FBUyxFQUFFO2dCQUN4QyxJQUFJLENBQUMsTUFBTSxDQUFDLGtCQUFrQixFQUFFO29CQUM1QixNQUFNLENBQUMsa0JBQWtCLEdBQUcsVUFBVSxDQUFDLGFBQWEsQ0FBQztpQkFDeEQ7Z0JBQ0QsTUFBTSxhQUFhLEdBQUcsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUN2RSxJQUFJLENBQUMsQ0FBQyxHQUFHLGFBQWEsRUFBRTtvQkFDcEIsYUFBYSxDQUFDLGFBQWEsQ0FBQyxHQUFHLE1BQU0sQ0FBQztpQkFDekM7Z0JBQ0QsTUFBTSxXQUFXLEdBQUcsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssTUFBTSxDQUFDLENBQUM7Z0JBQ2xFLElBQUksQ0FBQyxDQUFDLEdBQUcsV0FBVyxFQUFFO29CQUNsQixJQUFJLENBQUMsQ0FBQyxHQUFHLGFBQWEsRUFBRTt3QkFDcEIsYUFBYSxDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLENBQUM7cUJBQzFDO29CQUNELGFBQWEsQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztpQkFDaEQ7cUJBQU0sSUFBSSxhQUFhLEtBQUssQ0FBQyxDQUFDLEVBQUU7b0JBQzdCLGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7aUJBQzlCO2FBQ0o7WUFDRCxPQUFPLGFBQWEsQ0FBQztRQUN6QixDQUFDLENBQUMsRUFDRixXQUFXLENBQUMsQ0FBQyxDQUFDLENBQ2pCLENBQUM7UUFFRixJQUFJLENBQUMsY0FBYyxHQUFHLGFBQWEsQ0FBQyxlQUFlLEVBQUUsY0FBYyxDQUFDLENBQUMsSUFBSSxDQUNyRSxHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxlQUFlLENBQUMsRUFBRSxFQUFFO1lBQ2hDLEtBQUssTUFBTSxJQUFJLElBQUksZUFBZSxFQUFFO2dCQUNoQyxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQzVELElBQUksQ0FBQyxPQUFPLEVBQUU7b0JBQ1Ysc0NBQXNDO29CQUN0QyxPQUFPLENBQUMsS0FBSyxDQUNULDRCQUE0QixJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsZUFBZSxJQUFJLENBQUMsU0FBUyxrQkFBa0IsQ0FDNUYsQ0FBQztpQkFDTDtxQkFBTTtvQkFDSCxNQUFNLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUM7b0JBQzNDLE1BQU0sYUFBYSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7b0JBQ3ZFLElBQUksQ0FBQyxDQUFDLEdBQUcsYUFBYSxFQUFFO3dCQUNwQixPQUFPLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxHQUFHLE1BQU0sQ0FBQztxQkFDekM7b0JBQ0QsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLE1BQU0sQ0FBQyxDQUFDO29CQUNsRSxJQUFJLENBQUMsQ0FBQyxHQUFHLFdBQVcsRUFBRTt3QkFDbEIsSUFBSSxDQUFDLENBQUMsR0FBRyxhQUFhLEVBQUU7NEJBQ3BCLE9BQU8sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQzt5QkFDMUM7d0JBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztxQkFDaEQ7eUJBQU0sSUFBSSxhQUFhLEtBQUssQ0FBQyxDQUFDLEVBQUU7d0JBQzdCLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO3FCQUM5QjtpQkFDSjthQUNKO1lBRUQsaUVBQWlFO1lBQ2pFLEtBQUssTUFBTSxPQUFPLElBQUksUUFBUSxFQUFFO2dCQUM1QixNQUFNLGlCQUFpQixHQUFHLE9BQU8sQ0FBQyxLQUFLO3FCQUNsQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDO3FCQUN2QixNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztnQkFDaEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEdBQUcsYUFBYSxDQUFDLGlCQUFpQixDQUFDLENBQUMsSUFBSSxDQUNsRSxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUU7b0JBQ1QsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLENBQUM7b0JBQ25FLElBQUksaUJBQWlCLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTt3QkFDaEMsT0FBTyxNQUFNLENBQUM7cUJBQ2pCO29CQUNELE1BQU0sUUFBUSxHQUFHLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDcEQsSUFBSSxRQUFRLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFO3dCQUM1QixPQUFPLE9BQU8sQ0FBQztxQkFDbEI7eUJBQU0sSUFBSSxRQUFRLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxFQUFFO3dCQUNyQyxPQUFPLFNBQVMsQ0FBQztxQkFDcEI7eUJBQU0sSUFBSSxRQUFRLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFO3dCQUNsQyxPQUFPLE1BQU0sQ0FBQztxQkFDakI7eUJBQU07d0JBQ0gsT0FBTyxNQUFNLENBQUM7cUJBQ2pCO2dCQUNMLENBQUMsQ0FBQyxDQUNMLENBQUM7YUFDTDtZQUVELE9BQU8sUUFBUSxDQUFDO1FBQ3BCLENBQUMsQ0FBQyxDQUNMLENBQUM7UUFFRixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQ3pELENBQUM7Ozs7WUFsS0osVUFBVSxTQUFDO2dCQUNSLFVBQVUsRUFBRSxNQUFNO2FBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVBQX0lOSVRJQUxJWkVSLCBJbmplY3RhYmxlLCBQcm92aWRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IG5vdE51bGxPclVuZGVmaW5lZCB9IGZyb20gJ0B2ZW5kdXJlL2NvbW1vbi9saWIvc2hhcmVkLXV0aWxzJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtYXAsIHNoYXJlUmVwbGF5IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgUGVybWlzc2lvbiB9IGZyb20gJy4uLy4uL2NvbW1vbi9nZW5lcmF0ZWQtdHlwZXMnO1xyXG5cclxuaW1wb3J0IHtcclxuICAgIEFjdGlvbkJhckl0ZW0sXHJcbiAgICBOYXZNZW51QmFkZ2VUeXBlLFxyXG4gICAgTmF2TWVudUl0ZW0sXHJcbiAgICBOYXZNZW51U2VjdGlvbixcclxuICAgIFJvdXRlckxpbmtEZWZpbml0aW9uLFxyXG59IGZyb20gJy4vbmF2LWJ1aWxkZXItdHlwZXMnO1xyXG5cclxuLyoqXHJcbiAqIEBkZXNjcmlwdGlvblxyXG4gKiBBZGQgYSBzZWN0aW9uIHRvIHRoZSBtYWluIG5hdiBtZW51LiBQcm92aWRpbmcgdGhlIGBiZWZvcmVgIGFyZ3VtZW50IHdpbGxcclxuICogbW92ZSB0aGUgc2VjdGlvbiBiZWZvcmUgYW55IGV4aXN0aW5nIHNlY3Rpb24gd2l0aCB0aGUgc3BlY2lmaWVkIGlkLiBJZlxyXG4gKiBvbWl0dGVkIChvciBpZiB0aGUgaWQgaXMgbm90IGZvdW5kKSB0aGUgc2VjdGlvbiB3aWxsIGJlIGFwcGVuZGVkIHRvIHRoZVxyXG4gKiBleGlzdGluZyBzZXQgb2Ygc2VjdGlvbnMuXHJcbiAqIFRoaXMgc2hvdWxkIGJlIHVzZWQgaW4gdGhlIE5nTW9kdWxlIGBwcm92aWRlcnNgIGFycmF5IG9mIHlvdXIgdWkgZXh0ZW5zaW9uIG1vZHVsZS5cclxuICpcclxuICogQGV4YW1wbGVcclxuICogYGBgVHlwZVNjcmlwdFxyXG4gKiBcXEBOZ01vZHVsZSh7XHJcbiAqICAgaW1wb3J0czogW1NoYXJlZE1vZHVsZV0sXHJcbiAqICAgcHJvdmlkZXJzOiBbXHJcbiAqICAgICBhZGROYXZNZW51U2VjdGlvbih7XHJcbiAqICAgICAgIGlkOiAncmVwb3J0cycsXHJcbiAqICAgICAgIGxhYmVsOiAnUmVwb3J0cycsXHJcbiAqICAgICAgIGl0ZW1zOiBbe1xyXG4gKiAgICAgICAgICAgLy8gLi4uXHJcbiAqICAgICAgIH1dLFxyXG4gKiAgICAgfSxcclxuICogICAgICdzZXR0aW5ncycpLFxyXG4gKiAgIF0sXHJcbiAqIH0pXHJcbiAqIGV4cG9ydCBjbGFzcyBNeVVpRXh0ZW5zaW9uTW9kdWxlIHt9XHJcbiAqIGBgYFxyXG4gKiBAZG9jc0NhdGVnb3J5IG5hdi1tZW51XHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gYWRkTmF2TWVudVNlY3Rpb24oY29uZmlnOiBOYXZNZW51U2VjdGlvbiwgYmVmb3JlPzogc3RyaW5nKTogUHJvdmlkZXIge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICBwcm92aWRlOiBBUFBfSU5JVElBTElaRVIsXHJcbiAgICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICAgICAgdXNlRmFjdG9yeTogKG5hdkJ1aWxkZXJTZXJ2aWNlOiBOYXZCdWlsZGVyU2VydmljZSkgPT4gKCkgPT4ge1xyXG4gICAgICAgICAgICBuYXZCdWlsZGVyU2VydmljZS5hZGROYXZNZW51U2VjdGlvbihjb25maWcsIGJlZm9yZSk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBkZXBzOiBbTmF2QnVpbGRlclNlcnZpY2VdLFxyXG4gICAgfTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEBkZXNjcmlwdGlvblxyXG4gKiBBZGQgYSBtZW51IGl0ZW0gdG8gYW4gZXhpc3Rpbmcgc2VjdGlvbiBzcGVjaWZpZWQgYnkgYHNlY3Rpb25JZGAuIFRoZSBpZCBvZiB0aGUgc2VjdGlvblxyXG4gKiBjYW4gYmUgZm91bmQgYnkgaW5zcGVjdGluZyB0aGUgRE9NIGFuZCBmaW5kaW5nIHRoZSBgZGF0YS1zZWN0aW9uLWlkYCBhdHRyaWJ1dGUuXHJcbiAqIFByb3ZpZGluZyB0aGUgYGJlZm9yZWAgYXJndW1lbnQgd2lsbCBtb3ZlIHRoZSBpdGVtIGJlZm9yZSBhbnkgZXhpc3RpbmcgaXRlbSB3aXRoIHRoZSBzcGVjaWZpZWQgaWQuXHJcbiAqIElmIG9taXR0ZWQgKG9yIGlmIHRoZSBuYW1lIGlzIG5vdCBmb3VuZCkgdGhlIGl0ZW0gd2lsbCBiZSBhcHBlbmRlZCB0byB0aGVcclxuICogZW5kIG9mIHRoZSBzZWN0aW9uLlxyXG4gKlxyXG4gKiBUaGlzIHNob3VsZCBiZSB1c2VkIGluIHRoZSBOZ01vZHVsZSBgcHJvdmlkZXJzYCBhcnJheSBvZiB5b3VyIHVpIGV4dGVuc2lvbiBtb2R1bGUuXHJcbiAqXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYFR5cGVTY3JpcHRcclxuICogXFxATmdNb2R1bGUoe1xyXG4gKiAgIGltcG9ydHM6IFtTaGFyZWRNb2R1bGVdLFxyXG4gKiAgIHByb3ZpZGVyczogW1xyXG4gKiAgICAgYWRkTmF2TWVudUl0ZW0oe1xyXG4gKiAgICAgICBpZDogJ3Jldmlld3MnLFxyXG4gKiAgICAgICBsYWJlbDogJ1Byb2R1Y3QgUmV2aWV3cycsXHJcbiAqICAgICAgIHJvdXRlckxpbms6IFsnL2V4dGVuc2lvbnMvcmV2aWV3cyddLFxyXG4gKiAgICAgICBpY29uOiAnc3RhcicsXHJcbiAqICAgICB9LFxyXG4gKiAgICAgJ21hcmtldGluZycpLFxyXG4gKiAgIF0sXHJcbiAqIH0pXHJcbiAqIGV4cG9ydCBjbGFzcyBNeVVpRXh0ZW5zaW9uTW9kdWxlIHt9XHJcbiAqIGBgXHJcbiAqXHJcbiAqIEBkb2NzQ2F0ZWdvcnkgbmF2LW1lbnVcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBhZGROYXZNZW51SXRlbShjb25maWc6IE5hdk1lbnVJdGVtLCBzZWN0aW9uSWQ6IHN0cmluZywgYmVmb3JlPzogc3RyaW5nKTogUHJvdmlkZXIge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICBwcm92aWRlOiBBUFBfSU5JVElBTElaRVIsXHJcbiAgICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICAgICAgdXNlRmFjdG9yeTogKG5hdkJ1aWxkZXJTZXJ2aWNlOiBOYXZCdWlsZGVyU2VydmljZSkgPT4gKCkgPT4ge1xyXG4gICAgICAgICAgICBuYXZCdWlsZGVyU2VydmljZS5hZGROYXZNZW51SXRlbShjb25maWcsIHNlY3Rpb25JZCwgYmVmb3JlKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGRlcHM6IFtOYXZCdWlsZGVyU2VydmljZV0sXHJcbiAgICB9O1xyXG59XHJcblxyXG4vKipcclxuICogQGRlc2NyaXB0aW9uXHJcbiAqIEFkZHMgYSBidXR0b24gdG8gdGhlIEFjdGlvbkJhciBhdCB0aGUgdG9wIHJpZ2h0IG9mIGVhY2ggbGlzdCBvciBkZXRhaWwgdmlldy4gVGhlIGxvY2F0aW9uSWQgY2FuXHJcbiAqIGJlIGRldGVybWluZWQgYnkgaW5zcGVjdGluZyB0aGUgRE9NIGFuZCBmaW5kaW5nIHRoZSA8dmRyLWFjdGlvbi1iYXI+IGVsZW1lbnQgYW5kIGl0c1xyXG4gKiBgZGF0YS1sb2NhdGlvbi1pZGAgYXR0cmlidXRlLlxyXG4gKlxyXG4gKiBUaGlzIHNob3VsZCBiZSB1c2VkIGluIHRoZSBOZ01vZHVsZSBgcHJvdmlkZXJzYCBhcnJheSBvZiB5b3VyIHVpIGV4dGVuc2lvbiBtb2R1bGUuXHJcbiAqXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYFR5cGVTY3JpcHRcclxuICogXFxATmdNb2R1bGUoe1xyXG4gKiAgIGltcG9ydHM6IFtTaGFyZWRNb2R1bGVdLFxyXG4gKiAgIHByb3ZpZGVyczogW1xyXG4gKiAgICAgYWRkQWN0aW9uQmFySXRlbSh7XHJcbiAqICAgICAgaWQ6ICdwcmludC1pbnZvaWNlJ1xyXG4gKiAgICAgIGxhYmVsOiAnUHJpbnQgSW52b2ljZScsXHJcbiAqICAgICAgbG9jYXRpb25JZDogJ29yZGVyLWRldGFpbCcsXHJcbiAqICAgICAgcm91dGVyTGluazogWycvZXh0ZW5zaW9ucy9pbnZvaWNpbmcnXSxcclxuICogICAgIH0pLFxyXG4gKiAgIF0sXHJcbiAqIH0pXHJcbiAqIGV4cG9ydCBjbGFzcyBNeVVpRXh0ZW5zaW9uTW9kdWxlIHt9XHJcbiAqIGBgYFxyXG4gKiBAZG9jc0NhdGVnb3J5IGFjdGlvbi1iYXJcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBhZGRBY3Rpb25CYXJJdGVtKGNvbmZpZzogQWN0aW9uQmFySXRlbSk6IFByb3ZpZGVyIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgICAgcHJvdmlkZTogQVBQX0lOSVRJQUxJWkVSLFxyXG4gICAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgICAgIHVzZUZhY3Rvcnk6IChuYXZCdWlsZGVyU2VydmljZTogTmF2QnVpbGRlclNlcnZpY2UpID0+ICgpID0+IHtcclxuICAgICAgICAgICAgbmF2QnVpbGRlclNlcnZpY2UuYWRkQWN0aW9uQmFySXRlbShjb25maWcpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZGVwczogW05hdkJ1aWxkZXJTZXJ2aWNlXSxcclxuICAgIH07XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBUaGlzIHNlcnZpY2UgaXMgdXNlZCB0byBkZWZpbmUgdGhlIGNvbnRlbnRzIG9mIGNvbmZpZ3VyYWJsZSBtZW51cyBpbiB0aGUgYXBwbGljYXRpb24uXHJcbiAqL1xyXG5ASW5qZWN0YWJsZSh7XHJcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOYXZCdWlsZGVyU2VydmljZSB7XHJcbiAgICBuYXZNZW51Q29uZmlnJDogT2JzZXJ2YWJsZTxOYXZNZW51U2VjdGlvbltdPjtcclxuICAgIGFjdGlvbkJhckNvbmZpZyQ6IE9ic2VydmFibGU8QWN0aW9uQmFySXRlbVtdPjtcclxuICAgIHNlY3Rpb25CYWRnZXM6IHsgW3NlY3Rpb25JZDogc3RyaW5nXTogT2JzZXJ2YWJsZTxOYXZNZW51QmFkZ2VUeXBlPiB9ID0ge307XHJcblxyXG4gICAgcHJpdmF0ZSBpbml0aWFsTmF2TWVudUNvbmZpZyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE5hdk1lbnVTZWN0aW9uW10+KFtdKTtcclxuICAgIHByaXZhdGUgYWRkZWROYXZNZW51U2VjdGlvbnM6IEFycmF5PHsgY29uZmlnOiBOYXZNZW51U2VjdGlvbjsgYmVmb3JlPzogc3RyaW5nIH0+ID0gW107XHJcbiAgICBwcml2YXRlIGFkZGVkTmF2TWVudUl0ZW1zOiBBcnJheTx7XHJcbiAgICAgICAgY29uZmlnOiBOYXZNZW51SXRlbTtcclxuICAgICAgICBzZWN0aW9uSWQ6IHN0cmluZztcclxuICAgICAgICBiZWZvcmU/OiBzdHJpbmc7XHJcbiAgICB9PiA9IFtdO1xyXG4gICAgcHJpdmF0ZSBhZGRlZEFjdGlvbkJhckl0ZW1zOiBBY3Rpb25CYXJJdGVtW10gPSBbXTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICB0aGlzLnNldHVwU3RyZWFtcygpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVXNlZCB0byBkZWZpbmUgdGhlIGluaXRpYWwgc2VjdGlvbnMgYW5kIGl0ZW1zIG9mIHRoZSBtYWluIG5hdiBtZW51LlxyXG4gICAgICovXHJcbiAgICBkZWZpbmVOYXZNZW51U2VjdGlvbnMoY29uZmlnOiBOYXZNZW51U2VjdGlvbltdKSB7XHJcbiAgICAgICAgdGhpcy5pbml0aWFsTmF2TWVudUNvbmZpZyQubmV4dChjb25maWcpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQWRkIGEgc2VjdGlvbiB0byB0aGUgbWFpbiBuYXYgbWVudS4gUHJvdmlkaW5nIHRoZSBgYmVmb3JlYCBhcmd1bWVudCB3aWxsXHJcbiAgICAgKiBtb3ZlIHRoZSBzZWN0aW9uIGJlZm9yZSBhbnkgZXhpc3Rpbmcgc2VjdGlvbiB3aXRoIHRoZSBzcGVjaWZpZWQgaWQuIElmXHJcbiAgICAgKiBvbWl0dGVkIChvciBpZiB0aGUgaWQgaXMgbm90IGZvdW5kKSB0aGUgc2VjdGlvbiB3aWxsIGJlIGFwcGVuZGVkIHRvIHRoZVxyXG4gICAgICogZXhpc3Rpbmcgc2V0IG9mIHNlY3Rpb25zLlxyXG4gICAgICpcclxuICAgICAqIFByb3ZpZGluZyB0aGUgYGlkYCBvZiBhbiBleGlzdGluZyBzZWN0aW9uIHdpbGwgcmVwbGFjZSB0aGF0IHNlY3Rpb24uXHJcbiAgICAgKi9cclxuICAgIGFkZE5hdk1lbnVTZWN0aW9uKGNvbmZpZzogTmF2TWVudVNlY3Rpb24sIGJlZm9yZT86IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMuYWRkZWROYXZNZW51U2VjdGlvbnMucHVzaCh7IGNvbmZpZywgYmVmb3JlIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQWRkIGEgbWVudSBpdGVtIHRvIGFuIGV4aXN0aW5nIHNlY3Rpb24gc3BlY2lmaWVkIGJ5IGBzZWN0aW9uSWRgLiBUaGUgaWQgb2YgdGhlIHNlY3Rpb25cclxuICAgICAqIGNhbiBiZSBmb3VuZCBieSBpbnNwZWN0aW5nIHRoZSBET00gYW5kIGZpbmRpbmcgdGhlIGBkYXRhLXNlY3Rpb24taWRgIGF0dHJpYnV0ZS5cclxuICAgICAqIFByb3ZpZGluZyB0aGUgYGJlZm9yZWAgYXJndW1lbnQgd2lsbCBtb3ZlIHRoZSBpdGVtIGJlZm9yZSBhbnkgZXhpc3RpbmcgaXRlbSB3aXRoIHRoZSBzcGVjaWZpZWQgaWQuXHJcbiAgICAgKiBJZiBvbWl0dGVkIChvciBpZiB0aGUgbmFtZSBpcyBub3QgZm91bmQpIHRoZSBpdGVtIHdpbGwgYmUgYXBwZW5kZWQgdG8gdGhlXHJcbiAgICAgKiBlbmQgb2YgdGhlIHNlY3Rpb24uXHJcbiAgICAgKlxyXG4gICAgICogUHJvdmlkaW5nIHRoZSBgaWRgIG9mIGFuIGV4aXN0aW5nIGl0ZW0gaW4gdGhhdCBzZWN0aW9uIHdpbGwgcmVwbGFjZVxyXG4gICAgICogdGhhdCBpdGVtLlxyXG4gICAgICovXHJcbiAgICBhZGROYXZNZW51SXRlbShjb25maWc6IE5hdk1lbnVJdGVtLCBzZWN0aW9uSWQ6IHN0cmluZywgYmVmb3JlPzogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5hZGRlZE5hdk1lbnVJdGVtcy5wdXNoKHsgY29uZmlnLCBzZWN0aW9uSWQsIGJlZm9yZSB9KTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEFkZHMgYSBidXR0b24gdG8gdGhlIEFjdGlvbkJhciBhdCB0aGUgdG9wIHJpZ2h0IG9mIGVhY2ggbGlzdCBvciBkZXRhaWwgdmlldy4gVGhlIGxvY2F0aW9uSWQgY2FuXHJcbiAgICAgKiBiZSBkZXRlcm1pbmVkIGJ5IGluc3BlY3RpbmcgdGhlIERPTSBhbmQgZmluZGluZyB0aGUgPHZkci1hY3Rpb24tYmFyPiBlbGVtZW50IGFuZCBpdHNcclxuICAgICAqIGBkYXRhLWxvY2F0aW9uLWlkYCBhdHRyaWJ1dGUuXHJcbiAgICAgKi9cclxuICAgIGFkZEFjdGlvbkJhckl0ZW0oY29uZmlnOiBBY3Rpb25CYXJJdGVtKSB7XHJcbiAgICAgICAgdGhpcy5hZGRlZEFjdGlvbkJhckl0ZW1zLnB1c2goe1xyXG4gICAgICAgICAgICByZXF1aXJlc1Blcm1pc3Npb246IFBlcm1pc3Npb24uQXV0aGVudGljYXRlZCxcclxuICAgICAgICAgICAgLi4uY29uZmlnLFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGdldFJvdXRlckxpbmsoY29uZmlnOiB7IHJvdXRlckxpbms/OiBSb3V0ZXJMaW5rRGVmaW5pdGlvbiB9LCByb3V0ZTogQWN0aXZhdGVkUm91dGUpOiBzdHJpbmdbXSB8IG51bGwge1xyXG4gICAgICAgIGlmICh0eXBlb2YgY29uZmlnLnJvdXRlckxpbmsgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGNvbmZpZy5yb3V0ZXJMaW5rKHJvdXRlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoY29uZmlnLnJvdXRlckxpbmspKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBjb25maWcucm91dGVyTGluaztcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBzZXR1cFN0cmVhbXMoKSB7XHJcbiAgICAgICAgY29uc3Qgc2VjdGlvbkFkZGl0aW9ucyQgPSBvZih0aGlzLmFkZGVkTmF2TWVudVNlY3Rpb25zKTtcclxuICAgICAgICBjb25zdCBpdGVtQWRkaXRpb25zJCA9IG9mKHRoaXMuYWRkZWROYXZNZW51SXRlbXMpO1xyXG5cclxuICAgICAgICBjb25zdCBjb21iaW5lZENvbmZpZyQgPSBjb21iaW5lTGF0ZXN0KHRoaXMuaW5pdGlhbE5hdk1lbnVDb25maWckLCBzZWN0aW9uQWRkaXRpb25zJCkucGlwZShcclxuICAgICAgICAgICAgbWFwKChbaW5pdGlhbENvbmZpZywgYWRkaXRpb25zXSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCB7IGNvbmZpZywgYmVmb3JlIH0gb2YgYWRkaXRpb25zKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFjb25maWcucmVxdWlyZXNQZXJtaXNzaW9uKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZy5yZXF1aXJlc1Blcm1pc3Npb24gPSBQZXJtaXNzaW9uLkF1dGhlbnRpY2F0ZWQ7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGV4aXN0aW5nSW5kZXggPSBpbml0aWFsQ29uZmlnLmZpbmRJbmRleChjID0+IGMuaWQgPT09IGNvbmZpZy5pZCk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKC0xIDwgZXhpc3RpbmdJbmRleCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpbml0aWFsQ29uZmlnW2V4aXN0aW5nSW5kZXhdID0gY29uZmlnO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBiZWZvcmVJbmRleCA9IGluaXRpYWxDb25maWcuZmluZEluZGV4KGMgPT4gYy5pZCA9PT0gYmVmb3JlKTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoLTEgPCBiZWZvcmVJbmRleCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoLTEgPCBleGlzdGluZ0luZGV4KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbml0aWFsQ29uZmlnLnNwbGljZShleGlzdGluZ0luZGV4LCAxKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpbml0aWFsQ29uZmlnLnNwbGljZShiZWZvcmVJbmRleCwgMCwgY29uZmlnKTtcclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGV4aXN0aW5nSW5kZXggPT09IC0xKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGluaXRpYWxDb25maWcucHVzaChjb25maWcpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHJldHVybiBpbml0aWFsQ29uZmlnO1xyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgc2hhcmVSZXBsYXkoMSksXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgdGhpcy5uYXZNZW51Q29uZmlnJCA9IGNvbWJpbmVMYXRlc3QoY29tYmluZWRDb25maWckLCBpdGVtQWRkaXRpb25zJCkucGlwZShcclxuICAgICAgICAgICAgbWFwKChbc2VjdGlvbnMsIGFkZGl0aW9uYWxJdGVtc10pID0+IHtcclxuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgaXRlbSBvZiBhZGRpdGlvbmFsSXRlbXMpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBzZWN0aW9uID0gc2VjdGlvbnMuZmluZChzID0+IHMuaWQgPT09IGl0ZW0uc2VjdGlvbklkKTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoIXNlY3Rpb24pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWNvbnNvbGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBDb3VsZCBub3QgYWRkIG1lbnUgaXRlbSBcIiR7aXRlbS5jb25maWcuaWR9XCIsIHNlY3Rpb24gXCIke2l0ZW0uc2VjdGlvbklkfVwiIGRvZXMgbm90IGV4aXN0YCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB7IGNvbmZpZywgc2VjdGlvbklkLCBiZWZvcmUgfSA9IGl0ZW07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGV4aXN0aW5nSW5kZXggPSBzZWN0aW9uLml0ZW1zLmZpbmRJbmRleChpID0+IGkuaWQgPT09IGNvbmZpZy5pZCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgtMSA8IGV4aXN0aW5nSW5kZXgpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlY3Rpb24uaXRlbXNbZXhpc3RpbmdJbmRleF0gPSBjb25maWc7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYmVmb3JlSW5kZXggPSBzZWN0aW9uLml0ZW1zLmZpbmRJbmRleChpID0+IGkuaWQgPT09IGJlZm9yZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgtMSA8IGJlZm9yZUluZGV4KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoLTEgPCBleGlzdGluZ0luZGV4KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VjdGlvbi5pdGVtcy5zcGxpY2UoZXhpc3RpbmdJbmRleCwgMSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWN0aW9uLml0ZW1zLnNwbGljZShiZWZvcmVJbmRleCwgMCwgY29uZmlnKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChleGlzdGluZ0luZGV4ID09PSAtMSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VjdGlvbi5pdGVtcy5wdXNoKGNvbmZpZyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgLy8gQWdncmVnYXRlIGFueSBiYWRnZXMgZGVmaW5lZCBmb3IgdGhlIG5hdiBpdGVtcyBpbiBlYWNoIHNlY3Rpb25cclxuICAgICAgICAgICAgICAgIGZvciAoY29uc3Qgc2VjdGlvbiBvZiBzZWN0aW9ucykge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGl0ZW1CYWRnZVN0YXR1c2VzID0gc2VjdGlvbi5pdGVtc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAubWFwKGkgPT4gaS5zdGF0dXNCYWRnZSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgLmZpbHRlcihub3ROdWxsT3JVbmRlZmluZWQpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VjdGlvbkJhZGdlc1tzZWN0aW9uLmlkXSA9IGNvbWJpbmVMYXRlc3QoaXRlbUJhZGdlU3RhdHVzZXMpLnBpcGUoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcChiYWRnZXMgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJvcGFnYXRpbmdCYWRnZXMgPSBiYWRnZXMuZmlsdGVyKGIgPT4gYi5wcm9wYWdhdGVUb1NlY3Rpb24pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHByb3BhZ2F0aW5nQmFkZ2VzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnbm9uZSc7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdGF0dXNlcyA9IHByb3BhZ2F0aW5nQmFkZ2VzLm1hcChiID0+IGIudHlwZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3RhdHVzZXMuaW5jbHVkZXMoJ2Vycm9yJykpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ2Vycm9yJztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoc3RhdHVzZXMuaW5jbHVkZXMoJ3dhcm5pbmcnKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnd2FybmluZyc7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHN0YXR1c2VzLmluY2x1ZGVzKCdpbmZvJykpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ2luZm8nO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ25vbmUnO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIHJldHVybiBzZWN0aW9ucztcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgdGhpcy5hY3Rpb25CYXJDb25maWckID0gb2YodGhpcy5hZGRlZEFjdGlvbkJhckl0ZW1zKTtcclxuICAgIH1cclxufVxyXG4iXX0=