@igo2/geo 1.14.0 → 1.14.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (464) hide show
  1. package/assets/icons/cross_black_18px.svg +88 -88
  2. package/assets/icons/place_blue_36px.svg +55 -55
  3. package/assets/icons/place_green_36px.svg +55 -55
  4. package/assets/icons/place_red_36px.svg +55 -55
  5. package/assets/icons/place_yellow_36px.svg +55 -55
  6. package/esm2020/lib/catalog/catalog-browser/catalog-browser-group.component.mjs +7 -5
  7. package/esm2020/lib/catalog/catalog-browser/catalog-browser-layer.component.mjs +59 -21
  8. package/esm2020/lib/catalog/catalog-browser/catalog-browser.component.mjs +7 -7
  9. package/esm2020/lib/catalog/catalog-browser/catalog-browser.module.mjs +1 -1
  10. package/esm2020/lib/catalog/catalog-library/add-catalog-dialog.component.mjs +2 -2
  11. package/esm2020/lib/catalog/catalog-library/catalog-library-item.component.mjs +2 -2
  12. package/esm2020/lib/catalog/catalog-library/catalog-library.component.mjs +2 -2
  13. package/esm2020/lib/catalog/catalog-library/catalog-library.module.mjs +1 -1
  14. package/esm2020/lib/catalog/catalog.module.mjs +1 -1
  15. package/esm2020/lib/catalog/index.mjs +1 -1
  16. package/esm2020/lib/catalog/shared/catalog.abstract.mjs +1 -1
  17. package/esm2020/lib/catalog/shared/catalog.enum.mjs +1 -1
  18. package/esm2020/lib/catalog/shared/catalog.interface.mjs +1 -1
  19. package/esm2020/lib/catalog/shared/catalog.service.mjs +1 -1
  20. package/esm2020/lib/catalog/shared/index.mjs +1 -1
  21. package/esm2020/lib/datasource/datasource.module.mjs +1 -1
  22. package/esm2020/lib/datasource/index.mjs +1 -1
  23. package/esm2020/lib/datasource/shared/capabilities.service.mjs +1 -1
  24. package/esm2020/lib/datasource/shared/datasource.service.mjs +1 -1
  25. package/esm2020/lib/datasource/shared/datasources/any-datasource.interface.mjs +1 -1
  26. package/esm2020/lib/datasource/shared/datasources/any-datasource.mjs +1 -1
  27. package/esm2020/lib/datasource/shared/datasources/arcgisrest-datasource.interface.mjs +1 -1
  28. package/esm2020/lib/datasource/shared/datasources/arcgisrest-datasource.mjs +1 -1
  29. package/esm2020/lib/datasource/shared/datasources/carto-datasource.interface.mjs +1 -1
  30. package/esm2020/lib/datasource/shared/datasources/carto-datasource.mjs +1 -1
  31. package/esm2020/lib/datasource/shared/datasources/cluster-datasource.interface.mjs +1 -1
  32. package/esm2020/lib/datasource/shared/datasources/cluster-datasource.mjs +1 -1
  33. package/esm2020/lib/datasource/shared/datasources/data.service.mjs +1 -1
  34. package/esm2020/lib/datasource/shared/datasources/datasource.interface.mjs +1 -1
  35. package/esm2020/lib/datasource/shared/datasources/datasource.mjs +1 -1
  36. package/esm2020/lib/datasource/shared/datasources/feature-datasource.interface.mjs +1 -1
  37. package/esm2020/lib/datasource/shared/datasources/feature-datasource.mjs +1 -1
  38. package/esm2020/lib/datasource/shared/datasources/imagearcgisrest-datasource.interface.mjs +1 -1
  39. package/esm2020/lib/datasource/shared/datasources/imagearcgisrest-datasource.mjs +1 -1
  40. package/esm2020/lib/datasource/shared/datasources/index.mjs +1 -1
  41. package/esm2020/lib/datasource/shared/datasources/mvt-datasource.interface.mjs +1 -1
  42. package/esm2020/lib/datasource/shared/datasources/mvt-datasource.mjs +1 -1
  43. package/esm2020/lib/datasource/shared/datasources/osm-datasource.interface.mjs +1 -1
  44. package/esm2020/lib/datasource/shared/datasources/osm-datasource.mjs +1 -1
  45. package/esm2020/lib/datasource/shared/datasources/tilearcgisrest-datasource.interface.mjs +1 -1
  46. package/esm2020/lib/datasource/shared/datasources/tilearcgisrest-datasource.mjs +1 -1
  47. package/esm2020/lib/datasource/shared/datasources/tiledebug-datasource.interface.mjs +1 -1
  48. package/esm2020/lib/datasource/shared/datasources/tiledebug-datasource.mjs +1 -1
  49. package/esm2020/lib/datasource/shared/datasources/websocket-datasource.interface.mjs +1 -1
  50. package/esm2020/lib/datasource/shared/datasources/websocket-datasource.mjs +1 -1
  51. package/esm2020/lib/datasource/shared/datasources/wfs-datasource.interface.mjs +1 -1
  52. package/esm2020/lib/datasource/shared/datasources/wfs-datasource.mjs +1 -1
  53. package/esm2020/lib/datasource/shared/datasources/wfs.service.mjs +1 -1
  54. package/esm2020/lib/datasource/shared/datasources/wms-datasource.interface.mjs +1 -1
  55. package/esm2020/lib/datasource/shared/datasources/wms-datasource.mjs +1 -1
  56. package/esm2020/lib/datasource/shared/datasources/wms-wfs.utils.mjs +1 -1
  57. package/esm2020/lib/datasource/shared/datasources/wmts-datasource.interface.mjs +1 -1
  58. package/esm2020/lib/datasource/shared/datasources/wmts-datasource.mjs +1 -1
  59. package/esm2020/lib/datasource/shared/datasources/xyz-datasource.interface.mjs +1 -1
  60. package/esm2020/lib/datasource/shared/datasources/xyz-datasource.mjs +1 -1
  61. package/esm2020/lib/datasource/shared/index.mjs +1 -1
  62. package/esm2020/lib/datasource/shared/options/index.mjs +1 -1
  63. package/esm2020/lib/datasource/shared/options/options-api.interface.mjs +1 -1
  64. package/esm2020/lib/datasource/shared/options/options-api.providers.mjs +1 -1
  65. package/esm2020/lib/datasource/shared/options/options-api.service.mjs +1 -1
  66. package/esm2020/lib/datasource/shared/options/options.service.mjs +1 -1
  67. package/esm2020/lib/datasource/utils/esri-style-generator.mjs +1 -1
  68. package/esm2020/lib/datasource/utils/index.mjs +1 -1
  69. package/esm2020/lib/datasource/utils/tilegrid.mjs +1 -1
  70. package/esm2020/lib/directions/directions-buttons/directions-buttons.component.mjs +2 -2
  71. package/esm2020/lib/directions/directions-buttons/index.mjs +1 -1
  72. package/esm2020/lib/directions/directions-inputs/directions-inputs.component.mjs +2 -2
  73. package/esm2020/lib/directions/directions-inputs/index.mjs +1 -1
  74. package/esm2020/lib/directions/directions-results/directions-results.component.mjs +2 -2
  75. package/esm2020/lib/directions/directions-results/index.mjs +1 -1
  76. package/esm2020/lib/directions/directions-sources/directions-source.interface.mjs +1 -1
  77. package/esm2020/lib/directions/directions-sources/directions-source.mjs +1 -1
  78. package/esm2020/lib/directions/directions-sources/directions-source.provider.mjs +1 -1
  79. package/esm2020/lib/directions/directions-sources/index.mjs +1 -1
  80. package/esm2020/lib/directions/directions-sources/osrm-directions-source.mjs +1 -1
  81. package/esm2020/lib/directions/directions.component.mjs +2 -2
  82. package/esm2020/lib/directions/directions.module.mjs +1 -1
  83. package/esm2020/lib/directions/index.mjs +1 -1
  84. package/esm2020/lib/directions/shared/directions-source.service.mjs +1 -1
  85. package/esm2020/lib/directions/shared/directions.enum.mjs +1 -1
  86. package/esm2020/lib/directions/shared/directions.interface.mjs +1 -1
  87. package/esm2020/lib/directions/shared/directions.service.mjs +1 -1
  88. package/esm2020/lib/directions/shared/directions.utils.mjs +1 -1
  89. package/esm2020/lib/directions/shared/index.mjs +1 -1
  90. package/esm2020/lib/directions/shared/store.mjs +1 -1
  91. package/esm2020/lib/download/download-button/download-button.component.mjs +2 -2
  92. package/esm2020/lib/download/download-button/index.mjs +1 -1
  93. package/esm2020/lib/download/download.module.mjs +1 -1
  94. package/esm2020/lib/download/index.mjs +1 -1
  95. package/esm2020/lib/download/shared/download.interface.mjs +1 -1
  96. package/esm2020/lib/download/shared/download.service.mjs +1 -1
  97. package/esm2020/lib/download/shared/index.mjs +1 -1
  98. package/esm2020/lib/draw/draw/draw-layer-popup.component.mjs +2 -2
  99. package/esm2020/lib/draw/draw/draw-popup.component.mjs +2 -2
  100. package/esm2020/lib/draw/draw/draw-shorcuts.component.mjs +2 -2
  101. package/esm2020/lib/draw/draw/draw.component.mjs +4 -2
  102. package/esm2020/lib/draw/draw/draw.module.mjs +1 -1
  103. package/esm2020/lib/draw/drawingTool.module.mjs +1 -1
  104. package/esm2020/lib/draw/index.mjs +1 -1
  105. package/esm2020/lib/draw/shared/draw-icon.service.mjs +1 -1
  106. package/esm2020/lib/draw/shared/draw-style.service.mjs +1 -1
  107. package/esm2020/lib/draw/shared/draw.enum.mjs +1 -1
  108. package/esm2020/lib/draw/shared/draw.interface.mjs +1 -1
  109. package/esm2020/lib/draw/shared/draw.utils.mjs +1 -1
  110. package/esm2020/lib/draw/shared/index.mjs +1 -1
  111. package/esm2020/lib/feature/feature-details/feature-details.component.mjs +2 -2
  112. package/esm2020/lib/feature/feature-details/feature-details.directive.mjs +1 -1
  113. package/esm2020/lib/feature/feature-details/feature-details.module.mjs +1 -1
  114. package/esm2020/lib/feature/feature-form/feature-form.component.mjs +2 -2
  115. package/esm2020/lib/feature/feature-form/feature-form.module.mjs +1 -1
  116. package/esm2020/lib/feature/feature.module.mjs +1 -1
  117. package/esm2020/lib/feature/index.mjs +1 -1
  118. package/esm2020/lib/feature/shared/feature.enums.mjs +1 -1
  119. package/esm2020/lib/feature/shared/feature.interfaces.mjs +1 -1
  120. package/esm2020/lib/feature/shared/feature.utils.mjs +1 -1
  121. package/esm2020/lib/feature/shared/index.mjs +1 -1
  122. package/esm2020/lib/feature/shared/store.mjs +1 -1
  123. package/esm2020/lib/feature/shared/strategies/in-map-extent.mjs +1 -1
  124. package/esm2020/lib/feature/shared/strategies/in-map-resolution.mjs +1 -1
  125. package/esm2020/lib/feature/shared/strategies/index.mjs +1 -1
  126. package/esm2020/lib/feature/shared/strategies/loading-layer.mjs +1 -1
  127. package/esm2020/lib/feature/shared/strategies/loading.mjs +1 -1
  128. package/esm2020/lib/feature/shared/strategies/selection.mjs +1 -1
  129. package/esm2020/lib/feature/shared/strategies.utils.mjs +1 -1
  130. package/esm2020/lib/filter/filter.module.mjs +1 -1
  131. package/esm2020/lib/filter/index.mjs +1 -1
  132. package/esm2020/lib/filter/ogc-filter-button/index.mjs +1 -1
  133. package/esm2020/lib/filter/ogc-filter-button/ogc-filter-button.component.mjs +2 -2
  134. package/esm2020/lib/filter/ogc-filter-form/index.mjs +1 -1
  135. package/esm2020/lib/filter/ogc-filter-form/ogc-filter-form.component.mjs +2 -2
  136. package/esm2020/lib/filter/ogc-filter-selection/index.mjs +1 -1
  137. package/esm2020/lib/filter/ogc-filter-selection/ogc-filter-selection.component.mjs +2 -2
  138. package/esm2020/lib/filter/ogc-filter-time/index.mjs +1 -1
  139. package/esm2020/lib/filter/ogc-filter-time/ogc-filter-time-slider.component.mjs +2 -2
  140. package/esm2020/lib/filter/ogc-filter-time/ogc-filter-time.component.mjs +43 -16
  141. package/esm2020/lib/filter/ogc-filterable-form/index.mjs +1 -1
  142. package/esm2020/lib/filter/ogc-filterable-form/ogc-filterable-form.component.mjs +2 -2
  143. package/esm2020/lib/filter/ogc-filterable-item/index.mjs +1 -1
  144. package/esm2020/lib/filter/ogc-filterable-item/ogc-filterable-item.component.mjs +2 -2
  145. package/esm2020/lib/filter/ogc-filterable-list/index.mjs +1 -1
  146. package/esm2020/lib/filter/ogc-filterable-list/ogc-filterable-list-binding.directive.mjs +1 -1
  147. package/esm2020/lib/filter/ogc-filterable-list/ogc-filterable-list.component.mjs +2 -2
  148. package/esm2020/lib/filter/shared/filterable-datasource.pipe.mjs +1 -1
  149. package/esm2020/lib/filter/shared/index.mjs +1 -1
  150. package/esm2020/lib/filter/shared/ogc-filter-time.service.mjs +1 -1
  151. package/esm2020/lib/filter/shared/ogc-filter.enum.mjs +1 -1
  152. package/esm2020/lib/filter/shared/ogc-filter.interface.mjs +1 -1
  153. package/esm2020/lib/filter/shared/ogc-filter.mjs +1 -1
  154. package/esm2020/lib/filter/shared/ogc-filter.service.mjs +1 -1
  155. package/esm2020/lib/filter/shared/spatial-filter.enum.mjs +1 -1
  156. package/esm2020/lib/filter/shared/spatial-filter.interface.mjs +1 -1
  157. package/esm2020/lib/filter/shared/spatial-filter.service.mjs +1 -1
  158. package/esm2020/lib/filter/shared/time-filter.enum.mjs +1 -1
  159. package/esm2020/lib/filter/shared/time-filter.interface.mjs +1 -1
  160. package/esm2020/lib/filter/shared/time-filter.service.mjs +1 -1
  161. package/esm2020/lib/filter/spatial-filter/spatial-filter-item/index.mjs +1 -1
  162. package/esm2020/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.mjs +2 -2
  163. package/esm2020/lib/filter/spatial-filter/spatial-filter-list/index.mjs +1 -1
  164. package/esm2020/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.mjs +2 -2
  165. package/esm2020/lib/filter/spatial-filter/spatial-filter-type/index.mjs +1 -1
  166. package/esm2020/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.mjs +2 -2
  167. package/esm2020/lib/filter/time-filter-button/index.mjs +1 -1
  168. package/esm2020/lib/filter/time-filter-button/time-filter-button.component.mjs +2 -2
  169. package/esm2020/lib/filter/time-filter-form/index.mjs +1 -1
  170. package/esm2020/lib/filter/time-filter-form/time-filter-form.component.mjs +2 -2
  171. package/esm2020/lib/filter/time-filter-item/index.mjs +1 -1
  172. package/esm2020/lib/filter/time-filter-item/time-filter-item.component.mjs +2 -2
  173. package/esm2020/lib/filter/time-filter-list/index.mjs +1 -1
  174. package/esm2020/lib/filter/time-filter-list/time-filter-list-binding.directive.mjs +1 -1
  175. package/esm2020/lib/filter/time-filter-list/time-filter-list.component.mjs +2 -2
  176. package/esm2020/lib/geo.module.mjs +1 -1
  177. package/esm2020/lib/geometry/geometry-form-field/geometry-form-field-input.component.mjs +1 -1
  178. package/esm2020/lib/geometry/geometry-form-field/geometry-form-field.component.mjs +2 -2
  179. package/esm2020/lib/geometry/geometry-form-field/geometry-form-field.module.mjs +1 -1
  180. package/esm2020/lib/geometry/geometry.module.mjs +1 -1
  181. package/esm2020/lib/geometry/index.mjs +1 -1
  182. package/esm2020/lib/geometry/shared/controls/draw.mjs +1 -1
  183. package/esm2020/lib/geometry/shared/controls/index.mjs +1 -1
  184. package/esm2020/lib/geometry/shared/controls/modify.mjs +1 -1
  185. package/esm2020/lib/geometry/shared/controls/slice.mjs +1 -1
  186. package/esm2020/lib/geometry/shared/geometry.errors.mjs +1 -1
  187. package/esm2020/lib/geometry/shared/geometry.interfaces.mjs +1 -1
  188. package/esm2020/lib/geometry/shared/geometry.utils.mjs +1 -1
  189. package/esm2020/lib/geometry/shared/index.mjs +1 -1
  190. package/esm2020/lib/import-export/export-button/export-button.component.mjs +2 -2
  191. package/esm2020/lib/import-export/export-button/index.mjs +1 -1
  192. package/esm2020/lib/import-export/import-export/import-export.component.mjs +2 -2
  193. package/esm2020/lib/import-export/import-export/index.mjs +1 -1
  194. package/esm2020/lib/import-export/import-export.module.mjs +1 -1
  195. package/esm2020/lib/import-export/index.mjs +1 -1
  196. package/esm2020/lib/import-export/shared/drop-geo-file.directive.mjs +1 -1
  197. package/esm2020/lib/import-export/shared/export.errors.mjs +1 -1
  198. package/esm2020/lib/import-export/shared/export.interface.mjs +1 -1
  199. package/esm2020/lib/import-export/shared/export.service.mjs +3 -3
  200. package/esm2020/lib/import-export/shared/export.type.mjs +1 -1
  201. package/esm2020/lib/import-export/shared/export.utils.mjs +1 -1
  202. package/esm2020/lib/import-export/shared/import.errors.mjs +1 -1
  203. package/esm2020/lib/import-export/shared/import.interface.mjs +1 -1
  204. package/esm2020/lib/import-export/shared/import.service.mjs +1 -1
  205. package/esm2020/lib/import-export/shared/import.utils.mjs +1 -1
  206. package/esm2020/lib/import-export/shared/index.mjs +1 -1
  207. package/esm2020/lib/import-export/style-list/index.mjs +1 -1
  208. package/esm2020/lib/import-export/style-list/style-list.interface.mjs +1 -1
  209. package/esm2020/lib/import-export/style-list/style-list.module.mjs +1 -1
  210. package/esm2020/lib/import-export/style-list/style-list.provider.mjs +1 -1
  211. package/esm2020/lib/import-export/style-list/style-list.service.mjs +1 -1
  212. package/esm2020/lib/layer/index.mjs +1 -1
  213. package/esm2020/lib/layer/layer-item/index.mjs +1 -1
  214. package/esm2020/lib/layer/layer-item/layer-item.component.mjs +2 -2
  215. package/esm2020/lib/layer/layer-legend/index.mjs +1 -1
  216. package/esm2020/lib/layer/layer-legend/layer-legend.component.mjs +2 -2
  217. package/esm2020/lib/layer/layer-legend-item/index.mjs +1 -1
  218. package/esm2020/lib/layer/layer-legend-item/layer-legend-item.component.mjs +2 -2
  219. package/esm2020/lib/layer/layer-legend-list/index.mjs +1 -1
  220. package/esm2020/lib/layer/layer-legend-list/layer-legend-list-binding.directive.mjs +1 -1
  221. package/esm2020/lib/layer/layer-legend-list/layer-legend-list.component.mjs +2 -2
  222. package/esm2020/lib/layer/layer-list/index.mjs +1 -1
  223. package/esm2020/lib/layer/layer-list/layer-list-binding.directive.mjs +1 -1
  224. package/esm2020/lib/layer/layer-list/layer-list.component.mjs +2 -2
  225. package/esm2020/lib/layer/layer-list/layer-list.enum.mjs +1 -1
  226. package/esm2020/lib/layer/layer-list-tool/index.mjs +1 -1
  227. package/esm2020/lib/layer/layer-list-tool/layer-list-tool.component.mjs +2 -2
  228. package/esm2020/lib/layer/layer-list-tool/layer-list-tool.enum.mjs +1 -1
  229. package/esm2020/lib/layer/layer-list-tool/layer-list-tool.interface.mjs +1 -1
  230. package/esm2020/lib/layer/layer-list-tool/layer-list-tool.service.mjs +1 -1
  231. package/esm2020/lib/layer/layer.module.mjs +1 -1
  232. package/esm2020/lib/layer/shared/clusterParam.mjs +1 -1
  233. package/esm2020/lib/layer/shared/index.mjs +1 -1
  234. package/esm2020/lib/layer/shared/layer.enums.mjs +1 -1
  235. package/esm2020/lib/layer/shared/layer.service.mjs +1 -1
  236. package/esm2020/lib/layer/shared/layers/any-layer.interface.mjs +1 -1
  237. package/esm2020/lib/layer/shared/layers/any-layer.mjs +1 -1
  238. package/esm2020/lib/layer/shared/layers/image-layer.interface.mjs +1 -1
  239. package/esm2020/lib/layer/shared/layers/image-layer.mjs +1 -1
  240. package/esm2020/lib/layer/shared/layers/index.mjs +1 -1
  241. package/esm2020/lib/layer/shared/layers/layer.interface.mjs +1 -1
  242. package/esm2020/lib/layer/shared/layers/layer.mjs +1 -1
  243. package/esm2020/lib/layer/shared/layers/tile-layer.interface.mjs +1 -1
  244. package/esm2020/lib/layer/shared/layers/tile-layer.mjs +1 -1
  245. package/esm2020/lib/layer/shared/layers/vector-layer.interface.mjs +1 -1
  246. package/esm2020/lib/layer/shared/layers/vector-layer.mjs +1 -1
  247. package/esm2020/lib/layer/shared/layers/vectortile-layer.interface.mjs +1 -1
  248. package/esm2020/lib/layer/shared/layers/vectortile-layer.mjs +1 -1
  249. package/esm2020/lib/layer/shared/style.service.mjs +1 -1
  250. package/esm2020/lib/layer/shared/vector-style.interface.mjs +1 -1
  251. package/esm2020/lib/layer/style-modal/index.mjs +1 -1
  252. package/esm2020/lib/layer/style-modal/style-modal.component.mjs +2 -2
  253. package/esm2020/lib/layer/track-feature-button/index.mjs +1 -1
  254. package/esm2020/lib/layer/track-feature-button/track-feature-button.component.mjs +2 -2
  255. package/esm2020/lib/layer/utils/image-watcher.mjs +1 -1
  256. package/esm2020/lib/layer/utils/index.mjs +1 -1
  257. package/esm2020/lib/layer/utils/layer.utils.mjs +1 -1
  258. package/esm2020/lib/layer/utils/outputLegend.mjs +1 -1
  259. package/esm2020/lib/layer/utils/tile-watcher.mjs +1 -1
  260. package/esm2020/lib/layer/utils/vector-watcher.mjs +1 -1
  261. package/esm2020/lib/map/baselayers-switcher/baselayers-switcher.animation.mjs +1 -1
  262. package/esm2020/lib/map/baselayers-switcher/baselayers-switcher.component.mjs +2 -2
  263. package/esm2020/lib/map/baselayers-switcher/index.mjs +1 -1
  264. package/esm2020/lib/map/baselayers-switcher/mini-basemap.component.mjs +17 -8
  265. package/esm2020/lib/map/geolocate-button/geolocate-button.component.mjs +2 -2
  266. package/esm2020/lib/map/geolocate-button/index.mjs +1 -1
  267. package/esm2020/lib/map/index.mjs +1 -1
  268. package/esm2020/lib/map/info-section/index.mjs +1 -1
  269. package/esm2020/lib/map/info-section/info-section.component.mjs +2 -2
  270. package/esm2020/lib/map/map-browser/index.mjs +1 -1
  271. package/esm2020/lib/map/map-browser/map-browser.component.mjs +2 -2
  272. package/esm2020/lib/map/map-center/index.mjs +1 -1
  273. package/esm2020/lib/map/map-center/map-center.component.mjs +2 -2
  274. package/esm2020/lib/map/map.module.mjs +1 -1
  275. package/esm2020/lib/map/menu-button/index.mjs +1 -1
  276. package/esm2020/lib/map/menu-button/menu-button.component.mjs +2 -2
  277. package/esm2020/lib/map/offline-button/index.mjs +1 -1
  278. package/esm2020/lib/map/offline-button/offline-button.component.mjs +2 -2
  279. package/esm2020/lib/map/rotation-button/index.mjs +1 -1
  280. package/esm2020/lib/map/rotation-button/rotation-button.component.mjs +2 -2
  281. package/esm2020/lib/map/shared/controllers/controller.mjs +1 -1
  282. package/esm2020/lib/map/shared/controllers/geolocation.mjs +1 -1
  283. package/esm2020/lib/map/shared/controllers/index.mjs +1 -1
  284. package/esm2020/lib/map/shared/controllers/view.mjs +1 -1
  285. package/esm2020/lib/map/shared/hover-feature.directive.mjs +1 -1
  286. package/esm2020/lib/map/shared/index.mjs +1 -1
  287. package/esm2020/lib/map/shared/linkedLayers.utils.mjs +3 -3
  288. package/esm2020/lib/map/shared/map-pointer-position.directive.mjs +1 -1
  289. package/esm2020/lib/map/shared/map.enums.mjs +1 -1
  290. package/esm2020/lib/map/shared/map.interface.mjs +1 -1
  291. package/esm2020/lib/map/shared/map.mjs +1 -1
  292. package/esm2020/lib/map/shared/map.service.mjs +1 -1
  293. package/esm2020/lib/map/shared/map.utils.mjs +2 -1
  294. package/esm2020/lib/map/shared/mapOffline.directive.mjs +7 -7
  295. package/esm2020/lib/map/shared/projection.interfaces.mjs +1 -1
  296. package/esm2020/lib/map/shared/projection.service.mjs +1 -1
  297. package/esm2020/lib/map/shared/projection.utils.mjs +1 -1
  298. package/esm2020/lib/map/swipe-control/index.mjs +1 -1
  299. package/esm2020/lib/map/swipe-control/swipe-control.component.mjs +2 -2
  300. package/esm2020/lib/map/utils/layer-watcher.mjs +1 -1
  301. package/esm2020/lib/map/wake-lock-button/index.mjs +1 -1
  302. package/esm2020/lib/map/wake-lock-button/wake-lock-button.component.mjs +2 -2
  303. package/esm2020/lib/map/zoom-button/index.mjs +1 -1
  304. package/esm2020/lib/map/zoom-button/zoom-button.component.mjs +2 -2
  305. package/esm2020/lib/measure/index.mjs +1 -1
  306. package/esm2020/lib/measure/measure.module.mjs +1 -1
  307. package/esm2020/lib/measure/measurer/measure-format.pipe.mjs +1 -1
  308. package/esm2020/lib/measure/measurer/measurer-dialog.component.mjs +2 -2
  309. package/esm2020/lib/measure/measurer/measurer-item.component.mjs +2 -2
  310. package/esm2020/lib/measure/measurer/measurer.component.mjs +2 -2
  311. package/esm2020/lib/measure/measurer/measurer.module.mjs +1 -1
  312. package/esm2020/lib/measure/shared/index.mjs +1 -1
  313. package/esm2020/lib/measure/shared/measure.enum.mjs +1 -1
  314. package/esm2020/lib/measure/shared/measure.interfaces.mjs +1 -1
  315. package/esm2020/lib/measure/shared/measure.utils.mjs +1 -1
  316. package/esm2020/lib/metadata/index.mjs +1 -1
  317. package/esm2020/lib/metadata/metadata-button/index.mjs +1 -1
  318. package/esm2020/lib/metadata/metadata-button/metadata-button.component.mjs +3 -3
  319. package/esm2020/lib/metadata/metadata.module.mjs +1 -1
  320. package/esm2020/lib/metadata/shared/index.mjs +1 -1
  321. package/esm2020/lib/metadata/shared/metadata.interface.mjs +1 -1
  322. package/esm2020/lib/metadata/shared/metadata.service.mjs +1 -1
  323. package/esm2020/lib/offline/geoDB/configFileToGeoDB.service.mjs +1 -1
  324. package/esm2020/lib/offline/geoDB/geoDB.enums.mjs +1 -1
  325. package/esm2020/lib/offline/geoDB/geoDB.interface.mjs +1 -1
  326. package/esm2020/lib/offline/geoDB/geoDB.service.mjs +1 -1
  327. package/esm2020/lib/offline/geoDB/index.mjs +1 -1
  328. package/esm2020/lib/offline/index.mjs +1 -1
  329. package/esm2020/lib/offline/shared/geo-network.service.mjs +1 -1
  330. package/esm2020/lib/offline/shared/index.mjs +1 -1
  331. package/esm2020/lib/overlay/index.mjs +1 -1
  332. package/esm2020/lib/overlay/overlay.module.mjs +1 -1
  333. package/esm2020/lib/overlay/shared/index.mjs +1 -1
  334. package/esm2020/lib/overlay/shared/overlay-marker-style.utils.mjs +1 -1
  335. package/esm2020/lib/overlay/shared/overlay.directive.mjs +1 -1
  336. package/esm2020/lib/overlay/shared/overlay.enum.mjs +1 -1
  337. package/esm2020/lib/overlay/shared/overlay.mjs +1 -1
  338. package/esm2020/lib/overlay/shared/overlay.service.mjs +1 -1
  339. package/esm2020/lib/overlay/shared/overlay.utils.mjs +1 -1
  340. package/esm2020/lib/print/index.mjs +1 -1
  341. package/esm2020/lib/print/print/print.component.mjs +16 -13
  342. package/esm2020/lib/print/print-form/index.mjs +1 -1
  343. package/esm2020/lib/print/print-form/print-form.component.mjs +46 -23
  344. package/esm2020/lib/print/print.module.mjs +1 -1
  345. package/esm2020/lib/print/shared/geopdf.mjs +3 -3
  346. package/esm2020/lib/print/shared/index.mjs +1 -1
  347. package/esm2020/lib/print/shared/print.interface.mjs +1 -1
  348. package/esm2020/lib/print/shared/print.service.mjs +96 -23
  349. package/esm2020/lib/print/shared/print.type.mjs +1 -1
  350. package/esm2020/lib/query/index.mjs +1 -1
  351. package/esm2020/lib/query/query.module.mjs +1 -1
  352. package/esm2020/lib/query/shared/index.mjs +1 -1
  353. package/esm2020/lib/query/shared/query-search-source.mjs +1 -1
  354. package/esm2020/lib/query/shared/query-search-source.providers.mjs +1 -1
  355. package/esm2020/lib/query/shared/query.directive.mjs +1 -1
  356. package/esm2020/lib/query/shared/query.enums.mjs +1 -1
  357. package/esm2020/lib/query/shared/query.interfaces.mjs +1 -1
  358. package/esm2020/lib/query/shared/query.service.mjs +144 -27
  359. package/esm2020/lib/query/shared/query.utils.mjs +1 -1
  360. package/esm2020/lib/search/index.mjs +1 -1
  361. package/esm2020/lib/search/search-bar/search-bar.component.mjs +54 -33
  362. package/esm2020/lib/search/search-bar/search-bar.module.mjs +1 -1
  363. package/esm2020/lib/search/search-bar/search-url-param.directive.mjs +1 -1
  364. package/esm2020/lib/search/search-results/save-feature-dialog.component.mjs +118 -0
  365. package/esm2020/lib/search/search-results/search-results-add-button.component.mjs +207 -29
  366. package/esm2020/lib/search/search-results/search-results-item.component.mjs +3 -3
  367. package/esm2020/lib/search/search-results/search-results.component.mjs +23 -14
  368. package/esm2020/lib/search/search-results/search-results.module.mjs +32 -5
  369. package/esm2020/lib/search/search-selector/search-selector.component.mjs +2 -2
  370. package/esm2020/lib/search/search-selector/search-selector.module.mjs +1 -1
  371. package/esm2020/lib/search/search-settings/search-settings.component.mjs +33 -9
  372. package/esm2020/lib/search/search-settings/search-settings.module.mjs +1 -1
  373. package/esm2020/lib/search/search.module.mjs +1 -1
  374. package/esm2020/lib/search/shared/index.mjs +1 -1
  375. package/esm2020/lib/search/shared/search-pointer-summary.directive.mjs +1 -1
  376. package/esm2020/lib/search/shared/search-source-service.providers.mjs +1 -1
  377. package/esm2020/lib/search/shared/search-source.service.mjs +1 -1
  378. package/esm2020/lib/search/shared/search.enums.mjs +1 -1
  379. package/esm2020/lib/search/shared/search.interfaces.mjs +1 -1
  380. package/esm2020/lib/search/shared/search.service.mjs +10 -7
  381. package/esm2020/lib/search/shared/search.utils.mjs +2 -1
  382. package/esm2020/lib/search/shared/sources/coordinates.interfaces.mjs +1 -1
  383. package/esm2020/lib/search/shared/sources/coordinates.mjs +17 -11
  384. package/esm2020/lib/search/shared/sources/coordinates.providers.mjs +1 -1
  385. package/esm2020/lib/search/shared/sources/icherche.interfaces.mjs +1 -1
  386. package/esm2020/lib/search/shared/sources/icherche.mjs +76 -64
  387. package/esm2020/lib/search/shared/sources/icherche.providers.mjs +1 -1
  388. package/esm2020/lib/search/shared/sources/ilayer.interfaces.mjs +1 -1
  389. package/esm2020/lib/search/shared/sources/ilayer.mjs +4 -4
  390. package/esm2020/lib/search/shared/sources/ilayer.providers.mjs +1 -1
  391. package/esm2020/lib/search/shared/sources/index.mjs +1 -1
  392. package/esm2020/lib/search/shared/sources/nominatim.interfaces.mjs +1 -1
  393. package/esm2020/lib/search/shared/sources/nominatim.mjs +2 -2
  394. package/esm2020/lib/search/shared/sources/nominatim.providers.mjs +1 -1
  395. package/esm2020/lib/search/shared/sources/source.interfaces.mjs +1 -1
  396. package/esm2020/lib/search/shared/sources/source.mjs +1 -1
  397. package/esm2020/lib/search/shared/sources/storedqueries.interfaces.mjs +1 -1
  398. package/esm2020/lib/search/shared/sources/storedqueries.mjs +1 -1
  399. package/esm2020/lib/search/shared/sources/storedqueries.providers.mjs +1 -1
  400. package/esm2020/lib/toast/index.mjs +1 -1
  401. package/esm2020/lib/toast/toast.component.mjs +2 -2
  402. package/esm2020/lib/toast/toast.module.mjs +1 -1
  403. package/esm2020/lib/utils/commonVectorStyle.interface.mjs +1 -1
  404. package/esm2020/lib/utils/commonVectorStyle.mjs +1 -1
  405. package/esm2020/lib/utils/googleLinks.mjs +1 -1
  406. package/esm2020/lib/utils/id-generator.mjs +1 -1
  407. package/esm2020/lib/utils/index.mjs +1 -1
  408. package/esm2020/lib/utils/osmLinks.mjs +1 -1
  409. package/esm2020/lib/wkt/index.mjs +1 -1
  410. package/esm2020/lib/wkt/shared/index.mjs +1 -1
  411. package/esm2020/lib/wkt/shared/wkt.service.mjs +15 -15
  412. package/esm2020/lib/wkt/wkt.module.mjs +1 -1
  413. package/esm2020/lib/workspace/confirmation-popup/confirmation-popup.component.mjs +2 -2
  414. package/esm2020/lib/workspace/confirmation-popup/confirmation-popup.module.mjs +1 -1
  415. package/esm2020/lib/workspace/confirmation-popup/index.mjs +1 -1
  416. package/esm2020/lib/workspace/index.mjs +1 -1
  417. package/esm2020/lib/workspace/shared/edition-workspace.mjs +1 -1
  418. package/esm2020/lib/workspace/shared/edition-workspace.service.mjs +20 -9
  419. package/esm2020/lib/workspace/shared/feature-workspace.mjs +1 -1
  420. package/esm2020/lib/workspace/shared/feature-workspace.service.mjs +1 -1
  421. package/esm2020/lib/workspace/shared/index.mjs +1 -1
  422. package/esm2020/lib/workspace/shared/wfs-workspace.mjs +1 -1
  423. package/esm2020/lib/workspace/shared/wfs-workspace.service.mjs +1 -1
  424. package/esm2020/lib/workspace/shared/wms-workspace.service.mjs +1 -1
  425. package/esm2020/lib/workspace/shared/workspace.utils.mjs +1 -1
  426. package/esm2020/lib/workspace/widgets/index.mjs +1 -1
  427. package/esm2020/lib/workspace/widgets/ogc-filter/ogc-filter.component.mjs +2 -2
  428. package/esm2020/lib/workspace/widgets/ogc-filter/ogc-filter.module.mjs +1 -1
  429. package/esm2020/lib/workspace/widgets/widgets.mjs +1 -1
  430. package/esm2020/lib/workspace/workspace-selector/workspace-selector.directive.mjs +1 -1
  431. package/esm2020/lib/workspace/workspace-selector/workspace-selector.module.mjs +1 -1
  432. package/esm2020/lib/workspace/workspace-updator/workspace-updator.directive.mjs +1 -1
  433. package/esm2020/lib/workspace/workspace-updator/workspace-updator.module.mjs +1 -1
  434. package/esm2020/lib/workspace/workspace.module.mjs +1 -1
  435. package/esm2020/public_api.mjs +1 -1
  436. package/fesm2015/igo2-geo.mjs +1253 -559
  437. package/fesm2015/igo2-geo.mjs.map +1 -1
  438. package/fesm2020/igo2-geo.mjs +1228 -558
  439. package/fesm2020/igo2-geo.mjs.map +1 -1
  440. package/lib/catalog/catalog-browser/catalog-browser-group.component.d.ts +3 -1
  441. package/lib/catalog/catalog-browser/catalog-browser-layer.component.d.ts +9 -2
  442. package/lib/datasource/shared/datasources/datasource.interface.d.ts +1 -0
  443. package/lib/datasource/shared/datasources/feature-datasource.interface.d.ts +1 -0
  444. package/lib/filter/ogc-filter-time/ogc-filter-time.component.d.ts +3 -1
  445. package/lib/import-export/shared/export.service.d.ts +1 -1
  446. package/lib/map/baselayers-switcher/mini-basemap.component.d.ts +7 -4
  447. package/lib/map/shared/map.utils.d.ts +1 -0
  448. package/lib/print/shared/print.service.d.ts +10 -1
  449. package/lib/query/shared/query.interfaces.d.ts +8 -1
  450. package/lib/query/shared/query.service.d.ts +5 -3
  451. package/lib/search/search-bar/search-bar.component.d.ts +19 -9
  452. package/lib/search/search-results/save-feature-dialog.component.d.ts +32 -0
  453. package/lib/search/search-results/search-results-add-button.component.d.ts +20 -2
  454. package/lib/search/search-results/search-results-item.component.d.ts +0 -1
  455. package/lib/search/search-results/search-results.component.d.ts +4 -1
  456. package/lib/search/search-results/search-results.module.d.ts +17 -10
  457. package/lib/search/search-settings/search-settings.component.d.ts +7 -1
  458. package/lib/search/shared/search.service.d.ts +3 -1
  459. package/lib/search/shared/sources/coordinates.d.ts +1 -1
  460. package/lib/search/shared/sources/source.d.ts +1 -1
  461. package/lib/workspace/shared/edition-workspace.service.d.ts +4 -0
  462. package/ngcc.config.js +3 -3
  463. package/package.json +4 -4
  464. package/style/geo.theming.scss +12 -12
