@koobiq/components 18.33.0 → 18.35.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (309) hide show
  1. package/actions-panel/actions-panel-config.d.ts +4 -3
  2. package/actions-panel/actions-panel-container.scss +0 -6
  3. package/actions-panel/actions-panel-ref.d.ts +13 -0
  4. package/actions-panel/actions-panel.d.ts +1 -7
  5. package/button/_button-theme.scss +1 -0
  6. package/clamped-text/clamped-text.d.ts +61 -0
  7. package/clamped-text/clamped-text.scss +17 -0
  8. package/clamped-text/constants.d.ts +14 -0
  9. package/clamped-text/index.d.ts +3 -0
  10. package/clamped-text/module.d.ts +7 -0
  11. package/content-panel/content-panel-aside.scss +9 -0
  12. package/content-panel/content-panel-body.scss +9 -0
  13. package/content-panel/content-panel-container.scss +32 -0
  14. package/content-panel/content-panel-footer.scss +5 -0
  15. package/content-panel/content-panel-header.scss +30 -0
  16. package/content-panel/content-panel-tokens.scss +9 -0
  17. package/content-panel/content-panel.d.ts +149 -0
  18. package/content-panel/content-panel.scss +25 -0
  19. package/content-panel/index.d.ts +3 -0
  20. package/content-panel/module.d.ts +7 -0
  21. package/content-panel/resizable.d.ts +70 -0
  22. package/core/form-field/field-sizing-content.d.ts +21 -0
  23. package/core/form-field/index.d.ts +1 -0
  24. package/core/locales/en-US.d.ts +10 -0
  25. package/core/locales/es-LA.d.ts +10 -0
  26. package/core/locales/fa-IR.d.ts +10 -0
  27. package/core/locales/locale-service.d.ts +70 -0
  28. package/core/locales/pt-BR.d.ts +10 -0
  29. package/core/locales/ru-RU.d.ts +10 -0
  30. package/core/locales/tk-TM.d.ts +10 -0
  31. package/core/locales/types.d.ts +5 -0
  32. package/core/locales/zh-CN.d.ts +10 -0
  33. package/core/navbar/index.d.ts +1 -0
  34. package/core/navbar/rectangle-item.d.ts +14 -0
  35. package/core/option/option.d.ts +3 -1
  36. package/core/pop-up/pop-up-trigger.d.ts +2 -0
  37. package/core/public-api.d.ts +1 -0
  38. package/core/styles/common/_select.scss +6 -3
  39. package/core/utils/dom.d.ts +9 -0
  40. package/core/utils/index.d.ts +1 -0
  41. package/core/utils/utils.d.ts +4 -0
  42. package/datepicker/calendar.component.d.ts +1 -1
  43. package/datepicker/datepicker-input.directive.d.ts +19 -8
  44. package/datepicker/datepicker-toggle.component.d.ts +1 -1
  45. package/datepicker/datepicker.component.d.ts +2 -2
  46. package/dropdown/dropdown-item.scss +1 -0
  47. package/dropdown/dropdown-trigger.directive.d.ts +7 -1
  48. package/dynamic-translation/dynamic-translation.d.ts +72 -0
  49. package/dynamic-translation/index.d.ts +2 -0
  50. package/dynamic-translation/module.d.ts +7 -0
  51. package/esm2022/actions-panel/actions-panel-config.mjs +1 -1
  52. package/esm2022/actions-panel/actions-panel-container.mjs +7 -7
  53. package/esm2022/actions-panel/actions-panel-ref.mjs +17 -1
  54. package/esm2022/actions-panel/actions-panel.mjs +34 -24
  55. package/esm2022/breadcrumbs/breadcrumbs.mjs +2 -2
  56. package/esm2022/button/button.component.mjs +2 -2
  57. package/esm2022/button-toggle/button-toggle.component.mjs +9 -9
  58. package/esm2022/clamped-text/clamped-text.mjs +202 -0
  59. package/esm2022/clamped-text/constants.mjs +20 -0
  60. package/esm2022/clamped-text/index.mjs +4 -0
  61. package/esm2022/clamped-text/koobiq-components-clamped-text.mjs +5 -0
  62. package/esm2022/clamped-text/module.mjs +19 -0
  63. package/esm2022/content-panel/content-panel.mjs +432 -0
  64. package/esm2022/content-panel/index.mjs +4 -0
  65. package/esm2022/content-panel/koobiq-components-content-panel.mjs +5 -0
  66. package/esm2022/content-panel/module.mjs +42 -0
  67. package/esm2022/content-panel/resizable.mjs +138 -0
  68. package/esm2022/core/form-field/field-sizing-content.mjs +114 -0
  69. package/esm2022/core/form-field/index.mjs +2 -1
  70. package/esm2022/core/locales/en-US.mjs +11 -1
  71. package/esm2022/core/locales/es-LA.mjs +11 -1
  72. package/esm2022/core/locales/fa-IR.mjs +11 -1
  73. package/esm2022/core/locales/pt-BR.mjs +11 -1
  74. package/esm2022/core/locales/ru-RU.mjs +11 -1
  75. package/esm2022/core/locales/tk-TM.mjs +11 -1
  76. package/esm2022/core/locales/types.mjs +1 -1
  77. package/esm2022/core/locales/zh-CN.mjs +11 -1
  78. package/esm2022/core/navbar/index.mjs +2 -0
  79. package/esm2022/core/navbar/rectangle-item.mjs +39 -0
  80. package/esm2022/core/option/option.mjs +8 -4
  81. package/esm2022/core/pop-up/pop-up-trigger.mjs +5 -1
  82. package/esm2022/core/public-api.mjs +2 -1
  83. package/esm2022/core/utils/dom.mjs +14 -0
  84. package/esm2022/core/utils/index.mjs +2 -1
  85. package/esm2022/core/utils/utils.mjs +9 -1
  86. package/esm2022/core/version.mjs +2 -2
  87. package/esm2022/datepicker/calendar-header.component.mjs +6 -3
  88. package/esm2022/datepicker/calendar.component.mjs +9 -9
  89. package/esm2022/datepicker/datepicker-input.directive.mjs +24 -21
  90. package/esm2022/datepicker/datepicker-toggle.component.mjs +8 -8
  91. package/esm2022/datepicker/datepicker.component.mjs +3 -3
  92. package/esm2022/dropdown/dropdown-item.component.mjs +2 -2
  93. package/esm2022/dropdown/dropdown-trigger.directive.mjs +30 -10
  94. package/esm2022/dropdown/dropdown.component.mjs +3 -3
  95. package/esm2022/dynamic-translation/dynamic-translation.mjs +175 -0
  96. package/esm2022/dynamic-translation/index.mjs +3 -0
  97. package/esm2022/dynamic-translation/koobiq-components-dynamic-translation.mjs +5 -0
  98. package/esm2022/dynamic-translation/module.mjs +25 -0
  99. package/esm2022/file-upload/file-drop.mjs +1 -1
  100. package/esm2022/file-upload/file-upload.mjs +6 -1
  101. package/esm2022/file-upload/multiple-file-upload.component.mjs +21 -16
  102. package/esm2022/file-upload/single-file-upload.component.mjs +23 -16
  103. package/esm2022/filter-bar/filter-bar.mjs +3 -3
  104. package/esm2022/filter-bar/filter-refresher.mjs +5 -5
  105. package/esm2022/filter-bar/filter-reset.mjs +3 -3
  106. package/esm2022/filter-bar/filter-search.mjs +11 -11
  107. package/esm2022/filter-bar/filters.mjs +16 -4
  108. package/esm2022/filter-bar/pipe-add.mjs +6 -6
  109. package/esm2022/filter-bar/pipes/base-pipe.mjs +2 -2
  110. package/esm2022/filter-bar/pipes/pipe-button.mjs +7 -7
  111. package/esm2022/filter-bar/pipes/pipe-date.mjs +10 -2
  112. package/esm2022/filter-bar/pipes/pipe-datetime.mjs +10 -2
  113. package/esm2022/filter-bar/pipes/pipe-multi-select.mjs +11 -17
  114. package/esm2022/filter-bar/pipes/pipe-multi-tree-select.mjs +10 -9
  115. package/esm2022/filter-bar/pipes/pipe-readonly.mjs +7 -7
  116. package/esm2022/filter-bar/pipes/pipe-select.mjs +3 -4
  117. package/esm2022/filter-bar/pipes/pipe-text.mjs +9 -3
  118. package/esm2022/filter-bar/pipes/pipe-tree-select.mjs +9 -3
  119. package/esm2022/form-field/cleaner.mjs +16 -11
  120. package/esm2022/form-field/fieldset.mjs +2 -2
  121. package/esm2022/form-field/form-field.mjs +5 -5
  122. package/esm2022/form-field/password-hint.mjs +14 -3
  123. package/esm2022/form-field/password-toggle.mjs +45 -10
  124. package/esm2022/form-field/reactive-password-hint.mjs +18 -17
  125. package/esm2022/form-field/stepper.mjs +9 -9
  126. package/esm2022/icon/icon-button.component.mjs +2 -2
  127. package/esm2022/input/input-number.mjs +15 -10
  128. package/esm2022/markdown/markdown.component.mjs +3 -3
  129. package/esm2022/modal/modal.component.mjs +14 -14
  130. package/esm2022/modal/modal.directive.mjs +7 -5
  131. package/esm2022/navbar/navbar-item.component.mjs +3 -3
  132. package/esm2022/navbar-ic/index.mjs +2 -0
  133. package/esm2022/navbar-ic/koobiq-components-navbar-ic.mjs +5 -0
  134. package/esm2022/navbar-ic/navbar-ic-header.mjs +58 -0
  135. package/esm2022/navbar-ic/navbar-ic-item.mjs +399 -0
  136. package/esm2022/navbar-ic/navbar-ic.animation.mjs +9 -0
  137. package/esm2022/navbar-ic/navbar-ic.mjs +281 -0
  138. package/esm2022/navbar-ic/navbar-ic.module.mjs +74 -0
  139. package/esm2022/navbar-ic/public-api.mjs +5 -0
  140. package/esm2022/popover/popover-confirm.component.mjs +3 -3
  141. package/esm2022/popover/popover.component.mjs +10 -5
  142. package/esm2022/scrollbar/scrollbar.component.mjs +5 -5
  143. package/esm2022/select/select.component.mjs +24 -11
  144. package/esm2022/sidebar/sidebar.component.mjs +46 -27
  145. package/esm2022/sidepanel/sidepanel-container.component.mjs +15 -4
  146. package/esm2022/sidepanel/sidepanel-directives.mjs +5 -5
  147. package/esm2022/sidepanel/sidepanel-ref.mjs +8 -6
  148. package/esm2022/splitter/splitter.component.mjs +1 -1
  149. package/esm2022/tabs/tab-body.component.mjs +3 -3
  150. package/esm2022/tabs/tab-group.component.mjs +27 -27
  151. package/esm2022/tabs/tab.component.mjs +4 -4
  152. package/esm2022/tags/tag-input.mjs +2 -2
  153. package/esm2022/tags/tag-list.component.mjs +36 -17
  154. package/esm2022/tags/tag.component.mjs +231 -22
  155. package/esm2022/tags/tag.module.mjs +16 -6
  156. package/esm2022/textarea/textarea.component.mjs +6 -4
  157. package/esm2022/timepicker/timepicker.directive.mjs +1 -1
  158. package/esm2022/timezone/timezone-select.component.mjs +3 -3
  159. package/esm2022/tooltip/tooltip.component.mjs +3 -3
  160. package/esm2022/tree/tree-selection.component.mjs +4 -4
  161. package/esm2022/tree-select/tree-select.component.mjs +11 -9
  162. package/esm2022/username/constants.mjs +25 -0
  163. package/esm2022/username/index.mjs +6 -0
  164. package/esm2022/username/koobiq-components-username.mjs +5 -0
  165. package/esm2022/username/module.mjs +35 -0
  166. package/esm2022/username/types.mjs +32 -0
  167. package/esm2022/username/username.mjs +129 -0
  168. package/esm2022/username/username.pipe.mjs +92 -0
  169. package/fesm2022/koobiq-components-actions-panel.mjs +56 -31
  170. package/fesm2022/koobiq-components-actions-panel.mjs.map +1 -1
  171. package/fesm2022/koobiq-components-breadcrumbs.mjs +1 -1
  172. package/fesm2022/koobiq-components-breadcrumbs.mjs.map +1 -1
  173. package/fesm2022/koobiq-components-button-toggle.mjs +8 -8
  174. package/fesm2022/koobiq-components-button-toggle.mjs.map +1 -1
  175. package/fesm2022/koobiq-components-button.mjs +2 -2
  176. package/fesm2022/koobiq-components-button.mjs.map +1 -1
  177. package/fesm2022/koobiq-components-clamped-text.mjs +242 -0
  178. package/fesm2022/koobiq-components-clamped-text.mjs.map +1 -0
  179. package/fesm2022/koobiq-components-content-panel.mjs +612 -0
  180. package/fesm2022/koobiq-components-content-panel.mjs.map +1 -0
  181. package/fesm2022/koobiq-components-core.mjs +271 -31
  182. package/fesm2022/koobiq-components-core.mjs.map +1 -1
  183. package/fesm2022/koobiq-components-datepicker.mjs +45 -40
  184. package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
  185. package/fesm2022/koobiq-components-dropdown.mjs +33 -13
  186. package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
  187. package/fesm2022/koobiq-components-dynamic-translation.mjs +204 -0
  188. package/fesm2022/koobiq-components-dynamic-translation.mjs.map +1 -0
  189. package/fesm2022/koobiq-components-file-upload.mjs +44 -27
  190. package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
  191. package/fesm2022/koobiq-components-filter-bar.mjs +100 -71
  192. package/fesm2022/koobiq-components-filter-bar.mjs.map +1 -1
  193. package/fesm2022/koobiq-components-form-field.mjs +100 -49
  194. package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
  195. package/fesm2022/koobiq-components-icon.mjs +2 -2
  196. package/fesm2022/koobiq-components-icon.mjs.map +1 -1
  197. package/fesm2022/koobiq-components-input.mjs +14 -9
  198. package/fesm2022/koobiq-components-input.mjs.map +1 -1
  199. package/fesm2022/koobiq-components-markdown.mjs +2 -2
  200. package/fesm2022/koobiq-components-markdown.mjs.map +1 -1
  201. package/fesm2022/koobiq-components-modal.mjs +19 -17
  202. package/fesm2022/koobiq-components-modal.mjs.map +1 -1
  203. package/fesm2022/koobiq-components-navbar-ic.mjs +800 -0
  204. package/fesm2022/koobiq-components-navbar-ic.mjs.map +1 -0
  205. package/fesm2022/koobiq-components-navbar.mjs +2 -2
  206. package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
  207. package/fesm2022/koobiq-components-popover.mjs +11 -6
  208. package/fesm2022/koobiq-components-popover.mjs.map +1 -1
  209. package/fesm2022/koobiq-components-scrollbar.mjs +4 -4
  210. package/fesm2022/koobiq-components-scrollbar.mjs.map +1 -1
  211. package/fesm2022/koobiq-components-select.mjs +23 -10
  212. package/fesm2022/koobiq-components-select.mjs.map +1 -1
  213. package/fesm2022/koobiq-components-sidebar.mjs +45 -26
  214. package/fesm2022/koobiq-components-sidebar.mjs.map +1 -1
  215. package/fesm2022/koobiq-components-sidepanel.mjs +24 -12
  216. package/fesm2022/koobiq-components-sidepanel.mjs.map +1 -1
  217. package/fesm2022/koobiq-components-splitter.mjs.map +1 -1
  218. package/fesm2022/koobiq-components-tabs.mjs +31 -31
  219. package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
  220. package/fesm2022/koobiq-components-tags.mjs +284 -47
  221. package/fesm2022/koobiq-components-tags.mjs.map +1 -1
  222. package/fesm2022/koobiq-components-textarea.mjs +5 -3
  223. package/fesm2022/koobiq-components-textarea.mjs.map +1 -1
  224. package/fesm2022/koobiq-components-timepicker.mjs.map +1 -1
  225. package/fesm2022/koobiq-components-timezone.mjs +2 -2
  226. package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
  227. package/fesm2022/koobiq-components-tooltip.mjs +2 -2
  228. package/fesm2022/koobiq-components-tooltip.mjs.map +1 -1
  229. package/fesm2022/koobiq-components-tree-select.mjs +10 -8
  230. package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
  231. package/fesm2022/koobiq-components-tree.mjs +3 -3
  232. package/fesm2022/koobiq-components-tree.mjs.map +1 -1
  233. package/fesm2022/koobiq-components-username.mjs +308 -0
  234. package/fesm2022/koobiq-components-username.mjs.map +1 -0
  235. package/file-upload/_file-upload-theme.scss +1 -1
  236. package/file-upload/file-drop.d.ts +1 -1
  237. package/file-upload/file-upload.d.ts +5 -2
  238. package/file-upload/multiple-file-upload.component.d.ts +4 -2
  239. package/file-upload/single-file-upload.component.d.ts +5 -3
  240. package/filter-bar/_filter-bar-theme.scss +2 -2
  241. package/filter-bar/filters.d.ts +1 -0
  242. package/filter-bar/pipes/pipe-date.d.ts +3 -1
  243. package/filter-bar/pipes/pipe-datetime.d.ts +3 -1
  244. package/filter-bar/pipes/pipe-multi-select.d.ts +0 -1
  245. package/filter-bar/pipes/pipe-multi-tree-select.d.ts +3 -2
  246. package/filter-bar/pipes/pipe-select.d.ts +0 -1
  247. package/filter-bar/pipes/pipe-tree-select.d.ts +3 -2
  248. package/form-field/_form-field-theme.scss +27 -18
  249. package/form-field/cleaner.d.ts +4 -2
  250. package/form-field/cleaner.scss +6 -2
  251. package/form-field/form-field.scss +12 -2
  252. package/form-field/password-hint.d.ts +7 -0
  253. package/form-field/password-toggle.d.ts +23 -3
  254. package/form-field/password-toggle.scss +4 -8
  255. package/form-field/reactive-password-hint.d.ts +1 -0
  256. package/icon/_icon-button-theme.scss +8 -2
  257. package/modal/modal.component.d.ts +6 -6
  258. package/navbar-ic/_navbar-ic-theme.scss +81 -0
  259. package/navbar-ic/index.d.ts +1 -0
  260. package/navbar-ic/navbar-ic-divider.scss +7 -0
  261. package/navbar-ic/navbar-ic-header.d.ts +18 -0
  262. package/navbar-ic/navbar-ic-header.scss +53 -0
  263. package/navbar-ic/navbar-ic-item.d.ts +125 -0
  264. package/navbar-ic/navbar-ic-item.scss +96 -0
  265. package/navbar-ic/navbar-ic-tokens.scss +22 -0
  266. package/navbar-ic/navbar-ic.animation.d.ts +2 -0
  267. package/navbar-ic/navbar-ic.d.ts +103 -0
  268. package/navbar-ic/navbar-ic.module.d.ts +14 -0
  269. package/navbar-ic/navbar-ic.scss +32 -0
  270. package/navbar-ic/public-api.d.ts +4 -0
  271. package/package.json +34 -4
  272. package/popover/_popover-theme.scss +6 -2
  273. package/popover/popover-confirm.component.d.ts +1 -1
  274. package/popover/popover-tokens.scss +2 -0
  275. package/popover/popover.component.d.ts +6 -3
  276. package/prebuilt-themes/dark-theme.css +1 -1
  277. package/prebuilt-themes/light-theme.css +1 -1
  278. package/prebuilt-themes/theme.css +1 -1
  279. package/schematics/ng-add/index.js +4 -4
  280. package/scrollbar/scrollbar.component.d.ts +4 -4
  281. package/select/select.component.d.ts +14 -2
  282. package/sidebar/sidebar.component.d.ts +31 -5
  283. package/sidepanel/sidepanel-container.component.d.ts +9 -0
  284. package/sidepanel/sidepanel-ref.d.ts +3 -3
  285. package/splitter/splitter.component.d.ts +2 -2
  286. package/tabs/tab-group.component.d.ts +1 -1
  287. package/tabs/tab.component.d.ts +1 -1
  288. package/tags/_tag-theme.scss +10 -1
  289. package/tags/tag-input.d.ts +1 -1
  290. package/tags/tag-list.component.d.ts +11 -3
  291. package/tags/tag-list.scss +5 -0
  292. package/tags/tag.component.d.ts +78 -8
  293. package/tags/tag.module.d.ts +1 -1
  294. package/tags/tag.scss +18 -0
  295. package/textarea/textarea-tokens.scss +1 -1
  296. package/timepicker/timepicker.directive.d.ts +1 -1
  297. package/tooltip/_tooltip-theme.scss +9 -2
  298. package/tooltip/tooltip-tokens.scss +2 -0
  299. package/tooltip/tooltip.component.d.ts +2 -2
  300. package/tree/tree-selection.component.d.ts +1 -1
  301. package/tree-select/tree-select.component.d.ts +1 -1
  302. package/username/constants.d.ts +15 -0
  303. package/username/index.d.ts +5 -0
  304. package/username/module.d.ts +8 -0
  305. package/username/types.d.ts +62 -0
  306. package/username/username-tokens.scss +6 -0
  307. package/username/username.d.ts +68 -0
  308. package/username/username.pipe.d.ts +23 -0
  309. package/username/username.scss +107 -0
