valtech-components 4.0.403 → 4.0.404
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/esm2022/lib/components/organisms/mini-games/mini-games-menu.component.mjs +3 -3
- package/esm2022/lib/components/organisms/mini-games/retro-audio.service.mjs +45 -1
- package/esm2022/lib/version.mjs +2 -2
- package/fesm2022/valtech-components.mjs +47 -3
- package/fesm2022/valtech-components.mjs.map +1 -1
- package/lib/components/organisms/mini-games/retro-audio.service.d.ts +1 -0
- package/lib/version.d.ts +1 -1
- package/package.json +1 -1
|
@@ -177,7 +177,7 @@ export class MiniGamesMenuComponent {
|
|
|
177
177
|
}
|
|
178
178
|
</div>
|
|
179
179
|
</ng-template>
|
|
180
|
-
`, isInline: true, styles: [":host{display:block;--mini-games-panel: #ffffff;--mini-games-surface: #f8f7fb;--mini-games-border: rgba(47, 44, 58, .12);--mini-games-text: #2f2c3a;--mini-games-muted: rgba(47, 44, 58, .68);--mini-games-primary: #6f65d8;--mini-games-primary-rgb: 111, 101, 216;--mini-games-secondary: #67b7c9;--mini-games-secondary-rgb: 103, 183, 201;--mini-games-accent: #8f7ce7;--mini-games-accent-rgb: 143, 124, 231;--mini-games-soft: #f3f1fb;--mini-games-icon-text: #ffffff;--mini-games-focus: rgba(var(--mini-games-primary-rgb), .22);color:var(--mini-games-text)}:host-context(html.ion-palette-dark),:host-context([data-theme=\"dark\"]){--mini-games-panel: #211f2a;--mini-games-surface: #191821;--mini-games-border: rgba(255, 255, 255, .13);--mini-games-text: #f7f4ff;--mini-games-muted: rgba(247, 244, 255, .68);--mini-games-primary: #b7adff;--mini-games-primary-rgb: 183, 173, 255;--mini-games-secondary: #8fd5e5;--mini-games-secondary-rgb: 143, 213, 229;--mini-games-accent: #c7bbff;--mini-games-accent-rgb: 199, 187, 255;--mini-games-soft: #2a2735;--mini-games-icon-text: #211f2a;--mini-games-focus: rgba(var(--mini-games-primary-rgb), .24)}.mini-games-grid{display:grid;gap:.75rem;padding-top:1rem}.mini-games-menu-actions{display:flex;justify-content:flex-end;padding-top:.75rem}.mini-games-player{display:grid;gap:.75rem;margin-top:.75rem;padding:1rem;border:1px solid var(--mini-games-border);border-radius:1.375rem;background:radial-gradient(circle at 12% 0%,color-mix(in srgb,var(--player-color) 12%,transparent),transparent 34%),linear-gradient(135deg,var(--mini-games-panel),var(--mini-games-soft));box-shadow:0 1.125rem 2.75rem #2f2c3a14;color:var(--mini-games-text)}:host-context(html.ion-palette-dark) .mini-games-player,:host-context([data-theme=\"dark\"]) .mini-games-player{border-color:var(--mini-games-border);background:radial-gradient(circle at 12% 0%,color-mix(in srgb,var(--player-color) 14%,transparent),transparent 34%),linear-gradient(135deg,color-mix(in srgb,var(--mini-games-panel) 92%,white),var(--mini-games-surface));box-shadow:none}.mini-games-player__head{display:grid;grid-template-columns:58px 1fr;gap:12px;align-items:center}.mini-games-player__avatar{display:grid;place-items:center;width:58px;height:58px;border-radius:18px;background:var(--player-color);font-size:1.65rem;box-shadow:0 14px 28px color-mix(in srgb,var(--player-color) 32%,transparent)}.mini-games-player__head small,.mini-games-player__name span{display:block;color:var(--mini-games-muted);font-size:.76rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.mini-games-player__head strong{display:block;color:inherit;font-size:1.35rem;line-height:1.05;font-weight:950}.mini-games-player__head p{margin:.1875rem 0 0;color:var(--mini-games-muted);font-size:.92rem;line-height:1.32}.mini-games-player__profiles{display:flex;gap:8px;overflow-x:auto;padding-bottom:2px}.mini-games-player__profiles button{flex:0 0 auto;min-height:42px;display:inline-flex;align-items:center;gap:7px;border:1px solid var(--ion-border-color, #e7e4ea);border-radius:999px;padding:0 12px;background:var(--ion-item-background, transparent);color:inherit;font:inherit;font-size:.9rem;font-weight:850}.mini-games-player__profiles button.is-selected{border-color:var(--player-color);background:color-mix(in srgb,var(--player-color) 16%,var(--ion-card-background, #fff))}.mini-games-player__profiles ion-icon{color:var(--player-color)}.mini-games-player__name{display:grid;gap:6px}.mini-games-player__name input{width:100%;min-height:48px;border:1px solid var(--mini-games-border);border-radius:999px;padding:0 16px;background:color-mix(in srgb,var(--mini-games-panel) 88%,white);color:var(--mini-games-text);caret-color:var(--mini-games-primary);font:inherit;font-weight:850}.mini-games-player__name input::placeholder{color:var(--mini-games-muted);opacity:.84}.mini-games-player__name input:focus-visible,.mini-games-player__profiles button:focus-visible,.mini-games-player__choices button:focus-visible,.mini-games-player__add:focus-visible,.mini-games-sound-toggle:focus-visible,.mini-game-card:focus-visible{outline:.1875rem solid var(--mini-games-focus);outline-offset:.1875rem}:host-context(html.ion-palette-dark) .mini-games-player__name input,:host-context([data-theme=\"dark\"]) .mini-games-player__name input{border-color:var(--mini-games-border);background:color-mix(in srgb,var(--mini-games-panel) 88%,white);color:var(--mini-games-text)}.mini-games-player__choices{display:flex;flex-wrap:wrap;gap:8px}.mini-games-player__choices button{display:grid;place-items:center;width:42px;height:42px;border:1px solid var(--mini-games-border);border-radius:999px;background:var(--mini-games-panel);color:var(--mini-games-text);font-size:1.12rem}:host-context(html.ion-palette-dark) .mini-games-player__choices button,:host-context([data-theme=\"dark\"]) .mini-games-player__choices button,:host-context(html.ion-palette-dark) .mini-games-player__profiles button,:host-context([data-theme=\"dark\"]) .mini-games-player__profiles button{border-color:var(--mini-games-border);background:color-mix(in srgb,var(--mini-games-panel) 88%,white);color:var(--mini-games-text)}.mini-games-player__choices--colors button{position:relative;overflow:hidden;border-color:rgba(var(--ion-color-dark-rgb, 47, 42, 58),.18);background:var(--swatch-color);box-shadow:inset 0 0 0 2px #ffffff3d,0 10px 22px color-mix(in srgb,var(--swatch-color) 24%,transparent)}.mini-games-player__choices--colors button:after{content:\"\";width:13px;height:13px;border-radius:999px;background:#ffffff57;box-shadow:0 0 12px #ffffff38}.mini-games-player__choices button.is-selected{border-color:var(--player-color);box-shadow:0 0 0 3px color-mix(in srgb,var(--player-color) 18%,transparent)}:host-context(html.ion-palette-dark) .mini-games-player__choices button.is-selected,:host-context([data-theme=\"dark\"]) .mini-games-player__choices button.is-selected,:host-context(html.ion-palette-dark) .mini-games-player__profiles button.is-selected,:host-context([data-theme=\"dark\"]) .mini-games-player__profiles button.is-selected{border-color:var(--player-color);background:color-mix(in srgb,var(--player-color) 18%,var(--ion-card-background, #1f1b28))}:host-context(html.ion-palette-dark) .mini-games-player__choices--colors button,:host-context([data-theme=\"dark\"]) .mini-games-player__choices--colors button{border-color:rgba(var(--ion-color-light-rgb, 244, 245, 248),.32);background:var(--swatch-color);box-shadow:inset 0 0 0 2px #ffffff38,0 0 0 1px #00000047,0 12px 24px color-mix(in srgb,var(--swatch-color) 34%,transparent)}.mini-games-player__choices--colors button.is-selected,:host-context(html.ion-palette-dark) .mini-games-player__choices--colors button.is-selected,:host-context([data-theme=\"dark\"]) .mini-games-player__choices--colors button.is-selected{border-color:var(--mini-games-accent);background:var(--swatch-color);box-shadow:0 0 0 .1875rem rgba(var(--mini-games-accent-rgb),.26),inset 0 0 0 2px #ffffff47,0 14px 28px color-mix(in srgb,var(--swatch-color) 36%,transparent)}.mini-games-player__add{justify-self:end;display:inline-flex;align-items:center;gap:7px;min-height:42px;border:0;border-radius:999px;padding:0 14px;background:color-mix(in srgb,var(--player-color) 16%,var(--mini-games-panel));color:var(--mini-games-primary);font:inherit;font-size:.92rem;font-weight:900}.mini-games-sound-toggle{display:inline-flex;align-items:center;gap:8px;min-height:42px;padding:0 14px;border:1px solid var(--mini-games-border);border-radius:999px;background:var(--mini-games-panel);color:var(--mini-games-text);font:inherit;font-size:14px;font-weight:850}:host-context(html.ion-palette-dark) .mini-games-sound-toggle,:host-context([data-theme=\"dark\"]) .mini-games-sound-toggle{border-color:var(--mini-games-border);background:var(--mini-games-panel);color:var(--mini-games-text)}.mini-games-sound-toggle ion-icon{color:var(--mini-games-primary)}.mini-games-sound-toggle span{max-width:18ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mini-games-page-head{display:grid;gap:8px;padding:8px 0 4px;text-align:center}.mini-games-page-head h1{margin:0;color:var(--mini-games-text);font-size:clamp(2.5rem,9vw,4rem);line-height:.95;font-weight:950}.mini-games-page-head p{max-width:32.5rem;margin:0 auto;color:var(--mini-games-muted);font-size:clamp(1rem,3vw,1.25rem);line-height:1.35}.mini-game-card{width:100%;display:grid;grid-template-columns:72px 1fr;gap:14px;align-items:center;padding:16px;border:1px solid var(--mini-games-border);border-radius:18px;background:radial-gradient(circle at 20% 10%,rgba(var(--mini-games-primary-rgb),.1),transparent 32%),linear-gradient(135deg,var(--mini-games-panel),var(--mini-games-soft));color:var(--mini-games-text);text-align:left;transition:border-color .16s ease,transform .16s ease,background .16s ease}:host-context(html.ion-palette-dark) .mini-game-card,:host-context([data-theme=\"dark\"]) .mini-game-card{border-color:var(--mini-games-border);background:radial-gradient(circle at 20% 10%,rgba(var(--mini-games-primary-rgb),.14),transparent 32%),linear-gradient(135deg,color-mix(in srgb,var(--mini-games-panel) 92%,white),var(--mini-games-surface));color:var(--mini-games-text)}.mini-game-card:not(:disabled){cursor:pointer}.mini-game-card:not(:disabled):hover{border-color:var(--mini-games-primary);transform:translateY(-1px)}.mini-game-card:disabled{opacity:.55}.mini-game-card__icon{display:grid;place-items:center;width:72px;height:72px;border-radius:20px;background:radial-gradient(circle at 30% 22%,rgba(255,255,255,.35),transparent 32%),linear-gradient(135deg,var(--mini-games-primary),var(--mini-games-secondary));color:var(--mini-games-icon-text);font-size:34px;box-shadow:0 .875rem 2.25rem rgba(var(--mini-games-primary-rgb),.28)}.mini-game-card__icon--image{overflow:hidden;padding:.35rem;background:#fff}.mini-game-card__icon img{display:block;width:100%;height:100%;border-radius:1rem;object-fit:contain}.mini-game-card__content{display:flex;min-width:0;flex-direction:column;gap:4px}.mini-game-card__content strong{font-size:20px;line-height:1.1}.mini-game-card__content small{color:var(--mini-games-muted);font-size:14px;line-height:1.35}.mini-game-card__action{display:inline-flex;align-items:center;gap:6px;padding-top:6px;color:var(--mini-games-primary);font-weight:800}@media (max-width: 420px){.mini-game-card{grid-template-columns:56px 1fr;padding:14px}.mini-game-card__icon{width:56px;height:56px;border-radius:16px;font-size:28px}}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: ModalLayoutComponent, selector: "val-modal-layout", inputs: ["title", "subtitle", "closeLabel", "showClose", "actions", "actionsAlign", "footer", "footerClass"], outputs: ["close", "actionClick"] }] }); }
|
|
180
|
+
`, isInline: true, styles: [":host{display:block;--mini-games-panel: #ffffff;--mini-games-surface: #f8f7fb;--mini-games-border: rgba(47, 44, 58, .12);--mini-games-text: #2f2c3a;--mini-games-muted: rgba(47, 44, 58, .68);--mini-games-primary: #6f65d8;--mini-games-primary-rgb: 111, 101, 216;--mini-games-secondary: #67b7c9;--mini-games-secondary-rgb: 103, 183, 201;--mini-games-accent: #8f7ce7;--mini-games-accent-rgb: 143, 124, 231;--mini-games-soft: #f3f1fb;--mini-games-icon-text: #ffffff;--mini-games-focus: rgba(var(--mini-games-primary-rgb), .22);color:var(--mini-games-text)}:host-context(html.ion-palette-dark),:host-context([data-theme=\"dark\"]){--mini-games-panel: #211f2a;--mini-games-surface: #191821;--mini-games-border: rgba(255, 255, 255, .13);--mini-games-text: #f7f4ff;--mini-games-muted: rgba(247, 244, 255, .68);--mini-games-primary: #b7adff;--mini-games-primary-rgb: 183, 173, 255;--mini-games-secondary: #8fd5e5;--mini-games-secondary-rgb: 143, 213, 229;--mini-games-accent: #c7bbff;--mini-games-accent-rgb: 199, 187, 255;--mini-games-soft: #2a2735;--mini-games-icon-text: #211f2a;--mini-games-focus: rgba(var(--mini-games-primary-rgb), .24)}.mini-games-grid{display:grid;gap:.75rem;padding-top:1rem}.mini-games-menu-actions{display:flex;justify-content:flex-end;padding-top:.75rem}.mini-games-player{display:grid;gap:.75rem;margin-top:.75rem;padding:1rem;border:1px solid var(--mini-games-border);border-radius:1.375rem;background:radial-gradient(circle at 12% 0%,color-mix(in srgb,var(--player-color) 12%,transparent),transparent 34%),linear-gradient(135deg,var(--mini-games-panel),var(--mini-games-soft));box-shadow:0 1.125rem 2.75rem #2f2c3a14;color:var(--mini-games-text)}:host-context(html.ion-palette-dark) .mini-games-player,:host-context([data-theme=\"dark\"]) .mini-games-player{border-color:var(--mini-games-border);background:radial-gradient(circle at 12% 0%,color-mix(in srgb,var(--player-color) 14%,transparent),transparent 34%),linear-gradient(135deg,color-mix(in srgb,var(--mini-games-panel) 92%,white),var(--mini-games-surface));box-shadow:none}.mini-games-player__head{display:grid;grid-template-columns:58px 1fr;gap:12px;align-items:center}.mini-games-player__avatar{display:grid;place-items:center;width:58px;height:58px;border-radius:18px;background:var(--player-color);font-size:1.65rem;box-shadow:0 14px 28px color-mix(in srgb,var(--player-color) 32%,transparent)}.mini-games-player__head small,.mini-games-player__name span{display:block;color:var(--mini-games-muted);font-size:.76rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.mini-games-player__head strong{display:block;color:inherit;font-size:1.35rem;line-height:1.05;font-weight:950}.mini-games-player__head p{margin:.1875rem 0 0;color:var(--mini-games-muted);font-size:.92rem;line-height:1.32}.mini-games-player__profiles{display:flex;gap:8px;overflow-x:auto;padding-bottom:2px}.mini-games-player__profiles button{flex:0 0 auto;min-height:42px;display:inline-flex;align-items:center;gap:7px;border:1px solid var(--ion-border-color, #e7e4ea);border-radius:999px;padding:0 12px;background:var(--ion-item-background, transparent);color:inherit;font:inherit;font-size:.9rem;font-weight:850}.mini-games-player__profiles button.is-selected{border-color:var(--player-color);background:color-mix(in srgb,var(--player-color) 16%,var(--ion-card-background, #fff))}.mini-games-player__profiles ion-icon{color:var(--player-color)}.mini-games-player__name{display:grid;gap:6px}.mini-games-player__name input{width:100%;min-height:48px;border:1px solid var(--mini-games-border);border-radius:999px;padding:0 16px;background:color-mix(in srgb,var(--mini-games-panel) 88%,white);color:var(--mini-games-text);caret-color:var(--mini-games-primary);font:inherit;font-weight:850}.mini-games-player__name input::placeholder{color:var(--mini-games-muted);opacity:.84}.mini-games-player__name input:focus-visible,.mini-games-player__profiles button:focus-visible,.mini-games-player__choices button:focus-visible,.mini-games-player__add:focus-visible,.mini-games-sound-toggle:focus-visible,.mini-game-card:focus-visible{outline:.1875rem solid var(--mini-games-focus);outline-offset:.1875rem}:host-context(html.ion-palette-dark) .mini-games-player__name input,:host-context([data-theme=\"dark\"]) .mini-games-player__name input{border-color:var(--mini-games-border);background:color-mix(in srgb,var(--mini-games-panel) 88%,white);color:var(--mini-games-text)}.mini-games-player__choices{display:flex;flex-wrap:wrap;gap:8px}.mini-games-player__choices button{display:grid;place-items:center;width:42px;height:42px;border:1px solid var(--mini-games-border);border-radius:999px;background:var(--mini-games-panel);color:var(--mini-games-text);font-size:1.12rem}:host-context(html.ion-palette-dark) .mini-games-player__choices button,:host-context([data-theme=\"dark\"]) .mini-games-player__choices button,:host-context(html.ion-palette-dark) .mini-games-player__profiles button,:host-context([data-theme=\"dark\"]) .mini-games-player__profiles button{border-color:var(--mini-games-border);background:color-mix(in srgb,var(--mini-games-panel) 88%,white);color:var(--mini-games-text)}.mini-games-player__choices--colors button{position:relative;overflow:hidden;border-color:rgba(var(--ion-color-dark-rgb, 47, 42, 58),.18);background:var(--swatch-color);box-shadow:inset 0 0 0 2px #ffffff3d,0 10px 22px color-mix(in srgb,var(--swatch-color) 24%,transparent)}.mini-games-player__choices--colors button:after{content:\"\";width:13px;height:13px;border-radius:999px;background:#ffffff57;box-shadow:0 0 12px #ffffff38}.mini-games-player__choices button.is-selected{border-color:var(--player-color);box-shadow:0 0 0 3px color-mix(in srgb,var(--player-color) 18%,transparent)}:host-context(html.ion-palette-dark) .mini-games-player__choices button.is-selected,:host-context([data-theme=\"dark\"]) .mini-games-player__choices button.is-selected,:host-context(html.ion-palette-dark) .mini-games-player__profiles button.is-selected,:host-context([data-theme=\"dark\"]) .mini-games-player__profiles button.is-selected{border-color:var(--player-color);background:color-mix(in srgb,var(--player-color) 18%,var(--ion-card-background, #1f1b28))}:host-context(html.ion-palette-dark) .mini-games-player__choices--colors button,:host-context([data-theme=\"dark\"]) .mini-games-player__choices--colors button{border-color:rgba(var(--ion-color-light-rgb, 244, 245, 248),.32);background:var(--swatch-color);box-shadow:inset 0 0 0 2px #ffffff38,0 0 0 1px #00000047,0 12px 24px color-mix(in srgb,var(--swatch-color) 34%,transparent)}.mini-games-player__choices--colors button.is-selected,:host-context(html.ion-palette-dark) .mini-games-player__choices--colors button.is-selected,:host-context([data-theme=\"dark\"]) .mini-games-player__choices--colors button.is-selected{border-color:var(--mini-games-accent);background:var(--swatch-color);box-shadow:0 0 0 .1875rem rgba(var(--mini-games-accent-rgb),.26),inset 0 0 0 2px #ffffff47,0 14px 28px color-mix(in srgb,var(--swatch-color) 36%,transparent)}.mini-games-player__add{justify-self:end;display:inline-flex;align-items:center;gap:7px;min-height:42px;border:0;border-radius:999px;padding:0 14px;background:color-mix(in srgb,var(--player-color) 16%,var(--mini-games-panel));color:var(--mini-games-primary);font:inherit;font-size:.92rem;font-weight:900}.mini-games-sound-toggle{display:inline-flex;align-items:center;gap:8px;min-height:42px;padding:0 14px;border:1px solid var(--mini-games-border);border-radius:999px;background:var(--mini-games-panel);color:var(--mini-games-text);font:inherit;font-size:14px;font-weight:850}:host-context(html.ion-palette-dark) .mini-games-sound-toggle,:host-context([data-theme=\"dark\"]) .mini-games-sound-toggle{border-color:var(--mini-games-border);background:var(--mini-games-panel);color:var(--mini-games-text)}.mini-games-sound-toggle ion-icon{color:var(--mini-games-primary)}.mini-games-sound-toggle span{max-width:18ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mini-games-page-head{display:grid;gap:8px;padding:8px 0 4px;text-align:center}.mini-games-page-head h1{margin:0;color:var(--mini-games-text);font-size:clamp(2.5rem,9vw,4rem);line-height:.95;font-weight:950}.mini-games-page-head p{max-width:32.5rem;margin:0 auto;color:var(--mini-games-muted);font-size:clamp(1rem,3vw,1.25rem);line-height:1.35}.mini-game-card{width:100%;display:grid;grid-template-columns:72px 1fr;gap:14px;align-items:center;padding:16px;border:1px solid var(--mini-games-border);border-radius:18px;background:radial-gradient(circle at 20% 10%,rgba(var(--mini-games-primary-rgb),.1),transparent 32%),linear-gradient(135deg,var(--mini-games-panel),var(--mini-games-soft));color:var(--mini-games-text);text-align:left;transition:border-color .16s ease,transform .16s ease,background .16s ease}:host-context(html.ion-palette-dark) .mini-game-card,:host-context([data-theme=\"dark\"]) .mini-game-card{border-color:var(--mini-games-border);background:radial-gradient(circle at 20% 10%,rgba(var(--mini-games-primary-rgb),.14),transparent 32%),linear-gradient(135deg,color-mix(in srgb,var(--mini-games-panel) 92%,white),var(--mini-games-surface));color:var(--mini-games-text)}.mini-game-card:not(:disabled){cursor:pointer}.mini-game-card:not(:disabled):hover{border-color:var(--mini-games-primary);transform:translateY(-1px)}.mini-game-card:disabled{opacity:.55}.mini-game-card__icon{display:grid;place-items:center;width:72px;height:72px;border-radius:20px;background:radial-gradient(circle at 30% 22%,rgba(255,255,255,.35),transparent 32%),linear-gradient(135deg,var(--mini-games-primary),var(--mini-games-secondary));color:var(--mini-games-icon-text);font-size:34px;box-shadow:0 .875rem 2.25rem rgba(var(--mini-games-primary-rgb),.28)}.mini-game-card__icon--image{overflow:hidden;background:#fff}.mini-game-card__icon img{display:block;width:100%;height:100%;border-radius:inherit;object-fit:cover;object-position:center;transform:scale(1.34)}.mini-game-card__content{display:flex;min-width:0;flex-direction:column;gap:4px}.mini-game-card__content strong{font-size:20px;line-height:1.1}.mini-game-card__content small{color:var(--mini-games-muted);font-size:14px;line-height:1.35}.mini-game-card__action{display:inline-flex;align-items:center;gap:6px;padding-top:6px;color:var(--mini-games-primary);font-weight:800}@media (max-width: 420px){.mini-game-card{grid-template-columns:56px 1fr;padding:14px}.mini-game-card__icon{width:56px;height:56px;border-radius:16px;font-size:28px}}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: ModalLayoutComponent, selector: "val-modal-layout", inputs: ["title", "subtitle", "closeLabel", "showClose", "actions", "actionsAlign", "footer", "footerClass"], outputs: ["close", "actionClick"] }] }); }
|
|
181
181
|
}
|
|
182
182
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MiniGamesMenuComponent, decorators: [{
|
|
183
183
|
type: Component,
|
|
@@ -294,7 +294,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
294
294
|
}
|
|
295
295
|
</div>
|
|
296
296
|
</ng-template>
|
|
297
|
-
`, styles: [":host{display:block;--mini-games-panel: #ffffff;--mini-games-surface: #f8f7fb;--mini-games-border: rgba(47, 44, 58, .12);--mini-games-text: #2f2c3a;--mini-games-muted: rgba(47, 44, 58, .68);--mini-games-primary: #6f65d8;--mini-games-primary-rgb: 111, 101, 216;--mini-games-secondary: #67b7c9;--mini-games-secondary-rgb: 103, 183, 201;--mini-games-accent: #8f7ce7;--mini-games-accent-rgb: 143, 124, 231;--mini-games-soft: #f3f1fb;--mini-games-icon-text: #ffffff;--mini-games-focus: rgba(var(--mini-games-primary-rgb), .22);color:var(--mini-games-text)}:host-context(html.ion-palette-dark),:host-context([data-theme=\"dark\"]){--mini-games-panel: #211f2a;--mini-games-surface: #191821;--mini-games-border: rgba(255, 255, 255, .13);--mini-games-text: #f7f4ff;--mini-games-muted: rgba(247, 244, 255, .68);--mini-games-primary: #b7adff;--mini-games-primary-rgb: 183, 173, 255;--mini-games-secondary: #8fd5e5;--mini-games-secondary-rgb: 143, 213, 229;--mini-games-accent: #c7bbff;--mini-games-accent-rgb: 199, 187, 255;--mini-games-soft: #2a2735;--mini-games-icon-text: #211f2a;--mini-games-focus: rgba(var(--mini-games-primary-rgb), .24)}.mini-games-grid{display:grid;gap:.75rem;padding-top:1rem}.mini-games-menu-actions{display:flex;justify-content:flex-end;padding-top:.75rem}.mini-games-player{display:grid;gap:.75rem;margin-top:.75rem;padding:1rem;border:1px solid var(--mini-games-border);border-radius:1.375rem;background:radial-gradient(circle at 12% 0%,color-mix(in srgb,var(--player-color) 12%,transparent),transparent 34%),linear-gradient(135deg,var(--mini-games-panel),var(--mini-games-soft));box-shadow:0 1.125rem 2.75rem #2f2c3a14;color:var(--mini-games-text)}:host-context(html.ion-palette-dark) .mini-games-player,:host-context([data-theme=\"dark\"]) .mini-games-player{border-color:var(--mini-games-border);background:radial-gradient(circle at 12% 0%,color-mix(in srgb,var(--player-color) 14%,transparent),transparent 34%),linear-gradient(135deg,color-mix(in srgb,var(--mini-games-panel) 92%,white),var(--mini-games-surface));box-shadow:none}.mini-games-player__head{display:grid;grid-template-columns:58px 1fr;gap:12px;align-items:center}.mini-games-player__avatar{display:grid;place-items:center;width:58px;height:58px;border-radius:18px;background:var(--player-color);font-size:1.65rem;box-shadow:0 14px 28px color-mix(in srgb,var(--player-color) 32%,transparent)}.mini-games-player__head small,.mini-games-player__name span{display:block;color:var(--mini-games-muted);font-size:.76rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.mini-games-player__head strong{display:block;color:inherit;font-size:1.35rem;line-height:1.05;font-weight:950}.mini-games-player__head p{margin:.1875rem 0 0;color:var(--mini-games-muted);font-size:.92rem;line-height:1.32}.mini-games-player__profiles{display:flex;gap:8px;overflow-x:auto;padding-bottom:2px}.mini-games-player__profiles button{flex:0 0 auto;min-height:42px;display:inline-flex;align-items:center;gap:7px;border:1px solid var(--ion-border-color, #e7e4ea);border-radius:999px;padding:0 12px;background:var(--ion-item-background, transparent);color:inherit;font:inherit;font-size:.9rem;font-weight:850}.mini-games-player__profiles button.is-selected{border-color:var(--player-color);background:color-mix(in srgb,var(--player-color) 16%,var(--ion-card-background, #fff))}.mini-games-player__profiles ion-icon{color:var(--player-color)}.mini-games-player__name{display:grid;gap:6px}.mini-games-player__name input{width:100%;min-height:48px;border:1px solid var(--mini-games-border);border-radius:999px;padding:0 16px;background:color-mix(in srgb,var(--mini-games-panel) 88%,white);color:var(--mini-games-text);caret-color:var(--mini-games-primary);font:inherit;font-weight:850}.mini-games-player__name input::placeholder{color:var(--mini-games-muted);opacity:.84}.mini-games-player__name input:focus-visible,.mini-games-player__profiles button:focus-visible,.mini-games-player__choices button:focus-visible,.mini-games-player__add:focus-visible,.mini-games-sound-toggle:focus-visible,.mini-game-card:focus-visible{outline:.1875rem solid var(--mini-games-focus);outline-offset:.1875rem}:host-context(html.ion-palette-dark) .mini-games-player__name input,:host-context([data-theme=\"dark\"]) .mini-games-player__name input{border-color:var(--mini-games-border);background:color-mix(in srgb,var(--mini-games-panel) 88%,white);color:var(--mini-games-text)}.mini-games-player__choices{display:flex;flex-wrap:wrap;gap:8px}.mini-games-player__choices button{display:grid;place-items:center;width:42px;height:42px;border:1px solid var(--mini-games-border);border-radius:999px;background:var(--mini-games-panel);color:var(--mini-games-text);font-size:1.12rem}:host-context(html.ion-palette-dark) .mini-games-player__choices button,:host-context([data-theme=\"dark\"]) .mini-games-player__choices button,:host-context(html.ion-palette-dark) .mini-games-player__profiles button,:host-context([data-theme=\"dark\"]) .mini-games-player__profiles button{border-color:var(--mini-games-border);background:color-mix(in srgb,var(--mini-games-panel) 88%,white);color:var(--mini-games-text)}.mini-games-player__choices--colors button{position:relative;overflow:hidden;border-color:rgba(var(--ion-color-dark-rgb, 47, 42, 58),.18);background:var(--swatch-color);box-shadow:inset 0 0 0 2px #ffffff3d,0 10px 22px color-mix(in srgb,var(--swatch-color) 24%,transparent)}.mini-games-player__choices--colors button:after{content:\"\";width:13px;height:13px;border-radius:999px;background:#ffffff57;box-shadow:0 0 12px #ffffff38}.mini-games-player__choices button.is-selected{border-color:var(--player-color);box-shadow:0 0 0 3px color-mix(in srgb,var(--player-color) 18%,transparent)}:host-context(html.ion-palette-dark) .mini-games-player__choices button.is-selected,:host-context([data-theme=\"dark\"]) .mini-games-player__choices button.is-selected,:host-context(html.ion-palette-dark) .mini-games-player__profiles button.is-selected,:host-context([data-theme=\"dark\"]) .mini-games-player__profiles button.is-selected{border-color:var(--player-color);background:color-mix(in srgb,var(--player-color) 18%,var(--ion-card-background, #1f1b28))}:host-context(html.ion-palette-dark) .mini-games-player__choices--colors button,:host-context([data-theme=\"dark\"]) .mini-games-player__choices--colors button{border-color:rgba(var(--ion-color-light-rgb, 244, 245, 248),.32);background:var(--swatch-color);box-shadow:inset 0 0 0 2px #ffffff38,0 0 0 1px #00000047,0 12px 24px color-mix(in srgb,var(--swatch-color) 34%,transparent)}.mini-games-player__choices--colors button.is-selected,:host-context(html.ion-palette-dark) .mini-games-player__choices--colors button.is-selected,:host-context([data-theme=\"dark\"]) .mini-games-player__choices--colors button.is-selected{border-color:var(--mini-games-accent);background:var(--swatch-color);box-shadow:0 0 0 .1875rem rgba(var(--mini-games-accent-rgb),.26),inset 0 0 0 2px #ffffff47,0 14px 28px color-mix(in srgb,var(--swatch-color) 36%,transparent)}.mini-games-player__add{justify-self:end;display:inline-flex;align-items:center;gap:7px;min-height:42px;border:0;border-radius:999px;padding:0 14px;background:color-mix(in srgb,var(--player-color) 16%,var(--mini-games-panel));color:var(--mini-games-primary);font:inherit;font-size:.92rem;font-weight:900}.mini-games-sound-toggle{display:inline-flex;align-items:center;gap:8px;min-height:42px;padding:0 14px;border:1px solid var(--mini-games-border);border-radius:999px;background:var(--mini-games-panel);color:var(--mini-games-text);font:inherit;font-size:14px;font-weight:850}:host-context(html.ion-palette-dark) .mini-games-sound-toggle,:host-context([data-theme=\"dark\"]) .mini-games-sound-toggle{border-color:var(--mini-games-border);background:var(--mini-games-panel);color:var(--mini-games-text)}.mini-games-sound-toggle ion-icon{color:var(--mini-games-primary)}.mini-games-sound-toggle span{max-width:18ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mini-games-page-head{display:grid;gap:8px;padding:8px 0 4px;text-align:center}.mini-games-page-head h1{margin:0;color:var(--mini-games-text);font-size:clamp(2.5rem,9vw,4rem);line-height:.95;font-weight:950}.mini-games-page-head p{max-width:32.5rem;margin:0 auto;color:var(--mini-games-muted);font-size:clamp(1rem,3vw,1.25rem);line-height:1.35}.mini-game-card{width:100%;display:grid;grid-template-columns:72px 1fr;gap:14px;align-items:center;padding:16px;border:1px solid var(--mini-games-border);border-radius:18px;background:radial-gradient(circle at 20% 10%,rgba(var(--mini-games-primary-rgb),.1),transparent 32%),linear-gradient(135deg,var(--mini-games-panel),var(--mini-games-soft));color:var(--mini-games-text);text-align:left;transition:border-color .16s ease,transform .16s ease,background .16s ease}:host-context(html.ion-palette-dark) .mini-game-card,:host-context([data-theme=\"dark\"]) .mini-game-card{border-color:var(--mini-games-border);background:radial-gradient(circle at 20% 10%,rgba(var(--mini-games-primary-rgb),.14),transparent 32%),linear-gradient(135deg,color-mix(in srgb,var(--mini-games-panel) 92%,white),var(--mini-games-surface));color:var(--mini-games-text)}.mini-game-card:not(:disabled){cursor:pointer}.mini-game-card:not(:disabled):hover{border-color:var(--mini-games-primary);transform:translateY(-1px)}.mini-game-card:disabled{opacity:.55}.mini-game-card__icon{display:grid;place-items:center;width:72px;height:72px;border-radius:20px;background:radial-gradient(circle at 30% 22%,rgba(255,255,255,.35),transparent 32%),linear-gradient(135deg,var(--mini-games-primary),var(--mini-games-secondary));color:var(--mini-games-icon-text);font-size:34px;box-shadow:0 .875rem 2.25rem rgba(var(--mini-games-primary-rgb),.28)}.mini-game-card__icon--image{overflow:hidden;padding:.35rem;background:#fff}.mini-game-card__icon img{display:block;width:100%;height:100%;border-radius:1rem;object-fit:contain}.mini-game-card__content{display:flex;min-width:0;flex-direction:column;gap:4px}.mini-game-card__content strong{font-size:20px;line-height:1.1}.mini-game-card__content small{color:var(--mini-games-muted);font-size:14px;line-height:1.35}.mini-game-card__action{display:inline-flex;align-items:center;gap:6px;padding-top:6px;color:var(--mini-games-primary);font-weight:800}@media (max-width: 420px){.mini-game-card{grid-template-columns:56px 1fr;padding:14px}.mini-game-card__icon{width:56px;height:56px;border-radius:16px;font-size:28px}}\n"] }]
|
|
297
|
+
`, styles: [":host{display:block;--mini-games-panel: #ffffff;--mini-games-surface: #f8f7fb;--mini-games-border: rgba(47, 44, 58, .12);--mini-games-text: #2f2c3a;--mini-games-muted: rgba(47, 44, 58, .68);--mini-games-primary: #6f65d8;--mini-games-primary-rgb: 111, 101, 216;--mini-games-secondary: #67b7c9;--mini-games-secondary-rgb: 103, 183, 201;--mini-games-accent: #8f7ce7;--mini-games-accent-rgb: 143, 124, 231;--mini-games-soft: #f3f1fb;--mini-games-icon-text: #ffffff;--mini-games-focus: rgba(var(--mini-games-primary-rgb), .22);color:var(--mini-games-text)}:host-context(html.ion-palette-dark),:host-context([data-theme=\"dark\"]){--mini-games-panel: #211f2a;--mini-games-surface: #191821;--mini-games-border: rgba(255, 255, 255, .13);--mini-games-text: #f7f4ff;--mini-games-muted: rgba(247, 244, 255, .68);--mini-games-primary: #b7adff;--mini-games-primary-rgb: 183, 173, 255;--mini-games-secondary: #8fd5e5;--mini-games-secondary-rgb: 143, 213, 229;--mini-games-accent: #c7bbff;--mini-games-accent-rgb: 199, 187, 255;--mini-games-soft: #2a2735;--mini-games-icon-text: #211f2a;--mini-games-focus: rgba(var(--mini-games-primary-rgb), .24)}.mini-games-grid{display:grid;gap:.75rem;padding-top:1rem}.mini-games-menu-actions{display:flex;justify-content:flex-end;padding-top:.75rem}.mini-games-player{display:grid;gap:.75rem;margin-top:.75rem;padding:1rem;border:1px solid var(--mini-games-border);border-radius:1.375rem;background:radial-gradient(circle at 12% 0%,color-mix(in srgb,var(--player-color) 12%,transparent),transparent 34%),linear-gradient(135deg,var(--mini-games-panel),var(--mini-games-soft));box-shadow:0 1.125rem 2.75rem #2f2c3a14;color:var(--mini-games-text)}:host-context(html.ion-palette-dark) .mini-games-player,:host-context([data-theme=\"dark\"]) .mini-games-player{border-color:var(--mini-games-border);background:radial-gradient(circle at 12% 0%,color-mix(in srgb,var(--player-color) 14%,transparent),transparent 34%),linear-gradient(135deg,color-mix(in srgb,var(--mini-games-panel) 92%,white),var(--mini-games-surface));box-shadow:none}.mini-games-player__head{display:grid;grid-template-columns:58px 1fr;gap:12px;align-items:center}.mini-games-player__avatar{display:grid;place-items:center;width:58px;height:58px;border-radius:18px;background:var(--player-color);font-size:1.65rem;box-shadow:0 14px 28px color-mix(in srgb,var(--player-color) 32%,transparent)}.mini-games-player__head small,.mini-games-player__name span{display:block;color:var(--mini-games-muted);font-size:.76rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.mini-games-player__head strong{display:block;color:inherit;font-size:1.35rem;line-height:1.05;font-weight:950}.mini-games-player__head p{margin:.1875rem 0 0;color:var(--mini-games-muted);font-size:.92rem;line-height:1.32}.mini-games-player__profiles{display:flex;gap:8px;overflow-x:auto;padding-bottom:2px}.mini-games-player__profiles button{flex:0 0 auto;min-height:42px;display:inline-flex;align-items:center;gap:7px;border:1px solid var(--ion-border-color, #e7e4ea);border-radius:999px;padding:0 12px;background:var(--ion-item-background, transparent);color:inherit;font:inherit;font-size:.9rem;font-weight:850}.mini-games-player__profiles button.is-selected{border-color:var(--player-color);background:color-mix(in srgb,var(--player-color) 16%,var(--ion-card-background, #fff))}.mini-games-player__profiles ion-icon{color:var(--player-color)}.mini-games-player__name{display:grid;gap:6px}.mini-games-player__name input{width:100%;min-height:48px;border:1px solid var(--mini-games-border);border-radius:999px;padding:0 16px;background:color-mix(in srgb,var(--mini-games-panel) 88%,white);color:var(--mini-games-text);caret-color:var(--mini-games-primary);font:inherit;font-weight:850}.mini-games-player__name input::placeholder{color:var(--mini-games-muted);opacity:.84}.mini-games-player__name input:focus-visible,.mini-games-player__profiles button:focus-visible,.mini-games-player__choices button:focus-visible,.mini-games-player__add:focus-visible,.mini-games-sound-toggle:focus-visible,.mini-game-card:focus-visible{outline:.1875rem solid var(--mini-games-focus);outline-offset:.1875rem}:host-context(html.ion-palette-dark) .mini-games-player__name input,:host-context([data-theme=\"dark\"]) .mini-games-player__name input{border-color:var(--mini-games-border);background:color-mix(in srgb,var(--mini-games-panel) 88%,white);color:var(--mini-games-text)}.mini-games-player__choices{display:flex;flex-wrap:wrap;gap:8px}.mini-games-player__choices button{display:grid;place-items:center;width:42px;height:42px;border:1px solid var(--mini-games-border);border-radius:999px;background:var(--mini-games-panel);color:var(--mini-games-text);font-size:1.12rem}:host-context(html.ion-palette-dark) .mini-games-player__choices button,:host-context([data-theme=\"dark\"]) .mini-games-player__choices button,:host-context(html.ion-palette-dark) .mini-games-player__profiles button,:host-context([data-theme=\"dark\"]) .mini-games-player__profiles button{border-color:var(--mini-games-border);background:color-mix(in srgb,var(--mini-games-panel) 88%,white);color:var(--mini-games-text)}.mini-games-player__choices--colors button{position:relative;overflow:hidden;border-color:rgba(var(--ion-color-dark-rgb, 47, 42, 58),.18);background:var(--swatch-color);box-shadow:inset 0 0 0 2px #ffffff3d,0 10px 22px color-mix(in srgb,var(--swatch-color) 24%,transparent)}.mini-games-player__choices--colors button:after{content:\"\";width:13px;height:13px;border-radius:999px;background:#ffffff57;box-shadow:0 0 12px #ffffff38}.mini-games-player__choices button.is-selected{border-color:var(--player-color);box-shadow:0 0 0 3px color-mix(in srgb,var(--player-color) 18%,transparent)}:host-context(html.ion-palette-dark) .mini-games-player__choices button.is-selected,:host-context([data-theme=\"dark\"]) .mini-games-player__choices button.is-selected,:host-context(html.ion-palette-dark) .mini-games-player__profiles button.is-selected,:host-context([data-theme=\"dark\"]) .mini-games-player__profiles button.is-selected{border-color:var(--player-color);background:color-mix(in srgb,var(--player-color) 18%,var(--ion-card-background, #1f1b28))}:host-context(html.ion-palette-dark) .mini-games-player__choices--colors button,:host-context([data-theme=\"dark\"]) .mini-games-player__choices--colors button{border-color:rgba(var(--ion-color-light-rgb, 244, 245, 248),.32);background:var(--swatch-color);box-shadow:inset 0 0 0 2px #ffffff38,0 0 0 1px #00000047,0 12px 24px color-mix(in srgb,var(--swatch-color) 34%,transparent)}.mini-games-player__choices--colors button.is-selected,:host-context(html.ion-palette-dark) .mini-games-player__choices--colors button.is-selected,:host-context([data-theme=\"dark\"]) .mini-games-player__choices--colors button.is-selected{border-color:var(--mini-games-accent);background:var(--swatch-color);box-shadow:0 0 0 .1875rem rgba(var(--mini-games-accent-rgb),.26),inset 0 0 0 2px #ffffff47,0 14px 28px color-mix(in srgb,var(--swatch-color) 36%,transparent)}.mini-games-player__add{justify-self:end;display:inline-flex;align-items:center;gap:7px;min-height:42px;border:0;border-radius:999px;padding:0 14px;background:color-mix(in srgb,var(--player-color) 16%,var(--mini-games-panel));color:var(--mini-games-primary);font:inherit;font-size:.92rem;font-weight:900}.mini-games-sound-toggle{display:inline-flex;align-items:center;gap:8px;min-height:42px;padding:0 14px;border:1px solid var(--mini-games-border);border-radius:999px;background:var(--mini-games-panel);color:var(--mini-games-text);font:inherit;font-size:14px;font-weight:850}:host-context(html.ion-palette-dark) .mini-games-sound-toggle,:host-context([data-theme=\"dark\"]) .mini-games-sound-toggle{border-color:var(--mini-games-border);background:var(--mini-games-panel);color:var(--mini-games-text)}.mini-games-sound-toggle ion-icon{color:var(--mini-games-primary)}.mini-games-sound-toggle span{max-width:18ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mini-games-page-head{display:grid;gap:8px;padding:8px 0 4px;text-align:center}.mini-games-page-head h1{margin:0;color:var(--mini-games-text);font-size:clamp(2.5rem,9vw,4rem);line-height:.95;font-weight:950}.mini-games-page-head p{max-width:32.5rem;margin:0 auto;color:var(--mini-games-muted);font-size:clamp(1rem,3vw,1.25rem);line-height:1.35}.mini-game-card{width:100%;display:grid;grid-template-columns:72px 1fr;gap:14px;align-items:center;padding:16px;border:1px solid var(--mini-games-border);border-radius:18px;background:radial-gradient(circle at 20% 10%,rgba(var(--mini-games-primary-rgb),.1),transparent 32%),linear-gradient(135deg,var(--mini-games-panel),var(--mini-games-soft));color:var(--mini-games-text);text-align:left;transition:border-color .16s ease,transform .16s ease,background .16s ease}:host-context(html.ion-palette-dark) .mini-game-card,:host-context([data-theme=\"dark\"]) .mini-game-card{border-color:var(--mini-games-border);background:radial-gradient(circle at 20% 10%,rgba(var(--mini-games-primary-rgb),.14),transparent 32%),linear-gradient(135deg,color-mix(in srgb,var(--mini-games-panel) 92%,white),var(--mini-games-surface));color:var(--mini-games-text)}.mini-game-card:not(:disabled){cursor:pointer}.mini-game-card:not(:disabled):hover{border-color:var(--mini-games-primary);transform:translateY(-1px)}.mini-game-card:disabled{opacity:.55}.mini-game-card__icon{display:grid;place-items:center;width:72px;height:72px;border-radius:20px;background:radial-gradient(circle at 30% 22%,rgba(255,255,255,.35),transparent 32%),linear-gradient(135deg,var(--mini-games-primary),var(--mini-games-secondary));color:var(--mini-games-icon-text);font-size:34px;box-shadow:0 .875rem 2.25rem rgba(var(--mini-games-primary-rgb),.28)}.mini-game-card__icon--image{overflow:hidden;background:#fff}.mini-game-card__icon img{display:block;width:100%;height:100%;border-radius:inherit;object-fit:cover;object-position:center;transform:scale(1.34)}.mini-game-card__content{display:flex;min-width:0;flex-direction:column;gap:4px}.mini-game-card__content strong{font-size:20px;line-height:1.1}.mini-game-card__content small{color:var(--mini-games-muted);font-size:14px;line-height:1.35}.mini-game-card__action{display:inline-flex;align-items:center;gap:6px;padding-top:6px;color:var(--mini-games-primary);font-weight:800}@media (max-width: 420px){.mini-game-card{grid-template-columns:56px 1fr;padding:14px}.mini-game-card__icon{width:56px;height:56px;border-radius:16px;font-size:28px}}\n"] }]
|
|
298
298
|
}], ctorParameters: () => [], propDecorators: { games: [{
|
|
299
299
|
type: Input
|
|
300
300
|
}], asModal: [{
|
|
@@ -302,4 +302,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
302
302
|
}], selected: [{
|
|
303
303
|
type: Output
|
|
304
304
|
}] } });
|
|
305
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWluaS1nYW1lcy1tZW51LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvbWluaS1nYW1lcy9taW5pLWdhbWVzLW1lbnUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3BDLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsc0JBQXNCLEVBQ3RCLHFCQUFxQixFQUNyQixlQUFlLEVBQ2YsaUJBQWlCLEVBQ2pCLGlCQUFpQixHQUNsQixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQzNGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQ0wsd0JBQXdCLEVBQ3hCLHVCQUF1QixFQUN2Qiw0QkFBNEIsR0FDN0IsTUFBTSxvQ0FBb0MsQ0FBQztBQUM1QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7O0FBRzFELFFBQVEsQ0FBQztJQUNQLGdCQUFnQjtJQUNoQixzQkFBc0I7SUFDdEIscUJBQXFCO0lBQ3JCLGVBQWU7SUFDZixpQkFBaUI7SUFDakIsaUJBQWlCO0NBQ2xCLENBQUMsQ0FBQztBQThqQkgsTUFBTSxPQUFPLHNCQUFzQjtJQVlqQztRQVhp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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpSFQsbXpVQWxIUyxnQkFBZ0Isb0pBQUUsT0FBTywySkFBRSxvQkFBb0I7OzRGQXlqQjlDLHNCQUFzQjtrQkE1akJsQyxTQUFTOytCQUNFLHFCQUFxQixjQUNuQixJQUFJLFdBQ1AsQ0FBQyxnQkFBZ0IsRUFBRSxPQUFPLEVBQUUsb0JBQW9CLENBQUMsWUFDaEQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUhUO3dEQThjUSxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNhLFFBQVE7c0JBQTFCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95LCBPdXRwdXQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSW9uSWNvbiB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuaW1wb3J0IHsgYWRkSWNvbnMgfSBmcm9tICdpb25pY29ucyc7XG5pbXBvcnQge1xuICBhZGRDaXJjbGVPdXRsaW5lLFxuICBjaGVja21hcmtDaXJjbGVPdXRsaW5lLFxuICBnYW1lQ29udHJvbGxlck91dGxpbmUsXG4gIHNwYXJrbGVzT3V0bGluZSxcbiAgdm9sdW1lSGlnaE91dGxpbmUsXG4gIHZvbHVtZU11dGVPdXRsaW5lLFxufSBmcm9tICdpb25pY29ucy9pY29ucyc7XG5cbmltcG9ydCB7IE1vZGFsTGF5b3V0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL21vZGFsLWxheW91dC9tb2RhbC1sYXlvdXQuY29tcG9uZW50JztcbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaTE4bic7XG5pbXBvcnQge1xuICBNSU5JX0dBTUVfUExBWUVSX0FWQVRBUlMsXG4gIE1JTklfR0FNRV9QTEFZRVJfQ09MT1JTLFxuICBNaW5pR2FtZVBsYXllclByb2ZpbGVTZXJ2aWNlLFxufSBmcm9tICcuL21pbmktZ2FtZS1wbGF5ZXItcHJvZmlsZS5zZXJ2aWNlJztcbmltcG9ydCB7IE1JTklfR0FNRVNfSTE4TiB9IGZyb20gJy4vbWluaS1nYW1lcy5pMThuJztcbmltcG9ydCB7IFJldHJvQXVkaW9TZXJ2aWNlIH0gZnJvbSAnLi9yZXRyby1hdWRpby5zZXJ2aWNlJztcbmltcG9ydCB7IE1pbmlHYW1lRGVmaW5pdGlvbiwgTWluaUdhbWVQbGF5ZXJQcm9maWxlIH0gZnJvbSAnLi90eXBlcyc7XG5cbmFkZEljb25zKHtcbiAgYWRkQ2lyY2xlT3V0bGluZSxcbiAgY2hlY2ttYXJrQ2lyY2xlT3V0bGluZSxcbiAgZ2FtZUNvbnRyb2xsZXJPdXRsaW5lLFxuICBzcGFya2xlc091dGxpbmUsXG4gIHZvbHVtZUhpZ2hPdXRsaW5lLFxuICB2b2x1bWVNdXRlT3V0bGluZSxcbn0pO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtbWluaS1nYW1lcy1tZW51JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW05nVGVtcGxhdGVPdXRsZXQsIElvbkljb24sIE1vZGFsTGF5b3V0Q29tcG9uZW50XSxcbiAgdGVtcGxhdGU6IGBcbiAgICBAaWYgKGFzTW9kYWwpIHtcbiAgICAgIDx2YWwtbW9kYWwtbGF5b3V0IFt0aXRsZV09XCJ0KCdtZW51VGl0bGUnKVwiIFtzdWJ0aXRsZV09XCJ0KCdtZW51U3VidGl0bGUnKVwiIChjbG9zZSk9XCJkaXNtaXNzKClcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJtZW51Q29udGVudFwiIC8+XG4gICAgICA8L3ZhbC1tb2RhbC1sYXlvdXQ+XG4gICAgfSBAZWxzZSB7XG4gICAgICA8c2VjdGlvbiBjbGFzcz1cIm1pbmktZ2FtZXMtcGFnZS1oZWFkXCI+XG4gICAgICAgIDxoMT57eyB0KCdtZW51VGl0bGUnKSB9fTwvaDE+XG4gICAgICAgIDxwPnt7IHQoJ21lbnVTdWJ0aXRsZScpIH19PC9wPlxuICAgICAgPC9zZWN0aW9uPlxuICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJtZW51Q29udGVudFwiIC8+XG4gICAgfVxuXG4gICAgPG5nLXRlbXBsYXRlICNtZW51Q29udGVudD5cbiAgICAgIEBpZiAocGxheWVyUHJvZmlsZXMuYWN0aXZlUHJvZmlsZSgpOyBhcyBhY3RpdmVQbGF5ZXIpIHtcbiAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJtaW5pLWdhbWVzLXBsYXllclwiIFtzdHlsZS4tLXBsYXllci1jb2xvcl09XCJhY3RpdmVQbGF5ZXIuY29sb3JcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWluaS1nYW1lcy1wbGF5ZXJfX2hlYWRcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWluaS1nYW1lcy1wbGF5ZXJfX2F2YXRhclwiPnt7IGFjdGl2ZVBsYXllci5hdmF0YXIgfX08L3NwYW4+XG4gICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICA8c21hbGw+e3sgdCgncGxheWVyVGl0bGUnKSB9fTwvc21hbGw+XG4gICAgICAgICAgICAgIDxzdHJvbmc+e3sgZGlzcGxheVBsYXllck5hbWUoYWN0aXZlUGxheWVyKSB9fTwvc3Ryb25nPlxuICAgICAgICAgICAgICA8cD57eyB0KCdhcmNhZGVQbGF5ZXJTdWJ0aXRsZScpIH19PC9wPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICBAaWYgKHBsYXllclByb2ZpbGVzLnByb2ZpbGVzKCkubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1pbmktZ2FtZXMtcGxheWVyX19wcm9maWxlc1wiIFthdHRyLmFyaWEtbGFiZWxdPVwidCgnc2VsZWN0UGxheWVyJylcIj5cbiAgICAgICAgICAgICAgQGZvciAocHJvZmlsZSBvZiBwbGF5ZXJQcm9maWxlcy5wcm9maWxlcygpOyB0cmFjayBwcm9maWxlLmlkKSB7XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICBbY2xhc3MuaXMtc2VsZWN0ZWRdPVwicHJvZmlsZS5pZCA9PT0gYWN0aXZlUGxheWVyLmlkXCJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJwbGF5ZXJQcm9maWxlcy5zZWxlY3RQcm9maWxlKHByb2ZpbGUuaWQpXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8c3Bhbj57eyBwcm9maWxlLmF2YXRhciB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDxzdHJvbmc+e3sgZGlzcGxheVBsYXllck5hbWUocHJvZmlsZSkgfX08L3N0cm9uZz5cbiAgICAgICAgICAgICAgICAgIEBpZiAocHJvZmlsZS5pZCA9PT0gYWN0aXZlUGxheWVyLmlkKSB7XG4gICAgICAgICAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwiY2hlY2ttYXJrLWNpcmNsZS1vdXRsaW5lXCIgLz5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwibWluaS1nYW1lcy1wbGF5ZXJfX25hbWVcIj5cbiAgICAgICAgICAgIDxzcGFuPnt7IHQoJ3BsYXllck5hbWUnKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgIG1heGxlbmd0aD1cIjE0XCJcbiAgICAgICAgICAgICAgW3ZhbHVlXT1cImFjdGl2ZVBsYXllci5uYW1lXCJcbiAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInQoJ3BsYXllck5hbWVQbGFjZWhvbGRlcicpXCJcbiAgICAgICAgICAgICAgKGlucHV0KT1cInVwZGF0ZVBsYXllck5hbWUoJGV2ZW50KVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvbGFiZWw+XG5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWluaS1nYW1lcy1wbGF5ZXJfX2Nob2ljZXNcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInQoJ2F2YXRhclRpdGxlJylcIj5cbiAgICAgICAgICAgIEBmb3IgKGF2YXRhciBvZiBhdmF0YXJzOyB0cmFjayBhdmF0YXIpIHtcbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5pcy1zZWxlY3RlZF09XCJhY3RpdmVQbGF5ZXIuYXZhdGFyID09PSBhdmF0YXJcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJwbGF5ZXJQcm9maWxlcy51cGRhdGVBY3RpdmVQcm9maWxlKHsgYXZhdGFyIH0pXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7IGF2YXRhciB9fVxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtaW5pLWdhbWVzLXBsYXllcl9fY2hvaWNlcyBtaW5pLWdhbWVzLXBsYXllcl9fY2hvaWNlcy0tY29sb3JzXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJ0KCdjb2xvclRpdGxlJylcIj5cbiAgICAgICAgICAgIEBmb3IgKGNvbG9yIG9mIGNvbG9yczsgdHJhY2sgY29sb3IpIHtcbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIFtzdHlsZS4tLXN3YXRjaC1jb2xvcl09XCJjb2xvclwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLmlzLXNlbGVjdGVkXT1cImFjdGl2ZVBsYXllci5jb2xvciA9PT0gY29sb3JcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJwbGF5ZXJQcm9maWxlcy51cGRhdGVBY3RpdmVQcm9maWxlKHsgY29sb3IgfSlcIlxuICAgICAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwibWluaS1nYW1lcy1wbGF5ZXJfX2FkZFwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwiY3JlYXRlUHJvZmlsZSgpXCI+XG4gICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cImFkZC1jaXJjbGUtb3V0bGluZVwiIC8+XG4gICAgICAgICAgICB7eyB0KCduZXdQbGF5ZXInKSB9fVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L3NlY3Rpb24+XG4gICAgICB9XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJtaW5pLWdhbWVzLW1lbnUtYWN0aW9uc1wiPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwibWluaS1nYW1lcy1zb3VuZC10b2dnbGVcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cInRvZ2dsZVNvdW5kKClcIj5cbiAgICAgICAgICA8aW9uLWljb24gW25hbWVdPVwiYXVkaW8uZW5hYmxlZCgpID8gJ3ZvbHVtZS1oaWdoLW91dGxpbmUnIDogJ3ZvbHVtZS1tdXRlLW91dGxpbmUnXCIgLz5cbiAgICAgICAgICA8c3Bhbj57eyB0KGF1ZGlvLmVuYWJsZWQoKSA/ICdzb3VuZE9uJyA6ICdzb3VuZE9mZicpIH19PC9zcGFuPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwibWluaS1nYW1lcy1ncmlkXCI+XG4gICAgICAgIEBmb3IgKGdhbWUgb2Ygc2FmZUdhbWVzOyB0cmFjayBnYW1lLmlkIHx8ICRpbmRleCkge1xuICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJtaW5pLWdhbWUtY2FyZFwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwic2VsZWN0KGdhbWUpXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1pbmktZ2FtZS1jYXJkX19pY29uXCIgW2NsYXNzLm1pbmktZ2FtZS1jYXJkX19pY29uLS1pbWFnZV09XCIhIWdhbWUuaW1hZ2VTcmNcIj5cbiAgICAgICAgICAgICAgQGlmIChnYW1lLmltYWdlU3JjKSB7XG4gICAgICAgICAgICAgICAgPGltZyBbc3JjXT1cImdhbWUuaW1hZ2VTcmNcIiBbYWx0XT1cImdhbWUudGl0bGVcIiBsb2FkaW5nPVwibGF6eVwiIC8+XG4gICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgIHt7IGdhbWUuaWNvbiB9fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1pbmktZ2FtZS1jYXJkX19jb250ZW50XCI+XG4gICAgICAgICAgICAgIDxzdHJvbmc+e3sgZ2FtZS50aXRsZSB9fTwvc3Ryb25nPlxuICAgICAgICAgICAgICA8c21hbGw+e3sgZ2FtZS5kZXNjcmlwdGlvbiB9fTwvc21hbGw+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWluaS1nYW1lLWNhcmRfX2FjdGlvblwiPlxuICAgICAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwiZ2FtZS1jb250cm9sbGVyLW91dGxpbmVcIiAvPlxuICAgICAgICAgICAgICAgIHt7IHQoJ29wZW5HYW1lJykgfX1cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICBgLFxuICBzdHlsZXM6IFtcbiAgICBgXG4gICAgICA6aG9zdCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAtLW1pbmktZ2FtZXMtcGFuZWw6ICNmZmZmZmY7XG4gICAgICAgIC0tbWluaS1nYW1lcy1zdXJmYWNlOiAjZjhmN2ZiO1xuICAgICAgICAtLW1pbmktZ2FtZXMtYm9yZGVyOiByZ2JhKDQ3LCA0NCwgNTgsIDAuMTIpO1xuICAgICAgICAtLW1pbmktZ2FtZXMtdGV4dDogIzJmMmMzYTtcbiAgICAgICAgLS1taW5pLWdhbWVzLW11dGVkOiByZ2JhKDQ3LCA0NCwgNTgsIDAuNjgpO1xuICAgICAgICAtLW1pbmktZ2FtZXMtcHJpbWFyeTogIzZmNjVkODtcbiAgICAgICAgLS1taW5pLWdhbWVzLXByaW1hcnktcmdiOiAxMTEsIDEwMSwgMjE2O1xuICAgICAgICAtLW1pbmktZ2FtZXMtc2Vjb25kYXJ5OiAjNjdiN2M5O1xuICAgICAgICAtLW1pbmktZ2FtZXMtc2Vjb25kYXJ5LXJnYjogMTAzLCAxODMsIDIwMTtcbiAgICAgICAgLS1taW5pLWdhbWVzLWFjY2VudDogIzhmN2NlNztcbiAgICAgICAgLS1taW5pLWdhbWVzLWFjY2VudC1yZ2I6IDE0MywgMTI0LCAyMzE7XG4gICAgICAgIC0tbWluaS1nYW1lcy1zb2Z0OiAjZjNmMWZiO1xuICAgICAgICAtLW1pbmktZ2FtZXMtaWNvbi10ZXh0OiAjZmZmZmZmO1xuICAgICAgICAtLW1pbmktZ2FtZXMtZm9jdXM6IHJnYmEodmFyKC0tbWluaS1nYW1lcy1wcmltYXJ5LXJnYiksIDAuMjIpO1xuICAgICAgICBjb2xvcjogdmFyKC0tbWluaS1nYW1lcy10ZXh0KTtcbiAgICAgIH1cblxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSB7XG4gICAgICAgIC0tbWluaS1nYW1lcy1wYW5lbDogIzIxMWYyYTtcbiAgICAgICAgLS1taW5pLWdhbWVzLXN1cmZhY2U6ICMxOTE4MjE7XG4gICAgICAgIC0tbWluaS1nYW1lcy1ib3JkZXI6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMyk7XG4gICAgICAgIC0tbWluaS1nYW1lcy10ZXh0OiAjZjdmNGZmO1xuICAgICAgICAtLW1pbmktZ2FtZXMtbXV0ZWQ6IHJnYmEoMjQ3LCAyNDQsIDI1NSwgMC42OCk7XG4gICAgICAgIC0tbWluaS1nYW1lcy1wcmltYXJ5OiAjYjdhZGZmO1xuICAgICAgICAtLW1pbmktZ2FtZXMtcHJpbWFyeS1yZ2I6IDE4MywgMTczLCAyNTU7XG4gICAgICAgIC0tbWluaS1nYW1lcy1zZWNvbmRhcnk6ICM4ZmQ1ZTU7XG4gICAgICAgIC0tbWluaS1nYW1lcy1zZWNvbmRhcnktcmdiOiAxNDMsIDIxMywgMjI5O1xuICAgICAgICAtLW1pbmktZ2FtZXMtYWNjZW50OiAjYzdiYmZmO1xuICAgICAgICAtLW1pbmktZ2FtZXMtYWNjZW50LXJnYjogMTk5LCAxODcsIDI1NTtcbiAgICAgICAgLS1taW5pLWdhbWVzLXNvZnQ6ICMyYTI3MzU7XG4gICAgICAgIC0tbWluaS1nYW1lcy1pY29uLXRleHQ6ICMyMTFmMmE7XG4gICAgICAgIC0tbWluaS1nYW1lcy1mb2N1czogcmdiYSh2YXIoLS1taW5pLWdhbWVzLXByaW1hcnktcmdiKSwgMC4yNCk7XG4gICAgICB9XG5cbiAgICAgIC5taW5pLWdhbWVzLWdyaWQge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBnYXA6IDAuNzVyZW07XG4gICAgICAgIHBhZGRpbmctdG9wOiAxcmVtO1xuICAgICAgfVxuXG4gICAgICAubWluaS1nYW1lcy1tZW51LWFjdGlvbnMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICBwYWRkaW5nLXRvcDogMC43NXJlbTtcbiAgICAgIH1cblxuICAgICAgLm1pbmktZ2FtZXMtcGxheWVyIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ2FwOiAwLjc1cmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAwLjc1cmVtO1xuICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1taW5pLWdhbWVzLWJvcmRlcik7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEuMzc1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOlxuICAgICAgICAgIHJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgMTIlIDAlLCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tcGxheWVyLWNvbG9yKSAxMiUsIHRyYW5zcGFyZW50KSwgdHJhbnNwYXJlbnQgMzQlKSxcbiAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1taW5pLWdhbWVzLXBhbmVsKSwgdmFyKC0tbWluaS1nYW1lcy1zb2Z0KSk7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMS4xMjVyZW0gMi43NXJlbSByZ2JhKDQ3LCA0NCwgNTgsIDAuMDgpO1xuICAgICAgICBjb2xvcjogdmFyKC0tbWluaS1nYW1lcy10ZXh0KTtcbiAgICAgIH1cblxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5taW5pLWdhbWVzLXBsYXllcixcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLm1pbmktZ2FtZXMtcGxheWVyIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1taW5pLWdhbWVzLWJvcmRlcik7XG4gICAgICAgIGJhY2tncm91bmQ6XG4gICAgICAgICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCAxMiUgMCUsIGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1wbGF5ZXItY29sb3IpIDE0JSwgdHJhbnNwYXJlbnQpLCB0cmFuc3BhcmVudCAzNCUpLFxuICAgICAgICAgIGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1taW5pLWdhbWVzLXBhbmVsKSA5MiUsIHdoaXRlKSwgdmFyKC0tbWluaS1nYW1lcy1zdXJmYWNlKSk7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICB9XG5cbiAgICAgIC5taW5pLWdhbWVzLXBsYXllcl9faGVhZCB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogNThweCAxZnI7XG4gICAgICAgIGdhcDogMTJweDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIH1cblxuICAgICAgLm1pbmktZ2FtZXMtcGxheWVyX19hdmF0YXIge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBwbGFjZS1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogNThweDtcbiAgICAgICAgaGVpZ2h0OiA1OHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxOHB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wbGF5ZXItY29sb3IpO1xuICAgICAgICBmb250LXNpemU6IDEuNjVyZW07XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMTRweCAyOHB4IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1wbGF5ZXItY29sb3IpIDMyJSwgdHJhbnNwYXJlbnQpO1xuICAgICAgfVxuXG4gICAgICAubWluaS1nYW1lcy1wbGF5ZXJfX2hlYWQgc21hbGwsXG4gICAgICAubWluaS1nYW1lcy1wbGF5ZXJfX25hbWUgc3BhbiB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBjb2xvcjogdmFyKC0tbWluaS1nYW1lcy1tdXRlZCk7XG4gICAgICAgIGZvbnQtc2l6ZTogMC43NnJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDhlbTtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIH1cblxuICAgICAgLm1pbmktZ2FtZXMtcGxheWVyX19oZWFkIHN0cm9uZyB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgICAgZm9udC1zaXplOiAxLjM1cmVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4wNTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDk1MDtcbiAgICAgIH1cblxuICAgICAgLm1pbmktZ2FtZXMtcGxheWVyX19oZWFkIHAge1xuICAgICAgICBtYXJnaW46IDAuMTg3NXJlbSAwIDA7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1taW5pLWdhbWVzLW11dGVkKTtcbiAgICAgICAgZm9udC1zaXplOiAwLjkycmVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4zMjtcbiAgICAgIH1cblxuICAgICAgLm1pbmktZ2FtZXMtcGxheWVyX19wcm9maWxlcyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGdhcDogOHB4O1xuICAgICAgICBvdmVyZmxvdy14OiBhdXRvO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMnB4O1xuICAgICAgfVxuXG4gICAgICAubWluaS1nYW1lcy1wbGF5ZXJfX3Byb2ZpbGVzIGJ1dHRvbiB7XG4gICAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgICBtaW4taGVpZ2h0OiA0MnB4O1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiA3cHg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWlvbi1ib3JkZXItY29sb3IsICNlN2U0ZWEpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICAgICAgcGFkZGluZzogMCAxMnB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1pb24taXRlbS1iYWNrZ3JvdW5kLCB0cmFuc3BhcmVudCk7XG4gICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgICBmb250OiBpbmhlcml0O1xuICAgICAgICBmb250LXNpemU6IDAuOXJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDg1MDtcbiAgICAgIH1cblxuICAgICAgLm1pbmktZ2FtZXMtcGxheWVyX19wcm9maWxlcyBidXR0b24uaXMtc2VsZWN0ZWQge1xuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXBsYXllci1jb2xvcik7XG4gICAgICAgIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1wbGF5ZXItY29sb3IpIDE2JSwgdmFyKC0taW9uLWNhcmQtYmFja2dyb3VuZCwgI2ZmZikpO1xuICAgICAgfVxuXG4gICAgICAubWluaS1nYW1lcy1wbGF5ZXJfX3Byb2ZpbGVzIGlvbi1pY29uIHtcbiAgICAgICAgY29sb3I6IHZhcigtLXBsYXllci1jb2xvcik7XG4gICAgICB9XG5cbiAgICAgIC5taW5pLWdhbWVzLXBsYXllcl9fbmFtZSB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdhcDogNnB4O1xuICAgICAgfVxuXG4gICAgICAubWluaS1nYW1lcy1wbGF5ZXJfX25hbWUgaW5wdXQge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWluLWhlaWdodDogNDhweDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbWluaS1nYW1lcy1ib3JkZXIpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICAgICAgcGFkZGluZzogMCAxNnB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWluaS1nYW1lcy1wYW5lbCkgODglLCB3aGl0ZSk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1taW5pLWdhbWVzLXRleHQpO1xuICAgICAgICBjYXJldC1jb2xvcjogdmFyKC0tbWluaS1nYW1lcy1wcmltYXJ5KTtcbiAgICAgICAgZm9udDogaW5oZXJpdDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDg1MDtcbiAgICAgIH1cblxuICAgICAgLm1pbmktZ2FtZXMtcGxheWVyX19uYW1lIGlucHV0OjpwbGFjZWhvbGRlciB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1taW5pLWdhbWVzLW11dGVkKTtcbiAgICAgICAgb3BhY2l0eTogMC44NDtcbiAgICAgIH1cblxuICAgICAgLm1pbmktZ2FtZXMtcGxheWVyX19uYW1lIGlucHV0OmZvY3VzLXZpc2libGUsXG4gICAgICAubWluaS1nYW1lcy1wbGF5ZXJfX3Byb2ZpbGVzIGJ1dHRvbjpmb2N1cy12aXNpYmxlLFxuICAgICAgLm1pbmktZ2FtZXMtcGxheWVyX19jaG9pY2VzIGJ1dHRvbjpmb2N1cy12aXNpYmxlLFxuICAgICAgLm1pbmktZ2FtZXMtcGxheWVyX19hZGQ6Zm9jdXMtdmlzaWJsZSxcbiAgICAgIC5taW5pLWdhbWVzLXNvdW5kLXRvZ2dsZTpmb2N1cy12aXNpYmxlLFxuICAgICAgLm1pbmktZ2FtZS1jYXJkOmZvY3VzLXZpc2libGUge1xuICAgICAgICBvdXRsaW5lOiAwLjE4NzVyZW0gc29saWQgdmFyKC0tbWluaS1nYW1lcy1mb2N1cyk7XG4gICAgICAgIG91dGxpbmUtb2Zmc2V0OiAwLjE4NzVyZW07XG4gICAgICB9XG5cbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAubWluaS1nYW1lcy1wbGF5ZXJfX25hbWUgaW5wdXQsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5taW5pLWdhbWVzLXBsYXllcl9fbmFtZSBpbnB1dCB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tbWluaS1nYW1lcy1ib3JkZXIpO1xuICAgICAgICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWluaS1nYW1lcy1wYW5lbCkgODglLCB3aGl0ZSk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1taW5pLWdhbWVzLXRleHQpO1xuICAgICAgfVxuXG4gICAgICAubWluaS1nYW1lcy1wbGF5ZXJfX2Nob2ljZXMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIGdhcDogOHB4O1xuICAgICAgfVxuXG4gICAgICAubWluaS1nYW1lcy1wbGF5ZXJfX2Nob2ljZXMgYnV0dG9uIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6IDQycHg7XG4gICAgICAgIGhlaWdodDogNDJweDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbWluaS1nYW1lcy1ib3JkZXIpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tbWluaS1nYW1lcy1wYW5lbCk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1taW5pLWdhbWVzLXRleHQpO1xuICAgICAgICBmb250LXNpemU6IDEuMTJyZW07XG4gICAgICB9XG5cbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAubWluaS1nYW1lcy1wbGF5ZXJfX2Nob2ljZXMgYnV0dG9uLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAubWluaS1nYW1lcy1wbGF5ZXJfX2Nob2ljZXMgYnV0dG9uLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5taW5pLWdhbWVzLXBsYXllcl9fcHJvZmlsZXMgYnV0dG9uLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAubWluaS1nYW1lcy1wbGF5ZXJfX3Byb2ZpbGVzIGJ1dHRvbiB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tbWluaS1nYW1lcy1ib3JkZXIpO1xuICAgICAgICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWluaS1nYW1lcy1wYW5lbCkgODglLCB3aGl0ZSk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1taW5pLWdhbWVzLXRleHQpO1xuICAgICAgfVxuXG4gICAgICAubWluaS1nYW1lcy1wbGF5ZXJfX2Nob2ljZXMtLWNvbG9ycyBidXR0b24ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSh2YXIoLS1pb24tY29sb3ItZGFyay1yZ2IsIDQ3LCA0MiwgNTgpLCAwLjE4KTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tc3dhdGNoLWNvbG9yKTtcbiAgICAgICAgYm94LXNoYWRvdzpcbiAgICAgICAgICBpbnNldCAwIDAgMCAycHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI0KSxcbiAgICAgICAgICAwIDEwcHggMjJweCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tc3dhdGNoLWNvbG9yKSAyNCUsIHRyYW5zcGFyZW50KTtcbiAgICAgIH1cblxuICAgICAgLm1pbmktZ2FtZXMtcGxheWVyX19jaG9pY2VzLS1jb2xvcnMgYnV0dG9uOjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICB3aWR0aDogMTNweDtcbiAgICAgICAgaGVpZ2h0OiAxM3B4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjM0KTtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDEycHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIyKTtcbiAgICAgIH1cblxuICAgICAgLm1pbmktZ2FtZXMtcGxheWVyX19jaG9pY2VzIGJ1dHRvbi5pcy1zZWxlY3RlZCB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcGxheWVyLWNvbG9yKTtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgM3B4IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1wbGF5ZXItY29sb3IpIDE4JSwgdHJhbnNwYXJlbnQpO1xuICAgICAgfVxuXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLm1pbmktZ2FtZXMtcGxheWVyX19jaG9pY2VzIGJ1dHRvbi5pcy1zZWxlY3RlZCxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLm1pbmktZ2FtZXMtcGxheWVyX19jaG9pY2VzIGJ1dHRvbi5pcy1zZWxlY3RlZCxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAubWluaS1nYW1lcy1wbGF5ZXJfX3Byb2ZpbGVzIGJ1dHRvbi5pcy1zZWxlY3RlZCxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLm1pbmktZ2FtZXMtcGxheWVyX19wcm9maWxlcyBidXR0b24uaXMtc2VsZWN0ZWQge1xuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXBsYXllci1jb2xvcik7XG4gICAgICAgIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1wbGF5ZXItY29sb3IpIDE4JSwgdmFyKC0taW9uLWNhcmQtYmFja2dyb3VuZCwgIzFmMWIyOCkpO1xuICAgICAgfVxuXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLm1pbmktZ2FtZXMtcGxheWVyX19jaG9pY2VzLS1jb2xvcnMgYnV0dG9uLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAubWluaS1nYW1lcy1wbGF5ZXJfX2Nob2ljZXMtLWNvbG9ycyBidXR0b24ge1xuICAgICAgICBib3JkZXItY29sb3I6IHJnYmEodmFyKC0taW9uLWNvbG9yLWxpZ2h0LXJnYiwgMjQ0LCAyNDUsIDI0OCksIDAuMzIpO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zd2F0Y2gtY29sb3IpO1xuICAgICAgICBib3gtc2hhZG93OlxuICAgICAgICAgIGluc2V0IDAgMCAwIDJweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjIpLFxuICAgICAgICAgIDAgMCAwIDFweCByZ2JhKDAsIDAsIDAsIDAuMjgpLFxuICAgICAgICAgIDAgMTJweCAyNHB4IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1zd2F0Y2gtY29sb3IpIDM0JSwgdHJhbnNwYXJlbnQpO1xuICAgICAgfVxuXG4gICAgICAubWluaS1nYW1lcy1wbGF5ZXJfX2Nob2ljZXMtLWNvbG9ycyBidXR0b24uaXMtc2VsZWN0ZWQsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLm1pbmktZ2FtZXMtcGxheWVyX19jaG9pY2VzLS1jb2xvcnMgYnV0dG9uLmlzLXNlbGVjdGVkLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAubWluaS1nYW1lcy1wbGF5ZXJfX2Nob2ljZXMtLWNvbG9ycyBidXR0b24uaXMtc2VsZWN0ZWQge1xuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLW1pbmktZ2FtZXMtYWNjZW50KTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tc3dhdGNoLWNvbG9yKTtcbiAgICAgICAgYm94LXNoYWRvdzpcbiAgICAgICAgICAwIDAgMCAwLjE4NzVyZW0gcmdiYSh2YXIoLS1taW5pLWdhbWVzLWFjY2VudC1yZ2IpLCAwLjI2KSxcbiAgICAgICAgICBpbnNldCAwIDAgMCAycHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI4KSxcbiAgICAgICAgICAwIDE0cHggMjhweCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tc3dhdGNoLWNvbG9yKSAzNiUsIHRyYW5zcGFyZW50KTtcbiAgICAgIH1cblxuICAgICAgLm1pbmktZ2FtZXMtcGxheWVyX19hZGQge1xuICAgICAgICBqdXN0aWZ5LXNlbGY6IGVuZDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogN3B4O1xuICAgICAgICBtaW4taGVpZ2h0OiA0MnB4O1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgICAgICBwYWRkaW5nOiAwIDE0cHg7XG4gICAgICAgIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1wbGF5ZXItY29sb3IpIDE2JSwgdmFyKC0tbWluaS1nYW1lcy1wYW5lbCkpO1xuICAgICAgICBjb2xvcjogdmFyKC0tbWluaS1nYW1lcy1wcmltYXJ5KTtcbiAgICAgICAgZm9udDogaW5oZXJpdDtcbiAgICAgICAgZm9udC1zaXplOiAwLjkycmVtO1xuICAgICAgICBmb250LXdlaWdodDogOTAwO1xuICAgICAgfVxuXG4gICAgICAubWluaS1nYW1lcy1zb3VuZC10b2dnbGUge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiA4cHg7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDQycHg7XG4gICAgICAgIHBhZGRpbmc6IDAgMTRweDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbWluaS1nYW1lcy1ib3JkZXIpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tbWluaS1nYW1lcy1wYW5lbCk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1taW5pLWdhbWVzLXRleHQpO1xuICAgICAgICBmb250OiBpbmhlcml0O1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA4NTA7XG4gICAgICB9XG5cbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAubWluaS1nYW1lcy1zb3VuZC10b2dnbGUsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5taW5pLWdhbWVzLXNvdW5kLXRvZ2dsZSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tbWluaS1nYW1lcy1ib3JkZXIpO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1taW5pLWdhbWVzLXBhbmVsKTtcbiAgICAgICAgY29sb3I6IHZhcigtLW1pbmktZ2FtZXMtdGV4dCk7XG4gICAgICB9XG5cbiAgICAgIC5taW5pLWdhbWVzLXNvdW5kLXRvZ2dsZSBpb24taWNvbiB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1taW5pLWdhbWVzLXByaW1hcnkpO1xuICAgICAgfVxuXG4gICAgICAubWluaS1nYW1lcy1zb3VuZC10b2dnbGUgc3BhbiB7XG4gICAgICAgIG1heC13aWR0aDogMThjaDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICB9XG5cbiAgICAgIC5taW5pLWdhbWVzLXBhZ2UtaGVhZCB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdhcDogOHB4O1xuICAgICAgICBwYWRkaW5nOiA4cHggMCA0cHg7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIH1cblxuICAgICAgLm1pbmktZ2FtZXMtcGFnZS1oZWFkIGgxIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBjb2xvcjogdmFyKC0tbWluaS1nYW1lcy10ZXh0KTtcbiAgICAgICAgZm9udC1zaXplOiBjbGFtcCgyLjVyZW0sIDl2dywgNHJlbSk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAwLjk1O1xuICAgICAgICBmb250LXdlaWdodDogOTUwO1xuICAgICAgfVxuXG4gICAgICAubWluaS1nYW1lcy1wYWdlLWhlYWQgcCB7XG4gICAgICAgIG1heC13aWR0aDogMzIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgIGNvbG9yOiB2YXIoLS1taW5pLWdhbWVzLW11dGVkKTtcbiAgICAgICAgZm9udC1zaXplOiBjbGFtcCgxcmVtLCAzdncsIDEuMjVyZW0pO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4zNTtcbiAgICAgIH1cblxuICAgICAgLm1pbmktZ2FtZS1jYXJkIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogNzJweCAxZnI7XG4gICAgICAgIGdhcDogMTRweDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgcGFkZGluZzogMTZweDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbWluaS1nYW1lcy1ib3JkZXIpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxOHB4O1xuICAgICAgICBiYWNrZ3JvdW5kOlxuICAgICAgICAgIHJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgMjAlIDEwJSwgcmdiYSh2YXIoLS1taW5pLWdhbWVzLXByaW1hcnktcmdiKSwgMC4xKSwgdHJhbnNwYXJlbnQgMzIlKSxcbiAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1taW5pLWdhbWVzLXBhbmVsKSwgdmFyKC0tbWluaS1nYW1lcy1zb2Z0KSk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1taW5pLWdhbWVzLXRleHQpO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB0cmFuc2l0aW9uOlxuICAgICAgICAgIGJvcmRlci1jb2xvciAxNjBtcyBlYXNlLFxuICAgICAgICAgIHRyYW5zZm9ybSAxNjBtcyBlYXNlLFxuICAgICAgICAgIGJhY2tncm91bmQgMTYwbXMgZWFzZTtcbiAgICAgIH1cblxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5taW5pLWdhbWUtY2FyZCxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLm1pbmktZ2FtZS1jYXJkIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1taW5pLWdhbWVzLWJvcmRlcik7XG4gICAgICAgIGJhY2tncm91bmQ6XG4gICAgICAgICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCAyMCUgMTAlLCByZ2JhKHZhcigtLW1pbmktZ2FtZXMtcHJpbWFyeS1yZ2IpLCAwLjE0KSwgdHJhbnNwYXJlbnQgMzIlKSxcbiAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWluaS1nYW1lcy1wYW5lbCkgOTIlLCB3aGl0ZSksIHZhcigtLW1pbmktZ2FtZXMtc3VyZmFjZSkpO1xuICAgICAgICBjb2xvcjogdmFyKC0tbWluaS1nYW1lcy10ZXh0KTtcbiAgICAgIH1cblxuICAgICAgLm1pbmktZ2FtZS1jYXJkOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgfVxuXG4gICAgICAubWluaS1nYW1lLWNhcmQ6bm90KDpkaXNhYmxlZCk6aG92ZXIge1xuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLW1pbmktZ2FtZXMtcHJpbWFyeSk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXB4KTtcbiAgICAgIH1cblxuICAgICAgLm1pbmktZ2FtZS1jYXJkOmRpc2FibGVkIHtcbiAgICAgICAgb3BhY2l0eTogMC41NTtcbiAgICAgIH1cblxuICAgICAgLm1pbmktZ2FtZS1jYXJkX19pY29uIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6IDcycHg7XG4gICAgICAgIGhlaWdodDogNzJweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgICAgICAgYmFja2dyb3VuZDpcbiAgICAgICAgICByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IDMwJSAyMiUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zNSksIHRyYW5zcGFyZW50IDMyJSksXG4gICAgICAgICAgbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tbWluaS1nYW1lcy1wcmltYXJ5KSwgdmFyKC0tbWluaS1nYW1lcy1zZWNvbmRhcnkpKTtcbiAgICAgICAgY29sb3I6IHZhcigtLW1pbmktZ2FtZXMtaWNvbi10ZXh0KTtcbiAgICAgICAgZm9udC1zaXplOiAzNHB4O1xuICAgICAgICBib3gtc2hhZG93OiAwIDAuODc1cmVtIDIuMjVyZW0gcmdiYSh2YXIoLS1taW5pLWdhbWVzLXByaW1hcnktcmdiKSwgMC4yOCk7XG4gICAgICB9XG5cbiAgICAgIC5taW5pLWdhbWUtY2FyZF9faWNvbi0taW1hZ2Uge1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBwYWRkaW5nOiAwLjM1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgICAgfVxuXG4gICAgICAubWluaS1nYW1lLWNhcmRfX2ljb24gaW1nIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG4gICAgICB9XG5cbiAgICAgIC5taW5pLWdhbWUtY2FyZF9fY29udGVudCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiA0cHg7XG4gICAgICB9XG5cbiAgICAgIC5taW5pLWdhbWUtY2FyZF9fY29udGVudCBzdHJvbmcge1xuICAgICAgICBmb250LXNpemU6IDIwcHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjE7XG4gICAgICB9XG5cbiAgICAgIC5taW5pLWdhbWUtY2FyZF9fY29udGVudCBzbWFsbCB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1taW5pLWdhbWVzLW11dGVkKTtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMS4zNTtcbiAgICAgIH1cblxuICAgICAgLm1pbmktZ2FtZS1jYXJkX19hY3Rpb24ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiA2cHg7XG4gICAgICAgIHBhZGRpbmctdG9wOiA2cHg7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1taW5pLWdhbWVzLXByaW1hcnkpO1xuICAgICAgICBmb250LXdlaWdodDogODAwO1xuICAgICAgfVxuXG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogNDIwcHgpIHtcbiAgICAgICAgLm1pbmktZ2FtZS1jYXJkIHtcbiAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDU2cHggMWZyO1xuICAgICAgICAgIHBhZGRpbmc6IDE0cHg7XG4gICAgICAgIH1cblxuICAgICAgICAubWluaS1nYW1lLWNhcmRfX2ljb24ge1xuICAgICAgICAgIHdpZHRoOiA1NnB4O1xuICAgICAgICAgIGhlaWdodDogNTZweDtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAxNnB4O1xuICAgICAgICAgIGZvbnQtc2l6ZTogMjhweDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIGAsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIE1pbmlHYW1lc01lbnVDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBwcml2YXRlIHJlYWRvbmx5IGkxOG4gPSBpbmplY3QoSTE4blNlcnZpY2UpO1xuICByZWFkb25seSBwbGF5ZXJQcm9maWxlcyA9IGluamVjdChNaW5pR2FtZVBsYXllclByb2ZpbGVTZXJ2aWNlKTtcbiAgcmVhZG9ubHkgYXVkaW8gPSBpbmplY3QoUmV0cm9BdWRpb1NlcnZpY2UpO1xuICByZWFkb25seSBhdmF0YXJzID0gTUlOSV9HQU1FX1BMQVlFUl9BVkFUQVJTO1xuICByZWFkb25seSBjb2xvcnMgPSBNSU5JX0dBTUVfUExBWUVSX0NPTE9SUztcblxuICBASW5wdXQoKSBnYW1lczogTWluaUdhbWVEZWZpbml0aW9uW10gPSBbXTtcbiAgQElucHV0KCkgYXNNb2RhbCA9IHRydWU7XG4gIEBPdXRwdXQoKSByZWFkb25seSBzZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8TWluaUdhbWVEZWZpbml0aW9uPigpO1xuICBfbW9kYWxSZWY/OiB7IGRpc21pc3M6IChkYXRhPzogdW5rbm93biwgcm9sZT86IHN0cmluZykgPT4gUHJvbWlzZTxib29sZWFuPiB9O1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuaTE4bi5yZWdpc3RlckRlZmF1bHRzKCdNaW5pR2FtZXMnLCBNSU5JX0dBTUVTX0kxOE4pO1xuICAgIHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHZvaWQgdGhpcy5hdWRpby5zdGFydE1lbnVNdXNpYygpLmNhdGNoKCgpID0+IHVuZGVmaW5lZCksIDApO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5hdWRpby5zdG9wTXVzaWMoKTtcbiAgfVxuXG4gIGdldCBzYWZlR2FtZXMoKTogTWluaUdhbWVEZWZpbml0aW9uW10ge1xuICAgIHJldHVybiB0aGlzLmdhbWVzLmZpbHRlcigoZ2FtZSk6IGdhbWUgaXMgTWluaUdhbWVEZWZpbml0aW9uID0+ICEhZ2FtZSAmJiAhIWdhbWUuaWQgJiYgZ2FtZS5zdGF0dXMgIT09ICdzb29uJyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgdChrZXk6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgdGhpcy5pMThuLmxhbmcoKTtcbiAgICByZXR1cm4gdGhpcy5pMThuLnQoa2V5LCAnTWluaUdhbWVzJyk7XG4gIH1cblxuICBzZWxlY3QoZ2FtZTogTWluaUdhbWVEZWZpbml0aW9uKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZC5lbWl0KGdhbWUpO1xuICAgIHZvaWQgdGhpcy5fbW9kYWxSZWY/LmRpc21pc3MoZ2FtZSwgJ3NlbGVjdCcpO1xuICB9XG5cbiAgdXBkYXRlUGxheWVyTmFtZShldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCB2YWx1ZSA9IChldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWU7XG4gICAgdGhpcy5wbGF5ZXJQcm9maWxlcy51cGRhdGVBY3RpdmVQcm9maWxlKHsgbmFtZTogdmFsdWUgfSk7XG4gIH1cblxuICBkaXNwbGF5UGxheWVyTmFtZShwcm9maWxlOiBNaW5pR2FtZVBsYXllclByb2ZpbGUpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnBsYXllclByb2ZpbGVzLmRpc3BsYXlOYW1lKHByb2ZpbGUsIHRoaXMudCgnZGVmYXVsdFBsYXllck5hbWUnKSk7XG4gIH1cblxuICBjcmVhdGVQcm9maWxlKCk6IHZvaWQge1xuICAgIHRoaXMucGxheWVyUHJvZmlsZXMuY3JlYXRlUHJvZmlsZSgpO1xuICB9XG5cbiAgdG9nZ2xlU291bmQoKTogdm9pZCB7XG4gICAgdGhpcy5hdWRpby5zZXRFbmFibGVkKCF0aGlzLmF1ZGlvLmVuYWJsZWQoKSk7XG4gICAgaWYgKHRoaXMuYXVkaW8uZW5hYmxlZCgpKSB7XG4gICAgICB2b2lkIHRoaXMuYXVkaW8uc3RhcnRNZW51TXVzaWMoKS5jYXRjaCgoKSA9PiB1bmRlZmluZWQpO1xuICAgIH1cbiAgfVxuXG4gIGRpc21pc3MoKTogdm9pZCB7XG4gICAgdm9pZCB0aGlzLl9tb2RhbFJlZj8uZGlzbWlzcyh1bmRlZmluZWQsICdjYW5jZWwnKTtcbiAgfVxufVxuIl19
|
|
305
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWluaS1nYW1lcy1tZW51LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvbWluaS1nYW1lcy9taW5pLWdhbWVzLW1lbnUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3BDLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsc0JBQXNCLEVBQ3RCLHFCQUFxQixFQUNyQixlQUFlLEVBQ2YsaUJBQWlCLEVBQ2pCLGlCQUFpQixHQUNsQixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQzNGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQ0wsd0JBQXdCLEVBQ3hCLHVCQUF1QixFQUN2Qiw0QkFBNEIsR0FDN0IsTUFBTSxvQ0FBb0MsQ0FBQztBQUM1QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7O0FBRzFELFFBQVEsQ0FBQztJQUNQLGdCQUFnQjtJQUNoQixzQkFBc0I7SUFDdEIscUJBQXFCO0lBQ3JCLGVBQWU7SUFDZixpQkFBaUI7SUFDakIsaUJBQWlCO0NBQ2xCLENBQUMsQ0FBQztBQStqQkgsTUFBTSxPQUFPLHNCQUFzQjtJQVlqQztRQVhp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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpSFQsazFVQWxIUyxnQkFBZ0Isb0pBQUUsT0FBTywySkFBRSxvQkFBb0I7OzRGQTBqQjlDLHNCQUFzQjtrQkE3akJsQyxTQUFTOytCQUNFLHFCQUFxQixjQUNuQixJQUFJLFdBQ1AsQ0FBQyxnQkFBZ0IsRUFBRSxPQUFPLEVBQUUsb0JBQW9CLENBQUMsWUFDaEQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUhUO3dEQStjUSxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNhLFFBQVE7c0JBQTFCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95LCBPdXRwdXQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSW9uSWNvbiB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuaW1wb3J0IHsgYWRkSWNvbnMgfSBmcm9tICdpb25pY29ucyc7XG5pbXBvcnQge1xuICBhZGRDaXJjbGVPdXRsaW5lLFxuICBjaGVja21hcmtDaXJjbGVPdXRsaW5lLFxuICBnYW1lQ29udHJvbGxlck91dGxpbmUsXG4gIHNwYXJrbGVzT3V0bGluZSxcbiAgdm9sdW1lSGlnaE91dGxpbmUsXG4gIHZvbHVtZU11dGVPdXRsaW5lLFxufSBmcm9tICdpb25pY29ucy9pY29ucyc7XG5cbmltcG9ydCB7IE1vZGFsTGF5b3V0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL21vZGFsLWxheW91dC9tb2RhbC1sYXlvdXQuY29tcG9uZW50JztcbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaTE4bic7XG5pbXBvcnQge1xuICBNSU5JX0dBTUVfUExBWUVSX0FWQVRBUlMsXG4gIE1JTklfR0FNRV9QTEFZRVJfQ09MT1JTLFxuICBNaW5pR2FtZVBsYXllclByb2ZpbGVTZXJ2aWNlLFxufSBmcm9tICcuL21pbmktZ2FtZS1wbGF5ZXItcHJvZmlsZS5zZXJ2aWNlJztcbmltcG9ydCB7IE1JTklfR0FNRVNfSTE4TiB9IGZyb20gJy4vbWluaS1nYW1lcy5pMThuJztcbmltcG9ydCB7IFJldHJvQXVkaW9TZXJ2aWNlIH0gZnJvbSAnLi9yZXRyby1hdWRpby5zZXJ2aWNlJztcbmltcG9ydCB7IE1pbmlHYW1lRGVmaW5pdGlvbiwgTWluaUdhbWVQbGF5ZXJQcm9maWxlIH0gZnJvbSAnLi90eXBlcyc7XG5cbmFkZEljb25zKHtcbiAgYWRkQ2lyY2xlT3V0bGluZSxcbiAgY2hlY2ttYXJrQ2lyY2xlT3V0bGluZSxcbiAgZ2FtZUNvbnRyb2xsZXJPdXRsaW5lLFxuICBzcGFya2xlc091dGxpbmUsXG4gIHZvbHVtZUhpZ2hPdXRsaW5lLFxuICB2b2x1bWVNdXRlT3V0bGluZSxcbn0pO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtbWluaS1nYW1lcy1tZW51JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW05nVGVtcGxhdGVPdXRsZXQsIElvbkljb24sIE1vZGFsTGF5b3V0Q29tcG9uZW50XSxcbiAgdGVtcGxhdGU6IGBcbiAgICBAaWYgKGFzTW9kYWwpIHtcbiAgICAgIDx2YWwtbW9kYWwtbGF5b3V0IFt0aXRsZV09XCJ0KCdtZW51VGl0bGUnKVwiIFtzdWJ0aXRsZV09XCJ0KCdtZW51U3VidGl0bGUnKVwiIChjbG9zZSk9XCJkaXNtaXNzKClcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJtZW51Q29udGVudFwiIC8+XG4gICAgICA8L3ZhbC1tb2RhbC1sYXlvdXQ+XG4gICAgfSBAZWxzZSB7XG4gICAgICA8c2VjdGlvbiBjbGFzcz1cIm1pbmktZ2FtZXMtcGFnZS1oZWFkXCI+XG4gICAgICAgIDxoMT57eyB0KCdtZW51VGl0bGUnKSB9fTwvaDE+XG4gICAgICAgIDxwPnt7IHQoJ21lbnVTdWJ0aXRsZScpIH19PC9wPlxuICAgICAgPC9zZWN0aW9uPlxuICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJtZW51Q29udGVudFwiIC8+XG4gICAgfVxuXG4gICAgPG5nLXRlbXBsYXRlICNtZW51Q29udGVudD5cbiAgICAgIEBpZiAocGxheWVyUHJvZmlsZXMuYWN0aXZlUHJvZmlsZSgpOyBhcyBhY3RpdmVQbGF5ZXIpIHtcbiAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJtaW5pLWdhbWVzLXBsYXllclwiIFtzdHlsZS4tLXBsYXllci1jb2xvcl09XCJhY3RpdmVQbGF5ZXIuY29sb3JcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWluaS1nYW1lcy1wbGF5ZXJfX2hlYWRcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWluaS1nYW1lcy1wbGF5ZXJfX2F2YXRhclwiPnt7IGFjdGl2ZVBsYXllci5hdmF0YXIgfX08L3NwYW4+XG4gICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICA8c21hbGw+e3sgdCgncGxheWVyVGl0bGUnKSB9fTwvc21hbGw+XG4gICAgICAgICAgICAgIDxzdHJvbmc+e3sgZGlzcGxheVBsYXllck5hbWUoYWN0aXZlUGxheWVyKSB9fTwvc3Ryb25nPlxuICAgICAgICAgICAgICA8cD57eyB0KCdhcmNhZGVQbGF5ZXJTdWJ0aXRsZScpIH19PC9wPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICBAaWYgKHBsYXllclByb2ZpbGVzLnByb2ZpbGVzKCkubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1pbmktZ2FtZXMtcGxheWVyX19wcm9maWxlc1wiIFthdHRyLmFyaWEtbGFiZWxdPVwidCgnc2VsZWN0UGxheWVyJylcIj5cbiAgICAgICAgICAgICAgQGZvciAocHJvZmlsZSBvZiBwbGF5ZXJQcm9maWxlcy5wcm9maWxlcygpOyB0cmFjayBwcm9maWxlLmlkKSB7XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICBbY2xhc3MuaXMtc2VsZWN0ZWRdPVwicHJvZmlsZS5pZCA9PT0gYWN0aXZlUGxheWVyLmlkXCJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJwbGF5ZXJQcm9maWxlcy5zZWxlY3RQcm9maWxlKHByb2ZpbGUuaWQpXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8c3Bhbj57eyBwcm9maWxlLmF2YXRhciB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDxzdHJvbmc+e3sgZGlzcGxheVBsYXllck5hbWUocHJvZmlsZSkgfX08L3N0cm9uZz5cbiAgICAgICAgICAgICAgICAgIEBpZiAocHJvZmlsZS5pZCA9PT0gYWN0aXZlUGxheWVyLmlkKSB7XG4gICAgICAgICAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwiY2hlY2ttYXJrLWNpcmNsZS1vdXRsaW5lXCIgLz5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwibWluaS1nYW1lcy1wbGF5ZXJfX25hbWVcIj5cbiAgICAgICAgICAgIDxzcGFuPnt7IHQoJ3BsYXllck5hbWUnKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgIG1heGxlbmd0aD1cIjE0XCJcbiAgICAgICAgICAgICAgW3ZhbHVlXT1cImFjdGl2ZVBsYXllci5uYW1lXCJcbiAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInQoJ3BsYXllck5hbWVQbGFjZWhvbGRlcicpXCJcbiAgICAgICAgICAgICAgKGlucHV0KT1cInVwZGF0ZVBsYXllck5hbWUoJGV2ZW50KVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvbGFiZWw+XG5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWluaS1nYW1lcy1wbGF5ZXJfX2Nob2ljZXNcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInQoJ2F2YXRhclRpdGxlJylcIj5cbiAgICAgICAgICAgIEBmb3IgKGF2YXRhciBvZiBhdmF0YXJzOyB0cmFjayBhdmF0YXIpIHtcbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5pcy1zZWxlY3RlZF09XCJhY3RpdmVQbGF5ZXIuYXZhdGFyID09PSBhdmF0YXJcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJwbGF5ZXJQcm9maWxlcy51cGRhdGVBY3RpdmVQcm9maWxlKHsgYXZhdGFyIH0pXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7IGF2YXRhciB9fVxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtaW5pLWdhbWVzLXBsYXllcl9fY2hvaWNlcyBtaW5pLWdhbWVzLXBsYXllcl9fY2hvaWNlcy0tY29sb3JzXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJ0KCdjb2xvclRpdGxlJylcIj5cbiAgICAgICAgICAgIEBmb3IgKGNvbG9yIG9mIGNvbG9yczsgdHJhY2sgY29sb3IpIHtcbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIFtzdHlsZS4tLXN3YXRjaC1jb2xvcl09XCJjb2xvclwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLmlzLXNlbGVjdGVkXT1cImFjdGl2ZVBsYXllci5jb2xvciA9PT0gY29sb3JcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJwbGF5ZXJQcm9maWxlcy51cGRhdGVBY3RpdmVQcm9maWxlKHsgY29sb3IgfSlcIlxuICAgICAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwibWluaS1nYW1lcy1wbGF5ZXJfX2FkZFwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwiY3JlYXRlUHJvZmlsZSgpXCI+XG4gICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cImFkZC1jaXJjbGUtb3V0bGluZVwiIC8+XG4gICAgICAgICAgICB7eyB0KCduZXdQbGF5ZXInKSB9fVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L3NlY3Rpb24+XG4gICAgICB9XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJtaW5pLWdhbWVzLW1lbnUtYWN0aW9uc1wiPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwibWluaS1nYW1lcy1zb3VuZC10b2dnbGVcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cInRvZ2dsZVNvdW5kKClcIj5cbiAgICAgICAgICA8aW9uLWljb24gW25hbWVdPVwiYXVkaW8uZW5hYmxlZCgpID8gJ3ZvbHVtZS1oaWdoLW91dGxpbmUnIDogJ3ZvbHVtZS1tdXRlLW91dGxpbmUnXCIgLz5cbiAgICAgICAgICA8c3Bhbj57eyB0KGF1ZGlvLmVuYWJsZWQoKSA/ICdzb3VuZE9uJyA6ICdzb3VuZE9mZicpIH19PC9zcGFuPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwibWluaS1nYW1lcy1ncmlkXCI+XG4gICAgICAgIEBmb3IgKGdhbWUgb2Ygc2FmZUdhbWVzOyB0cmFjayBnYW1lLmlkIHx8ICRpbmRleCkge1xuICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJtaW5pLWdhbWUtY2FyZFwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwic2VsZWN0KGdhbWUpXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1pbmktZ2FtZS1jYXJkX19pY29uXCIgW2NsYXNzLm1pbmktZ2FtZS1jYXJkX19pY29uLS1pbWFnZV09XCIhIWdhbWUuaW1hZ2VTcmNcIj5cbiAgICAgICAgICAgICAgQGlmIChnYW1lLmltYWdlU3JjKSB7XG4gICAgICAgICAgICAgICAgPGltZyBbc3JjXT1cImdhbWUuaW1hZ2VTcmNcIiBbYWx0XT1cImdhbWUudGl0bGVcIiBsb2FkaW5nPVwibGF6eVwiIC8+XG4gICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgIHt7IGdhbWUuaWNvbiB9fVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1pbmktZ2FtZS1jYXJkX19jb250ZW50XCI+XG4gICAgICAgICAgICAgIDxzdHJvbmc+e3sgZ2FtZS50aXRsZSB9fTwvc3Ryb25nPlxuICAgICAgICAgICAgICA8c21hbGw+e3sgZ2FtZS5kZXNjcmlwdGlvbiB9fTwvc21hbGw+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWluaS1nYW1lLWNhcmRfX2FjdGlvblwiPlxuICAgICAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwiZ2FtZS1jb250cm9sbGVyLW91dGxpbmVcIiAvPlxuICAgICAgICAgICAgICAgIHt7IHQoJ29wZW5HYW1lJykgfX1cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICBgLFxuICBzdHlsZXM6IFtcbiAgICBgXG4gICAgICA6aG9zdCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAtLW1pbmktZ2FtZXMtcGFuZWw6ICNmZmZmZmY7XG4gICAgICAgIC0tbWluaS1nYW1lcy1zdXJmYWNlOiAjZjhmN2ZiO1xuICAgICAgICAtLW1pbmktZ2FtZXMtYm9yZGVyOiByZ2JhKDQ3LCA0NCwgNTgsIDAuMTIpO1xuICAgICAgICAtLW1pbmktZ2FtZXMtdGV4dDogIzJmMmMzYTtcbiAgICAgICAgLS1taW5pLWdhbWVzLW11dGVkOiByZ2JhKDQ3LCA0NCwgNTgsIDAuNjgpO1xuICAgICAgICAtLW1pbmktZ2FtZXMtcHJpbWFyeTogIzZmNjVkODtcbiAgICAgICAgLS1taW5pLWdhbWVzLXByaW1hcnktcmdiOiAxMTEsIDEwMSwgMjE2O1xuICAgICAgICAtLW1pbmktZ2FtZXMtc2Vjb25kYXJ5OiAjNjdiN2M5O1xuICAgICAgICAtLW1pbmktZ2FtZXMtc2Vjb25kYXJ5LXJnYjogMTAzLCAxODMsIDIwMTtcbiAgICAgICAgLS1taW5pLWdhbWVzLWFjY2VudDogIzhmN2NlNztcbiAgICAgICAgLS1taW5pLWdhbWVzLWFjY2VudC1yZ2I6IDE0MywgMTI0LCAyMzE7XG4gICAgICAgIC0tbWluaS1nYW1lcy1zb2Z0OiAjZjNmMWZiO1xuICAgICAgICAtLW1pbmktZ2FtZXMtaWNvbi10ZXh0OiAjZmZmZmZmO1xuICAgICAgICAtLW1pbmktZ2FtZXMtZm9jdXM6IHJnYmEodmFyKC0tbWluaS1nYW1lcy1wcmltYXJ5LXJnYiksIDAuMjIpO1xuICAgICAgICBjb2xvcjogdmFyKC0tbWluaS1nYW1lcy10ZXh0KTtcbiAgICAgIH1cblxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSB7XG4gICAgICAgIC0tbWluaS1nYW1lcy1wYW5lbDogIzIxMWYyYTtcbiAgICAgICAgLS1taW5pLWdhbWVzLXN1cmZhY2U6ICMxOTE4MjE7XG4gICAgICAgIC0tbWluaS1nYW1lcy1ib3JkZXI6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMyk7XG4gICAgICAgIC0tbWluaS1nYW1lcy10ZXh0OiAjZjdmNGZmO1xuICAgICAgICAtLW1pbmktZ2FtZXMtbXV0ZWQ6IHJnYmEoMjQ3LCAyNDQsIDI1NSwgMC42OCk7XG4gICAgICAgIC0tbWluaS1nYW1lcy1wcmltYXJ5OiAjYjdhZGZmO1xuICAgICAgICAtLW1pbmktZ2FtZXMtcHJpbWFyeS1yZ2I6IDE4MywgMTczLCAyNTU7XG4gICAgICAgIC0tbWluaS1nYW1lcy1zZWNvbmRhcnk6ICM4ZmQ1ZTU7XG4gICAgICAgIC0tbWluaS1nYW1lcy1zZWNvbmRhcnktcmdiOiAxNDMsIDIxMywgMjI5O1xuICAgICAgICAtLW1pbmktZ2FtZXMtYWNjZW50OiAjYzdiYmZmO1xuICAgICAgICAtLW1pbmktZ2FtZXMtYWNjZW50LXJnYjogMTk5LCAxODcsIDI1NTtcbiAgICAgICAgLS1taW5pLWdhbWVzLXNvZnQ6ICMyYTI3MzU7XG4gICAgICAgIC0tbWluaS1nYW1lcy1pY29uLXRleHQ6ICMyMTFmMmE7XG4gICAgICAgIC0tbWluaS1nYW1lcy1mb2N1czogcmdiYSh2YXIoLS1taW5pLWdhbWVzLXByaW1hcnktcmdiKSwgMC4yNCk7XG4gICAgICB9XG5cbiAgICAgIC5taW5pLWdhbWVzLWdyaWQge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBnYXA6IDAuNzVyZW07XG4gICAgICAgIHBhZGRpbmctdG9wOiAxcmVtO1xuICAgICAgfVxuXG4gICAgICAubWluaS1nYW1lcy1tZW51LWFjdGlvbnMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICBwYWRkaW5nLXRvcDogMC43NXJlbTtcbiAgICAgIH1cblxuICAgICAgLm1pbmktZ2FtZXMtcGxheWVyIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ2FwOiAwLjc1cmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAwLjc1cmVtO1xuICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1taW5pLWdhbWVzLWJvcmRlcik7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEuMzc1cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOlxuICAgICAgICAgIHJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgMTIlIDAlLCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tcGxheWVyLWNvbG9yKSAxMiUsIHRyYW5zcGFyZW50KSwgdHJhbnNwYXJlbnQgMzQlKSxcbiAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1taW5pLWdhbWVzLXBhbmVsKSwgdmFyKC0tbWluaS1nYW1lcy1zb2Z0KSk7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMS4xMjVyZW0gMi43NXJlbSByZ2JhKDQ3LCA0NCwgNTgsIDAuMDgpO1xuICAgICAgICBjb2xvcjogdmFyKC0tbWluaS1nYW1lcy10ZXh0KTtcbiAgICAgIH1cblxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5taW5pLWdhbWVzLXBsYXllcixcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLm1pbmktZ2FtZXMtcGxheWVyIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1taW5pLWdhbWVzLWJvcmRlcik7XG4gICAgICAgIGJhY2tncm91bmQ6XG4gICAgICAgICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCAxMiUgMCUsIGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1wbGF5ZXItY29sb3IpIDE0JSwgdHJhbnNwYXJlbnQpLCB0cmFuc3BhcmVudCAzNCUpLFxuICAgICAgICAgIGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1taW5pLWdhbWVzLXBhbmVsKSA5MiUsIHdoaXRlKSwgdmFyKC0tbWluaS1nYW1lcy1zdXJmYWNlKSk7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICB9XG5cbiAgICAgIC5taW5pLWdhbWVzLXBsYXllcl9faGVhZCB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogNThweCAxZnI7XG4gICAgICAgIGdhcDogMTJweDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIH1cblxuICAgICAgLm1pbmktZ2FtZXMtcGxheWVyX19hdmF0YXIge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBwbGFjZS1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogNThweDtcbiAgICAgICAgaGVpZ2h0OiA1OHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxOHB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wbGF5ZXItY29sb3IpO1xuICAgICAgICBmb250LXNpemU6IDEuNjVyZW07XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMTRweCAyOHB4IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1wbGF5ZXItY29sb3IpIDMyJSwgdHJhbnNwYXJlbnQpO1xuICAgICAgfVxuXG4gICAgICAubWluaS1nYW1lcy1wbGF5ZXJfX2hlYWQgc21hbGwsXG4gICAgICAubWluaS1nYW1lcy1wbGF5ZXJfX25hbWUgc3BhbiB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBjb2xvcjogdmFyKC0tbWluaS1nYW1lcy1tdXRlZCk7XG4gICAgICAgIGZvbnQtc2l6ZTogMC43NnJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDkwMDtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDhlbTtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgIH1cblxuICAgICAgLm1pbmktZ2FtZXMtcGxheWVyX19oZWFkIHN0cm9uZyB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgICAgZm9udC1zaXplOiAxLjM1cmVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4wNTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDk1MDtcbiAgICAgIH1cblxuICAgICAgLm1pbmktZ2FtZXMtcGxheWVyX19oZWFkIHAge1xuICAgICAgICBtYXJnaW46IDAuMTg3NXJlbSAwIDA7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1taW5pLWdhbWVzLW11dGVkKTtcbiAgICAgICAgZm9udC1zaXplOiAwLjkycmVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4zMjtcbiAgICAgIH1cblxuICAgICAgLm1pbmktZ2FtZXMtcGxheWVyX19wcm9maWxlcyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGdhcDogOHB4O1xuICAgICAgICBvdmVyZmxvdy14OiBhdXRvO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMnB4O1xuICAgICAgfVxuXG4gICAgICAubWluaS1nYW1lcy1wbGF5ZXJfX3Byb2ZpbGVzIGJ1dHRvbiB7XG4gICAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgICBtaW4taGVpZ2h0OiA0MnB4O1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiA3cHg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWlvbi1ib3JkZXItY29sb3IsICNlN2U0ZWEpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICAgICAgcGFkZGluZzogMCAxMnB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1pb24taXRlbS1iYWNrZ3JvdW5kLCB0cmFuc3BhcmVudCk7XG4gICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgICBmb250OiBpbmhlcml0O1xuICAgICAgICBmb250LXNpemU6IDAuOXJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDg1MDtcbiAgICAgIH1cblxuICAgICAgLm1pbmktZ2FtZXMtcGxheWVyX19wcm9maWxlcyBidXR0b24uaXMtc2VsZWN0ZWQge1xuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXBsYXllci1jb2xvcik7XG4gICAgICAgIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1wbGF5ZXItY29sb3IpIDE2JSwgdmFyKC0taW9uLWNhcmQtYmFja2dyb3VuZCwgI2ZmZikpO1xuICAgICAgfVxuXG4gICAgICAubWluaS1nYW1lcy1wbGF5ZXJfX3Byb2ZpbGVzIGlvbi1pY29uIHtcbiAgICAgICAgY29sb3I6IHZhcigtLXBsYXllci1jb2xvcik7XG4gICAgICB9XG5cbiAgICAgIC5taW5pLWdhbWVzLXBsYXllcl9fbmFtZSB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdhcDogNnB4O1xuICAgICAgfVxuXG4gICAgICAubWluaS1nYW1lcy1wbGF5ZXJfX25hbWUgaW5wdXQge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWluLWhlaWdodDogNDhweDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbWluaS1nYW1lcy1ib3JkZXIpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICAgICAgcGFkZGluZzogMCAxNnB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWluaS1nYW1lcy1wYW5lbCkgODglLCB3aGl0ZSk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1taW5pLWdhbWVzLXRleHQpO1xuICAgICAgICBjYXJldC1jb2xvcjogdmFyKC0tbWluaS1nYW1lcy1wcmltYXJ5KTtcbiAgICAgICAgZm9udDogaW5oZXJpdDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDg1MDtcbiAgICAgIH1cblxuICAgICAgLm1pbmktZ2FtZXMtcGxheWVyX19uYW1lIGlucHV0OjpwbGFjZWhvbGRlciB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1taW5pLWdhbWVzLW11dGVkKTtcbiAgICAgICAgb3BhY2l0eTogMC44NDtcbiAgICAgIH1cblxuICAgICAgLm1pbmktZ2FtZXMtcGxheWVyX19uYW1lIGlucHV0OmZvY3VzLXZpc2libGUsXG4gICAgICAubWluaS1nYW1lcy1wbGF5ZXJfX3Byb2ZpbGVzIGJ1dHRvbjpmb2N1cy12aXNpYmxlLFxuICAgICAgLm1pbmktZ2FtZXMtcGxheWVyX19jaG9pY2VzIGJ1dHRvbjpmb2N1cy12aXNpYmxlLFxuICAgICAgLm1pbmktZ2FtZXMtcGxheWVyX19hZGQ6Zm9jdXMtdmlzaWJsZSxcbiAgICAgIC5taW5pLWdhbWVzLXNvdW5kLXRvZ2dsZTpmb2N1cy12aXNpYmxlLFxuICAgICAgLm1pbmktZ2FtZS1jYXJkOmZvY3VzLXZpc2libGUge1xuICAgICAgICBvdXRsaW5lOiAwLjE4NzVyZW0gc29saWQgdmFyKC0tbWluaS1nYW1lcy1mb2N1cyk7XG4gICAgICAgIG91dGxpbmUtb2Zmc2V0OiAwLjE4NzVyZW07XG4gICAgICB9XG5cbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAubWluaS1nYW1lcy1wbGF5ZXJfX25hbWUgaW5wdXQsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5taW5pLWdhbWVzLXBsYXllcl9fbmFtZSBpbnB1dCB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tbWluaS1nYW1lcy1ib3JkZXIpO1xuICAgICAgICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWluaS1nYW1lcy1wYW5lbCkgODglLCB3aGl0ZSk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1taW5pLWdhbWVzLXRleHQpO1xuICAgICAgfVxuXG4gICAgICAubWluaS1nYW1lcy1wbGF5ZXJfX2Nob2ljZXMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIGdhcDogOHB4O1xuICAgICAgfVxuXG4gICAgICAubWluaS1nYW1lcy1wbGF5ZXJfX2Nob2ljZXMgYnV0dG9uIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6IDQycHg7XG4gICAgICAgIGhlaWdodDogNDJweDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbWluaS1nYW1lcy1ib3JkZXIpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tbWluaS1nYW1lcy1wYW5lbCk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1taW5pLWdhbWVzLXRleHQpO1xuICAgICAgICBmb250LXNpemU6IDEuMTJyZW07XG4gICAgICB9XG5cbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAubWluaS1nYW1lcy1wbGF5ZXJfX2Nob2ljZXMgYnV0dG9uLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAubWluaS1nYW1lcy1wbGF5ZXJfX2Nob2ljZXMgYnV0dG9uLFxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5taW5pLWdhbWVzLXBsYXllcl9fcHJvZmlsZXMgYnV0dG9uLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAubWluaS1nYW1lcy1wbGF5ZXJfX3Byb2ZpbGVzIGJ1dHRvbiB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tbWluaS1nYW1lcy1ib3JkZXIpO1xuICAgICAgICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWluaS1nYW1lcy1wYW5lbCkgODglLCB3aGl0ZSk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1taW5pLWdhbWVzLXRleHQpO1xuICAgICAgfVxuXG4gICAgICAubWluaS1nYW1lcy1wbGF5ZXJfX2Nob2ljZXMtLWNvbG9ycyBidXR0b24ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGJvcmRlci1jb2xvcjogcmdiYSh2YXIoLS1pb24tY29sb3ItZGFyay1yZ2IsIDQ3LCA0MiwgNTgpLCAwLjE4KTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tc3dhdGNoLWNvbG9yKTtcbiAgICAgICAgYm94LXNoYWRvdzpcbiAgICAgICAgICBpbnNldCAwIDAgMCAycHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI0KSxcbiAgICAgICAgICAwIDEwcHggMjJweCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tc3dhdGNoLWNvbG9yKSAyNCUsIHRyYW5zcGFyZW50KTtcbiAgICAgIH1cblxuICAgICAgLm1pbmktZ2FtZXMtcGxheWVyX19jaG9pY2VzLS1jb2xvcnMgYnV0dG9uOjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICB3aWR0aDogMTNweDtcbiAgICAgICAgaGVpZ2h0OiAxM3B4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjM0KTtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDEycHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIyKTtcbiAgICAgIH1cblxuICAgICAgLm1pbmktZ2FtZXMtcGxheWVyX19jaG9pY2VzIGJ1dHRvbi5pcy1zZWxlY3RlZCB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcGxheWVyLWNvbG9yKTtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgM3B4IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1wbGF5ZXItY29sb3IpIDE4JSwgdHJhbnNwYXJlbnQpO1xuICAgICAgfVxuXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLm1pbmktZ2FtZXMtcGxheWVyX19jaG9pY2VzIGJ1dHRvbi5pcy1zZWxlY3RlZCxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLm1pbmktZ2FtZXMtcGxheWVyX19jaG9pY2VzIGJ1dHRvbi5pcy1zZWxlY3RlZCxcbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAubWluaS1nYW1lcy1wbGF5ZXJfX3Byb2ZpbGVzIGJ1dHRvbi5pcy1zZWxlY3RlZCxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLm1pbmktZ2FtZXMtcGxheWVyX19wcm9maWxlcyBidXR0b24uaXMtc2VsZWN0ZWQge1xuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLXBsYXllci1jb2xvcik7XG4gICAgICAgIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1wbGF5ZXItY29sb3IpIDE4JSwgdmFyKC0taW9uLWNhcmQtYmFja2dyb3VuZCwgIzFmMWIyOCkpO1xuICAgICAgfVxuXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLm1pbmktZ2FtZXMtcGxheWVyX19jaG9pY2VzLS1jb2xvcnMgYnV0dG9uLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAubWluaS1nYW1lcy1wbGF5ZXJfX2Nob2ljZXMtLWNvbG9ycyBidXR0b24ge1xuICAgICAgICBib3JkZXItY29sb3I6IHJnYmEodmFyKC0taW9uLWNvbG9yLWxpZ2h0LXJnYiwgMjQ0LCAyNDUsIDI0OCksIDAuMzIpO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zd2F0Y2gtY29sb3IpO1xuICAgICAgICBib3gtc2hhZG93OlxuICAgICAgICAgIGluc2V0IDAgMCAwIDJweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjIpLFxuICAgICAgICAgIDAgMCAwIDFweCByZ2JhKDAsIDAsIDAsIDAuMjgpLFxuICAgICAgICAgIDAgMTJweCAyNHB4IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1zd2F0Y2gtY29sb3IpIDM0JSwgdHJhbnNwYXJlbnQpO1xuICAgICAgfVxuXG4gICAgICAubWluaS1nYW1lcy1wbGF5ZXJfX2Nob2ljZXMtLWNvbG9ycyBidXR0b24uaXMtc2VsZWN0ZWQsXG4gICAgICA6aG9zdC1jb250ZXh0KGh0bWwuaW9uLXBhbGV0dGUtZGFyaykgLm1pbmktZ2FtZXMtcGxheWVyX19jaG9pY2VzLS1jb2xvcnMgYnV0dG9uLmlzLXNlbGVjdGVkLFxuICAgICAgOmhvc3QtY29udGV4dChbZGF0YS10aGVtZT0nZGFyayddKSAubWluaS1nYW1lcy1wbGF5ZXJfX2Nob2ljZXMtLWNvbG9ycyBidXR0b24uaXMtc2VsZWN0ZWQge1xuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLW1pbmktZ2FtZXMtYWNjZW50KTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tc3dhdGNoLWNvbG9yKTtcbiAgICAgICAgYm94LXNoYWRvdzpcbiAgICAgICAgICAwIDAgMCAwLjE4NzVyZW0gcmdiYSh2YXIoLS1taW5pLWdhbWVzLWFjY2VudC1yZ2IpLCAwLjI2KSxcbiAgICAgICAgICBpbnNldCAwIDAgMCAycHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI4KSxcbiAgICAgICAgICAwIDE0cHggMjhweCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tc3dhdGNoLWNvbG9yKSAzNiUsIHRyYW5zcGFyZW50KTtcbiAgICAgIH1cblxuICAgICAgLm1pbmktZ2FtZXMtcGxheWVyX19hZGQge1xuICAgICAgICBqdXN0aWZ5LXNlbGY6IGVuZDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogN3B4O1xuICAgICAgICBtaW4taGVpZ2h0OiA0MnB4O1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgICAgICBwYWRkaW5nOiAwIDE0cHg7XG4gICAgICAgIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1wbGF5ZXItY29sb3IpIDE2JSwgdmFyKC0tbWluaS1nYW1lcy1wYW5lbCkpO1xuICAgICAgICBjb2xvcjogdmFyKC0tbWluaS1nYW1lcy1wcmltYXJ5KTtcbiAgICAgICAgZm9udDogaW5oZXJpdDtcbiAgICAgICAgZm9udC1zaXplOiAwLjkycmVtO1xuICAgICAgICBmb250LXdlaWdodDogOTAwO1xuICAgICAgfVxuXG4gICAgICAubWluaS1nYW1lcy1zb3VuZC10b2dnbGUge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiA4cHg7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDQycHg7XG4gICAgICAgIHBhZGRpbmc6IDAgMTRweDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbWluaS1nYW1lcy1ib3JkZXIpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tbWluaS1nYW1lcy1wYW5lbCk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1taW5pLWdhbWVzLXRleHQpO1xuICAgICAgICBmb250OiBpbmhlcml0O1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA4NTA7XG4gICAgICB9XG5cbiAgICAgIDpob3N0LWNvbnRleHQoaHRtbC5pb24tcGFsZXR0ZS1kYXJrKSAubWluaS1nYW1lcy1zb3VuZC10b2dnbGUsXG4gICAgICA6aG9zdC1jb250ZXh0KFtkYXRhLXRoZW1lPSdkYXJrJ10pIC5taW5pLWdhbWVzLXNvdW5kLXRvZ2dsZSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tbWluaS1nYW1lcy1ib3JkZXIpO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1taW5pLWdhbWVzLXBhbmVsKTtcbiAgICAgICAgY29sb3I6IHZhcigtLW1pbmktZ2FtZXMtdGV4dCk7XG4gICAgICB9XG5cbiAgICAgIC5taW5pLWdhbWVzLXNvdW5kLXRvZ2dsZSBpb24taWNvbiB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1taW5pLWdhbWVzLXByaW1hcnkpO1xuICAgICAgfVxuXG4gICAgICAubWluaS1nYW1lcy1zb3VuZC10b2dnbGUgc3BhbiB7XG4gICAgICAgIG1heC13aWR0aDogMThjaDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICB9XG5cbiAgICAgIC5taW5pLWdhbWVzLXBhZ2UtaGVhZCB7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdhcDogOHB4O1xuICAgICAgICBwYWRkaW5nOiA4cHggMCA0cHg7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIH1cblxuICAgICAgLm1pbmktZ2FtZXMtcGFnZS1oZWFkIGgxIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBjb2xvcjogdmFyKC0tbWluaS1nYW1lcy10ZXh0KTtcbiAgICAgICAgZm9udC1zaXplOiBjbGFtcCgyLjVyZW0sIDl2dywgNHJlbSk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAwLjk1O1xuICAgICAgICBmb250LXdlaWdodDogOTUwO1xuICAgICAgfVxuXG4gICAgICAubWluaS1nYW1lcy1wYWdlLWhlYWQgcCB7XG4gICAgICAgIG1heC13aWR0aDogMzIuNXJlbTtcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgIGNvbG9yOiB2YXIoLS1taW5pLWdhbWVzLW11dGVkKTtcbiAgICAgICAgZm9udC1zaXplOiBjbGFtcCgxcmVtLCAzdncsIDEuMjVyZW0pO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4zNTtcbiAgICAgIH1cblxuICAgICAgLm1pbmktZ2FtZS1jYXJkIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogNzJweCAxZnI7XG4gICAgICAgIGdhcDogMTRweDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgcGFkZGluZzogMTZweDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbWluaS1nYW1lcy1ib3JkZXIpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxOHB4O1xuICAgICAgICBiYWNrZ3JvdW5kOlxuICAgICAgICAgIHJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgMjAlIDEwJSwgcmdiYSh2YXIoLS1taW5pLWdhbWVzLXByaW1hcnktcmdiKSwgMC4xKSwgdHJhbnNwYXJlbnQgMzIlKSxcbiAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1taW5pLWdhbWVzLXBhbmVsKSwgdmFyKC0tbWluaS1nYW1lcy1zb2Z0KSk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1taW5pLWdhbWVzLXRleHQpO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB0cmFuc2l0aW9uOlxuICAgICAgICAgIGJvcmRlci1jb2xvciAxNjBtcyBlYXNlLFxuICAgICAgICAgIHRyYW5zZm9ybSAxNjBtcyBlYXNlLFxuICAgICAgICAgIGJhY2tncm91bmQgMTYwbXMgZWFzZTtcbiAgICAgIH1cblxuICAgICAgOmhvc3QtY29udGV4dChodG1sLmlvbi1wYWxldHRlLWRhcmspIC5taW5pLWdhbWUtY2FyZCxcbiAgICAgIDpob3N0LWNvbnRleHQoW2RhdGEtdGhlbWU9J2RhcmsnXSkgLm1pbmktZ2FtZS1jYXJkIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1taW5pLWdhbWVzLWJvcmRlcik7XG4gICAgICAgIGJhY2tncm91bmQ6XG4gICAgICAgICAgcmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCAyMCUgMTAlLCByZ2JhKHZhcigtLW1pbmktZ2FtZXMtcHJpbWFyeS1yZ2IpLCAwLjE0KSwgdHJhbnNwYXJlbnQgMzIlKSxcbiAgICAgICAgICBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWluaS1nYW1lcy1wYW5lbCkgOTIlLCB3aGl0ZSksIHZhcigtLW1pbmktZ2FtZXMtc3VyZmFjZSkpO1xuICAgICAgICBjb2xvcjogdmFyKC0tbWluaS1nYW1lcy10ZXh0KTtcbiAgICAgIH1cblxuICAgICAgLm1pbmktZ2FtZS1jYXJkOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgfVxuXG4gICAgICAubWluaS1nYW1lLWNhcmQ6bm90KDpkaXNhYmxlZCk6aG92ZXIge1xuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLW1pbmktZ2FtZXMtcHJpbWFyeSk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXB4KTtcbiAgICAgIH1cblxuICAgICAgLm1pbmktZ2FtZS1jYXJkOmRpc2FibGVkIHtcbiAgICAgICAgb3BhY2l0eTogMC41NTtcbiAgICAgIH1cblxuICAgICAgLm1pbmktZ2FtZS1jYXJkX19pY29uIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6IDcycHg7XG4gICAgICAgIGhlaWdodDogNzJweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgICAgICAgYmFja2dyb3VuZDpcbiAgICAgICAgICByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IDMwJSAyMiUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zNSksIHRyYW5zcGFyZW50IDMyJSksXG4gICAgICAgICAgbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tbWluaS1nYW1lcy1wcmltYXJ5KSwgdmFyKC0tbWluaS1nYW1lcy1zZWNvbmRhcnkpKTtcbiAgICAgICAgY29sb3I6IHZhcigtLW1pbmktZ2FtZXMtaWNvbi10ZXh0KTtcbiAgICAgICAgZm9udC1zaXplOiAzNHB4O1xuICAgICAgICBib3gtc2hhZG93OiAwIDAuODc1cmVtIDIuMjVyZW0gcmdiYSh2YXIoLS1taW5pLWdhbWVzLXByaW1hcnktcmdiKSwgMC4yOCk7XG4gICAgICB9XG5cbiAgICAgIC5taW5pLWdhbWUtY2FyZF9faWNvbi0taW1hZ2Uge1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgICAgfVxuXG4gICAgICAubWluaS1nYW1lLWNhcmRfX2ljb24gaW1nIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IGluaGVyaXQ7XG4gICAgICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgICAgICBvYmplY3QtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjM0KTtcbiAgICAgIH1cblxuICAgICAgLm1pbmktZ2FtZS1jYXJkX19jb250ZW50IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDRweDtcbiAgICAgIH1cblxuICAgICAgLm1pbmktZ2FtZS1jYXJkX19jb250ZW50IHN0cm9uZyB7XG4gICAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMTtcbiAgICAgIH1cblxuICAgICAgLm1pbmktZ2FtZS1jYXJkX19jb250ZW50IHNtYWxsIHtcbiAgICAgICAgY29sb3I6IHZhcigtLW1pbmktZ2FtZXMtbXV0ZWQpO1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjM1O1xuICAgICAgfVxuXG4gICAgICAubWluaS1nYW1lLWNhcmRfX2FjdGlvbiB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDZweDtcbiAgICAgICAgcGFkZGluZy10b3A6IDZweDtcbiAgICAgICAgY29sb3I6IHZhcigtLW1pbmktZ2FtZXMtcHJpbWFyeSk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA4MDA7XG4gICAgICB9XG5cbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0MjBweCkge1xuICAgICAgICAubWluaS1nYW1lLWNhcmQge1xuICAgICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogNTZweCAxZnI7XG4gICAgICAgICAgcGFkZGluZzogMTRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5taW5pLWdhbWUtY2FyZF9faWNvbiB7XG4gICAgICAgICAgd2lkdGg6IDU2cHg7XG4gICAgICAgICAgaGVpZ2h0OiA1NnB4O1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gICAgICAgICAgZm9udC1zaXplOiAyOHB4O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgYCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgTWluaUdhbWVzTWVudUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgaTE4biA9IGluamVjdChJMThuU2VydmljZSk7XG4gIHJlYWRvbmx5IHBsYXllclByb2ZpbGVzID0gaW5qZWN0KE1pbmlHYW1lUGxheWVyUHJvZmlsZVNlcnZpY2UpO1xuICByZWFkb25seSBhdWRpbyA9IGluamVjdChSZXRyb0F1ZGlvU2VydmljZSk7XG4gIHJlYWRvbmx5IGF2YXRhcnMgPSBNSU5JX0dBTUVfUExBWUVSX0FWQVRBUlM7XG4gIHJlYWRvbmx5IGNvbG9ycyA9IE1JTklfR0FNRV9QTEFZRVJfQ09MT1JTO1xuXG4gIEBJbnB1dCgpIGdhbWVzOiBNaW5pR2FtZURlZmluaXRpb25bXSA9IFtdO1xuICBASW5wdXQoKSBhc01vZGFsID0gdHJ1ZTtcbiAgQE91dHB1dCgpIHJlYWRvbmx5IHNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxNaW5pR2FtZURlZmluaXRpb24+KCk7XG4gIF9tb2RhbFJlZj86IHsgZGlzbWlzczogKGRhdGE/OiB1bmtub3duLCByb2xlPzogc3RyaW5nKSA9PiBQcm9taXNlPGJvb2xlYW4+IH07XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5pMThuLnJlZ2lzdGVyRGVmYXVsdHMoJ01pbmlHYW1lcycsIE1JTklfR0FNRVNfSTE4Tik7XG4gICAgd2luZG93LnNldFRpbWVvdXQoKCkgPT4gdm9pZCB0aGlzLmF1ZGlvLnN0YXJ0TWVudU11c2ljKCkuY2F0Y2goKCkgPT4gdW5kZWZpbmVkKSwgMCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmF1ZGlvLnN0b3BNdXNpYygpO1xuICB9XG5cbiAgZ2V0IHNhZmVHYW1lcygpOiBNaW5pR2FtZURlZmluaXRpb25bXSB7XG4gICAgcmV0dXJuIHRoaXMuZ2FtZXMuZmlsdGVyKChnYW1lKTogZ2FtZSBpcyBNaW5pR2FtZURlZmluaXRpb24gPT4gISFnYW1lICYmICEhZ2FtZS5pZCAmJiBnYW1lLnN0YXR1cyAhPT0gJ3Nvb24nKTtcbiAgfVxuXG4gIHByb3RlY3RlZCB0KGtleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICB0aGlzLmkxOG4ubGFuZygpO1xuICAgIHJldHVybiB0aGlzLmkxOG4udChrZXksICdNaW5pR2FtZXMnKTtcbiAgfVxuXG4gIHNlbGVjdChnYW1lOiBNaW5pR2FtZURlZmluaXRpb24pOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkLmVtaXQoZ2FtZSk7XG4gICAgdm9pZCB0aGlzLl9tb2RhbFJlZj8uZGlzbWlzcyhnYW1lLCAnc2VsZWN0Jyk7XG4gIH1cblxuICB1cGRhdGVQbGF5ZXJOYW1lKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IHZhbHVlID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZTtcbiAgICB0aGlzLnBsYXllclByb2ZpbGVzLnVwZGF0ZUFjdGl2ZVByb2ZpbGUoeyBuYW1lOiB2YWx1ZSB9KTtcbiAgfVxuXG4gIGRpc3BsYXlQbGF5ZXJOYW1lKHByb2ZpbGU6IE1pbmlHYW1lUGxheWVyUHJvZmlsZSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucGxheWVyUHJvZmlsZXMuZGlzcGxheU5hbWUocHJvZmlsZSwgdGhpcy50KCdkZWZhdWx0UGxheWVyTmFtZScpKTtcbiAgfVxuXG4gIGNyZWF0ZVByb2ZpbGUoKTogdm9pZCB7XG4gICAgdGhpcy5wbGF5ZXJQcm9maWxlcy5jcmVhdGVQcm9maWxlKCk7XG4gIH1cblxuICB0b2dnbGVTb3VuZCgpOiB2b2lkIHtcbiAgICB0aGlzLmF1ZGlvLnNldEVuYWJsZWQoIXRoaXMuYXVkaW8uZW5hYmxlZCgpKTtcbiAgICBpZiAodGhpcy5hdWRpby5lbmFibGVkKCkpIHtcbiAgICAgIHZvaWQgdGhpcy5hdWRpby5zdGFydE1lbnVNdXNpYygpLmNhdGNoKCgpID0+IHVuZGVmaW5lZCk7XG4gICAgfVxuICB9XG5cbiAgZGlzbWlzcygpOiB2b2lkIHtcbiAgICB2b2lkIHRoaXMuX21vZGFsUmVmPy5kaXNtaXNzKHVuZGVmaW5lZCwgJ2NhbmNlbCcpO1xuICB9XG59XG4iXX0=
|
|
@@ -144,12 +144,14 @@ export class RetroAudioService {
|
|
|
144
144
|
[392, 0.045],
|
|
145
145
|
[493.88, 0.055],
|
|
146
146
|
], 'triangle', 0.032, 48);
|
|
147
|
+
window.setTimeout(() => void this.filteredNoise(0.035, 0.012, 'bandpass', 820), 8);
|
|
147
148
|
}
|
|
148
149
|
chessimalsBotMove() {
|
|
149
150
|
void this.sequence([
|
|
150
151
|
[329.63, 0.055],
|
|
151
152
|
[246.94, 0.07],
|
|
152
153
|
], 'sawtooth', 0.024, 56);
|
|
154
|
+
window.setTimeout(() => void this.filteredNoise(0.05, 0.01, 'lowpass', 420), 16);
|
|
153
155
|
}
|
|
154
156
|
chessimalsCapture() {
|
|
155
157
|
void this.sequence([
|
|
@@ -159,6 +161,8 @@ export class RetroAudioService {
|
|
|
159
161
|
[783.99, 0.08],
|
|
160
162
|
], 'square', 0.046, 44);
|
|
161
163
|
window.setTimeout(() => void this.sweep(96, 42, 0.18, 'sawtooth', 0.026), 20);
|
|
164
|
+
window.setTimeout(() => void this.filteredNoise(0.18, 0.05, 'lowpass', 520), 18);
|
|
165
|
+
window.setTimeout(() => void this.filteredNoise(0.07, 0.028, 'bandpass', 1800), 84);
|
|
162
166
|
}
|
|
163
167
|
chessimalsPower(power) {
|
|
164
168
|
const notes = {
|
|
@@ -187,22 +191,29 @@ export class RetroAudioService {
|
|
|
187
191
|
void this.sequence(notes[power], power === 'bull' ? 'sawtooth' : 'triangle', 0.046, 58);
|
|
188
192
|
if (power === 'eagle') {
|
|
189
193
|
void this.sweep(720, 1568, 0.18, 'triangle', 0.028);
|
|
194
|
+
void this.filteredNoise(0.22, 0.025, 'highpass', 1600);
|
|
195
|
+
window.setTimeout(() => void this.filteredNoise(0.08, 0.018, 'bandpass', 2600), 92);
|
|
190
196
|
window.setTimeout(() => void this.tone(1760, 0.055, 'sine', 0.018), 150);
|
|
191
197
|
return;
|
|
192
198
|
}
|
|
193
199
|
if (power === 'bull') {
|
|
194
200
|
window.setTimeout(() => void this.tone(82.41, 0.16, 'sawtooth', 0.038), 72);
|
|
195
201
|
window.setTimeout(() => void this.sweep(138.59, 65.41, 0.18, 'sawtooth', 0.026), 118);
|
|
202
|
+
window.setTimeout(() => void this.filteredNoise(0.16, 0.038, 'lowpass', 260), 36);
|
|
203
|
+
window.setTimeout(() => void this.filteredNoise(0.055, 0.026, 'bandpass', 960), 170);
|
|
196
204
|
return;
|
|
197
205
|
}
|
|
198
206
|
if (power === 'kangaroo') {
|
|
199
207
|
window.setTimeout(() => void this.sweep(420, 940, 0.11, 'sine', 0.032), 88);
|
|
200
208
|
window.setTimeout(() => void this.sweep(940, 520, 0.1, 'sine', 0.026), 190);
|
|
201
209
|
window.setTimeout(() => void this.tone(261.63, 0.055, 'triangle', 0.018), 245);
|
|
210
|
+
window.setTimeout(() => void this.filteredNoise(0.035, 0.018, 'bandpass', 1180), 218);
|
|
202
211
|
return;
|
|
203
212
|
}
|
|
204
213
|
window.setTimeout(() => void this.sweep(164.81, 392, 0.24, 'sawtooth', 0.034), 70);
|
|
205
214
|
window.setTimeout(() => void this.tone(98, 0.18, 'sawtooth', 0.02), 150);
|
|
215
|
+
window.setTimeout(() => void this.filteredNoise(0.28, 0.032, 'bandpass', 340), 62);
|
|
216
|
+
window.setTimeout(() => void this.sweep(196, 146.83, 0.22, 'sawtooth', 0.022), 116);
|
|
206
217
|
}
|
|
207
218
|
chessimalsVictory() {
|
|
208
219
|
this.stopMusic();
|
|
@@ -217,6 +228,8 @@ export class RetroAudioService {
|
|
|
217
228
|
], 'triangle', 0.05, 72);
|
|
218
229
|
window.setTimeout(() => void this.sweep(130.81, 65.41, 0.28, 'sawtooth', 0.02), 40);
|
|
219
230
|
window.setTimeout(() => void this.sweep(523.25, 1567.98, 0.34, 'sine', 0.026), 240);
|
|
231
|
+
window.setTimeout(() => void this.filteredNoise(0.16, 0.022, 'bandpass', 1400), 120);
|
|
232
|
+
window.setTimeout(() => void this.sequence([[987.77, 0.08], [1318.51, 0.12]], 'triangle', 0.032, 86), 520);
|
|
220
233
|
}
|
|
221
234
|
chessimalsJoinRequest() {
|
|
222
235
|
void this.sequence([
|
|
@@ -225,6 +238,7 @@ export class RetroAudioService {
|
|
|
225
238
|
[987.77, 0.12],
|
|
226
239
|
], 'triangle', 0.034, 58);
|
|
227
240
|
window.setTimeout(() => void this.tone(1318.51, 0.075, 'sine', 0.02), 136);
|
|
241
|
+
window.setTimeout(() => void this.filteredNoise(0.06, 0.01, 'highpass', 1800), 98);
|
|
228
242
|
}
|
|
229
243
|
chessimalsPowerUnlocked() {
|
|
230
244
|
void this.sequence([
|
|
@@ -234,6 +248,7 @@ export class RetroAudioService {
|
|
|
234
248
|
[987.77, 0.13],
|
|
235
249
|
], 'triangle', 0.038, 64);
|
|
236
250
|
window.setTimeout(() => void this.sweep(220, 880, 0.22, 'sine', 0.024), 70);
|
|
251
|
+
window.setTimeout(() => void this.filteredNoise(0.24, 0.018, 'bandpass', 1200), 54);
|
|
237
252
|
}
|
|
238
253
|
readEnabled() {
|
|
239
254
|
try {
|
|
@@ -338,6 +353,35 @@ export class RetroAudioService {
|
|
|
338
353
|
oscillator.start();
|
|
339
354
|
oscillator.stop(ctx.currentTime + duration + 0.02);
|
|
340
355
|
}
|
|
356
|
+
// Chessimals uses generated WebAudio layers instead of third-party samples,
|
|
357
|
+
// avoiding licensing risk while keeping each animal power expressive.
|
|
358
|
+
async filteredNoise(duration = 0.12, gainValue = 0.025, filterType = 'bandpass', frequency = 900) {
|
|
359
|
+
if (!this.enabled())
|
|
360
|
+
return;
|
|
361
|
+
const ctx = await this.wakeAudio();
|
|
362
|
+
const sampleCount = Math.max(1, Math.floor(ctx.sampleRate * duration));
|
|
363
|
+
const buffer = ctx.createBuffer(1, sampleCount, ctx.sampleRate);
|
|
364
|
+
const channel = buffer.getChannelData(0);
|
|
365
|
+
for (let i = 0; i < sampleCount; i += 1) {
|
|
366
|
+
const decay = 1 - i / sampleCount;
|
|
367
|
+
channel[i] = (Math.random() * 2 - 1) * decay;
|
|
368
|
+
}
|
|
369
|
+
const source = ctx.createBufferSource();
|
|
370
|
+
const filter = ctx.createBiquadFilter();
|
|
371
|
+
const gain = ctx.createGain();
|
|
372
|
+
filter.type = filterType;
|
|
373
|
+
filter.frequency.value = frequency;
|
|
374
|
+
filter.Q.value = filterType === 'lowpass' ? 0.7 : 1.8;
|
|
375
|
+
gain.gain.setValueAtTime(0.0001, ctx.currentTime);
|
|
376
|
+
gain.gain.exponentialRampToValueAtTime(gainValue, ctx.currentTime + 0.012);
|
|
377
|
+
gain.gain.exponentialRampToValueAtTime(0.0001, ctx.currentTime + duration);
|
|
378
|
+
source.buffer = buffer;
|
|
379
|
+
source.connect(filter);
|
|
380
|
+
filter.connect(gain);
|
|
381
|
+
gain.connect(this.masterGain ?? ctx.destination);
|
|
382
|
+
source.start();
|
|
383
|
+
source.stop(ctx.currentTime + duration + 0.02);
|
|
384
|
+
}
|
|
341
385
|
pauseForBackground() {
|
|
342
386
|
if (this.activeMelody)
|
|
343
387
|
this.pausedMelody = this.activeMelody;
|
|
@@ -404,4 +448,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
404
448
|
type: Injectable,
|
|
405
449
|
args: [{ providedIn: 'root' }]
|
|
406
450
|
}], ctorParameters: () => [] });
|
|
407
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmV0cm8tYXVkaW8uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvbWluaS1nYW1lcy9yZXRyby1hdWRpby5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU9uRCxNQUFNLE9BQU8saUJBQWlCO0lBVzVCO1FBUFEsY0FBUyxHQUFHLENBQUMsQ0FBQztRQUtiLFlBQU8sR0FBRyxNQUFNLENBQVUsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUE0WHRDLDJCQUFzQixHQUFHLEdBQVMsRUFBRTtZQUNuRCxJQUFJLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDcEIsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7Z0JBQzFCLE9BQU87WUFDVCxDQUFDO1lBQ0QsS0FBSyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUNuQyxDQUFDLENBQUM7UUFFZSxtQkFBYyxHQUFHLEdBQVMsRUFBRTtZQUMzQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUM1QixDQUFDLENBQUM7UUFFZSxtQkFBYyxHQUFHLEdBQVMsRUFBRTtZQUMzQyxLQUFLLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBQ25DLENBQUMsQ0FBQztRQUVlLHlCQUFvQixHQUFHLEdBQVMsRUFBRTtZQUNqRCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFO2dCQUFFLE9BQU87WUFDekQsS0FBSyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDeEIsQ0FBQyxDQUFDO1FBNVlBLElBQUksT0FBTyxRQUFRLEtBQUssV0FBVyxFQUFFLENBQUM7WUFDcEMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLGtC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SUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQzVFLE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxLQUFLLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztZQUN0RixPQUFPO1FBQ1QsQ0FBQztRQUNELElBQUksS0FBSyxLQUFLLFVBQVUsRUFBRSxDQUFDO1lBQ3pCLE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUM1RSxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDNUUsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsS0FBSyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDL0UsT0FBTztRQUNULENBQUM7UUFDRCxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDbkYsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLElBQUksRUFB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bEMsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUM7UUFDckMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRU8saUJBQWlCO1FBQ3ZCLE9BQU8sT0FBTyxRQUFRLEtBQUssV0FBVyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQztJQUM3RCxDQUFDOytHQWxkVSxpQkFBaUI7bUhBQWpCLGlCQUFpQixjQURKLE1BQU07OzRGQUNuQixpQkFBaUI7a0JBRDdCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbnR5cGUgTm90ZSA9IFtudW1iZXIsIG51bWJlcl07XG50eXBlIE1lbG9keU1vZGUgPSAnbWVudScgfCAnZ2FtZSc7XG50eXBlIENoZXNzaW1hbHNQb3dlciA9ICdlYWdsZScgfCAnYnVsbCcgfCAna2FuZ2Fyb28nIHwgJ2xpb24nO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIFJldHJvQXVkaW9TZXJ2aWNlIHtcbiAgcHJpdmF0ZSBjb250ZXh0PzogQXVkaW9Db250ZXh0O1xuICBwcml2YXRlIG1hc3RlckdhaW4/OiBHYWluTm9kZTtcbiAgcHJpdmF0ZSBtdXNpY1RpbWVyPzogbnVtYmVyO1xuICBwcml2YXRlIG5vdGVJbmRleCA9IDA7XG4gIHByaXZhdGUgYWN0aXZlTWVsb2R5PzogTWVsb2R5TW9kZTtcbiAgcHJpdmF0ZSBwYXVzZWRNZWxvZHk/OiBNZWxvZHlNb2RlO1xuICBwcml2YXRlIHN1c3BlbmRUaW1lcj86IG51bWJlcjtcblxuICByZWFkb25seSBlbmFibGVkID0gc2lnbmFsPGJvb2xlYW4+KHRoaXMucmVhZEVuYWJsZWQoKSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgaWYgKHR5cGVvZiBkb2N1bWVudCAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3Zpc2liaWxpdHljaGFuZ2UnLCB0aGlzLmhhbmRsZVZpc2liaWxpdHlDaGFuZ2UpO1xuICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigncG9pbnRlcmRvd24nLCB0aGlzLmhhbmRsZVVzZXJBY3RpdmF0aW9uLCB7IHBhc3NpdmU6IHRydWUgfSk7XG4gICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCd0b3VjaHN0YXJ0JywgdGhpcy5oYW5kbGVVc2VyQWN0aXZhdGlvbiwgeyBwYXNzaXZlOiB0cnVlIH0pO1xuICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIHRoaXMuaGFuZGxlVXNlckFjdGl2YXRpb24pO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdwYWdlaGlkZScsIHRoaXMuaGFuZGxlUGFnZUhpZGUpO1xuICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3BhZ2VzaG93JywgdGhpcy5oYW5kbGVQYWdlU2hvdyk7XG4gICAgfVxuICB9XG5cbiAgc2V0RW5hYmxlZCh2YWx1ZTogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZW5hYmxlZC5zZXQodmFsdWUpO1xuICAgIHRyeSB7XG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgndmFsLW1pbmktZ2FtZXMtYXVkaW8nLCB2YWx1ZSA/ICcxJyA6ICcwJyk7XG4gICAgfSBjYXRjaCB7XG4gICAgICAvLyBsb2NhbFN0b3JhZ2UgcHVlZGUgbm8gZXN0YXIgZGlzcG9uaWJsZSBlbiBTU1IvdGVzdHMuXG4gICAgfVxuICAgIGlmICghdmFsdWUpIHRoaXMuc3RvcE11c2ljKCk7XG4gIH1cblxuICBhc3luYyBzdGFydE1lbnVNdXNpYygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLnN0YXJ0TXVzaWMoJ21lbnUnKTtcbiAgfVxuXG4gIGFzeW5jIHN0YXJ0R2FtZU11c2ljKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMuc3RhcnRNdXNpYygnZ2FtZScpO1xuICB9XG5cbiAgYXN5bmMgc3RhcnRNdXNpYyhtb2RlOiBNZWxvZHlNb2RlID0gJ2dhbWUnKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKCF0aGlzLmVuYWJsZWQoKSkgcmV0dXJuO1xuICAgIGlmICghdGhpcy5pc0RvY3VtZW50VmlzaWJsZSgpKSB7XG4gICAgICB0aGlzLnBhdXNlZE1lbG9keSA9IG1vZGU7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGF3YWl0IHRoaXMud2FrZUF1ZGlvKCk7XG4gICAgaWYgKHRoaXMubXVzaWNUaW1lciAmJiB0aGlzLmFjdGl2ZU1lbG9keSA9PT0gbW9kZSkgcmV0dXJuO1xuICAgIHRoaXMuc3RvcE11c2ljKCk7XG4gICAgdGhpcy5mYWRlTWFzdGVyVG8oMSwgMC4yNCk7XG4gICAgdGhpcy5hY3RpdmVNZWxvZHkgPSBtb2RlO1xuICAgIHRoaXMubm90ZUluZGV4ID0gMDtcbiAgICBjb25zdCBtZWxvZHkgPSBtb2RlID09PSAnbWVudScgPyB0aGlzLm1lbnVNZWxvZHkoKSA6IHRoaXMuZ2FtZU1lbG9keSgpO1xuICAgIGNvbnN0IGludGVydmFsTXMgPSBtb2RlID09PSAnbWVudScgPyA2NDAgOiAxOTA7XG4gICAgY29uc3Qgd2F2ZTogT3NjaWxsYXRvclR5cGUgPSBtb2RlID09PSAnbWVudScgPyAndHJpYW5nbGUnIDogJ3NxdWFyZSc7XG4gICAgY29uc3QgZ2FpbiA9IG1vZGUgPT09ICdtZW51JyA/IDAuMDE4IDogMC4wMjU7XG4gICAgdGhpcy5tdXNpY1RpbWVyID0gd2luZG93LnNldEludGVydmFsKCgpID0+IHtcbiAgICAgIGNvbnN0IHN0ZXAgPSB0aGlzLm5vdGVJbmRleDtcbiAgICAgIGNvbnN0IFtmcmVxLCBkdXJhdGlvbl0gPSBtZWxvZHlbdGhpcy5ub3RlSW5kZXggJSBtZWxvZHkubGVuZ3RoXTtcbiAgICAgIHRoaXMubm90ZUluZGV4ICs9IDE7XG4gICAgICB0aGlzLnRvbmUoZnJlcSwgZHVyYXRpb24sIHdhdmUsIGdhaW4pO1xuICAgICAgaWYgKG1vZGUgPT09ICdtZW51JykgdGhpcy5zYXZhbm5hUHVsc2Uoc3RlcCk7XG4gICAgfSwgaW50ZXJ2YWxNcyk7XG4gIH1cblxuICBzdG9wTXVzaWMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMubXVzaWNUaW1lcikge1xuICAgICAgd2luZG93LmNsZWFySW50ZXJ2YWwodGhpcy5tdXNpY1RpbWVyKTtcbiAgICAgIHRoaXMubXVzaWNUaW1lciA9IHVuZGVmaW5lZDtcbiAgICB9XG4gICAgdGhpcy5hY3RpdmVNZWxvZHkgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5wYXVzZWRNZWxvZHkgPSB1bmRlZmluZWQ7XG4gIH1cblxuICBmbGlwKCk6IHZvaWQge1xuICAgIHZvaWQgdGhpcy50b25lKDQ0MCwgMC4wNTUsICdzcXVhcmUnLCAwLjA1KTtcbiAgfVxuXG4gIG1hdGNoKCk6IHZvaWQge1xuICAgIHZvaWQgdGhpcy5zZXF1ZW5jZShbXG4gICAgICBbNjYwLCAwLjA4XSxcbiAgICAgIFs4ODAsIDAuMV0sXG4gICAgICBbOTkwLCAwLjEyXSxcbiAgICBdKTtcbiAgfVxuXG4gIG1pc3MoKTogdm9pZCB7XG4gICAgdm9pZCB0aGlzLnNlcXVlbmNlKFtcbiAgICAgIFsyMjAsIDAuMDhdLFxuICAgICAgWzE3NC42MSwgMC4xMl0sXG4gICAgXSk7XG4gIH1cblxuICB3aW4oKTogdm9pZCB7XG4gICAgdGhpcy5zdG9wTXVzaWMoKTtcbiAgICB2b2lkIHRoaXMuc2VxdWVuY2UoW1xuICAgICAgWzUyMy4yNSwgMC4wOV0sXG4gICAgICBbNjU5LjI1LCAwLjA5XSxcbiAgICAgIFs3ODMuOTksIDAuMDldLFxuICAgICAgWzEwNDYuNSwgMC4xNF0sXG4gICAgICBbMTMxOC41MSwgMC4yMl0sXG4gICAgICBbMTU2Ny45OCwgMC4yNl0sXG4gICAgXSk7XG4gIH1cblxuICBsb3NlKCk6IHZvaWQge1xuICAgIHRoaXMuc3RvcE11c2ljKCk7XG4gICAgdm9pZCB0aGlzLnNlcXVlbmNlKFtcbiAgICAgIFsyOTMuNjYsIDAuMTJdLFxuICAgICAgWzI0Ni45NCwgMC4xMl0sXG4gICAgICBbMTk2LCAwLjJdLFxuICAgIF0pO1xuICB9XG5cbiAgc2ltb25QYWQoZnJlcTogbnVtYmVyKTogdm9pZCB7XG4gICAgdm9pZCB0aGlzLnRvbmUoZnJlcSwgMC4yMiwgJ3NpbmUnLCAwLjA1NSk7XG4gIH1cblxuICBzaW1vblN0ZXBPaygpOiB2b2lkIHtcbiAgICB2b2lkIHRoaXMudG9uZSg4ODAsIDAuMDgsICd0cmlhbmdsZScsIDAuMDM1KTtcbiAgfVxuXG4gIHNpbW9uUm91bmRPaygpOiB2b2lkIHtcbiAgICB2b2lkIHRoaXMuc2VxdWVuY2UoW1xuICAgICAgWzY1OS4yNSwgMC4wOF0sXG4gICAgICBbODgwLCAwLjA4XSxcbiAgICAgIFsxMTc0LjY2LCAwLjEyXSxcbiAgICBdKTtcbiAgfVxuXG4gIHNpbW9uRmFpbCgpOiB2b2lkIHtcbiAgICB2b2lkIHRoaXMuc2VxdWVuY2UoW1xuICAgICAgWzE5NiwgMC4xMl0sXG4gICAgICBbMTQ2LjgzLCAwLjE4XSxcbiAgICBdKTtcbiAgfVxuXG4gIGNoZXNzaW1hbHNNb3ZlKCk6IHZvaWQge1xuICAgIHZvaWQgdGhpcy5zZXF1ZW5jZShcbiAgICAgIFtcbiAgICAgICAgWzM5MiwgMC4wNDVdLFxuICAgICAgICBbNDkzLjg4LCAwLjA1NV0sXG4gICAgICBdLFxuICAgICAgJ3RyaWFuZ2xlJyxcbiAgICAgIDAuMDMyLFxuICAgICAgNDgsXG4gICAgKTtcbiAgfVxuXG4gIGNoZXNzaW1hbHNCb3RNb3ZlKCk6IHZvaWQge1xuICAgIHZvaWQgdGhpcy5zZXF1ZW5jZShcbiAgICAgIFtcbiAgICAgICAgWzMyOS42MywgMC4wNTVdLFxuICAgICAgICBbMjQ2Ljk0LCAwLjA3XSxcbiAgICAgIF0sXG4gICAgICAnc2F3dG9vdGgnLFxuICAgICAgMC4wMjQsXG4gICAgICA1NixcbiAgICApO1xuICB9XG5cbiAgY2hlc3NpbWFsc0NhcHR1cmUoKTogdm9pZCB7XG4gICAgdm9pZCB0aGlzLnNlcXVlbmNlKFxuICAgICAgW1xuICAgICAgICBbMTc0LjYxLCAwLjA0XSxcbiAgICAgICAgWzI0Ni45NCwgMC4wNDVdLFxuICAgICAgICBbNTg3LjMzLCAwLjA5NV0sXG4gICAgICAgIFs3ODMuOTksIDAuMDhdLFxuICAgICAgXSxcbiAgICAgICdzcXVhcmUnLFxuICAgICAgMC4wNDYsXG4gICAgICA0NCxcbiAgICApO1xuICAgIHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHZvaWQgdGhpcy5zd2VlcCg5NiwgNDIsIDAuMTgsICdzYXd0b290aCcsIDAuMDI2KSwgMjApO1xuICB9XG5cbiAgY2hlc3NpbWFsc1Bvd2VyKHBvd2VyOiBDaGVzc2ltYWxzUG93ZXIpOiB2b2lkIHtcbiAgICBjb25zdCBub3RlczogUmVjb3JkPENoZXNzaW1hbHNQb3dlciwgTm90ZVtdPiA9IHtcbiAgICAgIGVhZ2xlOiBbXG4gICAgICAgIFs2NTkuMjUsIDAuMDU1XSxcbiAgICAgICAgWzg4MCwgMC4wNjVdLFxuICAgICAgICBbMTMxOC41MSwgMC4xMl0sXG4gICAgICBdLFxuICAgICAgYnVsbDogW1xuICAgICAgICBbMTk2LCAwLjA3NV0sXG4gICAgICAgIFsxNjQuODEsIDAuMDc1XSxcbiAgICAgICAgWzI0Ni45NCwgMC4xM10sXG4gICAgICBdLFxuICAgICAga2FuZ2Fyb286IFtcbiAgICAgICAgWzM5MiwgMC4wNTVdLFxuICAgICAgICBbMCwgMC4wNF0sXG4gICAgICAgIFs3ODMuOTksIDAuMTFdLFxuICAgICAgXSxcbiAgICAgIGxpb246IFtcbiAgICAgICAgWzI2MS42MywgMC4wNl0sXG4gICAgICAgIFszOTIsIDAuMDZdLFxuICAgICAgICBbNTIzLjI1LCAwLjA2XSxcbiAgICAgICAgWzc4My45OSwgMC4xNF0sXG4gICAgICBdLFxuICAgIH07XG4gICAgdm9pZCB0aGlzLnNlcXVlbmNlKG5vdGVzW3Bvd2VyXSwgcG93ZXIgPT09ICdidWxsJyA/ICdzYXd0b290aCcgOiAndHJpYW5nbGUnLCAwLjA0NiwgNTgpO1xuICAgIGlmIChwb3dlciA9PT0gJ2VhZ2xlJykge1xuICAgICAgdm9pZCB0aGlzLnN3ZWVwKDcyMCwgMTU2OCwgMC4xOCwgJ3RyaWFuZ2xlJywgMC4wMjgpO1xuICAgICAgd2luZG93LnNldFRpbWVvdXQoKCkgPT4gdm9pZCB0aGlzLnRvbmUoMTc2MCwgMC4wNTUsICdzaW5lJywgMC4wMTgpLCAxNTApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAocG93ZXIgPT09ICdidWxsJykge1xuICAgICAgd2luZG93LnNldFRpbWVvdXQoKCkgPT4gdm9pZCB0aGlzLnRvbmUoODIuNDEsIDAuMTYsICdzYXd0b290aCcsIDAuMDM4KSwgNzIpO1xuICAgICAgd2luZG93LnNldFRpbWVvdXQoKCkgPT4gdm9pZCB0aGlzLnN3ZWVwKDEzOC41OSwgNjUuNDEsIDAuMTgsICdzYXd0b290aCcsIDAuMDI2KSwgMTE4KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHBvd2VyID09PSAna2FuZ2Fyb28nKSB7XG4gICAgICB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB2b2lkIHRoaXMuc3dlZXAoNDIwLCA5NDAsIDAuMTEsICdzaW5lJywgMC4wMzIpLCA4OCk7XG4gICAgICB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB2b2lkIHRoaXMuc3dlZXAoOTQwLCA1MjAsIDAuMSwgJ3NpbmUnLCAwLjAyNiksIDE5MCk7XG4gICAgICB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB2b2lkIHRoaXMudG9uZSgyNjEuNjMsIDAuMDU1LCAndHJpYW5nbGUnLCAwLjAxOCksIDI0NSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHZvaWQgdGhpcy5zd2VlcCgxNjQuODEsIDM5MiwgMC4yNCwgJ3Nhd3Rvb3RoJywgMC4wMzQpLCA3MCk7XG4gICAgd2luZG93LnNldFRpbWVvdXQoKCkgPT4gdm9pZCB0aGlzLnRvbmUoOTgsIDAuMTgsICdzYXd0b290aCcsIDAuMDIpLCAxNTApO1xuICB9XG5cbiAgY2hlc3NpbWFsc1ZpY3RvcnkoKTogdm9pZCB7XG4gICAgdGhpcy5zdG9wTXVzaWMoKTtcbiAgICB2b2lkIHRoaXMuc2VxdWVuY2UoXG4gICAgICBbXG4gICAgICAgIFsxOTYsIDAuMDhdLFxuICAgICAgICBbMjYxLjYzLCAwLjA4XSxcbiAgICAgICAgWzMyOS42MywgMC4wOF0sXG4gICAgICAgIFszOTIsIDAuMV0sXG4gICAgICAgIFs1MjMuMjUsIDAuMTJdLFxuICAgICAgICBbNzgzLjk5LCAwLjE2XSxcbiAgICAgICAgWzEwNDYuNSwgMC4yMl0sXG4gICAgICBdLFxuICAgICAgJ3RyaWFuZ2xlJyxcbiAgICAgIDAuMDUsXG4gICAgICA3MixcbiAgICApO1xuICAgIHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHZvaWQgdGhpcy5zd2VlcCgxMzAuODEsIDY1LjQxLCAwLjI4LCAnc2F3dG9vdGgnLCAwLjAyKSwgNDApO1xuICAgIHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHZvaWQgdGhpcy5zd2VlcCg1MjMuMjUsIDE1NjcuOTgsIDAuMzQsICdzaW5lJywgMC4wMjYpLCAyNDApO1xuICB9XG5cbiAgY2hlc3NpbWFsc0pvaW5SZXF1ZXN0KCk6IHZvaWQge1xuICAgIHZvaWQgdGhpcy5zZXF1ZW5jZShcbiAgICAgIFtcbiAgICAgICAgWzUyMy4yNSwgMC4wNTVdLFxuICAgICAgICBbNjU5LjI1LCAwLjA2XSxcbiAgICAgICAgWzk4Ny43NywgMC4xMl0sXG4gICAgICBdLFxuICAgICAgJ3RyaWFuZ2xlJyxcbiAgICAgIDAuMDM0LFxuICAgICAgNTgsXG4gICAgKTtcbiAgICB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB2b2lkIHRoaXMudG9uZSgxMzE4LjUxLCAwLjA3NSwgJ3NpbmUnLCAwLjAyKSwgMTM2KTtcbiAgfVxuXG4gIGNoZXNzaW1hbHNQb3dlclVubG9ja2VkKCk6IHZvaWQge1xuICAgIHZvaWQgdGhpcy5zZXF1ZW5jZShcbiAgICAgIFtcbiAgICAgICAgWzM5MiwgMC4wNTVdLFxuICAgICAgICBbNTIzLjI1LCAwLjA1NV0sXG4gICAgICAgIFs2NTkuMjUsIDAuMDhdLFxuICAgICAgICBbOTg3Ljc3LCAwLjEzXSxcbiAgICAgIF0sXG4gICAgICAndHJpYW5nbGUnLFxuICAgICAgMC4wMzgsXG4gICAgICA2NCxcbiAgICApO1xuICAgIHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHZvaWQgdGhpcy5zd2VlcCgyMjAsIDg4MCwgMC4yMiwgJ3NpbmUnLCAwLjAyNCksIDcwKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVhZEVuYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgndmFsLW1pbmktZ2FtZXMtYXVkaW8nKSAhPT0gJzAnO1xuICAgIH0gY2F0Y2gge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBlbnN1cmVDb250ZXh0KCk6IFByb21pc2U8QXVkaW9Db250ZXh0PiB7XG4gICAgaWYgKCF0aGlzLmNvbnRleHQgfHwgdGhpcy5jb250ZXh0LnN0YXRlID09PSAnY2xvc2VkJykge1xuICAgICAgdGhpcy5jb250ZXh0ID0gbmV3IEF1ZGlvQ29udGV4dCgpO1xuICAgICAgdGhpcy5tYXN0ZXJHYWluID0gdGhpcy5jb250ZXh0LmNyZWF0ZUdhaW4oKTtcbiAgICAgIHRoaXMubWFzdGVyR2Fpbi5nYWluLnZhbHVlID0gMTtcbiAgICAgIHRoaXMubWFzdGVyR2Fpbi5jb25uZWN0KHRoaXMuY29udGV4dC5kZXN0aW5hdGlvbik7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmNvbnRleHQ7XG4gIH1cblxuICBwcml2YXRlIG1lbnVNZWxvZHkoKTogTm90ZVtdIHtcbiAgICByZXR1cm4gW1xuICAgICAgWzIyMCwgMC4zOF0sXG4gICAgICBbMCwgMC4xMl0sXG4gICAgICBbMjYxLjYzLCAwLjM0XSxcbiAgICAgIFszMjkuNjMsIDAuNDJdLFxuICAgICAgWzI5My42NiwgMC4yOF0sXG4gICAgICBbMCwgMC4xMl0sXG4gICAgICBbMzkyLCAwLjQ4XSxcbiAgICAgIFszMjkuNjMsIDAuMzRdLFxuICAgICAgWzI2MS42MywgMC4zNl0sXG4gICAgICBbMjIwLCAwLjU4XSxcbiAgICAgIFswLCAwLjJdLFxuICAgICAgWzI5My42NiwgMC4zNF0sXG4gICAgICBbMzI5LjYzLCAwLjQyXSxcbiAgICAgIFs0NDAsIDAuNV0sXG4gICAgICBbMzkyLCAwLjM2XSxcbiAgICAgIFsyNjEuNjMsIDAuNjJdLFxuICAgIF07XG4gIH1cblxuICBwcml2YXRlIHNhdmFubmFQdWxzZShzdGVwOiBudW1iZXIpOiB2b2lkIHtcbiAgICBpZiAoc3RlcCAlIDQgPT09IDApIHtcbiAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHZvaWQgdGhpcy5zd2VlcCg5NiwgNDgsIDAuMTgsICdzaW5lJywgMC4wMTIpLCAxOCk7XG4gICAgfVxuICAgIGlmIChzdGVwICUgOCA9PT0gNSkge1xuICAgICAgd2luZG93LnNldFRpbWVvdXQoKCkgPT4gdm9pZCB0aGlzLnRvbmUoMTY0LjgxLCAwLjA0NSwgJ3RyaWFuZ2xlJywgMC4wMTIpLCA5Nik7XG4gICAgfVxuICAgIGlmIChzdGVwICUgMTYgPT09IDEwKSB7XG4gICAgICB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB2b2lkIHRoaXMuc3dlZXAoMTQ2LjgzLCAxOTYsIDAuMDgsICd0cmlhbmdsZScsIDAuMDEpLCAxNDApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2FtZU1lbG9keSgpOiBOb3RlW10ge1xuICAgIHJldHVybiBbXG4gICAgICBbNTIzLjI1LCAwLjEzXSxcbiAgICAgIFs2NTkuMjUsIDAuMTNdLFxuICAgICAgWzc4My45OSwgMC4xM10sXG4gICAgICBbMTA0Ni41LCAwLjE4XSxcbiAgICAgIFs3ODMuOTksIDAuMTNdLFxuICAgICAgWzY1OS4yNSwgMC4xM10sXG4gICAgICBbNTg3LjMzLCAwLjE4XSxcbiAgICAgIFs2NTkuMjUsIDAuMThdLFxuICAgIF07XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHNlcXVlbmNlKFxuICAgIG5vdGVzOiBOb3RlW10sXG4gICAgd2F2ZTogT3NjaWxsYXRvclR5cGUgPSAnc3F1YXJlJyxcbiAgICBnYWluID0gMC4wNTUsXG4gICAgaW50ZXJ2YWxNcyA9IDkwLFxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAoIXRoaXMuZW5hYmxlZCgpKSByZXR1cm47XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBub3Rlcy5sZW5ndGg7IGkgKz0gMSkge1xuICAgICAgY29uc3QgW2ZyZXEsIGR1cmF0aW9uXSA9IG5vdGVzW2ldO1xuICAgICAgd2luZG93LnNldFRpbWVvdXQoKCkgPT4gdm9pZCB0aGlzLnRvbmUoZnJlcSwgZHVyYXRpb24sIHdhdmUsIGdhaW4pLCBpICogaW50ZXJ2YWxNcyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyB0b25lKGZyZXE6IG51bWJlciwgZHVyYXRpb24gPSAwLjEsIHR5cGU6IE9zY2lsbGF0b3JUeXBlID0gJ3NxdWFyZScsIGdhaW5WYWx1ZSA9IDAuMDQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAoIXRoaXMuZW5hYmxlZCgpKSByZXR1cm47XG4gICAgaWYgKGZyZXEgPD0gMCkgcmV0dXJuO1xuICAgIGNvbnN0IGN0eCA9IGF3YWl0IHRoaXMud2FrZUF1ZGlvKCk7XG4gICAgY29uc3Qgb3NjaWxsYXRvciA9IGN0eC5jcmVhdGVPc2NpbGxhdG9yKCk7XG4gICAgY29uc3QgZ2FpbiA9IGN0eC5jcmVhdGVHYWluKCk7XG4gICAgb3NjaWxsYXRvci50eXBlID0gdHlwZTtcbiAgICBvc2NpbGxhdG9yLmZyZXF1ZW5jeS52YWx1ZSA9IGZyZXE7XG4gICAgZ2Fpbi5nYWluLnNldFZhbHVlQXRUaW1lKDAuMDAwMSwgY3R4LmN1cnJlbnRUaW1lKTtcbiAgICBnYWluLmdhaW4uZXhwb25lbnRpYWxSYW1wVG9WYWx1ZUF0VGltZShnYWluVmFsdWUsIGN0eC5jdXJyZW50VGltZSArIDAuMDEpO1xuICAgIGdhaW4uZ2Fpbi5leHBvbmVudGlhbFJhbXBUb1ZhbHVlQXRUaW1lKDAuMDAwMSwgY3R4LmN1cnJlbnRUaW1lICsgZHVyYXRpb24pO1xuICAgIG9zY2lsbGF0b3IuY29ubmVjdChnYWluKTtcbiAgICBnYWluLmNvbm5lY3QodGhpcy5tYXN0ZXJHYWluID8/IGN0eC5kZXN0aW5hdGlvbik7XG4gICAgb3NjaWxsYXRvci5zdGFydCgpO1xuICAgIG9zY2lsbGF0b3Iuc3RvcChjdHguY3VycmVudFRpbWUgKyBkdXJhdGlvbiArIDAuMDIpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBzd2VlcChcbiAgICBmcm9tRnJlcTogbnVtYmVyLFxuICAgIHRvRnJlcTogbnVtYmVyLFxuICAgIGR1cmF0aW9uID0gMC4xNixcbiAgICB0eXBlOiBPc2NpbGxhdG9yVHlwZSA9ICd0cmlhbmdsZScsXG4gICAgZ2FpblZhbHVlID0gMC4wMyxcbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKCF0aGlzLmVuYWJsZWQoKSkgcmV0dXJuO1xuICAgIGNvbnN0IGN0eCA9IGF3YWl0IHRoaXMud2FrZUF1ZGlvKCk7XG4gICAgY29uc3Qgb3NjaWxsYXRvciA9IGN0eC5jcmVhdGVPc2NpbGxhdG9yKCk7XG4gICAgY29uc3QgZ2FpbiA9IGN0eC5jcmVhdGVHYWluKCk7XG4gICAgb3NjaWxsYXRvci50eXBlID0gdHlwZTtcbiAgICBvc2NpbGxhdG9yLmZyZXF1ZW5jeS5zZXRWYWx1ZUF0VGltZShmcm9tRnJlcSwgY3R4LmN1cnJlbnRUaW1lKTtcbiAgICBvc2NpbGxhdG9yLmZyZXF1ZW5jeS5leHBvbmVudGlhbFJhbXBUb1ZhbHVlQXRUaW1lKE1hdGgubWF4KDEsIHRvRnJlcSksIGN0eC5jdXJyZW50VGltZSArIGR1cmF0aW9uKTtcbiAgICBnYWluLmdhaW4uc2V0VmFsdWVBdFRpbWUoMC4wMDAxLCBjdHguY3VycmVudFRpbWUpO1xuICAgIGdhaW4uZ2Fpbi5leHBvbmVudGlhbFJhbXBUb1ZhbHVlQXRUaW1lKGdhaW5WYWx1ZSwgY3R4LmN1cnJlbnRUaW1lICsgMC4wMSk7XG4gICAgZ2Fpbi5nYWluLmV4cG9uZW50aWFsUmFtcFRvVmFsdWVBdFRpbWUoMC4wMDAxLCBjdHguY3VycmVudFRpbWUgKyBkdXJhdGlvbik7XG4gICAgb3NjaWxsYXRvci5jb25uZWN0KGdhaW4pO1xuICAgIGdhaW4uY29ubmVjdCh0aGlzLm1hc3RlckdhaW4gPz8gY3R4LmRlc3RpbmF0aW9uKTtcbiAgICBvc2NpbGxhdG9yLnN0YXJ0KCk7XG4gICAgb3NjaWxsYXRvci5zdG9wKGN0eC5jdXJyZW50VGltZSArIGR1cmF0aW9uICsgMC4wMik7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IGhhbmRsZVZpc2liaWxpdHlDaGFuZ2UgPSAoKTogdm9pZCA9PiB7XG4gICAgaWYgKGRvY3VtZW50LmhpZGRlbikge1xuICAgICAgdGhpcy5wYXVzZUZvckJhY2tncm91bmQoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdm9pZCB0aGlzLnJlc3VtZUZyb21CYWNrZ3JvdW5kKCk7XG4gIH07XG5cbiAgcHJpdmF0ZSByZWFkb25seSBoYW5kbGVQYWdlSGlkZSA9ICgpOiB2b2lkID0+IHtcbiAgICB0aGlzLnBhdXNlRm9yQmFja2dyb3VuZCgpO1xuICB9O1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgaGFuZGxlUGFnZVNob3cgPSAoKTogdm9pZCA9PiB7XG4gICAgdm9pZCB0aGlzLnJlc3VtZUZyb21CYWNrZ3JvdW5kKCk7XG4gIH07XG5cbiAgcHJpdmF0ZSByZWFkb25seSBoYW5kbGVVc2VyQWN0aXZhdGlvbiA9ICgpOiB2b2lkID0+IHtcbiAgICBpZiAoIXRoaXMuZW5hYmxlZCgpIHx8ICF0aGlzLmlzRG9jdW1lbnRWaXNpYmxlKCkpIHJldHVybjtcbiAgICB2b2lkIHRoaXMud2FrZUF1ZGlvKCk7XG4gIH07XG5cbiAgcHJpdmF0ZSBwYXVzZUZvckJhY2tncm91bmQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuYWN0aXZlTWVsb2R5KSB0aGlzLnBhdXNlZE1lbG9keSA9IHRoaXMuYWN0aXZlTWVsb2R5O1xuICAgIGlmICh0aGlzLm11c2ljVGltZXIpIHtcbiAgICAgIHdpbmRvdy5jbGVhckludGVydmFsKHRoaXMubXVzaWNUaW1lcik7XG4gICAgICB0aGlzLm11c2ljVGltZXIgPSB1bmRlZmluZWQ7XG4gICAgfVxuICAgIHRoaXMuYWN0aXZlTWVsb2R5ID0gdW5kZWZpbmVkO1xuICAgIHRoaXMuZmFkZU1hc3RlclRvKDAuMDAwMSwgMC4yKTtcbiAgICBpZiAodGhpcy5zdXNwZW5kVGltZXIpIHdpbmRvdy5jbGVhclRpbWVvdXQodGhpcy5zdXNwZW5kVGltZXIpO1xuICAgIHRoaXMuc3VzcGVuZFRpbWVyID0gd2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5zdXNwZW5kVGltZXIgPSB1bmRlZmluZWQ7XG4gICAgICB2b2lkIHRoaXMuY29udGV4dD8uc3VzcGVuZCgpLmNhdGNoKCgpID0+IHVuZGVmaW5lZCk7XG4gICAgfSwgMjYwKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcmVzdW1lRnJvbUJhY2tncm91bmQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKHRoaXMuc3VzcGVuZFRpbWVyKSB7XG4gICAgICB3aW5kb3cuY2xlYXJUaW1lb3V0KHRoaXMuc3VzcGVuZFRpbWVyKTtcbiAgICAgIHRoaXMuc3VzcGVuZFRpbWVyID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBpZiAoIXRoaXMuZW5hYmxlZCgpKSByZXR1cm47XG4gICAgY29uc3QgbWVsb2R5ID0gdGhpcy5wYXVzZWRNZWxvZHk7XG4gICAgaWYgKCFtZWxvZHkpIHJldHVybjtcbiAgICB0aGlzLnBhdXNlZE1lbG9keSA9IHVuZGVmaW5lZDtcbiAgICBjb25zdCBjdHggPSBhd2FpdCB0aGlzLmVuc3VyZUNvbnRleHQoKTtcbiAgICBhd2FpdCB0aGlzLnJlc3VtZUNvbnRleHQoY3R4KTtcbiAgICB0aGlzLmZhZGVNYXN0ZXJUbygxLCAwLjM1KTtcbiAgICBhd2FpdCB0aGlzLnN0YXJ0TXVzaWMobWVsb2R5KTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgd2FrZUF1ZGlvKCk6IFByb21pc2U8QXVkaW9Db250ZXh0PiB7XG4gICAgY29uc3QgY3R4ID0gYXdhaXQgdGhpcy5lbnN1cmVDb250ZXh0KCk7XG4gICAgYXdhaXQgdGhpcy5yZXN1bWVDb250ZXh0KGN0eCk7XG4gICAgdGhpcy5mYWRlTWFzdGVyVG8oMSwgMC4xMik7XG4gICAgcmV0dXJuIGN0eDtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcmVzdW1lQ29udGV4dChjdHg6IEF1ZGlvQ29udGV4dCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmIChjdHguc3RhdGUgPT09ICdydW5uaW5nJykgcmV0dXJuO1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCBjdHgucmVzdW1lKCk7XG4gICAgfSBjYXRjaCB7XG4gICAgICAvLyBpT1MgcHVlZGUgZXhpZ2lyIHVuYSBudWV2YSBpbnRlcmFjY2nDs24gZGVsIHVzdWFyaW87IGVsIGxpc3RlbmVyIGRlIGFjdGl2YWNpw7NuIHJlaW50ZW50YXLDoS5cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGZhZGVNYXN0ZXJUbyh2YWx1ZTogbnVtYmVyLCBzZWNvbmRzOiBudW1iZXIpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuY29udGV4dCB8fCAhdGhpcy5tYXN0ZXJHYWluKSByZXR1cm47XG4gICAgY29uc3QgZ2FpbiA9IHRoaXMubWFzdGVyR2Fpbi5nYWluO1xuICAgIGNvbnN0IG5vdyA9IHRoaXMuY29udGV4dC5jdXJyZW50VGltZTtcbiAgICBnYWluLmNhbmNlbFNjaGVkdWxlZFZhbHVlcyhub3cpO1xuICAgIGdhaW4uc2V0VGFyZ2V0QXRUaW1lKHZhbHVlLCBub3csIE1hdGgubWF4KDAuMDEsIHNlY29uZHMgLyA0KSk7XG4gIH1cblxuICBwcml2YXRlIGlzRG9jdW1lbnRWaXNpYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0eXBlb2YgZG9jdW1lbnQgPT09ICd1bmRlZmluZWQnIHx8ICFkb2N1bWVudC5oaWRkZW47XG4gIH1cbn1cbiJdfQ==
|
|
451
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmV0cm8tYXVkaW8uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvbWluaS1nYW1lcy9yZXRyby1hdWRpby5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU9uRCxNQUFNLE9BQU8saUJBQWlCO0lBVzVCO1FBUFEsY0FBUyxHQUFHLENBQUMsQ0FBQztRQUtiLFlBQU8sR0FBRyxNQUFNLENBQVUsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUE4YXRDLDJCQUFzQixHQUFHLEdBQVMsRUFBRTtZQUNuRCxJQUFJLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDcEIsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7Z0JBQzFCLE9BQU87WUFDVCxDQUFDO1lBQ0QsS0FBSyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUNuQyxDQUFDLENBQUM7UUFFZSxtQkFBYyxHQUFHLEdBQVMsRUFBRTtZQUMzQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUM1QixDQUFDLENBQUM7UUFFZSxtQkFBYyxHQUFHLEdBQVMsRUFBRTtZQUMzQyxLQUFLLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBQ25DLENBQUMsQ0FBQztRQUVlLHlCQUFvQixHQUFHLEdBQVMsRUFBRTtZQUNqRCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFO2dCQUFFLE9BQU87WUFDekQsS0FBSyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDeEIsQ0FBQyxDQUFDO1FBOWJBLElBQUksT0FBTyxRQUFRLEtBQUssV0FBVyxFQUFFLENBQUM7WUFDcEMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLGtC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QUFDO1FBQ0YsS0FBSyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRSxLQUFLLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDeEYsSUFBSSxLQUFLLEtBQUssT0FBTyxFQUFFLENBQUM7WUFDdEIsS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUNwRCxLQUFLLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDdkQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDcEYsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDekUsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLEtBQUssS0FBSyxNQUFNLEVBQUUsQ0FBQztZQUNyQixNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUM1RSxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsS0FBSyxDQUFDLEVBQUUsR0FB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SyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRU8saUJBQWlCO1FBQ3ZCLE9BQU8sT0FBTyxRQUFRLEtBQUssV0FBVyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQztJQUM3RCxDQUFDOytHQXBnQlUsaUJBQWlCO21IQUFqQixpQkFBaUIsY0FESixNQUFNOzs0RkFDbkIsaUJBQWlCO2tCQUQ3QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG50eXBlIE5vdGUgPSBbbnVtYmVyLCBudW1iZXJdO1xudHlwZSBNZWxvZHlNb2RlID0gJ21lbnUnIHwgJ2dhbWUnO1xudHlwZSBDaGVzc2ltYWxzUG93ZXIgPSAnZWFnbGUnIHwgJ2J1bGwnIHwgJ2thbmdhcm9vJyB8ICdsaW9uJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBSZXRyb0F1ZGlvU2VydmljZSB7XG4gIHByaXZhdGUgY29udGV4dD86IEF1ZGlvQ29udGV4dDtcbiAgcHJpdmF0ZSBtYXN0ZXJHYWluPzogR2Fpbk5vZGU7XG4gIHByaXZhdGUgbXVzaWNUaW1lcj86IG51bWJlcjtcbiAgcHJpdmF0ZSBub3RlSW5kZXggPSAwO1xuICBwcml2YXRlIGFjdGl2ZU1lbG9keT86IE1lbG9keU1vZGU7XG4gIHByaXZhdGUgcGF1c2VkTWVsb2R5PzogTWVsb2R5TW9kZTtcbiAgcHJpdmF0ZSBzdXNwZW5kVGltZXI/OiBudW1iZXI7XG5cbiAgcmVhZG9ubHkgZW5hYmxlZCA9IHNpZ25hbDxib29sZWFuPih0aGlzLnJlYWRFbmFibGVkKCkpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGlmICh0eXBlb2YgZG9jdW1lbnQgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCd2aXNpYmlsaXR5Y2hhbmdlJywgdGhpcy5oYW5kbGVWaXNpYmlsaXR5Q2hhbmdlKTtcbiAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJkb3duJywgdGhpcy5oYW5kbGVVc2VyQWN0aXZhdGlvbiwgeyBwYXNzaXZlOiB0cnVlIH0pO1xuICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hzdGFydCcsIHRoaXMuaGFuZGxlVXNlckFjdGl2YXRpb24sIHsgcGFzc2l2ZTogdHJ1ZSB9KTtcbiAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCB0aGlzLmhhbmRsZVVzZXJBY3RpdmF0aW9uKTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncGFnZWhpZGUnLCB0aGlzLmhhbmRsZVBhZ2VIaWRlKTtcbiAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdwYWdlc2hvdycsIHRoaXMuaGFuZGxlUGFnZVNob3cpO1xuICAgIH1cbiAgfVxuXG4gIHNldEVuYWJsZWQodmFsdWU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmVuYWJsZWQuc2V0KHZhbHVlKTtcbiAgICB0cnkge1xuICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3ZhbC1taW5pLWdhbWVzLWF1ZGlvJywgdmFsdWUgPyAnMScgOiAnMCcpO1xuICAgIH0gY2F0Y2gge1xuICAgICAgLy8gbG9jYWxTdG9yYWdlIHB1ZWRlIG5vIGVzdGFyIGRpc3BvbmlibGUgZW4gU1NSL3Rlc3RzLlxuICAgIH1cbiAgICBpZiAoIXZhbHVlKSB0aGlzLnN0b3BNdXNpYygpO1xuICB9XG5cbiAgYXN5bmMgc3RhcnRNZW51TXVzaWMoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy5zdGFydE11c2ljKCdtZW51Jyk7XG4gIH1cblxuICBhc3luYyBzdGFydEdhbWVNdXNpYygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLnN0YXJ0TXVzaWMoJ2dhbWUnKTtcbiAgfVxuXG4gIGFzeW5jIHN0YXJ0TXVzaWMobW9kZTogTWVsb2R5TW9kZSA9ICdnYW1lJyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICghdGhpcy5lbmFibGVkKCkpIHJldHVybjtcbiAgICBpZiAoIXRoaXMuaXNEb2N1bWVudFZpc2libGUoKSkge1xuICAgICAgdGhpcy5wYXVzZWRNZWxvZHkgPSBtb2RlO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBhd2FpdCB0aGlzLndha2VBdWRpbygpO1xuICAgIGlmICh0aGlzLm11c2ljVGltZXIgJiYgdGhpcy5hY3RpdmVNZWxvZHkgPT09IG1vZGUpIHJldHVybjtcbiAgICB0aGlzLnN0b3BNdXNpYygpO1xuICAgIHRoaXMuZmFkZU1hc3RlclRvKDEsIDAuMjQpO1xuICAgIHRoaXMuYWN0aXZlTWVsb2R5ID0gbW9kZTtcbiAgICB0aGlzLm5vdGVJbmRleCA9IDA7XG4gICAgY29uc3QgbWVsb2R5ID0gbW9kZSA9PT0gJ21lbnUnID8gdGhpcy5tZW51TWVsb2R5KCkgOiB0aGlzLmdhbWVNZWxvZHkoKTtcbiAgICBjb25zdCBpbnRlcnZhbE1zID0gbW9kZSA9PT0gJ21lbnUnID8gNjQwIDogMTkwO1xuICAgIGNvbnN0IHdhdmU6IE9zY2lsbGF0b3JUeXBlID0gbW9kZSA9PT0gJ21lbnUnID8gJ3RyaWFuZ2xlJyA6ICdzcXVhcmUnO1xuICAgIGNvbnN0IGdhaW4gPSBtb2RlID09PSAnbWVudScgPyAwLjAxOCA6IDAuMDI1O1xuICAgIHRoaXMubXVzaWNUaW1lciA9IHdpbmRvdy5zZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICBjb25zdCBzdGVwID0gdGhpcy5ub3RlSW5kZXg7XG4gICAgICBjb25zdCBbZnJlcSwgZHVyYXRpb25dID0gbWVsb2R5W3RoaXMubm90ZUluZGV4ICUgbWVsb2R5Lmxlbmd0aF07XG4gICAgICB0aGlzLm5vdGVJbmRleCArPSAxO1xuICAgICAgdGhpcy50b25lKGZyZXEsIGR1cmF0aW9uLCB3YXZlLCBnYWluKTtcbiAgICAgIGlmIChtb2RlID09PSAnbWVudScpIHRoaXMuc2F2YW5uYVB1bHNlKHN0ZXApO1xuICAgIH0sIGludGVydmFsTXMpO1xuICB9XG5cbiAgc3RvcE11c2ljKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLm11c2ljVGltZXIpIHtcbiAgICAgIHdpbmRvdy5jbGVhckludGVydmFsKHRoaXMubXVzaWNUaW1lcik7XG4gICAgICB0aGlzLm11c2ljVGltZXIgPSB1bmRlZmluZWQ7XG4gICAgfVxuICAgIHRoaXMuYWN0aXZlTWVsb2R5ID0gdW5kZWZpbmVkO1xuICAgIHRoaXMucGF1c2VkTWVsb2R5ID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgZmxpcCgpOiB2b2lkIHtcbiAgICB2b2lkIHRoaXMudG9uZSg0NDAsIDAuMDU1LCAnc3F1YXJlJywgMC4wNSk7XG4gIH1cblxuICBtYXRjaCgpOiB2b2lkIHtcbiAgICB2b2lkIHRoaXMuc2VxdWVuY2UoW1xuICAgICAgWzY2MCwgMC4wOF0sXG4gICAgICBbODgwLCAwLjFdLFxuICAgICAgWzk5MCwgMC4xMl0sXG4gICAgXSk7XG4gIH1cblxuICBtaXNzKCk6IHZvaWQge1xuICAgIHZvaWQgdGhpcy5zZXF1ZW5jZShbXG4gICAgICBbMjIwLCAwLjA4XSxcbiAgICAgIFsxNzQuNjEsIDAuMTJdLFxuICAgIF0pO1xuICB9XG5cbiAgd2luKCk6IHZvaWQge1xuICAgIHRoaXMuc3RvcE11c2ljKCk7XG4gICAgdm9pZCB0aGlzLnNlcXVlbmNlKFtcbiAgICAgIFs1MjMuMjUsIDAuMDldLFxuICAgICAgWzY1OS4yNSwgMC4wOV0sXG4gICAgICBbNzgzLjk5LCAwLjA5XSxcbiAgICAgIFsxMDQ2LjUsIDAuMTRdLFxuICAgICAgWzEzMTguNTEsIDAuMjJdLFxuICAgICAgWzE1NjcuOTgsIDAuMjZdLFxuICAgIF0pO1xuICB9XG5cbiAgbG9zZSgpOiB2b2lkIHtcbiAgICB0aGlzLnN0b3BNdXNpYygpO1xuICAgIHZvaWQgdGhpcy5zZXF1ZW5jZShbXG4gICAgICBbMjkzLjY2LCAwLjEyXSxcbiAgICAgIFsyNDYuOTQsIDAuMTJdLFxuICAgICAgWzE5NiwgMC4yXSxcbiAgICBdKTtcbiAgfVxuXG4gIHNpbW9uUGFkKGZyZXE6IG51bWJlcik6IHZvaWQge1xuICAgIHZvaWQgdGhpcy50b25lKGZyZXEsIDAuMjIsICdzaW5lJywgMC4wNTUpO1xuICB9XG5cbiAgc2ltb25TdGVwT2soKTogdm9pZCB7XG4gICAgdm9pZCB0aGlzLnRvbmUoODgwLCAwLjA4LCAndHJpYW5nbGUnLCAwLjAzNSk7XG4gIH1cblxuICBzaW1vblJvdW5kT2soKTogdm9pZCB7XG4gICAgdm9pZCB0aGlzLnNlcXVlbmNlKFtcbiAgICAgIFs2NTkuMjUsIDAuMDhdLFxuICAgICAgWzg4MCwgMC4wOF0sXG4gICAgICBbMTE3NC42NiwgMC4xMl0sXG4gICAgXSk7XG4gIH1cblxuICBzaW1vbkZhaWwoKTogdm9pZCB7XG4gICAgdm9pZCB0aGlzLnNlcXVlbmNlKFtcbiAgICAgIFsxOTYsIDAuMTJdLFxuICAgICAgWzE0Ni44MywgMC4xOF0sXG4gICAgXSk7XG4gIH1cblxuICBjaGVzc2ltYWxzTW92ZSgpOiB2b2lkIHtcbiAgICB2b2lkIHRoaXMuc2VxdWVuY2UoXG4gICAgICBbXG4gICAgICAgIFszOTIsIDAuMDQ1XSxcbiAgICAgICAgWzQ5My44OCwgMC4wNTVdLFxuICAgICAgXSxcbiAgICAgICd0cmlhbmdsZScsXG4gICAgICAwLjAzMixcbiAgICAgIDQ4LFxuICAgICk7XG4gICAgd2luZG93LnNldFRpbWVvdXQoKCkgPT4gdm9pZCB0aGlzLmZpbHRlcmVkTm9pc2UoMC4wMzUsIDAuMDEyLCAnYmFuZHBhc3MnLCA4MjApLCA4KTtcbiAgfVxuXG4gIGNoZXNzaW1hbHNCb3RNb3ZlKCk6IHZvaWQge1xuICAgIHZvaWQgdGhpcy5zZXF1ZW5jZShcbiAgICAgIFtcbiAgICAgICAgWzMyOS42MywgMC4wNTVdLFxuICAgICAgICBbMjQ2Ljk0LCAwLjA3XSxcbiAgICAgIF0sXG4gICAgICAnc2F3dG9vdGgnLFxuICAgICAgMC4wMjQsXG4gICAgICA1NixcbiAgICApO1xuICAgIHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHZvaWQgdGhpcy5maWx0ZXJlZE5vaXNlKDAuMDUsIDAuMDEsICdsb3dwYXNzJywgNDIwKSwgMTYpO1xuICB9XG5cbiAgY2hlc3NpbWFsc0NhcHR1cmUoKTogdm9pZCB7XG4gICAgdm9pZCB0aGlzLnNlcXVlbmNlKFxuICAgICAgW1xuICAgICAgICBbMTc0LjYxLCAwLjA0XSxcbiAgICAgICAgWzI0Ni45NCwgMC4wNDVdLFxuICAgICAgICBbNTg3LjMzLCAwLjA5NV0sXG4gICAgICAgIFs3ODMuOTksIDAuMDhdLFxuICAgICAgXSxcbiAgICAgICdzcXVhcmUnLFxuICAgICAgMC4wNDYsXG4gICAgICA0NCxcbiAgICApO1xuICAgIHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHZvaWQgdGhpcy5zd2VlcCg5NiwgNDIsIDAuMTgsICdzYXd0b290aCcsIDAuMDI2KSwgMjApO1xuICAgIHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHZvaWQgdGhpcy5maWx0ZXJlZE5vaXNlKDAuMTgsIDAuMDUsICdsb3dwYXNzJywgNTIwKSwgMTgpO1xuICAgIHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHZvaWQgdGhpcy5maWx0ZXJlZE5vaXNlKDAuMDcsIDAuMDI4LCAnYmFuZHBhc3MnLCAxODAwKSwgODQpO1xuICB9XG5cbiAgY2hlc3NpbWFsc1Bvd2VyKHBvd2VyOiBDaGVzc2ltYWxzUG93ZXIpOiB2b2lkIHtcbiAgICBjb25zdCBub3RlczogUmVjb3JkPENoZXNzaW1hbHNQb3dlciwgTm90ZVtdPiA9IHtcbiAgICAgIGVhZ2xlOiBbXG4gICAgICAgIFs2NTkuMjUsIDAuMDU1XSxcbiAgICAgICAgWzg4MCwgMC4wNjVdLFxuICAgICAgICBbMTMxOC41MSwgMC4xMl0sXG4gICAgICBdLFxuICAgICAgYnVsbDogW1xuICAgICAgICBbMTk2LCAwLjA3NV0sXG4gICAgICAgIFsxNjQuODEsIDAuMDc1XSxcbiAgICAgICAgWzI0Ni45NCwgMC4xM10sXG4gICAgICBdLFxuICAgICAga2FuZ2Fyb286IFtcbiAgICAgICAgWzM5MiwgMC4wNTVdLFxuICAgICAgICBbMCwgMC4wNF0sXG4gICAgICAgIFs3ODMuOTksIDAuMTFdLFxuICAgICAgXSxcbiAgICAgIGxpb246IFtcbiAgICAgICAgWzI2MS42MywgMC4wNl0sXG4gICAgICAgIFszOTIsIDAuMDZdLFxuICAgICAgICBbNTIzLjI1LCAwLjA2XSxcbiAgICAgICAgWzc4My45OSwgMC4xNF0sXG4gICAgICBdLFxuICAgIH07XG4gICAgdm9pZCB0aGlzLnNlcXVlbmNlKG5vdGVzW3Bvd2VyXSwgcG93ZXIgPT09ICdidWxsJyA/ICdzYXd0b290aCcgOiAndHJpYW5nbGUnLCAwLjA0NiwgNTgpO1xuICAgIGlmIChwb3dlciA9PT0gJ2VhZ2xlJykge1xuICAgICAgdm9pZCB0aGlzLnN3ZWVwKDcyMCwgMTU2OCwgMC4xOCwgJ3RyaWFuZ2xlJywgMC4wMjgpO1xuICAgICAgdm9pZCB0aGlzLmZpbHRlcmVkTm9pc2UoMC4yMiwgMC4wMjUsICdoaWdocGFzcycsIDE2MDApO1xuICAgICAgd2luZG93LnNldFRpbWVvdXQoKCkgPT4gdm9pZCB0aGlzLmZpbHRlcmVkTm9pc2UoMC4wOCwgMC4wMTgsICdiYW5kcGFzcycsIDI2MDApLCA5Mik7XG4gICAgICB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB2b2lkIHRoaXMudG9uZSgxNzYwLCAwLjA1NSwgJ3NpbmUnLCAwLjAxOCksIDE1MCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChwb3dlciA9PT0gJ2J1bGwnKSB7XG4gICAgICB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB2b2lkIHRoaXMudG9uZSg4Mi40MSwgMC4xNiwgJ3Nhd3Rvb3RoJywgMC4wMzgpLCA3Mik7XG4gICAgICB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB2b2lkIHRoaXMuc3dlZXAoMTM4LjU5LCA2NS40MSwgMC4xOCwgJ3Nhd3Rvb3RoJywgMC4wMjYpLCAxMTgpO1xuICAgICAgd2luZG93LnNldFRpbWVvdXQoKCkgPT4gdm9pZCB0aGlzLmZpbHRlcmVkTm9pc2UoMC4xNiwgMC4wMzgsICdsb3dwYXNzJywgMjYwKSwgMzYpO1xuICAgICAgd2luZG93LnNldFRpbWVvdXQoKCkgPT4gdm9pZCB0aGlzLmZpbHRlcmVkTm9pc2UoMC4wNTUsIDAuMDI2LCAnYmFuZHBhc3MnLCA5NjApLCAxNzApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAocG93ZXIgPT09ICdrYW5nYXJvbycpIHtcbiAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHZvaWQgdGhpcy5zd2VlcCg0MjAsIDk0MCwgMC4xMSwgJ3NpbmUnLCAwLjAzMiksIDg4KTtcbiAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHZvaWQgdGhpcy5zd2VlcCg5NDAsIDUyMCwgMC4xLCAnc2luZScsIDAuMDI2KSwgMTkwKTtcbiAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHZvaWQgdGhpcy50b25lKDI2MS42MywgMC4wNTUsICd0cmlhbmdsZScsIDAuMDE4KSwgMjQ1KTtcbiAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHZvaWQgdGhpcy5maWx0ZXJlZE5vaXNlKDAuMDM1LCAwLjAxOCwgJ2JhbmRwYXNzJywgMTE4MCksIDIxOCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHZvaWQgdGhpcy5zd2VlcCgxNjQuODEsIDM5MiwgMC4yNCwgJ3Nhd3Rvb3RoJywgMC4wMzQpLCA3MCk7XG4gICAgd2luZG93LnNldFRpbWVvdXQoKCkgPT4gdm9pZCB0aGlzLnRvbmUoOTgsIDAuMTgsICdzYXd0b290aCcsIDAuMDIpLCAxNTApO1xuICAgIHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHZvaWQgdGhpcy5maWx0ZXJlZE5vaXNlKDAuMjgsIDAuMDMyLCAnYmFuZHBhc3MnLCAzNDApLCA2Mik7XG4gICAgd2luZG93LnNldFRpbWVvdXQoKCkgPT4gdm9pZCB0aGlzLnN3ZWVwKDE5NiwgMTQ2LjgzLCAwLjIyLCAnc2F3dG9vdGgnLCAwLjAyMiksIDExNik7XG4gIH1cblxuICBjaGVzc2ltYWxzVmljdG9yeSgpOiB2b2lkIHtcbiAgICB0aGlzLnN0b3BNdXNpYygpO1xuICAgIHZvaWQgdGhpcy5zZXF1ZW5jZShcbiAgICAgIFtcbiAgICAgICAgWzE5NiwgMC4wOF0sXG4gICAgICAgIFsyNjEuNjMsIDAuMDhdLFxuICAgICAgICBbMzI5LjYzLCAwLjA4XSxcbiAgICAgICAgWzM5MiwgMC4xXSxcbiAgICAgICAgWzUyMy4yNSwgMC4xMl0sXG4gICAgICAgIFs3ODMuOTksIDAuMTZdLFxuICAgICAgICBbMTA0Ni41LCAwLjIyXSxcbiAgICAgIF0sXG4gICAgICAndHJpYW5nbGUnLFxuICAgICAgMC4wNSxcbiAgICAgIDcyLFxuICAgICk7XG4gICAgd2luZG93LnNldFRpbWVvdXQoKCkgPT4gdm9pZCB0aGlzLnN3ZWVwKDEzMC44MSwgNjUuNDEsIDAuMjgsICdzYXd0b290aCcsIDAuMDIpLCA0MCk7XG4gICAgd2luZG93LnNldFRpbWVvdXQoKCkgPT4gdm9pZCB0aGlzLnN3ZWVwKDUyMy4yNSwgMTU2Ny45OCwgMC4zNCwgJ3NpbmUnLCAwLjAyNiksIDI0MCk7XG4gICAgd2luZG93LnNldFRpbWVvdXQoKCkgPT4gdm9pZCB0aGlzLmZpbHRlcmVkTm9pc2UoMC4xNiwgMC4wMjIsICdiYW5kcGFzcycsIDE0MDApLCAxMjApO1xuICAgIHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHZvaWQgdGhpcy5zZXF1ZW5jZShbWzk4Ny43NywgMC4wOF0sIFsxMzE4LjUxLCAwLjEyXV0sICd0cmlhbmdsZScsIDAuMDMyLCA4NiksIDUyMCk7XG4gIH1cblxuICBjaGVzc2ltYWxzSm9pblJlcXVlc3QoKTogdm9pZCB7XG4gICAgdm9pZCB0aGlzLnNlcXVlbmNlKFxuICAgICAgW1xuICAgICAgICBbNTIzLjI1LCAwLjA1NV0sXG4gICAgICAgIFs2NTkuMjUsIDAuMDZdLFxuICAgICAgICBbOTg3Ljc3LCAwLjEyXSxcbiAgICAgIF0sXG4gICAgICAndHJpYW5nbGUnLFxuICAgICAgMC4wMzQsXG4gICAgICA1OCxcbiAgICApO1xuICAgIHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHZvaWQgdGhpcy50b25lKDEzMTguNTEsIDAuMDc1LCAnc2luZScsIDAuMDIpLCAxMzYpO1xuICAgIHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHZvaWQgdGhpcy5maWx0ZXJlZE5vaXNlKDAuMDYsIDAuMDEsICdoaWdocGFzcycsIDE4MDApLCA5OCk7XG4gIH1cblxuICBjaGVzc2ltYWxzUG93ZXJVbmxvY2tlZCgpOiB2b2lkIHtcbiAgICB2b2lkIHRoaXMuc2VxdWVuY2UoXG4gICAgICBbXG4gICAgICAgIFszOTIsIDAuMDU1XSxcbiAgICAgICAgWzUyMy4yNSwgMC4wNTVdLFxuICAgICAgICBbNjU5LjI1LCAwLjA4XSxcbiAgICAgICAgWzk4Ny43NywgMC4xM10sXG4gICAgICBdLFxuICAgICAgJ3RyaWFuZ2xlJyxcbiAgICAgIDAuMDM4LFxuICAgICAgNjQsXG4gICAgKTtcbiAgICB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB2b2lkIHRoaXMuc3dlZXAoMjIwLCA4ODAsIDAuMjIsICdzaW5lJywgMC4wMjQpLCA3MCk7XG4gICAgd2luZG93LnNldFRpbWVvdXQoKCkgPT4gdm9pZCB0aGlzLmZpbHRlcmVkTm9pc2UoMC4yNCwgMC4wMTgsICdiYW5kcGFzcycsIDEyMDApLCA1NCk7XG4gIH1cblxuICBwcml2YXRlIHJlYWRFbmFibGVkKCk6IGJvb2xlYW4ge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3ZhbC1taW5pLWdhbWVzLWF1ZGlvJykgIT09ICcwJztcbiAgICB9IGNhdGNoIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZW5zdXJlQ29udGV4dCgpOiBQcm9taXNlPEF1ZGlvQ29udGV4dD4ge1xuICAgIGlmICghdGhpcy5jb250ZXh0IHx8IHRoaXMuY29udGV4dC5zdGF0ZSA9PT0gJ2Nsb3NlZCcpIHtcbiAgICAgIHRoaXMuY29udGV4dCA9IG5ldyBBdWRpb0NvbnRleHQoKTtcbiAgICAgIHRoaXMubWFzdGVyR2FpbiA9IHRoaXMuY29udGV4dC5jcmVhdGVHYWluKCk7XG4gICAgICB0aGlzLm1hc3RlckdhaW4uZ2Fpbi52YWx1ZSA9IDE7XG4gICAgICB0aGlzLm1hc3RlckdhaW4uY29ubmVjdCh0aGlzLmNvbnRleHQuZGVzdGluYXRpb24pO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5jb250ZXh0O1xuICB9XG5cbiAgcHJpdmF0ZSBtZW51TWVsb2R5KCk6IE5vdGVbXSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIFsyMjAsIDAuMzhdLFxuICAgICAgWzAsIDAuMTJdLFxuICAgICAgWzI2MS42MywgMC4zNF0sXG4gICAgICBbMzI5LjYzLCAwLjQyXSxcbiAgICAgIFsyOTMuNjYsIDAuMjhdLFxuICAgICAgWzAsIDAuMTJdLFxuICAgICAgWzM5MiwgMC40OF0sXG4gICAgICBbMzI5LjYzLCAwLjM0XSxcbiAgICAgIFsyNjEuNjMsIDAuMzZdLFxuICAgICAgWzIyMCwgMC41OF0sXG4gICAgICBbMCwgMC4yXSxcbiAgICAgIFsyOTMuNjYsIDAuMzRdLFxuICAgICAgWzMyOS42MywgMC40Ml0sXG4gICAgICBbNDQwLCAwLjVdLFxuICAgICAgWzM5MiwgMC4zNl0sXG4gICAgICBbMjYxLjYzLCAwLjYyXSxcbiAgICBdO1xuICB9XG5cbiAgcHJpdmF0ZSBzYXZhbm5hUHVsc2Uoc3RlcDogbnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKHN0ZXAgJSA0ID09PSAwKSB7XG4gICAgICB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB2b2lkIHRoaXMuc3dlZXAoOTYsIDQ4LCAwLjE4LCAnc2luZScsIDAuMDEyKSwgMTgpO1xuICAgIH1cbiAgICBpZiAoc3RlcCAlIDggPT09IDUpIHtcbiAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHZvaWQgdGhpcy50b25lKDE2NC44MSwgMC4wNDUsICd0cmlhbmdsZScsIDAuMDEyKSwgOTYpO1xuICAgIH1cbiAgICBpZiAoc3RlcCAlIDE2ID09PSAxMCkge1xuICAgICAgd2luZG93LnNldFRpbWVvdXQoKCkgPT4gdm9pZCB0aGlzLnN3ZWVwKDE0Ni44MywgMTk2LCAwLjA4LCAndHJpYW5nbGUnLCAwLjAxKSwgMTQwKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdhbWVNZWxvZHkoKTogTm90ZVtdIHtcbiAgICByZXR1cm4gW1xuICAgICAgWzUyMy4yNSwgMC4xM10sXG4gICAgICBbNjU5LjI1LCAwLjEzXSxcbiAgICAgIFs3ODMuOTksIDAuMTNdLFxuICAgICAgWzEwNDYuNSwgMC4xOF0sXG4gICAgICBbNzgzLjk5LCAwLjEzXSxcbiAgICAgIFs2NTkuMjUsIDAuMTNdLFxuICAgICAgWzU4Ny4zMywgMC4xOF0sXG4gICAgICBbNjU5LjI1LCAwLjE4XSxcbiAgICBdO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBzZXF1ZW5jZShcbiAgICBub3RlczogTm90ZVtdLFxuICAgIHdhdmU6IE9zY2lsbGF0b3JUeXBlID0gJ3NxdWFyZScsXG4gICAgZ2FpbiA9IDAuMDU1LFxuICAgIGludGVydmFsTXMgPSA5MCxcbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKCF0aGlzLmVuYWJsZWQoKSkgcmV0dXJuO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbm90ZXMubGVuZ3RoOyBpICs9IDEpIHtcbiAgICAgIGNvbnN0IFtmcmVxLCBkdXJhdGlvbl0gPSBub3Rlc1tpXTtcbiAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHZvaWQgdGhpcy50b25lKGZyZXEsIGR1cmF0aW9uLCB3YXZlLCBnYWluKSwgaSAqIGludGVydmFsTXMpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgdG9uZShmcmVxOiBudW1iZXIsIGR1cmF0aW9uID0gMC4xLCB0eXBlOiBPc2NpbGxhdG9yVHlwZSA9ICdzcXVhcmUnLCBnYWluVmFsdWUgPSAwLjA0KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKCF0aGlzLmVuYWJsZWQoKSkgcmV0dXJuO1xuICAgIGlmIChmcmVxIDw9IDApIHJldHVybjtcbiAgICBjb25zdCBjdHggPSBhd2FpdCB0aGlzLndha2VBdWRpbygpO1xuICAgIGNvbnN0IG9zY2lsbGF0b3IgPSBjdHguY3JlYXRlT3NjaWxsYXRvcigpO1xuICAgIGNvbnN0IGdhaW4gPSBjdHguY3JlYXRlR2FpbigpO1xuICAgIG9zY2lsbGF0b3IudHlwZSA9IHR5cGU7XG4gICAgb3NjaWxsYXRvci5mcmVxdWVuY3kudmFsdWUgPSBmcmVxO1xuICAgIGdhaW4uZ2Fpbi5zZXRWYWx1ZUF0VGltZSgwLjAwMDEsIGN0eC5jdXJyZW50VGltZSk7XG4gICAgZ2Fpbi5nYWluLmV4cG9uZW50aWFsUmFtcFRvVmFsdWVBdFRpbWUoZ2FpblZhbHVlLCBjdHguY3VycmVudFRpbWUgKyAwLjAxKTtcbiAgICBnYWluLmdhaW4uZXhwb25lbnRpYWxSYW1wVG9WYWx1ZUF0VGltZSgwLjAwMDEsIGN0eC5jdXJyZW50VGltZSArIGR1cmF0aW9uKTtcbiAgICBvc2NpbGxhdG9yLmNvbm5lY3QoZ2Fpbik7XG4gICAgZ2Fpbi5jb25uZWN0KHRoaXMubWFzdGVyR2FpbiA/PyBjdHguZGVzdGluYXRpb24pO1xuICAgIG9zY2lsbGF0b3Iuc3RhcnQoKTtcbiAgICBvc2NpbGxhdG9yLnN0b3AoY3R4LmN1cnJlbnRUaW1lICsgZHVyYXRpb24gKyAwLjAyKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgc3dlZXAoXG4gICAgZnJvbUZyZXE6IG51bWJlcixcbiAgICB0b0ZyZXE6IG51bWJlcixcbiAgICBkdXJhdGlvbiA9IDAuMTYsXG4gICAgdHlwZTogT3NjaWxsYXRvclR5cGUgPSAndHJpYW5nbGUnLFxuICAgIGdhaW5WYWx1ZSA9IDAuMDMsXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICghdGhpcy5lbmFibGVkKCkpIHJldHVybjtcbiAgICBjb25zdCBjdHggPSBhd2FpdCB0aGlzLndha2VBdWRpbygpO1xuICAgIGNvbnN0IG9zY2lsbGF0b3IgPSBjdHguY3JlYXRlT3NjaWxsYXRvcigpO1xuICAgIGNvbnN0IGdhaW4gPSBjdHguY3JlYXRlR2FpbigpO1xuICAgIG9zY2lsbGF0b3IudHlwZSA9IHR5cGU7XG4gICAgb3NjaWxsYXRvci5mcmVxdWVuY3kuc2V0VmFsdWVBdFRpbWUoZnJvbUZyZXEsIGN0eC5jdXJyZW50VGltZSk7XG4gICAgb3NjaWxsYXRvci5mcmVxdWVuY3kuZXhwb25lbnRpYWxSYW1wVG9WYWx1ZUF0VGltZShNYXRoLm1heCgxLCB0b0ZyZXEpLCBjdHguY3VycmVudFRpbWUgKyBkdXJhdGlvbik7XG4gICAgZ2Fpbi5nYWluLnNldFZhbHVlQXRUaW1lKDAuMDAwMSwgY3R4LmN1cnJlbnRUaW1lKTtcbiAgICBnYWluLmdhaW4uZXhwb25lbnRpYWxSYW1wVG9WYWx1ZUF0VGltZShnYWluVmFsdWUsIGN0eC5jdXJyZW50VGltZSArIDAuMDEpO1xuICAgIGdhaW4uZ2Fpbi5leHBvbmVudGlhbFJhbXBUb1ZhbHVlQXRUaW1lKDAuMDAwMSwgY3R4LmN1cnJlbnRUaW1lICsgZHVyYXRpb24pO1xuICAgIG9zY2lsbGF0b3IuY29ubmVjdChnYWluKTtcbiAgICBnYWluLmNvbm5lY3QodGhpcy5tYXN0ZXJHYWluID8/IGN0eC5kZXN0aW5hdGlvbik7XG4gICAgb3NjaWxsYXRvci5zdGFydCgpO1xuICAgIG9zY2lsbGF0b3Iuc3RvcChjdHguY3VycmVudFRpbWUgKyBkdXJhdGlvbiArIDAuMDIpO1xuICB9XG5cbiAgLy8gQ2hlc3NpbWFscyB1c2VzIGdlbmVyYXRlZCBXZWJBdWRpbyBsYXllcnMgaW5zdGVhZCBvZiB0aGlyZC1wYXJ0eSBzYW1wbGVzLFxuICAvLyBhdm9pZGluZyBsaWNlbnNpbmcgcmlzayB3aGlsZSBrZWVwaW5nIGVhY2ggYW5pbWFsIHBvd2VyIGV4cHJlc3NpdmUuXG4gIHByaXZhdGUgYXN5bmMgZmlsdGVyZWROb2lzZShcbiAgICBkdXJhdGlvbiA9IDAuMTIsXG4gICAgZ2FpblZhbHVlID0gMC4wMjUsXG4gICAgZmlsdGVyVHlwZTogQmlxdWFkRmlsdGVyVHlwZSA9ICdiYW5kcGFzcycsXG4gICAgZnJlcXVlbmN5ID0gOTAwLFxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAoIXRoaXMuZW5hYmxlZCgpKSByZXR1cm47XG4gICAgY29uc3QgY3R4ID0gYXdhaXQgdGhpcy53YWtlQXVkaW8oKTtcbiAgICBjb25zdCBzYW1wbGVDb3VudCA9IE1hdGgubWF4KDEsIE1hdGguZmxvb3IoY3R4LnNhbXBsZVJhdGUgKiBkdXJhdGlvbikpO1xuICAgIGNvbnN0IGJ1ZmZlciA9IGN0eC5jcmVhdGVCdWZmZXIoMSwgc2FtcGxlQ291bnQsIGN0eC5zYW1wbGVSYXRlKTtcbiAgICBjb25zdCBjaGFubmVsID0gYnVmZmVyLmdldENoYW5uZWxEYXRhKDApO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2FtcGxlQ291bnQ7IGkgKz0gMSkge1xuICAgICAgY29uc3QgZGVjYXkgPSAxIC0gaSAvIHNhbXBsZUNvdW50O1xuICAgICAgY2hhbm5lbFtpXSA9IChNYXRoLnJhbmRvbSgpICogMiAtIDEpICogZGVjYXk7XG4gICAgfVxuXG4gICAgY29uc3Qgc291cmNlID0gY3R4LmNyZWF0ZUJ1ZmZlclNvdXJjZSgpO1xuICAgIGNvbnN0IGZpbHRlciA9IGN0eC5jcmVhdGVCaXF1YWRGaWx0ZXIoKTtcbiAgICBjb25zdCBnYWluID0gY3R4LmNyZWF0ZUdhaW4oKTtcbiAgICBmaWx0ZXIudHlwZSA9IGZpbHRlclR5cGU7XG4gICAgZmlsdGVyLmZyZXF1ZW5jeS52YWx1ZSA9IGZyZXF1ZW5jeTtcbiAgICBmaWx0ZXIuUS52YWx1ZSA9IGZpbHRlclR5cGUgPT09ICdsb3dwYXNzJyA/IDAuNyA6IDEuODtcbiAgICBnYWluLmdhaW4uc2V0VmFsdWVBdFRpbWUoMC4wMDAxLCBjdHguY3VycmVudFRpbWUpO1xuICAgIGdhaW4uZ2Fpbi5leHBvbmVudGlhbFJhbXBUb1ZhbHVlQXRUaW1lKGdhaW5WYWx1ZSwgY3R4LmN1cnJlbnRUaW1lICsgMC4wMTIpO1xuICAgIGdhaW4uZ2Fpbi5leHBvbmVudGlhbFJhbXBUb1ZhbHVlQXRUaW1lKDAuMDAwMSwgY3R4LmN1cnJlbnRUaW1lICsgZHVyYXRpb24pO1xuICAgIHNvdXJjZS5idWZmZXIgPSBidWZmZXI7XG4gICAgc291cmNlLmNvbm5lY3QoZmlsdGVyKTtcbiAgICBmaWx0ZXIuY29ubmVjdChnYWluKTtcbiAgICBnYWluLmNvbm5lY3QodGhpcy5tYXN0ZXJHYWluID8/IGN0eC5kZXN0aW5hdGlvbik7XG4gICAgc291cmNlLnN0YXJ0KCk7XG4gICAgc291cmNlLnN0b3AoY3R4LmN1cnJlbnRUaW1lICsgZHVyYXRpb24gKyAwLjAyKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgaGFuZGxlVmlzaWJpbGl0eUNoYW5nZSA9ICgpOiB2b2lkID0+IHtcbiAgICBpZiAoZG9jdW1lbnQuaGlkZGVuKSB7XG4gICAgICB0aGlzLnBhdXNlRm9yQmFja2dyb3VuZCgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB2b2lkIHRoaXMucmVzdW1lRnJvbUJhY2tncm91bmQoKTtcbiAgfTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGhhbmRsZVBhZ2VIaWRlID0gKCk6IHZvaWQgPT4ge1xuICAgIHRoaXMucGF1c2VGb3JCYWNrZ3JvdW5kKCk7XG4gIH07XG5cbiAgcHJpdmF0ZSByZWFkb25seSBoYW5kbGVQYWdlU2hvdyA9ICgpOiB2b2lkID0+IHtcbiAgICB2b2lkIHRoaXMucmVzdW1lRnJvbUJhY2tncm91bmQoKTtcbiAgfTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGhhbmRsZVVzZXJBY3RpdmF0aW9uID0gKCk6IHZvaWQgPT4ge1xuICAgIGlmICghdGhpcy5lbmFibGVkKCkgfHwgIXRoaXMuaXNEb2N1bWVudFZpc2libGUoKSkgcmV0dXJuO1xuICAgIHZvaWQgdGhpcy53YWtlQXVkaW8oKTtcbiAgfTtcblxuICBwcml2YXRlIHBhdXNlRm9yQmFja2dyb3VuZCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5hY3RpdmVNZWxvZHkpIHRoaXMucGF1c2VkTWVsb2R5ID0gdGhpcy5hY3RpdmVNZWxvZHk7XG4gICAgaWYgKHRoaXMubXVzaWNUaW1lcikge1xuICAgICAgd2luZG93LmNsZWFySW50ZXJ2YWwodGhpcy5tdXNpY1RpbWVyKTtcbiAgICAgIHRoaXMubXVzaWNUaW1lciA9IHVuZGVmaW5lZDtcbiAgICB9XG4gICAgdGhpcy5hY3RpdmVNZWxvZHkgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5mYWRlTWFzdGVyVG8oMC4wMDAxLCAwLjIpO1xuICAgIGlmICh0aGlzLnN1c3BlbmRUaW1lcikgd2luZG93LmNsZWFyVGltZW91dCh0aGlzLnN1c3BlbmRUaW1lcik7XG4gICAgdGhpcy5zdXNwZW5kVGltZXIgPSB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnN1c3BlbmRUaW1lciA9IHVuZGVmaW5lZDtcbiAgICAgIHZvaWQgdGhpcy5jb250ZXh0Py5zdXNwZW5kKCkuY2F0Y2goKCkgPT4gdW5kZWZpbmVkKTtcbiAgICB9LCAyNjApO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyByZXN1bWVGcm9tQmFja2dyb3VuZCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAodGhpcy5zdXNwZW5kVGltZXIpIHtcbiAgICAgIHdpbmRvdy5jbGVhclRpbWVvdXQodGhpcy5zdXNwZW5kVGltZXIpO1xuICAgICAgdGhpcy5zdXNwZW5kVGltZXIgPSB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGlmICghdGhpcy5lbmFibGVkKCkpIHJldHVybjtcbiAgICBjb25zdCBtZWxvZHkgPSB0aGlzLnBhdXNlZE1lbG9keTtcbiAgICBpZiAoIW1lbG9keSkgcmV0dXJuO1xuICAgIHRoaXMucGF1c2VkTWVsb2R5ID0gdW5kZWZpbmVkO1xuICAgIGNvbnN0IGN0eCA9IGF3YWl0IHRoaXMuZW5zdXJlQ29udGV4dCgpO1xuICAgIGF3YWl0IHRoaXMucmVzdW1lQ29udGV4dChjdHgpO1xuICAgIHRoaXMuZmFkZU1hc3RlclRvKDEsIDAuMzUpO1xuICAgIGF3YWl0IHRoaXMuc3RhcnRNdXNpYyhtZWxvZHkpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyB3YWtlQXVkaW8oKTogUHJvbWlzZTxBdWRpb0NvbnRleHQ+IHtcbiAgICBjb25zdCBjdHggPSBhd2FpdCB0aGlzLmVuc3VyZUNvbnRleHQoKTtcbiAgICBhd2FpdCB0aGlzLnJlc3VtZUNvbnRleHQoY3R4KTtcbiAgICB0aGlzLmZhZGVNYXN0ZXJUbygxLCAwLjEyKTtcbiAgICByZXR1cm4gY3R4O1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyByZXN1bWVDb250ZXh0KGN0eDogQXVkaW9Db250ZXh0KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKGN0eC5zdGF0ZSA9PT0gJ3J1bm5pbmcnKSByZXR1cm47XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IGN0eC5yZXN1bWUoKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIC8vIGlPUyBwdWVkZSBleGlnaXIgdW5hIG51ZXZhIGludGVyYWNjacOzbiBkZWwgdXN1YXJpbzsgZWwgbGlzdGVuZXIgZGUgYWN0aXZhY2nDs24gcmVpbnRlbnRhcsOhLlxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZmFkZU1hc3RlclRvKHZhbHVlOiBudW1iZXIsIHNlY29uZHM6IG51bWJlcik6IHZvaWQge1xuICAgIGlmICghdGhpcy5jb250ZXh0IHx8ICF0aGlzLm1hc3RlckdhaW4pIHJldHVybjtcbiAgICBjb25zdCBnYWluID0gdGhpcy5tYXN0ZXJHYWluLmdhaW47XG4gICAgY29uc3Qgbm93ID0gdGhpcy5jb250ZXh0LmN1cnJlbnRUaW1lO1xuICAgIGdhaW4uY2FuY2VsU2NoZWR1bGVkVmFsdWVzKG5vdyk7XG4gICAgZ2Fpbi5zZXRUYXJnZXRBdFRpbWUodmFsdWUsIG5vdywgTWF0aC5tYXgoMC4wMSwgc2Vjb25kcyAvIDQpKTtcbiAgfVxuXG4gIHByaXZhdGUgaXNEb2N1bWVudFZpc2libGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHR5cGVvZiBkb2N1bWVudCA9PT0gJ3VuZGVmaW5lZCcgfHwgIWRvY3VtZW50LmhpZGRlbjtcbiAgfVxufVxuIl19
|
package/esm2022/lib/version.mjs
CHANGED
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
* Current version of valtech-components.
|
|
3
3
|
* This is automatically updated during the publish process.
|
|
4
4
|
*/
|
|
5
|
-
export const VERSION = '4.0.
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
5
|
+
export const VERSION = '4.0.404';
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDdXJyZW50IHZlcnNpb24gb2YgdmFsdGVjaC1jb21wb25lbnRzLlxuICogVGhpcyBpcyBhdXRvbWF0aWNhbGx5IHVwZGF0ZWQgZHVyaW5nIHRoZSBwdWJsaXNoIHByb2Nlc3MuXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzQuMC40MDQnO1xuIl19
|