@igo2/geo 16.2.0 → 17.0.0-next.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (568) hide show
  1. package/esm2022/lib/catalog/catalog-browser/catalog-browser-group.component.mjs +30 -14
  2. package/esm2022/lib/catalog/catalog-browser/catalog-browser-layer.component.mjs +35 -17
  3. package/esm2022/lib/catalog/catalog-browser/catalog-browser.component.mjs +18 -11
  4. package/esm2022/lib/catalog/catalog-browser/catalog-browser.module.mjs +8 -62
  5. package/esm2022/lib/catalog/catalog-library/add-catalog-dialog.component.mjs +46 -19
  6. package/esm2022/lib/catalog/catalog-library/catalog-library-item.component.mjs +22 -10
  7. package/esm2022/lib/catalog/catalog-library/catalog-library.component.mjs +28 -14
  8. package/esm2022/lib/catalog/catalog-library/catalog-library.module.mjs +8 -71
  9. package/esm2022/lib/catalog/catalog-library/index.mjs +9 -0
  10. package/esm2022/lib/catalog/catalog.module.mjs +9 -37
  11. package/esm2022/lib/catalog/index.mjs +7 -1
  12. package/esm2022/lib/catalog/shared/catalog.abstract.mjs +1 -1
  13. package/esm2022/lib/catalog/shared/catalog.enum.mjs +1 -1
  14. package/esm2022/lib/catalog/shared/catalog.interface.mjs +1 -1
  15. package/esm2022/lib/catalog/shared/catalog.service.mjs +72 -31
  16. package/esm2022/lib/catalog/shared/catalogs.mjs +1 -1
  17. package/esm2022/lib/catalog/shared/index.mjs +1 -1
  18. package/esm2022/lib/datasource/index.mjs +1 -1
  19. package/esm2022/lib/datasource/shared/capabilities.interface.mjs +7 -1
  20. package/esm2022/lib/datasource/shared/capabilities.service.mjs +5 -5
  21. package/esm2022/lib/datasource/shared/datasource.service.mjs +8 -12
  22. package/esm2022/lib/datasource/shared/datasources/any-datasource.interface.mjs +1 -1
  23. package/esm2022/lib/datasource/shared/datasources/arcgisrest-datasource.mjs +1 -1
  24. package/esm2022/lib/datasource/shared/datasources/carto-datasource.mjs +2 -2
  25. package/esm2022/lib/datasource/shared/datasources/datasource.interface.mjs +1 -1
  26. package/esm2022/lib/datasource/shared/datasources/datasource.mjs +1 -1
  27. package/esm2022/lib/datasource/shared/datasources/feature-datasource.mjs +1 -1
  28. package/esm2022/lib/datasource/shared/datasources/imagearcgisrest-datasource.mjs +1 -1
  29. package/esm2022/lib/datasource/shared/datasources/index.mjs +1 -1
  30. package/esm2022/lib/datasource/shared/datasources/mvt-datasource.mjs +1 -1
  31. package/esm2022/lib/datasource/shared/datasources/osm-datasource.mjs +1 -1
  32. package/esm2022/lib/datasource/shared/datasources/tilearcgisrest-datasource.mjs +1 -1
  33. package/esm2022/lib/datasource/shared/datasources/tiledebug-datasource.mjs +1 -1
  34. package/esm2022/lib/datasource/shared/datasources/websocket-datasource.mjs +1 -1
  35. package/esm2022/lib/datasource/shared/datasources/wfs-datasource.mjs +1 -1
  36. package/esm2022/lib/datasource/shared/datasources/wfs.service.mjs +5 -5
  37. package/esm2022/lib/datasource/shared/datasources/wms-datasource.interface.mjs +1 -1
  38. package/esm2022/lib/datasource/shared/datasources/wms-datasource.mjs +1 -1
  39. package/esm2022/lib/datasource/shared/datasources/wms-wfs.utils.mjs +1 -1
  40. package/esm2022/lib/datasource/shared/options/options-api.providers.mjs +1 -1
  41. package/esm2022/lib/datasource/shared/options/options-api.service.mjs +6 -6
  42. package/esm2022/lib/datasource/utils/tilegrid.mjs +1 -1
  43. package/esm2022/lib/directions/directions-buttons/directions-buttons.component.mjs +23 -12
  44. package/esm2022/lib/directions/directions-buttons/index.mjs +1 -1
  45. package/esm2022/lib/directions/directions-inputs/directions-inputs.component.mjs +42 -17
  46. package/esm2022/lib/directions/directions-inputs/index.mjs +1 -1
  47. package/esm2022/lib/directions/directions-results/directions-results.component.mjs +34 -14
  48. package/esm2022/lib/directions/directions-results/index.mjs +1 -1
  49. package/esm2022/lib/directions/directions-sources/directions-source.interface.mjs +1 -1
  50. package/esm2022/lib/directions/directions-sources/directions-source.mjs +1 -1
  51. package/esm2022/lib/directions/directions-sources/directions-source.provider.mjs +1 -1
  52. package/esm2022/lib/directions/directions-sources/index.mjs +1 -1
  53. package/esm2022/lib/directions/directions-sources/osrm-directions-source.mjs +5 -5
  54. package/esm2022/lib/directions/directions.component.mjs +18 -10
  55. package/esm2022/lib/directions/directions.module.mjs +17 -70
  56. package/esm2022/lib/directions/index.mjs +1 -1
  57. package/esm2022/lib/directions/shared/directions-source.service.mjs +1 -1
  58. package/esm2022/lib/directions/shared/directions.enum.mjs +1 -1
  59. package/esm2022/lib/directions/shared/directions.interface.mjs +1 -1
  60. package/esm2022/lib/directions/shared/directions.service.mjs +6 -6
  61. package/esm2022/lib/directions/shared/directions.utils.mjs +1 -1
  62. package/esm2022/lib/directions/shared/index.mjs +1 -1
  63. package/esm2022/lib/directions/shared/store.mjs +1 -1
  64. package/esm2022/lib/download/download-button/download-button.component.mjs +21 -11
  65. package/esm2022/lib/download/download-button/index.mjs +1 -1
  66. package/esm2022/lib/download/download.module.mjs +10 -27
  67. package/esm2022/lib/download/index.mjs +1 -1
  68. package/esm2022/lib/download/shared/download.interface.mjs +1 -1
  69. package/esm2022/lib/download/shared/download.service.mjs +5 -5
  70. package/esm2022/lib/download/shared/index.mjs +1 -1
  71. package/esm2022/lib/draw/draw/draw-layer-popup.component.mjs +21 -10
  72. package/esm2022/lib/draw/draw/draw-popup.component.mjs +39 -16
  73. package/esm2022/lib/draw/draw/draw-shorcuts.component.mjs +19 -9
  74. package/esm2022/lib/draw/draw/draw.component.mjs +52 -22
  75. package/esm2022/lib/draw/draw/draw.module.mjs +7 -104
  76. package/esm2022/lib/draw/drawingTool.module.mjs +8 -7
  77. package/esm2022/lib/draw/index.mjs +1 -1
  78. package/esm2022/lib/draw/shared/draw-icon.service.mjs +5 -5
  79. package/esm2022/lib/draw/shared/draw.enum.mjs +1 -1
  80. package/esm2022/lib/draw/shared/draw.interface.mjs +1 -1
  81. package/esm2022/lib/draw/shared/draw.utils.mjs +1 -1
  82. package/esm2022/lib/draw/shared/index.mjs +1 -1
  83. package/esm2022/lib/environment/environment.interface.mjs +1 -1
  84. package/esm2022/lib/environment/index.mjs +1 -1
  85. package/esm2022/lib/feature/feature-details/feature-details.component.mjs +23 -11
  86. package/esm2022/lib/feature/feature-details/feature-details.directive.mjs +8 -7
  87. package/esm2022/lib/feature/feature-details/feature-details.module.mjs +8 -27
  88. package/esm2022/lib/feature/feature-details/index.mjs +9 -0
  89. package/esm2022/lib/feature/feature-form/feature-form.component.mjs +8 -8
  90. package/esm2022/lib/feature/feature-form/feature-form.module.mjs +8 -11
  91. package/esm2022/lib/feature/feature.module.mjs +9 -10
  92. package/esm2022/lib/feature/index.mjs +8 -2
  93. package/esm2022/lib/feature/shared/feature-store.utils.mjs +1 -1
  94. package/esm2022/lib/feature/shared/feature.enums.mjs +1 -1
  95. package/esm2022/lib/feature/shared/feature.utils.mjs +1 -1
  96. package/esm2022/lib/feature/shared/index.mjs +1 -1
  97. package/esm2022/lib/feature/shared/store.mjs +1 -1
  98. package/esm2022/lib/feature/shared/strategies/geo-properties.mjs +1 -1
  99. package/esm2022/lib/feature/shared/strategies/in-map-extent.mjs +1 -1
  100. package/esm2022/lib/feature/shared/strategies/in-map-resolution.mjs +1 -1
  101. package/esm2022/lib/feature/shared/strategies/index.mjs +1 -1
  102. package/esm2022/lib/feature/shared/strategies/loading-layer.mjs +1 -1
  103. package/esm2022/lib/feature/shared/strategies/loading.mjs +1 -1
  104. package/esm2022/lib/feature/shared/strategies/search.mjs +4 -4
  105. package/esm2022/lib/feature/shared/strategies/selection.mjs +1 -1
  106. package/esm2022/lib/feature/shared/strategies.utils.mjs +1 -1
  107. package/esm2022/lib/filter/filter.module.mjs +47 -177
  108. package/esm2022/lib/filter/index.mjs +36 -1
  109. package/esm2022/lib/filter/ogc-filter-button/ogc-filter-button.component.mjs +29 -15
  110. package/esm2022/lib/filter/ogc-filter-form/ogc-filter-form.component.mjs +46 -20
  111. package/esm2022/lib/filter/ogc-filter-selection/ogc-filter-selection.component.mjs +52 -21
  112. package/esm2022/lib/filter/ogc-filter-time/ogc-filter-time-slider.component.mjs +13 -10
  113. package/esm2022/lib/filter/ogc-filter-time/ogc-filter-time.component.mjs +45 -18
  114. package/esm2022/lib/filter/ogc-filterable-form/ogc-filterable-form.component.mjs +18 -12
  115. package/esm2022/lib/filter/ogc-filterable-item/ogc-filterable-item.component.mjs +42 -18
  116. package/esm2022/lib/filter/ogc-filterable-list/ogc-filterable-list-binding.directive.mjs +8 -7
  117. package/esm2022/lib/filter/ogc-filterable-list/ogc-filterable-list.component.mjs +21 -12
  118. package/esm2022/lib/filter/shared/filterable-datasource.pipe.mjs +6 -5
  119. package/esm2022/lib/filter/shared/ogc-filter-time.service.mjs +5 -5
  120. package/esm2022/lib/filter/shared/ogc-filter.mjs +1 -1
  121. package/esm2022/lib/filter/shared/ogc-filter.service.mjs +5 -5
  122. package/esm2022/lib/filter/shared/spatial-filter.service.mjs +5 -5
  123. package/esm2022/lib/filter/shared/time-filter.service.mjs +5 -5
  124. package/esm2022/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.mjs +63 -27
  125. package/esm2022/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.mjs +32 -15
  126. package/esm2022/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.mjs +34 -15
  127. package/esm2022/lib/filter/time-filter-button/time-filter-button.component.mjs +28 -14
  128. package/esm2022/lib/filter/time-filter-form/time-filter-form.component.mjs +47 -20
  129. package/esm2022/lib/filter/time-filter-item/time-filter-item.component.mjs +31 -13
  130. package/esm2022/lib/filter/time-filter-list/time-filter-list-binding.directive.mjs +8 -7
  131. package/esm2022/lib/filter/time-filter-list/time-filter-list.component.mjs +16 -10
  132. package/esm2022/lib/geo.module.mjs +5 -43
  133. package/esm2022/lib/geometry/geometry-form-field/geometry-form-field-input.component.mjs +7 -7
  134. package/esm2022/lib/geometry/geometry-form-field/geometry-form-field.component.mjs +33 -16
  135. package/esm2022/lib/geometry/geometry-form-field/geometry-form-field.module.mjs +8 -43
  136. package/esm2022/lib/geometry/geometry-form-field/index.mjs +9 -0
  137. package/esm2022/lib/geometry/geometry.module.mjs +9 -10
  138. package/esm2022/lib/geometry/index.mjs +2 -3
  139. package/esm2022/lib/geometry/shared/controls/draw.mjs +1 -1
  140. package/esm2022/lib/geometry/shared/controls/index.mjs +1 -1
  141. package/esm2022/lib/geometry/shared/controls/modify.mjs +1 -1
  142. package/esm2022/lib/geometry/shared/controls/slice.mjs +1 -1
  143. package/esm2022/lib/geometry/shared/geometry.errors.mjs +1 -1
  144. package/esm2022/lib/geometry/shared/geometry.interfaces.mjs +1 -1
  145. package/esm2022/lib/geometry/shared/geometry.utils.mjs +1 -1
  146. package/esm2022/lib/geometry/shared/index.mjs +1 -1
  147. package/esm2022/lib/import-export/export-button/export-button.component.mjs +20 -10
  148. package/esm2022/lib/import-export/export-button/index.mjs +1 -1
  149. package/esm2022/lib/import-export/import-export/import-export.component.mjs +45 -17
  150. package/esm2022/lib/import-export/import-export/index.mjs +1 -1
  151. package/esm2022/lib/import-export/import-export.module.mjs +10 -81
  152. package/esm2022/lib/import-export/index.mjs +9 -1
  153. package/esm2022/lib/import-export/shared/drop-geo-file.directive.mjs +7 -6
  154. package/esm2022/lib/import-export/shared/export.errors.mjs +1 -1
  155. package/esm2022/lib/import-export/shared/export.interface.mjs +1 -1
  156. package/esm2022/lib/import-export/shared/export.service.mjs +5 -5
  157. package/esm2022/lib/import-export/shared/export.type.mjs +1 -1
  158. package/esm2022/lib/import-export/shared/export.utils.mjs +1 -1
  159. package/esm2022/lib/import-export/shared/import.errors.mjs +1 -1
  160. package/esm2022/lib/import-export/shared/import.interface.mjs +1 -1
  161. package/esm2022/lib/import-export/shared/import.service.mjs +5 -5
  162. package/esm2022/lib/import-export/shared/import.utils.mjs +1 -1
  163. package/esm2022/lib/import-export/shared/index.mjs +1 -1
  164. package/esm2022/lib/layer/index.mjs +19 -1
  165. package/esm2022/lib/layer/layer-item/layer-item.component.mjs +33 -14
  166. package/esm2022/lib/layer/layer-legend/layer-legend.component.mjs +41 -17
  167. package/esm2022/lib/layer/layer-legend-item/layer-legend-item.component.mjs +11 -9
  168. package/esm2022/lib/layer/layer-legend-list/layer-legend-list-binding.directive.mjs +8 -7
  169. package/esm2022/lib/layer/layer-legend-list/layer-legend-list.component.mjs +28 -13
  170. package/esm2022/lib/layer/layer-list/layer-list-binding.directive.mjs +8 -7
  171. package/esm2022/lib/layer/layer-list/layer-list.component.mjs +48 -18
  172. package/esm2022/lib/layer/layer-list-tool/layer-list-tool.component.mjs +33 -14
  173. package/esm2022/lib/layer/layer-list-tool/layer-list-tool.service.mjs +5 -5
  174. package/esm2022/lib/layer/layer.module.mjs +16 -93
  175. package/esm2022/lib/layer/shared/layer.service.mjs +11 -11
  176. package/esm2022/lib/layer/shared/layers/image-layer.interface.mjs +1 -1
  177. package/esm2022/lib/layer/shared/layers/image-layer.mjs +1 -1
  178. package/esm2022/lib/layer/shared/layers/index.mjs +1 -1
  179. package/esm2022/lib/layer/shared/layers/layer.mjs +1 -1
  180. package/esm2022/lib/layer/shared/layers/legend.interface.mjs +1 -1
  181. package/esm2022/lib/layer/shared/layers/tile-layer.interface.mjs +1 -1
  182. package/esm2022/lib/layer/shared/layers/tile-layer.mjs +1 -1
  183. package/esm2022/lib/layer/shared/layers/vector-layer.interface.mjs +1 -1
  184. package/esm2022/lib/layer/shared/layers/vector-layer.mjs +1 -1
  185. package/esm2022/lib/layer/shared/layers/vectortile-layer.interface.mjs +1 -1
  186. package/esm2022/lib/layer/shared/layers/vectortile-layer.mjs +1 -1
  187. package/esm2022/lib/layer/track-feature-button/track-feature-button.component.mjs +21 -11
  188. package/esm2022/lib/layer/utils/image-watcher.mjs +1 -1
  189. package/esm2022/lib/layer/utils/layer.utils.mjs +1 -1
  190. package/esm2022/lib/layer/utils/outputLegend.mjs +1 -1
  191. package/esm2022/lib/layer/utils/tile-watcher.mjs +1 -1
  192. package/esm2022/lib/layer/utils/vector-watcher.mjs +1 -1
  193. package/esm2022/lib/map/baselayers-switcher/baselayers-switcher.component.mjs +25 -12
  194. package/esm2022/lib/map/baselayers-switcher/mini-basemap.component.mjs +8 -8
  195. package/esm2022/lib/map/geolocate-button/geolocate-button.component.mjs +22 -11
  196. package/esm2022/lib/map/home-extent-button/home-extent-button.component.mjs +13 -9
  197. package/esm2022/lib/map/index.mjs +32 -1
  198. package/esm2022/lib/map/info-section/info-section.component.mjs +7 -7
  199. package/esm2022/lib/map/map-browser/map-browser.component.mjs +6 -6
  200. package/esm2022/lib/map/map-center/map-center.component.mjs +6 -6
  201. package/esm2022/lib/map/map.module.mjs +36 -66
  202. package/esm2022/lib/map/menu-button/menu-button.component.mjs +21 -11
  203. package/esm2022/lib/map/offline-button/offline-button.component.mjs +21 -11
  204. package/esm2022/lib/map/rotation-button/rotation-button.component.mjs +23 -11
  205. package/esm2022/lib/map/shared/controllers/controller.mjs +1 -1
  206. package/esm2022/lib/map/shared/controllers/geolocation.mjs +1 -1
  207. package/esm2022/lib/map/shared/controllers/view.mjs +1 -1
  208. package/esm2022/lib/map/shared/hover-feature.directive.mjs +8 -7
  209. package/esm2022/lib/map/shared/linkedLayers.utils.mjs +1 -1
  210. package/esm2022/lib/map/shared/map-pointer-position.directive.mjs +8 -7
  211. package/esm2022/lib/map/shared/map.abstract.mjs +1 -1
  212. package/esm2022/lib/map/shared/map.mjs +1 -1
  213. package/esm2022/lib/map/shared/map.service.mjs +5 -5
  214. package/esm2022/lib/map/shared/map.utils.mjs +1 -1
  215. package/esm2022/lib/map/shared/mapOffline.directive.mjs +7 -6
  216. package/esm2022/lib/map/shared/projection.service.mjs +5 -5
  217. package/esm2022/lib/map/shared/projection.utils.mjs +1 -1
  218. package/esm2022/lib/map/swipe-control/swipe-control.component.mjs +6 -6
  219. package/esm2022/lib/map/utils/layer-watcher.mjs +1 -1
  220. package/esm2022/lib/map/wake-lock-button/wake-lock-button.component.mjs +21 -11
  221. package/esm2022/lib/map/zoom-button/zoom-button.component.mjs +13 -9
  222. package/esm2022/lib/measure/index.mjs +2 -3
  223. package/esm2022/lib/measure/measure.module.mjs +8 -5
  224. package/esm2022/lib/measure/measurer/index.mjs +6 -0
  225. package/esm2022/lib/measure/measurer/measure-format.pipe.mjs +6 -5
  226. package/esm2022/lib/measure/measurer/measurer-dialog.component.mjs +18 -11
  227. package/esm2022/lib/measure/measurer/measurer-item.component.mjs +27 -13
  228. package/esm2022/lib/measure/measurer/measurer.component.mjs +35 -17
  229. package/esm2022/lib/measure/measurer/measurer.module.mjs +7 -69
  230. package/esm2022/lib/measure/shared/index.mjs +1 -1
  231. package/esm2022/lib/measure/shared/measure.enum.mjs +1 -1
  232. package/esm2022/lib/measure/shared/measure.interfaces.mjs +1 -1
  233. package/esm2022/lib/measure/shared/measure.utils.mjs +1 -1
  234. package/esm2022/lib/metadata/index.mjs +6 -1
  235. package/esm2022/lib/metadata/metadata-button/index.mjs +1 -1
  236. package/esm2022/lib/metadata/metadata-button/metadata-button.component.mjs +35 -18
  237. package/esm2022/lib/metadata/metadata.module.mjs +10 -31
  238. package/esm2022/lib/metadata/shared/index.mjs +1 -1
  239. package/esm2022/lib/metadata/shared/metadata.interface.mjs +1 -1
  240. package/esm2022/lib/metadata/shared/metadata.service.mjs +5 -5
  241. package/esm2022/lib/offline/geoDB/configFileToGeoDB.service.mjs +5 -5
  242. package/esm2022/lib/offline/geoDB/geoDB.enums.mjs +1 -1
  243. package/esm2022/lib/offline/geoDB/geoDB.interface.mjs +1 -1
  244. package/esm2022/lib/offline/geoDB/geoDB.service.mjs +5 -5
  245. package/esm2022/lib/offline/geoDB/index.mjs +1 -1
  246. package/esm2022/lib/offline/index.mjs +1 -1
  247. package/esm2022/lib/offline/layerDB/index.mjs +1 -1
  248. package/esm2022/lib/offline/layerDB/layerDB.interface.mjs +1 -1
  249. package/esm2022/lib/offline/layerDB/layerDB.service.mjs +5 -5
  250. package/esm2022/lib/offline/shared/geo-network.service.mjs +5 -5
  251. package/esm2022/lib/offline/shared/index.mjs +1 -1
  252. package/esm2022/lib/overlay/index.mjs +1 -1
  253. package/esm2022/lib/overlay/overlay.module.mjs +10 -8
  254. package/esm2022/lib/overlay/shared/index.mjs +1 -1
  255. package/esm2022/lib/overlay/shared/overlay.directive.mjs +8 -7
  256. package/esm2022/lib/overlay/shared/overlay.enum.mjs +1 -1
  257. package/esm2022/lib/overlay/shared/overlay.mjs +2 -2
  258. package/esm2022/lib/overlay/shared/overlay.service.mjs +5 -5
  259. package/esm2022/lib/overlay/shared/overlay.utils.mjs +1 -1
  260. package/esm2022/lib/print/index.mjs +1 -1
  261. package/esm2022/lib/print/print/print.component.mjs +7 -7
  262. package/esm2022/lib/print/print-form/index.mjs +1 -1
  263. package/esm2022/lib/print/print-form/print-form.component.mjs +34 -14
  264. package/esm2022/lib/print/print.module.mjs +10 -54
  265. package/esm2022/lib/print/shared/geopdf.mjs +1 -1
  266. package/esm2022/lib/print/shared/index.mjs +1 -1
  267. package/esm2022/lib/print/shared/print.interface.mjs +1 -1
  268. package/esm2022/lib/print/shared/print.service.mjs +10 -10
  269. package/esm2022/lib/print/shared/print.type.mjs +1 -1
  270. package/esm2022/lib/query/index.mjs +1 -1
  271. package/esm2022/lib/query/query.module.mjs +7 -8
  272. package/esm2022/lib/query/shared/index.mjs +1 -1
  273. package/esm2022/lib/query/shared/query-search-source.mjs +6 -6
  274. package/esm2022/lib/query/shared/query-search-source.providers.mjs +1 -1
  275. package/esm2022/lib/query/shared/query.directive.mjs +8 -7
  276. package/esm2022/lib/query/shared/query.enums.mjs +1 -1
  277. package/esm2022/lib/query/shared/query.interfaces.mjs +1 -1
  278. package/esm2022/lib/query/shared/query.service.mjs +7 -9
  279. package/esm2022/lib/query/shared/query.utils.mjs +1 -1
  280. package/esm2022/lib/search/index.mjs +14 -5
  281. package/esm2022/lib/search/search-bar/search-bar.component.mjs +36 -16
  282. package/esm2022/lib/search/search-bar/search-bar.module.mjs +8 -61
  283. package/esm2022/lib/search/search-results/index.mjs +10 -0
  284. package/esm2022/lib/search/search-results/save-feature-dialog.component.mjs +42 -17
  285. package/esm2022/lib/search/search-results/search-results-add-button.component.mjs +28 -14
  286. package/esm2022/lib/search/search-results/search-results-item.component.mjs +22 -12
  287. package/esm2022/lib/search/search-results/search-results.component.mjs +24 -12
  288. package/esm2022/lib/search/search-results/search-results.module.mjs +8 -91
  289. package/esm2022/lib/search/search-selector/search-selector.component.mjs +27 -12
  290. package/esm2022/lib/search/search-selector/search-selector.module.mjs +8 -44
  291. package/esm2022/lib/search/search-settings/search-settings.component.mjs +37 -14
  292. package/esm2022/lib/search/search-settings/search-settings.module.mjs +7 -47
  293. package/esm2022/lib/search/search.module.mjs +10 -13
  294. package/esm2022/lib/search/shared/index.mjs +1 -1
  295. package/esm2022/lib/search/shared/search-pointer-summary.directive.mjs +8 -7
  296. package/esm2022/lib/search/shared/search-source-service.providers.mjs +1 -1
  297. package/esm2022/lib/search/shared/search-source.service.mjs +1 -1
  298. package/esm2022/lib/search/shared/search.enums.mjs +1 -1
  299. package/esm2022/lib/search/shared/search.interfaces.mjs +1 -1
  300. package/esm2022/lib/search/shared/search.service.mjs +5 -5
  301. package/esm2022/lib/search/shared/search.utils.mjs +1 -1
  302. package/esm2022/lib/search/shared/sources/cadastre.mjs +8 -7
  303. package/esm2022/lib/search/shared/sources/cadastre.providers.mjs +1 -1
  304. package/esm2022/lib/search/shared/sources/coordinates.interfaces.mjs +1 -1
  305. package/esm2022/lib/search/shared/sources/coordinates.mjs +10 -10
  306. package/esm2022/lib/search/shared/sources/coordinates.providers.mjs +1 -1
  307. package/esm2022/lib/search/shared/sources/icherche.interfaces.mjs +1 -1
  308. package/esm2022/lib/search/shared/sources/icherche.mjs +16 -16
  309. package/esm2022/lib/search/shared/sources/icherche.providers.mjs +1 -1
  310. package/esm2022/lib/search/shared/sources/ilayer.interfaces.mjs +1 -1
  311. package/esm2022/lib/search/shared/sources/ilayer.mjs +10 -10
  312. package/esm2022/lib/search/shared/sources/ilayer.providers.mjs +1 -1
  313. package/esm2022/lib/search/shared/sources/index.mjs +1 -1
  314. package/esm2022/lib/search/shared/sources/nominatim.interfaces.mjs +1 -1
  315. package/esm2022/lib/search/shared/sources/nominatim.mjs +7 -7
  316. package/esm2022/lib/search/shared/sources/nominatim.providers.mjs +1 -1
  317. package/esm2022/lib/search/shared/sources/source.interfaces.mjs +1 -1
  318. package/esm2022/lib/search/shared/sources/source.mjs +1 -1
  319. package/esm2022/lib/search/shared/sources/storedqueries.interfaces.mjs +1 -1
  320. package/esm2022/lib/search/shared/sources/storedqueries.mjs +11 -11
  321. package/esm2022/lib/search/shared/sources/storedqueries.providers.mjs +1 -1
  322. package/esm2022/lib/search/shared/sources/workspace.interfaces.mjs +1 -1
  323. package/esm2022/lib/search/shared/sources/workspace.mjs +7 -8
  324. package/esm2022/lib/search/shared/sources/workspace.providers.mjs +1 -1
  325. package/esm2022/lib/style/index.mjs +1 -1
  326. package/esm2022/lib/style/shared/datasource/esri-style-generator.mjs +1 -1
  327. package/esm2022/lib/style/shared/datasource/index.mjs +1 -1
  328. package/esm2022/lib/style/shared/feature/feature-style.mjs +1 -1
  329. package/esm2022/lib/style/shared/feature/index.mjs +1 -1
  330. package/esm2022/lib/style/shared/font.enum.mjs +1 -1
  331. package/esm2022/lib/style/shared/index.mjs +1 -1
  332. package/esm2022/lib/style/shared/overlay/index.mjs +1 -1
  333. package/esm2022/lib/style/shared/overlay/overlay-marker-style.utils.mjs +1 -1
  334. package/esm2022/lib/style/shared/overlay/overlay-style.utils.mjs +1 -1
  335. package/esm2022/lib/style/shared/vector/commonVectorStyle.mjs +1 -1
  336. package/esm2022/lib/style/shared/vector/conversion.utils.mjs +1 -1
  337. package/esm2022/lib/style/shared/vector/index.mjs +1 -1
  338. package/esm2022/lib/style/style-list/index.mjs +1 -1
  339. package/esm2022/lib/style/style-list/style-list.interface.mjs +1 -1
  340. package/esm2022/lib/style/style-list/style-list.module.mjs +5 -5
  341. package/esm2022/lib/style/style-list/style-list.provider.mjs +1 -1
  342. package/esm2022/lib/style/style-list/style-list.service.mjs +5 -5
  343. package/esm2022/lib/style/style-modal/drawing/index.mjs +1 -1
  344. package/esm2022/lib/style/style-modal/drawing/style-modal-drawing.component.mjs +40 -17
  345. package/esm2022/lib/style/style-modal/index.mjs +1 -1
  346. package/esm2022/lib/style/style-modal/layer/index.mjs +1 -1
  347. package/esm2022/lib/style/style-modal/layer/style-modal-layer.component.mjs +28 -14
  348. package/esm2022/lib/style/style-modal/layer-button/index.mjs +1 -1
  349. package/esm2022/lib/style/style-modal/layer-button/style-modal-layer-button.component.mjs +13 -9
  350. package/esm2022/lib/style/style-modal/shared/index.mjs +1 -1
  351. package/esm2022/lib/style/style-modal/shared/style-modal.interface.mjs +1 -1
  352. package/esm2022/lib/style/style-service/draw-style.service.mjs +5 -5
  353. package/esm2022/lib/style/style-service/index.mjs +1 -1
  354. package/esm2022/lib/style/style-service/style.service.mjs +4 -4
  355. package/esm2022/lib/style/style.module.mjs +12 -57
  356. package/esm2022/lib/toast/index.mjs +1 -1
  357. package/esm2022/lib/toast/toast.component.mjs +19 -11
  358. package/esm2022/lib/toast/toast.module.mjs +10 -30
  359. package/esm2022/lib/utils/googleLinks.mjs +1 -1
  360. package/esm2022/lib/utils/id-generator.mjs +1 -1
  361. package/esm2022/lib/utils/index.mjs +1 -1
  362. package/esm2022/lib/utils/osmLinks.mjs +1 -1
  363. package/esm2022/lib/utils/propertyTypeDetector/index.mjs +1 -1
  364. package/esm2022/lib/utils/propertyTypeDetector/propertyTypeDetector.interface.mjs +1 -1
  365. package/esm2022/lib/utils/propertyTypeDetector/propertyTypeDetector.service.mjs +5 -5
  366. package/esm2022/lib/wkt/index.mjs +1 -1
  367. package/esm2022/lib/wkt/shared/index.mjs +1 -1
  368. package/esm2022/lib/wkt/shared/wkt.service.mjs +19 -19
  369. package/esm2022/lib/wkt/wkt.module.mjs +8 -5
  370. package/esm2022/lib/workspace/confirmation-popup/confirmation-popup.component.mjs +9 -8
  371. package/esm2022/lib/workspace/confirmation-popup/confirmation-popup.module.mjs +8 -24
  372. package/esm2022/lib/workspace/confirmation-popup/index.mjs +1 -1
  373. package/esm2022/lib/workspace/index.mjs +1 -1
  374. package/esm2022/lib/workspace/shared/edition-workspace.mjs +1 -1
  375. package/esm2022/lib/workspace/shared/edition-workspace.service.mjs +5 -5
  376. package/esm2022/lib/workspace/shared/feature-workspace.mjs +1 -1
  377. package/esm2022/lib/workspace/shared/feature-workspace.service.mjs +5 -5
  378. package/esm2022/lib/workspace/shared/index.mjs +1 -1
  379. package/esm2022/lib/workspace/shared/wfs-workspace.mjs +1 -1
  380. package/esm2022/lib/workspace/shared/wfs-workspace.service.mjs +5 -5
  381. package/esm2022/lib/workspace/shared/wms-workspace.service.mjs +5 -5
  382. package/esm2022/lib/workspace/shared/workspace.utils.mjs +1 -1
  383. package/esm2022/lib/workspace/widgets/index.mjs +1 -1
  384. package/esm2022/lib/workspace/widgets/ogc-filter/ogc-filter.component.mjs +7 -7
  385. package/esm2022/lib/workspace/widgets/ogc-filter/ogc-filter.module.mjs +8 -13
  386. package/esm2022/lib/workspace/widgets/widgets.mjs +1 -1
  387. package/esm2022/lib/workspace/workspace-selector/workspace-selector.directive.mjs +7 -6
  388. package/esm2022/lib/workspace/workspace-selector/workspace-selector.module.mjs +8 -10
  389. package/esm2022/lib/workspace/workspace-updator/workspace-updator.directive.mjs +7 -6
  390. package/esm2022/lib/workspace/workspace-updator/workspace-updator.module.mjs +8 -10
  391. package/esm2022/lib/workspace/workspace.module.mjs +10 -35
  392. package/esm2022/public_api.mjs +11 -12
  393. package/fesm2022/igo2-geo.mjs +31812 -31914
  394. package/fesm2022/igo2-geo.mjs.map +1 -1
  395. package/lib/catalog/catalog-browser/catalog-browser-group.component.d.ts +1 -1
  396. package/lib/catalog/catalog-browser/catalog-browser-layer.component.d.ts +1 -1
  397. package/lib/catalog/catalog-browser/catalog-browser.component.d.ts +1 -1
  398. package/lib/catalog/catalog-browser/catalog-browser.module.d.ts +2 -14
  399. package/lib/catalog/catalog-library/add-catalog-dialog.component.d.ts +1 -1
  400. package/lib/catalog/catalog-library/catalog-library-item.component.d.ts +1 -1
  401. package/lib/catalog/catalog-library/catalog-library.component.d.ts +1 -1
  402. package/lib/catalog/catalog-library/catalog-library.module.d.ts +3 -18
  403. package/lib/catalog/catalog-library/index.d.ts +5 -0
  404. package/lib/catalog/catalog.module.d.ts +6 -9
  405. package/lib/catalog/index.d.ts +2 -0
  406. package/lib/datasource/shared/capabilities.interface.d.ts +16 -0
  407. package/lib/datasource/shared/datasource.service.d.ts +2 -4
  408. package/lib/directions/directions-buttons/directions-buttons.component.d.ts +1 -1
  409. package/lib/directions/directions-inputs/directions-inputs.component.d.ts +1 -1
  410. package/lib/directions/directions-results/directions-results.component.d.ts +1 -1
  411. package/lib/directions/directions.component.d.ts +1 -1
  412. package/lib/directions/directions.module.d.ts +9 -20
  413. package/lib/download/download-button/download-button.component.d.ts +1 -1
  414. package/lib/download/download.module.d.ts +4 -6
  415. package/lib/draw/draw/draw-layer-popup.component.d.ts +1 -1
  416. package/lib/draw/draw/draw-popup.component.d.ts +4 -4
  417. package/lib/draw/draw/draw-shorcuts.component.d.ts +1 -1
  418. package/lib/draw/draw/draw.component.d.ts +1 -1
  419. package/lib/draw/draw/draw.module.d.ts +2 -25
  420. package/lib/draw/drawingTool.module.d.ts +3 -0
  421. package/lib/feature/feature-details/feature-details.component.d.ts +4 -2
  422. package/lib/feature/feature-details/feature-details.directive.d.ts +1 -1
  423. package/lib/feature/feature-details/feature-details.module.d.ts +2 -6
  424. package/lib/feature/feature-details/index.d.ts +5 -0
  425. package/lib/feature/feature-form/feature-form.component.d.ts +2 -2
  426. package/lib/feature/feature-form/feature-form.module.d.ts +2 -4
  427. package/lib/feature/feature.module.d.ts +6 -4
  428. package/lib/feature/index.d.ts +3 -1
  429. package/lib/filter/filter.module.d.ts +4 -28
  430. package/lib/filter/index.d.ts +16 -0
  431. package/lib/filter/ogc-filter-button/ogc-filter-button.component.d.ts +3 -3
  432. package/lib/filter/ogc-filter-form/ogc-filter-form.component.d.ts +3 -3
  433. package/lib/filter/ogc-filter-selection/ogc-filter-selection.component.d.ts +3 -3
  434. package/lib/filter/ogc-filter-time/ogc-filter-time-slider.component.d.ts +1 -1
  435. package/lib/filter/ogc-filter-time/ogc-filter-time.component.d.ts +2 -2
  436. package/lib/filter/ogc-filterable-form/ogc-filterable-form.component.d.ts +3 -3
  437. package/lib/filter/ogc-filterable-item/ogc-filterable-item.component.d.ts +3 -3
  438. package/lib/filter/ogc-filterable-list/ogc-filterable-list-binding.directive.d.ts +1 -1
  439. package/lib/filter/ogc-filterable-list/ogc-filterable-list.component.d.ts +3 -3
  440. package/lib/filter/shared/filterable-datasource.pipe.d.ts +1 -1
  441. package/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.d.ts +4 -4
  442. package/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.d.ts +1 -1
  443. package/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.d.ts +1 -1
  444. package/lib/filter/time-filter-button/time-filter-button.component.d.ts +1 -1
  445. package/lib/filter/time-filter-form/time-filter-form.component.d.ts +3 -3
  446. package/lib/filter/time-filter-item/time-filter-item.component.d.ts +1 -1
  447. package/lib/filter/time-filter-list/time-filter-list-binding.directive.d.ts +1 -1
  448. package/lib/filter/time-filter-list/time-filter-list.component.d.ts +1 -1
  449. package/lib/geo.module.d.ts +14 -24
  450. package/lib/geometry/geometry-form-field/geometry-form-field-input.component.d.ts +1 -1
  451. package/lib/geometry/geometry-form-field/geometry-form-field.component.d.ts +1 -1
  452. package/lib/geometry/geometry-form-field/geometry-form-field.module.d.ts +2 -10
  453. package/lib/geometry/geometry-form-field/index.d.ts +5 -0
  454. package/lib/geometry/geometry.module.d.ts +5 -3
  455. package/lib/geometry/index.d.ts +1 -2
  456. package/lib/import-export/export-button/export-button.component.d.ts +1 -1
  457. package/lib/import-export/import-export/import-export.component.d.ts +1 -1
  458. package/lib/import-export/import-export.module.d.ts +4 -15
  459. package/lib/import-export/index.d.ts +4 -0
  460. package/lib/import-export/shared/drop-geo-file.directive.d.ts +1 -1
  461. package/lib/layer/index.d.ts +8 -0
  462. package/lib/layer/layer-item/layer-item.component.d.ts +1 -1
  463. package/lib/layer/layer-legend/layer-legend.component.d.ts +1 -1
  464. package/lib/layer/layer-legend-item/layer-legend-item.component.d.ts +1 -1
  465. package/lib/layer/layer-legend-list/layer-legend-list-binding.directive.d.ts +1 -1
  466. package/lib/layer/layer-legend-list/layer-legend-list.component.d.ts +1 -1
  467. package/lib/layer/layer-list/layer-list-binding.directive.d.ts +1 -1
  468. package/lib/layer/layer-list/layer-list.component.d.ts +1 -1
  469. package/lib/layer/layer-list-tool/layer-list-tool.component.d.ts +1 -1
  470. package/lib/layer/layer.module.d.ts +4 -18
  471. package/lib/layer/track-feature-button/track-feature-button.component.d.ts +1 -1
  472. package/lib/map/baselayers-switcher/baselayers-switcher.component.d.ts +1 -1
  473. package/lib/map/baselayers-switcher/mini-basemap.component.d.ts +1 -1
  474. package/lib/map/geolocate-button/geolocate-button.component.d.ts +1 -1
  475. package/lib/map/home-extent-button/home-extent-button.component.d.ts +1 -1
  476. package/lib/map/index.d.ts +14 -0
  477. package/lib/map/info-section/info-section.component.d.ts +1 -1
  478. package/lib/map/map-browser/map-browser.component.d.ts +1 -1
  479. package/lib/map/map-center/map-center.component.d.ts +1 -1
  480. package/lib/map/map.module.d.ts +4 -7
  481. package/lib/map/menu-button/menu-button.component.d.ts +1 -1
  482. package/lib/map/offline-button/offline-button.component.d.ts +2 -2
  483. package/lib/map/rotation-button/rotation-button.component.d.ts +1 -1
  484. package/lib/map/shared/hover-feature.directive.d.ts +1 -1
  485. package/lib/map/shared/map-pointer-position.directive.d.ts +1 -1
  486. package/lib/map/shared/mapOffline.directive.d.ts +1 -1
  487. package/lib/map/swipe-control/swipe-control.component.d.ts +1 -1
  488. package/lib/map/wake-lock-button/wake-lock-button.component.d.ts +1 -1
  489. package/lib/map/zoom-button/zoom-button.component.d.ts +1 -1
  490. package/lib/measure/index.d.ts +1 -2
  491. package/lib/measure/measure.module.d.ts +3 -0
  492. package/lib/measure/measurer/index.d.ts +5 -0
  493. package/lib/measure/measurer/measure-format.pipe.d.ts +1 -1
  494. package/lib/measure/measurer/measurer-dialog.component.d.ts +1 -1
  495. package/lib/measure/measurer/measurer-item.component.d.ts +1 -1
  496. package/lib/measure/measurer/measurer.component.d.ts +2 -3
  497. package/lib/measure/measurer/measurer.module.d.ts +3 -18
  498. package/lib/metadata/index.d.ts +2 -0
  499. package/lib/metadata/metadata-button/metadata-button.component.d.ts +2 -2
  500. package/lib/metadata/metadata.module.d.ts +4 -7
  501. package/lib/overlay/overlay.module.d.ts +4 -1
  502. package/lib/overlay/shared/overlay.d.ts +1 -1
  503. package/lib/overlay/shared/overlay.directive.d.ts +1 -1
  504. package/lib/print/print/print.component.d.ts +1 -1
  505. package/lib/print/print-form/print-form.component.d.ts +1 -1
  506. package/lib/print/print.module.d.ts +4 -12
  507. package/lib/query/query.module.d.ts +4 -4
  508. package/lib/query/shared/query.directive.d.ts +1 -1
  509. package/lib/query/shared/query.service.d.ts +2 -3
  510. package/lib/search/index.d.ts +6 -4
  511. package/lib/search/search-bar/search-bar.component.d.ts +1 -1
  512. package/lib/search/search-bar/search-bar.module.d.ts +2 -16
  513. package/lib/search/search-results/index.d.ts +6 -0
  514. package/lib/search/search-results/save-feature-dialog.component.d.ts +1 -1
  515. package/lib/search/search-results/search-results-add-button.component.d.ts +1 -1
  516. package/lib/search/search-results/search-results-item.component.d.ts +1 -1
  517. package/lib/search/search-results/search-results.component.d.ts +1 -1
  518. package/lib/search/search-results/search-results.module.d.ts +3 -21
  519. package/lib/search/search-selector/search-selector.component.d.ts +1 -1
  520. package/lib/search/search-selector/search-selector.module.d.ts +2 -11
  521. package/lib/search/search-settings/search-settings.component.d.ts +1 -1
  522. package/lib/search/search-settings/search-settings.module.d.ts +2 -12
  523. package/lib/search/search.module.d.ts +6 -7
  524. package/lib/search/shared/search-pointer-summary.directive.d.ts +1 -1
  525. package/lib/search/shared/sources/cadastre.providers.d.ts +1 -1
  526. package/lib/search/shared/sources/coordinates.providers.d.ts +1 -1
  527. package/lib/search/shared/sources/icherche.providers.d.ts +2 -2
  528. package/lib/search/shared/sources/ilayer.providers.d.ts +1 -1
  529. package/lib/search/shared/sources/nominatim.providers.d.ts +1 -1
  530. package/lib/search/shared/sources/storedqueries.providers.d.ts +2 -2
  531. package/lib/search/shared/sources/workspace.providers.d.ts +1 -1
  532. package/lib/style/style-modal/drawing/style-modal-drawing.component.d.ts +1 -1
  533. package/lib/style/style-modal/layer/style-modal-layer.component.d.ts +1 -1
  534. package/lib/style/style-modal/layer-button/style-modal-layer-button.component.d.ts +1 -1
  535. package/lib/style/style.module.d.ts +5 -16
  536. package/lib/toast/toast.component.d.ts +1 -1
  537. package/lib/toast/toast.module.d.ts +4 -6
  538. package/lib/wkt/wkt.module.d.ts +3 -0
  539. package/lib/workspace/confirmation-popup/confirmation-popup.component.d.ts +1 -1
  540. package/lib/workspace/confirmation-popup/confirmation-popup.module.d.ts +2 -6
  541. package/lib/workspace/widgets/ogc-filter/ogc-filter.component.d.ts +1 -1
  542. package/lib/workspace/widgets/ogc-filter/ogc-filter.module.d.ts +2 -6
  543. package/lib/workspace/workspace-selector/workspace-selector.directive.d.ts +1 -1
  544. package/lib/workspace/workspace-selector/workspace-selector.module.d.ts +2 -3
  545. package/lib/workspace/workspace-updator/workspace-updator.directive.d.ts +1 -1
  546. package/lib/workspace/workspace-updator/workspace-updator.module.d.ts +2 -3
  547. package/lib/workspace/workspace.module.d.ts +5 -9
  548. package/locale/en.geo.json +3 -3
  549. package/locale/fr.geo.json +3 -3
  550. package/package.json +15 -13
  551. package/public_api.d.ts +10 -11
  552. package/src/lib/catalog/catalog-browser/catalog-browser.theming.scss +22 -22
  553. package/src/lib/catalog/catalog.theming.scss +5 -5
  554. package/src/lib/directions/directions-results/directions-results.theming.scss +10 -10
  555. package/src/lib/directions/directions.theming.scss +6 -6
  556. package/src/lib/draw/draw.theming.scss +32 -32
  557. package/src/lib/feature/feature-details/feature-details.theming.scss +16 -16
  558. package/src/lib/feature/feature.theming.scss +4 -4
  559. package/src/lib/measure/measure.theming.scss +5 -5
  560. package/src/lib/measure/measurer/measurer.theming.scss +26 -26
  561. package/src/lib/search/search-results/search-results-item.theme.scss +20 -20
  562. package/src/lib/search/search.theming.scss +7 -7
  563. package/src/lib/workspace/confirmation-popup/confirmation-popup.theming.scss +14 -14
  564. package/src/lib/workspace/workspace.theming.scss +6 -6
  565. package/esm2022/lib/datasource/datasource.module.mjs +0 -22
  566. package/esm2022/lib/search/search-bar/search-url-param.directive.mjs +0 -40
  567. package/lib/datasource/datasource.module.d.ts +0 -8
  568. package/lib/search/search-bar/search-url-param.directive.d.ts +0 -13
