@messaia/cdk 17.1.5 → 18.0.0-rc02

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 (242) hide show
  1. package/esm2022/lib/base/base.module.mjs +8 -8
  2. package/esm2022/lib/base/components/base.component.mjs +4 -4
  3. package/esm2022/lib/base/components/dynamic-table-config-dialog.comnponent.mjs +3 -3
  4. package/esm2022/lib/base/components/generic-form-base.component.mjs +4 -4
  5. package/esm2022/lib/base/components/generic-form.component.mjs +3 -3
  6. package/esm2022/lib/base/components/generic-list.component.mjs +4 -4
  7. package/esm2022/lib/base/components/generic-reactive-form.component.mjs +4 -4
  8. package/esm2022/lib/base/constants/common.mjs +2 -2
  9. package/esm2022/lib/base/helpers/auth-helper.mjs +1 -1
  10. package/esm2022/lib/base/interceptors/base.interceptor.mjs +4 -4
  11. package/esm2022/lib/base/interceptors/caching-interceptor.mjs +4 -4
  12. package/esm2022/lib/base/interceptors/loading.interceptor.mjs +4 -4
  13. package/esm2022/lib/base/services/file.service.mjs +3 -3
  14. package/esm2022/lib/base/services/loading-screen.service.mjs +3 -3
  15. package/esm2022/lib/base/services/print.service.mjs +3 -3
  16. package/esm2022/lib/chips/chips.module.mjs +4 -4
  17. package/esm2022/lib/chips/components/chips.component.mjs +4 -4
  18. package/esm2022/lib/chips/directives/autocomplete-option.directive.mjs +3 -3
  19. package/esm2022/lib/chips/directives/chip.directive.mjs +3 -3
  20. package/esm2022/lib/common/behaviors/control-value-accesor.mixin.mjs +1 -1
  21. package/esm2022/lib/common/behaviors/disabled.mixin.mjs +1 -1
  22. package/esm2022/lib/common/common.module.mjs +4 -4
  23. package/esm2022/lib/common/directives/delayed-hover.directive.mjs +4 -4
  24. package/esm2022/lib/common/directives/disable-control.directive.mjs +4 -4
  25. package/esm2022/lib/common/functions/utils.mjs +4 -4
  26. package/esm2022/lib/common/helpers/app-storage.mjs +4 -4
  27. package/esm2022/lib/common/helpers/dynamic-builder.mjs +4 -4
  28. package/esm2022/lib/common/helpers/dynamic-component-compiler.mjs +3 -3
  29. package/esm2022/lib/common/models/app-setting.mjs +3 -3
  30. package/esm2022/lib/common/pipes/data-source.pipe.mjs +3 -3
  31. package/esm2022/lib/common/pipes/enum.pipe.mjs +3 -3
  32. package/esm2022/lib/common/pipes/file-size.pipe.mjs +4 -4
  33. package/esm2022/lib/common/pipes/filter.pipe.mjs +4 -4
  34. package/esm2022/lib/common/pipes/first-letter.mjs +3 -3
  35. package/esm2022/lib/common/pipes/form-array.pipe.mjs +3 -3
  36. package/esm2022/lib/common/pipes/form-control.pipe.mjs +3 -3
  37. package/esm2022/lib/common/pipes/form-group.pipe.mjs +3 -3
  38. package/esm2022/lib/common/pipes/func.pipe.mjs +3 -3
  39. package/esm2022/lib/common/pipes/join.pipe.mjs +4 -4
  40. package/esm2022/lib/common/pipes/keys.mjs +4 -4
  41. package/esm2022/lib/common/pipes/month-name.pipe.mjs +3 -3
  42. package/esm2022/lib/common/pipes/nested-property.mjs +3 -3
  43. package/esm2022/lib/common/pipes/only-number.mjs +4 -4
  44. package/esm2022/lib/common/pipes/order.pipe.mjs +4 -4
  45. package/esm2022/lib/common/pipes/placeholder.pipe.mjs +4 -4
  46. package/esm2022/lib/common/pipes/property-join.pipe.mjs +4 -4
  47. package/esm2022/lib/common/pipes/safe-html.pipe.mjs +3 -3
  48. package/esm2022/lib/common/pipes/split.pipe.mjs +3 -3
  49. package/esm2022/lib/common/pipes/time.pipe.mjs +4 -4
  50. package/esm2022/lib/common/pipes/titlecase.pipe.mjs +3 -3
  51. package/esm2022/lib/common/pipes/truncate.pipe.mjs +3 -3
  52. package/esm2022/lib/common/pipes/values.mjs +3 -3
  53. package/esm2022/lib/common/services/base.service.mjs +3 -3
  54. package/esm2022/lib/common/services/enum.service.mjs +4 -4
  55. package/esm2022/lib/common/services/event-queue.service.mjs +3 -3
  56. package/esm2022/lib/dialogs/alert-dialog/alert-dialog.component.mjs +3 -3
  57. package/esm2022/lib/dialogs/confirm-dialog/confirm-dialog.component.mjs +3 -3
  58. package/esm2022/lib/dialogs/dialog.component.mjs +13 -13
  59. package/esm2022/lib/dialogs/dialogs.module.mjs +4 -4
  60. package/esm2022/lib/dialogs/prompt-dialog/prompt-dialog.component.mjs +3 -3
  61. package/esm2022/lib/dialogs/services/dialog.service.mjs +4 -4
  62. package/esm2022/lib/file/file-input.component.mjs +4 -4
  63. package/esm2022/lib/file/file.module.mjs +4 -4
  64. package/esm2022/lib/form-validators/algorithm/luhn-algorithm.mjs +1 -1
  65. package/esm2022/lib/form-validators/core/default-container.mjs +10 -10
  66. package/esm2022/lib/form-validators/directives/base-directive.mjs +4 -4
  67. package/esm2022/lib/form-validators/directives/control-host.directive.mjs +4 -4
  68. package/esm2022/lib/form-validators/directives/html-control-template.directive.mjs +3 -3
  69. package/esm2022/lib/form-validators/directives/rx-form.directive.mjs +4 -4
  70. package/esm2022/lib/form-validators/directives/template-validations/async-validation.directive.mjs +3 -3
  71. package/esm2022/lib/form-validators/directives/template-validations/base-validator.directive.mjs +4 -4
  72. package/esm2022/lib/form-validators/directives/template-validations/control-expression-process.mjs +4 -4
  73. package/esm2022/lib/form-validators/directives/template-validations/file-control.directive.mjs +4 -4
  74. package/esm2022/lib/form-validators/directives/template-validations/image-file-control.directive.mjs +4 -4
  75. package/esm2022/lib/form-validators/directives/template-validations/rxformcontrol.directive.mjs +4 -4
  76. package/esm2022/lib/form-validators/domain/disable-provider.mjs +1 -1
  77. package/esm2022/lib/form-validators/domain/element-processor/decimal.provider.mjs +4 -4
  78. package/esm2022/lib/form-validators/domain/element-processor/mask.provider.mjs +1 -1
  79. package/esm2022/lib/form-validators/domain/form-data.mjs +1 -1
  80. package/esm2022/lib/form-validators/models/form-builder-configuration.mjs +1 -1
  81. package/esm2022/lib/form-validators/reactive-form-validators/allOf.validator.mjs +1 -1
  82. package/esm2022/lib/form-validators/reactive-form-validators/and.validator.mjs +1 -1
  83. package/esm2022/lib/form-validators/reactive-form-validators/async/base.async.validator.mjs +1 -1
  84. package/esm2022/lib/form-validators/reactive-form-validators/choice.validator.mjs +1 -1
  85. package/esm2022/lib/form-validators/reactive-form-validators/compare.validator.mjs +1 -1
  86. package/esm2022/lib/form-validators/reactive-form-validators/compose.validator.mjs +1 -1
  87. package/esm2022/lib/form-validators/reactive-form-validators/conditional-change.validator.mjs +1 -1
  88. package/esm2022/lib/form-validators/reactive-form-validators/contains.validator.mjs +1 -1
  89. package/esm2022/lib/form-validators/reactive-form-validators/credit-card.validator.mjs +1 -1
  90. package/esm2022/lib/form-validators/reactive-form-validators/cusip.validator.mjs +1 -1
  91. package/esm2022/lib/form-validators/reactive-form-validators/custom.validator.mjs +1 -1
  92. package/esm2022/lib/form-validators/reactive-form-validators/different.validator.mjs +1 -1
  93. package/esm2022/lib/form-validators/reactive-form-validators/endsWith.validator.mjs +1 -1
  94. package/esm2022/lib/form-validators/reactive-form-validators/even.validator.mjs +1 -1
  95. package/esm2022/lib/form-validators/reactive-form-validators/extension.validator.mjs +1 -1
  96. package/esm2022/lib/form-validators/reactive-form-validators/factor.validator.mjs +1 -1
  97. package/esm2022/lib/form-validators/reactive-form-validators/file.validator.mjs +1 -1
  98. package/esm2022/lib/form-validators/reactive-form-validators/fileSize.validator.mjs +1 -1
  99. package/esm2022/lib/form-validators/reactive-form-validators/grid.validator.mjs +1 -1
  100. package/esm2022/lib/form-validators/reactive-form-validators/iban.validator.mjs +1 -1
  101. package/esm2022/lib/form-validators/reactive-form-validators/image.validator.mjs +1 -1
  102. package/esm2022/lib/form-validators/reactive-form-validators/ip.validator.mjs +1 -1
  103. package/esm2022/lib/form-validators/reactive-form-validators/json.validator.mjs +1 -1
  104. package/esm2022/lib/form-validators/reactive-form-validators/latLong.validator.mjs +1 -1
  105. package/esm2022/lib/form-validators/reactive-form-validators/leapYear.validator.mjs +1 -1
  106. package/esm2022/lib/form-validators/reactive-form-validators/lowercase.validator.mjs +1 -1
  107. package/esm2022/lib/form-validators/reactive-form-validators/mask.validator.mjs +1 -1
  108. package/esm2022/lib/form-validators/reactive-form-validators/maxLength.validator.mjs +1 -1
  109. package/esm2022/lib/form-validators/reactive-form-validators/maxNumber.validator.mjs +1 -1
  110. package/esm2022/lib/form-validators/reactive-form-validators/minLength.validator.mjs +1 -1
  111. package/esm2022/lib/form-validators/reactive-form-validators/minNumber.validator.mjs +1 -1
  112. package/esm2022/lib/form-validators/reactive-form-validators/noneOf.validator.mjs +1 -1
  113. package/esm2022/lib/form-validators/reactive-form-validators/not.validator.mjs +1 -1
  114. package/esm2022/lib/form-validators/reactive-form-validators/notEmpty.validator.mjs +1 -1
  115. package/esm2022/lib/form-validators/reactive-form-validators/numeric.validator.mjs +1 -1
  116. package/esm2022/lib/form-validators/reactive-form-validators/odd.validator.mjs +1 -1
  117. package/esm2022/lib/form-validators/reactive-form-validators/oneOf.validator.mjs +1 -1
  118. package/esm2022/lib/form-validators/reactive-form-validators/or.validator.mjs +1 -1
  119. package/esm2022/lib/form-validators/reactive-form-validators/password.validator.mjs +1 -1
  120. package/esm2022/lib/form-validators/reactive-form-validators/pattern.validator.mjs +1 -1
  121. package/esm2022/lib/form-validators/reactive-form-validators/port.validator.mjs +1 -1
  122. package/esm2022/lib/form-validators/reactive-form-validators/primeNumber.validator.mjs +1 -1
  123. package/esm2022/lib/form-validators/reactive-form-validators/range.validator.mjs +1 -1
  124. package/esm2022/lib/form-validators/reactive-form-validators/required.validator.mjs +1 -1
  125. package/esm2022/lib/form-validators/reactive-form-validators/requiredTrue.validator.mjs +1 -1
  126. package/esm2022/lib/form-validators/reactive-form-validators/rule.validator.mjs +1 -1
  127. package/esm2022/lib/form-validators/reactive-form-validators/startsWith.validator.mjs +1 -1
  128. package/esm2022/lib/form-validators/reactive-form-validators/time.validator.mjs +1 -1
  129. package/esm2022/lib/form-validators/reactive-form-validators/unique.validator.mjs +1 -1
  130. package/esm2022/lib/form-validators/reactive-form-validators/uppercase.validator.mjs +1 -1
  131. package/esm2022/lib/form-validators/reactive-form-validators/url.validator.mjs +1 -1
  132. package/esm2022/lib/form-validators/services/base-form-builder.mjs +1 -1
  133. package/esm2022/lib/form-validators/services/entity.service.mjs +1 -1
  134. package/esm2022/lib/form-validators/services/form-control.mjs +1 -1
  135. package/esm2022/lib/form-validators/services/reactive-form.module.mjs +8 -8
  136. package/esm2022/lib/form-validators/services/rx-form-array.mjs +1 -1
  137. package/esm2022/lib/form-validators/services/rx-form-builder.mjs +4 -4
  138. package/esm2022/lib/form-validators/services/rx-form-group.mjs +1 -1
  139. package/esm2022/lib/form-validators/services/typed-form-builder.mjs +3 -3
  140. package/esm2022/lib/form-validators/util/app-util.mjs +1 -1
  141. package/esm2022/lib/form-validators/util/check-length.mjs +1 -1
  142. package/esm2022/lib/form-validators/util/config-provider.mjs +1 -1
  143. package/esm2022/lib/form-validators/util/date-checker.function.mjs +1 -1
  144. package/esm2022/lib/form-validators/util/date-provider.mjs +1 -1
  145. package/esm2022/lib/form-validators/util/form-provider.mjs +1 -1
  146. package/esm2022/lib/form-validators/util/instance-provider.function.mjs +1 -1
  147. package/esm2022/lib/form-validators/util/ip-checker.mjs +1 -1
  148. package/esm2022/lib/form-validators/util/linq.mjs +1 -1
  149. package/esm2022/lib/form-validators/util/object-maker.mjs +1 -1
  150. package/esm2022/lib/form-validators/util/reactive-form-config.mjs +1 -1
  151. package/esm2022/lib/form-validators/util/regex-validator.mjs +1 -1
  152. package/esm2022/lib/form-validators/util/relational-checker.function.mjs +1 -1
  153. package/esm2022/lib/form-validators/util/reset-form.mjs +1 -1
  154. package/esm2022/lib/form-validators/util/sanitizers.mjs +1 -1
  155. package/esm2022/lib/form-validators/util/time-checker.function.mjs +1 -1
  156. package/esm2022/lib/form-validators/util/validator-value-checker.mjs +1 -1
  157. package/esm2022/lib/form-validators/validators-extension/base-validator.function.mjs +1 -1
  158. package/esm2022/lib/form-validators/validators-function/alpha-validation.function.mjs +1 -1
  159. package/esm2022/lib/form-validators/validators-function/regex-validation.function.mjs +1 -1
  160. package/esm2022/lib/forms/components/datepicker/datepicker-header.component.mjs +3 -3
  161. package/esm2022/lib/forms/components/generic-form/generic-form.component.mjs +16 -16
  162. package/esm2022/lib/forms/directives/mat-form-field-editor.directive.mjs +4 -4
  163. package/esm2022/lib/forms/directives/mat-form-field-readonly.directive.mjs +4 -4
  164. package/esm2022/lib/forms/directives/nested-property-ng-model.directive.mjs +4 -4
  165. package/esm2022/lib/forms/directives/vd-generic-form-custom-field.directive.mjs +3 -3
  166. package/esm2022/lib/forms/forms.module.mjs +4 -4
  167. package/esm2022/lib/forms/functions/decorators.mjs +1 -1
  168. package/esm2022/lib/forms/functions/functions.mjs +1 -1
  169. package/esm2022/lib/forms/helpers/abstract-mat-form-field.mjs +4 -4
  170. package/esm2022/lib/forms/helpers/abstract-select-form-field.component.mjs +4 -4
  171. package/esm2022/lib/forms/helpers/value-accessor-base.mjs +3 -3
  172. package/esm2022/lib/forms/pipes/group-filter.pipe.mjs +4 -4
  173. package/esm2022/lib/forms/validators/empty-string-reset.directive.mjs +4 -4
  174. package/esm2022/lib/forms/validators/equal-validator.directive.mjs +4 -4
  175. package/esm2022/lib/forms/validators/native-element-injector.directive.mjs +4 -4
  176. package/esm2022/lib/forms/validators/unique-validator-directive.mjs +4 -4
  177. package/esm2022/lib/http/http.module.mjs +7 -11
  178. package/esm2022/lib/http/services/generic.service.mjs +1 -1
  179. package/esm2022/lib/layout/dynamic-menu/dynamic-menu.component.mjs +3 -3
  180. package/esm2022/lib/layout/layout-card-over/layout-card-over.component.mjs +3 -3
  181. package/esm2022/lib/layout/layout-compact/layout-compact.component.mjs +4 -4
  182. package/esm2022/lib/layout/layout-footer/layout-footer.component.mjs +4 -4
  183. package/esm2022/lib/layout/layout-manage-list/layout-manage-list.component.mjs +4 -4
  184. package/esm2022/lib/layout/layout-manage-list/layout-manage-list.directives.mjs +9 -9
  185. package/esm2022/lib/layout/layout-nav/layout-nav.component.mjs +5 -5
  186. package/esm2022/lib/layout/layout-nav-list/layout-nav-list.component.mjs +4 -4
  187. package/esm2022/lib/layout/layout-nav-list/layout-nav-list.directives.mjs +9 -9
  188. package/esm2022/lib/layout/layout-toggle.class.mjs +4 -4
  189. package/esm2022/lib/layout/layout.component.mjs +4 -4
  190. package/esm2022/lib/layout/layout.directives.mjs +9 -9
  191. package/esm2022/lib/layout/layout.module.mjs +4 -4
  192. package/esm2022/lib/layout/list-toolbar/list-toolbar.component.mjs +3 -3
  193. package/esm2022/lib/layout/navigation-drawer/navigation-drawer.component.mjs +10 -10
  194. package/esm2022/lib/list/components/list.component.mjs +3 -3
  195. package/esm2022/lib/list/directives/vd-list-option.directive.mjs +3 -3
  196. package/esm2022/lib/list/list.module.mjs +4 -4
  197. package/esm2022/lib/media/directives/media-toggle.directive.mjs +4 -4
  198. package/esm2022/lib/media/media.module.mjs +4 -4
  199. package/esm2022/lib/media/services/media.service.mjs +4 -4
  200. package/esm2022/lib/menu/components/menu.component.mjs +4 -4
  201. package/esm2022/lib/menu/menu.module.mjs +4 -4
  202. package/esm2022/lib/menu/resolvers/menu-form-includes.resolve.mjs +4 -4
  203. package/esm2022/lib/menu/resolvers/menu-item-form-includes.resolve.mjs +4 -4
  204. package/esm2022/lib/menu/resolvers/menu-list-projection.resolve.mjs +4 -4
  205. package/esm2022/lib/menu/resolvers/menu-settings.resolve.mjs +3 -3
  206. package/esm2022/lib/menu/services/menu-items.service.mjs +3 -3
  207. package/esm2022/lib/menu/services/menu.resolve.mjs +7 -7
  208. package/esm2022/lib/menu/services/menu.service.mjs +3 -3
  209. package/esm2022/lib/search/search.module.mjs +4 -4
  210. package/esm2022/lib/select/components/select.component.mjs +4 -4
  211. package/esm2022/lib/select/directives/vd-select-option.directive.mjs +3 -3
  212. package/esm2022/lib/select/directives/vd-select-trigger.directive.mjs +3 -3
  213. package/esm2022/lib/select/select.module.mjs +4 -4
  214. package/esm2022/lib/table/components/dynamic-table/dynamic-table.component.mjs +4 -4
  215. package/esm2022/lib/table/components/filter-clear.component.mjs +4 -4
  216. package/esm2022/lib/table/components/filter-date.component.mjs +4 -4
  217. package/esm2022/lib/table/components/filter-input.component.mjs +4 -4
  218. package/esm2022/lib/table/components/filter-select.component.mjs +7 -7
  219. package/esm2022/lib/table/directives/data-source-filter.directive.mjs +4 -4
  220. package/esm2022/lib/table/directives/vd-table-field.directive.mjs +3 -3
  221. package/esm2022/lib/table/functions/decorators.mjs +1 -1
  222. package/esm2022/lib/table/functions/functions.mjs +1 -1
  223. package/esm2022/lib/table/paginator-intl.mjs +4 -4
  224. package/esm2022/lib/table/table.data-source.mjs +1 -1
  225. package/esm2022/lib/table/table.module.mjs +4 -4
  226. package/esm2022/lib/table/table.static-data-source.mjs +1 -1
  227. package/fesm2022/messaia-cdk.mjs +486 -490
  228. package/fesm2022/messaia-cdk.mjs.map +1 -1
  229. package/lib/common/styles/_theme-functions.scss +0 -23
  230. package/lib/common/styles/colors/_colors-dark.scss +1350 -345
  231. package/lib/common/styles/colors/_colors-light.scss +3157 -829
  232. package/lib/common/styles/core/_button.scss +35 -29
  233. package/lib/common/styles/{_common-theme.scss → m2/_common-theme.scss} +6 -6
  234. package/lib/common/styles/m2/_theme-functions.scss +21 -0
  235. package/lib/common/styles/m3/_common-theme.scss +47 -0
  236. package/lib/common/styles/m3/_theme-functions.scss +21 -0
  237. package/lib/common/styles/platform.scss +1 -1
  238. package/lib/common/theming/_all-theme.scss +1 -1
  239. package/lib/common/theming/_m2-all-theme.scss +27 -0
  240. package/lib/http/http.module.d.ts +1 -2
  241. package/lib/layout/{_layout-theme.scss → _m2-layout-theme.scss} +11 -10
  242. package/package.json +3 -3
@@ -217,10 +217,10 @@ export class RxwebFormDirective extends BaseDirective {
217
217
  }
218
218
  });
219
219
  }
220
- /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: RxwebFormDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
221
- /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.5", type: RxwebFormDirective, selector: "[formGroup],[rxwebForm]", inputs: { formGroup: "formGroup", ngForm: ["rxwebForm", "ngForm"] }, usesInheritance: true, ngImport: i0 });
220
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: RxwebFormDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
221
+ /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.6", type: RxwebFormDirective, selector: "[formGroup],[rxwebForm]", inputs: { formGroup: "formGroup", ngForm: ["rxwebForm", "ngForm"] }, usesInheritance: true, ngImport: i0 });
222
222
  }
