kwikid-forms 0.6.15 → 0.6.17

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.
@@ -1,5 +1,5 @@
1
1
  import { TuiDay } from "@taiga-ui/cdk";
2
- import { checkObjectKeyExists, isNotEmptyValue, isEmptyValue } from "kwikid-toolkit";
2
+ import { checkObjectKeyExists, isNotEmptyValue, isEmptyValue, isObject } from "kwikid-toolkit";
3
3
  import { EFieldType } from "../definitions/form-view.fields.definition";
4
4
  export const getFormFieldByKey = (fields, key) => {
5
5
  const field = fields.find((field) => {
@@ -157,6 +157,17 @@ export const convertFormFieldValueToStandardFormat = (field, value) => {
157
157
  case EFieldType.RADIO:
158
158
  convertedValue = value.label;
159
159
  break;
160
+ case EFieldType.SELECT:
161
+ if (Array.isArray(field.options)) {
162
+ field.options.find((item) => {
163
+ if (isObject(item)) {
164
+ if (item.title == value) {
165
+ convertedValue = item.value;
166
+ }
167
+ }
168
+ });
169
+ }
170
+ break;
160
171
  case EFieldType.PHONE:
161
172
  let phoneField = field;
162
173
  if (phoneField.properties.removeCountryCodeFromValue) {
@@ -196,6 +207,17 @@ export const convertFormFieldValueToKwikUIFormat = (field, value) => {
196
207
  convertedValue = convertedLabelValue;
197
208
  }
198
209
  break;
210
+ case EFieldType.SELECT:
211
+ if (Array.isArray(field.options)) {
212
+ field.options.find((item) => {
213
+ if (isObject(item)) {
214
+ if (item.value == value) {
215
+ convertedValue = item.title;
216
+ }
217
+ }
218
+ });
219
+ }
220
+ break;
199
221
  case EFieldType.DATE:
200
222
  convertedValue = convertFormFieldTypeDateToKwikUIFormat(value);
201
223
  break;
@@ -253,4 +275,4 @@ export const convertFormFieldEmptyValueToKwikUIFormat = (field) => {
253
275
  }
254
276
  return value;
255
277
  };
256
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS12aWV3LmZpZWxkcy5oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rd2lraWQtZm9ybXMvc3JjL2xpYi9yZW5kZXJlci9mb3JtLXZpZXcvaGVscGVycy9mb3JtLXZpZXcuZmllbGRzLmhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIsZUFBZSxFQUNmLFlBQVksRUFDYixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFDTCxVQUFVLEVBSVgsTUFBTSw0Q0FBNEMsQ0FBQztBQUVwRCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLE1BQWEsRUFBRSxHQUFXLEVBQUUsRUFBRTtJQUM5RCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7UUFDbEMsSUFBSSxLQUFLLENBQUMsR0FBRyxLQUFLLEdBQUcsRUFBRTtZQUNyQixPQUFPLEtBQUssQ0FBQztTQUNkO0lBQ0gsQ0FBQyxDQUFDLENBQUM7SUFFSCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLENBQUMsTUFBYSxFQUFFLEdBQVcsRUFBRSxFQUFFO0lBQ25FLElBQUksVUFBa0IsQ0FBQztJQUV2QixVQUFVLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQU0sRUFBRSxFQUFFO1FBQ3ZDLE9BQU8sR0FBRyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUM7SUFDdkIsQ0FBQyxDQUFDLENBQUM7SUFFSCxPQUFPLFVBQVUsQ0FBQztBQUNwQixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxDQUFDLEtBQVUsRUFBRSxLQUFVLEVBQU8sRUFB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QUssQ0FBQyxJQUFJLENBQUM7SUFDekMsSUFBSSxLQUFVLENBQUM7SUFFZixRQUFRLFNBQVMsRUFBRTtRQUNqQixLQUFLLFVBQVUsQ0FBQyxRQUFRO1lBQ3RCLEtBQUssR0FBRyxLQUFLLENBQUM7WUFDZCxNQUFNO1FBQ1IsS0FBSyxVQUFVLENBQUMsTUFBTTtZQUNwQixLQUFLLEdBQUcsSUFBSSxDQUFDO1lBQ2IsTUFBTTtRQUNSLEtBQUssVUFBVSxDQUFDLElBQUk7WUFDbEIsS0FBSyxHQUFHLElBQUksQ0FBQztZQUNiLE1BQU07UUFDUixLQUFLLFVBQVUsQ0FBQyxJQUFJO1lBQ2xCLEtBQUssR0FBRyxFQUFFLENBQUM7WUFDWCxNQUFNO1FBQ1IsS0FBSyxVQUFVLENBQUMsT0FBTztZQUNyQixLQUFLLEdBQUcsRUFBRSxDQUFDO1lBQ1gsTUFBTTtRQUNSLEtBQUssVUFBVSxDQUFDLE1BQU07WUFDcEIsS0FBSyxHQUFHLElBQUksQ0FBQztZQUNiLE1BQU07UUFDUixLQUFLLFVBQVUsQ0FBQyxvQkFBb0I7WUFDbEMsS0FBSyxHQUFHLElBQUksQ0FBQztZQUNiLE1BQU07UUFDUjtZQUNFLEtBQUssR0FBRyxFQUFFLENBQUM7WUFDWCxNQUFNO0tBQ1Q7SUFFRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFR1aURheSB9IGZyb20gXCJAdGFpZ2EtdWkvY2RrXCI7XG5pbXBvcnQge1xuICBjaGVja09iamVjdEtleUV4aXN0cyxcbiAgaXNOb3RFbXB0eVZhbHVlLFxuICBpc0VtcHR5VmFsdWVcbn0gZnJvbSBcImt3aWtpZC10b29sa2l0XCI7XG5pbXBvcnQge1xuICBFRmllbGRUeXBlLFxuICBURmllbGQsXG4gIFRGaWVsZFBob25lLFxuICBURmllbGRUeXBlXG59IGZyb20gXCIuLi9kZWZpbml0aW9ucy9mb3JtLXZpZXcuZmllbGRzLmRlZmluaXRpb25cIjtcblxuZXhwb3J0IGNvbnN0IGdldEZvcm1GaWVsZEJ5S2V5ID0gKGZpZWxkczogYW55W10sIGtleTogc3RyaW5nKSA9PiB7XG4gIGNvbnN0IGZpZWxkID0gZmllbGRzLmZpbmQoKGZpZWxkKSA9PiB7XG4gICAgaWYgKGZpZWxkLmtleSA9PT0ga2V5KSB7XG4gICAgICByZXR1cm4gZmllbGQ7XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gZmllbGQ7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0Rm9ybUZpZWxkSW5kZXhCeUtleSA9IChmaWVsZHM6IGFueVtdLCBrZXk6IHN0cmluZykgPT4ge1xuICBsZXQgZmllbGRJbmRleDogbnVtYmVyO1xuXG4gIGZpZWxkSW5kZXggPSBmaWVsZHMuZmluZEluZGV4KChfOiBhbnkpID0+IHtcbiAgICByZXR1cm4ga2V5ID09PSBfLmtleTtcbiAgfSk7XG5cbiAgcmV0dXJuIGZpZWxkSW5kZXg7XG59O1xuXG5leHBvcnQgY29uc3QgaGlnaGxpZ2h0Rm9ybUZpZWxkRXJyb3IgPSAoZmllbGQ6IGFueSwgZXJyb3I6IGFueSk6IGFueSA9PiB7XG4gIGZpZWxkLmludmFsaWQgPSBlcnJvcjtcbiAgZmllbGQuZm9jdXMgPSBlcnJvcjtcblxuICByZXR1cm4gZmllbGQ7XG59O1xuXG5leHBvcnQgY29uc3QgYXBwZW5kRm9ybUZpZWxkTWVzc2FnZSA9IChcbiAgZmllbGQ6IGFueSxcbiAgbWVzc2FnZTogeyB0eXBlOiBzdHJpbmc7IG1lc3NhZ2U6IHN0cmluZyB9XG4pOiBhbnkgPT4ge1xuICBjb25zdCBoYXNEdXBsaWNhdGVNZXNzYWdlID0gKFxuICAgIG1lc3NhZ2VzOiB7IHR5cGU6IHN0cmluZzsgbWVzc2FnZTogc3RyaW5nIH1bXSxcbiAgICBtZXNzYWdlOiB7IHR5cGU6IHN0cmluZzsgbWVzc2FnZTogc3RyaW5nIH1cbiAgKSA9PiB7XG4gICAgcmV0dXJuIG1lc3NhZ2VzLnNvbWUoKGZpZWxkTWVzc2FnZTogeyB0eXBlOiBzdHJpbmc7IG1lc3NhZ2U6IHN0cmluZyB9KSA9PiB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICBmaWVsZE1lc3NhZ2UudHlwZSA9PT0gbWVzc2FnZS50eXBlICYmXG4gICAgICAgIGZpZWxkTWVzc2FnZS5tZXNzYWdlID09PSBtZXNzYWdlLm1lc3NhZ2VcbiAgICAgICk7XG4gICAgfSk7XG4gIH07XG5cbiAgZmllbGRbXCJtZXNzYWdlc1wiXSA9IFtdO1xuXG4gIGlmIChjaGVja09iamVjdEtleUV4aXN0cyhmaWVsZCwgXCJtZXNzYWdlc1wiKSkge1xuICAgIGlmICghaGFzRHVwbGljYXRlTWVzc2FnZShmaWVsZFtcIm1lc3NhZ2VzXCJdLCBtZXNzYWdlKSkge1xuICAgICAgZmllbGRbXCJtZXNzYWdlc1wiXS5wdXNoKHtcbiAgICAgICAgdHlwZTogbWVzc2FnZS50eXBlLFxuICAgICAgICBtZXNzYWdlOiBtZXNzYWdlLm1lc3NhZ2VcbiAgICAgIH0pO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBmaWVsZFtcIm1lc3NhZ2VzXCJdID0gW3sgdHlwZTogbWVzc2FnZS50eXBlLCBtZXNzYWdlOiBtZXNzYWdlLm1lc3NhZ2UgfV07XG4gIH1cblxuICByZXR1cm4gZmllbGQ7XG59O1xuXG5leHBvcnQgY29uc3QgZmlsdGVyRHVwbGljYXRlc01lZGlhRmlsZXMgPSAoYXJyYXk6IHN0cmluZ1tdKTogc3RyaW5nW10gPT4ge1xuICBjb25zdCB1bmlxdWVGaWxlcyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuXG4gIHJldHVybiBhcnJheS5maWx0ZXIoKG1lZGlhRmlsZSkgPT4ge1xuICAgIGlmICghdW5pcXVlRmlsZXMuaGFzKG1lZGlhRmlsZSkpIHtcbiAgICAgIHVuaXF1ZUZpbGVzLmFkZChtZWRpYUZpbGUpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgZmlsdGVyRHVwbGljYXRlc0ZpbGVzID0gKGFycmF5OiBhbnlbXSk6IGFueVtdID0+IHtcbiAgY29uc3QgdW5pcXVlRmlsZXMgPSBuZXcgU2V0PHN0cmluZz4oKTtcbiAgcmV0dXJuIGFycmF5LmZpbHRlcigoZmlsZSkgPT4ge1xuICAgIGNvbnN0IGZpbGVLZXkgPSBgJHtmaWxlLm5hbWV9LSR7ZmlsZS5zaXplfWA7XG4gICAgaWYgKCF1bmlxdWVGaWxlcy5oYXMoZmlsZUtleSkpIHtcbiAgICAgIHVuaXF1ZUZpbGVzLmFkZChmaWxlS2V5KTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IHJlbW92ZUZvcm1GaWVsZE1lc3NhZ2UgPSAoXG4gIGZpZWxkOiBhbnksXG4gIG1lc3NhZ2U6IHsgdHlwZTogc3RyaW5nOyBtZXNzYWdlOiBzdHJpbmcgfVxuKTogYW55ID0+IHtcbiAgZmllbGRbXCJtZXNzYWdlc1wiXSA9IGZpZWxkW1wibWVzc2FnZXNcIl0uZmlsdGVyKGZ1bmN0aW9uIChmaWVsZE1lc3NhZ2UpIHtcbiAgICByZXR1cm4gZmllbGRNZXNzYWdlLnR5cGUgIT09IG1lc3NhZ2UudHlwZTtcbiAgfSk7XG5cbiAgcmV0dXJuIGZpZWxkO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIHNob3dGb3JtRmllbGRFcnJvcihcbiAgZmllbGRzOiBhbnksXG4gIGVycm9yczogYW55LFxuICBrZXk6IHN0cmluZyxcbiAgZXJyb3I6IGJvb2xlYW5cbikge1xuICBjb25zdCBmaWVsZEluZGV4ID0gZmllbGRzLmZpbmRJbmRleCgoZmllbGQ6IGFueSkgPT4ge1xuICAgIHJldHVybiBmaWVsZC5rZXkgPT09IGtleTtcbiAgfSk7XG5cbiAgY29uc3Qgc2V0RXJyb3JNZXNzYWdlcyA9IChmaWVsZDogYW55LCBlcnJvcnM6IGFueSkgPT4ge1xuICAgIGNvbnN0IGdldEVycm9yTWVzc2FnZSA9IChmaWVsZExhYmVsOiBzdHJpbmcsIGVycm9yVHlwZTogc3RyaW5nKSA9PiB7XG4gICAgICBsZXQgZXJyb3JNZXNzYWdlOiBzdHJpbmcgPSBcIlwiO1xuXG4gICAgICBzd2l0Y2ggKGVycm9yVHlwZSkge1xuICAgICAgICBjYXNlIFwicmVxdWlyZWRcIjpcbiAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBgJHtmaWVsZExhYmVsfSBpcyByZXF1aXJlZCFgO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwiZW1haWxcIjpcbiAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBgJHtmaWVsZExhYmVsfSBoYXMgd3JvbmcgZW1haWwgZm9ybWF0IWA7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJtaW5cIjpcbiAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBgJHtmaWVsZExhYmVsfSBoYXMgd3JvbmcgdmFsdWUhIE1pbmltdW0gdmFsdWU6ICR7ZmllbGQudmFsaWRhdG9ycy5taW59YDtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcIm1pbmxlbmd0aFwiOlxuICAgICAgICAgIGVycm9yTWVzc2FnZSA9IGAke2ZpZWxkTGFiZWx9IGhhcyB3cm9uZyBsZW5ndGghIFJlcXVpcmVkIG1pbmltdW0gbGVuZ3RoOiAke2ZpZWxkLnZhbGlkYXRvcnMubWluTGVuZ3RofWA7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJtYXhcIjpcbiAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBgJHtmaWVsZExhYmVsfSBoYXMgd3JvbmcgdmFsdWUhIE1heGltdW0gdmFsdWU6ICR7ZmllbGQudmFsaWRhdG9ycy5tYXhMZW5ndGh9YDtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcIm1heGxlbmd0aFwiOlxuICAgICAgICAgIGVycm9yTWVzc2FnZSA9IGAke2ZpZWxkTGFiZWx9IGhhcyB3cm9uZyBsZW5ndGghIFJlcXVpcmVkIG1heGltdW0gbGVuZ3RoOiAke2ZpZWxkLnZhbGlkYXRvcnMubWF4TGVuZ3RofWA7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJhcmVFcXVhbFwiOlxuICAgICAgICAgIGVycm9yTWVzc2FnZSA9IGAke2ZpZWxkTGFiZWx9IG11c3QgYmUgZXF1YWwhYDtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcInBhdHRlcm5cIjpcbiAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBgJHtmaWVsZExhYmVsfSBpcyBpbiBpbmNvcnJlY3QgZm9ybWF0IWA7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJvbmx5V2hpdGVzcGFjZXNcIjpcbiAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBgJHtmaWVsZExhYmVsfSBjYW4ndCBjb250YWluIG9ubHkgZW1wdHkgc3BhY2VzIWA7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgZXJyb3JNZXNzYWdlID0gYCR7ZmllbGRMYWJlbH06ICR7ZXJyb3JUeXBlfWA7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBlcnJvck1lc3NhZ2U7XG4gICAgfTtcblxuICAgIE9iamVjdC5rZXlzKGVycm9ycykuZm9yRWFjaCgoZXJyb3IpID0+IHtcbiAgICAgIGZpZWxkID0gYXBwZW5kRm9ybUZpZWxkTWVzc2FnZShmaWVsZCwge1xuICAgICAgICB0eXBlOiBcImVycm9yXCIsXG4gICAgICAgIG1lc3NhZ2U6IGdldEVycm9yTWVzc2FnZShmaWVsZC5sYWJlbCwgZXJyb3IpXG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIHJldHVybiBmaWVsZDtcbiAgfTtcblxuICBpZiAoZXJyb3IpIHtcbiAgICBmaWVsZHNbZmllbGRJbmRleF0gPSBzZXRFcnJvck1lc3NhZ2VzKGZpZWxkc1tmaWVsZEluZGV4XSwgZXJyb3JzKTtcbiAgfSBlbHNlIHtcbiAgICBmaWVsZHNbZmllbGRJbmRleF1bXCJtZXNzYWdlc1wiXSA9IFtdO1xuICB9XG5cbiAgZmllbGRzW2ZpZWxkSW5kZXhdID0gaGlnaGxpZ2h0Rm9ybUZpZWxkRXJyb3IoZmllbGRzW2ZpZWxkSW5kZXhdLCBlcnJvcik7XG5cbiAgcmV0dXJuIGZpZWxkcztcbn1cblxuZXhwb3J0IGNvbnN0IGNvbnZlcnRGb3JtRmllbGRUeXBlRGF0ZVRvS3dpa1VJRm9ybWF0ID0gKFxuICBkYXRlOiBzdHJpbmdcbik6IFR1aURheSA9PiB7XG4gIGNvbnN0IHNwbGl0RGF0ZSA9IGRhdGUuc3BsaXQoXCItXCIpO1xuICBjb25zdCB0dWlEYXkgPSBuZXcgVHVpRGF5KFxuICAgIE51bWJlcihzcGxpdERhdGVbMl0pLCAvLyBZZWFyXG4gICAgTnVtYmVyKHNwbGl0RGF0ZVsxXSkgLSAxLCAvLyBNb250aCwgV2h5ICctMScgPT4gQmVjYXVzZSBUYWlnYS1VSSBSZXF1aXJlZCBJdCwgU28uLi5cbiAgICBOdW1iZXIoc3BsaXREYXRlWzBdKSAvLyBEYXlcbiAgKTtcblxuICByZXR1cm4gdHVpRGF5O1xufTtcblxuZXhwb3J0IGNvbnN0IGNvbnZlcnRGb3JtRmllbGRUeXBlRGF0ZVRvU3RhbmRhcmRGb3JtYXQgPSAoXG4gIGRhdGU6IFR1aURheVxuKTogc3RyaW5nID0+IHtcbiAgbGV0IGZvcm1hdHRlZERhdGU6IHN0cmluZztcbiAgbGV0IHllYXIgPSBkYXRlLnllYXI7XG4gIGxldCBtb250aCA9IGRhdGUubW9udGg7XG4gIGxldCBkYXkgPSBkYXRlLmRheTtcblxuICBmb3JtYXR0ZWREYXRlID0gYCR7ZGF5LnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgXCIwXCIpfS0keyhtb250aCArIDEpXG4gICAgLnRvU3RyaW5nKClcbiAgICAucGFkU3RhcnQoMiwgXCIwXCIpfS0ke3llYXJ9YDtcblxuICByZXR1cm4gZm9ybWF0dGVkRGF0ZTtcbn07XG5cbmV4cG9ydCBjb25zdCBjb252ZXJ0Rm9ybUZpZWxkVmFsdWVUb1N0YW5kYXJkRm9ybWF0ID0gKFxuICBmaWVsZDogVEZpZWxkLFxuICB2YWx1ZTogYW55XG4pID0+IHtcbiAgbGV0IGNvbnZlcnRlZFZhbHVlOiBhbnkgPSB2YWx1ZTtcblxuICBpZiAoaXNOb3RFbXB0eVZhbHVlKHZhbHVlKSkge1xuICAgIHN3aXRjaCAoZmllbGQudHlwZSkge1xuICAgICAgY2FzZSBFRmllbGRUeXBlLkRBVEU6XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgIT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICBjb252ZXJ0ZWRWYWx1ZSA9IGNvbnZlcnRGb3JtRmllbGRUeXBlRGF0ZVRvU3RhbmRhcmRGb3JtYXQodmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBFRmllbGRUeXBlLlJBRElPOlxuICAgICAgICBjb252ZXJ0ZWRWYWx1ZSA9IHZhbHVlLmxhYmVsO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgRUZpZWxkVHlwZS5QSE9ORTpcbiAgICAgICAgbGV0IHBob25lRmllbGQgPSBmaWVsZCBhcyBURmllbGRQaG9uZTtcbiAgICAgICAgaWYgKHBob25lRmllbGQucHJvcGVydGllcy5yZW1vdmVDb3VudHJ5Q29kZUZyb21WYWx1ZSkge1xuICAgICAgICAgIGNvbnZlcnRlZFZhbHVlID0gdmFsdWVcbiAgICAgICAgICAgIC50b1N0cmluZygpXG4gICAgICAgICAgICAucmVwbGFjZShwaG9uZUZpZWxkLnByb3BlcnRpZXMuY291bnRyeUNvZGUsIFwiXCIpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBFRmllbGRUeXBlLkNBUFRVUkU6XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSAmJiBpc05vdEVtcHR5VmFsdWUodmFsdWVbMF0pKSB7XG4gICAgICAgICAgY29udmVydGVkVmFsdWUgPSB2YWx1ZVswXTtcbiAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICB0eXBlb2YgdmFsdWUgIT09IFwic3RyaW5nXCIgfHxcbiAgICAgICAgICAodHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiICYmIGlzRW1wdHlWYWx1ZSh2YWx1ZSkpXG4gICAgICAgICkge1xuICAgICAgICAgIGNvbnZlcnRlZFZhbHVlID0gXCJcIjtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBjb252ZXJ0ZWRWYWx1ZSA9IFwiXCI7XG4gIH1cblxuICByZXR1cm4gY29udmVydGVkVmFsdWU7XG59O1xuXG5leHBvcnQgY29uc3QgY29udmVydEZvcm1GaWVsZFZhbHVlVG9Ld2lrVUlGb3JtYXQgPSAoXG4gIGZpZWxkOiBURmllbGQsXG4gIHZhbHVlOiBhbnlcbikgPT4ge1xuICBsZXQgY29udmVydGVkVmFsdWU6IGFueSA9IHZhbHVlO1xuXG4gIGlmIChpc05vdEVtcHR5VmFsdWUodmFsdWUpKSB7XG4gICAgc3dpdGNoIChmaWVsZC50eXBlKSB7XG4gICAgICBjYXNlIEVGaWVsZFR5cGUuUkFESU86XG4gICAgICAgIGlmICghY2hlY2tPYmplY3RLZXlFeGlzdHModmFsdWUsIFwibGFiZWxcIikpIHtcbiAgICAgICAgICBjb25zdCByYWRpb0ZpZWxkID0gZmllbGQgYXMgYW55O1xuICAgICAgICAgIGNvbnN0IGNvbnZlcnRlZExhYmVsVmFsdWUgPSByYWRpb0ZpZWxkLm9wdGlvbnMuZmluZCgoaXRlbTogYW55KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gaXRlbS5sYWJlbCA9PT0gdmFsdWU7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgY29udmVydGVkVmFsdWUgPSBjb252ZXJ0ZWRMYWJlbFZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBFRmllbGRUeXBlLkRBVEU6XG4gICAgICAgIGNvbnZlcnRlZFZhbHVlID0gY29udmVydEZvcm1GaWVsZFR5cGVEYXRlVG9Ld2lrVUlGb3JtYXQodmFsdWUpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgRUZpZWxkVHlwZS5GSUxFOlxuICAgICAgICBjb252ZXJ0ZWRWYWx1ZSA9IHZhbHVlO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgRUZpZWxkVHlwZS5DQVBUVVJFOlxuICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgY29udmVydGVkVmFsdWUgPSBbdmFsdWVdO1xuICAgICAgICB9IGVsc2UgaWYgKCFBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAgIGNvbnZlcnRlZFZhbHVlID0gW107XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29udmVydGVkVmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBjb252ZXJ0ZWRWYWx1ZSA9IGNvbnZlcnRGb3JtRmllbGRFbXB0eVZhbHVlVG9Ld2lrVUlGb3JtYXQoZmllbGQpO1xuICB9XG5cbiAgcmV0dXJuIGNvbnZlcnRlZFZhbHVlO1xufTtcblxuZXhwb3J0IGNvbnN0IGNvbnZlcnRGb3JtRmllbGRFbXB0eVZhbHVlVG9Ld2lrVUlGb3JtYXQgPSAoXG4gIGZpZWxkOiBURmllbGRcbik6IGFueSA9PiB7XG4gIGNvbnN0IGZpZWxkVHlwZTogVEZpZWxkVHlwZSA9IGZpZWxkLnR5cGU7XG4gIGxldCB2YWx1ZTogYW55O1xuXG4gIHN3aXRjaCAoZmllbGRUeXBlKSB7XG4gICAgY2FzZSBFRmllbGRUeXBlLkNIRUNLQk9YOlxuICAgICAgdmFsdWUgPSBmYWxzZTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgRUZpZWxkVHlwZS5OVU1CRVI6XG4gICAgICB2YWx1ZSA9IG51bGw7XG4gICAgICBicmVhaztcbiAgICBjYXNlIEVGaWVsZFR5cGUuREFURTpcbiAgICAgIHZhbHVlID0gbnVsbDtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgRUZpZWxkVHlwZS5GSUxFOlxuICAgICAgdmFsdWUgPSBbXTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgRUZpZWxkVHlwZS5DQVBUVVJFOlxuICAgICAgdmFsdWUgPSBbXTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgRUZpZWxkVHlwZS5TRUxFQ1Q6XG4gICAgICB2YWx1ZSA9IG51bGw7XG4gICAgICBicmVhaztcbiAgICBjYXNlIEVGaWVsZFR5cGUuRFJPUERPV05fV0lUSF9TRUFSQ0g6XG4gICAgICB2YWx1ZSA9IG51bGw7XG4gICAgICBicmVhaztcbiAgICBkZWZhdWx0OlxuICAgICAgdmFsdWUgPSBcIlwiO1xuICAgICAgYnJlYWs7XG4gIH1cblxuICByZXR1cm4gdmFsdWU7XG59O1xuIl19
278
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS12aWV3LmZpZWxkcy5oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rd2lraWQtZm9ybXMvc3JjL2xpYi9yZW5kZXJlci9mb3JtLXZpZXcvaGVscGVycy9mb3JtLXZpZXcuZmllbGRzLmhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIsZUFBZSxFQUNmLFlBQVksRUFDWixRQUFRLEVBQ1QsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQ0wsVUFBVSxFQUlYLE1BQU0sNENBQTRDLENBQUM7QUFFcEQsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxNQUFhLEVBQUUsR0FBVyxFQUFFLEVBQUU7SUFDOUQsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1FBQ2xDLElBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxHQUFHLEVBQUU7WUFDckIsT0FBTyxLQUFLLENBQUM7U0FDZDtJQUNILENBQUMsQ0FBQyxDQUFDO0lBRUgsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxDQUFDLE1BQWEsRUFBRSxHQUFXLEVBQUUsRUFBRTtJQUNuRSxJQUFJLFVBQWtCLENBQUM7SUFFdkIsVUFBVSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRTtRQUN2QyxPQUFPLEdBQUcsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDO0lBQ3ZCLENBQUMsQ0FBQyxDQUFDO0lBRUgsT0FBTyxVQUFVLENBQUM7QUFDcEIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsQ0FBQyxLQUFVLEVBQUUsS0FB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LEdBQUcsRUFBRSxDQUFDO1lBQ1gsTUFBTTtRQUNSLEtBQUssVUFBVSxDQUFDLE9BQU87WUFDckIsS0FBSyxHQUFHLEVBQUUsQ0FBQztZQUNYLE1BQU07UUFDUixLQUFLLFVBQVUsQ0FBQyxNQUFNO1lBQ3BCLEtBQUssR0FBRyxJQUFJLENBQUM7WUFDYixNQUFNO1FBQ1IsS0FBSyxVQUFVLENBQUMsb0JBQW9CO1lBQ2xDLEtBQUssR0FBRyxJQUFJLENBQUM7WUFDYixNQUFNO1FBQ1I7WUFDRSxLQUFLLEdBQUcsRUFBRSxDQUFDO1lBQ1gsTUFBTTtLQUNUO0lBRUQsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUdWlEYXkgfSBmcm9tIFwiQHRhaWdhLXVpL2Nka1wiO1xuaW1wb3J0IHtcbiAgY2hlY2tPYmplY3RLZXlFeGlzdHMsXG4gIGlzTm90RW1wdHlWYWx1ZSxcbiAgaXNFbXB0eVZhbHVlLFxuICBpc09iamVjdFxufSBmcm9tIFwia3dpa2lkLXRvb2xraXRcIjtcbmltcG9ydCB7XG4gIEVGaWVsZFR5cGUsXG4gIFRGaWVsZCxcbiAgVEZpZWxkUGhvbmUsXG4gIFRGaWVsZFR5cGVcbn0gZnJvbSBcIi4uL2RlZmluaXRpb25zL2Zvcm0tdmlldy5maWVsZHMuZGVmaW5pdGlvblwiO1xuXG5leHBvcnQgY29uc3QgZ2V0Rm9ybUZpZWxkQnlLZXkgPSAoZmllbGRzOiBhbnlbXSwga2V5OiBzdHJpbmcpID0+IHtcbiAgY29uc3QgZmllbGQgPSBmaWVsZHMuZmluZCgoZmllbGQpID0+IHtcbiAgICBpZiAoZmllbGQua2V5ID09PSBrZXkpIHtcbiAgICAgIHJldHVybiBmaWVsZDtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiBmaWVsZDtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRGb3JtRmllbGRJbmRleEJ5S2V5ID0gKGZpZWxkczogYW55W10sIGtleTogc3RyaW5nKSA9PiB7XG4gIGxldCBmaWVsZEluZGV4OiBudW1iZXI7XG5cbiAgZmllbGRJbmRleCA9IGZpZWxkcy5maW5kSW5kZXgoKF86IGFueSkgPT4ge1xuICAgIHJldHVybiBrZXkgPT09IF8ua2V5O1xuICB9KTtcblxuICByZXR1cm4gZmllbGRJbmRleDtcbn07XG5cbmV4cG9ydCBjb25zdCBoaWdobGlnaHRGb3JtRmllbGRFcnJvciA9IChmaWVsZDogYW55LCBlcnJvcjogYW55KTogYW55ID0+IHtcbiAgZmllbGQuaW52YWxpZCA9IGVycm9yO1xuICBmaWVsZC5mb2N1cyA9IGVycm9yO1xuXG4gIHJldHVybiBmaWVsZDtcbn07XG5cbmV4cG9ydCBjb25zdCBhcHBlbmRGb3JtRmllbGRNZXNzYWdlID0gKFxuICBmaWVsZDogYW55LFxuICBtZXNzYWdlOiB7IHR5cGU6IHN0cmluZzsgbWVzc2FnZTogc3RyaW5nIH1cbik6IGFueSA9PiB7XG4gIGNvbnN0IGhhc0R1cGxpY2F0ZU1lc3NhZ2UgPSAoXG4gICAgbWVzc2FnZXM6IHsgdHlwZTogc3RyaW5nOyBtZXNzYWdlOiBzdHJpbmcgfVtdLFxuICAgIG1lc3NhZ2U6IHsgdHlwZTogc3RyaW5nOyBtZXNzYWdlOiBzdHJpbmcgfVxuICApID0+IHtcbiAgICByZXR1cm4gbWVzc2FnZXMuc29tZSgoZmllbGRNZXNzYWdlOiB7IHR5cGU6IHN0cmluZzsgbWVzc2FnZTogc3RyaW5nIH0pID0+IHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIGZpZWxkTWVzc2FnZS50eXBlID09PSBtZXNzYWdlLnR5cGUgJiZcbiAgICAgICAgZmllbGRNZXNzYWdlLm1lc3NhZ2UgPT09IG1lc3NhZ2UubWVzc2FnZVxuICAgICAgKTtcbiAgICB9KTtcbiAgfTtcblxuICBmaWVsZFtcIm1lc3NhZ2VzXCJdID0gW107XG5cbiAgaWYgKGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZpZWxkLCBcIm1lc3NhZ2VzXCIpKSB7XG4gICAgaWYgKCFoYXNEdXBsaWNhdGVNZXNzYWdlKGZpZWxkW1wibWVzc2FnZXNcIl0sIG1lc3NhZ2UpKSB7XG4gICAgICBmaWVsZFtcIm1lc3NhZ2VzXCJdLnB1c2goe1xuICAgICAgICB0eXBlOiBtZXNzYWdlLnR5cGUsXG4gICAgICAgIG1lc3NhZ2U6IG1lc3NhZ2UubWVzc2FnZVxuICAgICAgfSk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGZpZWxkW1wibWVzc2FnZXNcIl0gPSBbeyB0eXBlOiBtZXNzYWdlLnR5cGUsIG1lc3NhZ2U6IG1lc3NhZ2UubWVzc2FnZSB9XTtcbiAgfVxuXG4gIHJldHVybiBmaWVsZDtcbn07XG5cbmV4cG9ydCBjb25zdCBmaWx0ZXJEdXBsaWNhdGVzTWVkaWFGaWxlcyA9IChhcnJheTogc3RyaW5nW10pOiBzdHJpbmdbXSA9PiB7XG4gIGNvbnN0IHVuaXF1ZUZpbGVzID0gbmV3IFNldDxzdHJpbmc+KCk7XG5cbiAgcmV0dXJuIGFycmF5LmZpbHRlcigobWVkaWFGaWxlKSA9PiB7XG4gICAgaWYgKCF1bmlxdWVGaWxlcy5oYXMobWVkaWFGaWxlKSkge1xuICAgICAgdW5pcXVlRmlsZXMuYWRkKG1lZGlhRmlsZSk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBmaWx0ZXJEdXBsaWNhdGVzRmlsZXMgPSAoYXJyYXk6IGFueVtdKTogYW55W10gPT4ge1xuICBjb25zdCB1bmlxdWVGaWxlcyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICByZXR1cm4gYXJyYXkuZmlsdGVyKChmaWxlKSA9PiB7XG4gICAgY29uc3QgZmlsZUtleSA9IGAke2ZpbGUubmFtZX0tJHtmaWxlLnNpemV9YDtcbiAgICBpZiAoIXVuaXF1ZUZpbGVzLmhhcyhmaWxlS2V5KSkge1xuICAgICAgdW5pcXVlRmlsZXMuYWRkKGZpbGVLZXkpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfSk7XG59O1xuXG5leHBvcnQgY29uc3QgcmVtb3ZlRm9ybUZpZWxkTWVzc2FnZSA9IChcbiAgZmllbGQ6IGFueSxcbiAgbWVzc2FnZTogeyB0eXBlOiBzdHJpbmc7IG1lc3NhZ2U6IHN0cmluZyB9XG4pOiBhbnkgPT4ge1xuICBmaWVsZFtcIm1lc3NhZ2VzXCJdID0gZmllbGRbXCJtZXNzYWdlc1wiXS5maWx0ZXIoZnVuY3Rpb24gKGZpZWxkTWVzc2FnZSkge1xuICAgIHJldHVybiBmaWVsZE1lc3NhZ2UudHlwZSAhPT0gbWVzc2FnZS50eXBlO1xuICB9KTtcblxuICByZXR1cm4gZmllbGQ7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gc2hvd0Zvcm1GaWVsZEVycm9yKFxuICBmaWVsZHM6IGFueSxcbiAgZXJyb3JzOiBhbnksXG4gIGtleTogc3RyaW5nLFxuICBlcnJvcjogYm9vbGVhblxuKSB7XG4gIGNvbnN0IGZpZWxkSW5kZXggPSBmaWVsZHMuZmluZEluZGV4KChmaWVsZDogYW55KSA9PiB7XG4gICAgcmV0dXJuIGZpZWxkLmtleSA9PT0ga2V5O1xuICB9KTtcblxuICBjb25zdCBzZXRFcnJvck1lc3NhZ2VzID0gKGZpZWxkOiBhbnksIGVycm9yczogYW55KSA9PiB7XG4gICAgY29uc3QgZ2V0RXJyb3JNZXNzYWdlID0gKGZpZWxkTGFiZWw6IHN0cmluZywgZXJyb3JUeXBlOiBzdHJpbmcpID0+IHtcbiAgICAgIGxldCBlcnJvck1lc3NhZ2U6IHN0cmluZyA9IFwiXCI7XG5cbiAgICAgIHN3aXRjaCAoZXJyb3JUeXBlKSB7XG4gICAgICAgIGNhc2UgXCJyZXF1aXJlZFwiOlxuICAgICAgICAgIGVycm9yTWVzc2FnZSA9IGAke2ZpZWxkTGFiZWx9IGlzIHJlcXVpcmVkIWA7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJlbWFpbFwiOlxuICAgICAgICAgIGVycm9yTWVzc2FnZSA9IGAke2ZpZWxkTGFiZWx9IGhhcyB3cm9uZyBlbWFpbCBmb3JtYXQhYDtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcIm1pblwiOlxuICAgICAgICAgIGVycm9yTWVzc2FnZSA9IGAke2ZpZWxkTGFiZWx9IGhhcyB3cm9uZyB2YWx1ZSEgTWluaW11bSB2YWx1ZTogJHtmaWVsZC52YWxpZGF0b3JzLm1pbn1gO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwibWlubGVuZ3RoXCI6XG4gICAgICAgICAgZXJyb3JNZXNzYWdlID0gYCR7ZmllbGRMYWJlbH0gaGFzIHdyb25nIGxlbmd0aCEgUmVxdWlyZWQgbWluaW11bSBsZW5ndGg6ICR7ZmllbGQudmFsaWRhdG9ycy5taW5MZW5ndGh9YDtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcIm1heFwiOlxuICAgICAgICAgIGVycm9yTWVzc2FnZSA9IGAke2ZpZWxkTGFiZWx9IGhhcyB3cm9uZyB2YWx1ZSEgTWF4aW11bSB2YWx1ZTogJHtmaWVsZC52YWxpZGF0b3JzLm1heExlbmd0aH1gO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwibWF4bGVuZ3RoXCI6XG4gICAgICAgICAgZXJyb3JNZXNzYWdlID0gYCR7ZmllbGRMYWJlbH0gaGFzIHdyb25nIGxlbmd0aCEgUmVxdWlyZWQgbWF4aW11bSBsZW5ndGg6ICR7ZmllbGQudmFsaWRhdG9ycy5tYXhMZW5ndGh9YDtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcImFyZUVxdWFsXCI6XG4gICAgICAgICAgZXJyb3JNZXNzYWdlID0gYCR7ZmllbGRMYWJlbH0gbXVzdCBiZSBlcXVhbCFgO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwicGF0dGVyblwiOlxuICAgICAgICAgIGVycm9yTWVzc2FnZSA9IGAke2ZpZWxkTGFiZWx9IGlzIGluIGluY29ycmVjdCBmb3JtYXQhYDtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcIm9ubHlXaGl0ZXNwYWNlc1wiOlxuICAgICAgICAgIGVycm9yTWVzc2FnZSA9IGAke2ZpZWxkTGFiZWx9IGNhbid0IGNvbnRhaW4gb25seSBlbXB0eSBzcGFjZXMhYDtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBgJHtmaWVsZExhYmVsfTogJHtlcnJvclR5cGV9YDtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGVycm9yTWVzc2FnZTtcbiAgICB9O1xuXG4gICAgT2JqZWN0LmtleXMoZXJyb3JzKS5mb3JFYWNoKChlcnJvcikgPT4ge1xuICAgICAgZmllbGQgPSBhcHBlbmRGb3JtRmllbGRNZXNzYWdlKGZpZWxkLCB7XG4gICAgICAgIHR5cGU6IFwiZXJyb3JcIixcbiAgICAgICAgbWVzc2FnZTogZ2V0RXJyb3JNZXNzYWdlKGZpZWxkLmxhYmVsLCBlcnJvcilcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIGZpZWxkO1xuICB9O1xuXG4gIGlmIChlcnJvcikge1xuICAgIGZpZWxkc1tmaWVsZEluZGV4XSA9IHNldEVycm9yTWVzc2FnZXMoZmllbGRzW2ZpZWxkSW5kZXhdLCBlcnJvcnMpO1xuICB9IGVsc2Uge1xuICAgIGZpZWxkc1tmaWVsZEluZGV4XVtcIm1lc3NhZ2VzXCJdID0gW107XG4gIH1cblxuICBmaWVsZHNbZmllbGRJbmRleF0gPSBoaWdobGlnaHRGb3JtRmllbGRFcnJvcihmaWVsZHNbZmllbGRJbmRleF0sIGVycm9yKTtcblxuICByZXR1cm4gZmllbGRzO1xufVxuXG5leHBvcnQgY29uc3QgY29udmVydEZvcm1GaWVsZFR5cGVEYXRlVG9Ld2lrVUlGb3JtYXQgPSAoXG4gIGRhdGU6IHN0cmluZ1xuKTogVHVpRGF5ID0+IHtcbiAgY29uc3Qgc3BsaXREYXRlID0gZGF0ZS5zcGxpdChcIi1cIik7XG4gIGNvbnN0IHR1aURheSA9IG5ldyBUdWlEYXkoXG4gICAgTnVtYmVyKHNwbGl0RGF0ZVsyXSksIC8vIFllYXJcbiAgICBOdW1iZXIoc3BsaXREYXRlWzFdKSAtIDEsIC8vIE1vbnRoLCBXaHkgJy0xJyA9PiBCZWNhdXNlIFRhaWdhLVVJIFJlcXVpcmVkIEl0LCBTby4uLlxuICAgIE51bWJlcihzcGxpdERhdGVbMF0pIC8vIERheVxuICApO1xuXG4gIHJldHVybiB0dWlEYXk7XG59O1xuXG5leHBvcnQgY29uc3QgY29udmVydEZvcm1GaWVsZFR5cGVEYXRlVG9TdGFuZGFyZEZvcm1hdCA9IChcbiAgZGF0ZTogVHVpRGF5XG4pOiBzdHJpbmcgPT4ge1xuICBsZXQgZm9ybWF0dGVkRGF0ZTogc3RyaW5nO1xuICBsZXQgeWVhciA9IGRhdGUueWVhcjtcbiAgbGV0IG1vbnRoID0gZGF0ZS5tb250aDtcbiAgbGV0IGRheSA9IGRhdGUuZGF5O1xuXG4gIGZvcm1hdHRlZERhdGUgPSBgJHtkYXkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCBcIjBcIil9LSR7KG1vbnRoICsgMSlcbiAgICAudG9TdHJpbmcoKVxuICAgIC5wYWRTdGFydCgyLCBcIjBcIil9LSR7eWVhcn1gO1xuXG4gIHJldHVybiBmb3JtYXR0ZWREYXRlO1xufTtcblxuZXhwb3J0IGNvbnN0IGNvbnZlcnRGb3JtRmllbGRWYWx1ZVRvU3RhbmRhcmRGb3JtYXQgPSAoXG4gIGZpZWxkOiBURmllbGQsXG4gIHZhbHVlOiBhbnlcbikgPT4ge1xuICBsZXQgY29udmVydGVkVmFsdWU6IGFueSA9IHZhbHVlO1xuXG4gIGlmIChpc05vdEVtcHR5VmFsdWUodmFsdWUpKSB7XG4gICAgc3dpdGNoIChmaWVsZC50eXBlKSB7XG4gICAgICBjYXNlIEVGaWVsZFR5cGUuREFURTpcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgIGNvbnZlcnRlZFZhbHVlID0gY29udmVydEZvcm1GaWVsZFR5cGVEYXRlVG9TdGFuZGFyZEZvcm1hdCh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIEVGaWVsZFR5cGUuUkFESU86XG4gICAgICAgIGNvbnZlcnRlZFZhbHVlID0gdmFsdWUubGFiZWw7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBFRmllbGRUeXBlLlNFTEVDVDpcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZmllbGQub3B0aW9ucykpIHtcbiAgICAgICAgICBmaWVsZC5vcHRpb25zLmZpbmQoKGl0ZW06IGFueSkgPT4ge1xuICAgICAgICAgICAgaWYgKGlzT2JqZWN0KGl0ZW0pKSB7XG4gICAgICAgICAgICAgIGlmIChpdGVtLnRpdGxlID09IHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgY29udmVydGVkVmFsdWUgPSBpdGVtLnZhbHVlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIEVGaWVsZFR5cGUuUEhPTkU6XG4gICAgICAgIGxldCBwaG9uZUZpZWxkID0gZmllbGQgYXMgVEZpZWxkUGhvbmU7XG4gICAgICAgIGlmIChwaG9uZUZpZWxkLnByb3BlcnRpZXMucmVtb3ZlQ291bnRyeUNvZGVGcm9tVmFsdWUpIHtcbiAgICAgICAgICBjb252ZXJ0ZWRWYWx1ZSA9IHZhbHVlXG4gICAgICAgICAgICAudG9TdHJpbmcoKVxuICAgICAgICAgICAgLnJlcGxhY2UocGhvbmVGaWVsZC5wcm9wZXJ0aWVzLmNvdW50cnlDb2RlLCBcIlwiKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgRUZpZWxkVHlwZS5DQVBUVVJFOlxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgaXNOb3RFbXB0eVZhbHVlKHZhbHVlWzBdKSkge1xuICAgICAgICAgIGNvbnZlcnRlZFZhbHVlID0gdmFsdWVbMF07XG4gICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgdHlwZW9mIHZhbHVlICE9PSBcInN0cmluZ1wiIHx8XG4gICAgICAgICAgKHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIiAmJiBpc0VtcHR5VmFsdWUodmFsdWUpKVxuICAgICAgICApIHtcbiAgICAgICAgICBjb252ZXJ0ZWRWYWx1ZSA9IFwiXCI7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBicmVhaztcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgY29udmVydGVkVmFsdWUgPSBcIlwiO1xuICB9XG5cbiAgcmV0dXJuIGNvbnZlcnRlZFZhbHVlO1xufTtcblxuZXhwb3J0IGNvbnN0IGNvbnZlcnRGb3JtRmllbGRWYWx1ZVRvS3dpa1VJRm9ybWF0ID0gKFxuICBmaWVsZDogVEZpZWxkLFxuICB2YWx1ZTogYW55XG4pID0+IHtcbiAgbGV0IGNvbnZlcnRlZFZhbHVlOiBhbnkgPSB2YWx1ZTtcblxuICBpZiAoaXNOb3RFbXB0eVZhbHVlKHZhbHVlKSkge1xuICAgIHN3aXRjaCAoZmllbGQudHlwZSkge1xuICAgICAgY2FzZSBFRmllbGRUeXBlLlJBRElPOlxuICAgICAgICBpZiAoIWNoZWNrT2JqZWN0S2V5RXhpc3RzKHZhbHVlLCBcImxhYmVsXCIpKSB7XG4gICAgICAgICAgY29uc3QgcmFkaW9GaWVsZCA9IGZpZWxkIGFzIGFueTtcbiAgICAgICAgICBjb25zdCBjb252ZXJ0ZWRMYWJlbFZhbHVlID0gcmFkaW9GaWVsZC5vcHRpb25zLmZpbmQoKGl0ZW06IGFueSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGl0ZW0ubGFiZWwgPT09IHZhbHVlO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIGNvbnZlcnRlZFZhbHVlID0gY29udmVydGVkTGFiZWxWYWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgRUZpZWxkVHlwZS5TRUxFQ1Q6XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGZpZWxkLm9wdGlvbnMpKSB7XG4gICAgICAgICAgZmllbGQub3B0aW9ucy5maW5kKChpdGVtOiBhbnkpID0+IHtcbiAgICAgICAgICAgIGlmIChpc09iamVjdChpdGVtKSkge1xuICAgICAgICAgICAgICBpZiAoaXRlbS52YWx1ZSA9PSB2YWx1ZSkge1xuICAgICAgICAgICAgICAgIGNvbnZlcnRlZFZhbHVlID0gaXRlbS50aXRsZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBFRmllbGRUeXBlLkRBVEU6XG4gICAgICAgIGNvbnZlcnRlZFZhbHVlID0gY29udmVydEZvcm1GaWVsZFR5cGVEYXRlVG9Ld2lrVUlGb3JtYXQodmFsdWUpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgRUZpZWxkVHlwZS5GSUxFOlxuICAgICAgICBjb252ZXJ0ZWRWYWx1ZSA9IHZhbHVlO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgRUZpZWxkVHlwZS5DQVBUVVJFOlxuICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgY29udmVydGVkVmFsdWUgPSBbdmFsdWVdO1xuICAgICAgICB9IGVsc2UgaWYgKCFBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAgIGNvbnZlcnRlZFZhbHVlID0gW107XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29udmVydGVkVmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBjb252ZXJ0ZWRWYWx1ZSA9IGNvbnZlcnRGb3JtRmllbGRFbXB0eVZhbHVlVG9Ld2lrVUlGb3JtYXQoZmllbGQpO1xuICB9XG5cbiAgcmV0dXJuIGNvbnZlcnRlZFZhbHVlO1xufTtcblxuZXhwb3J0IGNvbnN0IGNvbnZlcnRGb3JtRmllbGRFbXB0eVZhbHVlVG9Ld2lrVUlGb3JtYXQgPSAoXG4gIGZpZWxkOiBURmllbGRcbik6IGFueSA9PiB7XG4gIGNvbnN0IGZpZWxkVHlwZTogVEZpZWxkVHlwZSA9IGZpZWxkLnR5cGU7XG4gIGxldCB2YWx1ZTogYW55O1xuXG4gIHN3aXRjaCAoZmllbGRUeXBlKSB7XG4gICAgY2FzZSBFRmllbGRUeXBlLkNIRUNLQk9YOlxuICAgICAgdmFsdWUgPSBmYWxzZTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgRUZpZWxkVHlwZS5OVU1CRVI6XG4gICAgICB2YWx1ZSA9IG51bGw7XG4gICAgICBicmVhaztcbiAgICBjYXNlIEVGaWVsZFR5cGUuREFURTpcbiAgICAgIHZhbHVlID0gbnVsbDtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgRUZpZWxkVHlwZS5GSUxFOlxuICAgICAgdmFsdWUgPSBbXTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgRUZpZWxkVHlwZS5DQVBUVVJFOlxuICAgICAgdmFsdWUgPSBbXTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgRUZpZWxkVHlwZS5TRUxFQ1Q6XG4gICAgICB2YWx1ZSA9IG51bGw7XG4gICAgICBicmVhaztcbiAgICBjYXNlIEVGaWVsZFR5cGUuRFJPUERPV05fV0lUSF9TRUFSQ0g6XG4gICAgICB2YWx1ZSA9IG51bGw7XG4gICAgICBicmVhaztcbiAgICBkZWZhdWx0OlxuICAgICAgdmFsdWUgPSBcIlwiO1xuICAgICAgYnJlYWs7XG4gIH1cblxuICByZXR1cm4gdmFsdWU7XG59O1xuIl19
@@ -2,7 +2,7 @@ import { __decorate } from "tslib";
2
2
  import { Component, EventEmitter, Input, Output } from "@angular/core";
3
3
  import { checkObjectKeyExists, checkObjectPathExists, isNull, isUndefined, logMethod, mergeObjects, setValueToObjectPath } from "kwikid-toolkit";
4
4
  import { EFormType } from "../renderer.definitions";
5
- import { getLanguage, updateDisplayLanguage } from "../config-converter/config-converter.helper";
5
+ import { getLanguage, updateLanguage } from "../config-converter/config-converter.helper";
6
6
  import * as i0 from "@angular/core";
7
7
  import * as i1 from "kwikui";
8
8
  import * as i2 from "@taiga-ui/core";
@@ -94,7 +94,7 @@ export class KwikIDFormsListComponent {
94
94
  }
95
95
  }
96
96
  stepConfig.props.formListProperties.footer.submitFormButton.label =
97
- updateDisplayLanguage(stepConfig.props.formListProperties.footer.submitFormButton.label, getLanguage());
97
+ updateLanguage(stepConfig.props.formListProperties.footer.submitFormButton.label, getLanguage());
98
98
  return stepConfig;
99
99
  }
100
100
  filterHiddenForms(formsList) {
@@ -109,7 +109,7 @@ export class KwikIDFormsListComponent {
109
109
  setFormTitles(formsList) {
110
110
  return formsList.filter((form) => {
111
111
  if (checkObjectPathExists(form, "props.title")) {
112
- form.props.title = updateDisplayLanguage(form.props.title, getLanguage());
112
+ form.props.title = updateLanguage(form.props.title, getLanguage());
113
113
  return form;
114
114
  }
115
115
  });
@@ -224,4 +224,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
224
224
  }], onClickSubmitForms: [{
225
225
  type: Output
226
226
  }], ngOnChanges: [], formatStepConfig: [], filterHiddenForms: [], findFormsListLength: [], checkIsAllFormsCompleted: [], handleOnClickSetActiveForm: [], handleOnSubmitForms: [] } });
