@seniorsistemas/components-ai 1.3.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/dynamic-form/dynamic-form.component.mjs +263 -368
- package/esm2022/lib/components/dynamic-form/fields/dynamic-field-checkbox.component.mjs +53 -0
- package/esm2022/lib/components/dynamic-form/fields/dynamic-field-date.component.mjs +5 -3
- package/esm2022/lib/components/dynamic-form/fields/dynamic-field-datetime.component.mjs +5 -3
- package/esm2022/lib/components/dynamic-form/fields/dynamic-field-dropdown.component.mjs +5 -3
- package/esm2022/lib/components/dynamic-form/fields/dynamic-field-image.component.mjs +162 -0
- package/esm2022/lib/components/dynamic-form/fields/dynamic-field-lookup.component.mjs +203 -49
- package/esm2022/lib/components/dynamic-form/fields/dynamic-field-multiselect.component.mjs +90 -0
- package/esm2022/lib/components/dynamic-form/fields/dynamic-field-number.component.mjs +3 -3
- package/esm2022/lib/components/dynamic-form/fields/dynamic-field-text.component.mjs +7 -7
- package/esm2022/lib/components/dynamic-form/fields/dynamic-field-time.component.mjs +66 -0
- package/esm2022/lib/components/dynamic-form/fields/index.mjs +5 -1
- package/esm2022/lib/components/dynamic-form/models/dynamic-form.models.mjs +1 -1
- package/esm2022/lib/components/loading/iassist-icon.component.mjs +14 -0
- package/esm2022/lib/components/loading/loading.component.mjs +47 -4
- package/esm2022/lib/i18n/en-US.json +4 -1
- package/esm2022/lib/i18n/es-ES.json +4 -1
- package/esm2022/lib/i18n/pt-BR.json +4 -1
- package/esm2022/lib/models/entity-list.config.mjs +1 -1
- package/esm2022/lib/services/websocket.service.mjs +184 -0
- package/esm2022/public-api.mjs +3 -1
- package/fesm2022/seniorsistemas-components-ai.mjs +1283 -661
- package/fesm2022/seniorsistemas-components-ai.mjs.map +1 -1
- package/lib/components/dynamic-form/dynamic-form.component.d.ts +8 -17
- package/lib/components/dynamic-form/fields/dynamic-field-checkbox.component.d.ts +8 -0
- package/lib/components/dynamic-form/fields/dynamic-field-image.component.d.ts +21 -0
- package/lib/components/dynamic-form/fields/dynamic-field-lookup.component.d.ts +19 -6
- package/lib/components/dynamic-form/fields/dynamic-field-multiselect.component.d.ts +10 -0
- package/lib/components/dynamic-form/fields/dynamic-field-time.component.d.ts +9 -0
- package/lib/components/dynamic-form/fields/index.d.ts +4 -0
- package/lib/components/dynamic-form/models/dynamic-form.models.d.ts +30 -84
- package/lib/components/loading/iassist-icon.component.d.ts +6 -0
- package/lib/components/loading/loading.component.d.ts +1 -1
- package/lib/models/entity-list.config.d.ts +12 -132
- package/lib/services/websocket.service.d.ts +63 -0
- package/package.json +3 -2
- package/public-api.d.ts +2 -0
- package/src/lib/i18n/en-US.json +4 -1
- package/src/lib/i18n/es-ES.json +4 -1
- package/src/lib/i18n/pt-BR.json +4 -1
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Component, Input, ChangeDetectionStrategy } from '@angular/core';
|
|
2
2
|
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { IassistIconComponent } from './iassist-icon.component';
|
|
3
4
|
import * as i0 from "@angular/core";
|
|
4
5
|
import * as i1 from "@angular/common";
|
|
5
6
|
const COLOR_MAP = {
|
|
@@ -143,13 +144,34 @@ export class LoadingComponent {
|
|
|
143
144
|
<div class="sr-shadow"></div>
|
|
144
145
|
</div>
|
|
145
146
|
|
|
147
|
+
<!-- ═══ IASSIST VARIANTS ═══ -->
|
|
148
|
+
|
|
149
|
+
<!-- iassist: simple breathing scale -->
|
|
150
|
+
<div class="sia-iassist" *ngIf="variant === 'iassist'" [style.--size]="size + 'px'">
|
|
151
|
+
<sia-iassist-icon [size]="size"></sia-iassist-icon>
|
|
152
|
+
</div>
|
|
153
|
+
|
|
154
|
+
<!-- iassist-pulse: pulse rings + icon -->
|
|
155
|
+
<div class="sia-iassist-pulse" *ngIf="variant === 'iassist-pulse'" [style.--size]="size + 'px'">
|
|
156
|
+
<span class="ip-ring ip-ring-1"></span>
|
|
157
|
+
<span class="ip-ring ip-ring-2"></span>
|
|
158
|
+
<sia-iassist-icon [size]="size * 0.6" class="ip-icon"></sia-iassist-icon>
|
|
159
|
+
</div>
|
|
160
|
+
|
|
161
|
+
<!-- iassist-orbit: icon with orbiting dots -->
|
|
162
|
+
<div class="sia-iassist-orbit" *ngIf="variant === 'iassist-orbit'" [style.--size]="size + 'px'">
|
|
163
|
+
<sia-iassist-icon [size]="size * 0.5" class="io-icon"></sia-iassist-icon>
|
|
164
|
+
<span class="io-dot io-dot-1"></span>
|
|
165
|
+
<span class="io-dot io-dot-2"></span>
|
|
166
|
+
</div>
|
|
167
|
+
|
|
146
168
|
<span class="sia-loading-text" *ngIf="text && variant !== 'skeleton'">{{ text }}</span>
|
|
147
169
|
</div>
|
|
148
|
-
`, isInline: true, styles: [":host{display:block}.sia-loading{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:.75rem;padding:3rem 0}.sia-loading--skeleton{align-items:stretch}.sia-loading-text{color:var(--p-text-muted-color, #94a3b8);font-size:.8rem;letter-spacing:.02em}.sia-dots{display:flex;gap:6px;align-items:center}.sia-dots .dot{width:10px;height:10px;border-radius:50%;background:var(--sia-c);animation:sia-dot-bounce 1.2s calc(var(--i) * .15s) ease-in-out infinite}@keyframes sia-dot-bounce{0%,60%,to{transform:translateY(0) scale(1);opacity:.4}30%{transform:translateY(-12px) scale(1.15);opacity:1}}.sia-pulse{position:relative;width:var(--size, 40px);height:var(--size, 40px)}.sia-pulse .ring{position:absolute;inset:0;border-radius:50%;border:2px solid var(--sia-c);opacity:0}.sia-pulse .ring-1{animation:sia-ripple 1.8s 0s ease-out infinite}.sia-pulse .ring-2{animation:sia-ripple 1.8s .6s ease-out infinite}.sia-pulse .core{position:absolute;top:50%;left:50%;width:10px;height:10px;margin:-5px 0 0 -5px;border-radius:50%;background:var(--sia-c);animation:sia-core-pulse 1.8s ease-in-out infinite}@keyframes sia-ripple{0%{transform:scale(.3);opacity:.8}to{transform:scale(1);opacity:0}}@keyframes sia-core-pulse{0%,to{transform:scale(1);opacity:.6}50%{transform:scale(1.3);opacity:1}}.sia-bars{display:flex;align-items:center;gap:3px;height:var(--h, 40px)}.sia-bars .bar{width:4px;height:40%;border-radius:2px;background:var(--sia-c);animation:sia-bar-wave 1s calc(var(--i) * .1s) ease-in-out infinite}@keyframes sia-bar-wave{0%,to{height:20%;opacity:.4}50%{height:100%;opacity:1}}.sia-orbit{position:relative;width:var(--size, 40px);height:var(--size, 40px)}.sia-orbit .orbit-track{position:absolute;inset:0;border-radius:50%;border:1.5px solid var(--p-surface-200, #e2e8f0)}.sia-orbit .orbit-dot{position:absolute;width:8px;height:8px;border-radius:50%;top:-4px;left:calc(50% - 4px)}.sia-orbit .orbit-dot-1{background:var(--sia-c);animation:sia-orbit-spin 1.4s linear infinite;transform-origin:50% calc(var(--size, 40px) / 2 + 4px)}.sia-orbit .orbit-dot-2{background:var(--sia-cl);animation:sia-orbit-spin 1.4s .7s linear infinite;transform-origin:50% calc(var(--size, 40px) / 2 + 4px)}@keyframes sia-orbit-spin{to{transform:rotate(360deg)}}.sia-morph{width:var(--size, 40px);height:var(--size, 40px);display:flex;align-items:center;justify-content:center}.sia-morph .morph-shape{width:70%;height:70%;background:var(--sia-c);animation:sia-morph 2.4s ease-in-out infinite}@keyframes sia-morph{0%{border-radius:50%;transform:rotate(0) scale(1)}25%{border-radius:30% 70% 50% 50%;transform:rotate(90deg) scale(.85)}50%{border-radius:50% 30% 70%;transform:rotate(180deg) scale(1)}75%{border-radius:70% 50% 30% 70%;transform:rotate(270deg) scale(.85)}to{border-radius:50%;transform:rotate(360deg) scale(1)}}.sia-wave{display:flex;align-items:center;gap:3px}.sia-wave .wave-dot{width:6px;height:6px;border-radius:50%;background:var(--sia-c);animation:sia-wave-flow 1.6s calc(var(--i) * .12s) ease-in-out infinite}@keyframes sia-wave-flow{0%,to{transform:translateY(0) scale(.6);opacity:.3}50%{transform:translateY(-10px) scale(1);opacity:1}}.sia-skeleton{display:flex;flex-direction:column;gap:.75rem;padding:0 1rem;width:100%}.skel-row{display:flex;align-items:center;gap:.75rem}.skel-row--header{margin-bottom:.25rem}.skel-circle{width:36px;height:36px;border-radius:50%;flex-shrink:0;background:var(--p-surface-200, #e2e8f0);animation:sia-shimmer 1.6s ease-in-out infinite}.skel-lines{flex:1;display:flex;flex-direction:column;gap:.4rem}.skel-line{height:10px;border-radius:4px;background:var(--p-surface-200, #e2e8f0);animation:sia-shimmer 1.6s ease-in-out infinite}.skel-line--full{width:100%;animation-delay:.1s}.skel-line--lg{width:75%;animation-delay:.2s}.skel-line--md{width:55%;animation-delay:.3s}.skel-line--sm{width:35%;animation-delay:.15s}@keyframes sia-shimmer{0%,to{opacity:.4}50%{opacity:1}}.sia-senior-draw{width:var(--size, 40px);height:var(--size, 40px);display:flex;align-items:center;justify-content:center}.sia-senior-draw .sp{stroke-dasharray:1200;stroke-dashoffset:1200}.sia-senior-draw .sp-r{animation:sia-sd-r 2s ease-in-out infinite}.sia-senior-draw .sp-l{animation:sia-sd-l 2s ease-in-out infinite}@keyframes sia-sd-r{0%{stroke-dashoffset:1200;opacity:.2}35%{stroke-dashoffset:0;opacity:1}60%{stroke-dashoffset:0;opacity:1}to{stroke-dashoffset:-1200;opacity:.2}}@keyframes sia-sd-l{0%{stroke-dashoffset:1200;opacity:.2}15%{stroke-dashoffset:1200;opacity:.2}50%{stroke-dashoffset:0;opacity:1}65%{stroke-dashoffset:0;opacity:1}to{stroke-dashoffset:-1200;opacity:.2}}.sia-senior-pulse{display:flex;align-items:center;justify-content:center}.sia-senior-pulse .sp-circle{width:var(--size, 64px);height:var(--size, 64px);border-radius:50%;background-color:var(--sia-c);display:flex;align-items:center;justify-content:center;position:relative;animation:sia-sp-pulse 1.4s ease-out infinite,sia-sp-scale 1.4s ease-in-out infinite}@keyframes sia-sp-pulse{0%{box-shadow:0 0 0 0 var(--sia-cl)}70%{box-shadow:0 0 0 20px transparent}to{box-shadow:0 0 0 0 transparent}}@keyframes sia-sp-scale{0%,to{transform:scale(1)}50%{transform:scale(1.12)}}.sia-senior-glow{width:var(--size, 40px);height:var(--size, 40px);display:flex;align-items:center;justify-content:center}.sia-senior-glow .glow-shadow{opacity:.3;filter:blur(4px);animation:sia-sg-breathe 2s ease-in-out infinite}.sia-senior-glow .glow-main{animation:sia-sg-breathe 2s ease-in-out infinite}@keyframes sia-sg-breathe{0%,to{opacity:.4;filter:drop-shadow(0 0 2px var(--sia-cl))}50%{opacity:1;filter:drop-shadow(0 0 10px var(--sia-cl)) drop-shadow(0 0 20px var(--sia-c))}}.sia-senior-flip{width:var(--size, 40px);height:var(--size, 40px);display:flex;align-items:center;justify-content:center;perspective:300px}.sia-senior-flip svg{animation:sia-sf-flip 2s ease-in-out infinite;transform-style:preserve-3d}@keyframes sia-sf-flip{0%{transform:rotateY(0)}50%{transform:rotateY(180deg)}to{transform:rotateY(360deg)}}.sia-senior-bounce{width:var(--size, 40px);height:var(--size, 40px);display:flex;align-items:center;justify-content:center}.sia-senior-bounce .bounce-r{animation:sia-sb-r 1.2s ease-in-out infinite;transform-origin:center center}.sia-senior-bounce .bounce-l{animation:sia-sb-l 1.2s ease-in-out infinite;transform-origin:center center}@keyframes sia-sb-r{0%,to{transform:translateY(0) scale(1);opacity:.7}50%{transform:translateY(-8px) scale(1.05);opacity:1}}@keyframes sia-sb-l{0%,to{transform:translateY(-8px) scale(1.05);opacity:1}50%{transform:translateY(0) scale(1);opacity:.7}}.sia-senior-reveal{width:var(--size, 64px);height:calc(var(--size, 64px) * 1.4);position:relative;display:flex;align-items:center;justify-content:center}.sia-senior-reveal .sr-ball{position:absolute;width:var(--size, 64px);height:var(--size, 64px);border-radius:50%;overflow:hidden;animation:sia-sr-bounce 1.2s ease-in-out infinite}.sia-senior-reveal .sr-shadow{position:absolute;bottom:0;width:60%;height:6px;border-radius:50%;background:#0000001f;animation:sia-sr-shadow 1.2s ease-in-out infinite}@keyframes sia-sr-bounce{0%,to{transform:translateY(20%) scaleX(1.06) scaleY(.94)}50%{transform:translateY(-25%) scaleX(.96) scaleY(1.04)}}@keyframes sia-sr-shadow{0%,to{transform:scaleX(1);opacity:.12}50%{transform:scaleX(.6);opacity:.06}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
170
|
+
`, isInline: true, styles: [":host{display:block}.sia-loading{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:.75rem;padding:3rem 0}.sia-loading--skeleton{align-items:stretch}.sia-loading-text{color:var(--p-text-muted-color, #94a3b8);font-size:.8rem;letter-spacing:.02em}.sia-dots{display:flex;gap:6px;align-items:center}.sia-dots .dot{width:10px;height:10px;border-radius:50%;background:var(--sia-c);animation:sia-dot-bounce 1.2s calc(var(--i) * .15s) ease-in-out infinite}@keyframes sia-dot-bounce{0%,60%,to{transform:translateY(0) scale(1);opacity:.4}30%{transform:translateY(-12px) scale(1.15);opacity:1}}.sia-pulse{position:relative;width:var(--size, 40px);height:var(--size, 40px)}.sia-pulse .ring{position:absolute;inset:0;border-radius:50%;border:2px solid var(--sia-c);opacity:0}.sia-pulse .ring-1{animation:sia-ripple 1.8s 0s ease-out infinite}.sia-pulse .ring-2{animation:sia-ripple 1.8s .6s ease-out infinite}.sia-pulse .core{position:absolute;top:50%;left:50%;width:10px;height:10px;margin:-5px 0 0 -5px;border-radius:50%;background:var(--sia-c);animation:sia-core-pulse 1.8s ease-in-out infinite}@keyframes sia-ripple{0%{transform:scale(.3);opacity:.8}to{transform:scale(1);opacity:0}}@keyframes sia-core-pulse{0%,to{transform:scale(1);opacity:.6}50%{transform:scale(1.3);opacity:1}}.sia-bars{display:flex;align-items:center;gap:3px;height:var(--h, 40px)}.sia-bars .bar{width:4px;height:40%;border-radius:2px;background:var(--sia-c);animation:sia-bar-wave 1s calc(var(--i) * .1s) ease-in-out infinite}@keyframes sia-bar-wave{0%,to{height:20%;opacity:.4}50%{height:100%;opacity:1}}.sia-orbit{position:relative;width:var(--size, 40px);height:var(--size, 40px)}.sia-orbit .orbit-track{position:absolute;inset:0;border-radius:50%;border:1.5px solid var(--p-surface-200, #e2e8f0)}.sia-orbit .orbit-dot{position:absolute;width:8px;height:8px;border-radius:50%;top:-4px;left:calc(50% - 4px)}.sia-orbit .orbit-dot-1{background:var(--sia-c);animation:sia-orbit-spin 1.4s linear infinite;transform-origin:50% calc(var(--size, 40px) / 2 + 4px)}.sia-orbit .orbit-dot-2{background:var(--sia-cl);animation:sia-orbit-spin 1.4s .7s linear infinite;transform-origin:50% calc(var(--size, 40px) / 2 + 4px)}@keyframes sia-orbit-spin{to{transform:rotate(360deg)}}.sia-morph{width:var(--size, 40px);height:var(--size, 40px);display:flex;align-items:center;justify-content:center}.sia-morph .morph-shape{width:70%;height:70%;background:var(--sia-c);animation:sia-morph 2.4s ease-in-out infinite}@keyframes sia-morph{0%{border-radius:50%;transform:rotate(0) scale(1)}25%{border-radius:30% 70% 50% 50%;transform:rotate(90deg) scale(.85)}50%{border-radius:50% 30% 70%;transform:rotate(180deg) scale(1)}75%{border-radius:70% 50% 30% 70%;transform:rotate(270deg) scale(.85)}to{border-radius:50%;transform:rotate(360deg) scale(1)}}.sia-wave{display:flex;align-items:center;gap:3px}.sia-wave .wave-dot{width:6px;height:6px;border-radius:50%;background:var(--sia-c);animation:sia-wave-flow 1.6s calc(var(--i) * .12s) ease-in-out infinite}@keyframes sia-wave-flow{0%,to{transform:translateY(0) scale(.6);opacity:.3}50%{transform:translateY(-10px) scale(1);opacity:1}}.sia-skeleton{display:flex;flex-direction:column;gap:.75rem;padding:0 1rem;width:100%}.skel-row{display:flex;align-items:center;gap:.75rem}.skel-row--header{margin-bottom:.25rem}.skel-circle{width:36px;height:36px;border-radius:50%;flex-shrink:0;background:var(--p-surface-200, #e2e8f0);animation:sia-shimmer 1.6s ease-in-out infinite}.skel-lines{flex:1;display:flex;flex-direction:column;gap:.4rem}.skel-line{height:10px;border-radius:4px;background:var(--p-surface-200, #e2e8f0);animation:sia-shimmer 1.6s ease-in-out infinite}.skel-line--full{width:100%;animation-delay:.1s}.skel-line--lg{width:75%;animation-delay:.2s}.skel-line--md{width:55%;animation-delay:.3s}.skel-line--sm{width:35%;animation-delay:.15s}@keyframes sia-shimmer{0%,to{opacity:.4}50%{opacity:1}}.sia-senior-draw{width:var(--size, 40px);height:var(--size, 40px);display:flex;align-items:center;justify-content:center}.sia-senior-draw .sp{stroke-dasharray:1200;stroke-dashoffset:1200}.sia-senior-draw .sp-r{animation:sia-sd-r 2s ease-in-out infinite}.sia-senior-draw .sp-l{animation:sia-sd-l 2s ease-in-out infinite}@keyframes sia-sd-r{0%{stroke-dashoffset:1200;opacity:.2}35%{stroke-dashoffset:0;opacity:1}60%{stroke-dashoffset:0;opacity:1}to{stroke-dashoffset:-1200;opacity:.2}}@keyframes sia-sd-l{0%{stroke-dashoffset:1200;opacity:.2}15%{stroke-dashoffset:1200;opacity:.2}50%{stroke-dashoffset:0;opacity:1}65%{stroke-dashoffset:0;opacity:1}to{stroke-dashoffset:-1200;opacity:.2}}.sia-senior-pulse{display:flex;align-items:center;justify-content:center}.sia-senior-pulse .sp-circle{width:var(--size, 64px);height:var(--size, 64px);border-radius:50%;background-color:var(--sia-c);display:flex;align-items:center;justify-content:center;position:relative;animation:sia-sp-pulse 1.4s ease-out infinite,sia-sp-scale 1.4s ease-in-out infinite}@keyframes sia-sp-pulse{0%{box-shadow:0 0 0 0 var(--sia-cl)}70%{box-shadow:0 0 0 20px transparent}to{box-shadow:0 0 0 0 transparent}}@keyframes sia-sp-scale{0%,to{transform:scale(1)}50%{transform:scale(1.12)}}.sia-senior-glow{width:var(--size, 40px);height:var(--size, 40px);display:flex;align-items:center;justify-content:center}.sia-senior-glow .glow-shadow{opacity:.3;filter:blur(4px);animation:sia-sg-breathe 2s ease-in-out infinite}.sia-senior-glow .glow-main{animation:sia-sg-breathe 2s ease-in-out infinite}@keyframes sia-sg-breathe{0%,to{opacity:.4;filter:drop-shadow(0 0 2px var(--sia-cl))}50%{opacity:1;filter:drop-shadow(0 0 10px var(--sia-cl)) drop-shadow(0 0 20px var(--sia-c))}}.sia-senior-flip{width:var(--size, 40px);height:var(--size, 40px);display:flex;align-items:center;justify-content:center;perspective:300px}.sia-senior-flip svg{animation:sia-sf-flip 2s ease-in-out infinite;transform-style:preserve-3d}@keyframes sia-sf-flip{0%{transform:rotateY(0)}50%{transform:rotateY(180deg)}to{transform:rotateY(360deg)}}.sia-senior-bounce{width:var(--size, 40px);height:var(--size, 40px);display:flex;align-items:center;justify-content:center}.sia-senior-bounce .bounce-r{animation:sia-sb-r 1.2s ease-in-out infinite;transform-origin:center center}.sia-senior-bounce .bounce-l{animation:sia-sb-l 1.2s ease-in-out infinite;transform-origin:center center}@keyframes sia-sb-r{0%,to{transform:translateY(0) scale(1);opacity:.7}50%{transform:translateY(-8px) scale(1.05);opacity:1}}@keyframes sia-sb-l{0%,to{transform:translateY(-8px) scale(1.05);opacity:1}50%{transform:translateY(0) scale(1);opacity:.7}}.sia-senior-reveal{width:var(--size, 64px);height:calc(var(--size, 64px) * 1.4);position:relative;display:flex;align-items:center;justify-content:center}.sia-senior-reveal .sr-ball{position:absolute;width:var(--size, 64px);height:var(--size, 64px);border-radius:50%;overflow:hidden;animation:sia-sr-bounce 1.2s ease-in-out infinite}.sia-senior-reveal .sr-shadow{position:absolute;bottom:0;width:60%;height:6px;border-radius:50%;background:#0000001f;animation:sia-sr-shadow 1.2s ease-in-out infinite}@keyframes sia-sr-bounce{0%,to{transform:translateY(20%) scaleX(1.06) scaleY(.94)}50%{transform:translateY(-25%) scaleX(.96) scaleY(1.04)}}@keyframes sia-sr-shadow{0%,to{transform:scaleX(1);opacity:.12}50%{transform:scaleX(.6);opacity:.06}}.sia-iassist{width:var(--size, 40px);height:var(--size, 40px);display:flex;align-items:center;justify-content:center;animation:sia-ia-breathe 2s ease-in-out infinite}@keyframes sia-ia-breathe{0%,to{transform:scale(1);opacity:.7}50%{transform:scale(1.1);opacity:1}}.sia-iassist-pulse{position:relative;width:var(--size, 40px);height:var(--size, 40px);display:flex;align-items:center;justify-content:center}.sia-iassist-pulse .ip-ring{position:absolute;inset:0;border-radius:50%;border:2px solid var(--sia-c);opacity:0}.sia-iassist-pulse .ip-ring-1{animation:sia-ip-ripple 2s 0s ease-out infinite}.sia-iassist-pulse .ip-ring-2{animation:sia-ip-ripple 2s .7s ease-out infinite}.sia-iassist-pulse .ip-icon{position:relative;z-index:1}@keyframes sia-ip-ripple{0%{transform:scale(.5);opacity:.8}to{transform:scale(1.2);opacity:0}}.sia-iassist-orbit{position:relative;width:var(--size, 40px);height:var(--size, 40px);display:flex;align-items:center;justify-content:center}.sia-iassist-orbit .io-icon{position:relative;z-index:1}.sia-iassist-orbit .io-dot{position:absolute;width:8px;height:8px;border-radius:50%;top:-4px;left:calc(50% - 4px)}.sia-iassist-orbit .io-dot-1{background:var(--sia-c);animation:sia-io-spin 1.6s linear infinite;transform-origin:50% calc(var(--size, 40px) / 2 + 4px)}.sia-iassist-orbit .io-dot-2{background:var(--sia-cl);animation:sia-io-spin 1.6s .8s linear infinite;transform-origin:50% calc(var(--size, 40px) / 2 + 4px)}@keyframes sia-io-spin{to{transform:rotate(360deg)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IassistIconComponent, selector: "sia-iassist-icon", inputs: ["size"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
149
171
|
}
|
|
150
172
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LoadingComponent, decorators: [{
|
|
151
173
|
type: Component,
|
|
152
|
-
args: [{ selector: 'sia-loading', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [CommonModule], template: `
|
|
174
|
+
args: [{ selector: 'sia-loading', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [CommonModule, IassistIconComponent], template: `
|
|
153
175
|
<div class="sia-loading" [style.padding]="padding"
|
|
154
176
|
[class.sia-loading--skeleton]="variant === 'skeleton'"
|
|
155
177
|
[style.--sia-c]="colorBase" [style.--sia-cl]="colorLight">
|
|
@@ -262,9 +284,30 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
262
284
|
<div class="sr-shadow"></div>
|
|
263
285
|
</div>
|
|
264
286
|
|
|
287
|
+
<!-- ═══ IASSIST VARIANTS ═══ -->
|
|
288
|
+
|
|
289
|
+
<!-- iassist: simple breathing scale -->
|
|
290
|
+
<div class="sia-iassist" *ngIf="variant === 'iassist'" [style.--size]="size + 'px'">
|
|
291
|
+
<sia-iassist-icon [size]="size"></sia-iassist-icon>
|
|
292
|
+
</div>
|
|
293
|
+
|
|
294
|
+
<!-- iassist-pulse: pulse rings + icon -->
|
|
295
|
+
<div class="sia-iassist-pulse" *ngIf="variant === 'iassist-pulse'" [style.--size]="size + 'px'">
|
|
296
|
+
<span class="ip-ring ip-ring-1"></span>
|
|
297
|
+
<span class="ip-ring ip-ring-2"></span>
|
|
298
|
+
<sia-iassist-icon [size]="size * 0.6" class="ip-icon"></sia-iassist-icon>
|
|
299
|
+
</div>
|
|
300
|
+
|
|
301
|
+
<!-- iassist-orbit: icon with orbiting dots -->
|
|
302
|
+
<div class="sia-iassist-orbit" *ngIf="variant === 'iassist-orbit'" [style.--size]="size + 'px'">
|
|
303
|
+
<sia-iassist-icon [size]="size * 0.5" class="io-icon"></sia-iassist-icon>
|
|
304
|
+
<span class="io-dot io-dot-1"></span>
|
|
305
|
+
<span class="io-dot io-dot-2"></span>
|
|
306
|
+
</div>
|
|
307
|
+
|
|
265
308
|
<span class="sia-loading-text" *ngIf="text && variant !== 'skeleton'">{{ text }}</span>
|
|
266
309
|
</div>
|
|
267
|
-
`, styles: [":host{display:block}.sia-loading{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:.75rem;padding:3rem 0}.sia-loading--skeleton{align-items:stretch}.sia-loading-text{color:var(--p-text-muted-color, #94a3b8);font-size:.8rem;letter-spacing:.02em}.sia-dots{display:flex;gap:6px;align-items:center}.sia-dots .dot{width:10px;height:10px;border-radius:50%;background:var(--sia-c);animation:sia-dot-bounce 1.2s calc(var(--i) * .15s) ease-in-out infinite}@keyframes sia-dot-bounce{0%,60%,to{transform:translateY(0) scale(1);opacity:.4}30%{transform:translateY(-12px) scale(1.15);opacity:1}}.sia-pulse{position:relative;width:var(--size, 40px);height:var(--size, 40px)}.sia-pulse .ring{position:absolute;inset:0;border-radius:50%;border:2px solid var(--sia-c);opacity:0}.sia-pulse .ring-1{animation:sia-ripple 1.8s 0s ease-out infinite}.sia-pulse .ring-2{animation:sia-ripple 1.8s .6s ease-out infinite}.sia-pulse .core{position:absolute;top:50%;left:50%;width:10px;height:10px;margin:-5px 0 0 -5px;border-radius:50%;background:var(--sia-c);animation:sia-core-pulse 1.8s ease-in-out infinite}@keyframes sia-ripple{0%{transform:scale(.3);opacity:.8}to{transform:scale(1);opacity:0}}@keyframes sia-core-pulse{0%,to{transform:scale(1);opacity:.6}50%{transform:scale(1.3);opacity:1}}.sia-bars{display:flex;align-items:center;gap:3px;height:var(--h, 40px)}.sia-bars .bar{width:4px;height:40%;border-radius:2px;background:var(--sia-c);animation:sia-bar-wave 1s calc(var(--i) * .1s) ease-in-out infinite}@keyframes sia-bar-wave{0%,to{height:20%;opacity:.4}50%{height:100%;opacity:1}}.sia-orbit{position:relative;width:var(--size, 40px);height:var(--size, 40px)}.sia-orbit .orbit-track{position:absolute;inset:0;border-radius:50%;border:1.5px solid var(--p-surface-200, #e2e8f0)}.sia-orbit .orbit-dot{position:absolute;width:8px;height:8px;border-radius:50%;top:-4px;left:calc(50% - 4px)}.sia-orbit .orbit-dot-1{background:var(--sia-c);animation:sia-orbit-spin 1.4s linear infinite;transform-origin:50% calc(var(--size, 40px) / 2 + 4px)}.sia-orbit .orbit-dot-2{background:var(--sia-cl);animation:sia-orbit-spin 1.4s .7s linear infinite;transform-origin:50% calc(var(--size, 40px) / 2 + 4px)}@keyframes sia-orbit-spin{to{transform:rotate(360deg)}}.sia-morph{width:var(--size, 40px);height:var(--size, 40px);display:flex;align-items:center;justify-content:center}.sia-morph .morph-shape{width:70%;height:70%;background:var(--sia-c);animation:sia-morph 2.4s ease-in-out infinite}@keyframes sia-morph{0%{border-radius:50%;transform:rotate(0) scale(1)}25%{border-radius:30% 70% 50% 50%;transform:rotate(90deg) scale(.85)}50%{border-radius:50% 30% 70%;transform:rotate(180deg) scale(1)}75%{border-radius:70% 50% 30% 70%;transform:rotate(270deg) scale(.85)}to{border-radius:50%;transform:rotate(360deg) scale(1)}}.sia-wave{display:flex;align-items:center;gap:3px}.sia-wave .wave-dot{width:6px;height:6px;border-radius:50%;background:var(--sia-c);animation:sia-wave-flow 1.6s calc(var(--i) * .12s) ease-in-out infinite}@keyframes sia-wave-flow{0%,to{transform:translateY(0) scale(.6);opacity:.3}50%{transform:translateY(-10px) scale(1);opacity:1}}.sia-skeleton{display:flex;flex-direction:column;gap:.75rem;padding:0 1rem;width:100%}.skel-row{display:flex;align-items:center;gap:.75rem}.skel-row--header{margin-bottom:.25rem}.skel-circle{width:36px;height:36px;border-radius:50%;flex-shrink:0;background:var(--p-surface-200, #e2e8f0);animation:sia-shimmer 1.6s ease-in-out infinite}.skel-lines{flex:1;display:flex;flex-direction:column;gap:.4rem}.skel-line{height:10px;border-radius:4px;background:var(--p-surface-200, #e2e8f0);animation:sia-shimmer 1.6s ease-in-out infinite}.skel-line--full{width:100%;animation-delay:.1s}.skel-line--lg{width:75%;animation-delay:.2s}.skel-line--md{width:55%;animation-delay:.3s}.skel-line--sm{width:35%;animation-delay:.15s}@keyframes sia-shimmer{0%,to{opacity:.4}50%{opacity:1}}.sia-senior-draw{width:var(--size, 40px);height:var(--size, 40px);display:flex;align-items:center;justify-content:center}.sia-senior-draw .sp{stroke-dasharray:1200;stroke-dashoffset:1200}.sia-senior-draw .sp-r{animation:sia-sd-r 2s ease-in-out infinite}.sia-senior-draw .sp-l{animation:sia-sd-l 2s ease-in-out infinite}@keyframes sia-sd-r{0%{stroke-dashoffset:1200;opacity:.2}35%{stroke-dashoffset:0;opacity:1}60%{stroke-dashoffset:0;opacity:1}to{stroke-dashoffset:-1200;opacity:.2}}@keyframes sia-sd-l{0%{stroke-dashoffset:1200;opacity:.2}15%{stroke-dashoffset:1200;opacity:.2}50%{stroke-dashoffset:0;opacity:1}65%{stroke-dashoffset:0;opacity:1}to{stroke-dashoffset:-1200;opacity:.2}}.sia-senior-pulse{display:flex;align-items:center;justify-content:center}.sia-senior-pulse .sp-circle{width:var(--size, 64px);height:var(--size, 64px);border-radius:50%;background-color:var(--sia-c);display:flex;align-items:center;justify-content:center;position:relative;animation:sia-sp-pulse 1.4s ease-out infinite,sia-sp-scale 1.4s ease-in-out infinite}@keyframes sia-sp-pulse{0%{box-shadow:0 0 0 0 var(--sia-cl)}70%{box-shadow:0 0 0 20px transparent}to{box-shadow:0 0 0 0 transparent}}@keyframes sia-sp-scale{0%,to{transform:scale(1)}50%{transform:scale(1.12)}}.sia-senior-glow{width:var(--size, 40px);height:var(--size, 40px);display:flex;align-items:center;justify-content:center}.sia-senior-glow .glow-shadow{opacity:.3;filter:blur(4px);animation:sia-sg-breathe 2s ease-in-out infinite}.sia-senior-glow .glow-main{animation:sia-sg-breathe 2s ease-in-out infinite}@keyframes sia-sg-breathe{0%,to{opacity:.4;filter:drop-shadow(0 0 2px var(--sia-cl))}50%{opacity:1;filter:drop-shadow(0 0 10px var(--sia-cl)) drop-shadow(0 0 20px var(--sia-c))}}.sia-senior-flip{width:var(--size, 40px);height:var(--size, 40px);display:flex;align-items:center;justify-content:center;perspective:300px}.sia-senior-flip svg{animation:sia-sf-flip 2s ease-in-out infinite;transform-style:preserve-3d}@keyframes sia-sf-flip{0%{transform:rotateY(0)}50%{transform:rotateY(180deg)}to{transform:rotateY(360deg)}}.sia-senior-bounce{width:var(--size, 40px);height:var(--size, 40px);display:flex;align-items:center;justify-content:center}.sia-senior-bounce .bounce-r{animation:sia-sb-r 1.2s ease-in-out infinite;transform-origin:center center}.sia-senior-bounce .bounce-l{animation:sia-sb-l 1.2s ease-in-out infinite;transform-origin:center center}@keyframes sia-sb-r{0%,to{transform:translateY(0) scale(1);opacity:.7}50%{transform:translateY(-8px) scale(1.05);opacity:1}}@keyframes sia-sb-l{0%,to{transform:translateY(-8px) scale(1.05);opacity:1}50%{transform:translateY(0) scale(1);opacity:.7}}.sia-senior-reveal{width:var(--size, 64px);height:calc(var(--size, 64px) * 1.4);position:relative;display:flex;align-items:center;justify-content:center}.sia-senior-reveal .sr-ball{position:absolute;width:var(--size, 64px);height:var(--size, 64px);border-radius:50%;overflow:hidden;animation:sia-sr-bounce 1.2s ease-in-out infinite}.sia-senior-reveal .sr-shadow{position:absolute;bottom:0;width:60%;height:6px;border-radius:50%;background:#0000001f;animation:sia-sr-shadow 1.2s ease-in-out infinite}@keyframes sia-sr-bounce{0%,to{transform:translateY(20%) scaleX(1.06) scaleY(.94)}50%{transform:translateY(-25%) scaleX(.96) scaleY(1.04)}}@keyframes sia-sr-shadow{0%,to{transform:scaleX(1);opacity:.12}50%{transform:scaleX(.6);opacity:.06}}\n"] }]
|
|
310
|
+
`, styles: [":host{display:block}.sia-loading{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:.75rem;padding:3rem 0}.sia-loading--skeleton{align-items:stretch}.sia-loading-text{color:var(--p-text-muted-color, #94a3b8);font-size:.8rem;letter-spacing:.02em}.sia-dots{display:flex;gap:6px;align-items:center}.sia-dots .dot{width:10px;height:10px;border-radius:50%;background:var(--sia-c);animation:sia-dot-bounce 1.2s calc(var(--i) * .15s) ease-in-out infinite}@keyframes sia-dot-bounce{0%,60%,to{transform:translateY(0) scale(1);opacity:.4}30%{transform:translateY(-12px) scale(1.15);opacity:1}}.sia-pulse{position:relative;width:var(--size, 40px);height:var(--size, 40px)}.sia-pulse .ring{position:absolute;inset:0;border-radius:50%;border:2px solid var(--sia-c);opacity:0}.sia-pulse .ring-1{animation:sia-ripple 1.8s 0s ease-out infinite}.sia-pulse .ring-2{animation:sia-ripple 1.8s .6s ease-out infinite}.sia-pulse .core{position:absolute;top:50%;left:50%;width:10px;height:10px;margin:-5px 0 0 -5px;border-radius:50%;background:var(--sia-c);animation:sia-core-pulse 1.8s ease-in-out infinite}@keyframes sia-ripple{0%{transform:scale(.3);opacity:.8}to{transform:scale(1);opacity:0}}@keyframes sia-core-pulse{0%,to{transform:scale(1);opacity:.6}50%{transform:scale(1.3);opacity:1}}.sia-bars{display:flex;align-items:center;gap:3px;height:var(--h, 40px)}.sia-bars .bar{width:4px;height:40%;border-radius:2px;background:var(--sia-c);animation:sia-bar-wave 1s calc(var(--i) * .1s) ease-in-out infinite}@keyframes sia-bar-wave{0%,to{height:20%;opacity:.4}50%{height:100%;opacity:1}}.sia-orbit{position:relative;width:var(--size, 40px);height:var(--size, 40px)}.sia-orbit .orbit-track{position:absolute;inset:0;border-radius:50%;border:1.5px solid var(--p-surface-200, #e2e8f0)}.sia-orbit .orbit-dot{position:absolute;width:8px;height:8px;border-radius:50%;top:-4px;left:calc(50% - 4px)}.sia-orbit .orbit-dot-1{background:var(--sia-c);animation:sia-orbit-spin 1.4s linear infinite;transform-origin:50% calc(var(--size, 40px) / 2 + 4px)}.sia-orbit .orbit-dot-2{background:var(--sia-cl);animation:sia-orbit-spin 1.4s .7s linear infinite;transform-origin:50% calc(var(--size, 40px) / 2 + 4px)}@keyframes sia-orbit-spin{to{transform:rotate(360deg)}}.sia-morph{width:var(--size, 40px);height:var(--size, 40px);display:flex;align-items:center;justify-content:center}.sia-morph .morph-shape{width:70%;height:70%;background:var(--sia-c);animation:sia-morph 2.4s ease-in-out infinite}@keyframes sia-morph{0%{border-radius:50%;transform:rotate(0) scale(1)}25%{border-radius:30% 70% 50% 50%;transform:rotate(90deg) scale(.85)}50%{border-radius:50% 30% 70%;transform:rotate(180deg) scale(1)}75%{border-radius:70% 50% 30% 70%;transform:rotate(270deg) scale(.85)}to{border-radius:50%;transform:rotate(360deg) scale(1)}}.sia-wave{display:flex;align-items:center;gap:3px}.sia-wave .wave-dot{width:6px;height:6px;border-radius:50%;background:var(--sia-c);animation:sia-wave-flow 1.6s calc(var(--i) * .12s) ease-in-out infinite}@keyframes sia-wave-flow{0%,to{transform:translateY(0) scale(.6);opacity:.3}50%{transform:translateY(-10px) scale(1);opacity:1}}.sia-skeleton{display:flex;flex-direction:column;gap:.75rem;padding:0 1rem;width:100%}.skel-row{display:flex;align-items:center;gap:.75rem}.skel-row--header{margin-bottom:.25rem}.skel-circle{width:36px;height:36px;border-radius:50%;flex-shrink:0;background:var(--p-surface-200, #e2e8f0);animation:sia-shimmer 1.6s ease-in-out infinite}.skel-lines{flex:1;display:flex;flex-direction:column;gap:.4rem}.skel-line{height:10px;border-radius:4px;background:var(--p-surface-200, #e2e8f0);animation:sia-shimmer 1.6s ease-in-out infinite}.skel-line--full{width:100%;animation-delay:.1s}.skel-line--lg{width:75%;animation-delay:.2s}.skel-line--md{width:55%;animation-delay:.3s}.skel-line--sm{width:35%;animation-delay:.15s}@keyframes sia-shimmer{0%,to{opacity:.4}50%{opacity:1}}.sia-senior-draw{width:var(--size, 40px);height:var(--size, 40px);display:flex;align-items:center;justify-content:center}.sia-senior-draw .sp{stroke-dasharray:1200;stroke-dashoffset:1200}.sia-senior-draw .sp-r{animation:sia-sd-r 2s ease-in-out infinite}.sia-senior-draw .sp-l{animation:sia-sd-l 2s ease-in-out infinite}@keyframes sia-sd-r{0%{stroke-dashoffset:1200;opacity:.2}35%{stroke-dashoffset:0;opacity:1}60%{stroke-dashoffset:0;opacity:1}to{stroke-dashoffset:-1200;opacity:.2}}@keyframes sia-sd-l{0%{stroke-dashoffset:1200;opacity:.2}15%{stroke-dashoffset:1200;opacity:.2}50%{stroke-dashoffset:0;opacity:1}65%{stroke-dashoffset:0;opacity:1}to{stroke-dashoffset:-1200;opacity:.2}}.sia-senior-pulse{display:flex;align-items:center;justify-content:center}.sia-senior-pulse .sp-circle{width:var(--size, 64px);height:var(--size, 64px);border-radius:50%;background-color:var(--sia-c);display:flex;align-items:center;justify-content:center;position:relative;animation:sia-sp-pulse 1.4s ease-out infinite,sia-sp-scale 1.4s ease-in-out infinite}@keyframes sia-sp-pulse{0%{box-shadow:0 0 0 0 var(--sia-cl)}70%{box-shadow:0 0 0 20px transparent}to{box-shadow:0 0 0 0 transparent}}@keyframes sia-sp-scale{0%,to{transform:scale(1)}50%{transform:scale(1.12)}}.sia-senior-glow{width:var(--size, 40px);height:var(--size, 40px);display:flex;align-items:center;justify-content:center}.sia-senior-glow .glow-shadow{opacity:.3;filter:blur(4px);animation:sia-sg-breathe 2s ease-in-out infinite}.sia-senior-glow .glow-main{animation:sia-sg-breathe 2s ease-in-out infinite}@keyframes sia-sg-breathe{0%,to{opacity:.4;filter:drop-shadow(0 0 2px var(--sia-cl))}50%{opacity:1;filter:drop-shadow(0 0 10px var(--sia-cl)) drop-shadow(0 0 20px var(--sia-c))}}.sia-senior-flip{width:var(--size, 40px);height:var(--size, 40px);display:flex;align-items:center;justify-content:center;perspective:300px}.sia-senior-flip svg{animation:sia-sf-flip 2s ease-in-out infinite;transform-style:preserve-3d}@keyframes sia-sf-flip{0%{transform:rotateY(0)}50%{transform:rotateY(180deg)}to{transform:rotateY(360deg)}}.sia-senior-bounce{width:var(--size, 40px);height:var(--size, 40px);display:flex;align-items:center;justify-content:center}.sia-senior-bounce .bounce-r{animation:sia-sb-r 1.2s ease-in-out infinite;transform-origin:center center}.sia-senior-bounce .bounce-l{animation:sia-sb-l 1.2s ease-in-out infinite;transform-origin:center center}@keyframes sia-sb-r{0%,to{transform:translateY(0) scale(1);opacity:.7}50%{transform:translateY(-8px) scale(1.05);opacity:1}}@keyframes sia-sb-l{0%,to{transform:translateY(-8px) scale(1.05);opacity:1}50%{transform:translateY(0) scale(1);opacity:.7}}.sia-senior-reveal{width:var(--size, 64px);height:calc(var(--size, 64px) * 1.4);position:relative;display:flex;align-items:center;justify-content:center}.sia-senior-reveal .sr-ball{position:absolute;width:var(--size, 64px);height:var(--size, 64px);border-radius:50%;overflow:hidden;animation:sia-sr-bounce 1.2s ease-in-out infinite}.sia-senior-reveal .sr-shadow{position:absolute;bottom:0;width:60%;height:6px;border-radius:50%;background:#0000001f;animation:sia-sr-shadow 1.2s ease-in-out infinite}@keyframes sia-sr-bounce{0%,to{transform:translateY(20%) scaleX(1.06) scaleY(.94)}50%{transform:translateY(-25%) scaleX(.96) scaleY(1.04)}}@keyframes sia-sr-shadow{0%,to{transform:scaleX(1);opacity:.12}50%{transform:scaleX(.6);opacity:.06}}.sia-iassist{width:var(--size, 40px);height:var(--size, 40px);display:flex;align-items:center;justify-content:center;animation:sia-ia-breathe 2s ease-in-out infinite}@keyframes sia-ia-breathe{0%,to{transform:scale(1);opacity:.7}50%{transform:scale(1.1);opacity:1}}.sia-iassist-pulse{position:relative;width:var(--size, 40px);height:var(--size, 40px);display:flex;align-items:center;justify-content:center}.sia-iassist-pulse .ip-ring{position:absolute;inset:0;border-radius:50%;border:2px solid var(--sia-c);opacity:0}.sia-iassist-pulse .ip-ring-1{animation:sia-ip-ripple 2s 0s ease-out infinite}.sia-iassist-pulse .ip-ring-2{animation:sia-ip-ripple 2s .7s ease-out infinite}.sia-iassist-pulse .ip-icon{position:relative;z-index:1}@keyframes sia-ip-ripple{0%{transform:scale(.5);opacity:.8}to{transform:scale(1.2);opacity:0}}.sia-iassist-orbit{position:relative;width:var(--size, 40px);height:var(--size, 40px);display:flex;align-items:center;justify-content:center}.sia-iassist-orbit .io-icon{position:relative;z-index:1}.sia-iassist-orbit .io-dot{position:absolute;width:8px;height:8px;border-radius:50%;top:-4px;left:calc(50% - 4px)}.sia-iassist-orbit .io-dot-1{background:var(--sia-c);animation:sia-io-spin 1.6s linear infinite;transform-origin:50% calc(var(--size, 40px) / 2 + 4px)}.sia-iassist-orbit .io-dot-2{background:var(--sia-cl);animation:sia-io-spin 1.6s .8s linear infinite;transform-origin:50% calc(var(--size, 40px) / 2 + 4px)}@keyframes sia-io-spin{to{transform:rotate(360deg)}}\n"] }]
|
|
268
311
|
}], propDecorators: { variant: [{
|
|
269
312
|
type: Input
|
|
270
313
|
}], color: [{
|
|
@@ -276,4 +319,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
276
319
|
}], padding: [{
|
|
277
320
|
type: Input
|
|
278
321
|
}] } });
|
|
279
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGluZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzLWFpL3NyYy9saWIvY29tcG9uZW50cy9sb2FkaW5nL2xvYWRpbmcuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBTy9DLE1BQU0sU0FBUyxHQUEwRDtJQUN2RSxPQUFPLEVBQUksRUFBRSxJQUFJLEVBQUUsK0JBQStCLEVBQUcsS0FBSyxFQUFFLCtCQUErQixFQUFFO0lBQzdGLFNBQVMsRUFBRSxFQUFFLElBQUksRUFBRSwrQkFBK0IsRUFBRyxLQUFLLEVBQUUsK0JBQStCLEVBQUU7SUFDN0YsT0FBTyxFQUFJLEVBQUUsSUFBSSxFQUFFLDZCQUE2QixFQUFLLEtBQUssRUFBRSw2QkFBNkIsRUFBRTtJQUMzRixJQUFJLEVBQU8sRUFBRSxJQUFJLEVBQUUsOEJBQThCLEVBQUksS0FBSyxFQUFFLDhCQUE4QixFQUFFO0lBQzVGLE1BQU0sRUFBSyxFQUFFLElBQUksRUFBRSwyQkFBMkIsRUFBTyxLQUFLLEVBQUUsMkJBQTJCLEVBQUU7SUFDekYsSUFBSSxFQUFPLEVBQUUsSUFBSSxFQUFFLDRCQUE0QixFQUFNLEtBQUssRUFBRSw0QkFBNEIsRUFBRTtJQUMxRixNQUFNLEVBQUssRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUF5QixLQUFLLEVBQUUsU0FBUyxFQUFFO0NBQ3hFLENBQUM7QUFFRixNQUFNLGlCQUFpQixHQUFHLG90QkFBb3RCLENBQUM7QUFDL3VCLE1BQU0sZ0JBQWdCLEdBQUcsNm1CQUE2bUIsQ0FBQztBQUN2b0IsTUFBTSxnQkFBZ0IsR0FBRyxpQkFBaUIsR0FBRyxHQUFHLEdBQUcsZ0JBQWdCLENBQUM7QUFrVnBFLE1BQU0sT0FBTyxnQkFBZ0I7SUFDbEIsT0FBTyxHQUFtQixlQUFlLENBQUM7SUFDMUMsS0FBSyxHQUFpQixRQUFRLENBQUM7SUFDL0IsSUFBSSxHQUFXLEVBQUUsQ0FBQztJQUNsQixJQUFJLEdBQVcsRUFBRSxDQUFDO0lBQ2xCLE9BQU8sR0FBVyxRQUFRLENBQUM7SUFFcEMsSUFBSSxTQUFTO1FBQ1gsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQzdELENBQUM7SUFFRCxJQUFJLFVBQVU7UUFDWixPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDOUQsQ0FBQztJQUVELFNBQVMsR0FBRyxpQkFBaUIsQ0FBQztJQUM5QixRQUFRLEdBQUcsZ0JBQWdCLENBQUM7SUFDNUIsUUFBUSxHQUFHLGdCQUFnQixDQUFDO3dHQWpCakIsZ0JBQWdCOzRGQUFoQixnQkFBZ0IsdUtBM1VqQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1IVCwrdE9BcEhTLFlBQVk7OzRGQTRVWCxnQkFBZ0I7a0JBaFY1QixTQUFTOytCQUNFLGFBQWEsY0FDWCxJQUFJLG1CQUNDLHVCQUF1QixDQUFDLE1BQU0sV0FDdEMsQ0FBQyxZQUFZLENBQUMsWUFDYjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1IVDs4QkF5TlEsT0FBTztzQkFBZixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5leHBvcnQgdHlwZSBMb2FkaW5nVmFyaWFudCA9XG4gIHwgJ2RvdHMnIHwgJ3B1bHNlJyB8ICdiYXJzJyB8ICdvcmJpdCcgfCAnbW9ycGgnIHwgJ3dhdmUnIHwgJ3NrZWxldG9uJ1xuICB8ICdzZW5pb3ItZHJhdycgfCAnc2VuaW9yLXB1bHNlJyB8ICdzZW5pb3ItZ2xvdycgfCAnc2VuaW9yLWZsaXAnIHwgJ3Nlbmlvci1ib3VuY2UnIHwgJ3Nlbmlvci1yZXZlYWwnO1xuZXhwb3J0IHR5cGUgTG9hZGluZ0NvbG9yID0gJ3ByaW1hcnknIHwgJ3NlY29uZGFyeScgfCAnc3VjY2VzcycgfCAnd2FybicgfCAnZGFuZ2VyJyB8ICdpbmZvJyB8ICdzZW5pb3InO1xuXG5jb25zdCBDT0xPUl9NQVA6IFJlY29yZDxMb2FkaW5nQ29sb3IsIHsgYmFzZTogc3RyaW5nOyBsaWdodDogc3RyaW5nIH0+ID0ge1xuICBwcmltYXJ5OiAgIHsgYmFzZTogJ3ZhcigtLXAtcHJpbWFyeS01MDAsICMzYjgyZjYpJywgIGxpZ2h0OiAndmFyKC0tcC1wcmltYXJ5LTMwMCwgIzkzYzVmZCknIH0sXG4gIHNlY29uZGFyeTogeyBiYXNlOiAndmFyKC0tcC1zdXJmYWNlLTUwMCwgIzY0NzQ4YiknLCAgbGlnaHQ6ICd2YXIoLS1wLXN1cmZhY2UtMzAwLCAjY2JkNWUxKScgfSxcbiAgc3VjY2VzczogICB7IGJhc2U6ICd2YXIoLS1wLWdyZWVuLTUwMCwgIzIyYzU1ZSknLCAgICBsaWdodDogJ3ZhcigtLXAtZ3JlZW4tMzAwLCAjODZlZmFjKScgfSxcbiAgd2FybjogICAgICB7IGJhc2U6ICd2YXIoLS1wLXllbGxvdy01MDAsICNlYWIzMDgpJywgICBsaWdodDogJ3ZhcigtLXAteWVsbG93LTMwMCwgI2ZkZTA0NyknIH0sXG4gIGRhbmdlcjogICAgeyBiYXNlOiAndmFyKC0tcC1yZWQtNTAwLCAjZWY0NDQ0KScsICAgICAgbGlnaHQ6ICd2YXIoLS1wLXJlZC0zMDAsICNmY2E1YTUpJyB9LFxuICBpbmZvOiAgICAgIHsgYmFzZTogJ3ZhcigtLXAtYmx1ZS01MDAsICMzYjgyZjYpJywgICAgIGxpZ2h0OiAndmFyKC0tcC1ibHVlLTMwMCwgIzkzYzVmZCknIH0sXG4gIHNlbmlvcjogICAgeyBiYXNlOiAnIzBkOTQ4OCcsICAgICAgICAgICAgICAgICAgICAgICAgbGlnaHQ6ICcjMDBjODlhJyB9LFxufTtcblxuY29uc3QgU0VOSU9SX1BBVEhfUklHSFQgPSAnTTE3NC43MTkgNTE4LjkzMkwyNTguMTYxIDQzOS43ODJDMjY0LjU0NiA0MzMuNzYyIDI2OS42MTQgNDI2LjYwMyAyNzMuMDcyIDQxOC43MTlDMjc2LjUzIDQxMC44MzQgMjc4LjMxIDQwMi4zNzggMjc4LjMxIDM5My44MzhDMjc4LjMxIDM4NS4yOTggMjc2LjUzIDM3Ni44NDMgMjczLjA3MiAzNjguOTU4QzI2OS42MTQgMzYxLjA3MyAyNjQuNTQ2IDM1My45MTUgMjU4LjE2MSAzNDcuODk1TDE3NC43MTkgMjY5LjE5OUMxNjguNDUgMjYzLjMwNCAxNjMuNDc0IDI1Ni4yODkgMTYwLjA3NyAyNDguNTZDMTU2LjY4MSAyNDAuODMgMTU0LjkzMyAyMzIuNTM5IDE1NC45MzMgMjI0LjE2NUMxNTQuOTMzIDIxNS43OTIgMTU2LjY4MSAyMDcuNTAxIDE2MC4wNzcgMTk5Ljc3MUMxNjMuNDc0IDE5Mi4wNDIgMTY4LjQ1IDE4NS4wMjcgMTc0LjcxOSAxNzkuMTMyTDMwMy43MTggMzAxLjQ5NkMzMjkuNTE3IDMyNi4wODkgMzQ0IDM1OS4zNzEgMzQ0IDM5NC4wNjZDMzQ0IDQyOC43NiAzMjkuNTE3IDQ2Mi4wNDMgMzAzLjcxOCA0ODYuNjM1TDE3NC43MTkgNjA5QzE2OC40NSA2MDMuMTA1IDE2My40NzQgNTk2LjA5IDE2MC4wNzcgNTg4LjM2QzE1Ni42ODEgNTgwLjYzMSAxNTQuOTMzIDU3Mi4zNCAxNTQuOTMzIDU2My45NjZDMTU0LjkzMyA1NTUuNTkyIDE1Ni42ODEgNTQ3LjMwMSAxNjAuMDc3IDUzOS41NzJDMTYzLjQ3NCA1MzEuODQyIDE2OC40NSA1MjQuODI4IDE3NC43MTkgNTE4LjkzMlonO1xuY29uc3QgU0VOSU9SX1BBVEhfTEVGVCA9ICdNMTczLjc2IDk0LjA2NzdMOTAuMzE4OSAxNzMuMjE4QzgzLjkzMzQgMTc5LjIzOCA3OC44NjU5IDE4Ni4zOTcgNzUuNDA4IDE5NC4yODFDNzEuOTUgMjAyLjE2NiA3MC4xNjk4IDIxMC42MjIgNzAuMTY5OCAyMTkuMTYyQzcwLjE2OTggMjI3LjcwMiA3MS45NSAyMzYuMTU3IDc1LjQwOCAyNDQuMDQyQzc4Ljg2NTkgMjUxLjkyNyA4My45MzM0IDI1OS4wODUgOTAuMzE4OSAyNjUuMTA1TDE3My43NiAzNDQuMjU2QzE4MC4wMyAzNTAuMTUxIDE4NS4wMDYgMzU3LjE2NiAxODguNDAyIDM2NC44OTVDMTkxLjc5OCAzNzIuNjI1IDE5My41NDcgMzgwLjkxNiAxOTMuNTQ3IDM4OS4yODlDMTkzLjU0NyAzOTcuNjYzIDE5MS43OTggNDA1Ljk1NCAxODguNDAyIDQxMy42ODRDMTg1LjAwNiA0MjEuNDEzIDE4MC4wMyA0MjguNDI4IDE3My43NiA0MzQuMzIzTDQ0LjI4MjMgMzExLjUwNEMxOC40ODMyIDI4Ni45MTEgNCAyNTMuNjI5IDQgMjE4LjkzNEM0IDE4NC4yNCAxOC40ODMyIDE1MC45NTcgNDQuMjgyMyAxMjYuMzY1TDE3My43NiA0QzE4Ni4yMTMgMTYuMDEyOSAxOTMuMTkyIDMyLjE4NjEgMTkzLjE5MiA0OS4wMzM4QzE5My4xOTIgNjUuODgxNSAxODYuMjEzIDgyLjA1NDcgMTczLjc2IDk0LjA2NzdaJztcbmNvbnN0IFNFTklPUl9QQVRIX0ZVTEwgPSBTRU5JT1JfUEFUSF9SSUdIVCArICcgJyArIFNFTklPUl9QQVRIX0xFRlQ7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpYS1sb2FkaW5nJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJzaWEtbG9hZGluZ1wiIFtzdHlsZS5wYWRkaW5nXT1cInBhZGRpbmdcIlxuICAgICAgW2NsYXNzLnNpYS1sb2FkaW5nLS1za2VsZXRvbl09XCJ2YXJpYW50ID09PSAnc2tlbGV0b24nXCJcbiAgICAgIFtzdHlsZS4tLXNpYS1jXT1cImNvbG9yQmFzZVwiIFtzdHlsZS4tLXNpYS1jbF09XCJjb2xvckxpZ2h0XCI+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJzaWEtZG90c1wiICpuZ0lmPVwidmFyaWFudCA9PT0gJ2RvdHMnXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZG90XCIgKm5nRm9yPVwibGV0IGQgb2YgWzAsMSwyXVwiIFtzdHlsZS4tLWldPVwiZFwiPjwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwic2lhLXB1bHNlXCIgKm5nSWY9XCJ2YXJpYW50ID09PSAncHVsc2UnXCIgW3N0eWxlLi0tc2l6ZV09XCJzaXplICsgJ3B4J1wiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInJpbmcgcmluZy0xXCI+PC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInJpbmcgcmluZy0yXCI+PC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImNvcmVcIj48L3NwYW4+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cInNpYS1iYXJzXCIgKm5nSWY9XCJ2YXJpYW50ID09PSAnYmFycydcIiBbc3R5bGUuLS1oXT1cInNpemUgKyAncHgnXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiYmFyXCIgKm5nRm9yPVwibGV0IGIgb2YgWzAsMSwyLDMsNF1cIiBbc3R5bGUuLS1pXT1cImJcIj48L3NwYW4+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cInNpYS1vcmJpdFwiICpuZ0lmPVwidmFyaWFudCA9PT0gJ29yYml0J1wiIFtzdHlsZS4tLXNpemVdPVwic2l6ZSArICdweCdcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJvcmJpdC10cmFja1wiPjwvc3Bhbj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJvcmJpdC1kb3Qgb3JiaXQtZG90LTFcIj48L3NwYW4+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwib3JiaXQtZG90IG9yYml0LWRvdC0yXCI+PC9zcGFuPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJzaWEtbW9ycGhcIiAqbmdJZj1cInZhcmlhbnQgPT09ICdtb3JwaCdcIiBbc3R5bGUuLS1zaXplXT1cInNpemUgKyAncHgnXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwibW9ycGgtc2hhcGVcIj48L3NwYW4+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cInNpYS13YXZlXCIgKm5nSWY9XCJ2YXJpYW50ID09PSAnd2F2ZSdcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ3YXZlLWRvdFwiICpuZ0Zvcj1cImxldCB3IG9mIFswLDEsMiwzLDQsNSw2XVwiIFtzdHlsZS4tLWldPVwid1wiPjwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwic2lhLXNrZWxldG9uXCIgKm5nSWY9XCJ2YXJpYW50ID09PSAnc2tlbGV0b24nXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJza2VsLXJvdyBza2VsLXJvdy0taGVhZGVyXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNrZWwtY2lyY2xlXCI+PC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNrZWwtbGluZXNcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJza2VsLWxpbmUgc2tlbC1saW5lLS1tZFwiPjwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNrZWwtbGluZSBza2VsLWxpbmUtLXNtXCI+PC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2tlbC1saW5lIHNrZWwtbGluZS0tZnVsbFwiPjwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2tlbC1saW5lIHNrZWwtbGluZS0tbGdcIj48L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNrZWwtbGluZSBza2VsLWxpbmUtLW1kXCI+PC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPCEtLSDilZDilZDilZAgU0VOSU9SIFZBUklBTlRTIOKVkOKVkOKVkCAtLT5cblxuICAgICAgPCEtLSBzZW5pb3ItZHJhdzogc3Ryb2tlIGRyYXcgYW5pbWF0aW9uIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cInNpYS1zZW5pb3ItZHJhd1wiICpuZ0lmPVwidmFyaWFudCA9PT0gJ3Nlbmlvci1kcmF3J1wiIFtzdHlsZS4tLXNpemVdPVwic2l6ZSArICdweCdcIj5cbiAgICAgICAgPHN2ZyBbYXR0ci53aWR0aF09XCJzaXplXCIgW2F0dHIuaGVpZ2h0XT1cInNpemVcIiB2aWV3Qm94PVwiMCAwIDM0OCA2MTNcIiBmaWxsPVwibm9uZVwiPlxuICAgICAgICAgIDxwYXRoIGNsYXNzPVwic3Agc3AtclwiIFthdHRyLmRdPVwicGF0aFJpZ2h0XCJcbiAgICAgICAgICAgIFthdHRyLnN0cm9rZV09XCJjb2xvckJhc2VcIiBzdHJva2Utd2lkdGg9XCI2XCIgZmlsbD1cIm5vbmVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxuICAgICAgICAgIDxwYXRoIGNsYXNzPVwic3Agc3AtbFwiIFthdHRyLmRdPVwicGF0aExlZnRcIlxuICAgICAgICAgICAgW2F0dHIuc3Ryb2tlXT1cImNvbG9yQmFzZVwiIHN0cm9rZS13aWR0aD1cIjZcIiBmaWxsPVwibm9uZVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XG4gICAgICAgIDwvc3ZnPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDwhLS0gc2VuaW9yLXB1bHNlOiBjaXJjbGUgd2l0aCBsb2dvLCBwdWxzZSArIHNjYWxlIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cInNpYS1zZW5pb3ItcHVsc2VcIiAqbmdJZj1cInZhcmlhbnQgPT09ICdzZW5pb3ItcHVsc2UnXCIgW3N0eWxlLi0tc2l6ZV09XCJzaXplICsgJ3B4J1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic3AtY2lyY2xlXCI+XG4gICAgICAgICAgPHN2ZyBbYXR0ci53aWR0aF09XCJzaXplICogMC41XCIgW2F0dHIuaGVpZ2h0XT1cInNpemUgKiAwLjg4XCIgdmlld0JveD1cIjAgMCAzNDggNjEzXCIgZmlsbD1cIm5vbmVcIj5cbiAgICAgICAgICAgIDxwYXRoIFthdHRyLmRdPVwicGF0aEZ1bGxcIiBmaWxsPVwid2hpdGVcIiAvPlxuICAgICAgICAgIDwvc3ZnPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8IS0tIHNlbmlvci1nbG93OiBuZW9uIGdsb3cgd2l0aCBicmVhdGhpbmcgLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwic2lhLXNlbmlvci1nbG93XCIgKm5nSWY9XCJ2YXJpYW50ID09PSAnc2VuaW9yLWdsb3cnXCIgW3N0eWxlLi0tc2l6ZV09XCJzaXplICsgJ3B4J1wiPlxuICAgICAgICA8c3ZnIFthdHRyLndpZHRoXT1cInNpemVcIiBbYXR0ci5oZWlnaHRdPVwic2l6ZVwiIHZpZXdCb3g9XCIwIDAgMzQ4IDYxM1wiIGZpbGw9XCJub25lXCI+XG4gICAgICAgICAgPHBhdGggY2xhc3M9XCJnbG93LXNoYWRvd1wiIFthdHRyLmRdPVwicGF0aEZ1bGxcIiBbYXR0ci5zdHJva2VdPVwiY29sb3JMaWdodFwiIHN0cm9rZS13aWR0aD1cIjEyXCIgZmlsbD1cIm5vbmVcIiAvPlxuICAgICAgICAgIDxwYXRoIGNsYXNzPVwiZ2xvdy1tYWluXCIgW2F0dHIuZF09XCJwYXRoRnVsbFwiIFthdHRyLnN0cm9rZV09XCJjb2xvckJhc2VcIiBzdHJva2Utd2lkdGg9XCI0XCIgZmlsbD1cIm5vbmVcIiAvPlxuICAgICAgICA8L3N2Zz5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8IS0tIHNlbmlvci1mbGlwOiAzRCBZLWF4aXMgZmxpcCAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJzaWEtc2VuaW9yLWZsaXBcIiAqbmdJZj1cInZhcmlhbnQgPT09ICdzZW5pb3ItZmxpcCdcIiBbc3R5bGUuLS1zaXplXT1cInNpemUgKyAncHgnXCI+XG4gICAgICAgIDxzdmcgW2F0dHIud2lkdGhdPVwic2l6ZVwiIFthdHRyLmhlaWdodF09XCJzaXplXCIgdmlld0JveD1cIjAgMCAzNDggNjEzXCIgZmlsbD1cIm5vbmVcIj5cbiAgICAgICAgICA8cGF0aCBbYXR0ci5kXT1cInBhdGhGdWxsXCIgW2F0dHIuZmlsbF09XCJjb2xvckJhc2VcIiAvPlxuICAgICAgICA8L3N2Zz5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8IS0tIHNlbmlvci1ib3VuY2U6IGFsdGVybmF0aW5nIGhhbHZlcyBib3VuY2UgLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwic2lhLXNlbmlvci1ib3VuY2VcIiAqbmdJZj1cInZhcmlhbnQgPT09ICdzZW5pb3ItYm91bmNlJ1wiIFtzdHlsZS4tLXNpemVdPVwic2l6ZSArICdweCdcIj5cbiAgICAgICAgPHN2ZyBbYXR0ci53aWR0aF09XCJzaXplXCIgW2F0dHIuaGVpZ2h0XT1cInNpemVcIiB2aWV3Qm94PVwiMCAwIDM0OCA2MTNcIiBmaWxsPVwibm9uZVwiPlxuICAgICAgICAgIDxwYXRoIGNsYXNzPVwiYm91bmNlLXJcIiBbYXR0ci5kXT1cInBhdGhSaWdodFwiIFthdHRyLmZpbGxdPVwiY29sb3JCYXNlXCIgLz5cbiAgICAgICAgICA8cGF0aCBjbGFzcz1cImJvdW5jZS1sXCIgW2F0dHIuZF09XCJwYXRoTGVmdFwiIFthdHRyLmZpbGxdPVwiY29sb3JMaWdodFwiIC8+XG4gICAgICAgIDwvc3ZnPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDwhLS0gc2VuaW9yLXJldmVhbDogdGVubmlzIGJhbGwgYm91bmNpbmcgd2l0aCBTZW5pb3IgbG9nbyBpbnNpZGUgLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwic2lhLXNlbmlvci1yZXZlYWxcIiAqbmdJZj1cInZhcmlhbnQgPT09ICdzZW5pb3ItcmV2ZWFsJ1wiIFtzdHlsZS4tLXNpemVdPVwic2l6ZSAqIDEuMyArICdweCdcIj5cbiAgICAgICAgPCEtLSBUZW5uaXMgYmFsbCB3aXRoIFNlbmlvciBsb2dvIGluc2lkZSAtLT5cbiAgICAgICAgPHN2ZyBjbGFzcz1cInNyLWJhbGxcIiB2aWV3Qm94PVwiMCAwIDEwMCAxMDBcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gICAgICAgICAgPGRlZnM+XG4gICAgICAgICAgICA8Y2xpcFBhdGggaWQ9XCJzci1jbGlwXCI+PGNpcmNsZSBjeD1cIjUwXCIgY3k9XCI1MFwiIHI9XCI0OFwiIC8+PC9jbGlwUGF0aD5cbiAgICAgICAgICA8L2RlZnM+XG4gICAgICAgICAgPGNpcmNsZSBjeD1cIjUwXCIgY3k9XCI1MFwiIHI9XCI0OFwiIFthdHRyLmZpbGxdPVwiY29sb3JCYXNlXCIgLz5cbiAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI3NyLWNsaXApXCI+XG4gICAgICAgICAgICA8IS0tIHRvcC1yaWdodCBzZWFtIGN1cnZlIC0tPlxuICAgICAgICAgICAgPHBhdGggZD1cIk0zOCAtMiBDNTggMTgsIDYyIDM4LCAxMDIgNDhcIiBzdHJva2U9XCJ3aGl0ZVwiIHN0cm9rZS13aWR0aD1cIjlcIiBmaWxsPVwibm9uZVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBvcGFjaXR5PVwiMC4xNVwiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPVwiTTM4IC0yIEM1OCAxOCwgNjIgMzgsIDEwMiA0OFwiIHN0cm9rZT1cIndoaXRlXCIgc3Ryb2tlLXdpZHRoPVwiNFwiIGZpbGw9XCJub25lXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIG9wYWNpdHk9XCIwLjhcIiAvPlxuICAgICAgICAgICAgPCEtLSBib3R0b20tbGVmdCBzZWFtIGN1cnZlIC0tPlxuICAgICAgICAgICAgPHBhdGggZD1cIk0tMiA1MiBDMzggNjIsIDQyIDgyLCA2MiAxMDJcIiBzdHJva2U9XCJ3aGl0ZVwiIHN0cm9rZS13aWR0aD1cIjlcIiBmaWxsPVwibm9uZVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBvcGFjaXR5PVwiMC4xNVwiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPVwiTS0yIDUyIEMzOCA2MiwgNDIgODIsIDYyIDEwMlwiIHN0cm9rZT1cIndoaXRlXCIgc3Ryb2tlLXdpZHRoPVwiNFwiIGZpbGw9XCJub25lXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIG9wYWNpdHk9XCIwLjhcIiAvPlxuICAgICAgICAgICAgPGcgdHJhbnNmb3JtPVwidHJhbnNsYXRlKDMyLjYsIDE5LjQpIHNjYWxlKDAuMTApXCI+XG4gICAgICAgICAgICAgIDxwYXRoIFthdHRyLmRdPVwicGF0aEZ1bGxcIiBmaWxsPVwid2hpdGVcIiBvcGFjaXR5PVwiMC44XCIgLz5cbiAgICAgICAgICAgIDwvZz5cbiAgICAgICAgICA8L2c+XG4gICAgICAgIDwvc3ZnPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic3Itc2hhZG93XCI+PC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPHNwYW4gY2xhc3M9XCJzaWEtbG9hZGluZy10ZXh0XCIgKm5nSWY9XCJ0ZXh0ICYmIHZhcmlhbnQgIT09ICdza2VsZXRvbidcIj57eyB0ZXh0IH19PC9zcGFuPlxuICAgIDwvZGl2PlxuICBgLFxuICBzdHlsZXM6IFtgXG4gICAgOmhvc3QgeyBkaXNwbGF5OiBibG9jazsgfVxuICAgIC5zaWEtbG9hZGluZyB7XG4gICAgICBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogMC43NXJlbTsgcGFkZGluZzogM3JlbSAwO1xuICAgIH1cbiAgICAuc2lhLWxvYWRpbmctLXNrZWxldG9uIHsgYWxpZ24taXRlbXM6IHN0cmV0Y2g7IH1cbiAgICAuc2lhLWxvYWRpbmctdGV4dCB7IGNvbG9yOiB2YXIoLS1wLXRleHQtbXV0ZWQtY29sb3IsICM5NGEzYjgpOyBmb250LXNpemU6IDAuOHJlbTsgbGV0dGVyLXNwYWNpbmc6IDAuMDJlbTsgfVxuXG4gICAgLyog4pSA4pSAIERvdHMg4pSA4pSAICovXG4gICAgLnNpYS1kb3RzIHsgZGlzcGxheTogZmxleDsgZ2FwOiA2cHg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cbiAgICAuc2lhLWRvdHMgLmRvdCB7XG4gICAgICB3aWR0aDogMTBweDsgaGVpZ2h0OiAxMHB4OyBib3JkZXItcmFkaXVzOiA1MCU7IGJhY2tncm91bmQ6IHZhcigtLXNpYS1jKTtcbiAgICAgIGFuaW1hdGlvbjogc2lhLWRvdC1ib3VuY2UgMS4ycyBjYWxjKHZhcigtLWkpICogMC4xNXMpIGVhc2UtaW4tb3V0IGluZmluaXRlO1xuICAgIH1cbiAgICBAa2V5ZnJhbWVzIHNpYS1kb3QtYm91bmNlIHtcbiAgICAgIDAlLCA2MCUsIDEwMCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCkgc2NhbGUoMSk7IG9wYWNpdHk6IDAuNDsgfVxuICAgICAgMzAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMnB4KSBzY2FsZSgxLjE1KTsgb3BhY2l0eTogMTsgfVxuICAgIH1cblxuICAgIC8qIOKUgOKUgCBQdWxzZSDilIDilIAgKi9cbiAgICAuc2lhLXB1bHNlIHsgcG9zaXRpb246IHJlbGF0aXZlOyB3aWR0aDogdmFyKC0tc2l6ZSwgNDBweCk7IGhlaWdodDogdmFyKC0tc2l6ZSwgNDBweCk7IH1cbiAgICAuc2lhLXB1bHNlIC5yaW5nIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgaW5zZXQ6IDA7IGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLXNpYS1jKTsgb3BhY2l0eTogMDtcbiAgICB9XG4gICAgLnNpYS1wdWxzZSAucmluZy0xIHsgYW5pbWF0aW9uOiBzaWEtcmlwcGxlIDEuOHMgMHMgZWFzZS1vdXQgaW5maW5pdGU7IH1cbiAgICAuc2lhLXB1bHNlIC5yaW5nLTIgeyBhbmltYXRpb246IHNpYS1yaXBwbGUgMS44cyAwLjZzIGVhc2Utb3V0IGluZmluaXRlOyB9XG4gICAgLnNpYS1wdWxzZSAuY29yZSB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogNTAlOyBsZWZ0OiA1MCU7IHdpZHRoOiAxMHB4OyBoZWlnaHQ6IDEwcHg7XG4gICAgICBtYXJnaW46IC01cHggMCAwIC01cHg7IGJvcmRlci1yYWRpdXM6IDUwJTsgYmFja2dyb3VuZDogdmFyKC0tc2lhLWMpO1xuICAgICAgYW5pbWF0aW9uOiBzaWEtY29yZS1wdWxzZSAxLjhzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xuICAgIH1cbiAgICBAa2V5ZnJhbWVzIHNpYS1yaXBwbGUgeyAwJSB7IHRyYW5zZm9ybTogc2NhbGUoMC4zKTsgb3BhY2l0eTogMC44OyB9IDEwMCUgeyB0cmFuc2Zvcm06IHNjYWxlKDEpOyBvcGFjaXR5OiAwOyB9IH1cbiAgICBAa2V5ZnJhbWVzIHNpYS1jb3JlLXB1bHNlIHsgMCUsIDEwMCUgeyB0cmFuc2Zvcm06IHNjYWxlKDEpOyBvcGFjaXR5OiAwLjY7IH0gNTAlIHsgdHJhbnNmb3JtOiBzY2FsZSgxLjMpOyBvcGFjaXR5OiAxOyB9IH1cblxuICAgIC8qIOKUgOKUgCBCYXJzIOKUgOKUgCAqL1xuICAgIC5zaWEtYmFycyB7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogM3B4OyBoZWlnaHQ6IHZhcigtLWgsIDQwcHgpOyB9XG4gICAgLnNpYS1iYXJzIC5iYXIge1xuICAgICAgd2lkdGg6IDRweDsgaGVpZ2h0OiA0MCU7IGJvcmRlci1yYWRpdXM6IDJweDsgYmFja2dyb3VuZDogdmFyKC0tc2lhLWMpO1xuICAgICAgYW5pbWF0aW9uOiBzaWEtYmFyLXdhdmUgMXMgY2FsYyh2YXIoLS1pKSAqIDAuMXMpIGVhc2UtaW4tb3V0IGluZmluaXRlO1xuICAgIH1cbiAgICBAa2V5ZnJhbWVzIHNpYS1iYXItd2F2ZSB7IDAlLCAxMDAlIHsgaGVpZ2h0OiAyMCU7IG9wYWNpdHk6IDAuNDsgfSA1MCUgeyBoZWlnaHQ6IDEwMCU7IG9wYWNpdHk6IDE7IH0gfVxuXG4gICAgLyog4pSA4pSAIE9yYml0IOKUgOKUgCAqL1xuICAgIC5zaWEtb3JiaXQgeyBwb3NpdGlvbjogcmVsYXRpdmU7IHdpZHRoOiB2YXIoLS1zaXplLCA0MHB4KTsgaGVpZ2h0OiB2YXIoLS1zaXplLCA0MHB4KTsgfVxuICAgIC5zaWEtb3JiaXQgLm9yYml0LXRyYWNrIHsgcG9zaXRpb246IGFic29sdXRlOyBpbnNldDogMDsgYm9yZGVyLXJhZGl1czogNTAlOyBib3JkZXI6IDEuNXB4IHNvbGlkIHZhcigtLXAtc3VyZmFjZS0yMDAsICNlMmU4ZjApOyB9XG4gICAgLnNpYS1vcmJpdCAub3JiaXQtZG90IHsgcG9zaXRpb246IGFic29sdXRlOyB3aWR0aDogOHB4OyBoZWlnaHQ6IDhweDsgYm9yZGVyLXJhZGl1czogNTAlOyB0b3A6IC00cHg7IGxlZnQ6IGNhbGMoNTAlIC0gNHB4KTsgfVxuICAgIC5zaWEtb3JiaXQgLm9yYml0LWRvdC0xIHtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLXNpYS1jKTsgYW5pbWF0aW9uOiBzaWEtb3JiaXQtc3BpbiAxLjRzIGxpbmVhciBpbmZpbml0ZTtcbiAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDUwJSBjYWxjKHZhcigtLXNpemUsIDQwcHgpIC8gMiArIDRweCk7XG4gICAgfVxuICAgIC5zaWEtb3JiaXQgLm9yYml0LWRvdC0yIHtcbiAgICAgIGJhY2tncm91bmQ6IHZhcigtLXNpYS1jbCk7IGFuaW1hdGlvbjogc2lhLW9yYml0LXNwaW4gMS40cyAwLjdzIGxpbmVhciBpbmZpbml0ZTtcbiAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDUwJSBjYWxjKHZhcigtLXNpemUsIDQwcHgpIC8gMiArIDRweCk7XG4gICAgfVxuICAgIEBrZXlmcmFtZXMgc2lhLW9yYml0LXNwaW4geyB0byB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0gfVxuXG4gICAgLyog4pSA4pSAIE1vcnBoIOKUgOKUgCAqL1xuICAgIC5zaWEtbW9ycGggeyB3aWR0aDogdmFyKC0tc2l6ZSwgNDBweCk7IGhlaWdodDogdmFyKC0tc2l6ZSwgNDBweCk7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG4gICAgLnNpYS1tb3JwaCAubW9ycGgtc2hhcGUge1xuICAgICAgd2lkdGg6IDcwJTsgaGVpZ2h0OiA3MCU7IGJhY2tncm91bmQ6IHZhcigtLXNpYS1jKTtcbiAgICAgIGFuaW1hdGlvbjogc2lhLW1vcnBoIDIuNHMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG4gICAgfVxuICAgIEBrZXlmcmFtZXMgc2lhLW1vcnBoIHtcbiAgICAgIDAlICAgeyBib3JkZXItcmFkaXVzOiA1MCUgNTAlIDUwJSA1MCU7IHRyYW5zZm9ybTogcm90YXRlKDBkZWcpIHNjYWxlKDEpOyB9XG4gICAgICAyNSUgIHsgYm9yZGVyLXJhZGl1czogMzAlIDcwJSA1MCUgNTAlOyB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZykgc2NhbGUoMC44NSk7IH1cbiAgICAgIDUwJSAgeyBib3JkZXItcmFkaXVzOiA1MCUgMzAlIDcwJSAzMCU7IHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZykgc2NhbGUoMSk7IH1cbiAgICAgIDc1JSAgeyBib3JkZXItcmFkaXVzOiA3MCUgNTAlIDMwJSA3MCU7IHRyYW5zZm9ybTogcm90YXRlKDI3MGRlZykgc2NhbGUoMC44NSk7IH1cbiAgICAgIDEwMCUgeyBib3JkZXItcmFkaXVzOiA1MCUgNTAlIDUwJSA1MCU7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZykgc2NhbGUoMSk7IH1cbiAgICB9XG5cbiAgICAvKiDilIDilIAgV2F2ZSDilIDilIAgKi9cbiAgICAuc2lhLXdhdmUgeyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDNweDsgfVxuICAgIC5zaWEtd2F2ZSAud2F2ZS1kb3Qge1xuICAgICAgd2lkdGg6IDZweDsgaGVpZ2h0OiA2cHg7IGJvcmRlci1yYWRpdXM6IDUwJTsgYmFja2dyb3VuZDogdmFyKC0tc2lhLWMpO1xuICAgICAgYW5pbWF0aW9uOiBzaWEtd2F2ZS1mbG93IDEuNnMgY2FsYyh2YXIoLS1pKSAqIDAuMTJzKSBlYXNlLWluLW91dCBpbmZpbml0ZTtcbiAgICB9XG4gICAgQGtleWZyYW1lcyBzaWEtd2F2ZS1mbG93IHtcbiAgICAgIDAlLCAxMDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApIHNjYWxlKDAuNik7IG9wYWNpdHk6IDAuMzsgfVxuICAgICAgNTAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMHB4KSBzY2FsZSgxKTsgb3BhY2l0eTogMTsgfVxuICAgIH1cblxuICAgIC8qIOKUgOKUgCBTa2VsZXRvbiDilIDilIAgKi9cbiAgICAuc2lhLXNrZWxldG9uIHsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgZ2FwOiAwLjc1cmVtOyBwYWRkaW5nOiAwIDFyZW07IHdpZHRoOiAxMDAlOyB9XG4gICAgLnNrZWwtcm93IHsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiAwLjc1cmVtOyB9XG4gICAgLnNrZWwtcm93LS1oZWFkZXIgeyBtYXJnaW4tYm90dG9tOiAwLjI1cmVtOyB9XG4gICAgLnNrZWwtY2lyY2xlIHtcbiAgICAgIHdpZHRoOiAzNnB4OyBoZWlnaHQ6IDM2cHg7IGJvcmRlci1yYWRpdXM6IDUwJTsgZmxleC1zaHJpbms6IDA7XG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wLXN1cmZhY2UtMjAwLCAjZTJlOGYwKTsgYW5pbWF0aW9uOiBzaWEtc2hpbW1lciAxLjZzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xuICAgIH1cbiAgICAuc2tlbC1saW5lcyB7IGZsZXg6IDE7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogMC40cmVtOyB9XG4gICAgLnNrZWwtbGluZSB7XG4gICAgICBoZWlnaHQ6IDEwcHg7IGJvcmRlci1yYWRpdXM6IDRweDsgYmFja2dyb3VuZDogdmFyKC0tcC1zdXJmYWNlLTIwMCwgI2UyZThmMCk7XG4gICAgICBhbmltYXRpb246IHNpYS1zaGltbWVyIDEuNnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG4gICAgfVxuICAgIC5za2VsLWxpbmUtLWZ1bGwgeyB3aWR0aDogMTAwJTsgYW5pbWF0aW9uLWRlbGF5OiAwLjFzOyB9XG4gICAgLnNrZWwtbGluZS0tbGcgICB7IHdpZHRoOiA3NSU7IGFuaW1hdGlvbi1kZWxheTogMC4yczsgfVxuICAgIC5za2VsLWxpbmUtLW1kICAgeyB3aWR0aDogNTUlOyBhbmltYXRpb24tZGVsYXk6IDAuM3M7IH1cbiAgICAuc2tlbC1saW5lLS1zbSAgIHsgd2lkdGg6IDM1JTsgYW5pbWF0aW9uLWRlbGF5OiAwLjE1czsgfVxuICAgIEBrZXlmcmFtZXMgc2lhLXNoaW1tZXIgeyAwJSwgMTAwJSB7IG9wYWNpdHk6IDAuNDsgfSA1MCUgeyBvcGFjaXR5OiAxOyB9IH1cblxuICAgIC8qIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkFxuICAgICAgIFNFTklPUiBWQVJJQU5UU1xuICAgICAgIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkCAqL1xuXG4gICAgLyog4pSA4pSAIHNlbmlvci1kcmF3OiBzdHJva2UgZHJhdyBhbmltYXRpb24g4pSA4pSAICovXG4gICAgLnNpYS1zZW5pb3ItZHJhdyB7IHdpZHRoOiB2YXIoLS1zaXplLCA0MHB4KTsgaGVpZ2h0OiB2YXIoLS1zaXplLCA0MHB4KTsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cbiAgICAuc2lhLXNlbmlvci1kcmF3IC5zcCB7IHN0cm9rZS1kYXNoYXJyYXk6IDEyMDA7IHN0cm9rZS1kYXNob2Zmc2V0OiAxMjAwOyB9XG4gICAgLnNpYS1zZW5pb3ItZHJhdyAuc3AtciB7IGFuaW1hdGlvbjogc2lhLXNkLXIgMnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7IH1cbiAgICAuc2lhLXNlbmlvci1kcmF3IC5zcC1sIHsgYW5pbWF0aW9uOiBzaWEtc2QtbCAycyBlYXNlLWluLW91dCBpbmZpbml0ZTsgfVxuICAgIEBrZXlmcmFtZXMgc2lhLXNkLXIge1xuICAgICAgMCUgICB7IHN0cm9rZS1kYXNob2Zmc2V0OiAxMjAwOyBvcGFjaXR5OiAwLjI7IH1cbiAgICAgIDM1JSAgeyBzdHJva2UtZGFzaG9mZnNldDogMDsgb3BhY2l0eTogMTsgfVxuICAgICAgNjAlICB7IHN0cm9rZS1kYXNob2Zmc2V0OiAwOyBvcGFjaXR5OiAxOyB9XG4gICAgICAxMDAlIHsgc3Ryb2tlLWRhc2hvZmZzZXQ6IC0xMjAwOyBvcGFjaXR5OiAwLjI7IH1cbiAgICB9XG4gICAgQGtleWZyYW1lcyBzaWEtc2QtbCB7XG4gICAgICAwJSAgIHsgc3Ryb2tlLWRhc2hvZmZzZXQ6IDEyMDA7IG9wYWNpdHk6IDAuMjsgfVxuICAgICAgMTUlICB7IHN0cm9rZS1kYXNob2Zmc2V0OiAxMjAwOyBvcGFjaXR5OiAwLjI7IH1cbiAgICAgIDUwJSAgeyBzdHJva2UtZGFzaG9mZnNldDogMDsgb3BhY2l0eTogMTsgfVxuICAgICAgNjUlICB7IHN0cm9rZS1kYXNob2Zmc2V0OiAwOyBvcGFjaXR5OiAxOyB9XG4gICAgICAxMDAlIHsgc3Ryb2tlLWRhc2hvZmZzZXQ6IC0xMjAwOyBvcGFjaXR5OiAwLjI7IH1cbiAgICB9XG5cbiAgICAvKiDilIDilIAgc2VuaW9yLXB1bHNlOiBjaXJjbGUgd2l0aCBsb2dvLCBwdWxzZSArIHNjYWxlIOKUgOKUgCAqL1xuICAgIC5zaWEtc2VuaW9yLXB1bHNlIHsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cbiAgICAuc2lhLXNlbmlvci1wdWxzZSAuc3AtY2lyY2xlIHtcbiAgICAgIHdpZHRoOiB2YXIoLS1zaXplLCA2NHB4KTsgaGVpZ2h0OiB2YXIoLS1zaXplLCA2NHB4KTsgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2lhLWMpOyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGFuaW1hdGlvbjogc2lhLXNwLXB1bHNlIDEuNHMgZWFzZS1vdXQgaW5maW5pdGUsIHNpYS1zcC1zY2FsZSAxLjRzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xuICAgIH1cbiAgICBAa2V5ZnJhbWVzIHNpYS1zcC1wdWxzZSB7XG4gICAgICAwJSAgeyBib3gtc2hhZG93OiAwIDAgMCAwIHZhcigtLXNpYS1jbCk7IH1cbiAgICAgIDcwJSB7IGJveC1zaGFkb3c6IDAgMCAwIDIwcHggdHJhbnNwYXJlbnQ7IH1cbiAgICAgIDEwMCV7IGJveC1zaGFkb3c6IDAgMCAwIDAgdHJhbnNwYXJlbnQ7IH1cbiAgICB9XG4gICAgQGtleWZyYW1lcyBzaWEtc3Atc2NhbGUgeyAwJSwgMTAwJSB7IHRyYW5zZm9ybTogc2NhbGUoMSk7IH0gNTAlIHsgdHJhbnNmb3JtOiBzY2FsZSgxLjEyKTsgfSB9XG5cbiAgICAvKiDilIDilIAgc2VuaW9yLWdsb3c6IG5lb24gZ2xvdyBicmVhdGhpbmcg4pSA4pSAICovXG4gICAgLnNpYS1zZW5pb3ItZ2xvdyB7IHdpZHRoOiB2YXIoLS1zaXplLCA0MHB4KTsgaGVpZ2h0OiB2YXIoLS1zaXplLCA0MHB4KTsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cbiAgICAuc2lhLXNlbmlvci1nbG93IC5nbG93LXNoYWRvdyB7XG4gICAgICBvcGFjaXR5OiAwLjM7IGZpbHRlcjogYmx1cig0cHgpO1xuICAgICAgYW5pbWF0aW9uOiBzaWEtc2ctYnJlYXRoZSAycyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbiAgICB9XG4gICAgLnNpYS1zZW5pb3ItZ2xvdyAuZ2xvdy1tYWluIHtcbiAgICAgIGFuaW1hdGlvbjogc2lhLXNnLWJyZWF0aGUgMnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG4gICAgfVxuICAgIEBrZXlmcmFtZXMgc2lhLXNnLWJyZWF0aGUge1xuICAgICAgMCUsIDEwMCUgeyBvcGFjaXR5OiAwLjQ7IGZpbHRlcjogZHJvcC1zaGFkb3coMCAwIDJweCB2YXIoLS1zaWEtY2wpKTsgfVxuICAgICAgNTAlICAgICAgeyBvcGFjaXR5OiAxOyAgIGZpbHRlcjogZHJvcC1zaGFkb3coMCAwIDEwcHggdmFyKC0tc2lhLWNsKSkgZHJvcC1zaGFkb3coMCAwIDIwcHggdmFyKC0tc2lhLWMpKTsgfVxuICAgIH1cblxuICAgIC8qIOKUgOKUgCBzZW5pb3ItZmxpcDogM0QgWS1heGlzIGZsaXAg4pSA4pSAICovXG4gICAgLnNpYS1zZW5pb3ItZmxpcCB7XG4gICAgICB3aWR0aDogdmFyKC0tc2l6ZSwgNDBweCk7IGhlaWdodDogdmFyKC0tc2l6ZSwgNDBweCk7XG4gICAgICBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIHBlcnNwZWN0aXZlOiAzMDBweDtcbiAgICB9XG4gICAgLnNpYS1zZW5pb3ItZmxpcCBzdmcge1xuICAgICAgYW5pbWF0aW9uOiBzaWEtc2YtZmxpcCAycyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbiAgICAgIHRyYW5zZm9ybS1zdHlsZTogcHJlc2VydmUtM2Q7XG4gICAgfVxuICAgIEBrZXlmcmFtZXMgc2lhLXNmLWZsaXAge1xuICAgICAgMCUgICB7IHRyYW5zZm9ybTogcm90YXRlWSgwZGVnKTsgfVxuICAgICAgNTAlICB7IHRyYW5zZm9ybTogcm90YXRlWSgxODBkZWcpOyB9XG4gICAgICAxMDAlIHsgdHJhbnNmb3JtOiByb3RhdGVZKDM2MGRlZyk7IH1cbiAgICB9XG5cbiAgICAvKiDilIDilIAgc2VuaW9yLWJvdW5jZTogYWx0ZXJuYXRpbmcgaGFsdmVzIGJvdW5jZSDilIDilIAgKi9cbiAgICAuc2lhLXNlbmlvci1ib3VuY2UgeyB3aWR0aDogdmFyKC0tc2l6ZSwgNDBweCk7IGhlaWdodDogdmFyKC0tc2l6ZSwgNDBweCk7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG4gICAgLnNpYS1zZW5pb3ItYm91bmNlIC5ib3VuY2UtciB7XG4gICAgICBhbmltYXRpb246IHNpYS1zYi1yIDEuMnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG4gICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgY2VudGVyO1xuICAgIH1cbiAgICAuc2lhLXNlbmlvci1ib3VuY2UgLmJvdW5jZS1sIHtcbiAgICAgIGFuaW1hdGlvbjogc2lhLXNiLWwgMS4ycyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbiAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlciBjZW50ZXI7XG4gICAgfVxuICAgIEBrZXlmcmFtZXMgc2lhLXNiLXIge1xuICAgICAgMCUsIDEwMCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCkgc2NhbGUoMSk7IG9wYWNpdHk6IDAuNzsgfVxuICAgICAgNTAlICAgICAgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLThweCkgc2NhbGUoMS4wNSk7IG9wYWNpdHk6IDE7IH1cbiAgICB9XG4gICAgQGtleWZyYW1lcyBzaWEtc2ItbCB7XG4gICAgICAwJSwgMTAwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtOHB4KSBzY2FsZSgxLjA1KTsgb3BhY2l0eTogMTsgfVxuICAgICAgNTAlICAgICAgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCkgc2NhbGUoMSk7IG9wYWNpdHk6IDAuNzsgfVxuICAgIH1cblxuICAgIC8qIOKUgOKUgCBzZW5pb3ItcmV2ZWFsOiB0ZW5uaXMgYmFsbCBib3VuY2Ug4pSA4pSAICovXG4gICAgLnNpYS1zZW5pb3ItcmV2ZWFsIHtcbiAgICAgIHdpZHRoOiB2YXIoLS1zaXplLCA2NHB4KTsgaGVpZ2h0OiBjYWxjKHZhcigtLXNpemUsIDY0cHgpICogMS40KTtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgfVxuICAgIC5zaWEtc2VuaW9yLXJldmVhbCAuc3ItYmFsbCB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7IHdpZHRoOiB2YXIoLS1zaXplLCA2NHB4KTsgaGVpZ2h0OiB2YXIoLS1zaXplLCA2NHB4KTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIGFuaW1hdGlvbjogc2lhLXNyLWJvdW5jZSAxLjJzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xuICAgIH1cbiAgICAuc2lhLXNlbmlvci1yZXZlYWwgLnNyLXNoYWRvdyB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7IGJvdHRvbTogMDsgd2lkdGg6IDYwJTsgaGVpZ2h0OiA2cHg7XG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7IGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC4xMik7XG4gICAgICBhbmltYXRpb246IHNpYS1zci1zaGFkb3cgMS4ycyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbiAgICB9XG5cbiAgICBAa2V5ZnJhbWVzIHNpYS1zci1ib3VuY2Uge1xuICAgICAgMCUsIDEwMCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjAlKSBzY2FsZVgoMS4wNikgc2NhbGVZKDAuOTQpOyB9XG4gICAgICA1MCUgICAgICB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMjUlKSBzY2FsZVgoMC45Nikgc2NhbGVZKDEuMDQpOyB9XG4gICAgfVxuICAgIEBrZXlmcmFtZXMgc2lhLXNyLXNoYWRvdyB7XG4gICAgICAwJSwgMTAwJSB7IHRyYW5zZm9ybTogc2NhbGVYKDEpOyBvcGFjaXR5OiAwLjEyOyB9XG4gICAgICA1MCUgICAgICB7IHRyYW5zZm9ybTogc2NhbGVYKDAuNik7IG9wYWNpdHk6IDAuMDY7IH1cbiAgICB9XG4gIGBdXG59KVxuZXhwb3J0IGNsYXNzIExvYWRpbmdDb21wb25lbnQge1xuICBASW5wdXQoKSB2YXJpYW50OiBMb2FkaW5nVmFyaWFudCA9ICdzZW5pb3ItcmV2ZWFsJztcbiAgQElucHV0KCkgY29sb3I6IExvYWRpbmdDb2xvciA9ICdzZW5pb3InO1xuICBASW5wdXQoKSBzaXplOiBudW1iZXIgPSA0MDtcbiAgQElucHV0KCkgdGV4dDogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIHBhZGRpbmc6IHN0cmluZyA9ICczcmVtIDAnO1xuXG4gIGdldCBjb2xvckJhc2UoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gKENPTE9SX01BUFt0aGlzLmNvbG9yXSB8fCBDT0xPUl9NQVBbJ3NlbmlvciddKS5iYXNlO1xuICB9XG5cbiAgZ2V0IGNvbG9yTGlnaHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gKENPTE9SX01BUFt0aGlzLmNvbG9yXSB8fCBDT0xPUl9NQVBbJ3NlbmlvciddKS5saWdodDtcbiAgfVxuXG4gIHBhdGhSaWdodCA9IFNFTklPUl9QQVRIX1JJR0hUO1xuICBwYXRoTGVmdCA9IFNFTklPUl9QQVRIX0xFRlQ7XG4gIHBhdGhGdWxsID0gU0VOSU9SX1BBVEhfRlVMTDtcbn1cbiJdfQ==
|
|
322
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGluZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzLWFpL3NyYy9saWIvY29tcG9uZW50cy9sb2FkaW5nL2xvYWRpbmcuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7O0FBUWhFLE1BQU0sU0FBUyxHQUEwRDtJQUN2RSxPQUFPLEVBQUksRUFBRSxJQUFJLEVBQUUsK0JBQStCLEVBQUcsS0FBSyxFQUFFLCtCQUErQixFQUFFO0lBQzdGLFNBQVMsRUFBRSxFQUFFLElBQUksRUFBRSwrQkFBK0IsRUFBRyxLQUFLLEVBQUUsK0JBQStCLEVBQUU7SUFDN0YsT0FBTyxFQUFJLEVBQUUsSUFBSSxFQUFFLDZCQUE2QixFQUFLLEtBQUssRUFBRSw2QkFBNkIsRUFBRTtJQUMzRixJQUFJLEVBQU8sRUFBRSxJQUFJLEVBQUUsOEJBQThCLEVBQUksS0FBSyxFQUFFLDhCQUE4QixFQUFFO0lBQzVGLE1BQU0sRUFBSyxFQUFFLElBQUksRUFBRSwyQkFBMkIsRUFBTyxLQUFLLEVBQUUsMkJBQTJCLEVBQUU7SUFDekYsSUFBSSxFQUFPLEVBQUUsSUFBSSxFQUFFLDRCQUE0QixFQUFNLEtBQUssRUFBRSw0QkFBNEIsRUFBRTtJQUMxRixNQUFNLEVBQUssRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUF5QixLQUFLLEVBQUUsU0FBUyxFQUFFO0NBQ3hFLENBQUM7QUFFRixNQUFNLGlCQUFpQixHQUFHLG90QkFBb3RCLENBQUM7QUFDL3VCLE1BQU0sZ0JBQWdCLEdBQUcsNm1CQUE2bUIsQ0FBQztBQUN2b0IsTUFBTSxnQkFBZ0IsR0FBRyxpQkFBaUIsR0FBRyxHQUFHLEdBQUcsZ0JBQWdCLENBQUM7QUE0WnBFLE1BQU0sT0FBTyxnQkFBZ0I7SUFDbEIsT0FBTyxHQUFtQixlQUFlLENBQUM7SUFDMUMsS0FBSyxHQUFpQixRQUFRLENBQUM7SUFDL0IsSUFBSSxHQUFXLEVBQUUsQ0FBQztJQUNsQixJQUFJLEdBQVcsRUFBRSxDQUFDO0lBQ2xCLE9BQU8sR0FBVyxRQUFRLENBQUM7SUFFcEMsSUFBSSxTQUFTO1FBQ1gsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQzdELENBQUM7SUFFRCxJQUFJLFVBQVU7UUFDWixPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDOUQsQ0FBQztJQUVELFNBQVMsR0FBRyxpQkFBaUIsQ0FBQztJQUM5QixRQUFRLEdBQUcsZ0JBQWdCLENBQUM7SUFDNUIsUUFBUSxHQUFHLGdCQUFnQixDQUFDO3dHQWpCakIsZ0JBQWdCOzRGQUFoQixnQkFBZ0IsdUtBclpqQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXdJVCxxclJBeklTLFlBQVksZ1FBQUUsb0JBQW9COzs0RkFzWmpDLGdCQUFnQjtrQkExWjVCLFNBQVM7K0JBQ0UsYUFBYSxjQUNYLElBQUksbUJBQ0MsdUJBQXVCLENBQUMsTUFBTSxXQUN0QyxDQUFDLFlBQVksRUFBRSxvQkFBb0IsQ0FBQyxZQUNuQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXdJVDs4QkE4UVEsT0FBTztzQkFBZixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSWFzc2lzdEljb25Db21wb25lbnQgfSBmcm9tICcuL2lhc3Npc3QtaWNvbi5jb21wb25lbnQnO1xuXG5leHBvcnQgdHlwZSBMb2FkaW5nVmFyaWFudCA9XG4gIHwgJ2RvdHMnIHwgJ3B1bHNlJyB8ICdiYXJzJyB8ICdvcmJpdCcgfCAnbW9ycGgnIHwgJ3dhdmUnIHwgJ3NrZWxldG9uJ1xuICB8ICdzZW5pb3ItZHJhdycgfCAnc2VuaW9yLXB1bHNlJyB8ICdzZW5pb3ItZ2xvdycgfCAnc2VuaW9yLWZsaXAnIHwgJ3Nlbmlvci1ib3VuY2UnIHwgJ3Nlbmlvci1yZXZlYWwnXG4gIHwgJ2lhc3Npc3QnIHwgJ2lhc3Npc3QtcHVsc2UnIHwgJ2lhc3Npc3Qtb3JiaXQnO1xuZXhwb3J0IHR5cGUgTG9hZGluZ0NvbG9yID0gJ3ByaW1hcnknIHwgJ3NlY29uZGFyeScgfCAnc3VjY2VzcycgfCAnd2FybicgfCAnZGFuZ2VyJyB8ICdpbmZvJyB8ICdzZW5pb3InO1xuXG5jb25zdCBDT0xPUl9NQVA6IFJlY29yZDxMb2FkaW5nQ29sb3IsIHsgYmFzZTogc3RyaW5nOyBsaWdodDogc3RyaW5nIH0+ID0ge1xuICBwcmltYXJ5OiAgIHsgYmFzZTogJ3ZhcigtLXAtcHJpbWFyeS01MDAsICMzYjgyZjYpJywgIGxpZ2h0OiAndmFyKC0tcC1wcmltYXJ5LTMwMCwgIzkzYzVmZCknIH0sXG4gIHNlY29uZGFyeTogeyBiYXNlOiAndmFyKC0tcC1zdXJmYWNlLTUwMCwgIzY0NzQ4YiknLCAgbGlnaHQ6ICd2YXIoLS1wLXN1cmZhY2UtMzAwLCAjY2JkNWUxKScgfSxcbiAgc3VjY2VzczogICB7IGJhc2U6ICd2YXIoLS1wLWdyZWVuLTUwMCwgIzIyYzU1ZSknLCAgICBsaWdodDogJ3ZhcigtLXAtZ3JlZW4tMzAwLCAjODZlZmFjKScgfSxcbiAgd2FybjogICAgICB7IGJhc2U6ICd2YXIoLS1wLXllbGxvdy01MDAsICNlYWIzMDgpJywgICBsaWdodDogJ3ZhcigtLXAteWVsbG93LTMwMCwgI2ZkZTA0NyknIH0sXG4gIGRhbmdlcjogICAgeyBiYXNlOiAndmFyKC0tcC1yZWQtNTAwLCAjZWY0NDQ0KScsICAgICAgbGlnaHQ6ICd2YXIoLS1wLXJlZC0zMDAsICNmY2E1YTUpJyB9LFxuICBpbmZvOiAgICAgIHsgYmFzZTogJ3ZhcigtLXAtYmx1ZS01MDAsICMzYjgyZjYpJywgICAgIGxpZ2h0OiAndmFyKC0tcC1ibHVlLTMwMCwgIzkzYzVmZCknIH0sXG4gIHNlbmlvcjogICAgeyBiYXNlOiAnIzBkOTQ4OCcsICAgICAgICAgICAgICAgICAgICAgICAgbGlnaHQ6ICcjMDBjODlhJyB9LFxufTtcblxuY29uc3QgU0VOSU9SX1BBVEhfUklHSFQgPSAnTTE3NC43MTkgNTE4LjkzMkwyNTguMTYxIDQzOS43ODJDMjY0LjU0NiA0MzMuNzYyIDI2OS42MTQgNDI2LjYwMyAyNzMuMDcyIDQxOC43MTlDMjc2LjUzIDQxMC44MzQgMjc4LjMxIDQwMi4zNzggMjc4LjMxIDM5My44MzhDMjc4LjMxIDM4NS4yOTggMjc2LjUzIDM3Ni44NDMgMjczLjA3MiAzNjguOTU4QzI2OS42MTQgMzYxLjA3MyAyNjQuNTQ2IDM1My45MTUgMjU4LjE2MSAzNDcuODk1TDE3NC43MTkgMjY5LjE5OUMxNjguNDUgMjYzLjMwNCAxNjMuNDc0IDI1Ni4yODkgMTYwLjA3NyAyNDguNTZDMTU2LjY4MSAyNDAuODMgMTU0LjkzMyAyMzIuNTM5IDE1NC45MzMgMjI0LjE2NUMxNTQuOTMzIDIxNS43OTIgMTU2LjY4MSAyMDcuNTAxIDE2MC4wNzcgMTk5Ljc3MUMxNjMuNDc0IDE5Mi4wNDIgMTY4LjQ1IDE4NS4wMjcgMTc0LjcxOSAxNzkuMTMyTDMwMy43MTggMzAxLjQ5NkMzMjkuNTE3IDMyNi4wODkgMzQ0IDM1OS4zNzEgMzQ0IDM5NC4wNjZDMzQ0IDQyOC43NiAzMjkuNTE3IDQ2Mi4wNDMgMzAzLjcxOCA0ODYuNjM1TDE3NC43MTkgNjA5QzE2OC40NSA2MDMuMTA1IDE2My40NzQgNTk2LjA5IDE2MC4wNzcgNTg4LjM2QzE1Ni42ODEgNTgwLjYzMSAxNTQuOTMzIDU3Mi4zNCAxNTQuOTMzIDU2My45NjZDMTU0LjkzMyA1NTUuNTkyIDE1Ni42ODEgNTQ3LjMwMSAxNjAuMDc3IDUzOS41NzJDMTYzLjQ3NCA1MzEuODQyIDE2OC40NSA1MjQuODI4IDE3NC43MTkgNTE4LjkzMlonO1xuY29uc3QgU0VOSU9SX1BBVEhfTEVGVCA9ICdNMTczLjc2IDk0LjA2NzdMOTAuMzE4OSAxNzMuMjE4QzgzLjkzMzQgMTc5LjIzOCA3OC44NjU5IDE4Ni4zOTcgNzUuNDA4IDE5NC4yODFDNzEuOTUgMjAyLjE2NiA3MC4xNjk4IDIxMC42MjIgNzAuMTY5OCAyMTkuMTYyQzcwLjE2OTggMjI3LjcwMiA3MS45NSAyMzYuMTU3IDc1LjQwOCAyNDQuMDQyQzc4Ljg2NTkgMjUxLjkyNyA4My45MzM0IDI1OS4wODUgOTAuMzE4OSAyNjUuMTA1TDE3My43NiAzNDQuMjU2QzE4MC4wMyAzNTAuMTUxIDE4NS4wMDYgMzU3LjE2NiAxODguNDAyIDM2NC44OTVDMTkxLjc5OCAzNzIuNjI1IDE5My41NDcgMzgwLjkxNiAxOTMuNTQ3IDM4OS4yODlDMTkzLjU0NyAzOTcuNjYzIDE5MS43OTggNDA1Ljk1NCAxODguNDAyIDQxMy42ODRDMTg1LjAwNiA0MjEuNDEzIDE4MC4wMyA0MjguNDI4IDE3My43NiA0MzQuMzIzTDQ0LjI4MjMgMzExLjUwNEMxOC40ODMyIDI4Ni45MTEgNCAyNTMuNjI5IDQgMjE4LjkzNEM0IDE4NC4yNCAxOC40ODMyIDE1MC45NTcgNDQuMjgyMyAxMjYuMzY1TDE3My43NiA0QzE4Ni4yMTMgMTYuMDEyOSAxOTMuMTkyIDMyLjE4NjEgMTkzLjE5MiA0OS4wMzM4QzE5My4xOTIgNjUuODgxNSAxODYuMjEzIDgyLjA1NDcgMTczLjc2IDk0LjA2NzdaJztcbmNvbnN0IFNFTklPUl9QQVRIX0ZVTEwgPSBTRU5JT1JfUEFUSF9SSUdIVCArICcgJyArIFNFTklPUl9QQVRIX0xFRlQ7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NpYS1sb2FkaW5nJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIElhc3Npc3RJY29uQ29tcG9uZW50XSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwic2lhLWxvYWRpbmdcIiBbc3R5bGUucGFkZGluZ109XCJwYWRkaW5nXCJcbiAgICAgIFtjbGFzcy5zaWEtbG9hZGluZy0tc2tlbGV0b25dPVwidmFyaWFudCA9PT0gJ3NrZWxldG9uJ1wiXG4gICAgICBbc3R5bGUuLS1zaWEtY109XCJjb2xvckJhc2VcIiBbc3R5bGUuLS1zaWEtY2xdPVwiY29sb3JMaWdodFwiPlxuXG4gICAgICA8ZGl2IGNsYXNzPVwic2lhLWRvdHNcIiAqbmdJZj1cInZhcmlhbnQgPT09ICdkb3RzJ1wiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImRvdFwiICpuZ0Zvcj1cImxldCBkIG9mIFswLDEsMl1cIiBbc3R5bGUuLS1pXT1cImRcIj48L3NwYW4+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cInNpYS1wdWxzZVwiICpuZ0lmPVwidmFyaWFudCA9PT0gJ3B1bHNlJ1wiIFtzdHlsZS4tLXNpemVdPVwic2l6ZSArICdweCdcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJyaW5nIHJpbmctMVwiPjwvc3Bhbj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJyaW5nIHJpbmctMlwiPjwvc3Bhbj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJjb3JlXCI+PC9zcGFuPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJzaWEtYmFyc1wiICpuZ0lmPVwidmFyaWFudCA9PT0gJ2JhcnMnXCIgW3N0eWxlLi0taF09XCJzaXplICsgJ3B4J1wiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImJhclwiICpuZ0Zvcj1cImxldCBiIG9mIFswLDEsMiwzLDRdXCIgW3N0eWxlLi0taV09XCJiXCI+PC9zcGFuPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJzaWEtb3JiaXRcIiAqbmdJZj1cInZhcmlhbnQgPT09ICdvcmJpdCdcIiBbc3R5bGUuLS1zaXplXT1cInNpemUgKyAncHgnXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwib3JiaXQtdHJhY2tcIj48L3NwYW4+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwib3JiaXQtZG90IG9yYml0LWRvdC0xXCI+PC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz1cIm9yYml0LWRvdCBvcmJpdC1kb3QtMlwiPjwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwic2lhLW1vcnBoXCIgKm5nSWY9XCJ2YXJpYW50ID09PSAnbW9ycGgnXCIgW3N0eWxlLi0tc2l6ZV09XCJzaXplICsgJ3B4J1wiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cIm1vcnBoLXNoYXBlXCI+PC9zcGFuPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJzaWEtd2F2ZVwiICpuZ0lmPVwidmFyaWFudCA9PT0gJ3dhdmUnXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwid2F2ZS1kb3RcIiAqbmdGb3I9XCJsZXQgdyBvZiBbMCwxLDIsMyw0LDUsNl1cIiBbc3R5bGUuLS1pXT1cIndcIj48L3NwYW4+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cInNpYS1za2VsZXRvblwiICpuZ0lmPVwidmFyaWFudCA9PT0gJ3NrZWxldG9uJ1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2tlbC1yb3cgc2tlbC1yb3ctLWhlYWRlclwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJza2VsLWNpcmNsZVwiPjwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJza2VsLWxpbmVzXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2tlbC1saW5lIHNrZWwtbGluZS0tbWRcIj48L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJza2VsLWxpbmUgc2tlbC1saW5lLS1zbVwiPjwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNrZWwtbGluZSBza2VsLWxpbmUtLWZ1bGxcIj48L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNrZWwtbGluZSBza2VsLWxpbmUtLWxnXCI+PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJza2VsLWxpbmUgc2tlbC1saW5lLS1tZFwiPjwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDwhLS0g4pWQ4pWQ4pWQIFNFTklPUiBWQVJJQU5UUyDilZDilZDilZAgLS0+XG5cbiAgICAgIDwhLS0gc2VuaW9yLWRyYXc6IHN0cm9rZSBkcmF3IGFuaW1hdGlvbiAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJzaWEtc2VuaW9yLWRyYXdcIiAqbmdJZj1cInZhcmlhbnQgPT09ICdzZW5pb3ItZHJhdydcIiBbc3R5bGUuLS1zaXplXT1cInNpemUgKyAncHgnXCI+XG4gICAgICAgIDxzdmcgW2F0dHIud2lkdGhdPVwic2l6ZVwiIFthdHRyLmhlaWdodF09XCJzaXplXCIgdmlld0JveD1cIjAgMCAzNDggNjEzXCIgZmlsbD1cIm5vbmVcIj5cbiAgICAgICAgICA8cGF0aCBjbGFzcz1cInNwIHNwLXJcIiBbYXR0ci5kXT1cInBhdGhSaWdodFwiXG4gICAgICAgICAgICBbYXR0ci5zdHJva2VdPVwiY29sb3JCYXNlXCIgc3Ryb2tlLXdpZHRoPVwiNlwiIGZpbGw9XCJub25lXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cbiAgICAgICAgICA8cGF0aCBjbGFzcz1cInNwIHNwLWxcIiBbYXR0ci5kXT1cInBhdGhMZWZ0XCJcbiAgICAgICAgICAgIFthdHRyLnN0cm9rZV09XCJjb2xvckJhc2VcIiBzdHJva2Utd2lkdGg9XCI2XCIgZmlsbD1cIm5vbmVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxuICAgICAgICA8L3N2Zz5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8IS0tIHNlbmlvci1wdWxzZTogY2lyY2xlIHdpdGggbG9nbywgcHVsc2UgKyBzY2FsZSAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJzaWEtc2VuaW9yLXB1bHNlXCIgKm5nSWY9XCJ2YXJpYW50ID09PSAnc2VuaW9yLXB1bHNlJ1wiIFtzdHlsZS4tLXNpemVdPVwic2l6ZSArICdweCdcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNwLWNpcmNsZVwiPlxuICAgICAgICAgIDxzdmcgW2F0dHIud2lkdGhdPVwic2l6ZSAqIDAuNVwiIFthdHRyLmhlaWdodF09XCJzaXplICogMC44OFwiIHZpZXdCb3g9XCIwIDAgMzQ4IDYxM1wiIGZpbGw9XCJub25lXCI+XG4gICAgICAgICAgICA8cGF0aCBbYXR0ci5kXT1cInBhdGhGdWxsXCIgZmlsbD1cIndoaXRlXCIgLz5cbiAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPCEtLSBzZW5pb3ItZ2xvdzogbmVvbiBnbG93IHdpdGggYnJlYXRoaW5nIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cInNpYS1zZW5pb3ItZ2xvd1wiICpuZ0lmPVwidmFyaWFudCA9PT0gJ3Nlbmlvci1nbG93J1wiIFtzdHlsZS4tLXNpemVdPVwic2l6ZSArICdweCdcIj5cbiAgICAgICAgPHN2ZyBbYXR0ci53aWR0aF09XCJzaXplXCIgW2F0dHIuaGVpZ2h0XT1cInNpemVcIiB2aWV3Qm94PVwiMCAwIDM0OCA2MTNcIiBmaWxsPVwibm9uZVwiPlxuICAgICAgICAgIDxwYXRoIGNsYXNzPVwiZ2xvdy1zaGFkb3dcIiBbYXR0ci5kXT1cInBhdGhGdWxsXCIgW2F0dHIuc3Ryb2tlXT1cImNvbG9yTGlnaHRcIiBzdHJva2Utd2lkdGg9XCIxMlwiIGZpbGw9XCJub25lXCIgLz5cbiAgICAgICAgICA8cGF0aCBjbGFzcz1cImdsb3ctbWFpblwiIFthdHRyLmRdPVwicGF0aEZ1bGxcIiBbYXR0ci5zdHJva2VdPVwiY29sb3JCYXNlXCIgc3Ryb2tlLXdpZHRoPVwiNFwiIGZpbGw9XCJub25lXCIgLz5cbiAgICAgICAgPC9zdmc+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPCEtLSBzZW5pb3ItZmxpcDogM0QgWS1heGlzIGZsaXAgLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwic2lhLXNlbmlvci1mbGlwXCIgKm5nSWY9XCJ2YXJpYW50ID09PSAnc2VuaW9yLWZsaXAnXCIgW3N0eWxlLi0tc2l6ZV09XCJzaXplICsgJ3B4J1wiPlxuICAgICAgICA8c3ZnIFthdHRyLndpZHRoXT1cInNpemVcIiBbYXR0ci5oZWlnaHRdPVwic2l6ZVwiIHZpZXdCb3g9XCIwIDAgMzQ4IDYxM1wiIGZpbGw9XCJub25lXCI+XG4gICAgICAgICAgPHBhdGggW2F0dHIuZF09XCJwYXRoRnVsbFwiIFthdHRyLmZpbGxdPVwiY29sb3JCYXNlXCIgLz5cbiAgICAgICAgPC9zdmc+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPCEtLSBzZW5pb3ItYm91bmNlOiBhbHRlcm5hdGluZyBoYWx2ZXMgYm91bmNlIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cInNpYS1zZW5pb3ItYm91bmNlXCIgKm5nSWY9XCJ2YXJpYW50ID09PSAnc2VuaW9yLWJvdW5jZSdcIiBbc3R5bGUuLS1zaXplXT1cInNpemUgKyAncHgnXCI+XG4gICAgICAgIDxzdmcgW2F0dHIud2lkdGhdPVwic2l6ZVwiIFthdHRyLmhlaWdodF09XCJzaXplXCIgdmlld0JveD1cIjAgMCAzNDggNjEzXCIgZmlsbD1cIm5vbmVcIj5cbiAgICAgICAgICA8cGF0aCBjbGFzcz1cImJvdW5jZS1yXCIgW2F0dHIuZF09XCJwYXRoUmlnaHRcIiBbYXR0ci5maWxsXT1cImNvbG9yQmFzZVwiIC8+XG4gICAgICAgICAgPHBhdGggY2xhc3M9XCJib3VuY2UtbFwiIFthdHRyLmRdPVwicGF0aExlZnRcIiBbYXR0ci5maWxsXT1cImNvbG9yTGlnaHRcIiAvPlxuICAgICAgICA8L3N2Zz5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8IS0tIHNlbmlvci1yZXZlYWw6IHRlbm5pcyBiYWxsIGJvdW5jaW5nIHdpdGggU2VuaW9yIGxvZ28gaW5zaWRlIC0tPlxuICAgICAgPGRpdiBjbGFzcz1cInNpYS1zZW5pb3ItcmV2ZWFsXCIgKm5nSWY9XCJ2YXJpYW50ID09PSAnc2VuaW9yLXJldmVhbCdcIiBbc3R5bGUuLS1zaXplXT1cInNpemUgKiAxLjMgKyAncHgnXCI+XG4gICAgICAgIDwhLS0gVGVubmlzIGJhbGwgd2l0aCBTZW5pb3IgbG9nbyBpbnNpZGUgLS0+XG4gICAgICAgIDxzdmcgY2xhc3M9XCJzci1iYWxsXCIgdmlld0JveD1cIjAgMCAxMDAgMTAwXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgICAgIDxkZWZzPlxuICAgICAgICAgICAgPGNsaXBQYXRoIGlkPVwic3ItY2xpcFwiPjxjaXJjbGUgY3g9XCI1MFwiIGN5PVwiNTBcIiByPVwiNDhcIiAvPjwvY2xpcFBhdGg+XG4gICAgICAgICAgPC9kZWZzPlxuICAgICAgICAgIDxjaXJjbGUgY3g9XCI1MFwiIGN5PVwiNTBcIiByPVwiNDhcIiBbYXR0ci5maWxsXT1cImNvbG9yQmFzZVwiIC8+XG4gICAgICAgICAgPGcgY2xpcC1wYXRoPVwidXJsKCNzci1jbGlwKVwiPlxuICAgICAgICAgICAgPCEtLSB0b3AtcmlnaHQgc2VhbSBjdXJ2ZSAtLT5cbiAgICAgICAgICAgIDxwYXRoIGQ9XCJNMzggLTIgQzU4IDE4LCA2MiAzOCwgMTAyIDQ4XCIgc3Ryb2tlPVwid2hpdGVcIiBzdHJva2Utd2lkdGg9XCI5XCIgZmlsbD1cIm5vbmVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgb3BhY2l0eT1cIjAuMTVcIiAvPlxuICAgICAgICAgICAgPHBhdGggZD1cIk0zOCAtMiBDNTggMTgsIDYyIDM4LCAxMDIgNDhcIiBzdHJva2U9XCJ3aGl0ZVwiIHN0cm9rZS13aWR0aD1cIjRcIiBmaWxsPVwibm9uZVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBvcGFjaXR5PVwiMC44XCIgLz5cbiAgICAgICAgICAgIDwhLS0gYm90dG9tLWxlZnQgc2VhbSBjdXJ2ZSAtLT5cbiAgICAgICAgICAgIDxwYXRoIGQ9XCJNLTIgNTIgQzM4IDYyLCA0MiA4MiwgNjIgMTAyXCIgc3Ryb2tlPVwid2hpdGVcIiBzdHJva2Utd2lkdGg9XCI5XCIgZmlsbD1cIm5vbmVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgb3BhY2l0eT1cIjAuMTVcIiAvPlxuICAgICAgICAgICAgPHBhdGggZD1cIk0tMiA1MiBDMzggNjIsIDQyIDgyLCA2MiAxMDJcIiBzdHJva2U9XCJ3aGl0ZVwiIHN0cm9rZS13aWR0aD1cIjRcIiBmaWxsPVwibm9uZVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBvcGFjaXR5PVwiMC44XCIgLz5cbiAgICAgICAgICAgIDxnIHRyYW5zZm9ybT1cInRyYW5zbGF0ZSgzMi42LCAxOS40KSBzY2FsZSgwLjEwKVwiPlxuICAgICAgICAgICAgICA8cGF0aCBbYXR0ci5kXT1cInBhdGhGdWxsXCIgZmlsbD1cIndoaXRlXCIgb3BhY2l0eT1cIjAuOFwiIC8+XG4gICAgICAgICAgICA8L2c+XG4gICAgICAgICAgPC9nPlxuICAgICAgICA8L3N2Zz5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNyLXNoYWRvd1wiPjwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDwhLS0g4pWQ4pWQ4pWQIElBU1NJU1QgVkFSSUFOVFMg4pWQ4pWQ4pWQIC0tPlxuXG4gICAgICA8IS0tIGlhc3Npc3Q6IHNpbXBsZSBicmVhdGhpbmcgc2NhbGUgLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwic2lhLWlhc3Npc3RcIiAqbmdJZj1cInZhcmlhbnQgPT09ICdpYXNzaXN0J1wiIFtzdHlsZS4tLXNpemVdPVwic2l6ZSArICdweCdcIj5cbiAgICAgICAgPHNpYS1pYXNzaXN0LWljb24gW3NpemVdPVwic2l6ZVwiPjwvc2lhLWlhc3Npc3QtaWNvbj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8IS0tIGlhc3Npc3QtcHVsc2U6IHB1bHNlIHJpbmdzICsgaWNvbiAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJzaWEtaWFzc2lzdC1wdWxzZVwiICpuZ0lmPVwidmFyaWFudCA9PT0gJ2lhc3Npc3QtcHVsc2UnXCIgW3N0eWxlLi0tc2l6ZV09XCJzaXplICsgJ3B4J1wiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImlwLXJpbmcgaXAtcmluZy0xXCI+PC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImlwLXJpbmcgaXAtcmluZy0yXCI+PC9zcGFuPlxuICAgICAgICA8c2lhLWlhc3Npc3QtaWNvbiBbc2l6ZV09XCJzaXplICogMC42XCIgY2xhc3M9XCJpcC1pY29uXCI+PC9zaWEtaWFzc2lzdC1pY29uPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDwhLS0gaWFzc2lzdC1vcmJpdDogaWNvbiB3aXRoIG9yYml0aW5nIGRvdHMgLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwic2lhLWlhc3Npc3Qtb3JiaXRcIiAqbmdJZj1cInZhcmlhbnQgPT09ICdpYXNzaXN0LW9yYml0J1wiIFtzdHlsZS4tLXNpemVdPVwic2l6ZSArICdweCdcIj5cbiAgICAgICAgPHNpYS1pYXNzaXN0LWljb24gW3NpemVdPVwic2l6ZSAqIDAuNVwiIGNsYXNzPVwiaW8taWNvblwiPjwvc2lhLWlhc3Npc3QtaWNvbj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJpby1kb3QgaW8tZG90LTFcIj48L3NwYW4+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiaW8tZG90IGlvLWRvdC0yXCI+PC9zcGFuPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxzcGFuIGNsYXNzPVwic2lhLWxvYWRpbmctdGV4dFwiICpuZ0lmPVwidGV4dCAmJiB2YXJpYW50ICE9PSAnc2tlbGV0b24nXCI+e3sgdGV4dCB9fTwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgYCxcbiAgc3R5bGVzOiBbYFxuICAgIDpob3N0IHsgZGlzcGxheTogYmxvY2s7IH1cbiAgICAuc2lhLWxvYWRpbmcge1xuICAgICAgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDAuNzVyZW07IHBhZGRpbmc6IDNyZW0gMDtcbiAgICB9XG4gICAgLnNpYS1sb2FkaW5nLS1za2VsZXRvbiB7IGFsaWduLWl0ZW1zOiBzdHJldGNoOyB9XG4gICAgLnNpYS1sb2FkaW5nLXRleHQgeyBjb2xvcjogdmFyKC0tcC10ZXh0LW11dGVkLWNvbG9yLCAjOTRhM2I4KTsgZm9udC1zaXplOiAwLjhyZW07IGxldHRlci1zcGFjaW5nOiAwLjAyZW07IH1cblxuICAgIC8qIOKUgOKUgCBEb3RzIOKUgOKUgCAqL1xuICAgIC5zaWEtZG90cyB7IGRpc3BsYXk6IGZsZXg7IGdhcDogNnB4OyBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gICAgLnNpYS1kb3RzIC5kb3Qge1xuICAgICAgd2lkdGg6IDEwcHg7IGhlaWdodDogMTBweDsgYm9yZGVyLXJhZGl1czogNTAlOyBiYWNrZ3JvdW5kOiB2YXIoLS1zaWEtYyk7XG4gICAgICBhbmltYXRpb246IHNpYS1kb3QtYm91bmNlIDEuMnMgY2FsYyh2YXIoLS1pKSAqIDAuMTVzKSBlYXNlLWluLW91dCBpbmZpbml0ZTtcbiAgICB9XG4gICAgQGtleWZyYW1lcyBzaWEtZG90LWJvdW5jZSB7XG4gICAgICAwJSwgNjAlLCAxMDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApIHNjYWxlKDEpOyBvcGFjaXR5OiAwLjQ7IH1cbiAgICAgIDMwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTJweCkgc2NhbGUoMS4xNSk7IG9wYWNpdHk6IDE7IH1cbiAgICB9XG5cbiAgICAvKiDilIDilIAgUHVsc2Ug4pSA4pSAICovXG4gICAgLnNpYS1wdWxzZSB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgd2lkdGg6IHZhcigtLXNpemUsIDQwcHgpOyBoZWlnaHQ6IHZhcigtLXNpemUsIDQwcHgpOyB9XG4gICAgLnNpYS1wdWxzZSAucmluZyB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7IGluc2V0OiAwOyBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1zaWEtYyk7IG9wYWNpdHk6IDA7XG4gICAgfVxuICAgIC5zaWEtcHVsc2UgLnJpbmctMSB7IGFuaW1hdGlvbjogc2lhLXJpcHBsZSAxLjhzIDBzIGVhc2Utb3V0IGluZmluaXRlOyB9XG4gICAgLnNpYS1wdWxzZSAucmluZy0yIHsgYW5pbWF0aW9uOiBzaWEtcmlwcGxlIDEuOHMgMC42cyBlYXNlLW91dCBpbmZpbml0ZTsgfVxuICAgIC5zaWEtcHVsc2UgLmNvcmUge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDUwJTsgbGVmdDogNTAlOyB3aWR0aDogMTBweDsgaGVpZ2h0OiAxMHB4O1xuICAgICAgbWFyZ2luOiAtNXB4IDAgMCAtNXB4OyBib3JkZXItcmFkaXVzOiA1MCU7IGJhY2tncm91bmQ6IHZhcigtLXNpYS1jKTtcbiAgICAgIGFuaW1hdGlvbjogc2lhLWNvcmUtcHVsc2UgMS44cyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbiAgICB9XG4gICAgQGtleWZyYW1lcyBzaWEtcmlwcGxlIHsgMCUgeyB0cmFuc2Zvcm06IHNjYWxlKDAuMyk7IG9wYWNpdHk6IDAuODsgfSAxMDAlIHsgdHJhbnNmb3JtOiBzY2FsZSgxKTsgb3BhY2l0eTogMDsgfSB9XG4gICAgQGtleWZyYW1lcyBzaWEtY29yZS1wdWxzZSB7IDAlLCAxMDAlIHsgdHJhbnNmb3JtOiBzY2FsZSgxKTsgb3BhY2l0eTogMC42OyB9IDUwJSB7IHRyYW5zZm9ybTogc2NhbGUoMS4zKTsgb3BhY2l0eTogMTsgfSB9XG5cbiAgICAvKiDilIDilIAgQmFycyDilIDilIAgKi9cbiAgICAuc2lhLWJhcnMgeyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBnYXA6IDNweDsgaGVpZ2h0OiB2YXIoLS1oLCA0MHB4KTsgfVxuICAgIC5zaWEtYmFycyAuYmFyIHtcbiAgICAgIHdpZHRoOiA0cHg7IGhlaWdodDogNDAlOyBib3JkZXItcmFkaXVzOiAycHg7IGJhY2tncm91bmQ6IHZhcigtLXNpYS1jKTtcbiAgICAgIGFuaW1hdGlvbjogc2lhLWJhci13YXZlIDFzIGNhbGModmFyKC0taSkgKiAwLjFzKSBlYXNlLWluLW91dCBpbmZpbml0ZTtcbiAgICB9XG4gICAgQGtleWZyYW1lcyBzaWEtYmFyLXdhdmUgeyAwJSwgMTAwJSB7IGhlaWdodDogMjAlOyBvcGFjaXR5OiAwLjQ7IH0gNTAlIHsgaGVpZ2h0OiAxMDAlOyBvcGFjaXR5OiAxOyB9IH1cblxuICAgIC8qIOKUgOKUgCBPcmJpdCDilIDilIAgKi9cbiAgICAuc2lhLW9yYml0IHsgcG9zaXRpb246IHJlbGF0aXZlOyB3aWR0aDogdmFyKC0tc2l6ZSwgNDBweCk7IGhlaWdodDogdmFyKC0tc2l6ZSwgNDBweCk7IH1cbiAgICAuc2lhLW9yYml0IC5vcmJpdC10cmFjayB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgaW5zZXQ6IDA7IGJvcmRlci1yYWRpdXM6IDUwJTsgYm9yZGVyOiAxLjVweCBzb2xpZCB2YXIoLS1wLXN1cmZhY2UtMjAwLCAjZTJlOGYwKTsgfVxuICAgIC5zaWEtb3JiaXQgLm9yYml0LWRvdCB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgd2lkdGg6IDhweDsgaGVpZ2h0OiA4cHg7IGJvcmRlci1yYWRpdXM6IDUwJTsgdG9wOiAtNHB4OyBsZWZ0OiBjYWxjKDUwJSAtIDRweCk7IH1cbiAgICAuc2lhLW9yYml0IC5vcmJpdC1kb3QtMSB7XG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zaWEtYyk7IGFuaW1hdGlvbjogc2lhLW9yYml0LXNwaW4gMS40cyBsaW5lYXIgaW5maW5pdGU7XG4gICAgICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgY2FsYyh2YXIoLS1zaXplLCA0MHB4KSAvIDIgKyA0cHgpO1xuICAgIH1cbiAgICAuc2lhLW9yYml0IC5vcmJpdC1kb3QtMiB7XG4gICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zaWEtY2wpOyBhbmltYXRpb246IHNpYS1vcmJpdC1zcGluIDEuNHMgMC43cyBsaW5lYXIgaW5maW5pdGU7XG4gICAgICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgY2FsYyh2YXIoLS1zaXplLCA0MHB4KSAvIDIgKyA0cHgpO1xuICAgIH1cbiAgICBAa2V5ZnJhbWVzIHNpYS1vcmJpdC1zcGluIHsgdG8geyB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9IH1cblxuICAgIC8qIOKUgOKUgCBNb3JwaCDilIDilIAgKi9cbiAgICAuc2lhLW1vcnBoIHsgd2lkdGg6IHZhcigtLXNpemUsIDQwcHgpOyBoZWlnaHQ6IHZhcigtLXNpemUsIDQwcHgpOyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuICAgIC5zaWEtbW9ycGggLm1vcnBoLXNoYXBlIHtcbiAgICAgIHdpZHRoOiA3MCU7IGhlaWdodDogNzAlOyBiYWNrZ3JvdW5kOiB2YXIoLS1zaWEtYyk7XG4gICAgICBhbmltYXRpb246IHNpYS1tb3JwaCAyLjRzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xuICAgIH1cbiAgICBAa2V5ZnJhbWVzIHNpYS1tb3JwaCB7XG4gICAgICAwJSAgIHsgYm9yZGVyLXJhZGl1czogNTAlIDUwJSA1MCUgNTAlOyB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKSBzY2FsZSgxKTsgfVxuICAgICAgMjUlICB7IGJvcmRlci1yYWRpdXM6IDMwJSA3MCUgNTAlIDUwJTsgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpIHNjYWxlKDAuODUpOyB9XG4gICAgICA1MCUgIHsgYm9yZGVyLXJhZGl1czogNTAlIDMwJSA3MCUgMzAlOyB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpIHNjYWxlKDEpOyB9XG4gICAgICA3NSUgIHsgYm9yZGVyLXJhZGl1czogNzAlIDUwJSAzMCUgNzAlOyB0cmFuc2Zvcm06IHJvdGF0ZSgyNzBkZWcpIHNjYWxlKDAuODUpOyB9XG4gICAgICAxMDAlIHsgYm9yZGVyLXJhZGl1czogNTAlIDUwJSA1MCUgNTAlOyB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpIHNjYWxlKDEpOyB9XG4gICAgfVxuXG4gICAgLyog4pSA4pSAIFdhdmUg4pSA4pSAICovXG4gICAgLnNpYS13YXZlIHsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiAzcHg7IH1cbiAgICAuc2lhLXdhdmUgLndhdmUtZG90IHtcbiAgICAgIHdpZHRoOiA2cHg7IGhlaWdodDogNnB4OyBib3JkZXItcmFkaXVzOiA1MCU7IGJhY2tncm91bmQ6IHZhcigtLXNpYS1jKTtcbiAgICAgIGFuaW1hdGlvbjogc2lhLXdhdmUtZmxvdyAxLjZzIGNhbGModmFyKC0taSkgKiAwLjEycykgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG4gICAgfVxuICAgIEBrZXlmcmFtZXMgc2lhLXdhdmUtZmxvdyB7XG4gICAgICAwJSwgMTAwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKSBzY2FsZSgwLjYpOyBvcGFjaXR5OiAwLjM7IH1cbiAgICAgIDUwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTBweCkgc2NhbGUoMSk7IG9wYWNpdHk6IDE7IH1cbiAgICB9XG5cbiAgICAvKiDilIDilIAgU2tlbGV0b24g4pSA4pSAICovXG4gICAgLnNpYS1za2VsZXRvbiB7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogMC43NXJlbTsgcGFkZGluZzogMCAxcmVtOyB3aWR0aDogMTAwJTsgfVxuICAgIC5za2VsLXJvdyB7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGdhcDogMC43NXJlbTsgfVxuICAgIC5za2VsLXJvdy0taGVhZGVyIHsgbWFyZ2luLWJvdHRvbTogMC4yNXJlbTsgfVxuICAgIC5za2VsLWNpcmNsZSB7XG4gICAgICB3aWR0aDogMzZweDsgaGVpZ2h0OiAzNnB4OyBib3JkZXItcmFkaXVzOiA1MCU7IGZsZXgtc2hyaW5rOiAwO1xuICAgICAgYmFja2dyb3VuZDogdmFyKC0tcC1zdXJmYWNlLTIwMCwgI2UyZThmMCk7IGFuaW1hdGlvbjogc2lhLXNoaW1tZXIgMS42cyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbiAgICB9XG4gICAgLnNrZWwtbGluZXMgeyBmbGV4OiAxOyBkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBnYXA6IDAuNHJlbTsgfVxuICAgIC5za2VsLWxpbmUge1xuICAgICAgaGVpZ2h0OiAxMHB4OyBib3JkZXItcmFkaXVzOiA0cHg7IGJhY2tncm91bmQ6IHZhcigtLXAtc3VyZmFjZS0yMDAsICNlMmU4ZjApO1xuICAgICAgYW5pbWF0aW9uOiBzaWEtc2hpbW1lciAxLjZzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xuICAgIH1cbiAgICAuc2tlbC1saW5lLS1mdWxsIHsgd2lkdGg6IDEwMCU7IGFuaW1hdGlvbi1kZWxheTogMC4xczsgfVxuICAgIC5za2VsLWxpbmUtLWxnICAgeyB3aWR0aDogNzUlOyBhbmltYXRpb24tZGVsYXk6IDAuMnM7IH1cbiAgICAuc2tlbC1saW5lLS1tZCAgIHsgd2lkdGg6IDU1JTsgYW5pbWF0aW9uLWRlbGF5OiAwLjNzOyB9XG4gICAgLnNrZWwtbGluZS0tc20gICB7IHdpZHRoOiAzNSU7IGFuaW1hdGlvbi1kZWxheTogMC4xNXM7IH1cbiAgICBAa2V5ZnJhbWVzIHNpYS1zaGltbWVyIHsgMCUsIDEwMCUgeyBvcGFjaXR5OiAwLjQ7IH0gNTAlIHsgb3BhY2l0eTogMTsgfSB9XG5cbiAgICAvKiDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZBcbiAgICAgICBTRU5JT1IgVkFSSUFOVFNcbiAgICAgICDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZDilZAgKi9cblxuICAgIC8qIOKUgOKUgCBzZW5pb3ItZHJhdzogc3Ryb2tlIGRyYXcgYW5pbWF0aW9uIOKUgOKUgCAqL1xuICAgIC5zaWEtc2VuaW9yLWRyYXcgeyB3aWR0aDogdmFyKC0tc2l6ZSwgNDBweCk7IGhlaWdodDogdmFyKC0tc2l6ZSwgNDBweCk7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG4gICAgLnNpYS1zZW5pb3ItZHJhdyAuc3AgeyBzdHJva2UtZGFzaGFycmF5OiAxMjAwOyBzdHJva2UtZGFzaG9mZnNldDogMTIwMDsgfVxuICAgIC5zaWEtc2VuaW9yLWRyYXcgLnNwLXIgeyBhbmltYXRpb246IHNpYS1zZC1yIDJzIGVhc2UtaW4tb3V0IGluZmluaXRlOyB9XG4gICAgLnNpYS1zZW5pb3ItZHJhdyAuc3AtbCB7IGFuaW1hdGlvbjogc2lhLXNkLWwgMnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7IH1cbiAgICBAa2V5ZnJhbWVzIHNpYS1zZC1yIHtcbiAgICAgIDAlICAgeyBzdHJva2UtZGFzaG9mZnNldDogMTIwMDsgb3BhY2l0eTogMC4yOyB9XG4gICAgICAzNSUgIHsgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7IG9wYWNpdHk6IDE7IH1cbiAgICAgIDYwJSAgeyBzdHJva2UtZGFzaG9mZnNldDogMDsgb3BhY2l0eTogMTsgfVxuICAgICAgMTAwJSB7IHN0cm9rZS1kYXNob2Zmc2V0OiAtMTIwMDsgb3BhY2l0eTogMC4yOyB9XG4gICAgfVxuICAgIEBrZXlmcmFtZXMgc2lhLXNkLWwge1xuICAgICAgMCUgICB7IHN0cm9rZS1kYXNob2Zmc2V0OiAxMjAwOyBvcGFjaXR5OiAwLjI7IH1cbiAgICAgIDE1JSAgeyBzdHJva2UtZGFzaG9mZnNldDogMTIwMDsgb3BhY2l0eTogMC4yOyB9XG4gICAgICA1MCUgIHsgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7IG9wYWNpdHk6IDE7IH1cbiAgICAgIDY1JSAgeyBzdHJva2UtZGFzaG9mZnNldDogMDsgb3BhY2l0eTogMTsgfVxuICAgICAgMTAwJSB7IHN0cm9rZS1kYXNob2Zmc2V0OiAtMTIwMDsgb3BhY2l0eTogMC4yOyB9XG4gICAgfVxuXG4gICAgLyog4pSA4pSAIHNlbmlvci1wdWxzZTogY2lyY2xlIHdpdGggbG9nbywgcHVsc2UgKyBzY2FsZSDilIDilIAgKi9cbiAgICAuc2lhLXNlbmlvci1wdWxzZSB7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG4gICAgLnNpYS1zZW5pb3ItcHVsc2UgLnNwLWNpcmNsZSB7XG4gICAgICB3aWR0aDogdmFyKC0tc2l6ZSwgNjRweCk7IGhlaWdodDogdmFyKC0tc2l6ZSwgNjRweCk7IGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNpYS1jKTsgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBhbmltYXRpb246IHNpYS1zcC1wdWxzZSAxLjRzIGVhc2Utb3V0IGluZmluaXRlLCBzaWEtc3Atc2NhbGUgMS40cyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbiAgICB9XG4gICAgQGtleWZyYW1lcyBzaWEtc3AtcHVsc2Uge1xuICAgICAgMCUgIHsgYm94LXNoYWRvdzogMCAwIDAgMCB2YXIoLS1zaWEtY2wpOyB9XG4gICAgICA3MCUgeyBib3gtc2hhZG93OiAwIDAgMCAyMHB4IHRyYW5zcGFyZW50OyB9XG4gICAgICAxMDAleyBib3gtc2hhZG93OiAwIDAgMCAwIHRyYW5zcGFyZW50OyB9XG4gICAgfVxuICAgIEBrZXlmcmFtZXMgc2lhLXNwLXNjYWxlIHsgMCUsIDEwMCUgeyB0cmFuc2Zvcm06IHNjYWxlKDEpOyB9IDUwJSB7IHRyYW5zZm9ybTogc2NhbGUoMS4xMik7IH0gfVxuXG4gICAgLyog4pSA4pSAIHNlbmlvci1nbG93OiBuZW9uIGdsb3cgYnJlYXRoaW5nIOKUgOKUgCAqL1xuICAgIC5zaWEtc2VuaW9yLWdsb3cgeyB3aWR0aDogdmFyKC0tc2l6ZSwgNDBweCk7IGhlaWdodDogdmFyKC0tc2l6ZSwgNDBweCk7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG4gICAgLnNpYS1zZW5pb3ItZ2xvdyAuZ2xvdy1zaGFkb3cge1xuICAgICAgb3BhY2l0eTogMC4zOyBmaWx0ZXI6IGJsdXIoNHB4KTtcbiAgICAgIGFuaW1hdGlvbjogc2lhLXNnLWJyZWF0aGUgMnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG4gICAgfVxuICAgIC5zaWEtc2VuaW9yLWdsb3cgLmdsb3ctbWFpbiB7XG4gICAgICBhbmltYXRpb246IHNpYS1zZy1icmVhdGhlIDJzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xuICAgIH1cbiAgICBAa2V5ZnJhbWVzIHNpYS1zZy1icmVhdGhlIHtcbiAgICAgIDAlLCAxMDAlIHsgb3BhY2l0eTogMC40OyBmaWx0ZXI6IGRyb3Atc2hhZG93KDAgMCAycHggdmFyKC0tc2lhLWNsKSk7IH1cbiAgICAgIDUwJSAgICAgIHsgb3BhY2l0eTogMTsgICBmaWx0ZXI6IGRyb3Atc2hhZG93KDAgMCAxMHB4IHZhcigtLXNpYS1jbCkpIGRyb3Atc2hhZG93KDAgMCAyMHB4IHZhcigtLXNpYS1jKSk7IH1cbiAgICB9XG5cbiAgICAvKiDilIDilIAgc2VuaW9yLWZsaXA6IDNEIFktYXhpcyBmbGlwIOKUgOKUgCAqL1xuICAgIC5zaWEtc2VuaW9yLWZsaXAge1xuICAgICAgd2lkdGg6IHZhcigtLXNpemUsIDQwcHgpOyBoZWlnaHQ6IHZhcigtLXNpemUsIDQwcHgpO1xuICAgICAgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICBwZXJzcGVjdGl2ZTogMzAwcHg7XG4gICAgfVxuICAgIC5zaWEtc2VuaW9yLWZsaXAgc3ZnIHtcbiAgICAgIGFuaW1hdGlvbjogc2lhLXNmLWZsaXAgMnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG4gICAgICB0cmFuc2Zvcm0tc3R5bGU6IHByZXNlcnZlLTNkO1xuICAgIH1cbiAgICBAa2V5ZnJhbWVzIHNpYS1zZi1mbGlwIHtcbiAgICAgIDAlICAgeyB0cmFuc2Zvcm06IHJvdGF0ZVkoMGRlZyk7IH1cbiAgICAgIDUwJSAgeyB0cmFuc2Zvcm06IHJvdGF0ZVkoMTgwZGVnKTsgfVxuICAgICAgMTAwJSB7IHRyYW5zZm9ybTogcm90YXRlWSgzNjBkZWcpOyB9XG4gICAgfVxuXG4gICAgLyog4pSA4pSAIHNlbmlvci1ib3VuY2U6IGFsdGVybmF0aW5nIGhhbHZlcyBib3VuY2Ug4pSA4pSAICovXG4gICAgLnNpYS1zZW5pb3ItYm91bmNlIHsgd2lkdGg6IHZhcigtLXNpemUsIDQwcHgpOyBoZWlnaHQ6IHZhcigtLXNpemUsIDQwcHgpOyBkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuICAgIC5zaWEtc2VuaW9yLWJvdW5jZSAuYm91bmNlLXIge1xuICAgICAgYW5pbWF0aW9uOiBzaWEtc2ItciAxLjJzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xuICAgICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGNlbnRlcjtcbiAgICB9XG4gICAgLnNpYS1zZW5pb3ItYm91bmNlIC5ib3VuY2UtbCB7XG4gICAgICBhbmltYXRpb246IHNpYS1zYi1sIDEuMnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG4gICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgY2VudGVyO1xuICAgIH1cbiAgICBAa2V5ZnJhbWVzIHNpYS1zYi1yIHtcbiAgICAgIDAlLCAxMDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApIHNjYWxlKDEpOyBvcGFjaXR5OiAwLjc7IH1cbiAgICAgIDUwJSAgICAgIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC04cHgpIHNjYWxlKDEuMDUpOyBvcGFjaXR5OiAxOyB9XG4gICAgfVxuICAgIEBrZXlmcmFtZXMgc2lhLXNiLWwge1xuICAgICAgMCUsIDEwMCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLThweCkgc2NhbGUoMS4wNSk7IG9wYWNpdHk6IDE7IH1cbiAgICAgIDUwJSAgICAgIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApIHNjYWxlKDEpOyBvcGFjaXR5OiAwLjc7IH1cbiAgICB9XG5cbiAgICAvKiDilIDilIAgc2VuaW9yLXJldmVhbDogdGVubmlzIGJhbGwgYm91bmNlIOKUgOKUgCAqL1xuICAgIC5zaWEtc2VuaW9yLXJldmVhbCB7XG4gICAgICB3aWR0aDogdmFyKC0tc2l6ZSwgNjRweCk7IGhlaWdodDogY2FsYyh2YXIoLS1zaXplLCA2NHB4KSAqIDEuNCk7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IGRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIH1cbiAgICAuc2lhLXNlbmlvci1yZXZlYWwgLnNyLWJhbGwge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlOyB3aWR0aDogdmFyKC0tc2l6ZSwgNjRweCk7IGhlaWdodDogdmFyKC0tc2l6ZSwgNjRweCk7XG4gICAgICBib3JkZXItcmFkaXVzOiA1MCU7IG92ZXJmbG93OiBoaWRkZW47XG4gICAgICBhbmltYXRpb246IHNpYS1zci1ib3VuY2UgMS4ycyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbiAgICB9XG4gICAgLnNpYS1zZW5pb3ItcmV2ZWFsIC5zci1zaGFkb3cge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlOyBib3R0b206IDA7IHdpZHRoOiA2MCU7IGhlaWdodDogNnB4O1xuICAgICAgYm9yZGVyLXJhZGl1czogNTAlOyBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuMTIpO1xuICAgICAgYW5pbWF0aW9uOiBzaWEtc3Itc2hhZG93IDEuMnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG4gICAgfVxuXG4gICAgQGtleWZyYW1lcyBzaWEtc3ItYm91bmNlIHtcbiAgICAgIDAlLCAxMDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDIwJSkgc2NhbGVYKDEuMDYpIHNjYWxlWSgwLjk0KTsgfVxuICAgICAgNTAlICAgICAgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTI1JSkgc2NhbGVYKDAuOTYpIHNjYWxlWSgxLjA0KTsgfVxuICAgIH1cbiAgICBAa2V5ZnJhbWVzIHNpYS1zci1zaGFkb3cge1xuICAgICAgMCUsIDEwMCUgeyB0cmFuc2Zvcm06IHNjYWxlWCgxKTsgb3BhY2l0eTogMC4xMjsgfVxuICAgICAgNTAlICAgICAgeyB0cmFuc2Zvcm06IHNjYWxlWCgwLjYpOyBvcGFjaXR5OiAwLjA2OyB9XG4gICAgfVxuXG4gICAgLyog4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQ4pWQXG4gICAgICAgSUFTU0lTVCBWQVJJQU5UU1xuICAgICAgIOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkOKVkCAqL1xuXG4gICAgLyog4pSA4pSAIGlhc3Npc3Q6IGJyZWF0aGluZyBzY2FsZSDilIDilIAgKi9cbiAgICAuc2lhLWlhc3Npc3Qge1xuICAgICAgd2lkdGg6IHZhcigtLXNpemUsIDQwcHgpOyBoZWlnaHQ6IHZhcigtLXNpemUsIDQwcHgpO1xuICAgICAgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICBhbmltYXRpb246IHNpYS1pYS1icmVhdGhlIDJzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xuICAgIH1cbiAgICBAa2V5ZnJhbWVzIHNpYS1pYS1icmVhdGhlIHtcbiAgICAgIDAlLCAxMDAlIHsgdHJhbnNmb3JtOiBzY2FsZSgxKTsgb3BhY2l0eTogMC43OyB9XG4gICAgICA1MCUgICAgICB7IHRyYW5zZm9ybTogc2NhbGUoMS4xKTsgb3BhY2l0eTogMTsgfVxuICAgIH1cblxuICAgIC8qIOKUgOKUgCBpYXNzaXN0LXB1bHNlOiBwdWxzZSByaW5ncyArIGljb24g4pSA4pSAICovXG4gICAgLnNpYS1pYXNzaXN0LXB1bHNlIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgd2lkdGg6IHZhcigtLXNpemUsIDQwcHgpOyBoZWlnaHQ6IHZhcigtLXNpemUsIDQwcHgpO1xuICAgICAgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgfVxuICAgIC5zaWEtaWFzc2lzdC1wdWxzZSAuaXAtcmluZyB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7IGluc2V0OiAwOyBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1zaWEtYyk7IG9wYWNpdHk6IDA7XG4gICAgfVxuICAgIC5zaWEtaWFzc2lzdC1wdWxzZSAuaXAtcmluZy0xIHsgYW5pbWF0aW9uOiBzaWEtaXAtcmlwcGxlIDJzIDBzIGVhc2Utb3V0IGluZmluaXRlOyB9XG4gICAgLnNpYS1pYXNzaXN0LXB1bHNlIC5pcC1yaW5nLTIgeyBhbmltYXRpb246IHNpYS1pcC1yaXBwbGUgMnMgMC43cyBlYXNlLW91dCBpbmZpbml0ZTsgfVxuICAgIC5zaWEtaWFzc2lzdC1wdWxzZSAuaXAtaWNvbiB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgei1pbmRleDogMTsgfVxuICAgIEBrZXlmcmFtZXMgc2lhLWlwLXJpcHBsZSB7XG4gICAgICAwJSAgIHsgdHJhbnNmb3JtOiBzY2FsZSgwLjUpOyBvcGFjaXR5OiAwLjg7IH1cbiAgICAgIDEwMCUgeyB0cmFuc2Zvcm06IHNjYWxlKDEuMik7IG9wYWNpdHk6IDA7IH1cbiAgICB9XG5cbiAgICAvKiDilIDilIAgaWFzc2lzdC1vcmJpdDogaWNvbiB3aXRoIG9yYml0aW5nIGRvdHMg4pSA4pSAICovXG4gICAgLnNpYS1pYXNzaXN0LW9yYml0IHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgd2lkdGg6IHZhcigtLXNpemUsIDQwcHgpOyBoZWlnaHQ6IHZhcigtLXNpemUsIDQwcHgpO1xuICAgICAgZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgfVxuICAgIC5zaWEtaWFzc2lzdC1vcmJpdCAuaW8taWNvbiB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgei1pbmRleDogMTsgfVxuICAgIC5zaWEtaWFzc2lzdC1vcmJpdCAuaW8tZG90IHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgd2lkdGg6IDhweDsgaGVpZ2h0OiA4cHg7IGJvcmRlci1yYWRpdXM6IDUwJTsgdG9wOiAtNHB4OyBsZWZ0OiBjYWxjKDUwJSAtIDRweCk7XG4gICAgfVxuICAgIC5zaWEtaWFzc2lzdC1vcmJpdCAuaW8tZG90LTEge1xuICAgICAgYmFja2dyb3VuZDogdmFyKC0tc2lhLWMpO1xuICAgICAgYW5pbWF0aW9uOiBzaWEtaW8tc3BpbiAxLjZzIGxpbmVhciBpbmZpbml0ZTtcbiAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDUwJSBjYWxjKHZhcigtLXNpemUsIDQwcHgpIC8gMiArIDRweCk7XG4gICAgfVxuICAgIC5zaWEtaWFzc2lzdC1vcmJpdCAuaW8tZG90LTIge1xuICAgICAgYmFja2dyb3VuZDogdmFyKC0tc2lhLWNsKTtcbiAgICAgIGFuaW1hdGlvbjogc2lhLWlvLXNwaW4gMS42cyAwLjhzIGxpbmVhciBpbmZpbml0ZTtcbiAgICAgIHRyYW5zZm9ybS1vcmlnaW46IDUwJSBjYWxjKHZhcigtLXNpemUsIDQwcHgpIC8gMiArIDRweCk7XG4gICAgfVxuICAgIEBrZXlmcmFtZXMgc2lhLWlvLXNwaW4geyB0byB7IHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0gfVxuICBgXVxufSlcbmV4cG9ydCBjbGFzcyBMb2FkaW5nQ29tcG9uZW50IHtcbiAgQElucHV0KCkgdmFyaWFudDogTG9hZGluZ1ZhcmlhbnQgPSAnc2VuaW9yLXJldmVhbCc7XG4gIEBJbnB1dCgpIGNvbG9yOiBMb2FkaW5nQ29sb3IgPSAnc2VuaW9yJztcbiAgQElucHV0KCkgc2l6ZTogbnVtYmVyID0gNDA7XG4gIEBJbnB1dCgpIHRleHQ6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBwYWRkaW5nOiBzdHJpbmcgPSAnM3JlbSAwJztcblxuICBnZXQgY29sb3JCYXNlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIChDT0xPUl9NQVBbdGhpcy5jb2xvcl0gfHwgQ09MT1JfTUFQWydzZW5pb3InXSkuYmFzZTtcbiAgfVxuXG4gIGdldCBjb2xvckxpZ2h0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIChDT0xPUl9NQVBbdGhpcy5jb2xvcl0gfHwgQ09MT1JfTUFQWydzZW5pb3InXSkubGlnaHQ7XG4gIH1cblxuICBwYXRoUmlnaHQgPSBTRU5JT1JfUEFUSF9SSUdIVDtcbiAgcGF0aExlZnQgPSBTRU5JT1JfUEFUSF9MRUZUO1xuICBwYXRoRnVsbCA9IFNFTklPUl9QQVRIX0ZVTEw7XG59XG4iXX0=
|
|
@@ -57,5 +57,8 @@
|
|
|
57
57
|
"design.components_ai.max_length_error": "Maximum of {{length}} characters",
|
|
58
58
|
"design.components_ai.min_value_error": "Minimum value is {{value}}",
|
|
59
59
|
"design.components_ai.max_value_error": "Maximum value is {{value}}",
|
|
60
|
-
"design.components_ai.select_option": "Select an option"
|
|
60
|
+
"design.components_ai.select_option": "Select an option",
|
|
61
|
+
"design.components_ai.not_informed": "Not informed",
|
|
62
|
+
"design.components_ai.boolean_true": "Yes",
|
|
63
|
+
"design.components_ai.boolean_false": "No"
|
|
61
64
|
}
|
|
@@ -57,5 +57,8 @@
|
|
|
57
57
|
"design.components_ai.max_length_error": "Máximo de {{length}} caracteres",
|
|
58
58
|
"design.components_ai.min_value_error": "El valor mínimo es {{value}}",
|
|
59
59
|
"design.components_ai.max_value_error": "El valor máximo es {{value}}",
|
|
60
|
-
"design.components_ai.select_option": "Seleccione una opción"
|
|
60
|
+
"design.components_ai.select_option": "Seleccione una opción",
|
|
61
|
+
"design.components_ai.not_informed": "No informado",
|
|
62
|
+
"design.components_ai.boolean_true": "Sí",
|
|
63
|
+
"design.components_ai.boolean_false": "No"
|
|
61
64
|
}
|
|
@@ -57,5 +57,8 @@
|
|
|
57
57
|
"design.components_ai.max_length_error": "Máximo de {{length}} caracteres",
|
|
58
58
|
"design.components_ai.min_value_error": "Valor mínimo é {{value}}",
|
|
59
59
|
"design.components_ai.max_value_error": "Valor máximo é {{value}}",
|
|
60
|
-
"design.components_ai.select_option": "Selecione uma opção"
|
|
60
|
+
"design.components_ai.select_option": "Selecione uma opção",
|
|
61
|
+
"design.components_ai.not_informed": "Não informado",
|
|
62
|
+
"design.components_ai.boolean_true": "Sim",
|
|
63
|
+
"design.components_ai.boolean_false": "Não"
|
|
61
64
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LWxpc3QuY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy1haS9zcmMvbGliL21vZGVscy9lbnRpdHktbGlzdC5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEeW5hbWljRm9ybUZpZWxkQ29uZmlnLCBEeW5hbWljRm9ybUZpZWxkU2l6ZSwgRHluYW1pY0Zvcm1TZWN0aW9uIH0gZnJvbSAnLi4vY29tcG9uZW50cy9keW5hbWljLWZvcm0vbW9kZWxzL2R5bmFtaWMtZm9ybS5tb2RlbHMnO1xuXG4vKipcbiAqIENvbHVtbiBjb25maWd1cmF0aW9uIGZvciBlbnRpdHkgbGlzdCB0YWJsZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbHVtbkNvbmZpZyB7XG4gIGZpZWxkOiBzdHJpbmc7XG4gIGhlYWRlcjogc3RyaW5nO1xuICBzb3J0YWJsZT86IGJvb2xlYW47XG4gIHdpZHRoPzogc3RyaW5nO1xuICB0eXBlPzogJ3RleHQnIHwgJ251bWJlcicgfCAnc3RhdHVzJyB8ICdjdXN0b20nO1xuICBjdXN0b21UZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT47XG59XG5cbi8qKlxuICogTG9va3VwIGNvbHVtbiBjb25maWd1cmF0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTG9va3VwQ29sdW1uIHtcbiAgZmllbGQ6IHN0cmluZztcbiAgaGVhZGVyOiBzdHJpbmc7XG4gIHdpZHRoPzogc3RyaW5nO1xuICB0eXBlPzogJ3RleHQnIHwgJ251bWJlcic7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIER5bmFtaWNGb3JtRmllbGRDb25maWcgaW5zdGVhZFxuICovXG5leHBvcnQgdHlwZSBGaWx0ZXJDb25maWcgPSBEeW5hbWljRm9ybUZpZWxkQ29uZmlnO1xuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBEeW5hbWljRm9ybUZpZWxkU2l6ZSBpbnN0ZWFkXG4gKi9cbmV4cG9ydCB0eXBlIEZpbHRlckZpZWxkU2l6ZSA9IER5bmFtaWNGb3JtRmllbGRTaXplO1xuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBEeW5hbWljRm9ybVNlY3Rpb24gaW5zdGVhZFxuICovXG5leHBvcnQgdHlwZSBGaWx0ZXJTZWN0aW9uID0gRHluYW1pY0Zvcm1TZWN0aW9uO1xuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBEeW5hbWljRm9ybUZpZWxkQ29uZmlnIGluc3RlYWRcbiAqL1xuZXhwb3J0IHR5cGUgRm9ybUZpZWxkQ29uZmlnID0gRHluYW1pY0Zvcm1GaWVsZENvbmZpZztcblxuLyoqXG4gKiBFbnRpdHkgbGlzdCBjb25maWd1cmF0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRW50aXR5TGlzdENvbmZpZyB7XG4gIGVudGl0eU5hbWU6IHN0cmluZztcbiAgZW50aXR5SWNvbjogc3RyaW5nO1xuICBzdWJ0aXRsZTogc3RyaW5nO1xuICBjb2x1bW5zOiBDb2x1bW5Db25maWdbXTtcbiAgZmlsdGVyczogRHluYW1pY0Zvcm1GaWVsZENvbmZpZ1tdO1xuICBmaWx0ZXJGaWVsZHM/OiBEeW5hbWljRm9ybVNlY3Rpb25bXTtcbiAgZm9ybUZpZWxkczogRHluYW1pY0Zvcm1GaWVsZENvbmZpZ1tdO1xuICBleHBvcnRFbmFibGVkPzogYm9vbGVhbjtcbiAgYnVsa0RlbGV0ZUVuYWJsZWQ/OiBib29sZWFuO1xuICBhZGRCdXR0b25MYWJlbD86IHN0cmluZztcbn1cbiJdfQ==
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { Subject, BehaviorSubject, filter, share, takeUntil } from 'rxjs';
|
|
3
|
+
import { Client } from '@stomp/stompjs';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "./auth.service";
|
|
6
|
+
import * as i2 from "./cookie.service";
|
|
7
|
+
import * as i3 from "./senior-token.service";
|
|
8
|
+
export class WebSocketService {
|
|
9
|
+
authService;
|
|
10
|
+
cookieService;
|
|
11
|
+
seniorTokenService;
|
|
12
|
+
client = null;
|
|
13
|
+
destroy$ = new Subject();
|
|
14
|
+
messages$ = new Subject();
|
|
15
|
+
connectionState$ = new BehaviorSubject('disconnected');
|
|
16
|
+
stompSubscriptions = new Map();
|
|
17
|
+
pendingSubscriptions = [];
|
|
18
|
+
subscriptionCounter = 0;
|
|
19
|
+
reconnectAttempts = 0;
|
|
20
|
+
maxReconnectAttempts = 5;
|
|
21
|
+
constructor(authService, cookieService, seniorTokenService) {
|
|
22
|
+
this.authService = authService;
|
|
23
|
+
this.cookieService = cookieService;
|
|
24
|
+
this.seniorTokenService = seniorTokenService;
|
|
25
|
+
}
|
|
26
|
+
/** Estado atual da conexão */
|
|
27
|
+
get state$() {
|
|
28
|
+
return this.connectionState$.asObservable();
|
|
29
|
+
}
|
|
30
|
+
/** Conecta ao WebSocket usando a URL base do cookie */
|
|
31
|
+
connect() {
|
|
32
|
+
if (this.client?.connected)
|
|
33
|
+
return;
|
|
34
|
+
const wsUrl = this.buildWebSocketUrl();
|
|
35
|
+
if (!wsUrl) {
|
|
36
|
+
this.connectionState$.next('error');
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
this.connectionState$.next('connecting');
|
|
40
|
+
this.client = new Client({
|
|
41
|
+
brokerURL: wsUrl,
|
|
42
|
+
debug: () => { },
|
|
43
|
+
reconnectDelay: 0,
|
|
44
|
+
heartbeatIncoming: 10000,
|
|
45
|
+
heartbeatOutgoing: 10000,
|
|
46
|
+
connectHeaders: this.buildConnectHeaders(),
|
|
47
|
+
onConnect: () => this.onConnected(),
|
|
48
|
+
onStompError: () => this.connectionState$.next('error'),
|
|
49
|
+
onWebSocketClose: () => this.onDisconnected(),
|
|
50
|
+
onWebSocketError: () => this.connectionState$.next('error')
|
|
51
|
+
});
|
|
52
|
+
this.client.activate();
|
|
53
|
+
}
|
|
54
|
+
/** Desconecta do WebSocket */
|
|
55
|
+
disconnect() {
|
|
56
|
+
this.reconnectAttempts = 0;
|
|
57
|
+
for (const [, sub] of this.stompSubscriptions.entries()) {
|
|
58
|
+
try {
|
|
59
|
+
sub.unsubscribe();
|
|
60
|
+
}
|
|
61
|
+
catch { /* ignore */ }
|
|
62
|
+
}
|
|
63
|
+
this.stompSubscriptions.clear();
|
|
64
|
+
this.pendingSubscriptions = [];
|
|
65
|
+
if (this.client?.active)
|
|
66
|
+
this.client.deactivate();
|
|
67
|
+
this.client = null;
|
|
68
|
+
this.connectionState$.next('disconnected');
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Inscreve-se em um tópico baseado na configuração.
|
|
72
|
+
* Padrão do bind: /topic/{tenantDomain}/{token}/{domain}/{service}/{primitive}
|
|
73
|
+
*/
|
|
74
|
+
subscribe(config) {
|
|
75
|
+
const destination = this.buildDestination(config);
|
|
76
|
+
const subId = `sub-${this.subscriptionCounter++}`;
|
|
77
|
+
if (this.client?.connected) {
|
|
78
|
+
this.doSubscribe(destination, subId);
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
this.pendingSubscriptions.push({ destination, id: subId });
|
|
82
|
+
if (this.connectionState$.value === 'disconnected')
|
|
83
|
+
this.connect();
|
|
84
|
+
}
|
|
85
|
+
return this.messages$.pipe(filter(msg => msg.destination === destination), takeUntil(this.destroy$), share());
|
|
86
|
+
}
|
|
87
|
+
/** Remove a inscrição de um tópico */
|
|
88
|
+
unsubscribe(config) {
|
|
89
|
+
const destination = this.buildDestination(config);
|
|
90
|
+
const entry = [...this.stompSubscriptions.entries()].find(([key]) => key.startsWith(destination));
|
|
91
|
+
if (entry) {
|
|
92
|
+
const [key, sub] = entry;
|
|
93
|
+
try {
|
|
94
|
+
sub.unsubscribe();
|
|
95
|
+
}
|
|
96
|
+
catch { /* ignore */ }
|
|
97
|
+
this.stompSubscriptions.delete(key);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
ngOnDestroy() {
|
|
101
|
+
this.disconnect();
|
|
102
|
+
this.destroy$.next();
|
|
103
|
+
this.destroy$.complete();
|
|
104
|
+
}
|
|
105
|
+
// ── Privados ──────────────────────────────────────────────
|
|
106
|
+
buildConnectHeaders() {
|
|
107
|
+
const headers = {};
|
|
108
|
+
const token = this.authService.getAccessToken();
|
|
109
|
+
if (token)
|
|
110
|
+
headers['Authorization'] = `Bearer ${token}`;
|
|
111
|
+
return headers;
|
|
112
|
+
}
|
|
113
|
+
buildWebSocketUrl() {
|
|
114
|
+
const baseUrl = this.cookieService.getCookie('com.senior.base.url');
|
|
115
|
+
if (!baseUrl)
|
|
116
|
+
return null;
|
|
117
|
+
const cleanBaseUrl = baseUrl.replace(/\/$/, '');
|
|
118
|
+
const wsUrl = cleanBaseUrl.replace(/^http/, 'ws');
|
|
119
|
+
return `${wsUrl}/websocket/subscription/websocket`;
|
|
120
|
+
}
|
|
121
|
+
buildDestination(config) {
|
|
122
|
+
const parts = ['/topic'];
|
|
123
|
+
const tokenData = this.seniorTokenService.getSeniorTokenData();
|
|
124
|
+
const username = tokenData?.username || '';
|
|
125
|
+
const atIndex = username.indexOf('@');
|
|
126
|
+
if (atIndex >= 0)
|
|
127
|
+
parts.push(username.substring(atIndex + 1));
|
|
128
|
+
if (config.userScoped) {
|
|
129
|
+
const token = this.authService.getAccessToken();
|
|
130
|
+
if (token)
|
|
131
|
+
parts.push(token);
|
|
132
|
+
}
|
|
133
|
+
parts.push(config.domain, config.service, config.primitive);
|
|
134
|
+
return parts.join('/');
|
|
135
|
+
}
|
|
136
|
+
onConnected() {
|
|
137
|
+
this.reconnectAttempts = 0;
|
|
138
|
+
this.connectionState$.next('connected');
|
|
139
|
+
for (const [key] of this.stompSubscriptions.entries()) {
|
|
140
|
+
const destination = key.split('::')[0];
|
|
141
|
+
const id = key.split('::')[1];
|
|
142
|
+
this.doSubscribe(destination, id);
|
|
143
|
+
}
|
|
144
|
+
for (const pending of this.pendingSubscriptions) {
|
|
145
|
+
this.doSubscribe(pending.destination, pending.id);
|
|
146
|
+
}
|
|
147
|
+
this.pendingSubscriptions = [];
|
|
148
|
+
}
|
|
149
|
+
onDisconnected() {
|
|
150
|
+
if (this.connectionState$.value === 'disconnected')
|
|
151
|
+
return;
|
|
152
|
+
this.connectionState$.next('disconnected');
|
|
153
|
+
if (this.reconnectAttempts < this.maxReconnectAttempts) {
|
|
154
|
+
const delay = Math.min(1000 * Math.pow(2, this.reconnectAttempts), 30000);
|
|
155
|
+
this.reconnectAttempts++;
|
|
156
|
+
setTimeout(() => this.connect(), delay);
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
doSubscribe(destination, id) {
|
|
160
|
+
if (!this.client?.connected)
|
|
161
|
+
return;
|
|
162
|
+
const sub = this.client.subscribe(destination, (message) => {
|
|
163
|
+
let body = message.body;
|
|
164
|
+
try {
|
|
165
|
+
body = JSON.parse(message.body);
|
|
166
|
+
}
|
|
167
|
+
catch { /* string */ }
|
|
168
|
+
const headers = {};
|
|
169
|
+
for (const key of Object.keys(message.headers))
|
|
170
|
+
headers[key] = message.headers[key];
|
|
171
|
+
this.messages$.next({ destination, body, headers });
|
|
172
|
+
});
|
|
173
|
+
this.stompSubscriptions.set(`${destination}::${id}`, sub);
|
|
174
|
+
}
|
|
175
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: WebSocketService, deps: [{ token: i1.AuthService }, { token: i2.CookieService }, { token: i3.SeniorTokenService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
176
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: WebSocketService, providedIn: 'root' });
|
|
177
|
+
}
|
|
178
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: WebSocketService, decorators: [{
|
|
179
|
+
type: Injectable,
|
|
180
|
+
args: [{
|
|
181
|
+
providedIn: 'root'
|
|
182
|
+
}]
|
|
183
|
+
}], ctorParameters: () => [{ type: i1.AuthService }, { type: i2.CookieService }, { type: i3.SeniorTokenService }] });
|
|
184
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2Vic29ja2V0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzLWFpL3NyYy9saWIvc2VydmljZXMvd2Vic29ja2V0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUl0RCxPQUFPLEVBQWMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0RixPQUFPLEVBQUUsTUFBTSxFQUFZLE1BQU0sZ0JBQWdCLENBQUM7Ozs7O0FBMkJsRCxNQUFNLE9BQU8sZ0JBQWdCO0lBWWpCO0lBQ0E7SUFDQTtJQWJGLE1BQU0sR0FBa0IsSUFBSSxDQUFDO0lBQ3BCLFFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0lBQy9CLFNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBZ0IsQ0FBQztJQUN4QyxnQkFBZ0IsR0FBRyxJQUFJLGVBQWUsQ0FBa0IsY0FBYyxDQUFDLENBQUM7SUFDakYsa0JBQWtCLEdBQUcsSUFBSSxHQUFHLEVBQWUsQ0FBQztJQUM1QyxvQkFBb0IsR0FBK0MsRUFBRSxDQUFDO0lBQ3RFLG1CQUFtQixHQUFHLENBQUMsQ0FBQztJQUN4QixpQkFBaUIsR0FBRyxDQUFDLENBQUM7SUFDYixvQkFBb0IsR0FBRyxDQUFDLENBQUM7SUFFMUMsWUFDVSxXQUF3QixFQUN4QixhQUE0QixFQUM1QixrQkFBc0M7UUFGdEMsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtJQUM3QyxDQUFDO0lBRUosOEJBQThCO0lBQzlCLElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzlDLENBQUM7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NEZBRVAsZ0JBQWdCO2tCQUg1QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuL2F1dGguc2VydmljZSc7XG5pbXBvcnQgeyBDb29raWVTZXJ2aWNlIH0gZnJvbSAnLi9jb29raWUuc2VydmljZSc7XG5pbXBvcnQgeyBTZW5pb3JUb2tlblNlcnZpY2UgfSBmcm9tICcuL3Nlbmlvci10b2tlbi5zZXJ2aWNlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QsIEJlaGF2aW9yU3ViamVjdCwgZmlsdGVyLCBzaGFyZSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDbGllbnQsIElNZXNzYWdlIH0gZnJvbSAnQHN0b21wL3N0b21wanMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFdlYlNvY2tldENvbmZpZyB7XG4gIC8qKiBEb23DrW5pbyBkbyBzZXJ2acOnbyAoZXg6ICdjcm14JykgKi9cbiAgZG9tYWluOiBzdHJpbmc7XG4gIC8qKiBOb21lIGRvIHNlcnZpw6dvIChleDogJ3NjaGVkdWxlJykgKi9cbiAgc2VydmljZTogc3RyaW5nO1xuICAvKiogUHJpbWl0aXZhL2VudGlkYWRlIChleDogJ2FwcG9pbnRtZW50JykgKi9cbiAgcHJpbWl0aXZlOiBzdHJpbmc7XG4gIC8qKiBTZSB0cnVlLCBpbmNsdWkgbyB0b2tlbiBkbyB1c3XDoXJpbyBubyBiaW5kIHBhcmEgcmVjZWJlciBtZW5zYWdlbnMgZXNwZWPDrWZpY2FzIGRvIHVzdcOhcmlvICovXG4gIHVzZXJTY29wZWQ/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN0b21wTWVzc2FnZTxUID0gYW55PiB7XG4gIC8qKiBEZXN0aW5vL3TDs3BpY28gZGEgbWVuc2FnZW0gKi9cbiAgZGVzdGluYXRpb246IHN0cmluZztcbiAgLyoqIENvcnBvIGRhIG1lbnNhZ2VtIHBhcnNlYWRvICovXG4gIGJvZHk6IFQ7XG4gIC8qKiBIZWFkZXJzIGRhIG1lbnNhZ2VtIFNUT01QICovXG4gIGhlYWRlcnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG59XG5cbnR5cGUgQ29ubmVjdGlvblN0YXRlID0gJ2Rpc2Nvbm5lY3RlZCcgfCAnY29ubmVjdGluZycgfCAnY29ubmVjdGVkJyB8ICdlcnJvcic7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFdlYlNvY2tldFNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBwcml2YXRlIGNsaWVudDogQ2xpZW50IHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwcml2YXRlIHJlYWRvbmx5IG1lc3NhZ2VzJCA9IG5ldyBTdWJqZWN0PFN0b21wTWVzc2FnZT4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBjb25uZWN0aW9uU3RhdGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxDb25uZWN0aW9uU3RhdGU+KCdkaXNjb25uZWN0ZWQnKTtcbiAgcHJpdmF0ZSBzdG9tcFN1YnNjcmlwdGlvbnMgPSBuZXcgTWFwPHN0cmluZywgYW55PigpO1xuICBwcml2YXRlIHBlbmRpbmdTdWJzY3JpcHRpb25zOiBBcnJheTx7IGRlc3RpbmF0aW9uOiBzdHJpbmc7IGlkOiBzdHJpbmcgfT4gPSBbXTtcbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb25Db3VudGVyID0gMDtcbiAgcHJpdmF0ZSByZWNvbm5lY3RBdHRlbXB0cyA9IDA7XG4gIHByaXZhdGUgcmVhZG9ubHkgbWF4UmVjb25uZWN0QXR0ZW1wdHMgPSA1O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLFxuICAgIHByaXZhdGUgY29va2llU2VydmljZTogQ29va2llU2VydmljZSxcbiAgICBwcml2YXRlIHNlbmlvclRva2VuU2VydmljZTogU2VuaW9yVG9rZW5TZXJ2aWNlXG4gICkge31cblxuICAvKiogRXN0YWRvIGF0dWFsIGRhIGNvbmV4w6NvICovXG4gIGdldCBzdGF0ZSQoKTogT2JzZXJ2YWJsZTxDb25uZWN0aW9uU3RhdGU+IHtcbiAgICByZXR1cm4gdGhpcy5jb25uZWN0aW9uU3RhdGUkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgLyoqIENvbmVjdGEgYW8gV2ViU29ja2V0IHVzYW5kbyBhIFVSTCBiYXNlIGRvIGNvb2tpZSAqL1xuICBjb25uZWN0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmNsaWVudD8uY29ubmVjdGVkKSByZXR1cm47XG5cbiAgICBjb25zdCB3c1VybCA9IHRoaXMuYnVpbGRXZWJTb2NrZXRVcmwoKTtcbiAgICBpZiAoIXdzVXJsKSB7XG4gICAgICB0aGlzLmNvbm5lY3Rpb25TdGF0ZSQubmV4dCgnZXJyb3InKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmNvbm5lY3Rpb25TdGF0ZSQubmV4dCgnY29ubmVjdGluZycpO1xuXG4gICAgdGhpcy5jbGllbnQgPSBuZXcgQ2xpZW50KHtcbiAgICAgIGJyb2tlclVSTDogd3NVcmwsXG4gICAgICBkZWJ1ZzogKCkgPT4ge30sXG4gICAgICByZWNvbm5lY3REZWxheTogMCxcbiAgICAgIGhlYXJ0YmVhdEluY29taW5nOiAxMDAwMCxcbiAgICAgIGhlYXJ0YmVhdE91dGdvaW5nOiAxMDAwMCxcbiAgICAgIGNvbm5lY3RIZWFkZXJzOiB0aGlzLmJ1aWxkQ29ubmVjdEhlYWRlcnMoKSxcbiAgICAgIG9uQ29ubmVjdDogKCkgPT4gdGhpcy5vbkNvbm5lY3RlZCgpLFxuICAgICAgb25TdG9tcEVycm9yOiAoKSA9PiB0aGlzLmNvbm5lY3Rpb25TdGF0ZSQubmV4dCgnZXJyb3InKSxcbiAgICAgIG9uV2ViU29ja2V0Q2xvc2U6ICgpID0+IHRoaXMub25EaXNjb25uZWN0ZWQoKSxcbiAgICAgIG9uV2ViU29ja2V0RXJyb3I6ICgpID0+IHRoaXMuY29ubmVjdGlvblN0YXRlJC5uZXh0KCdlcnJvcicpXG4gICAgfSk7XG5cbiAgICB0aGlzLmNsaWVudC5hY3RpdmF0ZSgpO1xuICB9XG5cbiAgLyoqIERlc2NvbmVjdGEgZG8gV2ViU29ja2V0ICovXG4gIGRpc2Nvbm5lY3QoKTogdm9pZCB7XG4gICAgdGhpcy5yZWNvbm5lY3RBdHRlbXB0cyA9IDA7XG4gICAgZm9yIChjb25zdCBbLCBzdWJdIG9mIHRoaXMuc3RvbXBTdWJzY3JpcHRpb25zLmVudHJpZXMoKSkge1xuICAgICAgdHJ5IHsgc3ViLnVuc3Vic2NyaWJlKCk7IH0gY2F0Y2ggeyAvKiBpZ25vcmUgKi8gfVxuICAgIH1cbiAgICB0aGlzLnN0b21wU3Vic2NyaXB0aW9ucy5jbGVhcigpO1xuICAgIHRoaXMucGVuZGluZ1N1YnNjcmlwdGlvbnMgPSBbXTtcbiAgICBpZiAodGhpcy5jbGllbnQ/LmFjdGl2ZSkgdGhpcy5jbGllbnQuZGVhY3RpdmF0ZSgpO1xuICAgIHRoaXMuY2xpZW50ID0gbnVsbDtcbiAgICB0aGlzLmNvbm5lY3Rpb25TdGF0ZSQubmV4dCgnZGlzY29ubmVjdGVkJyk7XG4gIH1cblxuICAvKipcbiAgICogSW5zY3JldmUtc2UgZW0gdW0gdMOzcGljbyBiYXNlYWRvIG5hIGNvbmZpZ3VyYcOnw6NvLlxuICAgKiBQYWRyw6NvIGRvIGJpbmQ6IC90b3BpYy97dGVuYW50RG9tYWlufS97dG9rZW59L3tkb21haW59L3tzZXJ2aWNlfS97cHJpbWl0aXZlfVxuICAgKi9cbiAgc3Vic2NyaWJlPFQgPSBhbnk+KGNvbmZpZzogV2ViU29ja2V0Q29uZmlnKTogT2JzZXJ2YWJsZTxTdG9tcE1lc3NhZ2U8VD4+IHtcbiAgICBjb25zdCBkZXN0aW5hdGlvbiA9IHRoaXMuYnVpbGREZXN0aW5hdGlvbihjb25maWcpO1xuICAgIGNvbnN0IHN1YklkID0gYHN1Yi0ke3RoaXMuc3Vic2NyaXB0aW9uQ291bnRlcisrfWA7XG5cbiAgICBpZiAodGhpcy5jbGllbnQ/LmNvbm5lY3RlZCkge1xuICAgICAgdGhpcy5kb1N1YnNjcmliZShkZXN0aW5hdGlvbiwgc3ViSWQpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnBlbmRpbmdTdWJzY3JpcHRpb25zLnB1c2goeyBkZXN0aW5hdGlvbiwgaWQ6IHN1YklkIH0pO1xuICAgICAgaWYgKHRoaXMuY29ubmVjdGlvblN0YXRlJC52YWx1ZSA9PT0gJ2Rpc2Nvbm5lY3RlZCcpIHRoaXMuY29ubmVjdCgpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLm1lc3NhZ2VzJC5waXBlKFxuICAgICAgZmlsdGVyKG1zZyA9PiBtc2cuZGVzdGluYXRpb24gPT09IGRlc3RpbmF0aW9uKSxcbiAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcbiAgICAgIHNoYXJlKClcbiAgICApIGFzIE9ic2VydmFibGU8U3RvbXBNZXNzYWdlPFQ+PjtcbiAgfVxuXG4gIC8qKiBSZW1vdmUgYSBpbnNjcmnDp8OjbyBkZSB1bSB0w7NwaWNvICovXG4gIHVuc3Vic2NyaWJlKGNvbmZpZzogV2ViU29ja2V0Q29uZmlnKTogdm9pZCB7XG4gICAgY29uc3QgZGVzdGluYXRpb24gPSB0aGlzLmJ1aWxkRGVzdGluYXRpb24oY29uZmlnKTtcbiAgICBjb25zdCBlbnRyeSA9IFsuLi50aGlzLnN0b21wU3Vic2NyaXB0aW9ucy5lbnRyaWVzKCldLmZpbmQoKFtrZXldKSA9PiBrZXkuc3RhcnRzV2l0aChkZXN0aW5hdGlvbikpO1xuICAgIGlmIChlbnRyeSkge1xuICAgICAgY29uc3QgW2tleSwgc3ViXSA9IGVudHJ5O1xuICAgICAgdHJ5IHsgc3ViLnVuc3Vic2NyaWJlKCk7IH0gY2F0Y2ggeyAvKiBpZ25vcmUgKi8gfVxuICAgICAgdGhpcy5zdG9tcFN1YnNjcmlwdGlvbnMuZGVsZXRlKGtleSk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kaXNjb25uZWN0KCk7XG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgLy8g4pSA4pSAIFByaXZhZG9zIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG4gIHByaXZhdGUgYnVpbGRDb25uZWN0SGVhZGVycygpOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICBjb25zdCBoZWFkZXJzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG4gICAgY29uc3QgdG9rZW4gPSB0aGlzLmF1dGhTZXJ2aWNlLmdldEFjY2Vzc1Rva2VuKCk7XG4gICAgaWYgKHRva2VuKSBoZWFkZXJzWydBdXRob3JpemF0aW9uJ10gPSBgQmVhcmVyICR7dG9rZW59YDtcbiAgICByZXR1cm4gaGVhZGVycztcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRXZWJTb2NrZXRVcmwoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgY29uc3QgYmFzZVVybCA9IHRoaXMuY29va2llU2VydmljZS5nZXRDb29raWUoJ2NvbS5zZW5pb3IuYmFzZS51cmwnKTtcbiAgICBpZiAoIWJhc2VVcmwpIHJldHVybiBudWxsO1xuICAgIGNvbnN0IGNsZWFuQmFzZVVybCA9IGJhc2VVcmwucmVwbGFjZSgvXFwvJC8sICcnKTtcbiAgICBjb25zdCB3c1VybCA9IGNsZWFuQmFzZVVybC5yZXBsYWNlKC9eaHR0cC8sICd3cycpO1xuICAgIHJldHVybiBgJHt3c1VybH0vd2Vic29ja2V0L3N1YnNjcmlwdGlvbi93ZWJzb2NrZXRgO1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZERlc3RpbmF0aW9uKGNvbmZpZzogV2ViU29ja2V0Q29uZmlnKTogc3RyaW5nIHtcbiAgICBjb25zdCBwYXJ0cyA9IFsnL3RvcGljJ107XG5cbiAgICBjb25zdCB0b2tlbkRhdGEgPSB0aGlzLnNlbmlvclRva2VuU2VydmljZS5nZXRTZW5pb3JUb2tlbkRhdGEoKTtcbiAgICBjb25zdCB1c2VybmFtZSA9IHRva2VuRGF0YT8udXNlcm5hbWUgfHwgJyc7XG4gICAgY29uc3QgYXRJbmRleCA9IHVzZXJuYW1lLmluZGV4T2YoJ0AnKTtcbiAgICBpZiAoYXRJbmRleCA+PSAwKSBwYXJ0cy5wdXNoKHVzZXJuYW1lLnN1YnN0cmluZyhhdEluZGV4ICsgMSkpO1xuXG4gICAgaWYgKGNvbmZpZy51c2VyU2NvcGVkKSB7XG4gICAgICBjb25zdCB0b2tlbiA9IHRoaXMuYXV0aFNlcnZpY2UuZ2V0QWNjZXNzVG9rZW4oKTtcbiAgICAgIGlmICh0b2tlbikgcGFydHMucHVzaCh0b2tlbik7XG4gICAgfVxuXG4gICAgcGFydHMucHVzaChjb25maWcuZG9tYWluLCBjb25maWcuc2VydmljZSwgY29uZmlnLnByaW1pdGl2ZSk7XG4gICAgcmV0dXJuIHBhcnRzLmpvaW4oJy8nKTtcbiAgfVxuXG4gIHByaXZhdGUgb25Db25uZWN0ZWQoKTogdm9pZCB7XG4gICAgdGhpcy5yZWNvbm5lY3RBdHRlbXB0cyA9IDA7XG4gICAgdGhpcy5jb25uZWN0aW9uU3RhdGUkLm5leHQoJ2Nvbm5lY3RlZCcpO1xuXG4gICAgZm9yIChjb25zdCBba2V5XSBvZiB0aGlzLnN0b21wU3Vic2NyaXB0aW9ucy5lbnRyaWVzKCkpIHtcbiAgICAgIGNvbnN0IGRlc3RpbmF0aW9uID0ga2V5LnNwbGl0KCc6OicpWzBdO1xuICAgICAgY29uc3QgaWQgPSBrZXkuc3BsaXQoJzo6JylbMV07XG4gICAgICB0aGlzLmRvU3Vic2NyaWJlKGRlc3RpbmF0aW9uLCBpZCk7XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBwZW5kaW5nIG9mIHRoaXMucGVuZGluZ1N1YnNjcmlwdGlvbnMpIHtcbiAgICAgIHRoaXMuZG9TdWJzY3JpYmUocGVuZGluZy5kZXN0aW5hdGlvbiwgcGVuZGluZy5pZCk7XG4gICAgfVxuICAgIHRoaXMucGVuZGluZ1N1YnNjcmlwdGlvbnMgPSBbXTtcbiAgfVxuXG4gIHByaXZhdGUgb25EaXNjb25uZWN0ZWQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY29ubmVjdGlvblN0YXRlJC52YWx1ZSA9PT0gJ2Rpc2Nvbm5lY3RlZCcpIHJldHVybjtcbiAgICB0aGlzLmNvbm5lY3Rpb25TdGF0ZSQubmV4dCgnZGlzY29ubmVjdGVkJyk7XG4gICAgaWYgKHRoaXMucmVjb25uZWN0QXR0ZW1wdHMgPCB0aGlzLm1heFJlY29ubmVjdEF0dGVtcHRzKSB7XG4gICAgICBjb25zdCBkZWxheSA9IE1hdGgubWluKDEwMDAgKiBNYXRoLnBvdygyLCB0aGlzLnJlY29ubmVjdEF0dGVtcHRzKSwgMzAwMDApO1xuICAgICAgdGhpcy5yZWNvbm5lY3RBdHRlbXB0cysrO1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmNvbm5lY3QoKSwgZGVsYXkpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZG9TdWJzY3JpYmUoZGVzdGluYXRpb246IHN0cmluZywgaWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICghdGhpcy5jbGllbnQ/LmNvbm5lY3RlZCkgcmV0dXJuO1xuXG4gICAgY29uc3Qgc3ViID0gdGhpcy5jbGllbnQuc3Vic2NyaWJlKGRlc3RpbmF0aW9uLCAobWVzc2FnZTogSU1lc3NhZ2UpID0+IHtcbiAgICAgIGxldCBib2R5OiBhbnkgPSBtZXNzYWdlLmJvZHk7XG4gICAgICB0cnkgeyBib2R5ID0gSlNPTi5wYXJzZShtZXNzYWdlLmJvZHkpOyB9IGNhdGNoIHsgLyogc3RyaW5nICovIH1cblxuICAgICAgY29uc3QgaGVhZGVyczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9O1xuICAgICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMobWVzc2FnZS5oZWFkZXJzKSkgaGVhZGVyc1trZXldID0gbWVzc2FnZS5oZWFkZXJzW2tleV07XG5cbiAgICAgIHRoaXMubWVzc2FnZXMkLm5leHQoeyBkZXN0aW5hdGlvbiwgYm9keSwgaGVhZGVycyB9KTtcbiAgICB9KTtcblxuICAgIHRoaXMuc3RvbXBTdWJzY3JpcHRpb25zLnNldChgJHtkZXN0aW5hdGlvbn06OiR7aWR9YCwgc3ViKTtcbiAgfVxufVxuIl19
|