@@ -219,4 +219,4 @@ export function getFormatFromOptions(options) {
219
219
  }
220
220
  return new olFormatCls();
221
221
  }
222
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid21zLXdmcy51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2RhdGFzb3VyY2Uvc2hhcmVkL2RhdGFzb3VyY2VzL3dtcy13ZnMudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxLQUFLLFFBQVEsTUFBTSxXQUFXLENBQUM7QUFDdEMsT0FBTyxZQUFZLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUMsT0FBTyxZQUFZLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUMsT0FBTyxhQUFhLE1BQU0saUJBQWlCLENBQUM7QUFDNUMsT0FBTyxjQUFjLE1BQU0sa0JBQWtCLENBQUM7QUFHOUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBS3BFLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxXQUFXLENBQUM7QUFDdkMsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxDQUFDO0FBQ3ZDLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLE9BQU8sQ0FBQztBQUN6QyxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxVQUFVLENBQUM7QUFDbkQsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHLElBQUksTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7QUFDdEQsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLElBQUksTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7QUFFeEQ7Ozs7Ozs7R0FPRztBQUNILE1BQU0sVUFBVSxRQUFRLENBQ3RCLE9BQTZCLEVBQzdCLE1BQWMsRUFDZCxJQUFrQixFQUNsQixVQUE2QixFQUM3QixXQUFxQjtJQUVyQixNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDO0lBQ3BDLE1BQU0saUJBQWlCLEdBQUcsb0JBQW9CLENBQzVDLE9BQU8sRUFDUCxTQUFTLEVBQ1QsT0FBTyxDQUFDLFNBQVMsQ0FBQyxP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TSxJQUFJLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEVBQUU7UUFDdkQsV0FBVyxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUM7UUFDaEMsT0FBTyxJQUFJLFdBQVcsQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUM7S0FDbEQ7U0FBTSxJQUFJLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUU7UUFDbkQsV0FBVyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUM7UUFDL0IsT0FBTyxJQUFJLFdBQVcsQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUM7S0FDbEQ7U0FBTSxJQUFJLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUU7UUFDbEQsV0FBVyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUM7UUFDM0IsT0FBTyxJQUFJLFdBQVcsQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUM7S0FDbEQ7U0FBTSxJQUFJLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUU7UUFDbEQsV0FBVyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUM7UUFDM0IsT0FBTyxJQUFJLFdBQVcsQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUM7S0FDbEQ7U0FBTSxJQUFJLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEVBQUU7UUFDckQsV0FBVyxHQUFHLGNBQWMsQ0FBQztRQUM3QixPQUFPLElBQUksV0FBVyxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQztLQUNsRDtTQUFNLElBQUksWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRTtRQUNsRCxXQUFXLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQztRQUMzQixPQUFPLElBQUksV0FBVyxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQztLQUNsRDtJQUVELE9BQU8sSUFBSSxXQUFXLEVBQUUsQ0FBQztBQUMzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXh0ZW50IH0gZnJvbSAnb2wvZXh0ZW50JztcclxuaW1wb3J0ICogYXMgT2xGb3JtYXQgZnJvbSAnb2wvZm9ybWF0JztcclxuaW1wb3J0IG9sRm9ybWF0R01MMiBmcm9tICdvbC9mb3JtYXQvR01MMic7XHJcbmltcG9ydCBvbEZvcm1hdEdNTDMgZnJvbSAnb2wvZm9ybWF0L0dNTDMnO1xyXG5pbXBvcnQgb2xGb3JtYXRHTUwzMiBmcm9tICdvbC9mb3JtYXQvR01MMzInO1xyXG5pbXBvcnQgb2xGb3JtYXRPU01YTUwgZnJvbSAnb2wvZm9ybWF0L09TTVhNTCc7XHJcbmltcG9ydCBvbFByb2plY3Rpb24gZnJvbSAnb2wvcHJvai9Qcm9qZWN0aW9uJztcclxuXHJcbmltcG9ydCB7IE9nY0ZpbHRlcldyaXRlciB9IGZyb20gJy4uLy4uLy4uL2ZpbHRlci9zaGFyZWQvb2djLWZpbHRlcic7XHJcbmltcG9ydCB7IE9nY0ZpbHRlcnNPcHRpb25zIH0gZnJvbSAnLi4vLi4vLi4vZmlsdGVyL3NoYXJlZC9vZ2MtZmlsdGVyLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IFdGU0RhdGFTb3VyY2VPcHRpb25zIH0gZnJvbSAnLi93ZnMtZGF0YXNvdXJjZS5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBXTVNEYXRhU291cmNlT3B0aW9ucyB9IGZyb20gJy4vd21zLWRhdGFzb3VyY2UuaW50ZXJmYWNlJztcclxuXHJcbmV4cG9ydCBjb25zdCBkZWZhdWx0RXBzZyA9ICdFUFNHOjM4NTcnO1xyXG5leHBvcnQgY29uc3QgZGVmYXVsdE1heEZlYXR1cmVzID0gNTAwMDtcclxuZXhwb3J0IGNvbnN0IGRlZmF1bHRXZnNWZXJzaW9uID0gJzIuMC4wJztcclxuZXhwb3J0IGNvbnN0IGRlZmF1bHRGaWVsZE5hbWVHZW9tZXRyeSA9ICdnZW9tZXRyeSc7XHJcbmV4cG9ydCBjb25zdCBnbWxSZWdleCA9IG5ldyBSZWdFeHAoLyguKik/Z21sKC4qKT8vZ2kpO1xyXG5leHBvcnQgY29uc3QganNvblJlZ2V4ID0gbmV3IFJlZ0V4cCgvKC4qKT9qc29uKC4qKT8vZ2kpO1xyXG5cclxuLyoqXHJcbiAqIFRoaXMgbWV0aG9kIGJ1aWxkIHRoZSBXRlMgVVJMIGJhc2VkIG9uIHRoZSBsYXllciBwcm9wZXJ0eS5cclxuICogQHBhcmFtIG9wdGlvbnMgIFdGU0RhdGFTb3VyY2VPcHRpb25zIFRoZSBjb21tb24gd2ZzIGRhdGFzb3VyY2Ugb3B0aW9ucyBpbnRlcmZhY2VcclxuICogQHBhcmFtIGV4dGVudCAgQW4gZXh0ZW50IGxpa2UgYXJyYXkgW251bWJlciwgbnVtYmVyLCBudW1iZXIsIG51bWJlcl1cclxuICogQHBhcmFtIHByb2ogIG9sUHJvamVjdGlvblxyXG4gKiBAcGFyYW0gb2djRmlsdGVycyAgT2djRmlsdGVyc09wdGlvbnNcclxuICogQHJldHVybnMgQSBzdHJpbmcgcmVwcmVzZW50aW5nIHRoZSBkYXRhc291cmNlIG9wdGlvbnMsIGJhc2VkIG9uIGZpbHRlciBhbmQgdmlld3NcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBidWlsZFVybChcclxuICBvcHRpb25zOiBXRlNEYXRhU291cmNlT3B0aW9ucyxcclxuICBleHRlbnQ6IEV4dGVudCxcclxuICBwcm9qOiBvbFByb2plY3Rpb24sXHJcbiAgb2djRmlsdGVyczogT2djRmlsdGVyc09wdGlvbnMsXHJcbiAgcmFuZG9tUGFyYW0/OiBib29sZWFuXHJcbik6IHN0cmluZyB7XHJcbiAgY29uc3QgcGFyYW1zV0ZTID0gb3B0aW9ucy5wYXJhbXNXRlM7XHJcbiAgY29uc3QgcXVlcnlTdHJpbmdWYWx1ZXMgPSBmb3JtYXRXRlNRdWVyeVN0cmluZyhcclxuICAgIG9wdGlvbnMsXHJcbiAgICB1bmRlZmluZWQsXHJcbiAgICBvcHRpb25zLnBhcmFtc1dGUy5zcnNOYW1lXHJcbiAgKTtcclxuICBsZXQgaWdvRmlsdGVycztcclxuICBpZiAob2djRmlsdGVycz8uZW5hYmxlZCkge1xyXG4gICAgaWdvRmlsdGVycyA9IG9nY0ZpbHRlcnM/LmZpbHRlcnM7XHJcbiAgfVxyXG4gIGNvbnN0IG9nY0ZpbHRlcldyaXRlciA9IG5ldyBPZ2NGaWx0ZXJXcml0ZXIoKTtcclxuICBjb25zdCBmaWx0ZXJPckJveCA9IG9nY0ZpbHRlcldyaXRlci5idWlsZEZpbHRlcihcclxuICAgIGlnb0ZpbHRlcnMsXHJcbiAgICBleHRlbnQsXHJcbiAgICBwcm9qLFxyXG4gICAgb2djRmlsdGVycz8uZ2VvbWV0cnlOYW1lLFxyXG4gICAgb3B0aW9uc1xyXG4gICk7XHJcbiAgbGV0IGZpbHRlck9yUHVzaCA9IG9nY0ZpbHRlcldyaXRlci5oYW5kbGVPZ2NGaWx0ZXJzQXBwbGllZFZhbHVlKFxyXG4gICAgb3B0aW9ucyxcclxuICAgIG9nY0ZpbHRlcnM/Lmdlb21ldHJ5TmFtZSxcclxuICAgIGV4dGVudCxcclxuICAgIHByb2pcclxuICApO1xyXG5cclxuICBsZXQgcHJlZml4ID0gJ2ZpbHRlcic7XHJcbiAgaWYgKCFmaWx0ZXJPclB1c2gpIHtcclxuICAgIHByZWZpeCA9ICdiYm94JztcclxuICAgIGZpbHRlck9yUHVzaCA9IGV4dGVudC5qb2luKCcsJykgKyAnLCcgKyBwcm9qLmdldENvZGUoKTtcclxuICB9XHJcblxyXG4gIHBhcmFtc1dGUy54bWxGaWx0ZXIgPSBvZ2NGaWx0ZXJzPy5hZHZhbmNlZE9nY0ZpbHRlcnNcclxuICAgID8gZmlsdGVyT3JCb3hcclxuICAgIDogYCR7cHJlZml4fT0ke2ZpbHRlck9yUHVzaH1gO1xyXG4gIGxldCBiYXNlVXJsID0gcXVlcnlTdHJpbmdWYWx1ZXMuZmluZCgoZikgPT4gZi5uYW1lID09PSAnZ2V0ZmVhdHVyZScpLnZhbHVlO1xyXG4gIGNvbnN0IHBhdHRlcm5GaWx0ZXIgPSAvKGZpbHRlcnxiYm94KT0uKi9naTtcclxuICBiYXNlVXJsID0gcGF0dGVybkZpbHRlci50ZXN0KHBhcmFtc1dGUy54bWxGaWx0ZXIpXHJcbiAgICA/IGAke2Jhc2VVcmx9JiR7cGFyYW1zV0ZTLnhtbEZpbHRlcn1gXHJcbiAgICA6IGJhc2VVcmw7XHJcbiAgb3B0aW9ucy5kb3dubG9hZCA9IE9iamVjdC5hc3NpZ24oe30sIG9wdGlvbnMuZG93bmxvYWQsIHtcclxuICAgIGR5bmFtaWNVcmw6IGJhc2VVcmxcclxuICB9KTtcclxuICBpZiAocmFuZG9tUGFyYW0pIHtcclxuICAgIGJhc2VVcmwgKz0gYCQmX3Qke25ldyBEYXRlKCkuZ2V0VGltZSgpfWA7XHJcbiAgfVxyXG4gIHJldHVybiBiYXNlVXJsLnJlcGxhY2UoLyYmL2csICcmJyk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBUaGlzIG1ldGhvZCBidWlsZC9zdGFuZGFyZGl6ZSBXRlMgY2FsbCBxdWVyeSBwYXJhbXMgYmFzZWQgb24gdGhlIGxheWVyIHByb3BlcnR5LlxyXG4gKiBAcGFyYW0gd2ZzRGF0YVNvdXJjZU9wdGlvbnMgIFdGU0RhdGFTb3VyY2VPcHRpb25zIFRoZSBjb21tb24gd2ZzIGRhdGFzb3VyY2Ugb3B0aW9ucyBpbnRlcmZhY2VcclxuICogQHBhcmFtIGNvdW50ICBOdW1iZXI6IFVzZWQgdG8gY29udHJvbCB0aGUgbnVtYmVyIG9mIGZlYXR1cmUuIFVzZWQgdG8gYnlwYXNzIHdoZSB3ZnMgZGF0YXNvdXJjZSBvcHRpb25zIGludGVyZmFjZSAobWF4RmVhdHVyZXMpXHJcbiAqIEBwYXJhbSBlcHNnICBTdHJpbmc6IFVzZWQgdG8gY29udHJvbCB0aGUgRVBTRyBjb2RlIChlczogJ0VQU0czODU3JykuIFVzZWQgdG8gYnlwYXNzIHdoZSB3ZnMgZGF0YXNvdXJjZSBvcHRpb25zIGludGVyZmFjZSAoc3JzTmFtZSlcclxuICogQHBhcmFtIHByb3BlcnRpZXMgIFN0cmluZzogVXNlZCB0byBjb250cm9sIHRoZSBxdWVyaWVkIGZpZWxkcyAgKFdGUyBzZXJ2aWNlKS5cclxuICogQHJldHVybnMgQW4gYXJyYXkgYXJyYXkgb2Yge25hbWU6ICcnLCB2YWx1ZTogJyd9IG9mIHByZWRlZmluZWQgcXVlcnkgcGFyYW1zLlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdFdGU1F1ZXJ5U3RyaW5nKFxyXG4gIGRhdGFTb3VyY2VPcHRpb25zOiBXRlNEYXRhU291cmNlT3B0aW9ucyB8IFdNU0RhdGFTb3VyY2VPcHRpb25zLFxyXG4gIGNvdW50PzogbnVtYmVyLFxyXG4gIGVwc2c/OiBzdHJpbmcsXHJcbiAgcHJvcGVydGllcz86IHN0cmluZyxcclxuICBzdGFydEluZGV4OiBudW1iZXIgPSAwLFxyXG4gIGZvcmNlRGVmYXVsdE91dHB1dEZvcm1hdDogYm9vbGVhbiA9IGZhbHNlXHJcbik6IHsgbmFtZTogc3RyaW5nOyB2YWx1ZTogc3RyaW5nIH1bXSB7XHJcbiAgY29uc3QgdmVyc2lvbldmczIwMCA9ICcyLjAuMCc7IC8vIG5vdCB0aGUgc2FtZSB1c2FnZSBhcyBkZWZhdWx0V2ZzVmVyc2lvbi5cclxuICBjb25zdCB1cmwgPSBkYXRhU291cmNlT3B0aW9ucy51cmxXZnM7XHJcbiAgY29uc3QgcGFyYW1zV0ZTID0gZGF0YVNvdXJjZU9wdGlvbnMucGFyYW1zV0ZTO1xyXG4gIGNvbnN0IGVmZmVjdGl2ZUNvdW50ID0gY291bnQgfHwgZGVmYXVsdE1heEZlYXR1cmVzO1xyXG4gIGNvbnN0IGVmZmVjdGl2ZVN0YXJ0SW5kZXggPVxyXG4gICAgcGFyYW1zV0ZTLnZlcnNpb24gPT09IHZlcnNpb25XZnMyMDAgPyBgc3RhcnRJbmRleD0ke3N0YXJ0SW5kZXh9YCA6ICcnO1xyXG4gIGNvbnN0IGVwc2dDb2RlID0gZXBzZyB8fCBkZWZhdWx0RXBzZztcclxuICBsZXQgb3V0cHV0Rm9ybWF0ID0gcGFyYW1zV0ZTLm91dHB1dEZvcm1hdFxyXG4gICAgPyBgb3V0cHV0Rm9ybWF0PSR7cGFyYW1zV0ZTLm91dHB1dEZvcm1hdH1gXHJcbiAgICA6ICcnO1xyXG4gIGxldCB2ZXJzaW9uID0gcGFyYW1zV0ZTLnZlcnNpb25cclxuICAgID8gYHZlcnNpb249JHtwYXJhbXNXRlMudmVyc2lvbn1gXHJcbiAgICA6IGB2ZXJzaW9uPSR7ZGVmYXVsdFdmc1ZlcnNpb259YDtcclxuICBjb25zdCBwYXJhbVR5cGVuYW1lID1cclxuICAgIHBhcmFtc1dGUy52ZXJzaW9uID09PSB2ZXJzaW9uV2ZzMjAwID8gJ3R5cGVuYW1lcycgOiAndHlwZW5hbWUnO1xyXG4gIGNvbnN0IGZlYXR1cmVUeXBlcyA9IGAke3BhcmFtVHlwZW5hbWV9PSR7cGFyYW1zV0ZTLmZlYXR1cmVUeXBlc31gO1xyXG4gIGNvbnN0IHBhcmFtTWF4RmVhdHVyZXMgPVxyXG4gICAgcGFyYW1zV0ZTLnZlcnNpb24gPT09IHZlcnNpb25XZnMyMDAgPyAnY291bnQnIDogJ21heEZlYXR1cmVzJztcclxuICBsZXQgY250ID0gY291bnRcclxuICAgID8gYCR7cGFyYW1NYXhGZWF0dXJlc309JHtlZmZlY3RpdmVDb3VudH1gXHJcbiAgICA6IHBhcmFtc1dGUy5tYXhGZWF0dXJlc1xyXG4gICAgPyBgJHtwYXJhbU1heEZlYXR1cmVzfT0ke3BhcmFtc1dGUy5tYXhGZWF0dXJlc31gXHJcbiAgICA6IGAke3BhcmFtTWF4RmVhdHVyZXN9PSR7ZWZmZWN0aXZlQ291bnR9YDtcclxuICBpZiAoZm9yY2VEZWZhdWx0T3V0cHV0Rm9ybWF0KSB7XHJcbiAgICBvdXRwdXRGb3JtYXQgPSAnJztcclxuICAgIHZlcnNpb24gPSAndmVyc2lvbj0xLjEuMCc7XHJcbiAgICBjbnQgPSBjbnQucmVwbGFjZSgnY291bnQnLCAnbWF4RmVhdHVyZXMnKTtcclxuICB9XHJcblxyXG4gIGNvbnN0IHNycyA9IGVwc2dcclxuICAgID8gYHNyc25hbWU9JHtlcHNnQ29kZX1gXHJcbiAgICA6IHBhcmFtc1dGUy5zcnNOYW1lXHJcbiAgICA/ICdzcnNuYW1lPScgKyBwYXJhbXNXRlMuc3JzTmFtZVxyXG4gICAgOiBgc3JzbmFtZT0ke2Vwc2dDb2RlfWA7XHJcblxyXG4gIGxldCBwcm9wZXJ0eU5hbWUgPSAnJztcclxuICBsZXQgdmFsdWVSZWZlcmVuY2UgPSAnJztcclxuICBpZiAocHJvcGVydGllcykge1xyXG4gICAgcHJvcGVydHlOYW1lID0gYHByb3BlcnR5TmFtZT0ke3Byb3BlcnRpZXN9YDtcclxuICAgIHZhbHVlUmVmZXJlbmNlID0gYHZhbHVlUmVmZXJlbmNlPSR7cHJvcGVydGllc31gO1xyXG4gIH1cclxuICBjb25zdCBzb3VyY2VGaWVsZHMgPSBkYXRhU291cmNlT3B0aW9ucy5zb3VyY2VGaWVsZHM7XHJcbiAgaWYgKCFwcm9wZXJ0eU5hbWUgJiYgc291cmNlRmllbGRzICYmIHNvdXJjZUZpZWxkcy5sZW5ndGggPiAwKSB7XHJcbiAgICBjb25zdCBmaWVsZHNOYW1lcyA9IFtdO1xyXG4gICAgZGF0YVNvdXJjZU9wdGlvbnMuc291cmNlRmllbGRzLmZvckVhY2goKHNvdXJjZWZpZWxkKSA9PiB7XHJcbiAgICAgIGZpZWxkc05hbWVzLnB1c2goc291cmNlZmllbGQubmFtZSk7XHJcbiAgICB9KTtcclxuICAgIHByb3BlcnR5TmFtZSA9IGBwcm9wZXJ0eU5hbWU9JHtmaWVsZHNOYW1lcy5qb2luKCcsJyl9LCR7XHJcbiAgICAgIHBhcmFtc1dGUy5maWVsZE5hbWVHZW9tZXRyeVxyXG4gICAgfWA7XHJcbiAgfVxyXG5cclxuICBjb25zdCBzZXBhcmF0b3IgPSB1cmwuaW5kZXhPZignPycpID09PSAtMSA/ICc/JyA6ICcmJztcclxuICBjb25zdCBnZXRDYXBhYmlsaXRpZXMgPSBgJHt1cmx9JHtzZXBhcmF0b3J9c2VydmljZT1XRlMmcmVxdWVzdD1HZXRDYXBhYmlsaXRpZXMmJHt2ZXJzaW9ufWA7XHJcbiAgbGV0IGdldEZlYXR1cmUgPSBgJHt1cmx9JHtzZXBhcmF0b3J9c2VydmljZT1XRlMmcmVxdWVzdD1HZXRGZWF0dXJlJiR7dmVyc2lvbn0mJHtmZWF0dXJlVHlwZXN9JmA7XHJcbiAgZ2V0RmVhdHVyZSArPSBgJHtvdXRwdXRGb3JtYXR9JiR7c3JzfSYke2NudH0mJHtwcm9wZXJ0eU5hbWV9JiR7ZWZmZWN0aXZlU3RhcnRJbmRleH1gO1xyXG5cclxuICBsZXQgZ2V0cHJvcGVydHl2YWx1ZSA9IGAke3VybH0/c2VydmljZT1XRlMmcmVxdWVzdD1HZXRQcm9wZXJ0eVZhbHVlJnZlcnNpb249JHt2ZXJzaW9uV2ZzMjAwfSYke2ZlYXR1cmVUeXBlc30mYDtcclxuICBnZXRwcm9wZXJ0eXZhbHVlICs9IGAmJHtjbnR9JiR7dmFsdWVSZWZlcmVuY2V9YDtcclxuXHJcbiAgcmV0dXJuIFtcclxuICAgIHsgbmFtZTogJ291dHB1dGZvcm1hdCcsIHZhbHVlOiBvdXRwdXRGb3JtYXQgfSxcclxuICAgIHsgbmFtZTogJ3ZlcnNpb24nLCB2YWx1ZTogdmVyc2lvbiB9LFxyXG4gICAgeyBuYW1lOiAndHlwZW5hbWUnLCB2YWx1ZTogZmVhdHVyZVR5cGVzIH0sXHJcbiAgICB7IG5hbWU6ICdjb3VudCcsIHZhbHVlOiBjbnQgfSxcclxuICAgIHsgbmFtZTogJ3Nyc25hbWUnLCB2YWx1ZTogc3JzIH0sXHJcbiAgICB7IG5hbWU6ICdwcm9wZXJ0eW5hbWUnLCB2YWx1ZTogcHJvcGVydHlOYW1lIH0sXHJcbiAgICB7IG5hbWU6ICd2YWx1ZXJlZmVyZW5jZScsIHZhbHVlOiB2YWx1ZVJlZmVyZW5jZSB9LFxyXG4gICAgeyBuYW1lOiAnZ2V0Y2FwYWJpbGl0aWVzJywgdmFsdWU6IGdldENhcGFiaWxpdGllcy5yZXBsYWNlKC8mJi9nLCAnJicpIH0sXHJcbiAgICB7IG5hbWU6ICdnZXRmZWF0dXJlJywgdmFsdWU6IGdldEZlYXR1cmUucmVwbGFjZSgvJiYvZywgJyYnKSB9LFxyXG4gICAgeyBuYW1lOiAnZ2V0cHJvcGVydHl2YWx1ZScsIHZhbHVlOiBnZXRwcm9wZXJ0eXZhbHVlLnJlcGxhY2UoLyYmL2csICcmJykgfVxyXG4gIF07XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBWYWxpZGF0ZS9Nb2RpZnkgbGF5ZXIncyB3ZnMgb3B0aW9ucyBiYXNlZCBvbiA6XHJcbiAqIDEtIGFuIE9wZW5sYXllcnMncyBpc3N1ZSB3aXRoIEdNTCBwcm92aWRlZCBmcm9tIFdGUy4gUmVmZXIgdG9cclxuICogaHR0cHM6Ly9naXRodWIuY29tL29wZW5sYXllcnMvb3BlbmxheWVycy9wdWxsLzY0MDBcclxuICogMi0gU2V0IGRlZmF1bHQgdmFsdWVzIGZvciBvcHRpb25hbHMgcGFyYW1ldGVycy5cclxuICogQHBhcmFtIHdmc0RhdGFTb3VyY2VPcHRpb25zICBXRlNEYXRhU291cmNlT3B0aW9ucyBUaGUgY29tbW9uIHdmcyBkYXRhc291cmNlIG9wdGlvbnMgaW50ZXJmYWNlXHJcbiAqIEByZXR1cm5zIEFuIGFycmF5IGFycmF5IG9mIHtuYW1lOiAnJywgdmFsdWU6ICcnfSBvZiBwcmVkZWZpbmVkIHF1ZXJ5IHBhcmFtcy5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBjaGVja1dmc1BhcmFtcyh3ZnNEYXRhU291cmNlT3B0aW9ucywgc3JjVHlwZT86IHN0cmluZykge1xyXG4gIGlmIChzcmNUeXBlICYmIHNyY1R5cGUgPT09ICd3ZnMnKSB7XHJcbiAgICAvLyByZWFzc2lnbmF0aW9uIG9mIHBhcmFtcyB0byBwYXJhbXNXRlMgYW5kIHVybCB0byB1cmxXRlMgdG8gaGF2ZSBhIGNvbW1vbiBpbnRlcmZhY2Ugd2l0aCB3bXMtd2ZzIGRhdGFzb3VyY2VzXHJcbiAgICB3ZnNEYXRhU291cmNlT3B0aW9ucy5wYXJhbXNXRlMgPSB3ZnNEYXRhU291cmNlT3B0aW9ucy5wYXJhbXM7XHJcbiAgfVxyXG5cclxuICBjb25zdCBwYXJhbXNXRlMgPSB3ZnNEYXRhU291cmNlT3B0aW9ucy5wYXJhbXNXRlM7XHJcbiAgd2ZzRGF0YVNvdXJjZU9wdGlvbnMudXJsV2ZzID1cclxuICAgIHdmc0RhdGFTb3VyY2VPcHRpb25zLnVybFdmcyB8fCB3ZnNEYXRhU291cmNlT3B0aW9ucy51cmw7XHJcblxyXG4gIHBhcmFtc1dGUy52ZXJzaW9uID0gcGFyYW1zV0ZTLnZlcnNpb24gfHwgZGVmYXVsdFdmc1ZlcnNpb247XHJcbiAgcGFyYW1zV0ZTLmZpZWxkTmFtZUdlb21ldHJ5ID1cclxuICAgIHBhcmFtc1dGUy5maWVsZE5hbWVHZW9tZXRyeSB8fCBkZWZhdWx0RmllbGROYW1lR2VvbWV0cnk7XHJcbiAgcGFyYW1zV0ZTLm1heEZlYXR1cmVzID0gcGFyYW1zV0ZTLm1heEZlYXR1cmVzIHx8IGRlZmF1bHRNYXhGZWF0dXJlcztcclxuXHJcbiAgbGV0IG91dHB1dEZvcm1hdDtcclxuICBpZiAocGFyYW1zV0ZTLm91dHB1dEZvcm1hdCkge1xyXG4gICAgb3V0cHV0Rm9ybWF0ID0gcGFyYW1zV0ZTLm91dHB1dEZvcm1hdDtcclxuICB9XHJcblxyXG4gIGlmIChnbWxSZWdleC50ZXN0KG91dHB1dEZvcm1hdCkgfHwgIW91dHB1dEZvcm1hdCkge1xyXG4gICAgcGFyYW1zV0ZTLnZlcnNpb24gPSAnMS4xLjAnO1xyXG4gIH1cclxuICByZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgd2ZzRGF0YVNvdXJjZU9wdGlvbnMpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0Rm9ybWF0RnJvbU9wdGlvbnMoXHJcbiAgb3B0aW9uczogV0ZTRGF0YVNvdXJjZU9wdGlvbnMgfCBXTVNEYXRhU291cmNlT3B0aW9uc1xyXG4pIHtcclxuICBjb25zdCB3ZnNPcHRpb25zID0gb3B0aW9ucyBhcyBXRlNEYXRhU291cmNlT3B0aW9ucztcclxuXHJcbiAgbGV0IG9sRm9ybWF0Q2xzO1xyXG4gIGNvbnN0IG91dHB1dEZvcm1hdCA9IHdmc09wdGlvbnMucGFyYW1zV0ZTLm91dHB1dEZvcm1hdFxyXG4gICAgPyB3ZnNPcHRpb25zLnBhcmFtc1dGUy5vdXRwdXRGb3JtYXRcclxuICAgIDogdW5kZWZpbmVkO1xyXG5cclxuICBpZiAoIW91dHB1dEZvcm1hdCkge1xyXG4gICAgb2xGb3JtYXRDbHMgPSBPbEZvcm1hdC5XRlM7XHJcbiAgICByZXR1cm4gbmV3IG9sRm9ybWF0Q2xzKHdmc09wdGlvbnMuZm9ybWF0T3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuICBpZiAoT2xGb3JtYXRbb3V0cHV0Rm9ybWF0XSkge1xyXG4gICAgb2xGb3JtYXRDbHMgPSBPbEZvcm1hdFtvdXRwdXRGb3JtYXRdO1xyXG4gICAgcmV0dXJuIG5ldyBvbEZvcm1hdENscyh3ZnNPcHRpb25zLmZvcm1hdE9wdGlvbnMpO1xyXG4gIH0gZWxzZSBpZiAob3V0cHV0Rm9ybWF0LnRvTG93ZXJDYXNlKCkubWF0Y2goJ2dtbDInKSkge1xyXG4gICAgb2xGb3JtYXRDbHMgPSBPbEZvcm1hdC5XRlM7XHJcbiAgICByZXR1cm4gbmV3IG9sRm9ybWF0Q2xzKHtcclxuICAgICAgLi4ud2ZzT3B0aW9ucy5mb3JtYXRPcHRpb25zLFxyXG4gICAgICAuLi57IGdtbEZvcm1hdDogb2xGb3JtYXRHTUwyIH1cclxuICAgIH0pO1xyXG4gIH0gZWxzZSBpZiAob3V0cHV0Rm9ybWF0LnRvTG93ZXJDYXNlKCkubWF0Y2goJ2dtbDMyJykpIHtcclxuICAgIG9sRm9ybWF0Q2xzID0gT2xGb3JtYXQuV0ZTO1xyXG4gICAgcmV0dXJuIG5ldyBvbEZvcm1hdENscyh7XHJcbiAgICAgIC4uLndmc09wdGlvbnMuZm9ybWF0T3B0aW9ucyxcclxuICAgICAgLi4ueyBnbWxGb3JtYXQ6IG9sRm9ybWF0R01MMzIgfVxyXG4gICAgfSk7XHJcbiAgfSBlbHNlIGlmIChvdXRwdXRGb3JtYXQudG9Mb3dlckNhc2UoKS5tYXRjaCgnZ21sMycpKSB7XHJcbiAgICBvbEZvcm1hdENscyA9IE9sRm9ybWF0LldGUztcclxuICAgIHJldHVybiBuZXcgb2xGb3JtYXRDbHMoe1xyXG4gICAgICAuLi53ZnNPcHRpb25zLmZvcm1hdE9wdGlvbnMsXHJcbiAgICAgIC4uLnsgZ21sRm9ybWF0OiBvbEZvcm1hdEdNTDMgfVxyXG4gICAgfSk7XHJcbiAgfSBlbHNlIGlmIChvdXRwdXRGb3JtYXQudG9Mb3dlckNhc2UoKS5tYXRjaCgndG9wb2pzb24nKSkge1xyXG4gICAgb2xGb3JtYXRDbHMgPSBPbEZvcm1hdC5Ub3BvSlNPTjtcclxuICAgIHJldHVybiBuZXcgb2xGb3JtYXRDbHMod2ZzT3B0aW9ucy5mb3JtYXRPcHRpb25zKTtcclxuICB9IGVsc2UgaWYgKG91dHB1dEZvcm1hdC50b0xvd2VyQ2FzZSgpLm1hdGNoKCdnZW9qc29uJykpIHtcclxuICAgIG9sRm9ybWF0Q2xzID0gT2xGb3JtYXQuR2VvSlNPTjtcclxuICAgIHJldHVybiBuZXcgb2xGb3JtYXRDbHMod2ZzT3B0aW9ucy5mb3JtYXRPcHRpb25zKTtcclxuICB9IGVsc2UgaWYgKG91dHB1dEZvcm1hdC50b0xvd2VyQ2FzZSgpLm1hdGNoKCdlc3JpanNvbicpKSB7XHJcbiAgICBvbEZvcm1hdENscyA9IE9sRm9ybWF0LkVzcmlKU09OO1xyXG4gICAgcmV0dXJuIG5ldyBvbEZvcm1hdENscyh3ZnNPcHRpb25zLmZvcm1hdE9wdGlvbnMpO1xyXG4gIH0gZWxzZSBpZiAob3V0cHV0Rm9ybWF0LnRvTG93ZXJDYXNlKCkubWF0Y2goJ2pzb24nKSkge1xyXG4gICAgb2xGb3JtYXRDbHMgPSBPbEZvcm1hdC5HZW9KU09OO1xyXG4gICAgcmV0dXJuIG5ldyBvbEZvcm1hdENscyh3ZnNPcHRpb25zLmZvcm1hdE9wdGlvbnMpO1xyXG4gIH0gZWxzZSBpZiAob3V0cHV0Rm9ybWF0LnRvTG93ZXJDYXNlKCkubWF0Y2goJ2dweCcpKSB7XHJcbiAgICBvbEZvcm1hdENscyA9IE9sRm9ybWF0LkdQWDtcclxuICAgIHJldHVybiBuZXcgb2xGb3JtYXRDbHMod2ZzT3B0aW9ucy5mb3JtYXRPcHRpb25zKTtcclxuICB9IGVsc2UgaWYgKG91dHB1dEZvcm1hdC50b0xvd2VyQ2FzZSgpLm1hdGNoKCdXS1QnKSkge1xyXG4gICAgb2xGb3JtYXRDbHMgPSBPbEZvcm1hdC5XS1Q7XHJcbiAgICByZXR1cm4gbmV3IG9sRm9ybWF0Q2xzKHdmc09wdGlvbnMuZm9ybWF0T3B0aW9ucyk7XHJcbiAgfSBlbHNlIGlmIChvdXRwdXRGb3JtYXQudG9Mb3dlckNhc2UoKS5tYXRjaCgnb3NteG1sJykpIHtcclxuICAgIG9sRm9ybWF0Q2xzID0gb2xGb3JtYXRPU01YTUw7XHJcbiAgICByZXR1cm4gbmV3IG9sRm9ybWF0Q2xzKHdmc09wdGlvbnMuZm9ybWF0T3B0aW9ucyk7XHJcbiAgfSBlbHNlIGlmIChvdXRwdXRGb3JtYXQudG9Mb3dlckNhc2UoKS5tYXRjaCgna21sJykpIHtcclxuICAgIG9sRm9ybWF0Q2xzID0gT2xGb3JtYXQuS01MO1xyXG4gICAgcmV0dXJuIG5ldyBvbEZvcm1hdENscyh3ZnNPcHRpb25zLmZvcm1hdE9wdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIG5ldyBvbEZvcm1hdENscygpO1xyXG59XHJcbiJdfQ==
222
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid21zLXdmcy51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2RhdGFzb3VyY2Uvc2hhcmVkL2RhdGFzb3VyY2VzL3dtcy13ZnMudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxLQUFLLFFBQVEsTUFBTSxXQUFXLENBQUM7QUFDdEMsT0FBTyxZQUFZLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUMsT0FBTyxZQUFZLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUMsT0FBTyxhQUFhLE1BQU0saUJBQWlCLENBQUM7QUFDNUMsT0FBTyxjQUFjLE1BQU0sa0JBQWtCLENBQUM7QUFHOUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBS3BFLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxXQUFXLENBQUM7QUFDdkMsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxDQUFDO0FBQ3ZDLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLE9BQU8sQ0FBQztBQUN6QyxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxVQUFVLENBQUM7QUFDbkQsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHLElBQUksTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7QUFDdEQsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLElBQUksTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7QUFFeEQ7Ozs7Ozs7R0FPRztBQUNILE1BQU0sVUFBVSxRQUFRLENBQ3RCLE9BQTZCLEVBQzdCLE1BQWMsRUFDZCxJQUFrQixFQUNsQixVQUE2QixFQUM3QixXQUFxQjtJQUVyQixNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDO0lBQ3BDLE1BQU0saUJBQWlCLEdBQUcsb0JBQW9CLENBQzVDLE9BQU8sRUFDUCxTQUFTLEVBQ1QsT0FBTyxDQUFDLFNBQVMsQ0FBQyxP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O1FBQzdCLE9BQU8sSUFBSSxXQUFXLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ25ELENBQUM7U0FBTSxJQUFJLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUNuRCxXQUFXLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQztRQUMzQixPQUFPLElBQUksV0FBVyxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQsT0FBTyxJQUFJLFdBQVcsRUFBRSxDQUFDO0FBQzNCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFeHRlbnQgfSBmcm9tICdvbC9leHRlbnQnO1xyXG5pbXBvcnQgKiBhcyBPbEZvcm1hdCBmcm9tICdvbC9mb3JtYXQnO1xyXG5pbXBvcnQgb2xGb3JtYXRHTUwyIGZyb20gJ29sL2Zvcm1hdC9HTUwyJztcclxuaW1wb3J0IG9sRm9ybWF0R01MMyBmcm9tICdvbC9mb3JtYXQvR01MMyc7XHJcbmltcG9ydCBvbEZvcm1hdEdNTDMyIGZyb20gJ29sL2Zvcm1hdC9HTUwzMic7XHJcbmltcG9ydCBvbEZvcm1hdE9TTVhNTCBmcm9tICdvbC9mb3JtYXQvT1NNWE1MJztcclxuaW1wb3J0IG9sUHJvamVjdGlvbiBmcm9tICdvbC9wcm9qL1Byb2plY3Rpb24nO1xyXG5cclxuaW1wb3J0IHsgT2djRmlsdGVyV3JpdGVyIH0gZnJvbSAnLi4vLi4vLi4vZmlsdGVyL3NoYXJlZC9vZ2MtZmlsdGVyJztcclxuaW1wb3J0IHsgT2djRmlsdGVyc09wdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9maWx0ZXIvc2hhcmVkL29nYy1maWx0ZXIuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgV0ZTRGF0YVNvdXJjZU9wdGlvbnMgfSBmcm9tICcuL3dmcy1kYXRhc291cmNlLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IFdNU0RhdGFTb3VyY2VPcHRpb25zIH0gZnJvbSAnLi93bXMtZGF0YXNvdXJjZS5pbnRlcmZhY2UnO1xyXG5cclxuZXhwb3J0IGNvbnN0IGRlZmF1bHRFcHNnID0gJ0VQU0c6Mzg1Nyc7XHJcbmV4cG9ydCBjb25zdCBkZWZhdWx0TWF4RmVhdHVyZXMgPSA1MDAwO1xyXG5leHBvcnQgY29uc3QgZGVmYXVsdFdmc1ZlcnNpb24gPSAnMi4wLjAnO1xyXG5leHBvcnQgY29uc3QgZGVmYXVsdEZpZWxkTmFtZUdlb21ldHJ5ID0gJ2dlb21ldHJ5JztcclxuZXhwb3J0IGNvbnN0IGdtbFJlZ2V4ID0gbmV3IFJlZ0V4cCgvKC4qKT9nbWwoLiopPy9naSk7XHJcbmV4cG9ydCBjb25zdCBqc29uUmVnZXggPSBuZXcgUmVnRXhwKC8oLiopP2pzb24oLiopPy9naSk7XHJcblxyXG4vKipcclxuICogVGhpcyBtZXRob2QgYnVpbGQgdGhlIFdGUyBVUkwgYmFzZWQgb24gdGhlIGxheWVyIHByb3BlcnR5LlxyXG4gKiBAcGFyYW0gb3B0aW9ucyAgV0ZTRGF0YVNvdXJjZU9wdGlvbnMgVGhlIGNvbW1vbiB3ZnMgZGF0YXNvdXJjZSBvcHRpb25zIGludGVyZmFjZVxyXG4gKiBAcGFyYW0gZXh0ZW50ICBBbiBleHRlbnQgbGlrZSBhcnJheSBbbnVtYmVyLCBudW1iZXIsIG51bWJlciwgbnVtYmVyXVxyXG4gKiBAcGFyYW0gcHJvaiAgb2xQcm9qZWN0aW9uXHJcbiAqIEBwYXJhbSBvZ2NGaWx0ZXJzICBPZ2NGaWx0ZXJzT3B0aW9uc1xyXG4gKiBAcmV0dXJucyBBIHN0cmluZyByZXByZXNlbnRpbmcgdGhlIGRhdGFzb3VyY2Ugb3B0aW9ucywgYmFzZWQgb24gZmlsdGVyIGFuZCB2aWV3c1xyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkVXJsKFxyXG4gIG9wdGlvbnM6IFdGU0RhdGFTb3VyY2VPcHRpb25zLFxyXG4gIGV4dGVudDogRXh0ZW50LFxyXG4gIHByb2o6IG9sUHJvamVjdGlvbixcclxuICBvZ2NGaWx0ZXJzOiBPZ2NGaWx0ZXJzT3B0aW9ucyxcclxuICByYW5kb21QYXJhbT86IGJvb2xlYW5cclxuKTogc3RyaW5nIHtcclxuICBjb25zdCBwYXJhbXNXRlMgPSBvcHRpb25zLnBhcmFtc1dGUztcclxuICBjb25zdCBxdWVyeVN0cmluZ1ZhbHVlcyA9IGZvcm1hdFdGU1F1ZXJ5U3RyaW5nKFxyXG4gICAgb3B0aW9ucyxcclxuICAgIHVuZGVmaW5lZCxcclxuICAgIG9wdGlvbnMucGFyYW1zV0ZTLnNyc05hbWVcclxuICApO1xyXG4gIGxldCBpZ29GaWx0ZXJzO1xyXG4gIGlmIChvZ2NGaWx0ZXJzPy5lbmFibGVkKSB7XHJcbiAgICBpZ29GaWx0ZXJzID0gb2djRmlsdGVycz8uZmlsdGVycztcclxuICB9XHJcbiAgY29uc3Qgb2djRmlsdGVyV3JpdGVyID0gbmV3IE9nY0ZpbHRlcldyaXRlcigpO1xyXG4gIGNvbnN0IGZpbHRlck9yQm94ID0gb2djRmlsdGVyV3JpdGVyLmJ1aWxkRmlsdGVyKFxyXG4gICAgaWdvRmlsdGVycyxcclxuICAgIGV4dGVudCxcclxuICAgIHByb2osXHJcbiAgICBvZ2NGaWx0ZXJzPy5nZW9tZXRyeU5hbWUsXHJcbiAgICBvcHRpb25zXHJcbiAgKTtcclxuICBsZXQgZmlsdGVyT3JQdXNoID0gb2djRmlsdGVyV3JpdGVyLmhhbmRsZU9nY0ZpbHRlcnNBcHBsaWVkVmFsdWUoXHJcbiAgICBvcHRpb25zLFxyXG4gICAgb2djRmlsdGVycz8uZ2VvbWV0cnlOYW1lLFxyXG4gICAgZXh0ZW50LFxyXG4gICAgcHJvalxyXG4gICk7XHJcblxyXG4gIGxldCBwcmVmaXggPSAnZmlsdGVyJztcclxuICBpZiAoIWZpbHRlck9yUHVzaCkge1xyXG4gICAgcHJlZml4ID0gJ2Jib3gnO1xyXG4gICAgZmlsdGVyT3JQdXNoID0gZXh0ZW50LmpvaW4oJywnKSArICcsJyArIHByb2ouZ2V0Q29kZSgpO1xyXG4gIH1cclxuXHJcbiAgcGFyYW1zV0ZTLnhtbEZpbHRlciA9IG9nY0ZpbHRlcnM/LmFkdmFuY2VkT2djRmlsdGVyc1xyXG4gICAgPyBmaWx0ZXJPckJveFxyXG4gICAgOiBgJHtwcmVmaXh9PSR7ZmlsdGVyT3JQdXNofWA7XHJcbiAgbGV0IGJhc2VVcmwgPSBxdWVyeVN0cmluZ1ZhbHVlcy5maW5kKChmKSA9PiBmLm5hbWUgPT09ICdnZXRmZWF0dXJlJykudmFsdWU7XHJcbiAgY29uc3QgcGF0dGVybkZpbHRlciA9IC8oZmlsdGVyfGJib3gpPS4qL2dpO1xyXG4gIGJhc2VVcmwgPSBwYXR0ZXJuRmlsdGVyLnRlc3QocGFyYW1zV0ZTLnhtbEZpbHRlcilcclxuICAgID8gYCR7YmFzZVVybH0mJHtwYXJhbXNXRlMueG1sRmlsdGVyfWBcclxuICAgIDogYmFzZVVybDtcclxuICBvcHRpb25zLmRvd25sb2FkID0gT2JqZWN0LmFzc2lnbih7fSwgb3B0aW9ucy5kb3dubG9hZCwge1xyXG4gICAgZHluYW1pY1VybDogYmFzZVVybFxyXG4gIH0pO1xyXG4gIGlmIChyYW5kb21QYXJhbSkge1xyXG4gICAgYmFzZVVybCArPSBgJCZfdCR7bmV3IERhdGUoKS5nZXRUaW1lKCl9YDtcclxuICB9XHJcbiAgcmV0dXJuIGJhc2VVcmwucmVwbGFjZSgvJiYvZywgJyYnKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFRoaXMgbWV0aG9kIGJ1aWxkL3N0YW5kYXJkaXplIFdGUyBjYWxsIHF1ZXJ5IHBhcmFtcyBiYXNlZCBvbiB0aGUgbGF5ZXIgcHJvcGVydHkuXHJcbiAqIEBwYXJhbSB3ZnNEYXRhU291cmNlT3B0aW9ucyAgV0ZTRGF0YVNvdXJjZU9wdGlvbnMgVGhlIGNvbW1vbiB3ZnMgZGF0YXNvdXJjZSBvcHRpb25zIGludGVyZmFjZVxyXG4gKiBAcGFyYW0gY291bnQgIE51bWJlcjogVXNlZCB0byBjb250cm9sIHRoZSBudW1iZXIgb2YgZmVhdHVyZS4gVXNlZCB0byBieXBhc3Mgd2hlIHdmcyBkYXRhc291cmNlIG9wdGlvbnMgaW50ZXJmYWNlIChtYXhGZWF0dXJlcylcclxuICogQHBhcmFtIGVwc2cgIFN0cmluZzogVXNlZCB0byBjb250cm9sIHRoZSBFUFNHIGNvZGUgKGVzOiAnRVBTRzM4NTcnKS4gVXNlZCB0byBieXBhc3Mgd2hlIHdmcyBkYXRhc291cmNlIG9wdGlvbnMgaW50ZXJmYWNlIChzcnNOYW1lKVxyXG4gKiBAcGFyYW0gcHJvcGVydGllcyAgU3RyaW5nOiBVc2VkIHRvIGNvbnRyb2wgdGhlIHF1ZXJpZWQgZmllbGRzICAoV0ZTIHNlcnZpY2UpLlxyXG4gKiBAcmV0dXJucyBBbiBhcnJheSBhcnJheSBvZiB7bmFtZTogJycsIHZhbHVlOiAnJ30gb2YgcHJlZGVmaW5lZCBxdWVyeSBwYXJhbXMuXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0V0ZTUXVlcnlTdHJpbmcoXHJcbiAgZGF0YVNvdXJjZU9wdGlvbnM6IFdGU0RhdGFTb3VyY2VPcHRpb25zIHwgV01TRGF0YVNvdXJjZU9wdGlvbnMsXHJcbiAgY291bnQ/OiBudW1iZXIsXHJcbiAgZXBzZz86IHN0cmluZyxcclxuICBwcm9wZXJ0aWVzPzogc3RyaW5nLFxyXG4gIHN0YXJ0SW5kZXg6IG51bWJlciA9IDAsXHJcbiAgZm9yY2VEZWZhdWx0T3V0cHV0Rm9ybWF0OiBib29sZWFuID0gZmFsc2VcclxuKTogeyBuYW1lOiBzdHJpbmc7IHZhbHVlOiBzdHJpbmcgfVtdIHtcclxuICBjb25zdCB2ZXJzaW9uV2ZzMjAwID0gJzIuMC4wJzsgLy8gbm90IHRoZSBzYW1lIHVzYWdlIGFzIGRlZmF1bHRXZnNWZXJzaW9uLlxyXG4gIGNvbnN0IHVybCA9IGRhdGFTb3VyY2VPcHRpb25zLnVybFdmcztcclxuICBjb25zdCBwYXJhbXNXRlMgPSBkYXRhU291cmNlT3B0aW9ucy5wYXJhbXNXRlM7XHJcbiAgY29uc3QgZWZmZWN0aXZlQ291bnQgPSBjb3VudCB8fCBkZWZhdWx0TWF4RmVhdHVyZXM7XHJcbiAgY29uc3QgZWZmZWN0aXZlU3RhcnRJbmRleCA9XHJcbiAgICBwYXJhbXNXRlMudmVyc2lvbiA9PT0gdmVyc2lvbldmczIwMCA/IGBzdGFydEluZGV4PSR7c3RhcnRJbmRleH1gIDogJyc7XHJcbiAgY29uc3QgZXBzZ0NvZGUgPSBlcHNnIHx8IGRlZmF1bHRFcHNnO1xyXG4gIGxldCBvdXRwdXRGb3JtYXQgPSBwYXJhbXNXRlMub3V0cHV0Rm9ybWF0XHJcbiAgICA/IGBvdXRwdXRGb3JtYXQ9JHtwYXJhbXNXRlMub3V0cHV0Rm9ybWF0fWBcclxuICAgIDogJyc7XHJcbiAgbGV0IHZlcnNpb24gPSBwYXJhbXNXRlMudmVyc2lvblxyXG4gICAgPyBgdmVyc2lvbj0ke3BhcmFtc1dGUy52ZXJzaW9ufWBcclxuICAgIDogYHZlcnNpb249JHtkZWZhdWx0V2ZzVmVyc2lvbn1gO1xyXG4gIGNvbnN0IHBhcmFtVHlwZW5hbWUgPVxyXG4gICAgcGFyYW1zV0ZTLnZlcnNpb24gPT09IHZlcnNpb25XZnMyMDAgPyAndHlwZW5hbWVzJyA6ICd0eXBlbmFtZSc7XHJcbiAgY29uc3QgZmVhdHVyZVR5cGVzID0gYCR7cGFyYW1UeXBlbmFtZX09JHtwYXJhbXNXRlMuZmVhdHVyZVR5cGVzfWA7XHJcbiAgY29uc3QgcGFyYW1NYXhGZWF0dXJlcyA9XHJcbiAgICBwYXJhbXNXRlMudmVyc2lvbiA9PT0gdmVyc2lvbldmczIwMCA/ICdjb3VudCcgOiAnbWF4RmVhdHVyZXMnO1xyXG4gIGxldCBjbnQgPSBjb3VudFxyXG4gICAgPyBgJHtwYXJhbU1heEZlYXR1cmVzfT0ke2VmZmVjdGl2ZUNvdW50fWBcclxuICAgIDogcGFyYW1zV0ZTLm1heEZlYXR1cmVzXHJcbiAgICAgID8gYCR7cGFyYW1NYXhGZWF0dXJlc309JHtwYXJhbXNXRlMubWF4RmVhdHVyZXN9YFxyXG4gICAgICA6IGAke3BhcmFtTWF4RmVhdHVyZXN9PSR7ZWZmZWN0aXZlQ291bnR9YDtcclxuICBpZiAoZm9yY2VEZWZhdWx0T3V0cHV0Rm9ybWF0KSB7XHJcbiAgICBvdXRwdXRGb3JtYXQgPSAnJztcclxuICAgIHZlcnNpb24gPSAndmVyc2lvbj0xLjEuMCc7XHJcbiAgICBjbnQgPSBjbnQucmVwbGFjZSgnY291bnQnLCAnbWF4RmVhdHVyZXMnKTtcclxuICB9XHJcblxyXG4gIGNvbnN0IHNycyA9IGVwc2dcclxuICAgID8gYHNyc25hbWU9JHtlcHNnQ29kZX1gXHJcbiAgICA6IHBhcmFtc1dGUy5zcnNOYW1lXHJcbiAgICAgID8gJ3Nyc25hbWU9JyArIHBhcmFtc1dGUy5zcnNOYW1lXHJcbiAgICAgIDogYHNyc25hbWU9JHtlcHNnQ29kZX1gO1xyXG5cclxuICBsZXQgcHJvcGVydHlOYW1lID0gJyc7XHJcbiAgbGV0IHZhbHVlUmVmZXJlbmNlID0gJyc7XHJcbiAgaWYgKHByb3BlcnRpZXMpIHtcclxuICAgIHByb3BlcnR5TmFtZSA9IGBwcm9wZXJ0eU5hbWU9JHtwcm9wZXJ0aWVzfWA7XHJcbiAgICB2YWx1ZVJlZmVyZW5jZSA9IGB2YWx1ZVJlZmVyZW5jZT0ke3Byb3BlcnRpZXN9YDtcclxuICB9XHJcbiAgY29uc3Qgc291cmNlRmllbGRzID0gZGF0YVNvdXJjZU9wdGlvbnMuc291cmNlRmllbGRzO1xyXG4gIGlmICghcHJvcGVydHlOYW1lICYmIHNvdXJjZUZpZWxkcyAmJiBzb3VyY2VGaWVsZHMubGVuZ3RoID4gMCkge1xyXG4gICAgY29uc3QgZmllbGRzTmFtZXMgPSBbXTtcclxuICAgIGRhdGFTb3VyY2VPcHRpb25zLnNvdXJjZUZpZWxkcy5mb3JFYWNoKChzb3VyY2VmaWVsZCkgPT4ge1xyXG4gICAgICBmaWVsZHNOYW1lcy5wdXNoKHNvdXJjZWZpZWxkLm5hbWUpO1xyXG4gICAgfSk7XHJcbiAgICBwcm9wZXJ0eU5hbWUgPSBgcHJvcGVydHlOYW1lPSR7ZmllbGRzTmFtZXMuam9pbignLCcpfSwke1xyXG4gICAgICBwYXJhbXNXRlMuZmllbGROYW1lR2VvbWV0cnlcclxuICAgIH1gO1xyXG4gIH1cclxuXHJcbiAgY29uc3Qgc2VwYXJhdG9yID0gdXJsLmluZGV4T2YoJz8nKSA9PT0gLTEgPyAnPycgOiAnJic7XHJcbiAgY29uc3QgZ2V0Q2FwYWJpbGl0aWVzID0gYCR7dXJsfSR7c2VwYXJhdG9yfXNlcnZpY2U9V0ZTJnJlcXVlc3Q9R2V0Q2FwYWJpbGl0aWVzJiR7dmVyc2lvbn1gO1xyXG4gIGxldCBnZXRGZWF0dXJlID0gYCR7dXJsfSR7c2VwYXJhdG9yfXNlcnZpY2U9V0ZTJnJlcXVlc3Q9R2V0RmVhdHVyZSYke3ZlcnNpb259JiR7ZmVhdHVyZVR5cGVzfSZgO1xyXG4gIGdldEZlYXR1cmUgKz0gYCR7b3V0cHV0Rm9ybWF0fSYke3Nyc30mJHtjbnR9JiR7cHJvcGVydHlOYW1lfSYke2VmZmVjdGl2ZVN0YXJ0SW5kZXh9YDtcclxuXHJcbiAgbGV0IGdldHByb3BlcnR5dmFsdWUgPSBgJHt1cmx9P3NlcnZpY2U9V0ZTJnJlcXVlc3Q9R2V0UHJvcGVydHlWYWx1ZSZ2ZXJzaW9uPSR7dmVyc2lvbldmczIwMH0mJHtmZWF0dXJlVHlwZXN9JmA7XHJcbiAgZ2V0cHJvcGVydHl2YWx1ZSArPSBgJiR7Y250fSYke3ZhbHVlUmVmZXJlbmNlfWA7XHJcblxyXG4gIHJldHVybiBbXHJcbiAgICB7IG5hbWU6ICdvdXRwdXRmb3JtYXQnLCB2YWx1ZTogb3V0cHV0Rm9ybWF0IH0sXHJcbiAgICB7IG5hbWU6ICd2ZXJzaW9uJywgdmFsdWU6IHZlcnNpb24gfSxcclxuICAgIHsgbmFtZTogJ3R5cGVuYW1lJywgdmFsdWU6IGZlYXR1cmVUeXBlcyB9LFxyXG4gICAgeyBuYW1lOiAnY291bnQnLCB2YWx1ZTogY250IH0sXHJcbiAgICB7IG5hbWU6ICdzcnNuYW1lJywgdmFsdWU6IHNycyB9LFxyXG4gICAgeyBuYW1lOiAncHJvcGVydHluYW1lJywgdmFsdWU6IHByb3BlcnR5TmFtZSB9LFxyXG4gICAgeyBuYW1lOiAndmFsdWVyZWZlcmVuY2UnLCB2YWx1ZTogdmFsdWVSZWZlcmVuY2UgfSxcclxuICAgIHsgbmFtZTogJ2dldGNhcGFiaWxpdGllcycsIHZhbHVlOiBnZXRDYXBhYmlsaXRpZXMucmVwbGFjZSgvJiYvZywgJyYnKSB9LFxyXG4gICAgeyBuYW1lOiAnZ2V0ZmVhdHVyZScsIHZhbHVlOiBnZXRGZWF0dXJlLnJlcGxhY2UoLyYmL2csICcmJykgfSxcclxuICAgIHsgbmFtZTogJ2dldHByb3BlcnR5dmFsdWUnLCB2YWx1ZTogZ2V0cHJvcGVydHl2YWx1ZS5yZXBsYWNlKC8mJi9nLCAnJicpIH1cclxuICBdO1xyXG59XHJcblxyXG4vKipcclxuICogVmFsaWRhdGUvTW9kaWZ5IGxheWVyJ3Mgd2ZzIG9wdGlvbnMgYmFzZWQgb24gOlxyXG4gKiAxLSBhbiBPcGVubGF5ZXJzJ3MgaXNzdWUgd2l0aCBHTUwgcHJvdmlkZWQgZnJvbSBXRlMuIFJlZmVyIHRvXHJcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVubGF5ZXJzL29wZW5sYXllcnMvcHVsbC82NDAwXHJcbiAqIDItIFNldCBkZWZhdWx0IHZhbHVlcyBmb3Igb3B0aW9uYWxzIHBhcmFtZXRlcnMuXHJcbiAqIEBwYXJhbSB3ZnNEYXRhU291cmNlT3B0aW9ucyAgV0ZTRGF0YVNvdXJjZU9wdGlvbnMgVGhlIGNvbW1vbiB3ZnMgZGF0YXNvdXJjZSBvcHRpb25zIGludGVyZmFjZVxyXG4gKiBAcmV0dXJucyBBbiBhcnJheSBhcnJheSBvZiB7bmFtZTogJycsIHZhbHVlOiAnJ30gb2YgcHJlZGVmaW5lZCBxdWVyeSBwYXJhbXMuXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gY2hlY2tXZnNQYXJhbXMod2ZzRGF0YVNvdXJjZU9wdGlvbnMsIHNyY1R5cGU/OiBzdHJpbmcpIHtcclxuICBpZiAoc3JjVHlwZSAmJiBzcmNUeXBlID09PSAnd2ZzJykge1xyXG4gICAgLy8gcmVhc3NpZ25hdGlvbiBvZiBwYXJhbXMgdG8gcGFyYW1zV0ZTIGFuZCB1cmwgdG8gdXJsV0ZTIHRvIGhhdmUgYSBjb21tb24gaW50ZXJmYWNlIHdpdGggd21zLXdmcyBkYXRhc291cmNlc1xyXG4gICAgd2ZzRGF0YVNvdXJjZU9wdGlvbnMucGFyYW1zV0ZTID0gd2ZzRGF0YVNvdXJjZU9wdGlvbnMucGFyYW1zO1xyXG4gIH1cclxuXHJcbiAgY29uc3QgcGFyYW1zV0ZTID0gd2ZzRGF0YVNvdXJjZU9wdGlvbnMucGFyYW1zV0ZTO1xyXG4gIHdmc0RhdGFTb3VyY2VPcHRpb25zLnVybFdmcyA9XHJcbiAgICB3ZnNEYXRhU291cmNlT3B0aW9ucy51cmxXZnMgfHwgd2ZzRGF0YVNvdXJjZU9wdGlvbnMudXJsO1xyXG5cclxuICBwYXJhbXNXRlMudmVyc2lvbiA9IHBhcmFtc1dGUy52ZXJzaW9uIHx8IGRlZmF1bHRXZnNWZXJzaW9uO1xyXG4gIHBhcmFtc1dGUy5maWVsZE5hbWVHZW9tZXRyeSA9XHJcbiAgICBwYXJhbXNXRlMuZmllbGROYW1lR2VvbWV0cnkgfHwgZGVmYXVsdEZpZWxkTmFtZUdlb21ldHJ5O1xyXG4gIHBhcmFtc1dGUy5tYXhGZWF0dXJlcyA9IHBhcmFtc1dGUy5tYXhGZWF0dXJlcyB8fCBkZWZhdWx0TWF4RmVhdHVyZXM7XHJcblxyXG4gIGxldCBvdXRwdXRGb3JtYXQ7XHJcbiAgaWYgKHBhcmFtc1dGUy5vdXRwdXRGb3JtYXQpIHtcclxuICAgIG91dHB1dEZvcm1hdCA9IHBhcmFtc1dGUy5vdXRwdXRGb3JtYXQ7XHJcbiAgfVxyXG5cclxuICBpZiAoZ21sUmVnZXgudGVzdChvdXRwdXRGb3JtYXQpIHx8ICFvdXRwdXRGb3JtYXQpIHtcclxuICAgIHBhcmFtc1dGUy52ZXJzaW9uID0gJzEuMS4wJztcclxuICB9XHJcbiAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe30sIHdmc0RhdGFTb3VyY2VPcHRpb25zKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldEZvcm1hdEZyb21PcHRpb25zKFxyXG4gIG9wdGlvbnM6IFdGU0RhdGFTb3VyY2VPcHRpb25zIHwgV01TRGF0YVNvdXJjZU9wdGlvbnNcclxuKSB7XHJcbiAgY29uc3Qgd2ZzT3B0aW9ucyA9IG9wdGlvbnMgYXMgV0ZTRGF0YVNvdXJjZU9wdGlvbnM7XHJcblxyXG4gIGxldCBvbEZvcm1hdENscztcclxuICBjb25zdCBvdXRwdXRGb3JtYXQgPSB3ZnNPcHRpb25zLnBhcmFtc1dGUy5vdXRwdXRGb3JtYXRcclxuICAgID8gd2ZzT3B0aW9ucy5wYXJhbXNXRlMub3V0cHV0Rm9ybWF0XHJcbiAgICA6IHVuZGVmaW5lZDtcclxuXHJcbiAgaWYgKCFvdXRwdXRGb3JtYXQpIHtcclxuICAgIG9sRm9ybWF0Q2xzID0gT2xGb3JtYXQuV0ZTO1xyXG4gICAgcmV0dXJuIG5ldyBvbEZvcm1hdENscyh3ZnNPcHRpb25zLmZvcm1hdE9wdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgaWYgKE9sRm9ybWF0W291dHB1dEZvcm1hdF0pIHtcclxuICAgIG9sRm9ybWF0Q2xzID0gT2xGb3JtYXRbb3V0cHV0Rm9ybWF0XTtcclxuICAgIHJldHVybiBuZXcgb2xGb3JtYXRDbHMod2ZzT3B0aW9ucy5mb3JtYXRPcHRpb25zKTtcclxuICB9IGVsc2UgaWYgKG91dHB1dEZvcm1hdC50b0xvd2VyQ2FzZSgpLm1hdGNoKCdnbWwyJykpIHtcclxuICAgIG9sRm9ybWF0Q2xzID0gT2xGb3JtYXQuV0ZTO1xyXG4gICAgcmV0dXJuIG5ldyBvbEZvcm1hdENscyh7XHJcbiAgICAgIC4uLndmc09wdGlvbnMuZm9ybWF0T3B0aW9ucyxcclxuICAgICAgLi4ueyBnbWxGb3JtYXQ6IG9sRm9ybWF0R01MMiB9XHJcbiAgICB9KTtcclxuICB9IGVsc2UgaWYgKG91dHB1dEZvcm1hdC50b0xvd2VyQ2FzZSgpLm1hdGNoKCdnbWwzMicpKSB7XHJcbiAgICBvbEZvcm1hdENscyA9IE9sRm9ybWF0LldGUztcclxuICAgIHJldHVybiBuZXcgb2xGb3JtYXRDbHMoe1xyXG4gICAgICAuLi53ZnNPcHRpb25zLmZvcm1hdE9wdGlvbnMsXHJcbiAgICAgIC4uLnsgZ21sRm9ybWF0OiBvbEZvcm1hdEdNTDMyIH1cclxuICAgIH0pO1xyXG4gIH0gZWxzZSBpZiAob3V0cHV0Rm9ybWF0LnRvTG93ZXJDYXNlKCkubWF0Y2goJ2dtbDMnKSkge1xyXG4gICAgb2xGb3JtYXRDbHMgPSBPbEZvcm1hdC5XRlM7XHJcbiAgICByZXR1cm4gbmV3IG9sRm9ybWF0Q2xzKHtcclxuICAgICAgLi4ud2ZzT3B0aW9ucy5mb3JtYXRPcHRpb25zLFxyXG4gICAgICAuLi57IGdtbEZvcm1hdDogb2xGb3JtYXRHTUwzIH1cclxuICAgIH0pO1xyXG4gIH0gZWxzZSBpZiAob3V0cHV0Rm9ybWF0LnRvTG93ZXJDYXNlKCkubWF0Y2goJ3RvcG9qc29uJykpIHtcclxuICAgIG9sRm9ybWF0Q2xzID0gT2xGb3JtYXQuVG9wb0pTT047XHJcbiAgICByZXR1cm4gbmV3IG9sRm9ybWF0Q2xzKHdmc09wdGlvbnMuZm9ybWF0T3B0aW9ucyk7XHJcbiAgfSBlbHNlIGlmIChvdXRwdXRGb3JtYXQudG9Mb3dlckNhc2UoKS5tYXRjaCgnZ2VvanNvbicpKSB7XHJcbiAgICBvbEZvcm1hdENscyA9IE9sRm9ybWF0Lkdlb0pTT047XHJcbiAgICByZXR1cm4gbmV3IG9sRm9ybWF0Q2xzKHdmc09wdGlvbnMuZm9ybWF0T3B0aW9ucyk7XHJcbiAgfSBlbHNlIGlmIChvdXRwdXRGb3JtYXQudG9Mb3dlckNhc2UoKS5tYXRjaCgnZXNyaWpzb24nKSkge1xyXG4gICAgb2xGb3JtYXRDbHMgPSBPbEZvcm1hdC5Fc3JpSlNPTjtcclxuICAgIHJldHVybiBuZXcgb2xGb3JtYXRDbHMod2ZzT3B0aW9ucy5mb3JtYXRPcHRpb25zKTtcclxuICB9IGVsc2UgaWYgKG91dHB1dEZvcm1hdC50b0xvd2VyQ2FzZSgpLm1hdGNoKCdqc29uJykpIHtcclxuICAgIG9sRm9ybWF0Q2xzID0gT2xGb3JtYXQuR2VvSlNPTjtcclxuICAgIHJldHVybiBuZXcgb2xGb3JtYXRDbHMod2ZzT3B0aW9ucy5mb3JtYXRPcHRpb25zKTtcclxuICB9IGVsc2UgaWYgKG91dHB1dEZvcm1hdC50b0xvd2VyQ2FzZSgpLm1hdGNoKCdncHgnKSkge1xyXG4gICAgb2xGb3JtYXRDbHMgPSBPbEZvcm1hdC5HUFg7XHJcbiAgICByZXR1cm4gbmV3IG9sRm9ybWF0Q2xzKHdmc09wdGlvbnMuZm9ybWF0T3B0aW9ucyk7XHJcbiAgfSBlbHNlIGlmIChvdXRwdXRGb3JtYXQudG9Mb3dlckNhc2UoKS5tYXRjaCgnV0tUJykpIHtcclxuICAgIG9sRm9ybWF0Q2xzID0gT2xGb3JtYXQuV0tUO1xyXG4gICAgcmV0dXJuIG5ldyBvbEZvcm1hdENscyh3ZnNPcHRpb25zLmZvcm1hdE9wdGlvbnMpO1xyXG4gIH0gZWxzZSBpZiAob3V0cHV0Rm9ybWF0LnRvTG93ZXJDYXNlKCkubWF0Y2goJ29zbXhtbCcpKSB7XHJcbiAgICBvbEZvcm1hdENscyA9IG9sRm9ybWF0T1NNWE1MO1xyXG4gICAgcmV0dXJuIG5ldyBvbEZvcm1hdENscyh3ZnNPcHRpb25zLmZvcm1hdE9wdGlvbnMpO1xyXG4gIH0gZWxzZSBpZiAob3V0cHV0Rm9ybWF0LnRvTG93ZXJDYXNlKCkubWF0Y2goJ2ttbCcpKSB7XHJcbiAgICBvbEZvcm1hdENscyA9IE9sRm9ybWF0LktNTDtcclxuICAgIHJldHVybiBuZXcgb2xGb3JtYXRDbHMod2ZzT3B0aW9ucy5mb3JtYXRPcHRpb25zKTtcclxuICB9XHJcblxyXG4gIHJldHVybiBuZXcgb2xGb3JtYXRDbHMoKTtcclxufVxyXG4iXX0=
@@ -12,4 +12,4 @@ export function provideOptionsApi() {
12
12
  deps: [HttpClient, ConfigService]
13
13
  };
