@kushki/ng-suka
Version:
<p align="center"> <h1 align="center">Suka Components Angular</h1> <p align="center"> An Angular implementation of the Suka Design System </p> </p>
390 lines • 23.8 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Directive, Input, ElementRef } from '@angular/core';
export class MarginDirective {
/**
* @param {?} elementRef
*/
constructor(elementRef) {
this.m = {};
this.elementRef = elementRef;
}
/**
* @return {?}
*/
ngOnInit() {
try {
/** @type {?} */
const marginKeys = Object.keys(this.m);
marginKeys.forEach((/**
* @param {?} key
* @return {?}
*/
key => {
if (key === 'all') {
this.elementRef.nativeElement.classList.add(`m-${this.m[key]}`);
}
else {
this.elementRef.nativeElement.classList.add(`m-${key}-${this.m[key]}`);
}
}));
}
catch (err) {
console.error(`Malformed margins\`: ${err}`);
}
}
}
MarginDirective.decorators = [
{ type: Directive, args: [{
// tslint:disable-next-line: directive-selector
selector: '[m]'
},] }
];
/** @nocollapse */
MarginDirective.ctorParameters = () => [
{ type: ElementRef }
];
MarginDirective.propDecorators = {
m: [{ type: Input }]
};
if (false) {
/** @type {?} */
MarginDirective.prototype.m;
/**
* @type {?}
* @private
*/
MarginDirective.prototype.elementRef;
}
export class MarginTopDirective {
/**
* @param {?} elementRef
*/
constructor(elementRef) {
this.mt = {};
this.elementRef = elementRef;
}
/**
* @return {?}
*/
ngOnInit() {
try {
/** @type {?} */
const marginKeys = Object.keys(this.mt);
marginKeys.forEach((/**
* @param {?} key
* @return {?}
*/
key => {
if (key === 'all') {
this.elementRef.nativeElement.classList.add(`mt-${this.mt[key]}`);
}
else {
this.elementRef.nativeElement.classList.add(`mt-${key}-${this.mt[key]}`);
}
}));
}
catch (err) {
console.error(`Malformed margins\`: ${err}`);
}
}
}
MarginTopDirective.decorators = [
{ type: Directive, args: [{
selector: '[mt]'
},] }
];
/** @nocollapse */
MarginTopDirective.ctorParameters = () => [
{ type: ElementRef }
];
MarginTopDirective.propDecorators = {
mt: [{ type: Input }]
};
if (false) {
/** @type {?} */
MarginTopDirective.prototype.mt;
/**
* @type {?}
* @private
*/
MarginTopDirective.prototype.elementRef;
}
export class MarginBottomDirective {
/**
* @param {?} elementRef
*/
constructor(elementRef) {
this.mb = {};
this.elementRef = elementRef;
}
/**
* @return {?}
*/
ngOnInit() {
try {
/** @type {?} */
const marginKeys = Object.keys(this.mb);
marginKeys.forEach((/**
* @param {?} key
* @return {?}
*/
key => {
if (key === 'all') {
this.elementRef.nativeElement.classList.add(`mb-${this.mb[key]}`);
}
else {
this.elementRef.nativeElement.classList.add(`mb-${key}-${this.mb[key]}`);
}
}));
}
catch (err) {
console.error(`Malformed margins\`: ${err}`);
}
}
}
MarginBottomDirective.decorators = [
{ type: Directive, args: [{
// tslint:disable-next-line: directive-selector
selector: '[mb]'
},] }
];
/** @nocollapse */
MarginBottomDirective.ctorParameters = () => [
{ type: ElementRef }
];
MarginBottomDirective.propDecorators = {
mb: [{ type: Input }]
};
if (false) {
/** @type {?} */
MarginBottomDirective.prototype.mb;
/**
* @type {?}
* @private
*/
MarginBottomDirective.prototype.elementRef;
}
export class MarginLeftDirective {
/**
* @param {?} elementRef
*/
constructor(elementRef) {
this.ml = {};
this.elementRef = elementRef;
}
/**
* @return {?}
*/
ngOnInit() {
try {
/** @type {?} */
const marginKeys = Object.keys(this.ml);
marginKeys.forEach((/**
* @param {?} key
* @return {?}
*/
key => {
if (key === 'all') {
this.elementRef.nativeElement.classList.add(`ml-${this.ml[key]}`);
}
else {
this.elementRef.nativeElement.classList.add(`ml-${key}-${this.ml[key]}`);
}
}));
}
catch (err) {
console.error(`Malformed margins\`: ${err}`);
}
}
}
MarginLeftDirective.decorators = [
{ type: Directive, args: [{
// tslint:disable-next-line: directive-selector
selector: '[ml]'
},] }
];
/** @nocollapse */
MarginLeftDirective.ctorParameters = () => [
{ type: ElementRef }
];
MarginLeftDirective.propDecorators = {
ml: [{ type: Input }]
};
if (false) {
/** @type {?} */
MarginLeftDirective.prototype.ml;
/**
* @type {?}
* @private
*/
MarginLeftDirective.prototype.elementRef;
}
export class MarginRightDirective {
/**
* @param {?} elementRef
*/
constructor(elementRef) {
this.mr = {};
this.elementRef = elementRef;
}
/**
* @return {?}
*/
ngOnInit() {
try {
/** @type {?} */
const marginKeys = Object.keys(this.mr);
marginKeys.forEach((/**
* @param {?} key
* @return {?}
*/
key => {
if (key === 'all') {
this.elementRef.nativeElement.classList.add(`mr-${this.mr[key]}`);
}
else {
this.elementRef.nativeElement.classList.add(`mr-${key}-${this.mr[key]}`);
}
}));
}
catch (err) {
console.error(`Malformed margins\`: ${err}`);
}
}
}
MarginRightDirective.decorators = [
{ type: Directive, args: [{
// tslint:disable-next-line: directive-selector
selector: '[mr]'
},] }
];
/** @nocollapse */
MarginRightDirective.ctorParameters = () => [
{ type: ElementRef }
];
MarginRightDirective.propDecorators = {
mr: [{ type: Input }]
};
if (false) {
/** @type {?} */
MarginRightDirective.prototype.mr;
/**
* @type {?}
* @private
*/
MarginRightDirective.prototype.elementRef;
}
export class MarginHorizontalDirective {
/**
* @param {?} elementRef
*/
constructor(elementRef) {
this.mx = {};
this.elementRef = elementRef;
}
/**
* @return {?}
*/
ngOnInit() {
try {
/** @type {?} */
const marginKeys = Object.keys(this.mx);
marginKeys.forEach((/**
* @param {?} key
* @return {?}
*/
key => {
if (key === 'all') {
this.elementRef.nativeElement.classList.add(`mx-${this.mx[key]}`);
}
else {
this.elementRef.nativeElement.classList.add(`mx-${key}-${this.mx[key]}`);
}
}));
}
catch (err) {
console.error(`Malformed margins\`: ${err}`);
}
}
}
MarginHorizontalDirective.decorators = [
{ type: Directive, args: [{
// tslint:disable-next-line: directive-selector
selector: '[mx]'
},] }
];
/** @nocollapse */
MarginHorizontalDirective.ctorParameters = () => [
{ type: ElementRef }
];
MarginHorizontalDirective.propDecorators = {
mx: [{ type: Input }]
};
if (false) {
/** @type {?} */
MarginHorizontalDirective.prototype.mx;
/**
* @type {?}
* @private
*/
MarginHorizontalDirective.prototype.elementRef;
}
export class MarginVerticalDirective {
/**
* @param {?} elementRef
*/
constructor(elementRef) {
this.my = {};
this.elementRef = elementRef;
}
/**
* @return {?}
*/
ngOnInit() {
try {
/** @type {?} */
const marginKeys = Object.keys(this.my);
marginKeys.forEach((/**
* @param {?} key
* @return {?}
*/
key => {
if (key === 'all') {
this.elementRef.nativeElement.classList.add(`my-${this.my[key]}`);
}
else {
this.elementRef.nativeElement.classList.add(`my-${key}-${this.my[key]}`);
}
}));
}
catch (err) {
console.error(`Malformed margins\`: ${err}`);
}
}
}
MarginVerticalDirective.decorators = [
{ type: Directive, args: [{
// tslint:disable-next-line: directive-selector
selector: '[my]'
},] }
];
/** @nocollapse */
MarginVerticalDirective.ctorParameters = () => [
{ type: ElementRef }
];
MarginVerticalDirective.propDecorators = {
my: [{ type: Input }]
};
if (false) {
/** @type {?} */
MarginVerticalDirective.prototype.my;
/**
* @type {?}
* @private
*/
MarginVerticalDirective.prototype.elementRef;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFyZ2luLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BrdXNoa2kvbmctc3VrYS8iLCJzb3VyY2VzIjpbImxpYi9zcGFjaW5nL21hcmdpbi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQU1yRSxNQUFNLE9BQU8sZUFBZTs7OztJQUsxQixZQUFZLFVBQXNCO1FBSnpCLE1BQUMsR0FBRyxFQUFFLENBQUM7UUFLZCxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztJQUMvQixDQUFDOzs7O0lBRUQsUUFBUTtRQUNOLElBQUk7O2tCQUNJLFVBQVUsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFFdEMsVUFBVSxDQUFDLE9BQU87Ozs7WUFBQyxHQUFHLENBQUMsRUFBRTtnQkFDdkIsSUFBSSxHQUFHLEtBQUssS0FBSyxFQUFFO29CQUNqQixJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7aUJBQ2pFO3FCQUFNO29CQUNMLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7aUJBQ3hFO1lBQ0gsQ0FBQyxFQUFDLENBQUM7U0FDSjtRQUFDLE9BQU8sR0FBRyxFQUFFO1lBQ1osT0FBTyxDQUFDLEtBQUssQ0FBQyx3QkFBd0IsR0FBRyxFQUFFLENBQUMsQ0FBQztTQUM5QztJQUNILENBQUM7OztZQTNCRixTQUFTLFNBQUM7O2dCQUVULFFBQVEsRUFBRSxLQUFLO2FBQ2hCOzs7O1lBTGtDLFVBQVU7Oztn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dmUsIElucHV0LCBPbkluaXQsIEVsZW1lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQERpcmVjdGl2ZSh7XG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogZGlyZWN0aXZlLXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnW21dJ1xufSlcbmV4cG9ydCBjbGFzcyBNYXJnaW5EaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBtID0ge307XG5cbiAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmO1xuXG4gIGNvbnN0cnVjdG9yKGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHtcbiAgICB0aGlzLmVsZW1lbnRSZWYgPSBlbGVtZW50UmVmO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IG1hcmdpbktleXMgPSBPYmplY3Qua2V5cyh0aGlzLm0pO1xuXG4gICAgICBtYXJnaW5LZXlzLmZvckVhY2goa2V5ID0+IHtcbiAgICAgICAgaWYgKGtleSA9PT0gJ2FsbCcpIHtcbiAgICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKGBtLSR7dGhpcy5tW2tleV19YCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZChgbS0ke2tleX0tJHt0aGlzLm1ba2V5XX1gKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGBNYWxmb3JtZWQgbWFyZ2luc1xcYDogJHtlcnJ9YCk7XG4gICAgfVxuICB9XG59XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1ttdF0nXG59KVxuZXhwb3J0IGNsYXNzIE1hcmdpblRvcERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIG10ID0ge307XG5cbiAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmO1xuXG4gIGNvbnN0cnVjdG9yKGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHtcbiAgICB0aGlzLmVsZW1lbnRSZWYgPSBlbGVtZW50UmVmO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IG1hcmdpbktleXMgPSBPYmplY3Qua2V5cyh0aGlzLm10KTtcblxuICAgICAgbWFyZ2luS2V5cy5mb3JFYWNoKGtleSA9PiB7XG4gICAgICAgIGlmIChrZXkgPT09ICdhbGwnKSB7XG4gICAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZChgbXQtJHt0aGlzLm10W2tleV19YCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZChgbXQtJHtrZXl9LSR7dGhpcy5tdFtrZXldfWApO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYE1hbGZvcm1lZCBtYXJnaW5zXFxgOiAke2Vycn1gKTtcbiAgICB9XG4gIH1cbn1cblxuQERpcmVjdGl2ZSh7XG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogZGlyZWN0aXZlLXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnW21iXSdcbn0pXG5leHBvcnQgY2xhc3MgTWFyZ2luQm90dG9tRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgbWIgPSB7fTtcblxuICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY7XG5cbiAgY29uc3RydWN0b3IoZWxlbWVudFJlZjogRWxlbWVudFJlZikge1xuICAgIHRoaXMuZWxlbWVudFJlZiA9IGVsZW1lbnRSZWY7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgbWFyZ2luS2V5cyA9IE9iamVjdC5rZXlzKHRoaXMubWIpO1xuXG4gICAgICBtYXJnaW5LZXlzLmZvckVhY2goa2V5ID0+IHtcbiAgICAgICAgaWYgKGtleSA9PT0gJ2FsbCcpIHtcbiAgICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKGBtYi0ke3RoaXMubWJba2V5XX1gKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKGBtYi0ke2tleX0tJHt0aGlzLm1iW2tleV19YCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgY29uc29sZS5lcnJvcihgTWFsZm9ybWVkIG1hcmdpbnNcXGA6ICR7ZXJyfWApO1xuICAgIH1cbiAgfVxufVxuXG5ARGlyZWN0aXZlKHtcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBkaXJlY3RpdmUtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICdbbWxdJ1xufSlcbmV4cG9ydCBjbGFzcyBNYXJnaW5MZWZ0RGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgbWwgPSB7fTtcblxuICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY7XG5cbiAgY29uc3RydWN0b3IoZWxlbWVudFJlZjogRWxlbWVudFJlZikge1xuICAgIHRoaXMuZWxlbWVudFJlZiA9IGVsZW1lbnRSZWY7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgbWFyZ2luS2V5cyA9IE9iamVjdC5rZXlzKHRoaXMubWwpO1xuXG4gICAgICBtYXJnaW5LZXlzLmZvckVhY2goa2V5ID0+IHtcbiAgICAgICAgaWYgKGtleSA9PT0gJ2FsbCcpIHtcbiAgICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKGBtbC0ke3RoaXMubWxba2V5XX1gKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKGBtbC0ke2tleX0tJHt0aGlzLm1sW2tleV19YCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgY29uc29sZS5lcnJvcihgTWFsZm9ybWVkIG1hcmdpbnNcXGA6ICR7ZXJyfWApO1xuICAgIH1cbiAgfVxufVxuXG5ARGlyZWN0aXZlKHtcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBkaXJlY3RpdmUtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICdbbXJdJ1xufSlcbmV4cG9ydCBjbGFzcyBNYXJnaW5SaWdodERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIG1yID0ge307XG5cbiAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmO1xuXG4gIGNvbnN0cnVjdG9yKGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHtcbiAgICB0aGlzLmVsZW1lbnRSZWYgPSBlbGVtZW50UmVmO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IG1hcmdpbktleXMgPSBPYmplY3Qua2V5cyh0aGlzLm1yKTtcblxuICAgICAgbWFyZ2luS2V5cy5mb3JFYWNoKGtleSA9PiB7XG4gICAgICAgIGlmIChrZXkgPT09ICdhbGwnKSB7XG4gICAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZChgbXItJHt0aGlzLm1yW2tleV19YCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZChgbXItJHtrZXl9LSR7dGhpcy5tcltrZXldfWApO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYE1hbGZvcm1lZCBtYXJnaW5zXFxgOiAke2Vycn1gKTtcbiAgICB9XG4gIH1cbn1cblxuQERpcmVjdGl2ZSh7XG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogZGlyZWN0aXZlLXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnW214XSdcbn0pXG5leHBvcnQgY2xhc3MgTWFyZ2luSG9yaXpvbnRhbERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIG14ID0ge307XG5cbiAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmO1xuXG4gIGNvbnN0cnVjdG9yKGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHtcbiAgICB0aGlzLmVsZW1lbnRSZWYgPSBlbGVtZW50UmVmO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IG1hcmdpbktleXMgPSBPYmplY3Qua2V5cyh0aGlzLm14KTtcblxuICAgICAgbWFyZ2luS2V5cy5mb3JFYWNoKGtleSA9PiB7XG4gICAgICAgIGlmIChrZXkgPT09ICdhbGwnKSB7XG4gICAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZChgbXgtJHt0aGlzLm14W2tleV19YCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZChgbXgtJHtrZXl9LSR7dGhpcy5teFtrZXldfWApO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYE1hbGZvcm1lZCBtYXJnaW5zXFxgOiAke2Vycn1gKTtcbiAgICB9XG4gIH1cbn1cblxuQERpcmVjdGl2ZSh7XG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogZGlyZWN0aXZlLXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnW215XSdcbn0pXG5leHBvcnQgY2xhc3MgTWFyZ2luVmVydGljYWxEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBteSA9IHt9O1xuXG4gIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZjtcblxuICBjb25zdHJ1Y3RvcihlbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7XG4gICAgdGhpcy5lbGVtZW50UmVmID0gZWxlbWVudFJlZjtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBtYXJnaW5LZXlzID0gT2JqZWN0LmtleXModGhpcy5teSk7XG5cbiAgICAgIG1hcmdpbktleXMuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgICBpZiAoa2V5ID09PSAnYWxsJykge1xuICAgICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoYG15LSR7dGhpcy5teVtrZXldfWApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoYG15LSR7a2V5fS0ke3RoaXMubXlba2V5XX1gKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGBNYWxmb3JtZWQgbWFyZ2luc1xcYDogJHtlcnJ9YCk7XG4gICAgfVxuICB9XG59XG4iXX0=