@dereekb/dbx-form 11.1.8 → 12.0.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 (248) hide show
  1. package/calendar/lib/calendar.module.d.ts +1 -14
  2. package/calendar/lib/calendar.schedule.selection.cell.component.d.ts +8 -5
  3. package/calendar/lib/calendar.schedule.selection.component.d.ts +13 -10
  4. package/calendar/lib/calendar.schedule.selection.d.ts +6 -6
  5. package/calendar/lib/calendar.schedule.selection.days.component.d.ts +1 -1
  6. package/calendar/lib/calendar.schedule.selection.days.form.component.d.ts +1 -1
  7. package/calendar/lib/calendar.schedule.selection.dialog.button.component.d.ts +4 -4
  8. package/calendar/lib/calendar.schedule.selection.dialog.component.d.ts +5 -5
  9. package/calendar/lib/calendar.schedule.selection.popover.button.component.d.ts +4 -2
  10. package/calendar/lib/calendar.schedule.selection.popover.component.d.ts +1 -1
  11. package/calendar/lib/calendar.schedule.selection.popover.content.component.d.ts +1 -1
  12. package/calendar/lib/calendar.schedule.selection.range.component.d.ts +19 -17
  13. package/calendar/lib/calendar.schedule.selection.store.d.ts +2 -2
  14. package/calendar/lib/calendar.schedule.selection.store.provide.d.ts +1 -1
  15. package/calendar/lib/calendar.schedule.selection.toggle.button.component.d.ts +8 -12
  16. package/calendar/lib/field/schedule/calendar.schedule.field.component.d.ts +22 -22
  17. package/calendar/lib/field/schedule/calendar.schedule.module.d.ts +2 -10
  18. package/esm2022/calendar/lib/calendar.module.mjs +19 -101
  19. package/esm2022/calendar/lib/calendar.schedule.selection.cell.component.mjs +27 -28
  20. package/esm2022/calendar/lib/calendar.schedule.selection.component.mjs +38 -55
  21. package/esm2022/calendar/lib/calendar.schedule.selection.days.component.mjs +17 -13
  22. package/esm2022/calendar/lib/calendar.schedule.selection.days.form.component.mjs +11 -12
  23. package/esm2022/calendar/lib/calendar.schedule.selection.dialog.button.component.mjs +18 -21
  24. package/esm2022/calendar/lib/calendar.schedule.selection.dialog.component.mjs +12 -9
  25. package/esm2022/calendar/lib/calendar.schedule.selection.mjs +3 -2
  26. package/esm2022/calendar/lib/calendar.schedule.selection.popover.button.component.mjs +22 -18
  27. package/esm2022/calendar/lib/calendar.schedule.selection.popover.component.mjs +12 -9
  28. package/esm2022/calendar/lib/calendar.schedule.selection.popover.content.component.mjs +13 -10
  29. package/esm2022/calendar/lib/calendar.schedule.selection.range.component.mjs +52 -70
  30. package/esm2022/calendar/lib/calendar.schedule.selection.store.mjs +5 -5
  31. package/esm2022/calendar/lib/calendar.schedule.selection.store.provide.mjs +9 -8
  32. package/esm2022/calendar/lib/calendar.schedule.selection.toggle.button.component.mjs +48 -50
  33. package/esm2022/calendar/lib/field/schedule/calendar.schedule.field.component.mjs +17 -14
  34. package/esm2022/calendar/lib/field/schedule/calendar.schedule.module.mjs +8 -40
  35. package/esm2022/lib/form/action/form.action.directive.mjs +58 -55
  36. package/esm2022/lib/form/action/form.action.module.mjs +9 -9
  37. package/esm2022/lib/form/action/transition/form.action.transition.module.mjs +9 -8
  38. package/esm2022/lib/form/action/transition/form.action.transition.safety.directive.mjs +14 -11
  39. package/esm2022/lib/form/form.mjs +1 -1
  40. package/esm2022/lib/form/form.module.mjs +4 -4
  41. package/esm2022/lib/form/io/form.changes.directive.mjs +11 -16
  42. package/esm2022/lib/form/io/form.input.directive.mjs +24 -38
  43. package/esm2022/lib/form/io/form.io.module.mjs +15 -9
  44. package/esm2022/lib/form/io/form.loading.directive.mjs +22 -42
  45. package/esm2022/lib/form.module.mjs +4 -4
  46. package/esm2022/lib/form.providers.mjs +32 -0
  47. package/esm2022/lib/formly/field/checklist/checklist.field.mjs +5 -5
  48. package/esm2022/lib/formly/field/checklist/checklist.item.field.component.mjs +51 -47
  49. package/esm2022/lib/formly/field/checklist/checklist.item.field.content.default.component.mjs +41 -29
  50. package/esm2022/lib/formly/field/checklist/checklist.item.field.mjs +3 -3
  51. package/esm2022/lib/formly/field/checklist/checklist.item.field.module.mjs +8 -45
  52. package/esm2022/lib/formly/field/checklist/checklist.item.mjs +1 -1
  53. package/esm2022/lib/formly/field/component/component.field.component.mjs +11 -8
  54. package/esm2022/lib/formly/field/component/component.field.module.mjs +8 -14
  55. package/esm2022/lib/formly/field/field.mjs +1 -1
  56. package/esm2022/lib/formly/field/form.field.module.mjs +4 -4
  57. package/esm2022/lib/formly/field/selection/list/list.field.component.mjs +17 -14
  58. package/esm2022/lib/formly/field/selection/list/list.field.module.mjs +8 -58
  59. package/esm2022/lib/formly/field/selection/pickable/pickable.chip.field.component.mjs +17 -13
  60. package/esm2022/lib/formly/field/selection/pickable/pickable.field.directive.mjs +16 -16
  61. package/esm2022/lib/formly/field/selection/pickable/pickable.field.module.mjs +8 -68
  62. package/esm2022/lib/formly/field/selection/pickable/pickable.list.field.component.mjs +71 -54
  63. package/esm2022/lib/formly/field/selection/pickable/pickable.util.mjs +2 -2
  64. package/esm2022/lib/formly/field/selection/searchable/searchable.chip.field.component.mjs +21 -16
  65. package/esm2022/lib/formly/field/selection/searchable/searchable.field.autocomplete.item.component.mjs +51 -49
  66. package/esm2022/lib/formly/field/selection/searchable/searchable.field.directive.mjs +35 -27
  67. package/esm2022/lib/formly/field/selection/searchable/searchable.field.mjs +1 -1
  68. package/esm2022/lib/formly/field/selection/searchable/searchable.field.module.mjs +8 -65
  69. package/esm2022/lib/formly/field/selection/searchable/searchable.mjs +1 -1
  70. package/esm2022/lib/formly/field/selection/searchable/searchable.text.field.component.mjs +48 -30
  71. package/esm2022/lib/formly/field/selection/searchable/text.chip.field.mjs +2 -2
  72. package/esm2022/lib/formly/field/selection/selection.field.mjs +1 -1
  73. package/esm2022/lib/formly/field/selection/selection.mjs +1 -1
  74. package/esm2022/lib/formly/field/selection/selection.module.mjs +4 -4
  75. package/esm2022/lib/formly/field/selection/sourceselect/sourceselect.field.component.mjs +20 -21
  76. package/esm2022/lib/formly/field/selection/sourceselect/sourceselect.field.module.mjs +6 -73
  77. package/esm2022/lib/formly/field/selection/sourceselect/sourceselect.mjs +1 -1
  78. package/esm2022/lib/formly/field/texteditor/texteditor.field.component.mjs +37 -22
  79. package/esm2022/lib/formly/field/texteditor/texteditor.field.mjs +2 -2
  80. package/esm2022/lib/formly/field/texteditor/texteditor.field.module.mjs +8 -33
  81. package/esm2022/lib/formly/field/value/array/array.field.component.mjs +72 -50
  82. package/esm2022/lib/formly/field/value/array/array.field.module.mjs +8 -44
  83. package/esm2022/lib/formly/field/value/boolean/boolean.field.mjs +2 -2
  84. package/esm2022/lib/formly/field/value/boolean/boolean.field.module.mjs +4 -4
  85. package/esm2022/lib/formly/field/value/date/date.field.module.mjs +5 -9
  86. package/esm2022/lib/formly/field/value/date/date.value.mjs +1 -1
  87. package/esm2022/lib/formly/field/value/date/datetime.field.component.mjs +8 -8
  88. package/esm2022/lib/formly/field/value/date/datetime.field.service.mjs +4 -4
  89. package/esm2022/lib/formly/field/value/date/datetime.mjs +1 -1
  90. package/esm2022/lib/formly/field/value/date/fixeddaterange.field.component.mjs +8 -8
  91. package/esm2022/lib/formly/field/value/number/number.field.mjs +1 -1
  92. package/esm2022/lib/formly/field/value/number/number.field.module.mjs +4 -4
  93. package/esm2022/lib/formly/field/value/phone/phone.field.component.mjs +4 -4
  94. package/esm2022/lib/formly/field/value/phone/phone.field.module.mjs +4 -4
  95. package/esm2022/lib/formly/field/value/text/text.address.field.mjs +1 -1
  96. package/esm2022/lib/formly/field/value/text/text.field.mjs +1 -1
  97. package/esm2022/lib/formly/field/value/text/text.field.module.mjs +4 -4
  98. package/esm2022/lib/formly/field/value/value.module.mjs +4 -4
  99. package/esm2022/lib/formly/field/wrapper/autotouch.wrapper.component.mjs +9 -7
  100. package/esm2022/lib/formly/field/wrapper/expand.wrapper.component.mjs +19 -24
  101. package/esm2022/lib/formly/field/wrapper/expand.wrapper.delegate.mjs +7 -4
  102. package/esm2022/lib/formly/field/wrapper/flex.wrapper.component.mjs +11 -8
  103. package/esm2022/lib/formly/field/wrapper/form.wrapper.module.mjs +8 -39
  104. package/esm2022/lib/formly/field/wrapper/index.mjs +2 -1
  105. package/esm2022/lib/formly/field/wrapper/info.wrapper.component.mjs +19 -16
  106. package/esm2022/lib/formly/field/wrapper/section.wrapper.component.mjs +11 -7
  107. package/esm2022/lib/formly/field/wrapper/style.wrapper.component.mjs +16 -11
  108. package/esm2022/lib/formly/field/wrapper/subsection.wrapper.component.mjs +11 -8
  109. package/esm2022/lib/formly/field/wrapper/toggle.wrapper.component.mjs +21 -17
  110. package/esm2022/lib/formly/field/wrapper/working.wrapper.component.mjs +11 -8
  111. package/esm2022/lib/formly/field/wrapper/wrapper.mjs +1 -1
  112. package/esm2022/lib/formly/form/form.form.module.mjs +4 -4
  113. package/esm2022/lib/formly/form/search.form.component.mjs +4 -4
  114. package/esm2022/lib/formly/formly.component.template.mjs +29 -0
  115. package/esm2022/lib/formly/formly.context.directive.mjs +6 -5
  116. package/esm2022/lib/formly/formly.context.mjs +12 -8
  117. package/esm2022/lib/formly/formly.directive.mjs +29 -44
  118. package/esm2022/lib/formly/formly.form.component.mjs +24 -18
  119. package/esm2022/lib/formly/formly.module.mjs +10 -14
  120. package/esm2022/lib/formly/index.mjs +2 -1
  121. package/esm2022/lib/formly/template/login.mjs +1 -1
  122. package/esm2022/lib/formly/template/timezone.mjs +1 -1
  123. package/esm2022/lib/index.mjs +2 -1
  124. package/esm2022/lib/layout/form.layout.module.mjs +4 -4
  125. package/esm2022/lib/layout/form.spacer.component.mjs +3 -3
  126. package/esm2022/lib/validator/available.mjs +1 -1
  127. package/esm2022/lib/validator/boolean.mjs +1 -1
  128. package/esm2022/lib/validator/field.mjs +2 -2
  129. package/esm2022/lib/validator/number.mjs +1 -1
  130. package/esm2022/lib/validator/phone.mjs +1 -1
  131. package/esm2022/mapbox/lib/field/latlng/latlng.field.component.mjs +65 -47
  132. package/esm2022/mapbox/lib/field/latlng/latlng.field.marker.component.mjs +13 -10
  133. package/esm2022/mapbox/lib/field/latlng/latlng.module.mjs +10 -43
  134. package/esm2022/mapbox/lib/field/zoom/zoom.field.component.mjs +32 -26
  135. package/esm2022/mapbox/lib/field/zoom/zoom.module.mjs +8 -36
  136. package/esm2022/mapbox/lib/mapbox.module.mjs +4 -4
  137. package/fesm2022/dereekb-dbx-form-calendar.mjs +340 -457
  138. package/fesm2022/dereekb-dbx-form-calendar.mjs.map +1 -1
  139. package/fesm2022/dereekb-dbx-form-mapbox.mjs +114 -141
  140. package/fesm2022/dereekb-dbx-form-mapbox.mjs.map +1 -1
  141. package/fesm2022/dereekb-dbx-form.mjs +935 -1106
  142. package/fesm2022/dereekb-dbx-form.mjs.map +1 -1
  143. package/lib/extension/calendar/_calendar.scss +3 -3
  144. package/lib/form/_form.scss +3 -3
  145. package/lib/form/action/form.action.directive.d.ts +35 -16
  146. package/lib/form/action/form.action.module.d.ts +4 -3
  147. package/lib/form/action/transition/form.action.transition.module.d.ts +4 -2
  148. package/lib/form/action/transition/form.action.transition.safety.directive.d.ts +4 -2
  149. package/lib/form/io/form.changes.directive.d.ts +3 -4
  150. package/lib/form/io/form.input.directive.d.ts +7 -10
  151. package/lib/form/io/form.io.module.d.ts +8 -2
  152. package/lib/form/io/form.loading.directive.d.ts +10 -11
  153. package/lib/form.providers.d.ts +8 -0
  154. package/lib/formly/_formly.scss +3 -3
  155. package/lib/formly/field/checklist/_checklist.scss +3 -3
  156. package/lib/formly/field/checklist/checklist.field.d.ts +7 -7
  157. package/lib/formly/field/checklist/checklist.item.d.ts +7 -9
  158. package/lib/formly/field/checklist/checklist.item.field.component.d.ts +19 -18
  159. package/lib/formly/field/checklist/checklist.item.field.content.default.component.d.ts +5 -5
  160. package/lib/formly/field/checklist/checklist.item.field.d.ts +1 -1
  161. package/lib/formly/field/checklist/checklist.item.field.module.d.ts +3 -11
  162. package/lib/formly/field/component/_component.scss +3 -3
  163. package/lib/formly/field/component/component.field.component.d.ts +1 -1
  164. package/lib/formly/field/component/component.field.module.d.ts +2 -4
  165. package/lib/formly/field/field.d.ts +8 -5
  166. package/lib/formly/field/selection/list/_list.scss +3 -3
  167. package/lib/formly/field/selection/list/list.field.component.d.ts +7 -5
  168. package/lib/formly/field/selection/list/list.field.module.d.ts +2 -12
  169. package/lib/formly/field/selection/pickable/_pickable.scss +3 -3
  170. package/lib/formly/field/selection/pickable/pickable.chip.field.component.d.ts +1 -1
  171. package/lib/formly/field/selection/pickable/pickable.field.directive.d.ts +25 -23
  172. package/lib/formly/field/selection/pickable/pickable.field.module.d.ts +2 -13
  173. package/lib/formly/field/selection/pickable/pickable.list.field.component.d.ts +15 -14
  174. package/lib/formly/field/selection/searchable/_searchable.scss +3 -3
  175. package/lib/formly/field/selection/searchable/searchable.chip.field.component.d.ts +4 -4
  176. package/lib/formly/field/selection/searchable/searchable.d.ts +3 -3
  177. package/lib/formly/field/selection/searchable/searchable.field.autocomplete.item.component.d.ts +8 -12
  178. package/lib/formly/field/selection/searchable/searchable.field.directive.d.ts +30 -25
  179. package/lib/formly/field/selection/searchable/searchable.field.module.d.ts +2 -13
  180. package/lib/formly/field/selection/searchable/searchable.text.field.component.d.ts +6 -8
  181. package/lib/formly/field/selection/selection.d.ts +5 -5
  182. package/lib/formly/field/selection/sourceselect/_sourceselect.scss +3 -3
  183. package/lib/formly/field/selection/sourceselect/sourceselect.d.ts +1 -1
  184. package/lib/formly/field/selection/sourceselect/sourceselect.field.component.d.ts +5 -3
  185. package/lib/formly/field/selection/sourceselect/sourceselect.field.module.d.ts +2 -17
  186. package/lib/formly/field/texteditor/_texteditor.scss +9 -9
  187. package/lib/formly/field/texteditor/texteditor.field.component.d.ts +5 -4
  188. package/lib/formly/field/texteditor/texteditor.field.module.d.ts +2 -8
  189. package/lib/formly/field/value/array/_array.scss +5 -5
  190. package/lib/formly/field/value/array/array.field.component.d.ts +16 -18
  191. package/lib/formly/field/value/array/array.field.d.ts +8 -5
  192. package/lib/formly/field/value/array/array.field.module.d.ts +2 -10
  193. package/lib/formly/field/value/boolean/_boolean.scss +3 -3
  194. package/lib/formly/field/value/date/_date.scss +5 -5
  195. package/lib/formly/field/value/date/date.field.module.d.ts +8 -9
  196. package/lib/formly/field/value/date/datetime.field.service.d.ts +1 -1
  197. package/lib/formly/field/value/date/fixeddaterange.field.component.d.ts +13 -13
  198. package/lib/formly/field/value/number/_number.scss +2 -2
  199. package/lib/formly/field/value/phone/_phone.scss +6 -6
  200. package/lib/formly/field/value/phone/phone.field.component.d.ts +6 -5
  201. package/lib/formly/field/value/text/_text.scss +3 -3
  202. package/lib/formly/field/wrapper/_wrapper.scss +3 -3
  203. package/lib/formly/field/wrapper/autotouch.wrapper.component.d.ts +1 -1
  204. package/lib/formly/field/wrapper/expand.wrapper.component.d.ts +1 -1
  205. package/lib/formly/field/wrapper/expand.wrapper.delegate.d.ts +2 -0
  206. package/lib/formly/field/wrapper/flex.wrapper.component.d.ts +4 -4
  207. package/lib/formly/field/wrapper/form.wrapper.module.d.ts +2 -8
  208. package/lib/formly/field/wrapper/index.d.ts +1 -0
  209. package/lib/formly/field/wrapper/info.wrapper.component.d.ts +2 -2
  210. package/lib/formly/field/wrapper/section.wrapper.component.d.ts +1 -1
  211. package/lib/formly/field/wrapper/style.wrapper.component.d.ts +5 -3
  212. package/lib/formly/field/wrapper/subsection.wrapper.component.d.ts +1 -1
  213. package/lib/formly/field/wrapper/toggle.wrapper.component.d.ts +2 -1
  214. package/lib/formly/field/wrapper/working.wrapper.component.d.ts +2 -2
  215. package/lib/formly/form/_form.scss +3 -3
  216. package/lib/formly/formly.component.template.d.ts +19 -0
  217. package/lib/formly/formly.context.d.ts +11 -7
  218. package/lib/formly/formly.context.directive.d.ts +2 -2
  219. package/lib/formly/formly.directive.d.ts +10 -10
  220. package/lib/formly/formly.form.component.d.ts +18 -13
  221. package/lib/formly/formly.module.d.ts +1 -1
  222. package/lib/formly/index.d.ts +1 -0
  223. package/lib/index.d.ts +1 -0
  224. package/lib/layout/_layout.scss +3 -3
  225. package/lib/style/_all-typography.scss +1 -1
  226. package/lib/style/_theming.scss +1 -1
  227. package/mapbox/lib/field/latlng/latlng.field.component.d.ts +25 -23
  228. package/mapbox/lib/field/latlng/latlng.field.marker.component.d.ts +2 -1
  229. package/mapbox/lib/field/latlng/latlng.module.d.ts +2 -11
  230. package/mapbox/lib/field/zoom/zoom.field.component.d.ts +13 -13
  231. package/mapbox/lib/field/zoom/zoom.module.d.ts +3 -10
  232. package/package.json +10 -11
  233. package/mapbox/esm2022/dereekb-dbx-form-mapbox.mjs +0 -5
  234. package/mapbox/esm2022/index.mjs +0 -3
  235. package/mapbox/esm2022/lib/field/index.mjs +0 -3
  236. package/mapbox/esm2022/lib/field/latlng/index.mjs +0 -5
  237. package/mapbox/esm2022/lib/field/latlng/latlng.field.component.mjs +0 -244
  238. package/mapbox/esm2022/lib/field/latlng/latlng.field.marker.component.mjs +0 -31
  239. package/mapbox/esm2022/lib/field/latlng/latlng.field.mjs +0 -35
  240. package/mapbox/esm2022/lib/field/latlng/latlng.module.mjs +0 -59
  241. package/mapbox/esm2022/lib/field/zoom/index.mjs +0 -4
  242. package/mapbox/esm2022/lib/field/zoom/zoom.field.component.mjs +0 -140
  243. package/mapbox/esm2022/lib/field/zoom/zoom.field.mjs +0 -23
  244. package/mapbox/esm2022/lib/field/zoom/zoom.module.mjs +0 -57
  245. package/mapbox/esm2022/lib/mapbox.module.mjs +0 -16
  246. package/mapbox/fesm2022/dereekb-dbx-form-mapbox.mjs +0 -566
  247. package/mapbox/fesm2022/dereekb-dbx-form-mapbox.mjs.map +0 -1
  248. package/mapbox/package.json +0 -21
@@ -1,15 +1,15 @@
1
- import { filterMaybe, isLoadingStateWithDefinedValue, isLoadingStateLoading, startWithBeginLoading, SubscriptionObject, successResult, beginLoading, mapLoadingStateValueWithOperator, loadingStateContext, valueFromLoadingState } from '@dereekb/rxjs';
2
- import { Component, ElementRef, ViewChild } from '@angular/core';
1
+ import { filterMaybe, isLoadingStateWithDefinedValue, isLoadingStateLoading, startWithBeginLoading, SubscriptionObject, successResult, beginLoading, mapLoadingStateValueWithOperator, loadingStateContext, valueFromFinishedLoadingState } from '@dereekb/rxjs';
2
+ import { ChangeDetectionStrategy, Component, ElementRef, viewChild } from '@angular/core';
3
3
  import { distinctUntilChanged, map, switchMap, shareReplay, startWith, mergeMap, scan, BehaviorSubject, tap, first, combineLatest, of } from 'rxjs';
4
4
  import { addToSetCopy, asArray, convertMaybeToArray, filterMaybeArrayValues, lastValue, makeValuesGroupMap, mergeArrays, separateValues, setContainsAllValues, setsAreEquivalent, sortByStringFunction } from '@dereekb/util';
5
5
  import { FieldType } from '@ngx-formly/material/form-field';
6
+ import { FormsModule, ReactiveFormsModule } from '@angular/forms';
7
+ import { toSignal } from '@angular/core/rxjs-interop';
8
+ import { MatOptgroup, MatOption, MatSelect } from '@angular/material/select';
9
+ import { DbxActionModule, DbxButtonComponent, DbxButtonSpacerDirective, DbxLoadingComponent } from '@dereekb/dbx-web';
6
10
  import * as i0 from "@angular/core";
7
- import * as i1 from "@angular/common";
8
- import * as i2 from "@angular/forms";
9
- import * as i3 from "@angular/material/select";
10
- import * as i4 from "@angular/material/core";
11
- import * as i5 from "@dereekb/dbx-web";
12
- import * as i6 from "@dereekb/dbx-core";
11
+ import * as i1 from "@angular/forms";
12
+ import * as i2 from "@dereekb/dbx-core";
13
13
  /**
14
14
  * Component that displays a select view (multi or not)
15
15
  */
@@ -21,7 +21,7 @@ export class DbxFormSourceSelectFieldComponent extends FieldType {
21
21
  _formControlObs = new BehaviorSubject(undefined);
22
22
  _fromOpenSource = new BehaviorSubject({ values: [], valuesSet: new Set() });
23
23
  _loadSources = new BehaviorSubject(undefined);
24
- buttonElement;
24
+ buttonElement = viewChild('button', { read: (ElementRef) });
25
25
  formControl$ = this._formControlObs.pipe(filterMaybe());
26
26
  currentFormControlValue$ = this.formControl$.pipe(switchMap((control) => control.valueChanges.pipe(startWith(control.value))), shareReplay(1));
27
27
  values$ = this.currentFormControlValue$.pipe(map(convertMaybeToArray), shareReplay(1));
@@ -133,7 +133,7 @@ export class DbxFormSourceSelectFieldComponent extends FieldType {
133
133
  }));
134
134
  return obs;
135
135
  })), shareReplay(1));