14
14
  }
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy1hcGkucHJvdmlkZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvZGF0YXNvdXJjZS9zaGFyZWQvb3B0aW9ucy9vcHRpb25zLWFwaS5wcm92aWRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRWxELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFM0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRW5ELE1BQU0sVUFBVSxpQkFBaUIsQ0FDL0IsSUFBZ0IsRUFDaEIsYUFBNEI7SUFFNUIsT0FBTyxJQUFJLGlCQUFpQixDQUFDLElBQUksRUFBRSxhQUFhLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7QUFDNUUsQ0FBQztBQUVELE1BQU0sVUFBVSxpQkFBaUI7SUFDL0IsT0FBTztRQUNMLE9BQU8sRUFBRSxjQUFjO1FBQ3ZCLFVBQVUsRUFBRSxpQkFBaUI7UUFDN0IsSUFBSSxFQUFFLENBQUMsVUFBVSxFQUFFLGFBQWEsQ0FBQztLQUNsQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5cbmltcG9ydCB7IENvbmZpZ1NlcnZpY2UgfSBmcm9tICdAaWdvMi9jb3JlJztcblxuaW1wb3J0IHsgT3B0aW9uc0FwaVNlcnZpY2UgfSBmcm9tICcuL29wdGlvbnMtYXBpLnNlcnZpY2UnO1xuaW1wb3J0IHsgT3B0aW9uc1NlcnZpY2UgfSBmcm9tICcuL29wdGlvbnMuc2VydmljZSc7XG5cbmV4cG9ydCBmdW5jdGlvbiBvcHRpb25zQXBpRmFjdG9yeShcbiAgaHR0cDogSHR0cENsaWVudCxcbiAgY29uZmlnU2VydmljZTogQ29uZmlnU2VydmljZVxuKSB7XG4gIHJldHVybiBuZXcgT3B0aW9uc0FwaVNlcnZpY2UoaHR0cCwgY29uZmlnU2VydmljZS5nZXRDb25maWcoJ29wdGlvbnNBcGknKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlT3B0aW9uc0FwaSgpIHtcbiAgcmV0dXJuIHtcbiAgICBwcm92aWRlOiBPcHRpb25zU2VydmljZSxcbiAgICB1c2VGYWN0b3J5OiBvcHRpb25zQXBpRmFjdG9yeSxcbiAgICBkZXBzOiBbSHR0cENsaWVudCwgQ29uZmlnU2VydmljZV1cbiAgfTtcbn1cbiJdfQ==
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy1hcGkucHJvdmlkZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvZGF0YXNvdXJjZS9zaGFyZWQvb3B0aW9ucy9vcHRpb25zLWFwaS5wcm92aWRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRWxELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFM0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRW5ELE1BQU0sVUFBVSxpQkFBaUIsQ0FDL0IsSUFBZ0IsRUFDaEIsYUFBNEI7SUFFNUIsT0FBTyxJQUFJLGlCQUFpQixDQUFDLElBQUksRUFBRSxhQUFhLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7QUFDNUUsQ0FBQztBQUVELE1BQU0sVUFBVSxpQkFBaUI7SUFDL0IsT0FBTztRQUNMLE9BQU8sRUFBRSxjQUFjO1FBQ3ZCLFVBQVUsRUFBRSxpQkFBaUI7UUFDN0IsSUFBSSxFQUFFLENBQUMsVUFBVSxFQUFFLGFBQWEsQ0FBQztLQUNsQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcblxyXG5pbXBvcnQgeyBDb25maWdTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBPcHRpb25zQXBpU2VydmljZSB9IGZyb20gJy4vb3B0aW9ucy1hcGkuc2VydmljZSc7XHJcbmltcG9ydCB7IE9wdGlvbnNTZXJ2aWNlIH0gZnJvbSAnLi9vcHRpb25zLnNlcnZpY2UnO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIG9wdGlvbnNBcGlGYWN0b3J5KFxyXG4gIGh0dHA6IEh0dHBDbGllbnQsXHJcbiAgY29uZmlnU2VydmljZTogQ29uZmlnU2VydmljZVxyXG4pIHtcclxuICByZXR1cm4gbmV3IE9wdGlvbnNBcGlTZXJ2aWNlKGh0dHAsIGNvbmZpZ1NlcnZpY2UuZ2V0Q29uZmlnKCdvcHRpb25zQXBpJykpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZU9wdGlvbnNBcGkoKSB7XHJcbiAgcmV0dXJuIHtcclxuICAgIHByb3ZpZGU6IE9wdGlvbnNTZXJ2aWNlLFxyXG4gICAgdXNlRmFjdG9yeTogb3B0aW9uc0FwaUZhY3RvcnksXHJcbiAgICBkZXBzOiBbSHR0cENsaWVudCwgQ29uZmlnU2VydmljZV1cclxuICB9O1xyXG59XHJcbiJdfQ==
@@ -70,16 +70,16 @@ export class OptionsApiService extends OptionsService {
70
70
  return res.sourceOptions;
71
71
  }));