@@ -177,17 +177,28 @@ function SearchSettingsComponent_span_8_Template(rf, ctx) { if (rf & 1) {
177
177
  i0.ɵɵpipe(8, "translate");
178
178
  i0.ɵɵtext(9);
179
179
  i0.ɵɵpipe(10, "translate");
180
+ i0.ɵɵelementEnd();
181
+ i0.ɵɵelementStart(11, "mat-slide-toggle", 26);
182
+ i0.ɵɵlistener("change", function SearchSettingsComponent_span_8_Template_mat_slide_toggle_change_11_listener($event) { i0.ɵɵrestoreView(_r44); const ctx_r48 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r48.reverseSearchCoordsFormat($event)); })("click", function SearchSettingsComponent_span_8_Template_mat_slide_toggle_click_11_listener($event) { return $event.stopPropagation(); });
183
+ i0.ɵɵpipe(12, "translate");
184
+ i0.ɵɵpipe(13, "translate");
185
+ i0.ɵɵtext(14);
186
+ i0.ɵɵpipe(15, "translate");
180
187
  i0.ɵɵelementEnd()()();
181
188
  } if (rf & 2) {
182
189
  const ctx_r3 = i0.ɵɵnextContext();
183
190
  i0.ɵɵadvance(3);
184
- i0.ɵɵproperty("matTooltip", i0.ɵɵpipeBind1(4, 8, "igo.geo.search.pointerSearchSummary.tooltip"))("checked", ctx_r3.pointerSummaryEnabled)("labelPosition", "after");
191
+ i0.ɵɵproperty("matTooltip", i0.ɵɵpipeBind1(4, 12, "igo.geo.search.pointerSearchSummary.tooltip"))("checked", ctx_r3.pointerSummaryEnabled)("labelPosition", "after");
192
+ i0.ɵɵadvance(2);
193
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(6, 14, "igo.geo.search.pointerSearchSummary.title"), " ");
185
194
  i0.ɵɵadvance(2);
186
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(6, 10, "igo.geo.search.pointerSearchSummary.title"), " ");
195
+ i0.ɵɵproperty("matTooltip", i0.ɵɵpipeBind1(8, 16, "igo.geo.search.searchResultsGeometry.tooltip"))("checked", ctx_r3.searchResultsGeometryEnabled)("labelPosition", "after");
187
196
  i0.ɵɵadvance(2);
188
- i0.ɵɵproperty("matTooltip", i0.ɵɵpipeBind1(8, 12, "igo.geo.search.searchResultsGeometry.tooltip"))("checked", ctx_r3.searchResultsGeometryEnabled)("labelPosition", "after");
197
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(10, 18, "igo.geo.search.searchResultsGeometry.title"), " ");
189
198
  i0.ɵɵadvance(2);
190
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(10, 14, "igo.geo.search.searchResultsGeometry.title"), " ");
199
+ i0.ɵɵproperty("matTooltip", ctx_r3.reverseSearchCoordsFormatEnabled ? i0.ɵɵpipeBind1(12, 20, "igo.geo.search.reverseCoordFormat.tooltipLatLon") : i0.ɵɵpipeBind1(13, 22, "igo.geo.search.reverseCoordFormat.tooltipLonLat"))("checked", ctx_r3.reverseSearchCoordsFormatEnabled)("labelPosition", "after");
200
+ i0.ɵɵadvance(3);
201
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(15, 24, "igo.geo.search.reverseCoordFormat.title"), " ");
191
202
  } }
192
203
  /**
193
204
  * This component allows a user to select a search type yo enable. In it's
@@ -209,6 +220,7 @@ export class SearchSettingsComponent {
209
220
  this.displayBlock = 'block';
210
221
  this.pointerSummaryEnabled = false;
211
222
  this.searchResultsGeometryEnabled = false;
223
+ this.reverseSearchCoordsFormatEnabled = false;
212
224
  /**
213
225
  * Event emitted when the enabled search source changes
214
226
  */
@@ -221,6 +233,10 @@ export class SearchSettingsComponent {
221
233
  * Event emitted when the show geometry summary is changed
222
234
  */
223
235
  this.searchResultsGeometryStatus = new EventEmitter();
236
+ /**
237
+ * Event emitted when the coords format is changed
238
+ */
239
+ this.reverseSearchCoordsFormatStatus = new EventEmitter();
224
240
  }
225
241
  get isTouchScreen() {
226
242
  return this.mediaService.isTouchScreen();
@@ -373,11 +389,15 @@ export class SearchSettingsComponent {
373
389
  this.searchResultsGeometryEnabled = event.checked;
374
390
  this.searchResultsGeometryStatus.emit(this.searchResultsGeometryEnabled);
375
391
  }
392
+ reverseSearchCoordsFormat(event) {
393
+ this.reverseSearchCoordsFormatEnabled = event.checked;
394
+ this.reverseSearchCoordsFormatStatus.emit(this.reverseSearchCoordsFormatEnabled);
395
+ }
376
396
  }
377
397
  SearchSettingsComponent.ɵfac = function SearchSettingsComponent_Factory(t) { return new (t || SearchSettingsComponent)(i0.ɵɵdirectiveInject(i1.SearchSourceService), i0.ɵɵdirectiveInject(i2.MediaService), i0.ɵɵdirectiveInject(i2.StorageService)); };
378
398
  SearchSettingsComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SearchSettingsComponent, selectors: [["igo-search-settings"]], hostBindings: function SearchSettingsComponent_HostBindings(rf, ctx) { if (rf & 1) {
379
399
  i0.ɵɵlistener("keydown", function SearchSettingsComponent_keydown_HostBindingHandler($event) { return ctx.handleKeyboardEvent($event); }, false, i0.ɵɵresolveDocument);
380
- } }, inputs: { pointerSummaryEnabled: "pointerSummaryEnabled", searchResultsGeometryEnabled: "searchResultsGeometryEnabled" }, outputs: { searchSourceChange: "searchSourceChange", pointerSummaryStatus: "pointerSummaryStatus", searchResultsGeometryStatus: "searchResultsGeometryStatus" }, decls: 9, vars: 7, consts: [[1, "igo-search-settings"], ["mat-icon-button", "", "color", "primary", "tooltip-position", "below", "matTooltipShowDelay", "500", 1, "igo-search-settings-button", 3, "matTooltip", "matMenuTriggerFor"], ["svgIcon", "chevron-down"], [1, "no-border-radius"], ["searchSettingsMenu", "matMenu"], ["class", "checkAllButton", 4, "ngIf"], [4, "ngFor", "ngForOf"], [4, "ngIf"], [1, "checkAllButton"], ["mat-raised-button", "", 3, "click"], [1, "igo-search-settings-search-source"], [1, "igo-search-settings-checkbox", 3, "checked", "value", "click", "change"], ["mat-menu-item", "", 3, "matMenuTriggerFor", 4, "ngIf"], ["mat-menu-item", "", 4, "ngIf"], ["sub_menu", "matMenu"], ["mat-menu-item", "", 3, "matMenuTriggerFor"], ["mat-menu-item", ""], ["yPosition", "above", 3, "ngSwitch"], ["test_sub_menu", "matMenu"], [4, "ngSwitchCase"], [1, "igo-search-settings-radio-group", 3, "value"], ["class", "mat-typography", 3, "value", "matTooltip", "checked", "click", "change", 4, "ngFor", "ngForOf"], [1, "mat-typography", 3, "value", "matTooltip", "checked", "click", "change"], ["class", "mat-menu-item", 3, "display", "checked", "value", "matTooltip", "click", "change", 4, "ngFor", "ngForOf"], [1, "mat-menu-item", 3, "checked", "value", "matTooltip", "click", "change"], [1, "pointer-summary-slide-toggle-container", "mat-typography"], ["tooltip-position", "below", "matTooltipShowDelay", "500", 1, "pointer-summary-option", 3, "matTooltip", "checked", "labelPosition", "change", "click"]], template: function SearchSettingsComponent_Template(rf, ctx) { if (rf & 1) {
400
+ } }, inputs: { pointerSummaryEnabled: "pointerSummaryEnabled", searchResultsGeometryEnabled: "searchResultsGeometryEnabled", reverseSearchCoordsFormatEnabled: "reverseSearchCoordsFormatEnabled" }, outputs: { searchSourceChange: "searchSourceChange", pointerSummaryStatus: "pointerSummaryStatus", searchResultsGeometryStatus: "searchResultsGeometryStatus", reverseSearchCoordsFormatStatus: "reverseSearchCoordsFormatStatus" }, decls: 9, vars: 7, consts: [[1, "igo-search-settings"], ["mat-icon-button", "", "color", "primary", "tooltip-position", "below", "matTooltipShowDelay", "500", 1, "igo-search-settings-button", 3, "matTooltip", "matMenuTriggerFor"], ["svgIcon", "chevron-down"], [1, "no-border-radius"], ["searchSettingsMenu", "matMenu"], ["class", "checkAllButton", 4, "ngIf"], [4, "ngFor", "ngForOf"], [4, "ngIf"], [1, "checkAllButton"], ["mat-raised-button", "", 3, "click"], [1, "igo-search-settings-search-source"], [1, "igo-search-settings-checkbox", 3, "checked", "value", "click", "change"], ["mat-menu-item", "", 3, "matMenuTriggerFor", 4, "ngIf"], ["mat-menu-item", "", 4, "ngIf"], ["sub_menu", "matMenu"], ["mat-menu-item", "", 3, "matMenuTriggerFor"], ["mat-menu-item", ""], ["yPosition", "above", 3, "ngSwitch"], ["test_sub_menu", "matMenu"], [4, "ngSwitchCase"], [1, "igo-search-settings-radio-group", 3, "value"], ["class", "mat-typography", 3, "value", "matTooltip", "checked", "click", "change", 4, "ngFor", "ngForOf"], [1, "mat-typography", 3, "value", "matTooltip", "checked", "click", "change"], ["class", "mat-menu-item", 3, "display", "checked", "value", "matTooltip", "click", "change", 4, "ngFor", "ngForOf"], [1, "mat-menu-item", 3, "checked", "value", "matTooltip", "click", "change"], [1, "pointer-summary-slide-toggle-container", "mat-typography"], ["tooltip-position", "below", "matTooltipShowDelay", "500", 1, "search-option", 3, "matTooltip", "checked", "labelPosition", "change", "click"]], template: function SearchSettingsComponent_Template(rf, ctx) { if (rf & 1) {
381
401
  i0.ɵɵelementStart(0, "div", 0)(1, "button", 1);
382
402
  i0.ɵɵpipe(2, "translate");
383
403
  i0.ɵɵelement(3, "mat-icon", 2);
@@ -385,7 +405,7 @@ SearchSettingsComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Sea
385
405
  i0.ɵɵelementStart(4, "mat-menu", 3, 4);
386
406
  i0.ɵɵtemplate(6, SearchSettingsComponent_div_6_Template, 5, 5, "div", 5);
387
407
  i0.ɵɵtemplate(7, SearchSettingsComponent_ng_container_7_Template, 8, 5, "ng-container", 6);
388
- i0.ɵɵtemplate(8, SearchSettingsComponent_span_8_Template, 11, 16, "span", 7);
408
+ i0.ɵɵtemplate(8, SearchSettingsComponent_span_8_Template, 16, 26, "span", 7);
389
409
  i0.ɵɵelementEnd()();
390
410
  } if (rf & 2) {
391
411
  const _r0 = i0.ɵɵreference(5);
@@ -397,22 +417,26 @@ SearchSettingsComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Sea
397
417
  i0.ɵɵproperty("ngForOf", ctx.getSearchSources());
398
418
  i0.ɵɵadvance(1);
399
419
  i0.ɵɵproperty("ngIf", ctx.hasPointerReverseSearchSource && !ctx.isTouchScreen);
400
- } }, dependencies: [i3.NgForOf, i3.NgIf, i3.NgSwitch, i3.NgSwitchCase, i4.MatTooltip, i5.MatIcon, i6.MatButton, i7.MatMenu, i7.MatMenuItem, i7.MatMenuTrigger, i8.MatRadioGroup, i8.MatRadioButton, i9.MatCheckbox, i10.MatDivider, i11.MatSlideToggle, i12.TranslatePipe], styles: [".checkAllButton[_ngcontent-%COMP%]{text-align:center;padding:0 5px}.igo-search-settings-button[_ngcontent-%COMP%] div.mat-button-ripple-round{border-radius:0}.igo-search-settings-radio-group[_ngcontent-%COMP%]{display:flex;flex-direction:column}.igo-search-settings-radio-group[_ngcontent-%COMP%] mat-radio-button[_ngcontent-%COMP%]{margin:5px}.igo-search-settings-checkbox[_ngcontent-%COMP%] mat-radio-button[_ngcontent-%COMP%]{display:flex}.igo-search-settings-search-source[_ngcontent-%COMP%]{display:flex;width:100%}.igo-search-settings-search-source[_ngcontent-%COMP%] mat-checkbox[_ngcontent-%COMP%]{display:flex;margin-left:5px;margin-right:5px}.pointer-summary-option[_ngcontent-%COMP%]{display:block;margin-right:10px;margin-bottom:15px}.pointer-summary-slide-toggle-container[_ngcontent-%COMP%]{overflow-x:hidden}.pointer-summary-slide-toggle-container[_ngcontent-%COMP%] mat-slide-toggle[_ngcontent-%COMP%]{margin:10px}"], changeDetection: 0 });
420
+ } }, dependencies: [i3.NgForOf, i3.NgIf, i3.NgSwitch, i3.NgSwitchCase, i4.MatTooltip, i5.MatIcon, i6.MatButton, i7.MatMenu, i7.MatMenuItem, i7.MatMenuTrigger, i8.MatRadioGroup, i8.MatRadioButton, i9.MatCheckbox, i10.MatDivider, i11.MatSlideToggle, i12.TranslatePipe], styles: [".checkAllButton[_ngcontent-%COMP%]{text-align:center;padding:0 5px}.igo-search-settings-button[_ngcontent-%COMP%] div.mat-button-ripple-round{border-radius:0}.igo-search-settings-radio-group[_ngcontent-%COMP%]{display:flex;flex-direction:column}.igo-search-settings-radio-group[_ngcontent-%COMP%] mat-radio-button[_ngcontent-%COMP%]{margin:5px}.igo-search-settings-checkbox[_ngcontent-%COMP%] mat-radio-button[_ngcontent-%COMP%]{display:flex}.igo-search-settings-search-source[_ngcontent-%COMP%]{display:flex;width:100%}.igo-search-settings-search-source[_ngcontent-%COMP%] mat-checkbox[_ngcontent-%COMP%]{display:flex;margin-left:5px;margin-right:5px}.search-option[_ngcontent-%COMP%]{display:block;margin-right:10px;margin-bottom:15px}.pointer-summary-slide-toggle-container[_ngcontent-%COMP%]{overflow-x:hidden}.pointer-summary-slide-toggle-container[_ngcontent-%COMP%] mat-slide-toggle[_ngcontent-%COMP%]{margin:10px}"], changeDetection: 0 });
401
421
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SearchSettingsComponent, [{
402
422
  type: Component,
403
- args: [{ selector: 'igo-search-settings', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"igo-search-settings\">\r\n\r\n <button\r\n mat-icon-button\r\n class=\"igo-search-settings-button\"\r\n color=\"primary\"\r\n tooltip-position=\"below\"\r\n matTooltipShowDelay=\"500\"\r\n [matTooltip]=\"'igo.geo.search.menu.tooltip' | translate\"\r\n [matMenuTriggerFor]=\"searchSettingsMenu\">\r\n <mat-icon svgIcon=\"chevron-down\"></mat-icon>\r\n </button>\r\n <mat-menu\r\n #searchSettingsMenu=\"matMenu\"\r\n class=\"no-border-radius\">\r\n <div class=\"checkAllButton\" *ngIf=\"getSearchSources().length>4\">\r\n <button mat-raised-button\r\n (click)=\"checkUncheckAllSources($event)\">{{!searchSourcesAllEnabled ? ('igo.geo.search.searchSources.unselectAll' | translate): ('igo.geo.search.searchSources.selectAll' | translate)}}</button>\r\n </div>\r\n <ng-container *ngFor=\"let source of getSearchSources()\">\r\n <span class=\"igo-search-settings-search-source\">\r\n <mat-checkbox\r\n class=\"igo-search-settings-checkbox\"\r\n [checked]=\"source.enabled\"\r\n [value]=\"source\"\r\n (click)=\"$event.stopPropagation()\"\r\n (change)=\"onCheckSearchSource($event, source)\">\r\n </mat-checkbox>\r\n <button *ngIf=\"source.settings.length\u00A0>\u00A00\"\r\n [matMenuTriggerFor]=\"sub_menu\"\r\n mat-menu-item>{{source.title}}\r\n </button>\r\n <button\r\n mat-menu-item\r\n *ngIf=\"source.settings.length\u00A0===\u00A00\">\r\n {{source.title}}\r\n </button>\r\n </span>\r\n <mat-menu #sub_menu=\"matMenu\">\r\n <ng-container *ngFor=\"let setting of source.settings\">\r\n <button\r\n mat-menu-item\r\n [matMenuTriggerFor]=\"test_sub_menu\">\r\n {{'igo.geo.search.searchSources.settings.'+ setting.title | translate}}\r\n </button>\r\n <mat-menu #test_sub_menu=\"matMenu\"\r\n [ngSwitch]=\"setting.type\"\r\n yPosition=\"above\">\r\n <span *ngSwitchCase=\"'radiobutton'\">\r\n <mat-radio-group\r\n class=\"igo-search-settings-radio-group\"\r\n [value]=\"setting\">\r\n <mat-radio-button *ngFor=\"let settingValue of setting.values\"\r\n class=\"mat-typography\"\r\n [value]=\"settingValue\"\r\n [matTooltip]=\"getAvailableHashtagsValues(settingValue)\"\r\n [checked]=\"settingValue.enabled\"\r\n (click)=\"$event.stopPropagation()\"\r\n (change)=\"settingsValueCheckedRadioButton($event, source, setting, settingValue)\">\r\n {{settingValue.title | translate}}\r\n </mat-radio-button>\r\n </mat-radio-group>\r\n </span>\r\n <span *ngSwitchCase=\"'checkbox'\">\r\n <div class=\"checkAllButton\" *ngIf=\"setting.values.length\u00A0>\u00A03\">\r\n <button mat-raised-button\r\n (click)=\"checkUncheckAll($event, source, setting)\">{{setting.allEnabled || setting.allEnabled === undefined ? ('igo.geo.search.searchSources.settings.unselectAll' | translate): ('igo.geo.search.searchSources.settings.selectAll' | translate)}}</button>\r\n </div>\r\n <mat-checkbox *ngFor=\"let settingValue of getAvailableValues(setting)\"\r\n class=\"mat-menu-item\"\r\n [style.display]=\"displayBlock\"\r\n [checked]=\"settingValue.enabled\"\r\n [value]=\"setting\"\r\n [matTooltip]=\"getAvailableHashtagsValues(settingValue)\"\r\n (click)=\"$event.stopPropagation()\"\r\n (change)=\"settingsValueCheckedCheckbox($event, source, setting, settingValue)\">\r\n {{settingValue.title | translate}}\r\n </mat-checkbox>\r\n </span>\r\n </mat-menu>\r\n </ng-container>\r\n </mat-menu>\r\n </ng-container>\r\n <span *ngIf=\"hasPointerReverseSearchSource && !isTouchScreen\">\r\n <mat-divider></mat-divider>\r\n <span class=\"pointer-summary-slide-toggle-container mat-typography\">\r\n <mat-slide-toggle class=\"pointer-summary-option\" (change)=\"changePointerReverseSearch($event)\" tooltip-position=\"below\"\r\n matTooltipShowDelay=\"500\" [matTooltip]=\"'igo.geo.search.pointerSearchSummary.tooltip' | translate\"\r\n (click)=\"$event.stopPropagation()\" [checked]=\"pointerSummaryEnabled\" [labelPosition]=\"'after'\">\r\n {{'igo.geo.search.pointerSearchSummary.title' | translate}}\r\n </mat-slide-toggle>\r\n <mat-slide-toggle class=\"pointer-summary-option\" (change)=\"changeSearchResultsGeometry($event)\" tooltip-position=\"below\"\r\n matTooltipShowDelay=\"500\" [matTooltip]=\"'igo.geo.search.searchResultsGeometry.tooltip' | translate\"\r\n (click)=\"$event.stopPropagation()\" [checked]=\"searchResultsGeometryEnabled\" [labelPosition]=\"'after'\">\r\n {{'igo.geo.search.searchResultsGeometry.title' | translate}}\r\n </mat-slide-toggle>\r\n </span>\r\n </span>\r\n </mat-menu>\r\n</div>\r\n", styles: [".checkAllButton{text-align:center;padding:0 5px}.igo-search-settings-button ::ng-deep div.mat-button-ripple-round{border-radius:0}.igo-search-settings-radio-group{display:flex;flex-direction:column}.igo-search-settings-radio-group mat-radio-button{margin:5px}.igo-search-settings-checkbox mat-radio-button{display:flex}.igo-search-settings-search-source{display:flex;width:100%}.igo-search-settings-search-source mat-checkbox{display:flex;margin-left:5px;margin-right:5px}.pointer-summary-option{display:block;margin-right:10px;margin-bottom:15px}.pointer-summary-slide-toggle-container{overflow-x:hidden}.pointer-summary-slide-toggle-container mat-slide-toggle{margin:10px}\n"] }]
423
+ args: [{ selector: 'igo-search-settings', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"igo-search-settings\">\n\n <button\n mat-icon-button\n class=\"igo-search-settings-button\"\n color=\"primary\"\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.geo.search.menu.tooltip' | translate\"\n [matMenuTriggerFor]=\"searchSettingsMenu\">\n <mat-icon svgIcon=\"chevron-down\"></mat-icon>\n </button>\n <mat-menu\n #searchSettingsMenu=\"matMenu\"\n class=\"no-border-radius\">\n <div class=\"checkAllButton\" *ngIf=\"getSearchSources().length>4\">\n <button mat-raised-button\n (click)=\"checkUncheckAllSources($event)\">{{!searchSourcesAllEnabled ? ('igo.geo.search.searchSources.unselectAll' | translate): ('igo.geo.search.searchSources.selectAll' | translate)}}</button>\n </div>\n <ng-container *ngFor=\"let source of getSearchSources()\">\n <span class=\"igo-search-settings-search-source\">\n <mat-checkbox\n class=\"igo-search-settings-checkbox\"\n [checked]=\"source.enabled\"\n [value]=\"source\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"onCheckSearchSource($event, source)\">\n </mat-checkbox>\n <button *ngIf=\"source.settings.length\u00A0>\u00A00\"\n [matMenuTriggerFor]=\"sub_menu\"\n mat-menu-item>{{source.title}}\n </button>\n <button\n mat-menu-item\n *ngIf=\"source.settings.length\u00A0===\u00A00\">\n {{source.title}}\n </button>\n </span>\n <mat-menu #sub_menu=\"matMenu\">\n <ng-container *ngFor=\"let setting of source.settings\">\n <button\n mat-menu-item\n [matMenuTriggerFor]=\"test_sub_menu\">\n {{'igo.geo.search.searchSources.settings.'+ setting.title | translate}}\n </button>\n <mat-menu #test_sub_menu=\"matMenu\"\n [ngSwitch]=\"setting.type\"\n yPosition=\"above\">\n <span *ngSwitchCase=\"'radiobutton'\">\n <mat-radio-group\n class=\"igo-search-settings-radio-group\"\n [value]=\"setting\">\n <mat-radio-button *ngFor=\"let settingValue of setting.values\"\n class=\"mat-typography\"\n [value]=\"settingValue\"\n [matTooltip]=\"getAvailableHashtagsValues(settingValue)\"\n [checked]=\"settingValue.enabled\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"settingsValueCheckedRadioButton($event, source, setting, settingValue)\">\n {{settingValue.title | translate}}\n </mat-radio-button>\n </mat-radio-group>\n </span>\n <span *ngSwitchCase=\"'checkbox'\">\n <div class=\"checkAllButton\" *ngIf=\"setting.values.length\u00A0>\u00A03\">\n <button mat-raised-button\n (click)=\"checkUncheckAll($event, source, setting)\">{{setting.allEnabled || setting.allEnabled === undefined ? ('igo.geo.search.searchSources.settings.unselectAll' | translate): ('igo.geo.search.searchSources.settings.selectAll' | translate)}}</button>\n </div>\n <mat-checkbox *ngFor=\"let settingValue of getAvailableValues(setting)\"\n class=\"mat-menu-item\"\n [style.display]=\"displayBlock\"\n [checked]=\"settingValue.enabled\"\n [value]=\"setting\"\n [matTooltip]=\"getAvailableHashtagsValues(settingValue)\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"settingsValueCheckedCheckbox($event, source, setting, settingValue)\">\n {{settingValue.title | translate}}\n </mat-checkbox>\n </span>\n </mat-menu>\n </ng-container>\n </mat-menu>\n </ng-container>\n <span *ngIf=\"hasPointerReverseSearchSource && !isTouchScreen\">\n <mat-divider></mat-divider>\n <span class=\"pointer-summary-slide-toggle-container mat-typography\">\n <mat-slide-toggle class=\"search-option\" (change)=\"changePointerReverseSearch($event)\" tooltip-position=\"below\"\n matTooltipShowDelay=\"500\" [matTooltip]=\"'igo.geo.search.pointerSearchSummary.tooltip' | translate\"\n (click)=\"$event.stopPropagation()\" [checked]=\"pointerSummaryEnabled\" [labelPosition]=\"'after'\">\n {{'igo.geo.search.pointerSearchSummary.title' | translate}}\n </mat-slide-toggle>\n <mat-slide-toggle class=\"search-option\" (change)=\"changeSearchResultsGeometry($event)\" tooltip-position=\"below\"\n matTooltipShowDelay=\"500\" [matTooltip]=\"'igo.geo.search.searchResultsGeometry.tooltip' | translate\"\n (click)=\"$event.stopPropagation()\" [checked]=\"searchResultsGeometryEnabled\" [labelPosition]=\"'after'\">\n {{'igo.geo.search.searchResultsGeometry.title' | translate}}\n </mat-slide-toggle>\n <mat-slide-toggle class=\"search-option\" (change)=\"reverseSearchCoordsFormat($event)\" tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"reverseSearchCoordsFormatEnabled ? ('igo.geo.search.reverseCoordFormat.tooltipLatLon' | translate)\n : ('igo.geo.search.reverseCoordFormat.tooltipLonLat' | translate)\"\n (click)=\"$event.stopPropagation()\" [checked]=\"reverseSearchCoordsFormatEnabled\" [labelPosition]=\"'after'\">\n {{'igo.geo.search.reverseCoordFormat.title' | translate}}\n </mat-slide-toggle>\n </span>\n </span>\n </mat-menu>\n</div>\n", styles: [".checkAllButton{text-align:center;padding:0 5px}.igo-search-settings-button ::ng-deep div.mat-button-ripple-round{border-radius:0}.igo-search-settings-radio-group{display:flex;flex-direction:column}.igo-search-settings-radio-group mat-radio-button{margin:5px}.igo-search-settings-checkbox mat-radio-button{display:flex}.igo-search-settings-search-source{display:flex;width:100%}.igo-search-settings-search-source mat-checkbox{display:flex;margin-left:5px;margin-right:5px}.search-option{display:block;margin-right:10px;margin-bottom:15px}.pointer-summary-slide-toggle-container{overflow-x:hidden}.pointer-summary-slide-toggle-container mat-slide-toggle{margin:10px}\n"] }]
404
424
  }], function () { return [{ type: i1.SearchSourceService }, { type: i2.MediaService }, { type: i2.StorageService }]; }, { pointerSummaryEnabled: [{
405
425
  type: Input
406
426
  }], searchResultsGeometryEnabled: [{
407
427
  type: Input
428
+ }], reverseSearchCoordsFormatEnabled: [{
429
+ type: Input
408
430
  }], searchSourceChange: [{
409
431
  type: Output
410
432
  }], pointerSummaryStatus: [{
411
433
  type: Output
412
434
  }], searchResultsGeometryStatus: [{
413
435
  type: Output
436
+ }], reverseSearchCoordsFormatStatus: [{
437
+ type: Output
414
438
  }], handleKeyboardEvent: [{
415
439
  type: HostListener,
416
440
  args: ['document:keydown', ['$event']]
417
441
  }] }); })();
