design-angular-kit
Version:
Un toolkit Angular conforme alle linee guida di design per i servizi web della PA
130 lines • 22.8 kB
JavaScript
import { inject, Injectable } from '@angular/core';
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
import { TranslateService } from '@ngx-translate/core';
import { tap } from 'rxjs';
import videojs from 'video.js';
import * as i0 from "@angular/core";
export class VideoPlayerI18nService {
#translate = inject(TranslateService);
init(player, destroyRef) {
this.#translate.onLangChange
.pipe(takeUntilDestroyed(destroyRef), tap({
next: e => {
const language = e.lang;
videojs.addLanguage(language, this.getTranslations());
player.language(language);
},
}))
.subscribe(x => {
console.log('onLangChange', x);
});
}
getLanguage() {
const language = this.#translate.currentLang ?? 'it';
return {
languages: { [language]: mapToVideoJsTranslation(this.#translate.instant('it.video-player')) },
language,
};
}
getTranslations() {
return mapToVideoJsTranslation(this.#translate.instant('it.video-player'));
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: VideoPlayerI18nService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: VideoPlayerI18nService, providedIn: 'root' }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: VideoPlayerI18nService, decorators: [{
type: Injectable,
args: [{ providedIn: 'root' }]
}] });
function mapToVideoJsTranslation(translations) {
return {
'Audio Player': translations['audio-player'],
'Video Player': translations['video-player'],
Play: translations.play,
Pause: translations.pause,
Replay: translations.replay,
'Current Time': translations['current-time'],
Duration: translations.duration,
'Remaining Time': translations['remaining-time'],
'Stream Type': translations['stream-type'],
LIVE: translations.live,
Loaded: translations.loaded,
Progress: translations.progress,
'Progress Bar': translations['progress-bar'],
'progress bar timing: currentTime={1} duration={2}': translations['progress-bar-timing:-currenttime={1}-duration={2}'],
Fullscreen: translations.fullscreen,
'Exit Fullscreen': translations['exit-fullscreen'],
Mute: translations.mute,
Unmute: translations.unmute,
'Playback Rate': translations['playback-rate'],
Subtitles: translations.subtitles,
'subtitles off': translations['subtitles-off'],
Captions: translations.captions,
'captions off': translations['captions-off'],
Chapters: translations.chapters,
Descriptions: translations.descriptions,
'descriptions off': translations['descriptions-off'],
'Audio Track': translations['audio-track'],
'Volume Level': translations['volume-level'],
'You aborted the media playback': translations['you-aborted-the-media-playback'],
'A network error caused the media download to fail part-way.': translations['a-network-error-caused-the-media-download-to-fail-part-way.'],
'The media could not be loaded, either because the server or network failed or because the format is not supported.': translations['the-media-could-not-be-loaded,-either-because-the-server-or-network-failed-or-because-the-format-is-not-supported.'],
'The media playback was aborted due to a corruption problem or because the media used features your browser did not support.': translations['the-media-playback-was-aborted-due-to-a-corruption-problem-or-because-the-media-used-features-your-browser-did-not-support.'],
'No compatible source was found for this media.': translations['no-compatible-source-was-found-for-this-media.'],
'The media is encrypted and we do not have the keys to decrypt it.': translations['the-media-is-encrypted-and-we-do-not-have-the-keys-to-decrypt-it.'],
'Play Video': translations['play-video'],
Close: translations.close,
'Close Modal Dialog': translations['close-modal-dialog'],
'Modal Window': translations['modal-window'],
'This is a modal window': translations['this-is-a-modal-window'],
'This modal can be closed by pressing the Escape key or activating the close button.': translations['this-modal-can-be-closed-by-pressing-the-escape-key-or-activating-the-close-button.'],
', opens captions settings dialog': translations[',-opens-captions-settings-dialog'],
', opens subtitles settings dialog': translations[',-opens-subtitles-settings-dialog'],
', opens descriptions settings dialog': translations[',-opens-descriptions-settings-dialog'],
', selected': translations[',-selected'],
'captions settings': translations['captions-settings'],
'subtitles settings': translations['subtitles-settings'],
'descriptions settings': translations['descriptions-settings'],
Text: translations.text,
White: translations.white,
Black: translations.black,
Red: translations.red,
Green: translations.green,
Blue: translations.blue,
Yellow: translations.yellow,
Magenta: translations.magenta,
Cyan: translations.cyan,
Background: translations.background,
Window: translations.window,
Transparent: translations.transparent,
'Semi-Transparent': translations['semi-transparent'],
Opaque: translations.opaque,
'Font Size': translations['font-size'],
'Text Edge Style': translations['text-edge-style'],
None: translations.none,
Uniform: translations.uniform,
'Drop shadow': translations['drop-shadow'],
'Font Family': translations['font-family'],
'Proportional Sans-Serif': translations['proportional-sans-serif'],
'Monospace Sans-Serif': translations['monospace-sans-serif'],
'Proportional Serif': translations['proportional-serif'],
'Monospace Serif': translations['monospace-serif'],
'Small Caps': translations['small-caps'],
Reset: translations.reset,
'restore all settings to the default values': translations['restore-all-settings-to-the-default-values'],
Done: translations.done,
'Caption Settings Dialog': translations['caption-settings-dialog'],
'Beginning of dialog window. Escape will cancel and close the window.': translations['beginning-of-dialog-window.-escape-will-cancel-and-close-the-window.'],
'End of dialog window.': translations['end-of-dialog-window.'],
'{1} is loading.': translations['{1}-is-loading.'],
'Exit Picture-in-Picture': translations['exit-picture-in-picture'],
'Picture-in-Picture': translations['picture-in-picture'],
Color: translations.color,
Opacity: translations.opacity,
'Text Background': translations['text-background'],
'Caption Area Background': translations['caption-area-background'],
'Skip forward {1} seconds': translations['skip-forward-{1}-seconds'],
'Skip backward {1} seconds': translations['skip-backward-{1}-seconds'],
};
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlkZW8tcGxheWVyLWkxOG4uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1hbmd1bGFyLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvY29yZS92aWRlby1wbGF5ZXIvdmlkZW8tcGxheWVyLWkxOG4uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNCLE9BQU8sT0FBTyxNQUFNLFVBQVUsQ0FBQzs7QUFLL0IsTUFBTSxPQUFPLHNCQUFzQjtJQUN4QixVQUFVLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFFL0MsSUFBSSxDQUFDLE1BQWMsRUFBRSxVQUFzQjtRQUN6QyxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVk7YUFDekIsSUFBSSxDQUNILGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxFQUM5QixHQUFHLENBQUM7WUFDRixJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUU7Z0JBQ1IsTUFBTSxRQUFRLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQztnQkFDeEIsT0FBTyxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUM7Z0JBQ3RELE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDNUIsQ0FBQztTQUNGLENBQUMsQ0FDSDthQUNBLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNiLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQyxDQUFD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QUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlc3Ryb3lSZWYsIGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgdmlkZW9qcyBmcm9tICd2aWRlby5qcyc7XG5pbXBvcnQgUGxheWVyIGZyb20gJ3ZpZGVvLmpzL2Rpc3QvdHlwZXMvcGxheWVyJztcbmltcG9ydCB7IFZpZGVvSnNUcmFuc2xhdGlvbiwgVmlkZW9QbGF5ZXJUcmFuc2xhdGlvbnMgfSBmcm9tICcuL3ZpZGVvLXBsYXllci1pMThuLm1vZGVsJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBWaWRlb1BsYXllckkxOG5TZXJ2aWNlIHtcbiAgcmVhZG9ubHkgI3RyYW5zbGF0ZSA9IGluamVjdChUcmFuc2xhdGVTZXJ2aWNlKTtcblxuICBpbml0KHBsYXllcjogUGxheWVyLCBkZXN0cm95UmVmOiBEZXN0cm95UmVmKSB7XG4gICAgdGhpcy4jdHJhbnNsYXRlLm9uTGFuZ0NoYW5nZVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbERlc3Ryb3llZChkZXN0cm95UmVmKSxcbiAgICAgICAgdGFwKHtcbiAgICAgICAgICBuZXh0OiBlID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGxhbmd1YWdlID0gZS5sYW5nO1xuICAgICAgICAgICAgdmlkZW9qcy5hZGRMYW5ndWFnZShsYW5ndWFnZSwgdGhpcy5nZXRUcmFuc2xhdGlvbnMoKSk7XG4gICAgICAgICAgICBwbGF5ZXIubGFuZ3VhZ2UobGFuZ3VhZ2UpO1xuICAgICAgICAgIH0sXG4gICAgICAgIH0pXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKHggPT4ge1xuICAgICAgICBjb25zb2xlLmxvZygnb25MYW5nQ2hhbmdlJywgeCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIGdldExhbmd1YWdlKCkge1xuICAgIGNvbnN0IGxhbmd1YWdlID0gdGhpcy4jdHJhbnNsYXRlLmN1cnJlbnRMYW5nID8/ICdpdCc7XG5cbiAgICByZXR1cm4ge1xuICAgICAgbGFuZ3VhZ2VzOiB7IFtsYW5ndWFnZV06IG1hcFRvVmlkZW9Kc1RyYW5zbGF0aW9uKHRoaXMuI3RyYW5zbGF0ZS5pbnN0YW50KCdpdC52aWRlby1wbGF5ZXInKSkgfSxcbiAgICAgIGxhbmd1YWdlLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGdldFRyYW5zbGF0aW9ucygpIHtcbiAgICByZXR1cm4gbWFwVG9WaWRlb0pzVHJhbnNsYXRpb24odGhpcy4jdHJhbnNsYXRlLmluc3RhbnQoJ2l0LnZpZGVvLXBsYXllcicpKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBtYXBUb1ZpZGVvSnNUcmFuc2xhdGlvbih0cmFuc2xhdGlvbnM6IFZpZGVvUGxheWVyVHJhbnNsYXRpb25zKTogVmlkZW9Kc1RyYW5zbGF0aW9uIHtcbiAgcmV0dXJuIHtcbiAgICAnQXVkaW8gUGxheWVyJzogdHJhbnNsYXRpb25zWydhdWRpby1wbGF5ZXInXSxcbiAgICAnVmlkZW8gUGxheWVyJzogdHJhbnNsYXRpb25zWyd2aWRlby1wbGF5ZXInXSxcbiAgICBQbGF5OiB0cmFuc2xhdGlvbnMucGxheSxcbiAgICBQYXVzZTogdHJhbnNsYXRpb25zLnBhdXNlLFxuICAgIFJlcGxheTogdHJhbnNsYXRpb25zLnJlcGxheSxcbiAgICAnQ3VycmVudCBUaW1lJzogdHJhbnNsYXRpb25zWydjdXJyZW50LXRpbWUnXSxcbiAgICBEdXJhdGlvbjogdHJhbnNsYXRpb25zLmR1cmF0aW9uLFxuICAgICdSZW1haW5pbmcgVGltZSc6IHRyYW5zbGF0aW9uc1sncmVtYWluaW5nLXRpbWUnXSxcbiAgICAnU3RyZWFtIFR5cGUnOiB0cmFuc2xhdGlvbnNbJ3N0cmVhbS10eXBlJ10sXG4gICAgTElWRTogdHJhbnNsYXRpb25zLmxpdmUsXG4gICAgTG9hZGVkOiB0cmFuc2xhdGlvbnMubG9hZGVkLFxuICAgIFByb2dyZXNzOiB0cmFuc2xhdGlvbnMucHJvZ3Jlc3MsXG4gICAgJ1Byb2dyZXNzIEJhcic6IHRyYW5zbGF0aW9uc1sncHJvZ3Jlc3MtYmFyJ10sXG4gICAgJ3Byb2dyZXNzIGJhciB0aW1pbmc6IGN1cnJlbnRUaW1lPXsxfSBkdXJhdGlvbj17Mn0nOiB0cmFuc2xhdGlvbnNbJ3Byb2dyZXNzLWJhci10aW1pbmc6LWN1cnJlbnR0aW1lPXsxfS1kdXJhdGlvbj17Mn0nXSxcbiAgICBGdWxsc2NyZWVuOiB0cmFuc2xhdGlvbnMuZnVsbHNjcmVlbixcbiAgICAnRXhpdCBGdWxsc2NyZWVuJzogdHJhbnNsYXRpb25zWydleGl0LWZ1bGxzY3JlZW4nXSxcbiAgICBNdXRlOiB0cmFuc2xhdGlvbnMubXV0ZSxcbiAgICBVbm11dGU6IHRyYW5zbGF0aW9ucy51bm11dGUsXG4gICAgJ1BsYXliYWNrIFJhdGUnOiB0cmFuc2xhdGlvbnNbJ3BsYXliYWNrLXJhdGUnXSxcbiAgICBTdWJ0aXRsZXM6IHRyYW5zbGF0aW9ucy5zdWJ0aXRsZXMsXG4gICAgJ3N1YnRpdGxlcyBvZmYnOiB0cmFuc2xhdGlvbnNbJ3N1YnRpdGxlcy1vZmYnXSxcbiAgICBDYXB0aW9uczogdHJhbnNsYXRpb25zLmNhcHRpb25zLFxuICAgICdjYXB0aW9ucyBvZmYnOiB0cmFuc2xhdGlvbnNbJ2NhcHRpb25zLW9mZiddLFxuICAgIENoYXB0ZXJzOiB0cmFuc2xhdGlvbnMuY2hhcHRlcnMsXG4gICAgRGVzY3JpcHRpb25zOiB0cmFuc2xhdGlvbnMuZGVzY3JpcHRpb25zLFxuICAgICdkZXNjcmlwdGlvbnMgb2ZmJzogdHJhbnNsYXRpb25zWydkZXNjcmlwdGlvbnMtb2ZmJ10sXG4gICAgJ0F1ZGlvIFRyYWNrJzogdHJhbnNsYXRpb25zWydhdWRpby10cmFjayddLFxuICAgICdWb2x1bWUgTGV2ZWwnOiB0cmFuc2xhdGlvbnNbJ3ZvbHVtZS1sZXZlbCddLFxuICAgICdZb3UgYWJvcnRlZCB0aGUgbWVkaWEgcGxheWJhY2snOiB0cmFuc2xhdGlvbnNbJ3lvdS1hYm9ydGVkLXRoZS1tZWRpYS1wbGF5YmFjayddLFxuICAgICdBIG5ldHdvcmsgZXJyb3IgY2F1c2VkIHRoZSBtZWRpYSBkb3dubG9hZCB0byBmYWlsIHBhcnQtd2F5Lic6XG4gICAgICB0cmFuc2xhdGlvbnNbJ2EtbmV0d29yay1lcnJvci1jYXVzZWQtdGhlLW1lZGlhLWRvd25sb2FkLXRvLWZhaWwtcGFydC13YXkuJ10sXG4gICAgJ1RoZSBtZWRpYSBjb3VsZCBub3QgYmUgbG9hZGVkLCBlaXRoZXIgYmVjYXVzZSB0aGUgc2VydmVyIG9yIG5ldHdvcmsgZmFpbGVkIG9yIGJlY2F1c2UgdGhlIGZvcm1hdCBpcyBub3Qgc3VwcG9ydGVkLic6XG4gICAgICB0cmFuc2xhdGlvbnNbJ3RoZS1tZWRpYS1jb3VsZC1ub3QtYmUtbG9hZGVkLC1laXRoZXItYmVjYXVzZS10aGUtc2VydmVyLW9yLW5ldHdvcmstZmFpbGVkLW9yLWJlY2F1c2UtdGhlLWZvcm1hdC1pcy1ub3Qtc3VwcG9ydGVkLiddLFxuICAgICdUaGUgbWVkaWEgcGxheWJhY2sgd2FzIGFib3J0ZWQgZHVlIHRvIGEgY29ycnVwdGlvbiBwcm9ibGVtIG9yIGJlY2F1c2UgdGhlIG1lZGlhIHVzZWQgZmVhdHVyZXMgeW91ciBicm93c2VyIGRpZCBub3Qgc3VwcG9ydC4nOlxuICAgICAgdHJhbnNsYXRpb25zW1xuICAgICAgICAndGhlLW1lZGlhLXBsYXliYWNrLXdhcy1hYm9ydGVkLWR1ZS10by1hLWNvcnJ1cHRpb24tcHJvYmxlbS1vci1iZWNhdXNlLXRoZS1tZWRpYS11c2VkLWZlYXR1cmVzLXlvdXItYnJvd3Nlci1kaWQtbm90LXN1cHBvcnQuJ1xuICAgICAgXSxcbiAgICAnTm8gY29tcGF0aWJsZSBzb3VyY2Ugd2FzIGZvdW5kIGZvciB0aGlzIG1lZGlhLic6IHRyYW5zbGF0aW9uc1snbm8tY29tcGF0aWJsZS1zb3VyY2Utd2FzLWZvdW5kLWZvci10aGlzLW1lZGlhLiddLFxuICAgICdUaGUgbWVkaWEgaXMgZW5jcnlwdGVkIGFuZCB3ZSBkbyBub3QgaGF2ZSB0aGUga2V5cyB0byBkZWNyeXB0IGl0Lic6XG4gICAgICB0cmFuc2xhdGlvbnNbJ3RoZS1tZWRpYS1pcy1lbmNyeXB0ZWQtYW5kLXdlLWRvLW5vdC1oYXZlLXRoZS1rZXlzLXRvLWRlY3J5cHQtaXQuJ10sXG4gICAgJ1BsYXkgVmlkZW8nOiB0cmFuc2xhdGlvbnNbJ3BsYXktdmlkZW8nXSxcbiAgICBDbG9zZTogdHJhbnNsYXRpb25zLmNsb3NlLFxuICAgICdDbG9zZSBNb2RhbCBEaWFsb2cnOiB0cmFuc2xhdGlvbnNbJ2Nsb3NlLW1vZGFsLWRpYWxvZyddLFxuICAgICdNb2RhbCBXaW5kb3cnOiB0cmFuc2xhdGlvbnNbJ21vZGFsLXdpbmRvdyddLFxuICAgICdUaGlzIGlzIGEgbW9kYWwgd2luZG93JzogdHJhbnNsYXRpb25zWyd0aGlzLWlzLWEtbW9kYWwtd2luZG93J10sXG4gICAgJ1RoaXMgbW9kYWwgY2FuIGJlIGNsb3NlZCBieSBwcmVzc2luZyB0aGUgRXNjYXBlIGtleSBvciBhY3RpdmF0aW5nIHRoZSBjbG9zZSBidXR0b24uJzpcbiAgICAgIHRyYW5zbGF0aW9uc1sndGhpcy1tb2RhbC1jYW4tYmUtY2xvc2VkLWJ5LXByZXNzaW5nLXRoZS1lc2NhcGUta2V5LW9yLWFjdGl2YXRpbmctdGhlLWNsb3NlLWJ1dHRvbi4nXSxcbiAgICAnLCBvcGVucyBjYXB0aW9ucyBzZXR0aW5ncyBkaWFsb2cnOiB0cmFuc2xhdGlvbnNbJywtb3BlbnMtY2FwdGlvbnMtc2V0dGluZ3MtZGlhbG9nJ10sXG4gICAgJywgb3BlbnMgc3VidGl0bGVzIHNldHRpbmdzIGRpYWxvZyc6IHRyYW5zbGF0aW9uc1snLC1vcGVucy1zdWJ0aXRsZXMtc2V0dGluZ3MtZGlhbG9nJ10sXG4gICAgJywgb3BlbnMgZGVzY3JpcHRpb25zIHNldHRpbmdzIGRpYWxvZyc6IHRyYW5zbGF0aW9uc1snLC1vcGVucy1kZXNjcmlwdGlvbnMtc2V0dGluZ3MtZGlhbG9nJ10sXG4gICAgJywgc2VsZWN0ZWQnOiB0cmFuc2xhdGlvbnNbJywtc2VsZWN0ZWQnXSxcbiAgICAnY2FwdGlvbnMgc2V0dGluZ3MnOiB0cmFuc2xhdGlvbnNbJ2NhcHRpb25zLXNldHRpbmdzJ10sXG4gICAgJ3N1YnRpdGxlcyBzZXR0aW5ncyc6IHRyYW5zbGF0aW9uc1snc3VidGl0bGVzLXNldHRpbmdzJ10sXG4gICAgJ2Rlc2NyaXB0aW9ucyBzZXR0aW5ncyc6IHRyYW5zbGF0aW9uc1snZGVzY3JpcHRpb25zLXNldHRpbmdzJ10sXG4gICAgVGV4dDogdHJhbnNsYXRpb25zLnRleHQsXG4gICAgV2hpdGU6IHRyYW5zbGF0aW9ucy53aGl0ZSxcbiAgICBCbGFjazogdHJhbnNsYXRpb25zLmJsYWNrLFxuICAgIFJlZDogdHJhbnNsYXRpb25zLnJlZCxcbiAgICBHcmVlbjogdHJhbnNsYXRpb25zLmdyZWVuLFxuICAgIEJsdWU6IHRyYW5zbGF0aW9ucy5ibHVlLFxuICAgIFllbGxvdzogdHJhbnNsYXRpb25zLnllbGxvdyxcbiAgICBNYWdlbnRhOiB0cmFuc2xhdGlvbnMubWFnZW50YSxcbiAgICBDeWFuOiB0cmFuc2xhdGlvbnMuY3lhbixcbiAgICBCYWNrZ3JvdW5kOiB0cmFuc2xhdGlvbnMuYmFja2dyb3VuZCxcbiAgICBXaW5kb3c6IHRyYW5zbGF0aW9ucy53aW5kb3csXG4gICAgVHJhbnNwYXJlbnQ6IHRyYW5zbGF0aW9ucy50cmFuc3BhcmVudCxcbiAgICAnU2VtaS1UcmFuc3BhcmVudCc6IHRyYW5zbGF0aW9uc1snc2VtaS10cmFuc3BhcmVudCddLFxuICAgIE9wYXF1ZTogdHJhbnNsYXRpb25zLm9wYXF1ZSxcbiAgICAnRm9udCBTaXplJzogdHJhbnNsYXRpb25zWydmb250LXNpemUnXSxcbiAgICAnVGV4dCBFZGdlIFN0eWxlJzogdHJhbnNsYXRpb25zWyd0ZXh0LWVkZ2Utc3R5bGUnXSxcbiAgICBOb25lOiB0cmFuc2xhdGlvbnMubm9uZSxcbiAgICBVbmlmb3JtOiB0cmFuc2xhdGlvbnMudW5pZm9ybSxcbiAgICAnRHJvcCBzaGFkb3cnOiB0cmFuc2xhdGlvbnNbJ2Ryb3Atc2hhZG93J10sXG4gICAgJ0ZvbnQgRmFtaWx5JzogdHJhbnNsYXRpb25zWydmb250LWZhbWlseSddLFxuICAgICdQcm9wb3J0aW9uYWwgU2Fucy1TZXJpZic6IHRyYW5zbGF0aW9uc1sncHJvcG9ydGlvbmFsLXNhbnMtc2VyaWYnXSxcbiAgICAnTW9ub3NwYWNlIFNhbnMtU2VyaWYnOiB0cmFuc2xhdGlvbnNbJ21vbm9zcGFjZS1zYW5zLXNlcmlmJ10sXG4gICAgJ1Byb3BvcnRpb25hbCBTZXJpZic6IHRyYW5zbGF0aW9uc1sncHJvcG9ydGlvbmFsLXNlcmlmJ10sXG4gICAgJ01vbm9zcGFjZSBTZXJpZic6IHRyYW5zbGF0aW9uc1snbW9ub3NwYWNlLXNlcmlmJ10sXG4gICAgJ1NtYWxsIENhcHMnOiB0cmFuc2xhdGlvbnNbJ3NtYWxsLWNhcHMnXSxcbiAgICBSZXNldDogdHJhbnNsYXRpb25zLnJlc2V0LFxuICAgICdyZXN0b3JlIGFsbCBzZXR0aW5ncyB0byB0aGUgZGVmYXVsdCB2YWx1ZXMnOiB0cmFuc2xhdGlvbnNbJ3Jlc3RvcmUtYWxsLXNldHRpbmdzLXRvLXRoZS1kZWZhdWx0LXZhbHVlcyddLFxuICAgIERvbmU6IHRyYW5zbGF0aW9ucy5kb25lLFxuICAgICdDYXB0aW9uIFNldHRpbmdzIERpYWxvZyc6IHRyYW5zbGF0aW9uc1snY2FwdGlvbi1zZXR0aW5ncy1kaWFsb2cnXSxcbiAgICAnQmVnaW5uaW5nIG9mIGRpYWxvZyB3aW5kb3cuIEVzY2FwZSB3aWxsIGNhbmNlbCBhbmQgY2xvc2UgdGhlIHdpbmRvdy4nOlxuICAgICAgdHJhbnNsYXRpb25zWydiZWdpbm5pbmctb2YtZGlhbG9nLXdpbmRvdy4tZXNjYXBlLXdpbGwtY2FuY2VsLWFuZC1jbG9zZS10aGUtd2luZG93LiddLFxuICAgICdFbmQgb2YgZGlhbG9nIHdpbmRvdy4nOiB0cmFuc2xhdGlvbnNbJ2VuZC1vZi1kaWFsb2ctd2luZG93LiddLFxuICAgICd7MX0gaXMgbG9hZGluZy4nOiB0cmFuc2xhdGlvbnNbJ3sxfS1pcy1sb2FkaW5nLiddLFxuICAgICdFeGl0IFBpY3R1cmUtaW4tUGljdHVyZSc6IHRyYW5zbGF0aW9uc1snZXhpdC1waWN0dXJlLWluLXBpY3R1cmUnXSxcbiAgICAnUGljdHVyZS1pbi1QaWN0dXJlJzogdHJhbnNsYXRpb25zWydwaWN0dXJlLWluLXBpY3R1cmUnXSxcbiAgICBDb2xvcjogdHJhbnNsYXRpb25zLmNvbG9yLFxuICAgIE9wYWNpdHk6IHRyYW5zbGF0aW9ucy5vcGFjaXR5LFxuICAgICdUZXh0IEJhY2tncm91bmQnOiB0cmFuc2xhdGlvbnNbJ3RleHQtYmFja2dyb3VuZCddLFxuICAgICdDYXB0aW9uIEFyZWEgQmFja2dyb3VuZCc6IHRyYW5zbGF0aW9uc1snY2FwdGlvbi1hcmVhLWJhY2tncm91bmQnXSxcbiAgICAnU2tpcCBmb3J3YXJkIHsxfSBzZWNvbmRzJzogdHJhbnNsYXRpb25zWydza2lwLWZvcndhcmQtezF9LXNlY29uZHMnXSxcbiAgICAnU2tpcCBiYWNrd2FyZCB7MX0gc2Vjb25kcyc6IHRyYW5zbGF0aW9uc1snc2tpcC1iYWNrd2FyZC17MX0tc2Vjb25kcyddLFxuICB9O1xufVxuIl19