@geoit/ui 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/ai/README.md CHANGED
@@ -76,6 +76,6 @@ Agent rules: [`AGENTS.md`](./AGENTS.md) · Recipes: [`recipes.md`](./recipes.md)
76
76
  | `geo-typography` | display | Text with GEO type scale (h1–tiny) and semantic colors. | [geo-typography.md](./components/geo-typography.md) |
77
77
  | `geo-upload` | forms | Drag-drop upload zone with progress list. | [geo-upload.md](./components/geo-upload.md) |
78
78
 
79
- Generated: 2026-09-11T09:16:49.468Z
79
+ Generated: 2026-09-11T10:10:47.167Z
80
80
 
81
81
  Regenerate: `npm run ai:docs`
package/ai/catalog.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "package": "@geoit/ui",
3
3
  "import": "@geoit/ui",
4
- "version": "0.2.0",
5
- "generatedAt": "2026-09-11T09:16:49.468Z",
4
+ "version": "0.3.0",
5
+ "generatedAt": "2026-09-11T10:10:47.167Z",
6
6
  "styles": [
7
7
  "@geoit/ui/src/lib/styles/design-tokens.scss",
8
8
  "@geoit/ui/src/lib/styles/theme.scss"
@@ -2802,7 +2802,7 @@
2802
2802
  "name": "options",
2803
2803
  "type": "GeoMapBasemapOption[]",
2804
2804
  "default": "GEO_MAP_DEFAULT_BASEMAP_OPTIONS",
2805
- "note": "Exactly two options (street + satellite). Extra items are ignored."
2805
+ "note": ""
2806
2806
  },
