@igo2/geo 1.9.0 → 1.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (387) 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/bundles/igo2-geo.umd.js +3651 -2762
  7. package/bundles/igo2-geo.umd.js.map +1 -1
  8. package/esm2015/lib/catalog/catalog-browser/catalog-browser-group.component.js +2 -2
  9. package/esm2015/lib/catalog/catalog-browser/catalog-browser-layer.component.js +2 -2
  10. package/esm2015/lib/catalog/catalog-browser/catalog-browser.module.js +1 -1
  11. package/esm2015/lib/catalog/catalog-library/add-catalog-dialog.component.js +72 -53
  12. package/esm2015/lib/catalog/catalog-library/catalog-library.component.js +2 -1
  13. package/esm2015/lib/catalog/catalog.module.js +1 -1
  14. package/esm2015/lib/catalog/shared/catalog.abstract.js +1 -1
  15. package/esm2015/lib/catalog/shared/catalog.interface.js +1 -1
  16. package/esm2015/lib/catalog/shared/catalog.service.js +13 -3
  17. package/esm2015/lib/catalog/shared/index.js +1 -1
  18. package/esm2015/lib/datasource/datasource.module.js +1 -1
  19. package/esm2015/lib/datasource/index.js +1 -1
  20. package/esm2015/lib/datasource/shared/capabilities.service.js +4 -4
  21. package/esm2015/lib/datasource/shared/datasources/carto-datasource.interface.js +1 -1
  22. package/esm2015/lib/datasource/shared/datasources/carto-datasource.js +2 -2
  23. package/esm2015/lib/datasource/shared/datasources/cluster-datasource.js +1 -1
  24. package/esm2015/lib/datasource/shared/datasources/data.service.js +1 -1
  25. package/esm2015/lib/datasource/shared/datasources/datasource.interface.js +1 -1
  26. package/esm2015/lib/datasource/shared/datasources/datasource.js +1 -1
  27. package/esm2015/lib/datasource/shared/datasources/mvt-datasource.interface.js +1 -1
  28. package/esm2015/lib/datasource/shared/datasources/mvt-datasource.js +2 -2
  29. package/esm2015/lib/datasource/shared/datasources/osm-datasource.interface.js +1 -1
  30. package/esm2015/lib/datasource/shared/datasources/websocket-datasource.interface.js +1 -1
  31. package/esm2015/lib/datasource/shared/datasources/websocket-datasource.js +1 -1
  32. package/esm2015/lib/datasource/shared/datasources/wfs-datasource.interface.js +1 -1
  33. package/esm2015/lib/datasource/shared/datasources/wfs.service.js +1 -1
  34. package/esm2015/lib/datasource/shared/datasources/wms-wfs.utils.js +1 -1
  35. package/esm2015/lib/datasource/shared/datasources/wmts-datasource.interface.js +1 -1
  36. package/esm2015/lib/datasource/shared/datasources/xyz-datasource.interface.js +1 -1
  37. package/esm2015/lib/datasource/shared/datasources/xyz-datasource.js +1 -1
  38. package/esm2015/lib/datasource/shared/index.js +1 -1
  39. package/esm2015/lib/datasource/shared/options/index.js +1 -1
  40. package/esm2015/lib/datasource/shared/options/options-api.interface.js +1 -1
  41. package/esm2015/lib/datasource/shared/options/options-api.providers.js +1 -1
  42. package/esm2015/lib/datasource/shared/options/options-api.service.js +1 -1
  43. package/esm2015/lib/datasource/shared/options/options.service.js +1 -1
  44. package/esm2015/lib/datasource/utils/esri-style-generator.js +1 -1
  45. package/esm2015/lib/datasource/utils/index.js +1 -1
  46. package/esm2015/lib/datasource/utils/tilegrid.js +1 -1
  47. package/esm2015/lib/directions/directions-buttons/directions-buttons.component.js +223 -0
  48. package/esm2015/lib/directions/directions-buttons/index.js +2 -0
  49. package/esm2015/lib/directions/directions-inputs/directions-inputs.component.js +300 -0
  50. package/esm2015/lib/directions/directions-inputs/index.js +2 -0
  51. package/esm2015/lib/directions/directions-results/directions-results.component.js +204 -0
  52. package/esm2015/lib/directions/directions-results/index.js +2 -0
  53. package/esm2015/lib/directions/directions-sources/directions-source.interface.js +1 -1
  54. package/esm2015/lib/directions/directions-sources/directions-source.js +1 -1
  55. package/esm2015/lib/directions/directions-sources/directions-source.provider.js +1 -1
  56. package/esm2015/lib/directions/directions-sources/index.js +1 -1
  57. package/esm2015/lib/directions/directions-sources/osrm-directions-source.js +11 -2
  58. package/esm2015/lib/directions/directions.component.js +314 -0
  59. package/esm2015/lib/directions/directions.module.js +31 -10
  60. package/esm2015/lib/directions/index.js +5 -2
  61. package/esm2015/lib/directions/shared/directions-source.service.js +1 -1
  62. package/esm2015/lib/directions/shared/directions.enum.js +20 -3
  63. package/esm2015/lib/directions/shared/directions.interface.js +1 -1
  64. package/esm2015/lib/directions/shared/directions.service.js +1 -1
  65. package/esm2015/lib/directions/shared/directions.utils.js +507 -0
  66. package/esm2015/lib/directions/shared/index.js +3 -1
  67. package/esm2015/lib/directions/shared/store.js +24 -0
  68. package/esm2015/lib/download/download-button/download-button.component.js +1 -1
  69. package/esm2015/lib/download/download-button/index.js +1 -1
  70. package/esm2015/lib/download/download.module.js +1 -1
  71. package/esm2015/lib/download/index.js +1 -1
  72. package/esm2015/lib/download/shared/download.interface.js +1 -1
  73. package/esm2015/lib/download/shared/download.service.js +1 -1
  74. package/esm2015/lib/download/shared/index.js +1 -1
  75. package/esm2015/lib/draw/draw/draw-popup.component.js +6 -5
  76. package/esm2015/lib/draw/draw/draw.component.js +22 -17
  77. package/esm2015/lib/draw/shared/draw.utils.js +1 -1
  78. package/esm2015/lib/feature/feature-details/feature-details.directive.js +1 -1
  79. package/esm2015/lib/feature/feature-details/feature-details.module.js +1 -1
  80. package/esm2015/lib/feature/feature-form/feature-form.component.js +1 -1
  81. package/esm2015/lib/feature/feature-form/feature-form.module.js +1 -1
  82. package/esm2015/lib/feature/feature.module.js +1 -1
  83. package/esm2015/lib/feature/index.js +1 -1
  84. package/esm2015/lib/feature/shared/feature.enums.js +1 -1
  85. package/esm2015/lib/feature/shared/feature.interfaces.js +1 -1
  86. package/esm2015/lib/feature/shared/index.js +1 -1
  87. package/esm2015/lib/feature/shared/strategies/in-map-extent.js +1 -1
  88. package/esm2015/lib/feature/shared/strategies/in-map-resolution.js +1 -1
  89. package/esm2015/lib/feature/shared/strategies/index.js +1 -1
  90. package/esm2015/lib/feature/shared/strategies/loading-layer.js +1 -1
  91. package/esm2015/lib/feature/shared/strategies/loading.js +1 -1
  92. package/esm2015/lib/feature/shared/strategies/selection.js +5 -9
  93. package/esm2015/lib/feature/shared/strategies.utils.js +1 -1
  94. package/esm2015/lib/filter/filter.module.js +7 -4
  95. package/esm2015/lib/filter/ogc-filter-button/index.js +1 -1
  96. package/esm2015/lib/filter/ogc-filter-button/ogc-filter-button.component.js +1 -1
  97. package/esm2015/lib/filter/ogc-filter-form/index.js +1 -1
  98. package/esm2015/lib/filter/ogc-filter-form/ogc-filter-form.component.js +3 -3
  99. package/esm2015/lib/filter/ogc-filter-selection/ogc-filter-selection.component.js +1 -1
  100. package/esm2015/lib/filter/ogc-filter-time/ogc-filter-time.component.js +240 -121
  101. package/esm2015/lib/filter/ogc-filterable-form/index.js +1 -1
  102. package/esm2015/lib/filter/ogc-filterable-item/index.js +1 -1
  103. package/esm2015/lib/filter/ogc-filterable-item/ogc-filterable-item.component.js +2 -2
  104. package/esm2015/lib/filter/ogc-filterable-list/index.js +1 -1
  105. package/esm2015/lib/filter/ogc-filterable-list/ogc-filterable-list-binding.directive.js +1 -1
  106. package/esm2015/lib/filter/ogc-filterable-list/ogc-filterable-list.component.js +1 -1
  107. package/esm2015/lib/filter/shared/filterable-datasource.pipe.js +1 -1
  108. package/esm2015/lib/filter/shared/index.js +1 -1
  109. package/esm2015/lib/filter/shared/ogc-filter.enum.js +1 -1
  110. package/esm2015/lib/filter/shared/ogc-filter.interface.js +1 -1
  111. package/esm2015/lib/filter/shared/ogc-filter.js +1 -1
  112. package/esm2015/lib/filter/shared/ogc-filter.service.js +1 -1
  113. package/esm2015/lib/filter/shared/spatial-filter.enum.js +1 -1
  114. package/esm2015/lib/filter/shared/spatial-filter.interface.js +1 -1
  115. package/esm2015/lib/filter/shared/time-filter.enum.js +1 -1
  116. package/esm2015/lib/filter/shared/time-filter.interface.js +1 -1
  117. package/esm2015/lib/filter/shared/time-filter.service.js +1 -1
  118. package/esm2015/lib/filter/spatial-filter/spatial-filter-item/index.js +1 -1
  119. package/esm2015/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.js +185 -95
  120. package/esm2015/lib/filter/spatial-filter/spatial-filter-list/index.js +1 -1
  121. package/esm2015/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.js +1 -1
  122. package/esm2015/lib/filter/spatial-filter/spatial-filter-type/index.js +1 -1
  123. package/esm2015/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.js +1 -1
  124. package/esm2015/lib/filter/time-filter-button/index.js +1 -1
  125. package/esm2015/lib/filter/time-filter-button/time-filter-button.component.js +1 -1
  126. package/esm2015/lib/filter/time-filter-form/index.js +1 -1
  127. package/esm2015/lib/filter/time-filter-form/time-filter-form.component.js +1 -1
  128. package/esm2015/lib/filter/time-filter-item/index.js +1 -1
  129. package/esm2015/lib/filter/time-filter-item/time-filter-item.component.js +2 -2
  130. package/esm2015/lib/filter/time-filter-list/index.js +1 -1
  131. package/esm2015/lib/filter/time-filter-list/time-filter-list-binding.directive.js +1 -1
  132. package/esm2015/lib/filter/time-filter-list/time-filter-list.component.js +1 -1
  133. package/esm2015/lib/geometry/geometry-form-field/geometry-form-field-input.component.js +3 -3
  134. package/esm2015/lib/geometry/geometry-form-field/geometry-form-field.component.js +1 -1
  135. package/esm2015/lib/geometry/geometry-form-field/geometry-form-field.module.js +1 -1
  136. package/esm2015/lib/geometry/geometry.module.js +1 -1
  137. package/esm2015/lib/geometry/index.js +1 -1
  138. package/esm2015/lib/geometry/shared/controls/draw.js +1 -1
  139. package/esm2015/lib/geometry/shared/controls/index.js +1 -1
  140. package/esm2015/lib/geometry/shared/geometry.errors.js +3 -3
  141. package/esm2015/lib/geometry/shared/index.js +1 -1
  142. package/esm2015/lib/import-export/export-button/export-button.component.js +1 -1
  143. package/esm2015/lib/import-export/export-button/index.js +1 -1
  144. package/esm2015/lib/import-export/import-export/import-export.component.js +179 -66
  145. package/esm2015/lib/import-export/import-export.module.js +1 -1
  146. package/esm2015/lib/import-export/index.js +1 -1
  147. package/esm2015/lib/import-export/shared/drop-geo-file.directive.js +1 -1
  148. package/esm2015/lib/import-export/shared/export.errors.js +1 -1
  149. package/esm2015/lib/import-export/shared/export.interface.js +1 -1
  150. package/esm2015/lib/import-export/shared/export.type.js +1 -1
  151. package/esm2015/lib/import-export/shared/export.utils.js +1 -1
  152. package/esm2015/lib/import-export/shared/import.interface.js +1 -1
  153. package/esm2015/lib/import-export/shared/import.service.js +1 -1
  154. package/esm2015/lib/import-export/shared/import.utils.js +1 -1
  155. package/esm2015/lib/import-export/shared/index.js +1 -1
  156. package/esm2015/lib/import-export/style-list/index.js +1 -1
  157. package/esm2015/lib/import-export/style-list/style-list.interface.js +1 -1
  158. package/esm2015/lib/import-export/style-list/style-list.module.js +1 -1
  159. package/esm2015/lib/import-export/style-list/style-list.provider.js +1 -1
  160. package/esm2015/lib/import-export/style-list/style-list.service.js +1 -1
  161. package/esm2015/lib/layer/index.js +1 -1
  162. package/esm2015/lib/layer/layer-item/index.js +1 -1
  163. package/esm2015/lib/layer/layer-item/layer-item.component.js +3 -3
  164. package/esm2015/lib/layer/layer-legend/index.js +1 -1
  165. package/esm2015/lib/layer/layer-legend/layer-legend.component.js +23 -16
  166. package/esm2015/lib/layer/layer-legend-item/index.js +1 -1
  167. package/esm2015/lib/layer/layer-legend-item/layer-legend-item.component.js +1 -1
  168. package/esm2015/lib/layer/layer-legend-list/index.js +1 -1
  169. package/esm2015/lib/layer/layer-legend-list/layer-legend-list-binding.directive.js +1 -1
  170. package/esm2015/lib/layer/layer-legend-list/layer-legend-list.component.js +5 -5
  171. package/esm2015/lib/layer/layer-list/index.js +1 -1
  172. package/esm2015/lib/layer/layer-list/layer-list-binding.directive.js +1 -1
  173. package/esm2015/lib/layer/layer-list/layer-list.component.js +44 -44
  174. package/esm2015/lib/layer/layer-list/layer-list.enum.js +1 -1
  175. package/esm2015/lib/layer/layer-list-tool/index.js +1 -1
  176. package/esm2015/lib/layer/layer-list-tool/layer-list-tool.component.js +2 -2
  177. package/esm2015/lib/layer/layer-list-tool/layer-list-tool.enum.js +1 -1
  178. package/esm2015/lib/layer/layer-list-tool/layer-list-tool.interface.js +1 -1
  179. package/esm2015/lib/layer/layer-list-tool/layer-list-tool.service.js +1 -1
  180. package/esm2015/lib/layer/layer.module.js +8 -5
  181. package/esm2015/lib/layer/shared/clusterParam.js +1 -1
  182. package/esm2015/lib/layer/shared/index.js +1 -1
  183. package/esm2015/lib/layer/shared/layer.enums.js +1 -1
  184. package/esm2015/lib/layer/shared/layer.service.js +20 -17
  185. package/esm2015/lib/layer/shared/layers/any-layer.interface.js +1 -1
  186. package/esm2015/lib/layer/shared/layers/any-layer.js +1 -1
  187. package/esm2015/lib/layer/shared/layers/image-layer.js +9 -4
  188. package/esm2015/lib/layer/shared/layers/index.js +1 -1
  189. package/esm2015/lib/layer/shared/layers/layer.js +15 -5
  190. package/esm2015/lib/layer/shared/layers/tile-layer.js +23 -3
  191. package/esm2015/lib/layer/shared/layers/vector-layer.interface.js +1 -1
  192. package/esm2015/lib/layer/shared/layers/vector-layer.js +20 -10
  193. package/esm2015/lib/layer/shared/layers/vectortile-layer.interface.js +1 -1
  194. package/esm2015/lib/layer/shared/layers/vectortile-layer.js +13 -3
  195. package/esm2015/lib/layer/shared/style.service.js +21 -16
  196. package/esm2015/lib/layer/shared/vector-style.interface.js +1 -1
  197. package/esm2015/lib/layer/track-feature-button/index.js +1 -1
  198. package/esm2015/lib/layer/track-feature-button/track-feature-button.component.js +1 -1
  199. package/esm2015/lib/layer/utils/index.js +2 -1
  200. package/esm2015/lib/layer/utils/layer.utils.js +11 -0
  201. package/esm2015/lib/layer/utils/layerSync-watcher.js +1 -1
  202. package/esm2015/lib/layer/utils/tile-watcher.js +1 -1
  203. package/esm2015/lib/map/baselayers-switcher/baselayers-switcher.animation.js +1 -1
  204. package/esm2015/lib/map/baselayers-switcher/index.js +1 -1
  205. package/esm2015/lib/map/baselayers-switcher/mini-basemap.component.js +1 -1
  206. package/esm2015/lib/map/geolocate-button/geolocate-button.component.js +1 -1
  207. package/esm2015/lib/map/geolocate-button/index.js +1 -1
  208. package/esm2015/lib/map/index.js +2 -1
  209. package/esm2015/lib/map/map-browser/index.js +1 -1
  210. package/esm2015/lib/map/map-browser/map-browser.component.js +1 -1
  211. package/esm2015/lib/map/map.module.js +10 -5
  212. package/esm2015/lib/map/menu-button/index.js +2 -0
  213. package/esm2015/lib/map/menu-button/menu-button.component.js +66 -0
  214. package/esm2015/lib/map/offline-button/index.js +1 -1
  215. package/esm2015/lib/map/offline-button/offline-button.component.js +1 -1
  216. package/esm2015/lib/map/rotation-button/index.js +1 -1
  217. package/esm2015/lib/map/rotation-button/rotation-button.component.js +1 -1
  218. package/esm2015/lib/map/shared/controllers/index.js +1 -1
  219. package/esm2015/lib/map/shared/hover-feature.directive.js +231 -80
  220. package/esm2015/lib/map/shared/map-pointer-position.directive.js +3 -1
  221. package/esm2015/lib/map/shared/map.enums.js +1 -1
  222. package/esm2015/lib/map/shared/map.interface.js +1 -1
  223. package/esm2015/lib/map/shared/map.js +38 -16
  224. package/esm2015/lib/map/shared/map.service.js +1 -1
  225. package/esm2015/lib/map/shared/map.utils.js +7 -3
  226. package/esm2015/lib/map/shared/projection.service.js +1 -1
  227. package/esm2015/lib/map/shared/projection.utils.js +1 -1
  228. package/esm2015/lib/map/swipe-control/swipe-control.component.js +1 -1
  229. package/esm2015/lib/map/zoom-button/index.js +1 -1
  230. package/esm2015/lib/map/zoom-button/zoom-button.component.js +1 -1
  231. package/esm2015/lib/measure/index.js +1 -1
  232. package/esm2015/lib/measure/measure.module.js +1 -1
  233. package/esm2015/lib/measure/measurer/measure-format.pipe.js +1 -1
  234. package/esm2015/lib/measure/measurer/measurer-dialog.component.js +188 -176
  235. package/esm2015/lib/measure/measurer/measurer-item.component.js +17 -12
  236. package/esm2015/lib/measure/measurer/measurer.component.js +170 -69
  237. package/esm2015/lib/measure/measurer/measurer.module.js +13 -8
  238. package/esm2015/lib/measure/shared/index.js +1 -1
  239. package/esm2015/lib/measure/shared/measure.enum.js +1 -1
  240. package/esm2015/lib/measure/shared/measure.interfaces.js +1 -1
  241. package/esm2015/lib/measure/shared/measure.utils.js +1 -1
  242. package/esm2015/lib/metadata/index.js +1 -1
  243. package/esm2015/lib/metadata/metadata-button/index.js +1 -1
  244. package/esm2015/lib/metadata/shared/index.js +1 -1
  245. package/esm2015/lib/metadata/shared/metadata.service.js +1 -1
  246. package/esm2015/lib/overlay/index.js +1 -1
  247. package/esm2015/lib/overlay/overlay.module.js +1 -1
  248. package/esm2015/lib/overlay/shared/index.js +1 -1
  249. package/esm2015/lib/overlay/shared/overlay-marker-style.utils.js +2 -2
  250. package/esm2015/lib/overlay/shared/overlay.directive.js +1 -1
  251. package/esm2015/lib/overlay/shared/overlay.enum.js +1 -1
  252. package/esm2015/lib/overlay/shared/overlay.service.js +1 -1
  253. package/esm2015/lib/print/index.js +1 -1
  254. package/esm2015/lib/print/print-form/index.js +1 -1
  255. package/esm2015/lib/print/print.module.js +1 -1
  256. package/esm2015/lib/print/shared/index.js +1 -1
  257. package/esm2015/lib/print/shared/print.service.js +1 -1
  258. package/esm2015/lib/query/index.js +1 -1
  259. package/esm2015/lib/query/query.module.js +1 -1
  260. package/esm2015/lib/query/shared/index.js +1 -1
  261. package/esm2015/lib/query/shared/query-search-source.js +1 -1
  262. package/esm2015/lib/query/shared/query-search-source.providers.js +1 -1
  263. package/esm2015/lib/query/shared/query.directive.js +4 -4
  264. package/esm2015/lib/query/shared/query.enums.js +1 -1
  265. package/esm2015/lib/query/shared/query.interfaces.js +1 -1
  266. package/esm2015/lib/query/shared/query.service.js +24 -3
  267. package/esm2015/lib/query/shared/query.utils.js +19 -1
  268. package/esm2015/lib/search/index.js +1 -1
  269. package/esm2015/lib/search/search-bar/search-bar.component.js +2 -2
  270. package/esm2015/lib/search/search-bar/search-bar.module.js +1 -1
  271. package/esm2015/lib/search/search-bar/search-url-param.directive.js +1 -1
  272. package/esm2015/lib/search/search-results/search-results-add-button.component.js +2 -2
  273. package/esm2015/lib/search/search-results/search-results-item.component.js +1 -1
  274. package/esm2015/lib/search/search-results/search-results.component.js +1 -1
  275. package/esm2015/lib/search/search-results/search-results.module.js +1 -1
  276. package/esm2015/lib/search/search-selector/search-selector.component.js +1 -1
  277. package/esm2015/lib/search/search-selector/search-selector.module.js +1 -1
  278. package/esm2015/lib/search/search-settings/search-settings.module.js +1 -1
  279. package/esm2015/lib/search/shared/index.js +1 -1
  280. package/esm2015/lib/search/shared/search-pointer-summary.directive.js +17 -6
  281. package/esm2015/lib/search/shared/search-source-service.providers.js +1 -1
  282. package/esm2015/lib/search/shared/search-source.service.js +1 -1
  283. package/esm2015/lib/search/shared/search.enums.js +1 -1
  284. package/esm2015/lib/search/shared/search.interfaces.js +1 -1
  285. package/esm2015/lib/search/shared/search.utils.js +1 -1
  286. package/esm2015/lib/search/shared/sources/cadastre.js +9 -2
  287. package/esm2015/lib/search/shared/sources/coordinates.interfaces.js +1 -1
  288. package/esm2015/lib/search/shared/sources/coordinates.js +9 -2
  289. package/esm2015/lib/search/shared/sources/icherche.js +17 -4
  290. package/esm2015/lib/search/shared/sources/ilayer.interfaces.js +1 -1
  291. package/esm2015/lib/search/shared/sources/ilayer.js +9 -2
  292. package/esm2015/lib/search/shared/sources/index.js +1 -1
  293. package/esm2015/lib/search/shared/sources/nominatim.interfaces.js +1 -1
  294. package/esm2015/lib/search/shared/sources/nominatim.js +9 -2
  295. package/esm2015/lib/search/shared/sources/storedqueries.interfaces.js +1 -1
  296. package/esm2015/lib/search/shared/sources/storedqueries.js +20 -12
  297. package/esm2015/lib/toast/index.js +1 -1
  298. package/esm2015/lib/toast/toast.component.js +1 -1
  299. package/esm2015/lib/toast/toast.module.js +1 -1
  300. package/esm2015/lib/utils/commonVectorStyle.interface.js +1 -1
  301. package/esm2015/lib/utils/googleLinks.js +1 -1
  302. package/esm2015/lib/utils/osmLinks.js +1 -1
  303. package/esm2015/lib/wkt/index.js +1 -1
  304. package/esm2015/lib/wkt/shared/index.js +1 -1
  305. package/esm2015/lib/wkt/shared/wkt.service.js +15 -15
  306. package/esm2015/lib/wkt/wkt.module.js +1 -1
  307. package/esm2015/lib/workspace/index.js +1 -1
  308. package/esm2015/lib/workspace/shared/feature-workspace.js +1 -1
  309. package/esm2015/lib/workspace/shared/feature-workspace.service.js +1 -1
  310. package/esm2015/lib/workspace/shared/index.js +1 -1
  311. package/esm2015/lib/workspace/shared/wfs-workspace.js +1 -1
  312. package/esm2015/lib/workspace/shared/wfs-workspace.service.js +1 -1
  313. package/esm2015/lib/workspace/shared/wms-workspace.service.js +1 -1
  314. package/esm2015/lib/workspace/widgets/index.js +1 -1
  315. package/esm2015/lib/workspace/widgets/ogc-filter/ogc-filter.component.js +1 -1
  316. package/esm2015/lib/workspace/widgets/ogc-filter/ogc-filter.module.js +1 -1
  317. package/esm2015/lib/workspace/widgets/widgets.js +1 -1
  318. package/esm2015/lib/workspace/workspace-selector/workspace-selector.directive.js +1 -1
  319. package/esm2015/lib/workspace/workspace-selector/workspace-selector.module.js +1 -1
  320. package/esm2015/lib/workspace/workspace-updator/workspace-updator.directive.js +1 -1
  321. package/esm2015/lib/workspace/workspace-updator/workspace-updator.module.js +1 -1
  322. package/esm2015/lib/workspace/workspace.module.js +1 -1
  323. package/fesm2015/igo2-geo.js +3221 -2431
  324. package/fesm2015/igo2-geo.js.map +1 -1
  325. package/lib/catalog/catalog-library/add-catalog-dialog.component.d.ts +1 -1
  326. package/lib/datasource/shared/datasources/datasource.interface.d.ts +1 -0
  327. package/lib/directions/directions-buttons/directions-buttons.component.d.ts +29 -0
  328. package/lib/directions/directions-buttons/index.d.ts +1 -0
  329. package/lib/directions/directions-inputs/directions-inputs.component.d.ts +45 -0
  330. package/lib/directions/directions-inputs/index.d.ts +1 -0
  331. package/lib/directions/directions-results/directions-results.component.d.ts +30 -0
  332. package/lib/directions/directions-results/index.d.ts +1 -0
  333. package/lib/directions/directions-sources/directions-source.d.ts +2 -2
  334. package/lib/directions/directions-sources/osrm-directions-source.d.ts +2 -2
  335. package/lib/directions/directions.component.d.ts +55 -0
  336. package/lib/directions/directions.module.d.ts +19 -16
  337. package/lib/directions/index.d.ts +4 -1
  338. package/lib/directions/shared/directions.enum.d.ts +16 -2
  339. package/lib/directions/shared/directions.interface.d.ts +53 -3
  340. package/lib/directions/shared/directions.service.d.ts +3 -3
  341. package/lib/directions/shared/directions.utils.d.ts +42 -0
  342. package/lib/directions/shared/index.d.ts +2 -0
  343. package/lib/directions/shared/store.d.ts +18 -0
  344. package/lib/draw/draw/draw-popup.component.d.ts +6 -2
  345. package/lib/feature/shared/strategies/selection.d.ts +1 -0
  346. package/lib/filter/filter.module.d.ts +1 -1
  347. package/lib/filter/ogc-filter-time/ogc-filter-time.component.d.ts +6 -1
  348. package/lib/filter/shared/ogc-filter.interface.d.ts +1 -0
  349. package/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.d.ts +7 -2
  350. package/lib/import-export/import-export/import-export.component.d.ts +2 -0
  351. package/lib/import-export/shared/export.interface.d.ts +2 -1
  352. package/lib/layer/layer-legend/layer-legend.component.d.ts +0 -1
  353. package/lib/layer/layer.module.d.ts +1 -1
  354. package/lib/layer/shared/layer.service.d.ts +1 -1
  355. package/lib/layer/shared/layers/layer.d.ts +1 -0
  356. package/lib/layer/shared/layers/tile-layer.d.ts +10 -1
  357. package/lib/layer/shared/layers/vector-layer.interface.d.ts +1 -0
  358. package/lib/layer/shared/layers/vectortile-layer.interface.d.ts +1 -0
  359. package/lib/layer/shared/style.service.d.ts +4 -1
  360. package/lib/layer/shared/vector-style.interface.d.ts +9 -5
  361. package/lib/layer/utils/index.d.ts +1 -0
  362. package/lib/layer/utils/layer.utils.d.ts +2 -0
  363. package/lib/map/index.d.ts +1 -0
  364. package/lib/map/map.module.d.ts +8 -7
  365. package/lib/map/menu-button/index.d.ts +1 -0
  366. package/lib/map/menu-button/menu-button.component.d.ts +17 -0
  367. package/lib/map/shared/hover-feature.directive.d.ts +14 -5
  368. package/lib/map/shared/map.d.ts +2 -1
  369. package/lib/map/shared/map.interface.d.ts +1 -0
  370. package/lib/map/shared/map.utils.d.ts +1 -1
  371. package/lib/measure/measurer/measurer.component.d.ts +10 -0
  372. package/lib/measure/measurer/measurer.module.d.ts +4 -3
  373. package/lib/query/shared/query.interfaces.d.ts +2 -0
  374. package/lib/query/shared/query.service.d.ts +9 -1
  375. package/lib/query/shared/query.utils.d.ts +12 -0
  376. package/lib/search/shared/search-pointer-summary.directive.d.ts +6 -0
  377. package/lib/search/shared/search.interfaces.d.ts +1 -0
  378. package/ngcc.config.js +3 -3
  379. package/package.json +14 -13
  380. package/esm2015/lib/directions/directions-form/directions-form-binding.directive.js +0 -99
  381. package/esm2015/lib/directions/directions-form/directions-form.component.js +0 -1537
  382. package/esm2015/lib/directions/directions-form/directions-form.service.js +0 -26
  383. package/esm2015/lib/directions/directions-form/index.js +0 -4
  384. package/lib/directions/directions-form/directions-form-binding.directive.d.ts +0 -18
  385. package/lib/directions/directions-form/directions-form.component.d.ts +0 -137
  386. package/lib/directions/directions-form/directions-form.service.d.ts +0 -11
  387. package/lib/directions/directions-form/index.d.ts +0 -3