223
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: RxwebFormDirective, decorators: [{
223
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: RxwebFormDirective, decorators: [{
224
224
  type: Directive,
225
225
  args: [{
226
226
  selector: '[formGroup],[rxwebForm]',
@@ -231,4 +231,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImpor
231
231
  type: Input,
232
232
  args: ['rxwebForm']
233
233
  }] } });
234
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicngtZm9ybS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvc3JjL2xpYi9mb3JtLXZhbGlkYXRvcnMvZGlyZWN0aXZlcy9yeC1mb3JtLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9CLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkUsT0FBTyxFQUFtQixTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQy9FLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxLQUFLLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sMERBQTBELENBQUM7QUFDdEcsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNwQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBRWpEOztHQUVHO0FBSUgsTUFBTSxPQUFPLGtCQUFtQixTQUFRLGFBQWE7SUFDakQ7O09BRUc7SUFDSyxrQkFBa0IsR0FBUSxDQUFDLENBQUM7SUFFcEM7O09BRUc7SUFDSyxjQUFjLEdBQVEsRUFBRSxDQUFDO0lBRWpDOztPQUVHO0lBRUksU0FBUyxDQUFhO0lBRTdCOztPQUVHO0lBRUksTUFBTSxDQUFVO0lBRXZCOztPQUVHO0lBQ0gsa0JBQWtCO1FBQ2QsK0dBQStHO1FBQy9HLElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFFLElBQUksQ0FBQyxTQUFpQixDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxJQUFJLElBQUksRUFBRTtZQUNwRiwy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b0JBQzFGLElBQUksQ0FBQyxDQUFDLFFBQVEsSUFBSSxTQUFTLEVBQUU7d0JBQ3pCLDBEQUEwRDt3QkFDMUQsSUFBSSxDQUFDLHVCQUF1QixDQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO3FCQUNqRDt5QkFBTTt3QkFDSCxzREFBc0Q7d0JBQ3RELElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUM7cUJBQzVDO2dCQUNMLENBQUMsQ0FBQyxDQUFDO2FBQ047UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7MEhBalBRLGtCQUFrQjs4R0FBbEIsa0JBQWtCOzsyRkFBbEIsa0JBQWtCO2tCQUg5QixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSx5QkFBeUI7aUJBQ3RDOzhCQWdCVSxTQUFTO3NCQURmLEtBQUs7Z0JBT0MsTUFBTTtzQkFEWixLQUFLO3VCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlckNvbnRlbnRJbml0LCBEaXJlY3RpdmUsIElucHV0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3JtQXJyYXksIEZvcm1Hcm91cCwgTmdGb3JtIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IENPTkRJVElPTkFMX1ZBTElEQVRPUiwgTU9ERUwgfSBmcm9tICcuLi9jb25zdC9hcHAuY29uc3QnO1xyXG5pbXBvcnQgeyBBbm5vdGF0aW9uVHlwZXMgfSBmcm9tIFwiLi4vY29yZS9hbm5vdGF0aW9uLXR5cGVzXCI7XHJcbmltcG9ydCB7IGRlZmF1bHRDb250YWluZXIgfSBmcm9tIFwiLi4vY29yZS9kZWZhdWx0LWNvbnRhaW5lclwiO1xyXG5pbXBvcnQgeyBjb25kaXRpb25hbENoYW5nZVZhbGlkYXRvciB9IGZyb20gJy4uL3JlYWN0aXZlLWZvcm0tdmFsaWRhdG9ycy9jb25kaXRpb25hbC1jaGFuZ2UudmFsaWRhdG9yJztcclxuaW1wb3J0IHsgTGlucSB9IGZyb20gXCIuLi91dGlsL2xpbnFcIjtcclxuaW1wb3J0IHsgQmFzZURpcmVjdGl2ZSB9IGZyb20gXCIuL2Jhc2UtZGlyZWN0aXZlXCI7XHJcblxyXG4vKipcclxuICogVGhpcyBkaXJlY3RpdmUgcHJvdmlkZXMgZnVuY3Rpb25hbGl0eSBmb3IgaW50ZWdyYXRpbmcgUnhXZWJGb3JtcyB3aXRoIEFuZ3VsYXIgZm9ybXMuXHJcbiAqL1xyXG5ARGlyZWN0aXZlKHtcclxuICAgIHNlbGVjdG9yOiAnW2Zvcm1Hcm91cF0sW3J4d2ViRm9ybV0nLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUnh3ZWJGb3JtRGlyZWN0aXZlIGV4dGVuZHMgQmFzZURpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQge1xyXG4gICAgLyoqXHJcbiAgICAgKiBUaW1lb3V0IElEIGZvciBjbGVhcmluZyB0aGUgdGltZW91dFxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGNsZWFyVGltZW91dE51bWJlcjogYW55ID0gMDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIE9iamVjdCB0byBzdG9yZSB2YWxpZGF0aW9uIHJ1bGVzXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgdmFsaWRhdGlvblJ1bGU6IGFueSA9IHt9O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIGZvcm1Hcm91cCBpbnB1dCBwcm9wZXJ0eSBmb3IgYmluZGluZyB0aGUgZm9ybSBncm91cCB0byB0aGUgZGlyZWN0aXZlLlxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGZvcm1Hcm91cD86IEZvcm1Hcm91cDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBuZ0Zvcm0gaW5wdXQgcHJvcGVydHkgZm9yIGJpbmRpbmcgdGhlIE5nRm9ybSB0byB0aGUgZGlyZWN0aXZlLlxyXG4gICAgICovXHJcbiAgICBASW5wdXQoJ3J4d2ViRm9ybScpXHJcbiAgICBwdWJsaWMgbmdGb3JtPzogTmdGb3JtO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQWZ0ZXIgdGhlIGNvbnRlbnQgaXMgaW5pdGlhbGl6ZWQsIHRoaXMgbWV0aG9kIGNvbmZpZ3VyZXMgbW9kZWwgdmFsaWRhdGlvbnMgYmFzZWQgb24gdGhlIGZvcm1Hcm91cCBvciBuZ0Zvcm0uXHJcbiAgICAgKi9cclxuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcclxuICAgICAgICAvKiBJZiB0aGUgZm9ybUdyb3VwIGV4aXN0cywgZG9lc24ndCBoYXZlIHRoZSBNT0RFTCBwcm9wZXJ0eSwgYW5kIGhhcyBubyBwYXJlbnQgKGkuZS4sIGl0J3MgYSB0b3AtbGV2ZWwgZm9ybSkgKi9cclxuICAgICAgICBpZiAodGhpcy5mb3JtR3JvdXAgJiYgISh0aGlzLmZvcm1Hcm91cCBhcyBhbnkpW01PREVMXSAmJiB0aGlzLmZvcm1Hcm91cC5wYXJlbnQgPT0gbnVsbCkge1xyXG4gICAgICAgICAgICAvKiBQcm9jZXNzIGV4cHJlc3Npb25zIGZvciBjb25maWd1cmluZyBtb2RlbCB2YWxpZGF0aW9ucyAqL1xyXG4gICAgICAgICAgICB0aGlzLmV4cHJlc3Npb25Qcm9jZXNzb3IodGhpcy5mb3JtR3JvdXAuY29udHJvbHMpO1xyXG5cclxuICAgICAgICAgICAgLyogU2V0IGNvbmRpdGlvbmFsIHZhbGlkYXRvcnMgYmFzZWQgb24gdGhlIHZhbGlkYXRpb24gcnVsZSAqL1xyXG4gICAgICAgICAgICB0aGlzLnNldENvbmRpdGlvbmFsVmFsaWRhdG9yKHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qIElmIHRoZSBmb3JtR3JvdXAgZXhpc3RzLCBkb2Vzbid0IGhhdmUgdGhlIE1PREVMIHByb3BlcnR5LCBhbmQgaXRzIHBhcmVudCBpcyBhbiBpbnN0YW5jZSBvZiBGb3JtQXJyYXkgKi9cclxuICAgICAgICBlbHNlIGlmICh0aGlzLmZvcm1Hcm91cCAmJiAhKHRoaXMuZm9ybUdyb3VwIGFzIGFueSlbTU9ERUxdICYmIHRoaXMuZm9ybUdyb3VwLnBhcmVudCBpbnN0YW5jZW9mIEZvcm1BcnJheSkge1xyXG4gICAgICAgICAgICAvKiBQcm9jZXNzIGV4cHJlc3Npb25zIGZvciBjb25maWd1cmluZyBtb2RlbCB2YWxpZGF0aW9ucyAqL1xyXG4gICAgICAgICAgICB0aGlzLmV4cHJlc3Npb25Qcm9jZXNzb3IodGhpcy5mb3JtR3JvdXAuY29udHJvbHMpO1xyXG5cclxuICAgICAgICAgICAgLyogU2V0IGNvbmRpdGlvbmFsIHZhbGlkYXRvcnMgYmFzZWQgb24gdGhlIHZhbGlkYXRpb24gcnVsZSAqL1xyXG4gICAgICAgICAgICB0aGlzLnNldENvbmRpdGlvbmFsVmFsaWRhdG9yKHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qIElmIG5nRm9ybSBpcyBwcmVzZW50ICovXHJcbiAgICAgICAgZWxzZSBpZiAodGhpcy5uZ0Zvcm0pIHtcclxuICAgICAgICAgICAgLyogQ29uZmlndXJlIG1vZGVsIHZhbGlkYXRpb25zICovXHJcbiAgICAgICAgICAgIHRoaXMuY29uZmlndXJlTW9kZWxWYWxpZGF0aW9ucygpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIENvbmZpZ3VyZXMgbW9kZWwgdmFsaWRhdGlvbnMgYmFzZWQgb24gdGhlIG5nRm9ybSBpZiBwcmVzZW50LlxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGNvbmZpZ3VyZU1vZGVsVmFsaWRhdGlvbnMoKSB7XHJcbiAgICAgICAgLyogSWYgbmdGb3JtIGlzIHByZXNlbnQgKi9cclxuICAgICAgICBpZiAodGhpcy5uZ0Zvcm0pIHtcclxuICAgICAgICAgICAgLyogU2V0IGEgdGltZW91dCB0byBhcHBseSB2YWxpZGF0aW9ucyBhZnRlciBhIGRlbGF5ICovXHJcbiAgICAgICAgICAgIHRoaXMuY2xlYXJUaW1lb3V0TnVtYmVyID0gc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAvKiBDbGVhciB0aGUgdGltZW91dCB0byBwcmV2ZW50IG11bHRpcGxlIGNhbGxzICovXHJcbiAgICAgICAgICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5jbGVhclRpbWVvdXROdW1iZXIpO1xyXG5cclxuICAgICAgICAgICAgICAgIC8qIEFwcGx5IHZhbGlkYXRpb25zIHRvIHRoZSBmb3JtIGNvbnRyb2xzICovXHJcbiAgICAgICAgICAgICAgICB0aGlzLmFwcGx5VmFsaWRhdGlvbnModGhpcy5uZ0Zvcm0hLmZvcm0uY29udHJvbHMpO1xyXG5cclxuICAgICAgICAgICAgICAgIC8qIFByb2Nlc3MgZXhwcmVzc2lvbnMgZm9yIGNvbmZpZ3VyaW5nIG1vZGVsIHZhbGlkYXRpb25zICovXHJcbiAgICAgICAgICAgICAgICB0aGlzLmV4cHJlc3Npb25Qcm9jZXNzb3IodGhpcy5uZ0Zvcm0hLmZvcm0uY29udHJvbHMpO1xyXG5cclxuICAgICAgICAgICAgICAgIC8qIFNldCBjb25kaXRpb25hbCB2YWxpZGF0b3JzIGJhc2VkIG9uIHRoZSB2YWxpZGF0aW9uIHJ1bGUgKi9cclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0Q29uZGl0aW9uYWxWYWxpZGF0b3IodGhpcy5uZ0Zvcm0hLmZvcm0uY29udHJvbHMpO1xyXG5cclxuICAgICAgICAgICAgICAgIC8qIFVwZGF0ZSB0aGUgdmFsdWUgYW5kIHZhbGlkaXR5IG9mIHRoZSBmb3JtIGNvbnRyb2xzICovXHJcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkodGhpcy5uZ0Zvcm0hLmZvcm0uY29udHJvbHMpO1xyXG4gICAgICAgICAgICB9LCA1MDApO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFVwZGF0ZXMgdGhlIHZhbHVlIGFuZCB2YWxpZGl0eSBvZiB0aGUgZm9ybSBjb250cm9scy5cclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSB1cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KGNvbnRyb2xzOiBhbnkpIHtcclxuICAgICAgICAvKiBJdGVyYXRlIG92ZXIgdGhlIGtleXMgb2YgdGhlIGNvbnRyb2xzIG9iamVjdCAqL1xyXG4gICAgICAgIE9iamVjdC5rZXlzKGNvbnRyb2xzKS5mb3JFYWNoKGtleSA9PiB7XHJcbiAgICAgICAgICAgIC8qIENoZWNrIGlmIHRoZSBjb250cm9sIGlzIGFuIGluc3RhbmNlIG9mIEZvcm1Hcm91cCAqL1xyXG4gICAgICAgICAgICBpZiAoY29udHJvbHNba2V5XSBpbnN0YW5jZW9mIEZvcm1Hcm91cCkge1xyXG5cclxuICAgICAgICAgICAgICAgIC8qIFJlY3Vyc2l2ZWx5IHVwZGF0ZSB2YWx1ZSBhbmQgdmFsaWRpdHkgZm9yIGNvbnRyb2xzIHdpdGhpbiB0aGUgRm9ybUdyb3VwICovXHJcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoY29udHJvbHNba2V5XS5jb250cm9scyk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC8qIENoZWNrIGlmIHRoZSBjb250cm9sIGlzIGFuIGluc3RhbmNlIG9mIEZvcm1BcnJheSAqL1xyXG4gICAgICAgICAgICBlbHNlIGlmIChjb250cm9sc1trZXldIGluc3RhbmNlb2YgRm9ybUFycmF5KSB7XHJcbiAgICAgICAgICAgICAgICAvKiBSZWN1cnNpdmVseSB1cGRhdGUgdmFsdWUgYW5kIHZhbGlkaXR5IGZvciBjb250cm9scyB3aXRoaW4gdGhlIEZvcm1BcnJheSAqL1xyXG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KGNvbnRyb2xzW2tleV0uY29udHJvbHMpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIC8qIFVwZGF0ZSB2YWx1ZSBhbmQgdmFsaWRpdHkgZm9yIHRoZSBjb250cm9sICovXHJcbiAgICAgICAgICAgICAgICBjb250cm9sc1trZXldLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFByb2Nlc3NlcyB0aGUgZXhwcmVzc2lvbnMgZm9yIGNvbmZpZ3VyaW5nIG1vZGVsIHZhbGlkYXRpb25zLlxyXG4gICAgICogQHBhcmFtIGNvbnRyb2xzIC0gVGhlIGZvcm0gY29udHJvbHMgdG8gcHJvY2Vzcy5cclxuICAgICAqIEBwYXJhbSByb290RmllbGROYW1lIC0gVGhlIHJvb3QgZmllbGQgbmFtZSBmb3IgbmVzdGVkIGNvbnRyb2xzLlxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGV4cHJlc3Npb25Qcm9jZXNzb3IoY29udHJvbHM6IHsgW2tleTogc3RyaW5nXTogYW55IH0sIHJvb3RGaWVsZE5hbWU6IHN0cmluZyA9IFwiXCIpIHtcclxuICAgICAgICAvKiBJdGVyYXRlIG92ZXIgdGhlIGtleXMgb2YgdGhlIGNvbnRyb2xzIG9iamVjdCAqL1xyXG4gICAgICAgIE9iamVjdC5rZXlzKGNvbnRyb2xzKS5mb3JFYWNoKGZpZWxkTmFtZSA9PiB7XHJcbiAgICAgICAgICAgIC8qIEdldCB0aGUgY29udHJvbCBjb3JyZXNwb25kaW5nIHRvIHRoZSBjdXJyZW50IGZpZWxkIG5hbWUgKi9cclxuICAgICAgICAgICAgbGV0IGZvcm1Db250cm9sOiBhbnkgPSBjb250cm9sc1tmaWVsZE5hbWVdO1xyXG5cclxuICAgICAgICAgICAgLyogQ2hlY2sgaWYgdGhlIGNvbnRyb2wgaGFzIHZhbGlkYXRvckNvbmZpZyAqL1xyXG4gICAgICAgICAgICBpZiAoZm9ybUNvbnRyb2wudmFsaWRhdG9yQ29uZmlnKSB7XHJcbiAgICAgICAgICAgICAgICAvKiBJdGVyYXRlIG92ZXIgdGhlIGtleXMgb2YgQW5ub3RhdGlvblR5cGVzICovXHJcbiAgICAgICAgICAgICAgICBPYmplY3Qua2V5cyhBbm5vdGF0aW9uVHlwZXMpLmZvckVhY2godmFsaWRhdG9yTmFtZSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgLyogQ2hlY2sgaWYgdGhlIGN1cnJlbnQgdmFsaWRhdG9yIGV4aXN0cyBpbiB0aGUgdmFsaWRhdG9yQ29uZmlnIGFuZCBoYXMgZGlzYWJsZUV4cHJlc3Npb24gKi9cclxuICAgICAgICAgICAgICAgICAgICBpZiAoZm9ybUNvbnRyb2wudmFsaWRhdG9yQ29uZmlnW3ZhbGlkYXRvck5hbWVdICYmIGZvcm1Db250cm9sLnZhbGlkYXRvckNvbmZpZ1t2YWxpZGF0b3JOYW1lXS5kaXNhYmxlRXhwcmVzc2lvbikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvKiBTZXQgdGhlIGRpc2FibGVFeHByZXNzaW9uIHByb3BlcnR5IGZvciB0aGUgZm9ybUNvbnRyb2wgKi9cclxuICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xbXCJkaXNhYmxlRXhwcmVzc2lvblwiXSA9IGZvcm1Db250cm9sLnZhbGlkYXRvckNvbmZpZ1t2YWxpZGF0b3JOYW1lXS5kaXNhYmxlRXhwcmVzc2lvbjtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8qIEV4dHJhY3QgY29sdW1ucyBmcm9tIHRoZSBkaXNhYmxlRXhwcmVzc2lvbiBhbmQgc2V0IGNvbmRpdGlvbmFsIHZhbHVlIHByb3BlcnRpZXMgKi9cclxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGNvbHVtbnMgPSBMaW5xLmV4cHJlc3Npb25Db2x1bW5zKGZvcm1Db250cm9sLnZhbGlkYXRvckNvbmZpZ1t2YWxpZGF0b3JOYW1lXS5kaXNhYmxlRXhwcmVzc2lvbik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbnMuZm9yRWFjaCh0ID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHRDb250YWluZXIuc2V0Q29uZGl0aW9uYWxWYWx1ZVByb3AodGhpcy52YWxpZGF0aW9uUnVsZSwgcm9vdEZpZWxkTmFtZSArIHQucHJvcE5hbWUsIGZpZWxkTmFtZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgLyogQ2hlY2sgaWYgdGhlIGN1cnJlbnQgdmFsaWRhdG9yIGV4aXN0cyBpbiB0aGUgdmFsaWRhdG9yQ29uZmlnIGFuZCBoYXMgY29uZGl0aW9uYWxFeHByZXNzaW9uICovXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGZvcm1Db250cm9sLnZhbGlkYXRvckNvbmZpZ1t2YWxpZGF0b3JOYW1lXSAmJiBmb3JtQ29udHJvbC52YWxpZGF0b3JDb25maWdbdmFsaWRhdG9yTmFtZV0uY29uZGl0aW9uYWxFeHByZXNzaW9uKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8qIEV4dHJhY3QgY29sdW1ucyBmcm9tIHRoZSBjb25kaXRpb25hbEV4cHJlc3Npb24gYW5kIHNldCBjb25kaXRpb25hbCB2YWx1ZSBwcm9wZXJ0aWVzICovXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBjb2x1bW5zID0gTGlucS5leHByZXNzaW9uQ29sdW1ucyhmb3JtQ29udHJvbC52YWxpZGF0b3JDb25maWdbdmFsaWRhdG9yTmFtZV0uY29uZGl0aW9uYWxFeHByZXNzaW9uKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1ucy5mb3JFYWNoKHQgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdENvbnRhaW5lci5zZXRDb25kaXRpb25hbFZhbHVlUHJvcCh0aGlzLnZhbGlkYXRpb25SdWxlLCByb290RmllbGROYW1lICsgdC5wcm9wTmFtZSwgZmllbGROYW1lKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAvKiBDaGVjayBpZiB0aGUgY3VycmVudCB2YWxpZGF0b3IgZXhpc3RzIGluIHRoZSB2YWxpZGF0b3JDb25maWcgYW5kIGhhcyBkeW5hbWljQ29uZmlnICovXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGZvcm1Db250cm9sLnZhbGlkYXRvckNvbmZpZ1t2YWxpZGF0b3JOYW1lXSAmJiBmb3JtQ29udHJvbC52YWxpZGF0b3JDb25maWdbdmFsaWRhdG9yTmFtZV0uZHluYW1pY0NvbmZpZykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvKiBQYXJzZSBkeW5hbWljQ29uZmlnLCBleHRyYWN0IGNvbHVtbnMsIGFuZCBzZXQgY29uZGl0aW9uYWwgdmFsdWUgcHJvcGVydGllcyAqL1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgY29sdW1ucyA9IExpbnEuZHluYW1pY0NvbmZpZ1BhcnNlcihmb3JtQ29udHJvbC52YWxpZGF0b3JDb25maWdbdmFsaWRhdG9yTmFtZV0uZHluYW1pY0NvbmZpZywgZmllbGROYW1lKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1ucy5mb3JFYWNoKHQgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdENvbnRhaW5lci5zZXRDb25kaXRpb25hbFZhbHVlUHJvcCh0aGlzLnZhbGlkYXRpb25SdWxlLCByb290RmllbGROYW1lICsgdC5wcm9wTmFtZSwgZmllbGROYW1lKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAvKiBDaGVjayBpZiB0aGUgY3VycmVudCB2YWxpZGF0b3IgZXhpc3RzIGluIHRoZSB2YWxpZGF0b3JDb25maWcgYW5kIGlzIGEgbG9naWNhbCB2YWxpZGF0b3IgKi9cclxuICAgICAgICAgICAgICAgICAgICBpZiAoZm9ybUNvbnRyb2wudmFsaWRhdG9yQ29uZmlnW3ZhbGlkYXRvck5hbWVdICYmICh2YWxpZGF0b3JOYW1lID09IEFubm90YXRpb25UeXBlcy5hbmQgfHwgdmFsaWRhdG9yTmFtZSA9PSBBbm5vdGF0aW9uVHlwZXMub3IgfHwgdmFsaWRhdG9yTmFtZSA9PSBBbm5vdGF0aW9uVHlwZXMubm90KSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvKiBJdGVyYXRlIG92ZXIgdGhlIHZhbGlkYXRpb24gcnVsZXMsIHNldCBsb2dpY2FsIGNvbmRpdGlvbmFscyAqL1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBPYmplY3Qua2V5cyhmb3JtQ29udHJvbC52YWxpZGF0b3JDb25maWdbdmFsaWRhdG9yTmFtZV0udmFsaWRhdGlvbikuZm9yRWFjaCh0ID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgZm9ybUNvbnRyb2wudmFsaWRhdG9yQ29uZmlnW3ZhbGlkYXRvck5hbWVdLnZhbGlkYXRpb25bdF0gIT09IFwiYm9vbGVhblwiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdENvbnRhaW5lci5zZXRMb2dpY2FsQ29uZGl0aW9uYWwodGhpcy52YWxpZGF0aW9uUnVsZSwgdCwgZm9ybUNvbnRyb2wudmFsaWRhdG9yQ29uZmlnW3ZhbGlkYXRvck5hbWVdLnZhbGlkYXRpb25bdF0uZmllbGROYW1lLCBmaWVsZE5hbWUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIC8qIENoZWNrIGlmIHRoZSBjdXJyZW50IHZhbGlkYXRvciBleGlzdHMgaW4gdGhlIHZhbGlkYXRvckNvbmZpZyBhbmQgaXMgYSBjb21wYXJpc29uIG9yIHJhbmdlIHZhbGlkYXRvciAqL1xyXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGZvcm1Db250cm9sLnZhbGlkYXRvckNvbmZpZ1t2YWxpZGF0b3JOYW1lXSAmJiAoKHZhbGlkYXRvck5hbWUgPT0gQW5ub3RhdGlvblR5cGVzLmNvbXBhcmUgfHwgdmFsaWRhdG9yTmFtZSA9PSBBbm5vdGF0aW9uVHlwZXMuZ3JlYXRlclRoYW4gfHwgdmFsaWRhdG9yTmFtZSA9PSBBbm5vdGF0aW9uVHlwZXMuZ3JlYXRlclRoYW5FcXVhbFRvIHx8IHZhbGlkYXRvck5hbWUgPT0gQW5ub3RhdGlvblR5cGVzLmxlc3NUaGFuIHx8IHZhbGlkYXRvck5hbWUgPT0gQW5ub3RhdGlvblR5cGVzLmxlc3NUaGFuRXF1YWxUbyB8fCB2YWxpZGF0b3JOYW1lID09IEFubm90YXRpb25UeXBlcy5kaWZmZXJlbnQgfHwgdmFsaWRhdG9yTmFtZSA9PSBBbm5vdGF0aW9uVHlwZXMuZmFjdG9yIHx8IHZhbGlkYXRvck5hbWUgPT0gQW5ub3RhdGlvblR5cGVzLm1pblRpbWUgfHwgdmFsaWRhdG9yTmFtZSA9PSBBbm5vdGF0aW9uVHlwZXMubWF4VGltZSkgfHwgKHZhbGlkYXRvck5hbWUgPT0gQW5ub3RhdGlvblR5cGVzLmNyZWRpdENhcmQgJiYgZm9ybUNvbnRyb2wudmFsaWRhdG9yQ29uZmlnW3ZhbGlkYXRvck5hbWVdLmZpZWxkTmFtZSkgfHwgKCh2YWxpZGF0b3JOYW1lID09IEFubm90YXRpb25UeXBlcy5taW5EYXRlIHx8IHZhbGlkYXRvck5hbWUgPT0gQW5ub3RhdGlvblR5cGVzLm1heERhdGUpICYmIGZvcm1Db250cm9sLnZhbGlkYXRvckNvbmZpZ1t2YWxpZGF0b3JOYW1lXS5maWVsZE5hbWUpKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvKiBTZXQgY29uZGl0aW9uYWwgdmFsdWUgcHJvcGVydGllcyAqL1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0Q29udGFpbmVyLnNldENvbmRpdGlvbmFsVmFsdWVQcm9wKHRoaXMudmFsaWRhdGlvblJ1bGUsIGZvcm1Db250cm9sLnZhbGlkYXRvckNvbmZpZ1t2YWxpZGF0b3JOYW1lXS5maWVsZE5hbWUsIGZpZWxkTmFtZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC8qIENoZWNrIGlmIHRoZSBjb250cm9sIGlzIGFuIGluc3RhbmNlIG9mIEZvcm1Hcm91cCAqL1xyXG4gICAgICAgICAgICBlbHNlIGlmIChmb3JtQ29udHJvbCBpbnN0YW5jZW9mIEZvcm1Hcm91cCkge1xyXG4gICAgICAgICAgICAgICAgLyogUmVjdXJzaXZlbHkgcHJvY2VzcyBjb250cm9scyB3aXRoaW4gdGhlIEZvcm1Hcm91cCAqL1xyXG4gICAgICAgICAgICAgICAgdGhpcy5leHByZXNzaW9uUHJvY2Vzc29yKGZvcm1Db250cm9sLmNvbnRyb2xzLCBgJHtmaWVsZE5hbWV9LmApO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvKiBDaGVjayBpZiB0aGUgY29udHJvbCBpcyBhbiBpbnN0YW5jZSBvZiBGb3JtQXJyYXkgKi9cclxuICAgICAgICAgICAgZWxzZSBpZiAoZm9ybUNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtQXJyYXkpIHtcclxuICAgICAgICAgICAgICAgIC8qIFByb2Nlc3MgZWFjaCBjb250cm9sIHdpdGhpbiB0aGUgRm9ybUFycmF5ICovXHJcbiAgICAgICAgICAgICAgICBpZiAoZm9ybUNvbnRyb2wuY29udHJvbHMpIHtcclxuICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbC5jb250cm9scy5mb3JFYWNoKCh0OiBhbnksIGkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHQuY29udHJvbHMpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZXhwcmVzc2lvblByb2Nlc3Nvcih0LmNvbnRyb2xzLCBgJHtmaWVsZE5hbWV9W11gKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIGNvbmRpdGlvbmFsIHZhbGlkYXRvcnMgYmFzZWQgb24gdGhlIHZhbGlkYXRpb24gcnVsZS5cclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBzZXRDb25kaXRpb25hbFZhbGlkYXRvcihjb250cm9sczogeyBba2V5OiBzdHJpbmddOiBBYnN0cmFjdENvbnRyb2w7IH0pIHtcclxuICAgICAgICAvKiBJdGVyYXRlcyB0aHJvdWdoIHRoZSBmb3JtIGNvbnRyb2xzIGFuZCBzZXRzIGNvbmRpdGlvbmFsIHZhbGlkYXRvcnMgYmFzZWQgb24gdmFsaWRhdGlvbiBydWxlcyAqL1xyXG4gICAgICAgIE9iamVjdC5rZXlzKGNvbnRyb2xzKS5mb3JFYWNoKGZpZWxkTmFtZSA9PiB7XHJcbiAgICAgICAgICAgIC8qIElmIGNvbmRpdGlvbmFsIHZhbGlkYXRpb24gcHJvcGVydGllcyBhcmUgZGVmaW5lZCBmb3IgdGhlIGZpZWxkLCBzZXQgdGhlIGNvbmRpdGlvbmFsIHZhbGlkYXRvciAqL1xyXG4gICAgICAgICAgICBpZiAodGhpcy52YWxpZGF0aW9uUnVsZS5jb25kaXRpb25hbFZhbGlkYXRpb25Qcm9wcyAmJiB0aGlzLnZhbGlkYXRpb25SdWxlLmNvbmRpdGlvbmFsVmFsaWRhdGlvblByb3BzW2ZpZWxkTmFtZV0pIHtcclxuICAgICAgICAgICAgICAgIChjb250cm9scyBhcyBhbnkpW2ZpZWxkTmFtZV1bQ09ORElUSU9OQUxfVkFMSURBVE9SXSA9IGNvbmRpdGlvbmFsQ2hhbmdlVmFsaWRhdG9yKHRoaXMudmFsaWRhdGlvblJ1bGUuY29uZGl0aW9uYWxWYWxpZGF0aW9uUHJvcHNbZmllbGROYW1lXSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC8qIElmIHRoZSBmaWVsZCBpcyBhIEZvcm1Hcm91cCBhbmQgY29uZGl0aW9uYWwgb2JqZWN0IHByb3BlcnRpZXMgYXJlIGRlZmluZWQsIHNldCBjb25kaXRpb25hbCB2YWxpZGF0b3JzIGZvciBuZXN0ZWQgZmllbGRzICovXHJcbiAgICAgICAgICAgIGVsc2UgaWYgKChjb250cm9scyBhcyBhbnkpW2ZpZWxkTmFtZV0gaW5zdGFuY2VvZiBGb3JtR3JvdXAgJiYgdGhpcy52YWxpZGF0aW9uUnVsZS5jb25kaXRpb25hbE9iamVjdFByb3BzKSB7XHJcbiAgICAgICAgICAgICAgICAvKiBGaWx0ZXIgY29uZGl0aW9uYWwgb2JqZWN0IHByb3BlcnRpZXMgYmFzZWQgb24gdGhlIGN1cnJlbnQgZmllbGQgbmFtZSAqL1xyXG4gICAgICAgICAgICAgICAgdmFyIGZpZWxkcyA9IHRoaXMudmFsaWRhdGlvblJ1bGUuY29uZGl0aW9uYWxPYmplY3RQcm9wcy5maWx0ZXIoKHQ6IGFueSkgPT4gdC5vYmplY3RQcm9wTmFtZSA9PSBmaWVsZE5hbWUpO1xyXG5cclxuICAgICAgICAgICAgICAgIC8qIEFjY2VzcyB0aGUgbmVzdGVkIEZvcm1Hcm91cCBjb3JyZXNwb25kaW5nIHRvIHRoZSBjdXJyZW50IGZpZWxkICovXHJcbiAgICAgICAgICAgICAgICBsZXQgbmVzdGVkRm9ybUdyb3VwID0gKGNvbnRyb2xzIGFzIGFueSlbZmllbGROYW1lXSBhcyBGb3JtR3JvdXA7XHJcblxyXG4gICAgICAgICAgICAgICAgLyogSW5pdGlhbGl6ZSBhbiBvYmplY3QgdG8gc3RvcmUgY29uZGl0aW9uYWwgY29udHJvbHMgZ3JvdXBlZCBieSBwcm9wZXJ0eSBuYW1lICovXHJcbiAgICAgICAgICAgICAgICBsZXQgcHJvcFdpc2VDb25kaXRpb25hbENvbnRyb2xzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZ1tdIH0gPSB7fTtcclxuXHJcbiAgICAgICAgICAgICAgICAvKiBJdGVyYXRlIHRocm91Z2ggdGhlIGZpbHRlcmVkIGZpZWxkcyBhbmQgZ3JvdXAgY29uZGl0aW9uYWwgY29udHJvbHMgYnkgcHJvcGVydHkgbmFtZSAqL1xyXG4gICAgICAgICAgICAgICAgZmllbGRzLmZvckVhY2goKHg6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIC8qIElmIHRoZSBwcm9wZXJ0eSBuYW1lIGRvZXNuJ3QgZXhpc3QgaW4gdGhlIGdyb3VwaW5nIG9iamVjdCwgaW5pdGlhbGl6ZSBpdCAqL1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICghcHJvcFdpc2VDb25kaXRpb25hbENvbnRyb2xzW3gucHJvcE5hbWVdKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BXaXNlQ29uZGl0aW9uYWxDb250cm9sc1t4LnByb3BOYW1lXSA9IFtdO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAvKiBQdXNoIHRoZSByZWZlcmVuY2UgcHJvcGVydHkgbmFtZSB0byB0aGUgYXJyYXkgY29ycmVzcG9uZGluZyB0byB0aGUgcHJvcGVydHkgbmFtZSAqL1xyXG4gICAgICAgICAgICAgICAgICAgIHByb3BXaXNlQ29uZGl0aW9uYWxDb250cm9sc1t4LnByb3BOYW1lXS5wdXNoKHgucmVmZXJlbmNlUHJvcE5hbWUpO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAgICAgLyogU2V0IGNvbmRpdGlvbmFsIHZhbGlkYXRvcnMgZm9yIG5lc3RlZCBmb3JtIGNvbnRyb2xzICovXHJcbiAgICAgICAgICAgICAgICBPYmplY3Qua2V5cyhwcm9wV2lzZUNvbmRpdGlvbmFsQ29udHJvbHMpLmZvckVhY2goa2V5ID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAobmVzdGVkRm9ybUdyb3VwLmNvbnRyb2xzIGFzIGFueSlba2V5XVtDT05ESVRJT05BTF9WQUxJREFUT1JdID0gY29uZGl0aW9uYWxDaGFuZ2VWYWxpZGF0b3IocHJvcFdpc2VDb25kaXRpb25hbENvbnRyb2xzW2tleV0pO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC8qIElmIHRoZSBmaWVsZCBpcyBhIEZvcm1BcnJheSwgcmVjdXJzaXZlbHkgc2V0IGNvbmRpdGlvbmFsIHZhbGlkYXRvcnMgZm9yIGl0cyBjb250cm9scyAqL1xyXG4gICAgICAgICAgICBlbHNlIGlmICgoY29udHJvbHMgYXMgYW55KVtmaWVsZE5hbWVdIGluc3RhbmNlb2YgRm9ybUFycmF5KSB7XHJcbiAgICAgICAgICAgICAgICAvKiBJdGVyYXRlIHRocm91Z2ggdGhlIGNvbnRyb2xzIG9mIHRoZSBjdXJyZW50IEZvcm1BcnJheSAqL1xyXG4gICAgICAgICAgICAgICAgKGNvbnRyb2xzIGFzIGFueSlbZmllbGROYW1lXS5jb250cm9scy5mb3JFYWNoKCh0OiBhbnksIGk6IG51bWJlcikgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIC8qIElmIHRoZSBjb250cm9sIGRvZXNuJ3QgaGF2ZSBjaGlsZCBjb250cm9scyAoaS5lLiwgaXQncyBub3QgYSBGb3JtR3JvdXAgb3IgRm9ybUFycmF5KSAqL1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0LmNvbnRyb2xzID09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvKiBTZXQgY29uZGl0aW9uYWwgdmFsaWRhdG9yIGZvciB0aGUgaW5kaXZpZHVhbCBjb250cm9sICovXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0Q29uZGl0aW9uYWxWYWxpZGF0b3IoPGFueT57IFtpXTogdCB9KTtcclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvKiBTZXQgY29uZGl0aW9uYWwgdmFsaWRhdG9yIGZvciB0aGUgY2hpbGQgY29udHJvbHMgKi9cclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRDb25kaXRpb25hbFZhbGlkYXRvcih0LmNvbnRyb2xzKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG59Il19
234
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicngtZm9ybS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvc3JjL2xpYi9mb3JtLXZhbGlkYXRvcnMvZGlyZWN0aXZlcy9yeC1mb3JtLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9CLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkUsT0FBTyxFQUFtQixTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQy9FLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxLQUFLLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sMERBQTBELENBQUM7QUFDdEcsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNwQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBRWpEOztHQUVHO0FBSUgsTUFBTSxPQUFPLGtCQUFtQixTQUFRLGFBQWE7SUFDakQ7O09BRUc7SUFDSyxrQkFBa0IsR0FBUSxDQUFDLENBQUM7SUFFcEM7O09BRUc7SUFDSyxjQUFjLEdBQVEsRUFBRSxDQUFDO0lBRWpDOztPQUVHO0lBRUksU0FBUyxDQUFhO0lBRTdCOztPQUVHO0lBRUksTUFBTSxDQUFVO0lBRXZCOztPQUVHO0lBQ0gsa0JBQWtCO1FBQ2QsK0dBQStHO1FBQy9HLElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFFLElBQUksQ0FBQyxTQUFpQixDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxJQUFJLElBQUksRUFBRSxDQUFDO1lB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QyxDQUFDO2dCQUNqSSxDQUFDLENBQUMsQ0FBQztZQUNQLENBQUM7WUFFRCwwRkFBMEY7aUJBQ3JGLElBQUssUUFBZ0IsQ0FBQyxTQUFTLENBQUMsWUFBWSxTQUFTLEVBQUUsQ0FBQztnQkFDekQsMkRBQTJEO2dCQUMxRCxRQUFnQixDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFNLEVBQUUsQ0FBUyxFQUFFLEVBQUU7b0JBQ2hFLDBGQUEwRjtvQkFDMUYsSUFBSSxDQUFDLENBQUMsUUFBUSxJQUFJLFNBQVMsRUFBRSxDQUFDO3dCQUMxQiwwREFBMEQ7d0JBQzFELElBQUksQ0FBQyx1QkFBdUIsQ0FBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztvQkFDbEQsQ0FBQzt5QkFBTSxDQUFDO3dCQUNKLHNEQUFzRDt3QkFDdEQsSUFBSSxDQUFDLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQztvQkFDN0MsQ0FBQztnQkFDTCxDQUFDLENBQUMsQ0FBQztZQUNQLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7MEhBalBRLGtCQUFrQjs4R0FBbEIsa0JBQWtCOzsyRkFBbEIsa0JBQWtCO2tCQUg5QixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSx5QkFBeUI7aUJBQ3RDOzhCQWdCVSxTQUFTO3NCQURmLEtBQUs7Z0JBT0MsTUFBTTtzQkFEWixLQUFLO3VCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlckNvbnRlbnRJbml0LCBEaXJlY3RpdmUsIElucHV0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3JtQXJyYXksIEZvcm1Hcm91cCwgTmdGb3JtIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IENPTkRJVElPTkFMX1ZBTElEQVRPUiwgTU9ERUwgfSBmcm9tICcuLi9jb25zdC9hcHAuY29uc3QnO1xyXG5pbXBvcnQgeyBBbm5vdGF0aW9uVHlwZXMgfSBmcm9tIFwiLi4vY29yZS9hbm5vdGF0aW9uLXR5cGVzXCI7XHJcbmltcG9ydCB7IGRlZmF1bHRDb250YWluZXIgfSBmcm9tIFwiLi4vY29yZS9kZWZhdWx0LWNvbnRhaW5lclwiO1xyXG5pbXBvcnQgeyBjb25kaXRpb25hbENoYW5nZVZhbGlkYXRvciB9IGZyb20gJy4uL3JlYWN0aXZlLWZvcm0tdmFsaWRhdG9ycy9jb25kaXRpb25hbC1jaGFuZ2UudmFsaWRhdG9yJztcclxuaW1wb3J0IHsgTGlucSB9IGZyb20gXCIuLi91dGlsL2xpbnFcIjtcclxuaW1wb3J0IHsgQmFzZURpcmVjdGl2ZSB9IGZyb20gXCIuL2Jhc2UtZGlyZWN0aXZlXCI7XHJcblxyXG4vKipcclxuICogVGhpcyBkaXJlY3RpdmUgcHJvdmlkZXMgZnVuY3Rpb25hbGl0eSBmb3IgaW50ZWdyYXRpbmcgUnhXZWJGb3JtcyB3aXRoIEFuZ3VsYXIgZm9ybXMuXHJcbiAqL1xyXG5ARGlyZWN0aXZlKHtcclxuICAgIHNlbGVjdG9yOiAnW2Zvcm1Hcm91cF0sW3J4d2ViRm9ybV0nLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUnh3ZWJGb3JtRGlyZWN0aXZlIGV4dGVuZHMgQmFzZURpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQge1xyXG4gICAgLyoqXHJcbiAgICAgKiBUaW1lb3V0IElEIGZvciBjbGVhcmluZyB0aGUgdGltZW91dFxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGNsZWFyVGltZW91dE51bWJlcjogYW55ID0gMDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIE9iamVjdCB0byBzdG9yZSB2YWxpZGF0aW9uIHJ1bGVzXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgdmFsaWRhdGlvblJ1bGU6IGFueSA9IHt9O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIGZvcm1Hcm91cCBpbnB1dCBwcm9wZXJ0eSBmb3IgYmluZGluZyB0aGUgZm9ybSBncm91cCB0byB0aGUgZGlyZWN0aXZlLlxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGZvcm1Hcm91cD86IEZvcm1Hcm91cDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBuZ0Zvcm0gaW5wdXQgcHJvcGVydHkgZm9yIGJpbmRpbmcgdGhlIE5nRm9ybSB0byB0aGUgZGlyZWN0aXZlLlxyXG4gICAgICovXHJcbiAgICBASW5wdXQoJ3J4d2ViRm9ybScpXHJcbiAgICBwdWJsaWMgbmdGb3JtPzogTmdGb3JtO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQWZ0ZXIgdGhlIGNvbnRlbnQgaXMgaW5pdGlhbGl6ZWQsIHRoaXMgbWV0aG9kIGNvbmZpZ3VyZXMgbW9kZWwgdmFsaWRhdGlvbnMgYmFzZWQgb24gdGhlIGZvcm1Hcm91cCBvciBuZ0Zvcm0uXHJcbiAgICAgKi9cclxuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcclxuICAgICAgICAvKiBJZiB0aGUgZm9ybUdyb3VwIGV4aXN0cywgZG9lc24ndCBoYXZlIHRoZSBNT0RFTCBwcm9wZXJ0eSwgYW5kIGhhcyBubyBwYXJlbnQgKGkuZS4sIGl0J3MgYSB0b3AtbGV2ZWwgZm9ybSkgKi9cclxuICAgICAgICBpZiAodGhpcy5mb3JtR3JvdXAgJiYgISh0aGlzLmZvcm1Hcm91cCBhcyBhbnkpW01PREVMXSAmJiB0aGlzLmZvcm1Hcm91cC5wYXJlbnQgPT0gbnVsbCkge1xyXG4gICAgICAgICAgICAvKiBQcm9jZXNzIGV4cHJlc3Npb25zIGZvciBjb25maWd1cmluZyBtb2RlbCB2YWxpZGF0aW9ucyAqL1xyXG4gICAgICAgICAgICB0aGlzLmV4cHJlc3Npb25Qcm9jZXNzb3IodGhpcy5mb3JtR3JvdXAuY29udHJvbHMpO1xyXG5cclxuICAgICAgICAgICAgLyogU2V0IGNvbmRpdGlvbmFsIHZhbGlkYXRvcnMgYmFzZWQgb24gdGhlIHZhbGlkYXRpb24gcnVsZSAqL1xyXG4gICAgICAgICAgICB0aGlzLnNldENvbmRpdGlvbmFsVmFsaWRhdG9yKHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qIElmIHRoZSBmb3JtR3JvdXAgZXhpc3RzLCBkb2Vzbid0IGhhdmUgdGhlIE1PREVMIHByb3BlcnR5LCBhbmQgaXRzIHBhcmVudCBpcyBhbiBpbnN0YW5jZSBvZiBGb3JtQXJyYXkgKi9cclxuICAgICAgICBlbHNlIGlmICh0aGlzLmZvcm1Hcm91cCAmJiAhKHRoaXMuZm9ybUdyb3VwIGFzIGFueSlbTU9ERUxdICYmIHRoaXMuZm9ybUdyb3VwLnBhcmVudCBpbnN0YW5jZW9mIEZvcm1BcnJheSkge1xyXG4gICAgICAgICAgICAvKiBQcm9jZXNzIGV4cHJlc3Npb25zIGZvciBjb25maWd1cmluZyBtb2RlbCB2YWxpZGF0aW9ucyAqL1xyXG4gICAgICAgICAgICB0aGlzLmV4cHJlc3Npb25Qcm9jZXNzb3IodGhpcy5mb3JtR3JvdXAuY29udHJvbHMpO1xyXG5cclxuICAgICAgICAgICAgLyogU2V0IGNvbmRpdGlvbmFsIHZhbGlkYXRvcnMgYmFzZWQgb24gdGhlIHZhbGlkYXRpb24gcnVsZSAqL1xyXG4gICAgICAgICAgICB0aGlzLnNldENvbmRpdGlvbmFsVmFsaWRhdG9yKHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qIElmIG5nRm9ybSBpcyBwcmVzZW50ICovXHJcbiAgICAgICAgZWxzZSBpZiAodGhpcy5uZ0Zvcm0pIHtcclxuICAgICAgICAgICAgLyogQ29uZmlndXJlIG1vZGVsIHZhbGlkYXRpb25zICovXHJcbiAgICAgICAgICAgIHRoaXMuY29uZmlndXJlTW9kZWxWYWxpZGF0aW9ucygpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIENvbmZpZ3VyZXMgbW9kZWwgdmFsaWRhdGlvbnMgYmFzZWQgb24gdGhlIG5nRm9ybSBpZiBwcmVzZW50LlxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGNvbmZpZ3VyZU1vZGVsVmFsaWRhdGlvbnMoKSB7XHJcbiAgICAgICAgLyogSWYgbmdGb3JtIGlzIHByZXNlbnQgKi9cclxuICAgICAgICBpZiAodGhpcy5uZ0Zvcm0pIHtcclxuICAgICAgICAgICAgLyogU2V0IGEgdGltZW91dCB0byBhcHBseSB2YWxpZGF0aW9ucyBhZnRlciBhIGRlbGF5ICovXHJcbiAgICAgICAgICAgIHRoaXMuY2xlYXJUaW1lb3V0TnVtYmVyID0gc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAvKiBDbGVhciB0aGUgdGltZW91dCB0byBwcmV2ZW50IG11bHRpcGxlIGNhbGxzICovXHJcbiAgICAgICAgICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5jbGVhclRpbWVvdXROdW1iZXIpO1xyXG5cclxuICAgICAgICAgICAgICAgIC8qIEFwcGx5IHZhbGlkYXRpb25zIHRvIHRoZSBmb3JtIGNvbnRyb2xzICovXHJcbiAgICAgICAgICAgICAgICB0aGlzLmFwcGx5VmFsaWRhdGlvbnModGhpcy5uZ0Zvcm0hLmZvcm0uY29udHJvbHMpO1xyXG5cclxuICAgICAgICAgICAgICAgIC8qIFByb2Nlc3MgZXhwcmVzc2lvbnMgZm9yIGNvbmZpZ3VyaW5nIG1vZGVsIHZhbGlkYXRpb25zICovXHJcbiAgICAgICAgICAgICAgICB0aGlzLmV4cHJlc3Npb25Qcm9jZXNzb3IodGhpcy5uZ0Zvcm0hLmZvcm0uY29udHJvbHMpO1xyXG5cclxuICAgICAgICAgICAgICAgIC8qIFNldCBjb25kaXRpb25hbCB2YWxpZGF0b3JzIGJhc2VkIG9uIHRoZSB2YWxpZGF0aW9uIHJ1bGUgKi9cclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0Q29uZGl0aW9uYWxWYWxpZGF0b3IodGhpcy5uZ0Zvcm0hLmZvcm0uY29udHJvbHMpO1xyXG5cclxuICAgICAgICAgICAgICAgIC8qIFVwZGF0ZSB0aGUgdmFsdWUgYW5kIHZhbGlkaXR5IG9mIHRoZSBmb3JtIGNvbnRyb2xzICovXHJcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkodGhpcy5uZ0Zvcm0hLmZvcm0uY29udHJvbHMpO1xyXG4gICAgICAgICAgICB9LCA1MDApO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFVwZGF0ZXMgdGhlIHZhbHVlIGFuZCB2YWxpZGl0eSBvZiB0aGUgZm9ybSBjb250cm9scy5cclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSB1cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KGNvbnRyb2xzOiBhbnkpIHtcclxuICAgICAgICAvKiBJdGVyYXRlIG92ZXIgdGhlIGtleXMgb2YgdGhlIGNvbnRyb2xzIG9iamVjdCAqL1xyXG4gICAgICAgIE9iamVjdC5rZXlzKGNvbnRyb2xzKS5mb3JFYWNoKGtleSA9PiB7XHJcbiAgICAgICAgICAgIC8qIENoZWNrIGlmIHRoZSBjb250cm9sIGlzIGFuIGluc3RhbmNlIG9mIEZvcm1Hcm91cCAqL1xyXG4gICAgICAgICAgICBpZiAoY29udHJvbHNba2V5XSBpbnN0YW5jZW9mIEZvcm1Hcm91cCkge1xyXG5cclxuICAgICAgICAgICAgICAgIC8qIFJlY3Vyc2l2ZWx5IHVwZGF0ZSB2YWx1ZSBhbmQgdmFsaWRpdHkgZm9yIGNvbnRyb2xzIHdpdGhpbiB0aGUgRm9ybUdyb3VwICovXHJcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoY29udHJvbHNba2V5XS5jb250cm9scyk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC8qIENoZWNrIGlmIHRoZSBjb250cm9sIGlzIGFuIGluc3RhbmNlIG9mIEZvcm1BcnJheSAqL1xyXG4gICAgICAgICAgICBlbHNlIGlmIChjb250cm9sc1trZXldIGluc3RhbmNlb2YgRm9ybUFycmF5KSB7XHJcbiAgICAgICAgICAgICAgICAvKiBSZWN1cnNpdmVseSB1cGRhdGUgdmFsdWUgYW5kIHZhbGlkaXR5IGZvciBjb250cm9scyB3aXRoaW4gdGhlIEZvcm1BcnJheSAqL1xyXG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KGNvbnRyb2xzW2tleV0uY29udHJvbHMpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIC8qIFVwZGF0ZSB2YWx1ZSBhbmQgdmFsaWRpdHkgZm9yIHRoZSBjb250cm9sICovXHJcbiAgICAgICAgICAgICAgICBjb250cm9sc1trZXldLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFByb2Nlc3NlcyB0aGUgZXhwcmVzc2lvbnMgZm9yIGNvbmZpZ3VyaW5nIG1vZGVsIHZhbGlkYXRpb25zLlxyXG4gICAgICogQHBhcmFtIGNvbnRyb2xzIC0gVGhlIGZvcm0gY29udHJvbHMgdG8gcHJvY2Vzcy5cclxuICAgICAqIEBwYXJhbSByb290RmllbGROYW1lIC0gVGhlIHJvb3QgZmllbGQgbmFtZSBmb3IgbmVzdGVkIGNvbnRyb2xzLlxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGV4cHJlc3Npb25Qcm9jZXNzb3IoY29udHJvbHM6IHsgW2tleTogc3RyaW5nXTogYW55IH0sIHJvb3RGaWVsZE5hbWU6IHN0cmluZyA9IFwiXCIpIHtcclxuICAgICAgICAvKiBJdGVyYXRlIG92ZXIgdGhlIGtleXMgb2YgdGhlIGNvbnRyb2xzIG9iamVjdCAqL1xyXG4gICAgICAgIE9iamVjdC5rZXlzKGNvbnRyb2xzKS5mb3JFYWNoKGZpZWxkTmFtZSA9PiB7XHJcbiAgICAgICAgICAgIC8qIEdldCB0aGUgY29udHJvbCBjb3JyZXNwb25kaW5nIHRvIHRoZSBjdXJyZW50IGZpZWxkIG5hbWUgKi9cclxuICAgICAgICAgICAgbGV0IGZvcm1Db250cm9sOiBhbnkgPSBjb250cm9sc1tmaWVsZE5hbWVdO1xyXG5cclxuICAgICAgICAgICAgLyogQ2hlY2sgaWYgdGhlIGNvbnRyb2wgaGFzIHZhbGlkYXRvckNvbmZpZyAqL1xyXG4gICAgICAgICAgICBpZiAoZm9ybUNvbnRyb2wudmFsaWRhdG9yQ29uZmlnKSB7XHJcbiAgICAgICAgICAgICAgICAvKiBJdGVyYXRlIG92ZXIgdGhlIGtleXMgb2YgQW5ub3RhdGlvblR5cGVzICovXHJcbiAgICAgICAgICAgICAgICBPYmplY3Qua2V5cyhBbm5vdGF0aW9uVHlwZXMpLmZvckVhY2godmFsaWRhdG9yTmFtZSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgLyogQ2hlY2sgaWYgdGhlIGN1cnJlbnQgdmFsaWRhdG9yIGV4aXN0cyBpbiB0aGUgdmFsaWRhdG9yQ29uZmlnIGFuZCBoYXMgZGlzYWJsZUV4cHJlc3Npb24gKi9cclxuICAgICAgICAgICAgICAgICAgICBpZiAoZm9ybUNvbnRyb2wudmFsaWRhdG9yQ29uZmlnW3ZhbGlkYXRvck5hbWVdICYmIGZvcm1Db250cm9sLnZhbGlkYXRvckNvbmZpZ1t2YWxpZGF0b3JOYW1lXS5kaXNhYmxlRXhwcmVzc2lvbikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvKiBTZXQgdGhlIGRpc2FibGVFeHByZXNzaW9uIHByb3BlcnR5IGZvciB0aGUgZm9ybUNvbnRyb2wgKi9cclxuICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xbXCJkaXNhYmxlRXhwcmVzc2lvblwiXSA9IGZvcm1Db250cm9sLnZhbGlkYXRvckNvbmZpZ1t2YWxpZGF0b3JOYW1lXS5kaXNhYmxlRXhwcmVzc2lvbjtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8qIEV4dHJhY3QgY29sdW1ucyBmcm9tIHRoZSBkaXNhYmxlRXhwcmVzc2lvbiBhbmQgc2V0IGNvbmRpdGlvbmFsIHZhbHVlIHByb3BlcnRpZXMgKi9cclxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGNvbHVtbnMgPSBMaW5xLmV4cHJlc3Npb25Db2x1bW5zKGZvcm1Db250cm9sLnZhbGlkYXRvckNvbmZpZ1t2YWxpZGF0b3JOYW1lXS5kaXNhYmxlRXhwcmVzc2lvbik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbnMuZm9yRWFjaCh0ID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHRDb250YWluZXIuc2V0Q29uZGl0aW9uYWxWYWx1ZVByb3AodGhpcy52YWxpZGF0aW9uUnVsZSwgcm9vdEZpZWxkTmFtZSArIHQucHJvcE5hbWUsIGZpZWxkTmFtZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgLyogQ2hlY2sgaWYgdGhlIGN1cnJlbnQgdmFsaWRhdG9yIGV4aXN0cyBpbiB0aGUgdmFsaWRhdG9yQ29uZmlnIGFuZCBoYXMgY29uZGl0aW9uYWxFeHByZXNzaW9uICovXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGZvcm1Db250cm9sLnZhbGlkYXRvckNvbmZpZ1t2YWxpZGF0b3JOYW1lXSAmJiBmb3JtQ29udHJvbC52YWxpZGF0b3JDb25maWdbdmFsaWRhdG9yTmFtZV0uY29uZGl0aW9uYWxFeHByZXNzaW9uKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8qIEV4dHJhY3QgY29sdW1ucyBmcm9tIHRoZSBjb25kaXRpb25hbEV4cHJlc3Npb24gYW5kIHNldCBjb25kaXRpb25hbCB2YWx1ZSBwcm9wZXJ0aWVzICovXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBjb2x1bW5zID0gTGlucS5leHByZXNzaW9uQ29sdW1ucyhmb3JtQ29udHJvbC52YWxpZGF0b3JDb25maWdbdmFsaWRhdG9yTmFtZV0uY29uZGl0aW9uYWxFeHByZXNzaW9uKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1ucy5mb3JFYWNoKHQgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdENvbnRhaW5lci5zZXRDb25kaXRpb25hbFZhbHVlUHJvcCh0aGlzLnZhbGlkYXRpb25SdWxlLCByb290RmllbGROYW1lICsgdC5wcm9wTmFtZSwgZmllbGROYW1lKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAvKiBDaGVjayBpZiB0aGUgY3VycmVudCB2YWxpZGF0b3IgZXhpc3RzIGluIHRoZSB2YWxpZGF0b3JDb25maWcgYW5kIGhhcyBkeW5hbWljQ29uZmlnICovXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGZvcm1Db250cm9sLnZhbGlkYXRvckNvbmZpZ1t2YWxpZGF0b3JOYW1lXSAmJiBmb3JtQ29udHJvbC52YWxpZGF0b3JDb25maWdbdmFsaWRhdG9yTmFtZV0uZHluYW1pY0NvbmZpZykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvKiBQYXJzZSBkeW5hbWljQ29uZmlnLCBleHRyYWN0IGNvbHVtbnMsIGFuZCBzZXQgY29uZGl0aW9uYWwgdmFsdWUgcHJvcGVydGllcyAqL1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgY29sdW1ucyA9IExpbnEuZHluYW1pY0NvbmZpZ1BhcnNlcihmb3JtQ29udHJvbC52YWxpZGF0b3JDb25maWdbdmFsaWRhdG9yTmFtZV0uZHluYW1pY0NvbmZpZywgZmllbGROYW1lKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1ucy5mb3JFYWNoKHQgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdENvbnRhaW5lci5zZXRDb25kaXRpb25hbFZhbHVlUHJvcCh0aGlzLnZhbGlkYXRpb25SdWxlLCByb290RmllbGROYW1lICsgdC5wcm9wTmFtZSwgZmllbGROYW1lKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAvKiBDaGVjayBpZiB0aGUgY3VycmVudCB2YWxpZGF0b3IgZXhpc3RzIGluIHRoZSB2YWxpZGF0b3JDb25maWcgYW5kIGlzIGEgbG9naWNhbCB2YWxpZGF0b3IgKi9cclxuICAgICAgICAgICAgICAgICAgICBpZiAoZm9ybUNvbnRyb2wudmFsaWRhdG9yQ29uZmlnW3ZhbGlkYXRvck5hbWVdICYmICh2YWxpZGF0b3JOYW1lID09IEFubm90YXRpb25UeXBlcy5hbmQgfHwgdmFsaWRhdG9yTmFtZSA9PSBBbm5vdGF0aW9uVHlwZXMub3IgfHwgdmFsaWRhdG9yTmFtZSA9PSBBbm5vdGF0aW9uVHlwZXMubm90KSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvKiBJdGVyYXRlIG92ZXIgdGhlIHZhbGlkYXRpb24gcnVsZXMsIHNldCBsb2dpY2FsIGNvbmRpdGlvbmFscyAqL1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBPYmplY3Qua2V5cyhmb3JtQ29udHJvbC52YWxpZGF0b3JDb25maWdbdmFsaWRhdG9yTmFtZV0udmFsaWRhdGlvbikuZm9yRWFjaCh0ID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgZm9ybUNvbnRyb2wudmFsaWRhdG9yQ29uZmlnW3ZhbGlkYXRvck5hbWVdLnZhbGlkYXRpb25bdF0gIT09IFwiYm9vbGVhblwiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdENvbnRhaW5lci5zZXRMb2dpY2FsQ29uZGl0aW9uYWwodGhpcy52YWxpZGF0aW9uUnVsZSwgdCwgZm9ybUNvbnRyb2wudmFsaWRhdG9yQ29uZmlnW3ZhbGlkYXRvck5hbWVdLnZhbGlkYXRpb25bdF0uZmllbGROYW1lLCBmaWVsZE5hbWUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIC8qIENoZWNrIGlmIHRoZSBjdXJyZW50IHZhbGlkYXRvciBleGlzdHMgaW4gdGhlIHZhbGlkYXRvckNvbmZpZyBhbmQgaXMgYSBjb21wYXJpc29uIG9yIHJhbmdlIHZhbGlkYXRvciAqL1xyXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGZvcm1Db250cm9sLnZhbGlkYXRvckNvbmZpZ1t2YWxpZGF0b3JOYW1lXSAmJiAoKHZhbGlkYXRvck5hbWUgPT0gQW5ub3RhdGlvblR5cGVzLmNvbXBhcmUgfHwgdmFsaWRhdG9yTmFtZSA9PSBBbm5vdGF0aW9uVHlwZXMuZ3JlYXRlclRoYW4gfHwgdmFsaWRhdG9yTmFtZSA9PSBBbm5vdGF0aW9uVHlwZXMuZ3JlYXRlclRoYW5FcXVhbFRvIHx8IHZhbGlkYXRvck5hbWUgPT0gQW5ub3RhdGlvblR5cGVzLmxlc3NUaGFuIHx8IHZhbGlkYXRvck5hbWUgPT0gQW5ub3RhdGlvblR5cGVzLmxlc3NUaGFuRXF1YWxUbyB8fCB2YWxpZGF0b3JOYW1lID09IEFubm90YXRpb25UeXBlcy5kaWZmZXJlbnQgfHwgdmFsaWRhdG9yTmFtZSA9PSBBbm5vdGF0aW9uVHlwZXMuZmFjdG9yIHx8IHZhbGlkYXRvck5hbWUgPT0gQW5ub3RhdGlvblR5cGVzLm1pblRpbWUgfHwgdmFsaWRhdG9yTmFtZSA9PSBBbm5vdGF0aW9uVHlwZXMubWF4VGltZSkgfHwgKHZhbGlkYXRvck5hbWUgPT0gQW5ub3RhdGlvblR5cGVzLmNyZWRpdENhcmQgJiYgZm9ybUNvbnRyb2wudmFsaWRhdG9yQ29uZmlnW3ZhbGlkYXRvck5hbWVdLmZpZWxkTmFtZSkgfHwgKCh2YWxpZGF0b3JOYW1lID09IEFubm90YXRpb25UeXBlcy5taW5EYXRlIHx8IHZhbGlkYXRvck5hbWUgPT0gQW5ub3RhdGlvblR5cGVzLm1heERhdGUpICYmIGZvcm1Db250cm9sLnZhbGlkYXRvckNvbmZpZ1t2YWxpZGF0b3JOYW1lXS5maWVsZE5hbWUpKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvKiBTZXQgY29uZGl0aW9uYWwgdmFsdWUgcHJvcGVydGllcyAqL1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0Q29udGFpbmVyLnNldENvbmRpdGlvbmFsVmFsdWVQcm9wKHRoaXMudmFsaWRhdGlvblJ1bGUsIGZvcm1Db250cm9sLnZhbGlkYXRvckNvbmZpZ1t2YWxpZGF0b3JOYW1lXS5maWVsZE5hbWUsIGZpZWxkTmFtZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC8qIENoZWNrIGlmIHRoZSBjb250cm9sIGlzIGFuIGluc3RhbmNlIG9mIEZvcm1Hcm91cCAqL1xyXG4gICAgICAgICAgICBlbHNlIGlmIChmb3JtQ29udHJvbCBpbnN0YW5jZW9mIEZvcm1Hcm91cCkge1xyXG4gICAgICAgICAgICAgICAgLyogUmVjdXJzaXZlbHkgcHJvY2VzcyBjb250cm9scyB3aXRoaW4gdGhlIEZvcm1Hcm91cCAqL1xyXG4gICAgICAgICAgICAgICAgdGhpcy5leHByZXNzaW9uUHJvY2Vzc29yKGZvcm1Db250cm9sLmNvbnRyb2xzLCBgJHtmaWVsZE5hbWV9LmApO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvKiBDaGVjayBpZiB0aGUgY29udHJvbCBpcyBhbiBpbnN0YW5jZSBvZiBGb3JtQXJyYXkgKi9cclxuICAgICAgICAgICAgZWxzZSBpZiAoZm9ybUNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtQXJyYXkpIHtcclxuICAgICAgICAgICAgICAgIC8qIFByb2Nlc3MgZWFjaCBjb250cm9sIHdpdGhpbiB0aGUgRm9ybUFycmF5ICovXHJcbiAgICAgICAgICAgICAgICBpZiAoZm9ybUNvbnRyb2wuY29udHJvbHMpIHtcclxuICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbC5jb250cm9scy5mb3JFYWNoKCh0OiBhbnksIGkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHQuY29udHJvbHMpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZXhwcmVzc2lvblByb2Nlc3Nvcih0LmNvbnRyb2xzLCBgJHtmaWVsZE5hbWV9W11gKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIGNvbmRpdGlvbmFsIHZhbGlkYXRvcnMgYmFzZWQgb24gdGhlIHZhbGlkYXRpb24gcnVsZS5cclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBzZXRDb25kaXRpb25hbFZhbGlkYXRvcihjb250cm9sczogeyBba2V5OiBzdHJpbmddOiBBYnN0cmFjdENvbnRyb2w7IH0pIHtcclxuICAgICAgICAvKiBJdGVyYXRlcyB0aHJvdWdoIHRoZSBmb3JtIGNvbnRyb2xzIGFuZCBzZXRzIGNvbmRpdGlvbmFsIHZhbGlkYXRvcnMgYmFzZWQgb24gdmFsaWRhdGlvbiBydWxlcyAqL1xyXG4gICAgICAgIE9iamVjdC5rZXlzKGNvbnRyb2xzKS5mb3JFYWNoKGZpZWxkTmFtZSA9PiB7XHJcbiAgICAgICAgICAgIC8qIElmIGNvbmRpdGlvbmFsIHZhbGlkYXRpb24gcHJvcGVydGllcyBhcmUgZGVmaW5lZCBmb3IgdGhlIGZpZWxkLCBzZXQgdGhlIGNvbmRpdGlvbmFsIHZhbGlkYXRvciAqL1xyXG4gICAgICAgICAgICBpZiAodGhpcy52YWxpZGF0aW9uUnVsZS5jb25kaXRpb25hbFZhbGlkYXRpb25Qcm9wcyAmJiB0aGlzLnZhbGlkYXRpb25SdWxlLmNvbmRpdGlvbmFsVmFsaWRhdGlvblByb3BzW2ZpZWxkTmFtZV0pIHtcclxuICAgICAgICAgICAgICAgIChjb250cm9scyBhcyBhbnkpW2ZpZWxkTmFtZV1bQ09ORElUSU9OQUxfVkFMSURBVE9SXSA9IGNvbmRpdGlvbmFsQ2hhbmdlVmFsaWRhdG9yKHRoaXMudmFsaWRhdGlvblJ1bGUuY29uZGl0aW9uYWxWYWxpZGF0aW9uUHJvcHNbZmllbGROYW1lXSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC8qIElmIHRoZSBmaWVsZCBpcyBhIEZvcm1Hcm91cCBhbmQgY29uZGl0aW9uYWwgb2JqZWN0IHByb3BlcnRpZXMgYXJlIGRlZmluZWQsIHNldCBjb25kaXRpb25hbCB2YWxpZGF0b3JzIGZvciBuZXN0ZWQgZmllbGRzICovXHJcbiAgICAgICAgICAgIGVsc2UgaWYgKChjb250cm9scyBhcyBhbnkpW2ZpZWxkTmFtZV0gaW5zdGFuY2VvZiBGb3JtR3JvdXAgJiYgdGhpcy52YWxpZGF0aW9uUnVsZS5jb25kaXRpb25hbE9iamVjdFByb3BzKSB7XHJcbiAgICAgICAgICAgICAgICAvKiBGaWx0ZXIgY29uZGl0aW9uYWwgb2JqZWN0IHByb3BlcnRpZXMgYmFzZWQgb24gdGhlIGN1cnJlbnQgZmllbGQgbmFtZSAqL1xyXG4gICAgICAgICAgICAgICAgdmFyIGZpZWxkcyA9IHRoaXMudmFsaWRhdGlvblJ1bGUuY29uZGl0aW9uYWxPYmplY3RQcm9wcy5maWx0ZXIoKHQ6IGFueSkgPT4gdC5vYmplY3RQcm9wTmFtZSA9PSBmaWVsZE5hbWUpO1xyXG5cclxuICAgICAgICAgICAgICAgIC8qIEFjY2VzcyB0aGUgbmVzdGVkIEZvcm1Hcm91cCBjb3JyZXNwb25kaW5nIHRvIHRoZSBjdXJyZW50IGZpZWxkICovXHJcbiAgICAgICAgICAgICAgICBsZXQgbmVzdGVkRm9ybUdyb3VwID0gKGNvbnRyb2xzIGFzIGFueSlbZmllbGROYW1lXSBhcyBGb3JtR3JvdXA7XHJcblxyXG4gICAgICAgICAgICAgICAgLyogSW5pdGlhbGl6ZSBhbiBvYmplY3QgdG8gc3RvcmUgY29uZGl0aW9uYWwgY29udHJvbHMgZ3JvdXBlZCBieSBwcm9wZXJ0eSBuYW1lICovXHJcbiAgICAgICAgICAgICAgICBsZXQgcHJvcFdpc2VDb25kaXRpb25hbENvbnRyb2xzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZ1tdIH0gPSB7fTtcclxuXHJcbiAgICAgICAgICAgICAgICAvKiBJdGVyYXRlIHRocm91Z2ggdGhlIGZpbHRlcmVkIGZpZWxkcyBhbmQgZ3JvdXAgY29uZGl0aW9uYWwgY29udHJvbHMgYnkgcHJvcGVydHkgbmFtZSAqL1xyXG4gICAgICAgICAgICAgICAgZmllbGRzLmZvckVhY2goKHg6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIC8qIElmIHRoZSBwcm9wZXJ0eSBuYW1lIGRvZXNuJ3QgZXhpc3QgaW4gdGhlIGdyb3VwaW5nIG9iamVjdCwgaW5pdGlhbGl6ZSBpdCAqL1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICghcHJvcFdpc2VDb25kaXRpb25hbENvbnRyb2xzW3gucHJvcE5hbWVdKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb3BXaXNlQ29uZGl0aW9uYWxDb250cm9sc1t4LnByb3BOYW1lXSA9IFtdO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAvKiBQdXNoIHRoZSByZWZlcmVuY2UgcHJvcGVydHkgbmFtZSB0byB0aGUgYXJyYXkgY29ycmVzcG9uZGluZyB0byB0aGUgcHJvcGVydHkgbmFtZSAqL1xyXG4gICAgICAgICAgICAgICAgICAgIHByb3BXaXNlQ29uZGl0aW9uYWxDb250cm9sc1t4LnByb3BOYW1lXS5wdXNoKHgucmVmZXJlbmNlUHJvcE5hbWUpO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAgICAgLyogU2V0IGNvbmRpdGlvbmFsIHZhbGlkYXRvcnMgZm9yIG5lc3RlZCBmb3JtIGNvbnRyb2xzICovXHJcbiAgICAgICAgICAgICAgICBPYmplY3Qua2V5cyhwcm9wV2lzZUNvbmRpdGlvbmFsQ29udHJvbHMpLmZvckVhY2goa2V5ID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAobmVzdGVkRm9ybUdyb3VwLmNvbnRyb2xzIGFzIGFueSlba2V5XVtDT05ESVRJT05BTF9WQUxJREFUT1JdID0gY29uZGl0aW9uYWxDaGFuZ2VWYWxpZGF0b3IocHJvcFdpc2VDb25kaXRpb25hbENvbnRyb2xzW2tleV0pO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC8qIElmIHRoZSBmaWVsZCBpcyBhIEZvcm1BcnJheSwgcmVjdXJzaXZlbHkgc2V0IGNvbmRpdGlvbmFsIHZhbGlkYXRvcnMgZm9yIGl0cyBjb250cm9scyAqL1xyXG4gICAgICAgICAgICBlbHNlIGlmICgoY29udHJvbHMgYXMgYW55KVtmaWVsZE5hbWVdIGluc3RhbmNlb2YgRm9ybUFycmF5KSB7XHJcbiAgICAgICAgICAgICAgICAvKiBJdGVyYXRlIHRocm91Z2ggdGhlIGNvbnRyb2xzIG9mIHRoZSBjdXJyZW50IEZvcm1BcnJheSAqL1xyXG4gICAgICAgICAgICAgICAgKGNvbnRyb2xzIGFzIGFueSlbZmllbGROYW1lXS5jb250cm9scy5mb3JFYWNoKCh0OiBhbnksIGk6IG51bWJlcikgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIC8qIElmIHRoZSBjb250cm9sIGRvZXNuJ3QgaGF2ZSBjaGlsZCBjb250cm9scyAoaS5lLiwgaXQncyBub3QgYSBGb3JtR3JvdXAgb3IgRm9ybUFycmF5KSAqL1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0LmNvbnRyb2xzID09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvKiBTZXQgY29uZGl0aW9uYWwgdmFsaWRhdG9yIGZvciB0aGUgaW5kaXZpZHVhbCBjb250cm9sICovXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0Q29uZGl0aW9uYWxWYWxpZGF0b3IoPGFueT57IFtpXTogdCB9KTtcclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvKiBTZXQgY29uZGl0aW9uYWwgdmFsaWRhdG9yIGZvciB0aGUgY2hpbGQgY29udHJvbHMgKi9cclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRDb25kaXRpb25hbFZhbGlkYXRvcih0LmNvbnRyb2xzKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG59Il19
@@ -17,14 +17,14 @@ export class AsyncValidationDirective {
17
17
  validate(control) {
18
18
  return this.async ? this.async(control) : of(null);
19
19
  }
20
- /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: AsyncValidationDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
21
- /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.5", type: AsyncValidationDirective, selector: "[ngModel],[formControlName],[formControl]", inputs: { async: "async" }, providers: [{
20
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: AsyncValidationDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
21
+ /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.6", type: AsyncValidationDirective, selector: "[ngModel],[formControlName],[formControl]", inputs: { async: "async" }, providers: [{
22
22
  provide: NG_ASYNC_VALIDATORS,
23
23
  useExisting: forwardRef((() => AsyncValidationDirective)),
24
24
  multi: true
25
25
  }], ngImport: i0 });
