devextreme-angular 24.1.13 → 24.1.14

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 (936) hide show
  1. package/common/charts/index.d.ts +2 -2
  2. package/common/data/custom-store/index.d.ts +2 -2
  3. package/common/grids/index.d.ts +2 -2
  4. package/common/index.d.ts +2 -2
  5. package/core/component.d.ts +2 -2
  6. package/core/events-strategy.d.ts +2 -2
  7. package/core/index.d.ts +2 -2
  8. package/core/integration.d.ts +2 -2
  9. package/core/iterable-differ-helper.d.ts +2 -2
  10. package/core/nested-option.d.ts +2 -2
  11. package/core/template-host.d.ts +2 -2
  12. package/core/template.d.ts +2 -2
  13. package/core/transfer-state.d.ts +2 -2
  14. package/core/utils.d.ts +2 -2
  15. package/esm2022/common/charts/index.mjs +3 -3
  16. package/esm2022/common/data/custom-store/index.mjs +3 -3
  17. package/esm2022/common/grids/index.mjs +3 -3
  18. package/esm2022/common/index.mjs +3 -3
  19. package/esm2022/core/component.mjs +3 -3
  20. package/esm2022/core/events-strategy.mjs +3 -3
  21. package/esm2022/core/index.mjs +3 -3
  22. package/esm2022/core/integration.mjs +3 -3
  23. package/esm2022/core/iterable-differ-helper.mjs +3 -3
  24. package/esm2022/core/nested-option.mjs +3 -3
  25. package/esm2022/core/template-host.mjs +3 -3
  26. package/esm2022/core/template.mjs +3 -3
  27. package/esm2022/core/transfer-state.mjs +3 -3
  28. package/esm2022/core/utils.mjs +3 -3
  29. package/esm2022/core/watcher-helper.mjs +3 -3
  30. package/esm2022/http/ajax.mjs +3 -3
  31. package/esm2022/http/index.mjs +3 -3
  32. package/esm2022/index.mjs +3 -3
  33. package/esm2022/server/index.mjs +3 -3
  34. package/esm2022/server/render.mjs +3 -3
  35. package/esm2022/ui/accordion/index.mjs +3 -3
  36. package/esm2022/ui/action-sheet/index.mjs +3 -3
  37. package/esm2022/ui/all.mjs +3 -3
  38. package/esm2022/ui/autocomplete/index.mjs +3 -3
  39. package/esm2022/ui/bar-gauge/index.mjs +3 -3
  40. package/esm2022/ui/box/index.mjs +3 -3
  41. package/esm2022/ui/bullet/index.mjs +3 -3
  42. package/esm2022/ui/button/index.mjs +3 -3
  43. package/esm2022/ui/button-group/index.mjs +3 -3
  44. package/esm2022/ui/calendar/index.mjs +3 -3
  45. package/esm2022/ui/chart/index.mjs +3 -3
  46. package/esm2022/ui/check-box/index.mjs +3 -3
  47. package/esm2022/ui/circular-gauge/index.mjs +3 -3
  48. package/esm2022/ui/color-box/index.mjs +3 -3
  49. package/esm2022/ui/context-menu/index.mjs +3 -3
  50. package/esm2022/ui/data-grid/index.mjs +3 -3
  51. package/esm2022/ui/date-box/index.mjs +3 -3
  52. package/esm2022/ui/date-range-box/index.mjs +3 -3
  53. package/esm2022/ui/defer-rendering/index.mjs +3 -3
  54. package/esm2022/ui/diagram/index.mjs +3 -3
  55. package/esm2022/ui/draggable/index.mjs +3 -3
  56. package/esm2022/ui/drawer/index.mjs +3 -3
  57. package/esm2022/ui/drop-down-box/index.mjs +3 -3
  58. package/esm2022/ui/drop-down-button/index.mjs +3 -3
  59. package/esm2022/ui/file-manager/index.mjs +3 -3
  60. package/esm2022/ui/file-uploader/index.mjs +3 -3
  61. package/esm2022/ui/filter-builder/index.mjs +3 -3
  62. package/esm2022/ui/form/index.mjs +3 -3
  63. package/esm2022/ui/funnel/index.mjs +3 -3
  64. package/esm2022/ui/gallery/index.mjs +3 -3
  65. package/esm2022/ui/gantt/index.mjs +3 -3
  66. package/esm2022/ui/html-editor/index.mjs +3 -3
  67. package/esm2022/ui/linear-gauge/index.mjs +3 -3
  68. package/esm2022/ui/list/index.mjs +3 -3
  69. package/esm2022/ui/load-indicator/index.mjs +3 -3
  70. package/esm2022/ui/load-panel/index.mjs +3 -3
  71. package/esm2022/ui/lookup/index.mjs +3 -3
  72. package/esm2022/ui/map/index.mjs +3 -3
  73. package/esm2022/ui/menu/index.mjs +3 -3
  74. package/esm2022/ui/multi-view/index.mjs +3 -3
  75. package/esm2022/ui/nested/adapter.mjs +3 -3
  76. package/esm2022/ui/nested/adaptive-layout.mjs +3 -3
  77. package/esm2022/ui/nested/aggregation-interval.mjs +3 -3
  78. package/esm2022/ui/nested/aggregation.mjs +3 -3
  79. package/esm2022/ui/nested/animation.mjs +3 -3
  80. package/esm2022/ui/nested/annotation-dxi.mjs +3 -3
  81. package/esm2022/ui/nested/api-key.mjs +3 -3
  82. package/esm2022/ui/nested/appointment-dragging.mjs +3 -3
  83. package/esm2022/ui/nested/area.mjs +3 -3
  84. package/esm2022/ui/nested/argument-axis.mjs +3 -3
  85. package/esm2022/ui/nested/argument-format.mjs +3 -3
  86. package/esm2022/ui/nested/at.mjs +3 -3
  87. package/esm2022/ui/nested/auto-layout.mjs +3 -3
  88. package/esm2022/ui/nested/background-color.mjs +3 -3
  89. package/esm2022/ui/nested/background.mjs +3 -3
  90. package/esm2022/ui/nested/bar.mjs +3 -3
  91. package/esm2022/ui/nested/base/animation-config.mjs +3 -3
  92. package/esm2022/ui/nested/base/animation-state.mjs +3 -3
  93. package/esm2022/ui/nested/base/box-options.mjs +3 -3
  94. package/esm2022/ui/nested/base/button-group-item-dxi.mjs +3 -3
  95. package/esm2022/ui/nested/base/button-options.mjs +3 -3
  96. package/esm2022/ui/nested/base/calendar-options.mjs +3 -3
  97. package/esm2022/ui/nested/base/chart-annotation-config-dxi.mjs +3 -3
  98. package/esm2022/ui/nested/base/chart-common-annotation-config.mjs +3 -3
  99. package/esm2022/ui/nested/base/chart-common-series-settings.mjs +3 -3
  100. package/esm2022/ui/nested/base/chart-series-dxi.mjs +3 -3
  101. package/esm2022/ui/nested/base/charts-color.mjs +3 -3
  102. package/esm2022/ui/nested/base/column-chooser-search-config.mjs +3 -3
  103. package/esm2022/ui/nested/base/column-chooser-selection-config.mjs +3 -3
  104. package/esm2022/ui/nested/base/data-change-dxi.mjs +3 -3
  105. package/esm2022/ui/nested/base/data-grid-column-dxi.mjs +3 -3
  106. package/esm2022/ui/nested/base/data-grid-toolbar.mjs +3 -3
  107. package/esm2022/ui/nested/base/diagram-custom-command-dxi.mjs +3 -3
  108. package/esm2022/ui/nested/base/file-manager-context-menu.mjs +3 -3
  109. package/esm2022/ui/nested/base/file-manager-toolbar-item-dxi.mjs +3 -3
  110. package/esm2022/ui/nested/base/file-uploader-options.mjs +3 -3
  111. package/esm2022/ui/nested/base/filter-builder-custom-operation-dxi.mjs +3 -3
  112. package/esm2022/ui/nested/base/filter-builder-field-dxi.mjs +3 -3
  113. package/esm2022/ui/nested/base/filter-builder-options.mjs +3 -3
  114. package/esm2022/ui/nested/base/form-options.mjs +3 -3
  115. package/esm2022/ui/nested/base/form-simple-item.mjs +3 -3
  116. package/esm2022/ui/nested/base/format.mjs +3 -3
  117. package/esm2022/ui/nested/base/gantt-filter-row-operation-descriptions.mjs +3 -3
  118. package/esm2022/ui/nested/base/gantt-filter-row.mjs +3 -3
  119. package/esm2022/ui/nested/base/gantt-header-filter-texts.mjs +3 -3
  120. package/esm2022/ui/nested/base/gantt-header-filter.mjs +3 -3
  121. package/esm2022/ui/nested/base/gantt-sorting.mjs +3 -3
  122. package/esm2022/ui/nested/base/gantt-strip-line-dxi.mjs +3 -3
  123. package/esm2022/ui/nested/base/gauge-indicator.mjs +3 -3
  124. package/esm2022/ui/nested/base/html-editor-image-upload-tab-item-dxi.mjs +3 -3
  125. package/esm2022/ui/nested/base/html-editor-image-upload.mjs +3 -3
  126. package/esm2022/ui/nested/base/html-editor-media-resizing.mjs +3 -3
  127. package/esm2022/ui/nested/base/html-editor-mention-dxi.mjs +3 -3
  128. package/esm2022/ui/nested/base/html-editor-table-context-menu.mjs +3 -3
  129. package/esm2022/ui/nested/base/html-editor-table-resizing.mjs +3 -3
  130. package/esm2022/ui/nested/base/html-editor-variables.mjs +3 -3
  131. package/esm2022/ui/nested/base/pivot-grid-data-source.mjs +3 -3
  132. package/esm2022/ui/nested/base/popup-options.mjs +3 -3
  133. package/esm2022/ui/nested/base/position-config.mjs +3 -3
  134. package/esm2022/ui/nested/base/scheduler-scrolling.mjs +3 -3
  135. package/esm2022/ui/nested/base/sortable-options.mjs +3 -3
  136. package/esm2022/ui/nested/base/splitter-options.mjs +3 -3
  137. package/esm2022/ui/nested/base/tab-panel-options.mjs +3 -3
  138. package/esm2022/ui/nested/base/text-box-options.mjs +3 -3
  139. package/esm2022/ui/nested/base/text-editor-button-dxi.mjs +3 -3
  140. package/esm2022/ui/nested/base/vector-map-projection-config.mjs +3 -3
  141. package/esm2022/ui/nested/base/viz-font.mjs +3 -3
  142. package/esm2022/ui/nested/base/viz-scale-break-dxi.mjs +3 -3
  143. package/esm2022/ui/nested/behavior.mjs +3 -3
  144. package/esm2022/ui/nested/border.mjs +3 -3
  145. package/esm2022/ui/nested/boundary-offset.mjs +3 -3
  146. package/esm2022/ui/nested/box.mjs +3 -3
  147. package/esm2022/ui/nested/break-dxi.mjs +3 -3
  148. package/esm2022/ui/nested/break-style.mjs +3 -3
  149. package/esm2022/ui/nested/bubble.mjs +3 -3
  150. package/esm2022/ui/nested/button-dxi.mjs +3 -3
  151. package/esm2022/ui/nested/button-options.mjs +3 -3
  152. package/esm2022/ui/nested/calendar-options.mjs +3 -3
  153. package/esm2022/ui/nested/candlestick.mjs +3 -3
  154. package/esm2022/ui/nested/center-dxi.mjs +3 -3
  155. package/esm2022/ui/nested/change-dxi.mjs +3 -3
  156. package/esm2022/ui/nested/chart.mjs +3 -3
  157. package/esm2022/ui/nested/col-count-by-screen.mjs +3 -3
  158. package/esm2022/ui/nested/col-dxi.mjs +3 -3
  159. package/esm2022/ui/nested/collision.mjs +3 -3
  160. package/esm2022/ui/nested/color.mjs +3 -3
  161. package/esm2022/ui/nested/colorizer.mjs +3 -3
  162. package/esm2022/ui/nested/column-chooser.mjs +3 -3
  163. package/esm2022/ui/nested/column-dxi.mjs +3 -3
  164. package/esm2022/ui/nested/column-fixing.mjs +3 -3
  165. package/esm2022/ui/nested/command-dxi.mjs +3 -3
  166. package/esm2022/ui/nested/common-annotation-settings.mjs +3 -3
  167. package/esm2022/ui/nested/common-axis-settings.mjs +3 -3
  168. package/esm2022/ui/nested/common-pane-settings.mjs +3 -3
  169. package/esm2022/ui/nested/common-series-settings.mjs +3 -3
  170. package/esm2022/ui/nested/connection-point-dxi.mjs +3 -3
  171. package/esm2022/ui/nested/connector.mjs +3 -3
  172. package/esm2022/ui/nested/constant-line-dxi.mjs +3 -3
  173. package/esm2022/ui/nested/constant-line-style.mjs +3 -3
  174. package/esm2022/ui/nested/context-menu.mjs +3 -3
  175. package/esm2022/ui/nested/context-toolbox.mjs +3 -3
  176. package/esm2022/ui/nested/control-bar.mjs +3 -3
  177. package/esm2022/ui/nested/crosshair.mjs +3 -3
  178. package/esm2022/ui/nested/cursor-offset.mjs +3 -3
  179. package/esm2022/ui/nested/custom-operation-dxi.mjs +3 -3
  180. package/esm2022/ui/nested/custom-shape-dxi.mjs +3 -3
  181. package/esm2022/ui/nested/data-prepare-settings.mjs +3 -3
  182. package/esm2022/ui/nested/data-source.mjs +3 -3
  183. package/esm2022/ui/nested/default-item-properties.mjs +3 -3
  184. package/esm2022/ui/nested/delay.mjs +3 -3
  185. package/esm2022/ui/nested/dependencies.mjs +3 -3
  186. package/esm2022/ui/nested/details.mjs +3 -3
  187. package/esm2022/ui/nested/display-format.mjs +3 -3
  188. package/esm2022/ui/nested/drag-box-style.mjs +3 -3
  189. package/esm2022/ui/nested/drop-down-options.mjs +3 -3
  190. package/esm2022/ui/nested/edges.mjs +3 -3
  191. package/esm2022/ui/nested/editing.mjs +3 -3
  192. package/esm2022/ui/nested/export.mjs +3 -3
  193. package/esm2022/ui/nested/field-chooser.mjs +3 -3
  194. package/esm2022/ui/nested/field-dxi.mjs +3 -3
  195. package/esm2022/ui/nested/field-panel.mjs +3 -3
  196. package/esm2022/ui/nested/file-selection-item-dxi.mjs +3 -3
  197. package/esm2022/ui/nested/file-uploader-options.mjs +3 -3
  198. package/esm2022/ui/nested/filter-builder-popup.mjs +3 -3
  199. package/esm2022/ui/nested/filter-builder.mjs +3 -3
  200. package/esm2022/ui/nested/filter-operation-descriptions.mjs +3 -3
  201. package/esm2022/ui/nested/filter-panel.mjs +3 -3
  202. package/esm2022/ui/nested/filter-row.mjs +3 -3
  203. package/esm2022/ui/nested/font.mjs +3 -3
  204. package/esm2022/ui/nested/form-item.mjs +3 -3
  205. package/esm2022/ui/nested/form.mjs +3 -3
  206. package/esm2022/ui/nested/format.mjs +3 -3
  207. package/esm2022/ui/nested/from.mjs +3 -3
  208. package/esm2022/ui/nested/fullstackedarea.mjs +3 -3
  209. package/esm2022/ui/nested/fullstackedbar.mjs +3 -3
  210. package/esm2022/ui/nested/fullstackedline.mjs +3 -3
  211. package/esm2022/ui/nested/fullstackedspline.mjs +3 -3
  212. package/esm2022/ui/nested/fullstackedsplinearea.mjs +3 -3
  213. package/esm2022/ui/nested/geometry.mjs +3 -3
  214. package/esm2022/ui/nested/grid-size.mjs +3 -3
  215. package/esm2022/ui/nested/grid.mjs +3 -3
  216. package/esm2022/ui/nested/group-dxi.mjs +3 -3
  217. package/esm2022/ui/nested/group-item-dxi.mjs +3 -3
  218. package/esm2022/ui/nested/group-operation-descriptions.mjs +3 -3
  219. package/esm2022/ui/nested/group-panel.mjs +3 -3
  220. package/esm2022/ui/nested/group.mjs +3 -3
  221. package/esm2022/ui/nested/grouping.mjs +3 -3
  222. package/esm2022/ui/nested/hatching.mjs +3 -3
  223. package/esm2022/ui/nested/header-filter.mjs +3 -3
  224. package/esm2022/ui/nested/height.mjs +3 -3
  225. package/esm2022/ui/nested/hide-event.mjs +3 -3
  226. package/esm2022/ui/nested/hide.mjs +3 -3
  227. package/esm2022/ui/nested/history-toolbar.mjs +3 -3
  228. package/esm2022/ui/nested/horizontal-line.mjs +3 -3
  229. package/esm2022/ui/nested/hover-style.mjs +3 -3
  230. package/esm2022/ui/nested/image-upload.mjs +3 -3
  231. package/esm2022/ui/nested/image.mjs +3 -3
  232. package/esm2022/ui/nested/indent.mjs +3 -3
  233. package/esm2022/ui/nested/index.mjs +3 -3
  234. package/esm2022/ui/nested/item-dragging.mjs +3 -3
  235. package/esm2022/ui/nested/item-dxi.mjs +3 -3
  236. package/esm2022/ui/nested/item-text-format.mjs +3 -3
  237. package/esm2022/ui/nested/item-view.mjs +3 -3
  238. package/esm2022/ui/nested/item.mjs +3 -3
  239. package/esm2022/ui/nested/keyboard-navigation.mjs +3 -3
  240. package/esm2022/ui/nested/label.mjs +3 -3
  241. package/esm2022/ui/nested/layer-dxi.mjs +3 -3
  242. package/esm2022/ui/nested/legend-dxi.mjs +3 -3
  243. package/esm2022/ui/nested/legend.mjs +3 -3
  244. package/esm2022/ui/nested/line.mjs +3 -3
  245. package/esm2022/ui/nested/link.mjs +3 -3
  246. package/esm2022/ui/nested/load-panel.mjs +3 -3
  247. package/esm2022/ui/nested/loading-indicator.mjs +3 -3
  248. package/esm2022/ui/nested/location-dxi.mjs +3 -3
  249. package/esm2022/ui/nested/lookup.mjs +3 -3
  250. package/esm2022/ui/nested/main-toolbar.mjs +3 -3
  251. package/esm2022/ui/nested/margin.mjs +3 -3
  252. package/esm2022/ui/nested/marker-dxi.mjs +3 -3
  253. package/esm2022/ui/nested/marker.mjs +3 -3
  254. package/esm2022/ui/nested/master-detail.mjs +3 -3
  255. package/esm2022/ui/nested/max-range.mjs +3 -3
  256. package/esm2022/ui/nested/media-resizing.mjs +3 -3
  257. package/esm2022/ui/nested/mention-dxi.mjs +3 -3
  258. package/esm2022/ui/nested/menu-item-dxi.mjs +3 -3
  259. package/esm2022/ui/nested/min-range.mjs +3 -3
  260. package/esm2022/ui/nested/min-visual-range-length.mjs +3 -3
  261. package/esm2022/ui/nested/minor-grid.mjs +3 -3
  262. package/esm2022/ui/nested/minor-tick-interval.mjs +3 -3
  263. package/esm2022/ui/nested/minor-tick.mjs +3 -3
  264. package/esm2022/ui/nested/my.mjs +3 -3
  265. package/esm2022/ui/nested/node.mjs +3 -3
  266. package/esm2022/ui/nested/nodes.mjs +3 -3
  267. package/esm2022/ui/nested/notifications.mjs +3 -3
  268. package/esm2022/ui/nested/offset.mjs +3 -3
  269. package/esm2022/ui/nested/operation-descriptions.mjs +3 -3
  270. package/esm2022/ui/nested/options.mjs +3 -3
  271. package/esm2022/ui/nested/page-size.mjs +3 -3
  272. package/esm2022/ui/nested/pager.mjs +3 -3
  273. package/esm2022/ui/nested/paging.mjs +3 -3
  274. package/esm2022/ui/nested/pane-dxi.mjs +3 -3
  275. package/esm2022/ui/nested/permissions.mjs +3 -3
  276. package/esm2022/ui/nested/point.mjs +3 -3
  277. package/esm2022/ui/nested/popup.mjs +3 -3
  278. package/esm2022/ui/nested/position.mjs +3 -3
  279. package/esm2022/ui/nested/projection.mjs +3 -3
  280. package/esm2022/ui/nested/properties-panel.mjs +3 -3
  281. package/esm2022/ui/nested/range-container.mjs +3 -3
  282. package/esm2022/ui/nested/range-dxi.mjs +3 -3
  283. package/esm2022/ui/nested/rangearea.mjs +3 -3
  284. package/esm2022/ui/nested/rangebar.mjs +3 -3
  285. package/esm2022/ui/nested/reduction.mjs +3 -3
  286. package/esm2022/ui/nested/remote-operations.mjs +3 -3
  287. package/esm2022/ui/nested/resource-assignments.mjs +3 -3
  288. package/esm2022/ui/nested/resource-dxi.mjs +3 -3
  289. package/esm2022/ui/nested/resources.mjs +3 -3
  290. package/esm2022/ui/nested/route-dxi.mjs +3 -3
  291. package/esm2022/ui/nested/row-dragging.mjs +3 -3
  292. package/esm2022/ui/nested/row-dxi.mjs +3 -3
  293. package/esm2022/ui/nested/scale-type-range.mjs +3 -3
  294. package/esm2022/ui/nested/scale.mjs +3 -3
  295. package/esm2022/ui/nested/scatter.mjs +3 -3
  296. package/esm2022/ui/nested/scroll-bar.mjs +3 -3
  297. package/esm2022/ui/nested/scrolling.mjs +3 -3
  298. package/esm2022/ui/nested/search-editor-options.mjs +3 -3
  299. package/esm2022/ui/nested/search-panel.mjs +3 -3
  300. package/esm2022/ui/nested/search.mjs +3 -3
  301. package/esm2022/ui/nested/selection-style.mjs +3 -3
  302. package/esm2022/ui/nested/selection.mjs +3 -3
  303. package/esm2022/ui/nested/series-dxi.mjs +3 -3
  304. package/esm2022/ui/nested/series-template.mjs +3 -3
  305. package/esm2022/ui/nested/shadow.mjs +3 -3
  306. package/esm2022/ui/nested/show-event.mjs +3 -3
  307. package/esm2022/ui/nested/show-first-submenu-mode.mjs +3 -3
  308. package/esm2022/ui/nested/show-submenu-mode.mjs +3 -3
  309. package/esm2022/ui/nested/show.mjs +3 -3
  310. package/esm2022/ui/nested/shutter.mjs +3 -3
  311. package/esm2022/ui/nested/size.mjs +3 -3
  312. package/esm2022/ui/nested/slider-handle.mjs +3 -3
  313. package/esm2022/ui/nested/slider-marker.mjs +3 -3
  314. package/esm2022/ui/nested/small-values-grouping.mjs +3 -3
  315. package/esm2022/ui/nested/sort-by-group-summary-info-dxi.mjs +3 -3
  316. package/esm2022/ui/nested/sorting.mjs +3 -3
  317. package/esm2022/ui/nested/source.mjs +3 -3
  318. package/esm2022/ui/nested/spline.mjs +3 -3
  319. package/esm2022/ui/nested/splinearea.mjs +3 -3
  320. package/esm2022/ui/nested/splitter.mjs +3 -3
  321. package/esm2022/ui/nested/stackedarea.mjs +3 -3
  322. package/esm2022/ui/nested/stackedbar.mjs +3 -3
  323. package/esm2022/ui/nested/stackedline.mjs +3 -3
  324. package/esm2022/ui/nested/stackedspline.mjs +3 -3
  325. package/esm2022/ui/nested/stackedsplinearea.mjs +3 -3
  326. package/esm2022/ui/nested/state-storing.mjs +3 -3
  327. package/esm2022/ui/nested/steparea.mjs +3 -3
  328. package/esm2022/ui/nested/stepline.mjs +3 -3
  329. package/esm2022/ui/nested/stock.mjs +3 -3
  330. package/esm2022/ui/nested/store.mjs +3 -3
  331. package/esm2022/ui/nested/strip-dxi.mjs +3 -3
  332. package/esm2022/ui/nested/strip-line-dxi.mjs +3 -3
  333. package/esm2022/ui/nested/strip-style.mjs +3 -3
  334. package/esm2022/ui/nested/subtitle.mjs +3 -3
  335. package/esm2022/ui/nested/subvalue-indicator.mjs +3 -3
  336. package/esm2022/ui/nested/summary.mjs +3 -3
  337. package/esm2022/ui/nested/tab-dxi.mjs +3 -3
  338. package/esm2022/ui/nested/tab-panel-options.mjs +3 -3
  339. package/esm2022/ui/nested/table-context-menu.mjs +3 -3
  340. package/esm2022/ui/nested/table-resizing.mjs +3 -3
  341. package/esm2022/ui/nested/tasks.mjs +3 -3
  342. package/esm2022/ui/nested/text.mjs +3 -3
  343. package/esm2022/ui/nested/texts.mjs +3 -3
  344. package/esm2022/ui/nested/tick-interval.mjs +3 -3
  345. package/esm2022/ui/nested/tick.mjs +3 -3
  346. package/esm2022/ui/nested/tile.mjs +3 -3
  347. package/esm2022/ui/nested/title.mjs +3 -3
  348. package/esm2022/ui/nested/to.mjs +3 -3
  349. package/esm2022/ui/nested/toolbar-item-dxi.mjs +3 -3
  350. package/esm2022/ui/nested/toolbar.mjs +3 -3
  351. package/esm2022/ui/nested/toolbox.mjs +3 -3
  352. package/esm2022/ui/nested/tooltip.mjs +3 -3
  353. package/esm2022/ui/nested/total-item-dxi.mjs +3 -3
  354. package/esm2022/ui/nested/upload.mjs +3 -3
  355. package/esm2022/ui/nested/url.mjs +3 -3
  356. package/esm2022/ui/nested/validation-rule-dxi.mjs +3 -3
  357. package/esm2022/ui/nested/validation.mjs +3 -3
  358. package/esm2022/ui/nested/value-axis-dxi.mjs +3 -3
  359. package/esm2022/ui/nested/value-axis.mjs +3 -3
  360. package/esm2022/ui/nested/value-error-bar.mjs +3 -3
  361. package/esm2022/ui/nested/value-format.mjs +3 -3
  362. package/esm2022/ui/nested/value-indicator.mjs +3 -3
  363. package/esm2022/ui/nested/variables.mjs +3 -3
  364. package/esm2022/ui/nested/vertical-line.mjs +3 -3
  365. package/esm2022/ui/nested/view-dxi.mjs +3 -3
  366. package/esm2022/ui/nested/view-toolbar.mjs +3 -3
  367. package/esm2022/ui/nested/width.mjs +3 -3
  368. package/esm2022/ui/nested/zoom-and-pan.mjs +3 -3
  369. package/esm2022/ui/nested/zoom-level.mjs +3 -3
  370. package/esm2022/ui/number-box/index.mjs +3 -3
  371. package/esm2022/ui/pie-chart/index.mjs +3 -3
  372. package/esm2022/ui/pivot-grid/index.mjs +3 -3
  373. package/esm2022/ui/pivot-grid-field-chooser/index.mjs +3 -3
  374. package/esm2022/ui/polar-chart/index.mjs +3 -3
  375. package/esm2022/ui/popover/index.mjs +3 -3
  376. package/esm2022/ui/popup/index.mjs +3 -3
  377. package/esm2022/ui/progress-bar/index.mjs +3 -3
  378. package/esm2022/ui/radio-group/index.mjs +3 -3
  379. package/esm2022/ui/range-selector/index.mjs +3 -3
  380. package/esm2022/ui/range-slider/index.mjs +3 -3
  381. package/esm2022/ui/recurrence-editor/index.mjs +3 -3
  382. package/esm2022/ui/resizable/index.mjs +3 -3
  383. package/esm2022/ui/responsive-box/index.mjs +3 -3
  384. package/esm2022/ui/sankey/index.mjs +3 -3
  385. package/esm2022/ui/scheduler/index.mjs +3 -3
  386. package/esm2022/ui/scroll-view/index.mjs +3 -3
  387. package/esm2022/ui/select-box/index.mjs +3 -3
  388. package/esm2022/ui/slider/index.mjs +3 -3
  389. package/esm2022/ui/sortable/index.mjs +3 -3
  390. package/esm2022/ui/sparkline/index.mjs +3 -3
  391. package/esm2022/ui/speed-dial-action/index.mjs +3 -3
  392. package/esm2022/ui/splitter/index.mjs +3 -3
  393. package/esm2022/ui/switch/index.mjs +3 -3
  394. package/esm2022/ui/tab-panel/index.mjs +3 -3
  395. package/esm2022/ui/tabs/index.mjs +3 -3
  396. package/esm2022/ui/tag-box/index.mjs +3 -3
  397. package/esm2022/ui/text-area/index.mjs +3 -3
  398. package/esm2022/ui/text-box/index.mjs +3 -3
  399. package/esm2022/ui/tile-view/index.mjs +3 -3
  400. package/esm2022/ui/toast/index.mjs +3 -3
  401. package/esm2022/ui/toolbar/index.mjs +3 -3
  402. package/esm2022/ui/tooltip/index.mjs +3 -3
  403. package/esm2022/ui/tree-list/index.mjs +3 -3
  404. package/esm2022/ui/tree-map/index.mjs +3 -3
  405. package/esm2022/ui/tree-view/index.mjs +3 -3
  406. package/esm2022/ui/validation-group/index.mjs +3 -3
  407. package/esm2022/ui/validation-summary/index.mjs +3 -3
  408. package/esm2022/ui/validator/index.mjs +3 -3
  409. package/esm2022/ui/vector-map/index.mjs +3 -3
  410. package/fesm2022/devextreme-angular-common-charts.mjs +2 -2
  411. package/fesm2022/devextreme-angular-common-charts.mjs.map +1 -1
  412. package/fesm2022/devextreme-angular-common-data-custom-store.mjs +2 -2
  413. package/fesm2022/devextreme-angular-common-data-custom-store.mjs.map +1 -1
  414. package/fesm2022/devextreme-angular-common-grids.mjs +2 -2
  415. package/fesm2022/devextreme-angular-common-grids.mjs.map +1 -1
  416. package/fesm2022/devextreme-angular-common.mjs +2 -2
  417. package/fesm2022/devextreme-angular-common.mjs.map +1 -1
  418. package/fesm2022/devextreme-angular-core.mjs +22 -22
  419. package/fesm2022/devextreme-angular-core.mjs.map +1 -1
  420. package/fesm2022/devextreme-angular-http.mjs +4 -4
  421. package/fesm2022/devextreme-angular-http.mjs.map +1 -1
  422. package/fesm2022/devextreme-angular-server.mjs +4 -4
  423. package/fesm2022/devextreme-angular-server.mjs.map +1 -1
  424. package/fesm2022/devextreme-angular-ui-accordion.mjs +2 -2
  425. package/fesm2022/devextreme-angular-ui-accordion.mjs.map +1 -1
  426. package/fesm2022/devextreme-angular-ui-action-sheet.mjs +2 -2
  427. package/fesm2022/devextreme-angular-ui-action-sheet.mjs.map +1 -1
  428. package/fesm2022/devextreme-angular-ui-autocomplete.mjs +2 -2
  429. package/fesm2022/devextreme-angular-ui-autocomplete.mjs.map +1 -1
  430. package/fesm2022/devextreme-angular-ui-bar-gauge.mjs +2 -2
  431. package/fesm2022/devextreme-angular-ui-bar-gauge.mjs.map +1 -1
  432. package/fesm2022/devextreme-angular-ui-box.mjs +2 -2
  433. package/fesm2022/devextreme-angular-ui-box.mjs.map +1 -1
  434. package/fesm2022/devextreme-angular-ui-bullet.mjs +2 -2
  435. package/fesm2022/devextreme-angular-ui-bullet.mjs.map +1 -1
  436. package/fesm2022/devextreme-angular-ui-button-group.mjs +2 -2
  437. package/fesm2022/devextreme-angular-ui-button-group.mjs.map +1 -1
  438. package/fesm2022/devextreme-angular-ui-button.mjs +2 -2
  439. package/fesm2022/devextreme-angular-ui-button.mjs.map +1 -1
  440. package/fesm2022/devextreme-angular-ui-calendar.mjs +2 -2
  441. package/fesm2022/devextreme-angular-ui-calendar.mjs.map +1 -1
  442. package/fesm2022/devextreme-angular-ui-chart.mjs +2 -2
  443. package/fesm2022/devextreme-angular-ui-chart.mjs.map +1 -1
  444. package/fesm2022/devextreme-angular-ui-check-box.mjs +2 -2
  445. package/fesm2022/devextreme-angular-ui-check-box.mjs.map +1 -1
  446. package/fesm2022/devextreme-angular-ui-circular-gauge.mjs +2 -2
  447. package/fesm2022/devextreme-angular-ui-circular-gauge.mjs.map +1 -1
  448. package/fesm2022/devextreme-angular-ui-color-box.mjs +2 -2
  449. package/fesm2022/devextreme-angular-ui-color-box.mjs.map +1 -1
  450. package/fesm2022/devextreme-angular-ui-context-menu.mjs +2 -2
  451. package/fesm2022/devextreme-angular-ui-context-menu.mjs.map +1 -1
  452. package/fesm2022/devextreme-angular-ui-data-grid.mjs +2 -2
  453. package/fesm2022/devextreme-angular-ui-data-grid.mjs.map +1 -1
  454. package/fesm2022/devextreme-angular-ui-date-box.mjs +2 -2
  455. package/fesm2022/devextreme-angular-ui-date-box.mjs.map +1 -1
  456. package/fesm2022/devextreme-angular-ui-date-range-box.mjs +2 -2
  457. package/fesm2022/devextreme-angular-ui-date-range-box.mjs.map +1 -1
  458. package/fesm2022/devextreme-angular-ui-defer-rendering.mjs +2 -2
  459. package/fesm2022/devextreme-angular-ui-defer-rendering.mjs.map +1 -1
  460. package/fesm2022/devextreme-angular-ui-diagram.mjs +2 -2
  461. package/fesm2022/devextreme-angular-ui-diagram.mjs.map +1 -1
  462. package/fesm2022/devextreme-angular-ui-draggable.mjs +2 -2
  463. package/fesm2022/devextreme-angular-ui-draggable.mjs.map +1 -1
  464. package/fesm2022/devextreme-angular-ui-drawer.mjs +2 -2
  465. package/fesm2022/devextreme-angular-ui-drawer.mjs.map +1 -1
  466. package/fesm2022/devextreme-angular-ui-drop-down-box.mjs +2 -2
  467. package/fesm2022/devextreme-angular-ui-drop-down-box.mjs.map +1 -1
  468. package/fesm2022/devextreme-angular-ui-drop-down-button.mjs +2 -2
  469. package/fesm2022/devextreme-angular-ui-drop-down-button.mjs.map +1 -1
  470. package/fesm2022/devextreme-angular-ui-file-manager.mjs +2 -2
  471. package/fesm2022/devextreme-angular-ui-file-manager.mjs.map +1 -1
  472. package/fesm2022/devextreme-angular-ui-file-uploader.mjs +2 -2
  473. package/fesm2022/devextreme-angular-ui-file-uploader.mjs.map +1 -1
  474. package/fesm2022/devextreme-angular-ui-filter-builder.mjs +2 -2
  475. package/fesm2022/devextreme-angular-ui-filter-builder.mjs.map +1 -1
  476. package/fesm2022/devextreme-angular-ui-form.mjs +2 -2
  477. package/fesm2022/devextreme-angular-ui-form.mjs.map +1 -1
  478. package/fesm2022/devextreme-angular-ui-funnel.mjs +2 -2
  479. package/fesm2022/devextreme-angular-ui-funnel.mjs.map +1 -1
  480. package/fesm2022/devextreme-angular-ui-gallery.mjs +2 -2
  481. package/fesm2022/devextreme-angular-ui-gallery.mjs.map +1 -1
  482. package/fesm2022/devextreme-angular-ui-gantt.mjs +2 -2
  483. package/fesm2022/devextreme-angular-ui-gantt.mjs.map +1 -1
  484. package/fesm2022/devextreme-angular-ui-html-editor.mjs +2 -2
  485. package/fesm2022/devextreme-angular-ui-html-editor.mjs.map +1 -1
  486. package/fesm2022/devextreme-angular-ui-linear-gauge.mjs +2 -2
  487. package/fesm2022/devextreme-angular-ui-linear-gauge.mjs.map +1 -1
  488. package/fesm2022/devextreme-angular-ui-list.mjs +2 -2
  489. package/fesm2022/devextreme-angular-ui-list.mjs.map +1 -1
  490. package/fesm2022/devextreme-angular-ui-load-indicator.mjs +2 -2
  491. package/fesm2022/devextreme-angular-ui-load-indicator.mjs.map +1 -1
  492. package/fesm2022/devextreme-angular-ui-load-panel.mjs +2 -2
  493. package/fesm2022/devextreme-angular-ui-load-panel.mjs.map +1 -1
  494. package/fesm2022/devextreme-angular-ui-lookup.mjs +2 -2
  495. package/fesm2022/devextreme-angular-ui-lookup.mjs.map +1 -1
  496. package/fesm2022/devextreme-angular-ui-map.mjs +2 -2
  497. package/fesm2022/devextreme-angular-ui-map.mjs.map +1 -1
  498. package/fesm2022/devextreme-angular-ui-menu.mjs +2 -2
  499. package/fesm2022/devextreme-angular-ui-menu.mjs.map +1 -1
  500. package/fesm2022/devextreme-angular-ui-multi-view.mjs +2 -2
  501. package/fesm2022/devextreme-angular-ui-multi-view.mjs.map +1 -1
  502. package/fesm2022/devextreme-angular-ui-nested.mjs +590 -590
  503. package/fesm2022/devextreme-angular-ui-nested.mjs.map +1 -1
  504. package/fesm2022/devextreme-angular-ui-number-box.mjs +2 -2
  505. package/fesm2022/devextreme-angular-ui-number-box.mjs.map +1 -1
  506. package/fesm2022/devextreme-angular-ui-pie-chart.mjs +2 -2
  507. package/fesm2022/devextreme-angular-ui-pie-chart.mjs.map +1 -1
  508. package/fesm2022/devextreme-angular-ui-pivot-grid-field-chooser.mjs +2 -2
  509. package/fesm2022/devextreme-angular-ui-pivot-grid-field-chooser.mjs.map +1 -1
  510. package/fesm2022/devextreme-angular-ui-pivot-grid.mjs +2 -2
  511. package/fesm2022/devextreme-angular-ui-pivot-grid.mjs.map +1 -1
  512. package/fesm2022/devextreme-angular-ui-polar-chart.mjs +2 -2
  513. package/fesm2022/devextreme-angular-ui-polar-chart.mjs.map +1 -1
  514. package/fesm2022/devextreme-angular-ui-popover.mjs +2 -2
  515. package/fesm2022/devextreme-angular-ui-popover.mjs.map +1 -1
  516. package/fesm2022/devextreme-angular-ui-popup.mjs +2 -2
  517. package/fesm2022/devextreme-angular-ui-popup.mjs.map +1 -1
  518. package/fesm2022/devextreme-angular-ui-progress-bar.mjs +2 -2
  519. package/fesm2022/devextreme-angular-ui-progress-bar.mjs.map +1 -1
  520. package/fesm2022/devextreme-angular-ui-radio-group.mjs +2 -2
  521. package/fesm2022/devextreme-angular-ui-radio-group.mjs.map +1 -1
  522. package/fesm2022/devextreme-angular-ui-range-selector.mjs +2 -2
  523. package/fesm2022/devextreme-angular-ui-range-selector.mjs.map +1 -1
  524. package/fesm2022/devextreme-angular-ui-range-slider.mjs +2 -2
  525. package/fesm2022/devextreme-angular-ui-range-slider.mjs.map +1 -1
  526. package/fesm2022/devextreme-angular-ui-recurrence-editor.mjs +2 -2
  527. package/fesm2022/devextreme-angular-ui-recurrence-editor.mjs.map +1 -1
  528. package/fesm2022/devextreme-angular-ui-resizable.mjs +2 -2
  529. package/fesm2022/devextreme-angular-ui-resizable.mjs.map +1 -1
  530. package/fesm2022/devextreme-angular-ui-responsive-box.mjs +2 -2
  531. package/fesm2022/devextreme-angular-ui-responsive-box.mjs.map +1 -1
  532. package/fesm2022/devextreme-angular-ui-sankey.mjs +2 -2
  533. package/fesm2022/devextreme-angular-ui-sankey.mjs.map +1 -1
  534. package/fesm2022/devextreme-angular-ui-scheduler.mjs +2 -2
  535. package/fesm2022/devextreme-angular-ui-scheduler.mjs.map +1 -1
  536. package/fesm2022/devextreme-angular-ui-scroll-view.mjs +2 -2
  537. package/fesm2022/devextreme-angular-ui-scroll-view.mjs.map +1 -1
  538. package/fesm2022/devextreme-angular-ui-select-box.mjs +2 -2
  539. package/fesm2022/devextreme-angular-ui-select-box.mjs.map +1 -1
  540. package/fesm2022/devextreme-angular-ui-slider.mjs +2 -2
  541. package/fesm2022/devextreme-angular-ui-slider.mjs.map +1 -1
  542. package/fesm2022/devextreme-angular-ui-sortable.mjs +2 -2
  543. package/fesm2022/devextreme-angular-ui-sortable.mjs.map +1 -1
  544. package/fesm2022/devextreme-angular-ui-sparkline.mjs +2 -2
  545. package/fesm2022/devextreme-angular-ui-sparkline.mjs.map +1 -1
  546. package/fesm2022/devextreme-angular-ui-speed-dial-action.mjs +2 -2
  547. package/fesm2022/devextreme-angular-ui-speed-dial-action.mjs.map +1 -1
  548. package/fesm2022/devextreme-angular-ui-splitter.mjs +2 -2
  549. package/fesm2022/devextreme-angular-ui-splitter.mjs.map +1 -1
  550. package/fesm2022/devextreme-angular-ui-switch.mjs +2 -2
  551. package/fesm2022/devextreme-angular-ui-switch.mjs.map +1 -1
  552. package/fesm2022/devextreme-angular-ui-tab-panel.mjs +2 -2
  553. package/fesm2022/devextreme-angular-ui-tab-panel.mjs.map +1 -1
  554. package/fesm2022/devextreme-angular-ui-tabs.mjs +2 -2
  555. package/fesm2022/devextreme-angular-ui-tabs.mjs.map +1 -1
  556. package/fesm2022/devextreme-angular-ui-tag-box.mjs +2 -2
  557. package/fesm2022/devextreme-angular-ui-tag-box.mjs.map +1 -1
  558. package/fesm2022/devextreme-angular-ui-text-area.mjs +2 -2
  559. package/fesm2022/devextreme-angular-ui-text-area.mjs.map +1 -1
  560. package/fesm2022/devextreme-angular-ui-text-box.mjs +2 -2
  561. package/fesm2022/devextreme-angular-ui-text-box.mjs.map +1 -1
  562. package/fesm2022/devextreme-angular-ui-tile-view.mjs +2 -2
  563. package/fesm2022/devextreme-angular-ui-tile-view.mjs.map +1 -1
  564. package/fesm2022/devextreme-angular-ui-toast.mjs +2 -2
  565. package/fesm2022/devextreme-angular-ui-toast.mjs.map +1 -1
  566. package/fesm2022/devextreme-angular-ui-toolbar.mjs +2 -2
  567. package/fesm2022/devextreme-angular-ui-toolbar.mjs.map +1 -1
  568. package/fesm2022/devextreme-angular-ui-tooltip.mjs +2 -2
  569. package/fesm2022/devextreme-angular-ui-tooltip.mjs.map +1 -1
  570. package/fesm2022/devextreme-angular-ui-tree-list.mjs +2 -2
  571. package/fesm2022/devextreme-angular-ui-tree-list.mjs.map +1 -1
  572. package/fesm2022/devextreme-angular-ui-tree-map.mjs +2 -2
  573. package/fesm2022/devextreme-angular-ui-tree-map.mjs.map +1 -1
  574. package/fesm2022/devextreme-angular-ui-tree-view.mjs +2 -2
  575. package/fesm2022/devextreme-angular-ui-tree-view.mjs.map +1 -1
  576. package/fesm2022/devextreme-angular-ui-validation-group.mjs +2 -2
  577. package/fesm2022/devextreme-angular-ui-validation-group.mjs.map +1 -1
  578. package/fesm2022/devextreme-angular-ui-validation-summary.mjs +2 -2
  579. package/fesm2022/devextreme-angular-ui-validation-summary.mjs.map +1 -1
  580. package/fesm2022/devextreme-angular-ui-validator.mjs +2 -2
  581. package/fesm2022/devextreme-angular-ui-validator.mjs.map +1 -1
  582. package/fesm2022/devextreme-angular-ui-vector-map.mjs +2 -2
  583. package/fesm2022/devextreme-angular-ui-vector-map.mjs.map +1 -1
  584. package/fesm2022/devextreme-angular.mjs +10 -10
  585. package/fesm2022/devextreme-angular.mjs.map +1 -1
  586. package/http/ajax.d.ts +2 -2
  587. package/http/index.d.ts +2 -2
  588. package/index.d.ts +2 -2
  589. package/package.json +2 -2
  590. package/server/index.d.ts +2 -2
  591. package/ui/accordion/index.d.ts +2 -2
  592. package/ui/action-sheet/index.d.ts +2 -2
  593. package/ui/autocomplete/index.d.ts +2 -2
  594. package/ui/bar-gauge/index.d.ts +2 -2
  595. package/ui/box/index.d.ts +2 -2
  596. package/ui/bullet/index.d.ts +2 -2
  597. package/ui/button/index.d.ts +2 -2
  598. package/ui/button-group/index.d.ts +2 -2
  599. package/ui/calendar/index.d.ts +2 -2
  600. package/ui/chart/index.d.ts +2 -2
  601. package/ui/check-box/index.d.ts +2 -2
  602. package/ui/circular-gauge/index.d.ts +2 -2
  603. package/ui/color-box/index.d.ts +2 -2
  604. package/ui/context-menu/index.d.ts +2 -2
  605. package/ui/data-grid/index.d.ts +2 -2
  606. package/ui/date-box/index.d.ts +2 -2
  607. package/ui/date-range-box/index.d.ts +2 -2
  608. package/ui/defer-rendering/index.d.ts +2 -2
  609. package/ui/diagram/index.d.ts +2 -2
  610. package/ui/draggable/index.d.ts +2 -2
  611. package/ui/drawer/index.d.ts +2 -2
  612. package/ui/drop-down-box/index.d.ts +2 -2
  613. package/ui/drop-down-button/index.d.ts +2 -2
  614. package/ui/file-manager/index.d.ts +2 -2
  615. package/ui/file-uploader/index.d.ts +2 -2
  616. package/ui/filter-builder/index.d.ts +2 -2
  617. package/ui/form/index.d.ts +2 -2
  618. package/ui/funnel/index.d.ts +2 -2
  619. package/ui/gallery/index.d.ts +2 -2
  620. package/ui/gantt/index.d.ts +2 -2
  621. package/ui/html-editor/index.d.ts +2 -2
  622. package/ui/linear-gauge/index.d.ts +2 -2
  623. package/ui/list/index.d.ts +2 -2
  624. package/ui/load-indicator/index.d.ts +2 -2
  625. package/ui/load-panel/index.d.ts +2 -2
  626. package/ui/lookup/index.d.ts +2 -2
  627. package/ui/map/index.d.ts +2 -2
  628. package/ui/menu/index.d.ts +2 -2
  629. package/ui/multi-view/index.d.ts +2 -2
  630. package/ui/nested/adapter.d.ts +2 -2
  631. package/ui/nested/adaptive-layout.d.ts +2 -2
  632. package/ui/nested/aggregation-interval.d.ts +2 -2
  633. package/ui/nested/aggregation.d.ts +2 -2
  634. package/ui/nested/animation.d.ts +2 -2
  635. package/ui/nested/api-key.d.ts +2 -2
  636. package/ui/nested/appointment-dragging.d.ts +2 -2
  637. package/ui/nested/area.d.ts +2 -2
  638. package/ui/nested/argument-axis.d.ts +2 -2
  639. package/ui/nested/argument-format.d.ts +2 -2
  640. package/ui/nested/at.d.ts +2 -2
  641. package/ui/nested/auto-layout.d.ts +2 -2
  642. package/ui/nested/background-color.d.ts +2 -2
  643. package/ui/nested/background.d.ts +2 -2
  644. package/ui/nested/bar.d.ts +2 -2
  645. package/ui/nested/base/animation-config.d.ts +2 -2
  646. package/ui/nested/base/animation-state.d.ts +2 -2
  647. package/ui/nested/base/box-options.d.ts +2 -2
  648. package/ui/nested/base/button-group-item-dxi.d.ts +2 -2
  649. package/ui/nested/base/button-options.d.ts +2 -2
  650. package/ui/nested/base/calendar-options.d.ts +2 -2
  651. package/ui/nested/base/chart-annotation-config-dxi.d.ts +2 -2
  652. package/ui/nested/base/chart-common-annotation-config.d.ts +2 -2
  653. package/ui/nested/base/chart-common-series-settings.d.ts +2 -2
  654. package/ui/nested/base/chart-series-dxi.d.ts +2 -2
  655. package/ui/nested/base/charts-color.d.ts +2 -2
  656. package/ui/nested/base/column-chooser-search-config.d.ts +2 -2
  657. package/ui/nested/base/column-chooser-selection-config.d.ts +2 -2
  658. package/ui/nested/base/data-change-dxi.d.ts +2 -2
  659. package/ui/nested/base/data-grid-column-dxi.d.ts +2 -2
  660. package/ui/nested/base/data-grid-toolbar.d.ts +2 -2
  661. package/ui/nested/base/diagram-custom-command-dxi.d.ts +2 -2
  662. package/ui/nested/base/file-manager-context-menu.d.ts +2 -2
  663. package/ui/nested/base/file-manager-toolbar-item-dxi.d.ts +2 -2
  664. package/ui/nested/base/file-uploader-options.d.ts +2 -2
  665. package/ui/nested/base/filter-builder-custom-operation-dxi.d.ts +2 -2
  666. package/ui/nested/base/filter-builder-field-dxi.d.ts +2 -2
  667. package/ui/nested/base/filter-builder-options.d.ts +2 -2
  668. package/ui/nested/base/form-options.d.ts +2 -2
  669. package/ui/nested/base/form-simple-item.d.ts +2 -2
  670. package/ui/nested/base/format.d.ts +2 -2
  671. package/ui/nested/base/gantt-filter-row-operation-descriptions.d.ts +2 -2
  672. package/ui/nested/base/gantt-filter-row.d.ts +2 -2
  673. package/ui/nested/base/gantt-header-filter-texts.d.ts +2 -2
  674. package/ui/nested/base/gantt-header-filter.d.ts +2 -2
  675. package/ui/nested/base/gantt-sorting.d.ts +2 -2
  676. package/ui/nested/base/gantt-strip-line-dxi.d.ts +2 -2
  677. package/ui/nested/base/gauge-indicator.d.ts +2 -2
  678. package/ui/nested/base/html-editor-image-upload-tab-item-dxi.d.ts +2 -2
  679. package/ui/nested/base/html-editor-image-upload.d.ts +2 -2
  680. package/ui/nested/base/html-editor-media-resizing.d.ts +2 -2
  681. package/ui/nested/base/html-editor-mention-dxi.d.ts +2 -2
  682. package/ui/nested/base/html-editor-table-context-menu.d.ts +2 -2
  683. package/ui/nested/base/html-editor-table-resizing.d.ts +2 -2
  684. package/ui/nested/base/html-editor-variables.d.ts +2 -2
  685. package/ui/nested/base/pivot-grid-data-source.d.ts +2 -2
  686. package/ui/nested/base/popup-options.d.ts +2 -2
  687. package/ui/nested/base/position-config.d.ts +2 -2
  688. package/ui/nested/base/scheduler-scrolling.d.ts +2 -2
  689. package/ui/nested/base/sortable-options.d.ts +2 -2
  690. package/ui/nested/base/splitter-options.d.ts +2 -2
  691. package/ui/nested/base/tab-panel-options.d.ts +2 -2
  692. package/ui/nested/base/text-box-options.d.ts +2 -2
  693. package/ui/nested/base/text-editor-button-dxi.d.ts +2 -2
  694. package/ui/nested/base/vector-map-projection-config.d.ts +2 -2
  695. package/ui/nested/base/viz-font.d.ts +2 -2
  696. package/ui/nested/base/viz-scale-break-dxi.d.ts +2 -2
  697. package/ui/nested/behavior.d.ts +2 -2
  698. package/ui/nested/border.d.ts +2 -2
  699. package/ui/nested/boundary-offset.d.ts +2 -2
  700. package/ui/nested/box.d.ts +2 -2
  701. package/ui/nested/break-style.d.ts +2 -2
  702. package/ui/nested/bubble.d.ts +2 -2
  703. package/ui/nested/button-options.d.ts +2 -2
  704. package/ui/nested/calendar-options.d.ts +2 -2
  705. package/ui/nested/candlestick.d.ts +2 -2
  706. package/ui/nested/chart.d.ts +2 -2
  707. package/ui/nested/col-count-by-screen.d.ts +2 -2
  708. package/ui/nested/collision.d.ts +2 -2
  709. package/ui/nested/color.d.ts +2 -2
  710. package/ui/nested/colorizer.d.ts +2 -2
  711. package/ui/nested/column-chooser.d.ts +2 -2
  712. package/ui/nested/column-dxi.d.ts +2 -2
  713. package/ui/nested/column-fixing.d.ts +2 -2
  714. package/ui/nested/command-dxi.d.ts +2 -2
  715. package/ui/nested/common-annotation-settings.d.ts +2 -2
  716. package/ui/nested/common-axis-settings.d.ts +2 -2
  717. package/ui/nested/common-pane-settings.d.ts +2 -2
  718. package/ui/nested/common-series-settings.d.ts +2 -2
  719. package/ui/nested/connector.d.ts +2 -2
  720. package/ui/nested/constant-line-style.d.ts +2 -2
  721. package/ui/nested/context-menu.d.ts +2 -2
  722. package/ui/nested/context-toolbox.d.ts +2 -2
  723. package/ui/nested/control-bar.d.ts +2 -2
  724. package/ui/nested/crosshair.d.ts +2 -2
  725. package/ui/nested/cursor-offset.d.ts +2 -2
  726. package/ui/nested/custom-shape-dxi.d.ts +2 -2
  727. package/ui/nested/data-prepare-settings.d.ts +2 -2
  728. package/ui/nested/data-source.d.ts +2 -2
  729. package/ui/nested/default-item-properties.d.ts +2 -2
  730. package/ui/nested/delay.d.ts +2 -2
  731. package/ui/nested/dependencies.d.ts +2 -2
  732. package/ui/nested/details.d.ts +2 -2
  733. package/ui/nested/display-format.d.ts +2 -2
  734. package/ui/nested/drag-box-style.d.ts +2 -2
  735. package/ui/nested/drop-down-options.d.ts +2 -2
  736. package/ui/nested/edges.d.ts +2 -2
  737. package/ui/nested/editing.d.ts +2 -2
  738. package/ui/nested/export.d.ts +2 -2
  739. package/ui/nested/field-chooser.d.ts +2 -2
  740. package/ui/nested/field-panel.d.ts +2 -2
  741. package/ui/nested/file-uploader-options.d.ts +2 -2
  742. package/ui/nested/filter-builder-popup.d.ts +2 -2
  743. package/ui/nested/filter-builder.d.ts +2 -2
  744. package/ui/nested/filter-operation-descriptions.d.ts +2 -2
  745. package/ui/nested/filter-panel.d.ts +2 -2
  746. package/ui/nested/filter-row.d.ts +2 -2
  747. package/ui/nested/font.d.ts +2 -2
  748. package/ui/nested/form-item.d.ts +2 -2
  749. package/ui/nested/form.d.ts +2 -2
  750. package/ui/nested/format.d.ts +2 -2
  751. package/ui/nested/from.d.ts +2 -2
  752. package/ui/nested/fullstackedarea.d.ts +2 -2
  753. package/ui/nested/fullstackedbar.d.ts +2 -2
  754. package/ui/nested/fullstackedline.d.ts +2 -2
  755. package/ui/nested/fullstackedspline.d.ts +2 -2
  756. package/ui/nested/fullstackedsplinearea.d.ts +2 -2
  757. package/ui/nested/geometry.d.ts +2 -2
  758. package/ui/nested/grid-size.d.ts +2 -2
  759. package/ui/nested/grid.d.ts +2 -2
  760. package/ui/nested/group-dxi.d.ts +2 -2
  761. package/ui/nested/group-operation-descriptions.d.ts +2 -2
  762. package/ui/nested/group-panel.d.ts +2 -2
  763. package/ui/nested/group.d.ts +2 -2
  764. package/ui/nested/grouping.d.ts +2 -2
  765. package/ui/nested/hatching.d.ts +2 -2
  766. package/ui/nested/header-filter.d.ts +2 -2
  767. package/ui/nested/height.d.ts +2 -2
  768. package/ui/nested/hide-event.d.ts +2 -2
  769. package/ui/nested/hide.d.ts +2 -2
  770. package/ui/nested/history-toolbar.d.ts +2 -2
  771. package/ui/nested/horizontal-line.d.ts +2 -2
  772. package/ui/nested/hover-style.d.ts +2 -2
  773. package/ui/nested/image-upload.d.ts +2 -2
  774. package/ui/nested/image.d.ts +2 -2
  775. package/ui/nested/indent.d.ts +2 -2
  776. package/ui/nested/index.d.ts +2 -2
  777. package/ui/nested/item-dragging.d.ts +2 -2
  778. package/ui/nested/item-dxi.d.ts +2 -2
  779. package/ui/nested/item-text-format.d.ts +2 -2
  780. package/ui/nested/item-view.d.ts +2 -2
  781. package/ui/nested/item.d.ts +2 -2
  782. package/ui/nested/keyboard-navigation.d.ts +2 -2
  783. package/ui/nested/label.d.ts +2 -2
  784. package/ui/nested/legend.d.ts +2 -2
  785. package/ui/nested/line.d.ts +2 -2
  786. package/ui/nested/link.d.ts +2 -2
  787. package/ui/nested/load-panel.d.ts +2 -2
  788. package/ui/nested/loading-indicator.d.ts +2 -2
  789. package/ui/nested/lookup.d.ts +2 -2
  790. package/ui/nested/main-toolbar.d.ts +2 -2
  791. package/ui/nested/margin.d.ts +2 -2
  792. package/ui/nested/marker-dxi.d.ts +2 -2
  793. package/ui/nested/marker.d.ts +2 -2
  794. package/ui/nested/master-detail.d.ts +2 -2
  795. package/ui/nested/max-range.d.ts +2 -2
  796. package/ui/nested/media-resizing.d.ts +2 -2
  797. package/ui/nested/min-range.d.ts +2 -2
  798. package/ui/nested/min-visual-range-length.d.ts +2 -2
  799. package/ui/nested/minor-grid.d.ts +2 -2
  800. package/ui/nested/minor-tick-interval.d.ts +2 -2
  801. package/ui/nested/minor-tick.d.ts +2 -2
  802. package/ui/nested/my.d.ts +2 -2
  803. package/ui/nested/node.d.ts +2 -2
  804. package/ui/nested/nodes.d.ts +2 -2
  805. package/ui/nested/notifications.d.ts +2 -2
  806. package/ui/nested/offset.d.ts +2 -2
  807. package/ui/nested/operation-descriptions.d.ts +2 -2
  808. package/ui/nested/options.d.ts +2 -2
  809. package/ui/nested/page-size.d.ts +2 -2
  810. package/ui/nested/pager.d.ts +2 -2
  811. package/ui/nested/paging.d.ts +2 -2
  812. package/ui/nested/permissions.d.ts +2 -2
  813. package/ui/nested/point.d.ts +2 -2
  814. package/ui/nested/popup.d.ts +2 -2
  815. package/ui/nested/position.d.ts +2 -2
  816. package/ui/nested/projection.d.ts +2 -2
  817. package/ui/nested/properties-panel.d.ts +2 -2
  818. package/ui/nested/range-container.d.ts +2 -2
  819. package/ui/nested/rangearea.d.ts +2 -2
  820. package/ui/nested/rangebar.d.ts +2 -2
  821. package/ui/nested/reduction.d.ts +2 -2
  822. package/ui/nested/remote-operations.d.ts +2 -2
  823. package/ui/nested/resource-assignments.d.ts +2 -2
  824. package/ui/nested/resources.d.ts +2 -2
  825. package/ui/nested/route-dxi.d.ts +2 -2
  826. package/ui/nested/row-dragging.d.ts +2 -2
  827. package/ui/nested/scale-type-range.d.ts +2 -2
  828. package/ui/nested/scale.d.ts +2 -2
  829. package/ui/nested/scatter.d.ts +2 -2
  830. package/ui/nested/scroll-bar.d.ts +2 -2
  831. package/ui/nested/scrolling.d.ts +2 -2
  832. package/ui/nested/search-editor-options.d.ts +2 -2
  833. package/ui/nested/search-panel.d.ts +2 -2
  834. package/ui/nested/search.d.ts +2 -2
  835. package/ui/nested/selection-style.d.ts +2 -2
  836. package/ui/nested/selection.d.ts +2 -2
  837. package/ui/nested/series-template.d.ts +2 -2
  838. package/ui/nested/shadow.d.ts +2 -2
  839. package/ui/nested/show-event.d.ts +2 -2
  840. package/ui/nested/show-first-submenu-mode.d.ts +2 -2
  841. package/ui/nested/show-submenu-mode.d.ts +2 -2
  842. package/ui/nested/show.d.ts +2 -2
  843. package/ui/nested/shutter.d.ts +2 -2
  844. package/ui/nested/size.d.ts +2 -2
  845. package/ui/nested/slider-handle.d.ts +2 -2
  846. package/ui/nested/slider-marker.d.ts +2 -2
  847. package/ui/nested/small-values-grouping.d.ts +2 -2
  848. package/ui/nested/sorting.d.ts +2 -2
  849. package/ui/nested/source.d.ts +2 -2
  850. package/ui/nested/spline.d.ts +2 -2
  851. package/ui/nested/splinearea.d.ts +2 -2
  852. package/ui/nested/splitter.d.ts +2 -2
  853. package/ui/nested/stackedarea.d.ts +2 -2
  854. package/ui/nested/stackedbar.d.ts +2 -2
  855. package/ui/nested/stackedline.d.ts +2 -2
  856. package/ui/nested/stackedspline.d.ts +2 -2
  857. package/ui/nested/stackedsplinearea.d.ts +2 -2
  858. package/ui/nested/state-storing.d.ts +2 -2
  859. package/ui/nested/steparea.d.ts +2 -2
  860. package/ui/nested/stepline.d.ts +2 -2
  861. package/ui/nested/stock.d.ts +2 -2
  862. package/ui/nested/store.d.ts +2 -2
  863. package/ui/nested/strip-style.d.ts +2 -2
  864. package/ui/nested/subtitle.d.ts +2 -2
  865. package/ui/nested/subvalue-indicator.d.ts +2 -2
  866. package/ui/nested/summary.d.ts +2 -2
  867. package/ui/nested/tab-dxi.d.ts +2 -2
  868. package/ui/nested/tab-panel-options.d.ts +2 -2
  869. package/ui/nested/table-context-menu.d.ts +2 -2
  870. package/ui/nested/table-resizing.d.ts +2 -2
  871. package/ui/nested/tasks.d.ts +2 -2
  872. package/ui/nested/text.d.ts +2 -2
  873. package/ui/nested/texts.d.ts +2 -2
  874. package/ui/nested/tick-interval.d.ts +2 -2
  875. package/ui/nested/tick.d.ts +2 -2
  876. package/ui/nested/tile.d.ts +2 -2
  877. package/ui/nested/title.d.ts +2 -2
  878. package/ui/nested/to.d.ts +2 -2
  879. package/ui/nested/toolbar-item-dxi.d.ts +2 -2
  880. package/ui/nested/toolbar.d.ts +2 -2
  881. package/ui/nested/toolbox.d.ts +2 -2
  882. package/ui/nested/tooltip.d.ts +2 -2
  883. package/ui/nested/upload.d.ts +2 -2
  884. package/ui/nested/url.d.ts +2 -2
  885. package/ui/nested/validation.d.ts +2 -2
  886. package/ui/nested/value-axis-dxi.d.ts +2 -2
  887. package/ui/nested/value-axis.d.ts +2 -2
  888. package/ui/nested/value-error-bar.d.ts +2 -2
  889. package/ui/nested/value-format.d.ts +2 -2
  890. package/ui/nested/value-indicator.d.ts +2 -2
  891. package/ui/nested/variables.d.ts +2 -2
  892. package/ui/nested/vertical-line.d.ts +2 -2
  893. package/ui/nested/view-toolbar.d.ts +2 -2
  894. package/ui/nested/width.d.ts +2 -2
  895. package/ui/nested/zoom-and-pan.d.ts +2 -2
  896. package/ui/nested/zoom-level.d.ts +2 -2
  897. package/ui/number-box/index.d.ts +2 -2
  898. package/ui/pie-chart/index.d.ts +2 -2
  899. package/ui/pivot-grid/index.d.ts +2 -2
  900. package/ui/pivot-grid-field-chooser/index.d.ts +2 -2
  901. package/ui/polar-chart/index.d.ts +2 -2
  902. package/ui/popover/index.d.ts +2 -2
  903. package/ui/popup/index.d.ts +2 -2
  904. package/ui/progress-bar/index.d.ts +2 -2
  905. package/ui/radio-group/index.d.ts +2 -2
  906. package/ui/range-selector/index.d.ts +2 -2
  907. package/ui/range-slider/index.d.ts +2 -2
  908. package/ui/recurrence-editor/index.d.ts +2 -2
  909. package/ui/resizable/index.d.ts +2 -2
  910. package/ui/responsive-box/index.d.ts +2 -2
  911. package/ui/sankey/index.d.ts +2 -2
  912. package/ui/scheduler/index.d.ts +2 -2
  913. package/ui/scroll-view/index.d.ts +2 -2
  914. package/ui/select-box/index.d.ts +2 -2
  915. package/ui/slider/index.d.ts +2 -2
  916. package/ui/sortable/index.d.ts +2 -2
  917. package/ui/sparkline/index.d.ts +2 -2
  918. package/ui/speed-dial-action/index.d.ts +2 -2
  919. package/ui/splitter/index.d.ts +2 -2
  920. package/ui/switch/index.d.ts +2 -2
  921. package/ui/tab-panel/index.d.ts +2 -2
  922. package/ui/tabs/index.d.ts +2 -2
  923. package/ui/tag-box/index.d.ts +2 -2
  924. package/ui/text-area/index.d.ts +2 -2
  925. package/ui/text-box/index.d.ts +2 -2
  926. package/ui/tile-view/index.d.ts +2 -2
  927. package/ui/toast/index.d.ts +2 -2
  928. package/ui/toolbar/index.d.ts +2 -2
  929. package/ui/tooltip/index.d.ts +2 -2
  930. package/ui/tree-list/index.d.ts +2 -2
  931. package/ui/tree-map/index.d.ts +2 -2
  932. package/ui/tree-view/index.d.ts +2 -2
  933. package/ui/validation-group/index.d.ts +2 -2
  934. package/ui/validation-summary/index.d.ts +2 -2
  935. package/ui/validator/index.d.ts +2 -2
  936. package/ui/vector-map/index.d.ts +2 -2
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * devextreme-angular
3
- * Version: 24.1.13
4
- * Build date: Fri Jun 13 2025
3
+ * Version: 24.1.14
4
+ * Build date: Fri Aug 29 2025
5
5
  *
