@wavemaker/app-ng-runtime 12.0.0-next.44005 → 12.0.0-next.45001

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 (105) hide show
  1. app-ng-runtime/build-task/advanced/custom-widget-container/custom-widget-container.build.d.ts +2 -0
  2. app-ng-runtime/build-task/advanced/custom-widget-prop/custom-widget-prop.build.d.ts +2 -0
  3. app-ng-runtime/build-task/advanced/custom-widget-wrapper/custom-widget-wrapper.build.d.ts +2 -0
  4. app-ng-runtime/build-task/bundles/index.umd.js +477 -404
  5. app-ng-runtime/build-task/esm2022/advanced/custom-widget-container/custom-widget-container.build.mjs +15 -0
  6. app-ng-runtime/build-task/esm2022/advanced/custom-widget-prop/custom-widget-prop.build.mjs +10 -0
  7. app-ng-runtime/build-task/esm2022/advanced/custom-widget-wrapper/custom-widget-wrapper.build.mjs +26 -0
  8. app-ng-runtime/build-task/esm2022/data/form/form-field/form-field.build.mjs +3 -2
  9. app-ng-runtime/build-task/esm2022/navigation/menu/menu.build.mjs +14 -2
  10. app-ng-runtime/build-task/esm2022/public_api.mjs +4 -1
  11. app-ng-runtime/build-task/fesm2022/index.mjs +479 -405
  12. app-ng-runtime/build-task/fesm2022/index.mjs.map +1 -1
  13. app-ng-runtime/build-task/public_api.d.ts +3 -0
  14. app-ng-runtime/components/advanced/custom/bundles/index.umd.js +275 -0
  15. app-ng-runtime/components/advanced/custom/custom-widget-container/custom-widget-container.directive.d.ts +14 -0
  16. app-ng-runtime/components/advanced/custom/custom-widget-container/custom-widget.props.d.ts +1 -0
  17. app-ng-runtime/components/advanced/custom/custom-widget-container-prop/custom-widget-container-prop.directive.d.ts +20 -0
  18. app-ng-runtime/components/advanced/custom/custom-widget-prop.d.ts +1 -0
  19. app-ng-runtime/components/advanced/custom/custom-widget.directive.d.ts +19 -0
  20. app-ng-runtime/components/advanced/custom/custom-widget.module.d.ts +11 -0
  21. app-ng-runtime/components/advanced/custom/esm2022/custom-widget-container/custom-widget-container.directive.mjs +73 -0
  22. app-ng-runtime/components/advanced/custom/esm2022/custom-widget-container/custom-widget.props.mjs +9 -0
  23. app-ng-runtime/components/advanced/custom/esm2022/custom-widget-container-prop/custom-widget-container-prop.directive.mjs +70 -0
  24. app-ng-runtime/components/advanced/custom/esm2022/custom-widget-prop.mjs +8 -0
  25. app-ng-runtime/components/advanced/custom/esm2022/custom-widget.directive.mjs +68 -0
  26. app-ng-runtime/components/advanced/custom/esm2022/custom-widget.module.mjs +39 -0
  27. app-ng-runtime/components/advanced/custom/esm2022/index.mjs +5 -0
  28. app-ng-runtime/components/advanced/custom/esm2022/public_api.mjs +5 -0
  29. app-ng-runtime/components/advanced/custom/fesm2022/index.mjs +256 -0
  30. app-ng-runtime/components/advanced/custom/fesm2022/index.mjs.map +1 -0
  31. app-ng-runtime/components/advanced/custom/index.d.ts +5 -0
  32. app-ng-runtime/components/advanced/custom/package.json +23 -0
  33. app-ng-runtime/components/advanced/custom/public_api.d.ts +4 -0
  34. app-ng-runtime/components/base/bundles/index.umd.js +65 -9
  35. app-ng-runtime/components/base/components.module.d.ts +12 -11
  36. app-ng-runtime/components/base/esm2022/components.module.mjs +5 -1
  37. app-ng-runtime/components/base/esm2022/public_api.mjs +2 -1
  38. app-ng-runtime/components/base/esm2022/widgets/common/base/base.component.mjs +28 -10
  39. app-ng-runtime/components/base/esm2022/widgets/common/base/custom-widget-container.directive.mjs +39 -0
  40. app-ng-runtime/components/base/fesm2022/index.mjs +65 -10
  41. app-ng-runtime/components/base/fesm2022/index.mjs.map +1 -1
  42. app-ng-runtime/components/base/public_api.d.ts +1 -0
  43. app-ng-runtime/components/base/widgets/common/base/base.component.d.ts +9 -3
  44. app-ng-runtime/components/base/widgets/common/base/custom-widget-container.directive.d.ts +14 -0
  45. app-ng-runtime/components/basic/default/audio/audio.component.d.ts +1 -0
  46. app-ng-runtime/components/basic/default/bundles/index.umd.js +5 -4
  47. app-ng-runtime/components/basic/default/esm2022/audio/audio.component.mjs +6 -5
  48. app-ng-runtime/components/basic/default/fesm2022/index.mjs +5 -4
  49. app-ng-runtime/components/basic/default/fesm2022/index.mjs.map +1 -1
  50. app-ng-runtime/components/basic/progress/bundles/index.umd.js +3 -2
  51. app-ng-runtime/components/basic/progress/esm2022/progress-circle/progress-circle.component.mjs +4 -3
  52. app-ng-runtime/components/basic/progress/fesm2022/index.mjs +3 -2
  53. app-ng-runtime/components/basic/progress/fesm2022/index.mjs.map +1 -1
  54. app-ng-runtime/components/basic/progress/progress-circle/progress-circle.component.d.ts +1 -0
  55. app-ng-runtime/components/data/form/bundles/index.umd.js +4 -3
  56. app-ng-runtime/components/data/form/esm2022/form-field/form-field.directive.mjs +1 -2
  57. app-ng-runtime/components/data/form/esm2022/live-form/live-form.directive.mjs +5 -3
  58. app-ng-runtime/components/data/form/fesm2022/index.mjs +4 -3
  59. app-ng-runtime/components/data/form/fesm2022/index.mjs.map +1 -1
  60. app-ng-runtime/components/input/default/bundles/index.umd.js +46 -53
  61. app-ng-runtime/components/input/default/esm2022/caption-position.directive.mjs +2 -3
  62. app-ng-runtime/components/input/default/esm2022/select/select.component.mjs +44 -53
  63. app-ng-runtime/components/input/default/esm2022/text/base/base-input.mjs +4 -1
  64. app-ng-runtime/components/input/default/fesm2022/index.mjs +47 -54
  65. app-ng-runtime/components/input/default/fesm2022/index.mjs.map +1 -1
  66. app-ng-runtime/components/input/default/select/select.component.d.ts +1 -2
  67. app-ng-runtime/components/input/epoch/bundles/index.umd.js +19 -7
  68. app-ng-runtime/components/input/epoch/date/date.component.d.ts +1 -0
  69. app-ng-runtime/components/input/epoch/esm2022/date/date.component.mjs +9 -3
  70. app-ng-runtime/components/input/epoch/esm2022/date/imaskUtil.mjs +8 -2
  71. app-ng-runtime/components/input/epoch/esm2022/date-time/date-time.component.mjs +3 -3
  72. app-ng-runtime/components/input/epoch/esm2022/time/time.component.mjs +3 -3
  73. app-ng-runtime/components/input/epoch/fesm2022/index.mjs +19 -7
  74. app-ng-runtime/components/input/epoch/fesm2022/index.mjs.map +1 -1
  75. app-ng-runtime/core/bundles/index.umd.js +10 -0
  76. app-ng-runtime/core/enums/enums.d.ts +2 -1
  77. app-ng-runtime/core/esm2022/enums/enums.mjs +2 -1
  78. app-ng-runtime/core/esm2022/types/types.mjs +4 -1
  79. app-ng-runtime/core/esm2022/utils/build-utils.mjs +6 -1
  80. app-ng-runtime/core/fesm2022/index.mjs +10 -1
  81. app-ng-runtime/core/fesm2022/index.mjs.map +1 -1
  82. app-ng-runtime/core/types/types.d.ts +5 -1
  83. app-ng-runtime/package.json +1 -1
  84. app-ng-runtime/runtime/base/bundles/index.umd.js +254 -4
  85. app-ng-runtime/runtime/base/components/base-custom-widget.component.d.ts +71 -0
  86. app-ng-runtime/runtime/base/esm2022/components/base-custom-widget.component.mjs +253 -0
  87. app-ng-runtime/runtime/base/esm2022/public_api.mjs +2 -1
  88. app-ng-runtime/runtime/base/esm2022/runtime-base.module.mjs +6 -1
  89. app-ng-runtime/runtime/base/esm2022/types/types.mjs +2 -1
  90. app-ng-runtime/runtime/base/fesm2022/index.mjs +251 -1
  91. app-ng-runtime/runtime/base/fesm2022/index.mjs.map +1 -1
  92. app-ng-runtime/runtime/base/public_api.d.ts +1 -0
  93. app-ng-runtime/runtime/base/runtime-base.module.d.ts +9 -8
  94. app-ng-runtime/runtime/base/types/types.d.ts +2 -1
  95. app-ng-runtime/runtime/dynamic/bundles/index.umd.js +26 -9
  96. app-ng-runtime/runtime/dynamic/esm2022/app/app.module.mjs +5 -2
  97. app-ng-runtime/runtime/dynamic/esm2022/app/services/component-ref-provider.service.mjs +22 -7
  98. app-ng-runtime/runtime/dynamic/fesm2022/index.mjs +25 -7
  99. app-ng-runtime/runtime/dynamic/fesm2022/index.mjs.map +1 -1
  100. app-ng-runtime/scripts/datatable/datatable.js +1 -0
  101. app-ng-runtime/transpiler/bundles/index.umd.js +5 -0
  102. app-ng-runtime/transpiler/esm2022/build.mjs +4 -1
  103. app-ng-runtime/transpiler/esm2022/imports.mjs +3 -1
  104. app-ng-runtime/transpiler/fesm2022/index.mjs +5 -0
  105. app-ng-runtime/transpiler/fesm2022/index.mjs.map +1 -1