26
26
  }
27
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: AsyncValidationDirective, decorators: [{
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: AsyncValidationDirective, decorators: [{
28
28
  type: Directive,
29
29
  args: [{
30
30
  selector: '[ngModel],[formControlName],[formControl]',
@@ -65,12 +65,12 @@ export class BaseValidator extends ControlExpressionProcess {
65
65
  }
66
66
  this.eventName = eventName.toLowerCase();
67
67
  }
68
- /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: BaseValidator, deps: null, target: i0.ɵɵFactoryTarget.Directive });
69
- /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.5", type: BaseValidator, inputs: { formControl: "formControl" }, usesInheritance: true, ngImport: i0 });
68
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: BaseValidator, deps: null, target: i0.ɵɵFactoryTarget.Directive });
69
+ /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.6", type: BaseValidator, inputs: { formControl: "formControl" }, usesInheritance: true, ngImport: i0 });
70
70
  }
71
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: BaseValidator, decorators: [{
71
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: BaseValidator, decorators: [{
72
72
  type: Directive
73
73
  }], propDecorators: { formControl: [{
74
74
  type: Input
75
75
  }] } });
76
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS12YWxpZGF0b3IuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL3NyYy9saWIvZm9ybS12YWxpZGF0b3JzL2RpcmVjdGl2ZXMvdGVtcGxhdGUtdmFsaWRhdGlvbnMvYmFzZS12YWxpZGF0b3IuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWpELE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFHckYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sOEJBQThCLENBQUM7O0FBRXhFOzs7R0FHRztBQUVILE1BQU0sT0FBTyxhQUFjLFNBQVEsd0JBQXdCO0lBQ3ZEOztPQUVHO0lBRUksV0FBVyxDQUFpQztJQUVuRDs7T0FFRztJQUNPLFVBQVUsR0FBa0IsRUFBRSxDQUFDO0lBRXpDOztPQUVHO0lBQ08sT0FBTyxDQUFNO0lBRXZCOztPQUVHO0lBQ08sU0FBUyxDQUFVO0lBRTdCOztPQUVHO0lBQ08sWUFBWSxDQUFnQjtJQUV0Qzs7OztPQUlHO0lBQ0ksVUFBVSxDQUFDLE9BQXdCO1FBQ3RDLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQztRQUVsQiwyRUFBMkU7UUFDM0UsS0FBSyxJQUFJLFNBQVMsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ25DLE1BQU0sR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDNUIsSUFBSSxNQUFNLEVBQUU7Z0JBQ1IsTUFBTTthQUNUO1NBQ0o7UUFFRCx1RkFBdUY7UUFDdkYsSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQzlCLE1BQU0sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDO1NBQ3pDO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQztJQUVEOzs7T0FHRztJQUNPLFlBQVk7UUFDbEIsSUFBSSxTQUFTLEdBQVcsRUFBRSxDQUFDO1FBRTNCLGdEQUFnRDtRQUNoRCxRQUFRLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFO1lBQzFCLEtBQUssS0FBSyxDQUFDO1lBQ1gsS0FBSyxRQUFRO2dCQUNULFNBQVMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxJQUFJLFFBQVEsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksSUFBSSxLQUFLLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO2dCQUN4SCxNQUFNO1lBRVYsS0FBSyxNQUFNO2dCQUNQLFNBQVMsR0FBRyxNQUFNLENBQUM7Z0JBQ25CLE1BQU07U0FDYjtRQUVELElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzdDLENBQUM7MEhBdkVRLGFBQWE7OEdBQWIsYUFBYTs7MkZBQWIsYUFBYTtrQkFEekIsU0FBUzs4QkFNQyxXQUFXO3NCQURqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbnB1dCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgRm9ybUNvbnRyb2wsIFZhbGlkYXRvckZuIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBDSEFOR0UsIENIRUNLQk9YLCBGSUxFLCBJTlBVVCwgUkFESU8sIFNFTEVDVCwgVEVYVEFSRUEgfSBmcm9tIFwiLi4vLi4vY29uc3RcIjtcclxuXHJcbmltcG9ydCB7IE1hc2tQcm92aWRlciB9IGZyb20gJy4uLy4uL2RvbWFpbi9lbGVtZW50LXByb2Nlc3Nvci9tYXNrLnByb3ZpZGVyJztcclxuaW1wb3J0IHsgQ29udHJvbEV4cHJlc3Npb25Qcm9jZXNzIH0gZnJvbSAnLi9jb250cm9sLWV4cHJlc3Npb24tcHJvY2Vzcyc7XHJcblxyXG4vKipcclxuICogQmFzZVZhbGlkYXRvciBpcyBhIGJhc2UgY2xhc3MgZm9yIGltcGxlbWVudGluZyBjdXN0b20gdmFsaWRhdG9ycyBpbiBBbmd1bGFyLlxyXG4gKiBJdCBleHRlbmRzIENvbnRyb2xFeHByZXNzaW9uUHJvY2VzcyB0byBoYW5kbGUgY29udHJvbCBleHByZXNzaW9ucy5cclxuICovXHJcbkBEaXJlY3RpdmUoKVxyXG5leHBvcnQgY2xhc3MgQmFzZVZhbGlkYXRvciBleHRlbmRzIENvbnRyb2xFeHByZXNzaW9uUHJvY2VzcyB7XHJcbiAgICAvKipcclxuICAgICAqIElucHV0IHByb3BlcnR5IGZvciB0aGUgZm9ybSBjb250cm9sIGFzc29jaWF0ZWQgd2l0aCB0aGUgdmFsaWRhdG9yLlxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGZvcm1Db250cm9sPzogRm9ybUNvbnRyb2wgfCBBYnN0cmFjdENvbnRyb2w7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBcnJheSB0byBzdG9yZSB0aGUgdmFsaWRhdG9yIGZ1bmN0aW9ucy5cclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIHZhbGlkYXRvcnM6IFZhbGlkYXRvckZuW10gPSBbXTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFJlZmVyZW5jZSB0byB0aGUgSFRNTCBlbGVtZW50IGFzc29jaWF0ZWQgd2l0aCB0aGUgdmFsaWRhdG9yLlxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgZWxlbWVudDogYW55O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogTmFtZSBvZiB0aGUgZXZlbnQgdHJpZ2dlcmluZyB0aGUgdmFsaWRhdGlvbi5cclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIGV2ZW50TmFtZT86IHN0cmluZztcclxuXHJcbiAgICAvKipcclxuICAgICAqIFByb3ZpZGVyIGZvciBoYW5kbGluZyBtYXNrcyBpbiB2YWxpZGF0aW9uLlxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgbWFza1Byb3ZpZGVyPzogTWFza1Byb3ZpZGVyO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogUGVyZm9ybXMgdmFsaWRhdGlvbiBvbiB0aGUgcHJvdmlkZWQgY29udHJvbCB1c2luZyB0aGUgZGVmaW5lZCB2YWxpZGF0b3JzIGFuZCBtYXNrIHByb3ZpZGVyLlxyXG4gICAgICogQHBhcmFtIGNvbnRyb2wgVGhlIGFic3RyYWN0IGNvbnRyb2wgdG8gYmUgdmFsaWRhdGVkLlxyXG4gICAgICogQHJldHVybnMgQSB2YWxpZGF0aW9uIHJlc3VsdCwgb3IgbnVsbCBpZiB2YWxpZGF0aW9uIHBhc3Nlcy5cclxuICAgICAqL1xyXG4gICAgcHVibGljIHZhbGlkYXRpb24oY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB7XHJcbiAgICAgICAgbGV0IHJlc3VsdCA9IG51bGw7XHJcblxyXG4gICAgICAgIC8qIEl0ZXJhdGUgdGhyb3VnaCB2YWxpZGF0b3JzIGFuZCBicmVhayBvbiB0aGUgZmlyc3QgdmFsaWRhdGlvbiBmYWlsdXJlLiAqL1xyXG4gICAgICAgIGZvciAobGV0IHZhbGlkYXRvciBvZiB0aGlzLnZhbGlkYXRvcnMpIHtcclxuICAgICAgICAgICAgcmVzdWx0ID0gdmFsaWRhdG9yKGNvbnRyb2wpO1xyXG4gICAgICAgICAgICBpZiAocmVzdWx0KSB7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyogSWYgbm8gdmFsaWRhdGlvbiBmYWlsdXJlIGFuZCBhIG1hc2sgcHJvdmlkZXIgaXMgZGVmaW5lZCwgdmFsaWRhdGUgdXNpbmcgdGhlIG1hc2suICovXHJcbiAgICAgICAgaWYgKCFyZXN1bHQgJiYgdGhpcy5tYXNrUHJvdmlkZXIpIHtcclxuICAgICAgICAgICAgcmVzdWx0ID0gdGhpcy5tYXNrUHJvdmlkZXIudmFsaWRhdGUoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIHRoZSBldmVudCBuYW1lIGJhc2VkIG9uIHRoZSB0eXBlIG9mIEhUTUwgZWxlbWVudCBhc3NvY2lhdGVkIHdpdGggdGhlIHZhbGlkYXRvci5cclxuICAgICAqIFRoaXMgaXMgdXNlZCB0byBkZXRlcm1pbmUgdGhlIGV2ZW50IHRoYXQgdHJpZ2dlcnMgdmFsaWRhdGlvbi5cclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIHNldEV2ZW50TmFtZSgpIHtcclxuICAgICAgICB2YXIgZXZlbnROYW1lOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgICAgICAgLyogRGV0ZXJtaW5lIGV2ZW50IGJhc2VkIG9uIEhUTUwgZWxlbWVudCB0eXBlICovXHJcbiAgICAgICAgc3dpdGNoICh0aGlzLmVsZW1lbnQudGFnTmFtZSkge1xyXG4gICAgICAgICAgICBjYXNlIElOUFVUOlxyXG4gICAgICAgICAgICBjYXNlIFRFWFRBUkVBOlxyXG4gICAgICAgICAgICAgICAgZXZlbnROYW1lID0gKHRoaXMuZWxlbWVudC50eXBlID09IENIRUNLQk9YIHx8IHRoaXMuZWxlbWVudC50eXBlID09IFJBRElPIHx8IHRoaXMuZWxlbWVudC50eXBlID09IEZJTEUpID8gQ0hBTkdFIDogSU5QVVQ7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgICAgIGNhc2UgU0VMRUNUOlxyXG4gICAgICAgICAgICAgICAgZXZlbnROYW1lID0gQ0hBTkdFO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmV2ZW50TmFtZSA9IGV2ZW50TmFtZS50b0xvd2VyQ2FzZSgpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS12YWxpZGF0b3IuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL3NyYy9saWIvZm9ybS12YWxpZGF0b3JzL2RpcmVjdGl2ZXMvdGVtcGxhdGUtdmFsaWRhdGlvbnMvYmFzZS12YWxpZGF0b3IuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWpELE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFHckYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sOEJBQThCLENBQUM7O0FBRXhFOzs7R0FHRztBQUVILE1BQU0sT0FBTyxhQUFjLFNBQVEsd0JBQXdCO0lBQ3ZEOztPQUVHO0lBRUksV0FBVyxDQUFpQztJQUVuRDs7T0FFRztJQUNPLFVBQVUsR0FBa0IsRUFBRSxDQUFDO0lBRXpDOztPQUVHO0lBQ08sT0FBTyxDQUFNO0lBRXZCOztPQUVHO0lBQ08sU0FBUyxDQUFVO0lBRTdCOztPQUVHO0lBQ08sWUFBWSxDQUFnQjtJQUV0Qzs7OztPQUlHO0lBQ0ksVUFBVSxDQUFDLE9BQXdCO1FBQ3RDLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQztRQUVsQiwyRUFBMkU7UUFDM0UsS0FBSyxJQUFJLFNBQVMsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDcEMsTUFBTSxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUM1QixJQUFJLE1BQU0sRUFBRSxDQUFDO2dCQUNULE1BQU07WUFDVixDQUFDO1FBQ0wsQ0FBQztRQUVELHVGQUF1RjtRQUN2RixJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUMvQixNQUFNLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUMxQyxDQUFDO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQztJQUVEOzs7T0FHRztJQUNPLFlBQVk7UUFDbEIsSUFBSSxTQUFTLEdBQVcsRUFBRSxDQUFDO1FBRTNCLGdEQUFnRDtRQUNoRCxRQUFRLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDM0IsS0FBSyxLQUFLLENBQUM7WUFDWCxLQUFLLFFBQVE7Z0JBQ1QsU0FBUyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLElBQUksUUFBUSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxJQUFJLEtBQUssSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7Z0JBQ3hILE1BQU07WUFFVixLQUFLLE1BQU07Z0JBQ1AsU0FBUyxHQUFHLE1BQU0sQ0FBQztnQkFDbkIsTUFBTTtRQUNkLENBQUM7UUFFRCxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUM3QyxDQUFDOzBIQXZFUSxhQUFhOzhHQUFiLGFBQWE7OzJGQUFiLGFBQWE7a0JBRHpCLFNBQVM7OEJBTUMsV0FBVztzQkFEakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEZvcm1Db250cm9sLCBWYWxpZGF0b3JGbiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQ0hBTkdFLCBDSEVDS0JPWCwgRklMRSwgSU5QVVQsIFJBRElPLCBTRUxFQ1QsIFRFWFRBUkVBIH0gZnJvbSBcIi4uLy4uL2NvbnN0XCI7XHJcblxyXG5pbXBvcnQgeyBNYXNrUHJvdmlkZXIgfSBmcm9tICcuLi8uLi9kb21haW4vZWxlbWVudC1wcm9jZXNzb3IvbWFzay5wcm92aWRlcic7XHJcbmltcG9ydCB7IENvbnRyb2xFeHByZXNzaW9uUHJvY2VzcyB9IGZyb20gJy4vY29udHJvbC1leHByZXNzaW9uLXByb2Nlc3MnO1xyXG5cclxuLyoqXHJcbiAqIEJhc2VWYWxpZGF0b3IgaXMgYSBiYXNlIGNsYXNzIGZvciBpbXBsZW1lbnRpbmcgY3VzdG9tIHZhbGlkYXRvcnMgaW4gQW5ndWxhci5cclxuICogSXQgZXh0ZW5kcyBDb250cm9sRXhwcmVzc2lvblByb2Nlc3MgdG8gaGFuZGxlIGNvbnRyb2wgZXhwcmVzc2lvbnMuXHJcbiAqL1xyXG5ARGlyZWN0aXZlKClcclxuZXhwb3J0IGNsYXNzIEJhc2VWYWxpZGF0b3IgZXh0ZW5kcyBDb250cm9sRXhwcmVzc2lvblByb2Nlc3Mge1xyXG4gICAgLyoqXHJcbiAgICAgKiBJbnB1dCBwcm9wZXJ0eSBmb3IgdGhlIGZvcm0gY29udHJvbCBhc3NvY2lhdGVkIHdpdGggdGhlIHZhbGlkYXRvci5cclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBmb3JtQ29udHJvbD86IEZvcm1Db250cm9sIHwgQWJzdHJhY3RDb250cm9sO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQXJyYXkgdG8gc3RvcmUgdGhlIHZhbGlkYXRvciBmdW5jdGlvbnMuXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCB2YWxpZGF0b3JzOiBWYWxpZGF0b3JGbltdID0gW107XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZWZlcmVuY2UgdG8gdGhlIEhUTUwgZWxlbWVudCBhc3NvY2lhdGVkIHdpdGggdGhlIHZhbGlkYXRvci5cclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIGVsZW1lbnQ6IGFueTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIE5hbWUgb2YgdGhlIGV2ZW50IHRyaWdnZXJpbmcgdGhlIHZhbGlkYXRpb24uXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBldmVudE5hbWU/OiBzdHJpbmc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQcm92aWRlciBmb3IgaGFuZGxpbmcgbWFza3MgaW4gdmFsaWRhdGlvbi5cclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIG1hc2tQcm92aWRlcj86IE1hc2tQcm92aWRlcjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFBlcmZvcm1zIHZhbGlkYXRpb24gb24gdGhlIHByb3ZpZGVkIGNvbnRyb2wgdXNpbmcgdGhlIGRlZmluZWQgdmFsaWRhdG9ycyBhbmQgbWFzayBwcm92aWRlci5cclxuICAgICAqIEBwYXJhbSBjb250cm9sIFRoZSBhYnN0cmFjdCBjb250cm9sIHRvIGJlIHZhbGlkYXRlZC5cclxuICAgICAqIEByZXR1cm5zIEEgdmFsaWRhdGlvbiByZXN1bHQsIG9yIG51bGwgaWYgdmFsaWRhdGlvbiBwYXNzZXMuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyB2YWxpZGF0aW9uKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IHsgW2tleTogc3RyaW5nXTogYW55IH0ge1xyXG4gICAgICAgIGxldCByZXN1bHQgPSBudWxsO1xyXG5cclxuICAgICAgICAvKiBJdGVyYXRlIHRocm91Z2ggdmFsaWRhdG9ycyBhbmQgYnJlYWsgb24gdGhlIGZpcnN0IHZhbGlkYXRpb24gZmFpbHVyZS4gKi9cclxuICAgICAgICBmb3IgKGxldCB2YWxpZGF0b3Igb2YgdGhpcy52YWxpZGF0b3JzKSB7XHJcbiAgICAgICAgICAgIHJlc3VsdCA9IHZhbGlkYXRvcihjb250cm9sKTtcclxuICAgICAgICAgICAgaWYgKHJlc3VsdCkge1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qIElmIG5vIHZhbGlkYXRpb24gZmFpbHVyZSBhbmQgYSBtYXNrIHByb3ZpZGVyIGlzIGRlZmluZWQsIHZhbGlkYXRlIHVzaW5nIHRoZSBtYXNrLiAqL1xyXG4gICAgICAgIGlmICghcmVzdWx0ICYmIHRoaXMubWFza1Byb3ZpZGVyKSB7XHJcbiAgICAgICAgICAgIHJlc3VsdCA9IHRoaXMubWFza1Byb3ZpZGVyLnZhbGlkYXRlKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyB0aGUgZXZlbnQgbmFtZSBiYXNlZCBvbiB0aGUgdHlwZSBvZiBIVE1MIGVsZW1lbnQgYXNzb2NpYXRlZCB3aXRoIHRoZSB2YWxpZGF0b3IuXHJcbiAgICAgKiBUaGlzIGlzIHVzZWQgdG8gZGV0ZXJtaW5lIHRoZSBldmVudCB0aGF0IHRyaWdnZXJzIHZhbGlkYXRpb24uXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBzZXRFdmVudE5hbWUoKSB7XHJcbiAgICAgICAgdmFyIGV2ZW50TmFtZTogc3RyaW5nID0gJyc7XHJcblxyXG4gICAgICAgIC8qIERldGVybWluZSBldmVudCBiYXNlZCBvbiBIVE1MIGVsZW1lbnQgdHlwZSAqL1xyXG4gICAgICAgIHN3aXRjaCAodGhpcy5lbGVtZW50LnRhZ05hbWUpIHtcclxuICAgICAgICAgICAgY2FzZSBJTlBVVDpcclxuICAgICAgICAgICAgY2FzZSBURVhUQVJFQTpcclxuICAgICAgICAgICAgICAgIGV2ZW50TmFtZSA9ICh0aGlzLmVsZW1lbnQudHlwZSA9PSBDSEVDS0JPWCB8fCB0aGlzLmVsZW1lbnQudHlwZSA9PSBSQURJTyB8fCB0aGlzLmVsZW1lbnQudHlwZSA9PSBGSUxFKSA/IENIQU5HRSA6IElOUFVUO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgICBjYXNlIFNFTEVDVDpcclxuICAgICAgICAgICAgICAgIGV2ZW50TmFtZSA9IENIQU5HRTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5ldmVudE5hbWUgPSBldmVudE5hbWUudG9Mb3dlckNhc2UoKTtcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -47,14 +47,14 @@ export class ControlExpressionProcess {
47
47
  this.controlConfig = undefined;
48
48
  }