227
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybXMtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rd2lraWQtZm9ybXMvc3JjL2xpYi9yZW5kZXJlci9mb3Jtcy1saXN0L2Zvcm1zLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva3dpa2lkLWZvcm1zL3NyYy9saWIvcmVuZGVyZXIvZm9ybXMtbGlzdC9mb3Jtcy1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUVQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIscUJBQXFCLEVBQ3JCLE1BQU0sRUFDTixXQUFXLEVBQ1gsU0FBUyxFQUNULFlBQVksRUFDWixvQkFBb0IsRUFDckIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDcEQsT0FBTyxFQUNMLFdBQVcsRUFDWCxxQkFBcUIsRUFDdEIsTUFBTSw2Q0FBNkMsQ0FBQzs7Ozs7QUFPckQsTUFBTSxPQUFPLHdCQUF3QjtJQTZDbkM7UUEzQ0EsbUJBQWMsR0FBUSxFQUFFLENBQUM7UUFHekIsZUFBVSxHQUFRLEVBQUUsQ0FBQztRQUdyQixlQUFVLEdBQVEsRUFBRSxDQUFDO1FBR3JCLHFCQUFnQixHQUFRLEVBQUUsQ0FBQztRQUczQixjQUFTLEdBQVUsRUFBRSxDQUFDO1FBR3RCLHVCQUFrQixHQUFVLEVBQUUsQ0FBQztRQUcvQixpQkFBWSxHQUFZLEtBQUssQ0FBQztRQUc5QixrQkFBYSxHQUFZLEtBQUssQ0FBQztRQUcvQix5QkFBb0IsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUdsRSx5QkFBb0IsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUds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Ozs7V0FLRztRQUVILElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbEMsQ0FBQzs7eUlBeE9VLHdCQUF3Qjs2SEFBeEIsd0JBQXdCLHllQzdCckMsMDRHQTRHQTtBRGhCRTtJQURDLFNBQVM7MkRBZ0NUO0FBR0Q7SUFEQyxTQUFTO2dFQTJDVDtBQUdEO0lBREMsU0FBUztpRUFTVDtBQWVEO0lBREMsU0FBUzttRUFtQlQ7QUFHRDtJQURDLFNBQVM7d0VBZ0JUO0FBR0Q7SUFEQyxTQUFTOzBFQWlCVDtBQUdEO0lBREMsU0FBUzttRUFVVDs0RkF4T1Usd0JBQXdCO2tCQUxwQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxtQkFBbUI7b0JBQzdCLFdBQVcsRUFBRSw2QkFBNkI7b0JBQzFDLFNBQVMsRUFBRSxDQUFDLDZCQUE2QixFQUFFLGdCQUFnQixDQUFDO2lCQUM3RDswRUFHQyxjQUFjO3NCQURiLEtBQUs7Z0JBSU4sVUFBVTtzQkFEVCxLQUFLO2dCQUlOLFVBQVU7c0JBRFQsS0FBSztnQkFJTixnQkFBZ0I7c0JBRGYsS0FBSztnQkFJTixTQUFTO3NCQURSLEtBQUs7Z0JBSU4sa0JBQWtCO3NCQURqQixLQUFLO2dCQUlOLFlBQVk7c0JBRFgsS0FBSztnQkFJTixhQUFhO3NCQURaLEtBQUs7Z0JBSU4sb0JBQW9CO3NCQURuQixNQUFNO2dCQUlQLG9CQUFvQjtzQkFEbkIsTUFBTTtnQkFJUCxrQkFBa0I7c0JBRGpCLE1BQU07Z0JBZ0NQLFdBQVcsTUFrQ1gsZ0JBQWdCLE1BNkNoQixpQkFBaUIsTUF1QmpCLG1CQUFtQixNQXFCbkIsd0JBQXdCLE1Ba0J4QiwwQkFBMEIsTUFtQjFCLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlc1xufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtcbiAgY2hlY2tPYmplY3RLZXlFeGlzdHMsXG4gIGNoZWNrT2JqZWN0UGF0aEV4aXN0cyxcbiAgaXNOdWxsLFxuICBpc1VuZGVmaW5lZCxcbiAgbG9nTWV0aG9kLFxuICBtZXJnZU9iamVjdHMsXG4gIHNldFZhbHVlVG9PYmplY3RQYXRoXG59IGZyb20gXCJrd2lraWQtdG9vbGtpdFwiO1xuaW1wb3J0IHsgRUZvcm1UeXBlIH0gZnJvbSBcIi4uL3JlbmRlcmVyLmRlZmluaXRpb25zXCI7XG5pbXBvcnQge1xuICBnZXRMYW5ndWFnZSxcbiAgdXBkYXRlRGlzcGxheUxhbmd1YWdlXG59IGZyb20gXCIuLi9jb25maWctY29udmVydGVyL2NvbmZpZy1jb252ZXJ0ZXIuaGVscGVyXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJrd2lraWQtZm9ybXMtbGlzdFwiLFxuICB0ZW1wbGF0ZVVybDogXCIuL2Zvcm1zLWxpc3QuY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVVcmxzOiBbXCIuL2Zvcm1zLWxpc3QuY29tcG9uZW50LnNjc3NcIiwgXCIuLi9zaGFyZWQuc2Nzc1wiXVxufSlcbmV4cG9ydCBjbGFzcyBLd2lrSURGb3Jtc0xpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpXG4gIHNob3dGb3JtRmllbGRzOiBhbnkgPSB7fTtcblxuICBASW5wdXQoKVxuICB1c2VyQ29uZmlnOiBhbnkgPSB7fTtcblxuICBASW5wdXQoKVxuICBzdGVwQ29uZmlnOiBhbnkgPSB7fTtcblxuICBASW5wdXQoKVxuICBhY3RpdmVGb3JtQ29uZmlnOiBhbnkgPSB7fTtcblxuICBASW5wdXQoKVxuICBmb3Jtc0xpc3Q6IGFueVtdID0gW107XG5cbiAgQElucHV0KClcbiAgZm9ybXNMaXN0Q29tcGxldGVkOiBhbnlbXSA9IFtdO1xuXG4gIEBJbnB1dCgpXG4gIGlzTW9iaWxlVmlldzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIGlzVW5zYXZlZERhdGE6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBAT3V0cHV0KClcbiAgb25DbGlja1NldEFjdGl2ZUZvcm06IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgQE91dHB1dCgpXG4gIG9uQ2xpY2tIaWRlRm9ybXNMaXN0OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIEBPdXRwdXQoKVxuICBvbkNsaWNrU3VibWl0Rm9ybXMgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBzZWxlY3RlZEZvcm06IHN0cmluZyA9IFwiXCI7XG4gIHNldFNlbGVjdGVkRm9ybShzZWxlY3RlZF9mb3JtOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkRm9ybSA9IHNlbGVjdGVkX2Zvcm07XG4gIH1cblxuICBmb3Jtc0xpc3RMZW5ndGg6IG51bWJlciA9IDA7XG5cbiAgaXNBbGxGb3Jtc0NvbXBsZXRlZDogYm9vbGVhbiA9IHRydWU7XG5cbiAgbG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuXG4gICAgdGhpcy5zZXRTZWxlY3RlZEZvcm0odGhpcy5hY3RpdmVGb3JtQ29uZmlnPy5rZXkgPz8gXCJcIik7XG5cbiAgICB0aGlzLnN0ZXBDb25maWcgPSB0aGlzLmZvcm1hdFN0ZXBDb25maWcodGhpcy5zdGVwQ29uZmlnKTtcblxuICAgIHRoaXMuZm9ybXNMaXN0ID0gdGhpcy5maWx0ZXJIaWRkZW5Gb3Jtcyh0aGlzLmZvcm1zTGlzdCk7XG4gICAgdGhpcy5mb3Jtc0xpc3QgPSB0aGlzLnNldEZvcm1UaXRsZXModGhpcy5mb3Jtc0xpc3QpO1xuICAgIHRoaXMuZm9ybXNMaXN0TGVuZ3RoID0gdGhpcy5maW5kRm9ybXNMaXN0TGVuZ3RoKHRoaXMuZm9ybXNMaXN0KTtcbiAgICB0aGlzLmlzQWxsRm9ybXNDb21wbGV0ZWQgPSB0aGlzLmNoZWNrSXNBbGxGb3Jtc0NvbXBsZXRlZCh0aGlzLmZvcm1zTGlzdCk7XG5cbiAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgfVxuXG4gIEBsb2dNZXRob2RcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGNvbnN0IHZlcmlmeUNoYW5nZSA9IChrZXk6IHN0cmluZykgPT4ge1xuICAgICAgcmV0dXJuIGNoZWNrT2JqZWN0S2V5RXhpc3RzKGNoYW5nZXMsIGtleSkgJiYgIWNoYW5nZXNba2V5XS5maXJzdENoYW5nZTtcbiAgICB9O1xuICAgIGlmICh2ZXJpZnlDaGFuZ2UoXCJzaG93Rm9ybUZpZWxkc1wiKSkge1xuICAgICAgdGhpcy5zaG93Rm9ybUZpZWxkcyA9IGNoYW5nZXMuc2hvd0Zvcm1GaWVsZHMuY3VycmVudFZhbHVlO1xuICAgIH1cbiAgICBpZiAodmVyaWZ5Q2hhbmdlKFwic3RlcENvbmZpZ1wiKSkge1xuICAgICAgdGhpcy5zdGVwQ29uZmlnID0gY2hhbmdlcy5zdGVwQ29uZmlnLmN1cnJlbnRWYWx1ZTtcbiAgICB9XG4gICAgaWYgKHZlcmlmeUNoYW5nZShcImlzVW5zYXZlZERhdGFcIikpIHtcbiAgICAgIHRoaXMuaXNVbnNhdmVkRGF0YSA9IGNoYW5nZXMuaXNVbnNhdmVkRGF0YS5jdXJyZW50VmFsdWU7XG4gICAgfVxuICAgIGlmICh2ZXJpZnlDaGFuZ2UoXCJmb3Jtc0xpc3RcIikpIHtcbiAgICAgIHRoaXMuZm9ybXNMaXN0ID0gdGhpcy5maWx0ZXJIaWRkZW5Gb3Jtcyh0aGlzLmZvcm1zTGlzdCk7XG4gICAgICB0aGlzLmZvcm1zTGlzdCA9IHRoaXMuc2V0Rm9ybVRpdGxlcyh0aGlzLmZvcm1zTGlzdCk7XG4gICAgICB0aGlzLmZvcm1zTGlzdExlbmd0aCA9IHRoaXMuZmluZEZvcm1zTGlzdExlbmd0aCh0aGlzLmZvcm1zTGlzdCk7XG4gICAgICB0aGlzLmlzQWxsRm9ybXNDb21wbGV0ZWQgPSB0aGlzLmNoZWNrSXNBbGxGb3Jtc0NvbXBsZXRlZCh0aGlzLmZvcm1zTGlzdCk7XG4gICAgfVxuICAgIGlmICh2ZXJpZnlDaGFuZ2UoXCJpc01vYmlsZVZpZXdcIikpIHtcbiAgICAgIHRoaXMuaXNNb2JpbGVWaWV3ID0gY2hhbmdlcy5pc01vYmlsZVZpZXcuY3VycmVudFZhbHVlO1xuXG4gICAgICBpZiAoIXRoaXMuaXNNb2JpbGVWaWV3KSB7XG4gICAgICAgIHRoaXMuc2V0U2VsZWN0ZWRGb3JtKFwiXCIpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAodmVyaWZ5Q2hhbmdlKFwiYWN0aXZlRm9ybUNvbmZpZ1wiKSkge1xuICAgICAgdGhpcy5hY3RpdmVGb3JtQ29uZmlnID0gY2hhbmdlcy5hY3RpdmVGb3JtQ29uZmlnLmN1cnJlbnRWYWx1ZTtcblxuICAgICAgdGhpcy5zZXRTZWxlY3RlZEZvcm0odGhpcy5hY3RpdmVGb3JtQ29uZmlnPy5rZXkgPz8gXCJcIik7XG4gICAgfVxuICB9XG5cbiAgQGxvZ01ldGhvZFxuICBmb3JtYXRTdGVwQ29uZmlnKHN0ZXBDb25maWc6IGFueSk6IGFueSB7XG4gICAgbGV0IHN0ZXBDb25maWdQcm9wZXJ0aWVzID0ge1xuICAgICAgZm9ybUxpc3RQcm9wZXJ0aWVzOiB7XG4gICAgICAgIGZvb3Rlcjoge1xuICAgICAgICAgIHN1Ym1pdEZvcm1CdXR0b246IHtcbiAgICAgICAgICAgIGhpZGRlbjogZmFsc2UsXG4gICAgICAgICAgICBsYWJlbDogXCJTdWJtaXRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG5cbiAgICBpZiAoaXNOdWxsKHN0ZXBDb25maWcpIHx8IGlzVW5kZWZpbmVkKHN0ZXBDb25maWcpKSB7XG4gICAgICBzdGVwQ29uZmlnID0gc2V0VmFsdWVUb09iamVjdFBhdGgoe30sIFwicHJvcHNcIiwgc3RlcENvbmZpZ1Byb3BlcnRpZXMpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoY2hlY2tPYmplY3RLZXlFeGlzdHMoc3RlcENvbmZpZywgXCJwcm9wc1wiKSkge1xuICAgICAgICBzdGVwQ29uZmlnUHJvcGVydGllcyA9IG1lcmdlT2JqZWN0cyhcbiAgICAgICAgICBzdGVwQ29uZmlnUHJvcGVydGllcyxcbiAgICAgICAgICBzdGVwQ29uZmlnLnByb3BzXG4gICAgICAgICk7XG5cbiAgICAgICAgc3RlcENvbmZpZyA9IHNldFZhbHVlVG9PYmplY3RQYXRoKFxuICAgICAgICAgIHN0ZXBDb25maWcsXG4gICAgICAgICAgXCJwcm9wc1wiLFxuICAgICAgICAgIHN0ZXBDb25maWdQcm9wZXJ0aWVzXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzdGVwQ29uZmlnID0gc2V0VmFsdWVUb09iamVjdFBhdGgoXG4gICAgICAgICAgc3RlcENvbmZpZyxcbiAgICAgICAgICBcInByb3BzXCIsXG4gICAgICAgICAgc3RlcENvbmZpZ1Byb3BlcnRpZXNcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBzdGVwQ29uZmlnLnByb3BzLmZvcm1MaXN0UHJvcGVydGllcy5mb290ZXIuc3VibWl0Rm9ybUJ1dHRvbi5sYWJlbCA9XG4gICAgICB1cGRhdGVEaXNwbGF5TGFuZ3VhZ2UoXG4gICAgICAgIHN0ZXBDb25maWcucHJvcHMuZm9ybUxpc3RQcm9wZXJ0aWVzLmZvb3Rlci5zdWJtaXRGb3JtQnV0dG9uLmxhYmVsLFxuICAgICAgICBnZXRMYW5ndWFnZSgpXG4gICAgICApO1xuXG4gICAgcmV0dXJuIHN0ZXBDb25maWc7XG4gIH1cblxuICBAbG9nTWV0aG9kXG4gIGZpbHRlckhpZGRlbkZvcm1zKGZvcm1zTGlzdDogYW55W10pOiBhbnlbXSB7XG4gICAgcmV0dXJuIGZvcm1zTGlzdC5maWx0ZXIoKGZvcm0pID0+IHtcbiAgICAgIGlmIChjaGVja09iamVjdEtleUV4aXN0cyhmb3JtLCBcImhpZGRlblwiKSkge1xuICAgICAgICBpZiAoIWZvcm0uaGlkZGVuKSB7XG4gICAgICAgICAgcmV0dXJuIGZvcm07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHNldEZvcm1UaXRsZXMoZm9ybXNMaXN0OiBhbnlbXSk6IGFueVtdIHtcbiAgICByZXR1cm4gZm9ybXNMaXN0LmZpbHRlcigoZm9ybSkgPT4ge1xuICAgICAgaWYgKGNoZWNrT2JqZWN0UGF0aEV4aXN0cyhmb3JtLCBcInByb3BzLnRpdGxlXCIpKSB7XG4gICAgICAgIGZvcm0ucHJvcHMudGl0bGUgPSB1cGRhdGVEaXNwbGF5TGFuZ3VhZ2UoXG4gICAgICAgICAgZm9ybS5wcm9wcy50aXRsZSxcbiAgICAgICAgICBnZXRMYW5ndWFnZSgpXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiBmb3JtO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgQGxvZ01ldGhvZFxuICBmaW5kRm9ybXNMaXN0TGVuZ3RoKGZvcm1zTGlzdDogYW55W10pOiBudW1iZXIge1xuICAgIGNvbnN0IF9mb3Jtc0xpc3QgPSBmb3Jtc0xpc3QuZmlsdGVyKChmb3JtKSA9PiB7XG4gICAgICBpZiAoY2hlY2tPYmplY3RLZXlFeGlzdHMoZm9ybSwgXCJ0eXBlXCIpKSB7XG4gICAgICAgIGlmIChmb3JtLnR5cGUgIT09IEVGb3JtVHlwZS5IVE1MKSB7XG4gICAgICAgICAgaWYgKGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZvcm0sIFwiaGlkZGVuXCIpKSB7XG4gICAgICAgICAgICBpZiAoIWZvcm0uaGlkZGVuKSB7XG4gICAgICAgICAgICAgIHJldHVybiBmb3JtO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChjaGVja09iamVjdEtleUV4aXN0cyhmb3JtLCBcImhpZGRlblwiKSkge1xuICAgICAgICBpZiAoIWZvcm0uaGlkZGVuKSB7XG4gICAgICAgICAgcmV0dXJuIGZvcm07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBfZm9ybXNMaXN0Lmxlbmd0aDtcbiAgfVxuXG4gIEBsb2dNZXRob2RcbiAgY2hlY2tJc0FsbEZvcm1zQ29tcGxldGVkKGZvcm1zTGlzdDogYW55W10pOiBib29sZWFuIHtcbiAgICBsZXQgaXNBbGxGb3Jtc0NvbXBsZXRlZDogYm9vbGVhbiA9IHRydWU7XG5cbiAgICBmb3IgKGxldCBmb3JtIG9mIGZvcm1zTGlzdCkge1xuICAgICAgaWYgKGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZvcm0sIFwidHlwZVwiKSkge1xuICAgICAgICBpZiAoZm9ybS50eXBlICE9PSBFRm9ybVR5cGUuSFRNTCkge1xuICAgICAgICAgIGlmIChmb3JtLnN0YXR1cyAhPT0gXCJjb21wbGV0ZWRcIikge1xuICAgICAgICAgICAgaXNBbGxGb3Jtc0NvbXBsZXRlZCA9IGZhbHNlO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGlzQWxsRm9ybXNDb21wbGV0ZWQ7XG4gIH1cblxuICBAbG9nTWV0aG9kXG4gIGhhbmRsZU9uQ2xpY2tTZXRBY3RpdmVGb3JtKHNlbGVjdGVkRm9ybTogc3RyaW5nKSB7XG4gICAgaWYgKFxuICAgICAgdGhpcy5pc01vYmlsZVZpZXcgfHxcbiAgICAgICghdGhpcy5pc01vYmlsZVZpZXcgJiYgdGhpcy5zZWxlY3RlZEZvcm0gIT09IHNlbGVjdGVkRm9ybSkgfHxcbiAgICAgICh0aGlzLmlzQWxsRm9ybXNDb21wbGV0ZWQgJiYgIXRoaXMuc2hvd0Zvcm1GaWVsZHMpXG4gICAgKSB7XG4gICAgICBpZiAoXG4gICAgICAgIHRoaXMuYWN0aXZlRm9ybUNvbmZpZz8ucHJvcGVydGllcz8uaXNVbnNhdmVkRGF0YUFsZXJ0RW5hYmxlZCAmJlxuICAgICAgICB0aGlzLmlzVW5zYXZlZERhdGEgJiZcbiAgICAgICAgIXdpbmRvdy5jb25maXJtKFwiWW91IGhhdmUgdW5zYXZlZCBkYXRhLiBQcm9jZWVkP1wiKVxuICAgICAgKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRoaXMuc2VsZWN0ZWRGb3JtID0gc2VsZWN0ZWRGb3JtO1xuICAgICAgdGhpcy5vbkNsaWNrU2V0QWN0aXZlRm9ybS5lbWl0KHNlbGVjdGVkRm9ybSk7XG4gICAgfVxuICB9XG5cbiAgQGxvZ01ldGhvZFxuICBoYW5kbGVPblN1Ym1pdEZvcm1zKGU6IGFueSkge1xuICAgIC8qKlxuICAgICAqIFBPU1QgQUNUSU9OU1xuICAgICAqIDEuIEFQSSBDYWxscy5cbiAgICAgKiAyLiBQcmV2aWV3IG9mIGFsbCBmaWxsZWQgZGF0YS5cbiAgICAgKiAzLiBVUkwgUmVkaXJlY3Rpb24gb3IgbmV3IG9wZW5pbmcgb2YgVVJMIGluIGV4dGVybmFsIHRhYi5cbiAgICAgKi9cblxuICAgIHRoaXMub25DbGlja1N1Ym1pdEZvcm1zLmVtaXQoZSk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgaWQ9XCJzaWRlYmFyLWNvbnRhaW5lclwiXG4gICpuZ0lmPVwiIWxvYWRpbmdcIlxuPlxuICA8ZGl2IGlkPVwic2lkZWJhclwiPlxuICAgIDxkaXYgbmdDbGFzcz1cImt3aWtpZC1mb3JtLWhlYWRlclwiPlxuICAgICAgPGRpdiBpZD1cInVmLWhlYWRlclwiPlxuICAgICAgICA8ZGl2IGlkPVwidWYtaGVhZGVyLWxvZ28tY29udGFpbmVyXCI+XG4gICAgICAgICAgPGltZ1xuICAgICAgICAgICAgaWQ9XCJ1Zi1oZWFkZXItbG9nb1wiXG4gICAgICAgICAgICBzcmM9XCJ7eyB0aGlzLnVzZXJDb25maWcudGhlbWUuY2xpZW50TG9nbyB9fVwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCInbGFyZ2UtaWNvbidcIlxuICAgICAgICAgIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8aHIgLz5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGlkPVwidWYtcHJvZ3Jlc3NcIj5cbiAgICAgIDxkaXYgaWQ9XCJ1Zi1wcm9ncmVzcy1zdGVwc1wiPlxuICAgICAgICB7eyB0aGlzLmZvcm1zTGlzdENvbXBsZXRlZC5sZW5ndGggfX0gLyB7eyB0aGlzLmZvcm1zTGlzdExlbmd0aCB9fSBTdGVwc1xuICAgICAgICBDb21wbGV0ZWRcbiAgICAgIDwvZGl2PlxuICAgICAgPGt3aWt1aS1wcm9ncmVzcy1zZWdtZW50ZWRcbiAgICAgICAgW21heF09XCJ0aGlzLmZvcm1zTGlzdExlbmd0aFwiXG4gICAgICAgIHNpemU9XCJtXCJcbiAgICAgICAgW3ZhbHVlXT1cInRoaXMuZm9ybXNMaXN0Q29tcGxldGVkLmxlbmd0aFwiXG4gICAgICA+PC9rd2lrdWktcHJvZ3Jlc3Mtc2VnbWVudGVkPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgaWQ9XCJ1Zi1zZWN0aW9ucy1jb250YWluZXJcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGZvcm0gb2YgZm9ybXNMaXN0OyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImZvcm0udHlwZVwiPlxuICAgICAgICAgIDwhLS0gSFRNTCBDb250ZW50IC0tPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidIVE1MJ1wiPlxuICAgICAgICAgICAgPGRpdiBbaW5uZXJIdG1sXT1cImZvcm0ucHJvcHMuaHRtbENvbnRlbnQgfCBrd2lrdWlTYWZlSHRtbFwiPjwvZGl2PlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwhLS0gVHlwZSBGT1JNIC0tPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidGT1JNJ1wiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJGT1JNX0JVVFRPTlwiXG4gICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7XG4gICAgICAgICAgICAgICAgZm9ybTogZm9ybSxcbiAgICAgICAgICAgICAgICBhY3RpdmVGb3JtQ29uZmlnOiBhY3RpdmVGb3JtQ29uZmlnXG4gICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBpZD1cInN1Ym1pdC1zaWRlYmFyLWJ0bi1jb250YWluZXJcIj5cbiAgICAgIDxrd2lrdWktYnV0dG9uXG4gICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgIXN0ZXBDb25maWcucHJvcHMuZm9ybUxpc3RQcm9wZXJ0aWVzLmZvb3Rlci5zdWJtaXRGb3JtQnV0dG9uLmhpZGRlblxuICAgICAgICBcIlxuICAgICAgICBsYWJlbD1cInt7XG4gICAgICAgICAgc3RlcENvbmZpZy5wcm9wcy5mb3JtTGlzdFByb3BlcnRpZXMuZm9vdGVyLnN1Ym1pdEZvcm1CdXR0b24ubGFiZWxcbiAgICAgICAgfX1cIlxuICAgICAgICBzdHlsZXM9XCJ3aWR0aDogMTAwJVwiXG4gICAgICAgIChvbkNsaWNrKT1cImhhbmRsZU9uU3VibWl0Rm9ybXMoJGV2ZW50KVwiXG4gICAgICA+PC9rd2lrdWktYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGVcbiAgI0ZPUk1fQlVUVE9OXG4gIGxldC1mb3JtPVwiZm9ybVwiXG4gIGxldC1hY3RpdmVGb3JtQ29uZmlnPVwiYWN0aXZlRm9ybUNvbmZpZ1wiXG4+XG4gIDxkaXZcbiAgICBbY2xhc3NdPVwiJ3VmLXNlY3Rpb24taXRlbSdcIlxuICAgIFtjbGFzcy5jb21wbGV0ZWRdPVwiZm9ybS5zdGF0dXMgPT09ICdjb21wbGV0ZWQnICYmICFmb3JtLmRpc2FibGVkXCJcbiAgICBbY2xhc3MuZWRpdF09XCJmb3JtLnN0YXR1cyA9PT0gJ2VkaXRhYmxlJyAmJiAhZm9ybS5kaXNhYmxlZFwiXG4gICAgW2NsYXNzLmxvY2tlZF09XCJmb3JtLnN0YXR1cyA9PT0gJ2xvY2tlZCcgJiYgZm9ybS5kaXNhYmxlZFwiXG4gICAgW2NsYXNzLmFjdGl2ZV09XCJcbiAgICAgIGFjdGl2ZUZvcm1Db25maWcgIT09IHVuZGVmaW5lZCAmJiBmb3JtLmtleSA9PT0gYWN0aXZlRm9ybUNvbmZpZy5rZXlcbiAgICBcIlxuICAgIChjbGljayk9XCJcbiAgICAgIGZvcm0uc3RhdHVzID09PSAnbG9ja2VkJyAmJiBmb3JtLmRpc2FibGVkXG4gICAgICAgID8gdW5kZWZpbmVkXG4gICAgICAgIDogaGFuZGxlT25DbGlja1NldEFjdGl2ZUZvcm0oZm9ybS5rZXkpXG4gICAgXCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJ1Zi1mb3JtLXNlY3Rpb24tY2FyZC10aXRsZVwiPlxuICAgICAge3sgZm9ybS5wcm9wcy50aXRsZSB9fSZuYnNwOzxzcGFuICpuZ0lmPVwiZm9ybT8ucmVxdWlyZWRcIj4qPC9zcGFuPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJ1Zi1mb3JtLXNlY3Rpb24tY2FyZC1zdGF0dXNcIj5cbiAgICAgIDxkaXZcbiAgICAgICAgKm5nSWY9XCJmb3JtLnN0YXR1cyA9PT0gJ2NvbXBsZXRlZCcgJiYgIWZvcm0uZGlzYWJsZWRcIlxuICAgICAgICBjbGFzcz1cInVmLWZvcm0tc2VjdGlvbi1jYXJkLXN0YXR1cy1pbWcgY29tcGxldGVkXCJcbiAgICAgID5cbiAgICAgICAgPHR1aS1zdmcgc3JjPVwidHVpSWNvbkNoZWNrTGFyZ2VcIj48L3R1aS1zdmc+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXZcbiAgICAgICAgKm5nSWY9XCJmb3JtLnN0YXR1cyAhPT0gJ2NvbXBsZXRlZCcgJiYgIWZvcm0uZGlzYWJsZWRcIlxuICAgICAgICBjbGFzcz1cInVmLWZvcm0tc2VjdGlvbi1jYXJkLXN0YXR1cy1pbWcgZWRpdFwiXG4gICAgICA+XG4gICAgICAgIDx0dWktc3ZnIHNyYz1cInR1aUljb25FZGl0XCI+PC90dWktc3ZnPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2XG4gICAgICAgICpuZ0lmPVwiZm9ybS5zdGF0dXMgIT09ICdjb21wbGV0ZWQnICYmIGZvcm0uZGlzYWJsZWRcIlxuICAgICAgICBjbGFzcz1cInVmLWZvcm0tc2VjdGlvbi1jYXJkLXN0YXR1cy1pbWcgbG9ja2VkXCJcbiAgICAgID5cbiAgICAgICAgPHR1aS1zdmcgc3JjPVwidHVpSWNvbkxvY2tcIj48L3R1aS1zdmc+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
227
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybXMtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rd2lraWQtZm9ybXMvc3JjL2xpYi9yZW5kZXJlci9mb3Jtcy1saXN0L2Zvcm1zLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva3dpa2lkLWZvcm1zL3NyYy9saWIvcmVuZGVyZXIvZm9ybXMtbGlzdC9mb3Jtcy1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUVQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIscUJBQXFCLEVBQ3JCLE1BQU0sRUFDTixXQUFXLEVBQ1gsU0FBUyxFQUNULFlBQVksRUFDWixvQkFBb0IsRUFDckIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDcEQsT0FBTyxFQUNMLFdBQVcsRUFDWCxjQUFjLEVBQ2YsTUFBTSw2Q0FBNkMsQ0FBQzs7Ozs7QUFPckQsTUFBTSxPQUFPLHdCQUF3QjtJQTZDbkM7UUEzQ0EsbUJBQWMsR0FBUSxFQUFFLENBQUM7UUFHekIsZUFBVSxHQUFRLEVBQUUsQ0FBQztRQUdyQixlQUFVLEdBQVEsRUFBRSxDQUFDO1FBR3JCLHFCQUFnQixHQUFRLEVBQUUsQ0FBQztRQUczQixjQUFTLEdBQVUsRUFBRSxDQUFDO1FBR3RCLHVCQUFrQixHQUFVLEVBQUUsQ0FBQztRQUcvQixpQkFBWSxHQUFZLEtBQUssQ0FBQztRQUc5QixrQkFBYSxHQUFZLEtBQUssQ0FBQztRQUcvQix5QkFBb0IsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUdsRSx5QkFBb0IsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUdsRSx1QkFBa0IsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBRTdDLGlCQUFZLEdBQVcsRUFBRSxDQUFDO1FBSzFCLG9CQUFlLEdBQVcsQ0FBQyxDQUFDO1FBRTVCLHdCQUFtQixHQUFZLElBQUksQ0FBQztRQUVwQyxZQUFPLEdBQVksS0FBSyxDQUFDO0lBRVYsQ0FBQztJQVZoQixlQUFlLENBQUMsYUFBcUI7UUFDbkMsSUFBSSxDQUFDLFlBQVksR0FBRyxhQUFhLENBQUM7SUFDcEMsQ0FBQztJQVVELFFBQVE7O1FBQ04sSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFFcEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFBLE1BQUEsSUFBSSxDQUFDLGdCQUFnQiwwQ0FBRSxHQUFHLG1DQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRXZELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUV6RCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDaEUsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFekUsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7SUFDdkIsQ0FBQztJQUdELFdBQVcsQ0FBQyxPQUFzQjs7UUFDaEMsTUFBTSxZQUFZLEdBQUcsQ0FBQyxHQUFXLEVBQUUsRUFBRTtZQUNuQyxPQUFPLG9CQUFvQixDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxXQUFXLENBQUM7UUFDekUsQ0FBQyxDQUFDO1FBQ0YsSUFBSSxZQUFZLENBQUMsZ0JBQWdCLENBQUMsRUFBRTtZQUNsQyxJQUFJLENBQUMsY0FBYyxHQUFHLE9BQU8sQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDO1NBQzNEO1FBQ0QsSUFBSSxZQUFZLENBQUMsWUFBWSxDQUFDLEVBQUU7WUFDOUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQztTQUNuRDtRQUNELElBQUksWUFBWSxDQUFDLGVBQWUsQ0FBQyxFQUFFO1lBQ2pDLElBQUksQ0FBQyxhQUFhLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUM7U0FDekQ7UUFDRCxJQUFJLFlBQVksQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUM3QixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDeEQsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNwRCxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDaEUsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDMUU7UUFDRCxJQUFJLFlBQVksQ0FBQyxjQUFjLENBQUMsRUFBRTtZQUNoQyxJQUFJLENBQUMsWUFBWSxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDO1lBRXRELElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFO2dCQUN0QixJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2FBQzFCO1NBQ0Y7UUFDRCxJQUFJLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFO1lBQ3BDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxDQUFDO1lBRTlELElBQUksQ0FBQyxlQUFlLENBQUMsTUFBQSxNQUFBLElBQUksQ0FBQyxnQkFBZ0IsMENBQUUsR0FBRyxtQ0FBSSxFQUFFLENBQUMsQ0FBQztTQUN4RDtJQUNILENBQUM7SUFHRCxnQkFBZ0IsQ0FBQyxVQUFlO1FBQzlCLElBQUksb0JBQW9CLEdBQUc7WUFDekIsa0JBQWtCLEVBQUU7Z0JBQ2xCLE1BQU0sRUFBRTtvQkFDTixnQkFBZ0IsRUFBRTt3QkFDaEIsTUFBTSxFQUFFLEtBQUs7d0JBQ2IsS0FBSyxFQUFFLFFBQVE7cUJBQ2hCO2lCQUNGO2FBQ0Y7U0FDRixDQUFDO1FBRUYsSUFBSSxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksV0FBVyxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQ2pELFVBQVUsR0FBRyxvQkFBb0IsQ0FBQyxFQUFFLEVBQUUsT0FBTyxFQUFFLG9CQUFvQixDQUFDLENBQUM7U0FDdEU7YUFBTTtZQUNMLElBQUksb0JBQW9CLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxFQUFFO2dCQUM3QyxvQkFBb0IsR0FBRyxZQUFZLENBQ2pDLG9CQUFvQixFQUNwQixVQUFVLENBQUMsS0FBSyxDQUNqQixDQUFDO2dCQUVGLFVBQVUsR0FBRyxvQkFBb0IsQ0FDL0IsVUFBVSxFQUNWLE9BQU8sRUFDUCxvQkFBb0IsQ0FDckIsQ0FBQzthQUNIO2lCQUFNO2dCQUNMLFVBQVUsR0FBRyxvQkFBb0IsQ0FDL0IsVUFBVSxFQUNWLE9BQU8sRUFDUCxvQkFBb0IsQ0FDckIsQ0FBQzthQUNIO1NBQ0Y7UUFFRCxVQUFVLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLO1lBQy9ELGNBQWMsQ0FDWixVQUFVLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQ2pFLFdBQVcsRUFBRSxDQUNkLENBQUM7UUFFSixPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDO0lBR0QsaUJBQWlCLENBQUMsU0FBZ0I7UUFDaEMsT0FBTyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDL0IsSUFBSSxvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLEVBQUU7Z0JBQ3hDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFO29CQUNoQixPQUFPLElBQUksQ0FBQztpQkFDYjthQUNGO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsYUFBYSxDQUFDLFNBQWdCO1FBQzVCLE9BQU8sU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQy9CLElBQUkscUJBQXFCLENBQUMsSUFBSSxFQUFFLGFBQWEsQ0FBQyxFQUFFO2dCQUM5QyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxjQUFjLENBQy9CLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUNoQixXQUFXLEVBQUUsQ0FDZCxDQUFDO2dCQUNGLE9BQU8sSUFBSSxDQUFDO2FBQ2I7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFHRCxtQkFBbUIsQ0FBQyxTQUFnQjtRQUNsQyxNQUFNLFVBQVUsR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDM0MsSUFBSSxvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLEVBQUU7Z0JBQ3RDLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxTQUFTLENBQUMsSUFBSSxFQUFFO29CQUNoQyxJQUFJLG9CQUFvQixDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsRUFBRTt3QkFDeEMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7NEJBQ2hCLE9BQU8sSUFBSSxDQUFDO3lCQUNiO3FCQUNGO2lCQUNGO2FBQ0Y7aUJBQU0sSUFBSSxvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLEVBQUU7Z0JBQy9DLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFO29CQUNoQixPQUFPLElBQUksQ0FBQztpQkFDYjthQUNGO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLFVBQVUsQ0FBQyxNQUFNLENBQUM7SUFDM0IsQ0FBQztJQUdELHdCQUF3QixDQUFDLFNBQWdCO1FBQ3ZDLElBQUksbUJBQW1CLEdBQVksSUFBSSxDQUFDO1FBRXhDLEtBQUssSUFBSSxJQUFJLElBQUksU0FBUyxFQUFFO1lBQzFCLElBQUksb0JBQW9CLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxFQUFFO2dCQUN0QyxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDLElBQUksRUFBRTtvQkFDaEMsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLFdBQVcsRUFBRTt3QkFDL0IsbUJBQW1CLEdBQUcsS0FBSyxDQUFDO3dCQUM1QixNQUFNO3FCQUNQO2lCQUNGO2FBQ0Y7U0FDRjtRQUVELE9BQU8sbUJBQW1CLENBQUM7SUFDN0IsQ0FBQztJQUdELDBCQUEwQixDQUFDLFlBQW9COztRQUM3QyxJQUNFLElBQUksQ0FBQyxZQUFZO1lBQ2pCLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxZQUFZLEtBQUssWUFBWSxDQUFDO1lBQzFELENBQUMsSUFBSSxDQUFDLG1CQUFtQixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxFQUNsRDtZQUNBLElBQ0UsQ0FBQSxNQUFBLE1BQUEsSUFBSSxDQUFDLGdCQUFnQiwwQ0FBRSxVQUFVLDBDQUFFLHlCQUF5QjtnQkFDNUQsSUFBSSxDQUFDLGFBQWE7Z0JBQ2xCLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxpQ0FBaUMsQ0FBQyxFQUNsRDtnQkFDQSxPQUFPO2FBQ1I7WUFDRCxJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztZQUNqQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1NBQzlDO0lBQ0gsQ0FBQztJQUdELG1CQUFtQixDQUFDLENBQU07UUFDeEI7Ozs7O1dBS0c7UUFFSCxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7O3lJQXhPVSx3QkFBd0I7NkhBQXhCLHdCQUF3Qix5ZUM3QnJDLDA0R0E0R0E7QURoQkU7SUFEQyxTQUFTOzJEQWdDVDtBQUdEO0lBREMsU0FBUztnRUEyQ1Q7QUFHRDtJQURDLFNBQVM7aUVBU1Q7QUFlRDtJQURDLFNBQVM7bUVBbUJUO0FBR0Q7SUFEQyxTQUFTO3dFQWdCVDtBQUdEO0lBREMsU0FBUzswRUFpQlQ7QUFHRDtJQURDLFNBQVM7bUVBVVQ7NEZBeE9VLHdCQUF3QjtrQkFMcEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsbUJBQW1CO29CQUM3QixXQUFXLEVBQUUsNkJBQTZCO29CQUMxQyxTQUFTLEVBQUUsQ0FBQyw2QkFBNkIsRUFBRSxnQkFBZ0IsQ0FBQztpQkFDN0Q7MEVBR0MsY0FBYztzQkFEYixLQUFLO2dCQUlOLFVBQVU7c0JBRFQsS0FBSztnQkFJTixVQUFVO3NCQURULEtBQUs7Z0JBSU4sZ0JBQWdCO3NCQURmLEtBQUs7Z0JBSU4sU0FBUztzQkFEUixLQUFLO2dCQUlOLGtCQUFrQjtzQkFEakIsS0FBSztnQkFJTixZQUFZO3NCQURYLEtBQUs7Z0JBSU4sYUFBYTtzQkFEWixLQUFLO2dCQUlOLG9CQUFvQjtzQkFEbkIsTUFBTTtnQkFJUCxvQkFBb0I7c0JBRG5CLE1BQU07Z0JBSVAsa0JBQWtCO3NCQURqQixNQUFNO2dCQWdDUCxXQUFXLE1Ba0NYLGdCQUFnQixNQTZDaEIsaUJBQWlCLE1BdUJqQixtQkFBbUIsTUFxQm5CLHdCQUF3QixNQWtCeEIsMEJBQTBCLE1BbUIxQixtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXNcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7XG4gIGNoZWNrT2JqZWN0S2V5RXhpc3RzLFxuICBjaGVja09iamVjdFBhdGhFeGlzdHMsXG4gIGlzTnVsbCxcbiAgaXNVbmRlZmluZWQsXG4gIGxvZ01ldGhvZCxcbiAgbWVyZ2VPYmplY3RzLFxuICBzZXRWYWx1ZVRvT2JqZWN0UGF0aFxufSBmcm9tIFwia3dpa2lkLXRvb2xraXRcIjtcbmltcG9ydCB7IEVGb3JtVHlwZSB9IGZyb20gXCIuLi9yZW5kZXJlci5kZWZpbml0aW9uc1wiO1xuaW1wb3J0IHtcbiAgZ2V0TGFuZ3VhZ2UsXG4gIHVwZGF0ZUxhbmd1YWdlXG59IGZyb20gXCIuLi9jb25maWctY29udmVydGVyL2NvbmZpZy1jb252ZXJ0ZXIuaGVscGVyXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJrd2lraWQtZm9ybXMtbGlzdFwiLFxuICB0ZW1wbGF0ZVVybDogXCIuL2Zvcm1zLWxpc3QuY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVVcmxzOiBbXCIuL2Zvcm1zLWxpc3QuY29tcG9uZW50LnNjc3NcIiwgXCIuLi9zaGFyZWQuc2Nzc1wiXVxufSlcbmV4cG9ydCBjbGFzcyBLd2lrSURGb3Jtc0xpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpXG4gIHNob3dGb3JtRmllbGRzOiBhbnkgPSB7fTtcblxuICBASW5wdXQoKVxuICB1c2VyQ29uZmlnOiBhbnkgPSB7fTtcblxuICBASW5wdXQoKVxuICBzdGVwQ29uZmlnOiBhbnkgPSB7fTtcblxuICBASW5wdXQoKVxuICBhY3RpdmVGb3JtQ29uZmlnOiBhbnkgPSB7fTtcblxuICBASW5wdXQoKVxuICBmb3Jtc0xpc3Q6IGFueVtdID0gW107XG5cbiAgQElucHV0KClcbiAgZm9ybXNMaXN0Q29tcGxldGVkOiBhbnlbXSA9IFtdO1xuXG4gIEBJbnB1dCgpXG4gIGlzTW9iaWxlVmlldzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIGlzVW5zYXZlZERhdGE6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBAT3V0cHV0KClcbiAgb25DbGlja1NldEFjdGl2ZUZvcm06IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgQE91dHB1dCgpXG4gIG9uQ2xpY2tIaWRlRm9ybXNMaXN0OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIEBPdXRwdXQoKVxuICBvbkNsaWNrU3VibWl0Rm9ybXMgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBzZWxlY3RlZEZvcm06IHN0cmluZyA9IFwiXCI7XG4gIHNldFNlbGVjdGVkRm9ybShzZWxlY3RlZF9mb3JtOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkRm9ybSA9IHNlbGVjdGVkX2Zvcm07XG4gIH1cblxuICBmb3Jtc0xpc3RMZW5ndGg6IG51bWJlciA9IDA7XG5cbiAgaXNBbGxGb3Jtc0NvbXBsZXRlZDogYm9vbGVhbiA9IHRydWU7XG5cbiAgbG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuXG4gICAgdGhpcy5zZXRTZWxlY3RlZEZvcm0odGhpcy5hY3RpdmVGb3JtQ29uZmlnPy5rZXkgPz8gXCJcIik7XG5cbiAgICB0aGlzLnN0ZXBDb25maWcgPSB0aGlzLmZvcm1hdFN0ZXBDb25maWcodGhpcy5zdGVwQ29uZmlnKTtcblxuICAgIHRoaXMuZm9ybXNMaXN0ID0gdGhpcy5maWx0ZXJIaWRkZW5Gb3Jtcyh0aGlzLmZvcm1zTGlzdCk7XG4gICAgdGhpcy5mb3Jtc0xpc3QgPSB0aGlzLnNldEZvcm1UaXRsZXModGhpcy5mb3Jtc0xpc3QpO1xuICAgIHRoaXMuZm9ybXNMaXN0TGVuZ3RoID0gdGhpcy5maW5kRm9ybXNMaXN0TGVuZ3RoKHRoaXMuZm9ybXNMaXN0KTtcbiAgICB0aGlzLmlzQWxsRm9ybXNDb21wbGV0ZWQgPSB0aGlzLmNoZWNrSXNBbGxGb3Jtc0NvbXBsZXRlZCh0aGlzLmZvcm1zTGlzdCk7XG5cbiAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgfVxuXG4gIEBsb2dNZXRob2RcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGNvbnN0IHZlcmlmeUNoYW5nZSA9IChrZXk6IHN0cmluZykgPT4ge1xuICAgICAgcmV0dXJuIGNoZWNrT2JqZWN0S2V5RXhpc3RzKGNoYW5nZXMsIGtleSkgJiYgIWNoYW5nZXNba2V5XS5maXJzdENoYW5nZTtcbiAgICB9O1xuICAgIGlmICh2ZXJpZnlDaGFuZ2UoXCJzaG93Rm9ybUZpZWxkc1wiKSkge1xuICAgICAgdGhpcy5zaG93Rm9ybUZpZWxkcyA9IGNoYW5nZXMuc2hvd0Zvcm1GaWVsZHMuY3VycmVudFZhbHVlO1xuICAgIH1cbiAgICBpZiAodmVyaWZ5Q2hhbmdlKFwic3RlcENvbmZpZ1wiKSkge1xuICAgICAgdGhpcy5zdGVwQ29uZmlnID0gY2hhbmdlcy5zdGVwQ29uZmlnLmN1cnJlbnRWYWx1ZTtcbiAgICB9XG4gICAgaWYgKHZlcmlmeUNoYW5nZShcImlzVW5zYXZlZERhdGFcIikpIHtcbiAgICAgIHRoaXMuaXNVbnNhdmVkRGF0YSA9IGNoYW5nZXMuaXNVbnNhdmVkRGF0YS5jdXJyZW50VmFsdWU7XG4gICAgfVxuICAgIGlmICh2ZXJpZnlDaGFuZ2UoXCJmb3Jtc0xpc3RcIikpIHtcbiAgICAgIHRoaXMuZm9ybXNMaXN0ID0gdGhpcy5maWx0ZXJIaWRkZW5Gb3Jtcyh0aGlzLmZvcm1zTGlzdCk7XG4gICAgICB0aGlzLmZvcm1zTGlzdCA9IHRoaXMuc2V0Rm9ybVRpdGxlcyh0aGlzLmZvcm1zTGlzdCk7XG4gICAgICB0aGlzLmZvcm1zTGlzdExlbmd0aCA9IHRoaXMuZmluZEZvcm1zTGlzdExlbmd0aCh0aGlzLmZvcm1zTGlzdCk7XG4gICAgICB0aGlzLmlzQWxsRm9ybXNDb21wbGV0ZWQgPSB0aGlzLmNoZWNrSXNBbGxGb3Jtc0NvbXBsZXRlZCh0aGlzLmZvcm1zTGlzdCk7XG4gICAgfVxuICAgIGlmICh2ZXJpZnlDaGFuZ2UoXCJpc01vYmlsZVZpZXdcIikpIHtcbiAgICAgIHRoaXMuaXNNb2JpbGVWaWV3ID0gY2hhbmdlcy5pc01vYmlsZVZpZXcuY3VycmVudFZhbHVlO1xuXG4gICAgICBpZiAoIXRoaXMuaXNNb2JpbGVWaWV3KSB7XG4gICAgICAgIHRoaXMuc2V0U2VsZWN0ZWRGb3JtKFwiXCIpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAodmVyaWZ5Q2hhbmdlKFwiYWN0aXZlRm9ybUNvbmZpZ1wiKSkge1xuICAgICAgdGhpcy5hY3RpdmVGb3JtQ29uZmlnID0gY2hhbmdlcy5hY3RpdmVGb3JtQ29uZmlnLmN1cnJlbnRWYWx1ZTtcblxuICAgICAgdGhpcy5zZXRTZWxlY3RlZEZvcm0odGhpcy5hY3RpdmVGb3JtQ29uZmlnPy5rZXkgPz8gXCJcIik7XG4gICAgfVxuICB9XG5cbiAgQGxvZ01ldGhvZFxuICBmb3JtYXRTdGVwQ29uZmlnKHN0ZXBDb25maWc6IGFueSk6IGFueSB7XG4gICAgbGV0IHN0ZXBDb25maWdQcm9wZXJ0aWVzID0ge1xuICAgICAgZm9ybUxpc3RQcm9wZXJ0aWVzOiB7XG4gICAgICAgIGZvb3Rlcjoge1xuICAgICAgICAgIHN1Ym1pdEZvcm1CdXR0b246IHtcbiAgICAgICAgICAgIGhpZGRlbjogZmFsc2UsXG4gICAgICAgICAgICBsYWJlbDogXCJTdWJtaXRcIlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG5cbiAgICBpZiAoaXNOdWxsKHN0ZXBDb25maWcpIHx8IGlzVW5kZWZpbmVkKHN0ZXBDb25maWcpKSB7XG4gICAgICBzdGVwQ29uZmlnID0gc2V0VmFsdWVUb09iamVjdFBhdGgoe30sIFwicHJvcHNcIiwgc3RlcENvbmZpZ1Byb3BlcnRpZXMpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoY2hlY2tPYmplY3RLZXlFeGlzdHMoc3RlcENvbmZpZywgXCJwcm9wc1wiKSkge1xuICAgICAgICBzdGVwQ29uZmlnUHJvcGVydGllcyA9IG1lcmdlT2JqZWN0cyhcbiAgICAgICAgICBzdGVwQ29uZmlnUHJvcGVydGllcyxcbiAgICAgICAgICBzdGVwQ29uZmlnLnByb3BzXG4gICAgICAgICk7XG5cbiAgICAgICAgc3RlcENvbmZpZyA9IHNldFZhbHVlVG9PYmplY3RQYXRoKFxuICAgICAgICAgIHN0ZXBDb25maWcsXG4gICAgICAgICAgXCJwcm9wc1wiLFxuICAgICAgICAgIHN0ZXBDb25maWdQcm9wZXJ0aWVzXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzdGVwQ29uZmlnID0gc2V0VmFsdWVUb09iamVjdFBhdGgoXG4gICAgICAgICAgc3RlcENvbmZpZyxcbiAgICAgICAgICBcInByb3BzXCIsXG4gICAgICAgICAgc3RlcENvbmZpZ1Byb3BlcnRpZXNcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBzdGVwQ29uZmlnLnByb3BzLmZvcm1MaXN0UHJvcGVydGllcy5mb290ZXIuc3VibWl0Rm9ybUJ1dHRvbi5sYWJlbCA9XG4gICAgICB1cGRhdGVMYW5ndWFnZShcbiAgICAgICAgc3RlcENvbmZpZy5wcm9wcy5mb3JtTGlzdFByb3BlcnRpZXMuZm9vdGVyLnN1Ym1pdEZvcm1CdXR0b24ubGFiZWwsXG4gICAgICAgIGdldExhbmd1YWdlKClcbiAgICAgICk7XG5cbiAgICByZXR1cm4gc3RlcENvbmZpZztcbiAgfVxuXG4gIEBsb2dNZXRob2RcbiAgZmlsdGVySGlkZGVuRm9ybXMoZm9ybXNMaXN0OiBhbnlbXSk6IGFueVtdIHtcbiAgICByZXR1cm4gZm9ybXNMaXN0LmZpbHRlcigoZm9ybSkgPT4ge1xuICAgICAgaWYgKGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZvcm0sIFwiaGlkZGVuXCIpKSB7XG4gICAgICAgIGlmICghZm9ybS5oaWRkZW4pIHtcbiAgICAgICAgICByZXR1cm4gZm9ybTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgc2V0Rm9ybVRpdGxlcyhmb3Jtc0xpc3Q6IGFueVtdKTogYW55W10ge1xuICAgIHJldHVybiBmb3Jtc0xpc3QuZmlsdGVyKChmb3JtKSA9PiB7XG4gICAgICBpZiAoY2hlY2tPYmplY3RQYXRoRXhpc3RzKGZvcm0sIFwicHJvcHMudGl0bGVcIikpIHtcbiAgICAgICAgZm9ybS5wcm9wcy50aXRsZSA9IHVwZGF0ZUxhbmd1YWdlKFxuICAgICAgICAgIGZvcm0ucHJvcHMudGl0bGUsXG4gICAgICAgICAgZ2V0TGFuZ3VhZ2UoKVxuICAgICAgICApO1xuICAgICAgICByZXR1cm4gZm9ybTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIEBsb2dNZXRob2RcbiAgZmluZEZvcm1zTGlzdExlbmd0aChmb3Jtc0xpc3Q6IGFueVtdKTogbnVtYmVyIHtcbiAgICBjb25zdCBfZm9ybXNMaXN0ID0gZm9ybXNMaXN0LmZpbHRlcigoZm9ybSkgPT4ge1xuICAgICAgaWYgKGNoZWNrT2JqZWN0S2V5RXhpc3RzKGZvcm0sIFwidHlwZVwiKSkge1xuICAgICAgICBpZiAoZm9ybS50eXBlICE9PSBFRm9ybVR5cGUuSFRNTCkge1xuICAgICAgICAgIGlmIChjaGVja09iamVjdEtleUV4aXN0cyhmb3JtLCBcImhpZGRlblwiKSkge1xuICAgICAgICAgICAgaWYgKCFmb3JtLmhpZGRlbikge1xuICAgICAgICAgICAgICByZXR1cm4gZm9ybTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoY2hlY2tPYmplY3RLZXlFeGlzdHMoZm9ybSwgXCJoaWRkZW5cIikpIHtcbiAgICAgICAgaWYgKCFmb3JtLmhpZGRlbikge1xuICAgICAgICAgIHJldHVybiBmb3JtO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gX2Zvcm1zTGlzdC5sZW5ndGg7XG4gIH1cblxuICBAbG9nTWV0aG9kXG4gIGNoZWNrSXNBbGxGb3Jtc0NvbXBsZXRlZChmb3Jtc0xpc3Q6IGFueVtdKTogYm9vbGVhbiB7XG4gICAgbGV0IGlzQWxsRm9ybXNDb21wbGV0ZWQ6IGJvb2xlYW4gPSB0cnVlO1xuXG4gICAgZm9yIChsZXQgZm9ybSBvZiBmb3Jtc0xpc3QpIHtcbiAgICAgIGlmIChjaGVja09iamVjdEtleUV4aXN0cyhmb3JtLCBcInR5cGVcIikpIHtcbiAgICAgICAgaWYgKGZvcm0udHlwZSAhPT0gRUZvcm1UeXBlLkhUTUwpIHtcbiAgICAgICAgICBpZiAoZm9ybS5zdGF0dXMgIT09IFwiY29tcGxldGVkXCIpIHtcbiAgICAgICAgICAgIGlzQWxsRm9ybXNDb21wbGV0ZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBpc0FsbEZvcm1zQ29tcGxldGVkO1xuICB9XG5cbiAgQGxvZ01ldGhvZFxuICBoYW5kbGVPbkNsaWNrU2V0QWN0aXZlRm9ybShzZWxlY3RlZEZvcm06IHN0cmluZykge1xuICAgIGlmIChcbiAgICAgIHRoaXMuaXNNb2JpbGVWaWV3IHx8XG4gICAgICAoIXRoaXMuaXNNb2JpbGVWaWV3ICYmIHRoaXMuc2VsZWN0ZWRGb3JtICE9PSBzZWxlY3RlZEZvcm0pIHx8XG4gICAgICAodGhpcy5pc0FsbEZvcm1zQ29tcGxldGVkICYmICF0aGlzLnNob3dGb3JtRmllbGRzKVxuICAgICkge1xuICAgICAgaWYgKFxuICAgICAgICB0aGlzLmFjdGl2ZUZvcm1Db25maWc/LnByb3BlcnRpZXM/LmlzVW5zYXZlZERhdGFBbGVydEVuYWJsZWQgJiZcbiAgICAgICAgdGhpcy5pc1Vuc2F2ZWREYXRhICYmXG4gICAgICAgICF3aW5kb3cuY29uZmlybShcIllvdSBoYXZlIHVuc2F2ZWQgZGF0YS4gUHJvY2VlZD9cIilcbiAgICAgICkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB0aGlzLnNlbGVjdGVkRm9ybSA9IHNlbGVjdGVkRm9ybTtcbiAgICAgIHRoaXMub25DbGlja1NldEFjdGl2ZUZvcm0uZW1pdChzZWxlY3RlZEZvcm0pO1xuICAgIH1cbiAgfVxuXG4gIEBsb2dNZXRob2RcbiAgaGFuZGxlT25TdWJtaXRGb3JtcyhlOiBhbnkpIHtcbiAgICAvKipcbiAgICAgKiBQT1NUIEFDVElPTlNcbiAgICAgKiAxLiBBUEkgQ2FsbHMuXG4gICAgICogMi4gUHJldmlldyBvZiBhbGwgZmlsbGVkIGRhdGEuXG4gICAgICogMy4gVVJMIFJlZGlyZWN0aW9uIG9yIG5ldyBvcGVuaW5nIG9mIFVSTCBpbiBleHRlcm5hbCB0YWIuXG4gICAgICovXG5cbiAgICB0aGlzLm9uQ2xpY2tTdWJtaXRGb3Jtcy5lbWl0KGUpO1xuICB9XG59XG4iLCI8ZGl2XG4gIGlkPVwic2lkZWJhci1jb250YWluZXJcIlxuICAqbmdJZj1cIiFsb2FkaW5nXCJcbj5cbiAgPGRpdiBpZD1cInNpZGViYXJcIj5cbiAgICA8ZGl2IG5nQ2xhc3M9XCJrd2lraWQtZm9ybS1oZWFkZXJcIj5cbiAgICAgIDxkaXYgaWQ9XCJ1Zi1oZWFkZXJcIj5cbiAgICAgICAgPGRpdiBpZD1cInVmLWhlYWRlci1sb2dvLWNvbnRhaW5lclwiPlxuICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgIGlkPVwidWYtaGVhZGVyLWxvZ29cIlxuICAgICAgICAgICAgc3JjPVwie3sgdGhpcy51c2VyQ29uZmlnLnRoZW1lLmNsaWVudExvZ28gfX1cIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwiJ2xhcmdlLWljb24nXCJcbiAgICAgICAgICAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGhyIC8+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBpZD1cInVmLXByb2dyZXNzXCI+XG4gICAgICA8ZGl2IGlkPVwidWYtcHJvZ3Jlc3Mtc3RlcHNcIj5cbiAgICAgICAge3sgdGhpcy5mb3Jtc0xpc3RDb21wbGV0ZWQubGVuZ3RoIH19IC8ge3sgdGhpcy5mb3Jtc0xpc3RMZW5ndGggfX0gU3RlcHNcbiAgICAgICAgQ29tcGxldGVkXG4gICAgICA8L2Rpdj5cbiAgICAgIDxrd2lrdWktcHJvZ3Jlc3Mtc2VnbWVudGVkXG4gICAgICAgIFttYXhdPVwidGhpcy5mb3Jtc0xpc3RMZW5ndGhcIlxuICAgICAgICBzaXplPVwibVwiXG4gICAgICAgIFt2YWx1ZV09XCJ0aGlzLmZvcm1zTGlzdENvbXBsZXRlZC5sZW5ndGhcIlxuICAgICAgPjwva3dpa3VpLXByb2dyZXNzLXNlZ21lbnRlZD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGlkPVwidWYtc2VjdGlvbnMtY29udGFpbmVyXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBmb3JtIG9mIGZvcm1zTGlzdDsgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJmb3JtLnR5cGVcIj5cbiAgICAgICAgICA8IS0tIEhUTUwgQ29udGVudCAtLT5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInSFRNTCdcIj5cbiAgICAgICAgICAgIDxkaXYgW2lubmVySHRtbF09XCJmb3JtLnByb3BzLmh0bWxDb250ZW50IHwga3dpa3VpU2FmZUh0bWxcIj48L2Rpdj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8IS0tIFR5cGUgRk9STSAtLT5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInRk9STSdcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiRk9STV9CVVRUT05cIlxuICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie1xuICAgICAgICAgICAgICAgIGZvcm06IGZvcm0sXG4gICAgICAgICAgICAgICAgYWN0aXZlRm9ybUNvbmZpZzogYWN0aXZlRm9ybUNvbmZpZ1xuICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgaWQ9XCJzdWJtaXQtc2lkZWJhci1idG4tY29udGFpbmVyXCI+XG4gICAgICA8a3dpa3VpLWJ1dHRvblxuICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICFzdGVwQ29uZmlnLnByb3BzLmZvcm1MaXN0UHJvcGVydGllcy5mb290ZXIuc3VibWl0Rm9ybUJ1dHRvbi5oaWRkZW5cbiAgICAgICAgXCJcbiAgICAgICAgbGFiZWw9XCJ7e1xuICAgICAgICAgIHN0ZXBDb25maWcucHJvcHMuZm9ybUxpc3RQcm9wZXJ0aWVzLmZvb3Rlci5zdWJtaXRGb3JtQnV0dG9uLmxhYmVsXG4gICAgICAgIH19XCJcbiAgICAgICAgc3R5bGVzPVwid2lkdGg6IDEwMCVcIlxuICAgICAgICAob25DbGljayk9XCJoYW5kbGVPblN1Ym1pdEZvcm1zKCRldmVudClcIlxuICAgICAgPjwva3dpa3VpLWJ1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlXG4gICNGT1JNX0JVVFRPTlxuICBsZXQtZm9ybT1cImZvcm1cIlxuICBsZXQtYWN0aXZlRm9ybUNvbmZpZz1cImFjdGl2ZUZvcm1Db25maWdcIlxuPlxuICA8ZGl2XG4gICAgW2NsYXNzXT1cIid1Zi1zZWN0aW9uLWl0ZW0nXCJcbiAgICBbY2xhc3MuY29tcGxldGVkXT1cImZvcm0uc3RhdHVzID09PSAnY29tcGxldGVkJyAmJiAhZm9ybS5kaXNhYmxlZFwiXG4gICAgW2NsYXNzLmVkaXRdPVwiZm9ybS5zdGF0dXMgPT09ICdlZGl0YWJsZScgJiYgIWZvcm0uZGlzYWJsZWRcIlxuICAgIFtjbGFzcy5sb2NrZWRdPVwiZm9ybS5zdGF0dXMgPT09ICdsb2NrZWQnICYmIGZvcm0uZGlzYWJsZWRcIlxuICAgIFtjbGFzcy5hY3RpdmVdPVwiXG4gICAgICBhY3RpdmVGb3JtQ29uZmlnICE9PSB1bmRlZmluZWQgJiYgZm9ybS5rZXkgPT09IGFjdGl2ZUZvcm1Db25maWcua2V5XG4gICAgXCJcbiAgICAoY2xpY2spPVwiXG4gICAgICBmb3JtLnN0YXR1cyA9PT0gJ2xvY2tlZCcgJiYgZm9ybS5kaXNhYmxlZFxuICAgICAgICA/IHVuZGVmaW5lZFxuICAgICAgICA6IGhhbmRsZU9uQ2xpY2tTZXRBY3RpdmVGb3JtKGZvcm0ua2V5KVxuICAgIFwiXG4gID5cbiAgICA8ZGl2IGNsYXNzPVwidWYtZm9ybS1zZWN0aW9uLWNhcmQtdGl0bGVcIj5cbiAgICAgIHt7IGZvcm0ucHJvcHMudGl0bGUgfX0mbmJzcDs8c3BhbiAqbmdJZj1cImZvcm0/LnJlcXVpcmVkXCI+Kjwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwidWYtZm9ybS1zZWN0aW9uLWNhcmQtc3RhdHVzXCI+XG4gICAgICA8ZGl2XG4gICAgICAgICpuZ0lmPVwiZm9ybS5zdGF0dXMgPT09ICdjb21wbGV0ZWQnICYmICFmb3JtLmRpc2FibGVkXCJcbiAgICAgICAgY2xhc3M9XCJ1Zi1mb3JtLXNlY3Rpb24tY2FyZC1zdGF0dXMtaW1nIGNvbXBsZXRlZFwiXG4gICAgICA+XG4gICAgICAgIDx0dWktc3ZnIHNyYz1cInR1aUljb25DaGVja0xhcmdlXCI+PC90dWktc3ZnPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2XG4gICAgICAgICpuZ0lmPVwiZm9ybS5zdGF0dXMgIT09ICdjb21wbGV0ZWQnICYmICFmb3JtLmRpc2FibGVkXCJcbiAgICAgICAgY2xhc3M9XCJ1Zi1mb3JtLXNlY3Rpb24tY2FyZC1zdGF0dXMtaW1nIGVkaXRcIlxuICAgICAgPlxuICAgICAgICA8dHVpLXN2ZyBzcmM9XCJ0dWlJY29uRWRpdFwiPjwvdHVpLXN2Zz5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICAqbmdJZj1cImZvcm0uc3RhdHVzICE9PSAnY29tcGxldGVkJyAmJiBmb3JtLmRpc2FibGVkXCJcbiAgICAgICAgY2xhc3M9XCJ1Zi1mb3JtLXNlY3Rpb24tY2FyZC1zdGF0dXMtaW1nIGxvY2tlZFwiXG4gICAgICA+XG4gICAgICAgIDx0dWktc3ZnIHNyYz1cInR1aUljb25Mb2NrXCI+PC90dWktc3ZnPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==