418
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLXNldHRpbmdzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL3NlYXJjaC9zZWFyY2gtc2V0dGluZ3Mvc2VhcmNoLXNldHRpbmdzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL3NlYXJjaC9zZWFyY2gtc2V0dGluZ3Mvc2VhcmNoLXNldHRpbmdzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsTUFBTSxFQUNOLFlBQVksRUFDWix1QkFBdUIsRUFFdkIsWUFBWSxFQUNaLEtBQUssRUFDTixNQUFNLGVBQWUsQ0FBQztBQVF2QixPQUFPLEVBQ0wsK0JBQStCLEVBQy9CLGVBQWUsRUFDZixzQkFBc0IsRUFDdkIsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7OztJQ1I1Qiw4QkFBZ0UsZ0JBQUE7SUFFNUQsMEtBQVMsZUFBQSxxQ0FBOEIsQ0FBQSxJQUFDO0lBQUMsWUFBZ0o7OztJQUFBLGlCQUFTLEVBQUE7OztJQUF6SixlQUFnSjtJQUFoSix5TEFBZ0o7OztJQVd2TCxrQ0FFZ0I7SUFBQSxZQUNoQjtJQUFBLGlCQUFTOzs7O0lBRlAsdUNBQThCO0lBQ2hCLGVBQ2hCO0lBRGdCLCtDQUNoQjs7O0lBQ0Esa0NBRXVDO0lBQ3JDLFlBQ0Y7SUFBQSxpQkFBUzs7O0lBRFAsZUFDRjtJQURFLGdEQUNGOzs7O0lBZ0JVLDRDQU1vRjtJQURsRiw0S0FBUyx3QkFBd0IsSUFBQyxvWUFDeEIsZUFBQSx5RkFBc0UsQ0FBQSxJQUQ5QztJQUVsQyxZQUNGOztJQUFBLGlCQUFtQjs7OztJQU5qQix3Q0FBc0Isb0VBQUEscUNBQUE7SUFLdEIsZUFDRjtJQURFLDZFQUNGOzs7SUFaSiw0QkFBb0MsMEJBQUE7SUFJaEMsd0lBUW1CO0lBQ3JCLGlCQUFrQixFQUFBOzs7SUFWaEIsZUFBaUI7SUFBakIsbUNBQWlCO0lBQzBCLGVBQWlCO0lBQWpCLDRDQUFpQjs7OztJQVk5RCw4QkFBOEQsZ0JBQUE7SUFFMUQsb1RBQVMsZUFBQSx1REFBd0MsQ0FBQSxJQUFDO0lBQUMsWUFBZ007OztJQUFBLGlCQUFTLEVBQUE7OztJQUF6TSxlQUFnTTtJQUFoTSwwT0FBZ007Ozs7SUFFdlAsd0NBT2lGO0lBRC9FLG9LQUFTLHdCQUF3QixJQUFDLDRYQUN4QixlQUFBLHNGQUFtRSxDQUFBLElBRDNDO0lBRWxDLFlBQ0Y7O0lBQUEsaUJBQWU7Ozs7O0lBUGIsK0NBQThCO0lBQzlCLGtEQUFnQyxzQkFBQSxvRUFBQTtJQUtoQyxlQUNGO0lBREUsNkVBQ0Y7OztJQWRGLDRCQUFpQztJQUMvQiw2R0FHTTtJQUNOLGdJQVNlO0lBQ2pCLGlCQUFPOzs7O0lBZHdCLGVBQStCO0lBQS9CLG9EQUErQjtJQUlyQixlQUE4QjtJQUE5QixpRUFBOEI7OztJQTdCM0UsNkJBQXNEO0lBQ3BELGtDQUV3QztJQUN0QyxZQUNGOztJQUFBLGlCQUFTO0lBQ1Qsd0NBRW9CO0lBQ2xCLHlHQWNPO0lBQ1AseUdBZU87SUFDVCxpQkFBVztJQUNiLDBCQUFlOzs7O0lBdENULGVBQW1DO0lBQW5DLHdDQUFtQztJQUNyQyxlQUNGO0lBREUsbUhBQ0Y7SUFFRSxlQUF5QjtJQUF6QiwyQ0FBeUI7SUFFbEIsZUFBMkI7SUFBM0IsNENBQTJCO0lBZTNCLGVBQXdCO0lBQXhCLHlDQUF3Qjs7OztJQTVDekMsNkJBQXdEO0lBQ3RELGdDQUFnRCx1QkFBQTtJQUs1QywrSEFBUyx3QkFBd0IsSUFBQyw2T0FDeEIsZUFBQSw4Q0FBbUMsQ0FBQSxJQURYO0lBRXBDLGlCQUFlO0lBQ2YsOEZBR1M7SUFDVCw4RkFJUztJQUNYLGlCQUFPO0lBQ0wsMENBQThCO0lBQzVCLHlHQXlDZTtJQUNqQixpQkFBVztJQUNmLDBCQUFlOzs7SUEzRFQsZUFBMEI7SUFBMUIsMkNBQTBCLG9CQUFBO0lBS25CLGVBQWdDO0lBQWhDLG9EQUFnQztJQU10QyxlQUFrQztJQUFsQyxzREFBa0M7SUFLRCxlQUFrQjtJQUFsQiw0Q0FBa0I7Ozs7SUE0QzFELDRCQUE4RDtJQUM1RCw4QkFBMkI7SUFDM0IsZ0NBQW9FLDJCQUFBO0lBQ2pCLHlMQUFVLGVBQUEsMENBQWtDLENBQUEsSUFBQyw4R0FFbkYsd0JBQXdCLElBRjJEOztJQUc1RixZQUNGOztJQUFBLGlCQUFtQjtJQUNuQiw0Q0FFd0c7SUFGdkQseUxBQVUsZUFBQSwyQ0FBbUMsQ0FBQSxJQUFDLDhHQUVwRix3QkFBd0IsSUFGNEQ7O0lBRzdGLFlBQ0Y7O0lBQUEsaUJBQW1CLEVBQUEsRUFBQTs7O0lBUlMsZUFBd0U7SUFBeEUsZ0dBQXdFLHlDQUFBLDBCQUFBO0lBRWxHLGVBQ0Y7SUFERSxtR0FDRjtJQUU0QixlQUF5RTtJQUF6RSxrR0FBeUUsZ0RBQUEsMEJBQUE7SUFFbkcsZUFDRjtJQURFLHFHQUNGOztBRHJFVjs7Ozs7OztHQU9HO0FBT0gsTUFBTSxPQUFPLHVCQUF1QjtJQXVDbEMsWUFDVSxtQkFBd0MsRUFDeEMsWUFBMEIsRUFDMUIsY0FBOEI7UUFGOUIsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4QyxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUF6Q2pDLGtDQUE2QixHQUFZLEtBQUssQ0FBQztRQUMvQyw0QkFBdUIsR0FBWSxLQUFLLENBQUM7UUFFekMsV0FBTSxHQUFHLEVBQUUsQ0FBQztRQUNaLGdCQUFXLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBRXpCLGlCQUFZLEdBQUcsT0FBTyxDQUFDO1FBTXJCLDBCQUFxQixHQUFZLEtBQUssQ0FBQztRQUN2QyxpQ0FBNEIsR0FBWSxLQUFLLENBQUM7UUFFdkQ7O1dBRUc7UUFDTyx1QkFBa0IsR0FBRyxJQUFJLFlBQVksRUFBZ0IsQ0FBQztRQUVoRTs7V0FFRztRQUNPLHlCQUFvQixHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFFN0Q7O1dBRUc7UUFDTyxnQ0FBMkIsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO0lBY2pFLENBQUM7SUFsQ0osSUFBSSxhQUFhO1FBQ2YsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzNDLENBQUM7SUFxQkQsbUJBQW1CLENBQUMsS0FBb0I7UUFDdEMsSUFBSSxLQUFLLENBQUMsR0FBRyxLQUFLLElBQUksRUFBRTtZQUN0QixJQUFJLENBQUMscUJBQXFCLEdBQUcsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUM7WUFDekQsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQztTQUM1RDtJQUNILENBQUM7SUFRRCxRQUFRO1FBQ04sSUFBSSxDQUFDLDZCQUE2QixHQUFHLElBQUksQ0FBQyx3Q0FBd0MsRUFBRSxDQUFDO0lBQ3ZGLENBQUM7SUFFRDs7O09BR0c7SUFDSCxnQkFBZ0I7UUFDZCxNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxtQkFBbUI7YUFDL0MsVUFBVSxFQUFFO2FBQ1osTUFBTSxDQUFDLGVBQWUsQ0FBQzthQUN2QixNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxLQUFLLEtBQUssSUFBSSxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFekUsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLENBQUMsbUJBQW1CO2FBQ2xELFVBQVUsRUFBRTthQUNaLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQzthQUM5QixNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxLQUFLLEtBQUssSUFBSSxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDekUsTUFBTSxPQUFPLEdBQUcsaUJBQWlCLENBQUMsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDL0QsSUFBSSxDQUFDLDhCQUE4QixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzdDLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRDs7O09BR0c7SUFDSCx3Q0FBd0M7UUFDdEMsSUFDRSxJQUFJLENBQUMsbUJBQW1CO2FBQ3JCLGlCQUFpQixFQUFFO2FBQ25CLE1BQU0sQ0FBQywrQkFBK0IsQ0FBQyxDQUFDLE1BQU0sRUFDakQ7WUFDQSxPQUFPLElBQUksQ0FBQztTQUNiO2FBQU07WUFDTCxPQUFPLEtBQUssQ0FBQztTQUNkO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNILDRCQUE0QixDQUMxQixLQUF3QixFQUN4QixNQUFvQixFQUNwQixPQUE2QixFQUM3QixZQUE0QjtRQUU1QixZQUFZLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUM7UUFDckMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsOEJBQThCLENBQUMsT0FBNkI7UUFDMUQsSUFBSSxPQUFPLENBQUMsVUFBVSxLQUFLLFNBQVMsRUFBRTtZQUNwQyxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQy9ELE9BQU8sQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO2FBQzVCO2lCQUFNO2dCQUNMLE9BQU8sQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO2FBQzNCO1NBQ0Y7YUFBTTtZQUNMLE9BQU8sQ0FBQyxVQUFVLEdBQUcsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDO1NBQzFDO0lBQ0gsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsOEJBQThCLENBQUMsT0FBdUI7UUFDcEQsTUFBTSxpQkFBaUIsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDO1FBQzVFLE1BQU0sa0JBQWtCLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDO2FBQ25FLE1BQU0sQ0FBQztRQUNWLElBQUksQ0FBQyx1QkFBdUI7WUFDMUIsaUJBQWlCLElBQUksa0JBQWtCLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQzNELENBQUM7SUFFRDs7O09BR0c7SUFDSCxlQUFlLENBQUMsS0FBSyxFQUFFLE1BQW9CLEVBQUUsT0FBNkI7UUFDeEUsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyw4QkFBOEIsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM3QyxPQUFPLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFlBQVksRUFBRSxFQUFFO1lBQ3RDLFlBQVksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQztRQUM1QyxDQUFDLENBQUMsQ0FBQztRQUNILE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNwQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxzQkFBc0IsQ0FBQyxLQUFLO1FBQzFCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUNyQyxNQUFNLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQztZQUM5QyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3ZDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7T0FHRztJQUNILCtCQUErQixDQUM3QixLQUFxQixFQUNyQixNQUFvQixFQUNwQixPQUE2QixFQUM3QixZQUE0QjtRQUU1QixPQUFPLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQzlCLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxZQUFZLENBQUMsS0FBSyxFQUFFO2dCQUNyQyxJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUM7YUFDdEM7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQzthQUNyQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELG1CQUFtQixDQUFDLEtBQXdCLEVBQUUsTUFBb0I7UUFDaEUsTUFBTSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDO1FBQy9CLE1BQU0sT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxHQUFHLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBbUIsQ0FBQztRQUMvRixPQUFPLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUM7UUFDakMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQ3JCLE1BQU0sQ0FBQyxLQUFLLEVBQUUsR0FBRyxVQUFVLEVBQzNCLE9BQU8sQ0FDUixDQUFDO1FBQ0YsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsa0JBQWtCLENBQUMsT0FBNkI7UUFDOUMsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsS0FBSyxLQUFLLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsMEJBQTBCLENBQUMsT0FBdUI7UUFDaEQsSUFBSSxPQUFPLENBQUMsUUFBUSxFQUFFO1lBQ3BCLE9BQU8sT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDeEQ7UUFDRCxPQUFPO0lBQ1QsQ0FBQztJQUVELGVBQWUsQ0FBQyxLQUFLO1FBQ25CLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsMEJBQTBCLENBQUMsS0FBSztRQUM5QixJQUFJLENBQUMscUJBQXFCLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQztRQUMzQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRCwyQkFBMkIsQ0FBQyxLQUFLO1FBQy9CLElBQUksQ0FBQyw0QkFBNEIsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDO1FBQ2xELElBQUksQ0FBQywyQkFBMkIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLDRCQUE0QixDQUFDLENBQUM7SUFDM0UsQ0FBQzs7OEZBcE5VLHVCQUF1QjswRUFBdkIsdUJBQXVCOzhHQUF2QiwrQkFBMkI7O1FDeEN4Qyw4QkFBaUMsZ0JBQUE7O1FBVTdCLDhCQUE0QztRQUM5QyxpQkFBUztRQUNULHNDQUUyQjtRQUN6Qix3RUFHTTtRQUNKLDBGQStEZTtRQUNmLDRFQWNPO1FBQ1gsaUJBQVcsRUFBQTs7O1FBMUZULGVBQXdEO1FBQXhELGdGQUF3RCwwQkFBQTtRQU8zQixlQUFpQztRQUFqQyx3REFBaUM7UUFJM0IsZUFBcUI7UUFBckIsZ0RBQXFCO1FBZ0UvQyxlQUFxRDtRQUFyRCw4RUFBcUQ7O3VGRDNDckQsdUJBQXVCO2NBTm5DLFNBQVM7MkJBQ0UscUJBQXFCLG1CQUdkLHVCQUF1QixDQUFDLE1BQU07OEhBZXRDLHFCQUFxQjtrQkFBN0IsS0FBSztZQUNHLDRCQUE0QjtrQkFBcEMsS0FBSztZQUtJLGtCQUFrQjtrQkFBM0IsTUFBTTtZQUtHLG9CQUFvQjtrQkFBN0IsTUFBTTtZQUtHLDJCQUEyQjtrQkFBcEMsTUFBTTtZQUdQLG1CQUFtQjtrQkFEbEIsWUFBWTttQkFBQyxrQkFBa0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1hdENoZWNrYm94Q2hhbmdlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3gnO1xyXG5pbXBvcnQgeyBNYXRSYWRpb0NoYW5nZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3JhZGlvJztcclxuXHJcbmltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIE91dHB1dCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgT25Jbml0LFxyXG4gIEhvc3RMaXN0ZW5lcixcclxuICBJbnB1dFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgU2VhcmNoU291cmNlU2VydmljZSB9IGZyb20gJy4uL3NoYXJlZC9zZWFyY2gtc291cmNlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTZWFyY2hTb3VyY2UgfSBmcm9tICcuLi9zaGFyZWQvc291cmNlcy9zb3VyY2UnO1xyXG5pbXBvcnQge1xyXG4gIFNlYXJjaFNvdXJjZVNldHRpbmdzLFxyXG4gIFNldHRpbmdPcHRpb25zXHJcbn0gZnJvbSAnLi4vc2hhcmVkL3NvdXJjZXMvc291cmNlLmludGVyZmFjZXMnO1xyXG5pbXBvcnQge1xyXG4gIHNvdXJjZUNhblJldmVyc2VTZWFyY2hBc1N1bW1hcnksXHJcbiAgc291cmNlQ2FuU2VhcmNoLFxyXG4gIHNvdXJjZUNhblJldmVyc2VTZWFyY2hcclxufSBmcm9tICcuLi9zaGFyZWQvc2VhcmNoLnV0aWxzJztcclxuaW1wb3J0IHsgTWVkaWFTZXJ2aWNlLCBTdG9yYWdlU2VydmljZSB9IGZyb20gJ0BpZ28yL2NvcmUnO1xyXG5cclxuLyoqXHJcbiAqIFRoaXMgY29tcG9uZW50IGFsbG93cyBhIHVzZXIgdG8gc2VsZWN0IGEgc2VhcmNoIHR5cGUgeW8gZW5hYmxlLiBJbiBpdCdzXHJcbiAqIGN1cnJlbnQgdmVyc2lvbiwgb25seSBvbmUgc2VhcmNoIHR5cGUgY2FuIGJlIHNlbGVjdGVkIGF0IG9uY2UgKHJhZGlvKS4gSWZcclxuICogdGhpcyBjb21wb25lbnQgd2VyZSB0byBzdXBwb3J0IG1vcmUgdGhhbiBvbmUgc2VhcmNoIHNvdXJjZSBlbmFibGVkIChjaGVja2JveCksXHJcbiAqIHRoZSBzZWFyY2hiYXIgY29tcG9uZW50IHdvdWxkIHJlcXVpcmUgYSBzbWFsbCBjaGFuZ2UgdG8gaXQnc1xyXG4gKiBwbGFjZWhvbGRlciBnZXR0ZXIuIFRoZSBzZWFyY2ggc291cmNlIHNlcnZpY2UgYWxyZWFkeSBzdXBwb3J0cyBoYXZpbmdcclxuICogbW9yZSB0aGFuIG9uZSBzZWFyY2ggc291cmNlIGVuYWJsZWQuXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2lnby1zZWFyY2gtc2V0dGluZ3MnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWFyY2gtc2V0dGluZ3MuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3NlYXJjaC1zZXR0aW5ncy5jb21wb25lbnQuc2NzcyddLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTZWFyY2hTZXR0aW5nc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgcHVibGljIGhhc1BvaW50ZXJSZXZlcnNlU2VhcmNoU291cmNlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIHNlYXJjaFNvdXJjZXNBbGxFbmFibGVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHB1YmxpYyBidWZmZXIgPSBbXTtcclxuICBwdWJsaWMgbGFzdEtleVRpbWUgPSBEYXRlLm5vdygpO1xyXG5cclxuICBwdWJsaWMgZGlzcGxheUJsb2NrID0gJ2Jsb2NrJztcclxuXHJcbiAgZ2V0IGlzVG91Y2hTY3JlZW4oKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5tZWRpYVNlcnZpY2UuaXNUb3VjaFNjcmVlbigpO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KCkgcG9pbnRlclN1bW1hcnlFbmFibGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc2VhcmNoUmVzdWx0c0dlb21ldHJ5RW5hYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvKipcclxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIGVuYWJsZWQgc2VhcmNoIHNvdXJjZSBjaGFuZ2VzXHJcbiAgICovXHJcbiAgQE91dHB1dCgpIHNlYXJjaFNvdXJjZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8U2VhcmNoU291cmNlPigpO1xyXG5cclxuICAvKipcclxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIHBvaW50ZXIgc3VtbWFyeSBpcyBhY3RpdmF0ZWRcclxuICAgKi9cclxuICBAT3V0cHV0KCkgcG9pbnRlclN1bW1hcnlTdGF0dXMgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcblxyXG4gIC8qKlxyXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgc2hvdyBnZW9tZXRyeSBzdW1tYXJ5IGlzIGNoYW5nZWRcclxuICAgKi9cclxuICBAT3V0cHV0KCkgc2VhcmNoUmVzdWx0c0dlb21ldHJ5U3RhdHVzID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG5cclxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDprZXlkb3duJywgWyckZXZlbnQnXSlcclxuICBoYW5kbGVLZXlib2FyZEV2ZW50KGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnRjInKSB7XHJcbiAgICAgIHRoaXMucG9pbnRlclN1bW1hcnlFbmFibGVkID0gIXRoaXMucG9pbnRlclN1bW1hcnlFbmFibGVkO1xyXG4gICAgICB0aGlzLnBvaW50ZXJTdW1tYXJ5U3RhdHVzLmVtaXQodGhpcy5wb2ludGVyU3VtbWFyeUVuYWJsZWQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHNlYXJjaFNvdXJjZVNlcnZpY2U6IFNlYXJjaFNvdXJjZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIG1lZGlhU2VydmljZTogTWVkaWFTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBzdG9yYWdlU2VydmljZTogU3RvcmFnZVNlcnZpY2VcclxuICApIHt9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5oYXNQb2ludGVyUmV2ZXJzZVNlYXJjaFNvdXJjZSA9IHRoaXMuaGFzUmV2ZXJzZVNlYXJjaFNvdXJjZXNGb3JQb2ludGVyU3VtbWFyeSgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0IGFsbCBzZWFyY2ggc291cmNlc1xyXG4gICAqIEBpbnRlcm5hbFxyXG4gICAqL1xyXG4gIGdldFNlYXJjaFNvdXJjZXMoKTogU2VhcmNoU291cmNlW10ge1xyXG4gICAgY29uc3QgdGV4dFNlYXJjaFNvdXJjZXMgPSB0aGlzLnNlYXJjaFNvdXJjZVNlcnZpY2VcclxuICAgICAgLmdldFNvdXJjZXMoKVxyXG4gICAgICAuZmlsdGVyKHNvdXJjZUNhblNlYXJjaClcclxuICAgICAgLmZpbHRlcigocykgPT4gcy5hdmFpbGFibGUgJiYgcy5nZXRJZCgpICE9PSAnbWFwJyAmJiBzLnNob3dJblNldHRpbmdzKTtcclxuXHJcbiAgICBjb25zdCByZXZlcnNlU2VhcmNoU291cmNlcyA9IHRoaXMuc2VhcmNoU291cmNlU2VydmljZVxyXG4gICAgICAuZ2V0U291cmNlcygpXHJcbiAgICAgIC5maWx0ZXIoc291cmNlQ2FuUmV2ZXJzZVNlYXJjaClcclxuICAgICAgLmZpbHRlcigocykgPT4gcy5hdmFpbGFibGUgJiYgcy5nZXRJZCgpICE9PSAnbWFwJyAmJiBzLnNob3dJblNldHRpbmdzKTtcclxuICAgIGNvbnN0IHNvdXJjZXMgPSB0ZXh0U2VhcmNoU291cmNlcy5jb25jYXQocmV2ZXJzZVNlYXJjaFNvdXJjZXMpO1xyXG4gICAgdGhpcy5jb21wdXRlU291cmNlc0NoZWNrQWxsQmVoYXZpb3Ioc291cmNlcyk7XHJcbiAgICByZXR1cm4gc291cmNlcztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCBhbGwgc2VhcmNoIHNvdXJjZXMgdXNhYmxlIGZvciBwb2ludGVyIHN1bW1hcnlcclxuICAgKiBAaW50ZXJuYWxcclxuICAgKi9cclxuICBoYXNSZXZlcnNlU2VhcmNoU291cmNlc0ZvclBvaW50ZXJTdW1tYXJ5KCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLnNlYXJjaFNvdXJjZVNlcnZpY2VcclxuICAgICAgICAuZ2V0RW5hYmxlZFNvdXJjZXMoKVxyXG4gICAgICAgIC5maWx0ZXIoc291cmNlQ2FuUmV2ZXJzZVNlYXJjaEFzU3VtbWFyeSkubGVuZ3RoXHJcbiAgICApIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBUcmlnZ2VyZWQgd2hlbiBhIHNldHRpbmcgaXMgY2hlY2tlZCAoY2hlY2tib3ggc3R5bGUpXHJcbiAgICogQGludGVybmFsXHJcbiAgICovXHJcbiAgc2V0dGluZ3NWYWx1ZUNoZWNrZWRDaGVja2JveChcclxuICAgIGV2ZW50OiBNYXRDaGVja2JveENoYW5nZSxcclxuICAgIHNvdXJjZTogU2VhcmNoU291cmNlLFxyXG4gICAgc2V0dGluZzogU2VhcmNoU291cmNlU2V0dGluZ3MsXHJcbiAgICBzZXR0aW5nVmFsdWU6IFNldHRpbmdPcHRpb25zXHJcbiAgKSB7XHJcbiAgICBzZXR0aW5nVmFsdWUuZW5hYmxlZCA9IGV2ZW50LmNoZWNrZWQ7XHJcbiAgICBzb3VyY2Uuc2V0UGFyYW1Gcm9tU2V0dGluZyhzZXR0aW5nKTtcclxuICAgIHRoaXMuc2VhcmNoU291cmNlQ2hhbmdlLmVtaXQoc291cmNlKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERlZmluaW5nIHRoZSBhY3Rpb24gdG8gZG8gZm9yIGNoZWNrL3VuY2hlY2sgY2hlY2tib3hlcyAoc2V0dGluZ3MpXHJcbiAgICogcmV0dXJuIHRydWUgaWYgYWxsIGNoZWNrYm94IG11c3QgYmUgY2hlY2tlZFxyXG4gICAqIHJldHVybiBmYWxzZSBpZiBhbGwgY2hlY2tib3ggbXVzdCBiZSB1bmNoZWNrZWRcclxuICAgKiBAaW50ZXJuYWxcclxuICAgKi9cclxuICBjb21wdXRlU2V0dGluZ0NoZWNrQWxsQmVoYXZpb3Ioc2V0dGluZzogU2VhcmNoU291cmNlU2V0dGluZ3MpIHtcclxuICAgIGlmIChzZXR0aW5nLmFsbEVuYWJsZWQgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICBpZiAoc2V0dGluZy52YWx1ZXMuZmluZCgoc2V0dGluZ1ZhbHVlKSA9PiBzZXR0aW5nVmFsdWUuZW5hYmxlZCkpIHtcclxuICAgICAgICBzZXR0aW5nLmFsbEVuYWJsZWQgPSBmYWxzZTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBzZXR0aW5nLmFsbEVuYWJsZWQgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBzZXR0aW5nLmFsbEVuYWJsZWQgPSAhc2V0dGluZy5hbGxFbmFibGVkO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGVmaW5pbmcgdGhlIGFjdGlvbiB0byBkbyBmb3IgY2hlY2svdW5jaGVjayBjaGVja2JveGVzIChzb3VyY2VzKVxyXG4gICAqIHJldHVybiB0cnVlIGlmIGFsbCBjaGVja2JveCBtdXN0IGJlIGNoZWNrZWRcclxuICAgKiByZXR1cm4gZmFsc2UgaWYgYWxsIGNoZWNrYm94IG11c3QgYmUgdW5jaGVja2VkXHJcbiAgICogQGludGVybmFsXHJcbiAgICovXHJcbiAgY29tcHV0ZVNvdXJjZXNDaGVja0FsbEJlaGF2aW9yKHNvdXJjZXM6IFNlYXJjaFNvdXJjZVtdKSB7XHJcbiAgICBjb25zdCBlbmFibGVkU291cmNlc0NudCA9IHNvdXJjZXMuZmlsdGVyKChzb3VyY2UpID0+IHNvdXJjZS5lbmFibGVkKS5sZW5ndGg7XHJcbiAgICBjb25zdCBkaXNhYmxlZFNvdXJjZXNDbnQgPSBzb3VyY2VzLmZpbHRlcigoc291cmNlKSA9PiAhc291cmNlLmVuYWJsZWQpXHJcbiAgICAgIC5sZW5ndGg7XHJcbiAgICB0aGlzLnNlYXJjaFNvdXJjZXNBbGxFbmFibGVkID1cclxuICAgICAgZW5hYmxlZFNvdXJjZXNDbnQgPj0gZGlzYWJsZWRTb3VyY2VzQ250ID8gZmFsc2UgOiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVHJpZ2dlcmVkIHdoZW4gdGhlIGNoZWNrIGFsbCAvIHVuY2hlY2sgYWxsIHR5cGUgaXMgY2xpY2tlZCxcclxuICAgKiBAaW50ZXJuYWxcclxuICAgKi9cclxuICBjaGVja1VuY2hlY2tBbGwoZXZlbnQsIHNvdXJjZTogU2VhcmNoU291cmNlLCBzZXR0aW5nOiBTZWFyY2hTb3VyY2VTZXR0aW5ncykge1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB0aGlzLmNvbXB1dGVTZXR0aW5nQ2hlY2tBbGxCZWhhdmlvcihzZXR0aW5nKTtcclxuICAgIHNldHRpbmcudmFsdWVzLmZvckVhY2goKHNldHRpbmdWYWx1ZSkgPT4ge1xyXG4gICAgICBzZXR0aW5nVmFsdWUuZW5hYmxlZCA9IHNldHRpbmcuYWxsRW5hYmxlZDtcclxuICAgIH0pO1xyXG4gICAgc291cmNlLnNldFBhcmFtRnJvbVNldHRpbmcoc2V0dGluZyk7XHJcbiAgICB0aGlzLnNlYXJjaFNvdXJjZUNoYW5nZS5lbWl0KHNvdXJjZSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBUcmlnZ2VyZWQgd2hlbiB0aGUgY2hlY2sgYWxsIC8gdW5jaGVjayBhbGwgdHlwZSBpcyBjbGlja2VkLFxyXG4gICAqIEBpbnRlcm5hbFxyXG4gICAqL1xyXG4gIGNoZWNrVW5jaGVja0FsbFNvdXJjZXMoZXZlbnQpIHtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgdGhpcy5nZXRTZWFyY2hTb3VyY2VzKCkubWFwKChzb3VyY2UpID0+IHtcclxuICAgICAgc291cmNlLmVuYWJsZWQgPSB0aGlzLnNlYXJjaFNvdXJjZXNBbGxFbmFibGVkO1xyXG4gICAgICB0aGlzLnNlYXJjaFNvdXJjZUNoYW5nZS5lbWl0KHNvdXJjZSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFRyaWdnZXJlZCB3aGVuIGEgc2V0dGluZyBpcyBjaGVja2VkIChyYWRpb2J1dHRvbiBzdHlsZSlcclxuICAgKiBAaW50ZXJuYWxcclxuICAgKi9cclxuICBzZXR0aW5nc1ZhbHVlQ2hlY2tlZFJhZGlvQnV0dG9uKFxyXG4gICAgZXZlbnQ6IE1hdFJhZGlvQ2hhbmdlLFxyXG4gICAgc291cmNlOiBTZWFyY2hTb3VyY2UsXHJcbiAgICBzZXR0aW5nOiBTZWFyY2hTb3VyY2VTZXR0aW5ncyxcclxuICAgIHNldHRpbmdWYWx1ZTogU2V0dGluZ09wdGlvbnNcclxuICApIHtcclxuICAgIHNldHRpbmcudmFsdWVzLmZvckVhY2goKGNvbmYpID0+IHtcclxuICAgICAgaWYgKGNvbmYudmFsdWUgIT09IHNldHRpbmdWYWx1ZS52YWx1ZSkge1xyXG4gICAgICAgIGNvbmYuZW5hYmxlZCA9ICFldmVudC5zb3VyY2UuY2hlY2tlZDtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb25mLmVuYWJsZWQgPSBldmVudC5zb3VyY2UuY2hlY2tlZDtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICBzb3VyY2Uuc2V0UGFyYW1Gcm9tU2V0dGluZyhzZXR0aW5nKTtcclxuICAgIHRoaXMuc2VhcmNoU291cmNlQ2hhbmdlLmVtaXQoc291cmNlKTtcclxuICB9XHJcblxyXG4gIG9uQ2hlY2tTZWFyY2hTb3VyY2UoZXZlbnQ6IE1hdENoZWNrYm94Q2hhbmdlLCBzb3VyY2U6IFNlYXJjaFNvdXJjZSkge1xyXG4gICAgc291cmNlLmVuYWJsZWQgPSBldmVudC5jaGVja2VkO1xyXG4gICAgY29uc3Qgc3RvcmFnZSA9ICh0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldChzb3VyY2UuZ2V0SWQoKSArICcub3B0aW9ucycpIHx8IHt9KSBhcyBTZXR0aW5nT3B0aW9ucztcclxuICAgIHN0b3JhZ2UuZW5hYmxlZCA9IHNvdXJjZS5lbmFibGVkO1xyXG4gICAgdGhpcy5zdG9yYWdlU2VydmljZS5zZXQoXHJcbiAgICAgIHNvdXJjZS5nZXRJZCgpICsgJy5vcHRpb25zJyxcclxuICAgICAgc3RvcmFnZVxyXG4gICAgKTtcclxuICAgIHRoaXMuc2VhcmNoU291cmNlQ2hhbmdlLmVtaXQoc291cmNlKTtcclxuICB9XHJcblxyXG4gIGdldEF2YWlsYWJsZVZhbHVlcyhzZXR0aW5nOiBTZWFyY2hTb3VyY2VTZXR0aW5ncykge1xyXG4gICAgcmV0dXJuIHNldHRpbmcudmFsdWVzLmZpbHRlcigocykgPT4gcy5hdmFpbGFibGUgIT09IGZhbHNlKTtcclxuICB9XHJcblxyXG4gIGdldEF2YWlsYWJsZUhhc2h0YWdzVmFsdWVzKHNldHRpbmc6IFNldHRpbmdPcHRpb25zKSB7XHJcbiAgICBpZiAoc2V0dGluZy5oYXNodGFncykge1xyXG4gICAgICByZXR1cm4gc2V0dGluZy5oYXNodGFncy5tYXAoKGgpID0+ICcjJyArIGgpLmpvaW4oJywgJyk7XHJcbiAgICB9XHJcbiAgICByZXR1cm47XHJcbiAgfVxyXG5cclxuICBzdG9wUHJvcGFnYXRpb24oZXZlbnQpIHtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gIH1cclxuXHJcbiAgY2hhbmdlUG9pbnRlclJldmVyc2VTZWFyY2goZXZlbnQpIHtcclxuICAgIHRoaXMucG9pbnRlclN1bW1hcnlFbmFibGVkID0gZXZlbnQuY2hlY2tlZDtcclxuICAgIHRoaXMucG9pbnRlclN1bW1hcnlTdGF0dXMuZW1pdCh0aGlzLnBvaW50ZXJTdW1tYXJ5RW5hYmxlZCk7XHJcbiAgfVxyXG5cclxuICBjaGFuZ2VTZWFyY2hSZXN1bHRzR2VvbWV0cnkoZXZlbnQpIHtcclxuICAgIHRoaXMuc2VhcmNoUmVzdWx0c0dlb21ldHJ5RW5hYmxlZCA9IGV2ZW50LmNoZWNrZWQ7XHJcbiAgICB0aGlzLnNlYXJjaFJlc3VsdHNHZW9tZXRyeVN0YXR1cy5lbWl0KHRoaXMuc2VhcmNoUmVzdWx0c0dlb21ldHJ5RW5hYmxlZCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJpZ28tc2VhcmNoLXNldHRpbmdzXCI+XHJcblxyXG4gIDxidXR0b25cclxuICAgIG1hdC1pY29uLWJ1dHRvblxyXG4gICAgY2xhc3M9XCJpZ28tc2VhcmNoLXNldHRpbmdzLWJ1dHRvblwiXHJcbiAgICBjb2xvcj1cInByaW1hcnlcIlxyXG4gICAgdG9vbHRpcC1wb3NpdGlvbj1cImJlbG93XCJcclxuICAgIG1hdFRvb2x0aXBTaG93RGVsYXk9XCI1MDBcIlxyXG4gICAgW21hdFRvb2x0aXBdPVwiJ2lnby5nZW8uc2VhcmNoLm1lbnUudG9vbHRpcCcgfCB0cmFuc2xhdGVcIlxyXG4gICAgW21hdE1lbnVUcmlnZ2VyRm9yXT1cInNlYXJjaFNldHRpbmdzTWVudVwiPlxyXG4gICAgPG1hdC1pY29uIHN2Z0ljb249XCJjaGV2cm9uLWRvd25cIj48L21hdC1pY29uPlxyXG4gIDwvYnV0dG9uPlxyXG4gIDxtYXQtbWVudVxyXG4gICAgI3NlYXJjaFNldHRpbmdzTWVudT1cIm1hdE1lbnVcIlxyXG4gICAgY2xhc3M9XCJuby1ib3JkZXItcmFkaXVzXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2hlY2tBbGxCdXR0b25cIiAqbmdJZj1cImdldFNlYXJjaFNvdXJjZXMoKS5sZW5ndGg+NFwiPlxyXG4gICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uXHJcbiAgICAgICAgKGNsaWNrKT1cImNoZWNrVW5jaGVja0FsbFNvdXJjZXMoJGV2ZW50KVwiPnt7IXNlYXJjaFNvdXJjZXNBbGxFbmFibGVkICA/ICgnaWdvLmdlby5zZWFyY2guc2VhcmNoU291cmNlcy51bnNlbGVjdEFsbCcgfCB0cmFuc2xhdGUpOiAoJ2lnby5nZW8uc2VhcmNoLnNlYXJjaFNvdXJjZXMuc2VsZWN0QWxsJyB8IHRyYW5zbGF0ZSl9fTwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHNvdXJjZSBvZiBnZXRTZWFyY2hTb3VyY2VzKClcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImlnby1zZWFyY2gtc2V0dGluZ3Mtc2VhcmNoLXNvdXJjZVwiPlxyXG4gICAgICAgICAgPG1hdC1jaGVja2JveFxyXG4gICAgICAgICAgICBjbGFzcz1cImlnby1zZWFyY2gtc2V0dGluZ3MtY2hlY2tib3hcIlxyXG4gICAgICAgICAgICBbY2hlY2tlZF09XCJzb3VyY2UuZW5hYmxlZFwiXHJcbiAgICAgICAgICAgIFt2YWx1ZV09XCJzb3VyY2VcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcclxuICAgICAgICAgICAgKGNoYW5nZSk9XCJvbkNoZWNrU2VhcmNoU291cmNlKCRldmVudCwgc291cmNlKVwiPlxyXG4gICAgICAgICAgPC9tYXQtY2hlY2tib3g+XHJcbiAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwic291cmNlLnNldHRpbmdzLmxlbmd0aMKgPsKgMFwiXHJcbiAgICAgICAgICAgIFttYXRNZW51VHJpZ2dlckZvcl09XCJzdWJfbWVudVwiXHJcbiAgICAgICAgICAgIG1hdC1tZW51LWl0ZW0+e3tzb3VyY2UudGl0bGV9fVxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgIG1hdC1tZW51LWl0ZW1cclxuICAgICAgICAgICAgKm5nSWY9XCJzb3VyY2Uuc2V0dGluZ3MubGVuZ3RowqA9PT3CoDBcIj5cclxuICAgICAgICAgICAge3tzb3VyY2UudGl0bGV9fVxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgPG1hdC1tZW51ICNzdWJfbWVudT1cIm1hdE1lbnVcIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgc2V0dGluZyBvZiBzb3VyY2Uuc2V0dGluZ3NcIj5cclxuICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgIG1hdC1tZW51LWl0ZW1cclxuICAgICAgICAgICAgICAgICAgW21hdE1lbnVUcmlnZ2VyRm9yXT1cInRlc3Rfc3ViX21lbnVcIj5cclxuICAgICAgICAgICAgICAgIHt7J2lnby5nZW8uc2VhcmNoLnNlYXJjaFNvdXJjZXMuc2V0dGluZ3MuJysgc2V0dGluZy50aXRsZSB8IHRyYW5zbGF0ZX19XHJcbiAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgPG1hdC1tZW51ICN0ZXN0X3N1Yl9tZW51PVwibWF0TWVudVwiXHJcbiAgICAgICAgICAgICAgICBbbmdTd2l0Y2hdPVwic2V0dGluZy50eXBlXCJcclxuICAgICAgICAgICAgICAgIHlQb3NpdGlvbj1cImFib3ZlXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiJ3JhZGlvYnV0dG9uJ1wiPlxyXG4gICAgICAgICAgICAgICAgICA8bWF0LXJhZGlvLWdyb3VwXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpZ28tc2VhcmNoLXNldHRpbmdzLXJhZGlvLWdyb3VwXCJcclxuICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwic2V0dGluZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtcmFkaW8tYnV0dG9uICpuZ0Zvcj1cImxldCBzZXR0aW5nVmFsdWUgb2Ygc2V0dGluZy52YWx1ZXNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtYXQtdHlwb2dyYXBoeVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwic2V0dGluZ1ZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFttYXRUb29sdGlwXT1cImdldEF2YWlsYWJsZUhhc2h0YWdzVmFsdWVzKHNldHRpbmdWYWx1ZSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwic2V0dGluZ1ZhbHVlLmVuYWJsZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cInNldHRpbmdzVmFsdWVDaGVja2VkUmFkaW9CdXR0b24oJGV2ZW50LCBzb3VyY2UsIHNldHRpbmcsIHNldHRpbmdWYWx1ZSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIHt7c2V0dGluZ1ZhbHVlLnRpdGxlIHwgdHJhbnNsYXRlfX1cclxuICAgICAgICAgICAgICAgICAgICA8L21hdC1yYWRpby1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgIDwvbWF0LXJhZGlvLWdyb3VwPlxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cIidjaGVja2JveCdcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrQWxsQnV0dG9uXCIgKm5nSWY9XCJzZXR0aW5nLnZhbHVlcy5sZW5ndGjCoD7CoDNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2hlY2tVbmNoZWNrQWxsKCRldmVudCwgc291cmNlLCBzZXR0aW5nKVwiPnt7c2V0dGluZy5hbGxFbmFibGVkIHx8IHNldHRpbmcuYWxsRW5hYmxlZCA9PT0gdW5kZWZpbmVkICA/ICgnaWdvLmdlby5zZWFyY2guc2VhcmNoU291cmNlcy5zZXR0aW5ncy51bnNlbGVjdEFsbCcgfCB0cmFuc2xhdGUpOiAoJ2lnby5nZW8uc2VhcmNoLnNlYXJjaFNvdXJjZXMuc2V0dGluZ3Muc2VsZWN0QWxsJyB8IHRyYW5zbGF0ZSl9fTwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPG1hdC1jaGVja2JveCAqbmdGb3I9XCJsZXQgc2V0dGluZ1ZhbHVlIG9mIGdldEF2YWlsYWJsZVZhbHVlcyhzZXR0aW5nKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtYXQtbWVudS1pdGVtXCJcclxuICAgICAgICAgICAgICAgICAgICBbc3R5bGUuZGlzcGxheV09XCJkaXNwbGF5QmxvY2tcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cInNldHRpbmdWYWx1ZS5lbmFibGVkXCJcclxuICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwic2V0dGluZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwiZ2V0QXZhaWxhYmxlSGFzaHRhZ3NWYWx1ZXMoc2V0dGluZ1ZhbHVlKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJzZXR0aW5nc1ZhbHVlQ2hlY2tlZENoZWNrYm94KCRldmVudCwgc291cmNlLCBzZXR0aW5nLCBzZXR0aW5nVmFsdWUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3tzZXR0aW5nVmFsdWUudGl0bGUgfCB0cmFuc2xhdGV9fVxyXG4gICAgICAgICAgICAgICAgICA8L21hdC1jaGVja2JveD5cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L21hdC1tZW51PlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDwvbWF0LW1lbnU+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8c3BhbiAqbmdJZj1cImhhc1BvaW50ZXJSZXZlcnNlU2VhcmNoU291cmNlICYmICFpc1RvdWNoU2NyZWVuXCI+XHJcbiAgICAgICAgPG1hdC1kaXZpZGVyPjwvbWF0LWRpdmlkZXI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJwb2ludGVyLXN1bW1hcnktc2xpZGUtdG9nZ2xlLWNvbnRhaW5lciBtYXQtdHlwb2dyYXBoeVwiPlxyXG4gICAgICAgICAgPG1hdC1zbGlkZS10b2dnbGUgY2xhc3M9XCJwb2ludGVyLXN1bW1hcnktb3B0aW9uXCIgKGNoYW5nZSk9XCJjaGFuZ2VQb2ludGVyUmV2ZXJzZVNlYXJjaCgkZXZlbnQpXCIgdG9vbHRpcC1wb3NpdGlvbj1cImJlbG93XCJcclxuICAgICAgICAgICAgbWF0VG9vbHRpcFNob3dEZWxheT1cIjUwMFwiIFttYXRUb29sdGlwXT1cIidpZ28uZ2VvLnNlYXJjaC5wb2ludGVyU2VhcmNoU3VtbWFyeS50b29sdGlwJyB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIiBbY2hlY2tlZF09XCJwb2ludGVyU3VtbWFyeUVuYWJsZWRcIiBbbGFiZWxQb3NpdGlvbl09XCInYWZ0ZXInXCI+XHJcbiAgICAgICAgICAgIHt7J2lnby5nZW8uc2VhcmNoLnBvaW50ZXJTZWFyY2hTdW1tYXJ5LnRpdGxlJyB8IHRyYW5zbGF0ZX19XHJcbiAgICAgICAgICA8L21hdC1zbGlkZS10b2dnbGU+XHJcbiAgICAgICAgICA8bWF0LXNsaWRlLXRvZ2dsZSBjbGFzcz1cInBvaW50ZXItc3VtbWFyeS1vcHRpb25cIiAoY2hhbmdlKT1cImNoYW5nZVNlYXJjaFJlc3VsdHNHZW9tZXRyeSgkZXZlbnQpXCIgdG9vbHRpcC1wb3NpdGlvbj1cImJlbG93XCJcclxuICAgICAgICAgICAgbWF0VG9vbHRpcFNob3dEZWxheT1cIjUwMFwiIFttYXRUb29sdGlwXT1cIidpZ28uZ2VvLnNlYXJjaC5zZWFyY2hSZXN1bHRzR2VvbWV0cnkudG9vbHRpcCcgfCB0cmFuc2xhdGVcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCIgW2NoZWNrZWRdPVwic2VhcmNoUmVzdWx0c0dlb21ldHJ5RW5hYmxlZFwiIFtsYWJlbFBvc2l0aW9uXT1cIidhZnRlcidcIj5cclxuICAgICAgICAgICAge3snaWdvLmdlby5zZWFyY2guc2VhcmNoUmVzdWx0c0dlb21ldHJ5LnRpdGxlJyB8IHRyYW5zbGF0ZX19XHJcbiAgICAgICAgICA8L21hdC1zbGlkZS10b2dnbGU+XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICA8L3NwYW4+XHJcbiAgPC9tYXQtbWVudT5cclxuPC9kaXY+XHJcbiJdfQ==
442
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLXNldHRpbmdzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL3NlYXJjaC9zZWFyY2gtc2V0dGluZ3Mvc2VhcmNoLXNldHRpbmdzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL3NlYXJjaC9zZWFyY2gtc2V0dGluZ3Mvc2VhcmNoLXNldHRpbmdzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsTUFBTSxFQUNOLFlBQVksRUFDWix1QkFBdUIsRUFFdkIsWUFBWSxFQUNaLEtBQUssRUFDTixNQUFNLGVBQWUsQ0FBQztBQVF2QixPQUFPLEVBQ0wsK0JBQStCLEVBQy9CLGVBQWUsRUFDZixzQkFBc0IsRUFDdkIsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7OztJQ1I1Qiw4QkFBZ0UsZ0JBQUE7SUFFNUQsMEtBQVMsZUFBQSxxQ0FBOEIsQ0FBQSxJQUFDO0lBQUMsWUFBZ0o7OztJQUFBLGlCQUFTLEVBQUE7OztJQUF6SixlQUFnSjtJQUFoSix5TEFBZ0o7OztJQVd2TCxrQ0FFZ0I7SUFBQSxZQUNoQjtJQUFBLGlCQUFTOzs7O0lBRlAsdUNBQThCO0lBQ2hCLGVBQ2hCO0lBRGdCLCtDQUNoQjs7O0lBQ0Esa0NBRXVDO0lBQ3JDLFlBQ0Y7SUFBQSxpQkFBUzs7O0lBRFAsZUFDRjtJQURFLGdEQUNGOzs7O0lBZ0JVLDRDQU1vRjtJQURsRiw0S0FBUyx3QkFBd0IsSUFBQyxvWUFDeEIsZUFBQSx5RkFBc0UsQ0FBQSxJQUQ5QztJQUVsQyxZQUNGOztJQUFBLGlCQUFtQjs7OztJQU5qQix3Q0FBc0Isb0VBQUEscUNBQUE7SUFLdEIsZUFDRjtJQURFLDZFQUNGOzs7SUFaSiw0QkFBb0MsMEJBQUE7SUFJaEMsd0lBUW1CO0lBQ3JCLGlCQUFr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QUksQ0FBQyxJQUFJLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztJQUNuRixDQUFDOzs4RkEvTlUsdUJBQXVCOzBFQUF2Qix1QkFBdUI7OEdBQXZCLCtCQUEyQjs7UUN4Q3hDLDhCQUFpQyxnQkFBQTs7UUFVN0IsOEJBQTRDO1FBQzlDLGlCQUFTO1FBQ1Qsc0NBRTJCO1FBQ3pCLHdFQUdNO1FBQ0osMEZBK0RlO1FBQ2YsNEVBcUJPO1FBQ1gsaUJBQVcsRUFBQTs7O1FBakdULGVBQXdEO1FBQXhELGdGQUF3RCwwQkFBQTtRQU8zQixlQUFpQztRQUFqQyx3REFBaUM7UUFJM0IsZUFBcUI7UUFBckIsZ0RBQXFCO1FBZ0UvQyxlQUFxRDtRQUFyRCw4RUFBcUQ7O3VGRDNDckQsdUJBQXVCO2NBTm5DLFNBQVM7MkJBQ0UscUJBQXFCLG1CQUdkLHVCQUF1QixDQUFDLE1BQU07OEhBZXRDLHFCQUFxQjtrQkFBN0IsS0FBSztZQUNHLDRCQUE0QjtrQkFBcEMsS0FBSztZQUNHLGdDQUFnQztrQkFBeEMsS0FBSztZQUtJLGtCQUFrQjtrQkFBM0IsTUFBTTtZQUtHLG9CQUFvQjtrQkFBN0IsTUFBTTtZQUtHLDJCQUEyQjtrQkFBcEMsTUFBTTtZQUtHLCtCQUErQjtrQkFBeEMsTUFBTTtZQUdQLG1CQUFtQjtrQkFEbEIsWUFBWTttQkFBQyxrQkFBa0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1hdENoZWNrYm94Q2hhbmdlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3gnO1xuaW1wb3J0IHsgTWF0UmFkaW9DaGFuZ2UgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9yYWRpbyc7XG5cbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgT3V0cHV0LFxuICBFdmVudEVtaXR0ZXIsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBPbkluaXQsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFNlYXJjaFNvdXJjZVNlcnZpY2UgfSBmcm9tICcuLi9zaGFyZWQvc2VhcmNoLXNvdXJjZS5zZXJ2aWNlJztcbmltcG9ydCB7IFNlYXJjaFNvdXJjZSB9IGZyb20gJy4uL3NoYXJlZC9zb3VyY2VzL3NvdXJjZSc7XG5pbXBvcnQge1xuICBTZWFyY2hTb3VyY2VTZXR0aW5ncyxcbiAgU2V0dGluZ09wdGlvbnNcbn0gZnJvbSAnLi4vc2hhcmVkL3NvdXJjZXMvc291cmNlLmludGVyZmFjZXMnO1xuaW1wb3J0IHtcbiAgc291cmNlQ2FuUmV2ZXJzZVNlYXJjaEFzU3VtbWFyeSxcbiAgc291cmNlQ2FuU2VhcmNoLFxuICBzb3VyY2VDYW5SZXZlcnNlU2VhcmNoXG59IGZyb20gJy4uL3NoYXJlZC9zZWFyY2gudXRpbHMnO1xuaW1wb3J0IHsgTWVkaWFTZXJ2aWNlLCBTdG9yYWdlU2VydmljZSB9IGZyb20gJ0BpZ28yL2NvcmUnO1xuXG4vKipcbiAqIFRoaXMgY29tcG9uZW50IGFsbG93cyBhIHVzZXIgdG8gc2VsZWN0IGEgc2VhcmNoIHR5cGUgeW8gZW5hYmxlLiBJbiBpdCdzXG4gKiBjdXJyZW50IHZlcnNpb24sIG9ubHkgb25lIHNlYXJjaCB0eXBlIGNhbiBiZSBzZWxlY3RlZCBhdCBvbmNlIChyYWRpbykuIElmXG4gKiB0aGlzIGNvbXBvbmVudCB3ZXJlIHRvIHN1cHBvcnQgbW9yZSB0aGFuIG9uZSBzZWFyY2ggc291cmNlIGVuYWJsZWQgKGNoZWNrYm94KSxcbiAqIHRoZSBzZWFyY2hiYXIgY29tcG9uZW50IHdvdWxkIHJlcXVpcmUgYSBzbWFsbCBjaGFuZ2UgdG8gaXQnc1xuICogcGxhY2Vob2xkZXIgZ2V0dGVyLiBUaGUgc2VhcmNoIHNvdXJjZSBzZXJ2aWNlIGFscmVhZHkgc3VwcG9ydHMgaGF2aW5nXG4gKiBtb3JlIHRoYW4gb25lIHNlYXJjaCBzb3VyY2UgZW5hYmxlZC5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaWdvLXNlYXJjaC1zZXR0aW5ncycsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWFyY2gtc2V0dGluZ3MuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zZWFyY2gtc2V0dGluZ3MuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgU2VhcmNoU2V0dGluZ3NDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBwdWJsaWMgaGFzUG9pbnRlclJldmVyc2VTZWFyY2hTb3VyY2U6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHVibGljIHNlYXJjaFNvdXJjZXNBbGxFbmFibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHVibGljIGJ1ZmZlciA9IFtdO1xuICBwdWJsaWMgbGFzdEtleVRpbWUgPSBEYXRlLm5vdygpO1xuXG4gIHB1YmxpYyBkaXNwbGF5QmxvY2sgPSAnYmxvY2snO1xuXG4gIGdldCBpc1RvdWNoU2NyZWVuKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm1lZGlhU2VydmljZS5pc1RvdWNoU2NyZWVuKCk7XG4gIH1cblxuICBASW5wdXQoKSBwb2ludGVyU3VtbWFyeUVuYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgc2VhcmNoUmVzdWx0c0dlb21ldHJ5RW5hYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSByZXZlcnNlU2VhcmNoQ29vcmRzRm9ybWF0RW5hYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIGVuYWJsZWQgc2VhcmNoIHNvdXJjZSBjaGFuZ2VzXG4gICAqL1xuICBAT3V0cHV0KCkgc2VhcmNoU291cmNlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxTZWFyY2hTb3VyY2U+KCk7XG5cbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgcG9pbnRlciBzdW1tYXJ5IGlzIGFjdGl2YXRlZFxuICAgKi9cbiAgQE91dHB1dCgpIHBvaW50ZXJTdW1tYXJ5U3RhdHVzID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIC8qKlxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIHNob3cgZ2VvbWV0cnkgc3VtbWFyeSBpcyBjaGFuZ2VkXG4gICAqL1xuICBAT3V0cHV0KCkgc2VhcmNoUmVzdWx0c0dlb21ldHJ5U3RhdHVzID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIC8qKlxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIGNvb3JkcyBmb3JtYXQgaXMgY2hhbmdlZFxuICAgKi9cbiAgQE91dHB1dCgpIHJldmVyc2VTZWFyY2hDb29yZHNGb3JtYXRTdGF0dXMgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6a2V5ZG93bicsIFsnJGV2ZW50J10pXG4gIGhhbmRsZUtleWJvYXJkRXZlbnQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnRjInKSB7XG4gICAgICB0aGlzLnBvaW50ZXJTdW1tYXJ5RW5hYmxlZCA9ICF0aGlzLnBvaW50ZXJTdW1tYXJ5RW5hYmxlZDtcbiAgICAgIHRoaXMucG9pbnRlclN1bW1hcnlTdGF0dXMuZW1pdCh0aGlzLnBvaW50ZXJTdW1tYXJ5RW5hYmxlZCk7XG4gICAgfVxuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzZWFyY2hTb3VyY2VTZXJ2aWNlOiBTZWFyY2hTb3VyY2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgbWVkaWFTZXJ2aWNlOiBNZWRpYVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzdG9yYWdlU2VydmljZTogU3RvcmFnZVNlcnZpY2VcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaGFzUG9pbnRlclJldmVyc2VTZWFyY2hTb3VyY2UgPSB0aGlzLmhhc1JldmVyc2VTZWFyY2hTb3VyY2VzRm9yUG9pbnRlclN1bW1hcnkoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYWxsIHNlYXJjaCBzb3VyY2VzXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgZ2V0U2VhcmNoU291cmNlcygpOiBTZWFyY2hTb3VyY2VbXSB7XG4gICAgY29uc3QgdGV4dFNlYXJjaFNvdXJjZXMgPSB0aGlzLnNlYXJjaFNvdXJjZVNlcnZpY2VcbiAgICAgIC5nZXRTb3VyY2VzKClcbiAgICAgIC5maWx0ZXIoc291cmNlQ2FuU2VhcmNoKVxuICAgICAgLmZpbHRlcigocykgPT4gcy5hdmFpbGFibGUgJiYgcy5nZXRJZCgpICE9PSAnbWFwJyAmJiBzLnNob3dJblNldHRpbmdzKTtcblxuICAgIGNvbnN0IHJldmVyc2VTZWFyY2hTb3VyY2VzID0gdGhpcy5zZWFyY2hTb3VyY2VTZXJ2aWNlXG4gICAgICAuZ2V0U291cmNlcygpXG4gICAgICAuZmlsdGVyKHNvdXJjZUNhblJldmVyc2VTZWFyY2gpXG4gICAgICAuZmlsdGVyKChzKSA9PiBzLmF2YWlsYWJsZSAmJiBzLmdldElkKCkgIT09ICdtYXAnICYmIHMuc2hvd0luU2V0dGluZ3MpO1xuICAgIGNvbnN0IHNvdXJjZXMgPSB0ZXh0U2VhcmNoU291cmNlcy5jb25jYXQocmV2ZXJzZVNlYXJjaFNvdXJjZXMpO1xuICAgIHRoaXMuY29tcHV0ZVNvdXJjZXNDaGVja0FsbEJlaGF2aW9yKHNvdXJjZXMpO1xuICAgIHJldHVybiBzb3VyY2VzO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBhbGwgc2VhcmNoIHNvdXJjZXMgdXNhYmxlIGZvciBwb2ludGVyIHN1bW1hcnlcbiAgICogQGludGVybmFsXG4gICAqL1xuICBoYXNSZXZlcnNlU2VhcmNoU291cmNlc0ZvclBvaW50ZXJTdW1tYXJ5KCk6IGJvb2xlYW4ge1xuICAgIGlmIChcbiAgICAgIHRoaXMuc2VhcmNoU291cmNlU2VydmljZVxuICAgICAgICAuZ2V0RW5hYmxlZFNvdXJjZXMoKVxuICAgICAgICAuZmlsdGVyKHNvdXJjZUNhblJldmVyc2VTZWFyY2hBc1N1bW1hcnkpLmxlbmd0aFxuICAgICkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVHJpZ2dlcmVkIHdoZW4gYSBzZXR0aW5nIGlzIGNoZWNrZWQgKGNoZWNrYm94IHN0eWxlKVxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHNldHRpbmdzVmFsdWVDaGVja2VkQ2hlY2tib3goXG4gICAgZXZlbnQ6IE1hdENoZWNrYm94Q2hhbmdlLFxuICAgIHNvdXJjZTogU2VhcmNoU291cmNlLFxuICAgIHNldHRpbmc6IFNlYXJjaFNvdXJjZVNldHRpbmdzLFxuICAgIHNldHRpbmdWYWx1ZTogU2V0dGluZ09wdGlvbnNcbiAgKSB7XG4gICAgc2V0dGluZ1ZhbHVlLmVuYWJsZWQgPSBldmVudC5jaGVja2VkO1xuICAgIHNvdXJjZS5zZXRQYXJhbUZyb21TZXR0aW5nKHNldHRpbmcpO1xuICAgIHRoaXMuc2VhcmNoU291cmNlQ2hhbmdlLmVtaXQoc291cmNlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWZpbmluZyB0aGUgYWN0aW9uIHRvIGRvIGZvciBjaGVjay91bmNoZWNrIGNoZWNrYm94ZXMgKHNldHRpbmdzKVxuICAgKiByZXR1cm4gdHJ1ZSBpZiBhbGwgY2hlY2tib3ggbXVzdCBiZSBjaGVja2VkXG4gICAqIHJldHVybiBmYWxzZSBpZiBhbGwgY2hlY2tib3ggbXVzdCBiZSB1bmNoZWNrZWRcbiAgICogQGludGVybmFsXG4gICAqL1xuICBjb21wdXRlU2V0dGluZ0NoZWNrQWxsQmVoYXZpb3Ioc2V0dGluZzogU2VhcmNoU291cmNlU2V0dGluZ3MpIHtcbiAgICBpZiAoc2V0dGluZy5hbGxFbmFibGVkID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGlmIChzZXR0aW5nLnZhbHVlcy5maW5kKChzZXR0aW5nVmFsdWUpID0+IHNldHRpbmdWYWx1ZS5lbmFibGVkKSkge1xuICAgICAgICBzZXR0aW5nLmFsbEVuYWJsZWQgPSBmYWxzZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNldHRpbmcuYWxsRW5hYmxlZCA9IHRydWU7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHNldHRpbmcuYWxsRW5hYmxlZCA9ICFzZXR0aW5nLmFsbEVuYWJsZWQ7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIERlZmluaW5nIHRoZSBhY3Rpb24gdG8gZG8gZm9yIGNoZWNrL3VuY2hlY2sgY2hlY2tib3hlcyAoc291cmNlcylcbiAgICogcmV0dXJuIHRydWUgaWYgYWxsIGNoZWNrYm94IG11c3QgYmUgY2hlY2tlZFxuICAgKiByZXR1cm4gZmFsc2UgaWYgYWxsIGNoZWNrYm94IG11c3QgYmUgdW5jaGVja2VkXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgY29tcHV0ZVNvdXJjZXNDaGVja0FsbEJlaGF2aW9yKHNvdXJjZXM6IFNlYXJjaFNvdXJjZVtdKSB7XG4gICAgY29uc3QgZW5hYmxlZFNvdXJjZXNDbnQgPSBzb3VyY2VzLmZpbHRlcigoc291cmNlKSA9PiBzb3VyY2UuZW5hYmxlZCkubGVuZ3RoO1xuICAgIGNvbnN0IGRpc2FibGVkU291cmNlc0NudCA9IHNvdXJjZXMuZmlsdGVyKChzb3VyY2UpID0+ICFzb3VyY2UuZW5hYmxlZClcbiAgICAgIC5sZW5ndGg7XG4gICAgdGhpcy5zZWFyY2hTb3VyY2VzQWxsRW5hYmxlZCA9XG4gICAgICBlbmFibGVkU291cmNlc0NudCA+PSBkaXNhYmxlZFNvdXJjZXNDbnQgPyBmYWxzZSA6IHRydWU7XG4gIH1cblxuICAvKipcbiAgICogVHJpZ2dlcmVkIHdoZW4gdGhlIGNoZWNrIGFsbCAvIHVuY2hlY2sgYWxsIHR5cGUgaXMgY2xpY2tlZCxcbiAgICogQGludGVybmFsXG4gICAqL1xuICBjaGVja1VuY2hlY2tBbGwoZXZlbnQsIHNvdXJjZTogU2VhcmNoU291cmNlLCBzZXR0aW5nOiBTZWFyY2hTb3VyY2VTZXR0aW5ncykge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMuY29tcHV0ZVNldHRpbmdDaGVja0FsbEJlaGF2aW9yKHNldHRpbmcpO1xuICAgIHNldHRpbmcudmFsdWVzLmZvckVhY2goKHNldHRpbmdWYWx1ZSkgPT4ge1xuICAgICAgc2V0dGluZ1ZhbHVlLmVuYWJsZWQgPSBzZXR0aW5nLmFsbEVuYWJsZWQ7XG4gICAgfSk7XG4gICAgc291cmNlLnNldFBhcmFtRnJvbVNldHRpbmcoc2V0dGluZyk7XG4gICAgdGhpcy5zZWFyY2hTb3VyY2VDaGFuZ2UuZW1pdChzb3VyY2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRyaWdnZXJlZCB3aGVuIHRoZSBjaGVjayBhbGwgLyB1bmNoZWNrIGFsbCB0eXBlIGlzIGNsaWNrZWQsXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgY2hlY2tVbmNoZWNrQWxsU291cmNlcyhldmVudCkge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMuZ2V0U2VhcmNoU291cmNlcygpLm1hcCgoc291cmNlKSA9PiB7XG4gICAgICBzb3VyY2UuZW5hYmxlZCA9IHRoaXMuc2VhcmNoU291cmNlc0FsbEVuYWJsZWQ7XG4gICAgICB0aGlzLnNlYXJjaFNvdXJjZUNoYW5nZS5lbWl0KHNvdXJjZSk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogVHJpZ2dlcmVkIHdoZW4gYSBzZXR0aW5nIGlzIGNoZWNrZWQgKHJhZGlvYnV0dG9uIHN0eWxlKVxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHNldHRpbmdzVmFsdWVDaGVja2VkUmFkaW9CdXR0b24oXG4gICAgZXZlbnQ6IE1hdFJhZGlvQ2hhbmdlLFxuICAgIHNvdXJjZTogU2VhcmNoU291cmNlLFxuICAgIHNldHRpbmc6IFNlYXJjaFNvdXJjZVNldHRpbmdzLFxuICAgIHNldHRpbmdWYWx1ZTogU2V0dGluZ09wdGlvbnNcbiAgKSB7XG4gICAgc2V0dGluZy52YWx1ZXMuZm9yRWFjaCgoY29uZikgPT4ge1xuICAgICAgaWYgKGNvbmYudmFsdWUgIT09IHNldHRpbmdWYWx1ZS52YWx1ZSkge1xuICAgICAgICBjb25mLmVuYWJsZWQgPSAhZXZlbnQuc291cmNlLmNoZWNrZWQ7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25mLmVuYWJsZWQgPSBldmVudC5zb3VyY2UuY2hlY2tlZDtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBzb3VyY2Uuc2V0UGFyYW1Gcm9tU2V0dGluZyhzZXR0aW5nKTtcbiAgICB0aGlzLnNlYXJjaFNvdXJjZUNoYW5nZS5lbWl0KHNvdXJjZSk7XG4gIH1cblxuICBvbkNoZWNrU2VhcmNoU291cmNlKGV2ZW50OiBNYXRDaGVja2JveENoYW5nZSwgc291cmNlOiBTZWFyY2hTb3VyY2UpIHtcbiAgICBzb3VyY2UuZW5hYmxlZCA9IGV2ZW50LmNoZWNrZWQ7XG4gICAgY29uc3Qgc3RvcmFnZSA9ICh0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldChzb3VyY2UuZ2V0SWQoKSArICcub3B0aW9ucycpIHx8IHt9KSBhcyBTZXR0aW5nT3B0aW9ucztcbiAgICBzdG9yYWdlLmVuYWJsZWQgPSBzb3VyY2UuZW5hYmxlZDtcbiAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnNldChcbiAgICAgIHNvdXJjZS5nZXRJZCgpICsgJy5vcHRpb25zJyxcbiAgICAgIHN0b3JhZ2VcbiAgICApO1xuICAgIHRoaXMuc2VhcmNoU291cmNlQ2hhbmdlLmVtaXQoc291cmNlKTtcbiAgfVxuXG4gIGdldEF2YWlsYWJsZVZhbHVlcyhzZXR0aW5nOiBTZWFyY2hTb3VyY2VTZXR0aW5ncykge1xuICAgIHJldHVybiBzZXR0aW5nLnZhbHVlcy5maWx0ZXIoKHMpID0+IHMuYXZhaWxhYmxlICE9PSBmYWxzZSk7XG4gIH1cblxuICBnZXRBdmFpbGFibGVIYXNodGFnc1ZhbHVlcyhzZXR0aW5nOiBTZXR0aW5nT3B0aW9ucykge1xuICAgIGlmIChzZXR0aW5nLmhhc2h0YWdzKSB7XG4gICAgICByZXR1cm4gc2V0dGluZy5oYXNodGFncy5tYXAoKGgpID0+ICcjJyArIGgpLmpvaW4oJywgJyk7XG4gICAgfVxuICAgIHJldHVybjtcbiAgfVxuXG4gIHN0b3BQcm9wYWdhdGlvbihldmVudCkge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICB9XG5cbiAgY2hhbmdlUG9pbnRlclJldmVyc2VTZWFyY2goZXZlbnQpIHtcbiAgICB0aGlzLnBvaW50ZXJTdW1tYXJ5RW5hYmxlZCA9IGV2ZW50LmNoZWNrZWQ7XG4gICAgdGhpcy5wb2ludGVyU3VtbWFyeVN0YXR1cy5lbWl0KHRoaXMucG9pbnRlclN1bW1hcnlFbmFibGVkKTtcbiAgfVxuXG4gIGNoYW5nZVNlYXJjaFJlc3VsdHNHZW9tZXRyeShldmVudCkge1xuICAgIHRoaXMuc2VhcmNoUmVzdWx0c0dlb21ldHJ5RW5hYmxlZCA9IGV2ZW50LmNoZWNrZWQ7XG4gICAgdGhpcy5zZWFyY2hSZXN1bHRzR2VvbWV0cnlTdGF0dXMuZW1pdCh0aGlzLnNlYXJjaFJlc3VsdHNHZW9tZXRyeUVuYWJsZWQpO1xuICB9XG5cbiAgcmV2ZXJzZVNlYXJjaENvb3Jkc0Zvcm1hdChldmVudCkge1xuICAgIHRoaXMucmV2ZXJzZVNlYXJjaENvb3Jkc0Zvcm1hdEVuYWJsZWQgPSBldmVudC5jaGVja2VkO1xuICAgIHRoaXMucmV2ZXJzZVNlYXJjaENvb3Jkc0Zvcm1hdFN0YXR1cy5lbWl0KHRoaXMucmV2ZXJzZVNlYXJjaENvb3Jkc0Zvcm1hdEVuYWJsZWQpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiaWdvLXNlYXJjaC1zZXR0aW5nc1wiPlxuXG4gIDxidXR0b25cbiAgICBtYXQtaWNvbi1idXR0b25cbiAgICBjbGFzcz1cImlnby1zZWFyY2gtc2V0dGluZ3MtYnV0dG9uXCJcbiAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgIHRvb2x0aXAtcG9zaXRpb249XCJiZWxvd1wiXG4gICAgbWF0VG9vbHRpcFNob3dEZWxheT1cIjUwMFwiXG4gICAgW21hdFRvb2x0aXBdPVwiJ2lnby5nZW8uc2VhcmNoLm1lbnUudG9vbHRpcCcgfCB0cmFuc2xhdGVcIlxuICAgIFttYXRNZW51VHJpZ2dlckZvcl09XCJzZWFyY2hTZXR0aW5nc01lbnVcIj5cbiAgICA8bWF0LWljb24gc3ZnSWNvbj1cImNoZXZyb24tZG93blwiPjwvbWF0LWljb24+XG4gIDwvYnV0dG9uPlxuICA8bWF0LW1lbnVcbiAgICAjc2VhcmNoU2V0dGluZ3NNZW51PVwibWF0TWVudVwiXG4gICAgY2xhc3M9XCJuby1ib3JkZXItcmFkaXVzXCI+XG4gICAgPGRpdiBjbGFzcz1cImNoZWNrQWxsQnV0dG9uXCIgKm5nSWY9XCJnZXRTZWFyY2hTb3VyY2VzKCkubGVuZ3RoPjRcIj5cbiAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b25cbiAgICAgICAgKGNsaWNrKT1cImNoZWNrVW5jaGVja0FsbFNvdXJjZXMoJGV2ZW50KVwiPnt7IXNlYXJjaFNvdXJjZXNBbGxFbmFibGVkICA/ICgnaWdvLmdlby5zZWFyY2guc2VhcmNoU291cmNlcy51bnNlbGVjdEFsbCcgfCB0cmFuc2xhdGUpOiAoJ2lnby5nZW8uc2VhcmNoLnNlYXJjaFNvdXJjZXMuc2VsZWN0QWxsJyB8IHRyYW5zbGF0ZSl9fTwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgc291cmNlIG9mIGdldFNlYXJjaFNvdXJjZXMoKVwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImlnby1zZWFyY2gtc2V0dGluZ3Mtc2VhcmNoLXNvdXJjZVwiPlxuICAgICAgICAgIDxtYXQtY2hlY2tib3hcbiAgICAgICAgICAgIGNsYXNzPVwiaWdvLXNlYXJjaC1zZXR0aW5ncy1jaGVja2JveFwiXG4gICAgICAgICAgICBbY2hlY2tlZF09XCJzb3VyY2UuZW5hYmxlZFwiXG4gICAgICAgICAgICBbdmFsdWVdPVwic291cmNlXCJcbiAgICAgICAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAgICAgKGNoYW5nZSk9XCJvbkNoZWNrU2VhcmNoU291cmNlKCRldmVudCwgc291cmNlKVwiPlxuICAgICAgICAgIDwvbWF0LWNoZWNrYm94PlxuICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJzb3VyY2Uuc2V0dGluZ3MubGVuZ3RowqA+wqAwXCJcbiAgICAgICAgICAgIFttYXRNZW51VHJpZ2dlckZvcl09XCJzdWJfbWVudVwiXG4gICAgICAgICAgICBtYXQtbWVudS1pdGVtPnt7c291cmNlLnRpdGxlfX1cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBtYXQtbWVudS1pdGVtXG4gICAgICAgICAgICAqbmdJZj1cInNvdXJjZS5zZXR0aW5ncy5sZW5ndGjCoD09PcKgMFwiPlxuICAgICAgICAgICAge3tzb3VyY2UudGl0bGV9fVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPG1hdC1tZW51ICNzdWJfbWVudT1cIm1hdE1lbnVcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHNldHRpbmcgb2Ygc291cmNlLnNldHRpbmdzXCI+XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgIG1hdC1tZW51LWl0ZW1cbiAgICAgICAgICAgICAgICAgIFttYXRNZW51VHJpZ2dlckZvcl09XCJ0ZXN0X3N1Yl9tZW51XCI+XG4gICAgICAgICAgICAgICAge3snaWdvLmdlby5zZWFyY2guc2VhcmNoU291cmNlcy5zZXR0aW5ncy4nKyBzZXR0aW5nLnRpdGxlIHwgdHJhbnNsYXRlfX1cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIDxtYXQtbWVudSAjdGVzdF9zdWJfbWVudT1cIm1hdE1lbnVcIlxuICAgICAgICAgICAgICAgIFtuZ1N3aXRjaF09XCJzZXR0aW5nLnR5cGVcIlxuICAgICAgICAgICAgICAgIHlQb3NpdGlvbj1cImFib3ZlXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cIidyYWRpb2J1dHRvbidcIj5cbiAgICAgICAgICAgICAgICAgIDxtYXQtcmFkaW8tZ3JvdXBcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpZ28tc2VhcmNoLXNldHRpbmdzLXJhZGlvLWdyb3VwXCJcbiAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cInNldHRpbmdcIj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1yYWRpby1idXR0b24gKm5nRm9yPVwibGV0IHNldHRpbmdWYWx1ZSBvZiBzZXR0aW5nLnZhbHVlc1wiXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtYXQtdHlwb2dyYXBoeVwiXG4gICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cInNldHRpbmdWYWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwiZ2V0QXZhaWxhYmxlSGFzaHRhZ3NWYWx1ZXMoc2V0dGluZ1ZhbHVlKVwiXG4gICAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwic2V0dGluZ1ZhbHVlLmVuYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwic2V0dGluZ3NWYWx1ZUNoZWNrZWRSYWRpb0J1dHRvbigkZXZlbnQsIHNvdXJjZSwgc2V0dGluZywgc2V0dGluZ1ZhbHVlKVwiPlxuICAgICAgICAgICAgICAgICAgICAgIHt7c2V0dGluZ1ZhbHVlLnRpdGxlIHwgdHJhbnNsYXRlfX1cbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtcmFkaW8tYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPC9tYXQtcmFkaW8tZ3JvdXA+XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ1N3aXRjaENhc2U9XCInY2hlY2tib3gnXCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2tBbGxCdXR0b25cIiAqbmdJZj1cInNldHRpbmcudmFsdWVzLmxlbmd0aMKgPsKgM1wiPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNoZWNrVW5jaGVja0FsbCgkZXZlbnQsIHNvdXJjZSwgc2V0dGluZylcIj57e3NldHRpbmcuYWxsRW5hYmxlZCB8fCBzZXR0aW5nLmFsbEVuYWJsZWQgPT09IHVuZGVmaW5lZCAgPyAoJ2lnby5nZW8uc2VhcmNoLnNlYXJjaFNvdXJjZXMuc2V0dGluZ3MudW5zZWxlY3RBbGwnIHwgdHJhbnNsYXRlKTogKCdpZ28uZ2VvLnNlYXJjaC5zZWFyY2hTb3VyY2VzLnNldHRpbmdzLnNlbGVjdEFsbCcgfCB0cmFuc2xhdGUpfX08L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPG1hdC1jaGVja2JveCAqbmdGb3I9XCJsZXQgc2V0dGluZ1ZhbHVlIG9mIGdldEF2YWlsYWJsZVZhbHVlcyhzZXR0aW5nKVwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWF0LW1lbnUtaXRlbVwiXG4gICAgICAgICAgICAgICAgICAgIFtzdHlsZS5kaXNwbGF5XT1cImRpc3BsYXlCbG9ja1wiXG4gICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cInNldHRpbmdWYWx1ZS5lbmFibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cInNldHRpbmdcIlxuICAgICAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcF09XCJnZXRBdmFpbGFibGVIYXNodGFnc1ZhbHVlcyhzZXR0aW5nVmFsdWUpXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwic2V0dGluZ3NWYWx1ZUNoZWNrZWRDaGVja2JveCgkZXZlbnQsIHNvdXJjZSwgc2V0dGluZywgc2V0dGluZ1ZhbHVlKVwiPlxuICAgICAgICAgICAgICAgICAgICB7e3NldHRpbmdWYWx1ZS50aXRsZSB8IHRyYW5zbGF0ZX19XG4gICAgICAgICAgICAgICAgICA8L21hdC1jaGVja2JveD5cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgIDwvbWF0LW1lbnU+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L21hdC1tZW51PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8c3BhbiAqbmdJZj1cImhhc1BvaW50ZXJSZXZlcnNlU2VhcmNoU291cmNlICYmICFpc1RvdWNoU2NyZWVuXCI+XG4gICAgICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInBvaW50ZXItc3VtbWFyeS1zbGlkZS10b2dnbGUtY29udGFpbmVyIG1hdC10eXBvZ3JhcGh5XCI+XG4gICAgICAgICAgPG1hdC1zbGlkZS10b2dnbGUgY2xhc3M9XCJzZWFyY2gtb3B0aW9uXCIgKGNoYW5nZSk9XCJjaGFuZ2VQb2ludGVyUmV2ZXJzZVNlYXJjaCgkZXZlbnQpXCIgdG9vbHRpcC1wb3NpdGlvbj1cImJlbG93XCJcbiAgICAgICAgICAgIG1hdFRvb2x0aXBTaG93RGVsYXk9XCI1MDBcIiBbbWF0VG9vbHRpcF09XCInaWdvLmdlby5zZWFyY2gucG9pbnRlclNlYXJjaFN1bW1hcnkudG9vbHRpcCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiIFtjaGVja2VkXT1cInBvaW50ZXJTdW1tYXJ5RW5hYmxlZFwiIFtsYWJlbFBvc2l0aW9uXT1cIidhZnRlcidcIj5cbiAgICAgICAgICAgIHt7J2lnby5nZW8uc2VhcmNoLnBvaW50ZXJTZWFyY2hTdW1tYXJ5LnRpdGxlJyB8IHRyYW5zbGF0ZX19XG4gICAgICAgICAgPC9tYXQtc2xpZGUtdG9nZ2xlPlxuICAgICAgICAgIDxtYXQtc2xpZGUtdG9nZ2xlIGNsYXNzPVwic2VhcmNoLW9wdGlvblwiIChjaGFuZ2UpPVwiY2hhbmdlU2VhcmNoUmVzdWx0c0dlb21ldHJ5KCRldmVudClcIiB0b29sdGlwLXBvc2l0aW9uPVwiYmVsb3dcIlxuICAgICAgICAgICAgbWF0VG9vbHRpcFNob3dEZWxheT1cIjUwMFwiIFttYXRUb29sdGlwXT1cIidpZ28uZ2VvLnNlYXJjaC5zZWFyY2hSZXN1bHRzR2VvbWV0cnkudG9vbHRpcCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiIFtjaGVja2VkXT1cInNlYXJjaFJlc3VsdHNHZW9tZXRyeUVuYWJsZWRcIiBbbGFiZWxQb3NpdGlvbl09XCInYWZ0ZXInXCI+XG4gICAgICAgICAgICB7eydpZ28uZ2VvLnNlYXJjaC5zZWFyY2hSZXN1bHRzR2VvbWV0cnkudGl0bGUnIHwgdHJhbnNsYXRlfX1cbiAgICAgICAgICA8L21hdC1zbGlkZS10b2dnbGU+XG4gICAgICAgICAgPG1hdC1zbGlkZS10b2dnbGUgY2xhc3M9XCJzZWFyY2gtb3B0aW9uXCIgKGNoYW5nZSk9XCJyZXZlcnNlU2VhcmNoQ29vcmRzRm9ybWF0KCRldmVudClcIiB0b29sdGlwLXBvc2l0aW9uPVwiYmVsb3dcIlxuICAgICAgICAgICAgbWF0VG9vbHRpcFNob3dEZWxheT1cIjUwMFwiXG4gICAgICAgICAgICBbbWF0VG9vbHRpcF09XCJyZXZlcnNlU2VhcmNoQ29vcmRzRm9ybWF0RW5hYmxlZCA/ICgnaWdvLmdlby5zZWFyY2gucmV2ZXJzZUNvb3JkRm9ybWF0LnRvb2x0aXBMYXRMb24nIHwgdHJhbnNsYXRlKVxuICAgICAgICAgICAgOiAoJ2lnby5nZW8uc2VhcmNoLnJldmVyc2VDb29yZEZvcm1hdC50b29sdGlwTG9uTGF0JyB8IHRyYW5zbGF0ZSlcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiIFtjaGVja2VkXT1cInJldmVyc2VTZWFyY2hDb29yZHNGb3JtYXRFbmFibGVkXCIgW2xhYmVsUG9zaXRpb25dPVwiJ2FmdGVyJ1wiPlxuICAgICAgICAgICAge3snaWdvLmdlby5zZWFyY2gucmV2ZXJzZUNvb3JkRm9ybWF0LnRpdGxlJyB8IHRyYW5zbGF0ZX19XG4gICAgICAgICAgPC9tYXQtc2xpZGUtdG9nZ2xlPlxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L3NwYW4+XG4gIDwvbWF0LW1lbnU+XG48L2Rpdj5cbiJdfQ==
@@ -57,4 +57,4 @@ IgoSearchSettingsModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [
57
57
  MatDividerModule,
58
58
  MatSlideToggleModule,
59
59
  IgoLanguageModule], exports: [SearchSettingsComponent] }); })();
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLXNldHRpbmdzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL3NlYXJjaC9zZWFyY2gtc2V0dGluZ3Mvc2VhcmNoLXNldHRpbmdzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFN0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sWUFBWSxDQUFDOztBQUUvQzs7R0FFRztBQWlCSCxNQUFNLE9BQU8sdUJBQXVCOzs4RkFBdkIsdUJBQXVCO3lFQUF2Qix1QkFBdUI7NkVBYmhDLFlBQVk7UUFDWixnQkFBZ0I7UUFDaEIsYUFBYTtRQUNiLGVBQWU7UUFDZixhQUFhO1FBQ2IsY0FBYztRQUNkLGlCQUFpQjtRQUNqQixnQkFBZ0I7UUFDaEIsb0JBQW9CO1FBQ3BCLGlCQUFpQjt1RkFJUix1QkFBdUI7Y0FoQm5DLFFBQVE7ZUFBQztnQkFDUixZQUFZLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQztnQkFDdkMsT0FBTyxFQUFFO29CQUNQLFlBQVk7b0JBQ1osZ0JBQWdCO29CQUNoQixhQUFhO29CQUNiLGVBQWU7b0JBQ2YsYUFBYTtvQkFDYixjQUFjO29CQUNkLGlCQUFpQjtvQkFDakIsZ0JBQWdCO29CQUNoQixvQkFBb0I7b0JBQ3BCLGlCQUFpQjtpQkFDbEI7Z0JBQ0QsT0FBTyxFQUFFLENBQUMsdUJBQXVCLENBQUM7YUFDbkM7O3dGQUNZLHVCQUF1QixtQkFmbkIsdUJBQXVCLGFBRXBDLFlBQVk7UUFDWixnQkFBZ0I7UUFDaEIsYUFBYTtRQUNiLGVBQWU7UUFDZixhQUFhO1FBQ2IsY0FBYztRQUNkLGlCQUFpQjtRQUNqQixnQkFBZ0I7UUFDaEIsb0JBQW9CO1FBQ3BCLGlCQUFpQixhQUVULHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IFNlYXJjaFNldHRpbmdzQ29tcG9uZW50IH0gZnJvbSAnLi9zZWFyY2gtc2V0dGluZ3MuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcclxuaW1wb3J0IHsgTWF0Q2hlY2tib3hNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGVja2JveCc7XHJcbmltcG9ydCB7IE1hdERpdmlkZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaXZpZGVyJztcclxuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQgeyBNYXRNZW51TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudSc7XHJcbmltcG9ydCB7IE1hdFJhZGlvTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcmFkaW8nO1xyXG5pbXBvcnQgeyBNYXRTbGlkZVRvZ2dsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NsaWRlLXRvZ2dsZSc7XHJcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcclxuXHJcbmltcG9ydCB7IElnb0xhbmd1YWdlTW9kdWxlIH0gZnJvbSAnQGlnbzIvY29yZSc7XHJcblxyXG4vKipcclxuICogQGlnbm9yZVxyXG4gKi9cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtTZWFyY2hTZXR0aW5nc0NvbXBvbmVudF0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgTWF0VG9vbHRpcE1vZHVsZSxcclxuICAgIE1hdEljb25Nb2R1bGUsXHJcbiAgICBNYXRCdXR0b25Nb2R1bGUsXHJcbiAgICBNYXRNZW51TW9kdWxlLFxyXG4gICAgTWF0UmFkaW9Nb2R1bGUsXHJcbiAgICBNYXRDaGVja2JveE1vZHVsZSxcclxuICAgIE1hdERpdmlkZXJNb2R1bGUsXHJcbiAgICBNYXRTbGlkZVRvZ2dsZU1vZHVsZSxcclxuICAgIElnb0xhbmd1YWdlTW9kdWxlXHJcbiAgXSxcclxuICBleHBvcnRzOiBbU2VhcmNoU2V0dGluZ3NDb21wb25lbnRdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJZ29TZWFyY2hTZXR0aW5nc01vZHVsZSB7IH1cclxuIl19
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLXNldHRpbmdzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL3NlYXJjaC9zZWFyY2gtc2V0dGluZ3Mvc2VhcmNoLXNldHRpbmdzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFN0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sWUFBWSxDQUFDOztBQUUvQzs7R0FFRztBQWlCSCxNQUFNLE9BQU8sdUJBQXVCOzs4RkFBdkIsdUJBQXVCO3lFQUF2Qix1QkFBdUI7NkVBYmhDLFlBQVk7UUFDWixnQkFBZ0I7UUFDaEIsYUFBYTtRQUNiLGVBQWU7UUFDZixhQUFhO1FBQ2IsY0FBYztRQUNkLGlCQUFpQjtRQUNqQixnQkFBZ0I7UUFDaEIsb0JBQW9CO1FBQ3BCLGlCQUFpQjt1RkFJUix1QkFBdUI7Y0FoQm5DLFFBQVE7ZUFBQztnQkFDUixZQUFZLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQztnQkFDdkMsT0FBTyxFQUFFO29CQUNQLFlBQVk7b0JBQ1osZ0JBQWdCO29CQUNoQixhQUFhO29CQUNiLGVBQWU7b0JBQ2YsYUFBYTtvQkFDYixjQUFjO29CQUNkLGlCQUFpQjtvQkFDakIsZ0JBQWdCO29CQUNoQixvQkFBb0I7b0JBQ3BCLGlCQUFpQjtpQkFDbEI7Z0JBQ0QsT0FBTyxFQUFFLENBQUMsdUJBQXVCLENBQUM7YUFDbkM7O3dGQUNZLHVCQUF1QixtQkFmbkIsdUJBQXVCLGFBRXBDLFlBQVk7UUFDWixnQkFBZ0I7UUFDaEIsYUFBYTtRQUNiLGVBQWU7UUFDZixhQUFhO1FBQ2IsY0FBYztRQUNkLGlCQUFpQjtRQUNqQixnQkFBZ0I7UUFDaEIsb0JBQW9CO1FBQ3BCLGlCQUFpQixhQUVULHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgU2VhcmNoU2V0dGluZ3NDb21wb25lbnQgfSBmcm9tICcuL3NlYXJjaC1zZXR0aW5ncy5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdENoZWNrYm94TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3gnO1xuaW1wb3J0IHsgTWF0RGl2aWRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpdmlkZXInO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0TWVudU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xuaW1wb3J0IHsgTWF0UmFkaW9Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9yYWRpbyc7XG5pbXBvcnQgeyBNYXRTbGlkZVRvZ2dsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NsaWRlLXRvZ2dsZSc7XG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XG5cbmltcG9ydCB7IElnb0xhbmd1YWdlTW9kdWxlIH0gZnJvbSAnQGlnbzIvY29yZSc7XG5cbi8qKlxuICogQGlnbm9yZVxuICovXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtTZWFyY2hTZXR0aW5nc0NvbXBvbmVudF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgTWF0VG9vbHRpcE1vZHVsZSxcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBNYXRNZW51TW9kdWxlLFxuICAgIE1hdFJhZGlvTW9kdWxlLFxuICAgIE1hdENoZWNrYm94TW9kdWxlLFxuICAgIE1hdERpdmlkZXJNb2R1bGUsXG4gICAgTWF0U2xpZGVUb2dnbGVNb2R1bGUsXG4gICAgSWdvTGFuZ3VhZ2VNb2R1bGVcbiAgXSxcbiAgZXhwb3J0czogW1NlYXJjaFNldHRpbmdzQ29tcG9uZW50XVxufSlcbmV4cG9ydCBjbGFzcyBJZ29TZWFyY2hTZXR0aW5nc01vZHVsZSB7IH1cbiJdfQ==
@@ -64,4 +64,4 @@ IgoSearchModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [CommonMo
64
64
  IgoSearchResultsModule,
65
65
  IgoSearchSettingsModule,
66
66
  SearchPointerSummaryDirective] }); })();