@@ -0,0 +1,253 @@
1
+ import { Directive, inject } from '@angular/core';
2
+ import { Subject } from 'rxjs';
3
+ import { $invokeWatchers, AbstractI18nService, App, noop, Viewport, ScriptLoaderService, UtilsService, registerFnByExpr, $watch, isIE } from '@wm/core';
4
+ import { WidgetRef } from '@wm/components/base';
5
+ import { PageDirective, SpaPageDirective } from '@wm/components/page';
6
+ import { VariablesService } from '@wm/variables';
7
+ import { FragmentMonitor } from '../util/fragment-monitor';
8
+ import { commonPartialWidgets } from "./base-partial.component";
9
+ import * as i0 from "@angular/core";
10
+ // export const commonPartialWidgets = {};
11
+ export class BaseCustomWidgetComponent extends FragmentMonitor {
12
+ constructor() {
13
+ super(...arguments);
14
+ this.BaseWidget = {};
15
+ this.compileContent = false;
16
+ this.destroy$ = new Subject();
17
+ this.viewInit$ = new Subject();
18
+ this.invokeEvent = (eventName) => {
19
+ this.events[eventName]();
20
+ };
21
+ }
22
+ getContainerWidgetInjector() {
23
+ return this.containerWidget.inj || this.containerWidget.injector;
24
+ }
25
+ init() {
26
+ let resolveFn;
27
+ const promise = new Promise((res) => resolveFn = res);
28
+ this.App = this.injector ? this.injector.get(App) : inject(App);
29
+ //making the code compatible in both the JIT and AOT modes
30
+ this.containerWidget = this.injector ? this.injector.get(WidgetRef) : inject(WidgetRef);
31
+ this.i18nService = this.injector ? this.injector.get(AbstractI18nService) : inject(AbstractI18nService);
32
+ this.scriptLoaderService = this.injector ? this.injector.get(ScriptLoaderService) : inject(ScriptLoaderService);
33
+ this.Viewport = this.injector ? this.injector.get(Viewport) : inject(Viewport);
34
+ // this.viewContainerRef = this.getContainerWidgetInjector().get(ViewContainerRef);
35
+ // Replacing this.getContainerWidgetInjector().view.component as viewParent
36
+ // this.viewParent = (this.viewContainerRef as any).parentInjector._lView[8];
37
+ this.viewParent = this.containerWidget.viewParent;
38
+ if (this.viewParent.registerFragment) {
39
+ this.viewParent.registerFragment();
40
+ }
41
+ // register functions for binding evaluation
42
+ this.registerExpressions();
43
+ this.initUserScript();
44
+ this.registerProps(resolveFn);
45
+ // Using promise to make sure the props are registered in the container widget before registering events, Otherwise no events will be registered
46
+ promise.then(() => this.registerEvents());
47
+ this.registerWidgets();
48
+ this.initVariables();
49
+ this.activePageName = this.App.activePageName; // Todo: remove this
50
+ this.registerPageParams();
51
+ this.defineI18nProps();
52
+ this.viewInit$.subscribe(noop, noop, () => {
53
+ this.pageParams = this.containerWidget.props;
54
+ });
55
+ if (this.spa) {
56
+ this.pageDirective = this.injector ? this.injector.get(SpaPageDirective) : inject(SpaPageDirective);
57
+ }
58
+ else {
59
+ this.pageDirective = this.injector ? this.injector.get(PageDirective) : inject(PageDirective);
60
+ }
61
+ if (this.pageDirective) {
62
+ this.registerDestroyListener(this.pageDirective.subscribe('attach', data => this.ngOnAttach(data.refreshData)));
63
+ this.registerDestroyListener(this.pageDirective.subscribe('detach', () => this.ngOnDetach()));
64
+ }
65
+ super.init();
66
+ }
67
+ registerWidgets() {
68
+ // common partial widgets should be accessible from page
69
+ this.Widgets = Object.create(commonPartialWidgets);
70
+ // expose current page widgets on app
71
+ this.App.Widgets = Object.create(this.Widgets);
72
+ }
73
+ registerBaseWidget() {
74
+ for (let widget in this.Widgets) {
75
+ let widgetInstance = this.Widgets[widget];
76
+ if (widgetInstance.widget.$attrs.has('base-widget')) {
77
+ this.BaseWidget = widgetInstance;
78
+ break;
79
+ }
80
+ }
81
+ }
82
+ registerEvents() {
83
+ this.events = {};
84
+ this.containerWidget.eventHandlers.forEach((callback, key) => {
85
+ this.events[key] = (...args) => {
86
+ this.containerWidget.invokeEventCallback(key, { $event: args[0], $data: args[1] });
87
+ };
88
+ });
89
+ }
90
+ registerDestroyListener(fn) {
91
+ this.destroy$.subscribe(noop, noop, () => fn());
92
+ }
93
+ registerChangeListeners() {
94
+ this.containerWidget.registerPropertyChangeListener(this.onPropertyChange);
95
+ this.containerWidget.registerStyleChangeListener(this.onPropertyChange);
96
+ }
97
+ initUserScript() {
98
+ try {
99
+ // partials inside prefab should have access to Prefab properties and events
100
+ if (this.viewParent.prefabName) {
101
+ // for partial within partial within prefabs, just assign the parent partial's prefab object
102
+ if (this.viewParent.Prefab) {
103
+ this.Prefab = this.viewParent.Prefab;
104
+ }
105
+ else {
106
+ this.Prefab = this.viewParent;
107
+ }
108
+ }
109
+ this.evalUserScript(this, this.App, this.injector ? this.injector.get(UtilsService) : inject(UtilsService));
110
+ }
111
+ catch (e) {
112
+ console.error(`Error in evaluating partial (${this.customWidgetName}) script\n`, e);
113
+ }
114
+ }
115
+ initVariables() {
116
+ const variablesService = this.injector ? this.injector.get(VariablesService) : inject(VariablesService);
117
+ // get variables and actions instances for the page
118
+ const variableCollection = variablesService.register(this.customWidgetName, this.getVariables(), this);
119
+ // create namespace for Variables nad Actions on page/partial, which inherits the Variables and Actions from App instance
120
+ this.Variables = Object.create(this.App.Variables);
121
+ this.Actions = Object.create(this.App.Actions);
122
+ this.containerWidget.Variables = this.Variables;
123
+ this.containerWidget.Actions = this.Actions;
124
+ // assign all the page variables to the pageInstance
125
+ Object.entries(variableCollection.Variables).forEach(([name, variable]) => this.Variables[name] = variable);
126
+ Object.entries(variableCollection.Actions).forEach(([name, action]) => this.Actions[name] = action);
127
+ this.viewInit$.subscribe(noop, noop, () => {
128
+ // TEMP: triggering watchers so variables watching over params are updated
129
+ $invokeWatchers(true, true);
130
+ variableCollection.callback(variableCollection.Variables).catch(noop);
131
+ variableCollection.callback(variableCollection.Actions);
132
+ });
133
+ }
134
+ /**
135
+ * function to register bind expressions generated in this partial instance
136
+ * getExpressions function is defined in the generated page.comp.ts file
137
+ * @param expressions, map of bind expression vs generated function
138
+ */
139
+ registerExpressions() {
140
+ const expressions = this.getExpressions();
141
+ _.each(expressions, (fn, expr) => {
142
+ registerFnByExpr(expr, fn[0], fn[1]);
143
+ });
144
+ }
145
+ registerPageParams() {
146
+ this.pageParams = this.containerWidget.props;
147
+ }
148
+ defineI18nProps() {
149
+ this.appLocale = this.i18nService.getAppLocale();
150
+ }
151
+ invokeOnReady() {
152
+ let params;
153
+ if (this.containerWidget.userComponentParams) {
154
+ params = this.containerWidget.userComponentParams;
155
+ }
156
+ this.onReady(params);
157
+ if (this.viewParent.resolveFragment) {
158
+ this.viewParent.resolveFragment();
159
+ }
160
+ }
161
+ loadScripts() {
162
+ // return new Promise<void>((resolve) => {
163
+ // const scriptsRequired = this.partialDirective.$element.attr('scripts-to-load');
164
+ // if (scriptsRequired) {
165
+ // this.scriptLoaderService
166
+ // .load(...scriptsRequired.split(','))
167
+ // .then(resolve);
168
+ // } else {
169
+ // resolve();
170
+ // }
171
+ // });
172
+ }
173
+ registerProps(resolveFn) {
174
+ window['resourceCache'].get(`./custom-widgets/${this.customWidgetName}/page.min.json`).then(({ config }) => {
175
+ if (config) {
176
+ Object.entries((config.properties || {})).forEach(([key, prop]) => {
177
+ let expr;
178
+ const value = _.trim(prop.value);
179
+ if (_.startsWith(value, 'bind:')) {
180
+ expr = value.replace('bind:', '');
181
+ }
182
+ Object.defineProperty(this, key, {
183
+ get: () => this.containerWidget[key],
184
+ set: nv => this.containerWidget.widget[key] = nv
185
+ });
186
+ if (expr) {
187
+ //[Todo-CSP]: expr will be generated with prefab.comp.expr.ts
188
+ this.registerDestroyListener($watch(expr, this, {}, nv => this.containerWidget.widget[key] = nv));
189
+ }
190
+ });
191
+ }
192
+ this.containerWidget.setProps(config, resolveFn);
193
+ // Reassigning the proxy handler for prefab inbound properties as we
194
+ // will get them only after the prefab config call.
195
+ if (isIE()) {
196
+ this.containerWidget.widget = this.containerWidget.createProxy();
197
+ }
198
+ });
199
+ }
200
+ mute() {
201
+ const m = o => { o && o.mute && o.mute(); };
202
+ _.each(this.Widgets, m);
203
+ _.each(this.Variables, m);
204
+ _.each(this.Actions, m);
205
+ }
206
+ unmute() {
207
+ const um = o => { o && o.unmute && o.unmute(); };
208
+ _.each(this.Widgets, um);
209
+ _.each(this.Variables, um);
210
+ _.each(this.Actions, um);
211
+ }
212
+ // ngOnInit() {
213
+ // this.init();
214
+ // }
215
+ ngAfterViewInit() {
216
+ // this.loadScripts().then(() => {
217
+ // this.compileContent = true;
218
+ // setTimeout(() => {
219
+ // this.viewInit$.complete();
220
+ // this.fragmentsLoaded$.subscribe(noop, noop, () => this.invokeOnReady());
221
+ // }, 100);
222
+ // });
223
+ this.registerChangeListeners();
224
+ this.registerBaseWidget();
225
+ this.invokeOnReady();
226
+ }
227
+ ngOnDestroy() {
228
+ this.destroy$.complete();
229
+ }
230
+ ngOnAttach(refreshData) {
231
+ this.unmute();
232
+ if (refreshData) {
233
+ const refresh = v => { v && v.startUpdate && v.invoke && v.invoke(); };
234
+ _.each(this.Variables, refresh);
235
+ _.each(this.Actions, refresh);
236
+ }
237
+ _.each(this.Widgets, w => w && w.ngOnAttach && w.ngOnAttach());
238
+ }
239
+ ngOnDetach() {
240
+ this.mute();
241
+ _.each(this.Widgets, w => w && w.ngOnDetach && w.ngOnDetach());
242
+ }
243
+ // user overrides this
244
+ onPropertyChange() { }
245
+ onReady(params) {
246
+ }
247
+ static { this.ɵfac = /*@__PURE__*/ function () { let ɵBaseCustomWidgetComponent_BaseFactory; return function BaseCustomWidgetComponent_Factory(t) { return (ɵBaseCustomWidgetComponent_BaseFactory || (ɵBaseCustomWidgetComponent_BaseFactory = i0.ɵɵgetInheritedFactory(BaseCustomWidgetComponent)))(t || BaseCustomWidgetComponent); }; }(); }
248
+ static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: BaseCustomWidgetComponent, features: [i0.ɵɵInheritDefinitionFeature] }); }
249
+ }
250
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(BaseCustomWidgetComponent, [{
251
+ type: Directive
252
+ }], null, null); })();
253
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1jdXN0b20td2lkZ2V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3J1bnRpbWUtYmFzZS9zcmMvY29tcG9uZW50cy9iYXNlLWN1c3RvbS13aWRnZXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFLSCxTQUFTLEVBQ1QsTUFBTSxFQUNULE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFFN0IsT0FBTyxFQUNILGVBQWUsRUFDZixtQkFBbUIsRUFFbkIsR0FBRyxFQUNILElBQUksRUFDSixRQUFRLEVBQ1IsbUJBQW1CLEVBQ25CLFlBQVksRUFDWixnQkFBZ0IsRUFDaEIsTUFBTSxFQUNOLElBQUksRUFDUCxNQUFNLFVBQVUsQ0FBQztBQUNsQixPQUFPLEVBQXVCLFNBQVMsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV0RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFakQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRTNELE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLDBCQUEwQixDQUFDOztBQUk5RCwwQ0FBMEM7QUFHMUMsTUFBTSxPQUFnQix5QkFBMEIsU0FBUSxlQUFlO0lBRHZFOztRQUdJLGVBQVUsR0FBUSxFQUFFLENBQUM7UUFvQnJCLG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBSXZCLGFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQ3pCLGNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBOEUxQixnQkFBVyxHQUFHLENBQUMsU0FBaUIsRUFBRSxFQUFFO1lBQ2hDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FB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QU0sT0FBTyxHQUFHLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxXQUFXLElBQUksQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdkUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQ2hDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztTQUNqQztRQUNELENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsVUFBVSxJQUFJLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFFRCxVQUFVO1FBQ04sSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ1osQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxVQUFVLElBQUksQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVELHNCQUFzQjtJQUN0QixnQkFBZ0IsS0FBSyxDQUFDO0lBRXRCLE9BQU8sQ0FBQyxNQUFPO0lBQ2YsQ0FBQzs2UUE5U2lCLHlCQUF5QixTQUF6Qix5QkFBeUI7b0VBQXpCLHlCQUF5Qjs7dUZBQXpCLHlCQUF5QjtjQUQ5QyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIEluamVjdG9yLFxuICAgIE9uRGVzdHJveSxcbiAgICBWaWV3Q2hpbGQsXG4gICAgRGlyZWN0aXZlLFxuICAgIGluamVjdFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQge1N1YmplY3R9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge1xuICAgICRpbnZva2VXYXRjaGVycyxcbiAgICBBYnN0cmFjdEkxOG5TZXJ2aWNlLFxuICAgIEFic3RyYWN0TmF2aWdhdGlvblNlcnZpY2UsXG4gICAgQXBwLFxuICAgIG5vb3AsXG4gICAgVmlld3BvcnQsXG4gICAgU2NyaXB0TG9hZGVyU2VydmljZSxcbiAgICBVdGlsc1NlcnZpY2UsXG4gICAgcmVnaXN0ZXJGbkJ5RXhwcixcbiAgICAkd2F0Y2gsXG4gICAgaXNJRSwgaXNEZWZpbmVkXG59IGZyb20gJ0B3bS9jb3JlJztcbmltcG9ydCB7Z2V0V2lkZ2V0UHJvcHNCeVR5cGUsIFdpZGdldFJlZn0gZnJvbSAnQHdtL2NvbXBvbmVudHMvYmFzZSc7XG5pbXBvcnQgeyBQYWdlRGlyZWN0aXZlLCBTcGFQYWdlRGlyZWN0aXZlIH0gZnJvbSAnQHdtL2NvbXBvbmVudHMvcGFnZSc7XG5pbXBvcnQge1ByZWZhYkRpcmVjdGl2ZX0gZnJvbSAnQHdtL2NvbXBvbmVudHMvcHJlZmFiJztcbmltcG9ydCB7IFZhcmlhYmxlc1NlcnZpY2UgfSBmcm9tICdAd20vdmFyaWFibGVzJztcblxuaW1wb3J0IHsgRnJhZ21lbnRNb25pdG9yIH0gZnJvbSAnLi4vdXRpbC9mcmFnbWVudC1tb25pdG9yJztcbmltcG9ydCB7IEFwcE1hbmFnZXJTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvYXBwLm1hbmFnZXIuc2VydmljZSc7XG5pbXBvcnQge2NvbW1vblBhcnRpYWxXaWRnZXRzfSBmcm9tIFwiLi9iYXNlLXBhcnRpYWwuY29tcG9uZW50XCI7XG5cbmRlY2xhcmUgY29uc3QgXztcblxuLy8gZXhwb3J0IGNvbnN0IGNvbW1vblBhcnRpYWxXaWRnZXRzID0ge307XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VDdXN0b21XaWRnZXRDb21wb25lbnQgZXh0ZW5kcyBGcmFnbWVudE1vbml0b3IgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICAgIFdpZGdldHM6IGFueTtcbiAgICBCYXNlV2lkZ2V0OiBhbnkgPSB7fTtcbiAgICBWYXJpYWJsZXM6IGFueTtcbiAgICBBY3Rpb25zOiBhbnk7XG4gICAgQXBwOiBBcHA7XG4gICAgaW5qZWN0b3I6IEluamVjdG9yO1xuICAgIGN1c3RvbVdpZGdldE5hbWU6IHN0cmluZztcbiAgICBhY3RpdmVQYWdlTmFtZTogc3RyaW5nO1xuICAgIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZTtcbiAgICBhcHBNYW5hZ2VyOiBBcHBNYW5hZ2VyU2VydmljZTtcbiAgICBuYXZpZ2F0aW9uU2VydmljZTogQWJzdHJhY3ROYXZpZ2F0aW9uU2VydmljZTtcbiAgICByb3V0ZXI6IFJvdXRlcjtcbiAgICBwYWdlUGFyYW1zOiBhbnk7XG4gICAgY29udGFpbmVyV2lkZ2V0OiBhbnk7XG4gICAgaTE4blNlcnZpY2U6IEFic3RyYWN0STE4blNlcnZpY2U7XG4gICAgYXBwTG9jYWxlOiBhbnk7XG4gICAgLy8gQFZpZXdDaGlsZChQYXJ0aWFsRGlyZWN0aXZlKSBwYXJ0aWFsRGlyZWN0aXZlO1xuICAgIHBhZ2VEaXJlY3RpdmU6IFBhZ2VEaXJlY3RpdmUgfCBTcGFQYWdlRGlyZWN0aXZlO1xuICAgIFByZWZhYjogUHJlZmFiRGlyZWN0aXZlO1xuICAgIHNjcmlwdExvYWRlclNlcnZpY2U6IFNjcmlwdExvYWRlclNlcnZpY2U7XG4gICAgVmlld3BvcnQ6IFZpZXdwb3J0O1xuICAgIGNvbXBpbGVDb250ZW50ID0gZmFsc2U7XG4gICAgc3BhOiBib29sZWFuO1xuICAgIGV2ZW50czogYW55O1xuXG4gICAgZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xuICAgIHZpZXdJbml0JCA9IG5ldyBTdWJqZWN0KCk7XG4gICAgcHJpdmF0ZSB2aWV3UGFyZW50OiBhbnk7XG5cbiAgICBhYnN0cmFjdCBldmFsVXNlclNjcmlwdChwcmVmYWJDb250ZXh0OiBhbnksIGFwcENvbnRleHQ6IGFueSwgdXRpbHM6IGFueSk7XG5cbiAgICBhYnN0cmFjdCBnZXRWYXJpYWJsZXMoKTtcbiAgICBhYnN0cmFjdCBnZXRFeHByZXNzaW9ucygpO1xuXG4gICAgZ2V0Q29udGFpbmVyV2lkZ2V0SW5qZWN0b3IoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRhaW5lcldpZGdldC5pbmogfHwgdGhpcy5jb250YWluZXJXaWRnZXQuaW5qZWN0b3I7XG4gICAgfVxuXG4gICAgaW5pdCgpIHtcbiAgICAgICAgbGV0IHJlc29sdmVGbjogRnVuY3Rpb247XG4gICAgICAgIGNvbnN0IHByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzKT0+IHJlc29sdmVGbiA9IHJlcylcbiAgICAgICAgdGhpcy5BcHAgPSB0aGlzLmluamVjdG9yID8gdGhpcy5pbmplY3Rvci5nZXQoQXBwKSA6IGluamVjdChBcHApO1xuICAgICAgICAvL21ha2luZyB0aGUgY29kZSBjb21wYXRpYmxlIGluIGJvdGggdGhlIEpJVCBhbmQgQU9UIG1vZGVzXG4gICAgICAgIHRoaXMuY29udGFpbmVyV2lkZ2V0ID0gdGhpcy5pbmplY3RvciA/IHRoaXMuaW5qZWN0b3IuZ2V0KFdpZGdldFJlZikgOiBpbmplY3QoV2lkZ2V0UmVmKTtcbiAgICAgICAgdGhpcy5pMThuU2VydmljZSA9IHRoaXMuaW5qZWN0b3IgPyB0aGlzLmluamVjdG9yLmdldChBYnN0cmFjdEkxOG5TZXJ2aWNlKSA6IGluamVjdChBYnN0cmFjdEkxOG5TZXJ2aWNlKTtcbiAgICAgICAgdGhpcy5zY3JpcHRMb2FkZXJTZXJ2aWNlID0gdGhpcy5pbmplY3RvciA/IHRoaXMuaW5qZWN0b3IuZ2V0KFNjcmlwdExvYWRlclNlcnZpY2UpIDogaW5qZWN0KFNjcmlwdExvYWRlclNlcnZpY2UpO1xuICAgICAgICB0aGlzLlZpZXdwb3J0ID0gdGhpcy5pbmplY3RvciA/IHRoaXMuaW5qZWN0b3IuZ2V0KFZpZXdwb3J0KSA6IGluamVjdChWaWV3cG9ydCk7XG4gICAgICAgIC8vIHRoaXMudmlld0NvbnRhaW5lclJlZiA9IHRoaXMuZ2V0Q29udGFpbmVyV2lkZ2V0SW5qZWN0b3IoKS5nZXQoVmlld0NvbnRhaW5lclJlZik7XG4gICAgICAgIC8vIFJlcGxhY2luZyB0aGlzLmdldENvbnRhaW5lcldpZGdldEluamVjdG9yKCkudmlldy5jb21wb25lbnQgYXMgdmlld1BhcmVudFxuICAgICAgICAvLyB0aGlzLnZpZXdQYXJlbnQgPSAodGhpcy52aWV3Q29udGFpbmVyUmVmIGFzIGFueSkucGFyZW50SW5qZWN0b3IuX2xWaWV3WzhdO1xuICAgICAgICB0aGlzLnZpZXdQYXJlbnQgPSB0aGlzLmNvbnRhaW5lcldpZGdldC52aWV3UGFyZW50O1xuXG4gICAgICAgIGlmICh0aGlzLnZpZXdQYXJlbnQucmVnaXN0ZXJGcmFnbWVudCkge1xuICAgICAgICAgICAgdGhpcy52aWV3UGFyZW50LnJlZ2lzdGVyRnJhZ21lbnQoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHJlZ2lzdGVyIGZ1bmN0aW9ucyBmb3IgYmluZGluZyBldmFsdWF0aW9uXG4gICAgICAgIHRoaXMucmVnaXN0ZXJFeHByZXNzaW9ucygpO1xuICAgICAgICB0aGlzLmluaXRVc2VyU2NyaXB0KCk7XG4gICAgICAgIHRoaXMucmVnaXN0ZXJQcm9wcyhyZXNvbHZlRm4pO1xuICAgICAgICAvLyBVc2luZyBwcm9taXNlIHRvIG1ha2Ugc3VyZSB0aGUgcHJvcHMgYXJlIHJlZ2lzdGVyZWQgaW4gdGhlIGNvbnRhaW5lciB3aWRnZXQgYmVmb3JlIHJlZ2lzdGVyaW5nIGV2ZW50cywgT3RoZXJ3aXNlIG5vIGV2ZW50cyB3aWxsIGJlIHJlZ2lzdGVyZWRcbiAgICAgICAgcHJvbWlzZS50aGVuKCgpID0+IHRoaXMucmVnaXN0ZXJFdmVudHMoKSk7XG5cbiAgICAgICAgdGhpcy5yZWdpc3RlcldpZGdldHMoKTtcbiAgICAgICAgdGhpcy5pbml0VmFyaWFibGVzKCk7XG5cbiAgICAgICAgdGhpcy5hY3RpdmVQYWdlTmFtZSA9IHRoaXMuQXBwLmFjdGl2ZVBhZ2VOYW1lOyAvLyBUb2RvOiByZW1vdmUgdGhpc1xuICAgICAgICB0aGlzLnJlZ2lzdGVyUGFnZVBhcmFtcygpO1xuICAgICAgICB0aGlzLmRlZmluZUkxOG5Qcm9wcygpO1xuXG4gICAgICAgIHRoaXMudmlld0luaXQkLnN1YnNjcmliZShub29wLCBub29wLCAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnBhZ2VQYXJhbXMgPSB0aGlzLmNvbnRhaW5lcldpZGdldC5wcm9wcztcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYodGhpcy5zcGEpIHtcbiAgICAgICAgICAgIHRoaXMucGFnZURpcmVjdGl2ZSA9IHRoaXMuaW5qZWN0b3IgPyB0aGlzLmluamVjdG9yLmdldChTcGFQYWdlRGlyZWN0aXZlKSA6IGluamVjdChTcGFQYWdlRGlyZWN0aXZlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucGFnZURpcmVjdGl2ZSA9IHRoaXMuaW5qZWN0b3IgPyB0aGlzLmluamVjdG9yLmdldChQYWdlRGlyZWN0aXZlKSA6IGluamVjdChQYWdlRGlyZWN0aXZlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5wYWdlRGlyZWN0aXZlKSB7XG4gICAgICAgICAgICB0aGlzLnJlZ2lzdGVyRGVzdHJveUxpc3RlbmVyKHRoaXMucGFnZURpcmVjdGl2ZS5zdWJzY3JpYmUoJ2F0dGFjaCcsIGRhdGEgPT4gdGhpcy5uZ09uQXR0YWNoKGRhdGEucmVmcmVzaERhdGEpKSk7XG4gICAgICAgICAgICB0aGlzLnJlZ2lzdGVyRGVzdHJveUxpc3RlbmVyKHRoaXMucGFnZURpcmVjdGl2ZS5zdWJzY3JpYmUoJ2RldGFjaCcsICgpID0+IHRoaXMubmdPbkRldGFjaCgpKSk7XG4gICAgICAgIH1cbiAgICAgICAgc3VwZXIuaW5pdCgpO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyV2lkZ2V0cygpIHtcbiAgICAgICAgLy8gY29tbW9uIHBhcnRpYWwgd2lkZ2V0cyBzaG91bGQgYmUgYWNjZXNzaWJsZSBmcm9tIHBhZ2VcbiAgICAgICAgdGhpcy5XaWRnZXRzID0gT2JqZWN0LmNyZWF0ZShjb21tb25QYXJ0aWFsV2lkZ2V0cyk7XG5cbiAgICAgICAgLy8gZXhwb3NlIGN1cnJlbnQgcGFnZSB3aWRnZXRzIG9uIGFwcFxuICAgICAgICAodGhpcy5BcHAgYXMgYW55KS5XaWRnZXRzID0gT2JqZWN0LmNyZWF0ZSh0aGlzLldpZGdldHMpO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyQmFzZVdpZGdldCgpIHtcbiAgICAgICAgZm9yKGxldCB3aWRnZXQgaW4gdGhpcy5XaWRnZXRzKSB7XG4gICAgICAgICAgICBsZXQgd2lkZ2V0SW5zdGFuY2UgPSB0aGlzLldpZGdldHNbd2lkZ2V0XTtcbiAgICAgICAgICAgIGlmKHdpZGdldEluc3RhbmNlLndpZGdldC4kYXR0cnMuaGFzKCdiYXNlLXdpZGdldCcpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5CYXNlV2lkZ2V0ID0gd2lkZ2V0SW5zdGFuY2U7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpbnZva2VFdmVudCA9IChldmVudE5hbWU6IHN0cmluZykgPT4ge1xuICAgICAgICB0aGlzLmV2ZW50c1tldmVudE5hbWVdKCk7XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJFdmVudHMoKSB7XG4gICAgICAgIHRoaXMuZXZlbnRzID0ge307XG4gICAgICAgIHRoaXMuY29udGFpbmVyV2lkZ2V0LmV2ZW50SGFuZGxlcnMuZm9yRWFjaCgoY2FsbGJhY2s6IGFueSwga2V5OiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZXZlbnRzW2tleV0gPSAoLi4uYXJncykgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuY29udGFpbmVyV2lkZ2V0Lmludm9rZUV2ZW50Q2FsbGJhY2soa2V5LCB7JGV2ZW50OiBhcmdzWzBdLCAkZGF0YTogYXJnc1sxXX0pO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJEZXN0cm95TGlzdGVuZXIoZm46IEZ1bmN0aW9uKSB7XG4gICAgICAgIHRoaXMuZGVzdHJveSQuc3Vic2NyaWJlKG5vb3AsIG5vb3AsICgpID0+IGZuKCkpO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyQ2hhbmdlTGlzdGVuZXJzKCkge1xuICAgICAgICB0aGlzLmNvbnRhaW5lcldpZGdldC5yZWdpc3RlclByb3BlcnR5Q2hhbmdlTGlzdGVuZXIodGhpcy5vblByb3BlcnR5Q2hhbmdlKTtcbiAgICAgICAgdGhpcy5jb250YWluZXJXaWRnZXQucmVnaXN0ZXJTdHlsZUNoYW5nZUxpc3RlbmVyKHRoaXMub25Qcm9wZXJ0eUNoYW5nZSk7XG4gICAgfVxuXG4gICAgaW5pdFVzZXJTY3JpcHQoKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICAvLyBwYXJ0aWFscyBpbnNpZGUgcHJlZmFiIHNob3VsZCBoYXZlIGFjY2VzcyB0byBQcmVmYWIgcHJvcGVydGllcyBhbmQgZXZlbnRzXG4gICAgICAgICAgICBpZiAodGhpcy52aWV3UGFyZW50LnByZWZhYk5hbWUpIHtcbiAgICAgICAgICAgICAgICAvLyBmb3IgcGFydGlhbCB3aXRoaW4gcGFydGlhbCB3aXRoaW4gcHJlZmFicywganVzdCBhc3NpZ24gdGhlIHBhcmVudCBwYXJ0aWFsJ3MgcHJlZmFiIG9iamVjdFxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnZpZXdQYXJlbnQuUHJlZmFiKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuUHJlZmFiID0gdGhpcy52aWV3UGFyZW50LlByZWZhYjtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLlByZWZhYiA9IHRoaXMudmlld1BhcmVudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmV2YWxVc2VyU2NyaXB0KHRoaXMsIHRoaXMuQXBwLCB0aGlzLmluamVjdG9yID8gdGhpcy5pbmplY3Rvci5nZXQoVXRpbHNTZXJ2aWNlKSA6IGluamVjdChVdGlsc1NlcnZpY2UpKTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihgRXJyb3IgaW4gZXZhbHVhdGluZyBwYXJ0aWFsICgke3RoaXMuY3VzdG9tV2lkZ2V0TmFtZX0pIHNjcmlwdFxcbmAsIGUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaW5pdFZhcmlhYmxlcygpIHtcbiAgICAgICAgY29uc3QgdmFyaWFibGVzU2VydmljZSA9IHRoaXMuaW5qZWN0b3IgPyB0aGlzLmluamVjdG9yLmdldChWYXJpYWJsZXNTZXJ2aWNlKSA6IGluamVjdChWYXJpYWJsZXNTZXJ2aWNlKTtcblxuICAgICAgICAvLyBnZXQgdmFyaWFibGVzIGFuZCBhY3Rpb25zIGluc3RhbmNlcyBmb3IgdGhlIHBhZ2VcbiAgICAgICAgY29uc3QgdmFyaWFibGVDb2xsZWN0aW9uID0gdmFyaWFibGVzU2VydmljZS5yZWdpc3Rlcih0aGlzLmN1c3RvbVdpZGdldE5hbWUsIHRoaXMuZ2V0VmFyaWFibGVzKCksIHRoaXMpO1xuXG4gICAgICAgIC8vIGNyZWF0ZSBuYW1lc3BhY2UgZm9yIFZhcmlhYmxlcyBuYWQgQWN0aW9ucyBvbiBwYWdlL3BhcnRpYWwsIHdoaWNoIGluaGVyaXRzIHRoZSBWYXJpYWJsZXMgYW5kIEFjdGlvbnMgZnJvbSBBcHAgaW5zdGFuY2VcbiAgICAgICAgdGhpcy5WYXJpYWJsZXMgPSBPYmplY3QuY3JlYXRlKHRoaXMuQXBwLlZhcmlhYmxlcyk7XG4gICAgICAgIHRoaXMuQWN0aW9ucyA9IE9iamVjdC5jcmVhdGUodGhpcy5BcHAuQWN0aW9ucyk7XG5cbiAgICAgICAgdGhpcy5jb250YWluZXJXaWRnZXQuVmFyaWFibGVzID0gdGhpcy5WYXJpYWJsZXM7XG4gICAgICAgIHRoaXMuY29udGFpbmVyV2lkZ2V0LkFjdGlvbnMgPSB0aGlzLkFjdGlvbnM7XG5cbiAgICAgICAgLy8gYXNzaWduIGFsbCB0aGUgcGFnZSB2YXJpYWJsZXMgdG8gdGhlIHBhZ2VJbnN0YW5jZVxuICAgICAgICBPYmplY3QuZW50cmllcyh2YXJpYWJsZUNvbGxlY3Rpb24uVmFyaWFibGVzKS5mb3JFYWNoKChbbmFtZSwgdmFyaWFibGVdKSA9PiB0aGlzLlZhcmlhYmxlc1tuYW1lXSA9IHZhcmlhYmxlKTtcbiAgICAgICAgT2JqZWN0LmVudHJpZXModmFyaWFibGVDb2xsZWN0aW9uLkFjdGlvbnMpLmZvckVhY2goKFtuYW1lLCBhY3Rpb25dKSA9PiB0aGlzLkFjdGlvbnNbbmFtZV0gPSBhY3Rpb24pO1xuXG5cbiAgICAgICAgdGhpcy52aWV3SW5pdCQuc3Vic2NyaWJlKG5vb3AsIG5vb3AsICgpID0+IHtcbiAgICAgICAgICAgIC8vIFRFTVA6IHRyaWdnZXJpbmcgd2F0Y2hlcnMgc28gdmFyaWFibGVzIHdhdGNoaW5nIG92ZXIgcGFyYW1zIGFyZSB1cGRhdGVkXG4gICAgICAgICAgICAkaW52b2tlV2F0Y2hlcnModHJ1ZSwgdHJ1ZSk7XG4gICAgICAgICAgICB2YXJpYWJsZUNvbGxlY3Rpb24uY2FsbGJhY2sodmFyaWFibGVDb2xsZWN0aW9uLlZhcmlhYmxlcykuY2F0Y2gobm9vcCk7XG4gICAgICAgICAgICB2YXJpYWJsZUNvbGxlY3Rpb24uY2FsbGJhY2sodmFyaWFibGVDb2xsZWN0aW9uLkFjdGlvbnMpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBmdW5jdGlvbiB0byByZWdpc3RlciBiaW5kIGV4cHJlc3Npb25zIGdlbmVyYXRlZCBpbiB0aGlzIHBhcnRpYWwgaW5zdGFuY2VcbiAgICAgKiBnZXRFeHByZXNzaW9ucyBmdW5jdGlvbiBpcyBkZWZpbmVkIGluIHRoZSBnZW5lcmF0ZWQgcGFnZS5jb21wLnRzIGZpbGVcbiAgICAgKiBAcGFyYW0gZXhwcmVzc2lvbnMsIG1hcCBvZiBiaW5kIGV4cHJlc3Npb24gdnMgZ2VuZXJhdGVkIGZ1bmN0aW9uXG4gICAgICovXG4gICAgcmVnaXN0ZXJFeHByZXNzaW9ucygpIHtcbiAgICAgICAgY29uc3QgZXhwcmVzc2lvbnMgPSB0aGlzLmdldEV4cHJlc3Npb25zKCk7XG4gICAgICAgIF8uZWFjaChleHByZXNzaW9ucywgKGZuLCBleHByKT0+e1xuICAgICAgICAgICAgcmVnaXN0ZXJGbkJ5RXhwcihleHByLCBmblswXSwgZm5bMV0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICByZWdpc3RlclBhZ2VQYXJhbXMoKSB7XG4gICAgICAgIHRoaXMucGFnZVBhcmFtcyA9IHRoaXMuY29udGFpbmVyV2lkZ2V0LnByb3BzO1xuICAgIH1cblxuICAgIGRlZmluZUkxOG5Qcm9wcygpIHtcbiAgICAgICAgdGhpcy5hcHBMb2NhbGUgPSB0aGlzLmkxOG5TZXJ2aWNlLmdldEFwcExvY2FsZSgpO1xuICAgIH1cblxuICAgIGludm9rZU9uUmVhZHkoKSB7XG4gICAgICAgIGxldCBwYXJhbXM7XG4gICAgICAgIGlmICh0aGlzLmNvbnRhaW5lcldpZGdldC51c2VyQ29tcG9uZW50UGFyYW1zKSB7XG4gICAgICAgICAgICBwYXJhbXMgPSB0aGlzLmNvbnRhaW5lcldpZGdldC51c2VyQ29tcG9uZW50UGFyYW1zO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMub25SZWFkeShwYXJhbXMpO1xuICAgICAgICBpZiAodGhpcy52aWV3UGFyZW50LnJlc29sdmVGcmFnbWVudCkge1xuICAgICAgICAgICAgdGhpcy52aWV3UGFyZW50LnJlc29sdmVGcmFnbWVudCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBsb2FkU2NyaXB0cygpIHtcbiAgICAgICAgLy8gcmV0dXJuIG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlKSA9PiB7XG4gICAgICAgIC8vICAgICBjb25zdCBzY3JpcHRzUmVxdWlyZWQgPSB0aGlzLnBhcnRpYWxEaXJlY3RpdmUuJGVsZW1lbnQuYXR0cignc2NyaXB0cy10by1sb2FkJyk7XG4gICAgICAgIC8vICAgICBpZiAoc2NyaXB0c1JlcXVpcmVkKSB7XG4gICAgICAgIC8vICAgICAgICAgdGhpcy5zY3JpcHRMb2FkZXJTZXJ2aWNlXG4gICAgICAgIC8vICAgICAgICAgICAgIC5sb2FkKC4uLnNjcmlwdHNSZXF1aXJlZC5zcGxpdCgnLCcpKVxuICAgICAgICAvLyAgICAgICAgICAgICAudGhlbihyZXNvbHZlKTtcbiAgICAgICAgLy8gICAgIH0gZWxzZSB7XG4gICAgICAgIC8vICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAvLyAgICAgfVxuICAgICAgICAvLyB9KTtcbiAgICB9XG4gICAgcmVnaXN0ZXJQcm9wcyhyZXNvbHZlRm46IEZ1bmN0aW9uKSB7XG4gICAgICAgIHdpbmRvd1sncmVzb3VyY2VDYWNoZSddLmdldChgLi9jdXN0b20td2lkZ2V0cy8ke3RoaXMuY3VzdG9tV2lkZ2V0TmFtZX0vcGFnZS5taW4uanNvbmApLnRoZW4oKHsgY29uZmlnIH0pID0+IHtcbiAgICAgICAgICAgIGlmIChjb25maWcpIHtcbiAgICAgICAgICAgICAgICBPYmplY3QuZW50cmllcygoY29uZmlnLnByb3BlcnRpZXMgfHwge30pKS5mb3JFYWNoKChba2V5LCBwcm9wXTogW3N0cmluZywgYW55XSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBsZXQgZXhwcjtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBfLnRyaW0ocHJvcC52YWx1ZSk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKF8uc3RhcnRzV2l0aCh2YWx1ZSwgJ2JpbmQ6JykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4cHIgPSB2YWx1ZS5yZXBsYWNlKCdiaW5kOicsICcnKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCBrZXksIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGdldDogKCkgPT4gdGhpcy5jb250YWluZXJXaWRnZXRba2V5XSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldDogbnYgPT4gdGhpcy5jb250YWluZXJXaWRnZXQud2lkZ2V0W2tleV0gPSBudlxuICAgICAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoZXhwcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy9bVG9kby1DU1BdOiBleHByIHdpbGwgYmUgZ2VuZXJhdGVkIHdpdGggcHJlZmFiLmNvbXAuZXhwci50c1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWdpc3RlckRlc3Ryb3lMaXN0ZW5lcihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkd2F0Y2goZXhwciwgdGhpcywge30sIG52ID0+IHRoaXMuY29udGFpbmVyV2lkZ2V0LndpZGdldFtrZXldID0gbnYpXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuY29udGFpbmVyV2lkZ2V0LnNldFByb3BzKGNvbmZpZywgcmVzb2x2ZUZuKTtcbiAgICAgICAgICAgIC8vIFJlYXNzaWduaW5nIHRoZSBwcm94eSBoYW5kbGVyIGZvciBwcmVmYWIgaW5ib3VuZCBwcm9wZXJ0aWVzIGFzIHdlXG4gICAgICAgICAgICAvLyB3aWxsIGdldCB0aGVtIG9ubHkgYWZ0ZXIgdGhlIHByZWZhYiBjb25maWcgY2FsbC5cbiAgICAgICAgICAgIGlmIChpc0lFKCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbnRhaW5lcldpZGdldC53aWRnZXQgPSB0aGlzLmNvbnRhaW5lcldpZGdldC5jcmVhdGVQcm94eSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KVxuICAgIH1cblxuICAgIG11dGUoKSB7XG4gICAgICAgIGNvbnN0IG0gPSBvID0+IHsgbyAmJiBvLm11dGUgJiYgby5tdXRlKCk7IH07XG4gICAgICAgIF8uZWFjaCh0aGlzLldpZGdldHMsIG0pO1xuICAgICAgICBfLmVhY2godGhpcy5WYXJpYWJsZXMsIG0pO1xuICAgICAgICBfLmVhY2godGhpcy5BY3Rpb25zLCBtKTtcbiAgICB9XG5cbiAgICB1bm11dGUoKSB7XG4gICAgICAgIGNvbnN0IHVtID0gbyA9PiB7IG8gJiYgby51bm11dGUgJiYgby51bm11dGUoKTsgfTtcbiAgICAgICAgXy5lYWNoKHRoaXMuV2lkZ2V0cywgdW0pO1xuICAgICAgICBfLmVhY2godGhpcy5WYXJpYWJsZXMsIHVtKTtcbiAgICAgICAgXy5lYWNoKHRoaXMuQWN0aW9ucywgdW0pO1xuICAgIH1cblxuICAgIC8vIG5nT25Jbml0KCkge1xuICAgIC8vICAgICB0aGlzLmluaXQoKTtcbiAgICAvLyB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIC8vIHRoaXMubG9hZFNjcmlwdHMoKS50aGVuKCgpID0+IHtcbiAgICAgICAgLy8gICAgIHRoaXMuY29tcGlsZUNvbnRlbnQgPSB0cnVlO1xuICAgICAgICAvLyAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIC8vICAgICAgICAgdGhpcy52aWV3SW5pdCQuY29tcGxldGUoKTtcblxuICAgICAgICAvLyAgICAgICAgIHRoaXMuZnJhZ21lbnRzTG9hZGVkJC5zdWJzY3JpYmUobm9vcCwgbm9vcCwgKCkgPT4gdGhpcy5pbnZva2VPblJlYWR5KCkpO1xuXG4gICAgICAgIC8vICAgICB9LCAxMDApO1xuICAgICAgICAvLyB9KTtcbiAgICAgICAgdGhpcy5yZWdpc3RlckNoYW5nZUxpc3RlbmVycygpO1xuICAgICAgICB0aGlzLnJlZ2lzdGVyQmFzZVdpZGdldCgpO1xuICAgICAgICB0aGlzLmludm9rZU9uUmVhZHkoKVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgbmdPbkF0dGFjaChyZWZyZXNoRGF0YSkge1xuICAgICAgICB0aGlzLnVubXV0ZSgpO1xuICAgICAgICBpZiAocmVmcmVzaERhdGEpIHtcbiAgICAgICAgICAgIGNvbnN0IHJlZnJlc2ggPSB2ID0+IHsgdiAmJiB2LnN0YXJ0VXBkYXRlICYmIHYuaW52b2tlICYmIHYuaW52b2tlKCk7IH07XG4gICAgICAgICAgICBfLmVhY2godGhpcy5WYXJpYWJsZXMsIHJlZnJlc2gpO1xuICAgICAgICAgICAgXy5lYWNoKHRoaXMuQWN0aW9ucywgcmVmcmVzaCk7XG4gICAgICAgIH1cbiAgICAgICAgXy5lYWNoKHRoaXMuV2lkZ2V0cywgdyA9PiB3ICYmIHcubmdPbkF0dGFjaCAmJiB3Lm5nT25BdHRhY2goKSk7XG4gICAgfVxuXG4gICAgbmdPbkRldGFjaCgpIHtcbiAgICAgICAgdGhpcy5tdXRlKCk7XG4gICAgICAgIF8uZWFjaCh0aGlzLldpZGdldHMsIHcgPT4gdyAmJiB3Lm5nT25EZXRhY2ggJiYgdy5uZ09uRGV0YWNoKCkpO1xuICAgIH1cblxuICAgIC8vIHVzZXIgb3ZlcnJpZGVzIHRoaXNcbiAgICBvblByb3BlcnR5Q2hhbmdlKCkgeyB9XG5cbiAgICBvblJlYWR5KHBhcmFtcz8pIHtcbiAgICB9XG59XG4iXX0=
@@ -3,6 +3,7 @@ export * from './services/app.manager.service';
3
3
  export * from './services/prefab-manager.service';
