@igo2/geo 17.0.0 → 17.0.1-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 (366) hide show
  1. package/esm2022/lib/catalog/catalog-browser/catalog-browser-group.component.mjs +4 -4
  2. package/esm2022/lib/catalog/catalog-browser/catalog-browser-layer.component.mjs +6 -6
  3. package/esm2022/lib/catalog/catalog-browser/catalog-browser.component.mjs +4 -4
  4. package/esm2022/lib/catalog/catalog-browser/catalog-browser.module.mjs +4 -4
  5. package/esm2022/lib/catalog/catalog-library/add-catalog-dialog.component.mjs +3 -3
  6. package/esm2022/lib/catalog/catalog-library/catalog-library-item.component.mjs +3 -3
  7. package/esm2022/lib/catalog/catalog-library/catalog-library.component.mjs +4 -4
  8. package/esm2022/lib/catalog/catalog-library/catalog-library.module.mjs +4 -4
  9. package/esm2022/lib/catalog/catalog.module.mjs +4 -4
  10. package/esm2022/lib/catalog/shared/catalog.abstract.mjs +1 -1
  11. package/esm2022/lib/catalog/shared/catalog.interface.mjs +1 -1
  12. package/esm2022/lib/catalog/shared/catalog.service.mjs +17 -21
  13. package/esm2022/lib/datasource/shared/capabilities.interface.mjs +3 -1
  14. package/esm2022/lib/datasource/shared/capabilities.service.mjs +3 -3
  15. package/esm2022/lib/datasource/shared/datasource.service.mjs +6 -5
  16. package/esm2022/lib/datasource/shared/datasources/arcgisrest-datasource.mjs +5 -3
  17. package/esm2022/lib/datasource/shared/datasources/carto-datasource.mjs +4 -2
  18. package/esm2022/lib/datasource/shared/datasources/cluster-datasource.interface.mjs +1 -1
  19. package/esm2022/lib/datasource/shared/datasources/cluster-datasource.mjs +4 -2
  20. package/esm2022/lib/datasource/shared/datasources/datasource.interface.mjs +1 -1
  21. package/esm2022/lib/datasource/shared/datasources/datasource.mjs +2 -2
  22. package/esm2022/lib/datasource/shared/datasources/feature-datasource.interface.mjs +1 -1
  23. package/esm2022/lib/datasource/shared/datasources/feature-datasource.mjs +4 -2
  24. package/esm2022/lib/datasource/shared/datasources/imagearcgisrest-datasource.mjs +4 -2
  25. package/esm2022/lib/datasource/shared/datasources/mvt-datasource.interface.mjs +1 -1
  26. package/esm2022/lib/datasource/shared/datasources/mvt-datasource.mjs +4 -2
  27. package/esm2022/lib/datasource/shared/datasources/osm-datasource.mjs +4 -2
  28. package/esm2022/lib/datasource/shared/datasources/tilearcgisrest-datasource.mjs +4 -2
  29. package/esm2022/lib/datasource/shared/datasources/tiledebug-datasource.mjs +4 -2
  30. package/esm2022/lib/datasource/shared/datasources/websocket-datasource.mjs +6 -5
  31. package/esm2022/lib/datasource/shared/datasources/wfs-datasource.mjs +4 -2
  32. package/esm2022/lib/datasource/shared/datasources/wfs.service.mjs +7 -6
  33. package/esm2022/lib/datasource/shared/datasources/wms-datasource.interface.mjs +1 -1
  34. package/esm2022/lib/datasource/shared/datasources/wms-datasource.mjs +4 -2
  35. package/esm2022/lib/datasource/shared/datasources/wms-wfs.utils.mjs +1 -1
  36. package/esm2022/lib/datasource/shared/datasources/wmts-datasource.mjs +4 -2
  37. package/esm2022/lib/datasource/shared/datasources/xyz-datasource.interface.mjs +1 -1
  38. package/esm2022/lib/datasource/shared/datasources/xyz-datasource.mjs +4 -2
  39. package/esm2022/lib/datasource/shared/options/options-api.service.mjs +4 -4
  40. package/esm2022/lib/directions/directions-buttons/directions-buttons.component.mjs +4 -4
  41. package/esm2022/lib/directions/directions-inputs/directions-inputs.component.mjs +4 -4
  42. package/esm2022/lib/directions/directions-results/directions-results.component.mjs +3 -3
  43. package/esm2022/lib/directions/directions-sources/osrm-directions-source.mjs +3 -3
  44. package/esm2022/lib/directions/directions.component.mjs +6 -7
  45. package/esm2022/lib/directions/directions.module.mjs +4 -4
  46. package/esm2022/lib/directions/shared/directions.interface.mjs +1 -1
  47. package/esm2022/lib/directions/shared/directions.service.mjs +12 -11
  48. package/esm2022/lib/directions/shared/directions.utils.mjs +3 -3
  49. package/esm2022/lib/directions/shared/store.mjs +1 -1
  50. package/esm2022/lib/download/download-button/download-button.component.mjs +3 -3
  51. package/esm2022/lib/download/download.module.mjs +4 -4
  52. package/esm2022/lib/download/shared/download.service.mjs +3 -3
  53. package/esm2022/lib/draw/draw/draw-layer-popup.component.mjs +4 -4
  54. package/esm2022/lib/draw/draw/draw-popup.component.mjs +9 -9
  55. package/esm2022/lib/draw/draw/draw-shorcuts.component.mjs +3 -3
  56. package/esm2022/lib/draw/draw/draw.component.mjs +15 -19
  57. package/esm2022/lib/draw/draw/draw.module.mjs +4 -4
  58. package/esm2022/lib/draw/drawingTool.module.mjs +4 -4
  59. package/esm2022/lib/draw/shared/draw-icon.service.mjs +4 -4
  60. package/esm2022/lib/draw/shared/draw.interface.mjs +1 -1
  61. package/esm2022/lib/draw/shared/draw.utils.mjs +3 -3
  62. package/esm2022/lib/feature/feature-details/feature-details.component.mjs +6 -6
  63. package/esm2022/lib/feature/feature-details/feature-details.directive.mjs +3 -3
  64. package/esm2022/lib/feature/feature-details/feature-details.module.mjs +4 -4
  65. package/esm2022/lib/feature/feature-form/feature-form.component.mjs +5 -6
  66. package/esm2022/lib/feature/feature-form/feature-form.module.mjs +4 -4
  67. package/esm2022/lib/feature/feature.module.mjs +4 -4
  68. package/esm2022/lib/feature/shared/feature.interfaces.mjs +1 -1
  69. package/esm2022/lib/feature/shared/feature.utils.mjs +1 -2
  70. package/esm2022/lib/feature/shared/store.mjs +4 -4
  71. package/esm2022/lib/feature/shared/strategies/geo-properties.mjs +2 -2
  72. package/esm2022/lib/feature/shared/strategies/loading-layer.mjs +2 -3
  73. package/esm2022/lib/feature/shared/strategies/search.mjs +2 -3
  74. package/esm2022/lib/feature/shared/strategies/selection.mjs +1 -1
  75. package/esm2022/lib/filter/filter.module.mjs +4 -4
  76. package/esm2022/lib/filter/ogc-filter-button/ogc-filter-button.component.mjs +5 -6
  77. package/esm2022/lib/filter/ogc-filter-form/ogc-filter-form.component.mjs +5 -5
  78. package/esm2022/lib/filter/ogc-filter-selection/ogc-filter-selection.component.mjs +9 -29
  79. package/esm2022/lib/filter/ogc-filter-time/ogc-filter-time-slider.component.mjs +8 -9
  80. package/esm2022/lib/filter/ogc-filter-time/ogc-filter-time.component.mjs +5 -5
  81. package/esm2022/lib/filter/ogc-filterable-form/ogc-filterable-form.component.mjs +5 -6
  82. package/esm2022/lib/filter/ogc-filterable-item/ogc-filterable-item.component.mjs +4 -4
  83. package/esm2022/lib/filter/ogc-filterable-list/ogc-filterable-list-binding.directive.mjs +3 -3
  84. package/esm2022/lib/filter/ogc-filterable-list/ogc-filterable-list.component.mjs +5 -6
  85. package/esm2022/lib/filter/shared/filterable-datasource.pipe.mjs +3 -3
  86. package/esm2022/lib/filter/shared/ogc-filter-time.service.mjs +5 -6
  87. package/esm2022/lib/filter/shared/ogc-filter.interface.mjs +1 -1
  88. package/esm2022/lib/filter/shared/ogc-filter.mjs +3 -2
  89. package/esm2022/lib/filter/shared/ogc-filter.service.mjs +5 -6
  90. package/esm2022/lib/filter/shared/spatial-filter.service.mjs +7 -7
  91. package/esm2022/lib/filter/shared/time-filter.service.mjs +5 -6
  92. package/esm2022/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.mjs +5 -5
  93. package/esm2022/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.mjs +3 -3
  94. package/esm2022/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.mjs +7 -8
  95. package/esm2022/lib/filter/time-filter-button/time-filter-button.component.mjs +5 -6
  96. package/esm2022/lib/filter/time-filter-form/time-filter-form.component.mjs +17 -17
  97. package/esm2022/lib/filter/time-filter-item/time-filter-item.component.mjs +4 -4
  98. package/esm2022/lib/filter/time-filter-list/time-filter-list-binding.directive.mjs +3 -3
  99. package/esm2022/lib/filter/time-filter-list/time-filter-list.component.mjs +3 -3
  100. package/esm2022/lib/geo.module.mjs +5 -9
  101. package/esm2022/lib/geometry/geometry-form-field/geometry-form-field-input.component.mjs +7 -8
  102. package/esm2022/lib/geometry/geometry-form-field/geometry-form-field.component.mjs +4 -4
  103. package/esm2022/lib/geometry/geometry-form-field/geometry-form-field.module.mjs +4 -4
  104. package/esm2022/lib/geometry/geometry.module.mjs +4 -4
  105. package/esm2022/lib/geometry/shared/controls/draw.mjs +1 -1
  106. package/esm2022/lib/geometry/shared/controls/modify.mjs +1 -4
  107. package/esm2022/lib/geometry/shared/controls/slice.mjs +3 -3
  108. package/esm2022/lib/geometry/shared/geometry.errors.mjs +1 -3
  109. package/esm2022/lib/geometry/shared/geometry.utils.mjs +2 -11
  110. package/esm2022/lib/import-export/export-button/export-button.component.mjs +5 -6
  111. package/esm2022/lib/import-export/import-export/import-export.component.mjs +25 -18
  112. package/esm2022/lib/import-export/import-export.module.mjs +4 -4
  113. package/esm2022/lib/import-export/shared/drop-geo-file.directive.mjs +4 -4
  114. package/esm2022/lib/import-export/shared/export.service.mjs +5 -4
  115. package/esm2022/lib/import-export/shared/export.utils.mjs +2 -2
  116. package/esm2022/lib/import-export/shared/import.service.mjs +6 -6
  117. package/esm2022/lib/import-export/shared/import.utils.mjs +1 -1
  118. package/esm2022/lib/layer/layer-item/layer-item.component.mjs +4 -4
  119. package/esm2022/lib/layer/layer-legend/layer-legend.component.mjs +7 -7
  120. package/esm2022/lib/layer/layer-legend-item/layer-legend-item.component.mjs +4 -4
  121. package/esm2022/lib/layer/layer-legend-list/layer-legend-list-binding.directive.mjs +5 -5
  122. package/esm2022/lib/layer/layer-legend-list/layer-legend-list.component.mjs +5 -6
  123. package/esm2022/lib/layer/layer-list/layer-list-binding.directive.mjs +3 -3
  124. package/esm2022/lib/layer/layer-list/layer-list.component.mjs +4 -4
  125. package/esm2022/lib/layer/layer-list-tool/layer-list-tool.component.mjs +4 -4
  126. package/esm2022/lib/layer/layer-list-tool/layer-list-tool.service.mjs +5 -6
  127. package/esm2022/lib/layer/layer.module.mjs +4 -4
  128. package/esm2022/lib/layer/shared/clusterParam.mjs +1 -1
  129. package/esm2022/lib/layer/shared/layer.service.mjs +6 -5
  130. package/esm2022/lib/layer/shared/layers/image-layer.mjs +2 -2
  131. package/esm2022/lib/layer/shared/layers/layer.interface.mjs +1 -1
  132. package/esm2022/lib/layer/shared/layers/layer.mjs +1 -3
  133. package/esm2022/lib/layer/shared/layers/tile-layer.mjs +2 -2
  134. package/esm2022/lib/layer/shared/layers/vector-layer.mjs +5 -5
  135. package/esm2022/lib/layer/shared/layers/vectortile-layer.mjs +3 -3
  136. package/esm2022/lib/layer/track-feature-button/track-feature-button.component.mjs +6 -7
  137. package/esm2022/lib/layer/utils/outputLegend.mjs +3 -3
  138. package/esm2022/lib/layer/utils/vector-watcher.mjs +9 -9
  139. package/esm2022/lib/map/baselayers-switcher/baselayers-switcher.component.mjs +3 -3
  140. package/esm2022/lib/map/baselayers-switcher/mini-basemap.component.mjs +3 -3
  141. package/esm2022/lib/map/geolocate-button/geolocate-button.component.mjs +7 -7
  142. package/esm2022/lib/map/home-extent-button/home-extent-button.component.mjs +3 -3
  143. package/esm2022/lib/map/info-section/info-section.component.mjs +5 -6
  144. package/esm2022/lib/map/map-browser/map-browser.component.mjs +3 -3
  145. package/esm2022/lib/map/map-center/map-center.component.mjs +9 -9
  146. package/esm2022/lib/map/map.module.mjs +4 -4
  147. package/esm2022/lib/map/menu-button/menu-button.component.mjs +3 -3
  148. package/esm2022/lib/map/offline-button/offline-button.component.mjs +5 -6
  149. package/esm2022/lib/map/rotation-button/rotation-button.component.mjs +5 -6
  150. package/esm2022/lib/map/shared/controllers/geolocation.mjs +10 -10
  151. package/esm2022/lib/map/shared/controllers/view.mjs +3 -3
  152. package/esm2022/lib/map/shared/hover-feature.directive.mjs +8 -11
  153. package/esm2022/lib/map/shared/linkedLayers.utils.mjs +5 -5
  154. package/esm2022/lib/map/shared/map-pointer-position.directive.mjs +4 -4
  155. package/esm2022/lib/map/shared/map.mjs +4 -4
  156. package/esm2022/lib/map/shared/map.service.mjs +5 -6
  157. package/esm2022/lib/map/shared/map.utils.mjs +2 -3
  158. package/esm2022/lib/map/shared/mapOffline.directive.mjs +3 -3
  159. package/esm2022/lib/map/shared/projection.service.mjs +3 -3
  160. package/esm2022/lib/map/shared/projection.utils.mjs +2 -3
  161. package/esm2022/lib/map/swipe-control/swipe-control.component.mjs +7 -6
  162. package/esm2022/lib/map/utils/layer-watcher.mjs +4 -2
  163. package/esm2022/lib/map/wake-lock-button/wake-lock-button.component.mjs +5 -4
  164. package/esm2022/lib/map/zoom-button/zoom-button.component.mjs +5 -6
  165. package/esm2022/lib/measure/measure.module.mjs +4 -4
  166. package/esm2022/lib/measure/measurer/measure-format.pipe.mjs +5 -5
  167. package/esm2022/lib/measure/measurer/measurer-dialog.component.mjs +3 -3
  168. package/esm2022/lib/measure/measurer/measurer-item.component.mjs +5 -6
  169. package/esm2022/lib/measure/measurer/measurer.component.mjs +8 -16
  170. package/esm2022/lib/measure/measurer/measurer.module.mjs +4 -4
  171. package/esm2022/lib/measure/shared/measure.interfaces.mjs +1 -1
  172. package/esm2022/lib/measure/shared/measure.utils.mjs +1 -1
  173. package/esm2022/lib/metadata/metadata-button/metadata-button.component.mjs +6 -6
  174. package/esm2022/lib/metadata/metadata.module.mjs +4 -4
  175. package/esm2022/lib/metadata/shared/metadata.service.mjs +5 -6
  176. package/esm2022/lib/offline/geoDB/configFileToGeoDB.service.mjs +3 -3
  177. package/esm2022/lib/offline/geoDB/geoDB.service.mjs +6 -6
  178. package/esm2022/lib/offline/layerDB/layerDB.service.mjs +4 -4
  179. package/esm2022/lib/offline/shared/geo-network.service.mjs +4 -4
  180. package/esm2022/lib/overlay/shared/index.mjs +1 -3
  181. package/esm2022/lib/print/print/print.component.mjs +3 -3
  182. package/esm2022/lib/print/print-form/print-form.component.mjs +5 -5
  183. package/esm2022/lib/print/print.module.mjs +4 -4
  184. package/esm2022/lib/print/shared/print.service.mjs +32 -44
  185. package/esm2022/lib/query/query.module.mjs +4 -4
  186. package/esm2022/lib/query/shared/query-search-source.mjs +3 -3
  187. package/esm2022/lib/query/shared/query.directive.mjs +4 -4
  188. package/esm2022/lib/query/shared/query.enums.mjs +3 -1
  189. package/esm2022/lib/query/shared/query.service.mjs +23 -21
  190. package/esm2022/lib/search/search-bar/search-bar.component.mjs +4 -4
  191. package/esm2022/lib/search/search-bar/search-bar.module.mjs +4 -4
  192. package/esm2022/lib/search/search-results/save-feature-dialog.component.mjs +3 -3
  193. package/esm2022/lib/search/search-results/search-results-add-button.component.mjs +7 -9
  194. package/esm2022/lib/search/search-results/search-results-item.component.mjs +10 -12
  195. package/esm2022/lib/search/search-results/search-results.component.mjs +4 -4
  196. package/esm2022/lib/search/search-results/search-results.module.mjs +4 -4
  197. package/esm2022/lib/search/search-selector/search-selector.component.mjs +4 -4
  198. package/esm2022/lib/search/search-selector/search-selector.module.mjs +4 -4
  199. package/esm2022/lib/search/search-settings/search-settings.component.mjs +4 -4
  200. package/esm2022/lib/search/search-settings/search-settings.module.mjs +4 -4
  201. package/esm2022/lib/search/search.module.mjs +4 -4
  202. package/esm2022/lib/search/shared/search-pointer-summary.directive.mjs +5 -4
  203. package/esm2022/lib/search/shared/search.interfaces.mjs +1 -1
  204. package/esm2022/lib/search/shared/search.service.mjs +4 -4
  205. package/esm2022/lib/search/shared/search.utils.mjs +1 -1
  206. package/esm2022/lib/search/shared/sources/cadastre.mjs +3 -3
  207. package/esm2022/lib/search/shared/sources/coordinates.mjs +6 -6
  208. package/esm2022/lib/search/shared/sources/coordinates.providers.mjs +2 -2
  209. package/esm2022/lib/search/shared/sources/icherche-icons.mjs +1 -1
  210. package/esm2022/lib/search/shared/sources/icherche.interfaces.mjs +1 -1
  211. package/esm2022/lib/search/shared/sources/icherche.mjs +14 -13
  212. package/esm2022/lib/search/shared/sources/ilayer.interfaces.mjs +1 -1
  213. package/esm2022/lib/search/shared/sources/ilayer.mjs +10 -10
  214. package/esm2022/lib/search/shared/sources/nominatim.mjs +4 -4
  215. package/esm2022/lib/search/shared/sources/source.interfaces.mjs +1 -1
  216. package/esm2022/lib/search/shared/sources/source.mjs +3 -2
  217. package/esm2022/lib/search/shared/sources/storedqueries.interfaces.mjs +1 -1
  218. package/esm2022/lib/search/shared/sources/storedqueries.mjs +7 -10
  219. package/esm2022/lib/search/shared/sources/workspace.mjs +8 -8
  220. package/esm2022/lib/style/shared/datasource/esri-style-generator.mjs +2 -1
  221. package/esm2022/lib/style/shared/feature/feature-style.mjs +3 -3
  222. package/esm2022/lib/style/shared/overlay/overlay-marker-style.utils.mjs +10 -16
  223. package/esm2022/lib/style/shared/overlay/overlay-style.utils.mjs +1 -1
  224. package/esm2022/lib/style/shared/vector/vector-style.interface.mjs +1 -1
  225. package/esm2022/lib/style/style-list/style-list.interface.mjs +1 -1
  226. package/esm2022/lib/style/style-list/style-list.module.mjs +4 -4
  227. package/esm2022/lib/style/style-list/style-list.provider.mjs +2 -2
  228. package/esm2022/lib/style/style-list/style-list.service.mjs +5 -5
  229. package/esm2022/lib/style/style-modal/drawing/style-modal-drawing.component.mjs +4 -4
  230. package/esm2022/lib/style/style-modal/layer/style-modal-layer.component.mjs +4 -4
  231. package/esm2022/lib/style/style-modal/layer-button/style-modal-layer-button.component.mjs +5 -5
  232. package/esm2022/lib/style/style-service/draw-style.service.mjs +5 -6
  233. package/esm2022/lib/style/style-service/style.service.mjs +4 -4
  234. package/esm2022/lib/style/style.module.mjs +4 -4
  235. package/esm2022/lib/toast/toast.component.mjs +5 -6
  236. package/esm2022/lib/toast/toast.module.mjs +4 -4
  237. package/esm2022/lib/utils/id-generator.mjs +6 -4
  238. package/esm2022/lib/utils/osmLinks.mjs +1 -1
  239. package/esm2022/lib/utils/propertyTypeDetector/propertyTypeDetector.service.mjs +3 -3
  240. package/esm2022/lib/wkt/shared/wkt.service.mjs +7 -8
  241. package/esm2022/lib/wkt/wkt.module.mjs +4 -4
  242. package/esm2022/lib/workspace/confirmation-popup/confirmation-popup.component.mjs +3 -3
  243. package/esm2022/lib/workspace/confirmation-popup/confirmation-popup.module.mjs +4 -4
  244. package/esm2022/lib/workspace/shared/edition-workspace.mjs +1 -1
  245. package/esm2022/lib/workspace/shared/edition-workspace.service.mjs +11 -9
  246. package/esm2022/lib/workspace/shared/feature-workspace.mjs +1 -1
  247. package/esm2022/lib/workspace/shared/feature-workspace.service.mjs +3 -3
  248. package/esm2022/lib/workspace/shared/wfs-workspace.mjs +1 -1
  249. package/esm2022/lib/workspace/shared/wfs-workspace.service.mjs +3 -3
  250. package/esm2022/lib/workspace/shared/wms-workspace.service.mjs +7 -5
  251. package/esm2022/lib/workspace/shared/workspace.utils.mjs +2 -2
  252. package/esm2022/lib/workspace/widgets/ogc-filter/ogc-filter.component.mjs +3 -3
  253. package/esm2022/lib/workspace/widgets/ogc-filter/ogc-filter.module.mjs +4 -4
  254. package/esm2022/lib/workspace/workspace-selector/workspace-selector.directive.mjs +3 -3
  255. package/esm2022/lib/workspace/workspace-selector/workspace-selector.module.mjs +4 -4
  256. package/esm2022/lib/workspace/workspace-updator/workspace-updator.directive.mjs +3 -3
  257. package/esm2022/lib/workspace/workspace-updator/workspace-updator.module.mjs +4 -4
  258. package/esm2022/lib/workspace/workspace.module.mjs +4 -4
  259. package/esm2022/public_api.mjs +1 -2
  260. package/fesm2022/igo2-geo.mjs +943 -1071
  261. package/fesm2022/igo2-geo.mjs.map +1 -1
  262. package/lib/catalog/catalog-browser/catalog-browser-layer.component.d.ts +1 -1
  263. package/lib/catalog/shared/catalog.abstract.d.ts +2 -6
  264. package/lib/catalog/shared/catalog.interface.d.ts +2 -6
  265. package/lib/catalog/shared/catalogs.d.ts +2 -2
  266. package/lib/datasource/shared/datasources/cluster-datasource.interface.d.ts +2 -2
  267. package/lib/datasource/shared/datasources/datasource.d.ts +2 -2
  268. package/lib/datasource/shared/datasources/datasource.interface.d.ts +4 -12
  269. package/lib/datasource/shared/datasources/feature-datasource.interface.d.ts +2 -2
  270. package/lib/datasource/shared/datasources/mvt-datasource.interface.d.ts +2 -2
  271. package/lib/datasource/shared/datasources/websocket-datasource.d.ts +3 -3
  272. package/lib/datasource/shared/datasources/wms-datasource.interface.d.ts +1 -1
  273. package/lib/datasource/shared/datasources/xyz-datasource.interface.d.ts +2 -2
  274. package/lib/directions/shared/directions.interface.d.ts +4 -9
  275. package/lib/directions/shared/directions.utils.d.ts +2 -2
  276. package/lib/draw/draw/draw.component.d.ts +1 -1
  277. package/lib/draw/shared/draw-icon.service.d.ts +1 -1
  278. package/lib/draw/shared/draw.interface.d.ts +1 -2
  279. package/lib/draw/shared/draw.utils.d.ts +1 -1
  280. package/lib/feature/feature-details/feature-details.component.d.ts +1 -3
  281. package/lib/feature/feature-details/feature-details.directive.d.ts +1 -3
  282. package/lib/feature/feature-form/feature-form.component.d.ts +3 -8
  283. package/lib/feature/shared/feature.interfaces.d.ts +11 -17
  284. package/lib/filter/ogc-filter-button/ogc-filter-button.component.d.ts +0 -1
  285. package/lib/filter/ogc-filter-form/ogc-filter-form.component.d.ts +1 -3
  286. package/lib/filter/ogc-filter-selection/ogc-filter-selection.component.d.ts +2 -4
  287. package/lib/filter/ogc-filter-time/ogc-filter-time-slider.component.d.ts +2 -2
  288. package/lib/filter/ogc-filterable-form/ogc-filterable-form.component.d.ts +0 -1
  289. package/lib/filter/ogc-filterable-list/ogc-filterable-list.component.d.ts +0 -1
  290. package/lib/filter/shared/ogc-filter-time.service.d.ts +0 -1
  291. package/lib/filter/shared/ogc-filter.interface.d.ts +2 -4
  292. package/lib/filter/shared/ogc-filter.service.d.ts +0 -1
  293. package/lib/filter/shared/spatial-filter.service.d.ts +1 -3
  294. package/lib/filter/shared/time-filter.service.d.ts +0 -1
  295. package/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.d.ts +2 -6
  296. package/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.d.ts +2 -6
  297. package/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.d.ts +3 -8
  298. package/lib/filter/time-filter-button/time-filter-button.component.d.ts +0 -1
  299. package/lib/filter/time-filter-form/time-filter-form.component.d.ts +10 -10
  300. package/lib/geo.module.d.ts +8 -9
  301. package/lib/geometry/geometry-form-field/geometry-form-field-input.component.d.ts +3 -5
  302. package/lib/geometry/geometry-form-field/geometry-form-field.component.d.ts +1 -3
  303. package/lib/geometry/shared/geometry.utils.d.ts +1 -8
  304. package/lib/import-export/export-button/export-button.component.d.ts +0 -1
  305. package/lib/layer/layer-legend/layer-legend.component.d.ts +1 -3
  306. package/lib/layer/layer-legend-list/layer-legend-list.component.d.ts +0 -1
  307. package/lib/layer/layer-list-tool/layer-list-tool.service.d.ts +0 -1
  308. package/lib/layer/shared/clusterParam.d.ts +1 -3
  309. package/lib/layer/shared/layers/layer.interface.d.ts +1 -3
  310. package/lib/layer/shared/layers/vector-layer.d.ts +1 -1
  311. package/lib/layer/track-feature-button/track-feature-button.component.d.ts +0 -1
  312. package/lib/layer/utils/outputLegend.d.ts +2 -2
  313. package/lib/map/info-section/info-section.component.d.ts +0 -1
  314. package/lib/map/map-center/map-center.component.d.ts +0 -1
  315. package/lib/map/offline-button/offline-button.component.d.ts +0 -1
  316. package/lib/map/rotation-button/rotation-button.component.d.ts +3 -2
  317. package/lib/map/shared/map.d.ts +2 -2
  318. package/lib/map/shared/map.service.d.ts +0 -1
  319. package/lib/map/swipe-control/swipe-control.component.d.ts +0 -1
  320. package/lib/map/zoom-button/zoom-button.component.d.ts +0 -1
  321. package/lib/measure/measurer/measure-format.pipe.d.ts +1 -1
  322. package/lib/measure/measurer/measurer-item.component.d.ts +0 -1
  323. package/lib/measure/shared/measure.interfaces.d.ts +1 -2
  324. package/lib/metadata/shared/metadata.service.d.ts +0 -1
  325. package/lib/overlay/shared/index.d.ts +0 -2
  326. package/lib/print/shared/print.service.d.ts +7 -8
  327. package/lib/query/shared/query.service.d.ts +0 -1
  328. package/lib/search/search-results/search-results.component.d.ts +5 -15
  329. package/lib/search/shared/search.interfaces.d.ts +1 -3
  330. package/lib/search/shared/sources/coordinates.providers.d.ts +1 -1
  331. package/lib/search/shared/sources/icherche-icons.d.ts +1 -3
  332. package/lib/search/shared/sources/icherche.interfaces.d.ts +2 -6
  333. package/lib/search/shared/sources/ilayer.interfaces.d.ts +4 -8
  334. package/lib/search/shared/sources/source.interfaces.d.ts +2 -6
  335. package/lib/search/shared/sources/storedqueries.interfaces.d.ts +2 -6
  336. package/lib/style/shared/feature/feature-style.d.ts +2 -2
  337. package/lib/style/shared/vector/vector-style.interface.d.ts +12 -20
  338. package/lib/style/style-list/style-list.interface.d.ts +1 -3
  339. package/lib/style/style-list/style-list.provider.d.ts +2 -2
  340. package/lib/style/style-service/draw-style.service.d.ts +0 -1
  341. package/lib/style/style-service/style.service.d.ts +1 -3
  342. package/lib/toast/toast.component.d.ts +0 -1
  343. package/lib/utils/id-generator.d.ts +1 -2
  344. package/lib/wkt/shared/wkt.service.d.ts +0 -1
  345. package/lib/workspace/shared/edition-workspace.service.d.ts +2 -6
  346. package/package.json +18 -19
  347. package/public_api.d.ts +0 -1
  348. package/src/lib/catalog/catalog-browser/catalog-browser.theming.scss +1 -1
  349. package/src/lib/directions/directions-results/directions-results.theming.scss +1 -1
  350. package/src/lib/draw/draw.theming.scss +4 -4
  351. package/src/lib/feature/feature-details/feature-details.theming.scss +1 -1
  352. package/src/lib/filter/ogc-filter-selection/ogc-filter-selection.theming.scss +3 -3
  353. package/src/lib/layer/layer-item/layer-item.theme.scss +4 -4
  354. package/src/lib/layer/layer-legend/layer-legend.theming.scss +1 -1
  355. package/src/lib/layer/layer-list-tool/layer-list-tool.theming.scss +1 -1
  356. package/src/lib/map/map-browser/map-browser.theming.scss +5 -5
  357. package/src/lib/map/menu-button/menu-button.theming.scss +2 -2
  358. package/src/lib/map/zoom-button/zoom-button.theming.scss +4 -4
  359. package/src/lib/measure/measurer/measurer.theming.scss +2 -2
  360. package/src/lib/workspace/confirmation-popup/confirmation-popup.theming.scss +2 -2
  361. package/esm2022/lib/overlay/overlay.module.mjs +0 -24
  362. package/esm2022/lib/overlay/shared/overlay.directive.mjs +0 -39
  363. package/esm2022/lib/overlay/shared/overlay.service.mjs +0 -26
  364. package/lib/overlay/overlay.module.d.ts +0 -12
  365. package/lib/overlay/shared/overlay.directive.d.ts +0 -18
  366. package/lib/overlay/shared/overlay.service.d.ts +0 -14
