@igo2/geo 16.3.0 → 17.0.0-next.2

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 (576) hide show
  1. package/esm2022/lib/catalog/catalog-browser/catalog-browser-group.component.mjs +30 -14
  2. package/esm2022/lib/catalog/catalog-browser/catalog-browser-layer.component.mjs +35 -17
  3. package/esm2022/lib/catalog/catalog-browser/catalog-browser.component.mjs +18 -11
  4. package/esm2022/lib/catalog/catalog-browser/catalog-browser.module.mjs +8 -62
  5. package/esm2022/lib/catalog/catalog-library/add-catalog-dialog.component.mjs +49 -20
  6. package/esm2022/lib/catalog/catalog-library/catalog-library-item.component.mjs +22 -10
  7. package/esm2022/lib/catalog/catalog-library/catalog-library.component.mjs +32 -16
  8. package/esm2022/lib/catalog/catalog-library/catalog-library.module.mjs +8 -71
  9. package/esm2022/lib/catalog/catalog-library/index.mjs +9 -0
  10. package/esm2022/lib/catalog/catalog.module.mjs +9 -37
  11. package/esm2022/lib/catalog/index.mjs +7 -1
  12. package/esm2022/lib/catalog/shared/catalog.service.mjs +16 -9
  13. package/esm2022/lib/catalog/shared/index.mjs +1 -1
  14. package/esm2022/lib/datasource/index.mjs +1 -1
  15. package/esm2022/lib/datasource/shared/capabilities.service.mjs +5 -5
  16. package/esm2022/lib/datasource/shared/datasource.service.mjs +11 -13
  17. package/esm2022/lib/datasource/shared/datasources/any-datasource.mjs +1 -1
  18. package/esm2022/lib/datasource/shared/datasources/arcgisrest-datasource.mjs +1 -1
  19. package/esm2022/lib/datasource/shared/datasources/carto-datasource.mjs +1 -1
  20. package/esm2022/lib/datasource/shared/datasources/cluster-datasource.mjs +1 -1
  21. package/esm2022/lib/datasource/shared/datasources/data.service.mjs +1 -1
  22. package/esm2022/lib/datasource/shared/datasources/datasource.mjs +1 -1
  23. package/esm2022/lib/datasource/shared/datasources/feature-datasource.mjs +1 -1
  24. package/esm2022/lib/datasource/shared/datasources/imagearcgisrest-datasource.interface.mjs +1 -1
  25. package/esm2022/lib/datasource/shared/datasources/imagearcgisrest-datasource.mjs +1 -1
  26. package/esm2022/lib/datasource/shared/datasources/mvt-datasource.mjs +1 -1
  27. package/esm2022/lib/datasource/shared/datasources/osm-datasource.mjs +1 -1
  28. package/esm2022/lib/datasource/shared/datasources/tilearcgisrest-datasource.mjs +1 -1
  29. package/esm2022/lib/datasource/shared/datasources/tiledebug-datasource.interface.mjs +1 -1
  30. package/esm2022/lib/datasource/shared/datasources/tiledebug-datasource.mjs +1 -1
  31. package/esm2022/lib/datasource/shared/datasources/websocket-datasource.interface.mjs +1 -1
  32. package/esm2022/lib/datasource/shared/datasources/websocket-datasource.mjs +1 -1
  33. package/esm2022/lib/datasource/shared/datasources/wfs-datasource.mjs +1 -1
  34. package/esm2022/lib/datasource/shared/datasources/wfs.service.mjs +5 -5
  35. package/esm2022/lib/datasource/shared/datasources/wms-datasource.mjs +1 -1
  36. package/esm2022/lib/datasource/shared/datasources/wms-wfs.utils.mjs +1 -1
  37. package/esm2022/lib/datasource/shared/datasources/wmts-datasource.interface.mjs +1 -1
  38. package/esm2022/lib/datasource/shared/datasources/wmts-datasource.mjs +1 -1
  39. package/esm2022/lib/datasource/shared/datasources/xyz-datasource.interface.mjs +1 -1
  40. package/esm2022/lib/datasource/shared/datasources/xyz-datasource.mjs +1 -1
  41. package/esm2022/lib/datasource/shared/index.mjs +1 -1
  42. package/esm2022/lib/datasource/shared/options/options-api.providers.mjs +2 -2
  43. package/esm2022/lib/datasource/shared/options/options-api.service.mjs +6 -6
  44. package/esm2022/lib/datasource/shared/options/options.service.mjs +1 -1
  45. package/esm2022/lib/datasource/utils/tilegrid.mjs +1 -1
  46. package/esm2022/lib/directions/directions-buttons/directions-buttons.component.mjs +28 -13
  47. package/esm2022/lib/directions/directions-buttons/index.mjs +1 -1
  48. package/esm2022/lib/directions/directions-inputs/directions-inputs.component.mjs +44 -19
  49. package/esm2022/lib/directions/directions-inputs/index.mjs +1 -1
  50. package/esm2022/lib/directions/directions-results/directions-results.component.mjs +36 -16
  51. package/esm2022/lib/directions/directions-results/index.mjs +1 -1
  52. package/esm2022/lib/directions/directions-sources/directions-source.provider.mjs +2 -2
  53. package/esm2022/lib/directions/directions-sources/index.mjs +1 -1
  54. package/esm2022/lib/directions/directions-sources/osrm-directions-source.mjs +7 -7
  55. package/esm2022/lib/directions/directions.component.mjs +20 -12
  56. package/esm2022/lib/directions/directions.module.mjs +17 -70
  57. package/esm2022/lib/directions/index.mjs +1 -1
  58. package/esm2022/lib/directions/shared/directions-source.service.mjs +1 -1
  59. package/esm2022/lib/directions/shared/directions.enum.mjs +1 -1
  60. package/esm2022/lib/directions/shared/directions.service.mjs +13 -9
  61. package/esm2022/lib/directions/shared/directions.utils.mjs +1 -1
  62. package/esm2022/lib/directions/shared/index.mjs +1 -1
  63. package/esm2022/lib/download/download-button/download-button.component.mjs +21 -11
  64. package/esm2022/lib/download/download-button/index.mjs +1 -1
  65. package/esm2022/lib/download/download.module.mjs +10 -27
  66. package/esm2022/lib/download/index.mjs +1 -1
  67. package/esm2022/lib/download/shared/download.interface.mjs +1 -1
  68. package/esm2022/lib/download/shared/download.service.mjs +7 -7
  69. package/esm2022/lib/download/shared/index.mjs +1 -1
  70. package/esm2022/lib/draw/draw/draw-layer-popup.component.mjs +21 -10
  71. package/esm2022/lib/draw/draw/draw-popup.component.mjs +41 -18
  72. package/esm2022/lib/draw/draw/draw-shorcuts.component.mjs +19 -9
  73. package/esm2022/lib/draw/draw/draw.component.mjs +54 -24
  74. package/esm2022/lib/draw/draw/draw.module.mjs +7 -104
  75. package/esm2022/lib/draw/drawingTool.module.mjs +8 -7
  76. package/esm2022/lib/draw/index.mjs +1 -1
  77. package/esm2022/lib/draw/shared/draw-icon.service.mjs +7 -7
  78. package/esm2022/lib/draw/shared/draw.utils.mjs +1 -1
  79. package/esm2022/lib/draw/shared/index.mjs +1 -1
  80. package/esm2022/lib/feature/feature-details/feature-details.component.mjs +28 -13
  81. package/esm2022/lib/feature/feature-details/feature-details.directive.mjs +8 -7
  82. package/esm2022/lib/feature/feature-details/feature-details.module.mjs +8 -27
  83. package/esm2022/lib/feature/feature-details/index.mjs +9 -0
  84. package/esm2022/lib/feature/feature-form/feature-form.component.mjs +8 -8
  85. package/esm2022/lib/feature/feature-form/feature-form.module.mjs +8 -11
  86. package/esm2022/lib/feature/feature.module.mjs +9 -10
  87. package/esm2022/lib/feature/index.mjs +8 -2
  88. package/esm2022/lib/feature/shared/feature-store.utils.mjs +1 -1
  89. package/esm2022/lib/feature/shared/feature.enums.mjs +1 -1
  90. package/esm2022/lib/feature/shared/feature.utils.mjs +1 -1
  91. package/esm2022/lib/feature/shared/store.mjs +1 -1
  92. package/esm2022/lib/feature/shared/strategies/geo-properties.mjs +1 -1
  93. package/esm2022/lib/feature/shared/strategies/in-map-extent.mjs +1 -1
  94. package/esm2022/lib/feature/shared/strategies/in-map-resolution.mjs +1 -1
  95. package/esm2022/lib/feature/shared/strategies/index.mjs +1 -1
  96. package/esm2022/lib/feature/shared/strategies/loading-layer.mjs +1 -1
  97. package/esm2022/lib/feature/shared/strategies/loading.mjs +1 -1
  98. package/esm2022/lib/feature/shared/strategies/search.mjs +4 -4
  99. package/esm2022/lib/feature/shared/strategies/selection.mjs +1 -1
  100. package/esm2022/lib/feature/shared/strategies.utils.mjs +1 -1
  101. package/esm2022/lib/filter/filter.module.mjs +47 -177
  102. package/esm2022/lib/filter/index.mjs +36 -1
  103. package/esm2022/lib/filter/ogc-filter-button/ogc-filter-button.component.mjs +29 -15
  104. package/esm2022/lib/filter/ogc-filter-form/ogc-filter-form.component.mjs +46 -20
  105. package/esm2022/lib/filter/ogc-filter-selection/ogc-filter-selection.component.mjs +54 -23
  106. package/esm2022/lib/filter/ogc-filter-time/ogc-filter-time-slider.component.mjs +13 -10
  107. package/esm2022/lib/filter/ogc-filter-time/ogc-filter-time.component.mjs +45 -18
  108. package/esm2022/lib/filter/ogc-filterable-form/ogc-filterable-form.component.mjs +18 -12
  109. package/esm2022/lib/filter/ogc-filterable-item/ogc-filterable-item.component.mjs +42 -18
  110. package/esm2022/lib/filter/ogc-filterable-list/ogc-filterable-list-binding.directive.mjs +8 -7
  111. package/esm2022/lib/filter/ogc-filterable-list/ogc-filterable-list.component.mjs +21 -12
  112. package/esm2022/lib/filter/shared/filterable-datasource.pipe.mjs +6 -5
  113. package/esm2022/lib/filter/shared/ogc-filter-time.service.mjs +5 -5
  114. package/esm2022/lib/filter/shared/ogc-filter.enum.mjs +1 -1
  115. package/esm2022/lib/filter/shared/ogc-filter.mjs +1 -1
  116. package/esm2022/lib/filter/shared/ogc-filter.service.mjs +5 -5
  117. package/esm2022/lib/filter/shared/spatial-filter.enum.mjs +1 -1
  118. package/esm2022/lib/filter/shared/spatial-filter.service.mjs +9 -7
  119. package/esm2022/lib/filter/shared/time-filter.enum.mjs +1 -1
  120. package/esm2022/lib/filter/shared/time-filter.interface.mjs +1 -1
  121. package/esm2022/lib/filter/shared/time-filter.service.mjs +5 -5
  122. package/esm2022/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.mjs +66 -28
  123. package/esm2022/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.mjs +34 -17
  124. package/esm2022/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.mjs +34 -15
  125. package/esm2022/lib/filter/time-filter-button/time-filter-button.component.mjs +28 -14
  126. package/esm2022/lib/filter/time-filter-form/time-filter-form.component.mjs +47 -20
  127. package/esm2022/lib/filter/time-filter-item/time-filter-item.component.mjs +31 -13
  128. package/esm2022/lib/filter/time-filter-list/time-filter-list-binding.directive.mjs +8 -7
  129. package/esm2022/lib/filter/time-filter-list/time-filter-list.component.mjs +16 -10
  130. package/esm2022/lib/geo.module.mjs +5 -43
  131. package/esm2022/lib/geometry/geometry-form-field/geometry-form-field-input.component.mjs +7 -7
  132. package/esm2022/lib/geometry/geometry-form-field/geometry-form-field.component.mjs +33 -16
  133. package/esm2022/lib/geometry/geometry-form-field/geometry-form-field.module.mjs +8 -43
  134. package/esm2022/lib/geometry/geometry-form-field/index.mjs +9 -0
  135. package/esm2022/lib/geometry/geometry.module.mjs +9 -10
  136. package/esm2022/lib/geometry/index.mjs +2 -3
  137. package/esm2022/lib/geometry/shared/controls/draw.mjs +1 -1
  138. package/esm2022/lib/geometry/shared/controls/index.mjs +1 -1
  139. package/esm2022/lib/geometry/shared/controls/modify.mjs +1 -1
  140. package/esm2022/lib/geometry/shared/controls/slice.mjs +1 -1
  141. package/esm2022/lib/geometry/shared/geometry.utils.mjs +1 -1
  142. package/esm2022/lib/geometry/shared/index.mjs +1 -1
  143. package/esm2022/lib/import-export/export-button/export-button.component.mjs +20 -10
  144. package/esm2022/lib/import-export/export-button/index.mjs +1 -1
  145. package/esm2022/lib/import-export/import-export/import-export.component.mjs +56 -22
  146. package/esm2022/lib/import-export/import-export/index.mjs +1 -1
  147. package/esm2022/lib/import-export/import-export.module.mjs +10 -81
  148. package/esm2022/lib/import-export/index.mjs +9 -1
  149. package/esm2022/lib/import-export/shared/drop-geo-file.directive.mjs +13 -10
  150. package/esm2022/lib/import-export/shared/export.errors.mjs +1 -1
  151. package/esm2022/lib/import-export/shared/export.service.mjs +7 -7
  152. package/esm2022/lib/import-export/shared/export.utils.mjs +1 -1
  153. package/esm2022/lib/import-export/shared/import.service.mjs +7 -7
  154. package/esm2022/lib/import-export/shared/import.utils.mjs +1 -1
  155. package/esm2022/lib/import-export/shared/index.mjs +1 -1
  156. package/esm2022/lib/layer/index.mjs +19 -1
  157. package/esm2022/lib/layer/layer-item/layer-item.component.mjs +35 -16
  158. package/esm2022/lib/layer/layer-legend/layer-legend.component.mjs +43 -17
  159. package/esm2022/lib/layer/layer-legend-item/layer-legend-item.component.mjs +13 -11
  160. package/esm2022/lib/layer/layer-legend-list/layer-legend-list-binding.directive.mjs +8 -7
  161. package/esm2022/lib/layer/layer-legend-list/layer-legend-list.component.mjs +28 -13
  162. package/esm2022/lib/layer/layer-list/layer-list-binding.directive.mjs +10 -9
  163. package/esm2022/lib/layer/layer-list/layer-list.component.mjs +48 -18
  164. package/esm2022/lib/layer/layer-list/layer-list.enum.mjs +1 -1
  165. package/esm2022/lib/layer/layer-list-tool/layer-list-tool.component.mjs +33 -14
  166. package/esm2022/lib/layer/layer-list-tool/layer-list-tool.service.mjs +5 -5
  167. package/esm2022/lib/layer/layer.module.mjs +16 -93
  168. package/esm2022/lib/layer/shared/clusterParam.mjs +1 -1
  169. package/esm2022/lib/layer/shared/layer.service.mjs +8 -8
  170. package/esm2022/lib/layer/shared/layers/any-layer.interface.mjs +1 -1
  171. package/esm2022/lib/layer/shared/layers/any-layer.mjs +1 -1
  172. package/esm2022/lib/layer/shared/layers/image-layer.mjs +1 -1
  173. package/esm2022/lib/layer/shared/layers/index.mjs +1 -1
  174. package/esm2022/lib/layer/shared/layers/layer.interface.mjs +1 -1
  175. package/esm2022/lib/layer/shared/layers/layer.mjs +1 -1
  176. package/esm2022/lib/layer/shared/layers/tile-layer.mjs +1 -1
  177. package/esm2022/lib/layer/shared/layers/vector-layer.mjs +1 -1
  178. package/esm2022/lib/layer/shared/layers/vectortile-layer.mjs +1 -1
  179. package/esm2022/lib/layer/track-feature-button/track-feature-button.component.mjs +21 -11
  180. package/esm2022/lib/layer/utils/image-watcher.mjs +1 -1
  181. package/esm2022/lib/layer/utils/layer.utils.mjs +1 -1
  182. package/esm2022/lib/layer/utils/outputLegend.mjs +1 -1
  183. package/esm2022/lib/layer/utils/tile-watcher.mjs +1 -1
  184. package/esm2022/lib/layer/utils/vector-watcher.mjs +1 -1
  185. package/esm2022/lib/map/baselayers-switcher/baselayers-switcher.component.mjs +27 -14
  186. package/esm2022/lib/map/baselayers-switcher/mini-basemap.component.mjs +8 -8
  187. package/esm2022/lib/map/geolocate-button/geolocate-button.component.mjs +24 -13
  188. package/esm2022/lib/map/home-extent-button/home-extent-button.component.mjs +15 -11
  189. package/esm2022/lib/map/home-extent-button/home-extent-button.interface.mjs +1 -1
  190. package/esm2022/lib/map/home-extent-button/index.mjs +1 -1
  191. package/esm2022/lib/map/index.mjs +32 -1
  192. package/esm2022/lib/map/info-section/info-section.component.mjs +7 -7
  193. package/esm2022/lib/map/map-browser/map-browser.component.mjs +8 -8
  194. package/esm2022/lib/map/map-center/map-center.component.mjs +6 -6
  195. package/esm2022/lib/map/map.module.mjs +36 -66
  196. package/esm2022/lib/map/menu-button/menu-button.component.mjs +23 -13
  197. package/esm2022/lib/map/offline-button/offline-button.component.mjs +21 -11
  198. package/esm2022/lib/map/rotation-button/rotation-button.component.mjs +23 -11
  199. package/esm2022/lib/map/shared/controllers/controller.mjs +1 -1
  200. package/esm2022/lib/map/shared/controllers/geolocation.interface.mjs +1 -1
  201. package/esm2022/lib/map/shared/controllers/geolocation.mjs +1 -1
  202. package/esm2022/lib/map/shared/controllers/index.mjs +1 -1
  203. package/esm2022/lib/map/shared/controllers/view.mjs +1 -1
  204. package/esm2022/lib/map/shared/hover-feature.directive.mjs +10 -9
  205. package/esm2022/lib/map/shared/index.mjs +1 -1
  206. package/esm2022/lib/map/shared/linkedLayers.utils.mjs +1 -1
  207. package/esm2022/lib/map/shared/map-pointer-position.directive.mjs +10 -9
  208. package/esm2022/lib/map/shared/map.interface.mjs +1 -1
  209. package/esm2022/lib/map/shared/map.mjs +1 -1
  210. package/esm2022/lib/map/shared/map.service.mjs +5 -5
  211. package/esm2022/lib/map/shared/map.utils.mjs +1 -1
  212. package/esm2022/lib/map/shared/mapOffline.directive.mjs +11 -8
  213. package/esm2022/lib/map/shared/projection.interfaces.mjs +1 -1
  214. package/esm2022/lib/map/shared/projection.service.mjs +7 -7
  215. package/esm2022/lib/map/shared/projection.utils.mjs +1 -1
  216. package/esm2022/lib/map/swipe-control/swipe-control.component.mjs +6 -6
  217. package/esm2022/lib/map/utils/layer-watcher.mjs +1 -1
  218. package/esm2022/lib/map/wake-lock-button/wake-lock-button.component.mjs +23 -13
  219. package/esm2022/lib/map/zoom-button/zoom-button.component.mjs +13 -9
  220. package/esm2022/lib/measure/index.mjs +2 -3
  221. package/esm2022/lib/measure/measure.module.mjs +8 -5
  222. package/esm2022/lib/measure/measurer/index.mjs +6 -0
  223. package/esm2022/lib/measure/measurer/measure-format.pipe.mjs +6 -5
  224. package/esm2022/lib/measure/measurer/measurer-dialog.component.mjs +18 -11
  225. package/esm2022/lib/measure/measurer/measurer-item.component.mjs +27 -13
  226. package/esm2022/lib/measure/measurer/measurer.component.mjs +40 -20
  227. package/esm2022/lib/measure/measurer/measurer.module.mjs +7 -69
  228. package/esm2022/lib/measure/shared/index.mjs +1 -1
  229. package/esm2022/lib/measure/shared/measure.utils.mjs +1 -1
  230. package/esm2022/lib/metadata/index.mjs +6 -1
  231. package/esm2022/lib/metadata/metadata-button/index.mjs +1 -1
  232. package/esm2022/lib/metadata/metadata-button/metadata-button.component.mjs +35 -18
  233. package/esm2022/lib/metadata/metadata.module.mjs +10 -31
  234. package/esm2022/lib/metadata/shared/index.mjs +1 -1
  235. package/esm2022/lib/metadata/shared/metadata.service.mjs +5 -5
  236. package/esm2022/lib/offline/geoDB/configFileToGeoDB.service.mjs +7 -7
  237. package/esm2022/lib/offline/geoDB/geoDB.service.mjs +8 -10
  238. package/esm2022/lib/offline/geoDB/index.mjs +1 -1
  239. package/esm2022/lib/offline/index.mjs +1 -1
  240. package/esm2022/lib/offline/layerDB/layerDB.service.mjs +5 -5
  241. package/esm2022/lib/offline/shared/geo-network.service.mjs +7 -7
  242. package/esm2022/lib/offline/shared/index.mjs +1 -1
  243. package/esm2022/lib/overlay/index.mjs +1 -1
  244. package/esm2022/lib/overlay/overlay.module.mjs +10 -8
  245. package/esm2022/lib/overlay/shared/index.mjs +1 -1
  246. package/esm2022/lib/overlay/shared/overlay.directive.mjs +8 -7
  247. package/esm2022/lib/overlay/shared/overlay.mjs +1 -1
  248. package/esm2022/lib/overlay/shared/overlay.service.mjs +5 -5
  249. package/esm2022/lib/print/index.mjs +1 -1
  250. package/esm2022/lib/print/print/print.component.mjs +7 -7
  251. package/esm2022/lib/print/print-form/index.mjs +1 -1
  252. package/esm2022/lib/print/print-form/print-form.component.mjs +36 -16
  253. package/esm2022/lib/print/print.module.mjs +10 -54
  254. package/esm2022/lib/print/shared/index.mjs +1 -1
  255. package/esm2022/lib/print/shared/print.service.mjs +18 -12
  256. package/esm2022/lib/query/index.mjs +1 -1
  257. package/esm2022/lib/query/query.module.mjs +7 -8
  258. package/esm2022/lib/query/shared/index.mjs +1 -1
  259. package/esm2022/lib/query/shared/query-search-source.mjs +6 -6
  260. package/esm2022/lib/query/shared/query-search-source.providers.mjs +2 -2
  261. package/esm2022/lib/query/shared/query.directive.mjs +8 -7
  262. package/esm2022/lib/query/shared/query.enums.mjs +1 -1
  263. package/esm2022/lib/query/shared/query.service.mjs +8 -10
  264. package/esm2022/lib/search/index.mjs +14 -5
  265. package/esm2022/lib/search/search-bar/search-bar.component.mjs +38 -18
  266. package/esm2022/lib/search/search-bar/search-bar.module.mjs +8 -61
  267. package/esm2022/lib/search/search-results/index.mjs +10 -0
  268. package/esm2022/lib/search/search-results/save-feature-dialog.component.mjs +44 -19
  269. package/esm2022/lib/search/search-results/search-results-add-button.component.mjs +30 -16
  270. package/esm2022/lib/search/search-results/search-results-item.component.mjs +22 -12
  271. package/esm2022/lib/search/search-results/search-results.component.mjs +26 -14
  272. package/esm2022/lib/search/search-results/search-results.module.mjs +8 -91
  273. package/esm2022/lib/search/search-selector/search-selector.component.mjs +27 -12
  274. package/esm2022/lib/search/search-selector/search-selector.module.mjs +8 -44
  275. package/esm2022/lib/search/search-settings/search-settings.component.mjs +40 -15
  276. package/esm2022/lib/search/search-settings/search-settings.module.mjs +7 -47
  277. package/esm2022/lib/search/search.module.mjs +10 -13
  278. package/esm2022/lib/search/shared/index.mjs +1 -1
  279. package/esm2022/lib/search/shared/search-pointer-summary.directive.mjs +10 -9
  280. package/esm2022/lib/search/shared/search-source.service.mjs +1 -1
  281. package/esm2022/lib/search/shared/search.service.mjs +7 -7
  282. package/esm2022/lib/search/shared/search.utils.mjs +1 -1
  283. package/esm2022/lib/search/shared/sources/cadastre.mjs +12 -9
  284. package/esm2022/lib/search/shared/sources/cadastre.providers.mjs +4 -2
  285. package/esm2022/lib/search/shared/sources/coordinates.mjs +15 -13
  286. package/esm2022/lib/search/shared/sources/coordinates.providers.mjs +4 -2
  287. package/esm2022/lib/search/shared/sources/icherche.mjs +20 -18
  288. package/esm2022/lib/search/shared/sources/icherche.providers.mjs +4 -2
  289. package/esm2022/lib/search/shared/sources/ilayer.mjs +14 -12
  290. package/esm2022/lib/search/shared/sources/ilayer.providers.mjs +4 -2
  291. package/esm2022/lib/search/shared/sources/nominatim.interfaces.mjs +1 -1
  292. package/esm2022/lib/search/shared/sources/nominatim.mjs +8 -8
  293. package/esm2022/lib/search/shared/sources/nominatim.providers.mjs +3 -2
  294. package/esm2022/lib/search/shared/sources/source.mjs +1 -1
  295. package/esm2022/lib/search/shared/sources/storedqueries.mjs +15 -13
  296. package/esm2022/lib/search/shared/sources/storedqueries.providers.mjs +4 -2
  297. package/esm2022/lib/search/shared/sources/workspace.mjs +11 -10
  298. package/esm2022/lib/search/shared/sources/workspace.providers.mjs +4 -2
  299. package/esm2022/lib/style/shared/datasource/esri-style-generator.mjs +1 -1
  300. package/esm2022/lib/style/shared/datasource/index.mjs +1 -1
  301. package/esm2022/lib/style/shared/feature/feature-style.mjs +1 -1
  302. package/esm2022/lib/style/shared/feature/index.mjs +1 -1
  303. package/esm2022/lib/style/shared/overlay/index.mjs +1 -1
  304. package/esm2022/lib/style/shared/overlay/overlay-marker-style.utils.mjs +1 -1
  305. package/esm2022/lib/style/shared/overlay/overlay-style.utils.mjs +1 -1
  306. package/esm2022/lib/style/shared/vector/commonVectorStyle.mjs +1 -1
  307. package/esm2022/lib/style/shared/vector/conversion.utils.mjs +1 -1
  308. package/esm2022/lib/style/shared/vector/index.mjs +1 -1
  309. package/esm2022/lib/style/style-list/index.mjs +1 -1
  310. package/esm2022/lib/style/style-list/style-list.interface.mjs +1 -1
  311. package/esm2022/lib/style/style-list/style-list.module.mjs +5 -5
  312. package/esm2022/lib/style/style-list/style-list.service.mjs +5 -5
  313. package/esm2022/lib/style/style-modal/drawing/index.mjs +1 -1
  314. package/esm2022/lib/style/style-modal/drawing/style-modal-drawing.component.mjs +40 -17
  315. package/esm2022/lib/style/style-modal/index.mjs +1 -1
  316. package/esm2022/lib/style/style-modal/layer/index.mjs +1 -1
  317. package/esm2022/lib/style/style-modal/layer/style-modal-layer.component.mjs +28 -14
  318. package/esm2022/lib/style/style-modal/layer-button/index.mjs +1 -1
  319. package/esm2022/lib/style/style-modal/layer-button/style-modal-layer-button.component.mjs +13 -9
  320. package/esm2022/lib/style/style-modal/shared/index.mjs +1 -1
  321. package/esm2022/lib/style/style-service/draw-style.service.mjs +5 -5
  322. package/esm2022/lib/style/style-service/index.mjs +1 -1
  323. package/esm2022/lib/style/style-service/style.service.mjs +4 -4
  324. package/esm2022/lib/style/style.module.mjs +12 -57
  325. package/esm2022/lib/toast/index.mjs +1 -1
  326. package/esm2022/lib/toast/toast.component.mjs +19 -11
  327. package/esm2022/lib/toast/toast.module.mjs +10 -30
  328. package/esm2022/lib/utils/id-generator.mjs +1 -1
  329. package/esm2022/lib/utils/index.mjs +1 -1
  330. package/esm2022/lib/utils/propertyTypeDetector/index.mjs +1 -1
  331. package/esm2022/lib/utils/propertyTypeDetector/propertyTypeDetector.service.mjs +7 -7
  332. package/esm2022/lib/wkt/index.mjs +1 -1
  333. package/esm2022/lib/wkt/shared/index.mjs +1 -1
  334. package/esm2022/lib/wkt/shared/wkt.service.mjs +5 -5
  335. package/esm2022/lib/wkt/wkt.module.mjs +8 -5
  336. package/esm2022/lib/workspace/confirmation-popup/confirmation-popup.component.mjs +11 -10
  337. package/esm2022/lib/workspace/confirmation-popup/confirmation-popup.module.mjs +8 -24
  338. package/esm2022/lib/workspace/index.mjs +1 -1
  339. package/esm2022/lib/workspace/shared/edition-workspace.mjs +1 -1
  340. package/esm2022/lib/workspace/shared/edition-workspace.service.mjs +15 -11
  341. package/esm2022/lib/workspace/shared/feature-workspace.mjs +1 -1
  342. package/esm2022/lib/workspace/shared/feature-workspace.service.mjs +12 -10
  343. package/esm2022/lib/workspace/shared/index.mjs +1 -1
  344. package/esm2022/lib/workspace/shared/wfs-workspace.mjs +1 -1
  345. package/esm2022/lib/workspace/shared/wfs-workspace.service.mjs +12 -10
  346. package/esm2022/lib/workspace/shared/wms-workspace.service.mjs +10 -8
  347. package/esm2022/lib/workspace/shared/workspace.utils.mjs +2 -2
  348. package/esm2022/lib/workspace/widgets/index.mjs +1 -1
  349. package/esm2022/lib/workspace/widgets/ogc-filter/ogc-filter.component.mjs +7 -7
  350. package/esm2022/lib/workspace/widgets/ogc-filter/ogc-filter.module.mjs +8 -13
  351. package/esm2022/lib/workspace/widgets/widgets.mjs +1 -1
  352. package/esm2022/lib/workspace/workspace-selector/workspace-selector.directive.mjs +7 -6
  353. package/esm2022/lib/workspace/workspace-selector/workspace-selector.module.mjs +8 -10
  354. package/esm2022/lib/workspace/workspace-updator/workspace-updator.directive.mjs +7 -6
  355. package/esm2022/lib/workspace/workspace-updator/workspace-updator.module.mjs +8 -10
  356. package/esm2022/lib/workspace/workspace.module.mjs +10 -35
  357. package/esm2022/public_api.mjs +11 -12
  358. package/fesm2022/igo2-geo.mjs +34474 -34608
  359. package/fesm2022/igo2-geo.mjs.map +1 -1
  360. package/lib/catalog/catalog-browser/catalog-browser-group.component.d.ts +1 -1
  361. package/lib/catalog/catalog-browser/catalog-browser-layer.component.d.ts +1 -1
  362. package/lib/catalog/catalog-browser/catalog-browser.component.d.ts +1 -1
  363. package/lib/catalog/catalog-browser/catalog-browser.module.d.ts +2 -14
  364. package/lib/catalog/catalog-library/add-catalog-dialog.component.d.ts +3 -2
  365. package/lib/catalog/catalog-library/catalog-library-item.component.d.ts +1 -1
  366. package/lib/catalog/catalog-library/catalog-library.component.d.ts +3 -2
  367. package/lib/catalog/catalog-library/catalog-library.module.d.ts +3 -18
  368. package/lib/catalog/catalog-library/index.d.ts +5 -0
  369. package/lib/catalog/catalog.module.d.ts +6 -9
  370. package/lib/catalog/index.d.ts +2 -0
  371. package/lib/catalog/shared/catalog.service.d.ts +3 -1
  372. package/lib/datasource/shared/datasource.service.d.ts +4 -5
  373. package/lib/datasource/shared/options/options-api.providers.d.ts +1 -1
  374. package/lib/directions/directions-buttons/directions-buttons.component.d.ts +4 -2
  375. package/lib/directions/directions-inputs/directions-inputs.component.d.ts +2 -2
  376. package/lib/directions/directions-results/directions-results.component.d.ts +2 -2
  377. package/lib/directions/directions-sources/directions-source.provider.d.ts +1 -1
  378. package/lib/directions/directions-sources/osrm-directions-source.d.ts +1 -1
  379. package/lib/directions/directions.component.d.ts +2 -2
  380. package/lib/directions/directions.module.d.ts +9 -20
  381. package/lib/directions/shared/directions.service.d.ts +3 -1
  382. package/lib/directions/shared/directions.utils.d.ts +1 -1
  383. package/lib/download/download-button/download-button.component.d.ts +1 -1
  384. package/lib/download/download.module.d.ts +4 -6
  385. package/lib/download/shared/download.service.d.ts +1 -1
  386. package/lib/draw/draw/draw-layer-popup.component.d.ts +1 -1
  387. package/lib/draw/draw/draw-popup.component.d.ts +5 -5
  388. package/lib/draw/draw/draw-shorcuts.component.d.ts +1 -1
  389. package/lib/draw/draw/draw.component.d.ts +2 -2
  390. package/lib/draw/draw/draw.module.d.ts +2 -25
  391. package/lib/draw/drawingTool.module.d.ts +3 -0
  392. package/lib/draw/shared/draw-icon.service.d.ts +1 -1
  393. package/lib/feature/feature-details/feature-details.component.d.ts +7 -4
  394. package/lib/feature/feature-details/feature-details.directive.d.ts +1 -1
  395. package/lib/feature/feature-details/feature-details.module.d.ts +2 -6
  396. package/lib/feature/feature-details/index.d.ts +5 -0
  397. package/lib/feature/feature-form/feature-form.component.d.ts +2 -2
  398. package/lib/feature/feature-form/feature-form.module.d.ts +2 -4
  399. package/lib/feature/feature.module.d.ts +6 -4
  400. package/lib/feature/index.d.ts +3 -1
  401. package/lib/filter/filter.module.d.ts +4 -28
  402. package/lib/filter/index.d.ts +16 -0
  403. package/lib/filter/ogc-filter-button/ogc-filter-button.component.d.ts +3 -3
  404. package/lib/filter/ogc-filter-form/ogc-filter-form.component.d.ts +3 -3
  405. package/lib/filter/ogc-filter-selection/ogc-filter-selection.component.d.ts +4 -4
  406. package/lib/filter/ogc-filter-time/ogc-filter-time-slider.component.d.ts +1 -1
  407. package/lib/filter/ogc-filter-time/ogc-filter-time.component.d.ts +2 -2
  408. package/lib/filter/ogc-filterable-form/ogc-filterable-form.component.d.ts +3 -3
  409. package/lib/filter/ogc-filterable-item/ogc-filterable-item.component.d.ts +3 -3
  410. package/lib/filter/ogc-filterable-list/ogc-filterable-list-binding.directive.d.ts +1 -1
  411. package/lib/filter/ogc-filterable-list/ogc-filterable-list.component.d.ts +3 -3
  412. package/lib/filter/shared/filterable-datasource.pipe.d.ts +1 -1
  413. package/lib/filter/shared/spatial-filter.service.d.ts +2 -1
  414. package/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.d.ts +6 -5
  415. package/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.d.ts +2 -2
  416. package/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.d.ts +1 -1
  417. package/lib/filter/time-filter-button/time-filter-button.component.d.ts +1 -1
  418. package/lib/filter/time-filter-form/time-filter-form.component.d.ts +3 -3
  419. package/lib/filter/time-filter-item/time-filter-item.component.d.ts +1 -1
  420. package/lib/filter/time-filter-list/time-filter-list-binding.directive.d.ts +1 -1
  421. package/lib/filter/time-filter-list/time-filter-list.component.d.ts +1 -1
  422. package/lib/geo.module.d.ts +14 -24
  423. package/lib/geometry/geometry-form-field/geometry-form-field-input.component.d.ts +1 -1
  424. package/lib/geometry/geometry-form-field/geometry-form-field.component.d.ts +1 -1
  425. package/lib/geometry/geometry-form-field/geometry-form-field.module.d.ts +2 -10
  426. package/lib/geometry/geometry-form-field/index.d.ts +5 -0
  427. package/lib/geometry/geometry.module.d.ts +5 -3
  428. package/lib/geometry/index.d.ts +1 -2
  429. package/lib/import-export/export-button/export-button.component.d.ts +1 -1
  430. package/lib/import-export/import-export/import-export.component.d.ts +5 -2
  431. package/lib/import-export/import-export.module.d.ts +4 -15
  432. package/lib/import-export/index.d.ts +4 -0
  433. package/lib/import-export/shared/drop-geo-file.directive.d.ts +3 -2
  434. package/lib/import-export/shared/export.service.d.ts +1 -1
  435. package/lib/import-export/shared/export.utils.d.ts +1 -1
  436. package/lib/import-export/shared/import.service.d.ts +1 -1
  437. package/lib/import-export/shared/import.utils.d.ts +1 -1
  438. package/lib/layer/index.d.ts +8 -0
  439. package/lib/layer/layer-item/layer-item.component.d.ts +2 -2
  440. package/lib/layer/layer-legend/layer-legend.component.d.ts +3 -2
  441. package/lib/layer/layer-legend-item/layer-legend-item.component.d.ts +2 -2
  442. package/lib/layer/layer-legend-list/layer-legend-list-binding.directive.d.ts +1 -1
  443. package/lib/layer/layer-legend-list/layer-legend-list.component.d.ts +1 -1
  444. package/lib/layer/layer-list/layer-list-binding.directive.d.ts +2 -2
  445. package/lib/layer/layer-list/layer-list.component.d.ts +1 -1
  446. package/lib/layer/layer-list-tool/layer-list-tool.component.d.ts +1 -1
  447. package/lib/layer/layer.module.d.ts +4 -18
  448. package/lib/layer/shared/layer.service.d.ts +1 -1
  449. package/lib/layer/shared/layers/image-layer.d.ts +1 -1
  450. package/lib/layer/shared/layers/layer.d.ts +1 -1
  451. package/lib/layer/shared/layers/layer.interface.d.ts +1 -1
  452. package/lib/layer/shared/layers/tile-layer.d.ts +1 -1
  453. package/lib/layer/shared/layers/vector-layer.d.ts +1 -1
  454. package/lib/layer/shared/layers/vectortile-layer.d.ts +1 -1
  455. package/lib/layer/track-feature-button/track-feature-button.component.d.ts +1 -1
  456. package/lib/layer/utils/image-watcher.d.ts +1 -1
  457. package/lib/map/baselayers-switcher/baselayers-switcher.component.d.ts +2 -2
  458. package/lib/map/baselayers-switcher/mini-basemap.component.d.ts +1 -1
  459. package/lib/map/geolocate-button/geolocate-button.component.d.ts +2 -2
  460. package/lib/map/home-extent-button/home-extent-button.component.d.ts +2 -2
  461. package/lib/map/index.d.ts +14 -0
  462. package/lib/map/info-section/info-section.component.d.ts +1 -1
  463. package/lib/map/map-browser/map-browser.component.d.ts +2 -2
  464. package/lib/map/map-center/map-center.component.d.ts +1 -1
  465. package/lib/map/map.module.d.ts +4 -7
  466. package/lib/map/menu-button/menu-button.component.d.ts +2 -2
  467. package/lib/map/offline-button/offline-button.component.d.ts +2 -2
  468. package/lib/map/rotation-button/rotation-button.component.d.ts +1 -1
  469. package/lib/map/shared/controllers/geolocation.d.ts +2 -1
  470. package/lib/map/shared/hover-feature.directive.d.ts +2 -2
  471. package/lib/map/shared/map-pointer-position.directive.d.ts +2 -2
  472. package/lib/map/shared/map.d.ts +2 -1
  473. package/lib/map/shared/mapOffline.directive.d.ts +3 -2
  474. package/lib/map/shared/projection.service.d.ts +1 -1
  475. package/lib/map/swipe-control/swipe-control.component.d.ts +1 -1
  476. package/lib/map/wake-lock-button/wake-lock-button.component.d.ts +2 -2
  477. package/lib/map/zoom-button/zoom-button.component.d.ts +1 -1
  478. package/lib/measure/index.d.ts +1 -2
  479. package/lib/measure/measure.module.d.ts +3 -0
  480. package/lib/measure/measurer/index.d.ts +5 -0
  481. package/lib/measure/measurer/measure-format.pipe.d.ts +1 -1
  482. package/lib/measure/measurer/measurer-dialog.component.d.ts +1 -1
  483. package/lib/measure/measurer/measurer-item.component.d.ts +1 -1
  484. package/lib/measure/measurer/measurer.component.d.ts +4 -4
  485. package/lib/measure/measurer/measurer.module.d.ts +3 -18
  486. package/lib/measure/shared/measure.utils.d.ts +1 -1
  487. package/lib/metadata/index.d.ts +2 -0
  488. package/lib/metadata/metadata-button/metadata-button.component.d.ts +2 -2
  489. package/lib/metadata/metadata.module.d.ts +4 -7
  490. package/lib/offline/geoDB/configFileToGeoDB.service.d.ts +1 -1
  491. package/lib/offline/geoDB/geoDB.service.d.ts +2 -3
  492. package/lib/offline/shared/geo-network.service.d.ts +1 -1
  493. package/lib/overlay/overlay.module.d.ts +4 -1
  494. package/lib/overlay/shared/overlay.directive.d.ts +1 -1
  495. package/lib/print/print/print.component.d.ts +1 -1
  496. package/lib/print/print-form/print-form.component.d.ts +2 -2
  497. package/lib/print/print.module.d.ts +4 -12
  498. package/lib/print/shared/print.service.d.ts +4 -1
  499. package/lib/query/query.module.d.ts +4 -4
  500. package/lib/query/shared/query-search-source.providers.d.ts +1 -1
  501. package/lib/query/shared/query.directive.d.ts +1 -1
  502. package/lib/query/shared/query.service.d.ts +2 -3
  503. package/lib/search/index.d.ts +6 -4
  504. package/lib/search/search-bar/search-bar.component.d.ts +2 -2
  505. package/lib/search/search-bar/search-bar.module.d.ts +2 -16
  506. package/lib/search/search-results/index.d.ts +6 -0
  507. package/lib/search/search-results/save-feature-dialog.component.d.ts +2 -2
  508. package/lib/search/search-results/search-results-add-button.component.d.ts +2 -2
  509. package/lib/search/search-results/search-results-item.component.d.ts +1 -1
  510. package/lib/search/search-results/search-results.component.d.ts +2 -2
  511. package/lib/search/search-results/search-results.module.d.ts +3 -21
  512. package/lib/search/search-selector/search-selector.component.d.ts +1 -1
  513. package/lib/search/search-selector/search-selector.module.d.ts +2 -11
  514. package/lib/search/search-settings/search-settings.component.d.ts +3 -2
  515. package/lib/search/search-settings/search-settings.module.d.ts +2 -12
  516. package/lib/search/search.module.d.ts +6 -7
  517. package/lib/search/shared/search-pointer-summary.directive.d.ts +2 -2
  518. package/lib/search/shared/search.service.d.ts +1 -1
  519. package/lib/search/shared/sources/cadastre.d.ts +2 -1
  520. package/lib/search/shared/sources/cadastre.providers.d.ts +4 -2
  521. package/lib/search/shared/sources/coordinates.d.ts +2 -1
  522. package/lib/search/shared/sources/coordinates.providers.d.ts +4 -2
  523. package/lib/search/shared/sources/icherche.d.ts +2 -1
  524. package/lib/search/shared/sources/icherche.providers.d.ts +5 -3
  525. package/lib/search/shared/sources/ilayer.d.ts +2 -1
  526. package/lib/search/shared/sources/ilayer.providers.d.ts +4 -2
  527. package/lib/search/shared/sources/nominatim.d.ts +1 -1
  528. package/lib/search/shared/sources/nominatim.providers.d.ts +3 -2
  529. package/lib/search/shared/sources/source.d.ts +1 -1
  530. package/lib/search/shared/sources/storedqueries.d.ts +2 -1
  531. package/lib/search/shared/sources/storedqueries.providers.d.ts +5 -3
  532. package/lib/search/shared/sources/workspace.d.ts +2 -1
  533. package/lib/search/shared/sources/workspace.providers.d.ts +4 -2
  534. package/lib/style/style-modal/drawing/style-modal-drawing.component.d.ts +1 -1
  535. package/lib/style/style-modal/layer/style-modal-layer.component.d.ts +1 -1
  536. package/lib/style/style-modal/layer-button/style-modal-layer-button.component.d.ts +1 -1
  537. package/lib/style/style.module.d.ts +5 -16
  538. package/lib/toast/toast.component.d.ts +1 -1
  539. package/lib/toast/toast.module.d.ts +4 -6
  540. package/lib/utils/propertyTypeDetector/propertyTypeDetector.service.d.ts +1 -1
  541. package/lib/wkt/wkt.module.d.ts +3 -0
  542. package/lib/workspace/confirmation-popup/confirmation-popup.component.d.ts +2 -2
  543. package/lib/workspace/confirmation-popup/confirmation-popup.module.d.ts +2 -6
  544. package/lib/workspace/shared/edition-workspace.d.ts +1 -1
  545. package/lib/workspace/shared/edition-workspace.service.d.ts +3 -1
  546. package/lib/workspace/shared/feature-workspace.service.d.ts +2 -1
  547. package/lib/workspace/shared/wfs-workspace.service.d.ts +2 -1
  548. package/lib/workspace/shared/wms-workspace.service.d.ts +2 -1
  549. package/lib/workspace/widgets/ogc-filter/ogc-filter.component.d.ts +1 -1
  550. package/lib/workspace/widgets/ogc-filter/ogc-filter.module.d.ts +2 -6
  551. package/lib/workspace/workspace-selector/workspace-selector.directive.d.ts +1 -1
  552. package/lib/workspace/workspace-selector/workspace-selector.module.d.ts +2 -3
  553. package/lib/workspace/workspace-updator/workspace-updator.directive.d.ts +1 -1
  554. package/lib/workspace/workspace-updator/workspace-updator.module.d.ts +2 -3
  555. package/lib/workspace/workspace.module.d.ts +5 -9
  556. package/locale/en.geo.json +3 -3
  557. package/locale/fr.geo.json +3 -3
  558. package/package.json +14 -12
  559. package/public_api.d.ts +10 -11
  560. package/src/geo-theme.scss +23 -23
  561. package/src/lib/filter/filter.theming.scss +13 -13
  562. package/src/lib/filter/ogc-filter-selection/ogc-filter-selection.theming.scss +18 -18
  563. package/src/lib/filter/time-filter-form/time-filter-form.theming.scss +5 -5
  564. package/src/lib/layer/layer-item/layer-item.theme.scss +33 -33
  565. package/src/lib/layer/layer-legend/layer-legend.theming.scss +10 -10
  566. package/src/lib/layer/layer-list-tool/layer-list-tool.theming.scss +34 -34
  567. package/src/lib/layer/layer.theming.scss +10 -10
  568. package/src/lib/map/map-browser/map-browser.theming.scss +46 -46
  569. package/src/lib/map/map.theming.scss +9 -9
  570. package/src/lib/map/menu-button/menu-button.theming.scss +20 -20
  571. package/src/lib/map/zoom-button/zoom-button.theming.scss +32 -32
  572. package/src/style/style.scss +1 -1
  573. package/esm2022/lib/datasource/datasource.module.mjs +0 -22
  574. package/esm2022/lib/search/search-bar/search-url-param.directive.mjs +0 -40
  575. package/lib/datasource/datasource.module.d.ts +0 -8
  576. package/lib/search/search-bar/search-url-param.directive.d.ts +0 -13
@@ -213,4 +213,4 @@ export class GeoPropertiesStrategy extends EntityStoreStrategy {
213
213
  }
214
214
  }
215
215
  }
216
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvLXByb3BlcnRpZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9mZWF0dXJlL3NoYXJlZC9zdHJhdGVnaWVzL2dlby1wcm9wZXJ0aWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNuRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTFDLE9BQU8sRUFBZ0IsWUFBWSxFQUFFLFFBQVEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUs1RCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQVMxRTs7OztHQUlHO0FBQ0gsTUFBTSxPQUFPLHFCQUFzQixTQUFRLG1CQUFtQjtJQWNoRDtJQUNGO0lBQ0E7SUFmVjs7T0FFRztJQUNLLFFBQVEsR0FBRyxJQUFJLEdBQUcsRUFBd0IsQ0FBQztJQUMzQyxRQUFRLEdBQW1CLEVBQUUsQ0FBQztJQUM5QixPQUFPLENBQWU7SUFFOUI7O09BRUc7SUFDYyxHQUFHLENBQVM7SUFFN0IsWUFDWSxPQUFnRCxFQUNsRCwyQkFBd0QsRUFDeEQsbUJBQXdDO1FBRWhELEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUpMLFlBQU8sR0FBUCxPQUFPLENBQXlDO1FBQ2xELGdDQUEyQixHQUEzQiwyQkFBMkIsQ0FBNkI7UUFDeEQsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUdoRCxJQUFJLENBQUMsR0FBRyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUM7SUFDekIsQ0FBQztJQUVEOzs7T0FHRztJQUNILFNBQVMsQ0FBQyxLQUFtQjtRQUMzQixLQUFLLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZCLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxJQUFJLEVBQUU7WUFDeEIsSUFBSSxDQUFDLFVBQVUsQ0FB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QVMsRUFBRTtZQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUM3QjtJQUNILENBQUM7SUFFRDs7T0FFRztJQUNLLFVBQVU7UUFDaEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDbEQsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2hCLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDNUI7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbnRpdHlTdG9yZVN0cmF0ZWd5IH0gZnJvbSAnQGlnbzIvY29tbW9uJztcclxuaW1wb3J0IHsgT2JqZWN0VXRpbHMgfSBmcm9tICdAaWdvMi91dGlscyc7XHJcblxyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24sIGRlYm91bmNlVGltZSwgcGFpcndpc2UgfSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7IENhcGFiaWxpdGllc1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9kYXRhc291cmNlL3NoYXJlZC9jYXBhYmlsaXRpZXMuc2VydmljZSc7XHJcbmltcG9ydCB7IExheWVyIH0gZnJvbSAnLi4vLi4vLi4vbGF5ZXIvc2hhcmVkL2xheWVycy9sYXllcic7XHJcbmltcG9ydCB7IElnb01hcCB9IGZyb20gJy4uLy4uLy4uL21hcC9zaGFyZWQvbWFwJztcclxuaW1wb3J0IHsgZ2VuZXJhdGVJZEZyb21Tb3VyY2VPcHRpb25zIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvaWQtZ2VuZXJhdG9yJztcclxuaW1wb3J0IHsgR2VvU2VydmljZURlZmluaXRpb24gfSBmcm9tICcuLi8uLi8uLi91dGlscy9wcm9wZXJ0eVR5cGVEZXRlY3Rvci9wcm9wZXJ0eVR5cGVEZXRlY3Rvci5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBQcm9wZXJ0eVR5cGVEZXRlY3RvclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi91dGlscy9wcm9wZXJ0eVR5cGVEZXRlY3Rvci9wcm9wZXJ0eVR5cGVEZXRlY3Rvci5zZXJ2aWNlJztcclxuaW1wb3J0IHtcclxuICBGZWF0dXJlLFxyXG4gIEZlYXR1cmVTdG9yZVByb3BlcnR5VHlwZVN0cmF0ZWd5T3B0aW9uc1xyXG59IGZyb20gJy4uL2ZlYXR1cmUuaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IEZlYXR1cmVTdG9yZSB9IGZyb20gJy4uL3N0b3JlJztcclxuXHJcbi8qKlxyXG4gKiBUaGlzIHN0cmF0ZWd5IG1haW50YWluIHRoZSBzdG9yZSBmZWF0dXJlcyB1cGRhdGVkIHRvIGRldGVjdCBnZW9wcm9wZXJ0aWVzXHJcbiAqICh3bXMvYXJjZ2lzLi4uIGxheWVyIGFuZCB1cmwpLlxyXG4gKiBUaGUgZmVhdHVyZXMncyBzdGF0ZSBpbnNpZGUgdGhlIG1hcCBhcmUgdGFnZ2VkIGhhdmVHZW9TZXJ2aWNlUHJvcGVydGllcyA9IHRydWU7XHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgR2VvUHJvcGVydGllc1N0cmF0ZWd5IGV4dGVuZHMgRW50aXR5U3RvcmVTdHJhdGVneSB7XHJcbiAgLyoqXHJcbiAgICogU3Vic2NyaXB0aW9uIHRvIHRoZSBzdG9yZSdzIE9MIHNvdXJjZSBjaGFuZ2VzXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBzdG9yZXMkJCA9IG5ldyBNYXA8RmVhdHVyZVN0b3JlLCBzdHJpbmc+KCk7XHJcbiAgcHJpdmF0ZSBzdGF0ZXMkJDogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuICBwcml2YXRlIGVtcHR5JCQ6IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgLyoqXHJcbiAgICogVGhlIG1hcCB0aGUgbGF5ZXIgaXMgYm91bmQgdG9cclxuICAgKi9cclxuICBwcml2YXRlIHJlYWRvbmx5IG1hcDogSWdvTWFwO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByb3RlY3RlZCBvcHRpb25zOiBGZWF0dXJlU3RvcmVQcm9wZXJ0eVR5cGVTdHJhdGVneU9wdGlvbnMsXHJcbiAgICBwcml2YXRlIHByb3BlcnR5VHlwZURldGVjdG9yU2VydmljZTogUHJvcGVydHlUeXBlRGV0ZWN0b3JTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjYXBhYmlsaXRpZXNTZXJ2aWNlOiBDYXBhYmlsaXRpZXNTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICBzdXBlcihvcHRpb25zKTtcclxuICAgIHRoaXMubWFwID0gb3B0aW9ucy5tYXA7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBCaW5kIHRoaXMgc3RyYXRlZ3kgdG8gYSBzdG9yZSBhbmQgc3RhcnQgd2F0Y2hpbmcgZm9yIE9sIHNvdXJjZSBjaGFuZ2VzXHJcbiAgICogQHBhcmFtIHN0b3JlIEZlYXR1cmUgc3RvcmVcclxuICAgKi9cclxuICBiaW5kU3RvcmUoc3RvcmU6IEZlYXR1cmVTdG9yZSkge1xyXG4gICAgc3VwZXIuYmluZFN0b3JlKHN0b3JlKTtcclxuICAgIGlmICh0aGlzLmFjdGl2ZSA9PT0gdHJ1ZSkge1xyXG4gICAgICB0aGlzLndhdGNoU3RvcmUoc3RvcmUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVW5iaW5kIHRoaXMgc3RyYXRlZ3kgZnJvbSBhIHN0b3JlIGFuZCBzdG9wIHdhdGNoaW5nIGZvciBPbCBzb3VyY2UgY2hhbmdlc1xyXG4gICAqIEBwYXJhbSBzdG9yZSBGZWF0dXJlIHN0b3JlXHJcbiAgICovXHJcbiAgdW5iaW5kU3RvcmUoc3RvcmU6IEZlYXR1cmVTdG9yZSkge1xyXG4gICAgc3VwZXIudW5iaW5kU3RvcmUoc3RvcmUpO1xyXG4gICAgaWYgKHRoaXMuYWN0aXZlID09PSB0cnVlKSB7XHJcbiAgICAgIHRoaXMudW53YXRjaFN0b3JlKHN0b3JlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFN0YXJ0IHdhdGNoaW5nIGFsbCBzdG9yZXMgYWxyZWFkeSBib3VuZCB0byB0aGF0IHN0cmF0ZWd5IGF0IG9uY2UuXHJcbiAgICogQGludGVybmFsXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIGRvQWN0aXZhdGUoKSB7XHJcbiAgICB0aGlzLnN0b3Jlcy5mb3JFYWNoKChzdG9yZTogRmVhdHVyZVN0b3JlKSA9PiB0aGlzLndhdGNoU3RvcmUoc3RvcmUpKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFN0b3Agd2F0Y2hpbmcgYWxsIHN0b3JlcyBib3VuZCB0byB0aGF0IHN0cmF0ZWd5XHJcbiAgICogQGludGVybmFsXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIGRvRGVhY3RpdmF0ZSgpIHtcclxuICAgIHRoaXMudW53YXRjaEFsbCgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogV2F0Y2ggZm9yIGEgc3RvcmUncyAgT0wgc291cmNlIGNoYW5nZXNcclxuICAgKiBAcGFyYW0gc3RvcmUgRmVhdHVyZSBzdG9yZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgd2F0Y2hTdG9yZShzdG9yZTogRmVhdHVyZVN0b3JlKSB7XHJcbiAgICBpZiAodGhpcy5zdG9yZXMkJC5oYXMoc3RvcmUpKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnVwZGF0ZUVudGl0aWVzUHJvcGVydGllc1N0YXRlKHN0b3JlKTtcclxuICAgIHRoaXMuc3RhdGVzJCQucHVzaChcclxuICAgICAgdGhpcy5tYXAubGF5ZXJzJFxyXG4gICAgICAgIC5waXBlKGRlYm91bmNlVGltZSgyNTApLCBwYWlyd2lzZSgpKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKFtwcmV2TGF5ZXJzLCBjdXJyZW50TGF5ZXJzXSkgPT4ge1xyXG4gICAgICAgICAgbGV0IHByZXZMYXllcnNJZDtcclxuICAgICAgICAgIGlmIChwcmV2TGF5ZXJzKSB7XHJcbiAgICAgICAgICAgIHByZXZMYXllcnNJZCA9IHByZXZMYXllcnMubWFwKChsKSA9PiBsLmlkKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGNvbnN0IGxheWVycyA9IGN1cnJlbnRMYXllcnMuZmlsdGVyKFxyXG4gICAgICAgICAgICAobCkgPT4gIXByZXZMYXllcnNJZC5pbmNsdWRlcyhsLmlkKVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICAgIHRoaXMudXBkYXRlRW50aXRpZXNQcm9wZXJ0aWVzU3RhdGUoc3RvcmUsIGxheWVycyk7XHJcbiAgICAgICAgfSlcclxuICAgICk7XHJcbiAgICB0aGlzLnN0YXRlcyQkLnB1c2goXHJcbiAgICAgIHN0b3JlLmVudGl0aWVzJC5waXBlKGRlYm91bmNlVGltZSgyNTApKS5zdWJzY3JpYmUoKGEpID0+IHtcclxuICAgICAgICB0aGlzLnVwZGF0ZUVudGl0aWVzUHJvcGVydGllc1N0YXRlKHN0b3JlKTtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHVwZGF0ZUVudGl0aWVzUHJvcGVydGllc1N0YXRlKHN0b3JlOiBGZWF0dXJlU3RvcmUsIGxheWVycz86IExheWVyW10pIHtcclxuICAgIGNvbnN0IGxheWVyc0lkID0gdGhpcy5tYXAubGF5ZXJzLm1hcCgobCkgPT4gbC5pZCk7XHJcbiAgICBsZXQgZW50aXRpZXM6IEZlYXR1cmVbXSA9IFtdO1xyXG4gICAgaWYgKGxheWVycykge1xyXG4gICAgICBlbnRpdGllcyA9IHN0b3JlLmVudGl0aWVzJC52YWx1ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IGFsbFNWID0gc3RvcmUuc3RhdGVWaWV3LmFsbCgpO1xyXG4gICAgICBlbnRpdGllcyA9IGFsbFNWLmxlbmd0aFxyXG4gICAgICAgID8gc3RvcmUuc3RhdGVWaWV3XHJcbiAgICAgICAgICAgIC5hbGwoKVxyXG4gICAgICAgICAgICAuZmlsdGVyKChzKSA9PiAhcy5zdGF0ZS5nZW9TZXJ2aWNlKVxyXG4gICAgICAgICAgICAubWFwKChlKSA9PiBlLmVudGl0eSlcclxuICAgICAgICA6IHN0b3JlLmVudGl0aWVzJC52YWx1ZTtcclxuICAgIH1cclxuICAgIGNvbnN0IHNhbXBsaW5nID0gZW50aXRpZXMubGVuZ3RoID49IDI1MCA/IDI1MCA6IGVudGl0aWVzLmxlbmd0aDtcclxuICAgIGNvbnN0IGZpcnN0TiA9IGVudGl0aWVzLnNsaWNlKDAsIHNhbXBsaW5nKTtcclxuICAgIGxldCBhbGxLZXlzID0gW107XHJcbiAgICBmaXJzdE4ubWFwKChlKSA9PiB7XHJcbiAgICAgIGFsbEtleXMgPSBhbGxLZXlzLmNvbmNhdChPYmplY3Qua2V5cyhlLnByb3BlcnRpZXMgfHwge30pKTtcclxuICAgIH0pO1xyXG4gICAgYWxsS2V5cyA9IFsuLi5uZXcgU2V0KGFsbEtleXMpXTtcclxuICAgIGNvbnN0IGRpc3RpbmN0VmFsdWVzID0ge307XHJcbiAgICBhbGxLZXlzLm1hcCgoaykgPT4ge1xyXG4gICAgICBkaXN0aW5jdFZhbHVlc1trXSA9IFtcclxuICAgICAgICAuLi5uZXcgU2V0KGVudGl0aWVzLm1hcCgoaXRlbSkgPT4gaXRlbS5wcm9wZXJ0aWVzW2tdKSlcclxuICAgICAgXTtcclxuICAgIH0pO1xyXG4gICAgY29uc3QgY29udGFpbkdlb1NlcnZpY2VzID0ge307XHJcbiAgICBPYmplY3QuZW50cmllcyhkaXN0aW5jdFZhbHVlcykuZm9yRWFjaCgoZW50cnk6IFtzdHJpbmcsIFtdXSkgPT4ge1xyXG4gICAgICBjb25zdCBba2V5LCB2YWx1ZXNdID0gZW50cnk7XHJcbiAgICAgIGNvbnN0IHZhbHVlZEFyZUdlb3NlcnZpY2VzID0gdmFsdWVzLmZpbHRlcigodmFsdWUpID0+XHJcbiAgICAgICAgdGhpcy5wcm9wZXJ0eVR5cGVEZXRlY3RvclNlcnZpY2UuaXNHZW9TZXJ2aWNlKHZhbHVlKVxyXG4gICAgICApO1xyXG4gICAgICBpZiAodmFsdWVkQXJlR2Vvc2VydmljZXM/Lmxlbmd0aCkge1xyXG4gICAgICAgIGNvbnRhaW5HZW9TZXJ2aWNlc1trZXldID0gdmFsdWVkQXJlR2Vvc2VydmljZXM7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgaW50ZXJmYWNlIEdlb1NlcnZpY2VBc3NvY2lhdGlvbiB7XHJcbiAgICAgIHVybDogc3RyaW5nO1xyXG4gICAgICBsYXllck5hbWVQcm9wZXJ0eTogc3RyaW5nO1xyXG4gICAgICB1cmxQcm9wZXJ0eTogc3RyaW5nO1xyXG4gICAgICBnZW9TZXJ2aWNlOiBHZW9TZXJ2aWNlRGVmaW5pdGlvbjtcclxuICAgIH1cclxuICAgIGNvbnN0IGdlb1NlcnZpY2VBc3NvY2lhdGlvbnM6IEdlb1NlcnZpY2VBc3NvY2lhdGlvbltdID0gW107XHJcbiAgICBPYmplY3QuZW50cmllcyhjb250YWluR2VvU2VydmljZXMpLmZvckVhY2goKGVudHJ5OiBbc3RyaW5nLCBbXV0pID0+IHtcclxuICAgICAgY29uc3QgW2tleSwgdmFsdWVzXSA9IGVudHJ5O1xyXG4gICAgICB2YWx1ZXMubWFwKCh2YWx1ZSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGdlb1NlcnZpY2UgPSB0aGlzLnByb3BlcnR5VHlwZURldGVjdG9yU2VydmljZS5nZXRHZW9TZXJ2aWNlKFxyXG4gICAgICAgICAgdmFsdWUsXHJcbiAgICAgICAgICBhbGxLZXlzXHJcbiAgICAgICAgKTtcclxuICAgICAgICBpZiAoZ2VvU2VydmljZSkge1xyXG4gICAgICAgICAgY29uc3QgcHJvcGVydGllc0ZvckxheWVyTmFtZSA9IGFsbEtleXMuZmlsdGVyKChwKSA9PlxyXG4gICAgICAgICAgICBnZW9TZXJ2aWNlLnByb3BlcnRpZXNGb3JMYXllck5hbWUuaW5jbHVkZXMocClcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICAvLyBwcm92aWRpbmcgdGhlIHRoZSBmaXJzdCBtYXRjaGluZyByZWdleDtcclxuICAgICAgICAgIGNvbnN0IHByb3BlcnR5Rm9yTGF5ZXJOYW1lID0gcHJvcGVydGllc0ZvckxheWVyTmFtZS5sZW5ndGhcclxuICAgICAgICAgICAgPyBwcm9wZXJ0aWVzRm9yTGF5ZXJOYW1lWzBdXHJcbiAgICAgICAgICAgIDogdW5kZWZpbmVkO1xyXG4gICAgICAgICAgaWYgKHByb3BlcnR5Rm9yTGF5ZXJOYW1lKSB7XHJcbiAgICAgICAgICAgIGdlb1NlcnZpY2VBc3NvY2lhdGlvbnMucHVzaCh7XHJcbiAgICAgICAgICAgICAgdXJsOiB2YWx1ZSxcclxuICAgICAgICAgICAgICB1cmxQcm9wZXJ0eToga2V5LFxyXG4gICAgICAgICAgICAgIGxheWVyTmFtZVByb3BlcnR5OiBwcm9wZXJ0eUZvckxheWVyTmFtZSxcclxuICAgICAgICAgICAgICBnZW9TZXJ2aWNlXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICAgIGNvbnN0IGdlb1NlcnZpY2VTdGF0ZXM6IHtcclxuICAgICAgZ2VvU2VydmljZUFzc29jaWF0aW9uOiBHZW9TZXJ2aWNlQXNzb2NpYXRpb247XHJcbiAgICAgIHN0YXRlOiBhbnk7XHJcbiAgICB9W10gPSBbXTtcclxuICAgIGdlb1NlcnZpY2VBc3NvY2lhdGlvbnMubWFwKChnZW9TZXJ2aWNlQXNzb2NpYXRpb24pID0+IHtcclxuICAgICAgY29uc3QgdXJsID0gZ2VvU2VydmljZUFzc29jaWF0aW9uLnVybDtcclxuICAgICAgY29uc3QgdHlwZSA9IGdlb1NlcnZpY2VBc3NvY2lhdGlvbi5nZW9TZXJ2aWNlLnR5cGUgfHwgJ3dtcyc7XHJcbiAgICAgIGRpc3RpbmN0VmFsdWVzW2dlb1NlcnZpY2VBc3NvY2lhdGlvbi5sYXllck5hbWVQcm9wZXJ0eV0ubWFwKFxyXG4gICAgICAgIChsYXllck5hbWUpID0+IHtcclxuICAgICAgICAgIGxldCBhcHBsaWVkTGF5ZXJOYW1lID0gbGF5ZXJOYW1lO1xyXG4gICAgICAgICAgbGV0IGFyY2dpc0xheWVyTmFtZSA9IHVuZGVmaW5lZDtcclxuICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgWydhcmNnaXNyZXN0JywgJ2ltYWdlYXJjZ2lzcmVzdCcsICd0aWxlYXJjZ2lzcmVzdCddLmluY2x1ZGVzKHR5cGUpXHJcbiAgICAgICAgICApIHtcclxuICAgICAgICAgICAgYXBwbGllZExheWVyTmFtZSA9IHVuZGVmaW5lZDtcclxuICAgICAgICAgICAgYXJjZ2lzTGF5ZXJOYW1lID0gbGF5ZXJOYW1lO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgY29uc3Qgc28gPSBPYmplY3RVdGlscy5yZW1vdmVVbmRlZmluZWQoe1xyXG4gICAgICAgICAgICBzb3VyY2VPcHRpb25zOiB7XHJcbiAgICAgICAgICAgICAgdHlwZTogdHlwZSB8fCAnd21zJyxcclxuICAgICAgICAgICAgICB1cmwsXHJcbiAgICAgICAgICAgICAgb3B0aW9uc0Zyb21DYXBhYmlsaXRpZXM6IHRydWUsXHJcbiAgICAgICAgICAgICAgb3B0aW9uc0Zyb21BcGk6IHRydWUsXHJcbiAgICAgICAgICAgICAgcGFyYW1zOiB7XHJcbiAgICAgICAgICAgICAgICBMQVlFUlM6IGFwcGxpZWRMYXllck5hbWUsXHJcbiAgICAgICAgICAgICAgICBMQVlFUjogYXJjZ2lzTGF5ZXJOYW1lXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIGNvbnN0IHBvdGVudGlhbExheWVySWQgPSBnZW5lcmF0ZUlkRnJvbVNvdXJjZU9wdGlvbnMoXHJcbiAgICAgICAgICAgIHNvLnNvdXJjZU9wdGlvbnNcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICBnZW9TZXJ2aWNlU3RhdGVzLnB1c2goe1xyXG4gICAgICAgICAgICBnZW9TZXJ2aWNlQXNzb2NpYXRpb24sXHJcbiAgICAgICAgICAgIHN0YXRlOiB7XHJcbiAgICAgICAgICAgICAgYWRkZWQ6IGxheWVyc0lkLmZpbmQoKGwpID0+IGwgPT09IHBvdGVudGlhbExheWVySWQpICE9PSB1bmRlZmluZWQsXHJcbiAgICAgICAgICAgICAgaGF2ZUdlb1NlcnZpY2VQcm9wZXJ0aWVzOiB0cnVlLFxyXG4gICAgICAgICAgICAgIHR5cGUsXHJcbiAgICAgICAgICAgICAgdXJsLFxyXG4gICAgICAgICAgICAgIGxheWVyTmFtZVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcbiAgICB9KTtcclxuICAgIGdlb1NlcnZpY2VTdGF0ZXMubWFwKChnZW9TZXJ2aWNlU3RhdGUpID0+IHtcclxuICAgICAgY29uc3QgdXJsUHJvcGVydHkgPSBnZW9TZXJ2aWNlU3RhdGUuZ2VvU2VydmljZUFzc29jaWF0aW9uLnVybFByb3BlcnR5O1xyXG4gICAgICBjb25zdCBsYXllck5hbWVQcm9wZXJ0eSA9XHJcbiAgICAgICAgZ2VvU2VydmljZVN0YXRlLmdlb1NlcnZpY2VBc3NvY2lhdGlvbi5sYXllck5hbWVQcm9wZXJ0eTtcclxuXHJcbiAgICAgIGNvbnN0IHVybFZhbHVlID0gZ2VvU2VydmljZVN0YXRlLnN0YXRlLnVybDtcclxuICAgICAgY29uc3QgbGF5ZXJOYW1lVmFsdWUgPSBnZW9TZXJ2aWNlU3RhdGUuc3RhdGUubGF5ZXJOYW1lO1xyXG4gICAgICBjb25zdCBlbnRpdGllc1RvUHJvY2VzcyA9IGVudGl0aWVzLmZpbHRlcihcclxuICAgICAgICAoZSkgPT5cclxuICAgICAgICAgIGUucHJvcGVydGllc1t1cmxQcm9wZXJ0eV0gPT09IHVybFZhbHVlICYmXHJcbiAgICAgICAgICBlLnByb3BlcnRpZXNbbGF5ZXJOYW1lUHJvcGVydHldID09PSBsYXllck5hbWVWYWx1ZVxyXG4gICAgICApO1xyXG4gICAgICBjb25zdCBucyA9IHtcclxuICAgICAgICBnZW9TZXJ2aWNlOiBnZW9TZXJ2aWNlU3RhdGUuc3RhdGVcclxuICAgICAgfTtcclxuICAgICAgc3RvcmUuc3RhdGUudXBkYXRlTWFueShlbnRpdGllc1RvUHJvY2VzcywgbnMsIHRydWUpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTdG9wIHdhdGNoaW5nIGZvciBhIHN0b3JlJ3MgT0wgc291cmNlIGNoYW5nZXNcclxuICAgKiBAcGFyYW0gc3RvcmUgRmVhdHVyZSBzdG9yZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgdW53YXRjaFN0b3JlKHN0b3JlOiBGZWF0dXJlU3RvcmUpIHtcclxuICAgIGNvbnN0IGtleSA9IHRoaXMuc3RvcmVzJCQuZ2V0KHN0b3JlKTtcclxuICAgIGlmIChrZXkgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICB0aGlzLnN0b3JlcyQkLmRlbGV0ZShzdG9yZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTdG9wIHdhdGNoaW5nIGZvciBPTCBzb3VyY2UgY2hhbmdlcyBpbiBhbGwgc3RvcmVzLlxyXG4gICAqL1xyXG4gIHByaXZhdGUgdW53YXRjaEFsbCgpIHtcclxuICAgIHRoaXMuc3RvcmVzJCQuY2xlYXIoKTtcclxuICAgIHRoaXMuc3RhdGVzJCQubWFwKChzdGF0ZSkgPT4gc3RhdGUudW5zdWJzY3JpYmUoKSk7XHJcbiAgICBpZiAodGhpcy5lbXB0eSQkKSB7XHJcbiAgICAgIHRoaXMuZW1wdHkkJC51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
216
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvLXByb3BlcnRpZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9mZWF0dXJlL3NoYXJlZC9zdHJhdGVnaWVzL2dlby1wcm9wZXJ0aWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNuRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTFDLE9BQU8sRUFBZ0IsWUFBWSxFQUFFLFFBQVEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUs1RCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQVMxRTs7OztHQUlHO0FBQ0gsTUFBTSxPQUFPLHFCQUFzQixTQUFRLG1CQUFtQjtJQWNoRDtJQUNGO0lBQ0E7SUFmVjs7T0FFRztJQUNLLFFBQVEsR0FBRyxJQUFJLEdBQUcsRUFBd0IsQ0FBQztJQUMzQyxRQUFRLEdBQW1CLEVBQUUsQ0FBQztJQUM5QixPQUFPLENBQWU7SUFFOUI7O09BRUc7SUFDYyxHQUFHLENBQVM7SUFFN0IsWUFDWSxPQUFnRCxFQUNsRCwyQkFBd0QsRUFDeEQsbUJBQXdDO1FBRWhELEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUpMLFlBQU8sR0FBUCxPQUFPLENBQXlDO1FBQ2xELGdDQUEyQixHQUEzQiwyQkFBMkIsQ0FBNkI7UUFDeEQsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUdoRCxJQUFJLENBQUMsR0FBRyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUM7SUFDekIsQ0FBQztJQUVEOzs7T0FHRztJQUNILFNBQVMsQ0FBQyxLQUFtQjtRQUMzQixLQUFLLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZCLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pCLENBQUM7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsV0FBVyxDQUFDLEtBQW1CO1FBQzdCLEtBQUssQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekIsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLElBQUksRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0IsQ0FBQztJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDTyxVQUFVO1FBQ2xCLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBbUIsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFRDs7O09BR0c7SUFDTyxZQUFZO1FBQ3BCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssVUFBVSxDQUFDLEtBQW1CO1FBQ3BDLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUM3QixPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMxQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FDaEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPO2FBQ2IsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQzthQUNuQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxhQUFhLENBQUMsRUFBRSxFQUFFO1lBQ3pDLElBQUksWUFBWSxDQUFDO1lBQ2pCLElBQUksVUFBVSxFQUFFLENBQUM7Z0JBQ2YsWUFBWSxHQUFHLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUM3QyxDQUFDO1lBQ0QsTUFBTSxNQUFNLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FDakMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQ3BDLENBQUM7WUFDRixJQUFJLENBQUMsNkJBQTZCLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3BELENBQUMsQ0FBQyxDQUNMLENBQUM7UUFDRixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FDaEIsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDdEQsSUFBSSxDQUFDLDZCQUE2QixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVDLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRU8sNkJBQTZCLENBQUMsS0FBbUIsRUFBRSxNQUFnQjtRQUN6RSxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNsRCxJQUFJLFFBQVEsR0FBYyxFQUFFLENBQUM7UUFDN0IsSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUNYLFFBQVEsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQztRQUNuQyxDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDcEMsUUFBUSxHQUFHLEtBQUssQ0FBQyxNQUFNO2dCQUNyQixDQUFDLENBQUMsS0FBSyxDQUFDLFNBQVM7cUJBQ1osR0FBRyxFQUFFO3FCQUNMLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQztxQkFDbEMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO2dCQUN6QixDQUFDLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUM7UUFDNUIsQ0FBQztRQUNELE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxNQUFNLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7UUFDaEUsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDM0MsSUFBSSxPQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNmLE9BQU8sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFVBQVUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzVELENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxHQUFHLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQ2hDLE1BQU0sY0FBYyxHQUFHLEVBQUUsQ0FBQztRQUMxQixPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDaEIsY0FBYyxDQUFDLENBQUMsQ0FBQyxHQUFHO2dCQUNsQixHQUFHLElBQUksR0FBRyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUN2RCxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7UUFDSCxNQUFNLGtCQUFrQixHQUFHLEVBQUUsQ0FBQztRQUM5QixNQUFNLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQW1CLEVBQUUsRUFBRTtZQUM3RCxNQUFNLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxHQUFHLEtBQUssQ0FBQztZQUM1QixNQUFNLG9CQUFvQixHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUNuRCxJQUFJLENBQUMsMkJBQTJCLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUNyRCxDQUFDO1lBQ0YsSUFBSSxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsQ0FBQztnQkFDakMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLEdBQUcsb0JBQW9CLENBQUM7WUFDakQsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBT0gsTUFBTSxzQkFBc0IsR0FBNEIsRUFBRSxDQUFDO1FBQzNELE1BQU0sQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFtQixFQUFFLEVBQUU7WUFDakUsTUFBTSxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsR0FBRyxLQUFLLENBQUM7WUFDNUIsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO2dCQUNuQixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsMkJBQTJCLENBQUMsYUFBYSxDQUMvRCxLQUFLLEVBQ0wsT0FBTyxDQUNSLENBQUM7Z0JBQ0YsSUFBSSxVQUFVLEVBQUUsQ0FBQztvQkFDZixNQUFNLHNCQUFzQixHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUNsRCxVQUFVLENBQUMsc0JBQXNCLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUM5QyxDQUFDO29CQUNGLDBDQUEwQztvQkFDMUMsTUFBTSxvQkFBb0IsR0FBRyxzQkFBc0IsQ0FBQyxNQUFNO3dCQUN4RCxDQUFDLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDO3dCQUMzQixDQUFDLENBQUMsU0FBUyxDQUFDO29CQUNkLElBQUksb0JBQW9CLEVBQUUsQ0FBQzt3QkFDekIsc0JBQXNCLENBQUMsSUFBSSxDQUFDOzRCQUMxQixHQUFHLEVBQUUsS0FBSzs0QkFDVixXQUFXLEVBQUUsR0FBRzs0QkFDaEIsaUJBQWlCLEVBQUUsb0JBQW9COzRCQUN2QyxVQUFVO3lCQUNYLENBQUMsQ0FBQztvQkFDTCxDQUFDO2dCQUNILENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxnQkFBZ0IsR0FHaEIsRUFBRSxDQUFDO1FBQ1Qsc0JBQXNCLENBQUMsR0FBRyxDQUFDLENBQUMscUJBQXFCLEVBQUUsRUFBRTtZQUNuRCxNQUFNLEdBQUcsR0FBRyxxQkFBcUIsQ0FBQyxHQUFHLENBQUM7WUFDdEMsTUFBTSxJQUFJLEdBQUcscUJBQXFCLENBQUMsVUFBVSxDQUFDLElBQUksSUFBSSxLQUFLLENBQUM7WUFDNUQsY0FBYyxDQUFDLHFCQUFxQixDQUFDLGlCQUFpQixDQUFDLENBQUMsR0FBRyxDQUN6RCxDQUFDLFNBQVMsRUFBRSxFQUFFO2dCQUNaLElBQUksZ0JBQWdCLEdBQUcsU0FBUyxDQUFDO2dCQUNqQyxJQUFJLGVBQWUsR0FBRyxTQUFTLENBQUM7Z0JBQ2hDLElBQ0UsQ0FBQyxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQ2xFLENBQUM7b0JBQ0QsZ0JBQWdCLEdBQUcsU0FBUyxDQUFDO29CQUM3QixlQUFlLEdBQUcsU0FBUyxDQUFDO2dCQUM5QixDQUFDO2dCQUNELE1BQU0sRUFBRSxHQUFHLFdBQVcsQ0FBQyxlQUFlLENBQUM7b0JBQ3JDLGFBQWEsRUFBRTt3QkFDYixJQUFJLEVBQUUsSUFBSSxJQUFJLEtBQUs7d0JBQ25CLEdBQUc7d0JBQ0gsdUJBQXVCLEVBQUUsSUFBSTt3QkFDN0IsY0FBYyxFQUFFLElBQUk7d0JBQ3BCLE1BQU0sRUFBRTs0QkFDTixNQUFNLEVBQUUsZ0JBQWdCOzRCQUN4QixLQUFLLEVBQUUsZUFBZTt5QkFDdkI7cUJBQ0Y7aUJBQ0YsQ0FBQyxDQUFDO2dCQUNILE1BQU0sZ0JBQWdCLEdBQUcsMkJBQTJCLENBQ2xELEVBQUUsQ0FBQyxhQUFhLENBQ2pCLENBQUM7Z0JBQ0YsZ0JBQWdCLENBQUMsSUFBSSxDQUFDO29CQUNwQixxQkFBcUI7b0JBQ3JCLEtBQUssRUFBRTt3QkFDTCxLQUFLLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLGdCQUFnQixDQUFDLEtBQUssU0FBUzt3QkFDakUsd0JBQXdCLEVBQUUsSUFBSTt3QkFDOUIsSUFBSTt3QkFDSixHQUFHO3dCQUNILFNBQVM7cUJBQ1Y7aUJBQ0YsQ0FBQyxDQUFDO1lBQ0wsQ0FBQyxDQUNGLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztRQUNILGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDLGVBQWUsRUFBRSxFQUFFO1lBQ3ZDLE1BQU0sV0FBVyxHQUFHLGVBQWUsQ0FBQyxxQkFBcUIsQ0FBQyxXQUFXLENBQUM7WUFDdEUsTUFBTSxpQkFBaUIsR0FDckIsZUFBZSxDQUFDLHFCQUFxQixDQUFDLGlCQUFpQixDQUFDO1lBRTFELE1BQU0sUUFBUSxHQUFHLGVBQWUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDO1lBQzNDLE1BQU0sY0FBYyxHQUFHLGVBQWUsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDO1lBQ3ZELE1BQU0saUJBQWlCLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FDdkMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUNKLENBQUMsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLEtBQUssUUFBUTtnQkFDdEMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLGNBQWMsQ0FDckQsQ0FBQztZQUNGLE1BQU0sRUFBRSxHQUFHO2dCQUNULFVBQVUsRUFBRSxlQUFlLENBQUMsS0FBSzthQUNsQyxDQUFDO1lBQ0YsS0FBSyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3RELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7T0FHRztJQUNLLFlBQVksQ0FBQyxLQUFtQjtRQUN0QyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQyxJQUFJLEdBQUcsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5QixDQUFDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0ssVUFBVTtRQUNoQixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUNsRCxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNqQixJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQzdCLENBQUM7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbnRpdHlTdG9yZVN0cmF0ZWd5IH0gZnJvbSAnQGlnbzIvY29tbW9uJztcclxuaW1wb3J0IHsgT2JqZWN0VXRpbHMgfSBmcm9tICdAaWdvMi91dGlscyc7XHJcblxyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24sIGRlYm91bmNlVGltZSwgcGFpcndpc2UgfSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7IENhcGFiaWxpdGllc1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9kYXRhc291cmNlL3NoYXJlZC9jYXBhYmlsaXRpZXMuc2VydmljZSc7XHJcbmltcG9ydCB7IExheWVyIH0gZnJvbSAnLi4vLi4vLi4vbGF5ZXIvc2hhcmVkL2xheWVycy9sYXllcic7XHJcbmltcG9ydCB7IElnb01hcCB9IGZyb20gJy4uLy4uLy4uL21hcC9zaGFyZWQvbWFwJztcclxuaW1wb3J0IHsgZ2VuZXJhdGVJZEZyb21Tb3VyY2VPcHRpb25zIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvaWQtZ2VuZXJhdG9yJztcclxuaW1wb3J0IHsgR2VvU2VydmljZURlZmluaXRpb24gfSBmcm9tICcuLi8uLi8uLi91dGlscy9wcm9wZXJ0eVR5cGVEZXRlY3Rvci9wcm9wZXJ0eVR5cGVEZXRlY3Rvci5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBQcm9wZXJ0eVR5cGVEZXRlY3RvclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi91dGlscy9wcm9wZXJ0eVR5cGVEZXRlY3Rvci9wcm9wZXJ0eVR5cGVEZXRlY3Rvci5zZXJ2aWNlJztcclxuaW1wb3J0IHtcclxuICBGZWF0dXJlLFxyXG4gIEZlYXR1cmVTdG9yZVByb3BlcnR5VHlwZVN0cmF0ZWd5T3B0aW9uc1xyXG59IGZyb20gJy4uL2ZlYXR1cmUuaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IEZlYXR1cmVTdG9yZSB9IGZyb20gJy4uL3N0b3JlJztcclxuXHJcbi8qKlxyXG4gKiBUaGlzIHN0cmF0ZWd5IG1haW50YWluIHRoZSBzdG9yZSBmZWF0dXJlcyB1cGRhdGVkIHRvIGRldGVjdCBnZW9wcm9wZXJ0aWVzXHJcbiAqICh3bXMvYXJjZ2lzLi4uIGxheWVyIGFuZCB1cmwpLlxyXG4gKiBUaGUgZmVhdHVyZXMncyBzdGF0ZSBpbnNpZGUgdGhlIG1hcCBhcmUgdGFnZ2VkIGhhdmVHZW9TZXJ2aWNlUHJvcGVydGllcyA9IHRydWU7XHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgR2VvUHJvcGVydGllc1N0cmF0ZWd5IGV4dGVuZHMgRW50aXR5U3RvcmVTdHJhdGVneSB7XHJcbiAgLyoqXHJcbiAgICogU3Vic2NyaXB0aW9uIHRvIHRoZSBzdG9yZSdzIE9MIHNvdXJjZSBjaGFuZ2VzXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBzdG9yZXMkJCA9IG5ldyBNYXA8RmVhdHVyZVN0b3JlLCBzdHJpbmc+KCk7XHJcbiAgcHJpdmF0ZSBzdGF0ZXMkJDogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuICBwcml2YXRlIGVtcHR5JCQ6IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgLyoqXHJcbiAgICogVGhlIG1hcCB0aGUgbGF5ZXIgaXMgYm91bmQgdG9cclxuICAgKi9cclxuICBwcml2YXRlIHJlYWRvbmx5IG1hcDogSWdvTWFwO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByb3RlY3RlZCBvcHRpb25zOiBGZWF0dXJlU3RvcmVQcm9wZXJ0eVR5cGVTdHJhdGVneU9wdGlvbnMsXHJcbiAgICBwcml2YXRlIHByb3BlcnR5VHlwZURldGVjdG9yU2VydmljZTogUHJvcGVydHlUeXBlRGV0ZWN0b3JTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjYXBhYmlsaXRpZXNTZXJ2aWNlOiBDYXBhYmlsaXRpZXNTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICBzdXBlcihvcHRpb25zKTtcclxuICAgIHRoaXMubWFwID0gb3B0aW9ucy5tYXA7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBCaW5kIHRoaXMgc3RyYXRlZ3kgdG8gYSBzdG9yZSBhbmQgc3RhcnQgd2F0Y2hpbmcgZm9yIE9sIHNvdXJjZSBjaGFuZ2VzXHJcbiAgICogQHBhcmFtIHN0b3JlIEZlYXR1cmUgc3RvcmVcclxuICAgKi9cclxuICBiaW5kU3RvcmUoc3RvcmU6IEZlYXR1cmVTdG9yZSkge1xyXG4gICAgc3VwZXIuYmluZFN0b3JlKHN0b3JlKTtcclxuICAgIGlmICh0aGlzLmFjdGl2ZSA9PT0gdHJ1ZSkge1xyXG4gICAgICB0aGlzLndhdGNoU3RvcmUoc3RvcmUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVW5iaW5kIHRoaXMgc3RyYXRlZ3kgZnJvbSBhIHN0b3JlIGFuZCBzdG9wIHdhdGNoaW5nIGZvciBPbCBzb3VyY2UgY2hhbmdlc1xyXG4gICAqIEBwYXJhbSBzdG9yZSBGZWF0dXJlIHN0b3JlXHJcbiAgICovXHJcbiAgdW5iaW5kU3RvcmUoc3RvcmU6IEZlYXR1cmVTdG9yZSkge1xyXG4gICAgc3VwZXIudW5iaW5kU3RvcmUoc3RvcmUpO1xyXG4gICAgaWYgKHRoaXMuYWN0aXZlID09PSB0cnVlKSB7XHJcbiAgICAgIHRoaXMudW53YXRjaFN0b3JlKHN0b3JlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFN0YXJ0IHdhdGNoaW5nIGFsbCBzdG9yZXMgYWxyZWFkeSBib3VuZCB0byB0aGF0IHN0cmF0ZWd5IGF0IG9uY2UuXHJcbiAgICogQGludGVybmFsXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIGRvQWN0aXZhdGUoKSB7XHJcbiAgICB0aGlzLnN0b3Jlcy5mb3JFYWNoKChzdG9yZTogRmVhdHVyZVN0b3JlKSA9PiB0aGlzLndhdGNoU3RvcmUoc3RvcmUpKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFN0b3Agd2F0Y2hpbmcgYWxsIHN0b3JlcyBib3VuZCB0byB0aGF0IHN0cmF0ZWd5XHJcbiAgICogQGludGVybmFsXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIGRvRGVhY3RpdmF0ZSgpIHtcclxuICAgIHRoaXMudW53YXRjaEFsbCgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogV2F0Y2ggZm9yIGEgc3RvcmUncyAgT0wgc291cmNlIGNoYW5nZXNcclxuICAgKiBAcGFyYW0gc3RvcmUgRmVhdHVyZSBzdG9yZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgd2F0Y2hTdG9yZShzdG9yZTogRmVhdHVyZVN0b3JlKSB7XHJcbiAgICBpZiAodGhpcy5zdG9yZXMkJC5oYXMoc3RvcmUpKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnVwZGF0ZUVudGl0aWVzUHJvcGVydGllc1N0YXRlKHN0b3JlKTtcclxuICAgIHRoaXMuc3RhdGVzJCQucHVzaChcclxuICAgICAgdGhpcy5tYXAubGF5ZXJzJFxyXG4gICAgICAgIC5waXBlKGRlYm91bmNlVGltZSgyNTApLCBwYWlyd2lzZSgpKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKFtwcmV2TGF5ZXJzLCBjdXJyZW50TGF5ZXJzXSkgPT4ge1xyXG4gICAgICAgICAgbGV0IHByZXZMYXllcnNJZDtcclxuICAgICAgICAgIGlmIChwcmV2TGF5ZXJzKSB7XHJcbiAgICAgICAgICAgIHByZXZMYXllcnNJZCA9IHByZXZMYXllcnMubWFwKChsKSA9PiBsLmlkKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGNvbnN0IGxheWVycyA9IGN1cnJlbnRMYXllcnMuZmlsdGVyKFxyXG4gICAgICAgICAgICAobCkgPT4gIXByZXZMYXllcnNJZC5pbmNsdWRlcyhsLmlkKVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICAgIHRoaXMudXBkYXRlRW50aXRpZXNQcm9wZXJ0aWVzU3RhdGUoc3RvcmUsIGxheWVycyk7XHJcbiAgICAgICAgfSlcclxuICAgICk7XHJcbiAgICB0aGlzLnN0YXRlcyQkLnB1c2goXHJcbiAgICAgIHN0b3JlLmVudGl0aWVzJC5waXBlKGRlYm91bmNlVGltZSgyNTApKS5zdWJzY3JpYmUoKGEpID0+IHtcclxuICAgICAgICB0aGlzLnVwZGF0ZUVudGl0aWVzUHJvcGVydGllc1N0YXRlKHN0b3JlKTtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHVwZGF0ZUVudGl0aWVzUHJvcGVydGllc1N0YXRlKHN0b3JlOiBGZWF0dXJlU3RvcmUsIGxheWVycz86IExheWVyW10pIHtcclxuICAgIGNvbnN0IGxheWVyc0lkID0gdGhpcy5tYXAubGF5ZXJzLm1hcCgobCkgPT4gbC5pZCk7XHJcbiAgICBsZXQgZW50aXRpZXM6IEZlYXR1cmVbXSA9IFtdO1xyXG4gICAgaWYgKGxheWVycykge1xyXG4gICAgICBlbnRpdGllcyA9IHN0b3JlLmVudGl0aWVzJC52YWx1ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IGFsbFNWID0gc3RvcmUuc3RhdGVWaWV3LmFsbCgpO1xyXG4gICAgICBlbnRpdGllcyA9IGFsbFNWLmxlbmd0aFxyXG4gICAgICAgID8gc3RvcmUuc3RhdGVWaWV3XHJcbiAgICAgICAgICAgIC5hbGwoKVxyXG4gICAgICAgICAgICAuZmlsdGVyKChzKSA9PiAhcy5zdGF0ZS5nZW9TZXJ2aWNlKVxyXG4gICAgICAgICAgICAubWFwKChlKSA9PiBlLmVudGl0eSlcclxuICAgICAgICA6IHN0b3JlLmVudGl0aWVzJC52YWx1ZTtcclxuICAgIH1cclxuICAgIGNvbnN0IHNhbXBsaW5nID0gZW50aXRpZXMubGVuZ3RoID49IDI1MCA/IDI1MCA6IGVudGl0aWVzLmxlbmd0aDtcclxuICAgIGNvbnN0IGZpcnN0TiA9IGVudGl0aWVzLnNsaWNlKDAsIHNhbXBsaW5nKTtcclxuICAgIGxldCBhbGxLZXlzID0gW107XHJcbiAgICBmaXJzdE4ubWFwKChlKSA9PiB7XHJcbiAgICAgIGFsbEtleXMgPSBhbGxLZXlzLmNvbmNhdChPYmplY3Qua2V5cyhlLnByb3BlcnRpZXMgfHwge30pKTtcclxuICAgIH0pO1xyXG4gICAgYWxsS2V5cyA9IFsuLi5uZXcgU2V0KGFsbEtleXMpXTtcclxuICAgIGNvbnN0IGRpc3RpbmN0VmFsdWVzID0ge307XHJcbiAgICBhbGxLZXlzLm1hcCgoaykgPT4ge1xyXG4gICAgICBkaXN0aW5jdFZhbHVlc1trXSA9IFtcclxuICAgICAgICAuLi5uZXcgU2V0KGVudGl0aWVzLm1hcCgoaXRlbSkgPT4gaXRlbS5wcm9wZXJ0aWVzW2tdKSlcclxuICAgICAgXTtcclxuICAgIH0pO1xyXG4gICAgY29uc3QgY29udGFpbkdlb1NlcnZpY2VzID0ge307XHJcbiAgICBPYmplY3QuZW50cmllcyhkaXN0aW5jdFZhbHVlcykuZm9yRWFjaCgoZW50cnk6IFtzdHJpbmcsIFtdXSkgPT4ge1xyXG4gICAgICBjb25zdCBba2V5LCB2YWx1ZXNdID0gZW50cnk7XHJcbiAgICAgIGNvbnN0IHZhbHVlZEFyZUdlb3NlcnZpY2VzID0gdmFsdWVzLmZpbHRlcigodmFsdWUpID0+XHJcbiAgICAgICAgdGhpcy5wcm9wZXJ0eVR5cGVEZXRlY3RvclNlcnZpY2UuaXNHZW9TZXJ2aWNlKHZhbHVlKVxyXG4gICAgICApO1xyXG4gICAgICBpZiAodmFsdWVkQXJlR2Vvc2VydmljZXM/Lmxlbmd0aCkge1xyXG4gICAgICAgIGNvbnRhaW5HZW9TZXJ2aWNlc1trZXldID0gdmFsdWVkQXJlR2Vvc2VydmljZXM7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgaW50ZXJmYWNlIEdlb1NlcnZpY2VBc3NvY2lhdGlvbiB7XHJcbiAgICAgIHVybDogc3RyaW5nO1xyXG4gICAgICBsYXllck5hbWVQcm9wZXJ0eTogc3RyaW5nO1xyXG4gICAgICB1cmxQcm9wZXJ0eTogc3RyaW5nO1xyXG4gICAgICBnZW9TZXJ2aWNlOiBHZW9TZXJ2aWNlRGVmaW5pdGlvbjtcclxuICAgIH1cclxuICAgIGNvbnN0IGdlb1NlcnZpY2VBc3NvY2lhdGlvbnM6IEdlb1NlcnZpY2VBc3NvY2lhdGlvbltdID0gW107XHJcbiAgICBPYmplY3QuZW50cmllcyhjb250YWluR2VvU2VydmljZXMpLmZvckVhY2goKGVudHJ5OiBbc3RyaW5nLCBbXV0pID0+IHtcclxuICAgICAgY29uc3QgW2tleSwgdmFsdWVzXSA9IGVudHJ5O1xyXG4gICAgICB2YWx1ZXMubWFwKCh2YWx1ZSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGdlb1NlcnZpY2UgPSB0aGlzLnByb3BlcnR5VHlwZURldGVjdG9yU2VydmljZS5nZXRHZW9TZXJ2aWNlKFxyXG4gICAgICAgICAgdmFsdWUsXHJcbiAgICAgICAgICBhbGxLZXlzXHJcbiAgICAgICAgKTtcclxuICAgICAgICBpZiAoZ2VvU2VydmljZSkge1xyXG4gICAgICAgICAgY29uc3QgcHJvcGVydGllc0ZvckxheWVyTmFtZSA9IGFsbEtleXMuZmlsdGVyKChwKSA9PlxyXG4gICAgICAgICAgICBnZW9TZXJ2aWNlLnByb3BlcnRpZXNGb3JMYXllck5hbWUuaW5jbHVkZXMocClcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICAvLyBwcm92aWRpbmcgdGhlIHRoZSBmaXJzdCBtYXRjaGluZyByZWdleDtcclxuICAgICAgICAgIGNvbnN0IHByb3BlcnR5Rm9yTGF5ZXJOYW1lID0gcHJvcGVydGllc0ZvckxheWVyTmFtZS5sZW5ndGhcclxuICAgICAgICAgICAgPyBwcm9wZXJ0aWVzRm9yTGF5ZXJOYW1lWzBdXHJcbiAgICAgICAgICAgIDogdW5kZWZpbmVkO1xyXG4gICAgICAgICAgaWYgKHByb3BlcnR5Rm9yTGF5ZXJOYW1lKSB7XHJcbiAgICAgICAgICAgIGdlb1NlcnZpY2VBc3NvY2lhdGlvbnMucHVzaCh7XHJcbiAgICAgICAgICAgICAgdXJsOiB2YWx1ZSxcclxuICAgICAgICAgICAgICB1cmxQcm9wZXJ0eToga2V5LFxyXG4gICAgICAgICAgICAgIGxheWVyTmFtZVByb3BlcnR5OiBwcm9wZXJ0eUZvckxheWVyTmFtZSxcclxuICAgICAgICAgICAgICBnZW9TZXJ2aWNlXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICAgIGNvbnN0IGdlb1NlcnZpY2VTdGF0ZXM6IHtcclxuICAgICAgZ2VvU2VydmljZUFzc29jaWF0aW9uOiBHZW9TZXJ2aWNlQXNzb2NpYXRpb247XHJcbiAgICAgIHN0YXRlOiBhbnk7XHJcbiAgICB9W10gPSBbXTtcclxuICAgIGdlb1NlcnZpY2VBc3NvY2lhdGlvbnMubWFwKChnZW9TZXJ2aWNlQXNzb2NpYXRpb24pID0+IHtcclxuICAgICAgY29uc3QgdXJsID0gZ2VvU2VydmljZUFzc29jaWF0aW9uLnVybDtcclxuICAgICAgY29uc3QgdHlwZSA9IGdlb1NlcnZpY2VBc3NvY2lhdGlvbi5nZW9TZXJ2aWNlLnR5cGUgfHwgJ3dtcyc7XHJcbiAgICAgIGRpc3RpbmN0VmFsdWVzW2dlb1NlcnZpY2VBc3NvY2lhdGlvbi5sYXllck5hbWVQcm9wZXJ0eV0ubWFwKFxyXG4gICAgICAgIChsYXllck5hbWUpID0+IHtcclxuICAgICAgICAgIGxldCBhcHBsaWVkTGF5ZXJOYW1lID0gbGF5ZXJOYW1lO1xyXG4gICAgICAgICAgbGV0IGFyY2dpc0xheWVyTmFtZSA9IHVuZGVmaW5lZDtcclxuICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgWydhcmNnaXNyZXN0JywgJ2ltYWdlYXJjZ2lzcmVzdCcsICd0aWxlYXJjZ2lzcmVzdCddLmluY2x1ZGVzKHR5cGUpXHJcbiAgICAgICAgICApIHtcclxuICAgICAgICAgICAgYXBwbGllZExheWVyTmFtZSA9IHVuZGVmaW5lZDtcclxuICAgICAgICAgICAgYXJjZ2lzTGF5ZXJOYW1lID0gbGF5ZXJOYW1lO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgY29uc3Qgc28gPSBPYmplY3RVdGlscy5yZW1vdmVVbmRlZmluZWQoe1xyXG4gICAgICAgICAgICBzb3VyY2VPcHRpb25zOiB7XHJcbiAgICAgICAgICAgICAgdHlwZTogdHlwZSB8fCAnd21zJyxcclxuICAgICAgICAgICAgICB1cmwsXHJcbiAgICAgICAgICAgICAgb3B0aW9uc0Zyb21DYXBhYmlsaXRpZXM6IHRydWUsXHJcbiAgICAgICAgICAgICAgb3B0aW9uc0Zyb21BcGk6IHRydWUsXHJcbiAgICAgICAgICAgICAgcGFyYW1zOiB7XHJcbiAgICAgICAgICAgICAgICBMQVlFUlM6IGFwcGxpZWRMYXllck5hbWUsXHJcbiAgICAgICAgICAgICAgICBMQVlFUjogYXJjZ2lzTGF5ZXJOYW1lXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIGNvbnN0IHBvdGVudGlhbExheWVySWQgPSBnZW5lcmF0ZUlkRnJvbVNvdXJjZU9wdGlvbnMoXHJcbiAgICAgICAgICAgIHNvLnNvdXJjZU9wdGlvbnNcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICBnZW9TZXJ2aWNlU3RhdGVzLnB1c2goe1xyXG4gICAgICAgICAgICBnZW9TZXJ2aWNlQXNzb2NpYXRpb24sXHJcbiAgICAgICAgICAgIHN0YXRlOiB7XHJcbiAgICAgICAgICAgICAgYWRkZWQ6IGxheWVyc0lkLmZpbmQoKGwpID0+IGwgPT09IHBvdGVudGlhbExheWVySWQpICE9PSB1bmRlZmluZWQsXHJcbiAgICAgICAgICAgICAgaGF2ZUdlb1NlcnZpY2VQcm9wZXJ0aWVzOiB0cnVlLFxyXG4gICAgICAgICAgICAgIHR5cGUsXHJcbiAgICAgICAgICAgICAgdXJsLFxyXG4gICAgICAgICAgICAgIGxheWVyTmFtZVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcbiAgICB9KTtcclxuICAgIGdlb1NlcnZpY2VTdGF0ZXMubWFwKChnZW9TZXJ2aWNlU3RhdGUpID0+IHtcclxuICAgICAgY29uc3QgdXJsUHJvcGVydHkgPSBnZW9TZXJ2aWNlU3RhdGUuZ2VvU2VydmljZUFzc29jaWF0aW9uLnVybFByb3BlcnR5O1xyXG4gICAgICBjb25zdCBsYXllck5hbWVQcm9wZXJ0eSA9XHJcbiAgICAgICAgZ2VvU2VydmljZVN0YXRlLmdlb1NlcnZpY2VBc3NvY2lhdGlvbi5sYXllck5hbWVQcm9wZXJ0eTtcclxuXHJcbiAgICAgIGNvbnN0IHVybFZhbHVlID0gZ2VvU2VydmljZVN0YXRlLnN0YXRlLnVybDtcclxuICAgICAgY29uc3QgbGF5ZXJOYW1lVmFsdWUgPSBnZW9TZXJ2aWNlU3RhdGUuc3RhdGUubGF5ZXJOYW1lO1xyXG4gICAgICBjb25zdCBlbnRpdGllc1RvUHJvY2VzcyA9IGVudGl0aWVzLmZpbHRlcihcclxuICAgICAgICAoZSkgPT5cclxuICAgICAgICAgIGUucHJvcGVydGllc1t1cmxQcm9wZXJ0eV0gPT09IHVybFZhbHVlICYmXHJcbiAgICAgICAgICBlLnByb3BlcnRpZXNbbGF5ZXJOYW1lUHJvcGVydHldID09PSBsYXllck5hbWVWYWx1ZVxyXG4gICAgICApO1xyXG4gICAgICBjb25zdCBucyA9IHtcclxuICAgICAgICBnZW9TZXJ2aWNlOiBnZW9TZXJ2aWNlU3RhdGUuc3RhdGVcclxuICAgICAgfTtcclxuICAgICAgc3RvcmUuc3RhdGUudXBkYXRlTWFueShlbnRpdGllc1RvUHJvY2VzcywgbnMsIHRydWUpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTdG9wIHdhdGNoaW5nIGZvciBhIHN0b3JlJ3MgT0wgc291cmNlIGNoYW5nZXNcclxuICAgKiBAcGFyYW0gc3RvcmUgRmVhdHVyZSBzdG9yZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgdW53YXRjaFN0b3JlKHN0b3JlOiBGZWF0dXJlU3RvcmUpIHtcclxuICAgIGNvbnN0IGtleSA9IHRoaXMuc3RvcmVzJCQuZ2V0KHN0b3JlKTtcclxuICAgIGlmIChrZXkgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICB0aGlzLnN0b3JlcyQkLmRlbGV0ZShzdG9yZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTdG9wIHdhdGNoaW5nIGZvciBPTCBzb3VyY2UgY2hhbmdlcyBpbiBhbGwgc3RvcmVzLlxyXG4gICAqL1xyXG4gIHByaXZhdGUgdW53YXRjaEFsbCgpIHtcclxuICAgIHRoaXMuc3RvcmVzJCQuY2xlYXIoKTtcclxuICAgIHRoaXMuc3RhdGVzJCQubWFwKChzdGF0ZSkgPT4gc3RhdGUudW5zdWJzY3JpYmUoKSk7XHJcbiAgICBpZiAodGhpcy5lbXB0eSQkKSB7XHJcbiAgICAgIHRoaXMuZW1wdHkkJC51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
@@ -113,4 +113,4 @@ export class FeatureStoreInMapExtentStrategy extends EntityStoreStrategy {
113
113
  }
114
114
  }
115
115
  }
116
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW4tbWFwLWV4dGVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2ZlYXR1cmUvc2hhcmVkL3N0cmF0ZWdpZXMvaW4tbWFwLWV4dGVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFbkQsT0FBTyxLQUFLLFFBQVEsTUFBTSxXQUFXLENBQUM7QUFHdEMsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQVN6RDs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sK0JBQWdDLFNBQVEsbUJBQW1CO0lBUWhEO0lBUHRCOztPQUVHO0lBQ0ssUUFBUSxHQUFHLElBQUksR0FBRyxFQUF3QixDQUFDO0lBQzNDLFFBQVEsR0FBbUIsRUFBRSxDQUFDO0lBQzlCLE9BQU8sQ0FBZTtJQUU5QixZQUFzQixPQUErQztRQUNuRSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFESyxZQUFPLEdBQVAsT0FBTyxDQUF3QztJQUVyRSxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsU0FBUyxDQUFDLEtBQW1CO1FBQzNCLEtBQUssQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkIsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLElBQUksRUFBRTtZQUN4QixJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3hCO1FBQ0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsTUFBTTthQUN4QixJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ2xDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQ7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S0FBSyxDQUFDLENBQUM7U0FDN0I7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSyxVQUFVO1FBQ2hCLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQ2xELElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNoQixJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQzVCO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW50aXR5U3RvcmVTdHJhdGVneSB9IGZyb20gJ0BpZ28yL2NvbW1vbic7XHJcblxyXG5pbXBvcnQgKiBhcyBvbGV4dGVudCBmcm9tICdvbC9leHRlbnQnO1xyXG5cclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgc2tpcFdoaWxlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgTWFwRXh0ZW50IH0gZnJvbSAnLi4vLi4vLi4vbWFwL3NoYXJlZC9tYXAuaW50ZXJmYWNlJztcclxuaW1wb3J0IHtcclxuICBGZWF0dXJlLFxyXG4gIEZlYXR1cmVTdG9yZUluTWFwRXh0ZW50U3RyYXRlZ3lPcHRpb25zXHJcbn0gZnJvbSAnLi4vZmVhdHVyZS5pbnRlcmZhY2VzJztcclxuaW1wb3J0IHsgRmVhdHVyZVN0b3JlIH0gZnJvbSAnLi4vc3RvcmUnO1xyXG5cclxuLyoqXHJcbiAqIFRoaXMgc3RyYXRlZ3kgbWFpbnRhaW4gdGhlIHN0b3JlIGZlYXR1cmVzIHVwZGF0ZWQgd2hpbGUgdGhlIG1hcCBpcyBtb3ZlZC5cclxuICogVGhlIGZlYXR1cmVzJ3Mgc3RhdGUgaW5zaWRlIHRoZSBtYXAgYXJlIHRhZ2dlZCBpbk1hcEV4dGVudCA9IHRydWU7XHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgRmVhdHVyZVN0b3JlSW5NYXBFeHRlbnRTdHJhdGVneSBleHRlbmRzIEVudGl0eVN0b3JlU3RyYXRlZ3kge1xyXG4gIC8qKlxyXG4gICAqIFN1YnNjcmlwdGlvbiB0byB0aGUgc3RvcmUncyBPTCBzb3VyY2UgY2hhbmdlc1xyXG4gICAqL1xyXG4gIHByaXZhdGUgc3RvcmVzJCQgPSBuZXcgTWFwPEZlYXR1cmVTdG9yZSwgc3RyaW5nPigpO1xyXG4gIHByaXZhdGUgc3RhdGVzJCQ6IFN1YnNjcmlwdGlvbltdID0gW107XHJcbiAgcHJpdmF0ZSBlbXB0eSQkOiBTdWJzY3JpcHRpb247XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBvcHRpb25zOiBGZWF0dXJlU3RvcmVJbk1hcEV4dGVudFN0cmF0ZWd5T3B0aW9ucykge1xyXG4gICAgc3VwZXIob3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBCaW5kIHRoaXMgc3RyYXRlZ3kgdG8gYSBzdG9yZSBhbmQgc3RhcnQgd2F0Y2hpbmcgZm9yIE9sIHNvdXJjZSBjaGFuZ2VzXHJcbiAgICogQHBhcmFtIHN0b3JlIEZlYXR1cmUgc3RvcmVcclxuICAgKi9cclxuICBiaW5kU3RvcmUoc3RvcmU6IEZlYXR1cmVTdG9yZSkge1xyXG4gICAgc3VwZXIuYmluZFN0b3JlKHN0b3JlKTtcclxuICAgIGlmICh0aGlzLmFjdGl2ZSA9PT0gdHJ1ZSkge1xyXG4gICAgICB0aGlzLndhdGNoU3RvcmUoc3RvcmUpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5lbXB0eSQkID0gc3RvcmUuZW1wdHkkXHJcbiAgICAgIC5waXBlKHNraXBXaGlsZSgoZW1wdHkpID0+ICFlbXB0eSkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy51cGRhdGVFbnRpdGllc0luRXh0ZW50KHN0b3JlKSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVbmJpbmQgdGhpcyBzdHJhdGVneSBmcm9tIGEgc3RvcmUgYW5kIHN0b3Agd2F0Y2hpbmcgZm9yIE9sIHNvdXJjZSBjaGFuZ2VzXHJcbiAgICogQHBhcmFtIHN0b3JlIEZlYXR1cmUgc3RvcmVcclxuICAgKi9cclxuICB1bmJpbmRTdG9yZShzdG9yZTogRmVhdHVyZVN0b3JlKSB7XHJcbiAgICBzdXBlci51bmJpbmRTdG9yZShzdG9yZSk7XHJcbiAgICBpZiAodGhpcy5hY3RpdmUgPT09IHRydWUpIHtcclxuICAgICAgdGhpcy51bndhdGNoU3RvcmUoc3RvcmUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU3RhcnQgd2F0Y2hpbmcgYWxsIHN0b3JlcyBhbHJlYWR5IGJvdW5kIHRvIHRoYXQgc3RyYXRlZ3kgYXQgb25jZS5cclxuICAgKiBAaW50ZXJuYWxcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgZG9BY3RpdmF0ZSgpIHtcclxuICAgIHRoaXMuc3RvcmVzLmZvckVhY2goKHN0b3JlOiBGZWF0dXJlU3RvcmUpID0+IHRoaXMud2F0Y2hTdG9yZShzdG9yZSkpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU3RvcCB3YXRjaGluZyBhbGwgc3RvcmVzIGJvdW5kIHRvIHRoYXQgc3RyYXRlZ3lcclxuICAgKiBAaW50ZXJuYWxcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgZG9EZWFjdGl2YXRlKCkge1xyXG4gICAgdGhpcy51bndhdGNoQWxsKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBXYXRjaCBmb3IgYSBzdG9yZSdzICBPTCBzb3VyY2UgY2hhbmdlc1xyXG4gICAqIEBwYXJhbSBzdG9yZSBGZWF0dXJlIHN0b3JlXHJcbiAgICovXHJcbiAgcHJpdmF0ZSB3YXRjaFN0b3JlKHN0b3JlOiBGZWF0dXJlU3RvcmUpIHtcclxuICAgIGlmICh0aGlzLnN0b3JlcyQkLmhhcyhzdG9yZSkpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMudXBkYXRlRW50aXRpZXNJbkV4dGVudChzdG9yZSk7XHJcbiAgICB0aGlzLnN0YXRlcyQkLnB1c2goXHJcbiAgICAgIHN0b3JlLmxheWVyLm1hcC52aWV3Q29udHJvbGxlci5zdGF0ZSRcclxuICAgICAgICAucGlwZShkZWJvdW5jZVRpbWUoMjUwKSlcclxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMudXBkYXRlRW50aXRpZXNJbkV4dGVudChzdG9yZSkpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB1cGRhdGVFbnRpdGllc0luRXh0ZW50KHN0b3JlOiBGZWF0dXJlU3RvcmUpIHtcclxuICAgIGlmIChzdG9yZT8ubGF5ZXI/Lm1hcD8udmlld0NvbnRyb2xsZXIpIHtcclxuICAgICAgc3RvcmUuc3RhdGUudXBkYXRlQWxsKHsgaW5NYXBFeHRlbnQ6IGZhbHNlIH0pO1xyXG4gICAgICBjb25zdCBtYXBFeHRlbnQgPSBzdG9yZS5sYXllci5tYXAudmlld0NvbnRyb2xsZXIuZ2V0RXh0ZW50KCk7XHJcbiAgICAgIGNvbnN0IGZlYXR1cmVzID0gc3RvcmUuZW50aXRpZXMkLnZhbHVlO1xyXG4gICAgICBjb25zdCBlbnRpdGllc0luTWFwRXh0ZW50ID0gdGhpcy5nZXRGZWF0dXJlc0luRXh0ZW50KGZlYXR1cmVzLCBtYXBFeHRlbnQpO1xyXG4gICAgICBzdG9yZS5zdGF0ZS51cGRhdGVNYW55KGVudGl0aWVzSW5NYXBFeHRlbnQsIHsgaW5NYXBFeHRlbnQ6IHRydWUgfSwgZmFsc2UpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRGZWF0dXJlc0luRXh0ZW50KFxyXG4gICAgZmVhdHVyZXM6IEZlYXR1cmU8YW55PltdLFxyXG4gICAgZXh0ZW50OiBNYXBFeHRlbnRcclxuICApOiBGZWF0dXJlW10ge1xyXG4gICAgcmV0dXJuIGZlYXR1cmVzLnJlZHVjZSgoYWNjLCBmZWF0dXJlKSA9PiB7XHJcbiAgICAgIGNvbnN0IGdlb20gPSBmZWF0dXJlLm9sPy5nZXRHZW9tZXRyeSgpO1xyXG4gICAgICBpZiAoZ2VvbSkge1xyXG4gICAgICAgIGNvbnN0IGZlYXR1cmVFeHRlbnQgPSBnZW9tLmdldEV4dGVudCgpO1xyXG5cclxuICAgICAgICBpZiAob2xleHRlbnQuaW50ZXJzZWN0cyhmZWF0dXJlRXh0ZW50LCBleHRlbnQpKSB7XHJcbiAgICAgICAgICBhY2MucHVzaChmZWF0dXJlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgLy8gQnkgZGVmYXVsdCwga2VlcCBlbnRpdHkgd2l0aCBubyBnZW9tZXRyeVxyXG4gICAgICAgIGFjYy5wdXNoKGZlYXR1cmUpO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBhY2M7XHJcbiAgICB9LCBbXSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTdG9wIHdhdGNoaW5nIGZvciBhIHN0b3JlJ3MgT0wgc291cmNlIGNoYW5nZXNcclxuICAgKiBAcGFyYW0gc3RvcmUgRmVhdHVyZSBzdG9yZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgdW53YXRjaFN0b3JlKHN0b3JlOiBGZWF0dXJlU3RvcmUpIHtcclxuICAgIGNvbnN0IGtleSA9IHRoaXMuc3RvcmVzJCQuZ2V0KHN0b3JlKTtcclxuICAgIGlmIChrZXkgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICB0aGlzLnN0b3JlcyQkLmRlbGV0ZShzdG9yZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTdG9wIHdhdGNoaW5nIGZvciBPTCBzb3VyY2UgY2hhbmdlcyBpbiBhbGwgc3RvcmVzLlxyXG4gICAqL1xyXG4gIHByaXZhdGUgdW53YXRjaEFsbCgpIHtcclxuICAgIHRoaXMuc3RvcmVzJCQuY2xlYXIoKTtcclxuICAgIHRoaXMuc3RhdGVzJCQubWFwKChzdGF0ZSkgPT4gc3RhdGUudW5zdWJzY3JpYmUoKSk7XHJcbiAgICBpZiAodGhpcy5lbXB0eSQkKSB7XHJcbiAgICAgIHRoaXMuZW1wdHkkJC51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
116
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW4tbWFwLWV4dGVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2ZlYXR1cmUvc2hhcmVkL3N0cmF0ZWdpZXMvaW4tbWFwLWV4dGVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFbkQsT0FBTyxLQUFLLFFBQVEsTUFBTSxXQUFXLENBQUM7QUFHdEMsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQVN6RDs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sK0JBQWdDLFNBQVEsbUJBQW1CO0lBUWhEO0lBUHRCOztPQUVHO0lBQ0ssUUFBUSxHQUFHLElBQUksR0FBRyxFQUF3QixDQUFDO0lBQzNDLFFBQVEsR0FBbUIsRUFBRSxDQUFDO0lBQzlCLE9BQU8sQ0FBZTtJQUU5QixZQUFzQixPQUErQztRQUNuRSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFESyxZQUFPLEdBQVAsT0FBTyxDQUF3QztJQUVyRSxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsU0FBUyxDQUFDLEtBQW1CO1FBQzNCLEtBQUssQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkIsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLElBQUksRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekIsQ0FBQztRQUNELElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLE1BQU07YUFDeEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUNsQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVEOzs7T0FHRztJQUNILFdBQVcsQ0FBQyxLQUFtQjtRQUM3QixLQUFLLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pCLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNCLENBQUM7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ08sVUFBVTtRQUNsQixJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQW1CLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRUQ7OztPQUdHO0lBQ08sWUFBWTtRQUNwQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVEOzs7T0FHRztJQUNLLFVBQVUsQ0FBQyxLQUFtQjtRQUNwQyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDN0IsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLENBQUMsc0JBQXNCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQ2hCLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxNQUFNO2FBQ2xDLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDdkIsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUN2RCxDQUFDO0lBQ0osQ0FBQztJQUVPLHNCQUFzQixDQUFDLEtBQW1CO1FBQ2hELElBQUksS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsY0FBYyxFQUFFLENBQUM7WUFDdEMsS0FBSyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUM5QyxNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDN0QsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUM7WUFDdkMsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBQzFFLEtBQUssQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLG1CQUFtQixFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzVFLENBQUM7SUFDSCxDQUFDO0lBRU8sbUJBQW1CLENBQ3pCLFFBQXdCLEVBQ3hCLE1BQWlCO1FBRWpCLE9BQU8sUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUUsRUFBRTtZQUN0QyxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsRUFBRSxFQUFFLFdBQVcsRUFBRSxDQUFDO1lBQ3ZDLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQ1QsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUV2QyxJQUFJLFFBQVEsQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUM7b0JBQy9DLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQ3BCLENBQUM7WUFDSCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sMkNBQTJDO2dCQUMzQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3BCLENBQUM7WUFDRCxPQUFPLEdBQUcsQ0FBQztRQUNiLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNULENBQUM7SUFFRDs7O09BR0c7SUFDSyxZQUFZLENBQUMsS0FBbUI7UUFDdEMsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckMsSUFBSSxHQUFHLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDdEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUIsQ0FBQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNLLFVBQVU7UUFDaEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDbEQsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUM3QixDQUFDO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW50aXR5U3RvcmVTdHJhdGVneSB9IGZyb20gJ0BpZ28yL2NvbW1vbic7XHJcblxyXG5pbXBvcnQgKiBhcyBvbGV4dGVudCBmcm9tICdvbC9leHRlbnQnO1xyXG5cclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgc2tpcFdoaWxlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgTWFwRXh0ZW50IH0gZnJvbSAnLi4vLi4vLi4vbWFwL3NoYXJlZC9tYXAuaW50ZXJmYWNlJztcclxuaW1wb3J0IHtcclxuICBGZWF0dXJlLFxyXG4gIEZlYXR1cmVTdG9yZUluTWFwRXh0ZW50U3RyYXRlZ3lPcHRpb25zXHJcbn0gZnJvbSAnLi4vZmVhdHVyZS5pbnRlcmZhY2VzJztcclxuaW1wb3J0IHsgRmVhdHVyZVN0b3JlIH0gZnJvbSAnLi4vc3RvcmUnO1xyXG5cclxuLyoqXHJcbiAqIFRoaXMgc3RyYXRlZ3kgbWFpbnRhaW4gdGhlIHN0b3JlIGZlYXR1cmVzIHVwZGF0ZWQgd2hpbGUgdGhlIG1hcCBpcyBtb3ZlZC5cclxuICogVGhlIGZlYXR1cmVzJ3Mgc3RhdGUgaW5zaWRlIHRoZSBtYXAgYXJlIHRhZ2dlZCBpbk1hcEV4dGVudCA9IHRydWU7XHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgRmVhdHVyZVN0b3JlSW5NYXBFeHRlbnRTdHJhdGVneSBleHRlbmRzIEVudGl0eVN0b3JlU3RyYXRlZ3kge1xyXG4gIC8qKlxyXG4gICAqIFN1YnNjcmlwdGlvbiB0byB0aGUgc3RvcmUncyBPTCBzb3VyY2UgY2hhbmdlc1xyXG4gICAqL1xyXG4gIHByaXZhdGUgc3RvcmVzJCQgPSBuZXcgTWFwPEZlYXR1cmVTdG9yZSwgc3RyaW5nPigpO1xyXG4gIHByaXZhdGUgc3RhdGVzJCQ6IFN1YnNjcmlwdGlvbltdID0gW107XHJcbiAgcHJpdmF0ZSBlbXB0eSQkOiBTdWJzY3JpcHRpb247XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBvcHRpb25zOiBGZWF0dXJlU3RvcmVJbk1hcEV4dGVudFN0cmF0ZWd5T3B0aW9ucykge1xyXG4gICAgc3VwZXIob3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBCaW5kIHRoaXMgc3RyYXRlZ3kgdG8gYSBzdG9yZSBhbmQgc3RhcnQgd2F0Y2hpbmcgZm9yIE9sIHNvdXJjZSBjaGFuZ2VzXHJcbiAgICogQHBhcmFtIHN0b3JlIEZlYXR1cmUgc3RvcmVcclxuICAgKi9cclxuICBiaW5kU3RvcmUoc3RvcmU6IEZlYXR1cmVTdG9yZSkge1xyXG4gICAgc3VwZXIuYmluZFN0b3JlKHN0b3JlKTtcclxuICAgIGlmICh0aGlzLmFjdGl2ZSA9PT0gdHJ1ZSkge1xyXG4gICAgICB0aGlzLndhdGNoU3RvcmUoc3RvcmUpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5lbXB0eSQkID0gc3RvcmUuZW1wdHkkXHJcbiAgICAgIC5waXBlKHNraXBXaGlsZSgoZW1wdHkpID0+ICFlbXB0eSkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy51cGRhdGVFbnRpdGllc0luRXh0ZW50KHN0b3JlKSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVbmJpbmQgdGhpcyBzdHJhdGVneSBmcm9tIGEgc3RvcmUgYW5kIHN0b3Agd2F0Y2hpbmcgZm9yIE9sIHNvdXJjZSBjaGFuZ2VzXHJcbiAgICogQHBhcmFtIHN0b3JlIEZlYXR1cmUgc3RvcmVcclxuICAgKi9cclxuICB1bmJpbmRTdG9yZShzdG9yZTogRmVhdHVyZVN0b3JlKSB7XHJcbiAgICBzdXBlci51bmJpbmRTdG9yZShzdG9yZSk7XHJcbiAgICBpZiAodGhpcy5hY3RpdmUgPT09IHRydWUpIHtcclxuICAgICAgdGhpcy51bndhdGNoU3RvcmUoc3RvcmUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU3RhcnQgd2F0Y2hpbmcgYWxsIHN0b3JlcyBhbHJlYWR5IGJvdW5kIHRvIHRoYXQgc3RyYXRlZ3kgYXQgb25jZS5cclxuICAgKiBAaW50ZXJuYWxcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgZG9BY3RpdmF0ZSgpIHtcclxuICAgIHRoaXMuc3RvcmVzLmZvckVhY2goKHN0b3JlOiBGZWF0dXJlU3RvcmUpID0+IHRoaXMud2F0Y2hTdG9yZShzdG9yZSkpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU3RvcCB3YXRjaGluZyBhbGwgc3RvcmVzIGJvdW5kIHRvIHRoYXQgc3RyYXRlZ3lcclxuICAgKiBAaW50ZXJuYWxcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgZG9EZWFjdGl2YXRlKCkge1xyXG4gICAgdGhpcy51bndhdGNoQWxsKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBXYXRjaCBmb3IgYSBzdG9yZSdzICBPTCBzb3VyY2UgY2hhbmdlc1xyXG4gICAqIEBwYXJhbSBzdG9yZSBGZWF0dXJlIHN0b3JlXHJcbiAgICovXHJcbiAgcHJpdmF0ZSB3YXRjaFN0b3JlKHN0b3JlOiBGZWF0dXJlU3RvcmUpIHtcclxuICAgIGlmICh0aGlzLnN0b3JlcyQkLmhhcyhzdG9yZSkpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMudXBkYXRlRW50aXRpZXNJbkV4dGVudChzdG9yZSk7XHJcbiAgICB0aGlzLnN0YXRlcyQkLnB1c2goXHJcbiAgICAgIHN0b3JlLmxheWVyLm1hcC52aWV3Q29udHJvbGxlci5zdGF0ZSRcclxuICAgICAgICAucGlwZShkZWJvdW5jZVRpbWUoMjUwKSlcclxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMudXBkYXRlRW50aXRpZXNJbkV4dGVudChzdG9yZSkpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB1cGRhdGVFbnRpdGllc0luRXh0ZW50KHN0b3JlOiBGZWF0dXJlU3RvcmUpIHtcclxuICAgIGlmIChzdG9yZT8ubGF5ZXI/Lm1hcD8udmlld0NvbnRyb2xsZXIpIHtcclxuICAgICAgc3RvcmUuc3RhdGUudXBkYXRlQWxsKHsgaW5NYXBFeHRlbnQ6IGZhbHNlIH0pO1xyXG4gICAgICBjb25zdCBtYXBFeHRlbnQgPSBzdG9yZS5sYXllci5tYXAudmlld0NvbnRyb2xsZXIuZ2V0RXh0ZW50KCk7XHJcbiAgICAgIGNvbnN0IGZlYXR1cmVzID0gc3RvcmUuZW50aXRpZXMkLnZhbHVlO1xyXG4gICAgICBjb25zdCBlbnRpdGllc0luTWFwRXh0ZW50ID0gdGhpcy5nZXRGZWF0dXJlc0luRXh0ZW50KGZlYXR1cmVzLCBtYXBFeHRlbnQpO1xyXG4gICAgICBzdG9yZS5zdGF0ZS51cGRhdGVNYW55KGVudGl0aWVzSW5NYXBFeHRlbnQsIHsgaW5NYXBFeHRlbnQ6IHRydWUgfSwgZmFsc2UpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRGZWF0dXJlc0luRXh0ZW50KFxyXG4gICAgZmVhdHVyZXM6IEZlYXR1cmU8YW55PltdLFxyXG4gICAgZXh0ZW50OiBNYXBFeHRlbnRcclxuICApOiBGZWF0dXJlW10ge1xyXG4gICAgcmV0dXJuIGZlYXR1cmVzLnJlZHVjZSgoYWNjLCBmZWF0dXJlKSA9PiB7XHJcbiAgICAgIGNvbnN0IGdlb20gPSBmZWF0dXJlLm9sPy5nZXRHZW9tZXRyeSgpO1xyXG4gICAgICBpZiAoZ2VvbSkge1xyXG4gICAgICAgIGNvbnN0IGZlYXR1cmVFeHRlbnQgPSBnZW9tLmdldEV4dGVudCgpO1xyXG5cclxuICAgICAgICBpZiAob2xleHRlbnQuaW50ZXJzZWN0cyhmZWF0dXJlRXh0ZW50LCBleHRlbnQpKSB7XHJcbiAgICAgICAgICBhY2MucHVzaChmZWF0dXJlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgLy8gQnkgZGVmYXVsdCwga2VlcCBlbnRpdHkgd2l0aCBubyBnZW9tZXRyeVxyXG4gICAgICAgIGFjYy5wdXNoKGZlYXR1cmUpO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBhY2M7XHJcbiAgICB9LCBbXSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTdG9wIHdhdGNoaW5nIGZvciBhIHN0b3JlJ3MgT0wgc291cmNlIGNoYW5nZXNcclxuICAgKiBAcGFyYW0gc3RvcmUgRmVhdHVyZSBzdG9yZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgdW53YXRjaFN0b3JlKHN0b3JlOiBGZWF0dXJlU3RvcmUpIHtcclxuICAgIGNvbnN0IGtleSA9IHRoaXMuc3RvcmVzJCQuZ2V0KHN0b3JlKTtcclxuICAgIGlmIChrZXkgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICB0aGlzLnN0b3JlcyQkLmRlbGV0ZShzdG9yZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTdG9wIHdhdGNoaW5nIGZvciBPTCBzb3VyY2UgY2hhbmdlcyBpbiBhbGwgc3RvcmVzLlxyXG4gICAqL1xyXG4gIHByaXZhdGUgdW53YXRjaEFsbCgpIHtcclxuICAgIHRoaXMuc3RvcmVzJCQuY2xlYXIoKTtcclxuICAgIHRoaXMuc3RhdGVzJCQubWFwKChzdGF0ZSkgPT4gc3RhdGUudW5zdWJzY3JpYmUoKSk7XHJcbiAgICBpZiAodGhpcy5lbXB0eSQkKSB7XHJcbiAgICAgIHRoaXMuZW1wdHkkJC51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
@@ -96,4 +96,4 @@ export class FeatureStoreInMapResolutionStrategy extends EntityStoreStrategy {
96
96
  }
97
97
  }
98
98
  }
99
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW4tbWFwLXJlc29sdXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9mZWF0dXJlL3NoYXJlZC9zdHJhdGVnaWVzL2luLW1hcC1yZXNvbHV0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUVuRCxPQUFPLEVBQWdCLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUtsRDs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sbUNBQW9DLFNBQVEsbUJBQW1CO0lBUXBEO0lBUHRCOztPQUVHO0lBQ0ssUUFBUSxHQUFHLElBQUksR0FBRyxFQUF3QixDQUFDO0lBQzNDLFlBQVksR0FBbUIsRUFBRSxDQUFDO0lBQ2xDLE9BQU8sQ0FBZTtJQUU5QixZQUFzQixPQUFtRDtRQUN2RSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFESyxZQUFPLEdBQVAsT0FBTyxDQUE0QztJQUV6RSxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsU0FBUyxDQUFDLEtBQW1CO1FBQzNCLEtBQUssQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkIsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLElBQUksRUFBRTtZQUN4QixJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3hCO1FBQ0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FDekMsSUFBSSxDQUFDLDBCQUEwQixDQUM3QixLQUFLLEVBQ0wsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLGFBQWEsRUFBRSxDQUMvQyxDQUNGLENBQUM7SUFDSixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsV0FBVyxDQUFDLEtBQW1CO1FBQzdCLEtBQUssQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekIsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLElBQUksRUFBRTtZQUN4QixJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzFCO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNPLFVBQVU7UUFDbEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFtQixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUVEOzs7T0FHRztJQUNPLFlBQVk7UUFDcEIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFFRDs7O09BR0c7SUFDSyxVQUFVLENBQUMsS0FBbUI7UUFDcEMsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUM1QixPQUFPO1NBQ1I7UUFFRCxJQUFJLENBQUMsMEJBQTBCLENBQzdCLEtBQUssRUFDTCxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsYUFBYSxFQUFFLENBQy9DLENBQUM7UUFDRixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FDcEIsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLFdBQVc7YUFDdkMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUN2QixTQUFTLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNqQixJQUFJLENBQUMsMEJBQTBCLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQzlDLENBQUMsQ0FBQyxDQUNMLENBQUM7SUFDSixDQUFDO0lBRU8sMEJBQTBCLENBQUMsS0FBSyxFQUFFLGFBQXFCO1FBQzdELElBQ0UsYUFBYSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsYUFBYTtZQUN6QyxhQUFhLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxhQUFhLEVBQ3pDO1lBQ0EsS0FBSyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztTQUNsRDthQUFNO1lBQ0wsS0FBSyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztTQUNuRDtJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSyxZQUFZLENBQUMsS0FBbUI7UUFDdEMsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckMsSUFBSSxHQUFHLEtBQUssU0FBUyxFQUFFO1lBQ3JCLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzdCO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0ssVUFBVTtRQUNoQixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUN0RCxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDaEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUM1QjtJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVudGl0eVN0b3JlU3RyYXRlZ3kgfSBmcm9tICdAaWdvMi9jb21tb24nO1xyXG5cclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uLCBkZWJvdW5jZVRpbWUgfSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7IEZlYXR1cmVTdG9yZUluTWFwUmVzb2x1dGlvblN0cmF0ZWd5T3B0aW9ucyB9IGZyb20gJy4uL2ZlYXR1cmUuaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IEZlYXR1cmVTdG9yZSB9IGZyb20gJy4uL3N0b3JlJztcclxuXHJcbi8qKlxyXG4gKiBUaGlzIHN0cmF0ZWd5IG1haW50YWluIHRoZSBzdG9yZSBmZWF0dXJlcyB1cGRhdGVkIHdoaWxlIHRoZSBtYXAgaXMgc2Nyb2xsZWQuXHJcbiAqIFRoZSBmZWF0dXJlcydzIHN0YXRlIGluc2lkZSB0aGUgbWFwJ3MgcmVzb2x1dGlvbiBhcmUgdGFnZ2VkIGluTWFwUmVzb2x1dGlvbiA9IHRydWU7XHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgRmVhdHVyZVN0b3JlSW5NYXBSZXNvbHV0aW9uU3RyYXRlZ3kgZXh0ZW5kcyBFbnRpdHlTdG9yZVN0cmF0ZWd5IHtcclxuICAvKipcclxuICAgKiBTdWJzY3JpcHRpb24gdG8gdGhlIHN0b3JlJ3MgT0wgc291cmNlIGNoYW5nZXNcclxuICAgKi9cclxuICBwcml2YXRlIHN0b3JlcyQkID0gbmV3IE1hcDxGZWF0dXJlU3RvcmUsIHN0cmluZz4oKTtcclxuICBwcml2YXRlIHJlc29sdXRpb24kJDogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuICBwcml2YXRlIGVtcHR5JCQ6IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIG9wdGlvbnM6IEZlYXR1cmVTdG9yZUluTWFwUmVzb2x1dGlvblN0cmF0ZWd5T3B0aW9ucykge1xyXG4gICAgc3VwZXIob3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBCaW5kIHRoaXMgc3RyYXRlZ3kgdG8gYSBzdG9yZSBhbmQgc3RhcnQgd2F0Y2hpbmcgZm9yIE9sIHNvdXJjZSBjaGFuZ2VzXHJcbiAgICogQHBhcmFtIHN0b3JlIEZlYXR1cmUgc3RvcmVcclxuICAgKi9cclxuICBiaW5kU3RvcmUoc3RvcmU6IEZlYXR1cmVTdG9yZSkge1xyXG4gICAgc3VwZXIuYmluZFN0b3JlKHN0b3JlKTtcclxuICAgIGlmICh0aGlzLmFjdGl2ZSA9PT0gdHJ1ZSkge1xyXG4gICAgICB0aGlzLndhdGNoU3RvcmUoc3RvcmUpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5lbXB0eSQkID0gc3RvcmUuZW1wdHkkLnN1YnNjcmliZSgoKSA9PlxyXG4gICAgICB0aGlzLnVwZGF0ZUVudGl0aWVzSW5SZXNvbHV0aW9uKFxyXG4gICAgICAgIHN0b3JlLFxyXG4gICAgICAgIHN0b3JlLmxheWVyLm1hcC52aWV3Q29udHJvbGxlci5nZXRSZXNvbHV0aW9uKClcclxuICAgICAgKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVuYmluZCB0aGlzIHN0cmF0ZWd5IGZyb20gYSBzdG9yZSBhbmQgc3RvcCB3YXRjaGluZyBmb3IgT2wgc291cmNlIGNoYW5nZXNcclxuICAgKiBAcGFyYW0gc3RvcmUgRmVhdHVyZSBzdG9yZVxyXG4gICAqL1xyXG4gIHVuYmluZFN0b3JlKHN0b3JlOiBGZWF0dXJlU3RvcmUpIHtcclxuICAgIHN1cGVyLnVuYmluZFN0b3JlKHN0b3JlKTtcclxuICAgIGlmICh0aGlzLmFjdGl2ZSA9PT0gdHJ1ZSkge1xyXG4gICAgICB0aGlzLnVud2F0Y2hTdG9yZShzdG9yZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTdGFydCB3YXRjaGluZyBhbGwgc3RvcmVzIGFscmVhZHkgYm91bmQgdG8gdGhhdCBzdHJhdGVneSBhdCBvbmNlLlxyXG4gICAqIEBpbnRlcm5hbFxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBkb0FjdGl2YXRlKCkge1xyXG4gICAgdGhpcy5zdG9yZXMuZm9yRWFjaCgoc3RvcmU6IEZlYXR1cmVTdG9yZSkgPT4gdGhpcy53YXRjaFN0b3JlKHN0b3JlKSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTdG9wIHdhdGNoaW5nIGFsbCBzdG9yZXMgYm91bmQgdG8gdGhhdCBzdHJhdGVneVxyXG4gICAqIEBpbnRlcm5hbFxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBkb0RlYWN0aXZhdGUoKSB7XHJcbiAgICB0aGlzLnVud2F0Y2hBbGwoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFdhdGNoIGZvciBhIHN0b3JlJ3MgIE9MIHNvdXJjZSBjaGFuZ2VzXHJcbiAgICogQHBhcmFtIHN0b3JlIEZlYXR1cmUgc3RvcmVcclxuICAgKi9cclxuICBwcml2YXRlIHdhdGNoU3RvcmUoc3RvcmU6IEZlYXR1cmVTdG9yZSkge1xyXG4gICAgaWYgKHRoaXMuc3RvcmVzJCQuaGFzKHN0b3JlKSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy51cGRhdGVFbnRpdGllc0luUmVzb2x1dGlvbihcclxuICAgICAgc3RvcmUsXHJcbiAgICAgIHN0b3JlLmxheWVyLm1hcC52aWV3Q29udHJvbGxlci5nZXRSZXNvbHV0aW9uKClcclxuICAgICk7XHJcbiAgICB0aGlzLnJlc29sdXRpb24kJC5wdXNoKFxyXG4gICAgICBzdG9yZS5sYXllci5tYXAudmlld0NvbnRyb2xsZXIucmVzb2x1dGlvbiRcclxuICAgICAgICAucGlwZShkZWJvdW5jZVRpbWUoMjUwKSlcclxuICAgICAgICAuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuICAgICAgICAgIHRoaXMudXBkYXRlRW50aXRpZXNJblJlc29sdXRpb24oc3RvcmUsIHJlcyk7XHJcbiAgICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHVwZGF0ZUVudGl0aWVzSW5SZXNvbHV0aW9uKHN0b3JlLCBtYXBSZXNvbHV0aW9uOiBudW1iZXIpIHtcclxuICAgIGlmIChcclxuICAgICAgbWFwUmVzb2x1dGlvbiA+IHN0b3JlLmxheWVyLm1pblJlc29sdXRpb24gJiZcclxuICAgICAgbWFwUmVzb2x1dGlvbiA8IHN0b3JlLmxheWVyLm1heFJlc29sdXRpb25cclxuICAgICkge1xyXG4gICAgICBzdG9yZS5zdGF0ZS51cGRhdGVBbGwoeyBpbk1hcFJlc29sdXRpb246IHRydWUgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBzdG9yZS5zdGF0ZS51cGRhdGVBbGwoeyBpbk1hcFJlc29sdXRpb246IGZhbHNlIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU3RvcCB3YXRjaGluZyBmb3IgYSBzdG9yZSdzIE9MIHNvdXJjZSBjaGFuZ2VzXHJcbiAgICogQHBhcmFtIHN0b3JlIEZlYXR1cmUgc3RvcmVcclxuICAgKi9cclxuICBwcml2YXRlIHVud2F0Y2hTdG9yZShzdG9yZTogRmVhdHVyZVN0b3JlKSB7XHJcbiAgICBjb25zdCBrZXkgPSB0aGlzLnN0b3JlcyQkLmdldChzdG9yZSk7XHJcbiAgICBpZiAoa2V5ICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhpcy5zdG9yZXMkJC5kZWxldGUoc3RvcmUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU3RvcCB3YXRjaGluZyBmb3IgT0wgc291cmNlIGNoYW5nZXMgaW4gYWxsIHN0b3Jlcy5cclxuICAgKi9cclxuICBwcml2YXRlIHVud2F0Y2hBbGwoKSB7XHJcbiAgICB0aGlzLnN0b3JlcyQkLmNsZWFyKCk7XHJcbiAgICB0aGlzLnJlc29sdXRpb24kJC5tYXAoKHN0YXRlKSA9PiBzdGF0ZS51bnN1YnNjcmliZSgpKTtcclxuICAgIGlmICh0aGlzLmVtcHR5JCQpIHtcclxuICAgICAgdGhpcy5lbXB0eSQkLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
99
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW4tbWFwLXJlc29sdXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9mZWF0dXJlL3NoYXJlZC9zdHJhdGVnaWVzL2luLW1hcC1yZXNvbHV0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUVuRCxPQUFPLEVBQWdCLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUtsRDs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sbUNBQW9DLFNBQVEsbUJBQW1CO0lBUXBEO0lBUHRCOztPQUVHO0lBQ0ssUUFBUSxHQUFHLElBQUksR0FBRyxFQUF3QixDQUFDO0lBQzNDLFlBQVksR0FBbUIsRUFBRSxDQUFDO0lBQ2xDLE9BQU8sQ0FBZTtJQUU5QixZQUFzQixPQUFtRDtRQUN2RSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFESyxZQUFPLEdBQVAsT0FBTyxDQUE0QztJQUV6RSxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsU0FBUyxDQUFDLEtBQW1CO1FBQzNCLEtBQUssQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkIsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLElBQUksRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekIsQ0FBQztRQUNELElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQ3pDLElBQUksQ0FBQywwQkFBMEIsQ0FDN0IsS0FBSyxFQUNMLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxhQUFhLEVBQUUsQ0FDL0MsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVEOzs7T0FHRztJQUNILFdBQVcsQ0FBQyxLQUFtQjtRQUM3QixLQUFLLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pCLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNCLENBQUM7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ08sVUFBVTtRQUNsQixJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQW1CLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRUQ7OztPQUdHO0lBQ08sWUFBWTtRQUNwQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVEOzs7T0FHRztJQUNLLFVBQVUsQ0FBQyxLQUFtQjtRQUNwQyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDN0IsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLENBQUMsMEJBQTBCLENBQzdCLEtBQUssRUFDTCxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsYUFBYSxFQUFFLENBQy9DLENBQUM7UUFDRixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FDcEIsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLFdBQVc7YUFDdkMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUN2QixTQUFTLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNqQixJQUFJLENBQUMsMEJBQTBCLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQzlDLENBQUMsQ0FBQyxDQUNMLENBQUM7SUFDSixDQUFDO0lBRU8sMEJBQTBCLENBQUMsS0FBSyxFQUFFLGFBQXFCO1FBQzdELElBQ0UsYUFBYSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsYUFBYTtZQUN6QyxhQUFhLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxhQUFhLEVBQ3pDLENBQUM7WUFDRCxLQUFLLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ25ELENBQUM7YUFBTSxDQUFDO1lBQ04sS0FBSyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUNwRCxDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNLLFlBQVksQ0FBQyxLQUFtQjtRQUN0QyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQyxJQUFJLEdBQUcsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5QixDQUFDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0ssVUFBVTtRQUNoQixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUN0RCxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNqQixJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQzdCLENBQUM7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbnRpdHlTdG9yZVN0cmF0ZWd5IH0gZnJvbSAnQGlnbzIvY29tbW9uJztcclxuXHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiwgZGVib3VuY2VUaW1lIH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQgeyBGZWF0dXJlU3RvcmVJbk1hcFJlc29sdXRpb25TdHJhdGVneU9wdGlvbnMgfSBmcm9tICcuLi9mZWF0dXJlLmludGVyZmFjZXMnO1xyXG5pbXBvcnQgeyBGZWF0dXJlU3RvcmUgfSBmcm9tICcuLi9zdG9yZSc7XHJcblxyXG4vKipcclxuICogVGhpcyBzdHJhdGVneSBtYWludGFpbiB0aGUgc3RvcmUgZmVhdHVyZXMgdXBkYXRlZCB3aGlsZSB0aGUgbWFwIGlzIHNjcm9sbGVkLlxyXG4gKiBUaGUgZmVhdHVyZXMncyBzdGF0ZSBpbnNpZGUgdGhlIG1hcCdzIHJlc29sdXRpb24gYXJlIHRhZ2dlZCBpbk1hcFJlc29sdXRpb24gPSB0cnVlO1xyXG4gKi9cclxuZXhwb3J0IGNsYXNzIEZlYXR1cmVTdG9yZUluTWFwUmVzb2x1dGlvblN0cmF0ZWd5IGV4dGVuZHMgRW50aXR5U3RvcmVTdHJhdGVneSB7XHJcbiAgLyoqXHJcbiAgICogU3Vic2NyaXB0aW9uIHRvIHRoZSBzdG9yZSdzIE9MIHNvdXJjZSBjaGFuZ2VzXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBzdG9yZXMkJCA9IG5ldyBNYXA8RmVhdHVyZVN0b3JlLCBzdHJpbmc+KCk7XHJcbiAgcHJpdmF0ZSByZXNvbHV0aW9uJCQ6IFN1YnNjcmlwdGlvbltdID0gW107XHJcbiAgcHJpdmF0ZSBlbXB0eSQkOiBTdWJzY3JpcHRpb247XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBvcHRpb25zOiBGZWF0dXJlU3RvcmVJbk1hcFJlc29sdXRpb25TdHJhdGVneU9wdGlvbnMpIHtcclxuICAgIHN1cGVyKG9wdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQmluZCB0aGlzIHN0cmF0ZWd5IHRvIGEgc3RvcmUgYW5kIHN0YXJ0IHdhdGNoaW5nIGZvciBPbCBzb3VyY2UgY2hhbmdlc1xyXG4gICAqIEBwYXJhbSBzdG9yZSBGZWF0dXJlIHN0b3JlXHJcbiAgICovXHJcbiAgYmluZFN0b3JlKHN0b3JlOiBGZWF0dXJlU3RvcmUpIHtcclxuICAgIHN1cGVyLmJpbmRTdG9yZShzdG9yZSk7XHJcbiAgICBpZiAodGhpcy5hY3RpdmUgPT09IHRydWUpIHtcclxuICAgICAgdGhpcy53YXRjaFN0b3JlKHN0b3JlKTtcclxuICAgIH1cclxuICAgIHRoaXMuZW1wdHkkJCA9IHN0b3JlLmVtcHR5JC5zdWJzY3JpYmUoKCkgPT5cclxuICAgICAgdGhpcy51cGRhdGVFbnRpdGllc0luUmVzb2x1dGlvbihcclxuICAgICAgICBzdG9yZSxcclxuICAgICAgICBzdG9yZS5sYXllci5tYXAudmlld0NvbnRyb2xsZXIuZ2V0UmVzb2x1dGlvbigpXHJcbiAgICAgIClcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVbmJpbmQgdGhpcyBzdHJhdGVneSBmcm9tIGEgc3RvcmUgYW5kIHN0b3Agd2F0Y2hpbmcgZm9yIE9sIHNvdXJjZSBjaGFuZ2VzXHJcbiAgICogQHBhcmFtIHN0b3JlIEZlYXR1cmUgc3RvcmVcclxuICAgKi9cclxuICB1bmJpbmRTdG9yZShzdG9yZTogRmVhdHVyZVN0b3JlKSB7XHJcbiAgICBzdXBlci51bmJpbmRTdG9yZShzdG9yZSk7XHJcbiAgICBpZiAodGhpcy5hY3RpdmUgPT09IHRydWUpIHtcclxuICAgICAgdGhpcy51bndhdGNoU3RvcmUoc3RvcmUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU3RhcnQgd2F0Y2hpbmcgYWxsIHN0b3JlcyBhbHJlYWR5IGJvdW5kIHRvIHRoYXQgc3RyYXRlZ3kgYXQgb25jZS5cclxuICAgKiBAaW50ZXJuYWxcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgZG9BY3RpdmF0ZSgpIHtcclxuICAgIHRoaXMuc3RvcmVzLmZvckVhY2goKHN0b3JlOiBGZWF0dXJlU3RvcmUpID0+IHRoaXMud2F0Y2hTdG9yZShzdG9yZSkpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU3RvcCB3YXRjaGluZyBhbGwgc3RvcmVzIGJvdW5kIHRvIHRoYXQgc3RyYXRlZ3lcclxuICAgKiBAaW50ZXJuYWxcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgZG9EZWFjdGl2YXRlKCkge1xyXG4gICAgdGhpcy51bndhdGNoQWxsKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBXYXRjaCBmb3IgYSBzdG9yZSdzICBPTCBzb3VyY2UgY2hhbmdlc1xyXG4gICAqIEBwYXJhbSBzdG9yZSBGZWF0dXJlIHN0b3JlXHJcbiAgICovXHJcbiAgcHJpdmF0ZSB3YXRjaFN0b3JlKHN0b3JlOiBGZWF0dXJlU3RvcmUpIHtcclxuICAgIGlmICh0aGlzLnN0b3JlcyQkLmhhcyhzdG9yZSkpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMudXBkYXRlRW50aXRpZXNJblJlc29sdXRpb24oXHJcbiAgICAgIHN0b3JlLFxyXG4gICAgICBzdG9yZS5sYXllci5tYXAudmlld0NvbnRyb2xsZXIuZ2V0UmVzb2x1dGlvbigpXHJcbiAgICApO1xyXG4gICAgdGhpcy5yZXNvbHV0aW9uJCQucHVzaChcclxuICAgICAgc3RvcmUubGF5ZXIubWFwLnZpZXdDb250cm9sbGVyLnJlc29sdXRpb24kXHJcbiAgICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDI1MCkpXHJcbiAgICAgICAgLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnVwZGF0ZUVudGl0aWVzSW5SZXNvbHV0aW9uKHN0b3JlLCByZXMpO1xyXG4gICAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB1cGRhdGVFbnRpdGllc0luUmVzb2x1dGlvbihzdG9yZSwgbWFwUmVzb2x1dGlvbjogbnVtYmVyKSB7XHJcbiAgICBpZiAoXHJcbiAgICAgIG1hcFJlc29sdXRpb24gPiBzdG9yZS5sYXllci5taW5SZXNvbHV0aW9uICYmXHJcbiAgICAgIG1hcFJlc29sdXRpb24gPCBzdG9yZS5sYXllci5tYXhSZXNvbHV0aW9uXHJcbiAgICApIHtcclxuICAgICAgc3RvcmUuc3RhdGUudXBkYXRlQWxsKHsgaW5NYXBSZXNvbHV0aW9uOiB0cnVlIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgc3RvcmUuc3RhdGUudXBkYXRlQWxsKHsgaW5NYXBSZXNvbHV0aW9uOiBmYWxzZSB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFN0b3Agd2F0Y2hpbmcgZm9yIGEgc3RvcmUncyBPTCBzb3VyY2UgY2hhbmdlc1xyXG4gICAqIEBwYXJhbSBzdG9yZSBGZWF0dXJlIHN0b3JlXHJcbiAgICovXHJcbiAgcHJpdmF0ZSB1bndhdGNoU3RvcmUoc3RvcmU6IEZlYXR1cmVTdG9yZSkge1xyXG4gICAgY29uc3Qga2V5ID0gdGhpcy5zdG9yZXMkJC5nZXQoc3RvcmUpO1xyXG4gICAgaWYgKGtleSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRoaXMuc3RvcmVzJCQuZGVsZXRlKHN0b3JlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFN0b3Agd2F0Y2hpbmcgZm9yIE9MIHNvdXJjZSBjaGFuZ2VzIGluIGFsbCBzdG9yZXMuXHJcbiAgICovXHJcbiAgcHJpdmF0ZSB1bndhdGNoQWxsKCkge1xyXG4gICAgdGhpcy5zdG9yZXMkJC5jbGVhcigpO1xyXG4gICAgdGhpcy5yZXNvbHV0aW9uJCQubWFwKChzdGF0ZSkgPT4gc3RhdGUudW5zdWJzY3JpYmUoKSk7XHJcbiAgICBpZiAodGhpcy5lbXB0eSQkKSB7XHJcbiAgICAgIHRoaXMuZW1wdHkkJC51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
@@ -5,4 +5,4 @@ export * from './loading';
5
5
  export * from './loading-layer';
6
6
  export * from './selection';
7
7
  export * from './search';
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9mZWF0dXJlL3NoYXJlZC9zdHJhdGVnaWVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxVQUFVLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2luLW1hcC1leHRlbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9pbi1tYXAtcmVzb2x1dGlvbic7XG5leHBvcnQgKiBmcm9tICcuL2dlby1wcm9wZXJ0aWVzJztcbmV4cG9ydCAqIGZyb20gJy4vbG9hZGluZyc7XG5leHBvcnQgKiBmcm9tICcuL2xvYWRpbmctbGF5ZXInO1xuZXhwb3J0ICogZnJvbSAnLi9zZWxlY3Rpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9zZWFyY2gnO1xuIl19
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9mZWF0dXJlL3NoYXJlZC9zdHJhdGVnaWVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxVQUFVLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2luLW1hcC1leHRlbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2luLW1hcC1yZXNvbHV0aW9uJztcclxuZXhwb3J0ICogZnJvbSAnLi9nZW8tcHJvcGVydGllcyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbG9hZGluZyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbG9hZGluZy1sYXllcic7XHJcbmV4cG9ydCAqIGZyb20gJy4vc2VsZWN0aW9uJztcclxuZXhwb3J0ICogZnJvbSAnLi9zZWFyY2gnO1xyXG4iXX0=
@@ -101,4 +101,4 @@ export class FeatureStoreLoadingLayerStrategy extends EntityStoreStrategy {
101
101
  }
102
102
  }
103
103
  }
104
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGluZy1sYXllci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2ZlYXR1cmUvc2hhcmVkL3N0cmF0ZWdpZXMvbG9hZGluZy1sYXllci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFJbkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMkRBQTJELENBQUM7QUFJOUY7Ozs7Ozs7R0FPRztBQUNILE1BQU0sT0FBTyxnQ0FBaUMsU0FBUSxtQkFBbUI7SUFNakQ7SUFMdEI7O09BRUc7SUFDSyxRQUFRLEdBQUcsSUFBSSxHQUFHLEVBQXdCLENBQUM7SUFFbkQsWUFBc0IsT0FBZ0Q7UUFDcEUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBREssWUFBTyxHQUFQLE9BQU8sQ0FBeUM7SUFFdEUsQ0FBQztJQUVEOzs7T0FHRztJQUNILFNBQVMsQ0FBQyxLQUFtQjtRQUMzQixLQUFLLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZCLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxJQUFJLEVBQUU7WUFDeEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUN4QjtJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSCxXQUFXLENBQUMsS0FBbUI7UUFDN0IsS0FBSyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6QixJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssSUFBSSxFQUFFO1lBQ3hCLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDMUI7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ08sVUFBVTtRQUNsQixJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQW1CLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRUQ7OztPQUdHO0lBQ08sWUFBWTtRQUNwQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVEOzs7T0FHRztJQUNLLFVBQVUsQ0FBQyxLQUFtQjtRQUNwQyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQzVCLE9BQU87U0FDUjtRQUVELElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDNUIsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDNUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxLQUFjLEVBQUUsRUFBRTtZQUN2QyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7T0FHRztJQUNLLFlBQVksQ0FBQyxLQUFtQjtRQUN0QyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQyxJQUFJLEdBQUcsS0FBSyxTQUFTLEVBQUU7WUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDN0I7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSyxVQUFVO1FBQ2hCLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FDekMsQ0FBQyxPQUErQixFQUFFLEVBQUUsR0FBRSxDQUFDLENBQ3hDLENBQUM7UUFDRixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ssZUFBZSxDQUFDLEtBQW1CO1FBQ3pDLElBQUksVUFBVSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBRTFELElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxVQUFVLFlBQVksaUJBQWlCLEVBQUU7WUFDdkQsVUFBVSxHQUFJLFVBQWtCLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBWSxFQUFFLEVBQUUsQ0FDeEQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FDeEIsQ0FBQztTQUNIO1FBQ0QsSUFBSSxVQUFVLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUMzQixLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDZjthQUFNO1lBQ0wsS0FBSyxDQUFDLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQ3RDO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW50aXR5U3RvcmVTdHJhdGVneSB9IGZyb20gJ0BpZ28yL2NvbW1vbic7XHJcblxyXG5pbXBvcnQgT2xFdmVudCBmcm9tICdvbC9ldmVudHMvRXZlbnQnO1xyXG5cclxuaW1wb3J0IHsgQ2x1c3RlckRhdGFTb3VyY2UgfSBmcm9tICcuLi8uLi8uLi9kYXRhc291cmNlL3NoYXJlZC9kYXRhc291cmNlcy9jbHVzdGVyLWRhdGFzb3VyY2UnO1xyXG5pbXBvcnQgeyBGZWF0dXJlU3RvcmVMb2FkaW5nTGF5ZXJTdHJhdGVneU9wdGlvbnMgfSBmcm9tICcuLi9mZWF0dXJlLmludGVyZmFjZXMnO1xyXG5pbXBvcnQgeyBGZWF0dXJlU3RvcmUgfSBmcm9tICcuLi9zdG9yZSc7XHJcblxyXG4vKipcclxuICogVGhpcyBzdHJhdGVneSBsb2FkcyBhIGxheWVyJ3MgZmVhdHVyZXMgaW50byBpdCdzIHN0b3JlIGNvdW50ZXJwYXJ0LlxyXG4gKiBUaGUgbGF5ZXIgLT4gc3RvcmUgYmluZGluZyBpcyBhIG9uZS13YXkgYmluZGluZy4gVGhhdCBtZWFucyBhbnkgT0wgZmVhdHVyZVxyXG4gKiBhZGRlZCB0byB0aGUgbGF5ZXIgd2lsbCBiZSBhZGRlZCB0byB0aGUgc3RvcmUgYnV0IHRoZSBvcHBvc2l0ZSBpcyBmYWxzZS5cclxuICpcclxuICogSW1wb3J0YW50OiBJbiBpdCdzIGN1cnJlbnQgc3RhdGUsIHRoaXMgc3RyYXRlZ3kgaXMgdG8gbWVhbnQgdG8gYmUgY29tYmluZWRcclxuICogd2l0aCBhIHN0YW5kYXJkIExvYWRpbmcgc3RyYXRlZ3kgYW5kIGl0IHdvdWxkIHByb2JhYmx5IGNhdXNlIHJlY3Vyc2lvbiBpc3N1ZXMuXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgRmVhdHVyZVN0b3JlTG9hZGluZ0xheWVyU3RyYXRlZ3kgZXh0ZW5kcyBFbnRpdHlTdG9yZVN0cmF0ZWd5IHtcclxuICAvKipcclxuICAgKiBTdWJzY3JpcHRpb24gdG8gdGhlIHN0b3JlJ3MgT0wgc291cmNlIGNoYW5nZXNcclxuICAgKi9cclxuICBwcml2YXRlIHN0b3JlcyQkID0gbmV3IE1hcDxGZWF0dXJlU3RvcmUsIHN0cmluZz4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIG9wdGlvbnM6IEZlYXR1cmVTdG9yZUxvYWRpbmdMYXllclN0cmF0ZWd5T3B0aW9ucykge1xyXG4gICAgc3VwZXIob3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBCaW5kIHRoaXMgc3RyYXRlZ3kgdG8gYSBzdG9yZSBhbmQgc3RhcnQgd2F0Y2hpbmcgZm9yIE9sIHNvdXJjZSBjaGFuZ2VzXHJcbiAgICogQHBhcmFtIHN0b3JlIEZlYXR1cmUgc3RvcmVcclxuICAgKi9cclxuICBiaW5kU3RvcmUoc3RvcmU6IEZlYXR1cmVTdG9yZSkge1xyXG4gICAgc3VwZXIuYmluZFN0b3JlKHN0b3JlKTtcclxuICAgIGlmICh0aGlzLmFjdGl2ZSA9PT0gdHJ1ZSkge1xyXG4gICAgICB0aGlzLndhdGNoU3RvcmUoc3RvcmUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVW5iaW5kIHRoaXMgc3RyYXRlZ3kgZnJvbSBhIHN0b3JlIGFuZCBzdG9wIHdhdGNoaW5nIGZvciBPbCBzb3VyY2UgY2hhbmdlc1xyXG4gICAqIEBwYXJhbSBzdG9yZSBGZWF0dXJlIHN0b3JlXHJcbiAgICovXHJcbiAgdW5iaW5kU3RvcmUoc3RvcmU6IEZlYXR1cmVTdG9yZSkge1xyXG4gICAgc3VwZXIudW5iaW5kU3RvcmUoc3RvcmUpO1xyXG4gICAgaWYgKHRoaXMuYWN0aXZlID09PSB0cnVlKSB7XHJcbiAgICAgIHRoaXMudW53YXRjaFN0b3JlKHN0b3JlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFN0YXJ0IHdhdGNoaW5nIGFsbCBzdG9yZXMgYWxyZWFkeSBib3VuZCB0byB0aGF0IHN0cmF0ZWd5IGF0IG9uY2UuXHJcbiAgICogQGludGVybmFsXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIGRvQWN0aXZhdGUoKSB7XHJcbiAgICB0aGlzLnN0b3Jlcy5mb3JFYWNoKChzdG9yZTogRmVhdHVyZVN0b3JlKSA9PiB0aGlzLndhdGNoU3RvcmUoc3RvcmUpKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFN0b3Agd2F0Y2hpbmcgYWxsIHN0b3JlcyBib3VuZCB0byB0aGF0IHN0cmF0ZWd5XHJcbiAgICogQGludGVybmFsXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIGRvRGVhY3RpdmF0ZSgpIHtcclxuICAgIHRoaXMudW53YXRjaEFsbCgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogV2F0Y2ggZm9yIGEgc3RvcmUncyAgT0wgc291cmNlIGNoYW5nZXNcclxuICAgKiBAcGFyYW0gc3RvcmUgRmVhdHVyZSBzdG9yZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgd2F0Y2hTdG9yZShzdG9yZTogRmVhdHVyZVN0b3JlKSB7XHJcbiAgICBpZiAodGhpcy5zdG9yZXMkJC5oYXMoc3RvcmUpKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLm9uU291cmNlQ2hhbmdlcyhzdG9yZSk7XHJcbiAgICBjb25zdCBvbFNvdXJjZSA9IHN0b3JlLmxheWVyLm9sLmdldFNvdXJjZSgpO1xyXG4gICAgb2xTb3VyY2Uub24oJ2NoYW5nZScsIChldmVudDogT2xFdmVudCkgPT4ge1xyXG4gICAgICB0aGlzLm9uU291cmNlQ2hhbmdlcyhzdG9yZSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFN0b3Agd2F0Y2hpbmcgZm9yIGEgc3RvcmUncyBPTCBzb3VyY2UgY2hhbmdlc1xyXG4gICAqIEBwYXJhbSBzdG9yZSBGZWF0dXJlIHN0b3JlXHJcbiAgICovXHJcbiAgcHJpdmF0ZSB1bndhdGNoU3RvcmUoc3RvcmU6IEZlYXR1cmVTdG9yZSkge1xyXG4gICAgY29uc3Qga2V5ID0gdGhpcy5zdG9yZXMkJC5nZXQoc3RvcmUpO1xyXG4gICAgaWYgKGtleSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRoaXMuc3RvcmVzJCQuZGVsZXRlKHN0b3JlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFN0b3Agd2F0Y2hpbmcgZm9yIE9MIHNvdXJjZSBjaGFuZ2VzIGluIGFsbCBzdG9yZXMuXHJcbiAgICovXHJcbiAgcHJpdmF0ZSB1bndhdGNoQWxsKCkge1xyXG4gICAgQXJyYXkuZnJvbSh0aGlzLnN0b3JlcyQkLmVudHJpZXMoKSkuZm9yRWFjaChcclxuICAgICAgKGVudHJpZXM6IFtGZWF0dXJlU3RvcmUsIHN0cmluZ10pID0+IHt9XHJcbiAgICApO1xyXG4gICAgdGhpcy5zdG9yZXMkJC5jbGVhcigpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTG9hZCBmZWF0dXJlcyBmcm9tIGFuIE9MIHNvdXJjZSBpbnRvIGEgIHN0b3JlIG9yIGNsZWFyIHRoZSBzdG9yZSBpZiB0aGUgc291cmNlIGlzIGVtcHR5XHJcbiAgICogQHBhcmFtIGZlYXR1cmVzIFN0b3JlIGZpbHRlcmVkIGZlYXR1cmVzXHJcbiAgICogQHBhcmFtIHN0b3JlIEZlYXR1cmUgc3RvcmVcclxuICAgKi9cclxuICBwcml2YXRlIG9uU291cmNlQ2hhbmdlcyhzdG9yZTogRmVhdHVyZVN0b3JlKSB7XHJcbiAgICBsZXQgb2xGZWF0dXJlcyA9IHN0b3JlLmxheWVyLm9sLmdldFNvdXJjZSgpLmdldEZlYXR1cmVzKCk7XHJcblxyXG4gICAgaWYgKHN0b3JlLmxheWVyLmRhdGFTb3VyY2UgaW5zdGFuY2VvZiBDbHVzdGVyRGF0YVNvdXJjZSkge1xyXG4gICAgICBvbEZlYXR1cmVzID0gKG9sRmVhdHVyZXMgYXMgYW55KS5mbGF0TWFwKChjbHVzdGVyOiBhbnkpID0+XHJcbiAgICAgICAgY2x1c3Rlci5nZXQoJ2ZlYXR1cmVzJylcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIGlmIChvbEZlYXR1cmVzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICBzdG9yZS5jbGVhcigpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgc3RvcmUuc2V0U3RvcmVPbEZlYXR1cmVzKG9sRmVhdHVyZXMpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGluZy1sYXllci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2ZlYXR1cmUvc2hhcmVkL3N0cmF0ZWdpZXMvbG9hZGluZy1sYXllci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFJbkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMkRBQTJELENBQUM7QUFJOUY7Ozs7Ozs7R0FPRztBQUNILE1BQU0sT0FBTyxnQ0FBaUMsU0FBUSxtQkFBbUI7SUFNakQ7SUFMdEI7O09BRUc7SUFDSyxRQUFRLEdBQUcsSUFBSSxHQUFHLEVBQXdCLENBQUM7SUFFbkQsWUFBc0IsT0FBZ0Q7UUFDcEUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBREssWUFBTyxHQUFQLE9BQU8sQ0FBeUM7SUFFdEUsQ0FBQztJQUVEOzs7T0FHRztJQUNILFNBQVMsQ0FBQyxLQUFtQjtRQUMzQixLQUFLLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZCLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pCLENBQUM7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsV0FBVyxDQUFDLEtBQW1CO1FBQzdCLEtBQUssQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekIsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLElBQUksRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0IsQ0FBQztJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDTyxVQUFVO1FBQ2xCLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBbUIsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFRDs7O09BR0c7SUFDTyxZQUFZO1FBQ3BCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssVUFBVSxDQUFDLEtBQW1CO1FBQ3BDLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUM3QixPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDNUIsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDNUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxLQUFjLEVBQUUsRUFBRTtZQUN2QyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7T0FHRztJQUNLLFlBQVksQ0FBQyxLQUFtQjtRQUN0QyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQyxJQUFJLEdBQUcsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5QixDQUFDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0ssVUFBVTtRQUNoQixLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQ3pDLENBQUMsT0FBK0IsRUFBRSxFQUFFLEdBQUUsQ0FBQyxDQUN4QyxDQUFDO1FBQ0YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLGVBQWUsQ0FBQyxLQUFtQjtRQUN6QyxJQUFJLFVBQVUsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUUxRCxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsVUFBVSxZQUFZLGlCQUFpQixFQUFFLENBQUM7WUFDeEQsVUFBVSxHQUFJLFVBQWtCLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBWSxFQUFFLEVBQUUsQ0FDeEQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FDeEIsQ0FBQztRQUNKLENBQUM7UUFDRCxJQUFJLFVBQVUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDNUIsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2hCLENBQUM7YUFBTSxDQUFDO1lBQ04sS0FBSyxDQUFDLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3ZDLENBQUM7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbnRpdHlTdG9yZVN0cmF0ZWd5IH0gZnJvbSAnQGlnbzIvY29tbW9uJztcclxuXHJcbmltcG9ydCBPbEV2ZW50IGZyb20gJ29sL2V2ZW50cy9FdmVudCc7XHJcblxyXG5pbXBvcnQgeyBDbHVzdGVyRGF0YVNvdXJjZSB9IGZyb20gJy4uLy4uLy4uL2RhdGFzb3VyY2Uvc2hhcmVkL2RhdGFzb3VyY2VzL2NsdXN0ZXItZGF0YXNvdXJjZSc7XHJcbmltcG9ydCB7IEZlYXR1cmVTdG9yZUxvYWRpbmdMYXllclN0cmF0ZWd5T3B0aW9ucyB9IGZyb20gJy4uL2ZlYXR1cmUuaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IEZlYXR1cmVTdG9yZSB9IGZyb20gJy4uL3N0b3JlJztcclxuXHJcbi8qKlxyXG4gKiBUaGlzIHN0cmF0ZWd5IGxvYWRzIGEgbGF5ZXIncyBmZWF0dXJlcyBpbnRvIGl0J3Mgc3RvcmUgY291bnRlcnBhcnQuXHJcbiAqIFRoZSBsYXllciAtPiBzdG9yZSBiaW5kaW5nIGlzIGEgb25lLXdheSBiaW5kaW5nLiBUaGF0IG1lYW5zIGFueSBPTCBmZWF0dXJlXHJcbiAqIGFkZGVkIHRvIHRoZSBsYXllciB3aWxsIGJlIGFkZGVkIHRvIHRoZSBzdG9yZSBidXQgdGhlIG9wcG9zaXRlIGlzIGZhbHNlLlxyXG4gKlxyXG4gKiBJbXBvcnRhbnQ6IEluIGl0J3MgY3VycmVudCBzdGF0ZSwgdGhpcyBzdHJhdGVneSBpcyB0byBtZWFudCB0byBiZSBjb21iaW5lZFxyXG4gKiB3aXRoIGEgc3RhbmRhcmQgTG9hZGluZyBzdHJhdGVneSBhbmQgaXQgd291bGQgcHJvYmFibHkgY2F1c2UgcmVjdXJzaW9uIGlzc3Vlcy5cclxuICovXHJcbmV4cG9ydCBjbGFzcyBGZWF0dXJlU3RvcmVMb2FkaW5nTGF5ZXJTdHJhdGVneSBleHRlbmRzIEVudGl0eVN0b3JlU3RyYXRlZ3kge1xyXG4gIC8qKlxyXG4gICAqIFN1YnNjcmlwdGlvbiB0byB0aGUgc3RvcmUncyBPTCBzb3VyY2UgY2hhbmdlc1xyXG4gICAqL1xyXG4gIHByaXZhdGUgc3RvcmVzJCQgPSBuZXcgTWFwPEZlYXR1cmVTdG9yZSwgc3RyaW5nPigpO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgb3B0aW9uczogRmVhdHVyZVN0b3JlTG9hZGluZ0xheWVyU3RyYXRlZ3lPcHRpb25zKSB7XHJcbiAgICBzdXBlcihvcHRpb25zKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEJpbmQgdGhpcyBzdHJhdGVneSB0byBhIHN0b3JlIGFuZCBzdGFydCB3YXRjaGluZyBmb3IgT2wgc291cmNlIGNoYW5nZXNcclxuICAgKiBAcGFyYW0gc3RvcmUgRmVhdHVyZSBzdG9yZVxyXG4gICAqL1xyXG4gIGJpbmRTdG9yZShzdG9yZTogRmVhdHVyZVN0b3JlKSB7XHJcbiAgICBzdXBlci5iaW5kU3RvcmUoc3RvcmUpO1xyXG4gICAgaWYgKHRoaXMuYWN0aXZlID09PSB0cnVlKSB7XHJcbiAgICAgIHRoaXMud2F0Y2hTdG9yZShzdG9yZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVbmJpbmQgdGhpcyBzdHJhdGVneSBmcm9tIGEgc3RvcmUgYW5kIHN0b3Agd2F0Y2hpbmcgZm9yIE9sIHNvdXJjZSBjaGFuZ2VzXHJcbiAgICogQHBhcmFtIHN0b3JlIEZlYXR1cmUgc3RvcmVcclxuICAgKi9cclxuICB1bmJpbmRTdG9yZShzdG9yZTogRmVhdHVyZVN0b3JlKSB7XHJcbiAgICBzdXBlci51bmJpbmRTdG9yZShzdG9yZSk7XHJcbiAgICBpZiAodGhpcy5hY3RpdmUgPT09IHRydWUpIHtcclxuICAgICAgdGhpcy51bndhdGNoU3RvcmUoc3RvcmUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU3RhcnQgd2F0Y2hpbmcgYWxsIHN0b3JlcyBhbHJlYWR5IGJvdW5kIHRvIHRoYXQgc3RyYXRlZ3kgYXQgb25jZS5cclxuICAgKiBAaW50ZXJuYWxcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgZG9BY3RpdmF0ZSgpIHtcclxuICAgIHRoaXMuc3RvcmVzLmZvckVhY2goKHN0b3JlOiBGZWF0dXJlU3RvcmUpID0+IHRoaXMud2F0Y2hTdG9yZShzdG9yZSkpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU3RvcCB3YXRjaGluZyBhbGwgc3RvcmVzIGJvdW5kIHRvIHRoYXQgc3RyYXRlZ3lcclxuICAgKiBAaW50ZXJuYWxcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgZG9EZWFjdGl2YXRlKCkge1xyXG4gICAgdGhpcy51bndhdGNoQWxsKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBXYXRjaCBmb3IgYSBzdG9yZSdzICBPTCBzb3VyY2UgY2hhbmdlc1xyXG4gICAqIEBwYXJhbSBzdG9yZSBGZWF0dXJlIHN0b3JlXHJcbiAgICovXHJcbiAgcHJpdmF0ZSB3YXRjaFN0b3JlKHN0b3JlOiBGZWF0dXJlU3RvcmUpIHtcclxuICAgIGlmICh0aGlzLnN0b3JlcyQkLmhhcyhzdG9yZSkpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMub25Tb3VyY2VDaGFuZ2VzKHN0b3JlKTtcclxuICAgIGNvbnN0IG9sU291cmNlID0gc3RvcmUubGF5ZXIub2wuZ2V0U291cmNlKCk7XHJcbiAgICBvbFNvdXJjZS5vbignY2hhbmdlJywgKGV2ZW50OiBPbEV2ZW50KSA9PiB7XHJcbiAgICAgIHRoaXMub25Tb3VyY2VDaGFuZ2VzKHN0b3JlKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU3RvcCB3YXRjaGluZyBmb3IgYSBzdG9yZSdzIE9MIHNvdXJjZSBjaGFuZ2VzXHJcbiAgICogQHBhcmFtIHN0b3JlIEZlYXR1cmUgc3RvcmVcclxuICAgKi9cclxuICBwcml2YXRlIHVud2F0Y2hTdG9yZShzdG9yZTogRmVhdHVyZVN0b3JlKSB7XHJcbiAgICBjb25zdCBrZXkgPSB0aGlzLnN0b3JlcyQkLmdldChzdG9yZSk7XHJcbiAgICBpZiAoa2V5ICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhpcy5zdG9yZXMkJC5kZWxldGUoc3RvcmUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU3RvcCB3YXRjaGluZyBmb3IgT0wgc291cmNlIGNoYW5nZXMgaW4gYWxsIHN0b3Jlcy5cclxuICAgKi9cclxuICBwcml2YXRlIHVud2F0Y2hBbGwoKSB7XHJcbiAgICBBcnJheS5mcm9tKHRoaXMuc3RvcmVzJCQuZW50cmllcygpKS5mb3JFYWNoKFxyXG4gICAgICAoZW50cmllczogW0ZlYXR1cmVTdG9yZSwgc3RyaW5nXSkgPT4ge31cclxuICAgICk7XHJcbiAgICB0aGlzLnN0b3JlcyQkLmNsZWFyKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBMb2FkIGZlYXR1cmVzIGZyb20gYW4gT0wgc291cmNlIGludG8gYSAgc3RvcmUgb3IgY2xlYXIgdGhlIHN0b3JlIGlmIHRoZSBzb3VyY2UgaXMgZW1wdHlcclxuICAgKiBAcGFyYW0gZmVhdHVyZXMgU3RvcmUgZmlsdGVyZWQgZmVhdHVyZXNcclxuICAgKiBAcGFyYW0gc3RvcmUgRmVhdHVyZSBzdG9yZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgb25Tb3VyY2VDaGFuZ2VzKHN0b3JlOiBGZWF0dXJlU3RvcmUpIHtcclxuICAgIGxldCBvbEZlYXR1cmVzID0gc3RvcmUubGF5ZXIub2wuZ2V0U291cmNlKCkuZ2V0RmVhdHVyZXMoKTtcclxuXHJcbiAgICBpZiAoc3RvcmUubGF5ZXIuZGF0YVNvdXJjZSBpbnN0YW5jZW9mIENsdXN0ZXJEYXRhU291cmNlKSB7XHJcbiAgICAgIG9sRmVhdHVyZXMgPSAob2xGZWF0dXJlcyBhcyBhbnkpLmZsYXRNYXAoKGNsdXN0ZXI6IGFueSkgPT5cclxuICAgICAgICBjbHVzdGVyLmdldCgnZmVhdHVyZXMnKVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgaWYgKG9sRmVhdHVyZXMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHN0b3JlLmNsZWFyKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBzdG9yZS5zZXRTdG9yZU9sRmVhdHVyZXMob2xGZWF0dXJlcyk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -133,4 +133,4 @@ export class FeatureStoreLoadingStrategy extends EntityStoreStrategy {
133
133
  }
134
134
  }
135
135
  }
136
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2ZlYXR1cmUvc2hhcmVkL3N0cmF0ZWdpZXMvbG9hZGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFJbkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBT2pEOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLE9BQU8sMkJBQTRCLFNBQVEsbUJBQW1CO0lBUTVDO0lBUHRCOztPQUVHO0lBQ0ssUUFBUSxHQUFHLElBQUksR0FBRyxFQUE4QixDQUFDO0lBRWpELE1BQU0sQ0FBZ0I7SUFFOUIsWUFBc0IsT0FBMkM7UUFDL0QsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBREssWUFBTyxHQUFQLE9BQU8sQ0FBb0M7UUFFL0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVEOzs7T0FHRztJQUNILFNBQVMsQ0FBQyxLQUFtQjtRQUMzQixLQUFLLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZCLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxJQUFJLEVBQUU7WUFDeEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUN4QjtJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSCxXQUFXLENBQUMsS0FBbUI7UUFDN0IsS0FBSyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6QixJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssSUFBSSxFQUFFO1lBQ3hCLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDMUI7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsU0FBUyxDQUFDLE1BQXFCO1FBQzdCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO0lBQ3ZCLENBQUM7SUFFRDs7O09BR0c7SUFDTyxVQUFVO1FBQ2xCLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBbUIsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFRDs7O09BR0c7SUFDTyxZQUFZO1FBQ3BCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ssVUFBVSxDQUFDLEtBQW1CO1FBQ3BDLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDNUIsT0FBTztTQUNSO1FBRUQsTUFBTSxZQUFZLEdBQUcsS0FBSyxDQUFDLElBQUk7YUFDNUIsSUFBSSxFQUFFO2FBQ04sU0FBUyxDQUFDLENBQUMsUUFBbUIsRUFBRSxFQUFFLENBQ2pDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQ3ZDLENBQUM7UUFDSixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVEOzs7T0FHRztJQUNLLFlBQVksQ0FBQyxLQUFtQjtRQUN0QyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5QyxJQUFJLFlBQVksS0FBSyxTQUFTLEVBQUU7WUFDOUIsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzdCO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0ssVUFBVTtRQUNoQixLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQ3pDLENBQUMsT0FBcUMsRUFBRSxFQUFFO1lBQ3hDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUMzQixDQUFDLENBQ0YsQ0FBQztRQUNGLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSyxnQkFBZ0IsQ0FBQyxRQUFtQixFQUFFLEtBQW1CO1FBQy9ELElBQUksUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDekIsS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDO1NBQ3BCO2FBQU07WUFDTCxLQUFLLENBQUMsZ0JBQWdCLENBQ3BCLFFBQVEsRUFDUixJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxFQUN4QixJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFDdEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQ3RCLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUMxQixDQUFDO1NBQ0g7SUFDSCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLFlBQVksQ0FBQyxLQUFtQjtRQUN0QyxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssU0FBUyxFQUFFO1lBQzdCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztTQUNwQjtRQUVELElBQUksS0FBSyxDQUFDLFFBQVEsS0FBSyxJQUFJLEVBQUU7WUFDM0Isc0VBQXNFO1lBQ3RFLE9BQU8sYUFBYSxDQUFDLE9BQU8sQ0FBQztTQUM5QjthQUFNLElBQUksS0FBSyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUN6QyxrRUFBa0U7WUFDbEUsT0FBTyxhQUFhLENBQUMsT0FBTyxDQUFDO1NBQzlCO2FBQU07WUFDTCwwQ0FBMEM7WUFDMUMsT0FBTyxhQUFhLENBQUMsSUFBSSxDQUFDO1NBQzNCO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW50aXR5U3RvcmVTdHJhdGVneSB9IGZyb20gJ0BpZ28yL2NvbW1vbic7XHJcblxyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7IEZlYXR1cmVNb3Rpb24gfSBmcm9tICcuLi9mZWF0dXJlLmVudW1zJztcclxuaW1wb3J0IHtcclxuICBGZWF0dXJlLFxyXG4gIEZlYXR1cmVTdG9yZUxvYWRpbmdTdHJhdGVneU9wdGlvbnNcclxufSBmcm9tICcuLi9mZWF0dXJlLmludGVyZmFjZXMnO1xyXG5pbXBvcnQgeyBGZWF0dXJlU3RvcmUgfSBmcm9tICcuLi9zdG9yZSc7XHJcblxyXG4vKipcclxuICogVGhpcyBzdHJhdGVneSBsb2FkcyBhIHN0b3JlJ3MgZmVhdHVyZXMgaW50byBpdCdzIGxheWVyIGNvdW50ZXJwYXJ0LlxyXG4gKiBUaGUgc3RvcmUgLT4gbGF5ZXIgYmluZGluZyBpcyBhIG9uZS13YXkgYmluZGluZy4gVGhhdCBtZWFucyBhbnkgZW50aXR5XHJcbiAqIGFkZGVkIHRvIHRoZSBzdG9yZSB3aWxsIGJlIGFkZGVkIHRvIHRoZSBsYXllciBidXQgdGhlIG9wcG9zaXRlIGlzIGZhbHNlLlxyXG4gKlxyXG4gKiBJbXBvcnRhbnQ6IFRoaXMgc3RyYXRlZ3kgb2JzZXJ2ZXMgZmlsdGVyZWQgZW50aXRpZXMsIG5vdCByYXcgZW50aXRpZXMuIFRoaXNcclxuICogaXMgbm90IGNvbmZpZ3VyYWJsZSB5ZXQuXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgRmVhdHVyZVN0b3JlTG9hZGluZ1N0cmF0ZWd5IGV4dGVuZHMgRW50aXR5U3RvcmVTdHJhdGVneSB7XHJcbiAgLyoqXHJcbiAgICogU3Vic2NyaXB0aW9uIHRvIHRoZSBzdG9yZSdzIGZlYXR1cmVzXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBzdG9yZXMkJCA9IG5ldyBNYXA8RmVhdHVyZVN0b3JlLCBTdWJzY3JpcHRpb24+KCk7XHJcblxyXG4gIHByaXZhdGUgbW90aW9uOiBGZWF0dXJlTW90aW9uO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgb3B0aW9uczogRmVhdHVyZVN0b3JlTG9hZGluZ1N0cmF0ZWd5T3B0aW9ucykge1xyXG4gICAgc3VwZXIob3B0aW9ucyk7XHJcbiAgICB0aGlzLnNldE1vdGlvbihvcHRpb25zLm1vdGlvbik7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBCaW5kIHRoaXMgc3RyYXRlZ3kgdG8gYSBzdG9yZSBhbmQgc3RhcnQgd2F0Y2hpbmcgZm9yIGVudGl0aWVzIGNoYW5nZXNcclxuICAgKiBAcGFyYW0gc3RvcmUgRmVhdHVyZSBzdG9yZVxyXG4gICAqL1xyXG4gIGJpbmRTdG9yZShzdG9yZTogRmVhdHVyZVN0b3JlKSB7XHJcbiAgICBzdXBlci5iaW5kU3RvcmUoc3RvcmUpO1xyXG4gICAgaWYgKHRoaXMuYWN0aXZlID09PSB0cnVlKSB7XHJcbiAgICAgIHRoaXMud2F0Y2hTdG9yZShzdG9yZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVbmJpbmQgdGhpcyBzdHJhdGVneSBmcm9tIGEgc3RvcmUgYW5kIHN0b3Agd2F0Y2hpbmcgZm9yIGVudGl0aWVzIGNoYW5nZXNcclxuICAgKiBAcGFyYW0gc3RvcmUgRmVhdHVyZSBzdG9yZVxyXG4gICAqL1xyXG4gIHVuYmluZFN0b3JlKHN0b3JlOiBGZWF0dXJlU3RvcmUpIHtcclxuICAgIHN1cGVyLnVuYmluZFN0b3JlKHN0b3JlKTtcclxuICAgIGlmICh0aGlzLmFjdGl2ZSA9PT0gdHJ1ZSkge1xyXG4gICAgICB0aGlzLnVud2F0Y2hTdG9yZShzdG9yZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEZWZpbmUgdGhlIG1vdGlvbiB0byBhcHBseSBvbiBsb2FkXHJcbiAgICogQHBhcmFtIG1vdGlvbiBGZWF0dXJlIG1vdGlvblxyXG4gICAqL1xyXG4gIHNldE1vdGlvbihtb3Rpb246IEZlYXR1cmVNb3Rpb24pIHtcclxuICAgIHRoaXMubW90aW9uID0gbW90aW9uO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU3RhcnQgd2F0Y2hpbmcgYWxsIHN0b3JlcyBhbHJlYWR5IGJvdW5kIHRvIHRoYXQgc3RyYXRlZ3kgYXQgb25jZS5cclxuICAgKiBAaW50ZXJuYWxcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgZG9BY3RpdmF0ZSgpIHtcclxuICAgIHRoaXMuc3RvcmVzLmZvckVhY2goKHN0b3JlOiBGZWF0dXJlU3RvcmUpID0+IHRoaXMud2F0Y2hTdG9yZShzdG9yZSkpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU3RvcCB3YXRjaGluZyBhbGwgc3RvcmVzIGJvdW5kIHRvIHRoYXQgc3RyYXRlZ3lcclxuICAgKiBAaW50ZXJuYWxcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgZG9EZWFjdGl2YXRlKCkge1xyXG4gICAgdGhpcy51bndhdGNoQWxsKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBXYXRjaCBmb3IgZW50aXRpZXMgY2hhbmdlcyBpbiBhIHN0b3JlLlxyXG4gICAqIEltcG9ydGFudDogTmV2ZXIgb2JzZXJ2ZSBhIHN0b3JlJ3Mgc29ydGVkIGVudGl0aWVzLiBJdCBtYWtlcyBubyBzZW5zZVxyXG4gICAqIHRvIGRpc3BsYXkgc29ydGVkIGVudGl0aWVzIChpbnN0ZWFkIG9mIHVuc29ydGVkKSBvbiBhIGxheWVyIGFuZCBpdFxyXG4gICAqIHdvdWxkIHBvdGVudGlhbGx5IHJlc3VsdCBpbiBhIGxvdCBvZiB1c2VsZXNzIGNvbXB1dGF0aW9uLlxyXG4gICAqIEBwYXJhbSBzdG9yZSBGZWF0dXJlIHN0b3JlXHJcbiAgICovXHJcbiAgcHJpdmF0ZSB3YXRjaFN0b3JlKHN0b3JlOiBGZWF0dXJlU3RvcmUpIHtcclxuICAgIGlmICh0aGlzLnN0b3JlcyQkLmhhcyhzdG9yZSkpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHN1YnNjcmlwdGlvbiA9IHN0b3JlLnZpZXdcclxuICAgICAgLmFsbCQoKVxyXG4gICAgICAuc3Vic2NyaWJlKChmZWF0dXJlczogRmVhdHVyZVtdKSA9PlxyXG4gICAgICAgIHRoaXMub25GZWF0dXJlc0NoYW5nZShmZWF0dXJlcywgc3RvcmUpXHJcbiAgICAgICk7XHJcbiAgICB0aGlzLnN0b3JlcyQkLnNldChzdG9yZSwgc3Vic2NyaXB0aW9uKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFN0b3Agd2F0Y2hpbmcgZm9yIGVudGl0aWVzIGNoYW5nZXMgaW4gYSBzdG9yZS5cclxuICAgKiBAcGFyYW0gc3RvcmUgRmVhdHVyZSBzdG9yZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgdW53YXRjaFN0b3JlKHN0b3JlOiBGZWF0dXJlU3RvcmUpIHtcclxuICAgIGNvbnN0IHN1YnNjcmlwdGlvbiA9IHRoaXMuc3RvcmVzJCQuZ2V0KHN0b3JlKTtcclxuICAgIGlmIChzdWJzY3JpcHRpb24gIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICBzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgICAgdGhpcy5zdG9yZXMkJC5kZWxldGUoc3RvcmUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU3RvcCB3YXRjaGluZyBmb3IgZW50aXRpZXMgY2hhbmdlcyBpbiBhbGwgc3RvcmVzLlxyXG4gICAqL1xyXG4gIHByaXZhdGUgdW53YXRjaEFsbCgpIHtcclxuICAgIEFycmF5LmZyb20odGhpcy5zdG9yZXMkJC5lbnRyaWVzKCkpLmZvckVhY2goXHJcbiAgICAgIChlbnRyaWVzOiBbRmVhdHVyZVN0b3JlLCBTdWJzY3JpcHRpb25dKSA9PiB7XHJcbiAgICAgICAgZW50cmllc1sxXS51bnN1YnNjcmliZSgpO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gICAgdGhpcy5zdG9yZXMkJC5jbGVhcigpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTG9hZCBmZWF0dXJlcyBpbnRvIGEgbGF5ZXIgb3IgY2xlYXIgdGhlIGxheWVyIGlmIHRoZSBhcnJheSBvZiBmZWF0dXJlcyBpcyBlbXB0eS5cclxuICAgKiBAcGFyYW0gZmVhdHVyZXMgU3RvcmUgZmlsdGVyZWQgZmVhdHVyZXNcclxuICAgKiBAcGFyYW0gc3RvcmUgRmVhdHVyZSBzdG9yZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgb25GZWF0dXJlc0NoYW5nZShmZWF0dXJlczogRmVhdHVyZVtdLCBzdG9yZTogRmVhdHVyZVN0b3JlKSB7XHJcbiAgICBpZiAoZmVhdHVyZXMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHN0b3JlLmNsZWFyTGF5ZXIoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHN0b3JlLnNldExheWVyRmVhdHVyZXMoXHJcbiAgICAgICAgZmVhdHVyZXMsXHJcbiAgICAgICAgdGhpcy5zZWxlY3RNb3Rpb24oc3RvcmUpLFxyXG4gICAgICAgIHRoaXMub3B0aW9ucy52aWV3U2NhbGUsXHJcbiAgICAgICAgdGhpcy5vcHRpb25zLmFyZWFSYXRpbyxcclxuICAgICAgICB0aGlzLm9wdGlvbnMuZ2V0RmVhdHVyZUlkXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZWxlY3RzIHRoZSBiZXN0IG1vdGlvblxyXG4gICAqIEBwYXJhbSBzdG9yZSBBIEZlYXR1cmVTdG9yZSB0byBhcHBseSB0aGUgbW90aW9uXHJcbiAgICogQHJldHVybnMgVGhlIG1vdGlvbiBzZWxlY3RlZFxyXG4gICAqL1xyXG4gIHByaXZhdGUgc2VsZWN0TW90aW9uKHN0b3JlOiBGZWF0dXJlU3RvcmUpIHtcclxuICAgIGlmICh0aGlzLm1vdGlvbiAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLm1vdGlvbjtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoc3RvcmUucHJpc3RpbmUgPT09IHRydWUpIHtcclxuICAgICAgLy8gSWYgZmVhdHVyZXMgaGF2ZSBqdXN0IGJlZW4gbG9hZGVkIGludG8gdGhlIHN0b3JlLCBtb3ZlL3pvb20gb24gdGhlbVxyXG4gICAgICByZXR1cm4gRmVhdHVyZU1vdGlvbi5EZWZhdWx0O1xyXG4gICAgfSBlbHNlIGlmIChzdG9yZS5jb3VudCA+IHN0b3JlLnZpZXcuY291bnQpIHtcclxuICAgICAgLy8gSWYgZmVhdHVyZXMgaGF2ZSBiZWVuIGZpbHRlcmVkLCBtb3ZlL3pvb20gb24gdGhlIHJlbWFpbmluZyBvbmVzXHJcbiAgICAgIHJldHVybiBGZWF0dXJlTW90aW9uLkRlZmF1bHQ7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAvLyBPbiBpbnNlcnQsIHVwZGF0ZSBvciBkZWxldGUsIGRvIG5vdGhpbmdcclxuICAgICAgcmV0dXJuIEZlYXR1cmVNb3Rpb24uTm9uZTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
136
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2ZlYXR1cmUvc2hhcmVkL3N0cmF0ZWdpZXMvbG9hZGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFJbkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBT2pEOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLE9BQU8sMkJBQTRCLFNBQVEsbUJBQW1CO0lBUTVDO0lBUHRCOztPQUVHO0lBQ0ssUUFBUSxHQUFHLElBQUksR0FBRyxFQUE4QixDQUFDO0lBRWpELE1BQU0sQ0FBZ0I7SUFFOUIsWUFBc0IsT0FBMkM7UUFDL0QsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBREssWUFBTyxHQUFQLE9BQU8sQ0FBb0M7UUFFL0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVEOzs7T0FHRztJQUNILFNBQVMsQ0FBQyxLQUFtQjtRQUMzQixLQUFLLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZCLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pCLENBQUM7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsV0FBVyxDQUFDLEtBQW1CO1FBQzdCLEtBQUssQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekIsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLElBQUksRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0IsQ0FBQztJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSCxTQUFTLENBQUMs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Q0FBQztJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVudGl0eVN0b3JlU3RyYXRlZ3kgfSBmcm9tICdAaWdvMi9jb21tb24nO1xyXG5cclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQgeyBGZWF0dXJlTW90aW9uIH0gZnJvbSAnLi4vZmVhdHVyZS5lbnVtcyc7XHJcbmltcG9ydCB7XHJcbiAgRmVhdHVyZSxcclxuICBGZWF0dXJlU3RvcmVMb2FkaW5nU3RyYXRlZ3lPcHRpb25zXHJcbn0gZnJvbSAnLi4vZmVhdHVyZS5pbnRlcmZhY2VzJztcclxuaW1wb3J0IHsgRmVhdHVyZVN0b3JlIH0gZnJvbSAnLi4vc3RvcmUnO1xyXG5cclxuLyoqXHJcbiAqIFRoaXMgc3RyYXRlZ3kgbG9hZHMgYSBzdG9yZSdzIGZlYXR1cmVzIGludG8gaXQncyBsYXllciBjb3VudGVycGFydC5cclxuICogVGhlIHN0b3JlIC0+IGxheWVyIGJpbmRpbmcgaXMgYSBvbmUtd2F5IGJpbmRpbmcuIFRoYXQgbWVhbnMgYW55IGVudGl0eVxyXG4gKiBhZGRlZCB0byB0aGUgc3RvcmUgd2lsbCBiZSBhZGRlZCB0byB0aGUgbGF5ZXIgYnV0IHRoZSBvcHBvc2l0ZSBpcyBmYWxzZS5cclxuICpcclxuICogSW1wb3J0YW50OiBUaGlzIHN0cmF0ZWd5IG9ic2VydmVzIGZpbHRlcmVkIGVudGl0aWVzLCBub3QgcmF3IGVudGl0aWVzLiBUaGlzXHJcbiAqIGlzIG5vdCBjb25maWd1cmFibGUgeWV0LlxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIEZlYXR1cmVTdG9yZUxvYWRpbmdTdHJhdGVneSBleHRlbmRzIEVudGl0eVN0b3JlU3RyYXRlZ3kge1xyXG4gIC8qKlxyXG4gICAqIFN1YnNjcmlwdGlvbiB0byB0aGUgc3RvcmUncyBmZWF0dXJlc1xyXG4gICAqL1xyXG4gIHByaXZhdGUgc3RvcmVzJCQgPSBuZXcgTWFwPEZlYXR1cmVTdG9yZSwgU3Vic2NyaXB0aW9uPigpO1xyXG5cclxuICBwcml2YXRlIG1vdGlvbjogRmVhdHVyZU1vdGlvbjtcclxuXHJcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIG9wdGlvbnM6IEZlYXR1cmVTdG9yZUxvYWRpbmdTdHJhdGVneU9wdGlvbnMpIHtcclxuICAgIHN1cGVyKG9wdGlvbnMpO1xyXG4gICAgdGhpcy5zZXRNb3Rpb24ob3B0aW9ucy5tb3Rpb24pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQmluZCB0aGlzIHN0cmF0ZWd5IHRvIGEgc3RvcmUgYW5kIHN0YXJ0IHdhdGNoaW5nIGZvciBlbnRpdGllcyBjaGFuZ2VzXHJcbiAgICogQHBhcmFtIHN0b3JlIEZlYXR1cmUgc3RvcmVcclxuICAgKi9cclxuICBiaW5kU3RvcmUoc3RvcmU6IEZlYXR1cmVTdG9yZSkge1xyXG4gICAgc3VwZXIuYmluZFN0b3JlKHN0b3JlKTtcclxuICAgIGlmICh0aGlzLmFjdGl2ZSA9PT0gdHJ1ZSkge1xyXG4gICAgICB0aGlzLndhdGNoU3RvcmUoc3RvcmUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVW5iaW5kIHRoaXMgc3RyYXRlZ3kgZnJvbSBhIHN0b3JlIGFuZCBzdG9wIHdhdGNoaW5nIGZvciBlbnRpdGllcyBjaGFuZ2VzXHJcbiAgICogQHBhcmFtIHN0b3JlIEZlYXR1cmUgc3RvcmVcclxuICAgKi9cclxuICB1bmJpbmRTdG9yZShzdG9yZTogRmVhdHVyZVN0b3JlKSB7XHJcbiAgICBzdXBlci51bmJpbmRTdG9yZShzdG9yZSk7XHJcbiAgICBpZiAodGhpcy5hY3RpdmUgPT09IHRydWUpIHtcclxuICAgICAgdGhpcy51bndhdGNoU3RvcmUoc3RvcmUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGVmaW5lIHRoZSBtb3Rpb24gdG8gYXBwbHkgb24gbG9hZFxyXG4gICAqIEBwYXJhbSBtb3Rpb24gRmVhdHVyZSBtb3Rpb25cclxuICAgKi9cclxuICBzZXRNb3Rpb24obW90aW9uOiBGZWF0dXJlTW90aW9uKSB7XHJcbiAgICB0aGlzLm1vdGlvbiA9IG1vdGlvbjtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFN0YXJ0IHdhdGNoaW5nIGFsbCBzdG9yZXMgYWxyZWFkeSBib3VuZCB0byB0aGF0IHN0cmF0ZWd5IGF0IG9uY2UuXHJcbiAgICogQGludGVybmFsXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIGRvQWN0aXZhdGUoKSB7XHJcbiAgICB0aGlzLnN0b3Jlcy5mb3JFYWNoKChzdG9yZTogRmVhdHVyZVN0b3JlKSA9PiB0aGlzLndhdGNoU3RvcmUoc3RvcmUpKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFN0b3Agd2F0Y2hpbmcgYWxsIHN0b3JlcyBib3VuZCB0byB0aGF0IHN0cmF0ZWd5XHJcbiAgICogQGludGVybmFsXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIGRvRGVhY3RpdmF0ZSgpIHtcclxuICAgIHRoaXMudW53YXRjaEFsbCgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogV2F0Y2ggZm9yIGVudGl0aWVzIGNoYW5nZXMgaW4gYSBzdG9yZS5cclxuICAgKiBJbXBvcnRhbnQ6IE5ldmVyIG9ic2VydmUgYSBzdG9yZSdzIHNvcnRlZCBlbnRpdGllcy4gSXQgbWFrZXMgbm8gc2Vuc2VcclxuICAgKiB0byBkaXNwbGF5IHNvcnRlZCBlbnRpdGllcyAoaW5zdGVhZCBvZiB1bnNvcnRlZCkgb24gYSBsYXllciBhbmQgaXRcclxuICAgKiB3b3VsZCBwb3RlbnRpYWxseSByZXN1bHQgaW4gYSBsb3Qgb2YgdXNlbGVzcyBjb21wdXRhdGlvbi5cclxuICAgKiBAcGFyYW0gc3RvcmUgRmVhdHVyZSBzdG9yZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgd2F0Y2hTdG9yZShzdG9yZTogRmVhdHVyZVN0b3JlKSB7XHJcbiAgICBpZiAodGhpcy5zdG9yZXMkJC5oYXMoc3RvcmUpKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBzdWJzY3JpcHRpb24gPSBzdG9yZS52aWV3XHJcbiAgICAgIC5hbGwkKClcclxuICAgICAgLnN1YnNjcmliZSgoZmVhdHVyZXM6IEZlYXR1cmVbXSkgPT5cclxuICAgICAgICB0aGlzLm9uRmVhdHVyZXNDaGFuZ2UoZmVhdHVyZXMsIHN0b3JlKVxyXG4gICAgICApO1xyXG4gICAgdGhpcy5zdG9yZXMkJC5zZXQoc3RvcmUsIHN1YnNjcmlwdGlvbik7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTdG9wIHdhdGNoaW5nIGZvciBlbnRpdGllcyBjaGFuZ2VzIGluIGEgc3RvcmUuXHJcbiAgICogQHBhcmFtIHN0b3JlIEZlYXR1cmUgc3RvcmVcclxuICAgKi9cclxuICBwcml2YXRlIHVud2F0Y2hTdG9yZShzdG9yZTogRmVhdHVyZVN0b3JlKSB7XHJcbiAgICBjb25zdCBzdWJzY3JpcHRpb24gPSB0aGlzLnN0b3JlcyQkLmdldChzdG9yZSk7XHJcbiAgICBpZiAoc3Vic2NyaXB0aW9uICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgIHRoaXMuc3RvcmVzJCQuZGVsZXRlKHN0b3JlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFN0b3Agd2F0Y2hpbmcgZm9yIGVudGl0aWVzIGNoYW5nZXMgaW4gYWxsIHN0b3Jlcy5cclxuICAgKi9cclxuICBwcml2YXRlIHVud2F0Y2hBbGwoKSB7XHJcbiAgICBBcnJheS5mcm9tKHRoaXMuc3RvcmVzJCQuZW50cmllcygpKS5mb3JFYWNoKFxyXG4gICAgICAoZW50cmllczogW0ZlYXR1cmVTdG9yZSwgU3Vic2NyaXB0aW9uXSkgPT4ge1xyXG4gICAgICAgIGVudHJpZXNbMV0udW5zdWJzY3JpYmUoKTtcclxuICAgICAgfVxyXG4gICAgKTtcclxuICAgIHRoaXMuc3RvcmVzJCQuY2xlYXIoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIExvYWQgZmVhdHVyZXMgaW50byBhIGxheWVyIG9yIGNsZWFyIHRoZSBsYXllciBpZiB0aGUgYXJyYXkgb2YgZmVhdHVyZXMgaXMgZW1wdHkuXHJcbiAgICogQHBhcmFtIGZlYXR1cmVzIFN0b3JlIGZpbHRlcmVkIGZlYXR1cmVzXHJcbiAgICogQHBhcmFtIHN0b3JlIEZlYXR1cmUgc3RvcmVcclxuICAgKi9cclxuICBwcml2YXRlIG9uRmVhdHVyZXNDaGFuZ2UoZmVhdHVyZXM6IEZlYXR1cmVbXSwgc3RvcmU6IEZlYXR1cmVTdG9yZSkge1xyXG4gICAgaWYgKGZlYXR1cmVzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICBzdG9yZS5jbGVhckxheWVyKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBzdG9yZS5zZXRMYXllckZlYXR1cmVzKFxyXG4gICAgICAgIGZlYXR1cmVzLFxyXG4gICAgICAgIHRoaXMuc2VsZWN0TW90aW9uKHN0b3JlKSxcclxuICAgICAgICB0aGlzLm9wdGlvbnMudmlld1NjYWxlLFxyXG4gICAgICAgIHRoaXMub3B0aW9ucy5hcmVhUmF0aW8sXHJcbiAgICAgICAgdGhpcy5vcHRpb25zLmdldEZlYXR1cmVJZFxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2VsZWN0cyB0aGUgYmVzdCBtb3Rpb25cclxuICAgKiBAcGFyYW0gc3RvcmUgQSBGZWF0dXJlU3RvcmUgdG8gYXBwbHkgdGhlIG1vdGlvblxyXG4gICAqIEByZXR1cm5zIFRoZSBtb3Rpb24gc2VsZWN0ZWRcclxuICAgKi9cclxuICBwcml2YXRlIHNlbGVjdE1vdGlvbihzdG9yZTogRmVhdHVyZVN0b3JlKSB7XHJcbiAgICBpZiAodGhpcy5tb3Rpb24gIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5tb3Rpb247XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHN0b3JlLnByaXN0aW5lID09PSB0cnVlKSB7XHJcbiAgICAgIC8vIElmIGZlYXR1cmVzIGhhdmUganVzdCBiZWVuIGxvYWRlZCBpbnRvIHRoZSBzdG9yZSwgbW92ZS96b29tIG9uIHRoZW1cclxuICAgICAgcmV0dXJuIEZlYXR1cmVNb3Rpb24uRGVmYXVsdDtcclxuICAgIH0gZWxzZSBpZiAoc3RvcmUuY291bnQgPiBzdG9yZS52aWV3LmNvdW50KSB7XHJcbiAgICAgIC8vIElmIGZlYXR1cmVzIGhhdmUgYmVlbiBmaWx0ZXJlZCwgbW92ZS96b29tIG9uIHRoZSByZW1haW5pbmcgb25lc1xyXG4gICAgICByZXR1cm4gRmVhdHVyZU1vdGlvbi5EZWZhdWx0O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLy8gT24gaW5zZXJ0LCB1cGRhdGUgb3IgZGVsZXRlLCBkbyBub3RoaW5nXHJcbiAgICAgIHJldHVybiBGZWF0dXJlTW90aW9uLk5vbmU7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,5 +1,5 @@
1
1
  import { EntityStoreStrategy } from '@igo2/common';
2
- import { Document } from 'flexsearch';
2
+ import { Document as FlexSearchDocument } from 'flexsearch';
3
3
  import { skipWhile } from 'rxjs/operators';
4
4
  /**
5
5
  *
@@ -50,7 +50,7 @@ export class FeatureStoreSearchIndexStrategy extends EntityStoreStrategy {
50
50
  this.unwatchAll();
51
51
  }
52
52
  initStoreSearchIndex(store) {
53
- store.searchDocument = new Document({ tokenize: 'full' });
53
+ store.searchDocument = new FlexSearchDocument({ tokenize: 'full' });
54
54
  }
55
55
  /**
56
56
  * Watch for a store's entities changes
@@ -144,7 +144,7 @@ export class FeatureStoreSearchIndexStrategy extends EntityStoreStrategy {
144
144
  this.initStoreSearchIndex(store);
145
145
  }
146
146
  else {
147
- store.searchDocument = new Document({
147
+ store.searchDocument = new FlexSearchDocument({
148
148
  document: {
149
149
  id: 'igoSearchID',
150
150
  index: contentToIndex
@@ -156,4 +156,4 @@ export class FeatureStoreSearchIndexStrategy extends EntityStoreStrategy {
156
156
  }
157
157
  }
158
158
  }
159
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvZmVhdHVyZS9zaGFyZWQvc3RyYXRlZ2llcy9zZWFyY2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRW5ELE9BQU8sRUFBRSxRQUFRLEVBQW1CLE1BQU0sWUFBWSxDQUFDO0FBQ3ZELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUszQzs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sK0JBQWdDLFNBQVEsbUJBQW1CO0lBTWhEO0lBTHRCOztPQUVHO0lBQ0ssUUFBUSxHQUFHLElBQUksR0FBRyxFQUF3QixDQUFDO0lBRW5ELFlBQXNCLE9BQStDO1FBQ25FLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQURLLFlBQU8sR0FBUCxPQUFPLENBQXdDO0lBRXJFLENBQUM7SUFFRDs7O09BR0c7SUFDSCxTQUFTLENBQUMsS0FBbUI7UUFDM0IsS0FBSyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QixJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssSUFBSSxFQUFFO1lBQ3hCLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDeEI7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsV0FBVyxDQUFDLEtBQW1CO1FBQzdCLEtBQUssQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekIsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLElBQUksRUFBRTtZQUN4QixJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzFCO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNPLFVBQVU7UUFDbEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFtQixFQUFFLEVBQUUs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LENBQUM7U0FDSjtJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVudGl0eVN0b3JlU3RyYXRlZ3kgfSBmcm9tICdAaWdvMi9jb21tb24nO1xyXG5cclxuaW1wb3J0IHsgRG9jdW1lbnQsIERvY3VtZW50T3B0aW9ucyB9IGZyb20gJ2ZsZXhzZWFyY2gnO1xyXG5pbXBvcnQgeyBza2lwV2hpbGUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQgeyBGZWF0dXJlU3RvcmVTZWFyY2hJbmRleFN0cmF0ZWd5T3B0aW9ucyB9IGZyb20gJy4uL2ZlYXR1cmUuaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IEZlYXR1cmVTdG9yZSB9IGZyb20gJy4uL3N0b3JlJztcclxuXHJcbi8qKlxyXG4gKlxyXG4gKiBUaGlzIHN0cmF0ZWd5IGxvYWRzIGEgbGF5ZXIncyBmZWF0dXJlcydzIHByb3BlcnRpZXMgaW50byBhIHNlYXJjaGFibGUgaW5kZXguXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgRmVhdHVyZVN0b3JlU2VhcmNoSW5kZXhTdHJhdGVneSBleHRlbmRzIEVudGl0eVN0b3JlU3RyYXRlZ3kge1xyXG4gIC8qKlxyXG4gICAqIFN1YnNjcmlwdGlvbiB0byB0aGUgc3RvcmUncyBPTCBzb3VyY2UgY2hhbmdlc1xyXG4gICAqL1xyXG4gIHByaXZhdGUgc3RvcmVzJCQgPSBuZXcgTWFwPEZlYXR1cmVTdG9yZSwgc3RyaW5nPigpO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgb3B0aW9uczogRmVhdHVyZVN0b3JlU2VhcmNoSW5kZXhTdHJhdGVneU9wdGlvbnMpIHtcclxuICAgIHN1cGVyKG9wdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQmluZCB0aGlzIHN0cmF0ZWd5IHRvIGEgc3RvcmUgYW5kIHN0YXJ0IHdhdGNoaW5nIGZvciBlbnRpdGllcyBjaGFuZ2VzXHJcbiAgICogQHBhcmFtIHN0b3JlIEZlYXR1cmUgc3RvcmVcclxuICAgKi9cclxuICBiaW5kU3RvcmUoc3RvcmU6IEZlYXR1cmVTdG9yZSkge1xyXG4gICAgc3VwZXIuYmluZFN0b3JlKHN0b3JlKTtcclxuICAgIGlmICh0aGlzLmFjdGl2ZSA9PT0gdHJ1ZSkge1xyXG4gICAgICB0aGlzLndhdGNoU3RvcmUoc3RvcmUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVW5iaW5kIHRoaXMgc3RyYXRlZ3kgZnJvbSBhIHN0b3JlIGFuZCBzdG9wIHdhdGNoaW5nIGZvciBlbnRpdGllcyBjaGFuZ2VzXHJcbiAgICogQHBhcmFtIHN0b3JlIEZlYXR1cmUgc3RvcmVcclxuICAgKi9cclxuICB1bmJpbmRTdG9yZShzdG9yZTogRmVhdHVyZVN0b3JlKSB7XHJcbiAgICBzdXBlci51bmJpbmRTdG9yZShzdG9yZSk7XHJcbiAgICBpZiAodGhpcy5hY3RpdmUgPT09IHRydWUpIHtcclxuICAgICAgdGhpcy51bndhdGNoU3RvcmUoc3RvcmUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU3RhcnQgd2F0Y2hpbmcgYWxsIHN0b3JlcyBhbHJlYWR5IGJvdW5kIHRvIHRoYXQgc3RyYXRlZ3kgYXQgb25jZS5cclxuICAgKiBAaW50ZXJuYWxcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgZG9BY3RpdmF0ZSgpIHtcclxuICAgIHRoaXMuc3RvcmVzLmZvckVhY2goKHN0b3JlOiBGZWF0dXJlU3RvcmUpID0+IHRoaXMud2F0Y2hTdG9yZShzdG9yZSkpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU3RvcCB3YXRjaGluZyBhbGwgc3RvcmVzIGJvdW5kIHRvIHRoYXQgc3RyYXRlZ3lcclxuICAgKiBAaW50ZXJuYWxcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgZG9EZWFjdGl2YXRlKCkge1xyXG4gICAgdGhpcy51bndhdGNoQWxsKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGluaXRTdG9yZVNlYXJjaEluZGV4KHN0b3JlKSB7XHJcbiAgICBzdG9yZS5zZWFyY2hEb2N1bWVudCA9IG5ldyBEb2N1bWVudCh7IHRva2VuaXplOiAnZnVsbCcgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBXYXRjaCBmb3IgYSBzdG9yZSdzIGVudGl0aWVzIGNoYW5nZXNcclxuICAgKiBAcGFyYW0gc3RvcmUgRmVhdHVyZSBzdG9yZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgd2F0Y2hTdG9yZShzdG9yZTogRmVhdHVyZVN0b3JlKSB7XHJcbiAgICBpZiAodGhpcy5zdG9yZXMkJC5oYXMoc3RvcmUpKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuaW5pdFN0b3JlU2VhcmNoSW5kZXgoc3RvcmUpO1xyXG5cclxuICAgIHN0b3JlLmVudGl0aWVzJFxyXG4gICAgICAucGlwZShza2lwV2hpbGUoKGUpID0+ICFlLmxlbmd0aCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5vbkVudGl0aWVzQ2hhbmdlcyhzdG9yZSkpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU3RvcCB3YXRjaGluZyBmb3IgYSBzdG9yZSdzIGVudGl0aWVzIGNoYW5nZXNcclxuICAgKiBAcGFyYW0gc3RvcmUgRmVhdHVyZSBzdG9yZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgdW53YXRjaFN0b3JlKHN0b3JlOiBGZWF0dXJlU3RvcmUpIHtcclxuICAgIGNvbnN0IGtleSA9IHRoaXMuc3RvcmVzJCQuZ2V0KHN0b3JlKTtcclxuICAgIGlmIChrZXkgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICBzdG9yZS5zZWFyY2hEb2N1bWVudCA9IHVuZGVmaW5lZDtcclxuICAgICAgdGhpcy5zdG9yZXMkJC5kZWxldGUoc3RvcmUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU3RvcCB3YXRjaGluZyBmb3IgT0wgc291cmNlIGNoYW5nZXMgaW4gYWxsIHN0b3Jlcy5cclxuICAgKi9cclxuICBwcml2YXRlIHVud2F0Y2hBbGwoKSB7XHJcbiAgICBBcnJheS5mcm9tKHRoaXMuc3RvcmVzJCQuZW50cmllcygpKS5mb3JFYWNoKFxyXG4gICAgICAoZW50cmllczogW0ZlYXR1cmVTdG9yZSwgc3RyaW5nXSkgPT4ge31cclxuICAgICk7XHJcbiAgICB0aGlzLnN0b3JlcyQkLmNsZWFyKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNYWludGFpbiBzZWFyY2FoYmxlIGluZGV4IGZvciBldmVyeSBsb2FkZWQgZW50aXRpZXNcclxuICAgKiBAcGFyYW0gc3RvcmUgRmVhdHVyZSBzdG9yZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgb25FbnRpdGllc0NoYW5nZXMoc3RvcmU6IEZlYXR1cmVTdG9yZSkge1xyXG4gICAgY29uc3QgcmF0aW8gPSB0aGlzLm9wdGlvbnMucGVyY2VudERpc3RpbmN0VmFsdWVSYXRpbyB8fCAyO1xyXG4gICAgY29uc3QgZmVhdHVyZXNQcm9wZXJ0aWVzID0gW107XHJcbiAgICBzdG9yZS5pbmRleC5mb3JFYWNoKCh2YWx1ZSwga2V5KSA9PiB7XHJcbiAgICAgIGNvbnN0IGZwID0gdmFsdWUucHJvcGVydGllcztcclxuICAgICAgZnAuaWdvU2VhcmNoSUQgPSBrZXk7XHJcbiAgICAgIGZlYXR1cmVzUHJvcGVydGllcy5wdXNoKGZwKTtcclxuICAgIH0pO1xyXG4gICAgY29uc3QgdG9JbmRleCA9IFtdO1xyXG4gICAgbGV0IGNvbHVtbnNUb05vdEluZGV4ID0gW107XHJcbiAgICBsZXQgY29udGVudFRvSW5kZXggPSBbXTtcclxuICAgIGlmICh0aGlzLm9wdGlvbnMuc291cmNlRmllbGRzKSB7XHJcbiAgICAgIGNvbHVtbnNUb05vdEluZGV4ID0gdGhpcy5vcHRpb25zLnNvdXJjZUZpZWxkcy5maWx0ZXIoXHJcbiAgICAgICAgKHNmKSA9PiAhc2Yuc2VhcmNoSW5kZXg/LmVuYWJsZWRcclxuICAgICAgKTtcclxuICAgICAgY29udGVudFRvSW5kZXggPSB0aGlzLm9wdGlvbnMuc291cmNlRmllbGRzXHJcbiAgICAgICAgLmZpbHRlcigoc2YpID0+IHNmLnNlYXJjaEluZGV4Py5lbmFibGVkKVxyXG4gICAgICAgIC5tYXAoKHNmMikgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oXHJcbiAgICAgICAgICAgIHt9LFxyXG4gICAgICAgICAgICB7IGZpZWxkOiBzZjIubmFtZSwgdG9rZW5pemU6ICdmdWxsJyB9LFxyXG4gICAgICAgICAgICBzZjIuc2VhcmNoSW5kZXhcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAoZmVhdHVyZXNQcm9wZXJ0aWVzLmxlbmd0aCkge1xyXG4gICAgICAgIC8vIFRISVMgTUVUSE9EIENPTVBVVEUgQ09MVU1OIERJU1RJTkNUIFZBTFVFIFRPIEZJTFRFUiBXSElDSCBDT0xVTU4gVE8gSU5ERVggQkFTRUQgT04gQSBSQVRJTyBvciBkaXNjYXJkIGZsb2F0IGNvbHVtbnNcclxuICAgICAgICBjb25zdCBjb2x1bW5zID0gT2JqZWN0LmtleXMoZmVhdHVyZXNQcm9wZXJ0aWVzWzBdKTtcclxuICAgICAgICBjb25zdCBjb2x1bW5zVG9JbmRleCA9IFtdO1xyXG4gICAgICAgIGNvbHVtbnNUb05vdEluZGV4ID0gY29sdW1uc1xyXG4gICAgICAgICAgLm1hcCgoY29sdW1uKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGRpc3RpbmN0VmFsdWVzID0gW1xyXG4gICAgICAgICAgICAgIC4uLm5ldyBTZXQoZmVhdHVyZXNQcm9wZXJ0aWVzLm1hcCgoaXRlbSkgPT4gaXRlbVtjb2x1bW5dKSlcclxuICAgICAgICAgICAgXTtcclxuICAgICAgICAgICAgLy8gaWRlbnRpZnkgY29sdW1uIHRvIG5vdCBpbmRleCBiYXNlZCBvbiBhIHJhdGlvIGRpc3RpbmN0VmFsdWVzL25iIG9mIGZlYXR1cmVzIE9SIGRpc2NhcnQgZXhjbHVzaXZlIGZsb2F0IGNvbHVtbiAoZXg6IGxhdCwgbG9uZylcclxuICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgIChkaXN0aW5jdFZhbHVlcy5sZW5ndGggLyBmZWF0dXJlc1Byb3BlcnRpZXMubGVuZ3RoKSAqIDEwMCA8PVxyXG4gICAgICAgICAgICAgICAgcmF0aW8gfHxcclxuICAgICAgICAgICAgICBkaXN0aW5jdFZhbHVlcy5ldmVyeSgobikgPT4gTnVtYmVyKG4pID09PSBuICYmIG4gJSAxICE9PSAwKVxyXG4gICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICBjb2x1bW5zVG9Ob3RJbmRleC5wdXNoKGNvbHVtbik7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgY29sdW1uc1RvSW5kZXgucHVzaChjb2x1bW4pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICAgLmZpbHRlcigoZikgPT4gZik7XHJcbiAgICAgICAgY29uc3Qga2V5c1RvSW5kZXggPSBjb2x1bW5zVG9JbmRleC5maWx0ZXIoKGYpID0+IGYgIT09ICdpZ29TZWFyY2hJRCcpO1xyXG4gICAgICAgIGNvbnRlbnRUb0luZGV4ID0ga2V5c1RvSW5kZXgubWFwKChrZXkpID0+IHtcclxuICAgICAgICAgIHJldHVybiB7IGZpZWxkOiBrZXksIHRva2VuaXplOiAnZnVsbCcgfTtcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgc3RvcmUuaW5kZXguZm9yRWFjaCgodmFsdWUsIGtleSkgPT4ge1xyXG4gICAgICBjb25zdCBwcm9wZXJ0aWVzVG9JbmRleCA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodmFsdWUucHJvcGVydGllcykpO1xyXG4gICAgICBjb2x1bW5zVG9Ob3RJbmRleC5tYXAoKGMpID0+IGRlbGV0ZSBwcm9wZXJ0aWVzVG9JbmRleFtjXSk7XHJcbiAgICAgIGlmIChPYmplY3Qua2V5cyhwcm9wZXJ0aWVzVG9JbmRleCkubGVuZ3RoKSB7XHJcbiAgICAgICAgdG9JbmRleC5wdXNoKHByb3BlcnRpZXNUb0luZGV4KTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgaWYgKHRvSW5kZXgubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHRoaXMuaW5pdFN0b3JlU2VhcmNoSW5kZXgoc3RvcmUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgc3RvcmUuc2VhcmNoRG9jdW1lbnQgPSBuZXcgRG9jdW1lbnQoe1xyXG4gICAgICAgIGRvY3VtZW50OiB7XHJcbiAgICAgICAgICBpZDogJ2lnb1NlYXJjaElEJyxcclxuICAgICAgICAgIGluZGV4OiBjb250ZW50VG9JbmRleFxyXG4gICAgICAgIH0gYXMgRG9jdW1lbnRPcHRpb25zPGFueT5cclxuICAgICAgfSk7XHJcbiAgICAgIHRvSW5kZXgubWFwKChpKSA9PiB7XHJcbiAgICAgICAgc3RvcmUuc2VhcmNoRG9jdW1lbnQuYWRkKGkuaWdvU2VhcmNoSUQsIGkpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
159
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvZmVhdHVyZS9zaGFyZWQvc3RyYXRlZ2llcy9zZWFyY2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRW5ELE9BQU8sRUFBbUIsUUFBUSxJQUFJLGtCQUFrQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzdFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUszQzs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sK0JBQWdDLFNBQVEsbUJBQW1CO0lBTWhEO0lBTHRCOztPQUVHO0lBQ0ssUUFBUSxHQUFHLElBQUksR0FBRyxFQUF3QixDQUFDO0lBRW5ELFlBQXNCLE9BQStDO1FBQ25FLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQURLLFlBQU8sR0FBUCxPQUFPLENBQXdDO0lBRXJFLENBQUM7SUFFRDs7O09BR0c7SUFDSCxTQUFTLENBQUMsS0FBbUI7UUFDM0IsS0FBSyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QixJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6QixDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNILFdBQVcsQ0FBQyxLQUFtQjtRQUM3QixLQUFLLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pCLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNCLENBQUM7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ08sVUFBVTtRQUNsQixJQUFJLENBQUMsTUFBTSxDQUFD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QUNILE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtnQkFDaEIsS0FBSyxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUM3QyxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbnRpdHlTdG9yZVN0cmF0ZWd5IH0gZnJvbSAnQGlnbzIvY29tbW9uJztcclxuXHJcbmltcG9ydCB7IERvY3VtZW50T3B0aW9ucywgRG9jdW1lbnQgYXMgRmxleFNlYXJjaERvY3VtZW50IH0gZnJvbSAnZmxleHNlYXJjaCc7XHJcbmltcG9ydCB7IHNraXBXaGlsZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmltcG9ydCB7IEZlYXR1cmVTdG9yZVNlYXJjaEluZGV4U3RyYXRlZ3lPcHRpb25zIH0gZnJvbSAnLi4vZmVhdHVyZS5pbnRlcmZhY2VzJztcclxuaW1wb3J0IHsgRmVhdHVyZVN0b3JlIH0gZnJvbSAnLi4vc3RvcmUnO1xyXG5cclxuLyoqXHJcbiAqXHJcbiAqIFRoaXMgc3RyYXRlZ3kgbG9hZHMgYSBsYXllcidzIGZlYXR1cmVzJ3MgcHJvcGVydGllcyBpbnRvIGEgc2VhcmNoYWJsZSBpbmRleC5cclxuICovXHJcbmV4cG9ydCBjbGFzcyBGZWF0dXJlU3RvcmVTZWFyY2hJbmRleFN0cmF0ZWd5IGV4dGVuZHMgRW50aXR5U3RvcmVTdHJhdGVneSB7XHJcbiAgLyoqXHJcbiAgICogU3Vic2NyaXB0aW9uIHRvIHRoZSBzdG9yZSdzIE9MIHNvdXJjZSBjaGFuZ2VzXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBzdG9yZXMkJCA9IG5ldyBNYXA8RmVhdHVyZVN0b3JlLCBzdHJpbmc+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBvcHRpb25zOiBGZWF0dXJlU3RvcmVTZWFyY2hJbmRleFN0cmF0ZWd5T3B0aW9ucykge1xyXG4gICAgc3VwZXIob3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBCaW5kIHRoaXMgc3RyYXRlZ3kgdG8gYSBzdG9yZSBhbmQgc3RhcnQgd2F0Y2hpbmcgZm9yIGVudGl0aWVzIGNoYW5nZXNcclxuICAgKiBAcGFyYW0gc3RvcmUgRmVhdHVyZSBzdG9yZVxyXG4gICAqL1xyXG4gIGJpbmRTdG9yZShzdG9yZTogRmVhdHVyZVN0b3JlKSB7XHJcbiAgICBzdXBlci5iaW5kU3RvcmUoc3RvcmUpO1xyXG4gICAgaWYgKHRoaXMuYWN0aXZlID09PSB0cnVlKSB7XHJcbiAgICAgIHRoaXMud2F0Y2hTdG9yZShzdG9yZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVbmJpbmQgdGhpcyBzdHJhdGVneSBmcm9tIGEgc3RvcmUgYW5kIHN0b3Agd2F0Y2hpbmcgZm9yIGVudGl0aWVzIGNoYW5nZXNcclxuICAgKiBAcGFyYW0gc3RvcmUgRmVhdHVyZSBzdG9yZVxyXG4gICAqL1xyXG4gIHVuYmluZFN0b3JlKHN0b3JlOiBGZWF0dXJlU3RvcmUpIHtcclxuICAgIHN1cGVyLnVuYmluZFN0b3JlKHN0b3JlKTtcclxuICAgIGlmICh0aGlzLmFjdGl2ZSA9PT0gdHJ1ZSkge1xyXG4gICAgICB0aGlzLnVud2F0Y2hTdG9yZShzdG9yZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTdGFydCB3YXRjaGluZyBhbGwgc3RvcmVzIGFscmVhZHkgYm91bmQgdG8gdGhhdCBzdHJhdGVneSBhdCBvbmNlLlxyXG4gICAqIEBpbnRlcm5hbFxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBkb0FjdGl2YXRlKCkge1xyXG4gICAgdGhpcy5zdG9yZXMuZm9yRWFjaCgoc3RvcmU6IEZlYXR1cmVTdG9yZSkgPT4gdGhpcy53YXRjaFN0b3JlKHN0b3JlKSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTdG9wIHdhdGNoaW5nIGFsbCBzdG9yZXMgYm91bmQgdG8gdGhhdCBzdHJhdGVneVxyXG4gICAqIEBpbnRlcm5hbFxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBkb0RlYWN0aXZhdGUoKSB7XHJcbiAgICB0aGlzLnVud2F0Y2hBbGwoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaW5pdFN0b3JlU2VhcmNoSW5kZXgoc3RvcmUpIHtcclxuICAgIHN0b3JlLnNlYXJjaERvY3VtZW50ID0gbmV3IEZsZXhTZWFyY2hEb2N1bWVudCh7IHRva2VuaXplOiAnZnVsbCcgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBXYXRjaCBmb3IgYSBzdG9yZSdzIGVudGl0aWVzIGNoYW5nZXNcclxuICAgKiBAcGFyYW0gc3RvcmUgRmVhdHVyZSBzdG9yZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgd2F0Y2hTdG9yZShzdG9yZTogRmVhdHVyZVN0b3JlKSB7XHJcbiAgICBpZiAodGhpcy5zdG9yZXMkJC5oYXMoc3RvcmUpKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuaW5pdFN0b3JlU2VhcmNoSW5kZXgoc3RvcmUpO1xyXG5cclxuICAgIHN0b3JlLmVudGl0aWVzJFxyXG4gICAgICAucGlwZShza2lwV2hpbGUoKGUpID0+ICFlLmxlbmd0aCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5vbkVudGl0aWVzQ2hhbmdlcyhzdG9yZSkpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU3RvcCB3YXRjaGluZyBmb3IgYSBzdG9yZSdzIGVudGl0aWVzIGNoYW5nZXNcclxuICAgKiBAcGFyYW0gc3RvcmUgRmVhdHVyZSBzdG9yZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgdW53YXRjaFN0b3JlKHN0b3JlOiBGZWF0dXJlU3RvcmUpIHtcclxuICAgIGNvbnN0IGtleSA9IHRoaXMuc3RvcmVzJCQuZ2V0KHN0b3JlKTtcclxuICAgIGlmIChrZXkgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICBzdG9yZS5zZWFyY2hEb2N1bWVudCA9IHVuZGVmaW5lZDtcclxuICAgICAgdGhpcy5zdG9yZXMkJC5kZWxldGUoc3RvcmUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU3RvcCB3YXRjaGluZyBmb3IgT0wgc291cmNlIGNoYW5nZXMgaW4gYWxsIHN0b3Jlcy5cclxuICAgKi9cclxuICBwcml2YXRlIHVud2F0Y2hBbGwoKSB7XHJcbiAgICBBcnJheS5mcm9tKHRoaXMuc3RvcmVzJCQuZW50cmllcygpKS5mb3JFYWNoKFxyXG4gICAgICAoZW50cmllczogW0ZlYXR1cmVTdG9yZSwgc3RyaW5nXSkgPT4ge31cclxuICAgICk7XHJcbiAgICB0aGlzLnN0b3JlcyQkLmNsZWFyKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNYWludGFpbiBzZWFyY2FoYmxlIGluZGV4IGZvciBldmVyeSBsb2FkZWQgZW50aXRpZXNcclxuICAgKiBAcGFyYW0gc3RvcmUgRmVhdHVyZSBzdG9yZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgb25FbnRpdGllc0NoYW5nZXMoc3RvcmU6IEZlYXR1cmVTdG9yZSkge1xyXG4gICAgY29uc3QgcmF0aW8gPSB0aGlzLm9wdGlvbnMucGVyY2VudERpc3RpbmN0VmFsdWVSYXRpbyB8fCAyO1xyXG4gICAgY29uc3QgZmVhdHVyZXNQcm9wZXJ0aWVzID0gW107XHJcbiAgICBzdG9yZS5pbmRleC5mb3JFYWNoKCh2YWx1ZSwga2V5KSA9PiB7XHJcbiAgICAgIGNvbnN0IGZwID0gdmFsdWUucHJvcGVydGllcztcclxuICAgICAgZnAuaWdvU2VhcmNoSUQgPSBrZXk7XHJcbiAgICAgIGZlYXR1cmVzUHJvcGVydGllcy5wdXNoKGZwKTtcclxuICAgIH0pO1xyXG4gICAgY29uc3QgdG9JbmRleCA9IFtdO1xyXG4gICAgbGV0IGNvbHVtbnNUb05vdEluZGV4ID0gW107XHJcbiAgICBsZXQgY29udGVudFRvSW5kZXggPSBbXTtcclxuICAgIGlmICh0aGlzLm9wdGlvbnMuc291cmNlRmllbGRzKSB7XHJcbiAgICAgIGNvbHVtbnNUb05vdEluZGV4ID0gdGhpcy5vcHRpb25zLnNvdXJjZUZpZWxkcy5maWx0ZXIoXHJcbiAgICAgICAgKHNmKSA9PiAhc2Yuc2VhcmNoSW5kZXg/LmVuYWJsZWRcclxuICAgICAgKTtcclxuICAgICAgY29udGVudFRvSW5kZXggPSB0aGlzLm9wdGlvbnMuc291cmNlRmllbGRzXHJcbiAgICAgICAgLmZpbHRlcigoc2YpID0+IHNmLnNlYXJjaEluZGV4Py5lbmFibGVkKVxyXG4gICAgICAgIC5tYXAoKHNmMikgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oXHJcbiAgICAgICAgICAgIHt9LFxyXG4gICAgICAgICAgICB7IGZpZWxkOiBzZjIubmFtZSwgdG9rZW5pemU6ICdmdWxsJyB9LFxyXG4gICAgICAgICAgICBzZjIuc2VhcmNoSW5kZXhcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAoZmVhdHVyZXNQcm9wZXJ0aWVzLmxlbmd0aCkge1xyXG4gICAgICAgIC8vIFRISVMgTUVUSE9EIENPTVBVVEUgQ09MVU1OIERJU1RJTkNUIFZBTFVFIFRPIEZJTFRFUiBXSElDSCBDT0xVTU4gVE8gSU5ERVggQkFTRUQgT04gQSBSQVRJTyBvciBkaXNjYXJkIGZsb2F0IGNvbHVtbnNcclxuICAgICAgICBjb25zdCBjb2x1bW5zID0gT2JqZWN0LmtleXMoZmVhdHVyZXNQcm9wZXJ0aWVzWzBdKTtcclxuICAgICAgICBjb25zdCBjb2x1bW5zVG9JbmRleCA9IFtdO1xyXG4gICAgICAgIGNvbHVtbnNUb05vdEluZGV4ID0gY29sdW1uc1xyXG4gICAgICAgICAgLm1hcCgoY29sdW1uKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGRpc3RpbmN0VmFsdWVzID0gW1xyXG4gICAgICAgICAgICAgIC4uLm5ldyBTZXQoZmVhdHVyZXNQcm9wZXJ0aWVzLm1hcCgoaXRlbSkgPT4gaXRlbVtjb2x1bW5dKSlcclxuICAgICAgICAgICAgXTtcclxuICAgICAgICAgICAgLy8gaWRlbnRpZnkgY29sdW1uIHRvIG5vdCBpbmRleCBiYXNlZCBvbiBhIHJhdGlvIGRpc3RpbmN0VmFsdWVzL25iIG9mIGZlYXR1cmVzIE9SIGRpc2NhcnQgZXhjbHVzaXZlIGZsb2F0IGNvbHVtbiAoZXg6IGxhdCwgbG9uZylcclxuICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgIChkaXN0aW5jdFZhbHVlcy5sZW5ndGggLyBmZWF0dXJlc1Byb3BlcnRpZXMubGVuZ3RoKSAqIDEwMCA8PVxyXG4gICAgICAgICAgICAgICAgcmF0aW8gfHxcclxuICAgICAgICAgICAgICBkaXN0aW5jdFZhbHVlcy5ldmVyeSgobikgPT4gTnVtYmVyKG4pID09PSBuICYmIG4gJSAxICE9PSAwKVxyXG4gICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICBjb2x1bW5zVG9Ob3RJbmRleC5wdXNoKGNvbHVtbik7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgY29sdW1uc1RvSW5kZXgucHVzaChjb2x1bW4pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICAgLmZpbHRlcigoZikgPT4gZik7XHJcbiAgICAgICAgY29uc3Qga2V5c1RvSW5kZXggPSBjb2x1bW5zVG9JbmRleC5maWx0ZXIoKGYpID0+IGYgIT09ICdpZ29TZWFyY2hJRCcpO1xyXG4gICAgICAgIGNvbnRlbnRUb0luZGV4ID0ga2V5c1RvSW5kZXgubWFwKChrZXkpID0+IHtcclxuICAgICAgICAgIHJldHVybiB7IGZpZWxkOiBrZXksIHRva2VuaXplOiAnZnVsbCcgfTtcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgc3RvcmUuaW5kZXguZm9yRWFjaCgodmFsdWUsIGtleSkgPT4ge1xyXG4gICAgICBjb25zdCBwcm9wZXJ0aWVzVG9JbmRleCA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodmFsdWUucHJvcGVydGllcykpO1xyXG4gICAgICBjb2x1bW5zVG9Ob3RJbmRleC5tYXAoKGMpID0+IGRlbGV0ZSBwcm9wZXJ0aWVzVG9JbmRleFtjXSk7XHJcbiAgICAgIGlmIChPYmplY3Qua2V5cyhwcm9wZXJ0aWVzVG9JbmRleCkubGVuZ3RoKSB7XHJcbiAgICAgICAgdG9JbmRleC5wdXNoKHByb3BlcnRpZXNUb0luZGV4KTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgaWYgKHRvSW5kZXgubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHRoaXMuaW5pdFN0b3JlU2VhcmNoSW5kZXgoc3RvcmUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgc3RvcmUuc2VhcmNoRG9jdW1lbnQgPSBuZXcgRmxleFNlYXJjaERvY3VtZW50KHtcclxuICAgICAgICBkb2N1bWVudDoge1xyXG4gICAgICAgICAgaWQ6ICdpZ29TZWFyY2hJRCcsXHJcbiAgICAgICAgICBpbmRleDogY29udGVudFRvSW5kZXhcclxuICAgICAgICB9IGFzIERvY3VtZW50T3B0aW9uczxhbnk+XHJcbiAgICAgIH0pO1xyXG4gICAgICB0b0luZGV4Lm1hcCgoaSkgPT4ge1xyXG4gICAgICAgIHN0b3JlLnNlYXJjaERvY3VtZW50LmFkZChpLmlnb1NlYXJjaElELCBpKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -381,4 +381,4 @@ export class FeatureStoreSelectionStrategy extends EntityStoreStrategy {
381
381
  this.map.removeLayer(this.overlayStore.layer);
382
382
  }
383
383
  }
384
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvZmVhdHVyZS9zaGFyZWQvc3RyYXRlZ2llcy9zZWxlY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUEyQixtQkFBbUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUk1RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3hDLE9BQU8sb0JBQXNDLE1BQU0sd0JBQXdCLENBQUM7QUFHNUUsT0FBTyxFQUFnQixhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbkQsT0FBTyxFQUFFLFlBQVksRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFekQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDM0UsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBRXhFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFLakQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUV4QyxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsb0JBQW9CO0lBQy9ELFlBQVksT0FBTztRQUNqQixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDakIsQ0FBQztDQUNGO0FBRUQ7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxPQUFPLDZCQUE4QixTQUFRLG1CQUFtQjtJQWtDOUM7SUFqQ3RCOzs7T0FHRztJQUNLLGdCQUFnQixDQUFDO0lBRWpCLHVCQUF1QixDQUEwQjtJQUVqRCw2QkFBNkIsQ0FBMEI7SUFFL0Q7O09BRUc7SUFDSyxRQUFRLENBQWU7SUFFdkIsTUFBTSxDQUFnQjtJQUU5Qjs7T0FFRztJQUNILElBQUks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SSxDQUFDLE9BQU8sQ0FBQyxLQUFLO1lBQ3JDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUs7WUFDcEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQzlCLE9BQU8sSUFBSSxZQUFZLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssa0JBQWtCO1FBQ3hCLE9BQU8sSUFBSSxXQUFXLENBQUM7WUFDckIsTUFBTSxFQUFFLEdBQUc7WUFDWCxNQUFNLEVBQUUsSUFBSSxpQkFBaUIsRUFBRTtZQUMvQixLQUFLLEVBQUUsU0FBUztZQUNoQixlQUFlLEVBQUUsS0FBSztZQUN0QixVQUFVLEVBQUUsS0FBSztZQUNqQixTQUFTLEVBQUUsS0FBSztTQUNqQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssZUFBZTtRQUNyQixJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLEdBQUcsS0FBSyxTQUFTLEVBQUU7WUFDN0MsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUM1QztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNLLGtCQUFrQjtRQUN4QixJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDcEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoRCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbnRpdHlLZXksIEVudGl0eVJlY29yZCwgRW50aXR5U3RvcmVTdHJhdGVneSB9IGZyb20gJ0BpZ28yL2NvbW1vbic7XHJcblxyXG5pbXBvcnQgT2xGZWF0dXJlIGZyb20gJ29sL0ZlYXR1cmUnO1xyXG5pbXBvcnQgTWFwQnJvd3NlclBvaW50ZXJFdmVudCBmcm9tICdvbC9NYXBCcm93c2VyRXZlbnQnO1xyXG5pbXBvcnQgeyB1bkJ5S2V5IH0gZnJvbSAnb2wvT2JzZXJ2YWJsZSc7XHJcbmltcG9ydCB7IEV2ZW50c0tleSB9IGZyb20gJ29sL2V2ZW50cyc7XHJcbmltcG9ydCB0eXBlIHsgZGVmYXVsdCBhcyBPbEdlb21ldHJ5IH0gZnJvbSAnb2wvZ2VvbS9HZW9tZXRyeSc7XHJcbmltcG9ydCBPbERyYWdCb3hJbnRlcmFjdGlvbiwgeyBEcmFnQm94RXZlbnQgfSBmcm9tICdvbC9pbnRlcmFjdGlvbi9EcmFnQm94JztcclxuaW1wb3J0IHsgRHJhZ0JveEV2ZW50IGFzIE9sRHJhZ0JveEV2ZW50IH0gZnJvbSAnb2wvaW50ZXJhY3Rpb24vRHJhZ0JveCc7XHJcblxyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24sIGNvbWJpbmVMYXRlc3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBtYXAsIHNraXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQgeyBGZWF0dXJlRGF0YVNvdXJjZSB9IGZyb20gJy4uLy4uLy4uL2RhdGFzb3VyY2Uvc2hhcmVkL2RhdGFzb3VyY2VzJztcclxuaW1wb3J0IHsgVmVjdG9yTGF5ZXIgfSBmcm9tICcuLi8uLi8uLi9sYXllci9zaGFyZWQvbGF5ZXJzL3ZlY3Rvci1sYXllcic7XHJcbmltcG9ydCB7IElnb01hcCB9IGZyb20gJy4uLy4uLy4uL21hcC9zaGFyZWQvbWFwJztcclxuaW1wb3J0IHsgY3RybEtleURvd24gfSBmcm9tICcuLi8uLi8uLi9tYXAvc2hhcmVkL21hcC51dGlscyc7XHJcbmltcG9ydCB7IEZlYXR1cmVNb3Rpb24gfSBmcm9tICcuLi9mZWF0dXJlLmVudW1zJztcclxuaW1wb3J0IHtcclxuICBGZWF0dXJlLFxyXG4gIEZlYXR1cmVTdG9yZVNlbGVjdGlvblN0cmF0ZWd5T3B0aW9uc1xyXG59IGZyb20gJy4uL2ZlYXR1cmUuaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IEZlYXR1cmVTdG9yZSB9IGZyb20gJy4uL3N0b3JlJztcclxuXHJcbmV4cG9ydCBjbGFzcyBPbERyYWdTZWxlY3RJbnRlcmFjdGlvbiBleHRlbmRzIE9sRHJhZ0JveEludGVyYWN0aW9uIHtcclxuICBjb25zdHJ1Y3RvcihvcHRpb25zKSB7XHJcbiAgICBzdXBlcihvcHRpb25zKTtcclxuICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBUaGlzIHN0cmF0ZWd5IHN5bmNocm9uaXplcyBhIHN0b3JlIGFuZCBhIGxheWVyIHNlbGVjdGVkIGVudGl0aWVzLlxyXG4gKiBUaGUgc3RvcmUgPC0+IGxheWVyIGJpbmRpbmcgaXMgYSB0d28td2F5IGJpbmRpbmcuXHJcbiAqXHJcbiAqIEluIG1hbnkgY2FzZXMsIGEgc2luZ2xlIHN0cmF0ZWd5IGJvdW5kIHRvIG11bHRpcGxlIHN0b3Jlc1xyXG4gKiB3aWxsIHlpZWxkIGJldHRlciByZXN1bHRzIHRoYXQgbXVsdGlwbGUgc3RyYXRlZ2llcyB3aXRoIGVhY2ggdGhlaXJcclxuICogb3duIHN0b3JlLiBJbiB0aGUgbGF0dGVyIHNjZW5hcmlvLCBhIGNsaWNrIG9uIG92ZXJsYXBwaW5nIGZlYXR1cmVzXHJcbiAqIHdvdWxkIHRyaWdnZXIgdGhlIHN0cmF0ZWd5IG9mIGVhY2ggbGF5ZXIgYW5kIHRoZXkgd291bGQgY2FuY2VsXHJcbiAqIGVhY2ggb3RoZXIgYXMgd2VsbCBhcyBtb3ZlIHRoZSBtYXAgdmlldyBhcm91bmQgbmVlZGxlc3NseS5cclxuICovXHJcbmV4cG9ydCBjbGFzcyBGZWF0dXJlU3RvcmVTZWxlY3Rpb25TdHJhdGVneSBleHRlbmRzIEVudGl0eVN0b3JlU3RyYXRlZ3kge1xyXG4gIC8qKlxyXG4gICAqIExpc3RlbmVyIHRvIHRoZSBtYXAgY2xpY2sgZXZlbnQgdGhhdCBhbGxvd3Mgc2VsZWN0aW5nIGEgZmVhdHVyZVxyXG4gICAqIGJ5IGNsaWNraW5nIG9uIHRoZSBtYXBcclxuICAgKi9cclxuICBwcml2YXRlIG1hcENsaWNrTGlzdGVuZXI7XHJcblxyXG4gIHByaXZhdGUgb2xEcmFnU2VsZWN0SW50ZXJhY3Rpb246IE9sRHJhZ1NlbGVjdEludGVyYWN0aW9uO1xyXG5cclxuICBwcml2YXRlIG9sRHJhZ1NlbGVjdEludGVyYWN0aW9uRW5kS2V5OiBFdmVudHNLZXkgfCBFdmVudHNLZXlbXTtcclxuXHJcbiAgLyoqXHJcbiAgICogU3Vic2NyaXB0aW9uIHRvIGFsbCBzdG9yZXMgc2VsZWN0ZWQgZW50aXRpZXNcclxuICAgKi9cclxuICBwcml2YXRlIHN0b3JlcyQkOiBTdWJzY3JpcHRpb247XHJcblxyXG4gIHByaXZhdGUgbW90aW9uOiBGZWF0dXJlTW90aW9uO1xyXG5cclxuICAvKipcclxuICAgKiBUaGUgbWFwIHRoZSBsYXllcnMgYmVsb25nIHRvXHJcbiAgICovXHJcbiAgZ2V0IG1hcCgpOiBJZ29NYXAge1xyXG4gICAgcmV0dXJuIHRoaXMub3B0aW9ucy5tYXA7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBIGZlYXR1cmUgc3RvcmUgdGhhdCdsbCBjb250YWluIHRoZSBzZWxlY3RlZCBmZWF0dXJlcy4gSXQgaGFzIGl0J3Mgb3duXHJcbiAgICogbGF5ZXIsIHNoYXJlZCBieSBhbGwgdGhlIHN0b3JlcyB0aGlzIHN0YXJldGd5IGlzIGJvdW5kIHRvLlxyXG4gICAqL1xyXG4gIGdldCBvdmVybGF5U3RvcmUoKTogRmVhdHVyZVN0b3JlIHtcclxuICAgIHJldHVybiB0aGlzLl9vdmVybGF5U3RvcmU7XHJcbiAgfVxyXG4gIHByaXZhdGUgX292ZXJsYXlTdG9yZTogRmVhdHVyZVN0b3JlO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgb3B0aW9uczogRmVhdHVyZVN0b3JlU2VsZWN0aW9uU3RyYXRlZ3lPcHRpb25zKSB7XHJcbiAgICBzdXBlcihvcHRpb25zKTtcclxuICAgIHRoaXMuc2V0TW90aW9uKG9wdGlvbnMubW90aW9uKTtcclxuICAgIHRoaXMuX292ZXJsYXlTdG9yZSA9IHRoaXMuY3JlYXRlT3ZlcmxheVN0b3JlKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBCaW5kIHRoaXMgc3RyYXRlZ3kgdG8gYSBzdG9yZSBhbmQgZm9yY2UgdGhpcyBzdHJhdGVneSdzXHJcbiAgICogcmVhY3RpdmF0aW9uIHRvIHByb3Blcmx5IHNldHVwIHdhdGNoZXJzLlxyXG4gICAqIEBwYXJhbSBzdG9yZSBGZWF0dXJlIHN0b3JlXHJcbiAgICovXHJcbiAgYmluZFN0b3JlKHN0b3JlOiBGZWF0dXJlU3RvcmUpIHtcclxuICAgIHN1cGVyLmJpbmRTdG9yZShzdG9yZSk7XHJcbiAgICBpZiAodGhpcy5hY3RpdmUgPT09IHRydWUpIHtcclxuICAgICAgLy8gRm9yY2UgcmVhY3RpdmF0aW9uXHJcbiAgICAgIHRoaXMuYWN0aXZhdGUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVuYmluZCB0aGlzIHN0cmF0ZWd5IGZyb20gYSBzdG9yZSBhbmQgZm9yY2UgdGhpcyBzdHJhdGVneSdzXHJcbiAgICogcmVhY3RpdmF0aW9uIHRvIHByb3Blcmx5IHNldHVwIHdhdGNoZXJzLlxyXG4gICAqIEBwYXJhbSBzdG9yZSBGZWF0dXJlIHN0b3JlXHJcbiAgICovXHJcbiAgdW5iaW5kU3RvcmUoc3RvcmU6IEZlYXR1cmVTdG9yZSkge1xyXG4gICAgc3VwZXIudW5iaW5kU3RvcmUoc3RvcmUpO1xyXG4gICAgaWYgKHRoaXMuYWN0aXZlID09PSB0cnVlKSB7XHJcbiAgICAgIC8vIEZvcmNlIHJlYWN0aXZhdGlvblxyXG4gICAgICB0aGlzLmFjdGl2YXRlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEZWZpbmUgdGhlIG1vdGlvbiB0byBhcHBseSBvbiBzZWxlY3RcclxuICAgKiBAcGFyYW0gbW90aW9uIEZlYXR1cmUgbW90aW9uXHJcbiAgICovXHJcbiAgc2V0TW90aW9uKG1vdGlvbjogRmVhdHVyZU1vdGlvbikge1xyXG4gICAgdGhpcy5tb3Rpb24gPSBtb3Rpb247XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVbnNlbGVjdCBhbGwgZW50aXRpZXMsIGZyb20gYWxsIHN0b3Jlc1xyXG4gICAqL1xyXG4gIHVuc2VsZWN0QWxsKCkge1xyXG4gICAgdGhpcy5zdG9yZXMuZm9yRWFjaCgoc3RvcmU6IEZlYXR1cmVTdG9yZSkgPT4ge1xyXG4gICAgICBzdG9yZS5zdGF0ZS51cGRhdGVBbGwoeyBzZWxlY3RlZDogZmFsc2UgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENsZWFyIHRoZSBvdmVybGF5XHJcbiAgICovXHJcbiAgY2xlYXIoKSB7XHJcbiAgICB0aGlzLm92ZXJsYXlTdG9yZS5zb3VyY2Uub2wuY2xlYXIoKTtcclxuICAgIHRoaXMub3ZlcmxheVN0b3JlLmNsZWFyKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEZWFjdGl2YXRlIHRoZSBzZWxlY3Rpb24gd2l0aG91dCByZW1vdmluZyB0aGUgc2VsZWN0aW9uXHJcbiAgICogb3ZlcmxheS5cclxuICAgKi9cclxuICBkZWFjdGl2YXRlU2VsZWN0aW9uKCkge1xyXG4gICAgdGhpcy51bmxpc3RlblRvTWFwQ2xpY2soKTtcclxuICAgIHRoaXMucmVtb3ZlRHJhZ0JveEludGVyYWN0aW9uKCk7XHJcbiAgICB0aGlzLnVud2F0Y2hBbGwoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFkZCB0aGUgb3ZlcmxheSBsYXllciwgc2V0dXAgdGhlIG1hcCBjbGljayBsc2l0ZW5lciBhbmRcclxuICAgKiBzdGFydCB3YXRjaGluZyBmb3Igc3RvcmVzIHNlbGVjdGlvblxyXG4gICAqIEBpbnRlcm5hbFxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBkb0FjdGl2YXRlKCkge1xyXG4gICAgdGhpcy5hZGRPdmVybGF5TGF5ZXIoKTtcclxuICAgIHRoaXMubGlzdGVuVG9NYXBDbGljaygpO1xyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5kcmFnQm94ID09PSB0cnVlKSB7XHJcbiAgICAgIHRoaXMuYWRkRHJhZ0JveEludGVyYWN0aW9uKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLndhdGNoQWxsKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZW1vdmUgdGhlIG92ZXJsYXkgbGF5ZXIsIHJlbW92ZSB0aGUgbWFwIGNsaWNrIGxzaXRlbmVyIGFuZFxyXG4gICAqIHN0b3Agd2F0Y2hpbmcgZm9yIHN0b3JlcyBzZWxlY3Rpb25cclxuICAgKiBAaW50ZXJuYWxcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgZG9EZWFjdGl2YXRlKCkge1xyXG4gICAgdGhpcy5kZWFjdGl2YXRlU2VsZWN0aW9uKCk7XHJcbiAgICB0aGlzLnJlbW92ZU92ZXJsYXlMYXllcigpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlIGEgc2luZ2xlIG9ic2VydmFibGUgb2YgYWxsIHRoZSBzdG9yZXMuIFdpdGggYSBzaW5nbGUgb2JzZXJ2YWJsZSxcclxuICAgKiBmZWF0dXJlcyBjYW4gYmUgYWRkZWQgYWxsIGF0IG9uY2UgdG8gdGhlIG92ZXJsYXkgbGF5ZXIgYW5kIGEgc2luZ2xlXHJcbiAgICogbW90aW9uIGNhbiBiZSBwZXJmb3JtZWQuIE11bHRpcGxlIG9ic2VydmFibGUgd291bGQgaGF2ZVxyXG4gICAqIGEgY2FuY2VsbGluZyBlZmZlY3Qgb24gZWFjaCBvdGhlci5cclxuICAgKi9cclxuICBwcml2YXRlIHdhdGNoQWxsKCkge1xyXG4gICAgdGhpcy51bndhdGNoQWxsKCk7XHJcblxyXG4gICAgY29uc3Qgc3RvcmVzJCA9IHRoaXMuc3RvcmVzLm1hcCgoc3RvcmU6IEZlYXR1cmVTdG9yZSkgPT4ge1xyXG4gICAgICByZXR1cm4gc3RvcmUuc3RhdGVWaWV3XHJcbiAgICAgICAgLm1hbnlCeSQoKHJlY29yZDogRW50aXR5UmVjb3JkPEZlYXR1cmU+KSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gcmVjb3JkLnN0YXRlLnNlbGVjdGVkID09PSB0cnVlO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICBtYXAoKHJlY29yZHM6IEVudGl0eVJlY29yZDxGZWF0dXJlPltdKSA9PlxyXG4gICAgICAgICAgICByZWNvcmRzLm1hcCgocmVjb3JkKSA9PiByZWNvcmQuZW50aXR5KVxyXG4gICAgICAgICAgKVxyXG4gICAgICAgICk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuc3RvcmVzJCQgPSBjb21iaW5lTGF0ZXN0KHN0b3JlcyQpXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIGRlYm91bmNlVGltZSg1KSxcclxuICAgICAgICBza2lwKDEpLCAvLyBTa2lwIGludGlhbCBzZWxlY3Rpb25cclxuICAgICAgICBtYXAoKGZlYXR1cmVzOiBBcnJheTxGZWF0dXJlW10+KSA9PlxyXG4gICAgICAgICAgZmVhdHVyZXMucmVkdWNlKChhLCBiKSA9PiBhLmNvbmNhdChiKSlcclxuICAgICAgICApXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZSgoZmVhdHVyZXM6IEZlYXR1cmVbXSkgPT4gdGhpcy5vblNlbGVjdEZyb21TdG9yZShmZWF0dXJlcykpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU3RvcCB3YXRjaGluZyBmb3Igc2VsZWN0aW9uIGluIGFsbCBzdG9yZXMuXHJcbiAgICovXHJcbiAgcHJpdmF0ZSB1bndhdGNoQWxsKCkge1xyXG4gICAgaWYgKHRoaXMuc3RvcmVzJCQgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICB0aGlzLnN0b3JlcyQkLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBZGQgYSAnc2luZ2xlY2xpY2snIGxpc3RlbmVyIHRvIHRoZSBtYXAgdGhhdCdsbCBhbGxvdyBzZWxlY3RpbmdcclxuICAgKiBmZWF0dXJlcyBieSBjbGlja2luZyBvbiB0aGUgbWFwLiBUaGUgc2VsZWN0aW9uIHdpbGwgYmUgcGVyZm9ybWVkXHJcbiAgICogb25seSBvbiB0aGUgbGF5ZXJzIGJvdW5kIHRvIHRoaXMgc3RyYXRlZ3kuXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBsaXN0ZW5Ub01hcENsaWNrKCkge1xyXG4gICAgdGhpcy5tYXBDbGlja0xpc3RlbmVyID0gdGhpcy5tYXAub2wub24oXHJcbiAgICAgICdzaW5nbGVjbGljaycsXHJcbiAgICAgIChldmVudDogTWFwQnJvd3NlclBvaW50ZXJFdmVudDxhbnk+KSA9PiB7XHJcbiAgICAgICAgdGhpcy5vbk1hcENsaWNrKGV2ZW50KTtcclxuICAgICAgfVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlbW92ZSB0aGUgbWFwIGNsaWNrIGxpc3RlbmVyXHJcbiAgICovXHJcbiAgcHJpdmF0ZSB1bmxpc3RlblRvTWFwQ2xpY2soKSB7XHJcbiAgICB1bkJ5S2V5KHRoaXMubWFwQ2xpY2tMaXN0ZW5lcik7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBPbiBtYXAgY2xpY2ssIHNlbGVjdCBmZWF0dXJlIGF0IHBpeGVsXHJcbiAgICogQHBhcmFtIGV2ZW50IE9MIE1hcEJyb3dzZXJQb2ludGVyRXZlbnRcclxuICAgKi9cclxuICBwcml2YXRlIG9uTWFwQ2xpY2soZXZlbnQ6IE1hcEJyb3dzZXJQb2ludGVyRXZlbnQ8YW55Pikge1xyXG4gICAgY29uc3QgZXhjbHVzaXZlID0gIWN0cmxLZXlEb3duKGV2ZW50KTtcclxuICAgIGNvbnN0IHJldmVyc2UgPSAhZXhjbHVzaXZlO1xyXG4gICAgY29uc3Qgb2xGZWF0dXJlcyA9IGV2ZW50Lm1hcC5nZXRGZWF0dXJlc0F0UGl4ZWwoZXZlbnQucGl4ZWwsIHtcclxuICAgICAgaGl0VG9sZXJhbmNlOiB0aGlzLm9wdGlvbnMuaGl0VG9sZXJhbmNlIHx8IDAsXHJcbiAgICAgIGxheWVyRmlsdGVyOiAob2xMYXllcikgPT4ge1xyXG4gICAgICAgIGNvbnN0IHN0b3JlT2xMYXllciA9IHRoaXMuc3RvcmVzLmZpbmQoKHN0b3JlOiBGZWF0dXJlU3RvcmUpID0+IHtcclxuICAgICAgICAgIHJldHVybiBzdG9yZS5sYXllcj8ub2wgPT09IG9sTGF5ZXI7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuIHN0b3JlT2xMYXllciAhPT0gdW5kZWZpbmVkO1xyXG4gICAgICB9XHJcbiAgICB9KSBhcyBPbEZlYXR1cmU8T2xHZW9tZXRyeT5bXTtcclxuICAgIHRoaXMub25TZWxlY3RGcm9tTWFwKG9sRmVhdHVyZXMsIGV4Y2x1c2l2ZSwgcmV2ZXJzZSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBZGQgYSBkcmFnIGJveCBpbnRlcmFjdGlvbiBhbmQsIG9uIGRyYWcgYm94IGVuZCwgc2VsZWN0IGZlYXR1cmVzXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBhZGREcmFnQm94SW50ZXJhY3Rpb24oKSB7XHJcbiAgICBsZXQgb2xEcmFnU2VsZWN0SW50ZXJhY3Rpb247XHJcbiAgICBjb25zdCBvbEludGVyYWN0aW9ucyA9IHRoaXMubWFwLm9sLmdldEludGVyYWN0aW9ucygpLmdldEFycmF5KCk7XHJcblxyXG4gICAgLy8gVGhlcmUgY2FuIG9ubHkgYmUgb25lIGRyYWdib3ggaW50ZXJhY3Rpb24sIHNvIGZpbmQgdGhlIGN1cnJlbnQgb25lLCBpZiBhbnlcclxuICAgIC8vIERvbid0IGtlZXAgYSByZWZlcmVuY2UgdG8gdGhlIGN1cnJlbnQgZHJhZ2JveCBiZWNhdXNlIHdlIGRvbid0IHdhbnRcclxuICAgIC8vIHRvIHJlbW92ZSBpdCB3aGVuIHRoaXMgc3RhcnRlZ3kgaXMgZGVhY3RpdmF0ZWRcclxuICAgIGZvciAoY29uc3Qgb2xJbnRlcmFjdGlvbiBvZiBvbEludGVyYWN0aW9ucykge1xyXG4gICAgICBpZiAob2xJbnRlcmFjdGlvbiBpbnN0YW5jZW9mIE9sRHJhZ1NlbGVjdEludGVyYWN0aW9uKSB7XHJcbiAgICAgICAgb2xEcmFnU2VsZWN0SW50ZXJhY3Rpb24gPSBvbEludGVyYWN0aW9uO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAvLyBJZiBubyBkcmFnIGJveCBpbnRlcmFjdGlvbiBpcyBmb3VuZCwgY3JlYXRlIGEgbmV3IG9uZSBhbmQgYWRkIGl0IHRvIHRoZSBtYXBcclxuICAgIGlmIChvbERyYWdTZWxlY3RJbnRlcmFjdGlvbiA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIG9sRHJhZ1NlbGVjdEludGVyYWN0aW9uID0gbmV3IE9sRHJhZ1NlbGVjdEludGVyYWN0aW9uKHtcclxuICAgICAgICBjb25kaXRpb246IGN0cmxLZXlEb3duXHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLm1hcC5vbC5hZGRJbnRlcmFjdGlvbihvbERyYWdTZWxlY3RJbnRlcmFjdGlvbik7XHJcbiAgICAgIHRoaXMub2xEcmFnU2VsZWN0SW50ZXJhY3Rpb24gPSBvbERyYWdTZWxlY3RJbnRlcmFjdGlvbjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLm9sRHJhZ1NlbGVjdEludGVyYWN0aW9uRW5kS2V5ID0gb2xEcmFnU2VsZWN0SW50ZXJhY3Rpb24ub24oXHJcbiAgICAgICdib3hlbmQnLFxyXG4gICAgICAoZXZlbnQ6IERyYWdCb3hFdmVudCkgPT4gdGhpcy5vbkRyYWdCb3hFbmQoZXZlbnQpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVtb3ZlIGRyYWcgYm94IGludGVyYWN0aW9uXHJcbiAgICovXHJcbiAgcHJpdmF0ZSByZW1vdmVEcmFnQm94SW50ZXJhY3Rpb24oKSB7XHJcbiAgICBpZiAodGhpcy5vbERyYWdTZWxlY3RJbnRlcmFjdGlvbkVuZEtleSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHVuQnlLZXkodGhpcy5vbERyYWdTZWxlY3RJbnRlcmFjdGlvbkVuZEtleSk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5vbERyYWdTZWxlY3RJbnRlcmFjdGlvbiAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRoaXMubWFwLm9sLnJlbW92ZUludGVyYWN0aW9uKHRoaXMub2xEcmFnU2VsZWN0SW50ZXJhY3Rpb24pO1xyXG4gICAgfVxyXG4gICAgdGhpcy5vbERyYWdTZWxlY3RJbnRlcmFjdGlvbiA9IHVuZGVmaW5lZDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE9uIGRyYWdib3ggZW5kLCBzZWxlY3QgZmVhdHVyZXMgaW4gZHJhZyBib3hcclxuICAgKiBAcGFyYW0gZXZlbnQgT0wgTWFwQnJvd3NlclBvaW50ZXJFdmVudFxyXG4gICAqL1xyXG4gIHByaXZhdGUgb25EcmFnQm94RW5kKGV2ZW50OiBPbERyYWdCb3hFdmVudCkge1xyXG4gICAgY29uc3QgZXhjbHVzaXZlID0gIWN0cmxLZXlEb3duKGV2ZW50Lm1hcEJyb3dzZXJFdmVudCk7XHJcbiAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgYW55O1xyXG4gICAgY29uc3QgZXh0ZW50ID0gdGFyZ2V0LmdldEdlb21ldHJ5KCkuZ2V0RXh0ZW50KCk7XHJcbiAgICBjb25zdCBvbEZlYXR1cmVzID0gdGhpcy5zdG9yZXMucmVkdWNlKFxyXG4gICAgICAoYWNjOiBPbEZlYXR1cmU8T2xHZW9tZXRyeT5bXSwgc3RvcmU6IEZlYXR1cmVTdG9yZSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IG9sU291cmNlID0gc3RvcmUubGF5ZXIub2wuZ2V0U291cmNlKCk7XHJcbiAgICAgICAgYWNjLnB1c2goLi4ub2xTb3VyY2UuZ2V0RmVhdHVyZXNJbkV4dGVudChleHRlbnQpKTtcclxuICAgICAgICByZXR1cm4gYWNjO1xyXG4gICAgICB9LFxyXG4gICAgICBbXVxyXG4gICAgKTtcclxuICAgIHRoaXMub25TZWxlY3RGcm9tTWFwKG9sRmVhdHVyZXMsIGV4Y2x1c2l2ZSwgZmFsc2UpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogV2hlbiBmZWF0dXJlcyBhcmUgc2VsZWN0ZWQgZnJvbSB0aGUgc3RvcmUsIGFkZFxyXG4gICAqIHRoZW0gdG8gdGhpcyBzdGFydGVneSdzIG92ZXJsYXkgbGF5ZXIgKHNlbGVjdCBvbiBtYXApXHJcbiAgICogQHBhcmFtIGZlYXR1cmVzIFN0b3JlIGZlYXR1cmVzXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBvblNlbGVjdEZyb21TdG9yZShmZWF0dXJlczogRmVhdHVyZVtdKSB7XHJcbiAgICBjb25zdCBtb3Rpb24gPSB0aGlzLm1vdGlvbjtcclxuICAgIGNvbnN0IG9sT3ZlcmxheUZlYXR1cmVzID0gdGhpcy5vdmVybGF5U3RvcmUubGF5ZXIub2xcclxuICAgICAgLmdldFNvdXJjZSgpXHJcbiAgICAgIC5nZXRGZWF0dXJlcygpO1xyXG4gICAgY29uc3Qgb3ZlcmxheUZlYXR1cmVzS2V5cyA9IG9sT3ZlcmxheUZlYXR1cmVzLm1hcChcclxuICAgICAgKG9sRmVhdHVyZTogT2xGZWF0dXJlPE9sR2VvbWV0cnk+KSA9PiBvbEZlYXR1cmUuZ2V0SWQoKVxyXG4gICAgKTtcclxuICAgIGNvbnN0IGZlYXR1cmVzS2V5cyA9IGZlYXR1cmVzLm1hcCh0aGlzLm92ZXJsYXlTdG9yZS5nZXRLZXkpO1xyXG5cclxuICAgIGxldCBkb01vdGlvbjtcclxuICAgIGlmIChmZWF0dXJlcy5sZW5ndGggPT09IDApIHtcclxuICAgICAgZG9Nb3Rpb24gPSBmYWxzZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGRvTW90aW9uID1cclxuICAgICAgICBvdmVybGF5RmVhdHVyZXNLZXlzLmxlbmd0aCAhPT0gZmVhdHVyZXNLZXlzLmxlbmd0aCB8fFxyXG4gICAgICAgICFvdmVybGF5RmVhdHVyZXNLZXlzLmV2ZXJ5KFxyXG4gICAgICAgICAgKGtleTogRW50aXR5S2V5KSA9PiBmZWF0dXJlc0tleXMuaW5kZXhPZihrZXkpID49IDBcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMub3ZlcmxheVN0b3JlLnNldExheWVyRmVhdHVyZXMoXHJcbiAgICAgIGZlYXR1cmVzLFxyXG4gICAgICBkb01vdGlvbiA/IG1vdGlvbiA6IEZlYXR1cmVNb3Rpb24uTm9uZSxcclxuICAgICAgdGhpcy5vcHRpb25zLnZpZXdTY2FsZSxcclxuICAgICAgdGhpcy5vcHRpb25zLmFyZWFSYXRpbyxcclxuICAgICAgdGhpcy5vcHRpb25zLmdldEZlYXR1cmVJZFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFdoZW4gZmVhdHVyZXMgYXJlIHNlbGVjdGVkIGZyb20gdGhlIG1hcCwgYWxzbyBzZWxlY3QgdGhlbVxyXG4gICAqIGluIHRoZWlyIHN0b3JlLlxyXG4gICAqIEBwYXJhbSBvbEZlYXR1cmVzIE9MIGZlYXR1cmUgb2JqZWN0c1xyXG4gICAqL1xyXG4gIHByaXZhdGUgb25TZWxlY3RGcm9tTWFwKFxyXG4gICAgb2xGZWF0dXJlczogT2xGZWF0dXJlPE9sR2VvbWV0cnk+W10sXHJcbiAgICBleGNsdXNpdmU6IGJvb2xlYW4sXHJcbiAgICByZXZlcnNlOiBib29sZWFuXHJcbiAgKSB7XHJcbiAgICBjb25zdCBncm91cGVkRmVhdHVyZXMgPSB0aGlzLmdyb3VwRmVhdHVyZXNCeVN0b3JlKG9sRmVhdHVyZXMpO1xyXG5cclxuICAgIHRoaXMuc3RvcmVzLmZvckVhY2goKHN0b3JlOiBGZWF0dXJlU3RvcmUpID0+IHtcclxuICAgICAgY29uc3QgZmVhdHVyZXMgPSBncm91cGVkRmVhdHVyZXMuZ2V0KHN0b3JlKTtcclxuICAgICAgaWYgKGZlYXR1cmVzID09PSB1bmRlZmluZWQgJiYgZXhjbHVzaXZlID09PSB0cnVlKSB7XHJcbiAgICAgICAgdGhpcy51bnNlbGVjdEFsbEZlYXR1cmVzRnJvbVN0b3JlKHN0b3JlKTtcclxuICAgICAgfSBlbHNlIGlmIChmZWF0dXJlcyA9PT0gdW5kZWZpbmVkICYmIGV4Y2x1c2l2ZSA9PT0gZmFsc2UpIHtcclxuICAgICAgICAvLyBEbyBub3RoaW5nXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RGZWF0dXJlc0Zyb21TdG9yZShzdG9yZSwgZmVhdHVyZXMsIGV4Y2x1c2l2ZSwgcmV2ZXJzZSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2VsZWN0IGZlYXR1cmVzIGluIHN0b3JlXHJcbiAgICogQHBhcmFtIHN0b3JlOiBGZWF0dXJlIHN0b3JlXHJcbiAgICogQHBhcmFtIGZlYXR1cmVzIEZlYXR1cmVzXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBzZWxlY3RGZWF0dXJlc0Zyb21TdG9yZShcclxuICAgIHN0b3JlOiBGZWF0dXJlU3RvcmUsXHJcbiAgICBmZWF0dXJlczogRmVhdHVyZVtdLFxyXG4gICAgZXhjbHVzaXZlOiBib29sZWFuLFxyXG4gICAgcmV2ZXJzZTogYm9vbGVhblxyXG4gICkge1xyXG4gICAgaWYgKHJldmVyc2UgPT09IHRydWUpIHtcclxuICAgICAgc3RvcmUuc3RhdGUucmV2ZXJzZU1hbnkoZmVhdHVyZXMsIFsnc2VsZWN0ZWQnXSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBzdG9yZS5zdGF0ZS51cGRhdGVNYW55KGZlYXR1cmVzLCB7IHNlbGVjdGVkOiB0cnVlIH0sIGV4Y2x1c2l2ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVbnNlbGVjdCBhbGwgZmVhdHVyZXMgZnJvbSBzdG9yZVxyXG4gICAqIEBwYXJhbSBzdG9yZTogRmVhdHVyZSBzdG9yZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgdW5zZWxlY3RBbGxGZWF0dXJlc0Zyb21TdG9yZShzdG9yZTogRmVhdHVyZVN0b3JlKSB7XHJcbiAgICBzdG9yZS5zdGF0ZS51cGRhdGVBbGwoeyBzZWxlY3RlZDogZmFsc2UgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBUaGlzIG1ldGhvZCByZXR1cm5zIGEgc3RvcmUgLT4gZmVhdHVyZXMgbWFwcGluZyBmcm9tIGEgbGlzdFxyXG4gICAqIG9mIE9MIHNlbGVjdGVkIGZlYXR1cmVzLiBPTCBmZWF0dXJlcyBrZWVwIGEgcmVmZXJlbmNlIHRvIHRoZSBzdG9yZVxyXG4gICAqIHRoZXkgYXJlIGZyb20uXHJcbiAgICogQHBhcmFtIG9sRmVhdHVyZXM6IE9MIGZlYXR1cmUgb2JqZWN0c1xyXG4gICAqIEByZXR1cm5zIFN0b3JlIC0+IGZlYXR1cmVzIG1hcHBpbmdcclxuICAgKi9cclxuICBwcml2YXRlIGdyb3VwRmVhdHVyZXNCeVN0b3JlKFxyXG4gICAgb2xGZWF0dXJlczogT2xGZWF0dXJlPE9sR2VvbWV0cnk+W11cclxuICApOiBNYXA8RmVhdHVyZVN0b3JlLCBGZWF0dXJlW10+IHtcclxuICAgIGNvbnN0IGdyb3VwZWRGZWF0dXJlcyA9IG5ldyBNYXA8RmVhdHVyZVN0b3JlLCBGZWF0dXJlW10+KCk7XHJcbiAgICBpZiAob2xGZWF0dXJlcyA9PT0gbnVsbCB8fCBvbEZlYXR1cmVzID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgcmV0dXJuIGdyb3VwZWRGZWF0dXJlcztcclxuICAgIH1cclxuXHJcbiAgICBvbEZlYXR1cmVzLmZvckVhY2goKG9sRmVhdHVyZTogT2xGZWF0dXJlPE9sR2VvbWV0cnk+KSA9PiB7XHJcbiAgICAgIGNvbnN0IHN0b3JlID0gb2xGZWF0dXJlLmdldCgnX2ZlYXR1cmVTdG9yZScpO1xyXG4gICAgICBpZiAoc3RvcmUgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG5cclxuICAgICAgbGV0IGZlYXR1cmVzID0gZ3JvdXBlZEZlYXR1cmVzLmdldChzdG9yZSk7XHJcbiAgICAgIGlmIChmZWF0dXJlcyA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgZmVhdHVyZXMgPSBbXTtcclxuICAgICAgICBncm91cGVkRmVhdHVyZXMuc2V0KHN0b3JlLCBmZWF0dXJlcyk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNvbnN0IGZlYXR1cmUgPSBzdG9yZS5nZXQob2xGZWF0dXJlLmdldElkKCkpO1xyXG4gICAgICBpZiAoZmVhdHVyZSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgZmVhdHVyZXMucHVzaChmZWF0dXJlKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgcmV0dXJuIGdyb3VwZWRGZWF0dXJlcztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENyZWF0ZSBhbiBvdmVybGF5IHN0b3JlIHRoYXQnbGwgY29udGFpbiB0aGUgc2VsZWN0ZWQgZmVhdHVyZXMuXHJcbiAgICogQHJldHVybnMgT3ZlcmxheSBzdG9yZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgY3JlYXRlT3ZlcmxheVN0b3JlKCk6IEZlYXR1cmVTdG9yZSB7XHJcbiAgICBjb25zdCBvdmVybGF5TGF5ZXIgPSB0aGlzLm9wdGlvbnMubGF5ZXJcclxuICAgICAgPyB0aGlzLm9wdGlvbnMubGF5ZXJcclxuICAgICAgOiB0aGlzLmNyZWF0ZU92ZXJsYXlMYXllcigpO1xyXG4gICAgcmV0dXJuIG5ldyBGZWF0dXJlU3RvcmUoW10sIHsgbWFwOiB0aGlzLm1hcCB9KS5iaW5kTGF5ZXIob3ZlcmxheUxheWVyKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENyZWF0ZSBhbiBvdmVybGF5IHN0b3JlIHRoYXQnbGwgY29udGFpbiB0aGUgc2VsZWN0ZWQgZmVhdHVyZXMuXHJcbiAgICogQHJldHVybnMgT3ZlcmxheSBsYXllclxyXG4gICAqL1xyXG4gIHByaXZhdGUgY3JlYXRlT3ZlcmxheUxheWVyKCk6IFZlY3RvckxheWVyIHtcclxuICAgIHJldHVybiBuZXcgVmVjdG9yTGF5ZXIoe1xyXG4gICAgICB6SW5kZXg6IDMwMCxcclxuICAgICAgc291cmNlOiBuZXcgRmVhdHVyZURhdGFTb3VyY2UoKSxcclxuICAgICAgc3R5bGU6IHVuZGVmaW5lZCxcclxuICAgICAgc2hvd0luTGF5ZXJMaXN0OiBmYWxzZSxcclxuICAgICAgZXhwb3J0YWJsZTogZmFsc2UsXHJcbiAgICAgIGJyb3dzYWJsZTogZmFsc2VcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQWRkIHRoZSBvdmVybGF5IHN0b3JlJ3MgbGF5ZXIgdG8gdGhlIG1hcCB0byBkaXNwbGF5IHRoZSBzZWxlY3RlZFxyXG4gICAqIGZlYXR1cmVzLlxyXG4gICAqL1xyXG4gIHByaXZhdGUgYWRkT3ZlcmxheUxheWVyKCkge1xyXG4gICAgaWYgKHRoaXMub3ZlcmxheVN0b3JlLmxheWVyLm1hcCA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRoaXMubWFwLmFkZExheWVyKHRoaXMub3ZlcmxheVN0b3JlLmxheWVyKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlbW92ZSB0aGUgb3ZlcmxheSBsYXllciBmcm9tIHRoZSBtYXBcclxuICAgKi9cclxuICBwcml2YXRlIHJlbW92ZU92ZXJsYXlMYXllcigpIHtcclxuICAgIHRoaXMub3ZlcmxheVN0b3JlLnNvdXJjZS5vbC5jbGVhcigpO1xyXG4gICAgdGhpcy5tYXAucmVtb3ZlTGF5ZXIodGhpcy5vdmVybGF5U3RvcmUubGF5ZXIpO1xyXG4gIH1cclxufVxyXG4iXX0=
384
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvZmVhdHVyZS9zaGFyZWQvc3RyYXRlZ2llcy9zZWxlY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUEyQixtQkFBbUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUk1RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3hDLE9BQU8sb0JBQXNDLE1BQU0sd0JBQXdCLENBQUM7QUFHNUUsT0FBTyxFQUFnQixhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbkQsT0FBTyxFQUFFLFlBQVksRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFekQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDM0UsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBRXhFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFLakQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUV4QyxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsb0JBQW9CO0lBQy9ELFlBQVksT0FBTztRQUNqQixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDakIsQ0FBQztDQUNGO0FBRUQ7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxPQUFPLDZCQUE4QixTQUFRLG1CQUFtQjtJQWtDOUM7SUFqQ3RCOzs7T0FHRztJQUNLLGdCQUFnQixDQUFDO0lBRWpCLHVCQUF1QixDQUEwQjtJQUVqRCw2QkFBNkIsQ0FBMEI7SUFFL0Q7O09BRUc7SUFDSyxRQUFRLENBQWU7SUFFdkIsTUFBTSxDQUFnQjtJQUU5Qjs7T0FFRztJQUNILElBQUks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UUFDcEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoRCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbnRpdHlLZXksIEVudGl0eVJlY29yZCwgRW50aXR5U3RvcmVTdHJhdGVneSB9IGZyb20gJ0BpZ28yL2NvbW1vbic7XHJcblxyXG5pbXBvcnQgT2xGZWF0dXJlIGZyb20gJ29sL0ZlYXR1cmUnO1xyXG5pbXBvcnQgTWFwQnJvd3NlclBvaW50ZXJFdmVudCBmcm9tICdvbC9NYXBCcm93c2VyRXZlbnQnO1xyXG5pbXBvcnQgeyB1bkJ5S2V5IH0gZnJvbSAnb2wvT2JzZXJ2YWJsZSc7XHJcbmltcG9ydCB7IEV2ZW50c0tleSB9IGZyb20gJ29sL2V2ZW50cyc7XHJcbmltcG9ydCB0eXBlIHsgZGVmYXVsdCBhcyBPbEdlb21ldHJ5IH0gZnJvbSAnb2wvZ2VvbS9HZW9tZXRyeSc7XHJcbmltcG9ydCBPbERyYWdCb3hJbnRlcmFjdGlvbiwgeyBEcmFnQm94RXZlbnQgfSBmcm9tICdvbC9pbnRlcmFjdGlvbi9EcmFnQm94JztcclxuaW1wb3J0IHsgRHJhZ0JveEV2ZW50IGFzIE9sRHJhZ0JveEV2ZW50IH0gZnJvbSAnb2wvaW50ZXJhY3Rpb24vRHJhZ0JveCc7XHJcblxyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24sIGNvbWJpbmVMYXRlc3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBtYXAsIHNraXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQgeyBGZWF0dXJlRGF0YVNvdXJjZSB9IGZyb20gJy4uLy4uLy4uL2RhdGFzb3VyY2Uvc2hhcmVkL2RhdGFzb3VyY2VzJztcclxuaW1wb3J0IHsgVmVjdG9yTGF5ZXIgfSBmcm9tICcuLi8uLi8uLi9sYXllci9zaGFyZWQvbGF5ZXJzL3ZlY3Rvci1sYXllcic7XHJcbmltcG9ydCB7IElnb01hcCB9IGZyb20gJy4uLy4uLy4uL21hcC9zaGFyZWQvbWFwJztcclxuaW1wb3J0IHsgY3RybEtleURvd24gfSBmcm9tICcuLi8uLi8uLi9tYXAvc2hhcmVkL21hcC51dGlscyc7XHJcbmltcG9ydCB7IEZlYXR1cmVNb3Rpb24gfSBmcm9tICcuLi9mZWF0dXJlLmVudW1zJztcclxuaW1wb3J0IHtcclxuICBGZWF0dXJlLFxyXG4gIEZlYXR1cmVTdG9yZVNlbGVjdGlvblN0cmF0ZWd5T3B0aW9uc1xyXG59IGZyb20gJy4uL2ZlYXR1cmUuaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IEZlYXR1cmVTdG9yZSB9IGZyb20gJy4uL3N0b3JlJztcclxuXHJcbmV4cG9ydCBjbGFzcyBPbERyYWdTZWxlY3RJbnRlcmFjdGlvbiBleHRlbmRzIE9sRHJhZ0JveEludGVyYWN0aW9uIHtcclxuICBjb25zdHJ1Y3RvcihvcHRpb25zKSB7XHJcbiAgICBzdXBlcihvcHRpb25zKTtcclxuICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBUaGlzIHN0cmF0ZWd5IHN5bmNocm9uaXplcyBhIHN0b3JlIGFuZCBhIGxheWVyIHNlbGVjdGVkIGVudGl0aWVzLlxyXG4gKiBUaGUgc3RvcmUgPC0+IGxheWVyIGJpbmRpbmcgaXMgYSB0d28td2F5IGJpbmRpbmcuXHJcbiAqXHJcbiAqIEluIG1hbnkgY2FzZXMsIGEgc2luZ2xlIHN0cmF0ZWd5IGJvdW5kIHRvIG11bHRpcGxlIHN0b3Jlc1xyXG4gKiB3aWxsIHlpZWxkIGJldHRlciByZXN1bHRzIHRoYXQgbXVsdGlwbGUgc3RyYXRlZ2llcyB3aXRoIGVhY2ggdGhlaXJcclxuICogb3duIHN0b3JlLiBJbiB0aGUgbGF0dGVyIHNjZW5hcmlvLCBhIGNsaWNrIG9uIG92ZXJsYXBwaW5nIGZlYXR1cmVzXHJcbiAqIHdvdWxkIHRyaWdnZXIgdGhlIHN0cmF0ZWd5IG9mIGVhY2ggbGF5ZXIgYW5kIHRoZXkgd291bGQgY2FuY2VsXHJcbiAqIGVhY2ggb3RoZXIgYXMgd2VsbCBhcyBtb3ZlIHRoZSBtYXAgdmlldyBhcm91bmQgbmVlZGxlc3NseS5cclxuICovXHJcbmV4cG9ydCBjbGFzcyBGZWF0dXJlU3RvcmVTZWxlY3Rpb25TdHJhdGVneSBleHRlbmRzIEVudGl0eVN0b3JlU3RyYXRlZ3kge1xyXG4gIC8qKlxyXG4gICAqIExpc3RlbmVyIHRvIHRoZSBtYXAgY2xpY2sgZXZlbnQgdGhhdCBhbGxvd3Mgc2VsZWN0aW5nIGEgZmVhdHVyZVxyXG4gICAqIGJ5IGNsaWNraW5nIG9uIHRoZSBtYXBcclxuICAgKi9cclxuICBwcml2YXRlIG1hcENsaWNrTGlzdGVuZXI7XHJcblxyXG4gIHByaXZhdGUgb2xEcmFnU2VsZWN0SW50ZXJhY3Rpb246IE9sRHJhZ1NlbGVjdEludGVyYWN0aW9uO1xyXG5cclxuICBwcml2YXRlIG9sRHJhZ1NlbGVjdEludGVyYWN0aW9uRW5kS2V5OiBFdmVudHNLZXkgfCBFdmVudHNLZXlbXTtcclxuXHJcbiAgLyoqXHJcbiAgICogU3Vic2NyaXB0aW9uIHRvIGFsbCBzdG9yZXMgc2VsZWN0ZWQgZW50aXRpZXNcclxuICAgKi9cclxuICBwcml2YXRlIHN0b3JlcyQkOiBTdWJzY3JpcHRpb247XHJcblxyXG4gIHByaXZhdGUgbW90aW9uOiBGZWF0dXJlTW90aW9uO1xyXG5cclxuICAvKipcclxuICAgKiBUaGUgbWFwIHRoZSBsYXllcnMgYmVsb25nIHRvXHJcbiAgICovXHJcbiAgZ2V0IG1hcCgpOiBJZ29NYXAge1xyXG4gICAgcmV0dXJuIHRoaXMub3B0aW9ucy5tYXA7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBIGZlYXR1cmUgc3RvcmUgdGhhdCdsbCBjb250YWluIHRoZSBzZWxlY3RlZCBmZWF0dXJlcy4gSXQgaGFzIGl0J3Mgb3duXHJcbiAgICogbGF5ZXIsIHNoYXJlZCBieSBhbGwgdGhlIHN0b3JlcyB0aGlzIHN0YXJldGd5IGlzIGJvdW5kIHRvLlxyXG4gICAqL1xyXG4gIGdldCBvdmVybGF5U3RvcmUoKTogRmVhdHVyZVN0b3JlIHtcclxuICAgIHJldHVybiB0aGlzLl9vdmVybGF5U3RvcmU7XHJcbiAgfVxyXG4gIHByaXZhdGUgX292ZXJsYXlTdG9yZTogRmVhdHVyZVN0b3JlO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgb3B0aW9uczogRmVhdHVyZVN0b3JlU2VsZWN0aW9uU3RyYXRlZ3lPcHRpb25zKSB7XHJcbiAgICBzdXBlcihvcHRpb25zKTtcclxuICAgIHRoaXMuc2V0TW90aW9uKG9wdGlvbnMubW90aW9uKTtcclxuICAgIHRoaXMuX292ZXJsYXlTdG9yZSA9IHRoaXMuY3JlYXRlT3ZlcmxheVN0b3JlKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBCaW5kIHRoaXMgc3RyYXRlZ3kgdG8gYSBzdG9yZSBhbmQgZm9yY2UgdGhpcyBzdHJhdGVneSdzXHJcbiAgICogcmVhY3RpdmF0aW9uIHRvIHByb3Blcmx5IHNldHVwIHdhdGNoZXJzLlxyXG4gICAqIEBwYXJhbSBzdG9yZSBGZWF0dXJlIHN0b3JlXHJcbiAgICovXHJcbiAgYmluZFN0b3JlKHN0b3JlOiBGZWF0dXJlU3RvcmUpIHtcclxuICAgIHN1cGVyLmJpbmRTdG9yZShzdG9yZSk7XHJcbiAgICBpZiAodGhpcy5hY3RpdmUgPT09IHRydWUpIHtcclxuICAgICAgLy8gRm9yY2UgcmVhY3RpdmF0aW9uXHJcbiAgICAgIHRoaXMuYWN0aXZhdGUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVuYmluZCB0aGlzIHN0cmF0ZWd5IGZyb20gYSBzdG9yZSBhbmQgZm9yY2UgdGhpcyBzdHJhdGVneSdzXHJcbiAgICogcmVhY3RpdmF0aW9uIHRvIHByb3Blcmx5IHNldHVwIHdhdGNoZXJzLlxyXG4gICAqIEBwYXJhbSBzdG9yZSBGZWF0dXJlIHN0b3JlXHJcbiAgICovXHJcbiAgdW5iaW5kU3RvcmUoc3RvcmU6IEZlYXR1cmVTdG9yZSkge1xyXG4gICAgc3VwZXIudW5iaW5kU3RvcmUoc3RvcmUpO1xyXG4gICAgaWYgKHRoaXMuYWN0aXZlID09PSB0cnVlKSB7XHJcbiAgICAgIC8vIEZvcmNlIHJlYWN0aXZhdGlvblxyXG4gICAgICB0aGlzLmFjdGl2YXRlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEZWZpbmUgdGhlIG1vdGlvbiB0byBhcHBseSBvbiBzZWxlY3RcclxuICAgKiBAcGFyYW0gbW90aW9uIEZlYXR1cmUgbW90aW9uXHJcbiAgICovXHJcbiAgc2V0TW90aW9uKG1vdGlvbjogRmVhdHVyZU1vdGlvbikge1xyXG4gICAgdGhpcy5tb3Rpb24gPSBtb3Rpb247XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVbnNlbGVjdCBhbGwgZW50aXRpZXMsIGZyb20gYWxsIHN0b3Jlc1xyXG4gICAqL1xyXG4gIHVuc2VsZWN0QWxsKCkge1xyXG4gICAgdGhpcy5zdG9yZXMuZm9yRWFjaCgoc3RvcmU6IEZlYXR1cmVTdG9yZSkgPT4ge1xyXG4gICAgICBzdG9yZS5zdGF0ZS51cGRhdGVBbGwoeyBzZWxlY3RlZDogZmFsc2UgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENsZWFyIHRoZSBvdmVybGF5XHJcbiAgICovXHJcbiAgY2xlYXIoKSB7XHJcbiAgICB0aGlzLm92ZXJsYXlTdG9yZS5zb3VyY2Uub2wuY2xlYXIoKTtcclxuICAgIHRoaXMub3ZlcmxheVN0b3JlLmNsZWFyKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEZWFjdGl2YXRlIHRoZSBzZWxlY3Rpb24gd2l0aG91dCByZW1vdmluZyB0aGUgc2VsZWN0aW9uXHJcbiAgICogb3ZlcmxheS5cclxuICAgKi9cclxuICBkZWFjdGl2YXRlU2VsZWN0aW9uKCkge1xyXG4gICAgdGhpcy51bmxpc3RlblRvTWFwQ2xpY2soKTtcclxuICAgIHRoaXMucmVtb3ZlRHJhZ0JveEludGVyYWN0aW9uKCk7XHJcbiAgICB0aGlzLnVud2F0Y2hBbGwoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFkZCB0aGUgb3ZlcmxheSBsYXllciwgc2V0dXAgdGhlIG1hcCBjbGljayBsc2l0ZW5lciBhbmRcclxuICAgKiBzdGFydCB3YXRjaGluZyBmb3Igc3RvcmVzIHNlbGVjdGlvblxyXG4gICAqIEBpbnRlcm5hbFxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBkb0FjdGl2YXRlKCkge1xyXG4gICAgdGhpcy5hZGRPdmVybGF5TGF5ZXIoKTtcclxuICAgIHRoaXMubGlzdGVuVG9NYXBDbGljaygpO1xyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5kcmFnQm94ID09PSB0cnVlKSB7XHJcbiAgICAgIHRoaXMuYWRkRHJhZ0JveEludGVyYWN0aW9uKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLndhdGNoQWxsKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZW1vdmUgdGhlIG92ZXJsYXkgbGF5ZXIsIHJlbW92ZSB0aGUgbWFwIGNsaWNrIGxzaXRlbmVyIGFuZFxyXG4gICAqIHN0b3Agd2F0Y2hpbmcgZm9yIHN0b3JlcyBzZWxlY3Rpb25cclxuICAgKiBAaW50ZXJuYWxcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgZG9EZWFjdGl2YXRlKCkge1xyXG4gICAgdGhpcy5kZWFjdGl2YXRlU2VsZWN0aW9uKCk7XHJcbiAgICB0aGlzLnJlbW92ZU92ZXJsYXlMYXllcigpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlIGEgc2luZ2xlIG9ic2VydmFibGUgb2YgYWxsIHRoZSBzdG9yZXMuIFdpdGggYSBzaW5nbGUgb2JzZXJ2YWJsZSxcclxuICAgKiBmZWF0dXJlcyBjYW4gYmUgYWRkZWQgYWxsIGF0IG9uY2UgdG8gdGhlIG92ZXJsYXkgbGF5ZXIgYW5kIGEgc2luZ2xlXHJcbiAgICogbW90aW9uIGNhbiBiZSBwZXJmb3JtZWQuIE11bHRpcGxlIG9ic2VydmFibGUgd291bGQgaGF2ZVxyXG4gICAqIGEgY2FuY2VsbGluZyBlZmZlY3Qgb24gZWFjaCBvdGhlci5cclxuICAgKi9cclxuICBwcml2YXRlIHdhdGNoQWxsKCkge1xyXG4gICAgdGhpcy51bndhdGNoQWxsKCk7XHJcblxyXG4gICAgY29uc3Qgc3RvcmVzJCA9IHRoaXMuc3RvcmVzLm1hcCgoc3RvcmU6IEZlYXR1cmVTdG9yZSkgPT4ge1xyXG4gICAgICByZXR1cm4gc3RvcmUuc3RhdGVWaWV3XHJcbiAgICAgICAgLm1hbnlCeSQoKHJlY29yZDogRW50aXR5UmVjb3JkPEZlYXR1cmU+KSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gcmVjb3JkLnN0YXRlLnNlbGVjdGVkID09PSB0cnVlO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICBtYXAoKHJlY29yZHM6IEVudGl0eVJlY29yZDxGZWF0dXJlPltdKSA9PlxyXG4gICAgICAgICAgICByZWNvcmRzLm1hcCgocmVjb3JkKSA9PiByZWNvcmQuZW50aXR5KVxyXG4gICAgICAgICAgKVxyXG4gICAgICAgICk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuc3RvcmVzJCQgPSBjb21iaW5lTGF0ZXN0KHN0b3JlcyQpXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIGRlYm91bmNlVGltZSg1KSxcclxuICAgICAgICBza2lwKDEpLCAvLyBTa2lwIGludGlhbCBzZWxlY3Rpb25cclxuICAgICAgICBtYXAoKGZlYXR1cmVzOiBBcnJheTxGZWF0dXJlW10+KSA9PlxyXG4gICAgICAgICAgZmVhdHVyZXMucmVkdWNlKChhLCBiKSA9PiBhLmNvbmNhdChiKSlcclxuICAgICAgICApXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZSgoZmVhdHVyZXM6IEZlYXR1cmVbXSkgPT4gdGhpcy5vblNlbGVjdEZyb21TdG9yZShmZWF0dXJlcykpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU3RvcCB3YXRjaGluZyBmb3Igc2VsZWN0aW9uIGluIGFsbCBzdG9yZXMuXHJcbiAgICovXHJcbiAgcHJpdmF0ZSB1bndhdGNoQWxsKCkge1xyXG4gICAgaWYgKHRoaXMuc3RvcmVzJCQgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICB0aGlzLnN0b3JlcyQkLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBZGQgYSAnc2luZ2xlY2xpY2snIGxpc3RlbmVyIHRvIHRoZSBtYXAgdGhhdCdsbCBhbGxvdyBzZWxlY3RpbmdcclxuICAgKiBmZWF0dXJlcyBieSBjbGlja2luZyBvbiB0aGUgbWFwLiBUaGUgc2VsZWN0aW9uIHdpbGwgYmUgcGVyZm9ybWVkXHJcbiAgICogb25seSBvbiB0aGUgbGF5ZXJzIGJvdW5kIHRvIHRoaXMgc3RyYXRlZ3kuXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBsaXN0ZW5Ub01hcENsaWNrKCkge1xyXG4gICAgdGhpcy5tYXBDbGlja0xpc3RlbmVyID0gdGhpcy5tYXAub2wub24oXHJcbiAgICAgICdzaW5nbGVjbGljaycsXHJcbiAgICAgIChldmVudDogTWFwQnJvd3NlclBvaW50ZXJFdmVudDxhbnk+KSA9PiB7XHJcbiAgICAgICAgdGhpcy5vbk1hcENsaWNrKGV2ZW50KTtcclxuICAgICAgfVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlbW92ZSB0aGUgbWFwIGNsaWNrIGxpc3RlbmVyXHJcbiAgICovXHJcbiAgcHJpdmF0ZSB1bmxpc3RlblRvTWFwQ2xpY2soKSB7XHJcbiAgICB1bkJ5S2V5KHRoaXMubWFwQ2xpY2tMaXN0ZW5lcik7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBPbiBtYXAgY2xpY2ssIHNlbGVjdCBmZWF0dXJlIGF0IHBpeGVsXHJcbiAgICogQHBhcmFtIGV2ZW50IE9MIE1hcEJyb3dzZXJQb2ludGVyRXZlbnRcclxuICAgKi9cclxuICBwcml2YXRlIG9uTWFwQ2xpY2soZXZlbnQ6IE1hcEJyb3dzZXJQb2ludGVyRXZlbnQ8YW55Pikge1xyXG4gICAgY29uc3QgZXhjbHVzaXZlID0gIWN0cmxLZXlEb3duKGV2ZW50KTtcclxuICAgIGNvbnN0IHJldmVyc2UgPSAhZXhjbHVzaXZlO1xyXG4gICAgY29uc3Qgb2xGZWF0dXJlcyA9IGV2ZW50Lm1hcC5nZXRGZWF0dXJlc0F0UGl4ZWwoZXZlbnQucGl4ZWwsIHtcclxuICAgICAgaGl0VG9sZXJhbmNlOiB0aGlzLm9wdGlvbnMuaGl0VG9sZXJhbmNlIHx8IDAsXHJcbiAgICAgIGxheWVyRmlsdGVyOiAob2xMYXllcikgPT4ge1xyXG4gICAgICAgIGNvbnN0IHN0b3JlT2xMYXllciA9IHRoaXMuc3RvcmVzLmZpbmQoKHN0b3JlOiBGZWF0dXJlU3RvcmUpID0+IHtcclxuICAgICAgICAgIHJldHVybiBzdG9yZS5sYXllcj8ub2wgPT09IG9sTGF5ZXI7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuIHN0b3JlT2xMYXllciAhPT0gdW5kZWZpbmVkO1xyXG4gICAgICB9XHJcbiAgICB9KSBhcyBPbEZlYXR1cmU8T2xHZW9tZXRyeT5bXTtcclxuICAgIHRoaXMub25TZWxlY3RGcm9tTWFwKG9sRmVhdHVyZXMsIGV4Y2x1c2l2ZSwgcmV2ZXJzZSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBZGQgYSBkcmFnIGJveCBpbnRlcmFjdGlvbiBhbmQsIG9uIGRyYWcgYm94IGVuZCwgc2VsZWN0IGZlYXR1cmVzXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBhZGREcmFnQm94SW50ZXJhY3Rpb24oKSB7XHJcbiAgICBsZXQgb2xEcmFnU2VsZWN0SW50ZXJhY3Rpb247XHJcbiAgICBjb25zdCBvbEludGVyYWN0aW9ucyA9IHRoaXMubWFwLm9sLmdldEludGVyYWN0aW9ucygpLmdldEFycmF5KCk7XHJcblxyXG4gICAgLy8gVGhlcmUgY2FuIG9ubHkgYmUgb25lIGRyYWdib3ggaW50ZXJhY3Rpb24sIHNvIGZpbmQgdGhlIGN1cnJlbnQgb25lLCBpZiBhbnlcclxuICAgIC8vIERvbid0IGtlZXAgYSByZWZlcmVuY2UgdG8gdGhlIGN1cnJlbnQgZHJhZ2JveCBiZWNhdXNlIHdlIGRvbid0IHdhbnRcclxuICAgIC8vIHRvIHJlbW92ZSBpdCB3aGVuIHRoaXMgc3RhcnRlZ3kgaXMgZGVhY3RpdmF0ZWRcclxuICAgIGZvciAoY29uc3Qgb2xJbnRlcmFjdGlvbiBvZiBvbEludGVyYWN0aW9ucykge1xyXG4gICAgICBpZiAob2xJbnRlcmFjdGlvbiBpbnN0YW5jZW9mIE9sRHJhZ1NlbGVjdEludGVyYWN0aW9uKSB7XHJcbiAgICAgICAgb2xEcmFnU2VsZWN0SW50ZXJhY3Rpb24gPSBvbEludGVyYWN0aW9uO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAvLyBJZiBubyBkcmFnIGJveCBpbnRlcmFjdGlvbiBpcyBmb3VuZCwgY3JlYXRlIGEgbmV3IG9uZSBhbmQgYWRkIGl0IHRvIHRoZSBtYXBcclxuICAgIGlmIChvbERyYWdTZWxlY3RJbnRlcmFjdGlvbiA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIG9sRHJhZ1NlbGVjdEludGVyYWN0aW9uID0gbmV3IE9sRHJhZ1NlbGVjdEludGVyYWN0aW9uKHtcclxuICAgICAgICBjb25kaXRpb246IGN0cmxLZXlEb3duXHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLm1hcC5vbC5hZGRJbnRlcmFjdGlvbihvbERyYWdTZWxlY3RJbnRlcmFjdGlvbik7XHJcbiAgICAgIHRoaXMub2xEcmFnU2VsZWN0SW50ZXJhY3Rpb24gPSBvbERyYWdTZWxlY3RJbnRlcmFjdGlvbjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLm9sRHJhZ1NlbGVjdEludGVyYWN0aW9uRW5kS2V5ID0gb2xEcmFnU2VsZWN0SW50ZXJhY3Rpb24ub24oXHJcbiAgICAgICdib3hlbmQnLFxyXG4gICAgICAoZXZlbnQ6IERyYWdCb3hFdmVudCkgPT4gdGhpcy5vbkRyYWdCb3hFbmQoZXZlbnQpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVtb3ZlIGRyYWcgYm94IGludGVyYWN0aW9uXHJcbiAgICovXHJcbiAgcHJpdmF0ZSByZW1vdmVEcmFnQm94SW50ZXJhY3Rpb24oKSB7XHJcbiAgICBpZiAodGhpcy5vbERyYWdTZWxlY3RJbnRlcmFjdGlvbkVuZEtleSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHVuQnlLZXkodGhpcy5vbERyYWdTZWxlY3RJbnRlcmFjdGlvbkVuZEtleSk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5vbERyYWdTZWxlY3RJbnRlcmFjdGlvbiAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRoaXMubWFwLm9sLnJlbW92ZUludGVyYWN0aW9uKHRoaXMub2xEcmFnU2VsZWN0SW50ZXJhY3Rpb24pO1xyXG4gICAgfVxyXG4gICAgdGhpcy5vbERyYWdTZWxlY3RJbnRlcmFjdGlvbiA9IHVuZGVmaW5lZDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE9uIGRyYWdib3ggZW5kLCBzZWxlY3QgZmVhdHVyZXMgaW4gZHJhZyBib3hcclxuICAgKiBAcGFyYW0gZXZlbnQgT0wgTWFwQnJvd3NlclBvaW50ZXJFdmVudFxyXG4gICAqL1xyXG4gIHByaXZhdGUgb25EcmFnQm94RW5kKGV2ZW50OiBPbERyYWdCb3hFdmVudCkge1xyXG4gICAgY29uc3QgZXhjbHVzaXZlID0gIWN0cmxLZXlEb3duKGV2ZW50Lm1hcEJyb3dzZXJFdmVudCk7XHJcbiAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgYW55O1xyXG4gICAgY29uc3QgZXh0ZW50ID0gdGFyZ2V0LmdldEdlb21ldHJ5KCkuZ2V0RXh0ZW50KCk7XHJcbiAgICBjb25zdCBvbEZlYXR1cmVzID0gdGhpcy5zdG9yZXMucmVkdWNlKFxyXG4gICAgICAoYWNjOiBPbEZlYXR1cmU8T2xHZW9tZXRyeT5bXSwgc3RvcmU6IEZlYXR1cmVTdG9yZSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IG9sU291cmNlID0gc3RvcmUubGF5ZXIub2wuZ2V0U291cmNlKCk7XHJcbiAgICAgICAgYWNjLnB1c2goLi4ub2xTb3VyY2UuZ2V0RmVhdHVyZXNJbkV4dGVudChleHRlbnQpKTtcclxuICAgICAgICByZXR1cm4gYWNjO1xyXG4gICAgICB9LFxyXG4gICAgICBbXVxyXG4gICAgKTtcclxuICAgIHRoaXMub25TZWxlY3RGcm9tTWFwKG9sRmVhdHVyZXMsIGV4Y2x1c2l2ZSwgZmFsc2UpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogV2hlbiBmZWF0dXJlcyBhcmUgc2VsZWN0ZWQgZnJvbSB0aGUgc3RvcmUsIGFkZFxyXG4gICAqIHRoZW0gdG8gdGhpcyBzdGFydGVneSdzIG92ZXJsYXkgbGF5ZXIgKHNlbGVjdCBvbiBtYXApXHJcbiAgICogQHBhcmFtIGZlYXR1cmVzIFN0b3JlIGZlYXR1cmVzXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBvblNlbGVjdEZyb21TdG9yZShmZWF0dXJlczogRmVhdHVyZVtdKSB7XHJcbiAgICBjb25zdCBtb3Rpb24gPSB0aGlzLm1vdGlvbjtcclxuICAgIGNvbnN0IG9sT3ZlcmxheUZlYXR1cmVzID0gdGhpcy5vdmVybGF5U3RvcmUubGF5ZXIub2xcclxuICAgICAgLmdldFNvdXJjZSgpXHJcbiAgICAgIC5nZXRGZWF0dXJlcygpO1xyXG4gICAgY29uc3Qgb3ZlcmxheUZlYXR1cmVzS2V5cyA9IG9sT3ZlcmxheUZlYXR1cmVzLm1hcChcclxuICAgICAgKG9sRmVhdHVyZTogT2xGZWF0dXJlPE9sR2VvbWV0cnk+KSA9PiBvbEZlYXR1cmUuZ2V0SWQoKVxyXG4gICAgKTtcclxuICAgIGNvbnN0IGZlYXR1cmVzS2V5cyA9IGZlYXR1cmVzLm1hcCh0aGlzLm92ZXJsYXlTdG9yZS5nZXRLZXkpO1xyXG5cclxuICAgIGxldCBkb01vdGlvbjtcclxuICAgIGlmIChmZWF0dXJlcy5sZW5ndGggPT09IDApIHtcclxuICAgICAgZG9Nb3Rpb24gPSBmYWxzZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGRvTW90aW9uID1cclxuICAgICAgICBvdmVybGF5RmVhdHVyZXNLZXlzLmxlbmd0aCAhPT0gZmVhdHVyZXNLZXlzLmxlbmd0aCB8fFxyXG4gICAgICAgICFvdmVybGF5RmVhdHVyZXNLZXlzLmV2ZXJ5KFxyXG4gICAgICAgICAgKGtleTogRW50aXR5S2V5KSA9PiBmZWF0dXJlc0tleXMuaW5kZXhPZihrZXkpID49IDBcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMub3ZlcmxheVN0b3JlLnNldExheWVyRmVhdHVyZXMoXHJcbiAgICAgIGZlYXR1cmVzLFxyXG4gICAgICBkb01vdGlvbiA/IG1vdGlvbiA6IEZlYXR1cmVNb3Rpb24uTm9uZSxcclxuICAgICAgdGhpcy5vcHRpb25zLnZpZXdTY2FsZSxcclxuICAgICAgdGhpcy5vcHRpb25zLmFyZWFSYXRpbyxcclxuICAgICAgdGhpcy5vcHRpb25zLmdldEZlYXR1cmVJZFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFdoZW4gZmVhdHVyZXMgYXJlIHNlbGVjdGVkIGZyb20gdGhlIG1hcCwgYWxzbyBzZWxlY3QgdGhlbVxyXG4gICAqIGluIHRoZWlyIHN0b3JlLlxyXG4gICAqIEBwYXJhbSBvbEZlYXR1cmVzIE9MIGZlYXR1cmUgb2JqZWN0c1xyXG4gICAqL1xyXG4gIHByaXZhdGUgb25TZWxlY3RGcm9tTWFwKFxyXG4gICAgb2xGZWF0dXJlczogT2xGZWF0dXJlPE9sR2VvbWV0cnk+W10sXHJcbiAgICBleGNsdXNpdmU6IGJvb2xlYW4sXHJcbiAgICByZXZlcnNlOiBib29sZWFuXHJcbiAgKSB7XHJcbiAgICBjb25zdCBncm91cGVkRmVhdHVyZXMgPSB0aGlzLmdyb3VwRmVhdHVyZXNCeVN0b3JlKG9sRmVhdHVyZXMpO1xyXG5cclxuICAgIHRoaXMuc3RvcmVzLmZvckVhY2goKHN0b3JlOiBGZWF0dXJlU3RvcmUpID0+IHtcclxuICAgICAgY29uc3QgZmVhdHVyZXMgPSBncm91cGVkRmVhdHVyZXMuZ2V0KHN0b3JlKTtcclxuICAgICAgaWYgKGZlYXR1cmVzID09PSB1bmRlZmluZWQgJiYgZXhjbHVzaXZlID09PSB0cnVlKSB7XHJcbiAgICAgICAgdGhpcy51bnNlbGVjdEFsbEZlYXR1cmVzRnJvbVN0b3JlKHN0b3JlKTtcclxuICAgICAgfSBlbHNlIGlmIChmZWF0dXJlcyA9PT0gdW5kZWZpbmVkICYmIGV4Y2x1c2l2ZSA9PT0gZmFsc2UpIHtcclxuICAgICAgICAvLyBEbyBub3RoaW5nXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RGZWF0dXJlc0Zyb21TdG9yZShzdG9yZSwgZmVhdHVyZXMsIGV4Y2x1c2l2ZSwgcmV2ZXJzZSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2VsZWN0IGZlYXR1cmVzIGluIHN0b3JlXHJcbiAgICogQHBhcmFtIHN0b3JlOiBGZWF0dXJlIHN0b3JlXHJcbiAgICogQHBhcmFtIGZlYXR1cmVzIEZlYXR1cmVzXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBzZWxlY3RGZWF0dXJlc0Zyb21TdG9yZShcclxuICAgIHN0b3JlOiBGZWF0dXJlU3RvcmUsXHJcbiAgICBmZWF0dXJlczogRmVhdHVyZVtdLFxyXG4gICAgZXhjbHVzaXZlOiBib29sZWFuLFxyXG4gICAgcmV2ZXJzZTogYm9vbGVhblxyXG4gICkge1xyXG4gICAgaWYgKHJldmVyc2UgPT09IHRydWUpIHtcclxuICAgICAgc3RvcmUuc3RhdGUucmV2ZXJzZU1hbnkoZmVhdHVyZXMsIFsnc2VsZWN0ZWQnXSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBzdG9yZS5zdGF0ZS51cGRhdGVNYW55KGZlYXR1cmVzLCB7IHNlbGVjdGVkOiB0cnVlIH0sIGV4Y2x1c2l2ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVbnNlbGVjdCBhbGwgZmVhdHVyZXMgZnJvbSBzdG9yZVxyXG4gICAqIEBwYXJhbSBzdG9yZTogRmVhdHVyZSBzdG9yZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgdW5zZWxlY3RBbGxGZWF0dXJlc0Zyb21TdG9yZShzdG9yZTogRmVhdHVyZVN0b3JlKSB7XHJcbiAgICBzdG9yZS5zdGF0ZS51cGRhdGVBbGwoeyBzZWxlY3RlZDogZmFsc2UgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBUaGlzIG1ldGhvZCByZXR1cm5zIGEgc3RvcmUgLT4gZmVhdHVyZXMgbWFwcGluZyBmcm9tIGEgbGlzdFxyXG4gICAqIG9mIE9MIHNlbGVjdGVkIGZlYXR1cmVzLiBPTCBmZWF0dXJlcyBrZWVwIGEgcmVmZXJlbmNlIHRvIHRoZSBzdG9yZVxyXG4gICAqIHRoZXkgYXJlIGZyb20uXHJcbiAgICogQHBhcmFtIG9sRmVhdHVyZXM6IE9MIGZlYXR1cmUgb2JqZWN0c1xyXG4gICAqIEByZXR1cm5zIFN0b3JlIC0+IGZlYXR1cmVzIG1hcHBpbmdcclxuICAgKi9cclxuICBwcml2YXRlIGdyb3VwRmVhdHVyZXNCeVN0b3JlKFxyXG4gICAgb2xGZWF0dXJlczogT2xGZWF0dXJlPE9sR2VvbWV0cnk+W11cclxuICApOiBNYXA8RmVhdHVyZVN0b3JlLCBGZWF0dXJlW10+IHtcclxuICAgIGNvbnN0IGdyb3VwZWRGZWF0dXJlcyA9IG5ldyBNYXA8RmVhdHVyZVN0b3JlLCBGZWF0dXJlW10+KCk7XHJcbiAgICBpZiAob2xGZWF0dXJlcyA9PT0gbnVsbCB8fCBvbEZlYXR1cmVzID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgcmV0dXJuIGdyb3VwZWRGZWF0dXJlcztcclxuICAgIH1cclxuXHJcbiAgICBvbEZlYXR1cmVzLmZvckVhY2goKG9sRmVhdHVyZTogT2xGZWF0dXJlPE9sR2VvbWV0cnk+KSA9PiB7XHJcbiAgICAgIGNvbnN0IHN0b3JlID0gb2xGZWF0dXJlLmdldCgnX2ZlYXR1cmVTdG9yZScpO1xyXG4gICAgICBpZiAoc3RvcmUgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG5cclxuICAgICAgbGV0IGZlYXR1cmVzID0gZ3JvdXBlZEZlYXR1cmVzLmdldChzdG9yZSk7XHJcbiAgICAgIGlmIChmZWF0dXJlcyA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgZmVhdHVyZXMgPSBbXTtcclxuICAgICAgICBncm91cGVkRmVhdHVyZXMuc2V0KHN0b3JlLCBmZWF0dXJlcyk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNvbnN0IGZlYXR1cmUgPSBzdG9yZS5nZXQob2xGZWF0dXJlLmdldElkKCkpO1xyXG4gICAgICBpZiAoZmVhdHVyZSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgZmVhdHVyZXMucHVzaChmZWF0dXJlKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgcmV0dXJuIGdyb3VwZWRGZWF0dXJlcztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENyZWF0ZSBhbiBvdmVybGF5IHN0b3JlIHRoYXQnbGwgY29udGFpbiB0aGUgc2VsZWN0ZWQgZmVhdHVyZXMuXHJcbiAgICogQHJldHVybnMgT3ZlcmxheSBzdG9yZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgY3JlYXRlT3ZlcmxheVN0b3JlKCk6IEZlYXR1cmVTdG9yZSB7XHJcbiAgICBjb25zdCBvdmVybGF5TGF5ZXIgPSB0aGlzLm9wdGlvbnMubGF5ZXJcclxuICAgICAgPyB0aGlzLm9wdGlvbnMubGF5ZXJcclxuICAgICAgOiB0aGlzLmNyZWF0ZU92ZXJsYXlMYXllcigpO1xyXG4gICAgcmV0dXJuIG5ldyBGZWF0dXJlU3RvcmUoW10sIHsgbWFwOiB0aGlzLm1hcCB9KS5iaW5kTGF5ZXIob3ZlcmxheUxheWVyKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENyZWF0ZSBhbiBvdmVybGF5IHN0b3JlIHRoYXQnbGwgY29udGFpbiB0aGUgc2VsZWN0ZWQgZmVhdHVyZXMuXHJcbiAgICogQHJldHVybnMgT3ZlcmxheSBsYXllclxyXG4gICAqL1xyXG4gIHByaXZhdGUgY3JlYXRlT3ZlcmxheUxheWVyKCk6IFZlY3RvckxheWVyIHtcclxuICAgIHJldHVybiBuZXcgVmVjdG9yTGF5ZXIoe1xyXG4gICAgICB6SW5kZXg6IDMwMCxcclxuICAgICAgc291cmNlOiBuZXcgRmVhdHVyZURhdGFTb3VyY2UoKSxcclxuICAgICAgc3R5bGU6IHVuZGVmaW5lZCxcclxuICAgICAgc2hvd0luTGF5ZXJMaXN0OiBmYWxzZSxcclxuICAgICAgZXhwb3J0YWJsZTogZmFsc2UsXHJcbiAgICAgIGJyb3dzYWJsZTogZmFsc2VcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQWRkIHRoZSBvdmVybGF5IHN0b3JlJ3MgbGF5ZXIgdG8gdGhlIG1hcCB0byBkaXNwbGF5IHRoZSBzZWxlY3RlZFxyXG4gICAqIGZlYXR1cmVzLlxyXG4gICAqL1xyXG4gIHByaXZhdGUgYWRkT3ZlcmxheUxheWVyKCkge1xyXG4gICAgaWYgKHRoaXMub3ZlcmxheVN0b3JlLmxheWVyLm1hcCA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRoaXMubWFwLmFkZExheWVyKHRoaXMub3ZlcmxheVN0b3JlLmxheWVyKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlbW92ZSB0aGUgb3ZlcmxheSBsYXllciBmcm9tIHRoZSBtYXBcclxuICAgKi9cclxuICBwcml2YXRlIHJlbW92ZU92ZXJsYXlMYXllcigpIHtcclxuICAgIHRoaXMub3ZlcmxheVN0b3JlLnNvdXJjZS5vbC5jbGVhcigpO1xyXG4gICAgdGhpcy5tYXAucmVtb3ZlTGF5ZXIodGhpcy5vdmVybGF5U3RvcmUubGF5ZXIpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -34,4 +34,4 @@ export function tryAddSelectionStrategy(store, strategy) {
34
34
  store.addStrategy(strategy);
35
35
  strategy.activate();
36
36
  }
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyYXRlZ2llcy51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2ZlYXR1cmUvc2hhcmVkL3N0cmF0ZWdpZXMudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbkUsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFdkU7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUscUJBQXFCLENBQ25DLEtBQW1CLEVBQ25CLFFBQXNDO0lBRXRDLElBQUksS0FBSyxDQUFDLGlCQUFpQixDQUFDLDJCQUEyQixDQUFDLEtBQUssU0FBUyxFQUFFO1FBQ3RFLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1FBQzFELE9BQU87S0FDUjtJQUVELFFBQVEsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSwyQkFBMkIsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNyRSxLQUFLLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzVCLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztBQUN0QixDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsdUJBQXVCLENBQ3JDLEtBQW1CLEVBQ25CLFFBQXdDO0lBRXhDLElBQUksS0FBSyxDQUFDLGlCQUFpQixDQUFDLDZCQUE2QixDQUFDLEtBQUssU0FBUyxFQUFFO1FBQ3hFLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO1FBQzVELE9BQU87S0FDUjtJQUNELFFBQVEsR0FBRyxRQUFRO1FBQ2pCLENBQUMsQ0FBQyxRQUFRO1FBQ1YsQ0FBQyxDQUFDLElBQUksNkJBQTZCLENBQUM7WUFDaEMsR0FBRyxFQUFFLEtBQUssQ0FBQyxHQUFHO1NBQ2YsQ0FBQyxDQUFDO0lBQ1AsS0FBSyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM1QixRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7QUFDdEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZlYXR1cmVTdG9yZSB9IGZyb20gJy4vc3RvcmUnO1xyXG5pbXBvcnQgeyBGZWF0dXJlU3RvcmVMb2FkaW5nU3RyYXRlZ3kgfSBmcm9tICcuL3N0cmF0ZWdpZXMvbG9hZGluZyc7XHJcbmltcG9ydCB7IEZlYXR1cmVTdG9yZVNlbGVjdGlvblN0cmF0ZWd5IH0gZnJvbSAnLi9zdHJhdGVnaWVzL3NlbGVjdGlvbic7XHJcblxyXG4vKipcclxuICogVHJ5IHRvIGFkZCBhIGxvYWRpbmcgc3RyYXRlZ3kgdG8gYSBzdG9yZSBhbmQgYWN0aXZhdGUgaXQuXHJcbiAqIElmIG5vIHN0cmF0ZWd5IGlzIGdpdmVuIHRvIHRoYXQgZnVuY3Rpb24sIGEgYmFzaWMgb25lIHdpbGwgYmUgY3JlYXRlZC5cclxuICogQHBhcmFtIHN0b3JlIFRoZSBzdG9yZSB0byBiaW5kIHRoZSBsb2FkaW5nIHN0cmF0ZWd5XHJcbiAqIEBwYXJhbSBzdHJhdGVneSBBbiBvcHRpb25hbCBsb2FkaW5nIHN0cmF0ZWd5XHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gdHJ5QWRkTG9hZGluZ1N0cmF0ZWd5KFxyXG4gIHN0b3JlOiBGZWF0dXJlU3RvcmUsXHJcbiAgc3RyYXRlZ3k/OiBGZWF0dXJlU3RvcmVMb2FkaW5nU3RyYXRlZ3lcclxuKSB7XHJcbiAgaWYgKHN0b3JlLmdldFN0cmF0ZWd5T2ZUeXBlKEZlYXR1cmVTdG9yZUxvYWRpbmdTdHJhdGVneSkgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgc3RvcmUuYWN0aXZhdGVTdHJhdGVneU9mVHlwZShGZWF0dXJlU3RvcmVMb2FkaW5nU3RyYXRlZ3kpO1xyXG4gICAgcmV0dXJuO1xyXG4gIH1cclxuXHJcbiAgc3RyYXRlZ3kgPSBzdHJhdGVneSA/IHN0cmF0ZWd5IDogbmV3IEZlYXR1cmVTdG9yZUxvYWRpbmdTdHJhdGVneSh7fSk7XHJcbiAgc3RvcmUuYWRkU3RyYXRlZ3koc3RyYXRlZ3kpO1xyXG4gIHN0cmF0ZWd5LmFjdGl2YXRlKCk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBUcnkgdG8gYWRkIGEgc2VsZWN0aW9uIHN0cmF0ZWd5IHRvIGEgc3RvcmUgYW5kIGFjdGl2YXRlIGl0LlxyXG4gKiBJZiBubyBzdHJhdGVneSBpcyBnaXZlbiB0byB0aGF0IGZ1bmN0aW9uLCBhIGJhc2ljIG9uZSB3aWxsIGJlIGNyZWF0ZWQuXHJcbiAqIEBwYXJhbSBzdG9yZSBUaGUgc3RvcmUgdG8gYmluZCB0aGUgc2VsZWN0aW9uIHN0cmF0ZWd5XHJcbiAqIEBwYXJhbSBbc3RyYXRlZ3ldIEFuIG9wdGlvbmFsIHNlbGVjdGlvbiBzdHJhdGVneVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHRyeUFkZFNlbGVjdGlvblN0cmF0ZWd5KFxyXG4gIHN0b3JlOiBGZWF0dXJlU3RvcmUsXHJcbiAgc3RyYXRlZ3k/OiBGZWF0dXJlU3RvcmVTZWxlY3Rpb25TdHJhdGVneVxyXG4pIHtcclxuICBpZiAoc3RvcmUuZ2V0U3RyYXRlZ3lPZlR5cGUoRmVhdHVyZVN0b3JlU2VsZWN0aW9uU3RyYXRlZ3kpICE9PSB1bmRlZmluZWQpIHtcclxuICAgIHN0b3JlLmFjdGl2YXRlU3RyYXRlZ3lPZlR5cGUoRmVhdHVyZVN0b3JlU2VsZWN0aW9uU3RyYXRlZ3kpO1xyXG4gICAgcmV0dXJuO1xyXG4gIH1cclxuICBzdHJhdGVneSA9IHN0cmF0ZWd5XHJcbiAgICA/IHN0cmF0ZWd5XHJcbiAgICA6IG5ldyBGZWF0dXJlU3RvcmVTZWxlY3Rpb25TdHJhdGVneSh7XHJcbiAgICAgICAgbWFwOiBzdG9yZS5tYXBcclxuICAgICAgfSk7XHJcbiAgc3RvcmUuYWRkU3RyYXRlZ3koc3RyYXRlZ3kpO1xyXG4gIHN0cmF0ZWd5LmFjdGl2YXRlKCk7XHJcbn1cclxuIl19
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyYXRlZ2llcy51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2ZlYXR1cmUvc2hhcmVkL3N0cmF0ZWdpZXMudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbkUsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFdkU7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUscUJBQXFCLENBQ25DLEtBQW1CLEVBQ25CLFFBQXNDO0lBRXRDLElBQUksS0FBSyxDQUFDLGlCQUFpQixDQUFDLDJCQUEyQixDQUFDLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDdkUsS0FBSyxDQUFDLHNCQUFzQixDQUFDLDJCQUEyQixDQUFDLENBQUM7UUFDMUQsT0FBTztJQUNULENBQUM7SUFFRCxRQUFRLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksMkJBQTJCLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDckUsS0FBSyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM1QixRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7QUFDdEIsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLHVCQUF1QixDQUNyQyxLQUFtQixFQUNuQixRQUF3QztJQUV4QyxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyw2QkFBNkIsQ0FBQyxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQ3pFLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO1FBQzVELE9BQU87SUFDVCxDQUFDO0lBQ0QsUUFBUSxHQUFHLFFBQVE7UUFDakIsQ0FBQyxDQUFDLFFBQVE7UUFDVixDQUFDLENBQUMsSUFBSSw2QkFBNkIsQ0FBQztZQUNoQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEdBQUc7U0FDZixDQUFDLENBQUM7SUFDUCxLQUFLLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzVCLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztBQUN0QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmVhdHVyZVN0b3JlIH0gZnJvbSAnLi9zdG9yZSc7XHJcbmltcG9ydCB7IEZlYXR1cmVTdG9yZUxvYWRpbmdTdHJhdGVneSB9IGZyb20gJy4vc3RyYXRlZ2llcy9sb2FkaW5nJztcclxuaW1wb3J0IHsgRmVhdHVyZVN0b3JlU2VsZWN0aW9uU3RyYXRlZ3kgfSBmcm9tICcuL3N0cmF0ZWdpZXMvc2VsZWN0aW9uJztcclxuXHJcbi8qKlxyXG4gKiBUcnkgdG8gYWRkIGEgbG9hZGluZyBzdHJhdGVneSB0byBhIHN0b3JlIGFuZCBhY3RpdmF0ZSBpdC5cclxuICogSWYgbm8gc3RyYXRlZ3kgaXMgZ2l2ZW4gdG8gdGhhdCBmdW5jdGlvbiwgYSBiYXNpYyBvbmUgd2lsbCBiZSBjcmVhdGVkLlxyXG4gKiBAcGFyYW0gc3RvcmUgVGhlIHN0b3JlIHRvIGJpbmQgdGhlIGxvYWRpbmcgc3RyYXRlZ3lcclxuICogQHBhcmFtIHN0cmF0ZWd5IEFuIG9wdGlvbmFsIGxvYWRpbmcgc3RyYXRlZ3lcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiB0cnlBZGRMb2FkaW5nU3RyYXRlZ3koXHJcbiAgc3RvcmU6IEZlYXR1cmVTdG9yZSxcclxuICBzdHJhdGVneT86IEZlYXR1cmVTdG9yZUxvYWRpbmdTdHJhdGVneVxyXG4pIHtcclxuICBpZiAoc3RvcmUuZ2V0U3RyYXRlZ3lPZlR5cGUoRmVhdHVyZVN0b3JlTG9hZGluZ1N0cmF0ZWd5KSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICBzdG9yZS5hY3RpdmF0ZVN0cmF0ZWd5T2ZUeXBlKEZlYXR1cmVTdG9yZUxvYWRpbmdTdHJhdGVneSk7XHJcbiAgICByZXR1cm47XHJcbiAgfVxyXG5cclxuICBzdHJhdGVneSA9IHN0cmF0ZWd5ID8gc3RyYXRlZ3kgOiBuZXcgRmVhdHVyZVN0b3JlTG9hZGluZ1N0cmF0ZWd5KHt9KTtcclxuICBzdG9yZS5hZGRTdHJhdGVneShzdHJhdGVneSk7XHJcbiAgc3RyYXRlZ3kuYWN0aXZhdGUoKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFRyeSB0byBhZGQgYSBzZWxlY3Rpb24gc3RyYXRlZ3kgdG8gYSBzdG9yZSBhbmQgYWN0aXZhdGUgaXQuXHJcbiAqIElmIG5vIHN0cmF0ZWd5IGlzIGdpdmVuIHRvIHRoYXQgZnVuY3Rpb24sIGEgYmFzaWMgb25lIHdpbGwgYmUgY3JlYXRlZC5cclxuICogQHBhcmFtIHN0b3JlIFRoZSBzdG9yZSB0byBiaW5kIHRoZSBzZWxlY3Rpb24gc3RyYXRlZ3lcclxuICogQHBhcmFtIFtzdHJhdGVneV0gQW4gb3B0aW9uYWwgc2VsZWN0aW9uIHN0cmF0ZWd5XHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gdHJ5QWRkU2VsZWN0aW9uU3RyYXRlZ3koXHJcbiAgc3RvcmU6IEZlYXR1cmVTdG9yZSxcclxuICBzdHJhdGVneT86IEZlYXR1cmVTdG9yZVNlbGVjdGlvblN0cmF0ZWd5XHJcbikge1xyXG4gIGlmIChzdG9yZS5nZXRTdHJhdGVneU9mVHlwZShGZWF0dXJlU3RvcmVTZWxlY3Rpb25TdHJhdGVneSkgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgc3RvcmUuYWN0aXZhdGVTdHJhdGVneU9mVHlwZShGZWF0dXJlU3RvcmVTZWxlY3Rpb25TdHJhdGVneSk7XHJcbiAgICByZXR1cm47XHJcbiAgfVxyXG4gIHN0cmF0ZWd5ID0gc3RyYXRlZ3lcclxuICAgID8gc3RyYXRlZ3lcclxuICAgIDogbmV3IEZlYXR1cmVTdG9yZVNlbGVjdGlvblN0cmF0ZWd5KHtcclxuICAgICAgICBtYXA6IHN0b3JlLm1hcFxyXG4gICAgICB9KTtcclxuICBzdG9yZS5hZGRTdHJhdGVneShzdHJhdGVneSk7XHJcbiAgc3RyYXRlZ3kuYWN0aXZhdGUoKTtcclxufVxyXG4iXX0=