49
49
  }
50
- /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: ControlExpressionProcess, deps: [], target: i0.ɵɵFactoryTarget.Directive });
51
- /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.5", type: ControlExpressionProcess, inputs: { name: "name", formControlName: "formControlName" }, ngImport: i0 });
50
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: ControlExpressionProcess, deps: [], target: i0.ɵɵFactoryTarget.Directive });
51
+ /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.6", type: ControlExpressionProcess, inputs: { name: "name", formControlName: "formControlName" }, ngImport: i0 });
52
52
  }
53
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: ControlExpressionProcess, decorators: [{
53
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: ControlExpressionProcess, decorators: [{
54
54
  type: Directive
55
55
  }], propDecorators: { name: [{
56
56
  type: Input
57
57
  }], formControlName: [{
58
58
  type: Input
59
59
  }] } });
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbC1leHByZXNzaW9uLXByb2Nlc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvc3JjL2xpYi9mb3JtLXZhbGlkYXRvcnMvZGlyZWN0aXZlcy90ZW1wbGF0ZS12YWxpZGF0aW9ucy9jb250cm9sLWV4cHJlc3Npb24tcHJvY2Vzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVqRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFFekQ7O0dBRUc7QUFFSCxNQUFNLE9BQWdCLHdCQUF3QjtJQUMxQzs7T0FFRztJQUNPLFNBQVMsQ0FBZTtJQUVsQzs7T0FFRztJQUNPLG9CQUFvQixDQUFlO0lBRTdDOztPQUVHO0lBQ08sYUFBYSxHQUF1QyxFQUFFLENBQUM7SUFFakU7O09BRUc7SUFFSSxJQUFJLENBQVU7SUFFckI7O09BRUc7SUFFSSxlQUFlLENBQVU7SUFFaEM7O09BRUc7SUFDSSxXQUFXLEdBQVksS0FBSyxDQUFDO0lBRXBDOztPQUVHO0lBQ08sUUFBUSxDQUFtQztJQUVyRDs7OztPQUlHO0lBQ0ksY0FBYyxDQUFDLE9BQXdCO1FBQzFDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1FBRXhCLHNFQUFzRTtRQUN0RSxJQUFJLElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLEVBQUU7WUFDekQsT0FBZSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUM7WUFFeEUsc0NBQXNDO1lBQ3RDLElBQUksQ0FBQyxhQUFhLEdBQUcsU0FBUyxDQUFDO1NBQ2xDO0lBQ0wsQ0FBQzswSEFyRGlCLHdCQUF3Qjs4R0FBeEIsd0JBQXdCOzsyRkFBeEIsd0JBQXdCO2tCQUQ3QyxTQUFTOzhCQXFCQyxJQUFJO3NCQURWLEtBQUs7Z0JBT0MsZUFBZTtzQkFEckIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEZvcm1Db250cm9sLCBWYWxpZGF0b3JGbiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgVkFMSURBVE9SX0NPTkZJRyB9IGZyb20gXCIuLi8uLi9jb25zdC9hcHAuY29uc3RcIjtcclxuXHJcbi8qKlxyXG4gKiBBYnN0cmFjdCBjbGFzcyBwcm92aWRpbmcgY29tbW9uIGZ1bmN0aW9uYWxpdHkgZm9yIHByb2Nlc3NpbmcgY29udHJvbCBleHByZXNzaW9ucyBpbiBBbmd1bGFyIGRpcmVjdGl2ZXMuXHJcbiAqL1xyXG5ARGlyZWN0aXZlKClcclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIENvbnRyb2xFeHByZXNzaW9uUHJvY2VzcyB7XHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYXRvciBmdW5jdGlvbiBmb3IgdGhlIGNvbnRyb2wuXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCB2YWxpZGF0b3I/OiBWYWxpZGF0b3JGbjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIENvbmRpdGlvbmFsIHZhbGlkYXRvciBmdW5jdGlvbiBmb3IgdGhlIGNvbnRyb2wuXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBjb25kaXRpb25hbFZhbGlkYXRvcj86IFZhbGlkYXRvckZuO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ29uZmlndXJhdGlvbiBmb3IgdGhlIGNvbnRyb2wuXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBjb250cm9sQ29uZmlnOiB7IFtrZXk6IHN0cmluZ106IGFueSB9IHwgdW5kZWZpbmVkID0ge307XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBPcHRpb25hbCBuYW1lIGZvciB0aGUgY29udHJvbC5cclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBuYW1lPzogc3RyaW5nO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogT3B0aW9uYWwgZm9ybSBjb250cm9sIG5hbWUuXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgZm9ybUNvbnRyb2xOYW1lPzogc3RyaW5nO1xyXG5cclxuICAgIC8qXHJcbiAgICAgKiBGbGFnIGluZGljYXRpbmcgd2hldGhlciBjb250cm9sIHByb2Nlc3NpbmcgaGFzIG9jY3VycmVkLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgaXNQcm9jZXNzZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIENvbGxlY3Rpb24gb2YgZm9ybSBjb250cm9scyBhc3NvY2lhdGVkIHdpdGggdGhlIGRpcmVjdGl2ZS5cclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIGNvbnRyb2xzPzogeyBbbmFtZTogc3RyaW5nXTogRm9ybUNvbnRyb2wgfTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHMgdGhlIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBjb250cm9sIG1vZGVsLlxyXG4gICAgICogTWFya3MgdGhlIHByb2Nlc3NpbmcgYXMgY29tcGxldGVkIGFuZCBhc3NpZ25zIHRoZSB2YWxpZGF0b3IgY29uZmlndXJhdGlvbiB0byB0aGUgY29udHJvbCBpZiBwcmVzZW50LlxyXG4gICAgICogQHBhcmFtIGNvbnRyb2wgVGhlIGFic3RyYWN0IGNvbnRyb2wgYXNzb2NpYXRlZCB3aXRoIHRoZSBkaXJlY3RpdmUuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzZXRNb2RlbENvbmZpZyhjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpIHtcclxuICAgICAgICB0aGlzLmlzUHJvY2Vzc2VkID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgLyogSWYgdGhlcmUgaXMgYSB2YWxpZGF0b3IgY29uZmlndXJhdGlvbiwgYXNzaWduIGl0IHRvIHRoZSBjb250cm9sLiAqL1xyXG4gICAgICAgIGlmICh0aGlzLmNvbnRyb2xDb25maWcgJiYgdGhpcy5jb250cm9sQ29uZmlnLnZhbGlkYXRvckNvbmZpZykge1xyXG4gICAgICAgICAgICAoY29udHJvbCBhcyBhbnkpW1ZBTElEQVRPUl9DT05GSUddID0gdGhpcy5jb250cm9sQ29uZmlnLnZhbGlkYXRvckNvbmZpZztcclxuXHJcbiAgICAgICAgICAgIC8qIENsZWFyIHRoZSBjb250cm9sIGNvbmZpZ3VyYXRpb24uICovXHJcbiAgICAgICAgICAgIHRoaXMuY29udHJvbENvbmZpZyA9IHVuZGVmaW5lZDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIl19
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbC1leHByZXNzaW9uLXByb2Nlc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvc3JjL2xpYi9mb3JtLXZhbGlkYXRvcnMvZGlyZWN0aXZlcy90ZW1wbGF0ZS12YWxpZGF0aW9ucy9jb250cm9sLWV4cHJlc3Npb24tcHJvY2Vzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVqRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFFekQ7O0dBRUc7QUFFSCxNQUFNLE9BQWdCLHdCQUF3QjtJQUMxQzs7T0FFRztJQUNPLFNBQVMsQ0FBZTtJQUVsQzs7T0FFRztJQUNPLG9CQUFvQixDQUFlO0lBRTdDOztPQUVHO0lBQ08sYUFBYSxHQUF1QyxFQUFFLENBQUM7SUFFakU7O09BRUc7SUFFSSxJQUFJLENBQVU7SUFFckI7O09BRUc7SUFFSSxlQUFlLENBQVU7SUFFaEM7O09BRUc7SUFDSSxXQUFXLEdBQVksS0FBSyxDQUFDO0lBRXBDOztPQUVHO0lBQ08sUUFBUSxDQUFtQztJQUVyRDs7OztPQUlHO0lBQ0ksY0FBYyxDQUFDLE9BQXdCO1FBQzFDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1FBRXhCLHNFQUFzRTtRQUN0RSxJQUFJLElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUMxRCxPQUFlLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQztZQUV4RSxzQ0FBc0M7WUFDdEMsSUFBSSxDQUFDLGFBQWEsR0FBRyxTQUFTLENBQUM7UUFDbkMsQ0FBQztJQUNMLENBQUM7MEhBckRpQix3QkFBd0I7OEdBQXhCLHdCQUF3Qjs7MkZBQXhCLHdCQUF3QjtrQkFEN0MsU0FBUzs4QkFxQkMsSUFBSTtzQkFEVixLQUFLO2dCQU9DLGVBQWU7c0JBRHJCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIElucHV0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3JtQ29udHJvbCwgVmFsaWRhdG9yRm4gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFZBTElEQVRPUl9DT05GSUcgfSBmcm9tIFwiLi4vLi4vY29uc3QvYXBwLmNvbnN0XCI7XHJcblxyXG4vKipcclxuICogQWJzdHJhY3QgY2xhc3MgcHJvdmlkaW5nIGNvbW1vbiBmdW5jdGlvbmFsaXR5IGZvciBwcm9jZXNzaW5nIGNvbnRyb2wgZXhwcmVzc2lvbnMgaW4gQW5ndWxhciBkaXJlY3RpdmVzLlxyXG4gKi9cclxuQERpcmVjdGl2ZSgpXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBDb250cm9sRXhwcmVzc2lvblByb2Nlc3Mge1xyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGF0b3IgZnVuY3Rpb24gZm9yIHRoZSBjb250cm9sLlxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgdmFsaWRhdG9yPzogVmFsaWRhdG9yRm47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDb25kaXRpb25hbCB2YWxpZGF0b3IgZnVuY3Rpb24gZm9yIHRoZSBjb250cm9sLlxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgY29uZGl0aW9uYWxWYWxpZGF0b3I/OiBWYWxpZGF0b3JGbjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIENvbmZpZ3VyYXRpb24gZm9yIHRoZSBjb250cm9sLlxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgY29udHJvbENvbmZpZzogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB8IHVuZGVmaW5lZCA9IHt9O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogT3B0aW9uYWwgbmFtZSBmb3IgdGhlIGNvbnRyb2wuXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgbmFtZT86IHN0cmluZztcclxuXHJcbiAgICAvKipcclxuICAgICAqIE9wdGlvbmFsIGZvcm0gY29udHJvbCBuYW1lLlxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGZvcm1Db250cm9sTmFtZT86IHN0cmluZztcclxuXHJcbiAgICAvKlxyXG4gICAgICogRmxhZyBpbmRpY2F0aW5nIHdoZXRoZXIgY29udHJvbCBwcm9jZXNzaW5nIGhhcyBvY2N1cnJlZC5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGlzUHJvY2Vzc2VkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDb2xsZWN0aW9uIG9mIGZvcm0gY29udHJvbHMgYXNzb2NpYXRlZCB3aXRoIHRoZSBkaXJlY3RpdmUuXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBjb250cm9scz86IHsgW25hbWU6IHN0cmluZ106IEZvcm1Db250cm9sIH07XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIHRoZSBjb25maWd1cmF0aW9uIGZvciB0aGUgY29udHJvbCBtb2RlbC5cclxuICAgICAqIE1hcmtzIHRoZSBwcm9jZXNzaW5nIGFzIGNvbXBsZXRlZCBhbmQgYXNzaWducyB0aGUgdmFsaWRhdG9yIGNvbmZpZ3VyYXRpb24gdG8gdGhlIGNvbnRyb2wgaWYgcHJlc2VudC5cclxuICAgICAqIEBwYXJhbSBjb250cm9sIFRoZSBhYnN0cmFjdCBjb250cm9sIGFzc29jaWF0ZWQgd2l0aCB0aGUgZGlyZWN0aXZlLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc2V0TW9kZWxDb25maWcoY29udHJvbDogQWJzdHJhY3RDb250cm9sKSB7XHJcbiAgICAgICAgdGhpcy5pc1Byb2Nlc3NlZCA9IHRydWU7XHJcblxyXG4gICAgICAgIC8qIElmIHRoZXJlIGlzIGEgdmFsaWRhdG9yIGNvbmZpZ3VyYXRpb24sIGFzc2lnbiBpdCB0byB0aGUgY29udHJvbC4gKi9cclxuICAgICAgICBpZiAodGhpcy5jb250cm9sQ29uZmlnICYmIHRoaXMuY29udHJvbENvbmZpZy52YWxpZGF0b3JDb25maWcpIHtcclxuICAgICAgICAgICAgKGNvbnRyb2wgYXMgYW55KVtWQUxJREFUT1JfQ09ORklHXSA9IHRoaXMuY29udHJvbENvbmZpZy52YWxpZGF0b3JDb25maWc7XHJcblxyXG4gICAgICAgICAgICAvKiBDbGVhciB0aGUgY29udHJvbCBjb25maWd1cmF0aW9uLiAqL1xyXG4gICAgICAgICAgICB0aGlzLmNvbnRyb2xDb25maWcgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -91,13 +91,13 @@ export class FileControlDirective {
91
91
  }
92
92
  return result;
93
93
  }
94
- /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: FileControlDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
95
- /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.5", type: FileControlDirective, selector: "input[type=file]", inputs: { writeFile: "writeFile", extension: "extension", fileSize: "fileSize", file: "file" }, host: { listeners: { "change": "onChangeCall($event.target)", "blur": "onTouched()" } }, providers: [
94
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: FileControlDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
95
+ /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.6", type: FileControlDirective, selector: "input[type=file]", inputs: { writeFile: "writeFile", extension: "extension", fileSize: "fileSize", file: "file" }, host: { listeners: { "change": "onChangeCall($event.target)", "blur": "onTouched()" } }, providers: [
96
96
  { provide: NG_VALUE_ACCESSOR, useExisting: FileControlDirective, multi: true },
97
97
  { provide: NG_VALIDATORS, useExisting: forwardRef((() => FileControlDirective)), multi: true }