@@ -17,11 +17,11 @@ export class IgoImportExportModule {
17
17
  ngModule: IgoImportExportModule
18
18
  };
19
19
  }
20
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: IgoImportExportModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
21
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.9", ngImport: i0, type: IgoImportExportModule, imports: [ImportExportComponent, DropGeoFileDirective, ExportButtonComponent], exports: [ImportExportComponent, DropGeoFileDirective, ExportButtonComponent] });
22
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: IgoImportExportModule, imports: [ImportExportComponent, ExportButtonComponent] });
20
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: IgoImportExportModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
21
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.2", ngImport: i0, type: IgoImportExportModule, imports: [ImportExportComponent, DropGeoFileDirective, ExportButtonComponent], exports: [ImportExportComponent, DropGeoFileDirective, ExportButtonComponent] });
22
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: IgoImportExportModule, imports: [ImportExportComponent, ExportButtonComponent] });
23
23
  }
24
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: IgoImportExportModule, decorators: [{
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: IgoImportExportModule, decorators: [{
25
25
  type: NgModule,
26
26
  args: [{
27
27
  imports: [ImportExportComponent, DropGeoFileDirective, ExportButtonComponent],
@@ -90,10 +90,10 @@ export class DropGeoFileDirective extends DragAndDropDirective {
90
90
  onFileImportError(file, error) {
91
91
  handleFileImportError(file, error, this.messageService, this.config.getConfig('importExport.clientSideFileSizeMaxMb'));
92
92
  }
93
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: DropGeoFileDirective, deps: [{ token: i1.MapBrowserComponent }, { token: i2.ImportService }, { token: i3.StyleListService }, { token: i4.StyleService }, { token: i5.ConfigService }, { token: i6.MessageService }, { token: i7.LayerService }, { token: i8.ConfirmDialogService }], target: i0.ɵɵFactoryTarget.Directive });
94
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.9", type: DropGeoFileDirective, isStandalone: true, selector: "[igoDropGeoFile]", inputs: { contextUri: "contextUri" }, host: { listeners: { "dragover": "onDragOver($event)", "dragleave": "onDragLeave($event)", "drop": "onDrop($event)" } }, usesInheritance: true, ngImport: i0 });
93
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: DropGeoFileDirective, deps: [{ token: i1.MapBrowserComponent }, { token: i2.ImportService }, { token: i3.StyleListService }, { token: i4.StyleService }, { token: i5.ConfigService }, { token: i6.MessageService }, { token: i7.LayerService }, { token: i8.ConfirmDialogService }], target: i0.ɵɵFactoryTarget.Directive });
94
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.2", type: DropGeoFileDirective, isStandalone: true, selector: "[igoDropGeoFile]", inputs: { contextUri: "contextUri" }, host: { listeners: { "dragover": "onDragOver($event)", "dragleave": "onDragLeave($event)", "drop": "onDrop($event)" } }, usesInheritance: true, ngImport: i0 });
95
95
  }
96
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: DropGeoFileDirective, decorators: [{
96
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: DropGeoFileDirective, decorators: [{
97
97
  type: Directive,
98
98
  args: [{
99
99
  selector: '[igoDropGeoFile]',
@@ -111,4 +111,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImpor
111
111
  type: HostListener,
112
112
  args: ['drop', ['$event']]
113
113
  }] } });
114
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcC1nZW8tZmlsZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9pbXBvcnQtZXhwb3J0L3NoYXJlZC9kcm9wLWdlby1maWxlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUdOLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzlELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFHcEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHN0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBRWxGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDdkUsT0FBTyxFQUNMLHFCQUFxQixFQUNyQix1QkFBdUIsRUFDeEIsTUFBTSx3QkFBd0IsQ0FBQztBQUVoQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7Ozs7Ozs7Ozs7QUFNakQsTUFBTSxPQUFPLG9CQUNYLFNBQVEsb0JBQW9CO0lBZWxCO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFuQkEsWUFBWSxHQUF5QixJQUFJLFlBQVksRUFBRSxDQUFDO0lBQ3hELFlBQVksR0FBeUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUMxRCxVQUFVLEdBQW1CLEVBQUUsQ0FBQztJQUNoQyxjQUFjLENBQWU7SUFFckMsSUFBSSxHQUFHO1FBQ0wsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQztJQUM1QixDQUFDO0lBRVEsVUFBVSxDQUFTO0lBRTVCLFlBQ1UsU0FBOEIsRUFDOUIsYUFBNEIsRUFDNUIsZ0JBQWtDLEVBQ2xDLFlBQTBCLEVBQzFCLE1BQXFCLEVBQ3JCLGNBQThCLEVBQzlCLFlBQTBCLEVBQzFCLG9CQUEwQztRQUVsRCxLQUFLLEVBQUUsQ0FBQztRQVRBLGNBQVMsR0FBVCxTQUFTLENBQXFCO1FBQzlCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUNyQixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFzQjtJQUdwRCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFhLEVBQUUsRUFBRTtZQUNsRSxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzdCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBR00sVUFBVSxDQUFDLEdBQUc7UUFDbkIsS0FBSyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBR00sV0FBVyxDQUFDLEdBQUc7UUFDcEIsS0FBSyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBR00sTUFBTSxDQUFDLEdBQUc7UUFDZixLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3BCLENBQUM7SUFFTyxjQUFjLENBQUMsS0FBYTtRQUNsQyxLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUNsQixjQUFjLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQztpQkFDckIsSUFBSSxDQUNILFNBQVMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFDMUIsS0FBSyxFQUFFLEVBQ1AsU0FBUyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7Z0JBQ3JCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQzlCLElBQUksRUFDSixRQUFRLEtBQUssZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUNyRCxDQUFDO1lBQ0osQ0FBQyxDQUFDLENBQ0g7aUJBQ0EsU0FBUyxDQUNSLENBQUMsUUFBbUIsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsRUFDakUsQ0FBQyxLQUFZLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQ3RELENBQ0osQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBRU8sbUJBQW1CLENBQUMsSUFBVSxFQUFFLFFBQW1CO1FBQ3pELE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQy9DLGNBQWMsQ0FDZSxDQUFDO1FBQ2hDLE1BQU0sb0JBQW9CLEdBQUcsbUJBQW1CLEVBQUUsaUJBQWlCO1lBQ2pFLENBQUMsQ0FBQyxJQUFJLENBQUMsb0JBQW9CO1lBQzNCLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDZCxJQUFJLENBQUMsbUJBQW1CLEVBQUUsZUFBZSxFQUFFLENBQUM7WUFDMUMsdUJBQXVCLENBQ3JCLElBQUksRUFDSixRQUFRLEVBQ1IsSUFBSSxDQUFDLEdBQUcsRUFDUixJQUFJLENBQUMsVUFBVSxFQUNmLElBQUksQ0FBQyxjQUFjLEVBQ25CLElBQUksQ0FBQyxZQUFZLEVBQ2pCLG9CQUFvQixDQUNyQixDQUFDO1FBQ0osQ0FBQzthQUFNLENBQUM7WUFDTix1QkFBdUIsQ0FDckIsSUFBSSxFQUNKLFFBQVEsRUFDUixJQUFJLENBQUMsR0FBRyxFQUNSLElBQUksQ0FBQyxVQUFVLEVBQ2YsSUFBSSxDQUFDLGNBQWMsRUFDbkIsSUFBSSxDQUFDLFlBQVksRUFDakIsb0JBQW9CLEVBQ3BCLElBQUksQ0FBQyxnQkFBZ0IsRUFDckIsSUFBSSxDQUFDLFlBQVksQ0FDbEIsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBRU8saUJBQWlCLENBQUMsSUFBVSxFQUFFLEtBQVk7UUFDaEQscUJBQXFCLENBQ25CLElBQUksRUFDSixLQUFLLEVBQ0wsSUFBSSxDQUFDLGNBQWMsRUFDbkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsc0NBQXNDLENBQUMsQ0FDOUQsQ0FBQztJQUNKLENBQUM7dUdBbkhVLG9CQUFvQjsyRkFBcEIsb0JBQW9COzsyRkFBcEIsb0JBQW9CO2tCQUpoQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxrQkFBa0I7b0JBQzVCLFVBQVUsRUFBRSxJQUFJO2lCQUNqQjtxU0FjVSxVQUFVO3NCQUFsQixLQUFLO2dCQTJCQyxVQUFVO3NCQURoQixZQUFZO3VCQUFDLFVBQVUsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFNN0IsV0FBVztzQkFEakIsWUFBWTt1QkFBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBTTlCLE1BQU07c0JBRFosWUFBWTt1QkFBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEaXJlY3RpdmUsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IENvbmZpcm1EaWFsb2dTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29tbW9uL2NvbmZpcm0tZGlhbG9nJztcbmltcG9ydCB7IERyYWdBbmREcm9wRGlyZWN0aXZlIH0gZnJvbSAnQGlnbzIvY29tbW9uL2RyYWctZHJvcCc7XG5pbXBvcnQgeyBDb25maWdTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZS9jb25maWcnO1xuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICdAaWdvMi9jb3JlL21lc3NhZ2UnO1xuXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNvbmNhdE1hcCwgZmlyc3QsIHNraXBXaGlsZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgRmVhdHVyZSB9IGZyb20gJy4uLy4uL2ZlYXR1cmUvc2hhcmVkL2ZlYXR1cmUuaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBMYXllclNlcnZpY2UgfSBmcm9tICcuLi8uLi9sYXllci9zaGFyZWQvbGF5ZXIuc2VydmljZSc7XG5pbXBvcnQgeyBNYXBCcm93c2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbWFwL21hcC1icm93c2VyL21hcC1icm93c2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJZ29NYXAgfSBmcm9tICcuLi8uLi9tYXAvc2hhcmVkL21hcCc7XG5pbXBvcnQgeyBkZXRlY3RGaWxlRVBTRyB9IGZyb20gJy4uLy4uL21hcC9zaGFyZWQvcHJvamVjdGlvbi51dGlscyc7XG5pbXBvcnQgeyBTdHlsZUxpc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc3R5bGUvc3R5bGUtbGlzdC9zdHlsZS1saXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgU3R5bGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc3R5bGUvc3R5bGUtc2VydmljZS9zdHlsZS5zZXJ2aWNlJztcbmltcG9ydCB7XG4gIGhhbmRsZUZpbGVJbXBvcnRFcnJvcixcbiAgaGFuZGxlRmlsZUltcG9ydFN1Y2Nlc3Ncbn0gZnJvbSAnLi4vc2hhcmVkL2ltcG9ydC51dGlscyc7XG5pbXBvcnQgeyBJbXBvcnRFeHBvcnRTZXJ2aWNlT3B0aW9ucyB9IGZyb20gJy4vaW1wb3J0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBJbXBvcnRTZXJ2aWNlIH0gZnJvbSAnLi9pbXBvcnQuc2VydmljZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tpZ29Ecm9wR2VvRmlsZV0nLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIERyb3BHZW9GaWxlRGlyZWN0aXZlXG4gIGV4dGVuZHMgRHJhZ0FuZERyb3BEaXJlY3RpdmVcbiAgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveVxue1xuICBwcm90ZWN0ZWQgZmlsZXNEcm9wcGVkOiBFdmVudEVtaXR0ZXI8RmlsZVtdPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgcHJvdGVjdGVkIGZpbGVzSW52YWxpZDogRXZlbnRFbWl0dGVyPEZpbGVbXT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIHByaXZhdGUgZXBzZ0NvZGUkJDogU3Vic2NyaXB0aW9uW10gPSBbXTtcbiAgcHJpdmF0ZSBmaWxlc0Ryb3BwZWQkJDogU3Vic2NyaXB0aW9uO1xuXG4gIGdldCBtYXAoKTogSWdvTWFwIHtcbiAgICByZXR1cm4gdGhpcy5jb21wb25lbnQubWFwO1xuICB9XG5cbiAgQElucHV0KCkgY29udGV4dFVyaTogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY29tcG9uZW50OiBNYXBCcm93c2VyQ29tcG9uZW50LFxuICAgIHByaXZhdGUgaW1wb3J0U2VydmljZTogSW1wb3J0U2VydmljZSxcbiAgICBwcml2YXRlIHN0eWxlTGlzdFNlcnZpY2U6IFN0eWxlTGlzdFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzdHlsZVNlcnZpY2U6IFN0eWxlU2VydmljZSxcbiAgICBwcml2YXRlIGNvbmZpZzogQ29uZmlnU2VydmljZSxcbiAgICBwcml2YXRlIG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSxcbiAgICBwcml2YXRlIGxheWVyU2VydmljZTogTGF5ZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29uZmlybURpYWxvZ1NlcnZpY2U6IENvbmZpcm1EaWFsb2dTZXJ2aWNlXG4gICkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmZpbGVzRHJvcHBlZCQkID0gdGhpcy5maWxlc0Ryb3BwZWQuc3Vic2NyaWJlKChmaWxlczogRmlsZVtdKSA9PiB7XG4gICAgICB0aGlzLm9uRmlsZXNEcm9wcGVkKGZpbGVzKTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuZmlsZXNEcm9wcGVkJCQudW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLmVwc2dDb2RlJCQubWFwKChlKSA9PiBlLnVuc3Vic2NyaWJlKCkpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZHJhZ292ZXInLCBbJyRldmVudCddKVxuICBwdWJsaWMgb25EcmFnT3ZlcihldnQpIHtcbiAgICBzdXBlci5vbkRyYWdPdmVyKGV2dCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkcmFnbGVhdmUnLCBbJyRldmVudCddKVxuICBwdWJsaWMgb25EcmFnTGVhdmUoZXZ0KSB7XG4gICAgc3VwZXIub25EcmFnTGVhdmUoZXZ0KTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2Ryb3AnLCBbJyRldmVudCddKVxuICBwdWJsaWMgb25Ecm9wKGV2dCkge1xuICAgIHN1cGVyLm9uRHJvcChldnQpO1xuICB9XG5cbiAgcHJpdmF0ZSBvbkZpbGVzRHJvcHBlZChmaWxlczogRmlsZVtdKSB7XG4gICAgZm9yIChjb25zdCBmaWxlIG9mIGZpbGVzKSB7XG4gICAgICB0aGlzLmVwc2dDb2RlJCQucHVzaChcbiAgICAgICAgZGV0ZWN0RmlsZUVQU0coeyBmaWxlIH0pXG4gICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICBza2lwV2hpbGUoKGNvZGUpID0+ICFjb2RlKSxcbiAgICAgICAgICAgIGZpcnN0KCksXG4gICAgICAgICAgICBjb25jYXRNYXAoKGVwc2dDb2RlKSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiB0aGlzLmltcG9ydFNlcnZpY2UuaW1wb3J0KFxuICAgICAgICAgICAgICAgIGZpbGUsXG4gICAgICAgICAgICAgICAgZXBzZ0NvZGUgPT09ICdlcHNnTm90RGVmaW5lZCcgPyB1bmRlZmluZWQgOiBlcHNnQ29kZVxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICApXG4gICAgICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgICAgIChmZWF0dXJlczogRmVhdHVyZVtdKSA9PiB0aGlzLm9uRmlsZUltcG9ydFN1Y2Nlc3MoZmlsZSwgZmVhdHVyZXMpLFxuICAgICAgICAgICAgKGVycm9yOiBFcnJvcikgPT4gdGhpcy5vbkZpbGVJbXBvcnRFcnJvcihmaWxlLCBlcnJvcilcbiAgICAgICAgICApXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgb25GaWxlSW1wb3J0U3VjY2VzcyhmaWxlOiBGaWxlLCBmZWF0dXJlczogRmVhdHVyZVtdKSB7XG4gICAgY29uc3QgaW1wb3J0RXhwb3J0T3B0aW9ucyA9IHRoaXMuY29uZmlnLmdldENvbmZpZyhcbiAgICAgICdpbXBvcnRFeHBvcnQnXG4gICAgKSBhcyBJbXBvcnRFeHBvcnRTZXJ2aWNlT3B0aW9ucztcbiAgICBjb25zdCBjb25maXJtRGlhbG9nU2VydmljZSA9IGltcG9ydEV4cG9ydE9wdGlvbnM/LmFsbG93VG9TdG9yZUxheWVyXG4gICAgICA/IHRoaXMuY29uZmlybURpYWxvZ1NlcnZpY2VcbiAgICAgIDogdW5kZWZpbmVkO1xuICAgIGlmICghaW1wb3J0RXhwb3J0T3B0aW9ucz8uaW1wb3J0V2l0aFN0eWxlKSB7XG4gICAgICBoYW5kbGVGaWxlSW1wb3J0U3VjY2VzcyhcbiAgICAgICAgZmlsZSxcbiAgICAgICAgZmVhdHVyZXMsXG4gICAgICAgIHRoaXMubWFwLFxuICAgICAgICB0aGlzLmNvbnRleHRVcmksXG4gICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UsXG4gICAgICAgIHRoaXMubGF5ZXJTZXJ2aWNlLFxuICAgICAgICBjb25maXJtRGlhbG9nU2VydmljZVxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaGFuZGxlRmlsZUltcG9ydFN1Y2Nlc3MoXG4gICAgICAgIGZpbGUsXG4gICAgICAgIGZlYXR1cmVzLFxuICAgICAgICB0aGlzLm1hcCxcbiAgICAgICAgdGhpcy5jb250ZXh0VXJpLFxuICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLFxuICAgICAgICB0aGlzLmxheWVyU2VydmljZSxcbiAgICAgICAgY29uZmlybURpYWxvZ1NlcnZpY2UsXG4gICAgICAgIHRoaXMuc3R5bGVMaXN0U2VydmljZSxcbiAgICAgICAgdGhpcy5zdHlsZVNlcnZpY2VcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBvbkZpbGVJbXBvcnRFcnJvcihmaWxlOiBGaWxlLCBlcnJvcjogRXJyb3IpIHtcbiAgICBoYW5kbGVGaWxlSW1wb3J0RXJyb3IoXG4gICAgICBmaWxlLFxuICAgICAgZXJyb3IsXG4gICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLFxuICAgICAgdGhpcy5jb25maWcuZ2V0Q29uZmlnKCdpbXBvcnRFeHBvcnQuY2xpZW50U2lkZUZpbGVTaXplTWF4TWInKVxuICAgICk7XG4gIH1cbn1cbiJdfQ==
114
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcC1nZW8tZmlsZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9pbXBvcnQtZXhwb3J0L3NoYXJlZC9kcm9wLWdlby1maWxlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUdOLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzlELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFHcEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHN0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBRWxGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDdkUsT0FBTyxFQUNMLHFCQUFxQixFQUNyQix1QkFBdUIsRUFDeEIsTUFBTSx3QkFBd0IsQ0FBQztBQUVoQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7Ozs7Ozs7Ozs7QUFNakQsTUFBTSxPQUFPLG9CQUNYLFNBQVEsb0JBQW9CO0lBZWxCO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lB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TUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRGlyZWN0aXZlLFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBDb25maXJtRGlhbG9nU2VydmljZSB9IGZyb20gJ0BpZ28yL2NvbW1vbi9jb25maXJtLWRpYWxvZyc7XG5pbXBvcnQgeyBEcmFnQW5kRHJvcERpcmVjdGl2ZSB9IGZyb20gJ0BpZ28yL2NvbW1vbi9kcmFnLWRyb3AnO1xuaW1wb3J0IHsgQ29uZmlnU2VydmljZSB9IGZyb20gJ0BpZ28yL2NvcmUvY29uZmlnJztcbmltcG9ydCB7IE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZS9tZXNzYWdlJztcblxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjb25jYXRNYXAsIGZpcnN0LCBza2lwV2hpbGUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEZlYXR1cmUgfSBmcm9tICcuLi8uLi9mZWF0dXJlL3NoYXJlZC9mZWF0dXJlLmludGVyZmFjZXMnO1xuaW1wb3J0IHsgTGF5ZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vbGF5ZXIvc2hhcmVkL2xheWVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgTWFwQnJvd3NlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL21hcC9tYXAtYnJvd3Nlci9tYXAtYnJvd3Nlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgSWdvTWFwIH0gZnJvbSAnLi4vLi4vbWFwL3NoYXJlZC9tYXAnO1xuaW1wb3J0IHsgZGV0ZWN0RmlsZUVQU0cgfSBmcm9tICcuLi8uLi9tYXAvc2hhcmVkL3Byb2plY3Rpb24udXRpbHMnO1xuaW1wb3J0IHsgU3R5bGVMaXN0U2VydmljZSB9IGZyb20gJy4uLy4uL3N0eWxlL3N0eWxlLWxpc3Qvc3R5bGUtbGlzdC5zZXJ2aWNlJztcbmltcG9ydCB7IFN0eWxlU2VydmljZSB9IGZyb20gJy4uLy4uL3N0eWxlL3N0eWxlLXNlcnZpY2Uvc3R5bGUuc2VydmljZSc7XG5pbXBvcnQge1xuICBoYW5kbGVGaWxlSW1wb3J0RXJyb3IsXG4gIGhhbmRsZUZpbGVJbXBvcnRTdWNjZXNzXG59IGZyb20gJy4uL3NoYXJlZC9pbXBvcnQudXRpbHMnO1xuaW1wb3J0IHsgSW1wb3J0RXhwb3J0U2VydmljZU9wdGlvbnMgfSBmcm9tICcuL2ltcG9ydC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSW1wb3J0U2VydmljZSB9IGZyb20gJy4vaW1wb3J0LnNlcnZpY2UnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbaWdvRHJvcEdlb0ZpbGVdJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBEcm9wR2VvRmlsZURpcmVjdGl2ZVxuICBleHRlbmRzIERyYWdBbmREcm9wRGlyZWN0aXZlXG4gIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3lcbntcbiAgcHJvdGVjdGVkIGZpbGVzRHJvcHBlZCA9IG5ldyBFdmVudEVtaXR0ZXI8RmlsZVtdPigpO1xuICBwcm90ZWN0ZWQgZmlsZXNJbnZhbGlkID0gbmV3IEV2ZW50RW1pdHRlcjxGaWxlW10+KCk7XG4gIHByaXZhdGUgZXBzZ0NvZGUkJDogU3Vic2NyaXB0aW9uW10gPSBbXTtcbiAgcHJpdmF0ZSBmaWxlc0Ryb3BwZWQkJDogU3Vic2NyaXB0aW9uO1xuXG4gIGdldCBtYXAoKTogSWdvTWFwIHtcbiAgICByZXR1cm4gdGhpcy5jb21wb25lbnQubWFwO1xuICB9XG5cbiAgQElucHV0KCkgY29udGV4dFVyaTogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY29tcG9uZW50OiBNYXBCcm93c2VyQ29tcG9uZW50LFxuICAgIHByaXZhdGUgaW1wb3J0U2VydmljZTogSW1wb3J0U2VydmljZSxcbiAgICBwcml2YXRlIHN0eWxlTGlzdFNlcnZpY2U6IFN0eWxlTGlzdFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzdHlsZVNlcnZpY2U6IFN0eWxlU2VydmljZSxcbiAgICBwcml2YXRlIGNvbmZpZzogQ29uZmlnU2VydmljZSxcbiAgICBwcml2YXRlIG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSxcbiAgICBwcml2YXRlIGxheWVyU2VydmljZTogTGF5ZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29uZmlybURpYWxvZ1NlcnZpY2U6IENvbmZpcm1EaWFsb2dTZXJ2aWNlXG4gICkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmZpbGVzRHJvcHBlZCQkID0gdGhpcy5maWxlc0Ryb3BwZWQuc3Vic2NyaWJlKChmaWxlczogRmlsZVtdKSA9PiB7XG4gICAgICB0aGlzLm9uRmlsZXNEcm9wcGVkKGZpbGVzKTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuZmlsZXNEcm9wcGVkJCQudW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLmVwc2dDb2RlJCQubWFwKChlKSA9PiBlLnVuc3Vic2NyaWJlKCkpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZHJhZ292ZXInLCBbJyRldmVudCddKVxuICBwdWJsaWMgb25EcmFnT3ZlcihldnQpIHtcbiAgICBzdXBlci5vbkRyYWdPdmVyKGV2dCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdkcmFnbGVhdmUnLCBbJyRldmVudCddKVxuICBwdWJsaWMgb25EcmFnTGVhdmUoZXZ0KSB7XG4gICAgc3VwZXIub25EcmFnTGVhdmUoZXZ0KTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2Ryb3AnLCBbJyRldmVudCddKVxuICBwdWJsaWMgb25Ecm9wKGV2dCkge1xuICAgIHN1cGVyLm9uRHJvcChldnQpO1xuICB9XG5cbiAgcHJpdmF0ZSBvbkZpbGVzRHJvcHBlZChmaWxlczogRmlsZVtdKSB7XG4gICAgZm9yIChjb25zdCBmaWxlIG9mIGZpbGVzKSB7XG4gICAgICB0aGlzLmVwc2dDb2RlJCQucHVzaChcbiAgICAgICAgZGV0ZWN0RmlsZUVQU0coeyBmaWxlIH0pXG4gICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICBza2lwV2hpbGUoKGNvZGUpID0+ICFjb2RlKSxcbiAgICAgICAgICAgIGZpcnN0KCksXG4gICAgICAgICAgICBjb25jYXRNYXAoKGVwc2dDb2RlKSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiB0aGlzLmltcG9ydFNlcnZpY2UuaW1wb3J0KFxuICAgICAgICAgICAgICAgIGZpbGUsXG4gICAgICAgICAgICAgICAgZXBzZ0NvZGUgPT09ICdlcHNnTm90RGVmaW5lZCcgPyB1bmRlZmluZWQgOiBlcHNnQ29kZVxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICApXG4gICAgICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgICAgIChmZWF0dXJlczogRmVhdHVyZVtdKSA9PiB0aGlzLm9uRmlsZUltcG9ydFN1Y2Nlc3MoZmlsZSwgZmVhdHVyZXMpLFxuICAgICAgICAgICAgKGVycm9yOiBFcnJvcikgPT4gdGhpcy5vbkZpbGVJbXBvcnRFcnJvcihmaWxlLCBlcnJvcilcbiAgICAgICAgICApXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgb25GaWxlSW1wb3J0U3VjY2VzcyhmaWxlOiBGaWxlLCBmZWF0dXJlczogRmVhdHVyZVtdKSB7XG4gICAgY29uc3QgaW1wb3J0RXhwb3J0T3B0aW9ucyA9IHRoaXMuY29uZmlnLmdldENvbmZpZyhcbiAgICAgICdpbXBvcnRFeHBvcnQnXG4gICAgKSBhcyBJbXBvcnRFeHBvcnRTZXJ2aWNlT3B0aW9ucztcbiAgICBjb25zdCBjb25maXJtRGlhbG9nU2VydmljZSA9IGltcG9ydEV4cG9ydE9wdGlvbnM/LmFsbG93VG9TdG9yZUxheWVyXG4gICAgICA/IHRoaXMuY29uZmlybURpYWxvZ1NlcnZpY2VcbiAgICAgIDogdW5kZWZpbmVkO1xuICAgIGlmICghaW1wb3J0RXhwb3J0T3B0aW9ucz8uaW1wb3J0V2l0aFN0eWxlKSB7XG4gICAgICBoYW5kbGVGaWxlSW1wb3J0U3VjY2VzcyhcbiAgICAgICAgZmlsZSxcbiAgICAgICAgZmVhdHVyZXMsXG4gICAgICAgIHRoaXMubWFwLFxuICAgICAgICB0aGlzLmNvbnRleHRVcmksXG4gICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UsXG4gICAgICAgIHRoaXMubGF5ZXJTZXJ2aWNlLFxuICAgICAgICBjb25maXJtRGlhbG9nU2VydmljZVxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaGFuZGxlRmlsZUltcG9ydFN1Y2Nlc3MoXG4gICAgICAgIGZpbGUsXG4gICAgICAgIGZlYXR1cmVzLFxuICAgICAgICB0aGlzLm1hcCxcbiAgICAgICAgdGhpcy5jb250ZXh0VXJpLFxuICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLFxuICAgICAgICB0aGlzLmxheWVyU2VydmljZSxcbiAgICAgICAgY29uZmlybURpYWxvZ1NlcnZpY2UsXG4gICAgICAgIHRoaXMuc3R5bGVMaXN0U2VydmljZSxcbiAgICAgICAgdGhpcy5zdHlsZVNlcnZpY2VcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBvbkZpbGVJbXBvcnRFcnJvcihmaWxlOiBGaWxlLCBlcnJvcjogRXJyb3IpIHtcbiAgICBoYW5kbGVGaWxlSW1wb3J0RXJyb3IoXG4gICAgICBmaWxlLFxuICAgICAgZXJyb3IsXG4gICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLFxuICAgICAgdGhpcy5jb25maWcuZ2V0Q29uZmlnKCdpbXBvcnRFeHBvcnQuY2xpZW50U2lkZUZpbGVTaXplTWF4TWInKVxuICAgICk7XG4gIH1cbn1cbiJdfQ==
@@ -63,6 +63,7 @@ export class ExportService {
63
63
  let comment = '';
64
64
  const properties = keys.reduce((acc, key) => {
65
65
  if (key && key !== 'geometry') {
66
+ // eslint-disable-next-line @typescript-eslint/no-unused-expressions
66
67
  key === 'id' && olFeature.get('draw')
67
68
  ? (comment += key + ':' + olFeature.get('draw') + ' \r\n')
68
69
  : (comment += key + ':' + olFeature.get(key) + ' \r\n');
@@ -199,13 +200,13 @@ export class ExportService {
199
200
  }
200
201
  return false;
201
202
  }
202
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: ExportService, deps: [{ token: i1.ConfigService }], target: i0.ɵɵFactoryTarget.Injectable });
203
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: ExportService, providedIn: 'root' });
203
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ExportService, deps: [{ token: i1.ConfigService }], target: i0.ɵɵFactoryTarget.Injectable });
204
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ExportService, providedIn: 'root' });
204
205
  }
205
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: ExportService, decorators: [{
206
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ExportService, decorators: [{
206
207
  type: Injectable,
207
208
  args: [{
208
209
  providedIn: 'root'
209
210
  }]
210
211
  }], ctorParameters: () => [{ type: i1.ConfigService }] });