67
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL3NlYXJjaC9zZWFyY2gubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQXVCLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDeEQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDdEYsT0FBTyxFQUFFLDJDQUEyQyxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDbEcsT0FBTyxFQUFFLDhDQUE4QyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDeEcsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFdkYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDbkYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDaEYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDbkYsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sMkNBQTJDLENBQUM7O0FBbUIxRixNQUFNLE9BQU8sZUFBZTtJQUMxQixNQUFNLENBQUMsT0FBTztRQUNaLE9BQU87WUFDTCxRQUFRLEVBQUUsZUFBZTtZQUN6QixTQUFTLEVBQUU7Z0JBQ1QsYUFBYTtnQkFDYiwwQkFBMEIsRUFBRTtnQkFDNUIsMkNBQTJDLEVBQUU7Z0JBQzdDLDhDQUE4QyxFQUFFO2dCQUNoRCxrQ0FBa0MsRUFBRTthQUNyQztTQUNGLENBQUM7SUFDSixDQUFDOzs4RUFaVSxlQUFlO2lFQUFmLGVBQWU7cUVBZnhCLFlBQVk7UUFDWixrQkFBa0I7UUFDbEIsdUJBQXVCO1FBQ3ZCLHNCQUFzQjtRQUN0Qix1QkFBdUIsRUFHdkIsa0JBQWtCO1FBQ2xCLHVCQUF1QjtRQUN2QixzQkFBc0I7UUFDdEIsdUJBQXVCO3VGQUtkLGVBQWU7Y0FqQjNCLFFBQVE7ZUFBQztnQkFDUixPQUFPLEVBQUU7b0JBQ1AsWUFBWTtvQkFDWixrQkFBa0I7b0JBQ2xCLHVCQUF1QjtvQkFDdkIsc0JBQXNCO29CQUN0Qix1QkFBdUI7aUJBQ3hCO2dCQUNELE9BQU8sRUFBRTtvQkFDUCxrQkFBa0I7b0JBQ2xCLHVCQUF1QjtvQkFDdkIsc0JBQXNCO29CQUN0Qix1QkFBdUI7b0JBQ3ZCLDZCQUE2QjtpQkFDOUI7Z0JBQ0QsWUFBWSxFQUFFLENBQUMsNkJBQTZCLENBQUM7YUFDOUM7O3dGQUNZLGVBQWUsbUJBRlgsNkJBQTZCLGFBYjFDLFlBQVk7UUFDWixrQkFBa0I7UUFDbEIsdUJBQXVCO1FBQ3ZCLHNCQUFzQjtRQUN0Qix1QkFBdUIsYUFHdkIsa0JBQWtCO1FBQ2xCLHVCQUF1QjtRQUN2QixzQkFBc0I7UUFDdEIsdUJBQXVCO1FBQ3ZCLDZCQUE2QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlLCBNb2R1bGVXaXRoUHJvdmlkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcblxyXG5pbXBvcnQgeyBTZWFyY2hTZXJ2aWNlIH0gZnJvbSAnLi9zaGFyZWQvc2VhcmNoLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBwcm92aWRlU2VhcmNoU291cmNlU2VydmljZSB9IGZyb20gJy4vc2hhcmVkL3NlYXJjaC1zb3VyY2Utc2VydmljZS5wcm92aWRlcnMnO1xyXG5pbXBvcnQgeyBwcm92aWRlRGVmYXVsdElDaGVyY2hlU2VhcmNoUmVzdWx0Rm9ybWF0dGVyIH0gZnJvbSAnLi9zaGFyZWQvc291cmNlcy9pY2hlcmNoZS5wcm92aWRlcnMnO1xyXG5pbXBvcnQgeyBwcm92aWRlRGVmYXVsdENvb3JkaW5hdGVzU2VhcmNoUmVzdWx0Rm9ybWF0dGVyIH0gZnJvbSAnLi9zaGFyZWQvc291cmNlcy9jb29yZGluYXRlcy5wcm92aWRlcnMnO1xyXG5pbXBvcnQgeyBwcm92aWRlSUxheWVyU2VhcmNoUmVzdWx0Rm9ybWF0dGVyIH0gZnJvbSAnLi9zaGFyZWQvc291cmNlcy9pbGF5ZXIucHJvdmlkZXJzJztcclxuXHJcbmltcG9ydCB7IElnb1NlYXJjaEJhck1vZHVsZSB9IGZyb20gJy4vc2VhcmNoLWJhci9zZWFyY2gtYmFyLm1vZHVsZSc7XHJcbmltcG9ydCB7IElnb1NlYXJjaFNlbGVjdG9yTW9kdWxlIH0gZnJvbSAnLi9zZWFyY2gtc2VsZWN0b3Ivc2VhcmNoLXNlbGVjdG9yLm1vZHVsZSc7XHJcbmltcG9ydCB7IElnb1NlYXJjaFJlc3VsdHNNb2R1bGUgfSBmcm9tICcuL3NlYXJjaC1yZXN1bHRzL3NlYXJjaC1yZXN1bHRzLm1vZHVsZSc7XHJcbmltcG9ydCB7IElnb1NlYXJjaFNldHRpbmdzTW9kdWxlIH0gZnJvbSAnLi9zZWFyY2gtc2V0dGluZ3Mvc2VhcmNoLXNldHRpbmdzLm1vZHVsZSc7XHJcbmltcG9ydCB7IFNlYXJjaFBvaW50ZXJTdW1tYXJ5RGlyZWN0aXZlIH0gZnJvbSAnLi9zaGFyZWQvc2VhcmNoLXBvaW50ZXItc3VtbWFyeS5kaXJlY3RpdmUnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBJZ29TZWFyY2hCYXJNb2R1bGUsXHJcbiAgICBJZ29TZWFyY2hTZWxlY3Rvck1vZHVsZSxcclxuICAgIElnb1NlYXJjaFJlc3VsdHNNb2R1bGUsXHJcbiAgICBJZ29TZWFyY2hTZXR0aW5nc01vZHVsZVxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgSWdvU2VhcmNoQmFyTW9kdWxlLFxyXG4gICAgSWdvU2VhcmNoU2VsZWN0b3JNb2R1bGUsXHJcbiAgICBJZ29TZWFyY2hSZXN1bHRzTW9kdWxlLFxyXG4gICAgSWdvU2VhcmNoU2V0dGluZ3NNb2R1bGUsXHJcbiAgICBTZWFyY2hQb2ludGVyU3VtbWFyeURpcmVjdGl2ZVxyXG4gIF0sXHJcbiAgZGVjbGFyYXRpb25zOiBbU2VhcmNoUG9pbnRlclN1bW1hcnlEaXJlY3RpdmVdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJZ29TZWFyY2hNb2R1bGUge1xyXG4gIHN0YXRpYyBmb3JSb290KCk6IE1vZHVsZVdpdGhQcm92aWRlcnM8SWdvU2VhcmNoTW9kdWxlPiB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBuZ01vZHVsZTogSWdvU2VhcmNoTW9kdWxlLFxyXG4gICAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICBTZWFyY2hTZXJ2aWNlLFxyXG4gICAgICAgIHByb3ZpZGVTZWFyY2hTb3VyY2VTZXJ2aWNlKCksXHJcbiAgICAgICAgcHJvdmlkZURlZmF1bHRJQ2hlcmNoZVNlYXJjaFJlc3VsdEZvcm1hdHRlcigpLFxyXG4gICAgICAgIHByb3ZpZGVEZWZhdWx0Q29vcmRpbmF0ZXNTZWFyY2hSZXN1bHRGb3JtYXR0ZXIoKSxcclxuICAgICAgICBwcm92aWRlSUxheWVyU2VhcmNoUmVzdWx0Rm9ybWF0dGVyKClcclxuICAgICAgXVxyXG4gICAgfTtcclxuICB9XHJcbn1cclxuIl19
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL3NlYXJjaC9zZWFyY2gubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQXVCLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDeEQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDdEYsT0FBTyxFQUFFLDJDQUEyQyxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDbEcsT0FBTyxFQUFFLDhDQUE4QyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDeEcsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFdkYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDbkYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDaEYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDbkYsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sMkNBQTJDLENBQUM7O0FBbUIxRixNQUFNLE9BQU8sZUFBZTtJQUMxQixNQUFNLENBQUMsT0FBTztRQUNaLE9BQU87WUFDTCxRQUFRLEVBQUUsZUFBZTtZQUN6QixTQUFTLEVBQUU7Z0JBQ1QsYUFBYTtnQkFDYiwwQkFBMEIsRUFBRTtnQkFDNUIsMkNBQTJDLEVBQUU7Z0JBQzdDLDhDQUE4QyxFQUFFO2dCQUNoRCxrQ0FBa0MsRUFBRTthQUNyQztTQUNGLENBQUM7SUFDSixDQUFDOzs4RUFaVSxlQUFlO2lFQUFmLGVBQWU7cUVBZnhCLFlBQVk7UUFDWixrQkFBa0I7UUFDbEIsdUJBQXVCO1FBQ3ZCLHNCQUFzQjtRQUN0Qix1QkFBdUIsRUFHdkIsa0JBQWtCO1FBQ2xCLHVCQUF1QjtRQUN2QixzQkFBc0I7UUFDdEIsdUJBQXVCO3VGQUtkLGVBQWU7Y0FqQjNCLFFBQVE7ZUFBQztnQkFDUixPQUFPLEVBQUU7b0JBQ1AsWUFBWTtvQkFDWixrQkFBa0I7b0JBQ2xCLHVCQUF1QjtvQkFDdkIsc0JBQXNCO29CQUN0Qix1QkFBdUI7aUJBQ3hCO2dCQUNELE9BQU8sRUFBRTtvQkFDUCxrQkFBa0I7b0JBQ2xCLHVCQUF1QjtvQkFDdkIsc0JBQXNCO29CQUN0Qix1QkFBdUI7b0JBQ3ZCLDZCQUE2QjtpQkFDOUI7Z0JBQ0QsWUFBWSxFQUFFLENBQUMsNkJBQTZCLENBQUM7YUFDOUM7O3dGQUNZLGVBQWUsbUJBRlgsNkJBQTZCLGFBYjFDLFlBQVk7UUFDWixrQkFBa0I7UUFDbEIsdUJBQXVCO1FBQ3ZCLHNCQUFzQjtRQUN0Qix1QkFBdUIsYUFHdkIsa0JBQWtCO1FBQ2xCLHVCQUF1QjtRQUN2QixzQkFBc0I7UUFDdEIsdUJBQXVCO1FBQ3ZCLDZCQUE2QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlLCBNb2R1bGVXaXRoUHJvdmlkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5pbXBvcnQgeyBTZWFyY2hTZXJ2aWNlIH0gZnJvbSAnLi9zaGFyZWQvc2VhcmNoLnNlcnZpY2UnO1xuaW1wb3J0IHsgcHJvdmlkZVNlYXJjaFNvdXJjZVNlcnZpY2UgfSBmcm9tICcuL3NoYXJlZC9zZWFyY2gtc291cmNlLXNlcnZpY2UucHJvdmlkZXJzJztcbmltcG9ydCB7IHByb3ZpZGVEZWZhdWx0SUNoZXJjaGVTZWFyY2hSZXN1bHRGb3JtYXR0ZXIgfSBmcm9tICcuL3NoYXJlZC9zb3VyY2VzL2ljaGVyY2hlLnByb3ZpZGVycyc7XG5pbXBvcnQgeyBwcm92aWRlRGVmYXVsdENvb3JkaW5hdGVzU2VhcmNoUmVzdWx0Rm9ybWF0dGVyIH0gZnJvbSAnLi9zaGFyZWQvc291cmNlcy9jb29yZGluYXRlcy5wcm92aWRlcnMnO1xuaW1wb3J0IHsgcHJvdmlkZUlMYXllclNlYXJjaFJlc3VsdEZvcm1hdHRlciB9IGZyb20gJy4vc2hhcmVkL3NvdXJjZXMvaWxheWVyLnByb3ZpZGVycyc7XG5cbmltcG9ydCB7IElnb1NlYXJjaEJhck1vZHVsZSB9IGZyb20gJy4vc2VhcmNoLWJhci9zZWFyY2gtYmFyLm1vZHVsZSc7XG5pbXBvcnQgeyBJZ29TZWFyY2hTZWxlY3Rvck1vZHVsZSB9IGZyb20gJy4vc2VhcmNoLXNlbGVjdG9yL3NlYXJjaC1zZWxlY3Rvci5tb2R1bGUnO1xuaW1wb3J0IHsgSWdvU2VhcmNoUmVzdWx0c01vZHVsZSB9IGZyb20gJy4vc2VhcmNoLXJlc3VsdHMvc2VhcmNoLXJlc3VsdHMubW9kdWxlJztcbmltcG9ydCB7IElnb1NlYXJjaFNldHRpbmdzTW9kdWxlIH0gZnJvbSAnLi9zZWFyY2gtc2V0dGluZ3Mvc2VhcmNoLXNldHRpbmdzLm1vZHVsZSc7XG5pbXBvcnQgeyBTZWFyY2hQb2ludGVyU3VtbWFyeURpcmVjdGl2ZSB9IGZyb20gJy4vc2hhcmVkL3NlYXJjaC1wb2ludGVyLXN1bW1hcnkuZGlyZWN0aXZlJztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBJZ29TZWFyY2hCYXJNb2R1bGUsXG4gICAgSWdvU2VhcmNoU2VsZWN0b3JNb2R1bGUsXG4gICAgSWdvU2VhcmNoUmVzdWx0c01vZHVsZSxcbiAgICBJZ29TZWFyY2hTZXR0aW5nc01vZHVsZVxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgSWdvU2VhcmNoQmFyTW9kdWxlLFxuICAgIElnb1NlYXJjaFNlbGVjdG9yTW9kdWxlLFxuICAgIElnb1NlYXJjaFJlc3VsdHNNb2R1bGUsXG4gICAgSWdvU2VhcmNoU2V0dGluZ3NNb2R1bGUsXG4gICAgU2VhcmNoUG9pbnRlclN1bW1hcnlEaXJlY3RpdmVcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbU2VhcmNoUG9pbnRlclN1bW1hcnlEaXJlY3RpdmVdXG59KVxuZXhwb3J0IGNsYXNzIElnb1NlYXJjaE1vZHVsZSB7XG4gIHN0YXRpYyBmb3JSb290KCk6IE1vZHVsZVdpdGhQcm92aWRlcnM8SWdvU2VhcmNoTW9kdWxlPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBJZ29TZWFyY2hNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgU2VhcmNoU2VydmljZSxcbiAgICAgICAgcHJvdmlkZVNlYXJjaFNvdXJjZVNlcnZpY2UoKSxcbiAgICAgICAgcHJvdmlkZURlZmF1bHRJQ2hlcmNoZVNlYXJjaFJlc3VsdEZvcm1hdHRlcigpLFxuICAgICAgICBwcm92aWRlRGVmYXVsdENvb3JkaW5hdGVzU2VhcmNoUmVzdWx0Rm9ybWF0dGVyKCksXG4gICAgICAgIHByb3ZpZGVJTGF5ZXJTZWFyY2hSZXN1bHRGb3JtYXR0ZXIoKVxuICAgICAgXVxuICAgIH07XG4gIH1cbn1cbiJdfQ==
@@ -6,4 +6,4 @@ export * from './search-source.service';
6
6
  export * from './search-source-service.providers';
