@ionic/angular 8.8.8-nightly.20260520 → 8.8.9-dev.11779403760.13ea2a08

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 (62) hide show
  1. package/common/directives/navigation/tabs.d.ts +9 -7
  2. package/css/core.css +1 -1
  3. package/css/core.css.map +1 -1
  4. package/css/display.css +1 -1
  5. package/css/display.css.map +1 -1
  6. package/css/flex-utils.css +1 -1
  7. package/css/flex-utils.css.map +1 -1
  8. package/css/float-elements.css.map +1 -1
  9. package/css/global.bundle.css.map +1 -1
  10. package/css/ionic/bundle.ionic.css +1 -0
  11. package/css/ionic/bundle.ionic.css.map +1 -0
  12. package/css/ionic/core.ionic.css +1 -0
  13. package/css/ionic/core.ionic.css.map +1 -0
  14. package/css/ionic/global.bundle.ionic.css +1 -0
  15. package/css/ionic/global.bundle.ionic.css.map +1 -0
  16. package/css/ionic/ionic-swiper.ionic.css +1 -0
  17. package/css/ionic/ionic-swiper.ionic.css.map +1 -0
  18. package/css/ionic/link.ionic.css +1 -0
  19. package/css/ionic/link.ionic.css.map +1 -0
  20. package/css/ionic/structure.ionic.css +1 -0
  21. package/css/ionic/structure.ionic.css.map +1 -0
  22. package/css/ionic/typography.ionic.css +1 -0
  23. package/css/ionic/typography.ionic.css.map +1 -0
  24. package/css/ionic/utils.bundle.ionic.css +1 -0
  25. package/css/ionic/utils.bundle.ionic.css.map +1 -0
  26. package/css/ionic-swiper.css +1 -1
  27. package/css/ionic-swiper.css.map +1 -1
  28. package/css/ionic.bundle.css +1 -1
  29. package/css/ionic.bundle.css.map +1 -1
  30. package/css/normalize.css.map +1 -1
  31. package/css/padding.css.map +1 -1
  32. package/css/palettes/dark.always.css.map +1 -1
  33. package/css/palettes/dark.class.css.map +1 -1
  34. package/css/palettes/dark.system.css.map +1 -1
  35. package/css/palettes/high-contrast-dark.always.css.map +1 -1
  36. package/css/palettes/high-contrast-dark.class.css.map +1 -1
  37. package/css/palettes/high-contrast-dark.system.css.map +1 -1
  38. package/css/palettes/high-contrast.always.css.map +1 -1
  39. package/css/palettes/high-contrast.class.css.map +1 -1
  40. package/css/palettes/high-contrast.system.css.map +1 -1
  41. package/css/structure.css.map +1 -1
  42. package/css/text-alignment.css.map +1 -1
  43. package/css/text-transformation.css.map +1 -1
  44. package/css/typography.css.map +1 -1
  45. package/css/utils.bundle.css +1 -1
  46. package/css/utils.bundle.css.map +1 -1
  47. package/directives/proxies-list.d.ts +1 -1
  48. package/directives/proxies.d.ts +104 -85
  49. package/esm2022/common/directives/navigation/tabs.mjs +58 -10
  50. package/esm2022/directives/proxies-list.mjs +3 -1
  51. package/esm2022/directives/proxies.mjs +311 -246
  52. package/esm2022/ionic-module.mjs +2 -2
  53. package/esm2022/standalone/directives/proxies.mjs +279 -213
  54. package/fesm2022/ionic-angular-common.mjs +57 -9
  55. package/fesm2022/ionic-angular-common.mjs.map +1 -1
  56. package/fesm2022/ionic-angular-standalone.mjs +408 -344
  57. package/fesm2022/ionic-angular-standalone.mjs.map +1 -1
  58. package/fesm2022/ionic-angular.mjs +313 -248
  59. package/fesm2022/ionic-angular.mjs.map +1 -1
  60. package/ionic-module.d.ts +1 -1
  61. package/package.json +2 -2
  62. package/standalone/directives/proxies.d.ts +89 -71
@@ -1,6 +1,44 @@
1
1
  import { Directive, ElementRef, EventEmitter, HostListener, Output, ViewChild, } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  import * as i1 from "../../providers/nav-controller";
4
+ /**
5
+ * Extracts `queryParams` and `fragment` from a tab button's href for use
6
+ * as Angular `NavigationExtras`. Returns `undefined` when neither is present.
7
+ */
8
+ const parseHrefExtras = (href) => {
9
+ if (!href) {
10
+ return undefined;
11
+ }
12
+ const hashIndex = href.indexOf('#');
13
+ // Treat a bare `#` (no fragment text) as no fragment.
14
+ const fragment = hashIndex >= 0 && hashIndex < href.length - 1 ? href.slice(hashIndex + 1) : undefined;
15
+ const beforeHash = hashIndex >= 0 ? href.slice(0, hashIndex) : href;
16
+ const queryIndex = beforeHash.indexOf('?');
17
+ const search = queryIndex >= 0 ? beforeHash.slice(queryIndex + 1) : '';
18
+ let queryParams;
19
+ if (search) {
20
+ const params = new URLSearchParams(search);
21
+ queryParams = {};
22
+ for (const key of new Set(params.keys())) {
23
+ const all = params.getAll(key);
24
+ queryParams[key] = all.length > 1 ? all : all[0];
25
+ }
26
+ }
27
+ if (!queryParams && fragment === undefined) {
28
+ return undefined;
29
+ }
30
+ /**
31
+ * Build the result with only the populated keys so that a spread of the
32
+ * returned object does not overwrite saved `queryParams`/`fragment` with
33
+ * `undefined` (which `Object.assign`/spread would copy as a real key).
34
+ */
35
+ const extras = {};
36
+ if (queryParams)
37
+ extras.queryParams = queryParams;
38
+ if (fragment !== undefined)
39
+ extras.fragment = fragment;
40
+ return extras;
41
+ };
4
42
  class IonTabs {
5
43
  navCtrl;
6
44
  tabsInner;
@@ -68,22 +106,25 @@ class IonTabs {
68
106
  *
69
107
  * a. Get the saved root view from the router outlet. If the saved root view
70
108
  * matches the tabRootUrl, set the route view to this view including the
71
- * navigation extras.
72
- * b. If the saved root view from the router outlet does
73
- * not match, navigate to the tabRootUrl. No navigation extras are
74
- * included.
109
+ * navigation extras. Any `queryParams` or `fragment` declared on the tab
110
+ * button's `href` are also forwarded.
111
+ * b. If the saved root view from the router outlet does not match, navigate
112
+ * to the tabRootUrl, forwarding any `queryParams`/`fragment` declared on
113
+ * the tab button's `href`.
75
114
  *
76
115
  * 2. If the current tab tab is not currently selected, get the last route
77
116
  * view from the router outlet.
78
117
  *
79
118
  * a. If the last route view exists, navigate to that view including any
80
- * navigation extras
81
- * b. If the last route view doesn't exist, then navigate
82
- * to the default tabRootUrl
119
+ * navigation extras.
120
+ * b. If the last route view doesn't exist, then navigate to the default
121
+ * tabRootUrl, forwarding any `queryParams`/`fragment` declared on the
122
+ * tab button's `href`.
83
123
  */
84
124
  select(tabOrEvent) {
85
125
  const isTabString = typeof tabOrEvent === 'string';
86
126
  const tab = isTabString ? tabOrEvent : tabOrEvent.detail.tab;
127
+ const href = isTabString ? undefined : tabOrEvent.detail.href;
87
128
  /**
88
129
  * If the tabs are not using the router, then
89
130
  * the tab switch logic is handled by the tabs
@@ -96,6 +137,11 @@ class IonTabs {
96
137
  }
97
138
  const alreadySelected = this.outlet.getActiveStackId() === tab;
98
139
  const tabRootUrl = `${this.outlet.tabsPrefix}/${tab}`;
140
+ /**
141
+ * The href pathname is ignored here; tab routing is driven by `tabsPrefix/tab`.
142
+ * Only the query and fragment are forwarded as navigation extras.
143
+ */
144
+ const hrefExtras = parseHrefExtras(href);
99
145
  /**
100
146
  * If this is a nested tab, prevent the event
101
147
  * from bubbling otherwise the outer tabs
@@ -116,6 +162,7 @@ class IonTabs {
116
162
  const navigationExtras = rootView && tabRootUrl === rootView.url && rootView.savedExtras;
117
163
  return this.navCtrl.navigateRoot(tabRootUrl, {
118
164
  ...navigationExtras,
165
+ ...hrefExtras,
119
166
  animated: true,
120
167
  animationDirection: 'back',
121
168
  });
@@ -124,10 +171,11 @@ class IonTabs {
124
171
  const lastRoute = this.outlet.getLastRouteView(tab);
125
172
  /**
126
173
  * If there is a lastRoute, goto that, otherwise goto the fallback url of the
127
- * selected tab
174
+ * selected tab. When falling back to the tab root, honor query params and
175
+ * fragment declared on the tab button's href.
128
176
  */
129
177
  const url = lastRoute?.url || tabRootUrl;
130
- const navigationExtras = lastRoute?.savedExtras;
178
+ const navigationExtras = lastRoute?.savedExtras ?? (url === tabRootUrl ? hrefExtras : undefined);
131
179
  return this.navCtrl.navigateRoot(url, {
132
180
  ...navigationExtras,
133
181
  animated: true,
@@ -228,4 +276,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
228
276
  type: HostListener,
229
277
  args: ['ionTabButtonClick', ['$event']]
230
278
  }] } });