98
98
  ], ngImport: i0 });
99
99
  }
100
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: FileControlDirective, decorators: [{
100
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: FileControlDirective, decorators: [{
101
101
  type: Directive,
102
102
  args: [{
103
103
  selector: "input[type=file]",
@@ -119,4 +119,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImpor
119
119
  }], file: [{
120
120
  type: Input
121
121
  }] } });
122
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1jb250cm9sLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay9zcmMvbGliL2Zvcm0tdmFsaWRhdG9ycy9kaXJlY3RpdmVzL3RlbXBsYXRlLXZhbGlkYXRpb25zL2ZpbGUtY29udHJvbC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RSxPQUFPLEVBQW1CLGFBQWEsRUFBRSxpQkFBaUIsRUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBQzlGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7QUFHbEUsa0RBQWtEO0FBQ2xELE1BQU0sZ0JBQWdCLEdBQUcsaUJBQWlCLENBQUM7QUFFM0MsbUNBQW1DO0FBQ25DLE1BQU0sb0JBQW9CLEdBQWEsQ0FBQyxXQUFXLEVBQUUsVUFBVSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBRXpFOzs7R0FHRztBQVlILE1BQU0sT0FBTyxvQkFBb0I7SUF3QlQ7SUF2QnBCLHVFQUF1RTtJQUN2RSxLQUFLLENBQU07SUFDWCxPQUFPLENBQU07SUFDYixXQUFXLEdBQVksS0FBSyxDQUFDO0lBRTdCLHdDQUF3QztJQUNoQyxVQUFVLEdBQWUsRUFBRSxDQUFDO0lBR3BDLDJDQUEyQztJQUMzQyxRQUFRLEdBQUcsQ0FBQyxDQUFNLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUMzQixTQUFTLEdBQUcsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBRXRCLHdDQUF3QztJQUMvQixTQUFTLEdBQVksS0FBSyxDQUFDO0lBQ3BDLElBQWEsU0FBUyxDQUFDLE1BQXVCLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxD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QUFFLENBQUMsb0JBQW9CLEVBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO1NBQy9GOzsyRkFFUSxvQkFBb0I7a0JBWGhDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGtCQUFrQjtvQkFDNUIsSUFBSSxFQUFFO3dCQUNGLFVBQVUsRUFBRSw2QkFBNkI7d0JBQ3pDLFFBQVEsRUFBRSxhQUFhO3FCQUMxQjtvQkFDRCxTQUFTLEVBQUU7d0JBQ1AsRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxzQkFBc0IsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO3dCQUM5RSxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBQyxHQUFHLEVBQUUscUJBQXFCLEVBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO3FCQUMvRjtpQkFDSjsrRUFnQlksU0FBUztzQkFBakIsS0FBSztnQkFDTyxTQUFTO3NCQUFyQixLQUFLO2dCQUNPLFFBQVE7c0JBQXBCLEtBQUs7Z0JBQ08sSUFBSTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5wdXQsIGZvcndhcmRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBOR19WQUxJREFUT1JTLCBOR19WQUxVRV9BQ0NFU1NPUiwgVmFsaWRhdG9yIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBBUFBfVkFMSURBVE9SUyB9IGZyb20gXCIuLi8uLi9jb25zdC9hcHAtdmFsaWRhdG9ycy5jb25zdFwiO1xyXG5pbXBvcnQgeyBFeHRlbnNpb25Db25maWcsIEZpbGVDb25maWcsIFNpemVDb25maWcgfSBmcm9tICcuLi8uLi9tb2RlbHMvY29uZmlnJztcclxuXHJcbi8qIENvbnN0YW50IGZvciB0aGUgdmFsaWRhdG9yIGNvbmZpZ3VyYXRpb24ga2V5ICovXHJcbmNvbnN0IFZBTElEQVRPUl9DT05GSUcgPSBcInZhbGlkYXRvckNvbmZpZ1wiO1xyXG5cclxuLyogQXJyYXkgb2YgZmlsZSB2YWxpZGF0b3IgbmFtZXMgKi9cclxuY29uc3QgRklMRV9WQUxJREFUT1JfTkFNRVM6IHN0cmluZ1tdID0gW1wiZXh0ZW5zaW9uXCIsIFwiZmlsZVNpemVcIiwgXCJmaWxlXCJdO1xyXG5cclxuLyoqXHJcbiAqIEZpbGVDb250cm9sRGlyZWN0aXZlIGlzIGFuIEFuZ3VsYXIgZGlyZWN0aXZlIGZvciBoYW5kbGluZyBmaWxlIGlucHV0IHZhbGlkYXRpb24uXHJcbiAqIEl0IGltcGxlbWVudHMgdGhlIFZhbGlkYXRvciBpbnRlcmZhY2UgZm9yIGN1c3RvbSB2YWxpZGF0aW9uLlxyXG4gKi9cclxuQERpcmVjdGl2ZSh7XHJcbiAgICBzZWxlY3RvcjogXCJpbnB1dFt0eXBlPWZpbGVdXCIsXHJcbiAgICBob3N0OiB7XHJcbiAgICAgICAgXCIoY2hhbmdlKVwiOiBcIm9uQ2hhbmdlQ2FsbCgkZXZlbnQudGFyZ2V0KVwiLFxyXG4gICAgICAgIFwiKGJsdXIpXCI6IFwib25Ub3VjaGVkKClcIlxyXG4gICAgfSxcclxuICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgIHsgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsIHVzZUV4aXN0aW5nOiBGaWxlQ29udHJvbERpcmVjdGl2ZSwgbXVsdGk6IHRydWUgfSxcclxuICAgICAgICB7IHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEZpbGVDb250cm9sRGlyZWN0aXZlKSwgbXVsdGk6IHRydWUgfVxyXG4gICAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRmlsZUNvbnRyb2xEaXJlY3RpdmUgaW1wbGVtZW50cyBWYWxpZGF0b3Ige1xyXG4gICAgLyogUHJvcGVydGllcyB0byBzdG9yZSBmaWxlLXJlbGF0ZWQgaW5mb3JtYXRpb24gYW5kIHZhbGlkYXRpb24gc3RhdGUgKi9cclxuICAgIGZpbGVzOiBhbnk7XHJcbiAgICBlbGVtZW50OiBhbnk7XHJcbiAgICBpc1Byb2Nlc3NlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIC8qIEFycmF5IHRvIHN0b3JlIHZhbGlkYXRvciBmdW5jdGlvbnMgKi9cclxuICAgIHByaXZhdGUgdmFsaWRhdG9yczogRnVuY3Rpb25bXSA9IFtdO1xyXG5cclxuXHJcbiAgICAvKiBDYWxsYmFja3MgZm9yIHZhbHVlIGFuZCB0b3VjaCBjaGFuZ2VzICovXHJcbiAgICBvbkNoYW5nZSA9IChfOiBhbnkpID0+IHsgfTtcclxuICAgIG9uVG91Y2hlZCA9ICgpID0+IHsgfTtcclxuXHJcbiAgICAvKiBJbnB1dCBwcm9wZXJ0aWVzIGZvciB0aGUgZGlyZWN0aXZlICovXHJcbiAgICBASW5wdXQoKSB3cml0ZUZpbGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIEBJbnB1dCgpIHNldCBleHRlbnNpb24oY29uZmlnOiBFeHRlbnNpb25Db25maWcpIHsgdGhpcy5wdXNoVmFsaWRhdG9yKEZJTEVfVkFMSURBVE9SX05BTUVTWzBdLCBjb25maWcpOyB9XHJcbiAgICBASW5wdXQoKSBzZXQgZmlsZVNpemUoY29uZmlnOiBTaXplQ29uZmlnKSB7IHRoaXMucHVzaFZhbGlkYXRvcihGSUxFX1ZBTElEQVRPUl9OQU1FU1sxXSwgY29uZmlnKTsgfVxyXG4gICAgQElucHV0KCkgc2V0IGZpbGUoY29uZmlnOiBGaWxlQ29uZmlnKSB7IHRoaXMucHVzaFZhbGlkYXRvcihGSUxFX1ZBTElEQVRPUl9OQU1FU1syXSwgY29uZmlnKTsgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ29uc3RydWN0b3IgZm9yIEZpbGVDb250cm9sRGlyZWN0aXZlLlxyXG4gICAgICogQHBhcmFtIGVsZW1lbnRSZWYgRWxlbWVudFJlZlxyXG4gICAgICovXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHtcclxuICAgICAgICB0aGlzLmVsZW1lbnQgPSBlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgYXMgTm9kZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEhhbmRsZXMgdGhlIGNoYW5nZSBldmVudCBvZiB0aGUgZmlsZSBpbnB1dC5cclxuICAgICAqIEBwYXJhbSBlbGVtZW50IEhUTUxJbnB1dEVsZW1lbnRcclxuICAgICAqL1xyXG4gICAgb25DaGFuZ2VDYWxsKGVsZW1lbnQ6IEhUTUxJbnB1dEVsZW1lbnQpIHtcclxuICAgICAgICBsZXQgZmlsZXMgPSBlbGVtZW50LmZpbGVzO1xyXG4gICAgICAgIGlmICh0aGlzLndyaXRlRmlsZSlcclxuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZShmaWxlcyk7XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIGlmICgoZmlsZXM/Lmxlbmd0aCA/PyAwKSA+IDApIHtcclxuICAgICAgICAgICAgICAgIHRoaXMub25DaGFuZ2UoZWxlbWVudC52YWx1ZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm9uQ2hhbmdlKHVuZGVmaW5lZCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyogSW50ZXJmYWNlIG1ldGhvZHMgZm9yIGZvcm0gY29udHJvbCB2YWx1ZSBhY2Nlc3MgKi9cclxuICAgIHdyaXRlVmFsdWUodmFsdWU6IGFueSkgeyB9XHJcbiAgICByZWdpc3Rlck9uQ2hhbmdlKGludm9jYXRpb246IGFueSkgeyB0aGlzLm9uQ2hhbmdlID0gaW52b2NhdGlvbjsgfVxyXG4gICAgcmVnaXN0ZXJPblRvdWNoZWQoaW52b2NhdGlvbjogYW55KSB7IHRoaXMub25Ub3VjaGVkID0gaW52b2NhdGlvbjsgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyB0aGUgY29uZmlndXJhdGlvbiBmb3IgdGhlIGNvbnRyb2wgYmFzZWQgb24gdGhlIHByb3ZpZGVkIEFic3RyYWN0Q29udHJvbC5cclxuICAgICAqIEBwYXJhbSBjb250cm9sIEFic3RyYWN0Q29udHJvbFxyXG4gICAgICovXHJcbiAgICBzZXRDb25maWcoY29udHJvbDogQWJzdHJhY3RDb250cm9sKSB7XHJcbiAgICAgICAgRklMRV9WQUxJREFUT1JfTkFNRVMuZm9yRWFjaCh0ID0+IHtcclxuICAgICAgICAgICAgaWYgKCEodGhpcyBhcyBhbnkpW3RdICYmIChjb250cm9sIGFzIGFueSlbVkFMSURBVE9SX0NPTkZJR10gJiYgKGNvbnRyb2wgYXMgYW55KVtWQUxJREFUT1JfQ09ORklHXVt0XSlcclxuICAgICAgICAgICAgICAgICh0aGlzIGFzIGFueSlbdF0gPSAoY29udHJvbCBhcyBhbnkpW1ZBTElEQVRPUl9DT05GSUddW3RdO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgdGhpcy5pc1Byb2Nlc3NlZCA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQdXNoZXMgYSB2YWxpZGF0b3IgZnVuY3Rpb24gdG8gdGhlIHZhbGlkYXRvcnMgYXJyYXkgYmFzZWQgb24gdGhlIHZhbGlkYXRvciBuYW1lIGFuZCBjb25maWd1cmF0aW9uLlxyXG4gICAgICogQHBhcmFtIHZhbGlkYXRvck5hbWUgc3RyaW5nXHJcbiAgICAgKiBAcGFyYW0gY29uZmlnIEV4dGVuc2lvbkNvbmZpZyB8IFNpemVDb25maWcgfCBGaWxlQ29uZmlnXHJcbiAgICAgKi9cclxuICAgIHB1c2hWYWxpZGF0b3IodmFsaWRhdG9yTmFtZTogc3RyaW5nLCBjb25maWc6IEV4dGVuc2lvbkNvbmZpZyB8IFNpemVDb25maWcgfCBGaWxlQ29uZmlnKSB7XHJcbiAgICAgICAgaWYgKGNvbmZpZylcclxuICAgICAgICAgICAgdGhpcy52YWxpZGF0b3JzLnB1c2goQVBQX1ZBTElEQVRPUlNbdmFsaWRhdG9yTmFtZV0oY29uZmlnKSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGF0ZXMgdGhlIGZpbGUgaW5wdXQgY29udHJvbCBiYXNlZCBvbiB0aGUgY29uZmlndXJlZCB2YWxpZGF0b3JzLlxyXG4gICAgICogQHBhcmFtIGNvbnRyb2wgQWJzdHJhY3RDb250cm9sXHJcbiAgICAgKiBAcmV0dXJucyBWYWxpZGF0aW9uIHJlc3VsdCBvciBudWxsIGlmIHZhbGlkYXRpb24gcGFzc2VzLlxyXG4gICAgICovXHJcbiAgICB2YWxpZGF0ZShjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9IHtcclxuICAgICAgICBpZiAoIXRoaXMuaXNQcm9jZXNzZWQpXHJcbiAgICAgICAgICAgIHRoaXMuc2V0Q29uZmlnKGNvbnRyb2wpO1xyXG4gICAgICAgIHZhciByZXN1bHQgPSBudWxsO1xyXG4gICAgICAgIGZvciAodmFyIHZhbGlkYXRvciBvZiB0aGlzLnZhbGlkYXRvcnMpIHtcclxuICAgICAgICAgICAgcmVzdWx0ID0gdmFsaWRhdG9yKGNvbnRyb2wsIHRoaXMuZWxlbWVudC5maWxlcyk7XHJcbiAgICAgICAgICAgIGlmIChyZXN1bHQpXHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH1cclxufSJdfQ==
122
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1jb250cm9sLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay9zcmMvbGliL2Zvcm0tdmFsaWRhdG9ycy9kaXJlY3RpdmVzL3RlbXBsYXRlLXZhbGlkYXRpb25zL2ZpbGUtY29udHJvbC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RSxPQUFPLEVBQW1CLGFBQWEsRUFBRSxpQkFBaUIsRUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBQzlGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7QUFHbEUsa0RBQWtEO0FBQ2xELE1BQU0sZ0JBQWdCLEdBQUcsaUJBQWlCLENBQUM7QUFFM0MsbUNBQW1DO0FBQ25DLE1BQU0sb0JBQW9CLEdBQWEsQ0FBQyxXQUFXLEVBQUUsVUFBVSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBRXpFOzs7R0FHRztBQVlILE1BQU0sT0FBTyxvQkFBb0I7SUF3QlQ7SUF2QnBCLHVFQUF1RTtJQUN2RSxLQUFLLENBQU07SUFDWCxPQUFPLENBQU07SUFDYixXQUFXLEdBQVksS0FBSyxDQUFDO0lBRTdCLHdDQUF3QztJQUNoQyxVQUFVLEdBQWUsRUFBRSxDQUFDO0lBR3BDLDJDQUEyQztJQUMzQyxRQUFRLEdBQUcsQ0FBQyxDQUFNLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUMzQixTQUFTLEdBQUcsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBRXRCLHdDQUF3QztJQUMvQixTQUFTLEdBQVksS0FBSyxDQUFDO0lBQ3BDLElBQWEsU0FBUyxDQUFDLE1BQXVCLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxD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QUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFDLEdBQUcsRUFBRSxDQUFDLG9CQUFvQixFQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtTQUMvRjs7MkZBRVEsb0JBQW9CO2tCQVhoQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxrQkFBa0I7b0JBQzVCLElBQUksRUFBRTt3QkFDRixVQUFVLEVBQUUsNkJBQTZCO3dCQUN6QyxRQUFRLEVBQUUsYUFBYTtxQkFDMUI7b0JBQ0QsU0FBUyxFQUFFO3dCQUNQLEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFdBQVcsc0JBQXNCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTt3QkFDOUUsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUMsR0FBRyxFQUFFLHFCQUFxQixFQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtxQkFDL0Y7aUJBQ0o7K0VBZ0JZLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ08sU0FBUztzQkFBckIsS0FBSztnQkFDTyxRQUFRO3NCQUFwQixLQUFLO2dCQUNPLElBQUk7c0JBQWhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIElucHV0LCBmb3J3YXJkUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgTkdfVkFMSURBVE9SUywgTkdfVkFMVUVfQUNDRVNTT1IsIFZhbGlkYXRvciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQVBQX1ZBTElEQVRPUlMgfSBmcm9tIFwiLi4vLi4vY29uc3QvYXBwLXZhbGlkYXRvcnMuY29uc3RcIjtcclxuaW1wb3J0IHsgRXh0ZW5zaW9uQ29uZmlnLCBGaWxlQ29uZmlnLCBTaXplQ29uZmlnIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2NvbmZpZyc7XHJcblxyXG4vKiBDb25zdGFudCBmb3IgdGhlIHZhbGlkYXRvciBjb25maWd1cmF0aW9uIGtleSAqL1xyXG5jb25zdCBWQUxJREFUT1JfQ09ORklHID0gXCJ2YWxpZGF0b3JDb25maWdcIjtcclxuXHJcbi8qIEFycmF5IG9mIGZpbGUgdmFsaWRhdG9yIG5hbWVzICovXHJcbmNvbnN0IEZJTEVfVkFMSURBVE9SX05BTUVTOiBzdHJpbmdbXSA9IFtcImV4dGVuc2lvblwiLCBcImZpbGVTaXplXCIsIFwiZmlsZVwiXTtcclxuXHJcbi8qKlxyXG4gKiBGaWxlQ29udHJvbERpcmVjdGl2ZSBpcyBhbiBBbmd1bGFyIGRpcmVjdGl2ZSBmb3IgaGFuZGxpbmcgZmlsZSBpbnB1dCB2YWxpZGF0aW9uLlxyXG4gKiBJdCBpbXBsZW1lbnRzIHRoZSBWYWxpZGF0b3IgaW50ZXJmYWNlIGZvciBjdXN0b20gdmFsaWRhdGlvbi5cclxuICovXHJcbkBEaXJlY3RpdmUoe1xyXG4gICAgc2VsZWN0b3I6IFwiaW5wdXRbdHlwZT1maWxlXVwiLFxyXG4gICAgaG9zdDoge1xyXG4gICAgICAgIFwiKGNoYW5nZSlcIjogXCJvbkNoYW5nZUNhbGwoJGV2ZW50LnRhcmdldClcIixcclxuICAgICAgICBcIihibHVyKVwiOiBcIm9uVG91Y2hlZCgpXCJcclxuICAgIH0sXHJcbiAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICB7IHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLCB1c2VFeGlzdGluZzogRmlsZUNvbnRyb2xEaXJlY3RpdmUsIG11bHRpOiB0cnVlIH0sXHJcbiAgICAgICAgeyBwcm92aWRlOiBOR19WQUxJREFUT1JTLCB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBGaWxlQ29udHJvbERpcmVjdGl2ZSksIG11bHRpOiB0cnVlIH1cclxuICAgIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIEZpbGVDb250cm9sRGlyZWN0aXZlIGltcGxlbWVudHMgVmFsaWRhdG9yIHtcclxuICAgIC8qIFByb3BlcnRpZXMgdG8gc3RvcmUgZmlsZS1yZWxhdGVkIGluZm9ybWF0aW9uIGFuZCB2YWxpZGF0aW9uIHN0YXRlICovXHJcbiAgICBmaWxlczogYW55O1xyXG4gICAgZWxlbWVudDogYW55O1xyXG4gICAgaXNQcm9jZXNzZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICAvKiBBcnJheSB0byBzdG9yZSB2YWxpZGF0b3IgZnVuY3Rpb25zICovXHJcbiAgICBwcml2YXRlIHZhbGlkYXRvcnM6IEZ1bmN0aW9uW10gPSBbXTtcclxuXHJcblxyXG4gICAgLyogQ2FsbGJhY2tzIGZvciB2YWx1ZSBhbmQgdG91Y2ggY2hhbmdlcyAqL1xyXG4gICAgb25DaGFuZ2UgPSAoXzogYW55KSA9PiB7IH07XHJcbiAgICBvblRvdWNoZWQgPSAoKSA9PiB7IH07XHJcblxyXG4gICAgLyogSW5wdXQgcHJvcGVydGllcyBmb3IgdGhlIGRpcmVjdGl2ZSAqL1xyXG4gICAgQElucHV0KCkgd3JpdGVGaWxlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBASW5wdXQoKSBzZXQgZXh0ZW5zaW9uKGNvbmZpZzogRXh0ZW5zaW9uQ29uZmlnKSB7IHRoaXMucHVzaFZhbGlkYXRvcihGSUxFX1ZBTElEQVRPUl9OQU1FU1swXSwgY29uZmlnKTsgfVxyXG4gICAgQElucHV0KCkgc2V0IGZpbGVTaXplKGNvbmZpZzogU2l6ZUNvbmZpZykgeyB0aGlzLnB1c2hWYWxpZGF0b3IoRklMRV9WQUxJREFUT1JfTkFNRVNbMV0sIGNvbmZpZyk7IH1cclxuICAgIEBJbnB1dCgpIHNldCBmaWxlKGNvbmZpZzogRmlsZUNvbmZpZykgeyB0aGlzLnB1c2hWYWxpZGF0b3IoRklMRV9WQUxJREFUT1JfTkFNRVNbMl0sIGNvbmZpZyk7IH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIENvbnN0cnVjdG9yIGZvciBGaWxlQ29udHJvbERpcmVjdGl2ZS5cclxuICAgICAqIEBwYXJhbSBlbGVtZW50UmVmIEVsZW1lbnRSZWZcclxuICAgICAqL1xyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7XHJcbiAgICAgICAgdGhpcy5lbGVtZW50ID0gZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50IGFzIE5vZGU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBIYW5kbGVzIHRoZSBjaGFuZ2UgZXZlbnQgb2YgdGhlIGZpbGUgaW5wdXQuXHJcbiAgICAgKiBAcGFyYW0gZWxlbWVudCBIVE1MSW5wdXRFbGVtZW50XHJcbiAgICAgKi9cclxuICAgIG9uQ2hhbmdlQ2FsbChlbGVtZW50OiBIVE1MSW5wdXRFbGVtZW50KSB7XHJcbiAgICAgICAgbGV0IGZpbGVzID0gZWxlbWVudC5maWxlcztcclxuICAgICAgICBpZiAodGhpcy53cml0ZUZpbGUpXHJcbiAgICAgICAgICAgIHRoaXMub25DaGFuZ2UoZmlsZXMpO1xyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBpZiAoKGZpbGVzPy5sZW5ndGggPz8gMCkgPiAwKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm9uQ2hhbmdlKGVsZW1lbnQudmFsdWUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5vbkNoYW5nZSh1bmRlZmluZWQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qIEludGVyZmFjZSBtZXRob2RzIGZvciBmb3JtIGNvbnRyb2wgdmFsdWUgYWNjZXNzICovXHJcbiAgICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpIHsgfVxyXG4gICAgcmVnaXN0ZXJPbkNoYW5nZShpbnZvY2F0aW9uOiBhbnkpIHsgdGhpcy5vbkNoYW5nZSA9IGludm9jYXRpb247IH1cclxuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKGludm9jYXRpb246IGFueSkgeyB0aGlzLm9uVG91Y2hlZCA9IGludm9jYXRpb247IH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHMgdGhlIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBjb250cm9sIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBBYnN0cmFjdENvbnRyb2wuXHJcbiAgICAgKiBAcGFyYW0gY29udHJvbCBBYnN0cmFjdENvbnRyb2xcclxuICAgICAqL1xyXG4gICAgc2V0Q29uZmlnKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCkge1xyXG4gICAgICAgIEZJTEVfVkFMSURBVE9SX05BTUVTLmZvckVhY2godCA9PiB7XHJcbiAgICAgICAgICAgIGlmICghKHRoaXMgYXMgYW55KVt0XSAmJiAoY29udHJvbCBhcyBhbnkpW1ZBTElEQVRPUl9DT05GSUddICYmIChjb250cm9sIGFzIGFueSlbVkFMSURBVE9SX0NPTkZJR11bdF0pXHJcbiAgICAgICAgICAgICAgICAodGhpcyBhcyBhbnkpW3RdID0gKGNvbnRyb2wgYXMgYW55KVtWQUxJREFUT1JfQ09ORklHXVt0XTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIHRoaXMuaXNQcm9jZXNzZWQgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUHVzaGVzIGEgdmFsaWRhdG9yIGZ1bmN0aW9uIHRvIHRoZSB2YWxpZGF0b3JzIGFycmF5IGJhc2VkIG9uIHRoZSB2YWxpZGF0b3IgbmFtZSBhbmQgY29uZmlndXJhdGlvbi5cclxuICAgICAqIEBwYXJhbSB2YWxpZGF0b3JOYW1lIHN0cmluZ1xyXG4gICAgICogQHBhcmFtIGNvbmZpZyBFeHRlbnNpb25Db25maWcgfCBTaXplQ29uZmlnIHwgRmlsZUNvbmZpZ1xyXG4gICAgICovXHJcbiAgICBwdXNoVmFsaWRhdG9yKHZhbGlkYXRvck5hbWU6IHN0cmluZywgY29uZmlnOiBFeHRlbnNpb25Db25maWcgfCBTaXplQ29uZmlnIHwgRmlsZUNvbmZpZykge1xyXG4gICAgICAgIGlmIChjb25maWcpXHJcbiAgICAgICAgICAgIHRoaXMudmFsaWRhdG9ycy5wdXNoKEFQUF9WQUxJREFUT1JTW3ZhbGlkYXRvck5hbWVdKGNvbmZpZykpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhdGVzIHRoZSBmaWxlIGlucHV0IGNvbnRyb2wgYmFzZWQgb24gdGhlIGNvbmZpZ3VyZWQgdmFsaWRhdG9ycy5cclxuICAgICAqIEBwYXJhbSBjb250cm9sIEFic3RyYWN0Q29udHJvbFxyXG4gICAgICogQHJldHVybnMgVmFsaWRhdGlvbiByZXN1bHQgb3IgbnVsbCBpZiB2YWxpZGF0aW9uIHBhc3Nlcy5cclxuICAgICAqL1xyXG4gICAgdmFsaWRhdGUoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmlzUHJvY2Vzc2VkKVxyXG4gICAgICAgICAgICB0aGlzLnNldENvbmZpZyhjb250cm9sKTtcclxuICAgICAgICB2YXIgcmVzdWx0ID0gbnVsbDtcclxuICAgICAgICBmb3IgKHZhciB2YWxpZGF0b3Igb2YgdGhpcy52YWxpZGF0b3JzKSB7XHJcbiAgICAgICAgICAgIHJlc3VsdCA9IHZhbGlkYXRvcihjb250cm9sLCB0aGlzLmVsZW1lbnQuZmlsZXMpO1xyXG4gICAgICAgICAgICBpZiAocmVzdWx0KVxyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9XHJcbn0iXX0=
@@ -51,14 +51,14 @@ export class ImageFileControlDirective {
51
51
  }
52
52
  return of(null);
53
53
  }
54
- /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: ImageFileControlDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
55
- /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.5", type: ImageFileControlDirective, selector: "input[type=file]", inputs: { image: "image" }, providers: [{
54
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: ImageFileControlDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
55
+ /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.6", type: ImageFileControlDirective, selector: "input[type=file]", inputs: { image: "image" }, providers: [{
56
56
  provide: NG_ASYNC_VALIDATORS,
57
57
  useExisting: forwardRef((() => ImageFileControlDirective)),
58
58
  multi: true
59
59
  }], ngImport: i0 });
60
60
  }
