@libs-ui/components-inputs-multi-language 0.2.74 → 0.2.76

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/index.mjs CHANGED
@@ -1,4 +1,4 @@
1
- export * from './inputs-multi-language.component';
1
+ export * from './multi-language.component';
2
2
  export * from './items/items.component';
3
3
  export * from './interfaces/multi-language.interface';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvaW5wdXRzL211bHRpLWxhbmd1YWdlL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyx1Q0FBdUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vaW5wdXRzLW11bHRpLWxhbmd1YWdlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2l0ZW1zL2l0ZW1zLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2ludGVyZmFjZXMvbXVsdGktbGFuZ3VhZ2UuaW50ZXJmYWNlJzsiXX0=
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvaW5wdXRzL211bHRpLWxhbmd1YWdlL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyx1Q0FBdUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbXVsdGktbGFuZ3VhZ2UuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vaXRlbXMvaXRlbXMuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vaW50ZXJmYWNlcy9tdWx0aS1sYW5ndWFnZS5pbnRlcmZhY2UnOyJdfQ==
@@ -3,7 +3,7 @@ import { LibsUiComponentsButtonsButtonComponent } from '@libs-ui/components-butt
3
3
  import { LibsUiComponentsInputsValidComponent } from '@libs-ui/components-inputs-valid';
4
4
  import { cloneDeep, isNil, UtilsCache } from '@libs-ui/utils';
5
5
  import { TranslateModule } from '@ngx-translate/core';
6
- import { LibsUiComponentsInputsMultiLanguageComponent } from '../inputs-multi-language.component';
6
+ import { LibsUiComponentsInputsMultiLanguageComponent } from '../multi-language.component';
7
7
  import { LibsUiComponentsInputsMultiLanguageGetItemPipe } from '../pipes/get-item.pipe';
8
8
  import * as i0 from "@angular/core";
9
9
  import * as i1 from "@ngx-translate/core";
@@ -149,4 +149,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
149
149
  LibsUiComponentsButtonsButtonComponent
150
150
  ], template: "<div class=\"mt-[4px]\">\n @for (item of dataMultiLanguage(); track item) {\n <div class=\"flex w-full\"\n [class.mt-[12px]]=\"!$first\">\n <div class=\"libs-ui-border-general\"\n [class.w-full]=\"dataMultiLanguage().length < 2\"\n [class.w-[calc(100%-28px)]]=\"dataMultiLanguage().length > 1\">\n @if (configHeader(); as configHeader) {\n <div class=\"flex bg-[#e6eef5] px-[12px] py-[4px]\">\n <div class=\"libs-ui-font-h6m h-[32px] flex items-center\">{{ (configHeader.title ?? ' ') | translate }}</div>\n <div (click)=\"handlerClick($event)\"\n class=\"pl-[8px]\">\n @if (configHeader.keyBindData | LibsUiComponentsInputsMultiLanguageGetItemPipe:item; as itemMap) {\n <libs_ui-components-inputs-valid [(item)]=\"itemMap\"\n [dataType]=\"(configHeader.type && configHeader.type === 'number') ? 'int' : 'string'\"\n [fieldNameBind]=\"langDefault()\"\n [emitEmptyInDataTypeNumber]=\"true\"\n [validRequired]=\"{isRequired: configItems()[0].validRequired?.isRequired ?? false}\"\n [placeholder]=\"'i18n_enter_value'\"\n [acceptNegativeValue]=\"acceptNegativeValue() ?? true\"\n [valueUpDownNumber]=\"valueUpDownNumber() || 1\"\n [maxValueNumber]=\"maxValueNumber()\"\n [fixedFloat]=\"15\"\n (outValueChange)=\"handlerChangeValue($event, 'input')\"\n (outFunctionsControl)=\"handlerFunctionsControlInputValid($event)\" />\n }\n </div>\n </div>\n <div class=\"px-[12px] pt-[8px] pb-[12px] flex w-full\">\n <libs_ui-components-inputs-multi_language class=\"w-full\"\n [singleLanguage]=\"singleLanguage() || false\"\n [multiLine]=\"false\"\n [titleField]=\"configItems()[0].titleField || ''\"\n [keyHeader]=\"configHeader.keyBindData ?? ''\"\n [placeholder]=\"'i18n_import_content'\"\n [classIncludeValue]=\"'libs-ui-font-h4r'\"\n [data]=\"dataMultiKey()[$index]\"\n [validRequired]=\"validRequiredWhenInputHasValue() || configItems()[0].validRequired\"\n [dataLanguage]=\"item\"\n [zIndex]=\"1203\"\n [acceptNegativeValue]=\"acceptNegativeValue() ?? true\"\n [valueUpDownNumber]=\"valueUpDownNumber() || 1\"\n [maxValueNumber]=\"maxValueNumber()\"\n [onlyAcceptNegativeValue]=\"onlyAcceptNegativeValue()\"\n [viewType]=\"configItems()[0].type ? (configItems()[0].type === 'number' ? 'number' : configItems()[0].type === 'float' ? 'float' : 'text') : 'text'\"\n (outEventMultiLanguage)=\"handlerChangeValue()\"\n (outChangeValueInput)=\"handlerChangeValue()\"\n (outFunctionsControl)=\"handlerFunctionsControlInputLanguage($event)\" />\n </div>\n }\n </div>\n @if (!$first) {\n <libs_ui-components-buttons-button [type]=\"'button-link-custom'\"\n [buttonCustom]=\"{\n configStepColor: {\n text: '#071631',\n text_hover: '#ee2d41',\n text_active: '#ee2d41',\n text_disable: '071631'\n },\n rootColor: '#071631'\n }\"\n [iconOnlyType]=\"true\"\n [popover]=\"{config: {content: 'i18n_delete', zIndex: 1205}}\"\n [classIconLeft]=\"'libs-ui-icon-remove'\"\n [classInclude]=\"'!p-0 ml-[8px] mt-[12px]'\"\n (outClick)=\"handlerRemove($index)\" />\n }\n </div>\n }\n @if (!ignoreAdd()) {\n <libs_ui-components-buttons-button [type]=\"'button-link-primary'\"\n [classIconLeft]=\"'libs-ui-icon-add mr-[8px]'\"\n [classLabel]=\"'libs-ui-font-h5r'\"\n [classInclude]=\"'!px-0 mt-[8px]'\"\n [label]=\"labelAddItem() || ''\"\n (outClick)=\"handlerAdd()\" />\n }\n</div>\n" }]
151
151
  }], ctorParameters: () => [] });