72
72
  }
73
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OptionsApiService, deps: [{ token: i1.HttpClient }, { token: 'options' }], target: i0.ɵɵFactoryTarget.Injectable });
74
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OptionsApiService, providedIn: 'root' });
73
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: OptionsApiService, deps: [{ token: i1.HttpClient }, { token: 'options' }], target: i0.ɵɵFactoryTarget.Injectable });
74
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: OptionsApiService, providedIn: 'root' });
75
75
  }
76
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: OptionsApiService, decorators: [{
76
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: OptionsApiService, decorators: [{
77
77
  type: Injectable,
78
78
  args: [{
79
79
  providedIn: 'root'
80
80
  }]
81
- }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: undefined, decorators: [{
81
+ }], ctorParameters: () => [{ type: i1.HttpClient }, { type: undefined, decorators: [{
82
82
  type: Inject,
83
83
  args: ['options']
84
- }] }]; } });
85
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy1hcGkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2RhdGFzb3VyY2Uvc2hhcmVkL29wdGlvbnMvb3B0aW9ucy1hcGkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzlELE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5ELE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBU3JDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7O0FBS25ELE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxjQUFjO0lBS3pDO0lBSkYsTUFBTSxDQUFTO0lBQ2YsaUJBQWlCLENBQVU7SUFFbkMsWUFDVSxJQUFnQixFQUNMLFVBQTZCLEVBQUU7UUFFbEQsS0FBSyxFQUFFLENBQUM7UUFIQSxTQUFJLEdBQUosSUFBSSxDQUFZO1FBSXhCLElBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxpQkFBaUI7WUFDcEIsT0FBTyxDQUFDLGlCQUFpQixJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztJQUN4RCxDQUFDO0lBRUQsYUFBYSxDQUNYLFdBQWlDLEVBQ2pDLGtCQUEyQjtRQUUzQixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNoQixPQUFPLEVBQUUsQ0FBQyxFQUEwQixDQUFDLENBQUM7U0FDdkM7UUFDRCxJQUFJLE1BQU0sR0FBRyxJQUFJLFVBQVUsQ0FBQztZQUMxQixVQUFVLEVBQUU7Z0JBQ1YsSUFBSSxFQUFFLFdBQVcsQ0FBQyxJQUFJO2dCQUN0QixHQUFHLEVBQUUsV0FBVyxDQUFDLEdBQUc7Z0JBQ3BCLE1BQU0sRUFBRSxXQUFXLENBQUMsTUFBTSxDQUFDLE1BQU07YUFDbEM7U0FDRixDQUFDLENBQUM7UUFFSCxJQUFJLGtCQUFrQixJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUNoRCxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztTQUN2RDtRQUVELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDekMsTUFBTTtTQUNQLENBQUMsQ0FBQztRQUVILE9BQU8sT0FBTyxDQUFDLElBQUksQ0FDakIsR0FBRyxDQUNELENBQUMsR0FHQSxFQUFFLEVBQUU7WUFDSCxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRTtnQkFDOUIsT0FBTyxFQUEwQixDQUFDO2FBQ25DO1lBQ0QsSUFBSSxHQUFHLENBQUMsWUFBWSxFQUFFO2dCQUNwQixHQUFHLENBQUMsYUFBYSxDQUFDLHVCQUF1QixHQUFHLEdBQUcsQ0FBQyxZQUFZLENBQUM7YUFDOUQ7WUFDRCxPQUFPLEdBQUcsQ0FBQyxhQUFhLENBQUM7UUFDM0IsQ0FBQyxDQUNGLENBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRCxvQkFBb0IsQ0FDbEIsV0FHbUMsRUFDbkMsa0JBQTJCO1FBTTNCLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2hCLE9BQU8sRUFBRSxDQUFDLEVBQXNDLENBQUMsQ0FBQztTQUNuRDtRQUNELElBQUksTUFBTSxHQUFHLElBQUksVUFBVSxDQUFDO1lBQzFCLFVBQVUsRUFBRTtnQkFDVixJQUFJLEVBQUUsV0FBVyxDQUFDLElBQUk7Z0JBQ3RCLEdBQUcsRUFBRSxXQUFXLENBQUMsR0FBRztnQkFDcEIsTUFBTSxFQUFFLFdBQVcsQ0FBQyxLQUFLO2FBQzFCO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsSUFBSSxrQkFBa0IsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUU7WUFDaEQsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLGtCQUFrQixDQUFDLENBQUM7U0FDdkQ7UUFFRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ3pDLE1BQU07U0FDUCxDQUFDLENBQUM7UUFFSCxPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQ2pCLEdBQUcsQ0FDRCxDQUFDLEdBTUEsRUFBRSxFQUFFO1lBQ0gsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUU7Z0JBQzlCLE9BQU8sRUFHNEIsQ0FBQzthQUNyQztZQUNELElBQUksR0FBRyxDQUFDLFlBQVksRUFBRTtnQkFDcEIsR0FBRyxDQUFDLGFBQWEsQ0FBQyx1QkFBdUIsR0FBRyxHQUFHLENBQUMsWUFBWSxDQUFDO2FBQzlEO1lBQ0QsT0FBTyxHQUFHLENBQUMsYUFBYSxDQUFDO1FBQzNCLENBQUMsQ0FDRixDQUNGLENBQUM7SUFDSixDQUFDO3dHQTNHVSxpQkFBaUIsNENBTWxCLFNBQVM7NEdBTlIsaUJBQWlCLGNBRmhCLE1BQU07OzRGQUVQLGlCQUFpQjtrQkFIN0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQU9JLE1BQU07MkJBQUMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtcbiAgQXJjR0lTUmVzdERhdGFTb3VyY2VPcHRpb25zLFxuICBBcmNHSVNSZXN0SW1hZ2VEYXRhU291cmNlT3B0aW9ucyxcbiAgVGlsZUFyY0dJU1Jlc3REYXRhU291cmNlT3B0aW9ucyxcbiAgV01TRGF0YVNvdXJjZU9wdGlvbnNcbn0gZnJvbSAnLi4vZGF0YXNvdXJjZXMnO1xuaW1wb3J0IHsgT3B0aW9uc0FwaU9wdGlvbnMgfSBmcm9tICcuL29wdGlvbnMtYXBpLmludGVyZmFjZSc7XG5pbXBvcnQgeyBPcHRpb25zU2VydmljZSB9IGZyb20gJy4vb3B0aW9ucy5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgT3B0aW9uc0FwaVNlcnZpY2UgZXh0ZW5kcyBPcHRpb25zU2VydmljZSB7XG4gIHByaXZhdGUgdXJsQXBpOiBzdHJpbmc7XG4gIHByaXZhdGUgcHJvdmlkZUNvbnRleHRVcmk6IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxuICAgIEBJbmplY3QoJ29wdGlvbnMnKSBvcHRpb25zOiBPcHRpb25zQXBpT3B0aW9ucyA9IHt9XG4gICkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy51cmxBcGkgPSBvcHRpb25zLnVybCB8fCB0aGlzLnVybEFwaTtcbiAgICB0aGlzLnByb3ZpZGVDb250ZXh0VXJpID1cbiAgICAgIG9wdGlvbnMucHJvdmlkZUNvbnRleHRVcmkgfHwgdGhpcy5wcm92aWRlQ29udGV4dFVyaTtcbiAgfVxuXG4gIGdldFdNU09wdGlvbnMoXG4gICAgYmFzZU9wdGlvbnM6IFdNU0RhdGFTb3VyY2VPcHRpb25zLFxuICAgIGRldGFpbGVkQ29udGV4dFVyaT86IHN0cmluZ1xuICApOiBPYnNlcnZhYmxlPFdNU0RhdGFTb3VyY2VPcHRpb25zPiB7XG4gICAgaWYgKCF0aGlzLnVybEFwaSkge1xuICAgICAgcmV0dXJuIG9mKHt9IGFzIFdNU0RhdGFTb3VyY2VPcHRpb25zKTtcbiAgICB9XG4gICAgbGV0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKHtcbiAgICAgIGZyb21PYmplY3Q6IHtcbiAgICAgICAgdHlwZTogYmFzZU9wdGlvbnMudHlwZSxcbiAgICAgICAgdXJsOiBiYXNlT3B0aW9ucy51cmwsXG4gICAgICAgIGxheWVyczogYmFzZU9wdGlvbnMucGFyYW1zLkxBWUVSU1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKGRldGFpbGVkQ29udGV4dFVyaSAmJiB0aGlzLnByb3ZpZGVDb250ZXh0VXJpKSB7XG4gICAgICBwYXJhbXMgPSBwYXJhbXMuYXBwZW5kKCdjb250ZXh0JywgZGV0YWlsZWRDb250ZXh0VXJpKTtcbiAgICB9XG5cbiAgICBjb25zdCByZXF1ZXN0ID0gdGhpcy5odHRwLmdldCh0aGlzLnVybEFwaSwge1xuICAgICAgcGFyYW1zXG4gICAgfSk7XG5cbiAgICByZXR1cm4gcmVxdWVzdC5waXBlKFxuICAgICAgbWFwKFxuICAgICAgICAocmVzOiB7XG4gICAgICAgICAgc291cmNlT3B0aW9uczogV01TRGF0YVNvdXJjZU9wdGlvbnM7XG4gICAgICAgICAgbGF5ZXJPcHRpb25zOiB7IFtrZXlzOiBzdHJpbmddOiBzdHJpbmcgfTtcbiAgICAgICAgfSkgPT4ge1xuICAgICAgICAgIGlmICghcmVzIHx8ICFyZXMuc291cmNlT3B0aW9ucykge1xuICAgICAgICAgICAgcmV0dXJuIHt9IGFzIFdNU0RhdGFTb3VyY2VPcHRpb25zO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAocmVzLmxheWVyT3B0aW9ucykge1xuICAgICAgICAgICAgcmVzLnNvdXJjZU9wdGlvbnMuX2xheWVyT3B0aW9uc0Zyb21Tb3VyY2UgPSByZXMubGF5ZXJPcHRpb25zO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gcmVzLnNvdXJjZU9wdGlvbnM7XG4gICAgICAgIH1cbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgZ2V0QXJjZ2lzUmVzdE9wdGlvbnMoXG4gICAgYmFzZU9wdGlvbnM6XG4gICAgICB8IEFyY0dJU1Jlc3REYXRhU291cmNlT3B0aW9uc1xuICAgICAgfCBBcmNHSVNSZXN0SW1hZ2VEYXRhU291cmNlT3B0aW9uc1xuICAgICAgfCBUaWxlQXJjR0lTUmVzdERhdGFTb3VyY2VPcHRpb25zLFxuICAgIGRldGFpbGVkQ29udGV4dFVyaT86IHN0cmluZ1xuICApOiBPYnNlcnZhYmxlPFxuICAgIHwgQXJjR0lTUmVzdERhdGFTb3VyY2VPcHRpb25zXG4gICAgfCBBcmNHSVNSZXN0SW1hZ2VEYXRhU291cmNlT3B0aW9uc1xuICAgIHwgVGlsZUFyY0dJU1Jlc3REYXRhU291cmNlT3B0aW9uc1xuICA+IHtcbiAgICBpZiAoIXRoaXMudXJsQXBpKSB7XG4gICAgICByZXR1cm4gb2Yoe30gYXMgQXJjR0lTUmVzdEltYWdlRGF0YVNvdXJjZU9wdGlvbnMpO1xuICAgIH1cbiAgICBsZXQgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoe1xuICAgICAgZnJvbU9iamVjdDoge1xuICAgICAgICB0eXBlOiBiYXNlT3B0aW9ucy50eXBlLFxuICAgICAgICB1cmw6IGJhc2VPcHRpb25zLnVybCxcbiAgICAgICAgbGF5ZXJzOiBiYXNlT3B0aW9ucy5sYXllclxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKGRldGFpbGVkQ29udGV4dFVyaSAmJiB0aGlzLnByb3ZpZGVDb250ZXh0VXJpKSB7XG4gICAgICBwYXJhbXMgPSBwYXJhbXMuYXBwZW5kKCdjb250ZXh0JywgZGV0YWlsZWRDb250ZXh0VXJpKTtcbiAgICB9XG5cbiAgICBjb25zdCByZXF1ZXN0ID0gdGhpcy5odHRwLmdldCh0aGlzLnVybEFwaSwge1xuICAgICAgcGFyYW1zXG4gICAgfSk7XG5cbiAgICByZXR1cm4gcmVxdWVzdC5waXBlKFxuICAgICAgbWFwKFxuICAgICAgICAocmVzOiB7XG4gICAgICAgICAgc291cmNlT3B0aW9uczpcbiAgICAgICAgICAgIHwgQXJjR0lTUmVzdERhdGFTb3VyY2VPcHRpb25zXG4gICAgICAgICAgICB8IEFyY0dJU1Jlc3RJbWFnZURhdGFTb3VyY2VPcHRpb25zXG4gICAgICAgICAgICB8IFRpbGVBcmNHSVNSZXN0RGF0YVNvdXJjZU9wdGlvbnM7XG4gICAgICAgICAgbGF5ZXJPcHRpb25zOiB7IFtrZXlzOiBzdHJpbmddOiBzdHJpbmcgfTtcbiAgICAgICAgfSkgPT4ge1xuICAgICAgICAgIGlmICghcmVzIHx8ICFyZXMuc291cmNlT3B0aW9ucykge1xuICAgICAgICAgICAgcmV0dXJuIHt9IGFzXG4gICAgICAgICAgICAgIHwgQXJjR0lTUmVzdERhdGFTb3VyY2VPcHRpb25zXG4gICAgICAgICAgICAgIHwgQXJjR0lTUmVzdEltYWdlRGF0YVNvdXJjZU9wdGlvbnNcbiAgICAgICAgICAgICAgfCBUaWxlQXJjR0lTUmVzdERhdGFTb3VyY2VPcHRpb25zO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAocmVzLmxheWVyT3B0aW9ucykge1xuICAgICAgICAgICAgcmVzLnNvdXJjZU9wdGlvbnMuX2xheWVyT3B0aW9uc0Zyb21Tb3VyY2UgPSByZXMubGF5ZXJPcHRpb25zO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gcmVzLnNvdXJjZU9wdGlvbnM7XG4gICAgICAgIH1cbiAgICAgIClcbiAgICApO1xuICB9XG59XG4iXX0=
84
+ }] }] });
85
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy1hcGkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2RhdGFzb3VyY2Uvc2hhcmVkL29wdGlvbnMvb3B0aW9ucy1hcGkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzlELE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5ELE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBU3JDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7O0FBS25ELE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxjQUFjO0lBS3pDO0lBSkYsTUFBTSxDQUFTO0lBQ2YsaUJBQWlCLENBQVU7SUFFbkMsWUFDVSxJQUFnQixFQUNMLFVBQTZCLEVBQUU7UUFFbEQsS0FBSyxFQUFFLENBQUM7UUFIQSxTQUFJLEdBQUosSUFBSSxDQUFZO1FBSXhCLElBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxpQkFBaUI7WUFDcEIsT0FBTyxDQUFDLGlCQUFpQixJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztJQUN4RCxDQUFDO0lBRUQsYUFBYSxDQUNYLFdBQWlDLEVBQ2pDLGtCQUEyQjtRQUUzQixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2pCLE9BQU8sRUFBRSxDQUFDLEVBQTBCLENBQUMsQ0FBQztRQUN4QyxDQUFDO1FBQ0QsSUFBSSxNQUFNLEdBQUcsSUFBSSxVQUFVLENBQUM7WUFDMUIsVUFBVSxFQUFFO2dCQUNWLElBQUksRUFBRSxXQUFXLENBQUMsSUFBSTtnQkFDdEIsR0FBRyxFQUFFLFdBQVcsQ0FBQyxHQUFHO2dCQUNwQixNQUFNLEVBQUUsV0FBVyxDQUFDLE1BQU0sQ0FBQyxNQUFNO2FBQ2xDO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsSUFBSSxrQkFBa0IsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUNqRCxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztRQUN4RCxDQUFDO1FBRUQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUN6QyxNQUFNO1NBQ1AsQ0FBQyxDQUFDO1FBRUgsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUNqQixHQUFHLENBQ0QsQ0FBQyxHQUdBLEVBQUUsRUFBRTtZQUNILElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7Z0JBQy9CLE9BQU8sRUFBMEIsQ0FBQztZQUNwQyxDQUFDO1lBQ0QsSUFBSSxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7Z0JBQ3JCLEdBQUcsQ0FBQyxhQUFhLENBQUMsdUJBQXVCLEdBQUcsR0FBRyxDQUFDLFlBQVksQ0FBQztZQUMvRCxDQUFDO1lBQ0QsT0FBTyxHQUFHLENBQUMsYUFBYSxDQUFDO1FBQzNCLENBQUMsQ0FDRixDQUNGLENBQUM7SUFDSixDQUFDO0lBRUQsb0JBQW9CLENBQ2xCLFdBR21DLEVBQ25DLGtCQUEyQjtRQU0zQixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2pCLE9BQU8sRUFBRSxDQUFDLEVBQXNDLENBQUMsQ0FBQztRQUNwRCxDQUFDO1FBQ0QsSUFBSSxNQUFNLEdBQUcsSUFBSSxVQUFVLENBQUM7WUFDMUIsVUFBVSxFQUFFO2dCQUNWLElBQUksRUFBRSxXQUFXLENBQUMsSUFBSTtnQkFDdEIsR0FBRyxFQUFFLFdBQVcsQ0FBQyxHQUFHO2dCQUNwQixNQUFNLEVBQUUsV0FBVyxDQUFDLEtBQUs7YUFDMUI7U0FDRixDQUFDLENBQUM7UUFFSCxJQUFJLGtCQUFrQixJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQ2pELE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO1FBQ3hELENBQUM7UUFFRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ3pDLE1BQU07U0FDUCxDQUFDLENBQUM7UUFFSCxPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQ2pCLEdBQUcsQ0FDRCxDQUFDLEdBTUEsRUFBRSxFQUFFO1lBQ0gsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztnQkFDL0IsT0FBTyxFQUc0QixDQUFDO1lBQ3RDLENBQUM7WUFDRCxJQUFJLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztnQkFDckIsR0FBRyxDQUFDLGFBQWEsQ0FBQyx1QkFBdUIsR0FBRyxHQUFHLENBQUMsWUFBWSxDQUFDO1lBQy9ELENBQUM7WUFDRCxPQUFPLEdBQUcsQ0FBQyxhQUFhLENBQUM7UUFDM0IsQ0FBQyxDQUNGLENBQ0YsQ0FBQztJQUNKLENBQUM7dUdBM0dVLGlCQUFpQiw0Q0FNbEIsU0FBUzsyR0FOUixpQkFBaUIsY0FGaEIsTUFBTTs7MkZBRVAsaUJBQWlCO2tCQUg3QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBT0ksTUFBTTsyQkFBQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge1xuICBBcmNHSVNSZXN0RGF0YVNvdXJjZU9wdGlvbnMsXG4gIEFyY0dJU1Jlc3RJbWFnZURhdGFTb3VyY2VPcHRpb25zLFxuICBUaWxlQXJjR0lTUmVzdERhdGFTb3VyY2VPcHRpb25zLFxuICBXTVNEYXRhU291cmNlT3B0aW9uc1xufSBmcm9tICcuLi9kYXRhc291cmNlcyc7XG5pbXBvcnQgeyBPcHRpb25zQXBpT3B0aW9ucyB9IGZyb20gJy4vb3B0aW9ucy1hcGkuaW50ZXJmYWNlJztcbmltcG9ydCB7IE9wdGlvbnNTZXJ2aWNlIH0gZnJvbSAnLi9vcHRpb25zLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBPcHRpb25zQXBpU2VydmljZSBleHRlbmRzIE9wdGlvbnNTZXJ2aWNlIHtcbiAgcHJpdmF0ZSB1cmxBcGk6IHN0cmluZztcbiAgcHJpdmF0ZSBwcm92aWRlQ29udGV4dFVyaTogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgQEluamVjdCgnb3B0aW9ucycpIG9wdGlvbnM6IE9wdGlvbnNBcGlPcHRpb25zID0ge31cbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLnVybEFwaSA9IG9wdGlvbnMudXJsIHx8IHRoaXMudXJsQXBpO1xuICAgIHRoaXMucHJvdmlkZUNvbnRleHRVcmkgPVxuICAgICAgb3B0aW9ucy5wcm92aWRlQ29udGV4dFVyaSB8fCB0aGlzLnByb3ZpZGVDb250ZXh0VXJpO1xuICB9XG5cbiAgZ2V0V01TT3B0aW9ucyhcbiAgICBiYXNlT3B0aW9uczogV01TRGF0YVNvdXJjZU9wdGlvbnMsXG4gICAgZGV0YWlsZWRDb250ZXh0VXJpPzogc3RyaW5nXG4gICk6IE9ic2VydmFibGU8V01TRGF0YVNvdXJjZU9wdGlvbnM+IHtcbiAgICBpZiAoIXRoaXMudXJsQXBpKSB7XG4gICAgICByZXR1cm4gb2Yoe30gYXMgV01TRGF0YVNvdXJjZU9wdGlvbnMpO1xuICAgIH1cbiAgICBsZXQgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoe1xuICAgICAgZnJvbU9iamVjdDoge1xuICAgICAgICB0eXBlOiBiYXNlT3B0aW9ucy50eXBlLFxuICAgICAgICB1cmw6IGJhc2VPcHRpb25zLnVybCxcbiAgICAgICAgbGF5ZXJzOiBiYXNlT3B0aW9ucy5wYXJhbXMuTEFZRVJTXG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpZiAoZGV0YWlsZWRDb250ZXh0VXJpICYmIHRoaXMucHJvdmlkZUNvbnRleHRVcmkpIHtcbiAgICAgIHBhcmFtcyA9IHBhcmFtcy5hcHBlbmQoJ2NvbnRleHQnLCBkZXRhaWxlZENvbnRleHRVcmkpO1xuICAgIH1cblxuICAgIGNvbnN0IHJlcXVlc3QgPSB0aGlzLmh0dHAuZ2V0KHRoaXMudXJsQXBpLCB7XG4gICAgICBwYXJhbXNcbiAgICB9KTtcblxuICAgIHJldHVybiByZXF1ZXN0LnBpcGUoXG4gICAgICBtYXAoXG4gICAgICAgIChyZXM6IHtcbiAgICAgICAgICBzb3VyY2VPcHRpb25zOiBXTVNEYXRhU291cmNlT3B0aW9ucztcbiAgICAgICAgICBsYXllck9wdGlvbnM6IHsgW2tleXM6IHN0cmluZ106IHN0cmluZyB9O1xuICAgICAgICB9KSA9PiB7XG4gICAgICAgICAgaWYgKCFyZXMgfHwgIXJlcy5zb3VyY2VPcHRpb25zKSB7XG4gICAgICAgICAgICByZXR1cm4ge30gYXMgV01TRGF0YVNvdXJjZU9wdGlvbnM7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChyZXMubGF5ZXJPcHRpb25zKSB7XG4gICAgICAgICAgICByZXMuc291cmNlT3B0aW9ucy5fbGF5ZXJPcHRpb25zRnJvbVNvdXJjZSA9IHJlcy5sYXllck9wdGlvbnM7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiByZXMuc291cmNlT3B0aW9ucztcbiAgICAgICAgfVxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICBnZXRBcmNnaXNSZXN0T3B0aW9ucyhcbiAgICBiYXNlT3B0aW9uczpcbiAgICAgIHwgQXJjR0lTUmVzdERhdGFTb3VyY2VPcHRpb25zXG4gICAgICB8IEFyY0dJU1Jlc3RJbWFnZURhdGFTb3VyY2VPcHRpb25zXG4gICAgICB8IFRpbGVBcmNHSVNSZXN0RGF0YVNvdXJjZU9wdGlvbnMsXG4gICAgZGV0YWlsZWRDb250ZXh0VXJpPzogc3RyaW5nXG4gICk6IE9ic2VydmFibGU8XG4gICAgfCBBcmNHSVNSZXN0RGF0YVNvdXJjZU9wdGlvbnNcbiAgICB8IEFyY0dJU1Jlc3RJbWFnZURhdGFTb3VyY2VPcHRpb25zXG4gICAgfCBUaWxlQXJjR0lTUmVzdERhdGFTb3VyY2VPcHRpb25zXG4gID4ge1xuICAgIGlmICghdGhpcy51cmxBcGkpIHtcbiAgICAgIHJldHVybiBvZih7fSBhcyBBcmNHSVNSZXN0SW1hZ2VEYXRhU291cmNlT3B0aW9ucyk7XG4gICAgfVxuICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcyh7XG4gICAgICBmcm9tT2JqZWN0OiB7XG4gICAgICAgIHR5cGU6IGJhc2VPcHRpb25zLnR5cGUsXG4gICAgICAgIHVybDogYmFzZU9wdGlvbnMudXJsLFxuICAgICAgICBsYXllcnM6IGJhc2VPcHRpb25zLmxheWVyXG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpZiAoZGV0YWlsZWRDb250ZXh0VXJpICYmIHRoaXMucHJvdmlkZUNvbnRleHRVcmkpIHtcbiAgICAgIHBhcmFtcyA9IHBhcmFtcy5hcHBlbmQoJ2NvbnRleHQnLCBkZXRhaWxlZENvbnRleHRVcmkpO1xuICAgIH1cblxuICAgIGNvbnN0IHJlcXVlc3QgPSB0aGlzLmh0dHAuZ2V0KHRoaXMudXJsQXBpLCB7XG4gICAgICBwYXJhbXNcbiAgICB9KTtcblxuICAgIHJldHVybiByZXF1ZXN0LnBpcGUoXG4gICAgICBtYXAoXG4gICAgICAgIChyZXM6IHtcbiAgICAgICAgICBzb3VyY2VPcHRpb25zOlxuICAgICAgICAgICAgfCBBcmNHSVNSZXN0RGF0YVNvdXJjZU9wdGlvbnNcbiAgICAgICAgICAgIHwgQXJjR0lTUmVzdEltYWdlRGF0YVNvdXJjZU9wdGlvbnNcbiAgICAgICAgICAgIHwgVGlsZUFyY0dJU1Jlc3REYXRhU291cmNlT3B0aW9ucztcbiAgICAgICAgICBsYXllck9wdGlvbnM6IHsgW2tleXM6IHN0cmluZ106IHN0cmluZyB9O1xuICAgICAgICB9KSA9PiB7XG4gICAgICAgICAgaWYgKCFyZXMgfHwgIXJlcy5zb3VyY2VPcHRpb25zKSB7XG4gICAgICAgICAgICByZXR1cm4ge30gYXNcbiAgICAgICAgICAgICAgfCBBcmNHSVNSZXN0RGF0YVNvdXJjZU9wdGlvbnNcbiAgICAgICAgICAgICAgfCBBcmNHSVNSZXN0SW1hZ2VEYXRhU291cmNlT3B0aW9uc1xuICAgICAgICAgICAgICB8IFRpbGVBcmNHSVNSZXN0RGF0YVNvdXJjZU9wdGlvbnM7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChyZXMubGF5ZXJPcHRpb25zKSB7XG4gICAgICAgICAgICByZXMuc291cmNlT3B0aW9ucy5fbGF5ZXJPcHRpb25zRnJvbVNvdXJjZSA9IHJlcy5sYXllck9wdGlvbnM7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiByZXMuc291cmNlT3B0aW9ucztcbiAgICAgICAgfVxuICAgICAgKVxuICAgICk7XG4gIH1cbn1cbiJdfQ==
@@ -17,4 +17,4 @@ export function createDefaultTileGrid(epsg) {
17
17
  matrixIds
18
18
  });