7
7
  export * from './search.utils';
8
8
  export * from './sources';
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9zZWFyY2gvc2hhcmVkL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxXQUFXLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3NlYXJjaC5lbnVtcyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc2VhcmNoLmludGVyZmFjZXMnO1xyXG5leHBvcnQgKiBmcm9tICcuL3NlYXJjaC1wb2ludGVyLXN1bW1hcnkuZGlyZWN0aXZlJztcclxuZXhwb3J0ICogZnJvbSAnLi9zZWFyY2guc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc2VhcmNoLXNvdXJjZS5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9zZWFyY2gtc291cmNlLXNlcnZpY2UucHJvdmlkZXJzJztcclxuZXhwb3J0ICogZnJvbSAnLi9zZWFyY2gudXRpbHMnO1xyXG5leHBvcnQgKiBmcm9tICcuL3NvdXJjZXMnO1xyXG4iXX0=
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9zZWFyY2gvc2hhcmVkL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxXQUFXLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3NlYXJjaC5lbnVtcyc7XG5leHBvcnQgKiBmcm9tICcuL3NlYXJjaC5pbnRlcmZhY2VzJztcbmV4cG9ydCAqIGZyb20gJy4vc2VhcmNoLXBvaW50ZXItc3VtbWFyeS5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9zZWFyY2guc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NlYXJjaC1zb3VyY2Uuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NlYXJjaC1zb3VyY2Utc2VydmljZS5wcm92aWRlcnMnO1xuZXhwb3J0ICogZnJvbSAnLi9zZWFyY2gudXRpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9zb3VyY2VzJztcbiJdfQ==
@@ -319,4 +319,4 @@ export function pointerPositionSummaryMarker(feature, resolution) {
319
319
  })