152
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXRlbXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy11aS9jb21wb25lbnRzL2lucHV0cy9tdWx0aS1sYW5ndWFnZS9zcmMvaXRlbXMvaXRlbXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy11aS9jb21wb25lbnRzL2lucHV0cy9tdWx0aS1sYW5ndWFnZS9zcmMvaXRlbXMvaXRlbXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1SCxPQUFPLEVBQUUsc0NBQXNDLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM1RixPQUFPLEVBQW1ELG9DQUFvQyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDekksT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSw0Q0FBNEMsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBRWxHLE9BQU8sRUFBRSw4Q0FBOEMsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7QUFnQnhGLE1BQU0sT0FBTyxpREFBaUQ7SUFFNUQsOERBQThEO0lBQ3BELFlBQVksR0FBRyxNQUFNLENBQWEsRUFBRSxDQUFDLENBQUM7SUFDdEMsV0FBVyxHQUFHLE1BQU0sQ0FBUyxVQUFVLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUNuRCxZQUFZLEdBQUcsTUFBTSxDQUF5QyxTQUFTLENBQUMsQ0FBQztJQUN6RSxhQUFhLEdBQUcsTUFBTSxDQUFpQixFQUFFLFVBQVUsRUFBRSxL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LG9DQUFvQyxxekRBQ3BDLDRDQUE0Qywrc0JBQzVDLHNDQUFzQzs7NEZBRzdCLGlEQUFpRDtrQkFkN0QsU0FBUzsrQkFFRSxnREFBZ0QsY0FFOUMsSUFBSSxtQkFDQyx1QkFBdUIsQ0FBQyxNQUFNLFdBQ3RDO3dCQUNQLGVBQWU7d0JBQ2YsOENBQThDO3dCQUM5QyxvQ0FBb0M7d0JBQ3BDLDRDQUE0Qzt3QkFDNUMsc0NBQXNDO3FCQUN2QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGVmZmVjdCwgaW5wdXQsIG1vZGVsLCBPbkluaXQsIG91dHB1dCwgc2lnbmFsLCB1bnRyYWNrZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExpYnNVaUNvbXBvbmVudHNCdXR0b25zQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQGxpYnMtdWkvY29tcG9uZW50cy1idXR0b25zLWJ1dHRvbic7XG5pbXBvcnQgeyBJSW5wdXRWYWxpZEZ1bmN0aW9uQ29udHJvbEV2ZW50LCBJVmFsaWRSZXF1aXJlZCwgTGlic1VpQ29tcG9uZW50c0lucHV0c1ZhbGlkQ29tcG9uZW50IH0gZnJvbSAnQGxpYnMtdWkvY29tcG9uZW50cy1pbnB1dHMtdmFsaWQnO1xuaW1wb3J0IHsgY2xvbmVEZWVwLCBpc05pbCwgVXRpbHNDYWNoZSB9IGZyb20gJ0BsaWJzLXVpL3V0aWxzJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgTGlic1VpQ29tcG9uZW50c0lucHV0c011bHRpTGFuZ3VhZ2VDb21wb25lbnQgfSBmcm9tICcuLi9pbnB1dHMtbXVsdGktbGFuZ3VhZ2UuY29tcG9uZW50JztcbmltcG9ydCB7IElDb25maWdNdWx0aUxhbmd1YWdlSGVhZGVyLCBJRGF0YUl0ZW0sIElEYXRhTXVsdGlMYW5ndWFnZSwgSUlucHV0TXVsdGlMYW5ndWFnZUZ1bmN0aW9uQ29udHJvbEV2ZW50IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9tdWx0aS1sYW5ndWFnZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgTGlic1VpQ29tcG9uZW50c0lucHV0c011bHRpTGFuZ3VhZ2VHZXRJdGVtUGlwZSB9IGZyb20gJy4uL3BpcGVzL2dldC1pdGVtLnBpcGUnO1xuXG5AQ29tcG9uZW50KHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICdsaWJzX3VpLWNvbXBvbmVudHMtaW5wdXRzLW11bHRpX2xhbmd1YWdlLWl0ZW1zJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2l0ZW1zLmNvbXBvbmVudC5odG1sJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtcbiAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgTGlic1VpQ29tcG9uZW50c0lucHV0c011bHRpTGFuZ3VhZ2VHZXRJdGVtUGlwZSxcbiAgICBMaWJzVWlDb21wb25lbnRzSW5wdXRzVmFsaWRDb21wb25lbnQsXG4gICAgTGlic1VpQ29tcG9uZW50c0lucHV0c011bHRpTGFuZ3VhZ2VDb21wb25lbnQsXG4gICAgTGlic1VpQ29tcG9uZW50c0J1dHRvbnNCdXR0b25Db21wb25lbnRcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBMaWJzVWlDb21wb25lbnRzSW5wdXRzTXVsdGlMYW5ndWFnZUl0ZW1zQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICBwcm90ZWN0ZWQgZGF0YU11bHRpS2V5ID0gc2lnbmFsPEFycmF5PGFueT4+KFtdKTtcbiAgcHJvdGVjdGVkIGxhbmdEZWZhdWx0ID0gc2lnbmFsPHN0cmluZz4oVXRpbHNDYWNoZS5nZXRMYW5nKCkpO1xuICBwcm90ZWN0ZWQgY29uZmlnSGVhZGVyID0gc2lnbmFsPElDb25maWdNdWx0aUxhbmd1YWdlSGVhZGVyIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICBwcm90ZWN0ZWQgdmFsaWRSZXF1aXJlZCA9IHNpZ25hbDxJVmFsaWRSZXF1aXJlZD4oeyBpc1JlcXVpcmVkOiBmYWxzZSB9KTtcbiAgcHJvdGVjdGVkIHZhbGlkUmVxdWlyZWRXaGVuSW5wdXRIYXNWYWx1ZSA9IHNpZ25hbDxJVmFsaWRSZXF1aXJlZCB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcHJvdGVjdGVkIGRhdGFIZWFkZXIgPSBzaWduYWw8c3RyaW5nIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICBwcm90ZWN0ZWQgbXVsdGlMYW5ndWFnZUZ1bmN0aW9uQ29udHJvbCA9IHNpZ25hbDxBcnJheTxJSW5wdXRNdWx0aUxhbmd1YWdlRnVuY3Rpb25Db250cm9sRXZlbnQ+PihbXSk7XG4gIHByb3RlY3RlZCBpbnB1dFZhbGlkRnVuY3Rpb25Db250cm9sID0gc2lnbmFsPEFycmF5PElJbnB1dFZhbGlkRnVuY3Rpb25Db250cm9sRXZlbnQ+PihbXSk7XG5cbiAgcmVhZG9ubHkgY29uZmlnSXRlbXMgPSBpbnB1dDxBcnJheTxJRGF0YUl0ZW0+PihbXSk7XG4gIHJlYWRvbmx5IGRhdGFNdWx0aUxhbmd1YWdlID0gbW9kZWw8QXJyYXk8SURhdGFNdWx0aUxhbmd1YWdlPj4oW3t9XSk7XG4gIHJlYWRvbmx5IHpJbmRleCA9IGlucHV0PG51bWJlcj4oKTtcbiAgcmVhZG9ubHkgaWdub3JlQWRkID0gaW5wdXQ8Ym9vbGVhbj4oKTtcbiAgcmVhZG9ubHkgbGFiZWxBZGRJdGVtID0gaW5wdXQ8c3RyaW5nPigpO1xuICByZWFkb25seSBzaW5nbGVMYW5ndWFnZSA9IGlucHV0PGJvb2xlYW4+KCk7XG4gIHJlYWRvbmx5IGFjY2VwdE5lZ2F0aXZlVmFsdWUgPSBpbnB1dDxib29sZWFuPigpO1xuICByZWFkb25seSB2YWx1ZVVwRG93bk51bWJlciA9IGlucHV0PG51bWJlcj4oKTtcbiAgcmVhZG9ubHkgbWF4VmFsdWVOdW1iZXIgPSBpbnB1dDxudW1iZXI+KCk7XG4gIHJlYWRvbmx5IG9ubHlBY2NlcHROZWdhdGl2ZVZhbHVlID0gaW5wdXQ8Ym9vbGVhbj4oKTtcblxuICByZWFkb25seSBvdXRDbGljayA9IG91dHB1dDx2b2lkPigpO1xuICByZWFkb25seSBvdXRGdW5jdGlvbkNvbnRyb2wgPSBvdXRwdXQ8SUlucHV0TXVsdGlMYW5ndWFnZUZ1bmN0aW9uQ29udHJvbEV2ZW50PigpO1xuICByZWFkb25seSBvdXRDaGFuZ2VWYWx1ZSA9IG91dHB1dDx2b2lkPigpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCBjb25maWdJdGVtcyA9IHRoaXMuY29uZmlnSXRlbXMoKTtcbiAgICAgIHVudHJhY2tlZCgoKSA9PiB7XG4gICAgICAgIGlmIChjb25maWdJdGVtcyAmJiBjb25maWdJdGVtcy5sZW5ndGgpIHtcbiAgICAgICAgICB0aGlzLmNvbmZpZ0hlYWRlci5zZXQoY29uZmlnSXRlbXNbMF0uaGVhZGVyKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3QgZGF0YU11bHRpTGFuZ3VhZ2UgPSB0aGlzLmRhdGFNdWx0aUxhbmd1YWdlKCk7XG4gICAgICB1bnRyYWNrZWQoKCkgPT4ge1xuICAgICAgICBpZiAoIWRhdGFNdWx0aUxhbmd1YWdlIHx8ICFkYXRhTXVsdGlMYW5ndWFnZS5sZW5ndGgpIHtcbiAgICAgICAgICB0aGlzLmRhdGFNdWx0aUxhbmd1YWdlLnNldChbe31dKTtcbiAgICAgICAgICBjb25zdCBjb25maWdIZWFkZXIgPSB0aGlzLmNvbmZpZ0hlYWRlcigpO1xuICAgICAgICAgIGlmIChjb25maWdIZWFkZXIgJiYgY29uZmlnSGVhZGVyLmRhdGFEZWZhdWx0KSB7XG4gICAgICAgICAgICB0aGlzLmRhdGFNdWx0aUxhbmd1YWdlLnNldChbY2xvbmVEZWVwKGNvbmZpZ0hlYWRlci5kYXRhRGVmYXVsdCldKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5oYW5kbGVyQ29uZmlnTXVsdGkoKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5vdXRGdW5jdGlvbkNvbnRyb2wuZW1pdCh7XG4gICAgICBjaGVja0lzVmFsaWQ6IHRoaXMudmFsaWRhdGUuYmluZCh0aGlzKSxcbiAgICAgIGdldERhdGE6IHRoaXMuZ2V0RGF0YS5iaW5kKHRoaXMpXG4gICAgfSk7XG4gICAgY29uc3QgY29uZmlnSXRlbXMgPSB0aGlzLmNvbmZpZ0l0ZW1zKCk7XG4gICAgaWYgKGNvbmZpZ0l0ZW1zICYmIGNvbmZpZ0l0ZW1zLmxlbmd0aCAmJiBjb25maWdJdGVtc1swXS52YWxpZFJlcXVpcmVkKSB7XG4gICAgICB0aGlzLnZhbGlkUmVxdWlyZWQuc2V0KGNvbmZpZ0l0ZW1zWzBdLnZhbGlkUmVxdWlyZWQpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBoYW5kbGVyQ29uZmlnTXVsdGkoKSB7XG4gICAgdGhpcy5kYXRhTXVsdGlLZXkuc2V0KFtdKTtcbiAgICB0aGlzLmRhdGFNdWx0aUxhbmd1YWdlKCkuZm9yRWFjaCgoKSA9PiB7XG4gICAgICBjb25zdCBjb25maWdJdGVtcyA9IHRoaXMuY29uZmlnSXRlbXMoKTtcbiAgICAgIGlmIChjb25maWdJdGVtcykge1xuICAgICAgICB0aGlzLmRhdGFNdWx0aUtleSgpLnB1c2goY29uZmlnSXRlbXMpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMuZGF0YU11bHRpS2V5LnVwZGF0ZShpdGVtcyA9PiBbLi4uaXRlbXNdKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBoYW5kbGVyQWRkKCkge1xuICAgIGxldCBkYXRhTGFuZ3VhZ2U6IElEYXRhTXVsdGlMYW5ndWFnZSA9IHt9O1xuICAgIGNvbnN0IGNvbmZpZ0hlYWRlciA9IHRoaXMuY29uZmlnSGVhZGVyKCk7XG4gICAgaWYgKGNvbmZpZ0hlYWRlcikge1xuICAgICAgZGF0YUxhbmd1YWdlID0gY2xvbmVEZWVwKGNvbmZpZ0hlYWRlci5kYXRhRGVmYXVsdCk7XG4gICAgfVxuICAgIHRoaXMuZGF0YU11bHRpTGFuZ3VhZ2UudXBkYXRlKGl0ZW1zID0+IFsuLi5pdGVtcywgZGF0YUxhbmd1YWdlXSk7XG4gICAgdGhpcy5kYXRhTXVsdGlLZXkudXBkYXRlKGl0ZW1zID0+IFsuLi5pdGVtcywgdGhpcy5jb25maWdJdGVtcygpXSk7XG4gICAgdGhpcy5oYW5kbGVyQ2hhbmdlVmFsdWUoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBoYW5kbGVyUmVtb3ZlKGluZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLmRhdGFNdWx0aUxhbmd1YWdlLnVwZGF0ZShpdGVtcyA9PiB7XG4gICAgICBpdGVtcy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgcmV0dXJuIFsuLi5pdGVtc107XG4gICAgfSk7XG4gICAgdGhpcy5oYW5kbGVyQ2hhbmdlVmFsdWUoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBoYW5kbGVyQ2xpY2soZTogRXZlbnQpIHtcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMub3V0Q2xpY2suZW1pdCgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGhhbmRsZXJGdW5jdGlvbnNDb250cm9sSW5wdXRMYW5ndWFnZShldmVudDogSUlucHV0TXVsdGlMYW5ndWFnZUZ1bmN0aW9uQ29udHJvbEV2ZW50KSB7XG4gICAgdGhpcy5tdWx0aUxhbmd1YWdlRnVuY3Rpb25Db250cm9sLnVwZGF0ZShpdGVtcyA9PiBbLi4uaXRlbXMsIGV2ZW50XSlcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBoYW5kbGVyRnVuY3Rpb25zQ29udHJvbElucHV0VmFsaWQoZXZlbnQ6IElJbnB1dFZhbGlkRnVuY3Rpb25Db250cm9sRXZlbnQpIHtcbiAgICB0aGlzLmlucHV0VmFsaWRGdW5jdGlvbkNvbnRyb2wudXBkYXRlKGl0ZW1zID0+IFsuLi5pdGVtcywgZXZlbnRdKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgdmFsaWRhdGUoKSB7XG4gICAgbGV0IHZhbGlkID0gdHJ1ZTtcbiAgICB0aGlzLmNoZWNrVmFsaWRSZXF1aXJlZFdoZW5JbnB1dEhhc1ZhbHVlKCk7XG4gICAgZm9yIChjb25zdCBjb250cm9sIG9mIHRoaXMuaW5wdXRWYWxpZEZ1bmN0aW9uQ29udHJvbCgpKSB7XG4gICAgICBpZiAoIShhd2FpdCBjb250cm9sLmNoZWNrSXNWYWxpZCgpKSkge1xuICAgICAgICB2YWxpZCA9IGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgICBmb3IgKGNvbnN0IGNvbnRyb2wgb2YgdGhpcy5tdWx0aUxhbmd1YWdlRnVuY3Rpb25Db250cm9sKCkpIHtcbiAgICAgIGlmICghKGF3YWl0IGNvbnRyb2wuY2hlY2tJc1ZhbGlkKCkpKSB7XG4gICAgICAgIHZhbGlkID0gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB2YWxpZDtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBnZXREYXRhKCk6IFByb21pc2U8SURhdGFNdWx0aUxhbmd1YWdlW10+IHtcbiAgICBjb25zdCBkYXRhTXVsdGlMYW5ndWFnZTogSURhdGFNdWx0aUxhbmd1YWdlW10gPSBbXTtcbiAgICBmb3IgKGNvbnN0IGVsZW1lbnQgb2YgdGhpcy5tdWx0aUxhbmd1YWdlRnVuY3Rpb25Db250cm9sKCkpIHtcbiAgICAgIGRhdGFNdWx0aUxhbmd1YWdlLnB1c2goYXdhaXQgZWxlbWVudC5nZXREYXRhKCkgYXMgSURhdGFNdWx0aUxhbmd1YWdlIHx8IHt9KTtcbiAgICB9XG4gICAgLy8gdGhpcy5kYXRhTXVsdGlMYW5ndWFnZS51cGRhdGUoaXRlbXMgPT4gWy4uLml0ZW1zXSk7XG4gICAgcmV0dXJuIGRhdGFNdWx0aUxhbmd1YWdlO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGhhbmRsZXJDaGFuZ2VWYWx1ZSh2YWx1ZT86IHN0cmluZyB8IG51bWJlciwgdHlwZT86IHN0cmluZykge1xuICAgIGlmICh0eXBlID09PSAnaW5wdXQnKSB7XG4gICAgICB0aGlzLmRhdGFIZWFkZXIuc2V0KHZhbHVlIGFzIHN0cmluZyk7XG4gICAgfVxuICAgIHRoaXMuY2hlY2tWYWxpZFJlcXVpcmVkV2hlbklucHV0SGFzVmFsdWUoKTtcbiAgICB0aGlzLm91dENoYW5nZVZhbHVlLmVtaXQoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBjaGVja1ZhbGlkUmVxdWlyZWRXaGVuSW5wdXRIYXNWYWx1ZSgpIHtcbiAgICB0aGlzLnZhbGlkUmVxdWlyZWRXaGVuSW5wdXRIYXNWYWx1ZS5zZXQodW5kZWZpbmVkKTtcbiAgICBpZiAoIWlzTmlsKHRoaXMuZGF0YUhlYWRlcigpKSkge1xuICAgICAgdGhpcy52YWxpZFJlcXVpcmVkV2hlbklucHV0SGFzVmFsdWUuc2V0KHsgaXNSZXF1aXJlZDogdHJ1ZSB9KTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJtdC1bNHB4XVwiPlxuICBAZm9yIChpdGVtIG9mIGRhdGFNdWx0aUxhbmd1YWdlKCk7IHRyYWNrIGl0ZW0pIHtcbiAgICA8ZGl2IGNsYXNzPVwiZmxleCB3LWZ1bGxcIlxuICAgICAgW2NsYXNzLm10LVsxMnB4XV09XCIhJGZpcnN0XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibGlicy11aS1ib3JkZXItZ2VuZXJhbFwiXG4gICAgICAgIFtjbGFzcy53LWZ1bGxdPVwiZGF0YU11bHRpTGFuZ3VhZ2UoKS5sZW5ndGggPCAyXCJcbiAgICAgICAgW2NsYXNzLnctW2NhbGMoMTAwJS0yOHB4KV1dPVwiZGF0YU11bHRpTGFuZ3VhZ2UoKS5sZW5ndGggPiAxXCI+XG4gICAgICAgIEBpZiAoY29uZmlnSGVhZGVyKCk7IGFzIGNvbmZpZ0hlYWRlcikge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGJnLVsjZTZlZWY1XSBweC1bMTJweF0gcHktWzRweF1cIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsaWJzLXVpLWZvbnQtaDZtIGgtWzMycHhdIGZsZXggaXRlbXMtY2VudGVyXCI+e3sgKGNvbmZpZ0hlYWRlci50aXRsZSA/PyAnICcpIHwgdHJhbnNsYXRlIH19PC9kaXY+XG4gICAgICAgICAgICA8ZGl2IChjbGljayk9XCJoYW5kbGVyQ2xpY2soJGV2ZW50KVwiXG4gICAgICAgICAgICAgIGNsYXNzPVwicGwtWzhweF1cIj5cbiAgICAgICAgICAgICAgQGlmIChjb25maWdIZWFkZXIua2V5QmluZERhdGEgfCBMaWJzVWlDb21wb25lbnRzSW5wdXRzTXVsdGlMYW5ndWFnZUdldEl0ZW1QaXBlOml0ZW07IGFzIGl0ZW1NYXApIHtcbiAgICAgICAgICAgICAgICA8bGlic191aS1jb21wb25lbnRzLWlucHV0cy12YWxpZCBbKGl0ZW0pXT1cIml0ZW1NYXBcIlxuICAgICAgICAgICAgICAgICAgW2RhdGFUeXBlXT1cIihjb25maWdIZWFkZXIudHlwZSAmJiBjb25maWdIZWFkZXIudHlwZSA9PT0gJ251bWJlcicpID8gJ2ludCcgOiAnc3RyaW5nJ1wiXG4gICAgICAgICAgICAgICAgICBbZmllbGROYW1lQmluZF09XCJsYW5nRGVmYXVsdCgpXCJcbiAgICAgICAgICAgICAgICAgIFtlbWl0RW1wdHlJbkRhdGFUeXBlTnVtYmVyXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgW3ZhbGlkUmVxdWlyZWRdPVwie2lzUmVxdWlyZWQ6IGNvbmZpZ0l0ZW1zKClbMF0udmFsaWRSZXF1aXJlZD8uaXNSZXF1aXJlZCA/PyBmYWxzZX1cIlxuICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidpMThuX2VudGVyX3ZhbHVlJ1wiXG4gICAgICAgICAgICAgICAgICBbYWNjZXB0TmVnYXRpdmVWYWx1ZV09XCJhY2NlcHROZWdhdGl2ZVZhbHVlKCkgPz8gdHJ1ZVwiXG4gICAgICAgICAgICAgICAgICBbdmFsdWVVcERvd25OdW1iZXJdPVwidmFsdWVVcERvd25OdW1iZXIoKSB8fCAxXCJcbiAgICAgICAgICAgICAgICAgIFttYXhWYWx1ZU51bWJlcl09XCJtYXhWYWx1ZU51bWJlcigpXCJcbiAgICAgICAgICAgICAgICAgIFtmaXhlZEZsb2F0XT1cIjE1XCJcbiAgICAgICAgICAgICAgICAgIChvdXRWYWx1ZUNoYW5nZSk9XCJoYW5kbGVyQ2hhbmdlVmFsdWUoJGV2ZW50LCAnaW5wdXQnKVwiXG4gICAgICAgICAgICAgICAgICAob3V0RnVuY3Rpb25zQ29udHJvbCk9XCJoYW5kbGVyRnVuY3Rpb25zQ29udHJvbElucHV0VmFsaWQoJGV2ZW50KVwiIC8+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJweC1bMTJweF0gcHQtWzhweF0gcGItWzEycHhdIGZsZXggdy1mdWxsXCI+XG4gICAgICAgICAgICA8bGlic191aS1jb21wb25lbnRzLWlucHV0cy1tdWx0aV9sYW5ndWFnZSBjbGFzcz1cInctZnVsbFwiXG4gICAgICAgICAgICAgIFtzaW5nbGVMYW5ndWFnZV09XCJzaW5nbGVMYW5ndWFnZSgpIHx8IGZhbHNlXCJcbiAgICAgICAgICAgICAgW211bHRpTGluZV09XCJmYWxzZVwiXG4gICAgICAgICAgICAgIFt0aXRsZUZpZWxkXT1cImNvbmZpZ0l0ZW1zKClbMF0udGl0bGVGaWVsZCB8fCAnJ1wiXG4gICAgICAgICAgICAgIFtrZXlIZWFkZXJdPVwiY29uZmlnSGVhZGVyLmtleUJpbmREYXRhID8/ICcnXCJcbiAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidpMThuX2ltcG9ydF9jb250ZW50J1wiXG4gICAgICAgICAgICAgIFtjbGFzc0luY2x1ZGVWYWx1ZV09XCInbGlicy11aS1mb250LWg0cidcIlxuICAgICAgICAgICAgICBbZGF0YV09XCJkYXRhTXVsdGlLZXkoKVskaW5kZXhdXCJcbiAgICAgICAgICAgICAgW3ZhbGlkUmVxdWlyZWRdPVwidmFsaWRSZXF1aXJlZFdoZW5JbnB1dEhhc1ZhbHVlKCkgfHwgY29uZmlnSXRlbXMoKVswXS52YWxpZFJlcXVpcmVkXCJcbiAgICAgICAgICAgICAgW2RhdGFMYW5ndWFnZV09XCJpdGVtXCJcbiAgICAgICAgICAgICAgW3pJbmRleF09XCIxMjAzXCJcbiAgICAgICAgICAgICAgW2FjY2VwdE5lZ2F0aXZlVmFsdWVdPVwiYWNjZXB0TmVnYXRpdmVWYWx1ZSgpID8/IHRydWVcIlxuICAgICAgICAgICAgICBbdmFsdWVVcERvd25OdW1iZXJdPVwidmFsdWVVcERvd25OdW1iZXIoKSB8fCAxXCJcbiAgICAgICAgICAgICAgW21heFZhbHVlTnVtYmVyXT1cIm1heFZhbHVlTnVtYmVyKClcIlxuICAgICAgICAgICAgICBbb25seUFjY2VwdE5lZ2F0aXZlVmFsdWVdPVwib25seUFjY2VwdE5lZ2F0aXZlVmFsdWUoKVwiXG4gICAgICAgICAgICAgIFt2aWV3VHlwZV09XCJjb25maWdJdGVtcygpWzBdLnR5cGUgPyAoY29uZmlnSXRlbXMoKVswXS50eXBlID09PSAnbnVtYmVyJyA/ICdudW1iZXInIDogY29uZmlnSXRlbXMoKVswXS50eXBlID09PSAnZmxvYXQnID8gJ2Zsb2F0JyA6ICd0ZXh0JykgOiAndGV4dCdcIlxuICAgICAgICAgICAgICAob3V0RXZlbnRNdWx0aUxhbmd1YWdlKT1cImhhbmRsZXJDaGFuZ2VWYWx1ZSgpXCJcbiAgICAgICAgICAgICAgKG91dENoYW5nZVZhbHVlSW5wdXQpPVwiaGFuZGxlckNoYW5nZVZhbHVlKClcIlxuICAgICAgICAgICAgICAob3V0RnVuY3Rpb25zQ29udHJvbCk9XCJoYW5kbGVyRnVuY3Rpb25zQ29udHJvbElucHV0TGFuZ3VhZ2UoJGV2ZW50KVwiIC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgICAgQGlmICghJGZpcnN0KSB7XG4gICAgICAgIDxsaWJzX3VpLWNvbXBvbmVudHMtYnV0dG9ucy1idXR0b24gW3R5cGVdPVwiJ2J1dHRvbi1saW5rLWN1c3RvbSdcIlxuICAgICAgICAgIFtidXR0b25DdXN0b21dPVwie1xuICAgICAgICAgIGNvbmZpZ1N0ZXBDb2xvcjoge1xuICAgICAgICAgICAgdGV4dDogJyMwNzE2MzEnLFxuICAgICAgICAgICAgdGV4dF9ob3ZlcjogJyNlZTJkNDEnLFxuICAgICAgICAgICAgdGV4dF9hY3RpdmU6ICcjZWUyZDQxJyxcbiAgICAgICAgICAgIHRleHRfZGlzYWJsZTogJzA3MTYzMSdcbiAgICAgICAgICB9LFxuICAgICAgICAgIHJvb3RDb2xvcjogJyMwNzE2MzEnXG4gICAgICAgIH1cIlxuICAgICAgICAgIFtpY29uT25seVR5cGVdPVwidHJ1ZVwiXG4gICAgICAgICAgW3BvcG92ZXJdPVwie2NvbmZpZzoge2NvbnRlbnQ6ICdpMThuX2RlbGV0ZScsIHpJbmRleDogMTIwNX19XCJcbiAgICAgICAgICBbY2xhc3NJY29uTGVmdF09XCInbGlicy11aS1pY29uLXJlbW92ZSdcIlxuICAgICAgICAgIFtjbGFzc0luY2x1ZGVdPVwiJyFwLTAgbWwtWzhweF0gbXQtWzEycHhdJ1wiXG4gICAgICAgICAgKG91dENsaWNrKT1cImhhbmRsZXJSZW1vdmUoJGluZGV4KVwiIC8+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIH1cbiAgQGlmICghaWdub3JlQWRkKCkpIHtcbiAgICA8bGlic191aS1jb21wb25lbnRzLWJ1dHRvbnMtYnV0dG9uIFt0eXBlXT1cIididXR0b24tbGluay1wcmltYXJ5J1wiXG4gICAgICBbY2xhc3NJY29uTGVmdF09XCInbGlicy11aS1pY29uLWFkZCBtci1bOHB4XSdcIlxuICAgICAgW2NsYXNzTGFiZWxdPVwiJ2xpYnMtdWktZm9udC1oNXInXCJcbiAgICAgIFtjbGFzc0luY2x1ZGVdPVwiJyFweC0wIG10LVs4cHhdJ1wiXG4gICAgICBbbGFiZWxdPVwibGFiZWxBZGRJdGVtKCkgfHwgJydcIlxuICAgICAgKG91dENsaWNrKT1cImhhbmRsZXJBZGQoKVwiIC8+XG4gIH1cbjwvZGl2PlxuIl19
152
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXRlbXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy11aS9jb21wb25lbnRzL2lucHV0cy9tdWx0aS1sYW5ndWFnZS9zcmMvaXRlbXMvaXRlbXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy11aS9jb21wb25lbnRzL2lucHV0cy9tdWx0aS1sYW5ndWFnZS9zcmMvaXRlbXMvaXRlbXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1SCxPQUFPLEVBQUUsc0NBQXNDLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM1RixPQUFPLEVBQW1ELG9DQUFvQyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDekksT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSw0Q0FBNEMsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRTNGLE9BQU8sRUFBRSw4Q0FBOEMsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7QUFnQnhGLE1BQU0sT0FBTyxpREFBaUQ7SUFFNUQsOERBQThEO0lBQ3BELFlBQVksR0FBRyxNQUFNLENBQWEsRUFBRSxDQUFDLENBQUM7SUFDdEMsV0FBVyxHQUFHLE1BQU0sQ0FBUyxVQUFVLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUNuRCxZQUFZLEdBQUcsTUFBTSxDQUF5QyxTQUFTLENBQUMsQ0FBQztJQUN6RSxhQUFhLEdBQUcsTUFBTSxDQUFpQixFQUFFLFVBQVUsRUFBRSxL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LG9DQUFvQyxxekRBQ3BDLDRDQUE0Qywrc0JBQzVDLHNDQUFzQzs7NEZBRzdCLGlEQUFpRDtrQkFkN0QsU0FBUzsrQkFFRSxnREFBZ0QsY0FFOUMsSUFBSSxtQkFDQyx1QkFBdUIsQ0FBQyxNQUFNLFdBQ3RDO3dCQUNQLGVBQWU7d0JBQ2YsOENBQThDO3dCQUM5QyxvQ0FBb0M7d0JBQ3BDLDRDQUE0Qzt3QkFDNUMsc0NBQXNDO3FCQUN2QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGVmZmVjdCwgaW5wdXQsIG1vZGVsLCBPbkluaXQsIG91dHB1dCwgc2lnbmFsLCB1bnRyYWNrZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExpYnNVaUNvbXBvbmVudHNCdXR0b25zQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQGxpYnMtdWkvY29tcG9uZW50cy1idXR0b25zLWJ1dHRvbic7XG5pbXBvcnQgeyBJSW5wdXRWYWxpZEZ1bmN0aW9uQ29udHJvbEV2ZW50LCBJVmFsaWRSZXF1aXJlZCwgTGlic1VpQ29tcG9uZW50c0lucHV0c1ZhbGlkQ29tcG9uZW50IH0gZnJvbSAnQGxpYnMtdWkvY29tcG9uZW50cy1pbnB1dHMtdmFsaWQnO1xuaW1wb3J0IHsgY2xvbmVEZWVwLCBpc05pbCwgVXRpbHNDYWNoZSB9IGZyb20gJ0BsaWJzLXVpL3V0aWxzJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgTGlic1VpQ29tcG9uZW50c0lucHV0c011bHRpTGFuZ3VhZ2VDb21wb25lbnQgfSBmcm9tICcuLi9tdWx0aS1sYW5ndWFnZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgSUNvbmZpZ011bHRpTGFuZ3VhZ2VIZWFkZXIsIElEYXRhSXRlbSwgSURhdGFNdWx0aUxhbmd1YWdlLCBJSW5wdXRNdWx0aUxhbmd1YWdlRnVuY3Rpb25Db250cm9sRXZlbnQgfSBmcm9tICcuLi9pbnRlcmZhY2VzL211bHRpLWxhbmd1YWdlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBMaWJzVWlDb21wb25lbnRzSW5wdXRzTXVsdGlMYW5ndWFnZUdldEl0ZW1QaXBlIH0gZnJvbSAnLi4vcGlwZXMvZ2V0LWl0ZW0ucGlwZSc7XG5cbkBDb21wb25lbnQoe1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxuICBzZWxlY3RvcjogJ2xpYnNfdWktY29tcG9uZW50cy1pbnB1dHMtbXVsdGlfbGFuZ3VhZ2UtaXRlbXMnLFxuICB0ZW1wbGF0ZVVybDogJy4vaXRlbXMuY29tcG9uZW50Lmh0bWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW1xuICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICBMaWJzVWlDb21wb25lbnRzSW5wdXRzTXVsdGlMYW5ndWFnZUdldEl0ZW1QaXBlLFxuICAgIExpYnNVaUNvbXBvbmVudHNJbnB1dHNWYWxpZENvbXBvbmVudCxcbiAgICBMaWJzVWlDb21wb25lbnRzSW5wdXRzTXVsdGlMYW5ndWFnZUNvbXBvbmVudCxcbiAgICBMaWJzVWlDb21wb25lbnRzQnV0dG9uc0J1dHRvbkNvbXBvbmVudFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIExpYnNVaUNvbXBvbmVudHNJbnB1dHNNdWx0aUxhbmd1YWdlSXRlbXNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gIHByb3RlY3RlZCBkYXRhTXVsdGlLZXkgPSBzaWduYWw8QXJyYXk8YW55Pj4oW10pO1xuICBwcm90ZWN0ZWQgbGFuZ0RlZmF1bHQgPSBzaWduYWw8c3RyaW5nPihVdGlsc0NhY2hlLmdldExhbmcoKSk7XG4gIHByb3RlY3RlZCBjb25maWdIZWFkZXIgPSBzaWduYWw8SUNvbmZpZ011bHRpTGFuZ3VhZ2VIZWFkZXIgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIHByb3RlY3RlZCB2YWxpZFJlcXVpcmVkID0gc2lnbmFsPElWYWxpZFJlcXVpcmVkPih7IGlzUmVxdWlyZWQ6IGZhbHNlIH0pO1xuICBwcm90ZWN0ZWQgdmFsaWRSZXF1aXJlZFdoZW5JbnB1dEhhc1ZhbHVlID0gc2lnbmFsPElWYWxpZFJlcXVpcmVkIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICBwcm90ZWN0ZWQgZGF0YUhlYWRlciA9IHNpZ25hbDxzdHJpbmcgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIHByb3RlY3RlZCBtdWx0aUxhbmd1YWdlRnVuY3Rpb25Db250cm9sID0gc2lnbmFsPEFycmF5PElJbnB1dE11bHRpTGFuZ3VhZ2VGdW5jdGlvbkNvbnRyb2xFdmVudD4+KFtdKTtcbiAgcHJvdGVjdGVkIGlucHV0VmFsaWRGdW5jdGlvbkNvbnRyb2wgPSBzaWduYWw8QXJyYXk8SUlucHV0VmFsaWRGdW5jdGlvbkNvbnRyb2xFdmVudD4+KFtdKTtcblxuICByZWFkb25seSBjb25maWdJdGVtcyA9IGlucHV0PEFycmF5PElEYXRhSXRlbT4+KFtdKTtcbiAgcmVhZG9ubHkgZGF0YU11bHRpTGFuZ3VhZ2UgPSBtb2RlbDxBcnJheTxJRGF0YU11bHRpTGFuZ3VhZ2U+Pihbe31dKTtcbiAgcmVhZG9ubHkgekluZGV4ID0gaW5wdXQ8bnVtYmVyPigpO1xuICByZWFkb25seSBpZ25vcmVBZGQgPSBpbnB1dDxib29sZWFuPigpO1xuICByZWFkb25seSBsYWJlbEFkZEl0ZW0gPSBpbnB1dDxzdHJpbmc+KCk7XG4gIHJlYWRvbmx5IHNpbmdsZUxhbmd1YWdlID0gaW5wdXQ8Ym9vbGVhbj4oKTtcbiAgcmVhZG9ubHkgYWNjZXB0TmVnYXRpdmVWYWx1ZSA9IGlucHV0PGJvb2xlYW4+KCk7XG4gIHJlYWRvbmx5IHZhbHVlVXBEb3duTnVtYmVyID0gaW5wdXQ8bnVtYmVyPigpO1xuICByZWFkb25seSBtYXhWYWx1ZU51bWJlciA9IGlucHV0PG51bWJlcj4oKTtcbiAgcmVhZG9ubHkgb25seUFjY2VwdE5lZ2F0aXZlVmFsdWUgPSBpbnB1dDxib29sZWFuPigpO1xuXG4gIHJlYWRvbmx5IG91dENsaWNrID0gb3V0cHV0PHZvaWQ+KCk7XG4gIHJlYWRvbmx5IG91dEZ1bmN0aW9uQ29udHJvbCA9IG91dHB1dDxJSW5wdXRNdWx0aUxhbmd1YWdlRnVuY3Rpb25Db250cm9sRXZlbnQ+KCk7XG4gIHJlYWRvbmx5IG91dENoYW5nZVZhbHVlID0gb3V0cHV0PHZvaWQ+KCk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IGNvbmZpZ0l0ZW1zID0gdGhpcy5jb25maWdJdGVtcygpO1xuICAgICAgdW50cmFja2VkKCgpID0+IHtcbiAgICAgICAgaWYgKGNvbmZpZ0l0ZW1zICYmIGNvbmZpZ0l0ZW1zLmxlbmd0aCkge1xuICAgICAgICAgIHRoaXMuY29uZmlnSGVhZGVyLnNldChjb25maWdJdGVtc1swXS5oZWFkZXIpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCBkYXRhTXVsdGlMYW5ndWFnZSA9IHRoaXMuZGF0YU11bHRpTGFuZ3VhZ2UoKTtcbiAgICAgIHVudHJhY2tlZCgoKSA9PiB7XG4gICAgICAgIGlmICghZGF0YU11bHRpTGFuZ3VhZ2UgfHwgIWRhdGFNdWx0aUxhbmd1YWdlLmxlbmd0aCkge1xuICAgICAgICAgIHRoaXMuZGF0YU11bHRpTGFuZ3VhZ2Uuc2V0KFt7fV0pO1xuICAgICAgICAgIGNvbnN0IGNvbmZpZ0hlYWRlciA9IHRoaXMuY29uZmlnSGVhZGVyKCk7XG4gICAgICAgICAgaWYgKGNvbmZpZ0hlYWRlciAmJiBjb25maWdIZWFkZXIuZGF0YURlZmF1bHQpIHtcbiAgICAgICAgICAgIHRoaXMuZGF0YU11bHRpTGFuZ3VhZ2Uuc2V0KFtjbG9uZURlZXAoY29uZmlnSGVhZGVyLmRhdGFEZWZhdWx0KV0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLmhhbmRsZXJDb25maWdNdWx0aSgpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLm91dEZ1bmN0aW9uQ29udHJvbC5lbWl0KHtcbiAgICAgIGNoZWNrSXNWYWxpZDogdGhpcy52YWxpZGF0ZS5iaW5kKHRoaXMpLFxuICAgICAgZ2V0RGF0YTogdGhpcy5nZXREYXRhLmJpbmQodGhpcylcbiAgICB9KTtcbiAgICBjb25zdCBjb25maWdJdGVtcyA9IHRoaXMuY29uZmlnSXRlbXMoKTtcbiAgICBpZiAoY29uZmlnSXRlbXMgJiYgY29uZmlnSXRlbXMubGVuZ3RoICYmIGNvbmZpZ0l0ZW1zWzBdLnZhbGlkUmVxdWlyZWQpIHtcbiAgICAgIHRoaXMudmFsaWRSZXF1aXJlZC5zZXQoY29uZmlnSXRlbXNbMF0udmFsaWRSZXF1aXJlZCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGhhbmRsZXJDb25maWdNdWx0aSgpIHtcbiAgICB0aGlzLmRhdGFNdWx0aUtleS5zZXQoW10pO1xuICAgIHRoaXMuZGF0YU11bHRpTGFuZ3VhZ2UoKS5mb3JFYWNoKCgpID0+IHtcbiAgICAgIGNvbnN0IGNvbmZpZ0l0ZW1zID0gdGhpcy5jb25maWdJdGVtcygpO1xuICAgICAgaWYgKGNvbmZpZ0l0ZW1zKSB7XG4gICAgICAgIHRoaXMuZGF0YU11bHRpS2V5KCkucHVzaChjb25maWdJdGVtcyk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5kYXRhTXVsdGlLZXkudXBkYXRlKGl0ZW1zID0+IFsuLi5pdGVtc10pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGhhbmRsZXJBZGQoKSB7XG4gICAgbGV0IGRhdGFMYW5ndWFnZTogSURhdGFNdWx0aUxhbmd1YWdlID0ge307XG4gICAgY29uc3QgY29uZmlnSGVhZGVyID0gdGhpcy5jb25maWdIZWFkZXIoKTtcbiAgICBpZiAoY29uZmlnSGVhZGVyKSB7XG4gICAgICBkYXRhTGFuZ3VhZ2UgPSBjbG9uZURlZXAoY29uZmlnSGVhZGVyLmRhdGFEZWZhdWx0KTtcbiAgICB9XG4gICAgdGhpcy5kYXRhTXVsdGlMYW5ndWFnZS51cGRhdGUoaXRlbXMgPT4gWy4uLml0ZW1zLCBkYXRhTGFuZ3VhZ2VdKTtcbiAgICB0aGlzLmRhdGFNdWx0aUtleS51cGRhdGUoaXRlbXMgPT4gWy4uLml0ZW1zLCB0aGlzLmNvbmZpZ0l0ZW1zKCldKTtcbiAgICB0aGlzLmhhbmRsZXJDaGFuZ2VWYWx1ZSgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGhhbmRsZXJSZW1vdmUoaW5kZXg6IG51bWJlcikge1xuICAgIHRoaXMuZGF0YU11bHRpTGFuZ3VhZ2UudXBkYXRlKGl0ZW1zID0+IHtcbiAgICAgIGl0ZW1zLnNwbGljZShpbmRleCwgMSk7XG4gICAgICByZXR1cm4gWy4uLml0ZW1zXTtcbiAgICB9KTtcbiAgICB0aGlzLmhhbmRsZXJDaGFuZ2VWYWx1ZSgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGhhbmRsZXJDbGljayhlOiBFdmVudCkge1xuICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5vdXRDbGljay5lbWl0KCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgaGFuZGxlckZ1bmN0aW9uc0NvbnRyb2xJbnB1dExhbmd1YWdlKGV2ZW50OiBJSW5wdXRNdWx0aUxhbmd1YWdlRnVuY3Rpb25Db250cm9sRXZlbnQpIHtcbiAgICB0aGlzLm11bHRpTGFuZ3VhZ2VGdW5jdGlvbkNvbnRyb2wudXBkYXRlKGl0ZW1zID0+IFsuLi5pdGVtcywgZXZlbnRdKVxuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGhhbmRsZXJGdW5jdGlvbnNDb250cm9sSW5wdXRWYWxpZChldmVudDogSUlucHV0VmFsaWRGdW5jdGlvbkNvbnRyb2xFdmVudCkge1xuICAgIHRoaXMuaW5wdXRWYWxpZEZ1bmN0aW9uQ29udHJvbC51cGRhdGUoaXRlbXMgPT4gWy4uLml0ZW1zLCBldmVudF0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyB2YWxpZGF0ZSgpIHtcbiAgICBsZXQgdmFsaWQgPSB0cnVlO1xuICAgIHRoaXMuY2hlY2tWYWxpZFJlcXVpcmVkV2hlbklucHV0SGFzVmFsdWUoKTtcbiAgICBmb3IgKGNvbnN0IGNvbnRyb2wgb2YgdGhpcy5pbnB1dFZhbGlkRnVuY3Rpb25Db250cm9sKCkpIHtcbiAgICAgIGlmICghKGF3YWl0IGNvbnRyb2wuY2hlY2tJc1ZhbGlkKCkpKSB7XG4gICAgICAgIHZhbGlkID0gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICAgIGZvciAoY29uc3QgY29udHJvbCBvZiB0aGlzLm11bHRpTGFuZ3VhZ2VGdW5jdGlvbkNvbnRyb2woKSkge1xuICAgICAgaWYgKCEoYXdhaXQgY29udHJvbC5jaGVja0lzVmFsaWQoKSkpIHtcbiAgICAgICAgdmFsaWQgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHZhbGlkO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGdldERhdGEoKTogUHJvbWlzZTxJRGF0YU11bHRpTGFuZ3VhZ2VbXT4ge1xuICAgIGNvbnN0IGRhdGFNdWx0aUxhbmd1YWdlOiBJRGF0YU11bHRpTGFuZ3VhZ2VbXSA9IFtdO1xuICAgIGZvciAoY29uc3QgZWxlbWVudCBvZiB0aGlzLm11bHRpTGFuZ3VhZ2VGdW5jdGlvbkNvbnRyb2woKSkge1xuICAgICAgZGF0YU11bHRpTGFuZ3VhZ2UucHVzaChhd2FpdCBlbGVtZW50LmdldERhdGEoKSBhcyBJRGF0YU11bHRpTGFuZ3VhZ2UgfHwge30pO1xuICAgIH1cbiAgICAvLyB0aGlzLmRhdGFNdWx0aUxhbmd1YWdlLnVwZGF0ZShpdGVtcyA9PiBbLi4uaXRlbXNdKTtcbiAgICByZXR1cm4gZGF0YU11bHRpTGFuZ3VhZ2U7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgaGFuZGxlckNoYW5nZVZhbHVlKHZhbHVlPzogc3RyaW5nIHwgbnVtYmVyLCB0eXBlPzogc3RyaW5nKSB7XG4gICAgaWYgKHR5cGUgPT09ICdpbnB1dCcpIHtcbiAgICAgIHRoaXMuZGF0YUhlYWRlci5zZXQodmFsdWUgYXMgc3RyaW5nKTtcbiAgICB9XG4gICAgdGhpcy5jaGVja1ZhbGlkUmVxdWlyZWRXaGVuSW5wdXRIYXNWYWx1ZSgpO1xuICAgIHRoaXMub3V0Q2hhbmdlVmFsdWUuZW1pdCgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGNoZWNrVmFsaWRSZXF1aXJlZFdoZW5JbnB1dEhhc1ZhbHVlKCkge1xuICAgIHRoaXMudmFsaWRSZXF1aXJlZFdoZW5JbnB1dEhhc1ZhbHVlLnNldCh1bmRlZmluZWQpO1xuICAgIGlmICghaXNOaWwodGhpcy5kYXRhSGVhZGVyKCkpKSB7XG4gICAgICB0aGlzLnZhbGlkUmVxdWlyZWRXaGVuSW5wdXRIYXNWYWx1ZS5zZXQoeyBpc1JlcXVpcmVkOiB0cnVlIH0pO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIm10LVs0cHhdXCI+XG4gIEBmb3IgKGl0ZW0gb2YgZGF0YU11bHRpTGFuZ3VhZ2UoKTsgdHJhY2sgaXRlbSkge1xuICAgIDxkaXYgY2xhc3M9XCJmbGV4IHctZnVsbFwiXG4gICAgICBbY2xhc3MubXQtWzEycHhdXT1cIiEkZmlyc3RcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJsaWJzLXVpLWJvcmRlci1nZW5lcmFsXCJcbiAgICAgICAgW2NsYXNzLnctZnVsbF09XCJkYXRhTXVsdGlMYW5ndWFnZSgpLmxlbmd0aCA8IDJcIlxuICAgICAgICBbY2xhc3Mudy1bY2FsYygxMDAlLTI4cHgpXV09XCJkYXRhTXVsdGlMYW5ndWFnZSgpLmxlbmd0aCA+IDFcIj5cbiAgICAgICAgQGlmIChjb25maWdIZWFkZXIoKTsgYXMgY29uZmlnSGVhZGVyKSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggYmctWyNlNmVlZjVdIHB4LVsxMnB4XSBweS1bNHB4XVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxpYnMtdWktZm9udC1oNm0gaC1bMzJweF0gZmxleCBpdGVtcy1jZW50ZXJcIj57eyAoY29uZmlnSGVhZGVyLnRpdGxlID8/ICcgJykgfCB0cmFuc2xhdGUgfX08L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgKGNsaWNrKT1cImhhbmRsZXJDbGljaygkZXZlbnQpXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJwbC1bOHB4XVwiPlxuICAgICAgICAgICAgICBAaWYgKGNvbmZpZ0hlYWRlci5rZXlCaW5kRGF0YSB8IExpYnNVaUNvbXBvbmVudHNJbnB1dHNNdWx0aUxhbmd1YWdlR2V0SXRlbVBpcGU6aXRlbTsgYXMgaXRlbU1hcCkge1xuICAgICAgICAgICAgICAgIDxsaWJzX3VpLWNvbXBvbmVudHMtaW5wdXRzLXZhbGlkIFsoaXRlbSldPVwiaXRlbU1hcFwiXG4gICAgICAgICAgICAgICAgICBbZGF0YVR5cGVdPVwiKGNvbmZpZ0hlYWRlci50eXBlICYmIGNvbmZpZ0hlYWRlci50eXBlID09PSAnbnVtYmVyJykgPyAnaW50JyA6ICdzdHJpbmcnXCJcbiAgICAgICAgICAgICAgICAgIFtmaWVsZE5hbWVCaW5kXT1cImxhbmdEZWZhdWx0KClcIlxuICAgICAgICAgICAgICAgICAgW2VtaXRFbXB0eUluRGF0YVR5cGVOdW1iZXJdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICBbdmFsaWRSZXF1aXJlZF09XCJ7aXNSZXF1aXJlZDogY29uZmlnSXRlbXMoKVswXS52YWxpZFJlcXVpcmVkPy5pc1JlcXVpcmVkID8/IGZhbHNlfVwiXG4gICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ2kxOG5fZW50ZXJfdmFsdWUnXCJcbiAgICAgICAgICAgICAgICAgIFthY2NlcHROZWdhdGl2ZVZhbHVlXT1cImFjY2VwdE5lZ2F0aXZlVmFsdWUoKSA/PyB0cnVlXCJcbiAgICAgICAgICAgICAgICAgIFt2YWx1ZVVwRG93bk51bWJlcl09XCJ2YWx1ZVVwRG93bk51bWJlcigpIHx8IDFcIlxuICAgICAgICAgICAgICAgICAgW21heFZhbHVlTnVtYmVyXT1cIm1heFZhbHVlTnVtYmVyKClcIlxuICAgICAgICAgICAgICAgICAgW2ZpeGVkRmxvYXRdPVwiMTVcIlxuICAgICAgICAgICAgICAgICAgKG91dFZhbHVlQ2hhbmdlKT1cImhhbmRsZXJDaGFuZ2VWYWx1ZSgkZXZlbnQsICdpbnB1dCcpXCJcbiAgICAgICAgICAgICAgICAgIChvdXRGdW5jdGlvbnNDb250cm9sKT1cImhhbmRsZXJGdW5jdGlvbnNDb250cm9sSW5wdXRWYWxpZCgkZXZlbnQpXCIgLz5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInB4LVsxMnB4XSBwdC1bOHB4XSBwYi1bMTJweF0gZmxleCB3LWZ1bGxcIj5cbiAgICAgICAgICAgIDxsaWJzX3VpLWNvbXBvbmVudHMtaW5wdXRzLW11bHRpX2xhbmd1YWdlIGNsYXNzPVwidy1mdWxsXCJcbiAgICAgICAgICAgICAgW3NpbmdsZUxhbmd1YWdlXT1cInNpbmdsZUxhbmd1YWdlKCkgfHwgZmFsc2VcIlxuICAgICAgICAgICAgICBbbXVsdGlMaW5lXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgW3RpdGxlRmllbGRdPVwiY29uZmlnSXRlbXMoKVswXS50aXRsZUZpZWxkIHx8ICcnXCJcbiAgICAgICAgICAgICAgW2tleUhlYWRlcl09XCJjb25maWdIZWFkZXIua2V5QmluZERhdGEgPz8gJydcIlxuICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ2kxOG5faW1wb3J0X2NvbnRlbnQnXCJcbiAgICAgICAgICAgICAgW2NsYXNzSW5jbHVkZVZhbHVlXT1cIidsaWJzLXVpLWZvbnQtaDRyJ1wiXG4gICAgICAgICAgICAgIFtkYXRhXT1cImRhdGFNdWx0aUtleSgpWyRpbmRleF1cIlxuICAgICAgICAgICAgICBbdmFsaWRSZXF1aXJlZF09XCJ2YWxpZFJlcXVpcmVkV2hlbklucHV0SGFzVmFsdWUoKSB8fCBjb25maWdJdGVtcygpWzBdLnZhbGlkUmVxdWlyZWRcIlxuICAgICAgICAgICAgICBbZGF0YUxhbmd1YWdlXT1cIml0ZW1cIlxuICAgICAgICAgICAgICBbekluZGV4XT1cIjEyMDNcIlxuICAgICAgICAgICAgICBbYWNjZXB0TmVnYXRpdmVWYWx1ZV09XCJhY2NlcHROZWdhdGl2ZVZhbHVlKCkgPz8gdHJ1ZVwiXG4gICAgICAgICAgICAgIFt2YWx1ZVVwRG93bk51bWJlcl09XCJ2YWx1ZVVwRG93bk51bWJlcigpIHx8IDFcIlxuICAgICAgICAgICAgICBbbWF4VmFsdWVOdW1iZXJdPVwibWF4VmFsdWVOdW1iZXIoKVwiXG4gICAgICAgICAgICAgIFtvbmx5QWNjZXB0TmVnYXRpdmVWYWx1ZV09XCJvbmx5QWNjZXB0TmVnYXRpdmVWYWx1ZSgpXCJcbiAgICAgICAgICAgICAgW3ZpZXdUeXBlXT1cImNvbmZpZ0l0ZW1zKClbMF0udHlwZSA/IChjb25maWdJdGVtcygpWzBdLnR5cGUgPT09ICdudW1iZXInID8gJ251bWJlcicgOiBjb25maWdJdGVtcygpWzBdLnR5cGUgPT09ICdmbG9hdCcgPyAnZmxvYXQnIDogJ3RleHQnKSA6ICd0ZXh0J1wiXG4gICAgICAgICAgICAgIChvdXRFdmVudE11bHRpTGFuZ3VhZ2UpPVwiaGFuZGxlckNoYW5nZVZhbHVlKClcIlxuICAgICAgICAgICAgICAob3V0Q2hhbmdlVmFsdWVJbnB1dCk9XCJoYW5kbGVyQ2hhbmdlVmFsdWUoKVwiXG4gICAgICAgICAgICAgIChvdXRGdW5jdGlvbnNDb250cm9sKT1cImhhbmRsZXJGdW5jdGlvbnNDb250cm9sSW5wdXRMYW5ndWFnZSgkZXZlbnQpXCIgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgICBAaWYgKCEkZmlyc3QpIHtcbiAgICAgICAgPGxpYnNfdWktY29tcG9uZW50cy1idXR0b25zLWJ1dHRvbiBbdHlwZV09XCInYnV0dG9uLWxpbmstY3VzdG9tJ1wiXG4gICAgICAgICAgW2J1dHRvbkN1c3RvbV09XCJ7XG4gICAgICAgICAgY29uZmlnU3RlcENvbG9yOiB7XG4gICAgICAgICAgICB0ZXh0OiAnIzA3MTYzMScsXG4gICAgICAgICAgICB0ZXh0X2hvdmVyOiAnI2VlMmQ0MScsXG4gICAgICAgICAgICB0ZXh0X2FjdGl2ZTogJyNlZTJkNDEnLFxuICAgICAgICAgICAgdGV4dF9kaXNhYmxlOiAnMDcxNjMxJ1xuICAgICAgICAgIH0sXG4gICAgICAgICAgcm9vdENvbG9yOiAnIzA3MTYzMSdcbiAgICAgICAgfVwiXG4gICAgICAgICAgW2ljb25Pbmx5VHlwZV09XCJ0cnVlXCJcbiAgICAgICAgICBbcG9wb3Zlcl09XCJ7Y29uZmlnOiB7Y29udGVudDogJ2kxOG5fZGVsZXRlJywgekluZGV4OiAxMjA1fX1cIlxuICAgICAgICAgIFtjbGFzc0ljb25MZWZ0XT1cIidsaWJzLXVpLWljb24tcmVtb3ZlJ1wiXG4gICAgICAgICAgW2NsYXNzSW5jbHVkZV09XCInIXAtMCBtbC1bOHB4XSBtdC1bMTJweF0nXCJcbiAgICAgICAgICAob3V0Q2xpY2spPVwiaGFuZGxlclJlbW92ZSgkaW5kZXgpXCIgLz5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgfVxuICBAaWYgKCFpZ25vcmVBZGQoKSkge1xuICAgIDxsaWJzX3VpLWNvbXBvbmVudHMtYnV0dG9ucy1idXR0b24gW3R5cGVdPVwiJ2J1dHRvbi1saW5rLXByaW1hcnknXCJcbiAgICAgIFtjbGFzc0ljb25MZWZ0XT1cIidsaWJzLXVpLWljb24tYWRkIG1yLVs4cHhdJ1wiXG4gICAgICBbY2xhc3NMYWJlbF09XCInbGlicy11aS1mb250LWg1cidcIlxuICAgICAgW2NsYXNzSW5jbHVkZV09XCInIXB4LTAgbXQtWzhweF0nXCJcbiAgICAgIFtsYWJlbF09XCJsYWJlbEFkZEl0ZW0oKSB8fCAnJ1wiXG4gICAgICAob3V0Q2xpY2spPVwiaGFuZGxlckFkZCgpXCIgLz5cbiAgfVxuPC9kaXY+XG4iXX0=