61
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: ImageFileControlDirective, decorators: [{
61
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: ImageFileControlDirective, decorators: [{
62
62
  type: Directive,
63
63
  args: [{
64
64
  selector: "input[type=file]",
@@ -71,4 +71,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImpor
71
71
  }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { image: [{
72
72
  type: Input
73
73
  }] } });
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtZmlsZS1jb250cm9sLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay9zcmMvbGliL2Zvcm0tdmFsaWRhdG9ycy9kaXJlY3RpdmVzL3RlbXBsYXRlLXZhbGlkYXRpb25zL2ltYWdlLWZpbGUtY29udHJvbC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RSxPQUFPLEVBQW1DLG1CQUFtQixFQUFvQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hHLE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOztBQUdsRSxnREFBZ0Q7QUFDaEQsTUFBTSxnQkFBZ0IsR0FBRyxpQkFBaUIsQ0FBQztBQUUzQzs7R0FFRztBQVNILE1BQU0sT0FBTyx5QkFBeUI7SUFrQmhCO0lBakJwQixPQUFPLENBQU07SUFDYixXQUFXLEdBQVksS0FBSyxDQUFDO0lBRXJCLGVBQWUsQ0FBWTtJQUVuQzs7O09BR0c7SUFDSCxJQUFhLEtBQUssQ0FBQyxNQUFtQjtRQUNwQyxJQUFJLENBQUMsZUFBZSxHQUFHLGNBQWMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVEOzs7T0FHRztJQUNILFlBQW9CLFVBQXNCO1FBQXRCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDeEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxVQUFVLENBQUMsYUFBcUIsQ0FBQztJQUNsRCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsU0FBUyxDQUFDLE9BQXdCO1FBQ2hDLElBQUksS0FBSyxHQUFHLE9BQU8sQ0FBQztRQUNwQixJQUFJLENBQUUsSUFBWSxDQUFDLEtBQUssQ0FBQyxJQUFLLE9BQWUsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFLLE9BQWUsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLEtBQUssQ0FBQztZQUN6RyxJQUFZLENBQUMsS0FBSyxDQUFDLEdBQUksT0FBZSxDQUFDLGdCQUFnQixDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkUsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7SUFDMUIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxRQUFRLENBQUMsT0FBd0I7UUFDL0IsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXO1lBQ25CLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDMUIsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQ3hCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUMxRDtRQUNELE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xCLENBQUM7MEhBN0NVLHlCQUF5Qjs4R0FBekIseUJBQXlCLHVFQU56QixDQUFDO2dCQUNWLE9BQU8sRUFBRSxtQkFBbUI7Z0JBQzVCLFdBQVcsRUFBRSxVQUFVLEVBQUMsR0FBRyxFQUFFLENBQUMseUJBQXlCLEVBQUM7Z0JBQ3hELEtBQUssRUFBRSxJQUFJO2FBQ1osQ0FBQzs7MkZBRVMseUJBQXlCO2tCQVJyQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxrQkFBa0I7b0JBQzVCLFNBQVMsRUFBRSxDQUFDOzRCQUNWLE9BQU8sRUFBRSxtQkFBbUI7NEJBQzVCLFdBQVcsRUFBRSxVQUFVLEVBQUMsR0FBRyxFQUFFLDBCQUEwQixFQUFDOzRCQUN4RCxLQUFLLEVBQUUsSUFBSTt5QkFDWixDQUFDO2lCQUNIOytFQVdjLEtBQUs7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIElucHV0LCBmb3J3YXJkUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgQXN5bmNWYWxpZGF0b3IsIE5HX0FTWU5DX1ZBTElEQVRPUlMsIFZhbGlkYXRpb25FcnJvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEFQUF9WQUxJREFUT1JTIH0gZnJvbSBcIi4uLy4uL2NvbnN0L2FwcC12YWxpZGF0b3JzLmNvbnN0XCI7XHJcbmltcG9ydCB7IEltYWdlQ29uZmlnIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2NvbmZpZyc7XHJcblxyXG4vKiBDb25zdGFudCB0byBhY2Nlc3MgdmFsaWRhdG9yIGNvbmZpZ3VyYXRpb24gKi9cclxuY29uc3QgVkFMSURBVE9SX0NPTkZJRyA9IFwidmFsaWRhdG9yQ29uZmlnXCI7XHJcblxyXG4vKipcclxuICogRGlyZWN0aXZlIGZvciBoYW5kbGluZyBmaWxlIGlucHV0IHdpdGggYXN5bmNocm9ub3VzIHZhbGlkYXRpb24gZm9yIGltYWdlIGZpbGVzLlxyXG4gKi9cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6IFwiaW5wdXRbdHlwZT1maWxlXVwiLFxyXG4gIHByb3ZpZGVyczogW3tcclxuICAgIHByb3ZpZGU6IE5HX0FTWU5DX1ZBTElEQVRPUlMsXHJcbiAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBJbWFnZUZpbGVDb250cm9sRGlyZWN0aXZlKSxcclxuICAgIG11bHRpOiB0cnVlXHJcbiAgfV1cclxufSlcclxuZXhwb3J0IGNsYXNzIEltYWdlRmlsZUNvbnRyb2xEaXJlY3RpdmUgaW1wbGVtZW50cyBBc3luY1ZhbGlkYXRvciB7XHJcbiAgZWxlbWVudDogYW55O1xyXG4gIGlzUHJvY2Vzc2VkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHByaXZhdGUgaW1hZ2VWYWxpZGF0aW9uPzogRnVuY3Rpb247XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHRlciBmb3IgaW1hZ2UgY29uZmlndXJhdGlvbi5cclxuICAgKiBAcGFyYW0gY29uZmlnIFRoZSBjb25maWd1cmF0aW9uIGZvciBpbWFnZSB2YWxpZGF0aW9uLlxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHNldCBpbWFnZShjb25maWc6IEltYWdlQ29uZmlnKSB7XHJcbiAgICB0aGlzLmltYWdlVmFsaWRhdGlvbiA9IEFQUF9WQUxJREFUT1JTLmltYWdlKGNvbmZpZyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDb25zdHJ1Y3RvciBmb3IgSW1hZ2VGaWxlQ29udHJvbERpcmVjdGl2ZS5cclxuICAgKiBAcGFyYW0gZWxlbWVudFJlZiBSZWZlcmVuY2UgdG8gdGhlIGVsZW1lbnQuXHJcbiAgICovXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7XHJcbiAgICB0aGlzLmVsZW1lbnQgPSBlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgYXMgTm9kZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldCB0aGUgY29uZmlndXJhdGlvbiBmb3IgdGhlIGRpcmVjdGl2ZS5cclxuICAgKiBAcGFyYW0gY29udHJvbCBUaGUgYWJzdHJhY3QgY29udHJvbCBhc3NvY2lhdGVkIHdpdGggdGhlIGRpcmVjdGl2ZS5cclxuICAgKi9cclxuICBzZXRDb25maWcoY29udHJvbDogQWJzdHJhY3RDb250cm9sKSB7XHJcbiAgICBsZXQgaW1hZ2UgPSBcImltYWdlXCI7XHJcbiAgICBpZiAoISh0aGlzIGFzIGFueSlbaW1hZ2VdICYmIChjb250cm9sIGFzIGFueSlbVkFMSURBVE9SX0NPTkZJR10gJiYgKGNvbnRyb2wgYXMgYW55KVtWQUxJREFUT1JfQ09ORklHXVtpbWFnZV0pXHJcbiAgICAgICh0aGlzIGFzIGFueSlbaW1hZ2VdID0gKGNvbnRyb2wgYXMgYW55KVtWQUxJREFUT1JfQ09ORklHXVtpbWFnZV07XHJcbiAgICB0aGlzLmlzUHJvY2Vzc2VkID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFzeW5jIHZhbGlkYXRpb24gbWV0aG9kLlxyXG4gICAqIEBwYXJhbSBjb250cm9sIFRoZSBhYnN0cmFjdCBjb250cm9sIHRvIGJlIHZhbGlkYXRlZC5cclxuICAgKiBAcmV0dXJucyBBIHByb21pc2Ugb3Igb2JzZXJ2YWJsZSBjb250YWluaW5nIHZhbGlkYXRpb24gZXJyb3JzLCBvciBudWxsIGlmIHZhbGlkYXRpb24gcGFzc2VzLlxyXG4gICAqL1xyXG4gIHZhbGlkYXRlKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFByb21pc2U8VmFsaWRhdGlvbkVycm9ycyB8IG51bGw+IHwgT2JzZXJ2YWJsZTxWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbD4ge1xyXG4gICAgaWYgKCF0aGlzLmlzUHJvY2Vzc2VkKVxyXG4gICAgICB0aGlzLnNldENvbmZpZyhjb250cm9sKTtcclxuICAgIGlmICh0aGlzLmltYWdlVmFsaWRhdGlvbikge1xyXG4gICAgICByZXR1cm4gdGhpcy5pbWFnZVZhbGlkYXRpb24oY29udHJvbCwgdGhpcy5lbGVtZW50LmZpbGVzKTtcclxuICAgIH1cclxuICAgIHJldHVybiBvZihudWxsKTtcclxuICB9XHJcbn0iXX0=
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtZmlsZS1jb250cm9sLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay9zcmMvbGliL2Zvcm0tdmFsaWRhdG9ycy9kaXJlY3RpdmVzL3RlbXBsYXRlLXZhbGlkYXRpb25zL2ltYWdlLWZpbGUtY29udHJvbC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RSxPQUFPLEVBQW1DLG1CQUFtQixFQUFvQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hHLE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOztBQUdsRSxnREFBZ0Q7QUFDaEQsTUFBTSxnQkFBZ0IsR0FBRyxpQkFBaUIsQ0FBQztBQUUzQzs7R0FFRztBQVNILE1BQU0sT0FBTyx5QkFBeUI7SUFrQmhCO0lBakJwQixPQUFPLENBQU07SUFDYixXQUFXLEdBQVksS0FBSyxDQUFDO0lBRXJCLGVBQWUsQ0FBWTtJQUVuQzs7O09BR0c7SUFDSCxJQUFhLEtBQUssQ0FBQyxNQUFtQjtRQUNwQyxJQUFJLENBQUMsZUFBZSxHQUFHLGNBQWMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVEOzs7T0FHRztJQUNILFlBQW9CLFVBQXNCO1FBQXRCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDeEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxVQUFVLENBQUMsYUFBcUIsQ0FBQztJQUNsRCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsU0FBUyxDQUFDLE9BQXdCO1FBQ2hDLElBQUksS0FBSyxHQUFHLE9BQU8sQ0FBQztRQUNwQixJQUFJLENBQUUsSUFBWSxDQUFDLEtBQUssQ0FBQyxJQUFLLE9BQWUsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFLLE9BQWUsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLEtBQUssQ0FBQztZQUN6RyxJQUFZLENBQUMsS0FBSyxDQUFDLEdBQUksT0FBZSxDQUFDLGdCQUFnQixDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkUsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7SUFDMUIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxRQUFRLENBQUMsT0FBd0I7UUFDL0IsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXO1lBQ25CLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDMUIsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDekIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNELENBQUM7UUFDRCxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNsQixDQUFDOzBIQTdDVSx5QkFBeUI7OEdBQXpCLHlCQUF5Qix1RUFOekIsQ0FBQztnQkFDVixPQUFPLEVBQUUsbUJBQW1CO2dCQUM1QixXQUFXLEVBQUUsVUFBVSxFQUFDLEdBQUcsRUFBRSxDQUFDLHlCQUF5QixFQUFDO2dCQUN4RCxLQUFLLEVBQUUsSUFBSTthQUNaLENBQUM7OzJGQUVTLHlCQUF5QjtrQkFSckMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixTQUFTLEVBQUUsQ0FBQzs0QkFDVixPQUFPLEVBQUUsbUJBQW1COzRCQUM1QixXQUFXLEVBQUUsVUFBVSxFQUFDLEdBQUcsRUFBRSwwQkFBMEIsRUFBQzs0QkFDeEQsS0FBSyxFQUFFLElBQUk7eUJBQ1osQ0FBQztpQkFDSDsrRUFXYyxLQUFLO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbnB1dCwgZm9yd2FyZFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEFzeW5jVmFsaWRhdG9yLCBOR19BU1lOQ19WQUxJREFUT1JTLCBWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBBUFBfVkFMSURBVE9SUyB9IGZyb20gXCIuLi8uLi9jb25zdC9hcHAtdmFsaWRhdG9ycy5jb25zdFwiO1xyXG5pbXBvcnQgeyBJbWFnZUNvbmZpZyB9IGZyb20gJy4uLy4uL21vZGVscy9jb25maWcnO1xyXG5cclxuLyogQ29uc3RhbnQgdG8gYWNjZXNzIHZhbGlkYXRvciBjb25maWd1cmF0aW9uICovXHJcbmNvbnN0IFZBTElEQVRPUl9DT05GSUcgPSBcInZhbGlkYXRvckNvbmZpZ1wiO1xyXG5cclxuLyoqXHJcbiAqIERpcmVjdGl2ZSBmb3IgaGFuZGxpbmcgZmlsZSBpbnB1dCB3aXRoIGFzeW5jaHJvbm91cyB2YWxpZGF0aW9uIGZvciBpbWFnZSBmaWxlcy5cclxuICovXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiBcImlucHV0W3R5cGU9ZmlsZV1cIixcclxuICBwcm92aWRlcnM6IFt7XHJcbiAgICBwcm92aWRlOiBOR19BU1lOQ19WQUxJREFUT1JTLFxyXG4gICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gSW1hZ2VGaWxlQ29udHJvbERpcmVjdGl2ZSksXHJcbiAgICBtdWx0aTogdHJ1ZVxyXG4gIH1dXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJbWFnZUZpbGVDb250cm9sRGlyZWN0aXZlIGltcGxlbWVudHMgQXN5bmNWYWxpZGF0b3Ige1xyXG4gIGVsZW1lbnQ6IGFueTtcclxuICBpc1Byb2Nlc3NlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBwcml2YXRlIGltYWdlVmFsaWRhdGlvbj86IEZ1bmN0aW9uO1xyXG5cclxuICAvKipcclxuICAgKiBTZXR0ZXIgZm9yIGltYWdlIGNvbmZpZ3VyYXRpb24uXHJcbiAgICogQHBhcmFtIGNvbmZpZyBUaGUgY29uZmlndXJhdGlvbiBmb3IgaW1hZ2UgdmFsaWRhdGlvbi5cclxuICAgKi9cclxuICBASW5wdXQoKSBzZXQgaW1hZ2UoY29uZmlnOiBJbWFnZUNvbmZpZykge1xyXG4gICAgdGhpcy5pbWFnZVZhbGlkYXRpb24gPSBBUFBfVkFMSURBVE9SUy5pbWFnZShjb25maWcpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ29uc3RydWN0b3IgZm9yIEltYWdlRmlsZUNvbnRyb2xEaXJlY3RpdmUuXHJcbiAgICogQHBhcmFtIGVsZW1lbnRSZWYgUmVmZXJlbmNlIHRvIHRoZSBlbGVtZW50LlxyXG4gICAqL1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZikge1xyXG4gICAgdGhpcy5lbGVtZW50ID0gZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50IGFzIE5vZGU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZXQgdGhlIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBkaXJlY3RpdmUuXHJcbiAgICogQHBhcmFtIGNvbnRyb2wgVGhlIGFic3RyYWN0IGNvbnRyb2wgYXNzb2NpYXRlZCB3aXRoIHRoZSBkaXJlY3RpdmUuXHJcbiAgICovXHJcbiAgc2V0Q29uZmlnKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCkge1xyXG4gICAgbGV0IGltYWdlID0gXCJpbWFnZVwiO1xyXG4gICAgaWYgKCEodGhpcyBhcyBhbnkpW2ltYWdlXSAmJiAoY29udHJvbCBhcyBhbnkpW1ZBTElEQVRPUl9DT05GSUddICYmIChjb250cm9sIGFzIGFueSlbVkFMSURBVE9SX0NPTkZJR11baW1hZ2VdKVxyXG4gICAgICAodGhpcyBhcyBhbnkpW2ltYWdlXSA9IChjb250cm9sIGFzIGFueSlbVkFMSURBVE9SX0NPTkZJR11baW1hZ2VdO1xyXG4gICAgdGhpcy5pc1Byb2Nlc3NlZCA9IHRydWU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBc3luYyB2YWxpZGF0aW9uIG1ldGhvZC5cclxuICAgKiBAcGFyYW0gY29udHJvbCBUaGUgYWJzdHJhY3QgY29udHJvbCB0byBiZSB2YWxpZGF0ZWQuXHJcbiAgICogQHJldHVybnMgQSBwcm9taXNlIG9yIG9ic2VydmFibGUgY29udGFpbmluZyB2YWxpZGF0aW9uIGVycm9ycywgb3IgbnVsbCBpZiB2YWxpZGF0aW9uIHBhc3Nlcy5cclxuICAgKi9cclxuICB2YWxpZGF0ZShjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBQcm9taXNlPFZhbGlkYXRpb25FcnJvcnMgfCBudWxsPiB8IE9ic2VydmFibGU8VmFsaWRhdGlvbkVycm9ycyB8IG51bGw+IHtcclxuICAgIGlmICghdGhpcy5pc1Byb2Nlc3NlZClcclxuICAgICAgdGhpcy5zZXRDb25maWcoY29udHJvbCk7XHJcbiAgICBpZiAodGhpcy5pbWFnZVZhbGlkYXRpb24pIHtcclxuICAgICAgcmV0dXJuIHRoaXMuaW1hZ2VWYWxpZGF0aW9uKGNvbnRyb2wsIHRoaXMuZWxlbWVudC5maWxlcyk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gb2YobnVsbCk7XHJcbiAgfVxyXG59Il19
@@ -279,10 +279,10 @@ export class RxFormControlDirective extends BaseValidator {
279
279
  if (this.maskProvider)
280
280
  this.maskProvider.onDestroy();
281
281
  }
282
- /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: RxFormControlDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1.DecimalProvider }], target: i0.ɵɵFactoryTarget.Directive });
283
- /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.5", type: RxFormControlDirective, selector: "[ngModel],[formControlName],[formControl]", inputs: { rxalpha: "rxalpha", rxalphaNumeric: "rxalphaNumeric", rxascii: "rxascii", rxcompare: "rxcompare", rxcompose: "rxcompose", rxcontains: "rxcontains", rxcreditCard: "rxcreditCard", rxdataUri: "rxdataUri", rxdifferent: "rxdifferent", rxdigit: "rxdigit", rxemail: "rxemail", rxendsWith: "rxendsWith", rxeven: "rxeven", rxextension: "rxextension", rxfactor: "rxfactor", rxfileSize: "rxfileSize", rxgreaterThanEqualTo: "rxgreaterThanEqualTo", rxgreaterThan: "rxgreaterThan", rxhexColor: "rxhexColor", rxjson: "rxjson", rxlatitude: "rxlatitude", rxlatLong: "rxlatLong", rxleapYear: "rxleapYear", rxlessThan: "rxlessThan", rxlessThanEqualTo: "rxlessThanEqualTo", rxlongitude: "rxlongitude", rxlowerCase: "rxlowerCase", rxmac: "rxmac", rxmaxDate: "rxmaxDate", rxmaxLength: "rxmaxLength", rxmaxNumber: "rxmaxNumber", rxminDate: "rxminDate", rxminLength: "rxminLength", rxminNumber: "rxminNumber", rxnumeric: "rxnumeric", rxodd: "rxodd", rxpassword: "rxpassword", rxport: "rxport", rxprimeNumber: "rxprimeNumber", rxrequired: "rxrequired", rxrange: "rxrange", rxrule: "rxrule", rxstartsWith: "rxstartsWith", rxtime: "rxtime", rxupperCase: "rxupperCase", rxurl: "rxurl", rxunique: "rxunique", rxnotEmpty: "rxnotEmpty", rxcusip: "rxcusip", rxgrid: "rxgrid", rxdate: "rxdate" }, providers: [NGMODEL_BINDING], usesInheritance: true, ngImport: i0 });
282
+ /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: RxFormControlDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1.DecimalProvider }], target: i0.ɵɵFactoryTarget.Directive });
283
+ /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.6", type: RxFormControlDirective, selector: "[ngModel],[formControlName],[formControl]", inputs: { rxalpha: "rxalpha", rxalphaNumeric: "rxalphaNumeric", rxascii: "rxascii", rxcompare: "rxcompare", rxcompose: "rxcompose", rxcontains: "rxcontains", rxcreditCard: "rxcreditCard", rxdataUri: "rxdataUri", rxdifferent: "rxdifferent", rxdigit: "rxdigit", rxemail: "rxemail", rxendsWith: "rxendsWith", rxeven: "rxeven", rxextension: "rxextension", rxfactor: "rxfactor", rxfileSize: "rxfileSize", rxgreaterThanEqualTo: "rxgreaterThanEqualTo", rxgreaterThan: "rxgreaterThan", rxhexColor: "rxhexColor", rxjson: "rxjson", rxlatitude: "rxlatitude", rxlatLong: "rxlatLong", rxleapYear: "rxleapYear", rxlessThan: "rxlessThan", rxlessThanEqualTo: "rxlessThanEqualTo", rxlongitude: "rxlongitude", rxlowerCase: "rxlowerCase", rxmac: "rxmac", rxmaxDate: "rxmaxDate", rxmaxLength: "rxmaxLength", rxmaxNumber: "rxmaxNumber", rxminDate: "rxminDate", rxminLength: "rxminLength", rxminNumber: "rxminNumber", rxnumeric: "rxnumeric", rxodd: "rxodd", rxpassword: "rxpassword", rxport: "rxport", rxprimeNumber: "rxprimeNumber", rxrequired: "rxrequired", rxrange: "rxrange", rxrule: "rxrule", rxstartsWith: "rxstartsWith", rxtime: "rxtime", rxupperCase: "rxupperCase", rxurl: "rxurl", rxunique: "rxunique", rxnotEmpty: "rxnotEmpty", rxcusip: "rxcusip", rxgrid: "rxgrid", rxdate: "rxdate" }, providers: [NGMODEL_BINDING], usesInheritance: true, ngImport: i0 });
284
284
  }