6
6
  * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
7
7
  *
@@ -785,4 +785,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
785
785
  ]
786
786
  }]
787
787
  }] });
788
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9kaXN0L3VpL2xvYWQtcGFuZWwvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0dBV0c7QUFFSCxvQ0FBb0M7QUFHcEMsT0FBTyxFQUNILGFBQWEsRUFDYixTQUFTLEVBQ1QsUUFBUSxFQUNSLFVBQVUsRUFDVixNQUFNLEVBQ04sV0FBVyxFQUNYLE1BQU0sRUFFTixLQUFLLEVBQ0wsTUFBTSxFQUVOLFlBQVksRUFDZixNQUFNLGVBQWUsQ0FBQztBQVN2QixPQUFPLFdBQVcsTUFBTSwwQkFBMEIsQ0FBQztBQUduRCxPQUFPLEVBQ0gsV0FBVyxFQUNYLGNBQWMsRUFDZCxtQkFBbUIsRUFDbkIsZ0JBQWdCLEVBQ2hCLGdCQUFnQixFQUNoQixhQUFhLEVBQ2hCLE1BQU0seUJBQXlCLENBQUM7QUFFakMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzdELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDM0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDdkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzNELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDhCQUE4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LE9BQU8sRUFBRTt3QkFDUCxvQkFBb0I7d0JBQ3BCLGtCQUFrQjt3QkFDbEIsYUFBYTt3QkFDYixhQUFhO3dCQUNiLGlCQUFpQjt3QkFDakIsV0FBVzt3QkFDWCx1QkFBdUI7d0JBQ3ZCLGtCQUFrQjt3QkFDbEIsV0FBVzt3QkFDWCxlQUFlO3dCQUNmLFdBQVc7d0JBQ1gsYUFBYTt3QkFDYixnQkFBZ0I7cUJBQ2pCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBkZXZleHRyZW1lLWFuZ3VsYXJcbiAqIFZlcnNpb246IDI0LjEuMTNcbiAqIEJ1aWxkIGRhdGU6IEZyaSBKdW4gMTMgMjAyNVxuICpcbiAqIENvcHlyaWdodCAoYykgMjAxMiAtIDIwMjUgRGV2ZWxvcGVyIEV4cHJlc3MgSW5jLiBBTEwgUklHSFRTIFJFU0VSVkVEXG4gKlxuICogVGhpcyBzb2Z0d2FyZSBtYXkgYmUgbW9kaWZpZWQgYW5kIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtc1xuICogb2YgdGhlIE1JVCBsaWNlbnNlLiBTZWUgdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgcHJvamVjdCBmb3IgZGV0YWlscy5cbiAqXG4gKiBodHRwczovL2dpdGh1Yi5jb20vRGV2RXhwcmVzcy9kZXZleHRyZW1lLWFuZ3VsYXJcbiAqL1xuXG4vKiB0c2xpbnQ6ZGlzYWJsZTptYXgtbGluZS1sZW5ndGggKi9cclxuXHJcblxyXG5pbXBvcnQge1xyXG4gICAgVHJhbnNmZXJTdGF0ZSxcclxuICAgIENvbXBvbmVudCxcclxuICAgIE5nTW9kdWxlLFxyXG4gICAgRWxlbWVudFJlZixcclxuICAgIE5nWm9uZSxcclxuICAgIFBMQVRGT1JNX0lELFxyXG4gICAgSW5qZWN0LFxyXG5cclxuICAgIElucHV0LFxyXG4gICAgT3V0cHV0LFxyXG4gICAgT25EZXN0cm95LFxyXG4gICAgRXZlbnRFbWl0dGVyXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5cclxuaW1wb3J0IHsgQW5pbWF0aW9uQ29uZmlnIH0gZnJvbSAnZGV2ZXh0cmVtZS9hbmltYXRpb24vZngnO1xyXG5pbXBvcnQgeyBQb3NpdGlvbkNvbmZpZyB9IGZyb20gJ2RldmV4dHJlbWUvYW5pbWF0aW9uL3Bvc2l0aW9uJztcclxuaW1wb3J0IHsgUG9zaXRpb25BbGlnbm1lbnQgfSBmcm9tICdkZXZleHRyZW1lL2NvbW1vbic7XHJcbmltcG9ydCB7IFVzZXJEZWZpbmVkRWxlbWVudCB9IGZyb20gJ2RldmV4dHJlbWUvY29yZS9lbGVtZW50JztcclxuaW1wb3J0IHsgQ29udGVudFJlYWR5RXZlbnQsIERpc3Bvc2luZ0V2ZW50LCBIaWRkZW5FdmVudCwgSGlkaW5nRXZlbnQsIEluaXRpYWxpemVkRXZlbnQsIE9wdGlvbkNoYW5nZWRFdmVudCwgU2hvd2luZ0V2ZW50LCBTaG93bkV2ZW50IH0gZnJvbSAnZGV2ZXh0cmVtZS91aS9sb2FkX3BhbmVsJztcclxuXHJcbmltcG9ydCBEeExvYWRQYW5lbCBmcm9tICdkZXZleHRyZW1lL3VpL2xvYWRfcGFuZWwnO1xyXG5cclxuXHJcbmltcG9ydCB7XHJcbiAgICBEeENvbXBvbmVudCxcclxuICAgIER4VGVtcGxhdGVIb3N0LFxyXG4gICAgRHhJbnRlZ3JhdGlvbk1vZHVsZSxcclxuICAgIER4VGVtcGxhdGVNb2R1bGUsXHJcbiAgICBOZXN0ZWRPcHRpb25Ib3N0LFxyXG4gICAgV2F0Y2hlckhlbHBlclxyXG59IGZyb20gJ2RldmV4dHJlbWUtYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IER4b0FuaW1hdGlvbk1vZHVsZSB9IGZyb20gJ2RldmV4dHJlbWUtYW5ndWxhci91aS9uZXN0ZWQnO1xyXG5pbXBvcnQgeyBEeG9IaWRlTW9kdWxlIH0gZnJvbSAnZGV2ZXh0cmVtZS1hbmd1bGFyL3VpL25lc3RlZCc7XHJcbmltcG9ydCB7IER4b0Zyb21Nb2R1bGUgfSBmcm9tICdkZXZleHRyZW1lLWFuZ3VsYXIvdWkvbmVzdGVkJztcclxuaW1wb3J0IHsgRHhvUG9zaXRpb25Nb2R1bGUgfSBmcm9tICdkZXZleHRyZW1lLWFuZ3VsYXIvdWkvbmVzdGVkJztcclxuaW1wb3J0IHsgRHhvQXRNb2R1bGUgfSBmcm9tICdkZXZleHRyZW1lLWFuZ3VsYXIvdWkvbmVzdGVkJztcclxuaW1wb3J0IHsgRHhvQm91bmRhcnlPZmZzZXRNb2R1bGUgfSBmcm9tICdkZXZleHRyZW1lLWFuZ3VsYXIvdWkvbmVzdGVkJztcclxuaW1wb3J0IHsgRHhvQ29sbGlzaW9uTW9kdWxlIH0gZnJvbSAnZGV2ZXh0cmVtZS1hbmd1bGFyL3VpL25lc3RlZCc7XHJcbmltcG9ydCB7IER4b015TW9kdWxlIH0gZnJvbSAnZGV2ZXh0cmVtZS1hbmd1bGFyL3VpL25lc3RlZCc7XHJcbmltcG9ydCB7IER4b09mZnNldE1vZHVsZSB9IGZyb20gJ2RldmV4dHJlbWUtYW5ndWxhci91aS9uZXN0ZWQnO1xyXG5pbXBvcnQgeyBEeG9Ub01vZHVsZSB9IGZyb20gJ2RldmV4dHJlbWUtYW5ndWxhci91aS9uZXN0ZWQnO1xyXG5pbXBvcnQgeyBEeG9TaG93TW9kdWxlIH0gZnJvbSAnZGV2ZXh0cmVtZS1hbmd1bGFyL3VpL25lc3RlZCc7XHJcblxyXG5cclxuXHJcblxyXG4vKipcclxuICogW2Rlc2NyOmR4TG9hZFBhbmVsXVxyXG5cclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdkeC1sb2FkLXBhbmVsJyxcclxuICAgIHRlbXBsYXRlOiAnJyxcclxuICAgIGhvc3Q6IHsgbmdTa2lwSHlkcmF0aW9uOiAndHJ1ZScgfSxcclxuICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgIER4VGVtcGxhdGVIb3N0LFxyXG4gICAgICAgIFdhdGNoZXJIZWxwZXIsXHJcbiAgICAgICAgTmVzdGVkT3B0aW9uSG9zdFxyXG4gICAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRHhMb2FkUGFuZWxDb21wb25lbnQgZXh0ZW5kcyBEeENvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcbiAgICBpbnN0YW5jZTogRHhMb2FkUGFuZWwgPSBudWxsO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogW2Rlc2NyOmR4TG9hZFBhbmVsT3B0aW9ucy5hbmltYXRpb25dXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIGdldCBhbmltYXRpb24oKTogeyBoaWRlPzogQW5pbWF0aW9uQ29uZmlnLCBzaG93PzogQW5pbWF0aW9uQ29uZmlnIH0ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRPcHRpb24oJ2FuaW1hdGlvbicpO1xyXG4gICAgfVxyXG4gICAgc2V0IGFuaW1hdGlvbih2YWx1ZTogeyBoaWRlPzogQW5pbWF0aW9uQ29uZmlnLCBzaG93PzogQW5pbWF0aW9uQ29uZmlnIH0pIHtcclxuICAgICAgICB0aGlzLl9zZXRPcHRpb24oJ2FuaW1hdGlvbicsIHZhbHVlKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBbZGVzY3I6ZHhPdmVybGF5T3B0aW9ucy5jbG9zZU9uT3V0c2lkZUNsaWNrXVxyXG4gICAgXHJcbiAgICAgKiBAZGVwcmVjYXRlZCBbZGVwTm90ZTpkeE92ZXJsYXlPcHRpb25zLmNsb3NlT25PdXRzaWRlQ2xpY2tdXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIGdldCBjbG9zZU9uT3V0c2lkZUNsaWNrKCk6IGJvb2xlYW4gfCBGdW5jdGlvbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldE9wdGlvbignY2xvc2VPbk91dHNpZGVDbGljaycpO1xyXG4gICAgfVxyXG4gICAgc2V0IGNsb3NlT25PdXRzaWRlQ2xpY2sodmFsdWU6IGJvb2xlYW4gfCBGdW5jdGlvbikge1xyXG4gICAgICAgIHRoaXMuX3NldE9wdGlvbignY2xvc2VPbk91dHNpZGVDbGljaycsIHZhbHVlKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBbZGVzY3I6ZHhMb2FkUGFuZWxPcHRpb25zLmNvbnRhaW5lcl1cclxuICAgIFxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgZ2V0IGNvbnRhaW5lcigpOiBVc2VyRGVmaW5lZEVsZW1lbnQgfCBzdHJpbmcgfCB1bmRlZmluZWQge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRPcHRpb24oJ2NvbnRhaW5lcicpO1xyXG4gICAgfVxyXG4gICAgc2V0IGNvbnRhaW5lcih2YWx1ZTogVXNlckRlZmluZWRFbGVtZW50IHwgc3RyaW5nIHwgdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgdGhpcy5fc2V0T3B0aW9uKCdjb250YWluZXInLCB2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogW2Rlc2NyOmR4T3ZlcmxheU9wdGlvbnMuZGVmZXJSZW5kZXJpbmddXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIGdldCBkZWZlclJlbmRlcmluZygpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0T3B0aW9uKCdkZWZlclJlbmRlcmluZycpO1xyXG4gICAgfVxyXG4gICAgc2V0IGRlZmVyUmVuZGVyaW5nKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICAgICAgdGhpcy5fc2V0T3B0aW9uKCdkZWZlclJlbmRlcmluZycsIHZhbHVlKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBbZGVzY3I6ZHhMb2FkUGFuZWxPcHRpb25zLmRlbGF5XVxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBnZXQgZGVsYXkoKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0T3B0aW9uKCdkZWxheScpO1xyXG4gICAgfVxyXG4gICAgc2V0IGRlbGF5KHZhbHVlOiBudW1iZXIpIHtcclxuICAgICAgICB0aGlzLl9zZXRPcHRpb24oJ2RlbGF5JywgdmFsdWUpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIFtkZXNjcjpkeExvYWRQYW5lbE9wdGlvbnMuZm9jdXNTdGF0ZUVuYWJsZWRdXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIGdldCBmb2N1c1N0YXRlRW5hYmxlZCgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0T3B0aW9uKCdmb2N1c1N0YXRlRW5hYmxlZCcpO1xyXG4gICAgfVxyXG4gICAgc2V0IGZvY3VzU3RhdGVFbmFibGVkKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICAgICAgdGhpcy5fc2V0T3B0aW9uKCdmb2N1c1N0YXRlRW5hYmxlZCcsIHZhbHVlKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBbZGVzY3I6ZHhMb2FkUGFuZWxPcHRpb25zLmhlaWdodF1cclxuICAgIFxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgZ2V0IGhlaWdodCgpOiBudW1iZXIgfCBGdW5jdGlvbiB8IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldE9wdGlvbignaGVpZ2h0Jyk7XHJcbiAgICB9XHJcbiAgICBzZXQgaGVpZ2h0KHZhbHVlOiBudW1iZXIgfCBGdW5jdGlvbiB8IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMuX3NldE9wdGlvbignaGVpZ2h0JywgdmFsdWUpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIFtkZXNjcjpkeE92ZXJsYXlPcHRpb25zLmhpZGVPbk91dHNpZGVDbGlja11cclxuICAgIFxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgZ2V0IGhpZGVPbk91dHNpZGVDbGljaygpOiBib29sZWFuIHwgRnVuY3Rpb24ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRPcHRpb24oJ2hpZGVPbk91dHNpZGVDbGljaycpO1xyXG4gICAgfVxyXG4gICAgc2V0IGhpZGVPbk91dHNpZGVDbGljayh2YWx1ZTogYm9vbGVhbiB8IEZ1bmN0aW9uKSB7XHJcbiAgICAgICAgdGhpcy5fc2V0T3B0aW9uKCdoaWRlT25PdXRzaWRlQ2xpY2snLCB2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogW2Rlc2NyOmR4T3ZlcmxheU9wdGlvbnMuaGlkZU9uUGFyZW50U2Nyb2xsXVxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBnZXQgaGlkZU9uUGFyZW50U2Nyb2xsKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRPcHRpb24oJ2hpZGVPblBhcmVudFNjcm9sbCcpO1xyXG4gICAgfVxyXG4gICAgc2V0IGhpZGVPblBhcmVudFNjcm9sbCh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgICAgIHRoaXMuX3NldE9wdGlvbignaGlkZU9uUGFyZW50U2Nyb2xsJywgdmFsdWUpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIFtkZXNjcjpXaWRnZXRPcHRpb25zLmhpbnRdXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIGdldCBoaW50KCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldE9wdGlvbignaGludCcpO1xyXG4gICAgfVxyXG4gICAgc2V0IGhpbnQodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIHRoaXMuX3NldE9wdGlvbignaGludCcsIHZhbHVlKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBbZGVzY3I6V2lkZ2V0T3B0aW9ucy5ob3ZlclN0YXRlRW5hYmxlZF1cclxuICAgIFxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgZ2V0IGhvdmVyU3RhdGVFbmFibGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRPcHRpb24oJ2hvdmVyU3RhdGVFbmFibGVkJyk7XHJcbiAgICB9XHJcbiAgICBzZXQgaG92ZXJTdGF0ZUVuYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgICAgICB0aGlzLl9zZXRPcHRpb24oJ2hvdmVyU3RhdGVFbmFibGVkJywgdmFsdWUpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIFtkZXNjcjpkeExvYWRQYW5lbE9wdGlvbnMuaW5kaWNhdG9yU3JjXVxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBnZXQgaW5kaWNhdG9yU3JjKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldE9wdGlvbignaW5kaWNhdG9yU3JjJyk7XHJcbiAgICB9XHJcbiAgICBzZXQgaW5kaWNhdG9yU3JjKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLl9zZXRPcHRpb24oJ2luZGljYXRvclNyYycsIHZhbHVlKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBbZGVzY3I6ZHhMb2FkUGFuZWxPcHRpb25zLm1heEhlaWdodF1cclxuICAgIFxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgZ2V0IG1heEhlaWdodCgpOiBudW1iZXIgfCBGdW5jdGlvbiB8IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldE9wdGlvbignbWF4SGVpZ2h0Jyk7XHJcbiAgICB9XHJcbiAgICBzZXQgbWF4SGVpZ2h0KHZhbHVlOiBudW1iZXIgfCBGdW5jdGlvbiB8IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMuX3NldE9wdGlvbignbWF4SGVpZ2h0JywgdmFsdWUpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIFtkZXNjcjpkeExvYWRQYW5lbE9wdGlvbnMubWF4V2lkdGhdXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIGdldCBtYXhXaWR0aCgpOiBudW1iZXIgfCBGdW5jdGlvbiB8IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldE9wdGlvbignbWF4V2lkdGgnKTtcclxuICAgIH1cclxuICAgIHNldCBtYXhXaWR0aCh2YWx1ZTogbnVtYmVyIHwgRnVuY3Rpb24gfCBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLl9zZXRPcHRpb24oJ21heFdpZHRoJywgdmFsdWUpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIFtkZXNjcjpkeExvYWRQYW5lbE9wdGlvbnMubWVzc2FnZV1cclxuICAgIFxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgZ2V0IG1lc3NhZ2UoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0T3B0aW9uKCdtZXNzYWdlJyk7XHJcbiAgICB9XHJcbiAgICBzZXQgbWVzc2FnZSh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5fc2V0T3B0aW9uKCdtZXNzYWdlJywgdmFsdWUpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIFtkZXNjcjpkeE92ZXJsYXlPcHRpb25zLm1pbkhlaWdodF1cclxuICAgIFxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgZ2V0IG1pbkhlaWdodCgpOiBudW1iZXIgfCBGdW5jdGlvbiB8IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldE9wdGlvbignbWluSGVpZ2h0Jyk7XHJcbiAgICB9XHJcbiAgICBzZXQgbWluSGVpZ2h0KHZhbHVlOiBudW1iZXIgfCBGdW5jdGlvbiB8IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMuX3NldE9wdGlvbignbWluSGVpZ2h0JywgdmFsdWUpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIFtkZXNjcjpkeE92ZXJsYXlPcHRpb25zLm1pbldpZHRoXVxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBnZXQgbWluV2lkdGgoKTogbnVtYmVyIHwgRnVuY3Rpb24gfCBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRPcHRpb24oJ21pbldpZHRoJyk7XHJcbiAgICB9XHJcbiAgICBzZXQgbWluV2lkdGgodmFsdWU6IG51bWJlciB8IEZ1bmN0aW9uIHwgc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5fc2V0T3B0aW9uKCdtaW5XaWR0aCcsIHZhbHVlKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBbZGVzY3I6ZHhMb2FkUGFuZWxPcHRpb25zLnBvc2l0aW9uXVxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBnZXQgcG9zaXRpb24oKTogUG9zaXRpb25BbGlnbm1lbnQgfCBQb3NpdGlvbkNvbmZpZyB8IEZ1bmN0aW9uIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0T3B0aW9uKCdwb3NpdGlvbicpO1xyXG4gICAgfVxyXG4gICAgc2V0IHBvc2l0aW9uKHZhbHVlOiBQb3NpdGlvbkFsaWdubWVudCB8IFBvc2l0aW9uQ29uZmlnIHwgRnVuY3Rpb24pIHtcclxuICAgICAgICB0aGlzLl9zZXRPcHRpb24oJ3Bvc2l0aW9uJywgdmFsdWUpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIFtkZXNjcjpET01Db21wb25lbnRPcHRpb25zLnJ0bEVuYWJsZWRdXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIGdldCBydGxFbmFibGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRPcHRpb24oJ3J0bEVuYWJsZWQnKTtcclxuICAgIH1cclxuICAgIHNldCBydGxFbmFibGVkKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICAgICAgdGhpcy5fc2V0T3B0aW9uKCdydGxFbmFibGVkJywgdmFsdWUpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIFtkZXNjcjpkeE92ZXJsYXlPcHRpb25zLnNoYWRpbmddXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIGdldCBzaGFkaW5nKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRPcHRpb24oJ3NoYWRpbmcnKTtcclxuICAgIH1cclxuICAgIHNldCBzaGFkaW5nKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICAgICAgdGhpcy5fc2V0T3B0aW9uKCdzaGFkaW5nJywgdmFsdWUpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIFtkZXNjcjpkeExvYWRQYW5lbE9wdGlvbnMuc2hhZGluZ0NvbG9yXVxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBnZXQgc2hhZGluZ0NvbG9yKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldE9wdGlvbignc2hhZGluZ0NvbG9yJyk7XHJcbiAgICB9XHJcbiAgICBzZXQgc2hhZGluZ0NvbG9yKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLl9zZXRPcHRpb24oJ3NoYWRpbmdDb2xvcicsIHZhbHVlKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBbZGVzY3I6ZHhMb2FkUGFuZWxPcHRpb25zLnNob3dJbmRpY2F0b3JdXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIGdldCBzaG93SW5kaWNhdG9yKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRPcHRpb24oJ3Nob3dJbmRpY2F0b3InKTtcclxuICAgIH1cclxuICAgIHNldCBzaG93SW5kaWNhdG9yKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICAgICAgdGhpcy5fc2V0T3B0aW9uKCdzaG93SW5kaWNhdG9yJywgdmFsdWUpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIFtkZXNjcjpkeExvYWRQYW5lbE9wdGlvbnMuc2hvd1BhbmVdXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIGdldCBzaG93UGFuZSgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0T3B0aW9uKCdzaG93UGFuZScpO1xyXG4gICAgfVxyXG4gICAgc2V0IHNob3dQYW5lKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICAgICAgdGhpcy5fc2V0T3B0aW9uKCdzaG93UGFuZScsIHZhbHVlKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBbZGVzY3I6ZHhPdmVybGF5T3B0aW9ucy52aXNpYmxlXVxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBnZXQgdmlzaWJsZSgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0T3B0aW9uKCd2aXNpYmxlJyk7XHJcbiAgICB9XHJcbiAgICBzZXQgdmlzaWJsZSh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgICAgIHRoaXMuX3NldE9wdGlvbigndmlzaWJsZScsIHZhbHVlKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBbZGVzY3I6ZHhMb2FkUGFuZWxPcHRpb25zLndpZHRoXVxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBnZXQgd2lkdGgoKTogbnVtYmVyIHwgRnVuY3Rpb24gfCBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRPcHRpb24oJ3dpZHRoJyk7XHJcbiAgICB9XHJcbiAgICBzZXQgd2lkdGgodmFsdWU6IG51bWJlciB8IEZ1bmN0aW9uIHwgc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5fc2V0T3B0aW9uKCd3aWR0aCcsIHZhbHVlKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBbZGVzY3I6ZHhPdmVybGF5T3B0aW9ucy53cmFwcGVyQXR0cl1cclxuICAgIFxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgZ2V0IHdyYXBwZXJBdHRyKCk6IGFueSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldE9wdGlvbignd3JhcHBlckF0dHInKTtcclxuICAgIH1cclxuICAgIHNldCB3cmFwcGVyQXR0cih2YWx1ZTogYW55KSB7XHJcbiAgICAgICAgdGhpcy5fc2V0T3B0aW9uKCd3cmFwcGVyQXR0cicsIHZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogW2Rlc2NyOmR4TG9hZFBhbmVsT3B0aW9ucy5vbkNvbnRlbnRSZWFkeV1cclxuICAgIFxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKSBvbkNvbnRlbnRSZWFkeTogRXZlbnRFbWl0dGVyPENvbnRlbnRSZWFkeUV2ZW50PjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogW2Rlc2NyOmR4TG9hZFBhbmVsT3B0aW9ucy5vbkRpc3Bvc2luZ11cclxuICAgIFxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKSBvbkRpc3Bvc2luZzogRXZlbnRFbWl0dGVyPERpc3Bvc2luZ0V2ZW50PjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogW2Rlc2NyOmR4TG9hZFBhbmVsT3B0aW9ucy5vbkhpZGRlbl1cclxuICAgIFxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKSBvbkhpZGRlbjogRXZlbnRFbWl0dGVyPEhpZGRlbkV2ZW50PjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogW2Rlc2NyOmR4TG9hZFBhbmVsT3B0aW9ucy5vbkhpZGluZ11cclxuICAgIFxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKSBvbkhpZGluZzogRXZlbnRFbWl0dGVyPEhpZGluZ0V2ZW50PjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogW2Rlc2NyOmR4TG9hZFBhbmVsT3B0aW9ucy5vbkluaXRpYWxpemVkXVxyXG4gICAgXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIG9uSW5pdGlhbGl6ZWQ6IEV2ZW50RW1pdHRlcjxJbml0aWFsaXplZEV2ZW50PjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogW2Rlc2NyOmR4TG9hZFBhbmVsT3B0aW9ucy5vbk9wdGlvbkNoYW5nZWRdXHJcbiAgICBcclxuICAgIFxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KCkgb25PcHRpb25DaGFuZ2VkOiBFdmVudEVtaXR0ZXI8T3B0aW9uQ2hhbmdlZEV2ZW50PjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogW2Rlc2NyOmR4TG9hZFBhbmVsT3B0aW9ucy5vblNob3dpbmddXHJcbiAgICBcclxuICAgIFxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KCkgb25TaG93aW5nOiBFdmVudEVtaXR0ZXI8U2hvd2luZ0V2ZW50PjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogW2Rlc2NyOmR4TG9hZFBhbmVsT3B0aW9ucy5vblNob3duXVxyXG4gICAgXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIG9uU2hvd246IEV2ZW50RW1pdHRlcjxTaG93bkV2ZW50PjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogVGhpcyBtZW1iZXIgc3VwcG9ydHMgdGhlIGludGVybmFsIGluZnJhc3RydWN0dXJlIGFuZCBpcyBub3QgaW50ZW5kZWQgdG8gYmUgdXNlZCBkaXJlY3RseSBmcm9tIHlvdXIgY29kZS5cclxuICAgIFxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KCkgYW5pbWF0aW9uQ2hhbmdlOiBFdmVudEVtaXR0ZXI8eyBoaWRlPzogQW5pbWF0aW9uQ29uZmlnLCBzaG93PzogQW5pbWF0aW9uQ29uZmlnIH0+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgXHJcbiAgICAgKiBUaGlzIG1lbWJlciBzdXBwb3J0cyB0aGUgaW50ZXJuYWwgaW5mcmFzdHJ1Y3R1cmUgYW5kIGlzIG5vdCBpbnRlbmRlZCB0byBiZSB1c2VkIGRpcmVjdGx5IGZyb20geW91ciBjb2RlLlxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKSBjbG9zZU9uT3V0c2lkZUNsaWNrQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbiB8IEZ1bmN0aW9uPjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogVGhpcyBtZW1iZXIgc3VwcG9ydHMgdGhlIGludGVybmFsIGluZnJhc3RydWN0dXJlIGFuZCBpcyBub3QgaW50ZW5kZWQgdG8gYmUgdXNlZCBkaXJlY3RseSBmcm9tIHlvdXIgY29kZS5cclxuICAgIFxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KCkgY29udGFpbmVyQ2hhbmdlOiBFdmVudEVtaXR0ZXI8VXNlckRlZmluZWRFbGVtZW50IHwgc3RyaW5nIHwgdW5kZWZpbmVkPjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogVGhpcyBtZW1iZXIgc3VwcG9ydHMgdGhlIGludGVybmFsIGluZnJhc3RydWN0dXJlIGFuZCBpcyBub3QgaW50ZW5kZWQgdG8gYmUgdXNlZCBkaXJlY3RseSBmcm9tIHlvdXIgY29kZS5cclxuICAgIFxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KCkgZGVmZXJSZW5kZXJpbmdDaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogVGhpcyBtZW1iZXIgc3VwcG9ydHMgdGhlIGludGVybmFsIGluZnJhc3RydWN0dXJlIGFuZCBpcyBub3QgaW50ZW5kZWQgdG8gYmUgdXNlZCBkaXJlY3RseSBmcm9tIHlvdXIgY29kZS5cclxuICAgIFxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KCkgZGVsYXlDaGFuZ2U6IEV2ZW50RW1pdHRlcjxudW1iZXI+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgXHJcbiAgICAgKiBUaGlzIG1lbWJlciBzdXBwb3J0cyB0aGUgaW50ZXJuYWwgaW5mcmFzdHJ1Y3R1cmUgYW5kIGlzIG5vdCBpbnRlbmRlZCB0byBiZSB1c2VkIGRpcmVjdGx5IGZyb20geW91ciBjb2RlLlxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKSBmb2N1c1N0YXRlRW5hYmxlZENoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgXHJcbiAgICAgKiBUaGlzIG1lbWJlciBzdXBwb3J0cyB0aGUgaW50ZXJuYWwgaW5mcmFzdHJ1Y3R1cmUgYW5kIGlzIG5vdCBpbnRlbmRlZCB0byBiZSB1c2VkIGRpcmVjdGx5IGZyb20geW91ciBjb2RlLlxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKSBoZWlnaHRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxudW1iZXIgfCBGdW5jdGlvbiB8IHN0cmluZz47XHJcblxyXG4gICAgLyoqXHJcbiAgICBcclxuICAgICAqIFRoaXMgbWVtYmVyIHN1cHBvcnRzIHRoZSBpbnRlcm5hbCBpbmZyYXN0cnVjdHVyZSBhbmQgaXMgbm90IGludGVuZGVkIHRvIGJlIHVzZWQgZGlyZWN0bHkgZnJvbSB5b3VyIGNvZGUuXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIGhpZGVPbk91dHNpZGVDbGlja0NoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4gfCBGdW5jdGlvbj47XHJcblxyXG4gICAgLyoqXHJcbiAgICBcclxuICAgICAqIFRoaXMgbWVtYmVyIHN1cHBvcnRzIHRoZSBpbnRlcm5hbCBpbmZyYXN0cnVjdHVyZSBhbmQgaXMgbm90IGludGVuZGVkIHRvIGJlIHVzZWQgZGlyZWN0bHkgZnJvbSB5b3VyIGNvZGUuXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIGhpZGVPblBhcmVudFNjcm9sbENoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgXHJcbiAgICAgKiBUaGlzIG1lbWJlciBzdXBwb3J0cyB0aGUgaW50ZXJuYWwgaW5mcmFzdHJ1Y3R1cmUgYW5kIGlzIG5vdCBpbnRlbmRlZCB0byBiZSB1c2VkIGRpcmVjdGx5IGZyb20geW91ciBjb2RlLlxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKSBoaW50Q2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nIHwgdW5kZWZpbmVkPjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogVGhpcyBtZW1iZXIgc3VwcG9ydHMgdGhlIGludGVybmFsIGluZnJhc3RydWN0dXJlIGFuZCBpcyBub3QgaW50ZW5kZWQgdG8gYmUgdXNlZCBkaXJlY3RseSBmcm9tIHlvdXIgY29kZS5cclxuICAgIFxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KCkgaG92ZXJTdGF0ZUVuYWJsZWRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogVGhpcyBtZW1iZXIgc3VwcG9ydHMgdGhlIGludGVybmFsIGluZnJhc3RydWN0dXJlIGFuZCBpcyBub3QgaW50ZW5kZWQgdG8gYmUgdXNlZCBkaXJlY3RseSBmcm9tIHlvdXIgY29kZS5cclxuICAgIFxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KCkgaW5kaWNhdG9yU3JjQ2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nPjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogVGhpcyBtZW1iZXIgc3VwcG9ydHMgdGhlIGludGVybmFsIGluZnJhc3RydWN0dXJlIGFuZCBpcyBub3QgaW50ZW5kZWQgdG8gYmUgdXNlZCBkaXJlY3RseSBmcm9tIHlvdXIgY29kZS5cclxuICAgIFxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KCkgbWF4SGVpZ2h0Q2hhbmdlOiBFdmVudEVtaXR0ZXI8bnVtYmVyIHwgRnVuY3Rpb24gfCBzdHJpbmc+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgXHJcbiAgICAgKiBUaGlzIG1lbWJlciBzdXBwb3J0cyB0aGUgaW50ZXJuYWwgaW5mcmFzdHJ1Y3R1cmUgYW5kIGlzIG5vdCBpbnRlbmRlZCB0byBiZSB1c2VkIGRpcmVjdGx5IGZyb20geW91ciBjb2RlLlxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKSBtYXhXaWR0aENoYW5nZTogRXZlbnRFbWl0dGVyPG51bWJlciB8IEZ1bmN0aW9uIHwgc3RyaW5nPjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogVGhpcyBtZW1iZXIgc3VwcG9ydHMgdGhlIGludGVybmFsIGluZnJhc3RydWN0dXJlIGFuZCBpcyBub3QgaW50ZW5kZWQgdG8gYmUgdXNlZCBkaXJlY3RseSBmcm9tIHlvdXIgY29kZS5cclxuICAgIFxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KCkgbWVzc2FnZUNoYW5nZTogRXZlbnRFbWl0dGVyPHN0cmluZz47XHJcblxyXG4gICAgLyoqXHJcbiAgICBcclxuICAgICAqIFRoaXMgbWVtYmVyIHN1cHBvcnRzIHRoZSBpbnRlcm5hbCBpbmZyYXN0cnVjdHVyZSBhbmQgaXMgbm90IGludGVuZGVkIHRvIGJlIHVzZWQgZGlyZWN0bHkgZnJvbSB5b3VyIGNvZGUuXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIG1pbkhlaWdodENoYW5nZTogRXZlbnRFbWl0dGVyPG51bWJlciB8IEZ1bmN0aW9uIHwgc3RyaW5nPjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogVGhpcyBtZW1iZXIgc3VwcG9ydHMgdGhlIGludGVybmFsIGluZnJhc3RydWN0dXJlIGFuZCBpcyBub3QgaW50ZW5kZWQgdG8gYmUgdXNlZCBkaXJlY3RseSBmcm9tIHlvdXIgY29kZS5cclxuICAgIFxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KCkgbWluV2lkdGhDaGFuZ2U6IEV2ZW50RW1pdHRlcjxudW1iZXIgfCBGdW5jdGlvbiB8IHN0cmluZz47XHJcblxyXG4gICAgLyoqXHJcbiAgICBcclxuICAgICAqIFRoaXMgbWVtYmVyIHN1cHBvcnRzIHRoZSBpbnRlcm5hbCBpbmZyYXN0cnVjdHVyZSBhbmQgaXMgbm90IGludGVuZGVkIHRvIGJlIHVzZWQgZGlyZWN0bHkgZnJvbSB5b3VyIGNvZGUuXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIHBvc2l0aW9uQ2hhbmdlOiBFdmVudEVtaXR0ZXI8UG9zaXRpb25BbGlnbm1lbnQgfCBQb3NpdGlvbkNvbmZpZyB8IEZ1bmN0aW9uPjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogVGhpcyBtZW1iZXIgc3VwcG9ydHMgdGhlIGludGVybmFsIGluZnJhc3RydWN0dXJlIGFuZCBpcyBub3QgaW50ZW5kZWQgdG8gYmUgdXNlZCBkaXJlY3RseSBmcm9tIHlvdXIgY29kZS5cclxuICAgIFxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KCkgcnRsRW5hYmxlZENoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgXHJcbiAgICAgKiBUaGlzIG1lbWJlciBzdXBwb3J0cyB0aGUgaW50ZXJuYWwgaW5mcmFzdHJ1Y3R1cmUgYW5kIGlzIG5vdCBpbnRlbmRlZCB0byBiZSB1c2VkIGRpcmVjdGx5IGZyb20geW91ciBjb2RlLlxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKSBzaGFkaW5nQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj47XHJcblxyXG4gICAgLyoqXHJcbiAgICBcclxuICAgICAqIFRoaXMgbWVtYmVyIHN1cHBvcnRzIHRoZSBpbnRlcm5hbCBpbmZyYXN0cnVjdHVyZSBhbmQgaXMgbm90IGludGVuZGVkIHRvIGJlIHVzZWQgZGlyZWN0bHkgZnJvbSB5b3VyIGNvZGUuXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIHNoYWRpbmdDb2xvckNoYW5nZTogRXZlbnRFbWl0dGVyPHN0cmluZz47XHJcblxyXG4gICAgLyoqXHJcbiAgICBcclxuICAgICAqIFRoaXMgbWVtYmVyIHN1cHBvcnRzIHRoZSBpbnRlcm5hbCBpbmZyYXN0cnVjdHVyZSBhbmQgaXMgbm90IGludGVuZGVkIHRvIGJlIHVzZWQgZGlyZWN0bHkgZnJvbSB5b3VyIGNvZGUuXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIHNob3dJbmRpY2F0b3JDaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogVGhpcyBtZW1iZXIgc3VwcG9ydHMgdGhlIGludGVybmFsIGluZnJhc3RydWN0dXJlIGFuZCBpcyBub3QgaW50ZW5kZWQgdG8gYmUgdXNlZCBkaXJlY3RseSBmcm9tIHlvdXIgY29kZS5cclxuICAgIFxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KCkgc2hvd1BhbmVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogVGhpcyBtZW1iZXIgc3VwcG9ydHMgdGhlIGludGVybmFsIGluZnJhc3RydWN0dXJlIGFuZCBpcyBub3QgaW50ZW5kZWQgdG8gYmUgdXNlZCBkaXJlY3RseSBmcm9tIHlvdXIgY29kZS5cclxuICAgIFxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KCkgdmlzaWJsZUNoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgXHJcbiAgICAgKiBUaGlzIG1lbWJlciBzdXBwb3J0cyB0aGUgaW50ZXJuYWwgaW5mcmFzdHJ1Y3R1cmUgYW5kIGlzIG5vdCBpbnRlbmRlZCB0byBiZSB1c2VkIGRpcmVjdGx5IGZyb20geW91ciBjb2RlLlxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKSB3aWR0aENoYW5nZTogRXZlbnRFbWl0dGVyPG51bWJlciB8IEZ1bmN0aW9uIHwgc3RyaW5nPjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogVGhpcyBtZW1iZXIgc3VwcG9ydHMgdGhlIGludGVybmFsIGluZnJhc3RydWN0dXJlIGFuZCBpcyBub3QgaW50ZW5kZWQgdG8gYmUgdXNlZCBkaXJlY3RseSBmcm9tIHlvdXIgY29kZS5cclxuICAgIFxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KCkgd3JhcHBlckF0dHJDaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+O1xyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuICAgIGNvbnN0cnVjdG9yKGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsIG5nWm9uZTogTmdab25lLCB0ZW1wbGF0ZUhvc3Q6IER4VGVtcGxhdGVIb3N0LFxyXG4gICAgICAgICAgICBfd2F0Y2hlckhlbHBlcjogV2F0Y2hlckhlbHBlcixcclxuICAgICAgICAgICAgb3B0aW9uSG9zdDogTmVzdGVkT3B0aW9uSG9zdCxcclxuICAgICAgICAgICAgdHJhbnNmZXJTdGF0ZTogVHJhbnNmZXJTdGF0ZSxcclxuICAgICAgICAgICAgQEluamVjdChQTEFURk9STV9JRCkgcGxhdGZvcm1JZDogYW55KSB7XHJcblxyXG4gICAgICAgIHN1cGVyKGVsZW1lbnRSZWYsIG5nWm9uZSwgdGVtcGxhdGVIb3N0LCBfd2F0Y2hlckhlbHBlciwgdHJhbnNmZXJTdGF0ZSwgcGxhdGZvcm1JZCk7XHJcblxyXG4gICAgICAgIHRoaXMuX2NyZWF0ZUV2ZW50RW1pdHRlcnMoW1xyXG4gICAgICAgICAgICB7IHN1YnNjcmliZTogJ2NvbnRlbnRSZWFkeScsIGVtaXQ6ICdvbkNvbnRlbnRSZWFkeScgfSxcclxuICAgICAgICAgICAgeyBzdWJzY3JpYmU6ICdkaXNwb3NpbmcnLCBlbWl0OiAnb25EaXNwb3NpbmcnIH0sXHJcbiAgICAgICAgICAgIHsgc3Vic2NyaWJlOiAnaGlkZGVuJywgZW1pdDogJ29uSGlkZGVuJyB9LFxyXG4gICAgICAgICAgICB7IHN1YnNjcmliZTogJ2hpZGluZycsIGVtaXQ6ICdvbkhpZGluZycgfSxcclxuICAgICAgICAgICAgeyBzdWJzY3JpYmU6ICdpbml0aWFsaXplZCcsIGVtaXQ6ICdvbkluaXRpYWxpemVkJyB9LFxyXG4gICAgICAgICAgICB7IHN1YnNjcmliZTogJ29wdGlvbkNoYW5nZWQnLCBlbWl0OiAnb25PcHRpb25DaGFuZ2VkJyB9LFxyXG4gICAgICAgICAgICB7IHN1YnNjcmliZTogJ3Nob3dpbmcnLCBlbWl0OiAnb25TaG93aW5nJyB9LFxyXG4gICAgICAgICAgICB7IHN1YnNjcmliZTogJ3Nob3duJywgZW1pdDogJ29uU2hvd24nIH0sXHJcbiAgICAgICAgICAgIHsgZW1pdDogJ2FuaW1hdGlvbkNoYW5nZScgfSxcclxuICAgICAgICAgICAgeyBlbWl0OiAnY2xvc2VPbk91dHNpZGVDbGlja0NoYW5nZScgfSxcclxuICAgICAgICAgICAgeyBlbWl0OiAnY29udGFpbmVyQ2hhbmdlJyB9LFxyXG4gICAgICAgICAgICB7IGVtaXQ6ICdkZWZlclJlbmRlcmluZ0NoYW5nZScgfSxcclxuICAgICAgICAgICAgeyBlbWl0OiAnZGVsYXlDaGFuZ2UnIH0sXHJcbiAgICAgICAgICAgIHsgZW1pdDogJ2ZvY3VzU3RhdGVFbmFibGVkQ2hhbmdlJyB9LFxyXG4gICAgICAgICAgICB7IGVtaXQ6ICdoZWlnaHRDaGFuZ2UnIH0sXHJcbiAgICAgICAgICAgIHsgZW1pdDogJ2hpZGVPbk91dHNpZGVDbGlja0NoYW5nZScgfSxcclxuICAgICAgICAgICAgeyBlbWl0OiAnaGlkZU9uUGFyZW50U2Nyb2xsQ2hhbmdlJyB9LFxyXG4gICAgICAgICAgICB7IGVtaXQ6ICdoaW50Q2hhbmdlJyB9LFxyXG4gICAgICAgICAgICB7IGVtaXQ6ICdob3ZlclN0YXRlRW5hYmxlZENoYW5nZScgfSxcclxuICAgICAgICAgICAgeyBlbWl0OiAnaW5kaWNhdG9yU3JjQ2hhbmdlJyB9LFxyXG4gICAgICAgICAgICB7IGVtaXQ6ICdtYXhIZWlnaHRDaGFuZ2UnIH0sXHJcbiAgICAgICAgICAgIHsgZW1pdDogJ21heFdpZHRoQ2hhbmdlJyB9LFxyXG4gICAgICAgICAgICB7IGVtaXQ6ICdtZXNzYWdlQ2hhbmdlJyB9LFxyXG4gICAgICAgICAgICB7IGVtaXQ6ICdtaW5IZWlnaHRDaGFuZ2UnIH0sXHJcbiAgICAgICAgICAgIHsgZW1pdDogJ21pbldpZHRoQ2hhbmdlJyB9LFxyXG4gICAgICAgICAgICB7IGVtaXQ6ICdwb3NpdGlvbkNoYW5nZScgfSxcclxuICAgICAgICAgICAgeyBlbWl0OiAncnRsRW5hYmxlZENoYW5nZScgfSxcclxuICAgICAgICAgICAgeyBlbWl0OiAnc2hhZGluZ0NoYW5nZScgfSxcclxuICAgICAgICAgICAgeyBlbWl0OiAnc2hhZGluZ0NvbG9yQ2hhbmdlJyB9LFxyXG4gICAgICAgICAgICB7IGVtaXQ6ICdzaG93SW5kaWNhdG9yQ2hhbmdlJyB9LFxyXG4gICAgICAgICAgICB7IGVtaXQ6ICdzaG93UGFuZUNoYW5nZScgfSxcclxuICAgICAgICAgICAgeyBlbWl0OiAndmlzaWJsZUNoYW5nZScgfSxcclxuICAgICAgICAgICAgeyBlbWl0OiAnd2lkdGhDaGFuZ2UnIH0sXHJcbiAgICAgICAgICAgIHsgZW1pdDogJ3dyYXBwZXJBdHRyQ2hhbmdlJyB9XHJcbiAgICAgICAgXSk7XHJcbiAgICAgICAgb3B0aW9uSG9zdC5zZXRIb3N0KHRoaXMpO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBfY3JlYXRlSW5zdGFuY2UoZWxlbWVudCwgb3B0aW9ucykge1xyXG5cclxuICAgICAgICByZXR1cm4gbmV3IER4TG9hZFBhbmVsKGVsZW1lbnQsIG9wdGlvbnMpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpIHtcclxuICAgICAgICB0aGlzLl9kZXN0cm95V2lkZ2V0KCk7XHJcbiAgICB9XHJcblxyXG59XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGltcG9ydHM6IFtcclxuICAgIER4b0FuaW1hdGlvbk1vZHVsZSxcclxuICAgIER4b0hpZGVNb2R1bGUsXHJcbiAgICBEeG9Gcm9tTW9kdWxlLFxyXG4gICAgRHhvUG9zaXRpb25Nb2R1bGUsXHJcbiAgICBEeG9BdE1vZHVsZSxcclxuICAgIER4b0JvdW5kYXJ5T2Zmc2V0TW9kdWxlLFxyXG4gICAgRHhvQ29sbGlzaW9uTW9kdWxlLFxyXG4gICAgRHhvTXlNb2R1bGUsXHJcbiAgICBEeG9PZmZzZXRNb2R1bGUsXHJcbiAgICBEeG9Ub01vZHVsZSxcclxuICAgIER4b1Nob3dNb2R1bGUsXHJcbiAgICBEeEludGVncmF0aW9uTW9kdWxlLFxyXG4gICAgRHhUZW1wbGF0ZU1vZHVsZVxyXG4gIF0sXHJcbiAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICBEeExvYWRQYW5lbENvbXBvbmVudFxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgRHhMb2FkUGFuZWxDb21wb25lbnQsXHJcbiAgICBEeG9BbmltYXRpb25Nb2R1bGUsXHJcbiAgICBEeG9IaWRlTW9kdWxlLFxyXG4gICAgRHhvRnJvbU1vZHVsZSxcclxuICAgIER4b1Bvc2l0aW9uTW9kdWxlLFxyXG4gICAgRHhvQXRNb2R1bGUsXHJcbiAgICBEeG9Cb3VuZGFyeU9mZnNldE1vZHVsZSxcclxuICAgIER4b0NvbGxpc2lvbk1vZHVsZSxcclxuICAgIER4b015TW9kdWxlLFxyXG4gICAgRHhvT2Zmc2V0TW9kdWxlLFxyXG4gICAgRHhvVG9Nb2R1bGUsXHJcbiAgICBEeG9TaG93TW9kdWxlLFxyXG4gICAgRHhUZW1wbGF0ZU1vZHVsZVxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIER4TG9hZFBhbmVsTW9kdWxlIHsgfVxyXG5cclxuaW1wb3J0IHR5cGUgKiBhcyBEeExvYWRQYW5lbFR5cGVzIGZyb20gXCJkZXZleHRyZW1lL3VpL2xvYWRfcGFuZWxfdHlwZXNcIjtcclxuZXhwb3J0IHsgRHhMb2FkUGFuZWxUeXBlcyB9O1xyXG5cclxuXHJcbiJdfQ==
788
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9kaXN0L3VpL2xvYWQtcGFuZWwvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0dBV0c7QUFFSCxvQ0FBb0M7QUFHcEMsT0FBTyxFQUNILGFBQWEsRUFDYixTQUFTLEVBQ1QsUUFBUSxFQUNSLFVBQVUsRUFDVixNQUFNLEVBQ04sV0FBVyxFQUNYLE1BQU0sRUFFTixLQUFLLEVBQ0wsTUFBTSxFQUVOLFlBQVksRUFDZixNQUFNLGVBQWUsQ0FBQztBQVN2QixPQUFPLFdBQVcsTUFBTSwwQkFBMEIsQ0FBQztBQUduRCxPQUFPLEVBQ0gsV0FBVyxFQUNYLGNBQWMsRUFDZCxtQkFBbUIsRUFDbkIsZ0JBQWdCLEVBQ2hCLGdCQUFnQixFQUNoQixhQUFhLEVBQ2hCLE1BQU0seUJBQXlCLENBQUM7QUFFakMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzdELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDM0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDdkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzNELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDhCQUE4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LE9BQU8sRUFBRTt3QkFDUCxvQkFBb0I7d0JBQ3BCLGtCQUFrQjt3QkFDbEIsYUFBYTt3QkFDYixhQUFhO3dCQUNiLGlCQUFpQjt3QkFDakIsV0FBVzt3QkFDWCx1QkFBdUI7d0JBQ3ZCLGtCQUFrQjt3QkFDbEIsV0FBVzt3QkFDWCxlQUFlO3dCQUNmLFdBQVc7d0JBQ1gsYUFBYTt3QkFDYixnQkFBZ0I7cUJBQ2pCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBkZXZleHRyZW1lLWFuZ3VsYXJcbiAqIFZlcnNpb246IDI0LjEuMTRcbiAqIEJ1aWxkIGRhdGU6IEZyaSBBdWcgMjkgMjAyNVxuICpcbiAqIENvcHlyaWdodCAoYykgMjAxMiAtIDIwMjUgRGV2ZWxvcGVyIEV4cHJlc3MgSW5jLiBBTEwgUklHSFRTIFJFU0VSVkVEXG4gKlxuICogVGhpcyBzb2Z0d2FyZSBtYXkgYmUgbW9kaWZpZWQgYW5kIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtc1xuICogb2YgdGhlIE1JVCBsaWNlbnNlLiBTZWUgdGhlIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBvZiB0aGUgcHJvamVjdCBmb3IgZGV0YWlscy5cbiAqXG4gKiBodHRwczovL2dpdGh1Yi5jb20vRGV2RXhwcmVzcy9kZXZleHRyZW1lLWFuZ3VsYXJcbiAqL1xuXG4vKiB0c2xpbnQ6ZGlzYWJsZTptYXgtbGluZS1sZW5ndGggKi9cclxuXHJcblxyXG5pbXBvcnQge1xyXG4gICAgVHJhbnNmZXJTdGF0ZSxcclxuICAgIENvbXBvbmVudCxcclxuICAgIE5nTW9kdWxlLFxyXG4gICAgRWxlbWVudFJlZixcclxuICAgIE5nWm9uZSxcclxuICAgIFBMQVRGT1JNX0lELFxyXG4gICAgSW5qZWN0LFxyXG5cclxuICAgIElucHV0LFxyXG4gICAgT3V0cHV0LFxyXG4gICAgT25EZXN0cm95LFxyXG4gICAgRXZlbnRFbWl0dGVyXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5cclxuaW1wb3J0IHsgQW5pbWF0aW9uQ29uZmlnIH0gZnJvbSAnZGV2ZXh0cmVtZS9hbmltYXRpb24vZngnO1xyXG5pbXBvcnQgeyBQb3NpdGlvbkNvbmZpZyB9IGZyb20gJ2RldmV4dHJlbWUvYW5pbWF0aW9uL3Bvc2l0aW9uJztcclxuaW1wb3J0IHsgUG9zaXRpb25BbGlnbm1lbnQgfSBmcm9tICdkZXZleHRyZW1lL2NvbW1vbic7XHJcbmltcG9ydCB7IFVzZXJEZWZpbmVkRWxlbWVudCB9IGZyb20gJ2RldmV4dHJlbWUvY29yZS9lbGVtZW50JztcclxuaW1wb3J0IHsgQ29udGVudFJlYWR5RXZlbnQsIERpc3Bvc2luZ0V2ZW50LCBIaWRkZW5FdmVudCwgSGlkaW5nRXZlbnQsIEluaXRpYWxpemVkRXZlbnQsIE9wdGlvbkNoYW5nZWRFdmVudCwgU2hvd2luZ0V2ZW50LCBTaG93bkV2ZW50IH0gZnJvbSAnZGV2ZXh0cmVtZS91aS9sb2FkX3BhbmVsJztcclxuXHJcbmltcG9ydCBEeExvYWRQYW5lbCBmcm9tICdkZXZleHRyZW1lL3VpL2xvYWRfcGFuZWwnO1xyXG5cclxuXHJcbmltcG9ydCB7XHJcbiAgICBEeENvbXBvbmVudCxcclxuICAgIER4VGVtcGxhdGVIb3N0LFxyXG4gICAgRHhJbnRlZ3JhdGlvbk1vZHVsZSxcclxuICAgIER4VGVtcGxhdGVNb2R1bGUsXHJcbiAgICBOZXN0ZWRPcHRpb25Ib3N0LFxyXG4gICAgV2F0Y2hlckhlbHBlclxyXG59IGZyb20gJ2RldmV4dHJlbWUtYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IER4b0FuaW1hdGlvbk1vZHVsZSB9IGZyb20gJ2RldmV4dHJlbWUtYW5ndWxhci91aS9uZXN0ZWQnO1xyXG5pbXBvcnQgeyBEeG9IaWRlTW9kdWxlIH0gZnJvbSAnZGV2ZXh0cmVtZS1hbmd1bGFyL3VpL25lc3RlZCc7XHJcbmltcG9ydCB7IER4b0Zyb21Nb2R1bGUgfSBmcm9tICdkZXZleHRyZW1lLWFuZ3VsYXIvdWkvbmVzdGVkJztcclxuaW1wb3J0IHsgRHhvUG9zaXRpb25Nb2R1bGUgfSBmcm9tICdkZXZleHRyZW1lLWFuZ3VsYXIvdWkvbmVzdGVkJztcclxuaW1wb3J0IHsgRHhvQXRNb2R1bGUgfSBmcm9tICdkZXZleHRyZW1lLWFuZ3VsYXIvdWkvbmVzdGVkJztcclxuaW1wb3J0IHsgRHhvQm91bmRhcnlPZmZzZXRNb2R1bGUgfSBmcm9tICdkZXZleHRyZW1lLWFuZ3VsYXIvdWkvbmVzdGVkJztcclxuaW1wb3J0IHsgRHhvQ29sbGlzaW9uTW9kdWxlIH0gZnJvbSAnZGV2ZXh0cmVtZS1hbmd1bGFyL3VpL25lc3RlZCc7XHJcbmltcG9ydCB7IER4b015TW9kdWxlIH0gZnJvbSAnZGV2ZXh0cmVtZS1hbmd1bGFyL3VpL25lc3RlZCc7XHJcbmltcG9ydCB7IER4b09mZnNldE1vZHVsZSB9IGZyb20gJ2RldmV4dHJlbWUtYW5ndWxhci91aS9uZXN0ZWQnO1xyXG5pbXBvcnQgeyBEeG9Ub01vZHVsZSB9IGZyb20gJ2RldmV4dHJlbWUtYW5ndWxhci91aS9uZXN0ZWQnO1xyXG5pbXBvcnQgeyBEeG9TaG93TW9kdWxlIH0gZnJvbSAnZGV2ZXh0cmVtZS1hbmd1bGFyL3VpL25lc3RlZCc7XHJcblxyXG5cclxuXHJcblxyXG4vKipcclxuICogW2Rlc2NyOmR4TG9hZFBhbmVsXVxyXG5cclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdkeC1sb2FkLXBhbmVsJyxcclxuICAgIHRlbXBsYXRlOiAnJyxcclxuICAgIGhvc3Q6IHsgbmdTa2lwSHlkcmF0aW9uOiAndHJ1ZScgfSxcclxuICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgIER4VGVtcGxhdGVIb3N0LFxyXG4gICAgICAgIFdhdGNoZXJIZWxwZXIsXHJcbiAgICAgICAgTmVzdGVkT3B0aW9uSG9zdFxyXG4gICAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRHhMb2FkUGFuZWxDb21wb25lbnQgZXh0ZW5kcyBEeENvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcbiAgICBpbnN0YW5jZTogRHhMb2FkUGFuZWwgPSBudWxsO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogW2Rlc2NyOmR4TG9hZFBhbmVsT3B0aW9ucy5hbmltYXRpb25dXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIGdldCBhbmltYXRpb24oKTogeyBoaWRlPzogQW5pbWF0aW9uQ29uZmlnLCBzaG93PzogQW5pbWF0aW9uQ29uZmlnIH0ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRPcHRpb24oJ2FuaW1hdGlvbicpO1xyXG4gICAgfVxyXG4gICAgc2V0IGFuaW1hdGlvbih2YWx1ZTogeyBoaWRlPzogQW5pbWF0aW9uQ29uZmlnLCBzaG93PzogQW5pbWF0aW9uQ29uZmlnIH0pIHtcclxuICAgICAgICB0aGlzLl9zZXRPcHRpb24oJ2FuaW1hdGlvbicsIHZhbHVlKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBbZGVzY3I6ZHhPdmVybGF5T3B0aW9ucy5jbG9zZU9uT3V0c2lkZUNsaWNrXVxyXG4gICAgXHJcbiAgICAgKiBAZGVwcmVjYXRlZCBbZGVwTm90ZTpkeE92ZXJsYXlPcHRpb25zLmNsb3NlT25PdXRzaWRlQ2xpY2tdXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIGdldCBjbG9zZU9uT3V0c2lkZUNsaWNrKCk6IGJvb2xlYW4gfCBGdW5jdGlvbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldE9wdGlvbignY2xvc2VPbk91dHNpZGVDbGljaycpO1xyXG4gICAgfVxyXG4gICAgc2V0IGNsb3NlT25PdXRzaWRlQ2xpY2sodmFsdWU6IGJvb2xlYW4gfCBGdW5jdGlvbikge1xyXG4gICAgICAgIHRoaXMuX3NldE9wdGlvbignY2xvc2VPbk91dHNpZGVDbGljaycsIHZhbHVlKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBbZGVzY3I6ZHhMb2FkUGFuZWxPcHRpb25zLmNvbnRhaW5lcl1cclxuICAgIFxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgZ2V0IGNvbnRhaW5lcigpOiBVc2VyRGVmaW5lZEVsZW1lbnQgfCBzdHJpbmcgfCB1bmRlZmluZWQge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRPcHRpb24oJ2NvbnRhaW5lcicpO1xyXG4gICAgfVxyXG4gICAgc2V0IGNvbnRhaW5lcih2YWx1ZTogVXNlckRlZmluZWRFbGVtZW50IHwgc3RyaW5nIHwgdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgdGhpcy5fc2V0T3B0aW9uKCdjb250YWluZXInLCB2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogW2Rlc2NyOmR4T3ZlcmxheU9wdGlvbnMuZGVmZXJSZW5kZXJpbmddXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIGdldCBkZWZlclJlbmRlcmluZygpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0T3B0aW9uKCdkZWZlclJlbmRlcmluZycpO1xyXG4gICAgfVxyXG4gICAgc2V0IGRlZmVyUmVuZGVyaW5nKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICAgICAgdGhpcy5fc2V0T3B0aW9uKCdkZWZlclJlbmRlcmluZycsIHZhbHVlKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBbZGVzY3I6ZHhMb2FkUGFuZWxPcHRpb25zLmRlbGF5XVxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBnZXQgZGVsYXkoKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0T3B0aW9uKCdkZWxheScpO1xyXG4gICAgfVxyXG4gICAgc2V0IGRlbGF5KHZhbHVlOiBudW1iZXIpIHtcclxuICAgICAgICB0aGlzLl9zZXRPcHRpb24oJ2RlbGF5JywgdmFsdWUpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIFtkZXNjcjpkeExvYWRQYW5lbE9wdGlvbnMuZm9jdXNTdGF0ZUVuYWJsZWRdXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIGdldCBmb2N1c1N0YXRlRW5hYmxlZCgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0T3B0aW9uKCdmb2N1c1N0YXRlRW5hYmxlZCcpO1xyXG4gICAgfVxyXG4gICAgc2V0IGZvY3VzU3RhdGVFbmFibGVkKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICAgICAgdGhpcy5fc2V0T3B0aW9uKCdmb2N1c1N0YXRlRW5hYmxlZCcsIHZhbHVlKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBbZGVzY3I6ZHhMb2FkUGFuZWxPcHRpb25zLmhlaWdodF1cclxuICAgIFxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgZ2V0IGhlaWdodCgpOiBudW1iZXIgfCBGdW5jdGlvbiB8IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldE9wdGlvbignaGVpZ2h0Jyk7XHJcbiAgICB9XHJcbiAgICBzZXQgaGVpZ2h0KHZhbHVlOiBudW1iZXIgfCBGdW5jdGlvbiB8IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMuX3NldE9wdGlvbignaGVpZ2h0JywgdmFsdWUpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIFtkZXNjcjpkeE92ZXJsYXlPcHRpb25zLmhpZGVPbk91dHNpZGVDbGlja11cclxuICAgIFxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgZ2V0IGhpZGVPbk91dHNpZGVDbGljaygpOiBib29sZWFuIHwgRnVuY3Rpb24ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRPcHRpb24oJ2hpZGVPbk91dHNpZGVDbGljaycpO1xyXG4gICAgfVxyXG4gICAgc2V0IGhpZGVPbk91dHNpZGVDbGljayh2YWx1ZTogYm9vbGVhbiB8IEZ1bmN0aW9uKSB7XHJcbiAgICAgICAgdGhpcy5fc2V0T3B0aW9uKCdoaWRlT25PdXRzaWRlQ2xpY2snLCB2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogW2Rlc2NyOmR4T3ZlcmxheU9wdGlvbnMuaGlkZU9uUGFyZW50U2Nyb2xsXVxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBnZXQgaGlkZU9uUGFyZW50U2Nyb2xsKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRPcHRpb24oJ2hpZGVPblBhcmVudFNjcm9sbCcpO1xyXG4gICAgfVxyXG4gICAgc2V0IGhpZGVPblBhcmVudFNjcm9sbCh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgICAgIHRoaXMuX3NldE9wdGlvbignaGlkZU9uUGFyZW50U2Nyb2xsJywgdmFsdWUpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIFtkZXNjcjpXaWRnZXRPcHRpb25zLmhpbnRdXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIGdldCBoaW50KCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldE9wdGlvbignaGludCcpO1xyXG4gICAgfVxyXG4gICAgc2V0IGhpbnQodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIHRoaXMuX3NldE9wdGlvbignaGludCcsIHZhbHVlKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBbZGVzY3I6V2lkZ2V0T3B0aW9ucy5ob3ZlclN0YXRlRW5hYmxlZF1cclxuICAgIFxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgZ2V0IGhvdmVyU3RhdGVFbmFibGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRPcHRpb24oJ2hvdmVyU3RhdGVFbmFibGVkJyk7XHJcbiAgICB9XHJcbiAgICBzZXQgaG92ZXJTdGF0ZUVuYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgICAgICB0aGlzLl9zZXRPcHRpb24oJ2hvdmVyU3RhdGVFbmFibGVkJywgdmFsdWUpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIFtkZXNjcjpkeExvYWRQYW5lbE9wdGlvbnMuaW5kaWNhdG9yU3JjXVxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBnZXQgaW5kaWNhdG9yU3JjKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldE9wdGlvbignaW5kaWNhdG9yU3JjJyk7XHJcbiAgICB9XHJcbiAgICBzZXQgaW5kaWNhdG9yU3JjKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLl9zZXRPcHRpb24oJ2luZGljYXRvclNyYycsIHZhbHVlKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBbZGVzY3I6ZHhMb2FkUGFuZWxPcHRpb25zLm1heEhlaWdodF1cclxuICAgIFxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgZ2V0IG1heEhlaWdodCgpOiBudW1iZXIgfCBGdW5jdGlvbiB8IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldE9wdGlvbignbWF4SGVpZ2h0Jyk7XHJcbiAgICB9XHJcbiAgICBzZXQgbWF4SGVpZ2h0KHZhbHVlOiBudW1iZXIgfCBGdW5jdGlvbiB8IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMuX3NldE9wdGlvbignbWF4SGVpZ2h0JywgdmFsdWUpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIFtkZXNjcjpkeExvYWRQYW5lbE9wdGlvbnMubWF4V2lkdGhdXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIGdldCBtYXhXaWR0aCgpOiBudW1iZXIgfCBGdW5jdGlvbiB8IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldE9wdGlvbignbWF4V2lkdGgnKTtcclxuICAgIH1cclxuICAgIHNldCBtYXhXaWR0aCh2YWx1ZTogbnVtYmVyIHwgRnVuY3Rpb24gfCBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLl9zZXRPcHRpb24oJ21heFdpZHRoJywgdmFsdWUpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIFtkZXNjcjpkeExvYWRQYW5lbE9wdGlvbnMubWVzc2FnZV1cclxuICAgIFxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgZ2V0IG1lc3NhZ2UoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0T3B0aW9uKCdtZXNzYWdlJyk7XHJcbiAgICB9XHJcbiAgICBzZXQgbWVzc2FnZSh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5fc2V0T3B0aW9uKCdtZXNzYWdlJywgdmFsdWUpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIFtkZXNjcjpkeE92ZXJsYXlPcHRpb25zLm1pbkhlaWdodF1cclxuICAgIFxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgZ2V0IG1pbkhlaWdodCgpOiBudW1iZXIgfCBGdW5jdGlvbiB8IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldE9wdGlvbignbWluSGVpZ2h0Jyk7XHJcbiAgICB9XHJcbiAgICBzZXQgbWluSGVpZ2h0KHZhbHVlOiBudW1iZXIgfCBGdW5jdGlvbiB8IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMuX3NldE9wdGlvbignbWluSGVpZ2h0JywgdmFsdWUpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIFtkZXNjcjpkeE92ZXJsYXlPcHRpb25zLm1pbldpZHRoXVxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBnZXQgbWluV2lkdGgoKTogbnVtYmVyIHwgRnVuY3Rpb24gfCBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRPcHRpb24oJ21pbldpZHRoJyk7XHJcbiAgICB9XHJcbiAgICBzZXQgbWluV2lkdGgodmFsdWU6IG51bWJlciB8IEZ1bmN0aW9uIHwgc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5fc2V0T3B0aW9uKCdtaW5XaWR0aCcsIHZhbHVlKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBbZGVzY3I6ZHhMb2FkUGFuZWxPcHRpb25zLnBvc2l0aW9uXVxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBnZXQgcG9zaXRpb24oKTogUG9zaXRpb25BbGlnbm1lbnQgfCBQb3NpdGlvbkNvbmZpZyB8IEZ1bmN0aW9uIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0T3B0aW9uKCdwb3NpdGlvbicpO1xyXG4gICAgfVxyXG4gICAgc2V0IHBvc2l0aW9uKHZhbHVlOiBQb3NpdGlvbkFsaWdubWVudCB8IFBvc2l0aW9uQ29uZmlnIHwgRnVuY3Rpb24pIHtcclxuICAgICAgICB0aGlzLl9zZXRPcHRpb24oJ3Bvc2l0aW9uJywgdmFsdWUpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIFtkZXNjcjpET01Db21wb25lbnRPcHRpb25zLnJ0bEVuYWJsZWRdXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIGdldCBydGxFbmFibGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRPcHRpb24oJ3J0bEVuYWJsZWQnKTtcclxuICAgIH1cclxuICAgIHNldCBydGxFbmFibGVkKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICAgICAgdGhpcy5fc2V0T3B0aW9uKCdydGxFbmFibGVkJywgdmFsdWUpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIFtkZXNjcjpkeE92ZXJsYXlPcHRpb25zLnNoYWRpbmddXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIGdldCBzaGFkaW5nKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRPcHRpb24oJ3NoYWRpbmcnKTtcclxuICAgIH1cclxuICAgIHNldCBzaGFkaW5nKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICAgICAgdGhpcy5fc2V0T3B0aW9uKCdzaGFkaW5nJywgdmFsdWUpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIFtkZXNjcjpkeExvYWRQYW5lbE9wdGlvbnMuc2hhZGluZ0NvbG9yXVxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBnZXQgc2hhZGluZ0NvbG9yKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldE9wdGlvbignc2hhZGluZ0NvbG9yJyk7XHJcbiAgICB9XHJcbiAgICBzZXQgc2hhZGluZ0NvbG9yKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLl9zZXRPcHRpb24oJ3NoYWRpbmdDb2xvcicsIHZhbHVlKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBbZGVzY3I6ZHhMb2FkUGFuZWxPcHRpb25zLnNob3dJbmRpY2F0b3JdXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIGdldCBzaG93SW5kaWNhdG9yKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRPcHRpb24oJ3Nob3dJbmRpY2F0b3InKTtcclxuICAgIH1cclxuICAgIHNldCBzaG93SW5kaWNhdG9yKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICAgICAgdGhpcy5fc2V0T3B0aW9uKCdzaG93SW5kaWNhdG9yJywgdmFsdWUpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIFtkZXNjcjpkeExvYWRQYW5lbE9wdGlvbnMuc2hvd1BhbmVdXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIGdldCBzaG93UGFuZSgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0T3B0aW9uKCdzaG93UGFuZScpO1xyXG4gICAgfVxyXG4gICAgc2V0IHNob3dQYW5lKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICAgICAgdGhpcy5fc2V0T3B0aW9uKCdzaG93UGFuZScsIHZhbHVlKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBbZGVzY3I6ZHhPdmVybGF5T3B0aW9ucy52aXNpYmxlXVxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBnZXQgdmlzaWJsZSgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0T3B0aW9uKCd2aXNpYmxlJyk7XHJcbiAgICB9XHJcbiAgICBzZXQgdmlzaWJsZSh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgICAgIHRoaXMuX3NldE9wdGlvbigndmlzaWJsZScsIHZhbHVlKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBbZGVzY3I6ZHhMb2FkUGFuZWxPcHRpb25zLndpZHRoXVxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBnZXQgd2lkdGgoKTogbnVtYmVyIHwgRnVuY3Rpb24gfCBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRPcHRpb24oJ3dpZHRoJyk7XHJcbiAgICB9XHJcbiAgICBzZXQgd2lkdGgodmFsdWU6IG51bWJlciB8IEZ1bmN0aW9uIHwgc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5fc2V0T3B0aW9uKCd3aWR0aCcsIHZhbHVlKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBbZGVzY3I6ZHhPdmVybGF5T3B0aW9ucy53cmFwcGVyQXR0cl1cclxuICAgIFxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgZ2V0IHdyYXBwZXJBdHRyKCk6IGFueSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldE9wdGlvbignd3JhcHBlckF0dHInKTtcclxuICAgIH1cclxuICAgIHNldCB3cmFwcGVyQXR0cih2YWx1ZTogYW55KSB7XHJcbiAgICAgICAgdGhpcy5fc2V0T3B0aW9uKCd3cmFwcGVyQXR0cicsIHZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogW2Rlc2NyOmR4TG9hZFBhbmVsT3B0aW9ucy5vbkNvbnRlbnRSZWFkeV1cclxuICAgIFxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKSBvbkNvbnRlbnRSZWFkeTogRXZlbnRFbWl0dGVyPENvbnRlbnRSZWFkeUV2ZW50PjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogW2Rlc2NyOmR4TG9hZFBhbmVsT3B0aW9ucy5vbkRpc3Bvc2luZ11cclxuICAgIFxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKSBvbkRpc3Bvc2luZzogRXZlbnRFbWl0dGVyPERpc3Bvc2luZ0V2ZW50PjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogW2Rlc2NyOmR4TG9hZFBhbmVsT3B0aW9ucy5vbkhpZGRlbl1cclxuICAgIFxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKSBvbkhpZGRlbjogRXZlbnRFbWl0dGVyPEhpZGRlbkV2ZW50PjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogW2Rlc2NyOmR4TG9hZFBhbmVsT3B0aW9ucy5vbkhpZGluZ11cclxuICAgIFxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKSBvbkhpZGluZzogRXZlbnRFbWl0dGVyPEhpZGluZ0V2ZW50PjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogW2Rlc2NyOmR4TG9hZFBhbmVsT3B0aW9ucy5vbkluaXRpYWxpemVkXVxyXG4gICAgXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIG9uSW5pdGlhbGl6ZWQ6IEV2ZW50RW1pdHRlcjxJbml0aWFsaXplZEV2ZW50PjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogW2Rlc2NyOmR4TG9hZFBhbmVsT3B0aW9ucy5vbk9wdGlvbkNoYW5nZWRdXHJcbiAgICBcclxuICAgIFxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KCkgb25PcHRpb25DaGFuZ2VkOiBFdmVudEVtaXR0ZXI8T3B0aW9uQ2hhbmdlZEV2ZW50PjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogW2Rlc2NyOmR4TG9hZFBhbmVsT3B0aW9ucy5vblNob3dpbmddXHJcbiAgICBcclxuICAgIFxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KCkgb25TaG93aW5nOiBFdmVudEVtaXR0ZXI8U2hvd2luZ0V2ZW50PjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogW2Rlc2NyOmR4TG9hZFBhbmVsT3B0aW9ucy5vblNob3duXVxyXG4gICAgXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIG9uU2hvd246IEV2ZW50RW1pdHRlcjxTaG93bkV2ZW50PjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogVGhpcyBtZW1iZXIgc3VwcG9ydHMgdGhlIGludGVybmFsIGluZnJhc3RydWN0dXJlIGFuZCBpcyBub3QgaW50ZW5kZWQgdG8gYmUgdXNlZCBkaXJlY3RseSBmcm9tIHlvdXIgY29kZS5cclxuICAgIFxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KCkgYW5pbWF0aW9uQ2hhbmdlOiBFdmVudEVtaXR0ZXI8eyBoaWRlPzogQW5pbWF0aW9uQ29uZmlnLCBzaG93PzogQW5pbWF0aW9uQ29uZmlnIH0+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgXHJcbiAgICAgKiBUaGlzIG1lbWJlciBzdXBwb3J0cyB0aGUgaW50ZXJuYWwgaW5mcmFzdHJ1Y3R1cmUgYW5kIGlzIG5vdCBpbnRlbmRlZCB0byBiZSB1c2VkIGRpcmVjdGx5IGZyb20geW91ciBjb2RlLlxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKSBjbG9zZU9uT3V0c2lkZUNsaWNrQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbiB8IEZ1bmN0aW9uPjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogVGhpcyBtZW1iZXIgc3VwcG9ydHMgdGhlIGludGVybmFsIGluZnJhc3RydWN0dXJlIGFuZCBpcyBub3QgaW50ZW5kZWQgdG8gYmUgdXNlZCBkaXJlY3RseSBmcm9tIHlvdXIgY29kZS5cclxuICAgIFxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KCkgY29udGFpbmVyQ2hhbmdlOiBFdmVudEVtaXR0ZXI8VXNlckRlZmluZWRFbGVtZW50IHwgc3RyaW5nIHwgdW5kZWZpbmVkPjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogVGhpcyBtZW1iZXIgc3VwcG9ydHMgdGhlIGludGVybmFsIGluZnJhc3RydWN0dXJlIGFuZCBpcyBub3QgaW50ZW5kZWQgdG8gYmUgdXNlZCBkaXJlY3RseSBmcm9tIHlvdXIgY29kZS5cclxuICAgIFxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KCkgZGVmZXJSZW5kZXJpbmdDaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogVGhpcyBtZW1iZXIgc3VwcG9ydHMgdGhlIGludGVybmFsIGluZnJhc3RydWN0dXJlIGFuZCBpcyBub3QgaW50ZW5kZWQgdG8gYmUgdXNlZCBkaXJlY3RseSBmcm9tIHlvdXIgY29kZS5cclxuICAgIFxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KCkgZGVsYXlDaGFuZ2U6IEV2ZW50RW1pdHRlcjxudW1iZXI+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgXHJcbiAgICAgKiBUaGlzIG1lbWJlciBzdXBwb3J0cyB0aGUgaW50ZXJuYWwgaW5mcmFzdHJ1Y3R1cmUgYW5kIGlzIG5vdCBpbnRlbmRlZCB0byBiZSB1c2VkIGRpcmVjdGx5IGZyb20geW91ciBjb2RlLlxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKSBmb2N1c1N0YXRlRW5hYmxlZENoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgXHJcbiAgICAgKiBUaGlzIG1lbWJlciBzdXBwb3J0cyB0aGUgaW50ZXJuYWwgaW5mcmFzdHJ1Y3R1cmUgYW5kIGlzIG5vdCBpbnRlbmRlZCB0byBiZSB1c2VkIGRpcmVjdGx5IGZyb20geW91ciBjb2RlLlxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKSBoZWlnaHRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxudW1iZXIgfCBGdW5jdGlvbiB8IHN0cmluZz47XHJcblxyXG4gICAgLyoqXHJcbiAgICBcclxuICAgICAqIFRoaXMgbWVtYmVyIHN1cHBvcnRzIHRoZSBpbnRlcm5hbCBpbmZyYXN0cnVjdHVyZSBhbmQgaXMgbm90IGludGVuZGVkIHRvIGJlIHVzZWQgZGlyZWN0bHkgZnJvbSB5b3VyIGNvZGUuXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIGhpZGVPbk91dHNpZGVDbGlja0NoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4gfCBGdW5jdGlvbj47XHJcblxyXG4gICAgLyoqXHJcbiAgICBcclxuICAgICAqIFRoaXMgbWVtYmVyIHN1cHBvcnRzIHRoZSBpbnRlcm5hbCBpbmZyYXN0cnVjdHVyZSBhbmQgaXMgbm90IGludGVuZGVkIHRvIGJlIHVzZWQgZGlyZWN0bHkgZnJvbSB5b3VyIGNvZGUuXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIGhpZGVPblBhcmVudFNjcm9sbENoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgXHJcbiAgICAgKiBUaGlzIG1lbWJlciBzdXBwb3J0cyB0aGUgaW50ZXJuYWwgaW5mcmFzdHJ1Y3R1cmUgYW5kIGlzIG5vdCBpbnRlbmRlZCB0byBiZSB1c2VkIGRpcmVjdGx5IGZyb20geW91ciBjb2RlLlxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKSBoaW50Q2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nIHwgdW5kZWZpbmVkPjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogVGhpcyBtZW1iZXIgc3VwcG9ydHMgdGhlIGludGVybmFsIGluZnJhc3RydWN0dXJlIGFuZCBpcyBub3QgaW50ZW5kZWQgdG8gYmUgdXNlZCBkaXJlY3RseSBmcm9tIHlvdXIgY29kZS5cclxuICAgIFxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KCkgaG92ZXJTdGF0ZUVuYWJsZWRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogVGhpcyBtZW1iZXIgc3VwcG9ydHMgdGhlIGludGVybmFsIGluZnJhc3RydWN0dXJlIGFuZCBpcyBub3QgaW50ZW5kZWQgdG8gYmUgdXNlZCBkaXJlY3RseSBmcm9tIHlvdXIgY29kZS5cclxuICAgIFxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KCkgaW5kaWNhdG9yU3JjQ2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nPjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogVGhpcyBtZW1iZXIgc3VwcG9ydHMgdGhlIGludGVybmFsIGluZnJhc3RydWN0dXJlIGFuZCBpcyBub3QgaW50ZW5kZWQgdG8gYmUgdXNlZCBkaXJlY3RseSBmcm9tIHlvdXIgY29kZS5cclxuICAgIFxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KCkgbWF4SGVpZ2h0Q2hhbmdlOiBFdmVudEVtaXR0ZXI8bnVtYmVyIHwgRnVuY3Rpb24gfCBzdHJpbmc+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgXHJcbiAgICAgKiBUaGlzIG1lbWJlciBzdXBwb3J0cyB0aGUgaW50ZXJuYWwgaW5mcmFzdHJ1Y3R1cmUgYW5kIGlzIG5vdCBpbnRlbmRlZCB0byBiZSB1c2VkIGRpcmVjdGx5IGZyb20geW91ciBjb2RlLlxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKSBtYXhXaWR0aENoYW5nZTogRXZlbnRFbWl0dGVyPG51bWJlciB8IEZ1bmN0aW9uIHwgc3RyaW5nPjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogVGhpcyBtZW1iZXIgc3VwcG9ydHMgdGhlIGludGVybmFsIGluZnJhc3RydWN0dXJlIGFuZCBpcyBub3QgaW50ZW5kZWQgdG8gYmUgdXNlZCBkaXJlY3RseSBmcm9tIHlvdXIgY29kZS5cclxuICAgIFxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KCkgbWVzc2FnZUNoYW5nZTogRXZlbnRFbWl0dGVyPHN0cmluZz47XHJcblxyXG4gICAgLyoqXHJcbiAgICBcclxuICAgICAqIFRoaXMgbWVtYmVyIHN1cHBvcnRzIHRoZSBpbnRlcm5hbCBpbmZyYXN0cnVjdHVyZSBhbmQgaXMgbm90IGludGVuZGVkIHRvIGJlIHVzZWQgZGlyZWN0bHkgZnJvbSB5b3VyIGNvZGUuXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIG1pbkhlaWdodENoYW5nZTogRXZlbnRFbWl0dGVyPG51bWJlciB8IEZ1bmN0aW9uIHwgc3RyaW5nPjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogVGhpcyBtZW1iZXIgc3VwcG9ydHMgdGhlIGludGVybmFsIGluZnJhc3RydWN0dXJlIGFuZCBpcyBub3QgaW50ZW5kZWQgdG8gYmUgdXNlZCBkaXJlY3RseSBmcm9tIHlvdXIgY29kZS5cclxuICAgIFxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KCkgbWluV2lkdGhDaGFuZ2U6IEV2ZW50RW1pdHRlcjxudW1iZXIgfCBGdW5jdGlvbiB8IHN0cmluZz47XHJcblxyXG4gICAgLyoqXHJcbiAgICBcclxuICAgICAqIFRoaXMgbWVtYmVyIHN1cHBvcnRzIHRoZSBpbnRlcm5hbCBpbmZyYXN0cnVjdHVyZSBhbmQgaXMgbm90IGludGVuZGVkIHRvIGJlIHVzZWQgZGlyZWN0bHkgZnJvbSB5b3VyIGNvZGUuXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIHBvc2l0aW9uQ2hhbmdlOiBFdmVudEVtaXR0ZXI8UG9zaXRpb25BbGlnbm1lbnQgfCBQb3NpdGlvbkNvbmZpZyB8IEZ1bmN0aW9uPjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogVGhpcyBtZW1iZXIgc3VwcG9ydHMgdGhlIGludGVybmFsIGluZnJhc3RydWN0dXJlIGFuZCBpcyBub3QgaW50ZW5kZWQgdG8gYmUgdXNlZCBkaXJlY3RseSBmcm9tIHlvdXIgY29kZS5cclxuICAgIFxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KCkgcnRsRW5hYmxlZENoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgXHJcbiAgICAgKiBUaGlzIG1lbWJlciBzdXBwb3J0cyB0aGUgaW50ZXJuYWwgaW5mcmFzdHJ1Y3R1cmUgYW5kIGlzIG5vdCBpbnRlbmRlZCB0byBiZSB1c2VkIGRpcmVjdGx5IGZyb20geW91ciBjb2RlLlxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKSBzaGFkaW5nQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj47XHJcblxyXG4gICAgLyoqXHJcbiAgICBcclxuICAgICAqIFRoaXMgbWVtYmVyIHN1cHBvcnRzIHRoZSBpbnRlcm5hbCBpbmZyYXN0cnVjdHVyZSBhbmQgaXMgbm90IGludGVuZGVkIHRvIGJlIHVzZWQgZGlyZWN0bHkgZnJvbSB5b3VyIGNvZGUuXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIHNoYWRpbmdDb2xvckNoYW5nZTogRXZlbnRFbWl0dGVyPHN0cmluZz47XHJcblxyXG4gICAgLyoqXHJcbiAgICBcclxuICAgICAqIFRoaXMgbWVtYmVyIHN1cHBvcnRzIHRoZSBpbnRlcm5hbCBpbmZyYXN0cnVjdHVyZSBhbmQgaXMgbm90IGludGVuZGVkIHRvIGJlIHVzZWQgZGlyZWN0bHkgZnJvbSB5b3VyIGNvZGUuXHJcbiAgICBcclxuICAgICAqL1xyXG4gICAgQE91dHB1dCgpIHNob3dJbmRpY2F0b3JDaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogVGhpcyBtZW1iZXIgc3VwcG9ydHMgdGhlIGludGVybmFsIGluZnJhc3RydWN0dXJlIGFuZCBpcyBub3QgaW50ZW5kZWQgdG8gYmUgdXNlZCBkaXJlY3RseSBmcm9tIHlvdXIgY29kZS5cclxuICAgIFxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KCkgc2hvd1BhbmVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogVGhpcyBtZW1iZXIgc3VwcG9ydHMgdGhlIGludGVybmFsIGluZnJhc3RydWN0dXJlIGFuZCBpcyBub3QgaW50ZW5kZWQgdG8gYmUgdXNlZCBkaXJlY3RseSBmcm9tIHlvdXIgY29kZS5cclxuICAgIFxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KCkgdmlzaWJsZUNoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgXHJcbiAgICAgKiBUaGlzIG1lbWJlciBzdXBwb3J0cyB0aGUgaW50ZXJuYWwgaW5mcmFzdHJ1Y3R1cmUgYW5kIGlzIG5vdCBpbnRlbmRlZCB0byBiZSB1c2VkIGRpcmVjdGx5IGZyb20geW91ciBjb2RlLlxyXG4gICAgXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKSB3aWR0aENoYW5nZTogRXZlbnRFbWl0dGVyPG51bWJlciB8IEZ1bmN0aW9uIHwgc3RyaW5nPjtcclxuXHJcbiAgICAvKipcclxuICAgIFxyXG4gICAgICogVGhpcyBtZW1iZXIgc3VwcG9ydHMgdGhlIGludGVybmFsIGluZnJhc3RydWN0dXJlIGFuZCBpcyBub3QgaW50ZW5kZWQgdG8gYmUgdXNlZCBkaXJlY3RseSBmcm9tIHlvdXIgY29kZS5cclxuICAgIFxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KCkgd3JhcHBlckF0dHJDaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+O1xyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuICAgIGNvbnN0cnVjdG9yKGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsIG5nWm9uZTogTmdab25lLCB0ZW1wbGF0ZUhvc3Q6IER4VGVtcGxhdGVIb3N0LFxyXG4gICAgICAgICAgICBfd2F0Y2hlckhlbHBlcjogV2F0Y2hlckhlbHBlcixcclxuICAgICAgICAgICAgb3B0aW9uSG9zdDogTmVzdGVkT3B0aW9uSG9zdCxcclxuICAgICAgICAgICAgdHJhbnNmZXJTdGF0ZTogVHJhbnNmZXJTdGF0ZSxcclxuICAgICAgICAgICAgQEluamVjdChQTEFURk9STV9JRCkgcGxhdGZvcm1JZDogYW55KSB7XHJcblxyXG4gICAgICAgIHN1cGVyKGVsZW1lbnRSZWYsIG5nWm9uZSwgdGVtcGxhdGVIb3N0LCBfd2F0Y2hlckhlbHBlciwgdHJhbnNmZXJTdGF0ZSwgcGxhdGZvcm1JZCk7XHJcblxyXG4gICAgICAgIHRoaXMuX2NyZWF0ZUV2ZW50RW1pdHRlcnMoW1xyXG4gICAgICAgICAgICB7IHN1YnNjcmliZTogJ2NvbnRlbnRSZWFkeScsIGVtaXQ6ICdvbkNvbnRlbnRSZWFkeScgfSxcclxuICAgICAgICAgICAgeyBzdWJzY3JpYmU6ICdkaXNwb3NpbmcnLCBlbWl0OiAnb25EaXNwb3NpbmcnIH0sXHJcbiAgICAgICAgICAgIHsgc3Vic2NyaWJlOiAnaGlkZGVuJywgZW1pdDogJ29uSGlkZGVuJyB9LFxyXG4gICAgICAgICAgICB7IHN1YnNjcmliZTogJ2hpZGluZycsIGVtaXQ6ICdvbkhpZGluZycgfSxcclxuICAgICAgICAgICAgeyBzdWJzY3JpYmU6ICdpbml0aWFsaXplZCcsIGVtaXQ6ICdvbkluaXRpYWxpemVkJyB9LFxyXG4gICAgICAgICAgICB7IHN1YnNjcmliZTogJ29wdGlvbkNoYW5nZWQnLCBlbWl0OiAnb25PcHRpb25DaGFuZ2VkJyB9LFxyXG4gICAgICAgICAgICB7IHN1YnNjcmliZTogJ3Nob3dpbmcnLCBlbWl0OiAnb25TaG93aW5nJyB9LFxyXG4gICAgICAgICAgICB7IHN1YnNjcmliZTogJ3Nob3duJywgZW1pdDogJ29uU2hvd24nIH0sXHJcbiAgICAgICAgICAgIHsgZW1pdDogJ2FuaW1hdGlvbkNoYW5nZScgfSxcclxuICAgICAgICAgICAgeyBlbWl0OiAnY2xvc2VPbk91dHNpZGVDbGlja0NoYW5nZScgfSxcclxuICAgICAgICAgICAgeyBlbWl0OiAnY29udGFpbmVyQ2hhbmdlJyB9LFxyXG4gICAgICAgICAgICB7IGVtaXQ6ICdkZWZlclJlbmRlcmluZ0NoYW5nZScgfSxcclxuICAgICAgICAgICAgeyBlbWl0OiAnZGVsYXlDaGFuZ2UnIH0sXHJcbiAgICAgICAgICAgIHsgZW1pdDogJ2ZvY3VzU3RhdGVFbmFibGVkQ2hhbmdlJyB9LFxyXG4gICAgICAgICAgICB7IGVtaXQ6ICdoZWlnaHRDaGFuZ2UnIH0sXHJcbiAgICAgICAgICAgIHsgZW1pdDogJ2hpZGVPbk91dHNpZGVDbGlja0NoYW5nZScgfSxcclxuICAgICAgICAgICAgeyBlbWl0OiAnaGlkZU9uUGFyZW50U2Nyb2xsQ2hhbmdlJyB9LFxyXG4gICAgICAgICAgICB7IGVtaXQ6ICdoaW50Q2hhbmdlJyB9LFxyXG4gICAgICAgICAgICB7IGVtaXQ6ICdob3ZlclN0YXRlRW5hYmxlZENoYW5nZScgfSxcclxuICAgICAgICAgICAgeyBlbWl0OiAnaW5kaWNhdG9yU3JjQ2hhbmdlJyB9LFxyXG4gICAgICAgICAgICB7IGVtaXQ6ICdtYXhIZWlnaHRDaGFuZ2UnIH0sXHJcbiAgICAgICAgICAgIHsgZW1pdDogJ21heFdpZHRoQ2hhbmdlJyB9LFxyXG4gICAgICAgICAgICB7IGVtaXQ6ICdtZXNzYWdlQ2hhbmdlJyB9LFxyXG4gICAgICAgICAgICB7IGVtaXQ6ICdtaW5IZWlnaHRDaGFuZ2UnIH0sXHJcbiAgICAgICAgICAgIHsgZW1pdDogJ21pbldpZHRoQ2hhbmdlJyB9LFxyXG4gICAgICAgICAgICB7IGVtaXQ6ICdwb3NpdGlvbkNoYW5nZScgfSxcclxuICAgICAgICAgICAgeyBlbWl0OiAncnRsRW5hYmxlZENoYW5nZScgfSxcclxuICAgICAgICAgICAgeyBlbWl0OiAnc2hhZGluZ0NoYW5nZScgfSxcclxuICAgICAgICAgICAgeyBlbWl0OiAnc2hhZGluZ0NvbG9yQ2hhbmdlJyB9LFxyXG4gICAgICAgICAgICB7IGVtaXQ6ICdzaG93SW5kaWNhdG9yQ2hhbmdlJyB9LFxyXG4gICAgICAgICAgICB7IGVtaXQ6ICdzaG93UGFuZUNoYW5nZScgfSxcclxuICAgICAgICAgICAgeyBlbWl0OiAndmlzaWJsZUNoYW5nZScgfSxcclxuICAgICAgICAgICAgeyBlbWl0OiAnd2lkdGhDaGFuZ2UnIH0sXHJcbiAgICAgICAgICAgIHsgZW1pdDogJ3dyYXBwZXJBdHRyQ2hhbmdlJyB9XHJcbiAgICAgICAgXSk7XHJcbiAgICAgICAgb3B0aW9uSG9zdC5zZXRIb3N0KHRoaXMpO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBfY3JlYXRlSW5zdGFuY2UoZWxlbWVudCwgb3B0aW9ucykge1xyXG5cclxuICAgICAgICByZXR1cm4gbmV3IER4TG9hZFBhbmVsKGVsZW1lbnQsIG9wdGlvbnMpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpIHtcclxuICAgICAgICB0aGlzLl9kZXN0cm95V2lkZ2V0KCk7XHJcbiAgICB9XHJcblxyXG59XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGltcG9ydHM6IFtcclxuICAgIER4b0FuaW1hdGlvbk1vZHVsZSxcclxuICAgIER4b0hpZGVNb2R1bGUsXHJcbiAgICBEeG9Gcm9tTW9kdWxlLFxyXG4gICAgRHhvUG9zaXRpb25Nb2R1bGUsXHJcbiAgICBEeG9BdE1vZHVsZSxcclxuICAgIER4b0JvdW5kYXJ5T2Zmc2V0TW9kdWxlLFxyXG4gICAgRHhvQ29sbGlzaW9uTW9kdWxlLFxyXG4gICAgRHhvTXlNb2R1bGUsXHJcbiAgICBEeG9PZmZzZXRNb2R1bGUsXHJcbiAgICBEeG9Ub01vZHVsZSxcclxuICAgIER4b1Nob3dNb2R1bGUsXHJcbiAgICBEeEludGVncmF0aW9uTW9kdWxlLFxyXG4gICAgRHhUZW1wbGF0ZU1vZHVsZVxyXG4gIF0sXHJcbiAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICBEeExvYWRQYW5lbENvbXBvbmVudFxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgRHhMb2FkUGFuZWxDb21wb25lbnQsXHJcbiAgICBEeG9BbmltYXRpb25Nb2R1bGUsXHJcbiAgICBEeG9IaWRlTW9kdWxlLFxyXG4gICAgRHhvRnJvbU1vZHVsZSxcclxuICAgIER4b1Bvc2l0aW9uTW9kdWxlLFxyXG4gICAgRHhvQXRNb2R1bGUsXHJcbiAgICBEeG9Cb3VuZGFyeU9mZnNldE1vZHVsZSxcclxuICAgIER4b0NvbGxpc2lvbk1vZHVsZSxcclxuICAgIER4b015TW9kdWxlLFxyXG4gICAgRHhvT2Zmc2V0TW9kdWxlLFxyXG4gICAgRHhvVG9Nb2R1bGUsXHJcbiAgICBEeG9TaG93TW9kdWxlLFxyXG4gICAgRHhUZW1wbGF0ZU1vZHVsZVxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIER4TG9hZFBhbmVsTW9kdWxlIHsgfVxyXG5cclxuaW1wb3J0IHR5cGUgKiBhcyBEeExvYWRQYW5lbFR5cGVzIGZyb20gXCJkZXZleHRyZW1lL3VpL2xvYWRfcGFuZWxfdHlwZXNcIjtcclxuZXhwb3J0IHsgRHhMb2FkUGFuZWxUeXBlcyB9O1xyXG5cclxuXHJcbiJdfQ==