211
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9pbXBvcnQtZXhwb3J0L3NoYXJlZC9leHBvcnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTlDLE9BQU8sU0FBUyxNQUFNLFlBQVksQ0FBQztBQUNuQyxPQUFPLEtBQUssUUFBUSxNQUFNLFdBQVcsQ0FBQztBQUd0QyxPQUFPLEVBQUUsVUFBVSxFQUFZLE1BQU0sTUFBTSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFdEMsT0FBTyxFQUNMLHNCQUFzQixFQUN0QiwwQkFBMEIsRUFDM0IsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBRTdELE1BQU0sMEJBQTBCLEdBQUcsR0FBRyxDQUFDO0FBS3ZDLE1BQU0sT0FBTyxhQUFhO0lBZUo7SUFkcEIsTUFBTSxDQUFDLFdBQVcsR0FBRztRQUNuQixHQUFHLEVBQUUsS0FBSztRQUNWLEdBQUcsRUFBRSxLQUFLO1FBQ1YsR0FBRyxFQUFFLEtBQUs7UUFDVixTQUFTLEVBQUUsZ0JBQWdCO1FBQzNCLFFBQVEsRUFBRSxVQUFVO1FBQ3BCLFlBQVksRUFBRSxjQUFjO0tBQzdCLENBQUM7SUFFRixNQUFNLENBQUMsZUFBZSxHQUFHLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztJQUV2QyxPQUFPLENBQVM7SUFDaEIsa0JBQWtCLEdBQVksSUFBSSxDQUFDO0lBRTNDLFlBQW9CLE1B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bUMsRUFDbkMsTUFBYztRQUVkLElBQUksVUFBVSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUM1QixPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFDRCxJQUFJLE1BQU0sS0FBSyxLQUFLLEVBQUUsQ0FBQztZQUNyQixNQUFNLFdBQVcsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7Z0JBQ2hELE9BQU8sQ0FDTCxDQUFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsaUJBQWlCLENBQUMsQ0FBQyxPQUFPLENBQ2hELFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FDbEMsSUFBSSxDQUFDLENBQ1AsQ0FBQztZQUNKLENBQUMsQ0FBQyxDQUFDO1lBQ0gsT0FBTyxXQUFXLEtBQUssU0FBUyxDQUFDO1FBQ25DLENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7dUdBNVNVLGFBQWE7MkdBQWIsYUFBYSxjQUZaLE1BQU07OzJGQUVQLGFBQWE7a0JBSHpCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBDb25maWdTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZS9jb25maWcnO1xuaW1wb3J0IHsgZG93bmxvYWRDb250ZW50IH0gZnJvbSAnQGlnbzIvdXRpbHMnO1xuXG5pbXBvcnQgT2xGZWF0dXJlIGZyb20gJ29sL0ZlYXR1cmUnO1xuaW1wb3J0ICogYXMgb2xmb3JtYXQgZnJvbSAnb2wvZm9ybWF0JztcbmltcG9ydCB0eXBlIHsgZGVmYXVsdCBhcyBPbEdlb21ldHJ5IH0gZnJvbSAnb2wvZ2VvbS9HZW9tZXRyeSc7XG5cbmltcG9ydCB7IE9ic2VydmFibGUsIE9ic2VydmVyIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBlbmNvZGUgfSBmcm9tICd3aW5kb3dzLTEyNTInO1xuXG5pbXBvcnQge1xuICBFeHBvcnRJbnZhbGlkRmlsZUVycm9yLFxuICBFeHBvcnROb3RoaW5nVG9FeHBvcnRFcnJvclxufSBmcm9tICcuL2V4cG9ydC5lcnJvcnMnO1xuaW1wb3J0IHsgRW5jb2RpbmdGb3JtYXQsIEV4cG9ydEZvcm1hdCB9IGZyb20gJy4vZXhwb3J0LnR5cGUnO1xuXG5jb25zdCBTSEFQRUZJTEVfRklFTERfTUFYX0xFTkdIVCA9IDI1NTtcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgRXhwb3J0U2VydmljZSB7XG4gIHN0YXRpYyBvZ3JlRm9ybWF0cyA9IHtcbiAgICBHTUw6ICdnbWwnLFxuICAgIEdQWDogJ2dweCcsXG4gICAgS01MOiAna21sJyxcbiAgICBTaGFwZWZpbGU6ICdFU1JJIFNoYXBlZmlsZScsXG4gICAgQ1NWY29tbWE6ICdDU1Zjb21tYScsXG4gICAgQ1NWc2VtaWNvbG9uOiAnQ1NWc2VtaWNvbG9uJ1xuICB9O1xuXG4gIHN0YXRpYyBub09ncmVGYWxsYmFja3MgPSBbJ0dNTCcsICdHUFgnLCAnS01MJ107XG5cbiAgcHJpdmF0ZSBvZ3JlVXJsOiBzdHJpbmc7XG4gIHByaXZhdGUgYWdncmVnYXRlSW5Db21tZW50OiBib29sZWFuID0gdHJ1ZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNvbmZpZzogQ29uZmlnU2VydmljZSkge1xuICAgIHRoaXMub2dyZVVybCA9IHRoaXMuY29uZmlnLmdldENvbmZpZygnaW1wb3J0RXhwb3J0LnVybCcpO1xuICAgIGNvbnN0IGdweEFnZ3JlZ2F0ZUluQ29tbWVudCA9IHRoaXMuY29uZmlnLmdldENvbmZpZyhcbiAgICAgICdpbXBvcnRFeHBvcnQuZ3B4QWdncmVnYXRlSW5Db21tZW50J1xuICAgICk7XG4gICAgaWYgKGdweEFnZ3JlZ2F0ZUluQ29tbWVudCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLmFnZ3JlZ2F0ZUluQ29tbWVudCA9IGdweEFnZ3JlZ2F0ZUluQ29tbWVudDtcbiAgICB9XG4gIH1cblxuICBleHBvcnQoXG4gICAgb2xGZWF0dXJlczogT2xGZWF0dXJlPE9sR2VvbWV0cnk+W10sXG4gICAgZm9ybWF0OiBFeHBvcnRGb3JtYXQsXG4gICAgdGl0bGU6IHN0cmluZyxcbiAgICBlbmNvZGluZzogRW5jb2RpbmdGb3JtYXQsXG4gICAgcHJvamVjdGlvbkluID0gJ0VQU0c6NDMyNicsXG4gICAgcHJvamVjdGlvbk91dCA9ICdFUFNHOjQzMjYnXG4gICk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIGNvbnN0IGV4cG9ydE9sRmVhdHVyZXMgPSB0aGlzLmdlbmVyYXRlRmVhdHVyZShcbiAgICAgIG9sRmVhdHVyZXMsXG4gICAgICBmb3JtYXQsXG4gICAgICAnX2ZlYXR1cmVTdG9yZSdcbiAgICApO1xuXG4gICAgcmV0dXJuIHRoaXMuZXhwb3J0QXN5bmMoXG4gICAgICBleHBvcnRPbEZlYXR1cmVzLFxuICAgICAgZm9ybWF0LFxuICAgICAgdGl0bGUsXG4gICAgICBlbmNvZGluZyxcbiAgICAgIHByb2plY3Rpb25JbixcbiAgICAgIHByb2plY3Rpb25PdXRcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGdlbmVyYXRlRmVhdHVyZShcbiAgICBvbEZlYXR1cmVzOiBPbEZlYXR1cmU8T2xHZW9tZXRyeT5bXSxcbiAgICBmb3JtYXQ6IEV4cG9ydEZvcm1hdCxcbiAgICBleGNsdWRlUHJlZml4OiBzdHJpbmcgPSAnXydcbiAgKTogT2xGZWF0dXJlPE9sR2VvbWV0cnk+W10ge1xuICAgIGlmIChmb3JtYXQgPT09IEV4cG9ydEZvcm1hdC5HUFggJiYgdGhpcy5hZ2dyZWdhdGVJbkNvbW1lbnQpIHtcbiAgICAgIHJldHVybiB0aGlzLmdlbmVyYXRlQWdncmVnYXRlZEZlYXR1cmUob2xGZWF0dXJlcyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG9sRmVhdHVyZXMubWFwKChvbEZlYXR1cmU6IE9sRmVhdHVyZTxPbEdlb21ldHJ5PikgPT4ge1xuICAgICAgbGV0IGtleXMgPSBvbEZlYXR1cmVcbiAgICAgICAgLmdldEtleXMoKVxuICAgICAgICAuZmlsdGVyKChrZXk6IHN0cmluZykgPT4gIWtleS5zdGFydHNXaXRoKGV4Y2x1ZGVQcmVmaXgpKTtcblxuICAgICAgaWYgKGZvcm1hdCA9PT0gRXhwb3J0Rm9ybWF0LlNoYXBlZmlsZSAmJiBvbEZlYXR1cmUuZ2V0KCdfc3R5bGUnKSkge1xuICAgICAgICBjb25zdCBzdHlsZSA9IEpTT04uc3RyaW5naWZ5KG9sRmVhdHVyZS5nZXQoJ19zdHlsZScpKTtcbiAgICAgICAgaWYgKHN0eWxlLmxlbmd0aCA+IFNIQVBFRklMRV9GSUVMRF9NQVhfTEVOR0hUKVxuICAgICAgICAgIGtleXMgPSBrZXlzLmZpbHRlcigoa2V5KSA9PiBrZXkgIT09ICdfc3R5bGUnKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgcHJvcGVydGllcyA9IGtleXMucmVkdWNlKFxuICAgICAgICAoYWNjOiBvYmplY3QsIGtleTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgYWNjW2tleV0gPSBvbEZlYXR1cmUuZ2V0KGtleSk7XG4gICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgfSxcbiAgICAgICAgeyBnZW9tZXRyeTogb2xGZWF0dXJlLmdldEdlb21ldHJ5KCkgfVxuICAgICAgKTtcbiAgICAgIHJldHVybiBuZXcgT2xGZWF0dXJlKHByb3BlcnRpZXMpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZW5lcmF0ZUFnZ3JlZ2F0ZWRGZWF0dXJlKFxuICAgIG9sRmVhdHVyZXM6IE9sRmVhdHVyZTxPbEdlb21ldHJ5PltdXG4gICk6IE9sRmVhdHVyZTxPbEdlb21ldHJ5PltdIHtcbiAgICByZXR1cm4gb2xGZWF0dXJlcy5tYXAoKG9sRmVhdHVyZTogT2xGZWF0dXJlPE9sR2VvbWV0cnk+KSA9PiB7XG4gICAgICBjb25zdCBrZXlzID0gb2xGZWF0dXJlXG4gICAgICAgIC5nZXRLZXlzKClcbiAgICAgICAgLmZpbHRlcigoa2V5OiBzdHJpbmcpID0+ICFrZXkuc3RhcnRzV2l0aCgnXycpKTtcbiAgICAgIGxldCBjb21tZW50OiBzdHJpbmcgPSAnJztcbiAgICAgIGNvbnN0IHByb3BlcnRpZXMgPSBrZXlzLnJlZHVjZShcbiAgICAgICAgKGFjYzogb2JqZWN0LCBrZXk6IHN0cmluZykgPT4ge1xuICAgICAgICAgIGlmIChrZXkgJiYga2V5ICE9PSAnZ2VvbWV0cnknKSB7XG4gICAgICAgICAgICBrZXkgPT09ICdpZCcgJiYgb2xGZWF0dXJlLmdldCgnZHJhdycpXG4gICAgICAgICAgICAgID8gKGNvbW1lbnQgKz0ga2V5ICsgJzonICsgb2xGZWF0dXJlLmdldCgnZHJhdycpICsgJyAgIFxcclxcbicpXG4gICAgICAgICAgICAgIDogKGNvbW1lbnQgKz0ga2V5ICsgJzonICsgb2xGZWF0dXJlLmdldChrZXkpICsgJyAgIFxcclxcbicpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBhY2Nba2V5XSA9IG9sRmVhdHVyZS5nZXQoa2V5KTtcbiAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgZ2VvbWV0cnk6IG9sRmVhdHVyZS5nZXRHZW9tZXRyeSgpXG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgICBjb25zdCBuZXdGZWF0dXJlID0gbmV3IE9sRmVhdHVyZShwcm9wZXJ0aWVzKTtcbiAgICAgIG5ld0ZlYXR1cmUuc2V0KCduYW1lJywgb2xGZWF0dXJlLmdldElkKCkpO1xuICAgICAgbmV3RmVhdHVyZS5zZXQoJ2NtdCcsIGNvbW1lbnQpO1xuXG4gICAgICByZXR1cm4gbmV3RmVhdHVyZTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZXhwb3J0QXN5bmMoXG4gICAgb2xGZWF0dXJlczogT2xGZWF0dXJlPE9sR2VvbWV0cnk+W10sXG4gICAgZm9ybWF0OiBFeHBvcnRGb3JtYXQsXG4gICAgdGl0bGU6IHN0cmluZyxcbiAgICBlbmNvZGluZzogRW5jb2RpbmdGb3JtYXQsXG4gICAgcHJvamVjdGlvbkluOiBzdHJpbmcsXG4gICAgcHJvamVjdGlvbk91dDogc3RyaW5nXG4gICk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIGNvbnN0IGRvRXhwb3J0ID0gKG9ic2VydmVyOiBPYnNlcnZlcjx2b2lkPikgPT4ge1xuICAgICAgY29uc3Qgbm90aGluZ1RvRXhwb3J0ID0gdGhpcy5ub3RoaW5nVG9FeHBvcnQob2xGZWF0dXJlcywgZm9ybWF0KTtcbiAgICAgIGlmIChub3RoaW5nVG9FeHBvcnQpIHtcbiAgICAgICAgb2JzZXJ2ZXIuZXJyb3IobmV3IEV4cG9ydE5vdGhpbmdUb0V4cG9ydEVycm9yKCkpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IG9ncmVGb3JtYXRzID0gT2JqZWN0LmtleXMoRXhwb3J0U2VydmljZS5vZ3JlRm9ybWF0cyk7XG4gICAgICBpZiAob2dyZUZvcm1hdHMuaW5kZXhPZihmb3JtYXQpID49IDApIHtcbiAgICAgICAgaWYgKCF0aGlzLm9ncmVVcmwpIHtcbiAgICAgICAgICBpZiAoRXhwb3J0U2VydmljZS5ub09ncmVGYWxsYmFja3MuaW5kZXhPZihmb3JtYXQpID49IDApIHtcbiAgICAgICAgICAgIHRoaXMuZXhwb3J0VG9GaWxlKFxuICAgICAgICAgICAgICBvbEZlYXR1cmVzLFxuICAgICAgICAgICAgICBvYnNlcnZlcixcbiAgICAgICAgICAgICAgZm9ybWF0LFxuICAgICAgICAgICAgICB0aXRsZSxcbiAgICAgICAgICAgICAgcHJvamVjdGlvbkluLFxuICAgICAgICAgICAgICBwcm9qZWN0aW9uT3V0XG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBvYnNlcnZlci5lcnJvcihuZXcgRXhwb3J0SW52YWxpZEZpbGVFcnJvcigpKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZXhwb3J0V2l0aE9ncmUoXG4gICAgICAgICAgb2xGZWF0dXJlcyxcbiAgICAgICAgICBvYnNlcnZlcixcbiAgICAgICAgICBmb3JtYXQsXG4gICAgICAgICAgdGl0bGUsXG4gICAgICAgICAgZW5jb2RpbmcsXG4gICAgICAgICAgcHJvamVjdGlvbkluLFxuICAgICAgICAgIHByb2plY3Rpb25PdXRcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZXhwb3J0VG9GaWxlKFxuICAgICAgICAgIG9sRmVhdHVyZXMsXG4gICAgICAgICAgb2JzZXJ2ZXIsXG4gICAgICAgICAgZm9ybWF0LFxuICAgICAgICAgIHRpdGxlLFxuICAgICAgICAgIHByb2plY3Rpb25JbixcbiAgICAgICAgICBwcm9qZWN0aW9uT3V0XG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZShkb0V4cG9ydCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZXhwb3J0VG9GaWxlKFxuICAgIG9sRmVhdHVyZXM6IE9sRmVhdHVyZTxPbEdlb21ldHJ5PltdLFxuICAgIG9ic2VydmVyOiBPYnNlcnZlcjx2b2lkPixcbiAgICBmb3JtYXQ6IEV4cG9ydEZvcm1hdCxcbiAgICB0aXRsZTogc3RyaW5nLFxuICAgIHByb2plY3Rpb25Jbjogc3RyaW5nLFxuICAgIHByb2plY3Rpb25PdXQ6IHN0cmluZ1xuICApIHtcbiAgICBjb25zdCBvbEZvcm1hdCA9IG5ldyBvbGZvcm1hdFtmb3JtYXRdKCk7XG4gICAgY29uc3QgZmVhdHVyZXNUZXh0ID0gb2xGb3JtYXQud3JpdGVGZWF0dXJlcyhvbEZlYXR1cmVzLCB7XG4gICAgICBkYXRhUHJvamVjdGlvbjogcHJvamVjdGlvbk91dCxcbiAgICAgIGZlYXR1cmVQcm9qZWN0aW9uOiBwcm9qZWN0aW9uSW4sXG4gICAgICBmZWF0dXJlVHlwZTogJ2ZlYXR1cmUnLFxuICAgICAgZmVhdHVyZU5TOiAnaHR0cDovL2V4YW1wbGUuY29tL2ZlYXR1cmUnXG4gICAgfSk7XG5cbiAgICBjb25zdCBmaWxlTmFtZSA9IGAke3RpdGxlfS4ke2Zvcm1hdC50b0xvd2VyQ2FzZSgpfWA7XG5cbiAgICBkb3dubG9hZENvbnRlbnQoZmVhdHVyZXNUZXh0LCAnYXR0YWNobWVudC9wbGFpbjtjaGFyc2V0PXV0Zi04JywgZmlsZU5hbWUpO1xuICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwcml2YXRlIGV4cG9ydFdpdGhPZ3JlKFxuICAgIG9sRmVhdHVyZXM6IE9sRmVhdHVyZTxPbEdlb21ldHJ5PltdLFxuICAgIG9ic2VydmVyOiBPYnNlcnZlcjx2b2lkPixcbiAgICBmb3JtYXQ6IHN0cmluZyxcbiAgICB0aXRsZTogc3RyaW5nLFxuICAgIGVuY29kaW5nVHlwZTogRW5jb2RpbmdGb3JtYXQsXG4gICAgcHJvamVjdGlvbkluOiBzdHJpbmcsXG4gICAgcHJvamVjdGlvbk91dDogc3RyaW5nXG4gICkge1xuICAgIGxldCBmZWF0dXJlc1RleHQ6IHN0cmluZyA9IG5ldyBvbGZvcm1hdC5HZW9KU09OKCkud3JpdGVGZWF0dXJlcyhcbiAgICAgIG9sRmVhdHVyZXMsXG4gICAgICB7XG4gICAgICAgIGRhdGFQcm9qZWN0aW9uOiBwcm9qZWN0aW9uT3V0LFxuICAgICAgICBmZWF0dXJlUHJvamVjdGlvbjogcHJvamVjdGlvbkluXG4gICAgICB9XG4gICAgKTtcblxuICAgIGNvbnN0IHVybCA9IGAke3RoaXMub2dyZVVybH0vY29udmVydEpzb25gO1xuICAgIGNvbnN0IGZvcm0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdmb3JtJyk7XG4gICAgZm9ybS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZm9ybSk7XG4gICAgZm9ybS5zZXRBdHRyaWJ1dGUoJ21ldGhvZCcsICdwb3N0Jyk7XG4gICAgZm9ybS5zZXRBdHRyaWJ1dGUoJ3RhcmdldCcsICdfYmxhbmsnKTtcbiAgICBmb3JtLnNldEF0dHJpYnV0ZSgnYWN0aW9uJywgdXJsKTtcblxuICAgIGlmIChlbmNvZGluZ1R5cGUgPT09IEVuY29kaW5nRm9ybWF0LlVURjgpIHtcbiAgICAgIGZvcm0uYWNjZXB0Q2hhcnNldCA9ICdVVEYtOCc7XG4gICAgICBmb3JtLmVuY3R5cGUgPSAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkOyBjaGFyc2V0PXV0Zi04Oyc7XG4gICAgfSBlbHNlIGlmIChlbmNvZGluZ1R5cGUgPT09IEVuY29kaW5nRm9ybWF0LkxBVElOMSkge1xuICAgICAgY29uc3QgZW5jdHlwZSA9ICdJU08tODg1OS0xJztcbiAgICAgIGNvbnN0IGZlYXR1cmVzSnNvbiA9IEpTT04ucGFyc2UoZmVhdHVyZXNUZXh0KTtcbiAgICAgIGZlYXR1cmVzSnNvbi5mZWF0dXJlcy5tYXAoKGYpID0+IHtcbiAgICAgICAgY29uc3QgZW5jb2RlZFByb3BlcnRpZXMgPSBTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KFxuICAgICAgICAgIG51bGwsXG4gICAgICAgICAgZW5jb2RlKEpTT04uc3RyaW5naWZ5KGYucHJvcGVydGllcyksIHsgbW9kZTogJ3JlcGxhY2VtZW50JyB9KVxuICAgICAgICApO1xuICAgICAgICBmLnByb3BlcnRpZXMgPSBKU09OLnBhcnNlKGVuY29kZWRQcm9wZXJ0aWVzKTtcbiAgICAgIH0pO1xuICAgICAgZmVhdHVyZXNUZXh0ID0gSlNPTi5zdHJpbmdpZnkoZmVhdHVyZXNKc29uKTtcbiAgICAgIGNvbnN0IGVuY29kaW5nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTtcbiAgICAgIGVuY29kaW5nLnNldEF0dHJpYnV0ZSgndHlwZScsICdoaWRkZW4nKTtcbiAgICAgIGVuY29kaW5nLnNldEF0dHJpYnV0ZSgnbmFtZScsICdlbmNvZGluZycpO1xuICAgICAgZW5jb2Rpbmcuc2V0QXR0cmlidXRlKCd2YWx1ZScsIGVuY3R5cGUpO1xuICAgICAgZm9ybS5hcHBlbmRDaGlsZChlbmNvZGluZyk7XG4gICAgfVxuXG4gICAgaWYgKGZvcm1hdCA9PT0gJ0NTVnNlbWljb2xvbicpIHtcbiAgICAgIGNvbnN0IG9wdGlvbnMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpO1xuICAgICAgb3B0aW9ucy5zZXRBdHRyaWJ1dGUoJ3R5cGUnLCAnaGlkZGVuJyk7XG4gICAgICBvcHRpb25zLnNldEF0dHJpYnV0ZSgnbmFtZScsICdsY28nKTtcbiAgICAgIG9wdGlvbnMuc2V0QXR0cmlidXRlKCd2YWx1ZScsICdTRVBBUkFUT1I9U0VNSUNPTE9OJyk7XG4gICAgICBmb3JtLmFwcGVuZENoaWxkKG9wdGlvbnMpO1xuICAgIH1cblxuICAgIGNvbnN0IGdlb2pzb25GaWVsZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7XG4gICAgZ2VvanNvbkZpZWxkLnNldEF0dHJpYnV0ZSgndHlwZScsICdoaWRkZW4nKTtcbiAgICBnZW9qc29uRmllbGQuc2V0QXR0cmlidXRlKCduYW1lJywgJ2pzb24nKTtcbiAgICBnZW9qc29uRmllbGQuc2V0QXR0cmlidXRlKCd2YWx1ZScsIGZlYXR1cmVzVGV4dCk7XG4gICAgZm9ybS5hcHBlbmRDaGlsZChnZW9qc29uRmllbGQpO1xuXG4gICAgY29uc3Qgb3V0cHV0TmFtZUZpZWxkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTtcbiAgICBsZXQgb3V0cHV0TmFtZSA9XG4gICAgICBmb3JtYXQgPT09ICdTaGFwZWZpbGUnXG4gICAgICAgID8gYCR7dGl0bGV9LnppcGBcbiAgICAgICAgOiBgJHt0aXRsZX0uJHtmb3JtYXQudG9Mb3dlckNhc2UoKX1gO1xuICAgIGlmIChmb3JtYXQgPT09ICdDU1Zjb21tYScgfHwgZm9ybWF0ID09PSAnQ1NWc2VtaWNvbG9uJykge1xuICAgICAgb3V0cHV0TmFtZSA9IGAke3RpdGxlfS5jc3ZgO1xuICAgIH1cbiAgICBvdXRwdXROYW1lID0gb3V0cHV0TmFtZS5yZXBsYWNlKCcgJywgJ18nKTtcbiAgICBvdXRwdXROYW1lID0gb3V0cHV0TmFtZVxuICAgICAgLm5vcm1hbGl6ZSgnTkZEJylcbiAgICAgIC5yZXBsYWNlKC9bXFx1MDMwMC1cXHUwMzZmXS9nLCAnJylcbiAgICAgIC5yZXBsYWNlKC/igJkvZywgXCInXCIpO1xuICAgIG91dHB1dE5hbWVGaWVsZC5zZXRBdHRyaWJ1dGUoJ3R5cGUnLCAnaGlkZGVuJyk7XG4gICAgb3V0cHV0TmFtZUZpZWxkLnNldEF0dHJpYnV0ZSgnbmFtZScsICdvdXRwdXROYW1lJyk7XG4gICAgb3V0cHV0TmFtZUZpZWxkLnNldEF0dHJpYnV0ZSgndmFsdWUnLCBvdXRwdXROYW1lKTtcbiAgICBmb3JtLmFwcGVuZENoaWxkKG91dHB1dE5hbWVGaWVsZCk7XG5cbiAgICBsZXQgb2dyZUZvcm1hdCA9IEV4cG9ydFNlcnZpY2Uub2dyZUZvcm1hdHNbZm9ybWF0XTtcbiAgICBpZiAoZm9ybWF0ID09PSAnQ1NWY29tbWEnIHx8IGZvcm1hdCA9PT0gJ0NTVnNlbWljb2xvbicpIHtcbiAgICAgIG9ncmVGb3JtYXQgPSAnQ1NWJztcbiAgICB9XG4gICAgY29uc3Qgb3V0cHV0Rm9ybWF0RmllbGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpO1xuICAgIG91dHB1dEZvcm1hdEZpZWxkLnNldEF0dHJpYnV0ZSgndHlwZScsICdoaWRkZW4nKTtcbiAgICBvdXRwdXRGb3JtYXRGaWVsZC5zZXRBdHRyaWJ1dGUoJ25hbWUnLCAnZm9ybWF0Jyk7XG4gICAgb3V0cHV0Rm9ybWF0RmllbGQuc2V0QXR0cmlidXRlKCd2YWx1ZScsIG9ncmVGb3JtYXQpO1xuICAgIGZvcm0uYXBwZW5kQ2hpbGQob3V0cHV0Rm9ybWF0RmllbGQpO1xuXG4gICAgZm9ybS5zdWJtaXQoKTtcbiAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGZvcm0pO1xuXG4gICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgbm90aGluZ1RvRXhwb3J0KFxuICAgIG9sRmVhdHVyZXM6IE9sRmVhdHVyZTxPbEdlb21ldHJ5PltdLFxuICAgIGZvcm1hdDogc3RyaW5nXG4gICk6IGJvb2xlYW4ge1xuICAgIGlmIChvbEZlYXR1cmVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGlmIChmb3JtYXQgPT09ICdHUFgnKSB7XG4gICAgICBjb25zdCBwb2ludE9yTGluZSA9IG9sRmVhdHVyZXMuZmluZCgob2xGZWF0dXJlKSA9PiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgWydQb2ludCcsICdMaW5lU3RyaW5nJywgJ011bHRpTGluZVN0cmluZyddLmluZGV4T2YoXG4gICAgICAgICAgICBvbEZlYXR1cmUuZ2V0R2VvbWV0cnkoKS5nZXRUeXBlKClcbiAgICAgICAgICApID49IDBcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHBvaW50T3JMaW5lID09PSB1bmRlZmluZWQ7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuIl19
212
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9pbXBvcnQtZXhwb3J0L3NoYXJlZC9leHBvcnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTlDLE9BQU8sU0FBUyxNQUFNLFlBQVksQ0FBQztBQUNuQyxPQUFPLEtBQUssUUFBUSxNQUFNLFdBQVcsQ0FBQztBQUd0QyxPQUFPLEVBQUUsVUFBVSxFQUFZLE1BQU0sTUFBTSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFdEMsT0FBTyxFQUNMLHNCQUFzQixFQUN0QiwwQkFBMEIsRUFDM0IsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBRTdELE1BQU0sMEJBQTBCLEdBQUcsR0FBRyxDQUFDO0FBS3ZDLE1BQU0sT0FBTyxhQUFhO0lBZUo7SUFkcEIsTUFBTSxDQUFDLFdBQVcsR0FBRztRQUNuQixHQUFHLEVBQUUsS0FBSztRQUNWLEdBQUcsRUFBRSxLQUFLO1FBQ1YsR0FBRyxFQUFFLEtBQUs7UUFDVixTQUFTLEVBQUUsZ0JBQWdCO1FBQzNCLFFBQVEsRUFBRSxVQUFVO1FBQ3BCLFlBQVksRUFBRSxjQUFjO0tBQzdCLENBQUM7SUFFRixNQUFNLENBQUMsZUFBZSxHQUFHLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztJQUV2QyxPQUFPLENBQVM7SUFDaEIsa0JBQWtCLEdBQUcsSUFBSSxDQUFDO0lBRWxDLFlBQW9CLE1B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RU8sZUFBZSxDQUNyQixVQUFtQyxFQUNuQyxNQUFjO1FBRWQsSUFBSSxVQUFVLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzVCLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUNELElBQUksTUFBTSxLQUFLLEtBQUssRUFBRSxDQUFDO1lBQ3JCLE1BQU0sV0FBVyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtnQkFDaEQsT0FBTyxDQUNMLENBQUMsT0FBTyxFQUFFLFlBQVksRUFBRSxpQkFBaUIsQ0FBQyxDQUFDLE9BQU8sQ0FDaEQsU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUNsQyxJQUFJLENBQUMsQ0FDUCxDQUFDO1lBQ0osQ0FBQyxDQUFDLENBQUM7WUFDSCxPQUFPLFdBQVcsS0FBSyxTQUFTLENBQUM7UUFDbkMsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzt1R0E3U1UsYUFBYTsyR0FBYixhQUFhLGNBRlosTUFBTTs7MkZBRVAsYUFBYTtrQkFIekIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IENvbmZpZ1NlcnZpY2UgfSBmcm9tICdAaWdvMi9jb3JlL2NvbmZpZyc7XG5pbXBvcnQgeyBkb3dubG9hZENvbnRlbnQgfSBmcm9tICdAaWdvMi91dGlscyc7XG5cbmltcG9ydCBPbEZlYXR1cmUgZnJvbSAnb2wvRmVhdHVyZSc7XG5pbXBvcnQgKiBhcyBvbGZvcm1hdCBmcm9tICdvbC9mb3JtYXQnO1xuaW1wb3J0IHR5cGUgeyBkZWZhdWx0IGFzIE9sR2VvbWV0cnkgfSBmcm9tICdvbC9nZW9tL0dlb21ldHJ5JztcblxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgT2JzZXJ2ZXIgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGVuY29kZSB9IGZyb20gJ3dpbmRvd3MtMTI1Mic7XG5cbmltcG9ydCB7XG4gIEV4cG9ydEludmFsaWRGaWxlRXJyb3IsXG4gIEV4cG9ydE5vdGhpbmdUb0V4cG9ydEVycm9yXG59IGZyb20gJy4vZXhwb3J0LmVycm9ycyc7XG5pbXBvcnQgeyBFbmNvZGluZ0Zvcm1hdCwgRXhwb3J0Rm9ybWF0IH0gZnJvbSAnLi9leHBvcnQudHlwZSc7XG5cbmNvbnN0IFNIQVBFRklMRV9GSUVMRF9NQVhfTEVOR0hUID0gMjU1O1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBFeHBvcnRTZXJ2aWNlIHtcbiAgc3RhdGljIG9ncmVGb3JtYXRzID0ge1xuICAgIEdNTDogJ2dtbCcsXG4gICAgR1BYOiAnZ3B4JyxcbiAgICBLTUw6ICdrbWwnLFxuICAgIFNoYXBlZmlsZTogJ0VTUkkgU2hhcGVmaWxlJyxcbiAgICBDU1Zjb21tYTogJ0NTVmNvbW1hJyxcbiAgICBDU1ZzZW1pY29sb246ICdDU1ZzZW1pY29sb24nXG4gIH07XG5cbiAgc3RhdGljIG5vT2dyZUZhbGxiYWNrcyA9IFsnR01MJywgJ0dQWCcsICdLTUwnXTtcblxuICBwcml2YXRlIG9ncmVVcmw6IHN0cmluZztcbiAgcHJpdmF0ZSBhZ2dyZWdhdGVJbkNvbW1lbnQgPSB0cnVlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY29uZmlnOiBDb25maWdTZXJ2aWNlKSB7XG4gICAgdGhpcy5vZ3JlVXJsID0gdGhpcy5jb25maWcuZ2V0Q29uZmlnKCdpbXBvcnRFeHBvcnQudXJsJyk7XG4gICAgY29uc3QgZ3B4QWdncmVnYXRlSW5Db21tZW50ID0gdGhpcy5jb25maWcuZ2V0Q29uZmlnKFxuICAgICAgJ2ltcG9ydEV4cG9ydC5ncHhBZ2dyZWdhdGVJbkNvbW1lbnQnXG4gICAgKTtcbiAgICBpZiAoZ3B4QWdncmVnYXRlSW5Db21tZW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuYWdncmVnYXRlSW5Db21tZW50ID0gZ3B4QWdncmVnYXRlSW5Db21tZW50O1xuICAgIH1cbiAgfVxuXG4gIGV4cG9ydChcbiAgICBvbEZlYXR1cmVzOiBPbEZlYXR1cmU8T2xHZW9tZXRyeT5bXSxcbiAgICBmb3JtYXQ6IEV4cG9ydEZvcm1hdCxcbiAgICB0aXRsZTogc3RyaW5nLFxuICAgIGVuY29kaW5nOiBFbmNvZGluZ0Zvcm1hdCxcbiAgICBwcm9qZWN0aW9uSW4gPSAnRVBTRzo0MzI2JyxcbiAgICBwcm9qZWN0aW9uT3V0ID0gJ0VQU0c6NDMyNidcbiAgKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgY29uc3QgZXhwb3J0T2xGZWF0dXJlcyA9IHRoaXMuZ2VuZXJhdGVGZWF0dXJlKFxuICAgICAgb2xGZWF0dXJlcyxcbiAgICAgIGZvcm1hdCxcbiAgICAgICdfZmVhdHVyZVN0b3JlJ1xuICAgICk7XG5cbiAgICByZXR1cm4gdGhpcy5leHBvcnRBc3luYyhcbiAgICAgIGV4cG9ydE9sRmVhdHVyZXMsXG4gICAgICBmb3JtYXQsXG4gICAgICB0aXRsZSxcbiAgICAgIGVuY29kaW5nLFxuICAgICAgcHJvamVjdGlvbkluLFxuICAgICAgcHJvamVjdGlvbk91dFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZ2VuZXJhdGVGZWF0dXJlKFxuICAgIG9sRmVhdHVyZXM6IE9sRmVhdHVyZTxPbEdlb21ldHJ5PltdLFxuICAgIGZvcm1hdDogRXhwb3J0Rm9ybWF0LFxuICAgIGV4Y2x1ZGVQcmVmaXggPSAnXydcbiAgKTogT2xGZWF0dXJlPE9sR2VvbWV0cnk+W10ge1xuICAgIGlmIChmb3JtYXQgPT09IEV4cG9ydEZvcm1hdC5HUFggJiYgdGhpcy5hZ2dyZWdhdGVJbkNvbW1lbnQpIHtcbiAgICAgIHJldHVybiB0aGlzLmdlbmVyYXRlQWdncmVnYXRlZEZlYXR1cmUob2xGZWF0dXJlcyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG9sRmVhdHVyZXMubWFwKChvbEZlYXR1cmU6IE9sRmVhdHVyZTxPbEdlb21ldHJ5PikgPT4ge1xuICAgICAgbGV0IGtleXMgPSBvbEZlYXR1cmVcbiAgICAgICAgLmdldEtleXMoKVxuICAgICAgICAuZmlsdGVyKChrZXk6IHN0cmluZykgPT4gIWtleS5zdGFydHNXaXRoKGV4Y2x1ZGVQcmVmaXgpKTtcblxuICAgICAgaWYgKGZvcm1hdCA9PT0gRXhwb3J0Rm9ybWF0LlNoYXBlZmlsZSAmJiBvbEZlYXR1cmUuZ2V0KCdfc3R5bGUnKSkge1xuICAgICAgICBjb25zdCBzdHlsZSA9IEpTT04uc3RyaW5naWZ5KG9sRmVhdHVyZS5nZXQoJ19zdHlsZScpKTtcbiAgICAgICAgaWYgKHN0eWxlLmxlbmd0aCA+IFNIQVBFRklMRV9GSUVMRF9NQVhfTEVOR0hUKVxuICAgICAgICAgIGtleXMgPSBrZXlzLmZpbHRlcigoa2V5KSA9PiBrZXkgIT09ICdfc3R5bGUnKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgcHJvcGVydGllcyA9IGtleXMucmVkdWNlKFxuICAgICAgICAoYWNjOiBvYmplY3QsIGtleTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgYWNjW2tleV0gPSBvbEZlYXR1cmUuZ2V0KGtleSk7XG4gICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgfSxcbiAgICAgICAgeyBnZW9tZXRyeTogb2xGZWF0dXJlLmdldEdlb21ldHJ5KCkgfVxuICAgICAgKTtcbiAgICAgIHJldHVybiBuZXcgT2xGZWF0dXJlKHByb3BlcnRpZXMpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZW5lcmF0ZUFnZ3JlZ2F0ZWRGZWF0dXJlKFxuICAgIG9sRmVhdHVyZXM6IE9sRmVhdHVyZTxPbEdlb21ldHJ5PltdXG4gICk6IE9sRmVhdHVyZTxPbEdlb21ldHJ5PltdIHtcbiAgICByZXR1cm4gb2xGZWF0dXJlcy5tYXAoKG9sRmVhdHVyZTogT2xGZWF0dXJlPE9sR2VvbWV0cnk+KSA9PiB7XG4gICAgICBjb25zdCBrZXlzID0gb2xGZWF0dXJlXG4gICAgICAgIC5nZXRLZXlzKClcbiAgICAgICAgLmZpbHRlcigoa2V5OiBzdHJpbmcpID0+ICFrZXkuc3RhcnRzV2l0aCgnXycpKTtcbiAgICAgIGxldCBjb21tZW50ID0gJyc7XG4gICAgICBjb25zdCBwcm9wZXJ0aWVzID0ga2V5cy5yZWR1Y2UoXG4gICAgICAgIChhY2M6IG9iamVjdCwga2V5OiBzdHJpbmcpID0+IHtcbiAgICAgICAgICBpZiAoa2V5ICYmIGtleSAhPT0gJ2dlb21ldHJ5Jykge1xuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtZXhwcmVzc2lvbnNcbiAgICAgICAgICAgIGtleSA9PT0gJ2lkJyAmJiBvbEZlYXR1cmUuZ2V0KCdkcmF3JylcbiAgICAgICAgICAgICAgPyAoY29tbWVudCArPSBrZXkgKyAnOicgKyBvbEZlYXR1cmUuZ2V0KCdkcmF3JykgKyAnICAgXFxyXFxuJylcbiAgICAgICAgICAgICAgOiAoY29tbWVudCArPSBrZXkgKyAnOicgKyBvbEZlYXR1cmUuZ2V0KGtleSkgKyAnICAgXFxyXFxuJyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGFjY1trZXldID0gb2xGZWF0dXJlLmdldChrZXkpO1xuICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBnZW9tZXRyeTogb2xGZWF0dXJlLmdldEdlb21ldHJ5KClcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICAgIGNvbnN0IG5ld0ZlYXR1cmUgPSBuZXcgT2xGZWF0dXJlKHByb3BlcnRpZXMpO1xuICAgICAgbmV3RmVhdHVyZS5zZXQoJ25hbWUnLCBvbEZlYXR1cmUuZ2V0SWQoKSk7XG4gICAgICBuZXdGZWF0dXJlLnNldCgnY210JywgY29tbWVudCk7XG5cbiAgICAgIHJldHVybiBuZXdGZWF0dXJlO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBleHBvcnRBc3luYyhcbiAgICBvbEZlYXR1cmVzOiBPbEZlYXR1cmU8T2xHZW9tZXRyeT5bXSxcbiAgICBmb3JtYXQ6IEV4cG9ydEZvcm1hdCxcbiAgICB0aXRsZTogc3RyaW5nLFxuICAgIGVuY29kaW5nOiBFbmNvZGluZ0Zvcm1hdCxcbiAgICBwcm9qZWN0aW9uSW46IHN0cmluZyxcbiAgICBwcm9qZWN0aW9uT3V0OiBzdHJpbmdcbiAgKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgY29uc3QgZG9FeHBvcnQgPSAob2JzZXJ2ZXI6IE9ic2VydmVyPHZvaWQ+KSA9PiB7XG4gICAgICBjb25zdCBub3RoaW5nVG9FeHBvcnQgPSB0aGlzLm5vdGhpbmdUb0V4cG9ydChvbEZlYXR1cmVzLCBmb3JtYXQpO1xuICAgICAgaWYgKG5vdGhpbmdUb0V4cG9ydCkge1xuICAgICAgICBvYnNlcnZlci5lcnJvcihuZXcgRXhwb3J0Tm90aGluZ1RvRXhwb3J0RXJyb3IoKSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3Qgb2dyZUZvcm1hdHMgPSBPYmplY3Qua2V5cyhFeHBvcnRTZXJ2aWNlLm9ncmVGb3JtYXRzKTtcbiAgICAgIGlmIChvZ3JlRm9ybWF0cy5pbmRleE9mKGZvcm1hdCkgPj0gMCkge1xuICAgICAgICBpZiAoIXRoaXMub2dyZVVybCkge1xuICAgICAgICAgIGlmIChFeHBvcnRTZXJ2aWNlLm5vT2dyZUZhbGxiYWNrcy5pbmRleE9mKGZvcm1hdCkgPj0gMCkge1xuICAgICAgICAgICAgdGhpcy5leHBvcnRUb0ZpbGUoXG4gICAgICAgICAgICAgIG9sRmVhdHVyZXMsXG4gICAgICAgICAgICAgIG9ic2VydmVyLFxuICAgICAgICAgICAgICBmb3JtYXQsXG4gICAgICAgICAgICAgIHRpdGxlLFxuICAgICAgICAgICAgICBwcm9qZWN0aW9uSW4sXG4gICAgICAgICAgICAgIHByb2plY3Rpb25PdXRcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG9ic2VydmVyLmVycm9yKG5ldyBFeHBvcnRJbnZhbGlkRmlsZUVycm9yKCkpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5leHBvcnRXaXRoT2dyZShcbiAgICAgICAgICBvbEZlYXR1cmVzLFxuICAgICAgICAgIG9ic2VydmVyLFxuICAgICAgICAgIGZvcm1hdCxcbiAgICAgICAgICB0aXRsZSxcbiAgICAgICAgICBlbmNvZGluZyxcbiAgICAgICAgICBwcm9qZWN0aW9uSW4sXG4gICAgICAgICAgcHJvamVjdGlvbk91dFxuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5leHBvcnRUb0ZpbGUoXG4gICAgICAgICAgb2xGZWF0dXJlcyxcbiAgICAgICAgICBvYnNlcnZlcixcbiAgICAgICAgICBmb3JtYXQsXG4gICAgICAgICAgdGl0bGUsXG4gICAgICAgICAgcHJvamVjdGlvbkluLFxuICAgICAgICAgIHByb2plY3Rpb25PdXRcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKGRvRXhwb3J0KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBleHBvcnRUb0ZpbGUoXG4gICAgb2xGZWF0dXJlczogT2xGZWF0dXJlPE9sR2VvbWV0cnk+W10sXG4gICAgb2JzZXJ2ZXI6IE9ic2VydmVyPHZvaWQ+LFxuICAgIGZvcm1hdDogRXhwb3J0Rm9ybWF0LFxuICAgIHRpdGxlOiBzdHJpbmcsXG4gICAgcHJvamVjdGlvbkluOiBzdHJpbmcsXG4gICAgcHJvamVjdGlvbk91dDogc3RyaW5nXG4gICkge1xuICAgIGNvbnN0IG9sRm9ybWF0ID0gbmV3IG9sZm9ybWF0W2Zvcm1hdF0oKTtcbiAgICBjb25zdCBmZWF0dXJlc1RleHQgPSBvbEZvcm1hdC53cml0ZUZlYXR1cmVzKG9sRmVhdHVyZXMsIHtcbiAgICAgIGRhdGFQcm9qZWN0aW9uOiBwcm9qZWN0aW9uT3V0LFxuICAgICAgZmVhdHVyZVByb2plY3Rpb246IHByb2plY3Rpb25JbixcbiAgICAgIGZlYXR1cmVUeXBlOiAnZmVhdHVyZScsXG4gICAgICBmZWF0dXJlTlM6ICdodHRwOi8vZXhhbXBsZS5jb20vZmVhdHVyZSdcbiAgICB9KTtcblxuICAgIGNvbnN0IGZpbGVOYW1lID0gYCR7dGl0bGV9LiR7Zm9ybWF0LnRvTG93ZXJDYXNlKCl9YDtcblxuICAgIGRvd25sb2FkQ29udGVudChmZWF0dXJlc1RleHQsICdhdHRhY2htZW50L3BsYWluO2NoYXJzZXQ9dXRmLTgnLCBmaWxlTmFtZSk7XG4gICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgZXhwb3J0V2l0aE9ncmUoXG4gICAgb2xGZWF0dXJlczogT2xGZWF0dXJlPE9sR2VvbWV0cnk+W10sXG4gICAgb2JzZXJ2ZXI6IE9ic2VydmVyPHZvaWQ+LFxuICAgIGZvcm1hdDogc3RyaW5nLFxuICAgIHRpdGxlOiBzdHJpbmcsXG4gICAgZW5jb2RpbmdUeXBlOiBFbmNvZGluZ0Zvcm1hdCxcbiAgICBwcm9qZWN0aW9uSW46IHN0cmluZyxcbiAgICBwcm9qZWN0aW9uT3V0OiBzdHJpbmdcbiAgKSB7XG4gICAgbGV0IGZlYXR1cmVzVGV4dDogc3RyaW5nID0gbmV3IG9sZm9ybWF0Lkdlb0pTT04oKS53cml0ZUZlYXR1cmVzKFxuICAgICAgb2xGZWF0dXJlcyxcbiAgICAgIHtcbiAgICAgICAgZGF0YVByb2plY3Rpb246IHByb2plY3Rpb25PdXQsXG4gICAgICAgIGZlYXR1cmVQcm9qZWN0aW9uOiBwcm9qZWN0aW9uSW5cbiAgICAgIH1cbiAgICApO1xuXG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5vZ3JlVXJsfS9jb252ZXJ0SnNvbmA7XG4gICAgY29uc3QgZm9ybSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Zvcm0nKTtcbiAgICBmb3JtLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChmb3JtKTtcbiAgICBmb3JtLnNldEF0dHJpYnV0ZSgnbWV0aG9kJywgJ3Bvc3QnKTtcbiAgICBmb3JtLnNldEF0dHJpYnV0ZSgndGFyZ2V0JywgJ19ibGFuaycpO1xuICAgIGZvcm0uc2V0QXR0cmlidXRlKCdhY3Rpb24nLCB1cmwpO1xuXG4gICAgaWYgKGVuY29kaW5nVHlwZSA9PT0gRW5jb2RpbmdGb3JtYXQuVVRGOCkge1xuICAgICAgZm9ybS5hY2NlcHRDaGFyc2V0ID0gJ1VURi04JztcbiAgICAgIGZvcm0uZW5jdHlwZSA9ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7IGNoYXJzZXQ9dXRmLTg7JztcbiAgICB9IGVsc2UgaWYgKGVuY29kaW5nVHlwZSA9PT0gRW5jb2RpbmdGb3JtYXQuTEFUSU4xKSB7XG4gICAgICBjb25zdCBlbmN0eXBlID0gJ0lTTy04ODU5LTEnO1xuICAgICAgY29uc3QgZmVhdHVyZXNKc29uID0gSlNPTi5wYXJzZShmZWF0dXJlc1RleHQpO1xuICAgICAgZmVhdHVyZXNKc29uLmZlYXR1cmVzLm1hcCgoZikgPT4ge1xuICAgICAgICBjb25zdCBlbmNvZGVkUHJvcGVydGllcyA9IFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkoXG4gICAgICAgICAgbnVsbCxcbiAgICAgICAgICBlbmNvZGUoSlNPTi5zdHJpbmdpZnkoZi5wcm9wZXJ0aWVzKSwgeyBtb2RlOiAncmVwbGFjZW1lbnQnIH0pXG4gICAgICAgICk7XG4gICAgICAgIGYucHJvcGVydGllcyA9IEpTT04ucGFyc2UoZW5jb2RlZFByb3BlcnRpZXMpO1xuICAgICAgfSk7XG4gICAgICBmZWF0dXJlc1RleHQgPSBKU09OLnN0cmluZ2lmeShmZWF0dXJlc0pzb24pO1xuICAgICAgY29uc3QgZW5jb2RpbmcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpO1xuICAgICAgZW5jb2Rpbmcuc2V0QXR0cmlidXRlKCd0eXBlJywgJ2hpZGRlbicpO1xuICAgICAgZW5jb2Rpbmcuc2V0QXR0cmlidXRlKCduYW1lJywgJ2VuY29kaW5nJyk7XG4gICAgICBlbmNvZGluZy5zZXRBdHRyaWJ1dGUoJ3ZhbHVlJywgZW5jdHlwZSk7XG4gICAgICBmb3JtLmFwcGVuZENoaWxkKGVuY29kaW5nKTtcbiAgICB9XG5cbiAgICBpZiAoZm9ybWF0ID09PSAnQ1NWc2VtaWNvbG9uJykge1xuICAgICAgY29uc3Qgb3B0aW9ucyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7XG4gICAgICBvcHRpb25zLnNldEF0dHJpYnV0ZSgndHlwZScsICdoaWRkZW4nKTtcbiAgICAgIG9wdGlvbnMuc2V0QXR0cmlidXRlKCduYW1lJywgJ2xjbycpO1xuICAgICAgb3B0aW9ucy5zZXRBdHRyaWJ1dGUoJ3ZhbHVlJywgJ1NFUEFSQVRPUj1TRU1JQ09MT04nKTtcbiAgICAgIGZvcm0uYXBwZW5kQ2hpbGQob3B0aW9ucyk7XG4gICAgfVxuXG4gICAgY29uc3QgZ2VvanNvbkZpZWxkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTtcbiAgICBnZW9qc29uRmllbGQuc2V0QXR0cmlidXRlKCd0eXBlJywgJ2hpZGRlbicpO1xuICAgIGdlb2pzb25GaWVsZC5zZXRBdHRyaWJ1dGUoJ25hbWUnLCAnanNvbicpO1xuICAgIGdlb2pzb25GaWVsZC5zZXRBdHRyaWJ1dGUoJ3ZhbHVlJywgZmVhdHVyZXNUZXh0KTtcbiAgICBmb3JtLmFwcGVuZENoaWxkKGdlb2pzb25GaWVsZCk7XG5cbiAgICBjb25zdCBvdXRwdXROYW1lRmllbGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpO1xuICAgIGxldCBvdXRwdXROYW1lID1cbiAgICAgIGZvcm1hdCA9PT0gJ1NoYXBlZmlsZSdcbiAgICAgICAgPyBgJHt0aXRsZX0uemlwYFxuICAgICAgICA6IGAke3RpdGxlfS4ke2Zvcm1hdC50b0xvd2VyQ2FzZSgpfWA7XG4gICAgaWYgKGZvcm1hdCA9PT0gJ0NTVmNvbW1hJyB8fCBmb3JtYXQgPT09ICdDU1ZzZW1pY29sb24nKSB7XG4gICAgICBvdXRwdXROYW1lID0gYCR7dGl0bGV9LmNzdmA7XG4gICAgfVxuICAgIG91dHB1dE5hbWUgPSBvdXRwdXROYW1lLnJlcGxhY2UoJyAnLCAnXycpO1xuICAgIG91dHB1dE5hbWUgPSBvdXRwdXROYW1lXG4gICAgICAubm9ybWFsaXplKCdORkQnKVxuICAgICAgLnJlcGxhY2UoL1tcXHUwMzAwLVxcdTAzNmZdL2csICcnKVxuICAgICAgLnJlcGxhY2UoL+KAmS9nLCBcIidcIik7XG4gICAgb3V0cHV0TmFtZUZpZWxkLnNldEF0dHJpYnV0ZSgndHlwZScsICdoaWRkZW4nKTtcbiAgICBvdXRwdXROYW1lRmllbGQuc2V0QXR0cmlidXRlKCduYW1lJywgJ291dHB1dE5hbWUnKTtcbiAgICBvdXRwdXROYW1lRmllbGQuc2V0QXR0cmlidXRlKCd2YWx1ZScsIG91dHB1dE5hbWUpO1xuICAgIGZvcm0uYXBwZW5kQ2hpbGQob3V0cHV0TmFtZUZpZWxkKTtcblxuICAgIGxldCBvZ3JlRm9ybWF0ID0gRXhwb3J0U2VydmljZS5vZ3JlRm9ybWF0c1tmb3JtYXRdO1xuICAgIGlmIChmb3JtYXQgPT09ICdDU1Zjb21tYScgfHwgZm9ybWF0ID09PSAnQ1NWc2VtaWNvbG9uJykge1xuICAgICAgb2dyZUZvcm1hdCA9ICdDU1YnO1xuICAgIH1cbiAgICBjb25zdCBvdXRwdXRGb3JtYXRGaWVsZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7XG4gICAgb3V0cHV0Rm9ybWF0RmllbGQuc2V0QXR0cmlidXRlKCd0eXBlJywgJ2hpZGRlbicpO1xuICAgIG91dHB1dEZvcm1hdEZpZWxkLnNldEF0dHJpYnV0ZSgnbmFtZScsICdmb3JtYXQnKTtcbiAgICBvdXRwdXRGb3JtYXRGaWVsZC5zZXRBdHRyaWJ1dGUoJ3ZhbHVlJywgb2dyZUZvcm1hdCk7XG4gICAgZm9ybS5hcHBlbmRDaGlsZChvdXRwdXRGb3JtYXRGaWVsZCk7XG5cbiAgICBmb3JtLnN1Ym1pdCgpO1xuICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZm9ybSk7XG5cbiAgICBvYnNlcnZlci5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBub3RoaW5nVG9FeHBvcnQoXG4gICAgb2xGZWF0dXJlczogT2xGZWF0dXJlPE9sR2VvbWV0cnk+W10sXG4gICAgZm9ybWF0OiBzdHJpbmdcbiAgKTogYm9vbGVhbiB7XG4gICAgaWYgKG9sRmVhdHVyZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKGZvcm1hdCA9PT0gJ0dQWCcpIHtcbiAgICAgIGNvbnN0IHBvaW50T3JMaW5lID0gb2xGZWF0dXJlcy5maW5kKChvbEZlYXR1cmUpID0+IHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICBbJ1BvaW50JywgJ0xpbmVTdHJpbmcnLCAnTXVsdGlMaW5lU3RyaW5nJ10uaW5kZXhPZihcbiAgICAgICAgICAgIG9sRmVhdHVyZS5nZXRHZW9tZXRyeSgpLmdldFR5cGUoKVxuICAgICAgICAgICkgPj0gMFxuICAgICAgICApO1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gcG9pbnRPckxpbmUgPT09IHVuZGVmaW5lZDtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG4iXX0=
@@ -21,7 +21,7 @@ export function handleNothingToExportError(messageService) {
21
21
  * @param separator Cell separator
22
22
  */
23
23
  export function exportToCSV(rows, fileName, separator = ';') {
24
- const lines = rows.map((row, index) => row.join(separator));
24
+ const lines = rows.map((row) => row.join(separator));
25
25
  const csvContent = lines.join('\n');
26
26
  downloadContent(csvContent, 'text/csv;charset=utf-8', fileName);
27
27
  }
@@ -44,4 +44,4 @@ export function entitiesToRowData(entities, columns) {
44
44
  });