@@ -517,9 +517,9 @@ export class KbqNavbarToggle extends KbqTooltipTrigger {
517
517
  /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: KbqNavbarToggle, selector: "kbq-navbar-toggle", inputs: { content: ["kbqCollapsedTooltip", "content"] }, host: { listeners: { "keydown": "onKeydown($event)", "click": "toggle()", "touchend": "handleTouchend()" }, properties: { "class.kbq-tooltip_open": "isOpen", "class.kbq-collapsed": "!navbar.expanded", "class.kbq-expanded": "navbar.expanded" }, classAttribute: "kbq-navbar-item kbq-navbar-toggle kbq-vertical" }, queries: [{ propertyName: "customIcon", first: true, predicate: KbqIcon, descendants: true }], usesInheritance: true, ngImport: i0, template: `
518
518
  @if (!customIcon) {
519
519
  <i
520
+ kbq-icon
520
521
  [class.kbq-chevron-left_16]="navbar.expanded"
521
522
  [class.kbq-chevron-right_16]="!navbar.expanded"
522
- kbq-icon
523
523
  ></i>
524
524
  }
525
525
 
@@ -537,9 +537,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
537
537
  args: [{ selector: 'kbq-navbar-toggle', template: `
538
538
  @if (!customIcon) {
539
539
  <i
540
+ kbq-icon
540
541
  [class.kbq-chevron-left_16]="navbar.expanded"
541
542
  [class.kbq-chevron-right_16]="!navbar.expanded"
542
- kbq-icon
543
543
  ></i>
544
544
  }
545
545
 
@@ -566,4 +566,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
566
566
  type: Input,
567
567
  args: ['kbqCollapsedTooltip']
568
568
  }] } });