@@ -1,5 +1,6 @@
1
1
  import * as olproj from 'ol/proj';
2
2
  import { MAC } from 'ol/has';
3
+ import { NumberUtils } from '@igo2/utils';
3
4
  /**
4
5
  * This method extracts a coordinate tuple from a string.
5
6
  * @param str Any string
@@ -51,7 +52,7 @@ export function stringToLonLat(str, mapProjection, opts = {}) {
51
52
  const dmdCoord = '([-+])?(\\d{1,3})[\\s,.]{1}(\\d{1,2})[\\s,.]{1}(\\d{1,2})[.,]?(\\d{1,5})?';
52
53
  const patternDmd = `${dmdCoord}\\s*[,.]?\\s*${dmdCoord}`;
53
54
  const dmdRegex = new RegExp(`^${patternDmd}`, 'g');
54
- // tslint:disable:max-line-length
55
+ /* eslint-disable max-len */
55
56
  const patternBELL = 'LAT\\s*[\\s:]*\\s*([-+])?(\\d{1,2})[\\s.,]?(\\d+)?[\\s.,]?\\s*(\\d{1,2}([.,]\\d+)?)?\\s*(N|S|E|W)?\\s*LONG\\s*[\\s:]*\\s*([-+])?(\\d{1,3})[\\s.,]?(\\d+)?[\\s.,]?\\s*(\\d{1,2}([.,]\\d+)?)?\\s*(N|S|E|W)?\\s*UNC\\s*[\\s:]?\\s*(\\d+)\\s*CONF\\s*[\\s:]?\\s*(\\d{1,3})';
56
57
  const bellRegex = new RegExp(`^${patternBELL}?`, 'gi');
57
58
  const mmCoord = '([-+]?\\d+)[,.]?(\\d+)?';
@@ -348,7 +349,10 @@ export function ctrlKeyDown(event) {
348
349
  !originalEvent.shiftKey);
349
350
  }
350
351
  export function roundCoordTo(coord, decimal = 3) {
351
- return [coord[0].toFixed(decimal), coord[1].toFixed(decimal)];
352
+ return [
353
+ NumberUtils.roundToNDecimal(coord[0], decimal),
354
+ NumberUtils.roundToNDecimal(coord[1], decimal)
355
+ ];
352
356
  }