4
4
  export * from './components/base-page.component';
5
5
  export * from './components/base-partial.component';
6
+ export * from './components/base-custom-widget.component';
6
7
  export * from './components/base-prefab.component';
7
8
  export * from './components/base-layout.component';
8
9
  export * from './components/base-spa-page.component';
@@ -42,4 +43,4 @@ export * from './services/toaster.service';
42
43
  export * from './types/types';
43
44
  export * from './util/fragment-monitor';
44
45
  export * from './util/utils';
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3J1bnRpbWUtYmFzZS9zcmMvcHVibGljX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLHNDQUFzQyxDQUFBO0FBQ3BELE9BQU8sRUFDSCxhQUFhLEVBQ2IsZ0JBQWdCLEVBQ2hCLHVDQUF1QyxFQUN2QyxpQkFBaUIsRUFDakIsbUJBQW1CLEVBQ3RCLE1BQU0sdUJBQXVCLENBQUM7QUFDL0IsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLG1EQUFtRCxDQUFDO0FBQ2xFLGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLCtCQUErQixDQUFDO0FBQzlDLE9BQU8sRUFDSCxNQUFNLEVBQ1QsTUFBTSx3QkFBd0IsQ0FBQztBQUNoQyxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELE9BQU8sRUFDSCxrQ0FBa0MsRUFDckMsTUFBTSxtREFBbUQsQ0FBQztBQUMzRCxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMseUJBQXlCLENBQUE7QUFDdkMsT0FBTyxFQUNILG9CQUFvQixFQUN2QixNQUFNLG1DQUFtQyxDQUFDO0FBQzNDLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUHJlZmFiTWFuYWdlclNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL3ByZWZhYi1tYW5hZ2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgQXBwUmVmIH0gZnJvbSAnLi9zZXJ2aWNlcy9hcHAuc2VydmljZSc7XG5pbXBvcnQgeyBEeW5hbWljQ29tcG9uZW50UmVmUHJvdmlkZXJTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9keW5hbWljLWNvbXBvbmVudC1yZWYtcHJvdmlkZXIuc2VydmljZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vdHlwZXMvdHlwZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9hcHAubWFuYWdlci5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvcHJlZmFiLW1hbmFnZXIuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvYmFzZS1wYWdlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvYmFzZS1wYXJ0aWFsLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvYmFzZS1wcmVmYWIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9iYXNlLWxheW91dC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL2Jhc2Utc3BhLXBhZ2UuY29tcG9uZW50J1xuZXhwb3J0IHtcbiAgICBJbml0aWFsaXplQXBwLFxuICAgIHNldEFuZ3VsYXJMb2NhbGUsXG4gICAgUkVRVUlSRURfTU9EVUxFU19GT1JfRFlOQU1JQ19DT01QT05FTlRTLFxuICAgIFJ1bnRpbWVCYXNlTW9kdWxlLFxuICAgIFdNX01PRFVMRVNfRk9SX1JPT1Rcbn0gZnJvbSAnLi9ydW50aW1lLWJhc2UubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vdXRpbC91dGlscyc7XG5leHBvcnQgKiBmcm9tICcuL2d1YXJkcy9hdXRoLmd1YXJkJztcbmV4cG9ydCAqIGZyb20gJy4vZ3VhcmRzL3JvbGUuZ3VhcmQnO1xuZXhwb3J0ICogZnJvbSAnLi9ndWFyZHMvcGFnZS1ub3QtZm91bmQuZ3VhcmQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL2FwcC1jb21wb25lbnQvYXBwLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvZW1wdHktY29tcG9uZW50L2VtcHR5LXBhZ2UuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9wcmVmYWItcHJldmlldy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9yZXNvbHZlcy9hcHAtanMucmVzb2x2ZSc7XG5leHBvcnQgKiBmcm9tICcuL3Jlc29sdmVzL2FwcC1leHRlbnNpb24ucmVzb2x2ZSc7XG5leHBvcnQgKiBmcm9tICcuL3Jlc29sdmVzL2FwcC12YXJpYWJsZXMucmVzb2x2ZSc7XG5leHBvcnQgKiBmcm9tICcuL3Jlc29sdmVzL2kxOG4ucmVzb2x2ZSc7XG5leHBvcnQgKiBmcm9tICcuL3Jlc29sdmVzL21ldGFkYXRhLnJlc29sdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9yZXNvbHZlcy9zZWN1cml0eS1jb25maWcucmVzb2x2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2d1YXJkcy9jYW4tZGVhY3RpdmF0ZS1wYWdlLmd1YXJkJztcbmV4cG9ydCAqIGZyb20gJy4vdXRpbC93bS1yb3V0ZS1yZXVzZS1zdHJhdGVneSc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvYXBwLXNwaW5uZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9iYXNlLXBhZ2UuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9iYXNlLXBhcnRpYWwuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9jdXN0b20tdG9hc3Rlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9kaXJlY3RpdmVzL2FjY2Vzc3JvbGVzLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2RpcmVjdGl2ZXMvcHJlZmFiLmRpcmVjdGl2ZSc7XG5leHBvcnQge1xuICAgIEFwcFJlZlxufSBmcm9tICcuL3NlcnZpY2VzL2FwcC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvYXBwLWRlZmF1bHRzLnNlcnZpY2UnO1xuZXhwb3J0IHtcbiAgICBEeW5hbWljQ29tcG9uZW50UmVmUHJvdmlkZXJTZXJ2aWNlXG59IGZyb20gJy4vc2VydmljZXMvZHluYW1pYy1jb21wb25lbnQtcmVmLXByb3ZpZGVyLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9odHRwLWludGVyY2VwdG9yLnNlcnZpY2VzJztcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvaTE4bi5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvbmF2aWdhdGlvbi5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvcGlwZS1wcm92aWRlci5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvcGlwZS5zZXJ2aWNlJ1xuZXhwb3J0IHtcbiAgICBQcmVmYWJNYW5hZ2VyU2VydmljZVxufSBmcm9tICcuL3NlcnZpY2VzL3ByZWZhYi1tYW5hZ2VyLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9zcGlubmVyLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy90b2FzdGVyLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi90eXBlcy90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL3V0aWwvZnJhZ21lbnQtbW9uaXRvcic7XG5leHBvcnQgKiBmcm9tICcuL3V0aWwvdXRpbHMnO1xuIl19
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3J1bnRpbWUtYmFzZS9zcmMvcHVibGljX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsc0NBQXNDLENBQUE7QUFDcEQsT0FBTyxFQUNILGFBQWEsRUFDYixnQkFBZ0IsRUFDaEIsdUNBQXVDLEVBQ3ZDLGlCQUFpQixFQUNqQixtQkFBbUIsRUFDdEIsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQixjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsbURBQW1ELENBQUM7QUFDbEUsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsK0JBQStCLENBQUM7QUFDOUMsT0FBTyxFQUNILE1BQU0sRUFDVCxNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsT0FBTyxFQUNILGtDQUFrQyxFQUNyQyxNQUFNLG1EQUFtRCxDQUFDO0FBQzNELGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyx5QkFBeUIsQ0FBQTtBQUN2QyxPQUFPLEVBQ0gsb0JBQW9CLEVBQ3ZCLE1BQU0sbUNBQW1DLENBQUM7QUFDM0MsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQcmVmYWJNYW5hZ2VyU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvcHJlZmFiLW1hbmFnZXIuc2VydmljZSc7XG5pbXBvcnQgeyBBcHBSZWYgfSBmcm9tICcuL3NlcnZpY2VzL2FwcC5zZXJ2aWNlJztcbmltcG9ydCB7IER5bmFtaWNDb21wb25lbnRSZWZQcm92aWRlclNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2R5bmFtaWMtY29tcG9uZW50LXJlZi1wcm92aWRlci5zZXJ2aWNlJztcblxuZXhwb3J0ICogZnJvbSAnLi90eXBlcy90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL2FwcC5tYW5hZ2VyLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9wcmVmYWItbWFuYWdlci5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9iYXNlLXBhZ2UuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9iYXNlLXBhcnRpYWwuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9iYXNlLWN1c3RvbS13aWRnZXQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9iYXNlLXByZWZhYi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL2Jhc2UtbGF5b3V0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvYmFzZS1zcGEtcGFnZS5jb21wb25lbnQnXG5leHBvcnQge1xuICAgIEluaXRpYWxpemVBcHAsXG4gICAgc2V0QW5ndWxhckxvY2FsZSxcbiAgICBSRVFVSVJFRF9NT0RVTEVTX0ZPUl9EWU5BTUlDX0NPTVBPTkVOVFMsXG4gICAgUnVudGltZUJhc2VNb2R1bGUsXG4gICAgV01fTU9EVUxFU19GT1JfUk9PVFxufSBmcm9tICcuL3J1bnRpbWUtYmFzZS5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi91dGlsL3V0aWxzJztcbmV4cG9ydCAqIGZyb20gJy4vZ3VhcmRzL2F1dGguZ3VhcmQnO1xuZXhwb3J0ICogZnJvbSAnLi9ndWFyZHMvcm9sZS5ndWFyZCc7XG5leHBvcnQgKiBmcm9tICcuL2d1YXJkcy9wYWdlLW5vdC1mb3VuZC5ndWFyZCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvYXBwLWNvbXBvbmVudC9hcHAuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9lbXB0eS1jb21wb25lbnQvZW1wdHktcGFnZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL3ByZWZhYi1wcmV2aWV3LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3Jlc29sdmVzL2FwcC1qcy5yZXNvbHZlJztcbmV4cG9ydCAqIGZyb20gJy4vcmVzb2x2ZXMvYXBwLWV4dGVuc2lvbi5yZXNvbHZlJztcbmV4cG9ydCAqIGZyb20gJy4vcmVzb2x2ZXMvYXBwLXZhcmlhYmxlcy5yZXNvbHZlJztcbmV4cG9ydCAqIGZyb20gJy4vcmVzb2x2ZXMvaTE4bi5yZXNvbHZlJztcbmV4cG9ydCAqIGZyb20gJy4vcmVzb2x2ZXMvbWV0YWRhdGEucmVzb2x2ZSc7XG5leHBvcnQgKiBmcm9tICcuL3Jlc29sdmVzL3NlY3VyaXR5LWNvbmZpZy5yZXNvbHZlJztcbmV4cG9ydCAqIGZyb20gJy4vZ3VhcmRzL2Nhbi1kZWFjdGl2YXRlLXBhZ2UuZ3VhcmQnO1xuZXhwb3J0ICogZnJvbSAnLi91dGlsL3dtLXJvdXRlLXJldXNlLXN0cmF0ZWd5JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9hcHAtc3Bpbm5lci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL2Jhc2UtcGFnZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL2Jhc2UtcGFydGlhbC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL2N1c3RvbS10b2FzdGVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2RpcmVjdGl2ZXMvYWNjZXNzcm9sZXMuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vZGlyZWN0aXZlcy9wcmVmYWIuZGlyZWN0aXZlJztcbmV4cG9ydCB7XG4gICAgQXBwUmVmXG59IGZyb20gJy4vc2VydmljZXMvYXBwLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9hcHAtZGVmYXVsdHMuc2VydmljZSc7XG5leHBvcnQge1xuICAgIER5bmFtaWNDb21wb25lbnRSZWZQcm92aWRlclNlcnZpY2Vcbn0gZnJvbSAnLi9zZXJ2aWNlcy9keW5hbWljLWNvbXBvbmVudC1yZWYtcHJvdmlkZXIuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL2h0dHAtaW50ZXJjZXB0b3Iuc2VydmljZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9pMThuLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9uYXZpZ2F0aW9uLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9waXBlLXByb3ZpZGVyLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9waXBlLnNlcnZpY2UnXG5leHBvcnQge1xuICAgIFByZWZhYk1hbmFnZXJTZXJ2aWNlXG59IGZyb20gJy4vc2VydmljZXMvcHJlZmFiLW1hbmFnZXIuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL3NwaW5uZXIuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL3RvYXN0ZXIuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3R5cGVzL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vdXRpbC9mcmFnbWVudC1tb25pdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vdXRpbC91dGlscyc7XG4iXX0=
@@ -91,6 +91,7 @@ import { PopoverModule } from "@wm/components/navigation/popover";
91
91
  import { CarouselModule } from "@wm/components/advanced/carousel";