569
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2YmFyLWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9uYXZiYXIvbmF2YmFyLWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9uYXZiYXIvbmF2YmFyLWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBZSxNQUFNLG1CQUFtQixDQUFDO0FBQzlELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzlELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUdILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsU0FBUyxFQUNULFVBQVUsRUFDVixLQUFLLEVBQ0wsTUFBTSxFQUVOLFFBQVEsRUFFUixpQkFBaUIsRUFDakIsZ0JBQWdCLEVBQ2hCLE1BQU0sRUFDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUVoRSxPQUFPLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRyxPQUFPLEVBQUUsU0FBUyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDMUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDckYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDakUsT0FBTyxFQUFFLFlBQVks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Q0FBQyxNQUFNLENBQUMsbUJBQW1CLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7a0lBbkRRLGVBQWU7c0hBQWYsZUFBZSxrZEFJVixPQUFPLHVFQW5DWDs7Ozs7Ozs7Ozs7Ozs7OztLQWdCVDs7NEZBZVEsZUFBZTtrQkFqQzNCLFNBQVM7K0JBQ0ksbUJBQW1CLFlBQ25COzs7Ozs7Ozs7Ozs7Ozs7O0tBZ0JULFFBRUs7d0JBQ0YsS0FBSyxFQUFFLGdEQUFnRDt3QkFDdkQsMEJBQTBCLEVBQUUsUUFBUTt3QkFDcEMsdUJBQXVCLEVBQUUsa0JBQWtCO3dCQUMzQyxzQkFBc0IsRUFBRSxpQkFBaUI7d0JBRXpDLFdBQVcsRUFBRSxtQkFBbUI7d0JBQ2hDLFNBQVMsRUFBRSxVQUFVO3dCQUNyQixZQUFZLEVBQUUsa0JBQWtCO3FCQUNuQyxtQkFDZ0IsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSTtzSEFNZCxVQUFVO3NCQUFoQyxZQUFZO3VCQUFDLE9BQU87Z0JBR2pCLE9BQU87c0JBRFYsS0FBSzt1QkFBQyxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb2N1c01vbml0b3IsIEZvY3VzT3JpZ2luIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IFBsYXRmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BsYXRmb3JtJztcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgRGVzdHJveVJlZixcbiAgICBEaXJlY3RpdmUsXG4gICAgRWxlbWVudFJlZixcbiAgICBJbnB1dCxcbiAgICBOZ1pvbmUsXG4gICAgT25EZXN0cm95LFxuICAgIE9wdGlvbmFsLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxuICAgIGJvb2xlYW5BdHRyaWJ1dGUsXG4gICAgaW5qZWN0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgSUZvY3VzYWJsZU9wdGlvbiB9IGZyb20gJ0Brb29iaXEvY2RrL2ExMXknO1xuaW1wb3J0IHsgRE9XTl9BUlJPVywgRU5URVIsIE5VTVBBRF9ESVZJREUsIFJJR0hUX0FSUk9XLCBTTEFTSCwgU1BBQ0UgfSBmcm9tICdAa29vYmlxL2Nkay9rZXljb2Rlcyc7XG5pbXBvcnQgeyBLYnFCdXR0b24sIEticUJ1dHRvbkNzc1N0eWxlciB9IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHsgS0JRX1dJTkRPVywgUG9wVXBQbGFjZW1lbnRzLCBQb3BVcFRyaWdnZXJzIH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL2NvcmUnO1xuaW1wb3J0IHsgS2JxRHJvcGRvd25UcmlnZ2VyIH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL2Ryb3Bkb3duJztcbmltcG9ydCB7IEticUZvcm1GaWVsZCB9IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy9mb3JtLWZpZWxkJztcbmltcG9ydCB7IEticUljb24gfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvaWNvbic7XG5pbXBvcnQgeyBLYnFUb29sdGlwVHJpZ2dlciwgVG9vbHRpcE1vZGlmaWVyIH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL3Rvb2x0aXAnO1xuaW1wb3J0IHsgRU1QVFksIFN1YmplY3QsIG1lcmdlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgS2JxVmVydGljYWxOYXZiYXIgfSBmcm9tICcuL3ZlcnRpY2FsLW5hdmJhci5jb21wb25lbnQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEticU5hdmJhckZvY3VzYWJsZUl0ZW1FdmVudCB7XG4gICAgaXRlbTogS2JxTmF2YmFyRm9jdXNhYmxlSXRlbTtcbn1cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdrYnEtbmF2YmFyLWxvZ28sIFtrYnEtbmF2YmFyLWxvZ29dJyxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAna2JxLW5hdmJhci1sb2dvJyxcbiAgICAgICAgJyhtb3VzZWVudGVyKSc6ICdob3ZlcmVkLm5leHQodHJ1ZSknLFxuICAgICAgICAnKG1vdXNlbGVhdmUpJzogJ2hvdmVyZWQubmV4dChmYWxzZSknXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBLYnFOYXZiYXJMb2dvIHtcbiAgICByZWFkb25seSBob3ZlcmVkID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcbn1cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdrYnEtbmF2YmFyLWl0ZW1bYmVudG9dLCBba2JxLW5hdmJhci1pdGVtXVtiZW50b10nLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICdrYnEtbmF2YmFyLWJlbnRvJ1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgS2JxTmF2YmFyQmVudG8ge31cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdrYnEtbmF2YmFyLXRpdGxlLCBba2JxLW5hdmJhci10aXRsZV0nLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICdrYnEtbmF2YmFyLXRpdGxlJyxcbiAgICAgICAgJ1tjbGFzcy5rYnEtbmF2YmFyLXRpdGxlX3NtYWxsXSc6ICdpc1RleHRPdmVyZmxvd24nLFxuXG4gICAgICAgICcobW91c2VlbnRlciknOiAnaG92ZXJlZC5uZXh0KHRydWUpJyxcbiAgICAgICAgJyhtb3VzZWxlYXZlKSc6ICdob3ZlcmVkLm5leHQoZmFsc2UpJ1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgS2JxTmF2YmFyVGl0bGUgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaXNCcm93c2VyID0gaW5qZWN0KFBsYXRmb3JtKS5pc0Jyb3dzZXI7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IG5hdGl2ZUVsZW1lbnQgPSBpbmplY3QoRWxlbWVudFJlZikubmF0aXZlRWxlbWVudDtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHdpbmRvdyA9IGluamVjdChLQlFfV0lORE9XKTtcblxuICAgIHJlYWRvbmx5IGhvdmVyZWQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuXG4gICAgb3V0ZXJFbGVtZW50V2lkdGg6IG51bWJlcjtcbiAgICBpc1RleHRPdmVyZmxvd246IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIGdldCB0ZXh0KCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLm5hdGl2ZUVsZW1lbnQudGV4dENvbnRlbnQ7XG4gICAgfVxuXG4gICAgZ2V0IGlzT3ZlcmZsb3duKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5uYXRpdmVFbGVtZW50LnNjcm9sbFdpZHRoID4gdGhpcy5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoO1xuICAgIH1cblxuICAgIGdldE91dGVyRWxlbWVudFdpZHRoKCk6IG51bWJlciB7XG4gICAgICAgIGlmICghdGhpcy5pc0Jyb3dzZXIpIHJldHVybiAwO1xuXG4gICAgICAgIGNvbnN0IHsgd2lkdGgsIG1hcmdpbkxlZnQsIG1hcmdpblJpZ2h0IH0gPSB0aGlzLndpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRoaXMubmF0aXZlRWxlbWVudCk7XG5cbiAgICAgICAgcmV0dXJuIFt3aWR0aCwgbWFyZ2luTGVmdCwgbWFyZ2luUmlnaHRdLnJlZHVjZSgoYWNjLCBpdGVtKSA9PiBhY2MgKyBwYXJzZUludChpdGVtKSB8fCAwLCAwKTtcbiAgICB9XG5cbiAgICBjaGVja1RleHRPdmVyZmxvd24oKSB7XG4gICAgICAgIHRoaXMuaXNUZXh0T3ZlcmZsb3duID0gdGhpcy50ZXh0Lmxlbmd0aCA+IDE4O1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vdXRlckVsZW1lbnRXaWR0aCA9IHRoaXMuZ2V0T3V0ZXJFbGVtZW50V2lkdGgoKTtcbiAgICB9XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAna2JxLW5hdmJhci1icmFuZCwgW2ticS1uYXZiYXItYnJhbmRdJyxcbiAgICBleHBvcnRBczogJ2ticU5hdmJhckJyYW5kJyxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8bmctY29udGVudCAvPlxuICAgIGAsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ2ticS1uYXZiYXItYnJhbmQnLFxuICAgICAgICAnW2NsYXNzLmticS1ob3ZlcmVkXSc6ICdob3ZlcmVkJ1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgS2JxTmF2YmFyQnJhbmQgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0IHtcbiAgICBAQ29udGVudENoaWxkKEticU5hdmJhckxvZ28pIGxvZ286IEticU5hdmJhckxvZ287XG4gICAgQENvbnRlbnRDaGlsZChLYnFOYXZiYXJUaXRsZSkgdGl0bGU6IEticU5hdmJhclRpdGxlO1xuXG4gICAgaG92ZXJlZCA9IGZhbHNlO1xuXG4gICAgZ2V0IGhhc0JlbnRvKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLm5hdmJhcj8uYmVudG87XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuXG4gICAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgcHJpdmF0ZSBuYXZiYXI6IEticVZlcnRpY2FsTmF2YmFyKSB7fVxuXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgICAgICBtZXJnZSh0aGlzLmxvZ28gPyB0aGlzLmxvZ28uaG92ZXJlZCA6IChFTVBUWSBhcyBhbnkpLCB0aGlzLnRpdGxlID8gdGhpcy50aXRsZS5ob3ZlcmVkIDogKEVNUFRZIGFzIGFueSkpXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHZhbHVlKSA9PiAodGhpcy5ob3ZlcmVkID0gISF2YWx1ZSkpO1xuXG4gICAgICAgIHRoaXMubmF2YmFyPy5hbmltYXRpb25Eb25lXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy50aXRsZT8uY2hlY2tUZXh0T3ZlcmZsb3duKCkpO1xuICAgIH1cbn1cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdrYnEtbmF2YmFyLWRpdmlkZXInLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICdrYnEtbmF2YmFyLWRpdmlkZXInXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBLYnFOYXZiYXJEaXZpZGVyIHt9XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAna2JxLW5hdmJhci1pdGVtLCBba2JxLW5hdmJhci1pdGVtXSwga2JxLW5hdmJhci1icmFuZCwgW2ticS1uYXZiYXItYnJhbmRdLCBrYnEtbmF2YmFyLXRvZ2dsZScsXG4gICAgaG9zdDoge1xuICAgICAgICAnW2F0dHIudGFiaW5kZXhdJzogJ3RhYkluZGV4JyxcbiAgICAgICAgJ1thdHRyLmRpc2FibGVkXSc6ICdkaXNhYmxlZCB8fCBudWxsJyxcblxuICAgICAgICBjbGFzczogJ2ticS1uYXZiYXItZm9jdXNhYmxlLWl0ZW0nLFxuICAgICAgICAnW2NsYXNzLmticS1uYXZiYXItaXRlbV9oYXMtbmVzdGVkXSc6ICchIW5lc3RlZEVsZW1lbnQnLFxuICAgICAgICAnW2NsYXNzLmticS1kaXNhYmxlZF0nOiAnZGlzYWJsZWQnLFxuXG4gICAgICAgICcoZm9jdXMpJzogJ29uRm9jdXNIYW5kbGVyKCknLFxuICAgICAgICAnKGJsdXIpJzogJ2JsdXIoKSdcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIEticU5hdmJhckZvY3VzYWJsZUl0ZW0gaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3ksIElGb2N1c2FibGVPcHRpb24ge1xuICAgIEBDb250ZW50Q2hpbGQoS2JxTmF2YmFyVGl0bGUpIHRpdGxlOiBLYnFOYXZiYXJUaXRsZTtcblxuICAgIEBDb250ZW50Q2hpbGQoS2JxQnV0dG9uKSBidXR0b246IEticUJ1dHRvbjtcblxuICAgIEBDb250ZW50Q2hpbGQoS2JxRm9ybUZpZWxkKSBmb3JtRmllbGQ6IEticUZvcm1GaWVsZDtcblxuICAgIGdldCBuZXN0ZWRFbGVtZW50KCk6IEticUJ1dHRvbiB8IEticUZvcm1GaWVsZCB7XG4gICAgICAgIHJldHVybiB0aGlzLmJ1dHRvbiB8fCB0aGlzLmZvcm1GaWVsZDtcbiAgICB9XG5cbiAgICBnZXQgdG9vbHRpcCgpOiBLYnFUb29sdGlwVHJpZ2dlciB7XG4gICAgICAgIHJldHVybiB0aGlzLl90b29sdGlwO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3Rvb2x0aXA6IEticVRvb2x0aXBUcmlnZ2VyO1xuXG4gICAgcmVhZG9ubHkgb25Gb2N1cyA9IG5ldyBTdWJqZWN0PEticU5hdmJhckZvY3VzYWJsZUl0ZW1FdmVudD4oKTtcblxuICAgIHJlYWRvbmx5IG9uQmx1ciA9IG5ldyBTdWJqZWN0PEticU5hdmJhckZvY3VzYWJsZUl0ZW1FdmVudD4oKTtcblxuICAgIGdldCBoYXNGb2N1cygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5uZXN0ZWRFbGVtZW50Py5oYXNGb2N1cyB8fCB0aGlzLl9oYXNGb2N1cztcbiAgICB9XG5cbiAgICBzZXQgaGFzRm9jdXModmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5faGFzRm9jdXMgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9oYXNGb2N1czogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlIGl0ZW0gaXMgZGlzYWJsZWQuICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gICAgZ2V0IGRpc2FibGVkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIGlmICh2YWx1ZSAhPT0gdGhpcy5fZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX2Rpc2FibGVkID0gdmFsdWU7XG4gICAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZGlzYWJsZWQgPSBmYWxzZTtcblxuICAgIGdldCB0YWJJbmRleCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gLTE7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcml2YXRlIGZvY3VzTW9uaXRvcjogRm9jdXNNb25pdG9yLFxuICAgICAgICBwcml2YXRlIG5nWm9uZTogTmdab25lXG4gICAgKSB7fVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmZvY3VzTW9uaXRvci5tb25pdG9yKHRoaXMuZWxlbWVudFJlZik7XG4gICAgfVxuXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5idXR0b24pIHtcbiAgICAgICAgICAgIHRoaXMuYnV0dG9uLnRhYkluZGV4ID0gLTE7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5mb2N1c01vbml0b3Iuc3RvcE1vbml0b3JpbmcodGhpcy5lbGVtZW50UmVmKTtcbiAgICB9XG5cbiAgICBzZXRUb29sdGlwKHZhbHVlOiBLYnFUb29sdGlwVHJpZ2dlcikge1xuICAgICAgICB0aGlzLl90b29sdGlwID0gdmFsdWU7XG4gICAgfVxuXG4gICAgb25Gb2N1c0hhbmRsZXIoKSB7XG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkIHx8IHRoaXMuaGFzRm9jdXMpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMub25Gb2N1cy5uZXh0KHsgaXRlbTogdGhpcyB9KTtcblxuICAgICAgICB0aGlzLmhhc0ZvY3VzID0gdHJ1ZTtcblxuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuXG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuXG4gICAgZm9jdXMob3JpZ2luPzogRm9jdXNPcmlnaW4pOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWQgfHwgdGhpcy5oYXNGb2N1cykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG9yaWdpbiA9PT0gJ2tleWJvYXJkJykge1xuICAgICAgICAgICAgdGhpcy5mb2N1c01vbml0b3IuZm9jdXNWaWEodGhpcy5lbGVtZW50UmVmLCBvcmlnaW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMubmVzdGVkRWxlbWVudCkge1xuICAgICAgICAgICAgdGhpcy5uZXN0ZWRFbGVtZW50LmZvY3VzVmlhS2V5Ym9hcmQoKTtcblxuICAgICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcblxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy50b29sdGlwPy5zaG93KCk7XG4gICAgICAgIHRoaXMub25Gb2N1c0hhbmRsZXIoKTtcbiAgICB9XG5cbiAgICBibHVyKCk6IHZvaWQge1xuICAgICAgICAvLyBXaGVuIGFuaW1hdGlvbnMgYXJlIGVuYWJsZWQsIEFuZ3VsYXIgbWF5IGVuZCB1cCByZW1vdmluZyB0aGUgb3B0aW9uIGZyb20gdGhlIERPTSBhIGxpdHRsZVxuICAgICAgICAvLyBlYXJsaWVyIHRoYW4gdXN1YWwsIGNhdXNpbmcgaXQgdG8gYmUgYmx1cnJlZCBhbmQgdGhyb3dpbmcgb2ZmIHRoZSBsb2dpYyBpbiB0aGUgbGlzdFxuICAgICAgICAvLyB0aGF0IG1vdmVzIGZvY3VzIG5vdCB0aGUgbmV4dCBpdGVtLiBUbyB3b3JrIGFyb3VuZCB0aGUgaXNzdWUsIHdlIGRlZmVyIG1hcmtpbmcgdGhlIG9wdGlvblxuICAgICAgICAvLyBhcyBub3QgZm9jdXNlZCB1bnRpbCB0aGUgbmV4dCB0aW1lIHRoZSB6b25lIHN0YWJpbGl6ZXMuXG4gICAgICAgIHRoaXMubmdab25lLm9uU3RhYmxlXG4gICAgICAgICAgICAuYXNPYnNlcnZhYmxlKClcbiAgICAgICAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9oYXNGb2N1cyA9IGZhbHNlO1xuXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudG9vbHRpcD8uaGlkZSgpO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmJ1dHRvbj8uaGFzRm9jdXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHRoaXMub25CbHVyLm5leHQoeyBpdGVtOiB0aGlzIH0pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2V0TGFiZWwoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGl0bGU/LnRleHQgfHwgJyc7XG4gICAgfVxufVxuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ2ticS1uYXZiYXItaXRlbSwgW2ticS1uYXZiYXItaXRlbV0sIGticS1uYXZiYXItZGl2aWRlciwga2JxLW5hdmJhci1icmFuZCwgW2ticS1uYXZiYXItYnJhbmRdJyxcbiAgICBob3N0OiB7XG4gICAgICAgICdbY2xhc3Mua2JxLXZlcnRpY2FsXSc6ICd2ZXJ0aWNhbCcsXG4gICAgICAgICdbY2xhc3Mua2JxLWhvcml6b250YWxdJzogJ2hvcml6b250YWwnLFxuXG4gICAgICAgICdbY2xhc3Mua2JxLWV4cGFuZGVkXSc6ICd2ZXJ0aWNhbCAmJiAhY29sbGFwc2VkJyxcbiAgICAgICAgJ1tjbGFzcy5rYnEtY29sbGFwc2VkXSc6ICd2ZXJ0aWNhbCAmJiBjb2xsYXBzZWQnXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBLYnFOYXZiYXJSZWN0YW5nbGVFbGVtZW50IHtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaXNCcm93c2VyID0gaW5qZWN0KFBsYXRmb3JtKS5pc0Jyb3dzZXI7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IG5hdGl2ZUVsZW1lbnQgPSBpbmplY3QoRWxlbWVudFJlZikubmF0aXZlRWxlbWVudDtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHdpbmRvdyA9IGluamVjdChLQlFfV0lORE9XKTtcblxuICAgIHJlYWRvbmx5IHN0YXRlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIGdldCBob3Jpem9udGFsKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faG9yaXpvbnRhbDtcbiAgICB9XG5cbiAgICBzZXQgaG9yaXpvbnRhbCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9ob3Jpem9udGFsID0gdmFsdWU7XG5cbiAgICAgICAgdGhpcy5zdGF0ZS5uZXh0KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfaG9yaXpvbnRhbDogYm9vbGVhbjtcblxuICAgIGdldCB2ZXJ0aWNhbCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3ZlcnRpY2FsO1xuICAgIH1cblxuICAgIHNldCB2ZXJ0aWNhbCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl92ZXJ0aWNhbCA9IHZhbHVlO1xuXG4gICAgICAgIHRoaXMuc3RhdGUubmV4dCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3ZlcnRpY2FsOiBib29sZWFuO1xuXG4gICAgZ2V0IGNvbGxhcHNlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbGxhcHNlZDtcbiAgICB9XG5cbiAgICBzZXQgY29sbGFwc2VkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX2NvbGxhcHNlZCA9IHZhbHVlO1xuXG4gICAgICAgIHRoaXMuc3RhdGUubmV4dCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2NvbGxhcHNlZDogYm9vbGVhbjtcblxuICAgIEBDb250ZW50Q2hpbGQoS2JxQnV0dG9uQ3NzU3R5bGVyKSBidXR0b246IEticUJ1dHRvbkNzc1N0eWxlcjtcblxuICAgIGdldE91dGVyRWxlbWVudFdpZHRoKCk6IG51bWJlciB7XG4gICAgICAgIGlmICghdGhpcy5pc0Jyb3dzZXIpIHJldHVybiAwO1xuXG4gICAgICAgIGNvbnN0IHsgd2lkdGgsIG1hcmdpbkxlZnQsIG1hcmdpblJpZ2h0IH0gPSB0aGlzLndpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRoaXMubmF0aXZlRWxlbWVudCk7XG5cbiAgICAgICAgcmV0dXJuIFt3aWR0aCwgbWFyZ2luTGVmdCwgbWFyZ2luUmlnaHRdLnJlZHVjZSgoYWNjLCBpdGVtKSA9PiBhY2MgKyBwYXJzZUludChpdGVtKSwgMCk7XG4gICAgfVxufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ticS1uYXZiYXItaXRlbSwgW2ticS1uYXZiYXItaXRlbV0nLFxuICAgIGV4cG9ydEFzOiAna2JxTmF2YmFySXRlbScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL25hdmJhci1pdGVtLmNvbXBvbmVudC5odG1sJyxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAna2JxLW5hdmJhci1pdGVtJyxcbiAgICAgICAgJ1tjbGFzcy5rYnEtbmF2YmFyLWl0ZW1fY29sbGFwc2VkXSc6ICdpc0NvbGxhcHNlZCcsXG4gICAgICAgICdbY2xhc3Mua2JxLW5hdmJhci1pdGVtX3dpdGgtdGl0bGVdJzogJyEhdGl0bGUnLFxuXG4gICAgICAgICcoa2V5ZG93biknOiAnb25LZXlEb3duKCRldmVudCknXG4gICAgfSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIEticU5hdmJhckl0ZW0gZXh0ZW5kcyBLYnFUb29sdGlwVHJpZ2dlciBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQge1xuICAgIEBDb250ZW50Q2hpbGQoS2JxTmF2YmFyVGl0bGUpIHRpdGxlOiBLYnFOYXZiYXJUaXRsZTtcblxuICAgIEBDb250ZW50Q2hpbGQoS2JxSWNvbikgaWNvbjogS2JxSWNvbjtcblxuICAgIEBJbnB1dCgpIGNvbGxhcHNlZFRleHQ6IHN0cmluZztcblxuICAgIEBJbnB1dCgna2JxVHJpZ2dlcicpXG4gICAgZ2V0IHRyaWdnZXIoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3RyaWdnZXI7XG4gICAgfVxuXG4gICAgc2V0IHRyaWdnZXIodmFsdWU6IHN0cmluZykge1xuICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuX3RyaWdnZXIgPSB2YWx1ZTtcblxuICAgICAgICAgICAgdGhpcy5pbml0TGlzdGVuZXJzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzZXQgY29sbGFwc2VkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIGlmICh0aGlzLl9jb2xsYXBzZWQgIT09IHZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLl9jb2xsYXBzZWQgPSB2YWx1ZTtcblxuICAgICAgICAgICAgdGhpcy51cGRhdGVUb29sdGlwKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyB0b2RvIGluIGZ1dHVyZSBuZWVkIHJlbmFtZSB0byAnY29sbGFwc2VkJ1xuICAgIGdldCBpc0NvbGxhcHNlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbGxhcHNlZCA/PyB0aGlzLnJlY3RhbmdsZUVsZW1lbnQuY29sbGFwc2VkO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2NvbGxhcHNlZCA9IGZhbHNlO1xuXG4gICAgZ2V0IGNyb3BwZWRUZXh0KCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGNyb3BwZWRUaXRsZVRleHQgPSB0aGlzLnRpdGxlPy5pc092ZXJmbG93biA/IHRoaXMudGl0bGVUZXh0IDogJyc7XG5cbiAgICAgICAgcmV0dXJuIGAke2Nyb3BwZWRUaXRsZVRleHR9YDtcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIGdldCBjb2xsYXBzYWJsZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbGxhcHNhYmxlO1xuICAgIH1cblxuICAgIHNldCBjb2xsYXBzYWJsZSh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9jb2xsYXBzYWJsZSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY29sbGFwc2FibGU6IGJvb2xlYW4gPSB0cnVlO1xuXG4gICAgZ2V0IHRpdGxlVGV4dCgpOiBzdHJpbmcgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29sbGFwc2VkVGV4dCB8fCB0aGlzLnRpdGxlPy50ZXh0IHx8IG51bGw7XG4gICAgfVxuXG4gICAgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAodGhpcy5fZGlzYWJsZWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuICF0aGlzLmlzQ29sbGFwc2VkICYmICF0aGlzLmhhc0Nyb3BwZWRUZXh0O1xuICAgIH1cblxuICAgIHNldCBkaXNhYmxlZCh2YWx1ZSkge1xuICAgICAgICB0aGlzLl9kaXNhYmxlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgZ2V0IGhhc0Ryb3BEb3duVHJpZ2dlcigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5kcm9wZG93blRyaWdnZXI7XG4gICAgfVxuXG4gICAgZ2V0IHNob3dWZXJ0aWNhbERyb3BEb3duQW5nbGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhdGhpcy5iZW50byAmJiB0aGlzLmhhc0Ryb3BEb3duVHJpZ2dlciAmJiB0aGlzLnJlY3RhbmdsZUVsZW1lbnQudmVydGljYWwgJiYgIXRoaXMuaXNDb2xsYXBzZWQ7XG4gICAgfVxuXG4gICAgZ2V0IHNob3dIb3Jpem9udGFsRHJvcERvd25BbmdsZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaGFzRHJvcERvd25UcmlnZ2VyICYmIHRoaXMucmVjdGFuZ2xlRWxlbWVudC5ob3Jpem9udGFsICYmICF0aGlzLmlzQ29sbGFwc2VkO1xuICAgIH1cblxuICAgIGdldCBoYXNDcm9wcGVkVGV4dCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy50aXRsZT8uaXNPdmVyZmxvd247XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyByZWN0YW5nbGVFbGVtZW50OiBLYnFOYXZiYXJSZWN0YW5nbGVFbGVtZW50LFxuICAgICAgICBwdWJsaWMgbmF2YmFyRm9jdXNhYmxlSXRlbTogS2JxTmF2YmFyRm9jdXNhYmxlSXRlbSxcbiAgICAgICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUgZHJvcGRvd25UcmlnZ2VyOiBLYnFEcm9wZG93blRyaWdnZXIsXG4gICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUgYmVudG86IEticU5hdmJhckJlbnRvLFxuICAgICAgICBAT3B0aW9uYWwoKSBwcml2YXRlIHRvb2x0aXA6IEticVRvb2x0aXBUcmlnZ2VyXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG5cbiAgICAgICAgaWYgKHRoaXMuaGFzRHJvcERvd25UcmlnZ2VyKSB7XG4gICAgICAgICAgICB0aGlzLmRyb3Bkb3duVHJpZ2dlci5vcGVuQnlBcnJvd0Rvd24gPSBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMucmVjdGFuZ2xlRWxlbWVudC5zdGF0ZS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5jb2xsYXBzZWQgPSB0aGlzLnJlY3RhbmdsZUVsZW1lbnQuY29sbGFwc2VkO1xuXG4gICAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5fdHJpZ2dlciA9IGAke1BvcFVwVHJpZ2dlcnMuSG92ZXJ9YDtcblxuICAgICAgICB0aGlzLm5hdmJhckZvY3VzYWJsZUl0ZW0uc2V0VG9vbHRpcCh0aGlzKTtcblxuICAgICAgICBpZiAodGhpcy50b29sdGlwKSB7XG4gICAgICAgICAgICB0aGlzLnRvb2x0aXAuYXJyb3cgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMudG9vbHRpcC5vZmZzZXQgPSAwO1xuXG4gICAgICAgICAgICB0aGlzLnRvb2x0aXBbJ292ZXJsYXlDb25maWcnXS5wYW5lbENsYXNzID0gJ2ticS10b29sdGlwLXBhbmVsX2hvcml6b250YWwtbmF2YmFyJztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVUb29sdGlwKCk7XG4gICAgfVxuXG4gICAgdXBkYXRlVG9vbHRpcCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaXNDb2xsYXBzZWQpIHtcbiAgICAgICAgICAgIHRoaXMuY29udGVudCA9IGAke3RoaXMudGl0bGVUZXh0IHx8ICcnfWA7XG4gICAgICAgIH0gZWxzZSBpZiAoIXRoaXMuaXNDb2xsYXBzZWQgJiYgdGhpcy5oYXNDcm9wcGVkVGV4dCkge1xuICAgICAgICAgICAgdGhpcy5jb250ZW50ID0gdGhpcy5jcm9wcGVkVGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnJlY3RhbmdsZUVsZW1lbnQudmVydGljYWwpIHtcbiAgICAgICAgICAgIHRoaXMucGxhY2VtZW50ID0gUG9wVXBQbGFjZW1lbnRzLlJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICBnZXRUaXRsZVdpZHRoKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLnRpdGxlLm91dGVyRWxlbWVudFdpZHRoO1xuICAgIH1cblxuICAgIG9uS2V5RG93bigkZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgaWYgKCF0aGlzLmhhc0Ryb3BEb3duVHJpZ2dlcikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgKHRoaXMucmVjdGFuZ2xlRWxlbWVudC5ob3Jpem9udGFsICYmICRldmVudC5rZXlDb2RlID09PSBET1dOX0FSUk9XKSB8fFxuICAgICAgICAgICAgKHRoaXMucmVjdGFuZ2xlRWxlbWVudC52ZXJ0aWNhbCAmJiAkZXZlbnQua2V5Q29kZSA9PT0gUklHSFRfQVJST1cpXG4gICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy5kcm9wZG93blRyaWdnZXIub3BlbmVkQnkgPSAna2V5Ym9hcmQnO1xuICAgICAgICAgICAgdGhpcy5kcm9wZG93blRyaWdnZXIub3BlbigpO1xuXG4gICAgICAgICAgICAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdrYnEtbmF2YmFyLXRvZ2dsZScsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgQGlmICghY3VzdG9tSWNvbikge1xuICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICBbY2xhc3Mua2JxLWNoZXZyb24tbGVmdF8xNl09XCJuYXZiYXIuZXhwYW5kZWRcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5rYnEtY2hldnJvbi1yaWdodF8xNl09XCIhbmF2YmFyLmV4cGFuZGVkXCJcbiAgICAgICAgICAgICAgICBrYnEtaWNvblxuICAgICAgICAgICAgPjwvaT5cbiAgICAgICAgfVxuXG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltrYnEtaWNvbl1cIiAvPlxuXG4gICAgICAgIEBpZiAobmF2YmFyLmV4cGFuZGVkKSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwia2JxLW5hdmJhci1pdGVtX190aXRsZVwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImticS1uYXZiYXItdGl0bGVcIiAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICBgLFxuICAgIHN0eWxlVXJsczogWycuL25hdmJhci5zY3NzJ10sXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ2ticS1uYXZiYXItaXRlbSBrYnEtbmF2YmFyLXRvZ2dsZSBrYnEtdmVydGljYWwnLFxuICAgICAgICAnW2NsYXNzLmticS10b29sdGlwX29wZW5dJzogJ2lzT3BlbicsXG4gICAgICAgICdbY2xhc3Mua2JxLWNvbGxhcHNlZF0nOiAnIW5hdmJhci5leHBhbmRlZCcsXG4gICAgICAgICdbY2xhc3Mua2JxLWV4cGFuZGVkXSc6ICduYXZiYXIuZXhwYW5kZWQnLFxuXG4gICAgICAgICcoa2V5ZG93biknOiAnb25LZXlkb3duKCRldmVudCknLFxuICAgICAgICAnKGNsaWNrKSc6ICd0b2dnbGUoKScsXG4gICAgICAgICcodG91Y2hlbmQpJzogJ2hhbmRsZVRvdWNoZW5kKCknXG4gICAgfSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIEticU5hdmJhclRvZ2dsZSBleHRlbmRzIEticVRvb2x0aXBUcmlnZ2VyIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZG9jdW1lbnQgPSBpbmplY3Q8RG9jdW1lbnQ+KERPQ1VNRU5UKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHdpbmRvdyA9IGluamVjdChLQlFfV0lORE9XKTtcblxuICAgIEBDb250ZW50Q2hpbGQoS2JxSWNvbikgY3VzdG9tSWNvbjogS2JxSWNvbjtcblxuICAgIEBJbnB1dCgna2JxQ29sbGFwc2VkVG9vbHRpcCcpXG4gICAgZ2V0IGNvbnRlbnQoKTogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55PiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb250ZW50O1xuICAgIH1cblxuICAgIHNldCBjb250ZW50KGNvbnRlbnQ6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT4pIHtcbiAgICAgICAgdGhpcy5fY29udGVudCA9IGNvbnRlbnQ7XG5cbiAgICAgICAgdGhpcy51cGRhdGVEYXRhKCk7XG4gICAgfVxuXG4gICAgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5uYXZiYXIuZXhwYW5kZWQ7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG1vZGlmaWVyOiBUb29sdGlwTW9kaWZpZXIgPSBUb29sdGlwTW9kaWZpZXIuRGVmYXVsdDtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgbmF2YmFyOiBLYnFWZXJ0aWNhbE5hdmJhcixcbiAgICAgICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgICApIHtcbiAgICAgICAgc3VwZXIoKTtcblxuICAgICAgICB0aGlzLnBsYWNlbWVudCA9IFBvcFVwUGxhY2VtZW50cy5SaWdodDtcblxuICAgICAgICBpZiAodGhpcy53aW5kb3cpIHtcbiAgICAgICAgICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLndpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgdGhpcy53aW5kb3dUb2dnbGVIYW5kbGVyKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25LZXlkb3duKCRldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICBpZiAoW1NQQUNFLCBFTlRFUl0uaW5jbHVkZXMoJGV2ZW50LmtleUNvZGUpKSB7XG4gICAgICAgICAgICB0aGlzLnRvZ2dsZSgpO1xuXG4gICAgICAgICAgICAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHN1cGVyLmhhbmRsZUtleWRvd24oJGV2ZW50KTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy53aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIHRoaXMud2luZG93VG9nZ2xlSGFuZGxlcik7XG4gICAgfVxuXG4gICAgdG9nZ2xlID0gKCkgPT4ge1xuICAgICAgICB0aGlzLm5hdmJhci50b2dnbGUoKTtcblxuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuXG4gICAgICAgIHRoaXMuaGlkZSgpO1xuICAgIH07XG5cbiAgICBwcml2YXRlIHdpbmRvd1RvZ2dsZUhhbmRsZXIgPSAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgaWYgKGV2ZW50LmN0cmxLZXkgJiYgW05VTVBBRF9ESVZJREUsIFNMQVNIXS5pbmNsdWRlcyhldmVudC5rZXlDb2RlKSkge1xuICAgICAgICAgICAgdGhpcy5uZ1pvbmUucnVuKHRoaXMudG9nZ2xlKTtcbiAgICAgICAgfVxuICAgIH07XG59XG4iLCI8bmctY29udGVudCBzZWxlY3Q9XCJba2JxLWljb25dXCIgLz5cblxuQGlmICh0aXRsZSkge1xuICAgIDxkaXYgY2xhc3M9XCJrYnEtbmF2YmFyLWl0ZW1fX2NvbnRhaW5lclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwia2JxLW5hdmJhci1pdGVtX190aXRsZVwiPlxuICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwia2JxLW5hdmJhci10aXRsZSwgW2ticS1uYXZiYXItdGl0bGVdXCIgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIEBpZiAoc2hvd1ZlcnRpY2FsRHJvcERvd25BbmdsZSkge1xuICAgICAgICAgICAgPGkga2JxLWljb249XCJrYnEtY2hldnJvbi1yaWdodF8xNlwiIGNsYXNzPVwia2JxLW5hdmJhci1pdGVtX19hcnJvdy1pY29uXCI+PC9pPlxuICAgICAgICB9XG4gICAgICAgIEBpZiAoc2hvd0hvcml6b250YWxEcm9wRG93bkFuZ2xlKSB7XG4gICAgICAgICAgICA8aSBrYnEtaWNvbj1cImticS1jaGV2cm9uLWRvd24tc18xNlwiIGNsYXNzPVwia2JxLW5hdmJhci1pdGVtX19hcnJvdy1pY29uXCI+PC9pPlxuICAgICAgICB9XG4gICAgPC9kaXY+XG59XG5cbjxuZy1jb250ZW50IC8+XG4iXX0=
569
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2YmFyLWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9uYXZiYXIvbmF2YmFyLWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9uYXZiYXIvbmF2YmFyLWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBZSxNQUFNLG1CQUFtQixDQUFDO0FBQzlELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzlELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUdILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsU0FBUyxFQUNULFVBQVUsRUFDVixLQUFLLEVBQ0wsTUFBTSxFQUVOLFFBQVEsRUFFUixpQkFBaUIsRUFDakIsZ0JBQWdCLEVBQ2hCLE1BQU0sRUFDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUVoRSxPQUFPLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRyxPQUFPLEVBQUUsU0FBUyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDMUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDckYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDakUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzdELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEYsT0FBTyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7OztBQWNoRSxNQUFNLE9BQU8sYUFBYTtJQVIxQjtRQVNhLFlBQU8sR0FBRyxJQUFJLE9BQU8sRUFBVyxDQUFDO0tBQzdDO2tJQUZZLGFBQWE7c0hBQWIsYUFBYTs7NEZBQWIsYUFBYTtrQkFSekIsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsb0NBQW9DO29CQUM5QyxJQUFJLEVBQUU7d0JBQ0YsS0FBSyxFQUFFLGlCQUFpQjt3QkFDeEIsY0FBYyxFQUFFLG9CQUFvQjt3QkFDcEMsY0FBYyxFQUFFLHFCQUFxQjtxQkFDeEM7aUJBQ0o7O0FBV0QsTUFBTSxPQUFPLGNBQWM7a0lBQWQsY0FBYztzSEFBZCxjQUFjOzs0RkFBZCxjQUFjO2tCQU4xQixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxrREFBa0Q7b0JBQzVELElBQUksRUFBRTt3QkFDRixLQUFLLEVBQUUsa0JBQWtCO3FCQUM1QjtpQkFDSjs7QUFhRCxNQUFNLE9BQU8sY0FBYztJQVYzQjtRQVd1QixjQUFTLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUN2QyxrQkFBYSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxhQUFhLENBQUM7UUFDbkQsV0FBTSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUVwQyxZQUFPLEdBQUcsSUFBSSxPQUFPLEVBQVcsQ0FBQztRQUcxQyxvQkFBZSxHQUFZLEtBQUssQ0FBQztLQXlCcEM7SUF2QkcsSUFBSSxJQUFJO1FBQ0osT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQztJQUMxQyxDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ1gsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQztJQUMzRSxDQUFDO0lBRUQsb0JBQW9CO1FBQ2hCLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUztZQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRTlCLE1BQU0sRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRTVGLE9BQU8sQ0FBQyxLQUFLLEVBQUUsVUFBVSxFQUFFLFdBQVcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ2hHLENBQUM7SUFFRCxrQkFBa0I7UUFDZCxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQztJQUNqRCxDQUFDO0lBRUQsZUFBZTtRQUNYLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztJQUN6RCxDQUFDO2tJQWhDUSxjQUFjO3NIQUFkLGNBQWM7OzRGQUFkLGNBQWM7a0JBVjFCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHNDQUFzQztvQkFDaEQsSUFBSSxFQUFFO3dCQUNGLEtBQUssRUFBRSxrQkFBa0I7d0JBQ3pCLGdDQUFnQyxFQUFFLGlCQUFpQjt3QkFFbkQsY0FBYyxFQUFFLG9CQUFvQjt3QkFDcEMsY0FBYyxFQUFFLHFCQUFxQjtxQkFDeEM7aUJBQ0o7O0FBK0NELE1BQU0sT0FBTyxjQUFjO0lBTXZCLElBQUksUUFBUTtRQUNSLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDO0lBQ2hDLENBQUM7SUFJRCxZQUFnQyxNQUF5QjtRQUF6QixXQUFNLEdBQU4sTUFBTSxDQUFtQjtRQVJ6RCxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBTUMsZUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUVXLENBQUM7SUFFN0Qsa0JBQWtCO1FBQ2QsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBRSxLQUFhLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFFLEtBQWEsQ0FBQzthQUNsRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2FBQ3pDLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBRXBELElBQUksQ0FBQyxNQUFNLEVBQUUsYUFBYTthQUNyQixJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2FBQ3pDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLGtCQUFrQixFQUFFLENBQUMsQ0FBQztJQUMzRCxDQUFDO2tJQXRCUSxjQUFjO3NIQUFkLGNBQWMsNE1BQ1QsYUFBYSx3RUFDYixjQUFjLDhFQVZsQjs7S0FFVDs7NEZBTVEsY0FBYztrQkFYMUIsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsc0NBQXNDO29CQUNoRCxRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixRQUFRLEVBQUU7O0tBRVQ7b0JBQ0QsSUFBSSxFQUFFO3dCQUNGLEtBQUssRUFBRSxrQkFBa0I7d0JBQ3pCLHFCQUFxQixFQUFFLFNBQVM7cUJBQ25DO2lCQUNKOzswQkFhZ0IsUUFBUTt5Q0FYUSxJQUFJO3NCQUFoQyxZQUFZO3VCQUFDLGFBQWE7Z0JBQ0csS0FBSztzQkFBbEMsWUFBWTt1QkFBQyxjQUFjOztBQTZCaEMsTUFBTSxPQUFPLGdCQUFnQjtrSUFBaEIsZ0JBQWdCO3NIQUFoQixnQkFBZ0I7OzRGQUFoQixnQkFBZ0I7a0JBTjVCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLG9CQUFvQjtvQkFDOUIsSUFBSSxFQUFFO3dCQUNGLEtBQUssRUFBRSxvQkFBb0I7cUJBQzlCO2lCQUNKOztBQWlCRCxNQUFNLE9BQU8sc0JBQXNCO0lBTy9CLElBQUksYUFBYTtRQUNiLE9BQU8sSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxJQUFJLE9BQU87UUFDUCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDekIsQ0FBQztJQVFELElBQUksUUFBUTtRQUNSLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsUUFBUSxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDNUQsQ0FBQztJQUVELElBQUksUUFBUSxDQUFDLEtBQWM7UUFDdkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFDM0IsQ0FBQztJQUlELG9DQUFvQztJQUNwQyxJQUNJLFFBQVE7UUFDUixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDMUIsQ0FBQztJQUVELElBQUksUUFBUSxDQUFDLEtBQWM7UUFDdkIsSUFBSSxLQUFLLEtBQUssSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDdkMsQ0FBQztJQUNMLENBQUM7SUFJRCxJQUFJLFFBQVE7UUFDUixPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ2QsQ0FBQztJQUVELFlBQ1ksVUFBbUMsRUFDbkMsY0FBaUMsRUFDakMsWUFBMEIsRUFDMUIsTUFBYztRQUhkLGVBQVUsR0FBVixVQUFVLENBQXlCO1FBQ25DLG1CQUFjLEdBQWQsY0FBYyxDQUFtQjtRQUNqQyxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBckNqQixZQUFPLEdBQUcsSUFBSSxPQUFPLEVBQStCLENBQUM7UUFFckQsV0FBTSxHQUFHLElBQUksT0FBTyxFQUErQixDQUFDO1FBVXJELGNBQVMsR0FBWSxLQUFLLENBQUM7UUFlM0IsY0FBUyxHQUFHLEtBQUssQ0FBQztJQVd2QixDQUFDO0lBRUosZUFBZTtRQUNYLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsa0JBQWtCO1FBQ2QsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDZCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUM5QixDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUF3QjtRQUMvQixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUMxQixDQUFDO0lBRUQsY0FBYztRQUNWLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDakMsT0FBTztRQUNYLENBQUM7UUFFRCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRWxDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBRXJCLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLENBQUM7UUFFbkMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDMUMsQ0FBQztJQUVELEtBQUssQ0FBQyxNQUFvQjtRQUN0QixJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2pDLE9BQU87UUFDWCxDQUFDO1FBRUQsSUFBSSxNQUFNLEtBQUssVUFBVSxFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUN4RCxDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBRXRDLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLENBQUM7WUFFbkMsT0FBTztRQUNYLENBQUM7UUFFRCxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFBSTtRQUNBLDRGQUE0RjtRQUM1RixzRkFBc0Y7UUFDdEYsNEZBQTRGO1FBQzVGLDBEQUEwRDtRQUMxRCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVE7YUFDZixZQUFZLEVBQUU7YUFDZCxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ2IsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNaLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRTtnQkFDakIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7Z0JBRXZCLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUM7Z0JBRXJCLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsQ0FBQztvQkFDeEIsT0FBTztnQkFDWCxDQUFDO2dCQUVELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7WUFDckMsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFRCxRQUFRO1FBQ0osT0FBTyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksSUFBSSxFQUFFLENBQUM7SUFDbEMsQ0FBQztrSUF2SVEsc0JBQXNCO3NIQUF0QixzQkFBc0Isd0pBZ0NYLGdCQUFnQixnV0EvQnRCLGNBQWMseUVBRWQsU0FBUyw0RUFFVCxZQUFZOzs0RkFMakIsc0JBQXNCO2tCQWRsQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSw2RkFBNkY7b0JBQ3ZHLElBQUksRUFBRTt3QkFDRixpQkFBaUIsRUFBRSxVQUFVO3dCQUM3QixpQkFBaUIsRUFBRSxrQkFBa0I7d0JBRXJDLEtBQUssRUFBRSwyQkFBMkI7d0JBQ2xDLG9DQUFvQyxFQUFFLGlCQUFpQjt3QkFDdkQsc0JBQXNCLEVBQUUsVUFBVTt3QkFFbEMsU0FBUyxFQUFFLGtCQUFrQjt3QkFDN0IsUUFBUSxFQUFFLFFBQVE7cUJBQ3JCO2lCQUNKOytKQUVpQyxLQUFLO3NCQUFsQyxZQUFZO3VCQUFDLGNBQWM7Z0JBRUgsTUFBTTtzQkFBOUIsWUFBWTt1QkFBQyxTQUFTO2dCQUVLLFNBQVM7c0JBQXBDLFlBQVk7dUJBQUMsWUFBWTtnQkE0QnRCLFFBQVE7c0JBRFgsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTs7QUFvSDFDLE1BQU0sT0FBTyx5QkFBeUI7SUFWdEM7UUFXdUIsY0FBUyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDdkMsa0JBQWEsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsYUFBYSxDQUFDO1FBQ25ELFdBQU0sR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFcEMsVUFBSyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7S0ErQ3hDO0lBN0NHLElBQUksVUFBVTtRQUNWLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBSSxVQUFVLENBQUMsS0FBYztRQUN6QixJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztRQUV6QixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFJRCxJQUFJLFFBQVE7UUFDUixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDMUIsQ0FBQztJQUVELElBQUksUUFBUSxDQUFDLEtBQWM7UUFDdkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFFdkIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBSUQsSUFBSSxTQUFTO1FBQ1QsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQzNCLENBQUM7SUFFRCxJQUFJLFNBQVMsQ0FBQyxLQUFjO1FBQ3hCLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1FBRXhCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQU1ELG9CQUFvQjtRQUNoQixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVM7WUFBRSxPQUFPLENBQUMsQ0FBQztRQUU5QixNQUFNLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUU1RixPQUFPLENBQUMsS0FBSyxFQUFFLFVBQVUsRUFBRSxXQUFXLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzNGLENBQUM7a0lBbkRRLHlCQUF5QjtzSEFBekIseUJBQXlCLDBXQTJDcEIsa0JBQWtCOzs0RkEzQ3ZCLHlCQUF5QjtrQkFWckMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsOEZBQThGO29CQUN4RyxJQUFJLEVBQUU7d0JBQ0Ysc0JBQXNCLEVBQUUsVUFBVTt3QkFDbEMsd0JBQXdCLEVBQUUsWUFBWTt3QkFFdEMsc0JBQXNCLEVBQUUsd0JBQXdCO3dCQUNoRCx1QkFBdUIsRUFBRSx1QkFBdUI7cUJBQ25EO2lCQUNKOzhCQTRDcUMsTUFBTTtzQkFBdkMsWUFBWTt1QkFBQyxrQkFBa0I7O0FBeUJwQyxNQUFNLE9BQU8sYUFBYyxTQUFRLGlCQUFpQjtJQU9oRCxJQUNJLE9BQU87UUFDUCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDekIsQ0FBQztJQUVELElBQUksT0FBTyxDQUFDLEtBQWE7UUFDckIsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNSLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1lBRXRCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN6QixDQUFDO0lBQ0wsQ0FBQztJQUVELElBQUksU0FBUyxDQUFDLEtBQWM7UUFDeEIsSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLEtBQUssRUFBRSxDQUFDO1lBQzVCLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1lBRXhCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN6QixDQUFDO0lBQ0wsQ0FBQztJQUVELDRDQUE0QztJQUM1QyxJQUFJLFdBQVc7UUFDWCxPQUFPLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQztJQUM5RCxDQUFDO0lBSUQsSUFBSSxXQUFXO1FBQ1gsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBRXZFLE9BQU8sR0FBRyxnQkFBZ0IsRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFFRCxJQUNJLFdBQVc7UUFDWCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQUksV0FBVyxDQUFDLEtBQWM7UUFDMUIsSUFBSSxDQUFDLFlBQVksR0FBRyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBSUQsSUFBSSxTQUFTO1FBQ1QsT0FBTyxJQUFJLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxJQUFJLElBQUksQ0FBQztJQUMxRCxDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1IsSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQy9CLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUMxQixDQUFDO1FBRUQsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQ3JELENBQUM7SUFFRCxJQUFJLFFBQVEsQ0FBQyxLQUFLO1FBQ2QsSUFBSSxDQUFDLFNBQVMsR0FBRyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsSUFBSSxrQkFBa0I7UUFDbEIsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUNsQyxDQUFDO0lBRUQsSUFBSSx5QkFBeUI7UUFDekIsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLGtCQUFrQixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQ3pHLENBQUM7SUFFRCxJQUFJLDJCQUEyQjtRQUMzQixPQUFPLElBQUksQ0FBQyxrQkFBa0IsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUM1RixDQUFDO0lBRUQsSUFBSSxjQUFjO1FBQ2QsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUM7SUFDckMsQ0FBQztJQUVELFlBQ1csZ0JBQTJDLEVBQzNDLG1CQUEyQyxFQUMxQyxpQkFBb0MsRUFDeEIsZUFBbUMsRUFDbkMsS0FBcUIsRUFDckIsT0FBMEI7UUFFOUMsS0FBSyxFQUFFLENBQUM7UUFQRCxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQTJCO1FBQzNDLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBd0I7UUFDMUMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUN4QixvQkFBZSxHQUFmLGVBQWUsQ0FBb0I7UUFDbkMsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFDckIsWUFBTyxHQUFQLE9BQU8sQ0FBbUI7UUF6RDFDLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFpQm5CLGlCQUFZLEdBQVksSUFBSSxDQUFDO1FBNENqQyxJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQzFCLElBQUksQ0FBQyxlQUFlLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQztRQUNqRCxDQUFDO1FBRUQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ3ZDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQztZQUVqRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDM0MsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsUUFBUSxHQUFHLEdBQUcsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBRXpDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFMUMsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDZixJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7WUFDM0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1lBRXhCLElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUMsVUFBVSxHQUFHLHFDQUFxQyxDQUFDO1FBQ3JGLENBQUM7SUFDTCxDQUFDO0lBRUQsa0JBQWtCO1FBQ2QsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxhQUFhO1FBQ1QsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxHQUFHLElBQUksQ0FBQyxTQUFTLElBQUksRUFBRSxFQUFFLENBQUM7UUFDN0MsQ0FBQzthQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUNsRCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDcEMsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2pDLElBQUksQ0FBQyxTQUFTLEdBQUcsZUFBZSxDQUFDLEtBQUssQ0FBQztRQUMzQyxDQUFDO1FBRUQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzFDLENBQUM7SUFFRCxhQUFhO1FBQ1QsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDO0lBQ3hDLENBQUM7SUFFRCxTQUFTLENBQUMsTUFBcUI7UUFDM0IsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQzNCLE9BQU87UUFDWCxDQUFDO1FBRUQsSUFDSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLElBQUksTUFBTSxDQUFDLE9BQU8sS0FBSyxVQUFVLENBQUM7WUFDbkUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxJQUFJLE1BQU0sQ0FBQyxPQUFPLEtBQUssV0FBVyxDQUFDLEVBQ3BFLENBQUM7WUFDQyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUM7WUFDM0MsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUU1QixNQUFNLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDekIsTUFBTSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQzVCLENBQUM7SUFDTCxDQUFDO2tJQXpKUSxhQUFhO3NIQUFiLGFBQWEsc2FBQ1IsY0FBYyx1RUFFZCxPQUFPLG9HQzlYekIsK2pCQWlCQTs7NEZEMFdhLGFBQWE7a0JBZHpCLFNBQVM7K0JBQ0ksb0NBQW9DLFlBQ3BDLGVBQWUsUUFFbkI7d0JBQ0YsS0FBSyxFQUFFLGlCQUFpQjt3QkFDeEIsbUNBQW1DLEVBQUUsYUFBYTt3QkFDbEQsb0NBQW9DLEVBQUUsU0FBUzt3QkFFL0MsV0FBVyxFQUFFLG1CQUFtQjtxQkFDbkMsbUJBQ2dCLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUk7OzBCQTBGaEMsUUFBUTs7MEJBQ1IsUUFBUTs7MEJBQ1IsUUFBUTt5Q0F6RmlCLEtBQUs7c0JBQWxDLFlBQVk7dUJBQUMsY0FBYztnQkFFTCxJQUFJO3NCQUExQixZQUFZO3VCQUFDLE9BQU87Z0JBRVosYUFBYTtzQkFBckIsS0FBSztnQkFHRixPQUFPO3NCQURWLEtBQUs7dUJBQUMsWUFBWTtnQkFtQ2YsV0FBVztzQkFEZCxLQUFLOztBQW9KVixNQUFNLE9BQU8sZUFBZ0IsU0FBUSxpQkFBaUI7SUFNbEQsSUFDSSxPQUFPO1FBQ1AsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxJQUFJLE9BQU8sQ0FBQyxPQUFrQztRQUMxQyxJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQztRQUV4QixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELElBQUksUUFBUTtRQUNSLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUM7SUFDaEMsQ0FBQztJQUlELFlBQ1csTUFBeUIsRUFDeEIsaUJBQW9DO1FBRTVDLEtBQUssRUFBRSxDQUFDO1FBSEQsV0FBTSxHQUFOLE1BQU0sQ0FBbUI7UUFDeEIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQXhCN0IsYUFBUSxHQUFHLE1BQU0sQ0FBVyxRQUFRLENBQUMsQ0FBQztRQUN4QyxXQUFNLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBbUJuQyxhQUFRLEdBQW9CLGVBQWUsQ0FBQyxPQUFPLENBQUM7UUFnQzlELFdBQU0sR0FBRyxHQUFHLEVBQUU7WUFDVixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBRXJCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUV0QyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDaEIsQ0FBQyxDQUFDO1FBRU0sd0JBQW1CLEdBQUcsQ0FBQyxLQUFvQixFQUFFLEVBQUU7WUFDbkQsSUFBSSxLQUFLLENBQUMsT0FBTyxJQUFJLENBQUMsYUFBYSxFQUFFLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztnQkFDbEUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ2pDLENBQUM7UUFDTCxDQUFDLENBQUM7UUFwQ0UsSUFBSSxDQUFDLFNBQVMsR0FBRyxlQUFlLENBQUMsS0FBSyxDQUFDO1FBRXZDLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUU7Z0JBQy9CLElBQUksQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1lBQ3RFLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQztJQUNMLENBQUM7SUFFRCxTQUFTLENBQUMsTUFBcUI7UUFDM0IsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDMUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBRWQsTUFBTSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ3pCLE1BQU0sQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUM1QixDQUFDO1FBRUQsS0FBSyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksQ0FBQyxNQUFNLENBQUMsbUJBQW1CLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7a0lBbkRRLGVBQWU7c0hBQWYsZUFBZSxrZEFJVixPQUFPLHVFQW5DWDs7Ozs7Ozs7Ozs7Ozs7OztLQWdCVDs7NEZBZVEsZUFBZTtrQkFqQzNCLFNBQVM7K0JBQ0ksbUJBQW1CLFlBQ25COzs7Ozs7Ozs7Ozs7Ozs7O0tBZ0JULFFBRUs7d0JBQ0YsS0FBSyxFQUFFLGdEQUFnRDt3QkFDdkQsMEJBQTBCLEVBQUUsUUFBUTt3QkFDcEMsdUJBQXVCLEVBQUUsa0JBQWtCO3dCQUMzQyxzQkFBc0IsRUFBRSxpQkFBaUI7d0JBRXpDLFdBQVcsRUFBRSxtQkFBbUI7d0JBQ2hDLFNBQVMsRUFBRSxVQUFVO3dCQUNyQixZQUFZLEVBQUUsa0JBQWtCO3FCQUNuQyxtQkFDZ0IsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSTtzSEFNZCxVQUFVO3NCQUFoQyxZQUFZO3VCQUFDLE9BQU87Z0JBR2pCLE9BQU87c0JBRFYsS0FBSzt1QkFBQyxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb2N1c01vbml0b3IsIEZvY3VzT3JpZ2luIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IFBsYXRmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BsYXRmb3JtJztcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgRGVzdHJveVJlZixcbiAgICBEaXJlY3RpdmUsXG4gICAgRWxlbWVudFJlZixcbiAgICBJbnB1dCxcbiAgICBOZ1pvbmUsXG4gICAgT25EZXN0cm95LFxuICAgIE9wdGlvbmFsLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxuICAgIGJvb2xlYW5BdHRyaWJ1dGUsXG4gICAgaW5qZWN0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgSUZvY3VzYWJsZU9wdGlvbiB9IGZyb20gJ0Brb29iaXEvY2RrL2ExMXknO1xuaW1wb3J0IHsgRE9XTl9BUlJPVywgRU5URVIsIE5VTVBBRF9ESVZJREUsIFJJR0hUX0FSUk9XLCBTTEFTSCwgU1BBQ0UgfSBmcm9tICdAa29vYmlxL2Nkay9rZXljb2Rlcyc7XG5pbXBvcnQgeyBLYnFCdXR0b24sIEticUJ1dHRvbkNzc1N0eWxlciB9IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHsgS0JRX1dJTkRPVywgUG9wVXBQbGFjZW1lbnRzLCBQb3BVcFRyaWdnZXJzIH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL2NvcmUnO1xuaW1wb3J0IHsgS2JxRHJvcGRvd25UcmlnZ2VyIH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL2Ryb3Bkb3duJztcbmltcG9ydCB7IEticUZvcm1GaWVsZCB9IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy9mb3JtLWZpZWxkJztcbmltcG9ydCB7IEticUljb24gfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvaWNvbic7XG5pbXBvcnQgeyBLYnFUb29sdGlwVHJpZ2dlciwgVG9vbHRpcE1vZGlmaWVyIH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL3Rvb2x0aXAnO1xuaW1wb3J0IHsgRU1QVFksIFN1YmplY3QsIG1lcmdlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgS2JxVmVydGljYWxOYXZiYXIgfSBmcm9tICcuL3ZlcnRpY2FsLW5hdmJhci5jb21wb25lbnQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEticU5hdmJhckZvY3VzYWJsZUl0ZW1FdmVudCB7XG4gICAgaXRlbTogS2JxTmF2YmFyRm9jdXNhYmxlSXRlbTtcbn1cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdrYnEtbmF2YmFyLWxvZ28sIFtrYnEtbmF2YmFyLWxvZ29dJyxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAna2JxLW5hdmJhci1sb2dvJyxcbiAgICAgICAgJyhtb3VzZWVudGVyKSc6ICdob3ZlcmVkLm5leHQodHJ1ZSknLFxuICAgICAgICAnKG1vdXNlbGVhdmUpJzogJ2hvdmVyZWQubmV4dChmYWxzZSknXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBLYnFOYXZiYXJMb2dvIHtcbiAgICByZWFkb25seSBob3ZlcmVkID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcbn1cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdrYnEtbmF2YmFyLWl0ZW1bYmVudG9dLCBba2JxLW5hdmJhci1pdGVtXVtiZW50b10nLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICdrYnEtbmF2YmFyLWJlbnRvJ1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgS2JxTmF2YmFyQmVudG8ge31cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdrYnEtbmF2YmFyLXRpdGxlLCBba2JxLW5hdmJhci10aXRsZV0nLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICdrYnEtbmF2YmFyLXRpdGxlJyxcbiAgICAgICAgJ1tjbGFzcy5rYnEtbmF2YmFyLXRpdGxlX3NtYWxsXSc6ICdpc1RleHRPdmVyZmxvd24nLFxuXG4gICAgICAgICcobW91c2VlbnRlciknOiAnaG92ZXJlZC5uZXh0KHRydWUpJyxcbiAgICAgICAgJyhtb3VzZWxlYXZlKSc6ICdob3ZlcmVkLm5leHQoZmFsc2UpJ1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgS2JxTmF2YmFyVGl0bGUgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaXNCcm93c2VyID0gaW5qZWN0KFBsYXRmb3JtKS5pc0Jyb3dzZXI7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IG5hdGl2ZUVsZW1lbnQgPSBpbmplY3QoRWxlbWVudFJlZikubmF0aXZlRWxlbWVudDtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHdpbmRvdyA9IGluamVjdChLQlFfV0lORE9XKTtcblxuICAgIHJlYWRvbmx5IGhvdmVyZWQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuXG4gICAgb3V0ZXJFbGVtZW50V2lkdGg6IG51bWJlcjtcbiAgICBpc1RleHRPdmVyZmxvd246IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIGdldCB0ZXh0KCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLm5hdGl2ZUVsZW1lbnQudGV4dENvbnRlbnQ7XG4gICAgfVxuXG4gICAgZ2V0IGlzT3ZlcmZsb3duKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5uYXRpdmVFbGVtZW50LnNjcm9sbFdpZHRoID4gdGhpcy5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoO1xuICAgIH1cblxuICAgIGdldE91dGVyRWxlbWVudFdpZHRoKCk6IG51bWJlciB7XG4gICAgICAgIGlmICghdGhpcy5pc0Jyb3dzZXIpIHJldHVybiAwO1xuXG4gICAgICAgIGNvbnN0IHsgd2lkdGgsIG1hcmdpbkxlZnQsIG1hcmdpblJpZ2h0IH0gPSB0aGlzLndpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRoaXMubmF0aXZlRWxlbWVudCk7XG5cbiAgICAgICAgcmV0dXJuIFt3aWR0aCwgbWFyZ2luTGVmdCwgbWFyZ2luUmlnaHRdLnJlZHVjZSgoYWNjLCBpdGVtKSA9PiBhY2MgKyBwYXJzZUludChpdGVtKSB8fCAwLCAwKTtcbiAgICB9XG5cbiAgICBjaGVja1RleHRPdmVyZmxvd24oKSB7XG4gICAgICAgIHRoaXMuaXNUZXh0T3ZlcmZsb3duID0gdGhpcy50ZXh0Lmxlbmd0aCA+IDE4O1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vdXRlckVsZW1lbnRXaWR0aCA9IHRoaXMuZ2V0T3V0ZXJFbGVtZW50V2lkdGgoKTtcbiAgICB9XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAna2JxLW5hdmJhci1icmFuZCwgW2ticS1uYXZiYXItYnJhbmRdJyxcbiAgICBleHBvcnRBczogJ2ticU5hdmJhckJyYW5kJyxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8bmctY29udGVudCAvPlxuICAgIGAsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ2ticS1uYXZiYXItYnJhbmQnLFxuICAgICAgICAnW2NsYXNzLmticS1ob3ZlcmVkXSc6ICdob3ZlcmVkJ1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgS2JxTmF2YmFyQnJhbmQgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0IHtcbiAgICBAQ29udGVudENoaWxkKEticU5hdmJhckxvZ28pIGxvZ286IEticU5hdmJhckxvZ287XG4gICAgQENvbnRlbnRDaGlsZChLYnFOYXZiYXJUaXRsZSkgdGl0bGU6IEticU5hdmJhclRpdGxlO1xuXG4gICAgaG92ZXJlZCA9IGZhbHNlO1xuXG4gICAgZ2V0IGhhc0JlbnRvKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLm5hdmJhcj8uYmVudG87XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuXG4gICAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgcHJpdmF0ZSBuYXZiYXI6IEticVZlcnRpY2FsTmF2YmFyKSB7fVxuXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgICAgICBtZXJnZSh0aGlzLmxvZ28gPyB0aGlzLmxvZ28uaG92ZXJlZCA6IChFTVBUWSBhcyBhbnkpLCB0aGlzLnRpdGxlID8gdGhpcy50aXRsZS5ob3ZlcmVkIDogKEVNUFRZIGFzIGFueSkpXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHZhbHVlKSA9PiAodGhpcy5ob3ZlcmVkID0gISF2YWx1ZSkpO1xuXG4gICAgICAgIHRoaXMubmF2YmFyPy5hbmltYXRpb25Eb25lXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy50aXRsZT8uY2hlY2tUZXh0T3ZlcmZsb3duKCkpO1xuICAgIH1cbn1cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdrYnEtbmF2YmFyLWRpdmlkZXInLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICdrYnEtbmF2YmFyLWRpdmlkZXInXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBLYnFOYXZiYXJEaXZpZGVyIHt9XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAna2JxLW5hdmJhci1pdGVtLCBba2JxLW5hdmJhci1pdGVtXSwga2JxLW5hdmJhci1icmFuZCwgW2ticS1uYXZiYXItYnJhbmRdLCBrYnEtbmF2YmFyLXRvZ2dsZScsXG4gICAgaG9zdDoge1xuICAgICAgICAnW2F0dHIudGFiaW5kZXhdJzogJ3RhYkluZGV4JyxcbiAgICAgICAgJ1thdHRyLmRpc2FibGVkXSc6ICdkaXNhYmxlZCB8fCBudWxsJyxcblxuICAgICAgICBjbGFzczogJ2ticS1uYXZiYXItZm9jdXNhYmxlLWl0ZW0nLFxuICAgICAgICAnW2NsYXNzLmticS1uYXZiYXItaXRlbV9oYXMtbmVzdGVkXSc6ICchIW5lc3RlZEVsZW1lbnQnLFxuICAgICAgICAnW2NsYXNzLmticS1kaXNhYmxlZF0nOiAnZGlzYWJsZWQnLFxuXG4gICAgICAgICcoZm9jdXMpJzogJ29uRm9jdXNIYW5kbGVyKCknLFxuICAgICAgICAnKGJsdXIpJzogJ2JsdXIoKSdcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIEticU5hdmJhckZvY3VzYWJsZUl0ZW0gaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3ksIElGb2N1c2FibGVPcHRpb24ge1xuICAgIEBDb250ZW50Q2hpbGQoS2JxTmF2YmFyVGl0bGUpIHRpdGxlOiBLYnFOYXZiYXJUaXRsZTtcblxuICAgIEBDb250ZW50Q2hpbGQoS2JxQnV0dG9uKSBidXR0b246IEticUJ1dHRvbjtcblxuICAgIEBDb250ZW50Q2hpbGQoS2JxRm9ybUZpZWxkKSBmb3JtRmllbGQ6IEticUZvcm1GaWVsZDtcblxuICAgIGdldCBuZXN0ZWRFbGVtZW50KCk6IEticUJ1dHRvbiB8IEticUZvcm1GaWVsZCB7XG4gICAgICAgIHJldHVybiB0aGlzLmJ1dHRvbiB8fCB0aGlzLmZvcm1GaWVsZDtcbiAgICB9XG5cbiAgICBnZXQgdG9vbHRpcCgpOiBLYnFUb29sdGlwVHJpZ2dlciB7XG4gICAgICAgIHJldHVybiB0aGlzLl90b29sdGlwO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3Rvb2x0aXA6IEticVRvb2x0aXBUcmlnZ2VyO1xuXG4gICAgcmVhZG9ubHkgb25Gb2N1cyA9IG5ldyBTdWJqZWN0PEticU5hdmJhckZvY3VzYWJsZUl0ZW1FdmVudD4oKTtcblxuICAgIHJlYWRvbmx5IG9uQmx1ciA9IG5ldyBTdWJqZWN0PEticU5hdmJhckZvY3VzYWJsZUl0ZW1FdmVudD4oKTtcblxuICAgIGdldCBoYXNGb2N1cygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5uZXN0ZWRFbGVtZW50Py5oYXNGb2N1cyB8fCB0aGlzLl9oYXNGb2N1cztcbiAgICB9XG5cbiAgICBzZXQgaGFzRm9jdXModmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5faGFzRm9jdXMgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9oYXNGb2N1czogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqIFdoZXRoZXIgdGhlIGl0ZW0gaXMgZGlzYWJsZWQuICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gICAgZ2V0IGRpc2FibGVkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIGlmICh2YWx1ZSAhPT0gdGhpcy5fZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX2Rpc2FibGVkID0gdmFsdWU7XG4gICAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZGlzYWJsZWQgPSBmYWxzZTtcblxuICAgIGdldCB0YWJJbmRleCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gLTE7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcml2YXRlIGZvY3VzTW9uaXRvcjogRm9jdXNNb25pdG9yLFxuICAgICAgICBwcml2YXRlIG5nWm9uZTogTmdab25lXG4gICAgKSB7fVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmZvY3VzTW9uaXRvci5tb25pdG9yKHRoaXMuZWxlbWVudFJlZik7XG4gICAgfVxuXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5idXR0b24pIHtcbiAgICAgICAgICAgIHRoaXMuYnV0dG9uLnRhYkluZGV4ID0gLTE7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5mb2N1c01vbml0b3Iuc3RvcE1vbml0b3JpbmcodGhpcy5lbGVtZW50UmVmKTtcbiAgICB9XG5cbiAgICBzZXRUb29sdGlwKHZhbHVlOiBLYnFUb29sdGlwVHJpZ2dlcikge1xuICAgICAgICB0aGlzLl90b29sdGlwID0gdmFsdWU7XG4gICAgfVxuXG4gICAgb25Gb2N1c0hhbmRsZXIoKSB7XG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkIHx8IHRoaXMuaGFzRm9jdXMpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMub25Gb2N1cy5uZXh0KHsgaXRlbTogdGhpcyB9KTtcblxuICAgICAgICB0aGlzLmhhc0ZvY3VzID0gdHJ1ZTtcblxuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xuXG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuXG4gICAgZm9jdXMob3JpZ2luPzogRm9jdXNPcmlnaW4pOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWQgfHwgdGhpcy5oYXNGb2N1cykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG9yaWdpbiA9PT0gJ2tleWJvYXJkJykge1xuICAgICAgICAgICAgdGhpcy5mb2N1c01vbml0b3IuZm9jdXNWaWEodGhpcy5lbGVtZW50UmVmLCBvcmlnaW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMubmVzdGVkRWxlbWVudCkge1xuICAgICAgICAgICAgdGhpcy5uZXN0ZWRFbGVtZW50LmZvY3VzVmlhS2V5Ym9hcmQoKTtcblxuICAgICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcblxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy50b29sdGlwPy5zaG93KCk7XG4gICAgICAgIHRoaXMub25Gb2N1c0hhbmRsZXIoKTtcbiAgICB9XG5cbiAgICBibHVyKCk6IHZvaWQge1xuICAgICAgICAvLyBXaGVuIGFuaW1hdGlvbnMgYXJlIGVuYWJsZWQsIEFuZ3VsYXIgbWF5IGVuZCB1cCByZW1vdmluZyB0aGUgb3B0aW9uIGZyb20gdGhlIERPTSBhIGxpdHRsZVxuICAgICAgICAvLyBlYXJsaWVyIHRoYW4gdXN1YWwsIGNhdXNpbmcgaXQgdG8gYmUgYmx1cnJlZCBhbmQgdGhyb3dpbmcgb2ZmIHRoZSBsb2dpYyBpbiB0aGUgbGlzdFxuICAgICAgICAvLyB0aGF0IG1vdmVzIGZvY3VzIG5vdCB0aGUgbmV4dCBpdGVtLiBUbyB3b3JrIGFyb3VuZCB0aGUgaXNzdWUsIHdlIGRlZmVyIG1hcmtpbmcgdGhlIG9wdGlvblxuICAgICAgICAvLyBhcyBub3QgZm9jdXNlZCB1bnRpbCB0aGUgbmV4dCB0aW1lIHRoZSB6b25lIHN0YWJpbGl6ZXMuXG4gICAgICAgIHRoaXMubmdab25lLm9uU3RhYmxlXG4gICAgICAgICAgICAuYXNPYnNlcnZhYmxlKClcbiAgICAgICAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9oYXNGb2N1cyA9IGZhbHNlO1xuXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudG9vbHRpcD8uaGlkZSgpO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmJ1dHRvbj8uaGFzRm9jdXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHRoaXMub25CbHVyLm5leHQoeyBpdGVtOiB0aGlzIH0pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2V0TGFiZWwoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGl0bGU/LnRleHQgfHwgJyc7XG4gICAgfVxufVxuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ2ticS1uYXZiYXItaXRlbSwgW2ticS1uYXZiYXItaXRlbV0sIGticS1uYXZiYXItZGl2aWRlciwga2JxLW5hdmJhci1icmFuZCwgW2ticS1uYXZiYXItYnJhbmRdJyxcbiAgICBob3N0OiB7XG4gICAgICAgICdbY2xhc3Mua2JxLXZlcnRpY2FsXSc6ICd2ZXJ0aWNhbCcsXG4gICAgICAgICdbY2xhc3Mua2JxLWhvcml6b250YWxdJzogJ2hvcml6b250YWwnLFxuXG4gICAgICAgICdbY2xhc3Mua2JxLWV4cGFuZGVkXSc6ICd2ZXJ0aWNhbCAmJiAhY29sbGFwc2VkJyxcbiAgICAgICAgJ1tjbGFzcy5rYnEtY29sbGFwc2VkXSc6ICd2ZXJ0aWNhbCAmJiBjb2xsYXBzZWQnXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBLYnFOYXZiYXJSZWN0YW5nbGVFbGVtZW50IHtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaXNCcm93c2VyID0gaW5qZWN0KFBsYXRmb3JtKS5pc0Jyb3dzZXI7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IG5hdGl2ZUVsZW1lbnQgPSBpbmplY3QoRWxlbWVudFJlZikubmF0aXZlRWxlbWVudDtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHdpbmRvdyA9IGluamVjdChLQlFfV0lORE9XKTtcblxuICAgIHJlYWRvbmx5IHN0YXRlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIGdldCBob3Jpem9udGFsKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faG9yaXpvbnRhbDtcbiAgICB9XG5cbiAgICBzZXQgaG9yaXpvbnRhbCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9ob3Jpem9udGFsID0gdmFsdWU7XG5cbiAgICAgICAgdGhpcy5zdGF0ZS5uZXh0KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfaG9yaXpvbnRhbDogYm9vbGVhbjtcblxuICAgIGdldCB2ZXJ0aWNhbCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3ZlcnRpY2FsO1xuICAgIH1cblxuICAgIHNldCB2ZXJ0aWNhbCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl92ZXJ0aWNhbCA9IHZhbHVlO1xuXG4gICAgICAgIHRoaXMuc3RhdGUubmV4dCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3ZlcnRpY2FsOiBib29sZWFuO1xuXG4gICAgZ2V0IGNvbGxhcHNlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbGxhcHNlZDtcbiAgICB9XG5cbiAgICBzZXQgY29sbGFwc2VkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX2NvbGxhcHNlZCA9IHZhbHVlO1xuXG4gICAgICAgIHRoaXMuc3RhdGUubmV4dCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2NvbGxhcHNlZDogYm9vbGVhbjtcblxuICAgIEBDb250ZW50Q2hpbGQoS2JxQnV0dG9uQ3NzU3R5bGVyKSBidXR0b246IEticUJ1dHRvbkNzc1N0eWxlcjtcblxuICAgIGdldE91dGVyRWxlbWVudFdpZHRoKCk6IG51bWJlciB7XG4gICAgICAgIGlmICghdGhpcy5pc0Jyb3dzZXIpIHJldHVybiAwO1xuXG4gICAgICAgIGNvbnN0IHsgd2lkdGgsIG1hcmdpbkxlZnQsIG1hcmdpblJpZ2h0IH0gPSB0aGlzLndpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRoaXMubmF0aXZlRWxlbWVudCk7XG5cbiAgICAgICAgcmV0dXJuIFt3aWR0aCwgbWFyZ2luTGVmdCwgbWFyZ2luUmlnaHRdLnJlZHVjZSgoYWNjLCBpdGVtKSA9PiBhY2MgKyBwYXJzZUludChpdGVtKSwgMCk7XG4gICAgfVxufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ticS1uYXZiYXItaXRlbSwgW2ticS1uYXZiYXItaXRlbV0nLFxuICAgIGV4cG9ydEFzOiAna2JxTmF2YmFySXRlbScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL25hdmJhci1pdGVtLmNvbXBvbmVudC5odG1sJyxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAna2JxLW5hdmJhci1pdGVtJyxcbiAgICAgICAgJ1tjbGFzcy5rYnEtbmF2YmFyLWl0ZW1fY29sbGFwc2VkXSc6ICdpc0NvbGxhcHNlZCcsXG4gICAgICAgICdbY2xhc3Mua2JxLW5hdmJhci1pdGVtX3dpdGgtdGl0bGVdJzogJyEhdGl0bGUnLFxuXG4gICAgICAgICcoa2V5ZG93biknOiAnb25LZXlEb3duKCRldmVudCknXG4gICAgfSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIEticU5hdmJhckl0ZW0gZXh0ZW5kcyBLYnFUb29sdGlwVHJpZ2dlciBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQge1xuICAgIEBDb250ZW50Q2hpbGQoS2JxTmF2YmFyVGl0bGUpIHRpdGxlOiBLYnFOYXZiYXJUaXRsZTtcblxuICAgIEBDb250ZW50Q2hpbGQoS2JxSWNvbikgaWNvbjogS2JxSWNvbjtcblxuICAgIEBJbnB1dCgpIGNvbGxhcHNlZFRleHQ6IHN0cmluZztcblxuICAgIEBJbnB1dCgna2JxVHJpZ2dlcicpXG4gICAgZ2V0IHRyaWdnZXIoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3RyaWdnZXI7XG4gICAgfVxuXG4gICAgc2V0IHRyaWdnZXIodmFsdWU6IHN0cmluZykge1xuICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuX3RyaWdnZXIgPSB2YWx1ZTtcblxuICAgICAgICAgICAgdGhpcy5pbml0TGlzdGVuZXJzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzZXQgY29sbGFwc2VkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIGlmICh0aGlzLl9jb2xsYXBzZWQgIT09IHZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLl9jb2xsYXBzZWQgPSB2YWx1ZTtcblxuICAgICAgICAgICAgdGhpcy51cGRhdGVUb29sdGlwKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyB0b2RvIGluIGZ1dHVyZSBuZWVkIHJlbmFtZSB0byAnY29sbGFwc2VkJ1xuICAgIGdldCBpc0NvbGxhcHNlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbGxhcHNlZCA/PyB0aGlzLnJlY3RhbmdsZUVsZW1lbnQuY29sbGFwc2VkO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2NvbGxhcHNlZCA9IGZhbHNlO1xuXG4gICAgZ2V0IGNyb3BwZWRUZXh0KCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGNyb3BwZWRUaXRsZVRleHQgPSB0aGlzLnRpdGxlPy5pc092ZXJmbG93biA/IHRoaXMudGl0bGVUZXh0IDogJyc7XG5cbiAgICAgICAgcmV0dXJuIGAke2Nyb3BwZWRUaXRsZVRleHR9YDtcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIGdldCBjb2xsYXBzYWJsZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbGxhcHNhYmxlO1xuICAgIH1cblxuICAgIHNldCBjb2xsYXBzYWJsZSh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9jb2xsYXBzYWJsZSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY29sbGFwc2FibGU6IGJvb2xlYW4gPSB0cnVlO1xuXG4gICAgZ2V0IHRpdGxlVGV4dCgpOiBzdHJpbmcgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29sbGFwc2VkVGV4dCB8fCB0aGlzLnRpdGxlPy50ZXh0IHx8IG51bGw7XG4gICAgfVxuXG4gICAgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAodGhpcy5fZGlzYWJsZWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuICF0aGlzLmlzQ29sbGFwc2VkICYmICF0aGlzLmhhc0Nyb3BwZWRUZXh0O1xuICAgIH1cblxuICAgIHNldCBkaXNhYmxlZCh2YWx1ZSkge1xuICAgICAgICB0aGlzLl9kaXNhYmxlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgZ2V0IGhhc0Ryb3BEb3duVHJpZ2dlcigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5kcm9wZG93blRyaWdnZXI7XG4gICAgfVxuXG4gICAgZ2V0IHNob3dWZXJ0aWNhbERyb3BEb3duQW5nbGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhdGhpcy5iZW50byAmJiB0aGlzLmhhc0Ryb3BEb3duVHJpZ2dlciAmJiB0aGlzLnJlY3RhbmdsZUVsZW1lbnQudmVydGljYWwgJiYgIXRoaXMuaXNDb2xsYXBzZWQ7XG4gICAgfVxuXG4gICAgZ2V0IHNob3dIb3Jpem9udGFsRHJvcERvd25BbmdsZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaGFzRHJvcERvd25UcmlnZ2VyICYmIHRoaXMucmVjdGFuZ2xlRWxlbWVudC5ob3Jpem9udGFsICYmICF0aGlzLmlzQ29sbGFwc2VkO1xuICAgIH1cblxuICAgIGdldCBoYXNDcm9wcGVkVGV4dCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy50aXRsZT8uaXNPdmVyZmxvd247XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyByZWN0YW5nbGVFbGVtZW50OiBLYnFOYXZiYXJSZWN0YW5nbGVFbGVtZW50LFxuICAgICAgICBwdWJsaWMgbmF2YmFyRm9jdXNhYmxlSXRlbTogS2JxTmF2YmFyRm9jdXNhYmxlSXRlbSxcbiAgICAgICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUgZHJvcGRvd25UcmlnZ2VyOiBLYnFEcm9wZG93blRyaWdnZXIsXG4gICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUgYmVudG86IEticU5hdmJhckJlbnRvLFxuICAgICAgICBAT3B0aW9uYWwoKSBwcml2YXRlIHRvb2x0aXA6IEticVRvb2x0aXBUcmlnZ2VyXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG5cbiAgICAgICAgaWYgKHRoaXMuaGFzRHJvcERvd25UcmlnZ2VyKSB7XG4gICAgICAgICAgICB0aGlzLmRyb3Bkb3duVHJpZ2dlci5vcGVuQnlBcnJvd0Rvd24gPSBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMucmVjdGFuZ2xlRWxlbWVudC5zdGF0ZS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5jb2xsYXBzZWQgPSB0aGlzLnJlY3RhbmdsZUVsZW1lbnQuY29sbGFwc2VkO1xuXG4gICAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5fdHJpZ2dlciA9IGAke1BvcFVwVHJpZ2dlcnMuSG92ZXJ9YDtcblxuICAgICAgICB0aGlzLm5hdmJhckZvY3VzYWJsZUl0ZW0uc2V0VG9vbHRpcCh0aGlzKTtcblxuICAgICAgICBpZiAodGhpcy50b29sdGlwKSB7XG4gICAgICAgICAgICB0aGlzLnRvb2x0aXAuYXJyb3cgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMudG9vbHRpcC5vZmZzZXQgPSAwO1xuXG4gICAgICAgICAgICB0aGlzLnRvb2x0aXBbJ292ZXJsYXlDb25maWcnXS5wYW5lbENsYXNzID0gJ2ticS10b29sdGlwLXBhbmVsX2hvcml6b250YWwtbmF2YmFyJztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVUb29sdGlwKCk7XG4gICAgfVxuXG4gICAgdXBkYXRlVG9vbHRpcCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaXNDb2xsYXBzZWQpIHtcbiAgICAgICAgICAgIHRoaXMuY29udGVudCA9IGAke3RoaXMudGl0bGVUZXh0IHx8ICcnfWA7XG4gICAgICAgIH0gZWxzZSBpZiAoIXRoaXMuaXNDb2xsYXBzZWQgJiYgdGhpcy5oYXNDcm9wcGVkVGV4dCkge1xuICAgICAgICAgICAgdGhpcy5jb250ZW50ID0gdGhpcy5jcm9wcGVkVGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnJlY3RhbmdsZUVsZW1lbnQudmVydGljYWwpIHtcbiAgICAgICAgICAgIHRoaXMucGxhY2VtZW50ID0gUG9wVXBQbGFjZW1lbnRzLlJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICBnZXRUaXRsZVdpZHRoKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLnRpdGxlLm91dGVyRWxlbWVudFdpZHRoO1xuICAgIH1cblxuICAgIG9uS2V5RG93bigkZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgaWYgKCF0aGlzLmhhc0Ryb3BEb3duVHJpZ2dlcikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgKHRoaXMucmVjdGFuZ2xlRWxlbWVudC5ob3Jpem9udGFsICYmICRldmVudC5rZXlDb2RlID09PSBET1dOX0FSUk9XKSB8fFxuICAgICAgICAgICAgKHRoaXMucmVjdGFuZ2xlRWxlbWVudC52ZXJ0aWNhbCAmJiAkZXZlbnQua2V5Q29kZSA9PT0gUklHSFRfQVJST1cpXG4gICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy5kcm9wZG93blRyaWdnZXIub3BlbmVkQnkgPSAna2V5Ym9hcmQnO1xuICAgICAgICAgICAgdGhpcy5kcm9wZG93blRyaWdnZXIub3BlbigpO1xuXG4gICAgICAgICAgICAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdrYnEtbmF2YmFyLXRvZ2dsZScsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgQGlmICghY3VzdG9tSWNvbikge1xuICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICBrYnEtaWNvblxuICAgICAgICAgICAgICAgIFtjbGFzcy5rYnEtY2hldnJvbi1sZWZ0XzE2XT1cIm5hdmJhci5leHBhbmRlZFwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLmticS1jaGV2cm9uLXJpZ2h0XzE2XT1cIiFuYXZiYXIuZXhwYW5kZWRcIlxuICAgICAgICAgICAgPjwvaT5cbiAgICAgICAgfVxuXG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltrYnEtaWNvbl1cIiAvPlxuXG4gICAgICAgIEBpZiAobmF2YmFyLmV4cGFuZGVkKSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwia2JxLW5hdmJhci1pdGVtX190aXRsZVwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImticS1uYXZiYXItdGl0bGVcIiAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICBgLFxuICAgIHN0eWxlVXJsczogWycuL25hdmJhci5zY3NzJ10sXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ2ticS1uYXZiYXItaXRlbSBrYnEtbmF2YmFyLXRvZ2dsZSBrYnEtdmVydGljYWwnLFxuICAgICAgICAnW2NsYXNzLmticS10b29sdGlwX29wZW5dJzogJ2lzT3BlbicsXG4gICAgICAgICdbY2xhc3Mua2JxLWNvbGxhcHNlZF0nOiAnIW5hdmJhci5leHBhbmRlZCcsXG4gICAgICAgICdbY2xhc3Mua2JxLWV4cGFuZGVkXSc6ICduYXZiYXIuZXhwYW5kZWQnLFxuXG4gICAgICAgICcoa2V5ZG93biknOiAnb25LZXlkb3duKCRldmVudCknLFxuICAgICAgICAnKGNsaWNrKSc6ICd0b2dnbGUoKScsXG4gICAgICAgICcodG91Y2hlbmQpJzogJ2hhbmRsZVRvdWNoZW5kKCknXG4gICAgfSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIEticU5hdmJhclRvZ2dsZSBleHRlbmRzIEticVRvb2x0aXBUcmlnZ2VyIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZG9jdW1lbnQgPSBpbmplY3Q8RG9jdW1lbnQ+KERPQ1VNRU5UKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHdpbmRvdyA9IGluamVjdChLQlFfV0lORE9XKTtcblxuICAgIEBDb250ZW50Q2hpbGQoS2JxSWNvbikgY3VzdG9tSWNvbjogS2JxSWNvbjtcblxuICAgIEBJbnB1dCgna2JxQ29sbGFwc2VkVG9vbHRpcCcpXG4gICAgZ2V0IGNvbnRlbnQoKTogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55PiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb250ZW50O1xuICAgIH1cblxuICAgIHNldCBjb250ZW50KGNvbnRlbnQ6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT4pIHtcbiAgICAgICAgdGhpcy5fY29udGVudCA9IGNvbnRlbnQ7XG5cbiAgICAgICAgdGhpcy51cGRhdGVEYXRhKCk7XG4gICAgfVxuXG4gICAgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5uYXZiYXIuZXhwYW5kZWQ7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG1vZGlmaWVyOiBUb29sdGlwTW9kaWZpZXIgPSBUb29sdGlwTW9kaWZpZXIuRGVmYXVsdDtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgbmF2YmFyOiBLYnFWZXJ0aWNhbE5hdmJhcixcbiAgICAgICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgICApIHtcbiAgICAgICAgc3VwZXIoKTtcblxuICAgICAgICB0aGlzLnBsYWNlbWVudCA9IFBvcFVwUGxhY2VtZW50cy5SaWdodDtcblxuICAgICAgICBpZiAodGhpcy53aW5kb3cpIHtcbiAgICAgICAgICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLndpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgdGhpcy53aW5kb3dUb2dnbGVIYW5kbGVyKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25LZXlkb3duKCRldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgICBpZiAoW1NQQUNFLCBFTlRFUl0uaW5jbHVkZXMoJGV2ZW50LmtleUNvZGUpKSB7XG4gICAgICAgICAgICB0aGlzLnRvZ2dsZSgpO1xuXG4gICAgICAgICAgICAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHN1cGVyLmhhbmRsZUtleWRvd24oJGV2ZW50KTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy53aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIHRoaXMud2luZG93VG9nZ2xlSGFuZGxlcik7XG4gICAgfVxuXG4gICAgdG9nZ2xlID0gKCkgPT4ge1xuICAgICAgICB0aGlzLm5hdmJhci50b2dnbGUoKTtcblxuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuXG4gICAgICAgIHRoaXMuaGlkZSgpO1xuICAgIH07XG5cbiAgICBwcml2YXRlIHdpbmRvd1RvZ2dsZUhhbmRsZXIgPSAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgaWYgKGV2ZW50LmN0cmxLZXkgJiYgW05VTVBBRF9ESVZJREUsIFNMQVNIXS5pbmNsdWRlcyhldmVudC5rZXlDb2RlKSkge1xuICAgICAgICAgICAgdGhpcy5uZ1pvbmUucnVuKHRoaXMudG9nZ2xlKTtcbiAgICAgICAgfVxuICAgIH07XG59XG4iLCI8bmctY29udGVudCBzZWxlY3Q9XCJba2JxLWljb25dXCIgLz5cblxuQGlmICh0aXRsZSkge1xuICAgIDxkaXYgY2xhc3M9XCJrYnEtbmF2YmFyLWl0ZW1fX2NvbnRhaW5lclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwia2JxLW5hdmJhci1pdGVtX190aXRsZVwiPlxuICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwia2JxLW5hdmJhci10aXRsZSwgW2ticS1uYXZiYXItdGl0bGVdXCIgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIEBpZiAoc2hvd1ZlcnRpY2FsRHJvcERvd25BbmdsZSkge1xuICAgICAgICAgICAgPGkga2JxLWljb249XCJrYnEtY2hldnJvbi1yaWdodF8xNlwiIGNsYXNzPVwia2JxLW5hdmJhci1pdGVtX19hcnJvdy1pY29uXCI+PC9pPlxuICAgICAgICB9XG4gICAgICAgIEBpZiAoc2hvd0hvcml6b250YWxEcm9wRG93bkFuZ2xlKSB7XG4gICAgICAgICAgICA8aSBrYnEtaWNvbj1cImticS1jaGV2cm9uLWRvd24tc18xNlwiIGNsYXNzPVwia2JxLW5hdmJhci1pdGVtX19hcnJvdy1pY29uXCI+PC9pPlxuICAgICAgICB9XG4gICAgPC9kaXY+XG59XG5cbjxuZy1jb250ZW50IC8+XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export * from './public-api';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL25hdmJhci1pYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG4iXX0=
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia29vYmlxLWNvbXBvbmVudHMtbmF2YmFyLWljLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9uYXZiYXItaWMva29vYmlxLWNvbXBvbmVudHMtbmF2YmFyLWljLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
@@ -0,0 +1,58 @@
1
+ import { ChangeDetectionStrategy, Component, ContentChild, DestroyRef, ElementRef, ViewEncapsulation, inject } from '@angular/core';
2
+ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
3
+ import { PopUpPlacements, PopUpTriggers } from '@koobiq/components/core';
4
+ import { KbqTooltipTrigger } from '@koobiq/components/tooltip';
5
+ import { KbqNavbarIc } from './navbar-ic';
6
+ import { KbqNavbarIcLogo, KbqNavbarIcTitle } from './navbar-ic-item';
7
+ import * as i0 from "@angular/core";
8
+ export class KbqNavbarIcHeader extends KbqTooltipTrigger {
9
+ get titleText() {
10
+ return this.title?.text || '';
11
+ }
12
+ get isLink() {
13
+ return this.nativeElement.tagName === 'A';
14
+ }
15
+ constructor() {
16
+ super();
17
+ this.navbar = inject(KbqNavbarIc);
18
+ this.nativeElement = inject(ElementRef).nativeElement;
19
+ this.destroyRef = inject(DestroyRef);
20
+ this._trigger = `${PopUpTriggers.Hover}`;
21
+ this.arrow = false;
22
+ this.offset = -8;
23
+ this.tooltipPlacement = PopUpPlacements.RightTop;
24
+ }
25
+ ngAfterContentInit() {
26
+ this.navbar?.animationDone
27
+ .pipe(takeUntilDestroyed(this.destroyRef))
28
+ .subscribe(() => this.title?.checkTextOverflown());
29
+ this.title?.checkTextOverflown();
30
+ if (this.title?.isTextOverflown) {
31
+ this.content = this.titleText;
32
+ }
33
+ }
34
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KbqNavbarIcHeader, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
35
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: KbqNavbarIcHeader, isStandalone: true, selector: "kbq-navbar-ic-header, [kbq-navbar-ic-header]", host: { properties: { "class.kbq-navbar-ic-header_interactive": "isLink" }, classAttribute: "kbq-navbar-ic-header" }, queries: [{ propertyName: "logo", first: true, predicate: KbqNavbarIcLogo, descendants: true }, { propertyName: "title", first: true, predicate: KbqNavbarIcTitle, descendants: true }], exportAs: ["kbqNavbarIcHeader"], usesInheritance: true, ngImport: i0, template: `
36
+ <div class="kbq-navbar-ic-header__inner">
37
+ <ng-content />
38
+ </div>
39
+ `, isInline: true, styles: [".kbq-navbar-ic-header{display:block;margin-top:var(--kbq-size-l);margin-bottom:var(--kbq-size-l);padding:var(--kbq-size-3xs) var(--kbq-size-m)}.kbq-navbar-ic-header .kbq-navbar-ic-header__inner{display:flex;flex-direction:row;padding:var(--kbq-size-xs) var(--kbq-size-s);gap:var(--kbq-size-s);border-radius:var(--kbq-navbar-ic-item-size-content-border-radius)}.kbq-navbar-ic-header .kbq-navbar-ic-logo{display:flex;align-self:center}.kbq-navbar-ic-header .kbq-navbar-ic-title{display:block;align-items:center;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.kbq-navbar-ic-header .kbq-navbar-ic-title.kbq-navbar-ic-title_text-overflown{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;white-space:normal}.kbq-navbar-ic-header.kbq-navbar-ic-header_interactive{cursor:pointer}.kbq-navbar-ic-header.kbq-collapsed .kbq-navbar-ic-title{display:none}a.kbq-navbar-ic-header{text-decoration:none}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
40
+ }
41
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KbqNavbarIcHeader, decorators: [{
42
+ type: Component,
43
+ args: [{ standalone: true, selector: 'kbq-navbar-ic-header, [kbq-navbar-ic-header]', exportAs: 'kbqNavbarIcHeader', template: `
44
+ <div class="kbq-navbar-ic-header__inner">
45
+ <ng-content />
46
+ </div>
47
+ `, host: {
48
+ class: 'kbq-navbar-ic-header',
49
+ '[class.kbq-navbar-ic-header_interactive]': 'isLink'
50
+ }, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, styles: [".kbq-navbar-ic-header{display:block;margin-top:var(--kbq-size-l);margin-bottom:var(--kbq-size-l);padding:var(--kbq-size-3xs) var(--kbq-size-m)}.kbq-navbar-ic-header .kbq-navbar-ic-header__inner{display:flex;flex-direction:row;padding:var(--kbq-size-xs) var(--kbq-size-s);gap:var(--kbq-size-s);border-radius:var(--kbq-navbar-ic-item-size-content-border-radius)}.kbq-navbar-ic-header .kbq-navbar-ic-logo{display:flex;align-self:center}.kbq-navbar-ic-header .kbq-navbar-ic-title{display:block;align-items:center;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.kbq-navbar-ic-header .kbq-navbar-ic-title.kbq-navbar-ic-title_text-overflown{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;white-space:normal}.kbq-navbar-ic-header.kbq-navbar-ic-header_interactive{cursor:pointer}.kbq-navbar-ic-header.kbq-collapsed .kbq-navbar-ic-title{display:none}a.kbq-navbar-ic-header{text-decoration:none}\n"] }]
51
+ }], ctorParameters: () => [], propDecorators: { logo: [{
52
+ type: ContentChild,
53
+ args: [KbqNavbarIcLogo]
54
+ }], title: [{
55
+ type: ContentChild,
56
+ args: [KbqNavbarIcTitle]
57
+ }] } });
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2YmFyLWljLWhlYWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvbmF2YmFyLWljL25hdmJhci1pYy1oZWFkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixVQUFVLEVBQ1YsaUJBQWlCLEVBQ2pCLE1BQU0sRUFDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDMUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDOztBQW1CckUsTUFBTSxPQUFPLGlCQUFrQixTQUFRLGlCQUFpQjtJQVFwRCxJQUFJLFNBQVM7UUFDVCxPQUFPLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRUQsSUFBSSxNQUFNO1FBQ04sT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sS0FBSyxHQUFHLENBQUM7SUFDOUMsQ0FBQztJQUVEO1FBQ0ksS0FBSyxFQUFFLENBQUM7UUFoQk8sV0FBTSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUM3QixrQkFBYSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxhQUFhLENBQUM7UUFDakQsZUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQWdCL0MsSUFBSSxDQUFDLFFBQVEsR0FBRyxHQUFHLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUV6QyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ2pCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxlQUFlLENBQUMsUUFBUSxDQUFDO0lBQ3JELENBQUM7SUFFRCxrQkFBa0I7UUFDZCxJQUFJLENBQUMsTUFBTSxFQUFFLGFBQWE7YUFDckIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUN6QyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxDQUFDLENBQUM7UUFFdkQsSUFBSSxDQUFDLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxDQUFDO1FBRWpDLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxlQUFlLEVBQUUsQ0FBQztZQUM5QixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDbEMsQ0FBQztJQUNMLENBQUM7a0lBcENRLGlCQUFpQjtzSEFBakIsaUJBQWlCLGdRQUtaLGVBQWUsd0VBQ2YsZ0JBQWdCLHdHQW5CcEI7Ozs7S0FJVDs7NEZBU1EsaUJBQWlCO2tCQWpCN0IsU0FBUztpQ0FDTSxJQUFJLFlBQ04sOENBQThDLFlBQzlDLG1CQUFtQixZQUNuQjs7OztLQUlULFFBRUs7d0JBQ0YsS0FBSyxFQUFFLHNCQUFzQjt3QkFDN0IsMENBQTBDLEVBQUUsUUFBUTtxQkFDdkQsbUJBQ2dCLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUk7d0RBT04sSUFBSTtzQkFBbEMsWUFBWTt1QkFBQyxlQUFlO2dCQUNHLEtBQUs7c0JBQXBDLFlBQVk7dUJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlckNvbnRlbnRJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgRGVzdHJveVJlZixcbiAgICBFbGVtZW50UmVmLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxuICAgIGluamVjdFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IFBvcFVwUGxhY2VtZW50cywgUG9wVXBUcmlnZ2VycyB9IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy9jb3JlJztcbmltcG9ydCB7IEticVRvb2x0aXBUcmlnZ2VyIH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL3Rvb2x0aXAnO1xuaW1wb3J0IHsgS2JxTmF2YmFySWMgfSBmcm9tICcuL25hdmJhci1pYyc7XG5pbXBvcnQgeyBLYnFOYXZiYXJJY0xvZ28sIEticU5hdmJhckljVGl0bGUgfSBmcm9tICcuL25hdmJhci1pYy1pdGVtJztcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ2ticS1uYXZiYXItaWMtaGVhZGVyLCBba2JxLW5hdmJhci1pYy1oZWFkZXJdJyxcbiAgICBleHBvcnRBczogJ2ticU5hdmJhckljSGVhZGVyJyxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8ZGl2IGNsYXNzPVwia2JxLW5hdmJhci1pYy1oZWFkZXJfX2lubmVyXCI+XG4gICAgICAgICAgICA8bmctY29udGVudCAvPlxuICAgICAgICA8L2Rpdj5cbiAgICBgLFxuICAgIHN0eWxlVXJsOiAnLi9uYXZiYXItaWMtaGVhZGVyLnNjc3MnLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICdrYnEtbmF2YmFyLWljLWhlYWRlcicsXG4gICAgICAgICdbY2xhc3Mua2JxLW5hdmJhci1pYy1oZWFkZXJfaW50ZXJhY3RpdmVdJzogJ2lzTGluaydcbiAgICB9LFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgS2JxTmF2YmFySWNIZWFkZXIgZXh0ZW5kcyBLYnFUb29sdGlwVHJpZ2dlciBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQge1xuICAgIHByb3RlY3RlZCByZWFkb25seSBuYXZiYXIgPSBpbmplY3QoS2JxTmF2YmFySWMpO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBuYXRpdmVFbGVtZW50ID0gaW5qZWN0KEVsZW1lbnRSZWYpLm5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cbiAgICBAQ29udGVudENoaWxkKEticU5hdmJhckljTG9nbykgbG9nbzogS2JxTmF2YmFySWNMb2dvO1xuICAgIEBDb250ZW50Q2hpbGQoS2JxTmF2YmFySWNUaXRsZSkgdGl0bGU6IEticU5hdmJhckljVGl0bGU7XG5cbiAgICBnZXQgdGl0bGVUZXh0KCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnRpdGxlPy50ZXh0IHx8ICcnO1xuICAgIH1cblxuICAgIGdldCBpc0xpbmsoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLm5hdGl2ZUVsZW1lbnQudGFnTmFtZSA9PT0gJ0EnO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuXG4gICAgICAgIHRoaXMuX3RyaWdnZXIgPSBgJHtQb3BVcFRyaWdnZXJzLkhvdmVyfWA7XG5cbiAgICAgICAgdGhpcy5hcnJvdyA9IGZhbHNlO1xuICAgICAgICB0aGlzLm9mZnNldCA9IC04O1xuICAgICAgICB0aGlzLnRvb2x0aXBQbGFjZW1lbnQgPSBQb3BVcFBsYWNlbWVudHMuUmlnaHRUb3A7XG4gICAgfVxuXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLm5hdmJhcj8uYW5pbWF0aW9uRG9uZVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMudGl0bGU/LmNoZWNrVGV4dE92ZXJmbG93bigpKTtcblxuICAgICAgICB0aGlzLnRpdGxlPy5jaGVja1RleHRPdmVyZmxvd24oKTtcblxuICAgICAgICBpZiAodGhpcy50aXRsZT8uaXNUZXh0T3ZlcmZsb3duKSB7XG4gICAgICAgICAgICB0aGlzLmNvbnRlbnQgPSB0aGlzLnRpdGxlVGV4dDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==