2807
2807
  {
2808
2808
  "name": "selectedId",
@@ -42,7 +42,7 @@ Every supported Input (do not invent others):
42
42
 
43
43
  | Input | Type | Default | Description |
44
44
  |-------|------|---------|-------------|
45
- | `options` | `GeoMapBasemapOption[]` | `GEO_MAP_DEFAULT_BASEMAP_OPTIONS` | Exactly two options (street + satellite). Extra items are ignored. |
45
+ | `options` | `GeoMapBasemapOption[]` | `GEO_MAP_DEFAULT_BASEMAP_OPTIONS` | |
46
46
  | `selectedId` | `string` | `'osm'` | Two-way `model()` (supports banana binding). |
47
47
  | `label` | `string` | `'Lớp bản đồ'` | Caption on the thumbnail card (design: «Lớp bản đồ»). |
48
48
  | `tooltip` | `string` | `'Đổi lớp bản đồ nền'` | — |
package/ai/mockup.html CHANGED
@@ -5,7 +5,7 @@
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1" />
6
6
  <title>@geoit/ui — Component mockup (design tokens)</title>
7
7
  <!-- Generated by tools/generate-mockup.js — do not edit ai/mockup.html by hand -->
8
- <!-- 2026-09-11T09:16:49.535Z -->
8
+ <!-- 2026-09-11T10:10:47.237Z -->
9
9
  <link rel="preconnect" href="https://fonts.googleapis.com" />
10
10
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
11
11
  <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet" />
@@ -685,7 +685,7 @@
685
685
  HTML tĩnh mô phỏng visual của các <code>geo-*</code> trong <code>ai/components</code>,
686
686
  dùng đúng CSS variables từ <code>design-tokens.scss</code>.
687
687
  Tokens được inject tự động khi <code>npm run ai:docs</code> / <code>npm run build</code>.
688
- <br /><span class="typo-caption typo-secondary">Generated 2026-09-11T09:16:49.535Z · source: projects/geo-ui/src/lib/styles/design-tokens.scss · 69 component docs in ai/components</span>
688
+ <br /><span class="typo-caption typo-secondary">Generated 2026-09-11T10:10:47.237Z · source: projects/geo-ui/src/lib/styles/design-tokens.scss · 69 component docs in ai/components</span>
689
689
  </p>
690
690
  </header>
691
691
 
@@ -1,61 +1,50 @@
1
- import { ChangeDetectionStrategy, Component, computed, input, model, output, ViewEncapsulation, } from '@angular/core';
1
+ import { ChangeDetectionStrategy, Component, computed, input, model, output, signal, ViewEncapsulation, } from '@angular/core';
2
+ import { NzDropDownModule } from 'ng-zorro-antd/dropdown';
2
3
  import { NzToolTipModule } from 'ng-zorro-antd/tooltip';
3
4
  import { GEO_MAP_DEFAULT_BASEMAP_OPTIONS } from '../../geo-map.constants';
4
5
  import * as i0 from "@angular/core";
5
6
  import * as i1 from "ng-zorro-antd/tooltip";
7
+ import * as i2 from "ng-zorro-antd/dropdown";
6
8
  /**
7
- * Thumbnail card toggling street satellite basemap.
9
+ * Thumbnail trigger + vertical dropdown to pick the map basemap.
8
10
  *
9
- * @summary Toggle street / satellite basemap.
10
- * @whenToUse Right-side basemap toggle.
11
+ * @summary Pick basemap from a vertical thumbnail dropdown.
12
+ * @whenToUse Bottom-right basemap picker («Lớp bản đồ»).
11
13
  * @doNotUseWhen Full layer panel — use geo-map-layer-panel.
12
14
  */
13
15
  export class GeoMapBasemapSwitcherComponent {
14
- /** Exactly two options (street + satellite). Extra items are ignored. */
15
16
  options = input(GEO_MAP_DEFAULT_BASEMAP_OPTIONS);
16
17
  selectedId = model('osm');
17
18
  /** Caption on the thumbnail card (design: «Lớp bản đồ»). */
18
19
  label = input('Lớp bản đồ');
19
20
  tooltip = input('Đổi lớp bản đồ nền');
20
21
  basemapChange = output();
21
- pair = computed(() => {
22
- const list = this.options().slice(0, 2);
23
- return list.length >= 2 ? list : GEO_MAP_DEFAULT_BASEMAP_OPTIONS;
22
+ open = signal(false);
23
+ list = computed(() => {
24
+ const list = this.options();
25
+ return list.length ? list : GEO_MAP_DEFAULT_BASEMAP_OPTIONS;
24
26
  });
25
27
  selected = computed(() => {
26
28
  const id = this.selectedId();
27
- const list = this.pair();
29
+ const list = this.list();
28
30
  return list.find((item) => item.id === id) ?? list[0] ?? null;
29
31
  });
30
- /** Preview of the other basemap (what click will switch to). */
31
- next = computed(() => {
32
- const list = this.pair();
33
- if (!list.length) {
34
- return null;
35
- }
36
- const currentId = this.selected()?.id;
37
- return list.find((item) => item.id !== currentId) ?? list[0] ?? null;
38
- });
39
- tooltipText = computed(() => {
40
- const next = this.next();
41
- if (!next) {
42
- return this.tooltip();
43
- }
44
- return `Chuyển sang ${next.label}`;
45
- });
46
- toggle() {
47
- const next = this.next();
48
- if (!next) {
32
+ onVisible(visible) {
33
+ this.open.set(visible);
34
+ }
35
+ pick(option) {
36
+ this.open.set(false);
37
+ if (option.id === this.selectedId()) {
49
38
  return;
50
39
  }
51
- this.selectedId.set(next.id);
52
- this.basemapChange.emit(next.basemap);
40
+ this.selectedId.set(option.id);
41
+ this.basemapChange.emit(option.basemap);
53
42
  }
54
43
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GeoMapBasemapSwitcherComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
55
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: GeoMapBasemapSwitcherComponent, isStandalone: true, selector: "geo-map-basemap-switcher", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, selectedId: { classPropertyName: "selectedId", publicName: "selectedId", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, tooltip: { classPropertyName: "tooltip", publicName: "tooltip", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectedId: "selectedIdChange", basemapChange: "basemapChange" }, host: { classAttribute: "geo-map-basemap-switcher-host" }, ngImport: i0, template: "<button\n type=\"button\"\n class=\"geo-map-basemap-switcher__trigger\"\n [nz-tooltip]=\"tooltipText()\"\n nzTooltipPlacement=\"left\"\n [attr.aria-label]=\"tooltipText()\"\n (click)=\"toggle()\"\n>\n @if (next(); as option) {\n @if (option.previewUrl; as url) {\n <img class=\"geo-map-basemap-switcher__preview\" [src]=\"url\" alt=\"\" />\n } @else {\n <span\n class=\"geo-map-basemap-switcher__preview geo-map-basemap-switcher__preview--empty\"\n aria-hidden=\"true\"\n ></span>\n }\n } @else {\n <span\n class=\"geo-map-basemap-switcher__preview geo-map-basemap-switcher__preview--empty\"\n aria-hidden=\"true\"\n ></span>\n }\n <span class=\"geo-map-basemap-switcher__veil\" aria-hidden=\"true\"></span>\n <span class=\"geo-map-basemap-switcher__content\">\n <span class=\"geo-map-basemap-switcher__icon\" aria-hidden=\"true\">\n <svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M12 4.2 3 8.7l9 4.5 9-4.5-9-4.5Z\"\n stroke=\"currentColor\"\n stroke-width=\"1.75\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M3 15.3 12 19.8l9-4.5\"\n stroke=\"currentColor\"\n stroke-width=\"1.75\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </span>\n <span class=\"geo-map-basemap-switcher__caption\">{{ label() }}</span>\n </span>\n</button>\n", styles: [".geo-map-basemap-switcher-host{display:block}.geo-map-basemap-switcher__trigger{position:relative;display:block;width:90px;height:90px;padding:0;overflow:hidden;border:3px solid var(--geo-color-neutral-white, #fff);border-radius:var(--geo-radius-2xl);background:var(--geo-color-neutral-800);box-shadow:var(--geo-shadow-md);cursor:pointer;transition:box-shadow .15s ease,transform .15s ease}.geo-map-basemap-switcher__trigger:hover{box-shadow:var(--geo-shadow-lg, var(--geo-shadow-md));transform:translateY(-1px)}.geo-map-basemap-switcher__trigger:focus-visible{outline:2px solid var(--geo-color-primary-default);outline-offset:2px}.geo-map-basemap-switcher__preview{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;pointer-events:none}.geo-map-basemap-switcher__preview--empty{background:linear-gradient(145deg,var(--geo-color-neutral-600),var(--geo-color-neutral-800))}.geo-map-basemap-switcher__veil{position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,transparent 40%,color-mix(in srgb,var(--geo-color-neutral-900) 55%,transparent) 100%)}.geo-map-basemap-switcher__content{position:absolute;inset:0;z-index:1;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;gap:4px;padding:0 8px 8px;color:var(--geo-color-neutral-white, #fff);pointer-events:none}.geo-map-basemap-switcher__icon{display:inline-flex;width:20px;height:20px;color:inherit;filter:drop-shadow(0 1px 2px color-mix(in srgb,var(--geo-color-neutral-900) 45%,transparent))}.geo-map-basemap-switcher__icon svg{width:100%;height:100%}.geo-map-basemap-switcher__caption{max-width:100%;font-size:var(--geo-font-size-caption);font-weight:var(--geo-font-weight-semibold);line-height:1.2;text-align:left;white-space:nowrap;text-shadow:0 1px 2px color-mix(in srgb,var(--geo-color-neutral-900) 55%,transparent)}\n"], dependencies: [{ kind: "ngmodule", type: NzToolTipModule }, { kind: "directive", type: i1.NzTooltipDirective, selector: "[nz-tooltip]", inputs: ["nzTooltipTitle", "nzTooltipTitleContext", "nz-tooltip", "nzTooltipTrigger", "nzTooltipPlacement", "nzTooltipOrigin", "nzTooltipVisible", "nzTooltipMouseEnterDelay", "nzTooltipMouseLeaveDelay", "nzTooltipOverlayClassName", "nzTooltipOverlayStyle", "nzTooltipArrowPointAtCenter", "cdkConnectedOverlayPush", "nzTooltipColor"], outputs: ["nzTooltipVisibleChange"], exportAs: ["nzTooltip"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
44
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: GeoMapBasemapSwitcherComponent, isStandalone: true, selector: "geo-map-basemap-switcher", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, selectedId: { classPropertyName: "selectedId", publicName: "selectedId", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, tooltip: { classPropertyName: "tooltip", publicName: "tooltip", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectedId: "selectedIdChange", basemapChange: "basemapChange" }, host: { classAttribute: "geo-map-basemap-switcher-host" }, ngImport: i0, template: "<button\n type=\"button\"\n class=\"geo-map-basemap-switcher__trigger\"\n nz-dropdown\n nzTrigger=\"click\"\n nzPlacement=\"topCenter\"\n nzOverlayClassName=\"geo-map-basemap-switcher-overlay\"\n [nzDropdownMenu]=\"menu\"\n [nzVisible]=\"open()\"\n (nzVisibleChange)=\"onVisible($event)\"\n [nz-tooltip]=\"open() ? '' : tooltip()\"\n nzTooltipPlacement=\"left\"\n [attr.aria-label]=\"tooltip()\"\n [attr.aria-expanded]=\"open()\"\n>\n @if (selected(); as option) {\n @if (option.previewUrl; as url) {\n <img class=\"geo-map-basemap-switcher__preview\" [src]=\"url\" alt=\"\" />\n } @else {\n <span\n class=\"geo-map-basemap-switcher__preview geo-map-basemap-switcher__preview--empty\"\n aria-hidden=\"true\"\n ></span>\n }\n } @else {\n <span\n class=\"geo-map-basemap-switcher__preview geo-map-basemap-switcher__preview--empty\"\n aria-hidden=\"true\"\n ></span>\n }\n <span class=\"geo-map-basemap-switcher__bar\" aria-hidden=\"true\">\n <span class=\"geo-map-basemap-switcher__icon\">\n <svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M12 4.2 3 8.7l9 4.5 9-4.5-9-4.5Z\"\n stroke=\"currentColor\"\n stroke-width=\"1.75\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M3 15.3 12 19.8l9-4.5\"\n stroke=\"currentColor\"\n stroke-width=\"1.75\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M3 12 12 16.5l9-4.5\"\n stroke=\"currentColor\"\n stroke-width=\"1.75\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </span>\n <span class=\"geo-map-basemap-switcher__caption\">{{ label() }}</span>\n </span>\n</button>\n\n<nz-dropdown-menu #menu=\"nzDropdownMenu\">\n <div\n class=\"geo-map-basemap-switcher__panel\"\n role=\"listbox\"\n [attr.aria-label]=\"tooltip()\"\n >\n <ul class=\"geo-map-basemap-switcher__list\">\n @for (option of list(); track option.id) {\n <li>\n <button\n type=\"button\"\n role=\"option\"\n class=\"geo-map-basemap-switcher__option\"\n [class.geo-map-basemap-switcher__option--active]=\"option.id === selectedId()\"\n [attr.aria-selected]=\"option.id === selectedId()\"\n (click)=\"pick(option)\"\n >\n @if (option.previewUrl; as url) {\n <img\n class=\"geo-map-basemap-switcher__option-thumb\"\n [src]=\"url\"\n alt=\"\"\n />\n } @else {\n <span\n class=\"geo-map-basemap-switcher__option-thumb geo-map-basemap-switcher__option-thumb--empty\"\n aria-hidden=\"true\"\n ></span>\n }\n <span class=\"geo-map-basemap-switcher__option-label\">{{ option.label }}</span>\n </button>\n </li>\n }\n </ul>\n </div>\n</nz-dropdown-menu>\n", styles: ["@charset \"UTF-8\";.geo-map-basemap-switcher-host{display:block;width:90px}.geo-map-basemap-switcher__trigger{position:relative;display:block;width:90px;height:90px;padding:0;overflow:hidden;border:3px solid var(--geo-color-neutral-white, #fff);border-radius:var(--geo-radius-2xl);background:var(--geo-color-neutral-800);box-shadow:var(--geo-shadow-md);cursor:pointer;transition:box-shadow .15s ease,transform .15s ease}.geo-map-basemap-switcher__trigger:hover{box-shadow:var(--geo-shadow-lg, var(--geo-shadow-md));transform:translateY(-1px)}.geo-map-basemap-switcher__trigger:focus-visible{outline:2px solid var(--geo-color-info-default);outline-offset:2px}.geo-map-basemap-switcher__preview{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;pointer-events:none}.geo-map-basemap-switcher__preview--empty{background:linear-gradient(145deg,var(--geo-color-neutral-600),var(--geo-color-neutral-800))}.geo-map-basemap-switcher__bar{position:absolute;right:0;bottom:0;left:0;z-index:1;display:flex;align-items:center;gap:4px;min-height:28px;padding:4px 6px;color:var(--geo-color-neutral-white, #fff);background:color-mix(in srgb,var(--geo-color-neutral-900) 72%,transparent);pointer-events:none}.geo-map-basemap-switcher__icon{display:inline-flex;flex-shrink:0;width:14px;height:14px;color:inherit}.geo-map-basemap-switcher__icon svg{width:100%;height:100%}.geo-map-basemap-switcher__caption{min-width:0;overflow:hidden;font-size:var(--geo-font-size-tiny, 10px);font-weight:var(--geo-font-weight-semibold, 600);line-height:1.2;text-align:left;text-overflow:ellipsis;white-space:nowrap}.geo-map-basemap-switcher-overlay .ant-dropdown-menu{padding:0;margin-bottom:8px;border:0;background:transparent;box-shadow:none}.geo-map-basemap-switcher__panel{border:1px solid var(--geo-color-border-default);border-radius:var(--geo-radius-lg);background:var(--geo-color-surface-elevated);box-shadow:var(--geo-shadow-sm);width:104px;min-width:104px;max-width:104px;padding:10px 8px;border-radius:var(--geo-radius-xl, 14px);background:var(--geo-color-neutral-white, #fff);box-shadow:var(--geo-shadow-md)}.geo-map-basemap-switcher__list{display:flex;flex-direction:column;align-items:center;gap:10px;margin:0;padding:0;list-style:none}.geo-map-basemap-switcher__option{display:flex;flex-direction:column;align-items:center;gap:6px;width:100%;padding:0;border:0;background:transparent;color:var(--geo-color-neutral-900);font:inherit;cursor:pointer}.geo-map-basemap-switcher__option:hover .geo-map-basemap-switcher__option-thumb{box-shadow:0 0 0 2px color-mix(in srgb,var(--geo-color-info-default) 35%,transparent)}.geo-map-basemap-switcher__option:focus-visible .geo-map-basemap-switcher__option-thumb{outline:2px solid var(--geo-color-info-default);outline-offset:2px}.geo-map-basemap-switcher__option--active .geo-map-basemap-switcher__option-thumb{box-shadow:0 0 0 2px var(--geo-color-info-default)}.geo-map-basemap-switcher__option--active .geo-map-basemap-switcher__option-label{color:var(--geo-color-info-default);font-weight:var(--geo-font-weight-semibold, 600)}.geo-map-basemap-switcher__option-thumb{display:block;width:72px;height:72px;border-radius:var(--geo-radius-lg, 12px);object-fit:cover;background:var(--geo-color-neutral-200);transition:box-shadow .15s ease}.geo-map-basemap-switcher__option-thumb--empty{background:linear-gradient(145deg,var(--geo-color-neutral-500),var(--geo-color-neutral-700))}.geo-map-basemap-switcher__option-label{max-width:100%;padding:0 2px;overflow:hidden;color:inherit;font-size:var(--geo-font-size-tiny, 10px);font-weight:var(--geo-font-weight-medium, 500);line-height:1.25;text-align:center;text-overflow:ellipsis;white-space:nowrap}\n"], dependencies: [{ kind: "ngmodule", type: NzToolTipModule }, { kind: "directive", type: i1.NzTooltipDirective, selector: "[nz-tooltip]", inputs: ["nzTooltipTitle", "nzTooltipTitleContext", "nz-tooltip", "nzTooltipTrigger", "nzTooltipPlacement", "nzTooltipOrigin", "nzTooltipVisible", "nzTooltipMouseEnterDelay", "nzTooltipMouseLeaveDelay", "nzTooltipOverlayClassName", "nzTooltipOverlayStyle", "nzTooltipArrowPointAtCenter", "cdkConnectedOverlayPush", "nzTooltipColor"], outputs: ["nzTooltipVisibleChange"], exportAs: ["nzTooltip"] }, { kind: "ngmodule", type: NzDropDownModule }, { kind: "directive", type: i2.NzDropDownDirective, selector: "[nz-dropdown]", inputs: ["nzDropdownMenu", "nzTrigger", "nzMatchWidthElement", "nzBackdrop", "nzClickHide", "nzDisabled", "nzVisible", "nzOverlayClassName", "nzOverlayStyle", "nzPlacement"], outputs: ["nzVisibleChange"], exportAs: ["nzDropdown"] }, { kind: "component", type: i2.NzDropdownMenuComponent, selector: "nz-dropdown-menu", exportAs: ["nzDropdownMenu"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
56
45
  }
57
46
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: GeoMapBasemapSwitcherComponent, decorators: [{
58
47
  type: Component,
59
- args: [{ selector: 'geo-map-basemap-switcher', standalone: true, imports: [NzToolTipModule], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: { class: 'geo-map-basemap-switcher-host' }, template: "<button\n type=\"button\"\n class=\"geo-map-basemap-switcher__trigger\"\n [nz-tooltip]=\"tooltipText()\"\n nzTooltipPlacement=\"left\"\n [attr.aria-label]=\"tooltipText()\"\n (click)=\"toggle()\"\n>\n @if (next(); as option) {\n @if (option.previewUrl; as url) {\n <img class=\"geo-map-basemap-switcher__preview\" [src]=\"url\" alt=\"\" />\n } @else {\n <span\n class=\"geo-map-basemap-switcher__preview geo-map-basemap-switcher__preview--empty\"\n aria-hidden=\"true\"\n ></span>\n }\n } @else {\n <span\n class=\"geo-map-basemap-switcher__preview geo-map-basemap-switcher__preview--empty\"\n aria-hidden=\"true\"\n ></span>\n }\n <span class=\"geo-map-basemap-switcher__veil\" aria-hidden=\"true\"></span>\n <span class=\"geo-map-basemap-switcher__content\">\n <span class=\"geo-map-basemap-switcher__icon\" aria-hidden=\"true\">\n <svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M12 4.2 3 8.7l9 4.5 9-4.5-9-4.5Z\"\n stroke=\"currentColor\"\n stroke-width=\"1.75\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M3 15.3 12 19.8l9-4.5\"\n stroke=\"currentColor\"\n stroke-width=\"1.75\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </span>\n <span class=\"geo-map-basemap-switcher__caption\">{{ label() }}</span>\n </span>\n</button>\n", styles: [".geo-map-basemap-switcher-host{display:block}.geo-map-basemap-switcher__trigger{position:relative;display:block;width:90px;height:90px;padding:0;overflow:hidden;border:3px solid var(--geo-color-neutral-white, #fff);border-radius:var(--geo-radius-2xl);background:var(--geo-color-neutral-800);box-shadow:var(--geo-shadow-md);cursor:pointer;transition:box-shadow .15s ease,transform .15s ease}.geo-map-basemap-switcher__trigger:hover{box-shadow:var(--geo-shadow-lg, var(--geo-shadow-md));transform:translateY(-1px)}.geo-map-basemap-switcher__trigger:focus-visible{outline:2px solid var(--geo-color-primary-default);outline-offset:2px}.geo-map-basemap-switcher__preview{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;pointer-events:none}.geo-map-basemap-switcher__preview--empty{background:linear-gradient(145deg,var(--geo-color-neutral-600),var(--geo-color-neutral-800))}.geo-map-basemap-switcher__veil{position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,transparent 40%,color-mix(in srgb,var(--geo-color-neutral-900) 55%,transparent) 100%)}.geo-map-basemap-switcher__content{position:absolute;inset:0;z-index:1;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;gap:4px;padding:0 8px 8px;color:var(--geo-color-neutral-white, #fff);pointer-events:none}.geo-map-basemap-switcher__icon{display:inline-flex;width:20px;height:20px;color:inherit;filter:drop-shadow(0 1px 2px color-mix(in srgb,var(--geo-color-neutral-900) 45%,transparent))}.geo-map-basemap-switcher__icon svg{width:100%;height:100%}.geo-map-basemap-switcher__caption{max-width:100%;font-size:var(--geo-font-size-caption);font-weight:var(--geo-font-weight-semibold);line-height:1.2;text-align:left;white-space:nowrap;text-shadow:0 1px 2px color-mix(in srgb,var(--geo-color-neutral-900) 55%,transparent)}\n"] }]
48
+ args: [{ selector: 'geo-map-basemap-switcher', standalone: true, imports: [NzToolTipModule, NzDropDownModule], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: { class: 'geo-map-basemap-switcher-host' }, template: "<button\n type=\"button\"\n class=\"geo-map-basemap-switcher__trigger\"\n nz-dropdown\n nzTrigger=\"click\"\n nzPlacement=\"topCenter\"\n nzOverlayClassName=\"geo-map-basemap-switcher-overlay\"\n [nzDropdownMenu]=\"menu\"\n [nzVisible]=\"open()\"\n (nzVisibleChange)=\"onVisible($event)\"\n [nz-tooltip]=\"open() ? '' : tooltip()\"\n nzTooltipPlacement=\"left\"\n [attr.aria-label]=\"tooltip()\"\n [attr.aria-expanded]=\"open()\"\n>\n @if (selected(); as option) {\n @if (option.previewUrl; as url) {\n <img class=\"geo-map-basemap-switcher__preview\" [src]=\"url\" alt=\"\" />\n } @else {\n <span\n class=\"geo-map-basemap-switcher__preview geo-map-basemap-switcher__preview--empty\"\n aria-hidden=\"true\"\n ></span>\n }\n } @else {\n <span\n class=\"geo-map-basemap-switcher__preview geo-map-basemap-switcher__preview--empty\"\n aria-hidden=\"true\"\n ></span>\n }\n <span class=\"geo-map-basemap-switcher__bar\" aria-hidden=\"true\">\n <span class=\"geo-map-basemap-switcher__icon\">\n <svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M12 4.2 3 8.7l9 4.5 9-4.5-9-4.5Z\"\n stroke=\"currentColor\"\n stroke-width=\"1.75\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M3 15.3 12 19.8l9-4.5\"\n stroke=\"currentColor\"\n stroke-width=\"1.75\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M3 12 12 16.5l9-4.5\"\n stroke=\"currentColor\"\n stroke-width=\"1.75\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </span>\n <span class=\"geo-map-basemap-switcher__caption\">{{ label() }}</span>\n </span>\n</button>\n\n<nz-dropdown-menu #menu=\"nzDropdownMenu\">\n <div\n class=\"geo-map-basemap-switcher__panel\"\n role=\"listbox\"\n [attr.aria-label]=\"tooltip()\"\n >\n <ul class=\"geo-map-basemap-switcher__list\">\n @for (option of list(); track option.id) {\n <li>\n <button\n type=\"button\"\n role=\"option\"\n class=\"geo-map-basemap-switcher__option\"\n [class.geo-map-basemap-switcher__option--active]=\"option.id === selectedId()\"\n [attr.aria-selected]=\"option.id === selectedId()\"\n (click)=\"pick(option)\"\n >\n @if (option.previewUrl; as url) {\n <img\n class=\"geo-map-basemap-switcher__option-thumb\"\n [src]=\"url\"\n alt=\"\"\n />\n } @else {\n <span\n class=\"geo-map-basemap-switcher__option-thumb geo-map-basemap-switcher__option-thumb--empty\"\n aria-hidden=\"true\"\n ></span>\n }\n <span class=\"geo-map-basemap-switcher__option-label\">{{ option.label }}</span>\n </button>\n </li>\n }\n </ul>\n </div>\n</nz-dropdown-menu>\n", styles: ["@charset \"UTF-8\";.geo-map-basemap-switcher-host{display:block;width:90px}.geo-map-basemap-switcher__trigger{position:relative;display:block;width:90px;height:90px;padding:0;overflow:hidden;border:3px solid var(--geo-color-neutral-white, #fff);border-radius:var(--geo-radius-2xl);background:var(--geo-color-neutral-800);box-shadow:var(--geo-shadow-md);cursor:pointer;transition:box-shadow .15s ease,transform .15s ease}.geo-map-basemap-switcher__trigger:hover{box-shadow:var(--geo-shadow-lg, var(--geo-shadow-md));transform:translateY(-1px)}.geo-map-basemap-switcher__trigger:focus-visible{outline:2px solid var(--geo-color-info-default);outline-offset:2px}.geo-map-basemap-switcher__preview{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;pointer-events:none}.geo-map-basemap-switcher__preview--empty{background:linear-gradient(145deg,var(--geo-color-neutral-600),var(--geo-color-neutral-800))}.geo-map-basemap-switcher__bar{position:absolute;right:0;bottom:0;left:0;z-index:1;display:flex;align-items:center;gap:4px;min-height:28px;padding:4px 6px;color:var(--geo-color-neutral-white, #fff);background:color-mix(in srgb,var(--geo-color-neutral-900) 72%,transparent);pointer-events:none}.geo-map-basemap-switcher__icon{display:inline-flex;flex-shrink:0;width:14px;height:14px;color:inherit}.geo-map-basemap-switcher__icon svg{width:100%;height:100%}.geo-map-basemap-switcher__caption{min-width:0;overflow:hidden;font-size:var(--geo-font-size-tiny, 10px);font-weight:var(--geo-font-weight-semibold, 600);line-height:1.2;text-align:left;text-overflow:ellipsis;white-space:nowrap}.geo-map-basemap-switcher-overlay .ant-dropdown-menu{padding:0;margin-bottom:8px;border:0;background:transparent;box-shadow:none}.geo-map-basemap-switcher__panel{border:1px solid var(--geo-color-border-default);border-radius:var(--geo-radius-lg);background:var(--geo-color-surface-elevated);box-shadow:var(--geo-shadow-sm);width:104px;min-width:104px;max-width:104px;padding:10px 8px;border-radius:var(--geo-radius-xl, 14px);background:var(--geo-color-neutral-white, #fff);box-shadow:var(--geo-shadow-md)}.geo-map-basemap-switcher__list{display:flex;flex-direction:column;align-items:center;gap:10px;margin:0;padding:0;list-style:none}.geo-map-basemap-switcher__option{display:flex;flex-direction:column;align-items:center;gap:6px;width:100%;padding:0;border:0;background:transparent;color:var(--geo-color-neutral-900);font:inherit;cursor:pointer}.geo-map-basemap-switcher__option:hover .geo-map-basemap-switcher__option-thumb{box-shadow:0 0 0 2px color-mix(in srgb,var(--geo-color-info-default) 35%,transparent)}.geo-map-basemap-switcher__option:focus-visible .geo-map-basemap-switcher__option-thumb{outline:2px solid var(--geo-color-info-default);outline-offset:2px}.geo-map-basemap-switcher__option--active .geo-map-basemap-switcher__option-thumb{box-shadow:0 0 0 2px var(--geo-color-info-default)}.geo-map-basemap-switcher__option--active .geo-map-basemap-switcher__option-label{color:var(--geo-color-info-default);font-weight:var(--geo-font-weight-semibold, 600)}.geo-map-basemap-switcher__option-thumb{display:block;width:72px;height:72px;border-radius:var(--geo-radius-lg, 12px);object-fit:cover;background:var(--geo-color-neutral-200);transition:box-shadow .15s ease}.geo-map-basemap-switcher__option-thumb--empty{background:linear-gradient(145deg,var(--geo-color-neutral-500),var(--geo-color-neutral-700))}.geo-map-basemap-switcher__option-label{max-width:100%;padding:0 2px;overflow:hidden;color:inherit;font-size:var(--geo-font-size-tiny, 10px);font-weight:var(--geo-font-weight-medium, 500);line-height:1.25;text-align:center;text-overflow:ellipsis;white-space:nowrap}\n"] }]
60
49
  }] });
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvLW1hcC1iYXNlbWFwLXN3aXRjaGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dlby11aS9zcmMvbGliL2ZpZ21hL2dlby1tYXAvY2hyb21lL2dlby1tYXAtYmFzZW1hcC1zd2l0Y2hlci9nZW8tbWFwLWJhc2VtYXAtc3dpdGNoZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ2VvLXVpL3NyYy9saWIvZmlnbWEvZ2VvLW1hcC9jaHJvbWUvZ2VvLW1hcC1iYXNlbWFwLXN3aXRjaGVyL2dlby1tYXAtYmFzZW1hcC1zd2l0Y2hlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxRQUFRLEVBQ1IsS0FBSyxFQUNMLEtBQUssRUFDTCxNQUFNLEVBQ04saUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7O0FBRzFFOzs7Ozs7R0FNRztBQVdILE1BQU0sT0FBTyw4QkFBOEI7SUFDekMseUVBQXlFO0lBQ2hFLE9BQU8sR0FBRyxLQUFLLENBQXdCLCtCQUErQixDQUFDLENBQUM7SUFDeEUsVUFBVSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuQyw0REFBNEQ7SUFDbkQsS0FBSyxHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUM1QixPQUFPLEdBQUcsS0FBSyxDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFFdEMsYUFBYSxHQUFHLE1BQU0sRUFBaUIsQ0FBQztJQUV4QyxJQUFJLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtRQUM1QixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN4QyxPQUFPLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLCtCQUErQixDQUFDO0lBQ25FLENBQUMsQ0FBQyxDQUFDO0lBRU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7UUFDaEMsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQzdCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN6QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQztJQUNoRSxDQUFDLENBQUMsQ0FBQztJQUVILGdFQUFnRTtJQUN2RCxJQUFJLEdBQUcsUUFBUSxDQUFDLEdBQStCLEVBQUU7UUFDeEQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDakIsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBQ0QsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLEVBQUUsQ0FBQztRQUN0QyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssU0FBUyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQztJQUN2RSxDQUFDLENBQUMsQ0FBQztJQUVNLFdBQVcsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1FBQ25DLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDVixPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUN4QixDQUFDO1FBQ0QsT0FBTyxlQUFlLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNyQyxDQUFDLENBQUMsQ0FBQztJQUVILE1BQU07UUFDSixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ1YsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDN0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3hDLENBQUM7d0dBOUNVLDhCQUE4Qjs0RkFBOUIsOEJBQThCLG11QkM5QjNDLCs5Q0E2Q0EseTNERHRCWSxlQUFlOzs0RkFPZCw4QkFBOEI7a0JBVjFDLFNBQVM7K0JBQ0UsMEJBQTBCLGNBQ3hCLElBQUksV0FDUCxDQUFDLGVBQWUsQ0FBQyxtQkFHVCx1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLFFBQy9CLEVBQUUsS0FBSyxFQUFFLCtCQUErQixFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgY29tcHV0ZWQsXG4gIGlucHV0LFxuICBtb2RlbCxcbiAgb3V0cHV0LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOelRvb2xUaXBNb2R1bGUgfSBmcm9tICduZy16b3Jyby1hbnRkL3Rvb2x0aXAnO1xuaW1wb3J0IHsgR0VPX01BUF9ERUZBVUxUX0JBU0VNQVBfT1BUSU9OUyB9IGZyb20gJy4uLy4uL2dlby1tYXAuY29uc3RhbnRzJztcbmltcG9ydCB0eXBlIHsgR2VvTWFwQmFzZW1hcCwgR2VvTWFwQmFzZW1hcE9wdGlvbiB9IGZyb20gJy4uLy4uL2dlby1tYXAudHlwZXMnO1xuXG4vKipcbiAqIFRodW1ibmFpbCBjYXJkIHRvZ2dsaW5nIHN0cmVldCDihpQgc2F0ZWxsaXRlIGJhc2VtYXAuXG4gKlxuICogQHN1bW1hcnkgVG9nZ2xlIHN0cmVldCAvIHNhdGVsbGl0ZSBiYXNlbWFwLlxuICogQHdoZW5Ub1VzZSBSaWdodC1zaWRlIGJhc2VtYXAgdG9nZ2xlLlxuICogQGRvTm90VXNlV2hlbiBGdWxsIGxheWVyIHBhbmVsIOKAlCB1c2UgZ2VvLW1hcC1sYXllci1wYW5lbC5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ2VvLW1hcC1iYXNlbWFwLXN3aXRjaGVyJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW056VG9vbFRpcE1vZHVsZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9nZW8tbWFwLWJhc2VtYXAtc3dpdGNoZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vZ2VvLW1hcC1iYXNlbWFwLXN3aXRjaGVyLmNvbXBvbmVudC5zY3NzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGhvc3Q6IHsgY2xhc3M6ICdnZW8tbWFwLWJhc2VtYXAtc3dpdGNoZXItaG9zdCcgfSxcbn0pXG5leHBvcnQgY2xhc3MgR2VvTWFwQmFzZW1hcFN3aXRjaGVyQ29tcG9uZW50IHtcbiAgLyoqIEV4YWN0bHkgdHdvIG9wdGlvbnMgKHN0cmVldCArIHNhdGVsbGl0ZSkuIEV4dHJhIGl0ZW1zIGFyZSBpZ25vcmVkLiAqL1xuICByZWFkb25seSBvcHRpb25zID0gaW5wdXQ8R2VvTWFwQmFzZW1hcE9wdGlvbltdPihHRU9fTUFQX0RFRkFVTFRfQkFTRU1BUF9PUFRJT05TKTtcbiAgcmVhZG9ubHkgc2VsZWN0ZWRJZCA9IG1vZGVsKCdvc20nKTtcbiAgLyoqIENhcHRpb24gb24gdGhlIHRodW1ibmFpbCBjYXJkIChkZXNpZ246IMKrTOG7m3AgYuG6o24gxJHhu5PCuykuICovXG4gIHJlYWRvbmx5IGxhYmVsID0gaW5wdXQoJ0zhu5twIGLhuqNuIMSR4buTJyk7XG4gIHJlYWRvbmx5IHRvb2x0aXAgPSBpbnB1dCgnxJDhu5VpIGzhu5twIGLhuqNuIMSR4buTIG7hu4FuJyk7XG5cbiAgcmVhZG9ubHkgYmFzZW1hcENoYW5nZSA9IG91dHB1dDxHZW9NYXBCYXNlbWFwPigpO1xuXG4gIHJlYWRvbmx5IHBhaXIgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgbGlzdCA9IHRoaXMub3B0aW9ucygpLnNsaWNlKDAsIDIpO1xuICAgIHJldHVybiBsaXN0Lmxlbmd0aCA+PSAyID8gbGlzdCA6IEdFT19NQVBfREVGQVVMVF9CQVNFTUFQX09QVElPTlM7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IHNlbGVjdGVkID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGlkID0gdGhpcy5zZWxlY3RlZElkKCk7XG4gICAgY29uc3QgbGlzdCA9IHRoaXMucGFpcigpO1xuICAgIHJldHVybiBsaXN0LmZpbmQoKGl0ZW0pID0+IGl0ZW0uaWQgPT09IGlkKSA/PyBsaXN0WzBdID8/IG51bGw7XG4gIH0pO1xuXG4gIC8qKiBQcmV2aWV3IG9mIHRoZSBvdGhlciBiYXNlbWFwICh3aGF0IGNsaWNrIHdpbGwgc3dpdGNoIHRvKS4gKi9cbiAgcmVhZG9ubHkgbmV4dCA9IGNvbXB1dGVkKCgpOiBHZW9NYXBCYXNlbWFwT3B0aW9uIHwgbnVsbCA9PiB7XG4gICAgY29uc3QgbGlzdCA9IHRoaXMucGFpcigpO1xuICAgIGlmICghbGlzdC5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBjb25zdCBjdXJyZW50SWQgPSB0aGlzLnNlbGVjdGVkKCk/LmlkO1xuICAgIHJldHVybiBsaXN0LmZpbmQoKGl0ZW0pID0+IGl0ZW0uaWQgIT09IGN1cnJlbnRJZCkgPz8gbGlzdFswXSA/PyBudWxsO1xuICB9KTtcblxuICByZWFkb25seSB0b29sdGlwVGV4dCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBuZXh0ID0gdGhpcy5uZXh0KCk7XG4gICAgaWYgKCFuZXh0KSB7XG4gICAgICByZXR1cm4gdGhpcy50b29sdGlwKCk7XG4gICAgfVxuICAgIHJldHVybiBgQ2h1eeG7g24gc2FuZyAke25leHQubGFiZWx9YDtcbiAgfSk7XG5cbiAgdG9nZ2xlKCk6IHZvaWQge1xuICAgIGNvbnN0IG5leHQgPSB0aGlzLm5leHQoKTtcbiAgICBpZiAoIW5leHQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5zZWxlY3RlZElkLnNldChuZXh0LmlkKTtcbiAgICB0aGlzLmJhc2VtYXBDaGFuZ2UuZW1pdChuZXh0LmJhc2VtYXApO1xuICB9XG59XG4iLCI8YnV0dG9uXG4gIHR5cGU9XCJidXR0b25cIlxuICBjbGFzcz1cImdlby1tYXAtYmFzZW1hcC1zd2l0Y2hlcl9fdHJpZ2dlclwiXG4gIFtuei10b29sdGlwXT1cInRvb2x0aXBUZXh0KClcIlxuICBuelRvb2x0aXBQbGFjZW1lbnQ9XCJsZWZ0XCJcbiAgW2F0dHIuYXJpYS1sYWJlbF09XCJ0b29sdGlwVGV4dCgpXCJcbiAgKGNsaWNrKT1cInRvZ2dsZSgpXCJcbj5cbiAgQGlmIChuZXh0KCk7IGFzIG9wdGlvbikge1xuICAgIEBpZiAob3B0aW9uLnByZXZpZXdVcmw7IGFzIHVybCkge1xuICAgICAgPGltZyBjbGFzcz1cImdlby1tYXAtYmFzZW1hcC1zd2l0Y2hlcl9fcHJldmlld1wiIFtzcmNdPVwidXJsXCIgYWx0PVwiXCIgLz5cbiAgICB9IEBlbHNlIHtcbiAgICAgIDxzcGFuXG4gICAgICAgIGNsYXNzPVwiZ2VvLW1hcC1iYXNlbWFwLXN3aXRjaGVyX19wcmV2aWV3IGdlby1tYXAtYmFzZW1hcC1zd2l0Y2hlcl9fcHJldmlldy0tZW1wdHlcIlxuICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgPjwvc3Bhbj5cbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIDxzcGFuXG4gICAgICBjbGFzcz1cImdlby1tYXAtYmFzZW1hcC1zd2l0Y2hlcl9fcHJldmlldyBnZW8tbWFwLWJhc2VtYXAtc3dpdGNoZXJfX3ByZXZpZXctLWVtcHR5XCJcbiAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgPjwvc3Bhbj5cbiAgfVxuICA8c3BhbiBjbGFzcz1cImdlby1tYXAtYmFzZW1hcC1zd2l0Y2hlcl9fdmVpbFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvc3Bhbj5cbiAgPHNwYW4gY2xhc3M9XCJnZW8tbWFwLWJhc2VtYXAtc3dpdGNoZXJfX2NvbnRlbnRcIj5cbiAgICA8c3BhbiBjbGFzcz1cImdlby1tYXAtYmFzZW1hcC1zd2l0Y2hlcl9faWNvblwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgICAgPHN2ZyB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAgICAgIDxwYXRoXG4gICAgICAgICAgZD1cIk0xMiA0LjIgMyA4LjdsOSA0LjUgOS00LjUtOS00LjVaXCJcbiAgICAgICAgICBzdHJva2U9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjEuNzVcIlxuICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcbiAgICAgICAgLz5cbiAgICAgICAgPHBhdGhcbiAgICAgICAgICBkPVwiTTMgMTUuMyAxMiAxOS44bDktNC41XCJcbiAgICAgICAgICBzdHJva2U9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjEuNzVcIlxuICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcbiAgICAgICAgLz5cbiAgICAgIDwvc3ZnPlxuICAgIDwvc3Bhbj5cbiAgICA8c3BhbiBjbGFzcz1cImdlby1tYXAtYmFzZW1hcC1zd2l0Y2hlcl9fY2FwdGlvblwiPnt7IGxhYmVsKCkgfX08L3NwYW4+XG4gIDwvc3Bhbj5cbjwvYnV0dG9uPlxuIl19
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvLW1hcC1iYXNlbWFwLXN3aXRjaGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dlby11aS9zcmMvbGliL2ZpZ21hL2dlby1tYXAvY2hyb21lL2dlby1tYXAtYmFzZW1hcC1zd2l0Y2hlci9nZW8tbWFwLWJhc2VtYXAtc3dpdGNoZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ2VvLXVpL3NyYy9saWIvZmlnbWEvZ2VvLW1hcC9jaHJvbWUvZ2VvLW1hcC1iYXNlbWFwLXN3aXRjaGVyL2dlby1tYXAtYmFzZW1hcC1zd2l0Y2hlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxRQUFRLEVBQ1IsS0FBSyxFQUNMLEtBQUssRUFDTCxNQUFNLEVBQ04sTUFBTSxFQUNOLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDeEQsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0seUJBQXlCLENBQUM7Ozs7QUFHMUU7Ozs7OztHQU1HO0FBV0gsTUFBTSxPQUFPLDhCQUE4QjtJQUNoQyxPQUFPLEdBQUcsS0FBSyxDQUF3QiwrQkFBK0IsQ0FBQyxDQUFDO0lBQ3hFLFVBQVUsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkMsNERBQTREO0lBQ25ELEtBQUssR0FBRyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDNUIsT0FBTyxHQUFHLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBRXRDLGFBQWEsR0FBRyxNQUFNLEVBQWlCLENBQUM7SUFFeEMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUVyQixJQUFJLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtRQUM1QixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDNUIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLCtCQUErQixDQUFDO0lBQzlELENBQUMsQ0FBQyxDQUFDO0lBRU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7UUFDaEMsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQzdCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN6QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQztJQUNoRSxDQUFDLENBQUMsQ0FBQztJQUVILFNBQVMsQ0FBQyxPQUFnQjtRQUN4QixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBSSxDQUFDLE1BQTJCO1FBQzlCLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JCLElBQUksTUFBTSxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQztZQUNwQyxPQUFPO1FBQ1QsQ0FBQztRQUNELElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUMvQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDMUMsQ0FBQzt3R0FqQ1UsOEJBQThCOzRGQUE5Qiw4QkFBOEIsbXVCQ2hDM0MsMmlHQStGQSxzcUhEdEVZLGVBQWUsd2ZBQUUsZ0JBQWdCOzs0RkFPaEMsOEJBQThCO2tCQVYxQyxTQUFTOytCQUNFLDBCQUEwQixjQUN4QixJQUFJLFdBQ1AsQ0FBQyxlQUFlLEVBQUUsZ0JBQWdCLENBQUMsbUJBRzNCLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksUUFDL0IsRUFBRSxLQUFLLEVBQUUsK0JBQStCLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBjb21wdXRlZCxcbiAgaW5wdXQsXG4gIG1vZGVsLFxuICBvdXRwdXQsXG4gIHNpZ25hbCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTnpEcm9wRG93bk1vZHVsZSB9IGZyb20gJ25nLXpvcnJvLWFudGQvZHJvcGRvd24nO1xuaW1wb3J0IHsgTnpUb29sVGlwTW9kdWxlIH0gZnJvbSAnbmctem9ycm8tYW50ZC90b29sdGlwJztcbmltcG9ydCB7IEdFT19NQVBfREVGQVVMVF9CQVNFTUFQX09QVElPTlMgfSBmcm9tICcuLi8uLi9nZW8tbWFwLmNvbnN0YW50cyc7XG5pbXBvcnQgdHlwZSB7IEdlb01hcEJhc2VtYXAsIEdlb01hcEJhc2VtYXBPcHRpb24gfSBmcm9tICcuLi8uLi9nZW8tbWFwLnR5cGVzJztcblxuLyoqXG4gKiBUaHVtYm5haWwgdHJpZ2dlciArIHZlcnRpY2FsIGRyb3Bkb3duIHRvIHBpY2sgdGhlIG1hcCBiYXNlbWFwLlxuICpcbiAqIEBzdW1tYXJ5IFBpY2sgYmFzZW1hcCBmcm9tIGEgdmVydGljYWwgdGh1bWJuYWlsIGRyb3Bkb3duLlxuICogQHdoZW5Ub1VzZSBCb3R0b20tcmlnaHQgYmFzZW1hcCBwaWNrZXIgKMKrTOG7m3AgYuG6o24gxJHhu5PCuykuXG4gKiBAZG9Ob3RVc2VXaGVuIEZ1bGwgbGF5ZXIgcGFuZWwg4oCUIHVzZSBnZW8tbWFwLWxheWVyLXBhbmVsLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnZW8tbWFwLWJhc2VtYXAtc3dpdGNoZXInLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbTnpUb29sVGlwTW9kdWxlLCBOekRyb3BEb3duTW9kdWxlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2dlby1tYXAtYmFzZW1hcC1zd2l0Y2hlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9nZW8tbWFwLWJhc2VtYXAtc3dpdGNoZXIuY29tcG9uZW50LnNjc3MnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgaG9zdDogeyBjbGFzczogJ2dlby1tYXAtYmFzZW1hcC1zd2l0Y2hlci1ob3N0JyB9LFxufSlcbmV4cG9ydCBjbGFzcyBHZW9NYXBCYXNlbWFwU3dpdGNoZXJDb21wb25lbnQge1xuICByZWFkb25seSBvcHRpb25zID0gaW5wdXQ8R2VvTWFwQmFzZW1hcE9wdGlvbltdPihHRU9fTUFQX0RFRkFVTFRfQkFTRU1BUF9PUFRJT05TKTtcbiAgcmVhZG9ubHkgc2VsZWN0ZWRJZCA9IG1vZGVsKCdvc20nKTtcbiAgLyoqIENhcHRpb24gb24gdGhlIHRodW1ibmFpbCBjYXJkIChkZXNpZ246IMKrTOG7m3AgYuG6o24gxJHhu5PCuykuICovXG4gIHJlYWRvbmx5IGxhYmVsID0gaW5wdXQoJ0zhu5twIGLhuqNuIMSR4buTJyk7XG4gIHJlYWRvbmx5IHRvb2x0aXAgPSBpbnB1dCgnxJDhu5VpIGzhu5twIGLhuqNuIMSR4buTIG7hu4FuJyk7XG5cbiAgcmVhZG9ubHkgYmFzZW1hcENoYW5nZSA9IG91dHB1dDxHZW9NYXBCYXNlbWFwPigpO1xuXG4gIHJlYWRvbmx5IG9wZW4gPSBzaWduYWwoZmFsc2UpO1xuXG4gIHJlYWRvbmx5IGxpc3QgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgbGlzdCA9IHRoaXMub3B0aW9ucygpO1xuICAgIHJldHVybiBsaXN0Lmxlbmd0aCA/IGxpc3QgOiBHRU9fTUFQX0RFRkFVTFRfQkFTRU1BUF9PUFRJT05TO1xuICB9KTtcblxuICByZWFkb25seSBzZWxlY3RlZCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBpZCA9IHRoaXMuc2VsZWN0ZWRJZCgpO1xuICAgIGNvbnN0IGxpc3QgPSB0aGlzLmxpc3QoKTtcbiAgICByZXR1cm4gbGlzdC5maW5kKChpdGVtKSA9PiBpdGVtLmlkID09PSBpZCkgPz8gbGlzdFswXSA/PyBudWxsO1xuICB9KTtcblxuICBvblZpc2libGUodmlzaWJsZTogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMub3Blbi5zZXQodmlzaWJsZSk7XG4gIH1cblxuICBwaWNrKG9wdGlvbjogR2VvTWFwQmFzZW1hcE9wdGlvbik6IHZvaWQge1xuICAgIHRoaXMub3Blbi5zZXQoZmFsc2UpO1xuICAgIGlmIChvcHRpb24uaWQgPT09IHRoaXMuc2VsZWN0ZWRJZCgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuc2VsZWN0ZWRJZC5zZXQob3B0aW9uLmlkKTtcbiAgICB0aGlzLmJhc2VtYXBDaGFuZ2UuZW1pdChvcHRpb24uYmFzZW1hcCk7XG4gIH1cbn1cbiIsIjxidXR0b25cbiAgdHlwZT1cImJ1dHRvblwiXG4gIGNsYXNzPVwiZ2VvLW1hcC1iYXNlbWFwLXN3aXRjaGVyX190cmlnZ2VyXCJcbiAgbnotZHJvcGRvd25cbiAgbnpUcmlnZ2VyPVwiY2xpY2tcIlxuICBuelBsYWNlbWVudD1cInRvcENlbnRlclwiXG4gIG56T3ZlcmxheUNsYXNzTmFtZT1cImdlby1tYXAtYmFzZW1hcC1zd2l0Y2hlci1vdmVybGF5XCJcbiAgW256RHJvcGRvd25NZW51XT1cIm1lbnVcIlxuICBbbnpWaXNpYmxlXT1cIm9wZW4oKVwiXG4gIChuelZpc2libGVDaGFuZ2UpPVwib25WaXNpYmxlKCRldmVudClcIlxuICBbbnotdG9vbHRpcF09XCJvcGVuKCkgPyAnJyA6IHRvb2x0aXAoKVwiXG4gIG56VG9vbHRpcFBsYWNlbWVudD1cImxlZnRcIlxuICBbYXR0ci5hcmlhLWxhYmVsXT1cInRvb2x0aXAoKVwiXG4gIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwib3BlbigpXCJcbj5cbiAgQGlmIChzZWxlY3RlZCgpOyBhcyBvcHRpb24pIHtcbiAgICBAaWYgKG9wdGlvbi5wcmV2aWV3VXJsOyBhcyB1cmwpIHtcbiAgICAgIDxpbWcgY2xhc3M9XCJnZW8tbWFwLWJhc2VtYXAtc3dpdGNoZXJfX3ByZXZpZXdcIiBbc3JjXT1cInVybFwiIGFsdD1cIlwiIC8+XG4gICAgfSBAZWxzZSB7XG4gICAgICA8c3BhblxuICAgICAgICBjbGFzcz1cImdlby1tYXAtYmFzZW1hcC1zd2l0Y2hlcl9fcHJldmlldyBnZW8tbWFwLWJhc2VtYXAtc3dpdGNoZXJfX3ByZXZpZXctLWVtcHR5XCJcbiAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgID48L3NwYW4+XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICA8c3BhblxuICAgICAgY2xhc3M9XCJnZW8tbWFwLWJhc2VtYXAtc3dpdGNoZXJfX3ByZXZpZXcgZ2VvLW1hcC1iYXNlbWFwLXN3aXRjaGVyX19wcmV2aWV3LS1lbXB0eVwiXG4gICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgID48L3NwYW4+XG4gIH1cbiAgPHNwYW4gY2xhc3M9XCJnZW8tbWFwLWJhc2VtYXAtc3dpdGNoZXJfX2JhclwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxuICAgIDxzcGFuIGNsYXNzPVwiZ2VvLW1hcC1iYXNlbWFwLXN3aXRjaGVyX19pY29uXCI+XG4gICAgICA8c3ZnIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICAgICAgPHBhdGhcbiAgICAgICAgICBkPVwiTTEyIDQuMiAzIDguN2w5IDQuNSA5LTQuNS05LTQuNVpcIlxuICAgICAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiXG4gICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS43NVwiXG4gICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxuICAgICAgICAvPlxuICAgICAgICA8cGF0aFxuICAgICAgICAgIGQ9XCJNMyAxNS4zIDEyIDE5LjhsOS00LjVcIlxuICAgICAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiXG4gICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS43NVwiXG4gICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxuICAgICAgICAvPlxuICAgICAgICA8cGF0aFxuICAgICAgICAgIGQ9XCJNMyAxMiAxMiAxNi41bDktNC41XCJcbiAgICAgICAgICBzdHJva2U9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjEuNzVcIlxuICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcbiAgICAgICAgLz5cbiAgICAgIDwvc3ZnPlxuICAgIDwvc3Bhbj5cbiAgICA8c3BhbiBjbGFzcz1cImdlby1tYXAtYmFzZW1hcC1zd2l0Y2hlcl9fY2FwdGlvblwiPnt7IGxhYmVsKCkgfX08L3NwYW4+XG4gIDwvc3Bhbj5cbjwvYnV0dG9uPlxuXG48bnotZHJvcGRvd24tbWVudSAjbWVudT1cIm56RHJvcGRvd25NZW51XCI+XG4gIDxkaXZcbiAgICBjbGFzcz1cImdlby1tYXAtYmFzZW1hcC1zd2l0Y2hlcl9fcGFuZWxcIlxuICAgIHJvbGU9XCJsaXN0Ym94XCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInRvb2x0aXAoKVwiXG4gID5cbiAgICA8dWwgY2xhc3M9XCJnZW8tbWFwLWJhc2VtYXAtc3dpdGNoZXJfX2xpc3RcIj5cbiAgICAgIEBmb3IgKG9wdGlvbiBvZiBsaXN0KCk7IHRyYWNrIG9wdGlvbi5pZCkge1xuICAgICAgICA8bGk+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICByb2xlPVwib3B0aW9uXCJcbiAgICAgICAgICAgIGNsYXNzPVwiZ2VvLW1hcC1iYXNlbWFwLXN3aXRjaGVyX19vcHRpb25cIlxuICAgICAgICAgICAgW2NsYXNzLmdlby1tYXAtYmFzZW1hcC1zd2l0Y2hlcl9fb3B0aW9uLS1hY3RpdmVdPVwib3B0aW9uLmlkID09PSBzZWxlY3RlZElkKClcIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1zZWxlY3RlZF09XCJvcHRpb24uaWQgPT09IHNlbGVjdGVkSWQoKVwiXG4gICAgICAgICAgICAoY2xpY2spPVwicGljayhvcHRpb24pXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICBAaWYgKG9wdGlvbi5wcmV2aWV3VXJsOyBhcyB1cmwpIHtcbiAgICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgIGNsYXNzPVwiZ2VvLW1hcC1iYXNlbWFwLXN3aXRjaGVyX19vcHRpb24tdGh1bWJcIlxuICAgICAgICAgICAgICAgIFtzcmNdPVwidXJsXCJcbiAgICAgICAgICAgICAgICBhbHQ9XCJcIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJnZW8tbWFwLWJhc2VtYXAtc3dpdGNoZXJfX29wdGlvbi10aHVtYiBnZW8tbWFwLWJhc2VtYXAtc3dpdGNoZXJfX29wdGlvbi10aHVtYi0tZW1wdHlcIlxuICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgID48L3NwYW4+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImdlby1tYXAtYmFzZW1hcC1zd2l0Y2hlcl9fb3B0aW9uLWxhYmVsXCI+e3sgb3B0aW9uLmxhYmVsIH19PC9zcGFuPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2xpPlxuICAgICAgfVxuICAgIDwvdWw+XG4gIDwvZGl2PlxuPC9uei1kcm9wZG93bi1tZW51PlxuIl19
@@ -26,9 +26,48 @@ export const GEO_MAP_DEFAULT_PROVINCE_EXTENT_4326 = [107.2, 11.15, 108.75, 12.35
26
26
  export const GEO_MAP_TRAFFIC_LAYER_ID = '__geo_traffic';
27
27
  export const GEO_MAP_ESRI_IMAGERY_URL = 'https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}';
28
28
  export const GEO_MAP_ESRI_STREETS_URL = 'https://server.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer/tile/{z}/{y}/{x}';
29
+ export const GEO_MAP_ESRI_LIGHT_URL = 'https://server.arcgisonline.com/ArcGIS/rest/services/Canvas/World_Light_Gray_Base/MapServer/tile/{z}/{y}/{x}';
30
+ export const GEO_MAP_ESRI_DARK_URL = 'https://server.arcgisonline.com/ArcGIS/rest/services/Canvas/World_Dark_Gray_Base/MapServer/tile/{z}/{y}/{x}';
31
+ export const GEO_MAP_ESRI_TOPO_URL = 'https://server.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer/tile/{z}/{y}/{x}';
29
32
  export const GEO_MAP_ESRI_TRANSPORT_URL = 'https://server.arcgisonline.com/ArcGIS/rest/services/Reference/World_Transportation/MapServer/tile/{z}/{y}/{x}';
30
- /** Default basemap picker options (đường phố / vệ tinh). */
33
+ /**
34
+ * Default basemap picker options (vertical dropdown design).
35
+ * Order matches design: vệ tinh → sáng → 3D → đường phố → địa hình.
36
+ */
31
37
  export const GEO_MAP_DEFAULT_BASEMAP_OPTIONS = [
38
+ {
39
+ id: 'satellite',
40
+ label: 'Nền vệ tinh',
41
+ basemap: {
42
+ type: 'xyz',
43
+ url: GEO_MAP_ESRI_IMAGERY_URL,
44
+ attributions: 'Esri, Maxar, Earthstar Geographics',
45
+ title: 'Ảnh vệ tinh',
46
+ },
47
+ previewUrl: 'https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/6/30/50',
48
+ },
49
+ {
50
+ id: 'light',
51
+ label: 'Bản đồ sáng',
52
+ basemap: {
53
+ type: 'xyz',
54
+ url: GEO_MAP_ESRI_LIGHT_URL,
55
+ attributions: 'Esri',
56
+ title: 'Bản đồ sáng',
57
+ },
58
+ previewUrl: 'https://server.arcgisonline.com/ArcGIS/rest/services/Canvas/World_Light_Gray_Base/MapServer/tile/6/30/50',
59
+ },
60
+ {
61
+ id: 'dark',
62
+ label: 'Bản đồ 3D',
63
+ basemap: {
64
+ type: 'xyz',
65
+ url: GEO_MAP_ESRI_DARK_URL,
66
+ attributions: 'Esri',
67
+ title: 'Bản đồ tối',
68
+ },
69
+ previewUrl: 'https://server.arcgisonline.com/ArcGIS/rest/services/Canvas/World_Dark_Gray_Base/MapServer/tile/6/30/50',
70
+ },
32
71
  {
33
72
  id: 'osm',
34
73
  label: 'Đường phố',
@@ -36,15 +75,15 @@ export const GEO_MAP_DEFAULT_BASEMAP_OPTIONS = [
36
75
  previewUrl: 'https://tile.openstreetmap.org/6/50/30.png',
37
76
  },
38
77
  {
39
- id: 'satellite',
40
- label: 'Vệ tinh',
78
+ id: 'terrain',
79
+ label: 'Nền địa hình',
41
80
  basemap: {
42
81
  type: 'xyz',
43
- url: GEO_MAP_ESRI_IMAGERY_URL,
44
- attributions: 'Esri, Maxar, Earthstar Geographics',
45
- title: 'Ảnh vệ tinh',
82
+ url: GEO_MAP_ESRI_TOPO_URL,
83
+ attributions: 'Esri',
84
+ title: 'Địa hình',
46
85
  },
47
- previewUrl: 'https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/6/30/50',
86
+ previewUrl: 'https://server.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer/tile/6/30/50',
48
87
  },
49
88
  ];
50
89
  /** Transportation reference overlay — toggle independently of basemap. */
@@ -506,4 +545,4 @@ export const GEO_MAP_DEFAULT_PLANNING_LAYERS = [
506
545
  features: [],
507
546
  },
508
547
  ];
509
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvLW1hcC5jb25zdGFudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9nZW8tdWkvc3JjL2xpYi9maWdtYS9nZW8tbWFwL2dlby1tYXAuY29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVNBLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRWhFLHNFQUFzRTtBQUN0RSxNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBRyxDQUFDLFdBQVcsRUFBRSxXQUFXLENBQVUsQ0FBQztBQUUvRTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBOEIsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDckYsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsRUFBRSxDQUFDO0FBQ3ZDLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLENBQUMsQ0FBQztBQUMxQyxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxFQUFFLENBQUM7QUFDM0MsTUFBTSxDQUFDLE1BQU0sK0JBQStCLEdBQUcsV0FBVyxDQUFDO0FBQzNELE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLE9BQU8sQ0FBQztBQUU5QyxtRUFBbUU7QUFDbkUsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsZUFBZSxDQUFDO0FBRXhELDJFQUEyRTtBQUMzRSxNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBRyxpQkFBaUIsQ0FBQztBQUM1RCxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxlQUFlLENBQUM7QUFDeEQsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUcsaUJBQWlCLENBQUM7QUFFNUQ7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sb0NBQW9DLEdBSzdDLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFFbEMseUVBQXlFO0FBQ3pF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T0FBTyxFQUFFLENBQUM7UUFDVixNQUFNLEVBQUUsR0FBRztRQUNYLEtBQUssRUFBRSxRQUFRO1FBQ2YsUUFBUSxFQUFFLEVBQUU7S0FDYjtJQUNEO1FBQ0UsRUFBRSxFQUFFLHdCQUF3QjtRQUM1QixLQUFLLEVBQUUsWUFBWTtRQUNuQixJQUFJLEVBQUUsUUFBUTtRQUNkLE9BQU8sRUFBRSxJQUFJO1FBQ2IsT0FBTyxFQUFFLENBQUM7UUFDVixNQUFNLEVBQUUsR0FBRztRQUNYLEtBQUssRUFBRSxRQUFRO1FBQ2YsUUFBUSxFQUFFLEVBQUU7S0FDYjtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7XG4gIEdlb01hcEJhc2VtYXBPcHRpb24sXG4gIEdlb01hcExheWVyQ29uZmlnLFxuICBHZW9NYXBMZWdlbmRJdGVtLFxuICBHZW9NYXBQYXJjZWxEZXRhaWwsXG4gIEdlb01hcFRvb2xiYXJBY3Rpb24sXG4gIEdlb01hcFh5ekxheWVyQ29uZmlnLFxufSBmcm9tICcuL2dlby1tYXAudHlwZXMnO1xuaW1wb3J0IHR5cGUgeyBHZW9UcmVlTm9kZSB9IGZyb20gJy4uL2dlby10cmVlL2dlby10cmVlLnR5cGVzJztcbmltcG9ydCB7IEdFT19NQVBfVE9PTEJBUl9JQ09OUyB9IGZyb20gJy4vZ2VvLW1hcC10b29sYmFyLmljb25zJztcblxuLyoqIEJ1aWx0LWluIENSUyBjb2RlcyBhdmFpbGFibGUgd2l0aG91dCBjdXN0b20gcHJvajQgcmVnaXN0cmF0aW9uLiAqL1xuZXhwb3J0IGNvbnN0IEdFT19NQVBfQlVJTFRJTl9QUk9KRUNUSU9OUyA9IFsnRVBTRzo0MzI2JywgJ0VQU0c6Mzg1NyddIGFzIGNvbnN0O1xuXG4vKipcbiAqIERlZmF1bHQgdmlldyDigJQgV2ViIE1lcmNhdG9yIGFyb3VuZCDEkMOgIEzhuqF0IChMw6JtIMSQ4buTbmcpLlxuICogQ2VudGVyIGlzIGFscmVhZHkgaW4gRVBTRzozODU3IChkbyBub3QgdHJlYXQgYXMgbG9uL2xhdCkuXG4gKi9cbmV4cG9ydCBjb25zdCBHRU9fTUFQX0RFRkFVTFRfQ0VOVEVSOiByZWFkb25seSBbbnVtYmVyLCBudW1iZXJdID0gWzEyMDUyMDAwLCAxMzMwMDAwXTtcbmV4cG9ydCBjb25zdCBHRU9fTUFQX0RFRkFVTFRfWk9PTSA9IDExO1xuZXhwb3J0IGNvbnN0IEdFT19NQVBfREVGQVVMVF9NSU5fWk9PTSA9IDI7XG5leHBvcnQgY29uc3QgR0VPX01BUF9ERUZBVUxUX01BWF9aT09NID0gMjA7XG5leHBvcnQgY29uc3QgR0VPX01BUF9ERUZBVUxUX1ZJRVdfUFJPSkVDVElPTiA9ICdFUFNHOjM4NTcnO1xuZXhwb3J0IGNvbnN0IEdFT19NQVBfREVGQVVMVF9IRUlHSFQgPSAnNDgwcHgnO1xuXG4vKiogSW50ZXJuYWwgbGF5ZXIgaWQgcmVzZXJ2ZWQgZm9yIHRoZSBgYmFzZW1hcGAgaW5wdXQgc2hvcnRjdXQuICovXG5leHBvcnQgY29uc3QgR0VPX01BUF9CQVNFTUFQX0xBWUVSX0lEID0gJ19fZ2VvX2Jhc2VtYXAnO1xuXG4vKiogSW50ZXJuYWwgdmVjdG9yIGxheWVycyByZXNlcnZlZCBmb3Igc2VsZWN0aW9uIC8gbWVhc3VyZSAvIGhpZ2hsaWdodC4gKi9cbmV4cG9ydCBjb25zdCBHRU9fTUFQX1NFTEVDVElPTl9MQVlFUl9JRCA9ICdfX2dlb19zZWxlY3Rpb24nO1xuZXhwb3J0IGNvbnN0IEdFT19NQVBfTUVBU1VSRV9MQVlFUl9JRCA9ICdfX2dlb19tZWFzdXJlJztcbmV4cG9ydCBjb25zdCBHRU9fTUFQX0hJR0hMSUdIVF9MQVlFUl9JRCA9ICdfX2dlb19oaWdobGlnaHQnO1xuXG4vKipcbiAqIERlZmF1bHQgcHJvdmluY2UgZXh0ZW50IChMw6JtIMSQ4buTbmcgYXBwcm94LCBFUFNHOjQzMjYpIGZvciDigJx4ZW0gdG/DoG4gdOG7iW5o4oCdIChUQ1FILjE0IEdENSkuXG4gKiBIb3N0IGFwcHMgc2hvdWxkIG92ZXJyaWRlIHdpdGggYXV0aG9yaXRhdGl2ZSBib3VuZGFyeSBleHRlbnQgZnJvbSBBUEkuXG4gKi9cbmV4cG9ydCBjb25zdCBHRU9fTUFQX0RFRkFVTFRfUFJPVklOQ0VfRVhURU5UXzQzMjY6IHJlYWRvbmx5IFtcbiAgbnVtYmVyLFxuICBudW1iZXIsXG4gIG51bWJlcixcbiAgbnVtYmVyLFxuXSA9IFsxMDcuMiwgMTEuMTUsIDEwOC43NSwgMTIuMzVdO1xuXG4vKiogT3B0aW9uYWwgdHJhZmZpYyAvIHJvYWRzIHJlZmVyZW5jZSBvdmVybGF5IChub3QgYSBwbGFubmluZyBsYXllcikuICovXG5leHBvcnQgY29uc3QgR0VPX01BUF9UUkFGRklDX0xBWUVSX0lEID0gJ19fZ2VvX3RyYWZmaWMnO1xuXG5leHBvcnQgY29uc3QgR0VPX01BUF9FU1JJX0lNQUdFUllfVVJMID1cbiAgJ2h0dHBzOi8vc2VydmVyLmFyY2dpc29ubGluZS5jb20vQXJjR0lTL3Jlc3Qvc2VydmljZXMvV29ybGRfSW1hZ2VyeS9NYXBTZXJ2ZXIvdGlsZS97en0ve3l9L3t4fSc7XG5cbmV4cG9ydCBjb25zdCBHRU9fTUFQX0VTUklfU1RSRUVUU19VUkwgPVxuICAnaHR0cHM6Ly9zZXJ2ZXIuYXJjZ2lzb25saW5lLmNvbS9BcmNHSVMvcmVzdC9zZXJ2aWNlcy9Xb3JsZF9TdHJlZXRfTWFwL01hcFNlcnZlci90aWxlL3t6fS97eX0ve3h9JztcblxuZXhwb3J0IGNvbnN0IEdFT19NQVBfRVNSSV9UUkFOU1BPUlRfVVJMID1cbiAgJ2h0dHBzOi8vc2VydmVyLmFyY2dpc29ubGluZS5jb20vQXJjR0lTL3Jlc3Qvc2VydmljZXMvUmVmZXJlbmNlL1dvcmxkX1RyYW5zcG9ydGF0aW9uL01hcFNlcnZlci90aWxlL3t6fS97eX0ve3h9JztcblxuLyoqIERlZmF1bHQgYmFzZW1hcCBwaWNrZXIgb3B0aW9ucyAoxJHGsOG7nW5nIHBo4buRIC8gduG7hyB0aW5oKS4gKi9cbmV4cG9ydCBjb25zdCBHRU9fTUFQX0RFRkFVTFRfQkFTRU1BUF9PUFRJT05TOiBHZW9NYXBCYXNlbWFwT3B0aW9uW10gPSBbXG4gIHtcbiAgICBpZDogJ29zbScsXG4gICAgbGFiZWw6ICfEkMaw4budbmcgcGjhu5EnLFxuICAgIGJhc2VtYXA6ICdvc20nLFxuICAgIHByZXZpZXdVcmw6ICdodHRwczovL3RpbGUub3BlbnN0cmVldG1hcC5vcmcvNi81MC8zMC5wbmcnLFxuICB9LFxuICB7XG4gICAgaWQ6ICdzYXRlbGxpdGUnLFxuICAgIGxhYmVsOiAnVuG7hyB0aW5oJyxcbiAgICBiYXNlbWFwOiB7XG4gICAgICB0eXBlOiAneHl6JyxcbiAgICAgIHVybDogR0VPX01BUF9FU1JJX0lNQUdFUllfVVJMLFxuICAgICAgYXR0cmlidXRpb25zOiAnRXNyaSwgTWF4YXIsIEVhcnRoc3RhciBHZW9ncmFwaGljcycsXG4gICAgICB0aXRsZTogJ+G6om5oIHbhu4cgdGluaCcsXG4gICAgfSxcbiAgICBwcmV2aWV3VXJsOlxuICAgICAgJ2h0dHBzOi8vc2VydmVyLmFyY2dpc29ubGluZS5jb20vQXJjR0lTL3Jlc3Qvc2VydmljZXMvV29ybGRfSW1hZ2VyeS9NYXBTZXJ2ZXIvdGlsZS82LzMwLzUwJyxcbiAgfSxcbl07XG5cbi8qKiBUcmFuc3BvcnRhdGlvbiByZWZlcmVuY2Ugb3ZlcmxheSDigJQgdG9nZ2xlIGluZGVwZW5kZW50bHkgb2YgYmFzZW1hcC4gKi9cbmV4cG9ydCBjb25zdCBHRU9fTUFQX1RSQUZGSUNfT1ZFUkxBWTogR2VvTWFwWHl6TGF5ZXJDb25maWcgPSB7XG4gIGlkOiBHRU9fTUFQX1RSQUZGSUNfTEFZRVJfSUQsXG4gIHRpdGxlOiAnTOG7m3AgZ2lhbyB0aMO0bmcnLFxuICB0eXBlOiAneHl6JyxcbiAgdXJsOiBHRU9fTUFQX0VTUklfVFJBTlNQT1JUX1VSTCxcbiAgYXR0cmlidXRpb25zOiAnRXNyaScsXG4gIHZpc2libGU6IGZhbHNlLFxuICBvcGFjaXR5OiAwLjksXG4gIHpJbmRleDogNSxcbiAgYmFzZW1hcDogZmFsc2UsXG4gIGdyb3VwOiAnYmFzZS1tYXAnLFxufTtcblxuLyoqIEJ1aWx0LWluIHRvb2xiYXIgYWN0aW9ucyDigJQgRmlnbWEgbWFwIGNocm9tZSAoRGF0IERhaSBMYW0gRG9uZyAyMDI2KS4gKi9cbmV4cG9ydCBjb25zdCBHRU9fTUFQX0RFRkFVTFRfVE9PTEJBUl9BQ1RJT05TOiBHZW9NYXBUb29sYmFyQWN0aW9uW10gPSBbXG4gIHtcbiAgICBpZDogJ2hvbWUnLFxuICAgIGxhYmVsOiAnVHJhbmcgY2jhu6cnLFxuICAgIGljb246ICdob21lJyxcbiAgICBpY29uU3JjOiBHRU9fTUFQX1RPT0xCQVJfSUNPTlMuaG9tZSxcbiAgICBpY29uT25seTogdHJ1ZSxcbiAgICB0b29sdGlwOiAnVHJhbmcgY2jhu6cnLFxuICAgIHZhcmlhbnQ6ICdwcmltYXJ5JyxcbiAgfSxcbiAge1xuICAgIGlkOiAnc2VhcmNoJyxcbiAgICBsYWJlbDogJ1RyYSBj4bupdScsXG4gICAgaWNvbjogJ3NlYXJjaCcsXG4gICAgaWNvblNyYzogR0VPX01BUF9UT09MQkFSX0lDT05TLnNlYXJjaCxcbiAgICBpY29uT25seTogdHJ1ZSxcbiAgICB0b29sdGlwOiAnVHJhIGPhu6l1IHRo4butYSDEkeG6pXQnLFxuICB9LFxuICB7XG4gICAgaWQ6ICdwYW4nLFxuICAgIGxhYmVsOiAnRGkgY2h1eeG7g24nLFxuICAgIGljb246ICdkcmFnJyxcbiAgICBpY29uU3JjOiBHRU9fTUFQX1RPT0xCQVJfSUNPTlMucGFuLFxuICAgIGljb25Pbmx5OiB0cnVlLFxuICAgIHRvb2x0aXA6ICdEaSBjaHV54buDbiBi4bqjbiDEkeG7kycsXG4gIH0sXG4gIHtcbiAgICBpZDogJ3pvb20taW4nLFxuICAgIGxhYmVsOiAnUGjDs25nIHRvJyxcbiAgICBpY29uOiAncGx1cycsXG4gICAgaWNvblNyYzogR0VPX01BUF9UT09MQkFSX0lDT05TLnpvb21JbixcbiAgICBpY29uT25seTogdHJ1ZSxcbiAgICB0b29sdGlwOiAnUGjDs25nIHRvJyxcbiAgfSxcbiAge1xuICAgIGlkOiAnem9vbS1vdXQnLFxuICAgIGxhYmVsOiAnVGh1IG5o4buPJyxcbiAgICBpY29uOiAnbWludXMnLFxuICAgIGljb25TcmM6IEdFT19NQVBfVE9PTEJBUl9JQ09OUy56b29tT3V0LFxuICAgIGljb25Pbmx5OiB0cnVlLFxuICAgIHRvb2x0aXA6ICdUaHUgbmjhu48nLFxuICB9LFxuICB7XG4gICAgaWQ6ICdmdWxsc2NyZWVuJyxcbiAgICBsYWJlbDogJ1Rvw6BuIG3DoG4gaMOsbmgnLFxuICAgIGljb246ICdmdWxsc2NyZWVuJyxcbiAgICBpY29uU3JjOiBHRU9fTUFQX1RPT0xCQVJfSUNPTlMuZnVsbHNjcmVlbixcbiAgICBpY29uT25seTogdHJ1ZSxcbiAgICB0b29sdGlwOiAnWGVtIHRvw6BuIGLhuqNuIMSR4buTJyxcbiAgfSxcbiAge1xuICAgIGlkOiAnbWVhc3VyZS1kaXN0YW5jZScsXG4gICAgbGFiZWw6ICfEkG8ga2hv4bqjbmcgY8OhY2gnLFxuICAgIGljb246ICdjb2x1bW4td2lkdGgnLFxuICAgIGljb25TcmM6IEdFT19NQVBfVE9PTEJBUl9JQ09OUy5tZWFzdXJlRGlzdGFuY2UsXG4gICAgaWNvbk9ubHk6IHRydWUsXG4gICAgdG9vbHRpcDogJ8SQbyBraG/huqNuZyBjw6FjaCcsXG4gIH0sXG4gIHtcbiAgICBpZDogJ21lYXN1cmUtYXJlYScsXG4gICAgbGFiZWw6ICfEkG8gZGnhu4duIHTDrWNoJyxcbiAgICBpY29uOiAnYm9yZGVyLW91dGVyJyxcbiAgICBpY29uU3JjOiBHRU9fTUFQX1RPT0xCQVJfSUNPTlMubWVhc3VyZUFyZWEsXG4gICAgaWNvbk9ubHk6IHRydWUsXG4gICAgdG9vbHRpcDogJ8SQbyBkaeG7h24gdMOtY2gnLFxuICB9LFxuICB7XG4gICAgaWQ6ICdsYXllcnMnLFxuICAgIGxhYmVsOiAnTOG7m3AgYuG6o24gxJHhu5MnLFxuICAgIGljb246ICdhcHBzdG9yZScsXG4gICAgaWNvblNyYzogR0VPX01BUF9UT09MQkFSX0lDT05TLmxheWVycyxcbiAgICBpY29uT25seTogdHJ1ZSxcbiAgICB0b29sdGlwOiAnQuG6rXQvdOG6r3QgbOG7m3AgYuG6o24gxJHhu5MnLFxuICB9LFxuICB7XG4gICAgaWQ6ICdsZWdlbmQnLFxuICAgIGxhYmVsOiAnQ2jDuiBnaeG6o2knLFxuICAgIGljb246ICd1bm9yZGVyZWQtbGlzdCcsXG4gICAgaWNvbk9ubHk6IHRydWUsXG4gICAgdG9vbHRpcDogJ1hlbSBjaMO6IGdp4bqjaScsXG4gIH0sXG4gIHtcbiAgICBpZDogJ3NuYXBzaG90JyxcbiAgICBsYWJlbDogJ0No4bulcCDhuqNuaCcsXG4gICAgaWNvbjogJ2NhbWVyYScsXG4gICAgaWNvbk9ubHk6IHRydWUsXG4gICAgdG9vbHRpcDogJ0No4bulcCDhuqNuaCBi4bqjbiDEkeG7kycsXG4gIH0sXG5dO1xuXG4vKipcbiAqIEJ1aWx0LWluIFwiVuG7iyB0csOtIGPhu6dhIHTDtGlcIiB0b29sYmFyIGFjdGlvbiDigJQgcGFpciB3aXRoIGBpZDogJ2xvY2F0ZSdgIGhhbmRsaW5nIHRoYXRcbiAqIGBnZW8tbWFwLXNoZWxsYCBhbHJlYWR5IHJlc29sdmVzIGludGVybmFsbHkgKGdlb2xvY2F0ZSArIGVtaXQgYGxvY2F0ZWRgL2Bsb2NhdGVFcnJvcmApLlxuICogTm90IGluY2x1ZGVkIGluIGBHRU9fTUFQX0RFRkFVTFRfVE9PTEJBUl9BQ1RJT05TYDsgaG9zdCBhcHBzIG9wdCBpbiBleHBsaWNpdGx5LlxuICovXG5leHBvcnQgY29uc3QgR0VPX01BUF9MT0NBVEVfVE9PTEJBUl9BQ1RJT046IEdlb01hcFRvb2xiYXJBY3Rpb24gPSB7XG4gIGlkOiAnbG9jYXRlJyxcbiAgbGFiZWw6ICdW4buLIHRyw60gY+G7p2EgdMO0aScsXG4gIGljb246ICdhaW0nLFxuICBpY29uT25seTogdHJ1ZSxcbiAgdG9vbHRpcDogJ1bhu4sgdHLDrSBj4bunYSB0w7RpJyxcbn07XG5cbi8qKlxuICogRGVtbyB0aGVtYXRpYyBvdmVybGF5cyBmb3IgU3Rvcnlib29rIChvZmZsaW5lLWZyaWVuZGx5IEdlb0pTT04pLlxuICogR3JvdXBzIG1hdGNoIHBvcnRhbCBsYXllcnMgcG9wb3ZlcjogUUhTREQgwrcgxJHhu4thIGNow61uaCDCtyBoaeG7h24gdHLhuqFuZy5cbiAqL1xuZXhwb3J0IGNvbnN0IEdFT19NQVBfREVNT19USEVNQVRJQ19MQVlFUlM6IEdlb01hcExheWVyQ29uZmlnW10gPSBbXG4gIHtcbiAgICBpZDogJ2RlbW8tcWhzZGQtMjAyMCcsXG4gICAgdGl0bGU6ICdRSFNERCB04buJbmggTMOibSDEkOG7k25nIDIwMjAtMjAyNScsXG4gICAgdHlwZTogJ2dlb2pzb24nLFxuICAgIHZpc2libGU6IHRydWUsXG4gICAgb3BhY2l0eTogMC40LFxuICAgIHpJbmRleDogMTAsXG4gICAgZ3JvdXA6ICdxaHNkZCcsXG4gICAgZ3JvdXBMYWJlbDogJ0LhuqNuIMSR4buTIFFIU0REJyxcbiAgICBncm91cFNlbGVjdGlvbjogJ3NpbmdsZScsXG4gICAgYmFzZW1hcDogZmFsc2UsXG4gICAgZGF0YVByb2plY3Rpb246ICdFUFNHOjQzMjYnLFxuICAgIGZlYXR1cmVQcm9qZWN0aW9uOiAnRVBTRzozODU3JyxcbiAgICBkYXRhOiB7XG4gICAgICB0eXBlOiAnRmVhdHVyZUNvbGxlY3Rpb24nLFxuICAgICAgZmVhdHVyZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6ICdGZWF0dXJlJyxcbiAgICAgICAgICBwcm9wZXJ0aWVzOiB7IGNvZGU6ICdPRFQnLCBuYW1lOiAnxJDhuqV0IOG7nyDEkcO0IHRo4buLIChRSCAyMDIwLTIwMjUpJyB9LFxuICAgICAgICAgIGdlb21ldHJ5OiB7XG4gICAgICAgICAgICB0eXBlOiAnUG9seWdvbicsXG4gICAgICAgICAgICBjb29yZGluYXRlczogW1xuICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgWzEwOC40MiwgMTEuOTNdLFxuICAgICAgICAgICAgICAgIFsxMDguNDgsIDExLjkzXSxcbiAgICAgICAgICAgICAgICBbMTA4LjQ4LCAxMS45N10sXG4gICAgICAgICAgICAgICAgWzEwOC40MiwgMTEuOTddLFxuICAgICAgICAgICAgICAgIFsxMDguNDIsIDExLjkzXSxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgfSxcbiAge1xuICAgIGlkOiAnZGVtby1xaHNkZC0yMDI1JyxcbiAgICB0aXRsZTogJ1FIU0REIHThu4luaCBMw6JtIMSQ4buTbmcgMjAyNS0yMDMwJyxcbiAgICB0eXBlOiAnZ2VvanNvbicsXG4gICAgdmlzaWJsZTogZmFsc2UsXG4gICAgb3BhY2l0eTogMC40LFxuICAgIHpJbmRleDogMTEsXG4gICAgZ3JvdXA6ICdxaHNkZCcsXG4gICAgZ3JvdXBMYWJlbDogJ0LhuqNuIMSR4buTIFFIU0REJyxcbiAgICBncm91cFNlbGVjdGlvbjogJ3NpbmdsZScsXG4gICAgYmFzZW1hcDogZmFsc2UsXG4gICAgZGF0YVByb2plY3Rpb246ICdFUFNHOjQzMjYnLFxuICAgIGZlYXR1cmVQcm9qZWN0aW9uOiAnRVBTRzozODU3JyxcbiAgICBkYXRhOiB7XG4gICAgICB0eXBlOiAnRmVhdHVyZUNvbGxlY3Rpb24nLFxuICAgICAgZmVhdHVyZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6ICdGZWF0dXJlJyxcbiAgICAgICAgICBwcm9wZXJ0aWVzOiB7IGNvZGU6ICdPRFQnLCBuYW1lOiAnxJDhuqV0IOG7nyDEkcO0IHRo4buLIChRSCAyMDI1LTIwMzApJyB9LFxuICAgICAgICAgIGdlb21ldHJ5OiB7XG4gICAgICAgICAgICB0eXBlOiAnUG9seWdvbicsXG4gICAgICAgICAgICBjb29yZGluYXRlczogW1xuICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgWzEwOC40MywgMTEuOTI1XSxcbiAgICAgICAgICAgICAgICBbMTA4LjQ5LCAxMS45MjVdLFxuICAgICAgICAgICAgICAgIFsxMDguNDksIDExLjk2NV0sXG4gICAgICAgICAgICAgICAgWzEwOC40MywgMTEuOTY1XSxcbiAgICAgICAgICAgICAgICBbMTA4LjQzLCAxMS45MjVdLFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICB9LFxuICB7XG4gICAgaWQ6ICdkZW1vLXBhcmNlbCcsXG4gICAgdGl0bGU6ICdU4buJbmggTMOibSDEkOG7k25nJyxcbiAgICB0eXBlOiAnZ2VvanNvbicsXG4gICAgdmlzaWJsZTogdHJ1ZSxcbiAgICBvcGFjaXR5OiAwLjQsXG4gICAgekluZGV4OiAyMCxcbiAgICBncm91cDogJ2NhZGFzdHJlJyxcbiAgICBncm91cExhYmVsOiAnQuG6o24gxJHhu5MgxJHhu4thIGNow61uaCcsXG4gICAgZ3JvdXBTZWxlY3Rpb246ICdtdWx0aScsXG4gICAgYmFzZW1hcDogZmFsc2UsXG4gICAgcXVlcnlhYmxlOiB0cnVlLFxuICAgIGRhdGFQcm9qZWN0aW9uOiAnRVBTRzo0MzI2JyxcbiAgICBmZWF0dXJlUHJvamVjdGlvbjogJ0VQU0c6Mzg1NycsXG4gICAgZGF0YToge1xuICAgICAgdHlwZTogJ0ZlYXR1cmVDb2xsZWN0aW9uJyxcbiAgICAgIGZlYXR1cmVzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICB0eXBlOiAnRmVhdHVyZScsXG4gICAgICAgICAgcHJvcGVydGllczogeyBwYXJjZWw6ICcxMicsIHNoZWV0OiAnNDUnIH0sXG4gICAgICAgICAgZ2VvbWV0cnk6IHtcbiAgICAgICAgICAgIHR5cGU6ICdQb2x5Z29uJyxcbiAgICAgICAgICAgIGNvb3JkaW5hdGVzOiBbXG4gICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICBbMTA4LjQ1LCAxMS45NF0sXG4gICAgICAgICAgICAgICAgWzEwOC40NjUsIDExLjk0XSxcbiAgICAgICAgICAgICAgICBbMTA4LjQ2NSwgMTEuOTUyXSxcbiAgICAgICAgICAgICAgICBbMTA4LjQ1LCAxMS45NTJdLFxuICAgICAgICAgICAgICAgIFsxMDguNDUsIDExLjk0XSxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgfSxcbiAge1xuICAgIGlkOiAnZGVtby1jdXJyZW50LTIwMjAnLFxuICAgIHRpdGxlOiAnUUhTREQgdOG7iW5oIEzDom0gxJDhu5NuZyAyMDIwLTIwMjUnLFxuICAgIHR5cGU6ICdnZW9qc29uJyxcbiAgICB2aXNpYmxlOiB0cnVlLFxuICAgIG9wYWNpdHk6IDAuNCxcbiAgICB6SW5kZXg6IDEyLFxuICAgIGdyb3VwOiAnY3VycmVudCcsXG4gICAgZ3JvdXBMYWJlbDogJ0LhuqNuIMSR4buTIGhp4buHbiB0cuG6oW5nJyxcbiAgICBncm91cFNlbGVjdGlvbjogJ3NpbmdsZScsXG4gICAgYmFzZW1hcDogZmFsc2UsXG4gICAgZGF0YVByb2plY3Rpb246ICdFUFNHOjQzMjYnLFxuICAgIGZlYXR1cmVQcm9qZWN0aW9uOiAnRVBTRzozODU3JyxcbiAgICBkYXRhOiB7XG4gICAgICB0eXBlOiAnRmVhdHVyZUNvbGxlY3Rpb24nLFxuICAgICAgZmVhdHVyZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6ICdGZWF0dXJlJyxcbiAgICAgICAgICBwcm9wZXJ0aWVzOiB7IGNvZGU6ICdPTlQnLCBuYW1lOiAnxJDhuqV0IOG7nyB04bqhaSBuw7RuZyB0aMO0biAoSFQgMjAyMC0yMDI1KScgfSxcbiAgICAgICAgICBnZW9tZXRyeToge1xuICAgICAgICAgICAgdHlwZTogJ1BvbHlnb24nLFxuICAgICAgICAgICAgY29vcmRpbmF0ZXM6IFtcbiAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgIFsxMDguNDQsIDExLjkyXSxcbiAgICAgICAgICAgICAgICBbMTA4LjUsIDExLjkyXSxcbiAgICAgICAgICAgICAgICBbMTA4LjUsIDExLjk2XSxcbiAgICAgICAgICAgICAgICBbMTA4LjQ0LCAxMS45Nl0sXG4gICAgICAgICAgICAgICAgWzEwOC40NCwgMTEuOTJdLFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICB9LFxuICB7XG4gICAgaWQ6ICdkZW1vLWN1cnJlbnQtMjAyNScsXG4gICAgdGl0bGU6ICdRSFNERCB04buJbmggTMOibSDEkOG7k25nIDIwMjUtMjAzMCcsXG4gICAgdHlwZTogJ2dlb2pzb24nLFxuICAgIHZpc2libGU6IGZhbHNlLFxuICAgIG9wYWNpdHk6IDAuNCxcbiAgICB6SW5kZXg6IDEzLFxuICAgIGdyb3VwOiAnY3VycmVudCcsXG4gICAgZ3JvdXBMYWJlbDogJ0LhuqNuIMSR4buTIGhp4buHbiB0cuG6oW5nJyxcbiAgICBncm91cFNlbGVjdGlvbjogJ3NpbmdsZScsXG4gICAgYmFzZW1hcDogZmFsc2UsXG4gICAgZGF0YVByb2plY3Rpb246ICdFUFNHOjQzMjYnLFxuICAgIGZlYXR1cmVQcm9qZWN0aW9uOiAnRVBTRzozODU3JyxcbiAgICBkYXRhOiB7XG4gICAgICB0eXBlOiAnRmVhdHVyZUNvbGxlY3Rpb24nLFxuICAgICAgZmVhdHVyZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6ICdGZWF0dXJlJyxcbiAgICAgICAgICBwcm9wZXJ0aWVzOiB7IGNvZGU6ICdPTlQnLCBuYW1lOiAnxJDhuqV0IOG7nyB04bqhaSBuw7RuZyB0aMO0biAoSFQgMjAyNS0yMDMwKScgfSxcbiAgICAgICAgICBnZW9tZXRyeToge1xuICAgICAgICAgICAgdHlwZTogJ1BvbHlnb24nLFxuICAgICAgICAgICAgY29vcmRpbmF0ZXM6IFtcbiAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgIFsxMDguNDM1LCAxMS45MTVdLFxuICAgICAgICAgICAgICAgIFsxMDguNDk1LCAxMS45MTVdLFxuICAgICAgICAgICAgICAgIFsxMDguNDk1LCAxMS45NTVdLFxuICAgICAgICAgICAgICAgIFsxMDguNDM1LCAxMS45NTVdLFxuICAgICAgICAgICAgICAgIFsxMDguNDM1LCAxMS45MTVdLFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICB9LFxuXTtcblxuLyoqXG4gKiBTYW1wbGUgbGVnZW5kIOKAlCBwbGFjZWhvbGRlciBjb2xvcnMgdW50aWwgVGjDtG5nIHTGsCAwOS8yMDI0IHBhbGV0dGUgaXMgY29tcGxldGUgKFExM+KAk1ExNSkuXG4gKiBEbyBub3QgdHJlYXQgYXMgbGVnYWxseSBhdXRob3JpdGF0aXZlLlxuICovXG5leHBvcnQgY29uc3QgR0VPX01BUF9ERU1PX0xFR0VORF9JVEVNUzogR2VvTWFwTGVnZW5kSXRlbVtdID0gW1xuICB7IGNvZGU6ICdPRFQnLCBsYWJlbDogJ8SQ4bqldCDhu58gxJHDtCB0aOG7iycsIGNvbG9yOiAnI0U4N0IzNScgfSxcbiAgeyBjb2RlOiAnT05UJywgbGFiZWw6ICfEkOG6pXQg4bufIHThuqFpIG7DtG5nIHRow7RuJywgY29sb3I6ICcjRjJDMTRFJyB9LFxuICB7IGNvZGU6ICdTS0MnLCBsYWJlbDogJ8SQ4bqldCBjxqEgc+G7nyBz4bqjbiB4deG6pXQga2luaCBkb2FuaCcsIGNvbG9yOiAnI0M0NUMyNicgfSxcbiAgeyBjb2RlOiAnREdUJywgbGFiZWw6ICfEkOG6pXQgZ2lhbyB0aMO0bmcnLCBjb2xvcjogJyM2QjcyODAnIH0sXG4gIHsgY29kZTogJ1RNRCcsIGxhYmVsOiAnxJDhuqV0IHRoxrDGoW5nIG3huqFpIGThu4tjaCB24bulJywgY29sb3I6ICcjREIyNzc3JyB9LFxuICB7IGNvZGU6ICdDTE4nLCBsYWJlbDogJ8SQ4bqldCB0cuG7k25nIGPDonkgbMOidSBuxINtJywgY29sb3I6ICcjMTZBMzRBJyB9LFxuXTtcblxuZXhwb3J0IGNvbnN0IEdFT19NQVBfREVGQVVMVF9IRUxQX1NFQ1RJT05TOiBBcnJheTx7IHRpdGxlOiBzdHJpbmc7IGJvZHk6IHN0cmluZyB9PiA9IFtcbiAge1xuICAgIHRpdGxlOiAnRGkgY2h1eeG7g24gYuG6o24gxJHhu5MnLFxuICAgIGJvZHk6ICdLw6lvIGNodeG7mXQgxJHhu4MgcGFuLiBDdeG7mW4gY2h14buZdCBob+G6t2MgZMO5bmcgbsO6dCArLy0gxJHhu4MgdGh1IHBow7NuZy4gRMO5bmcg4oCcUGjDs25nIHRvIHRoZW8gdsO5bmfigJ0gLyDigJxUaHUgbmjhu48gdGhlbyB2w7luZ+KAnSDEkeG7gyBraG9hbmggdsO5bmcgdHLDqm4gYuG6o24gxJHhu5MuIOKAnFhlbSB0b8OgbiB04buJbmjigJ0gY8SDbiBraHVuZyBuaMOsbiB24buBIHBo4bqhbSB2aSB04buJbmguJyxcbiAgfSxcbiAge1xuICAgIHRpdGxlOiAnVHJhIGPhu6l1IHRo4butYSDEkeG6pXQnLFxuICAgIGJvZHk6ICdN4bufIOKAnFRyYSBj4bupdeKAnSDEkeG7gyB0w6xtIHRoZW8gY2jhu6cgc+G7rSBk4bulbmcsIEdDTiwgdOG7jWEgxJHhu5ksIMSR4buLYSBjaOG7iSBob+G6t2Mgc+G7kSB04budL3Ro4butYS4gS+G6v3QgcXXhuqMgaGnhu4NuIHRo4buLIGRhbmggc8OhY2ggdsOgIGhpZ2hsaWdodCB0csOqbiBi4bqjbiDEkeG7ky4nLFxuICB9LFxuICB7XG4gICAgdGl0bGU6ICdM4bubcCBi4bqjbiDEkeG7kycsXG4gICAgYm9keTogJ03hu58g4oCcTOG7m3AgYuG6o24gxJHhu5PigJ0gxJHhu4MgYuG6rXQvdOG6r3QgcXV5IGhv4bqhY2ggU0TEkCwgaGnhu4duIHRy4bqhbmcgU0TEkCwgdGjhu61hIMSR4bqldC4gQ2jhu41uIHbhu4cgdGluaCDhu58gYuG7mSBjaHV54buDbiBs4bubcCBu4buBbi4gQuG6rXQgbmhp4buBdSBs4bubcCBjw7luZyBsw7pjIMSR4buDIGNo4buTbmcgeOG6v3Agc28gc8OhbmguJyxcbiAgfSxcbiAge1xuICAgIHRpdGxlOiAnxJDGoW4gduG7iyBow6BuaCBjaMOtbmgnLFxuICAgIGJvZHk6ICdN4bufIGLhu5kgbOG7jWMgxJBWSEMgY+G6pXAgeMOjIMSR4buDIHRodSBo4bq5cCBraHVuZyBuaMOsbiB0aGVvIHjDoyDEkcOjIGNo4buNbi4g4oCcWGVtIHRvw6BuIHThu4luaOKAnSDEkcawYSBi4bqjbiDEkeG7kyB24buBIHRvw6BuIGPhuqNuaCB04buJbmguJyxcbiAgfSxcbiAge1xuICAgIHRpdGxlOiAnxJBvIMSR4bqhYyAmIHRp4buHbiDDrWNoJyxcbiAgICBib2R5OiAnxJBvIGtob+G6o25nIGPDoWNoIC8gZGnhu4duIHTDrWNoIGLhurFuZyBjw6FjaCBuaOG6pXAgY8OhYyDEkWnhu4NtIHRyw6puIGLhuqNuIMSR4buTIChuaMOheSDEkcO6cCDEkeG7gyBr4bq/dCB0aMO6YykuIETDuW5nIOKAnMSQ4buZIHRyb25nIHN14buRdOKAnSDEkeG7gyBuaMOsbiB4dXnDqm4gbOG7m3AuIOKAnENo4bulcCDhuqNuaOKAnSB04bqjaSBQTkcga2h1bmcgbmjDrG4gaGnhu4duIHThuqFpLicsXG4gIH0sXG4gIHtcbiAgICB0aXRsZTogJ1bhu4sgdHLDrSBj4bunYSB0w7RpJyxcbiAgICBib2R5OiAnQ2hvIHBow6lwIHRyw6xuaCBkdXnhu4d0IGNoaWEgc+G6uyB24buLIHRyw60gxJHhu4MgY8SDbiBnaeG7r2EgYuG6o24gxJHhu5MgdOG6oWkgduG7iyB0csOtIHRoaeG6v3QgYuG7iyBj4bunYSBi4bqhbi4nLFxuICB9LFxuXTtcblxuLyoqIERlbW8gYWRtaW4gdHJlZSAoeMOjKSBmb3IgU3Rvcnlib29rIOKAlCByZXBsYWNlIHZpYSBBUEkgaW4gcHJvZHVjdGlvbi4gKi9cbmV4cG9ydCBjb25zdCBHRU9fTUFQX0RFTU9fQURNSU5fTk9ERVM6IEdlb1RyZWVOb2RlW10gPSBbXG4gIHtcbiAgICBrZXk6ICdsYW0tZG9uZycsXG4gICAgdGl0bGU6ICdU4buJbmggTMOibSDEkOG7k25nJyxcbiAgICBleHBhbmRlZDogdHJ1ZSxcbiAgICBjaGlsZHJlbjogW1xuICAgICAgeyBrZXk6ICd4YS0xJywgdGl0bGU6ICdYw6MgxJDhuqEgVOG6u2gnLCBpc0xlYWY6IHRydWUgfSxcbiAgICAgIHsga2V5OiAneGEtMicsIHRpdGxlOiAnWMOjIMSQ4bqhIEh1b2FpJywgaXNMZWFmOiB0cnVlIH0sXG4gICAgICB7IGtleTogJ3hhLTMnLCB0aXRsZTogJ1jDoyDEkOG6oSBLaG8nLCBpc0xlYWY6IHRydWUgfSxcbiAgICAgIHsga2V5OiAneGEtNCcsIHRpdGxlOiAnUGjGsOG7nW5nIDEgKMSQw6AgTOG6oXQpJywgaXNMZWFmOiB0cnVlIH0sXG4gICAgICB7IGtleTogJ3hhLTUnLCB0aXRsZTogJ1BoxrDhu51uZyAyICjEkMOgIEzhuqF0KScsIGlzTGVhZjogdHJ1ZSB9LFxuICAgIF0sXG4gIH0sXG5dO1xuXG4vKiogRGVtbyBwYXJjZWwgZGV0YWlsIGZvciBTdG9yeWJvb2sgc2VhcmNoL3BvcHVwIChUQ1FILjEyKS4gKi9cbmV4cG9ydCBjb25zdCBHRU9fTUFQX0RFTU9fUEFSQ0VMX0RFVEFJTDogR2VvTWFwUGFyY2VsRGV0YWlsID0ge1xuICBwYXJjZWxDb2RlOiAnMDEwMDAwMTIzNCcsXG4gIHBhcmNlbE51bWJlcjogJzIwMjMnLFxuICBzaGVldE51bWJlcjogJzE1MycsXG4gIHdhcmQ6ICdQaMaw4budbmcgMScsXG4gIHByb3ZpbmNlOiAnTMOibSDEkOG7k25nJyxcbiAgYXJlYTogJzI1MDAgbcKyJyxcbiAgbGVnYWxBcmVhOiAnMjUwMCBtwrInLFxuICBsYW5kVXNlOiAnTFVDIC0gxJDhuqV0IGNodXnDqm4gdHLhu5NuZyBsw7phIG7GsOG7m2MnLFxuICBhZGRyZXNzOiAnU+G7kSAxMCwgxJHGsOG7nW5nIFRy4bqnbiBQaMO6JyxcbiAgdXNlRm9ybTogJ1Phu60gZOG7pW5nIHJpw6puZycsXG4gIHJlZ2lzdHJhdGlvblN0YXR1czogJ8SQw6MgY+G6pXAgZ2nhuqV5IGNo4bupbmcgbmjhuq1uJyxcbiAgbGFuZFByaWNlOiAnxJBhbmcgY+G6rXAgbmjhuq10JyxcbiAgc2hhcGVJbmZvOiAnSMOsbmggY2jhu68gbmjhuq10JyxcbiAgcGxhbm5pbmdJbmZvOiAnTuG6sW0gdHJvbmcgcXV5IGhv4bqhY2ggxJHhuqV0IOG7nyDEkcO0IHRo4buLIGdpYWkgxJFv4bqhbiAyMDIx4oCTMjAzMCcsXG59O1xuXG4vKipcbiAqIFBsYWNlaG9sZGVyIGVuZHBvaW50cyDigJQgcmVwbGFjZSB2aWEgZW52aXJvbm1lbnQgLyBBUEkuXG4gKiBEbyBub3QgaGFyZC1jb2RlIHByb2R1Y3Rpb24gZG9tYWlucyBoZXJlLlxuICovXG5leHBvcnQgY29uc3QgR0VPX01BUF9FTlZfUExBQ0VIT0xERVJTID0ge1xuICB3bXNVcmw6ICdodHRwczovL3tNQVBfQVBJX0hPU1R9L2dlb3NlcnZlci93bXMnLFxuICB4eXpTYXRlbGxpdGVVcmw6XG4gICAgJ2h0dHBzOi8ve1RJTEVfSE9TVH0vc2F0ZWxsaXRlL3t6fS97eH0ve3l9LnBuZycsXG4gIGdlb2pzb25QYXJjZWxVcmw6ICdodHRwczovL3tNQVBfQVBJX0hPU1R9L2FwaS92MS9wYXJjZWxzLmdlb2pzb24nLFxufSBhcyBjb25zdDtcblxuLyoqXG4gKiBFeGFtcGxlIG11bHRpLWxheWVyIHN0YWNrIGZvciBsYW5kLXVzZSBwbGFubmluZyBkZW1vcyAvIFN0b3J5Ym9vay5cbiAqIFVSTHMgYXJlIHBsYWNlaG9sZGVyczsgV01TL1hZWiB0aWxlcyB3aWxsIGZhaWwgdW50aWwgZW52IGlzIHdpcmVkLlxuICovXG5leHBvcnQgY29uc3QgR0VPX01BUF9ERUZBVUxUX1BMQU5OSU5HX0xBWUVSUzogR2VvTWFwTGF5ZXJDb25maWdbXSA9IFtcbiAge1xuICAgIGlkOiAnb3NtJyxcbiAgICB0aXRsZTogJ0LhuqNuIMSR4buTIMSRxrDhu51uZyBwaOG7kScsXG4gICAgdHlwZTogJ29zbScsXG4gICAgdmlzaWJsZTogdHJ1ZSxcbiAgICBvcGFjaXR5OiAxLFxuICAgIHpJbmRleDogMCxcbiAgICBiYXNlbWFwOiB0cnVlLFxuICAgIGdyb3VwOiAnYmFzZS1tYXAnLFxuICB9LFxuICB7XG4gICAgaWQ6ICdzYXRlbGxpdGUnLFxuICAgIHRpdGxlOiAn4bqibmggduG7hyB0aW5oJyxcbiAgICB0eXBlOiAneHl6JyxcbiAgICB1cmw6IEdFT19NQVBfRU5WX1BMQUNFSE9MREVSUy54eXpTYXRlbGxpdGVVcmwsXG4gICAgdmlzaWJsZTogZmFsc2UsXG4gICAgb3BhY2l0eTogMSxcbiAgICB6SW5kZXg6IDAsXG4gICAgYmFzZW1hcDogdHJ1ZSxcbiAgICBncm91cDogJ2Jhc2UtbWFwJyxcbiAgICBhdHRyaWJ1dGlvbnM6ICdTYXRlbGxpdGUgKHBsYWNlaG9sZGVyKScsXG4gIH0sXG4gIHtcbiAgICBpZDogJ2xhbmQtdXNlLXBsYW5uaW5nJyxcbiAgICB0aXRsZTogJ1F1eSBob+G6oWNoIHPhu60gZOG7pW5nIMSR4bqldCcsXG4gICAgdHlwZTogJ3dtcycsXG4gICAgdXJsOiBHRU9fTUFQX0VOVl9QTEFDRUhPTERFUlMud21zVXJsLFxuICAgIGxheWVyTmFtZTogJ3dvcmtzcGFjZTpsYW5kX3VzZV9wbGFubmluZycsXG4gICAgcGFyYW1zOiB7XG4gICAgICBMQVlFUlM6ICd3b3Jrc3BhY2U6bGFuZF91c2VfcGxhbm5pbmcnLFxuICAgICAgVElMRUQ6IHRydWUsXG4gICAgfSxcbiAgICB2aXNpYmxlOiB0cnVlLFxuICAgIG9wYWNpdHk6IDAuNyxcbiAgICB6SW5kZXg6IDEwLFxuICAgIHByb2plY3Rpb246ICdFUFNHOjM4NTcnLFxuICAgIHF1ZXJ5YWJsZTogdHJ1ZSxcbiAgICBncm91cDogJ3BsYW5uaW5nJyxcbiAgICBzZXJ2ZXJUeXBlOiAnZ2Vvc2VydmVyJyxcbiAgfSxcbiAge1xuICAgIGlkOiAncGFyY2VsLWJvdW5kYXJ5JyxcbiAgICB0aXRsZTogJ1JhbmggZ2nhu5tpIHRo4butYSDEkeG6pXQnLFxuICAgIHR5cGU6ICd3bXMnLFxuICAgIHVybDogR0VPX01BUF9FTlZfUExBQ0VIT0xERVJTLndtc1VybCxcbiAgICBsYXllck5hbWU6ICd3b3Jrc3BhY2U6cGFyY2VsX2JvdW5kYXJ5JyxcbiAgICBwYXJhbXM6IHtcbiAgICAgIExBWUVSUzogJ3dvcmtzcGFjZTpwYXJjZWxfYm91bmRhcnknLFxuICAgICAgVElMRUQ6IHRydWUsXG4gICAgfSxcbiAgICB2aXNpYmxlOiB0cnVlLFxuICAgIG9wYWNpdHk6IDAuOSxcbiAgICB6SW5kZXg6IDIwLFxuICAgIHF1ZXJ5YWJsZTogdHJ1ZSxcbiAgICBncm91cDogJ3BsYW5uaW5nJyxcbiAgICBzZXJ2ZXJUeXBlOiAnZ2Vvc2VydmVyJyxcbiAgfSxcbiAge1xuICAgIGlkOiBHRU9fTUFQX1NFTEVDVElPTl9MQVlFUl9JRCxcbiAgICB0aXRsZTogJ8SQ4buRaSB0xrDhu6NuZyDEkWFuZyBjaOG7jW4nLFxuICAgIHR5cGU6ICd2ZWN0b3InLFxuICAgIHZpc2libGU6IHRydWUsXG4gICAgb3BhY2l0eTogMSxcbiAgICB6SW5kZXg6IDEwMCxcbiAgICBncm91cDogJ3N5c3RlbScsXG4gICAgZmVhdHVyZXM6IFtdLFxuICB9LFxuICB7XG4gICAgaWQ6IEdFT19NQVBfTUVBU1VSRV9MQVlFUl9JRCxcbiAgICB0aXRsZTogJ0vhur90IHF14bqjIMSRbycsXG4gICAgdHlwZTogJ3ZlY3RvcicsXG4gICAgdmlzaWJsZTogdHJ1ZSxcbiAgICBvcGFjaXR5OiAxLFxuICAgIHpJbmRleDogMTEwLFxuICAgIGdyb3VwOiAnc3lzdGVtJyxcbiAgICBmZWF0dXJlczogW10sXG4gIH0sXG5dO1xuIl19
548
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvLW1hcC5jb25zdGFudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9nZW8tdWkvc3JjL2xpYi9maWdtYS9nZW8tbWFwL2dlby1tYXAuY29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVNBLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRWhFLHNFQUFzRTtBQUN0RSxNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBRyxDQUFDLFdBQVcsRUFBRSxXQUFXLENBQVUsQ0FBQztBQUUvRTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBOEIsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDckYsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsRUFBRSxDQUFDO0FBQ3ZDLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLENBQUMsQ0FBQztBQUMxQyxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxFQUFFLENBQUM7QUFDM0MsTUFBTSxDQUFDLE1BQU0sK0JBQStCLEdBQUcsV0FBVyxDQUFDO0FBQzNELE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLE9BQU8sQ0FBQztBQUU5QyxtRUFBbUU7QUFDbkUsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsZUFBZSxDQUFDO0FBRXhELDJFQUEyRTtBQUMzRSxNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBRyxpQkFBaUIsQ0FBQztBQUM1RCxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxlQUFlLENBQUM7QUFDeEQsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUcsaUJBQWlCLENBQUM7QUFFNUQ7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sb0NBQW9DLEdBSzdDLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFFbEMseUVBQXlFO0FBQ3pF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QVE7UUFDZixRQUFRLEVBQUUsRUFBRTtLQUNiO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtcbiAgR2VvTWFwQmFzZW1hcE9wdGlvbixcbiAgR2VvTWFwTGF5ZXJDb25maWcsXG4gIEdlb01hcExlZ2VuZEl0ZW0sXG4gIEdlb01hcFBhcmNlbERldGFpbCxcbiAgR2VvTWFwVG9vbGJhckFjdGlvbixcbiAgR2VvTWFwWHl6TGF5ZXJDb25maWcsXG59IGZyb20gJy4vZ2VvLW1hcC50eXBlcyc7XG5pbXBvcnQgdHlwZSB7IEdlb1RyZWVOb2RlIH0gZnJvbSAnLi4vZ2VvLXRyZWUvZ2VvLXRyZWUudHlwZXMnO1xuaW1wb3J0IHsgR0VPX01BUF9UT09MQkFSX0lDT05TIH0gZnJvbSAnLi9nZW8tbWFwLXRvb2xiYXIuaWNvbnMnO1xuXG4vKiogQnVpbHQtaW4gQ1JTIGNvZGVzIGF2YWlsYWJsZSB3aXRob3V0IGN1c3RvbSBwcm9qNCByZWdpc3RyYXRpb24uICovXG5leHBvcnQgY29uc3QgR0VPX01BUF9CVUlMVElOX1BST0pFQ1RJT05TID0gWydFUFNHOjQzMjYnLCAnRVBTRzozODU3J10gYXMgY29uc3Q7XG5cbi8qKlxuICogRGVmYXVsdCB2aWV3IOKAlCBXZWIgTWVyY2F0b3IgYXJvdW5kIMSQw6AgTOG6oXQgKEzDom0gxJDhu5NuZykuXG4gKiBDZW50ZXIgaXMgYWxyZWFkeSBpbiBFUFNHOjM4NTcgKGRvIG5vdCB0cmVhdCBhcyBsb24vbGF0KS5cbiAqL1xuZXhwb3J0IGNvbnN0IEdFT19NQVBfREVGQVVMVF9DRU5URVI6IHJlYWRvbmx5IFtudW1iZXIsIG51bWJlcl0gPSBbMTIwNTIwMDAsIDEzMzAwMDBdO1xuZXhwb3J0IGNvbnN0IEdFT19NQVBfREVGQVVMVF9aT09NID0gMTE7XG5leHBvcnQgY29uc3QgR0VPX01BUF9ERUZBVUxUX01JTl9aT09NID0gMjtcbmV4cG9ydCBjb25zdCBHRU9fTUFQX0RFRkFVTFRfTUFYX1pPT00gPSAyMDtcbmV4cG9ydCBjb25zdCBHRU9fTUFQX0RFRkFVTFRfVklFV19QUk9KRUNUSU9OID0gJ0VQU0c6Mzg1Nyc7XG5leHBvcnQgY29uc3QgR0VPX01BUF9ERUZBVUxUX0hFSUdIVCA9ICc0ODBweCc7XG5cbi8qKiBJbnRlcm5hbCBsYXllciBpZCByZXNlcnZlZCBmb3IgdGhlIGBiYXNlbWFwYCBpbnB1dCBzaG9ydGN1dC4gKi9cbmV4cG9ydCBjb25zdCBHRU9fTUFQX0JBU0VNQVBfTEFZRVJfSUQgPSAnX19nZW9fYmFzZW1hcCc7XG5cbi8qKiBJbnRlcm5hbCB2ZWN0b3IgbGF5ZXJzIHJlc2VydmVkIGZvciBzZWxlY3Rpb24gLyBtZWFzdXJlIC8gaGlnaGxpZ2h0LiAqL1xuZXhwb3J0IGNvbnN0IEdFT19NQVBfU0VMRUNUSU9OX0xBWUVSX0lEID0gJ19fZ2VvX3NlbGVjdGlvbic7XG5leHBvcnQgY29uc3QgR0VPX01BUF9NRUFTVVJFX0xBWUVSX0lEID0gJ19fZ2VvX21lYXN1cmUnO1xuZXhwb3J0IGNvbnN0IEdFT19NQVBfSElHSExJR0hUX0xBWUVSX0lEID0gJ19fZ2VvX2hpZ2hsaWdodCc7XG5cbi8qKlxuICogRGVmYXVsdCBwcm92aW5jZSBleHRlbnQgKEzDom0gxJDhu5NuZyBhcHByb3gsIEVQU0c6NDMyNikgZm9yIOKAnHhlbSB0b8OgbiB04buJbmjigJ0gKFRDUUguMTQgR0Q1KS5cbiAqIEhvc3QgYXBwcyBzaG91bGQgb3ZlcnJpZGUgd2l0aCBhdXRob3JpdGF0aXZlIGJvdW5kYXJ5IGV4dGVudCBmcm9tIEFQSS5cbiAqL1xuZXhwb3J0IGNvbnN0IEdFT19NQVBfREVGQVVMVF9QUk9WSU5DRV9FWFRFTlRfNDMyNjogcmVhZG9ubHkgW1xuICBudW1iZXIsXG4gIG51bWJlcixcbiAgbnVtYmVyLFxuICBudW1iZXIsXG5dID0gWzEwNy4yLCAxMS4xNSwgMTA4Ljc1LCAxMi4zNV07XG5cbi8qKiBPcHRpb25hbCB0cmFmZmljIC8gcm9hZHMgcmVmZXJlbmNlIG92ZXJsYXkgKG5vdCBhIHBsYW5uaW5nIGxheWVyKS4gKi9cbmV4cG9ydCBjb25zdCBHRU9fTUFQX1RSQUZGSUNfTEFZRVJfSUQgPSAnX19nZW9fdHJhZmZpYyc7XG5cbmV4cG9ydCBjb25zdCBHRU9fTUFQX0VTUklfSU1BR0VSWV9VUkwgPVxuICAnaHR0cHM6Ly9zZXJ2ZXIuYXJjZ2lzb25saW5lLmNvbS9BcmNHSVMvcmVzdC9zZXJ2aWNlcy9Xb3JsZF9JbWFnZXJ5L01hcFNlcnZlci90aWxlL3t6fS97eX0ve3h9JztcblxuZXhwb3J0IGNvbnN0IEdFT19NQVBfRVNSSV9TVFJFRVRTX1VSTCA9XG4gICdodHRwczovL3NlcnZlci5hcmNnaXNvbmxpbmUuY29tL0FyY0dJUy9yZXN0L3NlcnZpY2VzL1dvcmxkX1N0cmVldF9NYXAvTWFwU2VydmVyL3RpbGUve3p9L3t5fS97eH0nO1xuXG5leHBvcnQgY29uc3QgR0VPX01BUF9FU1JJX0xJR0hUX1VSTCA9XG4gICdodHRwczovL3NlcnZlci5hcmNnaXNvbmxpbmUuY29tL0FyY0dJUy9yZXN0L3NlcnZpY2VzL0NhbnZhcy9Xb3JsZF9MaWdodF9HcmF5X0Jhc2UvTWFwU2VydmVyL3RpbGUve3p9L3t5fS97eH0nO1xuXG5leHBvcnQgY29uc3QgR0VPX01BUF9FU1JJX0RBUktfVVJMID1cbiAgJ2h0dHBzOi8vc2VydmVyLmFyY2dpc29ubGluZS5jb20vQXJjR0lTL3Jlc3Qvc2VydmljZXMvQ2FudmFzL1dvcmxkX0RhcmtfR3JheV9CYXNlL01hcFNlcnZlci90aWxlL3t6fS97eX0ve3h9JztcblxuZXhwb3J0IGNvbnN0IEdFT19NQVBfRVNSSV9UT1BPX1VSTCA9XG4gICdodHRwczovL3NlcnZlci5hcmNnaXNvbmxpbmUuY29tL0FyY0dJUy9yZXN0L3NlcnZpY2VzL1dvcmxkX1RvcG9fTWFwL01hcFNlcnZlci90aWxlL3t6fS97eX0ve3h9JztcblxuZXhwb3J0IGNvbnN0IEdFT19NQVBfRVNSSV9UUkFOU1BPUlRfVVJMID1cbiAgJ2h0dHBzOi8vc2VydmVyLmFyY2dpc29ubGluZS5jb20vQXJjR0lTL3Jlc3Qvc2VydmljZXMvUmVmZXJlbmNlL1dvcmxkX1RyYW5zcG9ydGF0aW9uL01hcFNlcnZlci90aWxlL3t6fS97eX0ve3h9JztcblxuLyoqXG4gKiBEZWZhdWx0IGJhc2VtYXAgcGlja2VyIG9wdGlvbnMgKHZlcnRpY2FsIGRyb3Bkb3duIGRlc2lnbikuXG4gKiBPcmRlciBtYXRjaGVzIGRlc2lnbjogduG7hyB0aW5oIOKGkiBzw6FuZyDihpIgM0Qg4oaSIMSRxrDhu51uZyBwaOG7kSDihpIgxJHhu4thIGjDrG5oLlxuICovXG5leHBvcnQgY29uc3QgR0VPX01BUF9ERUZBVUxUX0JBU0VNQVBfT1BUSU9OUzogR2VvTWFwQmFzZW1hcE9wdGlvbltdID0gW1xuICB7XG4gICAgaWQ6ICdzYXRlbGxpdGUnLFxuICAgIGxhYmVsOiAnTuG7gW4gduG7hyB0aW5oJyxcbiAgICBiYXNlbWFwOiB7XG4gICAgICB0eXBlOiAneHl6JyxcbiAgICAgIHVybDogR0VPX01BUF9FU1JJX0lNQUdFUllfVVJMLFxuICAgICAgYXR0cmlidXRpb25zOiAnRXNyaSwgTWF4YXIsIEVhcnRoc3RhciBHZW9ncmFwaGljcycsXG4gICAgICB0aXRsZTogJ+G6om5oIHbhu4cgdGluaCcsXG4gICAgfSxcbiAgICBwcmV2aWV3VXJsOlxuICAgICAgJ2h0dHBzOi8vc2VydmVyLmFyY2dpc29ubGluZS5jb20vQXJjR0lTL3Jlc3Qvc2VydmljZXMvV29ybGRfSW1hZ2VyeS9NYXBTZXJ2ZXIvdGlsZS82LzMwLzUwJyxcbiAgfSxcbiAge1xuICAgIGlkOiAnbGlnaHQnLFxuICAgIGxhYmVsOiAnQuG6o24gxJHhu5Mgc8OhbmcnLFxuICAgIGJhc2VtYXA6IHtcbiAgICAgIHR5cGU6ICd4eXonLFxuICAgICAgdXJsOiBHRU9fTUFQX0VTUklfTElHSFRfVVJMLFxuICAgICAgYXR0cmlidXRpb25zOiAnRXNyaScsXG4gICAgICB0aXRsZTogJ0LhuqNuIMSR4buTIHPDoW5nJyxcbiAgICB9LFxuICAgIHByZXZpZXdVcmw6XG4gICAgICAnaHR0cHM6Ly9zZXJ2ZXIuYXJjZ2lzb25saW5lLmNvbS9BcmNHSVMvcmVzdC9zZXJ2aWNlcy9DYW52YXMvV29ybGRfTGlnaHRfR3JheV9CYXNlL01hcFNlcnZlci90aWxlLzYvMzAvNTAnLFxuICB9LFxuICB7XG4gICAgaWQ6ICdkYXJrJyxcbiAgICBsYWJlbDogJ0LhuqNuIMSR4buTIDNEJyxcbiAgICBiYXNlbWFwOiB7XG4gICAgICB0eXBlOiAneHl6JyxcbiAgICAgIHVybDogR0VPX01BUF9FU1JJX0RBUktfVVJMLFxuICAgICAgYXR0cmlidXRpb25zOiAnRXNyaScsXG4gICAgICB0aXRsZTogJ0LhuqNuIMSR4buTIHThu5FpJyxcbiAgICB9LFxuICAgIHByZXZpZXdVcmw6XG4gICAgICAnaHR0cHM6Ly9zZXJ2ZXIuYXJjZ2lzb25saW5lLmNvbS9BcmNHSVMvcmVzdC9zZXJ2aWNlcy9DYW52YXMvV29ybGRfRGFya19HcmF5X0Jhc2UvTWFwU2VydmVyL3RpbGUvNi8zMC81MCcsXG4gIH0sXG4gIHtcbiAgICBpZDogJ29zbScsXG4gICAgbGFiZWw6ICfEkMaw4budbmcgcGjhu5EnLFxuICAgIGJhc2VtYXA6ICdvc20nLFxuICAgIHByZXZpZXdVcmw6ICdodHRwczovL3RpbGUub3BlbnN0cmVldG1hcC5vcmcvNi81MC8zMC5wbmcnLFxuICB9LFxuICB7XG4gICAgaWQ6ICd0ZXJyYWluJyxcbiAgICBsYWJlbDogJ07hu4FuIMSR4buLYSBow6xuaCcsXG4gICAgYmFzZW1hcDoge1xuICAgICAgdHlwZTogJ3h5eicsXG4gICAgICB1cmw6IEdFT19NQVBfRVNSSV9UT1BPX1VSTCxcbiAgICAgIGF0dHJpYnV0aW9uczogJ0VzcmknLFxuICAgICAgdGl0bGU6ICfEkOG7i2EgaMOsbmgnLFxuICAgIH0sXG4gICAgcHJldmlld1VybDpcbiAgICAgICdodHRwczovL3NlcnZlci5hcmNnaXNvbmxpbmUuY29tL0FyY0dJUy9yZXN0L3NlcnZpY2VzL1dvcmxkX1RvcG9fTWFwL01hcFNlcnZlci90aWxlLzYvMzAvNTAnLFxuICB9LFxuXTtcblxuLyoqIFRyYW5zcG9ydGF0aW9uIHJlZmVyZW5jZSBvdmVybGF5IOKAlCB0b2dnbGUgaW5kZXBlbmRlbnRseSBvZiBiYXNlbWFwLiAqL1xuZXhwb3J0IGNvbnN0IEdFT19NQVBfVFJBRkZJQ19PVkVSTEFZOiBHZW9NYXBYeXpMYXllckNvbmZpZyA9IHtcbiAgaWQ6IEdFT19NQVBfVFJBRkZJQ19MQVlFUl9JRCxcbiAgdGl0bGU6ICdM4bubcCBnaWFvIHRow7RuZycsXG4gIHR5cGU6ICd4eXonLFxuICB1cmw6IEdFT19NQVBfRVNSSV9UUkFOU1BPUlRfVVJMLFxuICBhdHRyaWJ1dGlvbnM6ICdFc3JpJyxcbiAgdmlzaWJsZTogZmFsc2UsXG4gIG9wYWNpdHk6IDAuOSxcbiAgekluZGV4OiA1LFxuICBiYXNlbWFwOiBmYWxzZSxcbiAgZ3JvdXA6ICdiYXNlLW1hcCcsXG59O1xuXG4vKiogQnVpbHQtaW4gdG9vbGJhciBhY3Rpb25zIOKAlCBGaWdtYSBtYXAgY2hyb21lIChEYXQgRGFpIExhbSBEb25nIDIwMjYpLiAqL1xuZXhwb3J0IGNvbnN0IEdFT19NQVBfREVGQVVMVF9UT09MQkFSX0FDVElPTlM6IEdlb01hcFRvb2xiYXJBY3Rpb25bXSA9IFtcbiAge1xuICAgIGlkOiAnaG9tZScsXG4gICAgbGFiZWw6ICdUcmFuZyBjaOG7pycsXG4gICAgaWNvbjogJ2hvbWUnLFxuICAgIGljb25TcmM6IEdFT19NQVBfVE9PTEJBUl9JQ09OUy5ob21lLFxuICAgIGljb25Pbmx5OiB0cnVlLFxuICAgIHRvb2x0aXA6ICdUcmFuZyBjaOG7pycsXG4gICAgdmFyaWFudDogJ3ByaW1hcnknLFxuICB9LFxuICB7XG4gICAgaWQ6ICdzZWFyY2gnLFxuICAgIGxhYmVsOiAnVHJhIGPhu6l1JyxcbiAgICBpY29uOiAnc2VhcmNoJyxcbiAgICBpY29uU3JjOiBHRU9fTUFQX1RPT0xCQVJfSUNPTlMuc2VhcmNoLFxuICAgIGljb25Pbmx5OiB0cnVlLFxuICAgIHRvb2x0aXA6ICdUcmEgY+G7qXUgdGjhu61hIMSR4bqldCcsXG4gIH0sXG4gIHtcbiAgICBpZDogJ3BhbicsXG4gICAgbGFiZWw6ICdEaSBjaHV54buDbicsXG4gICAgaWNvbjogJ2RyYWcnLFxuICAgIGljb25TcmM6IEdFT19NQVBfVE9PTEJBUl9JQ09OUy5wYW4sXG4gICAgaWNvbk9ubHk6IHRydWUsXG4gICAgdG9vbHRpcDogJ0RpIGNodXnhu4NuIGLhuqNuIMSR4buTJyxcbiAgfSxcbiAge1xuICAgIGlkOiAnem9vbS1pbicsXG4gICAgbGFiZWw6ICdQaMOzbmcgdG8nLFxuICAgIGljb246ICdwbHVzJyxcbiAgICBpY29uU3JjOiBHRU9fTUFQX1RPT0xCQVJfSUNPTlMuem9vbUluLFxuICAgIGljb25Pbmx5OiB0cnVlLFxuICAgIHRvb2x0aXA6ICdQaMOzbmcgdG8nLFxuICB9LFxuICB7XG4gICAgaWQ6ICd6b29tLW91dCcsXG4gICAgbGFiZWw6ICdUaHUgbmjhu48nLFxuICAgIGljb246ICdtaW51cycsXG4gICAgaWNvblNyYzogR0VPX01BUF9UT09MQkFSX0lDT05TLnpvb21PdXQsXG4gICAgaWNvbk9ubHk6IHRydWUsXG4gICAgdG9vbHRpcDogJ1RodSBuaOG7jycsXG4gIH0sXG4gIHtcbiAgICBpZDogJ2Z1bGxzY3JlZW4nLFxuICAgIGxhYmVsOiAnVG/DoG4gbcOgbiBow6xuaCcsXG4gICAgaWNvbjogJ2Z1bGxzY3JlZW4nLFxuICAgIGljb25TcmM6IEdFT19NQVBfVE9PTEJBUl9JQ09OUy5mdWxsc2NyZWVuLFxuICAgIGljb25Pbmx5OiB0cnVlLFxuICAgIHRvb2x0aXA6ICdYZW0gdG/DoG4gYuG6o24gxJHhu5MnLFxuICB9LFxuICB7XG4gICAgaWQ6ICdtZWFzdXJlLWRpc3RhbmNlJyxcbiAgICBsYWJlbDogJ8SQbyBraG/huqNuZyBjw6FjaCcsXG4gICAgaWNvbjogJ2NvbHVtbi13aWR0aCcsXG4gICAgaWNvblNyYzogR0VPX01BUF9UT09MQkFSX0lDT05TLm1lYXN1cmVEaXN0YW5jZSxcbiAgICBpY29uT25seTogdHJ1ZSxcbiAgICB0b29sdGlwOiAnxJBvIGtob+G6o25nIGPDoWNoJyxcbiAgfSxcbiAge1xuICAgIGlkOiAnbWVhc3VyZS1hcmVhJyxcbiAgICBsYWJlbDogJ8SQbyBkaeG7h24gdMOtY2gnLFxuICAgIGljb246ICdib3JkZXItb3V0ZXInLFxuICAgIGljb25TcmM6IEdFT19NQVBfVE9PTEJBUl9JQ09OUy5tZWFzdXJlQXJlYSxcbiAgICBpY29uT25seTogdHJ1ZSxcbiAgICB0b29sdGlwOiAnxJBvIGRp4buHbiB0w61jaCcsXG4gIH0sXG4gIHtcbiAgICBpZDogJ2xheWVycycsXG4gICAgbGFiZWw6ICdM4bubcCBi4bqjbiDEkeG7kycsXG4gICAgaWNvbjogJ2FwcHN0b3JlJyxcbiAgICBpY29uU3JjOiBHRU9fTUFQX1RPT0xCQVJfSUNPTlMubGF5ZXJzLFxuICAgIGljb25Pbmx5OiB0cnVlLFxuICAgIHRvb2x0aXA6ICdC4bqtdC904bqvdCBs4bubcCBi4bqjbiDEkeG7kycsXG4gIH0sXG4gIHtcbiAgICBpZDogJ2xlZ2VuZCcsXG4gICAgbGFiZWw6ICdDaMO6IGdp4bqjaScsXG4gICAgaWNvbjogJ3Vub3JkZXJlZC1saXN0JyxcbiAgICBpY29uT25seTogdHJ1ZSxcbiAgICB0b29sdGlwOiAnWGVtIGNow7ogZ2nhuqNpJyxcbiAgfSxcbiAge1xuICAgIGlkOiAnc25hcHNob3QnLFxuICAgIGxhYmVsOiAnQ2jhu6VwIOG6o25oJyxcbiAgICBpY29uOiAnY2FtZXJhJyxcbiAgICBpY29uT25seTogdHJ1ZSxcbiAgICB0b29sdGlwOiAnQ2jhu6VwIOG6o25oIGLhuqNuIMSR4buTJyxcbiAgfSxcbl07XG5cbi8qKlxuICogQnVpbHQtaW4gXCJW4buLIHRyw60gY+G7p2EgdMO0aVwiIHRvb2xiYXIgYWN0aW9uIOKAlCBwYWlyIHdpdGggYGlkOiAnbG9jYXRlJ2AgaGFuZGxpbmcgdGhhdFxuICogYGdlby1tYXAtc2hlbGxgIGFscmVhZHkgcmVzb2x2ZXMgaW50ZXJuYWxseSAoZ2VvbG9jYXRlICsgZW1pdCBgbG9jYXRlZGAvYGxvY2F0ZUVycm9yYCkuXG4gKiBOb3QgaW5jbHVkZWQgaW4gYEdFT19NQVBfREVGQVVMVF9UT09MQkFSX0FDVElPTlNgOyBob3N0IGFwcHMgb3B0IGluIGV4cGxpY2l0bHkuXG4gKi9cbmV4cG9ydCBjb25zdCBHRU9fTUFQX0xPQ0FURV9UT09MQkFSX0FDVElPTjogR2VvTWFwVG9vbGJhckFjdGlvbiA9IHtcbiAgaWQ6ICdsb2NhdGUnLFxuICBsYWJlbDogJ1bhu4sgdHLDrSBj4bunYSB0w7RpJyxcbiAgaWNvbjogJ2FpbScsXG4gIGljb25Pbmx5OiB0cnVlLFxuICB0b29sdGlwOiAnVuG7iyB0csOtIGPhu6dhIHTDtGknLFxufTtcblxuLyoqXG4gKiBEZW1vIHRoZW1hdGljIG92ZXJsYXlzIGZvciBTdG9yeWJvb2sgKG9mZmxpbmUtZnJpZW5kbHkgR2VvSlNPTikuXG4gKiBHcm91cHMgbWF0Y2ggcG9ydGFsIGxheWVycyBwb3BvdmVyOiBRSFNERCDCtyDEkeG7i2EgY2jDrW5oIMK3IGhp4buHbiB0cuG6oW5nLlxuICovXG5leHBvcnQgY29uc3QgR0VPX01BUF9ERU1PX1RIRU1BVElDX0xBWUVSUzogR2VvTWFwTGF5ZXJDb25maWdbXSA9IFtcbiAge1xuICAgIGlkOiAnZGVtby1xaHNkZC0yMDIwJyxcbiAgICB0aXRsZTogJ1FIU0REIHThu4luaCBMw6JtIMSQ4buTbmcgMjAyMC0yMDI1JyxcbiAgICB0eXBlOiAnZ2VvanNvbicsXG4gICAgdmlzaWJsZTogdHJ1ZSxcbiAgICBvcGFjaXR5OiAwLjQsXG4gICAgekluZGV4OiAxMCxcbiAgICBncm91cDogJ3Foc2RkJyxcbiAgICBncm91cExhYmVsOiAnQuG6o24gxJHhu5MgUUhTREQnLFxuICAgIGdyb3VwU2VsZWN0aW9uOiAnc2luZ2xlJyxcbiAgICBiYXNlbWFwOiBmYWxzZSxcbiAgICBkYXRhUHJvamVjdGlvbjogJ0VQU0c6NDMyNicsXG4gICAgZmVhdHVyZVByb2plY3Rpb246ICdFUFNHOjM4NTcnLFxuICAgIGRhdGE6IHtcbiAgICAgIHR5cGU6ICdGZWF0dXJlQ29sbGVjdGlvbicsXG4gICAgICBmZWF0dXJlczogW1xuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogJ0ZlYXR1cmUnLFxuICAgICAgICAgIHByb3BlcnRpZXM6IHsgY29kZTogJ09EVCcsIG5hbWU6ICfEkOG6pXQg4bufIMSRw7QgdGjhu4sgKFFIIDIwMjAtMjAyNSknIH0sXG4gICAgICAgICAgZ2VvbWV0cnk6IHtcbiAgICAgICAgICAgIHR5cGU6ICdQb2x5Z29uJyxcbiAgICAgICAgICAgIGNvb3JkaW5hdGVzOiBbXG4gICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICBbMTA4LjQyLCAxMS45M10sXG4gICAgICAgICAgICAgICAgWzEwOC40OCwgMTEuOTNdLFxuICAgICAgICAgICAgICAgIFsxMDguNDgsIDExLjk3XSxcbiAgICAgICAgICAgICAgICBbMTA4LjQyLCAxMS45N10sXG4gICAgICAgICAgICAgICAgWzEwOC40MiwgMTEuOTNdLFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICB9LFxuICB7XG4gICAgaWQ6ICdkZW1vLXFoc2RkLTIwMjUnLFxuICAgIHRpdGxlOiAnUUhTREQgdOG7iW5oIEzDom0gxJDhu5NuZyAyMDI1LTIwMzAnLFxuICAgIHR5cGU6ICdnZW9qc29uJyxcbiAgICB2aXNpYmxlOiBmYWxzZSxcbiAgICBvcGFjaXR5OiAwLjQsXG4gICAgekluZGV4OiAxMSxcbiAgICBncm91cDogJ3Foc2RkJyxcbiAgICBncm91cExhYmVsOiAnQuG6o24gxJHhu5MgUUhTREQnLFxuICAgIGdyb3VwU2VsZWN0aW9uOiAnc2luZ2xlJyxcbiAgICBiYXNlbWFwOiBmYWxzZSxcbiAgICBkYXRhUHJvamVjdGlvbjogJ0VQU0c6NDMyNicsXG4gICAgZmVhdHVyZVByb2plY3Rpb246ICdFUFNHOjM4NTcnLFxuICAgIGRhdGE6IHtcbiAgICAgIHR5cGU6ICdGZWF0dXJlQ29sbGVjdGlvbicsXG4gICAgICBmZWF0dXJlczogW1xuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogJ0ZlYXR1cmUnLFxuICAgICAgICAgIHByb3BlcnRpZXM6IHsgY29kZTogJ09EVCcsIG5hbWU6ICfEkOG6pXQg4bufIMSRw7QgdGjhu4sgKFFIIDIwMjUtMjAzMCknIH0sXG4gICAgICAgICAgZ2VvbWV0cnk6IHtcbiAgICAgICAgICAgIHR5cGU6ICdQb2x5Z29uJyxcbiAgICAgICAgICAgIGNvb3JkaW5hdGVzOiBbXG4gICAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgICBbMTA4LjQzLCAxMS45MjVdLFxuICAgICAgICAgICAgICAgIFsxMDguNDksIDExLjkyNV0sXG4gICAgICAgICAgICAgICAgWzEwOC40OSwgMTEuOTY1XSxcbiAgICAgICAgICAgICAgICBbMTA4LjQzLCAxMS45NjVdLFxuICAgICAgICAgICAgICAgIFsxMDguNDMsIDExLjkyNV0sXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gIH0sXG4gIHtcbiAgICBpZDogJ2RlbW8tcGFyY2VsJyxcbiAgICB0aXRsZTogJ1Thu4luaCBMw6JtIMSQ4buTbmcnLFxuICAgIHR5cGU6ICdnZW9qc29uJyxcbiAgICB2aXNpYmxlOiB0cnVlLFxuICAgIG9wYWNpdHk6IDAuNCxcbiAgICB6SW5kZXg6IDIwLFxuICAgIGdyb3VwOiAnY2FkYXN0cmUnLFxuICAgIGdyb3VwTGFiZWw6ICdC4bqjbiDEkeG7kyDEkeG7i2EgY2jDrW5oJyxcbiAgICBncm91cFNlbGVjdGlvbjogJ211bHRpJyxcbiAgICBiYXNlbWFwOiBmYWxzZSxcbiAgICBxdWVyeWFibGU6IHRydWUsXG4gICAgZGF0YVByb2plY3Rpb246ICdFUFNHOjQzMjYnLFxuICAgIGZlYXR1cmVQcm9qZWN0aW9uOiAnRVBTRzozODU3JyxcbiAgICBkYXRhOiB7XG4gICAgICB0eXBlOiAnRmVhdHVyZUNvbGxlY3Rpb24nLFxuICAgICAgZmVhdHVyZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6ICdGZWF0dXJlJyxcbiAgICAgICAgICBwcm9wZXJ0aWVzOiB7IHBhcmNlbDogJzEyJywgc2hlZXQ6ICc0NScgfSxcbiAgICAgICAgICBnZW9tZXRyeToge1xuICAgICAgICAgICAgdHlwZTogJ1BvbHlnb24nLFxuICAgICAgICAgICAgY29vcmRpbmF0ZXM6IFtcbiAgICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgIFsxMDguNDUsIDExLjk0XSxcbiAgICAgICAgICAgICAgICBbMTA4LjQ2NSwgMTEuOTRdLFxuICAgICAgICAgICAgICAgIFsxMDguNDY1LCAxMS45NTJdLFxuICAgICAgICAgICAgICAgIFsxMDguNDUsIDExLjk1Ml0sXG4gICAgICAgICAgICAgICAgWzEwOC40NSwgMTEuOTRdLFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICB9LFxuICB7XG4gICAgaWQ6ICdkZW1vLWN1cnJlbnQtMjAyMCcsXG4gICAgdGl0bGU6ICdRSFNERCB04buJbmggTMOibSDEkOG7k25nIDIwMjAtMjAyNScsXG4gICAgdHlwZTogJ2dlb2pzb24nLFxuICAgIHZpc2libGU6IHRydWUsXG4gICAgb3BhY2l0eTogMC40LFxuICAgIHpJbmRleDogMTIsXG4gICAgZ3JvdXA6ICdjdXJyZW50JyxcbiAgICBncm91cExhYmVsOiAnQuG6o24gxJHhu5MgaGnhu4duIHRy4bqhbmcnLFxuICAgIGdyb3VwU2VsZWN0aW9uOiAnc2luZ2xlJyxcbiAgICBiYXNlbWFwOiBmYWxzZSxcbiAgICBkYXRhUHJvamVjdGlvbjogJ0VQU0c6NDMyNicsXG4gICAgZmVhdHVyZVByb2plY3Rpb246ICdFUFNHOjM4NTcnLFxuICAgIGRhdGE6IHtcbiAgICAgIHR5cGU6ICdGZWF0dXJlQ29sbGVjdGlvbicsXG4gICAgICBmZWF0dXJlczogW1xuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogJ0ZlYXR1cmUnLFxuICAgICAgICAgIHByb3BlcnRpZXM6IHsgY29kZTogJ09OVCcsIG5hbWU6ICfEkOG6pXQg4bufIHThuqFpIG7DtG5nIHRow7RuIChIVCAyMDIwLTIwMjUpJyB9LFxuICAgICAgICAgIGdlb21ldHJ5OiB7XG4gICAgICAgICAgICB0eXBlOiAnUG9seWdvbicsXG4gICAgICAgICAgICBjb29yZGluYXRlczogW1xuICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgWzEwOC40NCwgMTEuOTJdLFxuICAgICAgICAgICAgICAgIFsxMDguNSwgMTEuOTJdLFxuICAgICAgICAgICAgICAgIFsxMDguNSwgMTEuOTZdLFxuICAgICAgICAgICAgICAgIFsxMDguNDQsIDExLjk2XSxcbiAgICAgICAgICAgICAgICBbMTA4LjQ0LCAxMS45Ml0sXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gIH0sXG4gIHtcbiAgICBpZDogJ2RlbW8tY3VycmVudC0yMDI1JyxcbiAgICB0aXRsZTogJ1FIU0REIHThu4luaCBMw6JtIMSQ4buTbmcgMjAyNS0yMDMwJyxcbiAgICB0eXBlOiAnZ2VvanNvbicsXG4gICAgdmlzaWJsZTogZmFsc2UsXG4gICAgb3BhY2l0eTogMC40LFxuICAgIHpJbmRleDogMTMsXG4gICAgZ3JvdXA6ICdjdXJyZW50JyxcbiAgICBncm91cExhYmVsOiAnQuG6o24gxJHhu5MgaGnhu4duIHRy4bqhbmcnLFxuICAgIGdyb3VwU2VsZWN0aW9uOiAnc2luZ2xlJyxcbiAgICBiYXNlbWFwOiBmYWxzZSxcbiAgICBkYXRhUHJvamVjdGlvbjogJ0VQU0c6NDMyNicsXG4gICAgZmVhdHVyZVByb2plY3Rpb246ICdFUFNHOjM4NTcnLFxuICAgIGRhdGE6IHtcbiAgICAgIHR5cGU6ICdGZWF0dXJlQ29sbGVjdGlvbicsXG4gICAgICBmZWF0dXJlczogW1xuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogJ0ZlYXR1cmUnLFxuICAgICAgICAgIHByb3BlcnRpZXM6IHsgY29kZTogJ09OVCcsIG5hbWU6ICfEkOG6pXQg4bufIHThuqFpIG7DtG5nIHRow7RuIChIVCAyMDI1LTIwMzApJyB9LFxuICAgICAgICAgIGdlb21ldHJ5OiB7XG4gICAgICAgICAgICB0eXBlOiAnUG9seWdvbicsXG4gICAgICAgICAgICBjb29yZGluYXRlczogW1xuICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgWzEwOC40MzUsIDExLjkxNV0sXG4gICAgICAgICAgICAgICAgWzEwOC40OTUsIDExLjkxNV0sXG4gICAgICAgICAgICAgICAgWzEwOC40OTUsIDExLjk1NV0sXG4gICAgICAgICAgICAgICAgWzEwOC40MzUsIDExLjk1NV0sXG4gICAgICAgICAgICAgICAgWzEwOC40MzUsIDExLjkxNV0sXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gIH0sXG5dO1xuXG4vKipcbiAqIFNhbXBsZSBsZWdlbmQg4oCUIHBsYWNlaG9sZGVyIGNvbG9ycyB1bnRpbCBUaMO0bmcgdMawIDA5LzIwMjQgcGFsZXR0ZSBpcyBjb21wbGV0ZSAoUTEz4oCTUTE1KS5cbiAqIERvIG5vdCB0cmVhdCBhcyBsZWdhbGx5IGF1dGhvcml0YXRpdmUuXG4gKi9cbmV4cG9ydCBjb25zdCBHRU9fTUFQX0RFTU9fTEVHRU5EX0lURU1TOiBHZW9NYXBMZWdlbmRJdGVtW10gPSBbXG4gIHsgY29kZTogJ09EVCcsIGxhYmVsOiAnxJDhuqV0IOG7nyDEkcO0IHRo4buLJywgY29sb3I6ICcjRTg3QjM1JyB9LFxuICB7IGNvZGU6ICdPTlQnLCBsYWJlbDogJ8SQ4bqldCDhu58gdOG6oWkgbsO0bmcgdGjDtG4nLCBjb2xvcjogJyNGMkMxNEUnIH0sXG4gIHsgY29kZTogJ1NLQycsIGxhYmVsOiAnxJDhuqV0IGPGoSBz4bufIHPhuqNuIHh14bqldCBraW5oIGRvYW5oJywgY29sb3I6ICcjQzQ1QzI2JyB9LFxuICB7IGNvZGU6ICdER1QnLCBsYWJlbDogJ8SQ4bqldCBnaWFvIHRow7RuZycsIGNvbG9yOiAnIzZCNzI4MCcgfSxcbiAgeyBjb2RlOiAnVE1EJywgbGFiZWw6ICfEkOG6pXQgdGjGsMahbmcgbeG6oWkgZOG7i2NoIHbhu6UnLCBjb2xvcjogJyNEQjI3NzcnIH0sXG4gIHsgY29kZTogJ0NMTicsIGxhYmVsOiAnxJDhuqV0IHRy4buTbmcgY8OieSBsw6J1IG7Eg20nLCBjb2xvcjogJyMxNkEzNEEnIH0sXG5dO1xuXG5leHBvcnQgY29uc3QgR0VPX01BUF9ERUZBVUxUX0hFTFBfU0VDVElPTlM6IEFycmF5PHsgdGl0bGU6IHN0cmluZzsgYm9keTogc3RyaW5nIH0+ID0gW1xuICB7XG4gICAgdGl0bGU6ICdEaSBjaHV54buDbiBi4bqjbiDEkeG7kycsXG4gICAgYm9keTogJ0vDqW8gY2h14buZdCDEkeG7gyBwYW4uIEN14buZbiBjaHXhu5l0IGhv4bq3YyBkw7luZyBuw7p0ICsvLSDEkeG7gyB0aHUgcGjDs25nLiBEw7luZyDigJxQaMOzbmcgdG8gdGhlbyB2w7luZ+KAnSAvIOKAnFRodSBuaOG7jyB0aGVvIHbDuW5n4oCdIMSR4buDIGtob2FuaCB2w7luZyB0csOqbiBi4bqjbiDEkeG7ky4g4oCcWGVtIHRvw6BuIHThu4luaOKAnSBjxINuIGtodW5nIG5ow6xuIHbhu4EgcGjhuqFtIHZpIHThu4luaC4nLFxuICB9LFxuICB7XG4gICAgdGl0bGU6ICdUcmEgY+G7qXUgdGjhu61hIMSR4bqldCcsXG4gICAgYm9keTogJ03hu58g4oCcVHJhIGPhu6l14oCdIMSR4buDIHTDrG0gdGhlbyBjaOG7pyBz4butIGThu6VuZywgR0NOLCB04buNYSDEkeG7mSwgxJHhu4thIGNo4buJIGhv4bq3YyBz4buRIHThu50vdGjhu61hLiBL4bq/dCBxdeG6oyBoaeG7g24gdGjhu4sgZGFuaCBzw6FjaCB2w6AgaGlnaGxpZ2h0IHRyw6puIGLhuqNuIMSR4buTLicsXG4gIH0sXG4gIHtcbiAgICB0aXRsZTogJ0zhu5twIGLhuqNuIMSR4buTJyxcbiAgICBib2R5OiAnTeG7nyDigJxM4bubcCBi4bqjbiDEkeG7k+KAnSDEkeG7gyBi4bqtdC904bqvdCBxdXkgaG/huqFjaCBTRMSQLCBoaeG7h24gdHLhuqFuZyBTRMSQLCB0aOG7rWEgxJHhuqV0LiBDaOG7jW4gduG7hyB0aW5oIOG7nyBi4buZIGNodXnhu4NuIGzhu5twIG7hu4FuLiBC4bqtdCBuaGnhu4F1IGzhu5twIGPDuW5nIGzDumMgxJHhu4MgY2jhu5NuZyB44bq/cCBzbyBzw6FuaC4nLFxuICB9LFxuICB7XG4gICAgdGl0bGU6ICfEkMahbiB24buLIGjDoG5oIGNow61uaCcsXG4gICAgYm9keTogJ03hu58gYuG7mSBs4buNYyDEkFZIQyBj4bqlcCB4w6MgxJHhu4MgdGh1IGjhurlwIGtodW5nIG5ow6xuIHRoZW8geMOjIMSRw6MgY2jhu41uLiDigJxYZW0gdG/DoG4gdOG7iW5o4oCdIMSRxrBhIGLhuqNuIMSR4buTIHbhu4EgdG/DoG4gY+G6o25oIHThu4luaC4nLFxuICB9LFxuICB7XG4gICAgdGl0bGU6ICfEkG8gxJHhuqFjICYgdGnhu4duIMOtY2gnLFxuICAgIGJvZHk6ICfEkG8ga2hv4bqjbmcgY8OhY2ggLyBkaeG7h24gdMOtY2ggYuG6sW5nIGPDoWNoIG5o4bqlcCBjw6FjIMSRaeG7g20gdHLDqm4gYuG6o24gxJHhu5MgKG5ow6F5IMSRw7pwIMSR4buDIGvhur90IHRow7pjKS4gRMO5bmcg4oCcxJDhu5kgdHJvbmcgc3Xhu5F04oCdIMSR4buDIG5ow6xuIHh1ecOqbiBs4bubcC4g4oCcQ2jhu6VwIOG6o25o4oCdIHThuqNpIFBORyBraHVuZyBuaMOsbiBoaeG7h24gdOG6oWkuJyxcbiAgfSxcbiAge1xuICAgIHRpdGxlOiAnVuG7iyB0csOtIGPhu6dhIHTDtGknLFxuICAgIGJvZHk6ICdDaG8gcGjDqXAgdHLDrG5oIGR1eeG7h3QgY2hpYSBz4bq7IHbhu4sgdHLDrSDEkeG7gyBjxINuIGdp4buvYSBi4bqjbiDEkeG7kyB04bqhaSB24buLIHRyw60gdGhp4bq/dCBi4buLIGPhu6dhIGLhuqFuLicsXG4gIH0sXG5dO1xuXG4vKiogRGVtbyBhZG1pbiB0cmVlICh4w6MpIGZvciBTdG9yeWJvb2sg4oCUIHJlcGxhY2UgdmlhIEFQSSBpbiBwcm9kdWN0aW9uLiAqL1xuZXhwb3J0IGNvbnN0IEdFT19NQVBfREVNT19BRE1JTl9OT0RFUzogR2VvVHJlZU5vZGVbXSA9IFtcbiAge1xuICAgIGtleTogJ2xhbS1kb25nJyxcbiAgICB0aXRsZTogJ1Thu4luaCBMw6JtIMSQ4buTbmcnLFxuICAgIGV4cGFuZGVkOiB0cnVlLFxuICAgIGNoaWxkcmVuOiBbXG4gICAgICB7IGtleTogJ3hhLTEnLCB0aXRsZTogJ1jDoyDEkOG6oSBU4bq7aCcsIGlzTGVhZjogdHJ1ZSB9LFxuICAgICAgeyBrZXk6ICd4YS0yJywgdGl0bGU6ICdYw6MgxJDhuqEgSHVvYWknLCBpc0xlYWY6IHRydWUgfSxcbiAgICAgIHsga2V5OiAneGEtMycsIHRpdGxlOiAnWMOjIMSQ4bqhIEtobycsIGlzTGVhZjogdHJ1ZSB9LFxuICAgICAgeyBrZXk6ICd4YS00JywgdGl0bGU6ICdQaMaw4budbmcgMSAoxJDDoCBM4bqhdCknLCBpc0xlYWY6IHRydWUgfSxcbiAgICAgIHsga2V5OiAneGEtNScsIHRpdGxlOiAnUGjGsOG7nW5nIDIgKMSQw6AgTOG6oXQpJywgaXNMZWFmOiB0cnVlIH0sXG4gICAgXSxcbiAgfSxcbl07XG5cbi8qKiBEZW1vIHBhcmNlbCBkZXRhaWwgZm9yIFN0b3J5Ym9vayBzZWFyY2gvcG9wdXAgKFRDUUguMTIpLiAqL1xuZXhwb3J0IGNvbnN0IEdFT19NQVBfREVNT19QQVJDRUxfREVUQUlMOiBHZW9NYXBQYXJjZWxEZXRhaWwgPSB7XG4gIHBhcmNlbENvZGU6ICcwMTAwMDAxMjM0JyxcbiAgcGFyY2VsTnVtYmVyOiAnMjAyMycsXG4gIHNoZWV0TnVtYmVyOiAnMTUzJyxcbiAgd2FyZDogJ1BoxrDhu51uZyAxJyxcbiAgcHJvdmluY2U6ICdMw6JtIMSQ4buTbmcnLFxuICBhcmVhOiAnMjUwMCBtwrInLFxuICBsZWdhbEFyZWE6ICcyNTAwIG3CsicsXG4gIGxhbmRVc2U6ICdMVUMgLSDEkOG6pXQgY2h1ecOqbiB0cuG7k25nIGzDumEgbsaw4bubYycsXG4gIGFkZHJlc3M6ICdT4buRIDEwLCDEkcaw4budbmcgVHLhuqduIFBow7onLFxuICB1c2VGb3JtOiAnU+G7rSBk4bulbmcgcmnDqm5nJyxcbiAgcmVnaXN0cmF0aW9uU3RhdHVzOiAnxJDDoyBj4bqlcCBnaeG6pXkgY2jhu6luZyBuaOG6rW4nLFxuICBsYW5kUHJpY2U6ICfEkGFuZyBj4bqtcCBuaOG6rXQnLFxuICBzaGFwZUluZm86ICdIw6xuaCBjaOG7ryBuaOG6rXQnLFxuICBwbGFubmluZ0luZm86ICdO4bqxbSB0cm9uZyBxdXkgaG/huqFjaCDEkeG6pXQg4bufIMSRw7QgdGjhu4sgZ2lhaSDEkW/huqFuIDIwMjHigJMyMDMwJyxcbn07XG5cbi8qKlxuICogUGxhY2Vob2xkZXIgZW5kcG9pbnRzIOKAlCByZXBsYWNlIHZpYSBlbnZpcm9ubWVudCAvIEFQSS5cbiAqIERvIG5vdCBoYXJkLWNvZGUgcHJvZHVjdGlvbiBkb21haW5zIGhlcmUuXG4gKi9cbmV4cG9ydCBjb25zdCBHRU9fTUFQX0VOVl9QTEFDRUhPTERFUlMgPSB7XG4gIHdtc1VybDogJ2h0dHBzOi8ve01BUF9BUElfSE9TVH0vZ2Vvc2VydmVyL3dtcycsXG4gIHh5elNhdGVsbGl0ZVVybDpcbiAgICAnaHR0cHM6Ly97VElMRV9IT1NUfS9zYXRlbGxpdGUve3p9L3t4fS97eX0ucG5nJyxcbiAgZ2VvanNvblBhcmNlbFVybDogJ2h0dHBzOi8ve01BUF9BUElfSE9TVH0vYXBpL3YxL3BhcmNlbHMuZ2VvanNvbicsXG59IGFzIGNvbnN0O1xuXG4vKipcbiAqIEV4YW1wbGUgbXVsdGktbGF5ZXIgc3RhY2sgZm9yIGxhbmQtdXNlIHBsYW5uaW5nIGRlbW9zIC8gU3Rvcnlib29rLlxuICogVVJMcyBhcmUgcGxhY2Vob2xkZXJzOyBXTVMvWFlaIHRpbGVzIHdpbGwgZmFpbCB1bnRpbCBlbnYgaXMgd2lyZWQuXG4gKi9cbmV4cG9ydCBjb25zdCBHRU9fTUFQX0RFRkFVTFRfUExBTk5JTkdfTEFZRVJTOiBHZW9NYXBMYXllckNvbmZpZ1tdID0gW1xuICB7XG4gICAgaWQ6ICdvc20nLFxuICAgIHRpdGxlOiAnQuG6o24gxJHhu5MgxJHGsOG7nW5nIHBo4buRJyxcbiAgICB0eXBlOiAnb3NtJyxcbiAgICB2aXNpYmxlOiB0cnVlLFxuICAgIG9wYWNpdHk6IDEsXG4gICAgekluZGV4OiAwLFxuICAgIGJhc2VtYXA6IHRydWUsXG4gICAgZ3JvdXA6ICdiYXNlLW1hcCcsXG4gIH0sXG4gIHtcbiAgICBpZDogJ3NhdGVsbGl0ZScsXG4gICAgdGl0bGU6ICfhuqJuaCB24buHIHRpbmgnLFxuICAgIHR5cGU6ICd4eXonLFxuICAgIHVybDogR0VPX01BUF9FTlZfUExBQ0VIT0xERVJTLnh5elNhdGVsbGl0ZVVybCxcbiAgICB2aXNpYmxlOiBmYWxzZSxcbiAgICBvcGFjaXR5OiAxLFxuICAgIHpJbmRleDogMCxcbiAgICBiYXNlbWFwOiB0cnVlLFxuICAgIGdyb3VwOiAnYmFzZS1tYXAnLFxuICAgIGF0dHJpYnV0aW9uczogJ1NhdGVsbGl0ZSAocGxhY2Vob2xkZXIpJyxcbiAgfSxcbiAge1xuICAgIGlkOiAnbGFuZC11c2UtcGxhbm5pbmcnLFxuICAgIHRpdGxlOiAnUXV5IGhv4bqhY2ggc+G7rSBk4bulbmcgxJHhuqV0JyxcbiAgICB0eXBlOiAnd21zJyxcbiAgICB1cmw6IEdFT19NQVBfRU5WX1BMQUNFSE9MREVSUy53bXNVcmwsXG4gICAgbGF5ZXJOYW1lOiAnd29ya3NwYWNlOmxhbmRfdXNlX3BsYW5uaW5nJyxcbiAgICBwYXJhbXM6IHtcbiAgICAgIExBWUVSUzogJ3dvcmtzcGFjZTpsYW5kX3VzZV9wbGFubmluZycsXG4gICAgICBUSUxFRDogdHJ1ZSxcbiAgICB9LFxuICAgIHZpc2libGU6IHRydWUsXG4gICAgb3BhY2l0eTogMC43LFxuICAgIHpJbmRleDogMTAsXG4gICAgcHJvamVjdGlvbjogJ0VQU0c6Mzg1NycsXG4gICAgcXVlcnlhYmxlOiB0cnVlLFxuICAgIGdyb3VwOiAncGxhbm5pbmcnLFxuICAgIHNlcnZlclR5cGU6ICdnZW9zZXJ2ZXInLFxuICB9LFxuICB7XG4gICAgaWQ6ICdwYXJjZWwtYm91bmRhcnknLFxuICAgIHRpdGxlOiAnUmFuaCBnaeG7m2kgdGjhu61hIMSR4bqldCcsXG4gICAgdHlwZTogJ3dtcycsXG4gICAgdXJsOiBHRU9fTUFQX0VOVl9QTEFDRUhPTERFUlMud21zVXJsLFxuICAgIGxheWVyTmFtZTogJ3dvcmtzcGFjZTpwYXJjZWxfYm91bmRhcnknLFxuICAgIHBhcmFtczoge1xuICAgICAgTEFZRVJTOiAnd29ya3NwYWNlOnBhcmNlbF9ib3VuZGFyeScsXG4gICAgICBUSUxFRDogdHJ1ZSxcbiAgICB9LFxuICAgIHZpc2libGU6IHRydWUsXG4gICAgb3BhY2l0eTogMC45LFxuICAgIHpJbmRleDogMjAsXG4gICAgcXVlcnlhYmxlOiB0cnVlLFxuICAgIGdyb3VwOiAncGxhbm5pbmcnLFxuICAgIHNlcnZlclR5cGU6ICdnZW9zZXJ2ZXInLFxuICB9LFxuICB7XG4gICAgaWQ6IEdFT19NQVBfU0VMRUNUSU9OX0xBWUVSX0lELFxuICAgIHRpdGxlOiAnxJDhu5FpIHTGsOG7o25nIMSRYW5nIGNo4buNbicsXG4gICAgdHlwZTogJ3ZlY3RvcicsXG4gICAgdmlzaWJsZTogdHJ1ZSxcbiAgICBvcGFjaXR5OiAxLFxuICAgIHpJbmRleDogMTAwLFxuICAgIGdyb3VwOiAnc3lzdGVtJyxcbiAgICBmZWF0dXJlczogW10sXG4gIH0sXG4gIHtcbiAgICBpZDogR0VPX01BUF9NRUFTVVJFX0xBWUVSX0lELFxuICAgIHRpdGxlOiAnS+G6v3QgcXXhuqMgxJFvJyxcbiAgICB0eXBlOiAndmVjdG9yJyxcbiAgICB2aXNpYmxlOiB0cnVlLFxuICAgIG9wYWNpdHk6IDEsXG4gICAgekluZGV4OiAxMTAsXG4gICAgZ3JvdXA6ICdzeXN0ZW0nLFxuICAgIGZlYXR1cmVzOiBbXSxcbiAgfSxcbl07XG4iXX0=