353
357
  /**
354
358
  * Returns an array of converted coordinates.
@@ -452,4 +456,4 @@ export function mtmZoneFromLonLat(lonLat) {
452
456
  }
453
457
  return mtmZone;
454
458
  }
455
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLnV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvbWFwL3NoYXJlZC9tYXAudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE1BQU0sTUFBTSxTQUFTLENBQUM7QUFFbEMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUs3Qjs7Ozs7Ozs7OztHQVVHO0FBQ0gsTUFBTSxVQUFVLGNBQWMsQ0FDNUIsR0FBVyxFQUNYLGFBQXFCLEVBQ3JCLE9BQThCLEVBQUU7SUFPaEMsSUFBSSxNQUF3QixDQUFDO0lBQzdCLElBQUksUUFBZ0IsQ0FBQztJQUNyQixJQUFJLFdBQW1CLENBQUM7SUFDeEIsSUFBSSxVQUFrQixDQUFDO0lBQ3ZCLElBQUksVUFBa0IsQ0FBQztJQUN2QixJQUFJLFVBQWtCLENBQUM7SUFDdkIsSUFBSSxZQUFvQixDQUFDO0lBQ3pCLElBQUksVUFBa0IsQ0FBQztJQUN2QixJQUFJLFdBQW1CLENBQUM7SUFDeEIsSUFBSSxVQUFrQixDQUFDO0lBQ3ZCLElBQUksVUFBa0IsQ0FBQztJQUN2QixJQUFJLFVBQWtCLENBQUM7SUFDdkIsSUFBSSxZQUFvQixDQUFDO0lBQ3pCLElBQUksVUFBa0IsQ0FBQztJQUN2QixJQUFJLElBQVksQ0FBQztJQUNqQixJQUFJLE1BQWMsQ0FBQztJQUNuQixJQUFJLElBQVksQ0FBQztJQUNqQixJQUFJLEdBQVEsQ0FBQztJQUNiLElBQUksR0FBUSxDQUFDO0lBRWIsTUFBTSxpQkFBaUIsR0FBRyx1QkFBdUIsQ0FBQztJQUNsRCxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUM7SUFDNUIsSUFBSSxhQUFxQixDQUFDO0lBQzFCLE1BQU0sZUFBZSxHQUFHLElBQUksTUFBTSxDQUFDLGlCQUFpQixFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBRTNELE1BQU0sV0FBVyxHQUFHLGtDQUFrQyxDQUFD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QUUsSUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQUU7UUFDNUIsT0FBTyxHQUFHLENBQUMsQ0FBQztLQUNiO0lBQ0QsSUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFHLENBQUMsRUFBRSxFQUFFO1FBQzVCLE9BQU8sR0FBRyxDQUFDLENBQUM7S0FDYjtJQUNELElBQUksSUFBSSxHQUFHLENBQUMsRUFBRSxJQUFJLElBQUksR0FBRyxDQUFDLEVBQUUsRUFBRTtRQUM1QixPQUFPLEdBQUcsQ0FBQyxDQUFDO0tBQ2I7SUFDRCxJQUFJLElBQUksR0FBRyxDQUFDLEVBQUUsSUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQUU7UUFDNUIsT0FBTyxHQUFHLENBQUMsQ0FBQztLQUNiO0lBQ0QsSUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFHLENBQUMsRUFBRSxFQUFFO1FBQzVCLE9BQU8sR0FBRyxDQUFDLENBQUM7S0FDYjtJQUNELElBQUksSUFBSSxHQUFHLENBQUMsRUFBRSxJQUFJLElBQUksR0FBRyxDQUFDLEVBQUUsRUFBRTtRQUM1QixPQUFPLEdBQUcsQ0FBQyxDQUFDO0tBQ2I7SUFDRCxJQUFJLElBQUksR0FBRyxDQUFDLEVBQUUsSUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQUU7UUFDNUIsT0FBTyxHQUFHLENBQUMsQ0FBQztLQUNiO0lBQ0QsSUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFHLENBQUMsRUFBRSxFQUFFO1FBQzVCLE9BQU8sR0FBRyxFQUFFLENBQUM7S0FDZDtJQUNELE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBvbHByb2ogZnJvbSAnb2wvcHJvaic7XG5pbXBvcnQgTWFwQnJvd3NlclBvaW50ZXJFdmVudCBmcm9tICdvbC9NYXBCcm93c2VyRXZlbnQnO1xuaW1wb3J0IHsgTUFDIH0gZnJvbSAnb2wvaGFzJztcblxuaW1wb3J0IHsgTWFwVmlld1N0YXRlIH0gZnJvbSAnLi9tYXAuaW50ZXJmYWNlJztcbmltcG9ydCB7IFByb2plY3Rpb24gfSBmcm9tICcuL3Byb2plY3Rpb24uaW50ZXJmYWNlcyc7XG5cbi8qKlxuICogVGhpcyBtZXRob2QgZXh0cmFjdHMgYSBjb29yZGluYXRlIHR1cGxlIGZyb20gYSBzdHJpbmcuXG4gKiBAcGFyYW0gc3RyIEFueSBzdHJpbmdcbiAqIEBwYXJhbSBtYXBQcm9qZWN0aW9uIHN0cmluZyBNYXAgUHJvamVjdGlvblxuICogQHBhcmFtIG9wdHMuZm9yY2VOQSBib29sZWFuIEZvcmNlIE5vcnRoIEFtZXJpY2EgWm9uZVxuICogQHJldHVybnMgb2JqZWN0OlxuICogICAgICAgICAgICAgbG9uTGF0OiBDb29yZGluYXRlLFxuICogICAgICAgICAgICAgbWVzc2FnZTogTWVzc2FnZSBvZiBlcnJvcixcbiAqICAgICAgICAgICAgIHJhZGl1czogcmFkaXVzIG9mIHRoZSBjb25maWVuY2Ugb2YgY29vcmRpbmF0ZSxcbiAqICAgICAgICAgICAgIGNvbmY6IGNvbmZpZGVuY2Ugb2YgdGhlIGNvb3JkaW5hdGV9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzdHJpbmdUb0xvbkxhdChcbiAgc3RyOiBzdHJpbmcsXG4gIG1hcFByb2plY3Rpb246IHN0cmluZyxcbiAgb3B0czogeyBmb3JjZU5BPzogYm9vbGVhbiB9ID0ge31cbik6IHtcbiAgbG9uTGF0OiBbbnVtYmVyLCBudW1iZXJdIHwgdW5kZWZpbmVkO1xuICBtZXNzYWdlOiBzdHJpbmc7XG4gIHJhZGl1czogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICBjb25mOiBudW1iZXIgfCB1bmRlZmluZWQ7XG59IHtcbiAgbGV0IGxvbkxhdDogW251bWJlciwgbnVtYmVyXTtcbiAgbGV0IGNvb3JkU3RyOiBzdHJpbmc7XG4gIGxldCBuZWdhdGl2ZUxvbjogc3RyaW5nO1xuICBsZXQgZGVncmVlc0xvbjogc3RyaW5nO1xuICBsZXQgbWludXRlc0xvbjogc3RyaW5nO1xuICBsZXQgc2Vjb25kc0xvbjogc3RyaW5nO1xuICBsZXQgZGlyZWN0aW9uTG9uOiBzdHJpbmc7XG4gIGxldCBkZWNpbWFsTG9uOiBzdHJpbmc7XG4gIGxldCBuZWdhdGl2ZUxhdDogc3RyaW5nO1xuICBsZXQgZGVncmVlc0xhdDogc3RyaW5nO1xuICBsZXQgbWludXRlc0xhdDogc3RyaW5nO1xuICBsZXQgc2Vjb25kc0xhdDogc3RyaW5nO1xuICBsZXQgZGlyZWN0aW9uTGF0OiBzdHJpbmc7XG4gIGxldCBkZWNpbWFsTGF0OiBzdHJpbmc7XG4gIGxldCB6b25lOiBzdHJpbmc7XG4gIGxldCByYWRpdXM6IHN0cmluZztcbiAgbGV0IGNvbmY6IHN0cmluZztcbiAgbGV0IGxvbjogYW55O1xuICBsZXQgbGF0OiBhbnk7XG5cbiAgY29uc3QgcHJvamVjdGlvblBhdHRlcm4gPSAnKFxcXFxzKjtcXFxccypbXFxcXGRdezQsNn0pJztcbiAgY29uc3QgdG9Qcm9qZWN0aW9uID0gJzQzMjYnO1xuICBsZXQgcHJvamVjdGlvblN0cjogc3RyaW5nO1xuICBjb25zdCBwcm9qZWN0aW9uUmVnZXggPSBuZXcgUmVnRXhwKHByb2plY3Rpb25QYXR0ZXJuLCAnZycpO1xuXG4gIGNvbnN0IGxvbmxhdENvb3JkID0gJyhbLStdKT8oW1xcXFxkXXsxLDN9KShbLC5dKFxcXFxkKykpPyc7XG4gIGNvbnN0IGxvbkxhdFBhdHRlcm4gPSBgJHtsb25sYXRDb29yZH1bXFxcXHMsXSske2xvbmxhdENvb3JkfWA7XG4gIGNvbnN0IGxvbkxhdFJlZ2V4ID0gbmV3IFJlZ0V4cChgXiR7bG9uTGF0UGF0dGVybn0kYCwgJ2cnKTtcblxuICBjb25zdCBkbXNDb29yZCA9XG4gICAgJyhbMC05XXsxLDJ9KVs6fMKwXT9cXFxccyooWzAtOV17MSwyfSk/Wzp8XFwnfOKAsnzigJldP1xcXFxzKihbMC05XXsxLDJ9KD86LlswLTldKyl7MCwxfSk/XFxcXHMqW1wifOKAs3zigJ1dP1xcXFxzKic7XG4gIGNvbnN0IGRtc0Nvb3JkUGF0dGVybiA9IGAke2Rtc0Nvb3JkfShbTnxTfEV8V3xPXSksP1xcXFxzKiR7ZG1zQ29vcmR9KFtOfFN8RXxXfE9dKWA7XG4gIGNvbnN0IGRtc1JlZ2V4ID0gbmV3IFJlZ0V4cChgXiR7ZG1zQ29vcmRQYXR0ZXJufSRgLCAnZ2knKTtcblxuICBjb25zdCBwYXR0ZXJuVXRtID1cbiAgICAnKFVUTSktPyhcXFxcZHsxLDJ9KVtcXFxccyxdKihcXFxcZCtbLixdP1xcXFxkKylbXFxcXHMsXSsoXFxcXGQrWy4sXT9cXFxcZCspJztcbiAgY29uc3QgdXRtUmVnZXggPSBuZXcgUmVnRXhwKGBeJHtwYXR0ZXJuVXRtfWAsICdnaScpO1xuXG4gIGNvbnN0IHBhdHRlcm5NdG0gPVxuICAgICcoTVRNKS0/KFxcXFxkezEsMn0pW1xcXFxzLF0qKFxcXFxkK1suLF0/XFxcXGQrKVtcXFxccyxdKyhcXFxcZCtbLixdP1xcXFxkKyknO1xuICBjb25zdCBtdG1SZWdleCA9IG5ldyBSZWdFeHAoYF4ke3BhdHRlcm5NdG19YCwgJ2dpJyk7XG5cbiAgY29uc3QgZGRDb29yZCA9ICcoWy0rXSk/KFxcXFxkezEsM30pWywuXShcXFxcZCspJztcbiAgY29uc3QgcGF0dGVybkRkID0gYCR7ZGRDb29yZH1cXFxccypbLF0/XFxcXHMqJHtkZENvb3JkfWA7XG4gIGNvbnN0IGRkUmVnZXggPSBuZXcgUmVnRXhwKGBeJHtwYXR0ZXJuRGR9YCwgJ2cnKTtcblxuICBjb25zdCBkbWRDb29yZCA9XG4gICAgJyhbLStdKT8oXFxcXGR7MSwzfSlbXFxcXHMsLl17MX0oXFxcXGR7MSwyfSlbXFxcXHMsLl17MX0oXFxcXGR7MSwyfSlbLixdPyhcXFxcZHsxLDV9KT8nO1xuICBjb25zdCBwYXR0ZXJuRG1kID0gYCR7ZG1kQ29vcmR9XFxcXHMqWywuXT9cXFxccyoke2RtZENvb3JkfWA7XG4gIGNvbnN0IGRtZFJlZ2V4ID0gbmV3IFJlZ0V4cChgXiR7cGF0dGVybkRtZH1gLCAnZycpO1xuXG4gIC8vIHRzbGludDpkaXNhYmxlOm1heC1saW5lLWxlbmd0aFxuICBjb25zdCBwYXR0ZXJuQkVMTCA9XG4gICAgJ0xBVFxcXFxzKltcXFxcczpdKlxcXFxzKihbLStdKT8oXFxcXGR7MSwyfSlbXFxcXHMuLF0/KFxcXFxkKyk/W1xcXFxzLixdP1xcXFxzKihcXFxcZHsxLDJ9KFsuLF1cXFxcZCspPyk/XFxcXHMqKE58U3xFfFcpP1xcXFxzKkxPTkdcXFxccypbXFxcXHM6XSpcXFxccyooWy0rXSk/KFxcXFxkezEsM30pW1xcXFxzLixdPyhcXFxcZCspP1tcXFxccy4sXT9cXFxccyooXFxcXGR7MSwyfShbLixdXFxcXGQrKT8pP1xcXFxzKihOfFN8RXxXKT9cXFxccypVTkNcXFxccypbXFxcXHM6XT9cXFxccyooXFxcXGQrKVxcXFxzKkNPTkZcXFxccypbXFxcXHM6XT9cXFxccyooXFxcXGR7MSwzfSknO1xuICBjb25zdCBiZWxsUmVnZXggPSBuZXcgUmVnRXhwKGBeJHtwYXR0ZXJuQkVMTH0/YCwgJ2dpJyk7XG5cbiAgY29uc3QgbW1Db29yZCA9ICcoWy0rXT9cXFxcZCspWywuXT8oXFxcXGQrKT8nO1xuICBjb25zdCBtbVBhdHRlcm4gPSBgJHttbUNvb3JkfVtcXFxccyxdKyR7bW1Db29yZH1gO1xuICBjb25zdCBtbVJlZ2V4ID0gbmV3IFJlZ0V4cChgXiR7bW1QYXR0ZXJufSRgLCAnZycpO1xuXG4gIGxldCBpc1hZQ29vcmRzID0gZmFsc2U7XG5cbiAgc3RyID0gc3RyLnRvTG9jYWxlVXBwZXJDYXNlKCkudHJpbSgpO1xuXG4gIC8vIEV4dHJhY3QgcHJvamVjdGlvblxuICBpZiAocHJvamVjdGlvblJlZ2V4LnRlc3Qoc3RyKSkge1xuICAgIFtjb29yZFN0ciwgcHJvamVjdGlvblN0cl0gPSBzdHIuc3BsaXQoJzsnKS5tYXAocyA9PiBzLnRyaW0oKSk7XG4gIH0gZWxzZSB7XG4gICAgY29vcmRTdHIgPSBzdHI7XG4gIH1cbiAgaWYgKGxvbkxhdFJlZ2V4LnRlc3QoY29vcmRTdHIpKSB7XG4gICAgW1xuICAgICAgLFxuICAgICAgbmVnYXRpdmVMb24sXG4gICAgICBsb24sXG4gICAgICAsXG4gICAgICBkZWNpbWFsTG9uLFxuICAgICAgbmVnYXRpdmVMYXQsXG4gICAgICBsYXQsXG4gICAgICAsXG4gICAgICBkZWNpbWFsTGF0XG4gICAgXSA9IGNvb3JkU3RyLm1hdGNoKGxvbkxhdFBhdHRlcm4pO1xuXG4gICAgbG9uID0gcGFyc2VGbG9hdCgobmVnYXRpdmVMb24gPyBuZWdhdGl2ZUxvbiA6ICcnKSArIGxvbiArICcuJyArIGRlY2ltYWxMb24pO1xuICAgIGxhdCA9IHBhcnNlRmxvYXQoKG5lZ2F0aXZlTGF0ID8gbmVnYXRpdmVMYXQgOiAnJykgKyBsYXQgKyAnLicgKyBkZWNpbWFsTGF0KTtcbiAgfSBlbHNlIGlmIChkbXNSZWdleC50ZXN0KGNvb3JkU3RyKSkge1xuICAgIFtcbiAgICAgICxcbiAgICAgIGRlZ3JlZXNMb24sXG4gICAgICBtaW51dGVzTG9uLFxuICAgICAgc2Vjb25kc0xvbixcbiAgICAgIGRpcmVjdGlvbkxvbixcbiAgICAgIGRlZ3JlZXNMYXQsXG4gICAgICBtaW51dGVzTGF0LFxuICAgICAgc2Vjb25kc0xhdCxcbiAgICAgIGRpcmVjdGlvbkxhdFxuICAgIF0gPSBjb29yZFN0ci5tYXRjaChkbXNDb29yZFBhdHRlcm4pO1xuXG4gICAgaWYgKGRpcmVjdGlvbkxvbiA9PT0gJ1MnIHx8IGRpcmVjdGlvbkxvbiA9PT0gJ04nKSB7XG4gICAgICBkZWdyZWVzTG9uID0gW2RlZ3JlZXNMYXQsIChkZWdyZWVzTGF0ID0gZGVncmVlc0xvbildWzBdO1xuICAgICAgbWludXRlc0xvbiA9IFttaW51dGVzTGF0LCAobWludXRlc0xhdCA9IG1pbnV0ZXNMb24pXVswXTtcbiAgICAgIHNlY29uZHNMb24gPSBbc2Vjb25kc0xhdCwgKHNlY29uZHNMYXQgPSBzZWNvbmRzTG9uKV1bMF07XG4gICAgICBkaXJlY3Rpb25Mb24gPSBbZGlyZWN0aW9uTGF0LCAoZGlyZWN0aW9uTGF0ID0gZGlyZWN0aW9uTG9uKV1bMF07XG4gICAgfVxuXG4gICAgbG9uID0gY29udmVydERNU1RvREQoXG4gICAgICBwYXJzZUZsb2F0KGRlZ3JlZXNMb24pLFxuICAgICAgcGFyc2VGbG9hdChtaW51dGVzTG9uKSxcbiAgICAgIHBhcnNlRmxvYXQoc2Vjb25kc0xvbiksXG4gICAgICBkaXJlY3Rpb25Mb25cbiAgICApO1xuICAgIGxhdCA9IGNvbnZlcnRETVNUb0REKFxuICAgICAgcGFyc2VGbG9hdChkZWdyZWVzTGF0KSxcbiAgICAgIHBhcnNlRmxvYXQobWludXRlc0xhdCksXG4gICAgICBwYXJzZUZsb2F0KHNlY29uZHNMYXQpLFxuICAgICAgZGlyZWN0aW9uTGF0XG4gICAgKTtcbiAgfSBlbHNlIGlmICh1dG1SZWdleC50ZXN0KGNvb3JkU3RyKSkge1xuICAgIGlzWFlDb29yZHMgPSB0cnVlO1xuICAgIFssICwgem9uZSwgbG9uLCBsYXRdID0gY29vcmRTdHIubWF0Y2gocGF0dGVyblV0bSk7XG4gICAgY29uc3QgZXBzZ1V0bSA9IE51bWJlcih6b25lKSA8IDEwID8gYEVQU0c6MzI2MCR7em9uZX1gIDogYEVQU0c6MzI2JHt6b25lfWA7XG4gICAgW2xvbiwgbGF0XSA9IG9scHJvai50cmFuc2Zvcm0oXG4gICAgICBbcGFyc2VGbG9hdChsb24pLCBwYXJzZUZsb2F0KGxhdCldLFxuICAgICAgZXBzZ1V0bSxcbiAgICAgICdFUFNHOjQzMjYnXG4gICAgKTtcbiAgfSBlbHNlIGlmIChtdG1SZWdleC50ZXN0KGNvb3JkU3RyKSkge1xuICAgIGlzWFlDb29yZHMgPSB0cnVlO1xuICAgIFssICwgem9uZSwgbG9uLCBsYXRdID0gY29vcmRTdHIubWF0Y2gocGF0dGVybk10bSk7XG4gICAgY29uc3QgZXBzZ010bSA9XG4gICAgICBOdW1iZXIoem9uZSkgPCAxMCA/IGBFUFNHOjMyMTgke3pvbmV9YCA6IGBFUFNHOjMyMSR7ODAgKyBOdW1iZXIoem9uZSl9YDtcbiAgICBbbG9uLCBsYXRdID0gb2xwcm9qLnRyYW5zZm9ybShcbiAgICAgIFtwYXJzZUZsb2F0KGxvbiksIHBhcnNlRmxvYXQobGF0KV0sXG4gICAgICBlcHNnTXRtLFxuICAgICAgJ0VQU0c6NDMyNidcbiAgICApO1xuICB9IGVsc2UgaWYgKGRtZFJlZ2V4LnRlc3QoY29vcmRTdHIpKSB7XG4gICAgW1xuICAgICAgLFxuICAgICAgbmVnYXRpdmVMb24sXG4gICAgICBkZWdyZWVzTG9uLFxuICAgICAgbWludXRlc0xvbixcbiAgICAgIHNlY29uZHNMb24sXG4gICAgICBkZWNpbWFsTG9uLFxuICAgICAgbmVnYXRpdmVMYXQsXG4gICAgICBkZWdyZWVzTGF0LFxuICAgICAgbWludXRlc0xhdCxcbiAgICAgIHNlY29uZHNMYXQsXG4gICAgICBkZWNpbWFsTGF0XG4gICAgXSA9IGNvb3JkU3RyLm1hdGNoKHBhdHRlcm5EbWQpO1xuXG4gICAgbG9uID0gY29udmVydERNU1RvREQoXG4gICAgICBwYXJzZUZsb2F0KChuZWdhdGl2ZUxvbiA/IG5lZ2F0aXZlTG9uIDogJycpICsgZGVncmVlc0xvbiksXG4gICAgICBwYXJzZUZsb2F0KG1pbnV0ZXNMb24pLFxuICAgICAgcGFyc2VGbG9hdChzZWNvbmRzTG9uKSxcbiAgICAgIGRpcmVjdGlvbkxvblxuICAgICk7XG4gICAgbGF0ID0gY29udmVydERNU1RvREQoXG4gICAgICBwYXJzZUZsb2F0KChuZWdhdGl2ZUxhdCA/IG5lZ2F0aXZlTGF0IDogJycpICsgZGVncmVlc0xhdCksXG4gICAgICBwYXJzZUZsb2F0KG1pbnV0ZXNMYXQpLFxuICAgICAgcGFyc2VGbG9hdChzZWNvbmRzTGF0KSxcbiAgICAgIGRpcmVjdGlvbkxhdFxuICAgICk7XG4gIH0gZWxzZSBpZiAoZGRSZWdleC50ZXN0KGNvb3JkU3RyKSkge1xuICAgIFtcbiAgICAgICxcbiAgICAgIG5lZ2F0aXZlTG9uLFxuICAgICAgZGVncmVlc0xvbixcbiAgICAgIGRlY2ltYWxMb24sXG4gICAgICBuZWdhdGl2ZUxhdCxcbiAgICAgIGRlZ3JlZXNMYXQsXG4gICAgICBkZWNpbWFsTGF0XG4gICAgXSA9IGNvb3JkU3RyLm1hdGNoKHBhdHRlcm5EZCk7XG5cbiAgICBsb24gPSBjb252ZXJ0RE1TVG9ERChcbiAgICAgIHBhcnNlRmxvYXQoKG5lZ2F0aXZlTG9uID8gbmVnYXRpdmVMb24gOiAnJykgKyBkZWdyZWVzTG9uKSxcbiAgICAgIHBhcnNlRmxvYXQobWludXRlc0xvbiksXG4gICAgICBwYXJzZUZsb2F0KHNlY29uZHNMb24pLFxuICAgICAgZGlyZWN0aW9uTG9uXG4gICAgKTtcbiAgICBsYXQgPSBjb252ZXJ0RE1TVG9ERChcbiAgICAgIHBhcnNlRmxvYXQoKG5lZ2F0aXZlTGF0ID8gbmVnYXRpdmVMYXQgOiAnJykgKyBkZWdyZWVzTGF0KSxcbiAgICAgIHBhcnNlRmxvYXQobWludXRlc0xhdCksXG4gICAgICBwYXJzZUZsb2F0KHNlY29uZHNMYXQpLFxuICAgICAgZGlyZWN0aW9uTGF0XG4gICAgKTtcbiAgfSBlbHNlIGlmIChiZWxsUmVnZXgudGVzdChjb29yZFN0cikpIHtcbiAgICBbXG4gICAgICAsXG4gICAgICBuZWdhdGl2ZUxhdCxcbiAgICAgIGRlZ3JlZXNMYXQsXG4gICAgICBtaW51dGVzTGF0LFxuICAgICAgc2Vjb25kc0xhdCxcbiAgICAgICxcbiAgICAgIGRpcmVjdGlvbkxhdCxcbiAgICAgIG5lZ2F0aXZlTG9uLFxuICAgICAgZGVncmVlc0xvbixcbiAgICAgIG1pbnV0ZXNMb24sXG4gICAgICBzZWNvbmRzTG9uLFxuICAgICAgLFxuICAgICAgZGlyZWN0aW9uTG9uLFxuICAgICAgcmFkaXVzLFxuICAgICAgY29uZlxuICAgIF0gPSBjb29yZFN0ci5tYXRjaChwYXR0ZXJuQkVMTCk7XG5cbiAgICAvLyBTZXQgZGVmYXVsdCB2YWx1ZSBmb3IgTm9ydGggQW1lcmljYVxuICAgIGlmICghZGlyZWN0aW9uTG9uKSB7XG4gICAgICBkaXJlY3Rpb25Mb24gPSAnVyc7XG4gICAgfVxuXG4gICAgLy8gQ2hlY2sgaWYgcmVhbCBtaW51dGVzIG9yIGRlY2ltYWxzXG4gICAgaWYgKG1pbnV0ZXNMb24gJiYgbWludXRlc0xvbi5sZW5ndGggPiAyKSB7XG4gICAgICBsb24gPSBwYXJzZUZsb2F0KFxuICAgICAgICAobmVnYXRpdmVMb24gPyBuZWdhdGl2ZUxvbiA6ICcnKSArIGRlZ3JlZXNMb24gKyAnLicgKyBtaW51dGVzTG9uXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICBsb24gPSBjb252ZXJ0RE1TVG9ERChcbiAgICAgICAgcGFyc2VGbG9hdChkZWdyZWVzTG9uKSxcbiAgICAgICAgcGFyc2VGbG9hdChtaW51dGVzTG9uKSxcbiAgICAgICAgcGFyc2VGbG9hdChzZWNvbmRzTG9uKSxcbiAgICAgICAgZGlyZWN0aW9uTG9uXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChtaW51dGVzTGF0ICYmIG1pbnV0ZXNMYXQubGVuZ3RoID4gMikge1xuICAgICAgbGF0ID0gcGFyc2VGbG9hdChcbiAgICAgICAgKG5lZ2F0aXZlTGF0ID8gbmVnYXRpdmVMYXQgOiAnJykgKyBkZWdyZWVzTGF0ICsgJy4nICsgbWludXRlc0xhdFxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbGF0ID0gY29udmVydERNU1RvREQoXG4gICAgICAgIHBhcnNlRmxvYXQoZGVncmVlc0xhdCksXG4gICAgICAgIHBhcnNlRmxvYXQobWludXRlc0xhdCksXG4gICAgICAgIHBhcnNlRmxvYXQoc2Vjb25kc0xhdCksXG4gICAgICAgIGRpcmVjdGlvbkxhdFxuICAgICAgKTtcbiAgICB9XG4gIH0gZWxzZSBpZiAobW1SZWdleC50ZXN0KGNvb3JkU3RyKSkge1xuICAgIGlzWFlDb29yZHMgPSB0cnVlO1xuICAgIFssIGxvbiwgZGVjaW1hbExvbiwgbGF0LCBkZWNpbWFsTGF0XSA9IGNvb3JkU3RyLm1hdGNoKG1tUGF0dGVybik7XG5cbiAgICBpZiAoZGVjaW1hbExvbikge1xuICAgICAgbG9uID0gcGFyc2VGbG9hdChsb24gKyAnLicgKyBkZWNpbWFsTG9uKTtcbiAgICB9XG5cbiAgICBpZiAoZGVjaW1hbExhdCkge1xuICAgICAgbGF0ID0gcGFyc2VGbG9hdChsYXQgKyAnLicgKyBkZWNpbWFsTGF0KTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGxvbkxhdDogdW5kZWZpbmVkLFxuICAgICAgbWVzc2FnZTogJycsXG4gICAgICByYWRpdXM6IHVuZGVmaW5lZCxcbiAgICAgIGNvbmY6IHVuZGVmaW5lZFxuICAgIH07XG4gIH1cblxuICBpZiAob3B0cy5mb3JjZU5BICYmICFpc1hZQ29vcmRzKSB7XG4gICAgLy8gU2V0IGEgbmVnYXRpdmUgY29vcmRpbmF0ZSBmb3IgTm9ydGggQW1lcmljYSB6b25lXG4gICAgaWYgKGxvbiA+IDAgJiYgbGF0ID4gMCkge1xuICAgICAgaWYgKGxvbiA+IGxhdCkge1xuICAgICAgICBsb24gPSAtbG9uO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbGF0ID0gLWxhdDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBSZXZlcnNlIGNvb3JkaW5hdGUgdG8gcmVzcGVjdCBsb25MYXQgY29udmVudGlvblxuICAgIGlmIChsb24gPiBsYXQpIHtcbiAgICAgIGxvbiA9IFtsYXQsIChsYXQgPSBsb24pXVswXTtcbiAgICB9XG4gIH1cblxuICBsb25MYXQgPSBbTnVtYmVyKGxvbiksIE51bWJlcihsYXQpXSBhcyBbbnVtYmVyLCBudW1iZXJdO1xuXG4gIC8vIFJlcHJvamVjdCB0aGUgY29vcmRpbmF0ZSBpZiBwcm9qZWN0aW9uIHBhcmFtZXRlciBoYXZlIGJlZW4gc2V0IGFuZCBjb29yZCBpcyBub3QgNDMyNlxuICBpZiAoXG4gICAgKHByb2plY3Rpb25TdHIgIT09IHVuZGVmaW5lZCAmJiBwcm9qZWN0aW9uU3RyICE9PSB0b1Byb2plY3Rpb24pIHx8XG4gICAgKGxvbkxhdFswXSA+IDE4MCB8fCBsb25MYXRbMF0gPCAtMTgwKSB8fFxuICAgIChsb25MYXRbMV0gPiA5MCB8fCBsb25MYXRbMV0gPCAtOTApXG4gICkge1xuICAgIGNvbnN0IHNvdXJjZSA9IHByb2plY3Rpb25TdHIgPyAnRVBTRzonICsgcHJvamVjdGlvblN0ciA6IG1hcFByb2plY3Rpb247XG4gICAgY29uc3QgZGVzdCA9ICdFUFNHOicgKyB0b1Byb2plY3Rpb247XG5cbiAgICB0cnkge1xuICAgICAgbG9uTGF0ID0gb2xwcm9qLnRyYW5zZm9ybShsb25MYXQsIHNvdXJjZSwgZGVzdCkgYXMgW251bWJlciwgbnVtYmVyXTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBsb25MYXQ6IHVuZGVmaW5lZCxcbiAgICAgICAgbWVzc2FnZTogJ1Byb2plY3Rpb24gJyArIHNvdXJjZSArICcgbm90IHN1cHBvcnRlZCcsXG4gICAgICAgIHJhZGl1czogdW5kZWZpbmVkLFxuICAgICAgICBjb25mOiB1bmRlZmluZWRcbiAgICAgIH07XG4gICAgfVxuICB9XG4gIGlmIChNYXRoLmFicyhsb25MYXRbMF0pIDw9IDE4MCAmJiBNYXRoLmFicyhsb25MYXRbMV0pIDw9IDkwKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGxvbkxhdCxcbiAgICAgIG1lc3NhZ2U6ICcnLFxuICAgICAgcmFkaXVzOiByYWRpdXMgPyBwYXJzZUludChyYWRpdXMsIDEwKSA6IHVuZGVmaW5lZCxcbiAgICAgIGNvbmY6IGNvbmYgPyBwYXJzZUludChjb25mLCAxMCkgOiB1bmRlZmluZWRcbiAgICB9O1xuICB9IGVsc2Uge1xuICAgIHJldHVybiB7XG4gICAgICBsb25MYXQ6IHVuZGVmaW5lZCxcbiAgICAgIG1lc3NhZ2U6ICdDb29yZGluYXRlIG91dCBvZiBMb25naXR1ZGUvTGF0aXR1ZGUgYm91bmRzJyxcbiAgICAgIHJhZGl1czogdW5kZWZpbmVkLFxuICAgICAgY29uZjogdW5kZWZpbmVkXG4gICAgfTtcbiAgfVxufVxuXG4vKipcbiAqIENvbnZlcnQgZGVncmVlcyBtaW51dGVzIHNlY29uZHMgdG8gZGRcbiAqIEBwYXJhbSBkZWdyZWVzIERlZ3JlZXNcbiAqIEBwYXJhbSBtaW51dGVzIE1pbnV0ZXNcbiAqIEBwYXJhbSBzZWNvbmRzIFNlY29uZHNcbiAqIEBwYXJhbSBkaXJlY3Rpb24gRGlyZWN0aW9uXG4gKi9cbmZ1bmN0aW9uIGNvbnZlcnRETVNUb0REKFxuICBkZWdyZWVzOiBudW1iZXIsXG4gIG1pbnV0ZXM6IG51bWJlcixcbiAgc2Vjb25kczogbnVtYmVyLFxuICBkaXJlY3Rpb246IHN0cmluZ1xuKSB7XG4gIG1pbnV0ZXMgPSBtaW51dGVzIHx8IDA7XG4gIHNlY29uZHMgPSBzZWNvbmRzIHx8IDA7XG5cbiAgY29uc3QgbmVnID0gZGVncmVlcyA8IDA7XG4gIGxldCBkZCA9IE1hdGguYWJzKGRlZ3JlZXMpICsgbWludXRlcyAvIDYwICsgc2Vjb25kcyAvIDM2MDA7XG5cbiAgaWYgKG5lZyB8fCBkaXJlY3Rpb24gPT09ICdTJyB8fCBkaXJlY3Rpb24gPT09ICdXJykge1xuICAgIGRkID0gLWRkO1xuICB9IC8vIERvbid0IGRvIGFueXRoaW5nIGZvciBOIG9yIEVcbiAgcmV0dXJuIGRkO1xufVxuXG4vKipcbiAqIENvbnZlcnQgZGQgdG8gZGVncmVlcyBtaW51dGVzIHNlY29uZHNcbiAqIEBwYXJhbSBsb25MYXRERCBsb25naXR1ZGUgYW5kIGxhdGl0dWRlIGluIGRkXG4gKiBAcGFyYW0gZGVjaW1hbCBudW1iZXIgb2YgZGVjaW1hbHMgZm9yIHNlY29uZHNcbiAqIEByZXR1cm5zIGxvbmdpdHVkZSBhbmQgbGF0aXR1ZGUgaW4gZG1zXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0RERUb0RNUyhcbiAgbG9uTGF0REQ6IFtudW1iZXIsIG51bWJlcl0sIGRlY2ltYWw6IG51bWJlciA9IDNcbik6IHN0cmluZ1tdIHtcbiAgY29uc3QgbG9uTGF0RE1TID0gW107XG5cbiAgbG9uTGF0REQuZm9yRWFjaChkZCA9PiB7XG4gICAgY29uc3QgZGVncmVlcyA9IGRkIDwgMCA/IE1hdGguY2VpbChkZCkgOiBNYXRoLmZsb29yKGRkKTtcbiAgICBjb25zdCBpbnQgPSBkZCA8IDAgPyAoZGVncmVlcyAtIGRkKSAqIDYwIDogKGRkIC0gZGVncmVlcykgKiA2MDtcbiAgICBjb25zdCBtaW51dGVzID0gIE1hdGguZmxvb3IoaW50KTtcbiAgICBjb25zdCBzZWNvbmRzID0gKChpbnQgLSBtaW51dGVzKSAqIDYwKS50b0ZpeGVkKGRlY2ltYWwpO1xuXG4gICAgbG9uTGF0RE1TLnB1c2goYCR7ZGVncmVlc33CsCAke21pbnV0ZXN9JyAke3NlY29uZHN9XCJgKTtcbiAgfSk7XG4gIHJldHVybiBsb25MYXRETVM7XG59XG5cbi8qKlxuICogUmV0dXJuIHRydWUgb2YgdHdvIHZpZXcgc3RhdGVzIGFyZSBlcXVhbC5cbiAqIEBwYXJhbSBzdGF0ZTEgVmlldyBzdGF0ZVxuICogQHBhcmFtIHN0YXRlMiBWaWV3IHN0YXRlXG4gKiBAcmV0dXJucyBUcnVlIGlmIHRoZSB2aWV3IHN0YXRlcyBhcmUgZXF1YWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZpZXdTdGF0ZXNBcmVFcXVhbChcbiAgc3RhdGUxOiBNYXBWaWV3U3RhdGUsXG4gIHN0YXRlMjogTWFwVmlld1N0YXRlXG4pOiBib29sZWFuIHtcbiAgaWYgKHN0YXRlMSA9PT0gdW5kZWZpbmVkIHx8IHN0YXRlMiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgY29uc3QgdG9sZXJhbmNlID0gMSAvIDEwMDAwO1xuICByZXR1cm4gKFxuICAgIHN0YXRlMS56b29tID09PSBzdGF0ZTIuem9vbSAmJlxuICAgIE1hdGgudHJ1bmMoc3RhdGUxLmNlbnRlclswXSAvIHRvbGVyYW5jZSkgPT09XG4gICAgICBNYXRoLnRydW5jKHN0YXRlMi5jZW50ZXJbMF0gLyB0b2xlcmFuY2UpICYmXG4gICAgTWF0aC50cnVuYyhzdGF0ZTEuY2VudGVyWzFdIC8gdG9sZXJhbmNlKSA9PT1cbiAgICAgIE1hdGgudHJ1bmMoc3RhdGUyLmNlbnRlclsxXSAvIHRvbGVyYW5jZSlcbiAgKTtcbn1cblxuLyoqXG4gKiBGb3JtYXQgdGhlIHNjYWxlIHRvIGEgaHVtYW4gcmVhZGFibGUgdGV4dFxuICogQHBhcmFtIFNjYWxlIG9mIHRoZSBtYXBcbiAqIEByZXR1cm5zIEh1bWFuIHJlYWRhYmxlIHNjYWxlIHRleHRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdFNjYWxlKHNjYWxlKSB7XG4gIHNjYWxlID0gTWF0aC5yb3VuZChzY2FsZSk7XG4gIGlmIChzY2FsZSA8IDEwMDAwKSB7XG4gICAgcmV0dXJuIHNjYWxlICsgJyc7XG4gIH1cblxuICBzY2FsZSA9IE1hdGgucm91bmQoc2NhbGUgLyAxMDAwKTtcbiAgaWYgKHNjYWxlIDwgMTAwMCkge1xuICAgIHJldHVybiBzY2FsZSArICdLJztcbiAgfVxuXG4gIHNjYWxlID0gTWF0aC5yb3VuZChzY2FsZSAvIDEwMDApO1xuICByZXR1cm4gc2NhbGUgKyAnTSc7XG59XG5cbi8qKlxuICogUmV0dXJuIHRoZSByZXNvbHV0aW9uIGZyb20gYSBzY2FsZSBkZW5vbVxuICogQHBhcmFtIHNjYWxlIFNjYWxlIGRlbm9tXG4gKiBAcGFyYW0gZHBpIERQSVxuICogQHJldHVybnMgUmVzb2x1dGlvblxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVzb2x1dGlvbkZyb21TY2FsZShcbiAgc2NhbGU6IG51bWJlcixcbiAgZHBpOiBudW1iZXIgPSA5NlxuKTogbnVtYmVyIHtcbiAgY29uc3QgaW5jaGVzUGVyTWV0ZXIgPSAzOS4zNzAxO1xuICByZXR1cm4gc2NhbGUgLyAoaW5jaGVzUGVyTWV0ZXIgKiBkcGkpO1xufVxuXG4vKipcbiAqIFJldHVybiB0aGUgcmVzb2x1dGlvbiBmcm9tIGEgc2NhbGUgZGVub21cbiAqIEBwYXJhbSBTY2FsZSBkZW5vbVxuICogQHJldHVybnMgUmVzb2x1dGlvblxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2NhbGVGcm9tUmVzb2x1dGlvbihcbiAgcmVzb2x1dGlvbjogbnVtYmVyLFxuICB1bml0OiBzdHJpbmcgPSAnbScsXG4gIGRwaTogbnVtYmVyID0gOTZcbik6IG51bWJlciB7XG4gIGNvbnN0IGluY2hlc1Blck1ldGVyID0gMzkuMzcwMTtcbiAgcmV0dXJuIHJlc29sdXRpb24gKiBvbHByb2ouTUVURVJTX1BFUl9VTklUW3VuaXRdICogaW5jaGVzUGVyTWV0ZXIgKiBkcGk7XG59XG5cbi8qKlxuICogUmV0dXJucyB0cnVlIGlmIHRoZSBDVFJMIGtleSBpcyBwdXNoZWQgZHVyaW5nIGFuIE9sIE1hcEJyb3dzZXJQb2ludGVyRXZlbnRcbiAqIEBwYXJhbSBldmVudCBPTCBNYXBCcm93c2VyUG9pbnRlckV2ZW50XG4gKiBAcmV0dXJucyBXaGV0aGVyIHRoZSBDVFJMIGtleSBpcyBwdXNoZWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGN0cmxLZXlEb3duKGV2ZW50OiBNYXBCcm93c2VyUG9pbnRlckV2ZW50PGFueT4pOiBib29sZWFuIHtcbiAgY29uc3Qgb3JpZ2luYWxFdmVudCA9IGV2ZW50Lm9yaWdpbmFsRXZlbnQ7XG4gIHJldHVybiAoXG4gICAgIW9yaWdpbmFsRXZlbnQuYWx0S2V5ICYmXG4gICAgKE1BQyA/IG9yaWdpbmFsRXZlbnQubWV0YUtleSA6IG9yaWdpbmFsRXZlbnQuY3RybEtleSkgJiZcbiAgICAhb3JpZ2luYWxFdmVudC5zaGlmdEtleVxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcm91bmRDb29yZFRvKGNvb3JkOiBbbnVtYmVyLCBudW1iZXJdLCBkZWNpbWFsOiBudW1iZXIgPSAzKSB7XG4gIHJldHVybiBbY29vcmRbMF0udG9GaXhlZChkZWNpbWFsKSwgY29vcmRbMV0udG9GaXhlZChkZWNpbWFsKV07XG59XG5cbi8qKlxuICogUmV0dXJucyBhbiBhcnJheSBvZiBjb252ZXJ0ZWQgY29vcmRpbmF0ZXMuXG4gKiBDb252ZXJzaW9uIGlzIGRvbmUgZm9yIGV2ZXJ5IGNvbmZpZ3VyZWQgcHJvamVjdGlvbnNcbiAqIGFuZCBmb3IgdGhlIGN1cnJlbnQgVVRNIHpvbmUgYW5kIE1UTSB6b25lLlxuICogQHBhcmFtIGxvbkxhdCBbbnVtYmVyLCBudW1iZXJdIGFycmF5IG9mIHRoZSBjb29yZGluYXRlIHRvIHRyYW5zZm9ybS5cbiAqIEBwYXJhbSBwcm9qZWN0aW9ucyAgUHJvamVjdGlvbltdIEFycmF5IG9mIGRlc3RpbmF0aW9uIHByb2plY3Rpb24uXG4gKiBAcmV0dXJucyBSZXR1cm5zIGFuIGFycmF5IG9mIGNvbnZlcnRlZCBjb29yZGluYXRlcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGxvbkxhdENvbnZlcnNpb24oXG4gIGxvbkxhdDogW251bWJlciwgbnVtYmVyXSxcbiAgcHJvamVjdGlvbnM6IFByb2plY3Rpb25bXVxuKToge1xuICBjb2RlOiBzdHJpbmc7XG4gIGFsaWFzOiBzdHJpbmc7XG4gIGNvb3JkOiBbbnVtYmVyLCBudW1iZXJdO1xuICBpZ28yQ29vcmRGb3JtYXQ6IHN0cmluZztcbn1bXSB7XG4gIGNvbnN0IHJhd0Nvb3JkMzg1NyA9IG9scHJvai50cmFuc2Zvcm0obG9uTGF0LCAnRVBTRzo0MzI2JywgJ0VQU0c6Mzg1NycpIGFzIFtudW1iZXIsIG51bWJlcl07XG4gIGNvbnN0IGNvbnZlcnRlZExvbkxhdCA9IFtcbiAgICB7XG4gICAgICBjb2RlOiAnRVBTRzozODU3JyxcbiAgICAgIGFsaWFzOiAnV2ViIE1lcmNhdG9yJyxcbiAgICAgIGNvb3JkOiByYXdDb29yZDM4NTcsXG4gICAgICBpZ28yQ29vcmRGb3JtYXQ6IGAke3JvdW5kQ29vcmRUbyhyYXdDb29yZDM4NTcpLmpvaW4oJywgJyl9IDsgMzg1N2BcbiAgICB9XG4gIF07XG5cbiAgLy8gZGV0ZWN0IHRoZSBjdXJyZW50IHV0bSB6b25lLlxuICBjb25zdCB1dG1ab25lID0gdXRtWm9uZUZyb21Mb25MYXQobG9uTGF0KTtcbiAgY29uc3QgZXBzZ1V0bSA9IHV0bVpvbmUgPCAxMCA/IGBFUFNHOjMyNjAke3V0bVpvbmV9YCA6IGBFUFNHOjMyNiR7dXRtWm9uZX1gO1xuICBjb25zdCB1dG1OYW1lID0gYFVUTS0ke3V0bVpvbmV9YDtcbiAgY29uc3QgcmF3Q29vcmRVdG0gPSBvbHByb2oudHJhbnNmb3JtKGxvbkxhdCwgJ0VQU0c6NDMyNicsIGVwc2dVdG0pIGFzIFtudW1iZXIsIG51bWJlcl07XG4gIGNvbnZlcnRlZExvbkxhdC5wdXNoKHtcbiAgICBjb2RlOiBlcHNnVXRtLFxuICAgIGFsaWFzOiAnVVRNJyxcbiAgICBjb29yZDogcmF3Q29vcmRVdG0sXG4gICAgaWdvMkNvb3JkRm9ybWF0OiBgJHt1dG1OYW1lfSAke3JvdW5kQ29vcmRUbyhyYXdDb29yZFV0bSkuam9pbignLCAnKX1gXG4gIH0pO1xuXG4gIC8vIGRldGVjdCB0aGUgY3VycmVudCBtdG0gem9uZS5cbiAgY29uc3QgbXRtWm9uZSA9IG10bVpvbmVGcm9tTG9uTGF0KGxvbkxhdCk7XG4gIGlmIChtdG1ab25lKSB7XG4gICAgY29uc3QgZXBzZ010bSA9XG4gICAgICBtdG1ab25lIDwgMTAgPyBgRVBTRzozMjE4JHttdG1ab25lfWAgOiBgRVBTRzozMjEkezgwICsgbXRtWm9uZX1gO1xuICAgIGNvbnN0IG10bU5hbWUgPSBgTVRNLSR7bXRtWm9uZX1gO1xuICAgIGNvbnN0IHJhd0Nvb3JkTXRtID0gb2xwcm9qLnRyYW5zZm9ybShsb25MYXQsICdFUFNHOjQzMjYnLCBlcHNnTXRtKSBhcyBbbnVtYmVyLCBudW1iZXJdO1xuICAgIGNvbnZlcnRlZExvbkxhdC5wdXNoKHtcbiAgICAgIGNvZGU6IGVwc2dNdG0sXG4gICAgICBhbGlhczogJ01UTScsXG4gICAgICBjb29yZDogcmF3Q29vcmRNdG0sXG4gICAgICBpZ28yQ29vcmRGb3JtYXQ6IGAke210bU5hbWV9ICR7cm91bmRDb29yZFRvKHJhd0Nvb3JkTXRtKS5qb2luKCcsICcpfWBcbiAgICB9KTtcbiAgfVxuXG4gIHByb2plY3Rpb25zLmZvckVhY2gocHJvamVjdGlvbiA9PiB7XG4gICAgY29uc3QgcmF3Q29vcmQgPSBvbHByb2oudHJhbnNmb3JtKGxvbkxhdCwgJ0VQU0c6NDMyNicsIHByb2plY3Rpb24uY29kZSkgYXMgW251bWJlciwgbnVtYmVyXTtcbiAgICBjb25zdCBudW1lcmljRXBzZ0NvZGUgPSBwcm9qZWN0aW9uLmNvZGUuc3BsaXQoJzonKVsxXTtcbiAgICBjb252ZXJ0ZWRMb25MYXQucHVzaCh7XG4gICAgICBjb2RlOiBwcm9qZWN0aW9uLmNvZGUsXG4gICAgICBhbGlhczogcHJvamVjdGlvbi5hbGlhcyB8fCBwcm9qZWN0aW9uLmNvZGUsXG4gICAgICBjb29yZDogcmF3Q29vcmQsXG4gICAgICBpZ28yQ29vcmRGb3JtYXQ6IGAke3JvdW5kQ29vcmRUbyhyYXdDb29yZCkuam9pbihcbiAgICAgICAgJywgJ1xuICAgICAgKX0gOyAke251bWVyaWNFcHNnQ29kZX1gXG4gICAgfSk7XG4gIH0pO1xuXG4gIHJldHVybiBjb252ZXJ0ZWRMb25MYXQ7XG59XG5cbi8qKlxuICogRGV0ZWN0IHRoZSBjdXJyZW50IHV0bSB6b25lIG9mIHRoZSBsb24vbGF0IGNvb3JkaW5hdGUuXG4gKiBAcGFyYW0gbG9uTGF0IFtudW1iZXIsIG51bWJlcl0gYXJyYXkgb2YgdGhlIGNvb3JkaW5hdGUgdG8gZGV0ZWN0IHRoZSBVVE0gem9uZS5cbiAqIEByZXR1cm5zIG51bWJlciBUaGUgVVRNIHpvbmUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1dG1ab25lRnJvbUxvbkxhdChsb25MYXQ6IFtudW1iZXIsIG51bWJlcl0pIHtcbiAgcmV0dXJuIE1hdGguY2VpbCgobG9uTGF0WzBdICsgMTgwKSAvIDYpO1xufVxuXG4vKipcbiAqIERldGVjdCB0aGUgY3VycmVudCBtdG0gem9uZSBvZiB0aGUgbG9uL2xhdCBjb29yZGluYXRlLlxuICogQHBhcmFtIGxvbkxhdCBbbnVtYmVyLCBudW1iZXJdIGFycmF5IG9mIHRoZSBjb29yZGluYXRlIHRvIGRldGVjdCB0aGUgTVRNIHpvbmUuXG4gKiBAcmV0dXJucyBudW1iZXIgVGhlIE1UTSB6b25lLiBVbmRlZmluZWQgaWYgb3V0c2lkZSBvZiB0aGUgbXRtIGFwcGxpY2F0aW9uIHpvbmUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtdG1ab25lRnJvbUxvbkxhdChsb25MYXQ6IFtudW1iZXIsIG51bWJlcl0pIHtcbiAgY29uc3QgbG9uZyA9IGxvbkxhdFswXTtcbiAgbGV0IG10bVpvbmU7XG4gIGlmIChsb25nIDwgLTUxICYmIGxvbmcgPiAtNTQpIHtcbiAgICBtdG1ab25lID0gMTtcbiAgfVxuICBpZiAobG9uZyA8IC01NCAmJiBsb25nID4gLTU3KSB7XG4gICAgbXRtWm9uZSA9IDI7XG4gIH1cbiAgaWYgKGxvbmcgPCAtNTcgJiYgbG9uZyA+IC02MCkge1xuICAgIG10bVpvbmUgPSAzO1xuICB9XG4gIGlmIChsb25nIDwgLTYwICYmIGxvbmcgPiAtNjMpIHtcbiAgICBtdG1ab25lID0gNDtcbiAgfVxuICBpZiAobG9uZyA8IC02MyAmJiBsb25nID4gLTY2KSB7XG4gICAgbXRtWm9uZSA9IDU7XG4gIH1cbiAgaWYgKGxvbmcgPCAtNjYgJiYgbG9uZyA+IC02OSkge1xuICAgIG10bVpvbmUgPSA2O1xuICB9XG4gIGlmIChsb25nIDwgLTY5ICYmIGxvbmcgPiAtNzIpIHtcbiAgICBtdG1ab25lID0gNztcbiAgfVxuICBpZiAobG9uZyA8IC03MiAmJiBsb25nID4gLTc1KSB7XG4gICAgbXRtWm9uZSA9IDg7XG4gIH1cbiAgaWYgKGxvbmcgPCAtNzUgJiYgbG9uZyA+IC03OCkge1xuICAgIG10bVpvbmUgPSA5O1xuICB9XG4gIGlmIChsb25nIDwgLTc4ICYmIGxvbmcgPiAtODEpIHtcbiAgICBtdG1ab25lID0gMTA7XG4gIH1cbiAgcmV0dXJuIG10bVpvbmU7XG59XG4iXX0=
459
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLnV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvbWFwL3NoYXJlZC9tYXAudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE1BQU0sTUFBTSxTQUFTLENBQUM7QUFFbEMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUU3QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBSzFDOzs7Ozs7Ozs7O0dBVUc7QUFDSCxNQUFNLFVBQVUsY0FBYyxDQUM1QixHQUFXLEVBQ1gsYUFBcUIsRUFDckIsT0FBOEIsRUFBRTtJQU9oQyxJQUFJLE1BQXdCLENBQUM7SUFDN0IsSUFBSSxRQUFnQixDQUFDO0lBQ3JCLElBQUksV0FBbUIsQ0FBQztJQUN4QixJQUFJLFVBQWtCLENBQUM7SUFDdkIsSUFBSSxVQUFrQixDQUFDO0lBQ3ZCLElBQUksVUFBa0IsQ0FBQztJQUN2QixJQUFJLFlBQW9CLENBQUM7SUFDekIsSUFBSSxVQUFrQixDQUFDO0lBQ3ZCLElBQUksV0FBbUIsQ0FBQztJQUN4QixJQUFJLFVBQWtCLENBQUM7SUFDdkIsSUFBSSxVQUFrQixDQUFDO0lBQ3ZCLElBQUksVUFBa0IsQ0FBQztJQUN2QixJQUFJLFlBQW9CLENBQUM7SUFDekIsSUFBSSxVQUFrQixDQUFDO0lBQ3ZCLElBQUksSUFBWSxDQUFDO0lBQ2pCLElBQUksTUFBYyxDQUFDO0lBQ25CLElBQUksSUFBWSxDQUFDO0lBQ2pCLElBQUksR0FBUSxDQUFDO0lBQ2IsSUFBSSxHQUFRLENBQUM7SUFFYixNQUFNLGlCQUFpQixHQUFHLHVCQUF1QixDQUFDO0lBQ2xELE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQztJQUM1QixJQUFJLGFBQXFCLENBQUM7SUFDMUIsTUFBTSxlQUFlLEdBQUcsSUFBSSxNQUFNLENBQUMsaUJBQWlCLEVBQUUsR0FBRyxD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QUksQ0FBQyxRQUFRLENBQUMsRUFBRTtRQUNsQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLENBQUMsRUFBRSxBQUFELEVBQUcsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2xELE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLFlBQVksSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsSUFBSSxFQUFFLENBQUM7UUFDM0UsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FDM0IsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUUsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQ2xDLE9BQU8sRUFDUCxXQUFXLENBQ1osQ0FBQztLQUNIO1NBQU0sSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1FBQ2xDLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFDbEIsQ0FBQyxFQUFFLEFBQUQsRUFBRyxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDbEQsTUFBTSxPQUFPLEdBQ1gsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDMUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FDM0IsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUUsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQ2xDLE9BQU8sRUFDUCxXQUFXLENBQ1osQ0FBQztLQUNIO1NBQU0sSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEs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RUFBRTtRQUM1QixPQUFPLEdBQUcsQ0FBQyxDQUFDO0tBQ2I7SUFDRCxJQUFJLElBQUksR0FBRyxDQUFDLEVBQUUsSUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQUU7UUFDNUIsT0FBTyxHQUFHLENBQUMsQ0FBQztLQUNiO0lBQ0QsSUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFHLENBQUMsRUFBRSxFQUFFO1FBQzVCLE9BQU8sR0FBRyxDQUFDLENBQUM7S0FDYjtJQUNELElBQUksSUFBSSxHQUFHLENBQUMsRUFBRSxJQUFJLElBQUksR0FBRyxDQUFDLEVBQUUsRUFBRTtRQUM1QixPQUFPLEdBQUcsQ0FBQyxDQUFDO0tBQ2I7SUFDRCxJQUFJLElBQUksR0FBRyxDQUFDLEVBQUUsSUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQUU7UUFDNUIsT0FBTyxHQUFHLENBQUMsQ0FBQztLQUNiO0lBQ0QsSUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFHLENBQUMsRUFBRSxFQUFFO1FBQzVCLE9BQU8sR0FBRyxDQUFDLENBQUM7S0FDYjtJQUNELElBQUksSUFBSSxHQUFHLENBQUMsRUFBRSxJQUFJLElBQUksR0FBRyxDQUFDLEVBQUUsRUFBRTtRQUM1QixPQUFPLEdBQUcsQ0FBQyxDQUFDO0tBQ2I7SUFDRCxJQUFJLElBQUksR0FBRyxDQUFDLEVBQUUsSUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQUU7UUFDNUIsT0FBTyxHQUFHLENBQUMsQ0FBQztLQUNiO0lBQ0QsSUFBSSxJQUFJLEdBQUcsQ0FBQyxFQUFFLElBQUksSUFBSSxHQUFHLENBQUMsRUFBRSxFQUFFO1FBQzVCLE9BQU8sR0FBRyxFQUFFLENBQUM7S0FDZDtJQUNELE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBvbHByb2ogZnJvbSAnb2wvcHJvaic7XG5pbXBvcnQgTWFwQnJvd3NlclBvaW50ZXJFdmVudCBmcm9tICdvbC9NYXBCcm93c2VyRXZlbnQnO1xuaW1wb3J0IHsgTUFDIH0gZnJvbSAnb2wvaGFzJztcblxuaW1wb3J0IHsgTnVtYmVyVXRpbHMgfSBmcm9tICdAaWdvMi91dGlscyc7XG5cbmltcG9ydCB7IE1hcFZpZXdTdGF0ZSB9IGZyb20gJy4vbWFwLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQcm9qZWN0aW9uIH0gZnJvbSAnLi9wcm9qZWN0aW9uLmludGVyZmFjZXMnO1xuXG4vKipcbiAqIFRoaXMgbWV0aG9kIGV4dHJhY3RzIGEgY29vcmRpbmF0ZSB0dXBsZSBmcm9tIGEgc3RyaW5nLlxuICogQHBhcmFtIHN0ciBBbnkgc3RyaW5nXG4gKiBAcGFyYW0gbWFwUHJvamVjdGlvbiBzdHJpbmcgTWFwIFByb2plY3Rpb25cbiAqIEBwYXJhbSBvcHRzLmZvcmNlTkEgYm9vbGVhbiBGb3JjZSBOb3J0aCBBbWVyaWNhIFpvbmVcbiAqIEByZXR1cm5zIG9iamVjdDpcbiAqICAgICAgICAgICAgIGxvbkxhdDogQ29vcmRpbmF0ZSxcbiAqICAgICAgICAgICAgIG1lc3NhZ2U6IE1lc3NhZ2Ugb2YgZXJyb3IsXG4gKiAgICAgICAgICAgICByYWRpdXM6IHJhZGl1cyBvZiB0aGUgY29uZmllbmNlIG9mIGNvb3JkaW5hdGUsXG4gKiAgICAgICAgICAgICBjb25mOiBjb25maWRlbmNlIG9mIHRoZSBjb29yZGluYXRlfVxuICovXG5leHBvcnQgZnVuY3Rpb24gc3RyaW5nVG9Mb25MYXQoXG4gIHN0cjogc3RyaW5nLFxuICBtYXBQcm9qZWN0aW9uOiBzdHJpbmcsXG4gIG9wdHM6IHsgZm9yY2VOQT86IGJvb2xlYW4gfSA9IHt9XG4pOiB7XG4gIGxvbkxhdDogW251bWJlciwgbnVtYmVyXSB8IHVuZGVmaW5lZDtcbiAgbWVzc2FnZTogc3RyaW5nO1xuICByYWRpdXM6IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgY29uZjogbnVtYmVyIHwgdW5kZWZpbmVkO1xufSB7XG4gIGxldCBsb25MYXQ6IFtudW1iZXIsIG51bWJlcl07XG4gIGxldCBjb29yZFN0cjogc3RyaW5nO1xuICBsZXQgbmVnYXRpdmVMb246IHN0cmluZztcbiAgbGV0IGRlZ3JlZXNMb246IHN0cmluZztcbiAgbGV0IG1pbnV0ZXNMb246IHN0cmluZztcbiAgbGV0IHNlY29uZHNMb246IHN0cmluZztcbiAgbGV0IGRpcmVjdGlvbkxvbjogc3RyaW5nO1xuICBsZXQgZGVjaW1hbExvbjogc3RyaW5nO1xuICBsZXQgbmVnYXRpdmVMYXQ6IHN0cmluZztcbiAgbGV0IGRlZ3JlZXNMYXQ6IHN0cmluZztcbiAgbGV0IG1pbnV0ZXNMYXQ6IHN0cmluZztcbiAgbGV0IHNlY29uZHNMYXQ6IHN0cmluZztcbiAgbGV0IGRpcmVjdGlvbkxhdDogc3RyaW5nO1xuICBsZXQgZGVjaW1hbExhdDogc3RyaW5nO1xuICBsZXQgem9uZTogc3RyaW5nO1xuICBsZXQgcmFkaXVzOiBzdHJpbmc7XG4gIGxldCBjb25mOiBzdHJpbmc7XG4gIGxldCBsb246IGFueTtcbiAgbGV0IGxhdDogYW55O1xuXG4gIGNvbnN0IHByb2plY3Rpb25QYXR0ZXJuID0gJyhcXFxccyo7XFxcXHMqW1xcXFxkXXs0LDZ9KSc7XG4gIGNvbnN0IHRvUHJvamVjdGlvbiA9ICc0MzI2JztcbiAgbGV0IHByb2plY3Rpb25TdHI6IHN0cmluZztcbiAgY29uc3QgcHJvamVjdGlvblJlZ2V4ID0gbmV3IFJlZ0V4cChwcm9qZWN0aW9uUGF0dGVybiwgJ2cnKTtcblxuICBjb25zdCBsb25sYXRDb29yZCA9ICcoWy0rXSk/KFtcXFxcZF17MSwzfSkoWywuXShcXFxcZCspKT8nO1xuICBjb25zdCBsb25MYXRQYXR0ZXJuID0gYCR7bG9ubGF0Q29vcmR9W1xcXFxzLF0rJHtsb25sYXRDb29yZH1gO1xuICBjb25zdCBsb25MYXRSZWdleCA9IG5ldyBSZWdFeHAoYF4ke2xvbkxhdFBhdHRlcm59JGAsICdnJyk7XG5cbiAgY29uc3QgZG1zQ29vcmQgPVxuICAgICcoWzAtOV17MSwyfSlbOnzCsF0/XFxcXHMqKFswLTldezEsMn0pP1s6fFxcJ3zigLJ84oCZXT9cXFxccyooWzAtOV17MSwyfSg/Oi5bMC05XSspezAsMX0pP1xcXFxzKltcInzigLN84oCdXT9cXFxccyonO1xuICBjb25zdCBkbXNDb29yZFBhdHRlcm4gPSBgJHtkbXNDb29yZH0oW058U3xFfFd8T10pLD9cXFxccyoke2Rtc0Nvb3JkfShbTnxTfEV8V3xPXSlgO1xuICBjb25zdCBkbXNSZWdleCA9IG5ldyBSZWdFeHAoYF4ke2Rtc0Nvb3JkUGF0dGVybn0kYCwgJ2dpJyk7XG5cbiAgY29uc3QgcGF0dGVyblV0bSA9XG4gICAgJyhVVE0pLT8oXFxcXGR7MSwyfSlbXFxcXHMsXSooXFxcXGQrWy4sXT9cXFxcZCspW1xcXFxzLF0rKFxcXFxkK1suLF0/XFxcXGQrKSc7XG4gIGNvbnN0IHV0bVJlZ2V4ID0gbmV3IFJlZ0V4cChgXiR7cGF0dGVyblV0bX1gLCAnZ2knKTtcblxuICBjb25zdCBwYXR0ZXJuTXRtID1cbiAgICAnKE1UTSktPyhcXFxcZHsxLDJ9KVtcXFxccyxdKihcXFxcZCtbLixdP1xcXFxkKylbXFxcXHMsXSsoXFxcXGQrWy4sXT9cXFxcZCspJztcbiAgY29uc3QgbXRtUmVnZXggPSBuZXcgUmVnRXhwKGBeJHtwYXR0ZXJuTXRtfWAsICdnaScpO1xuXG4gIGNvbnN0IGRkQ29vcmQgPSAnKFstK10pPyhcXFxcZHsxLDN9KVssLl0oXFxcXGQrKSc7XG4gIGNvbnN0IHBhdHRlcm5EZCA9IGAke2RkQ29vcmR9XFxcXHMqWyxdP1xcXFxzKiR7ZGRDb29yZH1gO1xuICBjb25zdCBkZFJlZ2V4ID0gbmV3IFJlZ0V4cChgXiR7cGF0dGVybkRkfWAsICdnJyk7XG5cbiAgY29uc3QgZG1kQ29vcmQgPVxuICAgICcoWy0rXSk/KFxcXFxkezEsM30pW1xcXFxzLC5dezF9KFxcXFxkezEsMn0pW1xcXFxzLC5dezF9KFxcXFxkezEsMn0pWy4sXT8oXFxcXGR7MSw1fSk/JztcbiAgY29uc3QgcGF0dGVybkRtZCA9IGAke2RtZENvb3JkfVxcXFxzKlssLl0/XFxcXHMqJHtkbWRDb29yZH1gO1xuICBjb25zdCBkbWRSZWdleCA9IG5ldyBSZWdFeHAoYF4ke3BhdHRlcm5EbWR9YCwgJ2cnKTtcblxuIC8qIGVzbGludC1kaXNhYmxlIG1heC1sZW4gKi9cbiAgY29uc3QgcGF0dGVybkJFTEwgPVxuICAgICdMQVRcXFxccypbXFxcXHM6XSpcXFxccyooWy0rXSk/KFxcXFxkezEsMn0pW1xcXFxzLixdPyhcXFxcZCspP1tcXFxccy4sXT9cXFxccyooXFxcXGR7MSwyfShbLixdXFxcXGQrKT8pP1xcXFxzKihOfFN8RXxXKT9cXFxccypMT05HXFxcXHMqW1xcXFxzOl0qXFxcXHMqKFstK10pPyhcXFxcZHsxLDN9KVtcXFxccy4sXT8oXFxcXGQrKT9bXFxcXHMuLF0/XFxcXHMqKFxcXFxkezEsMn0oWy4sXVxcXFxkKyk/KT9cXFxccyooTnxTfEV8Vyk/XFxcXHMqVU5DXFxcXHMqW1xcXFxzOl0/XFxcXHMqKFxcXFxkKylcXFxccypDT05GXFxcXHMqW1xcXFxzOl0/XFxcXHMqKFxcXFxkezEsM30pJztcbiAgY29uc3QgYmVsbFJlZ2V4ID0gbmV3IFJlZ0V4cChgXiR7cGF0dGVybkJFTEx9P2AsICdnaScpO1xuXG4gIGNvbnN0IG1tQ29vcmQgPSAnKFstK10/XFxcXGQrKVssLl0/KFxcXFxkKyk/JztcbiAgY29uc3QgbW1QYXR0ZXJuID0gYCR7bW1Db29yZH1bXFxcXHMsXSske21tQ29vcmR9YDtcbiAgY29uc3QgbW1SZWdleCA9IG5ldyBSZWdFeHAoYF4ke21tUGF0dGVybn0kYCwgJ2cnKTtcblxuICBsZXQgaXNYWUNvb3JkcyA9IGZhbHNlO1xuXG4gIHN0ciA9IHN0ci50b0xvY2FsZVVwcGVyQ2FzZSgpLnRyaW0oKTtcblxuICAvLyBFeHRyYWN0IHByb2plY3Rpb25cbiAgaWYgKHByb2plY3Rpb25SZWdleC50ZXN0KHN0cikpIHtcbiAgICBbY29vcmRTdHIsIHByb2plY3Rpb25TdHJdID0gc3RyLnNwbGl0KCc7JykubWFwKHMgPT4gcy50cmltKCkpO1xuICB9IGVsc2Uge1xuICAgIGNvb3JkU3RyID0gc3RyO1xuICB9XG4gIGlmIChsb25MYXRSZWdleC50ZXN0KGNvb3JkU3RyKSkge1xuICAgIFtcbiAgICAgICxcbiAgICAgIG5lZ2F0aXZlTG9uLFxuICAgICAgbG9uLFxuICAgICAgLFxuICAgICAgZGVjaW1hbExvbixcbiAgICAgIG5lZ2F0aXZlTGF0LFxuICAgICAgbGF0LFxuICAgICAgLFxuICAgICAgZGVjaW1hbExhdFxuICAgIF0gPSBjb29yZFN0ci5tYXRjaChsb25MYXRQYXR0ZXJuKTtcblxuICAgIGxvbiA9IHBhcnNlRmxvYXQoKG5lZ2F0aXZlTG9uID8gbmVnYXRpdmVMb24gOiAnJykgKyBsb24gKyAnLicgKyBkZWNpbWFsTG9uKTtcbiAgICBsYXQgPSBwYXJzZUZsb2F0KChuZWdhdGl2ZUxhdCA/IG5lZ2F0aXZlTGF0IDogJycpICsgbGF0ICsgJy4nICsgZGVjaW1hbExhdCk7XG4gIH0gZWxzZSBpZiAoZG1zUmVnZXgudGVzdChjb29yZFN0cikpIHtcbiAgICBbXG4gICAgICAsXG4gICAgICBkZWdyZWVzTG9uLFxuICAgICAgbWludXRlc0xvbixcbiAgICAgIHNlY29uZHNMb24sXG4gICAgICBkaXJlY3Rpb25Mb24sXG4gICAgICBkZWdyZWVzTGF0LFxuICAgICAgbWludXRlc0xhdCxcbiAgICAgIHNlY29uZHNMYXQsXG4gICAgICBkaXJlY3Rpb25MYXRcbiAgICBdID0gY29vcmRTdHIubWF0Y2goZG1zQ29vcmRQYXR0ZXJuKTtcblxuICAgIGlmIChkaXJlY3Rpb25Mb24gPT09ICdTJyB8fCBkaXJlY3Rpb25Mb24gPT09ICdOJykge1xuICAgICAgZGVncmVlc0xvbiA9IFtkZWdyZWVzTGF0LCAoZGVncmVlc0xhdCA9IGRlZ3JlZXNMb24pXVswXTtcbiAgICAgIG1pbnV0ZXNMb24gPSBbbWludXRlc0xhdCwgKG1pbnV0ZXNMYXQgPSBtaW51dGVzTG9uKV1bMF07XG4gICAgICBzZWNvbmRzTG9uID0gW3NlY29uZHNMYXQsIChzZWNvbmRzTGF0ID0gc2Vjb25kc0xvbildWzBdO1xuICAgICAgZGlyZWN0aW9uTG9uID0gW2RpcmVjdGlvbkxhdCwgKGRpcmVjdGlvbkxhdCA9IGRpcmVjdGlvbkxvbildWzBdO1xuICAgIH1cblxuICAgIGxvbiA9IGNvbnZlcnRETVNUb0REKFxuICAgICAgcGFyc2VGbG9hdChkZWdyZWVzTG9uKSxcbiAgICAgIHBhcnNlRmxvYXQobWludXRlc0xvbiksXG4gICAgICBwYXJzZUZsb2F0KHNlY29uZHNMb24pLFxuICAgICAgZGlyZWN0aW9uTG9uXG4gICAgKTtcbiAgICBsYXQgPSBjb252ZXJ0RE1TVG9ERChcbiAgICAgIHBhcnNlRmxvYXQoZGVncmVlc0xhdCksXG4gICAgICBwYXJzZUZsb2F0KG1pbnV0ZXNMYXQpLFxuICAgICAgcGFyc2VGbG9hdChzZWNvbmRzTGF0KSxcbiAgICAgIGRpcmVjdGlvbkxhdFxuICAgICk7XG4gIH0gZWxzZSBpZiAodXRtUmVnZXgudGVzdChjb29yZFN0cikpIHtcbiAgICBpc1hZQ29vcmRzID0gdHJ1ZTtcbiAgICBbLCAsIHpvbmUsIGxvbiwgbGF0XSA9IGNvb3JkU3RyLm1hdGNoKHBhdHRlcm5VdG0pO1xuICAgIGNvbnN0IGVwc2dVdG0gPSBOdW1iZXIoem9uZSkgPCAxMCA/IGBFUFNHOjMyNjAke3pvbmV9YCA6IGBFUFNHOjMyNiR7em9uZX1gO1xuICAgIFtsb24sIGxhdF0gPSBvbHByb2oudHJhbnNmb3JtKFxuICAgICAgW3BhcnNlRmxvYXQobG9uKSwgcGFyc2VGbG9hdChsYXQpXSxcbiAgICAgIGVwc2dVdG0sXG4gICAgICAnRVBTRzo0MzI2J1xuICAgICk7XG4gIH0gZWxzZSBpZiAobXRtUmVnZXgudGVzdChjb29yZFN0cikpIHtcbiAgICBpc1hZQ29vcmRzID0gdHJ1ZTtcbiAgICBbLCAsIHpvbmUsIGxvbiwgbGF0XSA9IGNvb3JkU3RyLm1hdGNoKHBhdHRlcm5NdG0pO1xuICAgIGNvbnN0IGVwc2dNdG0gPVxuICAgICAgTnVtYmVyKHpvbmUpIDwgMTAgPyBgRVBTRzozMjE4JHt6b25lfWAgOiBgRVBTRzozMjEkezgwICsgTnVtYmVyKHpvbmUpfWA7XG4gICAgW2xvbiwgbGF0XSA9IG9scHJvai50cmFuc2Zvcm0oXG4gICAgICBbcGFyc2VGbG9hdChsb24pLCBwYXJzZUZsb2F0KGxhdCldLFxuICAgICAgZXBzZ010bSxcbiAgICAgICdFUFNHOjQzMjYnXG4gICAgKTtcbiAgfSBlbHNlIGlmIChkbWRSZWdleC50ZXN0KGNvb3JkU3RyKSkge1xuICAgIFtcbiAgICAgICxcbiAgICAgIG5lZ2F0aXZlTG9uLFxuICAgICAgZGVncmVlc0xvbixcbiAgICAgIG1pbnV0ZXNMb24sXG4gICAgICBzZWNvbmRzTG9uLFxuICAgICAgZGVjaW1hbExvbixcbiAgICAgIG5lZ2F0aXZlTGF0LFxuICAgICAgZGVncmVlc0xhdCxcbiAgICAgIG1pbnV0ZXNMYXQsXG4gICAgICBzZWNvbmRzTGF0LFxuICAgICAgZGVjaW1hbExhdFxuICAgIF0gPSBjb29yZFN0ci5tYXRjaChwYXR0ZXJuRG1kKTtcblxuICAgIGxvbiA9IGNvbnZlcnRETVNUb0REKFxuICAgICAgcGFyc2VGbG9hdCgobmVnYXRpdmVMb24gPyBuZWdhdGl2ZUxvbiA6ICcnKSArIGRlZ3JlZXNMb24pLFxuICAgICAgcGFyc2VGbG9hdChtaW51dGVzTG9uKSxcbiAgICAgIHBhcnNlRmxvYXQoc2Vjb25kc0xvbiksXG4gICAgICBkaXJlY3Rpb25Mb25cbiAgICApO1xuICAgIGxhdCA9IGNvbnZlcnRETVNUb0REKFxuICAgICAgcGFyc2VGbG9hdCgobmVnYXRpdmVMYXQgPyBuZWdhdGl2ZUxhdCA6ICcnKSArIGRlZ3JlZXNMYXQpLFxuICAgICAgcGFyc2VGbG9hdChtaW51dGVzTGF0KSxcbiAgICAgIHBhcnNlRmxvYXQoc2Vjb25kc0xhdCksXG4gICAgICBkaXJlY3Rpb25MYXRcbiAgICApO1xuICB9IGVsc2UgaWYgKGRkUmVnZXgudGVzdChjb29yZFN0cikpIHtcbiAgICBbXG4gICAgICAsXG4gICAgICBuZWdhdGl2ZUxvbixcbiAgICAgIGRlZ3JlZXNMb24sXG4gICAgICBkZWNpbWFsTG9uLFxuICAgICAgbmVnYXRpdmVMYXQsXG4gICAgICBkZWdyZWVzTGF0LFxuICAgICAgZGVjaW1hbExhdFxuICAgIF0gPSBjb29yZFN0ci5tYXRjaChwYXR0ZXJuRGQpO1xuXG4gICAgbG9uID0gY29udmVydERNU1RvREQoXG4gICAgICBwYXJzZUZsb2F0KChuZWdhdGl2ZUxvbiA/IG5lZ2F0aXZlTG9uIDogJycpICsgZGVncmVlc0xvbiksXG4gICAgICBwYXJzZUZsb2F0KG1pbnV0ZXNMb24pLFxuICAgICAgcGFyc2VGbG9hdChzZWNvbmRzTG9uKSxcbiAgICAgIGRpcmVjdGlvbkxvblxuICAgICk7XG4gICAgbGF0ID0gY29udmVydERNU1RvREQoXG4gICAgICBwYXJzZUZsb2F0KChuZWdhdGl2ZUxhdCA/IG5lZ2F0aXZlTGF0IDogJycpICsgZGVncmVlc0xhdCksXG4gICAgICBwYXJzZUZsb2F0KG1pbnV0ZXNMYXQpLFxuICAgICAgcGFyc2VGbG9hdChzZWNvbmRzTGF0KSxcbiAgICAgIGRpcmVjdGlvbkxhdFxuICAgICk7XG4gIH0gZWxzZSBpZiAoYmVsbFJlZ2V4LnRlc3QoY29vcmRTdHIpKSB7XG4gICAgW1xuICAgICAgLFxuICAgICAgbmVnYXRpdmVMYXQsXG4gICAgICBkZWdyZWVzTGF0LFxuICAgICAgbWludXRlc0xhdCxcbiAgICAgIHNlY29uZHNMYXQsXG4gICAgICAsXG4gICAgICBkaXJlY3Rpb25MYXQsXG4gICAgICBuZWdhdGl2ZUxvbixcbiAgICAgIGRlZ3JlZXNMb24sXG4gICAgICBtaW51dGVzTG9uLFxuICAgICAgc2Vjb25kc0xvbixcbiAgICAgICxcbiAgICAgIGRpcmVjdGlvbkxvbixcbiAgICAgIHJhZGl1cyxcbiAgICAgIGNvbmZcbiAgICBdID0gY29vcmRTdHIubWF0Y2gocGF0dGVybkJFTEwpO1xuXG4gICAgLy8gU2V0IGRlZmF1bHQgdmFsdWUgZm9yIE5vcnRoIEFtZXJpY2FcbiAgICBpZiAoIWRpcmVjdGlvbkxvbikge1xuICAgICAgZGlyZWN0aW9uTG9uID0gJ1cnO1xuICAgIH1cblxuICAgIC8vIENoZWNrIGlmIHJlYWwgbWludXRlcyBvciBkZWNpbWFsc1xuICAgIGlmIChtaW51dGVzTG9uICYmIG1pbnV0ZXNMb24ubGVuZ3RoID4gMikge1xuICAgICAgbG9uID0gcGFyc2VGbG9hdChcbiAgICAgICAgKG5lZ2F0aXZlTG9uID8gbmVnYXRpdmVMb24gOiAnJykgKyBkZWdyZWVzTG9uICsgJy4nICsgbWludXRlc0xvblxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbG9uID0gY29udmVydERNU1RvREQoXG4gICAgICAgIHBhcnNlRmxvYXQoZGVncmVlc0xvbiksXG4gICAgICAgIHBhcnNlRmxvYXQobWludXRlc0xvbiksXG4gICAgICAgIHBhcnNlRmxvYXQoc2Vjb25kc0xvbiksXG4gICAgICAgIGRpcmVjdGlvbkxvblxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAobWludXRlc0xhdCAmJiBtaW51dGVzTGF0Lmxlbmd0aCA+IDIpIHtcbiAgICAgIGxhdCA9IHBhcnNlRmxvYXQoXG4gICAgICAgIChuZWdhdGl2ZUxhdCA/IG5lZ2F0aXZlTGF0IDogJycpICsgZGVncmVlc0xhdCArICcuJyArIG1pbnV0ZXNMYXRcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxhdCA9IGNvbnZlcnRETVNUb0REKFxuICAgICAgICBwYXJzZUZsb2F0KGRlZ3JlZXNMYXQpLFxuICAgICAgICBwYXJzZUZsb2F0KG1pbnV0ZXNMYXQpLFxuICAgICAgICBwYXJzZUZsb2F0KHNlY29uZHNMYXQpLFxuICAgICAgICBkaXJlY3Rpb25MYXRcbiAgICAgICk7XG4gICAgfVxuICB9IGVsc2UgaWYgKG1tUmVnZXgudGVzdChjb29yZFN0cikpIHtcbiAgICBpc1hZQ29vcmRzID0gdHJ1ZTtcbiAgICBbLCBsb24sIGRlY2ltYWxMb24sIGxhdCwgZGVjaW1hbExhdF0gPSBjb29yZFN0ci5tYXRjaChtbVBhdHRlcm4pO1xuXG4gICAgaWYgKGRlY2ltYWxMb24pIHtcbiAgICAgIGxvbiA9IHBhcnNlRmxvYXQobG9uICsgJy4nICsgZGVjaW1hbExvbik7XG4gICAgfVxuXG4gICAgaWYgKGRlY2ltYWxMYXQpIHtcbiAgICAgIGxhdCA9IHBhcnNlRmxvYXQobGF0ICsgJy4nICsgZGVjaW1hbExhdCk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIHJldHVybiB7XG4gICAgICBsb25MYXQ6IHVuZGVmaW5lZCxcbiAgICAgIG1lc3NhZ2U6ICcnLFxuICAgICAgcmFkaXVzOiB1bmRlZmluZWQsXG4gICAgICBjb25mOiB1bmRlZmluZWRcbiAgICB9O1xuICB9XG5cbiAgaWYgKG9wdHMuZm9yY2VOQSAmJiAhaXNYWUNvb3Jkcykge1xuICAgIC8vIFNldCBhIG5lZ2F0aXZlIGNvb3JkaW5hdGUgZm9yIE5vcnRoIEFtZXJpY2Egem9uZVxuICAgIGlmIChsb24gPiAwICYmIGxhdCA+IDApIHtcbiAgICAgIGlmIChsb24gPiBsYXQpIHtcbiAgICAgICAgbG9uID0gLWxvbjtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxhdCA9IC1sYXQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gUmV2ZXJzZSBjb29yZGluYXRlIHRvIHJlc3BlY3QgbG9uTGF0IGNvbnZlbnRpb25cbiAgICBpZiAobG9uID4gbGF0KSB7XG4gICAgICBsb24gPSBbbGF0LCAobGF0ID0gbG9uKV1bMF07XG4gICAgfVxuICB9XG5cbiAgbG9uTGF0ID0gW051bWJlcihsb24pLCBOdW1iZXIobGF0KV0gYXMgW251bWJlciwgbnVtYmVyXTtcblxuICAvLyBSZXByb2plY3QgdGhlIGNvb3JkaW5hdGUgaWYgcHJvamVjdGlvbiBwYXJhbWV0ZXIgaGF2ZSBiZWVuIHNldCBhbmQgY29vcmQgaXMgbm90IDQzMjZcbiAgaWYgKFxuICAgIChwcm9qZWN0aW9uU3RyICE9PSB1bmRlZmluZWQgJiYgcHJvamVjdGlvblN0ciAhPT0gdG9Qcm9qZWN0aW9uKSB8fFxuICAgIChsb25MYXRbMF0gPiAxODAgfHwgbG9uTGF0WzBdIDwgLTE4MCkgfHxcbiAgICAobG9uTGF0WzFdID4gOTAgfHwgbG9uTGF0WzFdIDwgLTkwKVxuICApIHtcbiAgICBjb25zdCBzb3VyY2UgPSBwcm9qZWN0aW9uU3RyID8gJ0VQU0c6JyArIHByb2plY3Rpb25TdHIgOiBtYXBQcm9qZWN0aW9uO1xuICAgIGNvbnN0IGRlc3QgPSAnRVBTRzonICsgdG9Qcm9qZWN0aW9uO1xuXG4gICAgdHJ5IHtcbiAgICAgIGxvbkxhdCA9IG9scHJvai50cmFuc2Zvcm0obG9uTGF0LCBzb3VyY2UsIGRlc3QpIGFzIFtudW1iZXIsIG51bWJlcl07XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbG9uTGF0OiB1bmRlZmluZWQsXG4gICAgICAgIG1lc3NhZ2U6ICdQcm9qZWN0aW9uICcgKyBzb3VyY2UgKyAnIG5vdCBzdXBwb3J0ZWQnLFxuICAgICAgICByYWRpdXM6IHVuZGVmaW5lZCxcbiAgICAgICAgY29uZjogdW5kZWZpbmVkXG4gICAgICB9O1xuICAgIH1cbiAgfVxuICBpZiAoTWF0aC5hYnMobG9uTGF0WzBdKSA8PSAxODAgJiYgTWF0aC5hYnMobG9uTGF0WzFdKSA8PSA5MCkge1xuICAgIHJldHVybiB7XG4gICAgICBsb25MYXQsXG4gICAgICBtZXNzYWdlOiAnJyxcbiAgICAgIHJhZGl1czogcmFkaXVzID8gcGFyc2VJbnQocmFkaXVzLCAxMCkgOiB1bmRlZmluZWQsXG4gICAgICBjb25mOiBjb25mID8gcGFyc2VJbnQoY29uZiwgMTApIDogdW5kZWZpbmVkXG4gICAgfTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4ge1xuICAgICAgbG9uTGF0OiB1bmRlZmluZWQsXG4gICAgICBtZXNzYWdlOiAnQ29vcmRpbmF0ZSBvdXQgb2YgTG9uZ2l0dWRlL0xhdGl0dWRlIGJvdW5kcycsXG4gICAgICByYWRpdXM6IHVuZGVmaW5lZCxcbiAgICAgIGNvbmY6IHVuZGVmaW5lZFxuICAgIH07XG4gIH1cbn1cblxuLyoqXG4gKiBDb252ZXJ0IGRlZ3JlZXMgbWludXRlcyBzZWNvbmRzIHRvIGRkXG4gKiBAcGFyYW0gZGVncmVlcyBEZWdyZWVzXG4gKiBAcGFyYW0gbWludXRlcyBNaW51dGVzXG4gKiBAcGFyYW0gc2Vjb25kcyBTZWNvbmRzXG4gKiBAcGFyYW0gZGlyZWN0aW9uIERpcmVjdGlvblxuICovXG5mdW5jdGlvbiBjb252ZXJ0RE1TVG9ERChcbiAgZGVncmVlczogbnVtYmVyLFxuICBtaW51dGVzOiBudW1iZXIsXG4gIHNlY29uZHM6IG51bWJlcixcbiAgZGlyZWN0aW9uOiBzdHJpbmdcbikge1xuICBtaW51dGVzID0gbWludXRlcyB8fCAwO1xuICBzZWNvbmRzID0gc2Vjb25kcyB8fCAwO1xuXG4gIGNvbnN0IG5lZyA9IGRlZ3JlZXMgPCAwO1xuICBsZXQgZGQgPSBNYXRoLmFicyhkZWdyZWVzKSArIG1pbnV0ZXMgLyA2MCArIHNlY29uZHMgLyAzNjAwO1xuXG4gIGlmIChuZWcgfHwgZGlyZWN0aW9uID09PSAnUycgfHwgZGlyZWN0aW9uID09PSAnVycpIHtcbiAgICBkZCA9IC1kZDtcbiAgfSAvLyBEb24ndCBkbyBhbnl0aGluZyBmb3IgTiBvciBFXG4gIHJldHVybiBkZDtcbn1cblxuLyoqXG4gKiBDb252ZXJ0IGRkIHRvIGRlZ3JlZXMgbWludXRlcyBzZWNvbmRzXG4gKiBAcGFyYW0gbG9uTGF0REQgbG9uZ2l0dWRlIGFuZCBsYXRpdHVkZSBpbiBkZFxuICogQHBhcmFtIGRlY2ltYWwgbnVtYmVyIG9mIGRlY2ltYWxzIGZvciBzZWNvbmRzXG4gKiBAcmV0dXJucyBsb25naXR1ZGUgYW5kIGxhdGl0dWRlIGluIGRtc1xuICovXG5leHBvcnQgZnVuY3Rpb24gY29udmVydEREVG9ETVMoXG4gIGxvbkxhdEREOiBbbnVtYmVyLCBudW1iZXJdLCBkZWNpbWFsOiBudW1iZXIgPSAzXG4pOiBzdHJpbmdbXSB7XG4gIGNvbnN0IGxvbkxhdERNUyA9IFtdO1xuXG4gIGxvbkxhdERELmZvckVhY2goZGQgPT4ge1xuICAgIGNvbnN0IGRlZ3JlZXMgPSBkZCA8IDAgPyBNYXRoLmNlaWwoZGQpIDogTWF0aC5mbG9vcihkZCk7XG4gICAgY29uc3QgaW50ID0gZGQgPCAwID8gKGRlZ3JlZXMgLSBkZCkgKiA2MCA6IChkZCAtIGRlZ3JlZXMpICogNjA7XG4gICAgY29uc3QgbWludXRlcyA9IE1hdGguZmxvb3IoaW50KTtcbiAgICBjb25zdCBzZWNvbmRzID0gKChpbnQgLSBtaW51dGVzKSAqIDYwKS50b0ZpeGVkKGRlY2ltYWwpO1xuXG4gICAgbG9uTGF0RE1TLnB1c2goYCR7ZGVncmVlc33CsCAke21pbnV0ZXN9JyAke3NlY29uZHN9XCJgKTtcbiAgfSk7XG4gIHJldHVybiBsb25MYXRETVM7XG59XG5cbi8qKlxuICogUmV0dXJuIHRydWUgb2YgdHdvIHZpZXcgc3RhdGVzIGFyZSBlcXVhbC5cbiAqIEBwYXJhbSBzdGF0ZTEgVmlldyBzdGF0ZVxuICogQHBhcmFtIHN0YXRlMiBWaWV3IHN0YXRlXG4gKiBAcmV0dXJucyBUcnVlIGlmIHRoZSB2aWV3IHN0YXRlcyBhcmUgZXF1YWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZpZXdTdGF0ZXNBcmVFcXVhbChcbiAgc3RhdGUxOiBNYXBWaWV3U3RhdGUsXG4gIHN0YXRlMjogTWFwVmlld1N0YXRlXG4pOiBib29sZWFuIHtcbiAgaWYgKHN0YXRlMSA9PT0gdW5kZWZpbmVkIHx8IHN0YXRlMiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgY29uc3QgdG9sZXJhbmNlID0gMSAvIDEwMDAwO1xuICByZXR1cm4gKFxuICAgIHN0YXRlMS56b29tID09PSBzdGF0ZTIuem9vbSAmJlxuICAgIE1hdGgudHJ1bmMoc3RhdGUxLmNlbnRlclswXSAvIHRvbGVyYW5jZSkgPT09XG4gICAgICBNYXRoLnRydW5jKHN0YXRlMi5jZW50ZXJbMF0gLyB0b2xlcmFuY2UpICYmXG4gICAgTWF0aC50cnVuYyhzdGF0ZTEuY2VudGVyWzFdIC8gdG9sZXJhbmNlKSA9PT1cbiAgICAgIE1hdGgudHJ1bmMoc3RhdGUyLmNlbnRlclsxXSAvIHRvbGVyYW5jZSlcbiAgKTtcbn1cblxuLyoqXG4gKiBGb3JtYXQgdGhlIHNjYWxlIHRvIGEgaHVtYW4gcmVhZGFibGUgdGV4dFxuICogQHBhcmFtIFNjYWxlIG9mIHRoZSBtYXBcbiAqIEByZXR1cm5zIEh1bWFuIHJlYWRhYmxlIHNjYWxlIHRleHRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdFNjYWxlKHNjYWxlKSB7XG4gIHNjYWxlID0gTWF0aC5yb3VuZChzY2FsZSk7XG4gIGlmIChzY2FsZSA8IDEwMDAwKSB7XG4gICAgcmV0dXJuIHNjYWxlICsgJyc7XG4gIH1cblxuICBzY2FsZSA9IE1hdGgucm91bmQoc2NhbGUgLyAxMDAwKTtcbiAgaWYgKHNjYWxlIDwgMTAwMCkge1xuICAgIHJldHVybiBzY2FsZSArICdLJztcbiAgfVxuXG4gIHNjYWxlID0gTWF0aC5yb3VuZChzY2FsZSAvIDEwMDApO1xuICByZXR1cm4gc2NhbGUgKyAnTSc7XG59XG5cbi8qKlxuICogUmV0dXJuIHRoZSByZXNvbHV0aW9uIGZyb20gYSBzY2FsZSBkZW5vbVxuICogQHBhcmFtIHNjYWxlIFNjYWxlIGRlbm9tXG4gKiBAcGFyYW0gZHBpIERQSVxuICogQHJldHVybnMgUmVzb2x1dGlvblxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVzb2x1dGlvbkZyb21TY2FsZShcbiAgc2NhbGU6IG51bWJlcixcbiAgZHBpOiBudW1iZXIgPSA5NlxuKTogbnVtYmVyIHtcbiAgY29uc3QgaW5jaGVzUGVyTWV0ZXIgPSAzOS4zNzAxO1xuICByZXR1cm4gc2NhbGUgLyAoaW5jaGVzUGVyTWV0ZXIgKiBkcGkpO1xufVxuXG4vKipcbiAqIFJldHVybiB0aGUgcmVzb2x1dGlvbiBmcm9tIGEgc2NhbGUgZGVub21cbiAqIEBwYXJhbSBTY2FsZSBkZW5vbVxuICogQHJldHVybnMgUmVzb2x1dGlvblxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2NhbGVGcm9tUmVzb2x1dGlvbihcbiAgcmVzb2x1dGlvbjogbnVtYmVyLFxuICB1bml0OiBzdHJpbmcgPSAnbScsXG4gIGRwaTogbnVtYmVyID0gOTZcbik6IG51bWJlciB7XG4gIGNvbnN0IGluY2hlc1Blck1ldGVyID0gMzkuMzcwMTtcbiAgcmV0dXJuIHJlc29sdXRpb24gKiBvbHByb2ouTUVURVJTX1BFUl9VTklUW3VuaXRdICogaW5jaGVzUGVyTWV0ZXIgKiBkcGk7XG59XG5cbi8qKlxuICogUmV0dXJucyB0cnVlIGlmIHRoZSBDVFJMIGtleSBpcyBwdXNoZWQgZHVyaW5nIGFuIE9sIE1hcEJyb3dzZXJQb2ludGVyRXZlbnRcbiAqIEBwYXJhbSBldmVudCBPTCBNYXBCcm93c2VyUG9pbnRlckV2ZW50XG4gKiBAcmV0dXJucyBXaGV0aGVyIHRoZSBDVFJMIGtleSBpcyBwdXNoZWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGN0cmxLZXlEb3duKGV2ZW50OiBNYXBCcm93c2VyUG9pbnRlckV2ZW50PGFueT4pOiBib29sZWFuIHtcbiAgY29uc3Qgb3JpZ2luYWxFdmVudCA9IGV2ZW50Lm9yaWdpbmFsRXZlbnQ7XG4gIHJldHVybiAoXG4gICAgIW9yaWdpbmFsRXZlbnQuYWx0S2V5ICYmXG4gICAgKE1BQyA/IG9yaWdpbmFsRXZlbnQubWV0YUtleSA6IG9yaWdpbmFsRXZlbnQuY3RybEtleSkgJiZcbiAgICAhb3JpZ2luYWxFdmVudC5zaGlmdEtleVxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcm91bmRDb29yZFRvKGNvb3JkOiBbbnVtYmVyLCBudW1iZXJdLCBkZWNpbWFsOiBudW1iZXIgPSAzKTogW251bWJlciwgbnVtYmVyXSB7XG4gIHJldHVybiBbXG4gICAgTnVtYmVyVXRpbHMucm91bmRUb05EZWNpbWFsKGNvb3JkWzBdLCBkZWNpbWFsKSxcbiAgICBOdW1iZXJVdGlscy5yb3VuZFRvTkRlY2ltYWwoY29vcmRbMV0sIGRlY2ltYWwpXSBhcyBbbnVtYmVyLCBudW1iZXJdO1xufVxuXG4vKipcbiAqIFJldHVybnMgYW4gYXJyYXkgb2YgY29udmVydGVkIGNvb3JkaW5hdGVzLlxuICogQ29udmVyc2lvbiBpcyBkb25lIGZvciBldmVyeSBjb25maWd1cmVkIHByb2plY3Rpb25zXG4gKiBhbmQgZm9yIHRoZSBjdXJyZW50IFVUTSB6b25lIGFuZCBNVE0gem9uZS5cbiAqIEBwYXJhbSBsb25MYXQgW251bWJlciwgbnVtYmVyXSBhcnJheSBvZiB0aGUgY29vcmRpbmF0ZSB0byB0cmFuc2Zvcm0uXG4gKiBAcGFyYW0gcHJvamVjdGlvbnMgIFByb2plY3Rpb25bXSBBcnJheSBvZiBkZXN0aW5hdGlvbiBwcm9qZWN0aW9uLlxuICogQHJldHVybnMgUmV0dXJucyBhbiBhcnJheSBvZiBjb252ZXJ0ZWQgY29vcmRpbmF0ZXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBsb25MYXRDb252ZXJzaW9uKFxuICBsb25MYXQ6IFtudW1iZXIsIG51bWJlcl0sXG4gIHByb2plY3Rpb25zOiBQcm9qZWN0aW9uW11cbik6IHtcbiAgY29kZTogc3RyaW5nO1xuICBhbGlhczogc3RyaW5nO1xuICBjb29yZDogW251bWJlciwgbnVtYmVyXTtcbiAgaWdvMkNvb3JkRm9ybWF0OiBzdHJpbmc7XG59W10ge1xuICBjb25zdCByYXdDb29yZDM4NTcgPSBvbHByb2oudHJhbnNmb3JtKGxvbkxhdCwgJ0VQU0c6NDMyNicsICdFUFNHOjM4NTcnKSBhcyBbbnVtYmVyLCBudW1iZXJdO1xuICBjb25zdCBjb252ZXJ0ZWRMb25MYXQgPSBbXG4gICAge1xuICAgICAgY29kZTogJ0VQU0c6Mzg1NycsXG4gICAgICBhbGlhczogJ1dlYiBNZXJjYXRvcicsXG4gICAgICBjb29yZDogcmF3Q29vcmQzODU3LFxuICAgICAgaWdvMkNvb3JkRm9ybWF0OiBgJHtyb3VuZENvb3JkVG8ocmF3Q29vcmQzODU3KS5qb2luKCcsICcpfSA7IDM4NTdgXG4gICAgfVxuICBdO1xuXG4gIC8vIGRldGVjdCB0aGUgY3VycmVudCB1dG0gem9uZS5cbiAgY29uc3QgdXRtWm9uZSA9IHV0bVpvbmVGcm9tTG9uTGF0KGxvbkxhdCk7XG4gIGNvbnN0IGVwc2dVdG0gPSB1dG1ab25lIDwgMTAgPyBgRVBTRzozMjYwJHt1dG1ab25lfWAgOiBgRVBTRzozMjYke3V0bVpvbmV9YDtcbiAgY29uc3QgdXRtTmFtZSA9IGBVVE0tJHt1dG1ab25lfWA7XG4gIGNvbnN0IHJhd0Nvb3JkVXRtID0gb2xwcm9qLnRyYW5zZm9ybShsb25MYXQsICdFUFNHOjQzMjYnLCBlcHNnVXRtKSBhcyBbbnVtYmVyLCBudW1iZXJdO1xuICBjb252ZXJ0ZWRMb25MYXQucHVzaCh7XG4gICAgY29kZTogZXBzZ1V0bSxcbiAgICBhbGlhczogJ1VUTScsXG4gICAgY29vcmQ6IHJhd0Nvb3JkVXRtLFxuICAgIGlnbzJDb29yZEZvcm1hdDogYCR7dXRtTmFtZX0gJHtyb3VuZENvb3JkVG8ocmF3Q29vcmRVdG0pLmpvaW4oJywgJyl9YFxuICB9KTtcblxuICAvLyBkZXRlY3QgdGhlIGN1cnJlbnQgbXRtIHpvbmUuXG4gIGNvbnN0IG10bVpvbmUgPSBtdG1ab25lRnJvbUxvbkxhdChsb25MYXQpO1xuICBpZiAobXRtWm9uZSkge1xuICAgIGNvbnN0IGVwc2dNdG0gPVxuICAgICAgbXRtWm9uZSA8IDEwID8gYEVQU0c6MzIxOCR7bXRtWm9uZX1gIDogYEVQU0c6MzIxJHs4MCArIG10bVpvbmV9YDtcbiAgICBjb25zdCBtdG1OYW1lID0gYE1UTS0ke210bVpvbmV9YDtcbiAgICBjb25zdCByYXdDb29yZE10bSA9IG9scHJvai50cmFuc2Zvcm0obG9uTGF0LCAnRVBTRzo0MzI2JywgZXBzZ010bSkgYXMgW251bWJlciwgbnVtYmVyXTtcbiAgICBjb252ZXJ0ZWRMb25MYXQucHVzaCh7XG4gICAgICBjb2RlOiBlcHNnTXRtLFxuICAgICAgYWxpYXM6ICdNVE0nLFxuICAgICAgY29vcmQ6IHJhd0Nvb3JkTXRtLFxuICAgICAgaWdvMkNvb3JkRm9ybWF0OiBgJHttdG1OYW1lfSAke3JvdW5kQ29vcmRUbyhyYXdDb29yZE10bSkuam9pbignLCAnKX1gXG4gICAgfSk7XG4gIH1cblxuICBwcm9qZWN0aW9ucy5mb3JFYWNoKHByb2plY3Rpb24gPT4ge1xuICAgIGNvbnN0IHJhd0Nvb3JkID0gb2xwcm9qLnRyYW5zZm9ybShsb25MYXQsICdFUFNHOjQzMjYnLCBwcm9qZWN0aW9uLmNvZGUpIGFzIFtudW1iZXIsIG51bWJlcl07XG4gICAgY29uc3QgbnVtZXJpY0Vwc2dDb2RlID0gcHJvamVjdGlvbi5jb2RlLnNwbGl0KCc6JylbMV07XG4gICAgY29udmVydGVkTG9uTGF0LnB1c2goe1xuICAgICAgY29kZTogcHJvamVjdGlvbi5jb2RlLFxuICAgICAgYWxpYXM6IHByb2plY3Rpb24uYWxpYXMgfHwgcHJvamVjdGlvbi5jb2RlLFxuICAgICAgY29vcmQ6IHJhd0Nvb3JkLFxuICAgICAgaWdvMkNvb3JkRm9ybWF0OiBgJHtyb3VuZENvb3JkVG8ocmF3Q29vcmQpLmpvaW4oXG4gICAgICAgICcsICdcbiAgICAgICl9IDsgJHtudW1lcmljRXBzZ0NvZGV9YFxuICAgIH0pO1xuICB9KTtcblxuICByZXR1cm4gY29udmVydGVkTG9uTGF0O1xufVxuXG4vKipcbiAqIERldGVjdCB0aGUgY3VycmVudCB1dG0gem9uZSBvZiB0aGUgbG9uL2xhdCBjb29yZGluYXRlLlxuICogQHBhcmFtIGxvbkxhdCBbbnVtYmVyLCBudW1iZXJdIGFycmF5IG9mIHRoZSBjb29yZGluYXRlIHRvIGRldGVjdCB0aGUgVVRNIHpvbmUuXG4gKiBAcmV0dXJucyBudW1iZXIgVGhlIFVUTSB6b25lLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdXRtWm9uZUZyb21Mb25MYXQobG9uTGF0OiBbbnVtYmVyLCBudW1iZXJdKSB7XG4gIHJldHVybiBNYXRoLmNlaWwoKGxvbkxhdFswXSArIDE4MCkgLyA2KTtcbn1cblxuLyoqXG4gKiBEZXRlY3QgdGhlIGN1cnJlbnQgbXRtIHpvbmUgb2YgdGhlIGxvbi9sYXQgY29vcmRpbmF0ZS5cbiAqIEBwYXJhbSBsb25MYXQgW251bWJlciwgbnVtYmVyXSBhcnJheSBvZiB0aGUgY29vcmRpbmF0ZSB0byBkZXRlY3QgdGhlIE1UTSB6b25lLlxuICogQHJldHVybnMgbnVtYmVyIFRoZSBNVE0gem9uZS4gVW5kZWZpbmVkIGlmIG91dHNpZGUgb2YgdGhlIG10bSBhcHBsaWNhdGlvbiB6b25lLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbXRtWm9uZUZyb21Mb25MYXQobG9uTGF0OiBbbnVtYmVyLCBudW1iZXJdKSB7XG4gIGNvbnN0IGxvbmcgPSBsb25MYXRbMF07XG4gIGxldCBtdG1ab25lO1xuICBpZiAobG9uZyA8IC01MSAmJiBsb25nID4gLTU0KSB7XG4gICAgbXRtWm9uZSA9IDE7XG4gIH1cbiAgaWYgKGxvbmcgPCAtNTQgJiYgbG9uZyA+IC01Nykge1xuICAgIG10bVpvbmUgPSAyO1xuICB9XG4gIGlmIChsb25nIDwgLTU3ICYmIGxvbmcgPiAtNjApIHtcbiAgICBtdG1ab25lID0gMztcbiAgfVxuICBpZiAobG9uZyA8IC02MCAmJiBsb25nID4gLTYzKSB7XG4gICAgbXRtWm9uZSA9IDQ7XG4gIH1cbiAgaWYgKGxvbmcgPCAtNjMgJiYgbG9uZyA+IC02Nikge1xuICAgIG10bVpvbmUgPSA1O1xuICB9XG4gIGlmIChsb25nIDwgLTY2ICYmIGxvbmcgPiAtNjkpIHtcbiAgICBtdG1ab25lID0gNjtcbiAgfVxuICBpZiAobG9uZyA8IC02OSAmJiBsb25nID4gLTcyKSB7XG4gICAgbXRtWm9uZSA9IDc7XG4gIH1cbiAgaWYgKGxvbmcgPCAtNzIgJiYgbG9uZyA+IC03NSkge1xuICAgIG10bVpvbmUgPSA4O1xuICB9XG4gIGlmIChsb25nIDwgLTc1ICYmIGxvbmcgPiAtNzgpIHtcbiAgICBtdG1ab25lID0gOTtcbiAgfVxuICBpZiAobG9uZyA8IC03OCAmJiBsb25nID4gLTgxKSB7XG4gICAgbXRtWm9uZSA9IDEwO1xuICB9XG4gIHJldHVybiBtdG1ab25lO1xufVxuIl19
@@ -62,4 +62,4 @@ ProjectionService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: Projec
62
62
  providedIn: 'root'
63
63
  }]
64
64
  }], function () { return [{ type: i1.ConfigService }]; }, null); })();
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVjdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvbWFwL3NoYXJlZC9wcm9qZWN0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxLQUFLLE1BQU0sTUFBTSxTQUFTLENBQUM7QUFDbEMsT0FBTyxLQUFLLE9BQU8sTUFBTSxlQUFlLENBQUM7OztBQU16Qzs7OztHQUlHO0FBSUgsTUFBTSxPQUFPLGlCQUFpQjtJQUU1QixZQUFvQixNQUFxQjtRQUFyQixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ3ZDLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUMvRCxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsVUFBc0IsRUFBRSxFQUFFO1lBQzdDLFVBQVUsQ0FBQyxLQUFLLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQztZQUN6RSxJQUFJLENBQUMsa0JBQWtCLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDdEMsQ0FBQyxDQUFDLENBQUM7UUFFSCx5QkFBeUI7UUFDekIsS0FBSyxJQUFJLE9BQU8sR0FBRyxDQUFDLEVBQUUsT0FBTyxHQUFHLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRTtZQUM3QyxNQUFNLElBQUksR0FBRyxPQUFPLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxZQUFZLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLE9BQU8sRUFBRSxDQUFDO1lBQ3pFLE1BQU0sR0FBRyxHQUFHLG1CQUFtQixPQUFPLGlDQUFpQyxDQUFDO1lBQ3hFLE1BQU0sSUFBSSxHQUFlLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUcsU0FBUyxFQUFDLENBQUM7WUFDMUQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO1NBQy9CO1FBRUQseUJBQXlCO1FBQ3pCLEtBQUssSUFBSSxPQUFPLEdBQUcsQ0FBQyxFQUFFLE9BQU8sR0FBRyxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUU7WUFDN0MsTUFBTSxJQUFJLEdBQUcsT0FBTyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEdBQUcsT0FBTyxFQUFFLENBQUM7WUFDOUUsSUFBSSxJQUFJLENBQUM7WUFDVCxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ3hCLElBQUksR0FBRyxDQUFDLEVBQUUsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ2xDO2lCQUFNLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRTtnQkFDaEMsSUFBSSxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUN6QztpQkFBTTtnQkFDTCxJQUFJLEdBQUcsQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUNwQztZQUNELE1BQU0sR0FBRyxHQUFHLCtCQUErQixJQUFJLHNGQUFzRixDQUFDO1lBQ3RJLE1BQU0sSUFBSSxHQUFlLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUcsU0FBUyxFQUFDLENBQUM7WUFDMUQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO1NBQy9CO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNILGtCQUFrQixDQUFDLFVBQXNCO1FBQ3ZDLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDNUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4QixJQUFJLFVBQVUsQ0FBQyxNQUFNLEVBQUU7WUFDckIsTUFBTSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUMxRDtJQUNILENBQUM7O2tGQTVDVSxpQkFBaUI7dUVBQWpCLGlCQUFpQixXQUFqQixpQkFBaUIsbUJBRmhCLE1BQU07dUZBRVAsaUJBQWlCO2NBSDdCLFVBQVU7ZUFBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCBwcm9qNCBmcm9tICdwcm9qNCc7XHJcbmltcG9ydCAqIGFzIG9scHJvaiBmcm9tICdvbC9wcm9qJztcclxuaW1wb3J0ICogYXMgb2xwcm9qNCBmcm9tICdvbC9wcm9qL3Byb2o0JztcclxuXHJcbmltcG9ydCB7IENvbmZpZ1NlcnZpY2UgfSBmcm9tICdAaWdvMi9jb3JlJztcclxuXHJcbmltcG9ydCB7IFByb2plY3Rpb24gfSBmcm9tICcuL3Byb2plY3Rpb24uaW50ZXJmYWNlcyc7XHJcblxyXG4vKipcclxuICogV2hlbiBpbmplY3RlZCwgdGhpcyBzZXJ2aWNlIGF1dG9tYXRpY2FsbHkgcmVnaXN0ZXJzIGFuZFxyXG4gKiBwcm9qZWN0aW9uIGRlZmluZWQgaW4gdGhlIGFwcGxpY2F0aW9uIGNvbmZpZy4gQSBjdXN0b20gcHJvamVjdGlvblxyXG4gKiBuZWVkcyB0byBiZSByZWdpc3RlcmVkIHRvIGJlIHVzYWJsZSBieSBPTC5cclxuICovXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFByb2plY3Rpb25TZXJ2aWNlIHtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjb25maWc6IENvbmZpZ1NlcnZpY2UpIHtcclxuICAgIGNvbnN0IHByb2plY3Rpb25zID0gdGhpcy5jb25maWcuZ2V0Q29uZmlnKCdwcm9qZWN0aW9ucycpIHx8IFtdO1xyXG4gICAgcHJvamVjdGlvbnMuZm9yRWFjaCgocHJvamVjdGlvbjogUHJvamVjdGlvbikgPT4ge1xyXG4gICAgICBwcm9qZWN0aW9uLmFsaWFzID0gcHJvamVjdGlvbi5hbGlhcyA/IHByb2plY3Rpb24uYWxpYXMgOiBwcm9qZWN0aW9uLmNvZGU7XHJcbiAgICAgIHRoaXMucmVnaXN0ZXJQcm9qZWN0aW9uKHByb2plY3Rpb24pO1xyXG4gICAgfSk7XHJcblxyXG4gICAgLy8gcmVnaXN0ZXIgYWxsIHV0bSB6b25lc1xyXG4gICAgZm9yIChsZXQgdXRtWm9uZSA9IDE7IHV0bVpvbmUgPCA2MTsgdXRtWm9uZSsrKSB7XHJcbiAgICAgIGNvbnN0IGNvZGUgPSB1dG1ab25lIDwgMTAgPyBgRVBTRzozMjYwJHt1dG1ab25lfWAgOiBgRVBTRzozMjYke3V0bVpvbmV9YDtcclxuICAgICAgY29uc3QgZGVmID0gYCtwcm9qPXV0bSArem9uZT0ke3V0bVpvbmV9ICtkYXR1bT1XR1M4NCArdW5pdHM9bSArbm9fZGVmc2A7XHJcbiAgICAgIGNvbnN0IHByb2o6IFByb2plY3Rpb24gPSB7IGNvZGUsIGRlZiwgZXh0ZW50IDogdW5kZWZpbmVkfTtcclxuICAgICAgdGhpcy5yZWdpc3RlclByb2plY3Rpb24ocHJvaik7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gcmVnaXN0ZXIgYWxsIG10bSB6b25lc1xyXG4gICAgZm9yIChsZXQgbXRtWm9uZSA9IDE7IG10bVpvbmUgPCAxMTsgbXRtWm9uZSsrKSB7XHJcbiAgICAgIGNvbnN0IGNvZGUgPSBtdG1ab25lIDwgMTAgPyBgRVBTRzozMjE4JHttdG1ab25lfWAgOiBgRVBTRzozMjEkezgwICsgbXRtWm9uZX1gO1xyXG4gICAgICBsZXQgbG9uMDtcclxuICAgICAgaWYgKE51bWJlcihtdG1ab25lKSA8PSAyKSB7XHJcbiAgICAgICAgbG9uMCA9IC01MCAtIE51bWJlcihtdG1ab25lKSAqIDM7XHJcbiAgICAgIH0gZWxzZSBpZiAoTnVtYmVyKG10bVpvbmUpID49IDEyKSB7XHJcbiAgICAgICAgbG9uMCA9IC04MSAtIChOdW1iZXIobXRtWm9uZSkgLSAxMikgKiAzO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGxvbjAgPSAtNDkuNSAtIE51bWJlcihtdG1ab25lKSAqIDM7XHJcbiAgICAgIH1cclxuICAgICAgY29uc3QgZGVmID0gYCtwcm9qPXRtZXJjICtsYXRfMD0wICtsb25fMD0ke2xvbjB9ICtrPTAuOTk5OSAreF8wPTMwNDgwMCAreV8wPTAgK2VsbHBzPUdSUzgwICt0b3dnczg0PTAsMCwwLDAsMCwwLDAgK3VuaXRzPW0gK25vX2RlZnNcImA7XHJcbiAgICAgIGNvbnN0IHByb2o6IFByb2plY3Rpb24gPSB7IGNvZGUsIGRlZiwgZXh0ZW50IDogdW5kZWZpbmVkfTtcclxuICAgICAgdGhpcy5yZWdpc3RlclByb2plY3Rpb24ocHJvaik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEZWZpbmUgYSBwcm9qNCBwcm9qZWN0aW9uIGFuZCByZWdpc3RlciBpdCBpbiBPTFxyXG4gICAqIEBwYXJhbSBwcm9qZWN0aW9uIFByb2plY3Rpb25cclxuICAgKi9cclxuICByZWdpc3RlclByb2plY3Rpb24ocHJvamVjdGlvbjogUHJvamVjdGlvbikge1xyXG4gICAgcHJvajQuZGVmcyhwcm9qZWN0aW9uLmNvZGUsIHByb2plY3Rpb24uZGVmKTtcclxuICAgIG9scHJvajQucmVnaXN0ZXIocHJvajQpO1xyXG4gICAgaWYgKHByb2plY3Rpb24uZXh0ZW50KSB7XHJcbiAgICAgIG9scHJvai5nZXQocHJvamVjdGlvbi5jb2RlKS5zZXRFeHRlbnQocHJvamVjdGlvbi5leHRlbnQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbn1cclxuIl19
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVjdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvbWFwL3NoYXJlZC9wcm9qZWN0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxLQUFLLE1BQU0sTUFBTSxTQUFTLENBQUM7QUFDbEMsT0FBTyxLQUFLLE9BQU8sTUFBTSxlQUFlLENBQUM7OztBQU16Qzs7OztHQUlHO0FBSUgsTUFBTSxPQUFPLGlCQUFpQjtJQUU1QixZQUFvQixNQUFxQjtRQUFyQixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ3ZDLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUMvRCxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsVUFBc0IsRUFBRSxFQUFFO1lBQzdDLFVBQVUsQ0FBQyxLQUFLLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQztZQUN6RSxJQUFJLENBQUMsa0JBQWtCLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDdEMsQ0FBQyxDQUFDLENBQUM7UUFFSCx5QkFBeUI7UUFDekIsS0FBSyxJQUFJLE9BQU8sR0FBRyxDQUFDLEVBQUUsT0FBTyxHQUFHLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRTtZQUM3QyxNQUFNLElBQUksR0FBRyxPQUFPLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxZQUFZLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLE9BQU8sRUFBRSxDQUFDO1lBQ3pFLE1BQU0sR0FBRyxHQUFHLG1CQUFtQixPQUFPLGlDQUFpQyxDQUFDO1lBQ3hFLE1BQU0sSUFBSSxHQUFlLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUcsU0FBUyxFQUFDLENBQUM7WUFDMUQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO1NBQy9CO1FBRUQseUJBQXlCO1FBQ3pCLEtBQUssSUFBSSxPQUFPLEdBQUcsQ0FBQyxFQUFFLE9BQU8sR0FBRyxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUU7WUFDN0MsTUFBTSxJQUFJLEdBQUcsT0FBTyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEdBQUcsT0FBTyxFQUFFLENBQUM7WUFDOUUsSUFBSSxJQUFJLENBQUM7WUFDVCxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ3hCLElBQUksR0FBRyxDQUFDLEVBQUUsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ2xDO2lCQUFNLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRTtnQkFDaEMsSUFBSSxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUN6QztpQkFBTTtnQkFDTCxJQUFJLEdBQUcsQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUNwQztZQUNELE1BQU0sR0FBRyxHQUFHLCtCQUErQixJQUFJLHNGQUFzRixDQUFDO1lBQ3RJLE1BQU0sSUFBSSxHQUFlLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUcsU0FBUyxFQUFDLENBQUM7WUFDMUQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO1NBQy9CO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNILGtCQUFrQixDQUFDLFVBQXNCO1FBQ3ZDLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDNUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4QixJQUFJLFVBQVUsQ0FBQyxNQUFNLEVBQUU7WUFDckIsTUFBTSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUMxRDtJQUNILENBQUM7O2tGQTVDVSxpQkFBaUI7dUVBQWpCLGlCQUFpQixXQUFqQixpQkFBaUIsbUJBRmhCLE1BQU07dUZBRVAsaUJBQWlCO2NBSDdCLFVBQVU7ZUFBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHByb2o0IGZyb20gJ3Byb2o0JztcbmltcG9ydCAqIGFzIG9scHJvaiBmcm9tICdvbC9wcm9qJztcbmltcG9ydCAqIGFzIG9scHJvajQgZnJvbSAnb2wvcHJvai9wcm9qNCc7XG5cbmltcG9ydCB7IENvbmZpZ1NlcnZpY2UgfSBmcm9tICdAaWdvMi9jb3JlJztcblxuaW1wb3J0IHsgUHJvamVjdGlvbiB9IGZyb20gJy4vcHJvamVjdGlvbi5pbnRlcmZhY2VzJztcblxuLyoqXG4gKiBXaGVuIGluamVjdGVkLCB0aGlzIHNlcnZpY2UgYXV0b21hdGljYWxseSByZWdpc3RlcnMgYW5kXG4gKiBwcm9qZWN0aW9uIGRlZmluZWQgaW4gdGhlIGFwcGxpY2F0aW9uIGNvbmZpZy4gQSBjdXN0b20gcHJvamVjdGlvblxuICogbmVlZHMgdG8gYmUgcmVnaXN0ZXJlZCB0byBiZSB1c2FibGUgYnkgT0wuXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFByb2plY3Rpb25TZXJ2aWNlIHtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNvbmZpZzogQ29uZmlnU2VydmljZSkge1xuICAgIGNvbnN0IHByb2plY3Rpb25zID0gdGhpcy5jb25maWcuZ2V0Q29uZmlnKCdwcm9qZWN0aW9ucycpIHx8IFtdO1xuICAgIHByb2plY3Rpb25zLmZvckVhY2goKHByb2plY3Rpb246IFByb2plY3Rpb24pID0+IHtcbiAgICAgIHByb2plY3Rpb24uYWxpYXMgPSBwcm9qZWN0aW9uLmFsaWFzID8gcHJvamVjdGlvbi5hbGlhcyA6IHByb2plY3Rpb24uY29kZTtcbiAgICAgIHRoaXMucmVnaXN0ZXJQcm9qZWN0aW9uKHByb2plY3Rpb24pO1xuICAgIH0pO1xuXG4gICAgLy8gcmVnaXN0ZXIgYWxsIHV0bSB6b25lc1xuICAgIGZvciAobGV0IHV0bVpvbmUgPSAxOyB1dG1ab25lIDwgNjE7IHV0bVpvbmUrKykge1xuICAgICAgY29uc3QgY29kZSA9IHV0bVpvbmUgPCAxMCA/IGBFUFNHOjMyNjAke3V0bVpvbmV9YCA6IGBFUFNHOjMyNiR7dXRtWm9uZX1gO1xuICAgICAgY29uc3QgZGVmID0gYCtwcm9qPXV0bSArem9uZT0ke3V0bVpvbmV9ICtkYXR1bT1XR1M4NCArdW5pdHM9bSArbm9fZGVmc2A7XG4gICAgICBjb25zdCBwcm9qOiBQcm9qZWN0aW9uID0geyBjb2RlLCBkZWYsIGV4dGVudCA6IHVuZGVmaW5lZH07XG4gICAgICB0aGlzLnJlZ2lzdGVyUHJvamVjdGlvbihwcm9qKTtcbiAgICB9XG5cbiAgICAvLyByZWdpc3RlciBhbGwgbXRtIHpvbmVzXG4gICAgZm9yIChsZXQgbXRtWm9uZSA9IDE7IG10bVpvbmUgPCAxMTsgbXRtWm9uZSsrKSB7XG4gICAgICBjb25zdCBjb2RlID0gbXRtWm9uZSA8IDEwID8gYEVQU0c6MzIxOCR7bXRtWm9uZX1gIDogYEVQU0c6MzIxJHs4MCArIG10bVpvbmV9YDtcbiAgICAgIGxldCBsb24wO1xuICAgICAgaWYgKE51bWJlcihtdG1ab25lKSA8PSAyKSB7XG4gICAgICAgIGxvbjAgPSAtNTAgLSBOdW1iZXIobXRtWm9uZSkgKiAzO1xuICAgICAgfSBlbHNlIGlmIChOdW1iZXIobXRtWm9uZSkgPj0gMTIpIHtcbiAgICAgICAgbG9uMCA9IC04MSAtIChOdW1iZXIobXRtWm9uZSkgLSAxMikgKiAzO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbG9uMCA9IC00OS41IC0gTnVtYmVyKG10bVpvbmUpICogMztcbiAgICAgIH1cbiAgICAgIGNvbnN0IGRlZiA9IGArcHJvaj10bWVyYyArbGF0XzA9MCArbG9uXzA9JHtsb24wfSAraz0wLjk5OTkgK3hfMD0zMDQ4MDAgK3lfMD0wICtlbGxwcz1HUlM4MCArdG93Z3M4ND0wLDAsMCwwLDAsMCwwICt1bml0cz1tICtub19kZWZzXCJgO1xuICAgICAgY29uc3QgcHJvajogUHJvamVjdGlvbiA9IHsgY29kZSwgZGVmLCBleHRlbnQgOiB1bmRlZmluZWR9O1xuICAgICAgdGhpcy5yZWdpc3RlclByb2plY3Rpb24ocHJvaik7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIERlZmluZSBhIHByb2o0IHByb2plY3Rpb24gYW5kIHJlZ2lzdGVyIGl0IGluIE9MXG4gICAqIEBwYXJhbSBwcm9qZWN0aW9uIFByb2plY3Rpb25cbiAgICovXG4gIHJlZ2lzdGVyUHJvamVjdGlvbihwcm9qZWN0aW9uOiBQcm9qZWN0aW9uKSB7XG4gICAgcHJvajQuZGVmcyhwcm9qZWN0aW9uLmNvZGUsIHByb2plY3Rpb24uZGVmKTtcbiAgICBvbHByb2o0LnJlZ2lzdGVyKHByb2o0KTtcbiAgICBpZiAocHJvamVjdGlvbi5leHRlbnQpIHtcbiAgICAgIG9scHJvai5nZXQocHJvamVjdGlvbi5jb2RlKS5zZXRFeHRlbnQocHJvamVjdGlvbi5leHRlbnQpO1xuICAgIH1cbiAgfVxuXG59XG4iXX0=
@@ -61,4 +61,4 @@ export function computeProjectionsConstraints(projectionsLimitations) {
61
61
  };
62
62
  return projectionsConstraints;
63
63
  }
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVjdGlvbi51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL21hcC9zaGFyZWQvcHJvamVjdGlvbi51dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLE9BQU8sQ0FBQyxHQUFXO0lBQy9CLElBQUksTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO0lBQ2pCLE1BQU0sTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO0lBQ25CLElBQUksR0FBRyxHQUFHLE1BQU0sSUFBSSxHQUFHLEdBQUcsTUFBTSxFQUFFO1FBQ2hDLE9BQU8sQ0FBQyxDQUFDO0tBQ1Y7U0FDSTtRQUNILE1BQU0sUUFBUSxHQUFHLENBQUMsQ0FBQztRQUNuQixJQUFJLElBQUksR0FBRyxDQUFDLENBQUM7UUFDYixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxHQUFHLFFBQVEsRUFBRTtZQUN4QyxNQUFNLEdBQUcsTUFBTSxHQUFHLFFBQVEsQ0FBQztZQUMzQixJQUFJLEVBQUUsQ0FBQztTQUNSO1FBQ0QsT0FBTyxJQUFJLENBQUM7S0FDYjtBQUNILENBQUM7QUFDSDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLE9BQU8sQ0FBQyxHQUFXO0lBQ2pDLElBQUksTUFBTSxHQUFHLENBQUMsR0FBRyxDQUFDO0lBQ2xCLE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQztJQUNuQixNQUFNLFFBQVEsR0FBRyxDQUFDLENBQUM7SUFDbkIsSUFBSSxJQUFJLEdBQUcsQ0FBQyxDQUFDO0lBQ2IsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUMsR0FBRyxRQUFRLEVBQUU7UUFDeEMsTUFBTSxHQUFHLE1BQU0sR0FBRyxRQUFRLENBQUM7UUFDM0IsSUFBSSxFQUFFLENBQUM7S0FDUjtJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVksNkJBQTZCLENBQzNDLHNCQUFxRDtJQUVyRCxNQUFNLE9BQU8sR0FBRyxzQkFBc0IsQ0FBQyxPQUFPLENBQUM7SUFDL0MsTUFBTSxPQUFPLEdBQUcsc0JBQXNCLENBQUMsT0FBTyxDQUFDO0lBQy9DLE1BQU0sc0JBQXNCLEdBQUc7UUFDM0IsY0FBYyxFQUFFLHNCQUFzQixDQUFDLGNBQWMsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSTtRQUM5RSxLQUFLLEVBQUUsc0JBQXNCLENBQUMsS0FBSyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJO1FBQzVELEtBQUssRUFBRSxzQkFBc0IsQ0FBQyxLQUFLLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUk7UUFDNUQsV0FBVyxFQUFFLHNCQUFzQixDQUFDLFdBQVcsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSTtRQUN4RSxHQUFHLEVBQUUsc0JBQXNCLENBQUMsR0FBRyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJO1FBQ3hELEdBQUcsRUFBRSxzQkFBc0IsQ0FBQyxHQUFHLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUk7UUFDeEQsT0FBTyxFQUFFO1lBQ1QsT0FBTyxFQUFFLE9BQU8sSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQzFELE9BQU8sRUFBRSxPQUFPLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtTQUN6RDtRQUNELE9BQU8sRUFBRTtZQUNULE9BQU8sRUFBRSxPQUFPLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN6RCxPQUFPLEVBQUUsT0FBTyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7U0FDekQ7S0FDSixDQUFDO0lBQ0YsT0FBTyxzQkFBc0IsQ0FBQztBQUNoQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUHJvamVjdGlvbnNMaW1pdGF0aW9uc09wdGlvbnMgfSBmcm9tICcuL3Byb2plY3Rpb24uaW50ZXJmYWNlcyc7XG5cbi8qKlxuICogUmV0dXJuIGEgbnVtYmVyIG9mIHpvbmUgTVRNIGZvciBhIGxvbmdpdHVkZSBmb3IgcHJvdmluY2Ugb2YgUXVlYmVjIG9ubHlcbiAqIEBwYXJhbSBsb24gbnVtYmVyXG4gKiBAcmV0dXJucyB6b25lXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB6b25lTXRtKGxvbjogbnVtYmVyKTogbnVtYmVyIHtcbiAgICBsZXQgbG9uTWluID0gLTU0O1xuICAgIGNvbnN0IGxvbk1heCA9IC04MTtcbiAgICBpZiAobG9uIDwgbG9uTWF4IHx8IGxvbiA+IGxvbk1pbikge1xuICAgICAgcmV0dXJuIDA7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgY29uc3QgZGVsdGFMb24gPSAzO1xuICAgICAgbGV0IHpvbmUgPSAyO1xuICAgICAgd2hpbGUgKE1hdGguYWJzKGxvbiAtIGxvbk1pbikgPiBkZWx0YUxvbikge1xuICAgICAgICBsb25NaW4gPSBsb25NaW4gLSBkZWx0YUxvbjtcbiAgICAgICAgem9uZSsrO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHpvbmU7XG4gICAgfVxuICB9XG4vKipcbiAqIFJldHVybiBhIG51bWJlciBvZiB6b25lIFVUTSBmb3IgYSBsb25naXR1ZGVcbiAqIEBwYXJhbSBsb24gbnVtYmVyXG4gKiBAcmV0dXJucyB6b25lXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB6b25lVXRtKGxvbjogbnVtYmVyKTogbnVtYmVyIHtcbiAgbGV0IGxvbk1pbiA9IC0xODA7XG4gIGNvbnN0IGxvbk1heCA9IDE4MDtcbiAgY29uc3QgZGVsdGFMb24gPSA2O1xuICBsZXQgem9uZSA9IDE7XG4gIHdoaWxlIChNYXRoLmFicyhsb24gLSBsb25NaW4pID4gZGVsdGFMb24pIHtcbiAgICBsb25NaW4gPSBsb25NaW4gKyBkZWx0YUxvbjtcbiAgICB6b25lKys7XG4gIH1cbiAgcmV0dXJuIHpvbmU7XG59XG5cbi8qKlxuICogQ29tcHV0ZSB0aGUgY29udHJhaW50cyBvZiBwcm9qZWN0aW9uc1xuICogQHBhcmFtIHByb2plY3Rpb25zTGltaXRhdGlvbnM6IFByb2plY3Rpb25zTGltaXRhdGlvbnNPcHRpb25zXG4gKiBAcmV0dXJucyBwcm9qZWN0aW9uc0NvbnRyYWludHM6IFByb2plY3Rpb25zTGltaXRhdGlvbnNPcHRpb25zXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiAgIGNvbXB1dGVQcm9qZWN0aW9uc0NvbnN0cmFpbnRzKFxuICAgIHByb2plY3Rpb25zTGltaXRhdGlvbnM6IFByb2plY3Rpb25zTGltaXRhdGlvbnNPcHRpb25zKTpcbiAgICBQcm9qZWN0aW9uc0xpbWl0YXRpb25zT3B0aW9ucyB7XG4gICAgY29uc3QgbXRtWm9uZSA9IHByb2plY3Rpb25zTGltaXRhdGlvbnMubXRtWm9uZTtcbiAgICBjb25zdCB1dG1ab25lID0gcHJvamVjdGlvbnNMaW1pdGF0aW9ucy51dG1ab25lO1xuICAgIGNvbnN0IHByb2plY3Rpb25zQ29uc3RyYWludHMgPSB7XG4gICAgICAgIHByb2pGcm9tQ29uZmlnOiBwcm9qZWN0aW9uc0xpbWl0YXRpb25zLnByb2pGcm9tQ29uZmlnID09PSBmYWxzZSA/IGZhbHNlIDogdHJ1ZSxcbiAgICAgICAgbmFkODM6IHByb2plY3Rpb25zTGltaXRhdGlvbnMubmFkODMgPT09IGZhbHNlID8gZmFsc2UgOiB0cnVlLFxuICAgICAgICB3Z3M4NDogcHJvamVjdGlvbnNMaW1pdGF0aW9ucy53Z3M4NCA9PT0gZmFsc2UgPyBmYWxzZSA6IHRydWUsXG4gICAgICAgIHdlYk1lcmNhdG9yOiBwcm9qZWN0aW9uc0xpbWl0YXRpb25zLndlYk1lcmNhdG9yID09PSBmYWxzZSA/IGZhbHNlIDogdHJ1ZSxcbiAgICAgICAgdXRtOiBwcm9qZWN0aW9uc0xpbWl0YXRpb25zLnV0bSA9PT0gZmFsc2UgPyBmYWxzZSA6IHRydWUsXG4gICAgICAgIG10bTogcHJvamVjdGlvbnNMaW1pdGF0aW9ucy5tdG0gPT09IGZhbHNlID8gZmFsc2UgOiB0cnVlLFxuICAgICAgICB1dG1ab25lOiB7XG4gICAgICAgIG1pblpvbmU6IHV0bVpvbmUgJiYgdXRtWm9uZS5taW5ab25lID8gdXRtWm9uZS5taW5ab25lIDogMTcsXG4gICAgICAgIG1heFpvbmU6IHV0bVpvbmUgJiYgdXRtWm9uZS5tYXhab25lID8gdXRtWm9uZS5tYXhab25lIDogMjEsXG4gICAgICAgIH0sXG4gICAgICAgIG10bVpvbmU6IHtcbiAgICAgICAgbWluWm9uZTogbXRtWm9uZSAmJiBtdG1ab25lLm1pblpvbmUgPyBtdG1ab25lLm1pblpvbmUgOiAyLFxuICAgICAgICBtYXhab25lOiBtdG1ab25lICYmIG10bVpvbmUubWF4Wm9uZSA/IG10bVpvbmUubWF4Wm9uZSA6IDEwLFxuICAgICAgICB9XG4gICAgfTtcbiAgICByZXR1cm4gcHJvamVjdGlvbnNDb25zdHJhaW50cztcbiAgfVxuIl19
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVjdGlvbi51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL21hcC9zaGFyZWQvcHJvamVjdGlvbi51dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLE9BQU8sQ0FBQyxHQUFXO0lBQy9CLElBQUksTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO0lBQ2pCLE1BQU0sTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO0lBQ25CLElBQUksR0FBRyxHQUFHLE1BQU0sSUFBSSxHQUFHLEdBQUcsTUFBTSxFQUFFO1FBQ2hDLE9BQU8sQ0FBQyxDQUFDO0tBQ1Y7U0FDSTtRQUNILE1BQU0sUUFBUSxHQUFHLENBQUMsQ0FBQztRQUNuQixJQUFJLElBQUksR0FBRyxDQUFDLENBQUM7UUFDYixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxHQUFHLFFBQVEsRUFBRTtZQUN4QyxNQUFNLEdBQUcsTUFBTSxHQUFHLFFBQVEsQ0FBQztZQUMzQixJQUFJLEVBQUUsQ0FBQztTQUNSO1FBQ0QsT0FBTyxJQUFJLENBQUM7S0FDYjtBQUNILENBQUM7QUFDSDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLE9BQU8sQ0FBQyxHQUFXO0lBQ2pDLElBQUksTUFBTSxHQUFHLENBQUMsR0FBRyxDQUFDO0lBQ2xCLE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQztJQUNuQixNQUFNLFFBQVEsR0FBRyxDQUFDLENBQUM7SUFDbkIsSUFBSSxJQUFJLEdBQUcsQ0FBQyxDQUFDO0lBQ2IsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUMsR0FBRyxRQUFRLEVBQUU7UUFDeEMsTUFBTSxHQUFHLE1BQU0sR0FBRyxRQUFRLENBQUM7UUFDM0IsSUFBSSxFQUFFLENBQUM7S0FDUjtJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsNkJBQTZCLENBQ3pDLHNCQUFxRDtJQUVyRCxNQUFNLE9BQU8sR0FBRyxzQkFBc0IsQ0FBQyxPQUFPLENBQUM7SUFDL0MsTUFBTSxPQUFPLEdBQUcsc0JBQXNCLENBQUMsT0FBTyxDQUFDO0lBQy9DLE1BQU0sc0JBQXNCLEdBQUc7UUFDM0IsY0FBYyxFQUFFLHNCQUFzQixDQUFDLGNBQWMsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSTtRQUM5RSxLQUFLLEVBQUUsc0JBQXNCLENBQUMsS0FBSyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJO1FBQzVELEtBQUssRUFBRSxzQkFBc0IsQ0FBQyxLQUFLLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUk7UUFDNUQsV0FBVyxFQUFFLHNCQUFzQixDQUFDLFdBQVcsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSTtRQUN4RSxHQUFHLEVBQUUsc0JBQXNCLENBQUMsR0FBRyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJO1FBQ3hELEdBQUcsRUFBRSxzQkFBc0IsQ0FBQyxHQUFHLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUk7UUFDeEQsT0FBTyxFQUFFO1lBQ1QsT0FBTyxFQUFFLE9BQU8sSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQzFELE9BQU8sRUFBRSxPQUFPLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtTQUN6RDtRQUNELE9BQU8sRUFBRTtZQUNULE9BQU8sRUFBRSxPQUFPLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN6RCxPQUFPLEVBQUUsT0FBTyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7U0FDekQ7S0FDSixDQUFDO0lBQ0YsT0FBTyxzQkFBc0IsQ0FBQztBQUNoQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUHJvamVjdGlvbnNMaW1pdGF0aW9uc09wdGlvbnMgfSBmcm9tICcuL3Byb2plY3Rpb24uaW50ZXJmYWNlcyc7XG5cbi8qKlxuICogUmV0dXJuIGEgbnVtYmVyIG9mIHpvbmUgTVRNIGZvciBhIGxvbmdpdHVkZSBmb3IgcHJvdmluY2Ugb2YgUXVlYmVjIG9ubHlcbiAqIEBwYXJhbSBsb24gbnVtYmVyXG4gKiBAcmV0dXJucyB6b25lXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB6b25lTXRtKGxvbjogbnVtYmVyKTogbnVtYmVyIHtcbiAgICBsZXQgbG9uTWluID0gLTU0O1xuICAgIGNvbnN0IGxvbk1heCA9IC04MTtcbiAgICBpZiAobG9uIDwgbG9uTWF4IHx8IGxvbiA+IGxvbk1pbikge1xuICAgICAgcmV0dXJuIDA7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgY29uc3QgZGVsdGFMb24gPSAzO1xuICAgICAgbGV0IHpvbmUgPSAyO1xuICAgICAgd2hpbGUgKE1hdGguYWJzKGxvbiAtIGxvbk1pbikgPiBkZWx0YUxvbikge1xuICAgICAgICBsb25NaW4gPSBsb25NaW4gLSBkZWx0YUxvbjtcbiAgICAgICAgem9uZSsrO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHpvbmU7XG4gICAgfVxuICB9XG4vKipcbiAqIFJldHVybiBhIG51bWJlciBvZiB6b25lIFVUTSBmb3IgYSBsb25naXR1ZGVcbiAqIEBwYXJhbSBsb24gbnVtYmVyXG4gKiBAcmV0dXJucyB6b25lXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB6b25lVXRtKGxvbjogbnVtYmVyKTogbnVtYmVyIHtcbiAgbGV0IGxvbk1pbiA9IC0xODA7XG4gIGNvbnN0IGxvbk1heCA9IDE4MDtcbiAgY29uc3QgZGVsdGFMb24gPSA2O1xuICBsZXQgem9uZSA9IDE7XG4gIHdoaWxlIChNYXRoLmFicyhsb24gLSBsb25NaW4pID4gZGVsdGFMb24pIHtcbiAgICBsb25NaW4gPSBsb25NaW4gKyBkZWx0YUxvbjtcbiAgICB6b25lKys7XG4gIH1cbiAgcmV0dXJuIHpvbmU7XG59XG5cbi8qKlxuICogQ29tcHV0ZSB0aGUgY29udHJhaW50cyBvZiBwcm9qZWN0aW9uc1xuICogQHBhcmFtIHByb2plY3Rpb25zTGltaXRhdGlvbnM6IFByb2plY3Rpb25zTGltaXRhdGlvbnNPcHRpb25zXG4gKiBAcmV0dXJucyBwcm9qZWN0aW9uc0NvbnRyYWludHM6IFByb2plY3Rpb25zTGltaXRhdGlvbnNPcHRpb25zXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb21wdXRlUHJvamVjdGlvbnNDb25zdHJhaW50cyhcbiAgICBwcm9qZWN0aW9uc0xpbWl0YXRpb25zOiBQcm9qZWN0aW9uc0xpbWl0YXRpb25zT3B0aW9ucyk6XG4gICAgUHJvamVjdGlvbnNMaW1pdGF0aW9uc09wdGlvbnMge1xuICAgIGNvbnN0IG10bVpvbmUgPSBwcm9qZWN0aW9uc0xpbWl0YXRpb25zLm10bVpvbmU7XG4gICAgY29uc3QgdXRtWm9uZSA9IHByb2plY3Rpb25zTGltaXRhdGlvbnMudXRtWm9uZTtcbiAgICBjb25zdCBwcm9qZWN0aW9uc0NvbnN0cmFpbnRzID0ge1xuICAgICAgICBwcm9qRnJvbUNvbmZpZzogcHJvamVjdGlvbnNMaW1pdGF0aW9ucy5wcm9qRnJvbUNvbmZpZyA9PT0gZmFsc2UgPyBmYWxzZSA6IHRydWUsXG4gICAgICAgIG5hZDgzOiBwcm9qZWN0aW9uc0xpbWl0YXRpb25zLm5hZDgzID09PSBmYWxzZSA/IGZhbHNlIDogdHJ1ZSxcbiAgICAgICAgd2dzODQ6IHByb2plY3Rpb25zTGltaXRhdGlvbnMud2dzODQgPT09IGZhbHNlID8gZmFsc2UgOiB0cnVlLFxuICAgICAgICB3ZWJNZXJjYXRvcjogcHJvamVjdGlvbnNMaW1pdGF0aW9ucy53ZWJNZXJjYXRvciA9PT0gZmFsc2UgPyBmYWxzZSA6IHRydWUsXG4gICAgICAgIHV0bTogcHJvamVjdGlvbnNMaW1pdGF0aW9ucy51dG0gPT09IGZhbHNlID8gZmFsc2UgOiB0cnVlLFxuICAgICAgICBtdG06IHByb2plY3Rpb25zTGltaXRhdGlvbnMubXRtID09PSBmYWxzZSA/IGZhbHNlIDogdHJ1ZSxcbiAgICAgICAgdXRtWm9uZToge1xuICAgICAgICBtaW5ab25lOiB1dG1ab25lICYmIHV0bVpvbmUubWluWm9uZSA/IHV0bVpvbmUubWluWm9uZSA6IDE3LFxuICAgICAgICBtYXhab25lOiB1dG1ab25lICYmIHV0bVpvbmUubWF4Wm9uZSA/IHV0bVpvbmUubWF4Wm9uZSA6IDIxLFxuICAgICAgICB9LFxuICAgICAgICBtdG1ab25lOiB7XG4gICAgICAgIG1pblpvbmU6IG10bVpvbmUgJiYgbXRtWm9uZS5taW5ab25lID8gbXRtWm9uZS5taW5ab25lIDogMixcbiAgICAgICAgbWF4Wm9uZTogbXRtWm9uZSAmJiBtdG1ab25lLm1heFpvbmUgPyBtdG1ab25lLm1heFpvbmUgOiAxMCxcbiAgICAgICAgfVxuICAgIH07XG4gICAgcmV0dXJuIHByb2plY3Rpb25zQ29uc3RyYWludHM7XG4gIH1cbiJdfQ==
@@ -196,4 +196,4 @@ SwipeControlComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: Swipe
196
196
  }], function () { return []; }, { map: [{
197
197
  type: Input
198
198
  }] }); })();
199
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpcGUtY29udHJvbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9tYXAvc3dpcGUtY29udHJvbC9zd2lwZS1jb250cm9sLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL21hcC9zd2lwZS1jb250cm9sL3N3aXBlLWNvbnRyb2wuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQTRCLE1BQU0sZUFBZSxDQUFDO0FBRzNFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxXQUFXLENBQUM7O0FBRzNDOztHQUVHO0FBT0gsTUFBTSxPQUFPLHFCQUFxQjtJQXNDaEM7UUFmQTs7V0FFRztRQUNLLGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBT3RDOztXQUVHO1FBQ0ssbUJBQWMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUdsRCxDQUFDO0lBRUY7OztPQUdHO0lBQ0gsZUFBZTtRQUNiLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUMzRCxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3ZELENBQUMsQ0FBQyxDQUFDO1FBQ0wsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2pCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNsQyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNyQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsWUFBWTtRQUNWLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7UUFDMUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7UUFDeEUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFDckUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsZUFBZTtRQUNiLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLFVBQVUsR0FBRyxRQUFRLENBQUM7UUFDekMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7UUFDeEUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFDckUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFB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QUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDMUYsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ1gsQ0FBQzs7MEZBcE5RLHFCQUFxQjt3RUFBckIscUJBQXFCO1FDZmxDLDhCQUl1QztRQUhyQyw2R0FBYSxvQkFBZ0IsSUFBQyxzRkFDbkIsMkJBQXVCLElBREosa0dBRWhCLG9CQUFnQixJQUZBLHdGQUdsQiwyQkFBdUIsSUFITDtRQUk5Qix5QkFBMkM7UUFFM0MsOEJBQWtEO1FBQ2hELHlCQUFrQztRQUNsQyx5QkFBbUM7UUFDckMsaUJBQU07UUFDUixpQkFBTTs7dUZESU8scUJBQXFCO2NBTmpDLFNBQVM7ZUFBQztnQkFDVCxRQUFRLEVBQUUsbUJBQW1CO2dCQUM3QixXQUFXLEVBQUUsZ0NBQWdDO2dCQUM3QyxTQUFTLEVBQUUsQ0FBQyxnQ0FBZ0MsQ0FBQzthQUM5QztzQ0FRVSxHQUFHO2tCQUFYLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExheWVyIH0gZnJvbSAnLi4vLi4vbGF5ZXInO1xuaW1wb3J0IHsgSWdvTWFwIH0gZnJvbSAnLi4vc2hhcmVkL21hcCc7XG5pbXBvcnQgeyBnZXRSZW5kZXJQaXhlbCB9IGZyb20gJ29sL3JlbmRlcic7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuLyoqXG4gKiBUb29sIHRvIHN3aXBlIHRoZSBsYXllcnNcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaWdvLXN3aXBlLWNvbnRyb2wnLFxuICB0ZW1wbGF0ZVVybDogJy4vc3dpcGUtY29udHJvbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3N3aXBlLWNvbnRyb2wuY29tcG9uZW50LnNjc3MnXVxufSlcblxuZXhwb3J0IGNsYXNzIFN3aXBlQ29udHJvbENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG5cblxuICAvKipcbiAgICogR2V0IGFuIGFjdGl2ZSBtYXBcbiAgICovXG4gIEBJbnB1dCgpIG1hcDogSWdvTWFwO1xuXG4gIC8qKlxuICAgKiBUaGUgbGlzdCBvZiBsYXllcnMgZm9yIHN3aXBlXG4gICAqL1xuICBwcml2YXRlIGxheWVyczogTGF5ZXJbXTtcblxuICAvKipcbiAgICogRmluYWwgcG9zaXRpb24gb2YgdGhlIHN3aXBlZCBlbGVtZW50XG4gICAqL1xuICBwcml2YXRlIHBvczE6IG51bWJlcjtcblxuICAvKipcbiAgICogSW50ZXJtZWRpYXRlIHBvc2l0aW9uIG9mIHRoZSBzd2lwZWQgZWxlbWVudFxuICAgKi9cbiAgcHJpdmF0ZSBwb3MzOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFN0YXRlIG9mIGRyYWdnYWJsZSBhY3Rpb25cbiAgICovXG4gIHByaXZhdGUgaW5EcmFnQWN0aW9uOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIExpc3RlbmVyIG9mIHRvZ2dsZSBmcm9tIGFkdmFuY2VkLW1hcC10b29sXG4gICAqL1xuICBwcml2YXRlIHN3aXBlRW5hYmxlZCQkOiBTdWJzY3JpcHRpb247XG5cbiAgLyoqXG4gICAqIEJpbmRlciBvZiBwcmVyZW5kZXIgb24gdGhlIHNhbWUgZWxlbWVudFxuICAgKi9cbiAgcHJpdmF0ZSBib3VuZFByZXJlbmRlciA9IHRoaXMucHJlcmVuZGVyLmJpbmQodGhpcyk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgbGlzdCBvZiBsYXllcnMgZm9yIHN3aXBlIGFuZCBhY3RpdmF0ZSBvZiBkZWFjdGl2YXRlIHRoZSBzd2lwZVxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmdldExpc3RPZkxheWVycygpO1xuICAgIHRoaXMuc3dpcGVFbmFibGVkJCQgPSB0aGlzLm1hcC5zd2lwZUVuYWJsZWQkLnN1YnNjcmliZSh2YWx1ZSA9PiB7XG4gICAgICAgIHZhbHVlID8gdGhpcy5kaXNwbGF5U3dpcGUoKSA6IHRoaXMuZGlzcGxheVN3aXBlT2ZmKCk7XG4gICAgICB9KTtcbiAgICB0aGlzLmxldFpvb20oKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbGVhciB0aGUgb3ZlcmxheSBsYXllciBhbmQgYW55IGludGVyYWN0aW9uIGFkZGVkIGJ5IHRoaXMgY29tcG9uZW50LlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc3dpcGVFbmFibGVkJCQudW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLm1hcC5zd2lwZUVuYWJsZWQkLnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5kaXNwbGF5U3dpcGVPZmYoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEaXNwbGF5IGEgc3dpcGUtZWxlbWVudCBhbmQgcmVuZGVyIHRoZSBsYXllcnNcbiAgICovXG4gIGRpc3BsYXlTd2lwZSgpIHtcbiAgICB0aGlzLnN3aXBlSWQuc3R5bGUudmlzaWJpbGl0eSA9ICd2aXNpYmxlJztcbiAgICB0aGlzLmxheWVycy5tYXAobGF5ZXIgPT4gbGF5ZXIub2wub24oJ3ByZXJlbmRlcicsIHRoaXMuYm91bmRQcmVyZW5kZXIpKTtcbiAgICB0aGlzLmxheWVycy5tYXAobGF5ZXIgPT4gbGF5ZXIub2wub24oJ3Bvc3RyZW5kZXInLCB0aGlzLnBvc3RyZW5kZXIpKTtcbiAgICB0aGlzLm1hcC5vbC5yZW5kZXIoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbGVhciBhIHN3aXBlLWVsZW1lbnQgYW5kIHJlbmRlciB0aGUgbGF5ZXJzIG9uIHRoZSBpbml0aWFsIHN0YXRlXG4gICAqL1xuICBkaXNwbGF5U3dpcGVPZmYoKSB7XG4gICAgdGhpcy5zd2lwZUlkLnN0eWxlLnZpc2liaWxpdHkgPSAnaGlkZGVuJztcbiAgICB0aGlzLmxheWVycy5tYXAobGF5ZXIgPT4gbGF5ZXIub2wudW4oJ3ByZXJlbmRlcicsIHRoaXMuYm91bmRQcmVyZW5kZXIpKTtcbiAgICB0aGlzLmxheWVycy5tYXAobGF5ZXIgPT4gbGF5ZXIub2wudW4oJ3Bvc3RyZW5kZXInLCB0aGlzLnBvc3RyZW5kZXIpKTtcbiAgICB0aGlzLm1hcC5vbC5yZW5kZXIoKTtcbiAgICB0aGlzLmxheWVycyA9IFtdO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHRlciBvZiBlbGVtZW50XG4gICAqL1xuICBnZXQgc3dpcGVJZCgpIHtcbiAgICByZXR1cm4gIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpZ28tbGF5ZXItc3dpcGUnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGxpc3Qgb2YgbGF5ZXJzIGZvciBzd2lwZVxuICAgKi9cbiAgZ2V0TGlzdE9mTGF5ZXJzKCkge1xuICAgIHRoaXMubWFwLnNlbGVjdGVkRmVhdHVyZXMkLnN1YnNjcmliZShsYXllcnMgPT4ge1xuICAgICAgdGhpcy5sYXllcnMgPSBbXTtcbiAgICAgIGlmIChsYXllcnMgIT09IG51bGwpIHtcbiAgICAgICAgZm9yIChjb25zdCBsYXllciBvZiBsYXllcnMpIHtcbiAgICAgICAgICBpZiAoIXRoaXMubGF5ZXJzLmluY2x1ZGVzKGxheWVyKSkge1xuICAgICAgICAgICAgdGhpcy5sYXllcnMucHVzaChsYXllcik7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGEgcG9zaXRpb24gb2YgY2xpY2sgb3IgdG91Y2hcbiAgICovXG4gIGRyYWdEb3duKGV2ZW50KSB7XG4gICAgdGhpcy5pbkRyYWdBY3Rpb24gPSB0cnVlO1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgaWYgKGV2ZW50LnR5cGUgPT09ICdtb3VzZWRvd24nKXtcbiAgICAgICAgdGhpcy5wb3MzID0gZXZlbnQuY2xpZW50WDtcbiAgICAgICAgdGhpcy5tb3VzZVN3aXBlKCk7XG4gICAgICAgIGRvY3VtZW50Lm9ubW91c2V1cCA9IHRoaXMuY2xvc2VEcmFnTW91c2VFbGVtZW50O1xuICAgIH1cbiAgICBlbHNlIGlmIChldmVudC50eXBlID09PSAndG91Y2hzdGFydCcpe1xuICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYXJyb3dzJykuc3R5bGUudmlzaWJpbGl0eSA9ICdoaWRkZW4nO1xuICAgICAgICB0aGlzLnBvczMgPSBldmVudC50b3VjaGVzWzBdLmNsaWVudFg7XG4gICAgICAgIHRoaXMudG91Y2hTd2lwZSgpO1xuICAgICAgICBkb2N1bWVudC5vbnRvdWNoZW5kID0gdGhpcy5jbG9zZURyYWdUb3VjaEVsZW1lbnQ7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIE1vdmluZyBhIGxpbmUgd2l0aCBhIG1vdXNlXG4gICAqL1xuICBtb3VzZVN3aXBlKCl7XG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgZXZlbnQgPT4ge1xuICAgICAgaWYgKHRoaXMuaW5EcmFnQWN0aW9uKXtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgdGhpcy5wb3MxID0gdGhpcy5wb3MzIC0gZXZlbnQuY2xpZW50WDtcbiAgICAgICAgdGhpcy5wb3MzID0gZXZlbnQuY2xpZW50WDtcbiAgICAgICAgdGhpcy5zd2lwZUlkLnN0eWxlLmxlZnQgPSAodGhpcy5zd2lwZUlkLm9mZnNldExlZnQgLSB0aGlzLnBvczEpICsgJ3B4JztcbiAgICAgIH1cbiAgICAgIHRoaXMubWFwLm9sLnJlbmRlcigpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIE1vdmluZyBhIGxpbmUgd2l0aCBhIHRvdWNoXG4gICAqL1xuICB0b3VjaFN3aXBlKCl7XG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2htb3ZlJywgZXZlbnQgPT4ge1xuICAgICAgaWYgKHRoaXMuaW5EcmFnQWN0aW9uKSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhcnJvd3MnKS5zdHlsZS52aXNpYmlsaXR5ID0gJ2hpZGRlbic7XG4gICAgICAgIHRoaXMucG9zMSA9IHRoaXMucG9zMyAtIGV2ZW50LmNoYW5nZWRUb3VjaGVzWzBdLmNsaWVudFg7XG4gICAgICAgIHRoaXMucG9zMyA9IGV2ZW50LmNoYW5nZWRUb3VjaGVzWzBdLmNsaWVudFg7XG4gICAgICAgIHRoaXMuc3dpcGVJZC5zdHlsZS5sZWZ0ID0gKHRoaXMuc3dpcGVJZC5vZmZzZXRMZWZ0IC0gdGhpcy5wb3MxKSArICdweCc7XG4gICAgICB9XG4gICAgICB0aGlzLm1hcC5vbC5yZW5kZXIoKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWFjdGl2YXRlIGEgbGlzdGVuZXIgb2YgYSBtb3VzZS1hY3Rpb25cbiAgICovXG4gIGNsb3NlRHJhZ01vdXNlRWxlbWVudCgpIHtcbiAgICBkb2N1bWVudC5vbm1vdXNldXAgPSBudWxsO1xuICAgIGRvY3VtZW50Lm9ubW91c2Vtb3ZlID0gbnVsbDtcbiAgICB0aGlzLmluRHJhZ0FjdGlvbiA9IGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIERlYWN0aXZhdGUgYSBsaXN0ZW5lciBvZiBhIHRvdWNoLWFjdGlvblxuICAgKi9cbiAgY2xvc2VEcmFnVG91Y2hFbGVtZW50KCkge1xuICAgIGRvY3VtZW50Lm9udG91Y2hlbmQgPSBudWxsO1xuICAgIGRvY3VtZW50Lm9udG91Y2htb3ZlID0gbnVsbDtcbiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYXJyb3dzJykuc3R5bGUudmlzaWJpbGl0eSA9ICd2aXNpYmxlJztcbiAgICB0aGlzLmluRHJhZ0FjdGlvbiA9IGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIEN1dCB0aGUgaW1hZ2Ugb2YgYSBsYXllciBieSB0aGUgcG9zaXRpb24gb2Ygc3dpcGVkLWVsZW1lbnRcbiAgICovXG4gIHByZXJlbmRlcihldmVudCkge1xuICAgICAgY29uc3QgY3R4ID0gZXZlbnQuY29udGV4dDtcbiAgICAgIGNvbnN0IG1hcFNpemUgPSB0aGlzLm1hcC5vbC5nZXRTaXplKCk7XG4gICAgICBjb25zdCB3aWR0aCA9IHRoaXMuc3dpcGVJZC5vZmZzZXRMZWZ0IDtcbiAgICAgIGNvbnN0IHRsID0gZ2V0UmVuZGVyUGl4ZWwoZXZlbnQsIFt3aWR0aCwgMF0pO1xuICAgICAgY29uc3QgdHIgPSBnZXRSZW5kZXJQaXhlbChldmVudCwgWzAsIDBdKTtcbiAgICAgIGNvbnN0IGJsID0gZ2V0UmVuZGVyUGl4ZWwoZXZlbnQsIFt3aWR0aCwgbWFwU2l6ZVsxXV0pO1xuICAgICAgY29uc3QgYnIgPSBnZXRSZW5kZXJQaXhlbChldmVudCwgWzAsIG1hcFNpemVbMV1dKTtcbiAgICAgIGN0eC5zYXZlKCk7XG4gICAgICBjdHguYmVnaW5QYXRoKCk7XG4gICAgICBjdHgubW92ZVRvKHRsWzBdLCB0bFsxXSk7XG4gICAgICBjdHgubGluZVRvKGJsWzBdLCBibFsxXSk7XG4gICAgICBjdHgubGluZVRvKGJyWzBdLCBiclsxXSk7XG4gICAgICBjdHgubGluZVRvKHRyWzBdLCB0clsxXSk7XG4gICAgICBjdHguY2xvc2VQYXRoKCk7XG4gICAgICBjdHguY2xpcCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNhdmUgYSBjdXJyZW50IHN0YXRlIG9mIHRoZSBjb250ZXh0XG4gICAqL1xuICBwb3N0cmVuZGVyKGV2ZW50KXtcbiAgICBldmVudC5jb250ZXh0LnJlc3RvcmUoKTtcbiAgICBldmVudC5jb250ZXh0LnNhdmUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBab29tIG9uIGRpdlxuICAgKi9cbiAgICAgcHJpdmF0ZSBsZXRab29tKCkge1xuICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lnby1sYXllci1zd2lwZScpLmFkZEV2ZW50TGlzdGVuZXIoJ3doZWVsJywgZXZlbnQgPT4ge1xuICAgICAgICBldmVudC5kZWx0YVkgPiAwID8gdGhpcy5tYXAudmlld0NvbnRyb2xsZXIuem9vbU91dCgpIDogdGhpcy5tYXAudmlld0NvbnRyb2xsZXIuem9vbUluKCk7XG4gICAgICB9LCB0cnVlKTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiaWdvLXN3aXBlLWNvbnRyb2wtY29udGFpbmVyXCIgIGlkPVwiaWdvLWxheWVyLXN3aXBlXCJcbiAgKG1vdXNlZG93bik9XCJkcmFnRG93bigkZXZlbnQpXCJcbiAgKG1vdXNldXApPVwiY2xvc2VEcmFnTW91c2VFbGVtZW50KClcIlxuICAodG91Y2hzdGFydCk9XCJkcmFnRG93bigkZXZlbnQpXCJcbiAgKHRvdWNoZW5kKT1cImNsb3NlRHJhZ1RvdWNoRWxlbWVudCgpXCI+XG4gIDxkaXYgY2xhc3M9XCJpZ28tc3dpcGUtY29udHJvbC1saW5lXCIgPjwvZGl2PlxuICBcbiAgPGRpdiBjbGFzcz1cImlnby1zd2lwZS1jb250cm9sLWFycm93c1wiIGlkPVwiYXJyb3dzXCI+XG4gICAgPGRpdiBjbGFzcz1cImlnby1hcnJvdy1sZWZ0XCI+PC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImlnby1hcnJvdy1yaWdodFwiPjwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
199
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpcGUtY29udHJvbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9tYXAvc3dpcGUtY29udHJvbC9zd2lwZS1jb250cm9sLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL21hcC9zd2lwZS1jb250cm9sL3N3aXBlLWNvbnRyb2wuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQTRCLE1BQU0sZUFBZSxDQUFDO0FBRzNFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxXQUFXLENBQUM7O0FBRzNDOztHQUVHO0FBT0gsTUFBTSxPQUFPLHFCQUFxQjtJQXNDaEM7UUFmQTs7V0FFRztRQUNLLGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBT3RDOztXQUVHO1FBQ0ssbUJBQWMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUdsRCxDQUFDO0lBRUY7OztPQUdHO0lBQ0gsZUFBZTtRQUNiLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUMzRCxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3ZELENBQUMsQ0FBQyxDQUFDO1FBQ0wsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2pCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNsQyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNyQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsWUFBWTtRQUNWLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7UUFDMUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7UUFDeEUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFDckUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsZUFBZTtRQUNiLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLFVBQVUsR0FBRyxRQUFRLENBQUM7UUFDekMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7UUFDeEUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFDckUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFB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QUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDMUYsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ1gsQ0FBQzs7MEZBcE5RLHFCQUFxQjt3RUFBckIscUJBQXFCO1FDZmxDLDhCQUl1QztRQUhyQyw2R0FBYSxvQkFBZ0IsSUFBQyxzRkFDbkIsMkJBQXVCLElBREosa0dBRWhCLG9CQUFnQixJQUZBLHdGQUdsQiwyQkFBdUIsSUFITDtRQUk5Qix5QkFBMkM7UUFFM0MsOEJBQWtEO1FBQ2hELHlCQUFrQztRQUNsQyx5QkFBbUM7UUFDckMsaUJBQU07UUFDUixpQkFBTTs7dUZESU8scUJBQXFCO2NBTmpDLFNBQVM7ZUFBQztnQkFDVCxRQUFRLEVBQUUsbUJBQW1CO2dCQUM3QixXQUFXLEVBQUUsZ0NBQWdDO2dCQUM3QyxTQUFTLEVBQUUsQ0FBQyxnQ0FBZ0MsQ0FBQzthQUM5QztzQ0FRVSxHQUFHO2tCQUFYLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExheWVyIH0gZnJvbSAnLi4vLi4vbGF5ZXInO1xuaW1wb3J0IHsgSWdvTWFwIH0gZnJvbSAnLi4vc2hhcmVkL21hcCc7XG5pbXBvcnQgeyBnZXRSZW5kZXJQaXhlbCB9IGZyb20gJ29sL3JlbmRlcic7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuLyoqXG4gKiBUb29sIHRvIHN3aXBlIHRoZSBsYXllcnNcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaWdvLXN3aXBlLWNvbnRyb2wnLFxuICB0ZW1wbGF0ZVVybDogJy4vc3dpcGUtY29udHJvbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3N3aXBlLWNvbnRyb2wuY29tcG9uZW50LnNjc3MnXVxufSlcblxuZXhwb3J0IGNsYXNzIFN3aXBlQ29udHJvbENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG5cblxuICAvKipcbiAgICogR2V0IGFuIGFjdGl2ZSBtYXBcbiAgICovXG4gIEBJbnB1dCgpIG1hcDogSWdvTWFwO1xuXG4gIC8qKlxuICAgKiBUaGUgbGlzdCBvZiBsYXllcnMgZm9yIHN3aXBlXG4gICAqL1xuICBwcml2YXRlIGxheWVyczogTGF5ZXJbXTtcblxuICAvKipcbiAgICogRmluYWwgcG9zaXRpb24gb2YgdGhlIHN3aXBlZCBlbGVtZW50XG4gICAqL1xuICBwcml2YXRlIHBvczE6IG51bWJlcjtcblxuICAvKipcbiAgICogSW50ZXJtZWRpYXRlIHBvc2l0aW9uIG9mIHRoZSBzd2lwZWQgZWxlbWVudFxuICAgKi9cbiAgcHJpdmF0ZSBwb3MzOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFN0YXRlIG9mIGRyYWdnYWJsZSBhY3Rpb25cbiAgICovXG4gIHByaXZhdGUgaW5EcmFnQWN0aW9uOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIExpc3RlbmVyIG9mIHRvZ2dsZSBmcm9tIGFkdmFuY2VkLW1hcC10b29sXG4gICAqL1xuICBwcml2YXRlIHN3aXBlRW5hYmxlZCQkOiBTdWJzY3JpcHRpb247XG5cbiAgLyoqXG4gICAqIEJpbmRlciBvZiBwcmVyZW5kZXIgb24gdGhlIHNhbWUgZWxlbWVudFxuICAgKi9cbiAgcHJpdmF0ZSBib3VuZFByZXJlbmRlciA9IHRoaXMucHJlcmVuZGVyLmJpbmQodGhpcyk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgbGlzdCBvZiBsYXllcnMgZm9yIHN3aXBlIGFuZCBhY3RpdmF0ZSBvZiBkZWFjdGl2YXRlIHRoZSBzd2lwZVxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmdldExpc3RPZkxheWVycygpO1xuICAgIHRoaXMuc3dpcGVFbmFibGVkJCQgPSB0aGlzLm1hcC5zd2lwZUVuYWJsZWQkLnN1YnNjcmliZSh2YWx1ZSA9PiB7XG4gICAgICAgIHZhbHVlID8gdGhpcy5kaXNwbGF5U3dpcGUoKSA6IHRoaXMuZGlzcGxheVN3aXBlT2ZmKCk7XG4gICAgICB9KTtcbiAgICB0aGlzLmxldFpvb20oKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbGVhciB0aGUgb3ZlcmxheSBsYXllciBhbmQgYW55IGludGVyYWN0aW9uIGFkZGVkIGJ5IHRoaXMgY29tcG9uZW50LlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc3dpcGVFbmFibGVkJCQudW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLm1hcC5zd2lwZUVuYWJsZWQkLnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5kaXNwbGF5U3dpcGVPZmYoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEaXNwbGF5IGEgc3dpcGUtZWxlbWVudCBhbmQgcmVuZGVyIHRoZSBsYXllcnNcbiAgICovXG4gIGRpc3BsYXlTd2lwZSgpIHtcbiAgICB0aGlzLnN3aXBlSWQuc3R5bGUudmlzaWJpbGl0eSA9ICd2aXNpYmxlJztcbiAgICB0aGlzLmxheWVycy5tYXAobGF5ZXIgPT4gbGF5ZXIub2wub24oJ3ByZXJlbmRlcicsIHRoaXMuYm91bmRQcmVyZW5kZXIpKTtcbiAgICB0aGlzLmxheWVycy5tYXAobGF5ZXIgPT4gbGF5ZXIub2wub24oJ3Bvc3RyZW5kZXInLCB0aGlzLnBvc3RyZW5kZXIpKTtcbiAgICB0aGlzLm1hcC5vbC5yZW5kZXIoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbGVhciBhIHN3aXBlLWVsZW1lbnQgYW5kIHJlbmRlciB0aGUgbGF5ZXJzIG9uIHRoZSBpbml0aWFsIHN0YXRlXG4gICAqL1xuICBkaXNwbGF5U3dpcGVPZmYoKSB7XG4gICAgdGhpcy5zd2lwZUlkLnN0eWxlLnZpc2liaWxpdHkgPSAnaGlkZGVuJztcbiAgICB0aGlzLmxheWVycy5tYXAobGF5ZXIgPT4gbGF5ZXIub2wudW4oJ3ByZXJlbmRlcicsIHRoaXMuYm91bmRQcmVyZW5kZXIpKTtcbiAgICB0aGlzLmxheWVycy5tYXAobGF5ZXIgPT4gbGF5ZXIub2wudW4oJ3Bvc3RyZW5kZXInLCB0aGlzLnBvc3RyZW5kZXIpKTtcbiAgICB0aGlzLm1hcC5vbC5yZW5kZXIoKTtcbiAgICB0aGlzLmxheWVycyA9IFtdO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHRlciBvZiBlbGVtZW50XG4gICAqL1xuICBnZXQgc3dpcGVJZCgpIHtcbiAgICByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lnby1sYXllci1zd2lwZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgbGlzdCBvZiBsYXllcnMgZm9yIHN3aXBlXG4gICAqL1xuICBnZXRMaXN0T2ZMYXllcnMoKSB7XG4gICAgdGhpcy5tYXAuc2VsZWN0ZWRGZWF0dXJlcyQuc3Vic2NyaWJlKGxheWVycyA9PiB7XG4gICAgICB0aGlzLmxheWVycyA9IFtdO1xuICAgICAgaWYgKGxheWVycyAhPT0gbnVsbCkge1xuICAgICAgICBmb3IgKGNvbnN0IGxheWVyIG9mIGxheWVycykge1xuICAgICAgICAgIGlmICghdGhpcy5sYXllcnMuaW5jbHVkZXMobGF5ZXIpKSB7XG4gICAgICAgICAgICB0aGlzLmxheWVycy5wdXNoKGxheWVyKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYSBwb3NpdGlvbiBvZiBjbGljayBvciB0b3VjaFxuICAgKi9cbiAgZHJhZ0Rvd24oZXZlbnQpIHtcbiAgICB0aGlzLmluRHJhZ0FjdGlvbiA9IHRydWU7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBpZiAoZXZlbnQudHlwZSA9PT0gJ21vdXNlZG93bicpe1xuICAgICAgICB0aGlzLnBvczMgPSBldmVudC5jbGllbnRYO1xuICAgICAgICB0aGlzLm1vdXNlU3dpcGUoKTtcbiAgICAgICAgZG9jdW1lbnQub25tb3VzZXVwID0gdGhpcy5jbG9zZURyYWdNb3VzZUVsZW1lbnQ7XG4gICAgfVxuICAgIGVsc2UgaWYgKGV2ZW50LnR5cGUgPT09ICd0b3VjaHN0YXJ0Jyl7XG4gICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhcnJvd3MnKS5zdHlsZS52aXNpYmlsaXR5ID0gJ2hpZGRlbic7XG4gICAgICAgIHRoaXMucG9zMyA9IGV2ZW50LnRvdWNoZXNbMF0uY2xpZW50WDtcbiAgICAgICAgdGhpcy50b3VjaFN3aXBlKCk7XG4gICAgICAgIGRvY3VtZW50Lm9udG91Y2hlbmQgPSB0aGlzLmNsb3NlRHJhZ1RvdWNoRWxlbWVudDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogTW92aW5nIGEgbGluZSB3aXRoIGEgbW91c2VcbiAgICovXG4gIG1vdXNlU3dpcGUoKXtcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCBldmVudCA9PiB7XG4gICAgICBpZiAodGhpcy5pbkRyYWdBY3Rpb24pe1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0aGlzLnBvczEgPSB0aGlzLnBvczMgLSBldmVudC5jbGllbnRYO1xuICAgICAgICB0aGlzLnBvczMgPSBldmVudC5jbGllbnRYO1xuICAgICAgICB0aGlzLnN3aXBlSWQuc3R5bGUubGVmdCA9ICh0aGlzLnN3aXBlSWQub2Zmc2V0TGVmdCAtIHRoaXMucG9zMSkgKyAncHgnO1xuICAgICAgfVxuICAgICAgdGhpcy5tYXAub2wucmVuZGVyKCk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogTW92aW5nIGEgbGluZSB3aXRoIGEgdG91Y2hcbiAgICovXG4gIHRvdWNoU3dpcGUoKXtcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCd0b3VjaG1vdmUnLCBldmVudCA9PiB7XG4gICAgICBpZiAodGhpcy5pbkRyYWdBY3Rpb24pIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Fycm93cycpLnN0eWxlLnZpc2liaWxpdHkgPSAnaGlkZGVuJztcbiAgICAgICAgdGhpcy5wb3MxID0gdGhpcy5wb3MzIC0gZXZlbnQuY2hhbmdlZFRvdWNoZXNbMF0uY2xpZW50WDtcbiAgICAgICAgdGhpcy5wb3MzID0gZXZlbnQuY2hhbmdlZFRvdWNoZXNbMF0uY2xpZW50WDtcbiAgICAgICAgdGhpcy5zd2lwZUlkLnN0eWxlLmxlZnQgPSAodGhpcy5zd2lwZUlkLm9mZnNldExlZnQgLSB0aGlzLnBvczEpICsgJ3B4JztcbiAgICAgIH1cbiAgICAgIHRoaXMubWFwLm9sLnJlbmRlcigpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIERlYWN0aXZhdGUgYSBsaXN0ZW5lciBvZiBhIG1vdXNlLWFjdGlvblxuICAgKi9cbiAgY2xvc2VEcmFnTW91c2VFbGVtZW50KCkge1xuICAgIGRvY3VtZW50Lm9ubW91c2V1cCA9IG51bGw7XG4gICAgZG9jdW1lbnQub25tb3VzZW1vdmUgPSBudWxsO1xuICAgIHRoaXMuaW5EcmFnQWN0aW9uID0gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogRGVhY3RpdmF0ZSBhIGxpc3RlbmVyIG9mIGEgdG91Y2gtYWN0aW9uXG4gICAqL1xuICBjbG9zZURyYWdUb3VjaEVsZW1lbnQoKSB7XG4gICAgZG9jdW1lbnQub250b3VjaGVuZCA9IG51bGw7XG4gICAgZG9jdW1lbnQub250b3VjaG1vdmUgPSBudWxsO1xuICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhcnJvd3MnKS5zdHlsZS52aXNpYmlsaXR5ID0gJ3Zpc2libGUnO1xuICAgIHRoaXMuaW5EcmFnQWN0aW9uID0gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogQ3V0IHRoZSBpbWFnZSBvZiBhIGxheWVyIGJ5IHRoZSBwb3NpdGlvbiBvZiBzd2lwZWQtZWxlbWVudFxuICAgKi9cbiAgcHJlcmVuZGVyKGV2ZW50KSB7XG4gICAgICBjb25zdCBjdHggPSBldmVudC5jb250ZXh0O1xuICAgICAgY29uc3QgbWFwU2l6ZSA9IHRoaXMubWFwLm9sLmdldFNpemUoKTtcbiAgICAgIGNvbnN0IHdpZHRoID0gdGhpcy5zd2lwZUlkLm9mZnNldExlZnQgO1xuICAgICAgY29uc3QgdGwgPSBnZXRSZW5kZXJQaXhlbChldmVudCwgW3dpZHRoLCAwXSk7XG4gICAgICBjb25zdCB0ciA9IGdldFJlbmRlclBpeGVsKGV2ZW50LCBbMCwgMF0pO1xuICAgICAgY29uc3QgYmwgPSBnZXRSZW5kZXJQaXhlbChldmVudCwgW3dpZHRoLCBtYXBTaXplWzFdXSk7XG4gICAgICBjb25zdCBiciA9IGdldFJlbmRlclBpeGVsKGV2ZW50LCBbMCwgbWFwU2l6ZVsxXV0pO1xuICAgICAgY3R4LnNhdmUoKTtcbiAgICAgIGN0eC5iZWdpblBhdGgoKTtcbiAgICAgIGN0eC5tb3ZlVG8odGxbMF0sIHRsWzFdKTtcbiAgICAgIGN0eC5saW5lVG8oYmxbMF0sIGJsWzFdKTtcbiAgICAgIGN0eC5saW5lVG8oYnJbMF0sIGJyWzFdKTtcbiAgICAgIGN0eC5saW5lVG8odHJbMF0sIHRyWzFdKTtcbiAgICAgIGN0eC5jbG9zZVBhdGgoKTtcbiAgICAgIGN0eC5jbGlwKCk7XG4gIH1cblxuICAvKipcbiAgICogU2F2ZSBhIGN1cnJlbnQgc3RhdGUgb2YgdGhlIGNvbnRleHRcbiAgICovXG4gIHBvc3RyZW5kZXIoZXZlbnQpe1xuICAgIGV2ZW50LmNvbnRleHQucmVzdG9yZSgpO1xuICAgIGV2ZW50LmNvbnRleHQuc2F2ZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFpvb20gb24gZGl2XG4gICAqL1xuICAgICBwcml2YXRlIGxldFpvb20oKSB7XG4gICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaWdvLWxheWVyLXN3aXBlJykuYWRkRXZlbnRMaXN0ZW5lcignd2hlZWwnLCBldmVudCA9PiB7XG4gICAgICAgIGV2ZW50LmRlbHRhWSA+IDAgPyB0aGlzLm1hcC52aWV3Q29udHJvbGxlci56b29tT3V0KCkgOiB0aGlzLm1hcC52aWV3Q29udHJvbGxlci56b29tSW4oKTtcbiAgICAgIH0sIHRydWUpO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJpZ28tc3dpcGUtY29udHJvbC1jb250YWluZXJcIiAgaWQ9XCJpZ28tbGF5ZXItc3dpcGVcIlxuICAobW91c2Vkb3duKT1cImRyYWdEb3duKCRldmVudClcIlxuICAobW91c2V1cCk9XCJjbG9zZURyYWdNb3VzZUVsZW1lbnQoKVwiXG4gICh0b3VjaHN0YXJ0KT1cImRyYWdEb3duKCRldmVudClcIlxuICAodG91Y2hlbmQpPVwiY2xvc2VEcmFnVG91Y2hFbGVtZW50KClcIj5cbiAgPGRpdiBjbGFzcz1cImlnby1zd2lwZS1jb250cm9sLWxpbmVcIiA+PC9kaXY+XG4gIFxuICA8ZGl2IGNsYXNzPVwiaWdvLXN3aXBlLWNvbnRyb2wtYXJyb3dzXCIgaWQ9XCJhcnJvd3NcIj5cbiAgICA8ZGl2IGNsYXNzPVwiaWdvLWFycm93LWxlZnRcIj48L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiaWdvLWFycm93LXJpZ2h0XCI+PC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -1,2 +1,2 @@
1
1
  export * from './zoom-button.component';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9tYXAvem9vbS1idXR0b24vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx5QkFBeUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vem9vbS1idXR0b24uY29tcG9uZW50JztcclxuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9tYXAvem9vbS1idXR0b24vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx5QkFBeUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vem9vbS1idXR0b24uY29tcG9uZW50JztcbiJdfQ==
@@ -43,4 +43,4 @@ ZoomButtonComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ZoomBut
43
43
  }], color: [{
44
44
  type: Input
45
45
  }] }); })();
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiem9vbS1idXR0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvbWFwL3pvb20tYnV0dG9uL3pvb20tYnV0dG9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL21hcC96b29tLWJ1dHRvbi96b29tLWJ1dHRvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7OztBQVNqRCxNQUFNLE9BQU8sbUJBQW1CO0lBWTlCLGdCQUFlLENBQUM7SUFOaEIsSUFBSSxJQUFJLEtBQWEsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFFaEUsSUFBSSxPQUFPLEtBQWEsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUVsRixJQUFJLE9BQU8sS0FBYSxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUM7O3NGQVZsRSxtQkFBbUI7c0VBQW5CLG1CQUFtQjtRQ1RoQyw4QkFBdUM7UUFDckMsaUNBTXdDO1FBQXRDLGdHQUFTLCtCQUEyQixJQUFDOztRQUNyQyw4QkFBb0M7UUFDdEMsaUJBQVM7UUFFVCxpQ0FNeUM7UUFBdkMsZ0dBQVMsZ0NBQTRCLElBQUM7O1FBQ3RDLDhCQUFxQztRQUN2QyxpQkFBUztRQUNYLGlCQUFNOztRQWpCRixlQUF3RTtRQUF4RSx5SEFBd0Usb0JBQUEscUNBQUE7UUFVeEUsZUFBeUU7UUFBekUsMEhBQXlFLG9CQUFBLHFDQUFBOzt1RkRKaEUsbUJBQW1CO2NBTC9CLFNBQVM7ZUFBQztnQkFDVCxRQUFRLEVBQUUsaUJBQWlCO2dCQUMzQixXQUFXLEVBQUUsOEJBQThCO2dCQUMzQyxTQUFTLEVBQUUsQ0FBQyw4QkFBOEIsQ0FBQzthQUM1QztzQ0FHVSxHQUFHO2tCQUFYLEtBQUs7WUFFRyxLQUFLO2tCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBJZ29NYXAgfSBmcm9tICcuLi9zaGFyZWQvbWFwJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaWdvLXpvb20tYnV0dG9uJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vem9vbS1idXR0b24uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3pvb20tYnV0dG9uLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFpvb21CdXR0b25Db21wb25lbnQge1xyXG5cclxuICBASW5wdXQoKSBtYXA6IElnb01hcDtcclxuXHJcbiAgQElucHV0KCkgY29sb3I6IHN0cmluZztcclxuXHJcbiAgZ2V0IHpvb20oKTogbnVtYmVyIHsgcmV0dXJuIHRoaXMubWFwLnZpZXdDb250cm9sbGVyLmdldFpvb20oKTsgfVxyXG5cclxuICBnZXQgbWluWm9vbSgpOiBudW1iZXIgeyByZXR1cm4gdGhpcy5tYXAudmlld0NvbnRyb2xsZXIub2xWaWV3LmdldE1pblpvb20oKSB8fCAxOyB9XHJcblxyXG4gIGdldCBtYXhab29tKCk6IG51bWJlciB7IHJldHVybiB0aGlzLm1hcC52aWV3Q29udHJvbGxlci5vbFZpZXcuZ2V0TWF4Wm9vbSgpOyB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge31cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiaWdvLXpvb20tYnV0dG9uLWNvbnRhaW5lclwiPlxyXG4gIDxidXR0b25cclxuICAgIG1hdC1pY29uLWJ1dHRvblxyXG4gICAgW21hdFRvb2x0aXBdPVwiJ2lnby5nZW8ubWFwQnV0dG9ucy56b29tSW4nIHwgdHJhbnNsYXRlOiB7em9vbTogem9vbSArIDF9XCJcclxuICAgIG1hdFRvb2x0aXBQb3NpdGlvbj1cImxlZnRcIlxyXG4gICAgW2NvbG9yXT1cImNvbG9yXCJcclxuICAgIFtkaXNhYmxlZF09XCJ6b29tID49IG1heFpvb21cIlxyXG4gICAgKGNsaWNrKT1cIm1hcC52aWV3Q29udHJvbGxlci56b29tSW4oKVwiPlxyXG4gICAgPG1hdC1pY29uIHN2Z0ljb249XCJwbHVzXCI+PC9tYXQtaWNvbj5cclxuICA8L2J1dHRvbj5cclxuXHJcbiAgPGJ1dHRvblxyXG4gICAgbWF0LWljb24tYnV0dG9uXHJcbiAgICBbbWF0VG9vbHRpcF09XCInaWdvLmdlby5tYXBCdXR0b25zLnpvb21PdXQnIHwgdHJhbnNsYXRlOiB7em9vbTogem9vbSAtIDF9XCJcclxuICAgIG1hdFRvb2x0aXBQb3NpdGlvbj1cImxlZnRcIlxyXG4gICAgW2NvbG9yXT1cImNvbG9yXCJcclxuICAgIFtkaXNhYmxlZF09XCJ6b29tIDw9IG1pblpvb21cIlxyXG4gICAgKGNsaWNrKT1cIm1hcC52aWV3Q29udHJvbGxlci56b29tT3V0KClcIj5cclxuICAgIDxtYXQtaWNvbiBzdmdJY29uPVwibWludXNcIj48L21hdC1pY29uPlxyXG4gIDwvYnV0dG9uPlxyXG48L2Rpdj5cclxuIl19
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiem9vbS1idXR0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvbWFwL3pvb20tYnV0dG9uL3pvb20tYnV0dG9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL21hcC96b29tLWJ1dHRvbi96b29tLWJ1dHRvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7OztBQVNqRCxNQUFNLE9BQU8sbUJBQW1CO0lBWTlCLGdCQUFlLENBQUM7SUFOaEIsSUFBSSxJQUFJLEtBQWEsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFFaEUsSUFBSSxPQUFPLEtBQWEsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUVsRixJQUFJLE9BQU8sS0FBYSxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUM7O3NGQVZsRSxtQkFBbUI7c0VBQW5CLG1CQUFtQjtRQ1RoQyw4QkFBdUM7UUFDckMsaUNBTXdDO1FBQXRDLGdHQUFTLCtCQUEyQixJQUFDOztRQUNyQyw4QkFBb0M7UUFDdEMsaUJBQVM7UUFFVCxpQ0FNeUM7UUFBdkMsZ0dBQVMsZ0NBQTRCLElBQUM7O1FBQ3RDLDhCQUFxQztRQUN2QyxpQkFBUztRQUNYLGlCQUFNOztRQWpCRixlQUF3RTtRQUF4RSx5SEFBd0Usb0JBQUEscUNBQUE7UUFVeEUsZUFBeUU7UUFBekUsMEhBQXlFLG9CQUFBLHFDQUFBOzt1RkRKaEUsbUJBQW1CO2NBTC9CLFNBQVM7ZUFBQztnQkFDVCxRQUFRLEVBQUUsaUJBQWlCO2dCQUMzQixXQUFXLEVBQUUsOEJBQThCO2dCQUMzQyxTQUFTLEVBQUUsQ0FBQyw4QkFBOEIsQ0FBQzthQUM1QztzQ0FHVSxHQUFHO2tCQUFYLEtBQUs7WUFFRyxLQUFLO2tCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IElnb01hcCB9IGZyb20gJy4uL3NoYXJlZC9tYXAnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpZ28tem9vbS1idXR0b24nLFxuICB0ZW1wbGF0ZVVybDogJy4vem9vbS1idXR0b24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi96b29tLWJ1dHRvbi5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFpvb21CdXR0b25Db21wb25lbnQge1xuXG4gIEBJbnB1dCgpIG1hcDogSWdvTWFwO1xuXG4gIEBJbnB1dCgpIGNvbG9yOiBzdHJpbmc7XG5cbiAgZ2V0IHpvb20oKTogbnVtYmVyIHsgcmV0dXJuIHRoaXMubWFwLnZpZXdDb250cm9sbGVyLmdldFpvb20oKTsgfVxuXG4gIGdldCBtaW5ab29tKCk6IG51bWJlciB7IHJldHVybiB0aGlzLm1hcC52aWV3Q29udHJvbGxlci5vbFZpZXcuZ2V0TWluWm9vbSgpIHx8IDE7IH1cblxuICBnZXQgbWF4Wm9vbSgpOiBudW1iZXIgeyByZXR1cm4gdGhpcy5tYXAudmlld0NvbnRyb2xsZXIub2xWaWV3LmdldE1heFpvb20oKTsgfVxuXG4gIGNvbnN0cnVjdG9yKCkge31cbn1cbiIsIjxkaXYgY2xhc3M9XCJpZ28tem9vbS1idXR0b24tY29udGFpbmVyXCI+XG4gIDxidXR0b25cbiAgICBtYXQtaWNvbi1idXR0b25cbiAgICBbbWF0VG9vbHRpcF09XCInaWdvLmdlby5tYXBCdXR0b25zLnpvb21JbicgfCB0cmFuc2xhdGU6IHt6b29tOiB6b29tICsgMX1cIlxuICAgIG1hdFRvb2x0aXBQb3NpdGlvbj1cImxlZnRcIlxuICAgIFtjb2xvcl09XCJjb2xvclwiXG4gICAgW2Rpc2FibGVkXT1cInpvb20gPj0gbWF4Wm9vbVwiXG4gICAgKGNsaWNrKT1cIm1hcC52aWV3Q29udHJvbGxlci56b29tSW4oKVwiPlxuICAgIDxtYXQtaWNvbiBzdmdJY29uPVwicGx1c1wiPjwvbWF0LWljb24+XG4gIDwvYnV0dG9uPlxuXG4gIDxidXR0b25cbiAgICBtYXQtaWNvbi1idXR0b25cbiAgICBbbWF0VG9vbHRpcF09XCInaWdvLmdlby5tYXBCdXR0b25zLnpvb21PdXQnIHwgdHJhbnNsYXRlOiB7em9vbTogem9vbSAtIDF9XCJcbiAgICBtYXRUb29sdGlwUG9zaXRpb249XCJsZWZ0XCJcbiAgICBbY29sb3JdPVwiY29sb3JcIlxuICAgIFtkaXNhYmxlZF09XCJ6b29tIDw9IG1pblpvb21cIlxuICAgIChjbGljayk9XCJtYXAudmlld0NvbnRyb2xsZXIuem9vbU91dCgpXCI+XG4gICAgPG1hdC1pY29uIHN2Z0ljb249XCJtaW51c1wiPjwvbWF0LWljb24+XG4gIDwvYnV0dG9uPlxuPC9kaXY+XG4iXX0=
@@ -1,4 +1,4 @@
1
1
  export * from './shared';
2
2
  export * from './measurer/measurer.component';
3
3
  export * from './measurer/measure-format.pipe';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9tZWFzdXJlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyxnQ0FBZ0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc2hhcmVkJztcclxuZXhwb3J0ICogZnJvbSAnLi9tZWFzdXJlci9tZWFzdXJlci5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL21lYXN1cmVyL21lYXN1cmUtZm9ybWF0LnBpcGUnO1xyXG4iXX0=
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9tZWFzdXJlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyxnQ0FBZ0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc2hhcmVkJztcbmV4cG9ydCAqIGZyb20gJy4vbWVhc3VyZXIvbWVhc3VyZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbWVhc3VyZXIvbWVhc3VyZS1mb3JtYXQucGlwZSc7XG4iXX0=
@@ -17,4 +17,4 @@ IgoMeasureModule.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ imports: [[], Igo
17
17
  }]
18
18
  }], null, null); })();
19
19
  (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(IgoMeasureModule, { exports: [IgoMeasurerModule] }); })();
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVhc3VyZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9tZWFzdXJlL21lYXN1cmUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7O0FBUy9ELE1BQU0sT0FBTyxnQkFBZ0I7O2dGQUFoQixnQkFBZ0I7a0VBQWhCLGdCQUFnQjtzRUFObEIsRUFBRSxFQUdULGlCQUFpQjt1RkFHUixnQkFBZ0I7Y0FQNUIsUUFBUTtlQUFDO2dCQUNSLE9BQU8sRUFBRSxFQUFFO2dCQUNYLFlBQVksRUFBRSxFQUFFO2dCQUNoQixPQUFPLEVBQUU7b0JBQ1AsaUJBQWlCO2lCQUNsQjthQUNGOzt3RkFDWSxnQkFBZ0IsY0FIekIsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IElnb01lYXN1cmVyTW9kdWxlIH0gZnJvbSAnLi9tZWFzdXJlci9tZWFzdXJlci5tb2R1bGUnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBpbXBvcnRzOiBbXSxcclxuICBkZWNsYXJhdGlvbnM6IFtdLFxyXG4gIGV4cG9ydHM6IFtcclxuICAgIElnb01lYXN1cmVyTW9kdWxlXHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgSWdvTWVhc3VyZU1vZHVsZSB7fVxyXG4iXX0=
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVhc3VyZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9tZWFzdXJlL21lYXN1cmUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7O0FBUy9ELE1BQU0sT0FBTyxnQkFBZ0I7O2dGQUFoQixnQkFBZ0I7a0VBQWhCLGdCQUFnQjtzRUFObEIsRUFBRSxFQUdULGlCQUFpQjt1RkFHUixnQkFBZ0I7Y0FQNUIsUUFBUTtlQUFDO2dCQUNSLE9BQU8sRUFBRSxFQUFFO2dCQUNYLFlBQVksRUFBRSxFQUFFO2dCQUNoQixPQUFPLEVBQUU7b0JBQ1AsaUJBQWlCO2lCQUNsQjthQUNGOzt3RkFDWSxnQkFBZ0IsY0FIekIsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgSWdvTWVhc3VyZXJNb2R1bGUgfSBmcm9tICcuL21lYXN1cmVyL21lYXN1cmVyLm1vZHVsZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtdLFxuICBkZWNsYXJhdGlvbnM6IFtdLFxuICBleHBvcnRzOiBbXG4gICAgSWdvTWVhc3VyZXJNb2R1bGVcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBJZ29NZWFzdXJlTW9kdWxlIHt9XG4iXX0=
@@ -34,4 +34,4 @@ MeasureFormatPipe.ɵpipe = /*@__PURE__*/ i0.ɵɵdefinePipe({ name: "measureForma
34
34
  name: 'measureFormat'
35
35
  }]