92
92
  import { LoginModule } from "@wm/components/advanced/login";
93
93
  import { MarqueeModule } from "@wm/components/advanced/marquee";
94
+ import { CustomModule } from "@wm/components/advanced/custom";
94
95
  import { BsDatepickerModule } from "ngx-bootstrap/datepicker";
95
96
  import { TimepickerModule as ngxTimepickerModule } from "ngx-bootstrap/timepicker";
96
97
  import { BsDropdownModule } from "ngx-bootstrap/dropdown";
@@ -216,6 +217,7 @@ export const REQUIRED_MODULES_FOR_DYNAMIC_COMPONENTS = [
216
217
  CarouselModule,
217
218
  LoginModule,
218
219
  MarqueeModule,
220
+ CustomModule,
219
221
  PageModule,
220
222
  FooterModule,
221
223
  HeaderModule,
@@ -410,6 +412,7 @@ export class RuntimeBaseModule {
410
412
  CarouselModule,
411
413
  LoginModule,
412
414
  MarqueeModule,
415
+ CustomModule,
413
416
  PageModule,
414
417
  FooterModule,
415
418
  HeaderModule,
@@ -540,6 +543,7 @@ export class RuntimeBaseModule {
540
543
  CarouselModule,
541
544
  LoginModule,
542
545
  MarqueeModule,
546
+ CustomModule,
543
547
  PageModule,
544
548
  FooterModule,
545
549
  HeaderModule,
@@ -624,6 +628,7 @@ export class RuntimeBaseModule {
624
628
  CarouselModule,
625
629
  LoginModule,
626
630
  MarqueeModule,
631
+ CustomModule,
627
632
  PageModule,
628
633
  FooterModule,
629
634
  HeaderModule,
@@ -641,4 +646,4 @@ export const WM_MODULES_FOR_ROOT = [
641
646
  HttpServiceModule.forRoot(),
642
647
  RuntimeBaseModule.forRoot()
643
648
  ];
644
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS1iYXNlLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3J1bnRpbWUtYmFzZS9zcmMvcnVudGltZS1iYXNlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsZUFBZSxFQUFFLFNBQVMsRUFBdUIsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMzRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM5RCxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFlBQVksQ0FBQztBQUUxQyxPQUFPLEVBQ0gsZUFBZSxFQUNmLFVBQVUsRUFDVixtQkFBbUIsRUFDbkIseUJBQXlCLEVBQ3pCLHNCQUFzQixFQUN0QixzQkFBc0IsRUFDdEIsR0FBRyxFQUNILFdBQVcsRUFDWCxVQUFVLEVBQ1YsMkJBQTJCLEVBQzNCLFFBQVEsRUFDUixRQUFRLEVBQ1IsTUFBTSxFQUNOLE1BQU0sRUFDTixRQUFRLEVBQ1IsVUFBVSxFQUNiLE1BQU0sVUFBVSxDQUFDO0FBQ2xCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1Q0FB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LFdBQVc7UUFDWCxhQUFhO1FBRWIsVUFBVTtRQUNWLFlBQVk7UUFDWixZQUFZO1FBQ1osZUFBZTtRQUNmLGdCQUFnQjtRQUNoQixZQUFZO1FBQ1osWUFBWTtBQXlKaEIsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUc7SUFDL0Isa0JBQWtCLENBQUMsT0FBTyxFQUFFO0lBQzVCLG1CQUFtQixDQUFDLE9BQU8sRUFBRTtJQUM3QixVQUFVLENBQUMsT0FBTyxFQUFFO0lBQ3BCLGNBQWMsQ0FBQyxPQUFPLEVBQUU7SUFDeEIsV0FBVyxDQUFDLE9BQU8sRUFBRTtJQUNyQixlQUFlLENBQUMsT0FBTyxFQUFFO0lBQ3pCLGlCQUFpQixDQUFDLE9BQU8sRUFBRTtJQUMzQixpQkFBaUIsQ0FBQyxPQUFPLEVBQUU7Q0FDOUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QVBQX0lOSVRJQUxJWkVSLCBMT0NBTEVfSUQsIE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUsIERhdGVQaXBlLCBEZWNpbWFsUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBIVFRQX0lOVEVSQ0VQVE9SUywgSHR0cENsaWVudE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IMm1U2hhcmVkU3R5bGVzSG9zdCB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHvJtURvbVJlbmRlcmVyRmFjdG9yeTJ9IGZyb20gXCJAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyXCI7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgVG9hc3RyTW9kdWxlIH0gZnJvbSAnbmd4LXRvYXN0cic7XG5cbmltcG9ydCB7XG4gICAgX1dNX0FQUF9QUk9KRUNULFxuICAgICRwYXJzZUV4cHIsXG4gICAgQWJzdHJhY3RJMThuU2VydmljZSxcbiAgICBBYnN0cmFjdE5hdmlnYXRpb25TZXJ2aWNlLFxuICAgIEFic3RyYWN0U3Bpbm5lclNlcnZpY2UsXG4gICAgQWJzdHJhY3RUb2FzdGVyU2VydmljZSxcbiAgICBBcHAsXG4gICAgQXBwRGVmYXVsdHMsXG4gICAgQ29yZU1vZHVsZSxcbiAgICBEeW5hbWljQ29tcG9uZW50UmVmUHJvdmlkZXIsXG4gICAgaXNPYmplY3QsXG4gICAgaXNJcGhvbmUsXG4gICAgaXNJcG9kLFxuICAgIGlzSXBhZCxcbiAgICBWaWV3cG9ydCxcbiAgICBoYXNDb3Jkb3ZhXG59IGZyb20gJ0B3bS9jb3JlJztcbmltcG9ydCB7IFdtQ29tcG9uZW50c01vZHVsZSB9IGZyb20gJ0B3bS9jb21wb25lbnRzL2Jhc2UnO1xuaW1wb3J0IHsgRGlhbG9nTW9kdWxlIH0gZnJvbSAnQHdtL2NvbXBvbmVudHMvZGlhbG9ncyc7XG5pbXBvcnQgeyBDb25maXJtRGlhbG9nTW9kdWxlIH0gZnJvbSAnQHdtL2NvbXBvbmVudHMvZGlhbG9ncy9jb25maXJtLWRpYWxvZyc7XG5pbXBvcnQgeyBEZXNpZ25EaWFsb2dNb2R1bGUgfSBmcm9tICdAd20vY29tcG9uZW50cy9kaWFsb2dzL2Rlc2lnbi1kaWFsb2cnO1xuaW1wb3J0IHsgUHJlZmFiTW9kdWxlIH0gZnJvbSAnQHdtL2NvbXBvbmVudHMvcHJlZmFiJztcbmltcG9ydCB7IE1vYmlsZVJ1bnRpbWVNb2R1bGUgfSBmcm9tICdAd20vbW9iaWxlL3J1bnRpbWUnO1xuaW1wb3J0IHsgU2VjdXJpdHlNb2R1bGUgfSBmcm9tICdAd20vc2VjdXJpdHknO1xuaW1wb3J0IHsgSHR0cFNlcnZpY2VNb2R1bGUgfSBmcm9tICdAd20vaHR0cCc7XG5pbXBvcnQgeyBWYXJpYWJsZXNNb2R1bGUgfSBmcm9tICdAd20vdmFyaWFibGVzJztcbmltcG9ydCB7IE9BdXRoTW9kdWxlIH0gZnJvbSAnQHdtL29BdXRoJztcblxuaW1wb3J0IHsgQWNjZXNzcm9sZXNEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvYWNjZXNzcm9sZXMuZGlyZWN0aXZlJztcbmltcG9ydCB7IEFwcFNwaW5uZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYXBwLXNwaW5uZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEN1c3RvbVRvYXN0ZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY3VzdG9tLXRvYXN0ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEVtcHR5UGFnZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9lbXB0eS1jb21wb25lbnQvZW1wdHktcGFnZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUHJlZmFiRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3ByZWZhYi5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQXBwUmVmIH0gZnJvbSAnLi9zZXJ2aWNlcy9hcHAuc2VydmljZSc7XG5pbXBvcnQgeyBUb2FzdGVyU2VydmljZUltcGwgfSBmcm9tICcuL3NlcnZpY2VzL3RvYXN0ZXIuc2VydmljZSc7XG5pbXBvcnQgeyBJMThuU2VydmljZUltcGwgfSBmcm9tICcuL3NlcnZpY2VzL2kxOG4uc2VydmljZSc7XG5pbXBvcnQgeyBTcGlubmVyU2VydmljZUltcGwgfSBmcm9tICcuL3NlcnZpY2VzL3NwaW5uZXIuc2VydmljZSc7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uU2VydmljZUltcGwgfSBmcm9tICcuL3NlcnZpY2VzL25hdmlnYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBQaXBlU2VydmljZSB9IGZyb20gXCIuL3NlcnZpY2VzL3BpcGUuc2VydmljZVwiO1xuaW1wb3J0IHsgQXBwRGVmYXVsdHNTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9hcHAtZGVmYXVsdHMuc2VydmljZSc7XG5pbXBvcnQgeyBBcHBNYW5hZ2VyU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvYXBwLm1hbmFnZXIuc2VydmljZSc7XG5pbXBvcnQgeyBQcmVmYWJNYW5hZ2VyU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvcHJlZmFiLW1hbmFnZXIuc2VydmljZSc7XG5pbXBvcnQgeyBBdXRoR3VhcmQgfSBmcm9tICcuL2d1YXJkcy9hdXRoLmd1YXJkJztcbmltcG9ydCB7IFJvbGVHdWFyZCB9IGZyb20gJy4vZ3VhcmRzL3JvbGUuZ3VhcmQnO1xuaW1wb3J0IHsgUGFnZU5vdEZvdW5kR3VhcmQgfSBmcm9tICcuL2d1YXJkcy9wYWdlLW5vdC1mb3VuZC5ndWFyZCc7XG5pbXBvcnQgeyBBcHBKU1Jlc29sdmUgfSBmcm9tICcuL3Jlc29sdmVzL2FwcC1qcy5yZXNvbHZlJztcbmltcG9ydCB7IEFwcEV4dGVuc2lvbkpTUmVzb2x2ZSB9IGZyb20gJy4vcmVzb2x2ZXMvYXBwLWV4dGVuc2lvbi5yZXNvbHZlJztcbmltcG9ydCB7IEkxOG5SZXNvbHZlIH0gZnJvbSAnLi9yZXNvbHZlcy9pMThuLnJlc29sdmUnO1xuaW1wb3J0IHsgQXBwQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FwcC1jb21wb25lbnQvYXBwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBIdHRwQ2FsbEludGVyY2VwdG9yIH0gZnJvbSAnLi9zZXJ2aWNlcy9odHRwLWludGVyY2VwdG9yLnNlcnZpY2VzJztcbmltcG9ydCB7IFByZWZhYlByZXZpZXdDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcHJlZmFiLXByZXZpZXcuY29tcG9uZW50JztcbmltcG9ydCB7IER5bmFtaWNDb21wb25lbnRSZWZQcm92aWRlclNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2R5bmFtaWMtY29tcG9uZW50LXJlZi1wcm92aWRlci5zZXJ2aWNlJztcbmltcG9ydCB7IENhbkRlYWN0aXZhdGVQYWdlR3VhcmQgfSBmcm9tICcuL2d1YXJkcy9jYW4tZGVhY3RpdmF0ZS1wYWdlLmd1YXJkJztcbmltcG9ydCB7IE1BWF9DQUNIRV9BR0UsIE1BWF9DQUNIRV9TSVpFIH0gZnJvbSAnLi91dGlsL3dtLXJvdXRlLXJldXNlLXN0cmF0ZWd5JztcblxuLy9hbmd1bGFyIG92ZXJyaWRlc1xuaW1wb3J0IHsgV01Eb21TaGFyZWRTdHlsZXNIb3N0IH0gZnJvbSBcIi4vb3ZlcnJpZGVzL3dtX3NoYXJlZF9zdHlsZXNfaG9zdFwiO1xuaW1wb3J0IHsgV01Eb21SZW5kZXJlckZhY3RvcnkyIH0gZnJvbSBcIi4vb3ZlcnJpZGVzL3dtX2RvbV9yZW5kZXJlclwiO1xuaW1wb3J0IHtQYWdlTW9kdWxlfSBmcm9tIFwiQHdtL2NvbXBvbmVudHMvcGFnZVwiO1xuaW1wb3J0IHtGb290ZXJNb2R1bGV9IGZyb20gXCJAd20vY29tcG9uZW50cy9wYWdlL2Zvb3RlclwiO1xuaW1wb3J0IHtIZWFkZXJNb2R1bGV9IGZyb20gXCJAd20vY29tcG9uZW50cy9wYWdlL2hlYWRlclwiO1xuaW1wb3J0IHtMZWZ0UGFuZWxNb2R1bGV9IGZyb20gXCJAd20vY29tcG9uZW50cy9wYWdlL2xlZnQtcGFuZWxcIjtcbmltcG9ydCB7UmlnaHRQYW5lbE1vZHVsZX0gZnJvbSBcIkB3bS9jb21wb25lbnRzL3BhZ2UvcmlnaHQtcGFuZWxcIjtcbmltcG9ydCB7VG9wTmF2TW9kdWxlfSBmcm9tIFwiQHdtL2NvbXBvbmVudHMvcGFnZS90b3AtbmF2XCI7XG5pbXBvcnQge0Jhc2ljTW9kdWxlfSBmcm9tIFwiQHdtL2NvbXBvbmVudHMvYmFzaWNcIjtcbmltcG9ydCB7UHJvZ3Jlc3NNb2R1bGV9IGZyb20gXCJAd20vY29tcG9uZW50cy9iYXNpYy9wcm9ncmVzc1wiO1xuaW1wb3J0IHtSaWNoVGV4dEVkaXRvck1vZHVsZX0gZnJvbSBcIkB3bS9jb21wb25lbnRzL2Jhc2ljL3JpY2gtdGV4dC1lZGl0b3JcIjtcbmltcG9ydCB7U2VhcmNoTW9kdWxlfSBmcm9tIFwiQHdtL2NvbXBvbmVudHMvYmFzaWMvc2VhcmNoXCI7XG5pbXBvcnQge1RyZWVNb2R1bGV9IGZyb20gXCJAd20vY29tcG9uZW50cy9iYXNpYy90cmVlXCI7XG5pbXBvcnQge0NhbGVuZGFyTW9kdWxlfSBmcm9tIFwiQHdtL2NvbXBvbmVudHMvaW5wdXQvY2FsZW5kYXJcIjtcbmltcG9ydCB7Q2hpcHNNb2R1bGV9IGZyb20gXCJAd20vY29tcG9uZW50cy9pbnB1dC9jaGlwc1wiO1xuaW1wb3J0IHtDb2xvclBpY2tlck1vZHVsZX0gZnJvbSBcIkB3bS9jb21wb25lbnRzL2lucHV0L2NvbG9yLXBpY2tlclwiO1xuaW1wb3J0IHtDdXJyZW5jeU1vZHVsZX0gZnJvbSBcIkB3bS9jb21wb25lbnRzL2lucHV0L2N1cnJlbmN5XCI7XG5pbXBvcnQge0Vwb2NoTW9kdWxlfSBmcm9tIFwiQHdtL2NvbXBvbmVudHMvaW5wdXQvZXBvY2hcIjtcbmltcG9ydCB7RmlsZVVwbG9hZE1vZHVsZX0gZnJvbSBcIkB3bS9jb21wb25lbnRzL2lucHV0L2ZpbGUtdXBsb2FkXCI7XG5pbXBvcnQge0lucHV0TW9kdWxlfSBmcm9tIFwiQHdtL2NvbXBvbmVudHMvaW5wdXRcIjtcbmltcG9ydCB7UmF0aW5nTW9kdWxlfSBmcm9tIFwiQHdtL2NvbXBvbmVudHMvaW5wdXQvcmF0aW5nXCI7XG5pbXBvcnQge1NsaWRlck1vZHVsZX0gZnJvbSBcIkB3bS9jb21wb25lbnRzL2lucHV0L3NsaWRlclwiO1xuaW1wb3J0IHtDYXJkTW9kdWxlfSBmcm9tIFwiQHdtL2NvbXBvbmVudHMvZGF0YS9jYXJkXCI7XG5pbXBvcnQge0Zvcm1Nb2R1bGV9IGZyb20gXCJAd20vY29tcG9uZW50cy9kYXRhL2Zvcm1cIjtcbmltcG9ydCB7TGlzdE1vZHVsZX0gZnJvbSBcIkB3bS9jb21wb25lbnRzL2RhdGEvbGlzdFwiO1xuaW1wb3J0IHtMaXZlVGFibGVNb2R1bGV9IGZyb20gXCJAd20vY29tcG9uZW50cy9kYXRhL2xpdmUtdGFibGVcIjtcbmltcG9ydCB7UGFnaW5hdGlvbk1vZHVsZX0gZnJvbSBcIkB3bS9jb21wb25lbnRzL2RhdGEvcGFnaW5hdGlvblwiO1xuaW1wb3J0IHtUYWJsZU1vZHVsZX0gZnJvbSBcIkB3bS9jb21wb25lbnRzL2RhdGEvdGFibGVcIjtcbmltcG9ydCB7Q2hhcnRNb2R1bGV9IGZyb20gXCJAd20vY29tcG9uZW50cy9jaGFydFwiO1xuaW1wb3J0IHtBY2NvcmRpb25Nb2R1bGV9IGZyb20gXCJAd20vY29tcG9uZW50cy9jb250YWluZXJzL2FjY29yZGlvblwiO1xuaW1wb3J0IHtMaW5lYXJMYXlvdXRNb2R1bGV9IGZyb20gXCJAd20vY29tcG9uZW50cy9jb250YWluZXJzL2xpbmVhci1sYXlvdXRcIjtcbmltcG9ydCB7TGF5b3V0R3JpZE1vZHVsZX0gZnJvbSBcIkB3bS9jb21wb25lbnRzL2NvbnRhaW5lcnMvbGF5b3V0LWdyaWRcIjtcbmltcG9ydCB7UGFuZWxNb2R1bGV9IGZyb20gXCJAd20vY29tcG9uZW50cy9jb250YWluZXJzL3BhbmVsXCI7XG5pbXBvcnQge1RhYnNNb2R1bGV9IGZyb20gXCJAd20vY29tcG9uZW50cy9jb250YWluZXJzL3RhYnNcIjtcbmltcG9ydCB7VGlsZU1vZHVsZX0gZnJvbSBcIkB3bS9jb21wb25lbnRzL2NvbnRhaW5lcnMvdGlsZVwiO1xuaW1wb3J0IHtXaXphcmRNb2R1bGV9IGZyb20gXCJAd20vY29tcG9uZW50cy9jb250YWluZXJzL3dpemFyZFwiO1xuaW1wb3J0IHtBbGVydERpYWxvZ01vZHVsZX0gZnJvbSBcIkB3bS9jb21wb25lbnRzL2RpYWxvZ3MvYWxlcnQtZGlhbG9nXCI7XG5pbXBvcnQge0lmcmFtZURpYWxvZ01vZHVsZX0gZnJvbSBcIkB3bS9jb21wb25lbnRzL2RpYWxvZ3MvaWZyYW1lLWRpYWxvZ1wiO1xuaW1wb3J0IHtMb2dpbkRpYWxvZ01vZHVsZX0gZnJvbSBcIkB3bS9jb21wb25lbnRzL2RpYWxvZ3MvbG9naW4tZGlhbG9nXCI7XG5pbXBvcnQge1BhcnRpYWxEaWFsb2dNb2R1bGV9IGZyb20gXCJAd20vY29tcG9uZW50cy9kaWFsb2dzL3BhcnRpYWwtZGlhbG9nXCI7XG5pbXBvcnQge0JyZWFkY3J1bWJNb2R1bGV9IGZyb20gXCJAd20vY29tcG9uZW50cy9uYXZpZ2F0aW9uL2JyZWFkY3J1bWJcIjtcbmltcG9ydCB7TWVudU1vZHVsZX0gZnJvbSBcIkB3bS9jb21wb25lbnRzL25hdmlnYXRpb24vbWVudVwiO1xuaW1wb3J0IHtOYXZiYXJNb2R1bGV9IGZyb20gXCJAd20vY29tcG9uZW50cy9uYXZpZ2F0aW9uL25hdmJhclwiO1xuaW1wb3J0IHtQb3BvdmVyTW9kdWxlfSBmcm9tIFwiQHdtL2NvbXBvbmVudHMvbmF2aWdhdGlvbi9wb3BvdmVyXCI7XG5pbXBvcnQge0Nhcm91c2VsTW9kdWxlfSBmcm9tIFwiQHdtL2NvbXBvbmVudHMvYWR2YW5jZWQvY2Fyb3VzZWxcIjtcbmltcG9ydCB7TG9naW5Nb2R1bGV9IGZyb20gXCJAd20vY29tcG9uZW50cy9hZHZhbmNlZC9sb2dpblwiO1xuaW1wb3J0IHtNYXJxdWVlTW9kdWxlfSBmcm9tIFwiQHdtL2NvbXBvbmVudHMvYWR2YW5jZWQvbWFycXVlZVwiO1xuaW1wb3J0IHtCc0RhdGVwaWNrZXJNb2R1bGV9IGZyb20gXCJuZ3gtYm9vdHN0cmFwL2RhdGVwaWNrZXJcIjtcbmltcG9ydCB7VGltZXBpY2tlck1vZHVsZSBhcyBuZ3hUaW1lcGlja2VyTW9kdWxlfSBmcm9tIFwibmd4LWJvb3RzdHJhcC90aW1lcGlja2VyXCI7XG5pbXBvcnQge0JzRHJvcGRvd25Nb2R1bGV9IGZyb20gXCJuZ3gtYm9vdHN0cmFwL2Ryb3Bkb3duXCI7XG5pbXBvcnQge1BhZ2luYXRpb25Nb2R1bGUgYXMgbmd4UGFnaW5hdGlvbk1vZHVsZX0gZnJvbSBcIm5neC1ib290c3RyYXAvcGFnaW5hdGlvblwiO1xuaW1wb3J0IHtUeXBlYWhlYWRNb2R1bGV9IGZyb20gXCJuZ3gtYm9vdHN0cmFwL3R5cGVhaGVhZFwiO1xuaW1wb3J0IHtQcm9ncmVzc2Jhck1vZHVsZX0gZnJvbSBcIm5neC1ib290c3RyYXAvcHJvZ3Jlc3NiYXJcIjtcbmltcG9ydCB7Q2Fyb3VzZWxNb2R1bGUgYXMgbmd4Q2Fyb3VzZWxNb2R1bGV9IGZyb20gXCJuZ3gtYm9vdHN0cmFwL2Nhcm91c2VsXCI7XG5pbXBvcnQge1BvcG92ZXJNb2R1bGUgYXMgbmd4UG9wb3Zlck1vZHVsZX0gZnJvbSBcIm5neC1ib290c3RyYXAvcG9wb3ZlclwiO1xuaW1wb3J0IHtOZ0NpcmNsZVByb2dyZXNzTW9kdWxlfSBmcm9tIFwibmctY2lyY2xlLXByb2dyZXNzXCI7XG5pbXBvcnQge1Rvb2x0aXBNb2R1bGV9IGZyb20gXCJuZ3gtYm9vdHN0cmFwL3Rvb2x0aXBcIjtcblxuZGVjbGFyZSBjb25zdCBfV01fQVBQX1BST1BFUlRJRVM7XG5cbmNvbnN0IGluaXRpYWxpemVQcm9qZWN0RGV0YWlscyA9ICgpID0+IHtcbiAgICBsZXQgY2RuVXJsID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignW25hbWU9XCJkZXBsb3lVcmxcIl0nKSAmJiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdbbmFtZT1cImRlcGxveVVybFwiXScpLmdldEF0dHJpYnV0ZSgnY29udGVudCcpO1xuICAgIC8vZm9yIHByZXZpZXdcbiAgICBpZighY2RuVXJsKSB7XG4gICAgICAgIGNkblVybCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ1tuYW1lPVwiY2RuVXJsXCJdJykgJiYgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignW25hbWU9XCJjZG5VcmxcIl0nKS5nZXRBdHRyaWJ1dGUoJ2NvbnRlbnQnKTtcbiAgICB9XG4gICAgX1dNX0FQUF9QUk9KRUNULmlkID0gaGFzQ29yZG92YSgpID8gX1dNX0FQUF9QUk9QRVJUSUVTLmRpc3BsYXlOYW1lIDogbG9jYXRpb24uaHJlZi5zcGxpdCgnLycpWzNdO1xuICAgIC8vIEludGVncmF0aW9uIHdpdGggdGhpcmQgcGFydHkgYXBwcyBsaWtlIGluIFNTUEEvV2ViQ29tcG9uZW50cywgdGhpcyBtZXRhIHRhZyB3aXRoIGNkblVybCB3aWxsIG5vdCBiZSB0aGVyZSB0aGVuIGRlZmF1bHQgaXQgdG8gbmctYnVuZGxlL1xuICAgIF9XTV9BUFBfUFJPSkVDVC5jZG5VcmwgPSBjZG5VcmwgfHwgJ25nLWJ1bmRsZS8nO1xuICAgIF9XTV9BUFBfUFJPSkVDVC5uZ0Rlc3QgPSAnbmctYnVuZGxlLyc7XG4gICAgdHJ5IHtcbiAgICAgICAgLy9AdHMtaWdub3JlXG4gICAgICAgIF9fd2VicGFja19yZXF1aXJlX18ucCA9IF9fd2VicGFja19wdWJsaWNfcGF0aF9fID0gY2RuVXJsO1xuICAgIH0gY2F0Y2goZSkge1xuICAgICAgICAvL2ZvciBhcHAgcHJldmlldyB0aGVyZSBpcyBubyB3ZWJwYWNrLiBEb24ndCBkbyBhbnl0aGluZy5cbiAgICB9XG59O1xuXG5lbnVtIE9TIHtcbiAgICBJT1MgPSAnaW9zJyxcbiAgICBBTkRST0lEID0gJ2FuZHJvaWQnXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTZXR0aW5nUHJvdmlkZXIoa2V5OiBzdHJpbmcsIGRlZmF1bHRWYWx1ZTogYW55KSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgcHJvdmlkZToga2V5LFxuICAgICAgICB1c2VWYWx1ZTogZGVmYXVsdFZhbHVlXG4gICAgfTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBJbml0aWFsaXplQXBwKEkxOG5TZXJ2aWNlLCBBcHBKU1Jlc29sdmUpIHtcbiAgICByZXR1cm4gYXN5bmMgKCkgPT4ge1xuICAgICAgICBpbml0aWFsaXplUHJvamVjdERldGFpbHMoKTtcbiAgICAgICAgYXdhaXQgQXBwSlNSZXNvbHZlLnJlc29sdmUoKTtcbiAgICAgICAgcmV0dXJuIEkxOG5TZXJ2aWNlLmxvYWREZWZhdWx0TG9jYWxlKCk7XG4gICAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldEFuZ3VsYXJMb2NhbGUoSTE4blNlcnZpY2UpIHtcbiAgICBpbml0aWFsaXplUHJvamVjdERldGFpbHMoKTtcbiAgICByZXR1cm4gSTE4blNlcnZpY2UuZGVkdWNlQXBwTG9jYWxlKCk7XG59XG5cbmNvbnN0IGRlZmluaXRpb25zID0gW1xuICAgIEFjY2Vzc3JvbGVzRGlyZWN0aXZlLFxuICAgIEFwcFNwaW5uZXJDb21wb25lbnQsXG4gICAgQ3VzdG9tVG9hc3RlckNvbXBvbmVudCxcbiAgICBQcmVmYWJEaXJlY3RpdmUsXG4gICAgQXBwQ29tcG9uZW50LFxuICAgIFByZWZhYlByZXZpZXdDb21wb25lbnQsXG4gICAgRW1wdHlQYWdlQ29tcG9uZW50XG5dO1xuXG5leHBvcnQgY29uc3QgUkVRVUlSRURfTU9EVUxFU19GT1JfRFlOQU1JQ19DT01QT05FTlRTID0gW1xuICAgIENvbmZpcm1EaWFsb2dNb2R1bGUsXG4gICAgRGVzaWduRGlhbG9nTW9kdWxlLFxuICAgIERpYWxvZ01vZHVsZSxcblxuICAgIC8vIE5HWCBCb290c3RyYXBcbiAgICBCc0RhdGVwaWNrZXJNb2R1bGUsXG4gICAgbmd4VGltZXBpY2tlck1vZHVsZSxcbiAgICBCc0Ryb3Bkb3duTW9kdWxlLFxuICAgIG5neFBhZ2luYXRpb25Nb2R1bGUsXG4gICAgVHlwZWFoZWFkTW9kdWxlLFxuICAgIFByb2dyZXNzYmFyTW9kdWxlLFxuICAgIG5neENhcm91c2VsTW9kdWxlLFxuICAgIG5neFBvcG92ZXJNb2R1bGUsXG4gICAgTmdDaXJjbGVQcm9ncmVzc01vZHVsZSxcbiAgICBUb29sdGlwTW9kdWxlLFxuXG4gICAgLy8gQmFzaWMgd2lkZ2V0c1xuICAgIEJhc2ljTW9kdWxlLFxuICAgIFByb2dyZXNzTW9kdWxlLFxuICAgIFJpY2hUZXh0RWRpdG9yTW9kdWxlLFxuICAgIFNlYXJjaE1vZHVsZSxcbiAgICBUcmVlTW9kdWxlLFxuXG4gICAgLy8gSW5wdXRcbiAgICBDYWxlbmRhck1vZHVsZSxcbiAgICBDaGlwc01vZHVsZSxcbiAgICBDb2xvclBpY2tlck1vZHVsZSxcbiAgICBDdXJyZW5jeU1vZHVsZSxcbiAgICBFcG9jaE1vZHVsZSxcbiAgICBGaWxlVXBsb2FkTW9kdWxlLFxuICAgIElucHV0TW9kdWxlLFxuICAgIFJhdGluZ01vZHVsZSxcbiAgICBTbGlkZXJNb2R1bGUsXG5cbiAgICAvLyBEYXRhXG4gICAgQ2FyZE1vZHVsZSxcbiAgICBGb3JtTW9kdWxlLFxuICAgIExpc3RNb2R1bGUsXG4gICAgTGl2ZVRhYmxlTW9kdWxlLFxuICAgIFBhZ2luYXRpb25Nb2R1bGUsXG4gICAgVGFibGVNb2R1bGUsXG5cbiAgICAvLyBjaGFydFxuICAgIENoYXJ0TW9kdWxlLFxuXG4gICAgLy8gY29udGFpbmVyIG1vZHVsZXNcbiAgICBBY2NvcmRpb25Nb2R1bGUsXG4gICAgTGluZWFyTGF5b3V0TW9kdWxlLFxuICAgIExheW91dEdyaWRNb2R1bGUsXG4gICAgUGFuZWxNb2R1bGUsXG4gICAgVGFic01vZHVsZSxcbiAgICBUaWxlTW9kdWxlLFxuICAgIFdpemFyZE1vZHVsZSxcblxuICAgIC8vIGRpYWxvZ3NcbiAgICBBbGVydERpYWxvZ01vZHVsZSxcbiAgICBJZnJhbWVEaWFsb2dNb2R1bGUsXG4gICAgTG9naW5EaWFsb2dNb2R1bGUsXG4gICAgUGFydGlhbERpYWxvZ01vZHVsZSxcblxuICAgIC8vIG5hdmlnYXRpb25cbiAgICBCcmVhZGNydW1iTW9kdWxlLFxuICAgIE1lbnVNb2R1bGUsXG4gICAgTmF2YmFyTW9kdWxlLFxuICAgIFBvcG92ZXJNb2R1bGUsXG5cbiAgICAvLyBBZHZhbmNlZFxuICAgIENhcm91c2VsTW9kdWxlLFxuICAgIExvZ2luTW9kdWxlLFxuICAgIE1hcnF1ZWVNb2R1bGUsXG5cbiAgICBQYWdlTW9kdWxlLFxuICAgIEZvb3Rlck1vZHVsZSxcbiAgICBIZWFkZXJNb2R1bGUsXG4gICAgTGVmdFBhbmVsTW9kdWxlLFxuICAgIFJpZ2h0UGFuZWxNb2R1bGUsXG4gICAgVG9wTmF2TW9kdWxlLFxuICAgIFByZWZhYk1vZHVsZVxuXTtcblxuLy8gc2V0dGluZyBwYXJzZUV4cHIgYXMgZXhwckV2YWx1YXRvciBmb3Igc3dpcGVBbmltYXRpb25cbigkLmZuIGFzIGFueSkuc3dpcGVBbmltYXRpb24uZXhwcmVzc2lvbkV2YWx1YXRvciA9ICRwYXJzZUV4cHI7XG5cbkBOZ01vZHVsZSh7XG4gICAgZGVjbGFyYXRpb25zOiBbIC4uLmRlZmluaXRpb25zIF0sXG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIFJvdXRlck1vZHVsZSxcbiAgICAgICAgSHR0cENsaWVudE1vZHVsZSxcbiAgICAgICAgRm9ybXNNb2R1bGUsXG4gICAgICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG5cbiAgICAgICAgVG9hc3RyTW9kdWxlLFxuICAgICAgICBXbUNvbXBvbmVudHNNb2R1bGUsXG4gICAgICAgIE1vYmlsZVJ1bnRpbWVNb2R1bGUsXG4gICAgICAgIENvcmVNb2R1bGUsXG4gICAgICAgIFNlY3VyaXR5TW9kdWxlLFxuICAgICAgICBPQXV0aE1vZHVsZSxcbiAgICAgICAgVmFyaWFibGVzTW9kdWxlLFxuICAgICAgICBIdHRwU2VydmljZU1vZHVsZSxcbiAgICAgICAgLi4uUkVRVUlSRURfTU9EVUxFU19GT1JfRFlOQU1JQ19DT01QT05FTlRTXG4gICAgXSxcbiAgICBleHBvcnRzOiBbXG4gICAgICAgIEZvcm1zTW9kdWxlLFxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuXG4gICAgICAgIC4uLmRlZmluaXRpb25zLFxuXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgUm91dGVyTW9kdWxlLFxuICAgICAgICBIdHRwQ2xpZW50TW9kdWxlLFxuXG4gICAgICAgIFRvYXN0ck1vZHVsZSxcbiAgICAgICAgV21Db21wb25lbnRzTW9kdWxlLFxuICAgICAgICBNb2JpbGVSdW50aW1lTW9kdWxlLFxuICAgICAgICBDb3JlTW9kdWxlLFxuICAgICAgICBTZWN1cml0eU1vZHVsZSxcbiAgICAgICAgT0F1dGhNb2R1bGUsXG4gICAgICAgIFZhcmlhYmxlc01vZHVsZSxcbiAgICAgICAgSHR0cFNlcnZpY2VNb2R1bGUsXG4gICAgICAgIC4uLlJFUVVJUkVEX01PRFVMRVNfRk9SX0RZTkFNSUNfQ09NUE9ORU5UU1xuICAgIF0sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtwcm92aWRlOiDJtVNoYXJlZFN0eWxlc0hvc3QsIHVzZUNsYXNzOiBXTURvbVNoYXJlZFN0eWxlc0hvc3R9LFxuICAgICAgICB7cHJvdmlkZTogybVEb21SZW5kZXJlckZhY3RvcnkyLCB1c2VDbGFzczogV01Eb21SZW5kZXJlckZhY3RvcnkyfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgUnVudGltZUJhc2VNb2R1bGUge1xuXG4gICAgLy8gdGhpcyBwb2x5ZmlsbCBpcyB0byBhZGQgc3VwcG9ydCBmb3IgQ3VzdG9tRXZlbnQgaW4gSUUxMVxuICAgIHN0YXRpYyBhZGRDdXN0b21FdmVudFBvbHlmaWxsKCkge1xuICAgICAgICAgICAgaWYgKCB0eXBlb2Ygd2luZG93WydDdXN0b21FdmVudCddID09PSAnZnVuY3Rpb24nICkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIEFkZGluZyB0eXBlIGFzIGFueSB0byBhdm9pZCBlcnJvciBUUzIzMjJcbiAgICAgICAgICAgIGNvbnN0IEN1c3RvbUV2ZW50OiBhbnkgPSAoZXZlbnQsIHBhcmFtcykgPT4ge1xuICAgICAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcyB8fCB7IGJ1YmJsZXM6IGZhbHNlLCBjYW5jZWxhYmxlOiBmYWxzZSwgZGV0YWlsOiBudWxsIH07XG4gICAgICAgICAgICAgICAgY29uc3QgZXZ0ID0gZG9jdW1lbnQuY3JlYXRlRXZlbnQoICdDdXN0b21FdmVudCcgKTtcbiAgICAgICAgICAgICAgICBldnQuaW5pdEN1c3RvbUV2ZW50KCBldmVudCwgcGFyYW1zLmJ1YmJsZXMsIHBhcmFtcy5jYW5jZWxhYmxlLCBwYXJhbXMuZGV0YWlsICk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGV2dDtcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIEN1c3RvbUV2ZW50LnByb3RvdHlwZSA9IHdpbmRvd1snRXZlbnQnXS5wcm90b3R5cGU7XG4gICAgICAgICAgICAvLyAjIyMgQU5HVUxBUjlUT0RPICMjI1xuICAgICAgICAgICAgd2luZG93WydDdXN0b21FdmVudCddID0gQ3VzdG9tRXZlbnQ7XG4gICAgfVxuXG4gICAgc3RhdGljIGZvclJvb3QoKTogTW9kdWxlV2l0aFByb3ZpZGVyczxSdW50aW1lQmFzZU1vZHVsZT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbmdNb2R1bGU6IFJ1bnRpbWVCYXNlTW9kdWxlLFxuICAgICAgICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgICAgICAgICAge3Byb3ZpZGU6IEFwcCwgdXNlQ2xhc3M6IEFwcFJlZn0sXG4gICAgICAgICAgICAgICAge3Byb3ZpZGU6IEFic3RyYWN0VG9hc3RlclNlcnZpY2UsIHVzZUNsYXNzOiBUb2FzdGVyU2VydmljZUltcGx9LFxuICAgICAgICAgICAgICAgIHtwcm92aWRlOiBBYnN0cmFjdEkxOG5TZXJ2aWNlLCB1c2VDbGFzczogSTE4blNlcnZpY2VJbXBsfSxcbiAgICAgICAgICAgICAgICB7cHJvdmlkZTogQWJzdHJhY3RTcGlubmVyU2VydmljZSwgdXNlQ2xhc3M6IFNwaW5uZXJTZXJ2aWNlSW1wbH0sXG4gICAgICAgICAgICAgICAge3Byb3ZpZGU6IEFic3RyYWN0TmF2aWdhdGlvblNlcnZpY2UsIHVzZUNsYXNzOiBOYXZpZ2F0aW9uU2VydmljZUltcGx9LFxuICAgICAgICAgICAgICAgIHtwcm92aWRlOiBBcHBEZWZhdWx0cywgdXNlQ2xhc3M6IEFwcERlZmF1bHRzU2VydmljZX0sXG4gICAgICAgICAgICAgICAge3Byb3ZpZGU6IER5bmFtaWNDb21wb25lbnRSZWZQcm92aWRlciwgdXNlQ2xhc3M6IER5bmFtaWNDb21wb25lbnRSZWZQcm92aWRlclNlcnZpY2V9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgcHJvdmlkZTogQVBQX0lOSVRJQUxJWkVSLFxuICAgICAgICAgICAgICAgICAgICB1c2VGYWN0b3J5OiBJbml0aWFsaXplQXBwLFxuICAgICAgICAgICAgICAgICAgICBkZXBzOiBbQWJzdHJhY3RJMThuU2VydmljZSwgQXBwSlNSZXNvbHZlXSxcbiAgICAgICAgICAgICAgICAgICAgbXVsdGk6IHRydWVcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgcHJvdmlkZTogTE9DQUxFX0lELFxuICAgICAgICAgICAgICAgICAgICB1c2VGYWN0b3J5OiBzZXRBbmd1bGFyTG9jYWxlLFxuICAgICAgICAgICAgICAgICAgICBkZXBzOiBbQWJzdHJhY3RJMThuU2VydmljZV1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgcHJvdmlkZTogSFRUUF9JTlRFUkNFUFRPUlMsXG4gICAgICAgICAgICAgICAgICAgIHVzZUNsYXNzOiBIdHRwQ2FsbEludGVyY2VwdG9yLFxuICAgICAgICAgICAgICAgICAgICBtdWx0aTogdHJ1ZVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgUGlwZVNlcnZpY2UsXG4gICAgICAgICAgICAgICAgRGVjaW1hbFBpcGUsXG4gICAgICAgICAgICAgICAgRGF0ZVBpcGUsXG4gICAgICAgICAgICAgICAgQXBwTWFuYWdlclNlcnZpY2UsXG4gICAgICAgICAgICAgICAgUHJlZmFiTWFuYWdlclNlcnZpY2UsXG4gICAgICAgICAgICAgICAgQXV0aEd1YXJkLFxuICAgICAgICAgICAgICAgIFJvbGVHdWFyZCxcbiAgICAgICAgICAgICAgICBQYWdlTm90Rm91bmRHdWFyZCxcbiAgICAgICAgICAgICAgICBDYW5EZWFjdGl2YXRlUGFnZUd1YXJkLFxuICAgICAgICAgICAgICAgIEFwcEpTUmVzb2x2ZSxcbiAgICAgICAgICAgICAgICBBcHBFeHRlbnNpb25KU1Jlc29sdmUsXG4gICAgICAgICAgICAgICAgSTE4blJlc29sdmUsXG4gICAgICAgICAgICAgICAgZ2V0U2V0dGluZ1Byb3ZpZGVyKE1BWF9DQUNIRV9TSVpFLCAxMCksXG4gICAgICAgICAgICAgICAgZ2V0U2V0dGluZ1Byb3ZpZGVyKE1BWF9DQUNIRV9BR0UsIDMwICogNjApXG4gICAgICAgICAgICBdXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IobW9iaWxlUnVudGltZU1vZHVsZTogTW9iaWxlUnVudGltZU1vZHVsZSxcbiAgICAgICAgICAgICAgICBhcHA6IEFwcCxcbiAgICAgICAgICAgICAgICB2aWV3cG9ydDogVmlld3BvcnQpIHtcbiAgICAgICAgUnVudGltZUJhc2VNb2R1bGUuYWRkQ3VzdG9tRXZlbnRQb2x5ZmlsbCgpO1xuXG4gICAgICAgIHRoaXMuZ2V0RGV2aWNlRGV0YWlscygpLnRoZW4oZGV0YWlscyA9PiB7XG4gICAgICAgICAgICBhcHAuc2VsZWN0ZWRWaWV3UG9ydCA9IHtcbiAgICAgICAgICAgICAgICBvczogZGV0YWlscy5vcyxcbiAgICAgICAgICAgICAgICBjYXRlZ29yeTogZGV0YWlscy5zZWxlY3RlZERldmljZUNhdGVnb3J5XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgdmlld3BvcnQudXBkYXRlKGRldGFpbHMpO1xuICAgICAgICAgICAgYXBwLm5vdGlmeSgnb24tdmlld3BvcnQtZGV0YWlscycsIGRldGFpbHMub3MpO1xuICAgICAgICB9KTtcbiAgICB9XG5cblxuICAgIHByaXZhdGUgZ2V0RGV2aWNlRGV0YWlscygpOiBQcm9taXNlPGFueT4ge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2U8YW55PihmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgICAgICBjb25zdCBtc2dDb250ZW50ID0ge2tleTogJ29uLWxvYWQnfTtcbiAgICAgICAgICAgIC8vIE5vdGlmeSBwcmV2aWV3IHdpbmRvdyB0aGF0IGFwcGxpY2F0aW9uIGlzIHJlYWR5LiBPdGhlcndpc2UsIGlkZW50aWZ5IHRoZSBPUy5cbiAgICAgICAgICAgIGlmICh3aW5kb3cudG9wICE9PSB3aW5kb3cpIHtcbiAgICAgICAgICAgICAgICB3aW5kb3cudG9wLnBvc3RNZXNzYWdlKG1zZ0NvbnRlbnQsICcqJyk7XG4gICAgICAgICAgICAgICAgLy8gVGhpcyBpcyBmb3IgcHJldmlldyBwYWdlXG4gICAgICAgICAgICAgICAgd2luZG93Lm9ubWVzc2FnZSA9IGZ1bmN0aW9uIChtc2cpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IG1zZy5kYXRhO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXNPYmplY3QoZGF0YSkgJiYgZGF0YS5rZXkgPT09ICdzd2l0Y2gtZGV2aWNlJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShkYXRhLmRldmljZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSBlbHNlIGlmIChpc0lwaG9uZSgpIHx8IGlzSXBvZCgpIHx8IGlzSXBhZCgpKSB7XG4gICAgICAgICAgICAgICAgcmVzb2x2ZSh7J29zJzogT1MuSU9TfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJlc29sdmUoeydvcyc6IE9TLkFORFJPSUR9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxufVxuXG5leHBvcnQgY29uc3QgV01fTU9EVUxFU19GT1JfUk9PVCA9IFtcbiAgICBXbUNvbXBvbmVudHNNb2R1bGUuZm9yUm9vdCgpLFxuICAgIE1vYmlsZVJ1bnRpbWVNb2R1bGUuZm9yUm9vdCgpLFxuICAgIENvcmVNb2R1bGUuZm9yUm9vdCgpLFxuICAgIFNlY3VyaXR5TW9kdWxlLmZvclJvb3QoKSxcbiAgICBPQXV0aE1vZHVsZS5mb3JSb290KCksXG4gICAgVmFyaWFibGVzTW9kdWxlLmZvclJvb3QoKSxcbiAgICBIdHRwU2VydmljZU1vZHVsZS5mb3JSb290KCksXG4gICAgUnVudGltZUJhc2VNb2R1bGUuZm9yUm9vdCgpXG5dO1xuIl19
649
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS1iYXNlLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3J1bnRpbWUtYmFzZS9zcmMvcnVudGltZS1iYXNlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsZUFBZSxFQUFFLFNBQVMsRUFBdUIsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMzRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM5RCxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFlBQVksQ0FBQztBQUUxQyxPQUFPLEVBQ0gsZUFBZSxFQUNmLFVBQVUsRUFDVixtQkFBbUIsRUFDbkIseUJBQXlCLEVBQ3pCLHNCQUFzQixFQUN0QixzQkFBc0IsRUFDdEIsR0FBRyxFQUNILFdBQVcsRUFDWCxVQUFVLEVBQ1YsMkJBQTJCLEVBQzNCLFFBQVEsRUFDUixRQUFRLEVBQ1IsTUFBTSxFQUNOLE1BQU0sRUFDTixRQUFRLEVBQ1IsVUFBVSxFQUNiLE1BQU0sVUFBVSxDQUFDO0FBQ2xCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1Q0FB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LGFBQWE7UUFDYixnQkFBZ0I7UUFDaEIsVUFBVTtRQUNWLFlBQVk7UUFDWixhQUFhO1FBRWIsV0FBVztRQUNYLGNBQWM7UUFDZCxXQUFXO1FBQ1gsYUFBYTtRQUNiLFlBQVk7UUFFWixVQUFVO1FBQ1YsWUFBWTtRQUNaLFlBQVk7UUFDWixlQUFlO1FBQ2YsZ0JBQWdCO1FBQ2hCLFlBQVk7UUFDWixZQUFZO0FBeUpoQixNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRztJQUMvQixrQkFBa0IsQ0FBQyxPQUFPLEVBQUU7SUFDNUIsbUJBQW1CLENBQUMsT0FBTyxFQUFFO0lBQzdCLFVBQVUsQ0FBQyxPQUFPLEVBQUU7SUFDcEIsY0FBYyxDQUFDLE9BQU8sRUFBRTtJQUN4QixXQUFXLENBQUMsT0FBTyxFQUFFO0lBQ3JCLGVBQWUsQ0FBQyxPQUFPLEVBQUU7SUFDekIsaUJBQWlCLENBQUMsT0FBTyxFQUFFO0lBQzNCLGlCQUFpQixDQUFDLE9BQU8sRUFBRTtDQUM5QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBUFBfSU5JVElBTElaRVIsIExPQ0FMRV9JRCwgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSwgRGF0ZVBpcGUsIERlY2ltYWxQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEhUVFBfSU5URVJDRVBUT1JTLCBIdHRwQ2xpZW50TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgybVTaGFyZWRTdHlsZXNIb3N0IH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQge8m1RG9tUmVuZGVyZXJGYWN0b3J5Mn0gZnJvbSBcIkBhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXJcIjtcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBUb2FzdHJNb2R1bGUgfSBmcm9tICduZ3gtdG9hc3RyJztcblxuaW1wb3J0IHtcbiAgICBfV01fQVBQX1BST0pFQ1QsXG4gICAgJHBhcnNlRXhwcixcbiAgICBBYnN0cmFjdEkxOG5TZXJ2aWNlLFxuICAgIEFic3RyYWN0TmF2aWdhdGlvblNlcnZpY2UsXG4gICAgQWJzdHJhY3RTcGlubmVyU2VydmljZSxcbiAgICBBYnN0cmFjdFRvYXN0ZXJTZXJ2aWNlLFxuICAgIEFwcCxcbiAgICBBcHBEZWZhdWx0cyxcbiAgICBDb3JlTW9kdWxlLFxuICAgIER5bmFtaWNDb21wb25lbnRSZWZQcm92aWRlcixcbiAgICBpc09iamVjdCxcbiAgICBpc0lwaG9uZSxcbiAgICBpc0lwb2QsXG4gICAgaXNJcGFkLFxuICAgIFZpZXdwb3J0LFxuICAgIGhhc0NvcmRvdmFcbn0gZnJvbSAnQHdtL2NvcmUnO1xuaW1wb3J0IHsgV21Db21wb25lbnRzTW9kdWxlIH0gZnJvbSAnQHdtL2NvbXBvbmVudHMvYmFzZSc7XG5pbXBvcnQgeyBEaWFsb2dNb2R1bGUgfSBmcm9tICdAd20vY29tcG9uZW50cy9kaWFsb2dzJztcbmltcG9ydCB7IENvbmZpcm1EaWFsb2dNb2R1bGUgfSBmcm9tICdAd20vY29tcG9uZW50cy9kaWFsb2dzL2NvbmZpcm0tZGlhbG9nJztcbmltcG9ydCB7IERlc2lnbkRpYWxvZ01vZHVsZSB9IGZyb20gJ0B3bS9jb21wb25lbnRzL2RpYWxvZ3MvZGVzaWduLWRpYWxvZyc7XG5pbXBvcnQgeyBQcmVmYWJNb2R1bGUgfSBmcm9tICdAd20vY29tcG9uZW50cy9wcmVmYWInO1xuaW1wb3J0IHsgTW9iaWxlUnVudGltZU1vZHVsZSB9IGZyb20gJ0B3bS9tb2JpbGUvcnVudGltZSc7XG5pbXBvcnQgeyBTZWN1cml0eU1vZHVsZSB9IGZyb20gJ0B3bS9zZWN1cml0eSc7XG5pbXBvcnQgeyBIdHRwU2VydmljZU1vZHVsZSB9IGZyb20gJ0B3bS9odHRwJztcbmltcG9ydCB7IFZhcmlhYmxlc01vZHVsZSB9IGZyb20gJ0B3bS92YXJpYWJsZXMnO1xuaW1wb3J0IHsgT0F1dGhNb2R1bGUgfSBmcm9tICdAd20vb0F1dGgnO1xuXG5pbXBvcnQgeyBBY2Nlc3Nyb2xlc0RpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9hY2Nlc3Nyb2xlcy5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQXBwU3Bpbm5lckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hcHAtc3Bpbm5lci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ3VzdG9tVG9hc3RlckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jdXN0b20tdG9hc3Rlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRW1wdHlQYWdlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2VtcHR5LWNvbXBvbmVudC9lbXB0eS1wYWdlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQcmVmYWJEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvcHJlZmFiLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBBcHBSZWYgfSBmcm9tICcuL3NlcnZpY2VzL2FwcC5zZXJ2aWNlJztcbmltcG9ydCB7IFRvYXN0ZXJTZXJ2aWNlSW1wbCB9IGZyb20gJy4vc2VydmljZXMvdG9hc3Rlci5zZXJ2aWNlJztcbmltcG9ydCB7IEkxOG5TZXJ2aWNlSW1wbCB9IGZyb20gJy4vc2VydmljZXMvaTE4bi5zZXJ2aWNlJztcbmltcG9ydCB7IFNwaW5uZXJTZXJ2aWNlSW1wbCB9IGZyb20gJy4vc2VydmljZXMvc3Bpbm5lci5zZXJ2aWNlJztcbmltcG9ydCB7IE5hdmlnYXRpb25TZXJ2aWNlSW1wbCB9IGZyb20gJy4vc2VydmljZXMvbmF2aWdhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IFBpcGVTZXJ2aWNlIH0gZnJvbSBcIi4vc2VydmljZXMvcGlwZS5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBBcHBEZWZhdWx0c1NlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2FwcC1kZWZhdWx0cy5zZXJ2aWNlJztcbmltcG9ydCB7IEFwcE1hbmFnZXJTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9hcHAubWFuYWdlci5zZXJ2aWNlJztcbmltcG9ydCB7IFByZWZhYk1hbmFnZXJTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9wcmVmYWItbWFuYWdlci5zZXJ2aWNlJztcbmltcG9ydCB7IEF1dGhHdWFyZCB9IGZyb20gJy4vZ3VhcmRzL2F1dGguZ3VhcmQnO1xuaW1wb3J0IHsgUm9sZUd1YXJkIH0gZnJvbSAnLi9ndWFyZHMvcm9sZS5ndWFyZCc7XG5pbXBvcnQgeyBQYWdlTm90Rm91bmRHdWFyZCB9IGZyb20gJy4vZ3VhcmRzL3BhZ2Utbm90LWZvdW5kLmd1YXJkJztcbmltcG9ydCB7IEFwcEpTUmVzb2x2ZSB9IGZyb20gJy4vcmVzb2x2ZXMvYXBwLWpzLnJlc29sdmUnO1xuaW1wb3J0IHsgQXBwRXh0ZW5zaW9uSlNSZXNvbHZlIH0gZnJvbSAnLi9yZXNvbHZlcy9hcHAtZXh0ZW5zaW9uLnJlc29sdmUnO1xuaW1wb3J0IHsgSTE4blJlc29sdmUgfSBmcm9tICcuL3Jlc29sdmVzL2kxOG4ucmVzb2x2ZSc7XG5pbXBvcnQgeyBBcHBDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYXBwLWNvbXBvbmVudC9hcHAuY29tcG9uZW50JztcbmltcG9ydCB7IEh0dHBDYWxsSW50ZXJjZXB0b3IgfSBmcm9tICcuL3NlcnZpY2VzL2h0dHAtaW50ZXJjZXB0b3Iuc2VydmljZXMnO1xuaW1wb3J0IHsgUHJlZmFiUHJldmlld0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcmVmYWItcHJldmlldy5jb21wb25lbnQnO1xuaW1wb3J0IHsgRHluYW1pY0NvbXBvbmVudFJlZlByb3ZpZGVyU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvZHluYW1pYy1jb21wb25lbnQtcmVmLXByb3ZpZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ2FuRGVhY3RpdmF0ZVBhZ2VHdWFyZCB9IGZyb20gJy4vZ3VhcmRzL2Nhbi1kZWFjdGl2YXRlLXBhZ2UuZ3VhcmQnO1xuaW1wb3J0IHsgTUFYX0NBQ0hFX0FHRSwgTUFYX0NBQ0hFX1NJWkUgfSBmcm9tICcuL3V0aWwvd20tcm91dGUtcmV1c2Utc3RyYXRlZ3knO1xuXG4vL2FuZ3VsYXIgb3ZlcnJpZGVzXG5pbXBvcnQgeyBXTURvbVNoYXJlZFN0eWxlc0hvc3QgfSBmcm9tIFwiLi9vdmVycmlkZXMvd21fc2hhcmVkX3N0eWxlc19ob3N0XCI7XG5pbXBvcnQgeyBXTURvbVJlbmRlcmVyRmFjdG9yeTIgfSBmcm9tIFwiLi9vdmVycmlkZXMvd21fZG9tX3JlbmRlcmVyXCI7XG5pbXBvcnQge1BhZ2VNb2R1bGV9IGZyb20gXCJAd20vY29tcG9uZW50cy9wYWdlXCI7XG5pbXBvcnQge0Zvb3Rlck1vZHVsZX0gZnJvbSBcIkB3bS9jb21wb25lbnRzL3BhZ2UvZm9vdGVyXCI7XG5pbXBvcnQge0hlYWRlck1vZHVsZX0gZnJvbSBcIkB3bS9jb21wb25lbnRzL3BhZ2UvaGVhZGVyXCI7XG5pbXBvcnQge0xlZnRQYW5lbE1vZHVsZX0gZnJvbSBcIkB3bS9jb21wb25lbnRzL3BhZ2UvbGVmdC1wYW5lbFwiO1xuaW1wb3J0IHtSaWdodFBhbmVsTW9kdWxlfSBmcm9tIFwiQHdtL2NvbXBvbmVudHMvcGFnZS9yaWdodC1wYW5lbFwiO1xuaW1wb3J0IHtUb3BOYXZNb2R1bGV9IGZyb20gXCJAd20vY29tcG9uZW50cy9wYWdlL3RvcC1uYXZcIjtcbmltcG9ydCB7QmFzaWNNb2R1bGV9IGZyb20gXCJAd20vY29tcG9uZW50cy9iYXNpY1wiO1xuaW1wb3J0IHtQcm9ncmVzc01vZHVsZX0gZnJvbSBcIkB3bS9jb21wb25lbnRzL2Jhc2ljL3Byb2dyZXNzXCI7XG5pbXBvcnQge1JpY2hUZXh0RWRpdG9yTW9kdWxlfSBmcm9tIFwiQHdtL2NvbXBvbmVudHMvYmFzaWMvcmljaC10ZXh0LWVkaXRvclwiO1xuaW1wb3J0IHtTZWFyY2hNb2R1bGV9IGZyb20gXCJAd20vY29tcG9uZW50cy9iYXNpYy9zZWFyY2hcIjtcbmltcG9ydCB7VHJlZU1vZHVsZX0gZnJvbSBcIkB3bS9jb21wb25lbnRzL2Jhc2ljL3RyZWVcIjtcbmltcG9ydCB7Q2FsZW5kYXJNb2R1bGV9IGZyb20gXCJAd20vY29tcG9uZW50cy9pbnB1dC9jYWxlbmRhclwiO1xuaW1wb3J0IHtDaGlwc01vZHVsZX0gZnJvbSBcIkB3bS9jb21wb25lbnRzL2lucHV0L2NoaXBzXCI7XG5pbXBvcnQge0NvbG9yUGlja2VyTW9kdWxlfSBmcm9tIFwiQHdtL2NvbXBvbmVudHMvaW5wdXQvY29sb3ItcGlja2VyXCI7XG5pbXBvcnQge0N1cnJlbmN5TW9kdWxlfSBmcm9tIFwiQHdtL2NvbXBvbmVudHMvaW5wdXQvY3VycmVuY3lcIjtcbmltcG9ydCB7RXBvY2hNb2R1bGV9IGZyb20gXCJAd20vY29tcG9uZW50cy9pbnB1dC9lcG9jaFwiO1xuaW1wb3J0IHtGaWxlVXBsb2FkTW9kdWxlfSBmcm9tIFwiQHdtL2NvbXBvbmVudHMvaW5wdXQvZmlsZS11cGxvYWRcIjtcbmltcG9ydCB7SW5wdXRNb2R1bGV9IGZyb20gXCJAd20vY29tcG9uZW50cy9pbnB1dFwiO1xuaW1wb3J0IHtSYXRpbmdNb2R1bGV9IGZyb20gXCJAd20vY29tcG9uZW50cy9pbnB1dC9yYXRpbmdcIjtcbmltcG9ydCB7U2xpZGVyTW9kdWxlfSBmcm9tIFwiQHdtL2NvbXBvbmVudHMvaW5wdXQvc2xpZGVyXCI7XG5pbXBvcnQge0NhcmRNb2R1bGV9IGZyb20gXCJAd20vY29tcG9uZW50cy9kYXRhL2NhcmRcIjtcbmltcG9ydCB7Rm9ybU1vZHVsZX0gZnJvbSBcIkB3bS9jb21wb25lbnRzL2RhdGEvZm9ybVwiO1xuaW1wb3J0IHtMaXN0TW9kdWxlfSBmcm9tIFwiQHdtL2NvbXBvbmVudHMvZGF0YS9saXN0XCI7XG5pbXBvcnQge0xpdmVUYWJsZU1vZHVsZX0gZnJvbSBcIkB3bS9jb21wb25lbnRzL2RhdGEvbGl2ZS10YWJsZVwiO1xuaW1wb3J0IHtQYWdpbmF0aW9uTW9kdWxlfSBmcm9tIFwiQHdtL2NvbXBvbmVudHMvZGF0YS9wYWdpbmF0aW9uXCI7XG5pbXBvcnQge1RhYmxlTW9kdWxlfSBmcm9tIFwiQHdtL2NvbXBvbmVudHMvZGF0YS90YWJsZVwiO1xuaW1wb3J0IHtDaGFydE1vZHVsZX0gZnJvbSBcIkB3bS9jb21wb25lbnRzL2NoYXJ0XCI7XG5pbXBvcnQge0FjY29yZGlvbk1vZHVsZX0gZnJvbSBcIkB3bS9jb21wb25lbnRzL2NvbnRhaW5lcnMvYWNjb3JkaW9uXCI7XG5pbXBvcnQge0xpbmVhckxheW91dE1vZHVsZX0gZnJvbSBcIkB3bS9jb21wb25lbnRzL2NvbnRhaW5lcnMvbGluZWFyLWxheW91dFwiO1xuaW1wb3J0IHtMYXlvdXRHcmlkTW9kdWxlfSBmcm9tIFwiQHdtL2NvbXBvbmVudHMvY29udGFpbmVycy9sYXlvdXQtZ3JpZFwiO1xuaW1wb3J0IHtQYW5lbE1vZHVsZX0gZnJvbSBcIkB3bS9jb21wb25lbnRzL2NvbnRhaW5lcnMvcGFuZWxcIjtcbmltcG9ydCB7VGFic01vZHVsZX0gZnJvbSBcIkB3bS9jb21wb25lbnRzL2NvbnRhaW5lcnMvdGFic1wiO1xuaW1wb3J0IHtUaWxlTW9kdWxlfSBmcm9tIFwiQHdtL2NvbXBvbmVudHMvY29udGFpbmVycy90aWxlXCI7XG5pbXBvcnQge1dpemFyZE1vZHVsZX0gZnJvbSBcIkB3bS9jb21wb25lbnRzL2NvbnRhaW5lcnMvd2l6YXJkXCI7XG5pbXBvcnQge0FsZXJ0RGlhbG9nTW9kdWxlfSBmcm9tIFwiQHdtL2NvbXBvbmVudHMvZGlhbG9ncy9hbGVydC1kaWFsb2dcIjtcbmltcG9ydCB7SWZyYW1lRGlhbG9nTW9kdWxlfSBmcm9tIFwiQHdtL2NvbXBvbmVudHMvZGlhbG9ncy9pZnJhbWUtZGlhbG9nXCI7XG5pbXBvcnQge0xvZ2luRGlhbG9nTW9kdWxlfSBmcm9tIFwiQHdtL2NvbXBvbmVudHMvZGlhbG9ncy9sb2dpbi1kaWFsb2dcIjtcbmltcG9ydCB7UGFydGlhbERpYWxvZ01vZHVsZX0gZnJvbSBcIkB3bS9jb21wb25lbnRzL2RpYWxvZ3MvcGFydGlhbC1kaWFsb2dcIjtcbmltcG9ydCB7QnJlYWRjcnVtYk1vZHVsZX0gZnJvbSBcIkB3bS9jb21wb25lbnRzL25hdmlnYXRpb24vYnJlYWRjcnVtYlwiO1xuaW1wb3J0IHtNZW51TW9kdWxlfSBmcm9tIFwiQHdtL2NvbXBvbmVudHMvbmF2aWdhdGlvbi9tZW51XCI7XG5pbXBvcnQge05hdmJhck1vZHVsZX0gZnJvbSBcIkB3bS9jb21wb25lbnRzL25hdmlnYXRpb24vbmF2YmFyXCI7XG5pbXBvcnQge1BvcG92ZXJNb2R1bGV9IGZyb20gXCJAd20vY29tcG9uZW50cy9uYXZpZ2F0aW9uL3BvcG92ZXJcIjtcbmltcG9ydCB7Q2Fyb3VzZWxNb2R1bGV9IGZyb20gXCJAd20vY29tcG9uZW50cy9hZHZhbmNlZC9jYXJvdXNlbFwiO1xuaW1wb3J0IHtMb2dpbk1vZHVsZX0gZnJvbSBcIkB3bS9jb21wb25lbnRzL2FkdmFuY2VkL2xvZ2luXCI7XG5pbXBvcnQge01hcnF1ZWVNb2R1bGV9IGZyb20gXCJAd20vY29tcG9uZW50cy9hZHZhbmNlZC9tYXJxdWVlXCI7XG5pbXBvcnQge0N1c3RvbU1vZHVsZX0gZnJvbSBcIkB3bS9jb21wb25lbnRzL2FkdmFuY2VkL2N1c3RvbVwiO1xuaW1wb3J0IHtCc0RhdGVwaWNrZXJNb2R1bGV9IGZyb20gXCJuZ3gtYm9vdHN0cmFwL2RhdGVwaWNrZXJcIjtcbmltcG9ydCB7VGltZXBpY2tlck1vZHVsZSBhcyBuZ3hUaW1lcGlja2VyTW9kdWxlfSBmcm9tIFwibmd4LWJvb3RzdHJhcC90aW1lcGlja2VyXCI7XG5pbXBvcnQge0JzRHJvcGRvd25Nb2R1bGV9IGZyb20gXCJuZ3gtYm9vdHN0cmFwL2Ryb3Bkb3duXCI7XG5pbXBvcnQge1BhZ2luYXRpb25Nb2R1bGUgYXMgbmd4UGFnaW5hdGlvbk1vZHVsZX0gZnJvbSBcIm5neC1ib290c3RyYXAvcGFnaW5hdGlvblwiO1xuaW1wb3J0IHtUeXBlYWhlYWRNb2R1bGV9IGZyb20gXCJuZ3gtYm9vdHN0cmFwL3R5cGVhaGVhZFwiO1xuaW1wb3J0IHtQcm9ncmVzc2Jhck1vZHVsZX0gZnJvbSBcIm5neC1ib290c3RyYXAvcHJvZ3Jlc3NiYXJcIjtcbmltcG9ydCB7Q2Fyb3VzZWxNb2R1bGUgYXMgbmd4Q2Fyb3VzZWxNb2R1bGV9IGZyb20gXCJuZ3gtYm9vdHN0cmFwL2Nhcm91c2VsXCI7XG5pbXBvcnQge1BvcG92ZXJNb2R1bGUgYXMgbmd4UG9wb3Zlck1vZHVsZX0gZnJvbSBcIm5neC1ib290c3RyYXAvcG9wb3ZlclwiO1xuaW1wb3J0IHtOZ0NpcmNsZVByb2dyZXNzTW9kdWxlfSBmcm9tIFwibmctY2lyY2xlLXByb2dyZXNzXCI7XG5pbXBvcnQge1Rvb2x0aXBNb2R1bGV9IGZyb20gXCJuZ3gtYm9vdHN0cmFwL3Rvb2x0aXBcIjtcblxuZGVjbGFyZSBjb25zdCBfV01fQVBQX1BST1BFUlRJRVM7XG5cbmNvbnN0IGluaXRpYWxpemVQcm9qZWN0RGV0YWlscyA9ICgpID0+IHtcbiAgICBsZXQgY2RuVXJsID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignW25hbWU9XCJkZXBsb3lVcmxcIl0nKSAmJiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdbbmFtZT1cImRlcGxveVVybFwiXScpLmdldEF0dHJpYnV0ZSgnY29udGVudCcpO1xuICAgIC8vZm9yIHByZXZpZXdcbiAgICBpZighY2RuVXJsKSB7XG4gICAgICAgIGNkblVybCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ1tuYW1lPVwiY2RuVXJsXCJdJykgJiYgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignW25hbWU9XCJjZG5VcmxcIl0nKS5nZXRBdHRyaWJ1dGUoJ2NvbnRlbnQnKTtcbiAgICB9XG4gICAgX1dNX0FQUF9QUk9KRUNULmlkID0gaGFzQ29yZG92YSgpID8gX1dNX0FQUF9QUk9QRVJUSUVTLmRpc3BsYXlOYW1lIDogbG9jYXRpb24uaHJlZi5zcGxpdCgnLycpWzNdO1xuICAgIC8vIEludGVncmF0aW9uIHdpdGggdGhpcmQgcGFydHkgYXBwcyBsaWtlIGluIFNTUEEvV2ViQ29tcG9uZW50cywgdGhpcyBtZXRhIHRhZyB3aXRoIGNkblVybCB3aWxsIG5vdCBiZSB0aGVyZSB0aGVuIGRlZmF1bHQgaXQgdG8gbmctYnVuZGxlL1xuICAgIF9XTV9BUFBfUFJPSkVDVC5jZG5VcmwgPSBjZG5VcmwgfHwgJ25nLWJ1bmRsZS8nO1xuICAgIF9XTV9BUFBfUFJPSkVDVC5uZ0Rlc3QgPSAnbmctYnVuZGxlLyc7XG4gICAgdHJ5IHtcbiAgICAgICAgLy9AdHMtaWdub3JlXG4gICAgICAgIF9fd2VicGFja19yZXF1aXJlX18ucCA9IF9fd2VicGFja19wdWJsaWNfcGF0aF9fID0gY2RuVXJsO1xuICAgIH0gY2F0Y2goZSkge1xuICAgICAgICAvL2ZvciBhcHAgcHJldmlldyB0aGVyZSBpcyBubyB3ZWJwYWNrLiBEb24ndCBkbyBhbnl0aGluZy5cbiAgICB9XG59O1xuXG5lbnVtIE9TIHtcbiAgICBJT1MgPSAnaW9zJyxcbiAgICBBTkRST0lEID0gJ2FuZHJvaWQnXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTZXR0aW5nUHJvdmlkZXIoa2V5OiBzdHJpbmcsIGRlZmF1bHRWYWx1ZTogYW55KSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgcHJvdmlkZToga2V5LFxuICAgICAgICB1c2VWYWx1ZTogZGVmYXVsdFZhbHVlXG4gICAgfTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBJbml0aWFsaXplQXBwKEkxOG5TZXJ2aWNlLCBBcHBKU1Jlc29sdmUpIHtcbiAgICByZXR1cm4gYXN5bmMgKCkgPT4ge1xuICAgICAgICBpbml0aWFsaXplUHJvamVjdERldGFpbHMoKTtcbiAgICAgICAgYXdhaXQgQXBwSlNSZXNvbHZlLnJlc29sdmUoKTtcbiAgICAgICAgcmV0dXJuIEkxOG5TZXJ2aWNlLmxvYWREZWZhdWx0TG9jYWxlKCk7XG4gICAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldEFuZ3VsYXJMb2NhbGUoSTE4blNlcnZpY2UpIHtcbiAgICBpbml0aWFsaXplUHJvamVjdERldGFpbHMoKTtcbiAgICByZXR1cm4gSTE4blNlcnZpY2UuZGVkdWNlQXBwTG9jYWxlKCk7XG59XG5cbmNvbnN0IGRlZmluaXRpb25zID0gW1xuICAgIEFjY2Vzc3JvbGVzRGlyZWN0aXZlLFxuICAgIEFwcFNwaW5uZXJDb21wb25lbnQsXG4gICAgQ3VzdG9tVG9hc3RlckNvbXBvbmVudCxcbiAgICBQcmVmYWJEaXJlY3RpdmUsXG4gICAgQXBwQ29tcG9uZW50LFxuICAgIFByZWZhYlByZXZpZXdDb21wb25lbnQsXG4gICAgRW1wdHlQYWdlQ29tcG9uZW50XG5dO1xuXG5leHBvcnQgY29uc3QgUkVRVUlSRURfTU9EVUxFU19GT1JfRFlOQU1JQ19DT01QT05FTlRTID0gW1xuICAgIENvbmZpcm1EaWFsb2dNb2R1bGUsXG4gICAgRGVzaWduRGlhbG9nTW9kdWxlLFxuICAgIERpYWxvZ01vZHVsZSxcblxuICAgIC8vIE5HWCBCb290c3RyYXBcbiAgICBCc0RhdGVwaWNrZXJNb2R1bGUsXG4gICAgbmd4VGltZXBpY2tlck1vZHVsZSxcbiAgICBCc0Ryb3Bkb3duTW9kdWxlLFxuICAgIG5neFBhZ2luYXRpb25Nb2R1bGUsXG4gICAgVHlwZWFoZWFkTW9kdWxlLFxuICAgIFByb2dyZXNzYmFyTW9kdWxlLFxuICAgIG5neENhcm91c2VsTW9kdWxlLFxuICAgIG5neFBvcG92ZXJNb2R1bGUsXG4gICAgTmdDaXJjbGVQcm9ncmVzc01vZHVsZSxcbiAgICBUb29sdGlwTW9kdWxlLFxuXG4gICAgLy8gQmFzaWMgd2lkZ2V0c1xuICAgIEJhc2ljTW9kdWxlLFxuICAgIFByb2dyZXNzTW9kdWxlLFxuICAgIFJpY2hUZXh0RWRpdG9yTW9kdWxlLFxuICAgIFNlYXJjaE1vZHVsZSxcbiAgICBUcmVlTW9kdWxlLFxuXG4gICAgLy8gSW5wdXRcbiAgICBDYWxlbmRhck1vZHVsZSxcbiAgICBDaGlwc01vZHVsZSxcbiAgICBDb2xvclBpY2tlck1vZHVsZSxcbiAgICBDdXJyZW5jeU1vZHVsZSxcbiAgICBFcG9jaE1vZHVsZSxcbiAgICBGaWxlVXBsb2FkTW9kdWxlLFxuICAgIElucHV0TW9kdWxlLFxuICAgIFJhdGluZ01vZHVsZSxcbiAgICBTbGlkZXJNb2R1bGUsXG5cbiAgICAvLyBEYXRhXG4gICAgQ2FyZE1vZHVsZSxcbiAgICBGb3JtTW9kdWxlLFxuICAgIExpc3RNb2R1bGUsXG4gICAgTGl2ZVRhYmxlTW9kdWxlLFxuICAgIFBhZ2luYXRpb25Nb2R1bGUsXG4gICAgVGFibGVNb2R1bGUsXG5cbiAgICAvLyBjaGFydFxuICAgIENoYXJ0TW9kdWxlLFxuXG4gICAgLy8gY29udGFpbmVyIG1vZHVsZXNcbiAgICBBY2NvcmRpb25Nb2R1bGUsXG4gICAgTGluZWFyTGF5b3V0TW9kdWxlLFxuICAgIExheW91dEdyaWRNb2R1bGUsXG4gICAgUGFuZWxNb2R1bGUsXG4gICAgVGFic01vZHVsZSxcbiAgICBUaWxlTW9kdWxlLFxuICAgIFdpemFyZE1vZHVsZSxcblxuICAgIC8vIGRpYWxvZ3NcbiAgICBBbGVydERpYWxvZ01vZHVsZSxcbiAgICBJZnJhbWVEaWFsb2dNb2R1bGUsXG4gICAgTG9naW5EaWFsb2dNb2R1bGUsXG4gICAgUGFydGlhbERpYWxvZ01vZHVsZSxcblxuICAgIC8vIG5hdmlnYXRpb25cbiAgICBCcmVhZGNydW1iTW9kdWxlLFxuICAgIE1lbnVNb2R1bGUsXG4gICAgTmF2YmFyTW9kdWxlLFxuICAgIFBvcG92ZXJNb2R1bGUsXG5cbiAgICAvLyBBZHZhbmNlZFxuICAgIENhcm91c2VsTW9kdWxlLFxuICAgIExvZ2luTW9kdWxlLFxuICAgIE1hcnF1ZWVNb2R1bGUsXG4gICAgQ3VzdG9tTW9kdWxlLFxuXG4gICAgUGFnZU1vZHVsZSxcbiAgICBGb290ZXJNb2R1bGUsXG4gICAgSGVhZGVyTW9kdWxlLFxuICAgIExlZnRQYW5lbE1vZHVsZSxcbiAgICBSaWdodFBhbmVsTW9kdWxlLFxuICAgIFRvcE5hdk1vZHVsZSxcbiAgICBQcmVmYWJNb2R1bGVcbl07XG5cbi8vIHNldHRpbmcgcGFyc2VFeHByIGFzIGV4cHJFdmFsdWF0b3IgZm9yIHN3aXBlQW5pbWF0aW9uXG4oJC5mbiBhcyBhbnkpLnN3aXBlQW5pbWF0aW9uLmV4cHJlc3Npb25FdmFsdWF0b3IgPSAkcGFyc2VFeHByO1xuXG5ATmdNb2R1bGUoe1xuICAgIGRlY2xhcmF0aW9uczogWyAuLi5kZWZpbml0aW9ucyBdLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBSb3V0ZXJNb2R1bGUsXG4gICAgICAgIEh0dHBDbGllbnRNb2R1bGUsXG4gICAgICAgIEZvcm1zTW9kdWxlLFxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuXG4gICAgICAgIFRvYXN0ck1vZHVsZSxcbiAgICAgICAgV21Db21wb25lbnRzTW9kdWxlLFxuICAgICAgICBNb2JpbGVSdW50aW1lTW9kdWxlLFxuICAgICAgICBDb3JlTW9kdWxlLFxuICAgICAgICBTZWN1cml0eU1vZHVsZSxcbiAgICAgICAgT0F1dGhNb2R1bGUsXG4gICAgICAgIFZhcmlhYmxlc01vZHVsZSxcbiAgICAgICAgSHR0cFNlcnZpY2VNb2R1bGUsXG4gICAgICAgIC4uLlJFUVVJUkVEX01PRFVMRVNfRk9SX0RZTkFNSUNfQ09NUE9ORU5UU1xuICAgIF0sXG4gICAgZXhwb3J0czogW1xuICAgICAgICBGb3Jtc01vZHVsZSxcbiAgICAgICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcblxuICAgICAgICAuLi5kZWZpbml0aW9ucyxcblxuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIFJvdXRlck1vZHVsZSxcbiAgICAgICAgSHR0cENsaWVudE1vZHVsZSxcblxuICAgICAgICBUb2FzdHJNb2R1bGUsXG4gICAgICAgIFdtQ29tcG9uZW50c01vZHVsZSxcbiAgICAgICAgTW9iaWxlUnVudGltZU1vZHVsZSxcbiAgICAgICAgQ29yZU1vZHVsZSxcbiAgICAgICAgU2VjdXJpdHlNb2R1bGUsXG4gICAgICAgIE9BdXRoTW9kdWxlLFxuICAgICAgICBWYXJpYWJsZXNNb2R1bGUsXG4gICAgICAgIEh0dHBTZXJ2aWNlTW9kdWxlLFxuICAgICAgICAuLi5SRVFVSVJFRF9NT0RVTEVTX0ZPUl9EWU5BTUlDX0NPTVBPTkVOVFNcbiAgICBdLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7cHJvdmlkZTogybVTaGFyZWRTdHlsZXNIb3N0LCB1c2VDbGFzczogV01Eb21TaGFyZWRTdHlsZXNIb3N0fSxcbiAgICAgICAge3Byb3ZpZGU6IMm1RG9tUmVuZGVyZXJGYWN0b3J5MiwgdXNlQ2xhc3M6IFdNRG9tUmVuZGVyZXJGYWN0b3J5Mn1cbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIFJ1bnRpbWVCYXNlTW9kdWxlIHtcblxuICAgIC8vIHRoaXMgcG9seWZpbGwgaXMgdG8gYWRkIHN1cHBvcnQgZm9yIEN1c3RvbUV2ZW50IGluIElFMTFcbiAgICBzdGF0aWMgYWRkQ3VzdG9tRXZlbnRQb2x5ZmlsbCgpIHtcbiAgICAgICAgICAgIGlmICggdHlwZW9mIHdpbmRvd1snQ3VzdG9tRXZlbnQnXSA9PT0gJ2Z1bmN0aW9uJyApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBBZGRpbmcgdHlwZSBhcyBhbnkgdG8gYXZvaWQgZXJyb3IgVFMyMzIyXG4gICAgICAgICAgICBjb25zdCBDdXN0b21FdmVudDogYW55ID0gKGV2ZW50LCBwYXJhbXMpID0+IHtcbiAgICAgICAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMgfHwgeyBidWJibGVzOiBmYWxzZSwgY2FuY2VsYWJsZTogZmFsc2UsIGRldGFpbDogbnVsbCB9O1xuICAgICAgICAgICAgICAgIGNvbnN0IGV2dCA9IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCAnQ3VzdG9tRXZlbnQnICk7XG4gICAgICAgICAgICAgICAgZXZ0LmluaXRDdXN0b21FdmVudCggZXZlbnQsIHBhcmFtcy5idWJibGVzLCBwYXJhbXMuY2FuY2VsYWJsZSwgcGFyYW1zLmRldGFpbCApO1xuICAgICAgICAgICAgICAgIHJldHVybiBldnQ7XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBDdXN0b21FdmVudC5wcm90b3R5cGUgPSB3aW5kb3dbJ0V2ZW50J10ucHJvdG90eXBlO1xuICAgICAgICAgICAgLy8gIyMjIEFOR1VMQVI5VE9ETyAjIyNcbiAgICAgICAgICAgIHdpbmRvd1snQ3VzdG9tRXZlbnQnXSA9IEN1c3RvbUV2ZW50O1xuICAgIH1cblxuICAgIHN0YXRpYyBmb3JSb290KCk6IE1vZHVsZVdpdGhQcm92aWRlcnM8UnVudGltZUJhc2VNb2R1bGU+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG5nTW9kdWxlOiBSdW50aW1lQmFzZU1vZHVsZSxcbiAgICAgICAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICAgICAgICAgIHtwcm92aWRlOiBBcHAsIHVzZUNsYXNzOiBBcHBSZWZ9LFxuICAgICAgICAgICAgICAgIHtwcm92aWRlOiBBYnN0cmFjdFRvYXN0ZXJTZXJ2aWNlLCB1c2VDbGFzczogVG9hc3RlclNlcnZpY2VJbXBsfSxcbiAgICAgICAgICAgICAgICB7cHJvdmlkZTogQWJzdHJhY3RJMThuU2VydmljZSwgdXNlQ2xhc3M6IEkxOG5TZXJ2aWNlSW1wbH0sXG4gICAgICAgICAgICAgICAge3Byb3ZpZGU6IEFic3RyYWN0U3Bpbm5lclNlcnZpY2UsIHVzZUNsYXNzOiBTcGlubmVyU2VydmljZUltcGx9LFxuICAgICAgICAgICAgICAgIHtwcm92aWRlOiBBYnN0cmFjdE5hdmlnYXRpb25TZXJ2aWNlLCB1c2VDbGFzczogTmF2aWdhdGlvblNlcnZpY2VJbXBsfSxcbiAgICAgICAgICAgICAgICB7cHJvdmlkZTogQXBwRGVmYXVsdHMsIHVzZUNsYXNzOiBBcHBEZWZhdWx0c1NlcnZpY2V9LFxuICAgICAgICAgICAgICAgIHtwcm92aWRlOiBEeW5hbWljQ29tcG9uZW50UmVmUHJvdmlkZXIsIHVzZUNsYXNzOiBEeW5hbWljQ29tcG9uZW50UmVmUHJvdmlkZXJTZXJ2aWNlfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcbiAgICAgICAgICAgICAgICAgICAgdXNlRmFjdG9yeTogSW5pdGlhbGl6ZUFwcCxcbiAgICAgICAgICAgICAgICAgICAgZGVwczogW0Fic3RyYWN0STE4blNlcnZpY2UsIEFwcEpTUmVzb2x2ZV0sXG4gICAgICAgICAgICAgICAgICAgIG11bHRpOiB0cnVlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHByb3ZpZGU6IExPQ0FMRV9JRCxcbiAgICAgICAgICAgICAgICAgICAgdXNlRmFjdG9yeTogc2V0QW5ndWxhckxvY2FsZSxcbiAgICAgICAgICAgICAgICAgICAgZGVwczogW0Fic3RyYWN0STE4blNlcnZpY2VdXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHByb3ZpZGU6IEhUVFBfSU5URVJDRVBUT1JTLFxuICAgICAgICAgICAgICAgICAgICB1c2VDbGFzczogSHR0cENhbGxJbnRlcmNlcHRvcixcbiAgICAgICAgICAgICAgICAgICAgbXVsdGk6IHRydWVcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFBpcGVTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIERlY2ltYWxQaXBlLFxuICAgICAgICAgICAgICAgIERhdGVQaXBlLFxuICAgICAgICAgICAgICAgIEFwcE1hbmFnZXJTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIFByZWZhYk1hbmFnZXJTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIEF1dGhHdWFyZCxcbiAgICAgICAgICAgICAgICBSb2xlR3VhcmQsXG4gICAgICAgICAgICAgICAgUGFnZU5vdEZvdW5kR3VhcmQsXG4gICAgICAgICAgICAgICAgQ2FuRGVhY3RpdmF0ZVBhZ2VHdWFyZCxcbiAgICAgICAgICAgICAgICBBcHBKU1Jlc29sdmUsXG4gICAgICAgICAgICAgICAgQXBwRXh0ZW5zaW9uSlNSZXNvbHZlLFxuICAgICAgICAgICAgICAgIEkxOG5SZXNvbHZlLFxuICAgICAgICAgICAgICAgIGdldFNldHRpbmdQcm92aWRlcihNQVhfQ0FDSEVfU0laRSwgMTApLFxuICAgICAgICAgICAgICAgIGdldFNldHRpbmdQcm92aWRlcihNQVhfQ0FDSEVfQUdFLCAzMCAqIDYwKVxuICAgICAgICAgICAgXVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKG1vYmlsZVJ1bnRpbWVNb2R1bGU6IE1vYmlsZVJ1bnRpbWVNb2R1bGUsXG4gICAgICAgICAgICAgICAgYXBwOiBBcHAsXG4gICAgICAgICAgICAgICAgdmlld3BvcnQ6IFZpZXdwb3J0KSB7XG4gICAgICAgIFJ1bnRpbWVCYXNlTW9kdWxlLmFkZEN1c3RvbUV2ZW50UG9seWZpbGwoKTtcblxuICAgICAgICB0aGlzLmdldERldmljZURldGFpbHMoKS50aGVuKGRldGFpbHMgPT4ge1xuICAgICAgICAgICAgYXBwLnNlbGVjdGVkVmlld1BvcnQgPSB7XG4gICAgICAgICAgICAgICAgb3M6IGRldGFpbHMub3MsXG4gICAgICAgICAgICAgICAgY2F0ZWdvcnk6IGRldGFpbHMuc2VsZWN0ZWREZXZpY2VDYXRlZ29yeVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHZpZXdwb3J0LnVwZGF0ZShkZXRhaWxzKTtcbiAgICAgICAgICAgIGFwcC5ub3RpZnkoJ29uLXZpZXdwb3J0LWRldGFpbHMnLCBkZXRhaWxzLm9zKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG5cbiAgICBwcml2YXRlIGdldERldmljZURldGFpbHMoKTogUHJvbWlzZTxhbnk+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlPGFueT4oZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICAgICAgY29uc3QgbXNnQ29udGVudCA9IHtrZXk6ICdvbi1sb2FkJ307XG4gICAgICAgICAgICAvLyBOb3RpZnkgcHJldmlldyB3aW5kb3cgdGhhdCBhcHBsaWNhdGlvbiBpcyByZWFkeS4gT3RoZXJ3aXNlLCBpZGVudGlmeSB0aGUgT1MuXG4gICAgICAgICAgICBpZiAod2luZG93LnRvcCAhPT0gd2luZG93KSB7XG4gICAgICAgICAgICAgICAgd2luZG93LnRvcC5wb3N0TWVzc2FnZShtc2dDb250ZW50LCAnKicpO1xuICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMgZm9yIHByZXZpZXcgcGFnZVxuICAgICAgICAgICAgICAgIHdpbmRvdy5vbm1lc3NhZ2UgPSBmdW5jdGlvbiAobXNnKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBtc2cuZGF0YTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzT2JqZWN0KGRhdGEpICYmIGRhdGEua2V5ID09PSAnc3dpdGNoLWRldmljZScpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoZGF0YS5kZXZpY2UpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNJcGhvbmUoKSB8fCBpc0lwb2QoKSB8fCBpc0lwYWQoKSkge1xuICAgICAgICAgICAgICAgIHJlc29sdmUoeydvcyc6IE9TLklPU30pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXNvbHZlKHsnb3MnOiBPUy5BTkRST0lEfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbn1cblxuZXhwb3J0IGNvbnN0IFdNX01PRFVMRVNfRk9SX1JPT1QgPSBbXG4gICAgV21Db21wb25lbnRzTW9kdWxlLmZvclJvb3QoKSxcbiAgICBNb2JpbGVSdW50aW1lTW9kdWxlLmZvclJvb3QoKSxcbiAgICBDb3JlTW9kdWxlLmZvclJvb3QoKSxcbiAgICBTZWN1cml0eU1vZHVsZS5mb3JSb290KCksXG4gICAgT0F1dGhNb2R1bGUuZm9yUm9vdCgpLFxuICAgIFZhcmlhYmxlc01vZHVsZS5mb3JSb290KCksXG4gICAgSHR0cFNlcnZpY2VNb2R1bGUuZm9yUm9vdCgpLFxuICAgIFJ1bnRpbWVCYXNlTW9kdWxlLmZvclJvb3QoKVxuXTtcbiJdfQ==
@@ -3,6 +3,7 @@ export var ComponentType;
3
3
  ComponentType[ComponentType["PAGE"] = 0] = "PAGE";
4
4
  ComponentType[ComponentType["PREFAB"] = 1] = "PREFAB";
5
5
  ComponentType[ComponentType["PARTIAL"] = 2] = "PARTIAL";
6
+ ComponentType[ComponentType["WIDGET"] = 3] = "WIDGET";
6
7
  })(ComponentType || (ComponentType = {}));
7
8
  export class ComponentRefProvider {
8
9
  clearComponentFactoryRefCache() { }
@@ -16,4 +17,4 @@ export class AppVariablesProvider {
16
17
  }
17
18
  export class AppExtensionProvider {
18
19
  }
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ydW50aW1lLWJhc2Uvc3JjL3R5cGVzL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLGFBSVg7QUFKRCxXQUFZLGFBQWE7SUFDckIsaURBQUksQ0FBQTtJQUNKLHFEQUFNLENBQUE7SUFDTix1REFBTyxDQUFBO0FBQ1gsQ0FBQyxFQUpXLGFBQWEsS0FBYixhQUFhLFFBSXhCO0FBRUQsTUFBTSxPQUFnQixvQkFBb0I7SUFFdEMsNkJBQTZCLEtBQVUsQ0FBQztJQUFBLENBQUM7Q0FDNUM7QUFFRCxNQUFNLE9BQWdCLG9CQUFvQjtDQUV6QztBQUVELE1BQU0sT0FBZ0IsYUFBYTtDQUVsQztBQUVELE1BQU0sT0FBZ0Isb0JBQW9CO0NBRXpDO0FBQ0QsTUFBTSxPQUFnQixvQkFBb0I7Q0FFekMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBDb21wb25lbnRUeXBlIHtcbiAgICBQQUdFLFxuICAgIFBSRUZBQixcbiAgICBQQVJUSUFMXG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBDb21wb25lbnRSZWZQcm92aWRlciB7XG4gICAgYWJzdHJhY3QgZ2V0Q29tcG9uZW50RmFjdG9yeVJlZihjb21wb25lbnROYW1lOiBzdHJpbmcsIGNvbXBvbmVudFR5cGU6IENvbXBvbmVudFR5cGUpOiBQcm9taXNlPGFueT47XG4gICAgY2xlYXJDb21wb25lbnRGYWN0b3J5UmVmQ2FjaGUoKTogdm9pZCB7fTtcbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFByZWZhYkNvbmZpZ1Byb3ZpZGVyIHtcbiAgICBhYnN0cmFjdCBnZXRDb25maWcocHJlZmFiTmFtZTogc3RyaW5nKTogUHJvbWlzZTxhbnk+O1xufVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQXBwSlNQcm92aWRlciB7XG4gICAgYWJzdHJhY3QgZ2V0QXBwU2NyaXB0Rm4oKTogUHJvbWlzZTxGdW5jdGlvbj47XG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBcHBWYXJpYWJsZXNQcm92aWRlciB7XG4gICAgYWJzdHJhY3QgZ2V0QXBwVmFyaWFibGVzKCk6IFByb21pc2U8YW55Pjtcbn1cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBcHBFeHRlbnNpb25Qcm92aWRlciB7XG4gICAgYWJzdHJhY3QgIGxvYWRGb3JtYXR0ZXJDb25maWdTY3JpcHQoY2FsbGJhY2s6RnVuY3Rpb24pOiB2b2lkO1xufVxuXG4iXX0=
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ydW50aW1lLWJhc2Uvc3JjL3R5cGVzL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLGFBS1g7QUFMRCxXQUFZLGFBQWE7SUFDckIsaURBQUksQ0FBQTtJQUNKLHFEQUFNLENBQUE7SUFDTix1REFBTyxDQUFBO0lBQ1AscURBQU0sQ0FBQTtBQUNWLENBQUMsRUFMVyxhQUFhLEtBQWIsYUFBYSxRQUt4QjtBQUVELE1BQU0sT0FBZ0Isb0JBQW9CO0lBRXRDLDZCQUE2QixLQUFVLENBQUM7SUFBQSxDQUFDO0NBQzVDO0FBRUQsTUFBTSxPQUFnQixvQkFBb0I7Q0FFekM7QUFFRCxNQUFNLE9BQWdCLGFBQWE7Q0FFbEM7QUFFRCxNQUFNLE9BQWdCLG9CQUFvQjtDQUV6QztBQUNELE1BQU0sT0FBZ0Isb0JBQW9CO0NBRXpDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gQ29tcG9uZW50VHlwZSB7XG4gICAgUEFHRSxcbiAgICBQUkVGQUIsXG4gICAgUEFSVElBTCxcbiAgICBXSURHRVRcbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIENvbXBvbmVudFJlZlByb3ZpZGVyIHtcbiAgICBhYnN0cmFjdCBnZXRDb21wb25lbnRGYWN0b3J5UmVmKGNvbXBvbmVudE5hbWU6IHN0cmluZywgY29tcG9uZW50VHlwZTogQ29tcG9uZW50VHlwZSk6IFByb21pc2U8YW55PjtcbiAgICBjbGVhckNvbXBvbmVudEZhY3RvcnlSZWZDYWNoZSgpOiB2b2lkIHt9O1xufVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUHJlZmFiQ29uZmlnUHJvdmlkZXIge1xuICAgIGFic3RyYWN0IGdldENvbmZpZyhwcmVmYWJOYW1lOiBzdHJpbmcpOiBQcm9taXNlPGFueT47XG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBcHBKU1Byb3ZpZGVyIHtcbiAgICBhYnN0cmFjdCBnZXRBcHBTY3JpcHRGbigpOiBQcm9taXNlPEZ1bmN0aW9uPjtcbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFwcFZhcmlhYmxlc1Byb3ZpZGVyIHtcbiAgICBhYnN0cmFjdCBnZXRBcHBWYXJpYWJsZXMoKTogUHJvbWlzZTxhbnk+O1xufVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFwcEV4dGVuc2lvblByb3ZpZGVyIHtcbiAgICBhYnN0cmFjdCAgbG9hZEZvcm1hdHRlckNvbmZpZ1NjcmlwdChjYWxsYmFjazpGdW5jdGlvbik6IHZvaWQ7XG59XG5cbiJdfQ==