285
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: RxFormControlDirective, decorators: [{
285
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: RxFormControlDirective, decorators: [{
286
286
  type: Directive,
287
287
  args: [{
288
288
  selector: '[ngModel],[formControlName],[formControl]',
@@ -391,4 +391,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImpor
391
391
  }], rxdate: [{
392
392
  type: Input
393
393
  }] } });
394
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnhmb3JtY29udHJvbC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvc3JjL2xpYi9mb3JtLXZhbGlkYXRvcnMvZGlyZWN0aXZlcy90ZW1wbGF0ZS12YWxpZGF0aW9ucy9yeGZvcm1jb250cm9sLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvRkFBb0Y7QUFDcEYsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBcUIsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXZHLGdEQUFnRDtBQUNoRCxPQUFPLEVBQWdDLGFBQWEsRUFBMEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyRyxxQ0FBcUM7QUFDckMsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVoRSw4REFBOEQ7QUFDOUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSwwQkFBMEIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTVHLCtDQUErQztBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saURBQWlELENBQUM7QUFDbEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBYTVFLG1DQUFtQztBQUNuQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV0RCwwQkFBMEI7QUFDMUIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7QUFFM0Qsb0RBQW9EO0FBQ3BELE1BQU0sZUFBZSxHQUFRO0lBQ3pCLE9BQU8sRUFBRSxhQUFhO0lBQ3RCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsc0JBQXNCLENBQUM7SUFDckQsS0FBSyxFQUFFLElBQUk7Q0FDZCxDQUFDO0FBRUYsK0RBQStEO0FBQy9ELE1BQU0sOEJBQThCLEdBQUcsQ0FBQyxVQUFVLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFFcFQsc0NBQXNDO0FBQ3RDLE1BQU0sT0FBTyxHQUFXLFNBQVMsQ0FBQztBQUNsQyxNQUFNLFNBQVMsR0FBVyxVQUFVLENBQUM7QUFDckMsTUFBTSxXQUFXLEdBQVcsWUFBWSxDQUFDO0FBRXpDLGdDQUFnQztBQUtoQyxNQUFNLE9BQU8sc0JBQXVCLFNBQVEsYUFBYTtJQXFFakM7SUFBZ0M7SUFBNkI7SUFwRXpFLGNBQWMsR0FBVSxFQUFFLENBQUM7SUFDM0IsbUJBQW1CLEdBQVksS0FBSyxDQUFDO0lBQ3JDLGFBQWEsR0FBWSxLQUFLLENBQUM7SUFDL0IsUUFBUSxHQUFZLEtBQUssQ0FBQztJQUVsQyxJQUFJLGtCQUFrQixDQUFDLEtBQXFDLElBQUksSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBRXhGLElBQUksa0JBQWtCLEtBQWlELE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFFOUYsNkNBQTZDO0lBQ3BDLE9BQU8sQ0FBZTtJQUN0QixjQUFjLENBQWU7SUFDN0IsT0FBTyxDQUFjO0lBQ3JCLFNBQVMsQ0FBaUI7SUFDMUIsU0FBUyxDQUFpQjtJQUMxQixVQUFVLENBQWtCO0lBQzVCLFlBQVksQ0FBb0I7SUFDaEMsU0FBUyxDQUFjO0lBQ3ZCLFdBQVcsQ0FBbUI7SUFDOUIsT0FBTyxDQUFlO0lBQ3RCLE9BQU8sQ0FBZTtJQUN0QixVQUFVLENBQWlCO0lBQzNCLE1BQU0sQ0FBYztJQUNwQixXQUFXLENBQW1CO0lBQzlCLFFBQVEsQ0FBZ0I7SUFDeEIsVUFBVSxDQUFjO0lBQ3hCLG9CQUFvQixDQUE0QjtJQUNoRCxhQUFhLENBQTRCO0lBQ3pDLFVBQVUsQ0FBaUI7SUFDM0IsTUFBTSxDQUFpQjtJQUN2QixVQUFVLENBQWM7SUFDeEIsU0FBUyxDQUFjO0lBQ3ZCLFVBQVUsQ0FBYztJQUN4QixVQUFVLENBQTRCO0lBQ3RDLGlCQUFpQixDQUE0QjtJQUM3QyxXQUFXLENBQWM7SUFDekIsV0FBVyxDQUFpQjtJQUM1QixLQUFLLENBQWM7SUFDbkIsU0FBUyxDQUFjO0lBQ3ZCLFdBQVcsQ0FBZ0I7SUFDM0IsV0FBVyxDQUFnQjtJQUMzQixTQUFTLENBQWM7SUFDdkIsV0FBVyxDQUFnQjtJQUMzQixXQUFXLENBQWdCO0lBQzNCLFNBQVMsQ0FBaUI7SUFDMUIsS0FBSyxDQUFjO0lBQ25CLFVBQVUsQ0FBa0I7SUFDNUIsTUFBTSxDQUFjO0lBQ3BCLGFBQWEsQ0FBYztJQUMzQixVQUFVLENBQWtCO0lBQzVCLE9BQU8sQ0FBZTtJQUN0QixNQUFNLENBQWM7SUFDcEIsWUFBWSxDQUFpQjtJQUM3QixNQUFNLENBQWM7SUFDcEIsV0FBVyxDQUFpQjtJQUM1QixLQUFLLENBQWlCO0lBQ3RCLFFBQVEsQ0FBZ0I7SUFDeEIsVUFBVSxDQUFjO0lBQ3hCLE9BQU8sQ0FBYztJQUNyQixNQUFNLENBQWM7SUFDcEIsTUFBTSxDQUFjO0lBRTdCOzs7OztPQUtHO0lBQ0gsWUFBb0IsVUFBc0IsRUFBVSxRQUFtQixFQUFVLGVBQWdDO1FBQzdHLEtBQUssRUFBRSxDQUFDO1FBRFEsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUFVLGFBQVEsR0FBUixRQUFRLENBQVc7UUFBVSxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFFN0csSUFBSSxDQUFDLE9BQU8sR0FBRyxVQUFVLENBQUMsYUFBcUIsQ0FBQztRQUNoRCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLFVBQVUsR0FBa0IsRUFBRSxDQUFDO1FBRW5DLGlGQUFpRjtRQUNqRixNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsRUFBRTtZQUNoRCxJQUFJLENBQUUsSUFBWSxDQUFDLEtBQUssYUFBYSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsOEJBQThCLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFLLElBQVksQ0FBQyxLQUFLLGFBQWEsRUFBRSxDQUFDLElBQUksS0FBSyxDQUFDLEVBQUU7Z0JBQ3hKLFVBQVUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxDQUFFLElBQVksQ0FBQyxLQUFLLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUVwRiw0Q0FBNEM7Z0JBQzVDLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUU7b0JBQzFELGVBQWUsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFHLElBQVksQ0FBQyxLQUFLLGFBQWEsRUFBRSxDQUFDLEVBQUUsYUFBYSxDQUFDLENBQUM7aUJBQzVHO2FBQ0o7UUFDTCxDQUFDLENBQUMsQ0FBQTtRQUVGLElBQUksVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDdkIsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7U0FDaEM7UUFFRCx3REFBd0Q7UUFDeEQsSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUMxRSxJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztTQUNsQztJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNILFNBQVM7UUFDTCxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ25GLElBQUksSUFBSSxDQUFDLFdBQVksQ0FBQyxLQUFLLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxXQUFZLENBQUMsS0FBSyxLQUFLLFNBQVMsRUFBRTtnQkFDM0UsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsV0FBWSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsU0FBVSxDQUFDLFVBQVcsRUFBRSxJQUFJLENBQUMsU0FBVSxDQUFDLFdBQVksQ0FBQyxDQUFDO2dCQUN0SSxLQUFLLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7Z0JBQ25GLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUNqQztZQUVELElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO1NBQzlCO0lBQ0wsQ0FBQztJQUVEOzs7T0FHRztJQUNILHVCQUF1QixDQUFDLE1BQXNCO1FBQzFDLElBQUksTUFBTTtZQUNOLElBQUksQ0FBQyxTQUFTLEdBQUcsTUFBTSxDQUFDO1FBRTVCLElBQUksUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDbkYsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFbkMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDM0QsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7WUFDMUIsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxJQUFJLENBQUMsV0FBWSxDQUFDLEtBQUssSUFBSSxJQUFJLEVBQUU7Z0JBQ3RILElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzlELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUNqQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsb0JBQW9CO1FBQ2hCLElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLEtBQUssRUFBRTtZQUMzQyxJQUFJLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxTQUFVLEVBQUUsR0FBRyxFQUFFO2dCQUNwRSxJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtvQkFDekIsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQW1CLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUU7d0JBQ3JELElBQUksQ0FBQyxrQkFBMEIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO29CQUN6RSxDQUFDLENBQUMsQ0FBQztpQkFDTjtZQUNMLENBQUMsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDdEM7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSCx5QkFBeUI7UUFDckIsSUFBSyxJQUFJLENBQUMsV0FBbUIsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFLLElBQUksQ0FBQyxXQUFtQixDQUFDLGdCQUFnQixDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBRSxJQUFJLENBQUMsV0FBbUIsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFLLElBQUksQ0FBQyxXQUFtQixDQUFDLGdCQUFnQixDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsRUFBRTtZQUMvTyxJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFO2dCQUMzQixJQUFJLENBQUMsdUJBQXVCLENBQUUsSUFBSSxDQUFDLFdBQW1CLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO2dCQUNuRixJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDO2FBQ25DO1lBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLElBQUksY0FBYyxDQUFDLFVBQVUsQ0FBRSxJQUFJLENBQUMsV0FBbUIsQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDbkYsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO2FBQ3BCO1NBQ0o7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxzQkFBc0I7UUFDbEIsSUFBSyxJQUFJLENBQUMsV0FBbUIsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFLLElBQUksQ0FBQyxXQUFtQixDQUFDLGdCQUFnQixDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ3RILElBQUksTUFBTSxHQUFJLElBQUksQ0FBQyxXQUFtQixDQUFDLGdCQUFnQixDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDakUsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsV0FBMEIsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUN4SCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztTQUN4QjtJQUNMLENBQUM7SUFFRDs7O09BR0c7SUFDSyxpQkFBaUIsQ0FBQyxLQUFVO1FBQ2hDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsYUFBYSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRDs7O09BR0c7SUFDSyxxQkFBcUIsQ0FBQyxPQUF3QjtRQUNsRCxLQUFLLElBQUksYUFBYSxJQUFLLE9BQWUsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFO1lBQ3pELElBQVksQ0FBQyxhQUFhLENBQUMsR0FBSSxPQUFlLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQztTQUNwRjtRQUVELE9BQVEsT0FBZSxDQUFDLDBCQUEwQixDQUFDLENBQUM7UUFDcEQsT0FBUSxPQUFlLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUMxQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSyxvQkFBb0IsQ0FBQyxPQUFvQjtRQUM3QyxJQUFJLGlCQUFpQixHQUFXLEVBQUUsQ0FBQztRQUNuQyxPQUFPLFVBQVUsU0FBaUI7WUFDOUIsSUFBSSxpQkFBaUI7Z0JBQ2pCLE9BQU8sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7WUFFaEQsSUFBSSxTQUFTO2dCQUNULE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBRXJDLGlCQUFpQixHQUFHLFNBQVMsQ0FBQztRQUNsQyxDQUFDLENBQUE7SUFDTCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssa0JBQWtCLENBQUMsT0FBd0I7UUFDL0MsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDbkIsSUFBSSxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUM7WUFDM0IsSUFBSSxhQUFhLEdBQUcsSUFBSSxDQUFDLFdBQTRCLENBQUM7WUFFdEQsSUFBSSxhQUFhLENBQUMsb0JBQW9CO2dCQUNsQyxhQUFhLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUNwRjtRQUVELElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1FBQzlCLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxDQUFDO1FBRWpDLElBQUssT0FBZSxDQUFDLDBCQUEwQixDQUFDO1lBQzVDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUV4QyxJQUFLLE9BQWUsQ0FBQyxxQkFBcUIsQ0FBQyxFQUFFO1lBQ3pDLElBQUksQ0FBQyxvQkFBb0IsR0FBSSxPQUFlLENBQUMscUJBQXFCLENBQUMsQ0FBQztZQUNwRSxPQUFRLE9BQWUsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1NBQ2xEO0lBQ0wsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxRQUFRLENBQUMsT0FBd0I7UUFDN0IsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRWpDLElBQUksSUFBSSxDQUFDLG9CQUFvQixFQUFFO1lBQzNCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUN0QztRQUVELElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ25CLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDaEM7UUFFRCxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3BILENBQUM7SUFFRDs7T0FFRztJQUNILFdBQVc7UUFDUCxJQUFJLENBQUMsUUFBUSxHQUFHLFNBQVMsQ0FBQztRQUMxQixJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQztRQUU1QyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsVUFBVSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ2pDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDcEM7UUFFRCxJQUFJLENBQUMsY0FBYyxHQUFHLEVBQUUsQ0FBQztRQUV6QixJQUFJLElBQUksQ0FBQyxZQUFZO1lBQ2pCLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDdEMsQ0FBQzswSEF2UlEsc0JBQXNCOzhHQUF0QixzQkFBc0IsOHpDQUZwQixDQUFDLGVBQWUsQ0FBQzs7MkZBRW5CLHNCQUFzQjtrQkFKbEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsMkNBQTJDO29CQUNyRCxTQUFTLEVBQUUsQ0FBQyxlQUFlLENBQUM7aUJBQy9CO3FJQVlZLE9BQU87c0JBQWYsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLyogbmdNb2RlbCwgZm9ybUNvbnRyb2xOYW1lLCBhbmQgZm9ybUNvbnRyb2wgYXJlIHRoZSBzZWxlY3RvcnMgZm9yIHRoaXMgZGlyZWN0aXZlICovXHJcbmltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgZm9yd2FyZFJlZiwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBSZW5kZXJlcjIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbi8qIFJlcXVpcmVkIGltcG9ydHMgZm9yIGZvcm0gY29udHJvbCBoYW5kbGluZyAqL1xyXG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEZvcm1Db250cm9sLCBOR19WQUxJREFUT1JTLCBWYWxpZGF0b3IsIFZhbGlkYXRvckZuIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuLyogQ29uc3RhbnRzIHVzZWQgaW4gdGhlIGRpcmVjdGl2ZSAqL1xyXG5pbXBvcnQgeyBCTEFOSywgQkxVUiwgRUxFTUVOVF9WQUxVRSwgRk9DVVMgfSBmcm9tIFwiLi4vLi4vY29uc3RcIjtcclxuXHJcbi8qIEltcG9ydGluZyB2YWxpZGF0b3ItcmVsYXRlZCBjb25zdGFudHMgYW5kIGNvbmZpZ3VyYXRpb25zICovXHJcbmltcG9ydCB7IEFQUF9WQUxJREFUT1JTIH0gZnJvbSAnLi4vLi4vY29uc3QvYXBwLXZhbGlkYXRvcnMuY29uc3QnO1xyXG5pbXBvcnQgeyBDT05ESVRJT05BTF9WQUxJREFUT1IsIFRFTVBMQVRFX1ZBTElEQVRJT05fQ09ORklHLCBWQUxJREFUT1JfQ09ORklHIH0gZnJvbSAnLi4vLi4vY29uc3QvYXBwLmNvbnN0JztcclxuXHJcbi8qIFByb3ZpZGVycyBmb3IgZGVjaW1hbCBhbmQgbWFzayBwcm9jZXNzaW5nICovXHJcbmltcG9ydCB7IERlY2ltYWxQcm92aWRlciB9IGZyb20gXCIuLi8uLi9kb21haW4vZWxlbWVudC1wcm9jZXNzb3IvZGVjaW1hbC5wcm92aWRlclwiO1xyXG5pbXBvcnQgeyBNYXNrUHJvdmlkZXIgfSBmcm9tICcuLi8uLi9kb21haW4vZWxlbWVudC1wcm9jZXNzb3IvbWFzay5wcm92aWRlcic7XHJcblxyXG4vKiBDb25maWd1cmF0aW9uIG1vZGVscyB1c2VkIGJ5IHRoZSBkaXJlY3RpdmUgKi9cclxuaW1wb3J0IHtcclxuICAgIEFscGhhQ29uZmlnLCBCYXNlQ29uZmlnLCBDb21wYXJlQ29uZmlnLCBDb21wb3NlQ29uZmlnLCBDb250YWluc0NvbmZpZywgQ3JlZGl0Q2FyZENvbmZpZywgRGF0ZUNvbmZpZyxcclxuICAgIERlZmF1bHRDb25maWcsIERpZmZlcmVudENvbmZpZywgRGlnaXRDb25maWcsIEVtYWlsQ29uZmlnLCBFeHRlbnNpb25Db25maWcsIEZhY3RvckNvbmZpZywgTWVzc2FnZUNvbmZpZyxcclxuICAgIE51bWJlckNvbmZpZywgTnVtZXJpY0NvbmZpZywgUGFzc3dvcmRDb25maWcsIFJhbmdlQ29uZmlnLCBSZWxhdGlvbmFsT3BlcmF0b3JDb25maWcsIFJlcXVpcmVkQ29uZmlnLCBSdWxlQ29uZmlnLFxyXG4gICAgU2l6ZUNvbmZpZywgVGltZUNvbmZpZywgVW5pcXVlQ29uZmlnXHJcbn0gZnJvbSAnLi4vLi4vbW9kZWxzL2NvbmZpZyc7XHJcblxyXG4vKiBTZXJ2aWNlIGZvciBmb3JtIGNvbnRyb2wgbWFuaXB1bGF0aW9uICovXHJcbmltcG9ydCB7IFJ4Rm9ybUNvbnRyb2wgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvZm9ybS1jb250cm9sXCI7XHJcblxyXG4vKiBVdGlsaXR5IGZ1bmN0aW9ucyBhbmQgY2xhc3NlcyAqL1xyXG5pbXBvcnQgeyBSZWdleFZhbGlkYXRvciB9IGZyb20gJy4uLy4uL3V0aWwnO1xyXG5pbXBvcnQgeyBBcHBsaWNhdGlvblV0aWwgfSBmcm9tICcuLi8uLi91dGlsL2FwcC11dGlsJztcclxuXHJcbi8qIEJhc2UgdmFsaWRhdG9yIGNsYXNzICovXHJcbmltcG9ydCB7IEJhc2VWYWxpZGF0b3IgfSBmcm9tICcuL2Jhc2UtdmFsaWRhdG9yLmRpcmVjdGl2ZSc7XHJcblxyXG4vKiBDb25maWd1cmF0aW9uIG9iamVjdCBmb3IgTkdfVkFMSURBVE9SUyBiaW5kaW5nICovXHJcbmNvbnN0IE5HTU9ERUxfQklORElORzogYW55ID0ge1xyXG4gICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcclxuICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFJ4Rm9ybUNvbnRyb2xEaXJlY3RpdmUpLFxyXG4gICAgbXVsdGk6IHRydWVcclxufTtcclxuXHJcbi8qIExpc3Qgb2YgdmFsaWRhdG9ycyB0aGF0IGNhbiBiZSB1c2VkIHdpdGhvdXQgY29uZmlndXJhdGlvbiAqL1xyXG5jb25zdCBBTExPV19WQUxJREFUT1JfV0lUSE9VVF9DT05GSUcgPSBbJ3JlcXVpcmVkJywgJ25vdEVtcHR5JywgJ2FscGhhJywgJ2FscGhhTnVtZXJpYycsICdhc2NpaScsICdkYXRhVXJpJywgJ2RpZ2l0JywgJ2VtYWlsJywgJ2V2ZW4nLCAnaGV4Q29sb3InLCAnanNvbicsICdsYXRpdHVkZScsICdsYXRMb25nJywgJ2xlYXBZZWFyJywgJ2xvbmdpdHVkZScsICdsb3dlckNhc2UnLCAnbWFjJywgJ29kZCcsICdwb3J0JywgJ3ByaW1lTnVtYmVyJywgJ3RpbWUnLCAndXBwZXJDYXNlJywgJ3VybCcsICd1bmlxdWUnLCAnY3VzaXAnLCAnZ2lyZCddO1xyXG5cclxuLyogQ29uc3RhbnRzIGZvciBudW1lcmljIHZhbGlkYXRpb24gKi9cclxuY29uc3QgTlVNRVJJQzogc3RyaW5nID0gXCJudW1lcmljXCI7XHJcbmNvbnN0IElTX0ZPUk1BVDogc3RyaW5nID0gXCJpc0Zvcm1hdFwiO1xyXG5jb25zdCBESUdJVFNfSU5GTzogc3RyaW5nID0gXCJkaWdpdHNJbmZvXCI7XHJcblxyXG4vKiBEaXJlY3RpdmUgY2xhc3MgZGVmaW5pdGlvbiAqL1xyXG5ARGlyZWN0aXZlKHtcclxuICAgIHNlbGVjdG9yOiAnW25nTW9kZWxdLFtmb3JtQ29udHJvbE5hbWVdLFtmb3JtQ29udHJvbF0nLFxyXG4gICAgcHJvdmlkZXJzOiBbTkdNT0RFTF9CSU5ESU5HXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFJ4Rm9ybUNvbnRyb2xEaXJlY3RpdmUgZXh0ZW5kcyBCYXNlVmFsaWRhdG9yIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIFZhbGlkYXRvciB7XHJcbiAgICBwcml2YXRlIGV2ZW50TGlzdGVuZXJzOiBhbnlbXSA9IFtdO1xyXG4gICAgcHJpdmF0ZSBpc051bWVyaWNTdWJzY3JpYmVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBwcml2YXRlIGlzRm9jdXNDYWxsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIHByaXZhdGUgaXNNYXNrZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBzZXQgdmFsaWRhdGlvbkNvbnRyb2xzKHZhbHVlOiB7IFtrZXk6IHN0cmluZ106IEZvcm1Db250cm9sIH0pIHsgdGhpcy5jb250cm9scyA9IHZhbHVlOyB9XHJcblxyXG4gICAgZ2V0IHZhbGlkYXRpb25Db250cm9scygpOiB7IFtrZXk6IHN0cmluZ106IEZvcm1Db250cm9sIH0gfCB1bmRlZmluZWQgeyByZXR1cm4gdGhpcy5jb250cm9sczsgfVxyXG5cclxuICAgIC8qIElucHV0IHByb3BlcnRpZXMgZm9yIHZhcmlvdXMgdmFsaWRhdG9ycyAqL1xyXG4gICAgQElucHV0KCkgcnhhbHBoYT86IEFscGhhQ29uZmlnO1xyXG4gICAgQElucHV0KCkgcnhhbHBoYU51bWVyaWM/OiBBbHBoYUNvbmZpZztcclxuICAgIEBJbnB1dCgpIHJ4YXNjaWk/OiBCYXNlQ29uZmlnO1xyXG4gICAgQElucHV0KCkgcnhjb21wYXJlPzogQ29tcGFyZUNvbmZpZztcclxuICAgIEBJbnB1dCgpIHJ4Y29tcG9zZT86IENvbXBvc2VDb25maWc7XHJcbiAgICBASW5wdXQoKSByeGNvbnRhaW5zPzogQ29udGFpbnNDb25maWc7XHJcbiAgICBASW5wdXQoKSByeGNyZWRpdENhcmQ/OiBDcmVkaXRDYXJkQ29uZmlnO1xyXG4gICAgQElucHV0KCkgcnhkYXRhVXJpPzogQmFzZUNvbmZpZztcclxuICAgIEBJbnB1dCgpIHJ4ZGlmZmVyZW50PzogRGlmZmVyZW50Q29uZmlnO1xyXG4gICAgQElucHV0KCkgcnhkaWdpdD86IERpZ2l0Q29uZmlnO1xyXG4gICAgQElucHV0KCkgcnhlbWFpbD86IEVtYWlsQ29uZmlnO1xyXG4gICAgQElucHV0KCkgcnhlbmRzV2l0aD86IERlZmF1bHRDb25maWc7XHJcbiAgICBASW5wdXQoKSByeGV2ZW4/OiBCYXNlQ29uZmlnO1xyXG4gICAgQElucHV0KCkgcnhleHRlbnNpb24/OiBFeHRlbnNpb25Db25maWc7XHJcbiAgICBASW5wdXQoKSByeGZhY3Rvcj86IEZhY3RvckNvbmZpZztcclxuICAgIEBJbnB1dCgpIHJ4ZmlsZVNpemU/OiBTaXplQ29uZmlnO1xyXG4gICAgQElucHV0KCkgcnhncmVhdGVyVGhhbkVxdWFsVG8/OiBSZWxhdGlvbmFsT3BlcmF0b3JDb25maWc7XHJcbiAgICBASW5wdXQoKSByeGdyZWF0ZXJUaGFuPzogUmVsYXRpb25hbE9wZXJhdG9yQ29uZmlnO1xyXG4gICAgQElucHV0KCkgcnhoZXhDb2xvcj86IE1lc3NhZ2VDb25maWc7XHJcbiAgICBASW5wdXQoKSByeGpzb24/OiBEZWZhdWx0Q29uZmlnO1xyXG4gICAgQElucHV0KCkgcnhsYXRpdHVkZT86IEJhc2VDb25maWc7XHJcbiAgICBASW5wdXQoKSByeGxhdExvbmc/OiBCYXNlQ29uZmlnO1xyXG4gICAgQElucHV0KCkgcnhsZWFwWWVhcj86IEJhc2VDb25maWc7XHJcbiAgICBASW5wdXQoKSByeGxlc3NUaGFuPzogUmVsYXRpb25hbE9wZXJhdG9yQ29uZmlnO1xyXG4gICAgQElucHV0KCkgcnhsZXNzVGhhbkVxdWFsVG8/OiBSZWxhdGlvbmFsT3BlcmF0b3JDb25maWc7XHJcbiAgICBASW5wdXQoKSByeGxvbmdpdHVkZT86IEJhc2VDb25maWc7XHJcbiAgICBASW5wdXQoKSByeGxvd2VyQ2FzZT86IE1lc3NhZ2VDb25maWc7XHJcbiAgICBASW5wdXQoKSByeG1hYz86IEJhc2VDb25maWc7XHJcbiAgICBASW5wdXQoKSByeG1heERhdGU/OiBEYXRlQ29uZmlnO1xyXG4gICAgQElucHV0KCkgcnhtYXhMZW5ndGg/OiBOdW1iZXJDb25maWc7XHJcbiAgICBASW5wdXQoKSByeG1heE51bWJlcj86IE51bWJlckNvbmZpZztcclxuICAgIEBJbnB1dCgpIHJ4bWluRGF0ZT86IERhdGVDb25maWc7XHJcbiAgICBASW5wdXQoKSByeG1pbkxlbmd0aD86IE51bWJlckNvbmZpZztcclxuICAgIEBJbnB1dCgpIHJ4bWluTnVtYmVyPzogTnVtYmVyQ29uZmlnO1xyXG4gICAgQElucHV0KCkgcnhudW1lcmljPzogTnVtZXJpY0NvbmZpZztcclxuICAgIEBJbnB1dCgpIHJ4b2RkPzogQmFzZUNvbmZpZztcclxuICAgIEBJbnB1dCgpIHJ4cGFzc3dvcmQ/OiBQYXNzd29yZENvbmZpZztcclxuICAgIEBJbnB1dCgpIHJ4cG9ydD86IEJhc2VDb25maWc7XHJcbiAgICBASW5wdXQoKSByeHByaW1lTnVtYmVyPzogQmFzZUNvbmZpZztcclxuICAgIEBJbnB1dCgpIHJ4cmVxdWlyZWQ/OiBSZXF1aXJlZENvbmZpZztcclxuICAgIEBJbnB1dCgpIHJ4cmFuZ2U/OiBSYW5nZUNvbmZpZztcclxuICAgIEBJbnB1dCgpIHJ4cnVsZT86IFJ1bGVDb25maWc7XHJcbiAgICBASW5wdXQoKSByeHN0YXJ0c1dpdGg/OiBEZWZhdWx0Q29uZmlnO1xyXG4gICAgQElucHV0KCkgcnh0aW1lPzogVGltZUNvbmZpZztcclxuICAgIEBJbnB1dCgpIHJ4dXBwZXJDYXNlPzogTWVzc2FnZUNvbmZpZztcclxuICAgIEBJbnB1dCgpIHJ4dXJsPzogRGVmYXVsdENvbmZpZztcclxuICAgIEBJbnB1dCgpIHJ4dW5pcXVlPzogVW5pcXVlQ29uZmlnO1xyXG4gICAgQElucHV0KCkgcnhub3RFbXB0eT86IEJhc2VDb25maWc7XHJcbiAgICBASW5wdXQoKSByeGN1c2lwPzogQmFzZUNvbmZpZztcclxuICAgIEBJbnB1dCgpIHJ4Z3JpZD86IEJhc2VDb25maWc7XHJcbiAgICBASW5wdXQoKSByeGRhdGU/OiBCYXNlQ29uZmlnO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ29uc3RydWN0b3Igd2l0aCBpbmplY3RlZCBkZXBlbmRlbmNpZXNcclxuICAgICAqIEBwYXJhbSBlbGVtZW50UmVmIFxyXG4gICAgICogQHBhcmFtIHJlbmRlcmVyIFxyXG4gICAgICogQHBhcmFtIGRlY2ltYWxQcm92aWRlciBcclxuICAgICAqL1xyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLCBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsIHByaXZhdGUgZGVjaW1hbFByb3ZpZGVyOiBEZWNpbWFsUHJvdmlkZXIpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIHRoaXMuZWxlbWVudCA9IGVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCBhcyBOb2RlO1xyXG4gICAgICAgIHRoaXMuc2V0RXZlbnROYW1lKCk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgbGV0IHZhbGlkYXRvcnM6IFZhbGlkYXRvckZuW10gPSBbXTtcclxuXHJcbiAgICAgICAgLyogSXRlcmF0ZSB0aHJvdWdoIGF2YWlsYWJsZSB2YWxpZGF0b3JzIGFuZCBhZGQgdGhlbSB0byB0aGUgbGlzdCBpZiBjb25maWd1cmVkICovXHJcbiAgICAgICAgT2JqZWN0LmtleXMoQVBQX1ZBTElEQVRPUlMpLmZvckVhY2godmFsaWRhdG9yTmFtZSA9PiB7XHJcbiAgICAgICAgICAgIGlmICgoKHRoaXMgYXMgYW55KVtgcngke3ZhbGlkYXRvck5hbWV9YF0pIHx8IChBTExPV19WQUxJREFUT1JfV0lUSE9VVF9DT05GSUcuaW5kZXhPZih2YWxpZGF0b3JOYW1lKSAhPSAtMSAmJiAodGhpcyBhcyBhbnkpW2ByeCR7dmFsaWRhdG9yTmFtZX1gXSA9PSBCTEFOSykpIHtcclxuICAgICAgICAgICAgICAgIHZhbGlkYXRvcnMucHVzaChBUFBfVkFMSURBVE9SU1t2YWxpZGF0b3JOYW1lXSgodGhpcyBhcyBhbnkpW2ByeCR7dmFsaWRhdG9yTmFtZX1gXSkpO1xyXG5cclxuICAgICAgICAgICAgICAgIC8qIENvbmZpZ3VyZSBjb250cm9sIGlmIG5hbWUgaXMgYXZhaWxhYmxlICovXHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5uYW1lICYmICEodGhpcy5mb3JtQ29udHJvbE5hbWUgJiYgdGhpcy5mb3JtQ29udHJvbCkpIHtcclxuICAgICAgICAgICAgICAgICAgICBBcHBsaWNhdGlvblV0aWwuY29uZmlndXJlQ29udHJvbCh0aGlzLmNvbnRyb2xDb25maWcsICh0aGlzIGFzIGFueSlbYHJ4JHt2YWxpZGF0b3JOYW1lfWBdLCB2YWxpZGF0b3JOYW1lKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcblxyXG4gICAgICAgIGlmICh2YWxpZGF0b3JzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgdGhpcy52YWxpZGF0b3JzID0gdmFsaWRhdG9ycztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qIEJpbmQgbnVtZXJpYyBlbGVtZW50IGV2ZW50IGlmIHJ4bnVtZXJpYyBpcyBwcmVzZW50ICovXHJcbiAgICAgICAgaWYgKHRoaXMucnhudW1lcmljICYmICh0aGlzLnJ4bnVtZXJpYy5pc0Zvcm1hdCB8fCB0aGlzLnJ4bnVtZXJpYy5kaWdpdHNJbmZvKSkge1xyXG4gICAgICAgICAgICB0aGlzLmJpbmROdW1lcmljRWxlbWVudEV2ZW50KCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogTWV0aG9kIGZvciBoYW5kbGluZyBibHVyIGV2ZW50XHJcbiAgICAgKi9cclxuICAgIGJsdXJFdmVudCgpIHtcclxuICAgICAgICBpZiAoISh0aGlzLmZvcm1Db250cm9sICYmIHRoaXMuZm9ybUNvbnRyb2wuZXJyb3JzICYmIHRoaXMuZm9ybUNvbnRyb2wuZXJyb3JzLm51bWVyaWMpKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmZvcm1Db250cm9sIS52YWx1ZSAhPT0gbnVsbCAmJiB0aGlzLmZvcm1Db250cm9sIS52YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgdmFsdWUgPSB0aGlzLmRlY2ltYWxQcm92aWRlci50cmFuc0Zvcm1EZWNpbWFsKHRoaXMuZm9ybUNvbnRyb2whLnZhbHVlLCB0aGlzLnJ4bnVtZXJpYyEuZGlnaXRzSW5mbyEsIHRoaXMucnhudW1lcmljIS5wZXJzaXN0WmVybyEpO1xyXG4gICAgICAgICAgICAgICAgdmFsdWUgPSAoIXRoaXMucnhudW1lcmljIS5pc0Zvcm1hdCkgPyB0aGlzLmRlY2ltYWxQcm92aWRlci5yZXBsYWNlcih2YWx1ZSkgOiB2YWx1ZTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0VmFsdWVPbkVsZW1lbnQodmFsdWUpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB0aGlzLmlzRm9jdXNDYWxsZWQgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBCaW5kIG51bWVyaWMgZWxlbWVudCBldmVudHNcclxuICAgICAqIEBwYXJhbSBjb25maWcgXHJcbiAgICAgKi9cclxuICAgIGJpbmROdW1lcmljRWxlbWVudEV2ZW50KGNvbmZpZz86IE51bWVyaWNDb25maWcpIHtcclxuICAgICAgICBpZiAoY29uZmlnKVxyXG4gICAgICAgICAgICB0aGlzLnJ4bnVtZXJpYyA9IGNvbmZpZztcclxuXHJcbiAgICAgICAgbGV0IGxpc3RlbmVyID0gdGhpcy5yZW5kZXJlci5saXN0ZW4odGhpcy5lbGVtZW50LCBCTFVSLCB0aGlzLmJsdXJFdmVudC5iaW5kKHRoaXMpKTtcclxuICAgICAgICB0aGlzLmV2ZW50TGlzdGVuZXJzLnB1c2gobGlzdGVuZXIpO1xyXG5cclxuICAgICAgICBsaXN0ZW5lciA9IHRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMuZWxlbWVudCwgRk9DVVMsIChldmVudCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmlzRm9jdXNDYWxsZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICBpZiAoISh0aGlzLmZvcm1Db250cm9sICYmIHRoaXMuZm9ybUNvbnRyb2wuZXJyb3JzICYmIHRoaXMuZm9ybUNvbnRyb2wuZXJyb3JzLm51bWVyaWMpICYmIHRoaXMuZm9ybUNvbnRyb2whLnZhbHVlICE9IG51bGwpIHtcclxuICAgICAgICAgICAgICAgIGxldCB2YWx1ZSA9IHRoaXMuZGVjaW1hbFByb3ZpZGVyLnJlcGxhY2VyKHRoaXMuZWxlbWVudC52YWx1ZSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldFZhbHVlT25FbGVtZW50KHZhbHVlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuZXZlbnRMaXN0ZW5lcnMucHVzaChsaXN0ZW5lcik7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBCaW5kIHZhbHVlIGNoYW5nZSBldmVudFxyXG4gICAgICovXHJcbiAgICBiaW5kVmFsdWVDaGFuZ2VFdmVudCgpIHtcclxuICAgICAgICBpZiAodGhpcy5ldmVudE5hbWUgJiYgdGhpcy5ldmVudE5hbWUgIT0gQkxBTkspIHtcclxuICAgICAgICAgICAgbGV0IGxpc3RlbmVyID0gdGhpcy5yZW5kZXJlci5saXN0ZW4odGhpcy5lbGVtZW50LCB0aGlzLmV2ZW50TmFtZSEsICgpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnZhbGlkYXRpb25Db250cm9scykge1xyXG4gICAgICAgICAgICAgICAgICAgIE9iamVjdC5rZXlzKHRoaXMudmFsaWRhdGlvbkNvbnRyb2xzISkuZm9yRWFjaChmaWVsZE5hbWUgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAodGhpcy52YWxpZGF0aW9uQ29udHJvbHMgYXMgYW55KVtmaWVsZE5hbWVdLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHRoaXMuZXZlbnRMaXN0ZW5lcnMucHVzaChsaXN0ZW5lcik7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU3Vic2NyaWJlIHRvIG51bWVyaWMgZm9ybWF0dGVyXHJcbiAgICAgKi9cclxuICAgIHN1YnNjcmliZU51bWVyaWNGb3JtYXR0ZXIoKSB7XHJcbiAgICAgICAgaWYgKCh0aGlzLmZvcm1Db250cm9sIGFzIGFueSlbVkFMSURBVE9SX0NPTkZJR10gJiYgKHRoaXMuZm9ybUNvbnRyb2wgYXMgYW55KVtWQUxJREFUT1JfQ09ORklHXVtOVU1FUklDXSAmJiAoKHRoaXMuZm9ybUNvbnRyb2wgYXMgYW55KVtWQUxJREFUT1JfQ09ORklHXVtOVU1FUklDXVtJU19GT1JNQVRdIHx8ICh0aGlzLmZvcm1Db250cm9sIGFzIGFueSlbVkFMSURBVE9SX0NPTkZJR11bTlVNRVJJQ11bRElHSVRTX0lORk9dKSkge1xyXG4gICAgICAgICAgICBpZiAoIXRoaXMuaXNOdW1lcmljU3Vic2NyaWJlZCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5iaW5kTnVtZXJpY0VsZW1lbnRFdmVudCgodGhpcy5mb3JtQ29udHJvbCBhcyBhbnkpW1ZBTElEQVRPUl9DT05GSUddW05VTUVSSUNdKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuaXNOdW1lcmljU3Vic2NyaWJlZCA9IHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmICghdGhpcy5pc0ZvY3VzQ2FsbGVkICYmIFJlZ2V4VmFsaWRhdG9yLmlzTm90QmxhbmsoKHRoaXMuZm9ybUNvbnRyb2wgYXMgYW55KS52YWx1ZSkpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuYmx1ckV2ZW50KCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTdWJzY3JpYmUgdG8gbWFzayB2YWxpZGF0b3JcclxuICAgICAqL1xyXG4gICAgc3Vic2NyaWJlTWFza1ZhbGlkYXRvcigpIHtcclxuICAgICAgICBpZiAoKHRoaXMuZm9ybUNvbnRyb2wgYXMgYW55KVtWQUxJREFUT1JfQ09ORklHXSAmJiAodGhpcy5mb3JtQ29udHJvbCBhcyBhbnkpW1ZBTElEQVRPUl9DT05GSUddW1wibWFza1wiXSAmJiAhdGhpcy5pc01hc2tlZCkge1xyXG4gICAgICAgICAgICBsZXQgY29uZmlnID0gKHRoaXMuZm9ybUNvbnRyb2wgYXMgYW55KVtWQUxJREFUT1JfQ09ORklHXVtcIm1hc2tcIl07XHJcbiAgICAgICAgICAgIHRoaXMubWFza1Byb3ZpZGVyID0gbmV3IE1hc2tQcm92aWRlcih0aGlzLmVsZW1lbnQsIGNvbmZpZy5tYXNrLCB0aGlzLnJlbmRlcmVyLCB0aGlzLmZvcm1Db250cm9sIGFzIEZvcm1Db250cm9sLCBjb25maWcpO1xyXG4gICAgICAgICAgICB0aGlzLmlzTWFza2VkID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXQgdmFsdWUgb24gZWxlbWVudFxyXG4gICAgICogQHBhcmFtIHZhbHVlIFxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIHNldFZhbHVlT25FbGVtZW50KHZhbHVlOiBhbnkpIHtcclxuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFByb3BlcnR5KHRoaXMuZWxlbWVudCwgRUxFTUVOVF9WQUxVRSwgdmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0IHRlbXBsYXRlIHZhbGlkYXRvcnNcclxuICAgICAqIEBwYXJhbSBjb250cm9sIFxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIHNldFRlbXBsYXRlVmFsaWRhdG9ycyhjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpIHtcclxuICAgICAgICBmb3IgKGxldCB2YWxpZGF0b3JOYW1lIGluIChjb250cm9sIGFzIGFueSlbVkFMSURBVE9SX0NPTkZJR10pIHtcclxuICAgICAgICAgICAgKHRoaXMgYXMgYW55KVt2YWxpZGF0b3JOYW1lXSA9IChjb250cm9sIGFzIGFueSlbVkFMSURBVE9SX0NPTkZJR11bdmFsaWRhdG9yTmFtZV07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBkZWxldGUgKGNvbnRyb2wgYXMgYW55KVtURU1QTEFURV9WQUxJREFUSU9OX0NPTkZJR107XHJcbiAgICAgICAgZGVsZXRlIChjb250cm9sIGFzIGFueSlbVkFMSURBVE9SX0NPTkZJR107XHJcbiAgICAgICAgdGhpcy5uZ09uSW5pdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVXBkYXRlIGVsZW1lbnQgY2xhc3Mgb24gY2hhbmdlXHJcbiAgICAgKiBAcGFyYW0gZWxlbWVudCBcclxuICAgICAqIEByZXR1cm5zIFxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIHVwZGF0ZU9uRWxlbWVudENsYXNzKGVsZW1lbnQ6IEhUTUxFbGVtZW50KSB7XHJcbiAgICAgICAgdmFyIHByZXZpb3VzQ2xhc3NOYW1lOiBzdHJpbmcgPSAnJztcclxuICAgICAgICByZXR1cm4gZnVuY3Rpb24gKGNsYXNzTmFtZTogc3RyaW5nKSB7XHJcbiAgICAgICAgICAgIGlmIChwcmV2aW91c0NsYXNzTmFtZSlcclxuICAgICAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShwcmV2aW91c0NsYXNzTmFtZSk7XHJcblxyXG4gICAgICAgICAgICBpZiAoY2xhc3NOYW1lKVxyXG4gICAgICAgICAgICAgICAgZWxlbWVudC5jbGFzc0xpc3QuYWRkKGNsYXNzTmFtZSk7XHJcblxyXG4gICAgICAgICAgICBwcmV2aW91c0NsYXNzTmFtZSA9IGNsYXNzTmFtZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXQgdmFsaWRhdG9yIGNvbmZpZ3VyYXRpb25cclxuICAgICAqIEBwYXJhbSBjb250cm9sIFxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIHNldFZhbGlkYXRvckNvbmZpZyhjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpIHtcclxuICAgICAgICBpZiAoIXRoaXMuZm9ybUNvbnRyb2wpIHtcclxuICAgICAgICAgICAgdGhpcy5mb3JtQ29udHJvbCA9IGNvbnRyb2w7XHJcbiAgICAgICAgICAgIGxldCByeEZvcm1Db250cm9sID0gdGhpcy5mb3JtQ29udHJvbCBhcyBSeEZvcm1Db250cm9sO1xyXG5cclxuICAgICAgICAgICAgaWYgKHJ4Rm9ybUNvbnRyb2wudXBkYXRlT25FbGVtZW50Q2xhc3MpXHJcbiAgICAgICAgICAgICAgICByeEZvcm1Db250cm9sLnVwZGF0ZU9uRWxlbWVudENsYXNzID0gdGhpcy51cGRhdGVPbkVsZW1lbnRDbGFzcyh0aGlzLmVsZW1lbnQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5zdWJzY3JpYmVNYXNrVmFsaWRhdG9yKCk7XHJcbiAgICAgICAgdGhpcy5zdWJzY3JpYmVOdW1lcmljRm9ybWF0dGVyKCk7XHJcblxyXG4gICAgICAgIGlmICgoY29udHJvbCBhcyBhbnkpW1RFTVBMQVRFX1ZBTElEQVRJT05fQ09ORklHXSlcclxuICAgICAgICAgICAgdGhpcy5zZXRUZW1wbGF0ZVZhbGlkYXRvcnMoY29udHJvbCk7XHJcblxyXG4gICAgICAgIGlmICgoY29udHJvbCBhcyBhbnkpW0NPTkRJVElPTkFMX1ZBTElEQVRPUl0pIHtcclxuICAgICAgICAgICAgdGhpcy5jb25kaXRpb25hbFZhbGlkYXRvciA9IChjb250cm9sIGFzIGFueSlbQ09ORElUSU9OQUxfVkFMSURBVE9SXTtcclxuICAgICAgICAgICAgZGVsZXRlIChjb250cm9sIGFzIGFueSlbQ09ORElUSU9OQUxfVkFMSURBVE9SXTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGF0ZSB0aGUgY29udHJvbFxyXG4gICAgICogQHBhcmFtIGNvbnRyb2wgXHJcbiAgICAgKiBAcmV0dXJucyBcclxuICAgICAqL1xyXG4gICAgdmFsaWRhdGUoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB8IG51bGwge1xyXG4gICAgICAgIHRoaXMuc2V0VmFsaWRhdG9yQ29uZmlnKGNvbnRyb2wpO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5jb25kaXRpb25hbFZhbGlkYXRvcikge1xyXG4gICAgICAgICAgICB0aGlzLmNvbmRpdGlvbmFsVmFsaWRhdG9yKGNvbnRyb2wpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLmlzUHJvY2Vzc2VkKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0TW9kZWxDb25maWcoY29udHJvbCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gKCh0aGlzLnZhbGlkYXRvcnMgJiYgdGhpcy52YWxpZGF0b3JzLmxlbmd0aCA+IDApIHx8IHRoaXMubWFza1Byb3ZpZGVyKSA/IHRoaXMudmFsaWRhdGlvbihjb250cm9sKSA6IG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBEZXN0cm95IHRoZSBkaXJlY3RpdmVcclxuICAgICAqL1xyXG4gICAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAgICAgdGhpcy5jb250cm9scyA9IHVuZGVmaW5lZDtcclxuICAgICAgICBsZXQgZXZlbnRDb3VudCA9IHRoaXMuZXZlbnRMaXN0ZW5lcnMubGVuZ3RoO1xyXG5cclxuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGV2ZW50Q291bnQ7IGkrKykge1xyXG4gICAgICAgICAgICB0aGlzLmV2ZW50TGlzdGVuZXJzWzBdKCk7XHJcbiAgICAgICAgICAgIHRoaXMuZXZlbnRMaXN0ZW5lcnMuc3BsaWNlKDAsIDEpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5ldmVudExpc3RlbmVycyA9IFtdO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5tYXNrUHJvdmlkZXIpXHJcbiAgICAgICAgICAgIHRoaXMubWFza1Byb3ZpZGVyLm9uRGVzdHJveSgpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
394
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnhmb3JtY29udHJvbC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvc3JjL2xpYi9mb3JtLXZhbGlkYXRvcnMvZGlyZWN0aXZlcy90ZW1wbGF0ZS12YWxpZGF0aW9ucy9yeGZvcm1jb250cm9sLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvRkFBb0Y7QUFDcEYsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBcUIsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXZHLGdEQUFnRDtBQUNoRCxPQUFPLEVBQWdDLGFBQWEsRUFBMEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyRyxxQ0FBcUM7QUFDckMsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVoRSw4REFBOEQ7QUFDOUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSwwQkFBMEIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTVHLCtDQUErQztBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saURBQWlELENBQUM7QUFDbEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBYTVFLG1DQUFtQztBQUNuQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV0RCwwQkFBMEI7QUFDMUIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7QUFFM0Qsb0RBQW9EO0FBQ3BELE1BQU0sZUFBZSxHQUFRO0lBQ3pCLE9BQU8sRUFBRSxhQUFhO0lBQ3RCLFdBQVcs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TUFBTTtzQkFBZCxLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8qIG5nTW9kZWwsIGZvcm1Db250cm9sTmFtZSwgYW5kIGZvcm1Db250cm9sIGFyZSB0aGUgc2VsZWN0b3JzIGZvciB0aGlzIGRpcmVjdGl2ZSAqL1xyXG5pbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIGZvcndhcmRSZWYsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG4vKiBSZXF1aXJlZCBpbXBvcnRzIGZvciBmb3JtIGNvbnRyb2wgaGFuZGxpbmcgKi9cclxuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3JtQ29udHJvbCwgTkdfVkFMSURBVE9SUywgVmFsaWRhdG9yLCBWYWxpZGF0b3JGbiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbi8qIENvbnN0YW50cyB1c2VkIGluIHRoZSBkaXJlY3RpdmUgKi9cclxuaW1wb3J0IHsgQkxBTkssIEJMVVIsIEVMRU1FTlRfVkFMVUUsIEZPQ1VTIH0gZnJvbSBcIi4uLy4uL2NvbnN0XCI7XHJcblxyXG4vKiBJbXBvcnRpbmcgdmFsaWRhdG9yLXJlbGF0ZWQgY29uc3RhbnRzIGFuZCBjb25maWd1cmF0aW9ucyAqL1xyXG5pbXBvcnQgeyBBUFBfVkFMSURBVE9SUyB9IGZyb20gJy4uLy4uL2NvbnN0L2FwcC12YWxpZGF0b3JzLmNvbnN0JztcclxuaW1wb3J0IHsgQ09ORElUSU9OQUxfVkFMSURBVE9SLCBURU1QTEFURV9WQUxJREFUSU9OX0NPTkZJRywgVkFMSURBVE9SX0NPTkZJRyB9IGZyb20gJy4uLy4uL2NvbnN0L2FwcC5jb25zdCc7XHJcblxyXG4vKiBQcm92aWRlcnMgZm9yIGRlY2ltYWwgYW5kIG1hc2sgcHJvY2Vzc2luZyAqL1xyXG5pbXBvcnQgeyBEZWNpbWFsUHJvdmlkZXIgfSBmcm9tIFwiLi4vLi4vZG9tYWluL2VsZW1lbnQtcHJvY2Vzc29yL2RlY2ltYWwucHJvdmlkZXJcIjtcclxuaW1wb3J0IHsgTWFza1Byb3ZpZGVyIH0gZnJvbSAnLi4vLi4vZG9tYWluL2VsZW1lbnQtcHJvY2Vzc29yL21hc2sucHJvdmlkZXInO1xyXG5cclxuLyogQ29uZmlndXJhdGlvbiBtb2RlbHMgdXNlZCBieSB0aGUgZGlyZWN0aXZlICovXHJcbmltcG9ydCB7XHJcbiAgICBBbHBoYUNvbmZpZywgQmFzZUNvbmZpZywgQ29tcGFyZUNvbmZpZywgQ29tcG9zZUNvbmZpZywgQ29udGFpbnNDb25maWcsIENyZWRpdENhcmRDb25maWcsIERhdGVDb25maWcsXHJcbiAgICBEZWZhdWx0Q29uZmlnLCBEaWZmZXJlbnRDb25maWcsIERpZ2l0Q29uZmlnLCBFbWFpbENvbmZpZywgRXh0ZW5zaW9uQ29uZmlnLCBGYWN0b3JDb25maWcsIE1lc3NhZ2VDb25maWcsXHJcbiAgICBOdW1iZXJDb25maWcsIE51bWVyaWNDb25maWcsIFBhc3N3b3JkQ29uZmlnLCBSYW5nZUNvbmZpZywgUmVsYXRpb25hbE9wZXJhdG9yQ29uZmlnLCBSZXF1aXJlZENvbmZpZywgUnVsZUNvbmZpZyxcclxuICAgIFNpemVDb25maWcsIFRpbWVDb25maWcsIFVuaXF1ZUNvbmZpZ1xyXG59IGZyb20gJy4uLy4uL21vZGVscy9jb25maWcnO1xyXG5cclxuLyogU2VydmljZSBmb3IgZm9ybSBjb250cm9sIG1hbmlwdWxhdGlvbiAqL1xyXG5pbXBvcnQgeyBSeEZvcm1Db250cm9sIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL2Zvcm0tY29udHJvbFwiO1xyXG5cclxuLyogVXRpbGl0eSBmdW5jdGlvbnMgYW5kIGNsYXNzZXMgKi9cclxuaW1wb3J0IHsgUmVnZXhWYWxpZGF0b3IgfSBmcm9tICcuLi8uLi91dGlsJztcclxuaW1wb3J0IHsgQXBwbGljYXRpb25VdGlsIH0gZnJvbSAnLi4vLi4vdXRpbC9hcHAtdXRpbCc7XHJcblxyXG4vKiBCYXNlIHZhbGlkYXRvciBjbGFzcyAqL1xyXG5pbXBvcnQgeyBCYXNlVmFsaWRhdG9yIH0gZnJvbSAnLi9iYXNlLXZhbGlkYXRvci5kaXJlY3RpdmUnO1xyXG5cclxuLyogQ29uZmlndXJhdGlvbiBvYmplY3QgZm9yIE5HX1ZBTElEQVRPUlMgYmluZGluZyAqL1xyXG5jb25zdCBOR01PREVMX0JJTkRJTkc6IGFueSA9IHtcclxuICAgIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXHJcbiAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBSeEZvcm1Db250cm9sRGlyZWN0aXZlKSxcclxuICAgIG11bHRpOiB0cnVlXHJcbn07XHJcblxyXG4vKiBMaXN0IG9mIHZhbGlkYXRvcnMgdGhhdCBjYW4gYmUgdXNlZCB3aXRob3V0IGNvbmZpZ3VyYXRpb24gKi9cclxuY29uc3QgQUxMT1dfVkFMSURBVE9SX1dJVEhPVVRfQ09ORklHID0gWydyZXF1aXJlZCcsICdub3RFbXB0eScsICdhbHBoYScsICdhbHBoYU51bWVyaWMnLCAnYXNjaWknLCAnZGF0YVVyaScsICdkaWdpdCcsICdlbWFpbCcsICdldmVuJywgJ2hleENvbG9yJywgJ2pzb24nLCAnbGF0aXR1ZGUnLCAnbGF0TG9uZycsICdsZWFwWWVhcicsICdsb25naXR1ZGUnLCAnbG93ZXJDYXNlJywgJ21hYycsICdvZGQnLCAncG9ydCcsICdwcmltZU51bWJlcicsICd0aW1lJywgJ3VwcGVyQ2FzZScsICd1cmwnLCAndW5pcXVlJywgJ2N1c2lwJywgJ2dpcmQnXTtcclxuXHJcbi8qIENvbnN0YW50cyBmb3IgbnVtZXJpYyB2YWxpZGF0aW9uICovXHJcbmNvbnN0IE5VTUVSSUM6IHN0cmluZyA9IFwibnVtZXJpY1wiO1xyXG5jb25zdCBJU19GT1JNQVQ6IHN0cmluZyA9IFwiaXNGb3JtYXRcIjtcclxuY29uc3QgRElHSVRTX0lORk86IHN0cmluZyA9IFwiZGlnaXRzSW5mb1wiO1xyXG5cclxuLyogRGlyZWN0aXZlIGNsYXNzIGRlZmluaXRpb24gKi9cclxuQERpcmVjdGl2ZSh7XHJcbiAgICBzZWxlY3RvcjogJ1tuZ01vZGVsXSxbZm9ybUNvbnRyb2xOYW1lXSxbZm9ybUNvbnRyb2xdJyxcclxuICAgIHByb3ZpZGVyczogW05HTU9ERUxfQklORElOR10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSeEZvcm1Db250cm9sRGlyZWN0aXZlIGV4dGVuZHMgQmFzZVZhbGlkYXRvciBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBWYWxpZGF0b3Ige1xyXG4gICAgcHJpdmF0ZSBldmVudExpc3RlbmVyczogYW55W10gPSBbXTtcclxuICAgIHByaXZhdGUgaXNOdW1lcmljU3Vic2NyaWJlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgcHJpdmF0ZSBpc0ZvY3VzQ2FsbGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBwcml2YXRlIGlzTWFza2VkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgc2V0IHZhbGlkYXRpb25Db250cm9scyh2YWx1ZTogeyBba2V5OiBzdHJpbmddOiBGb3JtQ29udHJvbCB9KSB7IHRoaXMuY29udHJvbHMgPSB2YWx1ZTsgfVxyXG5cclxuICAgIGdldCB2YWxpZGF0aW9uQ29udHJvbHMoKTogeyBba2V5OiBzdHJpbmddOiBGb3JtQ29udHJvbCB9IHwgdW5kZWZpbmVkIHsgcmV0dXJuIHRoaXMuY29udHJvbHM7IH1cclxuXHJcbiAgICAvKiBJbnB1dCBwcm9wZXJ0aWVzIGZvciB2YXJpb3VzIHZhbGlkYXRvcnMgKi9cclxuICAgIEBJbnB1dCgpIHJ4YWxwaGE/OiBBbHBoYUNvbmZpZztcclxuICAgIEBJbnB1dCgpIHJ4YWxwaGFOdW1lcmljPzogQWxwaGFDb25maWc7XHJcbiAgICBASW5wdXQoKSByeGFzY2lpPzogQmFzZUNvbmZpZztcclxuICAgIEBJbnB1dCgpIHJ4Y29tcGFyZT86IENvbXBhcmVDb25maWc7XHJcbiAgICBASW5wdXQoKSByeGNvbXBvc2U/OiBDb21wb3NlQ29uZmlnO1xyXG4gICAgQElucHV0KCkgcnhjb250YWlucz86IENvbnRhaW5zQ29uZmlnO1xyXG4gICAgQElucHV0KCkgcnhjcmVkaXRDYXJkPzogQ3JlZGl0Q2FyZENvbmZpZztcclxuICAgIEBJbnB1dCgpIHJ4ZGF0YVVyaT86IEJhc2VDb25maWc7XHJcbiAgICBASW5wdXQoKSByeGRpZmZlcmVudD86IERpZmZlcmVudENvbmZpZztcclxuICAgIEBJbnB1dCgpIHJ4ZGlnaXQ/OiBEaWdpdENvbmZpZztcclxuICAgIEBJbnB1dCgpIHJ4ZW1haWw/OiBFbWFpbENvbmZpZztcclxuICAgIEBJbnB1dCgpIHJ4ZW5kc1dpdGg/OiBEZWZhdWx0Q29uZmlnO1xyXG4gICAgQElucHV0KCkgcnhldmVuPzogQmFzZUNvbmZpZztcclxuICAgIEBJbnB1dCgpIHJ4ZXh0ZW5zaW9uPzogRXh0ZW5zaW9uQ29uZmlnO1xyXG4gICAgQElucHV0KCkgcnhmYWN0b3I/OiBGYWN0b3JDb25maWc7XHJcbiAgICBASW5wdXQoKSByeGZpbGVTaXplPzogU2l6ZUNvbmZpZztcclxuICAgIEBJbnB1dCgpIHJ4Z3JlYXRlclRoYW5FcXVhbFRvPzogUmVsYXRpb25hbE9wZXJhdG9yQ29uZmlnO1xyXG4gICAgQElucHV0KCkgcnhncmVhdGVyVGhhbj86IFJlbGF0aW9uYWxPcGVyYXRvckNvbmZpZztcclxuICAgIEBJbnB1dCgpIHJ4aGV4Q29sb3I/OiBNZXNzYWdlQ29uZmlnO1xyXG4gICAgQElucHV0KCkgcnhqc29uPzogRGVmYXVsdENvbmZpZztcclxuICAgIEBJbnB1dCgpIHJ4bGF0aXR1ZGU/OiBCYXNlQ29uZmlnO1xyXG4gICAgQElucHV0KCkgcnhsYXRMb25nPzogQmFzZUNvbmZpZztcclxuICAgIEBJbnB1dCgpIHJ4bGVhcFllYXI/OiBCYXNlQ29uZmlnO1xyXG4gICAgQElucHV0KCkgcnhsZXNzVGhhbj86IFJlbGF0aW9uYWxPcGVyYXRvckNvbmZpZztcclxuICAgIEBJbnB1dCgpIHJ4bGVzc1RoYW5FcXVhbFRvPzogUmVsYXRpb25hbE9wZXJhdG9yQ29uZmlnO1xyXG4gICAgQElucHV0KCkgcnhsb25naXR1ZGU/OiBCYXNlQ29uZmlnO1xyXG4gICAgQElucHV0KCkgcnhsb3dlckNhc2U/OiBNZXNzYWdlQ29uZmlnO1xyXG4gICAgQElucHV0KCkgcnhtYWM/OiBCYXNlQ29uZmlnO1xyXG4gICAgQElucHV0KCkgcnhtYXhEYXRlPzogRGF0ZUNvbmZpZztcclxuICAgIEBJbnB1dCgpIHJ4bWF4TGVuZ3RoPzogTnVtYmVyQ29uZmlnO1xyXG4gICAgQElucHV0KCkgcnhtYXhOdW1iZXI/OiBOdW1iZXJDb25maWc7XHJcbiAgICBASW5wdXQoKSByeG1pbkRhdGU/OiBEYXRlQ29uZmlnO1xyXG4gICAgQElucHV0KCkgcnhtaW5MZW5ndGg/OiBOdW1iZXJDb25maWc7XHJcbiAgICBASW5wdXQoKSByeG1pbk51bWJlcj86IE51bWJlckNvbmZpZztcclxuICAgIEBJbnB1dCgpIHJ4bnVtZXJpYz86IE51bWVyaWNDb25maWc7XHJcbiAgICBASW5wdXQoKSByeG9kZD86IEJhc2VDb25maWc7XHJcbiAgICBASW5wdXQoKSByeHBhc3N3b3JkPzogUGFzc3dvcmRDb25maWc7XHJcbiAgICBASW5wdXQoKSByeHBvcnQ/OiBCYXNlQ29uZmlnO1xyXG4gICAgQElucHV0KCkgcnhwcmltZU51bWJlcj86IEJhc2VDb25maWc7XHJcbiAgICBASW5wdXQoKSByeHJlcXVpcmVkPzogUmVxdWlyZWRDb25maWc7XHJcbiAgICBASW5wdXQoKSByeHJhbmdlPzogUmFuZ2VDb25maWc7XHJcbiAgICBASW5wdXQoKSByeHJ1bGU/OiBSdWxlQ29uZmlnO1xyXG4gICAgQElucHV0KCkgcnhzdGFydHNXaXRoPzogRGVmYXVsdENvbmZpZztcclxuICAgIEBJbnB1dCgpIHJ4dGltZT86IFRpbWVDb25maWc7XHJcbiAgICBASW5wdXQoKSByeHVwcGVyQ2FzZT86IE1lc3NhZ2VDb25maWc7XHJcbiAgICBASW5wdXQoKSByeHVybD86IERlZmF1bHRDb25maWc7XHJcbiAgICBASW5wdXQoKSByeHVuaXF1ZT86IFVuaXF1ZUNvbmZpZztcclxuICAgIEBJbnB1dCgpIHJ4bm90RW1wdHk/OiBCYXNlQ29uZmlnO1xyXG4gICAgQElucHV0KCkgcnhjdXNpcD86IEJhc2VDb25maWc7XHJcbiAgICBASW5wdXQoKSByeGdyaWQ/OiBCYXNlQ29uZmlnO1xyXG4gICAgQElucHV0KCkgcnhkYXRlPzogQmFzZUNvbmZpZztcclxuXHJcbiAgICAvKipcclxuICAgICAqIENvbnN0cnVjdG9yIHdpdGggaW5qZWN0ZWQgZGVwZW5kZW5jaWVzXHJcbiAgICAgKiBAcGFyYW0gZWxlbWVudFJlZiBcclxuICAgICAqIEBwYXJhbSByZW5kZXJlciBcclxuICAgICAqIEBwYXJhbSBkZWNpbWFsUHJvdmlkZXIgXHJcbiAgICAgKi9cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZiwgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLCBwcml2YXRlIGRlY2ltYWxQcm92aWRlcjogRGVjaW1hbFByb3ZpZGVyKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICB0aGlzLmVsZW1lbnQgPSBlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgYXMgTm9kZTtcclxuICAgICAgICB0aGlzLnNldEV2ZW50TmFtZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIGxldCB2YWxpZGF0b3JzOiBWYWxpZGF0b3JGbltdID0gW107XHJcblxyXG4gICAgICAgIC8qIEl0ZXJhdGUgdGhyb3VnaCBhdmFpbGFibGUgdmFsaWRhdG9ycyBhbmQgYWRkIHRoZW0gdG8gdGhlIGxpc3QgaWYgY29uZmlndXJlZCAqL1xyXG4gICAgICAgIE9iamVjdC5rZXlzKEFQUF9WQUxJREFUT1JTKS5mb3JFYWNoKHZhbGlkYXRvck5hbWUgPT4ge1xyXG4gICAgICAgICAgICBpZiAoKCh0aGlzIGFzIGFueSlbYHJ4JHt2YWxpZGF0b3JOYW1lfWBdKSB8fCAoQUxMT1dfVkFMSURBVE9SX1dJVEhPVVRfQ09ORklHLmluZGV4T2YodmFsaWRhdG9yTmFtZSkgIT0gLTEgJiYgKHRoaXMgYXMgYW55KVtgcngke3ZhbGlkYXRvck5hbWV9YF0gPT0gQkxBTkspKSB7XHJcbiAgICAgICAgICAgICAgICB2YWxpZGF0b3JzLnB1c2goQVBQX1ZBTElEQVRPUlNbdmFsaWRhdG9yTmFtZV0oKHRoaXMgYXMgYW55KVtgcngke3ZhbGlkYXRvck5hbWV9YF0pKTtcclxuXHJcbiAgICAgICAgICAgICAgICAvKiBDb25maWd1cmUgY29udHJvbCBpZiBuYW1lIGlzIGF2YWlsYWJsZSAqL1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMubmFtZSAmJiAhKHRoaXMuZm9ybUNvbnRyb2xOYW1lICYmIHRoaXMuZm9ybUNvbnRyb2wpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgQXBwbGljYXRpb25VdGlsLmNvbmZpZ3VyZUNvbnRyb2wodGhpcy5jb250cm9sQ29uZmlnLCAodGhpcyBhcyBhbnkpW2ByeCR7dmFsaWRhdG9yTmFtZX1gXSwgdmFsaWRhdG9yTmFtZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG5cclxuICAgICAgICBpZiAodmFsaWRhdG9ycy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMudmFsaWRhdG9ycyA9IHZhbGlkYXRvcnM7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKiBCaW5kIG51bWVyaWMgZWxlbWVudCBldmVudCBpZiByeG51bWVyaWMgaXMgcHJlc2VudCAqL1xyXG4gICAgICAgIGlmICh0aGlzLnJ4bnVtZXJpYyAmJiAodGhpcy5yeG51bWVyaWMuaXNGb3JtYXQgfHwgdGhpcy5yeG51bWVyaWMuZGlnaXRzSW5mbykpIHtcclxuICAgICAgICAgICAgdGhpcy5iaW5kTnVtZXJpY0VsZW1lbnRFdmVudCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIE1ldGhvZCBmb3IgaGFuZGxpbmcgYmx1ciBldmVudFxyXG4gICAgICovXHJcbiAgICBibHVyRXZlbnQoKSB7XHJcbiAgICAgICAgaWYgKCEodGhpcy5mb3JtQ29udHJvbCAmJiB0aGlzLmZvcm1Db250cm9sLmVycm9ycyAmJiB0aGlzLmZvcm1Db250cm9sLmVycm9ycy5udW1lcmljKSkge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5mb3JtQ29udHJvbCEudmFsdWUgIT09IG51bGwgJiYgdGhpcy5mb3JtQ29udHJvbCEudmFsdWUgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgICAgbGV0IHZhbHVlID0gdGhpcy5kZWNpbWFsUHJvdmlkZXIudHJhbnNGb3JtRGVjaW1hbCh0aGlzLmZvcm1Db250cm9sIS52YWx1ZSwgdGhpcy5yeG51bWVyaWMhLmRpZ2l0c0luZm8hLCB0aGlzLnJ4bnVtZXJpYyEucGVyc2lzdFplcm8hKTtcclxuICAgICAgICAgICAgICAgIHZhbHVlID0gKCF0aGlzLnJ4bnVtZXJpYyEuaXNGb3JtYXQpID8gdGhpcy5kZWNpbWFsUHJvdmlkZXIucmVwbGFjZXIodmFsdWUpIDogdmFsdWU7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldFZhbHVlT25FbGVtZW50KHZhbHVlKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdGhpcy5pc0ZvY3VzQ2FsbGVkID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQmluZCBudW1lcmljIGVsZW1lbnQgZXZlbnRzXHJcbiAgICAgKiBAcGFyYW0gY29uZmlnIFxyXG4gICAgICovXHJcbiAgICBiaW5kTnVtZXJpY0VsZW1lbnRFdmVudChjb25maWc/OiBOdW1lcmljQ29uZmlnKSB7XHJcbiAgICAgICAgaWYgKGNvbmZpZylcclxuICAgICAgICAgICAgdGhpcy5yeG51bWVyaWMgPSBjb25maWc7XHJcblxyXG4gICAgICAgIGxldCBsaXN0ZW5lciA9IHRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMuZWxlbWVudCwgQkxVUiwgdGhpcy5ibHVyRXZlbnQuYmluZCh0aGlzKSk7XHJcbiAgICAgICAgdGhpcy5ldmVudExpc3RlbmVycy5wdXNoKGxpc3RlbmVyKTtcclxuXHJcbiAgICAgICAgbGlzdGVuZXIgPSB0aGlzLnJlbmRlcmVyLmxpc3Rlbih0aGlzLmVsZW1lbnQsIEZPQ1VTLCAoZXZlbnQpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5pc0ZvY3VzQ2FsbGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgaWYgKCEodGhpcy5mb3JtQ29udHJvbCAmJiB0aGlzLmZvcm1Db250cm9sLmVycm9ycyAmJiB0aGlzLmZvcm1Db250cm9sLmVycm9ycy5udW1lcmljKSAmJiB0aGlzLmZvcm1Db250cm9sIS52YWx1ZSAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgdmFsdWUgPSB0aGlzLmRlY2ltYWxQcm92aWRlci5yZXBsYWNlcih0aGlzLmVsZW1lbnQudmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXRWYWx1ZU9uRWxlbWVudCh2YWx1ZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLmV2ZW50TGlzdGVuZXJzLnB1c2gobGlzdGVuZXIpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQmluZCB2YWx1ZSBjaGFuZ2UgZXZlbnRcclxuICAgICAqL1xyXG4gICAgYmluZFZhbHVlQ2hhbmdlRXZlbnQoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuZXZlbnROYW1lICYmIHRoaXMuZXZlbnROYW1lICE9IEJMQU5LKSB7XHJcbiAgICAgICAgICAgIGxldCBsaXN0ZW5lciA9IHRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMuZWxlbWVudCwgdGhpcy5ldmVudE5hbWUhLCAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy52YWxpZGF0aW9uQ29udHJvbHMpIHtcclxuICAgICAgICAgICAgICAgICAgICBPYmplY3Qua2V5cyh0aGlzLnZhbGlkYXRpb25Db250cm9scyEpLmZvckVhY2goZmllbGROYW1lID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgKHRoaXMudmFsaWRhdGlvbkNvbnRyb2xzIGFzIGFueSlbZmllbGROYW1lXS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB0aGlzLmV2ZW50TGlzdGVuZXJzLnB1c2gobGlzdGVuZXIpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFN1YnNjcmliZSB0byBudW1lcmljIGZvcm1hdHRlclxyXG4gICAgICovXHJcbiAgICBzdWJzY3JpYmVOdW1lcmljRm9ybWF0dGVyKCkge1xyXG4gICAgICAgIGlmICgodGhpcy5mb3JtQ29udHJvbCBhcyBhbnkpW1ZBTElEQVRPUl9DT05GSUddICYmICh0aGlzLmZvcm1Db250cm9sIGFzIGFueSlbVkFMSURBVE9SX0NPTkZJR11bTlVNRVJJQ10gJiYgKCh0aGlzLmZvcm1Db250cm9sIGFzIGFueSlbVkFMSURBVE9SX0NPTkZJR11bTlVNRVJJQ11bSVNfRk9STUFUXSB8fCAodGhpcy5mb3JtQ29udHJvbCBhcyBhbnkpW1ZBTElEQVRPUl9DT05GSUddW05VTUVSSUNdW0RJR0lUU19JTkZPXSkpIHtcclxuICAgICAgICAgICAgaWYgKCF0aGlzLmlzTnVtZXJpY1N1YnNjcmliZWQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuYmluZE51bWVyaWNFbGVtZW50RXZlbnQoKHRoaXMuZm9ybUNvbnRyb2wgYXMgYW55KVtWQUxJREFUT1JfQ09ORklHXVtOVU1FUklDXSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmlzTnVtZXJpY1N1YnNjcmliZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAoIXRoaXMuaXNGb2N1c0NhbGxlZCAmJiBSZWdleFZhbGlkYXRvci5pc05vdEJsYW5rKCh0aGlzLmZvcm1Db250cm9sIGFzIGFueSkudmFsdWUpKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmJsdXJFdmVudCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU3Vic2NyaWJlIHRvIG1hc2sgdmFsaWRhdG9yXHJcbiAgICAgKi9cclxuICAgIHN1YnNjcmliZU1hc2tWYWxpZGF0b3IoKSB7XHJcbiAgICAgICAgaWYgKCh0aGlzLmZvcm1Db250cm9sIGFzIGFueSlbVkFMSURBVE9SX0NPTkZJR10gJiYgKHRoaXMuZm9ybUNvbnRyb2wgYXMgYW55KVtWQUxJREFUT1JfQ09ORklHXVtcIm1hc2tcIl0gJiYgIXRoaXMuaXNNYXNrZWQpIHtcclxuICAgICAgICAgICAgbGV0IGNvbmZpZyA9ICh0aGlzLmZvcm1Db250cm9sIGFzIGFueSlbVkFMSURBVE9SX0NPTkZJR11bXCJtYXNrXCJdO1xyXG4gICAgICAgICAgICB0aGlzLm1hc2tQcm92aWRlciA9IG5ldyBNYXNrUHJvdmlkZXIodGhpcy5lbGVtZW50LCBjb25maWcubWFzaywgdGhpcy5yZW5kZXJlciwgdGhpcy5mb3JtQ29udHJvbCBhcyBGb3JtQ29udHJvbCwgY29uZmlnKTtcclxuICAgICAgICAgICAgdGhpcy5pc01hc2tlZCA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0IHZhbHVlIG9uIGVsZW1lbnRcclxuICAgICAqIEBwYXJhbSB2YWx1ZSBcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBzZXRWYWx1ZU9uRWxlbWVudCh2YWx1ZTogYW55KSB7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRQcm9wZXJ0eSh0aGlzLmVsZW1lbnQsIEVMRU1FTlRfVkFMVUUsIHZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldCB0ZW1wbGF0ZSB2YWxpZGF0b3JzXHJcbiAgICAgKiBAcGFyYW0gY29udHJvbCBcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBzZXRUZW1wbGF0ZVZhbGlkYXRvcnMoY29udHJvbDogQWJzdHJhY3RDb250cm9sKSB7XHJcbiAgICAgICAgZm9yIChsZXQgdmFsaWRhdG9yTmFtZSBpbiAoY29udHJvbCBhcyBhbnkpW1ZBTElEQVRPUl9DT05GSUddKSB7XHJcbiAgICAgICAgICAgICh0aGlzIGFzIGFueSlbdmFsaWRhdG9yTmFtZV0gPSAoY29udHJvbCBhcyBhbnkpW1ZBTElEQVRPUl9DT05GSUddW3ZhbGlkYXRvck5hbWVdO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZGVsZXRlIChjb250cm9sIGFzIGFueSlbVEVNUExBVEVfVkFMSURBVElPTl9DT05GSUddO1xyXG4gICAgICAgIGRlbGV0ZSAoY29udHJvbCBhcyBhbnkpW1ZBTElEQVRPUl9DT05GSUddO1xyXG4gICAgICAgIHRoaXMubmdPbkluaXQoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFVwZGF0ZSBlbGVtZW50IGNsYXNzIG9uIGNoYW5nZVxyXG4gICAgICogQHBhcmFtIGVsZW1lbnQgXHJcbiAgICAgKiBAcmV0dXJucyBcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSB1cGRhdGVPbkVsZW1lbnRDbGFzcyhlbGVtZW50OiBIVE1MRWxlbWVudCkge1xyXG4gICAgICAgIHZhciBwcmV2aW91c0NsYXNzTmFtZTogc3RyaW5nID0gJyc7XHJcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIChjbGFzc05hbWU6IHN0cmluZykge1xyXG4gICAgICAgICAgICBpZiAocHJldmlvdXNDbGFzc05hbWUpXHJcbiAgICAgICAgICAgICAgICBlbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUocHJldmlvdXNDbGFzc05hbWUpO1xyXG5cclxuICAgICAgICAgICAgaWYgKGNsYXNzTmFtZSlcclxuICAgICAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NMaXN0LmFkZChjbGFzc05hbWUpO1xyXG5cclxuICAgICAgICAgICAgcHJldmlvdXNDbGFzc05hbWUgPSBjbGFzc05hbWU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0IHZhbGlkYXRvciBjb25maWd1cmF0aW9uXHJcbiAgICAgKiBAcGFyYW0gY29udHJvbCBcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBzZXRWYWxpZGF0b3JDb25maWcoY29udHJvbDogQWJzdHJhY3RDb250cm9sKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmZvcm1Db250cm9sKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZm9ybUNvbnRyb2wgPSBjb250cm9sO1xyXG4gICAgICAgICAgICBsZXQgcnhGb3JtQ29udHJvbCA9IHRoaXMuZm9ybUNvbnRyb2wgYXMgUnhGb3JtQ29udHJvbDtcclxuXHJcbiAgICAgICAgICAgIGlmIChyeEZvcm1Db250cm9sLnVwZGF0ZU9uRWxlbWVudENsYXNzKVxyXG4gICAgICAgICAgICAgICAgcnhGb3JtQ29udHJvbC51cGRhdGVPbkVsZW1lbnRDbGFzcyA9IHRoaXMudXBkYXRlT25FbGVtZW50Q2xhc3ModGhpcy5lbGVtZW50KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuc3Vic2NyaWJlTWFza1ZhbGlkYXRvcigpO1xyXG4gICAgICAgIHRoaXMuc3Vic2NyaWJlTnVtZXJpY0Zvcm1hdHRlcigpO1xyXG5cclxuICAgICAgICBpZiAoKGNvbnRyb2wgYXMgYW55KVtURU1QTEFURV9WQUxJREFUSU9OX0NPTkZJR10pXHJcbiAgICAgICAgICAgIHRoaXMuc2V0VGVtcGxhdGVWYWxpZGF0b3JzKGNvbnRyb2wpO1xyXG5cclxuICAgICAgICBpZiAoKGNvbnRyb2wgYXMgYW55KVtDT05ESVRJT05BTF9WQUxJREFUT1JdKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY29uZGl0aW9uYWxWYWxpZGF0b3IgPSAoY29udHJvbCBhcyBhbnkpW0NPTkRJVElPTkFMX1ZBTElEQVRPUl07XHJcbiAgICAgICAgICAgIGRlbGV0ZSAoY29udHJvbCBhcyBhbnkpW0NPTkRJVElPTkFMX1ZBTElEQVRPUl07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmFsaWRhdGUgdGhlIGNvbnRyb2xcclxuICAgICAqIEBwYXJhbSBjb250cm9sIFxyXG4gICAgICogQHJldHVybnMgXHJcbiAgICAgKi9cclxuICAgIHZhbGlkYXRlKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IHsgW2tleTogc3RyaW5nXTogYW55IH0gfCBudWxsIHtcclxuICAgICAgICB0aGlzLnNldFZhbGlkYXRvckNvbmZpZyhjb250cm9sKTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuY29uZGl0aW9uYWxWYWxpZGF0b3IpIHtcclxuICAgICAgICAgICAgdGhpcy5jb25kaXRpb25hbFZhbGlkYXRvcihjb250cm9sKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5pc1Byb2Nlc3NlZCkge1xyXG4gICAgICAgICAgICB0aGlzLnNldE1vZGVsQ29uZmlnKGNvbnRyb2wpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuICgodGhpcy52YWxpZGF0b3JzICYmIHRoaXMudmFsaWRhdG9ycy5sZW5ndGggPiAwKSB8fCB0aGlzLm1hc2tQcm92aWRlcikgPyB0aGlzLnZhbGlkYXRpb24oY29udHJvbCkgOiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGVzdHJveSB0aGUgZGlyZWN0aXZlXHJcbiAgICAgKi9cclxuICAgIG5nT25EZXN0cm95KCkge1xyXG4gICAgICAgIHRoaXMuY29udHJvbHMgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgbGV0IGV2ZW50Q291bnQgPSB0aGlzLmV2ZW50TGlzdGVuZXJzLmxlbmd0aDtcclxuXHJcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBldmVudENvdW50OyBpKyspIHtcclxuICAgICAgICAgICAgdGhpcy5ldmVudExpc3RlbmVyc1swXSgpO1xyXG4gICAgICAgICAgICB0aGlzLmV2ZW50TGlzdGVuZXJzLnNwbGljZSgwLCAxKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuZXZlbnRMaXN0ZW5lcnMgPSBbXTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMubWFza1Byb3ZpZGVyKVxyXG4gICAgICAgICAgICB0aGlzLm1hc2tQcm92aWRlci5vbkRlc3Ryb3koKTtcclxuICAgIH1cclxufVxyXG4iXX0=