19
19
  }
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZWdyaWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kYXRhc291cmNlL3V0aWxzL3RpbGVncmlkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxVQUFVLElBQUksZ0JBQWdCLEVBQzlCLFFBQVEsSUFBSSxjQUFjLEVBQzNCLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sS0FBSyxNQUFNLE1BQU0sU0FBUyxDQUFDO0FBQ2xDLE9BQU8sY0FBYyxNQUFNLGtCQUFrQixDQUFDO0FBRTlDLE1BQU0sVUFBVSxxQkFBcUIsQ0FBQyxJQUFhO0lBQ2pELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNyRSxNQUFNLGdCQUFnQixHQUFHLFVBQVUsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNoRCxNQUFNLElBQUksR0FBRyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxHQUFHLENBQUM7SUFDcEQsTUFBTSxXQUFXLEdBQUcsSUFBSSxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDbEMsTUFBTSxTQUFTLEdBQUcsSUFBSSxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDaEMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRTtRQUMzQixXQUFXLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3ZDLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7S0FDbEI7SUFFRCxPQUFPLElBQUksY0FBYyxDQUFDO1FBQ3hCLE1BQU0sRUFBRSxnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQztRQUMxQyxXQUFXO1FBQ1gsU0FBUztLQUNWLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBnZXRUb3BMZWZ0IGFzIGV4dGVudEdldFRvcExlZnQsXG4gIGdldFdpZHRoIGFzIGV4dGVudEdldFdpZHRoXG59IGZyb20gJ29sL2V4dGVudC5qcyc7XG5pbXBvcnQgKiBhcyBvbHByb2ogZnJvbSAnb2wvcHJvaic7XG5pbXBvcnQgb2xUaWxlR3JpZFdNVFMgZnJvbSAnb2wvdGlsZWdyaWQvV01UUyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVEZWZhdWx0VGlsZUdyaWQoZXBzZz86IHN0cmluZyk6IG9sVGlsZUdyaWRXTVRTIHtcbiAgY29uc3QgcHJvamVjdGlvbiA9IGVwc2cgPyBvbHByb2ouZ2V0KGVwc2cpIDogb2xwcm9qLmdldCgnRVBTRzozODU3Jyk7XG4gIGNvbnN0IHByb2plY3Rpb25FeHRlbnQgPSBwcm9qZWN0aW9uLmdldEV4dGVudCgpO1xuICBjb25zdCBzaXplID0gZXh0ZW50R2V0V2lkdGgocHJvamVjdGlvbkV4dGVudCkgLyAyNTY7XG4gIGNvbnN0IHJlc29sdXRpb25zID0gbmV3IEFycmF5KDIwKTtcbiAgY29uc3QgbWF0cml4SWRzID0gbmV3IEFycmF5KDIwKTtcbiAgZm9yIChsZXQgeiA9IDA7IHogPCAyMDsgKyt6KSB7XG4gICAgcmVzb2x1dGlvbnNbel0gPSBzaXplIC8gTWF0aC5wb3coMiwgeik7XG4gICAgbWF0cml4SWRzW3pdID0gejtcbiAgfVxuXG4gIHJldHVybiBuZXcgb2xUaWxlR3JpZFdNVFMoe1xuICAgIG9yaWdpbjogZXh0ZW50R2V0VG9wTGVmdChwcm9qZWN0aW9uRXh0ZW50KSxcbiAgICByZXNvbHV0aW9ucyxcbiAgICBtYXRyaXhJZHNcbiAgfSk7XG59XG4iXX0=
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZWdyaWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kYXRhc291cmNlL3V0aWxzL3RpbGVncmlkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxVQUFVLElBQUksZ0JBQWdCLEVBQzlCLFFBQVEsSUFBSSxjQUFjLEVBQzNCLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sS0FBSyxNQUFNLE1BQU0sU0FBUyxDQUFDO0FBQ2xDLE9BQU8sY0FBYyxNQUFNLGtCQUFrQixDQUFDO0FBRTlDLE1BQU0sVUFBVSxxQkFBcUIsQ0FBQyxJQUFhO0lBQ2pELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNyRSxNQUFNLGdCQUFnQixHQUFHLFVBQVUsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNoRCxNQUFNLElBQUksR0FBRyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxHQUFHLENBQUM7SUFDcEQsTUFBTSxXQUFXLEdBQUcsSUFBSSxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDbEMsTUFBTSxTQUFTLEdBQUcsSUFBSSxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDaEMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDO1FBQzVCLFdBQVcsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDdkMsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNuQixDQUFDO0lBRUQsT0FBTyxJQUFJLGNBQWMsQ0FBQztRQUN4QixNQUFNLEVBQUUsZ0JBQWdCLENBQUMsZ0JBQWdCLENBQUM7UUFDMUMsV0FBVztRQUNYLFNBQVM7S0FDVixDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgZ2V0VG9wTGVmdCBhcyBleHRlbnRHZXRUb3BMZWZ0LFxuICBnZXRXaWR0aCBhcyBleHRlbnRHZXRXaWR0aFxufSBmcm9tICdvbC9leHRlbnQuanMnO1xuaW1wb3J0ICogYXMgb2xwcm9qIGZyb20gJ29sL3Byb2onO1xuaW1wb3J0IG9sVGlsZUdyaWRXTVRTIGZyb20gJ29sL3RpbGVncmlkL1dNVFMnO1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRGVmYXVsdFRpbGVHcmlkKGVwc2c/OiBzdHJpbmcpOiBvbFRpbGVHcmlkV01UUyB7XG4gIGNvbnN0IHByb2plY3Rpb24gPSBlcHNnID8gb2xwcm9qLmdldChlcHNnKSA6IG9scHJvai5nZXQoJ0VQU0c6Mzg1NycpO1xuICBjb25zdCBwcm9qZWN0aW9uRXh0ZW50ID0gcHJvamVjdGlvbi5nZXRFeHRlbnQoKTtcbiAgY29uc3Qgc2l6ZSA9IGV4dGVudEdldFdpZHRoKHByb2plY3Rpb25FeHRlbnQpIC8gMjU2O1xuICBjb25zdCByZXNvbHV0aW9ucyA9IG5ldyBBcnJheSgyMCk7XG4gIGNvbnN0IG1hdHJpeElkcyA9IG5ldyBBcnJheSgyMCk7XG4gIGZvciAobGV0IHogPSAwOyB6IDwgMjA7ICsreikge1xuICAgIHJlc29sdXRpb25zW3pdID0gc2l6ZSAvIE1hdGgucG93KDIsIHopO1xuICAgIG1hdHJpeElkc1t6XSA9IHo7XG4gIH1cblxuICByZXR1cm4gbmV3IG9sVGlsZUdyaWRXTVRTKHtcbiAgICBvcmlnaW46IGV4dGVudEdldFRvcExlZnQocHJvamVjdGlvbkV4dGVudCksXG4gICAgcmVzb2x1dGlvbnMsXG4gICAgbWF0cml4SWRzXG4gIH0pO1xufVxuIl19
@@ -1,6 +1,11 @@
1
+ import { AsyncPipe, NgIf } from '@angular/common';
1
2
  import { Component, Input, Optional } from '@angular/core';
