@projectcor/maia-components 2.11.31 → 2.11.32-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/lib/components/atoms/icons/MaiaChatLayoutMenuIcon.js +33 -0
- package/lib/components/atoms/icons/index.js +2 -1
- package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +178 -165
- package/lib/components/molecules/ChatAIModal/ChatAIModal.js +196 -61
- package/lib/components/molecules/ChatAIModal/ChatAIModal.styles.js +28 -15
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +91 -18
- package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.styles.js +17 -2
- package/lib/components/molecules/ChatAIModal/floatingPanelMotion/FloatingPanelMotion.js +16 -0
- package/lib/components/molecules/ChatAIModal/floatingPanelMotion/FloatingPanelMotion.styles.js +12 -0
- package/lib/components/molecules/ChatAIModal/floatingPanelMotion/constants.js +13 -0
- package/lib/components/molecules/ChatAIModal/floatingPanelMotion/index.js +3 -0
- package/lib/components/molecules/ChatAIModal/floatingPanelMotion/useFloatingPanelDragTilt.js +57 -0
- package/lib/components/molecules/ChatAIModal/layout.js +35 -0
- package/lib/hooks/useChatManager/useChatManager.js +78 -16
- package/lib/hooks/useOrchestratorStream/useOrchestratorStream.js +139 -70
- package/lib/hooks/useSmoothStreamText/index.js +2 -0
- package/lib/hooks/useSmoothStreamText/useSmoothStreamText.js +189 -0
- package/lib/hooks/useStreamingMessage/index.js +3 -0
- package/lib/hooks/useStreamingMessage/streamingStore.js +69 -0
- package/lib/hooks/useStreamingMessage/useStreamingMessage.js +22 -0
- package/lib/lang/br/index.js +5 -1
- package/lib/lang/en/index.js +5 -1
- package/lib/lang/es/index.js +5 -1
- package/lib/lang/fr/index.js +5 -1
- package/package.json +1 -1
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
2
|
+
import { useEffect, useRef, useState } from 'react';
|
|
3
|
+
/**
|
|
4
|
+
* Hook que desacopla la cadencia de llegada del texto (stream SSE) de la
|
|
5
|
+
* cadencia de renderizado. Usa `requestAnimationFrame` para liberar chars
|
|
6
|
+
* a ritmo constante hacia el DOM, eliminando los "frenos" que se producen
|
|
7
|
+
* cuando el backend emite ráfagas de tokens.
|
|
8
|
+
*
|
|
9
|
+
* Cuando `enabled` pasa a false (fin de stream), el texto se completa al
|
|
10
|
+
* instante. Durante el streaming, el buffer se vacía dinámicamente apuntando
|
|
11
|
+
* al lag configurado.
|
|
12
|
+
*/
|
|
13
|
+
export var useSmoothStreamText = function useSmoothStreamText(targetText, _ref) {
|
|
14
|
+
var enabled = _ref.enabled,
|
|
15
|
+
_ref$minCharsPerFrame = _ref.minCharsPerFrame,
|
|
16
|
+
minCharsPerFrame = _ref$minCharsPerFrame === void 0 ? 1 : _ref$minCharsPerFrame,
|
|
17
|
+
_ref$maxCharsPerFrame = _ref.maxCharsPerFrame,
|
|
18
|
+
maxCharsPerFrame = _ref$maxCharsPerFrame === void 0 ? 24 : _ref$maxCharsPerFrame,
|
|
19
|
+
_ref$targetLagMs = _ref.targetLagMs,
|
|
20
|
+
targetLagMs = _ref$targetLagMs === void 0 ? 450 : _ref$targetLagMs,
|
|
21
|
+
_ref$snapToWordBounda = _ref.snapToWordBoundary,
|
|
22
|
+
snapToWordBoundary = _ref$snapToWordBounda === void 0 ? false : _ref$snapToWordBounda,
|
|
23
|
+
_ref$adaptToBackendRa = _ref.adaptToBackendRate,
|
|
24
|
+
adaptToBackendRate = _ref$adaptToBackendRa === void 0 ? true : _ref$adaptToBackendRa,
|
|
25
|
+
_ref$backendRateFacto = _ref.backendRateFactor,
|
|
26
|
+
backendRateFactor = _ref$backendRateFacto === void 0 ? 0.95 : _ref$backendRateFacto,
|
|
27
|
+
_ref$targetBufferMs = _ref.targetBufferMs,
|
|
28
|
+
targetBufferMs = _ref$targetBufferMs === void 0 ? 600 : _ref$targetBufferMs,
|
|
29
|
+
_ref$bufferCorrection = _ref.bufferCorrectionMs,
|
|
30
|
+
bufferCorrectionMs = _ref$bufferCorrection === void 0 ? 500 : _ref$bufferCorrection,
|
|
31
|
+
_ref$minBufferChars = _ref.minBufferChars,
|
|
32
|
+
minBufferChars = _ref$minBufferChars === void 0 ? 70 : _ref$minBufferChars,
|
|
33
|
+
_ref$warmupMs = _ref.warmupMs,
|
|
34
|
+
warmupMs = _ref$warmupMs === void 0 ? 400 : _ref$warmupMs;
|
|
35
|
+
var _useState = useState(function () {
|
|
36
|
+
return enabled ? '' : targetText;
|
|
37
|
+
}),
|
|
38
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
39
|
+
displayed = _useState2[0],
|
|
40
|
+
setDisplayed = _useState2[1];
|
|
41
|
+
var targetRef = useRef(targetText);
|
|
42
|
+
var displayedLenRef = useRef(displayed.length);
|
|
43
|
+
var rafRef = useRef(null);
|
|
44
|
+
var lastTickRef = useRef(0);
|
|
45
|
+
|
|
46
|
+
// Medición de la cadencia del backend: se actualiza cuando cambia targetText.
|
|
47
|
+
var lastTargetLenRef = useRef(0);
|
|
48
|
+
var lastTargetUpdateRef = useRef(0);
|
|
49
|
+
// Estimación EMA de chars/ms producidos por el backend.
|
|
50
|
+
var backendCharsPerMsRef = useRef(0);
|
|
51
|
+
// Timestamp del primer chunk recibido (para warmup).
|
|
52
|
+
var firstChunkAtRef = useRef(0);
|
|
53
|
+
// Si el warmup ya terminó (una vez true, no vuelve a activarse en este stream).
|
|
54
|
+
var warmupDoneRef = useRef(false);
|
|
55
|
+
useEffect(function () {
|
|
56
|
+
var now = typeof performance !== 'undefined' ? performance.now() : Date.now();
|
|
57
|
+
var prevTargetLen = lastTargetLenRef.current;
|
|
58
|
+
var deltaChars = targetText.length - prevTargetLen;
|
|
59
|
+
var prevTargetAt = lastTargetUpdateRef.current;
|
|
60
|
+
if (enabled && deltaChars > 0) {
|
|
61
|
+
if (firstChunkAtRef.current === 0) firstChunkAtRef.current = now;
|
|
62
|
+
}
|
|
63
|
+
if (enabled && deltaChars > 0 && prevTargetAt > 0) {
|
|
64
|
+
var dt = Math.max(1, now - prevTargetAt);
|
|
65
|
+
var rate = deltaChars / dt;
|
|
66
|
+
var prevRate = backendCharsPerMsRef.current;
|
|
67
|
+
// EMA suave (alpha = 0.2) para absorber jitter y seguir la tendencia.
|
|
68
|
+
backendCharsPerMsRef.current = prevRate === 0 ? rate : prevRate * 0.8 + rate * 0.2;
|
|
69
|
+
}
|
|
70
|
+
if (enabled && targetText.length !== prevTargetLen) {
|
|
71
|
+
lastTargetLenRef.current = targetText.length;
|
|
72
|
+
lastTargetUpdateRef.current = now;
|
|
73
|
+
}
|
|
74
|
+
targetRef.current = targetText;
|
|
75
|
+
if (!enabled) {
|
|
76
|
+
if (rafRef.current != null) {
|
|
77
|
+
cancelAnimationFrame(rafRef.current);
|
|
78
|
+
rafRef.current = null;
|
|
79
|
+
}
|
|
80
|
+
lastTickRef.current = 0;
|
|
81
|
+
if (displayedLenRef.current !== targetText.length) {
|
|
82
|
+
displayedLenRef.current = targetText.length;
|
|
83
|
+
setDisplayed(targetText);
|
|
84
|
+
}
|
|
85
|
+
// Reset de cadencia cuando se apaga para no contaminar el próximo stream.
|
|
86
|
+
lastTargetLenRef.current = 0;
|
|
87
|
+
lastTargetUpdateRef.current = 0;
|
|
88
|
+
backendCharsPerMsRef.current = 0;
|
|
89
|
+
firstChunkAtRef.current = 0;
|
|
90
|
+
warmupDoneRef.current = false;
|
|
91
|
+
return undefined;
|
|
92
|
+
}
|
|
93
|
+
if (displayedLenRef.current > targetText.length) {
|
|
94
|
+
displayedLenRef.current = 0;
|
|
95
|
+
setDisplayed('');
|
|
96
|
+
}
|
|
97
|
+
if (rafRef.current != null) return undefined;
|
|
98
|
+
var _tick = function tick(tickNow) {
|
|
99
|
+
var prev = lastTickRef.current;
|
|
100
|
+
var dt = prev ? Math.min(tickNow - prev, 64) : 16;
|
|
101
|
+
lastTickRef.current = tickNow;
|
|
102
|
+
var target = targetRef.current;
|
|
103
|
+
var currentLen = displayedLenRef.current;
|
|
104
|
+
var remaining = target.length - currentLen;
|
|
105
|
+
if (remaining <= 0) {
|
|
106
|
+
rafRef.current = requestAnimationFrame(_tick);
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
// Warmup: al comienzo del stream esperamos `warmupMs` desde el primer
|
|
111
|
+
// chunk antes de empezar a pintar. Esto construye un colchón inicial y
|
|
112
|
+
// evita arrancar rápido para congelarnos acto seguido si el backend
|
|
113
|
+
// tarda mucho en emitir el segundo chunk.
|
|
114
|
+
if (!warmupDoneRef.current) {
|
|
115
|
+
var firstAt = firstChunkAtRef.current;
|
|
116
|
+
var waitedMs = firstAt > 0 ? tickNow - firstAt : 0;
|
|
117
|
+
var warmupComplete = warmupMs <= 0 || waitedMs >= warmupMs || target.length >= minBufferChars * 2;
|
|
118
|
+
if (!warmupComplete) {
|
|
119
|
+
rafRef.current = requestAnimationFrame(_tick);
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
122
|
+
warmupDoneRef.current = true;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
// Velocidad base: vaciar el buffer en ~targetLagMs.
|
|
126
|
+
var charsPerMs = remaining / targetLagMs;
|
|
127
|
+
var effectiveCharsPerMs = charsPerMs;
|
|
128
|
+
var backendRate = backendCharsPerMsRef.current;
|
|
129
|
+
if (adaptToBackendRate && backendRate > 0) {
|
|
130
|
+
if (typeof targetBufferMs === 'number') {
|
|
131
|
+
// Control proporcional: mantener el buffer en torno al colchón
|
|
132
|
+
// objetivo. Si bufferMs < target → frenamos por debajo del backend
|
|
133
|
+
// para acumular; si bufferMs > target → aceleramos para descargar.
|
|
134
|
+
// En equilibrio, pintamos al ritmo promedio del backend.
|
|
135
|
+
//
|
|
136
|
+
// El colchón objetivo se calcula sobre la tasa **efectiva** que
|
|
137
|
+
// podemos pintar (capeada por `maxCharsPerFrame` a 60fps), no sobre
|
|
138
|
+
// la del backend pura. Esto evita el caso patológico de ráfagas:
|
|
139
|
+
// si el backend tira a 6500 ch/s, el target NO se vuelve 3900 chars
|
|
140
|
+
// (que el render jamás podría sostener), sino algo razonable que
|
|
141
|
+
// la animación pueda mantener.
|
|
142
|
+
//
|
|
143
|
+
// Piso absoluto: el colchón nunca baja de `minBufferChars` aunque
|
|
144
|
+
// el backend esté mandando lento al inicio del stream.
|
|
145
|
+
var renderRateCap = maxCharsPerFrame * 60 / 1000;
|
|
146
|
+
var effectiveBufferRate = Math.min(backendRate, renderRateCap);
|
|
147
|
+
var targetBufferChars = Math.max(minBufferChars, targetBufferMs * effectiveBufferRate);
|
|
148
|
+
var bufferDelta = remaining - targetBufferChars;
|
|
149
|
+
// Corrección tiene unidades de chars/ms. bufferCorrectionMs controla
|
|
150
|
+
// qué tan rápido el buffer real converge al objetivo.
|
|
151
|
+
var correction = bufferDelta / Math.max(1, bufferCorrectionMs);
|
|
152
|
+
effectiveCharsPerMs = Math.max(0, backendRate + correction);
|
|
153
|
+
// Acotar por la velocidad de "vaciar en targetLagMs" para que si
|
|
154
|
+
// de pronto hay un pico gigante de buffer no salgamos disparados.
|
|
155
|
+
effectiveCharsPerMs = Math.min(effectiveCharsPerMs, charsPerMs);
|
|
156
|
+
} else {
|
|
157
|
+
// Modo simple: cap a la tasa del backend * factor.
|
|
158
|
+
var cap = backendRate * backendRateFactor;
|
|
159
|
+
effectiveCharsPerMs = Math.min(effectiveCharsPerMs, cap);
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
var rawStep = Math.ceil(effectiveCharsPerMs * dt);
|
|
163
|
+
var step = Math.max(minCharsPerFrame, Math.min(maxCharsPerFrame, rawStep));
|
|
164
|
+
var nextLen = Math.min(target.length, currentLen + step);
|
|
165
|
+
if (snapToWordBoundary && nextLen < target.length) {
|
|
166
|
+
var slice = target.slice(currentLen, nextLen);
|
|
167
|
+
var lastBoundary = Math.max(slice.lastIndexOf(' '), slice.lastIndexOf('\n'), slice.lastIndexOf('\t'));
|
|
168
|
+
if (lastBoundary >= 0) {
|
|
169
|
+
nextLen = currentLen + lastBoundary + 1;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
if (nextLen !== currentLen) {
|
|
173
|
+
displayedLenRef.current = nextLen;
|
|
174
|
+
setDisplayed(target.slice(0, nextLen));
|
|
175
|
+
}
|
|
176
|
+
rafRef.current = requestAnimationFrame(_tick);
|
|
177
|
+
};
|
|
178
|
+
rafRef.current = requestAnimationFrame(_tick);
|
|
179
|
+
return function () {
|
|
180
|
+
if (rafRef.current != null) {
|
|
181
|
+
cancelAnimationFrame(rafRef.current);
|
|
182
|
+
rafRef.current = null;
|
|
183
|
+
}
|
|
184
|
+
lastTickRef.current = 0;
|
|
185
|
+
};
|
|
186
|
+
}, [targetText, enabled, minCharsPerFrame, maxCharsPerFrame, targetLagMs, snapToWordBoundary, adaptToBackendRate, backendRateFactor, targetBufferMs, bufferCorrectionMs, minBufferChars, warmupMs]);
|
|
187
|
+
return displayed;
|
|
188
|
+
};
|
|
189
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VFZmZlY3QiLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsInVzZVNtb290aFN0cmVhbVRleHQiLCJ0YXJnZXRUZXh0IiwiX3JlZiIsImVuYWJsZWQiLCJfcmVmJG1pbkNoYXJzUGVyRnJhbWUiLCJtaW5DaGFyc1BlckZyYW1lIiwiX3JlZiRtYXhDaGFyc1BlckZyYW1lIiwibWF4Q2hhcnNQZXJGcmFtZSIsIl9yZWYkdGFyZ2V0TGFnTXMiLCJ0YXJnZXRMYWdNcyIsIl9yZWYkc25hcFRvV29yZEJvdW5kYSIsInNuYXBUb1dvcmRCb3VuZGFyeSIsIl9yZWYkYWRhcHRUb0JhY2tlbmRSYSIsImFkYXB0VG9CYWNrZW5kUmF0ZSIsIl9yZWYkYmFja2VuZFJhdGVGYWN0byIsImJhY2tlbmRSYXRlRmFjdG9yIiwiX3JlZiR0YXJnZXRCdWZmZXJNcyIsInRhcmdldEJ1ZmZlck1zIiwiX3JlZiRidWZmZXJDb3JyZWN0aW9uIiwiYnVmZmVyQ29ycmVjdGlvbk1zIiwiX3JlZiRtaW5CdWZmZXJDaGFycyIsIm1pbkJ1ZmZlckNoYXJzIiwiX3JlZiR3YXJtdXBNcyIsIndhcm11cE1zIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwiZGlzcGxheWVkIiwic2V0RGlzcGxheWVkIiwidGFyZ2V0UmVmIiwiZGlzcGxheWVkTGVuUmVmIiwibGVuZ3RoIiwicmFmUmVmIiwibGFzdFRpY2tSZWYiLCJsYXN0VGFyZ2V0TGVuUmVmIiwibGFzdFRhcmdldFVwZGF0ZVJlZiIsImJhY2tlbmRDaGFyc1Blck1zUmVmIiwiZmlyc3RDaHVua0F0UmVmIiwid2FybXVwRG9uZVJlZiIsIm5vdyIsInBlcmZvcm1hbmNlIiwiRGF0ZSIsInByZXZUYXJnZXRMZW4iLCJjdXJyZW50IiwiZGVsdGFDaGFycyIsInByZXZUYXJnZXRBdCIsImR0IiwiTWF0aCIsIm1heCIsInJhdGUiLCJwcmV2UmF0ZSIsImNhbmNlbEFuaW1hdGlvbkZyYW1lIiwidW5kZWZpbmVkIiwidGljayIsInRpY2tOb3ciLCJwcmV2IiwibWluIiwidGFyZ2V0IiwiY3VycmVudExlbiIsInJlbWFpbmluZyIsInJlcXVlc3RBbmltYXRpb25GcmFtZSIsImZpcnN0QXQiLCJ3YWl0ZWRNcyIsIndhcm11cENvbXBsZXRlIiwiY2hhcnNQZXJNcyIsImVmZmVjdGl2ZUNoYXJzUGVyTXMiLCJiYWNrZW5kUmF0ZSIsInJlbmRlclJhdGVDYXAiLCJlZmZlY3RpdmVCdWZmZXJSYXRlIiwidGFyZ2V0QnVmZmVyQ2hhcnMiLCJidWZmZXJEZWx0YSIsImNvcnJlY3Rpb24iLCJjYXAiLCJyYXdTdGVwIiwiY2VpbCIsInN0ZXAiLCJuZXh0TGVuIiwic2xpY2UiLCJsYXN0Qm91bmRhcnkiLCJsYXN0SW5kZXhPZiJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ob29rcy91c2VTbW9vdGhTdHJlYW1UZXh0L3VzZVNtb290aFN0cmVhbVRleHQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnXG5cbnR5cGUgVXNlU21vb3RoU3RyZWFtVGV4dE9wdGlvbnMgPSB7XG4gIC8qKiBTaSBlc3TDoSBkZXNoYWJpbGl0YWRvLCBkZXZ1ZWx2ZSBlbCB0YXJnZXQgdGFsIGN1YWwgKHNpbiBhbmltYWNpw7NuKS4gKi9cbiAgZW5hYmxlZDogYm9vbGVhblxuICAvKiogQ2FudGlkYWQgbcOtbmltYSBkZSBjaGFycyBhIGxpYmVyYXIgcG9yIGZyYW1lIGN1YW5kbyBoYXkgYnVmZmVyLiAqL1xuICBtaW5DaGFyc1BlckZyYW1lPzogbnVtYmVyXG4gIC8qKiBDb3RhIHN1cGVyaW9yIGRlIGNoYXJzIHBvciBmcmFtZSBwYXJhIGV2aXRhciBzYWx0b3MgZ3JhbmRlcy4gKi9cbiAgbWF4Q2hhcnNQZXJGcmFtZT86IG51bWJlclxuICAvKipcbiAgICogTGFnIG9iamV0aXZvIChtcykgZW50cmUgZWwgdGV4dG8gcmVjaWJpZG8geSBlbCBtb3N0cmFkby4gRWwgaG9vayBjYWxjdWxhXG4gICAqIGRpbsOhbWljYW1lbnRlIGVsIHN0ZXAgcG9yIGZyYW1lIHBhcmEgdmFjaWFyIGVsIGJ1ZmZlciBlbiB+dGFyZ2V0TGFnTXMuXG4gICAqIFZhbG9yZXMgbcOhcyBiYWpvcyA9IHNlIHBvbmUgYWwgZMOtYSBtw6FzIHLDoXBpZG8gKG1lbm9zIFwic3VhdmVcIikuXG4gICAqL1xuICB0YXJnZXRMYWdNcz86IG51bWJlclxuICAvKipcbiAgICogU2kgZXN0w6EgYWN0aXZvLCBhbCBhdmFuemFyIHNlIGRldGllbmUgZW4gZWwgw7psdGltbyBzZXBhcmFkb3IgZGUgcGFsYWJyYVxuICAgKiAoZXNwYWNpbywgc2FsdG8gZGUgbMOtbmVhLCBzaWdub3MgZGUgcHVudHVhY2nDs24pIHBhcmEgZXZpdGFyIHJlbmRlcml6YXJcbiAgICogbWFya2Rvd24gXCJjb3J0YWRvIGEgbGEgbWl0YWRcIiB5IGRhciB1bmEgc2Vuc2FjacOzbiBtw6FzIG5hdHVyYWwuXG4gICAqL1xuICBzbmFwVG9Xb3JkQm91bmRhcnk/OiBib29sZWFuXG4gIC8qKlxuICAgKiBTaSBlc3TDoSBhY3Rpdm8sIG1pZGUgbGEgdGFzYSBwcm9tZWRpbyBhIGxhIHF1ZSBjcmVjZSBlbCB0YXJnZXQgKGNhZGVuY2lhXG4gICAqIGRlbCBiYWNrZW5kIGVuIGNoYXJzL21zKSB5IGxpbWl0YSBsYSB2ZWxvY2lkYWQgZGUgcGludGFkbyBhIGVzYSB0YXNhXG4gICAqIChtdWx0aXBsaWNhZGEgcG9yIGBiYWNrZW5kUmF0ZUZhY3RvcmApLiBFc3RvIGV2aXRhIGVsIGNhc28gdMOtcGljbyBkZVxuICAgKiBcInBpbnRvIHLDoXBpZG8gaGFzdGEgdmFjaWFyIGVsIGJ1ZmZlciB5IGRlc3B1w6lzIHNlIGNvbmdlbGEgZXNwZXJhbmRvXG4gICAqIGFsIHByw7N4aW1vIGNodW5rIGRlbCBiYWNrZW5kXCIuXG4gICAqL1xuICBhZGFwdFRvQmFja2VuZFJhdGU/OiBib29sZWFuXG4gIC8qKlxuICAgKiBGYWN0b3IgYXBsaWNhZG8gYSBsYSB0YXNhIGRlbCBiYWNrZW5kIGN1YW5kbyBgYWRhcHRUb0JhY2tlbmRSYXRlYCBlc3TDoVxuICAgKiBhY3Rpdm8uIFZhbG9yZXMgPCAxIGRlamFuIHVuIGNvbGNow7NuIGNyZWNpZW50ZSAobcOhcyB0b2xlcmFudGUgYSBwYXVzYXMpO1xuICAgKiB2YWxvcmVzID4gMSBpbnRlbnRhbiBhbGNhbnphci4gRGVmYXVsdDogMC45NS5cbiAgICovXG4gIGJhY2tlbmRSYXRlRmFjdG9yPzogbnVtYmVyXG4gIC8qKlxuICAgKiBDb2xjaMOzbiBvYmpldGl2byBkZSBidWZmZXIgZXhwcmVzYWRvIGVuIG1zIChjdcOhbnRvIHRpZW1wbyBkZSB0ZXh0byBxdWVyZW1vc1xuICAgKiB0ZW5lciBzaWVtcHJlIGFkZWxhbnRhZG8gYWwgcGludGFkbykuIFNpIGVzdMOhIGRlZmluaWRvIGp1bnRvIGNvblxuICAgKiBgYWRhcHRUb0JhY2tlbmRSYXRlYCwgc2UgdXNhIHVuIGNvbnRyb2wgcHJvcG9yY2lvbmFsOiBjdWFuZG8gZWwgYnVmZmVyXG4gICAqIGJhamEgZGVsIG9iamV0aXZvLCBsYSB2ZWxvY2lkYWQgY2FlIHBvciBkZWJham8gZGUgbGEgZGVsIGJhY2tlbmQgcGFyYVxuICAgKiByZWxsZW5hcmxvOyBjdWFuZG8gbG8gc3VwZXJhLCBzZSBhY2VsZXJhIHBhcmEgZGVzY2FyZ2FybG8uIEFzw60gbGFcbiAgICogYW5pbWFjacOzbiBhYnNvcmJlIHBhdXNhcyBkZWwgYmFja2VuZCBzaW4gcXVlZGFyc2UgaWRsZS5cbiAgICpcbiAgICogVmFsb3IgcmVjb21lbmRhZG86IDMwMOKAkzYwMG1zIHNlZ8O6biBsYSBlc3RhYmlsaWRhZCBkZWwgYmFja2VuZC5cbiAgICovXG4gIHRhcmdldEJ1ZmZlck1zPzogbnVtYmVyXG4gIC8qKlxuICAgKiBDb25zdGFudGUgZGUgdGllbXBvIChtcykgZGVsIGNvbnRyb2xhZG9yIGRlbCBidWZmZXIuIEN1YW50byBtw6FzIGJham8sXG4gICAqIG3DoXMgYWdyZXNpdmFtZW50ZSBjb3JyaWdlIGRlc3bDrW9zLiBEZWZhdWx0OiA1MDAuXG4gICAqL1xuICBidWZmZXJDb3JyZWN0aW9uTXM/OiBudW1iZXJcbiAgLyoqXG4gICAqIFBpc28gYWJzb2x1dG8gZGVsIGNvbGNow7NuIGVuIGNoYXJzOiBlbCBgdGFyZ2V0QnVmZmVyQ2hhcnNgIGNhbGN1bGFkbyBhXG4gICAqIHBhcnRpciBkZSBgdGFyZ2V0QnVmZmVyTXMgw5cgYmFja2VuZFJhdGVgIG51bmNhIGJhamEgZGUgZXN0ZSB2YWxvci4gw5p0aWxcbiAgICogYWwgY29taWVuem8gZGVsIHN0cmVhbSBjdWFuZG8gbGEgdGFzYSBlc3RpbWFkYSBkZWwgYmFja2VuZCBlcyBiYWphLlxuICAgKiBEZWZhdWx0OiA3MC5cbiAgICovXG4gIG1pbkJ1ZmZlckNoYXJzPzogbnVtYmVyXG4gIC8qKlxuICAgKiBXYXJtdXA6IG1zIHF1ZSBlbCBob29rIGVzcGVyYSBcImFjdW11bGFuZG9cIiBhbnRlcyBkZSBlbXBlemFyIGEgcGludGFyLFxuICAgKiBpbmNsdXNvIHNpIHlhIGhheSBjaGFycyBlbiBlbCBidWZmZXIuIEV2aXRhIGVsIHTDrXBpY28gXCJhcnJhbnF1ZSByw6FwaWRvLFxuICAgKiBjb25nZWxhbWllbnRvXCIgY3VhbmRvIGVsIHByaW1lciBjaHVuayBsbGVnYSBhbnRlcyBxdWUgZWwgc2VndW5kbyBzZVxuICAgKiB0YXJkYSBtdWNoby4gU2kgc2UgZGVmaW5lIGNvbW8gMCwgbm8gaGF5IHdhcm11cC4gRGVmYXVsdDogNDAwLlxuICAgKi9cbiAgd2FybXVwTXM/OiBudW1iZXJcbn1cblxuLyoqXG4gKiBIb29rIHF1ZSBkZXNhY29wbGEgbGEgY2FkZW5jaWEgZGUgbGxlZ2FkYSBkZWwgdGV4dG8gKHN0cmVhbSBTU0UpIGRlIGxhXG4gKiBjYWRlbmNpYSBkZSByZW5kZXJpemFkby4gVXNhIGByZXF1ZXN0QW5pbWF0aW9uRnJhbWVgIHBhcmEgbGliZXJhciBjaGFyc1xuICogYSByaXRtbyBjb25zdGFudGUgaGFjaWEgZWwgRE9NLCBlbGltaW5hbmRvIGxvcyBcImZyZW5vc1wiIHF1ZSBzZSBwcm9kdWNlblxuICogY3VhbmRvIGVsIGJhY2tlbmQgZW1pdGUgcsOhZmFnYXMgZGUgdG9rZW5zLlxuICpcbiAqIEN1YW5kbyBgZW5hYmxlZGAgcGFzYSBhIGZhbHNlIChmaW4gZGUgc3RyZWFtKSwgZWwgdGV4dG8gc2UgY29tcGxldGEgYWxcbiAqIGluc3RhbnRlLiBEdXJhbnRlIGVsIHN0cmVhbWluZywgZWwgYnVmZmVyIHNlIHZhY8OtYSBkaW7DoW1pY2FtZW50ZSBhcHVudGFuZG9cbiAqIGFsIGxhZyBjb25maWd1cmFkby5cbiAqL1xuZXhwb3J0IGNvbnN0IHVzZVNtb290aFN0cmVhbVRleHQgPSAoXG4gIHRhcmdldFRleHQ6IHN0cmluZyxcbiAge1xuICAgIGVuYWJsZWQsXG4gICAgbWluQ2hhcnNQZXJGcmFtZSA9IDEsXG4gICAgbWF4Q2hhcnNQZXJGcmFtZSA9IDI0LFxuICAgIHRhcmdldExhZ01zID0gNDUwLFxuICAgIHNuYXBUb1dvcmRCb3VuZGFyeSA9IGZhbHNlLFxuICAgIGFkYXB0VG9CYWNrZW5kUmF0ZSA9IHRydWUsXG4gICAgYmFja2VuZFJhdGVGYWN0b3IgPSAwLjk1LFxuICAgIHRhcmdldEJ1ZmZlck1zID0gNjAwLFxuICAgIGJ1ZmZlckNvcnJlY3Rpb25NcyA9IDUwMCxcbiAgICBtaW5CdWZmZXJDaGFycyA9IDcwLFxuICAgIHdhcm11cE1zID0gNDAwLFxuICB9OiBVc2VTbW9vdGhTdHJlYW1UZXh0T3B0aW9uc1xuKTogc3RyaW5nID0+IHtcbiAgY29uc3QgW2Rpc3BsYXllZCwgc2V0RGlzcGxheWVkXSA9IHVzZVN0YXRlPHN0cmluZz4oKCkgPT4gKGVuYWJsZWQgPyAnJyA6IHRhcmdldFRleHQpKVxuXG4gIGNvbnN0IHRhcmdldFJlZiA9IHVzZVJlZih0YXJnZXRUZXh0KVxuICBjb25zdCBkaXNwbGF5ZWRMZW5SZWYgPSB1c2VSZWYoZGlzcGxheWVkLmxlbmd0aClcbiAgY29uc3QgcmFmUmVmID0gdXNlUmVmPG51bWJlciB8IG51bGw+KG51bGwpXG4gIGNvbnN0IGxhc3RUaWNrUmVmID0gdXNlUmVmPG51bWJlcj4oMClcblxuICAvLyBNZWRpY2nDs24gZGUgbGEgY2FkZW5jaWEgZGVsIGJhY2tlbmQ6IHNlIGFjdHVhbGl6YSBjdWFuZG8gY2FtYmlhIHRhcmdldFRleHQuXG4gIGNvbnN0IGxhc3RUYXJnZXRMZW5SZWYgPSB1c2VSZWY8bnVtYmVyPigwKVxuICBjb25zdCBsYXN0VGFyZ2V0VXBkYXRlUmVmID0gdXNlUmVmPG51bWJlcj4oMClcbiAgLy8gRXN0aW1hY2nDs24gRU1BIGRlIGNoYXJzL21zIHByb2R1Y2lkb3MgcG9yIGVsIGJhY2tlbmQuXG4gIGNvbnN0IGJhY2tlbmRDaGFyc1Blck1zUmVmID0gdXNlUmVmPG51bWJlcj4oMClcbiAgLy8gVGltZXN0YW1wIGRlbCBwcmltZXIgY2h1bmsgcmVjaWJpZG8gKHBhcmEgd2FybXVwKS5cbiAgY29uc3QgZmlyc3RDaHVua0F0UmVmID0gdXNlUmVmPG51bWJlcj4oMClcbiAgLy8gU2kgZWwgd2FybXVwIHlhIHRlcm1pbsOzICh1bmEgdmV6IHRydWUsIG5vIHZ1ZWx2ZSBhIGFjdGl2YXJzZSBlbiBlc3RlIHN0cmVhbSkuXG4gIGNvbnN0IHdhcm11cERvbmVSZWYgPSB1c2VSZWY8Ym9vbGVhbj4oZmFsc2UpXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBub3cgPSB0eXBlb2YgcGVyZm9ybWFuY2UgIT09ICd1bmRlZmluZWQnID8gcGVyZm9ybWFuY2Uubm93KCkgOiBEYXRlLm5vdygpXG4gICAgY29uc3QgcHJldlRhcmdldExlbiA9IGxhc3RUYXJnZXRMZW5SZWYuY3VycmVudFxuICAgIGNvbnN0IGRlbHRhQ2hhcnMgPSB0YXJnZXRUZXh0Lmxlbmd0aCAtIHByZXZUYXJnZXRMZW5cbiAgICBjb25zdCBwcmV2VGFyZ2V0QXQgPSBsYXN0VGFyZ2V0VXBkYXRlUmVmLmN1cnJlbnRcblxuICAgIGlmIChlbmFibGVkICYmIGRlbHRhQ2hhcnMgPiAwKSB7XG4gICAgICBpZiAoZmlyc3RDaHVua0F0UmVmLmN1cnJlbnQgPT09IDApIGZpcnN0Q2h1bmtBdFJlZi5jdXJyZW50ID0gbm93XG4gICAgfVxuXG4gICAgaWYgKGVuYWJsZWQgJiYgZGVsdGFDaGFycyA+IDAgJiYgcHJldlRhcmdldEF0ID4gMCkge1xuICAgICAgY29uc3QgZHQgPSBNYXRoLm1heCgxLCBub3cgLSBwcmV2VGFyZ2V0QXQpXG4gICAgICBjb25zdCByYXRlID0gZGVsdGFDaGFycyAvIGR0XG4gICAgICBjb25zdCBwcmV2UmF0ZSA9IGJhY2tlbmRDaGFyc1Blck1zUmVmLmN1cnJlbnRcbiAgICAgIC8vIEVNQSBzdWF2ZSAoYWxwaGEgPSAwLjIpIHBhcmEgYWJzb3JiZXIgaml0dGVyIHkgc2VndWlyIGxhIHRlbmRlbmNpYS5cbiAgICAgIGJhY2tlbmRDaGFyc1Blck1zUmVmLmN1cnJlbnQgPSBwcmV2UmF0ZSA9PT0gMCA/IHJhdGUgOiBwcmV2UmF0ZSAqIDAuOCArIHJhdGUgKiAwLjJcbiAgICB9XG4gICAgaWYgKGVuYWJsZWQgJiYgdGFyZ2V0VGV4dC5sZW5ndGggIT09IHByZXZUYXJnZXRMZW4pIHtcbiAgICAgIGxhc3RUYXJnZXRMZW5SZWYuY3VycmVudCA9IHRhcmdldFRleHQubGVuZ3RoXG4gICAgICBsYXN0VGFyZ2V0VXBkYXRlUmVmLmN1cnJlbnQgPSBub3dcbiAgICB9XG5cbiAgICB0YXJnZXRSZWYuY3VycmVudCA9IHRhcmdldFRleHRcblxuICAgIGlmICghZW5hYmxlZCkge1xuICAgICAgaWYgKHJhZlJlZi5jdXJyZW50ICE9IG51bGwpIHtcbiAgICAgICAgY2FuY2VsQW5pbWF0aW9uRnJhbWUocmFmUmVmLmN1cnJlbnQpXG4gICAgICAgIHJhZlJlZi5jdXJyZW50ID0gbnVsbFxuICAgICAgfVxuICAgICAgbGFzdFRpY2tSZWYuY3VycmVudCA9IDBcbiAgICAgIGlmIChkaXNwbGF5ZWRMZW5SZWYuY3VycmVudCAhPT0gdGFyZ2V0VGV4dC5sZW5ndGgpIHtcbiAgICAgICAgZGlzcGxheWVkTGVuUmVmLmN1cnJlbnQgPSB0YXJnZXRUZXh0Lmxlbmd0aFxuICAgICAgICBzZXREaXNwbGF5ZWQodGFyZ2V0VGV4dClcbiAgICAgIH1cbiAgICAgIC8vIFJlc2V0IGRlIGNhZGVuY2lhIGN1YW5kbyBzZSBhcGFnYSBwYXJhIG5vIGNvbnRhbWluYXIgZWwgcHLDs3hpbW8gc3RyZWFtLlxuICAgICAgbGFzdFRhcmdldExlblJlZi5jdXJyZW50ID0gMFxuICAgICAgbGFzdFRhcmdldFVwZGF0ZVJlZi5jdXJyZW50ID0gMFxuICAgICAgYmFja2VuZENoYXJzUGVyTXNSZWYuY3VycmVudCA9IDBcbiAgICAgIGZpcnN0Q2h1bmtBdFJlZi5jdXJyZW50ID0gMFxuICAgICAgd2FybXVwRG9uZVJlZi5jdXJyZW50ID0gZmFsc2VcbiAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICB9XG5cbiAgICBpZiAoZGlzcGxheWVkTGVuUmVmLmN1cnJlbnQgPiB0YXJnZXRUZXh0Lmxlbmd0aCkge1xuICAgICAgZGlzcGxheWVkTGVuUmVmLmN1cnJlbnQgPSAwXG4gICAgICBzZXREaXNwbGF5ZWQoJycpXG4gICAgfVxuXG4gICAgaWYgKHJhZlJlZi5jdXJyZW50ICE9IG51bGwpIHJldHVybiB1bmRlZmluZWRcblxuICAgIGNvbnN0IHRpY2sgPSAodGlja05vdzogbnVtYmVyKSA9PiB7XG4gICAgICBjb25zdCBwcmV2ID0gbGFzdFRpY2tSZWYuY3VycmVudFxuICAgICAgY29uc3QgZHQgPSBwcmV2ID8gTWF0aC5taW4odGlja05vdyAtIHByZXYsIDY0KSA6IDE2XG4gICAgICBsYXN0VGlja1JlZi5jdXJyZW50ID0gdGlja05vd1xuXG4gICAgICBjb25zdCB0YXJnZXQgPSB0YXJnZXRSZWYuY3VycmVudFxuICAgICAgY29uc3QgY3VycmVudExlbiA9IGRpc3BsYXllZExlblJlZi5jdXJyZW50XG4gICAgICBjb25zdCByZW1haW5pbmcgPSB0YXJnZXQubGVuZ3RoIC0gY3VycmVudExlblxuXG4gICAgICBpZiAocmVtYWluaW5nIDw9IDApIHtcbiAgICAgICAgcmFmUmVmLmN1cnJlbnQgPSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUodGljaylcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIC8vIFdhcm11cDogYWwgY29taWVuem8gZGVsIHN0cmVhbSBlc3BlcmFtb3MgYHdhcm11cE1zYCBkZXNkZSBlbCBwcmltZXJcbiAgICAgIC8vIGNodW5rIGFudGVzIGRlIGVtcGV6YXIgYSBwaW50YXIuIEVzdG8gY29uc3RydXllIHVuIGNvbGNow7NuIGluaWNpYWwgeVxuICAgICAgLy8gZXZpdGEgYXJyYW5jYXIgcsOhcGlkbyBwYXJhIGNvbmdlbGFybm9zIGFjdG8gc2VndWlkbyBzaSBlbCBiYWNrZW5kXG4gICAgICAvLyB0YXJkYSBtdWNobyBlbiBlbWl0aXIgZWwgc2VndW5kbyBjaHVuay5cbiAgICAgIGlmICghd2FybXVwRG9uZVJlZi5jdXJyZW50KSB7XG4gICAgICAgIGNvbnN0IGZpcnN0QXQgPSBmaXJzdENodW5rQXRSZWYuY3VycmVudFxuICAgICAgICBjb25zdCB3YWl0ZWRNcyA9IGZpcnN0QXQgPiAwID8gdGlja05vdyAtIGZpcnN0QXQgOiAwXG4gICAgICAgIGNvbnN0IHdhcm11cENvbXBsZXRlID0gd2FybXVwTXMgPD0gMCB8fCB3YWl0ZWRNcyA+PSB3YXJtdXBNcyB8fCB0YXJnZXQubGVuZ3RoID49IG1pbkJ1ZmZlckNoYXJzICogMlxuICAgICAgICBpZiAoIXdhcm11cENvbXBsZXRlKSB7XG4gICAgICAgICAgcmFmUmVmLmN1cnJlbnQgPSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUodGljaylcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuICAgICAgICB3YXJtdXBEb25lUmVmLmN1cnJlbnQgPSB0cnVlXG4gICAgICB9XG5cbiAgICAgIC8vIFZlbG9jaWRhZCBiYXNlOiB2YWNpYXIgZWwgYnVmZmVyIGVuIH50YXJnZXRMYWdNcy5cbiAgICAgIGNvbnN0IGNoYXJzUGVyTXMgPSByZW1haW5pbmcgLyB0YXJnZXRMYWdNc1xuICAgICAgbGV0IGVmZmVjdGl2ZUNoYXJzUGVyTXMgPSBjaGFyc1Blck1zXG5cbiAgICAgIGNvbnN0IGJhY2tlbmRSYXRlID0gYmFja2VuZENoYXJzUGVyTXNSZWYuY3VycmVudFxuXG4gICAgICBpZiAoYWRhcHRUb0JhY2tlbmRSYXRlICYmIGJhY2tlbmRSYXRlID4gMCkge1xuICAgICAgICBpZiAodHlwZW9mIHRhcmdldEJ1ZmZlck1zID09PSAnbnVtYmVyJykge1xuICAgICAgICAgIC8vIENvbnRyb2wgcHJvcG9yY2lvbmFsOiBtYW50ZW5lciBlbCBidWZmZXIgZW4gdG9ybm8gYWwgY29sY2jDs25cbiAgICAgICAgICAvLyBvYmpldGl2by4gU2kgYnVmZmVyTXMgPCB0YXJnZXQg4oaSIGZyZW5hbW9zIHBvciBkZWJham8gZGVsIGJhY2tlbmRcbiAgICAgICAgICAvLyBwYXJhIGFjdW11bGFyOyBzaSBidWZmZXJNcyA+IHRhcmdldCDihpIgYWNlbGVyYW1vcyBwYXJhIGRlc2Nhcmdhci5cbiAgICAgICAgICAvLyBFbiBlcXVpbGlicmlvLCBwaW50YW1vcyBhbCByaXRtbyBwcm9tZWRpbyBkZWwgYmFja2VuZC5cbiAgICAgICAgICAvL1xuICAgICAgICAgIC8vIEVsIGNvbGNow7NuIG9iamV0aXZvIHNlIGNhbGN1bGEgc29icmUgbGEgdGFzYSAqKmVmZWN0aXZhKiogcXVlXG4gICAgICAgICAgLy8gcG9kZW1vcyBwaW50YXIgKGNhcGVhZGEgcG9yIGBtYXhDaGFyc1BlckZyYW1lYCBhIDYwZnBzKSwgbm8gc29icmVcbiAgICAgICAgICAvLyBsYSBkZWwgYmFja2VuZCBwdXJhLiBFc3RvIGV2aXRhIGVsIGNhc28gcGF0b2zDs2dpY28gZGUgcsOhZmFnYXM6XG4gICAgICAgICAgLy8gc2kgZWwgYmFja2VuZCB0aXJhIGEgNjUwMCBjaC9zLCBlbCB0YXJnZXQgTk8gc2UgdnVlbHZlIDM5MDAgY2hhcnNcbiAgICAgICAgICAvLyAocXVlIGVsIHJlbmRlciBqYW3DoXMgcG9kcsOtYSBzb3N0ZW5lciksIHNpbm8gYWxnbyByYXpvbmFibGUgcXVlXG4gICAgICAgICAgLy8gbGEgYW5pbWFjacOzbiBwdWVkYSBtYW50ZW5lci5cbiAgICAgICAgICAvL1xuICAgICAgICAgIC8vIFBpc28gYWJzb2x1dG86IGVsIGNvbGNow7NuIG51bmNhIGJhamEgZGUgYG1pbkJ1ZmZlckNoYXJzYCBhdW5xdWVcbiAgICAgICAgICAvLyBlbCBiYWNrZW5kIGVzdMOpIG1hbmRhbmRvIGxlbnRvIGFsIGluaWNpbyBkZWwgc3RyZWFtLlxuICAgICAgICAgIGNvbnN0IHJlbmRlclJhdGVDYXAgPSAobWF4Q2hhcnNQZXJGcmFtZSAqIDYwKSAvIDEwMDBcbiAgICAgICAgICBjb25zdCBlZmZlY3RpdmVCdWZmZXJSYXRlID0gTWF0aC5taW4oYmFja2VuZFJhdGUsIHJlbmRlclJhdGVDYXApXG4gICAgICAgICAgY29uc3QgdGFyZ2V0QnVmZmVyQ2hhcnMgPSBNYXRoLm1heChtaW5CdWZmZXJDaGFycywgdGFyZ2V0QnVmZmVyTXMgKiBlZmZlY3RpdmVCdWZmZXJSYXRlKVxuICAgICAgICAgIGNvbnN0IGJ1ZmZlckRlbHRhID0gcmVtYWluaW5nIC0gdGFyZ2V0QnVmZmVyQ2hhcnNcbiAgICAgICAgICAvLyBDb3JyZWNjacOzbiB0aWVuZSB1bmlkYWRlcyBkZSBjaGFycy9tcy4gYnVmZmVyQ29ycmVjdGlvbk1zIGNvbnRyb2xhXG4gICAgICAgICAgLy8gcXXDqSB0YW4gcsOhcGlkbyBlbCBidWZmZXIgcmVhbCBjb252ZXJnZSBhbCBvYmpldGl2by5cbiAgICAgICAgICBjb25zdCBjb3JyZWN0aW9uID0gYnVmZmVyRGVsdGEgLyBNYXRoLm1heCgxLCBidWZmZXJDb3JyZWN0aW9uTXMpXG4gICAgICAgICAgZWZmZWN0aXZlQ2hhcnNQZXJNcyA9IE1hdGgubWF4KDAsIGJhY2tlbmRSYXRlICsgY29ycmVjdGlvbilcbiAgICAgICAgICAvLyBBY290YXIgcG9yIGxhIHZlbG9jaWRhZCBkZSBcInZhY2lhciBlbiB0YXJnZXRMYWdNc1wiIHBhcmEgcXVlIHNpXG4gICAgICAgICAgLy8gZGUgcHJvbnRvIGhheSB1biBwaWNvIGdpZ2FudGUgZGUgYnVmZmVyIG5vIHNhbGdhbW9zIGRpc3BhcmFkb3MuXG4gICAgICAgICAgZWZmZWN0aXZlQ2hhcnNQZXJNcyA9IE1hdGgubWluKGVmZmVjdGl2ZUNoYXJzUGVyTXMsIGNoYXJzUGVyTXMpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gTW9kbyBzaW1wbGU6IGNhcCBhIGxhIHRhc2EgZGVsIGJhY2tlbmQgKiBmYWN0b3IuXG4gICAgICAgICAgY29uc3QgY2FwID0gYmFja2VuZFJhdGUgKiBiYWNrZW5kUmF0ZUZhY3RvclxuICAgICAgICAgIGVmZmVjdGl2ZUNoYXJzUGVyTXMgPSBNYXRoLm1pbihlZmZlY3RpdmVDaGFyc1Blck1zLCBjYXApXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY29uc3QgcmF3U3RlcCA9IE1hdGguY2VpbChlZmZlY3RpdmVDaGFyc1Blck1zICogZHQpXG4gICAgICBjb25zdCBzdGVwID0gTWF0aC5tYXgobWluQ2hhcnNQZXJGcmFtZSwgTWF0aC5taW4obWF4Q2hhcnNQZXJGcmFtZSwgcmF3U3RlcCkpXG5cbiAgICAgIGxldCBuZXh0TGVuID0gTWF0aC5taW4odGFyZ2V0Lmxlbmd0aCwgY3VycmVudExlbiArIHN0ZXApXG5cbiAgICAgIGlmIChzbmFwVG9Xb3JkQm91bmRhcnkgJiYgbmV4dExlbiA8IHRhcmdldC5sZW5ndGgpIHtcbiAgICAgICAgY29uc3Qgc2xpY2UgPSB0YXJnZXQuc2xpY2UoY3VycmVudExlbiwgbmV4dExlbilcbiAgICAgICAgY29uc3QgbGFzdEJvdW5kYXJ5ID0gTWF0aC5tYXgoc2xpY2UubGFzdEluZGV4T2YoJyAnKSwgc2xpY2UubGFzdEluZGV4T2YoJ1xcbicpLCBzbGljZS5sYXN0SW5kZXhPZignXFx0JykpXG4gICAgICAgIGlmIChsYXN0Qm91bmRhcnkgPj0gMCkge1xuICAgICAgICAgIG5leHRMZW4gPSBjdXJyZW50TGVuICsgbGFzdEJvdW5kYXJ5ICsgMVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChuZXh0TGVuICE9PSBjdXJyZW50TGVuKSB7XG4gICAgICAgIGRpc3BsYXllZExlblJlZi5jdXJyZW50ID0gbmV4dExlblxuICAgICAgICBzZXREaXNwbGF5ZWQodGFyZ2V0LnNsaWNlKDAsIG5leHRMZW4pKVxuICAgICAgfVxuXG4gICAgICByYWZSZWYuY3VycmVudCA9IHJlcXVlc3RBbmltYXRpb25GcmFtZSh0aWNrKVxuICAgIH1cblxuICAgIHJhZlJlZi5jdXJyZW50ID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKHRpY2spXG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgaWYgKHJhZlJlZi5jdXJyZW50ICE9IG51bGwpIHtcbiAgICAgICAgY2FuY2VsQW5pbWF0aW9uRnJhbWUocmFmUmVmLmN1cnJlbnQpXG4gICAgICAgIHJhZlJlZi5jdXJyZW50ID0gbnVsbFxuICAgICAgfVxuICAgICAgbGFzdFRpY2tSZWYuY3VycmVudCA9IDBcbiAgICB9XG4gIH0sIFtcbiAgICB0YXJnZXRUZXh0LFxuICAgIGVuYWJsZWQsXG4gICAgbWluQ2hhcnNQZXJGcmFtZSxcbiAgICBtYXhDaGFyc1BlckZyYW1lLFxuICAgIHRhcmdldExhZ01zLFxuICAgIHNuYXBUb1dvcmRCb3VuZGFyeSxcbiAgICBhZGFwdFRvQmFja2VuZFJhdGUsXG4gICAgYmFja2VuZFJhdGVGYWN0b3IsXG4gICAgdGFyZ2V0QnVmZmVyTXMsXG4gICAgYnVmZmVyQ29ycmVjdGlvbk1zLFxuICAgIG1pbkJ1ZmZlckNoYXJzLFxuICAgIHdhcm11cE1zLFxuICBdKVxuXG4gIHJldHVybiBkaXNwbGF5ZWRcbn1cbiJdLCJtYXBwaW5ncyI6IjtBQUFBLFNBQVNBLFNBQVMsRUFBRUMsTUFBTSxFQUFFQyxRQUFRLFFBQVEsT0FBTztBQW1FbkQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPLElBQU1DLG1CQUFtQixHQUFHLFNBQXRC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
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { useStreamingMessage, useStreamingMessageId } from './useStreamingMessage';
|
|
2
|
+
export { streamingStore } from './streamingStore';
|
|
3
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VTdHJlYW1pbmdNZXNzYWdlIiwidXNlU3RyZWFtaW5nTWVzc2FnZUlkIiwic3RyZWFtaW5nU3RvcmUiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaG9va3MvdXNlU3RyZWFtaW5nTWVzc2FnZS9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyB1c2VTdHJlYW1pbmdNZXNzYWdlLCB1c2VTdHJlYW1pbmdNZXNzYWdlSWQgfSBmcm9tICcuL3VzZVN0cmVhbWluZ01lc3NhZ2UnXG5leHBvcnQgeyBzdHJlYW1pbmdTdG9yZSB9IGZyb20gJy4vc3RyZWFtaW5nU3RvcmUnXG4iXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLG1CQUFtQixFQUFFQyxxQkFBcUIsUUFBUSx1QkFBdUI7QUFDbEYsU0FBU0MsY0FBYyxRQUFRLGtCQUFrQiIsImlnbm9yZUxpc3QiOltdfQ==
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Store externo (module-level) para el mensaje actualmente en streaming.
|
|
3
|
+
*
|
|
4
|
+
* Desacopla el texto del stream del array de `messages` de React: durante
|
|
5
|
+
* el streaming, el texto se mantiene acá y solo los componentes suscritos
|
|
6
|
+
* (vía `useStreamingMessage` / `useSyncExternalStore`) re-renderizan cuando
|
|
7
|
+
* cambia. El array `messages` no se muta en cada token, evitando ráfagas
|
|
8
|
+
* de re-renders del padre y ejecuciones innecesarias de useEffects.
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
var snapshot = {
|
|
12
|
+
id: null,
|
|
13
|
+
text: ''
|
|
14
|
+
};
|
|
15
|
+
var listeners = new Set();
|
|
16
|
+
var emitChange = function emitChange() {
|
|
17
|
+
listeners.forEach(function (listener) {
|
|
18
|
+
listener();
|
|
19
|
+
});
|
|
20
|
+
};
|
|
21
|
+
export var streamingStore = {
|
|
22
|
+
/** Inicia una nueva sesión de streaming para el mensaje con este id. */start: function start(id) {
|
|
23
|
+
snapshot = {
|
|
24
|
+
id: id,
|
|
25
|
+
text: ''
|
|
26
|
+
};
|
|
27
|
+
emitChange();
|
|
28
|
+
},
|
|
29
|
+
/** Setea el texto del mensaje en streaming. Solo aplica si el id coincide. */setText: function setText(id, text) {
|
|
30
|
+
if (snapshot.id !== id) {
|
|
31
|
+
snapshot = {
|
|
32
|
+
id: id,
|
|
33
|
+
text: text
|
|
34
|
+
};
|
|
35
|
+
} else if (snapshot.text !== text) {
|
|
36
|
+
snapshot = {
|
|
37
|
+
id: id,
|
|
38
|
+
text: text
|
|
39
|
+
};
|
|
40
|
+
} else {
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
emitChange();
|
|
44
|
+
},
|
|
45
|
+
/** Limpia el estado de streaming (fin de stream, error o aprobación). */clear: function clear() {
|
|
46
|
+
if (snapshot.id == null && snapshot.text === '') return;
|
|
47
|
+
snapshot = {
|
|
48
|
+
id: null,
|
|
49
|
+
text: ''
|
|
50
|
+
};
|
|
51
|
+
emitChange();
|
|
52
|
+
},
|
|
53
|
+
/** API para useSyncExternalStore. */subscribe: function subscribe(listener) {
|
|
54
|
+
listeners.add(listener);
|
|
55
|
+
return function () {
|
|
56
|
+
listeners["delete"](listener);
|
|
57
|
+
};
|
|
58
|
+
},
|
|
59
|
+
/** Snapshot referencialmente estable mientras no haya cambios. */getSnapshot: function getSnapshot() {
|
|
60
|
+
return snapshot;
|
|
61
|
+
},
|
|
62
|
+
/** Server snapshot (SSR): siempre vacío. */getServerSnapshot: function getServerSnapshot() {
|
|
63
|
+
return {
|
|
64
|
+
id: null,
|
|
65
|
+
text: ''
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzbmFwc2hvdCIsImlkIiwidGV4dCIsImxpc3RlbmVycyIsIlNldCIsImVtaXRDaGFuZ2UiLCJmb3JFYWNoIiwibGlzdGVuZXIiLCJzdHJlYW1pbmdTdG9yZSIsInN0YXJ0Iiwic2V0VGV4dCIsImNsZWFyIiwic3Vic2NyaWJlIiwiYWRkIiwiZ2V0U25hcHNob3QiLCJnZXRTZXJ2ZXJTbmFwc2hvdCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ob29rcy91c2VTdHJlYW1pbmdNZXNzYWdlL3N0cmVhbWluZ1N0b3JlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogU3RvcmUgZXh0ZXJubyAobW9kdWxlLWxldmVsKSBwYXJhIGVsIG1lbnNhamUgYWN0dWFsbWVudGUgZW4gc3RyZWFtaW5nLlxuICpcbiAqIERlc2Fjb3BsYSBlbCB0ZXh0byBkZWwgc3RyZWFtIGRlbCBhcnJheSBkZSBgbWVzc2FnZXNgIGRlIFJlYWN0OiBkdXJhbnRlXG4gKiBlbCBzdHJlYW1pbmcsIGVsIHRleHRvIHNlIG1hbnRpZW5lIGFjw6EgeSBzb2xvIGxvcyBjb21wb25lbnRlcyBzdXNjcml0b3NcbiAqICh2w61hIGB1c2VTdHJlYW1pbmdNZXNzYWdlYCAvIGB1c2VTeW5jRXh0ZXJuYWxTdG9yZWApIHJlLXJlbmRlcml6YW4gY3VhbmRvXG4gKiBjYW1iaWEuIEVsIGFycmF5IGBtZXNzYWdlc2Agbm8gc2UgbXV0YSBlbiBjYWRhIHRva2VuLCBldml0YW5kbyByw6FmYWdhc1xuICogZGUgcmUtcmVuZGVycyBkZWwgcGFkcmUgeSBlamVjdWNpb25lcyBpbm5lY2VzYXJpYXMgZGUgdXNlRWZmZWN0cy5cbiAqL1xuXG50eXBlIFN0cmVhbWluZ1NuYXBzaG90ID0ge1xuICBpZDogc3RyaW5nIHwgbnVsbFxuICB0ZXh0OiBzdHJpbmdcbn1cblxubGV0IHNuYXBzaG90OiBTdHJlYW1pbmdTbmFwc2hvdCA9IHsgaWQ6IG51bGwsIHRleHQ6ICcnIH1cbmNvbnN0IGxpc3RlbmVycyA9IG5ldyBTZXQ8KCkgPT4gdm9pZD4oKVxuXG5jb25zdCBlbWl0Q2hhbmdlID0gKCkgPT4ge1xuICBsaXN0ZW5lcnMuZm9yRWFjaChsaXN0ZW5lciA9PiB7XG4gICAgbGlzdGVuZXIoKVxuICB9KVxufVxuXG5leHBvcnQgY29uc3Qgc3RyZWFtaW5nU3RvcmUgPSB7XG4gIC8qKiBJbmljaWEgdW5hIG51ZXZhIHNlc2nDs24gZGUgc3RyZWFtaW5nIHBhcmEgZWwgbWVuc2FqZSBjb24gZXN0ZSBpZC4gKi9cbiAgc3RhcnQoaWQ6IHN0cmluZykge1xuICAgIHNuYXBzaG90ID0geyBpZCwgdGV4dDogJycgfVxuICAgIGVtaXRDaGFuZ2UoKVxuICB9LFxuICAvKiogU2V0ZWEgZWwgdGV4dG8gZGVsIG1lbnNhamUgZW4gc3RyZWFtaW5nLiBTb2xvIGFwbGljYSBzaSBlbCBpZCBjb2luY2lkZS4gKi9cbiAgc2V0VGV4dChpZDogc3RyaW5nLCB0ZXh0OiBzdHJpbmcpIHtcbiAgICBpZiAoc25hcHNob3QuaWQgIT09IGlkKSB7XG4gICAgICBzbmFwc2hvdCA9IHsgaWQsIHRleHQgfVxuICAgIH0gZWxzZSBpZiAoc25hcHNob3QudGV4dCAhPT0gdGV4dCkge1xuICAgICAgc25hcHNob3QgPSB7IGlkLCB0ZXh0IH1cbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGVtaXRDaGFuZ2UoKVxuICB9LFxuICAvKiogTGltcGlhIGVsIGVzdGFkbyBkZSBzdHJlYW1pbmcgKGZpbiBkZSBzdHJlYW0sIGVycm9yIG8gYXByb2JhY2nDs24pLiAqL1xuICBjbGVhcigpIHtcbiAgICBpZiAoc25hcHNob3QuaWQgPT0gbnVsbCAmJiBzbmFwc2hvdC50ZXh0ID09PSAnJykgcmV0dXJuXG4gICAgc25hcHNob3QgPSB7IGlkOiBudWxsLCB0ZXh0OiAnJyB9XG4gICAgZW1pdENoYW5nZSgpXG4gIH0sXG4gIC8qKiBBUEkgcGFyYSB1c2VTeW5jRXh0ZXJuYWxTdG9yZS4gKi9cbiAgc3Vic2NyaWJlKGxpc3RlbmVyOiAoKSA9PiB2b2lkKSB7XG4gICAgbGlzdGVuZXJzLmFkZChsaXN0ZW5lcilcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgbGlzdGVuZXJzLmRlbGV0ZShsaXN0ZW5lcilcbiAgICB9XG4gIH0sXG4gIC8qKiBTbmFwc2hvdCByZWZlcmVuY2lhbG1lbnRlIGVzdGFibGUgbWllbnRyYXMgbm8gaGF5YSBjYW1iaW9zLiAqL1xuICBnZXRTbmFwc2hvdCgpOiBTdHJlYW1pbmdTbmFwc2hvdCB7XG4gICAgcmV0dXJuIHNuYXBzaG90XG4gIH0sXG4gIC8qKiBTZXJ2ZXIgc25hcHNob3QgKFNTUik6IHNpZW1wcmUgdmFjw61vLiAqL1xuICBnZXRTZXJ2ZXJTbmFwc2hvdCgpOiBTdHJlYW1pbmdTbmFwc2hvdCB7XG4gICAgcmV0dXJuIHsgaWQ6IG51bGwsIHRleHQ6ICcnIH1cbiAgfSxcbn1cblxuZXhwb3J0IHR5cGUgeyBTdHJlYW1pbmdTbmFwc2hvdCB9XG4iXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFPQSxJQUFJQSxRQUEyQixHQUFHO0VBQUVDLEVBQUUsRUFBRSxJQUFJO0VBQUVDLElBQUksRUFBRTtBQUFHLENBQUM7QUFDeEQsSUFBTUMsU0FBUyxHQUFHLElBQUlDLEdBQUcsQ0FBYSxDQUFDO0FBRXZDLElBQU1DLFVBQVUsR0FBRyxTQUFiQSxVQUFVQSxDQUFBLEVBQVM7RUFDdkJGLFNBQVMsQ0FBQ0csT0FBTyxDQUFDLFVBQUFDLFFBQVEsRUFBSTtJQUM1QkEsUUFBUSxDQUFDLENBQUM7RUFDWixDQUFDLENBQUM7QUFDSixDQUFDO0FBRUQsT0FBTyxJQUFNQyxjQUFjLEdBQUc7RUFDNUIsd0VBQ0FDLEtBQUssV0FBTEEsS0FBS0EsQ0FBQ1IsRUFBVSxFQUFFO0lBQ2hCRCxRQUFRLEdBQUc7TUFBRUMsRUFBRSxFQUFGQSxFQUFFO01BQUVDLElBQUksRUFBRTtJQUFHLENBQUM7SUFDM0JHLFVBQVUsQ0FBQyxDQUFDO0VBQ2QsQ0FBQztFQUNELDhFQUNBSyxPQUFPLFdBQVBBLE9BQU9BLENBQUNULEVBQVUsRUFBRUMsSUFBWSxFQUFFO0lBQ2hDLElBQUlGLFFBQVEsQ0FBQ0MsRUFBRSxLQUFLQSxFQUFFLEVBQUU7TUFDdEJELFFBQVEsR0FBRztRQUFFQyxFQUFFLEVBQUZBLEVBQUU7UUFBRUMsSUFBSSxFQUFKQTtNQUFLLENBQUM7SUFDekIsQ0FBQyxNQUFNLElBQUlGLFFBQVEsQ0FBQ0UsSUFBSSxLQUFLQSxJQUFJLEVBQUU7TUFDakNGLFFBQVEsR0FBRztRQUFFQyxFQUFFLEVBQUZBLEVBQUU7UUFBRUMsSUFBSSxFQUFKQTtNQUFLLENBQUM7SUFDekIsQ0FBQyxNQUFNO01BQ0w7SUFDRjtJQUNBRyxVQUFVLENBQUMsQ0FBQztFQUNkLENBQUM7RUFDRCx5RUFDQU0sS0FBSyxXQUFMQSxLQUFLQSxDQUFBLEVBQUc7SUFDTixJQUFJWCxRQUFRLENBQUNDLEVBQUUsSUFBSSxJQUFJLElBQUlELFFBQVEsQ0FBQ0UsSUFBSSxLQUFLLEVBQUUsRUFBRTtJQUNqREYsUUFBUSxHQUFHO01BQUVDLEVBQUUsRUFBRSxJQUFJO01BQUVDLElBQUksRUFBRTtJQUFHLENBQUM7SUFDakNHLFVBQVUsQ0FBQyxDQUFDO0VBQ2QsQ0FBQztFQUNELHFDQUNBTyxTQUFTLFdBQVRBLFNBQVNBLENBQUNMLFFBQW9CLEVBQUU7SUFDOUJKLFNBQVMsQ0FBQ1UsR0FBRyxDQUFDTixRQUFRLENBQUM7SUFDdkIsT0FBTyxZQUFNO01BQ1hKLFNBQVMsVUFBTyxDQUFDSSxRQUFRLENBQUM7SUFDNUIsQ0FBQztFQUNILENBQUM7RUFDRCxrRUFDQU8sV0FBVyxXQUFYQSxXQUFXQSxDQUFBLEVBQXNCO0lBQy9CLE9BQU9kLFFBQVE7RUFDakIsQ0FBQztFQUNELDRDQUNBZSxpQkFBaUIsV0FBakJBLGlCQUFpQkEsQ0FBQSxFQUFzQjtJQUNyQyxPQUFPO01BQUVkLEVBQUUsRUFBRSxJQUFJO01BQUVDLElBQUksRUFBRTtJQUFHLENBQUM7RUFDL0I7QUFDRixDQUFDIiwiaWdub3JlTGlzdCI6W119
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { useSyncExternalStore } from 'react';
|
|
2
|
+
import { streamingStore } from './streamingStore';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Devuelve el texto actual del mensaje en streaming si el `id` coincide con
|
|
6
|
+
* el mensaje activo. Si no hay streaming activo o el id no coincide, devuelve
|
|
7
|
+
* una cadena vacía. Esto permite que solo el componente del mensaje en
|
|
8
|
+
* streaming se re-renderice, sin afectar al resto del árbol.
|
|
9
|
+
*/
|
|
10
|
+
export var useStreamingMessage = function useStreamingMessage(messageId) {
|
|
11
|
+
var snapshot = useSyncExternalStore(streamingStore.subscribe, streamingStore.getSnapshot, streamingStore.getServerSnapshot);
|
|
12
|
+
if (!messageId) return '';
|
|
13
|
+
if (snapshot.id !== messageId) return '';
|
|
14
|
+
return snapshot.text;
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
/** Devuelve el id del mensaje que está actualmente en streaming (o null). */
|
|
18
|
+
export var useStreamingMessageId = function useStreamingMessageId() {
|
|
19
|
+
var snapshot = useSyncExternalStore(streamingStore.subscribe, streamingStore.getSnapshot, streamingStore.getServerSnapshot);
|
|
20
|
+
return snapshot.id;
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VTeW5jRXh0ZXJuYWxTdG9yZSIsInN0cmVhbWluZ1N0b3JlIiwidXNlU3RyZWFtaW5nTWVzc2FnZSIsIm1lc3NhZ2VJZCIsInNuYXBzaG90Iiwic3Vic2NyaWJlIiwiZ2V0U25hcHNob3QiLCJnZXRTZXJ2ZXJTbmFwc2hvdCIsImlkIiwidGV4dCIsInVzZVN0cmVhbWluZ01lc3NhZ2VJZCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ob29rcy91c2VTdHJlYW1pbmdNZXNzYWdlL3VzZVN0cmVhbWluZ01lc3NhZ2UudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdXNlU3luY0V4dGVybmFsU3RvcmUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IHN0cmVhbWluZ1N0b3JlIH0gZnJvbSAnLi9zdHJlYW1pbmdTdG9yZSdcblxuLyoqXG4gKiBEZXZ1ZWx2ZSBlbCB0ZXh0byBhY3R1YWwgZGVsIG1lbnNhamUgZW4gc3RyZWFtaW5nIHNpIGVsIGBpZGAgY29pbmNpZGUgY29uXG4gKiBlbCBtZW5zYWplIGFjdGl2by4gU2kgbm8gaGF5IHN0cmVhbWluZyBhY3Rpdm8gbyBlbCBpZCBubyBjb2luY2lkZSwgZGV2dWVsdmVcbiAqIHVuYSBjYWRlbmEgdmFjw61hLiBFc3RvIHBlcm1pdGUgcXVlIHNvbG8gZWwgY29tcG9uZW50ZSBkZWwgbWVuc2FqZSBlblxuICogc3RyZWFtaW5nIHNlIHJlLXJlbmRlcmljZSwgc2luIGFmZWN0YXIgYWwgcmVzdG8gZGVsIMOhcmJvbC5cbiAqL1xuZXhwb3J0IGNvbnN0IHVzZVN0cmVhbWluZ01lc3NhZ2UgPSAobWVzc2FnZUlkOiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkKTogc3RyaW5nID0+IHtcbiAgY29uc3Qgc25hcHNob3QgPSB1c2VTeW5jRXh0ZXJuYWxTdG9yZShcbiAgICBzdHJlYW1pbmdTdG9yZS5zdWJzY3JpYmUsXG4gICAgc3RyZWFtaW5nU3RvcmUuZ2V0U25hcHNob3QsXG4gICAgc3RyZWFtaW5nU3RvcmUuZ2V0U2VydmVyU25hcHNob3RcbiAgKVxuICBpZiAoIW1lc3NhZ2VJZCkgcmV0dXJuICcnXG4gIGlmIChzbmFwc2hvdC5pZCAhPT0gbWVzc2FnZUlkKSByZXR1cm4gJydcbiAgcmV0dXJuIHNuYXBzaG90LnRleHRcbn1cblxuLyoqIERldnVlbHZlIGVsIGlkIGRlbCBtZW5zYWplIHF1ZSBlc3TDoSBhY3R1YWxtZW50ZSBlbiBzdHJlYW1pbmcgKG8gbnVsbCkuICovXG5leHBvcnQgY29uc3QgdXNlU3RyZWFtaW5nTWVzc2FnZUlkID0gKCk6IHN0cmluZyB8IG51bGwgPT4ge1xuICBjb25zdCBzbmFwc2hvdCA9IHVzZVN5bmNFeHRlcm5hbFN0b3JlKFxuICAgIHN0cmVhbWluZ1N0b3JlLnN1YnNjcmliZSxcbiAgICBzdHJlYW1pbmdTdG9yZS5nZXRTbmFwc2hvdCxcbiAgICBzdHJlYW1pbmdTdG9yZS5nZXRTZXJ2ZXJTbmFwc2hvdFxuICApXG4gIHJldHVybiBzbmFwc2hvdC5pZFxufVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxvQkFBb0IsUUFBUSxPQUFPO0FBQzVDLFNBQVNDLGNBQWMsUUFBUSxrQkFBa0I7O0FBRWpEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU8sSUFBTUMsbUJBQW1CLEdBQUcsU0FBdEJBLG1CQUFtQkEsQ0FBSUMsU0FBb0MsRUFBYTtFQUNuRixJQUFNQyxRQUFRLEdBQUdKLG9CQUFvQixDQUNuQ0MsY0FBYyxDQUFDSSxTQUFTLEVBQ3hCSixjQUFjLENBQUNLLFdBQVcsRUFDMUJMLGNBQWMsQ0FBQ00saUJBQ2pCLENBQUM7RUFDRCxJQUFJLENBQUNKLFNBQVMsRUFBRSxPQUFPLEVBQUU7RUFDekIsSUFBSUMsUUFBUSxDQUFDSSxFQUFFLEtBQUtMLFNBQVMsRUFBRSxPQUFPLEVBQUU7RUFDeEMsT0FBT0MsUUFBUSxDQUFDSyxJQUFJO0FBQ3RCLENBQUM7O0FBRUQ7QUFDQSxPQUFPLElBQU1DLHFCQUFxQixHQUFHLFNBQXhCQSxxQkFBcUJBLENBQUEsRUFBd0I7RUFDeEQsSUFBTU4sUUFBUSxHQUFHSixvQkFBb0IsQ0FDbkNDLGNBQWMsQ0FBQ0ksU0FBUyxFQUN4QkosY0FBYyxDQUFDSyxXQUFXLEVBQzFCTCxjQUFjLENBQUNNLGlCQUNqQixDQUFDO0VBQ0QsT0FBT0gsUUFBUSxDQUFDSSxFQUFFO0FBQ3BCLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
|
package/lib/lang/br/index.js
CHANGED
|
@@ -346,6 +346,10 @@ export default _defineProperty(_defineProperty(_defineProperty(_defineProperty(_
|
|
|
346
346
|
legendProviderStatus: 'O modelo usado por este agente está enfrentando problemas temporários. Você pode aguardar a recuperação ou trocar para outro modelo.',
|
|
347
347
|
changeModel: 'Trocar modelo',
|
|
348
348
|
agents: 'Agentes',
|
|
349
|
+
layoutMenuTooltip: 'Layout do chat',
|
|
350
|
+
layoutSidebar: 'Chat paralelo',
|
|
351
|
+
layoutFullscreen: 'Chat completo',
|
|
352
|
+
layoutFloating: 'Chat flutuante',
|
|
349
353
|
addAgent: 'Adicionar novo agente',
|
|
350
354
|
newAgent: 'Novo agente',
|
|
351
355
|
createAgent: 'Criar Agente',
|
|
@@ -515,4 +519,4 @@ export default _defineProperty(_defineProperty(_defineProperty(_defineProperty(_
|
|
|
515
519
|
projects: 'projetos'
|
|
516
520
|
}
|
|
517
521
|
}));
|
|
518
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTRUNUSU9OUyIsIlByb2plY3RTdW1tYXJ5Q29uZmlnS2V5cyIsImdsb2JhbHMiLCJjbG9zZSIsImhvd1dvcmtzIiwiYnJhbmROYW1lIiwiZXhwYW5kIiwiY29sbGFwc2UiLCJnb0JhY2siLCJjb3B5IiwiY29waWVkIiwic2F2ZWQiLCJzZWxlY3RQcm9qZWN0Iiwic2F2ZSIsImNhbmNlbCIsImVycm9yIiwidGl0bGUiLCJkZXNjcmlwdGlvbiIsInRyeUFnYWluIiwiZ2VuZXJpY1NlY3Rpb24iLCJwcm9qZWN0U3VtbWFyeVNlY3Rpb24iLCJyZXN1bWUiLCJoZWxsbyIsIndlbGNvbWUiLCJmZWVkYmFjayIsInRodW1ic1VwIiwidGh1bWJzRG93biIsInNvdXJjZXMiLCJjb25maWciLCJwcm9qZWN0U3VtbWFyeSIsInByb2plY3RTdW1tYXJ5VGl0bGUiLCJzZWxlY3RlZFByb2plY3QiLCJjb25maWd1cmVSZXN1bWUiLCJnZW5lcmF0aW5nUmVzdW1lIiwiZ2VuZXJhdGVSZXN1bWUiLCJoaWRlQ29uZmlnIiwiY29uZmlndXJlU2V0dGluZ3MiLCJfZGVmaW5lUHJvcGVydHkiLCJHRU5FUkFMX1NUQVRVUyIsIklOQ09NRV9DT1NUUyIsIlRJTUVfSE9VUlMiLCJUQVNLU19QUk9HUkVTUyIsIlJFV09SS1MiLCJob21lTWVudSIsImZhcSIsImVtcHR5IiwiY2F0ZWdvcmllcyIsInByb2plY3RzIiwidGFza3MiLCJob3VycyIsInJld29ya3MiLCJ1bmRlZmluZWQiLCJjcmVhdGVkQnkiLCJjcmVhdGVkQnlUb29sdGlwIiwiY3JlYXRlZEJ5VG9vbHRpcERlbGV0ZWQiLCJ0aXRsZV8xIiwidGl0bGVfMiIsInRpdGxlXzMiLCJzdWJ0aXRsZSIsInRpdGxlUG0iLCJzdWJ0aXRsZVBtIiwibWFpYWtlciIsImNyZWF0ZU1hbnVhbEFnZW50IiwiYmFkZ2VOZXciLCJicmllZkNhcmQiLCJwcm9tcHQiLCJjb21pbmdTb29uQ2FyZCIsIl9vYmplY3RTcHJlYWQiLCJjaGF0QUkiLCJidXR0b24iLCJuZXdDaGF0Iiwib3BlbkFnZW50Q3JlYXRvciIsIm9wZW5NYXJrZXRwbGFjZSIsImhpc3RvcnkiLCJ0b29sdGlwIiwiaXRlbSIsImRhdGUiLCJtZW51IiwicmVuYW1lIiwibG9hZGluZ01vcmUiLCJvbmJvYXJkaW5nIiwibWFpYSIsImFnZW50Q3VzdG9tIiwiaG93Q3JlYXRlQWdlbnQiLCJob3dJdFdvcmtzIiwicWEiLCJpdGVtcyIsInJlbnRhYmlsaWRhZF9wcm95ZWN0byIsImF2YW5jZV9wcm95ZWN0byIsInRhcmVhc19wcm95ZWN0byIsImNoYXQiLCJnZW5lcmF0aW5nIiwiZ2VuZXJhdGluZ0F0dGFjaG1lbnQiLCJnZW5lcmF0aW5nRGVlcFNlYXJjaCIsImdlbmVyYXRpbmdXZWJTZWFyY2giLCJzdWdnZXN0aW9uc1RpdGxlIiwiY3JlYXRlQWdlbnRBY3Rpb25zVGl0bGUiLCJjcmVhdGVBZ2VudEFjdGlvblN0YXJ0Q2hhdCIsImNyZWF0ZUFnZW50QWN0aW9uS25vd2xlZGdlIiwiY3JlYXRlQWdlbnRBY3Rpb25Mb2FkRXJyb3IiLCJ3cml0aW5nIiwiZXhlY3V0aW5nQWN0aW9uIiwicHJvY2Vzc2luZyIsImZvb3RlciIsInBsYWNlaG9sZGVyIiwiYWdlbnRMYWJlbCIsImRpc2NsYWltZXIiLCJkaXNjbGFpbWVyQWdlbnQiLCJlcnJvckFjY2Vzc0RlbmllZCIsImNoYW5nZVByb2plY3QiLCJzZWFyY2hXZWIiLCJkZWVwU2VhcmNoIiwiYXR0YWNoRmlsZSIsInNlbmQiLCJsaW1pdEZpbGVzIiwic3RvcCIsImNhbmNlbGxlZCIsImF0dGFjaG1lbnRQcmV2aWV3TW9kYWwiLCJsb2FkaW5nIiwidW5zdXBwb3J0ZWRGaWxlTWVzc2FnZSIsInR5cGVMYWJlbCIsInVua25vd24iLCJzaXplTGFiZWwiLCJleGNlbCIsInNoZWV0U2VsZWN0b3JMYWJlbCIsImxvYWRFcnJvciIsImZpbGVSZWFkRXJyb3IiLCJzaGVldExvYWRFcnJvciIsImRlbGV0ZVF1ZXN0aW9uTW9kYWwiLCJmaXJzdFBhcnQiLCJzZWNvbmRQYXJ0IiwiZWRpdFF1ZXN0aW9uTW9kYWwiLCJuZXdOYW1lIiwibWF4TGVuZ3RoIiwibW9kYWxGaWxlRXhjZWVkcyIsImxpbWl0RmlsZXNUaXRsZSIsImxpbWl0U2l6ZVRpdGxlIiwibGltaXRGaWxlc0Rlc2NyaXB0aW9uIiwibGltaXRTaXplRGVzY3JpcHRpb24iLCJhY2NlcHQiLCJsaW1pdCIsInNvdXJjZXNJbmZvcm1hdGlvbk1vZGFsIiwiYWdlbnRzIiwibmV3QWdlbnQiLCJjcmVhdGVBZ2VudCIsImVkaXQiLCJhZGRGYXZvcml0ZSIsInJlbW92ZUZhdm9yaXRlIiwiZmF2b3JpdGVUb2dnbGVkQWRkZWRTdWNjZXNzIiwiZmF2b3JpdGVUb2dnbGVkUmVtb3ZlZFN1Y2Nlc3MiLCJmYXZvcml0ZVRvZ2dsZWRFcnJvciIsImZhdm9yaXRlVG9nZ2xlZFJlbW92ZWRFcnJvciIsIm1haWFJbnRyb2R1Y3Rpb24iLCJjb252ZXJzYXRpb25zIiwiYWdlbnRzU2VjdGlvblRpdGxlIiwibWFpYWtlck5hdiIsIm15QWdlbnRzTmF2IiwiZW1wdHlMYWJlbCIsIm1hcmtldHBsYWNlIiwiYmFjayIsIm15QWdlbnRzVGl0bGUiLCJteUFnZW50c1JlYWR5VGl0bGUiLCJteUFnZW50c0Rlc2NyaXB0aW9uIiwibXlBZ2VudHNFbXB0eVN0YXRlVGl0bGUiLCJteUFnZW50c0VtcHR5U3RhdGVEZXNjcmlwdGlvbiIsIm15QWdlbnRzRW1wdHlTdGF0ZURlc2NyaXB0aW9uTm9QZXJtIiwibXlBZ2VudHNFbXB0eVN0YXRlQnV0dG9uIiwibXlBZ2VudHNGYWxsYmFja0ludHJvIiwibXlBZ2VudHNGYWxsYmFja0Rlc2NyaXB0aW9uIiwibXlBZ2VudHNGYWxsYmFja0RhdGUiLCJteUFnZW50c1RvZGF5IiwibXlBZ2VudHNPbmVEYXlBZ28iLCJteUFnZW50c0RheXNBZ28iLCJjYXJkTWVudUFyaWFMYWJlbCIsInVzZSIsInVzZVRlbXBsYXRlIiwidXNlTXlBZ2VudCIsImJhZGdlcyIsImJyYW5kaW5nIiwibGlua2VkaW4iLCJtYXJrZXRpbmciLCJzbmFja2JhciIsImRlbGV0ZUNoYXQiLCJzdWNjZXNzIiwicmVuYW1lZENoYXQiLCJsb2FkTW9yZUFnZW50cyIsImFwcHJvdmFsQm94IiwidW50aXRsZWRBZ2VudCIsImFjdGlvbnMiLCJjcmVhdGVfdGFzayIsImNyZWF0ZV90YXNrc19iYXRjaCIsImNyZWF0ZV9hZ2VudCIsImVkaXRfYWdlbnQiLCJlZGl0X3Rhc2siLCJlZGl0X3Rhc2tzX2JhdGNoIiwiZGVsZXRlX3Rhc2siLCJkZWxldGVfdGFza3NfYmF0Y2giLCJ0YXNrX2Fzc2lnbiIsInRhc2tfdW5hc3NpZ24iLCJhc3NpZ25fdGFza19sYWJlbCIsInVwZGF0ZV90YXNrX3R5cGUiLCJ1cGRhdGVfZXN0aW1hdGVkX2hvdXJzIiwidXBkYXRlX2RlbGl2ZXJhYmxlIiwiY3JlYXRlX2hvdXIiLCJjcmVhdGVfY2hlY2tsaXN0IiwiY2xvbmVfdGFzayIsImdldF90YXNrX2RhdGVfaG91cnMiLCJjb25maWd1cmVfYWdlbnRfYWNjZXNzIiwic2VuZF90YXNrX21lc3NhZ2UiLCJkZWxldGVfY2hlY2tsaXN0X2l0ZW0iLCJyZW1vdmVfdGFza190eXBlIiwicmVtb3ZlX3Rhc2tfbGFiZWwiLCJjb3VudF9kZWxpdmVyYWJsZSIsImNyZWF0ZV9yZXdvcmsiLCJ1cGRhdGVfcmV3b3JrIiwiZGVsZXRlX2FnZW50Iiwic3BlY2lhbCIsImNyZWF0ZVJld29yayIsInVwZGF0ZURlbGl2ZXJhYmxlQ2hpbGRyZW4iLCJmaWVsZHMiLCJuYW1lIiwiZW1vamkiLCJpbnRyb2R1Y3Rpb24iLCJpbnB1dF9wbGFjZWhvbGRlciIsInVzZXJfcHJvbXB0IiwibGFuZ3VhZ2UiLCJwcm92aWRlciIsIm1vZGVsX25hbWUiLCJhcGlfa2V5IiwiYXBwcm92ZSIsImRlbnkiLCJtYW51YWxBcHByb3ZhbFdhcm5pbmciLCJzdGF0dXMiLCJhcHByb3ZlZCIsImRlbmllZCIsImNoaXBMbG0iLCJjbGllbnRTZWxlY3RvciIsInByb2plY3QiLCJhYm1BZ2VudCIsImxlZ2VuZERlbGV0ZWRBZ2VudCIsImxlZ2VuZFByb2plY3REZWxldGVkIiwibGVnZW5kTm9BY2Nlc3MiLCJsZWdlbmROb1Blcm1pc3Npb25zIiwibGVnZW5kTW9kZWxEZXByZWNhdGVkIiwibGVnZW5kUHJvdmlkZXJTdGF0dXMiLCJjaGFuZ2VNb2RlbCIsImFkZEFnZW50IiwiZWRpdEFnZW50IiwiZGVsZXRlQWdlbnQiLCJzZW5kRmVlZGJhY2siLCJzYXZlQ2hhbmdlcyIsImNyZWF0ZUFnZW50TGFiZWxCdXR0b24iLCJjb25maXJtQWdlbnRDcmVhdGVkIiwiY29uZmlybUFnZW50VXBkYXRlZFdpdGhGaWxlc0Vycm9yIiwiY29uZmlybUFnZW50V2l0aEZpbGVzRXJyb3IiLCJjb25maXJtQWdlbnREZWxldGVkIiwiY29uZmlybUFnZW50VXBkYXRlZCIsImNvbmZpcm1DbG9zZUNyZWF0ZUFnZW50IiwiY29uZmlybUNsb3NlRWRpdEFnZW50IiwiY29uZmlybVJlbG9hZEJyb3dzZXIiLCJlcnJvckFnZW50Q3JlYXRlZCIsImF0dGFjaG1lbnRDYXJkIiwiZG93bmxvYWQiLCJnZW5lcmFsU2VjdGlvbiIsImdlbmVyYWxTZXR0aW5ncyIsInJlcXVpcmVkRmllbGRzTGFiZWwiLCJpbmZvTGFiZWwiLCJvcHRpb25hbExhYmVsIiwiYmFzaWNTZXR0aW5ncyIsInNlbGVjdEVtb2ppIiwibmFtZVBsYWNlaG9sZGVyIiwiYmVoYXZpb3JTZXR0aW5ncyIsImluaXRpYWxQcm9tcHQiLCJpbml0aWFsUHJvbXB0UGxhY2Vob2xkZXIiLCJtb2RlbEFpTGFiZWwiLCJub01vZGVsc0F2YWlsYWJsZSIsImlucHV0UGxhY2Vob2xkZXJUaXRsZSIsImlucHV0UGxhY2Vob2xkZXIiLCJpbnRyb2R1Y3Rpb25QbGFjZWhvbGRlciIsIm1heENhcmFjdGVyTmFtZSIsIm1heENhcmFjdGVySW5pdGlhbFByb21wdCIsIm1heElucHV0UGxhY2Vob2xkZXIiLCJtYXhDYXJhY3RlckludHJvZHVjdGlvbiIsImhvd1RvV3JpdGVQcm9tcHQiLCJ3aGF0SXNNb2RlbEFpVGl0bGUiLCJ3aGF0SXNNb2RlbEFpIiwia25vd2xlZGdlU2VjdGlvbiIsImtub3dsZWRnZVRhYiIsInNlbGVjdEZpbGVUaXRsZSIsImF0dGFjaEZpbGVzIiwiZHJvcFpvbmVUZXh0IiwiaW5mb0ZpbGVUeXBlcyIsIm1heEZpbGVzVGl0bGUiLCJtYXhGaWxlc0Rlc2NyaXB0aW9uIiwibWF4U2l6ZVRpdGxlIiwibWF4U2l6ZURlc2NyaXB0aW9uIiwiaW52YWxpZEV4dGVuc2lvbkRlc2NyaXB0aW9uIiwibW9yZUluZm8iLCJhY2Nlc3NpYmlsaXR5U2VjdGlvbiIsInRpdGxlVGFiIiwidGl0bGVTZWN0aW9uIiwic3VidGl0bGVTZWN0aW9uIiwid2hvQ2FuQWNjZXNzIiwiYWxsQ29tcGFueVRpdGxlIiwiYWxsQ29tcGFueURlc2NyaXB0aW9uIiwiY2xpZW50VGl0bGUiLCJjbGllbnREZXNjcmlwdGlvbiIsIm93blRpdGxlIiwib3duRGVzY3JpcHRpb24iLCJjbGllbnRzU2VsZWN0ZWQiLCJzZWFyY2hFcnJvciIsInNlYXJjaEVtcHR5Iiwic2VhcmNoSW5pdGlhbCIsInNlYXJjaFBsYWNlaG9sZGVyIiwiY2xpZW50SW5hY3RpdmUiLCJjbGllbnREZWxldGVkVG9vbHRpcCIsImNsaWVudERlbGV0ZWQiLCJjbGllbnRzRXJyb3IiLCJwcm9jZXNzaW5nS25vd2xlZGdlIiwiZGVzY3JpcHRpb25DcmVhdGUiLCJkZXNjcmlwdGlvblVwZGF0ZSIsImZpbGVSb3ciLCJzdGF0dXNSb3ciLCJwZW5kaW5nIiwiZmFpbGVkIiwiZG9uZSIsImxvYWRpbmdGaWxlcyIsImRlbGV0ZUFnZW50TW9kYWwiLCJwcm9qZWN0U2VsZWN0b3IiLCJsYWJlbFByb2plY3QiLCJyZWNlbnRQcm9qZWN0cyIsInNlYXJjaGluZ1Byb2plY3RzIiwiZXJyb3JNZXNzYWdlIiwiZW1wdHlSZWNlbnRQcm9qZWN0cyIsImVtcHR5U3RhdGUiLCJ3aXRob3V0Q2xpZW50Iiwid2l0aG91dFRpdGxlIiwibGFiZWxDbGllbnQiLCJjaGFuZ2VDbGllbnQiLCJyZWNlbnRDbGllbnRzIiwic2VhcmNoaW5nQ2xpZW50cyIsImVtcHR5UmVjZW50Q2xpZW50cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9sYW5nL2JyL2luZGV4LmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNFQ1RJT05TIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL2NvbmZpZydcbmltcG9ydCB7IFByb2plY3RTdW1tYXJ5Q29uZmlnS2V5cyB9IGZyb20gJy4uLy4uL3R5cGVzL1Byb2plY3RTdW1tYXJ5Q29uZmlnS2V5cydcblxuY29uc3QgZ2xvYmFscyA9IHtcbiAgY2xvc2U6ICdGZWNoYXInLFxuICBob3dXb3JrczogJ0NvbW8gZnVuY2lvbmE/JyxcbiAgYnJhbmROYW1lOiAnTUFJQScsXG4gIGV4cGFuZDogJ0V4cGFuZGlyJyxcbiAgY29sbGFwc2U6ICdSZWNvbGhlcicsXG4gIGdvQmFjazogJ1ZvbHRhciBhbyBpbsOtY2lvJyxcbiAgY29weTogJ0NvcGlhcicsXG4gIGNvcGllZDogJ0NvcGlhZG8nLFxuICBzYXZlZDogJ1NhbHZvJyxcbiAgc2VsZWN0UHJvamVjdDogJ1NlbGVjaW9uYXIgcHJvamV0bycsXG4gIHNhdmU6ICdTYWx2YXInLFxuICBjYW5jZWw6ICdDYW5jZWxhcicsXG59XG5cbmNvbnN0IGVycm9yID0ge1xuICB0aXRsZTogJ09jb3JyZXUgdW0gcHJvYmxlbWEnLFxuICBkZXNjcmlwdGlvbjogJ05vIG1vbWVudG8sIGVzdGFtb3MgZW5mcmVudGFuZG8gYWxndW5zIHByb2JsZW1hcywgcG9yIGZhdm9yLCB0ZW50ZSBub3ZhbWVudGUgZW0gYWxndW5zIG1pbnV0b3MuJyxcbiAgdHJ5QWdhaW46ICdUZW50YXIgbm92YW1lbnRlJyxcbn1cblxuY29uc3QgZ2VuZXJpY1NlY3Rpb24gPSB7XG4gIGVycm9yLFxuICBnbG9iYWxzLFxufVxuXG5jb25zdCBwcm9qZWN0U3VtbWFyeVNlY3Rpb24gPSB7XG4gIHJlc3VtZTogJ1Jlc3VtaXInLFxuICBoZWxsbzogJ09sw6EsIHt7bmFtZX19IScsXG4gIHdlbGNvbWU6ICdTb3UgYSBNQUlBLCBzdWEgYXNzaXN0ZW50ZSBuYSBDT1InLFxuXG4gIGZlZWRiYWNrOiB7XG4gICAgdGh1bWJzVXA6ICdGb2kgw7p0aWwgcGFyYSBtaW0nLFxuICAgIHRodW1ic0Rvd246ICdOw6NvIGZvaSDDunRpbCBwYXJhIG1pbScsXG4gICAgc291cmNlczogJ0Z1ZW50ZXMnLFxuICB9LFxuXG4gIGNvbmZpZzoge1xuICAgIHByb2plY3RTdW1tYXJ5OiAnUmVzdW1pciBwcm9qZXRvJyxcbiAgICBwcm9qZWN0U3VtbWFyeVRpdGxlOiAnUmVzdW1vIGRlIHByb2pldG9zJyxcbiAgICBnb0JhY2s6ICdWb2x0YXIgYW8gaW7DrWNpbycsXG4gICAgc2VsZWN0ZWRQcm9qZWN0OiAnUHJvamV0byBzZWxlY2lvbmFkbycsXG4gICAgc2VsZWN0UHJvamVjdDogJ1NlbGVjaW9uYXIgcHJvamV0bycsXG4gICAgY29uZmlndXJlUmVzdW1lOiAnQ29uZmlndXJhw6fDtWVzIGF2YW7Dp2FkYXMnLFxuICAgIGdlbmVyYXRpbmdSZXN1bWU6ICdHZXJhbmRvIHJlc3VtbycsXG4gICAgZ2VuZXJhdGVSZXN1bWU6ICdHZXJhcicsXG4gICAgaGlkZUNvbmZpZzogJ09jdWx0YXIgY29uZmlndXJhw6fDtWVzJyxcbiAgfSxcblxuICBjb25maWd1cmVTZXR0aW5nczoge1xuICAgIFtQcm9qZWN0U3VtbWFyeUNvbmZpZ0tleXMuR0VORVJBTF9TVEFUVVNdOiAnRGF0YXMgZSBwcmF6b3MnLFxuICAgIFtQcm9qZWN0U3VtbWFyeUNvbmZpZ0tleXMuSU5DT01FX0NPU1RTXTogJ1JlbnRhYmlsaWRhZGUnLFxuICAgIFtQcm9qZWN0U3VtbWFyeUNvbmZpZ0tleXMuVElNRV9IT1VSU106ICdFc3RpbWF0aXZhIGRlIGhvcmFzIGUgdXNvJyxcbiAgICBbUHJvamVjdFN1bW1hcnlDb25maWdLZXlzLlRBU0tTX1BST0dSRVNTXTogJ1RhcmVmYXMgZSBhdmFuw6dvcycsXG4gICAgW1Byb2plY3RTdW1tYXJ5Q29uZmlnS2V5cy5SRVdPUktTXTogJ1JldHJhYmFsaG8nLFxuICB9LFxufVxuXG5jb25zdCBob21lTWVudSA9IHtcbiAgcHJvamVjdFN1bW1hcnk6IHtcbiAgICB0aXRsZTogJ1Jlc3VtbyBkbyBwcm9qZXRvJyxcbiAgICBkZXNjcmlwdGlvbjogJ0VsYWJvcmUgcmVsYXTDs3Jpb3MgY29tIElBIGNvbSBiYXNlIG5vIHNldSBwcm9qZXRvJyxcbiAgfSxcbiAgZmFxOiB7XG4gICAgdGl0bGU6ICdQZXJndW50YXMgRnJlcXVlbnRlcycsXG4gICAgZW1wdHk6ICdOw6NvIGjDoSBwZXJndW50YXMgZnJlcXVlbnRlcycsXG4gICAgZXJyb3I6XG4gICAgICAnT3BzISBUaXZlbW9zIHVtIHByb2JsZW1hIGFvIGNhcnJlZ2FyIGFzIHBlcmd1bnRhcyBmcmVxdWVudGVzLiBQb3IgZmF2b3IsIHRlbnRlIG5vdmFtZW50ZSBlbSBhbGd1bnMgbWludXRvcy4nLFxuICAgIGNhdGVnb3JpZXM6IHtcbiAgICAgIHByb2plY3RzOiAnUHJvamV0bycsXG4gICAgICB0YXNrczogJ1RhcmVmYXMnLFxuICAgICAgaG91cnM6ICdIb3JhcycsXG4gICAgICByZXdvcmtzOiAnUmV0cmFiYWxob3MnLFxuICAgICAgdW5kZWZpbmVkOiAnU2VtIGNhdGVnb3JpYScsXG4gICAgfSxcbiAgfSxcbiAgY3JlYXRlZEJ5OiAncG9yJyxcbiAgY3JlYXRlZEJ5VG9vbHRpcDogJ1VzdcOhcmlvIGNyaWFkb3IgZG8gYWdlbnRlJyxcbiAgY3JlYXRlZEJ5VG9vbHRpcERlbGV0ZWQ6ICdVc3XDoXJpbyBleGNsdcOtZG8uIFNldSBub21lIMOpIG1hbnRpZG8gcGFyYSByZWZlcsOqbmNpYS4nLFxuICBoZWxsbzoge1xuICAgIHRpdGxlOiAnUHJvbnRvISBKw6EgZXN0b3UgdXNhbmRvIG8gcHJvamV0bycsXG4gICAgdGl0bGVfMTogJ0FudGVjaXBlIGRlc3Zpb3MuIFZhbW9zIGFuYWxpc2FyIGVzdGUgcHJvamV0by4nLFxuICAgIHRpdGxlXzI6ICdPIHF1ZSB2b2PDqiBxdWVyIHF1ZSBhbmFsaXNlbW9zPyBIb3JhcywgZXN0aW1hdGl2YXMsIHJldHJhYmFsaG9zPyBWb2PDqiBlc2NvbGhlIScsXG4gICAgdGl0bGVfMzogJ1ZhbW9zIHJldmlzYXIgbyBhbmRhbWVudG8gZGVzdGUgcHJvamV0by4nLFxuICAgIHN1YnRpdGxlOiAnUGFyYSBjb21lw6dhciwgcG9zc28gdGUgYWp1ZGFyIGNvbSBlc3NhcyBvcMOnw7Vlcy4gT3UsIHNlIHByZWZlcmlyLCBlc2NyZXZhIGRpcmV0YW1lbnRlIHN1YSBwZXJndW50YSEnLFxuICAgIHRpdGxlUG06ICdPbMOhLCB7e25hbWV9fSEgU291IHt7YWdlbnR9fSwgc3VhIGFzc2lzdGVudGUnLFxuICAgIHN1YnRpdGxlUG06ICdQYXJhIHRlIGRhciByZXNwb3N0YXMgcHJlY2lzYXMsIHByZWNpc28gc2FiZXIgc29icmUgcXVhbCBwcm9qZXRvIHZhbW9zIGNvbnZlcnNhci4gUXVhbCB2b2PDqiBlc2NvbGhlPycsXG4gIH0sXG4gIG1haWFrZXI6IHtcbiAgICB0aXRsZTogJ1RyYW5zZm9ybWUgcHJvY2Vzc29zIHJlcGV0aXRpdm9zIGVtIGFnZW50ZXMgaW50ZWxpZ2VudGVzJyxcbiAgICBkZXNjcmlwdGlvbjogJ0NyaWUgYWdlbnRlcyBxdWUgYW5hbGlzZW0gZSBnZXJlbSBjb250ZcO6ZG8gZGUgYWNvcmRvIGNvbSBhcyBzdWFzIG5lY2Vzc2lkYWRlcy4nLFxuICAgIGNyZWF0ZU1hbnVhbEFnZW50OiAnQ3JpYXIgYWdlbnRlIG1hbnVhbG1lbnRlJyxcbiAgICBiYWRnZU5ldzogJ05vdm8nLFxuICAgIGJyaWVmQ2FyZDoge1xuICAgICAgdGl0bGU6ICdBZ2VudGUgZXNwZWNpYWxpc3RhIGVtIGJyaWVmJyxcbiAgICAgIGRlc2NyaXB0aW9uOiAnQ3JpZSBlIG1lbGhvcmUgYnJpZWZzIHBhcmEgcXVlIGVzdGVqYW0gcHJvbnRvcyBwYXJhIHVzYXIgZW0gdGFyZWZhcy4nLFxuICAgICAgcHJvbXB0OiAnUXVlcm8gY3JpYXIgdW0gYWdlbnRlIGVzcGVjaWFsaXN0YSBlbSBicmllZi4nLFxuICAgIH0sXG4gICAgY29taW5nU29vbkNhcmQ6IHtcbiAgICAgIHRpdGxlOiAnRW0gYnJldmUsIG1haXMgbm92aWRhZGVzJyxcbiAgICAgIGRlc2NyaXB0aW9uOiAnRXN0YW1vcyB0cmFiYWxoYW5kbyBwYXJhIG9mZXJlY2VyIG1haXMgYWdlbnRlcycsXG4gICAgfSxcbiAgfSxcbn1cblxuZXhwb3J0IGRlZmF1bHQge1xuICBbU0VDVElPTlMucHJvamVjdFN1bW1hcnldOiB7XG4gICAgLi4uZ2VuZXJpY1NlY3Rpb24sXG4gICAgLi4ucHJvamVjdFN1bW1hcnlTZWN0aW9uLFxuICB9LFxuICBbU0VDVElPTlMuY2hhdEFJXToge1xuICAgIC4uLmdlbmVyaWNTZWN0aW9uLFxuICAgIC4uLnByb2plY3RTdW1tYXJ5U2VjdGlvbixcbiAgICBob21lTWVudSxcblxuICAgIGJ1dHRvbjogJ0lBJyxcbiAgICB0aXRsZTogJ09sw6EsIHt7bmFtZX19IScsXG4gICAgbmV3Q2hhdDogJ05vdm8gY2hhdCcsXG4gICAgZGVzY3JpcHRpb246ICdTb3UgYSBNQUlBLCBzdWEgYXNzaXN0ZW50ZSwgZSBlc3RvdSBhcXVpIHBhcmEgdGUgYWp1ZGFyIGNvbSBhcyBzdWFzIGTDunZpZGFzLicsXG4gICAgb3BlbkFnZW50Q3JlYXRvcjogJ0NyaWFyIGFnZW50ZScsXG4gICAgb3Blbk1hcmtldHBsYWNlOiAnTWFya2V0cGxhY2UgZGUgYWdlbnRlcycsXG4gICAgaGlzdG9yeToge1xuICAgICAgdG9vbHRpcDogJ0hpc3TDs3JpY28nLFxuICAgICAgdGl0bGU6ICdIaXN0w7NyaWNvIHZhemlvJyxcbiAgICAgIGRlc2NyaXB0aW9uOiAnTmVuaHVtYSBjb252ZXJzYSBlbmNvbnRyYWRhJyxcbiAgICAgIGl0ZW06IHtcbiAgICAgICAgZGF0ZTogJ8OabHRpbWEgYXR1YWxpemHDp8OjbyB7e2RhdGV9fScsXG4gICAgICB9LFxuICAgICAgbWVudToge1xuICAgICAgICByZW5hbWU6ICdSZW5vbWVhcicsXG4gICAgICAgIGRlbGV0ZTogJ0V4Y2x1aXInLFxuICAgICAgfSxcbiAgICAgIGxvYWRpbmdNb3JlOiAnQ2FycmVnYW5kbyBtYWlzIGNvbnZlcnNhcycsXG4gICAgfSxcbiAgICBvbmJvYXJkaW5nOiB7XG4gICAgICBtYWlhOiAnTUFJQScsXG4gICAgICBhZ2VudEN1c3RvbTogJ0FnZW50ZXMgY3VzdG9tJyxcbiAgICAgIGhvd0NyZWF0ZUFnZW50OiAnQ29tbyBjcmlhciB1bSBhZ2VudGU/JyxcbiAgICAgIHRvb2x0aXA6ICdDb21vIGZ1bmNpb25hPycsXG4gICAgICBob3dJdFdvcmtzOiAnQ29tbyBmdW5jaW9uYT8nLFxuICAgIH0sXG4gICAgcWE6IHtcbiAgICAgIHRpdGxlOiAnUGVyZ3VudGFzIEZyZXF1ZW50ZXMnLFxuICAgICAgaXRlbXM6IHtcbiAgICAgICAgcmVudGFiaWxpZGFkX3Byb3llY3RvOiAnUXVhbCDDqSBhIHJlbnRhYmlsaWRhZGUgZGVzdGUgcHJvamV0bz8nLFxuICAgICAgICBhdmFuY2VfcHJveWVjdG86ICdRdWFpcyBzw6NvIG9zIGF2YW7Dp29zIGRlc3RlIHByb2pldG8/JyxcbiAgICAgICAgdGFyZWFzX3Byb3llY3RvOiAnUXVhaXMgc8OjbyBhcyBwcsOzeGltYXMgdGFyZWZhcyBhIHZlbmNlcj8nLFxuICAgICAgfSxcbiAgICB9LFxuICAgIGNoYXQ6IHtcbiAgICAgIGdlbmVyYXRpbmc6ICdQZW5zYW5kbycsXG4gICAgICBnZW5lcmF0aW5nQXR0YWNobWVudDogJ0FuYWxpc2FuZG8gYWRqdW50bycsXG4gICAgICBnZW5lcmF0aW5nRGVlcFNlYXJjaDogJ0luaWNpYW5kbyBhIHBlc3F1aXNhJyxcbiAgICAgIGdlbmVyYXRpbmdXZWJTZWFyY2g6ICdQZXNxdWlzYW5kbyBuYSB3ZWInLFxuICAgICAgc3VnZ2VzdGlvbnNUaXRsZTogJ1Jlc3Bvc3RhcyBzdWdlcmlkYXMnLFxuICAgICAgY3JlYXRlQWdlbnRBY3Rpb25zVGl0bGU6ICdQcsOzeGltbyBwYXNzbycsXG4gICAgICBjcmVhdGVBZ2VudEFjdGlvblN0YXJ0Q2hhdDogJ0luaWNpYXIgY29udmVyc2EgY29tIG8gbm92byBhZ2VudGUnLFxuICAgICAgY3JlYXRlQWdlbnRBY3Rpb25Lbm93bGVkZ2U6ICdFbnZpYXIgYXJxdWl2b3MgcGFyYSBhIGJhc2UgZGUgY29uaGVjaW1lbnRvJyxcbiAgICAgIGNyZWF0ZUFnZW50QWN0aW9uTG9hZEVycm9yOiAnTsOjbyBmb2kgcG9zc8OtdmVsIGNhcnJlZ2FyIG8gYWdlbnRlLiBUZW50ZSBub3ZhbWVudGUuJyxcbiAgICAgIHdyaXRpbmc6ICdFc2NyZXZlbmRvJyxcbiAgICAgIGV4ZWN1dGluZ0FjdGlvbjogJ0V4ZWN1dGFuZG8gYcOnw6NvJyxcbiAgICAgIHByb2Nlc3Npbmc6ICdQcm9jZXNzYW5kbycsXG4gICAgICBsb2FkaW5nTW9yZTogJ0NhcnJlZ2FuZG8gbWFpcyBtZW5zYWdlbnMnLFxuICAgICAgZm9vdGVyOiB7XG4gICAgICAgIHBsYWNlaG9sZGVyOiAnRXNjcmV2YSBzdWEgcGVyZ3VudGEgYXF1aeKApicsXG4gICAgICAgIGFnZW50TGFiZWw6ICdPIEFnZW50ZScsXG4gICAgICAgIGRpc2NsYWltZXI6ICd7e2FnZW50TmFtZX19IHBvZGUgY29tZXRlciBlcnJvcy4gVmVyaWZpcXVlIGFzIGluZm9ybWHDp8O1ZXMgaW1wb3J0YW50ZXMuJyxcbiAgICAgICAgZGlzY2xhaW1lckFnZW50OiAnTW9kZWxvcyBkZSBJQSBwb2RlbSBjb21ldGVyIGVycm9zLiBWZXJpZmlxdWUgYXMgaW5mb3JtYcOnw7VlcyBpbXBvcnRhbnRlcy4nLFxuICAgICAgfSxcbiAgICAgIGVycm9yOiAnT2NvcnJldSB1bSBlcnJvIGFvIGdlcmFyIHN1YSByZXNwb3N0YSwgcG9yIGZhdm9yLCB0ZW50ZSBub3ZhbWVudGUuJyxcbiAgICAgIGVycm9yQWNjZXNzRGVuaWVkOlxuICAgICAgICAnVm9jw6ogbsOjbyB0ZW0gYWNlc3NvIHBhcmEgaW50ZXJhZ2lyIGNvbSBlc3RlIGFnZW50ZS4gw4kgcG9zc8OtdmVsIHF1ZSBzdWFzIGNvbmZpZ3VyYcOnw7VlcyBkZSBhY2Vzc2liaWxpZGFkZSB0ZW5oYW0gbXVkYWRvLiBQb3IgZmF2b3IsIGNvbnRhdGUgYSBwZXNzb2EgbmEgc3VhIG9yZ2FuaXphw6fDo28gcXVlIGdlcmVuY2lhIGFnZW50ZXMgcGFyYSBvYnRlciBtYWlzIGluZm9ybWHDp8O1ZXMuJyxcbiAgICAgIGNoYW5nZVByb2plY3Q6ICdEZXRlY3RlaSBxdWUgdm9jw6ogcXVlciBtdWRhciBkZSBQcm9qZXRvLlxcblxcbioqU2VsZWNpb25lIG8gcHJvamV0byBwYXJhIGNvbnRpbnVhcjoqKicsXG4gICAgICBzZWFyY2hXZWI6ICdQZXNxdWlzYXIgbmEgd2ViJyxcbiAgICAgIGRlZXBTZWFyY2g6ICdCdXNjYSBhdmFuw6dhZGEgbmEgaW50ZXJuZXQgKGFjZXNzbyBhIG1haXMgZm9udGVzKScsXG4gICAgICBhdHRhY2hGaWxlOiAnQW5leGFyIGFycXVpdm8nLFxuICAgICAgc2VuZDogJ0VudmlhcicsXG4gICAgICBsaW1pdEZpbGVzOiAnVm9jw6ogZXhjZWRldSBvIGxpbWl0ZSBkZSBhbmV4b3MnLFxuICAgICAgc3RvcDogJ0NhbmNlbGFyIHBlc3F1aXNhJyxcbiAgICAgIGNhbmNlbGxlZDogJ0EgcGVzcXVpc2EgZm9pIGNhbmNlbGFkYS4nLFxuICAgICAgYXR0YWNobWVudFByZXZpZXdNb2RhbDoge1xuICAgICAgICBsb2FkaW5nOiAnQ2FycmVnYW5kby4uLicsXG4gICAgICAgIHVuc3VwcG9ydGVkRmlsZU1lc3NhZ2U6XG4gICAgICAgICAgJ1RpdmVtb3MgdW0gcHJvYmxlbWEgYW8gY2FycmVnYXIgYSBwcsOpLXZpc3VhbGl6YcOnw6NvLiBQb3IgZmF2b3IsIHRlbnRlIG5vdmFtZW50ZSBlbSBhbGd1bnMgbWludXRvcy4nLFxuICAgICAgICB0eXBlTGFiZWw6ICdUaXBvOicsXG4gICAgICAgIHVua25vd246ICdEZXNjb25oZWNpZG8nLFxuICAgICAgICBzaXplTGFiZWw6ICdUYW1hbmhvOicsXG4gICAgICAgIGV4Y2VsOiB7XG4gICAgICAgICAgc2hlZXRTZWxlY3RvckxhYmVsOiAnUGxhbmlsaGE6JyxcbiAgICAgICAgICBsb2FkRXJyb3I6ICdOw6NvIGZvaSBwb3Nzw612ZWwgY2FycmVnYXIgbyBjb250ZcO6ZG8gZG8gYXJxdWl2byBFeGNlbC4nLFxuICAgICAgICAgIGZpbGVSZWFkRXJyb3I6ICdFcnJvIGFvIGxlciBvIGFycXVpdm8uJyxcbiAgICAgICAgICBzaGVldExvYWRFcnJvcjogJ0Vycm8gYW8gY2FycmVnYXIgYSBwbGFuaWxoYSBzZWxlY2lvbmFkYS4nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICAgIGRlbGV0ZVF1ZXN0aW9uTW9kYWw6IHtcbiAgICAgIHRpdGxlOiAnRGVzZWphIGV4Y2x1aXIgZXN0YSBjb252ZXJzYT8nLFxuICAgICAgZmlyc3RQYXJ0OiAnVm9jw6ogZXN0w6EgcHJlc3RlcyBhIGV4Y2x1aXInLFxuICAgICAgc2Vjb25kUGFydDogJ0VzdGEgYcOnw6NvIMOpIGlycmV2ZXJzw612ZWwuJyxcbiAgICAgIGNhbmNlbDogJ0NhbmNlbGFyJyxcbiAgICAgIGRlbGV0ZTogJ0V4Y2x1aXInLFxuICAgIH0sXG4gICAgZWRpdFF1ZXN0aW9uTW9kYWw6IHtcbiAgICAgIG5ld05hbWU6ICdOb3ZvIG5vbWUnLFxuICAgICAgdGl0bGU6ICdSZW5vbWVhciBjb252ZXJzYScsXG4gICAgICByZW5hbWU6ICdSZW5vbWVhcicsXG4gICAgICBjYW5jZWw6ICdDYW5jZWxhcicsXG4gICAgICBtYXhMZW5ndGg6ICdWb2PDqiBhdGluZ2l1IG8gbGltaXRlIGRlIDE0MCBjYXJhY3RlcmVzLicsXG4gICAgfSxcbiAgICBtb2RhbEZpbGVFeGNlZWRzOiB7XG4gICAgICBsaW1pdEZpbGVzVGl0bGU6ICdNw6F4LiBBbmV4b3MgZXhjZWRpZG9zLicsXG4gICAgICBsaW1pdFNpemVUaXRsZTogJ1ZvY8OqIGV4Y2VkZXUgbyBsaW1pdGUgZGUgdGFtYW5obyBwZXJtaXRpZG8nLFxuICAgICAgbGltaXRGaWxlc0Rlc2NyaXB0aW9uOlxuICAgICAgICAnVm9jw6ogcG9kZSBhbmV4YXIgbm8gbcOheGltbyA1IGFycXVpdm9zIHBvciBtZW5zYWdlbS4gT3Mgc2VndWludGVzIGFycXVpdm9zIG7Do28gcHVkZXJhbSBzZXIgYW5leGFkb3M6JyxcbiAgICAgIGxpbWl0U2l6ZURlc2NyaXB0aW9uOlxuICAgICAgICAnVW0gb3UgbWFpcyBhcnF1aXZvcyBleGNlZGVtIG8gdGFtYW5obyBtw6F4aW1vIHBlcm1pdGlkbyBwb3IgdGlwby4gT3Mgc2VndWludGVzIGFycXVpdm9zIG7Do28gcHVkZXJhbSBzZXIgYW5leGFkb3M6JyxcbiAgICAgIGFjY2VwdDogJ0FjZWl0YXInLFxuICAgICAgbGltaXQ6ICdsaW1pdGUnLFxuICAgIH0sXG4gICAgc291cmNlc0luZm9ybWF0aW9uTW9kYWw6IHtcbiAgICAgIHRpdGxlOiAnRnVlbnRlczonLFxuICAgIH0sXG4gICAgYWdlbnRzOiB7XG4gICAgICB0aXRsZTogJ0FnZW50ZXMnLFxuICAgICAgbmV3QWdlbnQ6ICdOb3ZvIGFnZW50ZScsXG4gICAgICBjcmVhdGVBZ2VudDogJ0NyaWFyIEFnZW50ZScsXG4gICAgICBlZGl0OiAnRWRpdGFyJyxcbiAgICAgIG1haWE6ICcoRXNwZWNpYWxpc3RhIGRlIHByb2pldG8pJyxcbiAgICAgIGFkZEZhdm9yaXRlOiAnQWRpY2lvbmFyIGFvcyBmYXZvcml0b3MnLFxuICAgICAgcmVtb3ZlRmF2b3JpdGU6ICdSZW1vdmVyIGRvcyBmYXZvcml0b3MnLFxuICAgICAgZmF2b3JpdGVUb2dnbGVkQWRkZWRTdWNjZXNzOiAnQWdlbnRlIGFkaWNpb25hZG8gYW9zIGZhdm9yaXRvcycsXG4gICAgICBmYXZvcml0ZVRvZ2dsZWRSZW1vdmVkU3VjY2VzczogJ0FnZW50ZSByZW1vdmlkbyBkZSBmYXZvcml0b3MnLFxuICAgICAgZmF2b3JpdGVUb2dnbGVkRXJyb3I6ICdOw6NvIGZvaSBwb3Nzw612ZWwgc2FsdmFyIHNldSBmYXZvcml0by4gVGVudGUgbm92YW1lbnRlLicsXG4gICAgICBmYXZvcml0ZVRvZ2dsZWRSZW1vdmVkRXJyb3I6ICdOw6NvIGZvaSBwb3Nzw612ZWwgcmVtb3ZlciBvIGZhdm9yaXRvLiBUZW50ZSBub3ZhbWVudGUuJyxcbiAgICAgIG1haWFJbnRyb2R1Y3Rpb246ICdCZW0tdmluZG8gw6AgTUFJQSwgc3VhIGFzc2lzdGVudGUgcGFyYSBtZWxob3JhciBvIHNldSBkaWEgYSBkaWEuJyxcbiAgICB9LFxuICAgIGNvbnZlcnNhdGlvbnM6IHtcbiAgICAgIHRpdGxlOiAnTWluaGFzIGNvbnZlcnNhcycsXG4gICAgICBhZ2VudHNTZWN0aW9uVGl0bGU6ICdBZ2VudGVzJyxcbiAgICAgIG1haWFrZXJOYXY6ICdNYXJrZXRwbGFjZScsXG4gICAgICBteUFnZW50c05hdjogJ01ldXMgYWdlbnRlcycsXG4gICAgICBlcnJvcjogJ09jb3JyZXUgdW0gZXJybyBhbyBjYXJyZWdhciBvIGhpc3TDs3JpY28gZGUgY29udmVyc2FzJyxcbiAgICAgIGVtcHR5OiAnVG9kYXMgYXMgc3VhcyBjb252ZXJzYXMgY29tIG9zIGFnZW50ZXMgc2Vyw6NvIGV4aWJpZGFzIGFxdWknLFxuICAgICAgZW1wdHlMYWJlbDogJ01lbnNhZ2VtIGNvbSBhbmV4b3MnLFxuICAgICAgY29sbGFwc2U6ICdSZWNvbGhlcicsXG4gICAgICBleHBhbmQ6ICdFeHBhbmRpcicsXG4gICAgICBuZXdDaGF0OiAnTm92byBjaGF0JyxcbiAgICAgIG9wZW5BZ2VudENyZWF0b3I6ICdDcmlhciBhZ2VudGUnLFxuICAgICAgb3Blbk1hcmtldHBsYWNlOiAnTWFya2V0cGxhY2UgZGUgYWdlbnRlcycsXG4gICAgfSxcbiAgICBtYXJrZXRwbGFjZToge1xuICAgICAgYmFjazogJ1ZvbHRhcicsXG4gICAgICB0aXRsZTogJ0lkZWlhcyBwYXJhIGNyaWFyIGFnZW50ZXMnLFxuICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgICdFc2NvbGhhIHVtYSBzdWdlc3TDo28gYmVtIGNvbnN0cnXDrWRhIGUgYWJyYSBvIGVkaXRvciBjb20gbyBhZ2VudGUgasOhIHByZWVuY2hpZG8gcGFyYSBhZGFwdGFyIGFvIHNldSBjYXNvLicsXG4gICAgICBteUFnZW50c1RpdGxlOiAnTWV1cyBhZ2VudGVzJyxcbiAgICAgIG15QWdlbnRzUmVhZHlUaXRsZTogJ1NldXMgYWdlbnRlcyBlc3RhbyBwcm9udG9zIHBhcmEgYWp1ZGFyIHZvY2UgZW0gdGFyZWZhcycsXG4gICAgICBteUFnZW50c0Rlc2NyaXB0aW9uOiAnRXN0ZXMgc2FvIHNldXMgYWdlbnRlcyBjdXN0b20uIFNlbGVjaW9uZSB1bSBwYXJhIGluaWNpYXIgYSBjb252ZXJzYSBjb20gZXNzZSBwZXJmaWwuJyxcbiAgICAgIG15QWdlbnRzRW1wdHlTdGF0ZVRpdGxlOiAnVm9jZSBhaW5kYSBuYW8gdGVtIGFnZW50ZXMgY3JpYWRvcycsXG4gICAgICBteUFnZW50c0VtcHR5U3RhdGVEZXNjcmlwdGlvbjogJ0NsaXF1ZSBubyBib3RhbyBhYmFpeG8gcGFyYSBjb21lY2FyIGEgY3JpYXIgYWdlbnRlcyBzb2IgbWVkaWRhLicsXG4gICAgICBteUFnZW50c0VtcHR5U3RhdGVEZXNjcmlwdGlvbk5vUGVybTpcbiAgICAgICAgJ1F1YW5kbyBhbGd1ZW0gY29tIHBlcm1pc3NhbyBwYXJhIGNyaWEtbG9zIGNvbmZpZ3VyYXIsIHZvY2UgcG9kZXJhIGFjZXNzYS1sb3MgcG9yIGFxdWkuJyxcbiAgICAgIG15QWdlbnRzRW1wdHlTdGF0ZUJ1dHRvbjogJ0NyaWFyIGFnZW50ZScsXG4gICAgICBteUFnZW50c0ZhbGxiYWNrSW50cm86ICdBZ2VudGUgcGVyc29uYWxpemFkbyBwcm9udG8gcGFyYSBhanVkYXIgbm8gc2V1IGZsdXhvIGRlIHRyYWJhbGhvLicsXG4gICAgICBteUFnZW50c0ZhbGxiYWNrRGVzY3JpcHRpb246ICdDbGlxdWUgZW0gdXNhciBhZ2VudGUgcGFyYSBpbmljaWFyIHVtYSBjb252ZXJzYSBjb20gZXN0ZSBhZ2VudGUuJyxcbiAgICAgIG15QWdlbnRzRmFsbGJhY2tEYXRlOiAnSGEgYWxndW5zIGRpYXMnLFxuICAgICAgbXlBZ2VudHNUb2RheTogJ0hvamUnLFxuICAgICAgbXlBZ2VudHNPbmVEYXlBZ286ICdIYSAxIGRpYScsXG4gICAgICBteUFnZW50c0RheXNBZ286ICdIYSB7e2RheXN9fSBkaWFzJyxcbiAgICAgIGNhcmRNZW51QXJpYUxhYmVsOiAnTWVudSBkZSBhY29lcyBkbyBhZ2VudGUnLFxuICAgICAgdXNlOiAnVXNhcicsXG4gICAgICBjcmVhdGVBZ2VudDogJ0NyaWFyIGFnZW50ZScsXG4gICAgICB1c2VUZW1wbGF0ZTogJ0NyaWFyIGNvbSBlc3RhIGlkZWlhJyxcbiAgICAgIHVzZU15QWdlbnQ6ICdVc2FyIGFnZW50ZScsXG4gICAgICBiYWRnZXM6IHtcbiAgICAgICAgYnJhbmRpbmc6ICdCcmFuZGluZycsXG4gICAgICAgIGxpbmtlZGluOiAnTGlua2VkSW4nLFxuICAgICAgICBtYXJrZXRpbmc6ICdNYXJrZXRpbmcnLFxuICAgICAgfSxcbiAgICB9LFxuICAgIHNuYWNrYmFyOiB7XG4gICAgICBkZWxldGVDaGF0OiB7XG4gICAgICAgIHN1Y2Nlc3M6ICdTdWEgY29udmVyc2EgZm9pIGV4Y2x1w61kYSBjb20gc3VjZXNzby4nLFxuICAgICAgICBlcnJvcjogJ09jb3JyZXUgdW0gZXJybyBpbmVzcGVyYWRvLiBQb3IgZmF2b3IgdGVudGUgbm92YW1lbnRlLicsXG4gICAgICB9LFxuICAgICAgcmVuYW1lZENoYXQ6IHtcbiAgICAgICAgc3VjY2VzczogJ0NvbnZlcnNhIHJlbm9tZWFkYSBjb20gc3VjZXNzbycsXG4gICAgICAgIGVycm9yOiAnT2NvcnJldSB1bSBlcnJvIGluZXNwZXJhZG8uIFBvciBmYXZvciB0ZW50ZSBub3ZhbWVudGUuJyxcbiAgICAgIH0sXG4gICAgICBsb2FkTW9yZUFnZW50czoge1xuICAgICAgICBlcnJvcjogJ09jb3JyZXUgdW0gZXJybyBpbmVzcGVyYWRvLiBQb3IgZmF2b3IgdGVudGUgbm92YW1lbnRlLicsXG4gICAgICB9LFxuICAgIH0sXG4gICAgYXBwcm92YWxCb3g6IHtcbiAgICAgIHVudGl0bGVkQWdlbnQ6ICdBZ2VudGUgc2VtIG5vbWUnLFxuICAgICAgYWN0aW9uczoge1xuICAgICAgICBjcmVhdGVfdGFzazogJ0NyaWHDp8OjbyBkZSB0YXJlZmEnLFxuICAgICAgICBjcmVhdGVfdGFza3NfYmF0Y2g6ICdDcmlhw6fDo28gZGUgdGFyZWZhcycsXG4gICAgICAgIGNyZWF0ZV9hZ2VudDogJ0NyaWFyIGFnZW50ZScsXG4gICAgICAgIGVkaXRfYWdlbnQ6ICdFZGnDp8OjbyBkZSBhZ2VudGUnLFxuICAgICAgICBlZGl0X3Rhc2s6ICdFZGnDp8OjbyBkZSB0YXJlZmEnLFxuICAgICAgICBlZGl0X3Rhc2tzX2JhdGNoOiAnRWRpw6fDo28gZGUgdGFyZWZhcycsXG4gICAgICAgIGRlbGV0ZV90YXNrOiAnRXhjbHVzw6NvIGRlIHRhcmVmYScsXG4gICAgICAgIGRlbGV0ZV90YXNrc19iYXRjaDogJ0V4Y2x1c8OjbyBkZSB0YXJlZmFzJyxcbiAgICAgICAgdGFza19hc3NpZ246ICdBdHJpYnVpw6fDo28gZGUgdXN1w6FyaW8nLFxuICAgICAgICB0YXNrX3VuYXNzaWduOiAnUmVtb8Onw6NvIGRlIHVzdcOhcmlvJyxcbiAgICAgICAgYXNzaWduX3Rhc2tfbGFiZWw6ICdBdHJpYnVpw6fDo28gZGUgZXRpcXVldGEnLFxuICAgICAgICB1cGRhdGVfdGFza190eXBlOiAnQXR1YWxpemHDp8OjbyBkZSB0aXBvIGRlIHRhcmVmYScsXG4gICAgICAgIHVwZGF0ZV9lc3RpbWF0ZWRfaG91cnM6ICdBdHVhbGl6YcOnw6NvIGRlIGhvcmFzIGVzdGltYWRhcycsXG4gICAgICAgIHVwZGF0ZV9kZWxpdmVyYWJsZTogJ0F0dWFsaXphw6fDo28gZGUgZW50cmVnw6F2ZWwnLFxuICAgICAgICBjcmVhdGVfaG91cjogJ1JlZ2lzdHJvIGRlIGhvcmFzJyxcbiAgICAgICAgY3JlYXRlX2NoZWNrbGlzdDogJ0NyaWHDp8OjbyBkZSBjaGVja2xpc3QnLFxuICAgICAgICBjbG9uZV90YXNrOiAnQ2xvbmFyIHRhcmVmYScsXG4gICAgICAgIGdldF90YXNrX2RhdGVfaG91cnM6ICdDb25zdWx0YSBkZSBob3JhcyBwb3IgZGF0YScsXG4gICAgICAgIGNvbmZpZ3VyZV9hZ2VudF9hY2Nlc3M6ICdBbHRlcmFyIHZpc2liaWxpZGFkZSBkbyBhZ2VudGUnLFxuICAgICAgICBzZW5kX3Rhc2tfbWVzc2FnZTogJ0VudmlvIGRlIG1lbnNhZ2VtIG5hIHRhcmVmYScsXG4gICAgICAgIGRlbGV0ZV9jaGVja2xpc3RfaXRlbTogJ0V4Y2x1c8OjbyBkZSBpdGVtIGRvIGNoZWNrbGlzdCcsXG4gICAgICAgIHJlbW92ZV90YXNrX3R5cGU6ICdSZW1vw6fDo28gZG8gdGlwbyBkZSB0YXJlZmEnLFxuICAgICAgICByZW1vdmVfdGFza19sYWJlbDogJ1JlbW/Dp8OjbyBkZSBldGlxdWV0YScsXG4gICAgICAgIGNvdW50X2RlbGl2ZXJhYmxlOiAnQXR1YWxpemHDp8OjbyBkYSBjb250YWdlbSBkZSBlbnRyZWfDoXZlaXMnLFxuICAgICAgICBjcmVhdGVfcmV3b3JrOiAnQ3JpYcOnw6NvIGRlIHJldHJhYmFsaG8nLFxuICAgICAgICB1cGRhdGVfcmV3b3JrOiAnQXR1YWxpemHDp8OjbyBkZSByZXRyYWJhbGhvJyxcbiAgICAgICAgZGVsZXRlX2FnZW50OiAnRXhjbHVzw6NvIGRlIGFnZW50ZScsXG4gICAgICAgIHVua25vd246ICdBw6fDo28gZGVzY29uaGVjaWRhJyxcbiAgICAgIH0sXG4gICAgICBzcGVjaWFsOiB7XG4gICAgICAgIGNyZWF0ZVJld29yazoge1xuICAgICAgICAgIHRpdGxlOiAnQ3JpYXIgcmV0cmFiYWxobycsXG4gICAgICAgICAgZGVzY3JpcHRpb246ICdTZXLDoSBjcmlhZG8gdW0gcmV0cmFiYWxobyBuYSB0YXJlZmEgY29tIGFzIGluZm9ybWHDp8O1ZXMgaW5kaWNhZGFzLicsXG4gICAgICAgIH0sXG4gICAgICAgIHVwZGF0ZURlbGl2ZXJhYmxlQ2hpbGRyZW46IHtcbiAgICAgICAgICB0aXRsZTogJ0F0dWFsaXphciBwcm9ncmVzc28gZG9zIGVudHJlZ8OhdmVpcycsXG4gICAgICAgICAgZGVzY3JpcHRpb246ICdTZXLDoSBhdHVhbGl6YWRvIG8gcHJvZ3Jlc3NvIGRvcyBzdWJlbnRyZWfDoXZlaXMgdmluY3VsYWRvcyBhIGVzdGEgdGFyZWZhLicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgZmllbGRzOiB7XG4gICAgICAgIG5hbWU6ICdOb21lJyxcbiAgICAgICAgZW1vamk6ICdFbW9qaScsXG4gICAgICAgIGludHJvZHVjdGlvbjogJ0ludHJvZHXDp8OjbycsXG4gICAgICAgIGlucHV0X3BsYWNlaG9sZGVyOiAnUGxhY2Vob2xkZXInLFxuICAgICAgICB1c2VyX3Byb21wdDogJ1Byb21wdCBwcmluY2lwYWwnLFxuICAgICAgICBsYW5ndWFnZTogJ0lkaW9tYScsXG4gICAgICAgIHByb3ZpZGVyOiAnUHJvdmlkZXInLFxuICAgICAgICBtb2RlbF9uYW1lOiAnTW9kZWxvJyxcbiAgICAgICAgYXBpX2tleTogJ0FQSSBrZXknLFxuICAgICAgfSxcbiAgICAgIHRpdGxlOiAnQ29uZmlybWHDp8OjbyByZXF1ZXJpZGEnLFxuICAgICAgZGVzY3JpcHRpb246ICdWb2PDqiBwcmVjaXNhIGFwcm92YXIgYSBzZWd1aW50ZSBhw6fDo286JyxcbiAgICAgIGFwcHJvdmU6ICdBcHJvdmFyJyxcbiAgICAgIGRlbnk6ICdOZWdhcicsXG4gICAgICBtYW51YWxBcHByb3ZhbFdhcm5pbmc6ICdNYWlhIGRldGVjdG91IHF1ZSBhIHNvbGljaXRhw6fDo28gZm9pIGFwcm92YWRhIG1hbnVhbG1lbnRlJyxcbiAgICAgIHN0YXR1czoge1xuICAgICAgICBhcHByb3ZlZDogJ1NvbGljaXRhw6fDo28gQXByb3ZhZGEnLFxuICAgICAgICBkZW5pZWQ6ICdTb2xpY2l0YcOnw6NvIE5lZ2FkYScsXG4gICAgICB9LFxuICAgIH0sXG4gICAgY2hpcExsbToge1xuICAgICAgdG9vbHRpcDogJ0VzdGUgYWdlbnRlIHV0aWxpemEgbyBtb2RlbG86IHt7bW9kZWx9fScsXG4gICAgfSxcbiAgICBjbGllbnRTZWxlY3Rvcjoge1xuICAgICAgcHJvamVjdDogJ3Byb2pldG8nLFxuICAgICAgcHJvamVjdHM6ICdwcm9qZXRvcycsXG4gICAgfSxcbiAgfSxcbiAgW1NFQ1RJT05TLmFibUFnZW50XToge1xuICAgIC4uLmdlbmVyaWNTZWN0aW9uLFxuICAgIGxlZ2VuZERlbGV0ZWRBZ2VudDogJ0VzdGUgYWdlbnRlIGZvaSBleGNsdcOtZG8gbm8gZGlhJyxcbiAgICBsZWdlbmRQcm9qZWN0RGVsZXRlZDogJ08gcHJvamV0byB7e25hbWV9fSBmb2kgZXhjbHXDrWRvLiBOw6NvIMOpIHBvc3PDrXZlbCBjb250aW51YXIgYSBjb252ZXJzYScsXG4gICAgbGVnZW5kTm9BY2Nlc3M6ICdWb2PDqiBuw6NvIHRlbSBtYWlzIGFjZXNzbyBwYXJhIGludGVyYWdpciBjb20gbyBhZ2VudGUge3tuYW1lfX0nLFxuICAgIGxlZ2VuZE5vUGVybWlzc2lvbnM6ICdWb2PDqiBuw6NvIHRlbSBtYWlzIHBlcm1pc3PDo28gcGFyYSB2aXN1YWxpemFyIG91IGludGVyYWdpciBjb20gbyBhZ2VudGUge3tuYW1lfX0nLFxuICAgIGxlZ2VuZE1vZGVsRGVwcmVjYXRlZDpcbiAgICAgICdPIG1vZGVsbyBzZWxlY2lvbmFkbyBwYXJhIGVzdGUgYWdlbnRlIG7Do28gZXN0w6EgbWFpcyBkaXNwb27DrXZlbC4gVHJvcXVlIHBhcmEgb3V0cm8gbW9kZWxvIHBhcmEgY29udGludWFyIHVzYW5kby1vLicsXG4gICAgbGVnZW5kUHJvdmlkZXJTdGF0dXM6XG4gICAgICAnTyBtb2RlbG8gdXNhZG8gcG9yIGVzdGUgYWdlbnRlIGVzdMOhIGVuZnJlbnRhbmRvIHByb2JsZW1hcyB0ZW1wb3LDoXJpb3MuIFZvY8OqIHBvZGUgYWd1YXJkYXIgYSByZWN1cGVyYcOnw6NvIG91IHRyb2NhciBwYXJhIG91dHJvIG1vZGVsby4nLFxuICAgIGNoYW5nZU1vZGVsOiAnVHJvY2FyIG1vZGVsbycsXG4gICAgYWdlbnRzOiAnQWdlbnRlcycsXG4gICAgYWRkQWdlbnQ6ICdBZGljaW9uYXIgbm92byBhZ2VudGUnLFxuICAgIG5ld0FnZW50OiAnTm92byBhZ2VudGUnLFxuICAgIGNyZWF0ZUFnZW50OiAnQ3JpYXIgQWdlbnRlJyxcbiAgICBlZGl0QWdlbnQ6ICdFZGl0YXIgYWdlbnRlJyxcbiAgICBjYW5jZWw6ICdDYW5jZWxhcicsXG4gICAgYWNjZXB0OiAnQWNlaXRhcicsXG4gICAgZGVsZXRlQWdlbnQ6ICdFeGNsdWlyIGFnZW50ZScsXG4gICAgY29udGludWU6ICdDb250aW51YXInLFxuICAgIGVkaXQ6ICdFZGl0YXInLFxuICAgIGRlbGV0ZTogJ0V4Y2x1aXInLFxuICAgIGZlZWRiYWNrOiAnRW52aWFyIEZlZWRiYWNrJyxcbiAgICBzZW5kRmVlZGJhY2s6ICdFbnZpYXIgZmVlZGJhY2snLFxuICAgIHNhdmVDaGFuZ2VzOiAnU2FsdmFyIGFsdGVyYcOnw7VlcycsXG4gICAgY3JlYXRlQWdlbnRMYWJlbEJ1dHRvbjogJ0NyaWFyIGFnZW50ZScsXG4gICAgb3BlbkFnZW50Q3JlYXRvcjogJ0NyaWFyIGFnZW50ZScsXG4gICAgb3Blbk1hcmtldHBsYWNlOiAnTWFya2V0cGxhY2UgZGUgYWdlbnRlcycsXG4gICAgY29uZmlybUFnZW50Q3JlYXRlZDogJ08gYWdlbnRlIGZvaSBjcmlhZG8gY29tIHN1Y2Vzc28nLFxuICAgIGNvbmZpcm1BZ2VudFVwZGF0ZWRXaXRoRmlsZXNFcnJvcjpcbiAgICAgICdPIGFnZW50ZSBmb2kgZWRpdGFkbyBjb20gc3VjZXNzbywgbWFzIGFsZ3VucyBhcnF1aXZvcyBuw6NvIHB1ZGVyYW0gc2VyIHByb2Nlc3NhZG9zLicsXG4gICAgY29uZmlybUFnZW50V2l0aEZpbGVzRXJyb3I6ICdPIGFnZW50ZSBmb2kgY3JpYWRvIGNvbSBzdWNlc3NvLCBtYXMgYWxndW5zIGFycXVpdm9zIG7Do28gcHVkZXJhbSBzZXIgcHJvY2Vzc2Fkb3MuJyxcbiAgICBjb25maXJtQWdlbnREZWxldGVkOiAnTyBhZ2VudGUgZm9pIGV4Y2x1w61kbyBjb20gc3VjZXNzbycsXG4gICAgY29uZmlybUFnZW50VXBkYXRlZDogJ08gYWdlbnRlIGZvaSBhdHVhbGl6YWRvIGNvbSBzdWNlc3NvJyxcbiAgICBjb25maXJtQ2xvc2VDcmVhdGVBZ2VudDogJ1RlbSBjZXJ0ZXphIHF1ZSBkZXNlamEgZmVjaGFyPyBBcyBhbHRlcmHDp8O1ZXMgc2Vyw6NvIHBlcmRpZGFzLicsXG4gICAgY29uZmlybUNsb3NlRWRpdEFnZW50OiAnVGVtIGNlcnRlemEgcXVlIGRlc2VqYSBmZWNoYXI/IEFzIGFsdGVyYcOnw7VlcyBzZXLDo28gcGVyZGlkYXMuJyxcbiAgICBjb25maXJtUmVsb2FkQnJvd3NlcjogJ1RlbSBjZXJ0ZXphIHF1ZSBkZXNlamEgcmVjYXJyZWdhciBhIHDDoWdpbmE/IEFzIGFsdGVyYcOnw7VlcyBzZXLDo28gcGVyZGlkYXMuJyxcbiAgICBlcnJvckFjY2Vzc0RlbmllZDogJ1ZvY8OqIG7Do28gdGVtIHBlcm1pc3PDo28gcGFyYSBhY2Vzc2FyIGVzdGUgYWdlbnRlLiBDb250YXRlIG8gc3Vwb3J0ZS4nLFxuICAgIGVycm9yQWdlbnRDcmVhdGVkOiAnT2NvcnJldSB1bSBlcnJvIGluZXNwZXJhZG8uIFBvciBmYXZvciB0ZW50ZSBub3ZhbWVudGUuJyxcbiAgICBhdHRhY2htZW50Q2FyZDoge1xuICAgICAgZG93bmxvYWQ6ICdEZXNjYXJyZWdhcicsXG4gICAgICBkZWxldGU6ICdFeGNsdWlyJyxcbiAgICB9LFxuICAgIGdlbmVyYWxTZWN0aW9uOiB7XG4gICAgICB0aXRsZTogJ0dlcmFsJyxcbiAgICAgIGdlbmVyYWxTZXR0aW5nczogJ0NvbmZpZ3VyYcOnw6NvIGdlcmFsJyxcbiAgICAgIHJlcXVpcmVkRmllbGRzTGFiZWw6ICcqb2JyaWdhdMOzcmlvcycsXG4gICAgICBpbmZvTGFiZWw6ICdBZGljaW9uZSB0b2RhcyBhcyBpbmZvcm1hw6fDtWVzIHBhcmEgcGVyc29uYWxpemFyIG8gY29tcG9ydGFtZW50byBkbyBzZXUgYWdlbnRlLicsXG4gICAgICBvcHRpb25hbExhYmVsOiAnT3BjaW9uYWwnLFxuICAgICAgYmFzaWNTZXR0aW5nczogJ0NvbmZpZ3VyYcOnw6NvIGLDoXNpY2EnLFxuICAgICAgc2VsZWN0RW1vamk6ICdTZWxlY2lvbmFyIGVtb2ppJyxcbiAgICAgIG5hbWU6ICdRdWFsIMOpIG8gbm9tZSBkbyBzZXUgYWdlbnRlPycsXG4gICAgICBuYW1lUGxhY2Vob2xkZXI6ICdEw6ogdW0gbm9tZSBhbyBzZXUgYWdlbnRlJyxcbiAgICAgIGJlaGF2aW9yU2V0dGluZ3M6ICdDb25maWd1cmHDp8OjbyBkZSBjb21wb3J0YW1lbnRvJyxcbiAgICAgIGluaXRpYWxQcm9tcHQ6ICdRdWFpcyBzw6NvIGFzIGluc3RydcOnw7Vlcz8nLFxuICAgICAgaW5pdGlhbFByb21wdFBsYWNlaG9sZGVyOlxuICAgICAgICAnRXhlbXBsbzogVm9jw6ogw6kgdW0gcmVkYXRvciBkZSBtw61kaWFzIHNvY2lhaXMgcXVlIGVzY3JldmUgZSBhZGFwdGEgbWVuc2FnZW5zIHBhcmEgZGlmZXJlbnRlcyByZWRlcywgZ2FyYW50aW5kbyBjb25zaXN0w6puY2lhIG5vIHRvbSwgbmEgcGVyc29uYWxpZGFkZSBlIG5vcyB2YWxvcmVzIGRhIG1hcmNhLicsXG4gICAgICBtb2RlbEFpTGFiZWw6ICdNb2RlbG8gZGUgSUEnLFxuICAgICAgbm9Nb2RlbHNBdmFpbGFibGU6ICdOw6NvIGjDoSBtb2RlbG9zIGRpc3BvbsOtdmVpcycsXG4gICAgICBpbnB1dFBsYWNlaG9sZGVyVGl0bGU6ICdPIHF1ZSBvIHVzdcOhcmlvIHZlcsOhIG5vIGNhbXBvIGRlIGNoYXQgYW50ZXMgZGUgZXNjcmV2ZXI/JyxcbiAgICAgIGlucHV0UGxhY2Vob2xkZXI6ICdQZXJndW50ZSBvIHF1ZSBwcmVjaXNhcuKApicsXG4gICAgICBpbnRyb2R1Y3Rpb246ICdDb21vIG8gc2V1IGFnZW50ZSB2YWkgc2UgYXByZXNlbnRhcj8nLFxuICAgICAgaW50cm9kdWN0aW9uUGxhY2Vob2xkZXI6XG4gICAgICAgICdFeGVtcGxvOiBPbMOhISDwn5GLIFZvdSB0ZSBhanVkYXIgYSBjcmlhciwgYWRhcHRhciBlIHJldmlzYXIgdGV4dG9zIHBhcmEgZGlmZXJlbnRlcyBwbGF0YWZvcm1hcywgZ2FyYW50aW5kbyBxdWUgbWFudGVuaGFtIGEgdm96LCBvIHRvbSBlIGEgcGVyc29uYWxpZGFkZSBkYSBzdWEgbWFyY2EuIFZvY8OqIHBvZGUgbWUgcGVkaXIgaWRlaWFzIHBhcmEgY2FtcGFuaGFzLCBhZGFwdGFyIHVtIHRleHRvIHBhcmEgb3V0cm8gY2FuYWwgb3UgcmV2aXNhciBhIGNvZXLDqm5jaWEgZGEgbWVuc2FnZW0uJyxcbiAgICAgIGFkZEZhdm9yaXRlOiAnQWRpY2lvbmFyIGFvcyBmYXZvcml0b3MnLFxuICAgICAgcmVtb3ZlRmF2b3JpdGU6ICdSZW1vdmVyIGRvcyBmYXZvcml0b3MnLFxuICAgICAgZXJyb3I6IHtcbiAgICAgICAgbWF4Q2FyYWN0ZXJOYW1lOiAnVm9jw6ogYXRpbmdpdSBvIGxpbWl0ZSBkZSAxNTAgY2FyYWN0ZXJlcy4nLFxuICAgICAgICBtYXhDYXJhY3RlckluaXRpYWxQcm9tcHQ6ICdWb2PDqiBhdGluZ2l1IG8gbGltaXRlIGRlIDUwMDAgY2FyYWN0ZXJlcy4nLFxuICAgICAgICBtYXhJbnB1dFBsYWNlaG9sZGVyOiAnVm9jw6ogYXRpbmdpdSBvIGxpbWl0ZSBkZSAxMDAgY2FyYWN0ZXJlcy4nLFxuICAgICAgICBtYXhDYXJhY3RlckludHJvZHVjdGlvbjogJ1ZvY8OqIGF0aW5naXUgbyBsaW1pdGUgZGUgNDAwIGNhcmFjdGVyZXMuJyxcbiAgICAgIH0sXG4gICAgICBob3dUb1dyaXRlUHJvbXB0OiAnQ29tbyBlc2NyZXZlciB1bSBwcm9tcHQnLFxuICAgICAgd2hhdElzTW9kZWxBaVRpdGxlOiAnUXVhbCBtb2RlbG8gZGUgSUEgdm9jw6ogdmFpIHVzYXI/JyxcbiAgICAgIHdoYXRJc01vZGVsQWk6ICdPIHF1ZSDDqSB1bSBtb2RlbG8gZGUgSUE/JyxcbiAgICAgIGNyZWF0ZWRCeTogJ1BvcicsXG4gICAgICBjcmVhdGVkQnlUb29sdGlwOiAnVXN1w6FyaW8gY3JpYWRvciBkbyBhZ2VudGUnLFxuICAgICAgY3JlYXRlZEJ5VG9vbHRpcERlbGV0ZWQ6ICdVc3XDoXJpbyBleGNsdcOtZG8uIFNldSBub21lIMOpIG1hbnRpZG8gcGFyYSByZWZlcsOqbmNpYS4nLFxuICAgIH0sXG4gICAga25vd2xlZGdlU2VjdGlvbjoge1xuICAgICAgdGl0bGU6ICdDb25oZWNpbWVudG8nLFxuICAgICAga25vd2xlZGdlVGFiOiAnQmFzZSBkZSBjb25oZWNpbWVudG9zJyxcbiAgICAgIGluZm9MYWJlbDogJ0NhcnJlZ3VlIG9zIGFycXVpdm9zIHF1ZSBzZXUgYWdlbnRlIHVzYXLDoSBjb21vIGZvbnRlIHBhcmEgc3VhcyByZXNwb3N0YXMuJyxcbiAgICAgIHNlbGVjdEZpbGVUaXRsZTogJ1NFTEVDSU9OQVIgQVJRVUlWT1MnLFxuICAgICAgYXR0YWNoRmlsZXM6ICdBbmV4YXIgYXJxdWl2b3MnLFxuICAgICAgZHJvcFpvbmVUZXh0OiB7XG4gICAgICAgIDE6ICdDbGlxdWUgYXF1aSBwYXJhIGNhcnJlZ2FyJyxcbiAgICAgICAgMjogJ291IGFycmFzdGUgb3MgYXJxdWl2b3MnLFxuICAgICAgfSxcbiAgICAgIGluZm9GaWxlVHlwZXM6ICcubWQsIC5wZGYsIC5kb2MsIC5kb2N4LCAudHh0LCAuY3N2LCAucG5nLCAuanBnLCAuanBlZywgLnhscywgLnhsc3ggIChtw6F4LiB0b3RhbCBkZSA1TUIpJyxcbiAgICAgIGVycm9yOiB7XG4gICAgICAgIG1heEZpbGVzVGl0bGU6ICdMaW1pdGUgZGUgdGFtYW5obyB0b3RhbCBleGNlZGlkby4nLFxuICAgICAgICBtYXhGaWxlc0Rlc2NyaXB0aW9uOlxuICAgICAgICAgICdWb2PDqiBwb2RlIGFuZXhhciBhcnF1aXZvcyBhdMOpIHVtIHRvdGFsIGRlIDUgTUIuIE9zIHNlZ3VpbnRlcyBhcnF1aXZvcyBuw6NvIHB1ZGVyYW0gc2VyIGFuZXhhZG9zOicsXG4gICAgICAgIG1heFNpemVUaXRsZTogJ1ZvY8OqIGV4Y2VkZXUgbyBsaW1pdGUgZGUgdGFtYW5obyBwZXJtaXRpZG8nLFxuICAgICAgICBtYXhTaXplRGVzY3JpcHRpb246IHtcbiAgICAgICAgICAxOiAnTyBsaW1pdGUgbcOheGltbyBkZSA1IE1CIGZvaSBhdGluZ2lkby4nLFxuICAgICAgICAgIDI6ICdFc3NlcyBhcnF1aXZvcyBuw6NvIGZvcmFtIGNhcnJlZ2Fkb3MgcG9ycXVlIGV4Y2VkZW0gbyBlc3Bhw6dvIGRpc3BvbsOtdmVsOicsXG4gICAgICAgIH0sXG4gICAgICAgIGludmFsaWRFeHRlbnNpb25EZXNjcmlwdGlvbjoge1xuICAgICAgICAgIDE6ICdTb21lbnRlIGFycXVpdm9zIGNvbSBhcyBzZWd1aW50ZXMgZXh0ZW5zw7VlcyBzw6NvIGFjZWl0b3M6IC5tZCwgLnBkZiwgLmRvYywgLmRvY3gsIC50eHQsIC5jc3YsIC5wbmcsIC5qcGcsIC5qcGVnLCAueGxzLCAueGxzeCcsXG4gICAgICAgICAgMjogJ0VzdGVzIGFycXVpdm9zIG7Do28gZm9yYW0gY2FycmVnYWRvcyBwb3JxdWUgc3VhIGV4dGVuc8OjbyBuw6NvIMOpIHBlcm1pdGlkYTonLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIG1vcmVJbmZvOiAnVmVqYSBjb21vIGZ1bmNpb25hIGFxdWknLFxuICAgIH0sXG4gICAgYWNjZXNzaWJpbGl0eVNlY3Rpb246IHtcbiAgICAgIHRpdGxlVGFiOiAnQWNlc3NpYmlsaWRhZGUnLFxuICAgICAgdGl0bGVTZWN0aW9uOiAnQWNlc3NpYmlsaWRhZGUgZG8gYWdlbnRlJyxcbiAgICAgIHN1YnRpdGxlU2VjdGlvbjogJ0VzY29saGEgcXVlbSBwb2RlIHZlciBlIHVzYXIgZXN0ZSBhZ2VudGUgbmEgc3VhIG9yZ2FuaXphw6fDo28uJyxcbiAgICAgIHdob0NhbkFjY2VzczogJ1F1ZW0gcG9kZSB1c2FyIGVzdGUgYWdlbnRlPycsXG4gICAgICBhbGxDb21wYW55VGl0bGU6ICdQYXJhIHRvZGEgYSBlbXByZXNhJyxcbiAgICAgIGFsbENvbXBhbnlEZXNjcmlwdGlvbjogJ1RvZG9zIGxvcyB1c3VhcmlvcyBkZSB0dSBvcmdhbml6YWNpw7NuIHBvZHLDoW4gdmVyIHkgdXNhciBlc3RlIGFnZW50ZS4nLFxuICAgICAgY2xpZW50VGl0bGU6ICdQYXJhIGNsaWVudGVzIGVzcGVjw61maWNvcycsXG4gICAgICBjbGllbnREZXNjcmlwdGlvbjpcbiAgICAgICAgJ0Fzb2NpYSBlc3RlIGFnZW50ZSBhIHVubyBvIG3DoXMgY2xpZW50ZXMuIFRvZG9zIGxvcyB1c3VhcmlvcyBwb2Ryw6FuIHZlciBjb24gcXXDqSBjbGllbnRlcyBlc3TDoSB2aW5jdWxhZG8uJyxcbiAgICAgIG93blRpdGxlOiAnQXBlbmFzIHBhcmEgbWltJyxcbiAgICAgIG93bkRlc2NyaXB0aW9uOiAnTyBhZ2VudGUgc2Vyw6EgcHJpdmFkbyBlIGFwZW5hcyB2b2PDqiBwb2RlcsOhIHbDqi1sbyBlIHVzw6EtbG8uJyxcbiAgICAgIGNsaWVudHNTZWxlY3RlZDogJ0NsaWVudGVzIHNlbGVjaW9uYWRvczonLFxuICAgICAgc2VhcmNoRXJyb3I6ICdPcHMhIFRpdmVtb3MgdW0gcHJvYmxlbWEgYW8gY2FycmVnYXIgb3MgY2xpZW50ZXMuIFBvZGUgdGVudGFyIG5vdmFtZW50ZSBlbSBpbnN0YW50ZXM/JyxcbiAgICAgIHNlYXJjaEVtcHR5OiAnT3BzISBOw6NvIGVuY29udHJhbW9zIGNsaWVudGVzIGNvbSBlc3NlIG5vbWUuIFRlbnRlIG91dHJhIGJ1c2NhLicsXG4gICAgICBzZWFyY2hJbml0aWFsOiAnQ29tZWNlIGEgZGlnaXRhciBvIG5vbWUgZGUgdW0gY2xpZW50ZSBwYXJhIGFzc29jacOhLWxvJyxcbiAgICAgIHNlYXJjaFBsYWNlaG9sZGVyOiAnQnVzY2FyIGNsaWVudGUnLFxuICAgICAgY2xpZW50SW5hY3RpdmU6ICdFc3RlIGNsaWVudGUgZXN0w6EgaW5hdGl2by4gUmVjb21lbmRhbW9zIHJlbW92w6otbG8gZGEgbGlzdGEuJyxcbiAgICAgIGNsaWVudERlbGV0ZWRUb29sdGlwOiAnRXN0ZSBjbGllbnRlIGZvaSBleGNsdcOtZG8uIFJlY29tZW5kYW1vcyByZW1vdsOqLWxvIGRhIGxpc3RhLicsXG4gICAgICBjbGllbnREZWxldGVkOiAnQ2xpZW50ZSBleGNsdcOtZG8nLFxuICAgICAgY2xpZW50c0Vycm9yOiAnVmVyaWZpcXVlIG9zIGNsaWVudGVzIGFzc29jaWFkb3MnLFxuICAgIH0sXG4gICAgcHJvY2Vzc2luZ0tub3dsZWRnZToge1xuICAgICAgZGVzY3JpcHRpb25DcmVhdGU6XG4gICAgICAgICdFc3RhbW9zIGNyaWFuZG8gbyBBZ2VudGUgZSBzdWEgYmFzZSBkZSBjb25oZWNpbWVudG8uIElzc28gcG9kZSBsZXZhciBhbGd1bnMgaW5zdGFudGVzLiBQb3IgZmF2b3IsIG7Do28gZmVjaGUgZXN0YSBqYW5lbGEgYXTDqSBxdWUgbyBwcm9jZXNzbyBzZWphIGNvbmNsdcOtZG8uJyxcbiAgICAgIGRlc2NyaXB0aW9uVXBkYXRlOlxuICAgICAgICAnRXN0YW1vcyBhdHVhbGl6YW5kbyBvIEFnZW50ZSBlIHN1YSBiYXNlIGRlIGNvbmhlY2ltZW50by4gSXNzbyBwb2RlIGxldmFyIGFsZ3VucyBpbnN0YW50ZXMuIFBvciBmYXZvciwgbsOjbyBmZWNoZSBlc3RhIGphbmVsYSBhdMOpIHF1ZSBvIHByb2Nlc3NvIHNlamEgY29uY2x1w61kby4nLFxuICAgICAgZmlsZVJvdzogJ0FycXVpdm8nLFxuICAgICAgc3RhdHVzUm93OiAnU3RhdHVzJyxcbiAgICAgIHBlbmRpbmc6ICdQZW5kZW50ZScsXG4gICAgICBwcm9jZXNzaW5nOiAnUHJvY2Vzc2FuZG8nLFxuICAgICAgZmFpbGVkOiAnRmFsaGEnLFxuICAgICAgZG9uZTogJ0NvbXBsZXRhZG8nLFxuICAgICAgbG9hZGluZ0ZpbGVzOiAnQ2FycmVnYW5kbyBhcnF1aXZvcy4uLicsXG4gICAgICBlcnJvcjoge30sXG4gICAgfSxcbiAgICBkZWxldGVBZ2VudE1vZGFsOiB7XG4gICAgICB0aXRsZTogJ0Rlc2VqYSBleGNsdWlyIGVzdGUgYWdlbnRlPycsXG4gICAgICBmaXJzdFBhcnQ6ICdWb2PDqiBlc3TDoSBwcmVzdGVzIGEgZXhjbHVpciAnLFxuICAgICAgc2Vjb25kUGFydDogJ0VzdGEgYcOnw6NvIG7Do28gcG9kZSBzZXIgZGVzZmVpdGEuJyxcbiAgICAgIGNhbmNlbDogJ0NhbmNlbGFyJyxcbiAgICAgIGRlbGV0ZTogJ0V4Y2x1aXInLFxuICAgIH0sXG4gIH0sXG4gIFtTRUNUSU9OUy5wcm9qZWN0U2VsZWN0b3JdOiB7XG4gICAgLi4uZ2VuZXJpY1NlY3Rpb24sXG4gICAgcHJvamVjdFNlbGVjdG9yOiB7XG4gICAgICB0aXRsZTogJ0VtIHF1YWwgcHJvamV0byB2b2PDqiBnb3N0YXJpYSBkZSBhanVkYT8nLFxuICAgICAgaGVsbG86IHtcbiAgICAgICAgdGl0bGU6ICdTb3UgTUFJQSwgc3VhIGVzcGVjaWFsaXN0YSBlbSBwcm9qZXRvcy4nLFxuICAgICAgICBzdWJ0aXRsZTpcbiAgICAgICAgICAnUGFyYSB0ZSBkYXIgcmVzcG9zdGFzIHByZWNpc2FzLCBwcmVjaXNvIHNhYmVyIHNvYnJlIHF1YWwgcHJvamV0byB2YW1vcyBjb252ZXJzYXIuIFF1YWwgdm9jw6ogZXNjb2xoZT8nLFxuICAgICAgfSxcbiAgICAgIHN1YnRpdGxlOiAnU2VsZWNpb25lIG8gcHJvamV0byBwYXJhIHF1ZSBhIE1BSUEgcmVzcG9uZGEgY29tIGJhc2UgZW0gdW0gY29udGV4dG8uJyxcbiAgICAgIGxhYmVsUHJvamVjdDogJ1NlbGVjaW9uZSB1bSBwcm9qZXRvJyxcbiAgICAgIHBsYWNlaG9sZGVyOiAnQnVzcXVlIHVtIHByb2pldG8gcGVsbyBub21lJyxcbiAgICAgIGNoYW5nZVByb2plY3Q6ICdNdWRhciBkZSBwcm9qZXRvJyxcbiAgICAgIHJlY2VudFByb2plY3RzOiAnUmVjZW50ZXMnLFxuICAgICAgc2VhcmNoaW5nUHJvamVjdHM6ICdCdXNjYW5kbyBzZXVzIHByb2pldG9zLi4uJyxcbiAgICAgIGVycm9yTWVzc2FnZTogJ09wcyEgVGl2ZW1vcyB1bSBwcm9ibGVtYSBhbyBjYXJyZWdhciBvcyBwcm9qZXRvcy4gUG9yIGZhdm9yLCB0ZW50ZSBub3ZhbWVudGUgZW0gYWxndW5zIG1pbnV0b3MuJyxcbiAgICAgIGVtcHR5UmVjZW50UHJvamVjdHM6ICdWb2PDqiBuw6NvIHRlbSBwcm9qZXRvcyByZWNlbnRlcy4gRGlnaXRlIG8gbm9tZSBkZSB1bSBwcm9qZXRvIG5hIGJ1c2NhIHBhcmEgZW5jb250csOhLWxvLicsXG4gICAgICBlbXB0eVN0YXRlOiAnT3BzISBOw6NvIGVuY29udHJhbW9zIHByb2pldG9zIGNvbSBlc3NlIG5vbWUuIFRlbnRlIG91dHJhIGJ1c2NhLicsXG4gICAgICB3aXRob3V0Q2xpZW50OiAnU2VtIGNsaWVudGUnLFxuICAgICAgd2l0aG91dFRpdGxlOiAnU2VtIHTDrXR1bG8nLFxuICAgIH0sXG4gIH0sXG4gIFtTRUNUSU9OUy5jbGllbnRTZWxlY3Rvcl06IHtcbiAgICAuLi5nZW5lcmljU2VjdGlvbixcbiAgICBjbGllbnRTZWxlY3Rvcjoge1xuICAgICAgdGl0bGU6ICdFbSBxdWFsIGNsaWVudGUgdm9jw6ogZ29zdGFyaWEgZGUgYWp1ZGE/JyxcbiAgICAgIGhlbGxvOiB7XG4gICAgICAgIHRpdGxlOiAnU291IE1BSUEsIHN1YSBlc3BlY2lhbGlzdGEgZW0gY2xpZW50ZXMuJyxcbiAgICAgICAgc3VidGl0bGU6XG4gICAgICAgICAgJ1BhcmEgdGUgZGFyIHJlc3Bvc3RhcyBwcmVjaXNhcywgcHJlY2lzbyBzYWJlciBzb2JyZSBxdWFsIGNsaWVudGUgdmFtb3MgY29udmVyc2FyLiBRdWFsIHZvY8OqIGVzY29saGU/JyxcbiAgICAgIH0sXG4gICAgICBzdWJ0aXRsZTogJ1NlbGVjaW9uZSBvIGNsaWVudGUgcGFyYSBxdWUgYSBNQUlBIHJlc3BvbmRhIGNvbSBiYXNlIGVtIHVtIGNvbnRleHRvLicsXG4gICAgICBsYWJlbENsaWVudDogJ1NlbGVjaW9uZSB1bSBjbGllbnRlJyxcbiAgICAgIHBsYWNlaG9sZGVyOiAnQnVzY2FyIGNsaWVudGUgcGVsbyBub21lJyxcbiAgICAgIGNoYW5nZUNsaWVudDogJ011ZGFyIGRlIGNsaWVudGUnLFxuICAgICAgcmVjZW50Q2xpZW50czogJ1JlY2VudGVzJyxcbiAgICAgIHNlYXJjaGluZ0NsaWVudHM6ICdCdXNjYW5kbyBzZXVzIGNsaWVudGVzLi4uJyxcbiAgICAgIGVycm9yTWVzc2FnZTogJ1RpdmVtb3MgdW0gcHJvYmxlbWEgYW8gY2FycmVnYXIgb3MgY2xpZW50ZXMuIFBvciBmYXZvciwgdGVudGUgbm92YW1lbnRlIGVtIGFsZ3VucyBtaW51dG9zLicsXG4gICAgICBlbXB0eVJlY2VudENsaWVudHM6ICdWb2PDqiBuw6NvIHRlbSBjbGllbnRlcyByZWNlbnRlcy4gRGlnaXRlIG8gbm9tZSBkZSB1bSBjbGllbnRlIG5hIGJ1c2NhIHBhcmEgZW5jb250csOhLWxvLicsXG4gICAgICBlbXB0eVN0YXRlOiAnT3BzISBOw6NvIGVuY29udHJhbW9zIGNsaWVudGVzIGNvbSBlc3NlIG5vbWUuIFRlbnRlIG91dHJhIGJ1c2NhLicsXG4gICAgICBwcm9qZWN0OiAncHJvamV0bycsXG4gICAgICBwcm9qZWN0czogJ3Byb2pldG9zJyxcbiAgICB9LFxuICB9LFxufVxuIl0sIm1hcHBpbmdzIjoiOzs7QUFBQSxTQUFTQSxRQUFRLFFBQVEsd0JBQXdCO0FBQ2pELFNBQVNDLHdCQUF3QixRQUFRLHNDQUFzQztBQUUvRSxJQUFNQyxPQUFPLEdBQUc7RUFDZEMsS0FBSyxFQUFFLFFBQVE7RUFDZkMsUUFBUSxFQUFFLGdCQUFnQjtFQUMxQkMsU0FBUyxFQUFFLE1BQU07RUFDakJDLE1BQU0sRUFBRSxVQUFVO0VBQ2xCQyxRQUFRLEVBQUUsVUFBVTtFQUNwQkMsTUFBTSxFQUFFLGtCQUFrQjtFQUMxQkMsSUFBSSxFQUFFLFFBQVE7RUFDZEMsTUFBTSxFQUFFLFNBQVM7RUFD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QUFJLEVBQUUsWUFBWTtJQUNsQkMsWUFBWSxFQUFFLHdCQUF3QjtJQUN0Q3ZULEtBQUssRUFBRSxDQUFDO0VBQ1YsQ0FBQztFQUNEd1QsZ0JBQWdCLEVBQUU7SUFDaEJ2VCxLQUFLLEVBQUUsNkJBQTZCO0lBQ3BDaUgsU0FBUyxFQUFFLDhCQUE4QjtJQUN6Q0MsVUFBVSxFQUFFLGtDQUFrQztJQUM5Q3BILE1BQU0sRUFBRSxVQUFVO0lBQ2xCLFVBQVE7RUFDVjtBQUFDLEtBRUZkLFFBQVEsQ0FBQ3dVLGVBQWUsRUFBQXJRLGFBQUEsQ0FBQUEsYUFBQSxLQUNwQmhELGNBQWM7RUFDakJxVCxlQUFlLEVBQUU7SUFDZnhULEtBQUssRUFBRSx5Q0FBeUM7SUFDaERNLEtBQUssRUFBRTtNQUNMTixLQUFLLEVBQUUseUNBQXlDO01BQ2hEMEMsUUFBUSxFQUNOO0lBQ0osQ0FBQztJQUNEQSxRQUFRLEVBQUUsdUVBQXVFO0lBQ2pGK1EsWUFBWSxFQUFFLHNCQUFzQjtJQUNwQ2pPLFdBQVcsRUFBRSw2QkFBNkI7SUFDMUNLLGFBQWEsRUFBRSxrQkFBa0I7SUFDakM2TixjQUFjLEVBQUUsVUFBVTtJQUMxQkMsaUJBQWlCLEVBQUUsMkJBQTJCO0lBQzlDQyxZQUFZLEVBQUUsaUdBQWlHO0lBQy9HQyxtQkFBbUIsRUFBRSx3RkFBd0Y7SUFDN0dDLFVBQVUsRUFBRSxpRUFBaUU7SUFDN0VDLGFBQWEsRUFBRSxhQUFhO0lBQzVCQyxZQUFZLEVBQUU7RUFDaEI7QUFBQyxLQUVGaFYsUUFBUSxDQUFDNE8sY0FBYyxFQUFBekssYUFBQSxDQUFBQSxhQUFBLEtBQ25CaEQsY0FBYztFQUNqQnlOLGNBQWMsRUFBRTtJQUNkNU4sS0FBSyxFQUFFLHlDQUF5QztJQUNoRE0sS0FBSyxFQUFFO01BQ0xOLEtBQUssRUFBRSx5Q0FBeUM7TUFDaEQwQyxRQUFRLEVBQ047SUFDSixDQUFDO0lBQ0RBLFFBQVEsRUFBRSx1RUFBdUU7SUFDakZ1UixXQUFXLEVBQUUsc0JBQXNCO0lBQ25Dek8sV0FBVyxFQUFFLDBCQUEwQjtJQUN2QzBPLFlBQVksRUFBRSxrQkFBa0I7SUFDaENDLGFBQWEsRUFBRSxVQUFVO0lBQ3pCQyxnQkFBZ0IsRUFBRSwyQkFBMkI7SUFDN0NSLFlBQVksRUFBRSw0RkFBNEY7SUFDMUdTLGtCQUFrQixFQUFFLHdGQUF3RjtJQUM1R1AsVUFBVSxFQUFFLGlFQUFpRTtJQUM3RWpHLE9BQU8sRUFBRSxTQUFTO0lBQ2xCOUwsUUFBUSxFQUFFO0VBQ1o7QUFBQyIsImlnbm9yZUxpc3QiOltdfQ==
|
|
522
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTRUNUSU9OUyIsIlByb2plY3RTdW1tYXJ5Q29uZmlnS2V5cyIsImdsb2JhbHMiLCJjbG9zZSIsImhvd1dvcmtzIiwiYnJhbmROYW1lIiwiZXhwYW5kIiwiY29sbGFwc2UiLCJnb0JhY2siLCJjb3B5IiwiY29waWVkIiwic2F2ZWQiLCJzZWxlY3RQcm9qZWN0Iiwic2F2ZSIsImNhbmNlbCIsImVycm9yIiwidGl0bGUiLCJkZXNjcmlwdGlvbiIsInRyeUFnYWluIiwiZ2VuZXJpY1NlY3Rpb24iLCJwcm9qZWN0U3VtbWFyeVNlY3Rpb24iLCJyZXN1bWUiLCJoZWxsbyIsIndlbGNvbWUiLCJmZWVkYmFjayIsInRodW1ic1VwIiwidGh1bWJzRG93biIsInNvdXJjZXMiLCJjb25maWciLCJwcm9qZWN0U3VtbWFyeSIsInByb2plY3RTdW1tYXJ5VGl0bGUiLCJzZWxlY3RlZFByb2plY3QiLCJjb25maWd1cmVSZXN1bWUiLCJnZW5lcmF0aW5nUmVzdW1lIiwiZ2VuZXJhdGVSZXN1bWUiLCJoaWRlQ29uZmlnIiwiY29uZmlndXJlU2V0dGluZ3MiLCJfZGVmaW5lUHJvcGVydHkiLCJHRU5FUkFMX1NUQVRVUyIsIklOQ09NRV9DT1NUUyIsIlRJTUVfSE9VUlMiLCJUQVNLU19QUk9HUkVTUyIsIlJFV09SS1MiLCJob21lTWVudSIsImZhcSIsImVtcHR5IiwiY2F0ZWdvcmllcyIsInByb2plY3RzIiwidGFza3MiLCJob3VycyIsInJld29ya3MiLCJ1bmRlZmluZWQiLCJjcmVhdGVkQnkiLCJjcmVhdGVkQnlUb29sdGlwIiwiY3JlYXRlZEJ5VG9vbHRpcERlbGV0ZWQiLCJ0aXRsZV8xIiwidGl0bGVfMiIsInRpdGxlXzMiLCJzdWJ0aXRsZSIsInRpdGxlUG0iLCJzdWJ0aXRsZVBtIiwibWFpYWtlciIsImNyZWF0ZU1hbnVhbEFnZW50IiwiYmFkZ2VOZXciLCJicmllZkNhcmQiLCJwcm9tcHQiLCJjb21pbmdTb29uQ2FyZCIsIl9vYmplY3RTcHJlYWQiLCJjaGF0QUkiLCJidXR0b24iLCJuZXdDaGF0Iiwib3BlbkFnZW50Q3JlYXRvciIsIm9wZW5NYXJrZXRwbGFjZSIsImhpc3RvcnkiLCJ0b29sdGlwIiwiaXRlbSIsImRhdGUiLCJtZW51IiwicmVuYW1lIiwibG9hZGluZ01vcmUiLCJvbmJvYXJkaW5nIiwibWFpYSIsImFnZW50Q3VzdG9tIiwiaG93Q3JlYXRlQWdlbnQiLCJob3dJdFdvcmtzIiwicWEiLCJpdGVtcyIsInJlbnRhYmlsaWRhZF9wcm95ZWN0byIsImF2YW5jZV9wcm95ZWN0byIsInRhcmVhc19wcm95ZWN0byIsImNoYXQiLCJnZW5lcmF0aW5nIiwiZ2VuZXJhdGluZ0F0dGFjaG1lbnQiLCJnZW5lcmF0aW5nRGVlcFNlYXJjaCIsImdlbmVyYXRpbmdXZWJTZWFyY2giLCJzdWdnZXN0aW9uc1RpdGxlIiwiY3JlYXRlQWdlbnRBY3Rpb25zVGl0bGUiLCJjcmVhdGVBZ2VudEFjdGlvblN0YXJ0Q2hhdCIsImNyZWF0ZUFnZW50QWN0aW9uS25vd2xlZGdlIiwiY3JlYXRlQWdlbnRBY3Rpb25Mb2FkRXJyb3IiLCJ3cml0aW5nIiwiZXhlY3V0aW5nQWN0aW9uIiwicHJvY2Vzc2luZyIsImZvb3RlciIsInBsYWNlaG9sZGVyIiwiYWdlbnRMYWJlbCIsImRpc2NsYWltZXIiLCJkaXNjbGFpbWVyQWdlbnQiLCJlcnJvckFjY2Vzc0RlbmllZCIsImNoYW5nZVByb2plY3QiLCJzZWFyY2hXZWIiLCJkZWVwU2VhcmNoIiwiYXR0YWNoRmlsZSIsInNlbmQiLCJsaW1pdEZpbGVzIiwic3RvcCIsImNhbmNlbGxlZCIsImF0dGFjaG1lbnRQcmV2aWV3TW9kYWwiLCJsb2FkaW5nIiwidW5zdXBwb3J0ZWRGaWxlTWVzc2FnZSIsInR5cGVMYWJlbCIsInVua25vd24iLCJzaXplTGFiZWwiLCJleGNlbCIsInNoZWV0U2VsZWN0b3JMYWJlbCIsImxvYWRFcnJvciIsImZpbGVSZWFkRXJyb3IiLCJzaGVldExvYWRFcnJvciIsImRlbGV0ZVF1ZXN0aW9uTW9kYWwiLCJmaXJzdFBhcnQiLCJzZWNvbmRQYXJ0IiwiZWRpdFF1ZXN0aW9uTW9kYWwiLCJuZXdOYW1lIiwibWF4TGVuZ3RoIiwibW9kYWxGaWxlRXhjZWVkcyIsImxpbWl0RmlsZXNUaXRsZSIsImxpbWl0U2l6ZVRpdGxlIiwibGltaXRGaWxlc0Rlc2NyaXB0aW9uIiwibGltaXRTaXplRGVzY3JpcHRpb24iLCJhY2NlcHQiLCJsaW1pdCIsInNvdXJjZXNJbmZvcm1hdGlvbk1vZGFsIiwiYWdlbnRzIiwibmV3QWdlbnQiLCJjcmVhdGVBZ2VudCIsImVkaXQiLCJhZGRGYXZvcml0ZSIsInJlbW92ZUZhdm9yaXRlIiwiZmF2b3JpdGVUb2dnbGVkQWRkZWRTdWNjZXNzIiwiZmF2b3JpdGVUb2dnbGVkUmVtb3ZlZFN1Y2Nlc3MiLCJmYXZvcml0ZVRvZ2dsZWRFcnJvciIsImZhdm9yaXRlVG9nZ2xlZFJlbW92ZWRFcnJvciIsIm1haWFJbnRyb2R1Y3Rpb24iLCJjb252ZXJzYXRpb25zIiwiYWdlbnRzU2VjdGlvblRpdGxlIiwibWFpYWtlck5hdiIsIm15QWdlbnRzTmF2IiwiZW1wdHlMYWJlbCIsIm1hcmtldHBsYWNlIiwiYmFjayIsIm15QWdlbnRzVGl0bGUiLCJteUFnZW50c1JlYWR5VGl0bGUiLCJteUFnZW50c0Rlc2NyaXB0aW9uIiwibXlBZ2VudHNFbXB0eVN0YXRlVGl0bGUiLCJteUFnZW50c0VtcHR5U3RhdGVEZXNjcmlwdGlvbiIsIm15QWdlbnRzRW1wdHlTdGF0ZURlc2NyaXB0aW9uTm9QZXJtIiwibXlBZ2VudHNFbXB0eVN0YXRlQnV0dG9uIiwibXlBZ2VudHNGYWxsYmFja0ludHJvIiwibXlBZ2VudHNGYWxsYmFja0Rlc2NyaXB0aW9uIiwibXlBZ2VudHNGYWxsYmFja0RhdGUiLCJteUFnZW50c1RvZGF5IiwibXlBZ2VudHNPbmVEYXlBZ28iLCJteUFnZW50c0RheXNBZ28iLCJjYXJkTWVudUFyaWFMYWJlbCIsInVzZSIsInVzZVRlbXBsYXRlIiwidXNlTXlBZ2VudCIsImJhZGdlcyIsImJyYW5kaW5nIiwibGlua2VkaW4iLCJtYXJrZXRpbmciLCJzbmFja2JhciIsImRlbGV0ZUNoYXQiLCJzdWNjZXNzIiwicmVuYW1lZENoYXQiLCJsb2FkTW9yZUFnZW50cyIsImFwcHJvdmFsQm94IiwidW50aXRsZWRBZ2VudCIsImFjdGlvbnMiLCJjcmVhdGVfdGFzayIsImNyZWF0ZV90YXNrc19iYXRjaCIsImNyZWF0ZV9hZ2VudCIsImVkaXRfYWdlbnQiLCJlZGl0X3Rhc2siLCJlZGl0X3Rhc2tzX2JhdGNoIiwiZGVsZXRlX3Rhc2siLCJkZWxldGVfdGFza3NfYmF0Y2giLCJ0YXNrX2Fzc2lnbiIsInRhc2tfdW5hc3NpZ24iLCJhc3NpZ25fdGFza19sYWJlbCIsInVwZGF0ZV90YXNrX3R5cGUiLCJ1cGRhdGVfZXN0aW1hdGVkX2hvdXJzIiwidXBkYXRlX2RlbGl2ZXJhYmxlIiwiY3JlYXRlX2hvdXIiLCJjcmVhdGVfY2hlY2tsaXN0IiwiY2xvbmVfdGFzayIsImdldF90YXNrX2RhdGVfaG91cnMiLCJjb25maWd1cmVfYWdlbnRfYWNjZXNzIiwic2VuZF90YXNrX21lc3NhZ2UiLCJkZWxldGVfY2hlY2tsaXN0X2l0ZW0iLCJyZW1vdmVfdGFza190eXBlIiwicmVtb3ZlX3Rhc2tfbGFiZWwiLCJjb3VudF9kZWxpdmVyYWJsZSIsImNyZWF0ZV9yZXdvcmsiLCJ1cGRhdGVfcmV3b3JrIiwiZGVsZXRlX2FnZW50Iiwic3BlY2lhbCIsImNyZWF0ZVJld29yayIsInVwZGF0ZURlbGl2ZXJhYmxlQ2hpbGRyZW4iLCJmaWVsZHMiLCJuYW1lIiwiZW1vamkiLCJpbnRyb2R1Y3Rpb24iLCJpbnB1dF9wbGFjZWhvbGRlciIsInVzZXJfcHJvbXB0IiwibGFuZ3VhZ2UiLCJwcm92aWRlciIsIm1vZGVsX25hbWUiLCJhcGlfa2V5IiwiYXBwcm92ZSIsImRlbnkiLCJtYW51YWxBcHByb3ZhbFdhcm5pbmciLCJzdGF0dXMiLCJhcHByb3ZlZCIsImRlbmllZCIsImNoaXBMbG0iLCJjbGllbnRTZWxlY3RvciIsInByb2plY3QiLCJhYm1BZ2VudCIsImxlZ2VuZERlbGV0ZWRBZ2VudCIsImxlZ2VuZFByb2plY3REZWxldGVkIiwibGVnZW5kTm9BY2Nlc3MiLCJsZWdlbmROb1Blcm1pc3Npb25zIiwibGVnZW5kTW9kZWxEZXByZWNhdGVkIiwibGVnZW5kUHJvdmlkZXJTdGF0dXMiLCJjaGFuZ2VNb2RlbCIsImxheW91dE1lbnVUb29sdGlwIiwibGF5b3V0U2lkZWJhciIsImxheW91dEZ1bGxzY3JlZW4iLCJsYXlvdXRGbG9hdGluZyIsImFkZEFnZW50IiwiZWRpdEFnZW50IiwiZGVsZXRlQWdlbnQiLCJzZW5kRmVlZGJhY2siLCJzYXZlQ2hhbmdlcyIsImNyZWF0ZUFnZW50TGFiZWxCdXR0b24iLCJjb25maXJtQWdlbnRDcmVhdGVkIiwiY29uZmlybUFnZW50VXBkYXRlZFdpdGhGaWxlc0Vycm9yIiwiY29uZmlybUFnZW50V2l0aEZpbGVzRXJyb3IiLCJjb25maXJtQWdlbnREZWxldGVkIiwiY29uZmlybUFnZW50VXBkYXRlZCIsImNvbmZpcm1DbG9zZUNyZWF0ZUFnZW50IiwiY29uZmlybUNsb3NlRWRpdEFnZW50IiwiY29uZmlybVJlbG9hZEJyb3dzZXIiLCJlcnJvckFnZW50Q3JlYXRlZCIsImF0dGFjaG1lbnRDYXJkIiwiZG93bmxvYWQiLCJnZW5lcmFsU2VjdGlvbiIsImdlbmVyYWxTZXR0aW5ncyIsInJlcXVpcmVkRmllbGRzTGFiZWwiLCJpbmZvTGFiZWwiLCJvcHRpb25hbExhYmVsIiwiYmFzaWNTZXR0aW5ncyIsInNlbGVjdEVtb2ppIiwibmFtZVBsYWNlaG9sZGVyIiwiYmVoYXZpb3JTZXR0aW5ncyIsImluaXRpYWxQcm9tcHQiLCJpbml0aWFsUHJvbXB0UGxhY2Vob2xkZXIiLCJtb2RlbEFpTGFiZWwiLCJub01vZGVsc0F2YWlsYWJsZSIsImlucHV0UGxhY2Vob2xkZXJUaXRsZSIsImlucHV0UGxhY2Vob2xkZXIiLCJpbnRyb2R1Y3Rpb25QbGFjZWhvbGRlciIsIm1heENhcmFjdGVyTmFtZSIsIm1heENhcmFjdGVySW5pdGlhbFByb21wdCIsIm1heElucHV0UGxhY2Vob2xkZXIiLCJtYXhDYXJhY3RlckludHJvZHVjdGlvbiIsImhvd1RvV3JpdGVQcm9tcHQiLCJ3aGF0SXNNb2RlbEFpVGl0bGUiLCJ3aGF0SXNNb2RlbEFpIiwia25vd2xlZGdlU2VjdGlvbiIsImtub3dsZWRnZVRhYiIsInNlbGVjdEZpbGVUaXRsZSIsImF0dGFjaEZpbGVzIiwiZHJvcFpvbmVUZXh0IiwiaW5mb0ZpbGVUeXBlcyIsIm1heEZpbGVzVGl0bGUiLCJtYXhGaWxlc0Rlc2NyaXB0aW9uIiwibWF4U2l6ZVRpdGxlIiwibWF4U2l6ZURlc2NyaXB0aW9uIiwiaW52YWxpZEV4dGVuc2lvbkRlc2NyaXB0aW9uIiwibW9yZUluZm8iLCJhY2Nlc3NpYmlsaXR5U2VjdGlvbiIsInRpdGxlVGFiIiwidGl0bGVTZWN0aW9uIiwic3VidGl0bGVTZWN0aW9uIiwid2hvQ2FuQWNjZXNzIiwiYWxsQ29tcGFueVRpdGxlIiwiYWxsQ29tcGFueURlc2NyaXB0aW9uIiwiY2xpZW50VGl0bGUiLCJjbGllbnREZXNjcmlwdGlvbiIsIm93blRpdGxlIiwib3duRGVzY3JpcHRpb24iLCJjbGllbnRzU2VsZWN0ZWQiLCJzZWFyY2hFcnJvciIsInNlYXJjaEVtcHR5Iiwic2VhcmNoSW5pdGlhbCIsInNlYXJjaFBsYWNlaG9sZGVyIiwiY2xpZW50SW5hY3RpdmUiLCJjbGllbnREZWxldGVkVG9vbHRpcCIsImNsaWVudERlbGV0ZWQiLCJjbGllbnRzRXJyb3IiLCJwcm9jZXNzaW5nS25vd2xlZGdlIiwiZGVzY3JpcHRpb25DcmVhdGUiLCJkZXNjcmlwdGlvblVwZGF0ZSIsImZpbGVSb3ciLCJzdGF0dXNSb3ciLCJwZW5kaW5nIiwiZmFpbGVkIiwiZG9uZSIsImxvYWRpbmdGaWxlcyIsImRlbGV0ZUFnZW50TW9kYWwiLCJwcm9qZWN0U2VsZWN0b3IiLCJsYWJlbFByb2plY3QiLCJyZWNlbnRQcm9qZWN0cyIsInNlYXJjaGluZ1Byb2plY3RzIiwiZXJyb3JNZXNzYWdlIiwiZW1wdHlSZWNlbnRQcm9qZWN0cyIsImVtcHR5U3RhdGUiLCJ3aXRob3V0Q2xpZW50Iiwid2l0aG91dFRpdGxlIiwibGFiZWxDbGllbnQiLCJjaGFuZ2VDbGllbnQiLCJyZWNlbnRDbGllbnRzIiwic2VhcmNoaW5nQ2xpZW50cyIsImVtcHR5UmVjZW50Q2xpZW50cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9sYW5nL2JyL2luZGV4LmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNFQ1RJT05TIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL2NvbmZpZydcbmltcG9ydCB7IFByb2plY3RTdW1tYXJ5Q29uZmlnS2V5cyB9IGZyb20gJy4uLy4uL3R5cGVzL1Byb2plY3RTdW1tYXJ5Q29uZmlnS2V5cydcblxuY29uc3QgZ2xvYmFscyA9IHtcbiAgY2xvc2U6ICdGZWNoYXInLFxuICBob3dXb3JrczogJ0NvbW8gZnVuY2lvbmE/JyxcbiAgYnJhbmROYW1lOiAnTUFJQScsXG4gIGV4cGFuZDogJ0V4cGFuZGlyJyxcbiAgY29sbGFwc2U6ICdSZWNvbGhlcicsXG4gIGdvQmFjazogJ1ZvbHRhciBhbyBpbsOtY2lvJyxcbiAgY29weTogJ0NvcGlhcicsXG4gIGNvcGllZDogJ0NvcGlhZG8nLFxuICBzYXZlZDogJ1NhbHZvJyxcbiAgc2VsZWN0UHJvamVjdDogJ1NlbGVjaW9uYXIgcHJvamV0bycsXG4gIHNhdmU6ICdTYWx2YXInLFxuICBjYW5jZWw6ICdDYW5jZWxhcicsXG59XG5cbmNvbnN0IGVycm9yID0ge1xuICB0aXRsZTogJ09jb3JyZXUgdW0gcHJvYmxlbWEnLFxuICBkZXNjcmlwdGlvbjogJ05vIG1vbWVudG8sIGVzdGFtb3MgZW5mcmVudGFuZG8gYWxndW5zIHByb2JsZW1hcywgcG9yIGZhdm9yLCB0ZW50ZSBub3ZhbWVudGUgZW0gYWxndW5zIG1pbnV0b3MuJyxcbiAgdHJ5QWdhaW46ICdUZW50YXIgbm92YW1lbnRlJyxcbn1cblxuY29uc3QgZ2VuZXJpY1NlY3Rpb24gPSB7XG4gIGVycm9yLFxuICBnbG9iYWxzLFxufVxuXG5jb25zdCBwcm9qZWN0U3VtbWFyeVNlY3Rpb24gPSB7XG4gIHJlc3VtZTogJ1Jlc3VtaXInLFxuICBoZWxsbzogJ09sw6EsIHt7bmFtZX19IScsXG4gIHdlbGNvbWU6ICdTb3UgYSBNQUlBLCBzdWEgYXNzaXN0ZW50ZSBuYSBDT1InLFxuXG4gIGZlZWRiYWNrOiB7XG4gICAgdGh1bWJzVXA6ICdGb2kgw7p0aWwgcGFyYSBtaW0nLFxuICAgIHRodW1ic0Rvd246ICdOw6NvIGZvaSDDunRpbCBwYXJhIG1pbScsXG4gICAgc291cmNlczogJ0Z1ZW50ZXMnLFxuICB9LFxuXG4gIGNvbmZpZzoge1xuICAgIHByb2plY3RTdW1tYXJ5OiAnUmVzdW1pciBwcm9qZXRvJyxcbiAgICBwcm9qZWN0U3VtbWFyeVRpdGxlOiAnUmVzdW1vIGRlIHByb2pldG9zJyxcbiAgICBnb0JhY2s6ICdWb2x0YXIgYW8gaW7DrWNpbycsXG4gICAgc2VsZWN0ZWRQcm9qZWN0OiAnUHJvamV0byBzZWxlY2lvbmFkbycsXG4gICAgc2VsZWN0UHJvamVjdDogJ1NlbGVjaW9uYXIgcHJvamV0bycsXG4gICAgY29uZmlndXJlUmVzdW1lOiAnQ29uZmlndXJhw6fDtWVzIGF2YW7Dp2FkYXMnLFxuICAgIGdlbmVyYXRpbmdSZXN1bWU6ICdHZXJhbmRvIHJlc3VtbycsXG4gICAgZ2VuZXJhdGVSZXN1bWU6ICdHZXJhcicsXG4gICAgaGlkZUNvbmZpZzogJ09jdWx0YXIgY29uZmlndXJhw6fDtWVzJyxcbiAgfSxcblxuICBjb25maWd1cmVTZXR0aW5nczoge1xuICAgIFtQcm9qZWN0U3VtbWFyeUNvbmZpZ0tleXMuR0VORVJBTF9TVEFUVVNdOiAnRGF0YXMgZSBwcmF6b3MnLFxuICAgIFtQcm9qZWN0U3VtbWFyeUNvbmZpZ0tleXMuSU5DT01FX0NPU1RTXTogJ1JlbnRhYmlsaWRhZGUnLFxuICAgIFtQcm9qZWN0U3VtbWFyeUNvbmZpZ0tleXMuVElNRV9IT1VSU106ICdFc3RpbWF0aXZhIGRlIGhvcmFzIGUgdXNvJyxcbiAgICBbUHJvamVjdFN1bW1hcnlDb25maWdLZXlzLlRBU0tTX1BST0dSRVNTXTogJ1RhcmVmYXMgZSBhdmFuw6dvcycsXG4gICAgW1Byb2plY3RTdW1tYXJ5Q29uZmlnS2V5cy5SRVdPUktTXTogJ1JldHJhYmFsaG8nLFxuICB9LFxufVxuXG5jb25zdCBob21lTWVudSA9IHtcbiAgcHJvamVjdFN1bW1hcnk6IHtcbiAgICB0aXRsZTogJ1Jlc3VtbyBkbyBwcm9qZXRvJyxcbiAgICBkZXNjcmlwdGlvbjogJ0VsYWJvcmUgcmVsYXTDs3Jpb3MgY29tIElBIGNvbSBiYXNlIG5vIHNldSBwcm9qZXRvJyxcbiAgfSxcbiAgZmFxOiB7XG4gICAgdGl0bGU6ICdQZXJndW50YXMgRnJlcXVlbnRlcycsXG4gICAgZW1wdHk6ICdOw6NvIGjDoSBwZXJndW50YXMgZnJlcXVlbnRlcycsXG4gICAgZXJyb3I6XG4gICAgICAnT3BzISBUaXZlbW9zIHVtIHByb2JsZW1hIGFvIGNhcnJlZ2FyIGFzIHBlcmd1bnRhcyBmcmVxdWVudGVzLiBQb3IgZmF2b3IsIHRlbnRlIG5vdmFtZW50ZSBlbSBhbGd1bnMgbWludXRvcy4nLFxuICAgIGNhdGVnb3JpZXM6IHtcbiAgICAgIHByb2plY3RzOiAnUHJvamV0bycsXG4gICAgICB0YXNrczogJ1RhcmVmYXMnLFxuICAgICAgaG91cnM6ICdIb3JhcycsXG4gICAgICByZXdvcmtzOiAnUmV0cmFiYWxob3MnLFxuICAgICAgdW5kZWZpbmVkOiAnU2VtIGNhdGVnb3JpYScsXG4gICAgfSxcbiAgfSxcbiAgY3JlYXRlZEJ5OiAncG9yJyxcbiAgY3JlYXRlZEJ5VG9vbHRpcDogJ1VzdcOhcmlvIGNyaWFkb3IgZG8gYWdlbnRlJyxcbiAgY3JlYXRlZEJ5VG9vbHRpcERlbGV0ZWQ6ICdVc3XDoXJpbyBleGNsdcOtZG8uIFNldSBub21lIMOpIG1hbnRpZG8gcGFyYSByZWZlcsOqbmNpYS4nLFxuICBoZWxsbzoge1xuICAgIHRpdGxlOiAnUHJvbnRvISBKw6EgZXN0b3UgdXNhbmRvIG8gcHJvamV0bycsXG4gICAgdGl0bGVfMTogJ0FudGVjaXBlIGRlc3Zpb3MuIFZhbW9zIGFuYWxpc2FyIGVzdGUgcHJvamV0by4nLFxuICAgIHRpdGxlXzI6ICdPIHF1ZSB2b2PDqiBxdWVyIHF1ZSBhbmFsaXNlbW9zPyBIb3JhcywgZXN0aW1hdGl2YXMsIHJldHJhYmFsaG9zPyBWb2PDqiBlc2NvbGhlIScsXG4gICAgdGl0bGVfMzogJ1ZhbW9zIHJldmlzYXIgbyBhbmRhbWVudG8gZGVzdGUgcHJvamV0by4nLFxuICAgIHN1YnRpdGxlOiAnUGFyYSBjb21lw6dhciwgcG9zc28gdGUgYWp1ZGFyIGNvbSBlc3NhcyBvcMOnw7Vlcy4gT3UsIHNlIHByZWZlcmlyLCBlc2NyZXZhIGRpcmV0YW1lbnRlIHN1YSBwZXJndW50YSEnLFxuICAgIHRpdGxlUG06ICdPbMOhLCB7e25hbWV9fSEgU291IHt7YWdlbnR9fSwgc3VhIGFzc2lzdGVudGUnLFxuICAgIHN1YnRpdGxlUG06ICdQYXJhIHRlIGRhciByZXNwb3N0YXMgcHJlY2lzYXMsIHByZWNpc28gc2FiZXIgc29icmUgcXVhbCBwcm9qZXRvIHZhbW9zIGNvbnZlcnNhci4gUXVhbCB2b2PDqiBlc2NvbGhlPycsXG4gIH0sXG4gIG1haWFrZXI6IHtcbiAgICB0aXRsZTogJ1RyYW5zZm9ybWUgcHJvY2Vzc29zIHJlcGV0aXRpdm9zIGVtIGFnZW50ZXMgaW50ZWxpZ2VudGVzJyxcbiAgICBkZXNjcmlwdGlvbjogJ0NyaWUgYWdlbnRlcyBxdWUgYW5hbGlzZW0gZSBnZXJlbSBjb250ZcO6ZG8gZGUgYWNvcmRvIGNvbSBhcyBzdWFzIG5lY2Vzc2lkYWRlcy4nLFxuICAgIGNyZWF0ZU1hbnVhbEFnZW50OiAnQ3JpYXIgYWdlbnRlIG1hbnVhbG1lbnRlJyxcbiAgICBiYWRnZU5ldzogJ05vdm8nLFxuICAgIGJyaWVmQ2FyZDoge1xuICAgICAgdGl0bGU6ICdBZ2VudGUgZXNwZWNpYWxpc3RhIGVtIGJyaWVmJyxcbiAgICAgIGRlc2NyaXB0aW9uOiAnQ3JpZSBlIG1lbGhvcmUgYnJpZWZzIHBhcmEgcXVlIGVzdGVqYW0gcHJvbnRvcyBwYXJhIHVzYXIgZW0gdGFyZWZhcy4nLFxuICAgICAgcHJvbXB0OiAnUXVlcm8gY3JpYXIgdW0gYWdlbnRlIGVzcGVjaWFsaXN0YSBlbSBicmllZi4nLFxuICAgIH0sXG4gICAgY29taW5nU29vbkNhcmQ6IHtcbiAgICAgIHRpdGxlOiAnRW0gYnJldmUsIG1haXMgbm92aWRhZGVzJyxcbiAgICAgIGRlc2NyaXB0aW9uOiAnRXN0YW1vcyB0cmFiYWxoYW5kbyBwYXJhIG9mZXJlY2VyIG1haXMgYWdlbnRlcycsXG4gICAgfSxcbiAgfSxcbn1cblxuZXhwb3J0IGRlZmF1bHQge1xuICBbU0VDVElPTlMucHJvamVjdFN1bW1hcnldOiB7XG4gICAgLi4uZ2VuZXJpY1NlY3Rpb24sXG4gICAgLi4ucHJvamVjdFN1bW1hcnlTZWN0aW9uLFxuICB9LFxuICBbU0VDVElPTlMuY2hhdEFJXToge1xuICAgIC4uLmdlbmVyaWNTZWN0aW9uLFxuICAgIC4uLnByb2plY3RTdW1tYXJ5U2VjdGlvbixcbiAgICBob21lTWVudSxcblxuICAgIGJ1dHRvbjogJ0lBJyxcbiAgICB0aXRsZTogJ09sw6EsIHt7bmFtZX19IScsXG4gICAgbmV3Q2hhdDogJ05vdm8gY2hhdCcsXG4gICAgZGVzY3JpcHRpb246ICdTb3UgYSBNQUlBLCBzdWEgYXNzaXN0ZW50ZSwgZSBlc3RvdSBhcXVpIHBhcmEgdGUgYWp1ZGFyIGNvbSBhcyBzdWFzIGTDunZpZGFzLicsXG4gICAgb3BlbkFnZW50Q3JlYXRvcjogJ0NyaWFyIGFnZW50ZScsXG4gICAgb3Blbk1hcmtldHBsYWNlOiAnTWFya2V0cGxhY2UgZGUgYWdlbnRlcycsXG4gICAgaGlzdG9yeToge1xuICAgICAgdG9vbHRpcDogJ0hpc3TDs3JpY28nLFxuICAgICAgdGl0bGU6ICdIaXN0w7NyaWNvIHZhemlvJyxcbiAgICAgIGRlc2NyaXB0aW9uOiAnTmVuaHVtYSBjb252ZXJzYSBlbmNvbnRyYWRhJyxcbiAgICAgIGl0ZW06IHtcbiAgICAgICAgZGF0ZTogJ8OabHRpbWEgYXR1YWxpemHDp8OjbyB7e2RhdGV9fScsXG4gICAgICB9LFxuICAgICAgbWVudToge1xuICAgICAgICByZW5hbWU6ICdSZW5vbWVhcicsXG4gICAgICAgIGRlbGV0ZTogJ0V4Y2x1aXInLFxuICAgICAgfSxcbiAgICAgIGxvYWRpbmdNb3JlOiAnQ2FycmVnYW5kbyBtYWlzIGNvbnZlcnNhcycsXG4gICAgfSxcbiAgICBvbmJvYXJkaW5nOiB7XG4gICAgICBtYWlhOiAnTUFJQScsXG4gICAgICBhZ2VudEN1c3RvbTogJ0FnZW50ZXMgY3VzdG9tJyxcbiAgICAgIGhvd0NyZWF0ZUFnZW50OiAnQ29tbyBjcmlhciB1bSBhZ2VudGU/JyxcbiAgICAgIHRvb2x0aXA6ICdDb21vIGZ1bmNpb25hPycsXG4gICAgICBob3dJdFdvcmtzOiAnQ29tbyBmdW5jaW9uYT8nLFxuICAgIH0sXG4gICAgcWE6IHtcbiAgICAgIHRpdGxlOiAnUGVyZ3VudGFzIEZyZXF1ZW50ZXMnLFxuICAgICAgaXRlbXM6IHtcbiAgICAgICAgcmVudGFiaWxpZGFkX3Byb3llY3RvOiAnUXVhbCDDqSBhIHJlbnRhYmlsaWRhZGUgZGVzdGUgcHJvamV0bz8nLFxuICAgICAgICBhdmFuY2VfcHJveWVjdG86ICdRdWFpcyBzw6NvIG9zIGF2YW7Dp29zIGRlc3RlIHByb2pldG8/JyxcbiAgICAgICAgdGFyZWFzX3Byb3llY3RvOiAnUXVhaXMgc8OjbyBhcyBwcsOzeGltYXMgdGFyZWZhcyBhIHZlbmNlcj8nLFxuICAgICAgfSxcbiAgICB9LFxuICAgIGNoYXQ6IHtcbiAgICAgIGdlbmVyYXRpbmc6ICdQZW5zYW5kbycsXG4gICAgICBnZW5lcmF0aW5nQXR0YWNobWVudDogJ0FuYWxpc2FuZG8gYWRqdW50bycsXG4gICAgICBnZW5lcmF0aW5nRGVlcFNlYXJjaDogJ0luaWNpYW5kbyBhIHBlc3F1aXNhJyxcbiAgICAgIGdlbmVyYXRpbmdXZWJTZWFyY2g6ICdQZXNxdWlzYW5kbyBuYSB3ZWInLFxuICAgICAgc3VnZ2VzdGlvbnNUaXRsZTogJ1Jlc3Bvc3RhcyBzdWdlcmlkYXMnLFxuICAgICAgY3JlYXRlQWdlbnRBY3Rpb25zVGl0bGU6ICdQcsOzeGltbyBwYXNzbycsXG4gICAgICBjcmVhdGVBZ2VudEFjdGlvblN0YXJ0Q2hhdDogJ0luaWNpYXIgY29udmVyc2EgY29tIG8gbm92byBhZ2VudGUnLFxuICAgICAgY3JlYXRlQWdlbnRBY3Rpb25Lbm93bGVkZ2U6ICdFbnZpYXIgYXJxdWl2b3MgcGFyYSBhIGJhc2UgZGUgY29uaGVjaW1lbnRvJyxcbiAgICAgIGNyZWF0ZUFnZW50QWN0aW9uTG9hZEVycm9yOiAnTsOjbyBmb2kgcG9zc8OtdmVsIGNhcnJlZ2FyIG8gYWdlbnRlLiBUZW50ZSBub3ZhbWVudGUuJyxcbiAgICAgIHdyaXRpbmc6ICdFc2NyZXZlbmRvJyxcbiAgICAgIGV4ZWN1dGluZ0FjdGlvbjogJ0V4ZWN1dGFuZG8gYcOnw6NvJyxcbiAgICAgIHByb2Nlc3Npbmc6ICdQcm9jZXNzYW5kbycsXG4gICAgICBsb2FkaW5nTW9yZTogJ0NhcnJlZ2FuZG8gbWFpcyBtZW5zYWdlbnMnLFxuICAgICAgZm9vdGVyOiB7XG4gICAgICAgIHBsYWNlaG9sZGVyOiAnRXNjcmV2YSBzdWEgcGVyZ3VudGEgYXF1aeKApicsXG4gICAgICAgIGFnZW50TGFiZWw6ICdPIEFnZW50ZScsXG4gICAgICAgIGRpc2NsYWltZXI6ICd7e2FnZW50TmFtZX19IHBvZGUgY29tZXRlciBlcnJvcy4gVmVyaWZpcXVlIGFzIGluZm9ybWHDp8O1ZXMgaW1wb3J0YW50ZXMuJyxcbiAgICAgICAgZGlzY2xhaW1lckFnZW50OiAnTW9kZWxvcyBkZSBJQSBwb2RlbSBjb21ldGVyIGVycm9zLiBWZXJpZmlxdWUgYXMgaW5mb3JtYcOnw7VlcyBpbXBvcnRhbnRlcy4nLFxuICAgICAgfSxcbiAgICAgIGVycm9yOiAnT2NvcnJldSB1bSBlcnJvIGFvIGdlcmFyIHN1YSByZXNwb3N0YSwgcG9yIGZhdm9yLCB0ZW50ZSBub3ZhbWVudGUuJyxcbiAgICAgIGVycm9yQWNjZXNzRGVuaWVkOlxuICAgICAgICAnVm9jw6ogbsOjbyB0ZW0gYWNlc3NvIHBhcmEgaW50ZXJhZ2lyIGNvbSBlc3RlIGFnZW50ZS4gw4kgcG9zc8OtdmVsIHF1ZSBzdWFzIGNvbmZpZ3VyYcOnw7VlcyBkZSBhY2Vzc2liaWxpZGFkZSB0ZW5oYW0gbXVkYWRvLiBQb3IgZmF2b3IsIGNvbnRhdGUgYSBwZXNzb2EgbmEgc3VhIG9yZ2FuaXphw6fDo28gcXVlIGdlcmVuY2lhIGFnZW50ZXMgcGFyYSBvYnRlciBtYWlzIGluZm9ybWHDp8O1ZXMuJyxcbiAgICAgIGNoYW5nZVByb2plY3Q6ICdEZXRlY3RlaSBxdWUgdm9jw6ogcXVlciBtdWRhciBkZSBQcm9qZXRvLlxcblxcbioqU2VsZWNpb25lIG8gcHJvamV0byBwYXJhIGNvbnRpbnVhcjoqKicsXG4gICAgICBzZWFyY2hXZWI6ICdQZXNxdWlzYXIgbmEgd2ViJyxcbiAgICAgIGRlZXBTZWFyY2g6ICdCdXNjYSBhdmFuw6dhZGEgbmEgaW50ZXJuZXQgKGFjZXNzbyBhIG1haXMgZm9udGVzKScsXG4gICAgICBhdHRhY2hGaWxlOiAnQW5leGFyIGFycXVpdm8nLFxuICAgICAgc2VuZDogJ0VudmlhcicsXG4gICAgICBsaW1pdEZpbGVzOiAnVm9jw6ogZXhjZWRldSBvIGxpbWl0ZSBkZSBhbmV4b3MnLFxuICAgICAgc3RvcDogJ0NhbmNlbGFyIHBlc3F1aXNhJyxcbiAgICAgIGNhbmNlbGxlZDogJ0EgcGVzcXVpc2EgZm9pIGNhbmNlbGFkYS4nLFxuICAgICAgYXR0YWNobWVudFByZXZpZXdNb2RhbDoge1xuICAgICAgICBsb2FkaW5nOiAnQ2FycmVnYW5kby4uLicsXG4gICAgICAgIHVuc3VwcG9ydGVkRmlsZU1lc3NhZ2U6XG4gICAgICAgICAgJ1RpdmVtb3MgdW0gcHJvYmxlbWEgYW8gY2FycmVnYXIgYSBwcsOpLXZpc3VhbGl6YcOnw6NvLiBQb3IgZmF2b3IsIHRlbnRlIG5vdmFtZW50ZSBlbSBhbGd1bnMgbWludXRvcy4nLFxuICAgICAgICB0eXBlTGFiZWw6ICdUaXBvOicsXG4gICAgICAgIHVua25vd246ICdEZXNjb25oZWNpZG8nLFxuICAgICAgICBzaXplTGFiZWw6ICdUYW1hbmhvOicsXG4gICAgICAgIGV4Y2VsOiB7XG4gICAgICAgICAgc2hlZXRTZWxlY3RvckxhYmVsOiAnUGxhbmlsaGE6JyxcbiAgICAgICAgICBsb2FkRXJyb3I6ICdOw6NvIGZvaSBwb3Nzw612ZWwgY2FycmVnYXIgbyBjb250ZcO6ZG8gZG8gYXJxdWl2byBFeGNlbC4nLFxuICAgICAgICAgIGZpbGVSZWFkRXJyb3I6ICdFcnJvIGFvIGxlciBvIGFycXVpdm8uJyxcbiAgICAgICAgICBzaGVldExvYWRFcnJvcjogJ0Vycm8gYW8gY2FycmVnYXIgYSBwbGFuaWxoYSBzZWxlY2lvbmFkYS4nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICAgIGRlbGV0ZVF1ZXN0aW9uTW9kYWw6IHtcbiAgICAgIHRpdGxlOiAnRGVzZWphIGV4Y2x1aXIgZXN0YSBjb252ZXJzYT8nLFxuICAgICAgZmlyc3RQYXJ0OiAnVm9jw6ogZXN0w6EgcHJlc3RlcyBhIGV4Y2x1aXInLFxuICAgICAgc2Vjb25kUGFydDogJ0VzdGEgYcOnw6NvIMOpIGlycmV2ZXJzw612ZWwuJyxcbiAgICAgIGNhbmNlbDogJ0NhbmNlbGFyJyxcbiAgICAgIGRlbGV0ZTogJ0V4Y2x1aXInLFxuICAgIH0sXG4gICAgZWRpdFF1ZXN0aW9uTW9kYWw6IHtcbiAgICAgIG5ld05hbWU6ICdOb3ZvIG5vbWUnLFxuICAgICAgdGl0bGU6ICdSZW5vbWVhciBjb252ZXJzYScsXG4gICAgICByZW5hbWU6ICdSZW5vbWVhcicsXG4gICAgICBjYW5jZWw6ICdDYW5jZWxhcicsXG4gICAgICBtYXhMZW5ndGg6ICdWb2PDqiBhdGluZ2l1IG8gbGltaXRlIGRlIDE0MCBjYXJhY3RlcmVzLicsXG4gICAgfSxcbiAgICBtb2RhbEZpbGVFeGNlZWRzOiB7XG4gICAgICBsaW1pdEZpbGVzVGl0bGU6ICdNw6F4LiBBbmV4b3MgZXhjZWRpZG9zLicsXG4gICAgICBsaW1pdFNpemVUaXRsZTogJ1ZvY8OqIGV4Y2VkZXUgbyBsaW1pdGUgZGUgdGFtYW5obyBwZXJtaXRpZG8nLFxuICAgICAgbGltaXRGaWxlc0Rlc2NyaXB0aW9uOlxuICAgICAgICAnVm9jw6ogcG9kZSBhbmV4YXIgbm8gbcOheGltbyA1IGFycXVpdm9zIHBvciBtZW5zYWdlbS4gT3Mgc2VndWludGVzIGFycXVpdm9zIG7Do28gcHVkZXJhbSBzZXIgYW5leGFkb3M6JyxcbiAgICAgIGxpbWl0U2l6ZURlc2NyaXB0aW9uOlxuICAgICAgICAnVW0gb3UgbWFpcyBhcnF1aXZvcyBleGNlZGVtIG8gdGFtYW5obyBtw6F4aW1vIHBlcm1pdGlkbyBwb3IgdGlwby4gT3Mgc2VndWludGVzIGFycXVpdm9zIG7Do28gcHVkZXJhbSBzZXIgYW5leGFkb3M6JyxcbiAgICAgIGFjY2VwdDogJ0FjZWl0YXInLFxuICAgICAgbGltaXQ6ICdsaW1pdGUnLFxuICAgIH0sXG4gICAgc291cmNlc0luZm9ybWF0aW9uTW9kYWw6IHtcbiAgICAgIHRpdGxlOiAnRnVlbnRlczonLFxuICAgIH0sXG4gICAgYWdlbnRzOiB7XG4gICAgICB0aXRsZTogJ0FnZW50ZXMnLFxuICAgICAgbmV3QWdlbnQ6ICdOb3ZvIGFnZW50ZScsXG4gICAgICBjcmVhdGVBZ2VudDogJ0NyaWFyIEFnZW50ZScsXG4gICAgICBlZGl0OiAnRWRpdGFyJyxcbiAgICAgIG1haWE6ICcoRXNwZWNpYWxpc3RhIGRlIHByb2pldG8pJyxcbiAgICAgIGFkZEZhdm9yaXRlOiAnQWRpY2lvbmFyIGFvcyBmYXZvcml0b3MnLFxuICAgICAgcmVtb3ZlRmF2b3JpdGU6ICdSZW1vdmVyIGRvcyBmYXZvcml0b3MnLFxuICAgICAgZmF2b3JpdGVUb2dnbGVkQWRkZWRTdWNjZXNzOiAnQWdlbnRlIGFkaWNpb25hZG8gYW9zIGZhdm9yaXRvcycsXG4gICAgICBmYXZvcml0ZVRvZ2dsZWRSZW1vdmVkU3VjY2VzczogJ0FnZW50ZSByZW1vdmlkbyBkZSBmYXZvcml0b3MnLFxuICAgICAgZmF2b3JpdGVUb2dnbGVkRXJyb3I6ICdOw6NvIGZvaSBwb3Nzw612ZWwgc2FsdmFyIHNldSBmYXZvcml0by4gVGVudGUgbm92YW1lbnRlLicsXG4gICAgICBmYXZvcml0ZVRvZ2dsZWRSZW1vdmVkRXJyb3I6ICdOw6NvIGZvaSBwb3Nzw612ZWwgcmVtb3ZlciBvIGZhdm9yaXRvLiBUZW50ZSBub3ZhbWVudGUuJyxcbiAgICAgIG1haWFJbnRyb2R1Y3Rpb246ICdCZW0tdmluZG8gw6AgTUFJQSwgc3VhIGFzc2lzdGVudGUgcGFyYSBtZWxob3JhciBvIHNldSBkaWEgYSBkaWEuJyxcbiAgICB9LFxuICAgIGNvbnZlcnNhdGlvbnM6IHtcbiAgICAgIHRpdGxlOiAnTWluaGFzIGNvbnZlcnNhcycsXG4gICAgICBhZ2VudHNTZWN0aW9uVGl0bGU6ICdBZ2VudGVzJyxcbiAgICAgIG1haWFrZXJOYXY6ICdNYXJrZXRwbGFjZScsXG4gICAgICBteUFnZW50c05hdjogJ01ldXMgYWdlbnRlcycsXG4gICAgICBlcnJvcjogJ09jb3JyZXUgdW0gZXJybyBhbyBjYXJyZWdhciBvIGhpc3TDs3JpY28gZGUgY29udmVyc2FzJyxcbiAgICAgIGVtcHR5OiAnVG9kYXMgYXMgc3VhcyBjb252ZXJzYXMgY29tIG9zIGFnZW50ZXMgc2Vyw6NvIGV4aWJpZGFzIGFxdWknLFxuICAgICAgZW1wdHlMYWJlbDogJ01lbnNhZ2VtIGNvbSBhbmV4b3MnLFxuICAgICAgY29sbGFwc2U6ICdSZWNvbGhlcicsXG4gICAgICBleHBhbmQ6ICdFeHBhbmRpcicsXG4gICAgICBuZXdDaGF0OiAnTm92byBjaGF0JyxcbiAgICAgIG9wZW5BZ2VudENyZWF0b3I6ICdDcmlhciBhZ2VudGUnLFxuICAgICAgb3Blbk1hcmtldHBsYWNlOiAnTWFya2V0cGxhY2UgZGUgYWdlbnRlcycsXG4gICAgfSxcbiAgICBtYXJrZXRwbGFjZToge1xuICAgICAgYmFjazogJ1ZvbHRhcicsXG4gICAgICB0aXRsZTogJ0lkZWlhcyBwYXJhIGNyaWFyIGFnZW50ZXMnLFxuICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgICdFc2NvbGhhIHVtYSBzdWdlc3TDo28gYmVtIGNvbnN0cnXDrWRhIGUgYWJyYSBvIGVkaXRvciBjb20gbyBhZ2VudGUgasOhIHByZWVuY2hpZG8gcGFyYSBhZGFwdGFyIGFvIHNldSBjYXNvLicsXG4gICAgICBteUFnZW50c1RpdGxlOiAnTWV1cyBhZ2VudGVzJyxcbiAgICAgIG15QWdlbnRzUmVhZHlUaXRsZTogJ1NldXMgYWdlbnRlcyBlc3RhbyBwcm9udG9zIHBhcmEgYWp1ZGFyIHZvY2UgZW0gdGFyZWZhcycsXG4gICAgICBteUFnZW50c0Rlc2NyaXB0aW9uOiAnRXN0ZXMgc2FvIHNldXMgYWdlbnRlcyBjdXN0b20uIFNlbGVjaW9uZSB1bSBwYXJhIGluaWNpYXIgYSBjb252ZXJzYSBjb20gZXNzZSBwZXJmaWwuJyxcbiAgICAgIG15QWdlbnRzRW1wdHlTdGF0ZVRpdGxlOiAnVm9jZSBhaW5kYSBuYW8gdGVtIGFnZW50ZXMgY3JpYWRvcycsXG4gICAgICBteUFnZW50c0VtcHR5U3RhdGVEZXNjcmlwdGlvbjogJ0NsaXF1ZSBubyBib3RhbyBhYmFpeG8gcGFyYSBjb21lY2FyIGEgY3JpYXIgYWdlbnRlcyBzb2IgbWVkaWRhLicsXG4gICAgICBteUFnZW50c0VtcHR5U3RhdGVEZXNjcmlwdGlvbk5vUGVybTpcbiAgICAgICAgJ1F1YW5kbyBhbGd1ZW0gY29tIHBlcm1pc3NhbyBwYXJhIGNyaWEtbG9zIGNvbmZpZ3VyYXIsIHZvY2UgcG9kZXJhIGFjZXNzYS1sb3MgcG9yIGFxdWkuJyxcbiAgICAgIG15QWdlbnRzRW1wdHlTdGF0ZUJ1dHRvbjogJ0NyaWFyIGFnZW50ZScsXG4gICAgICBteUFnZW50c0ZhbGxiYWNrSW50cm86ICdBZ2VudGUgcGVyc29uYWxpemFkbyBwcm9udG8gcGFyYSBhanVkYXIgbm8gc2V1IGZsdXhvIGRlIHRyYWJhbGhvLicsXG4gICAgICBteUFnZW50c0ZhbGxiYWNrRGVzY3JpcHRpb246ICdDbGlxdWUgZW0gdXNhciBhZ2VudGUgcGFyYSBpbmljaWFyIHVtYSBjb252ZXJzYSBjb20gZXN0ZSBhZ2VudGUuJyxcbiAgICAgIG15QWdlbnRzRmFsbGJhY2tEYXRlOiAnSGEgYWxndW5zIGRpYXMnLFxuICAgICAgbXlBZ2VudHNUb2RheTogJ0hvamUnLFxuICAgICAgbXlBZ2VudHNPbmVEYXlBZ286ICdIYSAxIGRpYScsXG4gICAgICBteUFnZW50c0RheXNBZ286ICdIYSB7e2RheXN9fSBkaWFzJyxcbiAgICAgIGNhcmRNZW51QXJpYUxhYmVsOiAnTWVudSBkZSBhY29lcyBkbyBhZ2VudGUnLFxuICAgICAgdXNlOiAnVXNhcicsXG4gICAgICBjcmVhdGVBZ2VudDogJ0NyaWFyIGFnZW50ZScsXG4gICAgICB1c2VUZW1wbGF0ZTogJ0NyaWFyIGNvbSBlc3RhIGlkZWlhJyxcbiAgICAgIHVzZU15QWdlbnQ6ICdVc2FyIGFnZW50ZScsXG4gICAgICBiYWRnZXM6IHtcbiAgICAgICAgYnJhbmRpbmc6ICdCcmFuZGluZycsXG4gICAgICAgIGxpbmtlZGluOiAnTGlua2VkSW4nLFxuICAgICAgICBtYXJrZXRpbmc6ICdNYXJrZXRpbmcnLFxuICAgICAgfSxcbiAgICB9LFxuICAgIHNuYWNrYmFyOiB7XG4gICAgICBkZWxldGVDaGF0OiB7XG4gICAgICAgIHN1Y2Nlc3M6ICdTdWEgY29udmVyc2EgZm9pIGV4Y2x1w61kYSBjb20gc3VjZXNzby4nLFxuICAgICAgICBlcnJvcjogJ09jb3JyZXUgdW0gZXJybyBpbmVzcGVyYWRvLiBQb3IgZmF2b3IgdGVudGUgbm92YW1lbnRlLicsXG4gICAgICB9LFxuICAgICAgcmVuYW1lZENoYXQ6IHtcbiAgICAgICAgc3VjY2VzczogJ0NvbnZlcnNhIHJlbm9tZWFkYSBjb20gc3VjZXNzbycsXG4gICAgICAgIGVycm9yOiAnT2NvcnJldSB1bSBlcnJvIGluZXNwZXJhZG8uIFBvciBmYXZvciB0ZW50ZSBub3ZhbWVudGUuJyxcbiAgICAgIH0sXG4gICAgICBsb2FkTW9yZUFnZW50czoge1xuICAgICAgICBlcnJvcjogJ09jb3JyZXUgdW0gZXJybyBpbmVzcGVyYWRvLiBQb3IgZmF2b3IgdGVudGUgbm92YW1lbnRlLicsXG4gICAgICB9LFxuICAgIH0sXG4gICAgYXBwcm92YWxCb3g6IHtcbiAgICAgIHVudGl0bGVkQWdlbnQ6ICdBZ2VudGUgc2VtIG5vbWUnLFxuICAgICAgYWN0aW9uczoge1xuICAgICAgICBjcmVhdGVfdGFzazogJ0NyaWHDp8OjbyBkZSB0YXJlZmEnLFxuICAgICAgICBjcmVhdGVfdGFza3NfYmF0Y2g6ICdDcmlhw6fDo28gZGUgdGFyZWZhcycsXG4gICAgICAgIGNyZWF0ZV9hZ2VudDogJ0NyaWFyIGFnZW50ZScsXG4gICAgICAgIGVkaXRfYWdlbnQ6ICdFZGnDp8OjbyBkZSBhZ2VudGUnLFxuICAgICAgICBlZGl0X3Rhc2s6ICdFZGnDp8OjbyBkZSB0YXJlZmEnLFxuICAgICAgICBlZGl0X3Rhc2tzX2JhdGNoOiAnRWRpw6fDo28gZGUgdGFyZWZhcycsXG4gICAgICAgIGRlbGV0ZV90YXNrOiAnRXhjbHVzw6NvIGRlIHRhcmVmYScsXG4gICAgICAgIGRlbGV0ZV90YXNrc19iYXRjaDogJ0V4Y2x1c8OjbyBkZSB0YXJlZmFzJyxcbiAgICAgICAgdGFza19hc3NpZ246ICdBdHJpYnVpw6fDo28gZGUgdXN1w6FyaW8nLFxuICAgICAgICB0YXNrX3VuYXNzaWduOiAnUmVtb8Onw6NvIGRlIHVzdcOhcmlvJyxcbiAgICAgICAgYXNzaWduX3Rhc2tfbGFiZWw6ICdBdHJpYnVpw6fDo28gZGUgZXRpcXVldGEnLFxuICAgICAgICB1cGRhdGVfdGFza190eXBlOiAnQXR1YWxpemHDp8OjbyBkZSB0aXBvIGRlIHRhcmVmYScsXG4gICAgICAgIHVwZGF0ZV9lc3RpbWF0ZWRfaG91cnM6ICdBdHVhbGl6YcOnw6NvIGRlIGhvcmFzIGVzdGltYWRhcycsXG4gICAgICAgIHVwZGF0ZV9kZWxpdmVyYWJsZTogJ0F0dWFsaXphw6fDo28gZGUgZW50cmVnw6F2ZWwnLFxuICAgICAgICBjcmVhdGVfaG91cjogJ1JlZ2lzdHJvIGRlIGhvcmFzJyxcbiAgICAgICAgY3JlYXRlX2NoZWNrbGlzdDogJ0NyaWHDp8OjbyBkZSBjaGVja2xpc3QnLFxuICAgICAgICBjbG9uZV90YXNrOiAnQ2xvbmFyIHRhcmVmYScsXG4gICAgICAgIGdldF90YXNrX2RhdGVfaG91cnM6ICdDb25zdWx0YSBkZSBob3JhcyBwb3IgZGF0YScsXG4gICAgICAgIGNvbmZpZ3VyZV9hZ2VudF9hY2Nlc3M6ICdBbHRlcmFyIHZpc2liaWxpZGFkZSBkbyBhZ2VudGUnLFxuICAgICAgICBzZW5kX3Rhc2tfbWVzc2FnZTogJ0VudmlvIGRlIG1lbnNhZ2VtIG5hIHRhcmVmYScsXG4gICAgICAgIGRlbGV0ZV9jaGVja2xpc3RfaXRlbTogJ0V4Y2x1c8OjbyBkZSBpdGVtIGRvIGNoZWNrbGlzdCcsXG4gICAgICAgIHJlbW92ZV90YXNrX3R5cGU6ICdSZW1vw6fDo28gZG8gdGlwbyBkZSB0YXJlZmEnLFxuICAgICAgICByZW1vdmVfdGFza19sYWJlbDogJ1JlbW/Dp8OjbyBkZSBldGlxdWV0YScsXG4gICAgICAgIGNvdW50X2RlbGl2ZXJhYmxlOiAnQXR1YWxpemHDp8OjbyBkYSBjb250YWdlbSBkZSBlbnRyZWfDoXZlaXMnLFxuICAgICAgICBjcmVhdGVfcmV3b3JrOiAnQ3JpYcOnw6NvIGRlIHJldHJhYmFsaG8nLFxuICAgICAgICB1cGRhdGVfcmV3b3JrOiAnQXR1YWxpemHDp8OjbyBkZSByZXRyYWJhbGhvJyxcbiAgICAgICAgZGVsZXRlX2FnZW50OiAnRXhjbHVzw6NvIGRlIGFnZW50ZScsXG4gICAgICAgIHVua25vd246ICdBw6fDo28gZGVzY29uaGVjaWRhJyxcbiAgICAgIH0sXG4gICAgICBzcGVjaWFsOiB7XG4gICAgICAgIGNyZWF0ZVJld29yazoge1xuICAgICAgICAgIHRpdGxlOiAnQ3JpYXIgcmV0cmFiYWxobycsXG4gICAgICAgICAgZGVzY3JpcHRpb246ICdTZXLDoSBjcmlhZG8gdW0gcmV0cmFiYWxobyBuYSB0YXJlZmEgY29tIGFzIGluZm9ybWHDp8O1ZXMgaW5kaWNhZGFzLicsXG4gICAgICAgIH0sXG4gICAgICAgIHVwZGF0ZURlbGl2ZXJhYmxlQ2hpbGRyZW46IHtcbiAgICAgICAgICB0aXRsZTogJ0F0dWFsaXphciBwcm9ncmVzc28gZG9zIGVudHJlZ8OhdmVpcycsXG4gICAgICAgICAgZGVzY3JpcHRpb246ICdTZXLDoSBhdHVhbGl6YWRvIG8gcHJvZ3Jlc3NvIGRvcyBzdWJlbnRyZWfDoXZlaXMgdmluY3VsYWRvcyBhIGVzdGEgdGFyZWZhLicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgZmllbGRzOiB7XG4gICAgICAgIG5hbWU6ICdOb21lJyxcbiAgICAgICAgZW1vamk6ICdFbW9qaScsXG4gICAgICAgIGludHJvZHVjdGlvbjogJ0ludHJvZHXDp8OjbycsXG4gICAgICAgIGlucHV0X3BsYWNlaG9sZGVyOiAnUGxhY2Vob2xkZXInLFxuICAgICAgICB1c2VyX3Byb21wdDogJ1Byb21wdCBwcmluY2lwYWwnLFxuICAgICAgICBsYW5ndWFnZTogJ0lkaW9tYScsXG4gICAgICAgIHByb3ZpZGVyOiAnUHJvdmlkZXInLFxuICAgICAgICBtb2RlbF9uYW1lOiAnTW9kZWxvJyxcbiAgICAgICAgYXBpX2tleTogJ0FQSSBrZXknLFxuICAgICAgfSxcbiAgICAgIHRpdGxlOiAnQ29uZmlybWHDp8OjbyByZXF1ZXJpZGEnLFxuICAgICAgZGVzY3JpcHRpb246ICdWb2PDqiBwcmVjaXNhIGFwcm92YXIgYSBzZWd1aW50ZSBhw6fDo286JyxcbiAgICAgIGFwcHJvdmU6ICdBcHJvdmFyJyxcbiAgICAgIGRlbnk6ICdOZWdhcicsXG4gICAgICBtYW51YWxBcHByb3ZhbFdhcm5pbmc6ICdNYWlhIGRldGVjdG91IHF1ZSBhIHNvbGljaXRhw6fDo28gZm9pIGFwcm92YWRhIG1hbnVhbG1lbnRlJyxcbiAgICAgIHN0YXR1czoge1xuICAgICAgICBhcHByb3ZlZDogJ1NvbGljaXRhw6fDo28gQXByb3ZhZGEnLFxuICAgICAgICBkZW5pZWQ6ICdTb2xpY2l0YcOnw6NvIE5lZ2FkYScsXG4gICAgICB9LFxuICAgIH0sXG4gICAgY2hpcExsbToge1xuICAgICAgdG9vbHRpcDogJ0VzdGUgYWdlbnRlIHV0aWxpemEgbyBtb2RlbG86IHt7bW9kZWx9fScsXG4gICAgfSxcbiAgICBjbGllbnRTZWxlY3Rvcjoge1xuICAgICAgcHJvamVjdDogJ3Byb2pldG8nLFxuICAgICAgcHJvamVjdHM6ICdwcm9qZXRvcycsXG4gICAgfSxcbiAgfSxcbiAgW1NFQ1RJT05TLmFibUFnZW50XToge1xuICAgIC4uLmdlbmVyaWNTZWN0aW9uLFxuICAgIGxlZ2VuZERlbGV0ZWRBZ2VudDogJ0VzdGUgYWdlbnRlIGZvaSBleGNsdcOtZG8gbm8gZGlhJyxcbiAgICBsZWdlbmRQcm9qZWN0RGVsZXRlZDogJ08gcHJvamV0byB7e25hbWV9fSBmb2kgZXhjbHXDrWRvLiBOw6NvIMOpIHBvc3PDrXZlbCBjb250aW51YXIgYSBjb252ZXJzYScsXG4gICAgbGVnZW5kTm9BY2Nlc3M6ICdWb2PDqiBuw6NvIHRlbSBtYWlzIGFjZXNzbyBwYXJhIGludGVyYWdpciBjb20gbyBhZ2VudGUge3tuYW1lfX0nLFxuICAgIGxlZ2VuZE5vUGVybWlzc2lvbnM6ICdWb2PDqiBuw6NvIHRlbSBtYWlzIHBlcm1pc3PDo28gcGFyYSB2aXN1YWxpemFyIG91IGludGVyYWdpciBjb20gbyBhZ2VudGUge3tuYW1lfX0nLFxuICAgIGxlZ2VuZE1vZGVsRGVwcmVjYXRlZDpcbiAgICAgICdPIG1vZGVsbyBzZWxlY2lvbmFkbyBwYXJhIGVzdGUgYWdlbnRlIG7Do28gZXN0w6EgbWFpcyBkaXNwb27DrXZlbC4gVHJvcXVlIHBhcmEgb3V0cm8gbW9kZWxvIHBhcmEgY29udGludWFyIHVzYW5kby1vLicsXG4gICAgbGVnZW5kUHJvdmlkZXJTdGF0dXM6XG4gICAgICAnTyBtb2RlbG8gdXNhZG8gcG9yIGVzdGUgYWdlbnRlIGVzdMOhIGVuZnJlbnRhbmRvIHByb2JsZW1hcyB0ZW1wb3LDoXJpb3MuIFZvY8OqIHBvZGUgYWd1YXJkYXIgYSByZWN1cGVyYcOnw6NvIG91IHRyb2NhciBwYXJhIG91dHJvIG1vZGVsby4nLFxuICAgIGNoYW5nZU1vZGVsOiAnVHJvY2FyIG1vZGVsbycsXG4gICAgYWdlbnRzOiAnQWdlbnRlcycsXG4gICAgbGF5b3V0TWVudVRvb2x0aXA6ICdMYXlvdXQgZG8gY2hhdCcsXG4gICAgbGF5b3V0U2lkZWJhcjogJ0NoYXQgcGFyYWxlbG8nLFxuICAgIGxheW91dEZ1bGxzY3JlZW46ICdDaGF0IGNvbXBsZXRvJyxcbiAgICBsYXlvdXRGbG9hdGluZzogJ0NoYXQgZmx1dHVhbnRlJyxcbiAgICBhZGRBZ2VudDogJ0FkaWNpb25hciBub3ZvIGFnZW50ZScsXG4gICAgbmV3QWdlbnQ6ICdOb3ZvIGFnZW50ZScsXG4gICAgY3JlYXRlQWdlbnQ6ICdDcmlhciBBZ2VudGUnLFxuICAgIGVkaXRBZ2VudDogJ0VkaXRhciBhZ2VudGUnLFxuICAgIGNhbmNlbDogJ0NhbmNlbGFyJyxcbiAgICBhY2NlcHQ6ICdBY2VpdGFyJyxcbiAgICBkZWxldGVBZ2VudDogJ0V4Y2x1aXIgYWdlbnRlJyxcbiAgICBjb250aW51ZTogJ0NvbnRpbnVhcicsXG4gICAgZWRpdDogJ0VkaXRhcicsXG4gICAgZGVsZXRlOiAnRXhjbHVpcicsXG4gICAgZmVlZGJhY2s6ICdFbnZpYXIgRmVlZGJhY2snLFxuICAgIHNlbmRGZWVkYmFjazogJ0VudmlhciBmZWVkYmFjaycsXG4gICAgc2F2ZUNoYW5nZXM6ICdTYWx2YXIgYWx0ZXJhw6fDtWVzJyxcbiAgICBjcmVhdGVBZ2VudExhYmVsQnV0dG9uOiAnQ3JpYXIgYWdlbnRlJyxcbiAgICBvcGVuQWdlbnRDcmVhdG9yOiAnQ3JpYXIgYWdlbnRlJyxcbiAgICBvcGVuTWFya2V0cGxhY2U6ICdNYXJrZXRwbGFjZSBkZSBhZ2VudGVzJyxcbiAgICBjb25maXJtQWdlbnRDcmVhdGVkOiAnTyBhZ2VudGUgZm9pIGNyaWFkbyBjb20gc3VjZXNzbycsXG4gICAgY29uZmlybUFnZW50VXBkYXRlZFdpdGhGaWxlc0Vycm9yOlxuICAgICAgJ08gYWdlbnRlIGZvaSBlZGl0YWRvIGNvbSBzdWNlc3NvLCBtYXMgYWxndW5zIGFycXVpdm9zIG7Do28gcHVkZXJhbSBzZXIgcHJvY2Vzc2Fkb3MuJyxcbiAgICBjb25maXJtQWdlbnRXaXRoRmlsZXNFcnJvcjogJ08gYWdlbnRlIGZvaSBjcmlhZG8gY29tIHN1Y2Vzc28sIG1hcyBhbGd1bnMgYXJxdWl2b3MgbsOjbyBwdWRlcmFtIHNlciBwcm9jZXNzYWRvcy4nLFxuICAgIGNvbmZpcm1BZ2VudERlbGV0ZWQ6ICdPIGFnZW50ZSBmb2kgZXhjbHXDrWRvIGNvbSBzdWNlc3NvJyxcbiAgICBjb25maXJtQWdlbnRVcGRhdGVkOiAnTyBhZ2VudGUgZm9pIGF0dWFsaXphZG8gY29tIHN1Y2Vzc28nLFxuICAgIGNvbmZpcm1DbG9zZUNyZWF0ZUFnZW50OiAnVGVtIGNlcnRlemEgcXVlIGRlc2VqYSBmZWNoYXI/IEFzIGFsdGVyYcOnw7VlcyBzZXLDo28gcGVyZGlkYXMuJyxcbiAgICBjb25maXJtQ2xvc2VFZGl0QWdlbnQ6ICdUZW0gY2VydGV6YSBxdWUgZGVzZWphIGZlY2hhcj8gQXMgYWx0ZXJhw6fDtWVzIHNlcsOjbyBwZXJkaWRhcy4nLFxuICAgIGNvbmZpcm1SZWxvYWRCcm93c2VyOiAnVGVtIGNlcnRlemEgcXVlIGRlc2VqYSByZWNhcnJlZ2FyIGEgcMOhZ2luYT8gQXMgYWx0ZXJhw6fDtWVzIHNlcsOjbyBwZXJkaWRhcy4nLFxuICAgIGVycm9yQWNjZXNzRGVuaWVkOiAnVm9jw6ogbsOjbyB0ZW0gcGVybWlzc8OjbyBwYXJhIGFjZXNzYXIgZXN0ZSBhZ2VudGUuIENvbnRhdGUgbyBzdXBvcnRlLicsXG4gICAgZXJyb3JBZ2VudENyZWF0ZWQ6ICdPY29ycmV1IHVtIGVycm8gaW5lc3BlcmFkby4gUG9yIGZhdm9yIHRlbnRlIG5vdmFtZW50ZS4nLFxuICAgIGF0dGFjaG1lbnRDYXJkOiB7XG4gICAgICBkb3dubG9hZDogJ0Rlc2NhcnJlZ2FyJyxcbiAgICAgIGRlbGV0ZTogJ0V4Y2x1aXInLFxuICAgIH0sXG4gICAgZ2VuZXJhbFNlY3Rpb246IHtcbiAgICAgIHRpdGxlOiAnR2VyYWwnLFxuICAgICAgZ2VuZXJhbFNldHRpbmdzOiAnQ29uZmlndXJhw6fDo28gZ2VyYWwnLFxuICAgICAgcmVxdWlyZWRGaWVsZHNMYWJlbDogJypvYnJpZ2F0w7NyaW9zJyxcbiAgICAgIGluZm9MYWJlbDogJ0FkaWNpb25lIHRvZGFzIGFzIGluZm9ybWHDp8O1ZXMgcGFyYSBwZXJzb25hbGl6YXIgbyBjb21wb3J0YW1lbnRvIGRvIHNldSBhZ2VudGUuJyxcbiAgICAgIG9wdGlvbmFsTGFiZWw6ICdPcGNpb25hbCcsXG4gICAgICBiYXNpY1NldHRpbmdzOiAnQ29uZmlndXJhw6fDo28gYsOhc2ljYScsXG4gICAgICBzZWxlY3RFbW9qaTogJ1NlbGVjaW9uYXIgZW1vamknLFxuICAgICAgbmFtZTogJ1F1YWwgw6kgbyBub21lIGRvIHNldSBhZ2VudGU/JyxcbiAgICAgIG5hbWVQbGFjZWhvbGRlcjogJ0TDqiB1bSBub21lIGFvIHNldSBhZ2VudGUnLFxuICAgICAgYmVoYXZpb3JTZXR0aW5nczogJ0NvbmZpZ3VyYcOnw6NvIGRlIGNvbXBvcnRhbWVudG8nLFxuICAgICAgaW5pdGlhbFByb21wdDogJ1F1YWlzIHPDo28gYXMgaW5zdHJ1w6fDtWVzPycsXG4gICAgICBpbml0aWFsUHJvbXB0UGxhY2Vob2xkZXI6XG4gICAgICAgICdFeGVtcGxvOiBWb2PDqiDDqSB1bSByZWRhdG9yIGRlIG3DrWRpYXMgc29jaWFpcyBxdWUgZXNjcmV2ZSBlIGFkYXB0YSBtZW5zYWdlbnMgcGFyYSBkaWZlcmVudGVzIHJlZGVzLCBnYXJhbnRpbmRvIGNvbnNpc3TDqm5jaWEgbm8gdG9tLCBuYSBwZXJzb25hbGlkYWRlIGUgbm9zIHZhbG9yZXMgZGEgbWFyY2EuJyxcbiAgICAgIG1vZGVsQWlMYWJlbDogJ01vZGVsbyBkZSBJQScsXG4gICAgICBub01vZGVsc0F2YWlsYWJsZTogJ07Do28gaMOhIG1vZGVsb3MgZGlzcG9uw612ZWlzJyxcbiAgICAgIGlucHV0UGxhY2Vob2xkZXJUaXRsZTogJ08gcXVlIG8gdXN1w6FyaW8gdmVyw6Egbm8gY2FtcG8gZGUgY2hhdCBhbnRlcyBkZSBlc2NyZXZlcj8nLFxuICAgICAgaW5wdXRQbGFjZWhvbGRlcjogJ1Blcmd1bnRlIG8gcXVlIHByZWNpc2Fy4oCmJyxcbiAgICAgIGludHJvZHVjdGlvbjogJ0NvbW8gbyBzZXUgYWdlbnRlIHZhaSBzZSBhcHJlc2VudGFyPycsXG4gICAgICBpbnRyb2R1Y3Rpb25QbGFjZWhvbGRlcjpcbiAgICAgICAgJ0V4ZW1wbG86IE9sw6EhIPCfkYsgVm91IHRlIGFqdWRhciBhIGNyaWFyLCBhZGFwdGFyIGUgcmV2aXNhciB0ZXh0b3MgcGFyYSBkaWZlcmVudGVzIHBsYXRhZm9ybWFzLCBnYXJhbnRpbmRvIHF1ZSBtYW50ZW5oYW0gYSB2b3osIG8gdG9tIGUgYSBwZXJzb25hbGlkYWRlIGRhIHN1YSBtYXJjYS4gVm9jw6ogcG9kZSBtZSBwZWRpciBpZGVpYXMgcGFyYSBjYW1wYW5oYXMsIGFkYXB0YXIgdW0gdGV4dG8gcGFyYSBvdXRybyBjYW5hbCBvdSByZXZpc2FyIGEgY29lcsOqbmNpYSBkYSBtZW5zYWdlbS4nLFxuICAgICAgYWRkRmF2b3JpdGU6ICdBZGljaW9uYXIgYW9zIGZhdm9yaXRvcycsXG4gICAgICByZW1vdmVGYXZvcml0ZTogJ1JlbW92ZXIgZG9zIGZhdm9yaXRvcycsXG4gICAgICBlcnJvcjoge1xuICAgICAgICBtYXhDYXJhY3Rlck5hbWU6ICdWb2PDqiBhdGluZ2l1IG8gbGltaXRlIGRlIDE1MCBjYXJhY3RlcmVzLicsXG4gICAgICAgIG1heENhcmFjdGVySW5pdGlhbFByb21wdDogJ1ZvY8OqIGF0aW5naXUgbyBsaW1pdGUgZGUgNTAwMCBjYXJhY3RlcmVzLicsXG4gICAgICAgIG1heElucHV0UGxhY2Vob2xkZXI6ICdWb2PDqiBhdGluZ2l1IG8gbGltaXRlIGRlIDEwMCBjYXJhY3RlcmVzLicsXG4gICAgICAgIG1heENhcmFjdGVySW50cm9kdWN0aW9uOiAnVm9jw6ogYXRpbmdpdSBvIGxpbWl0ZSBkZSA0MDAgY2FyYWN0ZXJlcy4nLFxuICAgICAgfSxcbiAgICAgIGhvd1RvV3JpdGVQcm9tcHQ6ICdDb21vIGVzY3JldmVyIHVtIHByb21wdCcsXG4gICAgICB3aGF0SXNNb2RlbEFpVGl0bGU6ICdRdWFsIG1vZGVsbyBkZSBJQSB2b2PDqiB2YWkgdXNhcj8nLFxuICAgICAgd2hhdElzTW9kZWxBaTogJ08gcXVlIMOpIHVtIG1vZGVsbyBkZSBJQT8nLFxuICAgICAgY3JlYXRlZEJ5OiAnUG9yJyxcbiAgICAgIGNyZWF0ZWRCeVRvb2x0aXA6ICdVc3XDoXJpbyBjcmlhZG9yIGRvIGFnZW50ZScsXG4gICAgICBjcmVhdGVkQnlUb29sdGlwRGVsZXRlZDogJ1VzdcOhcmlvIGV4Y2x1w61kby4gU2V1IG5vbWUgw6kgbWFudGlkbyBwYXJhIHJlZmVyw6puY2lhLicsXG4gICAgfSxcbiAgICBrbm93bGVkZ2VTZWN0aW9uOiB7XG4gICAgICB0aXRsZTogJ0NvbmhlY2ltZW50bycsXG4gICAgICBrbm93bGVkZ2VUYWI6ICdCYXNlIGRlIGNvbmhlY2ltZW50b3MnLFxuICAgICAgaW5mb0xhYmVsOiAnQ2FycmVndWUgb3MgYXJxdWl2b3MgcXVlIHNldSBhZ2VudGUgdXNhcsOhIGNvbW8gZm9udGUgcGFyYSBzdWFzIHJlc3Bvc3Rhcy4nLFxuICAgICAgc2VsZWN0RmlsZVRpdGxlOiAnU0VMRUNJT05BUiBBUlFVSVZPUycsXG4gICAgICBhdHRhY2hGaWxlczogJ0FuZXhhciBhcnF1aXZvcycsXG4gICAgICBkcm9wWm9uZVRleHQ6IHtcbiAgICAgICAgMTogJ0NsaXF1ZSBhcXVpIHBhcmEgY2FycmVnYXInLFxuICAgICAgICAyOiAnb3UgYXJyYXN0ZSBvcyBhcnF1aXZvcycsXG4gICAgICB9LFxuICAgICAgaW5mb0ZpbGVUeXBlczogJy5tZCwgLnBkZiwgLmRvYywgLmRvY3gsIC50eHQsIC5jc3YsIC5wbmcsIC5qcGcsIC5qcGVnLCAueGxzLCAueGxzeCAgKG3DoXguIHRvdGFsIGRlIDVNQiknLFxuICAgICAgZXJyb3I6IHtcbiAgICAgICAgbWF4RmlsZXNUaXRsZTogJ0xpbWl0ZSBkZSB0YW1hbmhvIHRvdGFsIGV4Y2VkaWRvLicsXG4gICAgICAgIG1heEZpbGVzRGVzY3JpcHRpb246XG4gICAgICAgICAgJ1ZvY8OqIHBvZGUgYW5leGFyIGFycXVpdm9zIGF0w6kgdW0gdG90YWwgZGUgNSBNQi4gT3Mgc2VndWludGVzIGFycXVpdm9zIG7Do28gcHVkZXJhbSBzZXIgYW5leGFkb3M6JyxcbiAgICAgICAgbWF4U2l6ZVRpdGxlOiAnVm9jw6ogZXhjZWRldSBvIGxpbWl0ZSBkZSB0YW1hbmhvIHBlcm1pdGlkbycsXG4gICAgICAgIG1heFNpemVEZXNjcmlwdGlvbjoge1xuICAgICAgICAgIDE6ICdPIGxpbWl0ZSBtw6F4aW1vIGRlIDUgTUIgZm9pIGF0aW5naWRvLicsXG4gICAgICAgICAgMjogJ0Vzc2VzIGFycXVpdm9zIG7Do28gZm9yYW0gY2FycmVnYWRvcyBwb3JxdWUgZXhjZWRlbSBvIGVzcGHDp28gZGlzcG9uw612ZWw6JyxcbiAgICAgICAgfSxcbiAgICAgICAgaW52YWxpZEV4dGVuc2lvbkRlc2NyaXB0aW9uOiB7XG4gICAgICAgICAgMTogJ1NvbWVudGUgYXJxdWl2b3MgY29tIGFzIHNlZ3VpbnRlcyBleHRlbnPDtWVzIHPDo28gYWNlaXRvczogLm1kLCAucGRmLCAuZG9jLCAuZG9jeCwgLnR4dCwgLmNzdiwgLnBuZywgLmpwZywgLmpwZWcsIC54bHMsIC54bHN4JyxcbiAgICAgICAgICAyOiAnRXN0ZXMgYXJxdWl2b3MgbsOjbyBmb3JhbSBjYXJyZWdhZG9zIHBvcnF1ZSBzdWEgZXh0ZW5zw6NvIG7Do28gw6kgcGVybWl0aWRhOicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgbW9yZUluZm86ICdWZWphIGNvbW8gZnVuY2lvbmEgYXF1aScsXG4gICAgfSxcbiAgICBhY2Nlc3NpYmlsaXR5U2VjdGlvbjoge1xuICAgICAgdGl0bGVUYWI6ICdBY2Vzc2liaWxpZGFkZScsXG4gICAgICB0aXRsZVNlY3Rpb246ICdBY2Vzc2liaWxpZGFkZSBkbyBhZ2VudGUnLFxuICAgICAgc3VidGl0bGVTZWN0aW9uOiAnRXNjb2xoYSBxdWVtIHBvZGUgdmVyIGUgdXNhciBlc3RlIGFnZW50ZSBuYSBzdWEgb3JnYW5pemHDp8Ojby4nLFxuICAgICAgd2hvQ2FuQWNjZXNzOiAnUXVlbSBwb2RlIHVzYXIgZXN0ZSBhZ2VudGU/JyxcbiAgICAgIGFsbENvbXBhbnlUaXRsZTogJ1BhcmEgdG9kYSBhIGVtcHJlc2EnLFxuICAgICAgYWxsQ29tcGFueURlc2NyaXB0aW9uOiAnVG9kb3MgbG9zIHVzdWFyaW9zIGRlIHR1IG9yZ2FuaXphY2nDs24gcG9kcsOhbiB2ZXIgeSB1c2FyIGVzdGUgYWdlbnRlLicsXG4gICAgICBjbGllbnRUaXRsZTogJ1BhcmEgY2xpZW50ZXMgZXNwZWPDrWZpY29zJyxcbiAgICAgIGNsaWVudERlc2NyaXB0aW9uOlxuICAgICAgICAnQXNvY2lhIGVzdGUgYWdlbnRlIGEgdW5vIG8gbcOhcyBjbGllbnRlcy4gVG9kb3MgbG9zIHVzdWFyaW9zIHBvZHLDoW4gdmVyIGNvbiBxdcOpIGNsaWVudGVzIGVzdMOhIHZpbmN1bGFkby4nLFxuICAgICAgb3duVGl0bGU6ICdBcGVuYXMgcGFyYSBtaW0nLFxuICAgICAgb3duRGVzY3JpcHRpb246ICdPIGFnZW50ZSBzZXLDoSBwcml2YWRvIGUgYXBlbmFzIHZvY8OqIHBvZGVyw6EgdsOqLWxvIGUgdXPDoS1sby4nLFxuICAgICAgY2xpZW50c1NlbGVjdGVkOiAnQ2xpZW50ZXMgc2VsZWNpb25hZG9zOicsXG4gICAgICBzZWFyY2hFcnJvcjogJ09wcyEgVGl2ZW1vcyB1bSBwcm9ibGVtYSBhbyBjYXJyZWdhciBvcyBjbGllbnRlcy4gUG9kZSB0ZW50YXIgbm92YW1lbnRlIGVtIGluc3RhbnRlcz8nLFxuICAgICAgc2VhcmNoRW1wdHk6ICdPcHMhIE7Do28gZW5jb250cmFtb3MgY2xpZW50ZXMgY29tIGVzc2Ugbm9tZS4gVGVudGUgb3V0cmEgYnVzY2EuJyxcbiAgICAgIHNlYXJjaEluaXRpYWw6ICdDb21lY2UgYSBkaWdpdGFyIG8gbm9tZSBkZSB1bSBjbGllbnRlIHBhcmEgYXNzb2Npw6EtbG8nLFxuICAgICAgc2VhcmNoUGxhY2Vob2xkZXI6ICdCdXNjYXIgY2xpZW50ZScsXG4gICAgICBjbGllbnRJbmFjdGl2ZTogJ0VzdGUgY2xpZW50ZSBlc3TDoSBpbmF0aXZvLiBSZWNvbWVuZGFtb3MgcmVtb3bDqi1sbyBkYSBsaXN0YS4nLFxuICAgICAgY2xpZW50RGVsZXRlZFRvb2x0aXA6ICdFc3RlIGNsaWVudGUgZm9pIGV4Y2x1w61kby4gUmVjb21lbmRhbW9zIHJlbW92w6otbG8gZGEgbGlzdGEuJyxcbiAgICAgIGNsaWVudERlbGV0ZWQ6ICdDbGllbnRlIGV4Y2x1w61kbycsXG4gICAgICBjbGllbnRzRXJyb3I6ICdWZXJpZmlxdWUgb3MgY2xpZW50ZXMgYXNzb2NpYWRvcycsXG4gICAgfSxcbiAgICBwcm9jZXNzaW5nS25vd2xlZGdlOiB7XG4gICAgICBkZXNjcmlwdGlvbkNyZWF0ZTpcbiAgICAgICAgJ0VzdGFtb3MgY3JpYW5kbyBvIEFnZW50ZSBlIHN1YSBiYXNlIGRlIGNvbmhlY2ltZW50by4gSXNzbyBwb2RlIGxldmFyIGFsZ3VucyBpbnN0YW50ZXMuIFBvciBmYXZvciwgbsOjbyBmZWNoZSBlc3RhIGphbmVsYSBhdMOpIHF1ZSBvIHByb2Nlc3NvIHNlamEgY29uY2x1w61kby4nLFxuICAgICAgZGVzY3JpcHRpb25VcGRhdGU6XG4gICAgICAgICdFc3RhbW9zIGF0dWFsaXphbmRvIG8gQWdlbnRlIGUgc3VhIGJhc2UgZGUgY29uaGVjaW1lbnRvLiBJc3NvIHBvZGUgbGV2YXIgYWxndW5zIGluc3RhbnRlcy4gUG9yIGZhdm9yLCBuw6NvIGZlY2hlIGVzdGEgamFuZWxhIGF0w6kgcXVlIG8gcHJvY2Vzc28gc2VqYSBjb25jbHXDrWRvLicsXG4gICAgICBmaWxlUm93OiAnQXJxdWl2bycsXG4gICAgICBzdGF0dXNSb3c6ICdTdGF0dXMnLFxuICAgICAgcGVuZGluZzogJ1BlbmRlbnRlJyxcbiAgICAgIHByb2Nlc3Npbmc6ICdQcm9jZXNzYW5kbycsXG4gICAgICBmYWlsZWQ6ICdGYWxoYScsXG4gICAgICBkb25lOiAnQ29tcGxldGFkbycsXG4gICAgICBsb2FkaW5nRmlsZXM6ICdDYXJyZWdhbmRvIGFycXVpdm9zLi4uJyxcbiAgICAgIGVycm9yOiB7fSxcbiAgICB9LFxuICAgIGRlbGV0ZUFnZW50TW9kYWw6IHtcbiAgICAgIHRpdGxlOiAnRGVzZWphIGV4Y2x1aXIgZXN0ZSBhZ2VudGU/JyxcbiAgICAgIGZpcnN0UGFydDogJ1ZvY8OqIGVzdMOhIHByZXN0ZXMgYSBleGNsdWlyICcsXG4gICAgICBzZWNvbmRQYXJ0OiAnRXN0YSBhw6fDo28gbsOjbyBwb2RlIHNlciBkZXNmZWl0YS4nLFxuICAgICAgY2FuY2VsOiAnQ2FuY2VsYXInLFxuICAgICAgZGVsZXRlOiAnRXhjbHVpcicsXG4gICAgfSxcbiAgfSxcbiAgW1NFQ1RJT05TLnByb2plY3RTZWxlY3Rvcl06IHtcbiAgICAuLi5nZW5lcmljU2VjdGlvbixcbiAgICBwcm9qZWN0U2VsZWN0b3I6IHtcbiAgICAgIHRpdGxlOiAnRW0gcXVhbCBwcm9qZXRvIHZvY8OqIGdvc3RhcmlhIGRlIGFqdWRhPycsXG4gICAgICBoZWxsbzoge1xuICAgICAgICB0aXRsZTogJ1NvdSBNQUlBLCBzdWEgZXNwZWNpYWxpc3RhIGVtIHByb2pldG9zLicsXG4gICAgICAgIHN1YnRpdGxlOlxuICAgICAgICAgICdQYXJhIHRlIGRhciByZXNwb3N0YXMgcHJlY2lzYXMsIHByZWNpc28gc2FiZXIgc29icmUgcXVhbCBwcm9qZXRvIHZhbW9zIGNvbnZlcnNhci4gUXVhbCB2b2PDqiBlc2NvbGhlPycsXG4gICAgICB9LFxuICAgICAgc3VidGl0bGU6ICdTZWxlY2lvbmUgbyBwcm9qZXRvIHBhcmEgcXVlIGEgTUFJQSByZXNwb25kYSBjb20gYmFzZSBlbSB1bSBjb250ZXh0by4nLFxuICAgICAgbGFiZWxQcm9qZWN0OiAnU2VsZWNpb25lIHVtIHByb2pldG8nLFxuICAgICAgcGxhY2Vob2xkZXI6ICdCdXNxdWUgdW0gcHJvamV0byBwZWxvIG5vbWUnLFxuICAgICAgY2hhbmdlUHJvamVjdDogJ011ZGFyIGRlIHByb2pldG8nLFxuICAgICAgcmVjZW50UHJvamVjdHM6ICdSZWNlbnRlcycsXG4gICAgICBzZWFyY2hpbmdQcm9qZWN0czogJ0J1c2NhbmRvIHNldXMgcHJvamV0b3MuLi4nLFxuICAgICAgZXJyb3JNZXNzYWdlOiAnT3BzISBUaXZlbW9zIHVtIHByb2JsZW1hIGFvIGNhcnJlZ2FyIG9zIHByb2pldG9zLiBQb3IgZmF2b3IsIHRlbnRlIG5vdmFtZW50ZSBlbSBhbGd1bnMgbWludXRvcy4nLFxuICAgICAgZW1wdHlSZWNlbnRQcm9qZWN0czogJ1ZvY8OqIG7Do28gdGVtIHByb2pldG9zIHJlY2VudGVzLiBEaWdpdGUgbyBub21lIGRlIHVtIHByb2pldG8gbmEgYnVzY2EgcGFyYSBlbmNvbnRyw6EtbG8uJyxcbiAgICAgIGVtcHR5U3RhdGU6ICdPcHMhIE7Do28gZW5jb250cmFtb3MgcHJvamV0b3MgY29tIGVzc2Ugbm9tZS4gVGVudGUgb3V0cmEgYnVzY2EuJyxcbiAgICAgIHdpdGhvdXRDbGllbnQ6ICdTZW0gY2xpZW50ZScsXG4gICAgICB3aXRob3V0VGl0bGU6ICdTZW0gdMOtdHVsbycsXG4gICAgfSxcbiAgfSxcbiAgW1NFQ1RJT05TLmNsaWVudFNlbGVjdG9yXToge1xuICAgIC4uLmdlbmVyaWNTZWN0aW9uLFxuICAgIGNsaWVudFNlbGVjdG9yOiB7XG4gICAgICB0aXRsZTogJ0VtIHF1YWwgY2xpZW50ZSB2b2PDqiBnb3N0YXJpYSBkZSBhanVkYT8nLFxuICAgICAgaGVsbG86IHtcbiAgICAgICAgdGl0bGU6ICdTb3UgTUFJQSwgc3VhIGVzcGVjaWFsaXN0YSBlbSBjbGllbnRlcy4nLFxuICAgICAgICBzdWJ0aXRsZTpcbiAgICAgICAgICAnUGFyYSB0ZSBkYXIgcmVzcG9zdGFzIHByZWNpc2FzLCBwcmVjaXNvIHNhYmVyIHNvYnJlIHF1YWwgY2xpZW50ZSB2YW1vcyBjb252ZXJzYXIuIFF1YWwgdm9jw6ogZXNjb2xoZT8nLFxuICAgICAgfSxcbiAgICAgIHN1YnRpdGxlOiAnU2VsZWNpb25lIG8gY2xpZW50ZSBwYXJhIHF1ZSBhIE1BSUEgcmVzcG9uZGEgY29tIGJhc2UgZW0gdW0gY29udGV4dG8uJyxcbiAgICAgIGxhYmVsQ2xpZW50OiAnU2VsZWNpb25lIHVtIGNsaWVudGUnLFxuICAgICAgcGxhY2Vob2xkZXI6ICdCdXNjYXIgY2xpZW50ZSBwZWxvIG5vbWUnLFxuICAgICAgY2hhbmdlQ2xpZW50OiAnTXVkYXIgZGUgY2xpZW50ZScsXG4gICAgICByZWNlbnRDbGllbnRzOiAnUmVjZW50ZXMnLFxuICAgICAgc2VhcmNoaW5nQ2xpZW50czogJ0J1c2NhbmRvIHNldXMgY2xpZW50ZXMuLi4nLFxuICAgICAgZXJyb3JNZXNzYWdlOiAnVGl2ZW1vcyB1bSBwcm9ibGVtYSBhbyBjYXJyZWdhciBvcyBjbGllbnRlcy4gUG9yIGZhdm9yLCB0ZW50ZSBub3ZhbWVudGUgZW0gYWxndW5zIG1pbnV0b3MuJyxcbiAgICAgIGVtcHR5UmVjZW50Q2xpZW50czogJ1ZvY8OqIG7Do28gdGVtIGNsaWVudGVzIHJlY2VudGVzLiBEaWdpdGUgbyBub21lIGRlIHVtIGNsaWVudGUgbmEgYnVzY2EgcGFyYSBlbmNvbnRyw6EtbG8uJyxcbiAgICAgIGVtcHR5U3RhdGU6ICdPcHMhIE7Do28gZW5jb250cmFtb3MgY2xpZW50ZXMgY29tIGVzc2Ugbm9tZS4gVGVudGUgb3V0cmEgYnVzY2EuJyxcbiAgICAgIHByb2plY3Q6ICdwcm9qZXRvJyxcbiAgICAgIHByb2plY3RzOiAncHJvamV0b3MnLFxuICAgIH0sXG4gIH0sXG59XG4iXSwibWFwcGluZ3MiOiI7OztBQUFBLFNBQVNBLFFBQVEsUUFBUSx3QkFBd0I7QUFD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
|