136
- allOptionGroups$ = this.allOptionGroupsState$.pipe(valueFromLoadingState(), shareReplay(1));
136
+ allOptionGroups$ = this.allOptionGroupsState$.pipe(valueFromFinishedLoadingState(), map((x) => x ?? []), shareReplay(1));
137
137
  options$ = this.allOptionGroups$.pipe(map((x) => {
138
138
  const { included: groupedValues, excluded: nonGroupedGroup } = separateValues(x, (y) => Boolean(y.label));
139
139
  const result = {
@@ -144,6 +144,8 @@ export class DbxFormSourceSelectFieldComponent extends FieldType {
144
144
  }), shareReplay(1));
145
145
  nonGroupedValues$ = this.options$.pipe(map((x) => x.nonGroupedValues));
146
146
  groupedOptions$ = this.options$.pipe(map((x) => x.groupedValues));
147
+ nonGroupedValuesSignal = toSignal(this.nonGroupedValues$);
148
+ groupedOptionsSignal = toSignal(this.groupedOptions$);
147
149
  get sourceSelectField() {
148
150
  return this.props;
149
151
  }
@@ -263,8 +265,8 @@ export class DbxFormSourceSelectFieldComponent extends FieldType {
263
265
  }
264
266
  handleSelectOptions = (_, context) => {
265
267
  const { openSource } = this;
266
- if (openSource) {
267
- const origin = this.buttonElement.nativeElement;
268
+ const origin = this.buttonElement();
269
+ if (openSource && origin) {
268
270
  const sourceObs = openSource({ origin });
269
271
  context.startWorkingWithObservable(sourceObs.pipe(first(), tap((result) => {
270
272
  const valuesToAdd = mergeArrays([result.select, result.options]);
@@ -313,14 +315,11 @@ export class DbxFormSourceSelectFieldComponent extends FieldType {
313
315
  this.formControl.markAsDirty();
314
316
  this.formControl.markAsTouched();
315
317
  }
316
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormSourceSelectFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
317
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DbxFormSourceSelectFieldComponent, selector: "ng-component", viewQueries: [{ propertyName: "buttonElement", first: true, predicate: ["button"], descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: "<div class=\"dbx-source-select-field\">\n <div class=\"dbx-source-select-field-content\">\n <mat-select class=\"dbx-source-select-field-select\" [id]=\"id\" [formControl]=\"formControl\" [multiple]=\"props.multiple\">\n <mat-option *ngFor=\"let value of nonGroupedValues$ | async\" [value]=\"value.value\">\n {{ value.label }}\n </mat-option>\n <mat-optgroup *ngFor=\"let optionGroup of groupedOptions$ | async\" [label]=\"optionGroup.label\">\n <mat-option *ngFor=\"let value of optionGroup.values\" [value]=\"value.value\">\n {{ value.label }}\n </mat-option>\n </mat-optgroup>\n </mat-select>\n <ng-container *ngIf=\"showOpenSourceButton\">\n <dbx-button-spacer></dbx-button-spacer>\n <dbx-action dbxActionValue [dbxActionHandler]=\"handleSelectOptions\" class=\"dbx-source-select-field-button\">\n <dbx-button #button dbxActionButton [iconOnly]=\"true\" [icon]=\"selectButtonIcon\"></dbx-button>\n </dbx-action>\n </ng-container>\n </div>\n <dbx-loading class=\"dbx-source-select-field-loading\" [linear]=\"true\" [context]=\"context\"></dbx-loading>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "component", type: i3.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex", "panelWidth", "hideSingleSelectionIndicator"], exportAs: ["matSelect"] }, { kind: "component", type: i4.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i4.MatOptgroup, selector: "mat-optgroup", inputs: ["disabled"], exportAs: ["matOptgroup"] }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i5.DbxLoadingComponent, selector: "dbx-loading", inputs: ["show", "text", "mode", "color", "diameter", "linear", "padding", "context", "loading", "error"] }, { kind: "directive", type: i6.DbxActionButtonDirective, selector: "[dbxActionButton]" }, { kind: "component", type: i5.DbxButtonComponent, selector: "dbx-button", inputs: ["type", "basic", "raised", "stroked", "flat", "iconOnly", "color", "spinnerColor", "customButtonColor", "customTextColor", "customSpinnerColor"] }, { kind: "directive", type: i5.DbxButtonSpacerDirective, selector: "dbx-button-spacer,[dbxButtonSpacer]" }, { kind: "directive", type: i6.DbxActionDirective, selector: "dbx-action,[dbxAction],dbx-action-context,[dbxActionContext]", exportAs: ["action", "dbxAction"] }, { kind: "directive", type: i6.DbxActionHandlerDirective, selector: "[dbxActionHandler]", inputs: ["dbxActionHandler"] }, { kind: "directive", type: i6.DbxActionValueDirective, selector: "[dbxActionValue]", inputs: ["dbxActionValue"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] });
318
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormSourceSelectFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
319
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DbxFormSourceSelectFieldComponent, isStandalone: true, selector: "dbx-form-sourceselectfield", viewQueries: [{ propertyName: "buttonElement", first: true, predicate: ["button"], descendants: true, read: ElementRef, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"dbx-source-select-field\">\n <div class=\"dbx-source-select-field-content\">\n <mat-select class=\"dbx-source-select-field-select\" [id]=\"id\" [formControl]=\"formControl\" [multiple]=\"props.multiple\">\n @for (value of nonGroupedValuesSignal(); track value.value) {\n <mat-option [value]=\"value.value\">\n {{ value.label }}\n </mat-option>\n }\n @for (optionGroup of groupedOptionsSignal(); track optionGroup.label) {\n <mat-optgroup [label]=\"optionGroup.label\">\n @for (value of optionGroup.values; track value.value) {\n <mat-option [value]=\"value.value\">\n {{ value.label }}\n </mat-option>\n }\n </mat-optgroup>\n }\n </mat-select>\n @if (showOpenSourceButton) {\n <dbx-button-spacer></dbx-button-spacer>\n <dbx-action dbxActionValue [dbxActionHandler]=\"handleSelectOptions\" class=\"dbx-source-select-field-button\">\n <dbx-button #button dbxActionButton [fab]=\"true\" [iconOnly]=\"true\" [icon]=\"selectButtonIcon\"></dbx-button>\n </dbx-action>\n }\n </div>\n <dbx-loading class=\"dbx-source-select-field-loading\" [linear]=\"true\" [context]=\"context\"></dbx-loading>\n</div>\n", dependencies: [{ kind: "component", type: MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: DbxButtonComponent, selector: "dbx-button", inputs: ["type", "color", "spinnerColor", "customButtonColor", "customTextColor", "customSpinnerColor", "basic", "raised", "stroked", "flat", "iconOnly", "fab"] }, { kind: "component", type: MatOptgroup, selector: "mat-optgroup", inputs: ["label", "disabled"], exportAs: ["matOptgroup"] }, { kind: "directive", type: DbxButtonSpacerDirective, selector: "dbx-button-spacer,[dbxButtonSpacer]" }, { kind: "ngmodule", type: DbxActionModule }, { kind: "directive", type: i2.DbxActionDirective, selector: "dbx-action,[dbxAction],dbx-action-context,[dbxActionContext]", exportAs: ["action", "dbxAction"] }, { kind: "directive", type: i2.DbxActionHandlerDirective, selector: "[dbxActionHandler]", inputs: ["dbxActionHandler"] }, { kind: "directive", type: i2.DbxActionValueDirective, selector: "dbxActionValue,[dbxActionValue]", inputs: ["dbxActionValue"] }, { kind: "directive", type: i2.DbxActionButtonDirective, selector: "[dbxActionButton]" }, { kind: "component", type: DbxLoadingComponent, selector: "dbx-loading", inputs: ["padding", "show", "text", "mode", "color", "diameter", "linear", "loading", "error", "context"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
318
320
  }
319
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormSourceSelectFieldComponent, decorators: [{
321
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormSourceSelectFieldComponent, decorators: [{
320
322
  type: Component,
321
- args: [{ template: "<div class=\"dbx-source-select-field\">\n <div class=\"dbx-source-select-field-content\">\n <mat-select class=\"dbx-source-select-field-select\" [id]=\"id\" [formControl]=\"formControl\" [multiple]=\"props.multiple\">\n <mat-option *ngFor=\"let value of nonGroupedValues$ | async\" [value]=\"value.value\">\n {{ value.label }}\n </mat-option>\n <mat-optgroup *ngFor=\"let optionGroup of groupedOptions$ | async\" [label]=\"optionGroup.label\">\n <mat-option *ngFor=\"let value of optionGroup.values\" [value]=\"value.value\">\n {{ value.label }}\n </mat-option>\n </mat-optgroup>\n </mat-select>\n <ng-container *ngIf=\"showOpenSourceButton\">\n <dbx-button-spacer></dbx-button-spacer>\n <dbx-action dbxActionValue [dbxActionHandler]=\"handleSelectOptions\" class=\"dbx-source-select-field-button\">\n <dbx-button #button dbxActionButton [iconOnly]=\"true\" [icon]=\"selectButtonIcon\"></dbx-button>\n </dbx-action>\n </ng-container>\n </div>\n <dbx-loading class=\"dbx-source-select-field-loading\" [linear]=\"true\" [context]=\"context\"></dbx-loading>\n</div>\n" }]
322
- }], propDecorators: { buttonElement: [{
323
- type: ViewChild,
324
- args: ['button', { read: ElementRef, static: false }]
325
- }] } });
326
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlc2VsZWN0LmZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1mb3JtL3NyYy9saWIvZm9ybWx5L2ZpZWxkL3NlbGVjdGlvbi9zb3VyY2VzZWxlY3Qvc291cmNlc2VsZWN0LmZpZWxkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1mb3JtL3NyYy9saWIvZm9ybWx5L2ZpZWxkL3NlbGVjdGlvbi9zb3VyY2VzZWxlY3Qvc291cmNlc2VsZWN0LmZpZWxkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQWdCLDhCQUE4QixFQUFFLHFCQUFxQixFQUFnQyxxQkFBcUIsRUFBRSxrQkFBa0IsRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLGdDQUFnQyxFQUFFLG1CQUFtQixFQUFFLHFCQUFxQixFQUFvQixNQUFNLGVBQWUsQ0FBQztBQUN2VCxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBcUIsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxlQUFlLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBYyxhQUFhLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hLLE9BQU8sRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLHNCQUFzQixFQUFFLFNBQVMsRUFBRSxrQkFBa0IsRUFBUyxXQUFXLEVBQWdCLGNBQWMsRUFBRSxvQkFBb0IsRUFBRSxpQkFBaUIsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuUCxPQUFPLEVBQUUsU0FBUyxFQUFvQixNQUFNLGlDQUFpQyxDQUFDOzs7Ozs7OztBQTZDOUU7O0dBRUc7QUFJSCxNQUFNLE9BQU8saUNBQXNGLFNBQVEsU0FBd0Q7SUFDaEosYUFBYSxHQUFHLElBQUksa0JBQWtCLEVBQUUsQ0FBQztJQUN6Qyx1QkFBdUIsR0FBRyxJQUFJLGtCQUFrQixFQUFFLENBQUM7SUFDbkQsaUJBQWlCLEdBQUcsSUFBSSxlQUFlLENBQWtDLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQztJQUNwRixlQUFlLEdBQUcsSUFBSSxlQUFlLENBQXlDLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQztJQUV6RixlQUFlLEdBQUcsSUFBSSxlQUFlLENBQThCLFNBQVMsQ0FBQyxDQUFDO0lBQzlFLGVBQWUsR0FBRyxJQUFJLGVBQWUsQ0FBaUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUM1RyxZQUFZLEdBQUcsSUFBSSxlQUFlLENBQWlELFNBQVMsQ0FBQyxDQUFDO0lBRy9HLGFBQWEsQ0FBYztJQUVsQixZQUFZLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUV4RCx3QkFBd0IsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FDeEQsU0FBUyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFDM0UsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUNmLENBQUM7SUFFTyxPQUFPLEdBQW9CLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLG1CQUFtQixDQUFDLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFeEcsc0JBQXNCLEdBQW9CLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUNsRSxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLEVBQUU7UUFDbkIsSUFBSSxNQUFNLEdBQVcsR0FBRyxDQUFDO1FBRXpCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLEVBQUU7WUFDdEMsTUFBTSxHQUFHLFlBQVksQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUM7U0FDcEM7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDLEVBQUUsSUFBSSxHQUFHLEVBQUssQ0FBQyxFQUNoQixvQkFBb0IsRUFBRSxFQUN0QixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFDekIsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUNmLENBQUM7SUFFTyxrQ0FBa0MsR0FBd0QsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FDakksb0JBQW9CLEVBQUUsRUFDdEIsU0FBUyxDQUFDLENBQUMsTUFBVyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsOEJBQThCLENBQUMsTUFBTSxDQUFDLENBQUMsRUFDdkUsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUNmLENBQUM7SUFFTyxZQUFZLEdBQTZELElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUN0RyxXQUFXLEVBQUUsRUFDYixTQUFTLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRTtRQUN2QixNQUFNLEVBQUUsV0FBVyxFQUFFLEdBQUcsSUFBSSxDQUFDO1FBRTdCLE9BQU8sVUFBVSxDQUFDLElBQUksQ0FDcEIsU0FBUyxDQUFDLENBQUMsT0FBb0MsRUFBRSxFQUFFO1lBQ2pELE1BQU0sU0FBUyxHQUF3RCxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFL0osSUFBSSxTQUFTLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtnQkFDMUIsT0FBTyxFQUFFLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7YUFDOUI7aUJBQU07Z0JBQ0wsT0FBTyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUNsQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtvQkFDUixNQUFNLGdCQUFnQixHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLDhCQUE4QixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQzVFLE1BQU0sT0FBTyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztvQkFDMUQsTUFBTSxLQUFLLEdBQW1DLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO3dCQUN2RSxNQUFNLEtBQUssR0FBaUM7NEJBQzFDLEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSzs0QkFDZCxNQUFNLEVBQUcsQ0FBQyxDQUFDLEtBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7eUJBQzdFLENBQUM7d0JBRUYsT0FBTyxLQUFLLENBQUM7b0JBQ2YsQ0FBQyxDQUFDLENBQUM7b0JBRUgsT0FBTzt3QkFDTCxPQUFPO3dCQUNQLEtBQUs7cUJBQ04sQ0FBQztnQkFDSixDQUFDLENBQUMsQ0FDSCxDQUFDO2FBQ0g7UUFDSCxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUVPLGVBQWUsR0FBNkMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQzVGLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsRUFDM0UsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7UUFDUixNQUFNLEtBQUssR0FBaUM7WUFDMUMsS0FBSyxFQUFFLEVBQUU7WUFDVCxNQUFNLEVBQUUsQ0FBQyxDQUFDLE1BQU07U0FDakIsQ0FBQztRQUVGLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQyxDQUFDLEVBQ0YsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUNmLENBQUM7SUFFTyw0QkFBNEIsR0FBNkUsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQzdLLEdBQUcsQ0FBQyxDQUFDLENBQUMsbUJBQW1CLEVBQUUsV0FBVyxDQUFDLEVBQUUsRUFBRTtRQUN6QyxNQUFNLGdCQUFnQixHQUFHLFdBQVcsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO1FBQ2pELE1BQU0sS0FBSyxHQUFtQyxDQUFDLG1CQUFtQixFQUFFLEdBQUcsZ0JBQWdCLENBQUMsQ0FBQztRQUV6RixNQUFNLE1BQU0sR0FBaUU7WUFDM0UsT0FBTyxFQUFFLFdBQVcsQ0FBQyxPQUFPO1lBQzVCLEtBQUs7U0FDTixDQUFDO1FBRUYsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQyxDQUFDLEVBQ0YsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUNmLENBQUM7SUFFTyxvQkFBb0IsR0FBNkQsSUFBSSxDQUFDLGtDQUFrQyxDQUFDLElBQUksQ0FDcEksU0FBUyxDQUFDLENBQUMsNEJBQXFFLEVBQUUsRUFBRTtRQUNsRixJQUFJLDhCQUE4QixDQUFDLDRCQUE0QixDQUFDLEVBQUU7WUFDaEUsTUFBTSxxQkFBcUIsR0FBaUM7Z0JBQzFELEtBQUssRUFBRSxFQUFFO2dCQUNULE1BQU0sRUFBRSw0QkFBNEIsQ0FBQyxLQUFLO2FBQzNDLENBQUM7WUFFRixPQUFPLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxJQUFJLENBQzNDLEdBQUcsQ0FBQyxDQUFDLFlBQVksRUFBRSxFQUFFO2dCQUNuQixNQUFNLFNBQVMsR0FBbUMsQ0FBQyxxQkFBcUIsRUFBRSxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFFakcsTUFBTSxNQUFNLEdBQWlEO29CQUMzRCxPQUFPLEVBQUUsNEJBQTRCLENBQUMsT0FBTyxJQUFJLFlBQVksQ0FBQyxPQUFPO29CQUNyRSxLQUFLLEVBQUUsU0FBUztpQkFDakIsQ0FBQztnQkFFRixPQUFPLE1BQU0sQ0FBQztZQUNoQixDQUFDLENBQUMsQ0FDSCxDQUFDO1NBQ0g7YUFBTTtZQUNMLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBaUMsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUM3RDtJQUNILENBQUMsQ0FBQyxFQUNGLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FDZixDQUFDO0lBRU8scUJBQXFCLEdBQW9FLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQzlILGdDQUFnQyxDQUM5QixTQUFTLENBQUMsQ0FBQyxNQUFzQyxFQUFFLEVBQUU7UUFDbkQsTUFBTSx1QkFBdUIsR0FBRyxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQWdELENBQUM7UUFFMUgsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLEdBQUcsRUFBSyxDQUFDO1FBQ3ZDLE1BQU0sZUFBZSxHQUE4QixFQUFFLENBQUM7UUFFdEQsTUFBTSxzQkFBc0IsR0FBbUMsRUFBRSxDQUFDO1FBRWxFLG9DQUFvQztRQUNwQyxLQUFLLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLE9BQU8sRUFBRSxDQUFDO2FBQzFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDdkMsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLEVBQUUsRUFBRTtZQUMzQixNQUFNLE1BQU0sR0FBOEIsRUFBRSxDQUFDO1lBRTdDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDdkIsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRTtvQkFDbkMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLEVBQUU7d0JBQzdDLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7d0JBQ3pCLGVBQWUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7d0JBQ2xDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7cUJBQzFDO2dCQUNILENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7WUFFSCxJQUFJLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO2dCQUNyQixzQkFBc0IsQ0FBQyxJQUFJLENBQUM7b0JBQzFCLEtBQUs7b0JBQ0wsTUFBTTtpQkFDUCxDQUFDLENBQUM7YUFDSjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUwsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLCtCQUErQixDQUFDLGVBQWUsQ0FBQyxDQUFDLElBQUksQ0FDcEUsR0FBRyxDQUFDLENBQUMsYUFBYSxFQUFFLEVBQUU7WUFDcEIsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLEdBQUcsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRXpFLE1BQU0sYUFBYSxHQUEwQyxzQkFBc0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRTtnQkFDckcsTUFBTSxNQUFNLEdBQUcsc0JBQXNCLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUVuRyxPQUFPO29CQUNMLEtBQUssRUFBRSxVQUFVLENBQUMsS0FBSztvQkFDdkIsTUFBTTtpQkFDUCxDQUFDO1lBQ0osQ0FBQyxDQUFDLENBQUM7WUFFSCxPQUFPLGFBQWEsQ0FBQztRQUN2QixDQUFDLENBQUMsQ0FDSCxDQUFDO1FBRUYsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDLENBQUMsQ0FDSCxFQUNELFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FDZixDQUFDO0lBRU8sZ0JBQWdCLEdBQXNELElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMscUJBQXFCLEVBQUUsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUUvSSxRQUFRLEdBQTBDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQ25GLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1FBQ1IsTUFBTSxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLGVBQWUsRUFBRSxHQUFHLGNBQWMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUUxRyxNQUFNLE1BQU0sR0FBOEI7WUFDeEMsZ0JBQWdCLEVBQUUsZUFBZSxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sSUFBSSxFQUFFO1lBQ2xELGFBQWE7U0FDZCxDQUFDO1FBRUYsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQyxDQUFDLEVBQ0YsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUNmLENBQUM7SUFFTyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7SUFDdkUsZUFBZSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7SUFFM0UsSUFBSSxpQkFBaUI7UUFDbkIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxJQUFJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDO0lBQy9CLENBQUM7SUFFRCxJQUFJLG9CQUFvQjtRQUN0QixPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUM7SUFDaEMsQ0FBQztJQUVELElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUM7SUFDaEMsQ0FBQztJQUVELElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUM7SUFDL0IsQ0FBQztJQUVELElBQUksZUFBZTtRQUNqQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDO0lBQ3BDLENBQUM7SUFFRCxJQUFJLGdCQUFnQjtRQUNsQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLElBQUksS0FBSyxDQUFDO0lBQzlDLENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxJQUFJLEtBQUssQ0FBQztJQUN0QyxDQUFDO0lBRUQsSUFBSSxxQkFBcUI7UUFDdkIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLHFCQUFxQixDQUFDO0lBQzFDLENBQUM7SUFFRCw4QkFBOEIsQ0FBQyxNQUFXO1FBQ3hDLE9BQU8sSUFBSSxDQUFDLDZCQUE2QixDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FDcEQsR0FBRyxDQUFDLENBQUMsa0JBQTZDLEVBQUUsRUFBRSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLEVBQ3pGLHFCQUFxQixFQUFFLEVBQ3ZCLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FDZixDQUFDO0lBQ0osQ0FBQztJQUVELDZCQUE2QixDQUFDLE1BQVc7UUFDdkMsTUFBTSxFQUFFLFdBQVcsRUFBRSxHQUFHLElBQUksQ0FBQztRQUU3QixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQ2hDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ25CLE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBeUMsQ0FBQyxDQUFDO1lBRXBILE1BQU07WUFDSixFQUFFO1lBQ0YsUUFBUSxFQUFFLE9BQU8sRUFDakIsUUFBUSxFQUFFLFNBQVMsRUFDcEIsR0FBRyxjQUFjLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUV4RCxJQUFJLEdBQTBDLENBQUM7WUFFL0MsSUFBSSxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDeEIseUJBQXlCO2dCQUN6QixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBRWxFLEdBQUcsR0FBRyxhQUFhLENBQUMsSUFBSSxDQUN0QixLQUFLLEVBQUUsRUFDUCxHQUFHLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRTtvQkFDbEIsTUFBTSxrQkFBa0IsR0FBOEIsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO29CQUN0SCxNQUFNLGlCQUFpQixHQUFHLElBQUksR0FBRyxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFFL0UsMERBQTBEO29CQUMxRCxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUUzRCw0QkFBNEI7b0JBQzVCLE1BQU0sZ0JBQWdCLEdBQUcsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUV2Rix5QkFBeUI7b0JBQ3pCLE9BQU8sZ0JBQWdCLENBQUM7Z0JBQzFCLENBQUMsQ0FBQyxDQUNILENBQUM7YUFDSDtpQkFBTTtnQkFDTCwrQ0FBK0M7Z0JBQy9DLEdBQUcsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNwQztZQUVELE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRCxnQ0FBZ0MsQ0FBQyxNQUFpQztRQUNoRSxPQUFPLElBQUksQ0FBQywrQkFBK0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQ3RELEdBQUcsQ0FBQyxDQUFDLGFBQStDLEVBQUUsRUFBRSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsQ0FBQyxFQUN0RixxQkFBcUIsRUFBRSxFQUN2QixXQUFXLENBQUMsQ0FBQyxDQUFDLENBQ2YsQ0FBQztJQUNKLENBQUM7SUFFRCwrQkFBK0IsQ0FBQyxNQUFpQztRQUMvRCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUM5QixRQUFRLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUNuQixNQUFNLGFBQWEsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFpQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQXlFLENBQUMsQ0FBQztZQUVyTixNQUFNLFVBQVUsR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM5RCxNQUFNLFlBQVksR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3hELElBQUksR0FBaUQsQ0FBQztZQUV0RCxJQUFJLFlBQVksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO2dCQUMzQiw0QkFBNEI7Z0JBQzVCLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUU3RSxHQUFHLEdBQUcsZ0JBQWdCLENBQUMsSUFBSSxDQUN6QixLQUFLLEVBQUUsRUFDUCxHQUFHLENBQUMsQ0FBQyxjQUFjLEVBQUUsRUFBRTtvQkFDckIsTUFBTSxxQkFBcUIsR0FBMkMsY0FBbUQsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO29CQUNuSixNQUFNLGlCQUFpQixHQUFHLElBQUksR0FBRyxDQUFDLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBRXZGLDBEQUEwRDtvQkFDMUQscUJBQXFCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBRW5FLDRCQUE0QjtvQkFDNUIsTUFBTSxnQkFBZ0IsR0FBRyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksaUJBQWlCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBRXZGLHlCQUF5QjtvQkFDekIsT0FBTyxnQkFBZ0IsQ0FBQztnQkFDMUIsQ0FBQyxDQUFDLENBQ0gsQ0FBQzthQUNIO2lCQUFNO2dCQUNMLGdEQUFnRDtnQkFDaEQsR0FBRyxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ3ZDO1lBRUQsT0FBTyxHQUFHLENBQUM7UUFDYixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVRLE9BQU8sR0FBRyxtQkFBbUIsQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxDQUFDO0lBRTVFLFFBQVE7UUFDTixNQUFNLEVBQUUsV0FBVyxFQUFFLEdBQUcsSUFBSSxDQUFDO1FBRTdCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFFbEQsSUFBSSxJQUFJLENBQUMscUJBQXFCLElBQUksSUFBSSxFQUFFO1lBQ3RDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUM5SDtRQUVELElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUU1QyxpRkFBaUY7UUFDakYsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLDRCQUE0QixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ2xGLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUM7WUFDN0MsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzNFLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVRLFdBQVc7UUFDbEIsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDN0IsSUFBSSxDQUFDLHVCQUF1QixDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNsQyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDaEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNoQyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVRLG1CQUFtQixHQUE4QixDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsRUFBRTtRQUN2RSxNQUFNLEVBQUUsVUFBVSxFQUFFLEdBQUcsSUFBSSxDQUFDO1FBRTVCLElBQUksVUFBVSxFQUFFO1lBQ2QsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUM7WUFDaEQsTUFBTSxTQUFTLEdBQUcsVUFBVSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztZQUN6QyxPQUFPLENBQUMsMEJBQTBCLENBQ2hDLFNBQVMsQ0FBQyxJQUFJLENBQ1osS0FBSyxFQUFFLEVBQ1AsR0FBRyxDQUFDLENBQUMsTUFBdUMsRUFBRSxFQUFFO2dCQUM5QyxNQUFNLFdBQVcsR0FBRyxXQUFXLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO2dCQUVqRSxJQUFJLFdBQVcsQ0FBQyxNQUFNLEVBQUU7b0JBQ3RCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztpQkFDdEM7Z0JBRUQsSUFBSSxNQUFNLENBQUMsR0FBRyxFQUFFO29CQUNkLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUNsRTtxQkFBTSxJQUFJLE1BQU0sQ0FBQyxNQUFNLEVBQUU7b0JBQ3hCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQ3ZFO1lBQ0gsQ0FBQyxDQUFDLENBQ0gsQ0FDRixDQUFDO1NBQ0g7YUFBTTtZQUNMLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUNsQjtJQUNILENBQUMsQ0FBQztJQUVNLGtCQUFrQixDQUFDLEtBQVU7UUFDbkMsTUFBTSxFQUFFLFdBQVcsRUFBRSxHQUFHLElBQUksQ0FBQztRQUM3QixNQUFNLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUM7UUFFOUUsTUFBTSxnQkFBZ0IsR0FBOEIsRUFBRSxDQUFDO1FBQ3ZELE1BQU0sU0FBUyxHQUFHLElBQUksR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRXpDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNsQixNQUFNLEtBQUssR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFN0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ3pCLGdCQUFnQixDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztnQkFDMUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUN0QjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxnQkFBZ0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQy9CLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDO2dCQUN4QixNQUFNLEVBQUUsQ0FBQyxHQUFHLElBQUksRUFBRSxHQUFHLGdCQUFnQixDQUFDO2dCQUN0QyxTQUFTLEVBQUUsU0FBUzthQUNyQixDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7SUFFTyxpQkFBaUIsQ0FBQyxNQUFXO1FBQ25DLE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JELE1BQU0sYUFBYSxHQUFHLENBQUMsR0FBRyxZQUFZLEVBQUUsR0FBRyxNQUFNLENBQUMsQ0FBQztRQUNuRCxJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFTyxlQUFlLENBQUMsYUFBa0I7UUFDeEMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxnRUFBZ0U7UUFDeEksSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUMvQixJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ25DLENBQUM7d0dBL2JVLGlDQUFpQzs0RkFBakMsaUNBQWlDLHdJQVVmLFVBQVUsb0RDakV6Qyxpb0NBcUJBOzs0RkRrQ2EsaUNBQWlDO2tCQUg3QyxTQUFTOzs4QkFjUixhQUFhO3NCQURaLFNBQVM7dUJBQUMsUUFBUSxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZmlsdGVyTWF5YmUsIExvYWRpbmdTdGF0ZSwgaXNMb2FkaW5nU3RhdGVXaXRoRGVmaW5lZFZhbHVlLCBpc0xvYWRpbmdTdGF0ZUxvYWRpbmcsIExvYWRpbmdTdGF0ZVdpdGhEZWZpbmVkVmFsdWUsIHN0YXJ0V2l0aEJlZ2luTG9hZGluZywgU3Vic2NyaXB0aW9uT2JqZWN0LCBzdWNjZXNzUmVzdWx0LCBiZWdpbkxvYWRpbmcsIG1hcExvYWRpbmdTdGF0ZVZhbHVlV2l0aE9wZXJhdG9yLCBsb2FkaW5nU3RhdGVDb250ZXh0LCB2YWx1ZUZyb21Mb2FkaW5nU3RhdGUsIFdvcmtVc2luZ0NvbnRleHQgfSBmcm9tICdAZGVyZWVrYi9yeGpzJztcbmltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCwgc3dpdGNoTWFwLCBzaGFyZVJlcGxheSwgc3RhcnRXaXRoLCBtZXJnZU1hcCwgc2NhbiwgQmVoYXZpb3JTdWJqZWN0LCB0YXAsIGZpcnN0LCBPYnNlcnZhYmxlLCBjb21iaW5lTGF0ZXN0LCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgYWRkVG9TZXRDb3B5LCBhc0FycmF5LCBjb252ZXJ0TWF5YmVUb0FycmF5LCBmaWx0ZXJNYXliZUFycmF5VmFsdWVzLCBsYXN0VmFsdWUsIG1ha2VWYWx1ZXNHcm91cE1hcCwgTWF5YmUsIG1lcmdlQXJyYXlzLCBQcmltYXRpdmVLZXksIHNlcGFyYXRlVmFsdWVzLCBzZXRDb250YWluc0FsbFZhbHVlcywgc2V0c0FyZUVxdWl2YWxlbnQsIHNvcnRCeVN0cmluZ0Z1bmN0aW9uIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5pbXBvcnQgeyBGaWVsZFR5cGUsIEZvcm1seUZpZWxkUHJvcHMgfSBmcm9tICdAbmd4LWZvcm1seS9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IEZpZWxkVHlwZUNvbmZpZyB9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUnO1xuaW1wb3J0IHsgU291cmNlU2VsZWN0VmFsdWVNZXRhTG9hZGVyLCBTb3VyY2VTZWxlY3RNZXRhVmFsdWVSZWFkZXIsIFNvdXJjZVNlbGVjdE9wZW5GdW5jdGlvbiwgU291cmNlU2VsZWN0TG9hZFNvdXJjZXNGdW5jdGlvbiwgU291cmNlU2VsZWN0TG9hZFNvdXJjZSwgU291cmNlU2VsZWN0TG9hZFNvdXJjZUxvYWRpbmdTdGF0ZSwgU291cmNlU2VsZWN0RGlzcGxheVZhbHVlLCBTb3VyY2VTZWxlY3RWYWx1ZSwgU291cmNlU2VsZWN0RGlzcGxheUZ1bmN0aW9uLCBTb3VyY2VTZWxlY3REaXNwbGF5VmFsdWVHcm91cCwgU291cmNlU2VsZWN0VmFsdWVHcm91cCwgU291cmNlU2VsZWN0T3B0aW9ucywgU291cmNlU2VsZWN0T3BlblNvdXJjZVJlc3VsdCB9IGZyb20gJy4vc291cmNlc2VsZWN0JztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuZXhwb3J0IGludGVyZmFjZSBTb3VyY2VTZWxlY3RGaWVsZFByb3BzPFQgZXh0ZW5kcyBQcmltYXRpdmVLZXkgPSBQcmltYXRpdmVLZXksIE0gPSB1bmtub3duPiBleHRlbmRzIEZvcm1seUZpZWxkUHJvcHMge1xuICAvKipcbiAgICogRnVuY3Rpb24gdG8gb3BlbiB0aGUgc291cmNlIGFuZCByZXF1ZXN0IHZhbHVlcy5cbiAgICovXG4gIHJlYWRvbmx5IG9wZW5Tb3VyY2U/OiBTb3VyY2VTZWxlY3RPcGVuRnVuY3Rpb248TT47XG4gIC8qKlxuICAgKiBMb2FkcyB0aGUgc291cmNlcyB0byBkaXNwbGF5IGVudHJpZXMgZnJvbS5cbiAgICovXG4gIHJlYWRvbmx5IGxvYWRTb3VyY2VzPzogU291cmNlU2VsZWN0TG9hZFNvdXJjZXNGdW5jdGlvbjxNPjtcbiAgLyoqXG4gICAqIFJlYWRzIHRoZSB2YWx1ZSBmcm9tIGEgbWV0YSB2YWx1ZS5cbiAgICovXG4gIHJlYWRvbmx5IHZhbHVlUmVhZGVyOiBTb3VyY2VTZWxlY3RNZXRhVmFsdWVSZWFkZXI8VCwgTT47XG4gIC8qKlxuICAgKiBMb2FkcyBtZXRhZGF0YSBmb3IgdGhlIGlucHV0IHZhbHVlcy5cbiAgICovXG4gIHJlYWRvbmx5IG1ldGFMb2FkZXI6IFNvdXJjZVNlbGVjdFZhbHVlTWV0YUxvYWRlcjxULCBNPjtcbiAgLyoqXG4gICAqIFVzZWQgZm9yIGJ1aWxkaW5nIGEgZGlzcGxheSB2YWx1ZSBnaXZlbiB0aGUgaW5wdXQuXG4gICAqL1xuICByZWFkb25seSBkaXNwbGF5Rm9yVmFsdWU6IFNvdXJjZVNlbGVjdERpc3BsYXlGdW5jdGlvbjxULCBNPjtcbiAgLyoqXG4gICAqIFNlbGVjdCBidXR0b24gaWNvblxuICAgKi9cbiAgcmVhZG9ubHkgc2VsZWN0QnV0dG9uSWNvbj86IHN0cmluZztcbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRoZSBzZWxlY3Rpb24gaXMgYXMgYW4gYXJyYXkuXG4gICAqL1xuICByZWFkb25seSBtdWx0aXBsZT86IGJvb2xlYW47XG4gIC8qKlxuICAgKiAoT3B0aW9uYWwpIG9ic2VydmFibGUgdGhhdCB3aWxsIHRyaWdnZXIgdGhlIGNsZWFyaW5nIG9mIGFsbCBjYWNoZWQgZGlzcGxheSB2YWx1ZXMuXG4gICAqL1xuICByZWFkb25seSByZWZyZXNoRGlzcGxheVZhbHVlcyQ/OiBPYnNlcnZhYmxlPHVua25vd24+O1xufVxuXG5pbnRlcmZhY2UgU2VsZWN0RmllbGRPcGVuU291cmNlTWFwPFQgZXh0ZW5kcyBQcmltYXRpdmVLZXkgPSBQcmltYXRpdmVLZXksIE0gPSB1bmtub3duPiB7XG4gIHJlYWRvbmx5IHZhbHVlczogU291cmNlU2VsZWN0VmFsdWU8VCwgTT5bXTtcbiAgcmVhZG9ubHkgdmFsdWVzU2V0OiBTZXQ8VD47XG59XG5cbi8qKlxuICogQ29tcG9uZW50IHRoYXQgZGlzcGxheXMgYSBzZWxlY3QgdmlldyAobXVsdGkgb3Igbm90KVxuICovXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGVVcmw6ICdzb3VyY2VzZWxlY3QuZmllbGQuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIERieEZvcm1Tb3VyY2VTZWxlY3RGaWVsZENvbXBvbmVudDxUIGV4dGVuZHMgUHJpbWF0aXZlS2V5ID0gUHJpbWF0aXZlS2V5LCBNID0gdW5rbm93bj4gZXh0ZW5kcyBGaWVsZFR5cGU8RmllbGRUeXBlQ29uZmlnPFNvdXJjZVNlbGVjdEZpZWxkUHJvcHM8VCwgTT4+PiBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSByZWFkb25seSBfY2FjaGVNZXRhU3ViID0gbmV3IFN1YnNjcmlwdGlvbk9iamVjdCgpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9jbGVhckRpc3BsYXlIYXNoTWFwU3ViID0gbmV3IFN1YnNjcmlwdGlvbk9iamVjdCgpO1xuICBwcml2YXRlIHJlYWRvbmx5IF92YWx1ZU1ldGFIYXNoTWFwID0gbmV3IEJlaGF2aW9yU3ViamVjdDxNYXA8VCwgU291cmNlU2VsZWN0VmFsdWU8VCwgTT4+PihuZXcgTWFwKCkpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9kaXNwbGF5SGFzaE1hcCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TWFwPFQsIFNvdXJjZVNlbGVjdERpc3BsYXlWYWx1ZTxULCBNPj4+KG5ldyBNYXAoKSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfZm9ybUNvbnRyb2xPYnMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE1heWJlPEFic3RyYWN0Q29udHJvbDxUW10+Pj4odW5kZWZpbmVkKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfZnJvbU9wZW5Tb3VyY2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFNlbGVjdEZpZWxkT3BlblNvdXJjZU1hcDxULCBNPj4oeyB2YWx1ZXM6IFtdLCB2YWx1ZXNTZXQ6IG5ldyBTZXQoKSB9KTtcbiAgcHJpdmF0ZSByZWFkb25seSBfbG9hZFNvdXJjZXMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE1heWJlPE9ic2VydmFibGU8U291cmNlU2VsZWN0TG9hZFNvdXJjZTxNPltdPj4+KHVuZGVmaW5lZCk7XG5cbiAgQFZpZXdDaGlsZCgnYnV0dG9uJywgeyByZWFkOiBFbGVtZW50UmVmLCBzdGF0aWM6IGZhbHNlIH0pXG4gIGJ1dHRvbkVsZW1lbnQhOiBFbGVtZW50UmVmO1xuXG4gIHJlYWRvbmx5IGZvcm1Db250cm9sJCA9IHRoaXMuX2Zvcm1Db250cm9sT2JzLnBpcGUoZmlsdGVyTWF5YmUoKSk7XG5cbiAgcmVhZG9ubHkgY3VycmVudEZvcm1Db250cm9sVmFsdWUkID0gdGhpcy5mb3JtQ29udHJvbCQucGlwZShcbiAgICBzd2l0Y2hNYXAoKGNvbnRyb2wpID0+IGNvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUoc3RhcnRXaXRoKGNvbnRyb2wudmFsdWUpKSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSB2YWx1ZXMkOiBPYnNlcnZhYmxlPFRbXT4gPSB0aGlzLmN1cnJlbnRGb3JtQ29udHJvbFZhbHVlJC5waXBlKG1hcChjb252ZXJ0TWF5YmVUb0FycmF5KSwgc2hhcmVSZXBsYXkoMSkpO1xuXG4gIHJlYWRvbmx5IGFsbFZhbHVlc0V2ZXJTZWxlY3RlZCQ6IE9ic2VydmFibGU8VFtdPiA9IHRoaXMudmFsdWVzJC5waXBlKFxuICAgIHNjYW4oKGFjYywgdmFsdWVzKSA9PiB7XG4gICAgICBsZXQgcmVzdWx0OiBTZXQ8VD4gPSBhY2M7XG5cbiAgICAgIGlmICghc2V0Q29udGFpbnNBbGxWYWx1ZXMoYWNjLCB2YWx1ZXMpKSB7XG4gICAgICAgIHJlc3VsdCA9IGFkZFRvU2V0Q29weShhY2MsIHZhbHVlcyk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfSwgbmV3IFNldDxUPigpKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIG1hcCgoeCkgPT4gQXJyYXkuZnJvbSh4KSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBzb3VyY2VTZWxlY3RWYWx1ZXNGcm9tVmFsdWVzU3RhdGUkOiBPYnNlcnZhYmxlPExvYWRpbmdTdGF0ZTxTb3VyY2VTZWxlY3RWYWx1ZTxULCBNPltdPj4gPSB0aGlzLmFsbFZhbHVlc0V2ZXJTZWxlY3RlZCQucGlwZShcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHN3aXRjaE1hcCgodmFsdWVzOiBUW10pID0+IHRoaXMubG9hZFNvdXJjZVNlbGVjdFZhbHVlRm9yVmFsdWVzKHZhbHVlcykpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgbG9hZFNvdXJjZXMkOiBPYnNlcnZhYmxlPExvYWRpbmdTdGF0ZTxTb3VyY2VTZWxlY3RWYWx1ZUdyb3VwPFQsIE0+W10+PiA9IHRoaXMuX2xvYWRTb3VyY2VzLnBpcGUoXG4gICAgZmlsdGVyTWF5YmUoKSxcbiAgICBzd2l0Y2hNYXAoKGxvYWRTb3VyY2UpID0+IHtcbiAgICAgIGNvbnN0IHsgdmFsdWVSZWFkZXIgfSA9IHRoaXM7XG5cbiAgICAgIHJldHVybiBsb2FkU291cmNlLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcCgoc291cmNlczogU291cmNlU2VsZWN0TG9hZFNvdXJjZTxNPltdKSA9PiB7XG4gICAgICAgICAgY29uc3Qgc291cmNlT2JzOiBPYnNlcnZhYmxlPFNvdXJjZVNlbGVjdExvYWRTb3VyY2VMb2FkaW5nU3RhdGU8TT4+W10gPSBzb3VyY2VzLm1hcCgoeCkgPT4geC5tZXRhLnBpcGUobWFwKChtZXRhU3RhdGUpID0+ICh7IC4uLm1ldGFTdGF0ZSwgbGFiZWw6IHgubGFiZWwgfSkpKSk7XG5cbiAgICAgICAgICBpZiAoc291cmNlT2JzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIG9mKHN1Y2Nlc3NSZXN1bHQoW10pKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGNvbWJpbmVMYXRlc3Qoc291cmNlT2JzKS5waXBlKFxuICAgICAgICAgICAgICBtYXAoKHgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBzdGF0ZXNXaXRoVmFsdWVzID0geC5maWx0ZXIoKHkpID0+IGlzTG9hZGluZ1N0YXRlV2l0aERlZmluZWRWYWx1ZSh5KSk7XG4gICAgICAgICAgICAgICAgY29uc3QgbG9hZGluZyA9IHguZmluZEluZGV4KGlzTG9hZGluZ1N0YXRlTG9hZGluZykgIT09IC0xO1xuICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlOiBTb3VyY2VTZWxlY3RWYWx1ZUdyb3VwPFQsIE0+W10gPSBzdGF0ZXNXaXRoVmFsdWVzLm1hcCgoeSkgPT4ge1xuICAgICAgICAgICAgICAgICAgY29uc3QgZ3JvdXA6IFNvdXJjZVNlbGVjdFZhbHVlR3JvdXA8VCwgTT4gPSB7XG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiB5LmxhYmVsLFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZXM6ICh5LnZhbHVlIGFzIE1bXSkubWFwKChtZXRhKSA9PiAoeyBtZXRhLCB2YWx1ZTogdmFsdWVSZWFkZXIobWV0YSkgfSkpXG4gICAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgICByZXR1cm4gZ3JvdXA7XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgbG9hZGluZyxcbiAgICAgICAgICAgICAgICAgIHZhbHVlXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9KVxuICApO1xuXG4gIHJlYWRvbmx5IGZyb21PcGVuU291cmNlJDogT2JzZXJ2YWJsZTxTb3VyY2VTZWxlY3RWYWx1ZUdyb3VwPFQsIE0+PiA9IHRoaXMuX2Zyb21PcGVuU291cmNlLnBpcGUoXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKGEsIGIpID0+IHNldHNBcmVFcXVpdmFsZW50KGEudmFsdWVzU2V0LCBiLnZhbHVlc1NldCkpLFxuICAgIG1hcCgoeCkgPT4ge1xuICAgICAgY29uc3QgZ3JvdXA6IFNvdXJjZVNlbGVjdFZhbHVlR3JvdXA8VCwgTT4gPSB7XG4gICAgICAgIGxhYmVsOiAnJyxcbiAgICAgICAgdmFsdWVzOiB4LnZhbHVlc1xuICAgICAgfTtcblxuICAgICAgcmV0dXJuIGdyb3VwO1xuICAgIH0pLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgdmFsdWVHcm91cHNGcm9tU291cmNlc1N0YXRlJDogT2JzZXJ2YWJsZTxMb2FkaW5nU3RhdGVXaXRoRGVmaW5lZFZhbHVlPFNvdXJjZVNlbGVjdFZhbHVlR3JvdXA8VCwgTT5bXT4+ID0gY29tYmluZUxhdGVzdChbdGhpcy5mcm9tT3BlblNvdXJjZSQsIHRoaXMubG9hZFNvdXJjZXMkXSkucGlwZShcbiAgICBtYXAoKFtmcm9tT3BlblNvdXJjZUdyb3VwLCBsb2FkU291cmNlc10pID0+IHtcbiAgICAgIGNvbnN0IGxvYWRTb3VyY2VzVmFsdWUgPSBsb2FkU291cmNlcy52YWx1ZSA/PyBbXTtcbiAgICAgIGNvbnN0IHZhbHVlOiBTb3VyY2VTZWxlY3RWYWx1ZUdyb3VwPFQsIE0+W10gPSBbZnJvbU9wZW5Tb3VyY2VHcm91cCwgLi4ubG9hZFNvdXJjZXNWYWx1ZV07XG5cbiAgICAgIGNvbnN0IHJlc3VsdDogTG9hZGluZ1N0YXRlV2l0aERlZmluZWRWYWx1ZTxTb3VyY2VTZWxlY3RWYWx1ZUdyb3VwPFQsIE0+W10+ID0ge1xuICAgICAgICBsb2FkaW5nOiBsb2FkU291cmNlcy5sb2FkaW5nLFxuICAgICAgICB2YWx1ZVxuICAgICAgfTtcblxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9KSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGFsbFZhbHVlR3JvdXBzU3RhdGUkOiBPYnNlcnZhYmxlPExvYWRpbmdTdGF0ZTxTb3VyY2VTZWxlY3RWYWx1ZUdyb3VwPFQsIE0+W10+PiA9IHRoaXMuc291cmNlU2VsZWN0VmFsdWVzRnJvbVZhbHVlc1N0YXRlJC5waXBlKFxuICAgIHN3aXRjaE1hcCgoc291cmNlU2VsZWN0VmFsdWVzRnJvbVZhbHVlczogTG9hZGluZ1N0YXRlPFNvdXJjZVNlbGVjdFZhbHVlPFQsIE0+W10+KSA9PiB7XG4gICAgICBpZiAoaXNMb2FkaW5nU3RhdGVXaXRoRGVmaW5lZFZhbHVlKHNvdXJjZVNlbGVjdFZhbHVlc0Zyb21WYWx1ZXMpKSB7XG4gICAgICAgIGNvbnN0IHZhbHVlc0Zyb21WYWx1ZXNHcm91cDogU291cmNlU2VsZWN0VmFsdWVHcm91cDxULCBNPiA9IHtcbiAgICAgICAgICBsYWJlbDogJycsXG4gICAgICAgICAgdmFsdWVzOiBzb3VyY2VTZWxlY3RWYWx1ZXNGcm9tVmFsdWVzLnZhbHVlXG4gICAgICAgIH07XG5cbiAgICAgICAgcmV0dXJuIHRoaXMudmFsdWVHcm91cHNGcm9tU291cmNlc1N0YXRlJC5waXBlKFxuICAgICAgICAgIG1hcCgoc291cmNlc1N0YXRlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBhbGxHcm91cHM6IFNvdXJjZVNlbGVjdFZhbHVlR3JvdXA8VCwgTT5bXSA9IFt2YWx1ZXNGcm9tVmFsdWVzR3JvdXAsIC4uLnNvdXJjZXNTdGF0ZS52YWx1ZV07XG5cbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdDogTG9hZGluZ1N0YXRlPFNvdXJjZVNlbGVjdFZhbHVlR3JvdXA8VCwgTT5bXT4gPSB7XG4gICAgICAgICAgICAgIGxvYWRpbmc6IHNvdXJjZVNlbGVjdFZhbHVlc0Zyb21WYWx1ZXMubG9hZGluZyB8fCBzb3VyY2VzU3RhdGUubG9hZGluZyxcbiAgICAgICAgICAgICAgdmFsdWU6IGFsbEdyb3Vwc1xuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIG9mKGJlZ2luTG9hZGluZzxTb3VyY2VTZWxlY3RWYWx1ZUdyb3VwPFQsIE0+W10+KHt9KSk7XG4gICAgICB9XG4gICAgfSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBhbGxPcHRpb25Hcm91cHNTdGF0ZSQ6IE9ic2VydmFibGU8TG9hZGluZ1N0YXRlPFNvdXJjZVNlbGVjdERpc3BsYXlWYWx1ZUdyb3VwPFQsIE0+W10+PiA9IHRoaXMuYWxsVmFsdWVHcm91cHNTdGF0ZSQucGlwZShcbiAgICBtYXBMb2FkaW5nU3RhdGVWYWx1ZVdpdGhPcGVyYXRvcihcbiAgICAgIHN3aXRjaE1hcCgoZ3JvdXBzOiBTb3VyY2VTZWxlY3RWYWx1ZUdyb3VwPFQsIE0+W10pID0+IHtcbiAgICAgICAgY29uc3QgYWxsR3JvdXBzUmVkdWNlZEJ5TGFiZWwgPSBtYWtlVmFsdWVzR3JvdXBNYXAoZ3JvdXBzLCAoeCkgPT4geC5sYWJlbCkgYXMgTWFwPHN0cmluZywgU291cmNlU2VsZWN0VmFsdWVHcm91cDxULCBNPltdPjtcblxuICAgICAgICBjb25zdCB2YWx1ZXNFbmNvdW50ZXJlZCA9IG5ldyBTZXQ8VD4oKTtcbiAgICAgICAgY29uc3QgYWxsVW5pcXVlVmFsdWVzOiBTb3VyY2VTZWxlY3RWYWx1ZTxULCBNPltdID0gW107XG5cbiAgICAgICAgY29uc3Qgc2ltcGxpZmllZFZhbHVlc0dyb3VwczogU291cmNlU2VsZWN0VmFsdWVHcm91cDxULCBNPltdID0gW107XG5cbiAgICAgICAgLy8gc29ydCB0byBwdXQgdGhlIGJsYW5rIGxhYmVsIGZpcnN0XG4gICAgICAgIEFycmF5LmZyb20oYWxsR3JvdXBzUmVkdWNlZEJ5TGFiZWwuZW50cmllcygpKVxuICAgICAgICAgIC5zb3J0KHNvcnRCeVN0cmluZ0Z1bmN0aW9uKCh4KSA9PiB4WzBdKSlcbiAgICAgICAgICAuZm9yRWFjaCgoW2xhYmVsLCBncm91cHNdKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZXM6IFNvdXJjZVNlbGVjdFZhbHVlPFQsIE0+W10gPSBbXTtcblxuICAgICAgICAgICAgZ3JvdXBzLmZvckVhY2goKGdyb3VwKSA9PiB7XG4gICAgICAgICAgICAgIGdyb3VwLnZhbHVlcy5mb3JFYWNoKChzZWxlY3RWYWx1ZSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghdmFsdWVzRW5jb3VudGVyZWQuaGFzKHNlbGVjdFZhbHVlLnZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goc2VsZWN0VmFsdWUpO1xuICAgICAgICAgICAgICAgICAgYWxsVW5pcXVlVmFsdWVzLnB1c2goc2VsZWN0VmFsdWUpO1xuICAgICAgICAgICAgICAgICAgdmFsdWVzRW5jb3VudGVyZWQuYWRkKHNlbGVjdFZhbHVlLnZhbHVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGlmICh2YWx1ZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICBzaW1wbGlmaWVkVmFsdWVzR3JvdXBzLnB1c2goe1xuICAgICAgICAgICAgICAgIGxhYmVsLFxuICAgICAgICAgICAgICAgIHZhbHVlc1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCBvYnMgPSB0aGlzLmdldERpc3BsYXlWYWx1ZXNGb3JTZWxlY3RWYWx1ZXMoYWxsVW5pcXVlVmFsdWVzKS5waXBlKFxuICAgICAgICAgIG1hcCgoZGlzcGxheVZhbHVlcykgPT4ge1xuICAgICAgICAgICAgY29uc3QgZGlzcGxheVZhbHVlc01hcCA9IG5ldyBNYXAoZGlzcGxheVZhbHVlcy5tYXAoKHgpID0+IFt4LnZhbHVlLCB4XSkpO1xuXG4gICAgICAgICAgICBjb25zdCBkaXNwbGF5R3JvdXBzOiBTb3VyY2VTZWxlY3REaXNwbGF5VmFsdWVHcm91cDxULCBNPltdID0gc2ltcGxpZmllZFZhbHVlc0dyb3Vwcy5tYXAoKHZhbHVlR3JvdXApID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgdmFsdWVzID0gZmlsdGVyTWF5YmVBcnJheVZhbHVlcyh2YWx1ZUdyb3VwLnZhbHVlcy5tYXAoKHgpID0+IGRpc3BsYXlWYWx1ZXNNYXAuZ2V0KHgudmFsdWUpKSk7XG5cbiAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBsYWJlbDogdmFsdWVHcm91cC5sYWJlbCxcbiAgICAgICAgICAgICAgICB2YWx1ZXNcbiAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICByZXR1cm4gZGlzcGxheUdyb3VwcztcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuXG4gICAgICAgIHJldHVybiBvYnM7XG4gICAgICB9KVxuICAgICksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBhbGxPcHRpb25Hcm91cHMkOiBPYnNlcnZhYmxlPFNvdXJjZVNlbGVjdERpc3BsYXlWYWx1ZUdyb3VwPFQsIE0+W10+ID0gdGhpcy5hbGxPcHRpb25Hcm91cHNTdGF0ZSQucGlwZSh2YWx1ZUZyb21Mb2FkaW5nU3RhdGUoKSwgc2hhcmVSZXBsYXkoMSkpO1xuXG4gIHJlYWRvbmx5IG9wdGlvbnMkOiBPYnNlcnZhYmxlPFNvdXJjZVNlbGVjdE9wdGlvbnM8VCwgTT4+ID0gdGhpcy5hbGxPcHRpb25Hcm91cHMkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiB7XG4gICAgICBjb25zdCB7IGluY2x1ZGVkOiBncm91cGVkVmFsdWVzLCBleGNsdWRlZDogbm9uR3JvdXBlZEdyb3VwIH0gPSBzZXBhcmF0ZVZhbHVlcyh4LCAoeSkgPT4gQm9vbGVhbih5LmxhYmVsKSk7XG5cbiAgICAgIGNvbnN0IHJlc3VsdDogU291cmNlU2VsZWN0T3B0aW9uczxULCBNPiA9IHtcbiAgICAgICAgbm9uR3JvdXBlZFZhbHVlczogbm9uR3JvdXBlZEdyb3VwWzBdPy52YWx1ZXMgPz8gW10sXG4gICAgICAgIGdyb3VwZWRWYWx1ZXNcbiAgICAgIH07XG5cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBub25Hcm91cGVkVmFsdWVzJCA9IHRoaXMub3B0aW9ucyQucGlwZShtYXAoKHgpID0+IHgubm9uR3JvdXBlZFZhbHVlcykpO1xuICByZWFkb25seSBncm91cGVkT3B0aW9ucyQgPSB0aGlzLm9wdGlvbnMkLnBpcGUobWFwKCh4KSA9PiB4Lmdyb3VwZWRWYWx1ZXMpKTtcblxuICBnZXQgc291cmNlU2VsZWN0RmllbGQoKTogU291cmNlU2VsZWN0RmllbGRQcm9wczxULCBNPiB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHM7XG4gIH1cblxuICBnZXQgb3BlblNvdXJjZSgpIHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5vcGVuU291cmNlO1xuICB9XG5cbiAgZ2V0IHNob3dPcGVuU291cmNlQnV0dG9uKCkge1xuICAgIHJldHVybiBCb29sZWFuKHRoaXMub3BlblNvdXJjZSk7XG4gIH1cblxuICBnZXQgbG9hZFNvdXJjZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMubG9hZFNvdXJjZXM7XG4gIH1cblxuICBnZXQgdmFsdWVSZWFkZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMudmFsdWVSZWFkZXI7XG4gIH1cblxuICBnZXQgbWV0YUxvYWRlcigpIHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5tZXRhTG9hZGVyO1xuICB9XG5cbiAgZ2V0IGRpc3BsYXlGb3JWYWx1ZSgpOiBTb3VyY2VTZWxlY3REaXNwbGF5RnVuY3Rpb248VCwgTT4ge1xuICAgIHJldHVybiB0aGlzLnByb3BzLmRpc3BsYXlGb3JWYWx1ZTtcbiAgfVxuXG4gIGdldCBzZWxlY3RCdXR0b25JY29uKCkge1xuICAgIHJldHVybiB0aGlzLnByb3BzLnNlbGVjdEJ1dHRvbkljb24gPz8gJ2FkZCc7XG4gIH1cblxuICBnZXQgbXVsdGlwbGUoKSB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMubXVsdGlwbGUgfHwgZmFsc2U7XG4gIH1cblxuICBnZXQgcmVmcmVzaERpc3BsYXlWYWx1ZXMkKCkge1xuICAgIHJldHVybiB0aGlzLnByb3BzLnJlZnJlc2hEaXNwbGF5VmFsdWVzJDtcbiAgfVxuXG4gIGxvYWRTb3VyY2VTZWxlY3RWYWx1ZUZvclZhbHVlcyh2YWx1ZXM6IFRbXSk6IE9ic2VydmFibGU8TG9hZGluZ1N0YXRlPFNvdXJjZVNlbGVjdFZhbHVlPFQsIE0+W10+PiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0U291cmNlU2VsZWN0VmFsdWVGb3JWYWx1ZXModmFsdWVzKS5waXBlKFxuICAgICAgbWFwKChzb3VyY2VTZWxlY3RWYWx1ZXM6IFNvdXJjZVNlbGVjdFZhbHVlPFQsIE0+W10pID0+IHN1Y2Nlc3NSZXN1bHQoc291cmNlU2VsZWN0VmFsdWVzKSksXG4gICAgICBzdGFydFdpdGhCZWdpbkxvYWRpbmcoKSxcbiAgICAgIHNoYXJlUmVwbGF5KDEpXG4gICAgKTtcbiAgfVxuXG4gIGdldFNvdXJjZVNlbGVjdFZhbHVlRm9yVmFsdWVzKHZhbHVlczogVFtdKTogT2JzZXJ2YWJsZTxTb3VyY2VTZWxlY3RWYWx1ZTxULCBNPltdPiB7XG4gICAgY29uc3QgeyB2YWx1ZVJlYWRlciB9ID0gdGhpcztcblxuICAgIHJldHVybiB0aGlzLl92YWx1ZU1ldGFIYXNoTWFwLnBpcGUoXG4gICAgICBtZXJnZU1hcCgobWV0YU1hcCkgPT4ge1xuICAgICAgICBjb25zdCBtYXBwaW5nUmVzdWx0ID0gdmFsdWVzLm1hcCgoaGFzaCwgaSkgPT4gW2ksIGhhc2gsIG1ldGFNYXAuZ2V0KGhhc2gpXSBhcyBbbnVtYmVyLCBULCBTb3VyY2VTZWxlY3RWYWx1ZTxULCBNPl0pO1xuXG4gICAgICAgIGNvbnN0IHtcbiAgICAgICAgICAvL1xuICAgICAgICAgIGluY2x1ZGVkOiBoYXNNZXRhLFxuICAgICAgICAgIGV4Y2x1ZGVkOiBuZWVkc01ldGFcbiAgICAgICAgfSA9IHNlcGFyYXRlVmFsdWVzKG1hcHBpbmdSZXN1bHQsICh4KSA9PiBCb29sZWFuKHhbMl0pKTtcblxuICAgICAgICBsZXQgb2JzOiBPYnNlcnZhYmxlPFNvdXJjZVNlbGVjdFZhbHVlPFQsIE0+W10+O1xuXG4gICAgICAgIGlmIChuZWVkc01ldGEubGVuZ3RoID4gMCkge1xuICAgICAgICAgIC8vIEdvIGdldCB0aGUgbWV0YSB2YWx1ZS5cbiAgICAgICAgICBjb25zdCBtZXRhVmFsdWVzT2JzID0gdGhpcy5tZXRhTG9hZGVyKG5lZWRzTWV0YS5tYXAoKHgpID0+IHhbMV0pKTtcblxuICAgICAgICAgIG9icyA9IG1ldGFWYWx1ZXNPYnMucGlwZShcbiAgICAgICAgICAgIGZpcnN0KCksXG4gICAgICAgICAgICBtYXAoKG1ldGFSZXN1bHRzKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IG1ldGFSZXN1bHRzTWFwcGluZzogU291cmNlU2VsZWN0VmFsdWU8VCwgTT5bXSA9IG1ldGFSZXN1bHRzLm1hcCgobWV0YSkgPT4gKHsgbWV0YSwgdmFsdWU6IHZhbHVlUmVhZGVyKG1ldGEpIH0pKTtcbiAgICAgICAgICAgICAgY29uc3QgdmFsdWVJbmRleEhhc2hNYXAgPSBuZXcgTWFwKG1ldGFSZXN1bHRzTWFwcGluZy5tYXAoKHgpID0+IFt4LnZhbHVlLCB4XSkpO1xuXG4gICAgICAgICAgICAgIC8vIFVwZGF0ZSBtZXRhTWFwLiBObyBuZWVkIHRvIHB1c2ggYW4gdXBkYXRlIG5vdGlmaWNhdGlvbi5cbiAgICAgICAgICAgICAgbWV0YVJlc3VsdHNNYXBwaW5nLmZvckVhY2goKHgpID0+IG1ldGFNYXAuc2V0KHgudmFsdWUsIHgpKTtcblxuICAgICAgICAgICAgICAvLyBaaXAgdmFsdWVzIGJhY2sgdG9nZXRoZXIuXG4gICAgICAgICAgICAgIGNvbnN0IG5ld0Rpc3BsYXlWYWx1ZXMgPSBtYXBwaW5nUmVzdWx0Lm1hcCgoeCkgPT4geFsyXSA/PyB2YWx1ZUluZGV4SGFzaE1hcC5nZXQoeFsxXSkpO1xuXG4gICAgICAgICAgICAgIC8vIFJldHVybiBkaXNwbGF5IHZhbHVlcy5cbiAgICAgICAgICAgICAgcmV0dXJuIG5ld0Rpc3BsYXlWYWx1ZXM7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gSWYgYWxsIGRpc3BsYXkgdmFsdWVzIGFyZSBoYXNoZWQgcmV0dXJuIHRoZW1cbiAgICAgICAgICBvYnMgPSBvZihoYXNNZXRhLm1hcCgoeCkgPT4geFsyXSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG9icztcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIGxvYWREaXNwbGF5VmFsdWVzRm9yU2VsZWN0VmFsdWVzKHZhbHVlczogU291cmNlU2VsZWN0VmFsdWU8VCwgTT5bXSk6IE9ic2VydmFibGU8TG9hZGluZ1N0YXRlPFNvdXJjZVNlbGVjdERpc3BsYXlWYWx1ZTxULCBNPltdPj4ge1xuICAgIHJldHVybiB0aGlzLmdldERpc3BsYXlWYWx1ZXNGb3JTZWxlY3RWYWx1ZXModmFsdWVzKS5waXBlKFxuICAgICAgbWFwKChkaXNwbGF5VmFsdWVzOiBTb3VyY2VTZWxlY3REaXNwbGF5VmFsdWU8VCwgTT5bXSkgPT4gc3VjY2Vzc1Jlc3VsdChkaXNwbGF5VmFsdWVzKSksXG4gICAgICBzdGFydFdpdGhCZWdpbkxvYWRpbmcoKSxcbiAgICAgIHNoYXJlUmVwbGF5KDEpXG4gICAgKTtcbiAgfVxuXG4gIGdldERpc3BsYXlWYWx1ZXNGb3JTZWxlY3RWYWx1ZXModmFsdWVzOiBTb3VyY2VTZWxlY3RWYWx1ZTxULCBNPltdKTogT2JzZXJ2YWJsZTxTb3VyY2VTZWxlY3REaXNwbGF5VmFsdWU8VCwgTT5bXT4ge1xuICAgIHJldHVybiB0aGlzLl9kaXNwbGF5SGFzaE1hcC5waXBlKFxuICAgICAgbWVyZ2VNYXAoKG1ldGFNYXApID0+IHtcbiAgICAgICAgY29uc3QgbWFwcGluZ1Jlc3VsdCA9IHZhbHVlcy5tYXAoKHgpID0+IFt4LCB4LnZhbHVlXSBhcyBbU291cmNlU2VsZWN0VmFsdWU8VCwgTT4sIFRdKS5tYXAoKFt4LCBoYXNoXSwgaSkgPT4gW2ksIGhhc2gsIHgsIG1ldGFNYXAuZ2V0KGhhc2gpXSBhcyBbbnVtYmVyLCBULCBTb3VyY2VTZWxlY3RWYWx1ZTxULCBNPiwgU291cmNlU2VsZWN0RGlzcGxheVZhbHVlPFQsIE0+XSk7XG5cbiAgICAgICAgY29uc3QgaGFzRGlzcGxheSA9IG1hcHBpbmdSZXN1bHQuZmlsdGVyKCh4KSA9PiBCb29sZWFuKHhbM10pKTtcbiAgICAgICAgY29uc3QgbmVlZHNEaXNwbGF5ID0gbWFwcGluZ1Jlc3VsdC5maWx0ZXIoKHgpID0+ICF4WzNdKTtcbiAgICAgICAgbGV0IG9iczogT2JzZXJ2YWJsZTxTb3VyY2VTZWxlY3REaXNwbGF5VmFsdWU8VCwgTT5bXT47XG5cbiAgICAgICAgaWYgKG5lZWRzRGlzcGxheS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgLy8gR28gZ2V0IHRoZSBkaXNwbGF5IHZhbHVlLlxuICAgICAgICAgIGNvbnN0IGRpc3BsYXlWYWx1ZXNPYnMgPSB0aGlzLmRpc3BsYXlGb3JWYWx1ZShuZWVkc0Rpc3BsYXkubWFwKCh4KSA9PiB4WzJdKSk7XG5cbiAgICAgICAgICBvYnMgPSBkaXNwbGF5VmFsdWVzT2JzLnBpcGUoXG4gICAgICAgICAgICBmaXJzdCgpLFxuICAgICAgICAgICAgbWFwKChkaXNwbGF5UmVzdWx0cykgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBkaXNwbGF5UmVzdWx0c01hcHBpbmc6IFtTb3VyY2VTZWxlY3REaXNwbGF5VmFsdWU8VCwgTT4sIFRdW10gPSAoZGlzcGxheVJlc3VsdHMgYXMgU291cmNlU2VsZWN0RGlzcGxheVZhbHVlPFQsIE0+W10pLm1hcCgoeCkgPT4gW3gsIHgudmFsdWVdKTtcbiAgICAgICAgICAgICAgY29uc3QgdmFsdWVJbmRleEhhc2hNYXAgPSBuZXcgTWFwKGRpc3BsYXlSZXN1bHRzTWFwcGluZy5tYXAoKFt4LCBoYXNoXSkgPT4gW2hhc2gsIHhdKSk7XG5cbiAgICAgICAgICAgICAgLy8gVXBkYXRlIG1ldGFNYXAuIE5vIG5lZWQgdG8gcHVzaCBhbiB1cGRhdGUgbm90aWZpY2F0aW9uLlxuICAgICAgICAgICAgICBkaXNwbGF5UmVzdWx0c01hcHBpbmcuZm9yRWFjaCgoW3gsIGhhc2hdKSA9PiBtZXRhTWFwLnNldChoYXNoLCB4KSk7XG5cbiAgICAgICAgICAgICAgLy8gWmlwIHZhbHVlcyBiYWNrIHRvZ2V0aGVyLlxuICAgICAgICAgICAgICBjb25zdCBuZXdEaXNwbGF5VmFsdWVzID0gbWFwcGluZ1Jlc3VsdC5tYXAoKHgpID0+IHhbM10gPz8gdmFsdWVJbmRleEhhc2hNYXAuZ2V0KHhbMV0pKTtcblxuICAgICAgICAgICAgICAvLyBSZXR1cm4gZGlzcGxheSB2YWx1ZXMuXG4gICAgICAgICAgICAgIHJldHVybiBuZXdEaXNwbGF5VmFsdWVzO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIElmIGFsbCBkaXNwbGF5IHZhbHVlcyBhcmUgaGFzaGVkIHJldHVybiB0aGF0LlxuICAgICAgICAgIG9icyA9IG9mKGhhc0Rpc3BsYXkubWFwKCh4KSA9PiB4WzNdKSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gb2JzO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcmVhZG9ubHkgY29udGV4dCA9IGxvYWRpbmdTdGF0ZUNvbnRleHQoeyBvYnM6IHRoaXMuYWxsT3B0aW9uR3JvdXBzU3RhdGUkIH0pO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGNvbnN0IHsgbG9hZFNvdXJjZXMgfSA9IHRoaXM7XG5cbiAgICB0aGlzLl9sb2FkU291cmNlcy5uZXh0KGxvYWRTb3VyY2VzPy4oKSB8fCBvZihbXSkpO1xuXG4gICAgaWYgKHRoaXMucmVmcmVzaERpc3BsYXlWYWx1ZXMkICE9IG51bGwpIHtcbiAgICAgIHRoaXMuX2NsZWFyRGlzcGxheUhhc2hNYXBTdWIuc3Vic2NyaXB0aW9uID0gdGhpcy5yZWZyZXNoRGlzcGxheVZhbHVlcyQuc3Vic2NyaWJlKCgpID0+IHRoaXMuX2Rpc3BsYXlIYXNoTWFwLm5leHQobmV3IE1hcCgpKSk7XG4gICAgfVxuXG4gICAgdGhpcy5fZm9ybUNvbnRyb2xPYnMubmV4dCh0aGlzLmZvcm1Db250cm9sKTtcblxuICAgIC8vIGNvcHkgYWxsIHZhbHVlcyBmcm9tIHRoZSBzb3VyY2VzIGludG8gdGhlIHZhbHVlcyBoYXNoIG1hcCB0byBwcmV2ZW50IHJlbG9hZGluZ1xuICAgIHRoaXMuX2NhY2hlTWV0YVN1Yi5zdWJzY3JpcHRpb24gPSB0aGlzLnZhbHVlR3JvdXBzRnJvbVNvdXJjZXNTdGF0ZSQuc3Vic2NyaWJlKCh4KSA9PiB7XG4gICAgICBjb25zdCBoYXNoTWFwID0gdGhpcy5fdmFsdWVNZXRhSGFzaE1hcC52YWx1ZTtcbiAgICAgIHgudmFsdWUuZm9yRWFjaCgoeCkgPT4geC52YWx1ZXMuZm9yRWFjaCgoeSkgPT4gaGFzaE1hcC5zZXQoeS52YWx1ZSwgeSkpKTtcbiAgICB9KTtcbiAgfVxuXG4gIG92ZXJyaWRlIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgdGhpcy5fY2FjaGVNZXRhU3ViLmRlc3Ryb3koKTtcbiAgICB0aGlzLl9jbGVhckRpc3BsYXlIYXNoTWFwU3ViLmRlc3Ryb3koKTtcbiAgICB0aGlzLl92YWx1ZU1ldGFIYXNoTWFwLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5fZGlzcGxheUhhc2hNYXAuY29tcGxldGUoKTtcbiAgICB0aGlzLl9mb3JtQ29udHJvbE9icy5jb21wbGV0ZSgpO1xuICAgIHRoaXMuX2Zyb21PcGVuU291cmNlLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5fbG9hZFNvdXJjZXMuY29tcGxldGUoKTtcbiAgICB0aGlzLmNvbnRleHQuZGVzdHJveSgpO1xuICB9XG5cbiAgcmVhZG9ubHkgaGFuZGxlU2VsZWN0T3B0aW9uczogV29ya1VzaW5nQ29udGV4dDx1bmtub3duPiA9IChfLCBjb250ZXh0KSA9PiB7XG4gICAgY29uc3QgeyBvcGVuU291cmNlIH0gPSB0aGlzO1xuXG4gICAgaWYgKG9wZW5Tb3VyY2UpIHtcbiAgICAgIGNvbnN0IG9yaWdpbiA9IHRoaXMuYnV0dG9uRWxlbWVudC5uYXRpdmVFbGVtZW50O1xuICAgICAgY29uc3Qgc291cmNlT2JzID0gb3BlblNvdXJjZSh7IG9yaWdpbiB9KTtcbiAgICAgIGNvbnRleHQuc3RhcnRXb3JraW5nV2l0aE9ic2VydmFibGUoXG4gICAgICAgIHNvdXJjZU9icy5waXBlKFxuICAgICAgICAgIGZpcnN0KCksXG4gICAgICAgICAgdGFwKChyZXN1bHQ6IFNvdXJjZVNlbGVjdE9wZW5Tb3VyY2VSZXN1bHQ8TT4pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlc1RvQWRkID0gbWVyZ2VBcnJheXMoW3Jlc3VsdC5zZWxlY3QsIHJlc3VsdC5vcHRpb25zXSk7XG5cbiAgICAgICAgICAgIGlmICh2YWx1ZXNUb0FkZC5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgdGhpcy5hZGRUb09wZW5Tb3VyY2VNYXAodmFsdWVzVG9BZGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAocmVzdWx0LnNldCkge1xuICAgICAgICAgICAgICB0aGlzLnNldEN1cnJlbnRWYWx1ZShyZXN1bHQuc2V0Lm1hcCgoeCkgPT4gdGhpcy52YWx1ZVJlYWRlcih4KSkpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChyZXN1bHQuc2VsZWN0KSB7XG4gICAgICAgICAgICAgIHRoaXMuYWRkVG9DdXJyZW50VmFsdWUocmVzdWx0LnNlbGVjdC5tYXAoKHgpID0+IHRoaXMudmFsdWVSZWFkZXIoeCkpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb250ZXh0LnJlamVjdCgpO1xuICAgIH1cbiAgfTtcblxuICBwcml2YXRlIGFkZFRvT3BlblNvdXJjZU1hcChpbnB1dDogTVtdKSB7XG4gICAgY29uc3QgeyB2YWx1ZVJlYWRlciB9ID0gdGhpcztcbiAgICBjb25zdCB7IHZhbHVlczogbWV0YSwgdmFsdWVzU2V0OiBpbml0aWFsVmFsdWVzIH0gPSB0aGlzLl9mcm9tT3BlblNvdXJjZS52YWx1ZTtcblxuICAgIGNvbnN0IG5ld01ldGFGcm9tSW5wdXQ6IFNvdXJjZVNlbGVjdFZhbHVlPFQsIE0+W10gPSBbXTtcbiAgICBjb25zdCB2YWx1ZXNTZXQgPSBuZXcgU2V0KGluaXRpYWxWYWx1ZXMpO1xuXG4gICAgaW5wdXQuZm9yRWFjaCgoeCkgPT4ge1xuICAgICAgY29uc3QgdmFsdWUgPSB2YWx1ZVJlYWRlcih4KTtcblxuICAgICAgaWYgKCF2YWx1ZXNTZXQuaGFzKHZhbHVlKSkge1xuICAgICAgICBuZXdNZXRhRnJvbUlucHV0LnB1c2goeyBtZXRhOiB4LCB2YWx1ZSB9KTtcbiAgICAgICAgdmFsdWVzU2V0LmFkZCh2YWx1ZSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpZiAobmV3TWV0YUZyb21JbnB1dC5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLl9mcm9tT3BlblNvdXJjZS5uZXh0KHtcbiAgICAgICAgdmFsdWVzOiBbLi4ubWV0YSwgLi4ubmV3TWV0YUZyb21JbnB1dF0sXG4gICAgICAgIHZhbHVlc1NldDogdmFsdWVzU2V0XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFkZFRvQ3VycmVudFZhbHVlKHZhbHVlczogVFtdKSB7XG4gICAgY29uc3QgY3VycmVudFZhbHVlID0gYXNBcnJheSh0aGlzLmZvcm1Db250cm9sLnZhbHVlKTtcbiAgICBjb25zdCBuZXdWYWx1ZUFycmF5ID0gWy4uLmN1cnJlbnRWYWx1ZSwgLi4udmFsdWVzXTtcbiAgICB0aGlzLnNldEN1cnJlbnRWYWx1ZShuZXdWYWx1ZUFycmF5KTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0Q3VycmVudFZhbHVlKG5ld1ZhbHVlQXJyYXk6IFRbXSkge1xuICAgIGNvbnN0IHZhbHVlID0gdGhpcy5tdWx0aXBsZSA/IG5ld1ZhbHVlQXJyYXkgOiBsYXN0VmFsdWUobmV3VmFsdWVBcnJheSk7IC8vIHBpY2sgbGFzdCB2YWx1ZSwgYXMgdGhlIGxhc3QgdmFsdWUgYWRkZWQgaXMgdGhlIG5ld2VzdCB2YWx1ZS5cbiAgICB0aGlzLmZvcm1Db250cm9sLnNldFZhbHVlKHZhbHVlKTtcbiAgICB0aGlzLmZvcm1Db250cm9sLm1hcmtBc0RpcnR5KCk7XG4gICAgdGhpcy5mb3JtQ29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJkYngtc291cmNlLXNlbGVjdC1maWVsZFwiPlxuICA8ZGl2IGNsYXNzPVwiZGJ4LXNvdXJjZS1zZWxlY3QtZmllbGQtY29udGVudFwiPlxuICAgIDxtYXQtc2VsZWN0IGNsYXNzPVwiZGJ4LXNvdXJjZS1zZWxlY3QtZmllbGQtc2VsZWN0XCIgW2lkXT1cImlkXCIgW2Zvcm1Db250cm9sXT1cImZvcm1Db250cm9sXCIgW211bHRpcGxlXT1cInByb3BzLm11bHRpcGxlXCI+XG4gICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgdmFsdWUgb2Ygbm9uR3JvdXBlZFZhbHVlcyQgfCBhc3luY1wiIFt2YWx1ZV09XCJ2YWx1ZS52YWx1ZVwiPlxuICAgICAgICB7eyB2YWx1ZS5sYWJlbCB9fVxuICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgPG1hdC1vcHRncm91cCAqbmdGb3I9XCJsZXQgb3B0aW9uR3JvdXAgb2YgZ3JvdXBlZE9wdGlvbnMkIHwgYXN5bmNcIiBbbGFiZWxdPVwib3B0aW9uR3JvdXAubGFiZWxcIj5cbiAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IHZhbHVlIG9mIG9wdGlvbkdyb3VwLnZhbHVlc1wiIFt2YWx1ZV09XCJ2YWx1ZS52YWx1ZVwiPlxuICAgICAgICAgIHt7IHZhbHVlLmxhYmVsIH19XG4gICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgIDwvbWF0LW9wdGdyb3VwPlxuICAgIDwvbWF0LXNlbGVjdD5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2hvd09wZW5Tb3VyY2VCdXR0b25cIj5cbiAgICAgIDxkYngtYnV0dG9uLXNwYWNlcj48L2RieC1idXR0b24tc3BhY2VyPlxuICAgICAgPGRieC1hY3Rpb24gZGJ4QWN0aW9uVmFsdWUgW2RieEFjdGlvbkhhbmRsZXJdPVwiaGFuZGxlU2VsZWN0T3B0aW9uc1wiIGNsYXNzPVwiZGJ4LXNvdXJjZS1zZWxlY3QtZmllbGQtYnV0dG9uXCI+XG4gICAgICAgIDxkYngtYnV0dG9uICNidXR0b24gZGJ4QWN0aW9uQnV0dG9uIFtpY29uT25seV09XCJ0cnVlXCIgW2ljb25dPVwic2VsZWN0QnV0dG9uSWNvblwiPjwvZGJ4LWJ1dHRvbj5cbiAgICAgIDwvZGJ4LWFjdGlvbj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG4gIDxkYngtbG9hZGluZyBjbGFzcz1cImRieC1zb3VyY2Utc2VsZWN0LWZpZWxkLWxvYWRpbmdcIiBbbGluZWFyXT1cInRydWVcIiBbY29udGV4dF09XCJjb250ZXh0XCI+PC9kYngtbG9hZGluZz5cbjwvZGl2PlxuIl19
323
+ args: [{ selector: 'dbx-form-sourceselectfield', changeDetection: ChangeDetectionStrategy.OnPush, imports: [MatSelect, MatOption, FormsModule, ReactiveFormsModule, DbxButtonComponent, MatOptgroup, DbxButtonSpacerDirective, DbxActionModule, DbxLoadingComponent], standalone: true, template: "<div class=\"dbx-source-select-field\">\n <div class=\"dbx-source-select-field-content\">\n <mat-select class=\"dbx-source-select-field-select\" [id]=\"id\" [formControl]=\"formControl\" [multiple]=\"props.multiple\">\n @for (value of nonGroupedValuesSignal(); track value.value) {\n <mat-option [value]=\"value.value\">\n {{ value.label }}\n </mat-option>\n }\n @for (optionGroup of groupedOptionsSignal(); track optionGroup.label) {\n <mat-optgroup [label]=\"optionGroup.label\">\n @for (value of optionGroup.values; track value.value) {\n <mat-option [value]=\"value.value\">\n {{ value.label }}\n </mat-option>\n }\n </mat-optgroup>\n }\n </mat-select>\n @if (showOpenSourceButton) {\n <dbx-button-spacer></dbx-button-spacer>\n <dbx-action dbxActionValue [dbxActionHandler]=\"handleSelectOptions\" class=\"dbx-source-select-field-button\">\n <dbx-button #button dbxActionButton [fab]=\"true\" [iconOnly]=\"true\" [icon]=\"selectButtonIcon\"></dbx-button>\n </dbx-action>\n }\n </div>\n <dbx-loading class=\"dbx-source-select-field-loading\" [linear]=\"true\" [context]=\"context\"></dbx-loading>\n</div>\n" }]
324
+ }] });
325
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlc2VsZWN0LmZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1mb3JtL3NyYy9saWIvZm9ybWx5L2ZpZWxkL3NlbGVjdGlvbi9zb3VyY2VzZWxlY3Qvc291cmNlc2VsZWN0LmZpZWxkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1mb3JtL3NyYy9saWIvZm9ybWx5L2ZpZWxkL3NlbGVjdGlvbi9zb3VyY2VzZWxlY3Qvc291cmNlc2VsZWN0LmZpZWxkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQWdCLDhCQUE4QixFQUFFLHFCQUFxQixFQUFnQyxxQkFBcUIsRUFBRSxrQkFBa0IsRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLGdDQUFnQyxFQUFFLG1CQUFtQixFQUFvQiw2QkFBNkIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvVCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBcUIsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxlQUFlLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBYyxhQUFhLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hLLE9BQU8sRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLHNCQUFzQixFQUFFLFNBQVMsRUFBRSxrQkFBa0IsRUFBUyxXQUFXLEVBQWdCLGNBQWMsRUFBRSxvQkFBb0IsRUFBRSxpQkFBaUIsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuUCxPQUFPLEVBQUUsU0FB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QWUsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRU8sZUFBZSxDQUFDLGFBQWtCO1FBQ3hDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsZ0VBQWdFO1FBQ3hJLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDL0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUNuQyxDQUFDO3dHQXJjVSxpQ0FBaUM7NEZBQWpDLGlDQUFpQywwS0FVMEMsVUFBVSxvRUN4RWxHLDB1Q0EyQkEsNENEZ0NZLFNBQVMsd2VBQUUsU0FBUyxvSkFBRSxXQUFXLHNJQUFFLG1CQUFtQixrTkFBRSxrQkFBa0IseU5BQUUsV0FBVyxtSEFBRSx3QkFBd0IsK0VBQUUsZUFBZSxvaEJBQUUsbUJBQW1COzs0RkFHdEosaUNBQWlDO2tCQVA3QyxTQUFTOytCQUNFLDRCQUE0QixtQkFFckIsdUJBQXVCLENBQUMsTUFBTSxXQUN0QyxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLGtCQUFrQixFQUFFLFdBQVcsRUFBRSx3QkFBd0IsRUFBRSxlQUFlLEVBQUUsbUJBQW1CLENBQUMsY0FDdEosSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZpbHRlck1heWJlLCBMb2FkaW5nU3RhdGUsIGlzTG9hZGluZ1N0YXRlV2l0aERlZmluZWRWYWx1ZSwgaXNMb2FkaW5nU3RhdGVMb2FkaW5nLCBMb2FkaW5nU3RhdGVXaXRoRGVmaW5lZFZhbHVlLCBzdGFydFdpdGhCZWdpbkxvYWRpbmcsIFN1YnNjcmlwdGlvbk9iamVjdCwgc3VjY2Vzc1Jlc3VsdCwgYmVnaW5Mb2FkaW5nLCBtYXBMb2FkaW5nU3RhdGVWYWx1ZVdpdGhPcGVyYXRvciwgbG9hZGluZ1N0YXRlQ29udGV4dCwgV29ya1VzaW5nQ29udGV4dCwgdmFsdWVGcm9tRmluaXNoZWRMb2FkaW5nU3RhdGUgfSBmcm9tICdAZGVyZWVrYi9yeGpzJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIE9uRGVzdHJveSwgT25Jbml0LCB2aWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIHN3aXRjaE1hcCwgc2hhcmVSZXBsYXksIHN0YXJ0V2l0aCwgbWVyZ2VNYXAsIHNjYW4sIEJlaGF2aW9yU3ViamVjdCwgdGFwLCBmaXJzdCwgT2JzZXJ2YWJsZSwgY29tYmluZUxhdGVzdCwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGFkZFRvU2V0Q29weSwgYXNBcnJheSwgY29udmVydE1heWJlVG9BcnJheSwgZmlsdGVyTWF5YmVBcnJheVZhbHVlcywgbGFzdFZhbHVlLCBtYWtlVmFsdWVzR3JvdXBNYXAsIE1heWJlLCBtZXJnZUFycmF5cywgUHJpbWF0aXZlS2V5LCBzZXBhcmF0ZVZhbHVlcywgc2V0Q29udGFpbnNBbGxWYWx1ZXMsIHNldHNBcmVFcXVpdmFsZW50LCBzb3J0QnlTdHJpbmdGdW5jdGlvbiB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgRmllbGRUeXBlLCBGb3JtbHlGaWVsZFByb3BzIH0gZnJvbSAnQG5neC1mb3JtbHkvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBGaWVsZFR5cGVDb25maWcgfSBmcm9tICdAbmd4LWZvcm1seS9jb3JlJztcbmltcG9ydCB7IFNvdXJjZVNlbGVjdFZhbHVlTWV0YUxvYWRlciwgU291cmNlU2VsZWN0TWV0YVZhbHVlUmVhZGVyLCBTb3VyY2VTZWxlY3RPcGVuRnVuY3Rpb24sIFNvdXJjZVNlbGVjdExvYWRTb3VyY2VzRnVuY3Rpb24sIFNvdXJjZVNlbGVjdExvYWRTb3VyY2UsIFNvdXJjZVNlbGVjdExvYWRTb3VyY2VMb2FkaW5nU3RhdGUsIFNvdXJjZVNlbGVjdERpc3BsYXlWYWx1ZSwgU291cmNlU2VsZWN0VmFsdWUsIFNvdXJjZVNlbGVjdERpc3BsYXlGdW5jdGlvbiwgU291cmNlU2VsZWN0RGlzcGxheVZhbHVlR3JvdXAsIFNvdXJjZVNlbGVjdFZhbHVlR3JvdXAsIFNvdXJjZVNlbGVjdE9wdGlvbnMsIFNvdXJjZVNlbGVjdE9wZW5Tb3VyY2VSZXN1bHQgfSBmcm9tICcuL3NvdXJjZXNlbGVjdCc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBNYXRPcHRncm91cCwgTWF0T3B0aW9uLCBNYXRTZWxlY3QgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xuaW1wb3J0IHsgRGJ4QWN0aW9uTW9kdWxlLCBEYnhCdXR0b25Db21wb25lbnQsIERieEJ1dHRvblNwYWNlckRpcmVjdGl2ZSwgRGJ4TG9hZGluZ0NvbXBvbmVudCB9IGZyb20gJ0BkZXJlZWtiL2RieC13ZWInO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNvdXJjZVNlbGVjdEZpZWxkUHJvcHM8VCBleHRlbmRzIFByaW1hdGl2ZUtleSA9IFByaW1hdGl2ZUtleSwgTSA9IHVua25vd24+IGV4dGVuZHMgRm9ybWx5RmllbGRQcm9wcyB7XG4gIC8qKlxuICAgKiBGdW5jdGlvbiB0byBvcGVuIHRoZSBzb3VyY2UgYW5kIHJlcXVlc3QgdmFsdWVzLlxuICAgKi9cbiAgcmVhZG9ubHkgb3BlblNvdXJjZT86IFNvdXJjZVNlbGVjdE9wZW5GdW5jdGlvbjxNPjtcbiAgLyoqXG4gICAqIExvYWRzIHRoZSBzb3VyY2VzIHRvIGRpc3BsYXkgZW50cmllcyBmcm9tLlxuICAgKi9cbiAgcmVhZG9ubHkgbG9hZFNvdXJjZXM/OiBTb3VyY2VTZWxlY3RMb2FkU291cmNlc0Z1bmN0aW9uPE0+O1xuICAvKipcbiAgICogUmVhZHMgdGhlIHZhbHVlIGZyb20gYSBtZXRhIHZhbHVlLlxuICAgKi9cbiAgcmVhZG9ubHkgdmFsdWVSZWFkZXI6IFNvdXJjZVNlbGVjdE1ldGFWYWx1ZVJlYWRlcjxULCBNPjtcbiAgLyoqXG4gICAqIExvYWRzIG1ldGFkYXRhIGZvciB0aGUgaW5wdXQgdmFsdWVzLlxuICAgKi9cbiAgcmVhZG9ubHkgbWV0YUxvYWRlcjogU291cmNlU2VsZWN0VmFsdWVNZXRhTG9hZGVyPFQsIE0+O1xuICAvKipcbiAgICogVXNlZCBmb3IgYnVpbGRpbmcgYSBkaXNwbGF5IHZhbHVlIGdpdmVuIHRoZSBpbnB1dC5cbiAgICovXG4gIHJlYWRvbmx5IGRpc3BsYXlGb3JWYWx1ZTogU291cmNlU2VsZWN0RGlzcGxheUZ1bmN0aW9uPFQsIE0+O1xuICAvKipcbiAgICogU2VsZWN0IGJ1dHRvbiBpY29uXG4gICAqL1xuICByZWFkb25seSBzZWxlY3RCdXR0b25JY29uPzogc3RyaW5nO1xuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdGhlIHNlbGVjdGlvbiBpcyBhcyBhbiBhcnJheS5cbiAgICovXG4gIHJlYWRvbmx5IG11bHRpcGxlPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIChPcHRpb25hbCkgb2JzZXJ2YWJsZSB0aGF0IHdpbGwgdHJpZ2dlciB0aGUgY2xlYXJpbmcgb2YgYWxsIGNhY2hlZCBkaXNwbGF5IHZhbHVlcy5cbiAgICovXG4gIHJlYWRvbmx5IHJlZnJlc2hEaXNwbGF5VmFsdWVzJD86IE9ic2VydmFibGU8dW5rbm93bj47XG59XG5cbmludGVyZmFjZSBTZWxlY3RGaWVsZE9wZW5Tb3VyY2VNYXA8VCBleHRlbmRzIFByaW1hdGl2ZUtleSA9IFByaW1hdGl2ZUtleSwgTSA9IHVua25vd24+IHtcbiAgcmVhZG9ubHkgdmFsdWVzOiBTb3VyY2VTZWxlY3RWYWx1ZTxULCBNPltdO1xuICByZWFkb25seSB2YWx1ZXNTZXQ6IFNldDxUPjtcbn1cblxuLyoqXG4gKiBDb21wb25lbnQgdGhhdCBkaXNwbGF5cyBhIHNlbGVjdCB2aWV3IChtdWx0aSBvciBub3QpXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2RieC1mb3JtLXNvdXJjZXNlbGVjdGZpZWxkJyxcbiAgdGVtcGxhdGVVcmw6ICdzb3VyY2VzZWxlY3QuZmllbGQuY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW01hdFNlbGVjdCwgTWF0T3B0aW9uLCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgRGJ4QnV0dG9uQ29tcG9uZW50LCBNYXRPcHRncm91cCwgRGJ4QnV0dG9uU3BhY2VyRGlyZWN0aXZlLCBEYnhBY3Rpb25Nb2R1bGUsIERieExvYWRpbmdDb21wb25lbnRdLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIERieEZvcm1Tb3VyY2VTZWxlY3RGaWVsZENvbXBvbmVudDxUIGV4dGVuZHMgUHJpbWF0aXZlS2V5ID0gUHJpbWF0aXZlS2V5LCBNID0gdW5rbm93bj4gZXh0ZW5kcyBGaWVsZFR5cGU8RmllbGRUeXBlQ29uZmlnPFNvdXJjZVNlbGVjdEZpZWxkUHJvcHM8VCwgTT4+PiBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSByZWFkb25seSBfY2FjaGVNZXRhU3ViID0gbmV3IFN1YnNjcmlwdGlvbk9iamVjdCgpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9jbGVhckRpc3BsYXlIYXNoTWFwU3ViID0gbmV3IFN1YnNjcmlwdGlvbk9iamVjdCgpO1xuICBwcml2YXRlIHJlYWRvbmx5IF92YWx1ZU1ldGFIYXNoTWFwID0gbmV3IEJlaGF2aW9yU3ViamVjdDxNYXA8VCwgU291cmNlU2VsZWN0VmFsdWU8VCwgTT4+PihuZXcgTWFwKCkpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9kaXNwbGF5SGFzaE1hcCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TWFwPFQsIFNvdXJjZVNlbGVjdERpc3BsYXlWYWx1ZTxULCBNPj4+KG5ldyBNYXAoKSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfZm9ybUNvbnRyb2xPYnMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE1heWJlPEFic3RyYWN0Q29udHJvbDxUW10+Pj4odW5kZWZpbmVkKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfZnJvbU9wZW5Tb3VyY2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFNlbGVjdEZpZWxkT3BlblNvdXJjZU1hcDxULCBNPj4oeyB2YWx1ZXM6IFtdLCB2YWx1ZXNTZXQ6IG5ldyBTZXQoKSB9KTtcbiAgcHJpdmF0ZSByZWFkb25seSBfbG9hZFNvdXJjZXMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE1heWJlPE9ic2VydmFibGU8U291cmNlU2VsZWN0TG9hZFNvdXJjZTxNPltdPj4+KHVuZGVmaW5lZCk7XG5cbiAgcmVhZG9ubHkgYnV0dG9uRWxlbWVudCA9IHZpZXdDaGlsZDxzdHJpbmcsIEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PignYnV0dG9uJywgeyByZWFkOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PiB9KTtcblxuICByZWFkb25seSBmb3JtQ29udHJvbCQgPSB0aGlzLl9mb3JtQ29udHJvbE9icy5waXBlKGZpbHRlck1heWJlKCkpO1xuXG4gIHJlYWRvbmx5IGN1cnJlbnRGb3JtQ29udHJvbFZhbHVlJCA9IHRoaXMuZm9ybUNvbnRyb2wkLnBpcGUoXG4gICAgc3dpdGNoTWFwKChjb250cm9sKSA9PiBjb250cm9sLnZhbHVlQ2hhbmdlcy5waXBlKHN0YXJ0V2l0aChjb250cm9sLnZhbHVlKSkpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgdmFsdWVzJDogT2JzZXJ2YWJsZTxUW10+ID0gdGhpcy5jdXJyZW50Rm9ybUNvbnRyb2xWYWx1ZSQucGlwZShtYXAoY29udmVydE1heWJlVG9BcnJheSksIHNoYXJlUmVwbGF5KDEpKTtcblxuICByZWFkb25seSBhbGxWYWx1ZXNFdmVyU2VsZWN0ZWQkOiBPYnNlcnZhYmxlPFRbXT4gPSB0aGlzLnZhbHVlcyQucGlwZShcbiAgICBzY2FuKChhY2MsIHZhbHVlcykgPT4ge1xuICAgICAgbGV0IHJlc3VsdDogU2V0PFQ+ID0gYWNjO1xuXG4gICAgICBpZiAoIXNldENvbnRhaW5zQWxsVmFsdWVzKGFjYywgdmFsdWVzKSkge1xuICAgICAgICByZXN1bHQgPSBhZGRUb1NldENvcHkoYWNjLCB2YWx1ZXMpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0sIG5ldyBTZXQ8VD4oKSksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBtYXAoKHgpID0+IEFycmF5LmZyb20oeCkpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgc291cmNlU2VsZWN0VmFsdWVzRnJvbVZhbHVlc1N0YXRlJDogT2JzZXJ2YWJsZTxMb2FkaW5nU3RhdGU8U291cmNlU2VsZWN0VmFsdWU8VCwgTT5bXT4+ID0gdGhpcy5hbGxWYWx1ZXNFdmVyU2VsZWN0ZWQkLnBpcGUoXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzd2l0Y2hNYXAoKHZhbHVlczogVFtdKSA9PiB0aGlzLmxvYWRTb3VyY2VTZWxlY3RWYWx1ZUZvclZhbHVlcyh2YWx1ZXMpKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGxvYWRTb3VyY2VzJDogT2JzZXJ2YWJsZTxMb2FkaW5nU3RhdGU8U291cmNlU2VsZWN0VmFsdWVHcm91cDxULCBNPltdPj4gPSB0aGlzLl9sb2FkU291cmNlcy5waXBlKFxuICAgIGZpbHRlck1heWJlKCksXG4gICAgc3dpdGNoTWFwKChsb2FkU291cmNlKSA9PiB7XG4gICAgICBjb25zdCB7IHZhbHVlUmVhZGVyIH0gPSB0aGlzO1xuXG4gICAgICByZXR1cm4gbG9hZFNvdXJjZS5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoKHNvdXJjZXM6IFNvdXJjZVNlbGVjdExvYWRTb3VyY2U8TT5bXSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHNvdXJjZU9iczogT2JzZXJ2YWJsZTxTb3VyY2VTZWxlY3RMb2FkU291cmNlTG9hZGluZ1N0YXRlPE0+PltdID0gc291cmNlcy5tYXAoKHgpID0+IHgubWV0YS5waXBlKG1hcCgobWV0YVN0YXRlKSA9PiAoeyAuLi5tZXRhU3RhdGUsIGxhYmVsOiB4LmxhYmVsIH0pKSkpO1xuXG4gICAgICAgICAgaWYgKHNvdXJjZU9icy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiBvZihzdWNjZXNzUmVzdWx0KFtdKSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KHNvdXJjZU9icykucGlwZShcbiAgICAgICAgICAgICAgbWFwKCh4KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc3RhdGVzV2l0aFZhbHVlcyA9IHguZmlsdGVyKCh5KSA9PiBpc0xvYWRpbmdTdGF0ZVdpdGhEZWZpbmVkVmFsdWUoeSkpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGxvYWRpbmcgPSB4LmZpbmRJbmRleChpc0xvYWRpbmdTdGF0ZUxvYWRpbmcpICE9PSAtMTtcbiAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZTogU291cmNlU2VsZWN0VmFsdWVHcm91cDxULCBNPltdID0gc3RhdGVzV2l0aFZhbHVlcy5tYXAoKHkpID0+IHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGdyb3VwOiBTb3VyY2VTZWxlY3RWYWx1ZUdyb3VwPFQsIE0+ID0ge1xuICAgICAgICAgICAgICAgICAgICBsYWJlbDogeS5sYWJlbCxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWVzOiAoeS52YWx1ZSBhcyBNW10pLm1hcCgobWV0YSkgPT4gKHsgbWV0YSwgdmFsdWU6IHZhbHVlUmVhZGVyKG1ldGEpIH0pKVxuICAgICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgICAgcmV0dXJuIGdyb3VwO1xuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgIGxvYWRpbmcsXG4gICAgICAgICAgICAgICAgICB2YWx1ZVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfSlcbiAgKTtcblxuICByZWFkb25seSBmcm9tT3BlblNvdXJjZSQ6IE9ic2VydmFibGU8U291cmNlU2VsZWN0VmFsdWVHcm91cDxULCBNPj4gPSB0aGlzLl9mcm9tT3BlblNvdXJjZS5waXBlKFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKChhLCBiKSA9PiBzZXRzQXJlRXF1aXZhbGVudChhLnZhbHVlc1NldCwgYi52YWx1ZXNTZXQpKSxcbiAgICBtYXAoKHgpID0+IHtcbiAgICAgIGNvbnN0IGdyb3VwOiBTb3VyY2VTZWxlY3RWYWx1ZUdyb3VwPFQsIE0+ID0ge1xuICAgICAgICBsYWJlbDogJycsXG4gICAgICAgIHZhbHVlczogeC52YWx1ZXNcbiAgICAgIH07XG5cbiAgICAgIHJldHVybiBncm91cDtcbiAgICB9KSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IHZhbHVlR3JvdXBzRnJvbVNvdXJjZXNTdGF0ZSQ6IE9ic2VydmFibGU8TG9hZGluZ1N0YXRlV2l0aERlZmluZWRWYWx1ZTxTb3VyY2VTZWxlY3RWYWx1ZUdyb3VwPFQsIE0+W10+PiA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuZnJvbU9wZW5Tb3VyY2UkLCB0aGlzLmxvYWRTb3VyY2VzJF0pLnBpcGUoXG4gICAgbWFwKChbZnJvbU9wZW5Tb3VyY2VHcm91cCwgbG9hZFNvdXJjZXNdKSA9PiB7XG4gICAgICBjb25zdCBsb2FkU291cmNlc1ZhbHVlID0gbG9hZFNvdXJjZXMudmFsdWUgPz8gW107XG4gICAgICBjb25zdCB2YWx1ZTogU291cmNlU2VsZWN0VmFsdWVHcm91cDxULCBNPltdID0gW2Zyb21PcGVuU291cmNlR3JvdXAsIC4uLmxvYWRTb3VyY2VzVmFsdWVdO1xuXG4gICAgICBjb25zdCByZXN1bHQ6IExvYWRpbmdTdGF0ZVdpdGhEZWZpbmVkVmFsdWU8U291cmNlU2VsZWN0VmFsdWVHcm91cDxULCBNPltdPiA9IHtcbiAgICAgICAgbG9hZGluZzogbG9hZFNvdXJjZXMubG9hZGluZyxcbiAgICAgICAgdmFsdWVcbiAgICAgIH07XG5cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBhbGxWYWx1ZUdyb3Vwc1N0YXRlJDogT2JzZXJ2YWJsZTxMb2FkaW5nU3RhdGU8U291cmNlU2VsZWN0VmFsdWVHcm91cDxULCBNPltdPj4gPSB0aGlzLnNvdXJjZVNlbGVjdFZhbHVlc0Zyb21WYWx1ZXNTdGF0ZSQucGlwZShcbiAgICBzd2l0Y2hNYXAoKHNvdXJjZVNlbGVjdFZhbHVlc0Zyb21WYWx1ZXM6IExvYWRpbmdTdGF0ZTxTb3VyY2VTZWxlY3RWYWx1ZTxULCBNPltdPikgPT4ge1xuICAgICAgaWYgKGlzTG9hZGluZ1N0YXRlV2l0aERlZmluZWRWYWx1ZShzb3VyY2VTZWxlY3RWYWx1ZXNGcm9tVmFsdWVzKSkge1xuICAgICAgICBjb25zdCB2YWx1ZXNGcm9tVmFsdWVzR3JvdXA6IFNvdXJjZVNlbGVjdFZhbHVlR3JvdXA8VCwgTT4gPSB7XG4gICAgICAgICAgbGFiZWw6ICcnLFxuICAgICAgICAgIHZhbHVlczogc291cmNlU2VsZWN0VmFsdWVzRnJvbVZhbHVlcy52YWx1ZVxuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiB0aGlzLnZhbHVlR3JvdXBzRnJvbVNvdXJjZXNTdGF0ZSQucGlwZShcbiAgICAgICAgICBtYXAoKHNvdXJjZXNTdGF0ZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgYWxsR3JvdXBzOiBTb3VyY2VTZWxlY3RWYWx1ZUdyb3VwPFQsIE0+W10gPSBbdmFsdWVzRnJvbVZhbHVlc0dyb3VwLCAuLi5zb3VyY2VzU3RhdGUudmFsdWVdO1xuXG4gICAgICAgICAgICBjb25zdCByZXN1bHQ6IExvYWRpbmdTdGF0ZTxTb3VyY2VTZWxlY3RWYWx1ZUdyb3VwPFQsIE0+W10+ID0ge1xuICAgICAgICAgICAgICBsb2FkaW5nOiBzb3VyY2VTZWxlY3RWYWx1ZXNGcm9tVmFsdWVzLmxvYWRpbmcgfHwgc291cmNlc1N0YXRlLmxvYWRpbmcsXG4gICAgICAgICAgICAgIHZhbHVlOiBhbGxHcm91cHNcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBvZihiZWdpbkxvYWRpbmc8U291cmNlU2VsZWN0VmFsdWVHcm91cDxULCBNPltdPih7fSkpO1xuICAgICAgfVxuICAgIH0pLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgYWxsT3B0aW9uR3JvdXBzU3RhdGUkOiBPYnNlcnZhYmxlPExvYWRpbmdTdGF0ZTxTb3VyY2VTZWxlY3REaXNwbGF5VmFsdWVHcm91cDxULCBNPltdPj4gPSB0aGlzLmFsbFZhbHVlR3JvdXBzU3RhdGUkLnBpcGUoXG4gICAgbWFwTG9hZGluZ1N0YXRlVmFsdWVXaXRoT3BlcmF0b3IoXG4gICAgICBzd2l0Y2hNYXAoKGdyb3VwczogU291cmNlU2VsZWN0VmFsdWVHcm91cDxULCBNPltdKSA9PiB7XG4gICAgICAgIGNvbnN0IGFsbEdyb3Vwc1JlZHVjZWRCeUxhYmVsID0gbWFrZVZhbHVlc0dyb3VwTWFwKGdyb3VwcywgKHgpID0+IHgubGFiZWwpIGFzIE1hcDxzdHJpbmcsIFNvdXJjZVNlbGVjdFZhbHVlR3JvdXA8VCwgTT5bXT47XG5cbiAgICAgICAgY29uc3QgdmFsdWVzRW5jb3VudGVyZWQgPSBuZXcgU2V0PFQ+KCk7XG4gICAgICAgIGNvbnN0IGFsbFVuaXF1ZVZhbHVlczogU291cmNlU2VsZWN0VmFsdWU8VCwgTT5bXSA9IFtdO1xuXG4gICAgICAgIGNvbnN0IHNpbXBsaWZpZWRWYWx1ZXNHcm91cHM6IFNvdXJjZVNlbGVjdFZhbHVlR3JvdXA8VCwgTT5bXSA9IFtdO1xuXG4gICAgICAgIC8vIHNvcnQgdG8gcHV0IHRoZSBibGFuayBsYWJlbCBmaXJzdFxuICAgICAgICBBcnJheS5mcm9tKGFsbEdyb3Vwc1JlZHVjZWRCeUxhYmVsLmVudHJpZXMoKSlcbiAgICAgICAgICAuc29ydChzb3J0QnlTdHJpbmdGdW5jdGlvbigoeCkgPT4geFswXSkpXG4gICAgICAgICAgLmZvckVhY2goKFtsYWJlbCwgZ3JvdXBzXSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgdmFsdWVzOiBTb3VyY2VTZWxlY3RWYWx1ZTxULCBNPltdID0gW107XG5cbiAgICAgICAgICAgIGdyb3Vwcy5mb3JFYWNoKChncm91cCkgPT4ge1xuICAgICAgICAgICAgICBncm91cC52YWx1ZXMuZm9yRWFjaCgoc2VsZWN0VmFsdWUpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIXZhbHVlc0VuY291bnRlcmVkLmhhcyhzZWxlY3RWYWx1ZS52YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKHNlbGVjdFZhbHVlKTtcbiAgICAgICAgICAgICAgICAgIGFsbFVuaXF1ZVZhbHVlcy5wdXNoKHNlbGVjdFZhbHVlKTtcbiAgICAgICAgICAgICAgICAgIHZhbHVlc0VuY291bnRlcmVkLmFkZChzZWxlY3RWYWx1ZS52YWx1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBpZiAodmFsdWVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgc2ltcGxpZmllZFZhbHVlc0dyb3Vwcy5wdXNoKHtcbiAgICAgICAgICAgICAgICBsYWJlbCxcbiAgICAgICAgICAgICAgICB2YWx1ZXNcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3Qgb2JzID0gdGhpcy5nZXREaXNwbGF5VmFsdWVzRm9yU2VsZWN0VmFsdWVzKGFsbFVuaXF1ZVZhbHVlcykucGlwZShcbiAgICAgICAgICBtYXAoKGRpc3BsYXlWYWx1ZXMpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGRpc3BsYXlWYWx1ZXNNYXAgPSBuZXcgTWFwKGRpc3BsYXlWYWx1ZXMubWFwKCh4KSA9PiBbeC52YWx1ZSwgeF0pKTtcblxuICAgICAgICAgICAgY29uc3QgZGlzcGxheUdyb3VwczogU291cmNlU2VsZWN0RGlzcGxheVZhbHVlR3JvdXA8VCwgTT5bXSA9IHNpbXBsaWZpZWRWYWx1ZXNHcm91cHMubWFwKCh2YWx1ZUdyb3VwKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IHZhbHVlcyA9IGZpbHRlck1heWJlQXJyYXlWYWx1ZXModmFsdWVHcm91cC52YWx1ZXMubWFwKCh4KSA9PiBkaXNwbGF5VmFsdWVzTWFwLmdldCh4LnZhbHVlKSkpO1xuXG4gICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgbGFiZWw6IHZhbHVlR3JvdXAubGFiZWwsXG4gICAgICAgICAgICAgICAgdmFsdWVzXG4gICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgcmV0dXJuIGRpc3BsYXlHcm91cHM7XG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcblxuICAgICAgICByZXR1cm4gb2JzO1xuICAgICAgfSlcbiAgICApLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgYWxsT3B0aW9uR3JvdXBzJDogT2JzZXJ2YWJsZTxTb3VyY2VTZWxlY3REaXNwbGF5VmFsdWVHcm91cDxULCBNPltdPiA9IHRoaXMuYWxsT3B0aW9uR3JvdXBzU3RhdGUkLnBpcGUoXG4gICAgdmFsdWVGcm9tRmluaXNoZWRMb2FkaW5nU3RhdGUoKSxcbiAgICBtYXAoKHgpID0+IHggPz8gW10pLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgb3B0aW9ucyQ6IE9ic2VydmFibGU8U291cmNlU2VsZWN0T3B0aW9uczxULCBNPj4gPSB0aGlzLmFsbE9wdGlvbkdyb3VwcyQucGlwZShcbiAgICBtYXAoKHgpID0+IHtcbiAgICAgIGNvbnN0IHsgaW5jbHVkZWQ6IGdyb3VwZWRWYWx1ZXMsIGV4Y2x1ZGVkOiBub25Hcm91cGVkR3JvdXAgfSA9IHNlcGFyYXRlVmFsdWVzKHgsICh5KSA9PiBCb29sZWFuKHkubGFiZWwpKTtcblxuICAgICAgY29uc3QgcmVzdWx0OiBTb3VyY2VTZWxlY3RPcHRpb25zPFQsIE0+ID0ge1xuICAgICAgICBub25Hcm91cGVkVmFsdWVzOiBub25Hcm91cGVkR3JvdXBbMF0/LnZhbHVlcyA/PyBbXSxcbiAgICAgICAgZ3JvdXBlZFZhbHVlc1xuICAgICAgfTtcblxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9KSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IG5vbkdyb3VwZWRWYWx1ZXMkID0gdGhpcy5vcHRpb25zJC5waXBlKG1hcCgoeCkgPT4geC5ub25Hcm91cGVkVmFsdWVzKSk7XG4gIHJlYWRvbmx5IGdyb3VwZWRPcHRpb25zJCA9IHRoaXMub3B0aW9ucyQucGlwZShtYXAoKHgpID0+IHguZ3JvdXBlZFZhbHVlcykpO1xuXG4gIHJlYWRvbmx5IG5vbkdyb3VwZWRWYWx1ZXNTaWduYWwgPSB0b1NpZ25hbCh0aGlzLm5vbkdyb3VwZWRWYWx1ZXMkKTtcbiAgcmVhZG9ubHkgZ3JvdXBlZE9wdGlvbnNTaWduYWwgPSB0b1NpZ25hbCh0aGlzLmdyb3VwZWRPcHRpb25zJCk7XG5cbiAgZ2V0IHNvdXJjZVNlbGVjdEZpZWxkKCk6IFNvdXJjZVNlbGVjdEZpZWxkUHJvcHM8VCwgTT4ge1xuICAgIHJldHVybiB0aGlzLnByb3BzO1xuICB9XG5cbiAgZ2V0IG9wZW5Tb3VyY2UoKSB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMub3BlblNvdXJjZTtcbiAgfVxuXG4gIGdldCBzaG93T3BlblNvdXJjZUJ1dHRvbigpIHtcbiAgICByZXR1cm4gQm9vbGVhbih0aGlzLm9wZW5Tb3VyY2UpO1xuICB9XG5cbiAgZ2V0IGxvYWRTb3VyY2VzKCkge1xuICAgIHJldHVybiB0aGlzLnByb3BzLmxvYWRTb3VyY2VzO1xuICB9XG5cbiAgZ2V0IHZhbHVlUmVhZGVyKCkge1xuICAgIHJldHVybiB0aGlzLnByb3BzLnZhbHVlUmVhZGVyO1xuICB9XG5cbiAgZ2V0IG1ldGFMb2FkZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMubWV0YUxvYWRlcjtcbiAgfVxuXG4gIGdldCBkaXNwbGF5Rm9yVmFsdWUoKTogU291cmNlU2VsZWN0RGlzcGxheUZ1bmN0aW9uPFQsIE0+IHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5kaXNwbGF5Rm9yVmFsdWU7XG4gIH1cblxuICBnZXQgc2VsZWN0QnV0dG9uSWNvbigpIHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5zZWxlY3RCdXR0b25JY29uID8/ICdhZGQnO1xuICB9XG5cbiAgZ2V0IG11bHRpcGxlKCkge1xuICAgIHJldHVybiB0aGlzLnByb3BzLm11bHRpcGxlIHx8IGZhbHNlO1xuICB9XG5cbiAgZ2V0IHJlZnJlc2hEaXNwbGF5VmFsdWVzJCgpIHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5yZWZyZXNoRGlzcGxheVZhbHVlcyQ7XG4gIH1cblxuICBsb2FkU291cmNlU2VsZWN0VmFsdWVGb3JWYWx1ZXModmFsdWVzOiBUW10pOiBPYnNlcnZhYmxlPExvYWRpbmdTdGF0ZTxTb3VyY2VTZWxlY3RWYWx1ZTxULCBNPltdPj4ge1xuICAgIHJldHVybiB0aGlzLmdldFNvdXJjZVNlbGVjdFZhbHVlRm9yVmFsdWVzKHZhbHVlcykucGlwZShcbiAgICAgIG1hcCgoc291cmNlU2VsZWN0VmFsdWVzOiBTb3VyY2VTZWxlY3RWYWx1ZTxULCBNPltdKSA9PiBzdWNjZXNzUmVzdWx0KHNvdXJjZVNlbGVjdFZhbHVlcykpLFxuICAgICAgc3RhcnRXaXRoQmVnaW5Mb2FkaW5nKCksXG4gICAgICBzaGFyZVJlcGxheSgxKVxuICAgICk7XG4gIH1cblxuICBnZXRTb3VyY2VTZWxlY3RWYWx1ZUZvclZhbHVlcyh2YWx1ZXM6IFRbXSk6IE9ic2VydmFibGU8U291cmNlU2VsZWN0VmFsdWU8VCwgTT5bXT4ge1xuICAgIGNvbnN0IHsgdmFsdWVSZWFkZXIgfSA9IHRoaXM7XG5cbiAgICByZXR1cm4gdGhpcy5fdmFsdWVNZXRhSGFzaE1hcC5waXBlKFxuICAgICAgbWVyZ2VNYXAoKG1ldGFNYXApID0+IHtcbiAgICAgICAgY29uc3QgbWFwcGluZ1Jlc3VsdCA9IHZhbHVlcy5tYXAoKGhhc2gsIGkpID0+IFtpLCBoYXNoLCBtZXRhTWFwLmdldChoYXNoKV0gYXMgW251bWJlciwgVCwgU291cmNlU2VsZWN0VmFsdWU8VCwgTT5dKTtcblxuICAgICAgICBjb25zdCB7XG4gICAgICAgICAgLy9cbiAgICAgICAgICBpbmNsdWRlZDogaGFzTWV0YSxcbiAgICAgICAgICBleGNsdWRlZDogbmVlZHNNZXRhXG4gICAgICAgIH0gPSBzZXBhcmF0ZVZhbHVlcyhtYXBwaW5nUmVzdWx0LCAoeCkgPT4gQm9vbGVhbih4WzJdKSk7XG5cbiAgICAgICAgbGV0IG9iczogT2JzZXJ2YWJsZTxTb3VyY2VTZWxlY3RWYWx1ZTxULCBNPltdPjtcblxuICAgICAgICBpZiAobmVlZHNNZXRhLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAvLyBHbyBnZXQgdGhlIG1ldGEgdmFsdWUuXG4gICAgICAgICAgY29uc3QgbWV0YVZhbHVlc09icyA9IHRoaXMubWV0YUxvYWRlcihuZWVkc01ldGEubWFwKCh4KSA9PiB4WzFdKSk7XG5cbiAgICAgICAgICBvYnMgPSBtZXRhVmFsdWVzT2JzLnBpcGUoXG4gICAgICAgICAgICBmaXJzdCgpLFxuICAgICAgICAgICAgbWFwKChtZXRhUmVzdWx0cykgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBtZXRhUmVzdWx0c01hcHBpbmc6IFNvdXJjZVNlbGVjdFZhbHVlPFQsIE0+W10gPSBtZXRhUmVzdWx0cy5tYXAoKG1ldGEpID0+ICh7IG1ldGEsIHZhbHVlOiB2YWx1ZVJlYWRlcihtZXRhKSB9KSk7XG4gICAgICAgICAgICAgIGNvbnN0IHZhbHVlSW5kZXhIYXNoTWFwID0gbmV3IE1hcChtZXRhUmVzdWx0c01hcHBpbmcubWFwKCh4KSA9PiBbeC52YWx1ZSwgeF0pKTtcblxuICAgICAgICAgICAgICAvLyBVcGRhdGUgbWV0YU1hcC4gTm8gbmVlZCB0byBwdXNoIGFuIHVwZGF0ZSBub3RpZmljYXRpb24uXG4gICAgICAgICAgICAgIG1ldGFSZXN1bHRzTWFwcGluZy5mb3JFYWNoKCh4KSA9PiBtZXRhTWFwLnNldCh4LnZhbHVlLCB4KSk7XG5cbiAgICAgICAgICAgICAgLy8gWmlwIHZhbHVlcyBiYWNrIHRvZ2V0aGVyLlxuICAgICAgICAgICAgICBjb25zdCBuZXdEaXNwbGF5VmFsdWVzID0gbWFwcGluZ1Jlc3VsdC5tYXAoKHgpID0+IHhbMl0gPz8gdmFsdWVJbmRleEhhc2hNYXAuZ2V0KHhbMV0pKTtcblxuICAgICAgICAgICAgICAvLyBSZXR1cm4gZGlzcGxheSB2YWx1ZXMuXG4gICAgICAgICAgICAgIHJldHVybiBuZXdEaXNwbGF5VmFsdWVzO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIElmIGFsbCBkaXNwbGF5IHZhbHVlcyBhcmUgaGFzaGVkIHJldHVybiB0aGVtXG4gICAgICAgICAgb2JzID0gb2YoaGFzTWV0YS5tYXAoKHgpID0+IHhbMl0pKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBvYnM7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBsb2FkRGlzcGxheVZhbHVlc0ZvclNlbGVjdFZhbHVlcyh2YWx1ZXM6IFNvdXJjZVNlbGVjdFZhbHVlPFQsIE0+W10pOiBPYnNlcnZhYmxlPExvYWRpbmdTdGF0ZTxTb3VyY2VTZWxlY3REaXNwbGF5VmFsdWU8VCwgTT5bXT4+IHtcbiAgICByZXR1cm4gdGhpcy5nZXREaXNwbGF5VmFsdWVzRm9yU2VsZWN0VmFsdWVzKHZhbHVlcykucGlwZShcbiAgICAgIG1hcCgoZGlzcGxheVZhbHVlczogU291cmNlU2VsZWN0RGlzcGxheVZhbHVlPFQsIE0+W10pID0+IHN1Y2Nlc3NSZXN1bHQoZGlzcGxheVZhbHVlcykpLFxuICAgICAgc3RhcnRXaXRoQmVnaW5Mb2FkaW5nKCksXG4gICAgICBzaGFyZVJlcGxheSgxKVxuICAgICk7XG4gIH1cblxuICBnZXREaXNwbGF5VmFsdWVzRm9yU2VsZWN0VmFsdWVzKHZhbHVlczogU291cmNlU2VsZWN0VmFsdWU8VCwgTT5bXSk6IE9ic2VydmFibGU8U291cmNlU2VsZWN0RGlzcGxheVZhbHVlPFQsIE0+W10+IHtcbiAgICByZXR1cm4gdGhpcy5fZGlzcGxheUhhc2hNYXAucGlwZShcbiAgICAgIG1lcmdlTWFwKChtZXRhTWFwKSA9PiB7XG4gICAgICAgIGNvbnN0IG1hcHBpbmdSZXN1bHQgPSB2YWx1ZXMubWFwKCh4KSA9PiBbeCwgeC52YWx1ZV0gYXMgW1NvdXJjZVNlbGVjdFZhbHVlPFQsIE0+LCBUXSkubWFwKChbeCwgaGFzaF0sIGkpID0+IFtpLCBoYXNoLCB4LCBtZXRhTWFwLmdldChoYXNoKV0gYXMgW251bWJlciwgVCwgU291cmNlU2VsZWN0VmFsdWU8VCwgTT4sIFNvdXJjZVNlbGVjdERpc3BsYXlWYWx1ZTxULCBNPl0pO1xuXG4gICAgICAgIGNvbnN0IGhhc0Rpc3BsYXkgPSBtYXBwaW5nUmVzdWx0LmZpbHRlcigoeCkgPT4gQm9vbGVhbih4WzNdKSk7XG4gICAgICAgIGNvbnN0IG5lZWRzRGlzcGxheSA9IG1hcHBpbmdSZXN1bHQuZmlsdGVyKCh4KSA9PiAheFszXSk7XG4gICAgICAgIGxldCBvYnM6IE9ic2VydmFibGU8U291cmNlU2VsZWN0RGlzcGxheVZhbHVlPFQsIE0+W10+O1xuXG4gICAgICAgIGlmIChuZWVkc0Rpc3BsYXkubGVuZ3RoID4gMCkge1xuICAgICAgICAgIC8vIEdvIGdldCB0aGUgZGlzcGxheSB2YWx1ZS5cbiAgICAgICAgICBjb25zdCBkaXNwbGF5VmFsdWVzT2JzID0gdGhpcy5kaXNwbGF5Rm9yVmFsdWUobmVlZHNEaXNwbGF5Lm1hcCgoeCkgPT4geFsyXSkpO1xuXG4gICAgICAgICAgb2JzID0gZGlzcGxheVZhbHVlc09icy5waXBlKFxuICAgICAgICAgICAgZmlyc3QoKSxcbiAgICAgICAgICAgIG1hcCgoZGlzcGxheVJlc3VsdHMpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgZGlzcGxheVJlc3VsdHNNYXBwaW5nOiBbU291cmNlU2VsZWN0RGlzcGxheVZhbHVlPFQsIE0+LCBUXVtdID0gKGRpc3BsYXlSZXN1bHRzIGFzIFNvdXJjZVNlbGVjdERpc3BsYXlWYWx1ZTxULCBNPltdKS5tYXAoKHgpID0+IFt4LCB4LnZhbHVlXSk7XG4gICAgICAgICAgICAgIGNvbnN0IHZhbHVlSW5kZXhIYXNoTWFwID0gbmV3IE1hcChkaXNwbGF5UmVzdWx0c01hcHBpbmcubWFwKChbeCwgaGFzaF0pID0+IFtoYXNoLCB4XSkpO1xuXG4gICAgICAgICAgICAgIC8vIFVwZGF0ZSBtZXRhTWFwLiBObyBuZWVkIHRvIHB1c2ggYW4gdXBkYXRlIG5vdGlmaWNhdGlvbi5cbiAgICAgICAgICAgICAgZGlzcGxheVJlc3VsdHNNYXBwaW5nLmZvckVhY2goKFt4LCBoYXNoXSkgPT4gbWV0YU1hcC5zZXQoaGFzaCwgeCkpO1xuXG4gICAgICAgICAgICAgIC8vIFppcCB2YWx1ZXMgYmFjayB0b2dldGhlci5cbiAgICAgICAgICAgICAgY29uc3QgbmV3RGlzcGxheVZhbHVlcyA9IG1hcHBpbmdSZXN1bHQubWFwKCh4KSA9PiB4WzNdID8/IHZhbHVlSW5kZXhIYXNoTWFwLmdldCh4WzFdKSk7XG5cbiAgICAgICAgICAgICAgLy8gUmV0dXJuIGRpc3BsYXkgdmFsdWVzLlxuICAgICAgICAgICAgICByZXR1cm4gbmV3RGlzcGxheVZhbHVlcztcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBJZiBhbGwgZGlzcGxheSB2YWx1ZXMgYXJlIGhhc2hlZCByZXR1cm4gdGhhdC5cbiAgICAgICAgICBvYnMgPSBvZihoYXNEaXNwbGF5Lm1hcCgoeCkgPT4geFszXSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG9icztcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHJlYWRvbmx5IGNvbnRleHQgPSBsb2FkaW5nU3RhdGVDb250ZXh0KHsgb2JzOiB0aGlzLmFsbE9wdGlvbkdyb3Vwc1N0YXRlJCB9KTtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBjb25zdCB7IGxvYWRTb3VyY2VzIH0gPSB0aGlzO1xuXG4gICAgdGhpcy5fbG9hZFNvdXJjZXMubmV4dChsb2FkU291cmNlcz8uKCkgfHwgb2YoW10pKTtcblxuICAgIGlmICh0aGlzLnJlZnJlc2hEaXNwbGF5VmFsdWVzJCAhPSBudWxsKSB7XG4gICAgICB0aGlzLl9jbGVhckRpc3BsYXlIYXNoTWFwU3ViLnN1YnNjcmlwdGlvbiA9IHRoaXMucmVmcmVzaERpc3BsYXlWYWx1ZXMkLnN1YnNjcmliZSgoKSA9PiB0aGlzLl9kaXNwbGF5SGFzaE1hcC5uZXh0KG5ldyBNYXAoKSkpO1xuICAgIH1cblxuICAgIHRoaXMuX2Zvcm1Db250cm9sT2JzLm5leHQodGhpcy5mb3JtQ29udHJvbCk7XG5cbiAgICAvLyBjb3B5IGFsbCB2YWx1ZXMgZnJvbSB0aGUgc291cmNlcyBpbnRvIHRoZSB2YWx1ZXMgaGFzaCBtYXAgdG8gcHJldmVudCByZWxvYWRpbmdcbiAgICB0aGlzLl9jYWNoZU1ldGFTdWIuc3Vic2NyaXB0aW9uID0gdGhpcy52YWx1ZUdyb3Vwc0Zyb21Tb3VyY2VzU3RhdGUkLnN1YnNjcmliZSgoeCkgPT4ge1xuICAgICAgY29uc3QgaGFzaE1hcCA9IHRoaXMuX3ZhbHVlTWV0YUhhc2hNYXAudmFsdWU7XG4gICAgICB4LnZhbHVlLmZvckVhY2goKHgpID0+IHgudmFsdWVzLmZvckVhY2goKHkpID0+IGhhc2hNYXAuc2V0KHkudmFsdWUsIHkpKSk7XG4gICAgfSk7XG4gIH1cblxuICBvdmVycmlkZSBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgIHRoaXMuX2NhY2hlTWV0YVN1Yi5kZXN0cm95KCk7XG4gICAgdGhpcy5fY2xlYXJEaXNwbGF5SGFzaE1hcFN1Yi5kZXN0cm95KCk7XG4gICAgdGhpcy5fdmFsdWVNZXRhSGFzaE1hcC5jb21wbGV0ZSgpO1xuICAgIHRoaXMuX2Rpc3BsYXlIYXNoTWFwLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5fZm9ybUNvbnRyb2xPYnMuY29tcGxldGUoKTtcbiAgICB0aGlzLl9mcm9tT3BlblNvdXJjZS5jb21wbGV0ZSgpO1xuICAgIHRoaXMuX2xvYWRTb3VyY2VzLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5jb250ZXh0LmRlc3Ryb3koKTtcbiAgfVxuXG4gIHJlYWRvbmx5IGhhbmRsZVNlbGVjdE9wdGlvbnM6IFdvcmtVc2luZ0NvbnRleHQ8dW5rbm93bj4gPSAoXywgY29udGV4dCkgPT4ge1xuICAgIGNvbnN0IHsgb3BlblNvdXJjZSB9ID0gdGhpcztcbiAgICBjb25zdCBvcmlnaW4gPSB0aGlzLmJ1dHRvbkVsZW1lbnQoKTtcblxuICAgIGlmIChvcGVuU291cmNlICYmIG9yaWdpbikge1xuICAgICAgY29uc3Qgc291cmNlT2JzID0gb3BlblNvdXJjZSh7IG9yaWdpbiB9KTtcbiAgICAgIGNvbnRleHQuc3RhcnRXb3JraW5nV2l0aE9ic2VydmFibGUoXG4gICAgICAgIHNvdXJjZU9icy5waXBlKFxuICAgICAgICAgIGZpcnN0KCksXG4gICAgICAgICAgdGFwKChyZXN1bHQ6IFNvdXJjZVNlbGVjdE9wZW5Tb3VyY2VSZXN1bHQ8TT4pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlc1RvQWRkID0gbWVyZ2VBcnJheXMoW3Jlc3VsdC5zZWxlY3QsIHJlc3VsdC5vcHRpb25zXSk7XG5cbiAgICAgICAgICAgIGlmICh2YWx1ZXNUb0FkZC5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgdGhpcy5hZGRUb09wZW5Tb3VyY2VNYXAodmFsdWVzVG9BZGQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAocmVzdWx0LnNldCkge1xuICAgICAgICAgICAgICB0aGlzLnNldEN1cnJlbnRWYWx1ZShyZXN1bHQuc2V0Lm1hcCgoeCkgPT4gdGhpcy52YWx1ZVJlYWRlcih4KSkpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChyZXN1bHQuc2VsZWN0KSB7XG4gICAgICAgICAgICAgIHRoaXMuYWRkVG9DdXJyZW50VmFsdWUocmVzdWx0LnNlbGVjdC5tYXAoKHgpID0+IHRoaXMudmFsdWVSZWFkZXIoeCkpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb250ZXh0LnJlamVjdCgpO1xuICAgIH1cbiAgfTtcblxuICBwcml2YXRlIGFkZFRvT3BlblNvdXJjZU1hcChpbnB1dDogTVtdKSB7XG4gICAgY29uc3QgeyB2YWx1ZVJlYWRlciB9ID0gdGhpcztcbiAgICBjb25zdCB7IHZhbHVlczogbWV0YSwgdmFsdWVzU2V0OiBpbml0aWFsVmFsdWVzIH0gPSB0aGlzLl9mcm9tT3BlblNvdXJjZS52YWx1ZTtcblxuICAgIGNvbnN0IG5ld01ldGFGcm9tSW5wdXQ6IFNvdXJjZVNlbGVjdFZhbHVlPFQsIE0+W10gPSBbXTtcbiAgICBjb25zdCB2YWx1ZXNTZXQgPSBuZXcgU2V0KGluaXRpYWxWYWx1ZXMpO1xuXG4gICAgaW5wdXQuZm9yRWFjaCgoeCkgPT4ge1xuICAgICAgY29uc3QgdmFsdWUgPSB2YWx1ZVJlYWRlcih4KTtcblxuICAgICAgaWYgKCF2YWx1ZXNTZXQuaGFzKHZhbHVlKSkge1xuICAgICAgICBuZXdNZXRhRnJvbUlucHV0LnB1c2goeyBtZXRhOiB4LCB2YWx1ZSB9KTtcbiAgICAgICAgdmFsdWVzU2V0LmFkZCh2YWx1ZSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpZiAobmV3TWV0YUZyb21JbnB1dC5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLl9mcm9tT3BlblNvdXJjZS5uZXh0KHtcbiAgICAgICAgdmFsdWVzOiBbLi4ubWV0YSwgLi4ubmV3TWV0YUZyb21JbnB1dF0sXG4gICAgICAgIHZhbHVlc1NldDogdmFsdWVzU2V0XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFkZFRvQ3VycmVudFZhbHVlKHZhbHVlczogVFtdKSB7XG4gICAgY29uc3QgY3VycmVudFZhbHVlID0gYXNBcnJheSh0aGlzLmZvcm1Db250cm9sLnZhbHVlKTtcbiAgICBjb25zdCBuZXdWYWx1ZUFycmF5ID0gWy4uLmN1cnJlbnRWYWx1ZSwgLi4udmFsdWVzXTtcbiAgICB0aGlzLnNldEN1cnJlbnRWYWx1ZShuZXdWYWx1ZUFycmF5KTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0Q3VycmVudFZhbHVlKG5ld1ZhbHVlQXJyYXk6IFRbXSkge1xuICAgIGNvbnN0IHZhbHVlID0gdGhpcy5tdWx0aXBsZSA/IG5ld1ZhbHVlQXJyYXkgOiBsYXN0VmFsdWUobmV3VmFsdWVBcnJheSk7IC8vIHBpY2sgbGFzdCB2YWx1ZSwgYXMgdGhlIGxhc3QgdmFsdWUgYWRkZWQgaXMgdGhlIG5ld2VzdCB2YWx1ZS5cbiAgICB0aGlzLmZvcm1Db250cm9sLnNldFZhbHVlKHZhbHVlKTtcbiAgICB0aGlzLmZvcm1Db250cm9sLm1hcmtBc0RpcnR5KCk7XG4gICAgdGhpcy5mb3JtQ29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJkYngtc291cmNlLXNlbGVjdC1maWVsZFwiPlxuICA8ZGl2IGNsYXNzPVwiZGJ4LXNvdXJjZS1zZWxlY3QtZmllbGQtY29udGVudFwiPlxuICAgIDxtYXQtc2VsZWN0IGNsYXNzPVwiZGJ4LXNvdXJjZS1zZWxlY3QtZmllbGQtc2VsZWN0XCIgW2lkXT1cImlkXCIgW2Zvcm1Db250cm9sXT1cImZvcm1Db250cm9sXCIgW211bHRpcGxlXT1cInByb3BzLm11bHRpcGxlXCI+XG4gICAgICBAZm9yICh2YWx1ZSBvZiBub25Hcm91cGVkVmFsdWVzU2lnbmFsKCk7IHRyYWNrIHZhbHVlLnZhbHVlKSB7XG4gICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJ2YWx1ZS52YWx1ZVwiPlxuICAgICAgICAgIHt7IHZhbHVlLmxhYmVsIH19XG4gICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgIH1cbiAgICAgIEBmb3IgKG9wdGlvbkdyb3VwIG9mIGdyb3VwZWRPcHRpb25zU2lnbmFsKCk7IHRyYWNrIG9wdGlvbkdyb3VwLmxhYmVsKSB7XG4gICAgICAgIDxtYXQtb3B0Z3JvdXAgW2xhYmVsXT1cIm9wdGlvbkdyb3VwLmxhYmVsXCI+XG4gICAgICAgICAgQGZvciAodmFsdWUgb2Ygb3B0aW9uR3JvdXAudmFsdWVzOyB0cmFjayB2YWx1ZS52YWx1ZSkge1xuICAgICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cInZhbHVlLnZhbHVlXCI+XG4gICAgICAgICAgICAgIHt7IHZhbHVlLmxhYmVsIH19XG4gICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgICAgfVxuICAgICAgICA8L21hdC1vcHRncm91cD5cbiAgICAgIH1cbiAgICA8L21hdC1zZWxlY3Q+XG4gICAgQGlmIChzaG93T3BlblNvdXJjZUJ1dHRvbikge1xuICAgICAgPGRieC1idXR0b24tc3BhY2VyPjwvZGJ4LWJ1dHRvbi1zcGFjZXI+XG4gICAgICA8ZGJ4LWFjdGlvbiBkYnhBY3Rpb25WYWx1ZSBbZGJ4QWN0aW9uSGFuZGxlcl09XCJoYW5kbGVTZWxlY3RPcHRpb25zXCIgY2xhc3M9XCJkYngtc291cmNlLXNlbGVjdC1maWVsZC1idXR0b25cIj5cbiAgICAgICAgPGRieC1idXR0b24gI2J1dHRvbiBkYnhBY3Rpb25CdXR0b24gW2ZhYl09XCJ0cnVlXCIgW2ljb25Pbmx5XT1cInRydWVcIiBbaWNvbl09XCJzZWxlY3RCdXR0b25JY29uXCI+PC9kYngtYnV0dG9uPlxuICAgICAgPC9kYngtYWN0aW9uPlxuICAgIH1cbiAgPC9kaXY+XG4gIDxkYngtbG9hZGluZyBjbGFzcz1cImRieC1zb3VyY2Utc2VsZWN0LWZpZWxkLWxvYWRpbmdcIiBbbGluZWFyXT1cInRydWVcIiBbY29udGV4dF09XCJjb250ZXh0XCI+PC9kYngtbG9hZGluZz5cbjwvZGl2PlxuIl19
@@ -1,93 +1,26 @@
1
- import { CommonModule } from '@angular/common';
2
1
  import { NgModule } from '@angular/core';
3
- import { FormsModule, ReactiveFormsModule } from '@angular/forms';
4
- import { MatChipsModule } from '@angular/material/chips';
5
- import { MatFormFieldModule } from '@angular/material/form-field';
6
- import { MatIconModule } from '@angular/material/icon';
7
- import { MatInputModule } from '@angular/material/input';
8
2
  import { FormlyModule } from '@ngx-formly/core';
9
- import { DbxDatePipeModule } from '@dereekb/dbx-core';
10
- import { MatDatepickerModule } from '@angular/material/datepicker';
11
- import { MatNativeDateModule } from '@angular/material/core';
12
- import { FlexLayoutModule } from '@ngbracket/ngx-layout';
13
- import { MatButtonModule } from '@angular/material/button';
14
- import { MatMenuModule } from '@angular/material/menu';
15
- import { MatDividerModule } from '@angular/material/divider';
16
3
  import { DbxFormSourceSelectFieldComponent } from './sourceselect.field.component';
17
- import { MatSelectModule } from '@angular/material/select';
18
- import { DbxActionModule, DbxButtonModule, DbxLoadingModule } from '@dereekb/dbx-web';
19
4
  import * as i0 from "@angular/core";
20
5
  import * as i1 from "@ngx-formly/core";
21
6
  export class DbxFormFormlySourceSelectModule {
22
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormFormlySourceSelectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
23
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: DbxFormFormlySourceSelectModule, declarations: [DbxFormSourceSelectFieldComponent], imports: [CommonModule,
24
- FormsModule,
25
- MatInputModule,
26
- MatDividerModule,
27
- MatFormFieldModule,
28
- MatSelectModule,
29
- MatButtonModule,
30
- MatDatepickerModule,
31
- MatNativeDateModule,
32
- MatMenuModule,
33
- ReactiveFormsModule,
34
- DbxDatePipeModule,
35
- DbxLoadingModule,
36
- DbxButtonModule,
37
- DbxActionModule,
38
- MatChipsModule,
39
- MatIconModule,
40
- FlexLayoutModule, i1.FormlyModule], exports: [DbxFormSourceSelectFieldComponent] });
41
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormFormlySourceSelectModule, imports: [CommonModule,
42
- FormsModule,
43
- MatInputModule,
44
- MatDividerModule,
45
- MatFormFieldModule,
46
- MatSelectModule,
47
- MatButtonModule,
48
- MatDatepickerModule,
49
- MatNativeDateModule,
50
- MatMenuModule,
51
- ReactiveFormsModule,
52
- DbxDatePipeModule,
53
- DbxLoadingModule,
54
- DbxButtonModule,
55
- DbxActionModule,
56
- MatChipsModule,
57
- MatIconModule,
58
- FlexLayoutModule,
7
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormFormlySourceSelectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
8
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: DbxFormFormlySourceSelectModule, imports: [DbxFormSourceSelectFieldComponent, i1.FormlyModule], exports: [DbxFormSourceSelectFieldComponent] });
9
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormFormlySourceSelectModule, imports: [DbxFormSourceSelectFieldComponent,
59
10
  FormlyModule.forChild({
60
11
  types: [{ name: 'sourceselectfield', component: DbxFormSourceSelectFieldComponent, wrappers: ['form-field'] }]
61
12
  })] });
62
13
  }
63
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormFormlySourceSelectModule, decorators: [{
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormFormlySourceSelectModule, decorators: [{
64
15
  type: NgModule,
65
16
  args: [{
66
17
  imports: [
67
- CommonModule,
68
- FormsModule,
69
- MatInputModule,
70
- MatDividerModule,
71
- MatFormFieldModule,
72
- MatSelectModule,
73
- MatButtonModule,
74
- MatDatepickerModule,
75
- MatNativeDateModule,
76
- MatMenuModule,
77
- ReactiveFormsModule,
78
- DbxDatePipeModule,
79
- DbxLoadingModule,
80
- DbxButtonModule,
81
- DbxActionModule,
82
- MatChipsModule,
83
- MatIconModule,
84
- FlexLayoutModule,
18
+ DbxFormSourceSelectFieldComponent,
85
19
  FormlyModule.forChild({
86
20
  types: [{ name: 'sourceselectfield', component: DbxFormSourceSelectFieldComponent, wrappers: ['form-field'] }]
87
21
  })
88
22
  ],
89
- declarations: [DbxFormSourceSelectFieldComponent],
90
23
  exports: [DbxFormSourceSelectFieldComponent]
91
24
  }]
92
25
  }] });
93
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlc2VsZWN0LmZpZWxkLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1mb3JtL3NyYy9saWIvZm9ybWx5L2ZpZWxkL3NlbGVjdGlvbi9zb3VyY2VzZWxlY3Qvc291cmNlc2VsZWN0LmZpZWxkLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzdELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbkYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7OztBQTZCdEYsTUFBTSxPQUFPLCtCQUErQjt3R0FBL0IsK0JBQStCO3lHQUEvQiwrQkFBK0IsaUJBSDNCLGlDQUFpQyxhQXRCOUMsWUFBWTtZQUNaLFdBQVc7WUFDWCxjQUFjO1lBQ2QsZ0JBQWdCO1lBQ2hCLGtCQUFrQjtZQUNsQixlQUFlO1lBQ2YsZUFBZTtZQUNmLG1CQUFtQjtZQUNuQixtQkFBbUI7WUFDbkIsYUFBYTtZQUNiLG1CQUFtQjtZQUNuQixpQkFBaUI7WUFDakIsZ0JBQWdCO1lBQ2hCLGVBQWU7WUFDZixlQUFlO1lBQ2YsY0FBYztZQUNkLGFBQWE7WUFDYixnQkFBZ0IsOEJBTVIsaUNBQWlDO3lHQUVoQywrQkFBK0IsWUF6QnhDLFlBQVk7WUFDWixXQUFXO1lBQ1gsY0FBYztZQUNkLGdCQUFnQjtZQUNoQixrQkFBa0I7WUFDbEIsZUFBZTtZQUNmLGVBQWU7WUFDZixtQkFBbUI7WUFDbkIsbUJBQW1CO1lBQ25CLGFBQWE7WUFDYixtQkFBbUI7WUFDbkIsaUJBQWlCO1lBQ2pCLGdCQUFnQjtZQUNoQixlQUFlO1lBQ2YsZUFBZTtZQUNmLGNBQWM7WUFDZCxhQUFhO1lBQ2IsZ0JBQWdCO1lBQ2hCLFlBQVksQ0FBQyxRQUFRLENBQUM7Z0JBQ3BCLEtBQUssRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLG1CQUFtQixFQUFFLFNBQVMsRUFBRSxpQ0FBaUMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDO2FBQy9HLENBQUM7OzRGQUtPLCtCQUErQjtrQkEzQjNDLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxjQUFjO3dCQUNkLGdCQUFnQjt3QkFDaEIsa0JBQWtCO3dCQUNsQixlQUFlO3dCQUNmLGVBQWU7d0JBQ2YsbUJBQW1CO3dCQUNuQixtQkFBbUI7d0JBQ25CLGFBQWE7d0JBQ2IsbUJBQW1CO3dCQUNuQixpQkFBaUI7d0JBQ2pCLGdCQUFnQjt3QkFDaEIsZUFBZTt3QkFDZixlQUFlO3dCQUNmLGNBQWM7d0JBQ2QsYUFBYTt3QkFDYixnQkFBZ0I7d0JBQ2hCLFlBQVksQ0FBQyxRQUFRLENBQUM7NEJBQ3BCLEtBQUssRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLG1CQUFtQixFQUFFLFNBQVMsRUFBRSxpQ0FBaUMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDO3lCQUMvRyxDQUFDO3FCQUNIO29CQUNELFlBQVksRUFBRSxDQUFDLGlDQUFpQyxDQUFDO29CQUNqRCxPQUFPLEVBQUUsQ0FBQyxpQ0FBaUMsQ0FBQztpQkFDN0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0Q2hpcHNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGlwcyc7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHsgRm9ybWx5TW9kdWxlIH0gZnJvbSAnQG5neC1mb3JtbHkvY29yZSc7XG5pbXBvcnQgeyBEYnhEYXRlUGlwZU1vZHVsZSB9IGZyb20gJ0BkZXJlZWtiL2RieC1jb3JlJztcbmltcG9ydCB7IE1hdERhdGVwaWNrZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyJztcbmltcG9ydCB7IE1hdE5hdGl2ZURhdGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7IEZsZXhMYXlvdXRNb2R1bGUgfSBmcm9tICdAbmdicmFja2V0L25neC1sYXlvdXQnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdE1lbnVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcbmltcG9ydCB7IE1hdERpdmlkZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaXZpZGVyJztcbmltcG9ydCB7IERieEZvcm1Tb3VyY2VTZWxlY3RGaWVsZENvbXBvbmVudCB9IGZyb20gJy4vc291cmNlc2VsZWN0LmZpZWxkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNYXRTZWxlY3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xuaW1wb3J0IHsgRGJ4QWN0aW9uTW9kdWxlLCBEYnhCdXR0b25Nb2R1bGUsIERieExvYWRpbmdNb2R1bGUgfSBmcm9tICdAZGVyZWVrYi9kYngtd2ViJztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBNYXRJbnB1dE1vZHVsZSxcbiAgICBNYXREaXZpZGVyTW9kdWxlLFxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcbiAgICBNYXRTZWxlY3RNb2R1bGUsXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgIE1hdERhdGVwaWNrZXJNb2R1bGUsXG4gICAgTWF0TmF0aXZlRGF0ZU1vZHVsZSxcbiAgICBNYXRNZW51TW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgRGJ4RGF0ZVBpcGVNb2R1bGUsXG4gICAgRGJ4TG9hZGluZ01vZHVsZSxcbiAgICBEYnhCdXR0b25Nb2R1bGUsXG4gICAgRGJ4QWN0aW9uTW9kdWxlLFxuICAgIE1hdENoaXBzTW9kdWxlLFxuICAgIE1hdEljb25Nb2R1bGUsXG4gICAgRmxleExheW91dE1vZHVsZSxcbiAgICBGb3JtbHlNb2R1bGUuZm9yQ2hpbGQoe1xuICAgICAgdHlwZXM6IFt7IG5hbWU6ICdzb3VyY2VzZWxlY3RmaWVsZCcsIGNvbXBvbmVudDogRGJ4Rm9ybVNvdXJjZVNlbGVjdEZpZWxkQ29tcG9uZW50LCB3cmFwcGVyczogWydmb3JtLWZpZWxkJ10gfV1cbiAgICB9KVxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFtEYnhGb3JtU291cmNlU2VsZWN0RmllbGRDb21wb25lbnRdLFxuICBleHBvcnRzOiBbRGJ4Rm9ybVNvdXJjZVNlbGVjdEZpZWxkQ29tcG9uZW50XVxufSlcbmV4cG9ydCBjbGFzcyBEYnhGb3JtRm9ybWx5U291cmNlU2VsZWN0TW9kdWxlIHt9XG4iXX0=
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlc2VsZWN0LmZpZWxkLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1mb3JtL3NyYy9saWIvZm9ybWx5L2ZpZWxkL3NlbGVjdGlvbi9zb3VyY2VzZWxlY3Qvc291cmNlc2VsZWN0LmZpZWxkLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7O0FBV25GLE1BQU0sT0FBTywrQkFBK0I7d0dBQS9CLCtCQUErQjt5R0FBL0IsK0JBQStCLFlBUHhDLGlDQUFpQyw4QkFLekIsaUNBQWlDO3lHQUVoQywrQkFBK0IsWUFQeEMsaUNBQWlDO1lBQ2pDLFlBQVksQ0FBQyxRQUFRLENBQUM7Z0JBQ3BCLEtBQUssRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLG1CQUFtQixFQUFFLFNBQVMsRUFBRSxpQ0FBaUMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDO2FBQy9HLENBQUM7OzRGQUlPLCtCQUErQjtrQkFUM0MsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsaUNBQWlDO3dCQUNqQyxZQUFZLENBQUMsUUFBUSxDQUFDOzRCQUNwQixLQUFLLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxTQUFTLEVBQUUsaUNBQWlDLEVBQUUsUUFBUSxFQUFFLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQzt5QkFDL0csQ0FBQztxQkFDSDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxpQ0FBaUMsQ0FBQztpQkFDN0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybWx5TW9kdWxlIH0gZnJvbSAnQG5neC1mb3JtbHkvY29yZSc7XG5pbXBvcnQgeyBEYnhGb3JtU291cmNlU2VsZWN0RmllbGRDb21wb25lbnQgfSBmcm9tICcuL3NvdXJjZXNlbGVjdC5maWVsZC5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgRGJ4Rm9ybVNvdXJjZVNlbGVjdEZpZWxkQ29tcG9uZW50LFxuICAgIEZvcm1seU1vZHVsZS5mb3JDaGlsZCh7XG4gICAgICB0eXBlczogW3sgbmFtZTogJ3NvdXJjZXNlbGVjdGZpZWxkJywgY29tcG9uZW50OiBEYnhGb3JtU291cmNlU2VsZWN0RmllbGRDb21wb25lbnQsIHdyYXBwZXJzOiBbJ2Zvcm0tZmllbGQnXSB9XVxuICAgIH0pXG4gIF0sXG4gIGV4cG9ydHM6IFtEYnhGb3JtU291cmNlU2VsZWN0RmllbGRDb21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIERieEZvcm1Gb3JtbHlTb3VyY2VTZWxlY3RNb2R1bGUge31cbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlc2VsZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZvcm0vc3JjL2xpYi9mb3JtbHkvZmllbGQvc2VsZWN0aW9uL3NvdXJjZXNlbGVjdC9zb3VyY2VzZWxlY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNlbGVjdGlvbkRpc3BsYXlWYWx1ZSB9IGZyb20gJy4vLi4vc2VsZWN0aW9uJztcbmltcG9ydCB7IExvYWRpbmdTdGF0ZSB9IGZyb20gJ0BkZXJlZWtiL3J4anMnO1xuaW1wb3J0IHsgRmFjdG9yeSwgRmFjdG9yeVdpdGhSZXF1aXJlZElucHV0LCBNYXBGdW5jdGlvbiwgTWF5YmUsIFByaW1hdGl2ZUtleSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNvdXJjZVNlbGVjdFZhbHVlPFQgZXh0ZW5kcyBQcmltYXRpdmVLZXkgPSBQcmltYXRpdmVLZXksIE0gPSB1bmtub3duPiB7XG4gIHZhbHVlOiBUO1xuICBtZXRhOiBNO1xufVxuXG4vKipcbiAqIEdyb3VwIG9mIFNvdXJjZVNlbGVjdFZhbHVlcyB3aXRoIGEgbGFiZWwuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU291cmNlU2VsZWN0VmFsdWVHcm91cDxUIGV4dGVuZHMgUHJpbWF0aXZlS2V5ID0gUHJpbWF0aXZlS2V5LCBNID0gdW5rbm93bj4ge1xuICAvKipcbiAgICogTGFiZWwgZm9yIHRoaXMgc291cmNlLlxuICAgKi9cbiAgcmVhZG9ubHkgbGFiZWw6IHN0cmluZztcbiAgLyoqXG4gICAqIFZhbHVlc1xuICAgKi9cbiAgcmVhZG9ubHkgdmFsdWVzOiBTb3VyY2VTZWxlY3RWYWx1ZTxULCBNPltdO1xufVxuXG4vKipcbiAqIERpc3BsYXkgdmFsdWUgY29uZmlndXJhdGlvbiBmb3IgYSBTb3VyY2VTZWxlY3RWYWx1ZS5cbiAqL1xuZXhwb3J0IHR5cGUgU291cmNlU2VsZWN0RGlzcGxheVZhbHVlPFQgZXh0ZW5kcyBQcmltYXRpdmVLZXkgPSBQcmltYXRpdmVLZXksIE0gPSB1bmtub3duPiA9IE9taXQ8U2VsZWN0aW9uRGlzcGxheVZhbHVlPFQsIE0+LCAnbWV0YSc+ICYgUGljazxTb3VyY2VTZWxlY3RWYWx1ZTxULCBNPiwgJ21ldGEnPjtcblxuLyoqXG4gKiBEaXNwbGF5IHZhbHVlIGNvbmZpZ3VyYXRpb24gZm9yIGEgU291cmNlU2VsZWN0VmFsdWUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU291cmNlU2VsZWN0RGlzcGxheVZhbHVlR3JvdXA8VCBleHRlbmRzIFByaW1hdGl2ZUtleSA9IFByaW1hdGl2ZUtleSwgTSA9IHVua25vd24+IHtcbiAgLyoqXG4gICAqIExhYmVsIGZvciB0aGlzIHNvdXJjZS5cbiAgICovXG4gIHJlYWRvbmx5IGxhYmVsOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBWYWx1ZXNcbiAgICovXG4gIHJlYWRvbmx5IHZhbHVlczogU291cmNlU2VsZWN0RGlzcGxheVZhbHVlPFQsIE0+W107XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgYSBTb3VyY2VTZWxlY3QgaW5wdXQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU291cmNlU2VsZWN0T3B0aW9uczxUIGV4dGVuZHMgUHJpbWF0aXZlS2V5ID0gUHJpbWF0aXZlS2V5LCBNID0gdW5rbm93bj4ge1xuICByZWFkb25seSBub25Hcm91cGVkVmFsdWVzOiBTb3VyY2VTZWxlY3REaXNwbGF5VmFsdWU8VCwgTT5bXTtcbiAgcmVhZG9ubHkgZ3JvdXBlZFZhbHVlczogU291cmNlU2VsZWN0RGlzcGxheVZhbHVlR3JvdXA8VCwgTT5bXTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIGFuIG9ic2VydmFibGUgdGhhdCBsb2FkcyBhbGwgdGhlIGRpc3BsYXkgaW5mbyBmb3IgdGhlIGlucHV0IHZhbHVlcy5cbiAqL1xuZXhwb3J0IHR5cGUgU291cmNlU2VsZWN0RGlzcGxheUZ1bmN0aW9uPFQgZXh0ZW5kcyBQcmltYXRpdmVLZXkgPSBQcmltYXRpdmVLZXksIE0gPSB1bmtub3duPiA9IE1hcEZ1bmN0aW9uPFNvdXJjZVNlbGVjdFZhbHVlPFQsIE0+W10sIE9ic2VydmFibGU8U291cmNlU2VsZWN0RGlzcGxheVZhbHVlPFQsIE0+W10+PjtcblxuLyoqXG4gKiBSZWFkcyB0aGUgdmFsdWUgZnJvbSB0aGUgaW5wdXQgbWV0YSB2YWx1ZS4gU2hvdWxkIGFsd2F5cyByZXR1cm4gdGhlIHNhbWUgdmFsdWUuXG4gKi9cbmV4cG9ydCB0eXBlIFNvdXJjZVNlbGVjdE1ldGFWYWx1ZVJlYWRlcjxUIGV4dGVuZHMgUHJpbWF0aXZlS2V5ID0gUHJpbWF0aXZlS2V5LCBNID0gdW5rbm93bj4gPSBNYXBGdW5jdGlvbjxNLCBUPjtcblxuLyoqXG4gKiBSZXR1cm5zIGFuIG9ic2VydmFibGUgdGhhdCBsb2FkcyB0aGUgbWV0YWRhdGEgb2YgdGhlIGlucHV0IHZhbHVlcy5cbiAqL1xuZXhwb3J0IHR5cGUgU291cmNlU2VsZWN0VmFsdWVNZXRhTG9hZGVyPFQgZXh0ZW5kcyBQcmltYXRpdmVLZXkgPSBQcmltYXRpdmVLZXksIE0gPSB1bmtub3duPiA9IEZhY3RvcnlXaXRoUmVxdWlyZWRJbnB1dDxPYnNlcnZhYmxlPE1bXT4sIFRbXT47XG5cbmV4cG9ydCBpbnRlcmZhY2UgU291cmNlU2VsZWN0T3BlbkZ1bmN0aW9uUGFyYW1zIHtcbiAgLyoqXG4gICAqIE9yaWdpbiBvZiB0aGUgYnV0dG9uIGZvciB0aGUgU291cmNlU2VsZWN0XG4gICAqL1xuICBvcmlnaW46IEVsZW1lbnRSZWY7XG59XG5cbi8qKlxuICogUmV0dXJucyBhbiBvYnNlcnZhYmxlIHRoYXQgcmV0dXJucyBhbiBhcnJheSBvZiBtZXRhIHZhbHVlcyB0byBiZSBhZGRlZCB0byB0aGUgc2VsZWN0aW9uLlxuICovXG5leHBvcnQgdHlwZSBTb3VyY2VTZWxlY3RPcGVuRnVuY3Rpb248TSA9IHVua25vd24+ID0gRmFjdG9yeVdpdGhSZXF1aXJlZElucHV0PE9ic2VydmFibGU8U291cmNlU2VsZWN0T3BlblNvdXJjZVJlc3VsdDxNPj4sIFNvdXJjZVNlbGVjdE9wZW5GdW5jdGlvblBhcmFtcz47XG5cbi8qKlxuICogUmV0dXJucyBhbiBvYnNlcnZhYmxlIHRoYXQgcmV0dXJucyBhbiBhcnJheSBvZiBtZXRhIHZhbHVlcyB0byBiZSBhZGRlZCB0byB0aGUgc2VsZWN0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNvdXJjZVNlbGVjdE9wZW5Tb3VyY2VSZXN1bHQ8TSA9IHVua25vd24+IHtcbiAgLyoqXG4gICAqIFRoZSB2YWx1ZXMgdG8gc2V0IGVudGlyZWx5LCBjbGVhcmluZyB0aGUgY3VycmVudCBzZWxlY3Rpb24uXG4gICAqXG4gICAqIElmIG51bGwvdW5kZWZpbmVkLCBjdXJyZW50IHZhbHVlcyB3aWxsIG5vdCBiZSByZXBsYWNlZC5cbiAgICovXG4gIHJlYWRvbmx5IHNldD86IE1heWJlPE1bXT47XG4gIC8qKlxuICAgKiBOZXcgdmFsdWVzIHRvIGFkZCB0byB0aGUgc2VsZWN0aW9uLCBpZiBhcHBsaWNhYmxlLlxuICAgKlxuICAgKiBJZiBudWxsL3VuZGVmaW5lZCwgbm8gdmFsdWVzIHdpbGwgYmUgYWRkZWQgdG8gc2VsZWN0aW9uLlxuICAgKlxuICAgKiBJcyBpZ25vcmVkIGlmIFwic2V0XCIgdmFsdWUgaXMgcHJvdmlkZWQuXG4gICAqL1xuICByZWFkb25seSBzZWxlY3Q/OiBNYXliZTxNW10+O1xuICAvKipcbiAgICogTmV3IG9wdGlvbnMgdG8gbWFrZSBhdmFpbGFibGUgZm9yIHNlbGVjdGlvbiwgYnV0IGFyZSBub3QgYXV0b21hdGljYWxseSBzZWxlY3RlZC5cbiAgICpcbiAgICogSWYgbnVsbC91bmRlZmluZWQsIG5vIG9wdGlvbnMgd2lsbCBiZSBhZGRlZC5cbiAgICovXG4gIHJlYWRvbmx5IG9wdGlvbnM/OiBNYXliZTxNW10+O1xufVxuXG4vKipcbiAqIEZ1bmN0aW9uIHVzZWQgdG8gcmV0dXJuIGFuIG9ic2VydmFibGUgZm9yIGFuIGFycmF5IG9mIFNvdXJjZVNlbGVjdExvYWRTb3VyY2UgdmFsdWVzLlxuICovXG5leHBvcnQgdHlwZSBTb3VyY2VTZWxlY3RMb2FkU291cmNlc0Z1bmN0aW9uPE0gPSB1bmtub3duPiA9IEZhY3Rvcnk8T2JzZXJ2YWJsZTxTb3VyY2VTZWxlY3RMb2FkU291cmNlPE0+W10+PjtcblxuLyoqXG4gKiBTb3VyY2UgdGhhdCBoYXMgYSBsYWJlbCBhbmQgYW4gb2JzZXJ2YWJsZSBvZiBtZXRhIHZhbHVlcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTb3VyY2VTZWxlY3RMb2FkU291cmNlPE0gPSB1bmtub3duPiB7XG4gIC8qKlxuICAgKiBMYWJlbCBmb3IgdGhpcyBzb3VyY2UuXG4gICAqL1xuICByZWFkb25seSBsYWJlbDogc3RyaW5nO1xuICAvKipcbiAgICogTWV0YWRhdGEgbG9hZGVkIGZyb20gdGhpcyBzb3VyY2UuXG4gICAqL1xuICByZWFkb25seSBtZXRhOiBPYnNlcnZhYmxlPExvYWRpbmdTdGF0ZTxNW10+Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTb3VyY2VTZWxlY3RMb2FkU291cmNlTG9hZGluZ1N0YXRlPE0gPSB1bmtub3duPiBleHRlbmRzIExvYWRpbmdTdGF0ZTxNW10+IHtcbiAgLyoqXG4gICAqIExhYmVsIGZvciB0aGlzIHNvdXJjZS5cbiAgICovXG4gIHJlYWRvbmx5IGxhYmVsOiBzdHJpbmc7XG59XG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlc2VsZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZvcm0vc3JjL2xpYi9mb3JtbHkvZmllbGQvc2VsZWN0aW9uL3NvdXJjZXNlbGVjdC9zb3VyY2VzZWxlY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNlbGVjdGlvbkRpc3BsYXlWYWx1ZSB9IGZyb20gJy4vLi4vc2VsZWN0aW9uJztcbmltcG9ydCB7IExvYWRpbmdTdGF0ZSB9IGZyb20gJ0BkZXJlZWtiL3J4anMnO1xuaW1wb3J0IHsgRmFjdG9yeSwgRmFjdG9yeVdpdGhSZXF1aXJlZElucHV0LCBNYXBGdW5jdGlvbiwgTWF5YmUsIFByaW1hdGl2ZUtleSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNvdXJjZVNlbGVjdFZhbHVlPFQgZXh0ZW5kcyBQcmltYXRpdmVLZXkgPSBQcmltYXRpdmVLZXksIE0gPSB1bmtub3duPiB7XG4gIHZhbHVlOiBUO1xuICBtZXRhOiBNO1xufVxuXG4vKipcbiAqIEdyb3VwIG9mIFNvdXJjZVNlbGVjdFZhbHVlcyB3aXRoIGEgbGFiZWwuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU291cmNlU2VsZWN0VmFsdWVHcm91cDxUIGV4dGVuZHMgUHJpbWF0aXZlS2V5ID0gUHJpbWF0aXZlS2V5LCBNID0gdW5rbm93bj4ge1xuICAvKipcbiAgICogTGFiZWwgZm9yIHRoaXMgc291cmNlLlxuICAgKi9cbiAgcmVhZG9ubHkgbGFiZWw6IHN0cmluZztcbiAgLyoqXG4gICAqIFZhbHVlc1xuICAgKi9cbiAgcmVhZG9ubHkgdmFsdWVzOiBTb3VyY2VTZWxlY3RWYWx1ZTxULCBNPltdO1xufVxuXG4vKipcbiAqIERpc3BsYXkgdmFsdWUgY29uZmlndXJhdGlvbiBmb3IgYSBTb3VyY2VTZWxlY3RWYWx1ZS5cbiAqL1xuZXhwb3J0IHR5cGUgU291cmNlU2VsZWN0RGlzcGxheVZhbHVlPFQgZXh0ZW5kcyBQcmltYXRpdmVLZXkgPSBQcmltYXRpdmVLZXksIE0gPSB1bmtub3duPiA9IE9taXQ8U2VsZWN0aW9uRGlzcGxheVZhbHVlPFQsIE0+LCAnbWV0YSc+ICYgUGljazxTb3VyY2VTZWxlY3RWYWx1ZTxULCBNPiwgJ21ldGEnPjtcblxuLyoqXG4gKiBEaXNwbGF5IHZhbHVlIGNvbmZpZ3VyYXRpb24gZm9yIGEgU291cmNlU2VsZWN0VmFsdWUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU291cmNlU2VsZWN0RGlzcGxheVZhbHVlR3JvdXA8VCBleHRlbmRzIFByaW1hdGl2ZUtleSA9IFByaW1hdGl2ZUtleSwgTSA9IHVua25vd24+IHtcbiAgLyoqXG4gICAqIExhYmVsIGZvciB0aGlzIHNvdXJjZS5cbiAgICovXG4gIHJlYWRvbmx5IGxhYmVsOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBWYWx1ZXNcbiAgICovXG4gIHJlYWRvbmx5IHZhbHVlczogU291cmNlU2VsZWN0RGlzcGxheVZhbHVlPFQsIE0+W107XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgYSBTb3VyY2VTZWxlY3QgaW5wdXQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU291cmNlU2VsZWN0T3B0aW9uczxUIGV4dGVuZHMgUHJpbWF0aXZlS2V5ID0gUHJpbWF0aXZlS2V5LCBNID0gdW5rbm93bj4ge1xuICByZWFkb25seSBub25Hcm91cGVkVmFsdWVzOiBTb3VyY2VTZWxlY3REaXNwbGF5VmFsdWU8VCwgTT5bXTtcbiAgcmVhZG9ubHkgZ3JvdXBlZFZhbHVlczogU291cmNlU2VsZWN0RGlzcGxheVZhbHVlR3JvdXA8VCwgTT5bXTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIGFuIG9ic2VydmFibGUgdGhhdCBsb2FkcyBhbGwgdGhlIGRpc3BsYXkgaW5mbyBmb3IgdGhlIGlucHV0IHZhbHVlcy5cbiAqL1xuZXhwb3J0IHR5cGUgU291cmNlU2VsZWN0RGlzcGxheUZ1bmN0aW9uPFQgZXh0ZW5kcyBQcmltYXRpdmVLZXkgPSBQcmltYXRpdmVLZXksIE0gPSB1bmtub3duPiA9IE1hcEZ1bmN0aW9uPFNvdXJjZVNlbGVjdFZhbHVlPFQsIE0+W10sIE9ic2VydmFibGU8U291cmNlU2VsZWN0RGlzcGxheVZhbHVlPFQsIE0+W10+PjtcblxuLyoqXG4gKiBSZWFkcyB0aGUgdmFsdWUgZnJvbSB0aGUgaW5wdXQgbWV0YSB2YWx1ZS4gU2hvdWxkIGFsd2F5cyByZXR1cm4gdGhlIHNhbWUgdmFsdWUuXG4gKi9cbmV4cG9ydCB0eXBlIFNvdXJjZVNlbGVjdE1ldGFWYWx1ZVJlYWRlcjxUIGV4dGVuZHMgUHJpbWF0aXZlS2V5ID0gUHJpbWF0aXZlS2V5LCBNID0gdW5rbm93bj4gPSBNYXBGdW5jdGlvbjxNLCBUPjtcblxuLyoqXG4gKiBSZXR1cm5zIGFuIG9ic2VydmFibGUgdGhhdCBsb2FkcyB0aGUgbWV0YWRhdGEgb2YgdGhlIGlucHV0IHZhbHVlcy5cbiAqL1xuZXhwb3J0IHR5cGUgU291cmNlU2VsZWN0VmFsdWVNZXRhTG9hZGVyPFQgZXh0ZW5kcyBQcmltYXRpdmVLZXkgPSBQcmltYXRpdmVLZXksIE0gPSB1bmtub3duPiA9IEZhY3RvcnlXaXRoUmVxdWlyZWRJbnB1dDxPYnNlcnZhYmxlPE1bXT4sIFRbXT47XG5cbmV4cG9ydCBpbnRlcmZhY2UgU291cmNlU2VsZWN0T3BlbkZ1bmN0aW9uUGFyYW1zIHtcbiAgLyoqXG4gICAqIE9yaWdpbiBvZiB0aGUgYnV0dG9uIGZvciB0aGUgU291cmNlU2VsZWN0XG4gICAqL1xuICByZWFkb25seSBvcmlnaW46IEVsZW1lbnRSZWY7XG59XG5cbi8qKlxuICogUmV0dXJucyBhbiBvYnNlcnZhYmxlIHRoYXQgcmV0dXJucyBhbiBhcnJheSBvZiBtZXRhIHZhbHVlcyB0byBiZSBhZGRlZCB0byB0aGUgc2VsZWN0aW9uLlxuICovXG5leHBvcnQgdHlwZSBTb3VyY2VTZWxlY3RPcGVuRnVuY3Rpb248TSA9IHVua25vd24+ID0gRmFjdG9yeVdpdGhSZXF1aXJlZElucHV0PE9ic2VydmFibGU8U291cmNlU2VsZWN0T3BlblNvdXJjZVJlc3VsdDxNPj4sIFNvdXJjZVNlbGVjdE9wZW5GdW5jdGlvblBhcmFtcz47XG5cbi8qKlxuICogUmV0dXJucyBhbiBvYnNlcnZhYmxlIHRoYXQgcmV0dXJucyBhbiBhcnJheSBvZiBtZXRhIHZhbHVlcyB0byBiZSBhZGRlZCB0byB0aGUgc2VsZWN0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNvdXJjZVNlbGVjdE9wZW5Tb3VyY2VSZXN1bHQ8TSA9IHVua25vd24+IHtcbiAgLyoqXG4gICAqIFRoZSB2YWx1ZXMgdG8gc2V0IGVudGlyZWx5LCBjbGVhcmluZyB0aGUgY3VycmVudCBzZWxlY3Rpb24uXG4gICAqXG4gICAqIElmIG51bGwvdW5kZWZpbmVkLCBjdXJyZW50IHZhbHVlcyB3aWxsIG5vdCBiZSByZXBsYWNlZC5cbiAgICovXG4gIHJlYWRvbmx5IHNldD86IE1heWJlPE1bXT47XG4gIC8qKlxuICAgKiBOZXcgdmFsdWVzIHRvIGFkZCB0byB0aGUgc2VsZWN0aW9uLCBpZiBhcHBsaWNhYmxlLlxuICAgKlxuICAgKiBJZiBudWxsL3VuZGVmaW5lZCwgbm8gdmFsdWVzIHdpbGwgYmUgYWRkZWQgdG8gc2VsZWN0aW9uLlxuICAgKlxuICAgKiBJcyBpZ25vcmVkIGlmIFwic2V0XCIgdmFsdWUgaXMgcHJvdmlkZWQuXG4gICAqL1xuICByZWFkb25seSBzZWxlY3Q/OiBNYXliZTxNW10+O1xuICAvKipcbiAgICogTmV3IG9wdGlvbnMgdG8gbWFrZSBhdmFpbGFibGUgZm9yIHNlbGVjdGlvbiwgYnV0IGFyZSBub3QgYXV0b21hdGljYWxseSBzZWxlY3RlZC5cbiAgICpcbiAgICogSWYgbnVsbC91bmRlZmluZWQsIG5vIG9wdGlvbnMgd2lsbCBiZSBhZGRlZC5cbiAgICovXG4gIHJlYWRvbmx5IG9wdGlvbnM/OiBNYXliZTxNW10+O1xufVxuXG4vKipcbiAqIEZ1bmN0aW9uIHVzZWQgdG8gcmV0dXJuIGFuIG9ic2VydmFibGUgZm9yIGFuIGFycmF5IG9mIFNvdXJjZVNlbGVjdExvYWRTb3VyY2UgdmFsdWVzLlxuICovXG5leHBvcnQgdHlwZSBTb3VyY2VTZWxlY3RMb2FkU291cmNlc0Z1bmN0aW9uPE0gPSB1bmtub3duPiA9IEZhY3Rvcnk8T2JzZXJ2YWJsZTxTb3VyY2VTZWxlY3RMb2FkU291cmNlPE0+W10+PjtcblxuLyoqXG4gKiBTb3VyY2UgdGhhdCBoYXMgYSBsYWJlbCBhbmQgYW4gb2JzZXJ2YWJsZSBvZiBtZXRhIHZhbHVlcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTb3VyY2VTZWxlY3RMb2FkU291cmNlPE0gPSB1bmtub3duPiB7XG4gIC8qKlxuICAgKiBMYWJlbCBmb3IgdGhpcyBzb3VyY2UuXG4gICAqL1xuICByZWFkb25seSBsYWJlbDogc3RyaW5nO1xuICAvKipcbiAgICogTWV0YWRhdGEgbG9hZGVkIGZyb20gdGhpcyBzb3VyY2UuXG4gICAqL1xuICByZWFkb25seSBtZXRhOiBPYnNlcnZhYmxlPExvYWRpbmdTdGF0ZTxNW10+Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTb3VyY2VTZWxlY3RMb2FkU291cmNlTG9hZGluZ1N0YXRlPE0gPSB1bmtub3duPiBleHRlbmRzIExvYWRpbmdTdGF0ZTxNW10+IHtcbiAgLyoqXG4gICAqIExhYmVsIGZvciB0aGlzIHNvdXJjZS5cbiAgICovXG4gIHJlYWRvbmx5IGxhYmVsOiBzdHJpbmc7XG59XG4iXX0=