320
320
  });
321
321
  }
322
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLXBvaW50ZXItc3VtbWFyeS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9zZWFyY2gvc2hhcmVkL3NlYXJjaC1wb2ludGVyLXN1bW1hcnkuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUVMLElBQUksRUFHTCxNQUFNLGVBQWUsQ0FBQztBQVd2QixPQUFPLFNBQVMsTUFBTSxZQUFZLENBQUM7QUFDbkMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNwQyxPQUFPLEtBQUssT0FBTyxNQUFNLFVBQVUsQ0FBQztBQUNwQyxPQUFPLEtBQUssTUFBTSxNQUFNLFNBQVMsQ0FBQztBQUNsQyxPQUFPLFNBQVMsTUFBTSxtQkFBbUIsQ0FBQztBQUkxQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzNDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQzNGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDdkUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzFELE9BQU8sRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFFNUUsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFakUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7O0FBRXhDOzs7OztHQUtHO0FBSUgsTUFBTSxPQUFPLDZCQUE2QjtJQXVDeEMsWUFDa0IsU0FBOEIsRUFD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QyxLQUFLLENBQUM7UUFDdkIsS0FBSyxFQUFFLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQztZQUN0QixHQUFHLEVBQUUsOENBQThDO1lBQ25ELE9BQU8sRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxTQUFTO1NBQzdCLENBQUM7UUFFRixJQUFJLEVBQUUsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDO1lBQ3JCLElBQUksRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDO1lBQ25DLFNBQVMsRUFBRSxNQUFNO1lBQ2pCLFlBQVksRUFBRSxRQUFRO1lBQ3RCLElBQUksRUFBRSx5QkFBeUI7WUFDL0IsSUFBSSxFQUFFLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUN6QyxjQUFjLEVBQUUsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLDBCQUEwQixFQUFFLENBQUM7WUFDdkUsZ0JBQWdCLEVBQUUsSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsS0FBSyxFQUFFLDJCQUEyQixFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUN0RixNQUFNLEVBQUUsSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDdkQsUUFBUSxFQUFFLElBQUk7WUFDZCxPQUFPLEVBQUUsRUFBRTtZQUNYLE9BQU8sRUFBRSxDQUFDLEVBQUU7WUFDWixPQUFPLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7U0FDOUIsQ0FBQztLQUNILENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGZWF0dXJlR2VvbWV0cnkgfSBmcm9tICcuLy4uLy4uL2ZlYXR1cmUvc2hhcmVkL2ZlYXR1cmUuaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7XHJcbiAgRGlyZWN0aXZlLFxyXG4gIElucHV0LFxyXG4gIE9uRGVzdHJveSxcclxuICBTZWxmLFxyXG4gIE9uSW5pdCxcclxuICBBZnRlckNvbnRlbnRDaGVja2VkXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCBNYXBCcm93c2VyUG9pbnRlckV2ZW50IGZyb20gJ29sL01hcEJyb3dzZXJFdmVudCc7XHJcblxyXG5pbXBvcnQgeyBJZ29NYXAgfSBmcm9tICcuLi8uLi9tYXAvc2hhcmVkL21hcCc7XHJcbmltcG9ydCB7IE1hcEJyb3dzZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tYXAvbWFwLWJyb3dzZXIvbWFwLWJyb3dzZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRmVhdHVyZSB9IGZyb20gJy4uLy4uL2ZlYXR1cmUvc2hhcmVkL2ZlYXR1cmUuaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IFNlYXJjaFNlcnZpY2UgfSBmcm9tICcuL3NlYXJjaC5zZXJ2aWNlJztcclxuXHJcbmltcG9ydCBvbEZlYXR1cmUgZnJvbSAnb2wvRmVhdHVyZSc7XHJcbmltcG9ydCB7IHRyYW5zZm9ybSB9IGZyb20gJ29sL3Byb2onO1xyXG5pbXBvcnQgKiBhcyBvbHN0eWxlIGZyb20gJ29sL3N0eWxlJztcclxuaW1wb3J0ICogYXMgb2xnZW9tIGZyb20gJ29sL2dlb20nO1xyXG5pbXBvcnQgT2xHZW9KU09OIGZyb20gJ29sL2Zvcm1hdC9HZW9KU09OJztcclxuaW1wb3J0IHR5cGUgeyBkZWZhdWx0IGFzIE9sR2VvbWV0cnkgfSBmcm9tICdvbC9nZW9tL0dlb21ldHJ5JztcclxuXHJcbmltcG9ydCB7IFNlYXJjaFJlc3VsdCwgUmVzZWFyY2ggfSBmcm9tICcuL3NlYXJjaC5pbnRlcmZhY2VzJztcclxuaW1wb3J0IHsgRW50aXR5U3RvcmUgfSBmcm9tICdAaWdvMi9jb21tb24nO1xyXG5pbXBvcnQgeyBGZWF0dXJlRGF0YVNvdXJjZSB9IGZyb20gJy4uLy4uL2RhdGFzb3VyY2Uvc2hhcmVkL2RhdGFzb3VyY2VzL2ZlYXR1cmUtZGF0YXNvdXJjZSc7XHJcbmltcG9ydCB7IFZlY3RvckxheWVyIH0gZnJvbSAnLi4vLi4vbGF5ZXIvc2hhcmVkL2xheWVycy92ZWN0b3ItbGF5ZXInO1xyXG5pbXBvcnQgeyB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyB0cnlCaW5kU3RvcmVMYXllciB9IGZyb20gJy4uLy4uL2ZlYXR1cmUvc2hhcmVkL2ZlYXR1cmUudXRpbHMnO1xyXG5pbXBvcnQgeyBGZWF0dXJlU3RvcmUgfSBmcm9tICcuLi8uLi9mZWF0dXJlL3NoYXJlZC9zdG9yZSc7XHJcbmltcG9ydCB7IEZlYXR1cmVNb3Rpb24sIEZFQVRVUkUgfSBmcm9tICcuLi8uLi9mZWF0dXJlL3NoYXJlZC9mZWF0dXJlLmVudW1zJztcclxuaW1wb3J0IHsgU2VhcmNoU291cmNlU2VydmljZSB9IGZyb20gJy4vc2VhcmNoLXNvdXJjZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgc291cmNlQ2FuUmV2ZXJzZVNlYXJjaEFzU3VtbWFyeSB9IGZyb20gJy4vc2VhcmNoLnV0aWxzJztcclxuaW1wb3J0IHsgTWVkaWFTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZSc7XHJcbmltcG9ydCB7IHVuQnlLZXkgfSBmcm9tICdvbC9PYnNlcnZhYmxlJztcclxuXHJcbi8qKlxyXG4gKiBUaGlzIGRpcmVjdGl2ZSBtYWtlcyB0aGUgbW91c2UgY29vcmRpbmF0ZSB0cmlnZ2VyIGEgcmV2ZXJzZSBzZWFyY2ggb24gYXZhaWxhYmxlIHNlYXJjaCBzb3VyY2VzLlxyXG4gKiBUaGUgc2VhcmNoIHJlc3VsdHMgYXJlIHBsYWNlZCBpbnRvIGEgbGFiZWwsIG9uIGEgY3Jvc3MgaWNvbiwgcmVwcmVzZW50aW5nIHRoZSBtb3VzZSBjb29yZGluYXRlLlxyXG4gKiBCeSBkZWZhdWx0LCBubyBzZWFyY2ggc291cmNlcy4gQ29uZmlnIGluIGNvbmZpZyBmaWxlIG11c3QgYmUgZGVmaW5lZC5cclxuICogdGhlIGxheWVyIGxldmVsLlxyXG4gKi9cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbaWdvU2VhcmNoUG9pbnRlclN1bW1hcnldJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgU2VhcmNoUG9pbnRlclN1bW1hcnlEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQWZ0ZXJDb250ZW50Q2hlY2tlZCB7XHJcblxyXG4gIHB1YmxpYyBzdG9yZTogRmVhdHVyZVN0b3JlPEZlYXR1cmU+O1xyXG4gIHByaXZhdGUgbG9uTGF0OiBbbnVtYmVyLCBudW1iZXJdO1xyXG4gIHByaXZhdGUgcG9pbnRlclNlYXJjaFN0b3JlOiBFbnRpdHlTdG9yZTxTZWFyY2hSZXN1bHQ+ID0gbmV3IEVudGl0eVN0b3JlPFNlYXJjaFJlc3VsdD4oW10pO1xyXG4gIHByaXZhdGUgbGFzdFRpbWVvdXRSZXF1ZXN0O1xyXG4gIHByaXZhdGUgc3RvcmUkJDogU3Vic2NyaXB0aW9uO1xyXG4gIHByaXZhdGUgbGF5ZXJzJCQ6IFN1YnNjcmlwdGlvbjtcclxuICBwcml2YXRlIHJldmVyc2VTZWFyY2gkJDogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuICBwcml2YXRlIGhhc1BvaW50ZXJSZXZlcnNlU2VhcmNoU291cmNlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIC8qKlxyXG4gICAqIExpc3RlbmVyIHRvIHRoZSBwb2ludGVyIG1vdmUgZXZlbnRcclxuICAgKi9cclxuICBwcml2YXRlIHBvaW50ZXJNb3ZlTGlzdGVuZXI7XHJcblxyXG4gIHByaXZhdGUgc2VhcmNoUG9pbnRlclN1bW1hcnlGZWF0dXJlSWQ6IHN0cmluZyA9ICdzZWFyY2hQb2ludGVyU3VtbWFyeUZlYXR1cmVJZCc7XHJcbiAgLyoqXHJcbiAgICogVGhlIGRlbGF5IHdoZXJlIHRoZSBtb3VzZSBtdXN0IGJlIG1vdGlvbmxlc3MgYmVmb3JlIHRyaWdnZXIgdGhlIHJldmVyc2Ugc2VhcmNoXHJcbiAgICovXHJcbiAgQElucHV0KCkgaWdvU2VhcmNoUG9pbnRlclN1bW1hcnlEZWxheTogbnVtYmVyID0gMTAwMDtcclxuXHJcbiAgLyoqXHJcbiAgICogSWYgdGhlIHVzZXIgaGFzIGVuYWJsZWQgb3Igbm90IHRoZSBkaXJlY3RpdmVcclxuICAgKi9cclxuICBASW5wdXQoKSBpZ29TZWFyY2hQb2ludGVyU3VtbWFyeUVuYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLyoqXHJcbiAgICogSUdPIG1hcFxyXG4gICAqIEBpbnRlcm5hbFxyXG4gICAqL1xyXG4gIGdldCBtYXAoKTogSWdvTWFwIHtcclxuICAgIHJldHVybiB0aGlzLmNvbXBvbmVudC5tYXA7XHJcbiAgfVxyXG5cclxuICBnZXQgbWFwUHJvamVjdGlvbigpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuICh0aGlzLmNvbXBvbmVudC5tYXAgYXMgSWdvTWFwKS5wcm9qZWN0aW9uO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBAU2VsZigpIHByaXZhdGUgY29tcG9uZW50OiBNYXBCcm93c2VyQ29tcG9uZW50LFxyXG4gICAgcHJpdmF0ZSBzZWFyY2hTZXJ2aWNlOiBTZWFyY2hTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBzZWFyY2hTb3VyY2VTZXJ2aWNlOiBTZWFyY2hTb3VyY2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBtZWRpYVNlcnZpY2U6IE1lZGlhU2VydmljZVxyXG4gICkgeyB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFN0YXJ0IGxpc3RlbmluZyB0byBwb2ludGVybW92ZSBhbmQgcmV2ZXJzZSBzZWFyY2ggcmVzdWx0cy5cclxuICAgKiBAaW50ZXJuYWxcclxuICAgKi9cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMubGlzdGVuVG9NYXBQb2ludGVyTW92ZSgpO1xyXG4gICAgdGhpcy5zdWJzY3JpYmVUb1BvaW50ZXJTdG9yZSgpO1xyXG5cclxuICAgIHRoaXMubWFwLnN0YXR1cyQucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB0aGlzLnN0b3JlID0gbmV3IEZlYXR1cmVTdG9yZTxGZWF0dXJlPihbXSwge21hcDogdGhpcy5tYXB9KTtcclxuICAgICAgdGhpcy5pbml0U3RvcmUoKTtcclxuICAgIH0pO1xyXG5cclxuICAgIC8vIFRvIGhhbmRsZSBjb250ZXh0IGNoYW5nZSB3aXRob3V0IHVzaW5nIHRoZSBjb250ZXh0U2VydmljZS5cclxuICAgIHRoaXMubGF5ZXJzJCQgPSB0aGlzLm1hcC5sYXllcnMkLnN1YnNjcmliZSgobGF5ZXJzKSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLnN0b3JlICYmICFsYXllcnMuZmluZChsID0+IGwuaWQgPT09ICdzZWFyY2hQb2ludGVyU3VtbWFyeUlkJykpIHtcclxuICAgICAgICB0aGlzLmluaXRTdG9yZSgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBJbml0aWFsaXplIHRoZSBwb2ludGVyIHBvc2l0aW9uIHN0b3JlXHJcbiAgICogQGludGVybmFsXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBpbml0U3RvcmUoKSB7XHJcbiAgICBjb25zdCBzdG9yZSA9IHRoaXMuc3RvcmU7XHJcblxyXG4gICAgY29uc3QgbGF5ZXIgPSBuZXcgVmVjdG9yTGF5ZXIoe1xyXG4gICAgICBpc0lnb0ludGVybmFsTGF5ZXI6IHRydWUsXHJcbiAgICAgIGlkIDogJ3NlYXJjaFBvaW50ZXJTdW1tYXJ5SWQnLFxyXG4gICAgICB0aXRsZTogJ3NlYXJjaFBvaW50ZXJTdW1tYXJ5JyxcclxuICAgICAgekluZGV4OiA5MDAsXHJcbiAgICAgIHNvdXJjZTogbmV3IEZlYXR1cmVEYXRhU291cmNlKCksXHJcbiAgICAgIHNob3dJbkxheWVyTGlzdDogZmFsc2UsXHJcbiAgICAgIGV4cG9ydGFibGU6IGZhbHNlLFxyXG4gICAgICBicm93c2FibGU6IGZhbHNlLFxyXG4gICAgICBzdHlsZTogcG9pbnRlclBvc2l0aW9uU3VtbWFyeU1hcmtlclxyXG4gICAgfSk7XHJcbiAgICB0cnlCaW5kU3RvcmVMYXllcihzdG9yZSwgbGF5ZXIpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlckNvbnRlbnRDaGVja2VkKCk6IHZvaWQge1xyXG4gICAgICBpZiAoIXRoaXMuc2VhcmNoU291cmNlU2VydmljZS5nZXRFbmFibGVkU291cmNlcygpLmZpbHRlcihzb3VyY2VDYW5SZXZlcnNlU2VhcmNoQXNTdW1tYXJ5KS5sZW5ndGgpIHtcclxuICAgICAgICB0aGlzLmhhc1BvaW50ZXJSZXZlcnNlU2VhcmNoU291cmNlID0gZmFsc2U7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5oYXNQb2ludGVyUmV2ZXJzZVNlYXJjaFNvdXJjZSA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU3RvcCBsaXN0ZW5pbmcgdG8gcG9pbnRlcm1vdmUgYW5kIHJldmVyc2Ugc2VhcmNoIHJlc3VsdHMuXHJcbiAgICogQGludGVybmFsXHJcbiAgICovXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLnVubGlzdGVuVG9NYXBQb2ludGVyTW92ZSgpO1xyXG4gICAgdGhpcy51bnN1YnNjcmliZVRvUG9pbnRlclN0b3JlKCk7XHJcbiAgICB0aGlzLnVuc3Vic2NyaWJlUmV2ZXJzZVNlYXJjaCgpO1xyXG4gICAgdGhpcy5sYXllcnMkJC51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU3Vic2NyaWJlIHRvIHBvaW50ZXJtb3ZlIHJlc3VsdCBzdG9yZVxyXG4gICAqIEBpbnRlcm5hbFxyXG4gICAqL1xyXG4gIHN1YnNjcmliZVRvUG9pbnRlclN0b3JlKCkge1xyXG4gICAgdGhpcy5zdG9yZSQkID0gdGhpcy5wb2ludGVyU2VhcmNoU3RvcmUuZW50aXRpZXMkLnN1YnNjcmliZShyZXN1bHRzVW5kZXJQb2ludGVyUG9zaXRpb24gPT4ge1xyXG4gICAgICB0aGlzLmVudGl0aWVzVG9Qb2ludGVyT3ZlcmxheShyZXN1bHRzVW5kZXJQb2ludGVyUG9zaXRpb24pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBCdWlsZCBhbiBvYmplY3QgYmFzZWQgb24gdGhlIGNsb3Nlc3QgZmVhdHVyZSBieSB0eXBlIChiYXNlIG9uIHR5cGUgYW5kIGRpc3RhbmNlIHByb3BlcnRpZXMgKVxyXG4gICAqIEBwYXJhbSByZXN1bHRzIFNlYXJjaFJlc3VsdFtdXHJcbiAgICogQHJldHVybnMgT0wgc3R5bGUgZnVuY3Rpb25cclxuICAgKi9cclxuICBwcml2YXRlIGNvbXB1dGVTdW1tYXJ5Q2xvc2VzdEZlYXR1cmUocmVzdWx0czogU2VhcmNoUmVzdWx0W10pOiB7fSB7XHJcbiAgICBjb25zdCBjbG9zZXN0UmVzdWx0QnlUeXBlID0ge307XHJcblxyXG4gICAgcmVzdWx0cy5tYXAocmVzdWx0ID0+IHtcclxuICAgICAgaWYgKHJlc3VsdC5kYXRhLnByb3BlcnRpZXMudHlwZSAmJiByZXN1bHQuZGF0YS5wcm9wZXJ0aWVzLmRpc3RhbmNlID49IDApIHtcclxuICAgICAgICBpZiAoY2xvc2VzdFJlc3VsdEJ5VHlwZS5oYXNPd25Qcm9wZXJ0eShyZXN1bHQuZGF0YS5wcm9wZXJ0aWVzLnR5cGUpKSB7XHJcbiAgICAgICAgICBjb25zdCBwcmV2RGlzdGFuY2UgPSBjbG9zZXN0UmVzdWx0QnlUeXBlW3Jlc3VsdC5kYXRhLnByb3BlcnRpZXMudHlwZV0uZGlzdGFuY2U7XHJcbiAgICAgICAgICBpZiAocmVzdWx0LmRhdGEucHJvcGVydGllcy5kaXN0YW5jZSA8IHByZXZEaXN0YW5jZSkge1xyXG4gICAgICAgICAgICBjb25zdCB0aXRsZSA9IHJlc3VsdC5tZXRhLnBvaW50ZXJTdW1tYXJ5VGl0bGUgfHwgcmVzdWx0Lm1ldGEudGl0bGU7XHJcbiAgICAgICAgICAgIGNsb3Nlc3RSZXN1bHRCeVR5cGVbcmVzdWx0LmRhdGEucHJvcGVydGllcy50eXBlXSA9IHsgZGlzdGFuY2U6IHJlc3VsdC5kYXRhLnByb3BlcnRpZXMuZGlzdGFuY2UsIHRpdGxlIH07XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGNvbnN0IHRpdGxlID0gcmVzdWx0Lm1ldGEucG9pbnRlclN1bW1hcnlUaXRsZSB8fCByZXN1bHQubWV0YS50aXRsZTtcclxuICAgICAgICAgIGNsb3Nlc3RSZXN1bHRCeVR5cGVbcmVzdWx0LmRhdGEucHJvcGVydGllcy50eXBlXSA9IHsgZGlzdGFuY2U6IHJlc3VsdC5kYXRhLnByb3BlcnRpZXMuZGlzdGFuY2UsIHRpdGxlIH07XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gY2xvc2VzdFJlc3VsdEJ5VHlwZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIGNvbnZlcnQgc3RvcmUgZW50aXRpZXMgdG8gYSBwb2ludGVyIHBvc2l0aW9uIG92ZXJsYXkgd2l0aCBsYWJlbCBzdW1tYXJ5IG9uLlxyXG4gICAqIEBwYXJhbSBldmVudCBPTCBtYXAgYnJvd3NlciBwb2ludGVyIGV2ZW50XHJcbiAgICovXHJcbiAgcHJpdmF0ZSBlbnRpdGllc1RvUG9pbnRlck92ZXJsYXkocmVzdWx0c1VuZGVyUG9pbnRlclBvc2l0aW9uOiBTZWFyY2hSZXN1bHRbXSkge1xyXG4gICAgY29uc3QgY2xvc2VzdFJlc3VsdEJ5VHlwZSA9IHRoaXMuY29tcHV0ZVN1bW1hcnlDbG9zZXN0RmVhdHVyZShyZXN1bHRzVW5kZXJQb2ludGVyUG9zaXRpb24pO1xyXG4gICAgY29uc3Qgc3VtbWFyaXplZENsb3Nlc3RUeXBlID0gT2JqZWN0LmtleXMoY2xvc2VzdFJlc3VsdEJ5VHlwZSk7XHJcbiAgICBjb25zdCBwcm9jZXNzZWRTdW1tYXJpemVkQ2xvc2VzdFR5cGUgPSBbXTtcclxuICAgIGNvbnN0IHN1bW1hcnkgPSBbXTtcclxuICAgIHJlc3VsdHNVbmRlclBvaW50ZXJQb3NpdGlvbi5tYXAocmVzdWx0ID0+IHtcclxuICAgICAgY29uc3QgdHlwZUluZGV4ID0gc3VtbWFyaXplZENsb3Nlc3RUeXBlLmluZGV4T2YocmVzdWx0LmRhdGEucHJvcGVydGllcy50eXBlKTtcclxuICAgICAgaWYgKHR5cGVJbmRleCAhPT0gLTEpIHtcclxuICAgICAgICBzdW1tYXJ5LnB1c2goY2xvc2VzdFJlc3VsdEJ5VHlwZVtyZXN1bHQuZGF0YS5wcm9wZXJ0aWVzLnR5cGVdLnRpdGxlKTtcclxuICAgICAgICBzdW1tYXJpemVkQ2xvc2VzdFR5cGUuc3BsaWNlKHR5cGVJbmRleCwgMSk7XHJcbiAgICAgICAgcHJvY2Vzc2VkU3VtbWFyaXplZENsb3Nlc3RUeXBlLnB1c2gocmVzdWx0LmRhdGEucHJvcGVydGllcy50eXBlKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpZiAocHJvY2Vzc2VkU3VtbWFyaXplZENsb3Nlc3RUeXBlLmluZGV4T2YocmVzdWx0LmRhdGEucHJvcGVydGllcy50eXBlKSA9PT0gLTEpIHtcclxuICAgICAgICAgIHN1bW1hcnkucHVzaChyZXN1bHQubWV0YS5wb2ludGVyU3VtbWFyeVRpdGxlIHx8IHJlc3VsdC5tZXRhLnRpdGxlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgaWYgKHN1bW1hcnkubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMuYWRkUG9pbnRlck92ZXJsYXkoc3VtbWFyeS5qb2luKCdcXG4nKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBPbiBtYXAgcG9pbnRlcm1vdmVcclxuICAgKi9cclxuICBwcml2YXRlIGxpc3RlblRvTWFwUG9pbnRlck1vdmUoKSB7XHJcbiAgICB0aGlzLnBvaW50ZXJNb3ZlTGlzdGVuZXIgPSB0aGlzLm1hcC5vbC5vbihcclxuICAgICAgJ3BvaW50ZXJtb3ZlJyxcclxuICAgICAgKGV2ZW50OiBNYXBCcm93c2VyUG9pbnRlckV2ZW50PGFueT4pID0+IHRoaXMub25NYXBFdmVudChldmVudClcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVbnN1YnNjcmliZSB0byBwb2ludGVyIHN0b3JlLlxyXG4gICAqIEBpbnRlcm5hbFxyXG4gICAqL1xyXG4gIHVuc3Vic2NyaWJlVG9Qb2ludGVyU3RvcmUoKSB7XHJcbiAgICB0aGlzLnN0b3JlJCQudW5zdWJzY3JpYmUoKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogVW5zdWJzY3JpYmUgdG8gcmV2ZXJzZSBzZWF0Y2ggc3RvcmUuXHJcbiAgICogQGludGVybmFsXHJcbiAgICovXHJcbiAgdW5zdWJzY3JpYmVSZXZlcnNlU2VhcmNoKCkge1xyXG4gICAgdGhpcy5yZXZlcnNlU2VhcmNoJCQubWFwKHMgPT4gcy51bnN1YnNjcmliZSgpKTtcclxuICAgIHRoaXMucmV2ZXJzZVNlYXJjaCQkID0gW107XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTdG9wIGxpc3RlbmluZyBmb3IgbWFwIHBvaW50ZXJtb3ZlXHJcbiAgICogQGludGVybmFsXHJcbiAgICovXHJcbiAgcHJpdmF0ZSB1bmxpc3RlblRvTWFwUG9pbnRlck1vdmUoKSB7XHJcbiAgICB1bkJ5S2V5KHRoaXMucG9pbnRlck1vdmVMaXN0ZW5lcik7XHJcbiAgICB0aGlzLnBvaW50ZXJNb3ZlTGlzdGVuZXIgPSB1bmRlZmluZWQ7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBUcmlnZ2VyIHJldmVyc2Ugc2VhcmNoIHdoZW4gdGhlIG1vdXNlIGlzIG1vdGlvbmxlc3MgZHVyaW5nIHRoZSBkZWZpbmVkIGRlbGF5IChwb2ludGVyTW92ZURlbGF5KS5cclxuICAgKiBAcGFyYW0gZXZlbnQgT0wgbWFwIGJyb3dzZXIgcG9pbnRlciBldmVudFxyXG4gICAqL1xyXG4gIHByaXZhdGUgb25NYXBFdmVudChldmVudDogTWFwQnJvd3NlclBvaW50ZXJFdmVudDxhbnk+KSB7XHJcbiAgICBpZiAoXHJcbiAgICAgIGV2ZW50LmRyYWdnaW5nIHx8ICF0aGlzLmlnb1NlYXJjaFBvaW50ZXJTdW1tYXJ5RW5hYmxlZCB8fFxyXG4gICAgICAhdGhpcy5oYXNQb2ludGVyUmV2ZXJzZVNlYXJjaFNvdXJjZSB8fCB0aGlzLm1lZGlhU2VydmljZS5pc1RvdWNoU2NyZWVuKCkpIHtcclxuICAgICAgdGhpcy5jbGVhckxheWVyKCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmICh0eXBlb2YgdGhpcy5sYXN0VGltZW91dFJlcXVlc3QgIT09ICd1bmRlZmluZWQnKSB7IC8vIGNhbmNlbCB0aW1lb3V0IHdoZW4gdGhlIG1vdXNlIG1vdmVzXHJcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLmxhc3RUaW1lb3V0UmVxdWVzdCk7XHJcbiAgICAgIHRoaXMuY2xlYXJMYXllcigpO1xyXG4gICAgICB0aGlzLnVuc3Vic2NyaWJlUmV2ZXJzZVNlYXJjaCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMubG9uTGF0ID0gdHJhbnNmb3JtKGV2ZW50LmNvb3JkaW5hdGUsIHRoaXMubWFwUHJvamVjdGlvbiwgJ0VQU0c6NDMyNicpIGFzIFtudW1iZXIsIG51bWJlcl07XHJcblxyXG4gICAgdGhpcy5sYXN0VGltZW91dFJlcXVlc3QgPSBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5vblNlYXJjaENvb3JkaW5hdGUoKTtcclxuICAgIH0sIHRoaXMuaWdvU2VhcmNoUG9pbnRlclN1bW1hcnlEZWxheSk7XHJcbiAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAqIFNvcnQgdGhlIHJlc3VsdHMgYnkgZGlzcGxheSBvcmRlci5cclxuICAgKiBAcGFyYW0gcjEgRmlyc3QgcmVzdWx0XHJcbiAgICogQHBhcmFtIHIyIFNlY29uZCByZXN1bHRcclxuICAgKi9cclxuICAgICBwcml2YXRlIHNvcnRCeU9yZGVyKHIxOiBTZWFyY2hSZXN1bHQsIHIyOiBTZWFyY2hSZXN1bHQpIHtcclxuICAgICAgcmV0dXJuIHIxLnNvdXJjZS5kaXNwbGF5T3JkZXIgLSByMi5zb3VyY2UuZGlzcGxheU9yZGVyO1xyXG4gICAgfVxyXG5cclxuICBwcml2YXRlIG9uU2VhcmNoQ29vcmRpbmF0ZSgpIHtcclxuICAgIHRoaXMucG9pbnRlclNlYXJjaFN0b3JlLmNsZWFyKCk7XHJcbiAgICBjb25zdCByZXN1bHRzID0gdGhpcy5zZWFyY2hTZXJ2aWNlLnJldmVyc2VTZWFyY2godGhpcy5sb25MYXQsIHsgcGFyYW1zOiB7IGdlb21ldHJ5OiAnZmFsc2UnLCBpY29uOiAnZmFsc2UnIH0gfSwgdHJ1ZSk7XHJcblxyXG4gICAgZm9yIChjb25zdCBpIGluIHJlc3VsdHMpIHtcclxuICAgICAgaWYgKHJlc3VsdHMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIHRoaXMucmV2ZXJzZVNlYXJjaCQkLnB1c2goXHJcbiAgICAgICAgICByZXN1bHRzW2ldLnJlcXVlc3Quc3Vic2NyaWJlKChfcmVzdWx0czogU2VhcmNoUmVzdWx0PEZlYXR1cmU+W10pID0+IHtcclxuICAgICAgICAgICAgdGhpcy5vblNlYXJjaCh7IHJlc2VhcmNoOiByZXN1bHRzW2ldLCByZXN1bHRzOiBfcmVzdWx0cyB9KTtcclxuICAgICAgICAgIH0pKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBvblNlYXJjaChldmVudDogeyByZXNlYXJjaDogUmVzZWFyY2g7IHJlc3VsdHM6IFNlYXJjaFJlc3VsdFtdIH0pIHtcclxuICAgIGNvbnN0IHJlc3VsdHMgPSBldmVudC5yZXN1bHRzO1xyXG4gICAgY29uc3QgbmV3UmVzdWx0cyA9IHRoaXMucG9pbnRlclNlYXJjaFN0b3JlLmFsbCgpXHJcbiAgICAgIC5maWx0ZXIoKHJlc3VsdDogU2VhcmNoUmVzdWx0KSA9PiByZXN1bHQuc291cmNlICE9PSBldmVudC5yZXNlYXJjaC5zb3VyY2UpXHJcbiAgICAgIC5jb25jYXQocmVzdWx0cyk7XHJcbiAgICB0aGlzLnBvaW50ZXJTZWFyY2hTdG9yZS5sb2FkKG5ld1Jlc3VsdHMuc29ydCh0aGlzLnNvcnRCeU9yZGVyKSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBZGQgYSBmZWF0dXJlIHRvIHRoZSBwb2ludGVyIHN0b3JlXHJcbiAgICogQHBhcmFtIHRleHQgc3RyaW5nXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBhZGRQb2ludGVyT3ZlcmxheSh0ZXh0OiBzdHJpbmcpIHtcclxuICAgIHRoaXMuY2xlYXJMYXllcigpO1xyXG5cclxuICAgIGNvbnN0IGdlb21ldHJ5ID0gbmV3IG9sZ2VvbS5Qb2ludChcclxuICAgICAgdHJhbnNmb3JtKHRoaXMubG9uTGF0LCAnRVBTRzo0MzI2JywgdGhpcy5tYXBQcm9qZWN0aW9uKVxyXG4gICAgKTtcclxuICAgIGNvbnN0IGZlYXR1cmUgPSBuZXcgb2xGZWF0dXJlKHsgZ2VvbWV0cnkgfSk7XHJcbiAgICBjb25zdCBnZW9qc29uR2VvbSA9IG5ldyBPbEdlb0pTT04oKS53cml0ZUdlb21ldHJ5T2JqZWN0KGdlb21ldHJ5LCB7XHJcbiAgICAgIGZlYXR1cmVQcm9qZWN0aW9uOiB0aGlzLm1hcFByb2plY3Rpb24sXHJcbiAgICAgIGRhdGFQcm9qZWN0aW9uOiB0aGlzLm1hcFByb2plY3Rpb25cclxuICAgIH0pIGFzIEZlYXR1cmVHZW9tZXRyeTtcclxuXHJcbiAgICBjb25zdCBmOiBGZWF0dXJlID0ge1xyXG4gICAgICB0eXBlOiBGRUFUVVJFLFxyXG4gICAgICBnZW9tZXRyeTogZ2VvanNvbkdlb20sXHJcbiAgICAgIHByb2plY3Rpb246IHRoaXMubWFwUHJvamVjdGlvbixcclxuICAgICAgcHJvcGVydGllczoge1xyXG4gICAgICAgIGlkOiB0aGlzLnNlYXJjaFBvaW50ZXJTdW1tYXJ5RmVhdHVyZUlkLFxyXG4gICAgICAgIHBvaW50ZXJTdW1tYXJ5OiB0ZXh0XHJcbiAgICAgIH0sXHJcbiAgICAgIG1ldGE6IHtcclxuICAgICAgICBpZDogdGhpcy5zZWFyY2hQb2ludGVyU3VtbWFyeUZlYXR1cmVJZFxyXG4gICAgICB9LFxyXG4gICAgICBvbDogZmVhdHVyZVxyXG4gICAgfTtcclxuICAgIHRoaXMuc3RvcmUuc2V0TGF5ZXJGZWF0dXJlcyhbZl0sIEZlYXR1cmVNb3Rpb24uTm9uZSk7XHJcbiAgfVxyXG5cclxuLyoqXHJcbiAqIENsZWFyIHRoZSBwb2ludGVyIHN0b3JlIGZlYXR1cmVzXHJcbiAqL1xyXG5wcml2YXRlIGNsZWFyTGF5ZXIoKSB7XHJcbiAgaWYgKHRoaXMuc3RvcmUpIHtcclxuICAgIHRoaXMuc3RvcmUuY2xlYXJMYXllcigpO1xyXG4gIH1cclxufVxyXG5cclxufVxyXG5cclxuLyoqXHJcbiAqIENyZWF0ZSBhIGRlZmF1bHQgc3R5bGUgZm9yIHRoZSBwb2ludGVyIHBvc2l0aW9uIGFuZCBpdCdzIGxhYmVsIHN1bW1hcnkuXHJcbiAqIEBwYXJhbSBmZWF0dXJlIE9sRmVhdHVyZVxyXG4gKiBAcmV0dXJucyBPTCBzdHlsZSBmdW5jdGlvblxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHBvaW50ZXJQb3NpdGlvblN1bW1hcnlNYXJrZXIoZmVhdHVyZTogb2xGZWF0dXJlPE9sR2VvbWV0cnk+LCByZXNvbHV0aW9uOiBudW1iZXIpOiBvbHN0eWxlLlN0eWxlIHtcclxuICByZXR1cm4gbmV3IG9sc3R5bGUuU3R5bGUoe1xyXG4gICAgaW1hZ2U6IG5ldyBvbHN0eWxlLkljb24oe1xyXG4gICAgICBzcmM6ICcuL2Fzc2V0cy9pZ28yL2dlby9pY29ucy9jcm9zc19ibGFja18xOHB4LnN2ZycsXHJcbiAgICAgIGltZ1NpemU6IFsxOCwgMThdLCAvLyBmb3IgaWVcclxuICAgIH0pLFxyXG5cclxuICAgIHRleHQ6IG5ldyBvbHN0eWxlLlRleHQoe1xyXG4gICAgICB0ZXh0OiBmZWF0dXJlLmdldCgncG9pbnRlclN1bW1hcnknKSxcclxuICAgICAgdGV4dEFsaWduOiAnbGVmdCcsXHJcbiAgICAgIHRleHRCYXNlbGluZTogJ2JvdHRvbScsXHJcbiAgICAgIGZvbnQ6ICcxMnB4IENhbGlicmksc2Fucy1zZXJpZicsXHJcbiAgICAgIGZpbGw6IG5ldyBvbHN0eWxlLkZpbGwoeyBjb2xvcjogJyMwMDAnIH0pLFxyXG4gICAgICBiYWNrZ3JvdW5kRmlsbDogbmV3IG9sc3R5bGUuRmlsbCh7IGNvbG9yOiAncmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpJyB9KSxcclxuICAgICAgYmFja2dyb3VuZFN0cm9rZTogbmV3IG9sc3R5bGUuU3Ryb2tlKHsgY29sb3I6ICdyZ2JhKDIwMCwgMjAwLCAyMDAsIDAuNzUpJywgd2lkdGg6IDIgfSksXHJcbiAgICAgIHN0cm9rZTogbmV3IG9sc3R5bGUuU3Ryb2tlKHsgY29sb3I6ICcjZmZmJywgd2lkdGg6IDMgfSksXHJcbiAgICAgIG92ZXJmbG93OiB0cnVlLFxyXG4gICAgICBvZmZzZXRYOiAxMCxcclxuICAgICAgb2Zmc2V0WTogLTEwLFxyXG4gICAgICBwYWRkaW5nOiBbMi41LCAyLjUsIDIuNSwgMi41XVxyXG4gICAgfSlcclxuICB9KTtcclxufVxyXG4iXX0=
322
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLXBvaW50ZXItc3VtbWFyeS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9zZWFyY2gvc2hhcmVkL3NlYXJjaC1wb2ludGVyLXN1bW1hcnkuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUVMLElBQUksRUFHTCxNQUFNLGVBQWUsQ0FBQztBQVd2QixPQUFPLFNBQVMsTUFBTSxZQUFZLENBQUM7QUFDbkMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNwQyxPQUFPLEtBQUssT0FBTyxNQUFNLFVBQVUsQ0FBQztBQUNwQyxPQUFPLEtBQUssTUFBTSxNQUFNLFNBQVMsQ0FBQztBQUNsQyxPQUFPLFNBQVMsTUFBTSxtQkFBbUIsQ0FBQztBQUkxQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzNDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQzNGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDdkUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzFELE9BQU8sRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFFNUUsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFakUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7O0FBRXhDOzs7OztHQUtHO0FBSUgsTUFBTSxPQUFPLDZCQUE2QjtJQXVDeEMsWUFDa0IsU0FBOEIsRUFD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QyxLQUFLLENBQUM7UUFDdkIsS0FBSyxFQUFFLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQztZQUN0QixHQUFHLEVBQUUsOENBQThDO1lBQ25ELE9BQU8sRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxTQUFTO1NBQzdCLENBQUM7UUFFRixJQUFJLEVBQUUsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDO1lBQ3JCLElBQUksRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDO1lBQ25DLFNBQVMsRUFBRSxNQUFNO1lBQ2pCLFlBQVksRUFBRSxRQUFRO1lBQ3RCLElBQUksRUFBRSx5QkFBeUI7WUFDL0IsSUFBSSxFQUFFLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUN6QyxjQUFjLEVBQUUsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLDBCQUEwQixFQUFFLENBQUM7WUFDdkUsZ0JBQWdCLEVBQUUsSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsS0FBSyxFQUFFLDJCQUEyQixFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUN0RixNQUFNLEVBQUUsSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDdkQsUUFBUSxFQUFFLElBQUk7WUFDZCxPQUFPLEVBQUUsRUFBRTtZQUNYLE9BQU8sRUFBRSxDQUFDLEVBQUU7WUFDWixPQUFPLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7U0FDOUIsQ0FBQztLQUNILENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGZWF0dXJlR2VvbWV0cnkgfSBmcm9tICcuLy4uLy4uL2ZlYXR1cmUvc2hhcmVkL2ZlYXR1cmUuaW50ZXJmYWNlcyc7XG5pbXBvcnQge1xuICBEaXJlY3RpdmUsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIFNlbGYsXG4gIE9uSW5pdCxcbiAgQWZ0ZXJDb250ZW50Q2hlY2tlZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCBNYXBCcm93c2VyUG9pbnRlckV2ZW50IGZyb20gJ29sL01hcEJyb3dzZXJFdmVudCc7XG5cbmltcG9ydCB7IElnb01hcCB9IGZyb20gJy4uLy4uL21hcC9zaGFyZWQvbWFwJztcbmltcG9ydCB7IE1hcEJyb3dzZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tYXAvbWFwLWJyb3dzZXIvbWFwLWJyb3dzZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEZlYXR1cmUgfSBmcm9tICcuLi8uLi9mZWF0dXJlL3NoYXJlZC9mZWF0dXJlLmludGVyZmFjZXMnO1xuaW1wb3J0IHsgU2VhcmNoU2VydmljZSB9IGZyb20gJy4vc2VhcmNoLnNlcnZpY2UnO1xuXG5pbXBvcnQgb2xGZWF0dXJlIGZyb20gJ29sL0ZlYXR1cmUnO1xuaW1wb3J0IHsgdHJhbnNmb3JtIH0gZnJvbSAnb2wvcHJvaic7XG5pbXBvcnQgKiBhcyBvbHN0eWxlIGZyb20gJ29sL3N0eWxlJztcbmltcG9ydCAqIGFzIG9sZ2VvbSBmcm9tICdvbC9nZW9tJztcbmltcG9ydCBPbEdlb0pTT04gZnJvbSAnb2wvZm9ybWF0L0dlb0pTT04nO1xuaW1wb3J0IHR5cGUgeyBkZWZhdWx0IGFzIE9sR2VvbWV0cnkgfSBmcm9tICdvbC9nZW9tL0dlb21ldHJ5JztcblxuaW1wb3J0IHsgU2VhcmNoUmVzdWx0LCBSZXNlYXJjaCB9IGZyb20gJy4vc2VhcmNoLmludGVyZmFjZXMnO1xuaW1wb3J0IHsgRW50aXR5U3RvcmUgfSBmcm9tICdAaWdvMi9jb21tb24nO1xuaW1wb3J0IHsgRmVhdHVyZURhdGFTb3VyY2UgfSBmcm9tICcuLi8uLi9kYXRhc291cmNlL3NoYXJlZC9kYXRhc291cmNlcy9mZWF0dXJlLWRhdGFzb3VyY2UnO1xuaW1wb3J0IHsgVmVjdG9yTGF5ZXIgfSBmcm9tICcuLi8uLi9sYXllci9zaGFyZWQvbGF5ZXJzL3ZlY3Rvci1sYXllcic7XG5pbXBvcnQgeyB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgdHJ5QmluZFN0b3JlTGF5ZXIgfSBmcm9tICcuLi8uLi9mZWF0dXJlL3NoYXJlZC9mZWF0dXJlLnV0aWxzJztcbmltcG9ydCB7IEZlYXR1cmVTdG9yZSB9IGZyb20gJy4uLy4uL2ZlYXR1cmUvc2hhcmVkL3N0b3JlJztcbmltcG9ydCB7IEZlYXR1cmVNb3Rpb24sIEZFQVRVUkUgfSBmcm9tICcuLi8uLi9mZWF0dXJlL3NoYXJlZC9mZWF0dXJlLmVudW1zJztcbmltcG9ydCB7IFNlYXJjaFNvdXJjZVNlcnZpY2UgfSBmcm9tICcuL3NlYXJjaC1zb3VyY2Uuc2VydmljZSc7XG5pbXBvcnQgeyBzb3VyY2VDYW5SZXZlcnNlU2VhcmNoQXNTdW1tYXJ5IH0gZnJvbSAnLi9zZWFyY2gudXRpbHMnO1xuaW1wb3J0IHsgTWVkaWFTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZSc7XG5pbXBvcnQgeyB1bkJ5S2V5IH0gZnJvbSAnb2wvT2JzZXJ2YWJsZSc7XG5cbi8qKlxuICogVGhpcyBkaXJlY3RpdmUgbWFrZXMgdGhlIG1vdXNlIGNvb3JkaW5hdGUgdHJpZ2dlciBhIHJldmVyc2Ugc2VhcmNoIG9uIGF2YWlsYWJsZSBzZWFyY2ggc291cmNlcy5cbiAqIFRoZSBzZWFyY2ggcmVzdWx0cyBhcmUgcGxhY2VkIGludG8gYSBsYWJlbCwgb24gYSBjcm9zcyBpY29uLCByZXByZXNlbnRpbmcgdGhlIG1vdXNlIGNvb3JkaW5hdGUuXG4gKiBCeSBkZWZhdWx0LCBubyBzZWFyY2ggc291cmNlcy4gQ29uZmlnIGluIGNvbmZpZyBmaWxlIG11c3QgYmUgZGVmaW5lZC5cbiAqIHRoZSBsYXllciBsZXZlbC5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2lnb1NlYXJjaFBvaW50ZXJTdW1tYXJ5XSdcbn0pXG5leHBvcnQgY2xhc3MgU2VhcmNoUG9pbnRlclN1bW1hcnlEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQWZ0ZXJDb250ZW50Q2hlY2tlZCB7XG5cbiAgcHVibGljIHN0b3JlOiBGZWF0dXJlU3RvcmU8RmVhdHVyZT47XG4gIHByaXZhdGUgbG9uTGF0OiBbbnVtYmVyLCBudW1iZXJdO1xuICBwcml2YXRlIHBvaW50ZXJTZWFyY2hTdG9yZTogRW50aXR5U3RvcmU8U2VhcmNoUmVzdWx0PiA9IG5ldyBFbnRpdHlTdG9yZTxTZWFyY2hSZXN1bHQ+KFtdKTtcbiAgcHJpdmF0ZSBsYXN0VGltZW91dFJlcXVlc3Q7XG4gIHByaXZhdGUgc3RvcmUkJDogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIGxheWVycyQkOiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgcmV2ZXJzZVNlYXJjaCQkOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuICBwcml2YXRlIGhhc1BvaW50ZXJSZXZlcnNlU2VhcmNoU291cmNlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIExpc3RlbmVyIHRvIHRoZSBwb2ludGVyIG1vdmUgZXZlbnRcbiAgICovXG4gIHByaXZhdGUgcG9pbnRlck1vdmVMaXN0ZW5lcjtcblxuICBwcml2YXRlIHNlYXJjaFBvaW50ZXJTdW1tYXJ5RmVhdHVyZUlkOiBzdHJpbmcgPSAnc2VhcmNoUG9pbnRlclN1bW1hcnlGZWF0dXJlSWQnO1xuICAvKipcbiAgICogVGhlIGRlbGF5IHdoZXJlIHRoZSBtb3VzZSBtdXN0IGJlIG1vdGlvbmxlc3MgYmVmb3JlIHRyaWdnZXIgdGhlIHJldmVyc2Ugc2VhcmNoXG4gICAqL1xuICBASW5wdXQoKSBpZ29TZWFyY2hQb2ludGVyU3VtbWFyeURlbGF5OiBudW1iZXIgPSAxMDAwO1xuXG4gIC8qKlxuICAgKiBJZiB0aGUgdXNlciBoYXMgZW5hYmxlZCBvciBub3QgdGhlIGRpcmVjdGl2ZVxuICAgKi9cbiAgQElucHV0KCkgaWdvU2VhcmNoUG9pbnRlclN1bW1hcnlFbmFibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIElHTyBtYXBcbiAgICogQGludGVybmFsXG4gICAqL1xuICBnZXQgbWFwKCk6IElnb01hcCB7XG4gICAgcmV0dXJuIHRoaXMuY29tcG9uZW50Lm1hcDtcbiAgfVxuXG4gIGdldCBtYXBQcm9qZWN0aW9uKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICh0aGlzLmNvbXBvbmVudC5tYXAgYXMgSWdvTWFwKS5wcm9qZWN0aW9uO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQFNlbGYoKSBwcml2YXRlIGNvbXBvbmVudDogTWFwQnJvd3NlckNvbXBvbmVudCxcbiAgICBwcml2YXRlIHNlYXJjaFNlcnZpY2U6IFNlYXJjaFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzZWFyY2hTb3VyY2VTZXJ2aWNlOiBTZWFyY2hTb3VyY2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgbWVkaWFTZXJ2aWNlOiBNZWRpYVNlcnZpY2VcbiAgKSB7IH1cblxuICAvKipcbiAgICogU3RhcnQgbGlzdGVuaW5nIHRvIHBvaW50ZXJtb3ZlIGFuZCByZXZlcnNlIHNlYXJjaCByZXN1bHRzLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMubGlzdGVuVG9NYXBQb2ludGVyTW92ZSgpO1xuICAgIHRoaXMuc3Vic2NyaWJlVG9Qb2ludGVyU3RvcmUoKTtcblxuICAgIHRoaXMubWFwLnN0YXR1cyQucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5zdG9yZSA9IG5ldyBGZWF0dXJlU3RvcmU8RmVhdHVyZT4oW10sIHttYXA6IHRoaXMubWFwfSk7XG4gICAgICB0aGlzLmluaXRTdG9yZSgpO1xuICAgIH0pO1xuXG4gICAgLy8gVG8gaGFuZGxlIGNvbnRleHQgY2hhbmdlIHdpdGhvdXQgdXNpbmcgdGhlIGNvbnRleHRTZXJ2aWNlLlxuICAgIHRoaXMubGF5ZXJzJCQgPSB0aGlzLm1hcC5sYXllcnMkLnN1YnNjcmliZSgobGF5ZXJzKSA9PiB7XG4gICAgICBpZiAodGhpcy5zdG9yZSAmJiAhbGF5ZXJzLmZpbmQobCA9PiBsLmlkID09PSAnc2VhcmNoUG9pbnRlclN1bW1hcnlJZCcpKSB7XG4gICAgICAgIHRoaXMuaW5pdFN0b3JlKCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplIHRoZSBwb2ludGVyIHBvc2l0aW9uIHN0b3JlXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHJpdmF0ZSBpbml0U3RvcmUoKSB7XG4gICAgY29uc3Qgc3RvcmUgPSB0aGlzLnN0b3JlO1xuXG4gICAgY29uc3QgbGF5ZXIgPSBuZXcgVmVjdG9yTGF5ZXIoe1xuICAgICAgaXNJZ29JbnRlcm5hbExheWVyOiB0cnVlLFxuICAgICAgaWQgOiAnc2VhcmNoUG9pbnRlclN1bW1hcnlJZCcsXG4gICAgICB0aXRsZTogJ3NlYXJjaFBvaW50ZXJTdW1tYXJ5JyxcbiAgICAgIHpJbmRleDogOTAwLFxuICAgICAgc291cmNlOiBuZXcgRmVhdHVyZURhdGFTb3VyY2UoKSxcbiAgICAgIHNob3dJbkxheWVyTGlzdDogZmFsc2UsXG4gICAgICBleHBvcnRhYmxlOiBmYWxzZSxcbiAgICAgIGJyb3dzYWJsZTogZmFsc2UsXG4gICAgICBzdHlsZTogcG9pbnRlclBvc2l0aW9uU3VtbWFyeU1hcmtlclxuICAgIH0pO1xuICAgIHRyeUJpbmRTdG9yZUxheWVyKHN0b3JlLCBsYXllcik7XG4gIH1cblxuICBuZ0FmdGVyQ29udGVudENoZWNrZWQoKTogdm9pZCB7XG4gICAgICBpZiAoIXRoaXMuc2VhcmNoU291cmNlU2VydmljZS5nZXRFbmFibGVkU291cmNlcygpLmZpbHRlcihzb3VyY2VDYW5SZXZlcnNlU2VhcmNoQXNTdW1tYXJ5KS5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy5oYXNQb2ludGVyUmV2ZXJzZVNlYXJjaFNvdXJjZSA9IGZhbHNlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5oYXNQb2ludGVyUmV2ZXJzZVNlYXJjaFNvdXJjZSA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gIC8qKlxuICAgKiBTdG9wIGxpc3RlbmluZyB0byBwb2ludGVybW92ZSBhbmQgcmV2ZXJzZSBzZWFyY2ggcmVzdWx0cy5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnVubGlzdGVuVG9NYXBQb2ludGVyTW92ZSgpO1xuICAgIHRoaXMudW5zdWJzY3JpYmVUb1BvaW50ZXJTdG9yZSgpO1xuICAgIHRoaXMudW5zdWJzY3JpYmVSZXZlcnNlU2VhcmNoKCk7XG4gICAgdGhpcy5sYXllcnMkJC51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFN1YnNjcmliZSB0byBwb2ludGVybW92ZSByZXN1bHQgc3RvcmVcbiAgICogQGludGVybmFsXG4gICAqL1xuICBzdWJzY3JpYmVUb1BvaW50ZXJTdG9yZSgpIHtcbiAgICB0aGlzLnN0b3JlJCQgPSB0aGlzLnBvaW50ZXJTZWFyY2hTdG9yZS5lbnRpdGllcyQuc3Vic2NyaWJlKHJlc3VsdHNVbmRlclBvaW50ZXJQb3NpdGlvbiA9PiB7XG4gICAgICB0aGlzLmVudGl0aWVzVG9Qb2ludGVyT3ZlcmxheShyZXN1bHRzVW5kZXJQb2ludGVyUG9zaXRpb24pO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkIGFuIG9iamVjdCBiYXNlZCBvbiB0aGUgY2xvc2VzdCBmZWF0dXJlIGJ5IHR5cGUgKGJhc2Ugb24gdHlwZSBhbmQgZGlzdGFuY2UgcHJvcGVydGllcyApXG4gICAqIEBwYXJhbSByZXN1bHRzIFNlYXJjaFJlc3VsdFtdXG4gICAqIEByZXR1cm5zIE9MIHN0eWxlIGZ1bmN0aW9uXG4gICAqL1xuICBwcml2YXRlIGNvbXB1dGVTdW1tYXJ5Q2xvc2VzdEZlYXR1cmUocmVzdWx0czogU2VhcmNoUmVzdWx0W10pOiB7fSB7XG4gICAgY29uc3QgY2xvc2VzdFJlc3VsdEJ5VHlwZSA9IHt9O1xuXG4gICAgcmVzdWx0cy5tYXAocmVzdWx0ID0+IHtcbiAgICAgIGlmIChyZXN1bHQuZGF0YS5wcm9wZXJ0aWVzLnR5cGUgJiYgcmVzdWx0LmRhdGEucHJvcGVydGllcy5kaXN0YW5jZSA+PSAwKSB7XG4gICAgICAgIGlmIChjbG9zZXN0UmVzdWx0QnlUeXBlLmhhc093blByb3BlcnR5KHJlc3VsdC5kYXRhLnByb3BlcnRpZXMudHlwZSkpIHtcbiAgICAgICAgICBjb25zdCBwcmV2RGlzdGFuY2UgPSBjbG9zZXN0UmVzdWx0QnlUeXBlW3Jlc3VsdC5kYXRhLnByb3BlcnRpZXMudHlwZV0uZGlzdGFuY2U7XG4gICAgICAgICAgaWYgKHJlc3VsdC5kYXRhLnByb3BlcnRpZXMuZGlzdGFuY2UgPCBwcmV2RGlzdGFuY2UpIHtcbiAgICAgICAgICAgIGNvbnN0IHRpdGxlID0gcmVzdWx0Lm1ldGEucG9pbnRlclN1bW1hcnlUaXRsZSB8fCByZXN1bHQubWV0YS50aXRsZTtcbiAgICAgICAgICAgIGNsb3Nlc3RSZXN1bHRCeVR5cGVbcmVzdWx0LmRhdGEucHJvcGVydGllcy50eXBlXSA9IHsgZGlzdGFuY2U6IHJlc3VsdC5kYXRhLnByb3BlcnRpZXMuZGlzdGFuY2UsIHRpdGxlIH07XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IHRpdGxlID0gcmVzdWx0Lm1ldGEucG9pbnRlclN1bW1hcnlUaXRsZSB8fCByZXN1bHQubWV0YS50aXRsZTtcbiAgICAgICAgICBjbG9zZXN0UmVzdWx0QnlUeXBlW3Jlc3VsdC5kYXRhLnByb3BlcnRpZXMudHlwZV0gPSB7IGRpc3RhbmNlOiByZXN1bHQuZGF0YS5wcm9wZXJ0aWVzLmRpc3RhbmNlLCB0aXRsZSB9O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gY2xvc2VzdFJlc3VsdEJ5VHlwZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBjb252ZXJ0IHN0b3JlIGVudGl0aWVzIHRvIGEgcG9pbnRlciBwb3NpdGlvbiBvdmVybGF5IHdpdGggbGFiZWwgc3VtbWFyeSBvbi5cbiAgICogQHBhcmFtIGV2ZW50IE9MIG1hcCBicm93c2VyIHBvaW50ZXIgZXZlbnRcbiAgICovXG4gIHByaXZhdGUgZW50aXRpZXNUb1BvaW50ZXJPdmVybGF5KHJlc3VsdHNVbmRlclBvaW50ZXJQb3NpdGlvbjogU2VhcmNoUmVzdWx0W10pIHtcbiAgICBjb25zdCBjbG9zZXN0UmVzdWx0QnlUeXBlID0gdGhpcy5jb21wdXRlU3VtbWFyeUNsb3Nlc3RGZWF0dXJlKHJlc3VsdHNVbmRlclBvaW50ZXJQb3NpdGlvbik7XG4gICAgY29uc3Qgc3VtbWFyaXplZENsb3Nlc3RUeXBlID0gT2JqZWN0LmtleXMoY2xvc2VzdFJlc3VsdEJ5VHlwZSk7XG4gICAgY29uc3QgcHJvY2Vzc2VkU3VtbWFyaXplZENsb3Nlc3RUeXBlID0gW107XG4gICAgY29uc3Qgc3VtbWFyeSA9IFtdO1xuICAgIHJlc3VsdHNVbmRlclBvaW50ZXJQb3NpdGlvbi5tYXAocmVzdWx0ID0+IHtcbiAgICAgIGNvbnN0IHR5cGVJbmRleCA9IHN1bW1hcml6ZWRDbG9zZXN0VHlwZS5pbmRleE9mKHJlc3VsdC5kYXRhLnByb3BlcnRpZXMudHlwZSk7XG4gICAgICBpZiAodHlwZUluZGV4ICE9PSAtMSkge1xuICAgICAgICBzdW1tYXJ5LnB1c2goY2xvc2VzdFJlc3VsdEJ5VHlwZVtyZXN1bHQuZGF0YS5wcm9wZXJ0aWVzLnR5cGVdLnRpdGxlKTtcbiAgICAgICAgc3VtbWFyaXplZENsb3Nlc3RUeXBlLnNwbGljZSh0eXBlSW5kZXgsIDEpO1xuICAgICAgICBwcm9jZXNzZWRTdW1tYXJpemVkQ2xvc2VzdFR5cGUucHVzaChyZXN1bHQuZGF0YS5wcm9wZXJ0aWVzLnR5cGUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKHByb2Nlc3NlZFN1bW1hcml6ZWRDbG9zZXN0VHlwZS5pbmRleE9mKHJlc3VsdC5kYXRhLnByb3BlcnRpZXMudHlwZSkgPT09IC0xKSB7XG4gICAgICAgICAgc3VtbWFyeS5wdXNoKHJlc3VsdC5tZXRhLnBvaW50ZXJTdW1tYXJ5VGl0bGUgfHwgcmVzdWx0Lm1ldGEudGl0bGUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gICAgaWYgKHN1bW1hcnkubGVuZ3RoKSB7XG4gICAgICB0aGlzLmFkZFBvaW50ZXJPdmVybGF5KHN1bW1hcnkuam9pbignXFxuJykpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBPbiBtYXAgcG9pbnRlcm1vdmVcbiAgICovXG4gIHByaXZhdGUgbGlzdGVuVG9NYXBQb2ludGVyTW92ZSgpIHtcbiAgICB0aGlzLnBvaW50ZXJNb3ZlTGlzdGVuZXIgPSB0aGlzLm1hcC5vbC5vbihcbiAgICAgICdwb2ludGVybW92ZScsXG4gICAgICAoZXZlbnQ6IE1hcEJyb3dzZXJQb2ludGVyRXZlbnQ8YW55PikgPT4gdGhpcy5vbk1hcEV2ZW50KGV2ZW50KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogVW5zdWJzY3JpYmUgdG8gcG9pbnRlciBzdG9yZS5cbiAgICogQGludGVybmFsXG4gICAqL1xuICB1bnN1YnNjcmliZVRvUG9pbnRlclN0b3JlKCkge1xuICAgIHRoaXMuc3RvcmUkJC51bnN1YnNjcmliZSgpO1xuICB9XG4gIC8qKlxuICAgKiBVbnN1YnNjcmliZSB0byByZXZlcnNlIHNlYXRjaCBzdG9yZS5cbiAgICogQGludGVybmFsXG4gICAqL1xuICB1bnN1YnNjcmliZVJldmVyc2VTZWFyY2goKSB7XG4gICAgdGhpcy5yZXZlcnNlU2VhcmNoJCQubWFwKHMgPT4gcy51bnN1YnNjcmliZSgpKTtcbiAgICB0aGlzLnJldmVyc2VTZWFyY2gkJCA9IFtdO1xuICB9XG5cbiAgLyoqXG4gICAqIFN0b3AgbGlzdGVuaW5nIGZvciBtYXAgcG9pbnRlcm1vdmVcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwcml2YXRlIHVubGlzdGVuVG9NYXBQb2ludGVyTW92ZSgpIHtcbiAgICB1bkJ5S2V5KHRoaXMucG9pbnRlck1vdmVMaXN0ZW5lcik7XG4gICAgdGhpcy5wb2ludGVyTW92ZUxpc3RlbmVyID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgLyoqXG4gICAqIFRyaWdnZXIgcmV2ZXJzZSBzZWFyY2ggd2hlbiB0aGUgbW91c2UgaXMgbW90aW9ubGVzcyBkdXJpbmcgdGhlIGRlZmluZWQgZGVsYXkgKHBvaW50ZXJNb3ZlRGVsYXkpLlxuICAgKiBAcGFyYW0gZXZlbnQgT0wgbWFwIGJyb3dzZXIgcG9pbnRlciBldmVudFxuICAgKi9cbiAgcHJpdmF0ZSBvbk1hcEV2ZW50KGV2ZW50OiBNYXBCcm93c2VyUG9pbnRlckV2ZW50PGFueT4pIHtcbiAgICBpZiAoXG4gICAgICBldmVudC5kcmFnZ2luZyB8fCAhdGhpcy5pZ29TZWFyY2hQb2ludGVyU3VtbWFyeUVuYWJsZWQgfHxcbiAgICAgICF0aGlzLmhhc1BvaW50ZXJSZXZlcnNlU2VhcmNoU291cmNlIHx8IHRoaXMubWVkaWFTZXJ2aWNlLmlzVG91Y2hTY3JlZW4oKSkge1xuICAgICAgdGhpcy5jbGVhckxheWVyKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0eXBlb2YgdGhpcy5sYXN0VGltZW91dFJlcXVlc3QgIT09ICd1bmRlZmluZWQnKSB7IC8vIGNhbmNlbCB0aW1lb3V0IHdoZW4gdGhlIG1vdXNlIG1vdmVzXG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5sYXN0VGltZW91dFJlcXVlc3QpO1xuICAgICAgdGhpcy5jbGVhckxheWVyKCk7XG4gICAgICB0aGlzLnVuc3Vic2NyaWJlUmV2ZXJzZVNlYXJjaCgpO1xuICAgIH1cblxuICAgIHRoaXMubG9uTGF0ID0gdHJhbnNmb3JtKGV2ZW50LmNvb3JkaW5hdGUsIHRoaXMubWFwUHJvamVjdGlvbiwgJ0VQU0c6NDMyNicpIGFzIFtudW1iZXIsIG51bWJlcl07XG5cbiAgICB0aGlzLmxhc3RUaW1lb3V0UmVxdWVzdCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5vblNlYXJjaENvb3JkaW5hdGUoKTtcbiAgICB9LCB0aGlzLmlnb1NlYXJjaFBvaW50ZXJTdW1tYXJ5RGVsYXkpO1xuICB9XG5cbiAgICAvKipcbiAgICogU29ydCB0aGUgcmVzdWx0cyBieSBkaXNwbGF5IG9yZGVyLlxuICAgKiBAcGFyYW0gcjEgRmlyc3QgcmVzdWx0XG4gICAqIEBwYXJhbSByMiBTZWNvbmQgcmVzdWx0XG4gICAqL1xuICAgICBwcml2YXRlIHNvcnRCeU9yZGVyKHIxOiBTZWFyY2hSZXN1bHQsIHIyOiBTZWFyY2hSZXN1bHQpIHtcbiAgICAgIHJldHVybiByMS5zb3VyY2UuZGlzcGxheU9yZGVyIC0gcjIuc291cmNlLmRpc3BsYXlPcmRlcjtcbiAgICB9XG5cbiAgcHJpdmF0ZSBvblNlYXJjaENvb3JkaW5hdGUoKSB7XG4gICAgdGhpcy5wb2ludGVyU2VhcmNoU3RvcmUuY2xlYXIoKTtcbiAgICBjb25zdCByZXN1bHRzID0gdGhpcy5zZWFyY2hTZXJ2aWNlLnJldmVyc2VTZWFyY2godGhpcy5sb25MYXQsIHsgcGFyYW1zOiB7IGdlb21ldHJ5OiAnZmFsc2UnLCBpY29uOiAnZmFsc2UnIH0gfSwgdHJ1ZSk7XG5cbiAgICBmb3IgKGNvbnN0IGkgaW4gcmVzdWx0cykge1xuICAgICAgaWYgKHJlc3VsdHMubGVuZ3RoID4gMCkge1xuICAgICAgICB0aGlzLnJldmVyc2VTZWFyY2gkJC5wdXNoKFxuICAgICAgICAgIHJlc3VsdHNbaV0ucmVxdWVzdC5zdWJzY3JpYmUoKF9yZXN1bHRzOiBTZWFyY2hSZXN1bHQ8RmVhdHVyZT5bXSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5vblNlYXJjaCh7IHJlc2VhcmNoOiByZXN1bHRzW2ldLCByZXN1bHRzOiBfcmVzdWx0cyB9KTtcbiAgICAgICAgICB9KSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBvblNlYXJjaChldmVudDogeyByZXNlYXJjaDogUmVzZWFyY2g7IHJlc3VsdHM6IFNlYXJjaFJlc3VsdFtdIH0pIHtcbiAgICBjb25zdCByZXN1bHRzID0gZXZlbnQucmVzdWx0cztcbiAgICBjb25zdCBuZXdSZXN1bHRzID0gdGhpcy5wb2ludGVyU2VhcmNoU3RvcmUuYWxsKClcbiAgICAgIC5maWx0ZXIoKHJlc3VsdDogU2VhcmNoUmVzdWx0KSA9PiByZXN1bHQuc291cmNlICE9PSBldmVudC5yZXNlYXJjaC5zb3VyY2UpXG4gICAgICAuY29uY2F0KHJlc3VsdHMpO1xuICAgIHRoaXMucG9pbnRlclNlYXJjaFN0b3JlLmxvYWQobmV3UmVzdWx0cy5zb3J0KHRoaXMuc29ydEJ5T3JkZXIpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYSBmZWF0dXJlIHRvIHRoZSBwb2ludGVyIHN0b3JlXG4gICAqIEBwYXJhbSB0ZXh0IHN0cmluZ1xuICAgKi9cbiAgcHJpdmF0ZSBhZGRQb2ludGVyT3ZlcmxheSh0ZXh0OiBzdHJpbmcpIHtcbiAgICB0aGlzLmNsZWFyTGF5ZXIoKTtcblxuICAgIGNvbnN0IGdlb21ldHJ5ID0gbmV3IG9sZ2VvbS5Qb2ludChcbiAgICAgIHRyYW5zZm9ybSh0aGlzLmxvbkxhdCwgJ0VQU0c6NDMyNicsIHRoaXMubWFwUHJvamVjdGlvbilcbiAgICApO1xuICAgIGNvbnN0IGZlYXR1cmUgPSBuZXcgb2xGZWF0dXJlKHsgZ2VvbWV0cnkgfSk7XG4gICAgY29uc3QgZ2VvanNvbkdlb20gPSBuZXcgT2xHZW9KU09OKCkud3JpdGVHZW9tZXRyeU9iamVjdChnZW9tZXRyeSwge1xuICAgICAgZmVhdHVyZVByb2plY3Rpb246IHRoaXMubWFwUHJvamVjdGlvbixcbiAgICAgIGRhdGFQcm9qZWN0aW9uOiB0aGlzLm1hcFByb2plY3Rpb25cbiAgICB9KSBhcyBGZWF0dXJlR2VvbWV0cnk7XG5cbiAgICBjb25zdCBmOiBGZWF0dXJlID0ge1xuICAgICAgdHlwZTogRkVBVFVSRSxcbiAgICAgIGdlb21ldHJ5OiBnZW9qc29uR2VvbSxcbiAgICAgIHByb2plY3Rpb246IHRoaXMubWFwUHJvamVjdGlvbixcbiAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgaWQ6IHRoaXMuc2VhcmNoUG9pbnRlclN1bW1hcnlGZWF0dXJlSWQsXG4gICAgICAgIHBvaW50ZXJTdW1tYXJ5OiB0ZXh0XG4gICAgICB9LFxuICAgICAgbWV0YToge1xuICAgICAgICBpZDogdGhpcy5zZWFyY2hQb2ludGVyU3VtbWFyeUZlYXR1cmVJZFxuICAgICAgfSxcbiAgICAgIG9sOiBmZWF0dXJlXG4gICAgfTtcbiAgICB0aGlzLnN0b3JlLnNldExheWVyRmVhdHVyZXMoW2ZdLCBGZWF0dXJlTW90aW9uLk5vbmUpO1xuICB9XG5cbi8qKlxuICogQ2xlYXIgdGhlIHBvaW50ZXIgc3RvcmUgZmVhdHVyZXNcbiAqL1xucHJpdmF0ZSBjbGVhckxheWVyKCkge1xuICBpZiAodGhpcy5zdG9yZSkge1xuICAgIHRoaXMuc3RvcmUuY2xlYXJMYXllcigpO1xuICB9XG59XG5cbn1cblxuLyoqXG4gKiBDcmVhdGUgYSBkZWZhdWx0IHN0eWxlIGZvciB0aGUgcG9pbnRlciBwb3NpdGlvbiBhbmQgaXQncyBsYWJlbCBzdW1tYXJ5LlxuICogQHBhcmFtIGZlYXR1cmUgT2xGZWF0dXJlXG4gKiBAcmV0dXJucyBPTCBzdHlsZSBmdW5jdGlvblxuICovXG5leHBvcnQgZnVuY3Rpb24gcG9pbnRlclBvc2l0aW9uU3VtbWFyeU1hcmtlcihmZWF0dXJlOiBvbEZlYXR1cmU8T2xHZW9tZXRyeT4sIHJlc29sdXRpb246IG51bWJlcik6IG9sc3R5bGUuU3R5bGUge1xuICByZXR1cm4gbmV3IG9sc3R5bGUuU3R5bGUoe1xuICAgIGltYWdlOiBuZXcgb2xzdHlsZS5JY29uKHtcbiAgICAgIHNyYzogJy4vYXNzZXRzL2lnbzIvZ2VvL2ljb25zL2Nyb3NzX2JsYWNrXzE4cHguc3ZnJyxcbiAgICAgIGltZ1NpemU6IFsxOCwgMThdLCAvLyBmb3IgaWVcbiAgICB9KSxcblxuICAgIHRleHQ6IG5ldyBvbHN0eWxlLlRleHQoe1xuICAgICAgdGV4dDogZmVhdHVyZS5nZXQoJ3BvaW50ZXJTdW1tYXJ5JyksXG4gICAgICB0ZXh0QWxpZ246ICdsZWZ0JyxcbiAgICAgIHRleHRCYXNlbGluZTogJ2JvdHRvbScsXG4gICAgICBmb250OiAnMTJweCBDYWxpYnJpLHNhbnMtc2VyaWYnLFxuICAgICAgZmlsbDogbmV3IG9sc3R5bGUuRmlsbCh7IGNvbG9yOiAnIzAwMCcgfSksXG4gICAgICBiYWNrZ3JvdW5kRmlsbDogbmV3IG9sc3R5bGUuRmlsbCh7IGNvbG9yOiAncmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpJyB9KSxcbiAgICAgIGJhY2tncm91bmRTdHJva2U6IG5ldyBvbHN0eWxlLlN0cm9rZSh7IGNvbG9yOiAncmdiYSgyMDAsIDIwMCwgMjAwLCAwLjc1KScsIHdpZHRoOiAyIH0pLFxuICAgICAgc3Ryb2tlOiBuZXcgb2xzdHlsZS5TdHJva2UoeyBjb2xvcjogJyNmZmYnLCB3aWR0aDogMyB9KSxcbiAgICAgIG92ZXJmbG93OiB0cnVlLFxuICAgICAgb2Zmc2V0WDogMTAsXG4gICAgICBvZmZzZXRZOiAtMTAsXG4gICAgICBwYWRkaW5nOiBbMi41LCAyLjUsIDIuNSwgMi41XVxuICAgIH0pXG4gIH0pO1xufVxuIl19
@@ -17,4 +17,4 @@ export function provideSearchSourceService() {
17
17
  deps: [SearchSource]
18
18
  };