3
+ import { MatButtonModule } from '@angular/material/button';
4
+ import { MatIconModule } from '@angular/material/icon';
5
+ import { MatTooltipModule } from '@angular/material/tooltip';
2
6
  import { LanguageService, MessageService, RouteService } from '@igo2/core';
3
7
  import { Clipboard } from '@igo2/utils';
8
+ import { TranslateModule } from '@ngx-translate/core';
4
9
  import { BehaviorSubject, Subject } from 'rxjs';
5
10
  import { roundCoordTo } from '../../map/shared/map.utils';
6
11
  import { DirectionsService } from '../shared';
@@ -9,11 +14,10 @@ import { RoutesFeatureStore, StepFeatureStore, StopsStore } from '../shared/stor
9
14
  import * as i0 from "@angular/core";
10
15
  import * as i1 from "@igo2/core";
11
16
  import * as i2 from "../shared";
12
- import * as i3 from "@angular/common";
13
- import * as i4 from "@angular/material/icon";
14
- import * as i5 from "@angular/material/button";
15
- import * as i6 from "@angular/material/tooltip";
16
- import * as i7 from "@ngx-translate/core";
17
+ import * as i3 from "@angular/material/button";
18
+ import * as i4 from "@angular/material/tooltip";
19
+ import * as i5 from "@angular/material/icon";
20
+ import * as i6 from "@ngx-translate/core";
17
21
  export class DirectionsButtonsComponent {
18
22
  languageService;
19
23
  messageService;
@@ -160,15 +164,22 @@ export class DirectionsButtonsComponent {
160
164
  this.disabled$.next(false);
161
165
  });
162
166
  }
163
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DirectionsButtonsComponent, deps: [{ token: i1.LanguageService }, { token: i1.MessageService }, { token: i1.RouteService, optional: true }, { token: i2.DirectionsService }], target: i0.ɵɵFactoryTarget.Component });
164
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DirectionsButtonsComponent, selector: "igo-directions-buttons", inputs: { contextUri: "contextUri", zoomToActiveRoute$: "zoomToActiveRoute$", stopsStore: "stopsStore", routesFeatureStore: "routesFeatureStore", stepFeatureStore: "stepFeatureStore" }, ngImport: i0, template: "<div class=\"igo-form-button-group\">\n <button\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.directionsForm.addStop' | translate\"\n color=\"primary\"\n (click)=\"addStop()\"\n >\n <mat-icon svgIcon=\"map-marker-plus\"></mat-icon>\n </button>\n <button\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n *ngIf=\"\n (routesFeatureStore.count$ | async) >= 1 ||\n (stopsStore.count$ | async) >= 1\n \"\n [matTooltip]=\"'igo.geo.directionsForm.resetDirectionsBtn' | translate\"\n color=\"warn\"\n (click)=\"resetStops()\"\n >\n <mat-icon svgIcon=\"file-restore\"></mat-icon>\n </button>\n <button\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n *ngIf=\"(routesFeatureStore.count$ | async) >= 1\"\n (click)=\"zoomRoute()\"\n [matTooltip]=\"'igo.geo.directionsForm.zoomRoute' | translate\"\n color=\"primary\"\n >\n <mat-icon svgIcon=\"magnify-plus-outline\"></mat-icon>\n </button>\n <button\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n *ngIf=\"(routesFeatureStore.count$ | async) >= 1\"\n (click)=\"copyDirectionsToClipboard()\"\n [matTooltip]=\"'igo.geo.directionsForm.copy' | translate\"\n color=\"primary\"\n >\n <mat-icon svgIcon=\"content-copy\"></mat-icon>\n </button>\n <button\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n *ngIf=\"(routesFeatureStore.count$ | async) >= 1\"\n (click)=\"copyLinkToClipboard()\"\n [matTooltip]=\"'igo.geo.directionsForm.link' | translate\"\n color=\"primary\"\n >\n <mat-icon svgIcon=\"link\"></mat-icon>\n </button>\n\n <button\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n *ngIf=\"(routesFeatureStore.count$ | async) >= 1\"\n (click)=\"printDirections()\"\n [disabled]=\"disabled$ | async\"\n [matTooltip]=\"'igo.geo.directionsForm.print' | translate\"\n color=\"primary\"\n >\n <mat-icon svgIcon=\"printer\"></mat-icon>\n </button>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i6.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }] });
167
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: DirectionsButtonsComponent, deps: [{ token: i1.LanguageService }, { token: i1.MessageService }, { token: i1.RouteService, optional: true }, { token: i2.DirectionsService }], target: i0.ɵɵFactoryTarget.Component });
168
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.1", type: DirectionsButtonsComponent, isStandalone: true, selector: "igo-directions-buttons", inputs: { contextUri: "contextUri", zoomToActiveRoute$: "zoomToActiveRoute$", stopsStore: "stopsStore", routesFeatureStore: "routesFeatureStore", stepFeatureStore: "stepFeatureStore" }, ngImport: i0, template: "<div class=\"igo-form-button-group\">\r\n <button\r\n mat-icon-button\r\n tooltip-position=\"below\"\r\n matTooltipShowDelay=\"500\"\r\n [matTooltip]=\"'igo.geo.directionsForm.addStop' | translate\"\r\n color=\"primary\"\r\n (click)=\"addStop()\"\r\n >\r\n <mat-icon svgIcon=\"map-marker-plus\"></mat-icon>\r\n </button>\r\n <button\r\n mat-icon-button\r\n tooltip-position=\"below\"\r\n matTooltipShowDelay=\"500\"\r\n *ngIf=\"\r\n (routesFeatureStore.count$ | async) >= 1 ||\r\n (stopsStore.count$ | async) >= 1\r\n \"\r\n [matTooltip]=\"'igo.geo.directionsForm.resetDirectionsBtn' | translate\"\r\n color=\"warn\"\r\n (click)=\"resetStops()\"\r\n >\r\n <mat-icon svgIcon=\"file-restore\"></mat-icon>\r\n </button>\r\n <button\r\n mat-icon-button\r\n tooltip-position=\"below\"\r\n matTooltipShowDelay=\"500\"\r\n *ngIf=\"(routesFeatureStore.count$ | async) >= 1\"\r\n (click)=\"zoomRoute()\"\r\n [matTooltip]=\"'igo.geo.directionsForm.zoomRoute' | translate\"\r\n color=\"primary\"\r\n >\r\n <mat-icon svgIcon=\"magnify-plus-outline\"></mat-icon>\r\n </button>\r\n <button\r\n mat-icon-button\r\n tooltip-position=\"below\"\r\n matTooltipShowDelay=\"500\"\r\n *ngIf=\"(routesFeatureStore.count$ | async) >= 1\"\r\n (click)=\"copyDirectionsToClipboard()\"\r\n [matTooltip]=\"'igo.geo.directionsForm.copy' | translate\"\r\n color=\"primary\"\r\n >\r\n <mat-icon svgIcon=\"content-copy\"></mat-icon>\r\n </button>\r\n <button\r\n mat-icon-button\r\n tooltip-position=\"below\"\r\n matTooltipShowDelay=\"500\"\r\n *ngIf=\"(routesFeatureStore.count$ | async) >= 1\"\r\n (click)=\"copyLinkToClipboard()\"\r\n [matTooltip]=\"'igo.geo.directionsForm.link' | translate\"\r\n color=\"primary\"\r\n >\r\n <mat-icon svgIcon=\"link\"></mat-icon>\r\n </button>\r\n\r\n <button\r\n mat-icon-button\r\n tooltip-position=\"below\"\r\n matTooltipShowDelay=\"500\"\r\n *ngIf=\"(routesFeatureStore.count$ | async) >= 1\"\r\n (click)=\"printDirections()\"\r\n [disabled]=\"disabled$ | async\"\r\n [matTooltip]=\"'igo.geo.directionsForm.print' | translate\"\r\n color=\"primary\"\r\n >\r\n <mat-icon svgIcon=\"printer\"></mat-icon>\r\n </button>\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }] });
165
169
  }