45
45
  });
46
46
  }
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0LnV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvaW1wb3J0LWV4cG9ydC9zaGFyZWQvZXhwb3J0LnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCx5QkFBeUIsRUFDekIsaUJBQWlCLEVBQ2xCLE1BQU0scUJBQXFCLENBQUM7QUFFN0IsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU5QyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUU3RCxNQUFNLFVBQVUscUJBQXFCLENBQ25DLEtBQVksRUFDWixjQUE4QjtJQUU5QixJQUFJLEtBQUssWUFBWSwwQkFBMEIsRUFBRSxDQUFDO1FBQ2hELDBCQUEwQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzNDLE9BQU87SUFDVCxDQUFDO0lBQ0QsY0FBYyxDQUFDLEtBQUssQ0FDbEIsNEJBQTRCLEVBQzVCLDZCQUE2QixDQUM5QixDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSx1QkFBdUIsQ0FBQyxjQUE4QjtJQUNwRSxjQUFjLENBQUMsT0FBTyxDQUNwQiw2QkFBNkIsRUFDN0IsOEJBQThCLENBQy9CLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLDBCQUEwQixDQUFDLGNBQThCO0lBQ3ZFLGNBQWMsQ0FBQyxLQUFLLENBQ2xCLDZCQUE2QixFQUM3Qiw4QkFBOEIsQ0FDL0IsQ0FBQztBQUNKLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxXQUFXLENBQ3pCLElBQWEsRUFDYixRQUFnQixFQUNoQixZQUFvQixHQUFHO0lBRXZCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFZLEVBQUUsS0FBYSxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDN0UsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwQyxlQUFlLENBQUMsVUFBVSxFQUFFLHdCQUF3QixFQUFFLFFBQVEsQ0FBQyxDQUFDO0FBQ2xFLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxpQkFBaUIsQ0FDL0IsUUFBa0IsRUFDbEIsT0FBNEI7SUFFNUIsT0FBTyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBYyxFQUFFLEVBQUU7UUFDckMsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBeUIsRUFBRSxFQUFFO1lBQy9DLElBQUksYUFBYSxDQUFDO1lBQ2xCLElBQ0UsTUFBTSxDQUFDLFFBQVEsS0FBSyxTQUFTO2dCQUM3QixNQUFNLENBQUMsUUFBUSxLQUFLLHlCQUF5QixDQUFDLE9BQU8sRUFDckQsQ0FBQztnQkFDRCxhQUFhLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQztZQUN2QyxDQUFDO1lBQ0QsYUFBYSxHQUFHLGFBQWEsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQztZQUNsRSxPQUFPLGFBQWEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRW50aXR5VGFibGVDb2x1bW4sXG4gIEVudGl0eVRhYmxlQ29sdW1uUmVuZGVyZXIsXG4gIGdldEVudGl0eVByb3BlcnR5XG59IGZyb20gJ0BpZ28yL2NvbW1vbi9lbnRpdHknO1xuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICdAaWdvMi9jb3JlL21lc3NhZ2UnO1xuaW1wb3J0IHsgZG93bmxvYWRDb250ZW50IH0gZnJvbSAnQGlnbzIvdXRpbHMnO1xuXG5pbXBvcnQgeyBFeHBvcnROb3RoaW5nVG9FeHBvcnRFcnJvciB9IGZyb20gJy4vZXhwb3J0LmVycm9ycyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBoYW5kbGVGaWxlRXhwb3J0RXJyb3IoXG4gIGVycm9yOiBFcnJvcixcbiAgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlXG4pIHtcbiAgaWYgKGVycm9yIGluc3RhbmNlb2YgRXhwb3J0Tm90aGluZ1RvRXhwb3J0RXJyb3IpIHtcbiAgICBoYW5kbGVOb3RoaW5nVG9FeHBvcnRFcnJvcihtZXNzYWdlU2VydmljZSk7XG4gICAgcmV0dXJuO1xuICB9XG4gIG1lc3NhZ2VTZXJ2aWNlLmVycm9yKFxuICAgICdpZ28uZ2VvLmV4cG9ydC5mYWlsZWQudGV4dCcsXG4gICAgJ2lnby5nZW8uZXhwb3J0LmZhaWxlZC50aXRsZSdcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhhbmRsZUZpbGVFeHBvcnRTdWNjZXNzKG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSkge1xuICBtZXNzYWdlU2VydmljZS5zdWNjZXNzKFxuICAgICdpZ28uZ2VvLmV4cG9ydC5zdWNjZXNzLnRleHQnLFxuICAgICdpZ28uZ2VvLmV4cG9ydC5zdWNjZXNzLnRpdGxlJ1xuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaGFuZGxlTm90aGluZ1RvRXhwb3J0RXJyb3IobWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlKSB7XG4gIG1lc3NhZ2VTZXJ2aWNlLmVycm9yKFxuICAgICdpZ28uZ2VvLmV4cG9ydC5ub3RoaW5nLnRleHQnLFxuICAgICdpZ28uZ2VvLmV4cG9ydC5ub3RoaW5nLnRpdGxlJ1xuICApO1xufVxuXG4vKipcbiAqIEV4cG9ydCBhcnJheSB0byBDU1ZcbiAqXG4gKiBAcGFyYW0gcm93cyBBcnJheSBvZiBhcnJheXMgdG8gZXhwb3J0IGFzIENTVlxuICogQHBhcmFtIHNlcGFyYXRvciBDZWxsIHNlcGFyYXRvclxuICovXG5leHBvcnQgZnVuY3Rpb24gZXhwb3J0VG9DU1YoXG4gIHJvd3M6IGFueVtdW10sXG4gIGZpbGVOYW1lOiBzdHJpbmcsXG4gIHNlcGFyYXRvcjogc3RyaW5nID0gJzsnXG4pIHtcbiAgY29uc3QgbGluZXMgPSByb3dzLm1hcCgocm93OiBhbnlbXVtdLCBpbmRleDogbnVtYmVyKSA9PiByb3cuam9pbihzZXBhcmF0b3IpKTtcbiAgY29uc3QgY3N2Q29udGVudCA9IGxpbmVzLmpvaW4oJ1xcbicpO1xuICBkb3dubG9hZENvbnRlbnQoY3N2Q29udGVudCwgJ3RleHQvY3N2O2NoYXJzZXQ9dXRmLTgnLCBmaWxlTmFtZSk7XG59XG5cbi8qKlxuICogUmV0dXJuIGFuIGFycmF5IG9mIHZhbHVlcyBmcm9tIGFuIGFycmF5IG9mIGVudGl0aWVzLlxuICpcbiAqIEBwYXJhbSBlbnRpdGllcyBBcnJheSBvZiBlbnRpdGllc1xuICogQHBhcmFtIHNjb2x1bW5zIENvbHVtbnMgZGVmaW5pdGlvbiBvZiB0aGUgb3V0cHV0IGRhdGFcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVudGl0aWVzVG9Sb3dEYXRhKFxuICBlbnRpdGllczogb2JqZWN0W10sXG4gIGNvbHVtbnM6IEVudGl0eVRhYmxlQ29sdW1uW11cbikge1xuICByZXR1cm4gZW50aXRpZXMubWFwKChlbnRpdHk6IG9iamVjdCkgPT4ge1xuICAgIHJldHVybiBjb2x1bW5zLm1hcCgoY29sdW1uOiBFbnRpdHlUYWJsZUNvbHVtbikgPT4ge1xuICAgICAgbGV0IHZhbHVlQWNjZXNzb3I7XG4gICAgICBpZiAoXG4gICAgICAgIGNvbHVtbi5yZW5kZXJlciA9PT0gdW5kZWZpbmVkIHx8XG4gICAgICAgIGNvbHVtbi5yZW5kZXJlciA9PT0gRW50aXR5VGFibGVDb2x1bW5SZW5kZXJlci5EZWZhdWx0XG4gICAgICApIHtcbiAgICAgICAgdmFsdWVBY2Nlc3NvciA9IGNvbHVtbi52YWx1ZUFjY2Vzc29yO1xuICAgICAgfVxuICAgICAgdmFsdWVBY2Nlc3NvciA9IHZhbHVlQWNjZXNzb3IgPyB2YWx1ZUFjY2Vzc29yIDogZ2V0RW50aXR5UHJvcGVydHk7XG4gICAgICByZXR1cm4gdmFsdWVBY2Nlc3NvcihlbnRpdHksIGNvbHVtbi5uYW1lKTtcbiAgICB9KTtcbiAgfSk7XG59XG4iXX0=
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0LnV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvaW1wb3J0LWV4cG9ydC9zaGFyZWQvZXhwb3J0LnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCx5QkFBeUIsRUFDekIsaUJBQWlCLEVBQ2xCLE1BQU0scUJBQXFCLENBQUM7QUFFN0IsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU5QyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUU3RCxNQUFNLFVBQVUscUJBQXFCLENBQ25DLEtBQVksRUFDWixjQUE4QjtJQUU5QixJQUFJLEtBQUssWUFBWSwwQkFBMEIsRUFBRSxDQUFDO1FBQ2hELDBCQUEwQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzNDLE9BQU87SUFDVCxDQUFDO0lBQ0QsY0FBYyxDQUFDLEtBQUssQ0FDbEIsNEJBQTRCLEVBQzVCLDZCQUE2QixDQUM5QixDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSx1QkFBdUIsQ0FBQyxjQUE4QjtJQUNwRSxjQUFjLENBQUMsT0FBTyxDQUNwQiw2QkFBNkIsRUFDN0IsOEJBQThCLENBQy9CLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLDBCQUEwQixDQUFDLGNBQThCO0lBQ3ZFLGNBQWMsQ0FBQyxLQUFLLENBQ2xCLDZCQUE2QixFQUM3Qiw4QkFBOEIsQ0FDL0IsQ0FBQztBQUNKLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxXQUFXLENBQUMsSUFBYSxFQUFFLFFBQWdCLEVBQUUsU0FBUyxHQUFHLEdBQUc7SUFDMUUsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQVksRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQzlELE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDcEMsZUFBZSxDQUFDLFVBQVUsRUFBRSx3QkFBd0IsRUFBRSxRQUFRLENBQUMsQ0FBQztBQUNsRSxDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsaUJBQWlCLENBQy9CLFFBQWtCLEVBQ2xCLE9BQTRCO0lBRTVCLE9BQU8sUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQWMsRUFBRSxFQUFFO1FBQ3JDLE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQXlCLEVBQUUsRUFBRTtZQUMvQyxJQUFJLGFBQWEsQ0FBQztZQUNsQixJQUNFLE1BQU0sQ0FBQyxRQUFRLEtBQUssU0FBUztnQkFDN0IsTUFBTSxDQUFDLFFBQVEsS0FBSyx5QkFBeUIsQ0FBQyxPQUFPLEVBQ3JELENBQUM7Z0JBQ0QsYUFBYSxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUM7WUFDdkMsQ0FBQztZQUNELGFBQWEsR0FBRyxhQUFhLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUM7WUFDbEUsT0FBTyxhQUFhLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1QyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEVudGl0eVRhYmxlQ29sdW1uLFxuICBFbnRpdHlUYWJsZUNvbHVtblJlbmRlcmVyLFxuICBnZXRFbnRpdHlQcm9wZXJ0eVxufSBmcm9tICdAaWdvMi9jb21tb24vZW50aXR5JztcbmltcG9ydCB7IE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZS9tZXNzYWdlJztcbmltcG9ydCB7IGRvd25sb2FkQ29udGVudCB9IGZyb20gJ0BpZ28yL3V0aWxzJztcblxuaW1wb3J0IHsgRXhwb3J0Tm90aGluZ1RvRXhwb3J0RXJyb3IgfSBmcm9tICcuL2V4cG9ydC5lcnJvcnMnO1xuXG5leHBvcnQgZnVuY3Rpb24gaGFuZGxlRmlsZUV4cG9ydEVycm9yKFxuICBlcnJvcjogRXJyb3IsXG4gIG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZVxuKSB7XG4gIGlmIChlcnJvciBpbnN0YW5jZW9mIEV4cG9ydE5vdGhpbmdUb0V4cG9ydEVycm9yKSB7XG4gICAgaGFuZGxlTm90aGluZ1RvRXhwb3J0RXJyb3IobWVzc2FnZVNlcnZpY2UpO1xuICAgIHJldHVybjtcbiAgfVxuICBtZXNzYWdlU2VydmljZS5lcnJvcihcbiAgICAnaWdvLmdlby5leHBvcnQuZmFpbGVkLnRleHQnLFxuICAgICdpZ28uZ2VvLmV4cG9ydC5mYWlsZWQudGl0bGUnXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYW5kbGVGaWxlRXhwb3J0U3VjY2VzcyhtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UpIHtcbiAgbWVzc2FnZVNlcnZpY2Uuc3VjY2VzcyhcbiAgICAnaWdvLmdlby5leHBvcnQuc3VjY2Vzcy50ZXh0JyxcbiAgICAnaWdvLmdlby5leHBvcnQuc3VjY2Vzcy50aXRsZSdcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhhbmRsZU5vdGhpbmdUb0V4cG9ydEVycm9yKG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSkge1xuICBtZXNzYWdlU2VydmljZS5lcnJvcihcbiAgICAnaWdvLmdlby5leHBvcnQubm90aGluZy50ZXh0JyxcbiAgICAnaWdvLmdlby5leHBvcnQubm90aGluZy50aXRsZSdcbiAgKTtcbn1cblxuLyoqXG4gKiBFeHBvcnQgYXJyYXkgdG8gQ1NWXG4gKlxuICogQHBhcmFtIHJvd3MgQXJyYXkgb2YgYXJyYXlzIHRvIGV4cG9ydCBhcyBDU1ZcbiAqIEBwYXJhbSBzZXBhcmF0b3IgQ2VsbCBzZXBhcmF0b3JcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4cG9ydFRvQ1NWKHJvd3M6IGFueVtdW10sIGZpbGVOYW1lOiBzdHJpbmcsIHNlcGFyYXRvciA9ICc7Jykge1xuICBjb25zdCBsaW5lcyA9IHJvd3MubWFwKChyb3c6IGFueVtdW10pID0+IHJvdy5qb2luKHNlcGFyYXRvcikpO1xuICBjb25zdCBjc3ZDb250ZW50ID0gbGluZXMuam9pbignXFxuJyk7XG4gIGRvd25sb2FkQ29udGVudChjc3ZDb250ZW50LCAndGV4dC9jc3Y7Y2hhcnNldD11dGYtOCcsIGZpbGVOYW1lKTtcbn1cblxuLyoqXG4gKiBSZXR1cm4gYW4gYXJyYXkgb2YgdmFsdWVzIGZyb20gYW4gYXJyYXkgb2YgZW50aXRpZXMuXG4gKlxuICogQHBhcmFtIGVudGl0aWVzIEFycmF5IG9mIGVudGl0aWVzXG4gKiBAcGFyYW0gc2NvbHVtbnMgQ29sdW1ucyBkZWZpbml0aW9uIG9mIHRoZSBvdXRwdXQgZGF0YVxuICovXG5leHBvcnQgZnVuY3Rpb24gZW50aXRpZXNUb1Jvd0RhdGEoXG4gIGVudGl0aWVzOiBvYmplY3RbXSxcbiAgY29sdW1uczogRW50aXR5VGFibGVDb2x1bW5bXVxuKSB7XG4gIHJldHVybiBlbnRpdGllcy5tYXAoKGVudGl0eTogb2JqZWN0KSA9PiB7XG4gICAgcmV0dXJuIGNvbHVtbnMubWFwKChjb2x1bW46IEVudGl0eVRhYmxlQ29sdW1uKSA9PiB7XG4gICAgICBsZXQgdmFsdWVBY2Nlc3NvcjtcbiAgICAgIGlmIChcbiAgICAgICAgY29sdW1uLnJlbmRlcmVyID09PSB1bmRlZmluZWQgfHxcbiAgICAgICAgY29sdW1uLnJlbmRlcmVyID09PSBFbnRpdHlUYWJsZUNvbHVtblJlbmRlcmVyLkRlZmF1bHRcbiAgICAgICkge1xuICAgICAgICB2YWx1ZUFjY2Vzc29yID0gY29sdW1uLnZhbHVlQWNjZXNzb3I7XG4gICAgICB9XG4gICAgICB2YWx1ZUFjY2Vzc29yID0gdmFsdWVBY2Nlc3NvciA/IHZhbHVlQWNjZXNzb3IgOiBnZXRFbnRpdHlQcm9wZXJ0eTtcbiAgICAgIHJldHVybiB2YWx1ZUFjY2Vzc29yKGVudGl0eSwgY29sdW1uLm5hbWUpO1xuICAgIH0pO1xuICB9KTtcbn1cbiJdfQ==
@@ -100,12 +100,12 @@ export class ImportService {
100
100
  const features = this.parseFeaturesFromFile(file, event.target.result, projectionIn, projectionOut);
101
101
  observer.next(features);
102
102
  }