19
19
  }
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLXNvdXJjZS1zZXJ2aWNlLnByb3ZpZGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL3NlYXJjaC9zaGFyZWQvc2VhcmNoLXNvdXJjZS1zZXJ2aWNlLnByb3ZpZGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDaEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFOUQ7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLDBCQUEwQixDQUFDLE9BQXVCO0lBQ2hFLE9BQU8sSUFBSSxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUMxQyxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsMEJBQTBCO0lBQ3hDLE9BQU87UUFDTCxPQUFPLEVBQUUsbUJBQW1CO1FBQzVCLFVBQVUsRUFBRSwwQkFBMEI7UUFDdEMsSUFBSSxFQUFFLENBQUMsWUFBWSxDQUFDO0tBQ3JCLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2VhcmNoU291cmNlIH0gZnJvbSAnLi9zb3VyY2VzL3NvdXJjZSc7XHJcbmltcG9ydCB7IFNlYXJjaFNvdXJjZVNlcnZpY2UgfSBmcm9tICcuL3NlYXJjaC1zb3VyY2Uuc2VydmljZSc7XHJcblxyXG4vKipcclxuICogU2VhcmNoIHNvdXJjZSBmYWN0b3J5XHJcbiAqIEBpZ25vcmVcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBzZWFyY2hTb3VyY2VTZXJ2aWNlRmFjdG9yeShzb3VyY2VzOiBTZWFyY2hTb3VyY2VbXSkge1xyXG4gIHJldHVybiBuZXcgU2VhcmNoU291cmNlU2VydmljZShzb3VyY2VzKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhIHByb3ZpZGVyIGZvciB0aGUgU2VhcmNoU291cmNlIHNlcnZpY2VcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlU2VhcmNoU291cmNlU2VydmljZSgpIHtcclxuICByZXR1cm4ge1xyXG4gICAgcHJvdmlkZTogU2VhcmNoU291cmNlU2VydmljZSxcclxuICAgIHVzZUZhY3Rvcnk6IHNlYXJjaFNvdXJjZVNlcnZpY2VGYWN0b3J5LFxyXG4gICAgZGVwczogW1NlYXJjaFNvdXJjZV1cclxuICB9O1xyXG59XHJcbiJdfQ==
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLXNvdXJjZS1zZXJ2aWNlLnByb3ZpZGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL3NlYXJjaC9zaGFyZWQvc2VhcmNoLXNvdXJjZS1zZXJ2aWNlLnByb3ZpZGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDaEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFOUQ7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLDBCQUEwQixDQUFDLE9BQXVCO0lBQ2hFLE9BQU8sSUFBSSxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUMxQyxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsMEJBQTBCO0lBQ3hDLE9BQU87UUFDTCxPQUFPLEVBQUUsbUJBQW1CO1FBQzVCLFVBQVUsRUFBRSwwQkFBMEI7UUFDdEMsSUFBSSxFQUFFLENBQUMsWUFBWSxDQUFDO0tBQ3JCLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2VhcmNoU291cmNlIH0gZnJvbSAnLi9zb3VyY2VzL3NvdXJjZSc7XG5pbXBvcnQgeyBTZWFyY2hTb3VyY2VTZXJ2aWNlIH0gZnJvbSAnLi9zZWFyY2gtc291cmNlLnNlcnZpY2UnO1xuXG4vKipcbiAqIFNlYXJjaCBzb3VyY2UgZmFjdG9yeVxuICogQGlnbm9yZVxuICovXG5leHBvcnQgZnVuY3Rpb24gc2VhcmNoU291cmNlU2VydmljZUZhY3Rvcnkoc291cmNlczogU2VhcmNoU291cmNlW10pIHtcbiAgcmV0dXJuIG5ldyBTZWFyY2hTb3VyY2VTZXJ2aWNlKHNvdXJjZXMpO1xufVxuXG4vKipcbiAqIEZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhIHByb3ZpZGVyIGZvciB0aGUgU2VhcmNoU291cmNlIHNlcnZpY2VcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVTZWFyY2hTb3VyY2VTZXJ2aWNlKCkge1xuICByZXR1cm4ge1xuICAgIHByb3ZpZGU6IFNlYXJjaFNvdXJjZVNlcnZpY2UsXG4gICAgdXNlRmFjdG9yeTogc2VhcmNoU291cmNlU2VydmljZUZhY3RvcnksXG4gICAgZGVwczogW1NlYXJjaFNvdXJjZV1cbiAgfTtcbn1cbiJdfQ==
@@ -44,4 +44,4 @@ export class SearchSourceService {
44
44
  source.setParamFromSetting(setting);
45
45
  }