231
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFicy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2NvbW1vbi9zcmMvZGlyZWN0aXZlcy9uYXZpZ2F0aW9uL3RhYnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFlBQVksRUFDWixNQUFNLEVBQ04sU0FBUyxHQUdWLE1BQU0sZUFBZSxDQUFDOzs7QUFNdkIsTUFJc0IsT0FBTztJQTJCUDtJQWpCd0MsU0FBUyxDQUE2QjtJQUVsRzs7T0FFRztJQUNPLGlCQUFpQixHQUFHLElBQUksWUFBWSxFQUFtQixDQUFDO0lBQ2xFOztPQUVHO0lBQ08sZ0JBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQW1CLENBQUM7SUFFekQsVUFBVSxHQUFHLFFBQVEsQ0FBQztJQUV0QixNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQ2YsV0FBVyxDQUFtQjtJQUM5QixVQUFVLENBQU87SUFFekIsWUFBb0IsT0FBc0I7UUFBdEIsWUFBTyxHQUFQLE9BQU8sQ0FBZTtJQUFHLENBQUM7SUFFOUMsZUFBZTtRQUNiOzs7Ozs7V0FNRztRQUNILE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUVwRSxJQUFJLFFBQVEsRUFBRTtZQUNaLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1lBQ25CLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2hDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztTQUNsQjtJQUNILENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELHFCQUFxQjtRQUNuQixJQUFJLENBQUMsaUJBQWlC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O2tCQUo1QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxVQUFVO2lCQUNyQjtvR0FZNkQsU0FBUztzQkFBcEUsU0FBUzt1QkFBQyxXQUFXLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBS2hELGlCQUFpQjtzQkFBMUIsTUFBTTtnQkFJRyxnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBK0VQLE1BQU07c0JBREwsWUFBWTt1QkFBQyxtQkFBbUIsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyQ29udGVudENoZWNrZWQsXG4gIEFmdGVyQ29udGVudEluaXQsXG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0TGlzdGVuZXIsXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkLFxuICBBZnRlclZpZXdJbml0LFxuICBRdWVyeUxpc3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBOYXZDb250cm9sbGVyIH0gZnJvbSAnLi4vLi4vcHJvdmlkZXJzL25hdi1jb250cm9sbGVyJztcblxuaW1wb3J0IHsgU3RhY2tEaWRDaGFuZ2VFdmVudCwgU3RhY2tXaWxsQ2hhbmdlRXZlbnQgfSBmcm9tICcuL3N0YWNrLXV0aWxzJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnaW9uLXRhYnMnLFxufSlcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLWNsYXNzLXN1ZmZpeFxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIElvblRhYnMgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBBZnRlckNvbnRlbnRJbml0LCBBZnRlckNvbnRlbnRDaGVja2VkIHtcbiAgLyoqXG4gICAqIE5vdGU6IFRoZXNlIG11c3QgYmUgcmVkZWNsYXJlZCBvbiBlYWNoIGNoaWxkIGNsYXNzIHNpbmNlIGl0IG5lZWRzXG4gICAqIGFjY2VzcyB0byBnZW5lcmF0ZWQgY29tcG9uZW50cyBzdWNoIGFzIElvblJvdXRlck91dGxldCBhbmQgSW9uVGFiQmFyLlxuICAgKi9cbiAgYWJzdHJhY3Qgb3V0bGV0OiBhbnk7XG4gIGFic3RyYWN0IHRhYkJhcjogYW55O1xuICBhYnN0cmFjdCB0YWJCYXJzOiBRdWVyeUxpc3Q8YW55PjtcbiAgYWJzdHJhY3QgdGFiczogUXVlcnlMaXN0PGFueT47XG5cbiAgQFZpZXdDaGlsZCgndGFic0lubmVyJywgeyByZWFkOiBFbGVtZW50UmVmLCBzdGF0aWM6IHRydWUgfSkgdGFic0lubmVyOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcblxuICAvKipcbiAgICogRW1pdHRlZCBiZWZvcmUgdGhlIHRhYiB2aWV3IGlzIGNoYW5nZWQuXG4gICAqL1xuICBAT3V0cHV0KCkgaW9uVGFic1dpbGxDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHsgdGFiOiBzdHJpbmcgfT4oKTtcbiAgLyoqXG4gICAqIEVtaXR0ZWQgYWZ0ZXIgdGhlIHRhYiB2aWV3IGlzIGNoYW5nZWQuXG4gICAqL1xuICBAT3V0cHV0KCkgaW9uVGFic0RpZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8eyB0YWI6IHN0cmluZyB9PigpO1xuXG4gIHByaXZhdGUgdGFiQmFyU2xvdCA9ICdib3R0b20nO1xuXG4gIHByaXZhdGUgaGFzVGFiID0gZmFsc2U7XG4gIHByaXZhdGUgc2VsZWN0ZWRUYWI/OiB7IHRhYjogc3RyaW5nIH07XG4gIHByaXZhdGUgbGVhdmluZ1RhYj86IGFueTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG5hdkN0cmw6IE5hdkNvbnRyb2xsZXIpIHt9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIC8qKlxuICAgICAqIERldmVsb3BlcnMgbXVzdCBwYXNzIGF0IGxlYXN0IG9uZSBpb24tdGFiXG4gICAgICogaW5zaWRlIG9mIGlvbi10YWJzIGlmIHRoZXkgd2FudCB0byB1c2UgYVxuICAgICAqIGJhc2ljIHRhYi1iYXNlZCBuYXZpZ2F0aW9uIHdpdGhvdXQgdGhlXG4gICAgICogaGlzdG9yeSBzdGFjayBvciBVUkwgdXBkYXRlcyBhc3NvY2lhdGVkXG4gICAgICogd2l0aCB0aGUgcm91dGVyLlxuICAgICAqL1xuICAgIGNvbnN0IGZpcnN0VGFiID0gdGhpcy50YWJzLmxlbmd0aCA+IDAgPyB0aGlzLnRhYnMuZmlyc3QgOiB1bmRlZmluZWQ7XG5cbiAgICBpZiAoZmlyc3RUYWIpIHtcbiAgICAgIHRoaXMuaGFzVGFiID0gdHJ1ZTtcbiAgICAgIHRoaXMuc2V0QWN0aXZlVGFiKGZpcnN0VGFiLnRhYik7XG4gICAgICB0aGlzLnRhYlN3aXRjaCgpO1xuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmRldGVjdFNsb3RDaGFuZ2VzKCk7XG4gIH1cblxuICBuZ0FmdGVyQ29udGVudENoZWNrZWQoKTogdm9pZCB7XG4gICAgdGhpcy5kZXRlY3RTbG90Q2hhbmdlcygpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgb25TdGFja1dpbGxDaGFuZ2UoeyBlbnRlcmluZ1ZpZXcsIHRhYlN3aXRjaCB9OiBTdGFja1dpbGxDaGFuZ2VFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IHN0YWNrSWQgPSBlbnRlcmluZ1ZpZXcuc3RhY2tJZDtcbiAgICBpZiAodGFiU3dpdGNoICYmIHN0YWNrSWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5pb25UYWJzV2lsbENoYW5nZS5lbWl0KHsgdGFiOiBzdGFja0lkIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIG9uU3RhY2tEaWRDaGFuZ2UoeyBlbnRlcmluZ1ZpZXcsIHRhYlN3aXRjaCB9OiBTdGFja0RpZENoYW5nZUV2ZW50KTogdm9pZCB7XG4gICAgY29uc3Qgc3RhY2tJZCA9IGVudGVyaW5nVmlldy5zdGFja0lkO1xuICAgIGlmICh0YWJTd2l0Y2ggJiYgc3RhY2tJZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBpZiAodGhpcy50YWJCYXIpIHtcbiAgICAgICAgdGhpcy50YWJCYXIuc2VsZWN0ZWRUYWIgPSBzdGFja0lkO1xuICAgICAgfVxuICAgICAgdGhpcy5pb25UYWJzRGlkQ2hhbmdlLmVtaXQoeyB0YWI6IHN0YWNrSWQgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFdoZW4gYSB0YWIgYnV0dG9uIGlzIGNsaWNrZWQsIHRoZXJlIGFyZSBzZXZlcmFsIHNjZW5hcmlvczpcbiAgICogMS4gSWYgdGhlIHNlbGVjdGVkIHRhYiBpcyBjdXJyZW50bHkgYWN0aXZlICh0aGUgdGFiIGJ1dHRvbiBoYXMgYmVlbiBjbGlja2VkXG4gICAqICAgIGFnYWluKSwgdGhlbiBpdCBzaG91bGQgZ28gdG8gdGhlIHJvb3QgdmlldyBmb3IgdGhhdCB0YWIuXG4gICAqXG4gICAqICAgYS4gR2V0IHRoZSBzYXZlZCByb290IHZpZXcgZnJvbSB0aGUgcm91dGVyIG91dGxldC4gSWYgdGhlIHNhdmVkIHJvb3Qgdmlld1xuICAgKiAgICAgIG1hdGNoZXMgdGhlIHRhYlJvb3RVcmwsIHNldCB0aGUgcm91dGUgdmlldyB0byB0aGlzIHZpZXcgaW5jbHVkaW5nIHRoZVxuICAgKiAgICAgIG5hdmlnYXRpb24gZXh0cmFzLlxuICAgKiAgIGIuIElmIHRoZSBzYXZlZCByb290IHZpZXcgZnJvbSB0aGUgcm91dGVyIG91dGxldCBkb2VzXG4gICAqICAgICAgbm90IG1hdGNoLCBuYXZpZ2F0ZSB0byB0aGUgdGFiUm9vdFVybC4gTm8gbmF2aWdhdGlvbiBleHRyYXMgYXJlXG4gICAqICAgICAgaW5jbHVkZWQuXG4gICAqXG4gICAqIDIuIElmIHRoZSBjdXJyZW50IHRhYiB0YWIgaXMgbm90IGN1cnJlbnRseSBzZWxlY3RlZCwgZ2V0IHRoZSBsYXN0IHJvdXRlXG4gICAqICAgIHZpZXcgZnJvbSB0aGUgcm91dGVyIG91dGxldC5cbiAgICpcbiAgICogICBhLiBJZiB0aGUgbGFzdCByb3V0ZSB2aWV3IGV4aXN0cywgbmF2aWdhdGUgdG8gdGhhdCB2aWV3IGluY2x1ZGluZyBhbnlcbiAgICogICAgICBuYXZpZ2F0aW9uIGV4dHJhc1xuICAgKiAgIGIuIElmIHRoZSBsYXN0IHJvdXRlIHZpZXcgZG9lc24ndCBleGlzdCwgdGhlbiBuYXZpZ2F0ZVxuICAgKiAgICAgIHRvIHRoZSBkZWZhdWx0IHRhYlJvb3RVcmxcbiAgICovXG4gIEBIb3N0TGlzdGVuZXIoJ2lvblRhYkJ1dHRvbkNsaWNrJywgWyckZXZlbnQnXSlcbiAgc2VsZWN0KHRhYk9yRXZlbnQ6IHN0cmluZyB8IEN1c3RvbUV2ZW50KTogUHJvbWlzZTxib29sZWFuPiB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgaXNUYWJTdHJpbmcgPSB0eXBlb2YgdGFiT3JFdmVudCA9PT0gJ3N0cmluZyc7XG4gICAgY29uc3QgdGFiID0gaXNUYWJTdHJpbmcgPyB0YWJPckV2ZW50IDogKHRhYk9yRXZlbnQgYXMgQ3VzdG9tRXZlbnQpLmRldGFpbC50YWI7XG5cbiAgICAvKipcbiAgICAgKiBJZiB0aGUgdGFicyBhcmUgbm90IHVzaW5nIHRoZSByb3V0ZXIsIHRoZW5cbiAgICAgKiB0aGUgdGFiIHN3aXRjaCBsb2dpYyBpcyBoYW5kbGVkIGJ5IHRoZSB0YWJzXG4gICAgICogY29tcG9uZW50IGl0c2VsZi5cbiAgICAgKi9cbiAgICBpZiAodGhpcy5oYXNUYWIpIHtcbiAgICAgIHRoaXMuc2V0QWN0aXZlVGFiKHRhYik7XG4gICAgICB0aGlzLnRhYlN3aXRjaCgpO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgYWxyZWFkeVNlbGVjdGVkID0gdGhpcy5vdXRsZXQuZ2V0QWN0aXZlU3RhY2tJZCgpID09PSB0YWI7XG4gICAgY29uc3QgdGFiUm9vdFVybCA9IGAke3RoaXMub3V0bGV0LnRhYnNQcmVmaXh9LyR7dGFifWA7XG5cbiAgICAvKipcbiAgICAgKiBJZiB0aGlzIGlzIGEgbmVzdGVkIHRhYiwgcHJldmVudCB0aGUgZXZlbnRcbiAgICAgKiBmcm9tIGJ1YmJsaW5nIG90aGVyd2lzZSB0aGUgb3V0ZXIgdGFic1xuICAgICAqIHdpbGwgcmVzcG9uZCB0byB0aGlzIGV2ZW50IHRvbywgY2F1c2luZ1xuICAgICAqIHRoZSBhcHAgdG8gZ2V0IGRpcmVjdGVkIHRvIHRoZSB3cm9uZyBwbGFjZS5cbiAgICAgKi9cbiAgICBpZiAoIWlzVGFiU3RyaW5nKSB7XG4gICAgICAodGFiT3JFdmVudCBhcyBDdXN0b21FdmVudCkuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfVxuXG4gICAgaWYgKGFscmVhZHlTZWxlY3RlZCkge1xuICAgICAgY29uc3QgYWN0aXZlU3RhY2tJZCA9IHRoaXMub3V0bGV0LmdldEFjdGl2ZVN0YWNrSWQoKTtcbiAgICAgIGNvbnN0IGFjdGl2ZVZpZXcgPSB0aGlzLm91dGxldC5nZXRMYXN0Um91dGVWaWV3KGFjdGl2ZVN0YWNrSWQpO1xuXG4gICAgICAvLyBJZiBvbiByb290IHRhYiwgZG8gbm90IG5hdmlnYXRlIHRvIHJvb3QgdGFiIGFnYWluXG4gICAgICBpZiAoYWN0aXZlVmlldz8udXJsID09PSB0YWJSb290VXJsKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3Qgcm9vdFZpZXcgPSB0aGlzLm91dGxldC5nZXRSb290Vmlldyh0YWIpO1xuICAgICAgY29uc3QgbmF2aWdhdGlvbkV4dHJhcyA9IHJvb3RWaWV3ICYmIHRhYlJvb3RVcmwgPT09IHJvb3RWaWV3LnVybCAmJiByb290Vmlldy5zYXZlZEV4dHJhcztcbiAgICAgIHJldHVybiB0aGlzLm5hdkN0cmwubmF2aWdhdGVSb290KHRhYlJvb3RVcmwsIHtcbiAgICAgICAgLi4ubmF2aWdhdGlvbkV4dHJhcyxcbiAgICAgICAgYW5pbWF0ZWQ6IHRydWUsXG4gICAgICAgIGFuaW1hdGlvbkRpcmVjdGlvbjogJ2JhY2snLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGxhc3RSb3V0ZSA9IHRoaXMub3V0bGV0LmdldExhc3RSb3V0ZVZpZXcodGFiKTtcbiAgICAgIC8qKlxuICAgICAgICogSWYgdGhlcmUgaXMgYSBsYXN0Um91dGUsIGdvdG8gdGhhdCwgb3RoZXJ3aXNlIGdvdG8gdGhlIGZhbGxiYWNrIHVybCBvZiB0aGVcbiAgICAgICAqIHNlbGVjdGVkIHRhYlxuICAgICAgICovXG4gICAgICBjb25zdCB1cmwgPSBsYXN0Um91dGU/LnVybCB8fCB0YWJSb290VXJsO1xuICAgICAgY29uc3QgbmF2aWdhdGlvbkV4dHJhcyA9IGxhc3RSb3V0ZT8uc2F2ZWRFeHRyYXM7XG5cbiAgICAgIHJldHVybiB0aGlzLm5hdkN0cmwubmF2aWdhdGVSb290KHVybCwge1xuICAgICAgICAuLi5uYXZpZ2F0aW9uRXh0cmFzLFxuICAgICAgICBhbmltYXRlZDogdHJ1ZSxcbiAgICAgICAgYW5pbWF0aW9uRGlyZWN0aW9uOiAnYmFjaycsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNldEFjdGl2ZVRhYih0YWI6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IHRhYnMgPSB0aGlzLnRhYnM7XG4gICAgY29uc3Qgc2VsZWN0ZWRUYWIgPSB0YWJzLmZpbmQoKHQ6IGFueSkgPT4gdC50YWIgPT09IHRhYik7XG5cbiAgICBpZiAoIXNlbGVjdGVkVGFiKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGBbSW9uaWMgRXJyb3JdOiBUYWIgd2l0aCBpZDogXCIke3RhYn1cIiBkb2VzIG5vdCBleGlzdGApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMubGVhdmluZ1RhYiA9IHRoaXMuc2VsZWN0ZWRUYWI7XG4gICAgdGhpcy5zZWxlY3RlZFRhYiA9IHNlbGVjdGVkVGFiO1xuXG4gICAgdGhpcy5pb25UYWJzV2lsbENoYW5nZS5lbWl0KHsgdGFiIH0pO1xuXG4gICAgc2VsZWN0ZWRUYWIuZWwuYWN0aXZlID0gdHJ1ZTtcbiAgfVxuXG4gIHByaXZhdGUgdGFiU3dpdGNoKCk6IHZvaWQge1xuICAgIGNvbnN0IHsgc2VsZWN0ZWRUYWIsIGxlYXZpbmdUYWIgfSA9IHRoaXM7XG5cbiAgICBpZiAodGhpcy50YWJCYXIgJiYgc2VsZWN0ZWRUYWIpIHtcbiAgICAgIHRoaXMudGFiQmFyLnNlbGVjdGVkVGFiID0gc2VsZWN0ZWRUYWIudGFiO1xuICAgIH1cblxuICAgIGlmIChsZWF2aW5nVGFiPy50YWIgIT09IHNlbGVjdGVkVGFiPy50YWIpIHtcbiAgICAgIGlmIChsZWF2aW5nVGFiPy5lbCkge1xuICAgICAgICBsZWF2aW5nVGFiLmVsLmFjdGl2ZSA9IGZhbHNlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChzZWxlY3RlZFRhYikge1xuICAgICAgdGhpcy5pb25UYWJzRGlkQ2hhbmdlLmVtaXQoeyB0YWI6IHNlbGVjdGVkVGFiLnRhYiB9KTtcbiAgICB9XG4gIH1cblxuICBnZXRTZWxlY3RlZCgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIGlmICh0aGlzLmhhc1RhYikge1xuICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRUYWI/LnRhYjtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5vdXRsZXQuZ2V0QWN0aXZlU3RhY2tJZCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIERldGVjdHMgY2hhbmdlcyB0byB0aGUgc2xvdCBhdHRyaWJ1dGUgb2YgdGhlIHRhYiBiYXIuXG4gICAqXG4gICAqIElmIHRoZSBzbG90IGF0dHJpYnV0ZSBoYXMgY2hhbmdlZCwgdGhlbiB0aGUgdGFiIGJhclxuICAgKiBzaG91bGQgYmUgcmVsb2NhdGVkIHRvIHRoZSBuZXcgc2xvdCBwb3NpdGlvbi5cbiAgICovXG4gIHByaXZhdGUgZGV0ZWN0U2xvdENoYW5nZXMoKTogdm9pZCB7XG4gICAgdGhpcy50YWJCYXJzLmZvckVhY2goKHRhYkJhcjogYW55KSA9PiB7XG4gICAgICAvLyBlbCBpcyBhIHByb3RlY3RlZCBhdHRyaWJ1dGUgZnJvbSB0aGUgZ2VuZXJhdGVkIGNvbXBvbmVudCB3cmFwcGVyXG4gICAgICBjb25zdCBjdXJyZW50U2xvdCA9IHRhYkJhci5lbC5nZXRBdHRyaWJ1dGUoJ3Nsb3QnKTtcblxuICAgICAgaWYgKGN1cnJlbnRTbG90ICE9PSB0aGlzLnRhYkJhclNsb3QpIHtcbiAgICAgICAgdGhpcy50YWJCYXJTbG90ID0gY3VycmVudFNsb3Q7XG4gICAgICAgIHRoaXMucmVsb2NhdGVUYWJCYXIoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWxvY2F0ZXMgdGhlIHRhYiBiYXIgdG8gdGhlIG5ldyBzbG90IHBvc2l0aW9uLlxuICAgKi9cbiAgcHJpdmF0ZSByZWxvY2F0ZVRhYkJhcigpOiB2b2lkIHtcbiAgICAvKipcbiAgICAgKiBgZWxgIGlzIGEgcHJvdGVjdGVkIGF0dHJpYnV0ZSBmcm9tIHRoZSBnZW5lcmF0ZWQgY29tcG9uZW50IHdyYXBwZXIuXG4gICAgICogVG8gYXZvaWQgaGF2aW5nIHRvIG1hbnVhbGx5IGNyZWF0ZSB0aGUgd3JhcHBlciBmb3IgdGFiIGJhciwgd2VcbiAgICAgKiBjYXN0IHRoZSB0YWIgYmFyIHRvIGFueSBhbmQgYWNjZXNzIHRoZSBwcm90ZWN0ZWQgYXR0cmlidXRlLlxuICAgICAqL1xuICAgIGNvbnN0IHRhYkJhciA9ICh0aGlzLnRhYkJhciBhcyBhbnkpLmVsIGFzIEhUTUxFbGVtZW50O1xuXG4gICAgaWYgKHRoaXMudGFiQmFyU2xvdCA9PT0gJ3RvcCcpIHtcbiAgICAgIC8qKlxuICAgICAgICogQSB0YWIgYmFyIHdpdGggYSBzbG90IG9mIFwidG9wXCIgc2hvdWxkIGJlIGluc2VydGVkXG4gICAgICAgKiBhdCB0aGUgdG9wIG9mIHRoZSBjb250YWluZXIuXG4gICAgICAgKi9cbiAgICAgIHRoaXMudGFic0lubmVyLm5hdGl2ZUVsZW1lbnQuYmVmb3JlKHRhYkJhcik7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8qKlxuICAgICAgICogQSB0YWIgYmFyIHdpdGggYSBzbG90IG9mIFwiYm90dG9tXCIgb3Igd2l0aG91dCBhIHNsb3RcbiAgICAgICAqIHNob3VsZCBiZSBpbnNlcnRlZCBhdCB0aGUgZW5kIG9mIHRoZSBjb250YWluZXIuXG4gICAgICAgKi9cbiAgICAgIHRoaXMudGFic0lubmVyLm5hdGl2ZUVsZW1lbnQuYWZ0ZXIodGFiQmFyKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
279
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFicy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2NvbW1vbi9zcmMvZGlyZWN0aXZlcy9uYXZpZ2F0aW9uL3RhYnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFlBQVksRUFDWixNQUFNLEVBQ04sU0FBUyxHQUdWLE1BQU0sZUFBZSxDQUFDOzs7QUFPdkI7OztHQUdHO0FBQ0gsTUFBTSxlQUFlLEdBQUcsQ0FBQyxJQUF3QixFQUEyRCxFQUFFO0lBQzVHLElBQUksQ0FBQyxJQUFJLEVBQUU7UUFDVCxPQUFPLFNBQVMsQ0FBQztLQUNsQjtJQUVELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDcEMsc0RBQXNEO0lBQ3RELE1BQU0sUUFBUSxHQUFHLFNBQVMsSUFBSSxDQUFDLElBQUksU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ3ZHLE1BQU0sVUFBVSxHQUFHLFNBQVMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFFcEUsTUFBTSxVQUFVLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMzQyxNQUFNLE1BQU0sR0FBRyxVQUFVLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBRXZFLElBQUksV0FBK0IsQ0FBQztJQUNwQyxJQUFJLE1BQU0sRUFBRTtRQUNWLE1BQU0sTUFBTSxHQUFHLElBQUksZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzNDLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDakIsS0FBSyxNQUFNLEdBQUcsSUFBSSxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRTtZQUN4QyxNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQy9CLFdBQVcsQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDbEQ7S0FDRjtJQUVELElBQUksQ0FBQyxXQUFXLElBQUksUUFBUSxLQUFLLFNBQVMsRUFBRTtRQUMxQyxPQUFPLFNBQVMsQ0FBQztLQUNsQjtJQUVEOzs7O09BSUc7SUFDSCxNQUFNLE1BQU0sR0FBZ0QsRUFBRSxDQUFDO0lBQy9ELElBQUksV0FBVztRQUFFLE1BQU0sQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO0lBQ2xELElBQUksUUFBUSxLQUFLLFNBQVM7UUFBRSxNQUFNLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztJQUN2RCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDLENBQUM7QUFFRixNQUlzQixPQUFPO0lBMkJQO0lBakJ3QyxTQUFTLENBQTZCO0lBRWxHOztPQUVHO0lBQ08saUJBQWlCLEdBQUcsSUFBSSxZQUFZLEVBQW1CLENBQUM7SUFDbEU7O09BRUc7SUFDTyxnQkFBZ0IsR0FBRyxJQUFJLFlBQVksRUFBbUIsQ0FBQztJQUV6RCxVQUFVLEdBQUcsUUFBUSxDQUFDO0lBRXRCLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFDZixXQUFXLENBQW1CO0lBQzlCLFVBQVUsQ0FBTztJQUV6QixZQUFvQixPQUFzQjtRQUF0QixZQUFPLEdBQVAsT0FBTyxDQUFlO0lBQUcsQ0FBQztJQUU5QyxlQUFlO1FBQ2I7Ozs7OztXQU1HO1FBQ0gsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBRXBFLElBQUksUUFBUSxFQUFFO1lBQ1osSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7WUFDbkIsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDaEMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1NBQ2xCO0lBQ0gsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQscUJBQXFCO1FBQ25CLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRDs7T0FFRztJQUNILGlCQUFpQixDQUFDLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBd0I7UUFDakUsTUFBTSxPQUFPLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQztRQUNyQyxJQUFJLFNBQVMsSUFBSSxPQUFPLEtBQUssU0FBUyxFQUFFO1lBQ3RDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztTQUMvQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNILGdCQUFnQixDQUFDLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBdUI7UUFDL0QsTUFBTSxPQUFPLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQztRQUNyQyxJQUFJLFNBQVMsSUFBSSxPQUFPLEtBQUssU0FBUyxFQUFFO1lBQ3RDLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtnQkFDZixJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUM7YUFDbkM7WUFDRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7U0FDOUM7SUFDSCxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQXFCRztJQUVILE1BQU0sQ0FBQyxVQUFnQztRQUNyQyxNQUFNLFdBQVcsR0FBRyxPQUFPLFVBQVUsS0FBSyxRQUFRLENBQUM7UUFDbkQsTUFBTSxHQUFHLEdBQUcsV0FBVyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFFLFVBQTBCLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQztRQUM5RSxNQUFNLElBQUksR0FBdUIsV0FBVyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFFLFVBQTBCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztRQUVuRzs7OztXQUlHO1FBQ0gsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2YsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN2QixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFFakIsT0FBTztTQUNSO1FBRUQsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRSxLQUFLLEdBQUcsQ0FBQztRQUMvRCxNQUFNLFVBQVUsR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBRXREOzs7V0FHRztRQUNILE1BQU0sVUFBVSxHQUFHLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUV6Qzs7Ozs7V0FLRztRQUNILElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDZixVQUEwQixDQUFDLGVBQWUsRUFBRSxDQUFDO1NBQy9DO1FBRUQsSUFBSSxlQUFlLEVBQUU7WUFDbkIsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQ3JELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLENBQUM7WUFFL0Qsb0RBQW9EO1lBQ3BELElBQUksVUFBVSxFQUFFLEdBQUcsS0FBSyxVQUFVLEVBQUU7Z0JBQ2xDLE9BQU87YUFDUjtZQUVELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzlDLE1BQU0sZ0JBQWdCLEdBQUcsUUFBUSxJQUFJLFVBQVUsS0FBSyxRQUFRLENBQUMsR0FBRyxJQUFJLFFBQVEsQ0FBQyxXQUFXLENBQUM7WUFDekYsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUU7Z0JBQzNDLEdBQUcsZ0JBQWdCO2dCQUNuQixHQUFHLFVBQVU7Z0JBQ2IsUUFBUSxFQUFFLElBQUk7Z0JBQ2Qsa0JBQWtCLEVBQUUsTUFBTTthQUMzQixDQUFDLENBQUM7U0FDSjthQUFNO1lBQ0wsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNwRDs7OztlQUlHO1lBQ0gsTUFBTSxHQUFHLEdBQUcsU0FBUyxFQUFFLEdBQUcsSUFBSSxVQUFVLENBQUM7WUFDekMsTUFBTSxnQkFBZ0IsR0FBRyxTQUFTLEVBQUUsV0FBVyxJQUFJLENBQUMsR0FBRyxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUVqRyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEdBQUcsRUFBRTtnQkFDcEMsR0FBRyxnQkFBZ0I7Z0JBQ25CLFFBQVEsRUFBRSxJQUFJO2dCQUNkLGtCQUFrQixFQUFFLE1BQU07YUFDM0IsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDO0lBRU8sWUFBWSxDQUFDLEdBQVc7UUFDOUIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUN2QixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBRXpELElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDaEIsT0FBTyxDQUFDLEtBQUssQ0FBQyxnQ0FBZ0MsR0FBRyxrQkFBa0IsQ0FBQyxDQUFDO1lBQ3JFLE9BQU87U0FDUjtRQUVELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUNuQyxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztRQUUvQixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUVyQyxXQUFXLENBQUMsRUFBRSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7SUFDL0IsQ0FBQztJQUVPLFNBQVM7UUFDZixNQUFNLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxHQUFHLElBQUksQ0FBQztRQUV6QyxJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksV0FBVyxFQUFFO1lBQzlCLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQyxHQUFHLENBQUM7U0FDM0M7UUFFRCxJQUFJLFVBQVUsRUFBRSxHQUFHLEtBQUssV0FBVyxFQUFFLEdBQUcsRUFBRTtZQUN4QyxJQUFJLFVBQVUsRUFBRSxFQUFFLEVBQUU7Z0JBQ2xCLFVBQVUsQ0FBQyxFQUFFLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQzthQUM5QjtTQUNGO1FBRUQsSUFBSSxXQUFXLEVBQUU7WUFDZixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLFdBQVcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1NBQ3REO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDZixPQUFPLElBQUksQ0FBQyxXQUFXLEVBQUUsR0FBRyxDQUFDO1NBQzlCO1FBRUQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ssaUJBQWlCO1FBQ3ZCLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBVyxFQUFFLEVBQUU7WUFDbkMsbUVBQW1FO1lBQ25FLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBRW5ELElBQUksV0FBVyxLQUFLLElBQUksQ0FBQyxVQUFVLEVBQUU7Z0JBQ25DLElBQUksQ0FBQyxVQUFVLEdBQUcsV0FBVyxDQUFDO2dCQUM5QixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7YUFDdkI7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNLLGNBQWM7UUFDcEI7Ozs7V0FJRztRQUNILE1BQU0sTUFBTSxHQUFJLElBQUksQ0FBQyxNQUFjLENBQUMsRUFBaUIsQ0FBQztRQUV0RCxJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssS0FBSyxFQUFFO1lBQzdCOzs7ZUFHRztZQUNILElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUM3QzthQUFNO1lBQ0w7OztlQUdHO1lBQ0gsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQzVDO0lBQ0gsQ0FBQzsySEFoUW1CLE9BQU87K0dBQVAsT0FBTyw4UkFVSyxVQUFVOztTQVZ0QixPQUFPOzRGQUFQLE9BQU87a0JBSjVCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFVBQVU7aUJBQ3JCO29HQVk2RCxTQUFTO3NCQUFwRSxTQUFTO3VCQUFDLFdBQVcsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFLaEQsaUJBQWlCO3NCQUExQixNQUFNO2dCQUlHLGdCQUFnQjtzQkFBekIsTUFBTTtnQkFpRlAsTUFBTTtzQkFETCxZQUFZO3VCQUFDLG1CQUFtQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJDb250ZW50Q2hlY2tlZCxcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RMaXN0ZW5lcixcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGQsXG4gIEFmdGVyVmlld0luaXQsXG4gIFF1ZXJ5TGlzdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgdHlwZSB7IFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7IE5hdkNvbnRyb2xsZXIgfSBmcm9tICcuLi8uLi9wcm92aWRlcnMvbmF2LWNvbnRyb2xsZXInO1xuXG5pbXBvcnQgeyBTdGFja0RpZENoYW5nZUV2ZW50LCBTdGFja1dpbGxDaGFuZ2VFdmVudCB9IGZyb20gJy4vc3RhY2stdXRpbHMnO1xuXG4vKipcbiAqIEV4dHJhY3RzIGBxdWVyeVBhcmFtc2AgYW5kIGBmcmFnbWVudGAgZnJvbSBhIHRhYiBidXR0b24ncyBocmVmIGZvciB1c2VcbiAqIGFzIEFuZ3VsYXIgYE5hdmlnYXRpb25FeHRyYXNgLiBSZXR1cm5zIGB1bmRlZmluZWRgIHdoZW4gbmVpdGhlciBpcyBwcmVzZW50LlxuICovXG5jb25zdCBwYXJzZUhyZWZFeHRyYXMgPSAoaHJlZjogc3RyaW5nIHwgdW5kZWZpbmVkKTogeyBxdWVyeVBhcmFtcz86IFBhcmFtczsgZnJhZ21lbnQ/OiBzdHJpbmcgfSB8IHVuZGVmaW5lZCA9PiB7XG4gIGlmICghaHJlZikge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBjb25zdCBoYXNoSW5kZXggPSBocmVmLmluZGV4T2YoJyMnKTtcbiAgLy8gVHJlYXQgYSBiYXJlIGAjYCAobm8gZnJhZ21lbnQgdGV4dCkgYXMgbm8gZnJhZ21lbnQuXG4gIGNvbnN0IGZyYWdtZW50ID0gaGFzaEluZGV4ID49IDAgJiYgaGFzaEluZGV4IDwgaHJlZi5sZW5ndGggLSAxID8gaHJlZi5zbGljZShoYXNoSW5kZXggKyAxKSA6IHVuZGVmaW5lZDtcbiAgY29uc3QgYmVmb3JlSGFzaCA9IGhhc2hJbmRleCA+PSAwID8gaHJlZi5zbGljZSgwLCBoYXNoSW5kZXgpIDogaHJlZjtcblxuICBjb25zdCBxdWVyeUluZGV4ID0gYmVmb3JlSGFzaC5pbmRleE9mKCc/Jyk7XG4gIGNvbnN0IHNlYXJjaCA9IHF1ZXJ5SW5kZXggPj0gMCA/IGJlZm9yZUhhc2guc2xpY2UocXVlcnlJbmRleCArIDEpIDogJyc7XG5cbiAgbGV0IHF1ZXJ5UGFyYW1zOiBQYXJhbXMgfCB1bmRlZmluZWQ7XG4gIGlmIChzZWFyY2gpIHtcbiAgICBjb25zdCBwYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHNlYXJjaCk7XG4gICAgcXVlcnlQYXJhbXMgPSB7fTtcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBuZXcgU2V0KHBhcmFtcy5rZXlzKCkpKSB7XG4gICAgICBjb25zdCBhbGwgPSBwYXJhbXMuZ2V0QWxsKGtleSk7XG4gICAgICBxdWVyeVBhcmFtc1trZXldID0gYWxsLmxlbmd0aCA+IDEgPyBhbGwgOiBhbGxbMF07XG4gICAgfVxuICB9XG5cbiAgaWYgKCFxdWVyeVBhcmFtcyAmJiBmcmFnbWVudCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZCB0aGUgcmVzdWx0IHdpdGggb25seSB0aGUgcG9wdWxhdGVkIGtleXMgc28gdGhhdCBhIHNwcmVhZCBvZiB0aGVcbiAgICogcmV0dXJuZWQgb2JqZWN0IGRvZXMgbm90IG92ZXJ3cml0ZSBzYXZlZCBgcXVlcnlQYXJhbXNgL2BmcmFnbWVudGAgd2l0aFxuICAgKiBgdW5kZWZpbmVkYCAod2hpY2ggYE9iamVjdC5hc3NpZ25gL3NwcmVhZCB3b3VsZCBjb3B5IGFzIGEgcmVhbCBrZXkpLlxuICAgKi9cbiAgY29uc3QgZXh0cmFzOiB7IHF1ZXJ5UGFyYW1zPzogUGFyYW1zOyBmcmFnbWVudD86IHN0cmluZyB9ID0ge307XG4gIGlmIChxdWVyeVBhcmFtcykgZXh0cmFzLnF1ZXJ5UGFyYW1zID0gcXVlcnlQYXJhbXM7XG4gIGlmIChmcmFnbWVudCAhPT0gdW5kZWZpbmVkKSBleHRyYXMuZnJhZ21lbnQgPSBmcmFnbWVudDtcbiAgcmV0dXJuIGV4dHJhcztcbn07XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ2lvbi10YWJzJyxcbn0pXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1jbGFzcy1zdWZmaXhcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBJb25UYWJzIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgQWZ0ZXJDb250ZW50SW5pdCwgQWZ0ZXJDb250ZW50Q2hlY2tlZCB7XG4gIC8qKlxuICAgKiBOb3RlOiBUaGVzZSBtdXN0IGJlIHJlZGVjbGFyZWQgb24gZWFjaCBjaGlsZCBjbGFzcyBzaW5jZSBpdCBuZWVkc1xuICAgKiBhY2Nlc3MgdG8gZ2VuZXJhdGVkIGNvbXBvbmVudHMgc3VjaCBhcyBJb25Sb3V0ZXJPdXRsZXQgYW5kIElvblRhYkJhci5cbiAgICovXG4gIGFic3RyYWN0IG91dGxldDogYW55O1xuICBhYnN0cmFjdCB0YWJCYXI6IGFueTtcbiAgYWJzdHJhY3QgdGFiQmFyczogUXVlcnlMaXN0PGFueT47XG4gIGFic3RyYWN0IHRhYnM6IFF1ZXJ5TGlzdDxhbnk+O1xuXG4gIEBWaWV3Q2hpbGQoJ3RhYnNJbm5lcicsIHsgcmVhZDogRWxlbWVudFJlZiwgc3RhdGljOiB0cnVlIH0pIHRhYnNJbm5lcjogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XG5cbiAgLyoqXG4gICAqIEVtaXR0ZWQgYmVmb3JlIHRoZSB0YWIgdmlldyBpcyBjaGFuZ2VkLlxuICAgKi9cbiAgQE91dHB1dCgpIGlvblRhYnNXaWxsQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjx7IHRhYjogc3RyaW5nIH0+KCk7XG4gIC8qKlxuICAgKiBFbWl0dGVkIGFmdGVyIHRoZSB0YWIgdmlldyBpcyBjaGFuZ2VkLlxuICAgKi9cbiAgQE91dHB1dCgpIGlvblRhYnNEaWRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHsgdGFiOiBzdHJpbmcgfT4oKTtcblxuICBwcml2YXRlIHRhYkJhclNsb3QgPSAnYm90dG9tJztcblxuICBwcml2YXRlIGhhc1RhYiA9IGZhbHNlO1xuICBwcml2YXRlIHNlbGVjdGVkVGFiPzogeyB0YWI6IHN0cmluZyB9O1xuICBwcml2YXRlIGxlYXZpbmdUYWI/OiBhbnk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBuYXZDdHJsOiBOYXZDb250cm9sbGVyKSB7fVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAvKipcbiAgICAgKiBEZXZlbG9wZXJzIG11c3QgcGFzcyBhdCBsZWFzdCBvbmUgaW9uLXRhYlxuICAgICAqIGluc2lkZSBvZiBpb24tdGFicyBpZiB0aGV5IHdhbnQgdG8gdXNlIGFcbiAgICAgKiBiYXNpYyB0YWItYmFzZWQgbmF2aWdhdGlvbiB3aXRob3V0IHRoZVxuICAgICAqIGhpc3Rvcnkgc3RhY2sgb3IgVVJMIHVwZGF0ZXMgYXNzb2NpYXRlZFxuICAgICAqIHdpdGggdGhlIHJvdXRlci5cbiAgICAgKi9cbiAgICBjb25zdCBmaXJzdFRhYiA9IHRoaXMudGFicy5sZW5ndGggPiAwID8gdGhpcy50YWJzLmZpcnN0IDogdW5kZWZpbmVkO1xuXG4gICAgaWYgKGZpcnN0VGFiKSB7XG4gICAgICB0aGlzLmhhc1RhYiA9IHRydWU7XG4gICAgICB0aGlzLnNldEFjdGl2ZVRhYihmaXJzdFRhYi50YWIpO1xuICAgICAgdGhpcy50YWJTd2l0Y2goKTtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5kZXRlY3RTbG90Q2hhbmdlcygpO1xuICB9XG5cbiAgbmdBZnRlckNvbnRlbnRDaGVja2VkKCk6IHZvaWQge1xuICAgIHRoaXMuZGV0ZWN0U2xvdENoYW5nZXMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIG9uU3RhY2tXaWxsQ2hhbmdlKHsgZW50ZXJpbmdWaWV3LCB0YWJTd2l0Y2ggfTogU3RhY2tXaWxsQ2hhbmdlRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBzdGFja0lkID0gZW50ZXJpbmdWaWV3LnN0YWNrSWQ7XG4gICAgaWYgKHRhYlN3aXRjaCAmJiBzdGFja0lkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuaW9uVGFic1dpbGxDaGFuZ2UuZW1pdCh7IHRhYjogc3RhY2tJZCB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBvblN0YWNrRGlkQ2hhbmdlKHsgZW50ZXJpbmdWaWV3LCB0YWJTd2l0Y2ggfTogU3RhY2tEaWRDaGFuZ2VFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IHN0YWNrSWQgPSBlbnRlcmluZ1ZpZXcuc3RhY2tJZDtcbiAgICBpZiAodGFiU3dpdGNoICYmIHN0YWNrSWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgaWYgKHRoaXMudGFiQmFyKSB7XG4gICAgICAgIHRoaXMudGFiQmFyLnNlbGVjdGVkVGFiID0gc3RhY2tJZDtcbiAgICAgIH1cbiAgICAgIHRoaXMuaW9uVGFic0RpZENoYW5nZS5lbWl0KHsgdGFiOiBzdGFja0lkIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBXaGVuIGEgdGFiIGJ1dHRvbiBpcyBjbGlja2VkLCB0aGVyZSBhcmUgc2V2ZXJhbCBzY2VuYXJpb3M6XG4gICAqIDEuIElmIHRoZSBzZWxlY3RlZCB0YWIgaXMgY3VycmVudGx5IGFjdGl2ZSAodGhlIHRhYiBidXR0b24gaGFzIGJlZW4gY2xpY2tlZFxuICAgKiAgICBhZ2FpbiksIHRoZW4gaXQgc2hvdWxkIGdvIHRvIHRoZSByb290IHZpZXcgZm9yIHRoYXQgdGFiLlxuICAgKlxuICAgKiAgIGEuIEdldCB0aGUgc2F2ZWQgcm9vdCB2aWV3IGZyb20gdGhlIHJvdXRlciBvdXRsZXQuIElmIHRoZSBzYXZlZCByb290IHZpZXdcbiAgICogICAgICBtYXRjaGVzIHRoZSB0YWJSb290VXJsLCBzZXQgdGhlIHJvdXRlIHZpZXcgdG8gdGhpcyB2aWV3IGluY2x1ZGluZyB0aGVcbiAgICogICAgICBuYXZpZ2F0aW9uIGV4dHJhcy4gQW55IGBxdWVyeVBhcmFtc2Agb3IgYGZyYWdtZW50YCBkZWNsYXJlZCBvbiB0aGUgdGFiXG4gICAqICAgICAgYnV0dG9uJ3MgYGhyZWZgIGFyZSBhbHNvIGZvcndhcmRlZC5cbiAgICogICBiLiBJZiB0aGUgc2F2ZWQgcm9vdCB2aWV3IGZyb20gdGhlIHJvdXRlciBvdXRsZXQgZG9lcyBub3QgbWF0Y2gsIG5hdmlnYXRlXG4gICAqICAgICAgdG8gdGhlIHRhYlJvb3RVcmwsIGZvcndhcmRpbmcgYW55IGBxdWVyeVBhcmFtc2AvYGZyYWdtZW50YCBkZWNsYXJlZCBvblxuICAgKiAgICAgIHRoZSB0YWIgYnV0dG9uJ3MgYGhyZWZgLlxuICAgKlxuICAgKiAyLiBJZiB0aGUgY3VycmVudCB0YWIgdGFiIGlzIG5vdCBjdXJyZW50bHkgc2VsZWN0ZWQsIGdldCB0aGUgbGFzdCByb3V0ZVxuICAgKiAgICB2aWV3IGZyb20gdGhlIHJvdXRlciBvdXRsZXQuXG4gICAqXG4gICAqICAgYS4gSWYgdGhlIGxhc3Qgcm91dGUgdmlldyBleGlzdHMsIG5hdmlnYXRlIHRvIHRoYXQgdmlldyBpbmNsdWRpbmcgYW55XG4gICAqICAgICAgbmF2aWdhdGlvbiBleHRyYXMuXG4gICAqICAgYi4gSWYgdGhlIGxhc3Qgcm91dGUgdmlldyBkb2Vzbid0IGV4aXN0LCB0aGVuIG5hdmlnYXRlIHRvIHRoZSBkZWZhdWx0XG4gICAqICAgICAgdGFiUm9vdFVybCwgZm9yd2FyZGluZyBhbnkgYHF1ZXJ5UGFyYW1zYC9gZnJhZ21lbnRgIGRlY2xhcmVkIG9uIHRoZVxuICAgKiAgICAgIHRhYiBidXR0b24ncyBgaHJlZmAuXG4gICAqL1xuICBASG9zdExpc3RlbmVyKCdpb25UYWJCdXR0b25DbGljaycsIFsnJGV2ZW50J10pXG4gIHNlbGVjdCh0YWJPckV2ZW50OiBzdHJpbmcgfCBDdXN0b21FdmVudCk6IFByb21pc2U8Ym9vbGVhbj4gfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IGlzVGFiU3RyaW5nID0gdHlwZW9mIHRhYk9yRXZlbnQgPT09ICdzdHJpbmcnO1xuICAgIGNvbnN0IHRhYiA9IGlzVGFiU3RyaW5nID8gdGFiT3JFdmVudCA6ICh0YWJPckV2ZW50IGFzIEN1c3RvbUV2ZW50KS5kZXRhaWwudGFiO1xuICAgIGNvbnN0IGhyZWY6IHN0cmluZyB8IHVuZGVmaW5lZCA9IGlzVGFiU3RyaW5nID8gdW5kZWZpbmVkIDogKHRhYk9yRXZlbnQgYXMgQ3VzdG9tRXZlbnQpLmRldGFpbC5ocmVmO1xuXG4gICAgLyoqXG4gICAgICogSWYgdGhlIHRhYnMgYXJlIG5vdCB1c2luZyB0aGUgcm91dGVyLCB0aGVuXG4gICAgICogdGhlIHRhYiBzd2l0Y2ggbG9naWMgaXMgaGFuZGxlZCBieSB0aGUgdGFic1xuICAgICAqIGNvbXBvbmVudCBpdHNlbGYuXG4gICAgICovXG4gICAgaWYgKHRoaXMuaGFzVGFiKSB7XG4gICAgICB0aGlzLnNldEFjdGl2ZVRhYih0YWIpO1xuICAgICAgdGhpcy50YWJTd2l0Y2goKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGFscmVhZHlTZWxlY3RlZCA9IHRoaXMub3V0bGV0LmdldEFjdGl2ZVN0YWNrSWQoKSA9PT0gdGFiO1xuICAgIGNvbnN0IHRhYlJvb3RVcmwgPSBgJHt0aGlzLm91dGxldC50YWJzUHJlZml4fS8ke3RhYn1gO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGhyZWYgcGF0aG5hbWUgaXMgaWdub3JlZCBoZXJlOyB0YWIgcm91dGluZyBpcyBkcml2ZW4gYnkgYHRhYnNQcmVmaXgvdGFiYC5cbiAgICAgKiBPbmx5IHRoZSBxdWVyeSBhbmQgZnJhZ21lbnQgYXJlIGZvcndhcmRlZCBhcyBuYXZpZ2F0aW9uIGV4dHJhcy5cbiAgICAgKi9cbiAgICBjb25zdCBocmVmRXh0cmFzID0gcGFyc2VIcmVmRXh0cmFzKGhyZWYpO1xuXG4gICAgLyoqXG4gICAgICogSWYgdGhpcyBpcyBhIG5lc3RlZCB0YWIsIHByZXZlbnQgdGhlIGV2ZW50XG4gICAgICogZnJvbSBidWJibGluZyBvdGhlcndpc2UgdGhlIG91dGVyIHRhYnNcbiAgICAgKiB3aWxsIHJlc3BvbmQgdG8gdGhpcyBldmVudCB0b28sIGNhdXNpbmdcbiAgICAgKiB0aGUgYXBwIHRvIGdldCBkaXJlY3RlZCB0byB0aGUgd3JvbmcgcGxhY2UuXG4gICAgICovXG4gICAgaWYgKCFpc1RhYlN0cmluZykge1xuICAgICAgKHRhYk9yRXZlbnQgYXMgQ3VzdG9tRXZlbnQpLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH1cblxuICAgIGlmIChhbHJlYWR5U2VsZWN0ZWQpIHtcbiAgICAgIGNvbnN0IGFjdGl2ZVN0YWNrSWQgPSB0aGlzLm91dGxldC5nZXRBY3RpdmVTdGFja0lkKCk7XG4gICAgICBjb25zdCBhY3RpdmVWaWV3ID0gdGhpcy5vdXRsZXQuZ2V0TGFzdFJvdXRlVmlldyhhY3RpdmVTdGFja0lkKTtcblxuICAgICAgLy8gSWYgb24gcm9vdCB0YWIsIGRvIG5vdCBuYXZpZ2F0ZSB0byByb290IHRhYiBhZ2FpblxuICAgICAgaWYgKGFjdGl2ZVZpZXc/LnVybCA9PT0gdGFiUm9vdFVybCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHJvb3RWaWV3ID0gdGhpcy5vdXRsZXQuZ2V0Um9vdFZpZXcodGFiKTtcbiAgICAgIGNvbnN0IG5hdmlnYXRpb25FeHRyYXMgPSByb290VmlldyAmJiB0YWJSb290VXJsID09PSByb290Vmlldy51cmwgJiYgcm9vdFZpZXcuc2F2ZWRFeHRyYXM7XG4gICAgICByZXR1cm4gdGhpcy5uYXZDdHJsLm5hdmlnYXRlUm9vdCh0YWJSb290VXJsLCB7XG4gICAgICAgIC4uLm5hdmlnYXRpb25FeHRyYXMsXG4gICAgICAgIC4uLmhyZWZFeHRyYXMsXG4gICAgICAgIGFuaW1hdGVkOiB0cnVlLFxuICAgICAgICBhbmltYXRpb25EaXJlY3Rpb246ICdiYWNrJyxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBsYXN0Um91dGUgPSB0aGlzLm91dGxldC5nZXRMYXN0Um91dGVWaWV3KHRhYik7XG4gICAgICAvKipcbiAgICAgICAqIElmIHRoZXJlIGlzIGEgbGFzdFJvdXRlLCBnb3RvIHRoYXQsIG90aGVyd2lzZSBnb3RvIHRoZSBmYWxsYmFjayB1cmwgb2YgdGhlXG4gICAgICAgKiBzZWxlY3RlZCB0YWIuIFdoZW4gZmFsbGluZyBiYWNrIHRvIHRoZSB0YWIgcm9vdCwgaG9ub3IgcXVlcnkgcGFyYW1zIGFuZFxuICAgICAgICogZnJhZ21lbnQgZGVjbGFyZWQgb24gdGhlIHRhYiBidXR0b24ncyBocmVmLlxuICAgICAgICovXG4gICAgICBjb25zdCB1cmwgPSBsYXN0Um91dGU/LnVybCB8fCB0YWJSb290VXJsO1xuICAgICAgY29uc3QgbmF2aWdhdGlvbkV4dHJhcyA9IGxhc3RSb3V0ZT8uc2F2ZWRFeHRyYXMgPz8gKHVybCA9PT0gdGFiUm9vdFVybCA/IGhyZWZFeHRyYXMgOiB1bmRlZmluZWQpO1xuXG4gICAgICByZXR1cm4gdGhpcy5uYXZDdHJsLm5hdmlnYXRlUm9vdCh1cmwsIHtcbiAgICAgICAgLi4ubmF2aWdhdGlvbkV4dHJhcyxcbiAgICAgICAgYW5pbWF0ZWQ6IHRydWUsXG4gICAgICAgIGFuaW1hdGlvbkRpcmVjdGlvbjogJ2JhY2snLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXRBY3RpdmVUYWIodGFiOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCB0YWJzID0gdGhpcy50YWJzO1xuICAgIGNvbnN0IHNlbGVjdGVkVGFiID0gdGFicy5maW5kKCh0OiBhbnkpID0+IHQudGFiID09PSB0YWIpO1xuXG4gICAgaWYgKCFzZWxlY3RlZFRhYikge1xuICAgICAgY29uc29sZS5lcnJvcihgW0lvbmljIEVycm9yXTogVGFiIHdpdGggaWQ6IFwiJHt0YWJ9XCIgZG9lcyBub3QgZXhpc3RgKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmxlYXZpbmdUYWIgPSB0aGlzLnNlbGVjdGVkVGFiO1xuICAgIHRoaXMuc2VsZWN0ZWRUYWIgPSBzZWxlY3RlZFRhYjtcblxuICAgIHRoaXMuaW9uVGFic1dpbGxDaGFuZ2UuZW1pdCh7IHRhYiB9KTtcblxuICAgIHNlbGVjdGVkVGFiLmVsLmFjdGl2ZSA9IHRydWU7XG4gIH1cblxuICBwcml2YXRlIHRhYlN3aXRjaCgpOiB2b2lkIHtcbiAgICBjb25zdCB7IHNlbGVjdGVkVGFiLCBsZWF2aW5nVGFiIH0gPSB0aGlzO1xuXG4gICAgaWYgKHRoaXMudGFiQmFyICYmIHNlbGVjdGVkVGFiKSB7XG4gICAgICB0aGlzLnRhYkJhci5zZWxlY3RlZFRhYiA9IHNlbGVjdGVkVGFiLnRhYjtcbiAgICB9XG5cbiAgICBpZiAobGVhdmluZ1RhYj8udGFiICE9PSBzZWxlY3RlZFRhYj8udGFiKSB7XG4gICAgICBpZiAobGVhdmluZ1RhYj8uZWwpIHtcbiAgICAgICAgbGVhdmluZ1RhYi5lbC5hY3RpdmUgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoc2VsZWN0ZWRUYWIpIHtcbiAgICAgIHRoaXMuaW9uVGFic0RpZENoYW5nZS5lbWl0KHsgdGFiOiBzZWxlY3RlZFRhYi50YWIgfSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0U2VsZWN0ZWQoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAodGhpcy5oYXNUYWIpIHtcbiAgICAgIHJldHVybiB0aGlzLnNlbGVjdGVkVGFiPy50YWI7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMub3V0bGV0LmdldEFjdGl2ZVN0YWNrSWQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXRlY3RzIGNoYW5nZXMgdG8gdGhlIHNsb3QgYXR0cmlidXRlIG9mIHRoZSB0YWIgYmFyLlxuICAgKlxuICAgKiBJZiB0aGUgc2xvdCBhdHRyaWJ1dGUgaGFzIGNoYW5nZWQsIHRoZW4gdGhlIHRhYiBiYXJcbiAgICogc2hvdWxkIGJlIHJlbG9jYXRlZCB0byB0aGUgbmV3IHNsb3QgcG9zaXRpb24uXG4gICAqL1xuICBwcml2YXRlIGRldGVjdFNsb3RDaGFuZ2VzKCk6IHZvaWQge1xuICAgIHRoaXMudGFiQmFycy5mb3JFYWNoKCh0YWJCYXI6IGFueSkgPT4ge1xuICAgICAgLy8gZWwgaXMgYSBwcm90ZWN0ZWQgYXR0cmlidXRlIGZyb20gdGhlIGdlbmVyYXRlZCBjb21wb25lbnQgd3JhcHBlclxuICAgICAgY29uc3QgY3VycmVudFNsb3QgPSB0YWJCYXIuZWwuZ2V0QXR0cmlidXRlKCdzbG90Jyk7XG5cbiAgICAgIGlmIChjdXJyZW50U2xvdCAhPT0gdGhpcy50YWJCYXJTbG90KSB7XG4gICAgICAgIHRoaXMudGFiQmFyU2xvdCA9IGN1cnJlbnRTbG90O1xuICAgICAgICB0aGlzLnJlbG9jYXRlVGFiQmFyKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmVsb2NhdGVzIHRoZSB0YWIgYmFyIHRvIHRoZSBuZXcgc2xvdCBwb3NpdGlvbi5cbiAgICovXG4gIHByaXZhdGUgcmVsb2NhdGVUYWJCYXIoKTogdm9pZCB7XG4gICAgLyoqXG4gICAgICogYGVsYCBpcyBhIHByb3RlY3RlZCBhdHRyaWJ1dGUgZnJvbSB0aGUgZ2VuZXJhdGVkIGNvbXBvbmVudCB3cmFwcGVyLlxuICAgICAqIFRvIGF2b2lkIGhhdmluZyB0byBtYW51YWxseSBjcmVhdGUgdGhlIHdyYXBwZXIgZm9yIHRhYiBiYXIsIHdlXG4gICAgICogY2FzdCB0aGUgdGFiIGJhciB0byBhbnkgYW5kIGFjY2VzcyB0aGUgcHJvdGVjdGVkIGF0dHJpYnV0ZS5cbiAgICAgKi9cbiAgICBjb25zdCB0YWJCYXIgPSAodGhpcy50YWJCYXIgYXMgYW55KS5lbCBhcyBIVE1MRWxlbWVudDtcblxuICAgIGlmICh0aGlzLnRhYkJhclNsb3QgPT09ICd0b3AnKSB7XG4gICAgICAvKipcbiAgICAgICAqIEEgdGFiIGJhciB3aXRoIGEgc2xvdCBvZiBcInRvcFwiIHNob3VsZCBiZSBpbnNlcnRlZFxuICAgICAgICogYXQgdGhlIHRvcCBvZiB0aGUgY29udGFpbmVyLlxuICAgICAgICovXG4gICAgICB0aGlzLnRhYnNJbm5lci5uYXRpdmVFbGVtZW50LmJlZm9yZSh0YWJCYXIpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvKipcbiAgICAgICAqIEEgdGFiIGJhciB3aXRoIGEgc2xvdCBvZiBcImJvdHRvbVwiIG9yIHdpdGhvdXQgYSBzbG90XG4gICAgICAgKiBzaG91bGQgYmUgaW5zZXJ0ZWQgYXQgdGhlIGVuZCBvZiB0aGUgY29udGFpbmVyLlxuICAgICAgICovXG4gICAgICB0aGlzLnRhYnNJbm5lci5uYXRpdmVFbGVtZW50LmFmdGVyKHRhYkJhcik7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -23,10 +23,12 @@ export const DIRECTIVES = [
23
23
  d.IonContent,
24
24
  d.IonDatetime,
25
25
  d.IonDatetimeButton,
26
+ d.IonDivider,
26
27
  d.IonFab,
27
28
  d.IonFabButton,
28
29
  d.IonFabList,
29
30
  d.IonFooter,
31
+ d.IonGallery,
30
32
  d.IonGrid,
31
33
  d.IonHeader,
32
34
  d.IonIcon,
@@ -87,4 +89,4 @@ export const DIRECTIVES = [
87
89
  d.IonToggle,
88
90
  d.IonToolbar
89
91
  ];
90
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJveGllcy1saXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2RpcmVjdGl2ZXMvcHJveGllcy1saXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sS0FBSyxDQUFDLE1BQU0sV0FBVyxDQUFDO0FBRS9CLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRztJQUN4QixDQUFDLENBQUMsWUFBWTtJQUNkLENBQUMsQ0FBQyxpQkFBaUI7SUFDbkIsQ0FBQyxDQUFDLGNBQWM7SUFDaEIsQ0FBQyxDQUFDLFFBQVE7SUFDVixDQUFDLENBQUMsTUFBTTtJQUNSLENBQUMsQ0FBQyxTQUFTO0lBQ1gsQ0FBQyxDQUFDLFdBQVc7SUFDYixDQUFDLENBQUMsUUFBUTtJQUNWLENBQUMsQ0FBQyxhQUFhO0lBQ2YsQ0FBQyxDQUFDLGNBQWM7SUFDaEIsQ0FBQyxDQUFDLFNBQVM7SUFDWCxDQUFDLENBQUMsVUFBVTtJQUNaLENBQUMsQ0FBQyxPQUFPO0lBQ1QsQ0FBQyxDQUFDLGNBQWM7SUFDaEIsQ0FBQyxDQUFDLGFBQWE7SUFDZixDQUFDLENBQUMsZUFBZTtJQUNqQixDQUFDLENBQUMsWUFBWTtJQUNkLENBQUMsQ0FBQyxXQUFXO0lBQ2IsQ0FBQyxDQUFDLE9BQU87SUFDVCxDQUFDLENBQUMsTUFBTTtJQUNSLENBQUMsQ0FBQyxVQUFVO0lBQ1osQ0FBQyxDQUFDLFdBQVc7SUFDYixDQUFDLENBQUMsaUJBQWlCO0lBQ25CLENBQUMsQ0FBQyxNQUFNO0lBQ1IsQ0FBQyxDQUFDLFlBQVk7SUFDZCxDQUFDLENBQUMsVUFBVTtJQUNaLENBQUMsQ0FBQyxTQUFTO0lBQ1gsQ0FBQyxDQUFDLE9BQU87SUFDVCxDQUFDLENBQUMsU0FBUztJQUNYLENBQUMsQ0FBQyxPQUFPO0lBQ1QsQ0FBQyxDQUFDLE1BQU07SUFDUixDQUFDLENBQUMsaUJBQWlCO0lBQ25CLENBQUMsQ0FBQyx3QkFBd0I7SUFDMUIsQ0FBQyxDQUFDLFFBQVE7SUFDVixDQUFDLENBQUMsV0FBVztJQUNiLENBQUMsQ0FBQyxzQkFBc0I7SUFDeEIsQ0FBQyxDQUFDLE9BQU87SUFDVCxDQUFDLENBQUMsY0FBYztJQUNoQixDQUFDLENBQUMsWUFBWTtJQUNkLENBQUMsQ0FBQyxhQUFhO0lBQ2YsQ0FBQyxDQUFDLGNBQWM7SUFDaEIsQ0FBQyxDQUFDLGNBQWM7SUFDaEIsQ0FBQyxDQUFDLFFBQVE7SUFDVixDQUFDLENBQUMsT0FBTztJQUNULENBQUMsQ0FBQyxhQUFhO0lBQ2YsQ0FBQyxDQUFDLFVBQVU7SUFDWixDQUFDLENBQUMsT0FBTztJQUNULENBQUMsQ0FBQyxhQUFhO0lBQ2YsQ0FBQyxDQUFDLGFBQWE7SUFDZixDQUFDLENBQUMsVUFBVTtJQUNaLENBQUMsQ0FBQyxPQUFPO0lBQ1QsQ0FBQyxDQUFDLFNBQVM7SUFDWCxDQUFDLENBQUMsZUFBZTtJQUNqQixDQUFDLENBQUMscUJBQXFCO0lBQ3ZCLENBQUMsQ0FBQyxlQUFlO0lBQ2pCLENBQUMsQ0FBQyxjQUFjO0lBQ2hCLENBQUMsQ0FBQyxRQUFRO0lBQ1YsQ0FBQyxDQUFDLGFBQWE7SUFDZixDQUFDLENBQUMsUUFBUTtJQUNWLENBQUMsQ0FBQyxZQUFZO0lBQ2QsQ0FBQyxDQUFDLG1CQUFtQjtJQUNyQixDQUFDLENBQUMsVUFBVTtJQUNaLENBQUMsQ0FBQyxlQUFlO0lBQ2pCLENBQUMsQ0FBQyxlQUFlO0lBQ2pCLENBQUMsQ0FBQyxNQUFNO0lBQ1IsQ0FBQyxDQUFDLFlBQVk7SUFDZCxDQUFDLENBQUMsVUFBVTtJQUNaLENBQUMsQ0FBQyxnQkFBZ0I7SUFDbEIsQ0FBQyxDQUFDLGlCQUFpQjtJQUNuQixDQUFDLENBQUMsY0FBYztJQUNoQixDQUFDLENBQUMsU0FBUztJQUNYLENBQUMsQ0FBQyxjQUFjO0lBQ2hCLENBQUMsQ0FBQyxlQUFlO0lBQ2pCLENBQUMsQ0FBQyxlQUFlO0lBQ2pCLENBQUMsQ0FBQyxVQUFVO0lBQ1osQ0FBQyxDQUFDLFlBQVk7SUFDZCxDQUFDLENBQUMsTUFBTTtJQUNSLENBQUMsQ0FBQyxTQUFTO0lBQ1gsQ0FBQyxDQUFDLFlBQVk7SUFDZCxDQUFDLENBQUMsT0FBTztJQUNULENBQUMsQ0FBQyxXQUFXO0lBQ2IsQ0FBQyxDQUFDLFlBQVk7SUFDZCxDQUFDLENBQUMsUUFBUTtJQUNWLENBQUMsQ0FBQyxRQUFRO0lBQ1YsQ0FBQyxDQUFDLFNBQVM7SUFDWCxDQUFDLENBQUMsVUFBVTtDQUNiLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJcbmltcG9ydCAqIGFzIGQgZnJvbSAnLi9wcm94aWVzJztcblxuZXhwb3J0IGNvbnN0IERJUkVDVElWRVMgPSBbXG4gIGQuSW9uQWNjb3JkaW9uLFxuICBkLklvbkFjY29yZGlvbkdyb3VwLFxuICBkLklvbkFjdGlvblNoZWV0LFxuICBkLklvbkFsZXJ0LFxuICBkLklvbkFwcCxcbiAgZC5Jb25BdmF0YXIsXG4gIGQuSW9uQmFja2Ryb3AsXG4gIGQuSW9uQmFkZ2UsXG4gIGQuSW9uQnJlYWRjcnVtYixcbiAgZC5Jb25CcmVhZGNydW1icyxcbiAgZC5Jb25CdXR0b24sXG4gIGQuSW9uQnV0dG9ucyxcbiAgZC5Jb25DYXJkLFxuICBkLklvbkNhcmRDb250ZW50LFxuICBkLklvbkNhcmRIZWFkZXIsXG4gIGQuSW9uQ2FyZFN1YnRpdGxlLFxuICBkLklvbkNhcmRUaXRsZSxcbiAgZC5Jb25DaGVja2JveCxcbiAgZC5Jb25DaGlwLFxuICBkLklvbkNvbCxcbiAgZC5Jb25Db250ZW50LFxuICBkLklvbkRhdGV0aW1lLFxuICBkLklvbkRhdGV0aW1lQnV0dG9uLFxuICBkLklvbkZhYixcbiAgZC5Jb25GYWJCdXR0b24sXG4gIGQuSW9uRmFiTGlzdCxcbiAgZC5Jb25Gb290ZXIsXG4gIGQuSW9uR3JpZCxcbiAgZC5Jb25IZWFkZXIsXG4gIGQuSW9uSWNvbixcbiAgZC5Jb25JbWcsXG4gIGQuSW9uSW5maW5pdGVTY3JvbGwsXG4gIGQuSW9uSW5maW5pdGVTY3JvbGxDb250ZW50LFxuICBkLklvbklucHV0LFxuICBkLklvbklucHV0T3RwLFxuICBkLklvbklucHV0UGFzc3dvcmRUb2dnbGUsXG4gIGQuSW9uSXRlbSxcbiAgZC5Jb25JdGVtRGl2aWRlcixcbiAgZC5Jb25JdGVtR3JvdXAsXG4gIGQuSW9uSXRlbU9wdGlvbixcbiAgZC5Jb25JdGVtT3B0aW9ucyxcbiAgZC5Jb25JdGVtU2xpZGluZyxcbiAgZC5Jb25MYWJlbCxcbiAgZC5Jb25MaXN0LFxuICBkLklvbkxpc3RIZWFkZXIsXG4gIGQuSW9uTG9hZGluZyxcbiAgZC5Jb25NZW51LFxuICBkLklvbk1lbnVCdXR0b24sXG4gIGQuSW9uTWVudVRvZ2dsZSxcbiAgZC5Jb25OYXZMaW5rLFxuICBkLklvbk5vdGUsXG4gIGQuSW9uUGlja2VyLFxuICBkLklvblBpY2tlckNvbHVtbixcbiAgZC5Jb25QaWNrZXJDb2x1bW5PcHRpb24sXG4gIGQuSW9uUGlja2VyTGVnYWN5LFxuICBkLklvblByb2dyZXNzQmFyLFxuICBkLklvblJhZGlvLFxuICBkLklvblJhZGlvR3JvdXAsXG4gIGQuSW9uUmFuZ2UsXG4gIGQuSW9uUmVmcmVzaGVyLFxuICBkLklvblJlZnJlc2hlckNvbnRlbnQsXG4gIGQuSW9uUmVvcmRlcixcbiAgZC5Jb25SZW9yZGVyR3JvdXAsXG4gIGQuSW9uUmlwcGxlRWZmZWN0LFxuICBkLklvblJvdyxcbiAgZC5Jb25TZWFyY2hiYXIsXG4gIGQuSW9uU2VnbWVudCxcbiAgZC5Jb25TZWdtZW50QnV0dG9uLFxuICBkLklvblNlZ21lbnRDb250ZW50LFxuICBkLklvblNlZ21lbnRWaWV3LFxuICBkLklvblNlbGVjdCxcbiAgZC5Jb25TZWxlY3RNb2RhbCxcbiAgZC5Jb25TZWxlY3RPcHRpb24sXG4gIGQuSW9uU2tlbGV0b25UZXh0LFxuICBkLklvblNwaW5uZXIsXG4gIGQuSW9uU3BsaXRQYW5lLFxuICBkLklvblRhYixcbiAgZC5Jb25UYWJCYXIsXG4gIGQuSW9uVGFiQnV0dG9uLFxuICBkLklvblRleHQsXG4gIGQuSW9uVGV4dGFyZWEsXG4gIGQuSW9uVGh1bWJuYWlsLFxuICBkLklvblRpdGxlLFxuICBkLklvblRvYXN0LFxuICBkLklvblRvZ2dsZSxcbiAgZC5Jb25Ub29sYmFyXG5dO1xuIl19
92
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJveGllcy1saXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2RpcmVjdGl2ZXMvcHJveGllcy1saXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sS0FBSyxDQUFDLE1BQU0sV0FBVyxDQUFDO0FBRS9CLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRztJQUN4QixDQUFDLENBQUMsWUFBWTtJQUNkLENBQUMsQ0FBQyxpQkFBaUI7SUFDbkIsQ0FBQyxDQUFDLGNBQWM7SUFDaEIsQ0FBQyxDQUFDLFFBQVE7SUFDVixDQUFDLENBQUMsTUFBTTtJQUNSLENBQUMsQ0FBQyxTQUFTO0lBQ1gsQ0FBQyxDQUFDLFdBQVc7SUFDYixDQUFDLENBQUMsUUFBUTtJQUNWLENBQUMsQ0FBQyxhQUFhO0lBQ2YsQ0FBQyxDQUFDLGNBQWM7SUFDaEIsQ0FBQyxDQUFDLFNBQVM7SUFDWCxDQUFDLENBQUMsVUFBVTtJQUNaLENBQUMsQ0FBQyxPQUFPO0lBQ1QsQ0FBQyxDQUFDLGNBQWM7SUFDaEIsQ0FBQyxDQUFDLGFBQWE7SUFDZixDQUFDLENBQUMsZUFBZTtJQUNqQixDQUFDLENBQUMsWUFBWTtJQUNkLENBQUMsQ0FBQyxXQUFXO0lBQ2IsQ0FBQyxDQUFDLE9BQU87SUFDVCxDQUFDLENBQUMsTUFBTTtJQUNSLENBQUMsQ0FBQyxVQUFVO0lBQ1osQ0FBQyxDQUFDLFdBQVc7SUFDYixDQUFDLENBQUMsaUJBQWlCO0lBQ25CLENBQUMsQ0FBQyxVQUFVO0lBQ1osQ0FBQyxDQUFDLE1BQU07SUFDUixDQUFDLENBQUMsWUFBWTtJQUNkLENBQUMsQ0FBQyxVQUFVO0lBQ1osQ0FBQyxDQUFDLFNBQVM7SUFDWCxDQUFDLENBQUMsVUFBVTtJQUNaLENBQUMsQ0FBQyxPQUFPO0lBQ1QsQ0FBQyxDQUFDLFNBQVM7SUFDWCxDQUFDLENBQUMsT0FBTztJQUNULENBQUMsQ0FBQyxNQUFNO0lBQ1IsQ0FBQyxDQUFDLGlCQUFpQjtJQUNuQixDQUFDLENBQUMsd0JBQXdCO0lBQzFCLENBQUMsQ0FBQyxRQUFRO0lBQ1YsQ0FBQyxDQUFDLFdBQVc7SUFDYixDQUFDLENBQUMsc0JBQXNCO0lBQ3hCLENBQUMsQ0FBQyxPQUFPO0lBQ1QsQ0FBQyxDQUFDLGNBQWM7SUFDaEIsQ0FBQyxDQUFDLFlBQVk7SUFDZCxDQUFDLENBQUMsYUFBYTtJQUNmLENBQUMsQ0FBQyxjQUFjO0lBQ2hCLENBQUMsQ0FBQyxjQUFjO0lBQ2hCLENBQUMsQ0FBQyxRQUFRO0lBQ1YsQ0FBQyxDQUFDLE9BQU87SUFDVCxDQUFDLENBQUMsYUFBYTtJQUNmLENBQUMsQ0FBQyxVQUFVO0lBQ1osQ0FBQyxDQUFDLE9BQU87SUFDVCxDQUFDLENBQUMsYUFBYTtJQUNmLENBQUMsQ0FBQyxhQUFhO0lBQ2YsQ0FBQyxDQUFDLFVBQVU7SUFDWixDQUFDLENBQUMsT0FBTztJQUNULENBQUMsQ0FBQyxTQUFTO0lBQ1gsQ0FBQyxDQUFDLGVBQWU7SUFDakIsQ0FBQyxDQUFDLHFCQUFxQjtJQUN2QixDQUFDLENBQUMsZUFBZTtJQUNqQixDQUFDLENBQUMsY0FBYztJQUNoQixDQUFDLENBQUMsUUFBUTtJQUNWLENBQUMsQ0FBQyxhQUFhO0lBQ2YsQ0FBQyxDQUFDLFFBQVE7SUFDVixDQUFDLENBQUMsWUFBWTtJQUNkLENBQUMsQ0FBQyxtQkFBbUI7SUFDckIsQ0FBQyxDQUFDLFVBQVU7SUFDWixDQUFDLENBQUMsZUFBZTtJQUNqQixDQUFDLENBQUMsZUFBZTtJQUNqQixDQUFDLENBQUMsTUFBTTtJQUNSLENBQUMsQ0FBQyxZQUFZO0lBQ2QsQ0FBQyxDQUFDLFVBQVU7SUFDWixDQUFDLENBQUMsZ0JBQWdCO0lBQ2xCLENBQUMsQ0FBQyxpQkFBaUI7SUFDbkIsQ0FBQyxDQUFDLGNBQWM7SUFDaEIsQ0FBQyxDQUFDLFNBQVM7SUFDWCxDQUFDLENBQUMsY0FBYztJQUNoQixDQUFDLENBQUMsZUFBZTtJQUNqQixDQUFDLENBQUMsZUFBZTtJQUNqQixDQUFDLENBQUMsVUFBVTtJQUNaLENBQUMsQ0FBQyxZQUFZO0lBQ2QsQ0FBQyxDQUFDLE1BQU07SUFDUixDQUFDLENBQUMsU0FBUztJQUNYLENBQUMsQ0FBQyxZQUFZO0lBQ2QsQ0FBQyxDQUFDLE9BQU87SUFDVCxDQUFDLENBQUMsV0FBVztJQUNiLENBQUMsQ0FBQyxZQUFZO0lBQ2QsQ0FBQyxDQUFDLFFBQVE7SUFDVixDQUFDLENBQUMsUUFBUTtJQUNWLENBQUMsQ0FBQyxTQUFTO0lBQ1gsQ0FBQyxDQUFDLFVBQVU7Q0FDYixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiXG5pbXBvcnQgKiBhcyBkIGZyb20gJy4vcHJveGllcyc7XG5cbmV4cG9ydCBjb25zdCBESVJFQ1RJVkVTID0gW1xuICBkLklvbkFjY29yZGlvbixcbiAgZC5Jb25BY2NvcmRpb25Hcm91cCxcbiAgZC5Jb25BY3Rpb25TaGVldCxcbiAgZC5Jb25BbGVydCxcbiAgZC5Jb25BcHAsXG4gIGQuSW9uQXZhdGFyLFxuICBkLklvbkJhY2tkcm9wLFxuICBkLklvbkJhZGdlLFxuICBkLklvbkJyZWFkY3J1bWIsXG4gIGQuSW9uQnJlYWRjcnVtYnMsXG4gIGQuSW9uQnV0dG9uLFxuICBkLklvbkJ1dHRvbnMsXG4gIGQuSW9uQ2FyZCxcbiAgZC5Jb25DYXJkQ29udGVudCxcbiAgZC5Jb25DYXJkSGVhZGVyLFxuICBkLklvbkNhcmRTdWJ0aXRsZSxcbiAgZC5Jb25DYXJkVGl0bGUsXG4gIGQuSW9uQ2hlY2tib3gsXG4gIGQuSW9uQ2hpcCxcbiAgZC5Jb25Db2wsXG4gIGQuSW9uQ29udGVudCxcbiAgZC5Jb25EYXRldGltZSxcbiAgZC5Jb25EYXRldGltZUJ1dHRvbixcbiAgZC5Jb25EaXZpZGVyLFxuICBkLklvbkZhYixcbiAgZC5Jb25GYWJCdXR0b24sXG4gIGQuSW9uRmFiTGlzdCxcbiAgZC5Jb25Gb290ZXIsXG4gIGQuSW9uR2FsbGVyeSxcbiAgZC5Jb25HcmlkLFxuICBkLklvbkhlYWRlcixcbiAgZC5Jb25JY29uLFxuICBkLklvbkltZyxcbiAgZC5Jb25JbmZpbml0ZVNjcm9sbCxcbiAgZC5Jb25JbmZpbml0ZVNjcm9sbENvbnRlbnQsXG4gIGQuSW9uSW5wdXQsXG4gIGQuSW9uSW5wdXRPdHAsXG4gIGQuSW9uSW5wdXRQYXNzd29yZFRvZ2dsZSxcbiAgZC5Jb25JdGVtLFxuICBkLklvbkl0ZW1EaXZpZGVyLFxuICBkLklvbkl0ZW1Hcm91cCxcbiAgZC5Jb25JdGVtT3B0aW9uLFxuICBkLklvbkl0ZW1PcHRpb25zLFxuICBkLklvbkl0ZW1TbGlkaW5nLFxuICBkLklvbkxhYmVsLFxuICBkLklvbkxpc3QsXG4gIGQuSW9uTGlzdEhlYWRlcixcbiAgZC5Jb25Mb2FkaW5nLFxuICBkLklvbk1lbnUsXG4gIGQuSW9uTWVudUJ1dHRvbixcbiAgZC5Jb25NZW51VG9nZ2xlLFxuICBkLklvbk5hdkxpbmssXG4gIGQuSW9uTm90ZSxcbiAgZC5Jb25QaWNrZXIsXG4gIGQuSW9uUGlja2VyQ29sdW1uLFxuICBkLklvblBpY2tlckNvbHVtbk9wdGlvbixcbiAgZC5Jb25QaWNrZXJMZWdhY3ksXG4gIGQuSW9uUHJvZ3Jlc3NCYXIsXG4gIGQuSW9uUmFkaW8sXG4gIGQuSW9uUmFkaW9Hcm91cCxcbiAgZC5Jb25SYW5nZSxcbiAgZC5Jb25SZWZyZXNoZXIsXG4gIGQuSW9uUmVmcmVzaGVyQ29udGVudCxcbiAgZC5Jb25SZW9yZGVyLFxuICBkLklvblJlb3JkZXJHcm91cCxcbiAgZC5Jb25SaXBwbGVFZmZlY3QsXG4gIGQuSW9uUm93LFxuICBkLklvblNlYXJjaGJhcixcbiAgZC5Jb25TZWdtZW50LFxuICBkLklvblNlZ21lbnRCdXR0b24sXG4gIGQuSW9uU2VnbWVudENvbnRlbnQsXG4gIGQuSW9uU2VnbWVudFZpZXcsXG4gIGQuSW9uU2VsZWN0LFxuICBkLklvblNlbGVjdE1vZGFsLFxuICBkLklvblNlbGVjdE9wdGlvbixcbiAgZC5Jb25Ta2VsZXRvblRleHQsXG4gIGQuSW9uU3Bpbm5lcixcbiAgZC5Jb25TcGxpdFBhbmUsXG4gIGQuSW9uVGFiLFxuICBkLklvblRhYkJhcixcbiAgZC5Jb25UYWJCdXR0b24sXG4gIGQuSW9uVGV4dCxcbiAgZC5Jb25UZXh0YXJlYSxcbiAgZC5Jb25UaHVtYm5haWwsXG4gIGQuSW9uVGl0bGUsXG4gIGQuSW9uVG9hc3QsXG4gIGQuSW9uVG9nZ2xlLFxuICBkLklvblRvb2xiYXJcbl07XG4iXX0=