103
- catch (e) {
103
+ catch {
104
104
  observer.error(new ImportUnreadableFileError());
105
105
  }
106
106
  observer.complete();
107
107
  };
108
- reader.onerror = (evt) => {
108
+ reader.onerror = () => {
109
109
  observer.error(new ImportUnreadableFileError());
110
110
  };
111
111
  reader.readAsText(file, 'UTF-8');
@@ -209,13 +209,13 @@ export class ImportService {
209
209
  });
210
210
  return features;
211
211
  }
212
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: ImportService, deps: [{ token: i1.HttpClient }, { token: i2.ConfigService }], target: i0.ɵɵFactoryTarget.Injectable });
213
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: ImportService, providedIn: 'root' });
212
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ImportService, deps: [{ token: i1.HttpClient }, { token: i2.ConfigService }], target: i0.ɵɵFactoryTarget.Injectable });
213
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ImportService, providedIn: 'root' });
214
214
  }
215
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: ImportService, decorators: [{
215
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ImportService, decorators: [{
216
216
  type: Injectable,
217
217
  args: [{
218
218
  providedIn: 'root'
219
219
  }]
220
220
  }], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.ConfigService }] });
221
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1wb3J0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9pbXBvcnQtZXhwb3J0L3NoYXJlZC9pbXBvcnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFHbkMsT0FBTyxLQUFLLFFBQVEsTUFBTSxXQUFXLENBQUM7QUFHdEMsT0FBTyxFQUFFLFVBQVUsRUFBWSxNQUFNLE1BQU0sQ0FBQztBQUc1QyxPQUFPLEVBQ0wsc0JBQXNCLEVBQ3RCLHFCQUFxQixFQUNyQixjQUFjLEVBQ2QsZUFBZSxFQUNmLHlCQUF5QixFQUMxQixNQUFNLGlCQUFpQixDQUFDO0FBRXpCLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBSzdFLE1BQU0sT0FBTyxhQUFhO0lBNEJkO0lBQ0E7SUE1QlYsTUFBTSxDQUFDLDBCQUEwQixHQUFHO1FBQ2xDLE9BQU8sRUFBRSxTQUFTO1FBQ2xCLEdBQUcsRUFBRSxLQUFLO1FBQ1YsR0FBRyxFQUFFLEtBQUs7UUFDVixHQUFHLEVBQUUsS0FBSztRQUNWLFNBQVMsRUFBRSxLQUFLO0tBQ2pCLENBQUM7SUFFRixNQUFNLENBQUMsZ0JBQWdCLEdBQUc7UUFDeEIscUJBQXFCO1FBQ3JCLHNDQUFzQztRQUN0QyxxQkFBcUI7UUFDckIsa0JBQWtCO0tBQ25CLENBQUM7SUFFRixNQUFNLENBQUMsbUJBQW1CLEdBQUc7UUFDM0IsaUJBQWlCO1FBQ2pCLDhCQUE4QjtRQUM5Qixt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QUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBDb25maWdTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZS9jb25maWcnO1xuaW1wb3J0IHsgdXVpZCB9IGZyb20gJ0BpZ28yL3V0aWxzJztcblxuaW1wb3J0IE9sRmVhdHVyZSBmcm9tICdvbC9GZWF0dXJlJztcbmltcG9ydCAqIGFzIG9sZm9ybWF0IGZyb20gJ29sL2Zvcm1hdCc7XG5pbXBvcnQgdHlwZSB7IGRlZmF1bHQgYXMgT2xHZW9tZXRyeSB9IGZyb20gJ29sL2dlb20vR2VvbWV0cnknO1xuXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBPYnNlcnZlciB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBGZWF0dXJlIH0gZnJvbSAnLi4vLi4vZmVhdHVyZS9zaGFyZWQvZmVhdHVyZS5pbnRlcmZhY2VzJztcbmltcG9ydCB7XG4gIEltcG9ydEludmFsaWRGaWxlRXJyb3IsXG4gIEltcG9ydE9ncmVTZXJ2ZXJFcnJvcixcbiAgSW1wb3J0U1JTRXJyb3IsXG4gIEltcG9ydFNpemVFcnJvcixcbiAgSW1wb3J0VW5yZWFkYWJsZUZpbGVFcnJvclxufSBmcm9tICcuL2ltcG9ydC5lcnJvcnMnO1xuaW1wb3J0IHsgSW1wb3J0RXhwb3J0U2VydmljZU9wdGlvbnMgfSBmcm9tICcuL2ltcG9ydC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgY29tcHV0ZUxheWVyVGl0bGVGcm9tRmlsZSwgZ2V0RmlsZUV4dGVuc2lvbiB9IGZyb20gJy4vaW1wb3J0LnV0aWxzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgSW1wb3J0U2VydmljZSB7XG4gIHN0YXRpYyBmb3JtYXRFeHRlbnNpb25Bc3NvY2lhdGlvbiA9IHtcbiAgICBHZW9KU09OOiAnZ2VvanNvbicsXG4gICAgR01MOiAnZ21sJyxcbiAgICBHUFg6ICdncHgnLFxuICAgIEtNTDogJ2ttbCcsXG4gICAgU2hhcGVmaWxlOiAnemlwJ1xuICB9O1xuXG4gIHN0YXRpYyBhbGxvd2VkTWltZVR5cGVzID0gW1xuICAgICdhcHBsaWNhdGlvbi9nbWwreG1sJyxcbiAgICAnYXBwbGljYXRpb24vdm5kLmdvb2dsZS1lYXJ0aC5rbWwreG1sJyxcbiAgICAnYXBwbGljYXRpb24vZ3B4K3htbCcsXG4gICAgJ2FwcGxpY2F0aW9uL2pzb24nXG4gIF07XG5cbiAgc3RhdGljIGFsbG93ZWRaaXBNaW1lVHlwZXMgPSBbXG4gICAgJ2FwcGxpY2F0aW9uL3ppcCcsXG4gICAgJ2FwcGxpY2F0aW9uL3gtemlwLWNvbXByZXNzZWQnLFxuICAgICdhcHBsaWNhdGlvbi94LXppcCdcbiAgXTtcblxuICBzdGF0aWMgYWxsb3dlZEV4dGVuc2lvbnMgPSBbJ2dlb2pzb24nLCAna21sJywgJ2dweCcsICdqc29uJywgJ2dtbCcsICd6aXAnXTtcblxuICBwcml2YXRlIG9ncmVVcmw6IHN0cmluZztcbiAgcHJpdmF0ZSBjbGllbnRTaWRlRmlsZVNpemVNYXg6IG51bWJlcjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgcHJpdmF0ZSBjb25maWc6IENvbmZpZ1NlcnZpY2VcbiAgKSB7XG4gICAgY29uc3QgaW1wb3J0Q29uZmlnID0gdGhpcy5jb25maWcuZ2V0Q29uZmlnKFxuICAgICAgJ2ltcG9ydEV4cG9ydCdcbiAgICApIGFzIEltcG9ydEV4cG9ydFNlcnZpY2VPcHRpb25zO1xuICAgIHRoaXMub2dyZVVybCA9IGltcG9ydENvbmZpZy51cmw7XG4gICAgY29uc3QgY29uZmlnRmlsZVNpemVNYiA9IGltcG9ydENvbmZpZy5jbGllbnRTaWRlRmlsZVNpemVNYXhNYjtcbiAgICB0aGlzLmNsaWVudFNpZGVGaWxlU2l6ZU1heCA9XG4gICAgICAoY29uZmlnRmlsZVNpemVNYiA/IGNvbmZpZ0ZpbGVTaXplTWIgOiAzMCkgKiBNYXRoLnBvdygxMDI0LCAyKTtcbiAgICBpZiAoaW1wb3J0Q29uZmlnLmZvcm1hdHMpIHtcbiAgICAgIEltcG9ydFNlcnZpY2UuYWxsb3dlZEV4dGVuc2lvbnMgPSBpbXBvcnRDb25maWcuZm9ybWF0c1xuICAgICAgICAubWFwKChmb3JtYXQpID0+IEltcG9ydFNlcnZpY2UuZm9ybWF0RXh0ZW5zaW9uQXNzb2NpYXRpb25bZm9ybWF0XSlcbiAgICAgICAgLmZpbHRlcigoZSkgPT4gZSk7XG4gICAgICBpZiAoSW1wb3J0U2VydmljZS5hbGxvd2VkRXh0ZW5zaW9ucy5pbmNsdWRlcygnZ2VvanNvbicpKSB7XG4gICAgICAgIEltcG9ydFNlcnZpY2UuYWxsb3dlZEV4dGVuc2lvbnMucHVzaCgnanNvbicpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGltcG9ydChcbiAgICBmaWxlOiBGaWxlLFxuICAgIHByb2plY3Rpb25JbiA9ICdFUFNHOjQzMjYnLFxuICAgIHByb2plY3Rpb25PdXQgPSAnRVBTRzo0MzI2J1xuICApOiBPYnNlcnZhYmxlPEZlYXR1cmVbXT4ge1xuICAgIHJldHVybiB0aGlzLmltcG9ydEFzeW5jKGZpbGUsIHByb2plY3Rpb25JbiwgcHJvamVjdGlvbk91dCk7XG4gIH1cblxuICBwcml2YXRlIGdldEZpbGVJbXBvcnRlcihcbiAgICBmaWxlOiBGaWxlXG4gICk6IChcbiAgICBmaWxlOiBGaWxlLFxuICAgIG9ic2VydmVyOiBPYnNlcnZlcjxGZWF0dXJlW10+LFxuICAgIHByb2plY3Rpb25Jbjogc3RyaW5nLFxuICAgIHByb2plY3Rpb25PdXQ6IHN0cmluZ1xuICApID0+IHZvaWQge1xuICAgIGNvbnN0IGV4dGVuc2lvbiA9IGdldEZpbGVFeHRlbnNpb24oZmlsZSk7XG4gICAgY29uc3QgYWxsb3dlZEV4dGVuc2lvbnMgPSBJbXBvcnRTZXJ2aWNlLmFsbG93ZWRFeHRlbnNpb25zO1xuICAgIGxldCB6aXBNaW1lVHlwZXMgPSBbXTtcbiAgICBpZiAoYWxsb3dlZEV4dGVuc2lvbnMuaW5jbHVkZXMoJ3ppcCcpKSB7XG4gICAgICB6aXBNaW1lVHlwZXMgPSBJbXBvcnRTZXJ2aWNlLmFsbG93ZWRaaXBNaW1lVHlwZXM7XG4gICAgfVxuICAgIGNvbnN0IG1pbWVUeXBlID0gZmlsZS50eXBlO1xuICAgIGNvbnN0IGFsbG93ZWRNaW1lVHlwZXMgPSBbXG4gICAgICAuLi5JbXBvcnRTZXJ2aWNlLmFsbG93ZWRNaW1lVHlwZXMsXG4gICAgICAuLi56aXBNaW1lVHlwZXNcbiAgICBdO1xuXG4gICAgaWYgKFxuICAgICAgYWxsb3dlZE1pbWVUeXBlcy5pbmRleE9mKG1pbWVUeXBlKSA8IDAgJiZcbiAgICAgIGFsbG93ZWRFeHRlbnNpb25zLmluZGV4T2YoZXh0ZW5zaW9uKSA8IDBcbiAgICApIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfSBlbHNlIGlmIChcbiAgICAgIG1pbWVUeXBlID09PSAnYXBwbGljYXRpb24vanNvbicgfHxcbiAgICAgIFsnanNvbicsICdnZW9qc29uJywgJ2ttbCcsICdncHgnXS5pbmRleE9mKGV4dGVuc2lvbikgPj0gMFxuICAgICkge1xuICAgICAgcmV0dXJuIHRoaXMuaW1wb3J0RmlsZTtcbiAgICB9IGVsc2UgaWYgKHRoaXMub2dyZVVybCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gdGhpcy5pbXBvcnRGaWxlV2l0aE9ncmU7XG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByaXZhdGUgaW1wb3J0QXN5bmMoXG4gICAgZmlsZTogRmlsZSxcbiAgICBwcm9qZWN0aW9uSW46IHN0cmluZyxcbiAgICBwcm9qZWN0aW9uT3V0OiBzdHJpbmdcbiAgKTogT2JzZXJ2YWJsZTxGZWF0dXJlW10+IHtcbiAgICBjb25zdCBkb0ltcG9ydCA9IChvYnNlcnZlcjogT2JzZXJ2ZXI8RmVhdHVyZVtdPikgPT4ge1xuICAgICAgaWYgKGZpbGUuc2l6ZSA+PSB0aGlzLmNsaWVudFNpZGVGaWxlU2l6ZU1heCkge1xuICAgICAgICBvYnNlcnZlci5lcnJvcihuZXcgSW1wb3J0U2l6ZUVycm9yKCkpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjb25zdCBpbXBvcnRlciA9IHRoaXMuZ2V0RmlsZUltcG9ydGVyKGZpbGUpO1xuICAgICAgaWYgKGltcG9ydGVyID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgb2JzZXJ2ZXIuZXJyb3IobmV3IEltcG9ydEludmFsaWRGaWxlRXJyb3IoKSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaW1wb3J0ZXIuY2FsbCh0aGlzLCBmaWxlLCBvYnNlcnZlciwgcHJvamVjdGlvbkluLCBwcm9qZWN0aW9uT3V0KTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKGRvSW1wb3J0KTtcbiAgfVxuXG4gIHByaXZhdGUgaW1wb3J0RmlsZShcbiAgICBmaWxlOiBGaWxlLFxuICAgIG9ic2VydmVyOiBPYnNlcnZlcjxGZWF0dXJlW10+LFxuICAgIHByb2plY3Rpb25Jbjogc3RyaW5nLFxuICAgIHByb2plY3Rpb25PdXQ6IHN0cmluZ1xuICApIHtcbiAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuXG4gICAgcmVhZGVyLm9ubG9hZCA9IChldmVudDogYW55KSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBmZWF0dXJlcyA9IHRoaXMucGFyc2VGZWF0dXJlc0Zyb21GaWxlKFxuICAgICAgICAgIGZpbGUsXG4gICAgICAgICAgZXZlbnQudGFyZ2V0LnJlc3VsdCxcbiAgICAgICAgICBwcm9qZWN0aW9uSW4sXG4gICAgICAgICAgcHJvamVjdGlvbk91dFxuICAgICAgICApO1xuICAgICAgICBvYnNlcnZlci5uZXh0KGZlYXR1cmVzKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgb2JzZXJ2ZXIuZXJyb3IobmV3IEltcG9ydFVucmVhZGFibGVGaWxlRXJyb3IoKSk7XG4gICAgICB9XG5cbiAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgfTtcblxuICAgIHJlYWRlci5vbmVycm9yID0gKGV2dCkgPT4ge1xuICAgICAgb2JzZXJ2ZXIuZXJyb3IobmV3IEltcG9ydFVucmVhZGFibGVGaWxlRXJyb3IoKSk7XG4gICAgfTtcblxuICAgIHJlYWRlci5yZWFkQXNUZXh0KGZpbGUsICdVVEYtOCcpO1xuICB9XG5cbiAgcHJpdmF0ZSBpbXBvcnRGaWxlV2l0aE9ncmUoXG4gICAgZmlsZTogRmlsZSxcbiAgICBvYnNlcnZlcjogT2JzZXJ2ZXI8RmVhdHVyZVtdPixcbiAgICBwcm9qZWN0aW9uSW46IHN0cmluZyxcbiAgICBwcm9qZWN0aW9uT3V0OiBzdHJpbmdcbiAgKSB7XG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5vZ3JlVXJsfS9jb252ZXJ0YDtcbiAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgIGZvcm1EYXRhLmFwcGVuZCgndXBsb2FkJywgZmlsZSk7XG4gICAgZm9ybURhdGEuYXBwZW5kKCdzb3VyY2VTcnMnLCBwcm9qZWN0aW9uSW4pO1xuICAgIGZvcm1EYXRhLmFwcGVuZCgndGFyZ2V0U3JzJywgcHJvamVjdGlvbk91dCk7XG4gICAgZm9ybURhdGEuYXBwZW5kKCdmb3JtYXRPdXRwdXQnLCAnR0VPSlNPTicpO1xuICAgIGZvcm1EYXRhLmFwcGVuZCgnc2tpcEZhaWx1cmVzJywgJycpO1xuXG4gICAgdGhpcy5odHRwLnBvc3QodXJsLCBmb3JtRGF0YSwgeyBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoKSB9KS5zdWJzY3JpYmUoXG4gICAgICAocmVzcG9uc2U6IHsgZXJyb3JzPzogc3RyaW5nW10gfSB8IG9iamVjdCB8IG51bGwpID0+IHtcbiAgICAgICAgaWYgKHJlc3BvbnNlID09PSBudWxsKSB7XG4gICAgICAgICAgb2JzZXJ2ZXIuZXJyb3IobmV3IEltcG9ydFVucmVhZGFibGVGaWxlRXJyb3IoKSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZXJyb3JzID0gKHJlc3BvbnNlIGFzIGFueSkuZXJyb3JzIHx8IFtdO1xuICAgICAgICBpZiAoZXJyb3JzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBvYnNlcnZlci5lcnJvcihuZXcgSW1wb3J0VW5yZWFkYWJsZUZpbGVFcnJvcigpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCBmZWF0dXJlcyA9IHRoaXMucGFyc2VGZWF0dXJlc0Zyb21HZW9KU09OKFxuICAgICAgICAgICAgZmlsZSxcbiAgICAgICAgICAgIHJlc3BvbnNlLFxuICAgICAgICAgICAgcHJvamVjdGlvbk91dFxuICAgICAgICAgICk7XG4gICAgICAgICAgb2JzZXJ2ZXIubmV4dChmZWF0dXJlcyk7XG4gICAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIChlcnJvcjogYW55KSA9PiB7XG4gICAgICAgIGVycm9yLmVycm9yLmNhdWdodCA9IHRydWU7XG4gICAgICAgIGNvbnN0IGVyck1zZyA9IGVycm9yLmVycm9yLm1zZyB8fCAnJztcbiAgICAgICAgaWYgKGVyck1zZyA9PT0gJ05vIHZhbGlkIGZpbGVzIGZvdW5kJykge1xuICAgICAgICAgIG9ic2VydmVyLmVycm9yKG5ldyBJbXBvcnRJbnZhbGlkRmlsZUVycm9yKCkpO1xuICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgIGVyck1zZyAmJlxuICAgICAgICAgIGVyck1zZy5zdGFydFdpdGgoJ0VSUk9SIDE6IEZhaWxlZCB0byBwcm9jZXNzIFNSUyBkZWZpbml0aW9uJylcbiAgICAgICAgKSB7XG4gICAgICAgICAgb2JzZXJ2ZXIuZXJyb3IobmV3IEltcG9ydFNSU0Vycm9yKCkpO1xuICAgICAgICB9IGVsc2UgaWYgKGVycm9yLnN0YXR1cyA9PT0gNTAwKSB7XG4gICAgICAgICAgb2JzZXJ2ZXIuZXJyb3IobmV3IEltcG9ydE9ncmVTZXJ2ZXJFcnJvcigpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBvYnNlcnZlci5lcnJvcihuZXcgSW1wb3J0VW5yZWFkYWJsZUZpbGVFcnJvcigpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIHBhcnNlRmVhdHVyZXNGcm9tRmlsZShcbiAgICBmaWxlOiBGaWxlLFxuICAgIGRhdGE6IHN0cmluZyxcbiAgICBwcm9qZWN0aW9uSW46IHN0cmluZyxcbiAgICBwcm9qZWN0aW9uT3V0OiBzdHJpbmdcbiAgKTogRmVhdHVyZVtdIHtcbiAgICBjb25zdCBleHRlbnNpb24gPSBnZXRGaWxlRXh0ZW5zaW9uKGZpbGUpO1xuICAgIGNvbnN0IG1pbWVUeXBlID0gZmlsZS50eXBlO1xuXG4gICAgY29uc3QgR2VvSlNPTiA9IG5ldyBvbGZvcm1hdC5HZW9KU09OKCk7XG5cbiAgICBsZXQgZm9ybWF0O1xuICAgIGlmIChtaW1lVHlwZSA9PT0gJ2FwcGxpY2F0aW9uL3ZuZC5nb29nbGUtZWFydGgua21sK3htbCcpIHtcbiAgICAgIGZvcm1hdCA9IG5ldyBvbGZvcm1hdC5LTUwoKTtcbiAgICB9IGVsc2UgaWYgKG1pbWVUeXBlID09PSAnYXBwbGljYXRpb24vZ21sK3htbCcpIHtcbiAgICAgIGZvcm1hdCA9IG5ldyBvbGZvcm1hdC5HTUwoKTtcbiAgICB9IGVsc2UgaWYgKG1pbWVUeXBlID09PSAnYXBwbGljYXRpb24vZ3B4K3htbCcpIHtcbiAgICAgIGZvcm1hdCA9IG5ldyBvbGZvcm1hdC5HUFgoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc3dpdGNoIChleHRlbnNpb24pIHtcbiAgICAgICAgY2FzZSAna21sJzpcbiAgICAgICAgICBmb3JtYXQgPSBuZXcgb2xmb3JtYXQuS01MKCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2dweCc6XG4gICAgICAgICAgZm9ybWF0ID0gbmV3IG9sZm9ybWF0LkdQWCgpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdnbWwnOlxuICAgICAgICAgIGZvcm1hdCA9IG5ldyBvbGZvcm1hdC5HTUwoKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBmb3JtYXQgPSBHZW9KU09OO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IG9sRmVhdHVyZXMgPSBmb3JtYXQucmVhZEZlYXR1cmVzKGRhdGEsIHtcbiAgICAgIGRhdGFQcm9qZWN0aW9uOiBwcm9qZWN0aW9uSW4sXG4gICAgICBmZWF0dXJlUHJvamVjdGlvbjogcHJvamVjdGlvbk91dFxuICAgIH0pO1xuICAgIGNvbnN0IGZlYXR1cmVzID0gb2xGZWF0dXJlcy5tYXAoKG9sRmVhdHVyZTogT2xGZWF0dXJlPE9sR2VvbWV0cnk+KSA9PiB7XG4gICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihHZW9KU09OLndyaXRlRmVhdHVyZU9iamVjdChvbEZlYXR1cmUpLCB7XG4gICAgICAgIHByb2plY3Rpb246IHByb2plY3Rpb25PdXQsXG4gICAgICAgIG1ldGE6IHtcbiAgICAgICAgICBpZDogdXVpZCgpLFxuICAgICAgICAgIHRpdGxlOiBjb21wdXRlTGF5ZXJUaXRsZUZyb21GaWxlKGZpbGUpXG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIGZlYXR1cmVzO1xuICB9XG5cbiAgcHJpdmF0ZSBwYXJzZUZlYXR1cmVzRnJvbUdlb0pTT04oXG4gICAgZmlsZTogRmlsZSxcbiAgICBkYXRhOiBvYmplY3QsXG4gICAgcHJvamVjdGlvbk91dDogc3RyaW5nXG4gICk6IEZlYXR1cmVbXSB7XG4gICAgY29uc3Qgb2xGb3JtYXQgPSBuZXcgb2xmb3JtYXQuR2VvSlNPTigpO1xuICAgIGNvbnN0IG9sRmVhdHVyZXMgPSBvbEZvcm1hdC5yZWFkRmVhdHVyZXMoZGF0YSk7XG4gICAgY29uc3QgZmVhdHVyZXMgPSBvbEZlYXR1cmVzLm1hcCgob2xGZWF0dXJlOiBPbEZlYXR1cmU8T2xHZW9tZXRyeT4pID0+IHtcbiAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKG9sRm9ybWF0LndyaXRlRmVhdHVyZU9iamVjdChvbEZlYXR1cmUpLCB7XG4gICAgICAgIHByb2plY3Rpb246IHByb2plY3Rpb25PdXQsXG4gICAgICAgIG1ldGE6IHtcbiAgICAgICAgICBpZDogdXVpZCgpLFxuICAgICAgICAgIHRpdGxlOiBjb21wdXRlTGF5ZXJUaXRsZUZyb21GaWxlKGZpbGUpXG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIGZlYXR1cmVzIGFzIEZlYXR1cmVbXTtcbiAgfVxufVxuIl19
221
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1wb3J0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9pbXBvcnQtZXhwb3J0L3NoYXJlZC9pbXBvcnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFHbkMsT0FBTyxLQUFLLFFBQVEsTUFBTSxXQUFXLENBQUM7QUFHdEMsT0FBTyxFQUFFLFVBQVUsRUFBWSxNQUFNLE1BQU0sQ0FBQztBQUc1QyxPQUFPLEVBQ0wsc0JBQXNCLEVBQ3RCLHFCQUFxQixFQUNyQixjQUFjLEVBQ2QsZUFBZSxFQUNmLHlCQUF5QixFQUMxQixNQUFNLGlCQUFpQixDQUFDO0FBRXpCLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBSzdFLE1BQU0sT0FBTyxhQUFhO0lBNEJkO0lBQ0E7SUE1QlYsTUFBTSxDQUFDLDBCQUEwQixHQUFHO1FBQ2xDLE9BQU8sRUFBRSxTQUFTO1FBQ2xCLEdBQUcsRUFBRSxLQUFLO1FBQ1YsR0FBRyxFQUFFLEtBQUs7UUFDVixHQUFHLEVBQUUsS0FBSztRQUNWLFNBQVMsRUFBRSxLQUFLO0tBQ2pCLENBQUM7SUFFRixNQUFNLENBQUMsZ0JBQWdCLEdBQUc7UUFDeEIscUJBQXFCO1FBQ3JCLHNDQUFzQztRQUN0QyxxQkFBcUI7UUFDckIsa0JBQWtCO0tBQ25CLENBQUM7SUFFRixNQUFNLENBQUMsbUJBQW1CLEdBQUc7UUFDM0IsaUJBQWlCO1FBQ2pCLDhCQUE4QjtRQUM5Qixt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LEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQ29uZmlnU2VydmljZSB9IGZyb20gJ0BpZ28yL2NvcmUvY29uZmlnJztcbmltcG9ydCB7IHV1aWQgfSBmcm9tICdAaWdvMi91dGlscyc7XG5cbmltcG9ydCBPbEZlYXR1cmUgZnJvbSAnb2wvRmVhdHVyZSc7XG5pbXBvcnQgKiBhcyBvbGZvcm1hdCBmcm9tICdvbC9mb3JtYXQnO1xuaW1wb3J0IHR5cGUgeyBkZWZhdWx0IGFzIE9sR2VvbWV0cnkgfSBmcm9tICdvbC9nZW9tL0dlb21ldHJ5JztcblxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgT2JzZXJ2ZXIgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgRmVhdHVyZSB9IGZyb20gJy4uLy4uL2ZlYXR1cmUvc2hhcmVkL2ZlYXR1cmUuaW50ZXJmYWNlcyc7XG5pbXBvcnQge1xuICBJbXBvcnRJbnZhbGlkRmlsZUVycm9yLFxuICBJbXBvcnRPZ3JlU2VydmVyRXJyb3IsXG4gIEltcG9ydFNSU0Vycm9yLFxuICBJbXBvcnRTaXplRXJyb3IsXG4gIEltcG9ydFVucmVhZGFibGVGaWxlRXJyb3Jcbn0gZnJvbSAnLi9pbXBvcnQuZXJyb3JzJztcbmltcG9ydCB7IEltcG9ydEV4cG9ydFNlcnZpY2VPcHRpb25zIH0gZnJvbSAnLi9pbXBvcnQuaW50ZXJmYWNlJztcbmltcG9ydCB7IGNvbXB1dGVMYXllclRpdGxlRnJvbUZpbGUsIGdldEZpbGVFeHRlbnNpb24gfSBmcm9tICcuL2ltcG9ydC51dGlscyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEltcG9ydFNlcnZpY2Uge1xuICBzdGF0aWMgZm9ybWF0RXh0ZW5zaW9uQXNzb2NpYXRpb24gPSB7XG4gICAgR2VvSlNPTjogJ2dlb2pzb24nLFxuICAgIEdNTDogJ2dtbCcsXG4gICAgR1BYOiAnZ3B4JyxcbiAgICBLTUw6ICdrbWwnLFxuICAgIFNoYXBlZmlsZTogJ3ppcCdcbiAgfTtcblxuICBzdGF0aWMgYWxsb3dlZE1pbWVUeXBlcyA9IFtcbiAgICAnYXBwbGljYXRpb24vZ21sK3htbCcsXG4gICAgJ2FwcGxpY2F0aW9uL3ZuZC5nb29nbGUtZWFydGgua21sK3htbCcsXG4gICAgJ2FwcGxpY2F0aW9uL2dweCt4bWwnLFxuICAgICdhcHBsaWNhdGlvbi9qc29uJ1xuICBdO1xuXG4gIHN0YXRpYyBhbGxvd2VkWmlwTWltZVR5cGVzID0gW1xuICAgICdhcHBsaWNhdGlvbi96aXAnLFxuICAgICdhcHBsaWNhdGlvbi94LXppcC1jb21wcmVzc2VkJyxcbiAgICAnYXBwbGljYXRpb24veC16aXAnXG4gIF07XG5cbiAgc3RhdGljIGFsbG93ZWRFeHRlbnNpb25zID0gWydnZW9qc29uJywgJ2ttbCcsICdncHgnLCAnanNvbicsICdnbWwnLCAnemlwJ107XG5cbiAgcHJpdmF0ZSBvZ3JlVXJsOiBzdHJpbmc7XG4gIHByaXZhdGUgY2xpZW50U2lkZUZpbGVTaXplTWF4OiBudW1iZXI7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxuICAgIHByaXZhdGUgY29uZmlnOiBDb25maWdTZXJ2aWNlXG4gICkge1xuICAgIGNvbnN0IGltcG9ydENvbmZpZyA9IHRoaXMuY29uZmlnLmdldENvbmZpZyhcbiAgICAgICdpbXBvcnRFeHBvcnQnXG4gICAgKSBhcyBJbXBvcnRFeHBvcnRTZXJ2aWNlT3B0aW9ucztcbiAgICB0aGlzLm9ncmVVcmwgPSBpbXBvcnRDb25maWcudXJsO1xuICAgIGNvbnN0IGNvbmZpZ0ZpbGVTaXplTWIgPSBpbXBvcnRDb25maWcuY2xpZW50U2lkZUZpbGVTaXplTWF4TWI7XG4gICAgdGhpcy5jbGllbnRTaWRlRmlsZVNpemVNYXggPVxuICAgICAgKGNvbmZpZ0ZpbGVTaXplTWIgPyBjb25maWdGaWxlU2l6ZU1iIDogMzApICogTWF0aC5wb3coMTAyNCwgMik7XG4gICAgaWYgKGltcG9ydENvbmZpZy5mb3JtYXRzKSB7XG4gICAgICBJbXBvcnRTZXJ2aWNlLmFsbG93ZWRFeHRlbnNpb25zID0gaW1wb3J0Q29uZmlnLmZvcm1hdHNcbiAgICAgICAgLm1hcCgoZm9ybWF0KSA9PiBJbXBvcnRTZXJ2aWNlLmZvcm1hdEV4dGVuc2lvbkFzc29jaWF0aW9uW2Zvcm1hdF0pXG4gICAgICAgIC5maWx0ZXIoKGUpID0+IGUpO1xuICAgICAgaWYgKEltcG9ydFNlcnZpY2UuYWxsb3dlZEV4dGVuc2lvbnMuaW5jbHVkZXMoJ2dlb2pzb24nKSkge1xuICAgICAgICBJbXBvcnRTZXJ2aWNlLmFsbG93ZWRFeHRlbnNpb25zLnB1c2goJ2pzb24nKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpbXBvcnQoXG4gICAgZmlsZTogRmlsZSxcbiAgICBwcm9qZWN0aW9uSW4gPSAnRVBTRzo0MzI2JyxcbiAgICBwcm9qZWN0aW9uT3V0ID0gJ0VQU0c6NDMyNidcbiAgKTogT2JzZXJ2YWJsZTxGZWF0dXJlW10+IHtcbiAgICByZXR1cm4gdGhpcy5pbXBvcnRBc3luYyhmaWxlLCBwcm9qZWN0aW9uSW4sIHByb2plY3Rpb25PdXQpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRGaWxlSW1wb3J0ZXIoXG4gICAgZmlsZTogRmlsZVxuICApOiAoXG4gICAgZmlsZTogRmlsZSxcbiAgICBvYnNlcnZlcjogT2JzZXJ2ZXI8RmVhdHVyZVtdPixcbiAgICBwcm9qZWN0aW9uSW46IHN0cmluZyxcbiAgICBwcm9qZWN0aW9uT3V0OiBzdHJpbmdcbiAgKSA9PiB2b2lkIHtcbiAgICBjb25zdCBleHRlbnNpb24gPSBnZXRGaWxlRXh0ZW5zaW9uKGZpbGUpO1xuICAgIGNvbnN0IGFsbG93ZWRFeHRlbnNpb25zID0gSW1wb3J0U2VydmljZS5hbGxvd2VkRXh0ZW5zaW9ucztcbiAgICBsZXQgemlwTWltZVR5cGVzID0gW107XG4gICAgaWYgKGFsbG93ZWRFeHRlbnNpb25zLmluY2x1ZGVzKCd6aXAnKSkge1xuICAgICAgemlwTWltZVR5cGVzID0gSW1wb3J0U2VydmljZS5hbGxvd2VkWmlwTWltZVR5cGVzO1xuICAgIH1cbiAgICBjb25zdCBtaW1lVHlwZSA9IGZpbGUudHlwZTtcbiAgICBjb25zdCBhbGxvd2VkTWltZVR5cGVzID0gW1xuICAgICAgLi4uSW1wb3J0U2VydmljZS5hbGxvd2VkTWltZVR5cGVzLFxuICAgICAgLi4uemlwTWltZVR5cGVzXG4gICAgXTtcblxuICAgIGlmIChcbiAgICAgIGFsbG93ZWRNaW1lVHlwZXMuaW5kZXhPZihtaW1lVHlwZSkgPCAwICYmXG4gICAgICBhbGxvd2VkRXh0ZW5zaW9ucy5pbmRleE9mKGV4dGVuc2lvbikgPCAwXG4gICAgKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH0gZWxzZSBpZiAoXG4gICAgICBtaW1lVHlwZSA9PT0gJ2FwcGxpY2F0aW9uL2pzb24nIHx8XG4gICAgICBbJ2pzb24nLCAnZ2VvanNvbicsICdrbWwnLCAnZ3B4J10uaW5kZXhPZihleHRlbnNpb24pID49IDBcbiAgICApIHtcbiAgICAgIHJldHVybiB0aGlzLmltcG9ydEZpbGU7XG4gICAgfSBlbHNlIGlmICh0aGlzLm9ncmVVcmwgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIHRoaXMuaW1wb3J0RmlsZVdpdGhPZ3JlO1xuICAgIH1cblxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBwcml2YXRlIGltcG9ydEFzeW5jKFxuICAgIGZpbGU6IEZpbGUsXG4gICAgcHJvamVjdGlvbkluOiBzdHJpbmcsXG4gICAgcHJvamVjdGlvbk91dDogc3RyaW5nXG4gICk6IE9ic2VydmFibGU8RmVhdHVyZVtdPiB7XG4gICAgY29uc3QgZG9JbXBvcnQgPSAob2JzZXJ2ZXI6IE9ic2VydmVyPEZlYXR1cmVbXT4pID0+IHtcbiAgICAgIGlmIChmaWxlLnNpemUgPj0gdGhpcy5jbGllbnRTaWRlRmlsZVNpemVNYXgpIHtcbiAgICAgICAgb2JzZXJ2ZXIuZXJyb3IobmV3IEltcG9ydFNpemVFcnJvcigpKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgY29uc3QgaW1wb3J0ZXIgPSB0aGlzLmdldEZpbGVJbXBvcnRlcihmaWxlKTtcbiAgICAgIGlmIChpbXBvcnRlciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIG9ic2VydmVyLmVycm9yKG5ldyBJbXBvcnRJbnZhbGlkRmlsZUVycm9yKCkpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGltcG9ydGVyLmNhbGwodGhpcywgZmlsZSwgb2JzZXJ2ZXIsIHByb2plY3Rpb25JbiwgcHJvamVjdGlvbk91dCk7XG4gICAgfTtcblxuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZShkb0ltcG9ydCk7XG4gIH1cblxuICBwcml2YXRlIGltcG9ydEZpbGUoXG4gICAgZmlsZTogRmlsZSxcbiAgICBvYnNlcnZlcjogT2JzZXJ2ZXI8RmVhdHVyZVtdPixcbiAgICBwcm9qZWN0aW9uSW46IHN0cmluZyxcbiAgICBwcm9qZWN0aW9uT3V0OiBzdHJpbmdcbiAgKSB7XG4gICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcblxuICAgIHJlYWRlci5vbmxvYWQgPSAoZXZlbnQ6IGFueSkgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgZmVhdHVyZXMgPSB0aGlzLnBhcnNlRmVhdHVyZXNGcm9tRmlsZShcbiAgICAgICAgICBmaWxlLFxuICAgICAgICAgIGV2ZW50LnRhcmdldC5yZXN1bHQsXG4gICAgICAgICAgcHJvamVjdGlvbkluLFxuICAgICAgICAgIHByb2plY3Rpb25PdXRcbiAgICAgICAgKTtcbiAgICAgICAgb2JzZXJ2ZXIubmV4dChmZWF0dXJlcyk7XG4gICAgICB9IGNhdGNoIHtcbiAgICAgICAgb2JzZXJ2ZXIuZXJyb3IobmV3IEltcG9ydFVucmVhZGFibGVGaWxlRXJyb3IoKSk7XG4gICAgICB9XG5cbiAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgfTtcblxuICAgIHJlYWRlci5vbmVycm9yID0gKCkgPT4ge1xuICAgICAgb2JzZXJ2ZXIuZXJyb3IobmV3IEltcG9ydFVucmVhZGFibGVGaWxlRXJyb3IoKSk7XG4gICAgfTtcblxuICAgIHJlYWRlci5yZWFkQXNUZXh0KGZpbGUsICdVVEYtOCcpO1xuICB9XG5cbiAgcHJpdmF0ZSBpbXBvcnRGaWxlV2l0aE9ncmUoXG4gICAgZmlsZTogRmlsZSxcbiAgICBvYnNlcnZlcjogT2JzZXJ2ZXI8RmVhdHVyZVtdPixcbiAgICBwcm9qZWN0aW9uSW46IHN0cmluZyxcbiAgICBwcm9qZWN0aW9uT3V0OiBzdHJpbmdcbiAgKSB7XG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5vZ3JlVXJsfS9jb252ZXJ0YDtcbiAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgIGZvcm1EYXRhLmFwcGVuZCgndXBsb2FkJywgZmlsZSk7XG4gICAgZm9ybURhdGEuYXBwZW5kKCdzb3VyY2VTcnMnLCBwcm9qZWN0aW9uSW4pO1xuICAgIGZvcm1EYXRhLmFwcGVuZCgndGFyZ2V0U3JzJywgcHJvamVjdGlvbk91dCk7XG4gICAgZm9ybURhdGEuYXBwZW5kKCdmb3JtYXRPdXRwdXQnLCAnR0VPSlNPTicpO1xuICAgIGZvcm1EYXRhLmFwcGVuZCgnc2tpcEZhaWx1cmVzJywgJycpO1xuXG4gICAgdGhpcy5odHRwLnBvc3QodXJsLCBmb3JtRGF0YSwgeyBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoKSB9KS5zdWJzY3JpYmUoXG4gICAgICAocmVzcG9uc2U6IHsgZXJyb3JzPzogc3RyaW5nW10gfSB8IG9iamVjdCB8IG51bGwpID0+IHtcbiAgICAgICAgaWYgKHJlc3BvbnNlID09PSBudWxsKSB7XG4gICAgICAgICAgb2JzZXJ2ZXIuZXJyb3IobmV3IEltcG9ydFVucmVhZGFibGVGaWxlRXJyb3IoKSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZXJyb3JzID0gKHJlc3BvbnNlIGFzIGFueSkuZXJyb3JzIHx8IFtdO1xuICAgICAgICBpZiAoZXJyb3JzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBvYnNlcnZlci5lcnJvcihuZXcgSW1wb3J0VW5yZWFkYWJsZUZpbGVFcnJvcigpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCBmZWF0dXJlcyA9IHRoaXMucGFyc2VGZWF0dXJlc0Zyb21HZW9KU09OKFxuICAgICAgICAgICAgZmlsZSxcbiAgICAgICAgICAgIHJlc3BvbnNlLFxuICAgICAgICAgICAgcHJvamVjdGlvbk91dFxuICAgICAgICAgICk7XG4gICAgICAgICAgb2JzZXJ2ZXIubmV4dChmZWF0dXJlcyk7XG4gICAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIChlcnJvcjogYW55KSA9PiB7XG4gICAgICAgIGVycm9yLmVycm9yLmNhdWdodCA9IHRydWU7XG4gICAgICAgIGNvbnN0IGVyck1zZyA9IGVycm9yLmVycm9yLm1zZyB8fCAnJztcbiAgICAgICAgaWYgKGVyck1zZyA9PT0gJ05vIHZhbGlkIGZpbGVzIGZvdW5kJykge1xuICAgICAgICAgIG9ic2VydmVyLmVycm9yKG5ldyBJbXBvcnRJbnZhbGlkRmlsZUVycm9yKCkpO1xuICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgIGVyck1zZyAmJlxuICAgICAgICAgIGVyck1zZy5zdGFydFdpdGgoJ0VSUk9SIDE6IEZhaWxlZCB0byBwcm9jZXNzIFNSUyBkZWZpbml0aW9uJylcbiAgICAgICAgKSB7XG4gICAgICAgICAgb2JzZXJ2ZXIuZXJyb3IobmV3IEltcG9ydFNSU0Vycm9yKCkpO1xuICAgICAgICB9IGVsc2UgaWYgKGVycm9yLnN0YXR1cyA9PT0gNTAwKSB7XG4gICAgICAgICAgb2JzZXJ2ZXIuZXJyb3IobmV3IEltcG9ydE9ncmVTZXJ2ZXJFcnJvcigpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBvYnNlcnZlci5lcnJvcihuZXcgSW1wb3J0VW5yZWFkYWJsZUZpbGVFcnJvcigpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIHBhcnNlRmVhdHVyZXNGcm9tRmlsZShcbiAgICBmaWxlOiBGaWxlLFxuICAgIGRhdGE6IHN0cmluZyxcbiAgICBwcm9qZWN0aW9uSW46IHN0cmluZyxcbiAgICBwcm9qZWN0aW9uT3V0OiBzdHJpbmdcbiAgKTogRmVhdHVyZVtdIHtcbiAgICBjb25zdCBleHRlbnNpb24gPSBnZXRGaWxlRXh0ZW5zaW9uKGZpbGUpO1xuICAgIGNvbnN0IG1pbWVUeXBlID0gZmlsZS50eXBlO1xuXG4gICAgY29uc3QgR2VvSlNPTiA9IG5ldyBvbGZvcm1hdC5HZW9KU09OKCk7XG5cbiAgICBsZXQgZm9ybWF0O1xuICAgIGlmIChtaW1lVHlwZSA9PT0gJ2FwcGxpY2F0aW9uL3ZuZC5nb29nbGUtZWFydGgua21sK3htbCcpIHtcbiAgICAgIGZvcm1hdCA9IG5ldyBvbGZvcm1hdC5LTUwoKTtcbiAgICB9IGVsc2UgaWYgKG1pbWVUeXBlID09PSAnYXBwbGljYXRpb24vZ21sK3htbCcpIHtcbiAgICAgIGZvcm1hdCA9IG5ldyBvbGZvcm1hdC5HTUwoKTtcbiAgICB9IGVsc2UgaWYgKG1pbWVUeXBlID09PSAnYXBwbGljYXRpb24vZ3B4K3htbCcpIHtcbiAgICAgIGZvcm1hdCA9IG5ldyBvbGZvcm1hdC5HUFgoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc3dpdGNoIChleHRlbnNpb24pIHtcbiAgICAgICAgY2FzZSAna21sJzpcbiAgICAgICAgICBmb3JtYXQgPSBuZXcgb2xmb3JtYXQuS01MKCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2dweCc6XG4gICAgICAgICAgZm9ybWF0ID0gbmV3IG9sZm9ybWF0LkdQWCgpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdnbWwnOlxuICAgICAgICAgIGZvcm1hdCA9IG5ldyBvbGZvcm1hdC5HTUwoKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBmb3JtYXQgPSBHZW9KU09OO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IG9sRmVhdHVyZXMgPSBmb3JtYXQucmVhZEZlYXR1cmVzKGRhdGEsIHtcbiAgICAgIGRhdGFQcm9qZWN0aW9uOiBwcm9qZWN0aW9uSW4sXG4gICAgICBmZWF0dXJlUHJvamVjdGlvbjogcHJvamVjdGlvbk91dFxuICAgIH0pO1xuICAgIGNvbnN0IGZlYXR1cmVzID0gb2xGZWF0dXJlcy5tYXAoKG9sRmVhdHVyZTogT2xGZWF0dXJlPE9sR2VvbWV0cnk+KSA9PiB7XG4gICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihHZW9KU09OLndyaXRlRmVhdHVyZU9iamVjdChvbEZlYXR1cmUpLCB7XG4gICAgICAgIHByb2plY3Rpb246IHByb2plY3Rpb25PdXQsXG4gICAgICAgIG1ldGE6IHtcbiAgICAgICAgICBpZDogdXVpZCgpLFxuICAgICAgICAgIHRpdGxlOiBjb21wdXRlTGF5ZXJUaXRsZUZyb21GaWxlKGZpbGUpXG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIGZlYXR1cmVzO1xuICB9XG5cbiAgcHJpdmF0ZSBwYXJzZUZlYXR1cmVzRnJvbUdlb0pTT04oXG4gICAgZmlsZTogRmlsZSxcbiAgICBkYXRhOiBvYmplY3QsXG4gICAgcHJvamVjdGlvbk91dDogc3RyaW5nXG4gICk6IEZlYXR1cmVbXSB7XG4gICAgY29uc3Qgb2xGb3JtYXQgPSBuZXcgb2xmb3JtYXQuR2VvSlNPTigpO1xuICAgIGNvbnN0IG9sRmVhdHVyZXMgPSBvbEZvcm1hdC5yZWFkRmVhdHVyZXMoZGF0YSk7XG4gICAgY29uc3QgZmVhdHVyZXMgPSBvbEZlYXR1cmVzLm1hcCgob2xGZWF0dXJlOiBPbEZlYXR1cmU8T2xHZW9tZXRyeT4pID0+IHtcbiAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKG9sRm9ybWF0LndyaXRlRmVhdHVyZU9iamVjdChvbEZlYXR1cmUpLCB7XG4gICAgICAgIHByb2plY3Rpb246IHByb2plY3Rpb25PdXQsXG4gICAgICAgIG1ldGE6IHtcbiAgICAgICAgICBpZDogdXVpZCgpLFxuICAgICAgICAgIHRpdGxlOiBjb21wdXRlTGF5ZXJUaXRsZUZyb21GaWxlKGZpbGUpXG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIGZlYXR1cmVzIGFzIEZlYXR1cmVbXTtcbiAgfVxufVxuIl19
@@ -200,4 +200,4 @@ export function getFileExtension(file) {
200
200
  export function computeLayerTitleFromFile(file) {
201
201
  return file.name.substr(0, file.name.lastIndexOf('.'));
202
202
  }
203
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1wb3J0LnV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvaW1wb3J0LWV4cG9ydC9zaGFyZWQvaW1wb3J0LnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFbkMsT0FBTyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFakMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFFM0YsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFHM0YsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixXQUFXLEVBQ1gsZ0JBQWdCLEVBQ2pCLE1BQU0sb0NBQW9DLENBQUM7QUFHNUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBR3JFLE9BQU8sRUFDTCxrQkFBa0IsRUFDbEIsMEJBQTBCLEVBQzNCLE1BQU0sMENBQTBDLENBQUM7QUFLbEQsTUFBTSxVQUFVLHdCQUF3QixDQUN0QyxRQUFtQixFQUNuQixHQUFXLEVBQ1gsVUFBa0IsRUFDbEIsVUFBa0IsRUFDbEIsWUFBMEIsRUFDMUIsYUFBc0IsS0FBSztJQUUzQixNQUFNLFVBQVUsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBZ0IsRUFBRSxFQUFFLENBQ25ELFdBQVcsQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUNyQyxDQUFDO0lBRUYsTUFBTSxFQUFFLEdBQUcsSUFBSSxFQUFFLENBQUM7SUFDbEIsTUFBTSxhQUFhLEdBQTBEO1FBQzNFLEVBQUU7UUFDRixJQUFJLEVBQUUsUUFBUTtRQUNkLFNBQVMsRUFBRSxJQUFJO0tBQ2hCLENBQUM7SUFDRixNQUFNLE1BQU0sR0FBRyxJQUFJLGlCQUFpQixDQUFDLGFBQWEsQ0FB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Q3pDLElBQVUsRUFDVixLQUFZLEVBQ1osY0FBOEI7SUFFOUIsY0FBYyxDQUFDLEtBQUssQ0FDbEIscUNBQXFDLEVBQ3JDLHNDQUFzQyxDQUN2QyxDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxJQUFVO0lBQ3pDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUM7QUFDbEQsQ0FBQztBQUVELE1BQU0sVUFBVSx5QkFBeUIsQ0FBQyxJQUFVO0lBQ2xELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDekQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbmZpcm1EaWFsb2dTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29tbW9uL2NvbmZpcm0tZGlhbG9nJztcbmltcG9ydCB7IE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZS9tZXNzYWdlJztcbmltcG9ydCB7IHV1aWQgfSBmcm9tICdAaWdvMi91dGlscyc7XG5cbmltcG9ydCB7IGZpcnN0LCBvZiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBDbHVzdGVyRGF0YVNvdXJjZSB9IGZyb20gJy4uLy4uL2RhdGFzb3VyY2Uvc2hhcmVkL2RhdGFzb3VyY2VzL2NsdXN0ZXItZGF0YXNvdXJjZSc7XG5pbXBvcnQgeyBDbHVzdGVyRGF0YVNvdXJjZU9wdGlvbnMgfSBmcm9tICcuLi8uLi9kYXRhc291cmNlL3NoYXJlZC9kYXRhc291cmNlcy9jbHVzdGVyLWRhdGFzb3VyY2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IEZlYXR1cmVEYXRhU291cmNlIH0gZnJvbSAnLi4vLi4vZGF0YXNvdXJjZS9zaGFyZWQvZGF0YXNvdXJjZXMvZmVhdHVyZS1kYXRhc291cmNlJztcbmltcG9ydCB7IEZlYXR1cmVEYXRhU291cmNlT3B0aW9ucyB9IGZyb20gJy4uLy4uL2RhdGFzb3VyY2Uvc2hhcmVkL2RhdGFzb3VyY2VzL2ZlYXR1cmUtZGF0YXNvdXJjZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRmVhdHVyZSB9IGZyb20gJy4uLy4uL2ZlYXR1cmUvc2hhcmVkL2ZlYXR1cmUuaW50ZXJmYWNlcyc7XG5pbXBvcnQge1xuICBjb21wdXRlT2xGZWF0dXJlc0V4dGVudCxcbiAgZmVhdHVyZVRvT2wsXG4gIG1vdmVUb09sRmVhdHVyZXNcbn0gZnJvbSAnLi4vLi4vZmVhdHVyZS9zaGFyZWQvZmVhdHVyZS51dGlscyc7XG5pbXBvcnQgeyBDbHVzdGVyUGFyYW0gfSBmcm9tICcuLi8uLi9sYXllci9zaGFyZWQvY2x1c3RlclBhcmFtJztcbmltcG9ydCB7IExheWVyU2VydmljZSB9IGZyb20gJy4uLy4uL2xheWVyL3NoYXJlZC9sYXllci5zZXJ2aWNlJztcbmltcG9ydCB7IFZlY3RvckxheWVyIH0gZnJvbSAnLi4vLi4vbGF5ZXIvc2hhcmVkL2xheWVycy92ZWN0b3ItbGF5ZXInO1xuaW1wb3J0IHsgSWdvTWFwIH0gZnJvbSAnLi4vLi4vbWFwL3NoYXJlZC9tYXAnO1xuaW1wb3J0IHsgUXVlcnlhYmxlRGF0YVNvdXJjZU9wdGlvbnMgfSBmcm9tICcuLi8uLi9xdWVyeS9zaGFyZWQvcXVlcnkuaW50ZXJmYWNlcyc7XG5pbXBvcnQge1xuICBmZWF0dXJlUmFuZG9tU3R5bGUsXG4gIGZlYXR1cmVSYW5kb21TdHlsZUZ1bmN0aW9uXG59IGZyb20gJy4uLy4uL3N0eWxlL3NoYXJlZC9mZWF0dXJlL2ZlYXR1cmUtc3R5bGUnO1xuaW1wb3J0IHsgU3R5bGVCeUF0dHJpYnV0ZSB9IGZyb20gJy4uLy4uL3N0eWxlL3NoYXJlZC92ZWN0b3IvdmVjdG9yLXN0eWxlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBTdHlsZUxpc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc3R5bGUvc3R5bGUtbGlzdC9zdHlsZS1saXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgU3R5bGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc3R5bGUvc3R5bGUtc2VydmljZS9zdHlsZS5zZXJ2aWNlJztcblxuZXhwb3J0IGZ1bmN0aW9uIGFkZExheWVyQW5kRmVhdHVyZXNUb01hcChcbiAgZmVhdHVyZXM6IEZlYXR1cmVbXSxcbiAgbWFwOiBJZ29NYXAsXG4gIGNvbnRleHRVcmk6IHN0cmluZyxcbiAgbGF5ZXJUaXRsZTogc3RyaW5nLFxuICBsYXllclNlcnZpY2U6IExheWVyU2VydmljZSxcbiAgc3RvcmVUb0lkYjogYm9vbGVhbiA9IGZhbHNlXG4pOiBWZWN0b3JMYXllciB7XG4gIGNvbnN0IG9sRmVhdHVyZXMgPSBmZWF0dXJlcy5tYXAoKGZlYXR1cmU6IEZlYXR1cmUpID0+XG4gICAgZmVhdHVyZVRvT2woZmVhdHVyZSwgbWFwLnByb2plY3Rpb24pXG4gICk7XG5cbiAgY29uc3QgaWQgPSB1dWlkKCk7XG4gIGNvbnN0IHNvdXJjZU9wdGlvbnM6IEZlYXR1cmVEYXRhU291cmNlT3B0aW9ucyAmIFF1ZXJ5YWJsZURhdGFTb3VyY2VPcHRpb25zID0ge1xuICAgIGlkLFxuICAgIHR5cGU6ICd2ZWN0b3InLFxuICAgIHF1ZXJ5YWJsZTogdHJ1ZVxuICB9O1xuICBjb25zdCBzb3VyY2UgPSBuZXcgRmVhdHVyZURhdGFTb3VyY2Uoc291cmNlT3B0aW9ucyk7XG4gIHNvdXJjZS5vbC5hZGRGZWF0dXJlcyhvbEZlYXR1cmVzKTtcbiAgbGV0IHJhbmRvbVN0eWxlO1xuICBsZXQgZWRpdGFibGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaWYgKFxuICAgIG9sRmVhdHVyZXNbMF0uZ2V0S2V5cygpLmluY2x1ZGVzKCdfc3R5bGUnKSB8fFxuICAgIG9sRmVhdHVyZXNbMF0uZ2V0S2V5cygpLmluY2x1ZGVzKCdfbWFwVGl0bGUnKVxuICApIHtcbiAgICByYW5kb21TdHlsZSA9IGZlYXR1cmVSYW5kb21TdHlsZUZ1bmN0aW9uKCk7XG4gIH0gZWxzZSB7XG4gICAgcmFuZG9tU3R5bGUgPSBmZWF0dXJlUmFuZG9tU3R5bGUoKTtcbiAgICBlZGl0YWJsZSA9IHRydWU7XG4gIH1cbiAgY29uc3QgbGF5ZXIgPSBsYXllclNlcnZpY2UuY3JlYXRlTGF5ZXIoe1xuICAgIGlkLFxuICAgIHRpdGxlOiBsYXllclRpdGxlLFxuICAgIHdvcmtzcGFjZTogeyBlbmFibGVkOiB0cnVlLCBzZWFyY2hJbmRleEVuYWJsZWQ6IHRydWUgfSxcbiAgICBpc0lnb0ludGVybmFsTGF5ZXI6IHRydWUsXG4gICAgc291cmNlLFxuICAgIGlnb1N0eWxlOiB7IGVkaXRhYmxlIH0sXG4gICAgaWRiSW5mbzogeyBmaXJzdExvYWQ6IHRydWUsIHN0b3JlVG9JZGIsIGNvbnRleHRVcmk6IGNvbnRleHRVcmkgfHwgJyonIH0sXG4gICAgc3R5bGU6IHJhbmRvbVN0eWxlXG4gIH0pIGFzIFZlY3RvckxheWVyO1xuICBsYXllci5zZXRFeHRlbnQoY29tcHV0ZU9sRmVhdHVyZXNFeHRlbnQob2xGZWF0dXJlcywgbWFwLnZpZXdQcm9qZWN0aW9uKSk7XG4gIG1hcC5hZGRMYXllcihsYXllcik7XG4gIG1vdmVUb09sRmVhdHVyZXMobWFwLnZpZXdDb250cm9sbGVyLCBvbEZlYXR1cmVzKTtcblxuICByZXR1cm4gbGF5ZXI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhZGRMYXllckFuZEZlYXR1cmVzU3R5bGVkVG9NYXAoXG4gIGZlYXR1cmVzOiBGZWF0dXJlW10sXG4gIG1hcDogSWdvTWFwLFxuICBsYXllclRpdGxlOiBzdHJpbmcsXG4gIHN0eWxlTGlzdFNlcnZpY2U6IFN0eWxlTGlzdFNlcnZpY2UsXG4gIHN0eWxlU2VydmljZTogU3R5bGVTZXJ2aWNlLFxuICBsYXllcklkPzogc3RyaW5nLFxuICBpbXBvc2VkU291cmNlT3B0aW9ucz8sXG4gIGltcG9zZWRMYXllck9wdGlvbnM/LFxuICB6b29tVG86IGJvb2xlYW4gPSB0cnVlXG4pOiBWZWN0b3JMYXllciB7XG4gIGNvbnN0IG9sRmVhdHVyZXMgPSBmZWF0dXJlcy5tYXAoKGZlYXR1cmU6IEZlYXR1cmUpID0+XG4gICAgZmVhdHVyZVRvT2woZmVhdHVyZSwgbWFwLnByb2plY3Rpb24pXG4gICk7XG4gIGxldCBzdHlsZTtcbiAgbGV0IGRpc3RhbmNlOiBudW1iZXI7XG5cbiAgaWYgKFxuICAgIHN0eWxlTGlzdFNlcnZpY2UuZ2V0U3R5bGVMaXN0KGxheWVyVGl0bGUudG9TdHJpbmcoKSArICcuc3R5bGVCeUF0dHJpYnV0ZScpXG4gICkge1xuICAgIGNvbnN0IHN0eWxlQnlBdHRyaWJ1dGU6IFN0eWxlQnlBdHRyaWJ1dGUgPSBzdHlsZUxpc3RTZXJ2aWNlLmdldFN0eWxlTGlzdChcbiAgICAgIGxheWVyVGl0bGUudG9TdHJpbmcoKSArICcuc3R5bGVCeUF0dHJpYnV0ZSdcbiAgICApO1xuXG4gICAgc3R5bGUgPSAoZmVhdHVyZSwgcmVzb2x1dGlvbikgPT4ge1xuICAgICAgcmV0dXJuIHN0eWxlU2VydmljZS5jcmVhdGVTdHlsZUJ5QXR0cmlidXRlKFxuICAgICAgICBmZWF0dXJlLFxuICAgICAgICBzdHlsZUJ5QXR0cmlidXRlLFxuICAgICAgICByZXNvbHV0aW9uXG4gICAgICApO1xuICAgIH07XG4gIH0gZWxzZSBpZiAoXG4gICAgc3R5bGVMaXN0U2VydmljZS5nZXRTdHlsZUxpc3QobGF5ZXJUaXRsZS50b1N0cmluZygpICsgJy5jbHVzdGVyU3R5bGUnKVxuICApIHtcbiAgICBjb25zdCBjbHVzdGVyUGFyYW06IENsdXN0ZXJQYXJhbSA9IHN0eWxlTGlzdFNlcnZpY2UuZ2V0U3R5bGVMaXN0KFxuICAgICAgbGF5ZXJUaXRsZS50b1N0cmluZygpICsgJy5jbHVzdGVyUGFyYW0nXG4gICAgKTtcbiAgICBkaXN0YW5jZSA9IHN0eWxlTGlzdFNlcnZpY2UuZ2V0U3R5bGVMaXN0KFxuICAgICAgbGF5ZXJUaXRsZS50b1N0cmluZygpICsgJy5kaXN0YW5jZSdcbiAgICApO1xuXG4gICAgc3R5bGUgPSAoZmVhdHVyZSwgcmVzb2x1dGlvbikgPT4ge1xuICAgICAgY29uc3QgYmFzZVN0eWxlID0gc3R5bGVTZXJ2aWNlLmNyZWF0ZVN0eWxlKFxuICAgICAgICBzdHlsZUxpc3RTZXJ2aWNlLmdldFN0eWxlTGlzdChsYXllclRpdGxlLnRvU3RyaW5nKCkgKyAnLmNsdXN0ZXJTdHlsZScpLFxuICAgICAgICBmZWF0dXJlLFxuICAgICAgICByZXNvbHV0aW9uXG4gICAgICApO1xuICAgICAgcmV0dXJuIHN0eWxlU2VydmljZS5jcmVhdGVDbHVzdGVyU3R5bGUoXG4gICAgICAgIGZlYXR1cmUsXG4gICAgICAgIHJlc29sdXRpb24sXG4gICAgICAgIGNsdXN0ZXJQYXJhbSxcbiAgICAgICAgYmFzZVN0eWxlXG4gICAgICApO1xuICAgIH07XG4gIH0gZWxzZSBpZiAoc3R5bGVMaXN0U2VydmljZS5nZXRTdHlsZUxpc3QobGF5ZXJUaXRsZS50b1N0cmluZygpICsgJy5zdHlsZScpKSB7XG4gICAgc3R5bGUgPSAoZmVhdHVyZSwgcmVzb2x1dGlvbikgPT5cbiAgICAgIHN0eWxlU2VydmljZS5jcmVhdGVTdHlsZShcbiAgICAgICAgc3R5bGVMaXN0U2VydmljZS5nZXRTdHlsZUxpc3QobGF5ZXJUaXRsZS50b1N0cmluZygpICsgJy5zdHlsZScpLFxuICAgICAgICBmZWF0dXJlLFxuICAgICAgICByZXNvbHV0aW9uXG4gICAgICApO1xuICB9IGVsc2UgaWYgKFxuICAgIHN0eWxlTGlzdFNlcnZpY2UuZ2V0U3R5bGVMaXN0KCdkZWZhdWx0LmNsdXN0ZXJTdHlsZScpICYmXG4gICAgZmVhdHVyZXNbMF0uZ2VvbWV0cnkudHlwZSA9PT0gJ1BvaW50J1xuICApIHtcbiAgICBjb25zdCBjbHVzdGVyUGFyYW06IENsdXN0ZXJQYXJhbSA9IHN0eWxlTGlzdFNlcnZpY2UuZ2V0U3R5bGVMaXN0KFxuICAgICAgJ2RlZmF1bHQuY2x1c3RlclBhcmFtJ1xuICAgICk7XG4gICAgZGlzdGFuY2UgPSBzdHlsZUxpc3RTZXJ2aWNlLmdldFN0eWxlTGlzdCgnZGVmYXVsdC5kaXN0YW5jZScpO1xuXG4gICAgc3R5bGUgPSAoZmVhdHVyZSwgcmVzb2x1dGlvbikgPT4ge1xuICAgICAgY29uc3QgYmFzZVN0eWxlID0gc3R5bGVTZXJ2aWNlLmNyZWF0ZVN0eWxlKFxuICAgICAgICBzdHlsZUxpc3RTZXJ2aWNlLmdldFN0eWxlTGlzdCgnZGVmYXVsdC5jbHVzdGVyU3R5bGUnKSxcbiAgICAgICAgZmVhdHVyZSxcbiAgICAgICAgcmVzb2x1dGlvblxuICAgICAgKTtcbiAgICAgIHJldHVybiBzdHlsZVNlcnZpY2UuY3JlYXRlQ2x1c3RlclN0eWxlKFxuICAgICAgICBmZWF0dXJlLFxuICAgICAgICByZXNvbHV0aW9uLFxuICAgICAgICBjbHVzdGVyUGFyYW0sXG4gICAgICAgIGJhc2VTdHlsZVxuICAgICAgKTtcbiAgICB9O1xuICB9IGVsc2Uge1xuICAgIHN0eWxlID0gKGZlYXR1cmUsIHJlc29sdXRpb24pID0+XG4gICAgICBzdHlsZVNlcnZpY2UuY3JlYXRlU3R5bGUoXG4gICAgICAgIHN0eWxlTGlzdFNlcnZpY2UuZ2V0U3R5bGVMaXN0KCdkZWZhdWx0LnN0eWxlJyksXG4gICAgICAgIGZlYXR1cmUsXG4gICAgICAgIHJlc29sdXRpb25cbiAgICAgICk7XG4gIH1cblxuICBsZXQgc291cmNlO1xuICBpZiAoc3R5bGVMaXN0U2VydmljZS5nZXRTdHlsZUxpc3QobGF5ZXJUaXRsZS50b1N0cmluZygpICsgJy5jbHVzdGVyU3R5bGUnKSkge1xuICAgIGNvbnN0IHNvdXJjZU9wdGlvbnM6IENsdXN0ZXJEYXRhU291cmNlT3B0aW9ucyAmIFF1ZXJ5YWJsZURhdGFTb3VyY2VPcHRpb25zID1cbiAgICAgIHtcbiAgICAgICAgZGlzdGFuY2UsXG4gICAgICAgIHR5cGU6ICdjbHVzdGVyJyxcbiAgICAgICAgcXVlcnlhYmxlOiB0cnVlXG4gICAgICB9O1xuICAgIHNvdXJjZSA9IG5ldyBDbHVzdGVyRGF0YVNvdXJjZShcbiAgICAgIE9iamVjdC5hc3NpZ24oc291cmNlT3B0aW9ucywgaW1wb3NlZFNvdXJjZU9wdGlvbnMpXG4gICAgKTtcbiAgICBzb3VyY2Uub2wuc291cmNlLmFkZEZlYXR1cmVzKG9sRmVhdHVyZXMpO1xuICB9IGVsc2UgaWYgKHN0eWxlTGlzdFNlcnZpY2UuZ2V0U3R5bGVMaXN0KGxheWVyVGl0bGUudG9TdHJpbmcoKSkpIHtcbiAgICBjb25zdCBzb3VyY2VPcHRpb25zOiBGZWF0dXJlRGF0YVNvdXJjZU9wdGlvbnMgJiBRdWVyeWFibGVEYXRhU291cmNlT3B0aW9ucyA9XG4gICAgICB7XG4gICAgICAgIHR5cGU6ICd2ZWN0b3InLFxuICAgICAgICBxdWVyeWFibGU6IHRydWVcbiAgICAgIH07XG4gICAgc291cmNlID0gbmV3IEZlYXR1cmVEYXRhU291cmNlKFxuICAgICAgT2JqZWN0LmFzc2lnbihzb3VyY2VPcHRpb25zLCBpbXBvc2VkU291cmNlT3B0aW9ucylcbiAgICApO1xuICAgIHNvdXJjZS5vbC5hZGRGZWF0dXJlcyhvbEZlYXR1cmVzKTtcbiAgfSBlbHNlIGlmIChcbiAgICBzdHlsZUxpc3RTZXJ2aWNlLmdldFN0eWxlTGlzdCgnZGVmYXVsdC5jbHVzdGVyU3R5bGUnKSAmJlxuICAgIGZlYXR1cmVzWzBdLmdlb21ldHJ5LnR5cGUgPT09ICdQb2ludCdcbiAgKSB7XG4gICAgY29uc3Qgc291cmNlT3B0aW9uczogQ2x1c3RlckRhdGFTb3VyY2VPcHRpb25zICYgUXVlcnlhYmxlRGF0YVNvdXJjZU9wdGlvbnMgPVxuICAgICAge1xuICAgICAgICBkaXN0YW5jZSxcbiAgICAgICAgdHlwZTogJ2NsdXN0ZXInLFxuICAgICAgICBxdWVyeWFibGU6IHRydWVcbiAgICAgIH07XG4gICAgc291cmNlID0gbmV3IENsdXN0ZXJEYXRhU291cmNlKFxuICAgICAgT2JqZWN0LmFzc2lnbihzb3VyY2VPcHRpb25zLCBpbXBvc2VkU291cmNlT3B0aW9ucylcbiAgICApO1xuICAgIHNvdXJjZS5vbC5zb3VyY2UuYWRkRmVhdHVyZXMob2xGZWF0dXJlcyk7XG4gIH0gZWxzZSB7XG4gICAgY29uc3Qgc291cmNlT3B0aW9uczogRmVhdHVyZURhdGFTb3VyY2VPcHRpb25zICYgUXVlcnlhYmxlRGF0YVNvdXJjZU9wdGlvbnMgPVxuICAgICAge1xuICAgICAgICB0eXBlOiAndmVjdG9yJyxcbiAgICAgICAgcXVlcnlhYmxlOiB0cnVlXG4gICAgICB9O1xuICAgIHNvdXJjZSA9IG5ldyBGZWF0dXJlRGF0YVNvdXJjZShcbiAgICAgIE9iamVjdC5hc3NpZ24oc291cmNlT3B0aW9ucywgaW1wb3NlZFNvdXJjZU9wdGlvbnMpXG4gICAgKTtcbiAgICBzb3VyY2Uub2wuYWRkRmVhdHVyZXMob2xGZWF0dXJlcyk7XG4gIH1cblxuICBjb25zdCBsYXllciA9IG5ldyBWZWN0b3JMYXllcihcbiAgICBPYmplY3QuYXNzaWduKFxuICAgICAge1xuICAgICAgICB0aXRsZTogbGF5ZXJUaXRsZSxcbiAgICAgICAgaWQ6IGxheWVySWQgfHwgdXVpZCgpLFxuICAgICAgICBpc0lnb0ludGVybmFsTGF5ZXI6IHRydWUsXG4gICAgICAgIHNvdXJjZSxcbiAgICAgICAgc3R5bGVcbiAgICAgIH0sXG4gICAgICBpbXBvc2VkTGF5ZXJPcHRpb25zXG4gICAgKVxuICApO1xuICBtYXAuYWRkTGF5ZXIobGF5ZXIpO1xuICBpZiAoem9vbVRvKSB7XG4gICAgbW92ZVRvT2xGZWF0dXJlcyhtYXAudmlld0NvbnRyb2xsZXIsIG9sRmVhdHVyZXMpO1xuICB9XG4gIHJldHVybiBsYXllcjtcbn1cblxuZnVuY3Rpb24gcGFkVG8yRGlnaXRzKG51bSkge1xuICByZXR1cm4gbnVtLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhhbmRsZUZpbGVJbXBvcnRTdWNjZXNzKFxuICBmaWxlOiBGaWxlLFxuICBmZWF0dXJlczogRmVhdHVyZVtdLFxuICBtYXA6IElnb01hcCxcbiAgY29udGV4dFVyaTogc3RyaW5nLFxuICBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsXG4gIGxheWVyU2VydmljZTogTGF5ZXJTZXJ2aWNlLFxuICBjb25maXJtRGlhbG9nU2VydmljZT86IENvbmZpcm1EaWFsb2dTZXJ2aWNlLFxuICBzdHlsZUxpc3RTZXJ2aWNlPzogU3R5bGVMaXN0U2VydmljZSxcbiAgc3R5bGVTZXJ2aWNlPzogU3R5bGVTZXJ2aWNlXG4pIHtcbiAgaWYgKGZlYXR1cmVzLmxlbmd0aCA9PT0gMCkge1xuICAgIGhhbmRsZU5vdGhpbmdUb0ltcG9ydEVycm9yKGZpbGUsIG1lc3NhZ2VTZXJ2aWNlKTtcbiAgICByZXR1cm47XG4gIH1cblxuICBsZXQgbGF5ZXJUaXRsZSA9IGNvbXB1dGVMYXllclRpdGxlRnJvbUZpbGUoZmlsZSk7XG5cbiAgY29uc3Qgb2JzJCA9IGNvbmZpcm1EaWFsb2dTZXJ2aWNlXG4gICAgPyBjb25maXJtRGlhbG9nU2VydmljZS5vcGVuKCdpZ28uZ2VvLmltcG9ydC5wcm9tcHRTdG9yZVRvSWRiJylcbiAgICA6IG9mKGZhbHNlKTtcblxuICBvYnMkLnBpcGUoZmlyc3QoKSkuc3Vic2NyaWJlKChjb25maXJtKSA9PiB7XG4gICAgY29uc3QgZCA9IG5ldyBEYXRlKCk7XG4gICAgY29uc3QgZGZvcm1hdCA9XG4gICAgICBbXG4gICAgICAgIGQuZ2V0RnVsbFllYXIoKSxcbiAgICAgICAgcGFkVG8yRGlnaXRzKGQuZ2V0TW9udGgoKSArIDEpLFxuICAgICAgICBwYWRUbzJEaWdpdHMoZC5nZXREYXRlKCkpXG4gICAgICBdLmpvaW4oJy8nKSArXG4gICAgICAnICcgK1xuICAgICAgW3BhZFRvMkRpZ2l0cyhkLmdldEhvdXJzKCkpLCBwYWRUbzJEaWdpdHMoZC5nZXRNaW51dGVzKCkpXS5qb2luKCc6Jyk7XG5cbiAgICBsYXllclRpdGxlID0gY29uZmlybSA/IGAke2xheWVyVGl0bGV9ICgke2Rmb3JtYXR9KWAgOiBsYXllclRpdGxlO1xuICAgIGlmICghc3R5bGVMaXN0U2VydmljZSkge1xuICAgICAgYWRkTGF5ZXJBbmRGZWF0dXJlc1RvTWFwKFxuICAgICAgICBmZWF0dXJlcyxcbiAgICAgICAgbWFwLFxuICAgICAgICBjb250ZXh0VXJpLFxuICAgICAgICBsYXllclRpdGxlLFxuICAgICAgICBsYXllclNlcnZpY2UsXG4gICAgICAgIGNvbmZpcm1cbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGFkZExheWVyQW5kRmVhdHVyZXNTdHlsZWRUb01hcChcbiAgICAgICAgZmVhdHVyZXMsXG4gICAgICAgIG1hcCxcbiAgICAgICAgbGF5ZXJUaXRsZSxcbiAgICAgICAgc3R5bGVMaXN0U2VydmljZSxcbiAgICAgICAgc3R5bGVTZXJ2aWNlXG4gICAgICApO1xuICAgIH1cblxuICAgIG1lc3NhZ2VTZXJ2aWNlLnN1Y2Nlc3MoXG4gICAgICAnaWdvLmdlby5kcm9wR2VvRmlsZS5zdWNjZXNzLnRleHQnLFxuICAgICAgJ2lnby5nZW8uZHJvcEdlb0ZpbGUuc3VjY2Vzcy50aXRsZScsXG4gICAgICB1bmRlZmluZWQsXG4gICAgICB7IHZhbHVlOiBsYXllclRpdGxlIH1cbiAgICApO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhhbmRsZUZpbGVJbXBvcnRFcnJvcihcbiAgZmlsZTogRmlsZSxcbiAgZXJyb3I6IEVycm9yLFxuICBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsXG4gIHNpemVNYj86IG51bWJlclxuKSB7XG4gIHNpemVNYiA9IHNpemVNYiA/IHNpemVNYiA6IDMwO1xuICBjb25zdCBlcnJNYXBwaW5nID0ge1xuICAgICdJbnZhbGlkIGZpbGUnOiBoYW5kbGVJbnZhbGlkRmlsZUltcG9ydEVycm9yLFxuICAgICdGaWxlIGlzIHRvbyBsYXJnZSc6IGhhbmRsZVNpemVGaWxlSW1wb3J0RXJyb3IsXG4gICAgJ0ZhaWxlZCB0byByZWFkIGZpbGUnOiBoYW5kbGVVbnJlYWRibGVGaWxlSW1wb3J0RXJyb3IsXG4gICAgJ0ludmFsaWQgU1JTIGRlZmluaXRpb24nOiBoYW5kbGVTUlNJbXBvcnRFcnJvcixcbiAgICAnRXJyb3IgNTAwIHdpdGggT0dSRSc6IGhhbmRsZU9ncmVTZXJ2ZXJJbXBvcnRFcnJvclxuICB9O1xuICBlcnJNYXBwaW5nW2Vycm9yLm1lc3NhZ2VdKGZpbGUsIGVycm9yLCBtZXNzYWdlU2VydmljZSwgc2l6ZU1iKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhhbmRsZUludmFsaWRGaWxlSW1wb3J0RXJyb3IoXG4gIGZpbGU6IEZpbGUsXG4gIGVycm9yOiBFcnJvcixcbiAgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlXG4pIHtcbiAgbWVzc2FnZVNlcnZpY2UuZXJyb3IoXG4gICAgJ2lnby5nZW8uZHJvcEdlb0ZpbGUuaW52YWxpZC50ZXh0JyxcbiAgICAnaWdvLmdlby5kcm9wR2VvRmlsZS5pbnZhbGlkLnRpdGxlJyxcbiAgICB1bmRlZmluZWQsXG4gICAge1xuICAgICAgdmFsdWU6IGZpbGUubmFtZSxcbiAgICAgIG1pbWVUeXBlOiBmaWxlLnR5cGVcbiAgICB9XG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYW5kbGVVbnJlYWRibGVGaWxlSW1wb3J0RXJyb3IoXG4gIGZpbGU6IEZpbGUsXG4gIGVycm9yOiBFcnJvcixcbiAgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlXG4pIHtcbiAgbWVzc2FnZVNlcnZpY2UuZXJyb3IoXG4gICAgJ2lnby5nZW8uZHJvcEdlb0ZpbGUudW5yZWFkYWJsZS50ZXh0JyxcbiAgICAnaWdvLmdlby5kcm9wR2VvRmlsZS51bnJlYWRhYmxlLnRpdGxlJyxcbiAgICB1bmRlZmluZWQsXG4gICAgeyB2YWx1ZTogZmlsZS5uYW1lIH1cbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhhbmRsZVNpemVGaWxlSW1wb3J0RXJyb3IoXG4gIGZpbGU6IEZpbGUsXG4gIGVycm9yOiBFcnJvcixcbiAgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlLFxuICBzaXplTWI6IG51bWJlclxuKSB7XG4gIG1lc3NhZ2VTZXJ2aWNlLmVycm9yKFxuICAgICdpZ28uZ2VvLmRyb3BHZW9GaWxlLnRvb0xhcmdlLnRleHQnLFxuICAgICdpZ28uZ2VvLmRyb3BHZW9GaWxlLnRvb0xhcmdlLnRpdGxlJyxcbiAgICB1bmRlZmluZWQsXG4gICAge1xuICAgICAgdmFsdWU6IGZpbGUubmFtZSxcbiAgICAgIHNpemU6IHNpemVNYlxuICAgIH1cbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhhbmRsZU5vdGhpbmdUb0ltcG9ydEVycm9yKFxuICBmaWxlOiBGaWxlLFxuICBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2Vcbikge1xuICBtZXNzYWdlU2VydmljZS5lcnJvcihcbiAgICAnaWdvLmdlby5kcm9wR2VvRmlsZS5lbXB0eS50ZXh0JyxcbiAgICAnaWdvLmdlby5kcm9wR2VvRmlsZS5lbXB0eS50aXRsZScsXG4gICAgdW5kZWZpbmVkLFxuICAgIHtcbiAgICAgIHZhbHVlOiBmaWxlLm5hbWUsXG4gICAgICBtaW1lVHlwZTogZmlsZS50eXBlXG4gICAgfVxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaGFuZGxlU1JTSW1wb3J0RXJyb3IoXG4gIGZpbGU6IEZpbGUsXG4gIG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZVxuKSB7XG4gIG1lc3NhZ2VTZXJ2aWNlLmVycm9yKFxuICAgICdpZ28uZ2VvLmRyb3BHZW9GaWxlLmludmFsaWRTUlMudGV4dCcsXG4gICAgJ2lnby5nZW8uZHJvcEdlb0ZpbGUuaW52YWxpZFNSUy50aXRsZScsXG4gICAgdW5kZWZpbmVkLFxuICAgIHtcbiAgICAgIHZhbHVlOiBmaWxlLm5hbWUsXG4gICAgICBtaW1lVHlwZTogZmlsZS50eXBlXG4gICAgfVxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaGFuZGxlT2dyZVNlcnZlckltcG9ydEVycm9yKFxuICBmaWxlOiBGaWxlLFxuICBlcnJvcjogRXJyb3IsXG4gIG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZVxuKSB7XG4gIG1lc3NhZ2VTZXJ2aWNlLmVycm9yKFxuICAgICdpZ28uZ2VvLmRyb3BHZW9GaWxlLm9ncmVTZXJ2ZXIudGV4dCcsXG4gICAgJ2lnby5nZW8uZHJvcEdlb0ZpbGUub2dyZVNlcnZlci50aXRsZSdcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEZpbGVFeHRlbnNpb24oZmlsZTogRmlsZSk6IHN0cmluZyB7XG4gIHJldHVybiBmaWxlLm5hbWUuc3BsaXQoJy4nKS5wb3AoKS50b0xvd2VyQ2FzZSgpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29tcHV0ZUxheWVyVGl0bGVGcm9tRmlsZShmaWxlOiBGaWxlKTogc3RyaW5nIHtcbiAgcmV0dXJuIGZpbGUubmFtZS5zdWJzdHIoMCwgZmlsZS5uYW1lLmxhc3RJbmRleE9mKCcuJykpO1xufVxuIl19
203
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1wb3J0LnV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvaW1wb3J0LWV4cG9ydC9zaGFyZWQvaW1wb3J0LnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFbkMsT0FBTyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFakMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFFM0YsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFHM0YsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixXQUFXLEVBQ1gsZ0JBQWdCLEVBQ2pCLE1BQU0sb0NBQW9DLENBQUM7QUFHNUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBR3JFLE9BQU8sRUFDTCxrQkFBa0IsRUFDbEIsMEJBQTBCLEVBQzNCLE1BQU0sMENBQTBDLENBQUM7QUFLbEQsTUFBTSxVQUFVLHdCQUF3QixDQUN0QyxRQUFtQixFQUNuQixHQUFXLEVBQ1gsVUFBa0IsRUFDbEIsVUFBa0IsRUFDbEIsWUFBMEIsRUFDMUIsVUFBVSxHQUFHLEtBQUs7SUFFbEIsTUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQWdCLEVBQUUsRUFBRSxDQUNuRCxXQUFXLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FDckMsQ0FBQztJQUVGLE1BQU0sRUFBRSxHQUFHLElBQUksRUFBRSxDQUFDO0lBQ2xCLE1BQU0sYUFBYSxHQUEwRDtRQUMzRSxFQUFFO1FBQ0YsSUFBSSxFQUFFLFFBQVE7UUFDZCxTQUFTLEVBQUUsSUFBSTtLQUNoQixDQUFDO0lBQ0YsTUFBTSxNQUFNLEdBQUcsSUFBSSxpQkFBaUIsQ0FBQyxhQUFh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QUEyQixDQUN6QyxJQUFVLEVBQ1YsS0FBWSxFQUNaLGNBQThCO0lBRTlCLGNBQWMsQ0FBQyxLQUFLLENBQ2xCLHFDQUFxQyxFQUNyQyxzQ0FBc0MsQ0FDdkMsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsSUFBVTtJQUN6QyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO0FBQ2xELENBQUM7QUFFRCxNQUFNLFVBQVUseUJBQXlCLENBQUMsSUFBVTtJQUNsRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ3pELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25maXJtRGlhbG9nU2VydmljZSB9IGZyb20gJ0BpZ28yL2NvbW1vbi9jb25maXJtLWRpYWxvZyc7XG5pbXBvcnQgeyBNZXNzYWdlU2VydmljZSB9IGZyb20gJ0BpZ28yL2NvcmUvbWVzc2FnZSc7XG5pbXBvcnQgeyB1dWlkIH0gZnJvbSAnQGlnbzIvdXRpbHMnO1xuXG5pbXBvcnQgeyBmaXJzdCwgb2YgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgQ2x1c3RlckRhdGFTb3VyY2UgfSBmcm9tICcuLi8uLi9kYXRhc291cmNlL3NoYXJlZC9kYXRhc291cmNlcy9jbHVzdGVyLWRhdGFzb3VyY2UnO1xuaW1wb3J0IHsgQ2x1c3RlckRhdGFTb3VyY2VPcHRpb25zIH0gZnJvbSAnLi4vLi4vZGF0YXNvdXJjZS9zaGFyZWQvZGF0YXNvdXJjZXMvY2x1c3Rlci1kYXRhc291cmNlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBGZWF0dXJlRGF0YVNvdXJjZSB9IGZyb20gJy4uLy4uL2RhdGFzb3VyY2Uvc2hhcmVkL2RhdGFzb3VyY2VzL2ZlYXR1cmUtZGF0YXNvdXJjZSc7XG5pbXBvcnQgeyBGZWF0dXJlRGF0YVNvdXJjZU9wdGlvbnMgfSBmcm9tICcuLi8uLi9kYXRhc291cmNlL3NoYXJlZC9kYXRhc291cmNlcy9mZWF0dXJlLWRhdGFzb3VyY2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IEZlYXR1cmUgfSBmcm9tICcuLi8uLi9mZWF0dXJlL3NoYXJlZC9mZWF0dXJlLmludGVyZmFjZXMnO1xuaW1wb3J0IHtcbiAgY29tcHV0ZU9sRmVhdHVyZXNFeHRlbnQsXG4gIGZlYXR1cmVUb09sLFxuICBtb3ZlVG9PbEZlYXR1cmVzXG59IGZyb20gJy4uLy4uL2ZlYXR1cmUvc2hhcmVkL2ZlYXR1cmUudXRpbHMnO1xuaW1wb3J0IHsgQ2x1c3RlclBhcmFtIH0gZnJvbSAnLi4vLi4vbGF5ZXIvc2hhcmVkL2NsdXN0ZXJQYXJhbSc7XG5pbXBvcnQgeyBMYXllclNlcnZpY2UgfSBmcm9tICcuLi8uLi9sYXllci9zaGFyZWQvbGF5ZXIuc2VydmljZSc7XG5pbXBvcnQgeyBWZWN0b3JMYXllciB9IGZyb20gJy4uLy4uL2xheWVyL3NoYXJlZC9sYXllcnMvdmVjdG9yLWxheWVyJztcbmltcG9ydCB7IElnb01hcCB9IGZyb20gJy4uLy4uL21hcC9zaGFyZWQvbWFwJztcbmltcG9ydCB7IFF1ZXJ5YWJsZURhdGFTb3VyY2VPcHRpb25zIH0gZnJvbSAnLi4vLi4vcXVlcnkvc2hhcmVkL3F1ZXJ5LmludGVyZmFjZXMnO1xuaW1wb3J0IHtcbiAgZmVhdHVyZVJhbmRvbVN0eWxlLFxuICBmZWF0dXJlUmFuZG9tU3R5bGVGdW5jdGlvblxufSBmcm9tICcuLi8uLi9zdHlsZS9zaGFyZWQvZmVhdHVyZS9mZWF0dXJlLXN0eWxlJztcbmltcG9ydCB7IFN0eWxlQnlBdHRyaWJ1dGUgfSBmcm9tICcuLi8uLi9zdHlsZS9zaGFyZWQvdmVjdG9yL3ZlY3Rvci1zdHlsZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgU3R5bGVMaXN0U2VydmljZSB9IGZyb20gJy4uLy4uL3N0eWxlL3N0eWxlLWxpc3Qvc3R5bGUtbGlzdC5zZXJ2aWNlJztcbmltcG9ydCB7IFN0eWxlU2VydmljZSB9IGZyb20gJy4uLy4uL3N0eWxlL3N0eWxlLXNlcnZpY2Uvc3R5bGUuc2VydmljZSc7XG5cbmV4cG9ydCBmdW5jdGlvbiBhZGRMYXllckFuZEZlYXR1cmVzVG9NYXAoXG4gIGZlYXR1cmVzOiBGZWF0dXJlW10sXG4gIG1hcDogSWdvTWFwLFxuICBjb250ZXh0VXJpOiBzdHJpbmcsXG4gIGxheWVyVGl0bGU6IHN0cmluZyxcbiAgbGF5ZXJTZXJ2aWNlOiBMYXllclNlcnZpY2UsXG4gIHN0b3JlVG9JZGIgPSBmYWxzZVxuKTogVmVjdG9yTGF5ZXIge1xuICBjb25zdCBvbEZlYXR1cmVzID0gZmVhdHVyZXMubWFwKChmZWF0dXJlOiBGZWF0dXJlKSA9PlxuICAgIGZlYXR1cmVUb09sKGZlYXR1cmUsIG1hcC5wcm9qZWN0aW9uKVxuICApO1xuXG4gIGNvbnN0IGlkID0gdXVpZCgpO1xuICBjb25zdCBzb3VyY2VPcHRpb25zOiBGZWF0dXJlRGF0YVNvdXJjZU9wdGlvbnMgJiBRdWVyeWFibGVEYXRhU291cmNlT3B0aW9ucyA9IHtcbiAgICBpZCxcbiAgICB0eXBlOiAndmVjdG9yJyxcbiAgICBxdWVyeWFibGU6IHRydWVcbiAgfTtcbiAgY29uc3Qgc291cmNlID0gbmV3IEZlYXR1cmVEYXRhU291cmNlKHNvdXJjZU9wdGlvbnMpO1xuICBzb3VyY2Uub2wuYWRkRmVhdHVyZXMob2xGZWF0dXJlcyk7XG4gIGxldCByYW5kb21TdHlsZTtcbiAgbGV0IGVkaXRhYmxlID0gZmFsc2U7XG4gIGlmIChcbiAgICBvbEZlYXR1cmVzWzBdLmdldEtleXMoKS5pbmNsdWRlcygnX3N0eWxlJykgfHxcbiAgICBvbEZlYXR1cmVzWzBdLmdldEtleXMoKS5pbmNsdWRlcygnX21hcFRpdGxlJylcbiAgKSB7XG4gICAgcmFuZG9tU3R5bGUgPSBmZWF0dXJlUmFuZG9tU3R5bGVGdW5jdGlvbigpO1xuICB9IGVsc2Uge1xuICAgIHJhbmRvbVN0eWxlID0gZmVhdHVyZVJhbmRvbVN0eWxlKCk7XG4gICAgZWRpdGFibGUgPSB0cnVlO1xuICB9XG4gIGNvbnN0IGxheWVyID0gbGF5ZXJTZXJ2aWNlLmNyZWF0ZUxheWVyKHtcbiAgICBpZCxcbiAgICB0aXRsZTogbGF5ZXJUaXRsZSxcbiAgICB3b3Jrc3BhY2U6IHsgZW5hYmxlZDogdHJ1ZSwgc2VhcmNoSW5kZXhFbmFibGVkOiB0cnVlIH0sXG4gICAgaXNJZ29JbnRlcm5hbExheWVyOiB0cnVlLFxuICAgIHNvdXJjZSxcbiAgICBpZ29TdHlsZTogeyBlZGl0YWJsZSB9LFxuICAgIGlkYkluZm86IHsgZmlyc3RMb2FkOiB0cnVlLCBzdG9yZVRvSWRiLCBjb250ZXh0VXJpOiBjb250ZXh0VXJpIHx8ICcqJyB9LFxuICAgIHN0eWxlOiByYW5kb21TdHlsZVxuICB9KSBhcyBWZWN0b3JMYXllcjtcbiAgbGF5ZXIuc2V0RXh0ZW50KGNvbXB1dGVPbEZlYXR1cmVzRXh0ZW50KG9sRmVhdHVyZXMsIG1hcC52aWV3UHJvamVjdGlvbikpO1xuICBtYXAuYWRkTGF5ZXIobGF5ZXIpO1xuICBtb3ZlVG9PbEZlYXR1cmVzKG1hcC52aWV3Q29udHJvbGxlciwgb2xGZWF0dXJlcyk7XG5cbiAgcmV0dXJuIGxheWVyO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYWRkTGF5ZXJBbmRGZWF0dXJlc1N0eWxlZFRvTWFwKFxuICBmZWF0dXJlczogRmVhdHVyZVtdLFxuICBtYXA6IElnb01hcCxcbiAgbGF5ZXJUaXRsZTogc3RyaW5nLFxuICBzdHlsZUxpc3RTZXJ2aWNlOiBTdHlsZUxpc3RTZXJ2aWNlLFxuICBzdHlsZVNlcnZpY2U6IFN0eWxlU2VydmljZSxcbiAgbGF5ZXJJZD86IHN0cmluZyxcbiAgaW1wb3NlZFNvdXJjZU9wdGlvbnM/LFxuICBpbXBvc2VkTGF5ZXJPcHRpb25zPyxcbiAgem9vbVRvID0gdHJ1ZVxuKTogVmVjdG9yTGF5ZXIge1xuICBjb25zdCBvbEZlYXR1cmVzID0gZmVhdHVyZXMubWFwKChmZWF0dXJlOiBGZWF0dXJlKSA9PlxuICAgIGZlYXR1cmVUb09sKGZlYXR1cmUsIG1hcC5wcm9qZWN0aW9uKVxuICApO1xuICBsZXQgc3R5bGU7XG4gIGxldCBkaXN0YW5jZTogbnVtYmVyO1xuXG4gIGlmIChcbiAgICBzdHlsZUxpc3RTZXJ2aWNlLmdldFN0eWxlTGlzdChsYXllclRpdGxlLnRvU3RyaW5nKCkgKyAnLnN0eWxlQnlBdHRyaWJ1dGUnKVxuICApIHtcbiAgICBjb25zdCBzdHlsZUJ5QXR0cmlidXRlOiBTdHlsZUJ5QXR0cmlidXRlID0gc3R5bGVMaXN0U2VydmljZS5nZXRTdHlsZUxpc3QoXG4gICAgICBsYXllclRpdGxlLnRvU3RyaW5nKCkgKyAnLnN0eWxlQnlBdHRyaWJ1dGUnXG4gICAgKTtcblxuICAgIHN0eWxlID0gKGZlYXR1cmUsIHJlc29sdXRpb24pID0+IHtcbiAgICAgIHJldHVybiBzdHlsZVNlcnZpY2UuY3JlYXRlU3R5bGVCeUF0dHJpYnV0ZShcbiAgICAgICAgZmVhdHVyZSxcbiAgICAgICAgc3R5bGVCeUF0dHJpYnV0ZSxcbiAgICAgICAgcmVzb2x1dGlvblxuICAgICAgKTtcbiAgICB9O1xuICB9IGVsc2UgaWYgKFxuICAgIHN0eWxlTGlzdFNlcnZpY2UuZ2V0U3R5bGVMaXN0KGxheWVyVGl0bGUudG9TdHJpbmcoKSArICcuY2x1c3RlclN0eWxlJylcbiAgKSB7XG4gICAgY29uc3QgY2x1c3RlclBhcmFtOiBDbHVzdGVyUGFyYW0gPSBzdHlsZUxpc3RTZXJ2aWNlLmdldFN0eWxlTGlzdChcbiAgICAgIGxheWVyVGl0bGUudG9TdHJpbmcoKSArICcuY2x1c3RlclBhcmFtJ1xuICAgICk7XG4gICAgZGlzdGFuY2UgPSBzdHlsZUxpc3RTZXJ2aWNlLmdldFN0eWxlTGlzdChcbiAgICAgIGxheWVyVGl0bGUudG9TdHJpbmcoKSArICcuZGlzdGFuY2UnXG4gICAgKTtcblxuICAgIHN0eWxlID0gKGZlYXR1cmUsIHJlc29sdXRpb24pID0+IHtcbiAgICAgIGNvbnN0IGJhc2VTdHlsZSA9IHN0eWxlU2VydmljZS5jcmVhdGVTdHlsZShcbiAgICAgICAgc3R5bGVMaXN0U2VydmljZS5nZXRTdHlsZUxpc3QobGF5ZXJUaXRsZS50b1N0cmluZygpICsgJy5jbHVzdGVyU3R5bGUnKSxcbiAgICAgICAgZmVhdHVyZSxcbiAgICAgICAgcmVzb2x1dGlvblxuICAgICAgKTtcbiAgICAgIHJldHVybiBzdHlsZVNlcnZpY2UuY3JlYXRlQ2x1c3RlclN0eWxlKFxuICAgICAgICBmZWF0dXJlLFxuICAgICAgICByZXNvbHV0aW9uLFxuICAgICAgICBjbHVzdGVyUGFyYW0sXG4gICAgICAgIGJhc2VTdHlsZVxuICAgICAgKTtcbiAgICB9O1xuICB9IGVsc2UgaWYgKHN0eWxlTGlzdFNlcnZpY2UuZ2V0U3R5bGVMaXN0KGxheWVyVGl0bGUudG9TdHJpbmcoKSArICcuc3R5bGUnKSkge1xuICAgIHN0eWxlID0gKGZlYXR1cmUsIHJlc29sdXRpb24pID0+XG4gICAgICBzdHlsZVNlcnZpY2UuY3JlYXRlU3R5bGUoXG4gICAgICAgIHN0eWxlTGlzdFNlcnZpY2UuZ2V0U3R5bGVMaXN0KGxheWVyVGl0bGUudG9TdHJpbmcoKSArICcuc3R5bGUnKSxcbiAgICAgICAgZmVhdHVyZSxcbiAgICAgICAgcmVzb2x1dGlvblxuICAgICAgKTtcbiAgfSBlbHNlIGlmIChcbiAgICBzdHlsZUxpc3RTZXJ2aWNlLmdldFN0eWxlTGlzdCgnZGVmYXVsdC5jbHVzdGVyU3R5bGUnKSAmJlxuICAgIGZlYXR1cmVzWzBdLmdlb21ldHJ5LnR5cGUgPT09ICdQb2ludCdcbiAgKSB7XG4gICAgY29uc3QgY2x1c3RlclBhcmFtOiBDbHVzdGVyUGFyYW0gPSBzdHlsZUxpc3RTZXJ2aWNlLmdldFN0eWxlTGlzdChcbiAgICAgICdkZWZhdWx0LmNsdXN0ZXJQYXJhbSdcbiAgICApO1xuICAgIGRpc3RhbmNlID0gc3R5bGVMaXN0U2VydmljZS5nZXRTdHlsZUxpc3QoJ2RlZmF1bHQuZGlzdGFuY2UnKTtcblxuICAgIHN0eWxlID0gKGZlYXR1cmUsIHJlc29sdXRpb24pID0+IHtcbiAgICAgIGNvbnN0IGJhc2VTdHlsZSA9IHN0eWxlU2VydmljZS5jcmVhdGVTdHlsZShcbiAgICAgICAgc3R5bGVMaXN0U2VydmljZS5nZXRTdHlsZUxpc3QoJ2RlZmF1bHQuY2x1c3RlclN0eWxlJyksXG4gICAgICAgIGZlYXR1cmUsXG4gICAgICAgIHJlc29sdXRpb25cbiAgICAgICk7XG4gICAgICByZXR1cm4gc3R5bGVTZXJ2aWNlLmNyZWF0ZUNsdXN0ZXJTdHlsZShcbiAgICAgICAgZmVhdHVyZSxcbiAgICAgICAgcmVzb2x1dGlvbixcbiAgICAgICAgY2x1c3RlclBhcmFtLFxuICAgICAgICBiYXNlU3R5bGVcbiAgICAgICk7XG4gICAgfTtcbiAgfSBlbHNlIHtcbiAgICBzdHlsZSA9IChmZWF0dXJlLCByZXNvbHV0aW9uKSA9PlxuICAgICAgc3R5bGVTZXJ2aWNlLmNyZWF0ZVN0eWxlKFxuICAgICAgICBzdHlsZUxpc3RTZXJ2aWNlLmdldFN0eWxlTGlzdCgnZGVmYXVsdC5zdHlsZScpLFxuICAgICAgICBmZWF0dXJlLFxuICAgICAgICByZXNvbHV0aW9uXG4gICAgICApO1xuICB9XG5cbiAgbGV0IHNvdXJjZTtcbiAgaWYgKHN0eWxlTGlzdFNlcnZpY2UuZ2V0U3R5bGVMaXN0KGxheWVyVGl0bGUudG9TdHJpbmcoKSArICcuY2x1c3RlclN0eWxlJykpIHtcbiAgICBjb25zdCBzb3VyY2VPcHRpb25zOiBDbHVzdGVyRGF0YVNvdXJjZU9wdGlvbnMgJiBRdWVyeWFibGVEYXRhU291cmNlT3B0aW9ucyA9XG4gICAgICB7XG4gICAgICAgIGRpc3RhbmNlLFxuICAgICAgICB0eXBlOiAnY2x1c3RlcicsXG4gICAgICAgIHF1ZXJ5YWJsZTogdHJ1ZVxuICAgICAgfTtcbiAgICBzb3VyY2UgPSBuZXcgQ2x1c3RlckRhdGFTb3VyY2UoXG4gICAgICBPYmplY3QuYXNzaWduKHNvdXJjZU9wdGlvbnMsIGltcG9zZWRTb3VyY2VPcHRpb25zKVxuICAgICk7XG4gICAgc291cmNlLm9sLnNvdXJjZS5hZGRGZWF0dXJlcyhvbEZlYXR1cmVzKTtcbiAgfSBlbHNlIGlmIChzdHlsZUxpc3RTZXJ2aWNlLmdldFN0eWxlTGlzdChsYXllclRpdGxlLnRvU3RyaW5nKCkpKSB7XG4gICAgY29uc3Qgc291cmNlT3B0aW9uczogRmVhdHVyZURhdGFTb3VyY2VPcHRpb25zICYgUXVlcnlhYmxlRGF0YVNvdXJjZU9wdGlvbnMgPVxuICAgICAge1xuICAgICAgICB0eXBlOiAndmVjdG9yJyxcbiAgICAgICAgcXVlcnlhYmxlOiB0cnVlXG4gICAgICB9O1xuICAgIHNvdXJjZSA9IG5ldyBGZWF0dXJlRGF0YVNvdXJjZShcbiAgICAgIE9iamVjdC5hc3NpZ24oc291cmNlT3B0aW9ucywgaW1wb3NlZFNvdXJjZU9wdGlvbnMpXG4gICAgKTtcbiAgICBzb3VyY2Uub2wuYWRkRmVhdHVyZXMob2xGZWF0dXJlcyk7XG4gIH0gZWxzZSBpZiAoXG4gICAgc3R5bGVMaXN0U2VydmljZS5nZXRTdHlsZUxpc3QoJ2RlZmF1bHQuY2x1c3RlclN0eWxlJykgJiZcbiAgICBmZWF0dXJlc1swXS5nZW9tZXRyeS50eXBlID09PSAnUG9pbnQnXG4gICkge1xuICAgIGNvbnN0IHNvdXJjZU9wdGlvbnM6IENsdXN0ZXJEYXRhU291cmNlT3B0aW9ucyAmIFF1ZXJ5YWJsZURhdGFTb3VyY2VPcHRpb25zID1cbiAgICAgIHtcbiAgICAgICAgZGlzdGFuY2UsXG4gICAgICAgIHR5cGU6ICdjbHVzdGVyJyxcbiAgICAgICAgcXVlcnlhYmxlOiB0cnVlXG4gICAgICB9O1xuICAgIHNvdXJjZSA9IG5ldyBDbHVzdGVyRGF0YVNvdXJjZShcbiAgICAgIE9iamVjdC5hc3NpZ24oc291cmNlT3B0aW9ucywgaW1wb3NlZFNvdXJjZU9wdGlvbnMpXG4gICAgKTtcbiAgICBzb3VyY2Uub2wuc291cmNlLmFkZEZlYXR1cmVzKG9sRmVhdHVyZXMpO1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IHNvdXJjZU9wdGlvbnM6IEZlYXR1cmVEYXRhU291cmNlT3B0aW9ucyAmIFF1ZXJ5YWJsZURhdGFTb3VyY2VPcHRpb25zID1cbiAgICAgIHtcbiAgICAgICAgdHlwZTogJ3ZlY3RvcicsXG4gICAgICAgIHF1ZXJ5YWJsZTogdHJ1ZVxuICAgICAgfTtcbiAgICBzb3VyY2UgPSBuZXcgRmVhdHVyZURhdGFTb3VyY2UoXG4gICAgICBPYmplY3QuYXNzaWduKHNvdXJjZU9wdGlvbnMsIGltcG9zZWRTb3VyY2VPcHRpb25zKVxuICAgICk7XG4gICAgc291cmNlLm9sLmFkZEZlYXR1cmVzKG9sRmVhdHVyZXMpO1xuICB9XG5cbiAgY29uc3QgbGF5ZXIgPSBuZXcgVmVjdG9yTGF5ZXIoXG4gICAgT2JqZWN0LmFzc2lnbihcbiAgICAgIHtcbiAgICAgICAgdGl0bGU6IGxheWVyVGl0bGUsXG4gICAgICAgIGlkOiBsYXllcklkIHx8IHV1aWQoKSxcbiAgICAgICAgaXNJZ29JbnRlcm5hbExheWVyOiB0cnVlLFxuICAgICAgICBzb3VyY2UsXG4gICAgICAgIHN0eWxlXG4gICAgICB9LFxuICAgICAgaW1wb3NlZExheWVyT3B0aW9uc1xuICAgIClcbiAgKTtcbiAgbWFwLmFkZExheWVyKGxheWVyKTtcbiAgaWYgKHpvb21Ubykge1xuICAgIG1vdmVUb09sRmVhdHVyZXMobWFwLnZpZXdDb250cm9sbGVyLCBvbEZlYXR1cmVzKTtcbiAgfVxuICByZXR1cm4gbGF5ZXI7XG59XG5cbmZ1bmN0aW9uIHBhZFRvMkRpZ2l0cyhudW0pIHtcbiAgcmV0dXJuIG51bS50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYW5kbGVGaWxlSW1wb3J0U3VjY2VzcyhcbiAgZmlsZTogRmlsZSxcbiAgZmVhdHVyZXM6IEZlYXR1cmVbXSxcbiAgbWFwOiBJZ29NYXAsXG4gIGNvbnRleHRVcmk6IHN0cmluZyxcbiAgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlLFxuICBsYXllclNlcnZpY2U6IExheWVyU2VydmljZSxcbiAgY29uZmlybURpYWxvZ1NlcnZpY2U/OiBDb25maXJtRGlhbG9nU2VydmljZSxcbiAgc3R5bGVMaXN0U2VydmljZT86IFN0eWxlTGlzdFNlcnZpY2UsXG4gIHN0eWxlU2VydmljZT86IFN0eWxlU2VydmljZVxuKSB7XG4gIGlmIChmZWF0dXJlcy5sZW5ndGggPT09IDApIHtcbiAgICBoYW5kbGVOb3RoaW5nVG9JbXBvcnRFcnJvcihmaWxlLCBtZXNzYWdlU2VydmljZSk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgbGV0IGxheWVyVGl0bGUgPSBjb21wdXRlTGF5ZXJUaXRsZUZyb21GaWxlKGZpbGUpO1xuXG4gIGNvbnN0IG9icyQgPSBjb25maXJtRGlhbG9nU2VydmljZVxuICAgID8gY29uZmlybURpYWxvZ1NlcnZpY2Uub3BlbignaWdvLmdlby5pbXBvcnQucHJvbXB0U3RvcmVUb0lkYicpXG4gICAgOiBvZihmYWxzZSk7XG5cbiAgb2JzJC5waXBlKGZpcnN0KCkpLnN1YnNjcmliZSgoY29uZmlybSkgPT4ge1xuICAgIGNvbnN0IGQgPSBuZXcgRGF0ZSgpO1xuICAgIGNvbnN0IGRmb3JtYXQgPVxuICAgICAgW1xuICAgICAgICBkLmdldEZ1bGxZZWFyKCksXG4gICAgICAgIHBhZFRvMkRpZ2l0cyhkLmdldE1vbnRoKCkgKyAxKSxcbiAgICAgICAgcGFkVG8yRGlnaXRzKGQuZ2V0RGF0ZSgpKVxuICAgICAgXS5qb2luKCcvJykgK1xuICAgICAgJyAnICtcbiAgICAgIFtwYWRUbzJEaWdpdHMoZC5nZXRIb3VycygpKSwgcGFkVG8yRGlnaXRzKGQuZ2V0TWludXRlcygpKV0uam9pbignOicpO1xuXG4gICAgbGF5ZXJUaXRsZSA9IGNvbmZpcm0gPyBgJHtsYXllclRpdGxlfSAoJHtkZm9ybWF0fSlgIDogbGF5ZXJUaXRsZTtcbiAgICBpZiAoIXN0eWxlTGlzdFNlcnZpY2UpIHtcbiAgICAgIGFkZExheWVyQW5kRmVhdHVyZXNUb01hcChcbiAgICAgICAgZmVhdHVyZXMsXG4gICAgICAgIG1hcCxcbiAgICAgICAgY29udGV4dFVyaSxcbiAgICAgICAgbGF5ZXJUaXRsZSxcbiAgICAgICAgbGF5ZXJTZXJ2aWNlLFxuICAgICAgICBjb25maXJtXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICBhZGRMYXllckFuZEZlYXR1cmVzU3R5bGVkVG9NYXAoXG4gICAgICAgIGZlYXR1cmVzLFxuICAgICAgICBtYXAsXG4gICAgICAgIGxheWVyVGl0bGUsXG4gICAgICAgIHN0eWxlTGlzdFNlcnZpY2UsXG4gICAgICAgIHN0eWxlU2VydmljZVxuICAgICAgKTtcbiAgICB9XG5cbiAgICBtZXNzYWdlU2VydmljZS5zdWNjZXNzKFxuICAgICAgJ2lnby5nZW8uZHJvcEdlb0ZpbGUuc3VjY2Vzcy50ZXh0JyxcbiAgICAgICdpZ28uZ2VvLmRyb3BHZW9GaWxlLnN1Y2Nlc3MudGl0bGUnLFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgeyB2YWx1ZTogbGF5ZXJUaXRsZSB9XG4gICAgKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYW5kbGVGaWxlSW1wb3J0RXJyb3IoXG4gIGZpbGU6IEZpbGUsXG4gIGVycm9yOiBFcnJvcixcbiAgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlLFxuICBzaXplTWI/OiBudW1iZXJcbikge1xuICBzaXplTWIgPSBzaXplTWIgPyBzaXplTWIgOiAzMDtcbiAgY29uc3QgZXJyTWFwcGluZyA9IHtcbiAgICAnSW52YWxpZCBmaWxlJzogaGFuZGxlSW52YWxpZEZpbGVJbXBvcnRFcnJvcixcbiAgICAnRmlsZSBpcyB0b28gbGFyZ2UnOiBoYW5kbGVTaXplRmlsZUltcG9ydEVycm9yLFxuICAgICdGYWlsZWQgdG8gcmVhZCBmaWxlJzogaGFuZGxlVW5yZWFkYmxlRmlsZUltcG9ydEVycm9yLFxuICAgICdJbnZhbGlkIFNSUyBkZWZpbml0aW9uJzogaGFuZGxlU1JTSW1wb3J0RXJyb3IsXG4gICAgJ0Vycm9yIDUwMCB3aXRoIE9HUkUnOiBoYW5kbGVPZ3JlU2VydmVySW1wb3J0RXJyb3JcbiAgfTtcbiAgZXJyTWFwcGluZ1tlcnJvci5tZXNzYWdlXShmaWxlLCBlcnJvciwgbWVzc2FnZVNlcnZpY2UsIHNpemVNYik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYW5kbGVJbnZhbGlkRmlsZUltcG9ydEVycm9yKFxuICBmaWxlOiBGaWxlLFxuICBlcnJvcjogRXJyb3IsXG4gIG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZVxuKSB7XG4gIG1lc3NhZ2VTZXJ2aWNlLmVycm9yKFxuICAgICdpZ28uZ2VvLmRyb3BHZW9GaWxlLmludmFsaWQudGV4dCcsXG4gICAgJ2lnby5nZW8uZHJvcEdlb0ZpbGUuaW52YWxpZC50aXRsZScsXG4gICAgdW5kZWZpbmVkLFxuICAgIHtcbiAgICAgIHZhbHVlOiBmaWxlLm5hbWUsXG4gICAgICBtaW1lVHlwZTogZmlsZS50eXBlXG4gICAgfVxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaGFuZGxlVW5yZWFkYmxlRmlsZUltcG9ydEVycm9yKFxuICBmaWxlOiBGaWxlLFxuICBlcnJvcjogRXJyb3IsXG4gIG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZVxuKSB7XG4gIG1lc3NhZ2VTZXJ2aWNlLmVycm9yKFxuICAgICdpZ28uZ2VvLmRyb3BHZW9GaWxlLnVucmVhZGFibGUudGV4dCcsXG4gICAgJ2lnby5nZW8uZHJvcEdlb0ZpbGUudW5yZWFkYWJsZS50aXRsZScsXG4gICAgdW5kZWZpbmVkLFxuICAgIHsgdmFsdWU6IGZpbGUubmFtZSB9XG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYW5kbGVTaXplRmlsZUltcG9ydEVycm9yKFxuICBmaWxlOiBGaWxlLFxuICBlcnJvcjogRXJyb3IsXG4gIG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSxcbiAgc2l6ZU1iOiBudW1iZXJcbikge1xuICBtZXNzYWdlU2VydmljZS5lcnJvcihcbiAgICAnaWdvLmdlby5kcm9wR2VvRmlsZS50b29MYXJnZS50ZXh0JyxcbiAgICAnaWdvLmdlby5kcm9wR2VvRmlsZS50b29MYXJnZS50aXRsZScsXG4gICAgdW5kZWZpbmVkLFxuICAgIHtcbiAgICAgIHZhbHVlOiBmaWxlLm5hbWUsXG4gICAgICBzaXplOiBzaXplTWJcbiAgICB9XG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYW5kbGVOb3RoaW5nVG9JbXBvcnRFcnJvcihcbiAgZmlsZTogRmlsZSxcbiAgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlXG4pIHtcbiAgbWVzc2FnZVNlcnZpY2UuZXJyb3IoXG4gICAgJ2lnby5nZW8uZHJvcEdlb0ZpbGUuZW1wdHkudGV4dCcsXG4gICAgJ2lnby5nZW8uZHJvcEdlb0ZpbGUuZW1wdHkudGl0bGUnLFxuICAgIHVuZGVmaW5lZCxcbiAgICB7XG4gICAgICB2YWx1ZTogZmlsZS5uYW1lLFxuICAgICAgbWltZVR5cGU6IGZpbGUudHlwZVxuICAgIH1cbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhhbmRsZVNSU0ltcG9ydEVycm9yKFxuICBmaWxlOiBGaWxlLFxuICBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2Vcbikge1xuICBtZXNzYWdlU2VydmljZS5lcnJvcihcbiAgICAnaWdvLmdlby5kcm9wR2VvRmlsZS5pbnZhbGlkU1JTLnRleHQnLFxuICAgICdpZ28uZ2VvLmRyb3BHZW9GaWxlLmludmFsaWRTUlMudGl0bGUnLFxuICAgIHVuZGVmaW5lZCxcbiAgICB7XG4gICAgICB2YWx1ZTogZmlsZS5uYW1lLFxuICAgICAgbWltZVR5cGU6IGZpbGUudHlwZVxuICAgIH1cbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhhbmRsZU9ncmVTZXJ2ZXJJbXBvcnRFcnJvcihcbiAgZmlsZTogRmlsZSxcbiAgZXJyb3I6IEVycm9yLFxuICBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2Vcbikge1xuICBtZXNzYWdlU2VydmljZS5lcnJvcihcbiAgICAnaWdvLmdlby5kcm9wR2VvRmlsZS5vZ3JlU2VydmVyLnRleHQnLFxuICAgICdpZ28uZ2VvLmRyb3BHZW9GaWxlLm9ncmVTZXJ2ZXIudGl0bGUnXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRGaWxlRXh0ZW5zaW9uKGZpbGU6IEZpbGUpOiBzdHJpbmcge1xuICByZXR1cm4gZmlsZS5uYW1lLnNwbGl0KCcuJykucG9wKCkudG9Mb3dlckNhc2UoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbXB1dGVMYXllclRpdGxlRnJvbUZpbGUoZmlsZTogRmlsZSk6IHN0cmluZyB7XG4gIHJldHVybiBmaWxlLm5hbWUuc3Vic3RyKDAsIGZpbGUubmFtZS5sYXN0SW5kZXhPZignLicpKTtcbn1cbiJdfQ==