46
46
  }
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLXNvdXJjZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvc2VhcmNoL3NoYXJlZC9zZWFyY2gtc291cmNlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0E7O0dBRUc7QUFDSCxNQUFNLE9BQU8sbUJBQW1CO0lBRTlCLFlBQW9CLE9BQXVCO1FBQXZCLFlBQU8sR0FBUCxPQUFPLENBQWdCO0lBQUcsQ0FBQztJQUUvQzs7O09BR0c7SUFDSCxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxpQkFBaUI7UUFDZixPQUFPLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxNQUFNLENBQzdCLENBQUMsTUFBb0IsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLE9BQU8sS0FBSyxJQUFJLENBQ2xELENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxtQkFBbUIsQ0FBQyxJQUFZO1FBQzlCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFvQixFQUFFLEVBQUU7WUFDakQsSUFBSyxNQUFNLENBQUMsV0FBbUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxFQUFFO2dCQUM3RCxNQUFNLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQzthQUN2QjtpQkFBTTtnQkFDTCxNQUFNLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQzthQUN4QjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxtQkFBbUIsQ0FBQyxNQUFvQixFQUFFLE9BQTZCO1FBQ3JFLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN0QyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTZWFyY2hTb3VyY2UgfSBmcm9tICcuL3NvdXJjZXMvc291cmNlJztcclxuaW1wb3J0IHsgU2VhcmNoU291cmNlU2V0dGluZ3MgfSBmcm9tICcuL3NvdXJjZXMvc291cmNlLmludGVyZmFjZXMnO1xyXG5cclxuLyoqXHJcbiAqIFNlcnZpY2Ugd2hlcmUgYWxsIGF2YWlsYWJsZSBzZWFyY2ggc291cmNlcyBhcmUgcmVnaXN0ZXJlZC5cclxuICovXHJcbmV4cG9ydCBjbGFzcyBTZWFyY2hTb3VyY2VTZXJ2aWNlIHtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzb3VyY2VzOiBTZWFyY2hTb3VyY2VbXSkge31cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJuIGF2YWlsYWJsZSBzZWFyY2ggc291cmNlc1xyXG4gICAqIEByZXR1cm5zIFNlYXJjaCBzb3VyY2VzXHJcbiAgICovXHJcbiAgZ2V0U291cmNlcygpOiBTZWFyY2hTb3VyY2VbXSB7XHJcbiAgICByZXR1cm4gdGhpcy5zb3VyY2VzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJuIGVuYWJsZWQgc2VhcmNoIHNvdXJjZXNcclxuICAgKiBAcmV0dXJucyBTZWFyY2ggc291cmNlc1xyXG4gICAqL1xyXG4gIGdldEVuYWJsZWRTb3VyY2VzKCk6IFNlYXJjaFNvdXJjZVtdIHtcclxuICAgIHJldHVybiB0aGlzLmdldFNvdXJjZXMoKS5maWx0ZXIoXHJcbiAgICAgIChzb3VyY2U6IFNlYXJjaFNvdXJjZSkgPT4gc291cmNlLmVuYWJsZWQgPT09IHRydWVcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBFbmFibGUgc2VhcmNoIHNvdXJjZXMgb2YgZ2l2ZW4gdHlwZVxyXG4gICAqIEBwYXJhbSB0eXBlIFNlYXJjaCB0eXBlXHJcbiAgICogQHRvZG8gSXQgd291bGQgYmUgYmV0dGVyIHRvIHRyYWNrIHRoZSBlbmFibGVkIHNlYXJjaCBzb3VyY2VzXHJcbiAgICogIHdpdGhvdXQgdXBkYXRpbmcgdGhlaXIgJ2VuYWJsZWQnIHByb3BlcnR5LlxyXG4gICAqL1xyXG4gIGVuYWJsZVNvdXJjZXNCeVR5cGUodHlwZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmdldFNvdXJjZXMoKS5mb3JFYWNoKChzb3VyY2U6IFNlYXJjaFNvdXJjZSkgPT4ge1xyXG4gICAgICBpZiAoKHNvdXJjZS5jb25zdHJ1Y3RvciBhcyB0eXBlb2YgU2VhcmNoU291cmNlKS50eXBlID09PSB0eXBlKSB7XHJcbiAgICAgICAgc291cmNlLmVuYWJsZWQgPSB0cnVlO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHNvdXJjZS5lbmFibGVkID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0IFBhcmFtIGZyb20gdGhlIHNlbGVjdGVkIHNldHRpbmdzXHJcbiAgICogQHBhcmFtIHNvdXJjZSBzZWFyY2gtc291cmNlXHJcbiAgICogQHBhcmFtIHNldHRpbmcgc2V0dGluZ3NcclxuICAgKi9cclxuICBzZXRQYXJhbUZyb21TZXR0aW5nKHNvdXJjZTogU2VhcmNoU291cmNlLCBzZXR0aW5nOiBTZWFyY2hTb3VyY2VTZXR0aW5ncykge1xyXG4gICAgc291cmNlLnNldFBhcmFtRnJvbVNldHRpbmcoc2V0dGluZyk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLXNvdXJjZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvc2VhcmNoL3NoYXJlZC9zZWFyY2gtc291cmNlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0E7O0dBRUc7QUFDSCxNQUFNLE9BQU8sbUJBQW1CO0lBRTlCLFlBQW9CLE9BQXVCO1FBQXZCLFlBQU8sR0FBUCxPQUFPLENBQWdCO0lBQUcsQ0FBQztJQUUvQzs7O09BR0c7SUFDSCxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxpQkFBaUI7UUFDZixPQUFPLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxNQUFNLENBQzdCLENBQUMsTUFBb0IsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLE9BQU8sS0FBSyxJQUFJLENBQ2xELENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxtQkFBbUIsQ0FBQyxJQUFZO1FBQzlCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFvQixFQUFFLEVBQUU7WUFDakQsSUFBSyxNQUFNLENBQUMsV0FBbUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxFQUFFO2dCQUM3RCxNQUFNLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQzthQUN2QjtpQkFBTTtnQkFDTCxNQUFNLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQzthQUN4QjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxtQkFBbUIsQ0FBQyxNQUFvQixFQUFFLE9BQTZCO1FBQ3JFLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN0QyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTZWFyY2hTb3VyY2UgfSBmcm9tICcuL3NvdXJjZXMvc291cmNlJztcbmltcG9ydCB7IFNlYXJjaFNvdXJjZVNldHRpbmdzIH0gZnJvbSAnLi9zb3VyY2VzL3NvdXJjZS5pbnRlcmZhY2VzJztcblxuLyoqXG4gKiBTZXJ2aWNlIHdoZXJlIGFsbCBhdmFpbGFibGUgc2VhcmNoIHNvdXJjZXMgYXJlIHJlZ2lzdGVyZWQuXG4gKi9cbmV4cG9ydCBjbGFzcyBTZWFyY2hTb3VyY2VTZXJ2aWNlIHtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHNvdXJjZXM6IFNlYXJjaFNvdXJjZVtdKSB7fVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gYXZhaWxhYmxlIHNlYXJjaCBzb3VyY2VzXG4gICAqIEByZXR1cm5zIFNlYXJjaCBzb3VyY2VzXG4gICAqL1xuICBnZXRTb3VyY2VzKCk6IFNlYXJjaFNvdXJjZVtdIHtcbiAgICByZXR1cm4gdGhpcy5zb3VyY2VzO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBlbmFibGVkIHNlYXJjaCBzb3VyY2VzXG4gICAqIEByZXR1cm5zIFNlYXJjaCBzb3VyY2VzXG4gICAqL1xuICBnZXRFbmFibGVkU291cmNlcygpOiBTZWFyY2hTb3VyY2VbXSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0U291cmNlcygpLmZpbHRlcihcbiAgICAgIChzb3VyY2U6IFNlYXJjaFNvdXJjZSkgPT4gc291cmNlLmVuYWJsZWQgPT09IHRydWVcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEVuYWJsZSBzZWFyY2ggc291cmNlcyBvZiBnaXZlbiB0eXBlXG4gICAqIEBwYXJhbSB0eXBlIFNlYXJjaCB0eXBlXG4gICAqIEB0b2RvIEl0IHdvdWxkIGJlIGJldHRlciB0byB0cmFjayB0aGUgZW5hYmxlZCBzZWFyY2ggc291cmNlc1xuICAgKiAgd2l0aG91dCB1cGRhdGluZyB0aGVpciAnZW5hYmxlZCcgcHJvcGVydHkuXG4gICAqL1xuICBlbmFibGVTb3VyY2VzQnlUeXBlKHR5cGU6IHN0cmluZykge1xuICAgIHRoaXMuZ2V0U291cmNlcygpLmZvckVhY2goKHNvdXJjZTogU2VhcmNoU291cmNlKSA9PiB7XG4gICAgICBpZiAoKHNvdXJjZS5jb25zdHJ1Y3RvciBhcyB0eXBlb2YgU2VhcmNoU291cmNlKS50eXBlID09PSB0eXBlKSB7XG4gICAgICAgIHNvdXJjZS5lbmFibGVkID0gdHJ1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNvdXJjZS5lbmFibGVkID0gZmFsc2U7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IFBhcmFtIGZyb20gdGhlIHNlbGVjdGVkIHNldHRpbmdzXG4gICAqIEBwYXJhbSBzb3VyY2Ugc2VhcmNoLXNvdXJjZVxuICAgKiBAcGFyYW0gc2V0dGluZyBzZXR0aW5nc1xuICAgKi9cbiAgc2V0UGFyYW1Gcm9tU2V0dGluZyhzb3VyY2U6IFNlYXJjaFNvdXJjZSwgc2V0dGluZzogU2VhcmNoU291cmNlU2V0dGluZ3MpIHtcbiAgICBzb3VyY2Uuc2V0UGFyYW1Gcm9tU2V0dGluZyhzZXR0aW5nKTtcbiAgfVxufVxuIl19
@@ -1,4 +1,4 @@
1
1
  import { FEATURE } from '../../feature';
2
2
  import { LAYER } from '../../layer';
3
3
  export const SEARCH_TYPES = [FEATURE, LAYER];
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLmVudW1zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvc2VhcmNoL3NoYXJlZC9zZWFyY2guZW51bXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4QyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRXBDLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZFQVRVUkUgfSBmcm9tICcuLi8uLi9mZWF0dXJlJztcclxuaW1wb3J0IHsgTEFZRVIgfSBmcm9tICcuLi8uLi9sYXllcic7XHJcblxyXG5leHBvcnQgY29uc3QgU0VBUkNIX1RZUEVTID0gW0ZFQVRVUkUsIExBWUVSXTtcclxuIl19
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLmVudW1zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvc2VhcmNoL3NoYXJlZC9zZWFyY2guZW51bXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4QyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRXBDLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZFQVRVUkUgfSBmcm9tICcuLi8uLi9mZWF0dXJlJztcbmltcG9ydCB7IExBWUVSIH0gZnJvbSAnLi4vLi4vbGF5ZXInO1xuXG5leHBvcnQgY29uc3QgU0VBUkNIX1RZUEVTID0gW0ZFQVRVUkUsIExBWUVSXTtcbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLmludGVyZmFjZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9zZWFyY2gvc2hhcmVkL3NlYXJjaC5pbnRlcmZhY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQgeyBDb21tb25WZWN0b3JTdHlsZU9wdGlvbnMgfSBmcm9tICcuLi8uLi91dGlscy9jb21tb25WZWN0b3JTdHlsZS5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBTZWFyY2hTb3VyY2UgfSBmcm9tICcuL3NvdXJjZXMvc291cmNlJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUmVzZWFyY2gge1xyXG4gIHJlcXVlc3Q6IE9ic2VydmFibGU8U2VhcmNoUmVzdWx0W10+O1xyXG4gIHJldmVyc2U6IGJvb2xlYW47XHJcbiAgc291cmNlOiBTZWFyY2hTb3VyY2U7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2VhcmNoUmVzdWx0PFQgPSB7IFtrZXk6IHN0cmluZ106IGFueSB9PiB7XHJcbiAgZGF0YTogVDtcclxuICBzb3VyY2U6IFNlYXJjaFNvdXJjZTtcclxuICBtZXRhOiB7XHJcbiAgICBkYXRhVHlwZTogc3RyaW5nO1xyXG4gICAgaWQ6IHN0cmluZztcclxuICAgIHRpdGxlOiBzdHJpbmc7XHJcbiAgICB0aXRsZUh0bWw/OiBzdHJpbmc7XHJcbiAgICBwb2ludGVyU3VtbWFyeVRpdGxlPzogc3RyaW5nO1xyXG4gICAgaWNvbjogc3RyaW5nO1xyXG4gICAgc2NvcmU/OiBudW1iZXI7XHJcbiAgICBuZXh0UGFnZT86IGJvb2xlYW47XHJcbiAgfTtcclxuICBzdHlsZT86IHtcclxuICAgIGJhc2U/OiBDb21tb25WZWN0b3JTdHlsZU9wdGlvbnM7XHJcbiAgICBzZWxlY3Rpb24/OiBDb21tb25WZWN0b3JTdHlsZU9wdGlvbnM7XHJcbiAgICBmb2N1cz86IENvbW1vblZlY3RvclN0eWxlT3B0aW9ucztcclxuICB9O1xyXG59XHJcbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLmludGVyZmFjZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9zZWFyY2gvc2hhcmVkL3NlYXJjaC5pbnRlcmZhY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IENvbW1vblZlY3RvclN0eWxlT3B0aW9ucyB9IGZyb20gJy4uLy4uL3V0aWxzL2NvbW1vblZlY3RvclN0eWxlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBTZWFyY2hTb3VyY2UgfSBmcm9tICcuL3NvdXJjZXMvc291cmNlJztcblxuZXhwb3J0IGludGVyZmFjZSBSZXNlYXJjaCB7XG4gIHJlcXVlc3Q6IE9ic2VydmFibGU8U2VhcmNoUmVzdWx0W10+O1xuICByZXZlcnNlOiBib29sZWFuO1xuICBzb3VyY2U6IFNlYXJjaFNvdXJjZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTZWFyY2hSZXN1bHQ8VCA9IHsgW2tleTogc3RyaW5nXTogYW55IH0+IHtcbiAgZGF0YTogVDtcbiAgc291cmNlOiBTZWFyY2hTb3VyY2U7XG4gIG1ldGE6IHtcbiAgICBkYXRhVHlwZTogc3RyaW5nO1xuICAgIGlkOiBzdHJpbmc7XG4gICAgdGl0bGU6IHN0cmluZztcbiAgICB0aXRsZUh0bWw/OiBzdHJpbmc7XG4gICAgcG9pbnRlclN1bW1hcnlUaXRsZT86IHN0cmluZztcbiAgICBpY29uOiBzdHJpbmc7XG4gICAgc2NvcmU/OiBudW1iZXI7XG4gICAgbmV4dFBhZ2U/OiBib29sZWFuO1xuICB9O1xuICBzdHlsZT86IHtcbiAgICBiYXNlPzogQ29tbW9uVmVjdG9yU3R5bGVPcHRpb25zO1xuICAgIHNlbGVjdGlvbj86IENvbW1vblZlY3RvclN0eWxlT3B0aW9ucztcbiAgICBmb2N1cz86IENvbW1vblZlY3RvclN0eWxlT3B0aW9ucztcbiAgfTtcbn1cbiJdfQ==