36
36
  }], null, null); })();
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVhc3VyZS1mb3JtYXQucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL21lYXN1cmUvbWVhc3VyZXIvbWVhc3VyZS1mb3JtYXQucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUVwRCxPQUFPLEVBQUUsZUFBZSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUUsT0FBTyxFQUFFLFlBQVksRUFBRSxrQkFBa0IsRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7QUFFMUY7OztHQUdHO0FBSUgsTUFBTSxPQUFPLGlCQUFpQjtJQUU1Qjs7T0FFRztJQUNILFNBQVMsQ0FDUCxLQUFhLEVBQUUsSUFBeUMsRUFDeEQsV0FBb0IsS0FBSyxFQUN6QixVQUFrQixDQUFDO1FBRW5CLElBQUksR0FBRyxDQUFDO1FBQ1IsSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUF1QixDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3hFLEdBQUcsR0FBRyxrQkFBa0IsQ0FBQyxLQUFLLEVBQUUsSUFBdUIsQ0FBQyxDQUFDO1NBQzFEO2FBQU0sSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUMsT0FBTyxDQUFDLElBQXlCLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDbkYsR0FBRyxHQUFHLFlBQVksQ0FBQyxLQUFLLEVBQUUsSUFBeUIsQ0FBQyxDQUFDO1NBQ3REO1FBRUQsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxHQUFHLEVBQUU7WUFDOUIsT0FBTyxFQUFFLENBQUM7WUFDVixJQUFJO1lBQ0osUUFBUTtZQUNSLE1BQU0sRUFBRSxJQUFJO1NBQ2IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7SUFDWCxDQUFDOztrRkF2QlUsaUJBQWlCO3VGQUFqQixpQkFBaUI7dUZBQWpCLGlCQUFpQjtjQUg3QixJQUFJO2VBQUM7Z0JBQ0osSUFBSSxFQUFFLGVBQWU7YUFDdEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBNZWFzdXJlQXJlYVVuaXQsIE1lYXN1cmVMZW5ndGhVbml0IH0gZnJvbSAnLi4vc2hhcmVkL21lYXN1cmUuZW51bSc7XHJcbmltcG9ydCB7IG1ldGVyc1RvVW5pdCwgc3F1YXJlTWV0ZXJzVG9Vbml0LCBmb3JtYXRNZWFzdXJlIH0gZnJvbSAnLi4vc2hhcmVkL21lYXN1cmUudXRpbHMnO1xyXG5cclxuLyoqXHJcbiAqIFRoaXMgcGlwZSByZXR1cm5zIGEgbWVhc3VyZSBjb252ZXJ0ZWQgZnJvbSBtZXRlcnMgKG9yIHNxdWFyZSBtZXRlcnMpXHJcbiAqIHRvIHRoZSBzcGVjaWZpZWQgdW5pdC4gSXQgYWxzbyBrZWVwcyBhIGNlcnRhaW4gbnVtYmVyIG9mIGRlY2ltYWxzLlxyXG4gKi9cclxuQFBpcGUoe1xyXG4gIG5hbWU6ICdtZWFzdXJlRm9ybWF0J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgTWVhc3VyZUZvcm1hdFBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcclxuXHJcbiAgLyoqXHJcbiAgICogQGlnbm9yZVxyXG4gICAqL1xyXG4gIHRyYW5zZm9ybShcclxuICAgIHZhbHVlOiBudW1iZXIsIHVuaXQ6IE1lYXN1cmVBcmVhVW5pdCB8IE1lYXN1cmVMZW5ndGhVbml0LFxyXG4gICAgdW5pdEFiYnI6IGJvb2xlYW4gPSBmYWxzZSxcclxuICAgIGRlY2ltYWw6IG51bWJlciA9IDFcclxuICApOiBudW1iZXIge1xyXG4gICAgbGV0IG91dDtcclxuICAgIGlmIChPYmplY3QudmFsdWVzKE1lYXN1cmVBcmVhVW5pdCkuaW5kZXhPZih1bml0IGFzIE1lYXN1cmVBcmVhVW5pdCkgPj0gMCkge1xyXG4gICAgICBvdXQgPSBzcXVhcmVNZXRlcnNUb1VuaXQodmFsdWUsIHVuaXQgYXMgTWVhc3VyZUFyZWFVbml0KTtcclxuICAgIH0gZWxzZSBpZiAoT2JqZWN0LnZhbHVlcyhNZWFzdXJlTGVuZ3RoVW5pdCkuaW5kZXhPZih1bml0IGFzIE1lYXN1cmVMZW5ndGhVbml0KSA+PSAwKSB7XHJcbiAgICAgIG91dCA9IG1ldGVyc1RvVW5pdCh2YWx1ZSwgdW5pdCBhcyBNZWFzdXJlTGVuZ3RoVW5pdCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG91dCA/IGZvcm1hdE1lYXN1cmUob3V0LCB7XHJcbiAgICAgIGRlY2ltYWw6IDEsXHJcbiAgICAgIHVuaXQsXHJcbiAgICAgIHVuaXRBYmJyLFxyXG4gICAgICBsb2NhbGU6ICdmcidcclxuICAgIH0pIDogb3V0O1xyXG4gIH1cclxufVxyXG4iXX0=
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVhc3VyZS1mb3JtYXQucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL21lYXN1cmUvbWVhc3VyZXIvbWVhc3VyZS1mb3JtYXQucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUVwRCxPQUFPLEVBQUUsZUFBZSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUUsT0FBTyxFQUFFLFlBQVksRUFBRSxrQkFBa0IsRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7QUFFMUY7OztHQUdHO0FBSUgsTUFBTSxPQUFPLGlCQUFpQjtJQUU1Qjs7T0FFRztJQUNILFNBQVMsQ0FDUCxLQUFhLEVBQUUsSUFBeUMsRUFDeEQsV0FBb0IsS0FBSyxFQUN6QixVQUFrQixDQUFDO1FBRW5CLElBQUksR0FBRyxDQUFDO1FBQ1IsSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUF1QixDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3hFLEdBQUcsR0FBRyxrQkFBa0IsQ0FBQyxLQUFLLEVBQUUsSUFBdUIsQ0FBQyxDQUFDO1NBQzFEO2FBQU0sSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUMsT0FBTyxDQUFDLElBQXlCLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDbkYsR0FBRyxHQUFHLFlBQVksQ0FBQyxLQUFLLEVBQUUsSUFBeUIsQ0FBQyxDQUFDO1NBQ3REO1FBRUQsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxHQUFHLEVBQUU7WUFDOUIsT0FBTyxFQUFFLENBQUM7WUFDVixJQUFJO1lBQ0osUUFBUTtZQUNSLE1BQU0sRUFBRSxJQUFJO1NBQ2IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7SUFDWCxDQUFDOztrRkF2QlUsaUJBQWlCO3VGQUFqQixpQkFBaUI7dUZBQWpCLGlCQUFpQjtjQUg3QixJQUFJO2VBQUM7Z0JBQ0osSUFBSSxFQUFFLGVBQWU7YUFDdEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE1lYXN1cmVBcmVhVW5pdCwgTWVhc3VyZUxlbmd0aFVuaXQgfSBmcm9tICcuLi9zaGFyZWQvbWVhc3VyZS5lbnVtJztcbmltcG9ydCB7IG1ldGVyc1RvVW5pdCwgc3F1YXJlTWV0ZXJzVG9Vbml0LCBmb3JtYXRNZWFzdXJlIH0gZnJvbSAnLi4vc2hhcmVkL21lYXN1cmUudXRpbHMnO1xuXG4vKipcbiAqIFRoaXMgcGlwZSByZXR1cm5zIGEgbWVhc3VyZSBjb252ZXJ0ZWQgZnJvbSBtZXRlcnMgKG9yIHNxdWFyZSBtZXRlcnMpXG4gKiB0byB0aGUgc3BlY2lmaWVkIHVuaXQuIEl0IGFsc28ga2VlcHMgYSBjZXJ0YWluIG51bWJlciBvZiBkZWNpbWFscy5cbiAqL1xuQFBpcGUoe1xuICBuYW1lOiAnbWVhc3VyZUZvcm1hdCdcbn0pXG5leHBvcnQgY2xhc3MgTWVhc3VyZUZvcm1hdFBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgdHJhbnNmb3JtKFxuICAgIHZhbHVlOiBudW1iZXIsIHVuaXQ6IE1lYXN1cmVBcmVhVW5pdCB8IE1lYXN1cmVMZW5ndGhVbml0LFxuICAgIHVuaXRBYmJyOiBib29sZWFuID0gZmFsc2UsXG4gICAgZGVjaW1hbDogbnVtYmVyID0gMVxuICApOiBudW1iZXIge1xuICAgIGxldCBvdXQ7XG4gICAgaWYgKE9iamVjdC52YWx1ZXMoTWVhc3VyZUFyZWFVbml0KS5pbmRleE9mKHVuaXQgYXMgTWVhc3VyZUFyZWFVbml0KSA+PSAwKSB7XG4gICAgICBvdXQgPSBzcXVhcmVNZXRlcnNUb1VuaXQodmFsdWUsIHVuaXQgYXMgTWVhc3VyZUFyZWFVbml0KTtcbiAgICB9IGVsc2UgaWYgKE9iamVjdC52YWx1ZXMoTWVhc3VyZUxlbmd0aFVuaXQpLmluZGV4T2YodW5pdCBhcyBNZWFzdXJlTGVuZ3RoVW5pdCkgPj0gMCkge1xuICAgICAgb3V0ID0gbWV0ZXJzVG9Vbml0KHZhbHVlLCB1bml0IGFzIE1lYXN1cmVMZW5ndGhVbml0KTtcbiAgICB9XG5cbiAgICByZXR1cm4gb3V0ID8gZm9ybWF0TWVhc3VyZShvdXQsIHtcbiAgICAgIGRlY2ltYWw6IDEsXG4gICAgICB1bml0LFxuICAgICAgdW5pdEFiYnIsXG4gICAgICBsb2NhbGU6ICdmcidcbiAgICB9KSA6IG91dDtcbiAgfVxufVxuIl19