166
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DirectionsButtonsComponent, decorators: [{
170
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: DirectionsButtonsComponent, decorators: [{
167
171
  type: Component,
168
- args: [{ selector: 'igo-directions-buttons', template: "<div class=\"igo-form-button-group\">\n <button\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.directionsForm.addStop' | translate\"\n color=\"primary\"\n (click)=\"addStop()\"\n >\n <mat-icon svgIcon=\"map-marker-plus\"></mat-icon>\n </button>\n <button\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n *ngIf=\"\n (routesFeatureStore.count$ | async) >= 1 ||\n (stopsStore.count$ | async) >= 1\n \"\n [matTooltip]=\"'igo.geo.directionsForm.resetDirectionsBtn' | translate\"\n color=\"warn\"\n (click)=\"resetStops()\"\n >\n <mat-icon svgIcon=\"file-restore\"></mat-icon>\n </button>\n <button\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n *ngIf=\"(routesFeatureStore.count$ | async) >= 1\"\n (click)=\"zoomRoute()\"\n [matTooltip]=\"'igo.geo.directionsForm.zoomRoute' | translate\"\n color=\"primary\"\n >\n <mat-icon svgIcon=\"magnify-plus-outline\"></mat-icon>\n </button>\n <button\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n *ngIf=\"(routesFeatureStore.count$ | async) >= 1\"\n (click)=\"copyDirectionsToClipboard()\"\n [matTooltip]=\"'igo.geo.directionsForm.copy' | translate\"\n color=\"primary\"\n >\n <mat-icon svgIcon=\"content-copy\"></mat-icon>\n </button>\n <button\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n *ngIf=\"(routesFeatureStore.count$ | async) >= 1\"\n (click)=\"copyLinkToClipboard()\"\n [matTooltip]=\"'igo.geo.directionsForm.link' | translate\"\n color=\"primary\"\n >\n <mat-icon svgIcon=\"link\"></mat-icon>\n </button>\n\n <button\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n *ngIf=\"(routesFeatureStore.count$ | async) >= 1\"\n (click)=\"printDirections()\"\n [disabled]=\"disabled$ | async\"\n [matTooltip]=\"'igo.geo.directionsForm.print' | translate\"\n color=\"primary\"\n >\n <mat-icon svgIcon=\"printer\"></mat-icon>\n </button>\n</div>\n" }]
169
- }], ctorParameters: function () { return [{ type: i1.LanguageService }, { type: i1.MessageService }, { type: i1.RouteService, decorators: [{
172
+ args: [{ selector: 'igo-directions-buttons', standalone: true, imports: [
173
+ MatButtonModule,
174
+ MatTooltipModule,
175
+ MatIconModule,
176
+ NgIf,
177
+ AsyncPipe,
178
+ TranslateModule
179
+ ], template: "<div class=\"igo-form-button-group\">\r\n <button\r\n mat-icon-button\r\n tooltip-position=\"below\"\r\n matTooltipShowDelay=\"500\"\r\n [matTooltip]=\"'igo.geo.directionsForm.addStop' | translate\"\r\n color=\"primary\"\r\n (click)=\"addStop()\"\r\n >\r\n <mat-icon svgIcon=\"map-marker-plus\"></mat-icon>\r\n </button>\r\n <button\r\n mat-icon-button\r\n tooltip-position=\"below\"\r\n matTooltipShowDelay=\"500\"\r\n *ngIf=\"\r\n (routesFeatureStore.count$ | async) >= 1 ||\r\n (stopsStore.count$ | async) >= 1\r\n \"\r\n [matTooltip]=\"'igo.geo.directionsForm.resetDirectionsBtn' | translate\"\r\n color=\"warn\"\r\n (click)=\"resetStops()\"\r\n >\r\n <mat-icon svgIcon=\"file-restore\"></mat-icon>\r\n </button>\r\n <button\r\n mat-icon-button\r\n tooltip-position=\"below\"\r\n matTooltipShowDelay=\"500\"\r\n *ngIf=\"(routesFeatureStore.count$ | async) >= 1\"\r\n (click)=\"zoomRoute()\"\r\n [matTooltip]=\"'igo.geo.directionsForm.zoomRoute' | translate\"\r\n color=\"primary\"\r\n >\r\n <mat-icon svgIcon=\"magnify-plus-outline\"></mat-icon>\r\n </button>\r\n <button\r\n mat-icon-button\r\n tooltip-position=\"below\"\r\n matTooltipShowDelay=\"500\"\r\n *ngIf=\"(routesFeatureStore.count$ | async) >= 1\"\r\n (click)=\"copyDirectionsToClipboard()\"\r\n [matTooltip]=\"'igo.geo.directionsForm.copy' | translate\"\r\n color=\"primary\"\r\n >\r\n <mat-icon svgIcon=\"content-copy\"></mat-icon>\r\n </button>\r\n <button\r\n mat-icon-button\r\n tooltip-position=\"below\"\r\n matTooltipShowDelay=\"500\"\r\n *ngIf=\"(routesFeatureStore.count$ | async) >= 1\"\r\n (click)=\"copyLinkToClipboard()\"\r\n [matTooltip]=\"'igo.geo.directionsForm.link' | translate\"\r\n color=\"primary\"\r\n >\r\n <mat-icon svgIcon=\"link\"></mat-icon>\r\n </button>\r\n\r\n <button\r\n mat-icon-button\r\n tooltip-position=\"below\"\r\n matTooltipShowDelay=\"500\"\r\n *ngIf=\"(routesFeatureStore.count$ | async) >= 1\"\r\n (click)=\"printDirections()\"\r\n [disabled]=\"disabled$ | async\"\r\n [matTooltip]=\"'igo.geo.directionsForm.print' | translate\"\r\n color=\"primary\"\r\n >\r\n <mat-icon svgIcon=\"printer\"></mat-icon>\r\n </button>\r\n</div>\r\n" }]
180
+ }], ctorParameters: () => [{ type: i1.LanguageService }, { type: i1.MessageService }, { type: i1.RouteService, decorators: [{
170
181
  type: Optional
171
- }] }, { type: i2.DirectionsService }]; }, propDecorators: { contextUri: [{
182
+ }] }, { type: i2.DirectionsService }], propDecorators: { contextUri: [{
172
183
  type: Input
173
184
  }], zoomToActiveRoute$: [{
174
185
  type: Input
@@ -179,4 +190,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
179
190
  }], stepFeatureStore: [{
180
191
  type: Input
181
192
  }] } });
182
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0aW9ucy1idXR0b25zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2RpcmVjdGlvbnMvZGlyZWN0aW9ucy1idXR0b25zL2RpcmVjdGlvbnMtYnV0dG9ucy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kaXJlY3Rpb25zL2RpcmVjdGlvbnMtYnV0dG9ucy9kaXJlY3Rpb25zLWJ1dHRvbnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNELE9BQU8sRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSxNQUFNLFlBQVksQ0FBQztBQUMzRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRXhDLE9BQU8sRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRWhELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFOUMsT0FBTyxFQUNMLGNBQWMsRUFDZCxjQUFjLEVBQ2QsY0FBYyxFQUNkLGlCQUFpQixFQUNsQixNQUFNLDRCQUE0QixDQUFDO0FBQ3BDLE9BQU8sRUFDTCxrQkFBa0IsRUFDbEIsZ0JBQWdCLEVBQ2hCLFVBQVUsRUFDWCxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7Ozs7QUFPekIsTUFBTSxPQUFPLDBCQUEwQjtJQWUzQjtJQUNBO0lBQ1k7SUFDWjtJQWpCVixJQUFJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxrQkFBa0I7YUFDM0IsR0FBRyxFQUFFO2FBQ0wsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLEVB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U0FBUyxDQUN0QzthQUNBLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3QixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7d0dBekxVLDBCQUEwQjs0RkFBMUIsMEJBQTBCLHdQQzNCdkMsNm5FQXdFQTs7NEZEN0NhLDBCQUEwQjtrQkFMdEMsU0FBUzsrQkFDRSx3QkFBd0I7OzBCQXFCL0IsUUFBUTs0RUFYRixVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgTGFuZ3VhZ2VTZXJ2aWNlLCBNZXNzYWdlU2VydmljZSwgUm91dGVTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZSc7XHJcbmltcG9ydCB7IENsaXBib2FyZCB9IGZyb20gJ0BpZ28yL3V0aWxzJztcclxuXHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgcm91bmRDb29yZFRvIH0gZnJvbSAnLi4vLi4vbWFwL3NoYXJlZC9tYXAudXRpbHMnO1xyXG5pbXBvcnQgeyBEaXJlY3Rpb25zU2VydmljZSB9IGZyb20gJy4uL3NoYXJlZCc7XHJcbmltcG9ydCB7IEZlYXR1cmVXaXRoRGlyZWN0aW9uIH0gZnJvbSAnLi4vc2hhcmVkL2RpcmVjdGlvbnMuaW50ZXJmYWNlJztcclxuaW1wb3J0IHtcclxuICBhZGRTdG9wVG9TdG9yZSxcclxuICBmb3JtYXREaXN0YW5jZSxcclxuICBmb3JtYXREdXJhdGlvbixcclxuICBmb3JtYXRJbnN0cnVjdGlvblxyXG59IGZyb20gJy4uL3NoYXJlZC9kaXJlY3Rpb25zLnV0aWxzJztcclxuaW1wb3J0IHtcclxuICBSb3V0ZXNGZWF0dXJlU3RvcmUsXHJcbiAgU3RlcEZlYXR1cmVTdG9yZSxcclxuICBTdG9wc1N0b3JlXHJcbn0gZnJvbSAnLi4vc2hhcmVkL3N0b3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaWdvLWRpcmVjdGlvbnMtYnV0dG9ucycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2RpcmVjdGlvbnMtYnV0dG9ucy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZGlyZWN0aW9ucy1idXR0b25zLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIERpcmVjdGlvbnNCdXR0b25zQ29tcG9uZW50IHtcclxuICBnZXQgYWN0aXZlUm91dGUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5yb3V0ZXNGZWF0dXJlU3RvcmVcclxuICAgICAgLmFsbCgpXHJcbiAgICAgIC5maW5kKChyb3V0ZSkgPT4gcm91dGUucHJvcGVydGllcy5hY3RpdmUpO1xyXG4gIH1cclxuICBASW5wdXQoKSBjb250ZXh0VXJpOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgem9vbVRvQWN0aXZlUm91dGUkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3QoKTtcclxuICBASW5wdXQoKSBzdG9wc1N0b3JlOiBTdG9wc1N0b3JlO1xyXG4gIEBJbnB1dCgpIHJvdXRlc0ZlYXR1cmVTdG9yZTogUm91dGVzRmVhdHVyZVN0b3JlO1xyXG4gIEBJbnB1dCgpIHN0ZXBGZWF0dXJlU3RvcmU6IFN0ZXBGZWF0dXJlU3RvcmU7XHJcblxyXG4gIHB1YmxpYyBkaXNhYmxlZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGxhbmd1YWdlU2VydmljZTogTGFuZ3VhZ2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsXHJcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIHJvdXRlOiBSb3V0ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGRpcmVjdGlvbnNTZXJ2aWNlOiBEaXJlY3Rpb25zU2VydmljZVxyXG4gICkge31cclxuXHJcbiAgcmVzZXRTdG9wcygpIHtcclxuICAgIHRoaXMuc3RvcHNTdG9yZS5jbGVhclN0b3BzKCk7XHJcbiAgfVxyXG5cclxuICAvLyBzdG9wIGFyZSBhbHdheXMgYWRkZWQgYmVmb3JlIHRoZSBsYXN0IHN0b3AuXHJcbiAgYWRkU3RvcCgpOiB2b2lkIHtcclxuICAgIGFkZFN0b3BUb1N0b3JlKHRoaXMuc3RvcHNTdG9yZSk7XHJcbiAgfVxyXG5cclxuICBjb3B5TGlua1RvQ2xpcGJvYXJkKCkge1xyXG4gICAgY29uc3Qgc3VjY2Vzc2Z1bCA9IENsaXBib2FyZC5jb3B5KHRoaXMuZ2V0VXJsKCkpO1xyXG4gICAgaWYgKHN1Y2Nlc3NmdWwpIHtcclxuICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5zdWNjZXNzKFxyXG4gICAgICAgICdpZ28uZ2VvLmRpcmVjdGlvbnNGb3JtLmRpYWxvZy5jb3B5TXNnTGluaycsXHJcbiAgICAgICAgJ2lnby5nZW8uZGlyZWN0aW9uc0Zvcm0uZGlhbG9nLmNvcHlUaXRsZSdcclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHpvb21Sb3V0ZSgpIHtcclxuICAgIHRoaXMuem9vbVRvQWN0aXZlUm91dGUkLm5leHQoKTtcclxuICB9XHJcblxyXG4gIGNvcHlEaXJlY3Rpb25zVG9DbGlwYm9hcmQoKSB7XHJcbiAgICBjb25zdCBkaXJlY3Rpb25zQm9keSA9IHRoaXMuZGlyZWN0aW9uc1RvVGV4dCgpO1xyXG4gICAgY29uc3Qgc3VjY2Vzc2Z1bCA9IENsaXBib2FyZC5jb3B5KGRpcmVjdGlvbnNCb2R5KTtcclxuICAgIGlmIChzdWNjZXNzZnVsKSB7XHJcbiAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2Uuc3VjY2VzcyhcclxuICAgICAgICAnaWdvLmdlby5kaXJlY3Rpb25zRm9ybS5kaWFsb2cuY29weU1zZycsXHJcbiAgICAgICAgJ2lnby5nZW8uZGlyZWN0aW9uc0Zvcm0uZGlhbG9nLmNvcHlUaXRsZSdcclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZGlyZWN0aW9uc1RvVGV4dCgpIHtcclxuICAgIGNvbnN0IGluZGVudCA9ICdcXHQnO1xyXG4gICAgbGV0IGFjdGl2ZVJvdXRlRGlyZWN0aXZlID1cclxuICAgICAgdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoXHJcbiAgICAgICAgJ2lnby5nZW8uZGlyZWN0aW9uc0Zvcm0uaW5zdHJ1Y3Rpb25zJ1xyXG4gICAgICApICsgJzpcXG4nO1xyXG4gICAgbGV0IHdheVBvaW50TGlzdCA9ICcnO1xyXG4gICAgY29uc3Qgc3VtbWFyeSA9XHJcbiAgICAgIHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uZ2VvLmRpcmVjdGlvbnNGb3JtLnN1bW1hcnknKSArXHJcbiAgICAgICc6IFxcbicgK1xyXG4gICAgICBpbmRlbnQgK1xyXG4gICAgICB0aGlzLmFjdGl2ZVJvdXRlLnByb3BlcnRpZXMuZGlyZWN0aW9uLnRpdGxlICtcclxuICAgICAgJ1xcbicgK1xyXG4gICAgICBpbmRlbnQgK1xyXG4gICAgICBmb3JtYXREaXN0YW5jZSh0aGlzLmFjdGl2ZVJvdXRlLnByb3BlcnRpZXMuZGlyZWN0aW9uLmRpc3RhbmNlKSArXHJcbiAgICAgICdcXG4nICtcclxuICAgICAgaW5kZW50ICtcclxuICAgICAgZm9ybWF0RHVyYXRpb24odGhpcy5hY3RpdmVSb3V0ZS5wcm9wZXJ0aWVzLmRpcmVjdGlvbi5kdXJhdGlvbikgK1xyXG4gICAgICAnXFxuXFxuJyArXHJcbiAgICAgIHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KFxyXG4gICAgICAgICdpZ28uZ2VvLmRpcmVjdGlvbnNGb3JtLnN0b3BzTGlzdCdcclxuICAgICAgKSArXHJcbiAgICAgICc6XFxuJztcclxuXHJcbiAgICBjb25zdCB1cmwgPVxyXG4gICAgICB0aGlzLmxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudCgnaWdvLmdlby5kaXJlY3Rpb25zRm9ybS5saW5rJykgK1xyXG4gICAgICAnOlxcbicgK1xyXG4gICAgICBpbmRlbnQgK1xyXG4gICAgICB0aGlzLmdldFVybCgpO1xyXG5cclxuICAgIGxldCB3YXlQb2ludHNDbnQgPSAxO1xyXG4gICAgdGhpcy5zdG9wc1N0b3JlLnZpZXcuYWxsKCkuZm9yRWFjaCgoc3RvcCkgPT4ge1xyXG4gICAgICBsZXQgY29vcmQgPSAnJztcclxuICAgICAgbGV0IHN0b3BUZXh0ID0gJyc7XHJcbiAgICAgIGlmIChzdG9wLnRleHQgIT09IHJvdW5kQ29vcmRUbyhzdG9wLmNvb3JkaW5hdGVzKS5qb2luKCcsJykpIHtcclxuICAgICAgICBzdG9wVGV4dCA9IHN0b3AudGV4dDtcclxuICAgICAgICBjb29yZCA9IGAgKCAke3JvdW5kQ29vcmRUbyhzdG9wLmNvb3JkaW5hdGVzKS5qb2luKCcsJyl9IClgO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHN0b3BUZXh0ID0gcm91bmRDb29yZFRvKHN0b3AuY29vcmRpbmF0ZXMpLmpvaW4oJywnKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgd2F5UG9pbnRMaXN0ID1cclxuICAgICAgICB3YXlQb2ludExpc3QgK1xyXG4gICAgICAgIGluZGVudCArXHJcbiAgICAgICAgd2F5UG9pbnRzQ250LnRvTG9jYWxlU3RyaW5nKCkgK1xyXG4gICAgICAgICcuICcgK1xyXG4gICAgICAgIHN0b3BUZXh0ICtcclxuICAgICAgICBjb29yZCArXHJcbiAgICAgICAgJ1xcbic7XHJcbiAgICAgIHdheVBvaW50c0NudCsrO1xyXG4gICAgfSk7XHJcblxyXG4gICAgbGV0IGxvY2FsQ250ID0gMDtcclxuICAgIHRoaXMuYWN0aXZlUm91dGUucHJvcGVydGllcy5kaXJlY3Rpb24uc3RlcHMuZm9yRWFjaCgoc3RlcCkgPT4ge1xyXG4gICAgICBjb25zdCBpbnN0cnVjdGlvbiA9IHRoaXMuZm9ybWF0U3RlcChzdGVwLCBsb2NhbENudCkuaW5zdHJ1Y3Rpb247XHJcbiAgICAgIGNvbnN0IGRpc3RhbmNlID1cclxuICAgICAgICBmb3JtYXREaXN0YW5jZShzdGVwLmRpc3RhbmNlKSA9PT0gdW5kZWZpbmVkXHJcbiAgICAgICAgICA/ICcnXHJcbiAgICAgICAgICA6ICcgKCcgKyBmb3JtYXREaXN0YW5jZShzdGVwLmRpc3RhbmNlKSArICcpJztcclxuICAgICAgYWN0aXZlUm91dGVEaXJlY3RpdmUgPVxyXG4gICAgICAgIGFjdGl2ZVJvdXRlRGlyZWN0aXZlICtcclxuICAgICAgICBpbmRlbnQgK1xyXG4gICAgICAgIChsb2NhbENudCArIDEpLnRvTG9jYWxlU3RyaW5nKCkgK1xyXG4gICAgICAgICcuICcgK1xyXG4gICAgICAgIGluc3RydWN0aW9uICtcclxuICAgICAgICBkaXN0YW5jZSArXHJcbiAgICAgICAgJ1xcbic7XHJcbiAgICAgIGxvY2FsQ250Kys7XHJcbiAgICB9KTtcclxuXHJcbiAgICBjb25zdCBkaXJlY3Rpb25zQm9keSA9XHJcbiAgICAgIHN1bW1hcnkgKyB3YXlQb2ludExpc3QgKyAnXFxuJyArIHVybCArICdcXG5cXG4nICsgYWN0aXZlUm91dGVEaXJlY3RpdmU7XHJcblxyXG4gICAgcmV0dXJuIGRpcmVjdGlvbnNCb2R5O1xyXG4gIH1cclxuXHJcbiAgZm9ybWF0U3RlcChzdGVwLCBjbnQpIHtcclxuICAgIHJldHVybiBmb3JtYXRJbnN0cnVjdGlvbihcclxuICAgICAgc3RlcC5tYW5ldXZlci50eXBlLFxyXG4gICAgICBzdGVwLm1hbmV1dmVyLm1vZGlmaWVyLFxyXG4gICAgICBzdGVwLm5hbWUsXHJcbiAgICAgIHN0ZXAubWFuZXV2ZXIuYmVhcmluZ19hZnRlcixcclxuICAgICAgY250LFxyXG4gICAgICBzdGVwLm1hbmV1dmVyLmV4aXQsXHJcbiAgICAgIHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLFxyXG4gICAgICBjbnQgPT09IHRoaXMuYWN0aXZlUm91dGUucHJvcGVydGllcy5kaXJlY3Rpb24uc3RlcHMubGVuZ3RoIC0gMVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0VXJsKCkge1xyXG4gICAgaWYgKCF0aGlzLnJvdXRlKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGxldCBjb250ZXh0ID0gJyc7XHJcbiAgICBpZiAodGhpcy5jb250ZXh0VXJpKSB7XHJcbiAgICAgIGNvbnRleHQgPSBgY29udGV4dD0ke3RoaXMuY29udGV4dFVyaX0mYDtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBwb3MgPSB0aGlzLnJvdXRlc0ZlYXR1cmVTdG9yZVxyXG4gICAgICAuYWxsKClcclxuICAgICAgLm1hcCgoZGlyZWN0aW9uOiBGZWF0dXJlV2l0aERpcmVjdGlvbikgPT4gZGlyZWN0aW9uLnByb3BlcnRpZXMuaWQpXHJcbiAgICAgIC5pbmRleE9mKHRoaXMuYWN0aXZlUm91dGUucHJvcGVydGllcy5pZCk7XHJcbiAgICBsZXQgcm91dGluZ09wdGlvbnMgPSAnJztcclxuICAgIGlmIChwb3MgIT09IDApIHtcclxuICAgICAgY29uc3Qgcm91dGluZ09wdGlvbnNLZXkgPSB0aGlzLnJvdXRlLm9wdGlvbnMuZGlyZWN0aW9uc09wdGlvbnNLZXk7XHJcbiAgICAgIHJvdXRpbmdPcHRpb25zID0gYCYke3JvdXRpbmdPcHRpb25zS2V5fT1yZXN1bHQ6JHtwb3N9YDtcclxuICAgIH1cclxuICAgIGNvbnN0IGRpcmVjdGlvbnNLZXkgPSB0aGlzLnJvdXRlLm9wdGlvbnMuZGlyZWN0aW9uc0Nvb3JkS2V5O1xyXG4gICAgY29uc3Qgc3RvcHNDb29yZGluYXRlcyA9IHRoaXMuc3RvcHNTdG9yZS52aWV3XHJcbiAgICAgIC5hbGwoKVxyXG4gICAgICAubWFwKChzdG9wKSA9PiByb3VuZENvb3JkVG8oc3RvcC5jb29yZGluYXRlcywgNikpO1xyXG4gICAgbGV0IGRpcmVjdGlvbnNVcmwgPSAnJztcclxuICAgIGlmIChzdG9wc0Nvb3JkaW5hdGVzLmxlbmd0aCA+PSAyKSB7XHJcbiAgICAgIGRpcmVjdGlvbnNVcmwgPSBgJHtkaXJlY3Rpb25zS2V5fT0ke3N0b3BzQ29vcmRpbmF0ZXMuam9pbignOycpfWA7XHJcbiAgICAgIHJldHVybiBgJHtsb2NhdGlvbi5vcmlnaW59JHtsb2NhdGlvbi5wYXRobmFtZX0/JHtjb250ZXh0fXRvb2w9ZGlyZWN0aW9ucyZzaWRlbmF2PTEmJHtkaXJlY3Rpb25zVXJsfSR7cm91dGluZ09wdGlvbnN9YDtcclxuICAgIH1cclxuICAgIHJldHVybjtcclxuICB9XHJcblxyXG4gIHByaW50RGlyZWN0aW9ucygpIHtcclxuICAgIHRoaXMuc3RlcEZlYXR1cmVTdG9yZS5jbGVhcigpO1xyXG4gICAgdGhpcy5kaXNhYmxlZCQubmV4dCh0cnVlKTtcclxuICAgIHRoaXMuZGlyZWN0aW9uc1NlcnZpY2VcclxuICAgICAgLmRvd25sb2FkRGlyZWN0aW9uKFxyXG4gICAgICAgIHRoaXMucm91dGVzRmVhdHVyZVN0b3JlLm1hcCxcclxuICAgICAgICB0aGlzLmFjdGl2ZVJvdXRlLnByb3BlcnRpZXMuZGlyZWN0aW9uXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5kaXNhYmxlZCQubmV4dChmYWxzZSk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiaWdvLWZvcm0tYnV0dG9uLWdyb3VwXCI+XG4gIDxidXR0b25cbiAgICBtYXQtaWNvbi1idXR0b25cbiAgICB0b29sdGlwLXBvc2l0aW9uPVwiYmVsb3dcIlxuICAgIG1hdFRvb2x0aXBTaG93RGVsYXk9XCI1MDBcIlxuICAgIFttYXRUb29sdGlwXT1cIidpZ28uZ2VvLmRpcmVjdGlvbnNGb3JtLmFkZFN0b3AnIHwgdHJhbnNsYXRlXCJcbiAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgIChjbGljayk9XCJhZGRTdG9wKClcIlxuICA+XG4gICAgPG1hdC1pY29uIHN2Z0ljb249XCJtYXAtbWFya2VyLXBsdXNcIj48L21hdC1pY29uPlxuICA8L2J1dHRvbj5cbiAgPGJ1dHRvblxuICAgIG1hdC1pY29uLWJ1dHRvblxuICAgIHRvb2x0aXAtcG9zaXRpb249XCJiZWxvd1wiXG4gICAgbWF0VG9vbHRpcFNob3dEZWxheT1cIjUwMFwiXG4gICAgKm5nSWY9XCJcbiAgICAgIChyb3V0ZXNGZWF0dXJlU3RvcmUuY291bnQkIHwgYXN5bmMpID49IDEgfHxcbiAgICAgIChzdG9wc1N0b3JlLmNvdW50JCB8IGFzeW5jKSA+PSAxXG4gICAgXCJcbiAgICBbbWF0VG9vbHRpcF09XCInaWdvLmdlby5kaXJlY3Rpb25zRm9ybS5yZXNldERpcmVjdGlvbnNCdG4nIHwgdHJhbnNsYXRlXCJcbiAgICBjb2xvcj1cIndhcm5cIlxuICAgIChjbGljayk9XCJyZXNldFN0b3BzKClcIlxuICA+XG4gICAgPG1hdC1pY29uIHN2Z0ljb249XCJmaWxlLXJlc3RvcmVcIj48L21hdC1pY29uPlxuICA8L2J1dHRvbj5cbiAgPGJ1dHRvblxuICAgIG1hdC1pY29uLWJ1dHRvblxuICAgIHRvb2x0aXAtcG9zaXRpb249XCJiZWxvd1wiXG4gICAgbWF0VG9vbHRpcFNob3dEZWxheT1cIjUwMFwiXG4gICAgKm5nSWY9XCIocm91dGVzRmVhdHVyZVN0b3JlLmNvdW50JCB8IGFzeW5jKSA+PSAxXCJcbiAgICAoY2xpY2spPVwiem9vbVJvdXRlKClcIlxuICAgIFttYXRUb29sdGlwXT1cIidpZ28uZ2VvLmRpcmVjdGlvbnNGb3JtLnpvb21Sb3V0ZScgfCB0cmFuc2xhdGVcIlxuICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gID5cbiAgICA8bWF0LWljb24gc3ZnSWNvbj1cIm1hZ25pZnktcGx1cy1vdXRsaW5lXCI+PC9tYXQtaWNvbj5cbiAgPC9idXR0b24+XG4gIDxidXR0b25cbiAgICBtYXQtaWNvbi1idXR0b25cbiAgICB0b29sdGlwLXBvc2l0aW9uPVwiYmVsb3dcIlxuICAgIG1hdFRvb2x0aXBTaG93RGVsYXk9XCI1MDBcIlxuICAgICpuZ0lmPVwiKHJvdXRlc0ZlYXR1cmVTdG9yZS5jb3VudCQgfCBhc3luYykgPj0gMVwiXG4gICAgKGNsaWNrKT1cImNvcHlEaXJlY3Rpb25zVG9DbGlwYm9hcmQoKVwiXG4gICAgW21hdFRvb2x0aXBdPVwiJ2lnby5nZW8uZGlyZWN0aW9uc0Zvcm0uY29weScgfCB0cmFuc2xhdGVcIlxuICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gID5cbiAgICA8bWF0LWljb24gc3ZnSWNvbj1cImNvbnRlbnQtY29weVwiPjwvbWF0LWljb24+XG4gIDwvYnV0dG9uPlxuICA8YnV0dG9uXG4gICAgbWF0LWljb24tYnV0dG9uXG4gICAgdG9vbHRpcC1wb3NpdGlvbj1cImJlbG93XCJcbiAgICBtYXRUb29sdGlwU2hvd0RlbGF5PVwiNTAwXCJcbiAgICAqbmdJZj1cIihyb3V0ZXNGZWF0dXJlU3RvcmUuY291bnQkIHwgYXN5bmMpID49IDFcIlxuICAgIChjbGljayk9XCJjb3B5TGlua1RvQ2xpcGJvYXJkKClcIlxuICAgIFttYXRUb29sdGlwXT1cIidpZ28uZ2VvLmRpcmVjdGlvbnNGb3JtLmxpbmsnIHwgdHJhbnNsYXRlXCJcbiAgICBjb2xvcj1cInByaW1hcnlcIlxuICA+XG4gICAgPG1hdC1pY29uIHN2Z0ljb249XCJsaW5rXCI+PC9tYXQtaWNvbj5cbiAgPC9idXR0b24+XG5cbiAgPGJ1dHRvblxuICAgIG1hdC1pY29uLWJ1dHRvblxuICAgIHRvb2x0aXAtcG9zaXRpb249XCJiZWxvd1wiXG4gICAgbWF0VG9vbHRpcFNob3dEZWxheT1cIjUwMFwiXG4gICAgKm5nSWY9XCIocm91dGVzRmVhdHVyZVN0b3JlLmNvdW50JCB8IGFzeW5jKSA+PSAxXCJcbiAgICAoY2xpY2spPVwicHJpbnREaXJlY3Rpb25zKClcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCQgfCBhc3luY1wiXG4gICAgW21hdFRvb2x0aXBdPVwiJ2lnby5nZW8uZGlyZWN0aW9uc0Zvcm0ucHJpbnQnIHwgdHJhbnNsYXRlXCJcbiAgICBjb2xvcj1cInByaW1hcnlcIlxuICA+XG4gICAgPG1hdC1pY29uIHN2Z0ljb249XCJwcmludGVyXCI+PC9tYXQtaWNvbj5cbiAgPC9idXR0b24+XG48L2Rpdj5cbiJdfQ==
193
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0aW9ucy1idXR0b25zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2RpcmVjdGlvbnMvZGlyZWN0aW9ucy1idXR0b25zL2RpcmVjdGlvbnMtYnV0dG9ucy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kaXJlY3Rpb25zL2RpcmVjdGlvbnMtYnV0dG9ucy9kaXJlY3Rpb25zLWJ1dHRvbnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUU3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxZQUFZLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDM0UsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUV4QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFaEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzFELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUU5QyxPQUFPLEVBQ0wsY0FBYyxFQUNkLGNBQWMsRUFDZCxjQUFjLEVBQ2QsaUJBQWlCLEVBQ2xCLE1B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QyxNQUFNLEdBQUcsUUFBUSxDQUFDLFFBQVEsSUFBSSxPQUFPLDZCQUE2QixhQUFhLEdBQUcsY0FBYyxFQUFFLENBQUM7UUFDeEgsQ0FBQztRQUNELE9BQU87SUFDVCxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUM5QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxQixJQUFJLENBQUMsaUJBQWlCO2FBQ25CLGlCQUFpQixDQUNoQixJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxFQUMzQixJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQ3RDO2FBQ0EsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzdCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzt1R0F6TFUsMEJBQTBCOzJGQUExQiwwQkFBMEIsNFFDekN2Qyw2d0VBd0VBLHlERHZDSSxlQUFlLDJJQUNmLGdCQUFnQiw0VEFDaEIsYUFBYSxvTEFDYixJQUFJLHdGQUNKLFNBQVMsNkNBQ1QsZUFBZTs7MkZBR04sMEJBQTBCO2tCQWR0QyxTQUFTOytCQUNFLHdCQUF3QixjQUd0QixJQUFJLFdBQ1A7d0JBQ1AsZUFBZTt3QkFDZixnQkFBZ0I7d0JBQ2hCLGFBQWE7d0JBQ2IsSUFBSTt3QkFDSixTQUFTO3dCQUNULGVBQWU7cUJBQ2hCOzswQkFtQkUsUUFBUTt5RUFYRixVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBc3luY1BpcGUsIE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xyXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcclxuXHJcbmltcG9ydCB7IExhbmd1YWdlU2VydmljZSwgTWVzc2FnZVNlcnZpY2UsIFJvdXRlU2VydmljZSB9IGZyb20gJ0BpZ28yL2NvcmUnO1xyXG5pbXBvcnQgeyBDbGlwYm9hcmQgfSBmcm9tICdAaWdvMi91dGlscyc7XHJcblxyXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQgeyByb3VuZENvb3JkVG8gfSBmcm9tICcuLi8uLi9tYXAvc2hhcmVkL21hcC51dGlscyc7XHJcbmltcG9ydCB7IERpcmVjdGlvbnNTZXJ2aWNlIH0gZnJvbSAnLi4vc2hhcmVkJztcclxuaW1wb3J0IHsgRmVhdHVyZVdpdGhEaXJlY3Rpb24gfSBmcm9tICcuLi9zaGFyZWQvZGlyZWN0aW9ucy5pbnRlcmZhY2UnO1xyXG5pbXBvcnQge1xyXG4gIGFkZFN0b3BUb1N0b3JlLFxyXG4gIGZvcm1hdERpc3RhbmNlLFxyXG4gIGZvcm1hdER1cmF0aW9uLFxyXG4gIGZvcm1hdEluc3RydWN0aW9uXHJcbn0gZnJvbSAnLi4vc2hhcmVkL2RpcmVjdGlvbnMudXRpbHMnO1xyXG5pbXBvcnQge1xyXG4gIFJvdXRlc0ZlYXR1cmVTdG9yZSxcclxuICBTdGVwRmVhdHVyZVN0b3JlLFxyXG4gIFN0b3BzU3RvcmVcclxufSBmcm9tICcuLi9zaGFyZWQvc3RvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdpZ28tZGlyZWN0aW9ucy1idXR0b25zJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZGlyZWN0aW9ucy1idXR0b25zLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9kaXJlY3Rpb25zLWJ1dHRvbnMuY29tcG9uZW50LnNjc3MnXSxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcclxuICAgIE1hdFRvb2x0aXBNb2R1bGUsXHJcbiAgICBNYXRJY29uTW9kdWxlLFxyXG4gICAgTmdJZixcclxuICAgIEFzeW5jUGlwZSxcclxuICAgIFRyYW5zbGF0ZU1vZHVsZVxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIERpcmVjdGlvbnNCdXR0b25zQ29tcG9uZW50IHtcclxuICBnZXQgYWN0aXZlUm91dGUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5yb3V0ZXNGZWF0dXJlU3RvcmVcclxuICAgICAgLmFsbCgpXHJcbiAgICAgIC5maW5kKChyb3V0ZSkgPT4gcm91dGUucHJvcGVydGllcy5hY3RpdmUpO1xyXG4gIH1cclxuICBASW5wdXQoKSBjb250ZXh0VXJpOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgem9vbVRvQWN0aXZlUm91dGUkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3QoKTtcclxuICBASW5wdXQoKSBzdG9wc1N0b3JlOiBTdG9wc1N0b3JlO1xyXG4gIEBJbnB1dCgpIHJvdXRlc0ZlYXR1cmVTdG9yZTogUm91dGVzRmVhdHVyZVN0b3JlO1xyXG4gIEBJbnB1dCgpIHN0ZXBGZWF0dXJlU3RvcmU6IFN0ZXBGZWF0dXJlU3RvcmU7XHJcblxyXG4gIHB1YmxpYyBkaXNhYmxlZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGxhbmd1YWdlU2VydmljZTogTGFuZ3VhZ2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsXHJcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIHJvdXRlOiBSb3V0ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGRpcmVjdGlvbnNTZXJ2aWNlOiBEaXJlY3Rpb25zU2VydmljZVxyXG4gICkge31cclxuXHJcbiAgcmVzZXRTdG9wcygpIHtcclxuICAgIHRoaXMuc3RvcHNTdG9yZS5jbGVhclN0b3BzKCk7XHJcbiAgfVxyXG5cclxuICAvLyBzdG9wIGFyZSBhbHdheXMgYWRkZWQgYmVmb3JlIHRoZSBsYXN0IHN0b3AuXHJcbiAgYWRkU3RvcCgpOiB2b2lkIHtcclxuICAgIGFkZFN0b3BUb1N0b3JlKHRoaXMuc3RvcHNTdG9yZSk7XHJcbiAgfVxyXG5cclxuICBjb3B5TGlua1RvQ2xpcGJvYXJkKCkge1xyXG4gICAgY29uc3Qgc3VjY2Vzc2Z1bCA9IENsaXBib2FyZC5jb3B5KHRoaXMuZ2V0VXJsKCkpO1xyXG4gICAgaWYgKHN1Y2Nlc3NmdWwpIHtcclxuICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5zdWNjZXNzKFxyXG4gICAgICAgICdpZ28uZ2VvLmRpcmVjdGlvbnNGb3JtLmRpYWxvZy5jb3B5TXNnTGluaycsXHJcbiAgICAgICAgJ2lnby5nZW8uZGlyZWN0aW9uc0Zvcm0uZGlhbG9nLmNvcHlUaXRsZSdcclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHpvb21Sb3V0ZSgpIHtcclxuICAgIHRoaXMuem9vbVRvQWN0aXZlUm91dGUkLm5leHQoKTtcclxuICB9XHJcblxyXG4gIGNvcHlEaXJlY3Rpb25zVG9DbGlwYm9hcmQoKSB7XHJcbiAgICBjb25zdCBkaXJlY3Rpb25zQm9keSA9IHRoaXMuZGlyZWN0aW9uc1RvVGV4dCgpO1xyXG4gICAgY29uc3Qgc3VjY2Vzc2Z1bCA9IENsaXBib2FyZC5jb3B5KGRpcmVjdGlvbnNCb2R5KTtcclxuICAgIGlmIChzdWNjZXNzZnVsKSB7XHJcbiAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2Uuc3VjY2VzcyhcclxuICAgICAgICAnaWdvLmdlby5kaXJlY3Rpb25zRm9ybS5kaWFsb2cuY29weU1zZycsXHJcbiAgICAgICAgJ2lnby5nZW8uZGlyZWN0aW9uc0Zvcm0uZGlhbG9nLmNvcHlUaXRsZSdcclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZGlyZWN0aW9uc1RvVGV4dCgpIHtcclxuICAgIGNvbnN0IGluZGVudCA9ICdcXHQnO1xyXG4gICAgbGV0IGFjdGl2ZVJvdXRlRGlyZWN0aXZlID1cclxuICAgICAgdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoXHJcbiAgICAgICAgJ2lnby5nZW8uZGlyZWN0aW9uc0Zvcm0uaW5zdHJ1Y3Rpb25zJ1xyXG4gICAgICApICsgJzpcXG4nO1xyXG4gICAgbGV0IHdheVBvaW50TGlzdCA9ICcnO1xyXG4gICAgY29uc3Qgc3VtbWFyeSA9XHJcbiAgICAgIHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KCdpZ28uZ2VvLmRpcmVjdGlvbnNGb3JtLnN1bW1hcnknKSArXHJcbiAgICAgICc6IFxcbicgK1xyXG4gICAgICBpbmRlbnQgK1xyXG4gICAgICB0aGlzLmFjdGl2ZVJvdXRlLnByb3BlcnRpZXMuZGlyZWN0aW9uLnRpdGxlICtcclxuICAgICAgJ1xcbicgK1xyXG4gICAgICBpbmRlbnQgK1xyXG4gICAgICBmb3JtYXREaXN0YW5jZSh0aGlzLmFjdGl2ZVJvdXRlLnByb3BlcnRpZXMuZGlyZWN0aW9uLmRpc3RhbmNlKSArXHJcbiAgICAgICdcXG4nICtcclxuICAgICAgaW5kZW50ICtcclxuICAgICAgZm9ybWF0RHVyYXRpb24odGhpcy5hY3RpdmVSb3V0ZS5wcm9wZXJ0aWVzLmRpcmVjdGlvbi5kdXJhdGlvbikgK1xyXG4gICAgICAnXFxuXFxuJyArXHJcbiAgICAgIHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KFxyXG4gICAgICAgICdpZ28uZ2VvLmRpcmVjdGlvbnNGb3JtLnN0b3BzTGlzdCdcclxuICAgICAgKSArXHJcbiAgICAgICc6XFxuJztcclxuXHJcbiAgICBjb25zdCB1cmwgPVxyXG4gICAgICB0aGlzLmxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudCgnaWdvLmdlby5kaXJlY3Rpb25zRm9ybS5saW5rJykgK1xyXG4gICAgICAnOlxcbicgK1xyXG4gICAgICBpbmRlbnQgK1xyXG4gICAgICB0aGlzLmdldFVybCgpO1xyXG5cclxuICAgIGxldCB3YXlQb2ludHNDbnQgPSAxO1xyXG4gICAgdGhpcy5zdG9wc1N0b3JlLnZpZXcuYWxsKCkuZm9yRWFjaCgoc3RvcCkgPT4ge1xyXG4gICAgICBsZXQgY29vcmQgPSAnJztcclxuICAgICAgbGV0IHN0b3BUZXh0ID0gJyc7XHJcbiAgICAgIGlmIChzdG9wLnRleHQgIT09IHJvdW5kQ29vcmRUbyhzdG9wLmNvb3JkaW5hdGVzKS5qb2luKCcsJykpIHtcclxuICAgICAgICBzdG9wVGV4dCA9IHN0b3AudGV4dDtcclxuICAgICAgICBjb29yZCA9IGAgKCAke3JvdW5kQ29vcmRUbyhzdG9wLmNvb3JkaW5hdGVzKS5qb2luKCcsJyl9IClgO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHN0b3BUZXh0ID0gcm91bmRDb29yZFRvKHN0b3AuY29vcmRpbmF0ZXMpLmpvaW4oJywnKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgd2F5UG9pbnRMaXN0ID1cclxuICAgICAgICB3YXlQb2ludExpc3QgK1xyXG4gICAgICAgIGluZGVudCArXHJcbiAgICAgICAgd2F5UG9pbnRzQ250LnRvTG9jYWxlU3RyaW5nKCkgK1xyXG4gICAgICAgICcuICcgK1xyXG4gICAgICAgIHN0b3BUZXh0ICtcclxuICAgICAgICBjb29yZCArXHJcbiAgICAgICAgJ1xcbic7XHJcbiAgICAgIHdheVBvaW50c0NudCsrO1xyXG4gICAgfSk7XHJcblxyXG4gICAgbGV0IGxvY2FsQ250ID0gMDtcclxuICAgIHRoaXMuYWN0aXZlUm91dGUucHJvcGVydGllcy5kaXJlY3Rpb24uc3RlcHMuZm9yRWFjaCgoc3RlcCkgPT4ge1xyXG4gICAgICBjb25zdCBpbnN0cnVjdGlvbiA9IHRoaXMuZm9ybWF0U3RlcChzdGVwLCBsb2NhbENudCkuaW5zdHJ1Y3Rpb247XHJcbiAgICAgIGNvbnN0IGRpc3RhbmNlID1cclxuICAgICAgICBmb3JtYXREaXN0YW5jZShzdGVwLmRpc3RhbmNlKSA9PT0gdW5kZWZpbmVkXHJcbiAgICAgICAgICA/ICcnXHJcbiAgICAgICAgICA6ICcgKCcgKyBmb3JtYXREaXN0YW5jZShzdGVwLmRpc3RhbmNlKSArICcpJztcclxuICAgICAgYWN0aXZlUm91dGVEaXJlY3RpdmUgPVxyXG4gICAgICAgIGFjdGl2ZVJvdXRlRGlyZWN0aXZlICtcclxuICAgICAgICBpbmRlbnQgK1xyXG4gICAgICAgIChsb2NhbENudCArIDEpLnRvTG9jYWxlU3RyaW5nKCkgK1xyXG4gICAgICAgICcuICcgK1xyXG4gICAgICAgIGluc3RydWN0aW9uICtcclxuICAgICAgICBkaXN0YW5jZSArXHJcbiAgICAgICAgJ1xcbic7XHJcbiAgICAgIGxvY2FsQ250Kys7XHJcbiAgICB9KTtcclxuXHJcbiAgICBjb25zdCBkaXJlY3Rpb25zQm9keSA9XHJcbiAgICAgIHN1bW1hcnkgKyB3YXlQb2ludExpc3QgKyAnXFxuJyArIHVybCArICdcXG5cXG4nICsgYWN0aXZlUm91dGVEaXJlY3RpdmU7XHJcblxyXG4gICAgcmV0dXJuIGRpcmVjdGlvbnNCb2R5O1xyXG4gIH1cclxuXHJcbiAgZm9ybWF0U3RlcChzdGVwLCBjbnQpIHtcclxuICAgIHJldHVybiBmb3JtYXRJbnN0cnVjdGlvbihcclxuICAgICAgc3RlcC5tYW5ldXZlci50eXBlLFxyXG4gICAgICBzdGVwLm1hbmV1dmVyLm1vZGlmaWVyLFxyXG4gICAgICBzdGVwLm5hbWUsXHJcbiAgICAgIHN0ZXAubWFuZXV2ZXIuYmVhcmluZ19hZnRlcixcclxuICAgICAgY250LFxyXG4gICAgICBzdGVwLm1hbmV1dmVyLmV4aXQsXHJcbiAgICAgIHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLFxyXG4gICAgICBjbnQgPT09IHRoaXMuYWN0aXZlUm91dGUucHJvcGVydGllcy5kaXJlY3Rpb24uc3RlcHMubGVuZ3RoIC0gMVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0VXJsKCkge1xyXG4gICAgaWYgKCF0aGlzLnJvdXRlKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGxldCBjb250ZXh0ID0gJyc7XHJcbiAgICBpZiAodGhpcy5jb250ZXh0VXJpKSB7XHJcbiAgICAgIGNvbnRleHQgPSBgY29udGV4dD0ke3RoaXMuY29udGV4dFVyaX0mYDtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBwb3MgPSB0aGlzLnJvdXRlc0ZlYXR1cmVTdG9yZVxyXG4gICAgICAuYWxsKClcclxuICAgICAgLm1hcCgoZGlyZWN0aW9uOiBGZWF0dXJlV2l0aERpcmVjdGlvbikgPT4gZGlyZWN0aW9uLnByb3BlcnRpZXMuaWQpXHJcbiAgICAgIC5pbmRleE9mKHRoaXMuYWN0aXZlUm91dGUucHJvcGVydGllcy5pZCk7XHJcbiAgICBsZXQgcm91dGluZ09wdGlvbnMgPSAnJztcclxuICAgIGlmIChwb3MgIT09IDApIHtcclxuICAgICAgY29uc3Qgcm91dGluZ09wdGlvbnNLZXkgPSB0aGlzLnJvdXRlLm9wdGlvbnMuZGlyZWN0aW9uc09wdGlvbnNLZXk7XHJcbiAgICAgIHJvdXRpbmdPcHRpb25zID0gYCYke3JvdXRpbmdPcHRpb25zS2V5fT1yZXN1bHQ6JHtwb3N9YDtcclxuICAgIH1cclxuICAgIGNvbnN0IGRpcmVjdGlvbnNLZXkgPSB0aGlzLnJvdXRlLm9wdGlvbnMuZGlyZWN0aW9uc0Nvb3JkS2V5O1xyXG4gICAgY29uc3Qgc3RvcHNDb29yZGluYXRlcyA9IHRoaXMuc3RvcHNTdG9yZS52aWV3XHJcbiAgICAgIC5hbGwoKVxyXG4gICAgICAubWFwKChzdG9wKSA9PiByb3VuZENvb3JkVG8oc3RvcC5jb29yZGluYXRlcywgNikpO1xyXG4gICAgbGV0IGRpcmVjdGlvbnNVcmwgPSAnJztcclxuICAgIGlmIChzdG9wc0Nvb3JkaW5hdGVzLmxlbmd0aCA+PSAyKSB7XHJcbiAgICAgIGRpcmVjdGlvbnNVcmwgPSBgJHtkaXJlY3Rpb25zS2V5fT0ke3N0b3BzQ29vcmRpbmF0ZXMuam9pbignOycpfWA7XHJcbiAgICAgIHJldHVybiBgJHtsb2NhdGlvbi5vcmlnaW59JHtsb2NhdGlvbi5wYXRobmFtZX0/JHtjb250ZXh0fXRvb2w9ZGlyZWN0aW9ucyZzaWRlbmF2PTEmJHtkaXJlY3Rpb25zVXJsfSR7cm91dGluZ09wdGlvbnN9YDtcclxuICAgIH1cclxuICAgIHJldHVybjtcclxuICB9XHJcblxyXG4gIHByaW50RGlyZWN0aW9ucygpIHtcclxuICAgIHRoaXMuc3RlcEZlYXR1cmVTdG9yZS5jbGVhcigpO1xyXG4gICAgdGhpcy5kaXNhYmxlZCQubmV4dCh0cnVlKTtcclxuICAgIHRoaXMuZGlyZWN0aW9uc1NlcnZpY2VcclxuICAgICAgLmRvd25sb2FkRGlyZWN0aW9uKFxyXG4gICAgICAgIHRoaXMucm91dGVzRmVhdHVyZVN0b3JlLm1hcCxcclxuICAgICAgICB0aGlzLmFjdGl2ZVJvdXRlLnByb3BlcnRpZXMuZGlyZWN0aW9uXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5kaXNhYmxlZCQubmV4dChmYWxzZSk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiaWdvLWZvcm0tYnV0dG9uLWdyb3VwXCI+XHJcbiAgPGJ1dHRvblxyXG4gICAgbWF0LWljb24tYnV0dG9uXHJcbiAgICB0b29sdGlwLXBvc2l0aW9uPVwiYmVsb3dcIlxyXG4gICAgbWF0VG9vbHRpcFNob3dEZWxheT1cIjUwMFwiXHJcbiAgICBbbWF0VG9vbHRpcF09XCInaWdvLmdlby5kaXJlY3Rpb25zRm9ybS5hZGRTdG9wJyB8IHRyYW5zbGF0ZVwiXHJcbiAgICBjb2xvcj1cInByaW1hcnlcIlxyXG4gICAgKGNsaWNrKT1cImFkZFN0b3AoKVwiXHJcbiAgPlxyXG4gICAgPG1hdC1pY29uIHN2Z0ljb249XCJtYXAtbWFya2VyLXBsdXNcIj48L21hdC1pY29uPlxyXG4gIDwvYnV0dG9uPlxyXG4gIDxidXR0b25cclxuICAgIG1hdC1pY29uLWJ1dHRvblxyXG4gICAgdG9vbHRpcC1wb3NpdGlvbj1cImJlbG93XCJcclxuICAgIG1hdFRvb2x0aXBTaG93RGVsYXk9XCI1MDBcIlxyXG4gICAgKm5nSWY9XCJcclxuICAgICAgKHJvdXRlc0ZlYXR1cmVTdG9yZS5jb3VudCQgfCBhc3luYykgPj0gMSB8fFxyXG4gICAgICAoc3RvcHNTdG9yZS5jb3VudCQgfCBhc3luYykgPj0gMVxyXG4gICAgXCJcclxuICAgIFttYXRUb29sdGlwXT1cIidpZ28uZ2VvLmRpcmVjdGlvbnNGb3JtLnJlc2V0RGlyZWN0aW9uc0J0bicgfCB0cmFuc2xhdGVcIlxyXG4gICAgY29sb3I9XCJ3YXJuXCJcclxuICAgIChjbGljayk9XCJyZXNldFN0b3BzKClcIlxyXG4gID5cclxuICAgIDxtYXQtaWNvbiBzdmdJY29uPVwiZmlsZS1yZXN0b3JlXCI+PC9tYXQtaWNvbj5cclxuICA8L2J1dHRvbj5cclxuICA8YnV0dG9uXHJcbiAgICBtYXQtaWNvbi1idXR0b25cclxuICAgIHRvb2x0aXAtcG9zaXRpb249XCJiZWxvd1wiXHJcbiAgICBtYXRUb29sdGlwU2hvd0RlbGF5PVwiNTAwXCJcclxuICAgICpuZ0lmPVwiKHJvdXRlc0ZlYXR1cmVTdG9yZS5jb3VudCQgfCBhc3luYykgPj0gMVwiXHJcbiAgICAoY2xpY2spPVwiem9vbVJvdXRlKClcIlxyXG4gICAgW21hdFRvb2x0aXBdPVwiJ2lnby5nZW8uZGlyZWN0aW9uc0Zvcm0uem9vbVJvdXRlJyB8IHRyYW5zbGF0ZVwiXHJcbiAgICBjb2xvcj1cInByaW1hcnlcIlxyXG4gID5cclxuICAgIDxtYXQtaWNvbiBzdmdJY29uPVwibWFnbmlmeS1wbHVzLW91dGxpbmVcIj48L21hdC1pY29uPlxyXG4gIDwvYnV0dG9uPlxyXG4gIDxidXR0b25cclxuICAgIG1hdC1pY29uLWJ1dHRvblxyXG4gICAgdG9vbHRpcC1wb3NpdGlvbj1cImJlbG93XCJcclxuICAgIG1hdFRvb2x0aXBTaG93RGVsYXk9XCI1MDBcIlxyXG4gICAgKm5nSWY9XCIocm91dGVzRmVhdHVyZVN0b3JlLmNvdW50JCB8IGFzeW5jKSA+PSAxXCJcclxuICAgIChjbGljayk9XCJjb3B5RGlyZWN0aW9uc1RvQ2xpcGJvYXJkKClcIlxyXG4gICAgW21hdFRvb2x0aXBdPVwiJ2lnby5nZW8uZGlyZWN0aW9uc0Zvcm0uY29weScgfCB0cmFuc2xhdGVcIlxyXG4gICAgY29sb3I9XCJwcmltYXJ5XCJcclxuICA+XHJcbiAgICA8bWF0LWljb24gc3ZnSWNvbj1cImNvbnRlbnQtY29weVwiPjwvbWF0LWljb24+XHJcbiAgPC9idXR0b24+XHJcbiAgPGJ1dHRvblxyXG4gICAgbWF0LWljb24tYnV0dG9uXHJcbiAgICB0b29sdGlwLXBvc2l0aW9uPVwiYmVsb3dcIlxyXG4gICAgbWF0VG9vbHRpcFNob3dEZWxheT1cIjUwMFwiXHJcbiAgICAqbmdJZj1cIihyb3V0ZXNGZWF0dXJlU3RvcmUuY291bnQkIHwgYXN5bmMpID49IDFcIlxyXG4gICAgKGNsaWNrKT1cImNvcHlMaW5rVG9DbGlwYm9hcmQoKVwiXHJcbiAgICBbbWF0VG9vbHRpcF09XCInaWdvLmdlby5kaXJlY3Rpb25zRm9ybS5saW5rJyB8IHRyYW5zbGF0ZVwiXHJcbiAgICBjb2xvcj1cInByaW1hcnlcIlxyXG4gID5cclxuICAgIDxtYXQtaWNvbiBzdmdJY29uPVwibGlua1wiPjwvbWF0LWljb24+XHJcbiAgPC9idXR0b24+XHJcblxyXG4gIDxidXR0b25cclxuICAgIG1hdC1pY29uLWJ1dHRvblxyXG4gICAgdG9vbHRpcC1wb3NpdGlvbj1cImJlbG93XCJcclxuICAgIG1hdFRvb2x0aXBTaG93RGVsYXk9XCI1MDBcIlxyXG4gICAgKm5nSWY9XCIocm91dGVzRmVhdHVyZVN0b3JlLmNvdW50JCB8IGFzeW5jKSA+PSAxXCJcclxuICAgIChjbGljayk9XCJwcmludERpcmVjdGlvbnMoKVwiXHJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQkIHwgYXN5bmNcIlxyXG4gICAgW21hdFRvb2x0aXBdPVwiJ2lnby5nZW8uZGlyZWN0aW9uc0Zvcm0ucHJpbnQnIHwgdHJhbnNsYXRlXCJcclxuICAgIGNvbG9yPVwicHJpbWFyeVwiXHJcbiAgPlxyXG4gICAgPG1hdC1pY29uIHN2Z0ljb249XCJwcmludGVyXCI+PC9tYXQtaWNvbj5cclxuICA8L2J1dHRvbj5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export * from './directions-buttons.component';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kaXJlY3Rpb25zL2RpcmVjdGlvbnMtYnV0dG9ucy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGdDQUFnQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9kaXJlY3Rpb25zLWJ1dHRvbnMuY29tcG9uZW50JztcbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kaXJlY3Rpb25zL2RpcmVjdGlvbnMtYnV0dG9ucy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGdDQUFnQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9kaXJlY3Rpb25zLWJ1dHRvbnMuY29tcG9uZW50JztcclxuIl19