valtech-components 2.0.557 → 2.0.559
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/login/login.component.mjs +353 -306
- package/esm2022/lib/components/organisms/login/types.mjs +2 -1
- package/esm2022/lib/services/i18n/default-content.mjs +165 -1
- package/esm2022/lib/services/i18n/index.mjs +3 -1
- package/esm2022/lib/services/i18n/input-i18n.helper.mjs +93 -0
- package/fesm2022/valtech-components.mjs +607 -306
- package/fesm2022/valtech-components.mjs.map +1 -1
- package/lib/components/organisms/login/login.component.d.ts +32 -17
- package/lib/components/organisms/login/types.d.ts +2 -0
- package/lib/services/i18n/index.d.ts +1 -0
- package/lib/services/i18n/input-i18n.helper.d.ts +69 -0
- package/package.json +1 -1
|
@@ -6,5 +6,6 @@ export const LOGIN_DEFAULTS = {
|
|
|
6
6
|
oauthProviders: ['google'],
|
|
7
7
|
showRegister: true,
|
|
8
8
|
showForgotPassword: true,
|
|
9
|
+
showCard: false,
|
|
9
10
|
};
|
|
10
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2xvZ2luL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQStFQTs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBMEU7SUFDbkcsU0FBUyxFQUFFLElBQUk7SUFDZixjQUFjLEVBQUUsQ0FBQyxRQUFRLENBQUM7SUFDMUIsWUFBWSxFQUFFLElBQUk7SUFDbEIsa0JBQWtCLEVBQUUsSUFBSTtJQUN4QixRQUFRLEVBQUUsS0FBSztDQUNoQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW1hZ2VNZXRhZGF0YSB9IGZyb20gJy4uLy4uL2F0b21zL2ltYWdlL3R5cGVzJztcbmltcG9ydCB7IE9BdXRoUHJvdmlkZXIgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9hdXRoL3R5cGVzJztcbmltcG9ydCB7IEF1dGhVc2VyIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYXV0aC90eXBlcyc7XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBmb3IgbGVnYWwgbm90aWNlIGRpc3BsYXllZCBpbiB0aGUgbG9naW4gY29tcG9uZW50XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTG9naW5MZWdhbENvbmZpZyB7XG4gIC8qKiBDb21wYW55IG5hbWUgdG8gZGlzcGxheSAqL1xuICBjb21wYW55TmFtZTogc3RyaW5nO1xuICAvKiogTGluayBmb3IgY29tcGFueSBuYW1lIChvcHRpb25hbCkgKi9cbiAgY29tcGFueUxpbms/OiBzdHJpbmc7XG4gIC8qKiBMaW5rIHRvIHRlcm1zIGFuZCBjb25kaXRpb25zIHBhZ2UgKi9cbiAgdGVybXNMaW5rPzogc3RyaW5nO1xuICAvKiogTGluayB0byBwcml2YWN5IHBvbGljeSBwYWdlICovXG4gIHByaXZhY3lMaW5rPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIE1haW4gY29uZmlndXJhdGlvbiBmb3IgdGhlIExvZ2luIGNvbXBvbmVudFxuICovXG5leHBvcnQgaW50ZXJmYWNlIExvZ2luTWV0YWRhdGEge1xuICAvKiogTG9nbyB0byBkaXNwbGF5IGF0IHRoZSB0b3Agb2YgdGhlIGZvcm0gKi9cbiAgbG9nbz86IEltYWdlTWV0YWRhdGE7XG5cbiAgLyoqIFNob3cgT0F1dGggbG9naW4gYnV0dG9ucyAoZGVmYXVsdDogdHJ1ZSkgKi9cbiAgc2hvd09BdXRoPzogYm9vbGVhbjtcblxuICAvKiogT0F1dGggcHJvdmlkZXJzIHRvIHNob3cgKGRlZmF1bHQ6IFsnZ29vZ2xlJ10pICovXG4gIG9hdXRoUHJvdmlkZXJzPzogT0F1dGhQcm92aWRlcltdO1xuXG4gIC8qKiBTaG93IHJlZ2lzdGVyIGxpbmsgYW5kIG1vZGFsIChkZWZhdWx0OiB0cnVlKSAqL1xuICBzaG93UmVnaXN0ZXI/OiBib29sZWFuO1xuXG4gIC8qKiBTaG93IGZvcmdvdCBwYXNzd29yZCBsaW5rIGFuZCBtb2RhbCAoZGVmYXVsdDogdHJ1ZSkgKi9cbiAgc2hvd0ZvcmdvdFBhc3N3b3JkPzogYm9vbGVhbjtcblxuICAvKiogV3JhcCBjb21wb25lbnQgaW4gY2FyZC1zdHlsZSBjb250YWluZXIgd2l0aCBiYWNrZ3JvdW5kLCBzaGFkb3csIHJvdW5kZWQgY29ybmVycyAoZGVmYXVsdDogZmFsc2UpICovXG4gIHNob3dDYXJkPzogYm9vbGVhbjtcblxuICAvKiogTGVnYWwgbm90aWNlIGNvbmZpZ3VyYXRpb24gKi9cbiAgbGVnYWw/OiBMb2dpbkxlZ2FsQ29uZmlnO1xuXG4gIC8qKiBSb3V0ZSB0byByZWRpcmVjdCBhZnRlciBzdWNjZXNzZnVsIGxvZ2luIChvcHRpb25hbCAtIGlmIG5vdCBzZXQsIGVtaXRzIGV2ZW50KSAqL1xuICByZWRpcmVjdE9uU3VjY2Vzcz86IHN0cmluZztcbn1cblxuLyoqXG4gKiBFdmVudCBlbWl0dGVkIHdoZW4gbG9naW4gaXMgc3VjY2Vzc2Z1bFxuICovXG5leHBvcnQgaW50ZXJmYWNlIExvZ2luU3VjY2Vzc0V2ZW50IHtcbiAgLyoqIFRoZSBhdXRoZW50aWNhdGVkIHVzZXIgKi9cbiAgdXNlcjogQXV0aFVzZXIgfCBudWxsO1xuICAvKiogV2hldGhlciBNRkEgd2FzIHJlcXVpcmVkIGFuZCBjb21wbGV0ZWQgKi9cbiAgbWZhQ29tcGxldGVkPzogYm9vbGVhbjtcbiAgLyoqIFdoZXRoZXIgdGhpcyB3YXMgYW4gT0F1dGggbG9naW4gKi9cbiAgb2F1dGhQcm92aWRlcj86IE9BdXRoUHJvdmlkZXI7XG59XG5cbi8qKlxuICogRXZlbnQgZW1pdHRlZCB3aGVuIGxvZ2luIGZhaWxzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTG9naW5FcnJvckV2ZW50IHtcbiAgLyoqIEVycm9yIGNvZGUgZnJvbSB0aGUgYmFja2VuZCAqL1xuICBjb2RlPzogc3RyaW5nO1xuICAvKiogSHVtYW4tcmVhZGFibGUgZXJyb3IgbWVzc2FnZSAqL1xuICBtZXNzYWdlOiBzdHJpbmc7XG4gIC8qKiBUaGUgb3BlcmF0aW9uIHRoYXQgZmFpbGVkICovXG4gIG9wZXJhdGlvbjogJ3NpZ25pbicgfCAnc2lnbnVwJyB8ICd2ZXJpZnknIHwgJ2ZvcmdvdCcgfCAncmVzZXQnIHwgJ21mYScgfCAnb2F1dGgnO1xufVxuXG4vKipcbiAqIEV2ZW50IGVtaXR0ZWQgd2hlbiBNRkEgdmVyaWZpY2F0aW9uIGlzIHJlcXVpcmVkXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTUZBUmVxdWlyZWRFdmVudCB7XG4gIC8qKiBNRkEgbWV0aG9kIHJlcXVpcmVkICovXG4gIG1ldGhvZDogJ1RPVFAnIHwgJ0VNQUlMJyB8ICdTTVMnO1xufVxuXG4vKipcbiAqIERlZmF1bHQgdmFsdWVzIGZvciBMb2dpbk1ldGFkYXRhXG4gKi9cbmV4cG9ydCBjb25zdCBMT0dJTl9ERUZBVUxUUzogUmVxdWlyZWQ8T21pdDxMb2dpbk1ldGFkYXRhLCAnbG9nbycgfCAnbGVnYWwnIHwgJ3JlZGlyZWN0T25TdWNjZXNzJz4+ID0ge1xuICBzaG93T0F1dGg6IHRydWUsXG4gIG9hdXRoUHJvdmlkZXJzOiBbJ2dvb2dsZSddLFxuICBzaG93UmVnaXN0ZXI6IHRydWUsXG4gIHNob3dGb3Jnb3RQYXNzd29yZDogdHJ1ZSxcbiAgc2hvd0NhcmQ6IGZhbHNlLFxufTtcbiJdfQ==
|
|
@@ -309,5 +309,169 @@ export const VALTECH_DEFAULT_CONTENT = {
|
|
|
309
309
|
paymentFailed: 'Failed',
|
|
310
310
|
},
|
|
311
311
|
},
|
|
312
|
+
_auth: {
|
|
313
|
+
es: {
|
|
314
|
+
// Login
|
|
315
|
+
loginTitle: 'Iniciar sesión',
|
|
316
|
+
email: 'Correo electrónico',
|
|
317
|
+
emailPlaceholder: 'tu@email.com',
|
|
318
|
+
emailRequired: 'El correo es requerido',
|
|
319
|
+
emailInvalid: 'Ingresa un correo válido',
|
|
320
|
+
password: 'Contraseña',
|
|
321
|
+
passwordPlaceholder: '••••••••',
|
|
322
|
+
passwordRequired: 'La contraseña es requerida',
|
|
323
|
+
loginSubmit: 'Iniciar sesión',
|
|
324
|
+
// OAuth
|
|
325
|
+
orContinueWith: 'o continúa con',
|
|
326
|
+
continueWithGoogle: 'Continuar con Google',
|
|
327
|
+
continueWithApple: 'Continuar con Apple',
|
|
328
|
+
continueWithMicrosoft: 'Continuar con Microsoft',
|
|
329
|
+
connecting: 'Conectando...',
|
|
330
|
+
// Register
|
|
331
|
+
registerTitle: 'Crear cuenta',
|
|
332
|
+
fullName: 'Nombre completo',
|
|
333
|
+
namePlaceholder: 'Tu nombre',
|
|
334
|
+
nameRequired: 'El nombre es requerido',
|
|
335
|
+
nameMinLength: 'Mínimo 2 caracteres',
|
|
336
|
+
passwordMinLength: 'Mínimo 8 caracteres',
|
|
337
|
+
registerSubmit: 'Registrarse',
|
|
338
|
+
noAccount: '¿No tienes cuenta?',
|
|
339
|
+
register: 'Registrarse',
|
|
340
|
+
hasAccount: '¿Ya tienes cuenta?',
|
|
341
|
+
signIn: 'Iniciar sesión',
|
|
342
|
+
// Verify email
|
|
343
|
+
verifyTitle: 'Verificar correo',
|
|
344
|
+
verifyDescription: 'Ingresa el código de verificación enviado a tu correo.',
|
|
345
|
+
verifySubmit: 'Verificar',
|
|
346
|
+
codeRequired: 'El código es requerido',
|
|
347
|
+
codeMinLength: 'Ingresa los 6 dígitos',
|
|
348
|
+
noCodeReceived: '¿No has recibido tu código?',
|
|
349
|
+
resend: 'Reenviar',
|
|
350
|
+
resendIn: 'Reenviar en {seconds}s',
|
|
351
|
+
codeSent: 'Código reenviado. Revisa tu email.',
|
|
352
|
+
emailVerified: '¡Email verificado! Bienvenido.',
|
|
353
|
+
// MFA
|
|
354
|
+
mfaTitle: 'Verificación MFA',
|
|
355
|
+
mfaTOTP: 'Ingresa el código de tu app de autenticación',
|
|
356
|
+
mfaEmail: 'Ingresa el código enviado a tu correo',
|
|
357
|
+
mfaSMS: 'Ingresa el código enviado a tu teléfono',
|
|
358
|
+
// Forgot/Reset password
|
|
359
|
+
forgotTitle: 'Recuperar contraseña',
|
|
360
|
+
forgotDescription: 'Ingresa tu correo electrónico y te enviaremos un código.',
|
|
361
|
+
forgotSubmit: 'Enviar código',
|
|
362
|
+
forgotLink: '¿Olvidaste tu contraseña?',
|
|
363
|
+
recoverPassword: 'Recuperar contraseña',
|
|
364
|
+
resetTitle: 'Restablecer contraseña',
|
|
365
|
+
resetDescription: 'Hemos enviado un código de verificación a tu correo.',
|
|
366
|
+
newPassword: 'Nueva contraseña',
|
|
367
|
+
newPasswordHint: 'Mínimo 8 caracteres',
|
|
368
|
+
resetSubmit: 'Cambiar contraseña',
|
|
369
|
+
passwordUpdated: '¡Contraseña actualizada! Ya puedes iniciar sesión.',
|
|
370
|
+
// Legal
|
|
371
|
+
legalPrefix: 'Utilizamos los servicios de',
|
|
372
|
+
legalSuffix: 'para ofrecerte una experiencia segura. Al iniciar sesión, aceptas nuestros',
|
|
373
|
+
termsAndConditions: 'Términos y Condiciones',
|
|
374
|
+
and: 'y',
|
|
375
|
+
privacyPolicy: 'Política de Privacidad',
|
|
376
|
+
// Toasts
|
|
377
|
+
welcome: '¡Bienvenido!',
|
|
378
|
+
completeAllFields: 'Completa todos los campos.',
|
|
379
|
+
enterEmail: 'Ingresa tu correo electrónico.',
|
|
380
|
+
// Errors (mapeados de códigos backend)
|
|
381
|
+
errorInvalidCredentials: 'Correo o contraseña incorrectos',
|
|
382
|
+
errorEmailNotVerified: 'Debes verificar tu correo electrónico',
|
|
383
|
+
errorAccountSuspended: 'Tu cuenta ha sido suspendida',
|
|
384
|
+
errorEmailExists: 'Este correo ya está registrado',
|
|
385
|
+
errorWeakPassword: 'La contraseña es muy débil',
|
|
386
|
+
errorInvalidCode: 'Código incorrecto',
|
|
387
|
+
errorExpiredCode: 'El código ha expirado. Solicita uno nuevo.',
|
|
388
|
+
errorTooManyAttempts: 'Demasiados intentos, intenta más tarde',
|
|
389
|
+
errorMFAInvalidCode: 'Código de verificación incorrecto',
|
|
390
|
+
errorPopupBlocked: 'Por favor, permite ventanas emergentes',
|
|
391
|
+
errorOAuthFailed: 'Error de autenticación',
|
|
392
|
+
errorGeneric: 'Ha ocurrido un error. Intenta de nuevo.',
|
|
393
|
+
},
|
|
394
|
+
en: {
|
|
395
|
+
// Login
|
|
396
|
+
loginTitle: 'Sign in',
|
|
397
|
+
email: 'Email',
|
|
398
|
+
emailPlaceholder: 'you@email.com',
|
|
399
|
+
emailRequired: 'Email is required',
|
|
400
|
+
emailInvalid: 'Enter a valid email',
|
|
401
|
+
password: 'Password',
|
|
402
|
+
passwordPlaceholder: '••••••••',
|
|
403
|
+
passwordRequired: 'Password is required',
|
|
404
|
+
loginSubmit: 'Sign in',
|
|
405
|
+
// OAuth
|
|
406
|
+
orContinueWith: 'or continue with',
|
|
407
|
+
continueWithGoogle: 'Continue with Google',
|
|
408
|
+
continueWithApple: 'Continue with Apple',
|
|
409
|
+
continueWithMicrosoft: 'Continue with Microsoft',
|
|
410
|
+
connecting: 'Connecting...',
|
|
411
|
+
// Register
|
|
412
|
+
registerTitle: 'Create account',
|
|
413
|
+
fullName: 'Full name',
|
|
414
|
+
namePlaceholder: 'Your name',
|
|
415
|
+
nameRequired: 'Name is required',
|
|
416
|
+
nameMinLength: 'Minimum 2 characters',
|
|
417
|
+
passwordMinLength: 'Minimum 8 characters',
|
|
418
|
+
registerSubmit: 'Sign up',
|
|
419
|
+
noAccount: "Don't have an account?",
|
|
420
|
+
register: 'Sign up',
|
|
421
|
+
hasAccount: 'Already have an account?',
|
|
422
|
+
signIn: 'Sign in',
|
|
423
|
+
// Verify email
|
|
424
|
+
verifyTitle: 'Verify email',
|
|
425
|
+
verifyDescription: 'Enter the verification code sent to your email.',
|
|
426
|
+
verifySubmit: 'Verify',
|
|
427
|
+
codeRequired: 'Code is required',
|
|
428
|
+
codeMinLength: 'Enter all 6 digits',
|
|
429
|
+
noCodeReceived: "Didn't receive your code?",
|
|
430
|
+
resend: 'Resend',
|
|
431
|
+
resendIn: 'Resend in {seconds}s',
|
|
432
|
+
codeSent: 'Code resent. Check your email.',
|
|
433
|
+
emailVerified: 'Email verified! Welcome.',
|
|
434
|
+
// MFA
|
|
435
|
+
mfaTitle: 'MFA Verification',
|
|
436
|
+
mfaTOTP: 'Enter the code from your authenticator app',
|
|
437
|
+
mfaEmail: 'Enter the code sent to your email',
|
|
438
|
+
mfaSMS: 'Enter the code sent to your phone',
|
|
439
|
+
// Forgot/Reset password
|
|
440
|
+
forgotTitle: 'Recover password',
|
|
441
|
+
forgotDescription: 'Enter your email and we will send you a code.',
|
|
442
|
+
forgotSubmit: 'Send code',
|
|
443
|
+
forgotLink: 'Forgot your password?',
|
|
444
|
+
recoverPassword: 'Recover password',
|
|
445
|
+
resetTitle: 'Reset password',
|
|
446
|
+
resetDescription: 'We have sent a verification code to your email.',
|
|
447
|
+
newPassword: 'New password',
|
|
448
|
+
newPasswordHint: 'Minimum 8 characters',
|
|
449
|
+
resetSubmit: 'Change password',
|
|
450
|
+
passwordUpdated: 'Password updated! You can now sign in.',
|
|
451
|
+
// Legal
|
|
452
|
+
legalPrefix: 'We use the services of',
|
|
453
|
+
legalSuffix: 'to offer you a secure experience. By signing in, you accept our',
|
|
454
|
+
termsAndConditions: 'Terms and Conditions',
|
|
455
|
+
and: 'and',
|
|
456
|
+
privacyPolicy: 'Privacy Policy',
|
|
457
|
+
// Toasts
|
|
458
|
+
welcome: 'Welcome!',
|
|
459
|
+
completeAllFields: 'Complete all fields.',
|
|
460
|
+
enterEmail: 'Enter your email.',
|
|
461
|
+
// Errors
|
|
462
|
+
errorInvalidCredentials: 'Incorrect email or password',
|
|
463
|
+
errorEmailNotVerified: 'You must verify your email',
|
|
464
|
+
errorAccountSuspended: 'Your account has been suspended',
|
|
465
|
+
errorEmailExists: 'This email is already registered',
|
|
466
|
+
errorWeakPassword: 'Password is too weak',
|
|
467
|
+
errorInvalidCode: 'Incorrect code',
|
|
468
|
+
errorExpiredCode: 'Code has expired. Request a new one.',
|
|
469
|
+
errorTooManyAttempts: 'Too many attempts, try again later',
|
|
470
|
+
errorMFAInvalidCode: 'Incorrect verification code',
|
|
471
|
+
errorPopupBlocked: 'Please allow pop-ups',
|
|
472
|
+
errorOAuthFailed: 'Authentication error',
|
|
473
|
+
errorGeneric: 'An error occurred. Please try again.',
|
|
474
|
+
},
|
|
475
|
+
},
|
|
312
476
|
};
|
|
313
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC1jb250ZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy9pMThuL2RlZmF1bHQtY29udGVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMkJHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQWlCO0lBQ25ELE9BQU8sRUFBRTtRQUNQLEVBQUUsRUFBRTtZQUNGLG1CQUFtQjtZQUNuQixNQUFNLEVBQUUsUUFBUTtZQUNoQixNQUFNLEVBQUUsVUFBVTtZQUNsQixJQUFJLEVBQUUsU0FBUztZQUNmLE1BQU0sRUFBRSxVQUFVO1lBQ2xCLElBQUksRUFBRSxRQUFRO1lBQ2QsS0FBSyxFQUFFLFFBQVE7WUFDZixJQUFJLEVBQUUsUUFBUTtZQUNkLElBQUksRUFBRSxXQUFXO1lBQ2pCLFFBQVEsRUFBRSxVQUFVO1lBQ3BCLE9BQU8sRUFBRSxhQUFhO1lBQ3RCLE1BQU0sRUFBRSxRQUFRO1lBQ2hCLFNBQVMsRUFBRSxXQUFXO1lBRXRCLFVBQVU7WUFDVixPQUFPLEVBQUUsT0FBTztZQUNoQixLQUFLLEVBQUUsT0FBTztZQUNkLE9BQU8sRUFBRSxhQUFhO1lBQ3RCLElBQUksRUFBRSxhQUFhO1lBRW5CLGlCQUFpQjtZQUNqQixhQUFhLEVBQUUsdUNBQXVDO1lBQ3RELGFBQWEsRUFBRSx1Q0FBdUM7WUFFdEQsbUJBQW1CO1lBQ25CLFNBQVMsRUFBRSw4QkFBOEI7WUFDekMsUUFBUSxFQUFFLHlCQUF5QjtZQUVuQyxhQUFhO1lBQ2IsSUFBSSxFQUFFLFFBQVE7WUFDZCxRQUFRLEVBQUUsZUFBZTtZQUN6QixPQUFPLEVBQUUsUUFBUTtZQUNqQixNQUFNLEVBQUUsZUFBZTtZQUV2QixVQUFVO1lBQ1YsZUFBZSxFQUFFLFNBQVM7WUFDMUIsZUFBZSxFQUFFLFNBQVM7WUFFMUIsZ0NBQWdDO1lBQ2hDLEVBQUUsRUFBRSxT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QU8sRUFBRSxVQUFVO1lBRW5CLGdCQUFnQjtZQUNoQixJQUFJLEVBQUUsTUFBTTtZQUNaLEVBQUUsRUFBRSxJQUFJO1lBRVIsVUFBVTtZQUNWLFFBQVEsRUFBRSxVQUFVO1lBQ3BCLFFBQVEsRUFBRSxVQUFVO1lBRXBCLE9BQU87WUFDUCxNQUFNLEVBQUUsUUFBUTtZQUNoQixhQUFhLEVBQUUsaUJBQWlCO1lBQ2hDLFdBQVcsRUFBRSxjQUFjO1lBQzNCLE1BQU0sRUFBRSxTQUFTO1lBRWpCLGlCQUFpQjtZQUNqQixjQUFjLEVBQUUsU0FBUztZQUN6QixpQkFBaUIsRUFBRSxZQUFZO1lBQy9CLFdBQVcsRUFBRSxNQUFNO1lBQ25CLGVBQWUsRUFBRSxVQUFVO1lBQzNCLGFBQWEsRUFBRSxRQUFRO1NBQ3hCO0tBQ0Y7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29udGVudFN0b3JlIH0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogVHJhZHVjY2lvbmVzIHBvciBkZWZlY3RvIGRlIHZhbHRlY2gtY29tcG9uZW50cy5cbiAqXG4gKiBFc3RhcyB0cmFkdWNjaW9uZXMgc2UgY2FyZ2FuIGF1dG9tw6F0aWNhbWVudGUgY3VhbmRvIHNlIHVzYSBwcm92aWRlVmFsdGVjaEkxOG4oKVxuICogc2luIG5lY2VzaWRhZCBkZSBjb25maWd1cmFjacOzbiBhZGljaW9uYWwuXG4gKlxuICogTGFzIGFwcHMgcHVlZGVuIHNvYnJlc2NyaWJpciBjdWFscXVpZXIga2V5IHBhc2FuZG8gc3UgcHJvcGlvIGNvbnRlbnQ6XG4gKlxuICogQGV4YW1wbGUgU29icmVzY3JpYmlyIHRyYWR1Y2Npb25lcyBlc3BlY8OtZmljYXNcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIHByb3ZpZGVWYWx0ZWNoSTE4bih7XG4gKiAgIGNvbnRlbnQ6IHtcbiAqICAgICBfZ2xvYmFsOiB7XG4gKiAgICAgICBlczogeyBzdWNjZXNzOiAnwqFMbyBoaWNpbW9zIScgfSwgIC8vIFNvYnJlc2NyaWJlIHNvbG8gZXN0YSBrZXlcbiAqICAgICAgIGVuOiB7IHN1Y2Nlc3M6ICdXZSBkaWQgaXQhJyB9LFxuICogICAgIH0sXG4gKiAgIH0sXG4gKiB9KVxuICogYGBgXG4gKlxuICogQGV4YW1wbGUgRGVzYWN0aXZhciB0cmFkdWNjaW9uZXMgcG9yIGRlZmVjdG9cbiAqIGBgYHR5cGVzY3JpcHRcbiAqIHByb3ZpZGVWYWx0ZWNoSTE4bih7XG4gKiAgIGluY2x1ZGVEZWZhdWx0Q29udGVudDogZmFsc2UsXG4gKiAgIGNvbnRlbnQ6IE1ZX0NVU1RPTV9DT05URU5ULFxuICogfSlcbiAqIGBgYFxuICovXG5leHBvcnQgY29uc3QgVkFMVEVDSF9ERUZBVUxUX0NPTlRFTlQ6IENvbnRlbnRTdG9yZSA9IHtcbiAgX2dsb2JhbDoge1xuICAgIGVzOiB7XG4gICAgICAvLyBBY2Npb25lcyBjb211bmVzXG4gICAgICBzdWJtaXQ6ICdFbnZpYXInLFxuICAgICAgY2FuY2VsOiAnQ2FuY2VsYXInLFxuICAgICAgc2F2ZTogJ0d1YXJkYXInLFxuICAgICAgZGVsZXRlOiAnRWxpbWluYXInLFxuICAgICAgZWRpdDogJ0VkaXRhcicsXG4gICAgICBjbG9zZTogJ0NlcnJhcicsXG4gICAgICBiYWNrOiAnVm9sdmVyJyxcbiAgICAgIG5leHQ6ICdTaWd1aWVudGUnLFxuICAgICAgcHJldmlvdXM6ICdBbnRlcmlvcicsXG4gICAgICBsb2FkaW5nOiAnQ2FyZ2FuZG8uLi4nLFxuICAgICAgc2VhcmNoOiAnQnVzY2FyJyxcbiAgICAgIGxlYXJuTW9yZTogJ1NhYmVyIG3DoXMnLFxuXG4gICAgICAvLyBFc3RhZG9zXG4gICAgICBzdWNjZXNzOiAnw4l4aXRvJyxcbiAgICAgIGVycm9yOiAnRXJyb3InLFxuICAgICAgd2FybmluZzogJ0FkdmVydGVuY2lhJyxcbiAgICAgIGluZm86ICdJbmZvcm1hY2nDs24nLFxuXG4gICAgICAvLyBDb25maXJtYWNpb25lc1xuICAgICAgY29uZmlybURlbGV0ZTogJ8K/RXN0w6FzIHNlZ3VybyBkZSBxdWUgZGVzZWFzIGVsaW1pbmFyPycsXG4gICAgICBjb25maXJtQ2FuY2VsOiAnwr9Fc3TDoXMgc2VndXJvIGRlIHF1ZSBkZXNlYXMgY2FuY2VsYXI/JyxcblxuICAgICAgLy8gTWVuc2FqZXMgY29tdW5lc1xuICAgICAgbm9SZXN1bHRzOiAnTm8gc2UgZW5jb250cmFyb24gcmVzdWx0YWRvcycsXG4gICAgICByZXF1aXJlZDogJ0VzdGUgY2FtcG8gZXMgcmVxdWVyaWRvJyxcblxuICAgICAgLy8gTmF2ZWdhY2nDs25cbiAgICAgIGhvbWU6ICdJbmljaW8nLFxuICAgICAgc2V0dGluZ3M6ICdDb25maWd1cmFjacOzbicsXG4gICAgICBwcm9maWxlOiAnUGVyZmlsJyxcbiAgICAgIGxvZ291dDogJ0NlcnJhciBzZXNpw7NuJyxcblxuICAgICAgLy8gSWRpb21hc1xuICAgICAgbGFuZ3VhZ2VOYW1lX2VzOiAnRXNwYcOxb2wnLFxuICAgICAgbGFuZ3VhZ2VOYW1lX2VuOiAnRW5nbGlzaCcsXG5cbiAgICAgIC8vIENvbXBvbmVudGVzIC0gTW9kYWxlcy9TZWxlY3RzXG4gICAgICBvazogJ0FjZXB0YXInLFxuICAgICAgc2VsZWN0T3B0aW9uOiAnU2VsZWNjaW9uYXIgb3BjacOzbicsXG4gICAgICBzZWxlY3RQbGFjZWhvbGRlcjogJ1NlbGVjY2lvbmFyLi4uJyxcbiAgICAgIGl0ZW1zU2VsZWN0ZWQ6ICdlbGVtZW50b3Mgc2VsZWNjaW9uYWRvcycsXG4gICAgICBzZWxlY3RBbGw6ICdTZWxlY2Npb25hciB0b2RvcycsXG4gICAgICBjbGVhcjogJ0xpbXBpYXInLFxuICAgICAgYXBwbHk6ICdBcGxpY2FyJyxcblxuICAgICAgLy8gQ29tcG9uZW50ZXMgLSBGZWNoYXNcbiAgICAgIHN0YXJ0RGF0ZTogJ0ZlY2hhIGluaWNpbycsXG4gICAgICBlbmREYXRlOiAnRmVjaGEgZmluJyxcbiAgICAgIGRheTogJ2TDrWEnLFxuICAgICAgZGF5czogJ2TDrWFzJyxcblxuICAgICAgLy8gQ29tcG9uZW50ZXMgLSBGb3JtdWxhcmlvc1xuICAgICAgdXBsb2FkRmlsZTogJ1N1YmlyIGFyY2hpdm8nLFxuICAgICAgbm9GaWxlU2VsZWN0ZWQ6ICdObyBoYXMgc2VsZWNjaW9uYWRvIGFyY2hpdm8nLFxuICAgICAgdGl0bGU6ICdUw610dWxvJyxcbiAgICAgIGRlc2NyaXB0aW9uOiAnRGVzY3JpcGNpw7NuJyxcbiAgICAgIGZlZWRiYWNrVHlwZTogJ1RpcG8gZGUgZmVlZGJhY2snLFxuICAgICAgZmVlZGJhY2tTdWNjZXNzOiAnRmVlZGJhY2sgZW52aWFkbyBleGl0b3NhbWVudGUnLFxuICAgICAgZmVlZGJhY2tFcnJvcjogJ0Vycm9yIGFsIGVudmlhciBlbCBmZWVkYmFjaycsXG4gICAgICB0aXRsZVBsYWNlaG9sZGVyOiAnRGVzY3JpYmUgYnJldmVtZW50ZS4uLicsXG4gICAgICB0aXRsZVZhbGlkYXRpb246ICdFbCB0w610dWxvIGRlYmUgdGVuZXIgZW50cmUgNSB5IDIwMCBjYXJhY3RlcmVzJyxcbiAgICAgIGRlc2NyaXB0aW9uUGxhY2Vob2xkZXI6ICdQcm9wb3JjaW9uYSBtw6FzIGRldGFsbGVzLi4uJyxcbiAgICAgIGRlc2NyaXB0aW9uVmFsaWRhdGlvbjogJ0xhIGRlc2NyaXBjacOzbiBkZWJlIHRlbmVyIGVudHJlIDEwIHkgNTAwMCBjYXJhY3RlcmVzJyxcblxuICAgICAgLy8gQ29tcG9uZW50ZXMgLSBCw7pzcXVlZGEvR3JpZFxuICAgICAgc2VhcmNoTnVtYmVyOiAnQnVzY2FyIG7Dum1lcm8uLi4nLFxuICAgICAgc2VsZWN0ZWQ6ICdzZWxlY2Npb25hZG8vcycsXG4gICAgICBtYXg6ICdtw6F4OicsXG5cbiAgICAgIC8vIENvbXBvbmVudGVzIC0gTGlzdGFzXG4gICAgICBsb2FkTW9yZUNvbW1lbnRzOiAnQ2FyZ2FyIG3DoXMgY29tZW50YXJpb3MnLFxuICAgICAgbm9EYXRhOiAnTm8gaGF5IGRhdG9zJyxcbiAgICAgIG5vUmVjb3Jkc0ZvdW5kOiAnTm8gc2UgZW5jb250cmFyb24gcmVnaXN0cm9zIHBhcmEgbW9zdHJhci4nLFxuXG4gICAgICAvLyBDb21wb25lbnRlcyAtIEFjY2lvbmVzXG4gICAgICBjb3BpZWRUb0NsaXBib2FyZDogJ8KhQ29waWFkbyBhbCBwb3J0YXBhcGVsZXMhJyxcbiAgICAgIGxhbmd1YWdlOiAnSWRpb21hJyxcbiAgICAgIHNlbGVjdExhbmd1YWdlOiAnU2VsZWNjaW9uYXIgaWRpb21hLi4uJyxcbiAgICAgIGRvd25sb2FkOiAnRGVzY2FyZ2FyJyxcbiAgICAgIGNvcHk6ICdDb3BpYXInLFxuICAgICAgc2hhcmU6ICdDb21wYXJ0aXInLFxuXG4gICAgICAvLyBDb21wb25lbnRlcyAtIERhdGEgVGFibGUgLyBQYWdpbmFjacOzblxuICAgICAgYWN0aW9uczogJ0FjY2lvbmVzJyxcbiAgICAgIHNob3dpbmc6ICdNb3N0cmFuZG8nLFxuICAgICAgb2Y6ICdkZScsXG4gICAgICBwZXJQYWdlOiAncG9yIHDDoWdpbmEnLFxuICAgICAgZmlyc3RQYWdlOiAnUHJpbWVyYSBww6FnaW5hJyxcbiAgICAgIHByZXZpb3VzUGFnZTogJ1DDoWdpbmEgYW50ZXJpb3InLFxuICAgICAgbmV4dFBhZ2U6ICdQw6FnaW5hIHNpZ3VpZW50ZScsXG4gICAgICBsYXN0UGFnZTogJ8OabHRpbWEgcMOhZ2luYScsXG5cbiAgICAgIC8vIENvbXBvbmVudGVzIC0gUGFydGljaXBhbnQgQ2FyZFxuICAgICAgd2lubmVyOiAnR2FuYWRvcicsXG4gICAgICB0aWNrZXQ6ICdib2xldG8nLFxuICAgICAgdGlja2V0czogJ2JvbGV0b3MnLFxuICAgICAgbW9yZTogJ23DoXMnLFxuICAgICAgbm90ZXM6ICdOb3RhczonLFxuXG4gICAgICAvLyBGb290ZXJcbiAgICAgIGFsbFJpZ2h0c1Jlc2VydmVkOiAnVG9kb3MgbG9zIGRlcmVjaG9zIHJlc2VydmFkb3MuJyxcblxuICAgICAgLy8gQ2xpcGJvYXJkXG4gICAgICBsaW5rQ29waWVkOiAnwqFFbmxhY2UgY29waWFkbyEnLFxuXG4gICAgICAvLyBTZWxlY3Rpb25cbiAgICAgIHNlbGVjdDogJ1NlbGVjY2lvbmFyJyxcbiAgICAgIHNlbGVjdE9wdGlvbnM6ICdTZWxlY2Npb25hciBvcGNpb25lcycsXG5cbiAgICAgIC8vIENvbW1lbnRzXG4gICAgICBwaW5uZWQ6ICdGaWphZG8nLFxuICAgICAgZWRpdGVkOiAnKGVkaXRhZG8pJyxcbiAgICAgIHNob3dDb21tZW50OiAnTW9zdHJhciBjb21lbnRhcmlvJyxcbiAgICAgIGhpZGVSZXBsaWVzOiAnT2N1bHRhciByZXNwdWVzdGFzJyxcbiAgICAgIGxvYWRNb3JlUmVwbGllczogJ0NhcmdhciBtw6FzIHJlc3B1ZXN0YXMnLFxuICAgICAgdmlld1JlcGxpZXM6ICdWZXIgcmVzcHVlc3RhcycsXG4gICAgICBjb21tZW50czogJ0NvbWVudGFyaW9zJyxcbiAgICAgIG5vQ29tbWVudHNZZXQ6ICdTaW4gY29tZW50YXJpb3MgYcO6bicsXG4gICAgICBwdWJsaXNoOiAnUHVibGljYXInLFxuICAgICAgc29ydEJ5OiAnT3JkZW5hciBwb3InLFxuICAgICAgd3JpdGVDb21tZW50OiAnRXNjcmliZSB1biBjb21lbnRhcmlvLi4uJyxcbiAgICAgIGJlRmlyc3RUb0NvbW1lbnQ6ICfCoVPDqSBlbCBwcmltZXJvIGVuIGNvbXBhcnRpciB0dSBvcGluacOzbiEnLFxuXG4gICAgICAvLyBUaW1lc3RhbXBzXG4gICAgICBqdXN0Tm93OiAnQWhvcmEgbWlzbW8nLFxuICAgICAgbWludXRlc0FnbzogJ2hhY2Uge21pbnV0ZXN9bScsXG4gICAgICBob3Vyc0FnbzogJ2hhY2Uge2hvdXJzfWgnLFxuICAgICAgZGF5c0FnbzogJ2hhY2Uge2RheXN9ZCcsXG5cbiAgICAgIC8vIExpc3RzXG4gICAgICBsb2FkTW9yZTogJ0NhcmdhciBtw6FzJyxcbiAgICAgIG5vTW9yZUl0ZW1zOiAnTm8gaGF5IG3DoXMgaXRlbXMnLFxuICAgICAgbG9hZGluZ0l0ZW1zOiAnQ2FyZ2FuZG8gaXRlbXMuLi4nLFxuICAgICAgYWxsSXRlbXNMb2FkZWQ6ICdUb2RvcyBsb3MgaXRlbXMgaGFuIHNpZG8gY2FyZ2Fkb3MnLFxuICAgICAgZXJyb3JPY2N1cnJlZDogJ09jdXJyacOzIHVuIGVycm9yJyxcbiAgICAgIHJldHJ5OiAnUmVpbnRlbnRhcicsXG5cbiAgICAgIC8vIE5hdmlnYXRpb25cbiAgICAgIHNlZU1vcmU6ICdWZXIgbcOhcycsXG5cbiAgICAgIC8vIEZvcm1zIC0gUmFuZ2VcbiAgICAgIGZyb206ICdJbmljaWFsJyxcbiAgICAgIHRvOiAnRmluYWwnLFxuXG4gICAgICAvLyBTdGVwcGVyXG4gICAgICBkZWNyZWFzZTogJ0Rpc21pbnVpcicsXG4gICAgICBpbmNyZWFzZTogJ0F1bWVudGFyJyxcblxuICAgICAgLy8gTWlzY1xuICAgICAgcmFuZG9tOiAnQWxlYXRvcmlvJyxcbiAgICAgIHB1bGxUb1JlZnJlc2g6ICdBcnJhc3RyYSBwYXJhIGFjdHVhbGl6YXInLFxuICAgICAgdGltZUV4cGlyZWQ6ICdUaWVtcG8gYWdvdGFkbycsXG4gICAgICBxckNvZGU6ICdDw7NkaWdvIFFSJyxcblxuICAgICAgLy8gUGF5bWVudCBzdGF0dXNcbiAgICAgIHBheW1lbnRQZW5kaW5nOiAnUGVuZGllbnRlJyxcbiAgICAgIHBheW1lbnRQcm9jZXNzaW5nOiAnUHJvY2VzYW5kbycsXG4gICAgICBwYXltZW50UGFpZDogJ1BhZ2FkbycsXG4gICAgICBwYXltZW50UmVmdW5kZWQ6ICdSZWVtYm9sc2FkbycsXG4gICAgICBwYXltZW50RmFpbGVkOiAnRmFsbGlkbycsXG4gICAgfSxcbiAgICBlbjoge1xuICAgICAgLy8gQ29tbW9uIGFjdGlvbnNcbiAgICAgIHN1Ym1pdDogJ1N1Ym1pdCcsXG4gICAgICBjYW5jZWw6ICdDYW5jZWwnLFxuICAgICAgc2F2ZTogJ1NhdmUnLFxuICAgICAgZGVsZXRlOiAnRGVsZXRlJyxcbiAgICAgIGVkaXQ6ICdFZGl0JyxcbiAgICAgIGNsb3NlOiAnQ2xvc2UnLFxuICAgICAgYmFjazogJ0JhY2snLFxuICAgICAgbmV4dDogJ05leHQnLFxuICAgICAgcHJldmlvdXM6ICdQcmV2aW91cycsXG4gICAgICBsb2FkaW5nOiAnTG9hZGluZy4uLicsXG4gICAgICBzZWFyY2g6ICdTZWFyY2gnLFxuICAgICAgbGVhcm5Nb3JlOiAnTGVhcm4gbW9yZScsXG5cbiAgICAgIC8vIFN0YXRlc1xuICAgICAgc3VjY2VzczogJ1N1Y2Nlc3MnLFxuICAgICAgZXJyb3I6ICdFcnJvcicsXG4gICAgICB3YXJuaW5nOiAnV2FybmluZycsXG4gICAgICBpbmZvOiAnSW5mb3JtYXRpb24nLFxuXG4gICAgICAvLyBDb25maXJtYXRpb25zXG4gICAgICBjb25maXJtRGVsZXRlOiAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZT8nLFxuICAgICAgY29uZmlybUNhbmNlbDogJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBjYW5jZWw/JyxcblxuICAgICAgLy8gQ29tbW9uIG1lc3NhZ2VzXG4gICAgICBub1Jlc3VsdHM6ICdObyByZXN1bHRzIGZvdW5kJyxcbiAgICAgIHJlcXVpcmVkOiAnVGhpcyBmaWVsZCBpcyByZXF1aXJlZCcsXG5cbiAgICAgIC8vIE5hdmlnYXRpb25cbiAgICAgIGhvbWU6ICdIb21lJyxcbiAgICAgIHNldHRpbmdzOiAnU2V0dGluZ3MnLFxuICAgICAgcHJvZmlsZTogJ1Byb2ZpbGUnLFxuICAgICAgbG9nb3V0OiAnTG9nIG91dCcsXG5cbiAgICAgIC8vIExhbmd1YWdlc1xuICAgICAgbGFuZ3VhZ2VOYW1lX2VzOiAnRXNwYcOxb2wnLFxuICAgICAgbGFuZ3VhZ2VOYW1lX2VuOiAnRW5nbGlzaCcsXG5cbiAgICAgIC8vIENvbXBvbmVudHMgLSBNb2RhbHMvU2VsZWN0c1xuICAgICAgb2s6ICdPSycsXG4gICAgICBzZWxlY3RPcHRpb246ICdTZWxlY3Qgb3B0aW9uJyxcbiAgICAgIHNlbGVjdFBsYWNlaG9sZGVyOiAnU2VsZWN0Li4uJyxcbiAgICAgIGl0ZW1zU2VsZWN0ZWQ6ICdpdGVtcyBzZWxlY3RlZCcsXG4gICAgICBzZWxlY3RBbGw6ICdTZWxlY3QgYWxsJyxcbiAgICAgIGNsZWFyOiAnQ2xlYXInLFxuICAgICAgYXBwbHk6ICdBcHBseScsXG5cbiAgICAgIC8vIENvbXBvbmVudHMgLSBEYXRlc1xuICAgICAgc3RhcnREYXRlOiAnU3RhcnQgZGF0ZScsXG4gICAgICBlbmREYXRlOiAnRW5kIGRhdGUnLFxuICAgICAgZGF5OiAnZGF5JyxcbiAgICAgIGRheXM6ICdkYXlzJyxcblxuICAgICAgLy8gQ29tcG9uZW50cyAtIEZvcm1zXG4gICAgICB1cGxvYWRGaWxlOiAnVXBsb2FkIGZpbGUnLFxuICAgICAgbm9GaWxlU2VsZWN0ZWQ6ICdObyBmaWxlIHNlbGVjdGVkJyxcbiAgICAgIHRpdGxlOiAnVGl0bGUnLFxuICAgICAgZGVzY3JpcHRpb246ICdEZXNjcmlwdGlvbicsXG4gICAgICBmZWVkYmFja1R5cGU6ICdGZWVkYmFjayB0eXBlJyxcbiAgICAgIGZlZWRiYWNrU3VjY2VzczogJ0ZlZWRiYWNrIHNlbnQgc3VjY2Vzc2Z1bGx5JyxcbiAgICAgIGZlZWRiYWNrRXJyb3I6ICdFcnJvciBzZW5kaW5nIGZlZWRiYWNrJyxcbiAgICAgIHRpdGxlUGxhY2Vob2xkZXI6ICdEZXNjcmliZSBicmllZmx5Li4uJyxcbiAgICAgIHRpdGxlVmFsaWRhdGlvbjogJ1RpdGxlIG11c3QgYmUgYmV0d2VlbiA1IGFuZCAyMDAgY2hhcmFjdGVycycsXG4gICAgICBkZXNjcmlwdGlvblBsYWNlaG9sZGVyOiAnUHJvdmlkZSBtb3JlIGRldGFpbHMuLi4nLFxuICAgICAgZGVzY3JpcHRpb25WYWxpZGF0aW9uOiAnRGVzY3JpcHRpb24gbXVzdCBiZSBiZXR3ZWVuIDEwIGFuZCA1MDAwIGNoYXJhY3RlcnMnLFxuXG4gICAgICAvLyBDb21wb25lbnRzIC0gU2VhcmNoL0dyaWRcbiAgICAgIHNlYXJjaE51bWJlcjogJ1NlYXJjaCBudW1iZXIuLi4nLFxuICAgICAgc2VsZWN0ZWQ6ICdzZWxlY3RlZCcsXG4gICAgICBtYXg6ICdtYXg6JyxcblxuICAgICAgLy8gQ29tcG9uZW50cyAtIExpc3RzXG4gICAgICBsb2FkTW9yZUNvbW1lbnRzOiAnTG9hZCBtb3JlIGNvbW1lbnRzJyxcbiAgICAgIG5vRGF0YTogJ05vIGRhdGEnLFxuICAgICAgbm9SZWNvcmRzRm91bmQ6ICdObyByZWNvcmRzIGZvdW5kIHRvIGRpc3BsYXkuJyxcblxuICAgICAgLy8gQ29tcG9uZW50cyAtIEFjdGlvbnNcbiAgICAgIGNvcGllZFRvQ2xpcGJvYXJkOiAnQ29waWVkIHRvIGNsaXBib2FyZCEnLFxuICAgICAgbGFuZ3VhZ2U6ICdMYW5ndWFnZScsXG4gICAgICBzZWxlY3RMYW5ndWFnZTogJ1NlbGVjdCBsYW5ndWFnZS4uLicsXG4gICAgICBkb3dubG9hZDogJ0Rvd25sb2FkJyxcbiAgICAgIGNvcHk6ICdDb3B5JyxcbiAgICAgIHNoYXJlOiAnU2hhcmUnLFxuXG4gICAgICAvLyBDb21wb25lbnRzIC0gRGF0YSBUYWJsZSAvIFBhZ2luYXRpb25cbiAgICAgIGFjdGlvbnM6ICdBY3Rpb25zJyxcbiAgICAgIHNob3dpbmc6ICdTaG93aW5nJyxcbiAgICAgIG9mOiAnb2YnLFxuICAgICAgcGVyUGFnZTogJ3BlciBwYWdlJyxcbiAgICAgIGZpcnN0UGFnZTogJ0ZpcnN0IHBhZ2UnLFxuICAgICAgcHJldmlvdXNQYWdlOiAnUHJldmlvdXMgcGFnZScsXG4gICAgICBuZXh0UGFnZTogJ05leHQgcGFnZScsXG4gICAgICBsYXN0UGFnZTogJ0xhc3QgcGFnZScsXG5cbiAgICAgIC8vIENvbXBvbmVudHMgLSBQYXJ0aWNpcGFudCBDYXJkXG4gICAgICB3aW5uZXI6ICdXaW5uZXInLFxuICAgICAgdGlja2V0OiAndGlja2V0JyxcbiAgICAgIHRpY2tldHM6ICd0aWNrZXRzJyxcbiAgICAgIG1vcmU6ICdtb3JlJyxcbiAgICAgIG5vdGVzOiAnTm90ZXM6JyxcblxuICAgICAgLy8gRm9vdGVyXG4gICAgICBhbGxSaWdodHNSZXNlcnZlZDogJ0FsbCByaWdodHMgcmVzZXJ2ZWQuJyxcblxuICAgICAgLy8gQ2xpcGJvYXJkXG4gICAgICBsaW5rQ29waWVkOiAnTGluayBjb3BpZWQhJyxcblxuICAgICAgLy8gU2VsZWN0aW9uXG4gICAgICBzZWxlY3Q6ICdTZWxlY3QnLFxuICAgICAgc2VsZWN0T3B0aW9uczogJ1NlbGVjdCBvcHRpb25zJyxcblxuICAgICAgLy8gQ29tbWVudHNcbiAgICAgIHBpbm5lZDogJ1Bpbm5lZCcsXG4gICAgICBlZGl0ZWQ6ICcoZWRpdGVkKScsXG4gICAgICBzaG93Q29tbWVudDogJ1Nob3cgY29tbWVudCcsXG4gICAgICBoaWRlUmVwbGllczogJ0hpZGUgcmVwbGllcycsXG4gICAgICBsb2FkTW9yZVJlcGxpZXM6ICdMb2FkIG1vcmUgcmVwbGllcycsXG4gICAgICB2aWV3UmVwbGllczogJ1ZpZXcgcmVwbGllcycsXG4gICAgICBjb21tZW50czogJ0NvbW1lbnRzJyxcbiAgICAgIG5vQ29tbWVudHNZZXQ6ICdObyBjb21tZW50cyB5ZXQnLFxuICAgICAgcHVibGlzaDogJ1B1Ymxpc2gnLFxuICAgICAgc29ydEJ5OiAnU29ydCBieScsXG4gICAgICB3cml0ZUNvbW1lbnQ6ICdXcml0ZSBhIGNvbW1lbnQuLi4nLFxuICAgICAgYmVGaXJzdFRvQ29tbWVudDogJ0JlIHRoZSBmaXJzdCB0byBzaGFyZSB5b3VyIHRob3VnaHRzIScsXG5cbiAgICAgIC8vIFRpbWVzdGFtcHNcbiAgICAgIGp1c3ROb3c6ICdKdXN0IG5vdycsXG4gICAgICBtaW51dGVzQWdvOiAne21pbnV0ZXN9bSBhZ28nLFxuICAgICAgaG91cnNBZ286ICd7aG91cnN9aCBhZ28nLFxuICAgICAgZGF5c0FnbzogJ3tkYXlzfWQgYWdvJyxcblxuICAgICAgLy8gTGlzdHNcbiAgICAgIGxvYWRNb3JlOiAnTG9hZCBtb3JlJyxcbiAgICAgIG5vTW9yZUl0ZW1zOiAnTm8gbW9yZSBpdGVtcycsXG4gICAgICBsb2FkaW5nSXRlbXM6ICdMb2FkaW5nIGl0ZW1zLi4uJyxcbiAgICAgIGFsbEl0ZW1zTG9hZGVkOiAnQWxsIGl0ZW1zIGxvYWRlZCcsXG4gICAgICBlcnJvck9jY3VycmVkOiAnQW4gZXJyb3Igb2NjdXJyZWQnLFxuICAgICAgcmV0cnk6ICdSZXRyeScsXG5cbiAgICAgIC8vIE5hdmlnYXRpb25cbiAgICAgIHNlZU1vcmU6ICdTZWUgbW9yZScsXG5cbiAgICAgIC8vIEZvcm1zIC0gUmFuZ2VcbiAgICAgIGZyb206ICdGcm9tJyxcbiAgICAgIHRvOiAnVG8nLFxuXG4gICAgICAvLyBTdGVwcGVyXG4gICAgICBkZWNyZWFzZTogJ0RlY3JlYXNlJyxcbiAgICAgIGluY3JlYXNlOiAnSW5jcmVhc2UnLFxuXG4gICAgICAvLyBNaXNjXG4gICAgICByYW5kb206ICdSYW5kb20nLFxuICAgICAgcHVsbFRvUmVmcmVzaDogJ1B1bGwgdG8gcmVmcmVzaCcsXG4gICAgICB0aW1lRXhwaXJlZDogJ1RpbWUgZXhwaXJlZCcsXG4gICAgICBxckNvZGU6ICdRUiBDb2RlJyxcblxuICAgICAgLy8gUGF5bWVudCBzdGF0dXNcbiAgICAgIHBheW1lbnRQZW5kaW5nOiAnUGVuZGluZycsXG4gICAgICBwYXltZW50UHJvY2Vzc2luZzogJ1Byb2Nlc3NpbmcnLFxuICAgICAgcGF5bWVudFBhaWQ6ICdQYWlkJyxcbiAgICAgIHBheW1lbnRSZWZ1bmRlZDogJ1JlZnVuZGVkJyxcbiAgICAgIHBheW1lbnRGYWlsZWQ6ICdGYWlsZWQnLFxuICAgIH0sXG4gIH0sXG59O1xuIl19
|
|
477
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC1jb250ZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy9pMThuL2RlZmF1bHQtY29udGVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMkJHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQWlCO0lBQ25ELE9BQU8sRUFBRTtRQUNQLEVBQUUsRUFBRTtZQUNGLG1CQUFtQjtZQUNuQixNQUFNLEVBQUUsUUFBUTtZQUNoQixNQUFNLEVBQUUsVUFBVTtZQUNsQixJQUFJLEVBQUUsU0FBUztZQUNmLE1BQU0sRUFBRSxVQUFVO1lBQ2xCLElBQUksRUFBRSxRQUFRO1lBQ2QsS0FBSyxFQUFFLFFBQVE7WUFDZixJQUFJLEVBQUUsUUFBUTtZQUNkLElBQUksRUFBRSxXQUFXO1lBQ2pCLFFBQVEsRUFBRSxVQUFVO1lBQ3BCLE9BQU8sRUFBRSxhQUFhO1lBQ3RCLE1BQU0sRUFBRSxRQUFRO1lBQ2hCLFNBQVMsRUFBRSxXQUFXO1lBRXRCLFVBQVU7WUFDVixPQUFPLEVBQUUsT0FBTztZQUNoQixLQUFLLEVBQUUsT0FBTztZQUNkLE9BQU8sRUFBRSxhQUFhO1lBQ3RCLElBQUksRUFBRSxhQUFhO1lBRW5CLGlCQUFpQjtZQUNqQixhQUFhLEVBQUUsdUNBQXVDO1lBQ3RELGFBQWEsRUFBRSx1Q0FBdUM7WUFFdEQsbUJBQW1CO1lBQ25CLFNBQVMsRUFBRSw4QkFBOEI7WUFDekMsUUFBUSxFQUFFLHlCQUF5QjtZQUVuQyxhQUFhO1lBQ2IsSUFBSSxFQUFFLFFBQVE7WUFDZCxRQUFRLEVBQUUsZUFBZTtZQUN6QixPQUFPLEVBQUUsUUFBUTtZQUNqQixNQUFNLEVBQUUsZUFBZTtZQUV2QixVQUFVO1lBQ1YsZUFBZSxFQUFFLFNBQVM7WUFDMUIsZUFBZSxFQUFFLFNBQVM7WUFFMUIsZ0NBQWdDO1lBQ2hDLEVBQUUsRUFBRSxT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QUFpQztZQUN4RCxnQkFBZ0IsRUFBRSxrQ0FBa0M7WUFDcEQsaUJBQWlCLEVBQUUsc0JBQXNCO1lBQ3pDLGdCQUFnQixFQUFFLGdCQUFnQjtZQUNsQyxnQkFBZ0IsRUFBRSxzQ0FBc0M7WUFDeEQsb0JBQW9CLEVBQUUsb0NBQW9DO1lBQzFELG1CQUFtQixFQUFFLDZCQUE2QjtZQUNsRCxpQkFBaUIsRUFBRSxzQkFBc0I7WUFDekMsZ0JBQWdCLEVBQUUsc0JBQXNCO1lBQ3hDLFlBQVksRUFBRSxzQ0FBc0M7U0FDckQ7S0FDRjtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb250ZW50U3RvcmUgfSBmcm9tICcuL3R5cGVzJztcblxuLyoqXG4gKiBUcmFkdWNjaW9uZXMgcG9yIGRlZmVjdG8gZGUgdmFsdGVjaC1jb21wb25lbnRzLlxuICpcbiAqIEVzdGFzIHRyYWR1Y2Npb25lcyBzZSBjYXJnYW4gYXV0b23DoXRpY2FtZW50ZSBjdWFuZG8gc2UgdXNhIHByb3ZpZGVWYWx0ZWNoSTE4bigpXG4gKiBzaW4gbmVjZXNpZGFkIGRlIGNvbmZpZ3VyYWNpw7NuIGFkaWNpb25hbC5cbiAqXG4gKiBMYXMgYXBwcyBwdWVkZW4gc29icmVzY3JpYmlyIGN1YWxxdWllciBrZXkgcGFzYW5kbyBzdSBwcm9waW8gY29udGVudDpcbiAqXG4gKiBAZXhhbXBsZSBTb2JyZXNjcmliaXIgdHJhZHVjY2lvbmVzIGVzcGVjw61maWNhc1xuICogYGBgdHlwZXNjcmlwdFxuICogcHJvdmlkZVZhbHRlY2hJMThuKHtcbiAqICAgY29udGVudDoge1xuICogICAgIF9nbG9iYWw6IHtcbiAqICAgICAgIGVzOiB7IHN1Y2Nlc3M6ICfCoUxvIGhpY2ltb3MhJyB9LCAgLy8gU29icmVzY3JpYmUgc29sbyBlc3RhIGtleVxuICogICAgICAgZW46IHsgc3VjY2VzczogJ1dlIGRpZCBpdCEnIH0sXG4gKiAgICAgfSxcbiAqICAgfSxcbiAqIH0pXG4gKiBgYGBcbiAqXG4gKiBAZXhhbXBsZSBEZXNhY3RpdmFyIHRyYWR1Y2Npb25lcyBwb3IgZGVmZWN0b1xuICogYGBgdHlwZXNjcmlwdFxuICogcHJvdmlkZVZhbHRlY2hJMThuKHtcbiAqICAgaW5jbHVkZURlZmF1bHRDb250ZW50OiBmYWxzZSxcbiAqICAgY29udGVudDogTVlfQ1VTVE9NX0NPTlRFTlQsXG4gKiB9KVxuICogYGBgXG4gKi9cbmV4cG9ydCBjb25zdCBWQUxURUNIX0RFRkFVTFRfQ09OVEVOVDogQ29udGVudFN0b3JlID0ge1xuICBfZ2xvYmFsOiB7XG4gICAgZXM6IHtcbiAgICAgIC8vIEFjY2lvbmVzIGNvbXVuZXNcbiAgICAgIHN1Ym1pdDogJ0VudmlhcicsXG4gICAgICBjYW5jZWw6ICdDYW5jZWxhcicsXG4gICAgICBzYXZlOiAnR3VhcmRhcicsXG4gICAgICBkZWxldGU6ICdFbGltaW5hcicsXG4gICAgICBlZGl0OiAnRWRpdGFyJyxcbiAgICAgIGNsb3NlOiAnQ2VycmFyJyxcbiAgICAgIGJhY2s6ICdWb2x2ZXInLFxuICAgICAgbmV4dDogJ1NpZ3VpZW50ZScsXG4gICAgICBwcmV2aW91czogJ0FudGVyaW9yJyxcbiAgICAgIGxvYWRpbmc6ICdDYXJnYW5kby4uLicsXG4gICAgICBzZWFyY2g6ICdCdXNjYXInLFxuICAgICAgbGVhcm5Nb3JlOiAnU2FiZXIgbcOhcycsXG5cbiAgICAgIC8vIEVzdGFkb3NcbiAgICAgIHN1Y2Nlc3M6ICfDiXhpdG8nLFxuICAgICAgZXJyb3I6ICdFcnJvcicsXG4gICAgICB3YXJuaW5nOiAnQWR2ZXJ0ZW5jaWEnLFxuICAgICAgaW5mbzogJ0luZm9ybWFjacOzbicsXG5cbiAgICAgIC8vIENvbmZpcm1hY2lvbmVzXG4gICAgICBjb25maXJtRGVsZXRlOiAnwr9Fc3TDoXMgc2VndXJvIGRlIHF1ZSBkZXNlYXMgZWxpbWluYXI/JyxcbiAgICAgIGNvbmZpcm1DYW5jZWw6ICfCv0VzdMOhcyBzZWd1cm8gZGUgcXVlIGRlc2VhcyBjYW5jZWxhcj8nLFxuXG4gICAgICAvLyBNZW5zYWplcyBjb211bmVzXG4gICAgICBub1Jlc3VsdHM6ICdObyBzZSBlbmNvbnRyYXJvbiByZXN1bHRhZG9zJyxcbiAgICAgIHJlcXVpcmVkOiAnRXN0ZSBjYW1wbyBlcyByZXF1ZXJpZG8nLFxuXG4gICAgICAvLyBOYXZlZ2FjacOzblxuICAgICAgaG9tZTogJ0luaWNpbycsXG4gICAgICBzZXR0aW5nczogJ0NvbmZpZ3VyYWNpw7NuJyxcbiAgICAgIHByb2ZpbGU6ICdQZXJmaWwnLFxuICAgICAgbG9nb3V0OiAnQ2VycmFyIHNlc2nDs24nLFxuXG4gICAgICAvLyBJZGlvbWFzXG4gICAgICBsYW5ndWFnZU5hbWVfZXM6ICdFc3Bhw7FvbCcsXG4gICAgICBsYW5ndWFnZU5hbWVfZW46ICdFbmdsaXNoJyxcblxuICAgICAgLy8gQ29tcG9uZW50ZXMgLSBNb2RhbGVzL1NlbGVjdHNcbiAgICAgIG9rOiAnQWNlcHRhcicsXG4gICAgICBzZWxlY3RPcHRpb246ICdTZWxlY2Npb25hciBvcGNpw7NuJyxcbiAgICAgIHNlbGVjdFBsYWNlaG9sZGVyOiAnU2VsZWNjaW9uYXIuLi4nLFxuICAgICAgaXRlbXNTZWxlY3RlZDogJ2VsZW1lbnRvcyBzZWxlY2Npb25hZG9zJyxcbiAgICAgIHNlbGVjdEFsbDogJ1NlbGVjY2lvbmFyIHRvZG9zJyxcbiAgICAgIGNsZWFyOiAnTGltcGlhcicsXG4gICAgICBhcHBseTogJ0FwbGljYXInLFxuXG4gICAgICAvLyBDb21wb25lbnRlcyAtIEZlY2hhc1xuICAgICAgc3RhcnREYXRlOiAnRmVjaGEgaW5pY2lvJyxcbiAgICAgIGVuZERhdGU6ICdGZWNoYSBmaW4nLFxuICAgICAgZGF5OiAnZMOtYScsXG4gICAgICBkYXlzOiAnZMOtYXMnLFxuXG4gICAgICAvLyBDb21wb25lbnRlcyAtIEZvcm11bGFyaW9zXG4gICAgICB1cGxvYWRGaWxlOiAnU3ViaXIgYXJjaGl2bycsXG4gICAgICBub0ZpbGVTZWxlY3RlZDogJ05vIGhhcyBzZWxlY2Npb25hZG8gYXJjaGl2bycsXG4gICAgICB0aXRsZTogJ1TDrXR1bG8nLFxuICAgICAgZGVzY3JpcHRpb246ICdEZXNjcmlwY2nDs24nLFxuICAgICAgZmVlZGJhY2tUeXBlOiAnVGlwbyBkZSBmZWVkYmFjaycsXG4gICAgICBmZWVkYmFja1N1Y2Nlc3M6ICdGZWVkYmFjayBlbnZpYWRvIGV4aXRvc2FtZW50ZScsXG4gICAgICBmZWVkYmFja0Vycm9yOiAnRXJyb3IgYWwgZW52aWFyIGVsIGZlZWRiYWNrJyxcbiAgICAgIHRpdGxlUGxhY2Vob2xkZXI6ICdEZXNjcmliZSBicmV2ZW1lbnRlLi4uJyxcbiAgICAgIHRpdGxlVmFsaWRhdGlvbjogJ0VsIHTDrXR1bG8gZGViZSB0ZW5lciBlbnRyZSA1IHkgMjAwIGNhcmFjdGVyZXMnLFxuICAgICAgZGVzY3JpcHRpb25QbGFjZWhvbGRlcjogJ1Byb3BvcmNpb25hIG3DoXMgZGV0YWxsZXMuLi4nLFxuICAgICAgZGVzY3JpcHRpb25WYWxpZGF0aW9uOiAnTGEgZGVzY3JpcGNpw7NuIGRlYmUgdGVuZXIgZW50cmUgMTAgeSA1MDAwIGNhcmFjdGVyZXMnLFxuXG4gICAgICAvLyBDb21wb25lbnRlcyAtIELDunNxdWVkYS9HcmlkXG4gICAgICBzZWFyY2hOdW1iZXI6ICdCdXNjYXIgbsO6bWVyby4uLicsXG4gICAgICBzZWxlY3RlZDogJ3NlbGVjY2lvbmFkby9zJyxcbiAgICAgIG1heDogJ23DoXg6JyxcblxuICAgICAgLy8gQ29tcG9uZW50ZXMgLSBMaXN0YXNcbiAgICAgIGxvYWRNb3JlQ29tbWVudHM6ICdDYXJnYXIgbcOhcyBjb21lbnRhcmlvcycsXG4gICAgICBub0RhdGE6ICdObyBoYXkgZGF0b3MnLFxuICAgICAgbm9SZWNvcmRzRm91bmQ6ICdObyBzZSBlbmNvbnRyYXJvbiByZWdpc3Ryb3MgcGFyYSBtb3N0cmFyLicsXG5cbiAgICAgIC8vIENvbXBvbmVudGVzIC0gQWNjaW9uZXNcbiAgICAgIGNvcGllZFRvQ2xpcGJvYXJkOiAnwqFDb3BpYWRvIGFsIHBvcnRhcGFwZWxlcyEnLFxuICAgICAgbGFuZ3VhZ2U6ICdJZGlvbWEnLFxuICAgICAgc2VsZWN0TGFuZ3VhZ2U6ICdTZWxlY2Npb25hciBpZGlvbWEuLi4nLFxuICAgICAgZG93bmxvYWQ6ICdEZXNjYXJnYXInLFxuICAgICAgY29weTogJ0NvcGlhcicsXG4gICAgICBzaGFyZTogJ0NvbXBhcnRpcicsXG5cbiAgICAgIC8vIENvbXBvbmVudGVzIC0gRGF0YSBUYWJsZSAvIFBhZ2luYWNpw7NuXG4gICAgICBhY3Rpb25zOiAnQWNjaW9uZXMnLFxuICAgICAgc2hvd2luZzogJ01vc3RyYW5kbycsXG4gICAgICBvZjogJ2RlJyxcbiAgICAgIHBlclBhZ2U6ICdwb3IgcMOhZ2luYScsXG4gICAgICBmaXJzdFBhZ2U6ICdQcmltZXJhIHDDoWdpbmEnLFxuICAgICAgcHJldmlvdXNQYWdlOiAnUMOhZ2luYSBhbnRlcmlvcicsXG4gICAgICBuZXh0UGFnZTogJ1DDoWdpbmEgc2lndWllbnRlJyxcbiAgICAgIGxhc3RQYWdlOiAnw5psdGltYSBww6FnaW5hJyxcblxuICAgICAgLy8gQ29tcG9uZW50ZXMgLSBQYXJ0aWNpcGFudCBDYXJkXG4gICAgICB3aW5uZXI6ICdHYW5hZG9yJyxcbiAgICAgIHRpY2tldDogJ2JvbGV0bycsXG4gICAgICB0aWNrZXRzOiAnYm9sZXRvcycsXG4gICAgICBtb3JlOiAnbcOhcycsXG4gICAgICBub3RlczogJ05vdGFzOicsXG5cbiAgICAgIC8vIEZvb3RlclxuICAgICAgYWxsUmlnaHRzUmVzZXJ2ZWQ6ICdUb2RvcyBsb3MgZGVyZWNob3MgcmVzZXJ2YWRvcy4nLFxuXG4gICAgICAvLyBDbGlwYm9hcmRcbiAgICAgIGxpbmtDb3BpZWQ6ICfCoUVubGFjZSBjb3BpYWRvIScsXG5cbiAgICAgIC8vIFNlbGVjdGlvblxuICAgICAgc2VsZWN0OiAnU2VsZWNjaW9uYXInLFxuICAgICAgc2VsZWN0T3B0aW9uczogJ1NlbGVjY2lvbmFyIG9wY2lvbmVzJyxcblxuICAgICAgLy8gQ29tbWVudHNcbiAgICAgIHBpbm5lZDogJ0ZpamFkbycsXG4gICAgICBlZGl0ZWQ6ICcoZWRpdGFkbyknLFxuICAgICAgc2hvd0NvbW1lbnQ6ICdNb3N0cmFyIGNvbWVudGFyaW8nLFxuICAgICAgaGlkZVJlcGxpZXM6ICdPY3VsdGFyIHJlc3B1ZXN0YXMnLFxuICAgICAgbG9hZE1vcmVSZXBsaWVzOiAnQ2FyZ2FyIG3DoXMgcmVzcHVlc3RhcycsXG4gICAgICB2aWV3UmVwbGllczogJ1ZlciByZXNwdWVzdGFzJyxcbiAgICAgIGNvbW1lbnRzOiAnQ29tZW50YXJpb3MnLFxuICAgICAgbm9Db21tZW50c1lldDogJ1NpbiBjb21lbnRhcmlvcyBhw7puJyxcbiAgICAgIHB1Ymxpc2g6ICdQdWJsaWNhcicsXG4gICAgICBzb3J0Qnk6ICdPcmRlbmFyIHBvcicsXG4gICAgICB3cml0ZUNvbW1lbnQ6ICdFc2NyaWJlIHVuIGNvbWVudGFyaW8uLi4nLFxuICAgICAgYmVGaXJzdFRvQ29tbWVudDogJ8KhU8OpIGVsIHByaW1lcm8gZW4gY29tcGFydGlyIHR1IG9waW5pw7NuIScsXG5cbiAgICAgIC8vIFRpbWVzdGFtcHNcbiAgICAgIGp1c3ROb3c6ICdBaG9yYSBtaXNtbycsXG4gICAgICBtaW51dGVzQWdvOiAnaGFjZSB7bWludXRlc31tJyxcbiAgICAgIGhvdXJzQWdvOiAnaGFjZSB7aG91cnN9aCcsXG4gICAgICBkYXlzQWdvOiAnaGFjZSB7ZGF5c31kJyxcblxuICAgICAgLy8gTGlzdHNcbiAgICAgIGxvYWRNb3JlOiAnQ2FyZ2FyIG3DoXMnLFxuICAgICAgbm9Nb3JlSXRlbXM6ICdObyBoYXkgbcOhcyBpdGVtcycsXG4gICAgICBsb2FkaW5nSXRlbXM6ICdDYXJnYW5kbyBpdGVtcy4uLicsXG4gICAgICBhbGxJdGVtc0xvYWRlZDogJ1RvZG9zIGxvcyBpdGVtcyBoYW4gc2lkbyBjYXJnYWRvcycsXG4gICAgICBlcnJvck9jY3VycmVkOiAnT2N1cnJpw7MgdW4gZXJyb3InLFxuICAgICAgcmV0cnk6ICdSZWludGVudGFyJyxcblxuICAgICAgLy8gTmF2aWdhdGlvblxuICAgICAgc2VlTW9yZTogJ1ZlciBtw6FzJyxcblxuICAgICAgLy8gRm9ybXMgLSBSYW5nZVxuICAgICAgZnJvbTogJ0luaWNpYWwnLFxuICAgICAgdG86ICdGaW5hbCcsXG5cbiAgICAgIC8vIFN0ZXBwZXJcbiAgICAgIGRlY3JlYXNlOiAnRGlzbWludWlyJyxcbiAgICAgIGluY3JlYXNlOiAnQXVtZW50YXInLFxuXG4gICAgICAvLyBNaXNjXG4gICAgICByYW5kb206ICdBbGVhdG9yaW8nLFxuICAgICAgcHVsbFRvUmVmcmVzaDogJ0FycmFzdHJhIHBhcmEgYWN0dWFsaXphcicsXG4gICAgICB0aW1lRXhwaXJlZDogJ1RpZW1wbyBhZ290YWRvJyxcbiAgICAgIHFyQ29kZTogJ0PDs2RpZ28gUVInLFxuXG4gICAgICAvLyBQYXltZW50IHN0YXR1c1xuICAgICAgcGF5bWVudFBlbmRpbmc6ICdQZW5kaWVudGUnLFxuICAgICAgcGF5bWVudFByb2Nlc3Npbmc6ICdQcm9jZXNhbmRvJyxcbiAgICAgIHBheW1lbnRQYWlkOiAnUGFnYWRvJyxcbiAgICAgIHBheW1lbnRSZWZ1bmRlZDogJ1JlZW1ib2xzYWRvJyxcbiAgICAgIHBheW1lbnRGYWlsZWQ6ICdGYWxsaWRvJyxcbiAgICB9LFxuICAgIGVuOiB7XG4gICAgICAvLyBDb21tb24gYWN0aW9uc1xuICAgICAgc3VibWl0OiAnU3VibWl0JyxcbiAgICAgIGNhbmNlbDogJ0NhbmNlbCcsXG4gICAgICBzYXZlOiAnU2F2ZScsXG4gICAgICBkZWxldGU6ICdEZWxldGUnLFxuICAgICAgZWRpdDogJ0VkaXQnLFxuICAgICAgY2xvc2U6ICdDbG9zZScsXG4gICAgICBiYWNrOiAnQmFjaycsXG4gICAgICBuZXh0OiAnTmV4dCcsXG4gICAgICBwcmV2aW91czogJ1ByZXZpb3VzJyxcbiAgICAgIGxvYWRpbmc6ICdMb2FkaW5nLi4uJyxcbiAgICAgIHNlYXJjaDogJ1NlYXJjaCcsXG4gICAgICBsZWFybk1vcmU6ICdMZWFybiBtb3JlJyxcblxuICAgICAgLy8gU3RhdGVzXG4gICAgICBzdWNjZXNzOiAnU3VjY2VzcycsXG4gICAgICBlcnJvcjogJ0Vycm9yJyxcbiAgICAgIHdhcm5pbmc6ICdXYXJuaW5nJyxcbiAgICAgIGluZm86ICdJbmZvcm1hdGlvbicsXG5cbiAgICAgIC8vIENvbmZpcm1hdGlvbnNcbiAgICAgIGNvbmZpcm1EZWxldGU6ICdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlPycsXG4gICAgICBjb25maXJtQ2FuY2VsOiAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGNhbmNlbD8nLFxuXG4gICAgICAvLyBDb21tb24gbWVzc2FnZXNcbiAgICAgIG5vUmVzdWx0czogJ05vIHJlc3VsdHMgZm91bmQnLFxuICAgICAgcmVxdWlyZWQ6ICdUaGlzIGZpZWxkIGlzIHJlcXVpcmVkJyxcblxuICAgICAgLy8gTmF2aWdhdGlvblxuICAgICAgaG9tZTogJ0hvbWUnLFxuICAgICAgc2V0dGluZ3M6ICdTZXR0aW5ncycsXG4gICAgICBwcm9maWxlOiAnUHJvZmlsZScsXG4gICAgICBsb2dvdXQ6ICdMb2cgb3V0JyxcblxuICAgICAgLy8gTGFuZ3VhZ2VzXG4gICAgICBsYW5ndWFnZU5hbWVfZXM6ICdFc3Bhw7FvbCcsXG4gICAgICBsYW5ndWFnZU5hbWVfZW46ICdFbmdsaXNoJyxcblxuICAgICAgLy8gQ29tcG9uZW50cyAtIE1vZGFscy9TZWxlY3RzXG4gICAgICBvazogJ09LJyxcbiAgICAgIHNlbGVjdE9wdGlvbjogJ1NlbGVjdCBvcHRpb24nLFxuICAgICAgc2VsZWN0UGxhY2Vob2xkZXI6ICdTZWxlY3QuLi4nLFxuICAgICAgaXRlbXNTZWxlY3RlZDogJ2l0ZW1zIHNlbGVjdGVkJyxcbiAgICAgIHNlbGVjdEFsbDogJ1NlbGVjdCBhbGwnLFxuICAgICAgY2xlYXI6ICdDbGVhcicsXG4gICAgICBhcHBseTogJ0FwcGx5JyxcblxuICAgICAgLy8gQ29tcG9uZW50cyAtIERhdGVzXG4gICAgICBzdGFydERhdGU6ICdTdGFydCBkYXRlJyxcbiAgICAgIGVuZERhdGU6ICdFbmQgZGF0ZScsXG4gICAgICBkYXk6ICdkYXknLFxuICAgICAgZGF5czogJ2RheXMnLFxuXG4gICAgICAvLyBDb21wb25lbnRzIC0gRm9ybXNcbiAgICAgIHVwbG9hZEZpbGU6ICdVcGxvYWQgZmlsZScsXG4gICAgICBub0ZpbGVTZWxlY3RlZDogJ05vIGZpbGUgc2VsZWN0ZWQnLFxuICAgICAgdGl0bGU6ICdUaXRsZScsXG4gICAgICBkZXNjcmlwdGlvbjogJ0Rlc2NyaXB0aW9uJyxcbiAgICAgIGZlZWRiYWNrVHlwZTogJ0ZlZWRiYWNrIHR5cGUnLFxuICAgICAgZmVlZGJhY2tTdWNjZXNzOiAnRmVlZGJhY2sgc2VudCBzdWNjZXNzZnVsbHknLFxuICAgICAgZmVlZGJhY2tFcnJvcjogJ0Vycm9yIHNlbmRpbmcgZmVlZGJhY2snLFxuICAgICAgdGl0bGVQbGFjZWhvbGRlcjogJ0Rlc2NyaWJlIGJyaWVmbHkuLi4nLFxuICAgICAgdGl0bGVWYWxpZGF0aW9uOiAnVGl0bGUgbXVzdCBiZSBiZXR3ZWVuIDUgYW5kIDIwMCBjaGFyYWN0ZXJzJyxcbiAgICAgIGRlc2NyaXB0aW9uUGxhY2Vob2xkZXI6ICdQcm92aWRlIG1vcmUgZGV0YWlscy4uLicsXG4gICAgICBkZXNjcmlwdGlvblZhbGlkYXRpb246ICdEZXNjcmlwdGlvbiBtdXN0IGJlIGJldHdlZW4gMTAgYW5kIDUwMDAgY2hhcmFjdGVycycsXG5cbiAgICAgIC8vIENvbXBvbmVudHMgLSBTZWFyY2gvR3JpZFxuICAgICAgc2VhcmNoTnVtYmVyOiAnU2VhcmNoIG51bWJlci4uLicsXG4gICAgICBzZWxlY3RlZDogJ3NlbGVjdGVkJyxcbiAgICAgIG1heDogJ21heDonLFxuXG4gICAgICAvLyBDb21wb25lbnRzIC0gTGlzdHNcbiAgICAgIGxvYWRNb3JlQ29tbWVudHM6ICdMb2FkIG1vcmUgY29tbWVudHMnLFxuICAgICAgbm9EYXRhOiAnTm8gZGF0YScsXG4gICAgICBub1JlY29yZHNGb3VuZDogJ05vIHJlY29yZHMgZm91bmQgdG8gZGlzcGxheS4nLFxuXG4gICAgICAvLyBDb21wb25lbnRzIC0gQWN0aW9uc1xuICAgICAgY29waWVkVG9DbGlwYm9hcmQ6ICdDb3BpZWQgdG8gY2xpcGJvYXJkIScsXG4gICAgICBsYW5ndWFnZTogJ0xhbmd1YWdlJyxcbiAgICAgIHNlbGVjdExhbmd1YWdlOiAnU2VsZWN0IGxhbmd1YWdlLi4uJyxcbiAgICAgIGRvd25sb2FkOiAnRG93bmxvYWQnLFxuICAgICAgY29weTogJ0NvcHknLFxuICAgICAgc2hhcmU6ICdTaGFyZScsXG5cbiAgICAgIC8vIENvbXBvbmVudHMgLSBEYXRhIFRhYmxlIC8gUGFnaW5hdGlvblxuICAgICAgYWN0aW9uczogJ0FjdGlvbnMnLFxuICAgICAgc2hvd2luZzogJ1Nob3dpbmcnLFxuICAgICAgb2Y6ICdvZicsXG4gICAgICBwZXJQYWdlOiAncGVyIHBhZ2UnLFxuICAgICAgZmlyc3RQYWdlOiAnRmlyc3QgcGFnZScsXG4gICAgICBwcmV2aW91c1BhZ2U6ICdQcmV2aW91cyBwYWdlJyxcbiAgICAgIG5leHRQYWdlOiAnTmV4dCBwYWdlJyxcbiAgICAgIGxhc3RQYWdlOiAnTGFzdCBwYWdlJyxcblxuICAgICAgLy8gQ29tcG9uZW50cyAtIFBhcnRpY2lwYW50IENhcmRcbiAgICAgIHdpbm5lcjogJ1dpbm5lcicsXG4gICAgICB0aWNrZXQ6ICd0aWNrZXQnLFxuICAgICAgdGlja2V0czogJ3RpY2tldHMnLFxuICAgICAgbW9yZTogJ21vcmUnLFxuICAgICAgbm90ZXM6ICdOb3RlczonLFxuXG4gICAgICAvLyBGb290ZXJcbiAgICAgIGFsbFJpZ2h0c1Jlc2VydmVkOiAnQWxsIHJpZ2h0cyByZXNlcnZlZC4nLFxuXG4gICAgICAvLyBDbGlwYm9hcmRcbiAgICAgIGxpbmtDb3BpZWQ6ICdMaW5rIGNvcGllZCEnLFxuXG4gICAgICAvLyBTZWxlY3Rpb25cbiAgICAgIHNlbGVjdDogJ1NlbGVjdCcsXG4gICAgICBzZWxlY3RPcHRpb25zOiAnU2VsZWN0IG9wdGlvbnMnLFxuXG4gICAgICAvLyBDb21tZW50c1xuICAgICAgcGlubmVkOiAnUGlubmVkJyxcbiAgICAgIGVkaXRlZDogJyhlZGl0ZWQpJyxcbiAgICAgIHNob3dDb21tZW50OiAnU2hvdyBjb21tZW50JyxcbiAgICAgIGhpZGVSZXBsaWVzOiAnSGlkZSByZXBsaWVzJyxcbiAgICAgIGxvYWRNb3JlUmVwbGllczogJ0xvYWQgbW9yZSByZXBsaWVzJyxcbiAgICAgIHZpZXdSZXBsaWVzOiAnVmlldyByZXBsaWVzJyxcbiAgICAgIGNvbW1lbnRzOiAnQ29tbWVudHMnLFxuICAgICAgbm9Db21tZW50c1lldDogJ05vIGNvbW1lbnRzIHlldCcsXG4gICAgICBwdWJsaXNoOiAnUHVibGlzaCcsXG4gICAgICBzb3J0Qnk6ICdTb3J0IGJ5JyxcbiAgICAgIHdyaXRlQ29tbWVudDogJ1dyaXRlIGEgY29tbWVudC4uLicsXG4gICAgICBiZUZpcnN0VG9Db21tZW50OiAnQmUgdGhlIGZpcnN0IHRvIHNoYXJlIHlvdXIgdGhvdWdodHMhJyxcblxuICAgICAgLy8gVGltZXN0YW1wc1xuICAgICAganVzdE5vdzogJ0p1c3Qgbm93JyxcbiAgICAgIG1pbnV0ZXNBZ286ICd7bWludXRlc31tIGFnbycsXG4gICAgICBob3Vyc0FnbzogJ3tob3Vyc31oIGFnbycsXG4gICAgICBkYXlzQWdvOiAne2RheXN9ZCBhZ28nLFxuXG4gICAgICAvLyBMaXN0c1xuICAgICAgbG9hZE1vcmU6ICdMb2FkIG1vcmUnLFxuICAgICAgbm9Nb3JlSXRlbXM6ICdObyBtb3JlIGl0ZW1zJyxcbiAgICAgIGxvYWRpbmdJdGVtczogJ0xvYWRpbmcgaXRlbXMuLi4nLFxuICAgICAgYWxsSXRlbXNMb2FkZWQ6ICdBbGwgaXRlbXMgbG9hZGVkJyxcbiAgICAgIGVycm9yT2NjdXJyZWQ6ICdBbiBlcnJvciBvY2N1cnJlZCcsXG4gICAgICByZXRyeTogJ1JldHJ5JyxcblxuICAgICAgLy8gTmF2aWdhdGlvblxuICAgICAgc2VlTW9yZTogJ1NlZSBtb3JlJyxcblxuICAgICAgLy8gRm9ybXMgLSBSYW5nZVxuICAgICAgZnJvbTogJ0Zyb20nLFxuICAgICAgdG86ICdUbycsXG5cbiAgICAgIC8vIFN0ZXBwZXJcbiAgICAgIGRlY3JlYXNlOiAnRGVjcmVhc2UnLFxuICAgICAgaW5jcmVhc2U6ICdJbmNyZWFzZScsXG5cbiAgICAgIC8vIE1pc2NcbiAgICAgIHJhbmRvbTogJ1JhbmRvbScsXG4gICAgICBwdWxsVG9SZWZyZXNoOiAnUHVsbCB0byByZWZyZXNoJyxcbiAgICAgIHRpbWVFeHBpcmVkOiAnVGltZSBleHBpcmVkJyxcbiAgICAgIHFyQ29kZTogJ1FSIENvZGUnLFxuXG4gICAgICAvLyBQYXltZW50IHN0YXR1c1xuICAgICAgcGF5bWVudFBlbmRpbmc6ICdQZW5kaW5nJyxcbiAgICAgIHBheW1lbnRQcm9jZXNzaW5nOiAnUHJvY2Vzc2luZycsXG4gICAgICBwYXltZW50UGFpZDogJ1BhaWQnLFxuICAgICAgcGF5bWVudFJlZnVuZGVkOiAnUmVmdW5kZWQnLFxuICAgICAgcGF5bWVudEZhaWxlZDogJ0ZhaWxlZCcsXG4gICAgfSxcbiAgfSxcblxuICBfYXV0aDoge1xuICAgIGVzOiB7XG4gICAgICAvLyBMb2dpblxuICAgICAgbG9naW5UaXRsZTogJ0luaWNpYXIgc2VzacOzbicsXG4gICAgICBlbWFpbDogJ0NvcnJlbyBlbGVjdHLDs25pY28nLFxuICAgICAgZW1haWxQbGFjZWhvbGRlcjogJ3R1QGVtYWlsLmNvbScsXG4gICAgICBlbWFpbFJlcXVpcmVkOiAnRWwgY29ycmVvIGVzIHJlcXVlcmlkbycsXG4gICAgICBlbWFpbEludmFsaWQ6ICdJbmdyZXNhIHVuIGNvcnJlbyB2w6FsaWRvJyxcbiAgICAgIHBhc3N3b3JkOiAnQ29udHJhc2XDsWEnLFxuICAgICAgcGFzc3dvcmRQbGFjZWhvbGRlcjogJ+KAouKAouKAouKAouKAouKAouKAouKAoicsXG4gICAgICBwYXNzd29yZFJlcXVpcmVkOiAnTGEgY29udHJhc2XDsWEgZXMgcmVxdWVyaWRhJyxcbiAgICAgIGxvZ2luU3VibWl0OiAnSW5pY2lhciBzZXNpw7NuJyxcblxuICAgICAgLy8gT0F1dGhcbiAgICAgIG9yQ29udGludWVXaXRoOiAnbyBjb250aW7DumEgY29uJyxcbiAgICAgIGNvbnRpbnVlV2l0aEdvb2dsZTogJ0NvbnRpbnVhciBjb24gR29vZ2xlJyxcbiAgICAgIGNvbnRpbnVlV2l0aEFwcGxlOiAnQ29udGludWFyIGNvbiBBcHBsZScsXG4gICAgICBjb250aW51ZVdpdGhNaWNyb3NvZnQ6ICdDb250aW51YXIgY29uIE1pY3Jvc29mdCcsXG4gICAgICBjb25uZWN0aW5nOiAnQ29uZWN0YW5kby4uLicsXG5cbiAgICAgIC8vIFJlZ2lzdGVyXG4gICAgICByZWdpc3RlclRpdGxlOiAnQ3JlYXIgY3VlbnRhJyxcbiAgICAgIGZ1bGxOYW1lOiAnTm9tYnJlIGNvbXBsZXRvJyxcbiAgICAgIG5hbWVQbGFjZWhvbGRlcjogJ1R1IG5vbWJyZScsXG4gICAgICBuYW1lUmVxdWlyZWQ6ICdFbCBub21icmUgZXMgcmVxdWVyaWRvJyxcbiAgICAgIG5hbWVNaW5MZW5ndGg6ICdNw61uaW1vIDIgY2FyYWN0ZXJlcycsXG4gICAgICBwYXNzd29yZE1pbkxlbmd0aDogJ03DrW5pbW8gOCBjYXJhY3RlcmVzJyxcbiAgICAgIHJlZ2lzdGVyU3VibWl0OiAnUmVnaXN0cmFyc2UnLFxuICAgICAgbm9BY2NvdW50OiAnwr9ObyB0aWVuZXMgY3VlbnRhPycsXG4gICAgICByZWdpc3RlcjogJ1JlZ2lzdHJhcnNlJyxcbiAgICAgIGhhc0FjY291bnQ6ICfCv1lhIHRpZW5lcyBjdWVudGE/JyxcbiAgICAgIHNpZ25JbjogJ0luaWNpYXIgc2VzacOzbicsXG5cbiAgICAgIC8vIFZlcmlmeSBlbWFpbFxuICAgICAgdmVyaWZ5VGl0bGU6ICdWZXJpZmljYXIgY29ycmVvJyxcbiAgICAgIHZlcmlmeURlc2NyaXB0aW9uOiAnSW5ncmVzYSBlbCBjw7NkaWdvIGRlIHZlcmlmaWNhY2nDs24gZW52aWFkbyBhIHR1IGNvcnJlby4nLFxuICAgICAgdmVyaWZ5U3VibWl0OiAnVmVyaWZpY2FyJyxcbiAgICAgIGNvZGVSZXF1aXJlZDogJ0VsIGPDs2RpZ28gZXMgcmVxdWVyaWRvJyxcbiAgICAgIGNvZGVNaW5MZW5ndGg6ICdJbmdyZXNhIGxvcyA2IGTDrWdpdG9zJyxcbiAgICAgIG5vQ29kZVJlY2VpdmVkOiAnwr9ObyBoYXMgcmVjaWJpZG8gdHUgY8OzZGlnbz8nLFxuICAgICAgcmVzZW5kOiAnUmVlbnZpYXInLFxuICAgICAgcmVzZW5kSW46ICdSZWVudmlhciBlbiB7c2Vjb25kc31zJyxcbiAgICAgIGNvZGVTZW50OiAnQ8OzZGlnbyByZWVudmlhZG8uIFJldmlzYSB0dSBlbWFpbC4nLFxuICAgICAgZW1haWxWZXJpZmllZDogJ8KhRW1haWwgdmVyaWZpY2FkbyEgQmllbnZlbmlkby4nLFxuXG4gICAgICAvLyBNRkFcbiAgICAgIG1mYVRpdGxlOiAnVmVyaWZpY2FjacOzbiBNRkEnLFxuICAgICAgbWZhVE9UUDogJ0luZ3Jlc2EgZWwgY8OzZGlnbyBkZSB0dSBhcHAgZGUgYXV0ZW50aWNhY2nDs24nLFxuICAgICAgbWZhRW1haWw6ICdJbmdyZXNhIGVsIGPDs2RpZ28gZW52aWFkbyBhIHR1IGNvcnJlbycsXG4gICAgICBtZmFTTVM6ICdJbmdyZXNhIGVsIGPDs2RpZ28gZW52aWFkbyBhIHR1IHRlbMOpZm9ubycsXG5cbiAgICAgIC8vIEZvcmdvdC9SZXNldCBwYXNzd29yZFxuICAgICAgZm9yZ290VGl0bGU6ICdSZWN1cGVyYXIgY29udHJhc2XDsWEnLFxuICAgICAgZm9yZ290RGVzY3JpcHRpb246ICdJbmdyZXNhIHR1IGNvcnJlbyBlbGVjdHLDs25pY28geSB0ZSBlbnZpYXJlbW9zIHVuIGPDs2RpZ28uJyxcbiAgICAgIGZvcmdvdFN1Ym1pdDogJ0VudmlhciBjw7NkaWdvJyxcbiAgICAgIGZvcmdvdExpbms6ICfCv09sdmlkYXN0ZSB0dSBjb250cmFzZcOxYT8nLFxuICAgICAgcmVjb3ZlclBhc3N3b3JkOiAnUmVjdXBlcmFyIGNvbnRyYXNlw7FhJyxcbiAgICAgIHJlc2V0VGl0bGU6ICdSZXN0YWJsZWNlciBjb250cmFzZcOxYScsXG4gICAgICByZXNldERlc2NyaXB0aW9uOiAnSGVtb3MgZW52aWFkbyB1biBjw7NkaWdvIGRlIHZlcmlmaWNhY2nDs24gYSB0dSBjb3JyZW8uJyxcbiAgICAgIG5ld1Bhc3N3b3JkOiAnTnVldmEgY29udHJhc2XDsWEnLFxuICAgICAgbmV3UGFzc3dvcmRIaW50OiAnTcOtbmltbyA4IGNhcmFjdGVyZXMnLFxuICAgICAgcmVzZXRTdWJtaXQ6ICdDYW1iaWFyIGNvbnRyYXNlw7FhJyxcbiAgICAgIHBhc3N3b3JkVXBkYXRlZDogJ8KhQ29udHJhc2XDsWEgYWN0dWFsaXphZGEhIFlhIHB1ZWRlcyBpbmljaWFyIHNlc2nDs24uJyxcblxuICAgICAgLy8gTGVnYWxcbiAgICAgIGxlZ2FsUHJlZml4OiAnVXRpbGl6YW1vcyBsb3Mgc2VydmljaW9zIGRlJyxcbiAgICAgIGxlZ2FsU3VmZml4OlxuICAgICAgICAncGFyYSBvZnJlY2VydGUgdW5hIGV4cGVyaWVuY2lhIHNlZ3VyYS4gQWwgaW5pY2lhciBzZXNpw7NuLCBhY2VwdGFzIG51ZXN0cm9zJyxcbiAgICAgIHRlcm1zQW5kQ29uZGl0aW9uczogJ1TDqXJtaW5vcyB5IENvbmRpY2lvbmVzJyxcbiAgICAgIGFuZDogJ3knLFxuICAgICAgcHJpdmFjeVBvbGljeTogJ1BvbMOtdGljYSBkZSBQcml2YWNpZGFkJyxcblxuICAgICAgLy8gVG9hc3RzXG4gICAgICB3ZWxjb21lOiAnwqFCaWVudmVuaWRvIScsXG4gICAgICBjb21wbGV0ZUFsbEZpZWxkczogJ0NvbXBsZXRhIHRvZG9zIGxvcyBjYW1wb3MuJyxcbiAgICAgIGVudGVyRW1haWw6ICdJbmdyZXNhIHR1IGNvcnJlbyBlbGVjdHLDs25pY28uJyxcblxuICAgICAgLy8gRXJyb3JzIChtYXBlYWRvcyBkZSBjw7NkaWdvcyBiYWNrZW5kKVxuICAgICAgZXJyb3JJbnZhbGlkQ3JlZGVudGlhbHM6ICdDb3JyZW8gbyBjb250cmFzZcOxYSBpbmNvcnJlY3RvcycsXG4gICAgICBlcnJvckVtYWlsTm90VmVyaWZpZWQ6ICdEZWJlcyB2ZXJpZmljYXIgdHUgY29ycmVvIGVsZWN0csOzbmljbycsXG4gICAgICBlcnJvckFjY291bnRTdXNwZW5kZWQ6ICdUdSBjdWVudGEgaGEgc2lkbyBzdXNwZW5kaWRhJyxcbiAgICAgIGVycm9yRW1haWxFeGlzdHM6ICdFc3RlIGNvcnJlbyB5YSBlc3TDoSByZWdpc3RyYWRvJyxcbiAgICAgIGVycm9yV2Vha1Bhc3N3b3JkOiAnTGEgY29udHJhc2XDsWEgZXMgbXV5IGTDqWJpbCcsXG4gICAgICBlcnJvckludmFsaWRDb2RlOiAnQ8OzZGlnbyBpbmNvcnJlY3RvJyxcbiAgICAgIGVycm9yRXhwaXJlZENvZGU6ICdFbCBjw7NkaWdvIGhhIGV4cGlyYWRvLiBTb2xpY2l0YSB1bm8gbnVldm8uJyxcbiAgICAgIGVycm9yVG9vTWFueUF0dGVtcHRzOiAnRGVtYXNpYWRvcyBpbnRlbnRvcywgaW50ZW50YSBtw6FzIHRhcmRlJyxcbiAgICAgIGVycm9yTUZBSW52YWxpZENvZGU6ICdDw7NkaWdvIGRlIHZlcmlmaWNhY2nDs24gaW5jb3JyZWN0bycsXG4gICAgICBlcnJvclBvcHVwQmxvY2tlZDogJ1BvciBmYXZvciwgcGVybWl0ZSB2ZW50YW5hcyBlbWVyZ2VudGVzJyxcbiAgICAgIGVycm9yT0F1dGhGYWlsZWQ6ICdFcnJvciBkZSBhdXRlbnRpY2FjacOzbicsXG4gICAgICBlcnJvckdlbmVyaWM6ICdIYSBvY3VycmlkbyB1biBlcnJvci4gSW50ZW50YSBkZSBudWV2by4nLFxuICAgIH0sXG4gICAgZW46IHtcbiAgICAgIC8vIExvZ2luXG4gICAgICBsb2dpblRpdGxlOiAnU2lnbiBpbicsXG4gICAgICBlbWFpbDogJ0VtYWlsJyxcbiAgICAgIGVtYWlsUGxhY2Vob2xkZXI6ICd5b3VAZW1haWwuY29tJyxcbiAgICAgIGVtYWlsUmVxdWlyZWQ6ICdFbWFpbCBpcyByZXF1aXJlZCcsXG4gICAgICBlbWFpbEludmFsaWQ6ICdFbnRlciBhIHZhbGlkIGVtYWlsJyxcbiAgICAgIHBhc3N3b3JkOiAnUGFzc3dvcmQnLFxuICAgICAgcGFzc3dvcmRQbGFjZWhvbGRlcjogJ+KAouKAouKAouKAouKAouKAouKAouKAoicsXG4gICAgICBwYXNzd29yZFJlcXVpcmVkOiAnUGFzc3dvcmQgaXMgcmVxdWlyZWQnLFxuICAgICAgbG9naW5TdWJtaXQ6ICdTaWduIGluJyxcblxuICAgICAgLy8gT0F1dGhcbiAgICAgIG9yQ29udGludWVXaXRoOiAnb3IgY29udGludWUgd2l0aCcsXG4gICAgICBjb250aW51ZVdpdGhHb29nbGU6ICdDb250aW51ZSB3aXRoIEdvb2dsZScsXG4gICAgICBjb250aW51ZVdpdGhBcHBsZTogJ0NvbnRpbnVlIHdpdGggQXBwbGUnLFxuICAgICAgY29udGludWVXaXRoTWljcm9zb2Z0OiAnQ29udGludWUgd2l0aCBNaWNyb3NvZnQnLFxuICAgICAgY29ubmVjdGluZzogJ0Nvbm5lY3RpbmcuLi4nLFxuXG4gICAgICAvLyBSZWdpc3RlclxuICAgICAgcmVnaXN0ZXJUaXRsZTogJ0NyZWF0ZSBhY2NvdW50JyxcbiAgICAgIGZ1bGxOYW1lOiAnRnVsbCBuYW1lJyxcbiAgICAgIG5hbWVQbGFjZWhvbGRlcjogJ1lvdXIgbmFtZScsXG4gICAgICBuYW1lUmVxdWlyZWQ6ICdOYW1lIGlzIHJlcXVpcmVkJyxcbiAgICAgIG5hbWVNaW5MZW5ndGg6ICdNaW5pbXVtIDIgY2hhcmFjdGVycycsXG4gICAgICBwYXNzd29yZE1pbkxlbmd0aDogJ01pbmltdW0gOCBjaGFyYWN0ZXJzJyxcbiAgICAgIHJlZ2lzdGVyU3VibWl0OiAnU2lnbiB1cCcsXG4gICAgICBub0FjY291bnQ6IFwiRG9uJ3QgaGF2ZSBhbiBhY2NvdW50P1wiLFxuICAgICAgcmVnaXN0ZXI6ICdTaWduIHVwJyxcbiAgICAgIGhhc0FjY291bnQ6ICdBbHJlYWR5IGhhdmUgYW4gYWNjb3VudD8nLFxuICAgICAgc2lnbkluOiAnU2lnbiBpbicsXG5cbiAgICAgIC8vIFZlcmlmeSBlbWFpbFxuICAgICAgdmVyaWZ5VGl0bGU6ICdWZXJpZnkgZW1haWwnLFxuICAgICAgdmVyaWZ5RGVzY3JpcHRpb246ICdFbnRlciB0aGUgdmVyaWZpY2F0aW9uIGNvZGUgc2VudCB0byB5b3VyIGVtYWlsLicsXG4gICAgICB2ZXJpZnlTdWJtaXQ6ICdWZXJpZnknLFxuICAgICAgY29kZVJlcXVpcmVkOiAnQ29kZSBpcyByZXF1aXJlZCcsXG4gICAgICBjb2RlTWluTGVuZ3RoOiAnRW50ZXIgYWxsIDYgZGlnaXRzJyxcbiAgICAgIG5vQ29kZVJlY2VpdmVkOiBcIkRpZG4ndCByZWNlaXZlIHlvdXIgY29kZT9cIixcbiAgICAgIHJlc2VuZDogJ1Jlc2VuZCcsXG4gICAgICByZXNlbmRJbjogJ1Jlc2VuZCBpbiB7c2Vjb25kc31zJyxcbiAgICAgIGNvZGVTZW50OiAnQ29kZSByZXNlbnQuIENoZWNrIHlvdXIgZW1haWwuJyxcbiAgICAgIGVtYWlsVmVyaWZpZWQ6ICdFbWFpbCB2ZXJpZmllZCEgV2VsY29tZS4nLFxuXG4gICAgICAvLyBNRkFcbiAgICAgIG1mYVRpdGxlOiAnTUZBIFZlcmlmaWNhdGlvbicsXG4gICAgICBtZmFUT1RQOiAnRW50ZXIgdGhlIGNvZGUgZnJvbSB5b3VyIGF1dGhlbnRpY2F0b3IgYXBwJyxcbiAgICAgIG1mYUVtYWlsOiAnRW50ZXIgdGhlIGNvZGUgc2VudCB0byB5b3VyIGVtYWlsJyxcbiAgICAgIG1mYVNNUzogJ0VudGVyIHRoZSBjb2RlIHNlbnQgdG8geW91ciBwaG9uZScsXG5cbiAgICAgIC8vIEZvcmdvdC9SZXNldCBwYXNzd29yZFxuICAgICAgZm9yZ290VGl0bGU6ICdSZWNvdmVyIHBhc3N3b3JkJyxcbiAgICAgIGZvcmdvdERlc2NyaXB0aW9uOiAnRW50ZXIgeW91ciBlbWFpbCBhbmQgd2Ugd2lsbCBzZW5kIHlvdSBhIGNvZGUuJyxcbiAgICAgIGZvcmdvdFN1Ym1pdDogJ1NlbmQgY29kZScsXG4gICAgICBmb3Jnb3RMaW5rOiAnRm9yZ290IHlvdXIgcGFzc3dvcmQ/JyxcbiAgICAgIHJlY292ZXJQYXNzd29yZDogJ1JlY292ZXIgcGFzc3dvcmQnLFxuICAgICAgcmVzZXRUaXRsZTogJ1Jlc2V0IHBhc3N3b3JkJyxcbiAgICAgIHJlc2V0RGVzY3JpcHRpb246ICdXZSBoYXZlIHNlbnQgYSB2ZXJpZmljYXRpb24gY29kZSB0byB5b3VyIGVtYWlsLicsXG4gICAgICBuZXdQYXNzd29yZDogJ05ldyBwYXNzd29yZCcsXG4gICAgICBuZXdQYXNzd29yZEhpbnQ6ICdNaW5pbXVtIDggY2hhcmFjdGVycycsXG4gICAgICByZXNldFN1Ym1pdDogJ0NoYW5nZSBwYXNzd29yZCcsXG4gICAgICBwYXNzd29yZFVwZGF0ZWQ6ICdQYXNzd29yZCB1cGRhdGVkISBZb3UgY2FuIG5vdyBzaWduIGluLicsXG5cbiAgICAgIC8vIExlZ2FsXG4gICAgICBsZWdhbFByZWZpeDogJ1dlIHVzZSB0aGUgc2VydmljZXMgb2YnLFxuICAgICAgbGVnYWxTdWZmaXg6ICd0byBvZmZlciB5b3UgYSBzZWN1cmUgZXhwZXJpZW5jZS4gQnkgc2lnbmluZyBpbiwgeW91IGFjY2VwdCBvdXInLFxuICAgICAgdGVybXNBbmRDb25kaXRpb25zOiAnVGVybXMgYW5kIENvbmRpdGlvbnMnLFxuICAgICAgYW5kOiAnYW5kJyxcbiAgICAgIHByaXZhY3lQb2xpY3k6ICdQcml2YWN5IFBvbGljeScsXG5cbiAgICAgIC8vIFRvYXN0c1xuICAgICAgd2VsY29tZTogJ1dlbGNvbWUhJyxcbiAgICAgIGNvbXBsZXRlQWxsRmllbGRzOiAnQ29tcGxldGUgYWxsIGZpZWxkcy4nLFxuICAgICAgZW50ZXJFbWFpbDogJ0VudGVyIHlvdXIgZW1haWwuJyxcblxuICAgICAgLy8gRXJyb3JzXG4gICAgICBlcnJvckludmFsaWRDcmVkZW50aWFsczogJ0luY29ycmVjdCBlbWFpbCBvciBwYXNzd29yZCcsXG4gICAgICBlcnJvckVtYWlsTm90VmVyaWZpZWQ6ICdZb3UgbXVzdCB2ZXJpZnkgeW91ciBlbWFpbCcsXG4gICAgICBlcnJvckFjY291bnRTdXNwZW5kZWQ6ICdZb3VyIGFjY291bnQgaGFzIGJlZW4gc3VzcGVuZGVkJyxcbiAgICAgIGVycm9yRW1haWxFeGlzdHM6ICdUaGlzIGVtYWlsIGlzIGFscmVhZHkgcmVnaXN0ZXJlZCcsXG4gICAgICBlcnJvcldlYWtQYXNzd29yZDogJ1Bhc3N3b3JkIGlzIHRvbyB3ZWFrJyxcbiAgICAgIGVycm9ySW52YWxpZENvZGU6ICdJbmNvcnJlY3QgY29kZScsXG4gICAgICBlcnJvckV4cGlyZWRDb2RlOiAnQ29kZSBoYXMgZXhwaXJlZC4gUmVxdWVzdCBhIG5ldyBvbmUuJyxcbiAgICAgIGVycm9yVG9vTWFueUF0dGVtcHRzOiAnVG9vIG1hbnkgYXR0ZW1wdHMsIHRyeSBhZ2FpbiBsYXRlcicsXG4gICAgICBlcnJvck1GQUludmFsaWRDb2RlOiAnSW5jb3JyZWN0IHZlcmlmaWNhdGlvbiBjb2RlJyxcbiAgICAgIGVycm9yUG9wdXBCbG9ja2VkOiAnUGxlYXNlIGFsbG93IHBvcC11cHMnLFxuICAgICAgZXJyb3JPQXV0aEZhaWxlZDogJ0F1dGhlbnRpY2F0aW9uIGVycm9yJyxcbiAgICAgIGVycm9yR2VuZXJpYzogJ0FuIGVycm9yIG9jY3VycmVkLiBQbGVhc2UgdHJ5IGFnYWluLicsXG4gICAgfSxcbiAgfSxcbn07XG4iXX0=
|
|
@@ -2,10 +2,12 @@
|
|
|
2
2
|
export { LANG_STORAGE_KEY, } from './types';
|
|
3
3
|
// Service
|
|
4
4
|
export { I18nService } from './i18n.service';
|
|
5
|
+
// Helper
|
|
6
|
+
export { InputI18nHelper, } from './input-i18n.helper';
|
|
5
7
|
// Pipe
|
|
6
8
|
export { TranslatePipe } from './translate.pipe';
|
|
7
9
|
// Config
|
|
8
10
|
export { provideValtechI18n } from './config';
|
|
9
11
|
// Default content
|
|
10
12
|
export { VALTECH_DEFAULT_CONTENT } from './default-content';
|
|
11
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL3NlcnZpY2VzL2kxOG4vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsUUFBUTtBQUNSLE9BQU8sRUFLTCxnQkFBZ0IsR0FDakIsTUFBTSxTQUFTLENBQUM7QUFFakIsVUFBVTtBQUNWLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU3QyxTQUFTO0FBQ1QsT0FBTyxFQUNMLGVBQWUsR0FLaEIsTUFBTSxxQkFBcUIsQ0FBQztBQUU3QixPQUFPO0FBQ1AsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRWpELFNBQVM7QUFDVCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFOUMsa0JBQWtCO0FBQ2xCLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gVHlwZXNcbmV4cG9ydCB7XG4gIEkxOG5MYW5nLFxuICBMYW5ndWFnZXNDb250ZW50LFxuICBDb250ZW50U3RvcmUsXG4gIEkxOG5Db25maWcsXG4gIExBTkdfU1RPUkFHRV9LRVksXG59IGZyb20gJy4vdHlwZXMnO1xuXG4vLyBTZXJ2aWNlXG5leHBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJy4vaTE4bi5zZXJ2aWNlJztcblxuLy8gSGVscGVyXG5leHBvcnQge1xuICBJbnB1dEkxOG5IZWxwZXIsXG4gIElucHV0TWV0YWRhdGFXaXRoSTE4bixcbiAgRm9ybU1ldGFkYXRhV2l0aEkxOG4sXG4gIEZvcm1TZWN0aW9uV2l0aEkxOG4sXG4gIEJ1dHRvbk1ldGFkYXRhV2l0aEkxOG4sXG59IGZyb20gJy4vaW5wdXQtaTE4bi5oZWxwZXInO1xuXG4vLyBQaXBlXG5leHBvcnQgeyBUcmFuc2xhdGVQaXBlIH0gZnJvbSAnLi90cmFuc2xhdGUucGlwZSc7XG5cbi8vIENvbmZpZ1xuZXhwb3J0IHsgcHJvdmlkZVZhbHRlY2hJMThuIH0gZnJvbSAnLi9jb25maWcnO1xuXG4vLyBEZWZhdWx0IGNvbnRlbnRcbmV4cG9ydCB7IFZBTFRFQ0hfREVGQVVMVF9DT05URU5UIH0gZnJvbSAnLi9kZWZhdWx0LWNvbnRlbnQnO1xuIl19
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { Injectable, inject } from '@angular/core';
|
|
2
|
+
import { I18nService } from './i18n.service';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
/**
|
|
5
|
+
* Helper para resolver traducciones i18n en InputMetadata y FormMetadata.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```typescript
|
|
9
|
+
* helper = inject(InputI18nHelper);
|
|
10
|
+
*
|
|
11
|
+
* // Resolver un input
|
|
12
|
+
* emailInput = this.helper.resolveInput({
|
|
13
|
+
* ...baseEmailInput,
|
|
14
|
+
* labelKey: 'email',
|
|
15
|
+
* placeholderKey: 'emailPlaceholder',
|
|
16
|
+
* errorKeys: { required: 'emailRequired', email: 'emailInvalid' },
|
|
17
|
+
* i18nNamespace: '_auth',
|
|
18
|
+
* });
|
|
19
|
+
*
|
|
20
|
+
* // Resolver un form completo
|
|
21
|
+
* loginForm = this.helper.resolveForm(loginFormConfig);
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
export class InputI18nHelper {
|
|
25
|
+
constructor() {
|
|
26
|
+
this.i18n = inject(I18nService);
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Resuelve traducciones para un InputMetadata.
|
|
30
|
+
* Si hay keys de i18n, las resuelve; sino, usa los valores directos.
|
|
31
|
+
*/
|
|
32
|
+
resolveInput(input) {
|
|
33
|
+
const namespace = input.i18nNamespace || '_global';
|
|
34
|
+
return {
|
|
35
|
+
...input,
|
|
36
|
+
label: input.labelKey
|
|
37
|
+
? this.i18n.t(input.labelKey, namespace)
|
|
38
|
+
: input.label || '',
|
|
39
|
+
placeholder: input.placeholderKey
|
|
40
|
+
? this.i18n.t(input.placeholderKey, namespace)
|
|
41
|
+
: input.placeholder || '',
|
|
42
|
+
hint: input.hintKey ? this.i18n.t(input.hintKey, namespace) : input.hint || '',
|
|
43
|
+
errors: input.errorKeys
|
|
44
|
+
? this.resolveErrors(input.errorKeys, namespace)
|
|
45
|
+
: input.errors || {},
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Resuelve traducciones para un FormMetadata completo.
|
|
50
|
+
*/
|
|
51
|
+
resolveForm(form) {
|
|
52
|
+
const namespace = form.i18nNamespace || '_global';
|
|
53
|
+
return {
|
|
54
|
+
...form,
|
|
55
|
+
name: form.nameKey ? this.i18n.t(form.nameKey, namespace) : form.name || '',
|
|
56
|
+
sections: form.sections.map((section) => ({
|
|
57
|
+
...section,
|
|
58
|
+
name: section.nameKey
|
|
59
|
+
? this.i18n.t(section.nameKey, namespace)
|
|
60
|
+
: section.name || '',
|
|
61
|
+
fields: section.fields.map((field) => this.resolveInput({ ...field, i18nNamespace: namespace })),
|
|
62
|
+
})),
|
|
63
|
+
actions: this.resolveButton(form.actions, namespace),
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Resuelve traducciones para un ButtonMetadata.
|
|
68
|
+
*/
|
|
69
|
+
resolveButton(button, namespace) {
|
|
70
|
+
const ns = namespace || button.i18nNamespace || '_global';
|
|
71
|
+
return {
|
|
72
|
+
...button,
|
|
73
|
+
text: button.textKey ? this.i18n.t(button.textKey, ns) : button.text,
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Resuelve un mapa de error keys a mensajes traducidos.
|
|
78
|
+
*/
|
|
79
|
+
resolveErrors(errorKeys, namespace) {
|
|
80
|
+
const resolved = {};
|
|
81
|
+
for (const [validatorKey, i18nKey] of Object.entries(errorKeys)) {
|
|
82
|
+
resolved[validatorKey] = this.i18n.t(i18nKey, namespace);
|
|
83
|
+
}
|
|
84
|
+
return resolved;
|
|
85
|
+
}
|
|
86
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: InputI18nHelper, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
87
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: InputI18nHelper, providedIn: 'root' }); }
|
|
88
|
+
}
|
|
89
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: InputI18nHelper, decorators: [{
|
|
90
|
+
type: Injectable,
|
|
91
|
+
args: [{ providedIn: 'root' }]
|
|
92
|
+
}] });
|
|
93
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtaTE4bi5oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL3NlcnZpY2VzL2kxOG4vaW5wdXQtaTE4bi5oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQVM3Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1CRztBQUVILE1BQU0sT0FBTyxlQUFlO0lBRDVCO1FBRVUsU0FBSSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztLQTBFcEM7SUF4RUM7OztPQUdHO0lBQ0gsWUFBWSxDQUFDLEtBQTRCO1FBQ3ZDLE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxhQUFhLElBQUksU0FBUyxDQUFDO1FBRW5ELE9BQU87WUFDTCxHQUFHLEtBQUs7WUFDUixLQUFLLEVBQUUsS0FBSyxDQUFDLFFBQVE7Z0JBQ25CLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQztnQkFDeEMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksRUFBRTtZQUNyQixXQUFXLEVBQUUsS0FBSyxDQUFDLGNBQWM7Z0JBQy9CLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsY0FBYyxFQUFFLFNBQVMsQ0FBQztnQkFDOUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxXQUFXLElBQUksRUFBRTtZQUMzQixJQUFJLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxFQUFFO1lBQzlFLE1BQU0sRUFBRSxLQUFLLENBQUMsU0FBUztnQkFDckIsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUM7Z0JBQ2hELENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxJQUFJLEVBQUU7U0FDTixDQUFDO0lBQ3JCLENBQUM7SUFFRDs7T0FFRztJQUNILFdBQVcsQ0FBQyxJQUEwQjtRQUNwQyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsYUFBYSxJQUFJLFNBQVMsQ0FBQztRQUVsRCxPQUFPO1lBQ0wsR0FBRyxJQUFJO1lBQ1AsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksRUFBRTtZQUMzRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ3hDLEdBQUcsT0FBTztnQkFDVixJQUFJLEVBQUUsT0FBTyxDQUFDLE9BQU87b0JBQ25CLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQztvQkFDekMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLElBQUksRUFBRTtnQkFDdEIsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FDbkMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLEdBQUcsS0FBSyxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUMxRDthQUNGLENBQUMsQ0FBa0I7WUFDcEIsT0FBTyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUM7U0FDckQsQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRztJQUNILGFBQWEsQ0FDWCxNQUE4QixFQUM5QixTQUFrQjtRQUVsQixNQUFNLEVBQUUsR0FBRyxTQUFTLElBQUksTUFBTSxDQUFDLGFBQWEsSUFBSSxTQUFTLENBQUM7UUFFMUQsT0FBTztZQUNMLEdBQUcsTUFBTTtZQUNULElBQUksRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSTtTQUNuRCxDQUFDO0lBQ3RCLENBQUM7SUFFRDs7T0FFRztJQUNLLGFBQWEsQ0FDbkIsU0FBaUMsRUFDakMsU0FBaUI7UUFFakIsTUFBTSxRQUFRLEdBQTJCLEVBQUUsQ0FBQztRQUM1QyxLQUFLLE1BQU0sQ0FBQyxZQUFZLEVBQUUsT0FBTyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQ2hFLFFBQVEsQ0FBQyxZQUFZLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDM0QsQ0FBQztRQUNELE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7K0dBMUVVLGVBQWU7bUhBQWYsZUFBZSxjQURGLE1BQU07OzRGQUNuQixlQUFlO2tCQUQzQixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuL2kxOG4uc2VydmljZSc7XG5pbXBvcnQge1xuICBJbnB1dE1ldGFkYXRhLFxuICBGb3JtTWV0YWRhdGEsXG4gIEZvcm1TZWN0aW9uLFxuICBCdXR0b25NZXRhZGF0YSxcbiAgQ29tcG9uZW50U3RhdGUsXG59IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvdHlwZXMnO1xuXG4vKipcbiAqIEhlbHBlciBwYXJhIHJlc29sdmVyIHRyYWR1Y2Npb25lcyBpMThuIGVuIElucHV0TWV0YWRhdGEgeSBGb3JtTWV0YWRhdGEuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGhlbHBlciA9IGluamVjdChJbnB1dEkxOG5IZWxwZXIpO1xuICpcbiAqIC8vIFJlc29sdmVyIHVuIGlucHV0XG4gKiBlbWFpbElucHV0ID0gdGhpcy5oZWxwZXIucmVzb2x2ZUlucHV0KHtcbiAqICAgLi4uYmFzZUVtYWlsSW5wdXQsXG4gKiAgIGxhYmVsS2V5OiAnZW1haWwnLFxuICogICBwbGFjZWhvbGRlcktleTogJ2VtYWlsUGxhY2Vob2xkZXInLFxuICogICBlcnJvcktleXM6IHsgcmVxdWlyZWQ6ICdlbWFpbFJlcXVpcmVkJywgZW1haWw6ICdlbWFpbEludmFsaWQnIH0sXG4gKiAgIGkxOG5OYW1lc3BhY2U6ICdfYXV0aCcsXG4gKiB9KTtcbiAqXG4gKiAvLyBSZXNvbHZlciB1biBmb3JtIGNvbXBsZXRvXG4gKiBsb2dpbkZvcm0gPSB0aGlzLmhlbHBlci5yZXNvbHZlRm9ybShsb2dpbkZvcm1Db25maWcpO1xuICogYGBgXG4gKi9cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgSW5wdXRJMThuSGVscGVyIHtcbiAgcHJpdmF0ZSBpMThuID0gaW5qZWN0KEkxOG5TZXJ2aWNlKTtcblxuICAvKipcbiAgICogUmVzdWVsdmUgdHJhZHVjY2lvbmVzIHBhcmEgdW4gSW5wdXRNZXRhZGF0YS5cbiAgICogU2kgaGF5IGtleXMgZGUgaTE4biwgbGFzIHJlc3VlbHZlOyBzaW5vLCB1c2EgbG9zIHZhbG9yZXMgZGlyZWN0b3MuXG4gICAqL1xuICByZXNvbHZlSW5wdXQoaW5wdXQ6IElucHV0TWV0YWRhdGFXaXRoSTE4bik6IElucHV0TWV0YWRhdGEge1xuICAgIGNvbnN0IG5hbWVzcGFjZSA9IGlucHV0LmkxOG5OYW1lc3BhY2UgfHwgJ19nbG9iYWwnO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmlucHV0LFxuICAgICAgbGFiZWw6IGlucHV0LmxhYmVsS2V5XG4gICAgICAgID8gdGhpcy5pMThuLnQoaW5wdXQubGFiZWxLZXksIG5hbWVzcGFjZSlcbiAgICAgICAgOiBpbnB1dC5sYWJlbCB8fCAnJyxcbiAgICAgIHBsYWNlaG9sZGVyOiBpbnB1dC5wbGFjZWhvbGRlcktleVxuICAgICAgICA/IHRoaXMuaTE4bi50KGlucHV0LnBsYWNlaG9sZGVyS2V5LCBuYW1lc3BhY2UpXG4gICAgICAgIDogaW5wdXQucGxhY2Vob2xkZXIgfHwgJycsXG4gICAgICBoaW50OiBpbnB1dC5oaW50S2V5ID8gdGhpcy5pMThuLnQoaW5wdXQuaGludEtleSwgbmFtZXNwYWNlKSA6IGlucHV0LmhpbnQgfHwgJycsXG4gICAgICBlcnJvcnM6IGlucHV0LmVycm9yS2V5c1xuICAgICAgICA/IHRoaXMucmVzb2x2ZUVycm9ycyhpbnB1dC5lcnJvcktleXMsIG5hbWVzcGFjZSlcbiAgICAgICAgOiBpbnB1dC5lcnJvcnMgfHwge30sXG4gICAgfSBhcyBJbnB1dE1ldGFkYXRhO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc3VlbHZlIHRyYWR1Y2Npb25lcyBwYXJhIHVuIEZvcm1NZXRhZGF0YSBjb21wbGV0by5cbiAgICovXG4gIHJlc29sdmVGb3JtKGZvcm06IEZvcm1NZXRhZGF0YVdpdGhJMThuKTogRm9ybU1ldGFkYXRhIHtcbiAgICBjb25zdCBuYW1lc3BhY2UgPSBmb3JtLmkxOG5OYW1lc3BhY2UgfHwgJ19nbG9iYWwnO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmZvcm0sXG4gICAgICBuYW1lOiBmb3JtLm5hbWVLZXkgPyB0aGlzLmkxOG4udChmb3JtLm5hbWVLZXksIG5hbWVzcGFjZSkgOiBmb3JtLm5hbWUgfHwgJycsXG4gICAgICBzZWN0aW9uczogZm9ybS5zZWN0aW9ucy5tYXAoKHNlY3Rpb24pID0+ICh7XG4gICAgICAgIC4uLnNlY3Rpb24sXG4gICAgICAgIG5hbWU6IHNlY3Rpb24ubmFtZUtleVxuICAgICAgICAgID8gdGhpcy5pMThuLnQoc2VjdGlvbi5uYW1lS2V5LCBuYW1lc3BhY2UpXG4gICAgICAgICAgOiBzZWN0aW9uLm5hbWUgfHwgJycsXG4gICAgICAgIGZpZWxkczogc2VjdGlvbi5maWVsZHMubWFwKChmaWVsZCkgPT5cbiAgICAgICAgICB0aGlzLnJlc29sdmVJbnB1dCh7IC4uLmZpZWxkLCBpMThuTmFtZXNwYWNlOiBuYW1lc3BhY2UgfSlcbiAgICAgICAgKSxcbiAgICAgIH0pKSBhcyBGb3JtU2VjdGlvbltdLFxuICAgICAgYWN0aW9uczogdGhpcy5yZXNvbHZlQnV0dG9uKGZvcm0uYWN0aW9ucywgbmFtZXNwYWNlKSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc3VlbHZlIHRyYWR1Y2Npb25lcyBwYXJhIHVuIEJ1dHRvbk1ldGFkYXRhLlxuICAgKi9cbiAgcmVzb2x2ZUJ1dHRvbihcbiAgICBidXR0b246IEJ1dHRvbk1ldGFkYXRhV2l0aEkxOG4sXG4gICAgbmFtZXNwYWNlPzogc3RyaW5nXG4gICk6IEJ1dHRvbk1ldGFkYXRhIHtcbiAgICBjb25zdCBucyA9IG5hbWVzcGFjZSB8fCBidXR0b24uaTE4bk5hbWVzcGFjZSB8fCAnX2dsb2JhbCc7XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uYnV0dG9uLFxuICAgICAgdGV4dDogYnV0dG9uLnRleHRLZXkgPyB0aGlzLmkxOG4udChidXR0b24udGV4dEtleSwgbnMpIDogYnV0dG9uLnRleHQsXG4gICAgfSBhcyBCdXR0b25NZXRhZGF0YTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXN1ZWx2ZSB1biBtYXBhIGRlIGVycm9yIGtleXMgYSBtZW5zYWplcyB0cmFkdWNpZG9zLlxuICAgKi9cbiAgcHJpdmF0ZSByZXNvbHZlRXJyb3JzKFxuICAgIGVycm9yS2V5czogUmVjb3JkPHN0cmluZywgc3RyaW5nPixcbiAgICBuYW1lc3BhY2U6IHN0cmluZ1xuICApOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHtcbiAgICBjb25zdCByZXNvbHZlZDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9O1xuICAgIGZvciAoY29uc3QgW3ZhbGlkYXRvcktleSwgaTE4bktleV0gb2YgT2JqZWN0LmVudHJpZXMoZXJyb3JLZXlzKSkge1xuICAgICAgcmVzb2x2ZWRbdmFsaWRhdG9yS2V5XSA9IHRoaXMuaTE4bi50KGkxOG5LZXksIG5hbWVzcGFjZSk7XG4gICAgfVxuICAgIHJldHVybiByZXNvbHZlZDtcbiAgfVxufVxuXG4vLyBUaXBvcyBleHRlbmRpZG9zIGNvbiBzb3BvcnRlIGkxOG5cbmV4cG9ydCBpbnRlcmZhY2UgSW5wdXRNZXRhZGF0YVdpdGhJMThuIGV4dGVuZHMgUGFydGlhbDxJbnB1dE1ldGFkYXRhPiB7XG4gIGkxOG5OYW1lc3BhY2U/OiBzdHJpbmc7XG4gIGxhYmVsS2V5Pzogc3RyaW5nO1xuICBwbGFjZWhvbGRlcktleT86IHN0cmluZztcbiAgaGludEtleT86IHN0cmluZztcbiAgZXJyb3JLZXlzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGb3JtU2VjdGlvbldpdGhJMThuIHtcbiAgbmFtZT86IHN0cmluZztcbiAgbmFtZUtleT86IHN0cmluZztcbiAgb3JkZXI6IG51bWJlcjtcbiAgZmllbGRzOiBJbnB1dE1ldGFkYXRhV2l0aEkxOG5bXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGb3JtTWV0YWRhdGFXaXRoSTE4biB7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIG5hbWVLZXk/OiBzdHJpbmc7XG4gIGkxOG5OYW1lc3BhY2U/OiBzdHJpbmc7XG4gIHNlY3Rpb25zOiBGb3JtU2VjdGlvbldpdGhJMThuW107XG4gIGFjdGlvbnM6IEJ1dHRvbk1ldGFkYXRhV2l0aEkxOG47XG4gIHN0YXRlOiBDb21wb25lbnRTdGF0ZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCdXR0b25NZXRhZGF0YVdpdGhJMThuIGV4dGVuZHMgUGFydGlhbDxCdXR0b25NZXRhZGF0YT4ge1xuICBpMThuTmFtZXNwYWNlPzogc3RyaW5nO1xuICB0ZXh0S2V5Pzogc3RyaW5nO1xufVxuIl19
|