valtech-components 4.0.986 → 4.0.988
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/organisms/survey-builder/types.mjs +7 -2
- package/esm2022/lib/components/organisms/survey-response/survey-response.component.mjs +21 -1
- package/esm2022/lib/components/organisms/survey-response/survey-response.i18n.mjs +5 -1
- package/esm2022/lib/components/organisms/survey-response/types.mjs +1 -1
- package/esm2022/lib/services/requests/types.mjs +1 -1
- package/esm2022/lib/version.mjs +2 -2
- package/fesm2022/valtech-components.mjs +30 -2
- package/fesm2022/valtech-components.mjs.map +1 -1
- package/lib/components/organisms/survey-builder/types.d.ts +6 -0
- package/lib/components/organisms/survey-response/survey-response.component.d.ts +2 -0
- package/lib/components/organisms/survey-response/types.d.ts +6 -0
- package/lib/services/requests/types.d.ts +6 -0
- package/lib/version.d.ts +1 -1
- package/package.json +1 -1
|
@@ -13,13 +13,18 @@
|
|
|
13
13
|
* `FILE`/`ATTACHMENT` quedan deliberadamente fuera: una encuesta es pública y
|
|
14
14
|
* anónima por default, y aceptar subidas ahí es superficie de abuso sin un caso
|
|
15
15
|
* de uso que lo pida.
|
|
16
|
+
*
|
|
17
|
+
* `CHECK` también quedó fuera, por otro motivo: para quien responde era la misma
|
|
18
|
+
* pregunta que `TOGGLE`. Dos formas de escribir "sí o no" no le daban una opción
|
|
19
|
+
* a quien arma la encuesta, le daban una duda. El renderer y la agregación
|
|
20
|
+
* siguen entendiendo `CHECK` — una encuesta vieja que lo tenga se responde y se
|
|
21
|
+
* cuenta igual.
|
|
16
22
|
*/
|
|
17
23
|
export const SURVEY_QUESTION_TYPES = [
|
|
18
24
|
'EMOJI_RATING',
|
|
19
25
|
'SELECT',
|
|
20
26
|
'RADIO',
|
|
21
27
|
'MULTI_SELECT',
|
|
22
|
-
'CHECK',
|
|
23
28
|
'TOGGLE',
|
|
24
29
|
'TEXT',
|
|
25
30
|
'TEXTAREA',
|
|
@@ -28,4 +33,4 @@ export const SURVEY_QUESTION_TYPES = [
|
|
|
28
33
|
'EMAIL',
|
|
29
34
|
'PHONE',
|
|
30
35
|
];
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL3N1cnZleS1idWlsZGVyL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxQkc7QUFDSCxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRztJQUNuQyxjQUFjO0lBQ2QsUUFBUTtJQUNSLE9BQU87SUFDUCxjQUFjO0lBQ2QsUUFBUTtJQUNSLE1BQU07SUFDTixVQUFVO0lBQ1YsUUFBUTtJQUNSLE1BQU07SUFDTixPQUFPO0lBQ1AsT0FBTztDQUNSLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbnRpdHlSZWYsIFJlcXVlc3RUeXBlQ29uZmlnLCBSZXF1ZXN0VmlzaWJpbGl0eSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3JlcXVlc3RzL3R5cGVzJztcblxuLyoqXG4gKiBUaXBvcyBkZSBwcmVndW50YSBxdWUgb2ZyZWNlIHVuYSBlbmN1ZXN0YS5cbiAqXG4gKiBFbCBjb3J0ZSBubyBlcyBlc3TDqXRpY286ICoqdG9kbyB0aXBvIHF1ZSBlc3RhIGxpc3RhIG9mcmV6Y2EsIGB2YWwtc3VydmV5LXJlc3BvbnNlYFxuICogdGllbmUgcXVlIHNhYmVyIHJlbmRlcml6YXJsbyoqLCBvIGxhIGVuY3Vlc3RhIHNlIGd1YXJkYSBiaWVuIHkgc2UgcmVzcG9uZGUgbWFsXG4gKiAodW4gcmF0aW5nIGRpYnVqYWRvIGNvbW8gY2FqYSBkZSB0ZXh0bykuIEFtcGxpYXIgYWPDoSBvYmxpZ2EgYSBhbXBsaWFyIGVsXG4gKiByZW5kZXJlciBlbiBsYSBtaXNtYSBlbnRyZWdhLlxuICpcbiAqIExvcyBzZWlzIHByaW1lcm9zIHNvbiBkZSByZXNwdWVzdGEgY2VycmFkYSDigJQgYGNsb3NlZEFuc3dlclR5cGVzYCBlblxuICogYGJhY2tlbmQvZ28vc2VydmljZXMvcmVxdWVzdC9hZ2dyZWdhdGUuZ29gIGxvcyBjdWVudGEgcG9yIHZhbG9yIGVuIGVsXG4gKiBkYXNoYm9hcmQuIExvcyBzZWlzIMO6bHRpbW9zIHNvbiBhYmllcnRvczogZWwgZGFzaGJvYXJkIGxpc3RhIHN1cyByZXNwdWVzdGFzLlxuICpcbiAqIGBGSUxFYC9gQVRUQUNITUVOVGAgcXVlZGFuIGRlbGliZXJhZGFtZW50ZSBmdWVyYTogdW5hIGVuY3Vlc3RhIGVzIHDDumJsaWNhIHlcbiAqIGFuw7NuaW1hIHBvciBkZWZhdWx0LCB5IGFjZXB0YXIgc3ViaWRhcyBhaMOtIGVzIHN1cGVyZmljaWUgZGUgYWJ1c28gc2luIHVuIGNhc29cbiAqIGRlIHVzbyBxdWUgbG8gcGlkYS5cbiAqXG4gKiBgQ0hFQ0tgIHRhbWJpw6luIHF1ZWTDsyBmdWVyYSwgcG9yIG90cm8gbW90aXZvOiBwYXJhIHF1aWVuIHJlc3BvbmRlIGVyYSBsYSBtaXNtYVxuICogcHJlZ3VudGEgcXVlIGBUT0dHTEVgLiBEb3MgZm9ybWFzIGRlIGVzY3JpYmlyIFwic8OtIG8gbm9cIiBubyBsZSBkYWJhbiB1bmEgb3BjacOzblxuICogYSBxdWllbiBhcm1hIGxhIGVuY3Vlc3RhLCBsZSBkYWJhbiB1bmEgZHVkYS4gRWwgcmVuZGVyZXIgeSBsYSBhZ3JlZ2FjacOzblxuICogc2lndWVuIGVudGVuZGllbmRvIGBDSEVDS2Ag4oCUIHVuYSBlbmN1ZXN0YSB2aWVqYSBxdWUgbG8gdGVuZ2Egc2UgcmVzcG9uZGUgeSBzZVxuICogY3VlbnRhIGlndWFsLlxuICovXG5leHBvcnQgY29uc3QgU1VSVkVZX1FVRVNUSU9OX1RZUEVTID0gW1xuICAnRU1PSklfUkFUSU5HJyxcbiAgJ1NFTEVDVCcsXG4gICdSQURJTycsXG4gICdNVUxUSV9TRUxFQ1QnLFxuICAnVE9HR0xFJyxcbiAgJ1RFWFQnLFxuICAnVEVYVEFSRUEnLFxuICAnTlVNQkVSJyxcbiAgJ0RBVEUnLFxuICAnRU1BSUwnLFxuICAnUEhPTkUnLFxuXTtcblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBRdWVkw7MgZGUgbGEgdjEgZGVsIGJ1aWxkZXIgKEFEUi0wOTIgRmFzZSAyKSwgY3VhbmRvIHVuYSBwcmVndW50YVxuICogZXJhIHNvbG8gbGFiZWwgKyB1bm8gZGUgZG9zIHRpcG9zLiBIb3kgdW5hIHByZWd1bnRhIGVzIHVuIGBFZGl0YWJsZUZpZWxkRGVmYFxuICogY29tcGxldG8g4oCUIHZlciBgdmFsLWZpZWxkLXNjaGVtYS1lZGl0b3JgLiBObyBzZSB1c2EgZW4gbmluZ8O6biBsYWRvOyBzZVxuICogY29uc2VydmEgdW4gY2ljbG8gcGFyYSBubyByb21wZXIgdW4gaW1wb3J0IHBlcmRpZG8uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3VydmV5UXVlc3Rpb25Sb3cge1xuICBpZDogc3RyaW5nO1xuICBsYWJlbDogc3RyaW5nO1xuICB0eXBlOiAnVEVYVEFSRUEnIHwgJ0VNT0pJX1JBVElORyc7XG4gIHJlcXVpcmVkOiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN1cnZleUJ1aWxkZXJNZXRhZGF0YSB7XG4gIC8qKiBTaSBzZSBwYXNhLCBlZGl0YSBlc2UgdGlwbyBleGlzdGVudGU7IHNpIG5vLCBjcmVhIHVubyBudWV2by4gKi9cbiAgdHlwZUlkPzogc3RyaW5nO1xuICAvKiogUHJlZmlqbyBkZWwgYFR5cGVgIGRlbCBSZXF1ZXN0VHlwZUNvbmZpZyDigJQgZWwgY29tcG9uZW50ZSBhcm1hIGBcIjxwcmVmaXg+OjxzbHVnPlwiYC4gKi9cbiAgdHlwZVByZWZpeD86IHN0cmluZztcbiAgZW50aXR5UmVmPzogRW50aXR5UmVmO1xuICAvKiogRGVmYXVsdCAnUFVCTElDJyDigJQgZWwgY2FzbyBtw6FzIGNvbcO6bjogbGluayBlbnZpYWRvIGEgZ2VudGUgc2luIGN1ZW50YS4gKi9cbiAgdmlzaWJpbGl0eT86IFJlcXVlc3RWaXNpYmlsaXR5O1xuICAvKiogRGVmYXVsdCB0cnVlLiAqL1xuICBhbGxvd0Fub255bW91cz86IGJvb2xlYW47XG4gIC8qKiBBY290YSBlbCBjYXTDoWxvZ28gZGUgYFNVUlZFWV9RVUVTVElPTl9UWVBFU2Agc2kgdW5hIGFwcCBxdWllcmUgb2ZyZWNlciBtZW5vcy4gKi9cbiAgcXVlc3Rpb25UeXBlcz86IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN1cnZleUJ1aWxkZXJTYXZlRXZlbnQge1xuICB0eXBlQ29uZmlnOiBSZXF1ZXN0VHlwZUNvbmZpZztcbn1cbiJdfQ==
|
|
@@ -7,6 +7,7 @@ import { AuthService } from '../../../services/auth/auth.service';
|
|
|
7
7
|
import { RequestService } from '../../../services/requests/request.service';
|
|
8
8
|
import { FIELD_TYPE_EMOJI_RATING } from '../../../services/requests/types';
|
|
9
9
|
import { ValtechErrorService } from '../../../services/errors/valtech-error.service';
|
|
10
|
+
import { interpretError } from '../../../services/errors/interpret-error';
|
|
10
11
|
import { DisplayComponent } from '../../atoms/display/display.component';
|
|
11
12
|
import { TitleComponent } from '../../atoms/title/title.component';
|
|
12
13
|
import { TextInputComponent } from '../../molecules/text-input/text-input.component';
|
|
@@ -24,6 +25,8 @@ import { EmptyStateComponent } from '../../molecules/empty-state/empty-state.com
|
|
|
24
25
|
import { SURVEY_RESPONSE_I18N } from './survey-response.i18n';
|
|
25
26
|
import * as i0 from "@angular/core";
|
|
26
27
|
const NAMESPACE = 'SurveyResponse';
|
|
28
|
+
/** Code del backend cuando la invitación de esa persona ya se respondió. */
|
|
29
|
+
const INVITE_USED_CODE = 'SURVEY_INVITE_ALREADY_USED';
|
|
27
30
|
/** Tipos cuya respuesta es un booleano, no un texto. */
|
|
28
31
|
const BOOLEAN_TYPES = ['CHECK', 'TOGGLE'];
|
|
29
32
|
/**
|
|
@@ -62,6 +65,7 @@ export class SurveyResponseComponent {
|
|
|
62
65
|
this.sending = signal(false);
|
|
63
66
|
this.typeConfig = signal(null);
|
|
64
67
|
this.multiSelectError = signal(false);
|
|
68
|
+
this.alreadyAnswered = signal(false);
|
|
65
69
|
this.nameControl = new FormControl('', { nonNullable: true });
|
|
66
70
|
this.emailControl = new FormControl('', { nonNullable: true });
|
|
67
71
|
this.form = new FormGroup({});
|
|
@@ -83,6 +87,10 @@ export class SurveyResponseComponent {
|
|
|
83
87
|
return !!this.typeConfig()?.allowAnonymous;
|
|
84
88
|
});
|
|
85
89
|
this.submitState = computed(() => (this.sending() ? 'WORKING' : 'ENABLED'));
|
|
90
|
+
this.alreadyAnsweredState = computed(() => {
|
|
91
|
+
this.i18n.lang();
|
|
92
|
+
return { variant: 'empty', title: this.t('alreadyTitle'), description: this.t('alreadyBody') };
|
|
93
|
+
});
|
|
86
94
|
this.sentState = computed(() => {
|
|
87
95
|
this.i18n.lang();
|
|
88
96
|
return { variant: 'empty', title: this.t('sentTitle'), description: this.t('sentBody') };
|
|
@@ -260,6 +268,7 @@ export class SurveyResponseComponent {
|
|
|
260
268
|
type: cfg.typeId,
|
|
261
269
|
title: cfg.label,
|
|
262
270
|
fields,
|
|
271
|
+
...(this.props.inviteToken ? { inviteToken: this.props.inviteToken } : {}),
|
|
263
272
|
...(this.needsIdentity()
|
|
264
273
|
? { submitter: { name: this.nameControl.value.trim(), email: this.emailControl.value.trim() } }
|
|
265
274
|
: {}),
|
|
@@ -275,6 +284,13 @@ export class SurveyResponseComponent {
|
|
|
275
284
|
}
|
|
276
285
|
catch (err) {
|
|
277
286
|
this.sending.set(false);
|
|
287
|
+
// Una invitación ya usada no es un fallo: es la respuesta correcta al
|
|
288
|
+
// segundo intento. Un toast rojo de "no pudimos enviar" haría creer que
|
|
289
|
+
// se perdió lo que ya se había respondido.
|
|
290
|
+
if (interpretError(err).code === INVITE_USED_CODE) {
|
|
291
|
+
this.alreadyAnswered.set(true);
|
|
292
|
+
return;
|
|
293
|
+
}
|
|
278
294
|
this.errors.handle(err, {
|
|
279
295
|
context: 'surveyResponse.submit',
|
|
280
296
|
fallbackKey: 'sendError',
|
|
@@ -291,6 +307,8 @@ export class SurveyResponseComponent {
|
|
|
291
307
|
<div class="survey-response__loading" aria-hidden="true"></div>
|
|
292
308
|
} @else if (loadError()) {
|
|
293
309
|
<val-empty-state [props]="loadErrorState()" />
|
|
310
|
+
} @else if (alreadyAnswered()) {
|
|
311
|
+
<val-empty-state [props]="alreadyAnsweredState()" />
|
|
294
312
|
} @else if (sent()) {
|
|
295
313
|
<val-empty-state [props]="sentState()" />
|
|
296
314
|
} @else {
|
|
@@ -458,6 +476,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
458
476
|
<div class="survey-response__loading" aria-hidden="true"></div>
|
|
459
477
|
} @else if (loadError()) {
|
|
460
478
|
<val-empty-state [props]="loadErrorState()" />
|
|
479
|
+
} @else if (alreadyAnswered()) {
|
|
480
|
+
<val-empty-state [props]="alreadyAnsweredState()" />
|
|
461
481
|
} @else if (sent()) {
|
|
462
482
|
<val-empty-state [props]="sentState()" />
|
|
463
483
|
} @else {
|
|
@@ -606,4 +626,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
606
626
|
}], submitted: [{
|
|
607
627
|
type: Output
|
|
608
628
|
}] } });
|
|
609
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VydmV5LXJlc3BvbnNlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvc3VydmV5LXJlc3BvbnNlL3N1cnZleS1yZXNwb25zZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekcsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsbUJBQW1CLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUV0QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUM1RSxPQUFPLEVBQWtCLHVCQUF1QixFQUFxQixNQUFNLGtDQUFrQyxDQUFDO0FBQzlHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUNyRixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUNqRyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxxREFBcUQsQ0FB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QkFBdUI7bUdBQXZCLHVCQUF1QixnSkF4THhCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtSlQsb2dCQW5LQyxZQUFZLDhCQUNaLG1CQUFtQiwrQkFDbkIsZ0JBQWdCLDJFQUNoQixjQUFjLHlFQUNkLGtCQUFrQix3RkFDbEIsc0JBQXNCLDRGQUN0Qix1QkFBdUIsMEZBQ3ZCLG1CQUFtQiwrRUFDbkIsbUJBQW1CLHlGQUNuQixvQkFBb0IsMEZBQ3BCLG1CQUFtQix5R0FDbkIsa0JBQWtCLDhFQUNsQixvQkFBb0IsZ0ZBQ3BCLGVBQWUsMEdBQ2YsbUJBQW1COzs0RkEwTFYsdUJBQXVCO2tCQTVNbkMsU0FBUzsrQkFDRSxxQkFBcUIsY0FDbkIsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osbUJBQW1CO3dCQUNuQixnQkFBZ0I7d0JBQ2hCLGNBQWM7d0JBQ2Qsa0JBQWtCO3dCQUNsQixzQkFBc0I7d0JBQ3RCLHVCQUF1Qjt3QkFDdkIsbUJBQW1CO3dCQUNuQixtQkFBbUI7d0JBQ25CLG9CQUFvQjt3QkFDcEIsbUJBQW1CO3dCQUNuQixrQkFBa0I7d0JBQ2xCLG9CQUFvQjt3QkFDcEIsZUFBZTt3QkFDZixtQkFBbUI7cUJBQ3BCLFlBQ1M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1KVDt3REFzQ1EsS0FBSztzQkFBYixLQUFLO2dCQUNhLFNBQVM7c0JBQTNCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgY29tcHV0ZWQsIGluamVjdCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgZmlyc3RWYWx1ZUZyb20gfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pMThuJztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYXV0aC9hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgUmVxdWVzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9yZXF1ZXN0cy9yZXF1ZXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgRmllbGRTY2hlbWFEZWYsIEZJRUxEX1RZUEVfRU1PSklfUkFUSU5HLCBSZXF1ZXN0VHlwZUNvbmZpZyB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3JlcXVlc3RzL3R5cGVzJztcbmltcG9ydCB7IFZhbHRlY2hFcnJvclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9lcnJvcnMvdmFsdGVjaC1lcnJvci5zZXJ2aWNlJztcbmltcG9ydCB7IERpc3BsYXlDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy9kaXNwbGF5L2Rpc3BsYXkuY29tcG9uZW50JztcbmltcG9ydCB7IFRpdGxlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvdGl0bGUvdGl0bGUuY29tcG9uZW50JztcbmltcG9ydCB7IFRleHRJbnB1dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy90ZXh0LWlucHV0L3RleHQtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IFRleHRhcmVhSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvdGV4dGFyZWEtaW5wdXQvdGV4dGFyZWEtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IFNlYXJjaFNlbGVjdG9yQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL3NlbGVjdC1pbnB1dC9zZWxlY3QtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IFJhZGlvSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvcmFkaW8taW5wdXQvcmFkaW8taW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IENoZWNrSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvY2hlY2staW5wdXQvY2hlY2staW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IFRvZ2dsZUlucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL3RvZ2dsZS1pbnB1dC90b2dnbGUtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IERhdGVQaWNrZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvZGF0ZS1waWNrZXIvZGF0ZS1waWNrZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEZvcm1GaWVsZENvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9mb3JtLWZpZWxkL2Zvcm0tZmllbGQuY29tcG9uZW50JztcbmltcG9ydCB7IEVtb2ppUmF0aW5nQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvZW1vamktcmF0aW5nL2Vtb2ppLXJhdGluZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29tcG9uZW50U3RhdGVzLCBJbnB1dE1ldGFkYXRhLCBJbnB1dE9wdGlvbiwgSW5wdXRUeXBlIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvYnV0dG9uL2J1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgRW1wdHlTdGF0ZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9lbXB0eS1zdGF0ZS9lbXB0eS1zdGF0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRW1wdHlTdGF0ZU1ldGFkYXRhIH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL2VtcHR5LXN0YXRlL3R5cGVzJztcbmltcG9ydCB7IFN1cnZleVJlc3BvbnNlTWV0YWRhdGEsIFN1cnZleVJlc3BvbnNlU3VibWl0RXZlbnQgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IFNVUlZFWV9SRVNQT05TRV9JMThOIH0gZnJvbSAnLi9zdXJ2ZXktcmVzcG9uc2UuaTE4bic7XG5cbmNvbnN0IE5BTUVTUEFDRSA9ICdTdXJ2ZXlSZXNwb25zZSc7XG5cbi8qKiBUaXBvcyBjdXlhIHJlc3B1ZXN0YSBlcyB1biBib29sZWFubywgbm8gdW4gdGV4dG8uICovXG5jb25zdCBCT09MRUFOX1RZUEVTID0gWydDSEVDSycsICdUT0dHTEUnXTtcblxuLyoqXG4gKiB2YWwtc3VydmV5LXJlc3BvbnNlXG4gKlxuICogVG9tYSB1bmEgZW5jdWVzdGEgKGBSZXF1ZXN0VHlwZUNvbmZpZ2AgY29uIGBUeXBlOiBcInN1cnZleTo8c2x1Zz5cImAsIEFEUi0wOTIpXG4gKiB5IGxhIHByZXNlbnRhIGNvbW8gZm9ybXVsYXJpbyBkZSByZXNwdWVzdGEg4oCUIGVsIG9yZ2FuaXNtIHF1ZSB1biB2aXNpdGFudGVcbiAqIHZlIGFsIGFicmlyIGVsIGxpbmsgZGUgdW5hIGVuY3Vlc3RhLiBTZWxmLWNvbnRhaW5lZCwgaWd1YWwgcXVlXG4gKiBgdmFsLWNvbnRlbnQtcmVhY3Rpb25gL2B2YWwtYWNjZXNzLXJlcXVlc3Qtdmlld2A6IGxlZSBlbCB0aXBvLCBhcm1hIGVsXG4gKiBmb3JtdWxhcmlvLCBlbnbDrWEgbGEgcmVzcHVlc3RhLCBzaW4gcXVlIGVsIGNvbnN1bWVyIHRlbmdhIHF1ZSBvcnF1ZXN0YXJcbiAqIG5hZGEgZGUgZXNvLlxuICpcbiAqIFNvbG8gbGVlIHRpcG9zIGB2aXNpYmlsaXR5OiAnUFVCTElDJ2AgKHbDrWEgYGdldFB1YmxpY1JlcXVlc3RUeXBlYCwgc2luXG4gKiBhdXRoKSDigJQgZXMgZWwgY2FzbyBkZSB1c28gcXVlIGRlc2NyaWJlIGVsIEFEUiAobGluayBlbnZpYWRvIGEgY29tcHJhZG9yZXMsXG4gKiBxdWUgcHVlZGVuIG5vIHRlbmVyIGN1ZW50YSkuIEVuY3Vlc3RhcyBBVVRIRU5USUNBVEVEL09SRy9JTlRFUk5BTCBlc3TDoW5cbiAqIGZ1ZXJhIGRlIGFsY2FuY2UgZGUgZXN0ZSBjb21wb25lbnRlIHBvciBhaG9yYS5cbiAqXG4gKiBDYWRhIHByZWd1bnRhIHNlIHJlbmRlcml6YSBzZWfDum4gc3UgYEZpZWxkU2NoZW1hRGVmLnR5cGVgOiBgRU1PSklfUkFUSU5HYFxuICogdXNhIGB2YWwtZW1vamktcmF0aW5nYCAoTlVOQ0EgcGFzYSBwb3IgYHZhbC1mb3JtYCwgbm8gbG8gc2FiZSBydXRlYXIpO1xuICogY3VhbHF1aWVyIG90cm8gdGlwbyAodjE6IHNvbG8gYFRFWFRBUkVBYCkgdXNhIGB2YWwtdGV4dGFyZWEtaW5wdXRgLiBObyBoYXlcbiAqIGB2YWwtZm9ybWAgZGUgcG9yIG1lZGlvIOKAlCB1biBGb3JtR3JvdXAgYXJtYWRvIGEgbWFubywgcG9ycXVlIG1lemNsYXIgdGlwb3NcbiAqIGN1c3RvbSBjb24gZWwgZm9ybSBnZW7DqXJpY28gZXMgbcOhcyBjb21wbGljYWRvIHF1ZSBjb25zdHJ1aXIgZWwgcHJvcGlvLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtc3VydmV5LXJlc3BvbnNlJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIERpc3BsYXlDb21wb25lbnQsXG4gICAgVGl0bGVDb21wb25lbnQsXG4gICAgVGV4dElucHV0Q29tcG9uZW50LFxuICAgIFRleHRhcmVhSW5wdXRDb21wb25lbnQsXG4gICAgU2VhcmNoU2VsZWN0b3JDb21wb25lbnQsXG4gICAgUmFkaW9JbnB1dENvbXBvbmVudCxcbiAgICBDaGVja0lucHV0Q29tcG9uZW50LFxuICAgIFRvZ2dsZUlucHV0Q29tcG9uZW50LFxuICAgIERhdGVQaWNrZXJDb21wb25lbnQsXG4gICAgRm9ybUZpZWxkQ29tcG9uZW50LFxuICAgIEVtb2ppUmF0aW5nQ29tcG9uZW50LFxuICAgIEJ1dHRvbkNvbXBvbmVudCxcbiAgICBFbXB0eVN0YXRlQ29tcG9uZW50LFxuICBdLFxuICB0ZW1wbGF0ZTogYFxuICAgIEBpZiAobG9hZGluZygpKSB7XG4gICAgICA8ZGl2IGNsYXNzPVwic3VydmV5LXJlc3BvbnNlX19sb2FkaW5nXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9kaXY+XG4gICAgfSBAZWxzZSBpZiAobG9hZEVycm9yKCkpIHtcbiAgICAgIDx2YWwtZW1wdHktc3RhdGUgW3Byb3BzXT1cImxvYWRFcnJvclN0YXRlKClcIiAvPlxuICAgIH0gQGVsc2UgaWYgKHNlbnQoKSkge1xuICAgICAgPHZhbC1lbXB0eS1zdGF0ZSBbcHJvcHNdPVwic2VudFN0YXRlKClcIiAvPlxuICAgIH0gQGVsc2Uge1xuICAgICAgQGlmICh0eXBlQ29uZmlnKCk7IGFzIGNmZykge1xuICAgICAgICBAaWYgKCFjYW5SZXNwb25kKCkpIHtcbiAgICAgICAgICA8dmFsLWVtcHR5LXN0YXRlIFtwcm9wc109XCJsb2dpblJlcXVpcmVkU3RhdGUoKVwiIC8+XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdXJ2ZXktcmVzcG9uc2VcIj5cbiAgICAgICAgICAgIDx2YWwtZGlzcGxheSBbcHJvcHNdPVwieyBjb250ZW50OiBjZmcubGFiZWwsIHNpemU6ICdzbWFsbCcsIGNvbG9yOiAnZGFyaycgfVwiIC8+XG4gICAgICAgICAgICBAaWYgKGNmZy5zdWJ0aXRsZSkge1xuICAgICAgICAgICAgICA8dmFsLXRpdGxlIFtwcm9wc109XCJ7IGNvbnRlbnQ6IGNmZy5zdWJ0aXRsZSwgc2l6ZTogJ2xhcmdlJywgY29sb3I6ICcnLCBib2xkOiBmYWxzZSB9XCIgLz5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgPCEtLSBTb2xvIHNpIGVsIFRJUE8gbG8gZXhpZ2UgKHNraXBTdWJtaXR0ZXJJZGVudGl0eSBhdXNlbnRlL2ZhbHNlKS5cbiAgICAgICAgICAgICAgICAgVW5hIGVuY3Vlc3RhIGxvIHBvbmUgZW4gdHJ1ZSB5IGFjw6Egbm8gc2UgcGlkZSBuYWRhOiBzaSBlbFxuICAgICAgICAgICAgICAgICBmb3JtdWxhcmlvIGxvcyBleGlnaWVyYSBpZ3VhbCwgcXVlZGFyw61hbiByZXF1ZXJpZG9zIGVcbiAgICAgICAgICAgICAgICAgaW52aXNpYmxlcyB5IGVsIGVudsOtbyBzZSBibG9xdWVhcsOtYSBzaW4gbW90aXZvIGEgbGEgdmlzdGEuIC0tPlxuICAgICAgICAgICAgQGlmIChuZWVkc0lkZW50aXR5KCkpIHtcbiAgICAgICAgICAgICAgPHZhbC10ZXh0LWlucHV0XG4gICAgICAgICAgICAgICAgW3Byb3BzXT1cInsgY29udHJvbDogbmFtZUNvbnRyb2wsIGxhYmVsOiB0KCduYW1lTGFiZWwnKSwgcGxhY2Vob2xkZXI6IHQoJ25hbWVQbGFjZWhvbGRlcicpIH1cIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8dmFsLXRleHQtaW5wdXRcbiAgICAgICAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgICAgICAgY29udHJvbDogZW1haWxDb250cm9sLFxuICAgICAgICAgICAgICAgICAgaW5wdXRUeXBlOiAnZW1haWwnLFxuICAgICAgICAgICAgICAgICAgbGFiZWw6IHQoJ2VtYWlsTGFiZWwnKSxcbiAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyOiB0KCdlbWFpbFBsYWNlaG9sZGVyJyksXG4gICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBmb3IgKHEgb2YgcXVlc3Rpb25zKCk7IHRyYWNrIHEubmFtZSkge1xuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3VydmV5LXJlc3BvbnNlX19xdWVzdGlvblwiPlxuICAgICAgICAgICAgICAgIEBzd2l0Y2ggKHEudHlwZSkge1xuICAgICAgICAgICAgICAgICAgQGNhc2UgKGVtb2ppVHlwZSkge1xuICAgICAgICAgICAgICAgICAgICA8dmFsLWVtb2ppLXJhdGluZyBbcHJvcHNdPVwieyBjb250cm9sOiBxdWVzdGlvbkNvbnRyb2wocS5uYW1lKSwgbGFiZWw6IHF1ZXN0aW9uTGFiZWwocSkgfVwiIC8+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBAY2FzZSAoJ1RFWFRBUkVBJykge1xuICAgICAgICAgICAgICAgICAgICA8dmFsLXRleHRhcmVhLWlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRyb2w6IHF1ZXN0aW9uQ29udHJvbChxLm5hbWUpLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IHF1ZXN0aW9uTGFiZWwocSksXG4gICAgICAgICAgICAgICAgICAgICAgICBoaW50OiBoaW50T2YocSksXG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogcGxhY2Vob2xkZXJPZihxKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGF1dG9Hcm93OiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgQGNhc2UgKCdTRUxFQ1QnKSB7XG4gICAgICAgICAgICAgICAgICAgIDx2YWwtZm9ybS1maWVsZCBbbGFiZWxdPVwicXVlc3Rpb25MYWJlbChxKVwiPlxuICAgICAgICAgICAgICAgICAgICAgIDx2YWwtc2VsZWN0LWlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgICAgICAgICAgICAgICBjb250cm9sOiBxdWVzdGlvbkNvbnRyb2wocS5uYW1lKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogc2VsZWN0VHlwZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6IHBsYWNlaG9sZGVyT2YocSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnM6IG9wdGlvbnNPZihxKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvdmFsLWZvcm0tZmllbGQ+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoaGludE9mKHEpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdXJ2ZXktcmVzcG9uc2VfX2hpbnRcIj57eyBoaW50T2YocSkgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIEBjYXNlICgnUkFESU8nKSB7XG4gICAgICAgICAgICAgICAgICAgIDx2YWwtZm9ybS1maWVsZCBbbGFiZWxdPVwicXVlc3Rpb25MYWJlbChxKVwiPlxuICAgICAgICAgICAgICAgICAgICAgIDx2YWwtcmFkaW8taW5wdXQgW3Byb3BzXT1cInJhZGlvUHJvcHMocSlcIiAvPlxuICAgICAgICAgICAgICAgICAgICA8L3ZhbC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICAgICAgICBAaWYgKGhpbnRPZihxKSkge1xuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3VydmV5LXJlc3BvbnNlX19oaW50XCI+e3sgaGludE9mKHEpIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBAY2FzZSAoJ01VTFRJX1NFTEVDVCcpIHtcbiAgICAgICAgICAgICAgICAgICAgPHZhbC1mb3JtLWZpZWxkIFtsYWJlbF09XCJxdWVzdGlvbkxhYmVsKHEpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1cnZleS1yZXNwb25zZV9fb3B0aW9uc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAob3B0IG9mIG9wdGlvbnNPZihxKTsgdHJhY2sgb3B0LmlkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDx2YWwtY2hlY2staW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcHJvcHNdPVwieyBjb250cm9sOiBvcHRpb25Db250cm9sKHEubmFtZSwgb3B0LmlkKSwgbGFiZWw6IG9wdC5uYW1lLCBsYWJlbFBsYWNlbWVudDogJ2VuZCcgfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvdmFsLWZvcm0tZmllbGQ+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoaGludE9mKHEpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdXJ2ZXktcmVzcG9uc2VfX2hpbnRcIj57eyBoaW50T2YocSkgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIEBjYXNlICgnQ0hFQ0snKSB7XG4gICAgICAgICAgICAgICAgICAgIDx2YWwtY2hlY2staW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICBbcHJvcHNdPVwieyBjb250cm9sOiBib29sZWFuQ29udHJvbChxLm5hbWUpLCBsYWJlbDogcXVlc3Rpb25MYWJlbChxKSwgbGFiZWxQbGFjZW1lbnQ6ICdlbmQnIH1cIlxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgQGNhc2UgKCdUT0dHTEUnKSB7XG4gICAgICAgICAgICAgICAgICAgIDx2YWwtdG9nZ2xlLWlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgW3Byb3BzXT1cInsgY29udHJvbDogYm9vbGVhbkNvbnRyb2wocS5uYW1lKSwgbGFiZWw6IHF1ZXN0aW9uTGFiZWwocSksIGp1c3RpZnk6ICdzcGFjZS1iZXR3ZWVuJyB9XCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIEBjYXNlICgnREFURScpIHtcbiAgICAgICAgICAgICAgICAgICAgPHZhbC1kYXRlLXBpY2tlclxuICAgICAgICAgICAgICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250cm9sOiBxdWVzdGlvbkNvbnRyb2wocS5uYW1lKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBxdWVzdGlvbkxhYmVsKHEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgaGludDogaGludE9mKHEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6IHBsYWNlaG9sZGVyT2YocSksXG4gICAgICAgICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBAZGVmYXVsdCB7XG4gICAgICAgICAgICAgICAgICAgIDx2YWwtdGV4dC1pbnB1dFxuICAgICAgICAgICAgICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250cm9sOiBxdWVzdGlvbkNvbnRyb2wocS5uYW1lKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBxdWVzdGlvbkxhYmVsKHEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgaGludDogaGludE9mKHEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6IHBsYWNlaG9sZGVyT2YocSksXG4gICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFR5cGU6IGlucHV0VHlwZU9mKHEudHlwZSksXG4gICAgICAgICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGlmIChtdWx0aVNlbGVjdEVycm9yKCkpIHtcbiAgICAgICAgICAgICAgPHAgY2xhc3M9XCJzdXJ2ZXktcmVzcG9uc2VfX2Vycm9yXCI+e3sgdCgncmVxdWlyZWQnKSB9fTwvcD5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgPHZhbC1idXR0b25cbiAgICAgICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgICAgICB0b2tlbjogJ3N1cnZleS1yZXNwb25zZS1zdWJtaXQnLFxuICAgICAgICAgICAgICAgIHRleHQ6IHQoJ3N1Ym1pdCcpLFxuICAgICAgICAgICAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgICAgICAgICAgICAgZmlsbDogJ3NvbGlkJyxcbiAgICAgICAgICAgICAgICBzaGFwZTogJ3JvdW5kJyxcbiAgICAgICAgICAgICAgICBzaXplOiAnZGVmYXVsdCcsXG4gICAgICAgICAgICAgICAgZXhwYW5kOiAnYmxvY2snLFxuICAgICAgICAgICAgICAgIHR5cGU6ICdidXR0b24nLFxuICAgICAgICAgICAgICAgIHN0YXRlOiBzdWJtaXRTdGF0ZSgpLFxuICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgKG9uQ2xpY2spPVwic3VibWl0KClcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgYCxcbiAgc3R5bGVzOiBbXG4gICAgYFxuICAgICAgOmhvc3Qge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cbiAgICAgIC5zdXJ2ZXktcmVzcG9uc2Uge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDE2cHg7XG4gICAgICB9XG4gICAgICAuc3VydmV5LXJlc3BvbnNlX19xdWVzdGlvbiB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgICAgLnN1cnZleS1yZXNwb25zZV9fb3B0aW9ucyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogNHB4O1xuICAgICAgfVxuICAgICAgLnN1cnZleS1yZXNwb25zZV9fZXJyb3Ige1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItZGFuZ2VyKTtcbiAgICAgICAgZm9udC1zaXplOiAwLjg3NXJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgIH1cbiAgICAgIC5zdXJ2ZXktcmVzcG9uc2VfX2hpbnQge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luLXRvcDogNHB4O1xuICAgICAgICBmb250LXNpemU6IDAuODEyNXJlbTtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1tZWRpdW0sICM5Mjk0OWMpO1xuICAgICAgfVxuICAgICAgLnN1cnZleS1yZXNwb25zZV9fbG9hZGluZyB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDEyMHB4O1xuICAgICAgfVxuICAgIGAsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFN1cnZleVJlc3BvbnNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgcHJvcHMhOiBTdXJ2ZXlSZXNwb25zZU1ldGFkYXRhO1xuICBAT3V0cHV0KCkgcmVhZG9ubHkgc3VibWl0dGVkID0gbmV3IEV2ZW50RW1pdHRlcjxTdXJ2ZXlSZXNwb25zZVN1Ym1pdEV2ZW50PigpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgaTE4biA9IGluamVjdChJMThuU2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgYXV0aCA9IGluamVjdChBdXRoU2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgcmVxdWVzdHMgPSBpbmplY3QoUmVxdWVzdFNlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IGVycm9ycyA9IGluamVjdChWYWx0ZWNoRXJyb3JTZXJ2aWNlKTtcblxuICByZWFkb25seSBlbW9qaVR5cGUgPSBGSUVMRF9UWVBFX0VNT0pJX1JBVElORztcbiAgcmVhZG9ubHkgc2VsZWN0VHlwZSA9IElucHV0VHlwZS5TRUxFQ1Q7XG5cbiAgcmVhZG9ubHkgbG9hZGluZyA9IHNpZ25hbCh0cnVlKTtcbiAgcmVhZG9ubHkgbG9hZEVycm9yID0gc2lnbmFsKGZhbHNlKTtcbiAgcmVhZG9ubHkgc2VudCA9IHNpZ25hbChmYWxzZSk7XG4gIHJlYWRvbmx5IHNlbmRpbmcgPSBzaWduYWwoZmFsc2UpO1xuICByZWFkb25seSB0eXBlQ29uZmlnID0gc2lnbmFsPFJlcXVlc3RUeXBlQ29uZmlnIHwgbnVsbD4obnVsbCk7XG4gIHJlYWRvbmx5IG11bHRpU2VsZWN0RXJyb3IgPSBzaWduYWwoZmFsc2UpO1xuXG4gIHJlYWRvbmx5IG5hbWVDb250cm9sID0gbmV3IEZvcm1Db250cm9sKCcnLCB7IG5vbk51bGxhYmxlOiB0cnVlIH0pO1xuICByZWFkb25seSBlbWFpbENvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woJycsIHsgbm9uTnVsbGFibGU6IHRydWUgfSk7XG4gIHByaXZhdGUgZm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xuICAvKipcbiAgICogVW5hIGNhc2lsbGEgcG9yIG9wY2nDs24gZGUgY2FkYSBwcmVndW50YSBNVUxUSV9TRUxFQ1QsIGluZGV4YWRhXG4gICAqIGBcIjxwcmVndW50YT46OjxvcGNpb24+XCJgLiBWaXZlbiBmdWVyYSBkZWwgYGZvcm1gIHBvcnF1ZSBlbCB2YWxvciBxdWUgdmlhamFcbiAgICogYWwgYmFja2VuZCBlcyBVTkEgbGlzdGEgcG9yIHByZWd1bnRhLCBubyBOIGJvb2xlYW5vczogc2UgYXJtYSBhbCBlbnZpYXIuXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IG11bHRpQ29udHJvbHMgPSBuZXcgTWFwPHN0cmluZywgRm9ybUNvbnRyb2w8Ym9vbGVhbj4+KCk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgaWYgKCF0aGlzLmkxOG4uaGFzTmFtZXNwYWNlKE5BTUVTUEFDRSkpIHtcbiAgICAgIHRoaXMuaTE4bi5yZWdpc3RlckRlZmF1bHRzKE5BTUVTUEFDRSwgU1VSVkVZX1JFU1BPTlNFX0kxOE4pO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIG5nT25Jbml0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBjZmcgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLnJlcXVlc3RzLmdldFB1YmxpY1JlcXVlc3RUeXBlKHRoaXMucHJvcHMudHlwZUlkKSk7XG4gICAgICB0aGlzLnR5cGVDb25maWcuc2V0KGNmZyk7XG4gICAgICB0aGlzLmJ1aWxkRm9ybShjZmcpO1xuICAgIH0gY2F0Y2gge1xuICAgICAgdGhpcy5sb2FkRXJyb3Iuc2V0KHRydWUpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICB0aGlzLmxvYWRpbmcuc2V0KGZhbHNlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkRm9ybShjZmc6IFJlcXVlc3RUeXBlQ29uZmlnKTogdm9pZCB7XG4gICAgY29uc3QgZ3JvdXA6IFJlY29yZDxzdHJpbmcsIEZvcm1Db250cm9sPiA9IHt9O1xuICAgIGZvciAoY29uc3QgcSBvZiBbLi4uY2ZnLmZpZWxkU2NoZW1hXS5zb3J0KChhLCBiKSA9PiBhLm9yZGVyIC0gYi5vcmRlcikpIHtcbiAgICAgIGlmIChxLnR5cGUgPT09ICdNVUxUSV9TRUxFQ1QnKSB7XG4gICAgICAgIGZvciAoY29uc3Qgb3B0IG9mIHEub3B0aW9ucyA/PyBbXSkge1xuICAgICAgICAgIHRoaXMubXVsdGlDb250cm9scy5zZXQoYCR7cS5uYW1lfTo6JHtvcHQuaWR9YCwgbmV3IEZvcm1Db250cm9sKGZhbHNlLCB7IG5vbk51bGxhYmxlOiB0cnVlIH0pKTtcbiAgICAgICAgfVxuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGlmIChCT09MRUFOX1RZUEVTLmluY2x1ZGVzKHEudHlwZSkpIHtcbiAgICAgICAgLy8gU2luIGByZXF1aXJlZGA6IHVuIGJvb2xlYW5vIFNJRU1QUkUgdGllbmUgdmFsb3IuIEV4aWdpcmxvIG9ibGlnYXLDrWEgYVxuICAgICAgICAvLyBtYXJjYXJsbywgcXVlIGVzIG90cmEgY29zYSBxdWUgcmVzcG9uZGVyIOKAlCB5IGRlamFyw61hIGVsIGVudsOtb1xuICAgICAgICAvLyBibG9xdWVhZG8gc2luIHF1ZSBzZSB2ZWEgcG9yIHF1w6kuXG4gICAgICAgIGdyb3VwW3EubmFtZV0gPSBuZXcgRm9ybUNvbnRyb2woZmFsc2UsIHsgbm9uTnVsbGFibGU6IHRydWUgfSk7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgZ3JvdXBbcS5uYW1lXSA9IG5ldyBGb3JtQ29udHJvbCh7IHZhbHVlOiAnJywgZGlzYWJsZWQ6IGZhbHNlIH0sIHEucmVxdWlyZWQgPyBbVmFsaWRhdG9ycy5yZXF1aXJlZF0gOiBbXSk7XG4gICAgfVxuICAgIHRoaXMuZm9ybSA9IG5ldyBGb3JtR3JvdXAoZ3JvdXApO1xuXG4gICAgaWYgKHRoaXMubmVlZHNJZGVudGl0eSgpKSB7XG4gICAgICAvLyBzZXRWYWxpZGF0b3JzIHBvciBzw60gc29sbyBubyByZWNhbGN1bGEgZWwgc3RhdHVzIGRlbCBjb250cm9sIOKAlCBzaW4gZWxcbiAgICAgIC8vIHVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKSBkZSBhbCBsYWRvLCBuYW1lL2VtYWlsIHF1ZWRhYmFuIFZBTElEIGhhc3RhXG4gICAgICAvLyBlbCBwcsOzeGltbyBjYW1iaW8gZGUgdmFsb3IsIHkgc3VibWl0KCkgZGVqYWJhIHBhc2FyIHVuIGVudsOtbyBhbsOzbmltb1xuICAgICAgLy8gc2luIGlkZW50aWRhZC5cbiAgICAgIHRoaXMubmFtZUNvbnRyb2wuc2V0VmFsaWRhdG9ycyhbVmFsaWRhdG9ycy5yZXF1aXJlZF0pO1xuICAgICAgdGhpcy5uYW1lQ29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgICB0aGlzLmVtYWlsQ29udHJvbC5zZXRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLmVtYWlsXSk7XG4gICAgICB0aGlzLmVtYWlsQ29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIFByZWd1bnRhcyBvcmRlbmFkYXMg4oCUIGVsIHRlbXBsYXRlIGxhcyByZWNvcnJlIGVuIGVzdGUgb3JkZW4uICovXG4gIHJlYWRvbmx5IHF1ZXN0aW9ucyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBjZmcgPSB0aGlzLnR5cGVDb25maWcoKTtcbiAgICByZXR1cm4gY2ZnID8gWy4uLmNmZy5maWVsZFNjaGVtYV0uc29ydCgoYSwgYikgPT4gYS5vcmRlciAtIGIub3JkZXIpIDogW107XG4gIH0pO1xuXG4gIHF1ZXN0aW9uQ29udHJvbChuYW1lOiBzdHJpbmcpOiBGb3JtQ29udHJvbCB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybS5nZXQobmFtZSkgYXMgRm9ybUNvbnRyb2w7XG4gIH1cblxuICBib29sZWFuQ29udHJvbChuYW1lOiBzdHJpbmcpOiBGb3JtQ29udHJvbDxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybS5nZXQobmFtZSkgYXMgRm9ybUNvbnRyb2w8Ym9vbGVhbj47XG4gIH1cblxuICBvcHRpb25Db250cm9sKG5hbWU6IHN0cmluZywgb3B0aW9uSWQ6IHN0cmluZyk6IEZvcm1Db250cm9sPGJvb2xlYW4+IHtcbiAgICBjb25zdCBrZXkgPSBgJHtuYW1lfTo6JHtvcHRpb25JZH1gO1xuICAgIGxldCBjb250cm9sID0gdGhpcy5tdWx0aUNvbnRyb2xzLmdldChrZXkpO1xuICAgIGlmICghY29udHJvbCkge1xuICAgICAgY29udHJvbCA9IG5ldyBGb3JtQ29udHJvbChmYWxzZSwgeyBub25OdWxsYWJsZTogdHJ1ZSB9KTtcbiAgICAgIHRoaXMubXVsdGlDb250cm9scy5zZXQoa2V5LCBjb250cm9sKTtcbiAgICB9XG4gICAgcmV0dXJuIGNvbnRyb2w7XG4gIH1cblxuICAvKiogT3BjaW9uZXMgdGFsIGNvbW8gbGFzIGVzY3JpYmnDsyBxdWllbiBjcmXDsyBsYSBlbmN1ZXN0YSDigJQgbm8gc2UgdHJhZHVjZW4uICovXG4gIG9wdGlvbnNPZihxOiB7IG9wdGlvbnM/OiB7IGlkOiBzdHJpbmc7IG5hbWU6IHN0cmluZzsgb3JkZXI/OiBudW1iZXIgfVtdIH0pOiBJbnB1dE9wdGlvbltdIHtcbiAgICByZXR1cm4gWy4uLihxLm9wdGlvbnMgPz8gW10pXVxuICAgICAgLm1hcCgobywgaW5kZXgpID0+ICh7IGlkOiBvLmlkLCBuYW1lOiBvLm5hbWUsIG9yZGVyOiBvLm9yZGVyID8/IGluZGV4IH0pKVxuICAgICAgLnNvcnQoKGEsIGIpID0+IGEub3JkZXIgLSBiLm9yZGVyKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBgdmFsLXJhZGlvLWlucHV0YCBwaWRlIHVuIGBJbnB1dE1ldGFkYXRhYCBjb21wbGV0byAobm8gYFBhcnRpYWxgKSwgYXPDrSBxdWVcbiAgICogc2UgYXJtYSBhY8OhIGVuIHZleiBkZSBlbiBlbCB0ZW1wbGF0ZS5cbiAgICovXG4gIHJhZGlvUHJvcHMocTogRmllbGRTY2hlbWFEZWYpOiBJbnB1dE1ldGFkYXRhIHtcbiAgICByZXR1cm4ge1xuICAgICAgdG9rZW46IHEubmFtZSxcbiAgICAgIG5hbWU6IHEubmFtZSxcbiAgICAgIGxhYmVsOiAnJyxcbiAgICAgIGhpbnQ6ICcnLFxuICAgICAgcGxhY2Vob2xkZXI6ICcnLFxuICAgICAgdHlwZTogSW5wdXRUeXBlLlJBRElPLFxuICAgICAgb3JkZXI6IHEub3JkZXIsXG4gICAgICB2YWxpZGF0b3JzOiBbXSxcbiAgICAgIGVycm9yczoge30sXG4gICAgICBzdGF0ZTogQ29tcG9uZW50U3RhdGVzLkVOQUJMRUQsXG4gICAgICBjb250cm9sOiB0aGlzLnF1ZXN0aW9uQ29udHJvbChxLm5hbWUpLFxuICAgICAgb3B0aW9uczogdGhpcy5vcHRpb25zT2YocSksXG4gICAgfTtcbiAgfVxuXG4gIHBsYWNlaG9sZGVyT2YocTogeyBwbGFjZWhvbGRlclRleHQ/OiBzdHJpbmc7IHBsYWNlaG9sZGVyPzogc3RyaW5nIH0pOiBzdHJpbmcge1xuICAgIHJldHVybiBxLnBsYWNlaG9sZGVyVGV4dCB8fCBxLnBsYWNlaG9sZGVyIHx8ICcnO1xuICB9XG5cbiAgaGludE9mKHE6IHsgaGludFRleHQ/OiBzdHJpbmc7IGhpbnQ/OiBzdHJpbmcgfSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHEuaGludFRleHQgfHwgcS5oaW50IHx8ICcnO1xuICB9XG5cbiAgLyoqXG4gICAqIFRpcG8gZGVsIGA8aW5wdXQ+YCBwYXJhIGxhcyBwcmVndW50YXMgcXVlIHNlIHJlc3BvbmRlbiBlc2NyaWJpZW5kby4gTmFkYSBkZVxuICAgKiBgcGFyc2VJbnB1dFR5cGVgIGRlIGBGb3JtU2NoZW1hQnVpbGRlclNlcnZpY2VgOiBlc2UgbWFwZWEgYWwgZW51bSBkZVxuICAgKiBgdmFsLWZvcm1gLCB5IGFjw6Egbm8gaGF5IGB2YWwtZm9ybWAgZGUgcG9yIG1lZGlvICh2ZXIgZWwgY29tZW50YXJpbyBkZVxuICAgKiBjbGFzZSkuIFVuIHRpcG8gZGVzY29ub2NpZG8gY2FlIGEgdGV4dG8sIHF1ZSBzaWVtcHJlIHNlIHB1ZWRlIHJlc3BvbmRlci5cbiAgICovXG4gIGlucHV0VHlwZU9mKHR5cGU6IHN0cmluZyk6ICd0ZXh0JyB8ICdlbWFpbCcgfCAnbnVtYmVyJyB8ICd0ZWwnIHtcbiAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgIGNhc2UgJ0VNQUlMJzpcbiAgICAgICAgcmV0dXJuICdlbWFpbCc7XG4gICAgICBjYXNlICdOVU1CRVInOlxuICAgICAgICByZXR1cm4gJ251bWJlcic7XG4gICAgICBjYXNlICdQSE9ORSc6XG4gICAgICAgIHJldHVybiAndGVsJztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiAndGV4dCc7XG4gICAgfVxuICB9XG5cbiAgLyoqIExhcyBvcGNpb25lcyBtYXJjYWRhcyBkZSB1bmEgcHJlZ3VudGEgTVVMVElfU0VMRUNULCBlbiBlbCBvcmRlbiBkZWwgc2NoZW1hLiAqL1xuICBwcml2YXRlIHNlbGVjdGVkT3B0aW9ucyhxOiB7IG5hbWU6IHN0cmluZzsgb3B0aW9ucz86IHsgaWQ6IHN0cmluZzsgbmFtZTogc3RyaW5nOyBvcmRlcj86IG51bWJlciB9W10gfSk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zT2YocSlcbiAgICAgIC5maWx0ZXIob3B0ID0+IHRoaXMubXVsdGlDb250cm9scy5nZXQoYCR7cS5uYW1lfTo6JHtvcHQuaWR9YCk/LnZhbHVlKVxuICAgICAgLm1hcChvcHQgPT4gb3B0LmlkKTtcbiAgfVxuXG4gIHF1ZXN0aW9uTGFiZWwocTogeyBsYWJlbD86IHN0cmluZzsgbGFiZWxLZXk/OiBzdHJpbmc7IG5hbWU6IHN0cmluZyB9KTogc3RyaW5nIHtcbiAgICAvLyBUZXh0byBkZWwgQ0xJRU5URSAocmVnbGEgIzQpOiBxdWllbiBjcmXDsyBsYSBlbmN1ZXN0YSBlc2NyaWJpw7MgZWxcbiAgICAvLyBlbnVuY2lhZG8gdGFsIGN1YWwsIG5vIHNlIHRyYWR1Y2UuXG4gICAgcmV0dXJuIHEubGFiZWwgfHwgcS5uYW1lO1xuICB9XG5cbiAgLyoqIFB1ZWRlIHJlc3BvbmRlciBzaW4gc2VzacOzbiBzaSBlbCB0aXBvIGxvIHBlcm1pdGU7IHNpIG5vLCBoYWNlIGZhbHRhIGxvZ2luLiAqL1xuICByZWFkb25seSBjYW5SZXNwb25kID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGlmICh0aGlzLmF1dGguaXNBdXRoZW50aWNhdGVkKCkpIHJldHVybiB0cnVlO1xuICAgIHJldHVybiAhIXRoaXMudHlwZUNvbmZpZygpPy5hbGxvd0Fub255bW91cztcbiAgfSk7XG5cbiAgLyoqXG4gICAqIEVsIHRpcG8gcHVlZGUgc2VndWlyIGV4aWdpZW5kbyBpZGVudGlkYWQgYWwgYW7Ds25pbW8gKGBza2lwU3VibWl0dGVySWRlbnRpdHlgXG4gICAqIGF1c2VudGUgbyBmYWxzZSk6IGVzIGVsIGNhc28gZGUgbGFzIHNvbGljaXR1ZGVzIGRlIENoZXNlZC9Pa2hlbGlhLCBkb25kZVxuICAgKiBzYWJlciBxdWnDqW4gcGlkacOzIEVTIGVsIHB1bnRvLiBVbmEgZW5jdWVzdGEgcG9uZSBlbCBmbGFnIGVuIHRydWUgeSBlbnRvbmNlc1xuICAgKiBubyBzZSBwaWRlIG5hZGEg4oCUIHNpIGxhIG9yZ2FuaXphY2nDs24gbmVjZXNpdGEgZWwgY29ycmVvIGRlIHF1aWVuIHJlc3BvbmRlLFxuICAgKiBsbyBhZ3JlZ2EgY29tbyB1bmEgUFJFR1VOVEEgZGUgdGlwbyBDb3JyZW8uIEVzbyBlcyBjb25maWd1cmFjacOzbiBkZSBsYVxuICAgKiBlbmN1ZXN0YTsgZWwgZm9ybXVsYXJpbyBubyBjb2JyYSBwZWFqZSBwb3Igc3UgY3VlbnRhLlxuICAgKi9cbiAgbmVlZHNJZGVudGl0eSgpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5hdXRoLmlzQXV0aGVudGljYXRlZCgpKSByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuICF0aGlzLnR5cGVDb25maWcoKT8uc2tpcFN1Ym1pdHRlcklkZW50aXR5O1xuICB9XG5cbiAgcmVhZG9ubHkgc3VibWl0U3RhdGUgPSBjb21wdXRlZCgoKSA9PiAodGhpcy5zZW5kaW5nKCkgPyAnV09SS0lORycgOiAnRU5BQkxFRCcpKTtcblxuICBhc3luYyBzdWJtaXQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKHRoaXMuc2VuZGluZygpIHx8IHRoaXMuZm9ybS5pbnZhbGlkKSByZXR1cm47XG4gICAgaWYgKHRoaXMubmVlZHNJZGVudGl0eSgpICYmICh0aGlzLm5hbWVDb250cm9sLmludmFsaWQgfHwgdGhpcy5lbWFpbENvbnRyb2wuaW52YWxpZCkpIHtcbiAgICAgIHRoaXMubmFtZUNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xuICAgICAgdGhpcy5lbWFpbENvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGNmZyA9IHRoaXMudHlwZUNvbmZpZygpO1xuICAgIGlmICghY2ZnKSByZXR1cm47XG5cbiAgICAvLyBNVUxUSV9TRUxFQ1Qgbm8gdml2ZSBlbiBlbCBGb3JtR3JvdXAsIGFzw60gcXVlIGBmb3JtLmludmFsaWRgIG5vIGxvIGN1YnJlOlxuICAgIC8vIHVuYSBvYmxpZ2F0b3JpYSBzaW4gbmFkYSBtYXJjYWRvIGhheSBxdWUgZnJlbmFybGEgYWPDoSBvIHNlIGVudsOtYSB2YWPDrWEuXG4gICAgY29uc3QgbXVsdGlSZXF1aXJlZCA9IHRoaXMucXVlc3Rpb25zKCkuZmlsdGVyKHEgPT4gcS50eXBlID09PSAnTVVMVElfU0VMRUNUJyAmJiBxLnJlcXVpcmVkKTtcbiAgICBpZiAobXVsdGlSZXF1aXJlZC5zb21lKHEgPT4gIXRoaXMuc2VsZWN0ZWRPcHRpb25zKHEpLmxlbmd0aCkpIHtcbiAgICAgIHRoaXMubXVsdGlTZWxlY3RFcnJvci5zZXQodHJ1ZSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMubXVsdGlTZWxlY3RFcnJvci5zZXQoZmFsc2UpO1xuXG4gICAgdGhpcy5zZW5kaW5nLnNldCh0cnVlKTtcbiAgICBjb25zdCBmaWVsZHM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0geyAuLi50aGlzLmZvcm0uZ2V0UmF3VmFsdWUoKSB9O1xuICAgIGZvciAoY29uc3QgcSBvZiB0aGlzLnF1ZXN0aW9ucygpKSB7XG4gICAgICBpZiAocS50eXBlID09PSAnTVVMVElfU0VMRUNUJykgZmllbGRzW3EubmFtZV0gPSB0aGlzLnNlbGVjdGVkT3B0aW9ucyhxKTtcbiAgICB9XG4gICAgY29uc3QgcGF5bG9hZCA9IHtcbiAgICAgIHR5cGU6IGNmZy50eXBlSWQsXG4gICAgICB0aXRsZTogY2ZnLmxhYmVsLFxuICAgICAgZmllbGRzLFxuICAgICAgLi4uKHRoaXMubmVlZHNJZGVudGl0eSgpXG4gICAgICAgID8geyBzdWJtaXR0ZXI6IHsgbmFtZTogdGhpcy5uYW1lQ29udHJvbC52YWx1ZS50cmltKCksIGVtYWlsOiB0aGlzLmVtYWlsQ29udHJvbC52YWx1ZS50cmltKCkgfSB9XG4gICAgICAgIDoge30pLFxuICAgIH07XG5cbiAgICBjb25zdCBjYWxsJCA9IHRoaXMuYXV0aC5pc0F1dGhlbnRpY2F0ZWQoKVxuICAgICAgPyB0aGlzLnJlcXVlc3RzLmNyZWF0ZVJlcXVlc3QocGF5bG9hZClcbiAgICAgIDogdGhpcy5yZXF1ZXN0cy5jcmVhdGVBbm9ueW1vdXNSZXF1ZXN0KHBheWxvYWQpO1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKGNhbGwkKTtcbiAgICAgIHRoaXMuc2VuZGluZy5zZXQoZmFsc2UpO1xuICAgICAgdGhpcy5zZW50LnNldCh0cnVlKTtcbiAgICAgIHRoaXMuc3VibWl0dGVkLmVtaXQoeyByZXF1ZXN0SWQ6IHJlcy5yZXF1ZXN0SWQgfSk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICB0aGlzLnNlbmRpbmcuc2V0KGZhbHNlKTtcbiAgICAgIHRoaXMuZXJyb3JzLmhhbmRsZShlcnIsIHtcbiAgICAgICAgY29udGV4dDogJ3N1cnZleVJlc3BvbnNlLnN1Ym1pdCcsXG4gICAgICAgIGZhbGxiYWNrS2V5OiAnc2VuZEVycm9yJyxcbiAgICAgICAgaTE4bk5hbWVzcGFjZTogTkFNRVNQQUNFLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcmVhZG9ubHkgc2VudFN0YXRlID0gY29tcHV0ZWQ8RW1wdHlTdGF0ZU1ldGFkYXRhPigoKSA9PiB7XG4gICAgdGhpcy5pMThuLmxhbmcoKTtcbiAgICByZXR1cm4geyB2YXJpYW50OiAnZW1wdHknLCB0aXRsZTogdGhpcy50KCdzZW50VGl0bGUnKSwgZGVzY3JpcHRpb246IHRoaXMudCgnc2VudEJvZHknKSB9O1xuICB9KTtcblxuICByZWFkb25seSBsb2FkRXJyb3JTdGF0ZSA9IGNvbXB1dGVkPEVtcHR5U3RhdGVNZXRhZGF0YT4oKCkgPT4ge1xuICAgIHRoaXMuaTE4bi5sYW5nKCk7XG4gICAgcmV0dXJuIHsgdmFyaWFudDogJ2Vycm9yJywgdGl0bGU6IHRoaXMudCgnbG9hZEVycm9yVGl0bGUnKSwgZGVzY3JpcHRpb246IHRoaXMudCgnbG9hZEVycm9yQm9keScpIH07XG4gIH0pO1xuXG4gIHJlYWRvbmx5IGxvZ2luUmVxdWlyZWRTdGF0ZSA9IGNvbXB1dGVkPEVtcHR5U3RhdGVNZXRhZGF0YT4oKCkgPT4ge1xuICAgIHRoaXMuaTE4bi5sYW5nKCk7XG4gICAgcmV0dXJuIHsgdmFyaWFudDogJ2Vycm9yJywgdGl0bGU6IHRoaXMudCgnbG9naW5SZXF1aXJlZFRpdGxlJyksIGRlc2NyaXB0aW9uOiB0aGlzLnQoJ2xvZ2luUmVxdWlyZWRCb2R5JykgfTtcbiAgfSk7XG5cbiAgdChrZXk6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaTE4bi50KGtleSwgTkFNRVNQQUNFKTtcbiAgfVxufVxuIl19
|
|
629
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VydmV5LXJlc3BvbnNlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvc3VydmV5LXJlc3BvbnNlL3N1cnZleS1yZXNwb25zZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekcsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsbUJBQW1CLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUV0QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUM1RSxPQUFPLEVBQWtCLHVCQUF1QixFQUFxQixNQUFNLGtDQUFrQyxDQUFDO0FBQzlHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDbkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saURBQWlELENBQUM7QUFDckYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0seURBQXlELENBQUM7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RUFDZCxrQkFBa0Isd0ZBQ2xCLHNCQUFzQiw0RkFDdEIsdUJBQXVCLDBGQUN2QixtQkFBbUIsK0VBQ25CLG1CQUFtQix5RkFDbkIsb0JBQW9CLDBGQUNwQixtQkFBbUIseUdBQ25CLGtCQUFrQiw4RUFDbEIsb0JBQW9CLGdGQUNwQixlQUFlLDBHQUNmLG1CQUFtQjs7NEZBNExWLHVCQUF1QjtrQkE5TW5DLFNBQVM7K0JBQ0UscUJBQXFCLGNBQ25CLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLG1CQUFtQjt3QkFDbkIsZ0JBQWdCO3dCQUNoQixjQUFjO3dCQUNkLGtCQUFrQjt3QkFDbEIsc0JBQXNCO3dCQUN0Qix1QkFBdUI7d0JBQ3ZCLG1CQUFtQjt3QkFDbkIsbUJBQW1CO3dCQUNuQixvQkFBb0I7d0JBQ3BCLG1CQUFtQjt3QkFDbkIsa0JBQWtCO3dCQUNsQixvQkFBb0I7d0JBQ3BCLGVBQWU7d0JBQ2YsbUJBQW1CO3FCQUNwQixZQUNTOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXFKVDt3REFzQ1EsS0FBSztzQkFBYixLQUFLO2dCQUNhLFNBQVM7c0JBQTNCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgY29tcHV0ZWQsIGluamVjdCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgZmlyc3RWYWx1ZUZyb20gfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pMThuJztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYXV0aC9hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgUmVxdWVzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9yZXF1ZXN0cy9yZXF1ZXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgRmllbGRTY2hlbWFEZWYsIEZJRUxEX1RZUEVfRU1PSklfUkFUSU5HLCBSZXF1ZXN0VHlwZUNvbmZpZyB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3JlcXVlc3RzL3R5cGVzJztcbmltcG9ydCB7IFZhbHRlY2hFcnJvclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9lcnJvcnMvdmFsdGVjaC1lcnJvci5zZXJ2aWNlJztcbmltcG9ydCB7IGludGVycHJldEVycm9yIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZXJyb3JzL2ludGVycHJldC1lcnJvcic7XG5pbXBvcnQgeyBEaXNwbGF5Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvZGlzcGxheS9kaXNwbGF5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaXRsZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL3RpdGxlL3RpdGxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUZXh0SW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvdGV4dC1pbnB1dC90ZXh0LWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUZXh0YXJlYUlucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL3RleHRhcmVhLWlucHV0L3RleHRhcmVhLWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTZWFyY2hTZWxlY3RvckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9zZWxlY3QtaW5wdXQvc2VsZWN0LWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSYWRpb0lucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL3JhZGlvLWlucHV0L3JhZGlvLWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDaGVja0lucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL2NoZWNrLWlucHV0L2NoZWNrLWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUb2dnbGVJbnB1dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy90b2dnbGUtaW5wdXQvdG9nZ2xlLWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYXRlUGlja2VyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL2RhdGUtcGlja2VyL2RhdGUtcGlja2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb3JtRmllbGRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvZm9ybS1maWVsZC9mb3JtLWZpZWxkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFbW9qaVJhdGluZ0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL2Vtb2ppLXJhdGluZy9lbW9qaS1yYXRpbmcuY29tcG9uZW50JztcbmltcG9ydCB7IENvbXBvbmVudFN0YXRlcywgSW5wdXRNZXRhZGF0YSwgSW5wdXRPcHRpb24sIElucHV0VHlwZSB9IGZyb20gJy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IEVtcHR5U3RhdGVDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvZW1wdHktc3RhdGUvZW1wdHktc3RhdGUuY29tcG9uZW50JztcbmltcG9ydCB7IEVtcHR5U3RhdGVNZXRhZGF0YSB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9lbXB0eS1zdGF0ZS90eXBlcyc7XG5pbXBvcnQgeyBTdXJ2ZXlSZXNwb25zZU1ldGFkYXRhLCBTdXJ2ZXlSZXNwb25zZVN1Ym1pdEV2ZW50IH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBTVVJWRVlfUkVTUE9OU0VfSTE4TiB9IGZyb20gJy4vc3VydmV5LXJlc3BvbnNlLmkxOG4nO1xuXG5jb25zdCBOQU1FU1BBQ0UgPSAnU3VydmV5UmVzcG9uc2UnO1xuXG4vKiogQ29kZSBkZWwgYmFja2VuZCBjdWFuZG8gbGEgaW52aXRhY2nDs24gZGUgZXNhIHBlcnNvbmEgeWEgc2UgcmVzcG9uZGnDsy4gKi9cbmNvbnN0IElOVklURV9VU0VEX0NPREUgPSAnU1VSVkVZX0lOVklURV9BTFJFQURZX1VTRUQnO1xuXG4vKiogVGlwb3MgY3V5YSByZXNwdWVzdGEgZXMgdW4gYm9vbGVhbm8sIG5vIHVuIHRleHRvLiAqL1xuY29uc3QgQk9PTEVBTl9UWVBFUyA9IFsnQ0hFQ0snLCAnVE9HR0xFJ107XG5cbi8qKlxuICogdmFsLXN1cnZleS1yZXNwb25zZVxuICpcbiAqIFRvbWEgdW5hIGVuY3Vlc3RhIChgUmVxdWVzdFR5cGVDb25maWdgIGNvbiBgVHlwZTogXCJzdXJ2ZXk6PHNsdWc+XCJgLCBBRFItMDkyKVxuICogeSBsYSBwcmVzZW50YSBjb21vIGZvcm11bGFyaW8gZGUgcmVzcHVlc3RhIOKAlCBlbCBvcmdhbmlzbSBxdWUgdW4gdmlzaXRhbnRlXG4gKiB2ZSBhbCBhYnJpciBlbCBsaW5rIGRlIHVuYSBlbmN1ZXN0YS4gU2VsZi1jb250YWluZWQsIGlndWFsIHF1ZVxuICogYHZhbC1jb250ZW50LXJlYWN0aW9uYC9gdmFsLWFjY2Vzcy1yZXF1ZXN0LXZpZXdgOiBsZWUgZWwgdGlwbywgYXJtYSBlbFxuICogZm9ybXVsYXJpbywgZW52w61hIGxhIHJlc3B1ZXN0YSwgc2luIHF1ZSBlbCBjb25zdW1lciB0ZW5nYSBxdWUgb3JxdWVzdGFyXG4gKiBuYWRhIGRlIGVzby5cbiAqXG4gKiBTb2xvIGxlZSB0aXBvcyBgdmlzaWJpbGl0eTogJ1BVQkxJQydgICh2w61hIGBnZXRQdWJsaWNSZXF1ZXN0VHlwZWAsIHNpblxuICogYXV0aCkg4oCUIGVzIGVsIGNhc28gZGUgdXNvIHF1ZSBkZXNjcmliZSBlbCBBRFIgKGxpbmsgZW52aWFkbyBhIGNvbXByYWRvcmVzLFxuICogcXVlIHB1ZWRlbiBubyB0ZW5lciBjdWVudGEpLiBFbmN1ZXN0YXMgQVVUSEVOVElDQVRFRC9PUkcvSU5URVJOQUwgZXN0w6FuXG4gKiBmdWVyYSBkZSBhbGNhbmNlIGRlIGVzdGUgY29tcG9uZW50ZSBwb3IgYWhvcmEuXG4gKlxuICogQ2FkYSBwcmVndW50YSBzZSByZW5kZXJpemEgc2Vnw7puIHN1IGBGaWVsZFNjaGVtYURlZi50eXBlYDogYEVNT0pJX1JBVElOR2BcbiAqIHVzYSBgdmFsLWVtb2ppLXJhdGluZ2AgKE5VTkNBIHBhc2EgcG9yIGB2YWwtZm9ybWAsIG5vIGxvIHNhYmUgcnV0ZWFyKTtcbiAqIGN1YWxxdWllciBvdHJvIHRpcG8gKHYxOiBzb2xvIGBURVhUQVJFQWApIHVzYSBgdmFsLXRleHRhcmVhLWlucHV0YC4gTm8gaGF5XG4gKiBgdmFsLWZvcm1gIGRlIHBvciBtZWRpbyDigJQgdW4gRm9ybUdyb3VwIGFybWFkbyBhIG1hbm8sIHBvcnF1ZSBtZXpjbGFyIHRpcG9zXG4gKiBjdXN0b20gY29uIGVsIGZvcm0gZ2Vuw6lyaWNvIGVzIG3DoXMgY29tcGxpY2FkbyBxdWUgY29uc3RydWlyIGVsIHByb3Bpby5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLXN1cnZleS1yZXNwb25zZScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBEaXNwbGF5Q29tcG9uZW50LFxuICAgIFRpdGxlQ29tcG9uZW50LFxuICAgIFRleHRJbnB1dENvbXBvbmVudCxcbiAgICBUZXh0YXJlYUlucHV0Q29tcG9uZW50LFxuICAgIFNlYXJjaFNlbGVjdG9yQ29tcG9uZW50LFxuICAgIFJhZGlvSW5wdXRDb21wb25lbnQsXG4gICAgQ2hlY2tJbnB1dENvbXBvbmVudCxcbiAgICBUb2dnbGVJbnB1dENvbXBvbmVudCxcbiAgICBEYXRlUGlja2VyQ29tcG9uZW50LFxuICAgIEZvcm1GaWVsZENvbXBvbmVudCxcbiAgICBFbW9qaVJhdGluZ0NvbXBvbmVudCxcbiAgICBCdXR0b25Db21wb25lbnQsXG4gICAgRW1wdHlTdGF0ZUNvbXBvbmVudCxcbiAgXSxcbiAgdGVtcGxhdGU6IGBcbiAgICBAaWYgKGxvYWRpbmcoKSkge1xuICAgICAgPGRpdiBjbGFzcz1cInN1cnZleS1yZXNwb25zZV9fbG9hZGluZ1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvZGl2PlxuICAgIH0gQGVsc2UgaWYgKGxvYWRFcnJvcigpKSB7XG4gICAgICA8dmFsLWVtcHR5LXN0YXRlIFtwcm9wc109XCJsb2FkRXJyb3JTdGF0ZSgpXCIgLz5cbiAgICB9IEBlbHNlIGlmIChhbHJlYWR5QW5zd2VyZWQoKSkge1xuICAgICAgPHZhbC1lbXB0eS1zdGF0ZSBbcHJvcHNdPVwiYWxyZWFkeUFuc3dlcmVkU3RhdGUoKVwiIC8+XG4gICAgfSBAZWxzZSBpZiAoc2VudCgpKSB7XG4gICAgICA8dmFsLWVtcHR5LXN0YXRlIFtwcm9wc109XCJzZW50U3RhdGUoKVwiIC8+XG4gICAgfSBAZWxzZSB7XG4gICAgICBAaWYgKHR5cGVDb25maWcoKTsgYXMgY2ZnKSB7XG4gICAgICAgIEBpZiAoIWNhblJlc3BvbmQoKSkge1xuICAgICAgICAgIDx2YWwtZW1wdHktc3RhdGUgW3Byb3BzXT1cImxvZ2luUmVxdWlyZWRTdGF0ZSgpXCIgLz5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInN1cnZleS1yZXNwb25zZVwiPlxuICAgICAgICAgICAgPHZhbC1kaXNwbGF5IFtwcm9wc109XCJ7IGNvbnRlbnQ6IGNmZy5sYWJlbCwgc2l6ZTogJ3NtYWxsJywgY29sb3I6ICdkYXJrJyB9XCIgLz5cbiAgICAgICAgICAgIEBpZiAoY2ZnLnN1YnRpdGxlKSB7XG4gICAgICAgICAgICAgIDx2YWwtdGl0bGUgW3Byb3BzXT1cInsgY29udGVudDogY2ZnLnN1YnRpdGxlLCBzaXplOiAnbGFyZ2UnLCBjb2xvcjogJycsIGJvbGQ6IGZhbHNlIH1cIiAvPlxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICA8IS0tIFNvbG8gc2kgZWwgVElQTyBsbyBleGlnZSAoc2tpcFN1Ym1pdHRlcklkZW50aXR5IGF1c2VudGUvZmFsc2UpLlxuICAgICAgICAgICAgICAgICBVbmEgZW5jdWVzdGEgbG8gcG9uZSBlbiB0cnVlIHkgYWPDoSBubyBzZSBwaWRlIG5hZGE6IHNpIGVsXG4gICAgICAgICAgICAgICAgIGZvcm11bGFyaW8gbG9zIGV4aWdpZXJhIGlndWFsLCBxdWVkYXLDrWFuIHJlcXVlcmlkb3MgZVxuICAgICAgICAgICAgICAgICBpbnZpc2libGVzIHkgZWwgZW52w61vIHNlIGJsb3F1ZWFyw61hIHNpbiBtb3Rpdm8gYSBsYSB2aXN0YS4gLS0+XG4gICAgICAgICAgICBAaWYgKG5lZWRzSWRlbnRpdHkoKSkge1xuICAgICAgICAgICAgICA8dmFsLXRleHQtaW5wdXRcbiAgICAgICAgICAgICAgICBbcHJvcHNdPVwieyBjb250cm9sOiBuYW1lQ29udHJvbCwgbGFiZWw6IHQoJ25hbWVMYWJlbCcpLCBwbGFjZWhvbGRlcjogdCgnbmFtZVBsYWNlaG9sZGVyJykgfVwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDx2YWwtdGV4dC1pbnB1dFxuICAgICAgICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICAgICAgICBjb250cm9sOiBlbWFpbENvbnRyb2wsXG4gICAgICAgICAgICAgICAgICBpbnB1dFR5cGU6ICdlbWFpbCcsXG4gICAgICAgICAgICAgICAgICBsYWJlbDogdCgnZW1haWxMYWJlbCcpLFxuICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6IHQoJ2VtYWlsUGxhY2Vob2xkZXInKSxcbiAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGZvciAocSBvZiBxdWVzdGlvbnMoKTsgdHJhY2sgcS5uYW1lKSB7XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdXJ2ZXktcmVzcG9uc2VfX3F1ZXN0aW9uXCI+XG4gICAgICAgICAgICAgICAgQHN3aXRjaCAocS50eXBlKSB7XG4gICAgICAgICAgICAgICAgICBAY2FzZSAoZW1vamlUeXBlKSB7XG4gICAgICAgICAgICAgICAgICAgIDx2YWwtZW1vamktcmF0aW5nIFtwcm9wc109XCJ7IGNvbnRyb2w6IHF1ZXN0aW9uQ29udHJvbChxLm5hbWUpLCBsYWJlbDogcXVlc3Rpb25MYWJlbChxKSB9XCIgLz5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIEBjYXNlICgnVEVYVEFSRUEnKSB7XG4gICAgICAgICAgICAgICAgICAgIDx2YWwtdGV4dGFyZWEtaW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udHJvbDogcXVlc3Rpb25Db250cm9sKHEubmFtZSksXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogcXVlc3Rpb25MYWJlbChxKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGhpbnQ6IGhpbnRPZihxKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyOiBwbGFjZWhvbGRlck9mKHEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgYXV0b0dyb3c6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBAY2FzZSAoJ1NFTEVDVCcpIHtcbiAgICAgICAgICAgICAgICAgICAgPHZhbC1mb3JtLWZpZWxkIFtsYWJlbF09XCJxdWVzdGlvbkxhYmVsKHEpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPHZhbC1zZWxlY3QtaW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRyb2w6IHF1ZXN0aW9uQ29udHJvbChxLm5hbWUpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBzZWxlY3RUeXBlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogcGxhY2Vob2xkZXJPZihxKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uczogb3B0aW9uc09mKHEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPC92YWwtZm9ybS1maWVsZD5cbiAgICAgICAgICAgICAgICAgICAgQGlmIChoaW50T2YocSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN1cnZleS1yZXNwb25zZV9faGludFwiPnt7IGhpbnRPZihxKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgQGNhc2UgKCdSQURJTycpIHtcbiAgICAgICAgICAgICAgICAgICAgPHZhbC1mb3JtLWZpZWxkIFtsYWJlbF09XCJxdWVzdGlvbkxhYmVsKHEpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPHZhbC1yYWRpby1pbnB1dCBbcHJvcHNdPVwicmFkaW9Qcm9wcyhxKVwiIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvdmFsLWZvcm0tZmllbGQ+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoaGludE9mKHEpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdXJ2ZXktcmVzcG9uc2VfX2hpbnRcIj57eyBoaW50T2YocSkgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIEBjYXNlICgnTVVMVElfU0VMRUNUJykge1xuICAgICAgICAgICAgICAgICAgICA8dmFsLWZvcm0tZmllbGQgW2xhYmVsXT1cInF1ZXN0aW9uTGFiZWwocSlcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3VydmV5LXJlc3BvbnNlX19vcHRpb25zXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChvcHQgb2Ygb3B0aW9uc09mKHEpOyB0cmFjayBvcHQuaWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHZhbC1jaGVjay1pbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwcm9wc109XCJ7IGNvbnRyb2w6IG9wdGlvbkNvbnRyb2wocS5uYW1lLCBvcHQuaWQpLCBsYWJlbDogb3B0Lm5hbWUsIGxhYmVsUGxhY2VtZW50OiAnZW5kJyB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC92YWwtZm9ybS1maWVsZD5cbiAgICAgICAgICAgICAgICAgICAgQGlmIChoaW50T2YocSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN1cnZleS1yZXNwb25zZV9faGludFwiPnt7IGhpbnRPZihxKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgQGNhc2UgKCdDSEVDSycpIHtcbiAgICAgICAgICAgICAgICAgICAgPHZhbC1jaGVjay1pbnB1dFxuICAgICAgICAgICAgICAgICAgICAgIFtwcm9wc109XCJ7IGNvbnRyb2w6IGJvb2xlYW5Db250cm9sKHEubmFtZSksIGxhYmVsOiBxdWVzdGlvbkxhYmVsKHEpLCBsYWJlbFBsYWNlbWVudDogJ2VuZCcgfVwiXG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBAY2FzZSAoJ1RPR0dMRScpIHtcbiAgICAgICAgICAgICAgICAgICAgPHZhbC10b2dnbGUtaW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICBbcHJvcHNdPVwieyBjb250cm9sOiBib29sZWFuQ29udHJvbChxLm5hbWUpLCBsYWJlbDogcXVlc3Rpb25MYWJlbChxKSwganVzdGlmeTogJ3NwYWNlLWJldHdlZW4nIH1cIlxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgQGNhc2UgKCdEQVRFJykge1xuICAgICAgICAgICAgICAgICAgICA8dmFsLWRhdGUtcGlja2VyXG4gICAgICAgICAgICAgICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRyb2w6IHF1ZXN0aW9uQ29udHJvbChxLm5hbWUpLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IHF1ZXN0aW9uTGFiZWwocSksXG4gICAgICAgICAgICAgICAgICAgICAgICBoaW50OiBoaW50T2YocSksXG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogcGxhY2Vob2xkZXJPZihxKSxcbiAgICAgICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIEBkZWZhdWx0IHtcbiAgICAgICAgICAgICAgICAgICAgPHZhbC10ZXh0LWlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRyb2w6IHF1ZXN0aW9uQ29udHJvbChxLm5hbWUpLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IHF1ZXN0aW9uTGFiZWwocSksXG4gICAgICAgICAgICAgICAgICAgICAgICBoaW50OiBoaW50T2YocSksXG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogcGxhY2Vob2xkZXJPZihxKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0VHlwZTogaW5wdXRUeXBlT2YocS50eXBlKSxcbiAgICAgICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaWYgKG11bHRpU2VsZWN0RXJyb3IoKSkge1xuICAgICAgICAgICAgICA8cCBjbGFzcz1cInN1cnZleS1yZXNwb25zZV9fZXJyb3JcIj57eyB0KCdyZXF1aXJlZCcpIH19PC9wPlxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICA8dmFsLWJ1dHRvblxuICAgICAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgICAgIHRva2VuOiAnc3VydmV5LXJlc3BvbnNlLXN1Ym1pdCcsXG4gICAgICAgICAgICAgICAgdGV4dDogdCgnc3VibWl0JyksXG4gICAgICAgICAgICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgICAgICAgICAgICBmaWxsOiAnc29saWQnLFxuICAgICAgICAgICAgICAgIHNoYXBlOiAncm91bmQnLFxuICAgICAgICAgICAgICAgIHNpemU6ICdkZWZhdWx0JyxcbiAgICAgICAgICAgICAgICBleHBhbmQ6ICdibG9jaycsXG4gICAgICAgICAgICAgICAgdHlwZTogJ2J1dHRvbicsXG4gICAgICAgICAgICAgICAgc3RhdGU6IHN1Ym1pdFN0YXRlKCksXG4gICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAob25DbGljayk9XCJzdWJtaXQoKVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICBgLFxuICBzdHlsZXM6IFtcbiAgICBgXG4gICAgICA6aG9zdCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgICAgLnN1cnZleS1yZXNwb25zZSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMTZweDtcbiAgICAgIH1cbiAgICAgIC5zdXJ2ZXktcmVzcG9uc2VfX3F1ZXN0aW9uIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB9XG4gICAgICAuc3VydmV5LXJlc3BvbnNlX19vcHRpb25zIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiA0cHg7XG4gICAgICB9XG4gICAgICAuc3VydmV5LXJlc3BvbnNlX19lcnJvciB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1kYW5nZXIpO1xuICAgICAgICBmb250LXNpemU6IDAuODc1cmVtO1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgfVxuICAgICAgLnN1cnZleS1yZXNwb25zZV9faGludCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW4tdG9wOiA0cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44MTI1cmVtO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLW1lZGl1bSwgIzkyOTQ5Yyk7XG4gICAgICB9XG4gICAgICAuc3VydmV5LXJlc3BvbnNlX19sb2FkaW5nIHtcbiAgICAgICAgbWluLWhlaWdodDogMTIwcHg7XG4gICAgICB9XG4gICAgYCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU3VydmV5UmVzcG9uc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBwcm9wcyE6IFN1cnZleVJlc3BvbnNlTWV0YWRhdGE7XG4gIEBPdXRwdXQoKSByZWFkb25seSBzdWJtaXR0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFN1cnZleVJlc3BvbnNlU3VibWl0RXZlbnQ+KCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBpMThuID0gaW5qZWN0KEkxOG5TZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBhdXRoID0gaW5qZWN0KEF1dGhTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSByZXF1ZXN0cyA9IGluamVjdChSZXF1ZXN0U2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgZXJyb3JzID0gaW5qZWN0KFZhbHRlY2hFcnJvclNlcnZpY2UpO1xuXG4gIHJlYWRvbmx5IGVtb2ppVHlwZSA9IEZJRUxEX1RZUEVfRU1PSklfUkFUSU5HO1xuICByZWFkb25seSBzZWxlY3RUeXBlID0gSW5wdXRUeXBlLlNFTEVDVDtcblxuICByZWFkb25seSBsb2FkaW5nID0gc2lnbmFsKHRydWUpO1xuICByZWFkb25seSBsb2FkRXJyb3IgPSBzaWduYWwoZmFsc2UpO1xuICByZWFkb25seSBzZW50ID0gc2lnbmFsKGZhbHNlKTtcbiAgcmVhZG9ubHkgc2VuZGluZyA9IHNpZ25hbChmYWxzZSk7XG4gIHJlYWRvbmx5IHR5cGVDb25maWcgPSBzaWduYWw8UmVxdWVzdFR5cGVDb25maWcgfCBudWxsPihudWxsKTtcbiAgcmVhZG9ubHkgbXVsdGlTZWxlY3RFcnJvciA9IHNpZ25hbChmYWxzZSk7XG4gIHJlYWRvbmx5IGFscmVhZHlBbnN3ZXJlZCA9IHNpZ25hbChmYWxzZSk7XG5cbiAgcmVhZG9ubHkgbmFtZUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woJycsIHsgbm9uTnVsbGFibGU6IHRydWUgfSk7XG4gIHJlYWRvbmx5IGVtYWlsQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgnJywgeyBub25OdWxsYWJsZTogdHJ1ZSB9KTtcbiAgcHJpdmF0ZSBmb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XG4gIC8qKlxuICAgKiBVbmEgY2FzaWxsYSBwb3Igb3BjacOzbiBkZSBjYWRhIHByZWd1bnRhIE1VTFRJX1NFTEVDVCwgaW5kZXhhZGFcbiAgICogYFwiPHByZWd1bnRhPjo6PG9wY2lvbj5cImAuIFZpdmVuIGZ1ZXJhIGRlbCBgZm9ybWAgcG9ycXVlIGVsIHZhbG9yIHF1ZSB2aWFqYVxuICAgKiBhbCBiYWNrZW5kIGVzIFVOQSBsaXN0YSBwb3IgcHJlZ3VudGEsIG5vIE4gYm9vbGVhbm9zOiBzZSBhcm1hIGFsIGVudmlhci5cbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgbXVsdGlDb250cm9scyA9IG5ldyBNYXA8c3RyaW5nLCBGb3JtQ29udHJvbDxib29sZWFuPj4oKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBpZiAoIXRoaXMuaTE4bi5oYXNOYW1lc3BhY2UoTkFNRVNQQUNFKSkge1xuICAgICAgdGhpcy5pMThuLnJlZ2lzdGVyRGVmYXVsdHMoTkFNRVNQQUNFLCBTVVJWRVlfUkVTUE9OU0VfSTE4Tik7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgbmdPbkluaXQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGNmZyA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMucmVxdWVzdHMuZ2V0UHVibGljUmVxdWVzdFR5cGUodGhpcy5wcm9wcy50eXBlSWQpKTtcbiAgICAgIHRoaXMudHlwZUNvbmZpZy5zZXQoY2ZnKTtcbiAgICAgIHRoaXMuYnVpbGRGb3JtKGNmZyk7XG4gICAgfSBjYXRjaCB7XG4gICAgICB0aGlzLmxvYWRFcnJvci5zZXQodHJ1ZSk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMubG9hZGluZy5zZXQoZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRGb3JtKGNmZzogUmVxdWVzdFR5cGVDb25maWcpOiB2b2lkIHtcbiAgICBjb25zdCBncm91cDogUmVjb3JkPHN0cmluZywgRm9ybUNvbnRyb2w+ID0ge307XG4gICAgZm9yIChjb25zdCBxIG9mIFsuLi5jZmcuZmllbGRTY2hlbWFdLnNvcnQoKGEsIGIpID0+IGEub3JkZXIgLSBiLm9yZGVyKSkge1xuICAgICAgaWYgKHEudHlwZSA9PT0gJ01VTFRJX1NFTEVDVCcpIHtcbiAgICAgICAgZm9yIChjb25zdCBvcHQgb2YgcS5vcHRpb25zID8/IFtdKSB7XG4gICAgICAgICAgdGhpcy5tdWx0aUNvbnRyb2xzLnNldChgJHtxLm5hbWV9Ojoke29wdC5pZH1gLCBuZXcgRm9ybUNvbnRyb2woZmFsc2UsIHsgbm9uTnVsbGFibGU6IHRydWUgfSkpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgaWYgKEJPT0xFQU5fVFlQRVMuaW5jbHVkZXMocS50eXBlKSkge1xuICAgICAgICAvLyBTaW4gYHJlcXVpcmVkYDogdW4gYm9vbGVhbm8gU0lFTVBSRSB0aWVuZSB2YWxvci4gRXhpZ2lybG8gb2JsaWdhcsOtYSBhXG4gICAgICAgIC8vIG1hcmNhcmxvLCBxdWUgZXMgb3RyYSBjb3NhIHF1ZSByZXNwb25kZXIg4oCUIHkgZGVqYXLDrWEgZWwgZW52w61vXG4gICAgICAgIC8vIGJsb3F1ZWFkbyBzaW4gcXVlIHNlIHZlYSBwb3IgcXXDqS5cbiAgICAgICAgZ3JvdXBbcS5uYW1lXSA9IG5ldyBGb3JtQ29udHJvbChmYWxzZSwgeyBub25OdWxsYWJsZTogdHJ1ZSB9KTtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBncm91cFtxLm5hbWVdID0gbmV3IEZvcm1Db250cm9sKHsgdmFsdWU6ICcnLCBkaXNhYmxlZDogZmFsc2UgfSwgcS5yZXF1aXJlZCA/IFtWYWxpZGF0b3JzLnJlcXVpcmVkXSA6IFtdKTtcbiAgICB9XG4gICAgdGhpcy5mb3JtID0gbmV3IEZvcm1Hcm91cChncm91cCk7XG5cbiAgICBpZiAodGhpcy5uZWVkc0lkZW50aXR5KCkpIHtcbiAgICAgIC8vIHNldFZhbGlkYXRvcnMgcG9yIHPDrSBzb2xvIG5vIHJlY2FsY3VsYSBlbCBzdGF0dXMgZGVsIGNvbnRyb2wg4oCUIHNpbiBlbFxuICAgICAgLy8gdXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpIGRlIGFsIGxhZG8sIG5hbWUvZW1haWwgcXVlZGFiYW4gVkFMSUQgaGFzdGFcbiAgICAgIC8vIGVsIHByw7N4aW1vIGNhbWJpbyBkZSB2YWxvciwgeSBzdWJtaXQoKSBkZWphYmEgcGFzYXIgdW4gZW52w61vIGFuw7NuaW1vXG4gICAgICAvLyBzaW4gaWRlbnRpZGFkLlxuICAgICAgdGhpcy5uYW1lQ29udHJvbC5zZXRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLnJlcXVpcmVkXSk7XG4gICAgICB0aGlzLm5hbWVDb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICAgIHRoaXMuZW1haWxDb250cm9sLnNldFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMuZW1haWxdKTtcbiAgICAgIHRoaXMuZW1haWxDb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICB9XG4gIH1cblxuICAvKiogUHJlZ3VudGFzIG9yZGVuYWRhcyDigJQgZWwgdGVtcGxhdGUgbGFzIHJlY29ycmUgZW4gZXN0ZSBvcmRlbi4gKi9cbiAgcmVhZG9ubHkgcXVlc3Rpb25zID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGNmZyA9IHRoaXMudHlwZUNvbmZpZygpO1xuICAgIHJldHVybiBjZmcgPyBbLi4uY2ZnLmZpZWxkU2NoZW1hXS5zb3J0KChhLCBiKSA9PiBhLm9yZGVyIC0gYi5vcmRlcikgOiBbXTtcbiAgfSk7XG5cbiAgcXVlc3Rpb25Db250cm9sKG5hbWU6IHN0cmluZyk6IEZvcm1Db250cm9sIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtLmdldChuYW1lKSBhcyBGb3JtQ29udHJvbDtcbiAgfVxuXG4gIGJvb2xlYW5Db250cm9sKG5hbWU6IHN0cmluZyk6IEZvcm1Db250cm9sPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5mb3JtLmdldChuYW1lKSBhcyBGb3JtQ29udHJvbDxib29sZWFuPjtcbiAgfVxuXG4gIG9wdGlvbkNvbnRyb2wobmFtZTogc3RyaW5nLCBvcHRpb25JZDogc3RyaW5nKTogRm9ybUNvbnRyb2w8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IGtleSA9IGAke25hbWV9Ojoke29wdGlvbklkfWA7XG4gICAgbGV0IGNvbnRyb2wgPSB0aGlzLm11bHRpQ29udHJvbHMuZ2V0KGtleSk7XG4gICAgaWYgKCFjb250cm9sKSB7XG4gICAgICBjb250cm9sID0gbmV3IEZvcm1Db250cm9sKGZhbHNlLCB7IG5vbk51bGxhYmxlOiB0cnVlIH0pO1xuICAgICAgdGhpcy5tdWx0aUNvbnRyb2xzLnNldChrZXksIGNvbnRyb2wpO1xuICAgIH1cbiAgICByZXR1cm4gY29udHJvbDtcbiAgfVxuXG4gIC8qKiBPcGNpb25lcyB0YWwgY29tbyBsYXMgZXNjcmliacOzIHF1aWVuIGNyZcOzIGxhIGVuY3Vlc3RhIOKAlCBubyBzZSB0cmFkdWNlbi4gKi9cbiAgb3B0aW9uc09mKHE6IHsgb3B0aW9ucz86IHsgaWQ6IHN0cmluZzsgbmFtZTogc3RyaW5nOyBvcmRlcj86IG51bWJlciB9W10gfSk6IElucHV0T3B0aW9uW10ge1xuICAgIHJldHVybiBbLi4uKHEub3B0aW9ucyA/PyBbXSldXG4gICAgICAubWFwKChvLCBpbmRleCkgPT4gKHsgaWQ6IG8uaWQsIG5hbWU6IG8ubmFtZSwgb3JkZXI6IG8ub3JkZXIgPz8gaW5kZXggfSkpXG4gICAgICAuc29ydCgoYSwgYikgPT4gYS5vcmRlciAtIGIub3JkZXIpO1xuICB9XG5cbiAgLyoqXG4gICAqIGB2YWwtcmFkaW8taW5wdXRgIHBpZGUgdW4gYElucHV0TWV0YWRhdGFgIGNvbXBsZXRvIChubyBgUGFydGlhbGApLCBhc8OtIHF1ZVxuICAgKiBzZSBhcm1hIGFjw6EgZW4gdmV6IGRlIGVuIGVsIHRlbXBsYXRlLlxuICAgKi9cbiAgcmFkaW9Qcm9wcyhxOiBGaWVsZFNjaGVtYURlZik6IElucHV0TWV0YWRhdGEge1xuICAgIHJldHVybiB7XG4gICAgICB0b2tlbjogcS5uYW1lLFxuICAgICAgbmFtZTogcS5uYW1lLFxuICAgICAgbGFiZWw6ICcnLFxuICAgICAgaGludDogJycsXG4gICAgICBwbGFjZWhvbGRlcjogJycsXG4gICAgICB0eXBlOiBJbnB1dFR5cGUuUkFESU8sXG4gICAgICBvcmRlcjogcS5vcmRlcixcbiAgICAgIHZhbGlkYXRvcnM6IFtdLFxuICAgICAgZXJyb3JzOiB7fSxcbiAgICAgIHN0YXRlOiBDb21wb25lbnRTdGF0ZXMuRU5BQkxFRCxcbiAgICAgIGNvbnRyb2w6IHRoaXMucXVlc3Rpb25Db250cm9sKHEubmFtZSksXG4gICAgICBvcHRpb25zOiB0aGlzLm9wdGlvbnNPZihxKSxcbiAgICB9O1xuICB9XG5cbiAgcGxhY2Vob2xkZXJPZihxOiB7IHBsYWNlaG9sZGVyVGV4dD86IHN0cmluZzsgcGxhY2Vob2xkZXI/OiBzdHJpbmcgfSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHEucGxhY2Vob2xkZXJUZXh0IHx8IHEucGxhY2Vob2xkZXIgfHwgJyc7XG4gIH1cblxuICBoaW50T2YocTogeyBoaW50VGV4dD86IHN0cmluZzsgaGludD86IHN0cmluZyB9KTogc3RyaW5nIHtcbiAgICByZXR1cm4gcS5oaW50VGV4dCB8fCBxLmhpbnQgfHwgJyc7XG4gIH1cblxuICAvKipcbiAgICogVGlwbyBkZWwgYDxpbnB1dD5gIHBhcmEgbGFzIHByZWd1bnRhcyBxdWUgc2UgcmVzcG9uZGVuIGVzY3JpYmllbmRvLiBOYWRhIGRlXG4gICAqIGBwYXJzZUlucHV0VHlwZWAgZGUgYEZvcm1TY2hlbWFCdWlsZGVyU2VydmljZWA6IGVzZSBtYXBlYSBhbCBlbnVtIGRlXG4gICAqIGB2YWwtZm9ybWAsIHkgYWPDoSBubyBoYXkgYHZhbC1mb3JtYCBkZSBwb3IgbWVkaW8gKHZlciBlbCBjb21lbnRhcmlvIGRlXG4gICAqIGNsYXNlKS4gVW4gdGlwbyBkZXNjb25vY2lkbyBjYWUgYSB0ZXh0bywgcXVlIHNpZW1wcmUgc2UgcHVlZGUgcmVzcG9uZGVyLlxuICAgKi9cbiAgaW5wdXRUeXBlT2YodHlwZTogc3RyaW5nKTogJ3RleHQnIHwgJ2VtYWlsJyB8ICdudW1iZXInIHwgJ3RlbCcge1xuICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgY2FzZSAnRU1BSUwnOlxuICAgICAgICByZXR1cm4gJ2VtYWlsJztcbiAgICAgIGNhc2UgJ05VTUJFUic6XG4gICAgICAgIHJldHVybiAnbnVtYmVyJztcbiAgICAgIGNhc2UgJ1BIT05FJzpcbiAgICAgICAgcmV0dXJuICd0ZWwnO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuICd0ZXh0JztcbiAgICB9XG4gIH1cblxuICAvKiogTGFzIG9wY2lvbmVzIG1hcmNhZGFzIGRlIHVuYSBwcmVndW50YSBNVUxUSV9TRUxFQ1QsIGVuIGVsIG9yZGVuIGRlbCBzY2hlbWEuICovXG4gIHByaXZhdGUgc2VsZWN0ZWRPcHRpb25zKHE6IHsgbmFtZTogc3RyaW5nOyBvcHRpb25zPzogeyBpZDogc3RyaW5nOyBuYW1lOiBzdHJpbmc7IG9yZGVyPzogbnVtYmVyIH1bXSB9KTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbnNPZihxKVxuICAgICAgLmZpbHRlcihvcHQgPT4gdGhpcy5tdWx0aUNvbnRyb2xzLmdldChgJHtxLm5hbWV9Ojoke29wdC5pZH1gKT8udmFsdWUpXG4gICAgICAubWFwKG9wdCA9PiBvcHQuaWQpO1xuICB9XG5cbiAgcXVlc3Rpb25MYWJlbChxOiB7IGxhYmVsPzogc3RyaW5nOyBsYWJlbEtleT86IHN0cmluZzsgbmFtZTogc3RyaW5nIH0pOiBzdHJpbmcge1xuICAgIC8vIFRleHRvIGRlbCBDTElFTlRFIChyZWdsYSAjNCk6IHF1aWVuIGNyZcOzIGxhIGVuY3Vlc3RhIGVzY3JpYmnDsyBlbFxuICAgIC8vIGVudW5jaWFkbyB0YWwgY3VhbCwgbm8gc2UgdHJhZHVjZS5cbiAgICByZXR1cm4gcS5sYWJlbCB8fCBxLm5hbWU7XG4gIH1cblxuICAvKiogUHVlZGUgcmVzcG9uZGVyIHNpbiBzZXNpw7NuIHNpIGVsIHRpcG8gbG8gcGVybWl0ZTsgc2kgbm8sIGhhY2UgZmFsdGEgbG9naW4uICovXG4gIHJlYWRvbmx5IGNhblJlc3BvbmQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgaWYgKHRoaXMuYXV0aC5pc0F1dGhlbnRpY2F0ZWQoKSkgcmV0dXJuIHRydWU7XG4gICAgcmV0dXJuICEhdGhpcy50eXBlQ29uZmlnKCk/LmFsbG93QW5vbnltb3VzO1xuICB9KTtcblxuICAvKipcbiAgICogRWwgdGlwbyBwdWVkZSBzZWd1aXIgZXhpZ2llbmRvIGlkZW50aWRhZCBhbCBhbsOzbmltbyAoYHNraXBTdWJtaXR0ZXJJZGVudGl0eWBcbiAgICogYXVzZW50ZSBvIGZhbHNlKTogZXMgZWwgY2FzbyBkZSBsYXMgc29saWNpdHVkZXMgZGUgQ2hlc2VkL09raGVsaWEsIGRvbmRlXG4gICAqIHNhYmVyIHF1acOpbiBwaWRpw7MgRVMgZWwgcHVudG8uIFVuYSBlbmN1ZXN0YSBwb25lIGVsIGZsYWcgZW4gdHJ1ZSB5IGVudG9uY2VzXG4gICAqIG5vIHNlIHBpZGUgbmFkYSDigJQgc2kgbGEgb3JnYW5pemFjacOzbiBuZWNlc2l0YSBlbCBjb3JyZW8gZGUgcXVpZW4gcmVzcG9uZGUsXG4gICAqIGxvIGFncmVnYSBjb21vIHVuYSBQUkVHVU5UQSBkZSB0aXBvIENvcnJlby4gRXNvIGVzIGNvbmZpZ3VyYWNpw7NuIGRlIGxhXG4gICAqIGVuY3Vlc3RhOyBlbCBmb3JtdWxhcmlvIG5vIGNvYnJhIHBlYWplIHBvciBzdSBjdWVudGEuXG4gICAqL1xuICBuZWVkc0lkZW50aXR5KCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLmF1dGguaXNBdXRoZW50aWNhdGVkKCkpIHJldHVybiBmYWxzZTtcbiAgICByZXR1cm4gIXRoaXMudHlwZUNvbmZpZygpPy5za2lwU3VibWl0dGVySWRlbnRpdHk7XG4gIH1cblxuICByZWFkb25seSBzdWJtaXRTdGF0ZSA9IGNvbXB1dGVkKCgpID0+ICh0aGlzLnNlbmRpbmcoKSA/ICdXT1JLSU5HJyA6ICdFTkFCTEVEJykpO1xuXG4gIGFzeW5jIHN1Ym1pdCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAodGhpcy5zZW5kaW5nKCkgfHwgdGhpcy5mb3JtLmludmFsaWQpIHJldHVybjtcbiAgICBpZiAodGhpcy5uZWVkc0lkZW50aXR5KCkgJiYgKHRoaXMubmFtZUNvbnRyb2wuaW52YWxpZCB8fCB0aGlzLmVtYWlsQ29udHJvbC5pbnZhbGlkKSkge1xuICAgICAgdGhpcy5uYW1lQ29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XG4gICAgICB0aGlzLmVtYWlsQ29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgY2ZnID0gdGhpcy50eXBlQ29uZmlnKCk7XG4gICAgaWYgKCFjZmcpIHJldHVybjtcblxuICAgIC8vIE1VTFRJX1NFTEVDVCBubyB2aXZlIGVuIGVsIEZvcm1Hcm91cCwgYXPDrSBxdWUgYGZvcm0uaW52YWxpZGAgbm8gbG8gY3VicmU6XG4gICAgLy8gdW5hIG9ibGlnYXRvcmlhIHNpbiBuYWRhIG1hcmNhZG8gaGF5IHF1ZSBmcmVuYXJsYSBhY8OhIG8gc2UgZW52w61hIHZhY8OtYS5cbiAgICBjb25zdCBtdWx0aVJlcXVpcmVkID0gdGhpcy5xdWVzdGlvbnMoKS5maWx0ZXIocSA9PiBxLnR5cGUgPT09ICdNVUxUSV9TRUxFQ1QnICYmIHEucmVxdWlyZWQpO1xuICAgIGlmIChtdWx0aVJlcXVpcmVkLnNvbWUocSA9PiAhdGhpcy5zZWxlY3RlZE9wdGlvbnMocSkubGVuZ3RoKSkge1xuICAgICAgdGhpcy5tdWx0aVNlbGVjdEVycm9yLnNldCh0cnVlKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5tdWx0aVNlbGVjdEVycm9yLnNldChmYWxzZSk7XG5cbiAgICB0aGlzLnNlbmRpbmcuc2V0KHRydWUpO1xuICAgIGNvbnN0IGZpZWxkczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7IC4uLnRoaXMuZm9ybS5nZXRSYXdWYWx1ZSgpIH07XG4gICAgZm9yIChjb25zdCBxIG9mIHRoaXMucXVlc3Rpb25zKCkpIHtcbiAgICAgIGlmIChxLnR5cGUgPT09ICdNVUxUSV9TRUxFQ1QnKSBmaWVsZHNbcS5uYW1lXSA9IHRoaXMuc2VsZWN0ZWRPcHRpb25zKHEpO1xuICAgIH1cbiAgICBjb25zdCBwYXlsb2FkID0ge1xuICAgICAgdHlwZTogY2ZnLnR5cGVJZCxcbiAgICAgIHRpdGxlOiBjZmcubGFiZWwsXG4gICAgICBmaWVsZHMsXG4gICAgICAuLi4odGhpcy5wcm9wcy5pbnZpdGVUb2tlbiA/IHsgaW52aXRlVG9rZW46IHRoaXMucHJvcHMuaW52aXRlVG9rZW4gfSA6IHt9KSxcbiAgICAgIC4uLih0aGlzLm5lZWRzSWRlbnRpdHkoKVxuICAgICAgICA/IHsgc3VibWl0dGVyOiB7IG5hbWU6IHRoaXMubmFtZUNvbnRyb2wudmFsdWUudHJpbSgpLCBlbWFpbDogdGhpcy5lbWFpbENvbnRyb2wudmFsdWUudHJpbSgpIH0gfVxuICAgICAgICA6IHt9KSxcbiAgICB9O1xuXG4gICAgY29uc3QgY2FsbCQgPSB0aGlzLmF1dGguaXNBdXRoZW50aWNhdGVkKClcbiAgICAgID8gdGhpcy5yZXF1ZXN0cy5jcmVhdGVSZXF1ZXN0KHBheWxvYWQpXG4gICAgICA6IHRoaXMucmVxdWVzdHMuY3JlYXRlQW5vbnltb3VzUmVxdWVzdChwYXlsb2FkKTtcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXMgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbShjYWxsJCk7XG4gICAgICB0aGlzLnNlbmRpbmcuc2V0KGZhbHNlKTtcbiAgICAgIHRoaXMuc2VudC5zZXQodHJ1ZSk7XG4gICAgICB0aGlzLnN1Ym1pdHRlZC5lbWl0KHsgcmVxdWVzdElkOiByZXMucmVxdWVzdElkIH0pO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgdGhpcy5zZW5kaW5nLnNldChmYWxzZSk7XG4gICAgICAvLyBVbmEgaW52aXRhY2nDs24geWEgdXNhZGEgbm8gZXMgdW4gZmFsbG86IGVzIGxhIHJlc3B1ZXN0YSBjb3JyZWN0YSBhbFxuICAgICAgLy8gc2VndW5kbyBpbnRlbnRvLiBVbiB0b2FzdCByb2pvIGRlIFwibm8gcHVkaW1vcyBlbnZpYXJcIiBoYXLDrWEgY3JlZXIgcXVlXG4gICAgICAvLyBzZSBwZXJkacOzIGxvIHF1ZSB5YSBzZSBoYWLDrWEgcmVzcG9uZGlkby5cbiAgICAgIGlmIChpbnRlcnByZXRFcnJvcihlcnIpLmNvZGUgPT09IElOVklURV9VU0VEX0NPREUpIHtcbiAgICAgICAgdGhpcy5hbHJlYWR5QW5zd2VyZWQuc2V0KHRydWUpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB0aGlzLmVycm9ycy5oYW5kbGUoZXJyLCB7XG4gICAgICAgIGNvbnRleHQ6ICdzdXJ2ZXlSZXNwb25zZS5zdWJtaXQnLFxuICAgICAgICBmYWxsYmFja0tleTogJ3NlbmRFcnJvcicsXG4gICAgICAgIGkxOG5OYW1lc3BhY2U6IE5BTUVTUEFDRSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHJlYWRvbmx5IGFscmVhZHlBbnN3ZXJlZFN0YXRlID0gY29tcHV0ZWQ8RW1wdHlTdGF0ZU1ldGFkYXRhPigoKSA9PiB7XG4gICAgdGhpcy5pMThuLmxhbmcoKTtcbiAgICByZXR1cm4geyB2YXJpYW50OiAnZW1wdHknLCB0aXRsZTogdGhpcy50KCdhbHJlYWR5VGl0bGUnKSwgZGVzY3JpcHRpb246IHRoaXMudCgnYWxyZWFkeUJvZHknKSB9O1xuICB9KTtcblxuICByZWFkb25seSBzZW50U3RhdGUgPSBjb21wdXRlZDxFbXB0eVN0YXRlTWV0YWRhdGE+KCgpID0+IHtcbiAgICB0aGlzLmkxOG4ubGFuZygpO1xuICAgIHJldHVybiB7IHZhcmlhbnQ6ICdlbXB0eScsIHRpdGxlOiB0aGlzLnQoJ3NlbnRUaXRsZScpLCBkZXNjcmlwdGlvbjogdGhpcy50KCdzZW50Qm9keScpIH07XG4gIH0pO1xuXG4gIHJlYWRvbmx5IGxvYWRFcnJvclN0YXRlID0gY29tcHV0ZWQ8RW1wdHlTdGF0ZU1ldGFkYXRhPigoKSA9PiB7XG4gICAgdGhpcy5pMThuLmxhbmcoKTtcbiAgICByZXR1cm4geyB2YXJpYW50OiAnZXJyb3InLCB0aXRsZTogdGhpcy50KCdsb2FkRXJyb3JUaXRsZScpLCBkZXNjcmlwdGlvbjogdGhpcy50KCdsb2FkRXJyb3JCb2R5JykgfTtcbiAgfSk7XG5cbiAgcmVhZG9ubHkgbG9naW5SZXF1aXJlZFN0YXRlID0gY29tcHV0ZWQ8RW1wdHlTdGF0ZU1ldGFkYXRhPigoKSA9PiB7XG4gICAgdGhpcy5pMThuLmxhbmcoKTtcbiAgICByZXR1cm4geyB2YXJpYW50OiAnZXJyb3InLCB0aXRsZTogdGhpcy50KCdsb2dpblJlcXVpcmVkVGl0bGUnKSwgZGVzY3JpcHRpb246IHRoaXMudCgnbG9naW5SZXF1aXJlZEJvZHknKSB9O1xuICB9KTtcblxuICB0KGtleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pMThuLnQoa2V5LCBOQU1FU1BBQ0UpO1xuICB9XG59XG4iXX0=
|
|
@@ -9,6 +9,8 @@ export const SURVEY_RESPONSE_I18N = {
|
|
|
9
9
|
invalidEmail: 'Revisa el correo, parece incompleto',
|
|
10
10
|
required: 'Esta pregunta es obligatoria',
|
|
11
11
|
submit: 'Enviar',
|
|
12
|
+
alreadyTitle: 'Ya respondiste esta encuesta',
|
|
13
|
+
alreadyBody: 'Tu respuesta quedó registrada la primera vez. Gracias por tu tiempo.',
|
|
12
14
|
sentTitle: 'Gracias por responder',
|
|
13
15
|
sentBody: 'Tu respuesta quedó registrada.',
|
|
14
16
|
loadErrorTitle: 'No pudimos cargar la encuesta',
|
|
@@ -27,6 +29,8 @@ export const SURVEY_RESPONSE_I18N = {
|
|
|
27
29
|
invalidEmail: 'Check the email, it looks incomplete',
|
|
28
30
|
required: 'This question is required',
|
|
29
31
|
submit: 'Submit',
|
|
32
|
+
alreadyTitle: 'You already answered this survey',
|
|
33
|
+
alreadyBody: 'Your response was recorded the first time. Thanks for your time.',
|
|
30
34
|
sentTitle: 'Thanks for answering',
|
|
31
35
|
sentBody: 'Your response was recorded.',
|
|
32
36
|
loadErrorTitle: "We couldn't load the survey",
|
|
@@ -36,4 +40,4 @@ export const SURVEY_RESPONSE_I18N = {
|
|
|
36
40
|
sendError: "We couldn't send your response. Please try again in a while.",
|
|
37
41
|
},
|
|
38
42
|
};
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VydmV5LXJlc3BvbnNlLmkxOG4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL3N1cnZleS1yZXNwb25zZS9zdXJ2ZXktcmVzcG9uc2UuaTE4bi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBcUI7SUFDcEQsRUFBRSxFQUFFO1FBQ0YsU0FBUyxFQUFFLFdBQVc7UUFDdEIsZUFBZSxFQUFFLGtCQUFrQjtRQUNuQyxVQUFVLEVBQUUsUUFBUTtRQUNwQixnQkFBZ0IsRUFBRSxjQUFjO1FBQ2hDLE1BQU0sRUFBRSx1QkFBdUI7UUFDL0IsT0FBTyxFQUFFLHVCQUF1QjtRQUNoQyxZQUFZLEVBQUUscUNBQXFDO1FBQ25ELFFBQVEsRUFBRSw4QkFBOEI7UUFDeEMsTUFBTSxFQUFFLFFBQVE7UUFDaEIsWUFBWSxFQUFFLDhCQUE4QjtRQUM1QyxXQUFXLEVBQUUsc0VBQXNFO1FBQ25GLFNBQVMsRUFBRSx1QkFBdUI7UUFDbEMsUUFBUSxFQUFFLGdDQUFnQztRQUMxQyxjQUFjLEVBQUUsK0JBQStCO1FBQy9DLGFBQWEsRUFBRSx5REFBeUQ7UUFDeEUsa0JBQWtCLEVBQUUsMEJBQTBCO1FBQzlDLGlCQUFpQixFQUFFLDhDQUE4QztRQUNqRSxTQUFTLEVBQUUsZ0VBQWdFO0tBQzVFO0lBQ0QsRUFBRSxFQUFFO1FBQ0YsU0FBUyxFQUFFLFdBQVc7UUFDdEIsZUFBZSxFQUFFLHlCQUF5QjtRQUMxQyxVQUFVLEVBQUUsT0FBTztRQUNuQixnQkFBZ0IsRUFBRSxlQUFlO1FBQ2pDLE1BQU0sRUFBRSxnQkFBZ0I7UUFDeEIsT0FBTyxFQUFFLGtCQUFrQjtRQUMzQixZQUFZLEVBQUUsc0NBQXNDO1FBQ3BELFFBQVEsRUFBRSwyQkFBMkI7UUFDckMsTUFBTSxFQUFFLFFBQVE7UUFDaEIsWUFBWSxFQUFFLGtDQUFrQztRQUNoRCxXQUFXLEVBQUUsa0VBQWtFO1FBQy9FLFNBQVMsRUFBRSxzQkFBc0I7UUFDakMsUUFBUSxFQUFFLDZCQUE2QjtRQUN2QyxjQUFjLEVBQUUsNkJBQTZCO1FBQzdDLGFBQWEsRUFBRSxpREFBaUQ7UUFDaEUsa0JBQWtCLEVBQUUscUJBQXFCO1FBQ3pDLGlCQUFpQixFQUFFLGlEQUFpRDtRQUNwRSxTQUFTLEVBQUUsOERBQThEO0tBQzFFO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExhbmd1YWdlc0NvbnRlbnQgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pMThuJztcblxuZXhwb3J0IGNvbnN0IFNVUlZFWV9SRVNQT05TRV9JMThOOiBMYW5ndWFnZXNDb250ZW50ID0ge1xuICBlczoge1xuICAgIG5hbWVMYWJlbDogJ1R1IG5vbWJyZScsXG4gICAgbmFtZVBsYWNlaG9sZGVyOiAnQ8OzbW8gdGUgbGxhbWFtb3MnLFxuICAgIGVtYWlsTGFiZWw6ICdDb3JyZW8nLFxuICAgIGVtYWlsUGxhY2Vob2xkZXI6ICd0dUBlbWFpbC5jb20nLFxuICAgIG5vTmFtZTogJ05lY2VzaXRhbW9zIHVuIG5vbWJyZScsXG4gICAgbm9FbWFpbDogJ05lY2VzaXRhbW9zIHVuIGNvcnJlbycsXG4gICAgaW52YWxpZEVtYWlsOiAnUmV2aXNhIGVsIGNvcnJlbywgcGFyZWNlIGluY29tcGxldG8nLFxuICAgIHJlcXVpcmVkOiAnRXN0YSBwcmVndW50YSBlcyBvYmxpZ2F0b3JpYScsXG4gICAgc3VibWl0OiAnRW52aWFyJyxcbiAgICBhbHJlYWR5VGl0bGU6ICdZYSByZXNwb25kaXN0ZSBlc3RhIGVuY3Vlc3RhJyxcbiAgICBhbHJlYWR5Qm9keTogJ1R1IHJlc3B1ZXN0YSBxdWVkw7MgcmVnaXN0cmFkYSBsYSBwcmltZXJhIHZlei4gR3JhY2lhcyBwb3IgdHUgdGllbXBvLicsXG4gICAgc2VudFRpdGxlOiAnR3JhY2lhcyBwb3IgcmVzcG9uZGVyJyxcbiAgICBzZW50Qm9keTogJ1R1IHJlc3B1ZXN0YSBxdWVkw7MgcmVnaXN0cmFkYS4nLFxuICAgIGxvYWRFcnJvclRpdGxlOiAnTm8gcHVkaW1vcyBjYXJnYXIgbGEgZW5jdWVzdGEnLFxuICAgIGxvYWRFcnJvckJvZHk6ICdQdWVkZSBxdWUgZWwgbGluayBlc3TDqSB2ZW5jaWRvIG8geWEgbm8gZXN0w6kgZGlzcG9uaWJsZS4nLFxuICAgIGxvZ2luUmVxdWlyZWRUaXRsZTogJ05lY2VzaXRhcyBpbmljaWFyIHNlc2nDs24nLFxuICAgIGxvZ2luUmVxdWlyZWRCb2R5OiAnRXN0YSBlbmN1ZXN0YSBubyBhY2VwdGEgcmVzcHVlc3RhcyBhbsOzbmltYXMuJyxcbiAgICBzZW5kRXJyb3I6ICdObyBwdWRpbW9zIGVudmlhciB0dSByZXNwdWVzdGEuIEludMOpbnRhbG8gZGUgbnVldm8gZW4gdW4gcmF0by4nLFxuICB9LFxuICBlbjoge1xuICAgIG5hbWVMYWJlbDogJ1lvdXIgbmFtZScsXG4gICAgbmFtZVBsYWNlaG9sZGVyOiAnV2hhdCBzaG91bGQgd2UgY2FsbCB5b3UnLFxuICAgIGVtYWlsTGFiZWw6ICdFbWFpbCcsXG4gICAgZW1haWxQbGFjZWhvbGRlcjogJ3lvdUBlbWFpbC5jb20nLFxuICAgIG5vTmFtZTogJ1dlIG5lZWQgYSBuYW1lJyxcbiAgICBub0VtYWlsOiAnV2UgbmVlZCBhbiBlbWFpbCcsXG4gICAgaW52YWxpZEVtYWlsOiAnQ2hlY2sgdGhlIGVtYWlsLCBpdCBsb29rcyBpbmNvbXBsZXRlJyxcbiAgICByZXF1aXJlZDogJ1RoaXMgcXVlc3Rpb24gaXMgcmVxdWlyZWQnLFxuICAgIHN1Ym1pdDogJ1N1Ym1pdCcsXG4gICAgYWxyZWFkeVRpdGxlOiAnWW91IGFscmVhZHkgYW5zd2VyZWQgdGhpcyBzdXJ2ZXknLFxuICAgIGFscmVhZHlCb2R5OiAnWW91ciByZXNwb25zZSB3YXMgcmVjb3JkZWQgdGhlIGZpcnN0IHRpbWUuIFRoYW5rcyBmb3IgeW91ciB0aW1lLicsXG4gICAgc2VudFRpdGxlOiAnVGhhbmtzIGZvciBhbnN3ZXJpbmcnLFxuICAgIHNlbnRCb2R5OiAnWW91ciByZXNwb25zZSB3YXMgcmVjb3JkZWQuJyxcbiAgICBsb2FkRXJyb3JUaXRsZTogXCJXZSBjb3VsZG4ndCBsb2FkIHRoZSBzdXJ2ZXlcIixcbiAgICBsb2FkRXJyb3JCb2R5OiAnVGhlIGxpbmsgbWF5IGJlIGV4cGlyZWQgb3Igbm8gbG9uZ2VyIGF2YWlsYWJsZS4nLFxuICAgIGxvZ2luUmVxdWlyZWRUaXRsZTogJ1lvdSBuZWVkIHRvIHNpZ24gaW4nLFxuICAgIGxvZ2luUmVxdWlyZWRCb2R5OiBcIlRoaXMgc3VydmV5IGRvZXNuJ3QgYWNjZXB0IGFub255bW91cyByZXNwb25zZXMuXCIsXG4gICAgc2VuZEVycm9yOiBcIldlIGNvdWxkbid0IHNlbmQgeW91ciByZXNwb25zZS4gUGxlYXNlIHRyeSBhZ2FpbiBpbiBhIHdoaWxlLlwiLFxuICB9LFxufTtcbiJdfQ==
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL3N1cnZleS1yZXNwb25zZS90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBTdXJ2ZXlSZXNwb25zZU1ldGFkYXRhIHtcbiAgLyoqIEVsIGBUeXBlSURgIGRlbCBSZXF1ZXN0VHlwZUNvbmZpZyAoY29udmVuY2nDs246IGBcInN1cnZleTo8c2x1Zz5cImApLiAqL1xuICB0eXBlSWQ6IHN0cmluZztcbiAgLyoqXG4gICAqIFRva2VuIGRlIGludml0YWNpw7NuIChgP2k9YCBkZWwgbGluayBkZWwgY29ycmVvKS4gTG8gcGFzYSBlbCBjb25zdW1lciBkZXNkZVxuICAgKiBsYSBxdWVyeSBkZSBsYSBydXRhOyBlbCBjb21wb25lbnRlIHNvbG8gbG8gcmVlbnbDrWEgYWwgYmFja2VuZCwgcXVlIGRlY2lkZVxuICAgKiBzaSBlc2EgaW52aXRhY2nDs24gc2lndWUgZGlzcG9uaWJsZS5cbiAgICovXG4gIGludml0ZVRva2VuPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN1cnZleVJlc3BvbnNlU3VibWl0RXZlbnQge1xuICByZXF1ZXN0SWQ6IHN0cmluZztcbn1cbiJdfQ==
|
|
@@ -13,4 +13,4 @@ export const REQUEST_STATUSES = [
|
|
|
13
13
|
* dedicado `val-emoji-rating`, nunca el form genérico. Ver ADR-092.
|
|
14
14
|
*/
|
|
15
15
|
export const FIELD_TYPE_EMOJI_RATING = 'EMOJI_RATING';
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL3NlcnZpY2VzL3JlcXVlc3RzL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVFBLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFvQjtJQUMvQyxTQUFTO0lBQ1QsV0FBVztJQUNYLFVBQVU7SUFDVixVQUFVO0lBQ1YsV0FBVztJQUNYLFFBQVE7Q0FDVCxDQUFDO0FBeUNGOzs7OztHQUtHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgUmVxdWVzdFN0YXR1cyA9XG4gIHwgJ3BlbmRpbmcnXG4gIHwgJ2luX3JldmlldydcbiAgfCAnYXBwcm92ZWQnXG4gIHwgJ3JlamVjdGVkJ1xuICB8ICdjYW5jZWxsZWQnXG4gIHwgJ2Nsb3NlZCc7XG5cbmV4cG9ydCBjb25zdCBSRVFVRVNUX1NUQVRVU0VTOiBSZXF1ZXN0U3RhdHVzW10gPSBbXG4gICdwZW5kaW5nJyxcbiAgJ2luX3JldmlldycsXG4gICdhcHByb3ZlZCcsXG4gICdyZWplY3RlZCcsXG4gICdjYW5jZWxsZWQnLFxuICAnY2xvc2VkJyxcbl07XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVxdWVzdEFjdG9yIHtcbiAgdXNlcklkPzogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIGVtYWlsOiBzdHJpbmc7XG4gIHBob25lPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFwcFJlcXVlc3Qge1xuICBpZDogc3RyaW5nO1xuICBhcHBJZDogc3RyaW5nO1xuICBvcmdJZDogc3RyaW5nO1xuICB0eXBlOiBzdHJpbmc7XG4gIHN0YXR1czogUmVxdWVzdFN0YXR1cztcbiAgdGl0bGU6IHN0cmluZztcbiAgZmllbGRzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgbWV0YWRhdGE/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgdGFncz86IHN0cmluZ1tdO1xuICBwcmlvcml0eT86IHN0cmluZztcbiAgc3VibWl0dGVyOiBSZXF1ZXN0QWN0b3I7XG4gIGFzc2lnbmVlPzogUmVxdWVzdEFjdG9yO1xuICAvKiogQ29waWFkbyBkZWwgUmVxdWVzdFR5cGVDb25maWcgYWwgY3JlYXIg4oCUIG5vIGxvIG1hbmRhIHF1aWVuIHJlc3BvbmRlLiAqL1xuICBlbnRpdHlSZWY/OiBFbnRpdHlSZWY7XG4gIGR1ZUF0Pzogc3RyaW5nO1xuICBjcmVhdGVkQXQ6IHN0cmluZztcbiAgdXBkYXRlZEF0OiBzdHJpbmc7XG4gIGNsb3NlZEF0Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlcXVlc3RDb21tZW50IHtcbiAgY29tbWVudElkOiBzdHJpbmc7XG4gIHJlcXVlc3RJZDogc3RyaW5nO1xuICBhdXRob3I6IFJlcXVlc3RBY3RvcjtcbiAgYm9keTogc3RyaW5nO1xuICBjcmVhdGVkQXQ6IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgRmllbGRPcHRpb24gPSBGb3JtRmllbGRPcHRpb247XG5leHBvcnQgdHlwZSBGaWVsZFNjaGVtYURlZiA9IEZvcm1GaWVsZFNjaGVtYURlZjtcblxuLyoqXG4gKiBUaXBvIGRlIHByZWd1bnRhIGRlIGVzY2FsYSBjb3J0YSBjb24gZW1vamkgKDMtNSBjYXJhcykuIE5PIGVzIHVubyBkZSBsb3NcbiAqIHRpcG9zIHF1ZSBgRm9ybVNjaGVtYUJ1aWxkZXJTZXJ2aWNlLmJ1aWxkRm9ybWAgc2FiZSBydXRlYXIgYSBgdmFsLWZvcm1gIOKAlFxuICogdW4gdGlwbyBzaW4gbWFwZW8gY2FlIGEgdGV4dG8gcGxhbm8gYWjDrS4gUmVuZGVyaXphcmxvIHJlcXVpZXJlIGVsIHdpZGdldFxuICogZGVkaWNhZG8gYHZhbC1lbW9qaS1yYXRpbmdgLCBudW5jYSBlbCBmb3JtIGdlbsOpcmljby4gVmVyIEFEUi0wOTIuXG4gKi9cbmV4cG9ydCBjb25zdCBGSUVMRF9UWVBFX0VNT0pJX1JBVElORyA9ICdFTU9KSV9SQVRJTkcnO1xuXG4vKiogSWRlbnRpZmljYSBsYSBlbnRpZGFkIGRlIGRvbWluaW8gYSBsYSBxdWUgcGVydGVuZWNlIHVuIHRpcG8gZGUgc29saWNpdHVkXG4gKiAodW4gZXZlbnRvLCB1bmEgYWRvcGNpw7NuLCB1bmEgcmVjZXRhKS4gT3BjaW9uYWwg4oCUIGxhIG1heW9yw61hIGRlIGxvcyB0aXBvc1xuICogKHRpY2tldHMgZGUgc29wb3J0ZSwgcG9zdHVsYWNpb25lcykgbm8gbGEgbmVjZXNpdGFuIHBvcnF1ZSBlbCB0aXBvIFlBIGVzIGxhXG4gKiBlbnRpZGFkLiBNaXNtbyBzaGFwZSBxdWUgZWwgYEVudGl0eVJlZmAgZGUgZmVlZGJhY2svY2hhdCDigJQgbm8gc2UgaW1wb3J0YVxuICogbmluZ3VubyBkZSBlc29zIHBhcXVldGVzIHBhcmEgZXN0bzogZXMgdW4gc3RydWN0IGRlIDIgY2FtcG9zLCByZXBsaWNhcmxvIGVzXG4gKiBtw6FzIGJhcmF0byBxdWUgYWNvcGxhciBkb21pbmlvcyBkZSBuZWdvY2lvIHBvciB1biB0aXBvIHRyaXZpYWwuICovXG5leHBvcnQgaW50ZXJmYWNlIEVudGl0eVJlZiB7XG4gIGVudGl0eVR5cGU6IHN0cmluZztcbiAgZW50aXR5SWQ6IHN0cmluZztcbn1cblxuLyoqIFF1acOpbiBwdWVkZSBsZWVyIHVuIHRpcG8gZGUgc29saWNpdHVkICh5IHN1cyBzb2xpY2l0dWRlcyBww7pibGljYXMpLiAqL1xuZXhwb3J0IHR5cGUgUmVxdWVzdFZpc2liaWxpdHkgPSAnUFVCTElDJyB8ICdBVVRIRU5USUNBVEVEJyB8ICdPUkcnIHwgJ0lOVEVSTkFMJztcblxuZXhwb3J0IGludGVyZmFjZSBSZXF1ZXN0VHlwZUNvbmZpZyB7XG4gIHR5cGVJZDogc3RyaW5nO1xuICBhcHBJZDogc3RyaW5nO1xuICBvcmdJZDogc3RyaW5nO1xuICAvKiogTm9tYnJlIGRlbCB0aXBvLCBlc2NyaXRvIHBvciBsYSBvcmdhbml6YWNpw7NuOiBubyBzZSB0cmFkdWNlLiAqL1xuICBsYWJlbDogc3RyaW5nO1xuICAvKiogQmFqYWRhIGRlbCBlbnVuY2lhZG8gKGVqLiBlbmN1ZXN0YXMpLiBMYWJlbCB5YSBjdWJyZSBlbCB0w610dWxvLiAqL1xuICBzdWJ0aXRsZT86IHN0cmluZztcbiAgZW50aXR5UmVmPzogRW50aXR5UmVmO1xuICAvKipcbiAgICogdHJ1ZSA9IGNhZGEgZW52w61vIHNlIGFncmVnYSwgbm8gc2UgcmV2aXNhIHVubyBwb3IgdW5vIChlai4gZW5jdWVzdGFzKS5cbiAgICogZmFsc2UvdW5kZWZpbmVkIChkZWZhdWx0KSA9IGNvbXBvcnRhbWllbnRvIGhpc3TDs3JpY286IHNlIHJldmlzYSBjYWRhXG4gICAqIHNvbGljaXR1ZCAoQ2hlc2VkIGFkb3BjaW9uZXMsIE9raGVsaWEgcmVjZXRhcykuXG4gICAqL1xuICBza2lwUmV2aWV3PzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIHRydWUgPSBlbCBmb3JtdWxhcmlvIE5PIHBpZGUgbm9tYnJlIG5pIGNvcnJlbyBhIHF1aWVuIHJlc3BvbmRlIHNpbiBzZXNpw7NuLlxuICAgKiBTaSBoYWNlbiBmYWx0YSwgc2UgYWdyZWdhbiBjb21vIHByZWd1bnRhIOKAlCBlc28gZXMgY29uZmlndXJhY2nDs24gZGUgbGFcbiAgICogZW5jdWVzdGEsIG5vIHVuIHBlYWplIHF1ZSBlbCBmb3JtdWxhcmlvIGNvYnJhIHBvciBzdSBjdWVudGEuXG4gICAqL1xuICBza2lwU3VibWl0dGVySWRlbnRpdHk/OiBib29sZWFuO1xuICBmaWVsZFNjaGVtYTogRmllbGRTY2hlbWFEZWZbXTtcbiAgYWxsb3dBbm9ueW1vdXM6IGJvb2xlYW47XG4gIC8qKlxuICAgKiBRdWnDqW4gcHVlZGUgbGVlci9lbnZpYXIgZXN0ZSB0aXBvIChkZWJlIGNvaW5jaWRpciBjb24gZWwgYmFja2VuZCk6XG4gICAqICAtIFBVQkxJQyAgICAgICAgY3VhbHF1aWVyYSwgaW5jbHVzbyBzaW4gbG9naW4gKGFuw7NuaW1vIHNpIGFsbG93QW5vbnltb3VzKS5cbiAgICogIC0gQVVUSEVOVElDQVRFRCBjdWFscXVpZXIgdXN1YXJpbyBsb2d1ZWFkbyArIHZlcmlmaWNhZG8sIGNyb3NzLW9yZy5cbiAgICogIC0gT1JHL0lOVEVSTkFMICBzb2xvIG1pZW1icm9zIGRlIGxhIG9yZyBkdWXDsWEuIERlZmF1bHQgT1JHLlxuICAgKi9cbiAgdmlzaWJpbGl0eT86IFJlcXVlc3RWaXNpYmlsaXR5O1xuICBjcmVhdGVkQXQ6IHN0cmluZztcbiAgdXBkYXRlZEF0OiBzdHJpbmc7XG59XG5cbi8vIOKUgOKUgCBSZXF1ZXN0IC8gUmVzcG9uc2Ug4pSA4pSAXG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlUmVxdWVzdFBheWxvYWQge1xuICB0eXBlOiBzdHJpbmc7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIGZpZWxkcz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL3NlcnZpY2VzL3JlcXVlc3RzL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVFBLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFvQjtJQUMvQyxTQUFTO0lBQ1QsV0FBVztJQUNYLFVBQVU7SUFDVixVQUFVO0lBQ1YsV0FBVztJQUNYLFFBQVE7Q0FDVCxDQUFDO0FBeUNGOzs7OztHQUtHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgUmVxdWVzdFN0YXR1cyA9XG4gIHwgJ3BlbmRpbmcnXG4gIHwgJ2luX3JldmlldydcbiAgfCAnYXBwcm92ZWQnXG4gIHwgJ3JlamVjdGVkJ1xuICB8ICdjYW5jZWxsZWQnXG4gIHwgJ2Nsb3NlZCc7XG5cbmV4cG9ydCBjb25zdCBSRVFVRVNUX1NUQVRVU0VTOiBSZXF1ZXN0U3RhdHVzW10gPSBbXG4gICdwZW5kaW5nJyxcbiAgJ2luX3JldmlldycsXG4gICdhcHByb3ZlZCcsXG4gICdyZWplY3RlZCcsXG4gICdjYW5jZWxsZWQnLFxuICAnY2xvc2VkJyxcbl07XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVxdWVzdEFjdG9yIHtcbiAgdXNlcklkPzogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIGVtYWlsOiBzdHJpbmc7XG4gIHBob25lPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFwcFJlcXVlc3Qge1xuICBpZDogc3RyaW5nO1xuICBhcHBJZDogc3RyaW5nO1xuICBvcmdJZDogc3RyaW5nO1xuICB0eXBlOiBzdHJpbmc7XG4gIHN0YXR1czogUmVxdWVzdFN0YXR1cztcbiAgdGl0bGU6IHN0cmluZztcbiAgZmllbGRzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgbWV0YWRhdGE/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgdGFncz86IHN0cmluZ1tdO1xuICBwcmlvcml0eT86IHN0cmluZztcbiAgc3VibWl0dGVyOiBSZXF1ZXN0QWN0b3I7XG4gIGFzc2lnbmVlPzogUmVxdWVzdEFjdG9yO1xuICAvKiogQ29waWFkbyBkZWwgUmVxdWVzdFR5cGVDb25maWcgYWwgY3JlYXIg4oCUIG5vIGxvIG1hbmRhIHF1aWVuIHJlc3BvbmRlLiAqL1xuICBlbnRpdHlSZWY/OiBFbnRpdHlSZWY7XG4gIGR1ZUF0Pzogc3RyaW5nO1xuICBjcmVhdGVkQXQ6IHN0cmluZztcbiAgdXBkYXRlZEF0OiBzdHJpbmc7XG4gIGNsb3NlZEF0Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlcXVlc3RDb21tZW50IHtcbiAgY29tbWVudElkOiBzdHJpbmc7XG4gIHJlcXVlc3RJZDogc3RyaW5nO1xuICBhdXRob3I6IFJlcXVlc3RBY3RvcjtcbiAgYm9keTogc3RyaW5nO1xuICBjcmVhdGVkQXQ6IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgRmllbGRPcHRpb24gPSBGb3JtRmllbGRPcHRpb247XG5leHBvcnQgdHlwZSBGaWVsZFNjaGVtYURlZiA9IEZvcm1GaWVsZFNjaGVtYURlZjtcblxuLyoqXG4gKiBUaXBvIGRlIHByZWd1bnRhIGRlIGVzY2FsYSBjb3J0YSBjb24gZW1vamkgKDMtNSBjYXJhcykuIE5PIGVzIHVubyBkZSBsb3NcbiAqIHRpcG9zIHF1ZSBgRm9ybVNjaGVtYUJ1aWxkZXJTZXJ2aWNlLmJ1aWxkRm9ybWAgc2FiZSBydXRlYXIgYSBgdmFsLWZvcm1gIOKAlFxuICogdW4gdGlwbyBzaW4gbWFwZW8gY2FlIGEgdGV4dG8gcGxhbm8gYWjDrS4gUmVuZGVyaXphcmxvIHJlcXVpZXJlIGVsIHdpZGdldFxuICogZGVkaWNhZG8gYHZhbC1lbW9qaS1yYXRpbmdgLCBudW5jYSBlbCBmb3JtIGdlbsOpcmljby4gVmVyIEFEUi0wOTIuXG4gKi9cbmV4cG9ydCBjb25zdCBGSUVMRF9UWVBFX0VNT0pJX1JBVElORyA9ICdFTU9KSV9SQVRJTkcnO1xuXG4vKiogSWRlbnRpZmljYSBsYSBlbnRpZGFkIGRlIGRvbWluaW8gYSBsYSBxdWUgcGVydGVuZWNlIHVuIHRpcG8gZGUgc29saWNpdHVkXG4gKiAodW4gZXZlbnRvLCB1bmEgYWRvcGNpw7NuLCB1bmEgcmVjZXRhKS4gT3BjaW9uYWwg4oCUIGxhIG1heW9yw61hIGRlIGxvcyB0aXBvc1xuICogKHRpY2tldHMgZGUgc29wb3J0ZSwgcG9zdHVsYWNpb25lcykgbm8gbGEgbmVjZXNpdGFuIHBvcnF1ZSBlbCB0aXBvIFlBIGVzIGxhXG4gKiBlbnRpZGFkLiBNaXNtbyBzaGFwZSBxdWUgZWwgYEVudGl0eVJlZmAgZGUgZmVlZGJhY2svY2hhdCDigJQgbm8gc2UgaW1wb3J0YVxuICogbmluZ3VubyBkZSBlc29zIHBhcXVldGVzIHBhcmEgZXN0bzogZXMgdW4gc3RydWN0IGRlIDIgY2FtcG9zLCByZXBsaWNhcmxvIGVzXG4gKiBtw6FzIGJhcmF0byBxdWUgYWNvcGxhciBkb21pbmlvcyBkZSBuZWdvY2lvIHBvciB1biB0aXBvIHRyaXZpYWwuICovXG5leHBvcnQgaW50ZXJmYWNlIEVudGl0eVJlZiB7XG4gIGVudGl0eVR5cGU6IHN0cmluZztcbiAgZW50aXR5SWQ6IHN0cmluZztcbn1cblxuLyoqIFF1acOpbiBwdWVkZSBsZWVyIHVuIHRpcG8gZGUgc29saWNpdHVkICh5IHN1cyBzb2xpY2l0dWRlcyBww7pibGljYXMpLiAqL1xuZXhwb3J0IHR5cGUgUmVxdWVzdFZpc2liaWxpdHkgPSAnUFVCTElDJyB8ICdBVVRIRU5USUNBVEVEJyB8ICdPUkcnIHwgJ0lOVEVSTkFMJztcblxuZXhwb3J0IGludGVyZmFjZSBSZXF1ZXN0VHlwZUNvbmZpZyB7XG4gIHR5cGVJZDogc3RyaW5nO1xuICBhcHBJZDogc3RyaW5nO1xuICBvcmdJZDogc3RyaW5nO1xuICAvKiogTm9tYnJlIGRlbCB0aXBvLCBlc2NyaXRvIHBvciBsYSBvcmdhbml6YWNpw7NuOiBubyBzZSB0cmFkdWNlLiAqL1xuICBsYWJlbDogc3RyaW5nO1xuICAvKiogQmFqYWRhIGRlbCBlbnVuY2lhZG8gKGVqLiBlbmN1ZXN0YXMpLiBMYWJlbCB5YSBjdWJyZSBlbCB0w610dWxvLiAqL1xuICBzdWJ0aXRsZT86IHN0cmluZztcbiAgZW50aXR5UmVmPzogRW50aXR5UmVmO1xuICAvKipcbiAgICogdHJ1ZSA9IGNhZGEgZW52w61vIHNlIGFncmVnYSwgbm8gc2UgcmV2aXNhIHVubyBwb3IgdW5vIChlai4gZW5jdWVzdGFzKS5cbiAgICogZmFsc2UvdW5kZWZpbmVkIChkZWZhdWx0KSA9IGNvbXBvcnRhbWllbnRvIGhpc3TDs3JpY286IHNlIHJldmlzYSBjYWRhXG4gICAqIHNvbGljaXR1ZCAoQ2hlc2VkIGFkb3BjaW9uZXMsIE9raGVsaWEgcmVjZXRhcykuXG4gICAqL1xuICBza2lwUmV2aWV3PzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIHRydWUgPSBlbCBmb3JtdWxhcmlvIE5PIHBpZGUgbm9tYnJlIG5pIGNvcnJlbyBhIHF1aWVuIHJlc3BvbmRlIHNpbiBzZXNpw7NuLlxuICAgKiBTaSBoYWNlbiBmYWx0YSwgc2UgYWdyZWdhbiBjb21vIHByZWd1bnRhIOKAlCBlc28gZXMgY29uZmlndXJhY2nDs24gZGUgbGFcbiAgICogZW5jdWVzdGEsIG5vIHVuIHBlYWplIHF1ZSBlbCBmb3JtdWxhcmlvIGNvYnJhIHBvciBzdSBjdWVudGEuXG4gICAqL1xuICBza2lwU3VibWl0dGVySWRlbnRpdHk/OiBib29sZWFuO1xuICBmaWVsZFNjaGVtYTogRmllbGRTY2hlbWFEZWZbXTtcbiAgYWxsb3dBbm9ueW1vdXM6IGJvb2xlYW47XG4gIC8qKlxuICAgKiBRdWnDqW4gcHVlZGUgbGVlci9lbnZpYXIgZXN0ZSB0aXBvIChkZWJlIGNvaW5jaWRpciBjb24gZWwgYmFja2VuZCk6XG4gICAqICAtIFBVQkxJQyAgICAgICAgY3VhbHF1aWVyYSwgaW5jbHVzbyBzaW4gbG9naW4gKGFuw7NuaW1vIHNpIGFsbG93QW5vbnltb3VzKS5cbiAgICogIC0gQVVUSEVOVElDQVRFRCBjdWFscXVpZXIgdXN1YXJpbyBsb2d1ZWFkbyArIHZlcmlmaWNhZG8sIGNyb3NzLW9yZy5cbiAgICogIC0gT1JHL0lOVEVSTkFMICBzb2xvIG1pZW1icm9zIGRlIGxhIG9yZyBkdWXDsWEuIERlZmF1bHQgT1JHLlxuICAgKi9cbiAgdmlzaWJpbGl0eT86IFJlcXVlc3RWaXNpYmlsaXR5O1xuICBjcmVhdGVkQXQ6IHN0cmluZztcbiAgdXBkYXRlZEF0OiBzdHJpbmc7XG59XG5cbi8vIOKUgOKUgCBSZXF1ZXN0IC8gUmVzcG9uc2Ug4pSA4pSAXG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlUmVxdWVzdFBheWxvYWQge1xuICB0eXBlOiBzdHJpbmc7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIGZpZWxkcz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICB0YWdzPzogc3RyaW5nW107XG4gIHByaW9yaXR5Pzogc3RyaW5nO1xuICAvKiogUGFyYSBzb2xpY2l0dWRlcyBhbsOzbmltYXMgKi9cbiAgc3VibWl0dGVyPzogUmVxdWVzdEFjdG9yO1xuICAvKipcbiAgICogRWwgYD9pPWAgZGVsIGxpbmsgcXVlIGxlIGxsZWfDsyBwb3IgY29ycmVvIGEgcXVpZW4gcmVzcG9uZGUuIENvbiB0b2tlbiwgbGFcbiAgICogaW52aXRhY2nDs24gc2UgY29uc3VtZSB5IG5vIGFkbWl0ZSB1bmEgc2VndW5kYSByZXNwdWVzdGE7IHNpbiB0b2tlbiAoZWwgUVJcbiAgICogYWJpZXJ0byBkZSB1biBldmVudG8pIHNlIHJlc3BvbmRlIHNpbiBsw61taXRlLlxuICAgKi9cbiAgaW52aXRlVG9rZW4/OiBzdHJpbmc7XG4gIGR1ZUF0Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVwZGF0ZVJlcXVlc3RQYXlsb2FkIHtcbiAgdGl0bGU/OiBzdHJpbmc7XG4gIGZpZWxkcz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICB0YWdzPzogc3RyaW5nW107XG4gIHByaW9yaXR5Pzogc3RyaW5nO1xuICBhc3NpZ25lZT86IFJlcXVlc3RBY3RvcjtcbiAgZHVlQXQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHJhbnNpdGlvblBheWxvYWQge1xuICBzdGF0dXM6IFJlcXVlc3RTdGF0dXM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWRkQ29tbWVudFBheWxvYWQge1xuICBib2R5OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGlzdFJlcXVlc3RzUGFyYW1zIHtcbiAgdHlwZT86IHN0cmluZztcbiAgc3RhdHVzPzogc3RyaW5nO1xuICBsaW1pdD86IG51bWJlcjtcbiAgbmV4dFRva2VuPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExpc3RSZXF1ZXN0c1Jlc3BvbnNlIHtcbiAgcmVxdWVzdHM6IEFwcFJlcXVlc3RbXTtcbiAgbmV4dFRva2VuPzogc3RyaW5nO1xuICBjb3VudDogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExpc3RDb21tZW50c1Jlc3BvbnNlIHtcbiAgY29tbWVudHM6IFJlcXVlc3RDb21tZW50W107XG4gIGNvdW50OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGlzdFJlcXVlc3RUeXBlc1Jlc3BvbnNlIHtcbiAgdHlwZXM6IFJlcXVlc3RUeXBlQ29uZmlnW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlUmVxdWVzdFR5cGVQYXlsb2FkIHtcbiAgdHlwZUlkPzogc3RyaW5nOyAvLyBvcGNpb25hbDogYmFja2VuZCBnZW5lcmEgZGVzZGUgbGFiZWwgc2kgbm8gc2UgZW52w61hXG4gIC8qKiBOb21icmUgZGVsIHRpcG8sIGVzY3JpdG8gcG9yIGxhIG9yZ2FuaXphY2nDs246IG5vIHNlIHRyYWR1Y2UuICovXG4gIGxhYmVsOiBzdHJpbmc7XG4gIHN1YnRpdGxlPzogc3RyaW5nO1xuICBlbnRpdHlSZWY/OiBFbnRpdHlSZWY7XG4gIHNraXBSZXZpZXc/OiBib29sZWFuO1xuICAvKipcbiAgICogdHJ1ZSA9IGVsIGZvcm11bGFyaW8gTk8gcGlkZSBub21icmUgbmkgY29ycmVvIGEgcXVpZW4gcmVzcG9uZGUgc2luIHNlc2nDs24uXG4gICAqIFNpIGhhY2VuIGZhbHRhLCBzZSBhZ3JlZ2FuIGNvbW8gcHJlZ3VudGEg4oCUIGVzbyBlcyBjb25maWd1cmFjacOzbiBkZSBsYVxuICAgKiBlbmN1ZXN0YSwgbm8gdW4gcGVhamUgcXVlIGVsIGZvcm11bGFyaW8gY29icmEgcG9yIHN1IGN1ZW50YS5cbiAgICovXG4gIHNraXBTdWJtaXR0ZXJJZGVudGl0eT86IGJvb2xlYW47XG4gIGZpZWxkU2NoZW1hOiBGaWVsZFNjaGVtYURlZltdO1xuICBhbGxvd0Fub255bW91czogYm9vbGVhbjtcbiAgdmlzaWJpbGl0eT86IFJlcXVlc3RWaXNpYmlsaXR5O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVwZGF0ZVJlcXVlc3RUeXBlUGF5bG9hZCB7XG4gIC8qKiBOb21icmUgZGVsIHRpcG8sIGVzY3JpdG8gcG9yIGxhIG9yZ2FuaXphY2nDs246IG5vIHNlIHRyYWR1Y2UuICovXG4gIGxhYmVsOiBzdHJpbmc7XG4gIHN1YnRpdGxlPzogc3RyaW5nO1xuICBlbnRpdHlSZWY/OiBFbnRpdHlSZWY7XG4gIHNraXBSZXZpZXc/OiBib29sZWFuO1xuICAvKipcbiAgICogdHJ1ZSA9IGVsIGZvcm11bGFyaW8gTk8gcGlkZSBub21icmUgbmkgY29ycmVvIGEgcXVpZW4gcmVzcG9uZGUgc2luIHNlc2nDs24uXG4gICAqIFNpIGhhY2VuIGZhbHRhLCBzZSBhZ3JlZ2FuIGNvbW8gcHJlZ3VudGEg4oCUIGVzbyBlcyBjb25maWd1cmFjacOzbiBkZSBsYVxuICAgKiBlbmN1ZXN0YSwgbm8gdW4gcGVhamUgcXVlIGVsIGZvcm11bGFyaW8gY29icmEgcG9yIHN1IGN1ZW50YS5cbiAgICovXG4gIHNraXBTdWJtaXR0ZXJJZGVudGl0eT86IGJvb2xlYW47XG4gIGZpZWxkU2NoZW1hOiBGaWVsZFNjaGVtYURlZltdO1xuICBhbGxvd0Fub255bW91czogYm9vbGVhbjtcbiAgdmlzaWJpbGl0eT86IFJlcXVlc3RWaXNpYmlsaXR5O1xufVxuaW1wb3J0IHR5cGUge1xuICBGaWVsZE9wdGlvbiBhcyBGb3JtRmllbGRPcHRpb24sXG4gIEZpZWxkU2NoZW1hRGVmIGFzIEZvcm1GaWVsZFNjaGVtYURlZixcbn0gZnJvbSAnLi4vZm9ybXMvdHlwZXMnO1xuIl19
|
package/esm2022/lib/version.mjs
CHANGED
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
* Current version of valtech-components.
|
|
3
3
|
* This is automatically updated during the publish process.
|
|
4
4
|
*/
|
|
5
|
-
export const VERSION = '4.0.
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
5
|
+
export const VERSION = '4.0.988';
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDdXJyZW50IHZlcnNpb24gb2YgdmFsdGVjaC1jb21wb25lbnRzLlxuICogVGhpcyBpcyBhdXRvbWF0aWNhbGx5IHVwZGF0ZWQgZHVyaW5nIHRoZSBwdWJsaXNoIHByb2Nlc3MuXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzQuMC45ODgnO1xuIl19
|
|
@@ -70,7 +70,7 @@ import fixWebmDuration from 'fix-webm-duration';
|
|
|
70
70
|
* Current version of valtech-components.
|
|
71
71
|
* This is automatically updated during the publish process.
|
|
72
72
|
*/
|
|
73
|
-
const VERSION = '4.0.
|
|
73
|
+
const VERSION = '4.0.988';
|
|
74
74
|
|
|
75
75
|
function evaluateValtechAccess(rule, context, features = {}, visitedFeatures = new Set()) {
|
|
76
76
|
if (rule == null)
|
|
@@ -38687,6 +38687,8 @@ const SURVEY_RESPONSE_I18N = {
|
|
|
38687
38687
|
invalidEmail: 'Revisa el correo, parece incompleto',
|
|
38688
38688
|
required: 'Esta pregunta es obligatoria',
|
|
38689
38689
|
submit: 'Enviar',
|
|
38690
|
+
alreadyTitle: 'Ya respondiste esta encuesta',
|
|
38691
|
+
alreadyBody: 'Tu respuesta quedó registrada la primera vez. Gracias por tu tiempo.',
|
|
38690
38692
|
sentTitle: 'Gracias por responder',
|
|
38691
38693
|
sentBody: 'Tu respuesta quedó registrada.',
|
|
38692
38694
|
loadErrorTitle: 'No pudimos cargar la encuesta',
|
|
@@ -38705,6 +38707,8 @@ const SURVEY_RESPONSE_I18N = {
|
|
|
38705
38707
|
invalidEmail: 'Check the email, it looks incomplete',
|
|
38706
38708
|
required: 'This question is required',
|
|
38707
38709
|
submit: 'Submit',
|
|
38710
|
+
alreadyTitle: 'You already answered this survey',
|
|
38711
|
+
alreadyBody: 'Your response was recorded the first time. Thanks for your time.',
|
|
38708
38712
|
sentTitle: 'Thanks for answering',
|
|
38709
38713
|
sentBody: 'Your response was recorded.',
|
|
38710
38714
|
loadErrorTitle: "We couldn't load the survey",
|
|
@@ -38716,6 +38720,8 @@ const SURVEY_RESPONSE_I18N = {
|
|
|
38716
38720
|
};
|
|
38717
38721
|
|
|
38718
38722
|
const NAMESPACE$3 = 'SurveyResponse';
|
|
38723
|
+
/** Code del backend cuando la invitación de esa persona ya se respondió. */
|
|
38724
|
+
const INVITE_USED_CODE = 'SURVEY_INVITE_ALREADY_USED';
|
|
38719
38725
|
/** Tipos cuya respuesta es un booleano, no un texto. */
|
|
38720
38726
|
const BOOLEAN_TYPES = ['CHECK', 'TOGGLE'];
|
|
38721
38727
|
/**
|
|
@@ -38754,6 +38760,7 @@ class SurveyResponseComponent {
|
|
|
38754
38760
|
this.sending = signal(false);
|
|
38755
38761
|
this.typeConfig = signal(null);
|
|
38756
38762
|
this.multiSelectError = signal(false);
|
|
38763
|
+
this.alreadyAnswered = signal(false);
|
|
38757
38764
|
this.nameControl = new FormControl('', { nonNullable: true });
|
|
38758
38765
|
this.emailControl = new FormControl('', { nonNullable: true });
|
|
38759
38766
|
this.form = new FormGroup({});
|
|
@@ -38775,6 +38782,10 @@ class SurveyResponseComponent {
|
|
|
38775
38782
|
return !!this.typeConfig()?.allowAnonymous;
|
|
38776
38783
|
});
|
|
38777
38784
|
this.submitState = computed(() => (this.sending() ? 'WORKING' : 'ENABLED'));
|
|
38785
|
+
this.alreadyAnsweredState = computed(() => {
|
|
38786
|
+
this.i18n.lang();
|
|
38787
|
+
return { variant: 'empty', title: this.t('alreadyTitle'), description: this.t('alreadyBody') };
|
|
38788
|
+
});
|
|
38778
38789
|
this.sentState = computed(() => {
|
|
38779
38790
|
this.i18n.lang();
|
|
38780
38791
|
return { variant: 'empty', title: this.t('sentTitle'), description: this.t('sentBody') };
|
|
@@ -38952,6 +38963,7 @@ class SurveyResponseComponent {
|
|
|
38952
38963
|
type: cfg.typeId,
|
|
38953
38964
|
title: cfg.label,
|
|
38954
38965
|
fields,
|
|
38966
|
+
...(this.props.inviteToken ? { inviteToken: this.props.inviteToken } : {}),
|
|
38955
38967
|
...(this.needsIdentity()
|
|
38956
38968
|
? { submitter: { name: this.nameControl.value.trim(), email: this.emailControl.value.trim() } }
|
|
38957
38969
|
: {}),
|
|
@@ -38967,6 +38979,13 @@ class SurveyResponseComponent {
|
|
|
38967
38979
|
}
|
|
38968
38980
|
catch (err) {
|
|
38969
38981
|
this.sending.set(false);
|
|
38982
|
+
// Una invitación ya usada no es un fallo: es la respuesta correcta al
|
|
38983
|
+
// segundo intento. Un toast rojo de "no pudimos enviar" haría creer que
|
|
38984
|
+
// se perdió lo que ya se había respondido.
|
|
38985
|
+
if (interpretError(err).code === INVITE_USED_CODE) {
|
|
38986
|
+
this.alreadyAnswered.set(true);
|
|
38987
|
+
return;
|
|
38988
|
+
}
|
|
38970
38989
|
this.errors.handle(err, {
|
|
38971
38990
|
context: 'surveyResponse.submit',
|
|
38972
38991
|
fallbackKey: 'sendError',
|
|
@@ -38983,6 +39002,8 @@ class SurveyResponseComponent {
|
|
|
38983
39002
|
<div class="survey-response__loading" aria-hidden="true"></div>
|
|
38984
39003
|
} @else if (loadError()) {
|
|
38985
39004
|
<val-empty-state [props]="loadErrorState()" />
|
|
39005
|
+
} @else if (alreadyAnswered()) {
|
|
39006
|
+
<val-empty-state [props]="alreadyAnsweredState()" />
|
|
38986
39007
|
} @else if (sent()) {
|
|
38987
39008
|
<val-empty-state [props]="sentState()" />
|
|
38988
39009
|
} @else {
|
|
@@ -39150,6 +39171,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
39150
39171
|
<div class="survey-response__loading" aria-hidden="true"></div>
|
|
39151
39172
|
} @else if (loadError()) {
|
|
39152
39173
|
<val-empty-state [props]="loadErrorState()" />
|
|
39174
|
+
} @else if (alreadyAnswered()) {
|
|
39175
|
+
<val-empty-state [props]="alreadyAnsweredState()" />
|
|
39153
39176
|
} @else if (sent()) {
|
|
39154
39177
|
<val-empty-state [props]="sentState()" />
|
|
39155
39178
|
} @else {
|
|
@@ -39954,13 +39977,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
39954
39977
|
* `FILE`/`ATTACHMENT` quedan deliberadamente fuera: una encuesta es pública y
|
|
39955
39978
|
* anónima por default, y aceptar subidas ahí es superficie de abuso sin un caso
|
|
39956
39979
|
* de uso que lo pida.
|
|
39980
|
+
*
|
|
39981
|
+
* `CHECK` también quedó fuera, por otro motivo: para quien responde era la misma
|
|
39982
|
+
* pregunta que `TOGGLE`. Dos formas de escribir "sí o no" no le daban una opción
|
|
39983
|
+
* a quien arma la encuesta, le daban una duda. El renderer y la agregación
|
|
39984
|
+
* siguen entendiendo `CHECK` — una encuesta vieja que lo tenga se responde y se
|
|
39985
|
+
* cuenta igual.
|
|
39957
39986
|
*/
|
|
39958
39987
|
const SURVEY_QUESTION_TYPES = [
|
|
39959
39988
|
'EMOJI_RATING',
|
|
39960
39989
|
'SELECT',
|
|
39961
39990
|
'RADIO',
|
|
39962
39991
|
'MULTI_SELECT',
|
|
39963
|
-
'CHECK',
|
|
39964
39992
|
'TOGGLE',
|
|
39965
39993
|
'TEXT',
|
|
39966
39994
|
'TEXTAREA',
|