stacktape 3.5.1 → 3.5.2

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.
Files changed (2) hide show
  1. package/index.js +97 -2
  2. package/package.json +1 -1
package/index.js CHANGED
@@ -3224,6 +3224,12 @@ var transformValue = (value) => {
3224
3224
  if (value === null || value === undefined) {
3225
3225
  return value;
3226
3226
  }
3227
+ if (typeof value === "string") {
3228
+ const rewrittenDirective = rewriteEmbeddedDirectivesToCfFormat(value);
3229
+ if (rewrittenDirective !== null) {
3230
+ return rewrittenDirective;
3231
+ }
3232
+ }
3227
3233
  if (isDeferredResourceName(value)) {
3228
3234
  return value.resolve();
3229
3235
  }
@@ -3278,6 +3284,95 @@ var transformValue = (value) => {
3278
3284
  }
3279
3285
  return value;
3280
3286
  };
3287
+ var rewriteEmbeddedDirectivesToCfFormat = (value) => {
3288
+ const embeddedDirectives = getEmbeddedDirectives(value);
3289
+ if (embeddedDirectives.length === 0) {
3290
+ return null;
3291
+ }
3292
+ if (embeddedDirectives.length === 1 && embeddedDirectives[0].startPos === 0 && embeddedDirectives[0].endPos === value.length) {
3293
+ return null;
3294
+ }
3295
+ let interpolatedString = "";
3296
+ let currentPos = 0;
3297
+ embeddedDirectives.forEach(({ startPos, endPos }) => {
3298
+ interpolatedString += `${value.slice(currentPos, startPos)}{}`;
3299
+ currentPos = endPos;
3300
+ });
3301
+ interpolatedString += value.slice(currentPos);
3302
+ const escapedInterpolatedString = interpolatedString.replace(/\\/g, "\\\\").replace(/'/g, "\\'").replace(/\r/g, "\\r").replace(/\n/g, "\\n").replace(/\t/g, "\\t");
3303
+ const directiveArgs = embeddedDirectives.map(({ definition }) => definition).join(", ");
3304
+ return `$CfFormat('${escapedInterpolatedString}', ${directiveArgs})`;
3305
+ };
3306
+ var getEmbeddedDirectives = (value) => {
3307
+ const directives = [];
3308
+ const tryParseDirectiveAt = (str, startPos) => {
3309
+ if (str[startPos] !== "$") {
3310
+ return null;
3311
+ }
3312
+ let idx2 = startPos + 1;
3313
+ const firstNameChar = str[idx2];
3314
+ if (!firstNameChar || !firstNameChar.match(/[A-Z_]/i)) {
3315
+ return null;
3316
+ }
3317
+ while (idx2 < str.length && str[idx2].match(/[\w$]/)) {
3318
+ idx2++;
3319
+ }
3320
+ if (str[idx2] !== "(") {
3321
+ return null;
3322
+ }
3323
+ let depth = 0;
3324
+ let inSingleQuote = false;
3325
+ let inDoubleQuote = false;
3326
+ let closingParenPos = -1;
3327
+ for (let i = idx2;i < str.length; i++) {
3328
+ const char = str[i];
3329
+ const prevChar = i > 0 ? str[i - 1] : "";
3330
+ if (char === "'" && prevChar !== "\\" && !inDoubleQuote) {
3331
+ inSingleQuote = !inSingleQuote;
3332
+ } else if (char === '"' && prevChar !== "\\" && !inSingleQuote) {
3333
+ inDoubleQuote = !inDoubleQuote;
3334
+ }
3335
+ if (!inSingleQuote && !inDoubleQuote) {
3336
+ if (char === "(") {
3337
+ depth++;
3338
+ } else if (char === ")") {
3339
+ depth--;
3340
+ if (depth === 0) {
3341
+ closingParenPos = i;
3342
+ break;
3343
+ }
3344
+ }
3345
+ }
3346
+ }
3347
+ if (closingParenPos === -1) {
3348
+ return null;
3349
+ }
3350
+ let endPos = closingParenPos + 1;
3351
+ if (str[endPos] === ".") {
3352
+ endPos++;
3353
+ while (endPos < str.length && str[endPos].match(/[\w$\.]/)) {
3354
+ endPos++;
3355
+ }
3356
+ }
3357
+ return {
3358
+ definition: str.slice(startPos, endPos),
3359
+ endPos
3360
+ };
3361
+ };
3362
+ let idx = 0;
3363
+ while (idx < value.length) {
3364
+ if (value[idx] === "$") {
3365
+ const parsed = tryParseDirectiveAt(value, idx);
3366
+ if (parsed) {
3367
+ directives.push({ definition: parsed.definition, startPos: idx, endPos: parsed.endPos });
3368
+ idx = parsed.endPos;
3369
+ continue;
3370
+ }
3371
+ }
3372
+ idx++;
3373
+ }
3374
+ return directives;
3375
+ };
3281
3376
  // src/api/npm/ts/directives.ts
3282
3377
  var $ResourceParam = (resourceName, property) => {
3283
3378
  return `$ResourceParam('${resourceName}','${property}')`;
@@ -4674,5 +4769,5 @@ var {
4674
4769
  EdgeLambdaFunction
4675
4770
  } = TYPE_PROPERTIES_CLASSES;
4676
4771
 
4677
- //# debugId=374E40A22723DA6E64756E2164756E21
4678
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vbm9kZV9tb2R1bGVzL2NoYW5nZS1jYXNlL2Rpc3QvaW5kZXguanMiLCAiLi4vc2hhcmVkL25hbWluZy9sb2dpY2FsLW5hbWVzLnRzIiwgIi4uL3NyYy9hcGkvbnBtL3RzL2NoaWxkLXJlc291cmNlcy50cyIsICIuLi9zcmMvYXBpL25wbS90cy9jb25maWcudHMiLCAiLi4vc3JjL2FwaS9ucG0vdHMvZGlyZWN0aXZlcy50cyIsICIuLi9zcmMvYXBpL25wbS90cy9nbG9iYWwtYXdzLXNlcnZpY2VzLnRzIiwgIi4uL3NyYy9hcGkvbnBtL3RzL2NsYXNzLWNvbmZpZy50cyIsICIuLi9zcmMvYXBpL25wbS90cy9yZXNvdXJjZS1tZXRhZGF0YS50cyIsICIuLi9zcmMvYXBpL25wbS90cy9yZXNvdXJjZXMudHMiLCAiLi4vc3JjL2FwaS9ucG0vdHMvdHlwZS1wcm9wZXJ0aWVzLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWwogICAgIi8vIFJlZ2V4cHMgaW52b2x2ZWQgd2l0aCBzcGxpdHRpbmcgd29yZHMgaW4gdmFyaW91cyBjYXNlIGZvcm1hdHMuXG5jb25zdCBTUExJVF9MT1dFUl9VUFBFUl9SRSA9IC8oW1xccHtMbH1cXGRdKShcXHB7THV9KS9ndTtcbmNvbnN0IFNQTElUX1VQUEVSX1VQUEVSX1JFID0gLyhcXHB7THV9KShbXFxwe0x1fV1bXFxwe0xsfV0pL2d1O1xuLy8gVXNlZCB0byBpdGVyYXRlIG92ZXIgdGhlIGluaXRpYWwgc3BsaXQgcmVzdWx0IGFuZCBzZXBhcmF0ZSBudW1iZXJzLlxuY29uc3QgU1BMSVRfU0VQQVJBVEVfTlVNQkVSX1JFID0gLyhcXGQpXFxwe0xsfXwoXFxwe0x9KVxcZC91O1xuLy8gUmVnZXhwIGludm9sdmVkIHdpdGggc3RyaXBwaW5nIG5vbi13b3JkIGNoYXJhY3RlcnMgZnJvbSB0aGUgcmVzdWx0LlxuY29uc3QgREVGQVVMVF9TVFJJUF9SRUdFWFAgPSAvW15cXHB7TH1cXGRdKy9naXU7XG4vLyBUaGUgcmVwbGFjZW1lbnQgdmFsdWUgZm9yIHNwbGl0cy5cbmNvbnN0IFNQTElUX1JFUExBQ0VfVkFMVUUgPSBcIiQxXFwwJDJcIjtcbi8vIFRoZSBkZWZhdWx0IGNoYXJhY3RlcnMgdG8ga2VlcCBhZnRlciB0cmFuc2Zvcm1pbmcgY2FzZS5cbmNvbnN0IERFRkFVTFRfUFJFRklYX1NVRkZJWF9DSEFSQUNURVJTID0gXCJcIjtcbi8qKlxuICogU3BsaXQgYW55IGNhc2VkIGlucHV0IHN0cmluZ3MgaW50byBhbiBhcnJheSBvZiB3b3Jkcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNwbGl0KHZhbHVlKSB7XG4gICAgbGV0IHJlc3VsdCA9IHZhbHVlLnRyaW0oKTtcbiAgICByZXN1bHQgPSByZXN1bHRcbiAgICAgICAgLnJlcGxhY2UoU1BMSVRfTE9XRVJfVVBQRVJfUkUsIFNQTElUX1JFUExBQ0VfVkFMVUUpXG4gICAgICAgIC5yZXBsYWNlKFNQTElUX1VQUEVSX1VQUEVSX1JFLCBTUExJVF9SRVBMQUNFX1ZBTFVFKTtcbiAgICByZXN1bHQgPSByZXN1bHQucmVwbGFjZShERUZBVUxUX1NUUklQX1JFR0VYUCwgXCJcXDBcIik7XG4gICAgbGV0IHN0YXJ0ID0gMDtcbiAgICBsZXQgZW5kID0gcmVzdWx0Lmxlbmd0aDtcbiAgICAvLyBUcmltIHRoZSBkZWxpbWl0ZXIgZnJvbSBhcm91bmQgdGhlIG91dHB1dCBzdHJpbmcuXG4gICAgd2hpbGUgKHJlc3VsdC5jaGFyQXQoc3RhcnQpID09PSBcIlxcMFwiKVxuICAgICAgICBzdGFydCsrO1xuICAgIGlmIChzdGFydCA9PT0gZW5kKVxuICAgICAgICByZXR1cm4gW107XG4gICAgd2hpbGUgKHJlc3VsdC5jaGFyQXQoZW5kIC0gMSkgPT09IFwiXFwwXCIpXG4gICAgICAgIGVuZC0tO1xuICAgIHJldHVybiByZXN1bHQuc2xpY2Uoc3RhcnQsIGVuZCkuc3BsaXQoL1xcMC9nKTtcbn1cbi8qKlxuICogU3BsaXQgdGhlIGlucHV0IHN0cmluZyBpbnRvIGFuIGFycmF5IG9mIHdvcmRzLCBzZXBhcmF0aW5nIG51bWJlcnMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzcGxpdFNlcGFyYXRlTnVtYmVycyh2YWx1ZSkge1xuICAgIGNvbnN0IHdvcmRzID0gc3BsaXQodmFsdWUpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgd29yZHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3Qgd29yZCA9IHdvcmRzW2ldO1xuICAgICAgICBjb25zdCBtYXRjaCA9IFNQTElUX1NFUEFSQVRFX05VTUJFUl9SRS5leGVjKHdvcmQpO1xuICAgICAgICBpZiAobWF0Y2gpIHtcbiAgICAgICAgICAgIGNvbnN0IG9mZnNldCA9IG1hdGNoLmluZGV4ICsgKG1hdGNoWzFdID8/IG1hdGNoWzJdKS5sZW5ndGg7XG4gICAgICAgICAgICB3b3Jkcy5zcGxpY2UoaSwgMSwgd29yZC5zbGljZSgwLCBvZmZzZXQpLCB3b3JkLnNsaWNlKG9mZnNldCkpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiB3b3Jkcztcbn1cbi8qKlxuICogQ29udmVydCBhIHN0cmluZyB0byBzcGFjZSBzZXBhcmF0ZWQgbG93ZXIgY2FzZSAoYGZvbyBiYXJgKS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5vQ2FzZShpbnB1dCwgb3B0aW9ucykge1xuICAgIGNvbnN0IFtwcmVmaXgsIHdvcmRzLCBzdWZmaXhdID0gc3BsaXRQcmVmaXhTdWZmaXgoaW5wdXQsIG9wdGlvbnMpO1xuICAgIHJldHVybiAocHJlZml4ICtcbiAgICAgICAgd29yZHMubWFwKGxvd2VyRmFjdG9yeShvcHRpb25zPy5sb2NhbGUpKS5qb2luKG9wdGlvbnM/LmRlbGltaXRlciA/PyBcIiBcIikgK1xuICAgICAgICBzdWZmaXgpO1xufVxuLyoqXG4gKiBDb252ZXJ0IGEgc3RyaW5nIHRvIGNhbWVsIGNhc2UgKGBmb29CYXJgKS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNhbWVsQ2FzZShpbnB1dCwgb3B0aW9ucykge1xuICAgIGNvbnN0IFtwcmVmaXgsIHdvcmRzLCBzdWZmaXhdID0gc3BsaXRQcmVmaXhTdWZmaXgoaW5wdXQsIG9wdGlvbnMpO1xuICAgIGNvbnN0IGxvd2VyID0gbG93ZXJGYWN0b3J5KG9wdGlvbnM/LmxvY2FsZSk7XG4gICAgY29uc3QgdXBwZXIgPSB1cHBlckZhY3Rvcnkob3B0aW9ucz8ubG9jYWxlKTtcbiAgICBjb25zdCB0cmFuc2Zvcm0gPSBvcHRpb25zPy5tZXJnZUFtYmlndW91c0NoYXJhY3RlcnNcbiAgICAgICAgPyBjYXBpdGFsQ2FzZVRyYW5zZm9ybUZhY3RvcnkobG93ZXIsIHVwcGVyKVxuICAgICAgICA6IHBhc2NhbENhc2VUcmFuc2Zvcm1GYWN0b3J5KGxvd2VyLCB1cHBlcik7XG4gICAgcmV0dXJuIChwcmVmaXggK1xuICAgICAgICB3b3Jkc1xuICAgICAgICAgICAgLm1hcCgod29yZCwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIGlmIChpbmRleCA9PT0gMClcbiAgICAgICAgICAgICAgICByZXR1cm4gbG93ZXIod29yZCk7XG4gICAgICAgICAgICByZXR1cm4gdHJhbnNmb3JtKHdvcmQsIGluZGV4KTtcbiAgICAgICAgfSlcbiAgICAgICAgICAgIC5qb2luKG9wdGlvbnM/LmRlbGltaXRlciA/PyBcIlwiKSArXG4gICAgICAgIHN1ZmZpeCk7XG59XG4vKipcbiAqIENvbnZlcnQgYSBzdHJpbmcgdG8gcGFzY2FsIGNhc2UgKGBGb29CYXJgKS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhc2NhbENhc2UoaW5wdXQsIG9wdGlvbnMpIHtcbiAgICBjb25zdCBbcHJlZml4LCB3b3Jkcywgc3VmZml4XSA9IHNwbGl0UHJlZml4U3VmZml4KGlucHV0LCBvcHRpb25zKTtcbiAgICBjb25zdCBsb3dlciA9IGxvd2VyRmFjdG9yeShvcHRpb25zPy5sb2NhbGUpO1xuICAgIGNvbnN0IHVwcGVyID0gdXBwZXJGYWN0b3J5KG9wdGlvbnM/LmxvY2FsZSk7XG4gICAgY29uc3QgdHJhbnNmb3JtID0gb3B0aW9ucz8ubWVyZ2VBbWJpZ3VvdXNDaGFyYWN0ZXJzXG4gICAgICAgID8gY2FwaXRhbENhc2VUcmFuc2Zvcm1GYWN0b3J5KGxvd2VyLCB1cHBlcilcbiAgICAgICAgOiBwYXNjYWxDYXNlVHJhbnNmb3JtRmFjdG9yeShsb3dlciwgdXBwZXIpO1xuICAgIHJldHVybiBwcmVmaXggKyB3b3Jkcy5tYXAodHJhbnNmb3JtKS5qb2luKG9wdGlvbnM/LmRlbGltaXRlciA/PyBcIlwiKSArIHN1ZmZpeDtcbn1cbi8qKlxuICogQ29udmVydCBhIHN0cmluZyB0byBwYXNjYWwgc25ha2UgY2FzZSAoYEZvb19CYXJgKS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhc2NhbFNuYWtlQ2FzZShpbnB1dCwgb3B0aW9ucykge1xuICAgIHJldHVybiBjYXBpdGFsQ2FzZShpbnB1dCwgeyBkZWxpbWl0ZXI6IFwiX1wiLCAuLi5vcHRpb25zIH0pO1xufVxuLyoqXG4gKiBDb252ZXJ0IGEgc3RyaW5nIHRvIGNhcGl0YWwgY2FzZSAoYEZvbyBCYXJgKS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNhcGl0YWxDYXNlKGlucHV0LCBvcHRpb25zKSB7XG4gICAgY29uc3QgW3ByZWZpeCwgd29yZHMsIHN1ZmZpeF0gPSBzcGxpdFByZWZpeFN1ZmZpeChpbnB1dCwgb3B0aW9ucyk7XG4gICAgY29uc3QgbG93ZXIgPSBsb3dlckZhY3Rvcnkob3B0aW9ucz8ubG9jYWxlKTtcbiAgICBjb25zdCB1cHBlciA9IHVwcGVyRmFjdG9yeShvcHRpb25zPy5sb2NhbGUpO1xuICAgIHJldHVybiAocHJlZml4ICtcbiAgICAgICAgd29yZHNcbiAgICAgICAgICAgIC5tYXAoY2FwaXRhbENhc2VUcmFuc2Zvcm1GYWN0b3J5KGxvd2VyLCB1cHBlcikpXG4gICAgICAgICAgICAuam9pbihvcHRpb25zPy5kZWxpbWl0ZXIgPz8gXCIgXCIpICtcbiAgICAgICAgc3VmZml4KTtcbn1cbi8qKlxuICogQ29udmVydCBhIHN0cmluZyB0byBjb25zdGFudCBjYXNlIChgRk9PX0JBUmApLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY29uc3RhbnRDYXNlKGlucHV0LCBvcHRpb25zKSB7XG4gICAgY29uc3QgW3ByZWZpeCwgd29yZHMsIHN1ZmZpeF0gPSBzcGxpdFByZWZpeFN1ZmZpeChpbnB1dCwgb3B0aW9ucyk7XG4gICAgcmV0dXJuIChwcmVmaXggK1xuICAgICAgICB3b3Jkcy5tYXAodXBwZXJGYWN0b3J5KG9wdGlvbnM/LmxvY2FsZSkpLmpvaW4ob3B0aW9ucz8uZGVsaW1pdGVyID8/IFwiX1wiKSArXG4gICAgICAgIHN1ZmZpeCk7XG59XG4vKipcbiAqIENvbnZlcnQgYSBzdHJpbmcgdG8gZG90IGNhc2UgKGBmb28uYmFyYCkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkb3RDYXNlKGlucHV0LCBvcHRpb25zKSB7XG4gICAgcmV0dXJuIG5vQ2FzZShpbnB1dCwgeyBkZWxpbWl0ZXI6IFwiLlwiLCAuLi5vcHRpb25zIH0pO1xufVxuLyoqXG4gKiBDb252ZXJ0IGEgc3RyaW5nIHRvIGtlYmFiIGNhc2UgKGBmb28tYmFyYCkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBrZWJhYkNhc2UoaW5wdXQsIG9wdGlvbnMpIHtcbiAgICByZXR1cm4gbm9DYXNlKGlucHV0LCB7IGRlbGltaXRlcjogXCItXCIsIC4uLm9wdGlvbnMgfSk7XG59XG4vKipcbiAqIENvbnZlcnQgYSBzdHJpbmcgdG8gcGF0aCBjYXNlIChgZm9vL2JhcmApLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcGF0aENhc2UoaW5wdXQsIG9wdGlvbnMpIHtcbiAgICByZXR1cm4gbm9DYXNlKGlucHV0LCB7IGRlbGltaXRlcjogXCIvXCIsIC4uLm9wdGlvbnMgfSk7XG59XG4vKipcbiAqIENvbnZlcnQgYSBzdHJpbmcgdG8gcGF0aCBjYXNlIChgRm9vIGJhcmApLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc2VudGVuY2VDYXNlKGlucHV0LCBvcHRpb25zKSB7XG4gICAgY29uc3QgW3ByZWZpeCwgd29yZHMsIHN1ZmZpeF0gPSBzcGxpdFByZWZpeFN1ZmZpeChpbnB1dCwgb3B0aW9ucyk7XG4gICAgY29uc3QgbG93ZXIgPSBsb3dlckZhY3Rvcnkob3B0aW9ucz8ubG9jYWxlKTtcbiAgICBjb25zdCB1cHBlciA9IHVwcGVyRmFjdG9yeShvcHRpb25zPy5sb2NhbGUpO1xuICAgIGNvbnN0IHRyYW5zZm9ybSA9IGNhcGl0YWxDYXNlVHJhbnNmb3JtRmFjdG9yeShsb3dlciwgdXBwZXIpO1xuICAgIHJldHVybiAocHJlZml4ICtcbiAgICAgICAgd29yZHNcbiAgICAgICAgICAgIC5tYXAoKHdvcmQsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICBpZiAoaW5kZXggPT09IDApXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRyYW5zZm9ybSh3b3JkKTtcbiAgICAgICAgICAgIHJldHVybiBsb3dlcih3b3JkKTtcbiAgICAgICAgfSlcbiAgICAgICAgICAgIC5qb2luKG9wdGlvbnM/LmRlbGltaXRlciA/PyBcIiBcIikgK1xuICAgICAgICBzdWZmaXgpO1xufVxuLyoqXG4gKiBDb252ZXJ0IGEgc3RyaW5nIHRvIHNuYWtlIGNhc2UgKGBmb29fYmFyYCkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzbmFrZUNhc2UoaW5wdXQsIG9wdGlvbnMpIHtcbiAgICByZXR1cm4gbm9DYXNlKGlucHV0LCB7IGRlbGltaXRlcjogXCJfXCIsIC4uLm9wdGlvbnMgfSk7XG59XG4vKipcbiAqIENvbnZlcnQgYSBzdHJpbmcgdG8gaGVhZGVyIGNhc2UgKGBGb28tQmFyYCkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0cmFpbkNhc2UoaW5wdXQsIG9wdGlvbnMpIHtcbiAgICByZXR1cm4gY2FwaXRhbENhc2UoaW5wdXQsIHsgZGVsaW1pdGVyOiBcIi1cIiwgLi4ub3B0aW9ucyB9KTtcbn1cbmZ1bmN0aW9uIGxvd2VyRmFjdG9yeShsb2NhbGUpIHtcbiAgICByZXR1cm4gbG9jYWxlID09PSBmYWxzZVxuICAgICAgICA/IChpbnB1dCkgPT4gaW5wdXQudG9Mb3dlckNhc2UoKVxuICAgICAgICA6IChpbnB1dCkgPT4gaW5wdXQudG9Mb2NhbGVMb3dlckNhc2UobG9jYWxlKTtcbn1cbmZ1bmN0aW9uIHVwcGVyRmFjdG9yeShsb2NhbGUpIHtcbiAgICByZXR1cm4gbG9jYWxlID09PSBmYWxzZVxuICAgICAgICA/IChpbnB1dCkgPT4gaW5wdXQudG9VcHBlckNhc2UoKVxuICAgICAgICA6IChpbnB1dCkgPT4gaW5wdXQudG9Mb2NhbGVVcHBlckNhc2UobG9jYWxlKTtcbn1cbmZ1bmN0aW9uIGNhcGl0YWxDYXNlVHJhbnNmb3JtRmFjdG9yeShsb3dlciwgdXBwZXIpIHtcbiAgICByZXR1cm4gKHdvcmQpID0+IGAke3VwcGVyKHdvcmRbMF0pfSR7bG93ZXIod29yZC5zbGljZSgxKSl9YDtcbn1cbmZ1bmN0aW9uIHBhc2NhbENhc2VUcmFuc2Zvcm1GYWN0b3J5KGxvd2VyLCB1cHBlcikge1xuICAgIHJldHVybiAod29yZCwgaW5kZXgpID0+IHtcbiAgICAgICAgY29uc3QgY2hhcjAgPSB3b3JkWzBdO1xuICAgICAgICBjb25zdCBpbml0aWFsID0gaW5kZXggPiAwICYmIGNoYXIwID49IFwiMFwiICYmIGNoYXIwIDw9IFwiOVwiID8gXCJfXCIgKyBjaGFyMCA6IHVwcGVyKGNoYXIwKTtcbiAgICAgICAgcmV0dXJuIGluaXRpYWwgKyBsb3dlcih3b3JkLnNsaWNlKDEpKTtcbiAgICB9O1xufVxuZnVuY3Rpb24gc3BsaXRQcmVmaXhTdWZmaXgoaW5wdXQsIG9wdGlvbnMgPSB7fSkge1xuICAgIGNvbnN0IHNwbGl0Rm4gPSBvcHRpb25zLnNwbGl0ID8/IChvcHRpb25zLnNlcGFyYXRlTnVtYmVycyA/IHNwbGl0U2VwYXJhdGVOdW1iZXJzIDogc3BsaXQpO1xuICAgIGNvbnN0IHByZWZpeENoYXJhY3RlcnMgPSBvcHRpb25zLnByZWZpeENoYXJhY3RlcnMgPz8gREVGQVVMVF9QUkVGSVhfU1VGRklYX0NIQVJBQ1RFUlM7XG4gICAgY29uc3Qgc3VmZml4Q2hhcmFjdGVycyA9IG9wdGlvbnMuc3VmZml4Q2hhcmFjdGVycyA/PyBERUZBVUxUX1BSRUZJWF9TVUZGSVhfQ0hBUkFDVEVSUztcbiAgICBsZXQgcHJlZml4SW5kZXggPSAwO1xuICAgIGxldCBzdWZmaXhJbmRleCA9IGlucHV0Lmxlbmd0aDtcbiAgICB3aGlsZSAocHJlZml4SW5kZXggPCBpbnB1dC5sZW5ndGgpIHtcbiAgICAgICAgY29uc3QgY2hhciA9IGlucHV0LmNoYXJBdChwcmVmaXhJbmRleCk7XG4gICAgICAgIGlmICghcHJlZml4Q2hhcmFjdGVycy5pbmNsdWRlcyhjaGFyKSlcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBwcmVmaXhJbmRleCsrO1xuICAgIH1cbiAgICB3aGlsZSAoc3VmZml4SW5kZXggPiBwcmVmaXhJbmRleCkge1xuICAgICAgICBjb25zdCBpbmRleCA9IHN1ZmZpeEluZGV4IC0gMTtcbiAgICAgICAgY29uc3QgY2hhciA9IGlucHV0LmNoYXJBdChpbmRleCk7XG4gICAgICAgIGlmICghc3VmZml4Q2hhcmFjdGVycy5pbmNsdWRlcyhjaGFyKSlcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBzdWZmaXhJbmRleCA9IGluZGV4O1xuICAgIH1cbiAgICByZXR1cm4gW1xuICAgICAgICBpbnB1dC5zbGljZSgwLCBwcmVmaXhJbmRleCksXG4gICAgICAgIHNwbGl0Rm4oaW5wdXQuc2xpY2UocHJlZml4SW5kZXgsIHN1ZmZpeEluZGV4KSksXG4gICAgICAgIGlucHV0LnNsaWNlKHN1ZmZpeEluZGV4KSxcbiAgICBdO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXguanMubWFwIiwKICAgICJpbXBvcnQgdHlwZSB7IENsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlIH0gZnJvbSAnQGNsb3VkZm9ybS9yZXNvdXJjZS10eXBlcyc7XG5pbXBvcnQgeyBwYXNjYWxDYXNlIH0gZnJvbSAnY2hhbmdlLWNhc2UnO1xuXG5leHBvcnQgY29uc3QgY2ZMb2dpY2FsTmFtZXMgPSB7XG4gIGJ1Y2tldChzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBwYXNjYWxDYXNlKGAke3N0cFJlc291cmNlTmFtZX0tYnVja2V0YCk7XG4gIH0sXG4gIGF0bGFzTW9uZ29Qcm9qZWN0KCkge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdBdGxhc01vbmdvJyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnTW9uZ29EQjo6U3RwQXRsYXNWMTo6UHJvamVjdCcgfVxuICAgIH0pO1xuICB9LFxuICBhdGxhc01vbmdvQ3JlZGVudGlhbHNQcm92aWRlcigpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnQXRsYXNNb25nb0NyZWRlbnRpYWxzUHJvdmlkZXInIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZScgfVxuICAgIH0pO1xuICB9LFxuICBhdGxhc01vbmdvUHJvamVjdFZwY05ldHdvcmtDb250YWluZXIoKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ0F0bGFzTW9uZ28nIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdNb25nb0RCOjpTdHBBdGxhc1YxOjpOZXR3b3JrQ29udGFpbmVyJyB9XG4gICAgfSk7XG4gIH0sXG4gIGF0bGFzTW9uZ29Qcm9qZWN0VnBjTmV0d29ya1BlZXJpbmcoKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ0F0bGFzTW9uZ28nIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdNb25nb0RCOjpTdHBBdGxhc1YxOjpOZXR3b3JrUGVlcmluZycgfVxuICAgIH0pO1xuICB9LFxuICBhdGxhc01vbmdvUHJvamVjdElwQWNjZXNzTGlzdCgpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnQXRsYXNNb25nbycgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ01vbmdvREI6OlN0cEF0bGFzVjE6OlByb2plY3RJcEFjY2Vzc0xpc3QnIH1cbiAgICB9KTtcbiAgfSxcbiAgYXRsYXNNb25nb1VzZXJBc3NvY2lhdGVkV2l0aFJvbGUoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnQXRsYXNNb25nbycgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ01vbmdvREI6OlN0cEF0bGFzVjE6OkRhdGFiYXNlVXNlcicgfVxuICAgIH0pO1xuICB9LFxuICBhdGxhc01vbmdvQ2x1c3Rlck1hc3RlclVzZXIoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ01vbmdvREI6OlN0cEF0bGFzVjE6OkRhdGFiYXNlVXNlcicgfVxuICAgIH0pO1xuICB9LFxuICBhdGxhc01vbmdvQ2x1c3RlcihzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnTW9uZ29EQjo6U3RwQXRsYXNWMTo6Q2x1c3RlcicgfVxuICAgIH0pO1xuICB9LFxuICByZWRpc1JlcGxpY2F0aW9uR3JvdXAoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6RWxhc3RpQ2FjaGU6OlJlcGxpY2F0aW9uR3JvdXAnIH1cbiAgICB9KTtcbiAgfSxcbiAgcmVkaXNMb2dHcm91cChzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpMb2dzOjpMb2dHcm91cCcgfVxuICAgIH0pO1xuICB9LFxuICByZWRpc1BhcmFtZXRlckdyb3VwKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkVsYXN0aUNhY2hlOjpQYXJhbWV0ZXJHcm91cCcgfVxuICAgIH0pO1xuICB9LFxuICByZWRpc1N1Ym5ldEdyb3VwKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkVsYXN0aUNhY2hlOjpTdWJuZXRHcm91cCcgfVxuICAgIH0pO1xuICB9LFxuICByZWRpc1NlY3VyaXR5R3JvdXAoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpTZWN1cml0eUdyb3VwJyB9XG4gICAgfSk7XG4gIH0sXG4gIGVmc0ZpbGVzeXN0ZW0oc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDoge1xuICAgICAgICBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6RUZTOjpGaWxlU3lzdGVtJ1xuICAgICAgfVxuICAgIH0pO1xuICB9LFxuICBlZnNBY2Nlc3NQb2ludCh7XG4gICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgIGVmc0ZpbGVzeXN0ZW1OYW1lLFxuICAgIHJvb3REaXJlY3RvcnlcbiAgfToge1xuICAgIHN0cFJlc291cmNlTmFtZTogc3RyaW5nO1xuICAgIGVmc0ZpbGVzeXN0ZW1OYW1lOiBzdHJpbmc7XG4gICAgcm9vdERpcmVjdG9yeT86IHN0cmluZztcbiAgfSkge1xuICAgIC8vIENyZWF0ZSBhIHVuaXF1ZSBpZGVudGlmaWVyIGJhc2VkIG9uIHRoZSByb290IGRpcmVjdG9yeVxuICAgIGNvbnN0IHJvb3REaXJJZGVudGlmaWVyID0gcm9vdERpcmVjdG9yeSA/IGAke3Jvb3REaXJlY3RvcnkucmVwbGFjZSgvXFwvL2csICctJykucmVwbGFjZSgvXi18LSQvZywgJycpfWAgOiAnUm9vdCc7XG5cbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjoge1xuICAgICAgICB0eXBlOiBgJHtlZnNGaWxlc3lzdGVtTmFtZX0tJHtyb290RGlySWRlbnRpZmllcn1gXG4gICAgICB9LFxuICAgICAgc3VmZml4OiB7XG4gICAgICAgIGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFRlM6OkFjY2Vzc1BvaW50J1xuICAgICAgfVxuICAgIH0pO1xuICB9LFxuICBlZnNNb3VudFRhcmdldChzdHBSZXNvdXJjZU5hbWU6IHN0cmluZywgbW91bnRUYXJnZXRJbmRleDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ1N1Ym5ldCcsIHR5cGVJbmRleDogbW91bnRUYXJnZXRJbmRleCB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFRlM6Ok1vdW50VGFyZ2V0JyB9XG4gICAgfSk7XG4gIH0sXG4gIGVmc1NlY3VyaXR5R3JvdXAoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpTZWN1cml0eUdyb3VwJyB9XG4gICAgfSk7XG4gIH0sXG4gIHNuc1JvbGVTZW5kU21zRnJvbUNvZ25pdG8oc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnU2VuZFNtcycgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpSb2xlJyB9XG4gICAgfSk7XG4gIH0sXG4gIGNsb3VkZnJvbnREaXN0cmlidXRpb24oc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcsIGRpc3RyaWJ1dGlvbkluZGV4OiBudW1iZXIpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnQ0ROJyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpEaXN0cmlidXRpb24nLCBpbmRleDogZGlzdHJpYnV0aW9uSW5kZXggfVxuICAgIH0pO1xuICB9LFxuICBjbG91ZGZyb250Q3VzdG9tQ2FjaGVQb2xpY3koc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcsIGNhY2hpbmdPcHRpb25zSGFzaDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogYENETkNhY2hlQmVoYXZpb3Ike2NhY2hpbmdPcHRpb25zSGFzaH1gIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6OkNhY2hlUG9saWN5JyB9XG4gICAgfSk7XG4gIH0sXG4gIGNsb3VkZnJvbnREZWZhdWx0Q2FjaGVQb2xpY3kodHlwZTogJ0RlZkR5bmFtaWMnIHwgJ0RlZlN0YXRpYycpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiBgQ0ROJHt0eXBlfWAgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6Q2FjaGVQb2xpY3knIH1cbiAgICB9KTtcbiAgfSxcbiAgY2xvdWRmcm9udEN1c3RvbU9yaWdpblJlcXVlc3RQb2xpY3koc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcsIGZvcndhcmRpbmdPcHRpb25zSGFzaDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogYENETkNhY2hlQmVoYXZpb3Ike2ZvcndhcmRpbmdPcHRpb25zSGFzaH1gIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6Ok9yaWdpblJlcXVlc3RQb2xpY3knIH1cbiAgICB9KTtcbiAgfSxcbiAgY2xvdWRmcm9udERlZmF1bHRPcmlnaW5SZXF1ZXN0UG9saWN5KHR5cGU6ICdEZWZEeW5hbWljJyB8ICdEZWZTdGF0aWMnKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogYENETiR7dHlwZX1gIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6Ok9yaWdpblJlcXVlc3RQb2xpY3knIH1cbiAgICB9KTtcbiAgfSxcbiAgY2xvdWRmcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5KHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ0NETicgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6Q2xvdWRGcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5JyB9XG4gICAgfSk7XG4gIH0sXG4gIG9wZW5OZXh0SG9zdEhlYWRlclJld3JpdGVGdW5jdGlvbihzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdPcGVuTmV4dEhvc3RIZWFkZXJSZXdyaXRlJyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpGdW5jdGlvbicgfVxuICAgIH0pO1xuICB9LFxuICBzc3JXZWJIb3N0SGVhZGVyUmV3cml0ZUZ1bmN0aW9uKHN0cFJlc291cmNlTmFtZTogc3RyaW5nLCByZXNvdXJjZVR5cGU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6IGAke3Jlc291cmNlVHlwZS5yZXBsYWNlKC8tL2csICcnKX1Ib3N0SGVhZGVyUmV3cml0ZWAgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6RnVuY3Rpb24nIH1cbiAgICB9KTtcbiAgfSxcbiAgb3Blbk5leHRBc3NldFJlcGxhY2VyQ3VzdG9tUmVzb3VyY2Uoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnQXNzZXRSZXBsYWNlcicgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGb3JtYXRpb246OkN1c3RvbVJlc291cmNlJyB9XG4gICAgfSk7XG4gIH0sXG4gIG9wZW5OZXh0RHluYW1vSW5zZXJ0Q3VzdG9tUmVzb3VyY2Uoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnRHluYW1vSW5zZXJ0JyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6Q3VzdG9tUmVzb3VyY2UnIH1cbiAgICB9KTtcbiAgfSxcbiAgZG5zUmVjb3JkKGZ1bGx5UXVhbGlmaWVkRG9tYWluTmFtZTogc3RyaW5nKSB7XG4gICAgLy8gd2UgZG8gbm90IGJ1aWxkIGJ1aWxkIHRoZSByZXNvdXJjZSBuYW1lIGNvbnZlbnRpb25hbGx5IHRocm91Z2ggc3RwUmVzb3VyY2VOYW1lXG4gICAgLy8gdGhpcyBpcyBkdWUgdG8gdXBkYXRlIGJlaGF2aW9ycyBvZiBDbG91ZGZvcm1hdGlvblxuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lOiAnJyxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiBnZXRTcGVjaWZpZXJGb3JEb21haW5SZXNvdXJjZShmdWxseVF1YWxpZmllZERvbWFpbk5hbWUpIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OlJvdXRlNTM6OlJlY29yZFNldCcgfVxuICAgIH0pO1xuICB9LFxuICBkeW5hbW9HbG9iYWxUYWJsZShzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpEeW5hbW9EQjo6R2xvYmFsVGFibGUnIH1cbiAgICB9KTtcbiAgfSxcbiAgZHluYW1vUmVnaW9uYWxUYWJsZShzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpEeW5hbW9EQjo6VGFibGUnIH1cbiAgICB9KTtcbiAgfSxcbiAgYnVja2V0UG9saWN5KHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OlMzOjpCdWNrZXRQb2xpY3knIH1cbiAgICB9KTtcbiAgfSxcbiAgbGFtYmRhTG9nR3JvdXAoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6TG9nczo6TG9nR3JvdXAnIH1cbiAgICB9KTtcbiAgfSxcbiAgZXZlbnRPbkRlbGl2ZXJ5RmFpbHVyZVNxc1F1ZXVlUG9saWN5KHN0cFJlc291cmNlTmFtZTogc3RyaW5nLCBldmVudEluZGV4OiBudW1iZXIpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjoge1xuICAgICAgICB0eXBlOiAnRXZlbnQnLFxuICAgICAgICB0eXBlSW5kZXg6IGV2ZW50SW5kZXhcbiAgICAgIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OlNRUzo6UXVldWVQb2xpY3knIH1cbiAgICB9KTtcbiAgfSxcbiAgc25zRXZlbnRTdWJzY3JpcHRpb24oc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcsIGV2ZW50SW5kZXg6IG51bWJlcikge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7XG4gICAgICAgIHR5cGU6ICdFdmVudCcsXG4gICAgICAgIHR5cGVJbmRleDogZXZlbnRJbmRleFxuICAgICAgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6U05TOjpTdWJzY3JpcHRpb24nIH1cbiAgICB9KTtcbiAgfSxcbiAgc25zRXZlbnRQZXJtaXNzaW9uKHN0cFJlc291cmNlTmFtZTogc3RyaW5nLCBldmVudEluZGV4OiBudW1iZXIpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjoge1xuICAgICAgICB0eXBlOiAnRXZlbnQnLFxuICAgICAgICB0eXBlSW5kZXg6IGV2ZW50SW5kZXhcbiAgICAgIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkxhbWJkYTo6UGVybWlzc2lvbicgfVxuICAgIH0pO1xuICB9LFxuICBlY3JSZXBvKCkge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3BlY2lmaWVyOiB7XG4gICAgICAgIHR5cGU6ICdDb250YWluZXInXG4gICAgICB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFQ1I6OlJlcG9zaXRvcnknIH1cbiAgICB9KTtcbiAgfSxcbiAgZGVwbG95bWVudEJ1Y2tldCgpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjoge1xuICAgICAgICB0eXBlOiAnRGVwbG95bWVudCdcbiAgICAgIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OlMzOjpCdWNrZXQnIH1cbiAgICB9KTtcbiAgfSxcbiAgZGVwbG95bWVudEJ1Y2tldFBvbGljeSgpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjoge1xuICAgICAgICB0eXBlOiAnRGVwbG95bWVudCdcbiAgICAgIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OlMzOjpCdWNrZXRQb2xpY3knIH1cbiAgICB9KTtcbiAgfSxcbiAgbGFtYmRhSW52b2tlQ29uZmlnKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkxhbWJkYTo6RXZlbnRJbnZva2VDb25maWcnIH1cbiAgICB9KTtcbiAgfSxcbiAgbGFtYmRhVmVyc2lvblB1Ymxpc2hlckN1c3RvbVJlc291cmNlKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ1ZlcnNpb24nIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZScgfVxuICAgIH0pO1xuICB9LFxuICBjb2RlRGVwbG95U2VydmljZVJvbGUoKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHtcbiAgICAgICAgdHlwZTogJ0NvZGVEZXBsb3knXG4gICAgICB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnIH1cbiAgICB9KTtcbiAgfSxcbiAgYmF0Y2hJbnN0YW5jZVJvbGUoKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHtcbiAgICAgICAgdHlwZTogJ0JhdGNoSW5zdGFuY2UnXG4gICAgICB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnIH1cbiAgICB9KTtcbiAgfSxcbiAgYmF0Y2hJbnN0YW5jZURlZmF1bHRTZWN1cml0eUdyb3VwKCkge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3BlY2lmaWVyOiB7XG4gICAgICAgIHR5cGU6ICdCYXRjaEluc3RhbmNlJ1xuICAgICAgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpTZWN1cml0eUdyb3VwJyB9XG4gICAgfSk7XG4gIH0sXG4gIGJhdGNoSW5zdGFuY2VQcm9maWxlKCkge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3BlY2lmaWVyOiB7XG4gICAgICAgIHR5cGU6ICdCYXRjaEluc3RhbmNlJ1xuICAgICAgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpJbnN0YW5jZVByb2ZpbGUnIH1cbiAgICB9KTtcbiAgfSxcbiAgYmF0Y2hJbnN0YW5jZUxhdW5jaFRlbXBsYXRlKCkge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3BlY2lmaWVyOiB7XG4gICAgICAgIHR5cGU6ICdCYXRjaEluc3RhbmNlJ1xuICAgICAgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpMYXVuY2hUZW1wbGF0ZScgfVxuICAgIH0pO1xuICB9LFxuICBiYXRjaFN0YXRlTWFjaGluZUV4ZWN1dGlvblJvbGUoKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHtcbiAgICAgICAgdHlwZTogJ0JhdGNoU3RhdGVNYWNoaW5lJ1xuICAgICAgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpSb2xlJyB9XG4gICAgfSk7XG4gIH0sXG4gIGJhdGNoU3BvdEZsZWV0Um9sZSgpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjoge1xuICAgICAgICB0eXBlOiAnQmF0Y2hTcG90RmxlZXQnXG4gICAgICB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnIH1cbiAgICB9KTtcbiAgfSxcbiAgYmF0Y2hTZXJ2aWNlUm9sZSgpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjoge1xuICAgICAgICB0eXBlOiAnQmF0Y2hTZXJ2aWNlJ1xuICAgICAgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpSb2xlJyB9XG4gICAgfSk7XG4gIH0sXG4gIGJhdGNoSm9iRXhlY3V0aW9uUm9sZShzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnIH1cbiAgICB9KTtcbiAgfSxcbiAgYmF0Y2hDb21wdXRlRW52aXJvbm1lbnQoc3BvdDogYm9vbGVhbiwgZ3B1OiBib29sZWFuKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHtcbiAgICAgICAgdHlwZTogYEJhdGNoLSR7c3BvdCA/ICdzcG90JyA6ICdvbkRlbWFuZCd9LSR7Z3B1ID8gJ2dwdScgOiAnJ31gXG4gICAgICB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpCYXRjaDo6Q29tcHV0ZUVudmlyb25tZW50JyB9XG4gICAgfSk7XG4gIH0sXG4gIGJhdGNoSm9iUXVldWUoc3BvdDogYm9vbGVhbiwgZ3B1OiBib29sZWFuKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHtcbiAgICAgICAgdHlwZTogYEJhdGNoLSR7c3BvdCA/ICdzcG90JyA6ICdvbkRlbWFuZCd9LSR7Z3B1ID8gJ2dwdScgOiAnJ31gXG4gICAgICB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpCYXRjaDo6Sm9iUXVldWUnIH1cbiAgICB9KTtcbiAgfSxcbiAgc3VibmV0KHB1YmxpY1N1Ym5ldDogYm9vbGVhbiwgc3VibmV0SW5kZXg6IG51bWJlcikge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3BlY2lmaWVyOiB7XG4gICAgICAgIHR5cGU6IHB1YmxpY1N1Ym5ldCA/ICdQdWJsaWMnIDogJ1ByaXZhdGUnXG4gICAgICB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFQzI6OlN1Ym5ldCcsIGluZGV4OiBzdWJuZXRJbmRleCB9XG4gICAgfSk7XG4gIH0sXG4gIHZwYygpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpWUEMnIH1cbiAgICB9KTtcbiAgfSxcbiAgdnBjR2F0ZXdheUVuZHBvaW50KHR5cGU6ICdzMycgfCAnZHluYW1vLWRiJykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6IGAke3R5cGV9LUdhdGV3YXlgIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkVDMjo6VlBDRW5kcG9pbnQnIH1cbiAgICB9KTtcbiAgfSxcbiAgZGJTdWJuZXRHcm91cChzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpSRFM6OkRCU3VibmV0R3JvdXAnIH1cbiAgICB9KTtcbiAgfSxcbiAgYXVyb3JhRGJDbHVzdGVyKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OlJEUzo6REJDbHVzdGVyJyB9XG4gICAgfSk7XG4gIH0sXG4gIGF1cm9yYURiQ2x1c3RlclBhcmFtZXRlckdyb3VwKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OlJEUzo6REJDbHVzdGVyUGFyYW1ldGVyR3JvdXAnIH1cbiAgICB9KTtcbiAgfSxcbiAgYXVyb3JhRGJDbHVzdGVyTG9nR3JvdXAoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcsIGxvZ0dyb3VwVHlwZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ0NsdXN0ZXInLCBzdWJ0eXBlOiBsb2dHcm91cFR5cGUgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6TG9nczo6TG9nR3JvdXAnIH1cbiAgICB9KTtcbiAgfSxcbiAgZGJTZWN1cml0eUdyb3VwKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkVDMjo6U2VjdXJpdHlHcm91cCcgfVxuICAgIH0pO1xuICB9LFxuICBkYkluc3RhbmNlKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OlJEUzo6REJJbnN0YW5jZScgfVxuICAgIH0pO1xuICB9LFxuICBkYkluc3RhbmNlTG9nR3JvdXAoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcsIGxvZ0dyb3VwVHlwZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ0luc3RhbmNlJywgc3VidHlwZTogbG9nR3JvdXBUeXBlIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkxvZ3M6OkxvZ0dyb3VwJyB9XG4gICAgfSk7XG4gIH0sXG4gIG9wZW5TZWFyY2hEb21haW5Mb2dHcm91cChzdHBSZXNvdXJjZU5hbWU6IHN0cmluZywgbG9nR3JvdXBUeXBlOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnSW5zdGFuY2UnLCBzdWJ0eXBlOiBsb2dHcm91cFR5cGUgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6TG9nczo6TG9nR3JvdXAnIH1cbiAgICB9KTtcbiAgfSxcbiAgZGJPcHRpb25Hcm91cChzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpSRFM6Ok9wdGlvbkdyb3VwJyB9XG4gICAgfSk7XG4gIH0sXG4gIGRiSW5zdGFuY2VQYXJhbWV0ZXJHcm91cChzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpSRFM6OkRCUGFyYW1ldGVyR3JvdXAnIH1cbiAgICB9KTtcbiAgfSxcbiAgZGJSZXBsaWNhKHN0cFJlc291cmNlTmFtZTogc3RyaW5nLCByZXBsaWNhTnVtOiBudW1iZXIpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnUmVwbGljYScsIHR5cGVJbmRleDogcmVwbGljYU51bSB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpSRFM6OkRCSW5zdGFuY2UnIH1cbiAgICB9KTtcbiAgfSxcbiAgZGJSZXBsaWNhTG9nR3JvdXAoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcsIGxvZ0dyb3VwVHlwZTogc3RyaW5nLCByZXBsaWNhTnVtOiBudW1iZXIpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnUmVwbGljYScsIHR5cGVJbmRleDogcmVwbGljYU51bSwgc3VidHlwZTogbG9nR3JvdXBUeXBlIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkxvZ3M6OkxvZ0dyb3VwJyB9XG4gICAgfSk7XG4gIH0sXG4gIGRiUmVwbGljYVBhcmFtZXRlckdyb3VwKHN0cFJlc291cmNlTmFtZTogc3RyaW5nLCByZXBsaWNhTnVtOiBudW1iZXIpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnUmVwbGljYScsIHR5cGVJbmRleDogcmVwbGljYU51bSB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpSRFM6OkRCUGFyYW1ldGVyR3JvdXAnIH1cbiAgICB9KTtcbiAgfSxcbiAgYXVyb3JhRGJJbnN0YW5jZShzdHBSZXNvdXJjZU5hbWU6IHN0cmluZywgaW5zdGFuY2VOdW06IG51bWJlcikge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpSRFM6OkRCSW5zdGFuY2UnLCBpbmRleDogaW5zdGFuY2VOdW0gfVxuICAgIH0pO1xuICB9LFxuICBhdXJvcmFEYkluc3RhbmNlUGFyYW1ldGVyR3JvdXAoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnSW5zdGFuY2UnIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OlJEUzo6REJQYXJhbWV0ZXJHcm91cCcgfVxuICAgIH0pO1xuICB9LFxuICBldmVudEJ1c1J1bGUoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcsIGV2ZW50SW5kZXg6IG51bWJlcikge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7XG4gICAgICAgIHR5cGU6ICdFdmVudCcsXG4gICAgICAgIHR5cGVJbmRleDogZXZlbnRJbmRleFxuICAgICAgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6RXZlbnRzOjpSdWxlJyB9XG4gICAgfSk7XG4gIH0sXG4gIGN1c3RvbVRhZ2dpbmdTY2hlZHVsZVJ1bGUoKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ1N0cEN1c3RvbVRhZ2dpbmdTY2hlZHVsZScgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6RXZlbnRzOjpSdWxlJyB9XG4gICAgfSk7XG4gIH0sXG4gIGN1c3RvbVRhZ2dpbmdTY2hlZHVsZVJ1bGVQZXJtaXNzaW9uKCkge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdTdHBDdXN0b21UYWdnaW5nU2NoZWR1bGVSdWxlJyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpMYW1iZGE6OlBlcm1pc3Npb24nIH1cbiAgICB9KTtcbiAgfSxcbiAgY2xvdWRXYXRjaExvZ0V2ZW50U3Vic2NyaXB0aW9uRmlsdGVyKHN0cFJlc291cmNlTmFtZTogc3RyaW5nLCBldmVudEluZGV4OiBudW1iZXIpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjoge1xuICAgICAgICB0eXBlOiAnRXZlbnQnLFxuICAgICAgICB0eXBlSW5kZXg6IGV2ZW50SW5kZXhcbiAgICAgIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkxvZ3M6OlN1YnNjcmlwdGlvbkZpbHRlcicgfVxuICAgIH0pO1xuICB9LFxuICBldmVudFNvdXJjZU1hcHBpbmcoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcsIGV2ZW50SW5kZXg6IG51bWJlcikge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7XG4gICAgICAgIHR5cGU6ICdFdmVudCcsXG4gICAgICAgIHR5cGVJbmRleDogZXZlbnRJbmRleFxuICAgICAgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6TGFtYmRhOjpFdmVudFNvdXJjZU1hcHBpbmcnIH1cbiAgICB9KTtcbiAgfSxcbiAgaW90RXZlbnRUb3BpY1J1bGUoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcsIGV2ZW50SW5kZXg6IG51bWJlcikge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7XG4gICAgICAgIHR5cGU6ICdFdmVudCcsXG4gICAgICAgIHR5cGVJbmRleDogZXZlbnRJbmRleFxuICAgICAgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6SW9UOjpUb3BpY1J1bGUnIH1cbiAgICB9KTtcbiAgfSxcbiAga2luZXNpc0V2ZW50Q29uc3VtZXIoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcsIGV2ZW50SW5kZXg6IG51bWJlcikge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7XG4gICAgICAgIHR5cGU6ICdFdmVudCcsXG4gICAgICAgIHR5cGVJbmRleDogZXZlbnRJbmRleFxuICAgICAgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6S2luZXNpczo6U3RyZWFtQ29uc3VtZXInIH1cbiAgICB9KTtcbiAgfSxcbiAgbGFtYmRhKHN0cFJlc291cmNlTmFtZTogc3RyaW5nLCBpc1N0cFNlcnZpY2VGdW5jdGlvbj86IGJvb2xlYW4pIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogaXNTdHBTZXJ2aWNlRnVuY3Rpb24gPyB7IHR5cGU6ICdDdXN0b21SZXNvdXJjZScgfSA6IHVuZGVmaW5lZCxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6TGFtYmRhOjpGdW5jdGlvbicgfVxuICAgIH0pO1xuICB9LFxuICBsYW1iZGFTdHBBbGlhcyhzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7XG4gICAgICAgIHR5cGU6ICdTdHAnXG4gICAgICB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpMYW1iZGE6OkFsaWFzJyB9XG4gICAgfSk7XG4gIH0sXG4gIGxhbWJkYVVybChzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpMYW1iZGE6OlVybCcgfVxuICAgIH0pO1xuICB9LFxuICBjb2RlRGVwbG95RGVwbG95bWVudEdyb3VwKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkNvZGVEZXBsb3k6OkRlcGxveW1lbnRHcm91cCcgfVxuICAgIH0pO1xuICB9LFxuICBjdXN0b21SZXNvdXJjZShzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6Q3VzdG9tUmVzb3VyY2UnIH1cbiAgICB9KTtcbiAgfSxcbiAgc2NyaXB0Q3VzdG9tUmVzb3VyY2Uoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnU2NyaXB0JyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6Q3VzdG9tUmVzb3VyY2UnIH1cbiAgICB9KTtcbiAgfSxcbiAgYmF0Y2hTdGF0ZU1hY2hpbmUoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnSm9iRXhlY3V0aW9uJyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpTdGVwRnVuY3Rpb25zOjpTdGF0ZU1hY2hpbmUnIH1cbiAgICB9KTtcbiAgfSxcbiAgYmF0Y2hKb2JEZWZpbml0aW9uKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkJhdGNoOjpKb2JEZWZpbml0aW9uJyB9XG4gICAgfSk7XG4gIH0sXG4gIGJhdGNoSm9iTG9nR3JvdXAoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6TG9nczo6TG9nR3JvdXAnIH1cbiAgICB9KTtcbiAgfSxcbiAgZ2xvYmFsU3RhdGVNYWNoaW5lc1JvbGUoKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHtcbiAgICAgICAgdHlwZTogJ0dsb2JhbFN0YXRlTWFjaGluZSdcbiAgICAgIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6Um9sZScgfVxuICAgIH0pO1xuICB9LFxuICBzdGF0ZU1hY2hpbmUoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6U3RlcEZ1bmN0aW9uczo6U3RhdGVNYWNoaW5lJyB9XG4gICAgfSk7XG4gIH0sXG4gIGludGVybmV0R2F0ZXdheSgpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpJbnRlcm5ldEdhdGV3YXknIH1cbiAgICB9KTtcbiAgfSxcbiAgdnBjR2F0ZXdheUF0dGFjaG1lbnQoKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkVDMjo6VlBDR2F0ZXdheUF0dGFjaG1lbnQnIH1cbiAgICB9KTtcbiAgfSxcbiAgcm91dGVUYWJsZShwdWJsaWNTdWJuZXQ6IGJvb2xlYW4sIHN1Ym5ldEluZGV4OiBudW1iZXIpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiBwdWJsaWNTdWJuZXQgPyAnUHVibGljU3VibmV0JyA6ICdQcml2YXRlU3VibmV0JywgdHlwZUluZGV4OiBzdWJuZXRJbmRleCB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFQzI6OlJvdXRlVGFibGUnIH1cbiAgICB9KTtcbiAgfSxcbiAgaW50ZXJuZXRHYXRld2F5Um91dGUoc3VibmV0SW5kZXg6IG51bWJlcikge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdJbnRlcm5ldEdhdGV3YXknIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkVDMjo6Um91dGUnLCBpbmRleDogc3VibmV0SW5kZXggfVxuICAgIH0pO1xuICB9LFxuICBhdGxhc01vbmdvVnBjUm91dGUocHVibGljU3VibmV0VGFibGU6IGJvb2xlYW4sIHN1Ym5ldEluZGV4OiBudW1iZXIpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiBgQXRsYXNNb25nbyR7cHVibGljU3VibmV0VGFibGUgPyAnUHVibGljU3VibmV0JyA6ICdQcml2YXRlU3VibmV0J31gIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkVDMjo6Um91dGUnLCBpbmRleDogc3VibmV0SW5kZXggfVxuICAgIH0pO1xuICB9LFxuICByb3V0ZVRhYmxlVG9TdWJuZXRBc3NvY2lhdGlvbihwdWJsaWNTdWJuZXQ6IGJvb2xlYW4sIHN1Ym5ldEluZGV4OiBudW1iZXIpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiBwdWJsaWNTdWJuZXQgPyAnUHVibGljU3VibmV0JyA6ICdQcml2YXRlU3VibmV0JywgdHlwZUluZGV4OiBzdWJuZXRJbmRleCB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFQzI6OlN1Ym5ldFJvdXRlVGFibGVBc3NvY2lhdGlvbicgfVxuICAgIH0pO1xuICB9LFxuICBuYXRHYXRld2F5KGF6SW5kZXg6IG51bWJlcikge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFQzI6Ok5hdEdhdGV3YXknLCBpbmRleDogYXpJbmRleCB9XG4gICAgfSk7XG4gIH0sXG4gIG5hdEVsYXN0aWNJcChhekluZGV4OiBudW1iZXIpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnTmF0JyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFQzI6OkVJUCcsIGluZGV4OiBhekluZGV4IH1cbiAgICB9KTtcbiAgfSxcbiAgbmF0Um91dGUoc3VibmV0SW5kZXg6IG51bWJlcikge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdOYXRQcml2YXRlU3VibmV0JyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFQzI6OlJvdXRlJywgaW5kZXg6IHN1Ym5ldEluZGV4IH1cbiAgICB9KTtcbiAgfSxcbiAgZXZlbnRCdXMoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6RXZlbnRzOjpFdmVudEJ1cycgfVxuICAgIH0pO1xuICB9LFxuICBldmVudEJ1c0FyY2hpdmUoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6RXZlbnRzOjpBcmNoaXZlJyB9XG4gICAgfSk7XG4gIH0sXG4gIGVjc0NsdXN0ZXIoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6RUNTOjpDbHVzdGVyJyB9XG4gICAgfSk7XG4gIH0sXG4gIGVjc1Rhc2tEZWZpbml0aW9uKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkVDUzo6VGFza0RlZmluaXRpb24nIH1cbiAgICB9KTtcbiAgfSxcbiAgZWNzU2VydmljZShzdHBSZXNvdXJjZU5hbWU6IHN0cmluZywgYmx1ZUdyZWVuOiBib29sZWFuKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IGJsdWVHcmVlbiA/IHsgdHlwZTogJ0JsdWVHcmVlbicgfSA6IHVuZGVmaW5lZCxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6RUNTOjpTZXJ2aWNlJyB9XG4gICAgfSk7XG4gIH0sXG4gIGVjc0V4ZWN1dGlvblJvbGUoKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ0Vjc0V4ZWN1dGlvbicgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpSb2xlJyB9XG4gICAgfSk7XG4gIH0sXG4gIGVjc0VjMkluc3RhbmNlUm9sZSgpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjoge1xuICAgICAgICB0eXBlOiAnRWNzSW5zdGFuY2UnXG4gICAgICB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnIH1cbiAgICB9KTtcbiAgfSxcbiAgZWNzRWMyQXV0b3NjYWxpbmdHcm91cFdhcm1Qb29sKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkF1dG9TY2FsaW5nOjpXYXJtUG9vbCcgfVxuICAgIH0pO1xuICB9LFxuICBldmVudEJ1c1JvbGVGb3JTY2hlZHVsZWRJbnN0YW5jZVJlZnJlc2goKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ1NjaGVkdWxlZEluc3RhbmNlUmVmcmVzaCcgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpSb2xlJyB9XG4gICAgfSk7XG4gIH0sXG4gIHNjaGVkdWxlclJ1bGVGb3JTY2hlZHVsZWRJbnN0YW5jZVJlZnJlc2goc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnU2NoZWR1bGVkSW5zdGFuY2VSZWZyZXNoJyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFdmVudHM6OlJ1bGUnIH1cbiAgICB9KTtcbiAgfSxcbiAgZWNzRWMySW5zdGFuY2VMYXVuY2hUZW1wbGF0ZShzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFQzI6OkxhdW5jaFRlbXBsYXRlJyB9XG4gICAgfSk7XG4gIH0sXG4gIGVjc0VjMkF1dG9zY2FsaW5nR3JvdXAoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6QXV0b1NjYWxpbmc6OkF1dG9TY2FsaW5nR3JvdXAnIH1cbiAgICB9KTtcbiAgfSxcbiAgZWNzRWMyRm9yY2VEZWxldGVBdXRvc2NhbGluZ0dyb3VwQ3VzdG9tUmVzb3VyY2Uoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnRm9yY2VEZWxldGVBc2cnIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZScgfVxuICAgIH0pO1xuICB9LFxuICBlY3NEaXNhYmxlTWFuYWdlZFRlcm1pbmF0aW9uUHJvdGVjdGlvbkN1c3RvbVJlc291cmNlKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ0Rpc2FibGVNYW5hZ2VkVGVybWluYXRpb25Qcm90ZWN0aW9uJyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6Q3VzdG9tUmVzb3VyY2UnIH1cbiAgICB9KTtcbiAgfSxcbiAgZWNzRGVyZWdpc3RlclRhcmdldHNDdXN0b21SZXNvdXJjZShzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdEZXJlZ2lzdGVyVGFyZ2V0cycgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGb3JtYXRpb246OkN1c3RvbVJlc291cmNlJyB9XG4gICAgfSk7XG4gIH0sXG5cbiAgZWNzRWMyQ2FwYWNpdHlQcm92aWRlcihzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFQ1M6OkNhcGFjaXR5UHJvdmlkZXInIH1cbiAgICB9KTtcbiAgfSxcbiAgZWNzRWMyQ2FwYWNpdHlQcm92aWRlckFzc29jaWF0aW9uKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkVDUzo6Q2x1c3RlckNhcGFjaXR5UHJvdmlkZXJBc3NvY2lhdGlvbnMnIH1cbiAgICB9KTtcbiAgfSxcbiAgZWNzRWMySW5zdGFuY2VQcm9maWxlKCkge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3BlY2lmaWVyOiB7XG4gICAgICAgIHR5cGU6ICdFY3NJbnN0YW5jZSdcbiAgICAgIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6SW5zdGFuY2VQcm9maWxlJyB9XG4gICAgfSk7XG4gIH0sXG4gIGVjc1Rhc2tSb2xlKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6Um9sZScgfVxuICAgIH0pO1xuICB9LFxuICBlY3NBdXRvU2NhbGluZ1JvbGUoKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ0Vjc0F1dG9TY2FsZScgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpSb2xlJyB9XG4gICAgfSk7XG4gIH0sXG4gIC8vIGVjc1NjaGVkdWxlZE1haW50ZW5hbmNlRXZlbnRCdXNSdWxlKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gIC8vICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gIC8vICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gIC8vICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ1NjaGVkdWxlZE1haW50ZW5hbmNlJyB9LFxuICAvLyAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFdmVudHM6OlJ1bGUnIH1cbiAgLy8gICB9KS5yZXBsYWNlQWxsKCdfJywgJycpO1xuICAvLyB9LFxuICBlY3NTY2hlZHVsZWRNYWludGVuYW5jZUxhbWJkYVBlcm1pc3Npb24oc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnU2NoZWR1bGVkTWFpbnRlbmFuY2UnIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkxhbWJkYTo6UGVybWlzc2lvbicgfVxuICAgIH0pLnJlcGxhY2VBbGwoJ18nLCAnJyk7XG4gIH0sXG4gIGJhc3Rpb25FYzJMYXVuY2hUZW1wbGF0ZShzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFQzI6OkxhdW5jaFRlbXBsYXRlJyB9XG4gICAgfSk7XG4gIH0sXG4gIGJhc3Rpb25FYzJJbnN0YW5jZVByb2ZpbGUoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpJbnN0YW5jZVByb2ZpbGUnIH1cbiAgICB9KTtcbiAgfSxcbiAgYmFzdGlvbkVjMkF1dG9zY2FsaW5nR3JvdXAoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6QXV0b1NjYWxpbmc6OkF1dG9TY2FsaW5nR3JvdXAnIH1cbiAgICB9KTtcbiAgfSxcbiAgYmFzdGlvblNlY3VyaXR5R3JvdXAoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpTZWN1cml0eUdyb3VwJyB9XG4gICAgfSk7XG4gIH0sXG4gIGJhc3Rpb25Dd0FnZW50U3NtQXNzb2NpYXRpb24oc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnQ3dBZ2VudCcgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6U1NNOjpBc3NvY2lhdGlvbicgfVxuICAgIH0pO1xuICB9LFxuICBiYXN0aW9uU3NtQWdlbnRTc21Bc3NvY2lhdGlvbihzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdTc21BZ2VudCcgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6U1NNOjpBc3NvY2lhdGlvbicgfVxuICAgIH0pO1xuICB9LFxuICBiYXN0aW9uUm9sZShzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnIH1cbiAgICB9KTtcbiAgfSxcbiAgYmFzdGlvbkxvZ0dyb3VwKHN0cFJlc291cmNlTmFtZTogc3RyaW5nLCBsb2dUeXBlOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiBwYXNjYWxDYXNlKGxvZ1R5cGUpIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkxvZ3M6OkxvZ0dyb3VwJyB9XG4gICAgfSk7XG4gIH0sXG4gIGJhc3Rpb25DbG91ZHdhdGNoU3NtRG9jdW1lbnQoKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ0Jhc3Rpb25DbG91ZHdhdGNoQWdlbnQnIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OlNTTTo6RG9jdW1lbnQnIH1cbiAgICB9KTtcbiAgfSxcbiAgc2VydmljZURpc2NvdmVyeUVjc1NlcnZpY2Uoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcsIHNlcnZpY2VUYXJnZXRDb250YWluZXJQb3J0OiBudW1iZXIpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiBgUG9ydCR7c2VydmljZVRhcmdldENvbnRhaW5lclBvcnR9RGlzY292ZXJ5YCB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpTZXJ2aWNlRGlzY292ZXJ5OjpTZXJ2aWNlJyB9XG4gICAgfSk7XG4gIH0sXG4gIHdvcmtsb2FkU2VjdXJpdHlHcm91cChzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFQzI6OlNlY3VyaXR5R3JvdXAnIH1cbiAgICB9KTtcbiAgfSxcbiAgbG9hZEJhbGFuY2VyU2VjdXJpdHlHcm91cChzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdMYicgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpTZWN1cml0eUdyb3VwJyB9XG4gICAgfSk7XG4gIH0sXG4gIHRhcmdldEdyb3VwKHtcbiAgICBsb2FkQmFsYW5jZXJOYW1lLFxuICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICB0YXJnZXRDb250YWluZXJQb3J0LFxuICAgIGJsdWVHcmVlblxuICB9OiB7XG4gICAgc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmc7XG4gICAgbG9hZEJhbGFuY2VyTmFtZTogc3RyaW5nO1xuICAgIHRhcmdldENvbnRhaW5lclBvcnQ/OiBudW1iZXI7XG4gICAgYmx1ZUdyZWVuPzogYm9vbGVhbjtcbiAgfSkge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7XG4gICAgICAgIHR5cGU6IGAke2xvYWRCYWxhbmNlck5hbWV9JHt0YXJnZXRDb250YWluZXJQb3J0ID8gYFRvUG9ydCR7dGFyZ2V0Q29udGFpbmVyUG9ydH1gIDogJyd9JHtibHVlR3JlZW4gPyAnQkcnIDogJyd9YFxuICAgICAgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6RWxhc3RpY0xvYWRCYWxhbmNpbmdWMjo6VGFyZ2V0R3JvdXAnIH1cbiAgICB9KTtcbiAgfSxcbiAgbGFtYmRhUm9sZShzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnIH1cbiAgICB9KTtcbiAgfSxcbiAgZGVmYXVsdExhbWJkYUZ1bmN0aW9uUm9sZSgpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnTGFtYmRhJyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnIH1cbiAgICB9KTtcbiAgfSxcbiAgbGFtYmRhUGVybWlzc2lvbihzdHBSZXNvdXJjZU5hbWU6IHN0cmluZywgZXZlbnRJbmRleDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ0V2ZW50JywgdHlwZUluZGV4OiBldmVudEluZGV4IH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkxhbWJkYTo6UGVybWlzc2lvbicgfVxuICAgIH0pO1xuICB9LFxuICBsYW1iZGFQdWJsaWNVcmxQZXJtaXNzaW9uKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ1B1YmxpY1VybCcgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6TGFtYmRhOjpQZXJtaXNzaW9uJyB9XG4gICAgfSk7XG4gIH0sXG4gIGxhbWJkYUlvdEV2ZW50UGVybWlzc2lvbih3b3JrbG9hZE5hbWU6IHN0cmluZywgZXZlbnRJbmRleDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIHBhc2NhbENhc2UoYCR7d29ya2xvYWROYW1lfS1FdmVudCR7ZXZlbnRJbmRleH0tbGFtYmRhLWlvdEV2ZW50UGVybWlzc2lvbmApO1xuICB9LFxuICBsYW1iZGFUYXJnZXRHcm91cFBlcm1pc3Npb24oc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcsIGxvYWRCYWxhbmNlck5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6IGAke2xvYWRCYWxhbmNlck5hbWV9VGFyZ2V0R3JvdXBgIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkxhbWJkYTo6UGVybWlzc2lvbicgfVxuICAgIH0pO1xuICB9LFxuICBodHRwQXBpKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkFwaUdhdGV3YXlWMjo6QXBpJyB9XG4gICAgfSk7XG4gIH0sXG4gIGh0dHBBcGlMb2dHcm91cChzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpMb2dzOjpMb2dHcm91cCcgfVxuICAgIH0pO1xuICB9LFxuICBodHRwQXBpTGFtYmRhSW50ZWdyYXRpb24oe1xuICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICBzdHBIdHRwQXBpR2F0ZXdheU5hbWVcbiAgfToge1xuICAgIHN0cFJlc291cmNlTmFtZTogc3RyaW5nO1xuICAgIHN0cEh0dHBBcGlHYXRld2F5TmFtZTogc3RyaW5nO1xuICB9KSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogc3RwSHR0cEFwaUdhdGV3YXlOYW1lIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkFwaUdhdGV3YXlWMjo6SW50ZWdyYXRpb24nIH1cbiAgICB9KTtcbiAgfSxcbiAgaHR0cEFwaUNvbnRhaW5lcldvcmtsb2FkSW50ZWdyYXRpb24oe1xuICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICBzdHBIdHRwQXBpR2F0ZXdheU5hbWUsXG4gICAgdGFyZ2V0Q29udGFpbmVyUG9ydFxuICB9OiB7XG4gICAgc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmc7XG4gICAgdGFyZ2V0Q29udGFpbmVyUG9ydDogbnVtYmVyO1xuICAgIHN0cEh0dHBBcGlHYXRld2F5TmFtZTogc3RyaW5nO1xuICB9KSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogYCR7c3RwSHR0cEFwaUdhdGV3YXlOYW1lfVRvUG9ydCR7dGFyZ2V0Q29udGFpbmVyUG9ydH1gIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkFwaUdhdGV3YXlWMjo6SW50ZWdyYXRpb24nIH1cbiAgICB9KTtcbiAgfSxcbiAgaHR0cEFwaUF1dGhvcml6ZXIoeyBtZXRob2QsIHBhdGgsIHN0cFJlc291cmNlTmFtZSB9OiB7IG1ldGhvZDogSHR0cE1ldGhvZDsgcGF0aDogc3RyaW5nOyBzdHBSZXNvdXJjZU5hbWU6IHN0cmluZyB9KSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWU6ICcnLFxuICAgICAgc3BlY2lmaWVyOiB7XG4gICAgICAgIHR5cGU6IGAke3N0cFJlc291cmNlTmFtZX0tJHttZXRob2QgPT09ICcqJyA/ICdBbnknIDogbWV0aG9kfS0ke3BhdGggPT09ICcqJyA/ICdEZWZhdWx0JyA6IHBhdGh9YFxuICAgICAgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6QXBpR2F0ZXdheVYyOjpBdXRob3JpemVyJyB9XG4gICAgfSk7XG4gIH0sXG4gIGh0dHBBcGlSb3V0ZSh7IG1ldGhvZCwgcGF0aCwgc3RwUmVzb3VyY2VOYW1lIH06IHsgbWV0aG9kOiBIdHRwTWV0aG9kOyBwYXRoOiBzdHJpbmc7IHN0cFJlc291cmNlTmFtZTogc3RyaW5nIH0pIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZTogJycsXG4gICAgICBzcGVjaWZpZXI6IHtcbiAgICAgICAgdHlwZTogYCR7c3RwUmVzb3VyY2VOYW1lfS0ke21ldGhvZCA9PT0gJyonID8gJ0FueScgOiBtZXRob2R9LSR7cGF0aCA9PT0gJyonID8gJ0RlZmF1bHQnIDogcGF0aH1gXG4gICAgICB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpBcGlHYXRld2F5VjI6OlJvdXRlJyB9XG4gICAgfSk7XG4gIH0sXG4gIGh0dHBBcGlWcGNMaW5rKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkFwaUdhdGV3YXlWMjo6VnBjTGluaycgfVxuICAgIH0pO1xuICB9LFxuICBodHRwQXBpVnBjTGlua1NlY3VyaXR5R3JvdXAoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnVnBjTGluaycgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpTZWN1cml0eUdyb3VwJyB9XG4gICAgfSk7XG4gIH0sXG4gIGh0dHBBcGlMYW1iZGFQZXJtaXNzaW9uKHtcbiAgICBzdHBSZXNvdXJjZU5hbWVPZkxhbWJkYSxcbiAgICBzdHBSZXNvdXJjZU5hbWVPZkh0dHBBcGlHYXRld2F5XG4gIH06IHtcbiAgICBzdHBSZXNvdXJjZU5hbWVPZkxhbWJkYTogc3RyaW5nO1xuICAgIHN0cFJlc291cmNlTmFtZU9mSHR0cEFwaUdhdGV3YXk6IHN0cmluZztcbiAgfSkge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lOiBzdHBSZXNvdXJjZU5hbWVPZkxhbWJkYSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiBzdHBSZXNvdXJjZU5hbWVPZkh0dHBBcGlHYXRld2F5IH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkxhbWJkYTo6UGVybWlzc2lvbicgfVxuICAgIH0pO1xuICB9LFxuICBodHRwQXBpU3RhZ2Uoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6QXBpR2F0ZXdheVYyOjpTdGFnZScgfVxuICAgIH0pO1xuICB9LFxuICBodHRwQXBpRG9tYWluKGZ1bGx5UXVhbGlmaWVkRG9tYWluTmFtZTogc3RyaW5nKSB7XG4gICAgLy8gd2UgZG8gbm90IGJ1aWxkIGJ1aWxkIHRoZSByZXNvdXJjZSBuYW1lIGNvbnZlbnRpb25hbGx5IHRocm91Z2ggc3RwUmVzb3VyY2VOYW1lXG4gICAgLy8gdGhpcyBpcyBkdWUgdG8gdXBkYXRlIGJlaGF2aW9ycyBvZiBDbG91ZGZvcm1hdGlvblxuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lOiAnJyxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiBnZXRTcGVjaWZpZXJGb3JEb21haW5SZXNvdXJjZShmdWxseVF1YWxpZmllZERvbWFpbk5hbWUpIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkFwaUdhdGV3YXlWMjo6RG9tYWluTmFtZScgfVxuICAgIH0pO1xuICB9LFxuICBodHRwQXBpRGVmYXVsdERvbWFpbihzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpBcGlHYXRld2F5VjI6OkRvbWFpbk5hbWUnIH1cbiAgICB9KTtcbiAgfSxcbiAgaHR0cEFwaURvbWFpbk1hcHBpbmcoZnVsbHlRdWFsaWZpZWREb21haW5OYW1lOiBzdHJpbmcpIHtcbiAgICAvLyB3ZSBkbyBub3QgYnVpbGQgYnVpbGQgdGhlIHJlc291cmNlIG5hbWUgY29udmVudGlvbmFsbHkgdGhyb3VnaCBzdHBSZXNvdXJjZU5hbWVcbiAgICAvLyB0aGlzIGlzIGR1ZSB0byB1cGRhdGUgYmVoYXZpb3JzIG9mIENsb3VkZm9ybWF0aW9uXG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWU6ICcnLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6IGdldFNwZWNpZmllckZvckRvbWFpblJlc291cmNlKGZ1bGx5UXVhbGlmaWVkRG9tYWluTmFtZSkgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6QXBpR2F0ZXdheVYyOjpBcGlNYXBwaW5nJyB9XG4gICAgfSk7XG4gIH0sXG4gIGh0dHBBcGlEZWZhdWx0RG9tYWluTWFwcGluZyhzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpBcGlHYXRld2F5VjI6OkFwaU1hcHBpbmcnIH1cbiAgICB9KTtcbiAgfSxcbiAgbGlzdGVuZXIoZXhwb3N1cmVQb3J0OiBudW1iZXIsIHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogYFBvcnQke2V4cG9zdXJlUG9ydH1gIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkVsYXN0aWNMb2FkQmFsYW5jaW5nVjI6Okxpc3RlbmVyJyB9XG4gICAgfSk7XG4gIH0sXG4gIGxpc3RlbmVyUnVsZShleHBvc3VyZVBvcnQ6IG51bWJlciwgc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcsIHJ1bGVQcmlvcml0eTogbnVtYmVyKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogYFBvcnQke2V4cG9zdXJlUG9ydH1Qcmlvcml0eSR7cnVsZVByaW9yaXR5fWAgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6RWxhc3RpY0xvYWRCYWxhbmNpbmdWMjo6TGlzdGVuZXJSdWxlJyB9XG4gICAgfSk7XG4gIH0sXG4gIGxpc3RlbmVyQ2VydGlmaWNhdGVMaXN0KGV4cG9zdXJlUG9ydDogbnVtYmVyLCBzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6IGBQb3J0JHtleHBvc3VyZVBvcnR9YCB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFbGFzdGljTG9hZEJhbGFuY2luZ1YyOjpMaXN0ZW5lckNlcnRpZmljYXRlJyB9XG4gICAgfSk7XG4gIH0sXG4gIGxvYWRCYWxhbmNlcihzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFbGFzdGljTG9hZEJhbGFuY2luZ1YyOjpMb2FkQmFsYW5jZXInIH1cbiAgICB9KTtcbiAgfSxcbiAgZWNzTG9nR3JvdXAoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcsIGNvbnRhaW5lck5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6IGNvbnRhaW5lck5hbWUgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6TG9nczo6TG9nR3JvdXAnIH1cbiAgICB9KTtcbiAgfSxcbiAgYXV0b1NjYWxpbmdUYXJnZXQoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6QXBwbGljYXRpb25BdXRvU2NhbGluZzo6U2NhbGFibGVUYXJnZXQnIH1cbiAgICB9KTtcbiAgfSxcbiAgZHluYW1vQXV0b1NjYWxpbmdUYXJnZXQoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcsIG1ldHJpYzogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogbWV0cmljIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkFwcGxpY2F0aW9uQXV0b1NjYWxpbmc6OlNjYWxhYmxlVGFyZ2V0JyB9XG4gICAgfSk7XG4gIH0sXG4gIGF1dG9TY2FsaW5nUG9saWN5KHN0cFJlc291cmNlTmFtZTogc3RyaW5nLCBtZXRyaWM6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6IG1ldHJpYyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpBcHBsaWNhdGlvbkF1dG9TY2FsaW5nOjpTY2FsaW5nUG9saWN5JyB9XG4gICAgfSk7XG4gIH0sXG4gIGN1c3RvbVJlc291cmNlUzNFdmVudHMoKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ0V2ZW50cycgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGb3JtYXRpb246OkN1c3RvbVJlc291cmNlJyB9XG4gICAgfSk7XG4gIH0sXG4gIC8vIEBkZXByZWNhdGVkXG4gIC8vIHN0YWNrdGFwZVNlcnZpY2VDdXN0b21SZXNvdXJjZUVkZ2VGdW5jdGlvbnMoKSB7XG4gIC8vICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gIC8vICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ0VkZ2VGdW5jdGlvbnMnIH0sXG4gIC8vICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZScgfVxuICAvLyAgIH0pO1xuICAvLyB9LFxuICBjdXN0b21SZXNvdXJjZVNlbnNpdGl2ZURhdGEoKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ1NlbnNpdGl2ZURhdGEnIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZScgfVxuICAgIH0pO1xuICB9LFxuICBjdXN0b21SZXNvdXJjZUFjY2VwdFZwY1BlZXJpbmdzKCkge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdBY2NlcHRWcGNQZWVyaW5ncycgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGb3JtYXRpb246OkN1c3RvbVJlc291cmNlJyB9XG4gICAgfSk7XG4gIH0sXG4gIGN1c3RvbVJlc291cmNlRGVmYXVsdERvbWFpbkNlcnQoKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ0RlZmF1bHREb21haW5DZXJ0JyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6Q3VzdG9tUmVzb3VyY2UnIH1cbiAgICB9KTtcbiAgfSxcbiAgY3VzdG9tUmVzb3VyY2VFZGdlTGFtYmRhQnVja2V0KCkge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdFZGdlTGFtYmRhQnVja2V0JyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6Q3VzdG9tUmVzb3VyY2UnIH1cbiAgICB9KTtcbiAgfSxcbiAgY3VzdG9tUmVzb3VyY2VFZGdlTGFtYmRhKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ0VkZ2VMYW1iZGEnIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZScgfVxuICAgIH0pO1xuICB9LFxuICBjdXN0b21SZXNvdXJjZURlZmF1bHREb21haW4oc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcsIGNkbj86IGJvb2xlYW4pIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiBgJHtjZG4gPyAnQ2RuJyA6ICcnfURlZmF1bHREb21haW5gIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZScgfVxuICAgIH0pO1xuICB9LFxuICBjdXN0b21SZXNvdXJjZURhdGFiYXNlRGVsZXRpb25Qcm90ZWN0aW9uKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ0RlbGV0aW9uUHJvdGVjdGlvbicgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGb3JtYXRpb246OkN1c3RvbVJlc291cmNlJyB9XG4gICAgfSk7XG4gIH0sXG4gIHVzZXJQb29sKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkNvZ25pdG86OlVzZXJQb29sJyB9XG4gICAgfSk7XG4gIH0sXG4gIHVzZXJQb29sQ2xpZW50KHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkNvZ25pdG86OlVzZXJQb29sQ2xpZW50JyB9XG4gICAgfSk7XG4gIH0sXG4gIHVzZXJQb29sRG9tYWluKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkNvZ25pdG86OlVzZXJQb29sRG9tYWluJyB9XG4gICAgfSk7XG4gIH0sXG4gIGlkZW50aXR5UHJvdmlkZXIoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcsIHR5cGU6IFN0cFVzZXJBdXRoUG9vbFsnaWRlbnRpdHlQcm92aWRlcnMnXVtudW1iZXJdWyd0eXBlJ10pIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkNvZ25pdG86OlVzZXJQb29sSWRlbnRpdHlQcm92aWRlcicgfVxuICAgIH0pO1xuICB9LFxuICBjb2duaXRvTGFtYmRhSG9va1Blcm1pc3Npb24oc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcsIGhvb2tOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiBob29rTmFtZSB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpMYW1iZGE6OlBlcm1pc3Npb24nIH1cbiAgICB9KTtcbiAgfSxcbiAgY29nbml0b1VzZXJQb29sRGV0YWlsc0N1c3RvbVJlc291cmNlKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ1VzZXJQb29sRGV0YWlscycgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGb3JtYXRpb246OkN1c3RvbVJlc291cmNlJyB9XG4gICAgfSk7XG4gIH0sXG4gIHVzZXJQb29sVWlDdXN0b21pemF0aW9uQXR0YWNobWVudChzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpDb2duaXRvOjpVc2VyUG9vbFVJQ3VzdG9taXphdGlvbkF0dGFjaG1lbnQnIH1cbiAgICB9KTtcbiAgfSxcbiAgc2VydmljZURpc2NvdmVyeVByaXZhdGVOYW1lc3BhY2UoKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ0Rpc2NvdmVyeScgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6U2VydmljZURpc2NvdmVyeTo6U2VydmljZScgfVxuICAgIH0pO1xuICB9LFxuICBsYW1iZGFDb2RlRGVwbG95QXBwKCkge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdMYW1iZGFDb2RlRGVwbG95JyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpDb2RlRGVwbG95OjpBcHBsaWNhdGlvbicgfVxuICAgIH0pO1xuICB9LFxuICBzaGFyZWRDaHVua0xheWVyKGxheWVyTnVtYmVyOiBudW1iZXIpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiBgU2hhcmVkQ2h1bmtMYXllciR7bGF5ZXJOdW1iZXJ9YCB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpMYW1iZGE6OkxheWVyVmVyc2lvbicgfVxuICAgIH0pO1xuICB9LFxuICBlY3NDb2RlRGVwbG95QXBwKCkge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdFQ1NDb2RlRGVwbG95JyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpDb2RlRGVwbG95OjpBcHBsaWNhdGlvbicgfVxuICAgIH0pO1xuICB9LFxuICBzdGFja0J1ZGdldChzdGFja05hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6IHBhc2NhbENhc2Uoc3RhY2tOYW1lKS5yZXBsYWNlQWxsKCdfJywgJycpIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkJ1ZGdldHM6OkJ1ZGdldCcgfVxuICAgIH0pO1xuICB9LFxuICB1cHN0YXNoUmVkaXNEYXRhYmFzZShzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnVXBzdGFzaDo6RGF0YWJhc2VzVjE6OkRhdGFiYXNlJyB9XG4gICAgfSk7XG4gIH0sXG4gIHVwc3Rhc2hDcmVkZW50aWFsc1Byb3ZpZGVyKCkge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdVcHN0YXNoQ3JlZGVudGlhbHNQcm92aWRlcicgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGb3JtYXRpb246OkN1c3RvbVJlc291cmNlJyB9XG4gICAgfSk7XG4gIH0sXG4gIGNsb3Vkd2F0Y2hBbGFybShzdGFja3RhcGVBbGFybU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lOiBzdGFja3RhcGVBbGFybU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkV2F0Y2g6OkFsYXJtJyB9XG4gICAgfSkucmVwbGFjZUFsbCgnXycsICcnKTtcbiAgfSxcbiAgY2xvdWR3YXRjaEFsYXJtRXZlbnRCdXNOb3RpZmljYXRpb25SdWxlKHN0YWNrdGFwZUFsYXJtTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWU6IHN0YWNrdGFwZUFsYXJtTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnTm90aWZpY2F0aW9uJyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFdmVudHM6OlJ1bGUnIH1cbiAgICB9KS5yZXBsYWNlQWxsKCdfJywgJycpO1xuICB9LFxuICBjbG91ZHdhdGNoQWxhcm1FdmVudEJ1c05vdGlmaWNhdGlvblJ1bGVMYW1iZGFQZXJtaXNzaW9uKHN0YWNrdGFwZUFsYXJtTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWU6IHN0YWNrdGFwZUFsYXJtTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnTm90aWZpY2F0aW9uJyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpMYW1iZGE6OlBlcm1pc3Npb24nIH1cbiAgICB9KS5yZXBsYWNlQWxsKCdfJywgJycpO1xuICB9LFxuICBzcXNRdWV1ZShzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpTUVM6OlF1ZXVlJyB9XG4gICAgfSkucmVwbGFjZUFsbCgnXycsICcnKTtcbiAgfSxcbiAgc3FzUXVldWVQb2xpY3koc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6U1FTOjpRdWV1ZVBvbGljeScgfVxuICAgIH0pO1xuICB9LFxuICBzbnNUb3BpYyhzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpTTlM6OlRvcGljJyB9XG4gICAgfSkucmVwbGFjZUFsbCgnXycsICcnKTtcbiAgfSxcbiAga2luZXNpc1N0cmVhbShzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpLaW5lc2lzOjpTdHJlYW0nIH1cbiAgICB9KTtcbiAgfSxcbiAgd2ViQXBwRmlyZXdhbGxDdXN0b21SZXNvdXJjZShzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdXZWJBcHBGaXJld2FsbCcgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGb3JtYXRpb246OkN1c3RvbVJlc291cmNlJyB9XG4gICAgfSk7XG4gIH0sXG4gIHdlYkFwcEZpcmV3YWxsQXNzb2NpYXRpb24oc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6V0FGdjI6OldlYkFDTEFzc29jaWF0aW9uJyB9XG4gICAgfSk7XG4gIH0sXG4gIG9wZW5TZWFyY2hEb21haW4oc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6T3BlblNlYXJjaFNlcnZpY2U6OkRvbWFpbicgfVxuICAgIH0pO1xuICB9LFxuICBvcGVuU2VhcmNoQ3VzdG9tUmVzb3VyY2Uoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnT3BlblNlYXJjaCcgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGb3JtYXRpb246OkN1c3RvbVJlc291cmNlJyB9XG4gICAgfSk7XG4gIH0sXG4gIG9wZW5TZWFyY2hTZWN1cml0eUdyb3VwKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkVDMjo6U2VjdXJpdHlHcm91cCcgfVxuICAgIH0pO1xuICB9LFxuICBsb2dGb3J3YXJkaW5nRmlyZWhvc2VUb1MzUm9sZShzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdMb2dGb3J3YXJkaW5nUzMnIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6Um9sZScgfVxuICAgIH0pO1xuICB9LFxuICBsb2dGb3J3YXJkaW5nQ3dUb0ZpcmVob3NlUm9sZSh7IGxvZ0dyb3VwQ2ZMb2dpY2FsTmFtZSB9OiB7IGxvZ0dyb3VwQ2ZMb2dpY2FsTmFtZTogc3RyaW5nIH0pIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZTogbG9nR3JvdXBDZkxvZ2ljYWxOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdDd1RvRmlyZWhvc2UnIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6Um9sZScgfVxuICAgIH0pO1xuICB9LFxuICBsb2dGb3J3YXJkaW5nRmFpbGVkRXZlbnRzQnVja2V0KHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ0xvZ0ZvcndhcmRpbmdGYWlsZWRSZWNvcmRzJyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpTMzo6QnVja2V0JyB9XG4gICAgfSk7XG4gIH0sXG4gIGxvZ0ZvcndhcmRpbmdGaXJlaG9zZURlbGl2ZXJ5U3RyZWFtKHsgbG9nR3JvdXBDZkxvZ2ljYWxOYW1lIH06IHsgbG9nR3JvdXBDZkxvZ2ljYWxOYW1lOiBzdHJpbmcgfSkge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lOiBsb2dHcm91cENmTG9naWNhbE5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OktpbmVzaXNGaXJlaG9zZTo6RGVsaXZlcnlTdHJlYW0nIH1cbiAgICB9KTtcbiAgfSxcbiAgbG9nRm9yd2FyZGluZ1N1YnNjcmlwdGlvbkZpbHRlcih7IGxvZ0dyb3VwQ2ZMb2dpY2FsTmFtZSB9OiB7IGxvZ0dyb3VwQ2ZMb2dpY2FsTmFtZTogc3RyaW5nIH0pIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZTogbG9nR3JvdXBDZkxvZ2ljYWxOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpMb2dzOjpTdWJzY3JpcHRpb25GaWx0ZXInIH1cbiAgICB9KTtcbiAgfVxufTtcblxuY29uc3QgYnVpbGRDZkxvZ2ljYWxOYW1lID0gKHtcbiAgc3RwUmVzb3VyY2VOYW1lLFxuICBzcGVjaWZpZXIsXG4gIHN1ZmZpeFxufToge1xuICBzdHBSZXNvdXJjZU5hbWU/OiBzdHJpbmc7XG4gIHNwZWNpZmllcj86IHsgdHlwZTogc3RyaW5nOyB0eXBlSW5kZXg/OiBudW1iZXI7IHN1YnR5cGU/OiBzdHJpbmcgfTtcbiAgc3VmZml4OiB7XG4gICAgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6IENsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlIHwgU3VwcG9ydGVkUHJpdmF0ZUNmUmVzb3VyY2VUeXBlO1xuICAgIGluZGV4PzogbnVtYmVyO1xuICB9O1xufSkgPT4ge1xuICBjb25zdCBzcGxpdHRlZFR5cGUgPSBzdWZmaXguY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGUuc3BsaXQoJzonKTtcbiAgY29uc3QgcmVzb2x2ZWRQYXJlbnROYW1lID0gc3RwUmVzb3VyY2VOYW1lIHx8ICdTdHAnO1xuICBjb25zdCByZXNvbHZlZFNwZWNpZmllciA9IHNwZWNpZmllclxuICAgID8gYCR7c3BlY2lmaWVyLnR5cGV9JHtzcGVjaWZpZXIudHlwZUluZGV4ICE9PSB1bmRlZmluZWQgPyBzcGVjaWZpZXIudHlwZUluZGV4IDogJyd9JHtcbiAgICAgICAgc3BlY2lmaWVyLnN1YnR5cGUgIT09IHVuZGVmaW5lZCA/IGAtJHtzcGVjaWZpZXIuc3VidHlwZX1gIDogJydcbiAgICAgIH1gXG4gICAgOiAnJztcbiAgY29uc3QgcmVzb2x2ZWRTdWZmaXggPSBgJHtzcGxpdHRlZFR5cGVbc3BsaXR0ZWRUeXBlLmxlbmd0aCAtIDFdfSR7c3VmZml4LmluZGV4ICE9PSB1bmRlZmluZWQgPyBzdWZmaXguaW5kZXggOiAnJ31gO1xuICByZXR1cm4gcGFzY2FsQ2FzZShgJHtyZXNvbHZlZFBhcmVudE5hbWV9LSR7cmVzb2x2ZWRTcGVjaWZpZXJ9LSR7cmVzb2x2ZWRTdWZmaXh9YCk7XG59O1xuXG5jb25zdCBnZXRTcGVjaWZpZXJGb3JEb21haW5SZXNvdXJjZSA9IChmdWxseVF1YWxpZmllZERvbWFpbk5hbWUpID0+IHtcbiAgaWYgKHBhc2NhbENhc2UoZnVsbHlRdWFsaWZpZWREb21haW5OYW1lKS5yZXBsYWNlKCdfJywgJycpLmxlbmd0aCA8IDg1KSB7XG4gICAgcmV0dXJuIHBhc2NhbENhc2UoZnVsbHlRdWFsaWZpZWREb21haW5OYW1lKS5yZXBsYWNlKCdfJywgJycpO1xuICB9XG4gIGNvbnN0IHNwbGl0dGVkRG9tYWluID0gZnVsbHlRdWFsaWZpZWREb21haW5OYW1lXG4gICAgLnNwbGl0KCcuJylcbiAgICAubWFwKChzdWJkb21haW4pID0+IHN1YmRvbWFpbi5zcGxpdCgnLScpKVxuICAgIC5mbGF0KCk7XG4gIGNvbnN0IG1heENoYXJhY3RlcnNQZXJXb3JkID0gTWF0aC5mbG9vcig4NSAvIHNwbGl0dGVkRG9tYWluLmxlbmd0aCk7XG4gIHJldHVybiBzcGxpdHRlZERvbWFpbi5tYXAoKHdvcmQpID0+IHBhc2NhbENhc2Uod29yZC5zbGljZSgwLCBtYXhDaGFyYWN0ZXJzUGVyV29yZCkpLnJlcGxhY2UoJ18nLCAnJykpLmpvaW4oJycpO1xufTtcbiIsCiAgICAiaW1wb3J0IHsgY2ZMb2dpY2FsTmFtZXMgfSBmcm9tICcuLi8uLi8uLi8uLi9zaGFyZWQvbmFtaW5nL2xvZ2ljYWwtbmFtZXMnO1xuXG5leHBvcnQgY29uc3QgQ0hJTERfUkVTT1VSQ0VTOiBSZWNvcmQ8XG4gIFN0cFJlc291cmNlVHlwZSxcbiAgQXJyYXk8eyBsb2dpY2FsTmFtZTogKC4uLmFyZ3M6IGFueVtdKSA9PiBzdHJpbmc7IHJlc291cmNlVHlwZTogc3RyaW5nOyBjb25kaXRpb25hbD86IHRydWU7IHVucmVzb2x2YWJsZT86IHRydWUgfT5cbj4gPSB7XG4gIC8vID09PT09IEJVQ0tFVCA9PT09PVxuICBidWNrZXQ6IFtcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5idWNrZXQsIHJlc291cmNlVHlwZTogJ0FXUzo6UzM6OkJ1Y2tldCcgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5idWNrZXRQb2xpY3ksIHJlc291cmNlVHlwZTogJ0FXUzo6UzM6OkJ1Y2tldFBvbGljeScsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6Q2xvdWRGcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udEN1c3RvbUNhY2hlUG9saWN5LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpDYWNoZVBvbGljeScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnREZWZhdWx0Q2FjaGVQb2xpY3ksXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6OkNhY2hlUG9saWN5JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udEN1c3RvbU9yaWdpblJlcXVlc3RQb2xpY3ksXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6Ok9yaWdpblJlcXVlc3RQb2xpY3knLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250RGVmYXVsdE9yaWdpblJlcXVlc3RQb2xpY3ksXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6Ok9yaWdpblJlcXVlc3RQb2xpY3knLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250RGlzdHJpYnV0aW9uLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpEaXN0cmlidXRpb24nLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jdXN0b21SZXNvdXJjZURlZmF1bHREb21haW4sXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZG5zUmVjb3JkLCByZXNvdXJjZVR5cGU6ICdBV1M6OlJvdXRlNTM6OlJlY29yZFNldCcsIGNvbmRpdGlvbmFsOiB0cnVlIH1cbiAgXSxcblxuICAvLyA9PT09PSBGVU5DVElPTiA9PT09PVxuICBmdW5jdGlvbjogW1xuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmxhbWJkYVJvbGUsIHJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpSb2xlJyB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmxhbWJkYSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpMYW1iZGE6OkZ1bmN0aW9uJyB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVmc0FjY2Vzc1BvaW50LCByZXNvdXJjZVR5cGU6ICdBV1M6OkVGUzo6QWNjZXNzUG9pbnQnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLndvcmtsb2FkU2VjdXJpdHlHcm91cCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpFQzI6OlNlY3VyaXR5R3JvdXAnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmxhbWJkYVVybCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpMYW1iZGE6OlVybCcsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmxhbWJkYVB1YmxpY1VybFBlcm1pc3Npb24sXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkxhbWJkYTo6UGVybWlzc2lvbicsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMubGFtYmRhTG9nR3JvdXAsIHJlc291cmNlVHlwZTogJ0FXUzo6TG9nczo6TG9nR3JvdXAnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5sYW1iZGFJbnZva2VDb25maWcsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkxhbWJkYTo6RXZlbnRJbnZva2VDb25maWcnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5sYW1iZGFDb2RlRGVwbG95QXBwLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDb2RlRGVwbG95OjpBcHBsaWNhdGlvbicsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmxhbWJkYVZlcnNpb25QdWJsaXNoZXJDdXN0b21SZXNvdXJjZSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGb3JtYXRpb246OkN1c3RvbVJlc291cmNlJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY29kZURlcGxveURlcGxveW1lbnRHcm91cCxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q29kZURlcGxveTo6RGVwbG95bWVudEdyb3VwJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5sYW1iZGFTdHBBbGlhcywgcmVzb3VyY2VUeXBlOiAnQVdTOjpMYW1iZGE6OkFsaWFzJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpDbG91ZEZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHknLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250Q3VzdG9tQ2FjaGVQb2xpY3ksXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6OkNhY2hlUG9saWN5JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlLFxuICAgICAgdW5yZXNvbHZhYmxlOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udERlZmF1bHRDYWNoZVBvbGljeSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6Q2FjaGVQb2xpY3knLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250Q3VzdG9tT3JpZ2luUmVxdWVzdFBvbGljeSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6T3JpZ2luUmVxdWVzdFBvbGljeScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZSxcbiAgICAgIHVucmVzb2x2YWJsZTogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnREZWZhdWx0T3JpZ2luUmVxdWVzdFBvbGljeSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6T3JpZ2luUmVxdWVzdFBvbGljeScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnREaXN0cmlidXRpb24sXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6OkRpc3RyaWJ1dGlvbicsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZSxcbiAgICAgIHVucmVzb2x2YWJsZTogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmN1c3RvbVJlc291cmNlRGVmYXVsdERvbWFpbixcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGb3JtYXRpb246OkN1c3RvbVJlc291cmNlJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5kbnNSZWNvcmQsIHJlc291cmNlVHlwZTogJ0FXUzo6Um91dGU1Mzo6UmVjb3JkU2V0JywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMubGFtYmRhUGVybWlzc2lvbixcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6TGFtYmRhOjpQZXJtaXNzaW9uJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlLFxuICAgICAgdW5yZXNvbHZhYmxlOiB0cnVlXG4gICAgfVxuICBdLFxuXG4gIC8vID09PT09IFJFTEFUSU9OQUwgREFUQUJBU0UgPT09PT1cbiAgJ3JlbGF0aW9uYWwtZGF0YWJhc2UnOiBbXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZGJTdWJuZXRHcm91cCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpSRFM6OkRCU3VibmV0R3JvdXAnIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZGJTZWN1cml0eUdyb3VwLCByZXNvdXJjZVR5cGU6ICdBV1M6OkVDMjo6U2VjdXJpdHlHcm91cCcgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY3VzdG9tUmVzb3VyY2VEYXRhYmFzZURlbGV0aW9uUHJvdGVjdGlvbixcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGb3JtYXRpb246OkN1c3RvbVJlc291cmNlJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5hdXJvcmFEYkNsdXN0ZXIsIHJlc291cmNlVHlwZTogJ0FXUzo6UkRTOjpEQkNsdXN0ZXInLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5hdXJvcmFEYkNsdXN0ZXJQYXJhbWV0ZXJHcm91cCxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6UkRTOjpEQkNsdXN0ZXJQYXJhbWV0ZXJHcm91cCcsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmF1cm9yYURiQ2x1c3RlckxvZ0dyb3VwLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpMb2dzOjpMb2dHcm91cCcsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZSxcbiAgICAgIHVucmVzb2x2YWJsZTogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmF1cm9yYURiSW5zdGFuY2UsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OlJEUzo6REJJbnN0YW5jZScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZSxcbiAgICAgIHVucmVzb2x2YWJsZTogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmF1cm9yYURiSW5zdGFuY2VQYXJhbWV0ZXJHcm91cCxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6UkRTOjpEQlBhcmFtZXRlckdyb3VwJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5kYkluc3RhbmNlLCByZXNvdXJjZVR5cGU6ICdBV1M6OlJEUzo6REJJbnN0YW5jZScsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmRiSW5zdGFuY2VMb2dHcm91cCxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6TG9nczo6TG9nR3JvdXAnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWUsXG4gICAgICB1bnJlc29sdmFibGU6IHRydWVcbiAgICB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmRiT3B0aW9uR3JvdXAsIHJlc291cmNlVHlwZTogJ0FXUzo6UkRTOjpPcHRpb25Hcm91cCcsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmRiSW5zdGFuY2VQYXJhbWV0ZXJHcm91cCxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6UkRTOjpEQlBhcmFtZXRlckdyb3VwJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZGJSZXBsaWNhLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpSRFM6OkRCSW5zdGFuY2UnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWUsXG4gICAgICB1bnJlc29sdmFibGU6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5kYlJlcGxpY2FMb2dHcm91cCxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6TG9nczo6TG9nR3JvdXAnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWUsXG4gICAgICB1bnJlc29sdmFibGU6IHRydWVcbiAgICB9XG4gIF0sXG5cbiAgLy8gPT09PT0gRFlOQU1PIERCIFRBQkxFID09PT09XG4gICdkeW5hbW8tZGItdGFibGUnOiBbeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZHluYW1vR2xvYmFsVGFibGUsIHJlc291cmNlVHlwZTogJ0FXUzo6RHluYW1vREI6Okdsb2JhbFRhYmxlJyB9XSxcblxuICAvLyA9PT09PSBIVFRQIEFQSSBHQVRFV0FZID09PT09XG4gICdodHRwLWFwaS1nYXRld2F5JzogW1xuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmh0dHBBcGksIHJlc291cmNlVHlwZTogJ0FXUzo6QXBpR2F0ZXdheVYyOjpBcGknIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuaHR0cEFwaVN0YWdlLCByZXNvdXJjZVR5cGU6ICdBV1M6OkFwaUdhdGV3YXlWMjo6U3RhZ2UnIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuaHR0cEFwaUxvZ0dyb3VwLCByZXNvdXJjZVR5cGU6ICdBV1M6OkxvZ3M6OkxvZ0dyb3VwJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuaHR0cEFwaVZwY0xpbmtTZWN1cml0eUdyb3VwLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpFQzI6OlNlY3VyaXR5R3JvdXAnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmh0dHBBcGlWcGNMaW5rLCByZXNvdXJjZVR5cGU6ICdBV1M6OkFwaUdhdGV3YXlWMjo6VnBjTGluaycsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuaHR0cEFwaURvbWFpbiwgcmVzb3VyY2VUeXBlOiAnQVdTOjpBcGlHYXRld2F5VjI6OkRvbWFpbk5hbWUnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5odHRwQXBpRG9tYWluTWFwcGluZyxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6QXBpR2F0ZXdheVYyOjpBcGlNYXBwaW5nJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuaHR0cEFwaURlZmF1bHREb21haW4sXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkFwaUdhdGV3YXlWMjo6RG9tYWluTmFtZScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmh0dHBBcGlEZWZhdWx0RG9tYWluTWFwcGluZyxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6QXBpR2F0ZXdheVYyOjpBcGlNYXBwaW5nJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY3VzdG9tUmVzb3VyY2VEZWZhdWx0RG9tYWluLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6Q3VzdG9tUmVzb3VyY2UnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmRuc1JlY29yZCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpSb3V0ZTUzOjpSZWNvcmRTZXQnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHksXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6OkNsb3VkRnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnRDdXN0b21DYWNoZVBvbGljeSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6Q2FjaGVQb2xpY3knLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250RGVmYXVsdENhY2hlUG9saWN5LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpDYWNoZVBvbGljeScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnRDdXN0b21PcmlnaW5SZXF1ZXN0UG9saWN5LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpPcmlnaW5SZXF1ZXN0UG9saWN5JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udERlZmF1bHRPcmlnaW5SZXF1ZXN0UG9saWN5LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpPcmlnaW5SZXF1ZXN0UG9saWN5JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udERpc3RyaWJ1dGlvbixcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6RGlzdHJpYnV0aW9uJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfVxuICBdLFxuXG4gIC8vID09PT09IEJBVENIIEpPQiA9PT09PVxuICAnYmF0Y2gtam9iJzogW1xuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmJhdGNoU2VydmljZVJvbGUsIHJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpSb2xlJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5iYXRjaFNwb3RGbGVldFJvbGUsIHJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpSb2xlJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5iYXRjaEluc3RhbmNlUm9sZSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmJhdGNoSW5zdGFuY2VQcm9maWxlLCByZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6SW5zdGFuY2VQcm9maWxlJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5iYXRjaFN0YXRlTWFjaGluZUV4ZWN1dGlvblJvbGUsIHJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpSb2xlJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYmF0Y2hJbnN0YW5jZUxhdW5jaFRlbXBsYXRlLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpFQzI6OkxhdW5jaFRlbXBsYXRlJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYmF0Y2hJbnN0YW5jZURlZmF1bHRTZWN1cml0eUdyb3VwLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpFQzI6OlNlY3VyaXR5R3JvdXAnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5iYXRjaENvbXB1dGVFbnZpcm9ubWVudCxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6QmF0Y2g6OkNvbXB1dGVFbnZpcm9ubWVudCcsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYmF0Y2hKb2JRdWV1ZSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpCYXRjaDo6Sm9iUXVldWUnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmJhdGNoSm9iRGVmaW5pdGlvbiwgcmVzb3VyY2VUeXBlOiAnQVdTOjpCYXRjaDo6Sm9iRGVmaW5pdGlvbicgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5iYXRjaFN0YXRlTWFjaGluZSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpTdGVwRnVuY3Rpb25zOjpTdGF0ZU1hY2hpbmUnIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYmF0Y2hKb2JMb2dHcm91cCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpMb2dzOjpMb2dHcm91cCcsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYmF0Y2hKb2JFeGVjdXRpb25Sb2xlLCByZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6Um9sZScgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYXRsYXNNb25nb1VzZXJBc3NvY2lhdGVkV2l0aFJvbGUsXG4gICAgICByZXNvdXJjZVR5cGU6ICdNb25nb0RCOjpTdHBBdGxhc1YxOjpEYXRhYmFzZVVzZXInLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9XG4gIF0sXG5cbiAgLy8gPT09PT0gRVZFTlQgQlVTID09PT09XG4gICdldmVudC1idXMnOiBbXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZXZlbnRCdXMsIHJlc291cmNlVHlwZTogJ0FXUzo6RXZlbnRzOjpFdmVudEJ1cycgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5ldmVudEJ1c0FyY2hpdmUsIHJlc291cmNlVHlwZTogJ0FXUzo6RXZlbnRzOjpBcmNoaXZlJywgY29uZGl0aW9uYWw6IHRydWUgfVxuICBdLFxuXG4gIC8vID09PT09IFNUQVRFIE1BQ0hJTkUgPT09PT1cbiAgJ3N0YXRlLW1hY2hpbmUnOiBbXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZ2xvYmFsU3RhdGVNYWNoaW5lc1JvbGUsIHJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpSb2xlJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5zdGF0ZU1hY2hpbmUsIHJlc291cmNlVHlwZTogJ0FXUzo6U3RlcEZ1bmN0aW9uczo6U3RhdGVNYWNoaW5lJyB9XG4gIF0sXG5cbiAgLy8gPT09PT0gUkVESVMgQ0xVU1RFUiA9PT09PVxuICAncmVkaXMtY2x1c3Rlcic6IFtcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5yZWRpc1BhcmFtZXRlckdyb3VwLCByZXNvdXJjZVR5cGU6ICdBV1M6OkVsYXN0aUNhY2hlOjpQYXJhbWV0ZXJHcm91cCcgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5yZWRpc1N1Ym5ldEdyb3VwLCByZXNvdXJjZVR5cGU6ICdBV1M6OkVsYXN0aUNhY2hlOjpTdWJuZXRHcm91cCcgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5yZWRpc1NlY3VyaXR5R3JvdXAsIHJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpTZWN1cml0eUdyb3VwJyB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLnJlZGlzTG9nR3JvdXAsIHJlc291cmNlVHlwZTogJ0FXUzo6TG9nczo6TG9nR3JvdXAnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLnJlZGlzUmVwbGljYXRpb25Hcm91cCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpFbGFzdGlDYWNoZTo6UmVwbGljYXRpb25Hcm91cCcgfVxuICBdLFxuXG4gIC8vID09PT09IE1PTkdPIERCIEFUTEFTIENMVVNURVIgPT09PT1cbiAgJ21vbmdvLWRiLWF0bGFzLWNsdXN0ZXInOiBbXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmF0bGFzTW9uZ29DcmVkZW50aWFsc1Byb3ZpZGVyLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6Q3VzdG9tUmVzb3VyY2UnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmF0bGFzTW9uZ29Qcm9qZWN0LCByZXNvdXJjZVR5cGU6ICdNb25nb0RCOjpTdHBBdGxhc1YxOjpQcm9qZWN0JywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYXRsYXNNb25nb1Byb2plY3RJcEFjY2Vzc0xpc3QsXG4gICAgICByZXNvdXJjZVR5cGU6ICdNb25nb0RCOjpTdHBBdGxhc1YxOjpQcm9qZWN0SXBBY2Nlc3NMaXN0JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYXRsYXNNb25nb1Byb2plY3RWcGNOZXR3b3JrQ29udGFpbmVyLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnTW9uZ29EQjo6U3RwQXRsYXNWMTo6TmV0d29ya0NvbnRhaW5lcicsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmF0bGFzTW9uZ29Qcm9qZWN0VnBjTmV0d29ya1BlZXJpbmcsXG4gICAgICByZXNvdXJjZVR5cGU6ICdNb25nb0RCOjpTdHBBdGxhc1YxOjpOZXR3b3JrUGVlcmluZycsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYXRsYXNNb25nb1ZwY1JvdXRlLCByZXNvdXJjZVR5cGU6ICdBV1M6OkVDMjo6Um91dGUnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmF0bGFzTW9uZ29DbHVzdGVyLCByZXNvdXJjZVR5cGU6ICdNb25nb0RCOjpTdHBBdGxhc1YxOjpDbHVzdGVyJyB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5hdGxhc01vbmdvQ2x1c3Rlck1hc3RlclVzZXIsXG4gICAgICByZXNvdXJjZVR5cGU6ICdNb25nb0RCOjpTdHBBdGxhc1YxOjpEYXRhYmFzZVVzZXInLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9XG4gIF0sXG5cbiAgLy8gPT09PT0gVVNFUiBBVVRIIFBPT0wgPT09PT1cbiAgJ3VzZXItYXV0aC1wb29sJzogW1xuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLnVzZXJQb29sLCByZXNvdXJjZVR5cGU6ICdBV1M6OkNvZ25pdG86OlVzZXJQb29sJyB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLnNuc1JvbGVTZW5kU21zRnJvbUNvZ25pdG8sIHJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpSb2xlJyB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLnVzZXJQb29sQ2xpZW50LCByZXNvdXJjZVR5cGU6ICdBV1M6OkNvZ25pdG86OlVzZXJQb29sQ2xpZW50JyB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLnVzZXJQb29sRG9tYWluLCByZXNvdXJjZVR5cGU6ICdBV1M6OkNvZ25pdG86OlVzZXJQb29sRG9tYWluJyB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jb2duaXRvVXNlclBvb2xEZXRhaWxzQ3VzdG9tUmVzb3VyY2UsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZSdcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5pZGVudGl0eVByb3ZpZGVyLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDb2duaXRvOjpVc2VyUG9vbElkZW50aXR5UHJvdmlkZXInLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jb2duaXRvTGFtYmRhSG9va1Blcm1pc3Npb24sXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkxhbWJkYTo6UGVybWlzc2lvbicsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLnVzZXJQb29sVWlDdXN0b21pemF0aW9uQXR0YWNobWVudCxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q29nbml0bzo6VXNlclBvb2xVSUN1c3RvbWl6YXRpb25BdHRhY2htZW50JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMud2ViQXBwRmlyZXdhbGxBc3NvY2lhdGlvbixcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6V0FGdjI6OldlYkFDTEFzc29jaWF0aW9uJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfVxuICBdLFxuXG4gIC8vID09PT09IFVQU1RBU0ggUkVESVMgPT09PT1cbiAgJ3Vwc3Rhc2gtcmVkaXMnOiBbXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLnVwc3Rhc2hDcmVkZW50aWFsc1Byb3ZpZGVyLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6Q3VzdG9tUmVzb3VyY2UnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLnVwc3Rhc2hSZWRpc0RhdGFiYXNlLCByZXNvdXJjZVR5cGU6ICdVcHN0YXNoOjpSZWRpczo6RGF0YWJhc2UnIH1cbiAgXSxcblxuICAvLyA9PT09PSBBUFBMSUNBVElPTiBMT0FEIEJBTEFOQ0VSID09PT09XG4gICdhcHBsaWNhdGlvbi1sb2FkLWJhbGFuY2VyJzogW1xuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmxvYWRCYWxhbmNlciwgcmVzb3VyY2VUeXBlOiAnQVdTOjpFbGFzdGljTG9hZEJhbGFuY2luZ1YyOjpMb2FkQmFsYW5jZXInIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMubG9hZEJhbGFuY2VyU2VjdXJpdHlHcm91cCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpFQzI6OlNlY3VyaXR5R3JvdXAnIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLndlYkFwcEZpcmV3YWxsQXNzb2NpYXRpb24sXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OldBRnYyOjpXZWJBQ0xBc3NvY2lhdGlvbicsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMubGlzdGVuZXIsIHJlc291cmNlVHlwZTogJ0FXUzo6RWxhc3RpY0xvYWRCYWxhbmNpbmdWMjo6TGlzdGVuZXInLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jdXN0b21SZXNvdXJjZURlZmF1bHREb21haW4sXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZG5zUmVjb3JkLCByZXNvdXJjZVR5cGU6ICdBV1M6OlJvdXRlNTM6OlJlY29yZFNldCcsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6Q2xvdWRGcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udEN1c3RvbUNhY2hlUG9saWN5LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpDYWNoZVBvbGljeScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnREZWZhdWx0Q2FjaGVQb2xpY3ksXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6OkNhY2hlUG9saWN5JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udEN1c3RvbU9yaWdpblJlcXVlc3RQb2xpY3ksXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6Ok9yaWdpblJlcXVlc3RQb2xpY3knLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250RGVmYXVsdE9yaWdpblJlcXVlc3RQb2xpY3ksXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6Ok9yaWdpblJlcXVlc3RQb2xpY3knLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250RGlzdHJpYnV0aW9uLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpEaXN0cmlidXRpb24nLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9XG4gIF0sXG5cbiAgLy8gPT09PT0gTkVUV09SSyBMT0FEIEJBTEFOQ0VSID09PT09XG4gICduZXR3b3JrLWxvYWQtYmFsYW5jZXInOiBbXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMubG9hZEJhbGFuY2VyLCByZXNvdXJjZVR5cGU6ICdBV1M6OkVsYXN0aWNMb2FkQmFsYW5jaW5nVjI6OkxvYWRCYWxhbmNlcicgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5sb2FkQmFsYW5jZXJTZWN1cml0eUdyb3VwLCByZXNvdXJjZVR5cGU6ICdBV1M6OkVDMjo6U2VjdXJpdHlHcm91cCcgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5saXN0ZW5lciwgcmVzb3VyY2VUeXBlOiAnQVdTOjpFbGFzdGljTG9hZEJhbGFuY2luZ1YyOjpMaXN0ZW5lcicsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmN1c3RvbVJlc291cmNlRGVmYXVsdERvbWFpbixcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGb3JtYXRpb246OkN1c3RvbVJlc291cmNlJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5kbnNSZWNvcmQsIHJlc291cmNlVHlwZTogJ0FXUzo6Um91dGU1Mzo6UmVjb3JkU2V0JywgY29uZGl0aW9uYWw6IHRydWUgfVxuICBdLFxuXG4gIC8vID09PT09IEhPU1RJTkcgQlVDS0VUID09PT09XG4gIC8vIEhvc3RpbmcgYnVja2V0IGRlbGVnYXRlcyB0byBhIGJ1Y2tldCByZXNvdXJjZSwgc28gaXQgaW5jbHVkZXMgYWxsIGJ1Y2tldCBjaGlsZCByZXNvdXJjZXNcbiAgJ2hvc3RpbmctYnVja2V0JzogW1xuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmJ1Y2tldCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpTMzo6QnVja2V0JyB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmJ1Y2tldFBvbGljeSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpTMzo6QnVja2V0UG9saWN5JywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpDbG91ZEZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHknLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250Q3VzdG9tQ2FjaGVQb2xpY3ksXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6OkNhY2hlUG9saWN5JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udERlZmF1bHRDYWNoZVBvbGljeSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6Q2FjaGVQb2xpY3knLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250Q3VzdG9tT3JpZ2luUmVxdWVzdFBvbGljeSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6T3JpZ2luUmVxdWVzdFBvbGljeScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnREZWZhdWx0T3JpZ2luUmVxdWVzdFBvbGljeSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6T3JpZ2luUmVxdWVzdFBvbGljeScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnREaXN0cmlidXRpb24sXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6OkRpc3RyaWJ1dGlvbicsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmN1c3RvbVJlc291cmNlRGVmYXVsdERvbWFpbixcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGb3JtYXRpb246OkN1c3RvbVJlc291cmNlJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5kbnNSZWNvcmQsIHJlc291cmNlVHlwZTogJ0FXUzo6Um91dGU1Mzo6UmVjb3JkU2V0JywgY29uZGl0aW9uYWw6IHRydWUgfVxuICBdLFxuXG4gIC8vID09PT09IFdFQiBBUFAgRklSRVdBTEwgPT09PT1cbiAgJ3dlYi1hcHAtZmlyZXdhbGwnOiBbXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMud2ViQXBwRmlyZXdhbGxDdXN0b21SZXNvdXJjZSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6Q3VzdG9tUmVzb3VyY2UnIH1cbiAgXSxcblxuICAvLyA9PT09PSBPUEVOIFNFQVJDSCBET01BSU4gPT09PT1cbiAgJ29wZW4tc2VhcmNoLWRvbWFpbic6IFtcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5vcGVuU2VhcmNoRG9tYWluLCByZXNvdXJjZVR5cGU6ICdBV1M6Ok9wZW5TZWFyY2hTZXJ2aWNlOjpEb21haW4nIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMub3BlblNlYXJjaFNlY3VyaXR5R3JvdXAsIHJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpTZWN1cml0eUdyb3VwJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMub3BlblNlYXJjaERvbWFpbkxvZ0dyb3VwLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpMb2dzOjpMb2dHcm91cCcsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZSxcbiAgICAgIHVucmVzb2x2YWJsZTogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLm9wZW5TZWFyY2hDdXN0b21SZXNvdXJjZSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGb3JtYXRpb246OkN1c3RvbVJlc291cmNlJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfVxuICBdLFxuXG4gIC8vID09PT09IEVGUyBGSUxFU1lTVEVNID09PT09XG4gICdlZnMtZmlsZXN5c3RlbSc6IFtcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lZnNGaWxlc3lzdGVtLCByZXNvdXJjZVR5cGU6ICdBV1M6OkVGUzo6RmlsZVN5c3RlbScgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lZnNTZWN1cml0eUdyb3VwLCByZXNvdXJjZVR5cGU6ICdBV1M6OkVDMjo6U2VjdXJpdHlHcm91cCcgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWZzTW91bnRUYXJnZXQsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkVGUzo6TW91bnRUYXJnZXQnLFxuICAgICAgdW5yZXNvbHZhYmxlOiB0cnVlXG4gICAgfVxuICBdLFxuXG4gIC8vID09PT09IE5FWFRKUyBXRUIgPT09PT1cbiAgLy8gTmV4dEpTIHdlYiBkZWxlZ2F0ZXMgdG86IGJ1Y2tldCwgaW1hZ2VGdW5jdGlvbiwgcmV2YWxpZGF0aW9uRnVuY3Rpb24sIHJldmFsaWRhdGlvblF1ZXVlLFxuICAvLyByZXZhbGlkYXRpb25UYWJsZSwgcmV2YWxpZGF0aW9uSW5zZXJ0RnVuY3Rpb24sIGFuZCBvcHRpb25hbGx5IHNlcnZlckVkZ2VGdW5jdGlvbiBvciBzZXJ2ZXJGdW5jdGlvblxuICAnbmV4dGpzLXdlYic6IFtcbiAgICAvLyBOZXh0SlMtc3BlY2lmaWMgcmVzb3VyY2VzXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLm9wZW5OZXh0SG9zdEhlYWRlclJld3JpdGVGdW5jdGlvbixcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6RnVuY3Rpb24nXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMub3Blbk5leHRBc3NldFJlcGxhY2VyQ3VzdG9tUmVzb3VyY2UsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZSdcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5vcGVuTmV4dER5bmFtb0luc2VydEN1c3RvbVJlc291cmNlLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6Q3VzdG9tUmVzb3VyY2UnXG4gICAgfSxcbiAgICAvLyBGcm9tIGJ1Y2tldFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmJ1Y2tldCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpTMzo6QnVja2V0JyB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmJ1Y2tldFBvbGljeSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpTMzo6QnVja2V0UG9saWN5JywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpDbG91ZEZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHknLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250Q3VzdG9tQ2FjaGVQb2xpY3ksXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6OkNhY2hlUG9saWN5JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udERlZmF1bHRDYWNoZVBvbGljeSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6Q2FjaGVQb2xpY3knLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250Q3VzdG9tT3JpZ2luUmVxdWVzdFBvbGljeSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6T3JpZ2luUmVxdWVzdFBvbGljeScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnREZWZhdWx0T3JpZ2luUmVxdWVzdFBvbGljeSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6T3JpZ2luUmVxdWVzdFBvbGljeScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnREaXN0cmlidXRpb24sXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6OkRpc3RyaWJ1dGlvbicsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmN1c3RvbVJlc291cmNlRGVmYXVsdERvbWFpbixcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGb3JtYXRpb246OkN1c3RvbVJlc291cmNlJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5kbnNSZWNvcmQsIHJlc291cmNlVHlwZTogJ0FXUzo6Um91dGU1Mzo6UmVjb3JkU2V0JywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICAvLyBGcm9tIGZ1bmN0aW9ucyAoaW1hZ2VGdW5jdGlvbiwgcmV2YWxpZGF0aW9uRnVuY3Rpb24sIHNlcnZlckZ1bmN0aW9uLCB3YXJtZXJGdW5jdGlvbiwgcmV2YWxpZGF0aW9uSW5zZXJ0RnVuY3Rpb24pXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMubGFtYmRhUm9sZSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMubGFtYmRhLCByZXNvdXJjZVR5cGU6ICdBV1M6OkxhbWJkYTo6RnVuY3Rpb24nIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMubGFtYmRhTG9nR3JvdXAsIHJlc291cmNlVHlwZTogJ0FXUzo6TG9nczo6TG9nR3JvdXAnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmxhbWJkYVVybCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpMYW1iZGE6OlVybCcsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAgLy8gRnJvbSBlZGdlIGZ1bmN0aW9uIChzZXJ2ZXJFZGdlRnVuY3Rpb24pXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmN1c3RvbVJlc291cmNlRWRnZUxhbWJkYSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGb3JtYXRpb246OkN1c3RvbVJlc291cmNlJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICAvLyBGcm9tIHJldmFsaWRhdGlvblF1ZXVlXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuc3FzUXVldWUsIHJlc291cmNlVHlwZTogJ0FXUzo6U1FTOjpRdWV1ZScgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5zcXNRdWV1ZVBvbGljeSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpTUVM6OlF1ZXVlUG9saWN5JywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICAvLyBGcm9tIHJldmFsaWRhdGlvblRhYmxlXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZHluYW1vR2xvYmFsVGFibGUsIHJlc291cmNlVHlwZTogJ0FXUzo6RHluYW1vREI6Okdsb2JhbFRhYmxlJyB9XG4gIF0sXG5cbiAgLy8gPT09PT0gTVVMVEktQ09OVEFJTkVSIFdPUktMT0FEID09PT09XG4gICdtdWx0aS1jb250YWluZXItd29ya2xvYWQnOiBbXG4gICAgLy8gU2hhcmVkIGdsb2JhbCByZXNvdXJjZXMgKGNvbmRpdGlvbmFsIC0gY3JlYXRlZCBvbmx5IG9uY2UgaWYgbm90IGV4aXN0cylcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NFeGVjdXRpb25Sb2xlLCByZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6Um9sZScsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzQXV0b1NjYWxpbmdSb2xlLCByZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6Um9sZScsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAgLy8gU2NhbGluZyByZXNvdXJjZXMgKGNvbmRpdGlvbmFsIC0gb25seSBpZiBzY2FsaW5nIGlzIGNvbmZpZ3VyZWQpXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmF1dG9TY2FsaW5nVGFyZ2V0LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpBcHBsaWNhdGlvbkF1dG9TY2FsaW5nOjpTY2FsYWJsZVRhcmdldCcsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmF1dG9TY2FsaW5nUG9saWN5LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpBcHBsaWNhdGlvbkF1dG9TY2FsaW5nOjpTY2FsaW5nUG9saWN5JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlLFxuICAgICAgdW5yZXNvbHZhYmxlOiB0cnVlXG4gICAgfSxcbiAgICAvLyBFQzItYmFzZWQgcmVzb3VyY2VzIChjb25kaXRpb25hbCAtIG9ubHkgaWYgaW5zdGFuY2VUeXBlcyBhcmUgY29uZmlndXJlZClcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NFYzJJbnN0YW5jZVJvbGUsIHJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpSb2xlJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZXZlbnRCdXNSb2xlRm9yU2NoZWR1bGVkSW5zdGFuY2VSZWZyZXNoLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0VjMkluc3RhbmNlUHJvZmlsZSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06Okluc3RhbmNlUHJvZmlsZScsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0VjMkluc3RhbmNlTGF1bmNoVGVtcGxhdGUsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkVDMjo6TGF1bmNoVGVtcGxhdGUnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NFYzJBdXRvc2NhbGluZ0dyb3VwLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpBdXRvU2NhbGluZzo6QXV0b1NjYWxpbmdHcm91cCcsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0VjMkZvcmNlRGVsZXRlQXV0b3NjYWxpbmdHcm91cEN1c3RvbVJlc291cmNlLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6Q3VzdG9tUmVzb3VyY2UnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NFYzJDYXBhY2l0eVByb3ZpZGVyLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpFQ1M6OkNhcGFjaXR5UHJvdmlkZXInLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NFYzJDYXBhY2l0eVByb3ZpZGVyQXNzb2NpYXRpb24sXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkVDUzo6Q2x1c3RlckNhcGFjaXR5UHJvdmlkZXJBc3NvY2lhdGlvbnMnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5zY2hlZHVsZXJSdWxlRm9yU2NoZWR1bGVkSW5zdGFuY2VSZWZyZXNoLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpTY2hlZHVsZXI6OlNjaGVkdWxlJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzRWMyQXV0b3NjYWxpbmdHcm91cFdhcm1Qb29sLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpBdXRvU2NhbGluZzo6V2FybVBvb2wnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIC8vIERlcGxveW1lbnQgcmVzb3VyY2VzIChjb25kaXRpb25hbCAtIG9ubHkgaWYgZGVwbG95bWVudCBpcyBjb25maWd1cmVkKVxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0NvZGVEZXBsb3lBcHAsIHJlc291cmNlVHlwZTogJ0FXUzo6Q29kZURlcGxveTo6QXBwbGljYXRpb24nLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jb2RlRGVwbG95RGVwbG95bWVudEdyb3VwLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDb2RlRGVwbG95OjpEZXBsb3ltZW50R3JvdXAnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIC8vIENvcmUgcmVzb3VyY2VzIChhbHdheXMgcHJlc2VudClcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NDbHVzdGVyLCByZXNvdXJjZVR5cGU6ICdBV1M6OkVDUzo6Q2x1c3RlcicgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy53b3JrbG9hZFNlY3VyaXR5R3JvdXAsIHJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpTZWN1cml0eUdyb3VwJyB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NTZXJ2aWNlLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpFQ1M6OlNlcnZpY2UnLFxuICAgICAgdW5yZXNvbHZhYmxlOiB0cnVlXG4gICAgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NUYXNrUm9sZSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzVGFza0RlZmluaXRpb24sIHJlc291cmNlVHlwZTogJ0FXUzo6RUNTOjpUYXNrRGVmaW5pdGlvbicgfSxcbiAgICAvLyBDb25kaXRpb25hbCByZXNvdXJjZXNcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzTG9nR3JvdXAsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkxvZ3M6OkxvZ0dyb3VwJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlLFxuICAgICAgdW5yZXNvbHZhYmxlOiB0cnVlXG4gICAgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lZnNBY2Nlc3NQb2ludCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpFRlM6OkFjY2Vzc1BvaW50JywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYXRsYXNNb25nb1VzZXJBc3NvY2lhdGVkV2l0aFJvbGUsXG4gICAgICByZXNvdXJjZVR5cGU6ICdNb25nb0RCOjpTdHBBdGxhc1YxOjpEYXRhYmFzZVVzZXInLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9XG4gIF0sXG5cbiAgLy8gPT09PT0gU1FTIFFVRVVFID09PT09XG4gICdzcXMtcXVldWUnOiBbXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuc3FzUXVldWUsIHJlc291cmNlVHlwZTogJ0FXUzo6U1FTOjpRdWV1ZScgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5zcXNRdWV1ZVBvbGljeSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpTUVM6OlF1ZXVlUG9saWN5JywgY29uZGl0aW9uYWw6IHRydWUgfVxuICBdLFxuXG4gIC8vID09PT09IFNOUyBUT1BJQyA9PT09PVxuICAnc25zLXRvcGljJzogW3sgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLnNuc1RvcGljLCByZXNvdXJjZVR5cGU6ICdBV1M6OlNOUzo6VG9waWMnIH1dLFxuXG4gIC8vID09PT09IEtJTkVTSVMgU1RSRUFNID09PT09XG4gICdraW5lc2lzLXN0cmVhbSc6IFt7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5raW5lc2lzU3RyZWFtLCByZXNvdXJjZVR5cGU6ICdBV1M6OktpbmVzaXM6OlN0cmVhbScgfV0sXG5cbiAgLy8gPT09PT0gQkFTVElPTiA9PT09PVxuICBiYXN0aW9uOiBbXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmJhc3Rpb25DbG91ZHdhdGNoU3NtRG9jdW1lbnQsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OlNTTTo6RG9jdW1lbnQnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmJhc3Rpb25FYzJBdXRvc2NhbGluZ0dyb3VwLCByZXNvdXJjZVR5cGU6ICdBV1M6OkF1dG9TY2FsaW5nOjpBdXRvU2NhbGluZ0dyb3VwJyB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmJhc3Rpb25TZWN1cml0eUdyb3VwLCByZXNvdXJjZVR5cGU6ICdBV1M6OkVDMjo6U2VjdXJpdHlHcm91cCcgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5iYXN0aW9uRWMyTGF1bmNoVGVtcGxhdGUsIHJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpMYXVuY2hUZW1wbGF0ZScgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5iYXN0aW9uUm9sZSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYmFzdGlvbkVjMkluc3RhbmNlUHJvZmlsZSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06Okluc3RhbmNlUHJvZmlsZScgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5iYXN0aW9uQ3dBZ2VudFNzbUFzc29jaWF0aW9uLCByZXNvdXJjZVR5cGU6ICdBV1M6OlNTTTo6QXNzb2NpYXRpb24nIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYmFzdGlvblNzbUFnZW50U3NtQXNzb2NpYXRpb24sIHJlc291cmNlVHlwZTogJ0FXUzo6U1NNOjpBc3NvY2lhdGlvbicgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYmFzdGlvbkxvZ0dyb3VwLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpMb2dzOjpMb2dHcm91cCcsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZSxcbiAgICAgIHVucmVzb2x2YWJsZTogdHJ1ZVxuICAgIH1cbiAgXSxcblxuICAvLyA9PT09PSBFREdFIExBTUJEQSBGVU5DVElPTiA9PT09PVxuICAnZWRnZS1sYW1iZGEtZnVuY3Rpb24nOiBbXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY3VzdG9tUmVzb3VyY2VFZGdlTGFtYmRhLCByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZScgfVxuICBdLFxuXG4gIC8vID09PT09IFdFQiBTRVJWSUNFID09PT09XG4gIC8vIFdlYiBzZXJ2aWNlIGRlbGVnYXRlcyB0bzogY29udGFpbmVyV29ya2xvYWQgKyBvcHRpb25hbGx5IChodHRwQXBpR2F0ZXdheSBPUiBsb2FkQmFsYW5jZXIgT1IgbmV0d29ya0xvYWRCYWxhbmNlcilcbiAgJ3dlYi1zZXJ2aWNlJzogW1xuICAgIC8vIEZyb20gbXVsdGktY29udGFpbmVyLXdvcmtsb2FkIC0gY29yZSByZXNvdXJjZXMgKGFsd2F5cyBwcmVzZW50KVxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0NsdXN0ZXIsIHJlc291cmNlVHlwZTogJ0FXUzo6RUNTOjpDbHVzdGVyJyB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLndvcmtsb2FkU2VjdXJpdHlHcm91cCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpFQzI6OlNlY3VyaXR5R3JvdXAnIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc1NlcnZpY2UsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkVDUzo6U2VydmljZScsXG4gICAgICB1bnJlc29sdmFibGU6IHRydWVcbiAgICB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc1Rhc2tSb2xlLCByZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6Um9sZScgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NUYXNrRGVmaW5pdGlvbiwgcmVzb3VyY2VUeXBlOiAnQVdTOjpFQ1M6OlRhc2tEZWZpbml0aW9uJyB9LFxuICAgIC8vIEZyb20gbXVsdGktY29udGFpbmVyLXdvcmtsb2FkIC0gY29uZGl0aW9uYWwgcmVzb3VyY2VzXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzRXhlY3V0aW9uUm9sZSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0F1dG9TY2FsaW5nUm9sZSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5hdXRvU2NhbGluZ1RhcmdldCxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6QXBwbGljYXRpb25BdXRvU2NhbGluZzo6U2NhbGFibGVUYXJnZXQnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5hdXRvU2NhbGluZ1BvbGljeSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6QXBwbGljYXRpb25BdXRvU2NhbGluZzo6U2NhbGluZ1BvbGljeScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZSxcbiAgICAgIHVucmVzb2x2YWJsZTogdHJ1ZVxuICAgIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzRWMySW5zdGFuY2VSb2xlLCByZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6Um9sZScsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmV2ZW50QnVzUm9sZUZvclNjaGVkdWxlZEluc3RhbmNlUmVmcmVzaCxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpSb2xlJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NFYzJJbnN0YW5jZVByb2ZpbGUsIHJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpJbnN0YW5jZVByb2ZpbGUnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NFYzJJbnN0YW5jZUxhdW5jaFRlbXBsYXRlLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpFQzI6OkxhdW5jaFRlbXBsYXRlJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzRWMyQXV0b3NjYWxpbmdHcm91cCxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6QXV0b1NjYWxpbmc6OkF1dG9TY2FsaW5nR3JvdXAnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NFYzJGb3JjZURlbGV0ZUF1dG9zY2FsaW5nR3JvdXBDdXN0b21SZXNvdXJjZSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGb3JtYXRpb246OkN1c3RvbVJlc291cmNlJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzRWMyQ2FwYWNpdHlQcm92aWRlcixcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6RUNTOjpDYXBhY2l0eVByb3ZpZGVyJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzRWMyQ2FwYWNpdHlQcm92aWRlckFzc29jaWF0aW9uLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpFQ1M6OkNsdXN0ZXJDYXBhY2l0eVByb3ZpZGVyQXNzb2NpYXRpb25zJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuc2NoZWR1bGVyUnVsZUZvclNjaGVkdWxlZEluc3RhbmNlUmVmcmVzaCxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6U2NoZWR1bGVyOjpTY2hlZHVsZScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0VjMkF1dG9zY2FsaW5nR3JvdXBXYXJtUG9vbCxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6QXV0b1NjYWxpbmc6Oldhcm1Qb29sJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NDb2RlRGVwbG95QXBwLCByZXNvdXJjZVR5cGU6ICdBV1M6OkNvZGVEZXBsb3k6OkFwcGxpY2F0aW9uJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY29kZURlcGxveURlcGxveW1lbnRHcm91cCxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q29kZURlcGxveTo6RGVwbG95bWVudEdyb3VwJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzTG9nR3JvdXAsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkxvZ3M6OkxvZ0dyb3VwJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlLFxuICAgICAgdW5yZXNvbHZhYmxlOiB0cnVlXG4gICAgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lZnNBY2Nlc3NQb2ludCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpFRlM6OkFjY2Vzc1BvaW50JywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICAvLyBGcm9tIGFwcGxpY2F0aW9uLWxvYWQtYmFsYW5jZXIgKGNvbmRpdGlvbmFsIC0gb25seSBpZiBBTEIgaXMgdXNlZClcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMubG9hZEJhbGFuY2VyLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpFbGFzdGljTG9hZEJhbGFuY2luZ1YyOjpMb2FkQmFsYW5jZXInLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5sb2FkQmFsYW5jZXJTZWN1cml0eUdyb3VwLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpFQzI6OlNlY3VyaXR5R3JvdXAnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmxpc3RlbmVyLCByZXNvdXJjZVR5cGU6ICdBV1M6OkVsYXN0aWNMb2FkQmFsYW5jaW5nVjI6Okxpc3RlbmVyJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMud2ViQXBwRmlyZXdhbGxBc3NvY2lhdGlvbixcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6V0FGdjI6OldlYkFDTEFzc29jaWF0aW9uJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICAvLyBGcm9tIGh0dHAtYXBpLWdhdGV3YXkgKGNvbmRpdGlvbmFsIC0gb25seSBpZiBIVFRQIEFQSSBHYXRld2F5IGlzIHVzZWQsIGFsdGVybmF0aXZlIHRvIEFMQi9OTEIpXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuaHR0cEFwaSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpBcGlHYXRld2F5VjI6OkFwaScsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuaHR0cEFwaVN0YWdlLCByZXNvdXJjZVR5cGU6ICdBV1M6OkFwaUdhdGV3YXlWMjo6U3RhZ2UnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmh0dHBBcGlMb2dHcm91cCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpMb2dzOjpMb2dHcm91cCcsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmh0dHBBcGlWcGNMaW5rU2VjdXJpdHlHcm91cCxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpTZWN1cml0eUdyb3VwJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5odHRwQXBpVnBjTGluaywgcmVzb3VyY2VUeXBlOiAnQVdTOjpBcGlHYXRld2F5VjI6OlZwY0xpbmsnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmh0dHBBcGlEb21haW4sIHJlc291cmNlVHlwZTogJ0FXUzo6QXBpR2F0ZXdheVYyOjpEb21haW5OYW1lJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuaHR0cEFwaURvbWFpbk1hcHBpbmcsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkFwaUdhdGV3YXlWMjo6QXBpTWFwcGluZycsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmh0dHBBcGlEZWZhdWx0RG9tYWluLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpBcGlHYXRld2F5VjI6OkRvbWFpbk5hbWUnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5odHRwQXBpRGVmYXVsdERvbWFpbk1hcHBpbmcsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkFwaUdhdGV3YXlWMjo6QXBpTWFwcGluZycsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAgLy8gQ29tbW9uIHJlc291cmNlcyAoZG9tYWlucywgQ0ROIC0gYWxsIGNvbmRpdGlvbmFsKVxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jdXN0b21SZXNvdXJjZURlZmF1bHREb21haW4sXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZG5zUmVjb3JkLCByZXNvdXJjZVR5cGU6ICdBV1M6OlJvdXRlNTM6OlJlY29yZFNldCcsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6Q2xvdWRGcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udEN1c3RvbUNhY2hlUG9saWN5LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpDYWNoZVBvbGljeScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnREZWZhdWx0Q2FjaGVQb2xpY3ksXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6OkNhY2hlUG9saWN5JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udEN1c3RvbU9yaWdpblJlcXVlc3RQb2xpY3ksXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6Ok9yaWdpblJlcXVlc3RQb2xpY3knLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250RGVmYXVsdE9yaWdpblJlcXVlc3RQb2xpY3ksXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6Ok9yaWdpblJlcXVlc3RQb2xpY3knLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250RGlzdHJpYnV0aW9uLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpEaXN0cmlidXRpb24nLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9XG4gIF0sXG5cbiAgLy8gPT09PT0gUFJJVkFURSBTRVJWSUNFID09PT09XG4gIC8vIFByaXZhdGUgc2VydmljZSBkZWxlZ2F0ZXMgdG86IGNvbnRhaW5lcldvcmtsb2FkICsgb3B0aW9uYWxseSBsb2FkQmFsYW5jZXJcbiAgJ3ByaXZhdGUtc2VydmljZSc6IFtcbiAgICAvLyBGcm9tIG11bHRpLWNvbnRhaW5lci13b3JrbG9hZCAtIGNvcmUgcmVzb3VyY2VzIChhbHdheXMgcHJlc2VudClcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NDbHVzdGVyLCByZXNvdXJjZVR5cGU6ICdBV1M6OkVDUzo6Q2x1c3RlcicgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy53b3JrbG9hZFNlY3VyaXR5R3JvdXAsIHJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpTZWN1cml0eUdyb3VwJyB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NTZXJ2aWNlLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpFQ1M6OlNlcnZpY2UnLFxuICAgICAgdW5yZXNvbHZhYmxlOiB0cnVlXG4gICAgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NUYXNrUm9sZSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzVGFza0RlZmluaXRpb24sIHJlc291cmNlVHlwZTogJ0FXUzo6RUNTOjpUYXNrRGVmaW5pdGlvbicgfSxcbiAgICAvLyBGcm9tIG11bHRpLWNvbnRhaW5lci13b3JrbG9hZCAtIGNvbmRpdGlvbmFsIHJlc291cmNlc1xuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0V4ZWN1dGlvblJvbGUsIHJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpSb2xlJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NBdXRvU2NhbGluZ1JvbGUsIHJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpSb2xlJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYXV0b1NjYWxpbmdUYXJnZXQsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkFwcGxpY2F0aW9uQXV0b1NjYWxpbmc6OlNjYWxhYmxlVGFyZ2V0JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYXV0b1NjYWxpbmdQb2xpY3ksXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkFwcGxpY2F0aW9uQXV0b1NjYWxpbmc6OlNjYWxpbmdQb2xpY3knLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWUsXG4gICAgICB1bnJlc29sdmFibGU6IHRydWVcbiAgICB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0VjMkluc3RhbmNlUm9sZSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5ldmVudEJ1c1JvbGVGb3JTY2hlZHVsZWRJbnN0YW5jZVJlZnJlc2gsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6Um9sZScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzRWMySW5zdGFuY2VQcm9maWxlLCByZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6SW5zdGFuY2VQcm9maWxlJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzRWMySW5zdGFuY2VMYXVuY2hUZW1wbGF0ZSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpMYXVuY2hUZW1wbGF0ZScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0VjMkF1dG9zY2FsaW5nR3JvdXAsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkF1dG9TY2FsaW5nOjpBdXRvU2NhbGluZ0dyb3VwJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzRWMyRm9yY2VEZWxldGVBdXRvc2NhbGluZ0dyb3VwQ3VzdG9tUmVzb3VyY2UsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0VjMkNhcGFjaXR5UHJvdmlkZXIsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkVDUzo6Q2FwYWNpdHlQcm92aWRlcicsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0VjMkNhcGFjaXR5UHJvdmlkZXJBc3NvY2lhdGlvbixcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6RUNTOjpDbHVzdGVyQ2FwYWNpdHlQcm92aWRlckFzc29jaWF0aW9ucycsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLnNjaGVkdWxlclJ1bGVGb3JTY2hlZHVsZWRJbnN0YW5jZVJlZnJlc2gsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OlNjaGVkdWxlcjo6U2NoZWR1bGUnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NFYzJBdXRvc2NhbGluZ0dyb3VwV2FybVBvb2wsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkF1dG9TY2FsaW5nOjpXYXJtUG9vbCcsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzQ29kZURlcGxveUFwcCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpDb2RlRGVwbG95OjpBcHBsaWNhdGlvbicsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNvZGVEZXBsb3lEZXBsb3ltZW50R3JvdXAsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNvZGVEZXBsb3k6OkRlcGxveW1lbnRHcm91cCcsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0xvZ0dyb3VwLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpMb2dzOjpMb2dHcm91cCcsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZSxcbiAgICAgIHVucmVzb2x2YWJsZTogdHJ1ZVxuICAgIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWZzQWNjZXNzUG9pbnQsIHJlc291cmNlVHlwZTogJ0FXUzo6RUZTOjpBY2Nlc3NQb2ludCcsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAgLy8gRnJvbSBhcHBsaWNhdGlvbi1sb2FkLWJhbGFuY2VyIChjb25kaXRpb25hbCAtIG9ubHkgaWYgQUxCIGlzIGNvbmZpZ3VyZWQpXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmxvYWRCYWxhbmNlcixcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6RWxhc3RpY0xvYWRCYWxhbmNpbmdWMjo6TG9hZEJhbGFuY2VyJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMubG9hZEJhbGFuY2VyU2VjdXJpdHlHcm91cCxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpTZWN1cml0eUdyb3VwJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5saXN0ZW5lciwgcmVzb3VyY2VUeXBlOiAnQVdTOjpFbGFzdGljTG9hZEJhbGFuY2luZ1YyOjpMaXN0ZW5lcicsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmN1c3RvbVJlc291cmNlRGVmYXVsdERvbWFpbixcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGb3JtYXRpb246OkN1c3RvbVJlc291cmNlJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5kbnNSZWNvcmQsIHJlc291cmNlVHlwZTogJ0FXUzo6Um91dGU1Mzo6UmVjb3JkU2V0JywgY29uZGl0aW9uYWw6IHRydWUgfVxuICBdLFxuXG4gIC8vID09PT09IFdPUktFUiBTRVJWSUNFID09PT09XG4gIC8vIFdvcmtlciBzZXJ2aWNlIGRlbGVnYXRlcyB0bzogY29udGFpbmVyV29ya2xvYWQgb25seVxuICAnd29ya2VyLXNlcnZpY2UnOiBbXG4gICAgLy8gRnJvbSBtdWx0aS1jb250YWluZXItd29ya2xvYWQgLSBjb3JlIHJlc291cmNlcyAoYWx3YXlzIHByZXNlbnQpXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzQ2x1c3RlciwgcmVzb3VyY2VUeXBlOiAnQVdTOjpFQ1M6OkNsdXN0ZXInIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMud29ya2xvYWRTZWN1cml0eUdyb3VwLCByZXNvdXJjZVR5cGU6ICdBV1M6OkVDMjo6U2VjdXJpdHlHcm91cCcgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzU2VydmljZSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6RUNTOjpTZXJ2aWNlJyxcbiAgICAgIHVucmVzb2x2YWJsZTogdHJ1ZVxuICAgIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzVGFza1JvbGUsIHJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpSb2xlJyB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc1Rhc2tEZWZpbml0aW9uLCByZXNvdXJjZVR5cGU6ICdBV1M6OkVDUzo6VGFza0RlZmluaXRpb24nIH0sXG4gICAgLy8gRnJvbSBtdWx0aS1jb250YWluZXItd29ya2xvYWQgLSBjb25kaXRpb25hbCByZXNvdXJjZXNcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NFeGVjdXRpb25Sb2xlLCByZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6Um9sZScsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzQXV0b1NjYWxpbmdSb2xlLCByZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6Um9sZScsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmF1dG9TY2FsaW5nVGFyZ2V0LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpBcHBsaWNhdGlvbkF1dG9TY2FsaW5nOjpTY2FsYWJsZVRhcmdldCcsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmF1dG9TY2FsaW5nUG9saWN5LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpBcHBsaWNhdGlvbkF1dG9TY2FsaW5nOjpTY2FsaW5nUG9saWN5JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlLFxuICAgICAgdW5yZXNvbHZhYmxlOiB0cnVlXG4gICAgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NFYzJJbnN0YW5jZVJvbGUsIHJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpSb2xlJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZXZlbnRCdXNSb2xlRm9yU2NoZWR1bGVkSW5zdGFuY2VSZWZyZXNoLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0VjMkluc3RhbmNlUHJvZmlsZSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06Okluc3RhbmNlUHJvZmlsZScsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0VjMkluc3RhbmNlTGF1bmNoVGVtcGxhdGUsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkVDMjo6TGF1bmNoVGVtcGxhdGUnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NFYzJBdXRvc2NhbGluZ0dyb3VwLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpBdXRvU2NhbGluZzo6QXV0b1NjYWxpbmdHcm91cCcsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0VjMkZvcmNlRGVsZXRlQXV0b3NjYWxpbmdHcm91cEN1c3RvbVJlc291cmNlLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6Q3VzdG9tUmVzb3VyY2UnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NFYzJDYXBhY2l0eVByb3ZpZGVyLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpFQ1M6OkNhcGFjaXR5UHJvdmlkZXInLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NFYzJDYXBhY2l0eVByb3ZpZGVyQXNzb2NpYXRpb24sXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkVDUzo6Q2x1c3RlckNhcGFjaXR5UHJvdmlkZXJBc3NvY2lhdGlvbnMnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5zY2hlZHVsZXJSdWxlRm9yU2NoZWR1bGVkSW5zdGFuY2VSZWZyZXNoLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpTY2hlZHVsZXI6OlNjaGVkdWxlJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzRWMyQXV0b3NjYWxpbmdHcm91cFdhcm1Qb29sLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpBdXRvU2NhbGluZzo6V2FybVBvb2wnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0NvZGVEZXBsb3lBcHAsIHJlc291cmNlVHlwZTogJ0FXUzo6Q29kZURlcGxveTo6QXBwbGljYXRpb24nLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jb2RlRGVwbG95RGVwbG95bWVudEdyb3VwLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDb2RlRGVwbG95OjpEZXBsb3ltZW50R3JvdXAnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NMb2dHcm91cCxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6TG9nczo6TG9nR3JvdXAnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWUsXG4gICAgICB1bnJlc29sdmFibGU6IHRydWVcbiAgICB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVmc0FjY2Vzc1BvaW50LCByZXNvdXJjZVR5cGU6ICdBV1M6OkVGUzo6QWNjZXNzUG9pbnQnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5hdGxhc01vbmdvVXNlckFzc29jaWF0ZWRXaXRoUm9sZSxcbiAgICAgIHJlc291cmNlVHlwZTogJ01vbmdvREI6OlN0cEF0bGFzVjE6OkRhdGFiYXNlVXNlcicsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH1cbiAgXSxcblxuICAvLyA9PT09PSBBU1RSTyBXRUIgPT09PT1cbiAgJ2FzdHJvLXdlYic6IFtcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5zc3JXZWJIb3N0SGVhZGVyUmV3cml0ZUZ1bmN0aW9uLCByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6OkZ1bmN0aW9uJyB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmJ1Y2tldCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpTMzo6QnVja2V0JyB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmJ1Y2tldFBvbGljeSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpTMzo6QnVja2V0UG9saWN5JywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpDbG91ZEZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHknLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250Q3VzdG9tQ2FjaGVQb2xpY3ksXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6OkNhY2hlUG9saWN5JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udERlZmF1bHRDYWNoZVBvbGljeSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6Q2FjaGVQb2xpY3knLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250Q3VzdG9tT3JpZ2luUmVxdWVzdFBvbGljeSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6T3JpZ2luUmVxdWVzdFBvbGljeScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnREZWZhdWx0T3JpZ2luUmVxdWVzdFBvbGljeSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6T3JpZ2luUmVxdWVzdFBvbGljeScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnREaXN0cmlidXRpb24sXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6OkRpc3RyaWJ1dGlvbicsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmN1c3RvbVJlc291cmNlRGVmYXVsdERvbWFpbixcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGb3JtYXRpb246OkN1c3RvbVJlc291cmNlJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5kbnNSZWNvcmQsIHJlc291cmNlVHlwZTogJ0FXUzo6Um91dGU1Mzo6UmVjb3JkU2V0JywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5sYW1iZGFSb2xlLCByZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6Um9sZScgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5sYW1iZGEsIHJlc291cmNlVHlwZTogJ0FXUzo6TGFtYmRhOjpGdW5jdGlvbicgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5sYW1iZGFMb2dHcm91cCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpMb2dzOjpMb2dHcm91cCcsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMubGFtYmRhVXJsLCByZXNvdXJjZVR5cGU6ICdBV1M6OkxhbWJkYTo6VXJsJywgY29uZGl0aW9uYWw6IHRydWUgfVxuICBdLFxuXG4gIC8vID09PT09IE5VWFQgV0VCID09PT09XG4gICdudXh0LXdlYic6IFtcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5zc3JXZWJIb3N0SGVhZGVyUmV3cml0ZUZ1bmN0aW9uLCByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6OkZ1bmN0aW9uJyB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmJ1Y2tldCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpTMzo6QnVja2V0JyB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmJ1Y2tldFBvbGljeSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpTMzo6QnVja2V0UG9saWN5JywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpDbG91ZEZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHknLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250Q3VzdG9tQ2FjaGVQb2xpY3ksXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6OkNhY2hlUG9saWN5JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udERlZmF1bHRDYWNoZVBvbGljeSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6Q2FjaGVQb2xpY3knLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250Q3VzdG9tT3JpZ2luUmVxdWVzdFBvbGljeSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6T3JpZ2luUmVxdWVzdFBvbGljeScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnREZWZhdWx0T3JpZ2luUmVxdWVzdFBvbGljeSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6T3JpZ2luUmVxdWVzdFBvbGljeScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnREaXN0cmlidXRpb24sXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6OkRpc3RyaWJ1dGlvbicsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmN1c3RvbVJlc291cmNlRGVmYXVsdERvbWFpbixcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGb3JtYXRpb246OkN1c3RvbVJlc291cmNlJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5kbnNSZWNvcmQsIHJlc291cmNlVHlwZTogJ0FXUzo6Um91dGU1Mzo6UmVjb3JkU2V0JywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5sYW1iZGFSb2xlLCByZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6Um9sZScgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5sYW1iZGEsIHJlc291cmNlVHlwZTogJ0FXUzo6TGFtYmRhOjpGdW5jdGlvbicgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5sYW1iZGFMb2dHcm91cCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpMb2dzOjpMb2dHcm91cCcsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMubGFtYmRhVXJsLCByZXNvdXJjZVR5cGU6ICdBV1M6OkxhbWJkYTo6VXJsJywgY29uZGl0aW9uYWw6IHRydWUgfVxuICBdLFxuXG4gIC8vID09PT09IFNWRUxURUtJVCBXRUIgPT09PT1cbiAgJ3N2ZWx0ZWtpdC13ZWInOiBbXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuc3NyV2ViSG9zdEhlYWRlclJld3JpdGVGdW5jdGlvbiwgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpGdW5jdGlvbicgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5idWNrZXQsIHJlc291cmNlVHlwZTogJ0FXUzo6UzM6OkJ1Y2tldCcgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5idWNrZXRQb2xpY3ksIHJlc291cmNlVHlwZTogJ0FXUzo6UzM6OkJ1Y2tldFBvbGljeScsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6Q2xvdWRGcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udEN1c3RvbUNhY2hlUG9saWN5LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpDYWNoZVBvbGljeScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnREZWZhdWx0Q2FjaGVQb2xpY3ksXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6OkNhY2hlUG9saWN5JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udEN1c3RvbU9yaWdpblJlcXVlc3RQb2xpY3ksXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6Ok9yaWdpblJlcXVlc3RQb2xpY3knLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250RGVmYXVsdE9yaWdpblJlcXVlc3RQb2xpY3ksXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6Ok9yaWdpblJlcXVlc3RQb2xpY3knLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250RGlzdHJpYnV0aW9uLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpEaXN0cmlidXRpb24nLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jdXN0b21SZXNvdXJjZURlZmF1bHREb21haW4sXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZG5zUmVjb3JkLCByZXNvdXJjZVR5cGU6ICdBV1M6OlJvdXRlNTM6OlJlY29yZFNldCcsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMubGFtYmRhUm9sZSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMubGFtYmRhLCByZXNvdXJjZVR5cGU6ICdBV1M6OkxhbWJkYTo6RnVuY3Rpb24nIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMubGFtYmRhTG9nR3JvdXAsIHJlc291cmNlVHlwZTogJ0FXUzo6TG9nczo6TG9nR3JvdXAnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmxhbWJkYVVybCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpMYW1iZGE6OlVybCcsIGNvbmRpdGlvbmFsOiB0cnVlIH1cbiAgXSxcblxuICAvLyA9PT09PSBTT0xJRFNUQVJUIFdFQiA9PT09PVxuICAnc29saWRzdGFydC13ZWInOiBbXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuc3NyV2ViSG9zdEhlYWRlclJld3JpdGVGdW5jdGlvbiwgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpGdW5jdGlvbicgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5idWNrZXQsIHJlc291cmNlVHlwZTogJ0FXUzo6UzM6OkJ1Y2tldCcgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5idWNrZXRQb2xpY3ksIHJlc291cmNlVHlwZTogJ0FXUzo6UzM6OkJ1Y2tldFBvbGljeScsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6Q2xvdWRGcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udEN1c3RvbUNhY2hlUG9saWN5LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpDYWNoZVBvbGljeScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnREZWZhdWx0Q2FjaGVQb2xpY3ksXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6OkNhY2hlUG9saWN5JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udEN1c3RvbU9yaWdpblJlcXVlc3RQb2xpY3ksXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6Ok9yaWdpblJlcXVlc3RQb2xpY3knLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250RGVmYXVsdE9yaWdpblJlcXVlc3RQb2xpY3ksXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6Ok9yaWdpblJlcXVlc3RQb2xpY3knLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250RGlzdHJpYnV0aW9uLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpEaXN0cmlidXRpb24nLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jdXN0b21SZXNvdXJjZURlZmF1bHREb21haW4sXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZG5zUmVjb3JkLCByZXNvdXJjZVR5cGU6ICdBV1M6OlJvdXRlNTM6OlJlY29yZFNldCcsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMubGFtYmRhUm9sZSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMubGFtYmRhLCByZXNvdXJjZVR5cGU6ICdBV1M6OkxhbWJkYTo6RnVuY3Rpb24nIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMubGFtYmRhTG9nR3JvdXAsIHJlc291cmNlVHlwZTogJ0FXUzo6TG9nczo6TG9nR3JvdXAnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmxhbWJkYVVybCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpMYW1iZGE6OlVybCcsIGNvbmRpdGlvbmFsOiB0cnVlIH1cbiAgXSxcblxuICAvLyA9PT09PSBUQU5TVEFDSyBXRUIgPT09PT1cbiAgJ3RhbnN0YWNrLXdlYic6IFtcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5zc3JXZWJIb3N0SGVhZGVyUmV3cml0ZUZ1bmN0aW9uLCByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6OkZ1bmN0aW9uJyB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmJ1Y2tldCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpTMzo6QnVja2V0JyB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmJ1Y2tldFBvbGljeSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpTMzo6QnVja2V0UG9saWN5JywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpDbG91ZEZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHknLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250Q3VzdG9tQ2FjaGVQb2xpY3ksXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6OkNhY2hlUG9saWN5JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udERlZmF1bHRDYWNoZVBvbGljeSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6Q2FjaGVQb2xpY3knLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250Q3VzdG9tT3JpZ2luUmVxdWVzdFBvbGljeSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6T3JpZ2luUmVxdWVzdFBvbGljeScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnREZWZhdWx0T3JpZ2luUmVxdWVzdFBvbGljeSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6T3JpZ2luUmVxdWVzdFBvbGljeScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnREaXN0cmlidXRpb24sXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6OkRpc3RyaWJ1dGlvbicsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmN1c3RvbVJlc291cmNlRGVmYXVsdERvbWFpbixcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGb3JtYXRpb246OkN1c3RvbVJlc291cmNlJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5kbnNSZWNvcmQsIHJlc291cmNlVHlwZTogJ0FXUzo6Um91dGU1Mzo6UmVjb3JkU2V0JywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5sYW1iZGFSb2xlLCByZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6Um9sZScgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5sYW1iZGEsIHJlc291cmNlVHlwZTogJ0FXUzo6TGFtYmRhOjpGdW5jdGlvbicgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5sYW1iZGFMb2dHcm91cCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpMb2dzOjpMb2dHcm91cCcsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMubGFtYmRhVXJsLCByZXNvdXJjZVR5cGU6ICdBV1M6OkxhbWJkYTo6VXJsJywgY29uZGl0aW9uYWw6IHRydWUgfVxuICBdLFxuXG4gIC8vID09PT09IFJFTUlYIFdFQiA9PT09PVxuICAncmVtaXgtd2ViJzogW1xuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLnNzcldlYkhvc3RIZWFkZXJSZXdyaXRlRnVuY3Rpb24sIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6RnVuY3Rpb24nIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYnVja2V0LCByZXNvdXJjZVR5cGU6ICdBV1M6OlMzOjpCdWNrZXQnIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYnVja2V0UG9saWN5LCByZXNvdXJjZVR5cGU6ICdBV1M6OlMzOjpCdWNrZXRQb2xpY3knLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHksXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6OkNsb3VkRnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnRDdXN0b21DYWNoZVBvbGljeSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6Q2FjaGVQb2xpY3knLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250RGVmYXVsdENhY2hlUG9saWN5LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpDYWNoZVBvbGljeScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnRDdXN0b21PcmlnaW5SZXF1ZXN0UG9saWN5LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpPcmlnaW5SZXF1ZXN0UG9saWN5JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udERlZmF1bHRPcmlnaW5SZXF1ZXN0UG9saWN5LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpPcmlnaW5SZXF1ZXN0UG9saWN5JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udERpc3RyaWJ1dGlvbixcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6RGlzdHJpYnV0aW9uJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY3VzdG9tUmVzb3VyY2VEZWZhdWx0RG9tYWluLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6Q3VzdG9tUmVzb3VyY2UnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmRuc1JlY29yZCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpSb3V0ZTUzOjpSZWNvcmRTZXQnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmxhbWJkYVJvbGUsIHJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpSb2xlJyB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmxhbWJkYSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpMYW1iZGE6OkZ1bmN0aW9uJyB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmxhbWJkYUxvZ0dyb3VwLCByZXNvdXJjZVR5cGU6ICdBV1M6OkxvZ3M6OkxvZ0dyb3VwJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5sYW1iZGFVcmwsIHJlc291cmNlVHlwZTogJ0FXUzo6TGFtYmRhOjpVcmwnLCBjb25kaXRpb25hbDogdHJ1ZSB9XG4gIF0sXG5cbiAgLy8gPT09PT0gT1RIRVIgUkVTT1VSQ0VTID09PT09XG4gICdjdXN0b20tcmVzb3VyY2UtaW5zdGFuY2UnOiBbXSxcbiAgJ2N1c3RvbS1yZXNvdXJjZS1kZWZpbml0aW9uJzogW10sXG4gICdkZXBsb3ltZW50LXNjcmlwdCc6IFtdLFxuICAnYXdzLWNkay1jb25zdHJ1Y3QnOiBbXVxufTtcbiIsCiAgICAiaW1wb3J0IHsgQ0hJTERfUkVTT1VSQ0VTIH0gZnJvbSAnLi9jaGlsZC1yZXNvdXJjZXMnO1xuXG4vLyBQcml2YXRlIHN5bWJvbHMgZm9yIGludGVybmFsIG1ldGhvZHMgLSBub3QgYWNjZXNzaWJsZSBmcm9tIG91dHNpZGVcbi8vIFVzZSBTeW1ib2wuZm9yKCkgc28gaXQgY2FuIGJlIGFjY2Vzc2VkIGFjcm9zcyBtb2R1bGVzIChjcnVjaWFsIGZvciBucG0gcGFja2FnZSBpbnRlcm9wKVxuY29uc3QgZ2V0UGFyYW1SZWZlcmVuY2VTeW1ib2wgPSBTeW1ib2wuZm9yKCdzdGFja3RhcGU6Z2V0UGFyYW1SZWZlcmVuY2UnKTtcbmNvbnN0IGdldFR5cGVTeW1ib2wgPSBTeW1ib2wuZm9yKCdzdGFja3RhcGU6Z2V0VHlwZScpO1xuY29uc3QgZ2V0UHJvcGVydGllc1N5bWJvbCA9IFN5bWJvbC5mb3IoJ3N0YWNrdGFwZTpnZXRQcm9wZXJ0aWVzJyk7XG5jb25zdCBnZXRPdmVycmlkZXNTeW1ib2wgPSBTeW1ib2wuZm9yKCdzdGFja3RhcGU6Z2V0T3ZlcnJpZGVzJyk7XG5jb25zdCBnZXRUcmFuc2Zvcm1zU3ltYm9sID0gU3ltYm9sLmZvcignc3RhY2t0YXBlOmdldFRyYW5zZm9ybXMnKTtcbmNvbnN0IHNldFJlc291cmNlTmFtZVN5bWJvbCA9IFN5bWJvbC5mb3IoJ3N0YWNrdGFwZTpzZXRSZXNvdXJjZU5hbWUnKTtcbmNvbnN0IHJlc291cmNlUGFyYW1SZWZTeW1ib2wgPSBTeW1ib2wuZm9yKCdzdGFja3RhcGU6aXNSZXNvdXJjZVBhcmFtUmVmJyk7XG5jb25zdCBiYXNlVHlwZVByb3BlcnRpZXNTeW1ib2wgPSBTeW1ib2wuZm9yKCdzdGFja3RhcGU6aXNCYXNlVHlwZVByb3BlcnRpZXMnKTtcbmNvbnN0IGFsYXJtU3ltYm9sID0gU3ltYm9sLmZvcignc3RhY2t0YXBlOmlzQWxhcm0nKTtcblxuLy8gRHVjay10eXBlIGNoZWNrZXJzIC0gdXNlIHN5bWJvbHMgaW5zdGVhZCBvZiBpbnN0YW5jZW9mIGZvciBjcm9zcy1tb2R1bGUgY29tcGF0aWJpbGl0eVxuY29uc3QgaXNCYXNlUmVzb3VyY2UgPSAodmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBCYXNlUmVzb3VyY2UgPT5cbiAgdmFsdWUgIT09IG51bGwgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiBzZXRSZXNvdXJjZU5hbWVTeW1ib2wgaW4gdmFsdWU7XG5cbmNvbnN0IGlzQmFzZVR5cGVQcm9wZXJ0aWVzID0gKHZhbHVlOiB1bmtub3duKTogdmFsdWUgaXMgQmFzZVR5cGVQcm9wZXJ0aWVzID0+XG4gIHZhbHVlICE9PSBudWxsICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgYmFzZVR5cGVQcm9wZXJ0aWVzU3ltYm9sIGluIHZhbHVlO1xuXG5jb25zdCBpc0FsYXJtID0gKHZhbHVlOiB1bmtub3duKTogdmFsdWUgaXMgQWxhcm0gPT4gdmFsdWUgIT09IG51bGwgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiBhbGFybVN5bWJvbCBpbiB2YWx1ZTtcblxuY29uc3QgaXNSZXNvdXJjZVBhcmFtUmVmZXJlbmNlID0gKHZhbHVlOiB1bmtub3duKTogdmFsdWUgaXMgUmVzb3VyY2VQYXJhbVJlZmVyZW5jZSA9PlxuICB2YWx1ZSAhPT0gbnVsbCAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIHJlc291cmNlUGFyYW1SZWZTeW1ib2wgaW4gdmFsdWU7XG5cbmNvbnN0IGRlZmVycmVkTmFtZVN5bWJvbCA9IFN5bWJvbC5mb3IoJ3N0YWNrdGFwZTppc0RlZmVycmVkUmVzb3VyY2VOYW1lJyk7XG5cbmNvbnN0IGlzRGVmZXJyZWRSZXNvdXJjZU5hbWUgPSAodmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBEZWZlcnJlZFJlc291cmNlTmFtZSA9PlxuICB2YWx1ZSAhPT0gbnVsbCAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIGRlZmVycmVkTmFtZVN5bWJvbCBpbiB2YWx1ZTtcblxuLyoqXG4gKiBBIGRlZmVycmVkIHJlZmVyZW5jZSB0byBhIHJlc291cmNlJ3MgbmFtZS5cbiAqIFVzZWQgd2hlbiBhY2Nlc3NpbmcgcmVzb3VyY2VOYW1lIGJlZm9yZSB0aGUgbmFtZSBpcyBzZXQuXG4gKiBSZXNvbHZlcyBsYXppbHkgZHVyaW5nIHRyYW5zZm9ybWF0aW9uLlxuICovXG5jbGFzcyBEZWZlcnJlZFJlc291cmNlTmFtZSB7XG4gIHByaXZhdGUgX19yZXNvdXJjZTogQmFzZVJlc291cmNlO1xuICByZWFkb25seSBbZGVmZXJyZWROYW1lU3ltYm9sXSA9IHRydWU7XG5cbiAgY29uc3RydWN0b3IocmVzb3VyY2U6IEJhc2VSZXNvdXJjZSkge1xuICAgIHRoaXMuX19yZXNvdXJjZSA9IHJlc291cmNlO1xuICB9XG5cbiAgcmVzb2x2ZSgpOiBzdHJpbmcge1xuICAgIC8vIEF0IHJlc29sdXRpb24gdGltZSwgdGhlIG5hbWUgc2hvdWxkIGJlIHNldFxuICAgIGNvbnN0IG5hbWUgPSAodGhpcy5fX3Jlc291cmNlIGFzIGFueSkuX3Jlc291cmNlTmFtZTtcbiAgICBpZiAobmFtZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdSZXNvdXJjZSBuYW1lIG5vdCBzZXQuIE1ha2Ugc3VyZSB0byBhZGQgdGhlIHJlc291cmNlIHRvIHRoZSByZXNvdXJjZXMgb2JqZWN0IGluIHlvdXIgY29uZmlnLiAnICtcbiAgICAgICAgICAnVGhlIHJlc291cmNlIG5hbWUgaXMgYXV0b21hdGljYWxseSBkZXJpdmVkIGZyb20gdGhlIG9iamVjdCBrZXkuJ1xuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIG5hbWU7XG4gIH1cblxuICB0b1N0cmluZygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnJlc29sdmUoKTtcbiAgfVxuXG4gIHRvSlNPTigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnJlc29sdmUoKTtcbiAgfVxuXG4gIHZhbHVlT2YoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5yZXNvbHZlKCk7XG4gIH1cbn1cblxuLyoqXG4gKiBBIHJlZmVyZW5jZSB0byBhIHJlc291cmNlIHBhcmFtZXRlciB0aGF0IHdpbGwgYmUgcmVzb2x2ZWQgYXQgcnVudGltZS5cbiAqIFN0b3JlcyBhIHJlZmVyZW5jZSB0byB0aGUgcmVzb3VyY2UgZm9yIGxhenkgbmFtZSByZXNvbHV0aW9uLlxuICovXG5leHBvcnQgY2xhc3MgUmVzb3VyY2VQYXJhbVJlZmVyZW5jZSB7XG4gIHByaXZhdGUgX19yZXNvdXJjZTogQmFzZVJlc291cmNlO1xuICBwcml2YXRlIF9fcGFyYW06IHN0cmluZztcbiAgcmVhZG9ubHkgW3Jlc291cmNlUGFyYW1SZWZTeW1ib2xdID0gdHJ1ZTtcblxuICBjb25zdHJ1Y3RvcihyZXNvdXJjZTogQmFzZVJlc291cmNlLCBwYXJhbTogc3RyaW5nKSB7XG4gICAgdGhpcy5fX3Jlc291cmNlID0gcmVzb3VyY2U7XG4gICAgdGhpcy5fX3BhcmFtID0gcGFyYW07XG4gIH1cblxuICB0b1N0cmluZygpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJFJlc291cmNlUGFyYW0oJyR7dGhpcy5fX3Jlc291cmNlLnJlc291cmNlTmFtZX0nLCAnJHt0aGlzLl9fcGFyYW19JylgO1xuICB9XG5cbiAgdG9KU09OKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudG9TdHJpbmcoKTtcbiAgfVxuXG4gIC8vIEFsbG93IHRoZSByZWZlcmVuY2UgdG8gYmUgdXNlZCBkaXJlY3RseSBpbiB0ZW1wbGF0ZSBzdHJpbmdzXG4gIHZhbHVlT2YoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy50b1N0cmluZygpO1xuICB9XG59XG5cbi8qKlxuICogQmFzZSBjbGFzcyBmb3IgdHlwZS9wcm9wZXJ0aWVzIHN0cnVjdHVyZXMgKGVuZ2luZXMsIHBhY2thZ2luZywgZXZlbnRzLCBldGMuKVxuICovXG5leHBvcnQgY2xhc3MgQmFzZVR5cGVQcm9wZXJ0aWVzIHtcbiAgcHVibGljIHJlYWRvbmx5IHR5cGU6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IHByb3BlcnRpZXM6IGFueTtcbiAgcmVhZG9ubHkgW2Jhc2VUeXBlUHJvcGVydGllc1N5bWJvbF0gPSB0cnVlO1xuXG4gIGNvbnN0cnVjdG9yKHR5cGU6IHN0cmluZywgcHJvcGVydGllczogYW55KSB7XG4gICAgdGhpcy50eXBlID0gdHlwZTtcbiAgICB0aGlzLnByb3BlcnRpZXMgPSBwcm9wZXJ0aWVzO1xuICB9XG59XG5cbi8qKlxuICogQmFzZSBjbGFzcyBmb3IgdHlwZS1vbmx5IHN0cnVjdHVyZXMgKG5vIHByb3BlcnRpZXMgZmllbGQsIGp1c3QgdHlwZSBkaXNjcmltaW5hdG9yKVxuICovXG5leHBvcnQgY2xhc3MgQmFzZVR5cGVPbmx5IHtcbiAgcHVibGljIHJlYWRvbmx5IHR5cGU6IHN0cmluZztcbiAgcmVhZG9ubHkgW2Jhc2VUeXBlUHJvcGVydGllc1N5bWJvbF0gPSB0cnVlO1xuXG4gIGNvbnN0cnVjdG9yKHR5cGU6IHN0cmluZykge1xuICAgIHRoaXMudHlwZSA9IHR5cGU7XG4gIH1cbn1cblxuLyoqXG4gKiBEZWZpbmVzIGEgQ2xvdWRXYXRjaCBhbGFybSB0aGF0IG1vbml0b3JzIGEgbWV0cmljIGFuZCB0cmlnZ2VycyBub3RpZmljYXRpb25zIHdoZW4gdGhyZXNob2xkcyBhcmUgYnJlYWNoZWQuXG4gKlxuICogQWxhcm1zIGNhbiBiZSBhdHRhY2hlZCB0byByZXNvdXJjZXMgbGlrZSBMYW1iZGEgZnVuY3Rpb25zLCBkYXRhYmFzZXMsIGxvYWQgYmFsYW5jZXJzLCBTUVMgcXVldWVzLCBhbmQgSFRUUCBBUEkgR2F0ZXdheXMuXG4gKiBXaGVuIHRoZSBhbGFybSBjb25kaXRpb24gaXMgbWV0IChlLmcuLCBlcnJvciByYXRlIGV4Y2VlZHMgNSUpLCBub3RpZmljYXRpb25zIGFyZSBzZW50IHRvIGNvbmZpZ3VyZWQgdGFyZ2V0cyAoU2xhY2ssIGVtYWlsLCBNUyBUZWFtcykuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzXG4gKiBuZXcgQWxhcm0oe1xuICogICB0cmlnZ2VyOiBuZXcgTGFtYmRhRXJyb3JSYXRlVHJpZ2dlcih7IHRocmVzaG9sZFBlcmNlbnQ6IDUgfSksXG4gKiAgIGV2YWx1YXRpb246IHsgcGVyaW9kOiA2MCwgZXZhbHVhdGlvblBlcmlvZHM6IDMsIGJyZWFjaGVkUGVyaW9kczogMiB9LFxuICogICBub3RpZmljYXRpb25UYXJnZXRzOiBbeyBzbGFjazogeyB1cmw6ICRTZWNyZXQoJ3NsYWNrLXdlYmhvb2stdXJsJykgfSB9XSxcbiAqICAgZGVzY3JpcHRpb246ICdMYW1iZGEgZXJyb3IgcmF0ZSBleGNlZWRlZCA1JSdcbiAqIH0pXG4gKiBgYGBcbiAqL1xuZXhwb3J0IGNsYXNzIEFsYXJtIHtcbiAgcmVhZG9ubHkgW2FsYXJtU3ltYm9sXSA9IHRydWU7XG4gIHB1YmxpYyByZWFkb25seSB0cmlnZ2VyOiBhbnk7XG4gIHB1YmxpYyByZWFkb25seSBldmFsdWF0aW9uPzogYW55O1xuICBwdWJsaWMgcmVhZG9ubHkgbm90aWZpY2F0aW9uVGFyZ2V0cz86IGFueVtdO1xuICBwdWJsaWMgcmVhZG9ubHkgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IocHJvcHM6IHsgdHJpZ2dlcjogYW55OyBldmFsdWF0aW9uPzogYW55OyBub3RpZmljYXRpb25UYXJnZXRzPzogYW55W107IGRlc2NyaXB0aW9uPzogc3RyaW5nIH0pIHtcbiAgICB0aGlzLnRyaWdnZXIgPSBwcm9wcy50cmlnZ2VyO1xuICAgIHRoaXMuZXZhbHVhdGlvbiA9IHByb3BzLmV2YWx1YXRpb247XG4gICAgdGhpcy5ub3RpZmljYXRpb25UYXJnZXRzID0gcHJvcHMubm90aWZpY2F0aW9uVGFyZ2V0cztcbiAgICB0aGlzLmRlc2NyaXB0aW9uID0gcHJvcHMuZGVzY3JpcHRpb247XG4gIH1cbn1cblxuLyoqXG4gKiBCYXNlIHJlc291cmNlIGNsYXNzIHRoYXQgcHJvdmlkZXMgY29tbW9uIGZ1bmN0aW9uYWxpdHlcbiAqL1xuZXhwb3J0IGNsYXNzIEJhc2VSZXNvdXJjZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3R5cGU6IHN0cmluZztcbiAgcHJpdmF0ZSBfcHJvcGVydGllczogYW55O1xuICBwcml2YXRlIF9vdmVycmlkZXM/OiBhbnk7XG4gIHByaXZhdGUgX3RyYW5zZm9ybXM/OiBhbnk7XG4gIHByaXZhdGUgX3Jlc291cmNlTmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIF9leHBsaWNpdE5hbWU6IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IobmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkLCB0eXBlOiBzdHJpbmcsIHByb3BlcnRpZXM6IGFueSwgb3ZlcnJpZGVzPzogYW55KSB7XG4gICAgdGhpcy5fcmVzb3VyY2VOYW1lID0gbmFtZTtcbiAgICB0aGlzLl9leHBsaWNpdE5hbWUgPSBuYW1lICE9PSB1bmRlZmluZWQ7XG4gICAgdGhpcy5fdHlwZSA9IHR5cGU7XG5cbiAgICAvLyBTdG9yZSBwcm9wZXJ0aWVzIGFuZCBvdmVycmlkZXMgaW5pdGlhbGx5IC0gdGhleSdsbCBiZSBwcm9jZXNzZWQgd2hlbiBuYW1lIGlzIHNldFxuICAgIHRoaXMuX3Byb3BlcnRpZXMgPSBwcm9wZXJ0aWVzO1xuICAgIHRoaXMuX292ZXJyaWRlcyA9IG92ZXJyaWRlcztcblxuICAgIC8vIElmIG5hbWUgaXMgYWxyZWFkeSBzZXQsIHByb2Nlc3Mgb3ZlcnJpZGVzIGFuZCB0cmFuc2Zvcm1zIG5vd1xuICAgIGlmIChuYW1lICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuX3Byb2Nlc3NPdmVycmlkZXNBbmRUcmFuc2Zvcm1zKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFByb2Nlc3Mgb3ZlcnJpZGVzIGFuZCB0cmFuc2Zvcm1zIGV4dHJhY3Rpb24gZnJvbSBwcm9wZXJ0aWVzLlxuICAgKiBDYWxsZWQgd2hlbiB0aGUgcmVzb3VyY2UgbmFtZSBpcyBhdmFpbGFibGUuXG4gICAqL1xuICBwcml2YXRlIF9wcm9jZXNzT3ZlcnJpZGVzQW5kVHJhbnNmb3JtcygpOiB2b2lkIHtcbiAgICBjb25zdCBwcm9wZXJ0aWVzID0gdGhpcy5fcHJvcGVydGllcztcbiAgICBpZiAocHJvcGVydGllcyAmJiB0eXBlb2YgcHJvcGVydGllcyA9PT0gJ29iamVjdCcpIHtcbiAgICAgIC8vIENsb25lIHByb3BlcnRpZXMgd2l0aG91dCBvdmVycmlkZXMgYW5kIHRyYW5zZm9ybXNcbiAgICAgIGNvbnN0IGZpbmFsUHJvcGVydGllcyA9IHsgLi4ucHJvcGVydGllcyB9O1xuXG4gICAgICAvLyBIYW5kbGUgb3ZlcnJpZGVzIGZyb20gcHJvcGVydGllcyAoaWYgdGhleSB3ZXJlbid0IGV4dHJhY3RlZCBieSBjaGlsZCBjbGFzcylcbiAgICAgIGlmICgnb3ZlcnJpZGVzJyBpbiBmaW5hbFByb3BlcnRpZXMpIHtcbiAgICAgICAgY29uc3QgcHJvcGVydGllc092ZXJyaWRlcyA9IGZpbmFsUHJvcGVydGllcy5vdmVycmlkZXM7XG4gICAgICAgIGRlbGV0ZSBmaW5hbFByb3BlcnRpZXMub3ZlcnJpZGVzO1xuXG4gICAgICAgIC8vIFRyYW5zZm9ybSBvdmVycmlkZXMgdXNpbmcgY2ZMb2dpY2FsTmFtZXNcbiAgICAgICAgaWYgKHByb3BlcnRpZXNPdmVycmlkZXMgJiYgdHlwZW9mIHByb3BlcnRpZXNPdmVycmlkZXMgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgdGhpcy5fb3ZlcnJpZGVzID0gdHJhbnNmb3JtT3ZlcnJpZGVzVG9Mb2dpY2FsTmFtZXModGhpcy5fcmVzb3VyY2VOYW1lISwgdGhpcy5fdHlwZSwgcHJvcGVydGllc092ZXJyaWRlcyk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gSGFuZGxlIHRyYW5zZm9ybXMgZnJvbSBwcm9wZXJ0aWVzIChpZiB0aGV5IHdlcmVuJ3QgZXh0cmFjdGVkIGJ5IGNoaWxkIGNsYXNzKVxuICAgICAgaWYgKCd0cmFuc2Zvcm1zJyBpbiBmaW5hbFByb3BlcnRpZXMpIHtcbiAgICAgICAgY29uc3QgcHJvcGVydGllc1RyYW5zZm9ybXMgPSBmaW5hbFByb3BlcnRpZXMudHJhbnNmb3JtcztcbiAgICAgICAgZGVsZXRlIGZpbmFsUHJvcGVydGllcy50cmFuc2Zvcm1zO1xuXG4gICAgICAgIC8vIFRyYW5zZm9ybSB0cmFuc2Zvcm1zIHVzaW5nIGNmTG9naWNhbE5hbWVzIChzYW1lIG1hcHBpbmcgYXMgb3ZlcnJpZGVzKVxuICAgICAgICBpZiAocHJvcGVydGllc1RyYW5zZm9ybXMgJiYgdHlwZW9mIHByb3BlcnRpZXNUcmFuc2Zvcm1zID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgIHRoaXMuX3RyYW5zZm9ybXMgPSB0cmFuc2Zvcm1UcmFuc2Zvcm1zVG9Mb2dpY2FsTmFtZXModGhpcy5fcmVzb3VyY2VOYW1lISwgdGhpcy5fdHlwZSwgcHJvcGVydGllc1RyYW5zZm9ybXMpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHRoaXMuX3Byb3BlcnRpZXMgPSBmaW5hbFByb3BlcnRpZXM7XG4gICAgfVxuXG4gICAgLy8gQWxzbyB0cmFuc2Zvcm0gb3ZlcnJpZGVzL3RyYW5zZm9ybXMgdGhhdCB3ZXJlIHBhc3NlZCBkaXJlY3RseSB2aWEgY29uc3RydWN0b3JcbiAgICAvLyAod2hlbiBjaGlsZCBjbGFzcyBleHRyYWN0cyB0aGVtIGJlZm9yZSBjYWxsaW5nIHN1cGVyKVxuICAgIGlmICh0aGlzLl9vdmVycmlkZXMgJiYgdHlwZW9mIHRoaXMuX292ZXJyaWRlcyA9PT0gJ29iamVjdCcpIHtcbiAgICAgIHRoaXMuX292ZXJyaWRlcyA9IHRyYW5zZm9ybU92ZXJyaWRlc1RvTG9naWNhbE5hbWVzKHRoaXMuX3Jlc291cmNlTmFtZSEsIHRoaXMuX3R5cGUsIHRoaXMuX292ZXJyaWRlcyk7XG4gICAgfVxuICAgIGlmICh0aGlzLl90cmFuc2Zvcm1zICYmIHR5cGVvZiB0aGlzLl90cmFuc2Zvcm1zID09PSAnb2JqZWN0Jykge1xuICAgICAgdGhpcy5fdHJhbnNmb3JtcyA9IHRyYW5zZm9ybVRyYW5zZm9ybXNUb0xvZ2ljYWxOYW1lcyh0aGlzLl9yZXNvdXJjZU5hbWUhLCB0aGlzLl90eXBlLCB0aGlzLl90cmFuc2Zvcm1zKTtcbiAgICB9XG4gIH1cblxuICAvLyBQdWJsaWMgZ2V0dGVyIGZvciByZXNvdXJjZSBuYW1lICh1c2VkIGZvciByZWZlcmVuY2luZyByZXNvdXJjZXMpXG4gIC8vIFJldHVybnMgYSBkZWZlcnJlZCByZWZlcmVuY2Ugd2hlbiBuYW1lIGlzbid0IHNldCB5ZXQsIHdoaWNoIHJlc29sdmVzIGR1cmluZyB0cmFuc2Zvcm1hdGlvblxuICBnZXQgcmVzb3VyY2VOYW1lKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuX3Jlc291cmNlTmFtZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAvLyBSZXR1cm4gYSBkZWZlcnJlZCByZWZlcmVuY2UgdGhhdCB3aWxsIHJlc29sdmUgZHVyaW5nIHRyYW5zZm9ybWF0aW9uXG4gICAgICAvLyBUeXBlU2NyaXB0IHNlZXMgdGhpcyBhcyBzdHJpbmcgZHVlIHRvIHRvU3RyaW5nL3ZhbHVlT2YsIHJ1bnRpbWUgcmVzb2x2ZXMgbGF6aWx5XG4gICAgICByZXR1cm4gbmV3IERlZmVycmVkUmVzb3VyY2VOYW1lKHRoaXMpIGFzIHVua25vd24gYXMgc3RyaW5nO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fcmVzb3VyY2VOYW1lO1xuICB9XG5cbiAgLyoqXG4gICAqIEludGVybmFsIG1ldGhvZCB0byBzZXQgdGhlIHJlc291cmNlIG5hbWUgZnJvbSB0aGUgb2JqZWN0IGtleS5cbiAgICogQ2FsbGVkIGJ5IHRyYW5zZm9ybUNvbmZpZ1dpdGhSZXNvdXJjZXMuXG4gICAqL1xuICBbc2V0UmVzb3VyY2VOYW1lU3ltYm9sXShuYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fZXhwbGljaXROYW1lICYmIHRoaXMuX3Jlc291cmNlTmFtZSAhPT0gbmFtZSkge1xuICAgICAgLy8gSWYgYW4gZXhwbGljaXQgbmFtZSB3YXMgcHJvdmlkZWQgYW5kIGl0IGRpZmZlcnMgZnJvbSB0aGUga2V5LCB1c2UgdGhlIGV4cGxpY2l0IG5hbWVcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHRoaXMuX3Jlc291cmNlTmFtZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLl9yZXNvdXJjZU5hbWUgPSBuYW1lO1xuICAgICAgLy8gTm93IHRoYXQgd2UgaGF2ZSBhIG5hbWUsIHByb2Nlc3Mgb3ZlcnJpZGVzIGFuZCB0cmFuc2Zvcm1zXG4gICAgICB0aGlzLl9wcm9jZXNzT3ZlcnJpZGVzQW5kVHJhbnNmb3JtcygpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFByaXZhdGUgbWV0aG9kcyB1c2luZyBzeW1ib2xzIC0gbm90IGFjY2Vzc2libGUgZnJvbSBvdXRzaWRlIG9yIGluIGF1dG9jb21wbGV0ZVxuICBbZ2V0UGFyYW1SZWZlcmVuY2VTeW1ib2xdKHBhcmFtTmFtZTogc3RyaW5nKTogUmVzb3VyY2VQYXJhbVJlZmVyZW5jZSB7XG4gICAgcmV0dXJuIG5ldyBSZXNvdXJjZVBhcmFtUmVmZXJlbmNlKHRoaXMsIHBhcmFtTmFtZSk7XG4gIH1cblxuICBbZ2V0VHlwZVN5bWJvbF0oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fdHlwZTtcbiAgfVxuXG4gIFtnZXRQcm9wZXJ0aWVzU3ltYm9sXSgpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLl9wcm9wZXJ0aWVzO1xuICB9XG5cbiAgW2dldE92ZXJyaWRlc1N5bWJvbF0oKTogYW55IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fb3ZlcnJpZGVzO1xuICB9XG5cbiAgW2dldFRyYW5zZm9ybXNTeW1ib2xdKCk6IGFueSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX3RyYW5zZm9ybXM7XG4gIH1cbn1cblxuLyoqXG4gKiBGbGF0dGVuIG5lc3RlZCBvYmplY3RzIGludG8gZG90LW5vdGF0aW9uIHBhdGhzLlxuICogRS5nLiwgeyBTbXNDb25maWd1cmF0aW9uOiB7IEV4dGVybmFsSWQ6ICd2YWx1ZScgfSB9IGJlY29tZXMgeyAnU21zQ29uZmlndXJhdGlvbi5FeHRlcm5hbElkJzogJ3ZhbHVlJyB9XG4gKiBQcmVzZXJ2ZXMgYXJyYXlzIGFuZCBub24tcGxhaW4gb2JqZWN0cyBhcyBsZWFmIHZhbHVlcy5cbiAqL1xuZnVuY3Rpb24gZmxhdHRlblRvRG90Tm90YXRpb24ob2JqOiBhbnksIHByZWZpeCA9ICcnKTogUmVjb3JkPHN0cmluZywgYW55PiB7XG4gIGNvbnN0IHJlc3VsdDogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9O1xuXG4gIGZvciAoY29uc3Qga2V5IGluIG9iaikge1xuICAgIGNvbnN0IHZhbHVlID0gb2JqW2tleV07XG4gICAgY29uc3QgbmV3S2V5ID0gcHJlZml4ID8gYCR7cHJlZml4fS4ke2tleX1gIDoga2V5O1xuXG4gICAgLy8gQ2hlY2sgaWYgdmFsdWUgaXMgYSBwbGFpbiBvYmplY3QgKG5vdCBhcnJheSwgbm90IG51bGwsIG5vdCBzcGVjaWFsIHR5cGVzKVxuICAgIGlmICh2YWx1ZSAhPT0gbnVsbCAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmICFBcnJheS5pc0FycmF5KHZhbHVlKSAmJiB2YWx1ZS5jb25zdHJ1Y3RvciA9PT0gT2JqZWN0KSB7XG4gICAgICAvLyBSZWN1cnNpdmVseSBmbGF0dGVuIG5lc3RlZCBvYmplY3RzXG4gICAgICBPYmplY3QuYXNzaWduKHJlc3VsdCwgZmxhdHRlblRvRG90Tm90YXRpb24odmFsdWUsIG5ld0tleSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBMZWFmIHZhbHVlIC0ga2VlcCBhcyBpc1xuICAgICAgcmVzdWx0W25ld0tleV0gPSB2YWx1ZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufVxuXG4vKipcbiAqIFRyYW5zZm9ybSB1c2VyLWZyaWVuZGx5IG92ZXJyaWRlcyAod2l0aCBwcm9wZXJ0eSBuYW1lcyBsaWtlICdidWNrZXQnLCAnbGFtYmRhTG9nR3JvdXAnKVxuICogdG8gQ2xvdWRGb3JtYXRpb24gbG9naWNhbCBuYW1lcyB1c2luZyBjZkxvZ2ljYWxOYW1lc1xuICovXG5mdW5jdGlvbiB0cmFuc2Zvcm1PdmVycmlkZXNUb0xvZ2ljYWxOYW1lcyhyZXNvdXJjZU5hbWU6IHN0cmluZywgcmVzb3VyY2VUeXBlOiBzdHJpbmcsIG92ZXJyaWRlczogYW55KTogYW55IHtcbiAgLy8gR2V0IGNoaWxkIHJlc291cmNlcyBmb3IgdGhpcyByZXNvdXJjZSB0eXBlXG4gIGNvbnN0IGNoaWxkUmVzb3VyY2VzID0gQ0hJTERfUkVTT1VSQ0VTW3Jlc291cmNlVHlwZV0gfHwgW107XG5cbiAgLy8gQnVpbGQgYSBtYXAgb2YgcHJvcGVydHkgbmFtZXMgdG8gY2hpbGQgcmVzb3VyY2VzXG4gIGNvbnN0IHByb3BlcnR5TmFtZU1hcCA9IG5ldyBNYXA8c3RyaW5nLCBhbnk+KCk7XG5cbiAgZm9yIChjb25zdCBjaGlsZFJlc291cmNlIG9mIGNoaWxkUmVzb3VyY2VzKSB7XG4gICAgLy8gVGhlIGxvZ2ljYWxOYW1lIGZ1bmN0aW9uIGhhcyBhIG5hbWUgcHJvcGVydHkgdGhhdCBtYXRjaGVzIHRoZSBwcm9wZXJ0eSBuYW1lXG4gICAgaWYgKGNoaWxkUmVzb3VyY2UubG9naWNhbE5hbWUgJiYgY2hpbGRSZXNvdXJjZS5sb2dpY2FsTmFtZS5uYW1lKSB7XG4gICAgICBwcm9wZXJ0eU5hbWVNYXAuc2V0KGNoaWxkUmVzb3VyY2UubG9naWNhbE5hbWUubmFtZSwgY2hpbGRSZXNvdXJjZSk7XG4gICAgfVxuICB9XG5cbiAgLy8gVHJhbnNmb3JtIG92ZXJyaWRlcyBvYmplY3RcbiAgY29uc3QgdHJhbnNmb3JtZWRPdmVycmlkZXM6IGFueSA9IHt9O1xuICBjb25zdCBlcnJvck1lc3NhZ2UgPSBgT3ZlcnJpZGUgb2YgcHJvcGVydHkge3Byb3BlcnR5TmFtZX0gb2YgcmVzb3VyY2UgJHtyZXNvdXJjZU5hbWV9IGlzIG5vdCBzdXBwb3J0ZWQuXFxuXG5SZW1vdmUgdGhlIG92ZXJyaWRlLCBydW4gJ3N0YWNrdGFwZSBjb21waWxlOnRlbXBsYXRlJyBjb21tYW5kLCBhbmQgZmluZCB0aGUgbG9naWNhbCBuYW1lIG9mIHRoZSByZXNvdXJjZSB5b3Ugd2FudCB0byBvdmVycmlkZSBtYW51YWxseS4gVGhlbiBhZGQgaXQgdG8gdGhlIG92ZXJyaWRlcyBvYmplY3QuYDtcblxuICBmb3IgKGNvbnN0IHByb3BlcnR5TmFtZSBpbiBvdmVycmlkZXMpIHtcbiAgICBjb25zdCBjaGlsZFJlc291cmNlID0gcHJvcGVydHlOYW1lTWFwLmdldChwcm9wZXJ0eU5hbWUpO1xuXG4gICAgLy8gU2tpcCB1bnJlc29sdmFibGUgcmVzb3VyY2VzXG4gICAgaWYgKGNoaWxkUmVzb3VyY2U/LnVucmVzb2x2YWJsZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGVycm9yTWVzc2FnZS5yZXBsYWNlKCd7cHJvcGVydHlOYW1lfScsIHByb3BlcnR5TmFtZSkpO1xuICAgIH1cblxuICAgIGlmIChjaGlsZFJlc291cmNlKSB7XG4gICAgICBjb25zdCBsb2dpY2FsTmFtZUZuID0gY2hpbGRSZXNvdXJjZS5sb2dpY2FsTmFtZTtcbiAgICAgIC8vIENhbGwgdGhlIGNmTG9naWNhbE5hbWVzIGZ1bmN0aW9uIHRvIGdldCB0aGUgYWN0dWFsIENsb3VkRm9ybWF0aW9uIGxvZ2ljYWwgbmFtZVxuICAgICAgLy8gVHJ5IHdpdGggcmVzb3VyY2VOYW1lIGZpcnN0IChtb3N0IGNvbW1vbiksIHRoZW4gdHJ5IHdpdGhvdXQgYXJndW1lbnRzXG4gICAgICBsZXQgbG9naWNhbE5hbWU6IHN0cmluZztcbiAgICAgIHRyeSB7XG4gICAgICAgIGxvZ2ljYWxOYW1lID0gbG9naWNhbE5hbWVGbihyZXNvdXJjZU5hbWUpO1xuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgbG9naWNhbE5hbWUgPSBsb2dpY2FsTmFtZUZuKCk7XG4gICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgIC8vIElmIGJvdGggZmFpbCwgdXNlIHByb3BlcnR5IG5hbWUgYXMtaXNcbiAgICAgICAgICBsb2dpY2FsTmFtZSA9IHByb3BlcnR5TmFtZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKGxvZ2ljYWxOYW1lLmluY2x1ZGVzKCd1bmRlZmluZWQnKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoZXJyb3JNZXNzYWdlLnJlcGxhY2UoJ3twcm9wZXJ0eU5hbWV9JywgcHJvcGVydHlOYW1lKSk7XG4gICAgICB9XG4gICAgICAvLyBXaGVuIHVzaW5nIFNESyBwcm9wZXJ0eSBuYW1lcywgZmxhdHRlbiBuZXN0ZWQgb2JqZWN0cyB0byBkb3Qtbm90YXRpb25cbiAgICAgIC8vIHNvIHsgU21zQ29uZmlndXJhdGlvbjogeyBFeHRlcm5hbElkOiAneCcgfSB9IGJlY29tZXMgeyAnU21zQ29uZmlndXJhdGlvbi5FeHRlcm5hbElkJzogJ3gnIH1cbiAgICAgIGNvbnN0IG92ZXJyaWRlVmFsdWUgPSBvdmVycmlkZXNbcHJvcGVydHlOYW1lXTtcbiAgICAgIGlmICghdHJhbnNmb3JtZWRPdmVycmlkZXNbbG9naWNhbE5hbWVdKSB7XG4gICAgICAgIHRyYW5zZm9ybWVkT3ZlcnJpZGVzW2xvZ2ljYWxOYW1lXSA9IHt9O1xuICAgICAgfVxuICAgICAgT2JqZWN0LmFzc2lnbih0cmFuc2Zvcm1lZE92ZXJyaWRlc1tsb2dpY2FsTmFtZV0sIGZsYXR0ZW5Ub0RvdE5vdGF0aW9uKG92ZXJyaWRlVmFsdWUpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gSWYgbm90IGZvdW5kIGluIG1hcCwgdXNlIHByb3BlcnR5IG5hbWUgYXMtaXMgKENGIGxvZ2ljYWwgbmFtZSB1c2VkIGRpcmVjdGx5KVxuICAgICAgLy8gRG9uJ3QgZmxhdHRlbiAtIHVzZXIgaXMgdXNpbmcgQ0YgbG9naWNhbCBuYW1lcyBhbmQgbWF5IHdhbnQgZnVsbCBvYmplY3QgcmVwbGFjZW1lbnRcbiAgICAgIHRyYW5zZm9ybWVkT3ZlcnJpZGVzW3Byb3BlcnR5TmFtZV0gPSBvdmVycmlkZXNbcHJvcGVydHlOYW1lXTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdHJhbnNmb3JtZWRPdmVycmlkZXM7XG59XG5cbi8qKlxuICogVHJhbnNmb3JtIHVzZXItZnJpZW5kbHkgdHJhbnNmb3JtcyAod2l0aCBwcm9wZXJ0eSBuYW1lcyBsaWtlICdsYW1iZGEnLCAnbGFtYmRhTG9nR3JvdXAnKVxuICogdG8gQ2xvdWRGb3JtYXRpb24gbG9naWNhbCBuYW1lcyB1c2luZyBjZkxvZ2ljYWxOYW1lc1xuICogU2ltaWxhciB0byBvdmVycmlkZXMgYnV0IHRoZSB2YWx1ZXMgYXJlIGZ1bmN0aW9ucyBpbnN0ZWFkIG9mIG9iamVjdHNcbiAqL1xuZnVuY3Rpb24gdHJhbnNmb3JtVHJhbnNmb3Jtc1RvTG9naWNhbE5hbWVzKHJlc291cmNlTmFtZTogc3RyaW5nLCByZXNvdXJjZVR5cGU6IHN0cmluZywgdHJhbnNmb3JtczogYW55KTogYW55IHtcbiAgLy8gR2V0IGNoaWxkIHJlc291cmNlcyBmb3IgdGhpcyByZXNvdXJjZSB0eXBlXG4gIGNvbnN0IGNoaWxkUmVzb3VyY2VzID0gQ0hJTERfUkVTT1VSQ0VTW3Jlc291cmNlVHlwZV0gfHwgW107XG5cbiAgLy8gQnVpbGQgYSBtYXAgb2YgcHJvcGVydHkgbmFtZXMgdG8gY2hpbGQgcmVzb3VyY2VzXG4gIGNvbnN0IHByb3BlcnR5TmFtZU1hcCA9IG5ldyBNYXA8c3RyaW5nLCBhbnk+KCk7XG5cbiAgZm9yIChjb25zdCBjaGlsZFJlc291cmNlIG9mIGNoaWxkUmVzb3VyY2VzKSB7XG4gICAgLy8gVGhlIGxvZ2ljYWxOYW1lIGZ1bmN0aW9uIGhhcyBhIG5hbWUgcHJvcGVydHkgdGhhdCBtYXRjaGVzIHRoZSBwcm9wZXJ0eSBuYW1lXG4gICAgaWYgKGNoaWxkUmVzb3VyY2UubG9naWNhbE5hbWUgJiYgY2hpbGRSZXNvdXJjZS5sb2dpY2FsTmFtZS5uYW1lKSB7XG4gICAgICBwcm9wZXJ0eU5hbWVNYXAuc2V0KGNoaWxkUmVzb3VyY2UubG9naWNhbE5hbWUubmFtZSwgY2hpbGRSZXNvdXJjZSk7XG4gICAgfVxuICB9XG5cbiAgLy8gVHJhbnNmb3JtIHRyYW5zZm9ybXMgb2JqZWN0XG4gIGNvbnN0IHRyYW5zZm9ybWVkVHJhbnNmb3JtczogYW55ID0ge307XG4gIGNvbnN0IGVycm9yTWVzc2FnZSA9IGBUcmFuc2Zvcm0gb2YgcHJvcGVydHkge3Byb3BlcnR5TmFtZX0gb2YgcmVzb3VyY2UgJHtyZXNvdXJjZU5hbWV9IGlzIG5vdCBzdXBwb3J0ZWQuXFxuXG5SZW1vdmUgdGhlIHRyYW5zZm9ybSwgcnVuICdzdGFja3RhcGUgY29tcGlsZTp0ZW1wbGF0ZScgY29tbWFuZCwgYW5kIGZpbmQgdGhlIGxvZ2ljYWwgbmFtZSBvZiB0aGUgcmVzb3VyY2UgeW91IHdhbnQgdG8gdHJhbnNmb3JtIG1hbnVhbGx5LiBUaGVuIGFkZCBpdCB0byB0aGUgdHJhbnNmb3JtcyBvYmplY3QuYDtcblxuICBmb3IgKGNvbnN0IHByb3BlcnR5TmFtZSBpbiB0cmFuc2Zvcm1zKSB7XG4gICAgY29uc3QgY2hpbGRSZXNvdXJjZSA9IHByb3BlcnR5TmFtZU1hcC5nZXQocHJvcGVydHlOYW1lKTtcblxuICAgIC8vIFNraXAgdW5yZXNvbHZhYmxlIHJlc291cmNlc1xuICAgIGlmIChjaGlsZFJlc291cmNlPy51bnJlc29sdmFibGUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihlcnJvck1lc3NhZ2UucmVwbGFjZSgne3Byb3BlcnR5TmFtZX0nLCBwcm9wZXJ0eU5hbWUpKTtcbiAgICB9XG5cbiAgICBpZiAoY2hpbGRSZXNvdXJjZSkge1xuICAgICAgY29uc3QgbG9naWNhbE5hbWVGbiA9IGNoaWxkUmVzb3VyY2UubG9naWNhbE5hbWU7XG4gICAgICAvLyBDYWxsIHRoZSBjZkxvZ2ljYWxOYW1lcyBmdW5jdGlvbiB0byBnZXQgdGhlIGFjdHVhbCBDbG91ZEZvcm1hdGlvbiBsb2dpY2FsIG5hbWVcbiAgICAgIC8vIFRyeSB3aXRoIHJlc291cmNlTmFtZSBmaXJzdCAobW9zdCBjb21tb24pLCB0aGVuIHRyeSB3aXRob3V0IGFyZ3VtZW50c1xuICAgICAgbGV0IGxvZ2ljYWxOYW1lOiBzdHJpbmc7XG4gICAgICB0cnkge1xuICAgICAgICBsb2dpY2FsTmFtZSA9IGxvZ2ljYWxOYW1lRm4ocmVzb3VyY2VOYW1lKTtcbiAgICAgIH0gY2F0Y2gge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGxvZ2ljYWxOYW1lID0gbG9naWNhbE5hbWVGbigpO1xuICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAvLyBJZiBib3RoIGZhaWwsIHVzZSBwcm9wZXJ0eSBuYW1lIGFzLWlzXG4gICAgICAgICAgbG9naWNhbE5hbWUgPSBwcm9wZXJ0eU5hbWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChsb2dpY2FsTmFtZS5pbmNsdWRlcygndW5kZWZpbmVkJykpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGVycm9yTWVzc2FnZS5yZXBsYWNlKCd7cHJvcGVydHlOYW1lfScsIHByb3BlcnR5TmFtZSkpO1xuICAgICAgfVxuICAgICAgdHJhbnNmb3JtZWRUcmFuc2Zvcm1zW2xvZ2ljYWxOYW1lXSA9IHRyYW5zZm9ybXNbcHJvcGVydHlOYW1lXTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gSWYgbm90IGZvdW5kIGluIG1hcCwgdXNlIHByb3BlcnR5IG5hbWUgYXMtaXMgKHNob3VsZG4ndCBoYXBwZW4gd2l0aCBwcm9wZXIgdHlwZXMpXG4gICAgICB0cmFuc2Zvcm1lZFRyYW5zZm9ybXNbcHJvcGVydHlOYW1lXSA9IHRyYW5zZm9ybXNbcHJvcGVydHlOYW1lXTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdHJhbnNmb3JtZWRUcmFuc2Zvcm1zO1xufVxuXG5leHBvcnQgdHlwZSBHZXRDb25maWdQYXJhbXMgPSB7XG4gIC8qKlxuICAgKiBQcm9qZWN0IG5hbWUgdXNlZCBmb3IgdGhpcyBvcGVyYXRpb25cbiAgICovXG4gIHByb2plY3ROYW1lOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBTdGFnZSAoXCJlbnZpcm9ubWVudFwiKSB1c2VkIGZvciB0aGlzIG9wZXJhdGlvblxuICAgKi9cbiAgc3RhZ2U6IHN0cmluZztcbiAgLyoqXG4gICAqIEFXUyByZWdpb24gdXNlZCBmb3IgdGhpcyBvcGVyYXRpb25cbiAgICogVGhlIGxpc3Qgb2YgYXZhaWxhYmxlIHJlZ2lvbnMgaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmF3cy1zZXJ2aWNlcy5pbmZvL3JlZ2lvbnMuaHRtbFxuICAgKi9cbiAgcmVnaW9uOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBMaXN0IG9mIGFyZ3VtZW50cyBwYXNzZWQgdG8gdGhlIG9wZXJhdGlvblxuICAgKi9cbiAgY2xpQXJnczogU3RhY2t0YXBlQXJncztcbiAgLyoqXG4gICAqIFN0YWNrdGFwZSBjb21tYW5kIHVzZWQgdG8gcGVyZm9ybSB0aGlzIG9wZXJhdGlvbiAoY2FuIGJlIGVpdGhlciBkZXBsb3ksIGNvZGVidWlsZDpkZXBsb3ksIGRlbGV0ZSwgZXRjLilcbiAgICovXG4gIGNvbW1hbmQ6IHN0cmluZztcbiAgLyoqXG4gICAqIExvY2FsbHktY29uZmlndXJlZCBBV1MgcHJvZmlsZSB1c2VkIHRvIGV4ZWN1dGUgdGhlIG9wZXJhdGlvbi5cbiAgICogRG9lc24ndCBhcHBseSBpZiB5b3UgaGF2ZSB5b3VyIEFXUyBhY2NvdW50IGNvbm5lY3RlZCBpbiBcImF1dG9tYXRpY1wiIG1vZGUuXG4gICAqL1xuICBhd3NQcm9maWxlOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBJbmZvcm1hdGlvbiBhYm91dCB0aGUgdXNlciBwZXJmb3JtaW5nIHRoZSBzdGFjayBvcGVyYXRpb25cbiAgICovXG4gIHVzZXI6IHtcbiAgICBpZDogc3RyaW5nO1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBlbWFpbDogc3RyaW5nO1xuICB9O1xufTtcblxuLyoqXG4gKiBIZWxwZXIgZnVuY3Rpb24gdG8gZGVmaW5lIGEgY29uZmlnIHdpdGggYXV0b21hdGljIHRyYW5zZm9ybWF0aW9uXG4gKiBVc2UgdGhpcyB3aGVuIGV4cG9ydGluZyB5b3VyIGNvbmZpZyBmb3IgdGhlIFN0YWNrdGFwZSBDTElcbiAqL1xuZXhwb3J0IGNvbnN0IGRlZmluZUNvbmZpZyA9IChjb25maWdGbjogKHBhcmFtczogR2V0Q29uZmlnUGFyYW1zKSA9PiBTdGFja3RhcGVDb25maWcpID0+IHtcbiAgcmV0dXJuIChwYXJhbXM6IEdldENvbmZpZ1BhcmFtcykgPT4ge1xuICAgIGNvbnN0IGNvbmZpZyA9IGNvbmZpZ0ZuKHBhcmFtcyk7XG4gICAgcmV0dXJuIHRyYW5zZm9ybUNvbmZpZ1dpdGhSZXNvdXJjZXMoY29uZmlnKTtcbiAgfTtcbn07XG5cbi8qKlxuICogVHJhbnNmb3JtcyBhIGNvbmZpZyB3aXRoIHJlc291cmNlIGluc3RhbmNlcyBpbnRvIGEgcGxhaW4gY29uZmlnIG9iamVjdFxuICovXG5leHBvcnQgY29uc3QgdHJhbnNmb3JtQ29uZmlnV2l0aFJlc291cmNlcyA9IChjb25maWc6IGFueSk6IGFueSA9PiB7XG4gIGlmICghY29uZmlnIHx8IHR5cGVvZiBjb25maWcgIT09ICdvYmplY3QnKSB7XG4gICAgcmV0dXJuIGNvbmZpZztcbiAgfVxuXG4gIC8vIEZpcnN0IHBhc3M6IHNldCBhbGwgcmVzb3VyY2UgbmFtZXMgZnJvbSBvYmplY3Qga2V5c1xuICAvLyBUaGlzIG11c3QgaGFwcGVuIGJlZm9yZSBhbnkgdHJhbnNmb3JtYXRpb24gc28gdGhhdCBSZXNvdXJjZVBhcmFtUmVmZXJlbmNlcyBjYW4gcmVzb2x2ZSBuYW1lc1xuICBpZiAoY29uZmlnLnJlc291cmNlcyAmJiB0eXBlb2YgY29uZmlnLnJlc291cmNlcyA9PT0gJ29iamVjdCcpIHtcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBjb25maWcucmVzb3VyY2VzKSB7XG4gICAgICBjb25zdCByZXNvdXJjZSA9IGNvbmZpZy5yZXNvdXJjZXNba2V5XTtcbiAgICAgIGlmIChpc0Jhc2VSZXNvdXJjZShyZXNvdXJjZSkpIHtcbiAgICAgICAgKHJlc291cmNlIGFzIGFueSlbc2V0UmVzb3VyY2VOYW1lU3ltYm9sXShrZXkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFNlY29uZCBwYXNzOiB0cmFuc2Zvcm0gdGhlIGNvbmZpZ1xuICBjb25zdCByZXN1bHQ6IGFueSA9IHt9O1xuICBmb3IgKGNvbnN0IGtleSBpbiBjb25maWcpIHtcbiAgICBpZiAoa2V5ID09PSAncmVzb3VyY2VzJykge1xuICAgICAgLy8gUmVzb3VyY2VzIGFyZSB0cmFuc2Zvcm1lZCBhcyBkZWZpbml0aW9uc1xuICAgICAgcmVzdWx0W2tleV0gPSB0cmFuc2Zvcm1SZXNvdXJjZURlZmluaXRpb25zKGNvbmZpZ1trZXldKTtcbiAgICB9IGVsc2UgaWYgKGtleSA9PT0gJ3NjcmlwdHMnKSB7XG4gICAgICAvLyBTY3JpcHRzIGFyZSBhbHNvIHRyYW5zZm9ybWVkIGFzIGRlZmluaXRpb25zXG4gICAgICByZXN1bHRba2V5XSA9IHRyYW5zZm9ybVNjcmlwdERlZmluaXRpb25zKGNvbmZpZ1trZXldKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmVzdWx0W2tleV0gPSB0cmFuc2Zvcm1WYWx1ZShjb25maWdba2V5XSk7XG4gICAgfVxuICB9XG4gIHJldHVybiByZXN1bHQ7XG59O1xuXG4vKipcbiAqIFRyYW5zZm9ybXMgZW52aXJvbm1lbnQgb2JqZWN0IHRvIGFycmF5IGZvcm1hdFxuICovXG5jb25zdCB0cmFuc2Zvcm1FbnZpcm9ubWVudCA9IChlbnY6IGFueSk6IGFueSA9PiB7XG4gIGlmICghZW52IHx8IHR5cGVvZiBlbnYgIT09ICdvYmplY3QnIHx8IEFycmF5LmlzQXJyYXkoZW52KSkge1xuICAgIHJldHVybiBlbnY7XG4gIH1cblxuICAvLyBDb252ZXJ0IHsgS0VZOiB2YWx1ZSB9IHRvIFt7IG5hbWU6ICdLRVknLCB2YWx1ZSB9XVxuICByZXR1cm4gT2JqZWN0LmVudHJpZXMoZW52KS5tYXAoKFtuYW1lLCB2YWx1ZV0pID0+ICh7XG4gICAgbmFtZSxcbiAgICB2YWx1ZTogdHJhbnNmb3JtVmFsdWUodmFsdWUpXG4gIH0pKTtcbn07XG5cbi8qKlxuICogVHJhbnNmb3JtcyByZXNvdXJjZSBkZWZpbml0aW9ucyAodmFsdWVzIGluIHRoZSByZXNvdXJjZXMgb2JqZWN0KVxuICovXG5jb25zdCB0cmFuc2Zvcm1SZXNvdXJjZURlZmluaXRpb25zID0gKHJlc291cmNlczogYW55KTogYW55ID0+IHtcbiAgaWYgKCFyZXNvdXJjZXMgfHwgdHlwZW9mIHJlc291cmNlcyAhPT0gJ29iamVjdCcpIHtcbiAgICByZXR1cm4gcmVzb3VyY2VzO1xuICB9XG5cbiAgY29uc3QgcmVzdWx0OiBhbnkgPSB7fTtcbiAgZm9yIChjb25zdCBrZXkgaW4gcmVzb3VyY2VzKSB7XG4gICAgY29uc3QgcmVzb3VyY2UgPSByZXNvdXJjZXNba2V5XTtcbiAgICBpZiAoaXNCYXNlUmVzb3VyY2UocmVzb3VyY2UpKSB7XG4gICAgICBjb25zdCB0eXBlID0gKHJlc291cmNlIGFzIGFueSlbZ2V0VHlwZVN5bWJvbF0oKTtcbiAgICAgIGNvbnN0IHByb3BlcnRpZXMgPSAocmVzb3VyY2UgYXMgYW55KVtnZXRQcm9wZXJ0aWVzU3ltYm9sXSgpO1xuICAgICAgY29uc3Qgb3ZlcnJpZGVzID0gKHJlc291cmNlIGFzIGFueSlbZ2V0T3ZlcnJpZGVzU3ltYm9sXSgpO1xuICAgICAgY29uc3QgdHJhbnNmb3JtcyA9IChyZXNvdXJjZSBhcyBhbnkpW2dldFRyYW5zZm9ybXNTeW1ib2xdKCk7XG4gICAgICByZXN1bHRba2V5XSA9IHtcbiAgICAgICAgdHlwZSxcbiAgICAgICAgcHJvcGVydGllczogdHJhbnNmb3JtVmFsdWUocHJvcGVydGllcyksXG4gICAgICAgIC4uLihvdmVycmlkZXMgIT09IHVuZGVmaW5lZCAmJiB7IG92ZXJyaWRlczogdHJhbnNmb3JtVmFsdWUob3ZlcnJpZGVzKSB9KSxcbiAgICAgICAgLi4uKHRyYW5zZm9ybXMgIT09IHVuZGVmaW5lZCAmJiB7IHRyYW5zZm9ybXMgfSlcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlc3VsdFtrZXldID0gdHJhbnNmb3JtVmFsdWUocmVzb3VyY2UpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufTtcblxuLyoqXG4gKiBUcmFuc2Zvcm1zIHNjcmlwdCBkZWZpbml0aW9ucyAodmFsdWVzIGluIHRoZSBzY3JpcHRzIG9iamVjdClcbiAqL1xuY29uc3QgdHJhbnNmb3JtU2NyaXB0RGVmaW5pdGlvbnMgPSAoc2NyaXB0czogYW55KTogYW55ID0+IHtcbiAgaWYgKCFzY3JpcHRzIHx8IHR5cGVvZiBzY3JpcHRzICE9PSAnb2JqZWN0Jykge1xuICAgIHJldHVybiBzY3JpcHRzO1xuICB9XG5cbiAgY29uc3QgcmVzdWx0OiBhbnkgPSB7fTtcbiAgZm9yIChjb25zdCBrZXkgaW4gc2NyaXB0cykge1xuICAgIGNvbnN0IHNjcmlwdCA9IHNjcmlwdHNba2V5XTtcbiAgICBpZiAoaXNCYXNlVHlwZVByb3BlcnRpZXMoc2NyaXB0KSkge1xuICAgICAgcmVzdWx0W2tleV0gPSB7XG4gICAgICAgIHR5cGU6IHNjcmlwdC50eXBlLFxuICAgICAgICBwcm9wZXJ0aWVzOiB0cmFuc2Zvcm1WYWx1ZShzY3JpcHQucHJvcGVydGllcylcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlc3VsdFtrZXldID0gdHJhbnNmb3JtVmFsdWUoc2NyaXB0KTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn07XG5cbmV4cG9ydCBjb25zdCB0cmFuc2Zvcm1WYWx1ZSA9ICh2YWx1ZTogYW55KTogYW55ID0+IHtcbiAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICAvLyBUcmFuc2Zvcm0gRGVmZXJyZWRSZXNvdXJjZU5hbWUgLSByZXNvbHZlIHRvIGFjdHVhbCBuYW1lXG4gIGlmIChpc0RlZmVycmVkUmVzb3VyY2VOYW1lKHZhbHVlKSkge1xuICAgIHJldHVybiB2YWx1ZS5yZXNvbHZlKCk7XG4gIH1cblxuICAvLyBUcmFuc2Zvcm0gUmVzb3VyY2VQYXJhbVJlZmVyZW5jZVxuICBpZiAoaXNSZXNvdXJjZVBhcmFtUmVmZXJlbmNlKHZhbHVlKSkge1xuICAgIHJldHVybiB2YWx1ZS50b1N0cmluZygpO1xuICB9XG5cbiAgLy8gVHJhbnNmb3JtIEJhc2VSZXNvdXJjZSByZWZlcmVuY2VzIChub3QgZGVmaW5pdGlvbnMpIHRvIHJlc291cmNlTmFtZVxuICAvLyBUaGlzIGhhbmRsZXMgY2FzZXMgbGlrZSBjb25uZWN0VG86IFtkYXRhYmFzZV1cbiAgaWYgKGlzQmFzZVJlc291cmNlKHZhbHVlKSkge1xuICAgIHJldHVybiB2YWx1ZS5yZXNvdXJjZU5hbWU7XG4gIH1cblxuICAvLyBUcmFuc2Zvcm0gQmFzZVR5cGVQcm9wZXJ0aWVzIChlbmdpbmVzLCBwYWNrYWdpbmcsIGV2ZW50cykgdG8gcGxhaW4gb2JqZWN0XG4gIGlmIChpc0Jhc2VUeXBlUHJvcGVydGllcyh2YWx1ZSkpIHtcbiAgICAvLyBIYW5kbGUgdHlwZS1vbmx5IGNsYXNzZXMgKG5vIHByb3BlcnRpZXMpXG4gICAgaWYgKCEoJ3Byb3BlcnRpZXMnIGluIHZhbHVlKSB8fCB2YWx1ZS5wcm9wZXJ0aWVzID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiB7IHR5cGU6IHZhbHVlLnR5cGUgfTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IHZhbHVlLnR5cGUsXG4gICAgICBwcm9wZXJ0aWVzOiB0cmFuc2Zvcm1WYWx1ZSh2YWx1ZS5wcm9wZXJ0aWVzKVxuICAgIH07XG4gIH1cblxuICAvLyBUcmFuc2Zvcm0gQWxhcm0gY2xhc3MgdG8gcGxhaW4gb2JqZWN0XG4gIGlmIChpc0FsYXJtKHZhbHVlKSkge1xuICAgIGNvbnN0IHJlc3VsdDogYW55ID0ge1xuICAgICAgdHJpZ2dlcjogdHJhbnNmb3JtVmFsdWUodmFsdWUudHJpZ2dlcilcbiAgICB9O1xuICAgIGlmICh2YWx1ZS5ldmFsdWF0aW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJlc3VsdC5ldmFsdWF0aW9uID0gdHJhbnNmb3JtVmFsdWUodmFsdWUuZXZhbHVhdGlvbik7XG4gICAgfVxuICAgIGlmICh2YWx1ZS5ub3RpZmljYXRpb25UYXJnZXRzICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJlc3VsdC5ub3RpZmljYXRpb25UYXJnZXRzID0gdHJhbnNmb3JtVmFsdWUodmFsdWUubm90aWZpY2F0aW9uVGFyZ2V0cyk7XG4gICAgfVxuICAgIGlmICh2YWx1ZS5kZXNjcmlwdGlvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXN1bHQuZGVzY3JpcHRpb24gPSB2YWx1ZS5kZXNjcmlwdGlvbjtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8vIFRyYW5zZm9ybSBhcnJheXNcbiAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgcmV0dXJuIHZhbHVlLm1hcCgoaXRlbSkgPT4ge1xuICAgICAgLy8gSWYgaXQncyBhIHJlc291cmNlIGluc3RhbmNlIGluIGFuIGFycmF5IChlLmcuLCBjb25uZWN0VG8pLCB0cmFuc2Zvcm0gdG8gcmVzb3VyY2VOYW1lXG4gICAgICBpZiAoaXNCYXNlUmVzb3VyY2UoaXRlbSkpIHtcbiAgICAgICAgcmV0dXJuIGl0ZW0ucmVzb3VyY2VOYW1lO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRyYW5zZm9ybVZhbHVlKGl0ZW0pO1xuICAgIH0pO1xuICB9XG5cbiAgLy8gVHJhbnNmb3JtIG9iamVjdHNcbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcpIHtcbiAgICBjb25zdCByZXN1bHQ6IGFueSA9IHt9O1xuICAgIGZvciAoY29uc3Qga2V5IGluIHZhbHVlKSB7XG4gICAgICAvLyBTcGVjaWFsIGhhbmRsaW5nIGZvciBlbnZpcm9ubWVudCBhbmQgaW5qZWN0RW52aXJvbm1lbnQgcHJvcGVydGllc1xuICAgICAgaWYgKGtleSA9PT0gJ2Vudmlyb25tZW50JyB8fCBrZXkgPT09ICdpbmplY3RFbnZpcm9ubWVudCcpIHtcbiAgICAgICAgcmVzdWx0W2tleV0gPSB0cmFuc2Zvcm1FbnZpcm9ubWVudCh2YWx1ZVtrZXldKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc3VsdFtrZXldID0gdHJhbnNmb3JtVmFsdWUodmFsdWVba2V5XSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICByZXR1cm4gdmFsdWU7XG59O1xuIiwKICAgICIvKipcbiAqIFJldHVybnMgYSByZWZlcmVuY2UgdG8gYSByZXNvdXJjZSBwYXJhbWV0ZXIuXG4gKiBAcGFyYW0gcmVzb3VyY2VOYW1lIC0gVGhlIG5hbWUgb2YgdGhlIHJlc291cmNlIGFzIHNwZWNpZmllZCBpbiB0aGUgU3RhY2t0YXBlIGNvbmZpZy5cbiAqIEBwYXJhbSBwcm9wZXJ0eSAtIFRoZSBwcm9wZXJ0eSBvZiB0aGUgcmVzb3VyY2UuIFRoZSBsaXN0IG9mIHByb3BlcnRpZXMgaXMgYXZhaWxhYmxlIGluIHRoZSBTdGFja3RhcGUgZG9jcyBmb3IgZXZlcnkgZ2l2ZW4gcmVzb3VyY2UgdHlwZS5cbiAqL1xuZXhwb3J0IGNvbnN0ICRSZXNvdXJjZVBhcmFtID0gKHJlc291cmNlTmFtZTogc3RyaW5nLCBwcm9wZXJ0eTogc3RyaW5nKSA9PiB7XG4gIHJldHVybiBgJFJlc291cmNlUGFyYW0oJyR7cmVzb3VyY2VOYW1lfScsJyR7cHJvcGVydHl9JylgO1xufTtcblxuLyoqXG4gKiBSZXR1cm5zIGEgcmVmZXJlbmNlIHRvIGEgQ2xvdWRGb3JtYXRpb24gcmVzb3VyY2UgcGFyYW1ldGVyLlxuICogQHBhcmFtIGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VMb2dpY2FsSWQgLSBUaGUgbG9naWNhbCBuYW1lIG9mIHRoZSBDbG91ZGZvcm1hdGlvbiByZXNvdXJjZS5cbiAqIElmIHlvdSBhcmUgcmVmZXJlbmNpbmcgYSByZXNvdXJjZSBkZWZpbmVkIGluIHRoZSBjbG91ZGZvcm1hdGlvblJlc291cmNlcyBzZWN0aW9uLCB1c2UgaXRzIG5hbWUuXG4gKiBUbyByZWZlcmVuY2UgYSBjaGlsZCByZXNvdXJjZSBvZiBhIFN0YWNrdGFwZSByZXNvdXJjZSwgeW91IGNhbiBnZXQgYSBsaXN0IG9mIGNoaWxkIHJlc291cmNlcyB3aXRoIHRoZSBgc3RhY2t0YXBlIHN0YWNrLWluZm9gIGNvbW1hbmRcbiAqIEBwYXJhbSBwcm9wZXJ0eSAtIFRoZSBwYXJhbWV0ZXIgb2YgdGhlIENsb3VkZm9ybWF0aW9uIHJlc291cmNlIHRvIHJlZmVyZW5jZS5cbiAqIEZvciBhIGxpc3Qgb2YgYWxsIHJlZmVyZW5jZWFibGUgcGFyYW1ldGVycywgcmVmZXIgdG8gdGhlIFtSZWZlcmVuY2luZyBwYXJhbWV0ZXJzXShodHRwczovL2RvY3Muc3RhY2t0YXBlLmNvbS9jb25maWd1cmF0aW9uL3JlZmVyZW5jaW5nLXBhcmFtZXRlcnMjcGFyYW1ldGVycy1vZi1jbG91ZGZvcm1hdGlvbi1yZXNvdXJjZXMpIHNlY3Rpb24gaW4gdGhlIFN0YWNrdGFwZSBkb2NzLlxuICovXG5leHBvcnQgY29uc3QgJENmUmVzb3VyY2VQYXJhbSA9IChjbG91ZGZvcm1hdGlvblJlc291cmNlTG9naWNhbElkOiBzdHJpbmcsIHByb3BlcnR5OiBzdHJpbmcpID0+IHtcbiAgcmV0dXJuIGAkQ2ZSZXNvdXJjZVBhcmFtKCcke2Nsb3VkZm9ybWF0aW9uUmVzb3VyY2VMb2dpY2FsSWR9JywnJHtwcm9wZXJ0eX0nKWA7XG59O1xuXG4vKipcbiAqIFJldHVybnMgYSByZWZlcmVuY2UgdG8gYSBzZWNyZXQuXG4gKiBAcGFyYW0gc2VjcmV0TmFtZSAtIFRoZSBuYW1lIG9mIHRoZSBzZWNyZXQuIE11c3QgYmUgYSB2YWxpZCBzZWNyZXQgbmFtZSBpbiB0aGUgQVdTIFNlY3JldHMgTWFuYWdlciBpbiB0aGUgcmVnaW9uIHlvdSdyZSBkZXBsb3lpbmcgdG8uXG4gKiBJZiB0aGUgc2VjcmV0IGlzIGluIEpTT04gZm9ybWF0LCB5b3UgY2FuIGV4dHJhY3QgbmVzdGVkIHByb3BlcnRpZXMgdXNpbmcgZG90IG5vdGF0aW9uLlxuICogRXhhbXBsZTogYCRTZWNyZXQoJ215LXNlY3JldC5hcGkta2V5JylgIHdpbGwgcmV0dXJuIHRoZSB2YWx1ZSBvZiB0aGUgYGFwaS1rZXlgIHByb3BlcnR5IGluIHRoZSBgbXktc2VjcmV0YCBzZWNyZXQuXG4gKi9cbmV4cG9ydCBjb25zdCAkU2VjcmV0ID0gKHNlY3JldE5hbWU6IHN0cmluZykgPT4ge1xuICByZXR1cm4gYCRTZWNyZXQoJyR7c2VjcmV0TmFtZX0nKWA7XG59O1xuXG4vKipcbiAqIFJldHVybnMgYW4gaW50ZXJwb2xhdGVkIHN0cmluZy4gVW5saWtlIHRoZSAkRm9ybWF0KCkgZGlyZWN0aXZlLCB0aGUgJENmRm9ybWF0KCkgZGlyZWN0aXZlIGNhbiBjb250YWluIHJ1bnRpbWUtcmVzb2x2ZWQgZGlyZWN0aXZlcyBhcyBhcmd1bWVudHMuXG4gKiBAcGFyYW0gaW50ZXJwb2xhdGVkU3RyaW5nIC0gT2NjdXJyZW5jZXMgb2Yge30gYXJlIHJlcGxhY2VkIGJ5IHRoZSBzdWJzZXF1ZW50IGFyZ3VtZW50cy5cbiAqIEBwYXJhbSB2YWx1ZXMgLSBUaGUgbnVtYmVyIG9mIHZhbHVlcyBtdXN0IGJlIGVxdWFsIHRvIHRoZSBudW1iZXIgb2Yge30gcGxhY2Vob2xkZXJzIGluIHRoZSBmaXJzdCBhcmd1bWVudC5cbiAqIEV4YW1wbGU6XG4gKiBgJENmRm9ybWF0KCd7fS17fScsICdmb28nLCAnYmFyJylgIHJlc3VsdHMgaW4gYGZvby1iYXJgLlxuICogJENmRm9ybWF0KCd7fS1teWRvbWFpbi5jb20nLCAnZm9vJykgcmVzdWx0cyBpbiBmb28tbXlkb21haW4uY29tLlxuICogYCRDZkZvcm1hdCgne30ubXlkb21haW4uY29tJywgJFN0YWdlKCkpYCByZXN1bHRzIGluIGBzdGFnaW5nLm15ZG9tYWluLmNvbWAgaWYgdGhlIHN0YWdlIGlzIHN0YWdpbmcuXG4gKi9cbmV4cG9ydCBjb25zdCAkQ2ZGb3JtYXQgPSAoaW50ZXJwb2xhdGVkU3RyaW5nOiBzdHJpbmcsIC4uLnZhbHVlczogYW55W10pID0+IHtcbiAgcmV0dXJuIGAkQ2ZGb3JtYXQoJyR7aW50ZXJwb2xhdGVkU3RyaW5nfScsICcke3ZhbHVlcy5qb2luKCcsJyl9JylgO1xufTtcblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBvdXRwdXQgb2YgYW5vdGhlciBzdGFjaywgYWxsb3dpbmcgeW91IHRvIHJlZmVyZW5jZSByZXNvdXJjZXMgZGVwbG95ZWQgaW4gYW5vdGhlciBzdGFjay4gVGhlIHJlZmVyZW5jZWQgc3RhY2sgbXVzdCBhbHJlYWR5IGJlIGRlcGxveWVkLiBJZiB5b3UgdHJ5IHRvIGRlbGV0ZSBhIHN0YWNrIHRoYXQgaXMgcmVmZXJlbmNlZCBieSBhbm90aGVyIHN0YWNrLCB5b3Ugd2lsbCBnZXQgYW4gZXJyb3IuXG4gKiBUbyBnZXQgdGhlIG91dHB1dCBsb2NhbGx5IChpLmUuLCBkb3dubG9hZCB0aGUgdmFsdWUgYW5kIHBhc3MgaXQgdG8gdGhlIGNvbmZpZ3VyYXRpb24pLCB1c2UgdGhlICRTdGFja091dHB1dCgpIGRpcmVjdGl2ZS5cbiAqIEBwYXJhbSBzdGFja05hbWUgLSBUaGUgbmFtZSBvZiB0aGUgc3RhY2suXG4gKiBAcGFyYW0gb3V0cHV0TmFtZSAtIFRoZSBuYW1lIG9mIHRoZSBvdXRwdXQuXG4gKi9cbmV4cG9ydCBjb25zdCAkQ2ZTdGFja091dHB1dCA9IChzdGFja05hbWU6IHN0cmluZywgb3V0cHV0TmFtZTogc3RyaW5nKSA9PiB7XG4gIHJldHVybiBgJENmU3RhY2tPdXRwdXQoJyR7c3RhY2tOYW1lfScsJyR7b3V0cHV0TmFtZX0nKWA7XG59O1xuXG4vKipcbiAqIFJldHVybnMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGN1cnJlbnQgR2l0IHJlcG9zaXRvcnkuXG4gKlxuICogJEdpdEluZm8oKS5zaGExIC0gU0hBLTEgb2YgdGhlIGxhdGVzdCBjb21taXRcbiAqXG4gKiAkR2l0SW5mbygpLmNvbW1pdCAtIFRoZSBsYXRlc3QgY29tbWl0IElEXG4gKlxuICogJEdpdEluZm8oKS5icmFuY2ggLSBUaGUgbmFtZSBvZiB0aGUgY3VycmVudCBicmFuY2hcbiAqXG4gKiAkR2l0SW5mbygpLm1lc3NhZ2UgLSBUaGUgbWVzc2FnZSBvZiB0aGUgbGFzdCBjb21taXRcbiAqXG4gKiAkR2l0SW5mbygpLnVzZXIgLSBHaXQgdXNlcidzIG5hbWVcbiAqXG4gKiAkR2l0SW5mbygpLmVtYWlsIC0gR2l0IHVzZXIncyBlbWFpbFxuICpcbiAqICRHaXRJbmZvKCkucmVwb3NpdG9yeSAtIFRoZSBuYW1lIG9mIHRoZSBnaXQgcmVwb3NpdG9yeVxuICpcbiAqICRHaXRJbmZvKCkudGFncyAtIFRoZSB0YWdzIHBvaW50aW5nIHRvIHRoZSBjdXJyZW50IGNvbW1pdFxuICpcbiAqICRHaXRJbmZvKCkuZGVzY3JpYmUgLSBUaGUgbW9zdCByZWNlbnQgdGFnIHRoYXQgaXMgcmVhY2hhYmxlIGZyb20gYSBjb21taXRcbiAqL1xuZXhwb3J0IGNvbnN0ICRHaXRJbmZvID0gKCkgPT4ge1xuICByZXR1cm4gJyRHaXRJbmZvKCknO1xufTtcblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBjdXJyZW50IEFXUyByZWdpb24gd2hlcmUgdGhlIHN0YWNrIGlzIGJlaW5nIGRlcGxveWVkLlxuICogRXhhbXBsZTogYHVzLWVhc3QtMWBcbiAqL1xuZXhwb3J0IGNvbnN0ICRSZWdpb24gPSAoKSA9PiB7XG4gIHJldHVybiAnJFJlZ2lvbigpJztcbn07XG5cbi8qKlxuICogUmV0dXJucyB0aGUgY3VycmVudCBzdGFnZSBuYW1lLlxuICogRXhhbXBsZTogYHByb2R1Y3Rpb25gLCBgc3RhZ2luZ2AsIGBkZXZgXG4gKi9cbmV4cG9ydCBjb25zdCAkU3RhZ2UgPSAoKSA9PiB7XG4gIHJldHVybiAnJFN0YWdlKCknO1xufTtcbiIsCiAgICAiLyoqXG4gKiBBV1MgU0VTIChTaW1wbGUgRW1haWwgU2VydmljZSkgcmVmZXJlbmNlIGZvciBjb25uZWN0VG9cbiAqIEdyYW50cyBmdWxsIHBlcm1pc3Npb25zIGZvciBBV1MgU0VTIChzZXM6KilcbiAqL1xuZXhwb3J0IGNvbnN0IEFXU19TRVMgPSAnYXdzOnNlcycgYXMgY29uc3Q7XG5cbi8qKlxuICogVHlwZSB0aGF0IHJlcHJlc2VudHMgYW55IEFXUyBzZXJ2aWNlIGNvbnN0YW50XG4gKi9cbmV4cG9ydCB0eXBlIEdsb2JhbEF3c1NlcnZpY2VDb25zdGFudCA9IHR5cGVvZiBBV1NfU0VTO1xuIiwKICAgICIvKipcbiAqIFRoaXMgZmlsZSBkZWZpbmVzIHR5cGUtcHJvcGVydGllcyBzaGFwZWQgZGVmaW5pdGlvbnMgKGUuZy4gU3RhY2t0YXBlIHJlc291cmNlcywgcGFja2FnaW5nIHR5cGVzIGV0Yy4pXG4gKiB0aGF0IGNhbiBiZSBjb252ZXJ0ZWQgdG8gYSBUeXBlc2NyaXB0IGNsYXNzLiBUaGVzZSBjbGFzc2VzIGFyZSB0aGVuIGV4cG9ydGVkIGZyb20gc3RhY2t0YXBlL2NsYXNzZXNcbiAqXG4gKiBAZXhhbXBsZSBpbXBvcnQgeyBTdGFja3RhcGVMYW1iZGFCdWlsZHBhY2tQYWNrYWdpbmcgfSBmcm9tICdzdGFja3RhcGUvY2xhc3Nlcyc7XG4gKi9cblxuZXhwb3J0IHR5cGUgUmVzb3VyY2VDbGFzc05hbWUgPSBPbWl0PEtlYmFiVG9QYXNjYWxDYXNlPFN0cFJlc291cmNlVHlwZT4sICdGdW5jdGlvbic+IHwgJ0xhbWJkYUZ1bmN0aW9uJztcblxuZXhwb3J0IHR5cGUgUmVzb3VyY2VEZWZpbml0aW9uID0ge1xuICAvKiogQ2xhc3MgbmFtZSBmb3IgdGhlIHJlc291cmNlIChlLmcuLCAnTGFtYmRhRnVuY3Rpb24nKSAqL1xuICBjbGFzc05hbWU6IFJlc291cmNlQ2xhc3NOYW1lO1xuICAvKiogUmVzb3VyY2UgdHlwZSBpZGVudGlmaWVyIHVzZWQgaW4gY29uZmlnIChlLmcuLCAnZnVuY3Rpb24nKSAqL1xuICByZXNvdXJjZVR5cGU6IHN0cmluZztcbiAgLyoqIFByb3BzIHR5cGUgbmFtZSAoZS5nLiwgJ0xhbWJkYUZ1bmN0aW9uUHJvcHMnKSAqL1xuICBwcm9wc1R5cGU6IHN0cmluZztcbiAgLyoqIEludGVyZmFjZSBuYW1lIGluIHRoZSBzb3VyY2UgLmQudHMgZmlsZSAoZS5nLiwgJ0xhbWJkYUZ1bmN0aW9uJykgKi9cbiAgaW50ZXJmYWNlTmFtZTogc3RyaW5nO1xuICAvKiogU291cmNlIC5kLnRzIGZpbGUgbmFtZSAoZS5nLiwgJ2Z1bmN0aW9ucy5kLnRzJykgKi9cbiAgc291cmNlRmlsZTogc3RyaW5nO1xuICAvKiogUmVzb3VyY2VzIGFuZCBBV1Mgc2VydmljZXMgdGhpcyByZXNvdXJjZSBjYW4gY29ubmVjdCB0by4gR2xvYmFsQXdzU2VydmljZUNvbnN0YW50IGlzIGZvciBnbG9iYWwgc2VydmljZXMsIGUuZy4gYXdzOnNlcyAgKi9cbiAgY2FuQ29ubmVjdFRvPzogc3RyaW5nW107XG4gIC8qKiBXaGV0aGVyIHRoaXMgcmVzb3VyY2Ugc3VwcG9ydHMgb3ZlcnJpZGVzIChkZWZhdWx0OiB0cnVlKSAqL1xuICBzdXBwb3J0c092ZXJyaWRlcz86IGJvb2xlYW47XG4gIC8qKiBXaGV0aGVyIHRoaXMgcmVzb3VyY2UgaGFzIGF1Z21lbnRlZCBjb25uZWN0VG8vZW52aXJvbm1lbnQgcHJvcHMgKGRlZmF1bHQ6IGZhbHNlKSAqL1xuICBoYXNBdWdtZW50ZWRQcm9wcz86IGJvb2xlYW47XG59O1xuXG4vKipcbiAqIENvbXBsZXRlIGxpc3Qgb2YgYWxsIFN0YWNrdGFwZSByZXNvdXJjZXMuXG4gKiBUaGlzIGlzIHRoZSBzaW5nbGUgc291cmNlIG9mIHRydXRoIC0gYWxsIGNvZGUgZ2VuZXJhdGlvbiBkZXJpdmVzIGZyb20gdGhpcy5cbiAqL1xuZXhwb3J0IGNvbnN0IFJFU09VUkNFU19DT05WRVJUSUJMRV9UT19DTEFTU0VTOiBSZXNvdXJjZURlZmluaXRpb25bXSA9IFtcbiAge1xuICAgIGNsYXNzTmFtZTogJ1JlbGF0aW9uYWxEYXRhYmFzZScsXG4gICAgcmVzb3VyY2VUeXBlOiAncmVsYXRpb25hbC1kYXRhYmFzZScsXG4gICAgcHJvcHNUeXBlOiAnUmVsYXRpb25hbERhdGFiYXNlUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdSZWxhdGlvbmFsRGF0YWJhc2UnLFxuICAgIHNvdXJjZUZpbGU6ICdyZWxhdGlvbmFsLWRhdGFiYXNlcy5kLnRzJyxcbiAgICBjYW5Db25uZWN0VG86IFtdXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdXZWJTZXJ2aWNlJyxcbiAgICByZXNvdXJjZVR5cGU6ICd3ZWItc2VydmljZScsXG4gICAgcHJvcHNUeXBlOiAnV2ViU2VydmljZVByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnV2ViU2VydmljZScsXG4gICAgc291cmNlRmlsZTogJ3dlYi1zZXJ2aWNlcy5kLnRzJyxcbiAgICBoYXNBdWdtZW50ZWRQcm9wczogdHJ1ZSxcbiAgICBjYW5Db25uZWN0VG86IFtcbiAgICAgICdSZWxhdGlvbmFsRGF0YWJhc2UnLFxuICAgICAgJ0J1Y2tldCcsXG4gICAgICAnSG9zdGluZ0J1Y2tldCcsXG4gICAgICAnRHluYW1vRGJUYWJsZScsXG4gICAgICAnRXZlbnRCdXMnLFxuICAgICAgJ1JlZGlzQ2x1c3RlcicsXG4gICAgICAnTW9uZ29EYkF0bGFzQ2x1c3RlcicsXG4gICAgICAnVXBzdGFzaFJlZGlzJyxcbiAgICAgICdTcXNRdWV1ZScsXG4gICAgICAnU25zVG9waWMnLFxuICAgICAgJ0tpbmVzaXNTdHJlYW0nLFxuICAgICAgJ09wZW5TZWFyY2hEb21haW4nLFxuICAgICAgJ0Vmc0ZpbGVzeXN0ZW0nLFxuICAgICAgJ1ByaXZhdGVTZXJ2aWNlJ1xuICAgIF1cbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ1ByaXZhdGVTZXJ2aWNlJyxcbiAgICByZXNvdXJjZVR5cGU6ICdwcml2YXRlLXNlcnZpY2UnLFxuICAgIHByb3BzVHlwZTogJ1ByaXZhdGVTZXJ2aWNlUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdQcml2YXRlU2VydmljZScsXG4gICAgc291cmNlRmlsZTogJ3ByaXZhdGUtc2VydmljZXMuZC50cycsXG4gICAgaGFzQXVnbWVudGVkUHJvcHM6IHRydWUsXG4gICAgY2FuQ29ubmVjdFRvOiBbXG4gICAgICAnUmVsYXRpb25hbERhdGFiYXNlJyxcbiAgICAgICdCdWNrZXQnLFxuICAgICAgJ0hvc3RpbmdCdWNrZXQnLFxuICAgICAgJ0R5bmFtb0RiVGFibGUnLFxuICAgICAgJ0V2ZW50QnVzJyxcbiAgICAgICdSZWRpc0NsdXN0ZXInLFxuICAgICAgJ01vbmdvRGJBdGxhc0NsdXN0ZXInLFxuICAgICAgJ1Vwc3Rhc2hSZWRpcycsXG4gICAgICAnU3FzUXVldWUnLFxuICAgICAgJ1Nuc1RvcGljJyxcbiAgICAgICdLaW5lc2lzU3RyZWFtJyxcbiAgICAgICdPcGVuU2VhcmNoRG9tYWluJyxcbiAgICAgICdFZnNGaWxlc3lzdGVtJ1xuICAgIF1cbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ1dvcmtlclNlcnZpY2UnLFxuICAgIHJlc291cmNlVHlwZTogJ3dvcmtlci1zZXJ2aWNlJyxcbiAgICBwcm9wc1R5cGU6ICdXb3JrZXJTZXJ2aWNlUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdXb3JrZXJTZXJ2aWNlJyxcbiAgICBzb3VyY2VGaWxlOiAnd29ya2VyLXNlcnZpY2VzLmQudHMnLFxuICAgIGhhc0F1Z21lbnRlZFByb3BzOiB0cnVlLFxuICAgIGNhbkNvbm5lY3RUbzogW1xuICAgICAgJ1JlbGF0aW9uYWxEYXRhYmFzZScsXG4gICAgICAnQnVja2V0JyxcbiAgICAgICdIb3N0aW5nQnVja2V0JyxcbiAgICAgICdEeW5hbW9EYlRhYmxlJyxcbiAgICAgICdFdmVudEJ1cycsXG4gICAgICAnUmVkaXNDbHVzdGVyJyxcbiAgICAgICdNb25nb0RiQXRsYXNDbHVzdGVyJyxcbiAgICAgICdVcHN0YXNoUmVkaXMnLFxuICAgICAgJ1Nxc1F1ZXVlJyxcbiAgICAgICdTbnNUb3BpYycsXG4gICAgICAnS2luZXNpc1N0cmVhbScsXG4gICAgICAnT3BlblNlYXJjaERvbWFpbicsXG4gICAgICAnRWZzRmlsZXN5c3RlbSdcbiAgICBdXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdNdWx0aUNvbnRhaW5lcldvcmtsb2FkJyxcbiAgICByZXNvdXJjZVR5cGU6ICdtdWx0aS1jb250YWluZXItd29ya2xvYWQnLFxuICAgIHByb3BzVHlwZTogJ0NvbnRhaW5lcldvcmtsb2FkUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdNdWx0aUNvbnRhaW5lcldvcmtsb2FkJyxcbiAgICBzb3VyY2VGaWxlOiAnbXVsdGktY29udGFpbmVyLXdvcmtsb2Fkcy5kLnRzJyxcbiAgICBoYXNBdWdtZW50ZWRQcm9wczogdHJ1ZSxcbiAgICBjYW5Db25uZWN0VG86IFtcbiAgICAgICdSZWxhdGlvbmFsRGF0YWJhc2UnLFxuICAgICAgJ0J1Y2tldCcsXG4gICAgICAnSG9zdGluZ0J1Y2tldCcsXG4gICAgICAnRHluYW1vRGJUYWJsZScsXG4gICAgICAnRXZlbnRCdXMnLFxuICAgICAgJ1JlZGlzQ2x1c3RlcicsXG4gICAgICAnTW9uZ29EYkF0bGFzQ2x1c3RlcicsXG4gICAgICAnVXBzdGFzaFJlZGlzJyxcbiAgICAgICdTcXNRdWV1ZScsXG4gICAgICAnU25zVG9waWMnLFxuICAgICAgJ0tpbmVzaXNTdHJlYW0nLFxuICAgICAgJ09wZW5TZWFyY2hEb21haW4nLFxuICAgICAgJ0Vmc0ZpbGVzeXN0ZW0nLFxuICAgICAgJ0xhbWJkYUZ1bmN0aW9uJyxcbiAgICAgICdCYXRjaEpvYicsXG4gICAgICAnVXNlckF1dGhQb29sJ1xuICAgIF1cbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ0xhbWJkYUZ1bmN0aW9uJyxcbiAgICByZXNvdXJjZVR5cGU6ICdmdW5jdGlvbicsXG4gICAgcHJvcHNUeXBlOiAnTGFtYmRhRnVuY3Rpb25Qcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0xhbWJkYUZ1bmN0aW9uJyxcbiAgICBzb3VyY2VGaWxlOiAnZnVuY3Rpb25zLmQudHMnLFxuICAgIGhhc0F1Z21lbnRlZFByb3BzOiB0cnVlLFxuICAgIGNhbkNvbm5lY3RUbzogW1xuICAgICAgJ1JlbGF0aW9uYWxEYXRhYmFzZScsXG4gICAgICAnQnVja2V0JyxcbiAgICAgICdIb3N0aW5nQnVja2V0JyxcbiAgICAgICdEeW5hbW9EYlRhYmxlJyxcbiAgICAgICdFdmVudEJ1cycsXG4gICAgICAnUmVkaXNDbHVzdGVyJyxcbiAgICAgICdNb25nb0RiQXRsYXNDbHVzdGVyJyxcbiAgICAgICdVcHN0YXNoUmVkaXMnLFxuICAgICAgJ1Nxc1F1ZXVlJyxcbiAgICAgICdTbnNUb3BpYycsXG4gICAgICAnS2luZXNpc1N0cmVhbScsXG4gICAgICAnT3BlblNlYXJjaERvbWFpbicsXG4gICAgICAnRWZzRmlsZXN5c3RlbScsXG4gICAgICAnUHJpdmF0ZVNlcnZpY2UnLFxuICAgICAgJ1dlYlNlcnZpY2UnLFxuICAgICAgJ0xhbWJkYUZ1bmN0aW9uJyxcbiAgICAgICdCYXRjaEpvYicsXG4gICAgICAnVXNlckF1dGhQb29sJ1xuICAgIF1cbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ0JhdGNoSm9iJyxcbiAgICByZXNvdXJjZVR5cGU6ICdiYXRjaC1qb2InLFxuICAgIHByb3BzVHlwZTogJ0JhdGNoSm9iUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdCYXRjaEpvYicsXG4gICAgc291cmNlRmlsZTogJ2JhdGNoLWpvYnMuZC50cycsXG4gICAgaGFzQXVnbWVudGVkUHJvcHM6IHRydWUsXG4gICAgY2FuQ29ubmVjdFRvOiBbXG4gICAgICAnUmVsYXRpb25hbERhdGFiYXNlJyxcbiAgICAgICdCdWNrZXQnLFxuICAgICAgJ0hvc3RpbmdCdWNrZXQnLFxuICAgICAgJ0R5bmFtb0RiVGFibGUnLFxuICAgICAgJ0V2ZW50QnVzJyxcbiAgICAgICdSZWRpc0NsdXN0ZXInLFxuICAgICAgJ01vbmdvRGJBdGxhc0NsdXN0ZXInLFxuICAgICAgJ1Vwc3Rhc2hSZWRpcycsXG4gICAgICAnU3FzUXVldWUnLFxuICAgICAgJ1Nuc1RvcGljJyxcbiAgICAgICdLaW5lc2lzU3RyZWFtJyxcbiAgICAgICdPcGVuU2VhcmNoRG9tYWluJyxcbiAgICAgICdFZnNGaWxlc3lzdGVtJ1xuICAgIF1cbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ0J1Y2tldCcsXG4gICAgcmVzb3VyY2VUeXBlOiAnYnVja2V0JyxcbiAgICBwcm9wc1R5cGU6ICdCdWNrZXRQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0J1Y2tldCcsXG4gICAgc291cmNlRmlsZTogJ2J1Y2tldHMuZC50cycsXG4gICAgY2FuQ29ubmVjdFRvOiBbXVxuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnSG9zdGluZ0J1Y2tldCcsXG4gICAgcmVzb3VyY2VUeXBlOiAnaG9zdGluZy1idWNrZXQnLFxuICAgIHByb3BzVHlwZTogJ0hvc3RpbmdCdWNrZXRQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0hvc3RpbmdCdWNrZXQnLFxuICAgIHNvdXJjZUZpbGU6ICdob3N0aW5nLWJ1Y2tldHMuZC50cycsXG4gICAgY2FuQ29ubmVjdFRvOiBbXVxuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnRHluYW1vRGJUYWJsZScsXG4gICAgcmVzb3VyY2VUeXBlOiAnZHluYW1vLWRiLXRhYmxlJyxcbiAgICBwcm9wc1R5cGU6ICdEeW5hbW9EYlRhYmxlUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdEeW5hbW9EYlRhYmxlJyxcbiAgICBzb3VyY2VGaWxlOiAnZHluYW1vLWRiLXRhYmxlcy5kLnRzJyxcbiAgICBjYW5Db25uZWN0VG86IFtdXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdFdmVudEJ1cycsXG4gICAgcmVzb3VyY2VUeXBlOiAnZXZlbnQtYnVzJyxcbiAgICBwcm9wc1R5cGU6ICdFdmVudEJ1c1Byb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnRXZlbnRCdXMnLFxuICAgIHNvdXJjZUZpbGU6ICdldmVudC1idXNlcy5kLnRzJyxcbiAgICBjYW5Db25uZWN0VG86IFtdXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdIdHRwQXBpR2F0ZXdheScsXG4gICAgcmVzb3VyY2VUeXBlOiAnaHR0cC1hcGktZ2F0ZXdheScsXG4gICAgcHJvcHNUeXBlOiAnSHR0cEFwaUdhdGV3YXlQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0h0dHBBcGlHYXRld2F5JyxcbiAgICBzb3VyY2VGaWxlOiAnaHR0cC1hcGktZ2F0ZXdheXMuZC50cycsXG4gICAgY2FuQ29ubmVjdFRvOiBbXVxuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnQXBwbGljYXRpb25Mb2FkQmFsYW5jZXInLFxuICAgIHJlc291cmNlVHlwZTogJ2FwcGxpY2F0aW9uLWxvYWQtYmFsYW5jZXInLFxuICAgIHByb3BzVHlwZTogJ0FwcGxpY2F0aW9uTG9hZEJhbGFuY2VyUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdBcHBsaWNhdGlvbkxvYWRCYWxhbmNlcicsXG4gICAgc291cmNlRmlsZTogJ2FwcGxpY2F0aW9uLWxvYWQtYmFsYW5jZXJzLmQudHMnLFxuICAgIGNhbkNvbm5lY3RUbzogW11cbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ05ldHdvcmtMb2FkQmFsYW5jZXInLFxuICAgIHJlc291cmNlVHlwZTogJ25ldHdvcmstbG9hZC1iYWxhbmNlcicsXG4gICAgcHJvcHNUeXBlOiAnTmV0d29ya0xvYWRCYWxhbmNlclByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnTmV0d29ya0xvYWRCYWxhbmNlcicsXG4gICAgc291cmNlRmlsZTogJ25ldHdvcmstbG9hZC1iYWxhbmNlci5kLnRzJyxcbiAgICBjYW5Db25uZWN0VG86IFtdXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdSZWRpc0NsdXN0ZXInLFxuICAgIHJlc291cmNlVHlwZTogJ3JlZGlzLWNsdXN0ZXInLFxuICAgIHByb3BzVHlwZTogJ1JlZGlzQ2x1c3RlclByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnUmVkaXNDbHVzdGVyJyxcbiAgICBzb3VyY2VGaWxlOiAncmVkaXMtY2x1c3Rlci5kLnRzJyxcbiAgICBjYW5Db25uZWN0VG86IFtdXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdNb25nb0RiQXRsYXNDbHVzdGVyJyxcbiAgICByZXNvdXJjZVR5cGU6ICdtb25nby1kYi1hdGxhcy1jbHVzdGVyJyxcbiAgICBwcm9wc1R5cGU6ICdNb25nb0RiQXRsYXNDbHVzdGVyUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdNb25nb0RiQXRsYXNDbHVzdGVyJyxcbiAgICBzb3VyY2VGaWxlOiAnbW9uZ28tZGItYXRsYXMtY2x1c3RlcnMuZC50cycsXG4gICAgc3VwcG9ydHNPdmVycmlkZXM6IGZhbHNlLFxuICAgIGNhbkNvbm5lY3RUbzogW11cbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ1N0YXRlTWFjaGluZScsXG4gICAgcmVzb3VyY2VUeXBlOiAnc3RhdGUtbWFjaGluZScsXG4gICAgcHJvcHNUeXBlOiAnU3RhdGVNYWNoaW5lUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdTdGF0ZU1hY2hpbmUnLFxuICAgIHNvdXJjZUZpbGU6ICdzdGF0ZS1tYWNoaW5lcy5kLnRzJyxcbiAgICBoYXNBdWdtZW50ZWRQcm9wczogdHJ1ZSxcbiAgICBjYW5Db25uZWN0VG86IFsnRnVuY3Rpb24nLCAnQmF0Y2hKb2InXVxuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnVXNlckF1dGhQb29sJyxcbiAgICByZXNvdXJjZVR5cGU6ICd1c2VyLWF1dGgtcG9vbCcsXG4gICAgcHJvcHNUeXBlOiAnVXNlckF1dGhQb29sUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdVc2VyQXV0aFBvb2wnLFxuICAgIHNvdXJjZUZpbGU6ICd1c2VyLXBvb2xzLmQudHMnLFxuICAgIGNhbkNvbm5lY3RUbzogW11cbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ1Vwc3Rhc2hSZWRpcycsXG4gICAgcmVzb3VyY2VUeXBlOiAndXBzdGFzaC1yZWRpcycsXG4gICAgcHJvcHNUeXBlOiAnVXBzdGFzaFJlZGlzUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdVcHN0YXNoUmVkaXMnLFxuICAgIHNvdXJjZUZpbGU6ICd1cHN0YXNoLXJlZGlzLmQudHMnLFxuICAgIHN1cHBvcnRzT3ZlcnJpZGVzOiBmYWxzZSxcbiAgICBjYW5Db25uZWN0VG86IFtdXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdTcXNRdWV1ZScsXG4gICAgcmVzb3VyY2VUeXBlOiAnc3FzLXF1ZXVlJyxcbiAgICBwcm9wc1R5cGU6ICdTcXNRdWV1ZVByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnU3FzUXVldWUnLFxuICAgIHNvdXJjZUZpbGU6ICdzcXMtcXVldWVzLmQudHMnLFxuICAgIGNhbkNvbm5lY3RUbzogW11cbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ1Nuc1RvcGljJyxcbiAgICByZXNvdXJjZVR5cGU6ICdzbnMtdG9waWMnLFxuICAgIHByb3BzVHlwZTogJ1Nuc1RvcGljUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdTbnNUb3BpYycsXG4gICAgc291cmNlRmlsZTogJ3Nucy10b3BpYy5kLnRzJyxcbiAgICBjYW5Db25uZWN0VG86IFtdXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdLaW5lc2lzU3RyZWFtJyxcbiAgICByZXNvdXJjZVR5cGU6ICdraW5lc2lzLXN0cmVhbScsXG4gICAgcHJvcHNUeXBlOiAnS2luZXNpc1N0cmVhbVByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnS2luZXNpc1N0cmVhbScsXG4gICAgc291cmNlRmlsZTogJ2tpbmVzaXMtc3RyZWFtcy5kLnRzJyxcbiAgICBjYW5Db25uZWN0VG86IFtdXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdXZWJBcHBGaXJld2FsbCcsXG4gICAgcmVzb3VyY2VUeXBlOiAnd2ViLWFwcC1maXJld2FsbCcsXG4gICAgcHJvcHNUeXBlOiAnV2ViQXBwRmlyZXdhbGxQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ1dlYkFwcEZpcmV3YWxsJyxcbiAgICBzb3VyY2VGaWxlOiAnd2ViLWFwcC1maXJld2FsbC5kLnRzJyxcbiAgICBjYW5Db25uZWN0VG86IFtdXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdPcGVuU2VhcmNoRG9tYWluJyxcbiAgICByZXNvdXJjZVR5cGU6ICdvcGVuLXNlYXJjaC1kb21haW4nLFxuICAgIHByb3BzVHlwZTogJ09wZW5TZWFyY2hEb21haW5Qcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ09wZW5TZWFyY2hEb21haW4nLFxuICAgIHNvdXJjZUZpbGU6ICdvcGVuLXNlYXJjaC5kLnRzJyxcbiAgICBjYW5Db25uZWN0VG86IFtdXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdFZnNGaWxlc3lzdGVtJyxcbiAgICByZXNvdXJjZVR5cGU6ICdlZnMtZmlsZXN5c3RlbScsXG4gICAgcHJvcHNUeXBlOiAnRWZzRmlsZXN5c3RlbVByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnRWZzRmlsZXN5c3RlbScsXG4gICAgc291cmNlRmlsZTogJ2Vmcy1maWxlc3lzdGVtLmQudHMnLFxuICAgIGNhbkNvbm5lY3RUbzogW11cbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ05leHRqc1dlYicsXG4gICAgcmVzb3VyY2VUeXBlOiAnbmV4dGpzLXdlYicsXG4gICAgcHJvcHNUeXBlOiAnTmV4dGpzV2ViUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdOZXh0anNXZWInLFxuICAgIHNvdXJjZUZpbGU6ICduZXh0anMtd2ViLmQudHMnLFxuICAgIGhhc0F1Z21lbnRlZFByb3BzOiB0cnVlLFxuICAgIGNhbkNvbm5lY3RUbzogW1xuICAgICAgJ1JlbGF0aW9uYWxEYXRhYmFzZScsXG4gICAgICAnQnVja2V0JyxcbiAgICAgICdIb3N0aW5nQnVja2V0JyxcbiAgICAgICdEeW5hbW9EYlRhYmxlJyxcbiAgICAgICdFdmVudEJ1cycsXG4gICAgICAnUmVkaXNDbHVzdGVyJyxcbiAgICAgICdNb25nb0RiQXRsYXNDbHVzdGVyJyxcbiAgICAgICdVcHN0YXNoUmVkaXMnLFxuICAgICAgJ1Nxc1F1ZXVlJyxcbiAgICAgICdTbnNUb3BpYycsXG4gICAgICAnS2luZXNpc1N0cmVhbScsXG4gICAgICAnT3BlblNlYXJjaERvbWFpbicsXG4gICAgICAnRWZzRmlsZXN5c3RlbScsXG4gICAgICAnUHJpdmF0ZVNlcnZpY2UnLFxuICAgICAgJ1dlYlNlcnZpY2UnLFxuICAgICAgJ0xhbWJkYUZ1bmN0aW9uJyxcbiAgICAgICdCYXRjaEpvYicsXG4gICAgICAnVXNlckF1dGhQb29sJ1xuICAgIF1cbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ0FzdHJvV2ViJyxcbiAgICByZXNvdXJjZVR5cGU6ICdhc3Ryby13ZWInLFxuICAgIHByb3BzVHlwZTogJ0FzdHJvV2ViUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdBc3Ryb1dlYicsXG4gICAgc291cmNlRmlsZTogJ2FzdHJvLXdlYi5kLnRzJyxcbiAgICBjYW5Db25uZWN0VG86IFtcbiAgICAgICdSZWxhdGlvbmFsRGF0YWJhc2UnLFxuICAgICAgJ0J1Y2tldCcsXG4gICAgICAnSG9zdGluZ0J1Y2tldCcsXG4gICAgICAnRHluYW1vRGJUYWJsZScsXG4gICAgICAnRXZlbnRCdXMnLFxuICAgICAgJ1JlZGlzQ2x1c3RlcicsXG4gICAgICAnTW9uZ29EYkF0bGFzQ2x1c3RlcicsXG4gICAgICAnVXBzdGFzaFJlZGlzJyxcbiAgICAgICdTcXNRdWV1ZScsXG4gICAgICAnU25zVG9waWMnLFxuICAgICAgJ0tpbmVzaXNTdHJlYW0nLFxuICAgICAgJ09wZW5TZWFyY2hEb21haW4nLFxuICAgICAgJ0Vmc0ZpbGVzeXN0ZW0nLFxuICAgICAgJ1ByaXZhdGVTZXJ2aWNlJyxcbiAgICAgICdXZWJTZXJ2aWNlJyxcbiAgICAgICdMYW1iZGFGdW5jdGlvbicsXG4gICAgICAnQmF0Y2hKb2InLFxuICAgICAgJ1VzZXJBdXRoUG9vbCdcbiAgICBdXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdOdXh0V2ViJyxcbiAgICByZXNvdXJjZVR5cGU6ICdudXh0LXdlYicsXG4gICAgcHJvcHNUeXBlOiAnTnV4dFdlYlByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnTnV4dFdlYicsXG4gICAgc291cmNlRmlsZTogJ251eHQtd2ViLmQudHMnLFxuICAgIGNhbkNvbm5lY3RUbzogW1xuICAgICAgJ1JlbGF0aW9uYWxEYXRhYmFzZScsXG4gICAgICAnQnVja2V0JyxcbiAgICAgICdIb3N0aW5nQnVja2V0JyxcbiAgICAgICdEeW5hbW9EYlRhYmxlJyxcbiAgICAgICdFdmVudEJ1cycsXG4gICAgICAnUmVkaXNDbHVzdGVyJyxcbiAgICAgICdNb25nb0RiQXRsYXNDbHVzdGVyJyxcbiAgICAgICdVcHN0YXNoUmVkaXMnLFxuICAgICAgJ1Nxc1F1ZXVlJyxcbiAgICAgICdTbnNUb3BpYycsXG4gICAgICAnS2luZXNpc1N0cmVhbScsXG4gICAgICAnT3BlblNlYXJjaERvbWFpbicsXG4gICAgICAnRWZzRmlsZXN5c3RlbScsXG4gICAgICAnUHJpdmF0ZVNlcnZpY2UnLFxuICAgICAgJ1dlYlNlcnZpY2UnLFxuICAgICAgJ0xhbWJkYUZ1bmN0aW9uJyxcbiAgICAgICdCYXRjaEpvYicsXG4gICAgICAnVXNlckF1dGhQb29sJ1xuICAgIF1cbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ1N2ZWx0ZUtpdFdlYicsXG4gICAgcmVzb3VyY2VUeXBlOiAnc3ZlbHRla2l0LXdlYicsXG4gICAgcHJvcHNUeXBlOiAnU3ZlbHRlS2l0V2ViUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdTdmVsdGVLaXRXZWInLFxuICAgIHNvdXJjZUZpbGU6ICdzdmVsdGVraXQtd2ViLmQudHMnLFxuICAgIGNhbkNvbm5lY3RUbzogW1xuICAgICAgJ1JlbGF0aW9uYWxEYXRhYmFzZScsXG4gICAgICAnQnVja2V0JyxcbiAgICAgICdIb3N0aW5nQnVja2V0JyxcbiAgICAgICdEeW5hbW9EYlRhYmxlJyxcbiAgICAgICdFdmVudEJ1cycsXG4gICAgICAnUmVkaXNDbHVzdGVyJyxcbiAgICAgICdNb25nb0RiQXRsYXNDbHVzdGVyJyxcbiAgICAgICdVcHN0YXNoUmVkaXMnLFxuICAgICAgJ1Nxc1F1ZXVlJyxcbiAgICAgICdTbnNUb3BpYycsXG4gICAgICAnS2luZXNpc1N0cmVhbScsXG4gICAgICAnT3BlblNlYXJjaERvbWFpbicsXG4gICAgICAnRWZzRmlsZXN5c3RlbScsXG4gICAgICAnUHJpdmF0ZVNlcnZpY2UnLFxuICAgICAgJ1dlYlNlcnZpY2UnLFxuICAgICAgJ0xhbWJkYUZ1bmN0aW9uJyxcbiAgICAgICdCYXRjaEpvYicsXG4gICAgICAnVXNlckF1dGhQb29sJ1xuICAgIF1cbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ1NvbGlkU3RhcnRXZWInLFxuICAgIHJlc291cmNlVHlwZTogJ3NvbGlkc3RhcnQtd2ViJyxcbiAgICBwcm9wc1R5cGU6ICdTb2xpZFN0YXJ0V2ViUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdTb2xpZFN0YXJ0V2ViJyxcbiAgICBzb3VyY2VGaWxlOiAnc29saWRzdGFydC13ZWIuZC50cycsXG4gICAgY2FuQ29ubmVjdFRvOiBbXG4gICAgICAnUmVsYXRpb25hbERhdGFiYXNlJyxcbiAgICAgICdCdWNrZXQnLFxuICAgICAgJ0hvc3RpbmdCdWNrZXQnLFxuICAgICAgJ0R5bmFtb0RiVGFibGUnLFxuICAgICAgJ0V2ZW50QnVzJyxcbiAgICAgICdSZWRpc0NsdXN0ZXInLFxuICAgICAgJ01vbmdvRGJBdGxhc0NsdXN0ZXInLFxuICAgICAgJ1Vwc3Rhc2hSZWRpcycsXG4gICAgICAnU3FzUXVldWUnLFxuICAgICAgJ1Nuc1RvcGljJyxcbiAgICAgICdLaW5lc2lzU3RyZWFtJyxcbiAgICAgICdPcGVuU2VhcmNoRG9tYWluJyxcbiAgICAgICdFZnNGaWxlc3lzdGVtJyxcbiAgICAgICdQcml2YXRlU2VydmljZScsXG4gICAgICAnV2ViU2VydmljZScsXG4gICAgICAnTGFtYmRhRnVuY3Rpb24nLFxuICAgICAgJ0JhdGNoSm9iJyxcbiAgICAgICdVc2VyQXV0aFBvb2wnXG4gICAgXVxuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnVGFuU3RhY2tXZWInLFxuICAgIHJlc291cmNlVHlwZTogJ3RhbnN0YWNrLXdlYicsXG4gICAgcHJvcHNUeXBlOiAnVGFuU3RhY2tXZWJQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ1RhblN0YWNrV2ViJyxcbiAgICBzb3VyY2VGaWxlOiAndGFuc3RhY2std2ViLmQudHMnLFxuICAgIGNhbkNvbm5lY3RUbzogW1xuICAgICAgJ1JlbGF0aW9uYWxEYXRhYmFzZScsXG4gICAgICAnQnVja2V0JyxcbiAgICAgICdIb3N0aW5nQnVja2V0JyxcbiAgICAgICdEeW5hbW9EYlRhYmxlJyxcbiAgICAgICdFdmVudEJ1cycsXG4gICAgICAnUmVkaXNDbHVzdGVyJyxcbiAgICAgICdNb25nb0RiQXRsYXNDbHVzdGVyJyxcbiAgICAgICdVcHN0YXNoUmVkaXMnLFxuICAgICAgJ1Nxc1F1ZXVlJyxcbiAgICAgICdTbnNUb3BpYycsXG4gICAgICAnS2luZXNpc1N0cmVhbScsXG4gICAgICAnT3BlblNlYXJjaERvbWFpbicsXG4gICAgICAnRWZzRmlsZXN5c3RlbScsXG4gICAgICAnUHJpdmF0ZVNlcnZpY2UnLFxuICAgICAgJ1dlYlNlcnZpY2UnLFxuICAgICAgJ0xhbWJkYUZ1bmN0aW9uJyxcbiAgICAgICdCYXRjaEpvYicsXG4gICAgICAnVXNlckF1dGhQb29sJ1xuICAgIF1cbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ1JlbWl4V2ViJyxcbiAgICByZXNvdXJjZVR5cGU6ICdyZW1peC13ZWInLFxuICAgIHByb3BzVHlwZTogJ1JlbWl4V2ViUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdSZW1peFdlYicsXG4gICAgc291cmNlRmlsZTogJ3JlbWl4LXdlYi5kLnRzJyxcbiAgICBjYW5Db25uZWN0VG86IFtcbiAgICAgICdSZWxhdGlvbmFsRGF0YWJhc2UnLFxuICAgICAgJ0J1Y2tldCcsXG4gICAgICAnSG9zdGluZ0J1Y2tldCcsXG4gICAgICAnRHluYW1vRGJUYWJsZScsXG4gICAgICAnRXZlbnRCdXMnLFxuICAgICAgJ1JlZGlzQ2x1c3RlcicsXG4gICAgICAnTW9uZ29EYkF0bGFzQ2x1c3RlcicsXG4gICAgICAnVXBzdGFzaFJlZGlzJyxcbiAgICAgICdTcXNRdWV1ZScsXG4gICAgICAnU25zVG9waWMnLFxuICAgICAgJ0tpbmVzaXNTdHJlYW0nLFxuICAgICAgJ09wZW5TZWFyY2hEb21haW4nLFxuICAgICAgJ0Vmc0ZpbGVzeXN0ZW0nLFxuICAgICAgJ1ByaXZhdGVTZXJ2aWNlJyxcbiAgICAgICdXZWJTZXJ2aWNlJyxcbiAgICAgICdMYW1iZGFGdW5jdGlvbicsXG4gICAgICAnQmF0Y2hKb2InLFxuICAgICAgJ1VzZXJBdXRoUG9vbCdcbiAgICBdXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdCYXN0aW9uJyxcbiAgICByZXNvdXJjZVR5cGU6ICdiYXN0aW9uJyxcbiAgICBwcm9wc1R5cGU6ICdCYXN0aW9uUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdCYXN0aW9uJyxcbiAgICBzb3VyY2VGaWxlOiAnYmFzdGlvbi5kLnRzJyxcbiAgICBjYW5Db25uZWN0VG86IFtdXG4gIH1cbl07XG5cbi8qKlxuICogRGVmaW5lcyBhbGwgdHlwZSArIHByb3BlcnRpZXMgc2hhcGVkIGRlZmluaXRpb25zIHRoYXQgY2FuIGJlIGNvbnZlcnRlZCB0byBhIFR5cGVzY3JpcHQgY2xhc3NcbiAqL1xuZXhwb3J0IHR5cGUgVHlwZVByb3BlcnRpZXNEZWZpbml0aW9uID0ge1xuICBjbGFzc05hbWU6IHN0cmluZztcbiAgdHlwZVZhbHVlOiBzdHJpbmc7XG4gIHByb3BzVHlwZTogc3RyaW5nO1xuICBpbnRlcmZhY2VOYW1lOiBzdHJpbmc7XG4gIHNvdXJjZUZpbGU6IHN0cmluZztcbiAgLyoqIElmIHRydWUsIHRoaXMgdHlwZSBoYXMgbm8gcHJvcGVydGllcyBmaWVsZCAtIGp1c3QgYSB0eXBlIGRpc2NyaW1pbmF0b3IgKi9cbiAgdHlwZU9ubHk/OiBib29sZWFuO1xuICAvKiogQ3VzdG9tIEpTRG9jIGRlc2NyaXB0aW9uIGZvciB0aGUgY2xhc3MgY29uc3RydWN0b3IgKi9cbiAganNkb2M/OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgY29uc3QgTUlTQ19UWVBFU19DT05WRVJUSUJMRV9UT19DTEFTU0VTOiBUeXBlUHJvcGVydGllc0RlZmluaXRpb25bXSA9IFtcbiAgLy8gRGF0YWJhc2UgRW5naW5lc1xuICB7XG4gICAgY2xhc3NOYW1lOiAnUmRzRW5naW5lUG9zdGdyZXMnLFxuICAgIHR5cGVWYWx1ZTogJ3Bvc3RncmVzJyxcbiAgICBwcm9wc1R5cGU6ICdSZHNFbmdpbmVQcm9wZXJ0aWVzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnUmRzRW5naW5lJyxcbiAgICBzb3VyY2VGaWxlOiAncmVsYXRpb25hbC1kYXRhYmFzZXMuZC50cydcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ1Jkc0VuZ2luZU1hcmlhZGInLFxuICAgIHR5cGVWYWx1ZTogJ21hcmlhZGInLFxuICAgIHByb3BzVHlwZTogJ1Jkc0VuZ2luZVByb3BlcnRpZXMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdSZHNFbmdpbmUnLFxuICAgIHNvdXJjZUZpbGU6ICdyZWxhdGlvbmFsLWRhdGFiYXNlcy5kLnRzJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnUmRzRW5naW5lTXlzcWwnLFxuICAgIHR5cGVWYWx1ZTogJ215c3FsJyxcbiAgICBwcm9wc1R5cGU6ICdSZHNFbmdpbmVQcm9wZXJ0aWVzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnUmRzRW5naW5lJyxcbiAgICBzb3VyY2VGaWxlOiAncmVsYXRpb25hbC1kYXRhYmFzZXMuZC50cydcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ1Jkc0VuZ2luZU9yYWNsZUVFJyxcbiAgICB0eXBlVmFsdWU6ICdvcmFjbGUtZWUnLFxuICAgIHByb3BzVHlwZTogJ1Jkc0VuZ2luZVByb3BlcnRpZXMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdSZHNFbmdpbmUnLFxuICAgIHNvdXJjZUZpbGU6ICdyZWxhdGlvbmFsLWRhdGFiYXNlcy5kLnRzJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnUmRzRW5naW5lT3JhY2xlU0UyJyxcbiAgICB0eXBlVmFsdWU6ICdvcmFjbGUtc2UyJyxcbiAgICBwcm9wc1R5cGU6ICdSZHNFbmdpbmVQcm9wZXJ0aWVzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnUmRzRW5naW5lJyxcbiAgICBzb3VyY2VGaWxlOiAncmVsYXRpb25hbC1kYXRhYmFzZXMuZC50cydcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ1Jkc0VuZ2luZVNxbFNlcnZlckVFJyxcbiAgICB0eXBlVmFsdWU6ICdzcWxzZXJ2ZXItZWUnLFxuICAgIHByb3BzVHlwZTogJ1Jkc0VuZ2luZVByb3BlcnRpZXMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdSZHNFbmdpbmUnLFxuICAgIHNvdXJjZUZpbGU6ICdyZWxhdGlvbmFsLWRhdGFiYXNlcy5kLnRzJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnUmRzRW5naW5lU3FsU2VydmVyRVgnLFxuICAgIHR5cGVWYWx1ZTogJ3NxbHNlcnZlci1leCcsXG4gICAgcHJvcHNUeXBlOiAnUmRzRW5naW5lUHJvcGVydGllcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ1Jkc0VuZ2luZScsXG4gICAgc291cmNlRmlsZTogJ3JlbGF0aW9uYWwtZGF0YWJhc2VzLmQudHMnXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdSZHNFbmdpbmVTcWxTZXJ2ZXJTRScsXG4gICAgdHlwZVZhbHVlOiAnc3Fsc2VydmVyLXNlJyxcbiAgICBwcm9wc1R5cGU6ICdSZHNFbmdpbmVQcm9wZXJ0aWVzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnUmRzRW5naW5lJyxcbiAgICBzb3VyY2VGaWxlOiAncmVsYXRpb25hbC1kYXRhYmFzZXMuZC50cydcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ1Jkc0VuZ2luZVNxbFNlcnZlcldlYicsXG4gICAgdHlwZVZhbHVlOiAnc3Fsc2VydmVyLXdlYicsXG4gICAgcHJvcHNUeXBlOiAnUmRzRW5naW5lUHJvcGVydGllcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ1Jkc0VuZ2luZScsXG4gICAgc291cmNlRmlsZTogJ3JlbGF0aW9uYWwtZGF0YWJhc2VzLmQudHMnXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdBdXJvcmFFbmdpbmVQb3N0Z3Jlc3FsJyxcbiAgICB0eXBlVmFsdWU6ICdhdXJvcmEtcG9zdGdyZXNxbCcsXG4gICAgcHJvcHNUeXBlOiAnQXVyb3JhRW5naW5lUHJvcGVydGllcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0F1cm9yYUVuZ2luZScsXG4gICAgc291cmNlRmlsZTogJ3JlbGF0aW9uYWwtZGF0YWJhc2VzLmQudHMnXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdBdXJvcmFFbmdpbmVNeXNxbCcsXG4gICAgdHlwZVZhbHVlOiAnYXVyb3JhLW15c3FsJyxcbiAgICBwcm9wc1R5cGU6ICdBdXJvcmFFbmdpbmVQcm9wZXJ0aWVzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnQXVyb3JhRW5naW5lJyxcbiAgICBzb3VyY2VGaWxlOiAncmVsYXRpb25hbC1kYXRhYmFzZXMuZC50cydcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ0F1cm9yYVNlcnZlcmxlc3NFbmdpbmVQb3N0Z3Jlc3FsJyxcbiAgICB0eXBlVmFsdWU6ICdhdXJvcmEtcG9zdGdyZXNxbC1zZXJ2ZXJsZXNzJyxcbiAgICBwcm9wc1R5cGU6ICdBdXJvcmFTZXJ2ZXJsZXNzRW5naW5lUHJvcGVydGllcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0F1cm9yYVNlcnZlcmxlc3NFbmdpbmUnLFxuICAgIHNvdXJjZUZpbGU6ICdyZWxhdGlvbmFsLWRhdGFiYXNlcy5kLnRzJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnQXVyb3JhU2VydmVybGVzc0VuZ2luZU15c3FsJyxcbiAgICB0eXBlVmFsdWU6ICdhdXJvcmEtbXlzcWwtc2VydmVybGVzcycsXG4gICAgcHJvcHNUeXBlOiAnQXVyb3JhU2VydmVybGVzc0VuZ2luZVByb3BlcnRpZXMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdBdXJvcmFTZXJ2ZXJsZXNzRW5naW5lJyxcbiAgICBzb3VyY2VGaWxlOiAncmVsYXRpb25hbC1kYXRhYmFzZXMuZC50cydcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ0F1cm9yYVNlcnZlcmxlc3NWMkVuZ2luZVBvc3RncmVzcWwnLFxuICAgIHR5cGVWYWx1ZTogJ2F1cm9yYS1wb3N0Z3Jlc3FsLXNlcnZlcmxlc3MtdjInLFxuICAgIHByb3BzVHlwZTogJ0F1cm9yYVNlcnZlcmxlc3NWMkVuZ2luZVByb3BlcnRpZXMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdBdXJvcmFTZXJ2ZXJsZXNzVjJFbmdpbmUnLFxuICAgIHNvdXJjZUZpbGU6ICdyZWxhdGlvbmFsLWRhdGFiYXNlcy5kLnRzJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnQXVyb3JhU2VydmVybGVzc1YyRW5naW5lTXlzcWwnLFxuICAgIHR5cGVWYWx1ZTogJ2F1cm9yYS1teXNxbC1zZXJ2ZXJsZXNzLXYyJyxcbiAgICBwcm9wc1R5cGU6ICdBdXJvcmFTZXJ2ZXJsZXNzVjJFbmdpbmVQcm9wZXJ0aWVzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnQXVyb3JhU2VydmVybGVzc1YyRW5naW5lJyxcbiAgICBzb3VyY2VGaWxlOiAncmVsYXRpb25hbC1kYXRhYmFzZXMuZC50cydcbiAgfSxcbiAgLy8gTGFtYmRhIFBhY2thZ2luZ1xuICB7XG4gICAgY2xhc3NOYW1lOiAnU3RhY2t0YXBlTGFtYmRhQnVpbGRwYWNrUGFja2FnaW5nJyxcbiAgICB0eXBlVmFsdWU6ICdzdGFja3RhcGUtbGFtYmRhLWJ1aWxkcGFjaycsXG4gICAgcHJvcHNUeXBlOiAnU3RwQnVpbGRwYWNrTGFtYmRhUGFja2FnaW5nUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdTdHBCdWlsZHBhY2tMYW1iZGFQYWNrYWdpbmcnLFxuICAgIHNvdXJjZUZpbGU6ICdkZXBsb3ltZW50LWFydGlmYWN0cy5kLnRzJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnQ3VzdG9tQXJ0aWZhY3RMYW1iZGFQYWNrYWdpbmcnLFxuICAgIHR5cGVWYWx1ZTogJ2N1c3RvbS1hcnRpZmFjdCcsXG4gICAgcHJvcHNUeXBlOiAnQ3VzdG9tQXJ0aWZhY3RMYW1iZGFQYWNrYWdpbmdQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0N1c3RvbUFydGlmYWN0TGFtYmRhUGFja2FnaW5nJyxcbiAgICBzb3VyY2VGaWxlOiAnZGVwbG95bWVudC1hcnRpZmFjdHMuZC50cydcbiAgfSxcbiAgLy8gQ29udGFpbmVyIFBhY2thZ2luZ1xuICB7XG4gICAgY2xhc3NOYW1lOiAnUHJlYnVpbHRJbWFnZVBhY2thZ2luZycsXG4gICAgdHlwZVZhbHVlOiAncHJlYnVpbHQtaW1hZ2UnLFxuICAgIHByb3BzVHlwZTogJ1ByZWJ1aWx0SW1hZ2VDd1BhY2thZ2luZ1Byb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnUHJlYnVpbHRDd0ltYWdlUGFja2FnaW5nJyxcbiAgICBzb3VyY2VGaWxlOiAnZGVwbG95bWVudC1hcnRpZmFjdHMuZC50cydcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ0N1c3RvbURvY2tlcmZpbGVQYWNrYWdpbmcnLFxuICAgIHR5cGVWYWx1ZTogJ2N1c3RvbS1kb2NrZXJmaWxlJyxcbiAgICBwcm9wc1R5cGU6ICdDdXN0b21Eb2NrZXJmaWxlQ3dJbWFnZVBhY2thZ2luZ1Byb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnQ3VzdG9tRG9ja2VyZmlsZUN3SW1hZ2VQYWNrYWdpbmcnLFxuICAgIHNvdXJjZUZpbGU6ICdkZXBsb3ltZW50LWFydGlmYWN0cy5kLnRzJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnRXh0ZXJuYWxCdWlsZHBhY2tQYWNrYWdpbmcnLFxuICAgIHR5cGVWYWx1ZTogJ2V4dGVybmFsLWJ1aWxkcGFjaycsXG4gICAgcHJvcHNUeXBlOiAnRXh0ZXJuYWxCdWlsZHBhY2tDd0ltYWdlUGFja2FnaW5nUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdFeHRlcm5hbEJ1aWxkcGFja0N3SW1hZ2VQYWNrYWdpbmcnLFxuICAgIHNvdXJjZUZpbGU6ICdkZXBsb3ltZW50LWFydGlmYWN0cy5kLnRzJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnTml4cGFja3NQYWNrYWdpbmcnLFxuICAgIHR5cGVWYWx1ZTogJ25peHBhY2tzJyxcbiAgICBwcm9wc1R5cGU6ICdOaXhwYWNrc0N3SW1hZ2VQYWNrYWdpbmdQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ05peHBhY2tzQ3dJbWFnZVBhY2thZ2luZycsXG4gICAgc291cmNlRmlsZTogJ2RlcGxveW1lbnQtYXJ0aWZhY3RzLmQudHMnXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdTdGFja3RhcGVJbWFnZUJ1aWxkcGFja1BhY2thZ2luZycsXG4gICAgdHlwZVZhbHVlOiAnc3RhY2t0YXBlLWltYWdlLWJ1aWxkcGFjaycsXG4gICAgcHJvcHNUeXBlOiAnU3RwQnVpbGRwYWNrQ3dJbWFnZVBhY2thZ2luZ1Byb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnU3RwQnVpbGRwYWNrQ3dJbWFnZVBhY2thZ2luZycsXG4gICAgc291cmNlRmlsZTogJ2RlcGxveW1lbnQtYXJ0aWZhY3RzLmQudHMnXG4gIH0sXG4gIC8vIExhbWJkYSBGdW5jdGlvbiBFdmVudHMvSW50ZWdyYXRpb25zXG4gIHtcbiAgICBjbGFzc05hbWU6ICdIdHRwQXBpSW50ZWdyYXRpb24nLFxuICAgIHR5cGVWYWx1ZTogJ2h0dHAtYXBpLWdhdGV3YXknLFxuICAgIHByb3BzVHlwZTogJ0h0dHBBcGlJbnRlZ3JhdGlvblByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnSHR0cEFwaUludGVncmF0aW9uJyxcbiAgICBzb3VyY2VGaWxlOiAnZXZlbnRzLmQudHMnXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdTM0ludGVncmF0aW9uJyxcbiAgICB0eXBlVmFsdWU6ICdzMycsXG4gICAgcHJvcHNUeXBlOiAnUzNJbnRlZ3JhdGlvblByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnUzNJbnRlZ3JhdGlvbicsXG4gICAgc291cmNlRmlsZTogJ2V2ZW50cy5kLnRzJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnU2NoZWR1bGVJbnRlZ3JhdGlvbicsXG4gICAgdHlwZVZhbHVlOiAnc2NoZWR1bGUnLFxuICAgIHByb3BzVHlwZTogJ1NjaGVkdWxlSW50ZWdyYXRpb25Qcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ1NjaGVkdWxlSW50ZWdyYXRpb24nLFxuICAgIHNvdXJjZUZpbGU6ICdldmVudHMuZC50cydcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ1Nuc0ludGVncmF0aW9uJyxcbiAgICB0eXBlVmFsdWU6ICdzbnMnLFxuICAgIHByb3BzVHlwZTogJ1Nuc0ludGVncmF0aW9uUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdTbnNJbnRlZ3JhdGlvbicsXG4gICAgc291cmNlRmlsZTogJ2V2ZW50cy5kLnRzJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnU3FzSW50ZWdyYXRpb24nLFxuICAgIHR5cGVWYWx1ZTogJ3NxcycsXG4gICAgcHJvcHNUeXBlOiAnU3FzSW50ZWdyYXRpb25Qcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ1Nxc0ludGVncmF0aW9uJyxcbiAgICBzb3VyY2VGaWxlOiAnZXZlbnRzLmQudHMnXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdLaW5lc2lzSW50ZWdyYXRpb24nLFxuICAgIHR5cGVWYWx1ZTogJ2tpbmVzaXMnLFxuICAgIHByb3BzVHlwZTogJ0tpbmVzaXNJbnRlZ3JhdGlvblByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnS2luZXNpc0ludGVncmF0aW9uJyxcbiAgICBzb3VyY2VGaWxlOiAnZXZlbnRzLmQudHMnXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdEeW5hbW9EYkludGVncmF0aW9uJyxcbiAgICB0eXBlVmFsdWU6ICdkeW5hbW9kYicsXG4gICAgcHJvcHNUeXBlOiAnRHluYW1vRGJJbnRlZ3JhdGlvblByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnRHluYW1vRGJJbnRlZ3JhdGlvbicsXG4gICAgc291cmNlRmlsZTogJ2V2ZW50cy5kLnRzJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnQ2xvdWR3YXRjaExvZ0ludGVncmF0aW9uJyxcbiAgICB0eXBlVmFsdWU6ICdjbG91ZHdhdGNoLWxvZ3MnLFxuICAgIHByb3BzVHlwZTogJ0Nsb3Vkd2F0Y2hMb2dJbnRlZ3JhdGlvblByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnQ2xvdWR3YXRjaExvZ0ludGVncmF0aW9uJyxcbiAgICBzb3VyY2VGaWxlOiAnZXZlbnRzLmQudHMnXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdBcHBsaWNhdGlvbkxvYWRCYWxhbmNlckludGVncmF0aW9uJyxcbiAgICB0eXBlVmFsdWU6ICdhcHBsaWNhdGlvbi1sb2FkLWJhbGFuY2VyJyxcbiAgICBwcm9wc1R5cGU6ICdBcHBsaWNhdGlvbkxvYWRCYWxhbmNlckludGVncmF0aW9uUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdBcHBsaWNhdGlvbkxvYWRCYWxhbmNlckludGVncmF0aW9uJyxcbiAgICBzb3VyY2VGaWxlOiAnZXZlbnRzLmQudHMnXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdFdmVudEJ1c0ludGVncmF0aW9uJyxcbiAgICB0eXBlVmFsdWU6ICdldmVudC1idXMnLFxuICAgIHByb3BzVHlwZTogJ0V2ZW50QnVzSW50ZWdyYXRpb25Qcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0V2ZW50QnVzSW50ZWdyYXRpb24nLFxuICAgIHNvdXJjZUZpbGU6ICdldmVudHMuZC50cydcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ0thZmthVG9waWNJbnRlZ3JhdGlvbicsXG4gICAgdHlwZVZhbHVlOiAna2Fma2EtdG9waWMnLFxuICAgIHByb3BzVHlwZTogJ0thZmthVG9waWNJbnRlZ3JhdGlvblByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnS2Fma2FUb3BpY0ludGVncmF0aW9uJyxcbiAgICBzb3VyY2VGaWxlOiAnZXZlbnRzLmQudHMnXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdBbGFybUludGVncmF0aW9uJyxcbiAgICB0eXBlVmFsdWU6ICdhbGFybScsXG4gICAgcHJvcHNUeXBlOiAnQWxhcm1JbnRlZ3JhdGlvblByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnQWxhcm1JbnRlZ3JhdGlvbicsXG4gICAgc291cmNlRmlsZTogJ2V2ZW50cy5kLnRzJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnSW90SW50ZWdyYXRpb24nLFxuICAgIHR5cGVWYWx1ZTogJ2lvdCcsXG4gICAgcHJvcHNUeXBlOiAnSW90SW50ZWdyYXRpb25Qcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0lvdEludGVncmF0aW9uJyxcbiAgICBzb3VyY2VGaWxlOiAnZXZlbnRzLmQudHMnXG4gIH0sXG4gIC8vIENETiBSb3V0ZXNcbiAge1xuICAgIGNsYXNzTmFtZTogJ0NkbkxvYWRCYWxhbmNlclJvdXRlJyxcbiAgICB0eXBlVmFsdWU6ICdhcHBsaWNhdGlvbi1sb2FkLWJhbGFuY2VyJyxcbiAgICBwcm9wc1R5cGU6ICdDZG5Mb2FkQmFsYW5jZXJPcmlnaW4nLFxuICAgIGludGVyZmFjZU5hbWU6ICdDZG5Mb2FkQmFsYW5jZXJPcmlnaW4nLFxuICAgIHNvdXJjZUZpbGU6ICdjZG4uZC50cydcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ0Nkbkh0dHBBcGlHYXRld2F5Um91dGUnLFxuICAgIHR5cGVWYWx1ZTogJ2h0dHAtYXBpLWdhdGV3YXknLFxuICAgIHByb3BzVHlwZTogJ0Nkbkh0dHBBcGlHYXRld2F5T3JpZ2luJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnQ2RuSHR0cEFwaUdhdGV3YXlPcmlnaW4nLFxuICAgIHNvdXJjZUZpbGU6ICdjZG4uZC50cydcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ0NkbkxhbWJkYUZ1bmN0aW9uUm91dGUnLFxuICAgIHR5cGVWYWx1ZTogJ2Z1bmN0aW9uJyxcbiAgICBwcm9wc1R5cGU6ICdDZG5MYW1iZGFGdW5jdGlvbk9yaWdpbicsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0NkbkxhbWJkYUZ1bmN0aW9uT3JpZ2luJyxcbiAgICBzb3VyY2VGaWxlOiAnY2RuLmQudHMnXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdDZG5DdXN0b21Eb21haW5Sb3V0ZScsXG4gICAgdHlwZVZhbHVlOiAnY3VzdG9tLW9yaWdpbicsXG4gICAgcHJvcHNUeXBlOiAnQ2RuQ3VzdG9tT3JpZ2luJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnQ2RuQ3VzdG9tT3JpZ2luJyxcbiAgICBzb3VyY2VGaWxlOiAnY2RuLmQudHMnXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdDZG5CdWNrZXRSb3V0ZScsXG4gICAgdHlwZVZhbHVlOiAnYnVja2V0JyxcbiAgICBwcm9wc1R5cGU6ICdDZG5CdWNrZXRPcmlnaW4nLFxuICAgIGludGVyZmFjZU5hbWU6ICdDZG5CdWNrZXRPcmlnaW4nLFxuICAgIHNvdXJjZUZpbGU6ICdjZG4uZC50cydcbiAgfSxcbiAgLy8gV2ViIEFwcCBGaXJld2FsbCBSdWxlc1xuICB7XG4gICAgY2xhc3NOYW1lOiAnTWFuYWdlZFJ1bGVHcm91cCcsXG4gICAgdHlwZVZhbHVlOiAnbWFuYWdlZC1ydWxlLWdyb3VwJyxcbiAgICBwcm9wc1R5cGU6ICdNYW5hZ2VkUnVsZUdyb3VwUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdNYW5hZ2VkUnVsZUdyb3VwJyxcbiAgICBzb3VyY2VGaWxlOiAnd2ViLWFwcC1maXJld2FsbC5kLnRzJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnQ3VzdG9tUnVsZUdyb3VwJyxcbiAgICB0eXBlVmFsdWU6ICdjdXN0b20tcnVsZS1ncm91cCcsXG4gICAgcHJvcHNUeXBlOiAnQ3VzdG9tUnVsZUdyb3VwUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdDdXN0b21SdWxlR3JvdXAnLFxuICAgIHNvdXJjZUZpbGU6ICd3ZWItYXBwLWZpcmV3YWxsLmQudHMnXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdSYXRlQmFzZWRSdWxlJyxcbiAgICB0eXBlVmFsdWU6ICdyYXRlLWJhc2VkLXJ1bGUnLFxuICAgIHByb3BzVHlwZTogJ1JhdGVCYXNlZFN0YXRlbWVudFByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnUmF0ZUJhc2VkUnVsZScsXG4gICAgc291cmNlRmlsZTogJ3dlYi1hcHAtZmlyZXdhbGwuZC50cydcbiAgfSxcbiAgLy8gU1FTIFF1ZXVlIEludGVncmF0aW9uc1xuICB7XG4gICAgY2xhc3NOYW1lOiAnU3FzUXVldWVFdmVudEJ1c0ludGVncmF0aW9uJyxcbiAgICB0eXBlVmFsdWU6ICdldmVudC1idXMnLFxuICAgIHByb3BzVHlwZTogJ1Nxc1F1ZXVlRXZlbnRCdXNJbnRlZ3JhdGlvblByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnU3FzUXVldWVFdmVudEJ1c0ludGVncmF0aW9uJyxcbiAgICBzb3VyY2VGaWxlOiAnc3FzLXF1ZXVlcy5kLnRzJ1xuICB9LFxuICAvLyBNdWx0aSBDb250YWluZXIgV29ya2xvYWQgSW50ZWdyYXRpb25zXG4gIHtcbiAgICBjbGFzc05hbWU6ICdNdWx0aUNvbnRhaW5lcldvcmtsb2FkSHR0cEFwaUludGVncmF0aW9uJyxcbiAgICB0eXBlVmFsdWU6ICdodHRwLWFwaS1nYXRld2F5JyxcbiAgICBwcm9wc1R5cGU6ICdDb250YWluZXJXb3JrbG9hZEh0dHBBcGlJbnRlZ3JhdGlvblByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnQ29udGFpbmVyV29ya2xvYWRIdHRwQXBpSW50ZWdyYXRpb24nLFxuICAgIHNvdXJjZUZpbGU6ICdtdWx0aS1jb250YWluZXItd29ya2xvYWRzLmQudHMnXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdNdWx0aUNvbnRhaW5lcldvcmtsb2FkTG9hZEJhbGFuY2VySW50ZWdyYXRpb24nLFxuICAgIHR5cGVWYWx1ZTogJ2FwcGxpY2F0aW9uLWxvYWQtYmFsYW5jZXInLFxuICAgIHByb3BzVHlwZTogJ0NvbnRhaW5lcldvcmtsb2FkTG9hZEJhbGFuY2VySW50ZWdyYXRpb25Qcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0NvbnRhaW5lcldvcmtsb2FkTG9hZEJhbGFuY2VySW50ZWdyYXRpb24nLFxuICAgIHNvdXJjZUZpbGU6ICdtdWx0aS1jb250YWluZXItd29ya2xvYWRzLmQudHMnXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdNdWx0aUNvbnRhaW5lcldvcmtsb2FkTmV0d29ya0xvYWRCYWxhbmNlckludGVncmF0aW9uJyxcbiAgICB0eXBlVmFsdWU6ICduZXR3b3JrLWxvYWQtYmFsYW5jZXInLFxuICAgIHByb3BzVHlwZTogJ0NvbnRhaW5lcldvcmtsb2FkTmV0d29ya0xvYWRCYWxhbmNlckludGVncmF0aW9uUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdDb250YWluZXJXb3JrbG9hZE5ldHdvcmtMb2FkQmFsYW5jZXJJbnRlZ3JhdGlvbicsXG4gICAgc291cmNlRmlsZTogJ211bHRpLWNvbnRhaW5lci13b3JrbG9hZHMuZC50cydcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ011bHRpQ29udGFpbmVyV29ya2xvYWRJbnRlcm5hbEludGVncmF0aW9uJyxcbiAgICB0eXBlVmFsdWU6ICd3b3JrbG9hZC1pbnRlcm5hbCcsXG4gICAgcHJvcHNUeXBlOiAnQ29udGFpbmVyV29ya2xvYWRJbnRlcm5hbEludGVncmF0aW9uUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdDb250YWluZXJXb3JrbG9hZEludGVybmFsSW50ZWdyYXRpb24nLFxuICAgIHNvdXJjZUZpbGU6ICdtdWx0aS1jb250YWluZXItd29ya2xvYWRzLmQudHMnXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdNdWx0aUNvbnRhaW5lcldvcmtsb2FkU2VydmljZUNvbm5lY3RJbnRlZ3JhdGlvbicsXG4gICAgdHlwZVZhbHVlOiAnc2VydmljZS1jb25uZWN0JyxcbiAgICBwcm9wc1R5cGU6ICdDb250YWluZXJXb3JrbG9hZFNlcnZpY2VDb25uZWN0SW50ZWdyYXRpb25Qcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0NvbnRhaW5lcldvcmtsb2FkU2VydmljZUNvbm5lY3RJbnRlZ3JhdGlvbicsXG4gICAgc291cmNlRmlsZTogJ211bHRpLWNvbnRhaW5lci13b3JrbG9hZHMuZC50cydcbiAgfSxcbiAgLy8gU2NyaXB0c1xuICB7XG4gICAgY2xhc3NOYW1lOiAnTG9jYWxTY3JpcHQnLFxuICAgIHR5cGVWYWx1ZTogJ2xvY2FsLXNjcmlwdCcsXG4gICAgcHJvcHNUeXBlOiAnTG9jYWxTY3JpcHRQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0xvY2FsU2NyaXB0JyxcbiAgICBzb3VyY2VGaWxlOiAnX19oZWxwZXJzLmQudHMnXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdCYXN0aW9uU2NyaXB0JyxcbiAgICB0eXBlVmFsdWU6ICdiYXN0aW9uLXNjcmlwdCcsXG4gICAgcHJvcHNUeXBlOiAnQmFzdGlvblNjcmlwdFByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnQmFzdGlvblNjcmlwdCcsXG4gICAgc291cmNlRmlsZTogJ19faGVscGVycy5kLnRzJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnTG9jYWxTY3JpcHRXaXRoQmFzdGlvblR1bm5lbGluZycsXG4gICAgdHlwZVZhbHVlOiAnbG9jYWwtc2NyaXB0LXdpdGgtYmFzdGlvbi10dW5uZWxpbmcnLFxuICAgIHByb3BzVHlwZTogJ0xvY2FsU2NyaXB0V2l0aEJhc3Rpb25UdW5uZWxpbmdQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0xvY2FsU2NyaXB0V2l0aEJhc3Rpb25UdW5uZWxpbmcnLFxuICAgIHNvdXJjZUZpbGU6ICdfX2hlbHBlcnMuZC50cydcbiAgfSxcbiAgLy8gTG9nIEZvcndhcmRpbmdcbiAge1xuICAgIGNsYXNzTmFtZTogJ0h0dHBFbmRwb2ludExvZ0ZvcndhcmRpbmcnLFxuICAgIHR5cGVWYWx1ZTogJ2h0dHAtZW5kcG9pbnQnLFxuICAgIHByb3BzVHlwZTogJ0h0dHBFbmRwb2ludExvZ0ZvcndhcmRpbmdQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0h0dHBFbmRwb2ludExvZ0ZvcndhcmRpbmcnLFxuICAgIHNvdXJjZUZpbGU6ICdfX2hlbHBlcnMuZC50cydcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ0hpZ2hsaWdodExvZ0ZvcndhcmRpbmcnLFxuICAgIHR5cGVWYWx1ZTogJ2hpZ2hsaWdodCcsXG4gICAgcHJvcHNUeXBlOiAnSGlnaGxpZ2h0TG9nRm9yd2FyZGluZ1Byb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnSGlnaGxpZ2h0TG9nRm9yd2FyZGluZycsXG4gICAgc291cmNlRmlsZTogJ19faGVscGVycy5kLnRzJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnRGF0YWRvZ0xvZ0ZvcndhcmRpbmcnLFxuICAgIHR5cGVWYWx1ZTogJ2RhdGFkb2cnLFxuICAgIHByb3BzVHlwZTogJ0RhdGFkb2dMb2dGb3J3YXJkaW5nUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdEYXRhZG9nTG9nRm9yd2FyZGluZycsXG4gICAgc291cmNlRmlsZTogJ19faGVscGVycy5kLnRzJ1xuICB9LFxuICAvLyBCdWNrZXQgTGlmZWN5Y2xlIFJ1bGVzXG4gIHtcbiAgICBjbGFzc05hbWU6ICdFeHBpcmF0aW9uTGlmZWN5Y2xlUnVsZScsXG4gICAgdHlwZVZhbHVlOiAnZXhwaXJhdGlvbicsXG4gICAgcHJvcHNUeXBlOiAnRXhwaXJhdGlvblByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnRXhwaXJhdGlvbkxpZmVjeWNsZVJ1bGUnLFxuICAgIHNvdXJjZUZpbGU6ICdidWNrZXRzLmQudHMnXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdOb25DdXJyZW50VmVyc2lvbkV4cGlyYXRpb25MaWZlY3ljbGVSdWxlJyxcbiAgICB0eXBlVmFsdWU6ICdub24tY3VycmVudC12ZXJzaW9uLWV4cGlyYXRpb24nLFxuICAgIHByb3BzVHlwZTogJ05vbkN1cnJlbnRWZXJzaW9uRXhwaXJhdGlvblByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnTm9uQ3VycmVudFZlcnNpb25FeHBpcmF0aW9uTGlmZWN5Y2xlUnVsZScsXG4gICAgc291cmNlRmlsZTogJ2J1Y2tldHMuZC50cydcbiAgfSxcbiAgLy8gRUZTIE1vdW50c1xuICB7XG4gICAgY2xhc3NOYW1lOiAnQ29udGFpbmVyRWZzTW91bnQnLFxuICAgIHR5cGVWYWx1ZTogJ2VmcycsXG4gICAgcHJvcHNUeXBlOiAnQ29udGFpbmVyRWZzTW91bnRQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0NvbnRhaW5lckVmc01vdW50JyxcbiAgICBzb3VyY2VGaWxlOiAnX19oZWxwZXJzLmQudHMnXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdMYW1iZGFFZnNNb3VudCcsXG4gICAgdHlwZVZhbHVlOiAnZWZzJyxcbiAgICBwcm9wc1R5cGU6ICdMYW1iZGFFZnNNb3VudFByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnTGFtYmRhRWZzTW91bnQnLFxuICAgIHNvdXJjZUZpbGU6ICdmdW5jdGlvbnMuZC50cydcbiAgfSxcbiAgLy8gQXV0aG9yaXplcnNcbiAge1xuICAgIGNsYXNzTmFtZTogJ0NvZ25pdG9BdXRob3JpemVyJyxcbiAgICB0eXBlVmFsdWU6ICdjb2duaXRvJyxcbiAgICBwcm9wc1R5cGU6ICdDb2duaXRvQXV0aG9yaXplclByb3BlcnRpZXMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdDb2duaXRvQXV0aG9yaXplcicsXG4gICAgc291cmNlRmlsZTogJ3VzZXItcG9vbHMuZC50cydcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ0xhbWJkYUF1dGhvcml6ZXInLFxuICAgIHR5cGVWYWx1ZTogJ2xhbWJkYScsXG4gICAgcHJvcHNUeXBlOiAnTGFtYmRhQXV0aG9yaXplclByb3BlcnRpZXMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdMYW1iZGFBdXRob3JpemVyJyxcbiAgICBzb3VyY2VGaWxlOiAndXNlci1wb29scy5kLnRzJ1xuICB9LFxuICAvLyBBbGFybSBUcmlnZ2Vyc1xuICB7XG4gICAgY2xhc3NOYW1lOiAnQXBwbGljYXRpb25Mb2FkQmFsYW5jZXJDdXN0b21UcmlnZ2VyJyxcbiAgICB0eXBlVmFsdWU6ICdhcHBsaWNhdGlvbi1sb2FkLWJhbGFuY2VyLWN1c3RvbScsXG4gICAgcHJvcHNUeXBlOiAnQXBwbGljYXRpb25Mb2FkQmFsYW5jZXJDdXN0b21UcmlnZ2VyUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdBcHBsaWNhdGlvbkxvYWRCYWxhbmNlckN1c3RvbVRyaWdnZXInLFxuICAgIHNvdXJjZUZpbGU6ICdhbGFybS1tZXRyaWNzLmQudHMnLFxuICAgIGpzZG9jOlxuICAgICAgJ1RyaWdnZXJzIGFuIGFsYXJtIGJhc2VkIG9uIGFueSBBcHBsaWNhdGlvbiBMb2FkIEJhbGFuY2VyIENsb3VkV2F0Y2ggbWV0cmljIChlLmcuLCBjb25uZWN0aW9uIGNvdW50cywgcmVxdWVzdCBjb3VudHMsIHRhcmdldCByZXNwb25zZSB0aW1lcykuJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnQXBwbGljYXRpb25Mb2FkQmFsYW5jZXJFcnJvclJhdGVUcmlnZ2VyJyxcbiAgICB0eXBlVmFsdWU6ICdhcHBsaWNhdGlvbi1sb2FkLWJhbGFuY2VyLWVycm9yLXJhdGUnLFxuICAgIHByb3BzVHlwZTogJ0FwcGxpY2F0aW9uTG9hZEJhbGFuY2VyRXJyb3JSYXRlVHJpZ2dlclByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnQXBwbGljYXRpb25Mb2FkQmFsYW5jZXJFcnJvclJhdGVUcmlnZ2VyJyxcbiAgICBzb3VyY2VGaWxlOiAnYWxhcm1zLmQudHMnLFxuICAgIGpzZG9jOlxuICAgICAgJ1RyaWdnZXJzIGFuIGFsYXJtIHdoZW4gdGhlIEFwcGxpY2F0aW9uIExvYWQgQmFsYW5jZXIgZXJyb3IgcmF0ZSAocGVyY2VudGFnZSBvZiA0eHgvNXh4IHJlc3BvbnNlcykgZXhjZWVkcyB0aGUgdGhyZXNob2xkLidcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ0FwcGxpY2F0aW9uTG9hZEJhbGFuY2VyVW5oZWFsdGh5VGFyZ2V0c1RyaWdnZXInLFxuICAgIHR5cGVWYWx1ZTogJ2FwcGxpY2F0aW9uLWxvYWQtYmFsYW5jZXItdW5oZWFsdGh5LXRhcmdldHMnLFxuICAgIHByb3BzVHlwZTogJ0FwcGxpY2F0aW9uTG9hZEJhbGFuY2VyVW5oZWFsdGh5VGFyZ2V0c1RyaWdnZXJQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0FwcGxpY2F0aW9uTG9hZEJhbGFuY2VyVW5oZWFsdGh5VGFyZ2V0c1RyaWdnZXInLFxuICAgIHNvdXJjZUZpbGU6ICdhbGFybXMuZC50cycsXG4gICAganNkb2M6XG4gICAgICAnVHJpZ2dlcnMgYW4gYWxhcm0gd2hlbiB0aGUgcGVyY2VudGFnZSBvZiB1bmhlYWx0aHkgdGFyZ2V0cyBiZWhpbmQgdGhlIEFwcGxpY2F0aW9uIExvYWQgQmFsYW5jZXIgZXhjZWVkcyB0aGUgdGhyZXNob2xkLidcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ0h0dHBBcGlHYXRld2F5RXJyb3JSYXRlVHJpZ2dlcicsXG4gICAgdHlwZVZhbHVlOiAnaHR0cC1hcGktZ2F0ZXdheS1lcnJvci1yYXRlJyxcbiAgICBwcm9wc1R5cGU6ICdIdHRwQXBpR2F0ZXdheUVycm9yUmF0ZVRyaWdnZXJQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0h0dHBBcGlHYXRld2F5RXJyb3JSYXRlVHJpZ2dlcicsXG4gICAgc291cmNlRmlsZTogJ2FsYXJtcy5kLnRzJyxcbiAgICBqc2RvYzpcbiAgICAgICdUcmlnZ2VycyBhbiBhbGFybSB3aGVuIHRoZSBIVFRQIEFQSSBHYXRld2F5IGVycm9yIHJhdGUgKHBlcmNlbnRhZ2Ugb2YgNHh4LzV4eCByZXNwb25zZXMpIGV4Y2VlZHMgdGhlIHRocmVzaG9sZC4nXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdIdHRwQXBpR2F0ZXdheUxhdGVuY3lUcmlnZ2VyJyxcbiAgICB0eXBlVmFsdWU6ICdodHRwLWFwaS1nYXRld2F5LWxhdGVuY3knLFxuICAgIHByb3BzVHlwZTogJ0h0dHBBcGlHYXRld2F5TGF0ZW5jeVRyaWdnZXJQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0h0dHBBcGlHYXRld2F5TGF0ZW5jeVRyaWdnZXInLFxuICAgIHNvdXJjZUZpbGU6ICdhbGFybXMuZC50cycsXG4gICAganNkb2M6XG4gICAgICAnVHJpZ2dlcnMgYW4gYWxhcm0gd2hlbiBIVFRQIEFQSSBHYXRld2F5IGxhdGVuY3kgZXhjZWVkcyB0aGUgdGhyZXNob2xkLiBMYXRlbmN5IGlzIG1lYXN1cmVkIGZyb20gcmVxdWVzdCByZWNlaXB0IHRvIHJlc3BvbnNlIHNlbnQuJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnUmVsYXRpb25hbERhdGFiYXNlUmVhZExhdGVuY3lUcmlnZ2VyJyxcbiAgICB0eXBlVmFsdWU6ICdkYXRhYmFzZS1yZWFkLWxhdGVuY3knLFxuICAgIHByb3BzVHlwZTogJ1JlbGF0aW9uYWxEYXRhYmFzZVJlYWRMYXRlbmN5VHJpZ2dlclByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnUmVsYXRpb25hbERhdGFiYXNlUmVhZExhdGVuY3lUcmlnZ2VyJyxcbiAgICBzb3VyY2VGaWxlOiAnYWxhcm1zLmQudHMnLFxuICAgIGpzZG9jOiAnVHJpZ2dlcnMgYW4gYWxhcm0gd2hlbiBkYXRhYmFzZSByZWFkIGxhdGVuY3kgKGF2ZXJhZ2UgdGltZSBmb3IgcmVhZCBJL08gb3BlcmF0aW9ucykgZXhjZWVkcyB0aGUgdGhyZXNob2xkLidcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ1JlbGF0aW9uYWxEYXRhYmFzZVdyaXRlTGF0ZW5jeVRyaWdnZXInLFxuICAgIHR5cGVWYWx1ZTogJ2RhdGFiYXNlLXdyaXRlLWxhdGVuY3knLFxuICAgIHByb3BzVHlwZTogJ1JlbGF0aW9uYWxEYXRhYmFzZVdyaXRlTGF0ZW5jeVRyaWdnZXJQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ1JlbGF0aW9uYWxEYXRhYmFzZVdyaXRlTGF0ZW5jeVRyaWdnZXInLFxuICAgIHNvdXJjZUZpbGU6ICdhbGFybXMuZC50cycsXG4gICAganNkb2M6XG4gICAgICAnVHJpZ2dlcnMgYW4gYWxhcm0gd2hlbiBkYXRhYmFzZSB3cml0ZSBsYXRlbmN5IChhdmVyYWdlIHRpbWUgZm9yIHdyaXRlIEkvTyBvcGVyYXRpb25zKSBleGNlZWRzIHRoZSB0aHJlc2hvbGQuJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnUmVsYXRpb25hbERhdGFiYXNlQ1BVVXRpbGl6YXRpb25UcmlnZ2VyJyxcbiAgICB0eXBlVmFsdWU6ICdkYXRhYmFzZS1jcHUtdXRpbGl6YXRpb24nLFxuICAgIHByb3BzVHlwZTogJ1JlbGF0aW9uYWxEYXRhYmFzZUNQVVV0aWxpemF0aW9uVHJpZ2dlclByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnUmVsYXRpb25hbERhdGFiYXNlQ1BVVXRpbGl6YXRpb25UcmlnZ2VyJyxcbiAgICBzb3VyY2VGaWxlOiAnYWxhcm1zLmQudHMnLFxuICAgIGpzZG9jOiAnVHJpZ2dlcnMgYW4gYWxhcm0gd2hlbiBkYXRhYmFzZSBDUFUgdXRpbGl6YXRpb24gZXhjZWVkcyB0aGUgdGhyZXNob2xkIHBlcmNlbnRhZ2UuJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnUmVsYXRpb25hbERhdGFiYXNlRnJlZVN0b3JhZ2VUcmlnZ2VyJyxcbiAgICB0eXBlVmFsdWU6ICdkYXRhYmFzZS1mcmVlLXN0b3JhZ2UnLFxuICAgIHByb3BzVHlwZTogJ1JlbGF0aW9uYWxEYXRhYmFzZUZyZWVTdG9yYWdlVHJpZ2dlclByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnUmVsYXRpb25hbERhdGFiYXNlRnJlZVN0b3JhZ2VUcmlnZ2VyJyxcbiAgICBzb3VyY2VGaWxlOiAnYWxhcm1zLmQudHMnLFxuICAgIGpzZG9jOiAnVHJpZ2dlcnMgYW4gYWxhcm0gd2hlbiBhdmFpbGFibGUgZGF0YWJhc2Ugc3RvcmFnZSBmYWxscyBiZWxvdyB0aGUgdGhyZXNob2xkIChpbiBNQikuJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnUmVsYXRpb25hbERhdGFiYXNlRnJlZU1lbW9yeVRyaWdnZXInLFxuICAgIHR5cGVWYWx1ZTogJ2RhdGFiYXNlLWZyZWUtbWVtb3J5JyxcbiAgICBwcm9wc1R5cGU6ICdSZWxhdGlvbmFsRGF0YWJhc2VGcmVlTWVtb3J5VHJpZ2dlclByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnUmVsYXRpb25hbERhdGFiYXNlRnJlZU1lbW9yeVRyaWdnZXInLFxuICAgIHNvdXJjZUZpbGU6ICdhbGFybXMuZC50cycsXG4gICAganNkb2M6ICdUcmlnZ2VycyBhbiBhbGFybSB3aGVuIGF2YWlsYWJsZSBkYXRhYmFzZSBtZW1vcnkgZmFsbHMgYmVsb3cgdGhlIHRocmVzaG9sZCAoaW4gTUIpLidcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ1JlbGF0aW9uYWxEYXRhYmFzZUNvbm5lY3Rpb25Db3VudFRyaWdnZXInLFxuICAgIHR5cGVWYWx1ZTogJ2RhdGFiYXNlLWNvbm5lY3Rpb24tY291bnQnLFxuICAgIHByb3BzVHlwZTogJ1JlbGF0aW9uYWxEYXRhYmFzZUNvbm5lY3Rpb25Db3VudFRyaWdnZXJQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ1JlbGF0aW9uYWxEYXRhYmFzZUNvbm5lY3Rpb25Db3VudFRyaWdnZXInLFxuICAgIHNvdXJjZUZpbGU6ICdhbGFybXMuZC50cycsXG4gICAganNkb2M6ICdUcmlnZ2VycyBhbiBhbGFybSB3aGVuIHRoZSBudW1iZXIgb2YgZGF0YWJhc2UgY29ubmVjdGlvbnMgZXhjZWVkcyB0aGUgdGhyZXNob2xkLidcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ1Nxc1F1ZXVlUmVjZWl2ZWRNZXNzYWdlc0NvdW50VHJpZ2dlcicsXG4gICAgdHlwZVZhbHVlOiAnc3FzLXF1ZXVlLXJlY2VpdmVkLW1lc3NhZ2VzLWNvdW50JyxcbiAgICBwcm9wc1R5cGU6ICdTcXNRdWV1ZVJlY2VpdmVkTWVzc2FnZXNDb3VudFRyaWdnZXJQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ1Nxc1F1ZXVlUmVjZWl2ZWRNZXNzYWdlc0NvdW50VHJpZ2dlcicsXG4gICAgc291cmNlRmlsZTogJ2FsYXJtcy5kLnRzJyxcbiAgICBqc2RvYzogJ1RyaWdnZXJzIGFuIGFsYXJtIHdoZW4gdGhlIG51bWJlciBvZiBtZXNzYWdlcyByZWNlaXZlZCBmcm9tIGFuIFNRUyBxdWV1ZSBjcm9zc2VzIHRoZSB0aHJlc2hvbGQuJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnU3FzUXVldWVOb3RFbXB0eVRyaWdnZXInLFxuICAgIHR5cGVWYWx1ZTogJ3Nxcy1xdWV1ZS1ub3QtZW1wdHknLFxuICAgIHByb3BzVHlwZTogJ1Nxc1F1ZXVlTm90RW1wdHlUcmlnZ2VyJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnU3FzUXVldWVOb3RFbXB0eVRyaWdnZXInLFxuICAgIHNvdXJjZUZpbGU6ICdhbGFybXMuZC50cycsXG4gICAgdHlwZU9ubHk6IHRydWUsXG4gICAganNkb2M6ICdUcmlnZ2VycyBhbiBhbGFybSBpZiB0aGUgU1FTIHF1ZXVlIGlzIG5vdCBlbXB0eS4gVXNlZnVsIGZvciBtb25pdG9yaW5nIGRlYWQtbGV0dGVyIHF1ZXVlcy4nXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdMYW1iZGFFcnJvclJhdGVUcmlnZ2VyJyxcbiAgICB0eXBlVmFsdWU6ICdsYW1iZGEtZXJyb3ItcmF0ZScsXG4gICAgcHJvcHNUeXBlOiAnTGFtYmRhRXJyb3JSYXRlVHJpZ2dlclByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnTGFtYmRhRXJyb3JSYXRlVHJpZ2dlcicsXG4gICAgc291cmNlRmlsZTogJ2FsYXJtcy5kLnRzJyxcbiAgICBqc2RvYzpcbiAgICAgICdUcmlnZ2VycyBhbiBhbGFybSB3aGVuIHRoZSBMYW1iZGEgZnVuY3Rpb24gZXJyb3IgcmF0ZSAocGVyY2VudGFnZSBvZiBmYWlsZWQgaW52b2NhdGlvbnMpIGV4Y2VlZHMgdGhlIHRocmVzaG9sZC4nXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdMYW1iZGFEdXJhdGlvblRyaWdnZXInLFxuICAgIHR5cGVWYWx1ZTogJ2xhbWJkYS1kdXJhdGlvbicsXG4gICAgcHJvcHNUeXBlOiAnTGFtYmRhRHVyYXRpb25UcmlnZ2VyUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdMYW1iZGFEdXJhdGlvblRyaWdnZXInLFxuICAgIHNvdXJjZUZpbGU6ICdhbGFybXMuZC50cycsXG4gICAganNkb2M6ICdUcmlnZ2VycyBhbiBhbGFybSB3aGVuIExhbWJkYSBmdW5jdGlvbiBleGVjdXRpb24gZHVyYXRpb24gZXhjZWVkcyB0aGUgdGhyZXNob2xkIChpbiBtaWxsaXNlY29uZHMpLidcbiAgfSxcbiAgLy8gQ3VzdG9tIFJlc291cmNlc1xuICB7XG4gICAgY2xhc3NOYW1lOiAnQ3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uJyxcbiAgICB0eXBlVmFsdWU6ICdjdXN0b20tcmVzb3VyY2UtZGVmaW5pdGlvbicsXG4gICAgcHJvcHNUeXBlOiAnQ3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdDdXN0b21SZXNvdXJjZURlZmluaXRpb24nLFxuICAgIHNvdXJjZUZpbGU6ICdjdXN0b20tcmVzb3VyY2VzLmQudHMnXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdDdXN0b21SZXNvdXJjZUluc3RhbmNlJyxcbiAgICB0eXBlVmFsdWU6ICdjdXN0b20tcmVzb3VyY2UtaW5zdGFuY2UnLFxuICAgIHByb3BzVHlwZTogJ0N1c3RvbVJlc291cmNlSW5zdGFuY2VQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0N1c3RvbVJlc291cmNlSW5zdGFuY2UnLFxuICAgIHNvdXJjZUZpbGU6ICdjdXN0b20tcmVzb3VyY2VzLmQudHMnXG4gIH0sXG4gIC8vIERlcGxveW1lbnQgU2NyaXB0c1xuICB7XG4gICAgY2xhc3NOYW1lOiAnRGVwbG95bWVudFNjcmlwdCcsXG4gICAgdHlwZVZhbHVlOiAnZGVwbG95bWVudC1zY3JpcHQnLFxuICAgIHByb3BzVHlwZTogJ0RlcGxveW1lbnRTY3JpcHRQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0RlcGxveW1lbnRTY3JpcHQnLFxuICAgIHNvdXJjZUZpbGU6ICdkZXBsb3ltZW50LXNjcmlwdC5kLnRzJ1xuICB9LFxuICAvLyBFZGdlIExhbWJkYSBGdW5jdGlvbnNcbiAge1xuICAgIGNsYXNzTmFtZTogJ0VkZ2VMYW1iZGFGdW5jdGlvbicsXG4gICAgdHlwZVZhbHVlOiAnZWRnZS1sYW1iZGEtZnVuY3Rpb24nLFxuICAgIHByb3BzVHlwZTogJ0VkZ2VMYW1iZGFGdW5jdGlvblByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnRWRnZUxhbWJkYUZ1bmN0aW9uJyxcbiAgICBzb3VyY2VGaWxlOiAnZWRnZS1sYW1iZGEtZnVuY3Rpb25zLmQudHMnXG4gIH1cbl07XG5cbi8vID09PT09PT09PT09PT09PT09PT09IEhFTFBFUiBGVU5DVElPTlMgPT09PT09PT09PT09PT09PT09PT1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFJlc291cmNlQnlDbGFzc05hbWUoY2xhc3NOYW1lOiBzdHJpbmcpOiBSZXNvdXJjZURlZmluaXRpb24gfCB1bmRlZmluZWQge1xuICByZXR1cm4gUkVTT1VSQ0VTX0NPTlZFUlRJQkxFX1RPX0NMQVNTRVMuZmluZCgocikgPT4gci5jbGFzc05hbWUgPT09IGNsYXNzTmFtZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRSZXNvdXJjZUJ5VHlwZShyZXNvdXJjZVR5cGU6IHN0cmluZyk6IFJlc291cmNlRGVmaW5pdGlvbiB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBSRVNPVVJDRVNfQ09OVkVSVElCTEVfVE9fQ0xBU1NFUy5maW5kKChyKSA9PiByLnJlc291cmNlVHlwZSA9PT0gcmVzb3VyY2VUeXBlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFJlc291cmNlc1dpdGhBdWdtZW50ZWRQcm9wcygpOiBSZXNvdXJjZURlZmluaXRpb25bXSB7XG4gIHJldHVybiBSRVNPVVJDRVNfQ09OVkVSVElCTEVfVE9fQ0xBU1NFUy5maWx0ZXIoKHIpID0+IHIuaGFzQXVnbWVudGVkUHJvcHMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVzb3VyY2VzV2l0aE92ZXJyaWRlcygpOiBSZXNvdXJjZURlZmluaXRpb25bXSB7XG4gIHJldHVybiBSRVNPVVJDRVNfQ09OVkVSVElCTEVfVE9fQ0xBU1NFUy5maWx0ZXIoKHIpID0+IHIuc3VwcG9ydHNPdmVycmlkZXMgIT09IGZhbHNlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFR5cGVQcm9wZXJ0aWVzQnlDbGFzc05hbWUoY2xhc3NOYW1lOiBzdHJpbmcpOiBUeXBlUHJvcGVydGllc0RlZmluaXRpb24gfCB1bmRlZmluZWQge1xuICByZXR1cm4gTUlTQ19UWVBFU19DT05WRVJUSUJMRV9UT19DTEFTU0VTLmZpbmQoKHQpID0+IHQuY2xhc3NOYW1lID09PSBjbGFzc05hbWUpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VHlwZVByb3BlcnRpZXNCeVR5cGVWYWx1ZSh0eXBlVmFsdWU6IHN0cmluZyk6IFR5cGVQcm9wZXJ0aWVzRGVmaW5pdGlvbiB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBNSVNDX1RZUEVTX0NPTlZFUlRJQkxFX1RPX0NMQVNTRVMuZmluZCgodCkgPT4gdC50eXBlVmFsdWUgPT09IHR5cGVWYWx1ZSk7XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09IERFUklWRUQgTUFQUElOR1MgPT09PT09PT09PT09PT09PT09PT1cblxuLyoqIFJlc291cmNlIHR5cGUg4oaSIGNsYXNzIG5hbWUgbWFwcGluZyAqL1xuZXhwb3J0IGNvbnN0IFJFU09VUkNFX1RZUEVfVE9fQ0xBU1M6IFJlY29yZDxzdHJpbmcsIFJlc291cmNlQ2xhc3NOYW1lPiA9IE9iamVjdC5mcm9tRW50cmllcyhcbiAgUkVTT1VSQ0VTX0NPTlZFUlRJQkxFX1RPX0NMQVNTRVMubWFwKChyKSA9PiBbci5yZXNvdXJjZVR5cGUsIHIuY2xhc3NOYW1lXSlcbik7XG5cbi8qKiBTY3JpcHQgdHlwZSDihpIgY2xhc3MgbmFtZSBtYXBwaW5nICovXG5leHBvcnQgY29uc3QgU0NSSVBUX1RZUEVfVE9fQ0xBU1M6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSBPYmplY3QuZnJvbUVudHJpZXMoXG4gIE1JU0NfVFlQRVNfQ09OVkVSVElCTEVfVE9fQ0xBU1NFUy5maWx0ZXIoXG4gICAgKHQpID0+IHQuc291cmNlRmlsZSA9PT0gJ19faGVscGVycy5kLnRzJyAmJiB0LnByb3BzVHlwZS5pbmNsdWRlcygnU2NyaXB0JylcbiAgKS5tYXAoKHQpID0+IFt0LnR5cGVWYWx1ZSwgdC5jbGFzc05hbWVdKVxuKTtcblxuLyoqIFBhY2thZ2luZyB0eXBlIOKGkiBjbGFzcyBuYW1lIG1hcHBpbmcgKi9cbmV4cG9ydCBjb25zdCBQQUNLQUdJTkdfVFlQRV9UT19DTEFTUzogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IE9iamVjdC5mcm9tRW50cmllcyhcbiAgTUlTQ19UWVBFU19DT05WRVJUSUJMRV9UT19DTEFTU0VTLmZpbHRlcigodCkgPT4gdC5zb3VyY2VGaWxlID09PSAnZGVwbG95bWVudC1hcnRpZmFjdHMuZC50cycpLm1hcCgodCkgPT4gW1xuICAgIHQudHlwZVZhbHVlLFxuICAgIHQuY2xhc3NOYW1lXG4gIF0pXG4pO1xuXG4vKiogRW5naW5lIHR5cGUg4oaSIGNsYXNzIG5hbWUgbWFwcGluZyAqL1xuZXhwb3J0IGNvbnN0IEVOR0lORV9UWVBFX1RPX0NMQVNTOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0gT2JqZWN0LmZyb21FbnRyaWVzKFxuICBNSVNDX1RZUEVTX0NPTlZFUlRJQkxFX1RPX0NMQVNTRVMuZmlsdGVyKCh0KSA9PiB0LnByb3BzVHlwZS5pbmNsdWRlcygnRW5naW5lJykpLm1hcCgodCkgPT4gW3QudHlwZVZhbHVlLCB0LmNsYXNzTmFtZV0pXG4pO1xuIiwKICAgICIvLyBSZS1leHBvcnQgZnJvbSBjbGFzcy1jb25maWcgKHNpbmdsZSBzb3VyY2Ugb2YgdHJ1dGgpXG5leHBvcnQge1xuICBnZXRSZXNvdXJjZUJ5Q2xhc3NOYW1lLFxuICBnZXRSZXNvdXJjZUJ5VHlwZSxcbiAgZ2V0UmVzb3VyY2VzV2l0aEF1Z21lbnRlZFByb3BzLFxuICBnZXRSZXNvdXJjZXNXaXRoT3ZlcnJpZGVzLFxuICBnZXRUeXBlUHJvcGVydGllc0J5Q2xhc3NOYW1lLFxuICBnZXRUeXBlUHJvcGVydGllc0J5VHlwZVZhbHVlLFxuICBNSVNDX1RZUEVTX0NPTlZFUlRJQkxFX1RPX0NMQVNTRVMsXG4gIHR5cGUgUmVzb3VyY2VEZWZpbml0aW9uLFxuICBSRVNPVVJDRVNfQ09OVkVSVElCTEVfVE9fQ0xBU1NFUyxcbiAgdHlwZSBUeXBlUHJvcGVydGllc0RlZmluaXRpb25cbn0gZnJvbSAnLi9jbGFzcy1jb25maWcnO1xuXG4vLyBUaGVzZSBjYW4gYmUgcmVmZXJlbmNlZCB1c2luZyAkUmVzb3VyY2VQYXJhbSBkaXJlY3RpdmVcbmV4cG9ydCBjb25zdCBSRUZFUkVOQ0VBQkxFX1BBUkFNUzogUmVjb3JkPHN0cmluZywgQXJyYXk8eyBuYW1lOiBzdHJpbmc7IGRlc2NyaXB0aW9uOiBzdHJpbmcgfT4+ID0ge1xuICAncmVsYXRpb25hbC1kYXRhYmFzZSc6IFtcbiAgICB7IG5hbWU6ICdjb25uZWN0aW9uU3RyaW5nJywgZGVzY3JpcHRpb246ICdDb25uZWN0aW9uIHN0cmluZyBmb3IgdGhlIGRhdGFiYXNlJyB9LFxuICAgIHsgbmFtZTogJ2pkYmNDb25uZWN0aW9uU3RyaW5nJywgZGVzY3JpcHRpb246ICdKREJDIGNvbm5lY3Rpb24gc3RyaW5nJyB9LFxuICAgIHsgbmFtZTogJ2hvc3QnLCBkZXNjcmlwdGlvbjogJ0RhdGFiYXNlIGhvc3QnIH0sXG4gICAgeyBuYW1lOiAncG9ydCcsIGRlc2NyaXB0aW9uOiAnRGF0YWJhc2UgcG9ydCcgfSxcbiAgICB7IG5hbWU6ICdkYk5hbWUnLCBkZXNjcmlwdGlvbjogJ0RhdGFiYXNlIG5hbWUnIH0sXG4gICAgeyBuYW1lOiAncmVhZGVySG9zdCcsIGRlc2NyaXB0aW9uOiAnUmVhZGVyIGVuZHBvaW50IGhvc3QnIH0sXG4gICAgeyBuYW1lOiAncmVhZGVyQ29ubmVjdGlvblN0cmluZycsIGRlc2NyaXB0aW9uOiAnUmVhZGVyIGNvbm5lY3Rpb24gc3RyaW5nJyB9LFxuICAgIHsgbmFtZTogJ3JlYWRlckpkYmNDb25uZWN0aW9uU3RyaW5nJywgZGVzY3JpcHRpb246ICdSZWFkZXIgSkRCQyBjb25uZWN0aW9uIHN0cmluZycgfVxuICBdLFxuICAnd2ViLXNlcnZpY2UnOiBbXG4gICAgeyBuYW1lOiAnZG9tYWluJywgZGVzY3JpcHRpb246ICdXZWIgc2VydmljZSBkb21haW4nIH0sXG4gICAgeyBuYW1lOiAndXJsJywgZGVzY3JpcHRpb246ICdXZWIgc2VydmljZSBVUkwnIH0sXG4gICAgeyBuYW1lOiAnY3VzdG9tRG9tYWlucycsIGRlc2NyaXB0aW9uOiAnQ3VzdG9tIGRvbWFpbnMnIH0sXG4gICAgeyBuYW1lOiAnY3VzdG9tRG9tYWluVXJscycsIGRlc2NyaXB0aW9uOiAnQ3VzdG9tIGRvbWFpbiBVUkxzJyB9XG4gIF0sXG4gICdwcml2YXRlLXNlcnZpY2UnOiBbeyBuYW1lOiAnYWRkcmVzcycsIGRlc2NyaXB0aW9uOiAnUHJpdmF0ZSBzZXJ2aWNlIGFkZHJlc3MnIH1dLFxuICBidWNrZXQ6IFtcbiAgICB7IG5hbWU6ICduYW1lJywgZGVzY3JpcHRpb246ICdCdWNrZXQgbmFtZScgfSxcbiAgICB7IG5hbWU6ICdhcm4nLCBkZXNjcmlwdGlvbjogJ0J1Y2tldCBBUk4nIH1cbiAgXSxcbiAgJ2R5bmFtby1kYi10YWJsZSc6IFtcbiAgICB7IG5hbWU6ICduYW1lJywgZGVzY3JpcHRpb246ICdUYWJsZSBuYW1lJyB9LFxuICAgIHsgbmFtZTogJ2FybicsIGRlc2NyaXB0aW9uOiAnVGFibGUgQVJOJyB9LFxuICAgIHsgbmFtZTogJ3N0cmVhbUFybicsIGRlc2NyaXB0aW9uOiAnU3RyZWFtIEFSTicgfVxuICBdLFxuICBmdW5jdGlvbjogW1xuICAgIHsgbmFtZTogJ2FybicsIGRlc2NyaXB0aW9uOiAnRnVuY3Rpb24gQVJOJyB9LFxuICAgIHsgbmFtZTogJ2xvZ0dyb3VwQXJuJywgZGVzY3JpcHRpb246ICdMb2cgZ3JvdXAgQVJOJyB9XG4gIF0sXG4gICdiYXRjaC1qb2InOiBbXG4gICAgeyBuYW1lOiAnam9iRGVmaW5pdGlvbkFybicsIGRlc2NyaXB0aW9uOiAnSm9iIGRlZmluaXRpb24gQVJOJyB9LFxuICAgIHsgbmFtZTogJ3N0YXRlTWFjaGluZUFybicsIGRlc2NyaXB0aW9uOiAnU3RhdGUgbWFjaGluZSBBUk4nIH0sXG4gICAgeyBuYW1lOiAnbG9nR3JvdXBBcm4nLCBkZXNjcmlwdGlvbjogJ0xvZyBncm91cCBBUk4nIH1cbiAgXSxcbiAgJ2V2ZW50LWJ1cyc6IFtcbiAgICB7IG5hbWU6ICdhcm4nLCBkZXNjcmlwdGlvbjogJ0V2ZW50IGJ1cyBBUk4nIH0sXG4gICAgeyBuYW1lOiAnYXJjaGl2ZUFybicsIGRlc2NyaXB0aW9uOiAnQXJjaGl2ZSBBUk4nIH1cbiAgXSxcbiAgJ2h0dHAtYXBpLWdhdGV3YXknOiBbXG4gICAgeyBuYW1lOiAnZG9tYWluJywgZGVzY3JpcHRpb246ICdBUEkgR2F0ZXdheSBkb21haW4nIH0sXG4gICAgeyBuYW1lOiAndXJsJywgZGVzY3JpcHRpb246ICdBUEkgR2F0ZXdheSBVUkwnIH0sXG4gICAgeyBuYW1lOiAnY3VzdG9tRG9tYWlucycsIGRlc2NyaXB0aW9uOiAnQ3VzdG9tIGRvbWFpbnMnIH0sXG4gICAgeyBuYW1lOiAnY3VzdG9tRG9tYWluVXJscycsIGRlc2NyaXB0aW9uOiAnQ3VzdG9tIGRvbWFpbiBVUkxzJyB9LFxuICAgIHsgbmFtZTogJ2N1c3RvbURvbWFpblVybCcsIGRlc2NyaXB0aW9uOiAnRmlyc3QgY3VzdG9tIGRvbWFpbiBVUkwnIH1cbiAgXSxcbiAgJ21vbmdvLWRiLWF0bGFzLWNsdXN0ZXInOiBbeyBuYW1lOiAnY29ubmVjdGlvblN0cmluZycsIGRlc2NyaXB0aW9uOiAnTW9uZ29EQiBjb25uZWN0aW9uIHN0cmluZycgfV0sXG4gICdyZWRpcy1jbHVzdGVyJzogW1xuICAgIHsgbmFtZTogJ2hvc3QnLCBkZXNjcmlwdGlvbjogJ1JlZGlzIGhvc3QnIH0sXG4gICAgeyBuYW1lOiAncmVhZGVySG9zdCcsIGRlc2NyaXB0aW9uOiAnUmVkaXMgcmVhZGVyIGhvc3QnIH0sXG4gICAgeyBuYW1lOiAncG9ydCcsIGRlc2NyaXB0aW9uOiAnUmVkaXMgcG9ydCcgfSxcbiAgICB7IG5hbWU6ICdzaGFyZGluZycsIGRlc2NyaXB0aW9uOiAnU2hhcmRpbmcgc3RhdHVzJyB9XG4gIF0sXG4gICdzdGF0ZS1tYWNoaW5lJzogW1xuICAgIHsgbmFtZTogJ2FybicsIGRlc2NyaXB0aW9uOiAnU3RhdGUgbWFjaGluZSBBUk4nIH0sXG4gICAgeyBuYW1lOiAnbmFtZScsIGRlc2NyaXB0aW9uOiAnU3RhdGUgbWFjaGluZSBuYW1lJyB9XG4gIF0sXG4gICd1c2VyLWF1dGgtcG9vbCc6IFtcbiAgICB7IG5hbWU6ICdpZCcsIGRlc2NyaXB0aW9uOiAnVXNlciBwb29sIElEJyB9LFxuICAgIHsgbmFtZTogJ2NsaWVudElkJywgZGVzY3JpcHRpb246ICdDbGllbnQgSUQnIH0sXG4gICAgeyBuYW1lOiAnZG9tYWluJywgZGVzY3JpcHRpb246ICdVc2VyIHBvb2wgZG9tYWluJyB9XG4gIF0sXG4gICd1cHN0YXNoLXJlZGlzJzogW1xuICAgIHsgbmFtZTogJ2hvc3QnLCBkZXNjcmlwdGlvbjogJ1Vwc3Rhc2ggUmVkaXMgaG9zdCcgfSxcbiAgICB7IG5hbWU6ICdwb3J0JywgZGVzY3JpcHRpb246ICdVcHN0YXNoIFJlZGlzIHBvcnQnIH0sXG4gICAgeyBuYW1lOiAncGFzc3dvcmQnLCBkZXNjcmlwdGlvbjogJ1Bhc3N3b3JkJyB9LFxuICAgIHsgbmFtZTogJ3Jlc3RUb2tlbicsIGRlc2NyaXB0aW9uOiAnUkVTVCB0b2tlbicgfSxcbiAgICB7IG5hbWU6ICdyZWFkT25seVJlc3RUb2tlbicsIGRlc2NyaXB0aW9uOiAnUmVhZC1vbmx5IFJFU1QgdG9rZW4nIH0sXG4gICAgeyBuYW1lOiAncmVzdFVybCcsIGRlc2NyaXB0aW9uOiAnUkVTVCBVUkwnIH0sXG4gICAgeyBuYW1lOiAncmVkaXNVcmwnLCBkZXNjcmlwdGlvbjogJ1JlZGlzIFVSTCcgfVxuICBdLFxuICAnYXBwbGljYXRpb24tbG9hZC1iYWxhbmNlcic6IFtcbiAgICB7IG5hbWU6ICdkb21haW4nLCBkZXNjcmlwdGlvbjogJ0xvYWQgYmFsYW5jZXIgZG9tYWluJyB9LFxuICAgIHsgbmFtZTogJ2N1c3RvbURvbWFpbnMnLCBkZXNjcmlwdGlvbjogJ0N1c3RvbSBkb21haW5zJyB9XG4gIF0sXG4gICduZXR3b3JrLWxvYWQtYmFsYW5jZXInOiBbXG4gICAgeyBuYW1lOiAnZG9tYWluJywgZGVzY3JpcHRpb246ICdMb2FkIGJhbGFuY2VyIGRvbWFpbicgfSxcbiAgICB7IG5hbWU6ICdjdXN0b21Eb21haW5zJywgZGVzY3JpcHRpb246ICdDdXN0b20gZG9tYWlucycgfVxuICBdLFxuICAnaG9zdGluZy1idWNrZXQnOiBbXG4gICAgeyBuYW1lOiAnbmFtZScsIGRlc2NyaXB0aW9uOiAnQnVja2V0IG5hbWUnIH0sXG4gICAgeyBuYW1lOiAnYXJuJywgZGVzY3JpcHRpb246ICdCdWNrZXQgQVJOJyB9XG4gIF0sXG4gICd3ZWItYXBwLWZpcmV3YWxsJzogW1xuICAgIHsgbmFtZTogJ2FybicsIGRlc2NyaXB0aW9uOiAnRmlyZXdhbGwgQVJOJyB9LFxuICAgIHsgbmFtZTogJ3Njb3BlJywgZGVzY3JpcHRpb246ICdGaXJld2FsbCBzY29wZScgfVxuICBdLFxuICAnb3Blbi1zZWFyY2gtZG9tYWluJzogW1xuICAgIHsgbmFtZTogJ2RvbWFpbkVuZHBvaW50JywgZGVzY3JpcHRpb246ICdPcGVuU2VhcmNoIGRvbWFpbiBlbmRwb2ludCcgfSxcbiAgICB7IG5hbWU6ICdhcm4nLCBkZXNjcmlwdGlvbjogJ0RvbWFpbiBBUk4nIH1cbiAgXSxcbiAgJ2Vmcy1maWxlc3lzdGVtJzogW1xuICAgIHsgbmFtZTogJ2FybicsIGRlc2NyaXB0aW9uOiAnRUZTIEFSTicgfSxcbiAgICB7IG5hbWU6ICdpZCcsIGRlc2NyaXB0aW9uOiAnRUZTIElEJyB9XG4gIF0sXG4gICduZXh0anMtd2ViJzogW3sgbmFtZTogJ3VybCcsIGRlc2NyaXB0aW9uOiAnV2Vic2l0ZSBVUkwnIH1dLFxuICAnYXN0cm8td2ViJzogW3sgbmFtZTogJ3VybCcsIGRlc2NyaXB0aW9uOiAnV2Vic2l0ZSBVUkwnIH1dLFxuICAnbnV4dC13ZWInOiBbeyBuYW1lOiAndXJsJywgZGVzY3JpcHRpb246ICdXZWJzaXRlIFVSTCcgfV0sXG4gICdzdmVsdGVraXQtd2ViJzogW3sgbmFtZTogJ3VybCcsIGRlc2NyaXB0aW9uOiAnV2Vic2l0ZSBVUkwnIH1dLFxuICAnc29saWRzdGFydC13ZWInOiBbeyBuYW1lOiAndXJsJywgZGVzY3JpcHRpb246ICdXZWJzaXRlIFVSTCcgfV0sXG4gICd0YW5zdGFjay13ZWInOiBbeyBuYW1lOiAndXJsJywgZGVzY3JpcHRpb246ICdXZWJzaXRlIFVSTCcgfV0sXG4gICdyZW1peC13ZWInOiBbeyBuYW1lOiAndXJsJywgZGVzY3JpcHRpb246ICdXZWJzaXRlIFVSTCcgfV0sXG4gICdtdWx0aS1jb250YWluZXItd29ya2xvYWQnOiBbeyBuYW1lOiAnbG9nR3JvdXBBcm4nLCBkZXNjcmlwdGlvbjogJ0xvZyBncm91cCBBUk4nIH1dLFxuICAnc3FzLXF1ZXVlJzogW1xuICAgIHsgbmFtZTogJ2FybicsIGRlc2NyaXB0aW9uOiAnUXVldWUgQVJOJyB9LFxuICAgIHsgbmFtZTogJ3VybCcsIGRlc2NyaXB0aW9uOiAnUXVldWUgVVJMJyB9LFxuICAgIHsgbmFtZTogJ25hbWUnLCBkZXNjcmlwdGlvbjogJ1F1ZXVlIG5hbWUnIH1cbiAgXSxcbiAgJ3Nucy10b3BpYyc6IFtcbiAgICB7IG5hbWU6ICdhcm4nLCBkZXNjcmlwdGlvbjogJ1RvcGljIEFSTicgfSxcbiAgICB7IG5hbWU6ICduYW1lJywgZGVzY3JpcHRpb246ICdUb3BpYyBuYW1lJyB9XG4gIF1cbn07XG4iLAogICAgImltcG9ydCB0eXBlIHsgUmVzb3VyY2VDbGFzc05hbWUgfSBmcm9tICcuL2NsYXNzLWNvbmZpZyc7XG5pbXBvcnQgeyBSRVNPVVJDRVNfQ09OVkVSVElCTEVfVE9fQ0xBU1NFUyB9IGZyb20gJy4vY2xhc3MtY29uZmlnJztcbmltcG9ydCB7IEJhc2VSZXNvdXJjZSB9IGZyb20gJy4vY29uZmlnJztcbmltcG9ydCB7IFJFRkVSRU5DRUFCTEVfUEFSQU1TIH0gZnJvbSAnLi9yZXNvdXJjZS1tZXRhZGF0YSc7XG5cbi8vIFByaXZhdGUgc3ltYm9sIGZvciBhY2Nlc3NpbmcgdGhlIGludGVybmFsIHBhcmFtIHJlZmVyZW5jZSBtZXRob2RcbmNvbnN0IGdldFBhcmFtUmVmZXJlbmNlU3ltYm9sID0gU3ltYm9sLmZvcignc3RhY2t0YXBlOmdldFBhcmFtUmVmZXJlbmNlJyk7XG5cbi8qKlxuICogRmFjdG9yeSBmdW5jdGlvbiB0byBjcmVhdGUgYSByZXNvdXJjZSBjbGFzcyB3aXRoIHJlZmVyZW5jZWFibGUgcGFyYW1ldGVycy5cbiAqIFN1cHBvcnRzIHR3byBjYWxsaW5nIGNvbnZlbnRpb25zOlxuICogLSBuZXcgUmVzb3VyY2UocHJvcGVydGllcykgLSBuYW1lIGRlcml2ZWQgZnJvbSBvYmplY3Qga2V5IGluIHJlc291cmNlc1xuICogLSBuZXcgUmVzb3VyY2UobmFtZSwgcHJvcGVydGllcykgLSBleHBsaWNpdCBuYW1lIChiYWNrd2FyZHMgY29tcGF0aWJsZSlcbiAqL1xuZnVuY3Rpb24gY3JlYXRlUmVzb3VyY2VDbGFzcyhjbGFzc05hbWU6IFJlc291cmNlQ2xhc3NOYW1lLCByZXNvdXJjZVR5cGU6IHN0cmluZyk6IGFueSB7XG4gIC8vIENyZWF0ZSB0aGUgY2xhc3MgZHluYW1pY2FsbHlcbiAgY29uc3QgUmVzb3VyY2VDbGFzcyA9IGNsYXNzIGV4dGVuZHMgQmFzZVJlc291cmNlIHtcbiAgICBjb25zdHJ1Y3RvcihuYW1lT3JQcm9wZXJ0aWVzOiBzdHJpbmcgfCBhbnksIHByb3BlcnRpZXM/OiBhbnkpIHtcbiAgICAgIGlmICh0eXBlb2YgbmFtZU9yUHJvcGVydGllcyA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgLy8gT2xkIHN0eWxlOiAobmFtZSwgcHJvcGVydGllcykgLSBleHBsaWNpdCBuYW1lXG4gICAgICAgIHN1cGVyKG5hbWVPclByb3BlcnRpZXMsIHJlc291cmNlVHlwZSwgcHJvcGVydGllcyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBOZXcgc3R5bGU6IChwcm9wZXJ0aWVzKSAtIG5hbWUgd2lsbCBiZSBzZXQgZnJvbSBvYmplY3Qga2V5XG4gICAgICAgIHN1cGVyKHVuZGVmaW5lZCwgcmVzb3VyY2VUeXBlLCBuYW1lT3JQcm9wZXJ0aWVzKTtcbiAgICAgIH1cbiAgICB9XG4gIH07XG5cbiAgLy8gU2V0IHRoZSBjbGFzcyBuYW1lIGZvciBiZXR0ZXIgZGVidWdnaW5nXG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShSZXNvdXJjZUNsYXNzLCAnbmFtZScsIHsgdmFsdWU6IGNsYXNzTmFtZSB9KTtcblxuICAvLyBBZGQgcmVmZXJlbmNlYWJsZSBwYXJhbWV0ZXIgZ2V0dGVyc1xuICBjb25zdCByZWZlcmVuY2VhYmxlUGFyYW1zID0gUkVGRVJFTkNFQUJMRV9QQVJBTVNbcmVzb3VyY2VUeXBlXSB8fCBbXTtcbiAgZm9yIChjb25zdCBwYXJhbSBvZiByZWZlcmVuY2VhYmxlUGFyYW1zKSB7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFJlc291cmNlQ2xhc3MucHJvdG90eXBlLCBwYXJhbS5uYW1lLCB7XG4gICAgICBnZXQodGhpczogQmFzZVJlc291cmNlKSB7XG4gICAgICAgIHJldHVybiAodGhpcyBhcyBhbnkpW2dldFBhcmFtUmVmZXJlbmNlU3ltYm9sXShwYXJhbS5uYW1lKTtcbiAgICAgIH0sXG4gICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIFJlc291cmNlQ2xhc3M7XG59XG5cbi8vIENyZWF0ZSBhbGwgcmVzb3VyY2UgY2xhc3NlcyBmcm9tIGNvbmZpZ1xuY29uc3QgUkVTT1VSQ0VfQ0xBU1NFUzogUmVjb3JkPHN0cmluZywgUmV0dXJuVHlwZTx0eXBlb2YgY3JlYXRlUmVzb3VyY2VDbGFzcz4+ID0ge307XG5mb3IgKGNvbnN0IGRlZiBvZiBSRVNPVVJDRVNfQ09OVkVSVElCTEVfVE9fQ0xBU1NFUykge1xuICAvLyBVc2UgJ0xhbWJkYUZ1bmN0aW9uJyBhcyB0aGUgZXhwb3J0ZWQgbmFtZSBmb3IgJ0Z1bmN0aW9uJyB0byBhdm9pZCBKUyByZXNlcnZlZCB3b3JkIGlzc3Vlc1xuICBSRVNPVVJDRV9DTEFTU0VTW2RlZi5jbGFzc05hbWUgYXMgYW55XSA9IGNyZWF0ZVJlc291cmNlQ2xhc3MoZGVmLmNsYXNzTmFtZSwgZGVmLnJlc291cmNlVHlwZSk7XG59XG5cbi8vIEV4cG9ydCBhbGwgcmVzb3VyY2UgY2xhc3NlcyBmb3IgbmFtZWQgaW1wb3J0c1xuZXhwb3J0IGNvbnN0IHtcbiAgUmVsYXRpb25hbERhdGFiYXNlLFxuICBXZWJTZXJ2aWNlLFxuICBQcml2YXRlU2VydmljZSxcbiAgV29ya2VyU2VydmljZSxcbiAgTXVsdGlDb250YWluZXJXb3JrbG9hZCxcbiAgTGFtYmRhRnVuY3Rpb24sXG4gIEJhdGNoSm9iLFxuICBCdWNrZXQsXG4gIEhvc3RpbmdCdWNrZXQsXG4gIER5bmFtb0RiVGFibGUsXG4gIEV2ZW50QnVzLFxuICBIdHRwQXBpR2F0ZXdheSxcbiAgQXBwbGljYXRpb25Mb2FkQmFsYW5jZXIsXG4gIE5ldHdvcmtMb2FkQmFsYW5jZXIsXG4gIFJlZGlzQ2x1c3RlcixcbiAgTW9uZ29EYkF0bGFzQ2x1c3RlcixcbiAgU3RhdGVNYWNoaW5lLFxuICBVc2VyQXV0aFBvb2wsXG4gIFVwc3Rhc2hSZWRpcyxcbiAgU3FzUXVldWUsXG4gIFNuc1RvcGljLFxuICBLaW5lc2lzU3RyZWFtLFxuICBXZWJBcHBGaXJld2FsbCxcbiAgT3BlblNlYXJjaERvbWFpbixcbiAgRWZzRmlsZXN5c3RlbSxcbiAgTmV4dGpzV2ViLFxuICBCYXN0aW9uXG59ID0gUkVTT1VSQ0VfQ0xBU1NFUztcbiIsCiAgICAiaW1wb3J0IHsgTUlTQ19UWVBFU19DT05WRVJUSUJMRV9UT19DTEFTU0VTIH0gZnJvbSAnLi9jbGFzcy1jb25maWcnO1xuaW1wb3J0IHsgQmFzZVR5cGVQcm9wZXJ0aWVzLCBCYXNlVHlwZU9ubHkgfSBmcm9tICcuL2NvbmZpZyc7XG5cbmZ1bmN0aW9uIGNyZWF0ZVR5cGVQcm9wZXJ0aWVzQ2xhc3MoY2xhc3NOYW1lOiBzdHJpbmcsIHR5cGVWYWx1ZTogc3RyaW5nLCB0eXBlT25seT86IGJvb2xlYW4pOiBhbnkge1xuICBpZiAodHlwZU9ubHkpIHtcbiAgICBjb25zdCBUeXBlT25seUNsYXNzID0gY2xhc3MgZXh0ZW5kcyBCYXNlVHlwZU9ubHkge1xuICAgICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKHR5cGVWYWx1ZSk7XG4gICAgICB9XG4gICAgfTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoVHlwZU9ubHlDbGFzcywgJ25hbWUnLCB7IHZhbHVlOiBjbGFzc05hbWUgfSk7XG4gICAgcmV0dXJuIFR5cGVPbmx5Q2xhc3M7XG4gIH1cblxuICBjb25zdCBUeXBlUHJvcGVydGllc0NsYXNzID0gY2xhc3MgZXh0ZW5kcyBCYXNlVHlwZVByb3BlcnRpZXMge1xuICAgIGNvbnN0cnVjdG9yKHByb3BlcnRpZXM6IGFueSkge1xuICAgICAgc3VwZXIodHlwZVZhbHVlLCBwcm9wZXJ0aWVzKTtcbiAgICB9XG4gIH07XG5cbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFR5cGVQcm9wZXJ0aWVzQ2xhc3MsICduYW1lJywgeyB2YWx1ZTogY2xhc3NOYW1lIH0pO1xuICByZXR1cm4gVHlwZVByb3BlcnRpZXNDbGFzcztcbn1cblxuLy8gQ3JlYXRlIGFsbCB0eXBlLXByb3BlcnRpZXMgY2xhc3NlcyBmcm9tIGNvbmZpZ1xuY29uc3QgVFlQRV9QUk9QRVJUSUVTX0NMQVNTRVM6IFJlY29yZDxzdHJpbmcsIFJldHVyblR5cGU8dHlwZW9mIGNyZWF0ZVR5cGVQcm9wZXJ0aWVzQ2xhc3M+PiA9IHt9O1xuZm9yIChjb25zdCBkZWYgb2YgTUlTQ19UWVBFU19DT05WRVJUSUJMRV9UT19DTEFTU0VTKSB7XG4gIFRZUEVfUFJPUEVSVElFU19DTEFTU0VTW2RlZi5jbGFzc05hbWVdID0gY3JlYXRlVHlwZVByb3BlcnRpZXNDbGFzcyhkZWYuY2xhc3NOYW1lLCBkZWYudHlwZVZhbHVlLCBkZWYudHlwZU9ubHkpO1xufVxuXG4vLyBFeHBvcnQgYWxsIGNsYXNzZXMgZm9yIG5hbWVkIGltcG9ydHMgKFR5cGVTY3JpcHQgbmVlZHMgdGhlc2UgZXhwbGljaXQgZXhwb3J0cylcbmV4cG9ydCBjb25zdCB7XG4gIC8vIERhdGFiYXNlIEVuZ2luZXNcbiAgUmRzRW5naW5lUG9zdGdyZXMsXG4gIFJkc0VuZ2luZU1hcmlhZGIsXG4gIFJkc0VuZ2luZU15c3FsLFxuICBSZHNFbmdpbmVPcmFjbGVFRSxcbiAgUmRzRW5naW5lT3JhY2xlU0UyLFxuICBSZHNFbmdpbmVTcWxTZXJ2ZXJFRSxcbiAgUmRzRW5naW5lU3FsU2VydmVyRVgsXG4gIFJkc0VuZ2luZVNxbFNlcnZlclNFLFxuICBSZHNFbmdpbmVTcWxTZXJ2ZXJXZWIsXG4gIEF1cm9yYUVuZ2luZVBvc3RncmVzcWwsXG4gIEF1cm9yYUVuZ2luZU15c3FsLFxuICBBdXJvcmFTZXJ2ZXJsZXNzRW5naW5lUG9zdGdyZXNxbCxcbiAgQXVyb3JhU2VydmVybGVzc0VuZ2luZU15c3FsLFxuICBBdXJvcmFTZXJ2ZXJsZXNzVjJFbmdpbmVQb3N0Z3Jlc3FsLFxuICBBdXJvcmFTZXJ2ZXJsZXNzVjJFbmdpbmVNeXNxbCxcbiAgLy8gTGFtYmRhIFBhY2thZ2luZ1xuICBTdGFja3RhcGVMYW1iZGFCdWlsZHBhY2tQYWNrYWdpbmcsXG4gIEN1c3RvbUFydGlmYWN0TGFtYmRhUGFja2FnaW5nLFxuICAvLyBDb250YWluZXIgUGFja2FnaW5nXG4gIFByZWJ1aWx0SW1hZ2VQYWNrYWdpbmcsXG4gIEN1c3RvbURvY2tlcmZpbGVQYWNrYWdpbmcsXG4gIEV4dGVybmFsQnVpbGRwYWNrUGFja2FnaW5nLFxuICBOaXhwYWNrc1BhY2thZ2luZyxcbiAgU3RhY2t0YXBlSW1hZ2VCdWlsZHBhY2tQYWNrYWdpbmcsXG4gIC8vIExhbWJkYSBGdW5jdGlvbiBFdmVudHMvSW50ZWdyYXRpb25zXG4gIEh0dHBBcGlJbnRlZ3JhdGlvbixcbiAgUzNJbnRlZ3JhdGlvbixcbiAgU2NoZWR1bGVJbnRlZ3JhdGlvbixcbiAgU25zSW50ZWdyYXRpb24sXG4gIFNxc0ludGVncmF0aW9uLFxuICBLaW5lc2lzSW50ZWdyYXRpb24sXG4gIER5bmFtb0RiSW50ZWdyYXRpb24sXG4gIENsb3Vkd2F0Y2hMb2dJbnRlZ3JhdGlvbixcbiAgQXBwbGljYXRpb25Mb2FkQmFsYW5jZXJJbnRlZ3JhdGlvbixcbiAgRXZlbnRCdXNJbnRlZ3JhdGlvbixcbiAgS2Fma2FUb3BpY0ludGVncmF0aW9uLFxuICBBbGFybUludGVncmF0aW9uLFxuICBJb3RJbnRlZ3JhdGlvbixcbiAgLy8gQ0ROIFJvdXRlc1xuICBDZG5Mb2FkQmFsYW5jZXJSb3V0ZSxcbiAgQ2RuSHR0cEFwaUdhdGV3YXlSb3V0ZSxcbiAgQ2RuTGFtYmRhRnVuY3Rpb25Sb3V0ZSxcbiAgQ2RuQ3VzdG9tRG9tYWluUm91dGUsXG4gIENkbkJ1Y2tldFJvdXRlLFxuICAvLyBXZWIgQXBwIEZpcmV3YWxsIFJ1bGVzXG4gIE1hbmFnZWRSdWxlR3JvdXAsXG4gIEN1c3RvbVJ1bGVHcm91cCxcbiAgUmF0ZUJhc2VkUnVsZSxcbiAgLy8gU1FTIFF1ZXVlIEludGVncmF0aW9uc1xuICBTcXNRdWV1ZUV2ZW50QnVzSW50ZWdyYXRpb24sXG4gIC8vIE11bHRpIENvbnRhaW5lciBXb3JrbG9hZCBJbnRlZ3JhdGlvbnNcbiAgTXVsdGlDb250YWluZXJXb3JrbG9hZEh0dHBBcGlJbnRlZ3JhdGlvbixcbiAgTXVsdGlDb250YWluZXJXb3JrbG9hZExvYWRCYWxhbmNlckludGVncmF0aW9uLFxuICBNdWx0aUNvbnRhaW5lcldvcmtsb2FkTmV0d29ya0xvYWRCYWxhbmNlckludGVncmF0aW9uLFxuICBNdWx0aUNvbnRhaW5lcldvcmtsb2FkSW50ZXJuYWxJbnRlZ3JhdGlvbixcbiAgTXVsdGlDb250YWluZXJXb3JrbG9hZFNlcnZpY2VDb25uZWN0SW50ZWdyYXRpb24sXG4gIC8vIFNjcmlwdHNcbiAgTG9jYWxTY3JpcHQsXG4gIEJhc3Rpb25TY3JpcHQsXG4gIExvY2FsU2NyaXB0V2l0aEJhc3Rpb25UdW5uZWxpbmcsXG4gIC8vIExvZyBGb3J3YXJkaW5nXG4gIEh0dHBFbmRwb2ludExvZ0ZvcndhcmRpbmcsXG4gIEhpZ2hsaWdodExvZ0ZvcndhcmRpbmcsXG4gIERhdGFkb2dMb2dGb3J3YXJkaW5nLFxuICAvLyBCdWNrZXQgTGlmZWN5Y2xlIFJ1bGVzXG4gIEV4cGlyYXRpb25MaWZlY3ljbGVSdWxlLFxuICBOb25DdXJyZW50VmVyc2lvbkV4cGlyYXRpb25MaWZlY3ljbGVSdWxlLFxuICAvLyBFRlMgTW91bnRzXG4gIENvbnRhaW5lckVmc01vdW50LFxuICBMYW1iZGFFZnNNb3VudCxcbiAgLy8gQXV0aG9yaXplcnNcbiAgQ29nbml0b0F1dGhvcml6ZXIsXG4gIExhbWJkYUF1dGhvcml6ZXIsXG4gIC8vIEFsYXJtIFRyaWdnZXJzXG4gIEFwcGxpY2F0aW9uTG9hZEJhbGFuY2VyQ3VzdG9tVHJpZ2dlcixcbiAgQXBwbGljYXRpb25Mb2FkQmFsYW5jZXJFcnJvclJhdGVUcmlnZ2VyLFxuICBBcHBsaWNhdGlvbkxvYWRCYWxhbmNlclVuaGVhbHRoeVRhcmdldHNUcmlnZ2VyLFxuICBIdHRwQXBpR2F0ZXdheUVycm9yUmF0ZVRyaWdnZXIsXG4gIEh0dHBBcGlHYXRld2F5TGF0ZW5jeVRyaWdnZXIsXG4gIFJlbGF0aW9uYWxEYXRhYmFzZVJlYWRMYXRlbmN5VHJpZ2dlcixcbiAgUmVsYXRpb25hbERhdGFiYXNlV3JpdGVMYXRlbmN5VHJpZ2dlcixcbiAgUmVsYXRpb25hbERhdGFiYXNlQ1BVVXRpbGl6YXRpb25UcmlnZ2VyLFxuICBSZWxhdGlvbmFsRGF0YWJhc2VGcmVlU3RvcmFnZVRyaWdnZXIsXG4gIFJlbGF0aW9uYWxEYXRhYmFzZUZyZWVNZW1vcnlUcmlnZ2VyLFxuICBSZWxhdGlvbmFsRGF0YWJhc2VDb25uZWN0aW9uQ291bnRUcmlnZ2VyLFxuICBTcXNRdWV1ZVJlY2VpdmVkTWVzc2FnZXNDb3VudFRyaWdnZXIsXG4gIFNxc1F1ZXVlTm90RW1wdHlUcmlnZ2VyLFxuICBMYW1iZGFFcnJvclJhdGVUcmlnZ2VyLFxuICBMYW1iZGFEdXJhdGlvblRyaWdnZXIsXG4gIC8vIEN1c3RvbSBSZXNvdXJjZXNcbiAgQ3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uLFxuICBDdXN0b21SZXNvdXJjZUluc3RhbmNlLFxuICAvLyBEZXBsb3ltZW50IFNjcmlwdHNcbiAgRGVwbG95bWVudFNjcmlwdCxcbiAgLy8gRWRnZSBMYW1iZGEgRnVuY3Rpb25zXG4gIEVkZ2VMYW1iZGFGdW5jdGlvblxufSA9IFRZUEVfUFJPUEVSVElFU19DTEFTU0VTO1xuIgogIF0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLElBQU0sdUJBQXVCO0FBQzdCLElBQU0sdUJBQXVCO0FBRTdCLElBQU0sMkJBQTJCO0FBRWpDLElBQU0sdUJBQXVCO0FBRTdCLElBQU0sc0JBQXNCO0FBRTVCLElBQU0sbUNBQW1DO0FBSWxDLFNBQVMsS0FBSyxDQUFDLE9BQU87QUFBQSxFQUN6QixJQUFJLFNBQVMsTUFBTSxLQUFLO0FBQUEsRUFDeEIsU0FBUyxPQUNKLFFBQVEsc0JBQXNCLG1CQUFtQixFQUNqRCxRQUFRLHNCQUFzQixtQkFBbUI7QUFBQSxFQUN0RCxTQUFT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TUFDQTtBQUFBLElBQ0Y7QUFBQSxFQUNGO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsY0FBYztBQUFBLElBQ2QsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLElBQ1osY0FBYztBQUFBLE1BQ1o7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLElBQ0Y7QUFBQSxFQUNGO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsY0FBYztBQUFBLElBQ2QsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLElBQ1osY0FBYztBQUFBLE1BQ1o7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLElBQ0Y7QUFBQSxFQUNGO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsY0FBYztBQUFBLElBQ2QsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLElBQ1osY0FBYztBQUFBLE1BQ1o7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLElBQ0Y7QUFBQSxFQUNGO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsY0FBYztBQUFBLElBQ2QsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLElBQ1osY0FBYztBQUFBLE1BQ1o7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLElBQ0Y7QUFBQSxFQUNGO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsY0FBYztBQUFBLElBQ2QsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLElBQ1osY0FBYztBQUFBLE1BQ1o7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLElBQ0Y7QUFBQSxFQUNGO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsY0FBYztBQUFBLElBQ2QsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLElBQ1osY0FBYztBQUFBLE1BQ1o7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLElBQ0Y7QUFBQSxFQUNGO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsY0FBYztBQUFBLElBQ2QsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLElBQ1osY0FBYyxDQUFDO0FBQUEsRUFDakI7QUFDRjtBQWlCTyxJQUFNLG9DQUFnRTtBQUFBLEVBRTNFO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUVBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFFQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBRUE7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFFQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBRUE7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBRUE7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFFQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBRUE7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBRUE7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBRUE7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QTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFFQTtBQUFBLEVBQ0E7QUFBQSxFQUVBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBRUE7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUVBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBRUE7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBRUE7QUFBQSxFQUVBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBRUE7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBRUE7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBRUE7QUFBQSxFQUNBO0FBQUEsRUFFQTtBQUFBLEVBQ0E7QUFBQSxFQUVBO0FBQUEsRUFDQTtBQUFBLEVBRUE7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBRUE7QUFBQSxFQUNBO0FBQUEsRUFFQTtBQUFBLEVBRUE7QUFBQSxJQUNFOyIsCiAgImRlYnVnSWQiOiAiMzc0RTQwQTIyNzIzREE2RTY0NzU2RTIxNjQ3NTZFMjEiLAogICJuYW1lcyI6IFtdCn0=
4772
+ //# debugId=AA9E45EE7B5DE94064756E2164756E21
4773
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vbm9kZV9tb2R1bGVzL2NoYW5nZS1jYXNlL2Rpc3QvaW5kZXguanMiLCAiLi4vc2hhcmVkL25hbWluZy9sb2dpY2FsLW5hbWVzLnRzIiwgIi4uL3NyYy9hcGkvbnBtL3RzL2NoaWxkLXJlc291cmNlcy50cyIsICIuLi9zcmMvYXBpL25wbS90cy9jb25maWcudHMiLCAiLi4vc3JjL2FwaS9ucG0vdHMvZGlyZWN0aXZlcy50cyIsICIuLi9zcmMvYXBpL25wbS90cy9nbG9iYWwtYXdzLXNlcnZpY2VzLnRzIiwgIi4uL3NyYy9hcGkvbnBtL3RzL2NsYXNzLWNvbmZpZy50cyIsICIuLi9zcmMvYXBpL25wbS90cy9yZXNvdXJjZS1tZXRhZGF0YS50cyIsICIuLi9zcmMvYXBpL25wbS90cy9yZXNvdXJjZXMudHMiLCAiLi4vc3JjL2FwaS9ucG0vdHMvdHlwZS1wcm9wZXJ0aWVzLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWwogICAgIi8vIFJlZ2V4cHMgaW52b2x2ZWQgd2l0aCBzcGxpdHRpbmcgd29yZHMgaW4gdmFyaW91cyBjYXNlIGZvcm1hdHMuXG5jb25zdCBTUExJVF9MT1dFUl9VUFBFUl9SRSA9IC8oW1xccHtMbH1cXGRdKShcXHB7THV9KS9ndTtcbmNvbnN0IFNQTElUX1VQUEVSX1VQUEVSX1JFID0gLyhcXHB7THV9KShbXFxwe0x1fV1bXFxwe0xsfV0pL2d1O1xuLy8gVXNlZCB0byBpdGVyYXRlIG92ZXIgdGhlIGluaXRpYWwgc3BsaXQgcmVzdWx0IGFuZCBzZXBhcmF0ZSBudW1iZXJzLlxuY29uc3QgU1BMSVRfU0VQQVJBVEVfTlVNQkVSX1JFID0gLyhcXGQpXFxwe0xsfXwoXFxwe0x9KVxcZC91O1xuLy8gUmVnZXhwIGludm9sdmVkIHdpdGggc3RyaXBwaW5nIG5vbi13b3JkIGNoYXJhY3RlcnMgZnJvbSB0aGUgcmVzdWx0LlxuY29uc3QgREVGQVVMVF9TVFJJUF9SRUdFWFAgPSAvW15cXHB7TH1cXGRdKy9naXU7XG4vLyBUaGUgcmVwbGFjZW1lbnQgdmFsdWUgZm9yIHNwbGl0cy5cbmNvbnN0IFNQTElUX1JFUExBQ0VfVkFMVUUgPSBcIiQxXFwwJDJcIjtcbi8vIFRoZSBkZWZhdWx0IGNoYXJhY3RlcnMgdG8ga2VlcCBhZnRlciB0cmFuc2Zvcm1pbmcgY2FzZS5cbmNvbnN0IERFRkFVTFRfUFJFRklYX1NVRkZJWF9DSEFSQUNURVJTID0gXCJcIjtcbi8qKlxuICogU3BsaXQgYW55IGNhc2VkIGlucHV0IHN0cmluZ3MgaW50byBhbiBhcnJheSBvZiB3b3Jkcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNwbGl0KHZhbHVlKSB7XG4gICAgbGV0IHJlc3VsdCA9IHZhbHVlLnRyaW0oKTtcbiAgICByZXN1bHQgPSByZXN1bHRcbiAgICAgICAgLnJlcGxhY2UoU1BMSVRfTE9XRVJfVVBQRVJfUkUsIFNQTElUX1JFUExBQ0VfVkFMVUUpXG4gICAgICAgIC5yZXBsYWNlKFNQTElUX1VQUEVSX1VQUEVSX1JFLCBTUExJVF9SRVBMQUNFX1ZBTFVFKTtcbiAgICByZXN1bHQgPSByZXN1bHQucmVwbGFjZShERUZBVUxUX1NUUklQX1JFR0VYUCwgXCJcXDBcIik7XG4gICAgbGV0IHN0YXJ0ID0gMDtcbiAgICBsZXQgZW5kID0gcmVzdWx0Lmxlbmd0aDtcbiAgICAvLyBUcmltIHRoZSBkZWxpbWl0ZXIgZnJvbSBhcm91bmQgdGhlIG91dHB1dCBzdHJpbmcuXG4gICAgd2hpbGUgKHJlc3VsdC5jaGFyQXQoc3RhcnQpID09PSBcIlxcMFwiKVxuICAgICAgICBzdGFydCsrO1xuICAgIGlmIChzdGFydCA9PT0gZW5kKVxuICAgICAgICByZXR1cm4gW107XG4gICAgd2hpbGUgKHJlc3VsdC5jaGFyQXQoZW5kIC0gMSkgPT09IFwiXFwwXCIpXG4gICAgICAgIGVuZC0tO1xuICAgIHJldHVybiByZXN1bHQuc2xpY2Uoc3RhcnQsIGVuZCkuc3BsaXQoL1xcMC9nKTtcbn1cbi8qKlxuICogU3BsaXQgdGhlIGlucHV0IHN0cmluZyBpbnRvIGFuIGFycmF5IG9mIHdvcmRzLCBzZXBhcmF0aW5nIG51bWJlcnMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzcGxpdFNlcGFyYXRlTnVtYmVycyh2YWx1ZSkge1xuICAgIGNvbnN0IHdvcmRzID0gc3BsaXQodmFsdWUpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgd29yZHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3Qgd29yZCA9IHdvcmRzW2ldO1xuICAgICAgICBjb25zdCBtYXRjaCA9IFNQTElUX1NFUEFSQVRFX05VTUJFUl9SRS5leGVjKHdvcmQpO1xuICAgICAgICBpZiAobWF0Y2gpIHtcbiAgICAgICAgICAgIGNvbnN0IG9mZnNldCA9IG1hdGNoLmluZGV4ICsgKG1hdGNoWzFdID8/IG1hdGNoWzJdKS5sZW5ndGg7XG4gICAgICAgICAgICB3b3Jkcy5zcGxpY2UoaSwgMSwgd29yZC5zbGljZSgwLCBvZmZzZXQpLCB3b3JkLnNsaWNlKG9mZnNldCkpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiB3b3Jkcztcbn1cbi8qKlxuICogQ29udmVydCBhIHN0cmluZyB0byBzcGFjZSBzZXBhcmF0ZWQgbG93ZXIgY2FzZSAoYGZvbyBiYXJgKS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5vQ2FzZShpbnB1dCwgb3B0aW9ucykge1xuICAgIGNvbnN0IFtwcmVmaXgsIHdvcmRzLCBzdWZmaXhdID0gc3BsaXRQcmVmaXhTdWZmaXgoaW5wdXQsIG9wdGlvbnMpO1xuICAgIHJldHVybiAocHJlZml4ICtcbiAgICAgICAgd29yZHMubWFwKGxvd2VyRmFjdG9yeShvcHRpb25zPy5sb2NhbGUpKS5qb2luKG9wdGlvbnM/LmRlbGltaXRlciA/PyBcIiBcIikgK1xuICAgICAgICBzdWZmaXgpO1xufVxuLyoqXG4gKiBDb252ZXJ0IGEgc3RyaW5nIHRvIGNhbWVsIGNhc2UgKGBmb29CYXJgKS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNhbWVsQ2FzZShpbnB1dCwgb3B0aW9ucykge1xuICAgIGNvbnN0IFtwcmVmaXgsIHdvcmRzLCBzdWZmaXhdID0gc3BsaXRQcmVmaXhTdWZmaXgoaW5wdXQsIG9wdGlvbnMpO1xuICAgIGNvbnN0IGxvd2VyID0gbG93ZXJGYWN0b3J5KG9wdGlvbnM/LmxvY2FsZSk7XG4gICAgY29uc3QgdXBwZXIgPSB1cHBlckZhY3Rvcnkob3B0aW9ucz8ubG9jYWxlKTtcbiAgICBjb25zdCB0cmFuc2Zvcm0gPSBvcHRpb25zPy5tZXJnZUFtYmlndW91c0NoYXJhY3RlcnNcbiAgICAgICAgPyBjYXBpdGFsQ2FzZVRyYW5zZm9ybUZhY3RvcnkobG93ZXIsIHVwcGVyKVxuICAgICAgICA6IHBhc2NhbENhc2VUcmFuc2Zvcm1GYWN0b3J5KGxvd2VyLCB1cHBlcik7XG4gICAgcmV0dXJuIChwcmVmaXggK1xuICAgICAgICB3b3Jkc1xuICAgICAgICAgICAgLm1hcCgod29yZCwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIGlmIChpbmRleCA9PT0gMClcbiAgICAgICAgICAgICAgICByZXR1cm4gbG93ZXIod29yZCk7XG4gICAgICAgICAgICByZXR1cm4gdHJhbnNmb3JtKHdvcmQsIGluZGV4KTtcbiAgICAgICAgfSlcbiAgICAgICAgICAgIC5qb2luKG9wdGlvbnM/LmRlbGltaXRlciA/PyBcIlwiKSArXG4gICAgICAgIHN1ZmZpeCk7XG59XG4vKipcbiAqIENvbnZlcnQgYSBzdHJpbmcgdG8gcGFzY2FsIGNhc2UgKGBGb29CYXJgKS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhc2NhbENhc2UoaW5wdXQsIG9wdGlvbnMpIHtcbiAgICBjb25zdCBbcHJlZml4LCB3b3Jkcywgc3VmZml4XSA9IHNwbGl0UHJlZml4U3VmZml4KGlucHV0LCBvcHRpb25zKTtcbiAgICBjb25zdCBsb3dlciA9IGxvd2VyRmFjdG9yeShvcHRpb25zPy5sb2NhbGUpO1xuICAgIGNvbnN0IHVwcGVyID0gdXBwZXJGYWN0b3J5KG9wdGlvbnM/LmxvY2FsZSk7XG4gICAgY29uc3QgdHJhbnNmb3JtID0gb3B0aW9ucz8ubWVyZ2VBbWJpZ3VvdXNDaGFyYWN0ZXJzXG4gICAgICAgID8gY2FwaXRhbENhc2VUcmFuc2Zvcm1GYWN0b3J5KGxvd2VyLCB1cHBlcilcbiAgICAgICAgOiBwYXNjYWxDYXNlVHJhbnNmb3JtRmFjdG9yeShsb3dlciwgdXBwZXIpO1xuICAgIHJldHVybiBwcmVmaXggKyB3b3Jkcy5tYXAodHJhbnNmb3JtKS5qb2luKG9wdGlvbnM/LmRlbGltaXRlciA/PyBcIlwiKSArIHN1ZmZpeDtcbn1cbi8qKlxuICogQ29udmVydCBhIHN0cmluZyB0byBwYXNjYWwgc25ha2UgY2FzZSAoYEZvb19CYXJgKS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhc2NhbFNuYWtlQ2FzZShpbnB1dCwgb3B0aW9ucykge1xuICAgIHJldHVybiBjYXBpdGFsQ2FzZShpbnB1dCwgeyBkZWxpbWl0ZXI6IFwiX1wiLCAuLi5vcHRpb25zIH0pO1xufVxuLyoqXG4gKiBDb252ZXJ0IGEgc3RyaW5nIHRvIGNhcGl0YWwgY2FzZSAoYEZvbyBCYXJgKS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNhcGl0YWxDYXNlKGlucHV0LCBvcHRpb25zKSB7XG4gICAgY29uc3QgW3ByZWZpeCwgd29yZHMsIHN1ZmZpeF0gPSBzcGxpdFByZWZpeFN1ZmZpeChpbnB1dCwgb3B0aW9ucyk7XG4gICAgY29uc3QgbG93ZXIgPSBsb3dlckZhY3Rvcnkob3B0aW9ucz8ubG9jYWxlKTtcbiAgICBjb25zdCB1cHBlciA9IHVwcGVyRmFjdG9yeShvcHRpb25zPy5sb2NhbGUpO1xuICAgIHJldHVybiAocHJlZml4ICtcbiAgICAgICAgd29yZHNcbiAgICAgICAgICAgIC5tYXAoY2FwaXRhbENhc2VUcmFuc2Zvcm1GYWN0b3J5KGxvd2VyLCB1cHBlcikpXG4gICAgICAgICAgICAuam9pbihvcHRpb25zPy5kZWxpbWl0ZXIgPz8gXCIgXCIpICtcbiAgICAgICAgc3VmZml4KTtcbn1cbi8qKlxuICogQ29udmVydCBhIHN0cmluZyB0byBjb25zdGFudCBjYXNlIChgRk9PX0JBUmApLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY29uc3RhbnRDYXNlKGlucHV0LCBvcHRpb25zKSB7XG4gICAgY29uc3QgW3ByZWZpeCwgd29yZHMsIHN1ZmZpeF0gPSBzcGxpdFByZWZpeFN1ZmZpeChpbnB1dCwgb3B0aW9ucyk7XG4gICAgcmV0dXJuIChwcmVmaXggK1xuICAgICAgICB3b3Jkcy5tYXAodXBwZXJGYWN0b3J5KG9wdGlvbnM/LmxvY2FsZSkpLmpvaW4ob3B0aW9ucz8uZGVsaW1pdGVyID8/IFwiX1wiKSArXG4gICAgICAgIHN1ZmZpeCk7XG59XG4vKipcbiAqIENvbnZlcnQgYSBzdHJpbmcgdG8gZG90IGNhc2UgKGBmb28uYmFyYCkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkb3RDYXNlKGlucHV0LCBvcHRpb25zKSB7XG4gICAgcmV0dXJuIG5vQ2FzZShpbnB1dCwgeyBkZWxpbWl0ZXI6IFwiLlwiLCAuLi5vcHRpb25zIH0pO1xufVxuLyoqXG4gKiBDb252ZXJ0IGEgc3RyaW5nIHRvIGtlYmFiIGNhc2UgKGBmb28tYmFyYCkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBrZWJhYkNhc2UoaW5wdXQsIG9wdGlvbnMpIHtcbiAgICByZXR1cm4gbm9DYXNlKGlucHV0LCB7IGRlbGltaXRlcjogXCItXCIsIC4uLm9wdGlvbnMgfSk7XG59XG4vKipcbiAqIENvbnZlcnQgYSBzdHJpbmcgdG8gcGF0aCBjYXNlIChgZm9vL2JhcmApLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcGF0aENhc2UoaW5wdXQsIG9wdGlvbnMpIHtcbiAgICByZXR1cm4gbm9DYXNlKGlucHV0LCB7IGRlbGltaXRlcjogXCIvXCIsIC4uLm9wdGlvbnMgfSk7XG59XG4vKipcbiAqIENvbnZlcnQgYSBzdHJpbmcgdG8gcGF0aCBjYXNlIChgRm9vIGJhcmApLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc2VudGVuY2VDYXNlKGlucHV0LCBvcHRpb25zKSB7XG4gICAgY29uc3QgW3ByZWZpeCwgd29yZHMsIHN1ZmZpeF0gPSBzcGxpdFByZWZpeFN1ZmZpeChpbnB1dCwgb3B0aW9ucyk7XG4gICAgY29uc3QgbG93ZXIgPSBsb3dlckZhY3Rvcnkob3B0aW9ucz8ubG9jYWxlKTtcbiAgICBjb25zdCB1cHBlciA9IHVwcGVyRmFjdG9yeShvcHRpb25zPy5sb2NhbGUpO1xuICAgIGNvbnN0IHRyYW5zZm9ybSA9IGNhcGl0YWxDYXNlVHJhbnNmb3JtRmFjdG9yeShsb3dlciwgdXBwZXIpO1xuICAgIHJldHVybiAocHJlZml4ICtcbiAgICAgICAgd29yZHNcbiAgICAgICAgICAgIC5tYXAoKHdvcmQsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICBpZiAoaW5kZXggPT09IDApXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRyYW5zZm9ybSh3b3JkKTtcbiAgICAgICAgICAgIHJldHVybiBsb3dlcih3b3JkKTtcbiAgICAgICAgfSlcbiAgICAgICAgICAgIC5qb2luKG9wdGlvbnM/LmRlbGltaXRlciA/PyBcIiBcIikgK1xuICAgICAgICBzdWZmaXgpO1xufVxuLyoqXG4gKiBDb252ZXJ0IGEgc3RyaW5nIHRvIHNuYWtlIGNhc2UgKGBmb29fYmFyYCkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzbmFrZUNhc2UoaW5wdXQsIG9wdGlvbnMpIHtcbiAgICByZXR1cm4gbm9DYXNlKGlucHV0LCB7IGRlbGltaXRlcjogXCJfXCIsIC4uLm9wdGlvbnMgfSk7XG59XG4vKipcbiAqIENvbnZlcnQgYSBzdHJpbmcgdG8gaGVhZGVyIGNhc2UgKGBGb28tQmFyYCkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0cmFpbkNhc2UoaW5wdXQsIG9wdGlvbnMpIHtcbiAgICByZXR1cm4gY2FwaXRhbENhc2UoaW5wdXQsIHsgZGVsaW1pdGVyOiBcIi1cIiwgLi4ub3B0aW9ucyB9KTtcbn1cbmZ1bmN0aW9uIGxvd2VyRmFjdG9yeShsb2NhbGUpIHtcbiAgICByZXR1cm4gbG9jYWxlID09PSBmYWxzZVxuICAgICAgICA/IChpbnB1dCkgPT4gaW5wdXQudG9Mb3dlckNhc2UoKVxuICAgICAgICA6IChpbnB1dCkgPT4gaW5wdXQudG9Mb2NhbGVMb3dlckNhc2UobG9jYWxlKTtcbn1cbmZ1bmN0aW9uIHVwcGVyRmFjdG9yeShsb2NhbGUpIHtcbiAgICByZXR1cm4gbG9jYWxlID09PSBmYWxzZVxuICAgICAgICA/IChpbnB1dCkgPT4gaW5wdXQudG9VcHBlckNhc2UoKVxuICAgICAgICA6IChpbnB1dCkgPT4gaW5wdXQudG9Mb2NhbGVVcHBlckNhc2UobG9jYWxlKTtcbn1cbmZ1bmN0aW9uIGNhcGl0YWxDYXNlVHJhbnNmb3JtRmFjdG9yeShsb3dlciwgdXBwZXIpIHtcbiAgICByZXR1cm4gKHdvcmQpID0+IGAke3VwcGVyKHdvcmRbMF0pfSR7bG93ZXIod29yZC5zbGljZSgxKSl9YDtcbn1cbmZ1bmN0aW9uIHBhc2NhbENhc2VUcmFuc2Zvcm1GYWN0b3J5KGxvd2VyLCB1cHBlcikge1xuICAgIHJldHVybiAod29yZCwgaW5kZXgpID0+IHtcbiAgICAgICAgY29uc3QgY2hhcjAgPSB3b3JkWzBdO1xuICAgICAgICBjb25zdCBpbml0aWFsID0gaW5kZXggPiAwICYmIGNoYXIwID49IFwiMFwiICYmIGNoYXIwIDw9IFwiOVwiID8gXCJfXCIgKyBjaGFyMCA6IHVwcGVyKGNoYXIwKTtcbiAgICAgICAgcmV0dXJuIGluaXRpYWwgKyBsb3dlcih3b3JkLnNsaWNlKDEpKTtcbiAgICB9O1xufVxuZnVuY3Rpb24gc3BsaXRQcmVmaXhTdWZmaXgoaW5wdXQsIG9wdGlvbnMgPSB7fSkge1xuICAgIGNvbnN0IHNwbGl0Rm4gPSBvcHRpb25zLnNwbGl0ID8/IChvcHRpb25zLnNlcGFyYXRlTnVtYmVycyA/IHNwbGl0U2VwYXJhdGVOdW1iZXJzIDogc3BsaXQpO1xuICAgIGNvbnN0IHByZWZpeENoYXJhY3RlcnMgPSBvcHRpb25zLnByZWZpeENoYXJhY3RlcnMgPz8gREVGQVVMVF9QUkVGSVhfU1VGRklYX0NIQVJBQ1RFUlM7XG4gICAgY29uc3Qgc3VmZml4Q2hhcmFjdGVycyA9IG9wdGlvbnMuc3VmZml4Q2hhcmFjdGVycyA/PyBERUZBVUxUX1BSRUZJWF9TVUZGSVhfQ0hBUkFDVEVSUztcbiAgICBsZXQgcHJlZml4SW5kZXggPSAwO1xuICAgIGxldCBzdWZmaXhJbmRleCA9IGlucHV0Lmxlbmd0aDtcbiAgICB3aGlsZSAocHJlZml4SW5kZXggPCBpbnB1dC5sZW5ndGgpIHtcbiAgICAgICAgY29uc3QgY2hhciA9IGlucHV0LmNoYXJBdChwcmVmaXhJbmRleCk7XG4gICAgICAgIGlmICghcHJlZml4Q2hhcmFjdGVycy5pbmNsdWRlcyhjaGFyKSlcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBwcmVmaXhJbmRleCsrO1xuICAgIH1cbiAgICB3aGlsZSAoc3VmZml4SW5kZXggPiBwcmVmaXhJbmRleCkge1xuICAgICAgICBjb25zdCBpbmRleCA9IHN1ZmZpeEluZGV4IC0gMTtcbiAgICAgICAgY29uc3QgY2hhciA9IGlucHV0LmNoYXJBdChpbmRleCk7XG4gICAgICAgIGlmICghc3VmZml4Q2hhcmFjdGVycy5pbmNsdWRlcyhjaGFyKSlcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBzdWZmaXhJbmRleCA9IGluZGV4O1xuICAgIH1cbiAgICByZXR1cm4gW1xuICAgICAgICBpbnB1dC5zbGljZSgwLCBwcmVmaXhJbmRleCksXG4gICAgICAgIHNwbGl0Rm4oaW5wdXQuc2xpY2UocHJlZml4SW5kZXgsIHN1ZmZpeEluZGV4KSksXG4gICAgICAgIGlucHV0LnNsaWNlKHN1ZmZpeEluZGV4KSxcbiAgICBdO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXguanMubWFwIiwKICAgICJpbXBvcnQgdHlwZSB7IENsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlIH0gZnJvbSAnQGNsb3VkZm9ybS9yZXNvdXJjZS10eXBlcyc7XG5pbXBvcnQgeyBwYXNjYWxDYXNlIH0gZnJvbSAnY2hhbmdlLWNhc2UnO1xuXG5leHBvcnQgY29uc3QgY2ZMb2dpY2FsTmFtZXMgPSB7XG4gIGJ1Y2tldChzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBwYXNjYWxDYXNlKGAke3N0cFJlc291cmNlTmFtZX0tYnVja2V0YCk7XG4gIH0sXG4gIGF0bGFzTW9uZ29Qcm9qZWN0KCkge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdBdGxhc01vbmdvJyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnTW9uZ29EQjo6U3RwQXRsYXNWMTo6UHJvamVjdCcgfVxuICAgIH0pO1xuICB9LFxuICBhdGxhc01vbmdvQ3JlZGVudGlhbHNQcm92aWRlcigpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnQXRsYXNNb25nb0NyZWRlbnRpYWxzUHJvdmlkZXInIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZScgfVxuICAgIH0pO1xuICB9LFxuICBhdGxhc01vbmdvUHJvamVjdFZwY05ldHdvcmtDb250YWluZXIoKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ0F0bGFzTW9uZ28nIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdNb25nb0RCOjpTdHBBdGxhc1YxOjpOZXR3b3JrQ29udGFpbmVyJyB9XG4gICAgfSk7XG4gIH0sXG4gIGF0bGFzTW9uZ29Qcm9qZWN0VnBjTmV0d29ya1BlZXJpbmcoKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ0F0bGFzTW9uZ28nIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdNb25nb0RCOjpTdHBBdGxhc1YxOjpOZXR3b3JrUGVlcmluZycgfVxuICAgIH0pO1xuICB9LFxuICBhdGxhc01vbmdvUHJvamVjdElwQWNjZXNzTGlzdCgpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnQXRsYXNNb25nbycgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ01vbmdvREI6OlN0cEF0bGFzVjE6OlByb2plY3RJcEFjY2Vzc0xpc3QnIH1cbiAgICB9KTtcbiAgfSxcbiAgYXRsYXNNb25nb1VzZXJBc3NvY2lhdGVkV2l0aFJvbGUoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnQXRsYXNNb25nbycgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ01vbmdvREI6OlN0cEF0bGFzVjE6OkRhdGFiYXNlVXNlcicgfVxuICAgIH0pO1xuICB9LFxuICBhdGxhc01vbmdvQ2x1c3Rlck1hc3RlclVzZXIoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ01vbmdvREI6OlN0cEF0bGFzVjE6OkRhdGFiYXNlVXNlcicgfVxuICAgIH0pO1xuICB9LFxuICBhdGxhc01vbmdvQ2x1c3RlcihzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnTW9uZ29EQjo6U3RwQXRsYXNWMTo6Q2x1c3RlcicgfVxuICAgIH0pO1xuICB9LFxuICByZWRpc1JlcGxpY2F0aW9uR3JvdXAoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6RWxhc3RpQ2FjaGU6OlJlcGxpY2F0aW9uR3JvdXAnIH1cbiAgICB9KTtcbiAgfSxcbiAgcmVkaXNMb2dHcm91cChzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpMb2dzOjpMb2dHcm91cCcgfVxuICAgIH0pO1xuICB9LFxuICByZWRpc1BhcmFtZXRlckdyb3VwKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkVsYXN0aUNhY2hlOjpQYXJhbWV0ZXJHcm91cCcgfVxuICAgIH0pO1xuICB9LFxuICByZWRpc1N1Ym5ldEdyb3VwKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkVsYXN0aUNhY2hlOjpTdWJuZXRHcm91cCcgfVxuICAgIH0pO1xuICB9LFxuICByZWRpc1NlY3VyaXR5R3JvdXAoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpTZWN1cml0eUdyb3VwJyB9XG4gICAgfSk7XG4gIH0sXG4gIGVmc0ZpbGVzeXN0ZW0oc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDoge1xuICAgICAgICBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6RUZTOjpGaWxlU3lzdGVtJ1xuICAgICAgfVxuICAgIH0pO1xuICB9LFxuICBlZnNBY2Nlc3NQb2ludCh7XG4gICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgIGVmc0ZpbGVzeXN0ZW1OYW1lLFxuICAgIHJvb3REaXJlY3RvcnlcbiAgfToge1xuICAgIHN0cFJlc291cmNlTmFtZTogc3RyaW5nO1xuICAgIGVmc0ZpbGVzeXN0ZW1OYW1lOiBzdHJpbmc7XG4gICAgcm9vdERpcmVjdG9yeT86IHN0cmluZztcbiAgfSkge1xuICAgIC8vIENyZWF0ZSBhIHVuaXF1ZSBpZGVudGlmaWVyIGJhc2VkIG9uIHRoZSByb290IGRpcmVjdG9yeVxuICAgIGNvbnN0IHJvb3REaXJJZGVudGlmaWVyID0gcm9vdERpcmVjdG9yeSA/IGAke3Jvb3REaXJlY3RvcnkucmVwbGFjZSgvXFwvL2csICctJykucmVwbGFjZSgvXi18LSQvZywgJycpfWAgOiAnUm9vdCc7XG5cbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjoge1xuICAgICAgICB0eXBlOiBgJHtlZnNGaWxlc3lzdGVtTmFtZX0tJHtyb290RGlySWRlbnRpZmllcn1gXG4gICAgICB9LFxuICAgICAgc3VmZml4OiB7XG4gICAgICAgIGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFRlM6OkFjY2Vzc1BvaW50J1xuICAgICAgfVxuICAgIH0pO1xuICB9LFxuICBlZnNNb3VudFRhcmdldChzdHBSZXNvdXJjZU5hbWU6IHN0cmluZywgbW91bnRUYXJnZXRJbmRleDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ1N1Ym5ldCcsIHR5cGVJbmRleDogbW91bnRUYXJnZXRJbmRleCB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFRlM6Ok1vdW50VGFyZ2V0JyB9XG4gICAgfSk7XG4gIH0sXG4gIGVmc1NlY3VyaXR5R3JvdXAoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpTZWN1cml0eUdyb3VwJyB9XG4gICAgfSk7XG4gIH0sXG4gIHNuc1JvbGVTZW5kU21zRnJvbUNvZ25pdG8oc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnU2VuZFNtcycgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpSb2xlJyB9XG4gICAgfSk7XG4gIH0sXG4gIGNsb3VkZnJvbnREaXN0cmlidXRpb24oc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcsIGRpc3RyaWJ1dGlvbkluZGV4OiBudW1iZXIpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnQ0ROJyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpEaXN0cmlidXRpb24nLCBpbmRleDogZGlzdHJpYnV0aW9uSW5kZXggfVxuICAgIH0pO1xuICB9LFxuICBjbG91ZGZyb250Q3VzdG9tQ2FjaGVQb2xpY3koc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcsIGNhY2hpbmdPcHRpb25zSGFzaDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogYENETkNhY2hlQmVoYXZpb3Ike2NhY2hpbmdPcHRpb25zSGFzaH1gIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6OkNhY2hlUG9saWN5JyB9XG4gICAgfSk7XG4gIH0sXG4gIGNsb3VkZnJvbnREZWZhdWx0Q2FjaGVQb2xpY3kodHlwZTogJ0RlZkR5bmFtaWMnIHwgJ0RlZlN0YXRpYycpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiBgQ0ROJHt0eXBlfWAgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6Q2FjaGVQb2xpY3knIH1cbiAgICB9KTtcbiAgfSxcbiAgY2xvdWRmcm9udEN1c3RvbU9yaWdpblJlcXVlc3RQb2xpY3koc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcsIGZvcndhcmRpbmdPcHRpb25zSGFzaDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogYENETkNhY2hlQmVoYXZpb3Ike2ZvcndhcmRpbmdPcHRpb25zSGFzaH1gIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6Ok9yaWdpblJlcXVlc3RQb2xpY3knIH1cbiAgICB9KTtcbiAgfSxcbiAgY2xvdWRmcm9udERlZmF1bHRPcmlnaW5SZXF1ZXN0UG9saWN5KHR5cGU6ICdEZWZEeW5hbWljJyB8ICdEZWZTdGF0aWMnKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogYENETiR7dHlwZX1gIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6Ok9yaWdpblJlcXVlc3RQb2xpY3knIH1cbiAgICB9KTtcbiAgfSxcbiAgY2xvdWRmcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5KHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ0NETicgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6Q2xvdWRGcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5JyB9XG4gICAgfSk7XG4gIH0sXG4gIG9wZW5OZXh0SG9zdEhlYWRlclJld3JpdGVGdW5jdGlvbihzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdPcGVuTmV4dEhvc3RIZWFkZXJSZXdyaXRlJyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpGdW5jdGlvbicgfVxuICAgIH0pO1xuICB9LFxuICBzc3JXZWJIb3N0SGVhZGVyUmV3cml0ZUZ1bmN0aW9uKHN0cFJlc291cmNlTmFtZTogc3RyaW5nLCByZXNvdXJjZVR5cGU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6IGAke3Jlc291cmNlVHlwZS5yZXBsYWNlKC8tL2csICcnKX1Ib3N0SGVhZGVyUmV3cml0ZWAgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6RnVuY3Rpb24nIH1cbiAgICB9KTtcbiAgfSxcbiAgb3Blbk5leHRBc3NldFJlcGxhY2VyQ3VzdG9tUmVzb3VyY2Uoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnQXNzZXRSZXBsYWNlcicgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGb3JtYXRpb246OkN1c3RvbVJlc291cmNlJyB9XG4gICAgfSk7XG4gIH0sXG4gIG9wZW5OZXh0RHluYW1vSW5zZXJ0Q3VzdG9tUmVzb3VyY2Uoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnRHluYW1vSW5zZXJ0JyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6Q3VzdG9tUmVzb3VyY2UnIH1cbiAgICB9KTtcbiAgfSxcbiAgZG5zUmVjb3JkKGZ1bGx5UXVhbGlmaWVkRG9tYWluTmFtZTogc3RyaW5nKSB7XG4gICAgLy8gd2UgZG8gbm90IGJ1aWxkIGJ1aWxkIHRoZSByZXNvdXJjZSBuYW1lIGNvbnZlbnRpb25hbGx5IHRocm91Z2ggc3RwUmVzb3VyY2VOYW1lXG4gICAgLy8gdGhpcyBpcyBkdWUgdG8gdXBkYXRlIGJlaGF2aW9ycyBvZiBDbG91ZGZvcm1hdGlvblxuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lOiAnJyxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiBnZXRTcGVjaWZpZXJGb3JEb21haW5SZXNvdXJjZShmdWxseVF1YWxpZmllZERvbWFpbk5hbWUpIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OlJvdXRlNTM6OlJlY29yZFNldCcgfVxuICAgIH0pO1xuICB9LFxuICBkeW5hbW9HbG9iYWxUYWJsZShzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpEeW5hbW9EQjo6R2xvYmFsVGFibGUnIH1cbiAgICB9KTtcbiAgfSxcbiAgZHluYW1vUmVnaW9uYWxUYWJsZShzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpEeW5hbW9EQjo6VGFibGUnIH1cbiAgICB9KTtcbiAgfSxcbiAgYnVja2V0UG9saWN5KHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OlMzOjpCdWNrZXRQb2xpY3knIH1cbiAgICB9KTtcbiAgfSxcbiAgbGFtYmRhTG9nR3JvdXAoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6TG9nczo6TG9nR3JvdXAnIH1cbiAgICB9KTtcbiAgfSxcbiAgZXZlbnRPbkRlbGl2ZXJ5RmFpbHVyZVNxc1F1ZXVlUG9saWN5KHN0cFJlc291cmNlTmFtZTogc3RyaW5nLCBldmVudEluZGV4OiBudW1iZXIpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjoge1xuICAgICAgICB0eXBlOiAnRXZlbnQnLFxuICAgICAgICB0eXBlSW5kZXg6IGV2ZW50SW5kZXhcbiAgICAgIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OlNRUzo6UXVldWVQb2xpY3knIH1cbiAgICB9KTtcbiAgfSxcbiAgc25zRXZlbnRTdWJzY3JpcHRpb24oc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcsIGV2ZW50SW5kZXg6IG51bWJlcikge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7XG4gICAgICAgIHR5cGU6ICdFdmVudCcsXG4gICAgICAgIHR5cGVJbmRleDogZXZlbnRJbmRleFxuICAgICAgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6U05TOjpTdWJzY3JpcHRpb24nIH1cbiAgICB9KTtcbiAgfSxcbiAgc25zRXZlbnRQZXJtaXNzaW9uKHN0cFJlc291cmNlTmFtZTogc3RyaW5nLCBldmVudEluZGV4OiBudW1iZXIpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjoge1xuICAgICAgICB0eXBlOiAnRXZlbnQnLFxuICAgICAgICB0eXBlSW5kZXg6IGV2ZW50SW5kZXhcbiAgICAgIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkxhbWJkYTo6UGVybWlzc2lvbicgfVxuICAgIH0pO1xuICB9LFxuICBlY3JSZXBvKCkge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3BlY2lmaWVyOiB7XG4gICAgICAgIHR5cGU6ICdDb250YWluZXInXG4gICAgICB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFQ1I6OlJlcG9zaXRvcnknIH1cbiAgICB9KTtcbiAgfSxcbiAgZGVwbG95bWVudEJ1Y2tldCgpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjoge1xuICAgICAgICB0eXBlOiAnRGVwbG95bWVudCdcbiAgICAgIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OlMzOjpCdWNrZXQnIH1cbiAgICB9KTtcbiAgfSxcbiAgZGVwbG95bWVudEJ1Y2tldFBvbGljeSgpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjoge1xuICAgICAgICB0eXBlOiAnRGVwbG95bWVudCdcbiAgICAgIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OlMzOjpCdWNrZXRQb2xpY3knIH1cbiAgICB9KTtcbiAgfSxcbiAgbGFtYmRhSW52b2tlQ29uZmlnKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkxhbWJkYTo6RXZlbnRJbnZva2VDb25maWcnIH1cbiAgICB9KTtcbiAgfSxcbiAgbGFtYmRhVmVyc2lvblB1Ymxpc2hlckN1c3RvbVJlc291cmNlKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ1ZlcnNpb24nIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZScgfVxuICAgIH0pO1xuICB9LFxuICBjb2RlRGVwbG95U2VydmljZVJvbGUoKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHtcbiAgICAgICAgdHlwZTogJ0NvZGVEZXBsb3knXG4gICAgICB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnIH1cbiAgICB9KTtcbiAgfSxcbiAgYmF0Y2hJbnN0YW5jZVJvbGUoKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHtcbiAgICAgICAgdHlwZTogJ0JhdGNoSW5zdGFuY2UnXG4gICAgICB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnIH1cbiAgICB9KTtcbiAgfSxcbiAgYmF0Y2hJbnN0YW5jZURlZmF1bHRTZWN1cml0eUdyb3VwKCkge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3BlY2lmaWVyOiB7XG4gICAgICAgIHR5cGU6ICdCYXRjaEluc3RhbmNlJ1xuICAgICAgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpTZWN1cml0eUdyb3VwJyB9XG4gICAgfSk7XG4gIH0sXG4gIGJhdGNoSW5zdGFuY2VQcm9maWxlKCkge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3BlY2lmaWVyOiB7XG4gICAgICAgIHR5cGU6ICdCYXRjaEluc3RhbmNlJ1xuICAgICAgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpJbnN0YW5jZVByb2ZpbGUnIH1cbiAgICB9KTtcbiAgfSxcbiAgYmF0Y2hJbnN0YW5jZUxhdW5jaFRlbXBsYXRlKCkge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3BlY2lmaWVyOiB7XG4gICAgICAgIHR5cGU6ICdCYXRjaEluc3RhbmNlJ1xuICAgICAgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpMYXVuY2hUZW1wbGF0ZScgfVxuICAgIH0pO1xuICB9LFxuICBiYXRjaFN0YXRlTWFjaGluZUV4ZWN1dGlvblJvbGUoKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHtcbiAgICAgICAgdHlwZTogJ0JhdGNoU3RhdGVNYWNoaW5lJ1xuICAgICAgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpSb2xlJyB9XG4gICAgfSk7XG4gIH0sXG4gIGJhdGNoU3BvdEZsZWV0Um9sZSgpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjoge1xuICAgICAgICB0eXBlOiAnQmF0Y2hTcG90RmxlZXQnXG4gICAgICB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnIH1cbiAgICB9KTtcbiAgfSxcbiAgYmF0Y2hTZXJ2aWNlUm9sZSgpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjoge1xuICAgICAgICB0eXBlOiAnQmF0Y2hTZXJ2aWNlJ1xuICAgICAgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpSb2xlJyB9XG4gICAgfSk7XG4gIH0sXG4gIGJhdGNoSm9iRXhlY3V0aW9uUm9sZShzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnIH1cbiAgICB9KTtcbiAgfSxcbiAgYmF0Y2hDb21wdXRlRW52aXJvbm1lbnQoc3BvdDogYm9vbGVhbiwgZ3B1OiBib29sZWFuKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHtcbiAgICAgICAgdHlwZTogYEJhdGNoLSR7c3BvdCA/ICdzcG90JyA6ICdvbkRlbWFuZCd9LSR7Z3B1ID8gJ2dwdScgOiAnJ31gXG4gICAgICB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpCYXRjaDo6Q29tcHV0ZUVudmlyb25tZW50JyB9XG4gICAgfSk7XG4gIH0sXG4gIGJhdGNoSm9iUXVldWUoc3BvdDogYm9vbGVhbiwgZ3B1OiBib29sZWFuKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHtcbiAgICAgICAgdHlwZTogYEJhdGNoLSR7c3BvdCA/ICdzcG90JyA6ICdvbkRlbWFuZCd9LSR7Z3B1ID8gJ2dwdScgOiAnJ31gXG4gICAgICB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpCYXRjaDo6Sm9iUXVldWUnIH1cbiAgICB9KTtcbiAgfSxcbiAgc3VibmV0KHB1YmxpY1N1Ym5ldDogYm9vbGVhbiwgc3VibmV0SW5kZXg6IG51bWJlcikge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3BlY2lmaWVyOiB7XG4gICAgICAgIHR5cGU6IHB1YmxpY1N1Ym5ldCA/ICdQdWJsaWMnIDogJ1ByaXZhdGUnXG4gICAgICB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFQzI6OlN1Ym5ldCcsIGluZGV4OiBzdWJuZXRJbmRleCB9XG4gICAgfSk7XG4gIH0sXG4gIHZwYygpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpWUEMnIH1cbiAgICB9KTtcbiAgfSxcbiAgdnBjR2F0ZXdheUVuZHBvaW50KHR5cGU6ICdzMycgfCAnZHluYW1vLWRiJykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6IGAke3R5cGV9LUdhdGV3YXlgIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkVDMjo6VlBDRW5kcG9pbnQnIH1cbiAgICB9KTtcbiAgfSxcbiAgZGJTdWJuZXRHcm91cChzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpSRFM6OkRCU3VibmV0R3JvdXAnIH1cbiAgICB9KTtcbiAgfSxcbiAgYXVyb3JhRGJDbHVzdGVyKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OlJEUzo6REJDbHVzdGVyJyB9XG4gICAgfSk7XG4gIH0sXG4gIGF1cm9yYURiQ2x1c3RlclBhcmFtZXRlckdyb3VwKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OlJEUzo6REJDbHVzdGVyUGFyYW1ldGVyR3JvdXAnIH1cbiAgICB9KTtcbiAgfSxcbiAgYXVyb3JhRGJDbHVzdGVyTG9nR3JvdXAoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcsIGxvZ0dyb3VwVHlwZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ0NsdXN0ZXInLCBzdWJ0eXBlOiBsb2dHcm91cFR5cGUgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6TG9nczo6TG9nR3JvdXAnIH1cbiAgICB9KTtcbiAgfSxcbiAgZGJTZWN1cml0eUdyb3VwKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkVDMjo6U2VjdXJpdHlHcm91cCcgfVxuICAgIH0pO1xuICB9LFxuICBkYkluc3RhbmNlKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OlJEUzo6REJJbnN0YW5jZScgfVxuICAgIH0pO1xuICB9LFxuICBkYkluc3RhbmNlTG9nR3JvdXAoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcsIGxvZ0dyb3VwVHlwZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ0luc3RhbmNlJywgc3VidHlwZTogbG9nR3JvdXBUeXBlIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkxvZ3M6OkxvZ0dyb3VwJyB9XG4gICAgfSk7XG4gIH0sXG4gIG9wZW5TZWFyY2hEb21haW5Mb2dHcm91cChzdHBSZXNvdXJjZU5hbWU6IHN0cmluZywgbG9nR3JvdXBUeXBlOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnSW5zdGFuY2UnLCBzdWJ0eXBlOiBsb2dHcm91cFR5cGUgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6TG9nczo6TG9nR3JvdXAnIH1cbiAgICB9KTtcbiAgfSxcbiAgZGJPcHRpb25Hcm91cChzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpSRFM6Ok9wdGlvbkdyb3VwJyB9XG4gICAgfSk7XG4gIH0sXG4gIGRiSW5zdGFuY2VQYXJhbWV0ZXJHcm91cChzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpSRFM6OkRCUGFyYW1ldGVyR3JvdXAnIH1cbiAgICB9KTtcbiAgfSxcbiAgZGJSZXBsaWNhKHN0cFJlc291cmNlTmFtZTogc3RyaW5nLCByZXBsaWNhTnVtOiBudW1iZXIpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnUmVwbGljYScsIHR5cGVJbmRleDogcmVwbGljYU51bSB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpSRFM6OkRCSW5zdGFuY2UnIH1cbiAgICB9KTtcbiAgfSxcbiAgZGJSZXBsaWNhTG9nR3JvdXAoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcsIGxvZ0dyb3VwVHlwZTogc3RyaW5nLCByZXBsaWNhTnVtOiBudW1iZXIpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnUmVwbGljYScsIHR5cGVJbmRleDogcmVwbGljYU51bSwgc3VidHlwZTogbG9nR3JvdXBUeXBlIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkxvZ3M6OkxvZ0dyb3VwJyB9XG4gICAgfSk7XG4gIH0sXG4gIGRiUmVwbGljYVBhcmFtZXRlckdyb3VwKHN0cFJlc291cmNlTmFtZTogc3RyaW5nLCByZXBsaWNhTnVtOiBudW1iZXIpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnUmVwbGljYScsIHR5cGVJbmRleDogcmVwbGljYU51bSB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpSRFM6OkRCUGFyYW1ldGVyR3JvdXAnIH1cbiAgICB9KTtcbiAgfSxcbiAgYXVyb3JhRGJJbnN0YW5jZShzdHBSZXNvdXJjZU5hbWU6IHN0cmluZywgaW5zdGFuY2VOdW06IG51bWJlcikge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpSRFM6OkRCSW5zdGFuY2UnLCBpbmRleDogaW5zdGFuY2VOdW0gfVxuICAgIH0pO1xuICB9LFxuICBhdXJvcmFEYkluc3RhbmNlUGFyYW1ldGVyR3JvdXAoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnSW5zdGFuY2UnIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OlJEUzo6REJQYXJhbWV0ZXJHcm91cCcgfVxuICAgIH0pO1xuICB9LFxuICBldmVudEJ1c1J1bGUoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcsIGV2ZW50SW5kZXg6IG51bWJlcikge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7XG4gICAgICAgIHR5cGU6ICdFdmVudCcsXG4gICAgICAgIHR5cGVJbmRleDogZXZlbnRJbmRleFxuICAgICAgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6RXZlbnRzOjpSdWxlJyB9XG4gICAgfSk7XG4gIH0sXG4gIGN1c3RvbVRhZ2dpbmdTY2hlZHVsZVJ1bGUoKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ1N0cEN1c3RvbVRhZ2dpbmdTY2hlZHVsZScgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6RXZlbnRzOjpSdWxlJyB9XG4gICAgfSk7XG4gIH0sXG4gIGN1c3RvbVRhZ2dpbmdTY2hlZHVsZVJ1bGVQZXJtaXNzaW9uKCkge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdTdHBDdXN0b21UYWdnaW5nU2NoZWR1bGVSdWxlJyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpMYW1iZGE6OlBlcm1pc3Npb24nIH1cbiAgICB9KTtcbiAgfSxcbiAgY2xvdWRXYXRjaExvZ0V2ZW50U3Vic2NyaXB0aW9uRmlsdGVyKHN0cFJlc291cmNlTmFtZTogc3RyaW5nLCBldmVudEluZGV4OiBudW1iZXIpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjoge1xuICAgICAgICB0eXBlOiAnRXZlbnQnLFxuICAgICAgICB0eXBlSW5kZXg6IGV2ZW50SW5kZXhcbiAgICAgIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkxvZ3M6OlN1YnNjcmlwdGlvbkZpbHRlcicgfVxuICAgIH0pO1xuICB9LFxuICBldmVudFNvdXJjZU1hcHBpbmcoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcsIGV2ZW50SW5kZXg6IG51bWJlcikge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7XG4gICAgICAgIHR5cGU6ICdFdmVudCcsXG4gICAgICAgIHR5cGVJbmRleDogZXZlbnRJbmRleFxuICAgICAgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6TGFtYmRhOjpFdmVudFNvdXJjZU1hcHBpbmcnIH1cbiAgICB9KTtcbiAgfSxcbiAgaW90RXZlbnRUb3BpY1J1bGUoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcsIGV2ZW50SW5kZXg6IG51bWJlcikge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7XG4gICAgICAgIHR5cGU6ICdFdmVudCcsXG4gICAgICAgIHR5cGVJbmRleDogZXZlbnRJbmRleFxuICAgICAgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6SW9UOjpUb3BpY1J1bGUnIH1cbiAgICB9KTtcbiAgfSxcbiAga2luZXNpc0V2ZW50Q29uc3VtZXIoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcsIGV2ZW50SW5kZXg6IG51bWJlcikge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7XG4gICAgICAgIHR5cGU6ICdFdmVudCcsXG4gICAgICAgIHR5cGVJbmRleDogZXZlbnRJbmRleFxuICAgICAgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6S2luZXNpczo6U3RyZWFtQ29uc3VtZXInIH1cbiAgICB9KTtcbiAgfSxcbiAgbGFtYmRhKHN0cFJlc291cmNlTmFtZTogc3RyaW5nLCBpc1N0cFNlcnZpY2VGdW5jdGlvbj86IGJvb2xlYW4pIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogaXNTdHBTZXJ2aWNlRnVuY3Rpb24gPyB7IHR5cGU6ICdDdXN0b21SZXNvdXJjZScgfSA6IHVuZGVmaW5lZCxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6TGFtYmRhOjpGdW5jdGlvbicgfVxuICAgIH0pO1xuICB9LFxuICBsYW1iZGFTdHBBbGlhcyhzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7XG4gICAgICAgIHR5cGU6ICdTdHAnXG4gICAgICB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpMYW1iZGE6OkFsaWFzJyB9XG4gICAgfSk7XG4gIH0sXG4gIGxhbWJkYVVybChzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpMYW1iZGE6OlVybCcgfVxuICAgIH0pO1xuICB9LFxuICBjb2RlRGVwbG95RGVwbG95bWVudEdyb3VwKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkNvZGVEZXBsb3k6OkRlcGxveW1lbnRHcm91cCcgfVxuICAgIH0pO1xuICB9LFxuICBjdXN0b21SZXNvdXJjZShzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6Q3VzdG9tUmVzb3VyY2UnIH1cbiAgICB9KTtcbiAgfSxcbiAgc2NyaXB0Q3VzdG9tUmVzb3VyY2Uoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnU2NyaXB0JyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6Q3VzdG9tUmVzb3VyY2UnIH1cbiAgICB9KTtcbiAgfSxcbiAgYmF0Y2hTdGF0ZU1hY2hpbmUoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnSm9iRXhlY3V0aW9uJyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpTdGVwRnVuY3Rpb25zOjpTdGF0ZU1hY2hpbmUnIH1cbiAgICB9KTtcbiAgfSxcbiAgYmF0Y2hKb2JEZWZpbml0aW9uKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkJhdGNoOjpKb2JEZWZpbml0aW9uJyB9XG4gICAgfSk7XG4gIH0sXG4gIGJhdGNoSm9iTG9nR3JvdXAoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6TG9nczo6TG9nR3JvdXAnIH1cbiAgICB9KTtcbiAgfSxcbiAgZ2xvYmFsU3RhdGVNYWNoaW5lc1JvbGUoKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHtcbiAgICAgICAgdHlwZTogJ0dsb2JhbFN0YXRlTWFjaGluZSdcbiAgICAgIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6Um9sZScgfVxuICAgIH0pO1xuICB9LFxuICBzdGF0ZU1hY2hpbmUoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6U3RlcEZ1bmN0aW9uczo6U3RhdGVNYWNoaW5lJyB9XG4gICAgfSk7XG4gIH0sXG4gIGludGVybmV0R2F0ZXdheSgpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpJbnRlcm5ldEdhdGV3YXknIH1cbiAgICB9KTtcbiAgfSxcbiAgdnBjR2F0ZXdheUF0dGFjaG1lbnQoKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkVDMjo6VlBDR2F0ZXdheUF0dGFjaG1lbnQnIH1cbiAgICB9KTtcbiAgfSxcbiAgcm91dGVUYWJsZShwdWJsaWNTdWJuZXQ6IGJvb2xlYW4sIHN1Ym5ldEluZGV4OiBudW1iZXIpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiBwdWJsaWNTdWJuZXQgPyAnUHVibGljU3VibmV0JyA6ICdQcml2YXRlU3VibmV0JywgdHlwZUluZGV4OiBzdWJuZXRJbmRleCB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFQzI6OlJvdXRlVGFibGUnIH1cbiAgICB9KTtcbiAgfSxcbiAgaW50ZXJuZXRHYXRld2F5Um91dGUoc3VibmV0SW5kZXg6IG51bWJlcikge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdJbnRlcm5ldEdhdGV3YXknIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkVDMjo6Um91dGUnLCBpbmRleDogc3VibmV0SW5kZXggfVxuICAgIH0pO1xuICB9LFxuICBhdGxhc01vbmdvVnBjUm91dGUocHVibGljU3VibmV0VGFibGU6IGJvb2xlYW4sIHN1Ym5ldEluZGV4OiBudW1iZXIpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiBgQXRsYXNNb25nbyR7cHVibGljU3VibmV0VGFibGUgPyAnUHVibGljU3VibmV0JyA6ICdQcml2YXRlU3VibmV0J31gIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkVDMjo6Um91dGUnLCBpbmRleDogc3VibmV0SW5kZXggfVxuICAgIH0pO1xuICB9LFxuICByb3V0ZVRhYmxlVG9TdWJuZXRBc3NvY2lhdGlvbihwdWJsaWNTdWJuZXQ6IGJvb2xlYW4sIHN1Ym5ldEluZGV4OiBudW1iZXIpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiBwdWJsaWNTdWJuZXQgPyAnUHVibGljU3VibmV0JyA6ICdQcml2YXRlU3VibmV0JywgdHlwZUluZGV4OiBzdWJuZXRJbmRleCB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFQzI6OlN1Ym5ldFJvdXRlVGFibGVBc3NvY2lhdGlvbicgfVxuICAgIH0pO1xuICB9LFxuICBuYXRHYXRld2F5KGF6SW5kZXg6IG51bWJlcikge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFQzI6Ok5hdEdhdGV3YXknLCBpbmRleDogYXpJbmRleCB9XG4gICAgfSk7XG4gIH0sXG4gIG5hdEVsYXN0aWNJcChhekluZGV4OiBudW1iZXIpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnTmF0JyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFQzI6OkVJUCcsIGluZGV4OiBhekluZGV4IH1cbiAgICB9KTtcbiAgfSxcbiAgbmF0Um91dGUoc3VibmV0SW5kZXg6IG51bWJlcikge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdOYXRQcml2YXRlU3VibmV0JyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFQzI6OlJvdXRlJywgaW5kZXg6IHN1Ym5ldEluZGV4IH1cbiAgICB9KTtcbiAgfSxcbiAgZXZlbnRCdXMoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6RXZlbnRzOjpFdmVudEJ1cycgfVxuICAgIH0pO1xuICB9LFxuICBldmVudEJ1c0FyY2hpdmUoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6RXZlbnRzOjpBcmNoaXZlJyB9XG4gICAgfSk7XG4gIH0sXG4gIGVjc0NsdXN0ZXIoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6RUNTOjpDbHVzdGVyJyB9XG4gICAgfSk7XG4gIH0sXG4gIGVjc1Rhc2tEZWZpbml0aW9uKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkVDUzo6VGFza0RlZmluaXRpb24nIH1cbiAgICB9KTtcbiAgfSxcbiAgZWNzU2VydmljZShzdHBSZXNvdXJjZU5hbWU6IHN0cmluZywgYmx1ZUdyZWVuOiBib29sZWFuKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IGJsdWVHcmVlbiA/IHsgdHlwZTogJ0JsdWVHcmVlbicgfSA6IHVuZGVmaW5lZCxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6RUNTOjpTZXJ2aWNlJyB9XG4gICAgfSk7XG4gIH0sXG4gIGVjc0V4ZWN1dGlvblJvbGUoKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ0Vjc0V4ZWN1dGlvbicgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpSb2xlJyB9XG4gICAgfSk7XG4gIH0sXG4gIGVjc0VjMkluc3RhbmNlUm9sZSgpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjoge1xuICAgICAgICB0eXBlOiAnRWNzSW5zdGFuY2UnXG4gICAgICB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnIH1cbiAgICB9KTtcbiAgfSxcbiAgZWNzRWMyQXV0b3NjYWxpbmdHcm91cFdhcm1Qb29sKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkF1dG9TY2FsaW5nOjpXYXJtUG9vbCcgfVxuICAgIH0pO1xuICB9LFxuICBldmVudEJ1c1JvbGVGb3JTY2hlZHVsZWRJbnN0YW5jZVJlZnJlc2goKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ1NjaGVkdWxlZEluc3RhbmNlUmVmcmVzaCcgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpSb2xlJyB9XG4gICAgfSk7XG4gIH0sXG4gIHNjaGVkdWxlclJ1bGVGb3JTY2hlZHVsZWRJbnN0YW5jZVJlZnJlc2goc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnU2NoZWR1bGVkSW5zdGFuY2VSZWZyZXNoJyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFdmVudHM6OlJ1bGUnIH1cbiAgICB9KTtcbiAgfSxcbiAgZWNzRWMySW5zdGFuY2VMYXVuY2hUZW1wbGF0ZShzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFQzI6OkxhdW5jaFRlbXBsYXRlJyB9XG4gICAgfSk7XG4gIH0sXG4gIGVjc0VjMkF1dG9zY2FsaW5nR3JvdXAoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6QXV0b1NjYWxpbmc6OkF1dG9TY2FsaW5nR3JvdXAnIH1cbiAgICB9KTtcbiAgfSxcbiAgZWNzRWMyRm9yY2VEZWxldGVBdXRvc2NhbGluZ0dyb3VwQ3VzdG9tUmVzb3VyY2Uoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnRm9yY2VEZWxldGVBc2cnIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZScgfVxuICAgIH0pO1xuICB9LFxuICBlY3NEaXNhYmxlTWFuYWdlZFRlcm1pbmF0aW9uUHJvdGVjdGlvbkN1c3RvbVJlc291cmNlKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ0Rpc2FibGVNYW5hZ2VkVGVybWluYXRpb25Qcm90ZWN0aW9uJyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6Q3VzdG9tUmVzb3VyY2UnIH1cbiAgICB9KTtcbiAgfSxcbiAgZWNzRGVyZWdpc3RlclRhcmdldHNDdXN0b21SZXNvdXJjZShzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdEZXJlZ2lzdGVyVGFyZ2V0cycgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGb3JtYXRpb246OkN1c3RvbVJlc291cmNlJyB9XG4gICAgfSk7XG4gIH0sXG5cbiAgZWNzRWMyQ2FwYWNpdHlQcm92aWRlcihzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFQ1M6OkNhcGFjaXR5UHJvdmlkZXInIH1cbiAgICB9KTtcbiAgfSxcbiAgZWNzRWMyQ2FwYWNpdHlQcm92aWRlckFzc29jaWF0aW9uKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkVDUzo6Q2x1c3RlckNhcGFjaXR5UHJvdmlkZXJBc3NvY2lhdGlvbnMnIH1cbiAgICB9KTtcbiAgfSxcbiAgZWNzRWMySW5zdGFuY2VQcm9maWxlKCkge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3BlY2lmaWVyOiB7XG4gICAgICAgIHR5cGU6ICdFY3NJbnN0YW5jZSdcbiAgICAgIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6SW5zdGFuY2VQcm9maWxlJyB9XG4gICAgfSk7XG4gIH0sXG4gIGVjc1Rhc2tSb2xlKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6Um9sZScgfVxuICAgIH0pO1xuICB9LFxuICBlY3NBdXRvU2NhbGluZ1JvbGUoKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ0Vjc0F1dG9TY2FsZScgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpSb2xlJyB9XG4gICAgfSk7XG4gIH0sXG4gIC8vIGVjc1NjaGVkdWxlZE1haW50ZW5hbmNlRXZlbnRCdXNSdWxlKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gIC8vICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gIC8vICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gIC8vICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ1NjaGVkdWxlZE1haW50ZW5hbmNlJyB9LFxuICAvLyAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFdmVudHM6OlJ1bGUnIH1cbiAgLy8gICB9KS5yZXBsYWNlQWxsKCdfJywgJycpO1xuICAvLyB9LFxuICBlY3NTY2hlZHVsZWRNYWludGVuYW5jZUxhbWJkYVBlcm1pc3Npb24oc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnU2NoZWR1bGVkTWFpbnRlbmFuY2UnIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkxhbWJkYTo6UGVybWlzc2lvbicgfVxuICAgIH0pLnJlcGxhY2VBbGwoJ18nLCAnJyk7XG4gIH0sXG4gIGJhc3Rpb25FYzJMYXVuY2hUZW1wbGF0ZShzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFQzI6OkxhdW5jaFRlbXBsYXRlJyB9XG4gICAgfSk7XG4gIH0sXG4gIGJhc3Rpb25FYzJJbnN0YW5jZVByb2ZpbGUoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpJbnN0YW5jZVByb2ZpbGUnIH1cbiAgICB9KTtcbiAgfSxcbiAgYmFzdGlvbkVjMkF1dG9zY2FsaW5nR3JvdXAoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6QXV0b1NjYWxpbmc6OkF1dG9TY2FsaW5nR3JvdXAnIH1cbiAgICB9KTtcbiAgfSxcbiAgYmFzdGlvblNlY3VyaXR5R3JvdXAoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpTZWN1cml0eUdyb3VwJyB9XG4gICAgfSk7XG4gIH0sXG4gIGJhc3Rpb25Dd0FnZW50U3NtQXNzb2NpYXRpb24oc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnQ3dBZ2VudCcgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6U1NNOjpBc3NvY2lhdGlvbicgfVxuICAgIH0pO1xuICB9LFxuICBiYXN0aW9uU3NtQWdlbnRTc21Bc3NvY2lhdGlvbihzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdTc21BZ2VudCcgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6U1NNOjpBc3NvY2lhdGlvbicgfVxuICAgIH0pO1xuICB9LFxuICBiYXN0aW9uUm9sZShzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnIH1cbiAgICB9KTtcbiAgfSxcbiAgYmFzdGlvbkxvZ0dyb3VwKHN0cFJlc291cmNlTmFtZTogc3RyaW5nLCBsb2dUeXBlOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiBwYXNjYWxDYXNlKGxvZ1R5cGUpIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkxvZ3M6OkxvZ0dyb3VwJyB9XG4gICAgfSk7XG4gIH0sXG4gIGJhc3Rpb25DbG91ZHdhdGNoU3NtRG9jdW1lbnQoKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ0Jhc3Rpb25DbG91ZHdhdGNoQWdlbnQnIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OlNTTTo6RG9jdW1lbnQnIH1cbiAgICB9KTtcbiAgfSxcbiAgc2VydmljZURpc2NvdmVyeUVjc1NlcnZpY2Uoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcsIHNlcnZpY2VUYXJnZXRDb250YWluZXJQb3J0OiBudW1iZXIpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiBgUG9ydCR7c2VydmljZVRhcmdldENvbnRhaW5lclBvcnR9RGlzY292ZXJ5YCB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpTZXJ2aWNlRGlzY292ZXJ5OjpTZXJ2aWNlJyB9XG4gICAgfSk7XG4gIH0sXG4gIHdvcmtsb2FkU2VjdXJpdHlHcm91cChzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFQzI6OlNlY3VyaXR5R3JvdXAnIH1cbiAgICB9KTtcbiAgfSxcbiAgbG9hZEJhbGFuY2VyU2VjdXJpdHlHcm91cChzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdMYicgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpTZWN1cml0eUdyb3VwJyB9XG4gICAgfSk7XG4gIH0sXG4gIHRhcmdldEdyb3VwKHtcbiAgICBsb2FkQmFsYW5jZXJOYW1lLFxuICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICB0YXJnZXRDb250YWluZXJQb3J0LFxuICAgIGJsdWVHcmVlblxuICB9OiB7XG4gICAgc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmc7XG4gICAgbG9hZEJhbGFuY2VyTmFtZTogc3RyaW5nO1xuICAgIHRhcmdldENvbnRhaW5lclBvcnQ/OiBudW1iZXI7XG4gICAgYmx1ZUdyZWVuPzogYm9vbGVhbjtcbiAgfSkge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7XG4gICAgICAgIHR5cGU6IGAke2xvYWRCYWxhbmNlck5hbWV9JHt0YXJnZXRDb250YWluZXJQb3J0ID8gYFRvUG9ydCR7dGFyZ2V0Q29udGFpbmVyUG9ydH1gIDogJyd9JHtibHVlR3JlZW4gPyAnQkcnIDogJyd9YFxuICAgICAgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6RWxhc3RpY0xvYWRCYWxhbmNpbmdWMjo6VGFyZ2V0R3JvdXAnIH1cbiAgICB9KTtcbiAgfSxcbiAgbGFtYmRhUm9sZShzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnIH1cbiAgICB9KTtcbiAgfSxcbiAgZGVmYXVsdExhbWJkYUZ1bmN0aW9uUm9sZSgpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnTGFtYmRhJyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnIH1cbiAgICB9KTtcbiAgfSxcbiAgbGFtYmRhUGVybWlzc2lvbihzdHBSZXNvdXJjZU5hbWU6IHN0cmluZywgZXZlbnRJbmRleDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ0V2ZW50JywgdHlwZUluZGV4OiBldmVudEluZGV4IH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkxhbWJkYTo6UGVybWlzc2lvbicgfVxuICAgIH0pO1xuICB9LFxuICBsYW1iZGFQdWJsaWNVcmxQZXJtaXNzaW9uKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ1B1YmxpY1VybCcgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6TGFtYmRhOjpQZXJtaXNzaW9uJyB9XG4gICAgfSk7XG4gIH0sXG4gIGxhbWJkYUlvdEV2ZW50UGVybWlzc2lvbih3b3JrbG9hZE5hbWU6IHN0cmluZywgZXZlbnRJbmRleDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIHBhc2NhbENhc2UoYCR7d29ya2xvYWROYW1lfS1FdmVudCR7ZXZlbnRJbmRleH0tbGFtYmRhLWlvdEV2ZW50UGVybWlzc2lvbmApO1xuICB9LFxuICBsYW1iZGFUYXJnZXRHcm91cFBlcm1pc3Npb24oc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcsIGxvYWRCYWxhbmNlck5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6IGAke2xvYWRCYWxhbmNlck5hbWV9VGFyZ2V0R3JvdXBgIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkxhbWJkYTo6UGVybWlzc2lvbicgfVxuICAgIH0pO1xuICB9LFxuICBodHRwQXBpKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkFwaUdhdGV3YXlWMjo6QXBpJyB9XG4gICAgfSk7XG4gIH0sXG4gIGh0dHBBcGlMb2dHcm91cChzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpMb2dzOjpMb2dHcm91cCcgfVxuICAgIH0pO1xuICB9LFxuICBodHRwQXBpTGFtYmRhSW50ZWdyYXRpb24oe1xuICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICBzdHBIdHRwQXBpR2F0ZXdheU5hbWVcbiAgfToge1xuICAgIHN0cFJlc291cmNlTmFtZTogc3RyaW5nO1xuICAgIHN0cEh0dHBBcGlHYXRld2F5TmFtZTogc3RyaW5nO1xuICB9KSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogc3RwSHR0cEFwaUdhdGV3YXlOYW1lIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkFwaUdhdGV3YXlWMjo6SW50ZWdyYXRpb24nIH1cbiAgICB9KTtcbiAgfSxcbiAgaHR0cEFwaUNvbnRhaW5lcldvcmtsb2FkSW50ZWdyYXRpb24oe1xuICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICBzdHBIdHRwQXBpR2F0ZXdheU5hbWUsXG4gICAgdGFyZ2V0Q29udGFpbmVyUG9ydFxuICB9OiB7XG4gICAgc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmc7XG4gICAgdGFyZ2V0Q29udGFpbmVyUG9ydDogbnVtYmVyO1xuICAgIHN0cEh0dHBBcGlHYXRld2F5TmFtZTogc3RyaW5nO1xuICB9KSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogYCR7c3RwSHR0cEFwaUdhdGV3YXlOYW1lfVRvUG9ydCR7dGFyZ2V0Q29udGFpbmVyUG9ydH1gIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkFwaUdhdGV3YXlWMjo6SW50ZWdyYXRpb24nIH1cbiAgICB9KTtcbiAgfSxcbiAgaHR0cEFwaUF1dGhvcml6ZXIoeyBtZXRob2QsIHBhdGgsIHN0cFJlc291cmNlTmFtZSB9OiB7IG1ldGhvZDogSHR0cE1ldGhvZDsgcGF0aDogc3RyaW5nOyBzdHBSZXNvdXJjZU5hbWU6IHN0cmluZyB9KSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWU6ICcnLFxuICAgICAgc3BlY2lmaWVyOiB7XG4gICAgICAgIHR5cGU6IGAke3N0cFJlc291cmNlTmFtZX0tJHttZXRob2QgPT09ICcqJyA/ICdBbnknIDogbWV0aG9kfS0ke3BhdGggPT09ICcqJyA/ICdEZWZhdWx0JyA6IHBhdGh9YFxuICAgICAgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6QXBpR2F0ZXdheVYyOjpBdXRob3JpemVyJyB9XG4gICAgfSk7XG4gIH0sXG4gIGh0dHBBcGlSb3V0ZSh7IG1ldGhvZCwgcGF0aCwgc3RwUmVzb3VyY2VOYW1lIH06IHsgbWV0aG9kOiBIdHRwTWV0aG9kOyBwYXRoOiBzdHJpbmc7IHN0cFJlc291cmNlTmFtZTogc3RyaW5nIH0pIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZTogJycsXG4gICAgICBzcGVjaWZpZXI6IHtcbiAgICAgICAgdHlwZTogYCR7c3RwUmVzb3VyY2VOYW1lfS0ke21ldGhvZCA9PT0gJyonID8gJ0FueScgOiBtZXRob2R9LSR7cGF0aCA9PT0gJyonID8gJ0RlZmF1bHQnIDogcGF0aH1gXG4gICAgICB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpBcGlHYXRld2F5VjI6OlJvdXRlJyB9XG4gICAgfSk7XG4gIH0sXG4gIGh0dHBBcGlWcGNMaW5rKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkFwaUdhdGV3YXlWMjo6VnBjTGluaycgfVxuICAgIH0pO1xuICB9LFxuICBodHRwQXBpVnBjTGlua1NlY3VyaXR5R3JvdXAoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnVnBjTGluaycgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpTZWN1cml0eUdyb3VwJyB9XG4gICAgfSk7XG4gIH0sXG4gIGh0dHBBcGlMYW1iZGFQZXJtaXNzaW9uKHtcbiAgICBzdHBSZXNvdXJjZU5hbWVPZkxhbWJkYSxcbiAgICBzdHBSZXNvdXJjZU5hbWVPZkh0dHBBcGlHYXRld2F5XG4gIH06IHtcbiAgICBzdHBSZXNvdXJjZU5hbWVPZkxhbWJkYTogc3RyaW5nO1xuICAgIHN0cFJlc291cmNlTmFtZU9mSHR0cEFwaUdhdGV3YXk6IHN0cmluZztcbiAgfSkge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lOiBzdHBSZXNvdXJjZU5hbWVPZkxhbWJkYSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiBzdHBSZXNvdXJjZU5hbWVPZkh0dHBBcGlHYXRld2F5IH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkxhbWJkYTo6UGVybWlzc2lvbicgfVxuICAgIH0pO1xuICB9LFxuICBodHRwQXBpU3RhZ2Uoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6QXBpR2F0ZXdheVYyOjpTdGFnZScgfVxuICAgIH0pO1xuICB9LFxuICBodHRwQXBpRG9tYWluKGZ1bGx5UXVhbGlmaWVkRG9tYWluTmFtZTogc3RyaW5nKSB7XG4gICAgLy8gd2UgZG8gbm90IGJ1aWxkIGJ1aWxkIHRoZSByZXNvdXJjZSBuYW1lIGNvbnZlbnRpb25hbGx5IHRocm91Z2ggc3RwUmVzb3VyY2VOYW1lXG4gICAgLy8gdGhpcyBpcyBkdWUgdG8gdXBkYXRlIGJlaGF2aW9ycyBvZiBDbG91ZGZvcm1hdGlvblxuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lOiAnJyxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiBnZXRTcGVjaWZpZXJGb3JEb21haW5SZXNvdXJjZShmdWxseVF1YWxpZmllZERvbWFpbk5hbWUpIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkFwaUdhdGV3YXlWMjo6RG9tYWluTmFtZScgfVxuICAgIH0pO1xuICB9LFxuICBodHRwQXBpRGVmYXVsdERvbWFpbihzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpBcGlHYXRld2F5VjI6OkRvbWFpbk5hbWUnIH1cbiAgICB9KTtcbiAgfSxcbiAgaHR0cEFwaURvbWFpbk1hcHBpbmcoZnVsbHlRdWFsaWZpZWREb21haW5OYW1lOiBzdHJpbmcpIHtcbiAgICAvLyB3ZSBkbyBub3QgYnVpbGQgYnVpbGQgdGhlIHJlc291cmNlIG5hbWUgY29udmVudGlvbmFsbHkgdGhyb3VnaCBzdHBSZXNvdXJjZU5hbWVcbiAgICAvLyB0aGlzIGlzIGR1ZSB0byB1cGRhdGUgYmVoYXZpb3JzIG9mIENsb3VkZm9ybWF0aW9uXG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWU6ICcnLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6IGdldFNwZWNpZmllckZvckRvbWFpblJlc291cmNlKGZ1bGx5UXVhbGlmaWVkRG9tYWluTmFtZSkgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6QXBpR2F0ZXdheVYyOjpBcGlNYXBwaW5nJyB9XG4gICAgfSk7XG4gIH0sXG4gIGh0dHBBcGlEZWZhdWx0RG9tYWluTWFwcGluZyhzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpBcGlHYXRld2F5VjI6OkFwaU1hcHBpbmcnIH1cbiAgICB9KTtcbiAgfSxcbiAgbGlzdGVuZXIoZXhwb3N1cmVQb3J0OiBudW1iZXIsIHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogYFBvcnQke2V4cG9zdXJlUG9ydH1gIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkVsYXN0aWNMb2FkQmFsYW5jaW5nVjI6Okxpc3RlbmVyJyB9XG4gICAgfSk7XG4gIH0sXG4gIGxpc3RlbmVyUnVsZShleHBvc3VyZVBvcnQ6IG51bWJlciwgc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcsIHJ1bGVQcmlvcml0eTogbnVtYmVyKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogYFBvcnQke2V4cG9zdXJlUG9ydH1Qcmlvcml0eSR7cnVsZVByaW9yaXR5fWAgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6RWxhc3RpY0xvYWRCYWxhbmNpbmdWMjo6TGlzdGVuZXJSdWxlJyB9XG4gICAgfSk7XG4gIH0sXG4gIGxpc3RlbmVyQ2VydGlmaWNhdGVMaXN0KGV4cG9zdXJlUG9ydDogbnVtYmVyLCBzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6IGBQb3J0JHtleHBvc3VyZVBvcnR9YCB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFbGFzdGljTG9hZEJhbGFuY2luZ1YyOjpMaXN0ZW5lckNlcnRpZmljYXRlJyB9XG4gICAgfSk7XG4gIH0sXG4gIGxvYWRCYWxhbmNlcihzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFbGFzdGljTG9hZEJhbGFuY2luZ1YyOjpMb2FkQmFsYW5jZXInIH1cbiAgICB9KTtcbiAgfSxcbiAgZWNzTG9nR3JvdXAoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcsIGNvbnRhaW5lck5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6IGNvbnRhaW5lck5hbWUgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6TG9nczo6TG9nR3JvdXAnIH1cbiAgICB9KTtcbiAgfSxcbiAgYXV0b1NjYWxpbmdUYXJnZXQoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6QXBwbGljYXRpb25BdXRvU2NhbGluZzo6U2NhbGFibGVUYXJnZXQnIH1cbiAgICB9KTtcbiAgfSxcbiAgZHluYW1vQXV0b1NjYWxpbmdUYXJnZXQoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcsIG1ldHJpYzogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogbWV0cmljIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkFwcGxpY2F0aW9uQXV0b1NjYWxpbmc6OlNjYWxhYmxlVGFyZ2V0JyB9XG4gICAgfSk7XG4gIH0sXG4gIGF1dG9TY2FsaW5nUG9saWN5KHN0cFJlc291cmNlTmFtZTogc3RyaW5nLCBtZXRyaWM6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6IG1ldHJpYyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpBcHBsaWNhdGlvbkF1dG9TY2FsaW5nOjpTY2FsaW5nUG9saWN5JyB9XG4gICAgfSk7XG4gIH0sXG4gIGN1c3RvbVJlc291cmNlUzNFdmVudHMoKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ0V2ZW50cycgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGb3JtYXRpb246OkN1c3RvbVJlc291cmNlJyB9XG4gICAgfSk7XG4gIH0sXG4gIC8vIEBkZXByZWNhdGVkXG4gIC8vIHN0YWNrdGFwZVNlcnZpY2VDdXN0b21SZXNvdXJjZUVkZ2VGdW5jdGlvbnMoKSB7XG4gIC8vICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gIC8vICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ0VkZ2VGdW5jdGlvbnMnIH0sXG4gIC8vICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZScgfVxuICAvLyAgIH0pO1xuICAvLyB9LFxuICBjdXN0b21SZXNvdXJjZVNlbnNpdGl2ZURhdGEoKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ1NlbnNpdGl2ZURhdGEnIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZScgfVxuICAgIH0pO1xuICB9LFxuICBjdXN0b21SZXNvdXJjZUFjY2VwdFZwY1BlZXJpbmdzKCkge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdBY2NlcHRWcGNQZWVyaW5ncycgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGb3JtYXRpb246OkN1c3RvbVJlc291cmNlJyB9XG4gICAgfSk7XG4gIH0sXG4gIGN1c3RvbVJlc291cmNlRGVmYXVsdERvbWFpbkNlcnQoKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ0RlZmF1bHREb21haW5DZXJ0JyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6Q3VzdG9tUmVzb3VyY2UnIH1cbiAgICB9KTtcbiAgfSxcbiAgY3VzdG9tUmVzb3VyY2VFZGdlTGFtYmRhQnVja2V0KCkge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdFZGdlTGFtYmRhQnVja2V0JyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6Q3VzdG9tUmVzb3VyY2UnIH1cbiAgICB9KTtcbiAgfSxcbiAgY3VzdG9tUmVzb3VyY2VFZGdlTGFtYmRhKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ0VkZ2VMYW1iZGEnIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZScgfVxuICAgIH0pO1xuICB9LFxuICBjdXN0b21SZXNvdXJjZURlZmF1bHREb21haW4oc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcsIGNkbj86IGJvb2xlYW4pIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiBgJHtjZG4gPyAnQ2RuJyA6ICcnfURlZmF1bHREb21haW5gIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZScgfVxuICAgIH0pO1xuICB9LFxuICBjdXN0b21SZXNvdXJjZURhdGFiYXNlRGVsZXRpb25Qcm90ZWN0aW9uKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ0RlbGV0aW9uUHJvdGVjdGlvbicgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGb3JtYXRpb246OkN1c3RvbVJlc291cmNlJyB9XG4gICAgfSk7XG4gIH0sXG4gIHVzZXJQb29sKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkNvZ25pdG86OlVzZXJQb29sJyB9XG4gICAgfSk7XG4gIH0sXG4gIHVzZXJQb29sQ2xpZW50KHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkNvZ25pdG86OlVzZXJQb29sQ2xpZW50JyB9XG4gICAgfSk7XG4gIH0sXG4gIHVzZXJQb29sRG9tYWluKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkNvZ25pdG86OlVzZXJQb29sRG9tYWluJyB9XG4gICAgfSk7XG4gIH0sXG4gIGlkZW50aXR5UHJvdmlkZXIoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcsIHR5cGU6IFN0cFVzZXJBdXRoUG9vbFsnaWRlbnRpdHlQcm92aWRlcnMnXVtudW1iZXJdWyd0eXBlJ10pIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkNvZ25pdG86OlVzZXJQb29sSWRlbnRpdHlQcm92aWRlcicgfVxuICAgIH0pO1xuICB9LFxuICBjb2duaXRvTGFtYmRhSG9va1Blcm1pc3Npb24oc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcsIGhvb2tOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiBob29rTmFtZSB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpMYW1iZGE6OlBlcm1pc3Npb24nIH1cbiAgICB9KTtcbiAgfSxcbiAgY29nbml0b1VzZXJQb29sRGV0YWlsc0N1c3RvbVJlc291cmNlKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ1VzZXJQb29sRGV0YWlscycgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGb3JtYXRpb246OkN1c3RvbVJlc291cmNlJyB9XG4gICAgfSk7XG4gIH0sXG4gIHVzZXJQb29sVWlDdXN0b21pemF0aW9uQXR0YWNobWVudChzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpDb2duaXRvOjpVc2VyUG9vbFVJQ3VzdG9taXphdGlvbkF0dGFjaG1lbnQnIH1cbiAgICB9KTtcbiAgfSxcbiAgc2VydmljZURpc2NvdmVyeVByaXZhdGVOYW1lc3BhY2UoKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ0Rpc2NvdmVyeScgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6U2VydmljZURpc2NvdmVyeTo6U2VydmljZScgfVxuICAgIH0pO1xuICB9LFxuICBsYW1iZGFDb2RlRGVwbG95QXBwKCkge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdMYW1iZGFDb2RlRGVwbG95JyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpDb2RlRGVwbG95OjpBcHBsaWNhdGlvbicgfVxuICAgIH0pO1xuICB9LFxuICBzaGFyZWRDaHVua0xheWVyKGxheWVyTnVtYmVyOiBudW1iZXIpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiBgU2hhcmVkQ2h1bmtMYXllciR7bGF5ZXJOdW1iZXJ9YCB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpMYW1iZGE6OkxheWVyVmVyc2lvbicgfVxuICAgIH0pO1xuICB9LFxuICBlY3NDb2RlRGVwbG95QXBwKCkge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdFQ1NDb2RlRGVwbG95JyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpDb2RlRGVwbG95OjpBcHBsaWNhdGlvbicgfVxuICAgIH0pO1xuICB9LFxuICBzdGFja0J1ZGdldChzdGFja05hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6IHBhc2NhbENhc2Uoc3RhY2tOYW1lKS5yZXBsYWNlQWxsKCdfJywgJycpIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkJ1ZGdldHM6OkJ1ZGdldCcgfVxuICAgIH0pO1xuICB9LFxuICB1cHN0YXNoUmVkaXNEYXRhYmFzZShzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnVXBzdGFzaDo6RGF0YWJhc2VzVjE6OkRhdGFiYXNlJyB9XG4gICAgfSk7XG4gIH0sXG4gIHVwc3Rhc2hDcmVkZW50aWFsc1Byb3ZpZGVyKCkge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdVcHN0YXNoQ3JlZGVudGlhbHNQcm92aWRlcicgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGb3JtYXRpb246OkN1c3RvbVJlc291cmNlJyB9XG4gICAgfSk7XG4gIH0sXG4gIGNsb3Vkd2F0Y2hBbGFybShzdGFja3RhcGVBbGFybU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lOiBzdGFja3RhcGVBbGFybU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkV2F0Y2g6OkFsYXJtJyB9XG4gICAgfSkucmVwbGFjZUFsbCgnXycsICcnKTtcbiAgfSxcbiAgY2xvdWR3YXRjaEFsYXJtRXZlbnRCdXNOb3RpZmljYXRpb25SdWxlKHN0YWNrdGFwZUFsYXJtTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWU6IHN0YWNrdGFwZUFsYXJtTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnTm90aWZpY2F0aW9uJyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFdmVudHM6OlJ1bGUnIH1cbiAgICB9KS5yZXBsYWNlQWxsKCdfJywgJycpO1xuICB9LFxuICBjbG91ZHdhdGNoQWxhcm1FdmVudEJ1c05vdGlmaWNhdGlvblJ1bGVMYW1iZGFQZXJtaXNzaW9uKHN0YWNrdGFwZUFsYXJtTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWU6IHN0YWNrdGFwZUFsYXJtTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnTm90aWZpY2F0aW9uJyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpMYW1iZGE6OlBlcm1pc3Npb24nIH1cbiAgICB9KS5yZXBsYWNlQWxsKCdfJywgJycpO1xuICB9LFxuICBzcXNRdWV1ZShzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpTUVM6OlF1ZXVlJyB9XG4gICAgfSkucmVwbGFjZUFsbCgnXycsICcnKTtcbiAgfSxcbiAgc3FzUXVldWVQb2xpY3koc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6U1FTOjpRdWV1ZVBvbGljeScgfVxuICAgIH0pO1xuICB9LFxuICBzbnNUb3BpYyhzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpTTlM6OlRvcGljJyB9XG4gICAgfSkucmVwbGFjZUFsbCgnXycsICcnKTtcbiAgfSxcbiAga2luZXNpc1N0cmVhbShzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpLaW5lc2lzOjpTdHJlYW0nIH1cbiAgICB9KTtcbiAgfSxcbiAgd2ViQXBwRmlyZXdhbGxDdXN0b21SZXNvdXJjZShzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdXZWJBcHBGaXJld2FsbCcgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGb3JtYXRpb246OkN1c3RvbVJlc291cmNlJyB9XG4gICAgfSk7XG4gIH0sXG4gIHdlYkFwcEZpcmV3YWxsQXNzb2NpYXRpb24oc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6V0FGdjI6OldlYkFDTEFzc29jaWF0aW9uJyB9XG4gICAgfSk7XG4gIH0sXG4gIG9wZW5TZWFyY2hEb21haW4oc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6T3BlblNlYXJjaFNlcnZpY2U6OkRvbWFpbicgfVxuICAgIH0pO1xuICB9LFxuICBvcGVuU2VhcmNoQ3VzdG9tUmVzb3VyY2Uoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnT3BlblNlYXJjaCcgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGb3JtYXRpb246OkN1c3RvbVJlc291cmNlJyB9XG4gICAgfSk7XG4gIH0sXG4gIG9wZW5TZWFyY2hTZWN1cml0eUdyb3VwKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkVDMjo6U2VjdXJpdHlHcm91cCcgfVxuICAgIH0pO1xuICB9LFxuICBsb2dGb3J3YXJkaW5nRmlyZWhvc2VUb1MzUm9sZShzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdMb2dGb3J3YXJkaW5nUzMnIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6Um9sZScgfVxuICAgIH0pO1xuICB9LFxuICBsb2dGb3J3YXJkaW5nQ3dUb0ZpcmVob3NlUm9sZSh7IGxvZ0dyb3VwQ2ZMb2dpY2FsTmFtZSB9OiB7IGxvZ0dyb3VwQ2ZMb2dpY2FsTmFtZTogc3RyaW5nIH0pIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZTogbG9nR3JvdXBDZkxvZ2ljYWxOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdDd1RvRmlyZWhvc2UnIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6Um9sZScgfVxuICAgIH0pO1xuICB9LFxuICBsb2dGb3J3YXJkaW5nRmFpbGVkRXZlbnRzQnVja2V0KHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ0xvZ0ZvcndhcmRpbmdGYWlsZWRSZWNvcmRzJyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpTMzo6QnVja2V0JyB9XG4gICAgfSk7XG4gIH0sXG4gIGxvZ0ZvcndhcmRpbmdGaXJlaG9zZURlbGl2ZXJ5U3RyZWFtKHsgbG9nR3JvdXBDZkxvZ2ljYWxOYW1lIH06IHsgbG9nR3JvdXBDZkxvZ2ljYWxOYW1lOiBzdHJpbmcgfSkge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lOiBsb2dHcm91cENmTG9naWNhbE5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OktpbmVzaXNGaXJlaG9zZTo6RGVsaXZlcnlTdHJlYW0nIH1cbiAgICB9KTtcbiAgfSxcbiAgbG9nRm9yd2FyZGluZ1N1YnNjcmlwdGlvbkZpbHRlcih7IGxvZ0dyb3VwQ2ZMb2dpY2FsTmFtZSB9OiB7IGxvZ0dyb3VwQ2ZMb2dpY2FsTmFtZTogc3RyaW5nIH0pIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZTogbG9nR3JvdXBDZkxvZ2ljYWxOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpMb2dzOjpTdWJzY3JpcHRpb25GaWx0ZXInIH1cbiAgICB9KTtcbiAgfVxufTtcblxuY29uc3QgYnVpbGRDZkxvZ2ljYWxOYW1lID0gKHtcbiAgc3RwUmVzb3VyY2VOYW1lLFxuICBzcGVjaWZpZXIsXG4gIHN1ZmZpeFxufToge1xuICBzdHBSZXNvdXJjZU5hbWU/OiBzdHJpbmc7XG4gIHNwZWNpZmllcj86IHsgdHlwZTogc3RyaW5nOyB0eXBlSW5kZXg/OiBudW1iZXI7IHN1YnR5cGU/OiBzdHJpbmcgfTtcbiAgc3VmZml4OiB7XG4gICAgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6IENsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlIHwgU3VwcG9ydGVkUHJpdmF0ZUNmUmVzb3VyY2VUeXBlO1xuICAgIGluZGV4PzogbnVtYmVyO1xuICB9O1xufSkgPT4ge1xuICBjb25zdCBzcGxpdHRlZFR5cGUgPSBzdWZmaXguY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGUuc3BsaXQoJzonKTtcbiAgY29uc3QgcmVzb2x2ZWRQYXJlbnROYW1lID0gc3RwUmVzb3VyY2VOYW1lIHx8ICdTdHAnO1xuICBjb25zdCByZXNvbHZlZFNwZWNpZmllciA9IHNwZWNpZmllclxuICAgID8gYCR7c3BlY2lmaWVyLnR5cGV9JHtzcGVjaWZpZXIudHlwZUluZGV4ICE9PSB1bmRlZmluZWQgPyBzcGVjaWZpZXIudHlwZUluZGV4IDogJyd9JHtcbiAgICAgICAgc3BlY2lmaWVyLnN1YnR5cGUgIT09IHVuZGVmaW5lZCA/IGAtJHtzcGVjaWZpZXIuc3VidHlwZX1gIDogJydcbiAgICAgIH1gXG4gICAgOiAnJztcbiAgY29uc3QgcmVzb2x2ZWRTdWZmaXggPSBgJHtzcGxpdHRlZFR5cGVbc3BsaXR0ZWRUeXBlLmxlbmd0aCAtIDFdfSR7c3VmZml4LmluZGV4ICE9PSB1bmRlZmluZWQgPyBzdWZmaXguaW5kZXggOiAnJ31gO1xuICByZXR1cm4gcGFzY2FsQ2FzZShgJHtyZXNvbHZlZFBhcmVudE5hbWV9LSR7cmVzb2x2ZWRTcGVjaWZpZXJ9LSR7cmVzb2x2ZWRTdWZmaXh9YCk7XG59O1xuXG5jb25zdCBnZXRTcGVjaWZpZXJGb3JEb21haW5SZXNvdXJjZSA9IChmdWxseVF1YWxpZmllZERvbWFpbk5hbWUpID0+IHtcbiAgaWYgKHBhc2NhbENhc2UoZnVsbHlRdWFsaWZpZWREb21haW5OYW1lKS5yZXBsYWNlKCdfJywgJycpLmxlbmd0aCA8IDg1KSB7XG4gICAgcmV0dXJuIHBhc2NhbENhc2UoZnVsbHlRdWFsaWZpZWREb21haW5OYW1lKS5yZXBsYWNlKCdfJywgJycpO1xuICB9XG4gIGNvbnN0IHNwbGl0dGVkRG9tYWluID0gZnVsbHlRdWFsaWZpZWREb21haW5OYW1lXG4gICAgLnNwbGl0KCcuJylcbiAgICAubWFwKChzdWJkb21haW4pID0+IHN1YmRvbWFpbi5zcGxpdCgnLScpKVxuICAgIC5mbGF0KCk7XG4gIGNvbnN0IG1heENoYXJhY3RlcnNQZXJXb3JkID0gTWF0aC5mbG9vcig4NSAvIHNwbGl0dGVkRG9tYWluLmxlbmd0aCk7XG4gIHJldHVybiBzcGxpdHRlZERvbWFpbi5tYXAoKHdvcmQpID0+IHBhc2NhbENhc2Uod29yZC5zbGljZSgwLCBtYXhDaGFyYWN0ZXJzUGVyV29yZCkpLnJlcGxhY2UoJ18nLCAnJykpLmpvaW4oJycpO1xufTtcbiIsCiAgICAiaW1wb3J0IHsgY2ZMb2dpY2FsTmFtZXMgfSBmcm9tICcuLi8uLi8uLi8uLi9zaGFyZWQvbmFtaW5nL2xvZ2ljYWwtbmFtZXMnO1xuXG5leHBvcnQgY29uc3QgQ0hJTERfUkVTT1VSQ0VTOiBSZWNvcmQ8XG4gIFN0cFJlc291cmNlVHlwZSxcbiAgQXJyYXk8eyBsb2dpY2FsTmFtZTogKC4uLmFyZ3M6IGFueVtdKSA9PiBzdHJpbmc7IHJlc291cmNlVHlwZTogc3RyaW5nOyBjb25kaXRpb25hbD86IHRydWU7IHVucmVzb2x2YWJsZT86IHRydWUgfT5cbj4gPSB7XG4gIC8vID09PT09IEJVQ0tFVCA9PT09PVxuICBidWNrZXQ6IFtcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5idWNrZXQsIHJlc291cmNlVHlwZTogJ0FXUzo6UzM6OkJ1Y2tldCcgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5idWNrZXRQb2xpY3ksIHJlc291cmNlVHlwZTogJ0FXUzo6UzM6OkJ1Y2tldFBvbGljeScsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6Q2xvdWRGcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udEN1c3RvbUNhY2hlUG9saWN5LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpDYWNoZVBvbGljeScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnREZWZhdWx0Q2FjaGVQb2xpY3ksXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6OkNhY2hlUG9saWN5JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udEN1c3RvbU9yaWdpblJlcXVlc3RQb2xpY3ksXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6Ok9yaWdpblJlcXVlc3RQb2xpY3knLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250RGVmYXVsdE9yaWdpblJlcXVlc3RQb2xpY3ksXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6Ok9yaWdpblJlcXVlc3RQb2xpY3knLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250RGlzdHJpYnV0aW9uLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpEaXN0cmlidXRpb24nLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jdXN0b21SZXNvdXJjZURlZmF1bHREb21haW4sXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZG5zUmVjb3JkLCByZXNvdXJjZVR5cGU6ICdBV1M6OlJvdXRlNTM6OlJlY29yZFNldCcsIGNvbmRpdGlvbmFsOiB0cnVlIH1cbiAgXSxcblxuICAvLyA9PT09PSBGVU5DVElPTiA9PT09PVxuICBmdW5jdGlvbjogW1xuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmxhbWJkYVJvbGUsIHJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpSb2xlJyB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmxhbWJkYSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpMYW1iZGE6OkZ1bmN0aW9uJyB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVmc0FjY2Vzc1BvaW50LCByZXNvdXJjZVR5cGU6ICdBV1M6OkVGUzo6QWNjZXNzUG9pbnQnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLndvcmtsb2FkU2VjdXJpdHlHcm91cCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpFQzI6OlNlY3VyaXR5R3JvdXAnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmxhbWJkYVVybCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpMYW1iZGE6OlVybCcsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmxhbWJkYVB1YmxpY1VybFBlcm1pc3Npb24sXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkxhbWJkYTo6UGVybWlzc2lvbicsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMubGFtYmRhTG9nR3JvdXAsIHJlc291cmNlVHlwZTogJ0FXUzo6TG9nczo6TG9nR3JvdXAnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5sYW1iZGFJbnZva2VDb25maWcsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkxhbWJkYTo6RXZlbnRJbnZva2VDb25maWcnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5sYW1iZGFDb2RlRGVwbG95QXBwLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDb2RlRGVwbG95OjpBcHBsaWNhdGlvbicsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmxhbWJkYVZlcnNpb25QdWJsaXNoZXJDdXN0b21SZXNvdXJjZSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGb3JtYXRpb246OkN1c3RvbVJlc291cmNlJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY29kZURlcGxveURlcGxveW1lbnRHcm91cCxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q29kZURlcGxveTo6RGVwbG95bWVudEdyb3VwJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5sYW1iZGFTdHBBbGlhcywgcmVzb3VyY2VUeXBlOiAnQVdTOjpMYW1iZGE6OkFsaWFzJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpDbG91ZEZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHknLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250Q3VzdG9tQ2FjaGVQb2xpY3ksXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6OkNhY2hlUG9saWN5JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlLFxuICAgICAgdW5yZXNvbHZhYmxlOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udERlZmF1bHRDYWNoZVBvbGljeSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6Q2FjaGVQb2xpY3knLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250Q3VzdG9tT3JpZ2luUmVxdWVzdFBvbGljeSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6T3JpZ2luUmVxdWVzdFBvbGljeScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZSxcbiAgICAgIHVucmVzb2x2YWJsZTogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnREZWZhdWx0T3JpZ2luUmVxdWVzdFBvbGljeSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6T3JpZ2luUmVxdWVzdFBvbGljeScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnREaXN0cmlidXRpb24sXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6OkRpc3RyaWJ1dGlvbicsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZSxcbiAgICAgIHVucmVzb2x2YWJsZTogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmN1c3RvbVJlc291cmNlRGVmYXVsdERvbWFpbixcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGb3JtYXRpb246OkN1c3RvbVJlc291cmNlJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5kbnNSZWNvcmQsIHJlc291cmNlVHlwZTogJ0FXUzo6Um91dGU1Mzo6UmVjb3JkU2V0JywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMubGFtYmRhUGVybWlzc2lvbixcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6TGFtYmRhOjpQZXJtaXNzaW9uJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlLFxuICAgICAgdW5yZXNvbHZhYmxlOiB0cnVlXG4gICAgfVxuICBdLFxuXG4gIC8vID09PT09IFJFTEFUSU9OQUwgREFUQUJBU0UgPT09PT1cbiAgJ3JlbGF0aW9uYWwtZGF0YWJhc2UnOiBbXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZGJTdWJuZXRHcm91cCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpSRFM6OkRCU3VibmV0R3JvdXAnIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZGJTZWN1cml0eUdyb3VwLCByZXNvdXJjZVR5cGU6ICdBV1M6OkVDMjo6U2VjdXJpdHlHcm91cCcgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY3VzdG9tUmVzb3VyY2VEYXRhYmFzZURlbGV0aW9uUHJvdGVjdGlvbixcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGb3JtYXRpb246OkN1c3RvbVJlc291cmNlJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5hdXJvcmFEYkNsdXN0ZXIsIHJlc291cmNlVHlwZTogJ0FXUzo6UkRTOjpEQkNsdXN0ZXInLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5hdXJvcmFEYkNsdXN0ZXJQYXJhbWV0ZXJHcm91cCxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6UkRTOjpEQkNsdXN0ZXJQYXJhbWV0ZXJHcm91cCcsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmF1cm9yYURiQ2x1c3RlckxvZ0dyb3VwLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpMb2dzOjpMb2dHcm91cCcsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZSxcbiAgICAgIHVucmVzb2x2YWJsZTogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmF1cm9yYURiSW5zdGFuY2UsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OlJEUzo6REJJbnN0YW5jZScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZSxcbiAgICAgIHVucmVzb2x2YWJsZTogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmF1cm9yYURiSW5zdGFuY2VQYXJhbWV0ZXJHcm91cCxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6UkRTOjpEQlBhcmFtZXRlckdyb3VwJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5kYkluc3RhbmNlLCByZXNvdXJjZVR5cGU6ICdBV1M6OlJEUzo6REJJbnN0YW5jZScsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmRiSW5zdGFuY2VMb2dHcm91cCxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6TG9nczo6TG9nR3JvdXAnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWUsXG4gICAgICB1bnJlc29sdmFibGU6IHRydWVcbiAgICB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmRiT3B0aW9uR3JvdXAsIHJlc291cmNlVHlwZTogJ0FXUzo6UkRTOjpPcHRpb25Hcm91cCcsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmRiSW5zdGFuY2VQYXJhbWV0ZXJHcm91cCxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6UkRTOjpEQlBhcmFtZXRlckdyb3VwJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZGJSZXBsaWNhLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpSRFM6OkRCSW5zdGFuY2UnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWUsXG4gICAgICB1bnJlc29sdmFibGU6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5kYlJlcGxpY2FMb2dHcm91cCxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6TG9nczo6TG9nR3JvdXAnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWUsXG4gICAgICB1bnJlc29sdmFibGU6IHRydWVcbiAgICB9XG4gIF0sXG5cbiAgLy8gPT09PT0gRFlOQU1PIERCIFRBQkxFID09PT09XG4gICdkeW5hbW8tZGItdGFibGUnOiBbeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZHluYW1vR2xvYmFsVGFibGUsIHJlc291cmNlVHlwZTogJ0FXUzo6RHluYW1vREI6Okdsb2JhbFRhYmxlJyB9XSxcblxuICAvLyA9PT09PSBIVFRQIEFQSSBHQVRFV0FZID09PT09XG4gICdodHRwLWFwaS1nYXRld2F5JzogW1xuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmh0dHBBcGksIHJlc291cmNlVHlwZTogJ0FXUzo6QXBpR2F0ZXdheVYyOjpBcGknIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuaHR0cEFwaVN0YWdlLCByZXNvdXJjZVR5cGU6ICdBV1M6OkFwaUdhdGV3YXlWMjo6U3RhZ2UnIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuaHR0cEFwaUxvZ0dyb3VwLCByZXNvdXJjZVR5cGU6ICdBV1M6OkxvZ3M6OkxvZ0dyb3VwJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuaHR0cEFwaVZwY0xpbmtTZWN1cml0eUdyb3VwLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpFQzI6OlNlY3VyaXR5R3JvdXAnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmh0dHBBcGlWcGNMaW5rLCByZXNvdXJjZVR5cGU6ICdBV1M6OkFwaUdhdGV3YXlWMjo6VnBjTGluaycsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuaHR0cEFwaURvbWFpbiwgcmVzb3VyY2VUeXBlOiAnQVdTOjpBcGlHYXRld2F5VjI6OkRvbWFpbk5hbWUnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5odHRwQXBpRG9tYWluTWFwcGluZyxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6QXBpR2F0ZXdheVYyOjpBcGlNYXBwaW5nJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuaHR0cEFwaURlZmF1bHREb21haW4sXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkFwaUdhdGV3YXlWMjo6RG9tYWluTmFtZScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmh0dHBBcGlEZWZhdWx0RG9tYWluTWFwcGluZyxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6QXBpR2F0ZXdheVYyOjpBcGlNYXBwaW5nJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY3VzdG9tUmVzb3VyY2VEZWZhdWx0RG9tYWluLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6Q3VzdG9tUmVzb3VyY2UnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmRuc1JlY29yZCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpSb3V0ZTUzOjpSZWNvcmRTZXQnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHksXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6OkNsb3VkRnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnRDdXN0b21DYWNoZVBvbGljeSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6Q2FjaGVQb2xpY3knLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250RGVmYXVsdENhY2hlUG9saWN5LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpDYWNoZVBvbGljeScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnRDdXN0b21PcmlnaW5SZXF1ZXN0UG9saWN5LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpPcmlnaW5SZXF1ZXN0UG9saWN5JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udERlZmF1bHRPcmlnaW5SZXF1ZXN0UG9saWN5LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpPcmlnaW5SZXF1ZXN0UG9saWN5JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udERpc3RyaWJ1dGlvbixcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6RGlzdHJpYnV0aW9uJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfVxuICBdLFxuXG4gIC8vID09PT09IEJBVENIIEpPQiA9PT09PVxuICAnYmF0Y2gtam9iJzogW1xuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmJhdGNoU2VydmljZVJvbGUsIHJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpSb2xlJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5iYXRjaFNwb3RGbGVldFJvbGUsIHJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpSb2xlJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5iYXRjaEluc3RhbmNlUm9sZSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmJhdGNoSW5zdGFuY2VQcm9maWxlLCByZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6SW5zdGFuY2VQcm9maWxlJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5iYXRjaFN0YXRlTWFjaGluZUV4ZWN1dGlvblJvbGUsIHJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpSb2xlJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYmF0Y2hJbnN0YW5jZUxhdW5jaFRlbXBsYXRlLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpFQzI6OkxhdW5jaFRlbXBsYXRlJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYmF0Y2hJbnN0YW5jZURlZmF1bHRTZWN1cml0eUdyb3VwLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpFQzI6OlNlY3VyaXR5R3JvdXAnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5iYXRjaENvbXB1dGVFbnZpcm9ubWVudCxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6QmF0Y2g6OkNvbXB1dGVFbnZpcm9ubWVudCcsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYmF0Y2hKb2JRdWV1ZSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpCYXRjaDo6Sm9iUXVldWUnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmJhdGNoSm9iRGVmaW5pdGlvbiwgcmVzb3VyY2VUeXBlOiAnQVdTOjpCYXRjaDo6Sm9iRGVmaW5pdGlvbicgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5iYXRjaFN0YXRlTWFjaGluZSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpTdGVwRnVuY3Rpb25zOjpTdGF0ZU1hY2hpbmUnIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYmF0Y2hKb2JMb2dHcm91cCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpMb2dzOjpMb2dHcm91cCcsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYmF0Y2hKb2JFeGVjdXRpb25Sb2xlLCByZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6Um9sZScgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYXRsYXNNb25nb1VzZXJBc3NvY2lhdGVkV2l0aFJvbGUsXG4gICAgICByZXNvdXJjZVR5cGU6ICdNb25nb0RCOjpTdHBBdGxhc1YxOjpEYXRhYmFzZVVzZXInLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9XG4gIF0sXG5cbiAgLy8gPT09PT0gRVZFTlQgQlVTID09PT09XG4gICdldmVudC1idXMnOiBbXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZXZlbnRCdXMsIHJlc291cmNlVHlwZTogJ0FXUzo6RXZlbnRzOjpFdmVudEJ1cycgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5ldmVudEJ1c0FyY2hpdmUsIHJlc291cmNlVHlwZTogJ0FXUzo6RXZlbnRzOjpBcmNoaXZlJywgY29uZGl0aW9uYWw6IHRydWUgfVxuICBdLFxuXG4gIC8vID09PT09IFNUQVRFIE1BQ0hJTkUgPT09PT1cbiAgJ3N0YXRlLW1hY2hpbmUnOiBbXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZ2xvYmFsU3RhdGVNYWNoaW5lc1JvbGUsIHJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpSb2xlJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5zdGF0ZU1hY2hpbmUsIHJlc291cmNlVHlwZTogJ0FXUzo6U3RlcEZ1bmN0aW9uczo6U3RhdGVNYWNoaW5lJyB9XG4gIF0sXG5cbiAgLy8gPT09PT0gUkVESVMgQ0xVU1RFUiA9PT09PVxuICAncmVkaXMtY2x1c3Rlcic6IFtcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5yZWRpc1BhcmFtZXRlckdyb3VwLCByZXNvdXJjZVR5cGU6ICdBV1M6OkVsYXN0aUNhY2hlOjpQYXJhbWV0ZXJHcm91cCcgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5yZWRpc1N1Ym5ldEdyb3VwLCByZXNvdXJjZVR5cGU6ICdBV1M6OkVsYXN0aUNhY2hlOjpTdWJuZXRHcm91cCcgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5yZWRpc1NlY3VyaXR5R3JvdXAsIHJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpTZWN1cml0eUdyb3VwJyB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLnJlZGlzTG9nR3JvdXAsIHJlc291cmNlVHlwZTogJ0FXUzo6TG9nczo6TG9nR3JvdXAnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLnJlZGlzUmVwbGljYXRpb25Hcm91cCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpFbGFzdGlDYWNoZTo6UmVwbGljYXRpb25Hcm91cCcgfVxuICBdLFxuXG4gIC8vID09PT09IE1PTkdPIERCIEFUTEFTIENMVVNURVIgPT09PT1cbiAgJ21vbmdvLWRiLWF0bGFzLWNsdXN0ZXInOiBbXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmF0bGFzTW9uZ29DcmVkZW50aWFsc1Byb3ZpZGVyLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6Q3VzdG9tUmVzb3VyY2UnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmF0bGFzTW9uZ29Qcm9qZWN0LCByZXNvdXJjZVR5cGU6ICdNb25nb0RCOjpTdHBBdGxhc1YxOjpQcm9qZWN0JywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYXRsYXNNb25nb1Byb2plY3RJcEFjY2Vzc0xpc3QsXG4gICAgICByZXNvdXJjZVR5cGU6ICdNb25nb0RCOjpTdHBBdGxhc1YxOjpQcm9qZWN0SXBBY2Nlc3NMaXN0JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYXRsYXNNb25nb1Byb2plY3RWcGNOZXR3b3JrQ29udGFpbmVyLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnTW9uZ29EQjo6U3RwQXRsYXNWMTo6TmV0d29ya0NvbnRhaW5lcicsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmF0bGFzTW9uZ29Qcm9qZWN0VnBjTmV0d29ya1BlZXJpbmcsXG4gICAgICByZXNvdXJjZVR5cGU6ICdNb25nb0RCOjpTdHBBdGxhc1YxOjpOZXR3b3JrUGVlcmluZycsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYXRsYXNNb25nb1ZwY1JvdXRlLCByZXNvdXJjZVR5cGU6ICdBV1M6OkVDMjo6Um91dGUnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmF0bGFzTW9uZ29DbHVzdGVyLCByZXNvdXJjZVR5cGU6ICdNb25nb0RCOjpTdHBBdGxhc1YxOjpDbHVzdGVyJyB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5hdGxhc01vbmdvQ2x1c3Rlck1hc3RlclVzZXIsXG4gICAgICByZXNvdXJjZVR5cGU6ICdNb25nb0RCOjpTdHBBdGxhc1YxOjpEYXRhYmFzZVVzZXInLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9XG4gIF0sXG5cbiAgLy8gPT09PT0gVVNFUiBBVVRIIFBPT0wgPT09PT1cbiAgJ3VzZXItYXV0aC1wb29sJzogW1xuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLnVzZXJQb29sLCByZXNvdXJjZVR5cGU6ICdBV1M6OkNvZ25pdG86OlVzZXJQb29sJyB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLnNuc1JvbGVTZW5kU21zRnJvbUNvZ25pdG8sIHJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpSb2xlJyB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLnVzZXJQb29sQ2xpZW50LCByZXNvdXJjZVR5cGU6ICdBV1M6OkNvZ25pdG86OlVzZXJQb29sQ2xpZW50JyB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLnVzZXJQb29sRG9tYWluLCByZXNvdXJjZVR5cGU6ICdBV1M6OkNvZ25pdG86OlVzZXJQb29sRG9tYWluJyB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jb2duaXRvVXNlclBvb2xEZXRhaWxzQ3VzdG9tUmVzb3VyY2UsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZSdcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5pZGVudGl0eVByb3ZpZGVyLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDb2duaXRvOjpVc2VyUG9vbElkZW50aXR5UHJvdmlkZXInLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jb2duaXRvTGFtYmRhSG9va1Blcm1pc3Npb24sXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkxhbWJkYTo6UGVybWlzc2lvbicsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLnVzZXJQb29sVWlDdXN0b21pemF0aW9uQXR0YWNobWVudCxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q29nbml0bzo6VXNlclBvb2xVSUN1c3RvbWl6YXRpb25BdHRhY2htZW50JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMud2ViQXBwRmlyZXdhbGxBc3NvY2lhdGlvbixcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6V0FGdjI6OldlYkFDTEFzc29jaWF0aW9uJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfVxuICBdLFxuXG4gIC8vID09PT09IFVQU1RBU0ggUkVESVMgPT09PT1cbiAgJ3Vwc3Rhc2gtcmVkaXMnOiBbXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLnVwc3Rhc2hDcmVkZW50aWFsc1Byb3ZpZGVyLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6Q3VzdG9tUmVzb3VyY2UnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLnVwc3Rhc2hSZWRpc0RhdGFiYXNlLCByZXNvdXJjZVR5cGU6ICdVcHN0YXNoOjpSZWRpczo6RGF0YWJhc2UnIH1cbiAgXSxcblxuICAvLyA9PT09PSBBUFBMSUNBVElPTiBMT0FEIEJBTEFOQ0VSID09PT09XG4gICdhcHBsaWNhdGlvbi1sb2FkLWJhbGFuY2VyJzogW1xuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmxvYWRCYWxhbmNlciwgcmVzb3VyY2VUeXBlOiAnQVdTOjpFbGFzdGljTG9hZEJhbGFuY2luZ1YyOjpMb2FkQmFsYW5jZXInIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMubG9hZEJhbGFuY2VyU2VjdXJpdHlHcm91cCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpFQzI6OlNlY3VyaXR5R3JvdXAnIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLndlYkFwcEZpcmV3YWxsQXNzb2NpYXRpb24sXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OldBRnYyOjpXZWJBQ0xBc3NvY2lhdGlvbicsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMubGlzdGVuZXIsIHJlc291cmNlVHlwZTogJ0FXUzo6RWxhc3RpY0xvYWRCYWxhbmNpbmdWMjo6TGlzdGVuZXInLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jdXN0b21SZXNvdXJjZURlZmF1bHREb21haW4sXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZG5zUmVjb3JkLCByZXNvdXJjZVR5cGU6ICdBV1M6OlJvdXRlNTM6OlJlY29yZFNldCcsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6Q2xvdWRGcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udEN1c3RvbUNhY2hlUG9saWN5LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpDYWNoZVBvbGljeScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnREZWZhdWx0Q2FjaGVQb2xpY3ksXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6OkNhY2hlUG9saWN5JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udEN1c3RvbU9yaWdpblJlcXVlc3RQb2xpY3ksXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6Ok9yaWdpblJlcXVlc3RQb2xpY3knLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250RGVmYXVsdE9yaWdpblJlcXVlc3RQb2xpY3ksXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6Ok9yaWdpblJlcXVlc3RQb2xpY3knLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250RGlzdHJpYnV0aW9uLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpEaXN0cmlidXRpb24nLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9XG4gIF0sXG5cbiAgLy8gPT09PT0gTkVUV09SSyBMT0FEIEJBTEFOQ0VSID09PT09XG4gICduZXR3b3JrLWxvYWQtYmFsYW5jZXInOiBbXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMubG9hZEJhbGFuY2VyLCByZXNvdXJjZVR5cGU6ICdBV1M6OkVsYXN0aWNMb2FkQmFsYW5jaW5nVjI6OkxvYWRCYWxhbmNlcicgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5sb2FkQmFsYW5jZXJTZWN1cml0eUdyb3VwLCByZXNvdXJjZVR5cGU6ICdBV1M6OkVDMjo6U2VjdXJpdHlHcm91cCcgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5saXN0ZW5lciwgcmVzb3VyY2VUeXBlOiAnQVdTOjpFbGFzdGljTG9hZEJhbGFuY2luZ1YyOjpMaXN0ZW5lcicsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmN1c3RvbVJlc291cmNlRGVmYXVsdERvbWFpbixcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGb3JtYXRpb246OkN1c3RvbVJlc291cmNlJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5kbnNSZWNvcmQsIHJlc291cmNlVHlwZTogJ0FXUzo6Um91dGU1Mzo6UmVjb3JkU2V0JywgY29uZGl0aW9uYWw6IHRydWUgfVxuICBdLFxuXG4gIC8vID09PT09IEhPU1RJTkcgQlVDS0VUID09PT09XG4gIC8vIEhvc3RpbmcgYnVja2V0IGRlbGVnYXRlcyB0byBhIGJ1Y2tldCByZXNvdXJjZSwgc28gaXQgaW5jbHVkZXMgYWxsIGJ1Y2tldCBjaGlsZCByZXNvdXJjZXNcbiAgJ2hvc3RpbmctYnVja2V0JzogW1xuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmJ1Y2tldCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpTMzo6QnVja2V0JyB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmJ1Y2tldFBvbGljeSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpTMzo6QnVja2V0UG9saWN5JywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpDbG91ZEZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHknLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250Q3VzdG9tQ2FjaGVQb2xpY3ksXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6OkNhY2hlUG9saWN5JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udERlZmF1bHRDYWNoZVBvbGljeSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6Q2FjaGVQb2xpY3knLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250Q3VzdG9tT3JpZ2luUmVxdWVzdFBvbGljeSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6T3JpZ2luUmVxdWVzdFBvbGljeScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnREZWZhdWx0T3JpZ2luUmVxdWVzdFBvbGljeSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6T3JpZ2luUmVxdWVzdFBvbGljeScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnREaXN0cmlidXRpb24sXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6OkRpc3RyaWJ1dGlvbicsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmN1c3RvbVJlc291cmNlRGVmYXVsdERvbWFpbixcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGb3JtYXRpb246OkN1c3RvbVJlc291cmNlJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5kbnNSZWNvcmQsIHJlc291cmNlVHlwZTogJ0FXUzo6Um91dGU1Mzo6UmVjb3JkU2V0JywgY29uZGl0aW9uYWw6IHRydWUgfVxuICBdLFxuXG4gIC8vID09PT09IFdFQiBBUFAgRklSRVdBTEwgPT09PT1cbiAgJ3dlYi1hcHAtZmlyZXdhbGwnOiBbXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMud2ViQXBwRmlyZXdhbGxDdXN0b21SZXNvdXJjZSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6Q3VzdG9tUmVzb3VyY2UnIH1cbiAgXSxcblxuICAvLyA9PT09PSBPUEVOIFNFQVJDSCBET01BSU4gPT09PT1cbiAgJ29wZW4tc2VhcmNoLWRvbWFpbic6IFtcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5vcGVuU2VhcmNoRG9tYWluLCByZXNvdXJjZVR5cGU6ICdBV1M6Ok9wZW5TZWFyY2hTZXJ2aWNlOjpEb21haW4nIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMub3BlblNlYXJjaFNlY3VyaXR5R3JvdXAsIHJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpTZWN1cml0eUdyb3VwJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMub3BlblNlYXJjaERvbWFpbkxvZ0dyb3VwLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpMb2dzOjpMb2dHcm91cCcsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZSxcbiAgICAgIHVucmVzb2x2YWJsZTogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLm9wZW5TZWFyY2hDdXN0b21SZXNvdXJjZSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGb3JtYXRpb246OkN1c3RvbVJlc291cmNlJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfVxuICBdLFxuXG4gIC8vID09PT09IEVGUyBGSUxFU1lTVEVNID09PT09XG4gICdlZnMtZmlsZXN5c3RlbSc6IFtcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lZnNGaWxlc3lzdGVtLCByZXNvdXJjZVR5cGU6ICdBV1M6OkVGUzo6RmlsZVN5c3RlbScgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lZnNTZWN1cml0eUdyb3VwLCByZXNvdXJjZVR5cGU6ICdBV1M6OkVDMjo6U2VjdXJpdHlHcm91cCcgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWZzTW91bnRUYXJnZXQsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkVGUzo6TW91bnRUYXJnZXQnLFxuICAgICAgdW5yZXNvbHZhYmxlOiB0cnVlXG4gICAgfVxuICBdLFxuXG4gIC8vID09PT09IE5FWFRKUyBXRUIgPT09PT1cbiAgLy8gTmV4dEpTIHdlYiBkZWxlZ2F0ZXMgdG86IGJ1Y2tldCwgaW1hZ2VGdW5jdGlvbiwgcmV2YWxpZGF0aW9uRnVuY3Rpb24sIHJldmFsaWRhdGlvblF1ZXVlLFxuICAvLyByZXZhbGlkYXRpb25UYWJsZSwgcmV2YWxpZGF0aW9uSW5zZXJ0RnVuY3Rpb24sIGFuZCBvcHRpb25hbGx5IHNlcnZlckVkZ2VGdW5jdGlvbiBvciBzZXJ2ZXJGdW5jdGlvblxuICAnbmV4dGpzLXdlYic6IFtcbiAgICAvLyBOZXh0SlMtc3BlY2lmaWMgcmVzb3VyY2VzXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLm9wZW5OZXh0SG9zdEhlYWRlclJld3JpdGVGdW5jdGlvbixcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6RnVuY3Rpb24nXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMub3Blbk5leHRBc3NldFJlcGxhY2VyQ3VzdG9tUmVzb3VyY2UsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZSdcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5vcGVuTmV4dER5bmFtb0luc2VydEN1c3RvbVJlc291cmNlLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6Q3VzdG9tUmVzb3VyY2UnXG4gICAgfSxcbiAgICAvLyBGcm9tIGJ1Y2tldFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmJ1Y2tldCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpTMzo6QnVja2V0JyB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmJ1Y2tldFBvbGljeSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpTMzo6QnVja2V0UG9saWN5JywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpDbG91ZEZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHknLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250Q3VzdG9tQ2FjaGVQb2xpY3ksXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6OkNhY2hlUG9saWN5JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udERlZmF1bHRDYWNoZVBvbGljeSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6Q2FjaGVQb2xpY3knLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250Q3VzdG9tT3JpZ2luUmVxdWVzdFBvbGljeSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6T3JpZ2luUmVxdWVzdFBvbGljeScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnREZWZhdWx0T3JpZ2luUmVxdWVzdFBvbGljeSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6T3JpZ2luUmVxdWVzdFBvbGljeScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnREaXN0cmlidXRpb24sXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6OkRpc3RyaWJ1dGlvbicsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmN1c3RvbVJlc291cmNlRGVmYXVsdERvbWFpbixcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGb3JtYXRpb246OkN1c3RvbVJlc291cmNlJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5kbnNSZWNvcmQsIHJlc291cmNlVHlwZTogJ0FXUzo6Um91dGU1Mzo6UmVjb3JkU2V0JywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICAvLyBGcm9tIGZ1bmN0aW9ucyAoaW1hZ2VGdW5jdGlvbiwgcmV2YWxpZGF0aW9uRnVuY3Rpb24sIHNlcnZlckZ1bmN0aW9uLCB3YXJtZXJGdW5jdGlvbiwgcmV2YWxpZGF0aW9uSW5zZXJ0RnVuY3Rpb24pXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMubGFtYmRhUm9sZSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMubGFtYmRhLCByZXNvdXJjZVR5cGU6ICdBV1M6OkxhbWJkYTo6RnVuY3Rpb24nIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMubGFtYmRhTG9nR3JvdXAsIHJlc291cmNlVHlwZTogJ0FXUzo6TG9nczo6TG9nR3JvdXAnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmxhbWJkYVVybCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpMYW1iZGE6OlVybCcsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAgLy8gRnJvbSBlZGdlIGZ1bmN0aW9uIChzZXJ2ZXJFZGdlRnVuY3Rpb24pXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmN1c3RvbVJlc291cmNlRWRnZUxhbWJkYSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGb3JtYXRpb246OkN1c3RvbVJlc291cmNlJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICAvLyBGcm9tIHJldmFsaWRhdGlvblF1ZXVlXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuc3FzUXVldWUsIHJlc291cmNlVHlwZTogJ0FXUzo6U1FTOjpRdWV1ZScgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5zcXNRdWV1ZVBvbGljeSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpTUVM6OlF1ZXVlUG9saWN5JywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICAvLyBGcm9tIHJldmFsaWRhdGlvblRhYmxlXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZHluYW1vR2xvYmFsVGFibGUsIHJlc291cmNlVHlwZTogJ0FXUzo6RHluYW1vREI6Okdsb2JhbFRhYmxlJyB9XG4gIF0sXG5cbiAgLy8gPT09PT0gTVVMVEktQ09OVEFJTkVSIFdPUktMT0FEID09PT09XG4gICdtdWx0aS1jb250YWluZXItd29ya2xvYWQnOiBbXG4gICAgLy8gU2hhcmVkIGdsb2JhbCByZXNvdXJjZXMgKGNvbmRpdGlvbmFsIC0gY3JlYXRlZCBvbmx5IG9uY2UgaWYgbm90IGV4aXN0cylcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NFeGVjdXRpb25Sb2xlLCByZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6Um9sZScsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzQXV0b1NjYWxpbmdSb2xlLCByZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6Um9sZScsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAgLy8gU2NhbGluZyByZXNvdXJjZXMgKGNvbmRpdGlvbmFsIC0gb25seSBpZiBzY2FsaW5nIGlzIGNvbmZpZ3VyZWQpXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmF1dG9TY2FsaW5nVGFyZ2V0LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpBcHBsaWNhdGlvbkF1dG9TY2FsaW5nOjpTY2FsYWJsZVRhcmdldCcsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmF1dG9TY2FsaW5nUG9saWN5LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpBcHBsaWNhdGlvbkF1dG9TY2FsaW5nOjpTY2FsaW5nUG9saWN5JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlLFxuICAgICAgdW5yZXNvbHZhYmxlOiB0cnVlXG4gICAgfSxcbiAgICAvLyBFQzItYmFzZWQgcmVzb3VyY2VzIChjb25kaXRpb25hbCAtIG9ubHkgaWYgaW5zdGFuY2VUeXBlcyBhcmUgY29uZmlndXJlZClcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NFYzJJbnN0YW5jZVJvbGUsIHJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpSb2xlJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZXZlbnRCdXNSb2xlRm9yU2NoZWR1bGVkSW5zdGFuY2VSZWZyZXNoLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0VjMkluc3RhbmNlUHJvZmlsZSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06Okluc3RhbmNlUHJvZmlsZScsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0VjMkluc3RhbmNlTGF1bmNoVGVtcGxhdGUsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkVDMjo6TGF1bmNoVGVtcGxhdGUnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NFYzJBdXRvc2NhbGluZ0dyb3VwLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpBdXRvU2NhbGluZzo6QXV0b1NjYWxpbmdHcm91cCcsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0VjMkZvcmNlRGVsZXRlQXV0b3NjYWxpbmdHcm91cEN1c3RvbVJlc291cmNlLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6Q3VzdG9tUmVzb3VyY2UnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NFYzJDYXBhY2l0eVByb3ZpZGVyLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpFQ1M6OkNhcGFjaXR5UHJvdmlkZXInLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NFYzJDYXBhY2l0eVByb3ZpZGVyQXNzb2NpYXRpb24sXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkVDUzo6Q2x1c3RlckNhcGFjaXR5UHJvdmlkZXJBc3NvY2lhdGlvbnMnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5zY2hlZHVsZXJSdWxlRm9yU2NoZWR1bGVkSW5zdGFuY2VSZWZyZXNoLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpTY2hlZHVsZXI6OlNjaGVkdWxlJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzRWMyQXV0b3NjYWxpbmdHcm91cFdhcm1Qb29sLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpBdXRvU2NhbGluZzo6V2FybVBvb2wnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIC8vIERlcGxveW1lbnQgcmVzb3VyY2VzIChjb25kaXRpb25hbCAtIG9ubHkgaWYgZGVwbG95bWVudCBpcyBjb25maWd1cmVkKVxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0NvZGVEZXBsb3lBcHAsIHJlc291cmNlVHlwZTogJ0FXUzo6Q29kZURlcGxveTo6QXBwbGljYXRpb24nLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jb2RlRGVwbG95RGVwbG95bWVudEdyb3VwLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDb2RlRGVwbG95OjpEZXBsb3ltZW50R3JvdXAnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIC8vIENvcmUgcmVzb3VyY2VzIChhbHdheXMgcHJlc2VudClcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NDbHVzdGVyLCByZXNvdXJjZVR5cGU6ICdBV1M6OkVDUzo6Q2x1c3RlcicgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy53b3JrbG9hZFNlY3VyaXR5R3JvdXAsIHJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpTZWN1cml0eUdyb3VwJyB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NTZXJ2aWNlLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpFQ1M6OlNlcnZpY2UnLFxuICAgICAgdW5yZXNvbHZhYmxlOiB0cnVlXG4gICAgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NUYXNrUm9sZSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzVGFza0RlZmluaXRpb24sIHJlc291cmNlVHlwZTogJ0FXUzo6RUNTOjpUYXNrRGVmaW5pdGlvbicgfSxcbiAgICAvLyBDb25kaXRpb25hbCByZXNvdXJjZXNcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzTG9nR3JvdXAsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkxvZ3M6OkxvZ0dyb3VwJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlLFxuICAgICAgdW5yZXNvbHZhYmxlOiB0cnVlXG4gICAgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lZnNBY2Nlc3NQb2ludCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpFRlM6OkFjY2Vzc1BvaW50JywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYXRsYXNNb25nb1VzZXJBc3NvY2lhdGVkV2l0aFJvbGUsXG4gICAgICByZXNvdXJjZVR5cGU6ICdNb25nb0RCOjpTdHBBdGxhc1YxOjpEYXRhYmFzZVVzZXInLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9XG4gIF0sXG5cbiAgLy8gPT09PT0gU1FTIFFVRVVFID09PT09XG4gICdzcXMtcXVldWUnOiBbXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuc3FzUXVldWUsIHJlc291cmNlVHlwZTogJ0FXUzo6U1FTOjpRdWV1ZScgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5zcXNRdWV1ZVBvbGljeSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpTUVM6OlF1ZXVlUG9saWN5JywgY29uZGl0aW9uYWw6IHRydWUgfVxuICBdLFxuXG4gIC8vID09PT09IFNOUyBUT1BJQyA9PT09PVxuICAnc25zLXRvcGljJzogW3sgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLnNuc1RvcGljLCByZXNvdXJjZVR5cGU6ICdBV1M6OlNOUzo6VG9waWMnIH1dLFxuXG4gIC8vID09PT09IEtJTkVTSVMgU1RSRUFNID09PT09XG4gICdraW5lc2lzLXN0cmVhbSc6IFt7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5raW5lc2lzU3RyZWFtLCByZXNvdXJjZVR5cGU6ICdBV1M6OktpbmVzaXM6OlN0cmVhbScgfV0sXG5cbiAgLy8gPT09PT0gQkFTVElPTiA9PT09PVxuICBiYXN0aW9uOiBbXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmJhc3Rpb25DbG91ZHdhdGNoU3NtRG9jdW1lbnQsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OlNTTTo6RG9jdW1lbnQnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmJhc3Rpb25FYzJBdXRvc2NhbGluZ0dyb3VwLCByZXNvdXJjZVR5cGU6ICdBV1M6OkF1dG9TY2FsaW5nOjpBdXRvU2NhbGluZ0dyb3VwJyB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmJhc3Rpb25TZWN1cml0eUdyb3VwLCByZXNvdXJjZVR5cGU6ICdBV1M6OkVDMjo6U2VjdXJpdHlHcm91cCcgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5iYXN0aW9uRWMyTGF1bmNoVGVtcGxhdGUsIHJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpMYXVuY2hUZW1wbGF0ZScgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5iYXN0aW9uUm9sZSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYmFzdGlvbkVjMkluc3RhbmNlUHJvZmlsZSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06Okluc3RhbmNlUHJvZmlsZScgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5iYXN0aW9uQ3dBZ2VudFNzbUFzc29jaWF0aW9uLCByZXNvdXJjZVR5cGU6ICdBV1M6OlNTTTo6QXNzb2NpYXRpb24nIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYmFzdGlvblNzbUFnZW50U3NtQXNzb2NpYXRpb24sIHJlc291cmNlVHlwZTogJ0FXUzo6U1NNOjpBc3NvY2lhdGlvbicgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYmFzdGlvbkxvZ0dyb3VwLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpMb2dzOjpMb2dHcm91cCcsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZSxcbiAgICAgIHVucmVzb2x2YWJsZTogdHJ1ZVxuICAgIH1cbiAgXSxcblxuICAvLyA9PT09PSBFREdFIExBTUJEQSBGVU5DVElPTiA9PT09PVxuICAnZWRnZS1sYW1iZGEtZnVuY3Rpb24nOiBbXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY3VzdG9tUmVzb3VyY2VFZGdlTGFtYmRhLCByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZScgfVxuICBdLFxuXG4gIC8vID09PT09IFdFQiBTRVJWSUNFID09PT09XG4gIC8vIFdlYiBzZXJ2aWNlIGRlbGVnYXRlcyB0bzogY29udGFpbmVyV29ya2xvYWQgKyBvcHRpb25hbGx5IChodHRwQXBpR2F0ZXdheSBPUiBsb2FkQmFsYW5jZXIgT1IgbmV0d29ya0xvYWRCYWxhbmNlcilcbiAgJ3dlYi1zZXJ2aWNlJzogW1xuICAgIC8vIEZyb20gbXVsdGktY29udGFpbmVyLXdvcmtsb2FkIC0gY29yZSByZXNvdXJjZXMgKGFsd2F5cyBwcmVzZW50KVxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0NsdXN0ZXIsIHJlc291cmNlVHlwZTogJ0FXUzo6RUNTOjpDbHVzdGVyJyB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLndvcmtsb2FkU2VjdXJpdHlHcm91cCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpFQzI6OlNlY3VyaXR5R3JvdXAnIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc1NlcnZpY2UsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkVDUzo6U2VydmljZScsXG4gICAgICB1bnJlc29sdmFibGU6IHRydWVcbiAgICB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc1Rhc2tSb2xlLCByZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6Um9sZScgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NUYXNrRGVmaW5pdGlvbiwgcmVzb3VyY2VUeXBlOiAnQVdTOjpFQ1M6OlRhc2tEZWZpbml0aW9uJyB9LFxuICAgIC8vIEZyb20gbXVsdGktY29udGFpbmVyLXdvcmtsb2FkIC0gY29uZGl0aW9uYWwgcmVzb3VyY2VzXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzRXhlY3V0aW9uUm9sZSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0F1dG9TY2FsaW5nUm9sZSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5hdXRvU2NhbGluZ1RhcmdldCxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6QXBwbGljYXRpb25BdXRvU2NhbGluZzo6U2NhbGFibGVUYXJnZXQnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5hdXRvU2NhbGluZ1BvbGljeSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6QXBwbGljYXRpb25BdXRvU2NhbGluZzo6U2NhbGluZ1BvbGljeScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZSxcbiAgICAgIHVucmVzb2x2YWJsZTogdHJ1ZVxuICAgIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzRWMySW5zdGFuY2VSb2xlLCByZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6Um9sZScsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmV2ZW50QnVzUm9sZUZvclNjaGVkdWxlZEluc3RhbmNlUmVmcmVzaCxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpSb2xlJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NFYzJJbnN0YW5jZVByb2ZpbGUsIHJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpJbnN0YW5jZVByb2ZpbGUnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NFYzJJbnN0YW5jZUxhdW5jaFRlbXBsYXRlLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpFQzI6OkxhdW5jaFRlbXBsYXRlJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzRWMyQXV0b3NjYWxpbmdHcm91cCxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6QXV0b1NjYWxpbmc6OkF1dG9TY2FsaW5nR3JvdXAnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NFYzJGb3JjZURlbGV0ZUF1dG9zY2FsaW5nR3JvdXBDdXN0b21SZXNvdXJjZSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGb3JtYXRpb246OkN1c3RvbVJlc291cmNlJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzRWMyQ2FwYWNpdHlQcm92aWRlcixcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6RUNTOjpDYXBhY2l0eVByb3ZpZGVyJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzRWMyQ2FwYWNpdHlQcm92aWRlckFzc29jaWF0aW9uLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpFQ1M6OkNsdXN0ZXJDYXBhY2l0eVByb3ZpZGVyQXNzb2NpYXRpb25zJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuc2NoZWR1bGVyUnVsZUZvclNjaGVkdWxlZEluc3RhbmNlUmVmcmVzaCxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6U2NoZWR1bGVyOjpTY2hlZHVsZScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0VjMkF1dG9zY2FsaW5nR3JvdXBXYXJtUG9vbCxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6QXV0b1NjYWxpbmc6Oldhcm1Qb29sJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NDb2RlRGVwbG95QXBwLCByZXNvdXJjZVR5cGU6ICdBV1M6OkNvZGVEZXBsb3k6OkFwcGxpY2F0aW9uJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY29kZURlcGxveURlcGxveW1lbnRHcm91cCxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q29kZURlcGxveTo6RGVwbG95bWVudEdyb3VwJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzTG9nR3JvdXAsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkxvZ3M6OkxvZ0dyb3VwJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlLFxuICAgICAgdW5yZXNvbHZhYmxlOiB0cnVlXG4gICAgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lZnNBY2Nlc3NQb2ludCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpFRlM6OkFjY2Vzc1BvaW50JywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICAvLyBGcm9tIGFwcGxpY2F0aW9uLWxvYWQtYmFsYW5jZXIgKGNvbmRpdGlvbmFsIC0gb25seSBpZiBBTEIgaXMgdXNlZClcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMubG9hZEJhbGFuY2VyLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpFbGFzdGljTG9hZEJhbGFuY2luZ1YyOjpMb2FkQmFsYW5jZXInLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5sb2FkQmFsYW5jZXJTZWN1cml0eUdyb3VwLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpFQzI6OlNlY3VyaXR5R3JvdXAnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmxpc3RlbmVyLCByZXNvdXJjZVR5cGU6ICdBV1M6OkVsYXN0aWNMb2FkQmFsYW5jaW5nVjI6Okxpc3RlbmVyJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMud2ViQXBwRmlyZXdhbGxBc3NvY2lhdGlvbixcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6V0FGdjI6OldlYkFDTEFzc29jaWF0aW9uJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICAvLyBGcm9tIGh0dHAtYXBpLWdhdGV3YXkgKGNvbmRpdGlvbmFsIC0gb25seSBpZiBIVFRQIEFQSSBHYXRld2F5IGlzIHVzZWQsIGFsdGVybmF0aXZlIHRvIEFMQi9OTEIpXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuaHR0cEFwaSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpBcGlHYXRld2F5VjI6OkFwaScsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuaHR0cEFwaVN0YWdlLCByZXNvdXJjZVR5cGU6ICdBV1M6OkFwaUdhdGV3YXlWMjo6U3RhZ2UnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmh0dHBBcGlMb2dHcm91cCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpMb2dzOjpMb2dHcm91cCcsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmh0dHBBcGlWcGNMaW5rU2VjdXJpdHlHcm91cCxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpTZWN1cml0eUdyb3VwJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5odHRwQXBpVnBjTGluaywgcmVzb3VyY2VUeXBlOiAnQVdTOjpBcGlHYXRld2F5VjI6OlZwY0xpbmsnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmh0dHBBcGlEb21haW4sIHJlc291cmNlVHlwZTogJ0FXUzo6QXBpR2F0ZXdheVYyOjpEb21haW5OYW1lJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuaHR0cEFwaURvbWFpbk1hcHBpbmcsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkFwaUdhdGV3YXlWMjo6QXBpTWFwcGluZycsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmh0dHBBcGlEZWZhdWx0RG9tYWluLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpBcGlHYXRld2F5VjI6OkRvbWFpbk5hbWUnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5odHRwQXBpRGVmYXVsdERvbWFpbk1hcHBpbmcsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkFwaUdhdGV3YXlWMjo6QXBpTWFwcGluZycsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAgLy8gQ29tbW9uIHJlc291cmNlcyAoZG9tYWlucywgQ0ROIC0gYWxsIGNvbmRpdGlvbmFsKVxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jdXN0b21SZXNvdXJjZURlZmF1bHREb21haW4sXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZG5zUmVjb3JkLCByZXNvdXJjZVR5cGU6ICdBV1M6OlJvdXRlNTM6OlJlY29yZFNldCcsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6Q2xvdWRGcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udEN1c3RvbUNhY2hlUG9saWN5LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpDYWNoZVBvbGljeScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnREZWZhdWx0Q2FjaGVQb2xpY3ksXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6OkNhY2hlUG9saWN5JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udEN1c3RvbU9yaWdpblJlcXVlc3RQb2xpY3ksXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6Ok9yaWdpblJlcXVlc3RQb2xpY3knLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250RGVmYXVsdE9yaWdpblJlcXVlc3RQb2xpY3ksXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6Ok9yaWdpblJlcXVlc3RQb2xpY3knLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250RGlzdHJpYnV0aW9uLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpEaXN0cmlidXRpb24nLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9XG4gIF0sXG5cbiAgLy8gPT09PT0gUFJJVkFURSBTRVJWSUNFID09PT09XG4gIC8vIFByaXZhdGUgc2VydmljZSBkZWxlZ2F0ZXMgdG86IGNvbnRhaW5lcldvcmtsb2FkICsgb3B0aW9uYWxseSBsb2FkQmFsYW5jZXJcbiAgJ3ByaXZhdGUtc2VydmljZSc6IFtcbiAgICAvLyBGcm9tIG11bHRpLWNvbnRhaW5lci13b3JrbG9hZCAtIGNvcmUgcmVzb3VyY2VzIChhbHdheXMgcHJlc2VudClcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NDbHVzdGVyLCByZXNvdXJjZVR5cGU6ICdBV1M6OkVDUzo6Q2x1c3RlcicgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy53b3JrbG9hZFNlY3VyaXR5R3JvdXAsIHJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpTZWN1cml0eUdyb3VwJyB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NTZXJ2aWNlLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpFQ1M6OlNlcnZpY2UnLFxuICAgICAgdW5yZXNvbHZhYmxlOiB0cnVlXG4gICAgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NUYXNrUm9sZSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzVGFza0RlZmluaXRpb24sIHJlc291cmNlVHlwZTogJ0FXUzo6RUNTOjpUYXNrRGVmaW5pdGlvbicgfSxcbiAgICAvLyBGcm9tIG11bHRpLWNvbnRhaW5lci13b3JrbG9hZCAtIGNvbmRpdGlvbmFsIHJlc291cmNlc1xuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0V4ZWN1dGlvblJvbGUsIHJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpSb2xlJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NBdXRvU2NhbGluZ1JvbGUsIHJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpSb2xlJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYXV0b1NjYWxpbmdUYXJnZXQsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkFwcGxpY2F0aW9uQXV0b1NjYWxpbmc6OlNjYWxhYmxlVGFyZ2V0JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYXV0b1NjYWxpbmdQb2xpY3ksXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkFwcGxpY2F0aW9uQXV0b1NjYWxpbmc6OlNjYWxpbmdQb2xpY3knLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWUsXG4gICAgICB1bnJlc29sdmFibGU6IHRydWVcbiAgICB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0VjMkluc3RhbmNlUm9sZSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5ldmVudEJ1c1JvbGVGb3JTY2hlZHVsZWRJbnN0YW5jZVJlZnJlc2gsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6Um9sZScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzRWMySW5zdGFuY2VQcm9maWxlLCByZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6SW5zdGFuY2VQcm9maWxlJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzRWMySW5zdGFuY2VMYXVuY2hUZW1wbGF0ZSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpMYXVuY2hUZW1wbGF0ZScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0VjMkF1dG9zY2FsaW5nR3JvdXAsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkF1dG9TY2FsaW5nOjpBdXRvU2NhbGluZ0dyb3VwJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzRWMyRm9yY2VEZWxldGVBdXRvc2NhbGluZ0dyb3VwQ3VzdG9tUmVzb3VyY2UsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0VjMkNhcGFjaXR5UHJvdmlkZXIsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkVDUzo6Q2FwYWNpdHlQcm92aWRlcicsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0VjMkNhcGFjaXR5UHJvdmlkZXJBc3NvY2lhdGlvbixcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6RUNTOjpDbHVzdGVyQ2FwYWNpdHlQcm92aWRlckFzc29jaWF0aW9ucycsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLnNjaGVkdWxlclJ1bGVGb3JTY2hlZHVsZWRJbnN0YW5jZVJlZnJlc2gsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OlNjaGVkdWxlcjo6U2NoZWR1bGUnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NFYzJBdXRvc2NhbGluZ0dyb3VwV2FybVBvb2wsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkF1dG9TY2FsaW5nOjpXYXJtUG9vbCcsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzQ29kZURlcGxveUFwcCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpDb2RlRGVwbG95OjpBcHBsaWNhdGlvbicsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNvZGVEZXBsb3lEZXBsb3ltZW50R3JvdXAsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNvZGVEZXBsb3k6OkRlcGxveW1lbnRHcm91cCcsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0xvZ0dyb3VwLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpMb2dzOjpMb2dHcm91cCcsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZSxcbiAgICAgIHVucmVzb2x2YWJsZTogdHJ1ZVxuICAgIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWZzQWNjZXNzUG9pbnQsIHJlc291cmNlVHlwZTogJ0FXUzo6RUZTOjpBY2Nlc3NQb2ludCcsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAgLy8gRnJvbSBhcHBsaWNhdGlvbi1sb2FkLWJhbGFuY2VyIChjb25kaXRpb25hbCAtIG9ubHkgaWYgQUxCIGlzIGNvbmZpZ3VyZWQpXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmxvYWRCYWxhbmNlcixcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6RWxhc3RpY0xvYWRCYWxhbmNpbmdWMjo6TG9hZEJhbGFuY2VyJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMubG9hZEJhbGFuY2VyU2VjdXJpdHlHcm91cCxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpTZWN1cml0eUdyb3VwJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5saXN0ZW5lciwgcmVzb3VyY2VUeXBlOiAnQVdTOjpFbGFzdGljTG9hZEJhbGFuY2luZ1YyOjpMaXN0ZW5lcicsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmN1c3RvbVJlc291cmNlRGVmYXVsdERvbWFpbixcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGb3JtYXRpb246OkN1c3RvbVJlc291cmNlJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5kbnNSZWNvcmQsIHJlc291cmNlVHlwZTogJ0FXUzo6Um91dGU1Mzo6UmVjb3JkU2V0JywgY29uZGl0aW9uYWw6IHRydWUgfVxuICBdLFxuXG4gIC8vID09PT09IFdPUktFUiBTRVJWSUNFID09PT09XG4gIC8vIFdvcmtlciBzZXJ2aWNlIGRlbGVnYXRlcyB0bzogY29udGFpbmVyV29ya2xvYWQgb25seVxuICAnd29ya2VyLXNlcnZpY2UnOiBbXG4gICAgLy8gRnJvbSBtdWx0aS1jb250YWluZXItd29ya2xvYWQgLSBjb3JlIHJlc291cmNlcyAoYWx3YXlzIHByZXNlbnQpXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzQ2x1c3RlciwgcmVzb3VyY2VUeXBlOiAnQVdTOjpFQ1M6OkNsdXN0ZXInIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMud29ya2xvYWRTZWN1cml0eUdyb3VwLCByZXNvdXJjZVR5cGU6ICdBV1M6OkVDMjo6U2VjdXJpdHlHcm91cCcgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzU2VydmljZSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6RUNTOjpTZXJ2aWNlJyxcbiAgICAgIHVucmVzb2x2YWJsZTogdHJ1ZVxuICAgIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzVGFza1JvbGUsIHJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpSb2xlJyB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc1Rhc2tEZWZpbml0aW9uLCByZXNvdXJjZVR5cGU6ICdBV1M6OkVDUzo6VGFza0RlZmluaXRpb24nIH0sXG4gICAgLy8gRnJvbSBtdWx0aS1jb250YWluZXItd29ya2xvYWQgLSBjb25kaXRpb25hbCByZXNvdXJjZXNcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NFeGVjdXRpb25Sb2xlLCByZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6Um9sZScsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzQXV0b1NjYWxpbmdSb2xlLCByZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6Um9sZScsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmF1dG9TY2FsaW5nVGFyZ2V0LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpBcHBsaWNhdGlvbkF1dG9TY2FsaW5nOjpTY2FsYWJsZVRhcmdldCcsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmF1dG9TY2FsaW5nUG9saWN5LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpBcHBsaWNhdGlvbkF1dG9TY2FsaW5nOjpTY2FsaW5nUG9saWN5JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlLFxuICAgICAgdW5yZXNvbHZhYmxlOiB0cnVlXG4gICAgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NFYzJJbnN0YW5jZVJvbGUsIHJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpSb2xlJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZXZlbnRCdXNSb2xlRm9yU2NoZWR1bGVkSW5zdGFuY2VSZWZyZXNoLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0VjMkluc3RhbmNlUHJvZmlsZSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06Okluc3RhbmNlUHJvZmlsZScsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0VjMkluc3RhbmNlTGF1bmNoVGVtcGxhdGUsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkVDMjo6TGF1bmNoVGVtcGxhdGUnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NFYzJBdXRvc2NhbGluZ0dyb3VwLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpBdXRvU2NhbGluZzo6QXV0b1NjYWxpbmdHcm91cCcsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0VjMkZvcmNlRGVsZXRlQXV0b3NjYWxpbmdHcm91cEN1c3RvbVJlc291cmNlLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6Q3VzdG9tUmVzb3VyY2UnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NFYzJDYXBhY2l0eVByb3ZpZGVyLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpFQ1M6OkNhcGFjaXR5UHJvdmlkZXInLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NFYzJDYXBhY2l0eVByb3ZpZGVyQXNzb2NpYXRpb24sXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkVDUzo6Q2x1c3RlckNhcGFjaXR5UHJvdmlkZXJBc3NvY2lhdGlvbnMnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5zY2hlZHVsZXJSdWxlRm9yU2NoZWR1bGVkSW5zdGFuY2VSZWZyZXNoLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpTY2hlZHVsZXI6OlNjaGVkdWxlJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzRWMyQXV0b3NjYWxpbmdHcm91cFdhcm1Qb29sLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpBdXRvU2NhbGluZzo6V2FybVBvb2wnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0NvZGVEZXBsb3lBcHAsIHJlc291cmNlVHlwZTogJ0FXUzo6Q29kZURlcGxveTo6QXBwbGljYXRpb24nLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jb2RlRGVwbG95RGVwbG95bWVudEdyb3VwLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDb2RlRGVwbG95OjpEZXBsb3ltZW50R3JvdXAnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NMb2dHcm91cCxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6TG9nczo6TG9nR3JvdXAnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWUsXG4gICAgICB1bnJlc29sdmFibGU6IHRydWVcbiAgICB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVmc0FjY2Vzc1BvaW50LCByZXNvdXJjZVR5cGU6ICdBV1M6OkVGUzo6QWNjZXNzUG9pbnQnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5hdGxhc01vbmdvVXNlckFzc29jaWF0ZWRXaXRoUm9sZSxcbiAgICAgIHJlc291cmNlVHlwZTogJ01vbmdvREI6OlN0cEF0bGFzVjE6OkRhdGFiYXNlVXNlcicsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH1cbiAgXSxcblxuICAvLyA9PT09PSBBU1RSTyBXRUIgPT09PT1cbiAgJ2FzdHJvLXdlYic6IFtcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5zc3JXZWJIb3N0SGVhZGVyUmV3cml0ZUZ1bmN0aW9uLCByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6OkZ1bmN0aW9uJyB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmJ1Y2tldCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpTMzo6QnVja2V0JyB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmJ1Y2tldFBvbGljeSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpTMzo6QnVja2V0UG9saWN5JywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpDbG91ZEZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHknLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250Q3VzdG9tQ2FjaGVQb2xpY3ksXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6OkNhY2hlUG9saWN5JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udERlZmF1bHRDYWNoZVBvbGljeSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6Q2FjaGVQb2xpY3knLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250Q3VzdG9tT3JpZ2luUmVxdWVzdFBvbGljeSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6T3JpZ2luUmVxdWVzdFBvbGljeScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnREZWZhdWx0T3JpZ2luUmVxdWVzdFBvbGljeSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6T3JpZ2luUmVxdWVzdFBvbGljeScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnREaXN0cmlidXRpb24sXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6OkRpc3RyaWJ1dGlvbicsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmN1c3RvbVJlc291cmNlRGVmYXVsdERvbWFpbixcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGb3JtYXRpb246OkN1c3RvbVJlc291cmNlJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5kbnNSZWNvcmQsIHJlc291cmNlVHlwZTogJ0FXUzo6Um91dGU1Mzo6UmVjb3JkU2V0JywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5sYW1iZGFSb2xlLCByZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6Um9sZScgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5sYW1iZGEsIHJlc291cmNlVHlwZTogJ0FXUzo6TGFtYmRhOjpGdW5jdGlvbicgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5sYW1iZGFMb2dHcm91cCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpMb2dzOjpMb2dHcm91cCcsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMubGFtYmRhVXJsLCByZXNvdXJjZVR5cGU6ICdBV1M6OkxhbWJkYTo6VXJsJywgY29uZGl0aW9uYWw6IHRydWUgfVxuICBdLFxuXG4gIC8vID09PT09IE5VWFQgV0VCID09PT09XG4gICdudXh0LXdlYic6IFtcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5zc3JXZWJIb3N0SGVhZGVyUmV3cml0ZUZ1bmN0aW9uLCByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6OkZ1bmN0aW9uJyB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmJ1Y2tldCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpTMzo6QnVja2V0JyB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmJ1Y2tldFBvbGljeSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpTMzo6QnVja2V0UG9saWN5JywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpDbG91ZEZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHknLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250Q3VzdG9tQ2FjaGVQb2xpY3ksXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6OkNhY2hlUG9saWN5JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udERlZmF1bHRDYWNoZVBvbGljeSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6Q2FjaGVQb2xpY3knLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250Q3VzdG9tT3JpZ2luUmVxdWVzdFBvbGljeSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6T3JpZ2luUmVxdWVzdFBvbGljeScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnREZWZhdWx0T3JpZ2luUmVxdWVzdFBvbGljeSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6T3JpZ2luUmVxdWVzdFBvbGljeScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnREaXN0cmlidXRpb24sXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6OkRpc3RyaWJ1dGlvbicsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmN1c3RvbVJlc291cmNlRGVmYXVsdERvbWFpbixcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGb3JtYXRpb246OkN1c3RvbVJlc291cmNlJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5kbnNSZWNvcmQsIHJlc291cmNlVHlwZTogJ0FXUzo6Um91dGU1Mzo6UmVjb3JkU2V0JywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5sYW1iZGFSb2xlLCByZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6Um9sZScgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5sYW1iZGEsIHJlc291cmNlVHlwZTogJ0FXUzo6TGFtYmRhOjpGdW5jdGlvbicgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5sYW1iZGFMb2dHcm91cCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpMb2dzOjpMb2dHcm91cCcsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMubGFtYmRhVXJsLCByZXNvdXJjZVR5cGU6ICdBV1M6OkxhbWJkYTo6VXJsJywgY29uZGl0aW9uYWw6IHRydWUgfVxuICBdLFxuXG4gIC8vID09PT09IFNWRUxURUtJVCBXRUIgPT09PT1cbiAgJ3N2ZWx0ZWtpdC13ZWInOiBbXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuc3NyV2ViSG9zdEhlYWRlclJld3JpdGVGdW5jdGlvbiwgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpGdW5jdGlvbicgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5idWNrZXQsIHJlc291cmNlVHlwZTogJ0FXUzo6UzM6OkJ1Y2tldCcgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5idWNrZXRQb2xpY3ksIHJlc291cmNlVHlwZTogJ0FXUzo6UzM6OkJ1Y2tldFBvbGljeScsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6Q2xvdWRGcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udEN1c3RvbUNhY2hlUG9saWN5LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpDYWNoZVBvbGljeScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnREZWZhdWx0Q2FjaGVQb2xpY3ksXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6OkNhY2hlUG9saWN5JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udEN1c3RvbU9yaWdpblJlcXVlc3RQb2xpY3ksXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6Ok9yaWdpblJlcXVlc3RQb2xpY3knLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250RGVmYXVsdE9yaWdpblJlcXVlc3RQb2xpY3ksXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6Ok9yaWdpblJlcXVlc3RQb2xpY3knLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250RGlzdHJpYnV0aW9uLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpEaXN0cmlidXRpb24nLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jdXN0b21SZXNvdXJjZURlZmF1bHREb21haW4sXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZG5zUmVjb3JkLCByZXNvdXJjZVR5cGU6ICdBV1M6OlJvdXRlNTM6OlJlY29yZFNldCcsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMubGFtYmRhUm9sZSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMubGFtYmRhLCByZXNvdXJjZVR5cGU6ICdBV1M6OkxhbWJkYTo6RnVuY3Rpb24nIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMubGFtYmRhTG9nR3JvdXAsIHJlc291cmNlVHlwZTogJ0FXUzo6TG9nczo6TG9nR3JvdXAnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmxhbWJkYVVybCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpMYW1iZGE6OlVybCcsIGNvbmRpdGlvbmFsOiB0cnVlIH1cbiAgXSxcblxuICAvLyA9PT09PSBTT0xJRFNUQVJUIFdFQiA9PT09PVxuICAnc29saWRzdGFydC13ZWInOiBbXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuc3NyV2ViSG9zdEhlYWRlclJld3JpdGVGdW5jdGlvbiwgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpGdW5jdGlvbicgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5idWNrZXQsIHJlc291cmNlVHlwZTogJ0FXUzo6UzM6OkJ1Y2tldCcgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5idWNrZXRQb2xpY3ksIHJlc291cmNlVHlwZTogJ0FXUzo6UzM6OkJ1Y2tldFBvbGljeScsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6Q2xvdWRGcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udEN1c3RvbUNhY2hlUG9saWN5LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpDYWNoZVBvbGljeScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnREZWZhdWx0Q2FjaGVQb2xpY3ksXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6OkNhY2hlUG9saWN5JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udEN1c3RvbU9yaWdpblJlcXVlc3RQb2xpY3ksXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6Ok9yaWdpblJlcXVlc3RQb2xpY3knLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250RGVmYXVsdE9yaWdpblJlcXVlc3RQb2xpY3ksXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6Ok9yaWdpblJlcXVlc3RQb2xpY3knLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250RGlzdHJpYnV0aW9uLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpEaXN0cmlidXRpb24nLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jdXN0b21SZXNvdXJjZURlZmF1bHREb21haW4sXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZG5zUmVjb3JkLCByZXNvdXJjZVR5cGU6ICdBV1M6OlJvdXRlNTM6OlJlY29yZFNldCcsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMubGFtYmRhUm9sZSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMubGFtYmRhLCByZXNvdXJjZVR5cGU6ICdBV1M6OkxhbWJkYTo6RnVuY3Rpb24nIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMubGFtYmRhTG9nR3JvdXAsIHJlc291cmNlVHlwZTogJ0FXUzo6TG9nczo6TG9nR3JvdXAnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmxhbWJkYVVybCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpMYW1iZGE6OlVybCcsIGNvbmRpdGlvbmFsOiB0cnVlIH1cbiAgXSxcblxuICAvLyA9PT09PSBUQU5TVEFDSyBXRUIgPT09PT1cbiAgJ3RhbnN0YWNrLXdlYic6IFtcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5zc3JXZWJIb3N0SGVhZGVyUmV3cml0ZUZ1bmN0aW9uLCByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6OkZ1bmN0aW9uJyB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmJ1Y2tldCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpTMzo6QnVja2V0JyB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmJ1Y2tldFBvbGljeSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpTMzo6QnVja2V0UG9saWN5JywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpDbG91ZEZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHknLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250Q3VzdG9tQ2FjaGVQb2xpY3ksXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6OkNhY2hlUG9saWN5JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udERlZmF1bHRDYWNoZVBvbGljeSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6Q2FjaGVQb2xpY3knLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250Q3VzdG9tT3JpZ2luUmVxdWVzdFBvbGljeSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6T3JpZ2luUmVxdWVzdFBvbGljeScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnREZWZhdWx0T3JpZ2luUmVxdWVzdFBvbGljeSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6T3JpZ2luUmVxdWVzdFBvbGljeScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnREaXN0cmlidXRpb24sXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6OkRpc3RyaWJ1dGlvbicsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmN1c3RvbVJlc291cmNlRGVmYXVsdERvbWFpbixcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGb3JtYXRpb246OkN1c3RvbVJlc291cmNlJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5kbnNSZWNvcmQsIHJlc291cmNlVHlwZTogJ0FXUzo6Um91dGU1Mzo6UmVjb3JkU2V0JywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5sYW1iZGFSb2xlLCByZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6Um9sZScgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5sYW1iZGEsIHJlc291cmNlVHlwZTogJ0FXUzo6TGFtYmRhOjpGdW5jdGlvbicgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5sYW1iZGFMb2dHcm91cCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpMb2dzOjpMb2dHcm91cCcsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMubGFtYmRhVXJsLCByZXNvdXJjZVR5cGU6ICdBV1M6OkxhbWJkYTo6VXJsJywgY29uZGl0aW9uYWw6IHRydWUgfVxuICBdLFxuXG4gIC8vID09PT09IFJFTUlYIFdFQiA9PT09PVxuICAncmVtaXgtd2ViJzogW1xuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLnNzcldlYkhvc3RIZWFkZXJSZXdyaXRlRnVuY3Rpb24sIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6RnVuY3Rpb24nIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYnVja2V0LCByZXNvdXJjZVR5cGU6ICdBV1M6OlMzOjpCdWNrZXQnIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYnVja2V0UG9saWN5LCByZXNvdXJjZVR5cGU6ICdBV1M6OlMzOjpCdWNrZXRQb2xpY3knLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHksXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6OkNsb3VkRnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnRDdXN0b21DYWNoZVBvbGljeSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6Q2FjaGVQb2xpY3knLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250RGVmYXVsdENhY2hlUG9saWN5LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpDYWNoZVBvbGljeScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnRDdXN0b21PcmlnaW5SZXF1ZXN0UG9saWN5LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpPcmlnaW5SZXF1ZXN0UG9saWN5JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udERlZmF1bHRPcmlnaW5SZXF1ZXN0UG9saWN5LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpPcmlnaW5SZXF1ZXN0UG9saWN5JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udERpc3RyaWJ1dGlvbixcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6RGlzdHJpYnV0aW9uJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY3VzdG9tUmVzb3VyY2VEZWZhdWx0RG9tYWluLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6Q3VzdG9tUmVzb3VyY2UnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmRuc1JlY29yZCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpSb3V0ZTUzOjpSZWNvcmRTZXQnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmxhbWJkYVJvbGUsIHJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpSb2xlJyB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmxhbWJkYSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpMYW1iZGE6OkZ1bmN0aW9uJyB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmxhbWJkYUxvZ0dyb3VwLCByZXNvdXJjZVR5cGU6ICdBV1M6OkxvZ3M6OkxvZ0dyb3VwJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5sYW1iZGFVcmwsIHJlc291cmNlVHlwZTogJ0FXUzo6TGFtYmRhOjpVcmwnLCBjb25kaXRpb25hbDogdHJ1ZSB9XG4gIF0sXG5cbiAgLy8gPT09PT0gT1RIRVIgUkVTT1VSQ0VTID09PT09XG4gICdjdXN0b20tcmVzb3VyY2UtaW5zdGFuY2UnOiBbXSxcbiAgJ2N1c3RvbS1yZXNvdXJjZS1kZWZpbml0aW9uJzogW10sXG4gICdkZXBsb3ltZW50LXNjcmlwdCc6IFtdLFxuICAnYXdzLWNkay1jb25zdHJ1Y3QnOiBbXVxufTtcbiIsCiAgICAiaW1wb3J0IHsgQ0hJTERfUkVTT1VSQ0VTIH0gZnJvbSAnLi9jaGlsZC1yZXNvdXJjZXMnO1xuXG4vLyBQcml2YXRlIHN5bWJvbHMgZm9yIGludGVybmFsIG1ldGhvZHMgLSBub3QgYWNjZXNzaWJsZSBmcm9tIG91dHNpZGVcbi8vIFVzZSBTeW1ib2wuZm9yKCkgc28gaXQgY2FuIGJlIGFjY2Vzc2VkIGFjcm9zcyBtb2R1bGVzIChjcnVjaWFsIGZvciBucG0gcGFja2FnZSBpbnRlcm9wKVxuY29uc3QgZ2V0UGFyYW1SZWZlcmVuY2VTeW1ib2wgPSBTeW1ib2wuZm9yKCdzdGFja3RhcGU6Z2V0UGFyYW1SZWZlcmVuY2UnKTtcbmNvbnN0IGdldFR5cGVTeW1ib2wgPSBTeW1ib2wuZm9yKCdzdGFja3RhcGU6Z2V0VHlwZScpO1xuY29uc3QgZ2V0UHJvcGVydGllc1N5bWJvbCA9IFN5bWJvbC5mb3IoJ3N0YWNrdGFwZTpnZXRQcm9wZXJ0aWVzJyk7XG5jb25zdCBnZXRPdmVycmlkZXNTeW1ib2wgPSBTeW1ib2wuZm9yKCdzdGFja3RhcGU6Z2V0T3ZlcnJpZGVzJyk7XG5jb25zdCBnZXRUcmFuc2Zvcm1zU3ltYm9sID0gU3ltYm9sLmZvcignc3RhY2t0YXBlOmdldFRyYW5zZm9ybXMnKTtcbmNvbnN0IHNldFJlc291cmNlTmFtZVN5bWJvbCA9IFN5bWJvbC5mb3IoJ3N0YWNrdGFwZTpzZXRSZXNvdXJjZU5hbWUnKTtcbmNvbnN0IHJlc291cmNlUGFyYW1SZWZTeW1ib2wgPSBTeW1ib2wuZm9yKCdzdGFja3RhcGU6aXNSZXNvdXJjZVBhcmFtUmVmJyk7XG5jb25zdCBiYXNlVHlwZVByb3BlcnRpZXNTeW1ib2wgPSBTeW1ib2wuZm9yKCdzdGFja3RhcGU6aXNCYXNlVHlwZVByb3BlcnRpZXMnKTtcbmNvbnN0IGFsYXJtU3ltYm9sID0gU3ltYm9sLmZvcignc3RhY2t0YXBlOmlzQWxhcm0nKTtcblxuLy8gRHVjay10eXBlIGNoZWNrZXJzIC0gdXNlIHN5bWJvbHMgaW5zdGVhZCBvZiBpbnN0YW5jZW9mIGZvciBjcm9zcy1tb2R1bGUgY29tcGF0aWJpbGl0eVxuY29uc3QgaXNCYXNlUmVzb3VyY2UgPSAodmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBCYXNlUmVzb3VyY2UgPT5cbiAgdmFsdWUgIT09IG51bGwgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiBzZXRSZXNvdXJjZU5hbWVTeW1ib2wgaW4gdmFsdWU7XG5cbmNvbnN0IGlzQmFzZVR5cGVQcm9wZXJ0aWVzID0gKHZhbHVlOiB1bmtub3duKTogdmFsdWUgaXMgQmFzZVR5cGVQcm9wZXJ0aWVzID0+XG4gIHZhbHVlICE9PSBudWxsICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgYmFzZVR5cGVQcm9wZXJ0aWVzU3ltYm9sIGluIHZhbHVlO1xuXG5jb25zdCBpc0FsYXJtID0gKHZhbHVlOiB1bmtub3duKTogdmFsdWUgaXMgQWxhcm0gPT4gdmFsdWUgIT09IG51bGwgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiBhbGFybVN5bWJvbCBpbiB2YWx1ZTtcblxuY29uc3QgaXNSZXNvdXJjZVBhcmFtUmVmZXJlbmNlID0gKHZhbHVlOiB1bmtub3duKTogdmFsdWUgaXMgUmVzb3VyY2VQYXJhbVJlZmVyZW5jZSA9PlxuICB2YWx1ZSAhPT0gbnVsbCAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIHJlc291cmNlUGFyYW1SZWZTeW1ib2wgaW4gdmFsdWU7XG5cbmNvbnN0IGRlZmVycmVkTmFtZVN5bWJvbCA9IFN5bWJvbC5mb3IoJ3N0YWNrdGFwZTppc0RlZmVycmVkUmVzb3VyY2VOYW1lJyk7XG5cbmNvbnN0IGlzRGVmZXJyZWRSZXNvdXJjZU5hbWUgPSAodmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBEZWZlcnJlZFJlc291cmNlTmFtZSA9PlxuICB2YWx1ZSAhPT0gbnVsbCAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIGRlZmVycmVkTmFtZVN5bWJvbCBpbiB2YWx1ZTtcblxuLyoqXG4gKiBBIGRlZmVycmVkIHJlZmVyZW5jZSB0byBhIHJlc291cmNlJ3MgbmFtZS5cbiAqIFVzZWQgd2hlbiBhY2Nlc3NpbmcgcmVzb3VyY2VOYW1lIGJlZm9yZSB0aGUgbmFtZSBpcyBzZXQuXG4gKiBSZXNvbHZlcyBsYXppbHkgZHVyaW5nIHRyYW5zZm9ybWF0aW9uLlxuICovXG5jbGFzcyBEZWZlcnJlZFJlc291cmNlTmFtZSB7XG4gIHByaXZhdGUgX19yZXNvdXJjZTogQmFzZVJlc291cmNlO1xuICByZWFkb25seSBbZGVmZXJyZWROYW1lU3ltYm9sXSA9IHRydWU7XG5cbiAgY29uc3RydWN0b3IocmVzb3VyY2U6IEJhc2VSZXNvdXJjZSkge1xuICAgIHRoaXMuX19yZXNvdXJjZSA9IHJlc291cmNlO1xuICB9XG5cbiAgcmVzb2x2ZSgpOiBzdHJpbmcge1xuICAgIC8vIEF0IHJlc29sdXRpb24gdGltZSwgdGhlIG5hbWUgc2hvdWxkIGJlIHNldFxuICAgIGNvbnN0IG5hbWUgPSAodGhpcy5fX3Jlc291cmNlIGFzIGFueSkuX3Jlc291cmNlTmFtZTtcbiAgICBpZiAobmFtZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdSZXNvdXJjZSBuYW1lIG5vdCBzZXQuIE1ha2Ugc3VyZSB0byBhZGQgdGhlIHJlc291cmNlIHRvIHRoZSByZXNvdXJjZXMgb2JqZWN0IGluIHlvdXIgY29uZmlnLiAnICtcbiAgICAgICAgICAnVGhlIHJlc291cmNlIG5hbWUgaXMgYXV0b21hdGljYWxseSBkZXJpdmVkIGZyb20gdGhlIG9iamVjdCBrZXkuJ1xuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIG5hbWU7XG4gIH1cblxuICB0b1N0cmluZygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnJlc29sdmUoKTtcbiAgfVxuXG4gIHRvSlNPTigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnJlc29sdmUoKTtcbiAgfVxuXG4gIHZhbHVlT2YoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5yZXNvbHZlKCk7XG4gIH1cbn1cblxuLyoqXG4gKiBBIHJlZmVyZW5jZSB0byBhIHJlc291cmNlIHBhcmFtZXRlciB0aGF0IHdpbGwgYmUgcmVzb2x2ZWQgYXQgcnVudGltZS5cbiAqIFN0b3JlcyBhIHJlZmVyZW5jZSB0byB0aGUgcmVzb3VyY2UgZm9yIGxhenkgbmFtZSByZXNvbHV0aW9uLlxuICovXG5leHBvcnQgY2xhc3MgUmVzb3VyY2VQYXJhbVJlZmVyZW5jZSB7XG4gIHByaXZhdGUgX19yZXNvdXJjZTogQmFzZVJlc291cmNlO1xuICBwcml2YXRlIF9fcGFyYW06IHN0cmluZztcbiAgcmVhZG9ubHkgW3Jlc291cmNlUGFyYW1SZWZTeW1ib2xdID0gdHJ1ZTtcblxuICBjb25zdHJ1Y3RvcihyZXNvdXJjZTogQmFzZVJlc291cmNlLCBwYXJhbTogc3RyaW5nKSB7XG4gICAgdGhpcy5fX3Jlc291cmNlID0gcmVzb3VyY2U7XG4gICAgdGhpcy5fX3BhcmFtID0gcGFyYW07XG4gIH1cblxuICB0b1N0cmluZygpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJFJlc291cmNlUGFyYW0oJyR7dGhpcy5fX3Jlc291cmNlLnJlc291cmNlTmFtZX0nLCAnJHt0aGlzLl9fcGFyYW19JylgO1xuICB9XG5cbiAgdG9KU09OKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudG9TdHJpbmcoKTtcbiAgfVxuXG4gIC8vIEFsbG93IHRoZSByZWZlcmVuY2UgdG8gYmUgdXNlZCBkaXJlY3RseSBpbiB0ZW1wbGF0ZSBzdHJpbmdzXG4gIHZhbHVlT2YoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy50b1N0cmluZygpO1xuICB9XG59XG5cbi8qKlxuICogQmFzZSBjbGFzcyBmb3IgdHlwZS9wcm9wZXJ0aWVzIHN0cnVjdHVyZXMgKGVuZ2luZXMsIHBhY2thZ2luZywgZXZlbnRzLCBldGMuKVxuICovXG5leHBvcnQgY2xhc3MgQmFzZVR5cGVQcm9wZXJ0aWVzIHtcbiAgcHVibGljIHJlYWRvbmx5IHR5cGU6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IHByb3BlcnRpZXM6IGFueTtcbiAgcmVhZG9ubHkgW2Jhc2VUeXBlUHJvcGVydGllc1N5bWJvbF0gPSB0cnVlO1xuXG4gIGNvbnN0cnVjdG9yKHR5cGU6IHN0cmluZywgcHJvcGVydGllczogYW55KSB7XG4gICAgdGhpcy50eXBlID0gdHlwZTtcbiAgICB0aGlzLnByb3BlcnRpZXMgPSBwcm9wZXJ0aWVzO1xuICB9XG59XG5cbi8qKlxuICogQmFzZSBjbGFzcyBmb3IgdHlwZS1vbmx5IHN0cnVjdHVyZXMgKG5vIHByb3BlcnRpZXMgZmllbGQsIGp1c3QgdHlwZSBkaXNjcmltaW5hdG9yKVxuICovXG5leHBvcnQgY2xhc3MgQmFzZVR5cGVPbmx5IHtcbiAgcHVibGljIHJlYWRvbmx5IHR5cGU6IHN0cmluZztcbiAgcmVhZG9ubHkgW2Jhc2VUeXBlUHJvcGVydGllc1N5bWJvbF0gPSB0cnVlO1xuXG4gIGNvbnN0cnVjdG9yKHR5cGU6IHN0cmluZykge1xuICAgIHRoaXMudHlwZSA9IHR5cGU7XG4gIH1cbn1cblxuLyoqXG4gKiBEZWZpbmVzIGEgQ2xvdWRXYXRjaCBhbGFybSB0aGF0IG1vbml0b3JzIGEgbWV0cmljIGFuZCB0cmlnZ2VycyBub3RpZmljYXRpb25zIHdoZW4gdGhyZXNob2xkcyBhcmUgYnJlYWNoZWQuXG4gKlxuICogQWxhcm1zIGNhbiBiZSBhdHRhY2hlZCB0byByZXNvdXJjZXMgbGlrZSBMYW1iZGEgZnVuY3Rpb25zLCBkYXRhYmFzZXMsIGxvYWQgYmFsYW5jZXJzLCBTUVMgcXVldWVzLCBhbmQgSFRUUCBBUEkgR2F0ZXdheXMuXG4gKiBXaGVuIHRoZSBhbGFybSBjb25kaXRpb24gaXMgbWV0IChlLmcuLCBlcnJvciByYXRlIGV4Y2VlZHMgNSUpLCBub3RpZmljYXRpb25zIGFyZSBzZW50IHRvIGNvbmZpZ3VyZWQgdGFyZ2V0cyAoU2xhY2ssIGVtYWlsLCBNUyBUZWFtcykuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzXG4gKiBuZXcgQWxhcm0oe1xuICogICB0cmlnZ2VyOiBuZXcgTGFtYmRhRXJyb3JSYXRlVHJpZ2dlcih7IHRocmVzaG9sZFBlcmNlbnQ6IDUgfSksXG4gKiAgIGV2YWx1YXRpb246IHsgcGVyaW9kOiA2MCwgZXZhbHVhdGlvblBlcmlvZHM6IDMsIGJyZWFjaGVkUGVyaW9kczogMiB9LFxuICogICBub3RpZmljYXRpb25UYXJnZXRzOiBbeyBzbGFjazogeyB1cmw6ICRTZWNyZXQoJ3NsYWNrLXdlYmhvb2stdXJsJykgfSB9XSxcbiAqICAgZGVzY3JpcHRpb246ICdMYW1iZGEgZXJyb3IgcmF0ZSBleGNlZWRlZCA1JSdcbiAqIH0pXG4gKiBgYGBcbiAqL1xuZXhwb3J0IGNsYXNzIEFsYXJtIHtcbiAgcmVhZG9ubHkgW2FsYXJtU3ltYm9sXSA9IHRydWU7XG4gIHB1YmxpYyByZWFkb25seSB0cmlnZ2VyOiBhbnk7XG4gIHB1YmxpYyByZWFkb25seSBldmFsdWF0aW9uPzogYW55O1xuICBwdWJsaWMgcmVhZG9ubHkgbm90aWZpY2F0aW9uVGFyZ2V0cz86IGFueVtdO1xuICBwdWJsaWMgcmVhZG9ubHkgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IocHJvcHM6IHsgdHJpZ2dlcjogYW55OyBldmFsdWF0aW9uPzogYW55OyBub3RpZmljYXRpb25UYXJnZXRzPzogYW55W107IGRlc2NyaXB0aW9uPzogc3RyaW5nIH0pIHtcbiAgICB0aGlzLnRyaWdnZXIgPSBwcm9wcy50cmlnZ2VyO1xuICAgIHRoaXMuZXZhbHVhdGlvbiA9IHByb3BzLmV2YWx1YXRpb247XG4gICAgdGhpcy5ub3RpZmljYXRpb25UYXJnZXRzID0gcHJvcHMubm90aWZpY2F0aW9uVGFyZ2V0cztcbiAgICB0aGlzLmRlc2NyaXB0aW9uID0gcHJvcHMuZGVzY3JpcHRpb247XG4gIH1cbn1cblxuLyoqXG4gKiBCYXNlIHJlc291cmNlIGNsYXNzIHRoYXQgcHJvdmlkZXMgY29tbW9uIGZ1bmN0aW9uYWxpdHlcbiAqL1xuZXhwb3J0IGNsYXNzIEJhc2VSZXNvdXJjZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3R5cGU6IHN0cmluZztcbiAgcHJpdmF0ZSBfcHJvcGVydGllczogYW55O1xuICBwcml2YXRlIF9vdmVycmlkZXM/OiBhbnk7XG4gIHByaXZhdGUgX3RyYW5zZm9ybXM/OiBhbnk7XG4gIHByaXZhdGUgX3Jlc291cmNlTmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIF9leHBsaWNpdE5hbWU6IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IobmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkLCB0eXBlOiBzdHJpbmcsIHByb3BlcnRpZXM6IGFueSwgb3ZlcnJpZGVzPzogYW55KSB7XG4gICAgdGhpcy5fcmVzb3VyY2VOYW1lID0gbmFtZTtcbiAgICB0aGlzLl9leHBsaWNpdE5hbWUgPSBuYW1lICE9PSB1bmRlZmluZWQ7XG4gICAgdGhpcy5fdHlwZSA9IHR5cGU7XG5cbiAgICAvLyBTdG9yZSBwcm9wZXJ0aWVzIGFuZCBvdmVycmlkZXMgaW5pdGlhbGx5IC0gdGhleSdsbCBiZSBwcm9jZXNzZWQgd2hlbiBuYW1lIGlzIHNldFxuICAgIHRoaXMuX3Byb3BlcnRpZXMgPSBwcm9wZXJ0aWVzO1xuICAgIHRoaXMuX292ZXJyaWRlcyA9IG92ZXJyaWRlcztcblxuICAgIC8vIElmIG5hbWUgaXMgYWxyZWFkeSBzZXQsIHByb2Nlc3Mgb3ZlcnJpZGVzIGFuZCB0cmFuc2Zvcm1zIG5vd1xuICAgIGlmIChuYW1lICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuX3Byb2Nlc3NPdmVycmlkZXNBbmRUcmFuc2Zvcm1zKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFByb2Nlc3Mgb3ZlcnJpZGVzIGFuZCB0cmFuc2Zvcm1zIGV4dHJhY3Rpb24gZnJvbSBwcm9wZXJ0aWVzLlxuICAgKiBDYWxsZWQgd2hlbiB0aGUgcmVzb3VyY2UgbmFtZSBpcyBhdmFpbGFibGUuXG4gICAqL1xuICBwcml2YXRlIF9wcm9jZXNzT3ZlcnJpZGVzQW5kVHJhbnNmb3JtcygpOiB2b2lkIHtcbiAgICBjb25zdCBwcm9wZXJ0aWVzID0gdGhpcy5fcHJvcGVydGllcztcbiAgICBpZiAocHJvcGVydGllcyAmJiB0eXBlb2YgcHJvcGVydGllcyA9PT0gJ29iamVjdCcpIHtcbiAgICAgIC8vIENsb25lIHByb3BlcnRpZXMgd2l0aG91dCBvdmVycmlkZXMgYW5kIHRyYW5zZm9ybXNcbiAgICAgIGNvbnN0IGZpbmFsUHJvcGVydGllcyA9IHsgLi4ucHJvcGVydGllcyB9O1xuXG4gICAgICAvLyBIYW5kbGUgb3ZlcnJpZGVzIGZyb20gcHJvcGVydGllcyAoaWYgdGhleSB3ZXJlbid0IGV4dHJhY3RlZCBieSBjaGlsZCBjbGFzcylcbiAgICAgIGlmICgnb3ZlcnJpZGVzJyBpbiBmaW5hbFByb3BlcnRpZXMpIHtcbiAgICAgICAgY29uc3QgcHJvcGVydGllc092ZXJyaWRlcyA9IGZpbmFsUHJvcGVydGllcy5vdmVycmlkZXM7XG4gICAgICAgIGRlbGV0ZSBmaW5hbFByb3BlcnRpZXMub3ZlcnJpZGVzO1xuXG4gICAgICAgIC8vIFRyYW5zZm9ybSBvdmVycmlkZXMgdXNpbmcgY2ZMb2dpY2FsTmFtZXNcbiAgICAgICAgaWYgKHByb3BlcnRpZXNPdmVycmlkZXMgJiYgdHlwZW9mIHByb3BlcnRpZXNPdmVycmlkZXMgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgdGhpcy5fb3ZlcnJpZGVzID0gdHJhbnNmb3JtT3ZlcnJpZGVzVG9Mb2dpY2FsTmFtZXModGhpcy5fcmVzb3VyY2VOYW1lISwgdGhpcy5fdHlwZSwgcHJvcGVydGllc092ZXJyaWRlcyk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gSGFuZGxlIHRyYW5zZm9ybXMgZnJvbSBwcm9wZXJ0aWVzIChpZiB0aGV5IHdlcmVuJ3QgZXh0cmFjdGVkIGJ5IGNoaWxkIGNsYXNzKVxuICAgICAgaWYgKCd0cmFuc2Zvcm1zJyBpbiBmaW5hbFByb3BlcnRpZXMpIHtcbiAgICAgICAgY29uc3QgcHJvcGVydGllc1RyYW5zZm9ybXMgPSBmaW5hbFByb3BlcnRpZXMudHJhbnNmb3JtcztcbiAgICAgICAgZGVsZXRlIGZpbmFsUHJvcGVydGllcy50cmFuc2Zvcm1zO1xuXG4gICAgICAgIC8vIFRyYW5zZm9ybSB0cmFuc2Zvcm1zIHVzaW5nIGNmTG9naWNhbE5hbWVzIChzYW1lIG1hcHBpbmcgYXMgb3ZlcnJpZGVzKVxuICAgICAgICBpZiAocHJvcGVydGllc1RyYW5zZm9ybXMgJiYgdHlwZW9mIHByb3BlcnRpZXNUcmFuc2Zvcm1zID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgIHRoaXMuX3RyYW5zZm9ybXMgPSB0cmFuc2Zvcm1UcmFuc2Zvcm1zVG9Mb2dpY2FsTmFtZXModGhpcy5fcmVzb3VyY2VOYW1lISwgdGhpcy5fdHlwZSwgcHJvcGVydGllc1RyYW5zZm9ybXMpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHRoaXMuX3Byb3BlcnRpZXMgPSBmaW5hbFByb3BlcnRpZXM7XG4gICAgfVxuXG4gICAgLy8gQWxzbyB0cmFuc2Zvcm0gb3ZlcnJpZGVzL3RyYW5zZm9ybXMgdGhhdCB3ZXJlIHBhc3NlZCBkaXJlY3RseSB2aWEgY29uc3RydWN0b3JcbiAgICAvLyAod2hlbiBjaGlsZCBjbGFzcyBleHRyYWN0cyB0aGVtIGJlZm9yZSBjYWxsaW5nIHN1cGVyKVxuICAgIGlmICh0aGlzLl9vdmVycmlkZXMgJiYgdHlwZW9mIHRoaXMuX292ZXJyaWRlcyA9PT0gJ29iamVjdCcpIHtcbiAgICAgIHRoaXMuX292ZXJyaWRlcyA9IHRyYW5zZm9ybU92ZXJyaWRlc1RvTG9naWNhbE5hbWVzKHRoaXMuX3Jlc291cmNlTmFtZSEsIHRoaXMuX3R5cGUsIHRoaXMuX292ZXJyaWRlcyk7XG4gICAgfVxuICAgIGlmICh0aGlzLl90cmFuc2Zvcm1zICYmIHR5cGVvZiB0aGlzLl90cmFuc2Zvcm1zID09PSAnb2JqZWN0Jykge1xuICAgICAgdGhpcy5fdHJhbnNmb3JtcyA9IHRyYW5zZm9ybVRyYW5zZm9ybXNUb0xvZ2ljYWxOYW1lcyh0aGlzLl9yZXNvdXJjZU5hbWUhLCB0aGlzLl90eXBlLCB0aGlzLl90cmFuc2Zvcm1zKTtcbiAgICB9XG4gIH1cblxuICAvLyBQdWJsaWMgZ2V0dGVyIGZvciByZXNvdXJjZSBuYW1lICh1c2VkIGZvciByZWZlcmVuY2luZyByZXNvdXJjZXMpXG4gIC8vIFJldHVybnMgYSBkZWZlcnJlZCByZWZlcmVuY2Ugd2hlbiBuYW1lIGlzbid0IHNldCB5ZXQsIHdoaWNoIHJlc29sdmVzIGR1cmluZyB0cmFuc2Zvcm1hdGlvblxuICBnZXQgcmVzb3VyY2VOYW1lKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuX3Jlc291cmNlTmFtZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAvLyBSZXR1cm4gYSBkZWZlcnJlZCByZWZlcmVuY2UgdGhhdCB3aWxsIHJlc29sdmUgZHVyaW5nIHRyYW5zZm9ybWF0aW9uXG4gICAgICAvLyBUeXBlU2NyaXB0IHNlZXMgdGhpcyBhcyBzdHJpbmcgZHVlIHRvIHRvU3RyaW5nL3ZhbHVlT2YsIHJ1bnRpbWUgcmVzb2x2ZXMgbGF6aWx5XG4gICAgICByZXR1cm4gbmV3IERlZmVycmVkUmVzb3VyY2VOYW1lKHRoaXMpIGFzIHVua25vd24gYXMgc3RyaW5nO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fcmVzb3VyY2VOYW1lO1xuICB9XG5cbiAgLyoqXG4gICAqIEludGVybmFsIG1ldGhvZCB0byBzZXQgdGhlIHJlc291cmNlIG5hbWUgZnJvbSB0aGUgb2JqZWN0IGtleS5cbiAgICogQ2FsbGVkIGJ5IHRyYW5zZm9ybUNvbmZpZ1dpdGhSZXNvdXJjZXMuXG4gICAqL1xuICBbc2V0UmVzb3VyY2VOYW1lU3ltYm9sXShuYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fZXhwbGljaXROYW1lICYmIHRoaXMuX3Jlc291cmNlTmFtZSAhPT0gbmFtZSkge1xuICAgICAgLy8gSWYgYW4gZXhwbGljaXQgbmFtZSB3YXMgcHJvdmlkZWQgYW5kIGl0IGRpZmZlcnMgZnJvbSB0aGUga2V5LCB1c2UgdGhlIGV4cGxpY2l0IG5hbWVcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHRoaXMuX3Jlc291cmNlTmFtZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLl9yZXNvdXJjZU5hbWUgPSBuYW1lO1xuICAgICAgLy8gTm93IHRoYXQgd2UgaGF2ZSBhIG5hbWUsIHByb2Nlc3Mgb3ZlcnJpZGVzIGFuZCB0cmFuc2Zvcm1zXG4gICAgICB0aGlzLl9wcm9jZXNzT3ZlcnJpZGVzQW5kVHJhbnNmb3JtcygpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFByaXZhdGUgbWV0aG9kcyB1c2luZyBzeW1ib2xzIC0gbm90IGFjY2Vzc2libGUgZnJvbSBvdXRzaWRlIG9yIGluIGF1dG9jb21wbGV0ZVxuICBbZ2V0UGFyYW1SZWZlcmVuY2VTeW1ib2xdKHBhcmFtTmFtZTogc3RyaW5nKTogUmVzb3VyY2VQYXJhbVJlZmVyZW5jZSB7XG4gICAgcmV0dXJuIG5ldyBSZXNvdXJjZVBhcmFtUmVmZXJlbmNlKHRoaXMsIHBhcmFtTmFtZSk7XG4gIH1cblxuICBbZ2V0VHlwZVN5bWJvbF0oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fdHlwZTtcbiAgfVxuXG4gIFtnZXRQcm9wZXJ0aWVzU3ltYm9sXSgpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLl9wcm9wZXJ0aWVzO1xuICB9XG5cbiAgW2dldE92ZXJyaWRlc1N5bWJvbF0oKTogYW55IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fb3ZlcnJpZGVzO1xuICB9XG5cbiAgW2dldFRyYW5zZm9ybXNTeW1ib2xdKCk6IGFueSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX3RyYW5zZm9ybXM7XG4gIH1cbn1cblxuLyoqXG4gKiBGbGF0dGVuIG5lc3RlZCBvYmplY3RzIGludG8gZG90LW5vdGF0aW9uIHBhdGhzLlxuICogRS5nLiwgeyBTbXNDb25maWd1cmF0aW9uOiB7IEV4dGVybmFsSWQ6ICd2YWx1ZScgfSB9IGJlY29tZXMgeyAnU21zQ29uZmlndXJhdGlvbi5FeHRlcm5hbElkJzogJ3ZhbHVlJyB9XG4gKiBQcmVzZXJ2ZXMgYXJyYXlzIGFuZCBub24tcGxhaW4gb2JqZWN0cyBhcyBsZWFmIHZhbHVlcy5cbiAqL1xuZnVuY3Rpb24gZmxhdHRlblRvRG90Tm90YXRpb24ob2JqOiBhbnksIHByZWZpeCA9ICcnKTogUmVjb3JkPHN0cmluZywgYW55PiB7XG4gIGNvbnN0IHJlc3VsdDogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9O1xuXG4gIGZvciAoY29uc3Qga2V5IGluIG9iaikge1xuICAgIGNvbnN0IHZhbHVlID0gb2JqW2tleV07XG4gICAgY29uc3QgbmV3S2V5ID0gcHJlZml4ID8gYCR7cHJlZml4fS4ke2tleX1gIDoga2V5O1xuXG4gICAgLy8gQ2hlY2sgaWYgdmFsdWUgaXMgYSBwbGFpbiBvYmplY3QgKG5vdCBhcnJheSwgbm90IG51bGwsIG5vdCBzcGVjaWFsIHR5cGVzKVxuICAgIGlmICh2YWx1ZSAhPT0gbnVsbCAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmICFBcnJheS5pc0FycmF5KHZhbHVlKSAmJiB2YWx1ZS5jb25zdHJ1Y3RvciA9PT0gT2JqZWN0KSB7XG4gICAgICAvLyBSZWN1cnNpdmVseSBmbGF0dGVuIG5lc3RlZCBvYmplY3RzXG4gICAgICBPYmplY3QuYXNzaWduKHJlc3VsdCwgZmxhdHRlblRvRG90Tm90YXRpb24odmFsdWUsIG5ld0tleSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBMZWFmIHZhbHVlIC0ga2VlcCBhcyBpc1xuICAgICAgcmVzdWx0W25ld0tleV0gPSB2YWx1ZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufVxuXG4vKipcbiAqIFRyYW5zZm9ybSB1c2VyLWZyaWVuZGx5IG92ZXJyaWRlcyAod2l0aCBwcm9wZXJ0eSBuYW1lcyBsaWtlICdidWNrZXQnLCAnbGFtYmRhTG9nR3JvdXAnKVxuICogdG8gQ2xvdWRGb3JtYXRpb24gbG9naWNhbCBuYW1lcyB1c2luZyBjZkxvZ2ljYWxOYW1lc1xuICovXG5mdW5jdGlvbiB0cmFuc2Zvcm1PdmVycmlkZXNUb0xvZ2ljYWxOYW1lcyhyZXNvdXJjZU5hbWU6IHN0cmluZywgcmVzb3VyY2VUeXBlOiBzdHJpbmcsIG92ZXJyaWRlczogYW55KTogYW55IHtcbiAgLy8gR2V0IGNoaWxkIHJlc291cmNlcyBmb3IgdGhpcyByZXNvdXJjZSB0eXBlXG4gIGNvbnN0IGNoaWxkUmVzb3VyY2VzID0gQ0hJTERfUkVTT1VSQ0VTW3Jlc291cmNlVHlwZV0gfHwgW107XG5cbiAgLy8gQnVpbGQgYSBtYXAgb2YgcHJvcGVydHkgbmFtZXMgdG8gY2hpbGQgcmVzb3VyY2VzXG4gIGNvbnN0IHByb3BlcnR5TmFtZU1hcCA9IG5ldyBNYXA8c3RyaW5nLCBhbnk+KCk7XG5cbiAgZm9yIChjb25zdCBjaGlsZFJlc291cmNlIG9mIGNoaWxkUmVzb3VyY2VzKSB7XG4gICAgLy8gVGhlIGxvZ2ljYWxOYW1lIGZ1bmN0aW9uIGhhcyBhIG5hbWUgcHJvcGVydHkgdGhhdCBtYXRjaGVzIHRoZSBwcm9wZXJ0eSBuYW1lXG4gICAgaWYgKGNoaWxkUmVzb3VyY2UubG9naWNhbE5hbWUgJiYgY2hpbGRSZXNvdXJjZS5sb2dpY2FsTmFtZS5uYW1lKSB7XG4gICAgICBwcm9wZXJ0eU5hbWVNYXAuc2V0KGNoaWxkUmVzb3VyY2UubG9naWNhbE5hbWUubmFtZSwgY2hpbGRSZXNvdXJjZSk7XG4gICAgfVxuICB9XG5cbiAgLy8gVHJhbnNmb3JtIG92ZXJyaWRlcyBvYmplY3RcbiAgY29uc3QgdHJhbnNmb3JtZWRPdmVycmlkZXM6IGFueSA9IHt9O1xuICBjb25zdCBlcnJvck1lc3NhZ2UgPSBgT3ZlcnJpZGUgb2YgcHJvcGVydHkge3Byb3BlcnR5TmFtZX0gb2YgcmVzb3VyY2UgJHtyZXNvdXJjZU5hbWV9IGlzIG5vdCBzdXBwb3J0ZWQuXFxuXG5SZW1vdmUgdGhlIG92ZXJyaWRlLCBydW4gJ3N0YWNrdGFwZSBjb21waWxlOnRlbXBsYXRlJyBjb21tYW5kLCBhbmQgZmluZCB0aGUgbG9naWNhbCBuYW1lIG9mIHRoZSByZXNvdXJjZSB5b3Ugd2FudCB0byBvdmVycmlkZSBtYW51YWxseS4gVGhlbiBhZGQgaXQgdG8gdGhlIG92ZXJyaWRlcyBvYmplY3QuYDtcblxuICBmb3IgKGNvbnN0IHByb3BlcnR5TmFtZSBpbiBvdmVycmlkZXMpIHtcbiAgICBjb25zdCBjaGlsZFJlc291cmNlID0gcHJvcGVydHlOYW1lTWFwLmdldChwcm9wZXJ0eU5hbWUpO1xuXG4gICAgLy8gU2tpcCB1bnJlc29sdmFibGUgcmVzb3VyY2VzXG4gICAgaWYgKGNoaWxkUmVzb3VyY2U/LnVucmVzb2x2YWJsZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGVycm9yTWVzc2FnZS5yZXBsYWNlKCd7cHJvcGVydHlOYW1lfScsIHByb3BlcnR5TmFtZSkpO1xuICAgIH1cblxuICAgIGlmIChjaGlsZFJlc291cmNlKSB7XG4gICAgICBjb25zdCBsb2dpY2FsTmFtZUZuID0gY2hpbGRSZXNvdXJjZS5sb2dpY2FsTmFtZTtcbiAgICAgIC8vIENhbGwgdGhlIGNmTG9naWNhbE5hbWVzIGZ1bmN0aW9uIHRvIGdldCB0aGUgYWN0dWFsIENsb3VkRm9ybWF0aW9uIGxvZ2ljYWwgbmFtZVxuICAgICAgLy8gVHJ5IHdpdGggcmVzb3VyY2VOYW1lIGZpcnN0IChtb3N0IGNvbW1vbiksIHRoZW4gdHJ5IHdpdGhvdXQgYXJndW1lbnRzXG4gICAgICBsZXQgbG9naWNhbE5hbWU6IHN0cmluZztcbiAgICAgIHRyeSB7XG4gICAgICAgIGxvZ2ljYWxOYW1lID0gbG9naWNhbE5hbWVGbihyZXNvdXJjZU5hbWUpO1xuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgbG9naWNhbE5hbWUgPSBsb2dpY2FsTmFtZUZuKCk7XG4gICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgIC8vIElmIGJvdGggZmFpbCwgdXNlIHByb3BlcnR5IG5hbWUgYXMtaXNcbiAgICAgICAgICBsb2dpY2FsTmFtZSA9IHByb3BlcnR5TmFtZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKGxvZ2ljYWxOYW1lLmluY2x1ZGVzKCd1bmRlZmluZWQnKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoZXJyb3JNZXNzYWdlLnJlcGxhY2UoJ3twcm9wZXJ0eU5hbWV9JywgcHJvcGVydHlOYW1lKSk7XG4gICAgICB9XG4gICAgICAvLyBXaGVuIHVzaW5nIFNESyBwcm9wZXJ0eSBuYW1lcywgZmxhdHRlbiBuZXN0ZWQgb2JqZWN0cyB0byBkb3Qtbm90YXRpb25cbiAgICAgIC8vIHNvIHsgU21zQ29uZmlndXJhdGlvbjogeyBFeHRlcm5hbElkOiAneCcgfSB9IGJlY29tZXMgeyAnU21zQ29uZmlndXJhdGlvbi5FeHRlcm5hbElkJzogJ3gnIH1cbiAgICAgIGNvbnN0IG92ZXJyaWRlVmFsdWUgPSBvdmVycmlkZXNbcHJvcGVydHlOYW1lXTtcbiAgICAgIGlmICghdHJhbnNmb3JtZWRPdmVycmlkZXNbbG9naWNhbE5hbWVdKSB7XG4gICAgICAgIHRyYW5zZm9ybWVkT3ZlcnJpZGVzW2xvZ2ljYWxOYW1lXSA9IHt9O1xuICAgICAgfVxuICAgICAgT2JqZWN0LmFzc2lnbih0cmFuc2Zvcm1lZE92ZXJyaWRlc1tsb2dpY2FsTmFtZV0sIGZsYXR0ZW5Ub0RvdE5vdGF0aW9uKG92ZXJyaWRlVmFsdWUpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gSWYgbm90IGZvdW5kIGluIG1hcCwgdXNlIHByb3BlcnR5IG5hbWUgYXMtaXMgKENGIGxvZ2ljYWwgbmFtZSB1c2VkIGRpcmVjdGx5KVxuICAgICAgLy8gRG9uJ3QgZmxhdHRlbiAtIHVzZXIgaXMgdXNpbmcgQ0YgbG9naWNhbCBuYW1lcyBhbmQgbWF5IHdhbnQgZnVsbCBvYmplY3QgcmVwbGFjZW1lbnRcbiAgICAgIHRyYW5zZm9ybWVkT3ZlcnJpZGVzW3Byb3BlcnR5TmFtZV0gPSBvdmVycmlkZXNbcHJvcGVydHlOYW1lXTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdHJhbnNmb3JtZWRPdmVycmlkZXM7XG59XG5cbi8qKlxuICogVHJhbnNmb3JtIHVzZXItZnJpZW5kbHkgdHJhbnNmb3JtcyAod2l0aCBwcm9wZXJ0eSBuYW1lcyBsaWtlICdsYW1iZGEnLCAnbGFtYmRhTG9nR3JvdXAnKVxuICogdG8gQ2xvdWRGb3JtYXRpb24gbG9naWNhbCBuYW1lcyB1c2luZyBjZkxvZ2ljYWxOYW1lc1xuICogU2ltaWxhciB0byBvdmVycmlkZXMgYnV0IHRoZSB2YWx1ZXMgYXJlIGZ1bmN0aW9ucyBpbnN0ZWFkIG9mIG9iamVjdHNcbiAqL1xuZnVuY3Rpb24gdHJhbnNmb3JtVHJhbnNmb3Jtc1RvTG9naWNhbE5hbWVzKHJlc291cmNlTmFtZTogc3RyaW5nLCByZXNvdXJjZVR5cGU6IHN0cmluZywgdHJhbnNmb3JtczogYW55KTogYW55IHtcbiAgLy8gR2V0IGNoaWxkIHJlc291cmNlcyBmb3IgdGhpcyByZXNvdXJjZSB0eXBlXG4gIGNvbnN0IGNoaWxkUmVzb3VyY2VzID0gQ0hJTERfUkVTT1VSQ0VTW3Jlc291cmNlVHlwZV0gfHwgW107XG5cbiAgLy8gQnVpbGQgYSBtYXAgb2YgcHJvcGVydHkgbmFtZXMgdG8gY2hpbGQgcmVzb3VyY2VzXG4gIGNvbnN0IHByb3BlcnR5TmFtZU1hcCA9IG5ldyBNYXA8c3RyaW5nLCBhbnk+KCk7XG5cbiAgZm9yIChjb25zdCBjaGlsZFJlc291cmNlIG9mIGNoaWxkUmVzb3VyY2VzKSB7XG4gICAgLy8gVGhlIGxvZ2ljYWxOYW1lIGZ1bmN0aW9uIGhhcyBhIG5hbWUgcHJvcGVydHkgdGhhdCBtYXRjaGVzIHRoZSBwcm9wZXJ0eSBuYW1lXG4gICAgaWYgKGNoaWxkUmVzb3VyY2UubG9naWNhbE5hbWUgJiYgY2hpbGRSZXNvdXJjZS5sb2dpY2FsTmFtZS5uYW1lKSB7XG4gICAgICBwcm9wZXJ0eU5hbWVNYXAuc2V0KGNoaWxkUmVzb3VyY2UubG9naWNhbE5hbWUubmFtZSwgY2hpbGRSZXNvdXJjZSk7XG4gICAgfVxuICB9XG5cbiAgLy8gVHJhbnNmb3JtIHRyYW5zZm9ybXMgb2JqZWN0XG4gIGNvbnN0IHRyYW5zZm9ybWVkVHJhbnNmb3JtczogYW55ID0ge307XG4gIGNvbnN0IGVycm9yTWVzc2FnZSA9IGBUcmFuc2Zvcm0gb2YgcHJvcGVydHkge3Byb3BlcnR5TmFtZX0gb2YgcmVzb3VyY2UgJHtyZXNvdXJjZU5hbWV9IGlzIG5vdCBzdXBwb3J0ZWQuXFxuXG5SZW1vdmUgdGhlIHRyYW5zZm9ybSwgcnVuICdzdGFja3RhcGUgY29tcGlsZTp0ZW1wbGF0ZScgY29tbWFuZCwgYW5kIGZpbmQgdGhlIGxvZ2ljYWwgbmFtZSBvZiB0aGUgcmVzb3VyY2UgeW91IHdhbnQgdG8gdHJhbnNmb3JtIG1hbnVhbGx5LiBUaGVuIGFkZCBpdCB0byB0aGUgdHJhbnNmb3JtcyBvYmplY3QuYDtcblxuICBmb3IgKGNvbnN0IHByb3BlcnR5TmFtZSBpbiB0cmFuc2Zvcm1zKSB7XG4gICAgY29uc3QgY2hpbGRSZXNvdXJjZSA9IHByb3BlcnR5TmFtZU1hcC5nZXQocHJvcGVydHlOYW1lKTtcblxuICAgIC8vIFNraXAgdW5yZXNvbHZhYmxlIHJlc291cmNlc1xuICAgIGlmIChjaGlsZFJlc291cmNlPy51bnJlc29sdmFibGUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihlcnJvck1lc3NhZ2UucmVwbGFjZSgne3Byb3BlcnR5TmFtZX0nLCBwcm9wZXJ0eU5hbWUpKTtcbiAgICB9XG5cbiAgICBpZiAoY2hpbGRSZXNvdXJjZSkge1xuICAgICAgY29uc3QgbG9naWNhbE5hbWVGbiA9IGNoaWxkUmVzb3VyY2UubG9naWNhbE5hbWU7XG4gICAgICAvLyBDYWxsIHRoZSBjZkxvZ2ljYWxOYW1lcyBmdW5jdGlvbiB0byBnZXQgdGhlIGFjdHVhbCBDbG91ZEZvcm1hdGlvbiBsb2dpY2FsIG5hbWVcbiAgICAgIC8vIFRyeSB3aXRoIHJlc291cmNlTmFtZSBmaXJzdCAobW9zdCBjb21tb24pLCB0aGVuIHRyeSB3aXRob3V0IGFyZ3VtZW50c1xuICAgICAgbGV0IGxvZ2ljYWxOYW1lOiBzdHJpbmc7XG4gICAgICB0cnkge1xuICAgICAgICBsb2dpY2FsTmFtZSA9IGxvZ2ljYWxOYW1lRm4ocmVzb3VyY2VOYW1lKTtcbiAgICAgIH0gY2F0Y2gge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGxvZ2ljYWxOYW1lID0gbG9naWNhbE5hbWVGbigpO1xuICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAvLyBJZiBib3RoIGZhaWwsIHVzZSBwcm9wZXJ0eSBuYW1lIGFzLWlzXG4gICAgICAgICAgbG9naWNhbE5hbWUgPSBwcm9wZXJ0eU5hbWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChsb2dpY2FsTmFtZS5pbmNsdWRlcygndW5kZWZpbmVkJykpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGVycm9yTWVzc2FnZS5yZXBsYWNlKCd7cHJvcGVydHlOYW1lfScsIHByb3BlcnR5TmFtZSkpO1xuICAgICAgfVxuICAgICAgdHJhbnNmb3JtZWRUcmFuc2Zvcm1zW2xvZ2ljYWxOYW1lXSA9IHRyYW5zZm9ybXNbcHJvcGVydHlOYW1lXTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gSWYgbm90IGZvdW5kIGluIG1hcCwgdXNlIHByb3BlcnR5IG5hbWUgYXMtaXMgKHNob3VsZG4ndCBoYXBwZW4gd2l0aCBwcm9wZXIgdHlwZXMpXG4gICAgICB0cmFuc2Zvcm1lZFRyYW5zZm9ybXNbcHJvcGVydHlOYW1lXSA9IHRyYW5zZm9ybXNbcHJvcGVydHlOYW1lXTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdHJhbnNmb3JtZWRUcmFuc2Zvcm1zO1xufVxuXG5leHBvcnQgdHlwZSBHZXRDb25maWdQYXJhbXMgPSB7XG4gIC8qKlxuICAgKiBQcm9qZWN0IG5hbWUgdXNlZCBmb3IgdGhpcyBvcGVyYXRpb25cbiAgICovXG4gIHByb2plY3ROYW1lOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBTdGFnZSAoXCJlbnZpcm9ubWVudFwiKSB1c2VkIGZvciB0aGlzIG9wZXJhdGlvblxuICAgKi9cbiAgc3RhZ2U6IHN0cmluZztcbiAgLyoqXG4gICAqIEFXUyByZWdpb24gdXNlZCBmb3IgdGhpcyBvcGVyYXRpb25cbiAgICogVGhlIGxpc3Qgb2YgYXZhaWxhYmxlIHJlZ2lvbnMgaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3LmF3cy1zZXJ2aWNlcy5pbmZvL3JlZ2lvbnMuaHRtbFxuICAgKi9cbiAgcmVnaW9uOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBMaXN0IG9mIGFyZ3VtZW50cyBwYXNzZWQgdG8gdGhlIG9wZXJhdGlvblxuICAgKi9cbiAgY2xpQXJnczogU3RhY2t0YXBlQXJncztcbiAgLyoqXG4gICAqIFN0YWNrdGFwZSBjb21tYW5kIHVzZWQgdG8gcGVyZm9ybSB0aGlzIG9wZXJhdGlvbiAoY2FuIGJlIGVpdGhlciBkZXBsb3ksIGNvZGVidWlsZDpkZXBsb3ksIGRlbGV0ZSwgZXRjLilcbiAgICovXG4gIGNvbW1hbmQ6IHN0cmluZztcbiAgLyoqXG4gICAqIExvY2FsbHktY29uZmlndXJlZCBBV1MgcHJvZmlsZSB1c2VkIHRvIGV4ZWN1dGUgdGhlIG9wZXJhdGlvbi5cbiAgICogRG9lc24ndCBhcHBseSBpZiB5b3UgaGF2ZSB5b3VyIEFXUyBhY2NvdW50IGNvbm5lY3RlZCBpbiBcImF1dG9tYXRpY1wiIG1vZGUuXG4gICAqL1xuICBhd3NQcm9maWxlOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBJbmZvcm1hdGlvbiBhYm91dCB0aGUgdXNlciBwZXJmb3JtaW5nIHRoZSBzdGFjayBvcGVyYXRpb25cbiAgICovXG4gIHVzZXI6IHtcbiAgICBpZDogc3RyaW5nO1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBlbWFpbDogc3RyaW5nO1xuICB9O1xufTtcblxuLyoqXG4gKiBIZWxwZXIgZnVuY3Rpb24gdG8gZGVmaW5lIGEgY29uZmlnIHdpdGggYXV0b21hdGljIHRyYW5zZm9ybWF0aW9uXG4gKiBVc2UgdGhpcyB3aGVuIGV4cG9ydGluZyB5b3VyIGNvbmZpZyBmb3IgdGhlIFN0YWNrdGFwZSBDTElcbiAqL1xuZXhwb3J0IGNvbnN0IGRlZmluZUNvbmZpZyA9IChjb25maWdGbjogKHBhcmFtczogR2V0Q29uZmlnUGFyYW1zKSA9PiBTdGFja3RhcGVDb25maWcpID0+IHtcbiAgcmV0dXJuIChwYXJhbXM6IEdldENvbmZpZ1BhcmFtcykgPT4ge1xuICAgIGNvbnN0IGNvbmZpZyA9IGNvbmZpZ0ZuKHBhcmFtcyk7XG4gICAgcmV0dXJuIHRyYW5zZm9ybUNvbmZpZ1dpdGhSZXNvdXJjZXMoY29uZmlnKTtcbiAgfTtcbn07XG5cbi8qKlxuICogVHJhbnNmb3JtcyBhIGNvbmZpZyB3aXRoIHJlc291cmNlIGluc3RhbmNlcyBpbnRvIGEgcGxhaW4gY29uZmlnIG9iamVjdFxuICovXG5leHBvcnQgY29uc3QgdHJhbnNmb3JtQ29uZmlnV2l0aFJlc291cmNlcyA9IChjb25maWc6IGFueSk6IGFueSA9PiB7XG4gIGlmICghY29uZmlnIHx8IHR5cGVvZiBjb25maWcgIT09ICdvYmplY3QnKSB7XG4gICAgcmV0dXJuIGNvbmZpZztcbiAgfVxuXG4gIC8vIEZpcnN0IHBhc3M6IHNldCBhbGwgcmVzb3VyY2UgbmFtZXMgZnJvbSBvYmplY3Qga2V5c1xuICAvLyBUaGlzIG11c3QgaGFwcGVuIGJlZm9yZSBhbnkgdHJhbnNmb3JtYXRpb24gc28gdGhhdCBSZXNvdXJjZVBhcmFtUmVmZXJlbmNlcyBjYW4gcmVzb2x2ZSBuYW1lc1xuICBpZiAoY29uZmlnLnJlc291cmNlcyAmJiB0eXBlb2YgY29uZmlnLnJlc291cmNlcyA9PT0gJ29iamVjdCcpIHtcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBjb25maWcucmVzb3VyY2VzKSB7XG4gICAgICBjb25zdCByZXNvdXJjZSA9IGNvbmZpZy5yZXNvdXJjZXNba2V5XTtcbiAgICAgIGlmIChpc0Jhc2VSZXNvdXJjZShyZXNvdXJjZSkpIHtcbiAgICAgICAgKHJlc291cmNlIGFzIGFueSlbc2V0UmVzb3VyY2VOYW1lU3ltYm9sXShrZXkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFNlY29uZCBwYXNzOiB0cmFuc2Zvcm0gdGhlIGNvbmZpZ1xuICBjb25zdCByZXN1bHQ6IGFueSA9IHt9O1xuICBmb3IgKGNvbnN0IGtleSBpbiBjb25maWcpIHtcbiAgICBpZiAoa2V5ID09PSAncmVzb3VyY2VzJykge1xuICAgICAgLy8gUmVzb3VyY2VzIGFyZSB0cmFuc2Zvcm1lZCBhcyBkZWZpbml0aW9uc1xuICAgICAgcmVzdWx0W2tleV0gPSB0cmFuc2Zvcm1SZXNvdXJjZURlZmluaXRpb25zKGNvbmZpZ1trZXldKTtcbiAgICB9IGVsc2UgaWYgKGtleSA9PT0gJ3NjcmlwdHMnKSB7XG4gICAgICAvLyBTY3JpcHRzIGFyZSBhbHNvIHRyYW5zZm9ybWVkIGFzIGRlZmluaXRpb25zXG4gICAgICByZXN1bHRba2V5XSA9IHRyYW5zZm9ybVNjcmlwdERlZmluaXRpb25zKGNvbmZpZ1trZXldKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmVzdWx0W2tleV0gPSB0cmFuc2Zvcm1WYWx1ZShjb25maWdba2V5XSk7XG4gICAgfVxuICB9XG4gIHJldHVybiByZXN1bHQ7XG59O1xuXG4vKipcbiAqIFRyYW5zZm9ybXMgZW52aXJvbm1lbnQgb2JqZWN0IHRvIGFycmF5IGZvcm1hdFxuICovXG5jb25zdCB0cmFuc2Zvcm1FbnZpcm9ubWVudCA9IChlbnY6IGFueSk6IGFueSA9PiB7XG4gIGlmICghZW52IHx8IHR5cGVvZiBlbnYgIT09ICdvYmplY3QnIHx8IEFycmF5LmlzQXJyYXkoZW52KSkge1xuICAgIHJldHVybiBlbnY7XG4gIH1cblxuICAvLyBDb252ZXJ0IHsgS0VZOiB2YWx1ZSB9IHRvIFt7IG5hbWU6ICdLRVknLCB2YWx1ZSB9XVxuICByZXR1cm4gT2JqZWN0LmVudHJpZXMoZW52KS5tYXAoKFtuYW1lLCB2YWx1ZV0pID0+ICh7XG4gICAgbmFtZSxcbiAgICB2YWx1ZTogdHJhbnNmb3JtVmFsdWUodmFsdWUpXG4gIH0pKTtcbn07XG5cbi8qKlxuICogVHJhbnNmb3JtcyByZXNvdXJjZSBkZWZpbml0aW9ucyAodmFsdWVzIGluIHRoZSByZXNvdXJjZXMgb2JqZWN0KVxuICovXG5jb25zdCB0cmFuc2Zvcm1SZXNvdXJjZURlZmluaXRpb25zID0gKHJlc291cmNlczogYW55KTogYW55ID0+IHtcbiAgaWYgKCFyZXNvdXJjZXMgfHwgdHlwZW9mIHJlc291cmNlcyAhPT0gJ29iamVjdCcpIHtcbiAgICByZXR1cm4gcmVzb3VyY2VzO1xuICB9XG5cbiAgY29uc3QgcmVzdWx0OiBhbnkgPSB7fTtcbiAgZm9yIChjb25zdCBrZXkgaW4gcmVzb3VyY2VzKSB7XG4gICAgY29uc3QgcmVzb3VyY2UgPSByZXNvdXJjZXNba2V5XTtcbiAgICBpZiAoaXNCYXNlUmVzb3VyY2UocmVzb3VyY2UpKSB7XG4gICAgICBjb25zdCB0eXBlID0gKHJlc291cmNlIGFzIGFueSlbZ2V0VHlwZVN5bWJvbF0oKTtcbiAgICAgIGNvbnN0IHByb3BlcnRpZXMgPSAocmVzb3VyY2UgYXMgYW55KVtnZXRQcm9wZXJ0aWVzU3ltYm9sXSgpO1xuICAgICAgY29uc3Qgb3ZlcnJpZGVzID0gKHJlc291cmNlIGFzIGFueSlbZ2V0T3ZlcnJpZGVzU3ltYm9sXSgpO1xuICAgICAgY29uc3QgdHJhbnNmb3JtcyA9IChyZXNvdXJjZSBhcyBhbnkpW2dldFRyYW5zZm9ybXNTeW1ib2xdKCk7XG4gICAgICByZXN1bHRba2V5XSA9IHtcbiAgICAgICAgdHlwZSxcbiAgICAgICAgcHJvcGVydGllczogdHJhbnNmb3JtVmFsdWUocHJvcGVydGllcyksXG4gICAgICAgIC4uLihvdmVycmlkZXMgIT09IHVuZGVmaW5lZCAmJiB7IG92ZXJyaWRlczogdHJhbnNmb3JtVmFsdWUob3ZlcnJpZGVzKSB9KSxcbiAgICAgICAgLi4uKHRyYW5zZm9ybXMgIT09IHVuZGVmaW5lZCAmJiB7IHRyYW5zZm9ybXMgfSlcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlc3VsdFtrZXldID0gdHJhbnNmb3JtVmFsdWUocmVzb3VyY2UpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufTtcblxuLyoqXG4gKiBUcmFuc2Zvcm1zIHNjcmlwdCBkZWZpbml0aW9ucyAodmFsdWVzIGluIHRoZSBzY3JpcHRzIG9iamVjdClcbiAqL1xuY29uc3QgdHJhbnNmb3JtU2NyaXB0RGVmaW5pdGlvbnMgPSAoc2NyaXB0czogYW55KTogYW55ID0+IHtcbiAgaWYgKCFzY3JpcHRzIHx8IHR5cGVvZiBzY3JpcHRzICE9PSAnb2JqZWN0Jykge1xuICAgIHJldHVybiBzY3JpcHRzO1xuICB9XG5cbiAgY29uc3QgcmVzdWx0OiBhbnkgPSB7fTtcbiAgZm9yIChjb25zdCBrZXkgaW4gc2NyaXB0cykge1xuICAgIGNvbnN0IHNjcmlwdCA9IHNjcmlwdHNba2V5XTtcbiAgICBpZiAoaXNCYXNlVHlwZVByb3BlcnRpZXMoc2NyaXB0KSkge1xuICAgICAgcmVzdWx0W2tleV0gPSB7XG4gICAgICAgIHR5cGU6IHNjcmlwdC50eXBlLFxuICAgICAgICBwcm9wZXJ0aWVzOiB0cmFuc2Zvcm1WYWx1ZShzY3JpcHQucHJvcGVydGllcylcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlc3VsdFtrZXldID0gdHJhbnNmb3JtVmFsdWUoc2NyaXB0KTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn07XG5cbmV4cG9ydCBjb25zdCB0cmFuc2Zvcm1WYWx1ZSA9ICh2YWx1ZTogYW55KTogYW55ID0+IHtcbiAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgIGNvbnN0IHJld3JpdHRlbkRpcmVjdGl2ZSA9IHJld3JpdGVFbWJlZGRlZERpcmVjdGl2ZXNUb0NmRm9ybWF0KHZhbHVlKTtcbiAgICBpZiAocmV3cml0dGVuRGlyZWN0aXZlICE9PSBudWxsKSB7XG4gICAgICByZXR1cm4gcmV3cml0dGVuRGlyZWN0aXZlO1xuICAgIH1cbiAgfVxuXG4gIC8vIFRyYW5zZm9ybSBEZWZlcnJlZFJlc291cmNlTmFtZSAtIHJlc29sdmUgdG8gYWN0dWFsIG5hbWVcbiAgaWYgKGlzRGVmZXJyZWRSZXNvdXJjZU5hbWUodmFsdWUpKSB7XG4gICAgcmV0dXJuIHZhbHVlLnJlc29sdmUoKTtcbiAgfVxuXG4gIC8vIFRyYW5zZm9ybSBSZXNvdXJjZVBhcmFtUmVmZXJlbmNlXG4gIGlmIChpc1Jlc291cmNlUGFyYW1SZWZlcmVuY2UodmFsdWUpKSB7XG4gICAgcmV0dXJuIHZhbHVlLnRvU3RyaW5nKCk7XG4gIH1cblxuICAvLyBUcmFuc2Zvcm0gQmFzZVJlc291cmNlIHJlZmVyZW5jZXMgKG5vdCBkZWZpbml0aW9ucykgdG8gcmVzb3VyY2VOYW1lXG4gIC8vIFRoaXMgaGFuZGxlcyBjYXNlcyBsaWtlIGNvbm5lY3RUbzogW2RhdGFiYXNlXVxuICBpZiAoaXNCYXNlUmVzb3VyY2UodmFsdWUpKSB7XG4gICAgcmV0dXJuIHZhbHVlLnJlc291cmNlTmFtZTtcbiAgfVxuXG4gIC8vIFRyYW5zZm9ybSBCYXNlVHlwZVByb3BlcnRpZXMgKGVuZ2luZXMsIHBhY2thZ2luZywgZXZlbnRzKSB0byBwbGFpbiBvYmplY3RcbiAgaWYgKGlzQmFzZVR5cGVQcm9wZXJ0aWVzKHZhbHVlKSkge1xuICAgIC8vIEhhbmRsZSB0eXBlLW9ubHkgY2xhc3NlcyAobm8gcHJvcGVydGllcylcbiAgICBpZiAoISgncHJvcGVydGllcycgaW4gdmFsdWUpIHx8IHZhbHVlLnByb3BlcnRpZXMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIHsgdHlwZTogdmFsdWUudHlwZSB9O1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogdmFsdWUudHlwZSxcbiAgICAgIHByb3BlcnRpZXM6IHRyYW5zZm9ybVZhbHVlKHZhbHVlLnByb3BlcnRpZXMpXG4gICAgfTtcbiAgfVxuXG4gIC8vIFRyYW5zZm9ybSBBbGFybSBjbGFzcyB0byBwbGFpbiBvYmplY3RcbiAgaWYgKGlzQWxhcm0odmFsdWUpKSB7XG4gICAgY29uc3QgcmVzdWx0OiBhbnkgPSB7XG4gICAgICB0cmlnZ2VyOiB0cmFuc2Zvcm1WYWx1ZSh2YWx1ZS50cmlnZ2VyKVxuICAgIH07XG4gICAgaWYgKHZhbHVlLmV2YWx1YXRpb24gIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmVzdWx0LmV2YWx1YXRpb24gPSB0cmFuc2Zvcm1WYWx1ZSh2YWx1ZS5ldmFsdWF0aW9uKTtcbiAgICB9XG4gICAgaWYgKHZhbHVlLm5vdGlmaWNhdGlvblRhcmdldHMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmVzdWx0Lm5vdGlmaWNhdGlvblRhcmdldHMgPSB0cmFuc2Zvcm1WYWx1ZSh2YWx1ZS5ub3RpZmljYXRpb25UYXJnZXRzKTtcbiAgICB9XG4gICAgaWYgKHZhbHVlLmRlc2NyaXB0aW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJlc3VsdC5kZXNjcmlwdGlvbiA9IHZhbHVlLmRlc2NyaXB0aW9uO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLy8gVHJhbnNmb3JtIGFycmF5c1xuICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICByZXR1cm4gdmFsdWUubWFwKChpdGVtKSA9PiB7XG4gICAgICAvLyBJZiBpdCdzIGEgcmVzb3VyY2UgaW5zdGFuY2UgaW4gYW4gYXJyYXkgKGUuZy4sIGNvbm5lY3RUbyksIHRyYW5zZm9ybSB0byByZXNvdXJjZU5hbWVcbiAgICAgIGlmIChpc0Jhc2VSZXNvdXJjZShpdGVtKSkge1xuICAgICAgICByZXR1cm4gaXRlbS5yZXNvdXJjZU5hbWU7XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJhbnNmb3JtVmFsdWUoaXRlbSk7XG4gICAgfSk7XG4gIH1cblxuICAvLyBUcmFuc2Zvcm0gb2JqZWN0c1xuICBpZiAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0Jykge1xuICAgIGNvbnN0IHJlc3VsdDogYW55ID0ge307XG4gICAgZm9yIChjb25zdCBrZXkgaW4gdmFsdWUpIHtcbiAgICAgIC8vIFNwZWNpYWwgaGFuZGxpbmcgZm9yIGVudmlyb25tZW50IGFuZCBpbmplY3RFbnZpcm9ubWVudCBwcm9wZXJ0aWVzXG4gICAgICBpZiAoa2V5ID09PSAnZW52aXJvbm1lbnQnIHx8IGtleSA9PT0gJ2luamVjdEVudmlyb25tZW50Jykge1xuICAgICAgICByZXN1bHRba2V5XSA9IHRyYW5zZm9ybUVudmlyb25tZW50KHZhbHVlW2tleV0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzdWx0W2tleV0gPSB0cmFuc2Zvcm1WYWx1ZSh2YWx1ZVtrZXldKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHJldHVybiB2YWx1ZTtcbn07XG5cbmNvbnN0IHJld3JpdGVFbWJlZGRlZERpcmVjdGl2ZXNUb0NmRm9ybWF0ID0gKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsID0+IHtcbiAgY29uc3QgZW1iZWRkZWREaXJlY3RpdmVzID0gZ2V0RW1iZWRkZWREaXJlY3RpdmVzKHZhbHVlKTtcbiAgaWYgKGVtYmVkZGVkRGlyZWN0aXZlcy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGlmIChcbiAgICBlbWJlZGRlZERpcmVjdGl2ZXMubGVuZ3RoID09PSAxICYmXG4gICAgZW1iZWRkZWREaXJlY3RpdmVzWzBdLnN0YXJ0UG9zID09PSAwICYmXG4gICAgZW1iZWRkZWREaXJlY3RpdmVzWzBdLmVuZFBvcyA9PT0gdmFsdWUubGVuZ3RoXG4gICkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgbGV0IGludGVycG9sYXRlZFN0cmluZyA9ICcnO1xuICBsZXQgY3VycmVudFBvcyA9IDA7XG4gIGVtYmVkZGVkRGlyZWN0aXZlcy5mb3JFYWNoKCh7IHN0YXJ0UG9zLCBlbmRQb3MgfSkgPT4ge1xuICAgIGludGVycG9sYXRlZFN0cmluZyArPSBgJHt2YWx1ZS5zbGljZShjdXJyZW50UG9zLCBzdGFydFBvcyl9e31gO1xuICAgIGN1cnJlbnRQb3MgPSBlbmRQb3M7XG4gIH0pO1xuICBpbnRlcnBvbGF0ZWRTdHJpbmcgKz0gdmFsdWUuc2xpY2UoY3VycmVudFBvcyk7XG5cbiAgY29uc3QgZXNjYXBlZEludGVycG9sYXRlZFN0cmluZyA9IGludGVycG9sYXRlZFN0cmluZ1xuICAgIC5yZXBsYWNlKC9cXFxcL2csICdcXFxcXFxcXCcpXG4gICAgLnJlcGxhY2UoLycvZywgXCJcXFxcJ1wiKVxuICAgIC5yZXBsYWNlKC9cXHIvZywgJ1xcXFxyJylcbiAgICAucmVwbGFjZSgvXFxuL2csICdcXFxcbicpXG4gICAgLnJlcGxhY2UoL1xcdC9nLCAnXFxcXHQnKTtcblxuICBjb25zdCBkaXJlY3RpdmVBcmdzID0gZW1iZWRkZWREaXJlY3RpdmVzLm1hcCgoeyBkZWZpbml0aW9uIH0pID0+IGRlZmluaXRpb24pLmpvaW4oJywgJyk7XG4gIHJldHVybiBgJENmRm9ybWF0KCcke2VzY2FwZWRJbnRlcnBvbGF0ZWRTdHJpbmd9JywgJHtkaXJlY3RpdmVBcmdzfSlgO1xufTtcblxuY29uc3QgZ2V0RW1iZWRkZWREaXJlY3RpdmVzID0gKHZhbHVlOiBzdHJpbmcpOiBBcnJheTx7IGRlZmluaXRpb246IHN0cmluZzsgc3RhcnRQb3M6IG51bWJlcjsgZW5kUG9zOiBudW1iZXIgfT4gPT4ge1xuICBjb25zdCBkaXJlY3RpdmVzOiBBcnJheTx7IGRlZmluaXRpb246IHN0cmluZzsgc3RhcnRQb3M6IG51bWJlcjsgZW5kUG9zOiBudW1iZXIgfT4gPSBbXTtcblxuICBjb25zdCB0cnlQYXJzZURpcmVjdGl2ZUF0ID0gKHN0cjogc3RyaW5nLCBzdGFydFBvczogbnVtYmVyKTogeyBkZWZpbml0aW9uOiBzdHJpbmc7IGVuZFBvczogbnVtYmVyIH0gfCBudWxsID0+IHtcbiAgICBpZiAoc3RyW3N0YXJ0UG9zXSAhPT0gJyQnKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBsZXQgaWR4ID0gc3RhcnRQb3MgKyAxO1xuICAgIGNvbnN0IGZpcnN0TmFtZUNoYXIgPSBzdHJbaWR4XTtcbiAgICBpZiAoIWZpcnN0TmFtZUNoYXIgfHwgIWZpcnN0TmFtZUNoYXIubWF0Y2goL1tBLVpfXS9pKSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgd2hpbGUgKGlkeCA8IHN0ci5sZW5ndGggJiYgc3RyW2lkeF0ubWF0Y2goL1tcXHckXS8pKSB7XG4gICAgICBpZHgrKztcbiAgICB9XG5cbiAgICBpZiAoc3RyW2lkeF0gIT09ICcoJykge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgbGV0IGRlcHRoID0gMDtcbiAgICBsZXQgaW5TaW5nbGVRdW90ZSA9IGZhbHNlO1xuICAgIGxldCBpbkRvdWJsZVF1b3RlID0gZmFsc2U7XG4gICAgbGV0IGNsb3NpbmdQYXJlblBvcyA9IC0xO1xuXG4gICAgZm9yIChsZXQgaSA9IGlkeDsgaSA8IHN0ci5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgY2hhciA9IHN0cltpXTtcbiAgICAgIGNvbnN0IHByZXZDaGFyID0gaSA+IDAgPyBzdHJbaSAtIDFdIDogJyc7XG5cbiAgICAgIGlmIChjaGFyID09PSBcIidcIiAmJiBwcmV2Q2hhciAhPT0gJ1xcXFwnICYmICFpbkRvdWJsZVF1b3RlKSB7XG4gICAgICAgIGluU2luZ2xlUXVvdGUgPSAhaW5TaW5nbGVRdW90ZTtcbiAgICAgIH0gZWxzZSBpZiAoY2hhciA9PT0gJ1wiJyAmJiBwcmV2Q2hhciAhPT0gJ1xcXFwnICYmICFpblNpbmdsZVF1b3RlKSB7XG4gICAgICAgIGluRG91YmxlUXVvdGUgPSAhaW5Eb3VibGVRdW90ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKCFpblNpbmdsZVF1b3RlICYmICFpbkRvdWJsZVF1b3RlKSB7XG4gICAgICAgIGlmIChjaGFyID09PSAnKCcpIHtcbiAgICAgICAgICBkZXB0aCsrO1xuICAgICAgICB9IGVsc2UgaWYgKGNoYXIgPT09ICcpJykge1xuICAgICAgICAgIGRlcHRoLS07XG4gICAgICAgICAgaWYgKGRlcHRoID09PSAwKSB7XG4gICAgICAgICAgICBjbG9zaW5nUGFyZW5Qb3MgPSBpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGNsb3NpbmdQYXJlblBvcyA9PT0gLTEpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGxldCBlbmRQb3MgPSBjbG9zaW5nUGFyZW5Qb3MgKyAxO1xuICAgIGlmIChzdHJbZW5kUG9zXSA9PT0gJy4nKSB7XG4gICAgICBlbmRQb3MrKztcbiAgICAgIHdoaWxlIChlbmRQb3MgPCBzdHIubGVuZ3RoICYmIHN0cltlbmRQb3NdLm1hdGNoKC9bXFx3JFxcLl0vKSkge1xuICAgICAgICBlbmRQb3MrKztcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgZGVmaW5pdGlvbjogc3RyLnNsaWNlKHN0YXJ0UG9zLCBlbmRQb3MpLFxuICAgICAgZW5kUG9zXG4gICAgfTtcbiAgfTtcblxuICBsZXQgaWR4ID0gMDtcbiAgd2hpbGUgKGlkeCA8IHZhbHVlLmxlbmd0aCkge1xuICAgIGlmICh2YWx1ZVtpZHhdID09PSAnJCcpIHtcbiAgICAgIGNvbnN0IHBhcnNlZCA9IHRyeVBhcnNlRGlyZWN0aXZlQXQodmFsdWUsIGlkeCk7XG4gICAgICBpZiAocGFyc2VkKSB7XG4gICAgICAgIGRpcmVjdGl2ZXMucHVzaCh7IGRlZmluaXRpb246IHBhcnNlZC5kZWZpbml0aW9uLCBzdGFydFBvczogaWR4LCBlbmRQb3M6IHBhcnNlZC5lbmRQb3MgfSk7XG4gICAgICAgIGlkeCA9IHBhcnNlZC5lbmRQb3M7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgIH1cbiAgICBpZHgrKztcbiAgfVxuXG4gIHJldHVybiBkaXJlY3RpdmVzO1xufTtcbiIsCiAgICAiLyoqXG4gKiBSZXR1cm5zIGEgcmVmZXJlbmNlIHRvIGEgcmVzb3VyY2UgcGFyYW1ldGVyLlxuICogQHBhcmFtIHJlc291cmNlTmFtZSAtIFRoZSBuYW1lIG9mIHRoZSByZXNvdXJjZSBhcyBzcGVjaWZpZWQgaW4gdGhlIFN0YWNrdGFwZSBjb25maWcuXG4gKiBAcGFyYW0gcHJvcGVydHkgLSBUaGUgcHJvcGVydHkgb2YgdGhlIHJlc291cmNlLiBUaGUgbGlzdCBvZiBwcm9wZXJ0aWVzIGlzIGF2YWlsYWJsZSBpbiB0aGUgU3RhY2t0YXBlIGRvY3MgZm9yIGV2ZXJ5IGdpdmVuIHJlc291cmNlIHR5cGUuXG4gKi9cbmV4cG9ydCBjb25zdCAkUmVzb3VyY2VQYXJhbSA9IChyZXNvdXJjZU5hbWU6IHN0cmluZywgcHJvcGVydHk6IHN0cmluZykgPT4ge1xuICByZXR1cm4gYCRSZXNvdXJjZVBhcmFtKCcke3Jlc291cmNlTmFtZX0nLCcke3Byb3BlcnR5fScpYDtcbn07XG5cbi8qKlxuICogUmV0dXJucyBhIHJlZmVyZW5jZSB0byBhIENsb3VkRm9ybWF0aW9uIHJlc291cmNlIHBhcmFtZXRlci5cbiAqIEBwYXJhbSBjbG91ZGZvcm1hdGlvblJlc291cmNlTG9naWNhbElkIC0gVGhlIGxvZ2ljYWwgbmFtZSBvZiB0aGUgQ2xvdWRmb3JtYXRpb24gcmVzb3VyY2UuXG4gKiBJZiB5b3UgYXJlIHJlZmVyZW5jaW5nIGEgcmVzb3VyY2UgZGVmaW5lZCBpbiB0aGUgY2xvdWRmb3JtYXRpb25SZXNvdXJjZXMgc2VjdGlvbiwgdXNlIGl0cyBuYW1lLlxuICogVG8gcmVmZXJlbmNlIGEgY2hpbGQgcmVzb3VyY2Ugb2YgYSBTdGFja3RhcGUgcmVzb3VyY2UsIHlvdSBjYW4gZ2V0IGEgbGlzdCBvZiBjaGlsZCByZXNvdXJjZXMgd2l0aCB0aGUgYHN0YWNrdGFwZSBzdGFjay1pbmZvYCBjb21tYW5kXG4gKiBAcGFyYW0gcHJvcGVydHkgLSBUaGUgcGFyYW1ldGVyIG9mIHRoZSBDbG91ZGZvcm1hdGlvbiByZXNvdXJjZSB0byByZWZlcmVuY2UuXG4gKiBGb3IgYSBsaXN0IG9mIGFsbCByZWZlcmVuY2VhYmxlIHBhcmFtZXRlcnMsIHJlZmVyIHRvIHRoZSBbUmVmZXJlbmNpbmcgcGFyYW1ldGVyc10oaHR0cHM6Ly9kb2NzLnN0YWNrdGFwZS5jb20vY29uZmlndXJhdGlvbi9yZWZlcmVuY2luZy1wYXJhbWV0ZXJzI3BhcmFtZXRlcnMtb2YtY2xvdWRmb3JtYXRpb24tcmVzb3VyY2VzKSBzZWN0aW9uIGluIHRoZSBTdGFja3RhcGUgZG9jcy5cbiAqL1xuZXhwb3J0IGNvbnN0ICRDZlJlc291cmNlUGFyYW0gPSAoY2xvdWRmb3JtYXRpb25SZXNvdXJjZUxvZ2ljYWxJZDogc3RyaW5nLCBwcm9wZXJ0eTogc3RyaW5nKSA9PiB7XG4gIHJldHVybiBgJENmUmVzb3VyY2VQYXJhbSgnJHtjbG91ZGZvcm1hdGlvblJlc291cmNlTG9naWNhbElkfScsJyR7cHJvcGVydHl9JylgO1xufTtcblxuLyoqXG4gKiBSZXR1cm5zIGEgcmVmZXJlbmNlIHRvIGEgc2VjcmV0LlxuICogQHBhcmFtIHNlY3JldE5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgc2VjcmV0LiBNdXN0IGJlIGEgdmFsaWQgc2VjcmV0IG5hbWUgaW4gdGhlIEFXUyBTZWNyZXRzIE1hbmFnZXIgaW4gdGhlIHJlZ2lvbiB5b3UncmUgZGVwbG95aW5nIHRvLlxuICogSWYgdGhlIHNlY3JldCBpcyBpbiBKU09OIGZvcm1hdCwgeW91IGNhbiBleHRyYWN0IG5lc3RlZCBwcm9wZXJ0aWVzIHVzaW5nIGRvdCBub3RhdGlvbi5cbiAqIEV4YW1wbGU6IGAkU2VjcmV0KCdteS1zZWNyZXQuYXBpLWtleScpYCB3aWxsIHJldHVybiB0aGUgdmFsdWUgb2YgdGhlIGBhcGkta2V5YCBwcm9wZXJ0eSBpbiB0aGUgYG15LXNlY3JldGAgc2VjcmV0LlxuICovXG5leHBvcnQgY29uc3QgJFNlY3JldCA9IChzZWNyZXROYW1lOiBzdHJpbmcpID0+IHtcbiAgcmV0dXJuIGAkU2VjcmV0KCcke3NlY3JldE5hbWV9JylgO1xufTtcblxuLyoqXG4gKiBSZXR1cm5zIGFuIGludGVycG9sYXRlZCBzdHJpbmcuIFVubGlrZSB0aGUgJEZvcm1hdCgpIGRpcmVjdGl2ZSwgdGhlICRDZkZvcm1hdCgpIGRpcmVjdGl2ZSBjYW4gY29udGFpbiBydW50aW1lLXJlc29sdmVkIGRpcmVjdGl2ZXMgYXMgYXJndW1lbnRzLlxuICogQHBhcmFtIGludGVycG9sYXRlZFN0cmluZyAtIE9jY3VycmVuY2VzIG9mIHt9IGFyZSByZXBsYWNlZCBieSB0aGUgc3Vic2VxdWVudCBhcmd1bWVudHMuXG4gKiBAcGFyYW0gdmFsdWVzIC0gVGhlIG51bWJlciBvZiB2YWx1ZXMgbXVzdCBiZSBlcXVhbCB0byB0aGUgbnVtYmVyIG9mIHt9IHBsYWNlaG9sZGVycyBpbiB0aGUgZmlyc3QgYXJndW1lbnQuXG4gKiBFeGFtcGxlOlxuICogYCRDZkZvcm1hdCgne30te30nLCAnZm9vJywgJ2JhcicpYCByZXN1bHRzIGluIGBmb28tYmFyYC5cbiAqICRDZkZvcm1hdCgne30tbXlkb21haW4uY29tJywgJ2ZvbycpIHJlc3VsdHMgaW4gZm9vLW15ZG9tYWluLmNvbS5cbiAqIGAkQ2ZGb3JtYXQoJ3t9Lm15ZG9tYWluLmNvbScsICRTdGFnZSgpKWAgcmVzdWx0cyBpbiBgc3RhZ2luZy5teWRvbWFpbi5jb21gIGlmIHRoZSBzdGFnZSBpcyBzdGFnaW5nLlxuICovXG5leHBvcnQgY29uc3QgJENmRm9ybWF0ID0gKGludGVycG9sYXRlZFN0cmluZzogc3RyaW5nLCAuLi52YWx1ZXM6IGFueVtdKSA9PiB7XG4gIHJldHVybiBgJENmRm9ybWF0KCcke2ludGVycG9sYXRlZFN0cmluZ30nLCAnJHt2YWx1ZXMuam9pbignLCcpfScpYDtcbn07XG5cbi8qKlxuICogUmV0dXJucyB0aGUgb3V0cHV0IG9mIGFub3RoZXIgc3RhY2ssIGFsbG93aW5nIHlvdSB0byByZWZlcmVuY2UgcmVzb3VyY2VzIGRlcGxveWVkIGluIGFub3RoZXIgc3RhY2suIFRoZSByZWZlcmVuY2VkIHN0YWNrIG11c3QgYWxyZWFkeSBiZSBkZXBsb3llZC4gSWYgeW91IHRyeSB0byBkZWxldGUgYSBzdGFjayB0aGF0IGlzIHJlZmVyZW5jZWQgYnkgYW5vdGhlciBzdGFjaywgeW91IHdpbGwgZ2V0IGFuIGVycm9yLlxuICogVG8gZ2V0IHRoZSBvdXRwdXQgbG9jYWxseSAoaS5lLiwgZG93bmxvYWQgdGhlIHZhbHVlIGFuZCBwYXNzIGl0IHRvIHRoZSBjb25maWd1cmF0aW9uKSwgdXNlIHRoZSAkU3RhY2tPdXRwdXQoKSBkaXJlY3RpdmUuXG4gKiBAcGFyYW0gc3RhY2tOYW1lIC0gVGhlIG5hbWUgb2YgdGhlIHN0YWNrLlxuICogQHBhcmFtIG91dHB1dE5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgb3V0cHV0LlxuICovXG5leHBvcnQgY29uc3QgJENmU3RhY2tPdXRwdXQgPSAoc3RhY2tOYW1lOiBzdHJpbmcsIG91dHB1dE5hbWU6IHN0cmluZykgPT4ge1xuICByZXR1cm4gYCRDZlN0YWNrT3V0cHV0KCcke3N0YWNrTmFtZX0nLCcke291dHB1dE5hbWV9JylgO1xufTtcblxuLyoqXG4gKiBSZXR1cm5zIGluZm9ybWF0aW9uIGFib3V0IHRoZSBjdXJyZW50IEdpdCByZXBvc2l0b3J5LlxuICpcbiAqICRHaXRJbmZvKCkuc2hhMSAtIFNIQS0xIG9mIHRoZSBsYXRlc3QgY29tbWl0XG4gKlxuICogJEdpdEluZm8oKS5jb21taXQgLSBUaGUgbGF0ZXN0IGNvbW1pdCBJRFxuICpcbiAqICRHaXRJbmZvKCkuYnJhbmNoIC0gVGhlIG5hbWUgb2YgdGhlIGN1cnJlbnQgYnJhbmNoXG4gKlxuICogJEdpdEluZm8oKS5tZXNzYWdlIC0gVGhlIG1lc3NhZ2Ugb2YgdGhlIGxhc3QgY29tbWl0XG4gKlxuICogJEdpdEluZm8oKS51c2VyIC0gR2l0IHVzZXIncyBuYW1lXG4gKlxuICogJEdpdEluZm8oKS5lbWFpbCAtIEdpdCB1c2VyJ3MgZW1haWxcbiAqXG4gKiAkR2l0SW5mbygpLnJlcG9zaXRvcnkgLSBUaGUgbmFtZSBvZiB0aGUgZ2l0IHJlcG9zaXRvcnlcbiAqXG4gKiAkR2l0SW5mbygpLnRhZ3MgLSBUaGUgdGFncyBwb2ludGluZyB0byB0aGUgY3VycmVudCBjb21taXRcbiAqXG4gKiAkR2l0SW5mbygpLmRlc2NyaWJlIC0gVGhlIG1vc3QgcmVjZW50IHRhZyB0aGF0IGlzIHJlYWNoYWJsZSBmcm9tIGEgY29tbWl0XG4gKi9cbmV4cG9ydCBjb25zdCAkR2l0SW5mbyA9ICgpID0+IHtcbiAgcmV0dXJuICckR2l0SW5mbygpJztcbn07XG5cbi8qKlxuICogUmV0dXJucyB0aGUgY3VycmVudCBBV1MgcmVnaW9uIHdoZXJlIHRoZSBzdGFjayBpcyBiZWluZyBkZXBsb3llZC5cbiAqIEV4YW1wbGU6IGB1cy1lYXN0LTFgXG4gKi9cbmV4cG9ydCBjb25zdCAkUmVnaW9uID0gKCkgPT4ge1xuICByZXR1cm4gJyRSZWdpb24oKSc7XG59O1xuXG4vKipcbiAqIFJldHVybnMgdGhlIGN1cnJlbnQgc3RhZ2UgbmFtZS5cbiAqIEV4YW1wbGU6IGBwcm9kdWN0aW9uYCwgYHN0YWdpbmdgLCBgZGV2YFxuICovXG5leHBvcnQgY29uc3QgJFN0YWdlID0gKCkgPT4ge1xuICByZXR1cm4gJyRTdGFnZSgpJztcbn07XG4iLAogICAgIi8qKlxuICogQVdTIFNFUyAoU2ltcGxlIEVtYWlsIFNlcnZpY2UpIHJlZmVyZW5jZSBmb3IgY29ubmVjdFRvXG4gKiBHcmFudHMgZnVsbCBwZXJtaXNzaW9ucyBmb3IgQVdTIFNFUyAoc2VzOiopXG4gKi9cbmV4cG9ydCBjb25zdCBBV1NfU0VTID0gJ2F3czpzZXMnIGFzIGNvbnN0O1xuXG4vKipcbiAqIFR5cGUgdGhhdCByZXByZXNlbnRzIGFueSBBV1Mgc2VydmljZSBjb25zdGFudFxuICovXG5leHBvcnQgdHlwZSBHbG9iYWxBd3NTZXJ2aWNlQ29uc3RhbnQgPSB0eXBlb2YgQVdTX1NFUztcbiIsCiAgICAiLyoqXG4gKiBUaGlzIGZpbGUgZGVmaW5lcyB0eXBlLXByb3BlcnRpZXMgc2hhcGVkIGRlZmluaXRpb25zIChlLmcuIFN0YWNrdGFwZSByZXNvdXJjZXMsIHBhY2thZ2luZyB0eXBlcyBldGMuKVxuICogdGhhdCBjYW4gYmUgY29udmVydGVkIHRvIGEgVHlwZXNjcmlwdCBjbGFzcy4gVGhlc2UgY2xhc3NlcyBhcmUgdGhlbiBleHBvcnRlZCBmcm9tIHN0YWNrdGFwZS9jbGFzc2VzXG4gKlxuICogQGV4YW1wbGUgaW1wb3J0IHsgU3RhY2t0YXBlTGFtYmRhQnVpbGRwYWNrUGFja2FnaW5nIH0gZnJvbSAnc3RhY2t0YXBlL2NsYXNzZXMnO1xuICovXG5cbmV4cG9ydCB0eXBlIFJlc291cmNlQ2xhc3NOYW1lID0gT21pdDxLZWJhYlRvUGFzY2FsQ2FzZTxTdHBSZXNvdXJjZVR5cGU+LCAnRnVuY3Rpb24nPiB8ICdMYW1iZGFGdW5jdGlvbic7XG5cbmV4cG9ydCB0eXBlIFJlc291cmNlRGVmaW5pdGlvbiA9IHtcbiAgLyoqIENsYXNzIG5hbWUgZm9yIHRoZSByZXNvdXJjZSAoZS5nLiwgJ0xhbWJkYUZ1bmN0aW9uJykgKi9cbiAgY2xhc3NOYW1lOiBSZXNvdXJjZUNsYXNzTmFtZTtcbiAgLyoqIFJlc291cmNlIHR5cGUgaWRlbnRpZmllciB1c2VkIGluIGNvbmZpZyAoZS5nLiwgJ2Z1bmN0aW9uJykgKi9cbiAgcmVzb3VyY2VUeXBlOiBzdHJpbmc7XG4gIC8qKiBQcm9wcyB0eXBlIG5hbWUgKGUuZy4sICdMYW1iZGFGdW5jdGlvblByb3BzJykgKi9cbiAgcHJvcHNUeXBlOiBzdHJpbmc7XG4gIC8qKiBJbnRlcmZhY2UgbmFtZSBpbiB0aGUgc291cmNlIC5kLnRzIGZpbGUgKGUuZy4sICdMYW1iZGFGdW5jdGlvbicpICovXG4gIGludGVyZmFjZU5hbWU6IHN0cmluZztcbiAgLyoqIFNvdXJjZSAuZC50cyBmaWxlIG5hbWUgKGUuZy4sICdmdW5jdGlvbnMuZC50cycpICovXG4gIHNvdXJjZUZpbGU6IHN0cmluZztcbiAgLyoqIFJlc291cmNlcyBhbmQgQVdTIHNlcnZpY2VzIHRoaXMgcmVzb3VyY2UgY2FuIGNvbm5lY3QgdG8uIEdsb2JhbEF3c1NlcnZpY2VDb25zdGFudCBpcyBmb3IgZ2xvYmFsIHNlcnZpY2VzLCBlLmcuIGF3czpzZXMgICovXG4gIGNhbkNvbm5lY3RUbz86IHN0cmluZ1tdO1xuICAvKiogV2hldGhlciB0aGlzIHJlc291cmNlIHN1cHBvcnRzIG92ZXJyaWRlcyAoZGVmYXVsdDogdHJ1ZSkgKi9cbiAgc3VwcG9ydHNPdmVycmlkZXM/OiBib29sZWFuO1xuICAvKiogV2hldGhlciB0aGlzIHJlc291cmNlIGhhcyBhdWdtZW50ZWQgY29ubmVjdFRvL2Vudmlyb25tZW50IHByb3BzIChkZWZhdWx0OiBmYWxzZSkgKi9cbiAgaGFzQXVnbWVudGVkUHJvcHM/OiBib29sZWFuO1xufTtcblxuLyoqXG4gKiBDb21wbGV0ZSBsaXN0IG9mIGFsbCBTdGFja3RhcGUgcmVzb3VyY2VzLlxuICogVGhpcyBpcyB0aGUgc2luZ2xlIHNvdXJjZSBvZiB0cnV0aCAtIGFsbCBjb2RlIGdlbmVyYXRpb24gZGVyaXZlcyBmcm9tIHRoaXMuXG4gKi9cbmV4cG9ydCBjb25zdCBSRVNPVVJDRVNfQ09OVkVSVElCTEVfVE9fQ0xBU1NFUzogUmVzb3VyY2VEZWZpbml0aW9uW10gPSBbXG4gIHtcbiAgICBjbGFzc05hbWU6ICdSZWxhdGlvbmFsRGF0YWJhc2UnLFxuICAgIHJlc291cmNlVHlwZTogJ3JlbGF0aW9uYWwtZGF0YWJhc2UnLFxuICAgIHByb3BzVHlwZTogJ1JlbGF0aW9uYWxEYXRhYmFzZVByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnUmVsYXRpb25hbERhdGFiYXNlJyxcbiAgICBzb3VyY2VGaWxlOiAncmVsYXRpb25hbC1kYXRhYmFzZXMuZC50cycsXG4gICAgY2FuQ29ubmVjdFRvOiBbXVxuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnV2ViU2VydmljZScsXG4gICAgcmVzb3VyY2VUeXBlOiAnd2ViLXNlcnZpY2UnLFxuICAgIHByb3BzVHlwZTogJ1dlYlNlcnZpY2VQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ1dlYlNlcnZpY2UnLFxuICAgIHNvdXJjZUZpbGU6ICd3ZWItc2VydmljZXMuZC50cycsXG4gICAgaGFzQXVnbWVudGVkUHJvcHM6IHRydWUsXG4gICAgY2FuQ29ubmVjdFRvOiBbXG4gICAgICAnUmVsYXRpb25hbERhdGFiYXNlJyxcbiAgICAgICdCdWNrZXQnLFxuICAgICAgJ0hvc3RpbmdCdWNrZXQnLFxuICAgICAgJ0R5bmFtb0RiVGFibGUnLFxuICAgICAgJ0V2ZW50QnVzJyxcbiAgICAgICdSZWRpc0NsdXN0ZXInLFxuICAgICAgJ01vbmdvRGJBdGxhc0NsdXN0ZXInLFxuICAgICAgJ1Vwc3Rhc2hSZWRpcycsXG4gICAgICAnU3FzUXVldWUnLFxuICAgICAgJ1Nuc1RvcGljJyxcbiAgICAgICdLaW5lc2lzU3RyZWFtJyxcbiAgICAgICdPcGVuU2VhcmNoRG9tYWluJyxcbiAgICAgICdFZnNGaWxlc3lzdGVtJyxcbiAgICAgICdQcml2YXRlU2VydmljZSdcbiAgICBdXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdQcml2YXRlU2VydmljZScsXG4gICAgcmVzb3VyY2VUeXBlOiAncHJpdmF0ZS1zZXJ2aWNlJyxcbiAgICBwcm9wc1R5cGU6ICdQcml2YXRlU2VydmljZVByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnUHJpdmF0ZVNlcnZpY2UnLFxuICAgIHNvdXJjZUZpbGU6ICdwcml2YXRlLXNlcnZpY2VzLmQudHMnLFxuICAgIGhhc0F1Z21lbnRlZFByb3BzOiB0cnVlLFxuICAgIGNhbkNvbm5lY3RUbzogW1xuICAgICAgJ1JlbGF0aW9uYWxEYXRhYmFzZScsXG4gICAgICAnQnVja2V0JyxcbiAgICAgICdIb3N0aW5nQnVja2V0JyxcbiAgICAgICdEeW5hbW9EYlRhYmxlJyxcbiAgICAgICdFdmVudEJ1cycsXG4gICAgICAnUmVkaXNDbHVzdGVyJyxcbiAgICAgICdNb25nb0RiQXRsYXNDbHVzdGVyJyxcbiAgICAgICdVcHN0YXNoUmVkaXMnLFxuICAgICAgJ1Nxc1F1ZXVlJyxcbiAgICAgICdTbnNUb3BpYycsXG4gICAgICAnS2luZXNpc1N0cmVhbScsXG4gICAgICAnT3BlblNlYXJjaERvbWFpbicsXG4gICAgICAnRWZzRmlsZXN5c3RlbSdcbiAgICBdXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdXb3JrZXJTZXJ2aWNlJyxcbiAgICByZXNvdXJjZVR5cGU6ICd3b3JrZXItc2VydmljZScsXG4gICAgcHJvcHNUeXBlOiAnV29ya2VyU2VydmljZVByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnV29ya2VyU2VydmljZScsXG4gICAgc291cmNlRmlsZTogJ3dvcmtlci1zZXJ2aWNlcy5kLnRzJyxcbiAgICBoYXNBdWdtZW50ZWRQcm9wczogdHJ1ZSxcbiAgICBjYW5Db25uZWN0VG86IFtcbiAgICAgICdSZWxhdGlvbmFsRGF0YWJhc2UnLFxuICAgICAgJ0J1Y2tldCcsXG4gICAgICAnSG9zdGluZ0J1Y2tldCcsXG4gICAgICAnRHluYW1vRGJUYWJsZScsXG4gICAgICAnRXZlbnRCdXMnLFxuICAgICAgJ1JlZGlzQ2x1c3RlcicsXG4gICAgICAnTW9uZ29EYkF0bGFzQ2x1c3RlcicsXG4gICAgICAnVXBzdGFzaFJlZGlzJyxcbiAgICAgICdTcXNRdWV1ZScsXG4gICAgICAnU25zVG9waWMnLFxuICAgICAgJ0tpbmVzaXNTdHJlYW0nLFxuICAgICAgJ09wZW5TZWFyY2hEb21haW4nLFxuICAgICAgJ0Vmc0ZpbGVzeXN0ZW0nXG4gICAgXVxuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnTXVsdGlDb250YWluZXJXb3JrbG9hZCcsXG4gICAgcmVzb3VyY2VUeXBlOiAnbXVsdGktY29udGFpbmVyLXdvcmtsb2FkJyxcbiAgICBwcm9wc1R5cGU6ICdDb250YWluZXJXb3JrbG9hZFByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnTXVsdGlDb250YWluZXJXb3JrbG9hZCcsXG4gICAgc291cmNlRmlsZTogJ211bHRpLWNvbnRhaW5lci13b3JrbG9hZHMuZC50cycsXG4gICAgaGFzQXVnbWVudGVkUHJvcHM6IHRydWUsXG4gICAgY2FuQ29ubmVjdFRvOiBbXG4gICAgICAnUmVsYXRpb25hbERhdGFiYXNlJyxcbiAgICAgICdCdWNrZXQnLFxuICAgICAgJ0hvc3RpbmdCdWNrZXQnLFxuICAgICAgJ0R5bmFtb0RiVGFibGUnLFxuICAgICAgJ0V2ZW50QnVzJyxcbiAgICAgICdSZWRpc0NsdXN0ZXInLFxuICAgICAgJ01vbmdvRGJBdGxhc0NsdXN0ZXInLFxuICAgICAgJ1Vwc3Rhc2hSZWRpcycsXG4gICAgICAnU3FzUXVldWUnLFxuICAgICAgJ1Nuc1RvcGljJyxcbiAgICAgICdLaW5lc2lzU3RyZWFtJyxcbiAgICAgICdPcGVuU2VhcmNoRG9tYWluJyxcbiAgICAgICdFZnNGaWxlc3lzdGVtJyxcbiAgICAgICdMYW1iZGFGdW5jdGlvbicsXG4gICAgICAnQmF0Y2hKb2InLFxuICAgICAgJ1VzZXJBdXRoUG9vbCdcbiAgICBdXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdMYW1iZGFGdW5jdGlvbicsXG4gICAgcmVzb3VyY2VUeXBlOiAnZnVuY3Rpb24nLFxuICAgIHByb3BzVHlwZTogJ0xhbWJkYUZ1bmN0aW9uUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdMYW1iZGFGdW5jdGlvbicsXG4gICAgc291cmNlRmlsZTogJ2Z1bmN0aW9ucy5kLnRzJyxcbiAgICBoYXNBdWdtZW50ZWRQcm9wczogdHJ1ZSxcbiAgICBjYW5Db25uZWN0VG86IFtcbiAgICAgICdSZWxhdGlvbmFsRGF0YWJhc2UnLFxuICAgICAgJ0J1Y2tldCcsXG4gICAgICAnSG9zdGluZ0J1Y2tldCcsXG4gICAgICAnRHluYW1vRGJUYWJsZScsXG4gICAgICAnRXZlbnRCdXMnLFxuICAgICAgJ1JlZGlzQ2x1c3RlcicsXG4gICAgICAnTW9uZ29EYkF0bGFzQ2x1c3RlcicsXG4gICAgICAnVXBzdGFzaFJlZGlzJyxcbiAgICAgICdTcXNRdWV1ZScsXG4gICAgICAnU25zVG9waWMnLFxuICAgICAgJ0tpbmVzaXNTdHJlYW0nLFxuICAgICAgJ09wZW5TZWFyY2hEb21haW4nLFxuICAgICAgJ0Vmc0ZpbGVzeXN0ZW0nLFxuICAgICAgJ1ByaXZhdGVTZXJ2aWNlJyxcbiAgICAgICdXZWJTZXJ2aWNlJyxcbiAgICAgICdMYW1iZGFGdW5jdGlvbicsXG4gICAgICAnQmF0Y2hKb2InLFxuICAgICAgJ1VzZXJBdXRoUG9vbCdcbiAgICBdXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdCYXRjaEpvYicsXG4gICAgcmVzb3VyY2VUeXBlOiAnYmF0Y2gtam9iJyxcbiAgICBwcm9wc1R5cGU6ICdCYXRjaEpvYlByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnQmF0Y2hKb2InLFxuICAgIHNvdXJjZUZpbGU6ICdiYXRjaC1qb2JzLmQudHMnLFxuICAgIGhhc0F1Z21lbnRlZFByb3BzOiB0cnVlLFxuICAgIGNhbkNvbm5lY3RUbzogW1xuICAgICAgJ1JlbGF0aW9uYWxEYXRhYmFzZScsXG4gICAgICAnQnVja2V0JyxcbiAgICAgICdIb3N0aW5nQnVja2V0JyxcbiAgICAgICdEeW5hbW9EYlRhYmxlJyxcbiAgICAgICdFdmVudEJ1cycsXG4gICAgICAnUmVkaXNDbHVzdGVyJyxcbiAgICAgICdNb25nb0RiQXRsYXNDbHVzdGVyJyxcbiAgICAgICdVcHN0YXNoUmVkaXMnLFxuICAgICAgJ1Nxc1F1ZXVlJyxcbiAgICAgICdTbnNUb3BpYycsXG4gICAgICAnS2luZXNpc1N0cmVhbScsXG4gICAgICAnT3BlblNlYXJjaERvbWFpbicsXG4gICAgICAnRWZzRmlsZXN5c3RlbSdcbiAgICBdXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdCdWNrZXQnLFxuICAgIHJlc291cmNlVHlwZTogJ2J1Y2tldCcsXG4gICAgcHJvcHNUeXBlOiAnQnVja2V0UHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdCdWNrZXQnLFxuICAgIHNvdXJjZUZpbGU6ICdidWNrZXRzLmQudHMnLFxuICAgIGNhbkNvbm5lY3RUbzogW11cbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ0hvc3RpbmdCdWNrZXQnLFxuICAgIHJlc291cmNlVHlwZTogJ2hvc3RpbmctYnVja2V0JyxcbiAgICBwcm9wc1R5cGU6ICdIb3N0aW5nQnVja2V0UHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdIb3N0aW5nQnVja2V0JyxcbiAgICBzb3VyY2VGaWxlOiAnaG9zdGluZy1idWNrZXRzLmQudHMnLFxuICAgIGNhbkNvbm5lY3RUbzogW11cbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ0R5bmFtb0RiVGFibGUnLFxuICAgIHJlc291cmNlVHlwZTogJ2R5bmFtby1kYi10YWJsZScsXG4gICAgcHJvcHNUeXBlOiAnRHluYW1vRGJUYWJsZVByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnRHluYW1vRGJUYWJsZScsXG4gICAgc291cmNlRmlsZTogJ2R5bmFtby1kYi10YWJsZXMuZC50cycsXG4gICAgY2FuQ29ubmVjdFRvOiBbXVxuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnRXZlbnRCdXMnLFxuICAgIHJlc291cmNlVHlwZTogJ2V2ZW50LWJ1cycsXG4gICAgcHJvcHNUeXBlOiAnRXZlbnRCdXNQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0V2ZW50QnVzJyxcbiAgICBzb3VyY2VGaWxlOiAnZXZlbnQtYnVzZXMuZC50cycsXG4gICAgY2FuQ29ubmVjdFRvOiBbXVxuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnSHR0cEFwaUdhdGV3YXknLFxuICAgIHJlc291cmNlVHlwZTogJ2h0dHAtYXBpLWdhdGV3YXknLFxuICAgIHByb3BzVHlwZTogJ0h0dHBBcGlHYXRld2F5UHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdIdHRwQXBpR2F0ZXdheScsXG4gICAgc291cmNlRmlsZTogJ2h0dHAtYXBpLWdhdGV3YXlzLmQudHMnLFxuICAgIGNhbkNvbm5lY3RUbzogW11cbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ0FwcGxpY2F0aW9uTG9hZEJhbGFuY2VyJyxcbiAgICByZXNvdXJjZVR5cGU6ICdhcHBsaWNhdGlvbi1sb2FkLWJhbGFuY2VyJyxcbiAgICBwcm9wc1R5cGU6ICdBcHBsaWNhdGlvbkxvYWRCYWxhbmNlclByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnQXBwbGljYXRpb25Mb2FkQmFsYW5jZXInLFxuICAgIHNvdXJjZUZpbGU6ICdhcHBsaWNhdGlvbi1sb2FkLWJhbGFuY2Vycy5kLnRzJyxcbiAgICBjYW5Db25uZWN0VG86IFtdXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdOZXR3b3JrTG9hZEJhbGFuY2VyJyxcbiAgICByZXNvdXJjZVR5cGU6ICduZXR3b3JrLWxvYWQtYmFsYW5jZXInLFxuICAgIHByb3BzVHlwZTogJ05ldHdvcmtMb2FkQmFsYW5jZXJQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ05ldHdvcmtMb2FkQmFsYW5jZXInLFxuICAgIHNvdXJjZUZpbGU6ICduZXR3b3JrLWxvYWQtYmFsYW5jZXIuZC50cycsXG4gICAgY2FuQ29ubmVjdFRvOiBbXVxuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnUmVkaXNDbHVzdGVyJyxcbiAgICByZXNvdXJjZVR5cGU6ICdyZWRpcy1jbHVzdGVyJyxcbiAgICBwcm9wc1R5cGU6ICdSZWRpc0NsdXN0ZXJQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ1JlZGlzQ2x1c3RlcicsXG4gICAgc291cmNlRmlsZTogJ3JlZGlzLWNsdXN0ZXIuZC50cycsXG4gICAgY2FuQ29ubmVjdFRvOiBbXVxuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnTW9uZ29EYkF0bGFzQ2x1c3RlcicsXG4gICAgcmVzb3VyY2VUeXBlOiAnbW9uZ28tZGItYXRsYXMtY2x1c3RlcicsXG4gICAgcHJvcHNUeXBlOiAnTW9uZ29EYkF0bGFzQ2x1c3RlclByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnTW9uZ29EYkF0bGFzQ2x1c3RlcicsXG4gICAgc291cmNlRmlsZTogJ21vbmdvLWRiLWF0bGFzLWNsdXN0ZXJzLmQudHMnLFxuICAgIHN1cHBvcnRzT3ZlcnJpZGVzOiBmYWxzZSxcbiAgICBjYW5Db25uZWN0VG86IFtdXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdTdGF0ZU1hY2hpbmUnLFxuICAgIHJlc291cmNlVHlwZTogJ3N0YXRlLW1hY2hpbmUnLFxuICAgIHByb3BzVHlwZTogJ1N0YXRlTWFjaGluZVByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnU3RhdGVNYWNoaW5lJyxcbiAgICBzb3VyY2VGaWxlOiAnc3RhdGUtbWFjaGluZXMuZC50cycsXG4gICAgaGFzQXVnbWVudGVkUHJvcHM6IHRydWUsXG4gICAgY2FuQ29ubmVjdFRvOiBbJ0Z1bmN0aW9uJywgJ0JhdGNoSm9iJ11cbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ1VzZXJBdXRoUG9vbCcsXG4gICAgcmVzb3VyY2VUeXBlOiAndXNlci1hdXRoLXBvb2wnLFxuICAgIHByb3BzVHlwZTogJ1VzZXJBdXRoUG9vbFByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnVXNlckF1dGhQb29sJyxcbiAgICBzb3VyY2VGaWxlOiAndXNlci1wb29scy5kLnRzJyxcbiAgICBjYW5Db25uZWN0VG86IFtdXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdVcHN0YXNoUmVkaXMnLFxuICAgIHJlc291cmNlVHlwZTogJ3Vwc3Rhc2gtcmVkaXMnLFxuICAgIHByb3BzVHlwZTogJ1Vwc3Rhc2hSZWRpc1Byb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnVXBzdGFzaFJlZGlzJyxcbiAgICBzb3VyY2VGaWxlOiAndXBzdGFzaC1yZWRpcy5kLnRzJyxcbiAgICBzdXBwb3J0c092ZXJyaWRlczogZmFsc2UsXG4gICAgY2FuQ29ubmVjdFRvOiBbXVxuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnU3FzUXVldWUnLFxuICAgIHJlc291cmNlVHlwZTogJ3Nxcy1xdWV1ZScsXG4gICAgcHJvcHNUeXBlOiAnU3FzUXVldWVQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ1Nxc1F1ZXVlJyxcbiAgICBzb3VyY2VGaWxlOiAnc3FzLXF1ZXVlcy5kLnRzJyxcbiAgICBjYW5Db25uZWN0VG86IFtdXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdTbnNUb3BpYycsXG4gICAgcmVzb3VyY2VUeXBlOiAnc25zLXRvcGljJyxcbiAgICBwcm9wc1R5cGU6ICdTbnNUb3BpY1Byb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnU25zVG9waWMnLFxuICAgIHNvdXJjZUZpbGU6ICdzbnMtdG9waWMuZC50cycsXG4gICAgY2FuQ29ubmVjdFRvOiBbXVxuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnS2luZXNpc1N0cmVhbScsXG4gICAgcmVzb3VyY2VUeXBlOiAna2luZXNpcy1zdHJlYW0nLFxuICAgIHByb3BzVHlwZTogJ0tpbmVzaXNTdHJlYW1Qcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0tpbmVzaXNTdHJlYW0nLFxuICAgIHNvdXJjZUZpbGU6ICdraW5lc2lzLXN0cmVhbXMuZC50cycsXG4gICAgY2FuQ29ubmVjdFRvOiBbXVxuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnV2ViQXBwRmlyZXdhbGwnLFxuICAgIHJlc291cmNlVHlwZTogJ3dlYi1hcHAtZmlyZXdhbGwnLFxuICAgIHByb3BzVHlwZTogJ1dlYkFwcEZpcmV3YWxsUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdXZWJBcHBGaXJld2FsbCcsXG4gICAgc291cmNlRmlsZTogJ3dlYi1hcHAtZmlyZXdhbGwuZC50cycsXG4gICAgY2FuQ29ubmVjdFRvOiBbXVxuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnT3BlblNlYXJjaERvbWFpbicsXG4gICAgcmVzb3VyY2VUeXBlOiAnb3Blbi1zZWFyY2gtZG9tYWluJyxcbiAgICBwcm9wc1R5cGU6ICdPcGVuU2VhcmNoRG9tYWluUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdPcGVuU2VhcmNoRG9tYWluJyxcbiAgICBzb3VyY2VGaWxlOiAnb3Blbi1zZWFyY2guZC50cycsXG4gICAgY2FuQ29ubmVjdFRvOiBbXVxuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnRWZzRmlsZXN5c3RlbScsXG4gICAgcmVzb3VyY2VUeXBlOiAnZWZzLWZpbGVzeXN0ZW0nLFxuICAgIHByb3BzVHlwZTogJ0Vmc0ZpbGVzeXN0ZW1Qcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0Vmc0ZpbGVzeXN0ZW0nLFxuICAgIHNvdXJjZUZpbGU6ICdlZnMtZmlsZXN5c3RlbS5kLnRzJyxcbiAgICBjYW5Db25uZWN0VG86IFtdXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdOZXh0anNXZWInLFxuICAgIHJlc291cmNlVHlwZTogJ25leHRqcy13ZWInLFxuICAgIHByb3BzVHlwZTogJ05leHRqc1dlYlByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnTmV4dGpzV2ViJyxcbiAgICBzb3VyY2VGaWxlOiAnbmV4dGpzLXdlYi5kLnRzJyxcbiAgICBoYXNBdWdtZW50ZWRQcm9wczogdHJ1ZSxcbiAgICBjYW5Db25uZWN0VG86IFtcbiAgICAgICdSZWxhdGlvbmFsRGF0YWJhc2UnLFxuICAgICAgJ0J1Y2tldCcsXG4gICAgICAnSG9zdGluZ0J1Y2tldCcsXG4gICAgICAnRHluYW1vRGJUYWJsZScsXG4gICAgICAnRXZlbnRCdXMnLFxuICAgICAgJ1JlZGlzQ2x1c3RlcicsXG4gICAgICAnTW9uZ29EYkF0bGFzQ2x1c3RlcicsXG4gICAgICAnVXBzdGFzaFJlZGlzJyxcbiAgICAgICdTcXNRdWV1ZScsXG4gICAgICAnU25zVG9waWMnLFxuICAgICAgJ0tpbmVzaXNTdHJlYW0nLFxuICAgICAgJ09wZW5TZWFyY2hEb21haW4nLFxuICAgICAgJ0Vmc0ZpbGVzeXN0ZW0nLFxuICAgICAgJ1ByaXZhdGVTZXJ2aWNlJyxcbiAgICAgICdXZWJTZXJ2aWNlJyxcbiAgICAgICdMYW1iZGFGdW5jdGlvbicsXG4gICAgICAnQmF0Y2hKb2InLFxuICAgICAgJ1VzZXJBdXRoUG9vbCdcbiAgICBdXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdBc3Ryb1dlYicsXG4gICAgcmVzb3VyY2VUeXBlOiAnYXN0cm8td2ViJyxcbiAgICBwcm9wc1R5cGU6ICdBc3Ryb1dlYlByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnQXN0cm9XZWInLFxuICAgIHNvdXJjZUZpbGU6ICdhc3Ryby13ZWIuZC50cycsXG4gICAgY2FuQ29ubmVjdFRvOiBbXG4gICAgICAnUmVsYXRpb25hbERhdGFiYXNlJyxcbiAgICAgICdCdWNrZXQnLFxuICAgICAgJ0hvc3RpbmdCdWNrZXQnLFxuICAgICAgJ0R5bmFtb0RiVGFibGUnLFxuICAgICAgJ0V2ZW50QnVzJyxcbiAgICAgICdSZWRpc0NsdXN0ZXInLFxuICAgICAgJ01vbmdvRGJBdGxhc0NsdXN0ZXInLFxuICAgICAgJ1Vwc3Rhc2hSZWRpcycsXG4gICAgICAnU3FzUXVldWUnLFxuICAgICAgJ1Nuc1RvcGljJyxcbiAgICAgICdLaW5lc2lzU3RyZWFtJyxcbiAgICAgICdPcGVuU2VhcmNoRG9tYWluJyxcbiAgICAgICdFZnNGaWxlc3lzdGVtJyxcbiAgICAgICdQcml2YXRlU2VydmljZScsXG4gICAgICAnV2ViU2VydmljZScsXG4gICAgICAnTGFtYmRhRnVuY3Rpb24nLFxuICAgICAgJ0JhdGNoSm9iJyxcbiAgICAgICdVc2VyQXV0aFBvb2wnXG4gICAgXVxuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnTnV4dFdlYicsXG4gICAgcmVzb3VyY2VUeXBlOiAnbnV4dC13ZWInLFxuICAgIHByb3BzVHlwZTogJ051eHRXZWJQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ051eHRXZWInLFxuICAgIHNvdXJjZUZpbGU6ICdudXh0LXdlYi5kLnRzJyxcbiAgICBjYW5Db25uZWN0VG86IFtcbiAgICAgICdSZWxhdGlvbmFsRGF0YWJhc2UnLFxuICAgICAgJ0J1Y2tldCcsXG4gICAgICAnSG9zdGluZ0J1Y2tldCcsXG4gICAgICAnRHluYW1vRGJUYWJsZScsXG4gICAgICAnRXZlbnRCdXMnLFxuICAgICAgJ1JlZGlzQ2x1c3RlcicsXG4gICAgICAnTW9uZ29EYkF0bGFzQ2x1c3RlcicsXG4gICAgICAnVXBzdGFzaFJlZGlzJyxcbiAgICAgICdTcXNRdWV1ZScsXG4gICAgICAnU25zVG9waWMnLFxuICAgICAgJ0tpbmVzaXNTdHJlYW0nLFxuICAgICAgJ09wZW5TZWFyY2hEb21haW4nLFxuICAgICAgJ0Vmc0ZpbGVzeXN0ZW0nLFxuICAgICAgJ1ByaXZhdGVTZXJ2aWNlJyxcbiAgICAgICdXZWJTZXJ2aWNlJyxcbiAgICAgICdMYW1iZGFGdW5jdGlvbicsXG4gICAgICAnQmF0Y2hKb2InLFxuICAgICAgJ1VzZXJBdXRoUG9vbCdcbiAgICBdXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdTdmVsdGVLaXRXZWInLFxuICAgIHJlc291cmNlVHlwZTogJ3N2ZWx0ZWtpdC13ZWInLFxuICAgIHByb3BzVHlwZTogJ1N2ZWx0ZUtpdFdlYlByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnU3ZlbHRlS2l0V2ViJyxcbiAgICBzb3VyY2VGaWxlOiAnc3ZlbHRla2l0LXdlYi5kLnRzJyxcbiAgICBjYW5Db25uZWN0VG86IFtcbiAgICAgICdSZWxhdGlvbmFsRGF0YWJhc2UnLFxuICAgICAgJ0J1Y2tldCcsXG4gICAgICAnSG9zdGluZ0J1Y2tldCcsXG4gICAgICAnRHluYW1vRGJUYWJsZScsXG4gICAgICAnRXZlbnRCdXMnLFxuICAgICAgJ1JlZGlzQ2x1c3RlcicsXG4gICAgICAnTW9uZ29EYkF0bGFzQ2x1c3RlcicsXG4gICAgICAnVXBzdGFzaFJlZGlzJyxcbiAgICAgICdTcXNRdWV1ZScsXG4gICAgICAnU25zVG9waWMnLFxuICAgICAgJ0tpbmVzaXNTdHJlYW0nLFxuICAgICAgJ09wZW5TZWFyY2hEb21haW4nLFxuICAgICAgJ0Vmc0ZpbGVzeXN0ZW0nLFxuICAgICAgJ1ByaXZhdGVTZXJ2aWNlJyxcbiAgICAgICdXZWJTZXJ2aWNlJyxcbiAgICAgICdMYW1iZGFGdW5jdGlvbicsXG4gICAgICAnQmF0Y2hKb2InLFxuICAgICAgJ1VzZXJBdXRoUG9vbCdcbiAgICBdXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdTb2xpZFN0YXJ0V2ViJyxcbiAgICByZXNvdXJjZVR5cGU6ICdzb2xpZHN0YXJ0LXdlYicsXG4gICAgcHJvcHNUeXBlOiAnU29saWRTdGFydFdlYlByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnU29saWRTdGFydFdlYicsXG4gICAgc291cmNlRmlsZTogJ3NvbGlkc3RhcnQtd2ViLmQudHMnLFxuICAgIGNhbkNvbm5lY3RUbzogW1xuICAgICAgJ1JlbGF0aW9uYWxEYXRhYmFzZScsXG4gICAgICAnQnVja2V0JyxcbiAgICAgICdIb3N0aW5nQnVja2V0JyxcbiAgICAgICdEeW5hbW9EYlRhYmxlJyxcbiAgICAgICdFdmVudEJ1cycsXG4gICAgICAnUmVkaXNDbHVzdGVyJyxcbiAgICAgICdNb25nb0RiQXRsYXNDbHVzdGVyJyxcbiAgICAgICdVcHN0YXNoUmVkaXMnLFxuICAgICAgJ1Nxc1F1ZXVlJyxcbiAgICAgICdTbnNUb3BpYycsXG4gICAgICAnS2luZXNpc1N0cmVhbScsXG4gICAgICAnT3BlblNlYXJjaERvbWFpbicsXG4gICAgICAnRWZzRmlsZXN5c3RlbScsXG4gICAgICAnUHJpdmF0ZVNlcnZpY2UnLFxuICAgICAgJ1dlYlNlcnZpY2UnLFxuICAgICAgJ0xhbWJkYUZ1bmN0aW9uJyxcbiAgICAgICdCYXRjaEpvYicsXG4gICAgICAnVXNlckF1dGhQb29sJ1xuICAgIF1cbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ1RhblN0YWNrV2ViJyxcbiAgICByZXNvdXJjZVR5cGU6ICd0YW5zdGFjay13ZWInLFxuICAgIHByb3BzVHlwZTogJ1RhblN0YWNrV2ViUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdUYW5TdGFja1dlYicsXG4gICAgc291cmNlRmlsZTogJ3RhbnN0YWNrLXdlYi5kLnRzJyxcbiAgICBjYW5Db25uZWN0VG86IFtcbiAgICAgICdSZWxhdGlvbmFsRGF0YWJhc2UnLFxuICAgICAgJ0J1Y2tldCcsXG4gICAgICAnSG9zdGluZ0J1Y2tldCcsXG4gICAgICAnRHluYW1vRGJUYWJsZScsXG4gICAgICAnRXZlbnRCdXMnLFxuICAgICAgJ1JlZGlzQ2x1c3RlcicsXG4gICAgICAnTW9uZ29EYkF0bGFzQ2x1c3RlcicsXG4gICAgICAnVXBzdGFzaFJlZGlzJyxcbiAgICAgICdTcXNRdWV1ZScsXG4gICAgICAnU25zVG9waWMnLFxuICAgICAgJ0tpbmVzaXNTdHJlYW0nLFxuICAgICAgJ09wZW5TZWFyY2hEb21haW4nLFxuICAgICAgJ0Vmc0ZpbGVzeXN0ZW0nLFxuICAgICAgJ1ByaXZhdGVTZXJ2aWNlJyxcbiAgICAgICdXZWJTZXJ2aWNlJyxcbiAgICAgICdMYW1iZGFGdW5jdGlvbicsXG4gICAgICAnQmF0Y2hKb2InLFxuICAgICAgJ1VzZXJBdXRoUG9vbCdcbiAgICBdXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdSZW1peFdlYicsXG4gICAgcmVzb3VyY2VUeXBlOiAncmVtaXgtd2ViJyxcbiAgICBwcm9wc1R5cGU6ICdSZW1peFdlYlByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnUmVtaXhXZWInLFxuICAgIHNvdXJjZUZpbGU6ICdyZW1peC13ZWIuZC50cycsXG4gICAgY2FuQ29ubmVjdFRvOiBbXG4gICAgICAnUmVsYXRpb25hbERhdGFiYXNlJyxcbiAgICAgICdCdWNrZXQnLFxuICAgICAgJ0hvc3RpbmdCdWNrZXQnLFxuICAgICAgJ0R5bmFtb0RiVGFibGUnLFxuICAgICAgJ0V2ZW50QnVzJyxcbiAgICAgICdSZWRpc0NsdXN0ZXInLFxuICAgICAgJ01vbmdvRGJBdGxhc0NsdXN0ZXInLFxuICAgICAgJ1Vwc3Rhc2hSZWRpcycsXG4gICAgICAnU3FzUXVldWUnLFxuICAgICAgJ1Nuc1RvcGljJyxcbiAgICAgICdLaW5lc2lzU3RyZWFtJyxcbiAgICAgICdPcGVuU2VhcmNoRG9tYWluJyxcbiAgICAgICdFZnNGaWxlc3lzdGVtJyxcbiAgICAgICdQcml2YXRlU2VydmljZScsXG4gICAgICAnV2ViU2VydmljZScsXG4gICAgICAnTGFtYmRhRnVuY3Rpb24nLFxuICAgICAgJ0JhdGNoSm9iJyxcbiAgICAgICdVc2VyQXV0aFBvb2wnXG4gICAgXVxuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnQmFzdGlvbicsXG4gICAgcmVzb3VyY2VUeXBlOiAnYmFzdGlvbicsXG4gICAgcHJvcHNUeXBlOiAnQmFzdGlvblByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnQmFzdGlvbicsXG4gICAgc291cmNlRmlsZTogJ2Jhc3Rpb24uZC50cycsXG4gICAgY2FuQ29ubmVjdFRvOiBbXVxuICB9XG5dO1xuXG4vKipcbiAqIERlZmluZXMgYWxsIHR5cGUgKyBwcm9wZXJ0aWVzIHNoYXBlZCBkZWZpbml0aW9ucyB0aGF0IGNhbiBiZSBjb252ZXJ0ZWQgdG8gYSBUeXBlc2NyaXB0IGNsYXNzXG4gKi9cbmV4cG9ydCB0eXBlIFR5cGVQcm9wZXJ0aWVzRGVmaW5pdGlvbiA9IHtcbiAgY2xhc3NOYW1lOiBzdHJpbmc7XG4gIHR5cGVWYWx1ZTogc3RyaW5nO1xuICBwcm9wc1R5cGU6IHN0cmluZztcbiAgaW50ZXJmYWNlTmFtZTogc3RyaW5nO1xuICBzb3VyY2VGaWxlOiBzdHJpbmc7XG4gIC8qKiBJZiB0cnVlLCB0aGlzIHR5cGUgaGFzIG5vIHByb3BlcnRpZXMgZmllbGQgLSBqdXN0IGEgdHlwZSBkaXNjcmltaW5hdG9yICovXG4gIHR5cGVPbmx5PzogYm9vbGVhbjtcbiAgLyoqIEN1c3RvbSBKU0RvYyBkZXNjcmlwdGlvbiBmb3IgdGhlIGNsYXNzIGNvbnN0cnVjdG9yICovXG4gIGpzZG9jPzogc3RyaW5nO1xufTtcblxuZXhwb3J0IGNvbnN0IE1JU0NfVFlQRVNfQ09OVkVSVElCTEVfVE9fQ0xBU1NFUzogVHlwZVByb3BlcnRpZXNEZWZpbml0aW9uW10gPSBbXG4gIC8vIERhdGFiYXNlIEVuZ2luZXNcbiAge1xuICAgIGNsYXNzTmFtZTogJ1Jkc0VuZ2luZVBvc3RncmVzJyxcbiAgICB0eXBlVmFsdWU6ICdwb3N0Z3JlcycsXG4gICAgcHJvcHNUeXBlOiAnUmRzRW5naW5lUHJvcGVydGllcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ1Jkc0VuZ2luZScsXG4gICAgc291cmNlRmlsZTogJ3JlbGF0aW9uYWwtZGF0YWJhc2VzLmQudHMnXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdSZHNFbmdpbmVNYXJpYWRiJyxcbiAgICB0eXBlVmFsdWU6ICdtYXJpYWRiJyxcbiAgICBwcm9wc1R5cGU6ICdSZHNFbmdpbmVQcm9wZXJ0aWVzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnUmRzRW5naW5lJyxcbiAgICBzb3VyY2VGaWxlOiAncmVsYXRpb25hbC1kYXRhYmFzZXMuZC50cydcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ1Jkc0VuZ2luZU15c3FsJyxcbiAgICB0eXBlVmFsdWU6ICdteXNxbCcsXG4gICAgcHJvcHNUeXBlOiAnUmRzRW5naW5lUHJvcGVydGllcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ1Jkc0VuZ2luZScsXG4gICAgc291cmNlRmlsZTogJ3JlbGF0aW9uYWwtZGF0YWJhc2VzLmQudHMnXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdSZHNFbmdpbmVPcmFjbGVFRScsXG4gICAgdHlwZVZhbHVlOiAnb3JhY2xlLWVlJyxcbiAgICBwcm9wc1R5cGU6ICdSZHNFbmdpbmVQcm9wZXJ0aWVzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnUmRzRW5naW5lJyxcbiAgICBzb3VyY2VGaWxlOiAncmVsYXRpb25hbC1kYXRhYmFzZXMuZC50cydcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ1Jkc0VuZ2luZU9yYWNsZVNFMicsXG4gICAgdHlwZVZhbHVlOiAnb3JhY2xlLXNlMicsXG4gICAgcHJvcHNUeXBlOiAnUmRzRW5naW5lUHJvcGVydGllcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ1Jkc0VuZ2luZScsXG4gICAgc291cmNlRmlsZTogJ3JlbGF0aW9uYWwtZGF0YWJhc2VzLmQudHMnXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdSZHNFbmdpbmVTcWxTZXJ2ZXJFRScsXG4gICAgdHlwZVZhbHVlOiAnc3Fsc2VydmVyLWVlJyxcbiAgICBwcm9wc1R5cGU6ICdSZHNFbmdpbmVQcm9wZXJ0aWVzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnUmRzRW5naW5lJyxcbiAgICBzb3VyY2VGaWxlOiAncmVsYXRpb25hbC1kYXRhYmFzZXMuZC50cydcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ1Jkc0VuZ2luZVNxbFNlcnZlckVYJyxcbiAgICB0eXBlVmFsdWU6ICdzcWxzZXJ2ZXItZXgnLFxuICAgIHByb3BzVHlwZTogJ1Jkc0VuZ2luZVByb3BlcnRpZXMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdSZHNFbmdpbmUnLFxuICAgIHNvdXJjZUZpbGU6ICdyZWxhdGlvbmFsLWRhdGFiYXNlcy5kLnRzJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnUmRzRW5naW5lU3FsU2VydmVyU0UnLFxuICAgIHR5cGVWYWx1ZTogJ3NxbHNlcnZlci1zZScsXG4gICAgcHJvcHNUeXBlOiAnUmRzRW5naW5lUHJvcGVydGllcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ1Jkc0VuZ2luZScsXG4gICAgc291cmNlRmlsZTogJ3JlbGF0aW9uYWwtZGF0YWJhc2VzLmQudHMnXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdSZHNFbmdpbmVTcWxTZXJ2ZXJXZWInLFxuICAgIHR5cGVWYWx1ZTogJ3NxbHNlcnZlci13ZWInLFxuICAgIHByb3BzVHlwZTogJ1Jkc0VuZ2luZVByb3BlcnRpZXMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdSZHNFbmdpbmUnLFxuICAgIHNvdXJjZUZpbGU6ICdyZWxhdGlvbmFsLWRhdGFiYXNlcy5kLnRzJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnQXVyb3JhRW5naW5lUG9zdGdyZXNxbCcsXG4gICAgdHlwZVZhbHVlOiAnYXVyb3JhLXBvc3RncmVzcWwnLFxuICAgIHByb3BzVHlwZTogJ0F1cm9yYUVuZ2luZVByb3BlcnRpZXMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdBdXJvcmFFbmdpbmUnLFxuICAgIHNvdXJjZUZpbGU6ICdyZWxhdGlvbmFsLWRhdGFiYXNlcy5kLnRzJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnQXVyb3JhRW5naW5lTXlzcWwnLFxuICAgIHR5cGVWYWx1ZTogJ2F1cm9yYS1teXNxbCcsXG4gICAgcHJvcHNUeXBlOiAnQXVyb3JhRW5naW5lUHJvcGVydGllcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0F1cm9yYUVuZ2luZScsXG4gICAgc291cmNlRmlsZTogJ3JlbGF0aW9uYWwtZGF0YWJhc2VzLmQudHMnXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdBdXJvcmFTZXJ2ZXJsZXNzRW5naW5lUG9zdGdyZXNxbCcsXG4gICAgdHlwZVZhbHVlOiAnYXVyb3JhLXBvc3RncmVzcWwtc2VydmVybGVzcycsXG4gICAgcHJvcHNUeXBlOiAnQXVyb3JhU2VydmVybGVzc0VuZ2luZVByb3BlcnRpZXMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdBdXJvcmFTZXJ2ZXJsZXNzRW5naW5lJyxcbiAgICBzb3VyY2VGaWxlOiAncmVsYXRpb25hbC1kYXRhYmFzZXMuZC50cydcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ0F1cm9yYVNlcnZlcmxlc3NFbmdpbmVNeXNxbCcsXG4gICAgdHlwZVZhbHVlOiAnYXVyb3JhLW15c3FsLXNlcnZlcmxlc3MnLFxuICAgIHByb3BzVHlwZTogJ0F1cm9yYVNlcnZlcmxlc3NFbmdpbmVQcm9wZXJ0aWVzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnQXVyb3JhU2VydmVybGVzc0VuZ2luZScsXG4gICAgc291cmNlRmlsZTogJ3JlbGF0aW9uYWwtZGF0YWJhc2VzLmQudHMnXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdBdXJvcmFTZXJ2ZXJsZXNzVjJFbmdpbmVQb3N0Z3Jlc3FsJyxcbiAgICB0eXBlVmFsdWU6ICdhdXJvcmEtcG9zdGdyZXNxbC1zZXJ2ZXJsZXNzLXYyJyxcbiAgICBwcm9wc1R5cGU6ICdBdXJvcmFTZXJ2ZXJsZXNzVjJFbmdpbmVQcm9wZXJ0aWVzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnQXVyb3JhU2VydmVybGVzc1YyRW5naW5lJyxcbiAgICBzb3VyY2VGaWxlOiAncmVsYXRpb25hbC1kYXRhYmFzZXMuZC50cydcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ0F1cm9yYVNlcnZlcmxlc3NWMkVuZ2luZU15c3FsJyxcbiAgICB0eXBlVmFsdWU6ICdhdXJvcmEtbXlzcWwtc2VydmVybGVzcy12MicsXG4gICAgcHJvcHNUeXBlOiAnQXVyb3JhU2VydmVybGVzc1YyRW5naW5lUHJvcGVydGllcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0F1cm9yYVNlcnZlcmxlc3NWMkVuZ2luZScsXG4gICAgc291cmNlRmlsZTogJ3JlbGF0aW9uYWwtZGF0YWJhc2VzLmQudHMnXG4gIH0sXG4gIC8vIExhbWJkYSBQYWNrYWdpbmdcbiAge1xuICAgIGNsYXNzTmFtZTogJ1N0YWNrdGFwZUxhbWJkYUJ1aWxkcGFja1BhY2thZ2luZycsXG4gICAgdHlwZVZhbHVlOiAnc3RhY2t0YXBlLWxhbWJkYS1idWlsZHBhY2snLFxuICAgIHByb3BzVHlwZTogJ1N0cEJ1aWxkcGFja0xhbWJkYVBhY2thZ2luZ1Byb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnU3RwQnVpbGRwYWNrTGFtYmRhUGFja2FnaW5nJyxcbiAgICBzb3VyY2VGaWxlOiAnZGVwbG95bWVudC1hcnRpZmFjdHMuZC50cydcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ0N1c3RvbUFydGlmYWN0TGFtYmRhUGFja2FnaW5nJyxcbiAgICB0eXBlVmFsdWU6ICdjdXN0b20tYXJ0aWZhY3QnLFxuICAgIHByb3BzVHlwZTogJ0N1c3RvbUFydGlmYWN0TGFtYmRhUGFja2FnaW5nUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdDdXN0b21BcnRpZmFjdExhbWJkYVBhY2thZ2luZycsXG4gICAgc291cmNlRmlsZTogJ2RlcGxveW1lbnQtYXJ0aWZhY3RzLmQudHMnXG4gIH0sXG4gIC8vIENvbnRhaW5lciBQYWNrYWdpbmdcbiAge1xuICAgIGNsYXNzTmFtZTogJ1ByZWJ1aWx0SW1hZ2VQYWNrYWdpbmcnLFxuICAgIHR5cGVWYWx1ZTogJ3ByZWJ1aWx0LWltYWdlJyxcbiAgICBwcm9wc1R5cGU6ICdQcmVidWlsdEltYWdlQ3dQYWNrYWdpbmdQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ1ByZWJ1aWx0Q3dJbWFnZVBhY2thZ2luZycsXG4gICAgc291cmNlRmlsZTogJ2RlcGxveW1lbnQtYXJ0aWZhY3RzLmQudHMnXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdDdXN0b21Eb2NrZXJmaWxlUGFja2FnaW5nJyxcbiAgICB0eXBlVmFsdWU6ICdjdXN0b20tZG9ja2VyZmlsZScsXG4gICAgcHJvcHNUeXBlOiAnQ3VzdG9tRG9ja2VyZmlsZUN3SW1hZ2VQYWNrYWdpbmdQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0N1c3RvbURvY2tlcmZpbGVDd0ltYWdlUGFja2FnaW5nJyxcbiAgICBzb3VyY2VGaWxlOiAnZGVwbG95bWVudC1hcnRpZmFjdHMuZC50cydcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ0V4dGVybmFsQnVpbGRwYWNrUGFja2FnaW5nJyxcbiAgICB0eXBlVmFsdWU6ICdleHRlcm5hbC1idWlsZHBhY2snLFxuICAgIHByb3BzVHlwZTogJ0V4dGVybmFsQnVpbGRwYWNrQ3dJbWFnZVBhY2thZ2luZ1Byb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnRXh0ZXJuYWxCdWlsZHBhY2tDd0ltYWdlUGFja2FnaW5nJyxcbiAgICBzb3VyY2VGaWxlOiAnZGVwbG95bWVudC1hcnRpZmFjdHMuZC50cydcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ05peHBhY2tzUGFja2FnaW5nJyxcbiAgICB0eXBlVmFsdWU6ICduaXhwYWNrcycsXG4gICAgcHJvcHNUeXBlOiAnTml4cGFja3NDd0ltYWdlUGFja2FnaW5nUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdOaXhwYWNrc0N3SW1hZ2VQYWNrYWdpbmcnLFxuICAgIHNvdXJjZUZpbGU6ICdkZXBsb3ltZW50LWFydGlmYWN0cy5kLnRzJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnU3RhY2t0YXBlSW1hZ2VCdWlsZHBhY2tQYWNrYWdpbmcnLFxuICAgIHR5cGVWYWx1ZTogJ3N0YWNrdGFwZS1pbWFnZS1idWlsZHBhY2snLFxuICAgIHByb3BzVHlwZTogJ1N0cEJ1aWxkcGFja0N3SW1hZ2VQYWNrYWdpbmdQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ1N0cEJ1aWxkcGFja0N3SW1hZ2VQYWNrYWdpbmcnLFxuICAgIHNvdXJjZUZpbGU6ICdkZXBsb3ltZW50LWFydGlmYWN0cy5kLnRzJ1xuICB9LFxuICAvLyBMYW1iZGEgRnVuY3Rpb24gRXZlbnRzL0ludGVncmF0aW9uc1xuICB7XG4gICAgY2xhc3NOYW1lOiAnSHR0cEFwaUludGVncmF0aW9uJyxcbiAgICB0eXBlVmFsdWU6ICdodHRwLWFwaS1nYXRld2F5JyxcbiAgICBwcm9wc1R5cGU6ICdIdHRwQXBpSW50ZWdyYXRpb25Qcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0h0dHBBcGlJbnRlZ3JhdGlvbicsXG4gICAgc291cmNlRmlsZTogJ2V2ZW50cy5kLnRzJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnUzNJbnRlZ3JhdGlvbicsXG4gICAgdHlwZVZhbHVlOiAnczMnLFxuICAgIHByb3BzVHlwZTogJ1MzSW50ZWdyYXRpb25Qcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ1MzSW50ZWdyYXRpb24nLFxuICAgIHNvdXJjZUZpbGU6ICdldmVudHMuZC50cydcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ1NjaGVkdWxlSW50ZWdyYXRpb24nLFxuICAgIHR5cGVWYWx1ZTogJ3NjaGVkdWxlJyxcbiAgICBwcm9wc1R5cGU6ICdTY2hlZHVsZUludGVncmF0aW9uUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdTY2hlZHVsZUludGVncmF0aW9uJyxcbiAgICBzb3VyY2VGaWxlOiAnZXZlbnRzLmQudHMnXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdTbnNJbnRlZ3JhdGlvbicsXG4gICAgdHlwZVZhbHVlOiAnc25zJyxcbiAgICBwcm9wc1R5cGU6ICdTbnNJbnRlZ3JhdGlvblByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnU25zSW50ZWdyYXRpb24nLFxuICAgIHNvdXJjZUZpbGU6ICdldmVudHMuZC50cydcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ1Nxc0ludGVncmF0aW9uJyxcbiAgICB0eXBlVmFsdWU6ICdzcXMnLFxuICAgIHByb3BzVHlwZTogJ1Nxc0ludGVncmF0aW9uUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdTcXNJbnRlZ3JhdGlvbicsXG4gICAgc291cmNlRmlsZTogJ2V2ZW50cy5kLnRzJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnS2luZXNpc0ludGVncmF0aW9uJyxcbiAgICB0eXBlVmFsdWU6ICdraW5lc2lzJyxcbiAgICBwcm9wc1R5cGU6ICdLaW5lc2lzSW50ZWdyYXRpb25Qcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0tpbmVzaXNJbnRlZ3JhdGlvbicsXG4gICAgc291cmNlRmlsZTogJ2V2ZW50cy5kLnRzJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnRHluYW1vRGJJbnRlZ3JhdGlvbicsXG4gICAgdHlwZVZhbHVlOiAnZHluYW1vZGInLFxuICAgIHByb3BzVHlwZTogJ0R5bmFtb0RiSW50ZWdyYXRpb25Qcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0R5bmFtb0RiSW50ZWdyYXRpb24nLFxuICAgIHNvdXJjZUZpbGU6ICdldmVudHMuZC50cydcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ0Nsb3Vkd2F0Y2hMb2dJbnRlZ3JhdGlvbicsXG4gICAgdHlwZVZhbHVlOiAnY2xvdWR3YXRjaC1sb2dzJyxcbiAgICBwcm9wc1R5cGU6ICdDbG91ZHdhdGNoTG9nSW50ZWdyYXRpb25Qcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0Nsb3Vkd2F0Y2hMb2dJbnRlZ3JhdGlvbicsXG4gICAgc291cmNlRmlsZTogJ2V2ZW50cy5kLnRzJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnQXBwbGljYXRpb25Mb2FkQmFsYW5jZXJJbnRlZ3JhdGlvbicsXG4gICAgdHlwZVZhbHVlOiAnYXBwbGljYXRpb24tbG9hZC1iYWxhbmNlcicsXG4gICAgcHJvcHNUeXBlOiAnQXBwbGljYXRpb25Mb2FkQmFsYW5jZXJJbnRlZ3JhdGlvblByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnQXBwbGljYXRpb25Mb2FkQmFsYW5jZXJJbnRlZ3JhdGlvbicsXG4gICAgc291cmNlRmlsZTogJ2V2ZW50cy5kLnRzJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnRXZlbnRCdXNJbnRlZ3JhdGlvbicsXG4gICAgdHlwZVZhbHVlOiAnZXZlbnQtYnVzJyxcbiAgICBwcm9wc1R5cGU6ICdFdmVudEJ1c0ludGVncmF0aW9uUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdFdmVudEJ1c0ludGVncmF0aW9uJyxcbiAgICBzb3VyY2VGaWxlOiAnZXZlbnRzLmQudHMnXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdLYWZrYVRvcGljSW50ZWdyYXRpb24nLFxuICAgIHR5cGVWYWx1ZTogJ2thZmthLXRvcGljJyxcbiAgICBwcm9wc1R5cGU6ICdLYWZrYVRvcGljSW50ZWdyYXRpb25Qcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0thZmthVG9waWNJbnRlZ3JhdGlvbicsXG4gICAgc291cmNlRmlsZTogJ2V2ZW50cy5kLnRzJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnQWxhcm1JbnRlZ3JhdGlvbicsXG4gICAgdHlwZVZhbHVlOiAnYWxhcm0nLFxuICAgIHByb3BzVHlwZTogJ0FsYXJtSW50ZWdyYXRpb25Qcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0FsYXJtSW50ZWdyYXRpb24nLFxuICAgIHNvdXJjZUZpbGU6ICdldmVudHMuZC50cydcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ0lvdEludGVncmF0aW9uJyxcbiAgICB0eXBlVmFsdWU6ICdpb3QnLFxuICAgIHByb3BzVHlwZTogJ0lvdEludGVncmF0aW9uUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdJb3RJbnRlZ3JhdGlvbicsXG4gICAgc291cmNlRmlsZTogJ2V2ZW50cy5kLnRzJ1xuICB9LFxuICAvLyBDRE4gUm91dGVzXG4gIHtcbiAgICBjbGFzc05hbWU6ICdDZG5Mb2FkQmFsYW5jZXJSb3V0ZScsXG4gICAgdHlwZVZhbHVlOiAnYXBwbGljYXRpb24tbG9hZC1iYWxhbmNlcicsXG4gICAgcHJvcHNUeXBlOiAnQ2RuTG9hZEJhbGFuY2VyT3JpZ2luJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnQ2RuTG9hZEJhbGFuY2VyT3JpZ2luJyxcbiAgICBzb3VyY2VGaWxlOiAnY2RuLmQudHMnXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdDZG5IdHRwQXBpR2F0ZXdheVJvdXRlJyxcbiAgICB0eXBlVmFsdWU6ICdodHRwLWFwaS1nYXRld2F5JyxcbiAgICBwcm9wc1R5cGU6ICdDZG5IdHRwQXBpR2F0ZXdheU9yaWdpbicsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0Nkbkh0dHBBcGlHYXRld2F5T3JpZ2luJyxcbiAgICBzb3VyY2VGaWxlOiAnY2RuLmQudHMnXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdDZG5MYW1iZGFGdW5jdGlvblJvdXRlJyxcbiAgICB0eXBlVmFsdWU6ICdmdW5jdGlvbicsXG4gICAgcHJvcHNUeXBlOiAnQ2RuTGFtYmRhRnVuY3Rpb25PcmlnaW4nLFxuICAgIGludGVyZmFjZU5hbWU6ICdDZG5MYW1iZGFGdW5jdGlvbk9yaWdpbicsXG4gICAgc291cmNlRmlsZTogJ2Nkbi5kLnRzJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnQ2RuQ3VzdG9tRG9tYWluUm91dGUnLFxuICAgIHR5cGVWYWx1ZTogJ2N1c3RvbS1vcmlnaW4nLFxuICAgIHByb3BzVHlwZTogJ0NkbkN1c3RvbU9yaWdpbicsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0NkbkN1c3RvbU9yaWdpbicsXG4gICAgc291cmNlRmlsZTogJ2Nkbi5kLnRzJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnQ2RuQnVja2V0Um91dGUnLFxuICAgIHR5cGVWYWx1ZTogJ2J1Y2tldCcsXG4gICAgcHJvcHNUeXBlOiAnQ2RuQnVja2V0T3JpZ2luJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnQ2RuQnVja2V0T3JpZ2luJyxcbiAgICBzb3VyY2VGaWxlOiAnY2RuLmQudHMnXG4gIH0sXG4gIC8vIFdlYiBBcHAgRmlyZXdhbGwgUnVsZXNcbiAge1xuICAgIGNsYXNzTmFtZTogJ01hbmFnZWRSdWxlR3JvdXAnLFxuICAgIHR5cGVWYWx1ZTogJ21hbmFnZWQtcnVsZS1ncm91cCcsXG4gICAgcHJvcHNUeXBlOiAnTWFuYWdlZFJ1bGVHcm91cFByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnTWFuYWdlZFJ1bGVHcm91cCcsXG4gICAgc291cmNlRmlsZTogJ3dlYi1hcHAtZmlyZXdhbGwuZC50cydcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ0N1c3RvbVJ1bGVHcm91cCcsXG4gICAgdHlwZVZhbHVlOiAnY3VzdG9tLXJ1bGUtZ3JvdXAnLFxuICAgIHByb3BzVHlwZTogJ0N1c3RvbVJ1bGVHcm91cFByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnQ3VzdG9tUnVsZUdyb3VwJyxcbiAgICBzb3VyY2VGaWxlOiAnd2ViLWFwcC1maXJld2FsbC5kLnRzJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnUmF0ZUJhc2VkUnVsZScsXG4gICAgdHlwZVZhbHVlOiAncmF0ZS1iYXNlZC1ydWxlJyxcbiAgICBwcm9wc1R5cGU6ICdSYXRlQmFzZWRTdGF0ZW1lbnRQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ1JhdGVCYXNlZFJ1bGUnLFxuICAgIHNvdXJjZUZpbGU6ICd3ZWItYXBwLWZpcmV3YWxsLmQudHMnXG4gIH0sXG4gIC8vIFNRUyBRdWV1ZSBJbnRlZ3JhdGlvbnNcbiAge1xuICAgIGNsYXNzTmFtZTogJ1Nxc1F1ZXVlRXZlbnRCdXNJbnRlZ3JhdGlvbicsXG4gICAgdHlwZVZhbHVlOiAnZXZlbnQtYnVzJyxcbiAgICBwcm9wc1R5cGU6ICdTcXNRdWV1ZUV2ZW50QnVzSW50ZWdyYXRpb25Qcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ1Nxc1F1ZXVlRXZlbnRCdXNJbnRlZ3JhdGlvbicsXG4gICAgc291cmNlRmlsZTogJ3Nxcy1xdWV1ZXMuZC50cydcbiAgfSxcbiAgLy8gTXVsdGkgQ29udGFpbmVyIFdvcmtsb2FkIEludGVncmF0aW9uc1xuICB7XG4gICAgY2xhc3NOYW1lOiAnTXVsdGlDb250YWluZXJXb3JrbG9hZEh0dHBBcGlJbnRlZ3JhdGlvbicsXG4gICAgdHlwZVZhbHVlOiAnaHR0cC1hcGktZ2F0ZXdheScsXG4gICAgcHJvcHNUeXBlOiAnQ29udGFpbmVyV29ya2xvYWRIdHRwQXBpSW50ZWdyYXRpb25Qcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0NvbnRhaW5lcldvcmtsb2FkSHR0cEFwaUludGVncmF0aW9uJyxcbiAgICBzb3VyY2VGaWxlOiAnbXVsdGktY29udGFpbmVyLXdvcmtsb2Fkcy5kLnRzJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnTXVsdGlDb250YWluZXJXb3JrbG9hZExvYWRCYWxhbmNlckludGVncmF0aW9uJyxcbiAgICB0eXBlVmFsdWU6ICdhcHBsaWNhdGlvbi1sb2FkLWJhbGFuY2VyJyxcbiAgICBwcm9wc1R5cGU6ICdDb250YWluZXJXb3JrbG9hZExvYWRCYWxhbmNlckludGVncmF0aW9uUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdDb250YWluZXJXb3JrbG9hZExvYWRCYWxhbmNlckludGVncmF0aW9uJyxcbiAgICBzb3VyY2VGaWxlOiAnbXVsdGktY29udGFpbmVyLXdvcmtsb2Fkcy5kLnRzJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnTXVsdGlDb250YWluZXJXb3JrbG9hZE5ldHdvcmtMb2FkQmFsYW5jZXJJbnRlZ3JhdGlvbicsXG4gICAgdHlwZVZhbHVlOiAnbmV0d29yay1sb2FkLWJhbGFuY2VyJyxcbiAgICBwcm9wc1R5cGU6ICdDb250YWluZXJXb3JrbG9hZE5ldHdvcmtMb2FkQmFsYW5jZXJJbnRlZ3JhdGlvblByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnQ29udGFpbmVyV29ya2xvYWROZXR3b3JrTG9hZEJhbGFuY2VySW50ZWdyYXRpb24nLFxuICAgIHNvdXJjZUZpbGU6ICdtdWx0aS1jb250YWluZXItd29ya2xvYWRzLmQudHMnXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdNdWx0aUNvbnRhaW5lcldvcmtsb2FkSW50ZXJuYWxJbnRlZ3JhdGlvbicsXG4gICAgdHlwZVZhbHVlOiAnd29ya2xvYWQtaW50ZXJuYWwnLFxuICAgIHByb3BzVHlwZTogJ0NvbnRhaW5lcldvcmtsb2FkSW50ZXJuYWxJbnRlZ3JhdGlvblByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnQ29udGFpbmVyV29ya2xvYWRJbnRlcm5hbEludGVncmF0aW9uJyxcbiAgICBzb3VyY2VGaWxlOiAnbXVsdGktY29udGFpbmVyLXdvcmtsb2Fkcy5kLnRzJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnTXVsdGlDb250YWluZXJXb3JrbG9hZFNlcnZpY2VDb25uZWN0SW50ZWdyYXRpb24nLFxuICAgIHR5cGVWYWx1ZTogJ3NlcnZpY2UtY29ubmVjdCcsXG4gICAgcHJvcHNUeXBlOiAnQ29udGFpbmVyV29ya2xvYWRTZXJ2aWNlQ29ubmVjdEludGVncmF0aW9uUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdDb250YWluZXJXb3JrbG9hZFNlcnZpY2VDb25uZWN0SW50ZWdyYXRpb24nLFxuICAgIHNvdXJjZUZpbGU6ICdtdWx0aS1jb250YWluZXItd29ya2xvYWRzLmQudHMnXG4gIH0sXG4gIC8vIFNjcmlwdHNcbiAge1xuICAgIGNsYXNzTmFtZTogJ0xvY2FsU2NyaXB0JyxcbiAgICB0eXBlVmFsdWU6ICdsb2NhbC1zY3JpcHQnLFxuICAgIHByb3BzVHlwZTogJ0xvY2FsU2NyaXB0UHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdMb2NhbFNjcmlwdCcsXG4gICAgc291cmNlRmlsZTogJ19faGVscGVycy5kLnRzJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnQmFzdGlvblNjcmlwdCcsXG4gICAgdHlwZVZhbHVlOiAnYmFzdGlvbi1zY3JpcHQnLFxuICAgIHByb3BzVHlwZTogJ0Jhc3Rpb25TY3JpcHRQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0Jhc3Rpb25TY3JpcHQnLFxuICAgIHNvdXJjZUZpbGU6ICdfX2hlbHBlcnMuZC50cydcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ0xvY2FsU2NyaXB0V2l0aEJhc3Rpb25UdW5uZWxpbmcnLFxuICAgIHR5cGVWYWx1ZTogJ2xvY2FsLXNjcmlwdC13aXRoLWJhc3Rpb24tdHVubmVsaW5nJyxcbiAgICBwcm9wc1R5cGU6ICdMb2NhbFNjcmlwdFdpdGhCYXN0aW9uVHVubmVsaW5nUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdMb2NhbFNjcmlwdFdpdGhCYXN0aW9uVHVubmVsaW5nJyxcbiAgICBzb3VyY2VGaWxlOiAnX19oZWxwZXJzLmQudHMnXG4gIH0sXG4gIC8vIExvZyBGb3J3YXJkaW5nXG4gIHtcbiAgICBjbGFzc05hbWU6ICdIdHRwRW5kcG9pbnRMb2dGb3J3YXJkaW5nJyxcbiAgICB0eXBlVmFsdWU6ICdodHRwLWVuZHBvaW50JyxcbiAgICBwcm9wc1R5cGU6ICdIdHRwRW5kcG9pbnRMb2dGb3J3YXJkaW5nUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdIdHRwRW5kcG9pbnRMb2dGb3J3YXJkaW5nJyxcbiAgICBzb3VyY2VGaWxlOiAnX19oZWxwZXJzLmQudHMnXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdIaWdobGlnaHRMb2dGb3J3YXJkaW5nJyxcbiAgICB0eXBlVmFsdWU6ICdoaWdobGlnaHQnLFxuICAgIHByb3BzVHlwZTogJ0hpZ2hsaWdodExvZ0ZvcndhcmRpbmdQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0hpZ2hsaWdodExvZ0ZvcndhcmRpbmcnLFxuICAgIHNvdXJjZUZpbGU6ICdfX2hlbHBlcnMuZC50cydcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ0RhdGFkb2dMb2dGb3J3YXJkaW5nJyxcbiAgICB0eXBlVmFsdWU6ICdkYXRhZG9nJyxcbiAgICBwcm9wc1R5cGU6ICdEYXRhZG9nTG9nRm9yd2FyZGluZ1Byb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnRGF0YWRvZ0xvZ0ZvcndhcmRpbmcnLFxuICAgIHNvdXJjZUZpbGU6ICdfX2hlbHBlcnMuZC50cydcbiAgfSxcbiAgLy8gQnVja2V0IExpZmVjeWNsZSBSdWxlc1xuICB7XG4gICAgY2xhc3NOYW1lOiAnRXhwaXJhdGlvbkxpZmVjeWNsZVJ1bGUnLFxuICAgIHR5cGVWYWx1ZTogJ2V4cGlyYXRpb24nLFxuICAgIHByb3BzVHlwZTogJ0V4cGlyYXRpb25Qcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0V4cGlyYXRpb25MaWZlY3ljbGVSdWxlJyxcbiAgICBzb3VyY2VGaWxlOiAnYnVja2V0cy5kLnRzJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnTm9uQ3VycmVudFZlcnNpb25FeHBpcmF0aW9uTGlmZWN5Y2xlUnVsZScsXG4gICAgdHlwZVZhbHVlOiAnbm9uLWN1cnJlbnQtdmVyc2lvbi1leHBpcmF0aW9uJyxcbiAgICBwcm9wc1R5cGU6ICdOb25DdXJyZW50VmVyc2lvbkV4cGlyYXRpb25Qcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ05vbkN1cnJlbnRWZXJzaW9uRXhwaXJhdGlvbkxpZmVjeWNsZVJ1bGUnLFxuICAgIHNvdXJjZUZpbGU6ICdidWNrZXRzLmQudHMnXG4gIH0sXG4gIC8vIEVGUyBNb3VudHNcbiAge1xuICAgIGNsYXNzTmFtZTogJ0NvbnRhaW5lckVmc01vdW50JyxcbiAgICB0eXBlVmFsdWU6ICdlZnMnLFxuICAgIHByb3BzVHlwZTogJ0NvbnRhaW5lckVmc01vdW50UHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdDb250YWluZXJFZnNNb3VudCcsXG4gICAgc291cmNlRmlsZTogJ19faGVscGVycy5kLnRzJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnTGFtYmRhRWZzTW91bnQnLFxuICAgIHR5cGVWYWx1ZTogJ2VmcycsXG4gICAgcHJvcHNUeXBlOiAnTGFtYmRhRWZzTW91bnRQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0xhbWJkYUVmc01vdW50JyxcbiAgICBzb3VyY2VGaWxlOiAnZnVuY3Rpb25zLmQudHMnXG4gIH0sXG4gIC8vIEF1dGhvcml6ZXJzXG4gIHtcbiAgICBjbGFzc05hbWU6ICdDb2duaXRvQXV0aG9yaXplcicsXG4gICAgdHlwZVZhbHVlOiAnY29nbml0bycsXG4gICAgcHJvcHNUeXBlOiAnQ29nbml0b0F1dGhvcml6ZXJQcm9wZXJ0aWVzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnQ29nbml0b0F1dGhvcml6ZXInLFxuICAgIHNvdXJjZUZpbGU6ICd1c2VyLXBvb2xzLmQudHMnXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdMYW1iZGFBdXRob3JpemVyJyxcbiAgICB0eXBlVmFsdWU6ICdsYW1iZGEnLFxuICAgIHByb3BzVHlwZTogJ0xhbWJkYUF1dGhvcml6ZXJQcm9wZXJ0aWVzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnTGFtYmRhQXV0aG9yaXplcicsXG4gICAgc291cmNlRmlsZTogJ3VzZXItcG9vbHMuZC50cydcbiAgfSxcbiAgLy8gQWxhcm0gVHJpZ2dlcnNcbiAge1xuICAgIGNsYXNzTmFtZTogJ0FwcGxpY2F0aW9uTG9hZEJhbGFuY2VyQ3VzdG9tVHJpZ2dlcicsXG4gICAgdHlwZVZhbHVlOiAnYXBwbGljYXRpb24tbG9hZC1iYWxhbmNlci1jdXN0b20nLFxuICAgIHByb3BzVHlwZTogJ0FwcGxpY2F0aW9uTG9hZEJhbGFuY2VyQ3VzdG9tVHJpZ2dlclByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnQXBwbGljYXRpb25Mb2FkQmFsYW5jZXJDdXN0b21UcmlnZ2VyJyxcbiAgICBzb3VyY2VGaWxlOiAnYWxhcm0tbWV0cmljcy5kLnRzJyxcbiAgICBqc2RvYzpcbiAgICAgICdUcmlnZ2VycyBhbiBhbGFybSBiYXNlZCBvbiBhbnkgQXBwbGljYXRpb24gTG9hZCBCYWxhbmNlciBDbG91ZFdhdGNoIG1ldHJpYyAoZS5nLiwgY29ubmVjdGlvbiBjb3VudHMsIHJlcXVlc3QgY291bnRzLCB0YXJnZXQgcmVzcG9uc2UgdGltZXMpLidcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ0FwcGxpY2F0aW9uTG9hZEJhbGFuY2VyRXJyb3JSYXRlVHJpZ2dlcicsXG4gICAgdHlwZVZhbHVlOiAnYXBwbGljYXRpb24tbG9hZC1iYWxhbmNlci1lcnJvci1yYXRlJyxcbiAgICBwcm9wc1R5cGU6ICdBcHBsaWNhdGlvbkxvYWRCYWxhbmNlckVycm9yUmF0ZVRyaWdnZXJQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0FwcGxpY2F0aW9uTG9hZEJhbGFuY2VyRXJyb3JSYXRlVHJpZ2dlcicsXG4gICAgc291cmNlRmlsZTogJ2FsYXJtcy5kLnRzJyxcbiAgICBqc2RvYzpcbiAgICAgICdUcmlnZ2VycyBhbiBhbGFybSB3aGVuIHRoZSBBcHBsaWNhdGlvbiBMb2FkIEJhbGFuY2VyIGVycm9yIHJhdGUgKHBlcmNlbnRhZ2Ugb2YgNHh4LzV4eCByZXNwb25zZXMpIGV4Y2VlZHMgdGhlIHRocmVzaG9sZC4nXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdBcHBsaWNhdGlvbkxvYWRCYWxhbmNlclVuaGVhbHRoeVRhcmdldHNUcmlnZ2VyJyxcbiAgICB0eXBlVmFsdWU6ICdhcHBsaWNhdGlvbi1sb2FkLWJhbGFuY2VyLXVuaGVhbHRoeS10YXJnZXRzJyxcbiAgICBwcm9wc1R5cGU6ICdBcHBsaWNhdGlvbkxvYWRCYWxhbmNlclVuaGVhbHRoeVRhcmdldHNUcmlnZ2VyUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdBcHBsaWNhdGlvbkxvYWRCYWxhbmNlclVuaGVhbHRoeVRhcmdldHNUcmlnZ2VyJyxcbiAgICBzb3VyY2VGaWxlOiAnYWxhcm1zLmQudHMnLFxuICAgIGpzZG9jOlxuICAgICAgJ1RyaWdnZXJzIGFuIGFsYXJtIHdoZW4gdGhlIHBlcmNlbnRhZ2Ugb2YgdW5oZWFsdGh5IHRhcmdldHMgYmVoaW5kIHRoZSBBcHBsaWNhdGlvbiBMb2FkIEJhbGFuY2VyIGV4Y2VlZHMgdGhlIHRocmVzaG9sZC4nXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdIdHRwQXBpR2F0ZXdheUVycm9yUmF0ZVRyaWdnZXInLFxuICAgIHR5cGVWYWx1ZTogJ2h0dHAtYXBpLWdhdGV3YXktZXJyb3ItcmF0ZScsXG4gICAgcHJvcHNUeXBlOiAnSHR0cEFwaUdhdGV3YXlFcnJvclJhdGVUcmlnZ2VyUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdIdHRwQXBpR2F0ZXdheUVycm9yUmF0ZVRyaWdnZXInLFxuICAgIHNvdXJjZUZpbGU6ICdhbGFybXMuZC50cycsXG4gICAganNkb2M6XG4gICAgICAnVHJpZ2dlcnMgYW4gYWxhcm0gd2hlbiB0aGUgSFRUUCBBUEkgR2F0ZXdheSBlcnJvciByYXRlIChwZXJjZW50YWdlIG9mIDR4eC81eHggcmVzcG9uc2VzKSBleGNlZWRzIHRoZSB0aHJlc2hvbGQuJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnSHR0cEFwaUdhdGV3YXlMYXRlbmN5VHJpZ2dlcicsXG4gICAgdHlwZVZhbHVlOiAnaHR0cC1hcGktZ2F0ZXdheS1sYXRlbmN5JyxcbiAgICBwcm9wc1R5cGU6ICdIdHRwQXBpR2F0ZXdheUxhdGVuY3lUcmlnZ2VyUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdIdHRwQXBpR2F0ZXdheUxhdGVuY3lUcmlnZ2VyJyxcbiAgICBzb3VyY2VGaWxlOiAnYWxhcm1zLmQudHMnLFxuICAgIGpzZG9jOlxuICAgICAgJ1RyaWdnZXJzIGFuIGFsYXJtIHdoZW4gSFRUUCBBUEkgR2F0ZXdheSBsYXRlbmN5IGV4Y2VlZHMgdGhlIHRocmVzaG9sZC4gTGF0ZW5jeSBpcyBtZWFzdXJlZCBmcm9tIHJlcXVlc3QgcmVjZWlwdCB0byByZXNwb25zZSBzZW50LidcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ1JlbGF0aW9uYWxEYXRhYmFzZVJlYWRMYXRlbmN5VHJpZ2dlcicsXG4gICAgdHlwZVZhbHVlOiAnZGF0YWJhc2UtcmVhZC1sYXRlbmN5JyxcbiAgICBwcm9wc1R5cGU6ICdSZWxhdGlvbmFsRGF0YWJhc2VSZWFkTGF0ZW5jeVRyaWdnZXJQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ1JlbGF0aW9uYWxEYXRhYmFzZVJlYWRMYXRlbmN5VHJpZ2dlcicsXG4gICAgc291cmNlRmlsZTogJ2FsYXJtcy5kLnRzJyxcbiAgICBqc2RvYzogJ1RyaWdnZXJzIGFuIGFsYXJtIHdoZW4gZGF0YWJhc2UgcmVhZCBsYXRlbmN5IChhdmVyYWdlIHRpbWUgZm9yIHJlYWQgSS9PIG9wZXJhdGlvbnMpIGV4Y2VlZHMgdGhlIHRocmVzaG9sZC4nXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdSZWxhdGlvbmFsRGF0YWJhc2VXcml0ZUxhdGVuY3lUcmlnZ2VyJyxcbiAgICB0eXBlVmFsdWU6ICdkYXRhYmFzZS13cml0ZS1sYXRlbmN5JyxcbiAgICBwcm9wc1R5cGU6ICdSZWxhdGlvbmFsRGF0YWJhc2VXcml0ZUxhdGVuY3lUcmlnZ2VyUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdSZWxhdGlvbmFsRGF0YWJhc2VXcml0ZUxhdGVuY3lUcmlnZ2VyJyxcbiAgICBzb3VyY2VGaWxlOiAnYWxhcm1zLmQudHMnLFxuICAgIGpzZG9jOlxuICAgICAgJ1RyaWdnZXJzIGFuIGFsYXJtIHdoZW4gZGF0YWJhc2Ugd3JpdGUgbGF0ZW5jeSAoYXZlcmFnZSB0aW1lIGZvciB3cml0ZSBJL08gb3BlcmF0aW9ucykgZXhjZWVkcyB0aGUgdGhyZXNob2xkLidcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ1JlbGF0aW9uYWxEYXRhYmFzZUNQVVV0aWxpemF0aW9uVHJpZ2dlcicsXG4gICAgdHlwZVZhbHVlOiAnZGF0YWJhc2UtY3B1LXV0aWxpemF0aW9uJyxcbiAgICBwcm9wc1R5cGU6ICdSZWxhdGlvbmFsRGF0YWJhc2VDUFVVdGlsaXphdGlvblRyaWdnZXJQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ1JlbGF0aW9uYWxEYXRhYmFzZUNQVVV0aWxpemF0aW9uVHJpZ2dlcicsXG4gICAgc291cmNlRmlsZTogJ2FsYXJtcy5kLnRzJyxcbiAgICBqc2RvYzogJ1RyaWdnZXJzIGFuIGFsYXJtIHdoZW4gZGF0YWJhc2UgQ1BVIHV0aWxpemF0aW9uIGV4Y2VlZHMgdGhlIHRocmVzaG9sZCBwZXJjZW50YWdlLidcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ1JlbGF0aW9uYWxEYXRhYmFzZUZyZWVTdG9yYWdlVHJpZ2dlcicsXG4gICAgdHlwZVZhbHVlOiAnZGF0YWJhc2UtZnJlZS1zdG9yYWdlJyxcbiAgICBwcm9wc1R5cGU6ICdSZWxhdGlvbmFsRGF0YWJhc2VGcmVlU3RvcmFnZVRyaWdnZXJQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ1JlbGF0aW9uYWxEYXRhYmFzZUZyZWVTdG9yYWdlVHJpZ2dlcicsXG4gICAgc291cmNlRmlsZTogJ2FsYXJtcy5kLnRzJyxcbiAgICBqc2RvYzogJ1RyaWdnZXJzIGFuIGFsYXJtIHdoZW4gYXZhaWxhYmxlIGRhdGFiYXNlIHN0b3JhZ2UgZmFsbHMgYmVsb3cgdGhlIHRocmVzaG9sZCAoaW4gTUIpLidcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ1JlbGF0aW9uYWxEYXRhYmFzZUZyZWVNZW1vcnlUcmlnZ2VyJyxcbiAgICB0eXBlVmFsdWU6ICdkYXRhYmFzZS1mcmVlLW1lbW9yeScsXG4gICAgcHJvcHNUeXBlOiAnUmVsYXRpb25hbERhdGFiYXNlRnJlZU1lbW9yeVRyaWdnZXJQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ1JlbGF0aW9uYWxEYXRhYmFzZUZyZWVNZW1vcnlUcmlnZ2VyJyxcbiAgICBzb3VyY2VGaWxlOiAnYWxhcm1zLmQudHMnLFxuICAgIGpzZG9jOiAnVHJpZ2dlcnMgYW4gYWxhcm0gd2hlbiBhdmFpbGFibGUgZGF0YWJhc2UgbWVtb3J5IGZhbGxzIGJlbG93IHRoZSB0aHJlc2hvbGQgKGluIE1CKS4nXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdSZWxhdGlvbmFsRGF0YWJhc2VDb25uZWN0aW9uQ291bnRUcmlnZ2VyJyxcbiAgICB0eXBlVmFsdWU6ICdkYXRhYmFzZS1jb25uZWN0aW9uLWNvdW50JyxcbiAgICBwcm9wc1R5cGU6ICdSZWxhdGlvbmFsRGF0YWJhc2VDb25uZWN0aW9uQ291bnRUcmlnZ2VyUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdSZWxhdGlvbmFsRGF0YWJhc2VDb25uZWN0aW9uQ291bnRUcmlnZ2VyJyxcbiAgICBzb3VyY2VGaWxlOiAnYWxhcm1zLmQudHMnLFxuICAgIGpzZG9jOiAnVHJpZ2dlcnMgYW4gYWxhcm0gd2hlbiB0aGUgbnVtYmVyIG9mIGRhdGFiYXNlIGNvbm5lY3Rpb25zIGV4Y2VlZHMgdGhlIHRocmVzaG9sZC4nXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdTcXNRdWV1ZVJlY2VpdmVkTWVzc2FnZXNDb3VudFRyaWdnZXInLFxuICAgIHR5cGVWYWx1ZTogJ3Nxcy1xdWV1ZS1yZWNlaXZlZC1tZXNzYWdlcy1jb3VudCcsXG4gICAgcHJvcHNUeXBlOiAnU3FzUXVldWVSZWNlaXZlZE1lc3NhZ2VzQ291bnRUcmlnZ2VyUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdTcXNRdWV1ZVJlY2VpdmVkTWVzc2FnZXNDb3VudFRyaWdnZXInLFxuICAgIHNvdXJjZUZpbGU6ICdhbGFybXMuZC50cycsXG4gICAganNkb2M6ICdUcmlnZ2VycyBhbiBhbGFybSB3aGVuIHRoZSBudW1iZXIgb2YgbWVzc2FnZXMgcmVjZWl2ZWQgZnJvbSBhbiBTUVMgcXVldWUgY3Jvc3NlcyB0aGUgdGhyZXNob2xkLidcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ1Nxc1F1ZXVlTm90RW1wdHlUcmlnZ2VyJyxcbiAgICB0eXBlVmFsdWU6ICdzcXMtcXVldWUtbm90LWVtcHR5JyxcbiAgICBwcm9wc1R5cGU6ICdTcXNRdWV1ZU5vdEVtcHR5VHJpZ2dlcicsXG4gICAgaW50ZXJmYWNlTmFtZTogJ1Nxc1F1ZXVlTm90RW1wdHlUcmlnZ2VyJyxcbiAgICBzb3VyY2VGaWxlOiAnYWxhcm1zLmQudHMnLFxuICAgIHR5cGVPbmx5OiB0cnVlLFxuICAgIGpzZG9jOiAnVHJpZ2dlcnMgYW4gYWxhcm0gaWYgdGhlIFNRUyBxdWV1ZSBpcyBub3QgZW1wdHkuIFVzZWZ1bCBmb3IgbW9uaXRvcmluZyBkZWFkLWxldHRlciBxdWV1ZXMuJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnTGFtYmRhRXJyb3JSYXRlVHJpZ2dlcicsXG4gICAgdHlwZVZhbHVlOiAnbGFtYmRhLWVycm9yLXJhdGUnLFxuICAgIHByb3BzVHlwZTogJ0xhbWJkYUVycm9yUmF0ZVRyaWdnZXJQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0xhbWJkYUVycm9yUmF0ZVRyaWdnZXInLFxuICAgIHNvdXJjZUZpbGU6ICdhbGFybXMuZC50cycsXG4gICAganNkb2M6XG4gICAgICAnVHJpZ2dlcnMgYW4gYWxhcm0gd2hlbiB0aGUgTGFtYmRhIGZ1bmN0aW9uIGVycm9yIHJhdGUgKHBlcmNlbnRhZ2Ugb2YgZmFpbGVkIGludm9jYXRpb25zKSBleGNlZWRzIHRoZSB0aHJlc2hvbGQuJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnTGFtYmRhRHVyYXRpb25UcmlnZ2VyJyxcbiAgICB0eXBlVmFsdWU6ICdsYW1iZGEtZHVyYXRpb24nLFxuICAgIHByb3BzVHlwZTogJ0xhbWJkYUR1cmF0aW9uVHJpZ2dlclByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnTGFtYmRhRHVyYXRpb25UcmlnZ2VyJyxcbiAgICBzb3VyY2VGaWxlOiAnYWxhcm1zLmQudHMnLFxuICAgIGpzZG9jOiAnVHJpZ2dlcnMgYW4gYWxhcm0gd2hlbiBMYW1iZGEgZnVuY3Rpb24gZXhlY3V0aW9uIGR1cmF0aW9uIGV4Y2VlZHMgdGhlIHRocmVzaG9sZCAoaW4gbWlsbGlzZWNvbmRzKS4nXG4gIH0sXG4gIC8vIEN1c3RvbSBSZXNvdXJjZXNcbiAge1xuICAgIGNsYXNzTmFtZTogJ0N1c3RvbVJlc291cmNlRGVmaW5pdGlvbicsXG4gICAgdHlwZVZhbHVlOiAnY3VzdG9tLXJlc291cmNlLWRlZmluaXRpb24nLFxuICAgIHByb3BzVHlwZTogJ0N1c3RvbVJlc291cmNlRGVmaW5pdGlvblByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnQ3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uJyxcbiAgICBzb3VyY2VGaWxlOiAnY3VzdG9tLXJlc291cmNlcy5kLnRzJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnQ3VzdG9tUmVzb3VyY2VJbnN0YW5jZScsXG4gICAgdHlwZVZhbHVlOiAnY3VzdG9tLXJlc291cmNlLWluc3RhbmNlJyxcbiAgICBwcm9wc1R5cGU6ICdDdXN0b21SZXNvdXJjZUluc3RhbmNlUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdDdXN0b21SZXNvdXJjZUluc3RhbmNlJyxcbiAgICBzb3VyY2VGaWxlOiAnY3VzdG9tLXJlc291cmNlcy5kLnRzJ1xuICB9LFxuICAvLyBEZXBsb3ltZW50IFNjcmlwdHNcbiAge1xuICAgIGNsYXNzTmFtZTogJ0RlcGxveW1lbnRTY3JpcHQnLFxuICAgIHR5cGVWYWx1ZTogJ2RlcGxveW1lbnQtc2NyaXB0JyxcbiAgICBwcm9wc1R5cGU6ICdEZXBsb3ltZW50U2NyaXB0UHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdEZXBsb3ltZW50U2NyaXB0JyxcbiAgICBzb3VyY2VGaWxlOiAnZGVwbG95bWVudC1zY3JpcHQuZC50cydcbiAgfSxcbiAgLy8gRWRnZSBMYW1iZGEgRnVuY3Rpb25zXG4gIHtcbiAgICBjbGFzc05hbWU6ICdFZGdlTGFtYmRhRnVuY3Rpb24nLFxuICAgIHR5cGVWYWx1ZTogJ2VkZ2UtbGFtYmRhLWZ1bmN0aW9uJyxcbiAgICBwcm9wc1R5cGU6ICdFZGdlTGFtYmRhRnVuY3Rpb25Qcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0VkZ2VMYW1iZGFGdW5jdGlvbicsXG4gICAgc291cmNlRmlsZTogJ2VkZ2UtbGFtYmRhLWZ1bmN0aW9ucy5kLnRzJ1xuICB9XG5dO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PSBIRUxQRVIgRlVOQ1RJT05TID09PT09PT09PT09PT09PT09PT09XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRSZXNvdXJjZUJ5Q2xhc3NOYW1lKGNsYXNzTmFtZTogc3RyaW5nKTogUmVzb3VyY2VEZWZpbml0aW9uIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIFJFU09VUkNFU19DT05WRVJUSUJMRV9UT19DTEFTU0VTLmZpbmQoKHIpID0+IHIuY2xhc3NOYW1lID09PSBjbGFzc05hbWUpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVzb3VyY2VCeVR5cGUocmVzb3VyY2VUeXBlOiBzdHJpbmcpOiBSZXNvdXJjZURlZmluaXRpb24gfCB1bmRlZmluZWQge1xuICByZXR1cm4gUkVTT1VSQ0VTX0NPTlZFUlRJQkxFX1RPX0NMQVNTRVMuZmluZCgocikgPT4gci5yZXNvdXJjZVR5cGUgPT09IHJlc291cmNlVHlwZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRSZXNvdXJjZXNXaXRoQXVnbWVudGVkUHJvcHMoKTogUmVzb3VyY2VEZWZpbml0aW9uW10ge1xuICByZXR1cm4gUkVTT1VSQ0VTX0NPTlZFUlRJQkxFX1RPX0NMQVNTRVMuZmlsdGVyKChyKSA9PiByLmhhc0F1Z21lbnRlZFByb3BzKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFJlc291cmNlc1dpdGhPdmVycmlkZXMoKTogUmVzb3VyY2VEZWZpbml0aW9uW10ge1xuICByZXR1cm4gUkVTT1VSQ0VTX0NPTlZFUlRJQkxFX1RPX0NMQVNTRVMuZmlsdGVyKChyKSA9PiByLnN1cHBvcnRzT3ZlcnJpZGVzICE9PSBmYWxzZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRUeXBlUHJvcGVydGllc0J5Q2xhc3NOYW1lKGNsYXNzTmFtZTogc3RyaW5nKTogVHlwZVByb3BlcnRpZXNEZWZpbml0aW9uIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIE1JU0NfVFlQRVNfQ09OVkVSVElCTEVfVE9fQ0xBU1NFUy5maW5kKCh0KSA9PiB0LmNsYXNzTmFtZSA9PT0gY2xhc3NOYW1lKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFR5cGVQcm9wZXJ0aWVzQnlUeXBlVmFsdWUodHlwZVZhbHVlOiBzdHJpbmcpOiBUeXBlUHJvcGVydGllc0RlZmluaXRpb24gfCB1bmRlZmluZWQge1xuICByZXR1cm4gTUlTQ19UWVBFU19DT05WRVJUSUJMRV9UT19DTEFTU0VTLmZpbmQoKHQpID0+IHQudHlwZVZhbHVlID09PSB0eXBlVmFsdWUpO1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PSBERVJJVkVEIE1BUFBJTkdTID09PT09PT09PT09PT09PT09PT09XG5cbi8qKiBSZXNvdXJjZSB0eXBlIOKGkiBjbGFzcyBuYW1lIG1hcHBpbmcgKi9cbmV4cG9ydCBjb25zdCBSRVNPVVJDRV9UWVBFX1RPX0NMQVNTOiBSZWNvcmQ8c3RyaW5nLCBSZXNvdXJjZUNsYXNzTmFtZT4gPSBPYmplY3QuZnJvbUVudHJpZXMoXG4gIFJFU09VUkNFU19DT05WRVJUSUJMRV9UT19DTEFTU0VTLm1hcCgocikgPT4gW3IucmVzb3VyY2VUeXBlLCByLmNsYXNzTmFtZV0pXG4pO1xuXG4vKiogU2NyaXB0IHR5cGUg4oaSIGNsYXNzIG5hbWUgbWFwcGluZyAqL1xuZXhwb3J0IGNvbnN0IFNDUklQVF9UWVBFX1RPX0NMQVNTOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0gT2JqZWN0LmZyb21FbnRyaWVzKFxuICBNSVNDX1RZUEVTX0NPTlZFUlRJQkxFX1RPX0NMQVNTRVMuZmlsdGVyKFxuICAgICh0KSA9PiB0LnNvdXJjZUZpbGUgPT09ICdfX2hlbHBlcnMuZC50cycgJiYgdC5wcm9wc1R5cGUuaW5jbHVkZXMoJ1NjcmlwdCcpXG4gICkubWFwKCh0KSA9PiBbdC50eXBlVmFsdWUsIHQuY2xhc3NOYW1lXSlcbik7XG5cbi8qKiBQYWNrYWdpbmcgdHlwZSDihpIgY2xhc3MgbmFtZSBtYXBwaW5nICovXG5leHBvcnQgY29uc3QgUEFDS0FHSU5HX1RZUEVfVE9fQ0xBU1M6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSBPYmplY3QuZnJvbUVudHJpZXMoXG4gIE1JU0NfVFlQRVNfQ09OVkVSVElCTEVfVE9fQ0xBU1NFUy5maWx0ZXIoKHQpID0+IHQuc291cmNlRmlsZSA9PT0gJ2RlcGxveW1lbnQtYXJ0aWZhY3RzLmQudHMnKS5tYXAoKHQpID0+IFtcbiAgICB0LnR5cGVWYWx1ZSxcbiAgICB0LmNsYXNzTmFtZVxuICBdKVxuKTtcblxuLyoqIEVuZ2luZSB0eXBlIOKGkiBjbGFzcyBuYW1lIG1hcHBpbmcgKi9cbmV4cG9ydCBjb25zdCBFTkdJTkVfVFlQRV9UT19DTEFTUzogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IE9iamVjdC5mcm9tRW50cmllcyhcbiAgTUlTQ19UWVBFU19DT05WRVJUSUJMRV9UT19DTEFTU0VTLmZpbHRlcigodCkgPT4gdC5wcm9wc1R5cGUuaW5jbHVkZXMoJ0VuZ2luZScpKS5tYXAoKHQpID0+IFt0LnR5cGVWYWx1ZSwgdC5jbGFzc05hbWVdKVxuKTtcbiIsCiAgICAiLy8gUmUtZXhwb3J0IGZyb20gY2xhc3MtY29uZmlnIChzaW5nbGUgc291cmNlIG9mIHRydXRoKVxuZXhwb3J0IHtcbiAgZ2V0UmVzb3VyY2VCeUNsYXNzTmFtZSxcbiAgZ2V0UmVzb3VyY2VCeVR5cGUsXG4gIGdldFJlc291cmNlc1dpdGhBdWdtZW50ZWRQcm9wcyxcbiAgZ2V0UmVzb3VyY2VzV2l0aE92ZXJyaWRlcyxcbiAgZ2V0VHlwZVByb3BlcnRpZXNCeUNsYXNzTmFtZSxcbiAgZ2V0VHlwZVByb3BlcnRpZXNCeVR5cGVWYWx1ZSxcbiAgTUlTQ19UWVBFU19DT05WRVJUSUJMRV9UT19DTEFTU0VTLFxuICB0eXBlIFJlc291cmNlRGVmaW5pdGlvbixcbiAgUkVTT1VSQ0VTX0NPTlZFUlRJQkxFX1RPX0NMQVNTRVMsXG4gIHR5cGUgVHlwZVByb3BlcnRpZXNEZWZpbml0aW9uXG59IGZyb20gJy4vY2xhc3MtY29uZmlnJztcblxuLy8gVGhlc2UgY2FuIGJlIHJlZmVyZW5jZWQgdXNpbmcgJFJlc291cmNlUGFyYW0gZGlyZWN0aXZlXG5leHBvcnQgY29uc3QgUkVGRVJFTkNFQUJMRV9QQVJBTVM6IFJlY29yZDxzdHJpbmcsIEFycmF5PHsgbmFtZTogc3RyaW5nOyBkZXNjcmlwdGlvbjogc3RyaW5nIH0+PiA9IHtcbiAgJ3JlbGF0aW9uYWwtZGF0YWJhc2UnOiBbXG4gICAgeyBuYW1lOiAnY29ubmVjdGlvblN0cmluZycsIGRlc2NyaXB0aW9uOiAnQ29ubmVjdGlvbiBzdHJpbmcgZm9yIHRoZSBkYXRhYmFzZScgfSxcbiAgICB7IG5hbWU6ICdqZGJjQ29ubmVjdGlvblN0cmluZycsIGRlc2NyaXB0aW9uOiAnSkRCQyBjb25uZWN0aW9uIHN0cmluZycgfSxcbiAgICB7IG5hbWU6ICdob3N0JywgZGVzY3JpcHRpb246ICdEYXRhYmFzZSBob3N0JyB9LFxuICAgIHsgbmFtZTogJ3BvcnQnLCBkZXNjcmlwdGlvbjogJ0RhdGFiYXNlIHBvcnQnIH0sXG4gICAgeyBuYW1lOiAnZGJOYW1lJywgZGVzY3JpcHRpb246ICdEYXRhYmFzZSBuYW1lJyB9LFxuICAgIHsgbmFtZTogJ3JlYWRlckhvc3QnLCBkZXNjcmlwdGlvbjogJ1JlYWRlciBlbmRwb2ludCBob3N0JyB9LFxuICAgIHsgbmFtZTogJ3JlYWRlckNvbm5lY3Rpb25TdHJpbmcnLCBkZXNjcmlwdGlvbjogJ1JlYWRlciBjb25uZWN0aW9uIHN0cmluZycgfSxcbiAgICB7IG5hbWU6ICdyZWFkZXJKZGJjQ29ubmVjdGlvblN0cmluZycsIGRlc2NyaXB0aW9uOiAnUmVhZGVyIEpEQkMgY29ubmVjdGlvbiBzdHJpbmcnIH1cbiAgXSxcbiAgJ3dlYi1zZXJ2aWNlJzogW1xuICAgIHsgbmFtZTogJ2RvbWFpbicsIGRlc2NyaXB0aW9uOiAnV2ViIHNlcnZpY2UgZG9tYWluJyB9LFxuICAgIHsgbmFtZTogJ3VybCcsIGRlc2NyaXB0aW9uOiAnV2ViIHNlcnZpY2UgVVJMJyB9LFxuICAgIHsgbmFtZTogJ2N1c3RvbURvbWFpbnMnLCBkZXNjcmlwdGlvbjogJ0N1c3RvbSBkb21haW5zJyB9LFxuICAgIHsgbmFtZTogJ2N1c3RvbURvbWFpblVybHMnLCBkZXNjcmlwdGlvbjogJ0N1c3RvbSBkb21haW4gVVJMcycgfVxuICBdLFxuICAncHJpdmF0ZS1zZXJ2aWNlJzogW3sgbmFtZTogJ2FkZHJlc3MnLCBkZXNjcmlwdGlvbjogJ1ByaXZhdGUgc2VydmljZSBhZGRyZXNzJyB9XSxcbiAgYnVja2V0OiBbXG4gICAgeyBuYW1lOiAnbmFtZScsIGRlc2NyaXB0aW9uOiAnQnVja2V0IG5hbWUnIH0sXG4gICAgeyBuYW1lOiAnYXJuJywgZGVzY3JpcHRpb246ICdCdWNrZXQgQVJOJyB9XG4gIF0sXG4gICdkeW5hbW8tZGItdGFibGUnOiBbXG4gICAgeyBuYW1lOiAnbmFtZScsIGRlc2NyaXB0aW9uOiAnVGFibGUgbmFtZScgfSxcbiAgICB7IG5hbWU6ICdhcm4nLCBkZXNjcmlwdGlvbjogJ1RhYmxlIEFSTicgfSxcbiAgICB7IG5hbWU6ICdzdHJlYW1Bcm4nLCBkZXNjcmlwdGlvbjogJ1N0cmVhbSBBUk4nIH1cbiAgXSxcbiAgZnVuY3Rpb246IFtcbiAgICB7IG5hbWU6ICdhcm4nLCBkZXNjcmlwdGlvbjogJ0Z1bmN0aW9uIEFSTicgfSxcbiAgICB7IG5hbWU6ICdsb2dHcm91cEFybicsIGRlc2NyaXB0aW9uOiAnTG9nIGdyb3VwIEFSTicgfVxuICBdLFxuICAnYmF0Y2gtam9iJzogW1xuICAgIHsgbmFtZTogJ2pvYkRlZmluaXRpb25Bcm4nLCBkZXNjcmlwdGlvbjogJ0pvYiBkZWZpbml0aW9uIEFSTicgfSxcbiAgICB7IG5hbWU6ICdzdGF0ZU1hY2hpbmVBcm4nLCBkZXNjcmlwdGlvbjogJ1N0YXRlIG1hY2hpbmUgQVJOJyB9LFxuICAgIHsgbmFtZTogJ2xvZ0dyb3VwQXJuJywgZGVzY3JpcHRpb246ICdMb2cgZ3JvdXAgQVJOJyB9XG4gIF0sXG4gICdldmVudC1idXMnOiBbXG4gICAgeyBuYW1lOiAnYXJuJywgZGVzY3JpcHRpb246ICdFdmVudCBidXMgQVJOJyB9LFxuICAgIHsgbmFtZTogJ2FyY2hpdmVBcm4nLCBkZXNjcmlwdGlvbjogJ0FyY2hpdmUgQVJOJyB9XG4gIF0sXG4gICdodHRwLWFwaS1nYXRld2F5JzogW1xuICAgIHsgbmFtZTogJ2RvbWFpbicsIGRlc2NyaXB0aW9uOiAnQVBJIEdhdGV3YXkgZG9tYWluJyB9LFxuICAgIHsgbmFtZTogJ3VybCcsIGRlc2NyaXB0aW9uOiAnQVBJIEdhdGV3YXkgVVJMJyB9LFxuICAgIHsgbmFtZTogJ2N1c3RvbURvbWFpbnMnLCBkZXNjcmlwdGlvbjogJ0N1c3RvbSBkb21haW5zJyB9LFxuICAgIHsgbmFtZTogJ2N1c3RvbURvbWFpblVybHMnLCBkZXNjcmlwdGlvbjogJ0N1c3RvbSBkb21haW4gVVJMcycgfSxcbiAgICB7IG5hbWU6ICdjdXN0b21Eb21haW5VcmwnLCBkZXNjcmlwdGlvbjogJ0ZpcnN0IGN1c3RvbSBkb21haW4gVVJMJyB9XG4gIF0sXG4gICdtb25nby1kYi1hdGxhcy1jbHVzdGVyJzogW3sgbmFtZTogJ2Nvbm5lY3Rpb25TdHJpbmcnLCBkZXNjcmlwdGlvbjogJ01vbmdvREIgY29ubmVjdGlvbiBzdHJpbmcnIH1dLFxuICAncmVkaXMtY2x1c3Rlcic6IFtcbiAgICB7IG5hbWU6ICdob3N0JywgZGVzY3JpcHRpb246ICdSZWRpcyBob3N0JyB9LFxuICAgIHsgbmFtZTogJ3JlYWRlckhvc3QnLCBkZXNjcmlwdGlvbjogJ1JlZGlzIHJlYWRlciBob3N0JyB9LFxuICAgIHsgbmFtZTogJ3BvcnQnLCBkZXNjcmlwdGlvbjogJ1JlZGlzIHBvcnQnIH0sXG4gICAgeyBuYW1lOiAnc2hhcmRpbmcnLCBkZXNjcmlwdGlvbjogJ1NoYXJkaW5nIHN0YXR1cycgfVxuICBdLFxuICAnc3RhdGUtbWFjaGluZSc6IFtcbiAgICB7IG5hbWU6ICdhcm4nLCBkZXNjcmlwdGlvbjogJ1N0YXRlIG1hY2hpbmUgQVJOJyB9LFxuICAgIHsgbmFtZTogJ25hbWUnLCBkZXNjcmlwdGlvbjogJ1N0YXRlIG1hY2hpbmUgbmFtZScgfVxuICBdLFxuICAndXNlci1hdXRoLXBvb2wnOiBbXG4gICAgeyBuYW1lOiAnaWQnLCBkZXNjcmlwdGlvbjogJ1VzZXIgcG9vbCBJRCcgfSxcbiAgICB7IG5hbWU6ICdjbGllbnRJZCcsIGRlc2NyaXB0aW9uOiAnQ2xpZW50IElEJyB9LFxuICAgIHsgbmFtZTogJ2RvbWFpbicsIGRlc2NyaXB0aW9uOiAnVXNlciBwb29sIGRvbWFpbicgfVxuICBdLFxuICAndXBzdGFzaC1yZWRpcyc6IFtcbiAgICB7IG5hbWU6ICdob3N0JywgZGVzY3JpcHRpb246ICdVcHN0YXNoIFJlZGlzIGhvc3QnIH0sXG4gICAgeyBuYW1lOiAncG9ydCcsIGRlc2NyaXB0aW9uOiAnVXBzdGFzaCBSZWRpcyBwb3J0JyB9LFxuICAgIHsgbmFtZTogJ3Bhc3N3b3JkJywgZGVzY3JpcHRpb246ICdQYXNzd29yZCcgfSxcbiAgICB7IG5hbWU6ICdyZXN0VG9rZW4nLCBkZXNjcmlwdGlvbjogJ1JFU1QgdG9rZW4nIH0sXG4gICAgeyBuYW1lOiAncmVhZE9ubHlSZXN0VG9rZW4nLCBkZXNjcmlwdGlvbjogJ1JlYWQtb25seSBSRVNUIHRva2VuJyB9LFxuICAgIHsgbmFtZTogJ3Jlc3RVcmwnLCBkZXNjcmlwdGlvbjogJ1JFU1QgVVJMJyB9LFxuICAgIHsgbmFtZTogJ3JlZGlzVXJsJywgZGVzY3JpcHRpb246ICdSZWRpcyBVUkwnIH1cbiAgXSxcbiAgJ2FwcGxpY2F0aW9uLWxvYWQtYmFsYW5jZXInOiBbXG4gICAgeyBuYW1lOiAnZG9tYWluJywgZGVzY3JpcHRpb246ICdMb2FkIGJhbGFuY2VyIGRvbWFpbicgfSxcbiAgICB7IG5hbWU6ICdjdXN0b21Eb21haW5zJywgZGVzY3JpcHRpb246ICdDdXN0b20gZG9tYWlucycgfVxuICBdLFxuICAnbmV0d29yay1sb2FkLWJhbGFuY2VyJzogW1xuICAgIHsgbmFtZTogJ2RvbWFpbicsIGRlc2NyaXB0aW9uOiAnTG9hZCBiYWxhbmNlciBkb21haW4nIH0sXG4gICAgeyBuYW1lOiAnY3VzdG9tRG9tYWlucycsIGRlc2NyaXB0aW9uOiAnQ3VzdG9tIGRvbWFpbnMnIH1cbiAgXSxcbiAgJ2hvc3RpbmctYnVja2V0JzogW1xuICAgIHsgbmFtZTogJ25hbWUnLCBkZXNjcmlwdGlvbjogJ0J1Y2tldCBuYW1lJyB9LFxuICAgIHsgbmFtZTogJ2FybicsIGRlc2NyaXB0aW9uOiAnQnVja2V0IEFSTicgfVxuICBdLFxuICAnd2ViLWFwcC1maXJld2FsbCc6IFtcbiAgICB7IG5hbWU6ICdhcm4nLCBkZXNjcmlwdGlvbjogJ0ZpcmV3YWxsIEFSTicgfSxcbiAgICB7IG5hbWU6ICdzY29wZScsIGRlc2NyaXB0aW9uOiAnRmlyZXdhbGwgc2NvcGUnIH1cbiAgXSxcbiAgJ29wZW4tc2VhcmNoLWRvbWFpbic6IFtcbiAgICB7IG5hbWU6ICdkb21haW5FbmRwb2ludCcsIGRlc2NyaXB0aW9uOiAnT3BlblNlYXJjaCBkb21haW4gZW5kcG9pbnQnIH0sXG4gICAgeyBuYW1lOiAnYXJuJywgZGVzY3JpcHRpb246ICdEb21haW4gQVJOJyB9XG4gIF0sXG4gICdlZnMtZmlsZXN5c3RlbSc6IFtcbiAgICB7IG5hbWU6ICdhcm4nLCBkZXNjcmlwdGlvbjogJ0VGUyBBUk4nIH0sXG4gICAgeyBuYW1lOiAnaWQnLCBkZXNjcmlwdGlvbjogJ0VGUyBJRCcgfVxuICBdLFxuICAnbmV4dGpzLXdlYic6IFt7IG5hbWU6ICd1cmwnLCBkZXNjcmlwdGlvbjogJ1dlYnNpdGUgVVJMJyB9XSxcbiAgJ2FzdHJvLXdlYic6IFt7IG5hbWU6ICd1cmwnLCBkZXNjcmlwdGlvbjogJ1dlYnNpdGUgVVJMJyB9XSxcbiAgJ251eHQtd2ViJzogW3sgbmFtZTogJ3VybCcsIGRlc2NyaXB0aW9uOiAnV2Vic2l0ZSBVUkwnIH1dLFxuICAnc3ZlbHRla2l0LXdlYic6IFt7IG5hbWU6ICd1cmwnLCBkZXNjcmlwdGlvbjogJ1dlYnNpdGUgVVJMJyB9XSxcbiAgJ3NvbGlkc3RhcnQtd2ViJzogW3sgbmFtZTogJ3VybCcsIGRlc2NyaXB0aW9uOiAnV2Vic2l0ZSBVUkwnIH1dLFxuICAndGFuc3RhY2std2ViJzogW3sgbmFtZTogJ3VybCcsIGRlc2NyaXB0aW9uOiAnV2Vic2l0ZSBVUkwnIH1dLFxuICAncmVtaXgtd2ViJzogW3sgbmFtZTogJ3VybCcsIGRlc2NyaXB0aW9uOiAnV2Vic2l0ZSBVUkwnIH1dLFxuICAnbXVsdGktY29udGFpbmVyLXdvcmtsb2FkJzogW3sgbmFtZTogJ2xvZ0dyb3VwQXJuJywgZGVzY3JpcHRpb246ICdMb2cgZ3JvdXAgQVJOJyB9XSxcbiAgJ3Nxcy1xdWV1ZSc6IFtcbiAgICB7IG5hbWU6ICdhcm4nLCBkZXNjcmlwdGlvbjogJ1F1ZXVlIEFSTicgfSxcbiAgICB7IG5hbWU6ICd1cmwnLCBkZXNjcmlwdGlvbjogJ1F1ZXVlIFVSTCcgfSxcbiAgICB7IG5hbWU6ICduYW1lJywgZGVzY3JpcHRpb246ICdRdWV1ZSBuYW1lJyB9XG4gIF0sXG4gICdzbnMtdG9waWMnOiBbXG4gICAgeyBuYW1lOiAnYXJuJywgZGVzY3JpcHRpb246ICdUb3BpYyBBUk4nIH0sXG4gICAgeyBuYW1lOiAnbmFtZScsIGRlc2NyaXB0aW9uOiAnVG9waWMgbmFtZScgfVxuICBdXG59O1xuIiwKICAgICJpbXBvcnQgdHlwZSB7IFJlc291cmNlQ2xhc3NOYW1lIH0gZnJvbSAnLi9jbGFzcy1jb25maWcnO1xuaW1wb3J0IHsgUkVTT1VSQ0VTX0NPTlZFUlRJQkxFX1RPX0NMQVNTRVMgfSBmcm9tICcuL2NsYXNzLWNvbmZpZyc7XG5pbXBvcnQgeyBCYXNlUmVzb3VyY2UgfSBmcm9tICcuL2NvbmZpZyc7XG5pbXBvcnQgeyBSRUZFUkVOQ0VBQkxFX1BBUkFNUyB9IGZyb20gJy4vcmVzb3VyY2UtbWV0YWRhdGEnO1xuXG4vLyBQcml2YXRlIHN5bWJvbCBmb3IgYWNjZXNzaW5nIHRoZSBpbnRlcm5hbCBwYXJhbSByZWZlcmVuY2UgbWV0aG9kXG5jb25zdCBnZXRQYXJhbVJlZmVyZW5jZVN5bWJvbCA9IFN5bWJvbC5mb3IoJ3N0YWNrdGFwZTpnZXRQYXJhbVJlZmVyZW5jZScpO1xuXG4vKipcbiAqIEZhY3RvcnkgZnVuY3Rpb24gdG8gY3JlYXRlIGEgcmVzb3VyY2UgY2xhc3Mgd2l0aCByZWZlcmVuY2VhYmxlIHBhcmFtZXRlcnMuXG4gKiBTdXBwb3J0cyB0d28gY2FsbGluZyBjb252ZW50aW9uczpcbiAqIC0gbmV3IFJlc291cmNlKHByb3BlcnRpZXMpIC0gbmFtZSBkZXJpdmVkIGZyb20gb2JqZWN0IGtleSBpbiByZXNvdXJjZXNcbiAqIC0gbmV3IFJlc291cmNlKG5hbWUsIHByb3BlcnRpZXMpIC0gZXhwbGljaXQgbmFtZSAoYmFja3dhcmRzIGNvbXBhdGlibGUpXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZVJlc291cmNlQ2xhc3MoY2xhc3NOYW1lOiBSZXNvdXJjZUNsYXNzTmFtZSwgcmVzb3VyY2VUeXBlOiBzdHJpbmcpOiBhbnkge1xuICAvLyBDcmVhdGUgdGhlIGNsYXNzIGR5bmFtaWNhbGx5XG4gIGNvbnN0IFJlc291cmNlQ2xhc3MgPSBjbGFzcyBleHRlbmRzIEJhc2VSZXNvdXJjZSB7XG4gICAgY29uc3RydWN0b3IobmFtZU9yUHJvcGVydGllczogc3RyaW5nIHwgYW55LCBwcm9wZXJ0aWVzPzogYW55KSB7XG4gICAgICBpZiAodHlwZW9mIG5hbWVPclByb3BlcnRpZXMgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIC8vIE9sZCBzdHlsZTogKG5hbWUsIHByb3BlcnRpZXMpIC0gZXhwbGljaXQgbmFtZVxuICAgICAgICBzdXBlcihuYW1lT3JQcm9wZXJ0aWVzLCByZXNvdXJjZVR5cGUsIHByb3BlcnRpZXMpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gTmV3IHN0eWxlOiAocHJvcGVydGllcykgLSBuYW1lIHdpbGwgYmUgc2V0IGZyb20gb2JqZWN0IGtleVxuICAgICAgICBzdXBlcih1bmRlZmluZWQsIHJlc291cmNlVHlwZSwgbmFtZU9yUHJvcGVydGllcyk7XG4gICAgICB9XG4gICAgfVxuICB9O1xuXG4gIC8vIFNldCB0aGUgY2xhc3MgbmFtZSBmb3IgYmV0dGVyIGRlYnVnZ2luZ1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoUmVzb3VyY2VDbGFzcywgJ25hbWUnLCB7IHZhbHVlOiBjbGFzc05hbWUgfSk7XG5cbiAgLy8gQWRkIHJlZmVyZW5jZWFibGUgcGFyYW1ldGVyIGdldHRlcnNcbiAgY29uc3QgcmVmZXJlbmNlYWJsZVBhcmFtcyA9IFJFRkVSRU5DRUFCTEVfUEFSQU1TW3Jlc291cmNlVHlwZV0gfHwgW107XG4gIGZvciAoY29uc3QgcGFyYW0gb2YgcmVmZXJlbmNlYWJsZVBhcmFtcykge1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShSZXNvdXJjZUNsYXNzLnByb3RvdHlwZSwgcGFyYW0ubmFtZSwge1xuICAgICAgZ2V0KHRoaXM6IEJhc2VSZXNvdXJjZSkge1xuICAgICAgICByZXR1cm4gKHRoaXMgYXMgYW55KVtnZXRQYXJhbVJlZmVyZW5jZVN5bWJvbF0ocGFyYW0ubmFtZSk7XG4gICAgICB9LFxuICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiBSZXNvdXJjZUNsYXNzO1xufVxuXG4vLyBDcmVhdGUgYWxsIHJlc291cmNlIGNsYXNzZXMgZnJvbSBjb25maWdcbmNvbnN0IFJFU09VUkNFX0NMQVNTRVM6IFJlY29yZDxzdHJpbmcsIFJldHVyblR5cGU8dHlwZW9mIGNyZWF0ZVJlc291cmNlQ2xhc3M+PiA9IHt9O1xuZm9yIChjb25zdCBkZWYgb2YgUkVTT1VSQ0VTX0NPTlZFUlRJQkxFX1RPX0NMQVNTRVMpIHtcbiAgLy8gVXNlICdMYW1iZGFGdW5jdGlvbicgYXMgdGhlIGV4cG9ydGVkIG5hbWUgZm9yICdGdW5jdGlvbicgdG8gYXZvaWQgSlMgcmVzZXJ2ZWQgd29yZCBpc3N1ZXNcbiAgUkVTT1VSQ0VfQ0xBU1NFU1tkZWYuY2xhc3NOYW1lIGFzIGFueV0gPSBjcmVhdGVSZXNvdXJjZUNsYXNzKGRlZi5jbGFzc05hbWUsIGRlZi5yZXNvdXJjZVR5cGUpO1xufVxuXG4vLyBFeHBvcnQgYWxsIHJlc291cmNlIGNsYXNzZXMgZm9yIG5hbWVkIGltcG9ydHNcbmV4cG9ydCBjb25zdCB7XG4gIFJlbGF0aW9uYWxEYXRhYmFzZSxcbiAgV2ViU2VydmljZSxcbiAgUHJpdmF0ZVNlcnZpY2UsXG4gIFdvcmtlclNlcnZpY2UsXG4gIE11bHRpQ29udGFpbmVyV29ya2xvYWQsXG4gIExhbWJkYUZ1bmN0aW9uLFxuICBCYXRjaEpvYixcbiAgQnVja2V0LFxuICBIb3N0aW5nQnVja2V0LFxuICBEeW5hbW9EYlRhYmxlLFxuICBFdmVudEJ1cyxcbiAgSHR0cEFwaUdhdGV3YXksXG4gIEFwcGxpY2F0aW9uTG9hZEJhbGFuY2VyLFxuICBOZXR3b3JrTG9hZEJhbGFuY2VyLFxuICBSZWRpc0NsdXN0ZXIsXG4gIE1vbmdvRGJBdGxhc0NsdXN0ZXIsXG4gIFN0YXRlTWFjaGluZSxcbiAgVXNlckF1dGhQb29sLFxuICBVcHN0YXNoUmVkaXMsXG4gIFNxc1F1ZXVlLFxuICBTbnNUb3BpYyxcbiAgS2luZXNpc1N0cmVhbSxcbiAgV2ViQXBwRmlyZXdhbGwsXG4gIE9wZW5TZWFyY2hEb21haW4sXG4gIEVmc0ZpbGVzeXN0ZW0sXG4gIE5leHRqc1dlYixcbiAgQmFzdGlvblxufSA9IFJFU09VUkNFX0NMQVNTRVM7XG4iLAogICAgImltcG9ydCB7IE1JU0NfVFlQRVNfQ09OVkVSVElCTEVfVE9fQ0xBU1NFUyB9IGZyb20gJy4vY2xhc3MtY29uZmlnJztcbmltcG9ydCB7IEJhc2VUeXBlUHJvcGVydGllcywgQmFzZVR5cGVPbmx5IH0gZnJvbSAnLi9jb25maWcnO1xuXG5mdW5jdGlvbiBjcmVhdGVUeXBlUHJvcGVydGllc0NsYXNzKGNsYXNzTmFtZTogc3RyaW5nLCB0eXBlVmFsdWU6IHN0cmluZywgdHlwZU9ubHk/OiBib29sZWFuKTogYW55IHtcbiAgaWYgKHR5cGVPbmx5KSB7XG4gICAgY29uc3QgVHlwZU9ubHlDbGFzcyA9IGNsYXNzIGV4dGVuZHMgQmFzZVR5cGVPbmx5IHtcbiAgICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcih0eXBlVmFsdWUpO1xuICAgICAgfVxuICAgIH07XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFR5cGVPbmx5Q2xhc3MsICduYW1lJywgeyB2YWx1ZTogY2xhc3NOYW1lIH0pO1xuICAgIHJldHVybiBUeXBlT25seUNsYXNzO1xuICB9XG5cbiAgY29uc3QgVHlwZVByb3BlcnRpZXNDbGFzcyA9IGNsYXNzIGV4dGVuZHMgQmFzZVR5cGVQcm9wZXJ0aWVzIHtcbiAgICBjb25zdHJ1Y3Rvcihwcm9wZXJ0aWVzOiBhbnkpIHtcbiAgICAgIHN1cGVyKHR5cGVWYWx1ZSwgcHJvcGVydGllcyk7XG4gICAgfVxuICB9O1xuXG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShUeXBlUHJvcGVydGllc0NsYXNzLCAnbmFtZScsIHsgdmFsdWU6IGNsYXNzTmFtZSB9KTtcbiAgcmV0dXJuIFR5cGVQcm9wZXJ0aWVzQ2xhc3M7XG59XG5cbi8vIENyZWF0ZSBhbGwgdHlwZS1wcm9wZXJ0aWVzIGNsYXNzZXMgZnJvbSBjb25maWdcbmNvbnN0IFRZUEVfUFJPUEVSVElFU19DTEFTU0VTOiBSZWNvcmQ8c3RyaW5nLCBSZXR1cm5UeXBlPHR5cGVvZiBjcmVhdGVUeXBlUHJvcGVydGllc0NsYXNzPj4gPSB7fTtcbmZvciAoY29uc3QgZGVmIG9mIE1JU0NfVFlQRVNfQ09OVkVSVElCTEVfVE9fQ0xBU1NFUykge1xuICBUWVBFX1BST1BFUlRJRVNfQ0xBU1NFU1tkZWYuY2xhc3NOYW1lXSA9IGNyZWF0ZVR5cGVQcm9wZXJ0aWVzQ2xhc3MoZGVmLmNsYXNzTmFtZSwgZGVmLnR5cGVWYWx1ZSwgZGVmLnR5cGVPbmx5KTtcbn1cblxuLy8gRXhwb3J0IGFsbCBjbGFzc2VzIGZvciBuYW1lZCBpbXBvcnRzIChUeXBlU2NyaXB0IG5lZWRzIHRoZXNlIGV4cGxpY2l0IGV4cG9ydHMpXG5leHBvcnQgY29uc3Qge1xuICAvLyBEYXRhYmFzZSBFbmdpbmVzXG4gIFJkc0VuZ2luZVBvc3RncmVzLFxuICBSZHNFbmdpbmVNYXJpYWRiLFxuICBSZHNFbmdpbmVNeXNxbCxcbiAgUmRzRW5naW5lT3JhY2xlRUUsXG4gIFJkc0VuZ2luZU9yYWNsZVNFMixcbiAgUmRzRW5naW5lU3FsU2VydmVyRUUsXG4gIFJkc0VuZ2luZVNxbFNlcnZlckVYLFxuICBSZHNFbmdpbmVTcWxTZXJ2ZXJTRSxcbiAgUmRzRW5naW5lU3FsU2VydmVyV2ViLFxuICBBdXJvcmFFbmdpbmVQb3N0Z3Jlc3FsLFxuICBBdXJvcmFFbmdpbmVNeXNxbCxcbiAgQXVyb3JhU2VydmVybGVzc0VuZ2luZVBvc3RncmVzcWwsXG4gIEF1cm9yYVNlcnZlcmxlc3NFbmdpbmVNeXNxbCxcbiAgQXVyb3JhU2VydmVybGVzc1YyRW5naW5lUG9zdGdyZXNxbCxcbiAgQXVyb3JhU2VydmVybGVzc1YyRW5naW5lTXlzcWwsXG4gIC8vIExhbWJkYSBQYWNrYWdpbmdcbiAgU3RhY2t0YXBlTGFtYmRhQnVpbGRwYWNrUGFja2FnaW5nLFxuICBDdXN0b21BcnRpZmFjdExhbWJkYVBhY2thZ2luZyxcbiAgLy8gQ29udGFpbmVyIFBhY2thZ2luZ1xuICBQcmVidWlsdEltYWdlUGFja2FnaW5nLFxuICBDdXN0b21Eb2NrZXJmaWxlUGFja2FnaW5nLFxuICBFeHRlcm5hbEJ1aWxkcGFja1BhY2thZ2luZyxcbiAgTml4cGFja3NQYWNrYWdpbmcsXG4gIFN0YWNrdGFwZUltYWdlQnVpbGRwYWNrUGFja2FnaW5nLFxuICAvLyBMYW1iZGEgRnVuY3Rpb24gRXZlbnRzL0ludGVncmF0aW9uc1xuICBIdHRwQXBpSW50ZWdyYXRpb24sXG4gIFMzSW50ZWdyYXRpb24sXG4gIFNjaGVkdWxlSW50ZWdyYXRpb24sXG4gIFNuc0ludGVncmF0aW9uLFxuICBTcXNJbnRlZ3JhdGlvbixcbiAgS2luZXNpc0ludGVncmF0aW9uLFxuICBEeW5hbW9EYkludGVncmF0aW9uLFxuICBDbG91ZHdhdGNoTG9nSW50ZWdyYXRpb24sXG4gIEFwcGxpY2F0aW9uTG9hZEJhbGFuY2VySW50ZWdyYXRpb24sXG4gIEV2ZW50QnVzSW50ZWdyYXRpb24sXG4gIEthZmthVG9waWNJbnRlZ3JhdGlvbixcbiAgQWxhcm1JbnRlZ3JhdGlvbixcbiAgSW90SW50ZWdyYXRpb24sXG4gIC8vIENETiBSb3V0ZXNcbiAgQ2RuTG9hZEJhbGFuY2VyUm91dGUsXG4gIENkbkh0dHBBcGlHYXRld2F5Um91dGUsXG4gIENkbkxhbWJkYUZ1bmN0aW9uUm91dGUsXG4gIENkbkN1c3RvbURvbWFpblJvdXRlLFxuICBDZG5CdWNrZXRSb3V0ZSxcbiAgLy8gV2ViIEFwcCBGaXJld2FsbCBSdWxlc1xuICBNYW5hZ2VkUnVsZUdyb3VwLFxuICBDdXN0b21SdWxlR3JvdXAsXG4gIFJhdGVCYXNlZFJ1bGUsXG4gIC8vIFNRUyBRdWV1ZSBJbnRlZ3JhdGlvbnNcbiAgU3FzUXVldWVFdmVudEJ1c0ludGVncmF0aW9uLFxuICAvLyBNdWx0aSBDb250YWluZXIgV29ya2xvYWQgSW50ZWdyYXRpb25zXG4gIE11bHRpQ29udGFpbmVyV29ya2xvYWRIdHRwQXBpSW50ZWdyYXRpb24sXG4gIE11bHRpQ29udGFpbmVyV29ya2xvYWRMb2FkQmFsYW5jZXJJbnRlZ3JhdGlvbixcbiAgTXVsdGlDb250YWluZXJXb3JrbG9hZE5ldHdvcmtMb2FkQmFsYW5jZXJJbnRlZ3JhdGlvbixcbiAgTXVsdGlDb250YWluZXJXb3JrbG9hZEludGVybmFsSW50ZWdyYXRpb24sXG4gIE11bHRpQ29udGFpbmVyV29ya2xvYWRTZXJ2aWNlQ29ubmVjdEludGVncmF0aW9uLFxuICAvLyBTY3JpcHRzXG4gIExvY2FsU2NyaXB0LFxuICBCYXN0aW9uU2NyaXB0LFxuICBMb2NhbFNjcmlwdFdpdGhCYXN0aW9uVHVubmVsaW5nLFxuICAvLyBMb2cgRm9yd2FyZGluZ1xuICBIdHRwRW5kcG9pbnRMb2dGb3J3YXJkaW5nLFxuICBIaWdobGlnaHRMb2dGb3J3YXJkaW5nLFxuICBEYXRhZG9nTG9nRm9yd2FyZGluZyxcbiAgLy8gQnVja2V0IExpZmVjeWNsZSBSdWxlc1xuICBFeHBpcmF0aW9uTGlmZWN5Y2xlUnVsZSxcbiAgTm9uQ3VycmVudFZlcnNpb25FeHBpcmF0aW9uTGlmZWN5Y2xlUnVsZSxcbiAgLy8gRUZTIE1vdW50c1xuICBDb250YWluZXJFZnNNb3VudCxcbiAgTGFtYmRhRWZzTW91bnQsXG4gIC8vIEF1dGhvcml6ZXJzXG4gIENvZ25pdG9BdXRob3JpemVyLFxuICBMYW1iZGFBdXRob3JpemVyLFxuICAvLyBBbGFybSBUcmlnZ2Vyc1xuICBBcHBsaWNhdGlvbkxvYWRCYWxhbmNlckN1c3RvbVRyaWdnZXIsXG4gIEFwcGxpY2F0aW9uTG9hZEJhbGFuY2VyRXJyb3JSYXRlVHJpZ2dlcixcbiAgQXBwbGljYXRpb25Mb2FkQmFsYW5jZXJVbmhlYWx0aHlUYXJnZXRzVHJpZ2dlcixcbiAgSHR0cEFwaUdhdGV3YXlFcnJvclJhdGVUcmlnZ2VyLFxuICBIdHRwQXBpR2F0ZXdheUxhdGVuY3lUcmlnZ2VyLFxuICBSZWxhdGlvbmFsRGF0YWJhc2VSZWFkTGF0ZW5jeVRyaWdnZXIsXG4gIFJlbGF0aW9uYWxEYXRhYmFzZVdyaXRlTGF0ZW5jeVRyaWdnZXIsXG4gIFJlbGF0aW9uYWxEYXRhYmFzZUNQVVV0aWxpemF0aW9uVHJpZ2dlcixcbiAgUmVsYXRpb25hbERhdGFiYXNlRnJlZVN0b3JhZ2VUcmlnZ2VyLFxuICBSZWxhdGlvbmFsRGF0YWJhc2VGcmVlTWVtb3J5VHJpZ2dlcixcbiAgUmVsYXRpb25hbERhdGFiYXNlQ29ubmVjdGlvbkNvdW50VHJpZ2dlcixcbiAgU3FzUXVldWVSZWNlaXZlZE1lc3NhZ2VzQ291bnRUcmlnZ2VyLFxuICBTcXNRdWV1ZU5vdEVtcHR5VHJpZ2dlcixcbiAgTGFtYmRhRXJyb3JSYXRlVHJpZ2dlcixcbiAgTGFtYmRhRHVyYXRpb25UcmlnZ2VyLFxuICAvLyBDdXN0b20gUmVzb3VyY2VzXG4gIEN1c3RvbVJlc291cmNlRGVmaW5pdGlvbixcbiAgQ3VzdG9tUmVzb3VyY2VJbnN0YW5jZSxcbiAgLy8gRGVwbG95bWVudCBTY3JpcHRzXG4gIERlcGxveW1lbnRTY3JpcHQsXG4gIC8vIEVkZ2UgTGFtYmRhIEZ1bmN0aW9uc1xuICBFZGdlTGFtYmRhRnVuY3Rpb25cbn0gPSBUWVBFX1BST1BFUlRJRVNfQ0xBU1NFUztcbiIKICBdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSxJQUFNLHVCQUF1QjtBQUM3QixJQUFNLHVCQUF1QjtBQUU3QixJQUFNLDJCQUEyQjtBQUVqQyxJQUFNLHVCQUF1QjtBQUU3QixJQUFNLHNCQUFzQjtBQUU1QixJQUFNLG1DQUFtQztBQUlsQyxTQUFTLEtBQUssQ0FBQyxPQUFPO0FBQUEsRUFDekIsSUFBSSxTQUFTLE1BQU0sS0FBSztBQUFBLEVBQ3hCLFNBQVMsT0FDSixRQUFRLHNCQUFzQixtQkFBbUIsRUFDakQsUUFBUSxzQkFBc0IsbUJBQW1CO0FBQUEsRUFDdEQsU0FBUyxPQUFPLFFBQVEsc0JBQXNCLE1BQUk7QUFBQSxFQUNsRCxJQUFJLFFBQVE7QUFBQSxFQUNaLElBQUksTUFBTSxPQUFPO0FBQUEsRUFFakIsT0FBTyxPQUFPLE9BQU8sS0FBSyxNQUFNO0FBQUEsSUFDNUI7QUFBQSxFQUNKLElBQUksVUFBVTtBQUFBLElBQ1YsT0FBTyxDQUFDO0FBQUEsRUFDWixPQUFPLE9BQU8sT0FBTyxNQUFNLENBQUMsTUFBTTtBQUFBLElBQzlCO0FBQUEsRUFDSixPQUFPLE9BQU8sTUFBTSxPQUFPLEdBQUcsRUFBRSxNQUFNLEtBQUs7QUFBQTtBQUt4QyxTQUFTLG9CQUFvQixDQUFDLE9BQU87QUFBQSxFQUN4QyxNQUFNLFFBQVEsTUFBTSxLQUFLO0FBQUEsRUFDekIsU0FBUyxJQUFJLEVBQUcsSUFBSSxNQUFNLFFBQVEsS0FBSztBQUFBLElBQ25DLE1BQU0sT0FBTyxNQUFNO0FBQUEsSUFDbkIsTUFBTSxRQUFRLHlCQUF5QixLQUFLLElBQUk7QUFBQSxJQUNoRCxJQUFJLE9BQU87QUFBQSxNQUNQLE1BQU0sU0FBUyxNQUFNLFNBQVMsTUFBTSxNQUFNLE1BQU0sSUFBSTtBQUFBLE1BQ3BELE1BQU0sT0FBTyxHQUFHLEdBQUcsS0FBSyxNQUFNLEdBQUcsTUFBTSxHQUFHLEtBQUssTUFBTSxNQUFNLENBQUM7QUFBQSxJQUNoRTtBQUFBLEVBQ0o7QUFBQSxFQUNBLE9BQU87QUFBQTtBQWtDSixTQUFTLFVBQVUsQ0FBQyxPQUFPLFNBQVM7QUFBQSxFQUN2QyxPQUFPLFFBQVEsT0FBTyxVQUFVLGtCQUFrQixPQUFPLE9BQU87QUFBQSxFQUNoRSxNQUFNLFFBQVEsYUFBYSxTQUFTLE1BQU07QUFBQSxFQUMxQyxNQUFNLFFBQVEsYUFBYSxTQUFTLE1BQU07QUFBQSxFQUMxQyxNQUFNLFlBQVksU0FBUywyQkFDckIsNEJBQTRCLE9BQU8sS0FBSyxJQUN4QywyQkFBMkIsT0FBTyxLQUFLO0FBQUEsRUFDN0MsT0FBTyxTQUFTLE1BQU0sSUFBSSxTQUFTLEVBQUUsS0FBSyxTQUFTLGFBQWEsRUFBRSxJQUFJO0FBQUE7QUE4RTFFLFNBQVMsWUFBWSxDQUFDLFFBQVE7QUFBQSxFQUMxQixPQUFPLFdBQVcsUUFDWixDQUFDLFVBQVUsTUFBTSxZQUFZLElBQzdCLENBQUMsVUFBVSxNQUFNLGtCQUFrQixNQUFNO0FBQUE7QUFFbkQsU0FBUyxZQUFZLENBQUMsUUFBUTtBQUFBLEVBQzFCLE9BQU8sV0FBVyxRQUNaLENBQUMsVUFBVSxNQUFNLFlBQVksSUFDN0IsQ0FBQyxVQUFVLE1BQU0sa0JBQWtCLE1BQU07QUFBQTtBQUVuRCxTQUFTLDJCQUEyQixDQUFDLE9BQU8sT0FBTztBQUFBLEVBQy9DLE9BQU8sQ0FBQyxTQUFTLEdBQUcsTUFBTSxLQUFLLEVBQUUsSUFBSSxNQUFNLEtBQUssTUFBTSxDQUFDLENBQUM7QUFBQTtBQUU1RCxTQUFTLDBCQUEwQixDQUFDLE9BQU8sT0FBTztBQUFBLEVBQzlDLE9BQU8sQ0FBQyxNQUFNLFVBQVU7QUFBQSxJQUNwQixNQUFNLFFBQVEsS0FBSztBQUFBLElBQ25CLE1BQU0sVUFBVSxRQUFRLEtBQUssU0FBUyxPQUFPLFNBQVMsTUFBTSxNQUFNLFFBQVEsTUFBTSxLQUFLO0FBQUEsSUFDckYsT0FBTyxVQUFVLE1BQU0sS0FBSyxNQUFNLENBQUMsQ0FBQztBQUFBO0FBQUE7QUFHNUMsU0FBUyxpQkFBaUIsQ0FBQyxPQUFPLFVBQVUsQ0FBQyxHQUFHO0FBQUEsRUFDNUMsTUFBTSxVQUFVLFFBQVEsVUFBVSxRQUFRLGtCQUFrQix1QkFBdUI7QUFBQSxFQUNuRixNQUFNLG1CQUFtQixRQUFRLG9CQUFvQjtBQUFBLEVBQ3JELE1BQU0sbUJBQW1CLFFBQVEsb0JBQW9CO0FBQUEsRUFDckQsSUFBSSxjQUFjO0FBQUEsRUFDbEIsSUFBSSxjQUFjLE1BQU07QUFBQSxFQUN4QixPQUFPLGNBQWMsTUFBTSxRQUFRO0FBQUEsSUFDL0IsTUFBTSxPQUFPLE1BQU0sT0FBTyxXQUFXO0FBQUEsSUFDckMsSUFBSSxDQUFDLGlCQUFpQixTQUFTLElBQUk7QUFBQSxNQUMvQjtBQUFBLElBQ0o7QUFBQSxFQUNKO0FBQUEsRUFDQSxPQUFPLGNBQWMsYUFBYTtBQUFBLElBQzlCLE1BQU0sUUFBUSxjQUFjO0FBQUEsSUFDNUIsTUFBTSxPQUFPLE1BQU0sT0FBTyxLQUFLO0FBQUEsSUFDL0IsSUFBSSxDQUFDLGlCQUFpQixTQUFTLElBQUk7QUFBQSxNQUMvQjtBQUFBLElBQ0osY0FBYztBQUFBLEVBQ2xCO0FBQUEsRUFDQSxPQUFPO0FBQUEsSUFDSCxNQUFNLE1BQU0sR0FBRyxXQUFXO0FBQUEsSUFDMUIsUUFBUSxNQUFNLE1BQU0sYUFBYSxXQUFXLENBQUM7QUFBQSxJQUM3QyxNQUFNLE1BQU0sV0FBVztBQUFBLEVBQzNCO0FBQUE7OztBQzNNRyxJQUFNLGlCQUFpQjtBQUFBLEVBQzVCLE1BQU0sQ0FBQyxpQkFBeUI7QUFBQSxJQUM5QixPQUFPLFdBQVcsR0FBRyx3QkFBd0I7QUFBQTtBQUFBLEVBRS9DLGlCQUFpQixHQUFHO0FBQUEsSUFDbEIsT0FBTyxtQkFBbUI7QUFBQSxNQUN4QixXQUFXLEVBQUUsTUFBTSxhQUFhO0FBQUEsTUFDaEMsUUFBUSxFQUFFLDRCQUE0QiwrQkFBK0I7QUFBQSxJQUN2RSxDQUFDO0FBQUE7QUFBQSxFQUVILDZCQUE2QixHQUFHO0FBQUEsSUFDOUIsT0FBTyxtQkFBbUI7QUFBQSxNQUN4QixXQUFXLEVBQUUsTUFBTSxnQ0FBZ0M7QUFBQSxNQUNuRCxRQUFRLEVBQUUsNEJBQTRCLHNDQUFzQztBQUFBLElBQzlFLENBQUM7QUFBQTtBQUFBLEVBRUgsb0NBQW9DLEdBQUc7QUFBQSxJQUNyQyxPQUFPLG1CQUFtQjtBQUFBLE1BQ3hCLFdBQVcsRUFBRSxNQUFNLGFBQWE7QUFBQSxNQUNoQyxRQUFRLEVBQUUsNEJBQTRCLHdDQUF3QztBQUFBLElBQ2hGLENBQUM7QUFBQTtBQUFBLEVBRUgsa0NBQWtDLEdBQUc7QUFBQSxJQUNuQyxPQUFPLG1CQUFtQjtBQUFBLE1BQ3hCLFdBQVcsRUFBRSxNQUFNLGFBQWE7QUFBQSxNQUNoQyxRQUFRLEVBQUUsNEJBQTRCLHNDQUFzQztBQUFBLElBQzlFLENBQUM7QUFBQTtBQUFBLEVBRUgsNkJBQTZCLEdBQUc7QUFBQSxJQUM5QixPQUFPLG1CQUFtQjtBQUFBLE1BQ3hCLFdBQVcsRUFBRSxNQUFNLGFBQWE7QUFBQSxNQUNoQyxRQUFRLEVBQUUsNEJBQTRCLDJDQUEyQztBQUFBLElBQ25GLENBQUM7QUFBQTtBQUFBLEVBRUgsZ0NBQWdDLENBQUMsaUJBQXlCO0FBQUEsSUFDeEQsT0FBTyxtQkFBbUI7QUFBQSxNQUN4QjtBQUFBLE1BQ0EsV0FBVyxFQUFFLE1BQU0sYUFBYTtBQUFBLE1BQ2hDLFFBQVEsRUFBRSw0QkFBNEIsb0NBQW9DO0FBQUEsSUFDNUUsQ0FBQztBQUFBO0FBQUEsRUFFSCwyQkFBMkIsQ0FBQyxpQkFBeUI7QUFBQSxJQUNuRCxPQUFPLG1CQUFtQjtBQUFBLE1BQ3hCO0FBQUEsTUFDQSxRQUFRLEVBQUUsNEJBQTRCLG9DQUFvQztBQUFBLElBQzVFLENBQUM7QUFBQTtBQUFBLEVBRUgsaUJBQWlCLENBQUMsaUJBQXlCO0FBQUEsSUFDekMsT0FBTyxtQkFBbUI7QUFBQSxNQUN4QjtBQUFBLE1BQ0EsUUFBUSxFQUFFLDRCQUE0QiwrQkFBK0I7QUFBQSxJQUN2RSxDQUFDO0FBQUE7QUFBQSxFQUVILHFCQUFxQixDQUFDLGlCQUF5QjtBQUFBLElBQzdDLE9BQU8sbUJBQW1CO0FBQUEsTUFDeEI7QUFBQSxNQUNBLFFBQVEsRUFBRSw0QkFBNEIscUNBQXFDO0FBQUEsSUFDN0UsQ0FBQztBQUFBO0FBQUEsRUFFSCxhQUFhLENBQUMsaUJBQXlCO0FBQUEsSUFDckMsT0FBTyxtQkFBbUI7QUFBQSxNQUN4QjtBQUFBLE1BQ0EsUUFBUSxFQUFFLDRCQUE0QixzQkFBc0I7QUFBQSxJQUM5RCxDQUFDO0FBQUE7QUFBQSxFQUVILG1CQUFtQixDQUFDLGlCQUF5QjtBQUFBLElBQzNDLE9BQU8sbUJBQW1CO0FBQUEsTUFDeEI7QUFBQSxNQUNBLFFBQVEsRUFBRSw0QkFBNEIsbUNBQW1DO0FBQUEsSUFDM0UsQ0FBQztBQUFBO0FBQUEsRUFFSCxnQkFBZ0IsQ0FBQyxpQkFBeUI7QUFBQSxJQUN4QyxPQUFPLG1CQUFtQjtBQUFBLE1BQ3hCO0FBQUEsTUFDQSxRQUFRLEVBQUUsNEJBQTRCLGdDQUFnQztBQUFBLElBQ3hFLENBQUM7QUFBQTtBQUFBLEVBRUgsa0JBQWtCLENBQUMsaUJBQXlCO0FBQUEsSUFDMUMsT0FBTyxtQkFBbUI7QUFBQSxNQUN4QjtBQUFBLE1BQ0EsUUFBUSxFQUFFLDRCQUE0QiwwQkFBMEI7QUFBQSxJQUNsRSxDQUFDO0FBQUE7QUFBQSxFQUVILGFBQWEsQ0FBQyxpQkFBeUI7QUFBQSxJQUNyQyxPQUFPLG1CQUFtQjtBQUFBLE1BQ3hCO0FBQUEsTUFDQSxRQUFRO0FBQUEsUUFDTiw0QkFBNEI7QUFBQSxNQUM5QjtBQUFBLElBQ0YsQ0FBQztBQUFBO0FBQUEsRUFFSCxjQUFjO0FBQUEsSUFDWjtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsS0FLQztBQUFBLElBRUQsTUFBTSxvQkFBb0IsZ0JBQWdCLEdBQUcsY0FBYyxRQUFRLE9BQU8sR0FBRyxFQUFFLFFBQVEsVUFBVSxFQUFFLE1BQU07QUFBQSxJQUV6RyxPQUFPLG1CQUFtQjtBQUFBLE1BQ3hCO0FBQUEsTUFDQSxXQUFXO0FBQUEsUUFDVCxNQUFNLEdBQUcscUJBQXFCO0FBQUEsTUFDaEM7QUFBQSxNQUNBLFFBQVE7QUFBQSxRQUNOLDRCQUE0QjtBQUFBLE1BQzlCO0FBQUEsSUFDRixDQUFDO0FBQUE7QUFBQSxFQUVILGNBQWMsQ0FBQyxpQkFBeUIsa0JBQTBCO0FBQUEsSUFDaEUsT0FBTyxtQkFBbUI7QUFBQSxNQUN4QjtBQUFBLE1BQ0EsV0FBVyxFQUFFLE1BQU0sVUFBVSxXQUFXLGlCQUFpQjtBQUFBLE1BQ3pELFFBQVEsRUFBRSw0QkFBNEIsd0JBQXdCO0FBQUEsSUFDaEUsQ0FBQztBQUFBO0FBQUEsRUFFSCxnQkFBZ0IsQ0FBQyxpQkFBeUI7QUFBQSxJQUN4QyxPQUFPLG1CQUFtQjtBQUFBLE1BQ3hCO0FBQUEsTUFDQSxRQUFRLEVBQUUsNEJBQTRCLDBCQUEwQjtBQUFBLElBQ2xFLENBQUM7QUFBQTtBQUFBLEVBRUgseUJBQXlCLENBQUMsaUJBQXlCO0FBQUEsSUFDakQsT0FBTyxtQkFBbUI7QUFBQSxNQUN4QjtBQUFBLE1BQ0EsV0FBVyxFQUFFLE1BQU0sVUFBVTtBQUFBLE1BQzdCLFFBQVEsRUFBRSw0QkFBNEIsaUJBQWlCO0FBQUEsSUFDekQsQ0FBQztBQUFBO0FBQUEsRUFFSCxzQkFBc0IsQ0FBQyxpQkFBeUIsbUJBQTJCO0FBQUEsSUFDekUsT0FBTyxtQkFBbUI7QUFBQSxNQUN4QjtBQUFBLE1BQ0EsV0FBVyxFQUFFLE1BQU0sTUFBTTtBQUFBLE1BQ3pCLFFBQVEsRUFBRSw0QkFBNEIsaUNBQWlDLE9BQU8sa0JBQWtCO0FBQUEsSUFDbEcsQ0FBQztBQUFBO0FBQUEsRUFFSCwyQkFBMkIsQ0FBQyxpQkFBeUIsb0JBQTRCO0FBQUEsSUFDL0UsT0FBTyxtQkFBbUI7QUFBQSxNQUN4QjtBQUFBLE1BQ0EsV0FBVyxFQUFFLE1BQU0sbUJBQW1CLHFCQUFxQjtBQUFBLE1BQzNELFFBQVEsRUFBRSw0QkFBNEIsK0JBQStCO0FBQUEsSUFDdkUsQ0FBQztBQUFBO0FBQUEsRUFFSCw0QkFBNEIsQ0FBQyxNQUFrQztBQUFBLElBQzdELE9BQU8sbUJBQW1CO0FBQUEsTUFDeEIsV0FBVyxFQUFFLE1BQU0sTUFBTSxPQUFPO0FBQUEsTUFDaEMsUUFBUSxFQUFFLDRCQUE0QiwrQkFBK0I7QUFBQSxJQUN2RSxDQUFDO0FBQUE7QUFBQSxFQUVILG1DQUFtQyxDQUFDLGlCQUF5Qix1QkFBK0I7QUFBQSxJQUMxRixPQUFPLG1CQUFtQjtBQUFBLE1BQ3hCO0FBQUEsTUFDQSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsd0JBQXdCO0FBQUEsTUFDOUQsUUFBUSxFQUFFLDRCQUE0Qix1Q0FBdUM7QUFBQSxJQUMvRSxDQUFDO0FBQUE7QUFBQSxFQUVILG9DQUFvQyxDQUFDLE1BQWtDO0FBQUEsSUFDckUsT0FBTyxtQkFBbUI7QUFBQSxNQUN4QixXQUFXLEVBQUUsTUFBTSxNQUFNLE9BQU87QUFBQSxNQUNoQyxRQUFRLEVBQUUsNEJBQTRCLHVDQUF1QztBQUFBLElBQy9FLENBQUM7QUFBQTtBQUFBLEVBRUgsOEJBQThCLENBQUMsaUJBQXlCO0FBQUEsSUFDdEQsT0FBTyxtQkFBbUI7QUFBQSxNQUN4QjtBQUFBLE1BQ0EsV0FBVyxFQUFFLE1BQU0sTUFBTTtBQUFBLE1BQ3pCLFFBQVEsRUFBRSw0QkFBNEIsa0RBQWtEO0FBQUEsSUFDMUYsQ0FBQztBQUFBO0FBQUEsRUFFSCxpQ0FBaUMsQ0FBQyxpQkFBeUI7QUFBQSxJQUN6RCxPQUFPLG1CQUFtQjtBQUFBLE1BQ3hCO0FBQUEsTUFDQSxXQUFXLEVBQUUsTUFBTSw0QkFBNEI7QUFBQSxNQUMvQyxRQUFRLEVBQUUsNEJBQTRCLDRCQUE0QjtBQUFBLElBQ3BFLENBQUM7QUFBQTtBQUFBLEVBRUgsK0JBQStCLENBQUMsaUJBQXlCLGNBQXNCO0FBQUEsSUFDN0UsT0FBTyxtQkFBbUI7QUFBQSxNQUN4QjtBQUFBLE1BQ0EsV0FBVyxFQUFFLE1BQU0sR0FBRyxhQUFhLFFBQVEsTUFBTSxFQUFFLHFCQUFxQjtBQUFBLE1BQ3hFLFFBQVEsRUFBRSw0QkFBNEIsNEJBQTRCO0FBQUEsSUFDcEUsQ0FBQztBQUFBO0FBQUEsRUFFSCxtQ0FBbUMsQ0FBQyxpQkFBeUI7QUFBQSxJQUMzRCxPQUFPLG1CQUFtQjtBQUFBLE1BQ3hCO0FBQUEsTUFDQSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0I7QUFBQSxNQUNuQyxRQUFRLEVBQUUsNEJBQTRCLHNDQUFzQztBQUFBLElBQzlFLENBQUM7QUFBQTtBQUFBLEVBRUgsa0NBQWtDLENBQUMsaUJBQXlCO0FBQUEsSUFDMUQsT0FBTyxtQkFBbUI7QUFBQSxNQUN4QjtBQUFBLE1BQ0EsV0FBVyxFQUFFLE1BQU0sZUFBZTtBQUFBLE1BQ2xDLFFBQVEsRUFBRSw0QkFBNEIsc0NBQXNDO0FBQUEsSUFDOUUsQ0FBQztBQUFBO0FBQUEsRUFFSCxTQUFTLENBQUMsMEJBQWtDO0FBQUEsSUFHMUMsT0FBTyxtQkFBbUI7QUFBQSxNQUN4QixpQkFBaUI7QUFBQSxNQUNqQixXQUFXLEVBQUUsTUFBTSw4QkFBOEIsd0JBQXdCLEVBQUU7QUFBQSxNQUMzRSxRQUFRLEVBQUUsNEJBQTRCLDBCQUEwQjtBQUFBLElBQ2xFLENBQUM7QUFBQTtBQUFBLEVBRUgsaUJBQWlCLENBQUMsaUJBQXlCO0FBQUEsSUFDekMsT0FBTyxtQkFBbUI7QUFBQSxNQUN4QjtBQUFBLE1BQ0EsUUFBUSxFQUFFLDRCQUE0Qiw2QkFBNkI7QUFBQSxJQUNyRSxDQUFDO0FBQUE7QUFBQSxFQUVILG1CQUFtQixDQUFDLGlCQUF5QjtBQUFBLElBQzNDLE9BQU8sbUJBQW1CO0FBQUEsTUFDeEI7QUFBQSxNQUNBLFFBQVEsRUFBRSw0QkFBNEIsdUJBQXVCO0FBQUEsSUFDL0QsQ0FBQztBQUFBO0FBQUEsRUFFSCxZQUFZLENBQUMsaUJBQXlCO0FBQUEsSUFDcEMsT0FBTyxtQkFBbUI7QUFBQSxNQUN4QjtBQUFBLE1BQ0EsUUFBUSxFQUFFLDRCQUE0Qix3QkFBd0I7QUFBQSxJQUNoRSxDQUFDO0FBQUE7QUFBQSxFQUVILGNBQWMsQ0FBQyxpQkFBeUI7QUFBQSxJQUN0QyxPQUFPLG1CQUFtQjtBQUFBLE1BQ3hCO0FBQUEsTUFDQSxRQUFRLEVBQUUsNEJBQTRCLHNCQUFzQjtBQUFBLElBQzlELENBQUM7QUFBQTtBQUFBLEVBRUgsb0NBQW9DLENBQUMsaUJBQXlCLFlBQW9CO0FBQUEsSUFDaEYsT0FBTyxtQkFBbUI7QUFBQSxNQUN4QjtBQUFBLE1BQ0EsV0FBVztBQUFBLFFBQ1QsTUFBTTtBQUFBLFFBQ04sV0FBVztBQUFBLE1BQ2I7QUFBQSxNQUNBLFFBQVEsRUFBRSw0QkFBNEIsd0JBQXdCO0FBQUEsSUFDaEUsQ0FBQztBQUFBO0FBQUEsRUFFSCxvQkFBb0IsQ0FBQyxpQkFBeUIsWUFBb0I7QUFBQSxJQUNoRSxPQUFPLG1CQUFtQjtBQUFBLE1BQ3hCO0FBQUEsTUFDQSxXQUFXO0FBQUEsUUFDVCxNQUFNO0FBQUEsUUFDTixXQUFXO0FBQUEsTUFDYjtBQUFBLE1BQ0EsUUFBUSxFQUFFLDRCQUE0Qix5QkFBeUI7QUFBQSxJQUNqRSxDQUFDO0FBQUE7QUFBQSxFQUVILGtCQUFrQixDQUFDLGlCQUF5QixZQUFvQjtBQUFBLElBQzlELE9BQU8sbUJBQW1CO0FBQUEsTUFDeEI7QUFBQSxNQUNBLFdBQVc7QUFBQSxRQUNULE1BQU07QUFBQSxRQUNOLFdBQVc7QUFBQSxNQUNiO0FBQUEsTUFDQSxRQUFRLEVBQUUsNEJBQTRCLDBCQUEwQjtBQUFBLElBQ2xFLENBQUM7QUFBQTtBQUFBLEVBRUgsT0FBTyxHQUFHO0FBQUEsSUFDUixPQUFPLG1CQUFtQjtBQUFBLE1BQ3hCLFdBQVc7QUFBQSxRQUNULE1BQU07QUFBQSxNQUNSO0FBQUEsTUFDQSxRQUFRLEVBQUUsNEJBQTRCLHVCQUF1QjtBQUFBLElBQy9ELENBQUM7QUFBQTtBQUFBLEVBRUgsZ0JBQWdCLEdBQUc7QUFBQSxJQUNqQixPQUFPLG1CQUFtQjtBQUFBLE1BQ3hCLFdBQVc7QUFBQSxRQUNULE1BQU07QUFBQSxNQUNSO0FBQUEsTUFDQSxRQUFRLEVBQUUsNEJBQTRCLGtCQUFrQjtBQUFBLElBQzFELENBQUM7QUFBQTtBQUFBLEVBRUgsc0JBQXNCLEdBQUc7QUFBQSxJQUN2QixPQUFPLG1CQUFtQjtBQUFBLE1BQ3hCLFdBQVc7QUFBQSxRQUNULE1BQU07QUFBQSxNQUNSO0FBQUEsTUFDQSxRQUFRLEVBQUUsNEJBQTRCLHdCQUF3QjtBQUFBLElBQ2hFLENBQUM7QUFBQTtBQUFBLEVBRUgsa0JBQWtCLENBQUMsaUJBQXlCO0FBQUEsSUFDMUMsT0FBTyxtQkFBbUI7QUFBQSxNQUN4QjtBQUFBLE1BQ0EsUUFBUSxFQUFFLDRCQUE0QixpQ0FBaUM7QUFBQSxJQUN6RSxDQUFDO0FBQUE7QUFBQSxFQUVILG9DQUFvQyxDQUFDLGlCQUF5QjtBQUFBLElBQzVELE9BQU8sbUJBQW1CO0FBQUEsTUFDeEI7QUFBQSxNQUNBLFdBQVcsRUFBRSxNQUFNLFVBQVU7QUFBQSxNQUM3QixRQUFRLEVBQUUsNEJBQTRCLHNDQUFzQztBQUFBLElBQzlFLENBQUM7QUFBQTtBQUFBLEVBRUgscUJBQXFCLEdBQUc7QUFBQSxJQUN0QixPQUFPLG1CQUFtQjtBQUFBLE1BQ3hCLFdBQVc7QUFBQSxRQUNULE1BQU07QUFBQSxNQUNSO0FBQUEsTUFDQSxRQUFRLEVBQUUsNEJBQTRCLGlCQUFpQjtBQUFBLElBQ3pELENBQUM7QUFBQTtBQUFBLEVBRUgsaUJBQWlCLEdBQUc7QUFBQSxJQUNsQixPQUFPLG1CQUFtQjtBQUFBLE1BQ3hCLFdBQVc7QUFBQSxRQUNULE1BQU07QUFBQSxNQUNSO0FBQUEsTUFDQSxRQUFRLEVBQUUsNEJBQTRCLGlCQUFpQjtBQUFBLElBQ3pELENBQUM7QUFBQTtBQUFBLEVBRUgsaUNBQWlDLEdBQUc7QUFBQSxJQUNsQyxPQUFPLG1CQUFtQjtBQUFBLE1BQ3hCLFdBQVc7QUFBQSxRQUNULE1BQU07QUFBQSxNQUNSO0FBQUEsTUFDQSxRQUFRLEVBQUUsNEJBQTRCLDBCQUEwQjtBQUFBLElBQ2xFLENBQUM7QUFBQTtBQUFBLEVBRUgsb0JBQW9CLEdBQUc7QUFBQSxJQUNyQixPQUFPLG1CQUFtQjtBQUFBLE1BQ3hCLFdBQVc7QUFBQSxRQUNULE1BQU07QUFBQSxNQUNSO0FBQUEsTUFDQSxRQUFRLEVBQUUsNEJBQTRCLDRCQUE0QjtBQUFBLElBQ3BFLENBQUM7QUFBQTtBQUFBLEVBRUgsMkJBQTJCLEdBQUc7QUFBQSxJQUM1QixPQUFPLG1CQUFtQjtBQUFBLE1BQ3hCLFdBQVc7QUFBQSxRQUNULE1BQU07QUFBQSxNQUNSO0FBQUEsTUFDQSxRQUFRLEVBQUUsNEJBQTRCLDJCQUEyQjtBQUFBLElBQ25FLENBQUM7QUFBQTtBQUFBLEVBRUgsOEJBQThCLEdBQUc7QUFBQSxJQUMvQixPQUFPLG1CQUFtQjtBQUFBLE1BQ3hCLFdBQVc7QUFBQSxRQUNULE1BQU07QUFBQSxNQUNSO0FBQUEsTUFDQSxRQUFRLEVBQUUsNEJBQTRCLGlCQUFpQjtBQUFBLElBQ3pELENBQUM7QUFBQTtBQUFBLEVBRUgsa0JBQWtCLEdBQUc7QUFBQSxJQUNuQixPQUFPLG1CQUFtQjtBQUFBLE1BQ3hCLFdBQVc7QUFBQSxRQUNULE1BQU07QUFBQSxNQUNSO0FBQUEsTUFDQSxRQUFRLEVBQUUsNEJBQTRCLGlCQUFpQjtBQUFBLElBQ3pELENBQUM7QUFBQTtBQUFBLEVBRUgsZ0JBQWdCLEdBQUc7QUFBQSxJQUNqQixPQUFPLG1CQUFtQjtBQUFBLE1BQ3hCLFdBQVc7QUFBQSxRQUNULE1BQU07QUFBQSxNQUNSO0FBQUEsTUFDQSxRQUFRLEVBQUUsNEJBQTRCLGlCQUFpQjtBQUFBLElBQ3pELENBQUM7QUFBQTtBQUFBLEVBRUgscUJBQXFCLENBQUMsaUJBQXlCO0FBQUEsSUFDN0MsT0FBTyxtQkFBbUI7QUFBQSxNQUN4QjtBQUFBLE1BQ0EsUUFBUSxFQUFFLDRCQUE0QixpQkFBaUI7QUFBQSxJQUN6RCxDQUFDO0FBQUE7QUFBQSxFQUVILHVCQUF1QixDQUFDLE1BQWUsS0FBYztBQUFBLElBQ25ELE9BQU8sbUJBQW1CO0FBQUEsTUFDeEIsV0FBVztBQUFBLFFBQ1QsTUFBTSxTQUFTLE9BQU8sU0FBUyxjQUFjLE1BQU0sUUFBUTtBQUFBLE1BQzdEO0FBQUEsTUFDQSxRQUFRLEVBQUUsNEJBQTRCLGlDQUFpQztBQUFBLElBQ3pFLENBQUM7QUFBQTtBQUFBLEVBRUgsYUFBYSxDQUFDLE1BQWUsS0FBYztBQUFBLElBQ3pDLE9BQU8sbUJBQW1CO0FBQUEsTUFDeEIsV0FBVztBQUFBLFFBQ1QsTUFBTSxTQUFTLE9BQU8sU0FBUyxjQUFjLE1BQU0sUUFBUTtBQUFBLE1BQzdEO0FBQUEsTUFDQSxRQUFRLEVBQUUsNEJBQTRCLHVCQUF1QjtBQUFBLElBQy9ELENBQUM7QUFBQTtBQUFBLEVBRUgsTUFBTSxDQUFDLGNBQXVCLGFBQXFCO0FBQUEsSUFDakQsT0FBTyxtQkFBbUI7QUFBQSxNQUN4QixXQUFXO0FBQUEsUUFDVCxNQUFNLGVBQWUsV0FBVztBQUFBLE1BQ2xDO0FBQUEsTUFDQSxRQUFRLEVBQUUsNEJBQTRCLG9CQUFvQixPQUFPLFlBQVk7QUFBQSxJQUMvRSxDQUFDO0FBQUE7QUFBQSxFQUVILEdBQUcsR0FBRztBQUFBLElBQ0osT0FBTyxtQkFBbUI7QUFBQSxNQUN4QixRQUFRLEVBQUUsNEJBQTRCLGdCQUFnQjtBQUFBLElBQ3hELENBQUM7QUFBQTtBQUFBLEVBRUgsa0JBQWtCLENBQUMsTUFBMEI7QUFBQSxJQUMzQyxPQUFPLG1CQUFtQjtBQUFBLE1BQ3hCLFdBQVcsRUFBRSxNQUFNLEdBQUcsZUFBZTtBQUFBLE1BQ3JDLFFBQVEsRUFBRSw0QkFBNEIsd0JBQXdCO0FBQUEsSUFDaEUsQ0FBQztBQUFBO0FBQUEsRUFFSCxhQUFhLENBQUMsaUJBQXlCO0FBQUEsSUFDckMsT0FBTyxtQkFBbUI7QUFBQSxNQUN4QjtBQUFBLE1BQ0EsUUFBUSxFQUFFLDRCQUE0QiwwQkFBMEI7QUFBQSxJQUNsRSxDQUFDO0FBQUE7QUFBQSxFQUVILGVBQWUsQ0FBQyxpQkFBeUI7QUFBQSxJQUN2QyxPQUFPLG1CQUFtQjtBQUFBLE1BQ3hCO0FBQUEsTUFDQSxRQUFRLEVBQUUsNEJBQTRCLHNCQUFzQjtBQUFBLElBQzlELENBQUM7QUFBQTtBQUFBLEVBRUgsNkJBQTZCLENBQUMsaUJBQXlCO0FBQUEsSUFDckQsT0FBTyxtQkFBbUI7QUFBQSxNQUN4QjtBQUFBLE1BQ0EsUUFBUSxFQUFFLDRCQUE0QixvQ0FBb0M7QUFBQSxJQUM1RSxDQUFDO0FBQUE7QUFBQSxFQUVILHVCQUF1QixDQUFDLGlCQUF5QixjQUFzQjtBQUFBLElBQ3JFLE9BQU8sbUJBQW1CO0FBQUEsTUFDeEI7QUFBQSxNQUNBLFdBQVcsRUFBRSxNQUFNLFdBQVcsU0FBUyxhQUFhO0FBQUEsTUFDcEQsUUFBUSxFQUFFLDRCQUE0QixzQkFBc0I7QUFBQSxJQUM5RCxDQUFDO0FBQUE7QUFBQSxFQUVILGVBQWUsQ0FBQyxpQkFBeUI7QUFBQSxJQUN2QyxPQUFPLG1CQUFtQjtBQUFBLE1BQ3hCO0FBQUEsTUFDQSxRQUFRLEVBQUUsNEJBQTRCLDBCQUEwQjtBQUFBLElBQ2xFLENBQUM7QUFBQTtBQUFBLEVBRUgsVUFBVSxDQUFDLGlCQUF5QjtBQUFBLElBQ2xDLE9BQU8sbUJBQW1CO0FBQUEsTUFDeEI7QUFBQSxNQUNBLFFBQVEsRUFBRSw0QkFBNEIsdUJBQXVCO0FBQUEsSUFDL0QsQ0FBQztBQUFBO0FBQUEsRUFFSCxrQkFBa0IsQ0FBQyxpQkFBeUIsY0FBc0I7QUFBQSxJQUNoRSxPQUFPLG1CQUFtQjtBQUFBLE1BQ3hCO0FBQUEsTUFDQSxXQUFXLEVBQUUsTUFBTSxZQUFZLFNBQVMsYUFBYTtBQUFBLE1BQ3JELFFBQVEsRUFBRSw0QkFBNEIsc0JBQXNCO0FBQUEsSUFDOUQsQ0FBQztBQUFBO0FBQUEsRUFFSCx3QkFBd0IsQ0FBQyxpQkFBeUIsY0FBc0I7QUFBQSxJQUN0RSxPQUFPLG1CQUFtQjtBQUFBLE1BQ3hCO0FBQUEsTUFDQSxXQUFXLEVBQUUsTUFBTSxZQUFZLFNBQVMsYUFBYTtBQUFBLE1BQ3JELFFBQVEsRUFBRSw0QkFBNEIsc0JBQXNCO0FBQUEsSUFDOUQsQ0FBQztBQUFBO0FBQUEsRUFFSCxhQUFhLENBQUMsaUJBQXlCO0FBQUEsSUFDckMsT0FBTyxtQkFBbUI7QUFBQSxNQUN4QjtBQUFBLE1BQ0EsUUFBUSxFQUFFLDRCQUE0Qix3QkFBd0I7QUFBQSxJQUNoRSxDQUFDO0FBQUE7QUFBQSxFQUVILHdCQUF3QixDQUFDLGlCQUF5QjtBQUFBLElBQ2hELE9BQU8sbUJBQW1CO0FBQUEsTUFDeEI7QUFBQSxNQUNBLFFBQVEsRUFBRSw0QkFBNEIsNkJBQTZCO0FBQUEsSUFDckUsQ0FBQztBQUFBO0FBQUEsRUFFSCxTQUFTLENBQUMsaUJBQXlCLFlBQW9CO0FBQUEsSUFDckQsT0FBTyxtQkFBbUI7QUFBQSxNQUN4QjtBQUFBLE1BQ0EsV0FBVyxFQUFFLE1BQU0sV0FBVyxXQUFXLFdBQVc7QUFBQSxNQUNwRCxRQUFRLEVBQUUsNEJBQTRCLHVCQUF1QjtBQUFBLElBQy9ELENBQUM7QUFBQTtBQUFBLEVBRUgsaUJBQWlCLENBQUMsaUJBQXlCLGNBQXNCLFlBQW9CO0FBQUEsSUFDbkYsT0FBTyxtQkFBbUI7QUFBQSxNQUN4QjtBQUFBLE1BQ0EsV0FBVyxFQUFFLE1BQU0sV0FBVyxXQUFXLFlBQVksU0FBUyxhQUFhO0FBQUEsTUFDM0UsUUFBUSxFQUFFLDRCQUE0QixzQkFBc0I7QUFBQSxJQUM5RCxDQUFDO0FBQUE7QUFBQSxFQUVILHVCQUF1QixDQUFDLGlCQUF5QixZQUFvQjtBQUFBLElBQ25FLE9BQU8sbUJBQW1CO0FBQUEsTUFDeEI7QUFBQSxNQUNBLFdBQVcsRUFBRSxNQUFNLFdBQVcsV0FBVyxXQUFXO0FBQUEsTUFDcEQsUUFBUSxFQUFFLDRCQUE0Qiw2QkFBNkI7QUFBQSxJQUNyRSxDQUFDO0FBQUE7QUFBQSxFQUVILGdCQUFnQixDQUFDLGlCQUF5QixhQUFxQjtBQUFBLElBQzdELE9BQU8sbUJBQW1CO0FBQUEsTUFDeEI7QUFBQSxNQUNBLFFBQVEsRUFBRSw0QkFBNEIsd0JBQXdCLE9BQU8sWUFBWTtBQUFBLElBQ25GLENBQUM7QUFBQTtBQUFBLEVBRUgsOEJBQThCLENBQUMsaUJBQXlCO0FBQUEsSUFDdEQsT0FBTyxtQkFBbUI7QUFBQSxNQUN4QjtBQUFBLE1BQ0EsV0FBVyxFQUFFLE1BQU0sV0FBVztBQUFBLE1BQzlCLFFBQVEsRUFBRSw0QkFBNEIsNkJBQTZCO0FBQUEsSUFDckUsQ0FBQztBQUFBO0FBQUEsRUFFSCxZQUFZLENBQUMsaUJBQXlCLFlBQW9CO0FBQUEsSUFDeEQsT0FBTyxtQkFBbUI7QUFBQSxNQUN4QjtBQUFBLE1BQ0EsV0FBVztBQUFBLFFBQ1QsTUFBTTtBQUFBLFFBQ04sV0FBVztBQUFBLE1BQ2I7QUFBQSxNQUNBLFFBQVEsRUFBRSw0QkFBNEIsb0JBQW9CO0FBQUEsSUFDNUQsQ0FBQztBQUFBO0FBQUEsRUFFSCx5QkFBeUIsR0FBRztBQUFBLElBQzFCLE9BQU8sbUJBQW1CO0FBQUEsTUFDeEIsV0FBVyxFQUFFLE1BQU0sMkJBQTJCO0FBQUEsTUFDOUMsUUFBUSxFQUFFLDRCQUE0QixvQkFBb0I7QUFBQSxJQUM1RCxDQUFDO0FBQUE7QUFBQSxFQUVILG1DQUFtQyxHQUFHO0FBQUEsSUFDcEMsT0FBTyxtQkFBbUI7QUFBQSxNQUN4QixXQUFXLEVBQUUsTUFBTSwrQkFBK0I7QUFBQSxNQUNsRCxRQUFRLEVBQUUsNEJBQTRCLDBCQUEwQjtBQUFBLElBQ2xFLENBQUM7QUFBQTtBQUFBLEVBRUgsb0NBQW9DLENBQUMsaUJBQXlCLFlBQW9CO0FBQUEsSUFDaEYsT0FBTyxtQkFBbUI7QUFBQSxNQUN4QjtBQUFBLE1BQ0EsV0FBVztBQUFBLFFBQ1QsTUFBTTtBQUFBLFFBQ04sV0FBVztBQUFBLE1BQ2I7QUFBQSxNQUNBLFFBQVEsRUFBRSw0QkFBNEIsZ0NBQWdDO0FBQUEsSUFDeEUsQ0FBQztBQUFBO0FBQUEsRUFFSCxrQkFBa0IsQ0FBQyxpQkFBeUIsWUFBb0I7QUFBQSxJQUM5RCxPQUFPLG1CQUFtQjtBQUFBLE1BQ3hCO0FBQUEsTUFDQSxXQUFXO0FBQUEsUUFDVCxNQUFNO0FBQUEsUUFDTixXQUFXO0FBQUEsTUFDYjtBQUFBLE1BQ0EsUUFBUSxFQUFFLDRCQUE0QixrQ0FBa0M7QUFBQSxJQUMxRSxDQUFDO0FBQUE7QUFBQSxFQUVILGlCQUFpQixDQUFDLGlCQUF5QixZQUFvQjtBQUFBLElBQzdELE9BQU8sbUJBQW1CO0FBQUEsTUFDeEI7QUFBQSxNQUNBLFdBQVc7QUFBQSxRQUNULE1BQU07QUFBQSxRQUNOLFdBQVc7QUFBQSxNQUNiO0FBQUEsTUFDQSxRQUFRLEVBQUUsNEJBQTRCLHNCQUFzQjtBQUFBLElBQzlELENBQUM7QUFBQTtBQUFBLEVBRUgsb0JBQW9CLENBQUMsaUJBQXlCLFlBQW9CO0FBQUEsSUFDaEUsT0FBTyxtQkFBbUI7QUFBQSxNQUN4QjtBQUFBLE1BQ0EsV0FBVztBQUFBLFFBQ1QsTUFBTTtBQUFBLFFBQ04sV0FBVztBQUFBLE1BQ2I7QUFBQSxNQUNBLFFBQVEsRUFBRSw0QkFBNEIsK0JBQStCO0FBQUEsSUFDdkUsQ0FBQztBQUFBO0FBQUEsRUFFSCxNQUFNLENBQUMsaUJBQXlCLHNCQUFnQztBQUFBLElBQzlELE9BQU8sbUJBQW1CO0FBQUEsTUFDeEI7QUFBQSxNQUNBLFdBQVcsdUJBQXVCLEVBQUUsTUFBTSxpQkFBaUIsSUFBSTtBQUFBLE1BQy9ELFFBQVEsRUFBRSw0QkFBNEIsd0JBQXdCO0FBQUEsSUFDaEUsQ0FBQztBQUFBO0FBQUEsRUFFSCxjQUFjLENBQUMsaUJBQXlCO0FBQUEsSUFDdEMsT0FBTyxtQkFBbUI7QUFBQSxNQUN4QjtBQUFBLE1BQ0EsV0FBVztBQUFBLFFBQ1QsTUFBTTtBQUFBLE1BQ1I7QUFBQSxNQUNBLFFBQVEsRUFBRSw0QkFBNEIscUJBQXFCO0FBQUEsSUFDN0QsQ0FBQztBQUFBO0FBQUEsRUFFSCxTQUFTLENBQUMsaUJBQXlCO0FBQUEsSUFDakMsT0FBTyxtQkFBbUI7QUFBQSxNQUN4QjtBQUFBLE1BQ0EsUUFBUSxFQUFFLDRCQUE0QixtQkFBbUI7QUFBQSxJQUMzRCxDQUFDO0FBQUE7QUFBQSxFQUVILHlCQUF5QixDQUFDLGlCQUF5QjtBQUFBLElBQ2pELE9BQU8sbUJBQW1CO0FBQUEsTUFDeEI7QUFBQSxNQUNBLFFBQVEsRUFBRSw0QkFBNEIsbUNBQW1DO0FBQUEsSUFDM0UsQ0FBQztBQUFBO0FBQUEsRUFFSCxjQUFjLENBQUMsaUJBQXlCO0FBQUEsSUFDdEMsT0FBTyxtQkFBbUI7QUFBQSxNQUN4QjtBQUFBLE1BQ0EsUUFBUSxFQUFFLDRCQUE0QixzQ0FBc0M7QUFBQSxJQUM5RSxDQUFDO0FBQUE7QUFBQSxFQUVILG9CQUFvQixDQUFDLGlCQUF5QjtBQUFBLElBQzVDLE9BQU8sbUJBQW1CO0FBQUEsTUFDeEI7QUFBQSxNQUNBLFdBQVcsRUFBRSxNQUFNLFNBQVM7QUFBQSxNQUM1QixRQUFRLEVBQUUsNEJBQTRCLHNDQUFzQztBQUFBLElBQzlFLENBQUM7QUFBQTtBQUFBLEVBRUgsaUJBQWlCLENBQUMsaUJBQXlCO0FBQUEsSUFDekMsT0FBTyxtQkFBbUI7QUFBQSxNQUN4QjtBQUFBLE1BQ0EsV0FBVyxFQUFFLE1BQU0sZUFBZTtBQUFBLE1BQ2xDLFFBQVEsRUFBRSw0QkFBNEIsbUNBQW1DO0FBQUEsSUFDM0UsQ0FBQztBQUFBO0FBQUEsRUFFSCxrQkFBa0IsQ0FBQyxpQkFBeUI7QUFBQSxJQUMxQyxPQUFPLG1CQUFtQjtBQUFBLE1BQ3hCO0FBQUEsTUFDQSxRQUFRLEVBQUUsNEJBQTRCLDRCQUE0QjtBQUFBLElBQ3BFLENBQUM7QUFBQTtBQUFBLEVBRUgsZ0JBQWdCLENBQUMsaUJBQXlCO0FBQUEsSUFDeEMsT0FBTyxtQkFBbUI7QUFBQSxNQUN4QjtBQUFBLE1BQ0EsUUFBUSxFQUFFLDRCQUE0QixzQkFBc0I7QUFBQSxJQUM5RCxDQUFDO0FBQUE7QUFBQSxFQUVILHVCQUF1QixHQUFHO0FBQUEsSUFDeEIsT0FBTyxtQkFBbUI7QUFBQSxNQUN4QixXQUFXO0FBQUEsUUFDVCxNQUFNO0FBQUEsTUFDUjtBQUFBLE1BQ0EsUUFBUSxFQUFFLDRCQUE0QixpQkFBaUI7QUFBQSxJQUN6RCxDQUFDO0FBQUE7QUFBQSxFQUVILFlBQVksQ0FBQyxpQkFBeUI7QUFBQSxJQUNwQyxPQUFPLG1CQUFtQjtBQUFBLE1BQ3hCO0FBQUEsTUFDQSxRQUFRLEVBQUUsNEJBQTRCLG1DQUFtQztBQUFBLElBQzNFLENBQUM7QUFBQTtBQUFBLEVBRUgsZUFBZSxHQUFHO0FBQUEsSUFDaEIsT0FBTyxtQkFBbUI7QUFBQSxNQUN4QixRQUFRLEVBQUUsNEJBQTRCLDRCQUE0QjtBQUFBLElBQ3BFLENBQUM7QUFBQTtBQUFBLEVBRUgsb0JBQW9CLEdBQUc7QUFBQSxJQUNyQixPQUFPLG1CQUFtQjtBQUFBLE1BQ3hCLFFBQVEsRUFBRSw0QkFBNEIsaUNBQWlDO0FBQUEsSUFDekUsQ0FBQztBQUFBO0FBQUEsRUFFSCxVQUFVLENBQUMsY0FBdUIsYUFBcUI7QUFBQSxJQUNyRCxPQUFPLG1CQUFtQjtBQUFBLE1BQ3hCLFdBQVcsRUFBRSxNQUFNLGVBQWUsaUJBQWlCLGlCQUFpQixXQUFXLFlBQVk7QUFBQSxNQUMzRixRQUFRLEVBQUUsNEJBQTRCLHVCQUF1QjtBQUFBLElBQy9ELENBQUM7QUFBQTtBQUFBLEVBRUgsb0JBQW9CLENBQUMsYUFBcUI7QUFBQSxJQUN4QyxPQUFPLG1CQUFtQjtBQUFBLE1BQ3hCLFdBQVcsRUFBRSxNQUFNLGtCQUFrQjtBQUFBLE1BQ3JDLFFBQVEsRUFBRSw0QkFBNEIsbUJBQW1CLE9BQU8sWUFBWTtBQUFBLElBQzlFLENBQUM7QUFBQTtBQUFBLEVBRUgsa0JBQWtCLENBQUMsbUJBQTRCLGFBQXFCO0FBQUEsSUFDbEUsT0FBTyxtQkFBbUI7QUFBQSxNQUN4QixXQUFXLEVBQUUsTUFBTSxhQUFhLG9CQUFvQixpQkFBaUIsa0JBQWtCO0FBQUEsTUFDdkYsUUFBUSxFQUFFLDRCQUE0QixtQkFBbUIsT0FBTyxZQUFZO0FBQUEsSUFDOUUsQ0FBQztBQUFBO0FBQUEsRUFFSCw2QkFBNkIsQ0FBQyxjQUF1QixhQUFxQjtBQUFBLElBQ3hFLE9BQU8sbUJBQW1CO0FBQUEsTUFDeEIsV0FBVyxFQUFFLE1BQU0sZUFBZSxpQkFBaUIsaUJBQWlCLFdBQVcsWUFBWTtBQUFBLE1BQzNGLFFBQVEsRUFBRSw0QkFBNEIsd0NBQXdDO0FBQUEsSUFDaEYsQ0FBQztBQUFBO0FBQUEsRUFFSCxVQUFVLENBQUMsU0FBaUI7QUFBQSxJQUMxQixPQUFPLG1CQUFtQjtBQUFBLE1BQ3hCLFFBQVEsRUFBRSw0QkFBNEIsd0JBQXdCLE9BQU8sUUFBUTtBQUFBLElBQy9FLENBQUM7QUFBQTtBQUFBLEVBRUgsWUFBWSxDQUFDLFNBQWlCO0FBQUEsSUFDNUIsT0FBTyxtQkFBbUI7QUFBQSxNQUN4QixXQUFXLEVBQUUsTUFBTSxNQUFNO0FBQUEsTUFDekIsUUFBUSxFQUFFLDRCQUE0QixpQkFBaUIsT0FBTyxRQUFRO0FBQUEsSUFDeEUsQ0FBQztBQUFBO0FBQUEsRUFFSCxRQUFRLENBQUMsYUFBcUI7QUFBQSxJQUM1QixPQUFPLG1CQUFtQjtBQUFBLE1BQ3hCLFdBQVcsRUFBRSxNQUFNLG1CQUFtQjtBQUFBLE1BQ3RDLFFBQVEsRUFBRSw0QkFBNEIsbUJBQW1CLE9BQU8sWUFBWTtBQUFBLElBQzlFLENBQUM7QUFBQTtBQUFBLEVBRUgsUUFBUSxDQUFDLGlCQUF5QjtBQUFBLElBQ2hDLE9BQU8sbUJBQW1CO0FBQUEsTUFDeEI7QUFBQSxNQUNBLFFBQVEsRUFBRSw0QkFBNEIsd0JBQXdCO0FBQUEsSUFDaEUsQ0FBQztBQUFBO0FBQUEsRUFFSCxlQUFlLENBQUMsaUJBQXlCO0FBQUEsSUFDdkMsT0FBTyxtQkFBbUI7QUFBQSxNQUN4QjtBQUFBLE1BQ0EsUUFBUSxFQUFFLDRCQUE0Qix1QkFBdUI7QUFBQSxJQUMvRCxDQUFDO0FBQUE7QUFBQSxFQUVILFVBQVUsQ0FBQyxpQkFBeUI7QUFBQSxJQUNsQyxPQUFPLG1CQUFtQjtBQUFBLE1BQ3hCO0FBQUEsTUFDQSxRQUFRLEVBQUUsNEJBQTRCLG9CQUFvQjtBQUFBLElBQzVELENBQUM7QUFBQTtBQUFBLEVBRUgsaUJBQWlCLENBQUMsaUJBQXlCO0FBQUEsSUFDekMsT0FBTyxtQkFBbUI7QUFBQSxNQUN4QjtBQUFBLE1BQ0EsUUFBUSxFQUFFLDRCQUE0QiwyQkFBMkI7QUFBQSxJQUNuRSxDQUFDO0FBQUE7QUFBQSxFQUVILFVBQVUsQ0FBQyxpQkFBeUIsV0FBb0I7QUFBQSxJQUN0RCxPQUFPLG1CQUFtQjtBQUFBLE1BQ3hCO0FBQUEsTUFDQSxXQUFXLFlBQVksRUFBRSxNQUFNLFlBQVksSUFBSTtBQUFBLE1BQy9DLFFBQVEsRUFBRSw0QkFBNEIsb0JBQW9CO0FBQUEsSUFDNUQsQ0FBQztBQUFBO0FBQUEsRUFFSCxnQkFBZ0IsR0FBRztBQUFBLElBQ2pCLE9BQU8sbUJBQW1CO0FBQUEsTUFDeEIsV0FBVyxFQUFFLE1BQU0sZUFBZTtBQUFBLE1BQ2xDLFFBQVEsRUFBRSw0QkFBNEIsaUJBQWlCO0FBQUEsSUFDekQsQ0FBQztBQUFBO0FBQUEsRUFFSCxrQkFBa0IsR0FBRztBQUFBLElBQ25CLE9BQU8sbUJBQW1CO0FBQUEsTUFDeEIsV0FBVztBQUFBLFFBQ1QsTUFBTTtBQUFBLE1BQ1I7QUFBQSxNQUNBLFFBQVEsRUFBRSw0QkFBNEIsaUJBQWlCO0FBQUEsSUFDekQsQ0FBQztBQUFBO0FBQUEsRUFFSCw4QkFBOEIsQ0FBQyxpQkFBeUI7QUFBQSxJQUN0RCxPQUFPLG1CQUFtQjtBQUFBLE1BQ3hCO0FBQUEsTUFDQSxRQUFRLEVBQUUsNEJBQTRCLDZCQUE2QjtBQUFBLElBQ3JFLENBQUM7QUFBQTtBQUFBLEVBRUgsdUNBQXVDLEdBQUc7QUFBQSxJQUN4QyxPQUFPLG1CQUFtQjtBQUFBLE1BQ3hCLFdBQVcsRUFBRSxNQUFNLDJCQUEyQjtBQUFBLE1BQzlDLFFBQVEsRUFBRSw0QkFBNEIsaUJBQWlCO0FBQUEsSUFDekQsQ0FBQztBQUFBO0FBQUEsRUFFSCx3Q0FBd0MsQ0FBQyxpQkFBeUI7QUFBQSxJQUNoRSxPQUFPLG1CQUFtQjtBQUFBLE1BQ3hCO0FBQUEsTUFDQSxXQUFXLEVBQUUsTUFBTSwyQkFBMkI7QUFBQSxNQUM5QyxRQUFRLEVBQUUsNEJBQTRCLG9CQUFvQjtBQUFBLElBQzVELENBQUM7QUFBQTtBQUFBLEVBRUgsNEJBQTRCLENBQUMsaUJBQXlCO0FBQUEsSUFDcEQsT0FBTyxtQkFBbUI7QUFBQSxNQUN4QjtBQUFBLE1BQ0EsUUFBUSxFQUFFLDRCQUE0QiwyQkFBMkI7QUFBQSxJQUNuRSxDQUFDO0FBQUE7QUFBQSxFQUVILHNCQUFzQixDQUFDLGlCQUF5QjtBQUFBLElBQzlDLE9BQU8sbUJBQW1CO0FBQUEsTUFDeEI7QUFBQSxNQUNBLFFBQVEsRUFBRSw0QkFBNEIscUNBQXFDO0FBQUEsSUFDN0UsQ0FBQztBQUFBO0FBQUEsRUFFSCwrQ0FBK0MsQ0FBQyxpQkFBeUI7QUFBQSxJQUN2RSxPQUFPLG1CQUFtQjtBQUFBLE1BQ3hCO0FBQUEsTUFDQSxXQUFXLEVBQUUsTUFBTSxpQkFBaUI7QUFBQSxNQUNwQyxRQUFRLEVBQUUsNEJBQTRCLHNDQUFzQztBQUFBLElBQzlFLENBQUM7QUFBQTtBQUFBLEVBRUgsb0RBQW9ELENBQUMsaUJBQXlCO0FBQUEsSUFDNUUsT0FBTyxtQkFBbUI7QUFBQSxNQUN4QjtBQUFBLE1BQ0EsV0FBVyxFQUFFLE1BQU0sc0NBQXNDO0FBQUEsTUFDekQsUUFBUSxFQUFFLDRCQUE0QixzQ0FBc0M7QUFBQSxJQUM5RSxDQUFDO0FBQUE7QUFBQSxFQUVILGtDQUFrQyxDQUFDLGlCQUF5QjtBQUFBLElBQzFELE9BQU8sbUJBQW1CO0FBQUEsTUFDeEI7QUFBQSxNQUNBLFdBQVcsRUFBRSxNQUFNLG9CQUFvQjtBQUFBLE1BQ3ZDLFFBQVEsRUFBRSw0QkFBNEIsc0NBQXNDO0FBQUEsSUFDOUUsQ0FBQztBQUFBO0FBQUEsRUFHSCxzQkFBc0IsQ0FBQyxpQkFBeUI7QUFBQSxJQUM5QyxPQUFPLG1CQUFtQjtBQUFBLE1BQ3hCO0FBQUEsTUFDQSxRQUFRLEVBQUUsNEJBQTRCLDZCQUE2QjtBQUFBLElBQ3JFLENBQUM7QUFBQTtBQUFBLEVBRUgsaUNBQWlDLENBQUMsaUJBQXlCO0FBQUEsSUFDekQsT0FBTyxtQkFBbUI7QUFBQSxNQUN4QjtBQUFBLE1BQ0EsUUFBUSxFQUFFLDRCQUE0QixnREFBZ0Q7QUFBQSxJQUN4RixDQUFDO0FBQUE7QUFBQSxFQUVILHFCQUFxQixHQUFHO0FBQUEsSUFDdEIsT0FBTyxtQkFBbUI7QUFBQSxNQUN4QixXQUFXO0FBQUEsUUFDVCxNQUFNO0FBQUEsTUFDUjtBQUFBLE1BQ0EsUUFBUSxFQUFFLDRCQUE0Qiw0QkFBNEI7QUFBQSxJQUNwRSxDQUFDO0FBQUE7QUFBQSxFQUVILFdBQVcsQ0FBQyxpQkFBeUI7QUFBQSxJQUNuQyxPQUFPLG1CQUFtQjtBQUFBLE1BQ3hCO0FBQUEsTUFDQSxRQUFRLEVBQUUsNEJBQTRCLGlCQUFpQjtBQUFBLElBQ3pELENBQUM7QUFBQTtBQUFBLEVBRUgsa0JBQWtCLEdBQUc7QUFBQSxJQUNuQixPQUFPLG1CQUFtQjtBQUFBLE1BQ3hCLFdBQVcsRUFBRSxNQUFNLGVBQWU7QUFBQSxNQUNsQyxRQUFRLEVBQUUsNEJBQTRCLGlCQUFpQjtBQUFBLElBQ3pELENBQUM7QUFBQTtBQUFBLEVBU0gsdUNBQXVDLENBQUMsaUJBQXlCO0FBQUEsSUFDL0QsT0FBTyxtQkFBbUI7QUFBQSxNQUN4QjtBQUFBLE1BQ0EsV0FBVyxFQUFFLE1BQU0sdUJBQXVCO0FBQUEsTUFDMUMsUUFBUSxFQUFFLDRCQUE0QiwwQkFBMEI7QUFBQSxJQUNsRSxDQUFDLEVBQUUsV0FBVyxLQUFLLEVBQUU7QUFBQTtBQUFBLEVBRXZCLHdCQUF3QixDQUFDLGlCQUF5QjtBQUFBLElBQ2hELE9BQU8sbUJBQW1CO0FBQUEsTUFDeEI7QUFBQSxNQUNBLFFBQVEsRUFBRSw0QkFBNEIsMkJBQTJCO0FBQUEsSUFDbkUsQ0FBQztBQUFBO0FBQUEsRUFFSCx5QkFBeUIsQ0FBQyxpQkFBeUI7QUFBQSxJQUNqRCxPQUFPLG1CQUFtQjtBQUFBLE1BQ3hCO0FBQUEsTUFDQSxRQUFRLEVBQUUsNEJBQTRCLDRCQUE0QjtBQUFBLElBQ3BFLENBQUM7QUFBQTtBQUFBLEVBRUgsMEJBQTBCLENBQUMsaUJBQXlCO0FBQUEsSUFDbEQsT0FBTyxtQkFBbUI7QUFBQSxNQUN4QjtBQUFBLE1BQ0EsUUFBUSxFQUFFLDRCQUE0QixxQ0FBcUM7QUFBQSxJQUM3RSxDQUFDO0FBQUE7QUFBQSxFQUVILG9CQUFvQixDQUFDLGlCQUF5QjtBQUFBLElBQzVDLE9BQU8sbUJBQW1CO0FBQUEsTUFDeEI7QUFBQSxNQUNBLFFBQVEsRUFBRSw0QkFBNEIsMEJBQTBCO0FBQUEsSUFDbEUsQ0FBQztBQUFBO0FBQUEsRUFFSCw0QkFBNEIsQ0FBQyxpQkFBeUI7QUFBQSxJQUNwRCxPQUFPLG1CQUFtQjtBQUFBLE1BQ3hCO0FBQUEsTUFDQSxXQUFXLEVBQUUsTUFBTSxVQUFVO0FBQUEsTUFDN0IsUUFBUSxFQUFFLDRCQUE0Qix3QkFBd0I7QUFBQSxJQUNoRSxDQUFDO0FBQUE7QUFBQSxFQUVILDZCQUE2QixDQUFDLGlCQUF5QjtBQUFBLElBQ3JELE9BQU8sbUJBQW1CO0FBQUEsTUFDeEI7QUFBQSxNQUNBLFdBQVcsRUFBRSxNQUFNLFdBQVc7QUFBQSxNQUM5QixRQUFRLEVBQUUsNEJBQTRCLHdCQUF3QjtBQUFBLElBQ2hFLENBQUM7QUFBQTtBQUFBLEVBRUgsV0FBVyxDQUFDLGlCQUF5QjtBQUFBLElBQ25DLE9BQU8sbUJBQW1CO0FBQUEsTUFDeEI7QUFBQSxNQUNBLFFBQVEsRUFBRSw0QkFBNEIsaUJBQWlCO0FBQUEsSUFDekQsQ0FBQztBQUFBO0FBQUEsRUFFSCxlQUFlLENBQUMsaUJBQXlCLFNBQWlCO0FBQUEsSUFDeEQsT0FBTyxtQkFBbUI7QUFBQSxNQUN4QjtBQUFBLE1BQ0EsV0FBVyxFQUFFLE1BQU0sV0FBVyxPQUFPLEVBQUU7QUFBQSxNQUN2QyxRQUFRLEVBQUUsNEJBQTRCLHNCQUFzQjtBQUFBLElBQzlELENBQUM7QUFBQTtBQUFBLEVBRUgsNEJBQTRCLEdBQUc7QUFBQSxJQUM3QixPQUFPLG1CQUFtQjtBQUFBLE1BQ3hCLFdBQVcsRUFBRSxNQUFNLHlCQUF5QjtBQUFBLE1BQzVDLFFBQVEsRUFBRSw0QkFBNEIscUJBQXFCO0FBQUEsSUFDN0QsQ0FBQztBQUFBO0FBQUEsRUFFSCwwQkFBMEIsQ0FBQyxpQkFBeUIsNEJBQW9DO0FBQUEsSUFDdEYsT0FBTyxtQkFBbUI7QUFBQSxNQUN4QjtBQUFBLE1BQ0EsV0FBVyxFQUFFLE1BQU0sT0FBTyxzQ0FBc0M7QUFBQSxNQUNoRSxRQUFRLEVBQUUsNEJBQTRCLGlDQUFpQztBQUFBLElBQ3pFLENBQUM7QUFBQTtBQUFBLEVBRUgscUJBQXFCLENBQUMsaUJBQXlCO0FBQUEsSUFDN0MsT0FBTyxtQkFBbUI7QUFBQSxNQUN4QjtBQUFBLE1BQ0EsUUFBUSxFQUFFLDRCQUE0QiwwQkFBMEI7QUFBQSxJQUNsRSxDQUFDO0FBQUE7QUFBQSxFQUVILHlCQUF5QixDQUFDLGlCQUF5QjtBQUFBLElBQ2pELE9BQU8sbUJBQW1CO0FBQUEsTUFDeEI7QUFBQSxNQUNBLFdBQVcsRUFBRSxNQUFNLEtBQUs7QUFBQSxNQUN4QixRQUFRLEVBQUUsNEJBQTRCLDBCQUEwQjtBQUFBLElBQ2xFLENBQUM7QUFBQTtBQUFBLEVBRUgsV0FBVztBQUFBLElBQ1Q7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxLQU1DO0FBQUEsSUFDRCxPQUFPLG1CQUFtQjtBQUFBLE1BQ3hCO0FBQUEsTUFDQSxXQUFXO0FBQUEsUUFDVCxNQUFNLEdBQUcsbUJBQW1CLHNCQUFzQixTQUFTLHdCQUF3QixLQUFLLFlBQVksT0FBTztBQUFBLE1BQzdHO0FBQUEsTUFDQSxRQUFRLEVBQUUsNEJBQTRCLDJDQUEyQztBQUFBLElBQ25GLENBQUM7QUFBQTtBQUFBLEVBRUgsVUFBVSxDQUFDLGlCQUF5QjtBQUFBLElBQ2xDLE9BQU8sbUJBQW1CO0FBQUEsTUFDeEI7QUFBQSxNQUNBLFFBQVEsRUFBRSw0QkFBNEIsaUJBQWlCO0FBQUEsSUFDekQsQ0FBQztBQUFBO0FBQUEsRUFFSCx5QkFBeUIsR0FBRztBQUFBLElBQzFCLE9BQU8sbUJBQW1CO0FBQUEsTUFDeEIsV0FBVyxFQUFFLE1BQU0sU0FBUztBQUFBLE1BQzVCLFFBQVEsRUFBRSw0QkFBNEIsaUJBQWlCO0FBQUEsSUFDekQsQ0FBQztBQUFBO0FBQUEsRUFFSCxnQkFBZ0IsQ0FBQyxpQkFBeUIsWUFBb0I7QUFBQSxJQUM1RCxPQUFPLG1CQUFtQjtBQUFBLE1BQ3hCO0FBQUEsTUFDQSxXQUFXLEVBQUUsTUFBTSxTQUFTLFdBQVcsV0FBVztBQUFBLE1BQ2xELFFBQVEsRUFBRSw0QkFBNEIsMEJBQTBCO0FBQUEsSUFDbEUsQ0FBQztBQUFBO0FBQUEsRUFFSCx5QkFBeUIsQ0FBQyxpQkFBeUI7QUFBQSxJQUNqRCxPQUFPLG1CQUFtQjtBQUFBLE1BQ3hCO0FBQUEsTUFDQSxXQUFXLEVBQUUsTUFBTSxZQUFZO0FBQUEsTUFDL0IsUUFBUSxFQUFFLDRCQUE0QiwwQkFBMEI7QUFBQSxJQUNsRSxDQUFDO0FBQUE7QUFBQSxFQUVILHdCQUF3QixDQUFDLGNBQXNCLFlBQW9CO0FBQUEsSUFDakUsT0FBTyxXQUFXLEdBQUcscUJBQXFCLHNDQUFzQztBQUFBO0FBQUEsRUFFbEYsMkJBQTJCLENBQUMsaUJBQXlCLGtCQUEwQjtBQUFBLElBQzdFLE9BQU8sbUJBQW1CO0FBQUEsTUFDeEI7QUFBQSxNQUNBLFdBQVcsRUFBRSxNQUFNLEdBQUcsOEJBQThCO0FBQUEsTUFDcEQsUUFBUSxFQUFFLDRCQUE0QiwwQkFBMEI7QUFBQSxJQUNsRSxDQUFDO0FBQUE7QUFBQSxFQUVILE9BQU8sQ0FBQyxpQkFBeUI7QUFBQSxJQUMvQixPQUFPLG1CQUFtQjtBQUFBLE1BQ3hCO0FBQUEsTUFDQSxRQUFRLEVBQUUsNEJBQTRCLHlCQUF5QjtBQUFBLElBQ2pFLENBQUM7QUFBQTtBQUFBLEVBRUgsZUFBZSxDQUFDLGlCQUF5QjtBQUFBLElBQ3ZDLE9BQU8sbUJBQW1CO0FBQUEsTUFDeEI7QUFBQSxNQUNBLFFBQVEsRUFBRSw0QkFBNEIsc0JBQXNCO0FBQUEsSUFDOUQsQ0FBQztBQUFBO0FBQUEsRUFFSCx3QkFBd0I7QUFBQSxJQUN0QjtBQUFBLElBQ0E7QUFBQSxLQUlDO0FBQUEsSUFDRCxPQUFPLG1CQUFtQjtBQUFBLE1BQ3hCO0FBQUEsTUFDQSxXQUFXLEVBQUUsTUFBTSxzQkFBc0I7QUFBQSxNQUN6QyxRQUFRLEVBQUUsNEJBQTRCLGlDQUFpQztBQUFBLElBQ3pFLENBQUM7QUFBQTtBQUFBLEVBRUgsbUNBQW1DO0FBQUEsSUFDakM7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLEtBS0M7QUFBQSxJQUNELE9BQU8sbUJBQW1CO0FBQUEsTUFDeEI7QUFBQSxNQUNBLFdBQVcsRUFBRSxNQUFNLEdBQUcsOEJBQThCLHNCQUFzQjtBQUFBLE1BQzFFLFFBQVEsRUFBRSw0QkFBNEIsaUNBQWlDO0FBQUEsSUFDekUsQ0FBQztBQUFBO0FBQUEsRUFFSCxpQkFBaUIsR0FBRyxRQUFRLE1BQU0sbUJBQWtGO0FBQUEsSUFDbEgsT0FBTyxtQkFBbUI7QUFBQSxNQUN4QixpQkFBaUI7QUFBQSxNQUNqQixXQUFXO0FBQUEsUUFDVCxNQUFNLEdBQUcsbUJBQW1CLFdBQVcsTUFBTSxRQUFRLFVBQVUsU0FBUyxNQUFNLFlBQVk7QUFBQSxNQUM1RjtBQUFBLE1BQ0EsUUFBUSxFQUFFLDRCQUE0QixnQ0FBZ0M7QUFBQSxJQUN4RSxDQUFDO0FBQUE7QUFBQSxFQUVILFlBQVksR0FBRyxRQUFRLE1BQU0sbUJBQWtGO0FBQUEsSUFDN0csT0FBTyxtQkFBbUI7QUFBQSxNQUN4QixpQkFBaUI7QUFBQSxNQUNqQixXQUFXO0FBQUEsUUFDVCxNQUFNLEdBQUcsbUJBQW1CLFdBQVcsTUFBTSxRQUFRLFVBQVUsU0FBUyxNQUFNLFlBQVk7QUFBQSxNQUM1RjtBQUFBLE1BQ0EsUUFBUSxFQUFFLDRCQUE0QiwyQkFBMkI7QUFBQSxJQUNuRSxDQUFDO0FBQUE7QUFBQSxFQUVILGNBQWMsQ0FBQyxpQkFBeUI7QUFBQSxJQUN0QyxPQUFPLG1CQUFtQjtBQUFBLE1BQ3hCO0FBQUEsTUFDQSxRQUFRLEVBQUUsNEJBQTRCLDZCQUE2QjtBQUFBLElBQ3JFLENBQUM7QUFBQTtBQUFBLEVBRUgsMkJBQTJCLENBQUMsaUJBQXlCO0FBQUEsSUFDbkQsT0FBTyxtQkFBbUI7QUFBQSxNQUN4QjtBQUFBLE1BQ0EsV0FBVyxFQUFFLE1BQU0sVUFBVTtBQUFBLE1BQzdCLFFBQVEsRUFBRSw0QkFBNEIsMEJBQTBCO0FBQUEsSUFDbEUsQ0FBQztBQUFBO0FBQUEsRUFFSCx1QkFBdUI7QUFBQSxJQUNyQjtBQUFBLElBQ0E7QUFBQSxLQUlDO0FBQUEsSUFDRCxPQUFPLG1CQUFtQjtBQUFBLE1BQ3hCLGlCQUFpQjtBQUFBLE1BQ2pCLFdBQVcsRUFBRSxNQUFNLGdDQUFnQztBQUFBLE1BQ25ELFFBQVEsRUFBRSw0QkFBNEIsMEJBQTBCO0FBQUEsSUFDbEUsQ0FBQztBQUFBO0FBQUEsRUFFSCxZQUFZLENBQUMsaUJBQXlCO0FBQUEsSUFDcEMsT0FBTyxtQkFBbUI7QUFBQSxNQUN4QjtBQUFBLE1BQ0EsUUFBUSxFQUFFLDRCQUE0QiwyQkFBMkI7QUFBQSxJQUNuRSxDQUFDO0FBQUE7QUFBQSxFQUVILGFBQWEsQ0FBQywwQkFBa0M7QUFBQSxJQUc5QyxPQUFPLG1CQUFtQjtBQUFBLE1BQ3hCLGlCQUFpQjtBQUFBLE1BQ2pCLFdBQVcsRUFBRSxNQUFNLDhCQUE4Qix3QkFBd0IsRUFBRTtBQUFBLE1BQzNFLFFBQVEsRUFBRSw0QkFBNEIsZ0NBQWdDO0FBQUEsSUFDeEUsQ0FBQztBQUFBO0FBQUEsRUFFSCxvQkFBb0IsQ0FBQyxpQkFBeUI7QUFBQSxJQUM1QyxPQUFPLG1CQUFtQjtBQUFBLE1BQ3hCO0FBQUEsTUFDQSxRQUFRLEVBQUUsNEJBQTRCLGdDQUFnQztBQUFBLElBQ3hFLENBQUM7QUFBQTtBQUFBLEVBRUgsb0JBQW9CLENBQUMsMEJBQWtDO0FBQUEsSUFHckQsT0FBTyxtQkFBbUI7QUFBQSxNQUN4QixpQkFBaUI7QUFBQSxNQUNqQixXQUFXLEVBQUUsTUFBTSw4QkFBOEIsd0JBQXdCLEVBQUU7QUFBQSxNQUMzRSxRQUFRLEVBQUUsNEJBQTRCLGdDQUFnQztBQUFBLElBQ3hFLENBQUM7QUFBQTtBQUFBLEVBRUgsMkJBQTJCLENBQUMsaUJBQXlCO0FBQUEsSUFDbkQsT0FBTyxtQkFBbUI7QUFBQSxNQUN4QjtBQUFBLE1BQ0EsUUFBUSxFQUFFLDRCQUE0QixnQ0FBZ0M7QUFBQSxJQUN4RSxDQUFDO0FBQUE7QUFBQSxFQUVILFFBQVEsQ0FBQyxjQUFzQixpQkFBeUI7QUFBQSxJQUN0RCxPQUFPLG1CQUFtQjtBQUFBLE1BQ3hCO0FBQUEsTUFDQSxXQUFXLEVBQUUsTUFBTSxPQUFPLGVBQWU7QUFBQSxNQUN6QyxRQUFRLEVBQUUsNEJBQTRCLHdDQUF3QztBQUFBLElBQ2hGLENBQUM7QUFBQTtBQUFBLEVBRUgsWUFBWSxDQUFDLGNBQXNCLGlCQUF5QixjQUFzQjtBQUFBLElBQ2hGLE9BQU8sbUJBQW1CO0FBQUEsTUFDeEI7QUFBQSxNQUNBLFdBQVcsRUFBRSxNQUFNLE9BQU8sdUJBQXVCLGVBQWU7QUFBQSxNQUNoRSxRQUFRLEVBQUUsNEJBQTRCLDRDQUE0QztBQUFBLElBQ3BGLENBQUM7QUFBQTtBQUFBLEVBRUgsdUJBQXVCLENBQUMsY0FBc0IsaUJBQXlCO0FBQUEsSUFDckUsT0FBTyxtQkFBbUI7QUFBQSxNQUN4QjtBQUFBLE1BQ0EsV0FBVyxFQUFFLE1BQU0sT0FBTyxlQUFlO0FBQUEsTUFDekMsUUFBUSxFQUFFLDRCQUE0QixtREFBbUQ7QUFBQSxJQUMzRixDQUFDO0FBQUE7QUFBQSxFQUVILFlBQVksQ0FBQyxpQkFBeUI7QUFBQSxJQUNwQyxPQUFPLG1CQUFtQjtBQUFBLE1BQ3hCO0FBQUEsTUFDQSxRQUFRLEVBQUUsNEJBQTRCLDRDQUE0QztBQUFBLElBQ3BGLENBQUM7QUFBQTtBQUFBLEVBRUgsV0FBVyxDQUFDLGlCQUF5QixlQUF1QjtBQUFBLElBQzFELE9BQU8sbUJBQW1CO0FBQUEsTUFDeEI7QUFBQSxNQUNBLFdBQVcsRUFBRSxNQUFNLGNBQWM7QUFBQSxNQUNqQyxRQUFRLEVBQUUsNEJBQTRCLHNCQUFzQjtBQUFBLElBQzlELENBQUM7QUFBQTtBQUFBLEVBRUgsaUJBQWlCLENBQUMsaUJBQXlCO0FBQUEsSUFDekMsT0FBTyxtQkFBbUI7QUFBQSxNQUN4QjtBQUFBLE1BQ0EsUUFBUSxFQUFFLDRCQUE0Qiw4Q0FBOEM7QUFBQSxJQUN0RixDQUFDO0FBQUE7QUFBQSxFQUVILHVCQUF1QixDQUFDLGlCQUF5QixRQUFnQjtBQUFBLElBQy9ELE9BQU8sbUJBQW1CO0FBQUEsTUFDeEI7QUFBQSxNQUNBLFdBQVcsRUFBRSxNQUFNLE9BQU87QUFBQSxNQUMxQixRQUFRLEVBQUUsNEJBQTRCLDhDQUE4QztBQUFBLElBQ3RGLENBQUM7QUFBQTtBQUFBLEVBRUgsaUJBQWlCLENBQUMsaUJBQXlCLFFBQWdCO0FBQUEsSUFDekQsT0FBTyxtQkFBbUI7QUFBQSxNQUN4QjtBQUFBLE1BQ0EsV0FBVyxFQUFFLE1BQU0sT0FBTztBQUFBLE1BQzFCLFFBQVEsRUFBRSw0QkFBNEIsNkNBQTZDO0FBQUEsSUFDckYsQ0FBQztBQUFBO0FBQUEsRUFFSCxzQkFBc0IsR0FBRztBQUFBLElBQ3ZCLE9BQU8sbUJBQW1CO0FBQUEsTUFDeEIsV0FBVyxFQUFFLE1BQU0sU0FBUztBQUFBLE1BQzVCLFFBQVEsRUFBRSw0QkFBNEIsc0NBQXNDO0FBQUEsSUFDOUUsQ0FBQztBQUFBO0FBQUEsRUFTSCwyQkFBMkIsR0FBRztBQUFBLElBQzVCLE9BQU8sbUJBQW1CO0FBQUEsTUFDeEIsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCO0FBQUEsTUFDbkMsUUFBUSxFQUFFLDRCQUE0QixzQ0FBc0M7QUFBQSxJQUM5RSxDQUFDO0FBQUE7QUFBQSxFQUVILCtCQUErQixHQUFHO0FBQUEsSUFDaEMsT0FBTyxtQkFBbUI7QUFBQSxNQUN4QixXQUFXLEVBQUUsTUFBTSxvQkFBb0I7QUFBQSxNQUN2QyxRQUFRLEVBQUUsNEJBQTRCLHNDQUFzQztBQUFBLElBQzlFLENBQUM7QUFBQTtBQUFBLEVBRUgsK0JBQStCLEdBQUc7QUFBQSxJQUNoQyxPQUFPLG1CQUFtQjtBQUFBLE1BQ3hCLFdBQVcsRUFBRSxNQUFNLG9CQUFvQjtBQUFBLE1BQ3ZDLFFBQVEsRUFBRSw0QkFBNEIsc0NBQXNDO0FBQUEsSUFDOUUsQ0FBQztBQUFBO0FBQUEsRUFFSCw4QkFBOEIsR0FBRztBQUFBLElBQy9CLE9BQU8sbUJBQW1CO0FBQUEsTUFDeEIsV0FBVyxFQUFFLE1BQU0sbUJBQW1CO0FBQUEsTUFDdEMsUUFBUSxFQUFFLDRCQUE0QixzQ0FBc0M7QUFBQSxJQUM5RSxDQUFDO0FBQUE7QUFBQSxFQUVILHdCQUF3QixDQUFDLGlCQUF5QjtBQUFBLElBQ2hELE9BQU8sbUJBQW1CO0FBQUEsTUFDeEI7QUFBQSxNQUNBLFdBQVcsRUFBRSxNQUFNLGFBQWE7QUFBQSxNQUNoQyxRQUFRLEVBQUUsNEJBQTRCLHNDQUFzQztBQUFBLElBQzlFLENBQUM7QUFBQTtBQUFBLEVBRUgsMkJBQTJCLENBQUMsaUJBQXlCLEtBQWU7QUFBQSxJQUNsRSxPQUFPLG1CQUFtQjtBQUFBLE1BQ3hCO0FBQUEsTUFDQSxXQUFXLEVBQUUsTUFBTSxHQUFHLE1BQU0sUUFBUSxrQkFBa0I7QUFBQSxNQUN0RCxRQUFRLEVBQUUsNEJBQTRCLHNDQUFzQztBQUFBLElBQzlFLENBQUM7QUFBQTtBQUFBLEVBRUgsd0NBQXdDLENBQUMsaUJBQXlCO0FBQUEsSUFDaEUsT0FBTyxtQkFBbUI7QUFBQSxNQUN4QjtBQUFBLE1BQ0EsV0FBVyxFQUFFLE1BQU0scUJBQXFCO0FBQUEsTUFDeEMsUUFBUSxFQUFFLDRCQUE0QixzQ0FBc0M7QUFBQSxJQUM5RSxDQUFDO0FBQUE7QUFBQSxFQUVILFFBQVEsQ0FBQyxpQkFBeUI7QUFBQSxJQUNoQyxPQUFPLG1CQUFtQjtBQUFBLE1BQ3hCO0FBQUEsTUFDQSxRQUFRLEVBQUUsNEJBQTRCLHlCQUF5QjtBQUFBLElBQ2pFLENBQUM7QUFBQTtBQUFBLEVBRUgsY0FBYyxDQUFDLGlCQUF5QjtBQUFBLElBQ3RDLE9BQU8sbUJBQW1CO0FBQUEsTUFDeEI7QUFBQSxNQUNBLFFBQVEsRUFBRSw0QkFBNEIsK0JBQStCO0FBQUEsSUFDdkUsQ0FBQztBQUFBO0FBQUEsRUFFSCxjQUFjLENBQUMsaUJBQXlCO0FBQUEsSUFDdEMsT0FBTyxtQkFBbUI7QUFBQSxNQUN4QjtBQUFBLE1BQ0EsUUFBUSxFQUFFLDRCQUE0QiwrQkFBK0I7QUFBQSxJQUN2RSxDQUFDO0FBQUE7QUFBQSxFQUVILGdCQUFnQixDQUFDLGlCQUF5QixNQUE0RDtBQUFBLElBQ3BHLE9BQU8sbUJBQW1CO0FBQUEsTUFDeEI7QUFBQSxNQUNBLFdBQVcsRUFBRSxLQUFLO0FBQUEsTUFDbEIsUUFBUSxFQUFFLDRCQUE0Qix5Q0FBeUM7QUFBQSxJQUNqRixDQUFDO0FBQUE7QUFBQSxFQUVILDJCQUEyQixDQUFDLGlCQUF5QixVQUFrQjtBQUFBLElBQ3JFLE9BQU8sbUJBQW1CO0FBQUEsTUFDeEI7QUFBQSxNQUNBLFdBQVcsRUFBRSxNQUFNLFNBQVM7QUFBQSxNQUM1QixRQUFRLEVBQUUsNEJBQTRCLDBCQUEwQjtBQUFBLElBQ2xFLENBQUM7QUFBQTtBQUFBLEVBRUgsb0NBQW9DLENBQUMsaUJBQXlCO0FBQUEsSUFDNUQsT0FBTyxtQkFBbUI7QUFBQSxNQUN4QjtBQUFBLE1BQ0EsV0FBVyxFQUFFLE1BQU0sa0JBQWtCO0FBQUEsTUFDckMsUUFBUSxFQUFFLDRCQUE0QixzQ0FBc0M7QUFBQSxJQUM5RSxDQUFDO0FBQUE7QUFBQSxFQUVILGlDQUFpQyxDQUFDLGlCQUF5QjtBQUFBLElBQ3pELE9BQU8sbUJBQW1CO0FBQUEsTUFDeEI7QUFBQSxNQUNBLFFBQVEsRUFBRSw0QkFBNEIsa0RBQWtEO0FBQUEsSUFDMUYsQ0FBQztBQUFBO0FBQUEsRUFFSCxnQ0FBZ0MsR0FBRztBQUFBLElBQ2pDLE9BQU8sbUJBQW1CO0FBQUEsTUFDeEIsV0FBVyxFQUFFLE1BQU0sWUFBWTtBQUFBLE1BQy9CLFFBQVEsRUFBRSw0QkFBNEIsaUNBQWlDO0FBQUEsSUFDekUsQ0FBQztBQUFBO0FBQUEsRUFFSCxtQkFBbUIsR0FBRztBQUFBLElBQ3BCLE9BQU8sbUJBQW1CO0FBQUEsTUFDeEIsV0FBVyxFQUFFLE1BQU0sbUJBQW1CO0FBQUEsTUFDdEMsUUFBUSxFQUFFLDRCQUE0QiwrQkFBK0I7QUFBQSxJQUN2RSxDQUFDO0FBQUE7QUFBQSxFQUVILGdCQUFnQixDQUFDLGFBQXFCO0FBQUEsSUFDcEMsT0FBTyxtQkFBbUI7QUFBQSxNQUN4QixXQUFXLEVBQUUsTUFBTSxtQkFBbUIsY0FBYztBQUFBLE1BQ3BELFFBQVEsRUFBRSw0QkFBNEIsNEJBQTRCO0FBQUEsSUFDcEUsQ0FBQztBQUFBO0FBQUEsRUFFSCxnQkFBZ0IsR0FBRztBQUFBLElBQ2pCLE9BQU8sbUJBQW1CO0FBQUEsTUFDeEIsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCO0FBQUEsTUFDbkMsUUFBUSxFQUFFLDRCQUE0QiwrQkFBK0I7QUFBQSxJQUN2RSxDQUFDO0FBQUE7QUFBQSxFQUVILFdBQVcsQ0FBQyxXQUFtQjtBQUFBLElBQzdCLE9BQU8sbUJBQW1CO0FBQUEsTUFDeEIsV0FBVyxFQUFFLE1BQU0sV0FBVyxTQUFTLEVBQUUsV0FBVyxLQUFLLEVBQUUsRUFBRTtBQUFBLE1BQzdELFFBQVEsRUFBRSw0QkFBNEIsdUJBQXVCO0FBQUEsSUFDL0QsQ0FBQztBQUFBO0FBQUEsRUFFSCxvQkFBb0IsQ0FBQyxpQkFBeUI7QUFBQSxJQUM1QyxPQUFPLG1CQUFtQjtBQUFBLE1BQ3hCO0FBQUEsTUFDQSxRQUFRLEVBQUUsNEJBQTRCLGlDQUFpQztBQUFBLElBQ3pFLENBQUM7QUFBQTtBQUFBLEVBRUgsMEJBQTBCLEdBQUc7QUFBQSxJQUMzQixPQUFPLG1CQUFtQjtBQUFBLE1BQ3hCLFdBQVcsRUFBRSxNQUFNLDZCQUE2QjtBQUFBLE1BQ2hELFFBQVEsRUFBRSw0QkFBNEIsc0NBQXNDO0FBQUEsSUFDOUUsQ0FBQztBQUFBO0FBQUEsRUFFSCxlQUFlLENBQUMsb0JBQTRCO0FBQUEsSUFDMUMsT0FBTyxtQkFBbUI7QUFBQSxNQUN4QixpQkFBaUI7QUFBQSxNQUNqQixRQUFRLEVBQUUsNEJBQTRCLHlCQUF5QjtBQUFBLElBQ2pFLENBQUMsRUFBRSxXQUFXLEtBQUssRUFBRTtBQUFBO0FBQUEsRUFFdkIsdUNBQXVDLENBQUMsb0JBQTRCO0FBQUEsSUFDbEUsT0FBTyxtQkFBbUI7QUFBQSxNQUN4QixpQkFBaUI7QUFBQSxNQUNqQixXQUFXLEVBQUUsTUFBTSxlQUFlO0FBQUEsTUFDbEMsUUFBUSxFQUFFLDRCQUE0QixvQkFBb0I7QUFBQSxJQUM1RCxDQUFDLEVBQUUsV0FBVyxLQUFLLEVBQUU7QUFBQTtBQUFBLEVBRXZCLHVEQUF1RCxDQUFDLG9CQUE0QjtBQUFBLElBQ2xGLE9BQU8sbUJBQW1CO0FBQUEsTUFDeEIsaUJBQWlCO0FBQUEsTUFDakIsV0FBVyxFQUFFLE1BQU0sZUFBZTtBQUFBLE1BQ2xDLFFBQVEsRUFBRSw0QkFBNEIsMEJBQTBCO0FBQUEsSUFDbEUsQ0FBQyxFQUFFLFdBQVcsS0FBSyxFQUFFO0FBQUE7QUFBQSxFQUV2QixRQUFRLENBQUMsaUJBQXlCO0FBQUEsSUFDaEMsT0FBTyxtQkFBbUI7QUFBQSxNQUN4QjtBQUFBLE1BQ0EsUUFBUSxFQUFFLDRCQUE0QixrQkFBa0I7QUFBQSxJQUMxRCxDQUFDLEVBQUUsV0FBVyxLQUFLLEVBQUU7QUFBQTtBQUFBLEVBRXZCLGNBQWMsQ0FBQyxpQkFBeUI7QUFBQSxJQUN0QyxPQUFPLG1CQUFtQjtBQUFBLE1BQ3hCO0FBQUEsTUFDQSxRQUFRLEVBQUUsNEJBQTRCLHdCQUF3QjtBQUFBLElBQ2hFLENBQUM7QUFBQTtBQUFBLEVBRUgsUUFBUSxDQUFDLGlCQUF5QjtBQUFBLElBQ2hDLE9BQU8sbUJBQW1CO0FBQUEsTUFDeEI7QUFBQSxNQUNBLFFBQVEsRUFBRSw0QkFBNEIsa0JBQWtCO0FBQUEsSUFDMUQsQ0FBQyxFQUFFLFdBQVcsS0FBSyxFQUFFO0FBQUE7QUFBQSxFQUV2QixhQUFhLENBQUMsaUJBQXlCO0FBQUEsSUFDckMsT0FBTyxtQkFBbUI7QUFBQSxNQUN4QjtBQUFBLE1BQ0EsUUFBUSxFQUFFLDRCQUE0Qix1QkFBdUI7QUFBQSxJQUMvRCxDQUFDO0FBQUE7QUFBQSxFQUVILDRCQUE0QixDQUFDLGlCQUF5QjtBQUFBLElBQ3BELE9BQU8sbUJBQW1CO0FBQUEsTUFDeEI7QUFBQSxNQUNBLFdBQVcsRUFBRSxNQUFNLGlCQUFpQjtBQUFBLE1BQ3BDLFFBQVEsRUFBRSw0QkFBNEIsc0NBQXNDO0FBQUEsSUFDOUUsQ0FBQztBQUFBO0FBQUEsRUFFSCx5QkFBeUIsQ0FBQyxpQkFBeUI7QUFBQSxJQUNqRCxPQUFPLG1CQUFtQjtBQUFBLE1BQ3hCO0FBQUEsTUFDQSxRQUFRLEVBQUUsNEJBQTRCLGdDQUFnQztBQUFBLElBQ3hFLENBQUM7QUFBQTtBQUFBLEVBRUgsZ0JBQWdCLENBQUMsaUJBQXlCO0FBQUEsSUFDeEMsT0FBTyxtQkFBbUI7QUFBQSxNQUN4QjtBQUFBLE1BQ0EsUUFBUSxFQUFFLDRCQUE0QixpQ0FBaUM7QUFBQSxJQUN6RSxDQUFDO0FBQUE7QUFBQSxFQUVILHdCQUF3QixDQUFDLGlCQUF5QjtBQUFBLElBQ2hELE9BQU8sbUJBQW1CO0FBQUEsTUFDeEI7QUFBQSxNQUNBLFdBQVcsRUFBRSxNQUFNLGFBQWE7QUFBQSxNQUNoQyxRQUFRLEVBQUUsNEJBQTRCLHNDQUFzQztBQUFBLElBQzlFLENBQUM7QUFBQTtBQUFBLEVBRUgsdUJBQXVCLENBQUMsaUJBQXlCO0FBQUEsSUFDL0MsT0FBTyxtQkFBbUI7QUFBQSxNQUN4QjtBQUFBLE1BQ0EsUUFBUSxFQUFFLDRCQUE0QiwwQkFBMEI7QUFBQSxJQUNsRSxDQUFDO0FBQUE7QUFBQSxFQUVILDZCQUE2QixDQUFDLGlCQUF5QjtBQUFBLElBQ3JELE9BQU8sbUJBQW1CO0FBQUEsTUFDeEI7QUFBQSxNQUNBLFdBQVcsRUFBRSxNQUFNLGtCQUFrQjtBQUFBLE1BQ3JDLFFBQVEsRUFBRSw0QkFBNEIsaUJBQWlCO0FBQUEsSUFDekQsQ0FBQztBQUFBO0FBQUEsRUFFSCw2QkFBNkIsR0FBRyx5QkFBNEQ7QUFBQSxJQUMxRixPQUFPLG1CQUFtQjtBQUFBLE1BQ3hCLGlCQUFpQjtBQUFBLE1BQ2pCLFdBQVcsRUFBRSxNQUFNLGVBQWU7QUFBQSxNQUNsQyxRQUFRLEVBQUUsNEJBQTRCLGlCQUFpQjtBQUFBLElBQ3pELENBQUM7QUFBQTtBQUFBLEVBRUgsK0JBQStCLENBQUMsaUJBQXlCO0FBQUEsSUFDdkQsT0FBTyxtQkFBbUI7QUFBQSxNQUN4QjtBQUFBLE1BQ0EsV0FBVyxFQUFFLE1BQU0sNkJBQTZCO0FBQUEsTUFDaEQsUUFBUSxFQUFFLDRCQUE0QixrQkFBa0I7QUFBQSxJQUMxRCxDQUFDO0FBQUE7QUFBQSxFQUVILG1DQUFtQyxHQUFHLHlCQUE0RDtBQUFBLElBQ2hHLE9BQU8sbUJBQW1CO0FBQUEsTUFDeEIsaUJBQWlCO0FBQUEsTUFDakIsUUFBUSxFQUFFLDRCQUE0Qix1Q0FBdUM7QUFBQSxJQUMvRSxDQUFDO0FBQUE7QUFBQSxFQUVILCtCQUErQixHQUFHLHlCQUE0RDtBQUFBLElBQzVGLE9BQU8sbUJBQW1CO0FBQUEsTUFDeEIsaUJBQWlCO0FBQUEsTUFDakIsUUFBUSxFQUFFLDRCQUE0QixnQ0FBZ0M7QUFBQSxJQUN4RSxDQUFDO0FBQUE7QUFFTDtBQUVBLElBQU0scUJBQXFCO0FBQUEsRUFDekI7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLE1BUUk7QUFBQSxFQUNKLE1BQU0sZUFBZSxPQUFPLDJCQUEyQixNQUFNLEdBQUc7QUFBQSxFQUNoRSxNQUFNLHFCQUFxQixtQkFBbUI7QUFBQSxFQUM5QyxNQUFNLG9CQUFvQixZQUN0QixHQUFHLFVBQVUsT0FBTyxVQUFVLGNBQWMsWUFBWSxVQUFVLFlBQVksS0FDNUUsVUFBVSxZQUFZLFlBQVksSUFBSSxVQUFVLFlBQVksT0FFOUQ7QUFBQSxFQUNKLE1BQU0saUJBQWlCLEdBQUcsYUFBYSxhQUFhLFNBQVMsS0FBSyxPQUFPLFVBQVUsWUFBWSxPQUFPLFFBQVE7QUFBQSxFQUM5RyxPQUFPLFdBQVcsR0FBRyxzQkFBc0IscUJBQXFCLGdCQUFnQjtBQUFBO0FBR2xGLElBQU0sZ0NBQWdDLENBQUMsNkJBQTZCO0FBQUEsRUFDbEUsSUFBSSxXQUFXLHdCQUF3QixFQUFFLFFBQVEsS0FBSyxFQUFFLEVBQUUsU0FBUyxJQUFJO0FBQUEsSUFDckUsT0FBTyxXQUFXLHdCQUF3QixFQUFFLFFBQVEsS0FBSyxFQUFFO0FBQUEsRUFDN0Q7QUFBQSxFQUNBLE1BQU0saUJBQWlCLHlCQUNwQixNQUFNLEdBQUcsRUFDVCxJQUFJLENBQUMsY0FBYyxVQUFVLE1BQU0sR0FBRyxDQUFDLEVBQ3ZDLEtBQUs7QUFBQSxFQUNSLE1BQU0sdUJBQXVCLEtBQUssTUFBTSxLQUFLLGVBQWUsTUFBTTtBQUFBLEVBQ2xFLE9BQU8sZUFBZSxJQUFJLENBQUMsU0FBUyxXQUFXLEtBQUssTUFBTSxHQUFHLG9CQUFvQixDQUFDLEVBQUUsUUFBUSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRTtBQUFBOzs7QUNyNUN4RyxJQUFNLGtCQUdUO0FBQUEsRUFFRixRQUFRO0FBQUEsSUFDTixFQUFFLGFBQWEsZUFBZSxRQUFRLGNBQWMsa0JBQWtCO0FBQUEsSUFDdEUsRUFBRSxhQUFhLGVBQWUsY0FBYyxjQUFjLHlCQUF5QixhQUFhLEtBQUs7QUFBQSxJQUNyRztBQUFBLE1BQ0UsYUFBYSxlQUFlO0FBQUEsTUFDNUIsY0FBYztBQUFBLE1BQ2QsYUFBYTtBQUFBLElBQ2Y7QUFBQSxJQUNBO0FBQUEsTUFDRSxhQUFhLGVBQWU7QUFBQSxNQUM1QixjQUFjO0FBQUEsTUFDZCxhQUFhO0FBQUEsSUFDZjtBQUFBLElBQ0E7QUFBQSxNQUNFLGFBQWEsZUFBZTtBQUFBLE1BQzVCLGNBQWM7QUFBQSxNQUNkLGFBQWE7QUFBQSxJQUNmO0FBQUEsSUFDQTtBQUFBLE1BQ0UsYUFBYSxlQUFlO0FBQUEsTUFDNUIsY0FBYztBQUFBLE1BQ2QsYUFBYTtBQUFBLElBQ2Y7QUFBQSxJQUNBO0FBQUEsTUFDRSxhQUFhLGVBQWU7QUFBQSxNQUM1QixjQUFjO0FBQUEsTUFDZCxhQUFhO0FBQUEsSUFDZjtBQUFBLElBQ0E7QUFBQSxNQUNFLGFBQWEsZUFBZTtBQUFBLE1BQzVCLGNBQWM7QUFBQSxNQUNkLGFBQWE7QUFBQSxJQUNmO0FBQUEsSUFDQTtBQUFBLE1BQ0UsYUFBYSxlQUFlO0FBQUEsTUFDNUIsY0FBYztBQUFBLE1BQ2QsYUFBYTtBQUFBLElBQ2Y7QUFBQSxJQUNBLEVBQUUsYUFBYSxlQUFlLFdBQVcsY0FBYywyQkFBMkIsYUFBYSxLQUFLO0FBQUEsRUFDdEc7QUFBQSxFQUdBLFVBQVU7QUFBQSxJQUNSLEVBQUUsYUFBYSxlQUFlLFlBQVksY0FBYyxpQkFBaUI7QUFBQSxJQUN6RSxFQUFFLGFBQWEsZUFBZSxRQUFRLGNBQWMsd0JBQXdCO0FBQUEsSUFDNUUsRUFBRSxhQUFhLGVBQWUsZ0JBQWdCLGNBQWMseUJBQXlCLGFBQWEsS0FBSztBQUFBLElBQ3ZHLEVBQUUsYUFBYSxlQUFlLHVCQUF1QixjQUFjLDJCQUEyQixhQUFhLEtBQUs7QUFBQSxJQUNoSCxFQUFFLGFBQWEsZUFBZSxXQUFXLGNBQWMsb0JBQW9CLGFBQWEsS0FBSztBQUFBLElBQzdGO0FBQUEsTUFDRSxhQUFhLGVBQWU7QUFBQSxNQUM1QixjQUFjO0FBQUEsTUFDZCxhQUFhO0FBQUEsSUFDZjtBQUFBLElBQ0EsRUFBRSxhQUFhLGVBQWUsZ0JBQWdCLGNBQWMsdUJBQXVCLGFBQWEsS0FBSztBQUFBLElBQ3JHO0FBQUEsTUFDRSxhQUFhLGVBQWU7QUFBQSxNQUM1QixjQUFjO0FBQUEsTUFDZCxhQUFhO0FBQUEsSUFDZjtBQUFBLElBQ0E7QUFBQSxNQUNFLGFBQWEsZUFBZTtBQUFBLE1BQzVCLGNBQWM7QUFBQSxNQUNkLGFBQWE7QUFBQSxJQUNmO0FBQUEsSUFDQTtBQUFBLE1BQ0UsYUFBYSxlQUFlO0FBQUEsTUFDNUIsY0FBYztBQUFBLE1BQ2QsYUFBYTtBQUFBLElBQ2Y7QUFBQSxJQUNBO0FBQUEsTUFDRSxhQUFhLGVBQWU7QUFBQSxNQUM1QixjQUFjO0FBQUEsTUFDZCxhQUFhO0FBQUEsSUFDZjtBQUFBLElBQ0EsRUFBRSxhQUFhLGVBQWUsZ0JBQWdCLGNBQWMsc0JBQXNCLGFBQWEsS0FBSztBQUFBLElBQ3BHO0FBQUEsTUFDRSxhQUFhLGVBQWU7QUFBQSxNQUM1QixjQUFjO0FBQUEsTUFDZCxhQUFhO0FBQUEsSUFDZjtBQUFBLElBQ0E7QUFBQSxNQUNFLGFBQWEsZUFBZTtBQUFBLE1BQzVCLGNBQWM7QUFBQSxNQUNkLGFBQWE7QUFBQSxNQUNiLGNBQWM7QUFBQSxJQUNoQjtBQUFBLElBQ0E7QUFBQSxNQUNFLGFBQWEsZUFBZTtBQUFBLE1BQzVCLGNBQWM7QUFBQSxNQUNkLGFBQWE7QUFBQSxJQUNmO0FBQUEsSUFDQTtBQUFBLE1BQ0UsYUFBYSxlQUFlO0FBQUEsTUFDNUIsY0FBYztBQUFBLE1BQ2QsYUFBYTtBQUFBLE1BQ2IsY0FBYztBQUFBLElBQ2hCO0FBQUEsSUFDQTtBQUFBLE1BQ0UsYUFBYSxlQUFlO0FBQUEsTUFDNUIsY0FBYztBQUFBLE1BQ2QsYUFBYTtBQUFBLElBQ2Y7QUFBQSxJQUNBO0FBQUEsTUFDRSxhQUFhLGVBQWU7QUFBQSxNQUM1QixjQUFjO0FBQUEsTUFDZCxhQUFhO0FBQUEsTUFDYixjQUFjO0FBQUEsSUFDaEI7QUFBQSxJQUNBO0FBQUEsTUFDRSxhQUFhLGVBQWU7QUFBQSxNQUM1QixjQUFjO0FBQUEsTUFDZCxhQUFhO0FBQUEsSUFDZjtBQUFBLElBQ0EsRUFBRSxhQUFhLGVBQWUsV0FBVyxjQUFjLDJCQUEyQixhQUFhLEtBQUs7QUFBQSxJQUNwRztBQUFBLE1BQ0UsYUFBYSxlQUFlO0FBQUEsTUFDNUIsY0FBYztBQUFBLE1BQ2QsYUFBYTtBQUFBLE1BQ2IsY0FBYztBQUFBLElBQ2hCO0FBQUEsRUFDRjtBQUFBLEVBR0EsdUJBQXVCO0FBQUEsSUFDckIsRUFBRSxhQUFhLGVBQWUsZUFBZSxjQUFjLDBCQUEwQjtBQUFBLElBQ3JGLEVBQUUsYUFBYSxlQUFlLGlCQUFpQixjQUFjLDBCQUEwQjtBQUFBLElBQ3ZGO0FBQUEsTUFDRSxhQUFhLGVBQWU7QUFBQSxNQUM1QixjQUFjO0FBQUEsTUFDZCxhQUFhO0FBQUEsSUFDZjtBQUFBLElBQ0EsRUFBRSxhQUFhLGVBQWUsaUJBQWlCLGNBQWMsdUJBQXVCLGFBQWEsS0FBSztBQUFBLElBQ3RHO0FBQUEsTUFDRSxhQUFhLGVBQWU7QUFBQSxNQUM1QixjQUFjO0FBQUEsTUFDZCxhQUFhO0FBQUEsSUFDZjtBQUFBLElBQ0E7QUFBQSxNQUNFLGFBQWEsZUFBZTtBQUFBLE1BQzVCLGNBQWM7QUFBQSxNQUNkLGFBQWE7QUFBQSxNQUNiLGNBQWM7QUFBQSxJQUNoQjtBQUFBLElBQ0E7QUFBQSxNQUNFLGFBQWEsZUFBZTtBQUFBLE1BQzVCLGNBQWM7QUFBQSxNQUNkLGFBQWE7QUFBQSxNQUNiLGNBQWM7QUFBQSxJQUNoQjtBQUFBLElBQ0E7QUFBQSxNQUNFLGFBQWEsZUFBZTtBQUFBLE1BQzVCLGNBQWM7QUFBQSxNQUNkLGFBQWE7QUFBQSxJQUNmO0FBQUEsSUFDQSxFQUFFLGFBQWEsZUFBZSxZQUFZLGNBQWMsd0JBQXdCLGFBQWEsS0FBSztBQUFBLElBQ2xHO0FBQUEsTUFDRSxhQUFhLGVBQWU7QUFBQSxNQUM1QixjQUFjO0FBQUEsTUFDZCxhQUFhO0FBQUEsTUFDYixjQUFjO0FBQUEsSUFDaEI7QUFBQSxJQUNBLEVBQUUsYUFBYSxlQUFlLGVBQWUsY0FBYyx5QkFBeUIsYUFBYSxLQUFLO0FBQUEsSUFDdEc7QUFBQSxNQUNFLGFBQWEsZUFBZTtBQUFBLE1BQzVCLGNBQWM7QUFBQSxNQUNkLGFBQWE7QUFBQSxJQUNmO0FBQUEsSUFDQTtBQUFBLE1BQ0UsYUFBYSxlQUFlO0FBQUEsTUFDNUIsY0FBYztBQUFBLE1BQ2QsYUFBYTtBQUFBLE1BQ2IsY0FBYztBQUFBLElBQ2hCO0FBQUEsSUFDQTtBQUFBLE1BQ0UsYUFBYSxlQUFlO0FBQUEsTUFDNUIsY0FBYztBQUFBLE1BQ2QsYUFBYTtBQUFBLE1BQ2IsY0FBYztBQUFBLElBQ2hCO0FBQUEsRUFDRjtBQUFBLEVBR0EsbUJBQW1CLENBQUMsRUFBRSxhQUFhLGVBQWUsbUJBQW1CLGNBQWMsNkJBQTZCLENBQUM7QUFBQSxFQUdqSCxvQkFBb0I7QUFBQSxJQUNsQixFQUFFLGFBQWEsZUFBZSxTQUFTLGNBQWMseUJBQXlCO0FBQUEsSUFDOUUsRUFBRSxhQUFhLGVBQWUsY0FBYyxjQUFjLDJCQUEyQjtBQUFBLElBQ3JGLEVBQUUsYUFBYSxlQUFlLGlCQUFpQixjQUFjLHVCQUF1QixhQUFhLEtBQUs7QUFBQSxJQUN0RztBQUFBLE1BQ0UsYUFBYSxlQUFlO0FBQUEsTUFDNUIsY0FBYztBQUFBLE1BQ2QsYUFBYTtBQUFBLElBQ2Y7QUFBQSxJQUNBLEVBQUUsYUFBYSxlQUFlLGdCQUFnQixjQUFjLDhCQUE4QixhQUFhLEtBQUs7QUFBQSxJQUM1RyxFQUFFLGFBQWEsZUFBZSxlQUFlLGNBQWMsaUNBQWlDLGFBQWEsS0FBSztBQUFBLElBQzlHO0FBQUEsTUFDRSxhQUFhLGVBQWU7QUFBQSxNQUM1QixjQUFjO0FBQUEsTUFDZCxhQUFhO0FBQUEsSUFDZjtBQUFBLElBQ0E7QUFBQSxNQUNFLGFBQWEsZUFBZTtBQUFBLE1BQzVCLGNBQWM7QUFBQSxNQUNkLGFBQWE7QUFBQSxJQUNmO0FBQUEsSUFDQTtBQUFBLE1BQ0UsYUFBYSxlQUFlO0FBQUEsTUFDNUIsY0FBYztBQUFBLE1BQ2QsYUFBYTtBQUFBLElBQ2Y7QUFBQSxJQUNBO0FBQUEsTUFDRSxhQUFhLGVBQWU7QUFBQSxNQUM1QixjQUFjO0FBQUEsTUFDZCxhQUFhO0FBQUEsSUFDZjtBQUFBLElBQ0EsRUFBRSxhQUFhLGVBQWUsV0FBVyxjQUFjLDJCQUEyQixhQUFhLEtBQUs7QUFBQSxJQUNwRztBQUFBLE1BQ0UsYUFBYSxlQUFlO0FBQUEsTUFDNUIsY0FBYztBQUFBLE1BQ2QsYUFBYTtBQUFBLElBQ2Y7QUFBQSxJQUNBO0FBQUEsTUFDRSxhQUFhLGVBQWU7QUFBQSxNQUM1QixjQUFjO0FBQUEsTUFDZCxhQUFhO0FBQUEsSUFDZjtBQUFBLElBQ0E7QUFBQSxNQUNFLGFBQWEsZUFBZTtBQUFBLE1BQzVCLGNBQWM7QUFBQSxNQUNkLGFBQWE7QUFBQSxJQUNmO0FBQUEsSUFDQTtBQUFBLE1BQ0UsYUFBYSxlQUFlO0FBQUEsTUFDNUIsY0FBYztBQUFBLE1BQ2QsYUFBYTtBQUFBLElBQ2Y7QUFBQSxJQUNBO0FBQUEsTUFDRSxhQUFhLGVBQWU7QUFBQSxNQUM1QixjQUFjO0FBQUEsTUFDZCxhQUFhO0FBQUEsSUFDZjtBQUFBLElBQ0E7QUFBQSxNQUNFLGFBQWEsZUFBZTtBQUFBLE1BQzVCLGNBQWM7QUFBQSxNQUNkLGFBQWE7QUFBQSxJQUNmO0FBQUEsRUFDRjtBQUFBLEVBR0EsYUFBYTtBQUFBLElBQ1gsRUFBRSxhQUFhLGVBQWUsa0JBQWtCLGNBQWMsa0JBQWtCLGFBQWEsS0FBSztBQUFBLElBQ2xHLEVBQUUsYUFBYSxlQUFlLG9CQUFvQixjQUFjLGtCQUFrQixhQUFhLEtBQUs7QUFBQSxJQUNwRyxFQUFFLGFBQWEsZUFBZSxtQkFBbUIsY0FBYyxrQkFBa0IsYUFBYSxLQUFLO0FBQUEsSUFDbkcsRUFBRSxhQUFhLGVBQWUsc0JBQXNCLGNBQWMsNkJBQTZCLGFBQWEsS0FBSztBQUFBLElBQ2pILEVBQUUsYUFBYSxlQUFlLGdDQUFnQyxjQUFjLGtCQUFrQixhQUFhLEtBQUs7QUFBQSxJQUNoSDtBQUFBLE1BQ0UsYUFBYSxlQUFlO0FBQUEsTUFDNUIsY0FBYztBQUFBLE1BQ2QsYUFBYTtBQUFBLElBQ2Y7QUFBQSxJQUNBO0FBQUEsTUFDRSxhQUFhLGVBQWU7QUFBQSxNQUM1QixjQUFjO0FBQUEsTUFDZCxhQUFhO0FBQUEsSUFDZjtBQUFBLElBQ0E7QUFBQSxNQUNFLGFBQWEsZUFBZTtBQUFBLE1BQzVCLGNBQWM7QUFBQSxNQUNkLGFBQWE7QUFBQSxJQUNmO0FBQUEsSUFDQSxFQUFFLGFBQWEsZUFBZSxlQUFlLGNBQWMsd0JBQXdCLGFBQWEsS0FBSztBQUFBLElBQ3JHLEVBQUUsYUFBYSxlQUFlLG9CQUFvQixjQUFjLDRCQUE0QjtBQUFBLElBQzVGLEVBQUUsYUFBYSxlQUFlLG1CQUFtQixjQUFjLG1DQUFtQztBQUFBLElBQ2xHLEVBQUUsYUFBYSxlQUFlLGtCQUFrQixjQUFjLHVCQUF1QixhQUFhLEtBQUs7QUFBQSxJQUN2RyxFQUFFLGFBQWEsZUFBZSx1QkFBdUIsY0FBYyxpQkFBaUI7QUFBQSxJQUNwRjtBQUFBLE1BQ0UsYUFBYSxlQUFlO0FBQUEsTUFDNUIsY0FBYztBQUFBLE1BQ2QsYUFBYTtBQUFBLElBQ2Y7QUFBQSxFQUNGO0FBQUEsRUFHQSxhQUFhO0FBQUEsSUFDWCxFQUFFLGFBQWEsZUFBZSxVQUFVLGNBQWMsd0JBQXdCO0FBQUEsSUFDOUUsRUFBRSxhQUFhLGVBQWUsaUJBQWlCLGNBQWMsd0JBQXdCLGFBQWEsS0FBSztBQUFBLEVBQ3pHO0FBQUEsRUFHQSxpQkFBaUI7QUFBQSxJQUNmLEVBQUUsYUFBYSxlQUFlLHlCQUF5QixjQUFjLGtCQUFrQixhQUFhLEtBQUs7QUFBQSxJQUN6RyxFQUFFLGFBQWEsZUFBZSxjQUFjLGNBQWMsbUNBQW1DO0FBQUEsRUFDL0Y7QUFBQSxFQUdBLGlCQUFpQjtBQUFBLElBQ2YsRUFBRSxhQUFhLGVBQWUscUJBQXFCLGNBQWMsbUNBQW1DO0FBQUEsSUFDcEcsRUFBRSxhQUFhLGVBQWUsa0JBQWtCLGNBQWMsZ0NBQWdDO0FBQUEsSUFDOUYsRUFBRSxhQUFhLGVBQWUsb0JBQW9CLGNBQWMsMEJBQTBCO0FBQUEsSUFDMUYsRUFBRSxhQUFhLGVBQWUsZUFBZSxjQUFjLHVCQUF1QixhQUFhLEtBQUs7QUFBQSxJQUNwRyxFQUFFLGFBQWEsZUFBZSx1QkFBdUIsY0FBYyxxQ0FBcUM7QUFBQSxFQUMxRztBQUFBLEVBR0EsMEJBQTBCO0FBQUEsSUFDeEI7QUFBQSxNQUNFLGFBQWEsZUFBZTtBQUFBLE1BQzVCLGNBQWM7QUFBQSxNQUNkLGFBQWE7QUFBQSxJQUNmO0FBQUEsSUFDQSxFQUFFLGFBQWEsZUFBZSxtQkFBbUIsY0FBYyxnQ0FBZ0MsYUFBYSxLQUFLO0FBQUEsSUFDakg7QUFBQSxNQUNFLGFBQWEsZUFBZTtBQUFBLE1BQzVCLGNBQWM7QUFBQSxNQUNkLGFBQWE7QUFBQSxJQUNmO0FBQUEsSUFDQTtBQUFBLE1BQ0UsYUFBYSxlQUFlO0FBQUEsTUFDNUIsY0FBYztBQUFBLE1BQ2QsYUFBYTtBQUFBLElBQ2Y7QUFBQSxJQUNBO0FBQUEsTUFDRSxhQUFhLGVBQWU7QUFBQSxNQUM1QixjQUFjO0FBQUEsTUFDZCxhQUFhO0FBQUEsSUFDZjtBQUFBLElBQ0EsRUFBRSxhQUFhLGVBQWUsb0JBQW9CLGNBQWMsbUJBQW1CLGFBQWEsS0FBSztBQUFBLElBQ3JHLEVBQUUsYUFBYSxlQUFlLG1CQUFtQixjQUFjLCtCQUErQjtBQUFBLElBQzlGO0FBQUEsTUFDRSxhQUFhLGVBQWU7QUFBQSxNQUM1QixjQUFjO0FBQUEsTUFDZCxhQUFhO0FBQUEsSUFDZjtBQUFBLEVBQ0Y7QUFBQSxFQUdBLGtCQUFrQjtBQUFBLElBQ2hCLEVBQUUsYUFBYSxlQUFlLFVBQVUsY0FBYyx5QkFBeUI7QUFBQSxJQUMvRSxFQUFFLGFBQWEsZUFBZSwyQkFBMkIsY0FBYyxpQkFBaUI7QUFBQSxJQUN4RixFQUFFLGFBQWEsZUFBZSxnQkFBZ0IsY0FBYywrQkFBK0I7QUFBQSxJQUMzRixFQUFFLGFBQWEsZUFBZSxnQkFBZ0IsY0FBYywrQkFBK0I7QUFBQSxJQUMzRjtBQUFBLE1BQ0UsYUFBYSxlQUFlO0FBQUEsTUFDNUIsY0FBYztBQUFBLElBQ2hCO0FBQUEsSUFDQTtBQUFBLE1BQ0UsYUFBYSxlQUFlO0FBQUEsTUFDNUIsY0FBYztBQUFBLE1BQ2QsYUFBYTtBQUFBLElBQ2Y7QUFBQSxJQUNBO0FBQUEsTUFDRSxhQUFhLGVBQWU7QUFBQSxNQUM1QixjQUFjO0FBQUEsTUFDZCxhQUFhO0FBQUEsSUFDZjtBQUFBLElBQ0E7QUFBQSxNQUNFLGFBQWEsZUFBZTtBQUFBLE1BQzVCLGNBQWM7QUFBQSxNQUNkLGFBQWE7QUFBQSxJQUNmO0FBQUEsSUFDQTtBQUFBLE1BQ0UsYUFBYSxlQUFlO0FBQUEsTUFDNUIsY0FBYztBQUFBLE1BQ2QsYUFBYTtBQUFBLElBQ2Y7QUFBQSxFQUNGO0FBQUEsRUFHQSxpQkFBaUI7QUFBQSxJQUNmO0FBQUEsTUFDRSxhQUFhLGVBQWU7QUFBQSxNQUM1QixjQUFjO0FBQUEsTUFDZCxhQUFhO0FBQUEsSUFDZjtBQUFBLElBQ0EsRUFBRSxhQUFhLGVBQWUsc0JBQXNCLGNBQWMsMkJBQTJCO0FBQUEsRUFDL0Y7QUFBQSxFQUdBLDZCQUE2QjtBQUFBLElBQzNCLEVBQUUsYUFBYSxlQUFlLGNBQWMsY0FBYyw0Q0FBNEM7QUFBQSxJQUN0RyxFQUFFLGFBQWEsZUFBZSwyQkFBMkIsY0FBYywwQkFBMEI7QUFBQSxJQUNqRztBQUFBLE1BQ0UsYUFBYSxlQUFlO0FBQUEsTUFDNUIsY0FBYztBQUFBLE1BQ2QsYUFBYTtBQUFBLElBQ2Y7QUFBQSxJQUNBLEVBQUUsYUFBYSxlQUFlLFVBQVUsY0FBYyx5Q0FBeUMsYUFBYSxLQUFLO0FBQUEsSUFDakg7QUFBQSxNQUNFLGFBQWEsZUFBZTtBQUFBLE1BQzVCLGNBQWM7QUFBQSxNQUNkLGFBQWE7QUFBQSxJQUNmO0FBQUEsSUFDQSxFQUFFLGFBQWEsZUFBZSxXQUFXLGNBQWMsMkJBQTJCLGFBQWEsS0FBSztBQUFBLElBQ3BHO0FBQUEsTUFDRSxhQUFhLGVBQWU7QUFBQSxNQUM1QixjQUFjO0FBQUEsTUFDZCxhQUFhO0FBQUEsSUFDZjtBQUFBLElBQ0E7QUFBQSxNQUNFLGFBQWEsZUFBZTtBQUFBLE1BQzVCLGNBQWM7QUFBQSxNQUNkLGFBQWE7QUFBQSxJQUNmO0FBQUEsSUFDQTtBQUFBLE1BQ0UsYUFBYSxlQUFlO0FBQUEsTUFDNUIsY0FBYztBQUFBLE1BQ2QsYUFBYTtBQUFBLElBQ2Y7QUFBQSxJQUNBO0FBQUEsTUFDRSxhQUFhLGVBQWU7QUFBQSxNQUM1QixjQUFjO0FBQUEsTUFDZCxhQUFhO0FBQUEsSUFDZjtBQUFBLElBQ0E7QUFBQSxNQUNFLGFBQWEsZUFBZTtBQUFBLE1BQzVCLGNBQWM7QUFBQSxNQUNkLGFBQWE7QUFBQSxJQUNmO0FBQUEsSUFDQTtBQUFBLE1BQ0UsYUFBYSxlQUFlO0FBQUEsTUFDNUIsY0FBYztBQUFBLE1BQ2QsYUFBYTtBQUFBLElBQ2Y7QUFBQSxFQUNGO0FBQUEsRUFHQSx5QkFBeUI7QUFBQSxJQUN2QixFQUFFLGFBQWEsZUFBZSxjQUFjLGNBQWMsNENBQTRDO0FBQUEsSUFDdEcsRUFBRSxhQUFhLGVBQWUsMkJBQTJCLGNBQWMsMEJBQTBCO0FBQUEsSUFDakcsRUFBRSxhQUFhLGVBQWUsVUFBVSxjQUFjLHlDQUF5QyxhQUFhLEtBQUs7QUFBQSxJQUNqSDtBQUFBLE1BQ0UsYUFBYSxlQUFlO0FBQUEsTUFDNUIsY0FBYztBQUFBLE1BQ2QsYUFBYTtBQUFBLElBQ2Y7QUFBQSxJQUNBLEVBQUUsYUFBYSxlQUFlLFdBQVcsY0FBYywyQkFBMkIsYUFBYSxLQUFLO0FBQUEsRUFDdEc7QUFBQSxFQUlBLGtCQUFrQjtBQUFBLElBQ2hCLEVBQUUsYUFBYSxlQUFlLFFBQVEsY0FBYyxrQkFBa0I7QUFBQSxJQUN0RSxFQUFFLGFBQWEsZUFBZSxjQUFjLGNBQWMseUJBQXlCLGFBQWEsS0FBSztBQUFBLElBQ3JHO0FBQUEsTUFDRSxhQUFhLGVBQWU7QUFBQSxNQUM1QixjQUFjO0FBQUEsTUFDZCxhQUFhO0FBQUEsSUFDZjtBQUFBLElBQ0E7QUFBQSxNQUNFLGFBQWEsZUFBZTtBQUFBLE1BQzVCLGNBQWM7QUFBQSxNQUNkLGFBQWE7QUFBQSxJQUNmO0FBQUEsSUFDQTtBQUFBLE1BQ0UsYUFBYSxlQUFlO0FBQUEsTUFDNUIsY0FBYztBQUFBLE1BQ2QsYUFBYTtBQUFBLElBQ2Y7QUFBQSxJQUNBO0FBQUEsTUFDRSxhQUFhLGVBQWU7QUFBQSxNQUM1QixjQUFjO0FBQUEsTUFDZCxhQUFhO0FBQUEsSUFDZjtBQUFBLElBQ0E7QUFBQSxNQUNFLGFBQWEsZUFBZTtBQUFBLE1BQzVCLGNBQWM7QUFBQSxNQUNkLGFBQWE7QUFBQSxJQUNmO0FBQUEsSUFDQTtBQUFBLE1BQ0UsYUFBYSxlQUFlO0FBQUEsTUFDNUIsY0FBYztBQUFBLE1BQ2QsYUFBYTtBQUFBLElBQ2Y7QUFBQSxJQUNBO0FBQUEsTUFDRSxhQUFhLGVBQWU7QUFBQSxNQUM1QixjQUFjO0FBQUEsTUFDZCxhQUFhO0FBQUEsSUFDZjtBQUFBLElBQ0EsRUFBRSxhQUFhLGVBQWUsV0FBVyxjQUFjLDJCQUEyQixhQUFhLEtBQUs7QUFBQSxFQUN0RztBQUFBLEVBR0Esb0JBQW9CO0FBQUEsSUFDbEIsRUFBRSxhQUFhLGVBQWUsOEJBQThCLGNBQWMsc0NBQXNDO0FBQUEsRUFDbEg7QUFBQSxFQUdBLHNCQUFzQjtBQUFBLElBQ3BCLEVBQUUsYUFBYSxlQUFlLGtCQUFrQixjQUFjLGlDQUFpQztBQUFBLElBQy9GLEVBQUUsYUFBYSxlQUFlLHlCQUF5QixjQUFjLDJCQUEyQixhQUFhLEtBQUs7QUFBQSxJQUNsSDtBQUFBLE1BQ0UsYUFBYSxlQUFlO0FBQUEsTUFDNUIsY0FBYztBQUFBLE1BQ2QsYUFBYTtBQUFBLE1BQ2IsY0FBYztBQUFBLElBQ2hCO0FBQUEsSUFDQTtBQUFBLE1BQ0UsYUFBYSxlQUFlO0FBQUEsTUFDNUIsY0FBYztBQUFBLE1BQ2QsYUFBYTtBQUFBLElBQ2Y7QUFBQSxFQUNGO0FBQUEsRUFHQSxrQkFBa0I7QUFBQSxJQUNoQixFQUFFLGFBQWEsZUFBZSxlQUFlLGNBQWMsdUJBQXVCO0FBQUEsSUFDbEYsRUFBRSxhQUFhLGVBQWUsa0JBQWtCLGNBQWMsMEJBQTBCO0FBQUEsSUFDeEY7QUFBQSxNQUNFLGFBQWEsZUFBZTtBQUFBLE1BQzVCLGNBQWM7QUFBQSxNQUNkLGNBQWM7QUFBQSxJQUNoQjtBQUFBLEVBQ0Y7QUFBQSxFQUtBLGNBQWM7QUFBQSxJQUVaO0FBQUEsTUFDRSxhQUFhLGVBQWU7QUFBQSxNQUM1QixjQUFjO0FBQUEsSUFDaEI7QUFBQSxJQUNBO0FBQUEsTUFDRSxhQUFhLGVBQWU7QUFBQSxNQUM1QixjQUFjO0FBQUEsSUFDaEI7QUFBQSxJQUNBO0FBQUEsTUFDRSxhQUFhLGVBQWU7QUFBQSxNQUM1QixjQUFjO0FBQUEsSUFDaEI7QUFBQSxJQUVBLEVBQUUsYUFBYSxlQUFlLFFBQVEsY0FBYyxrQkFBa0I7QUFBQSxJQUN0RSxFQUFFLGFBQWEsZUFBZSxjQUFjLGNBQWMseUJBQXlCLGFBQWEsS0FBSztBQUFBLElBQ3JHO0FBQUEsTUFDRSxhQUFhLGVBQWU7QUFBQSxNQUM1QixjQUFjO0FBQUEsTUFDZCxhQUFhO0FBQUEsSUFDZjtBQUFBLElBQ0E7QUFBQSxNQUNFLGFBQWEsZUFBZTtBQUFBLE1BQzVCLGNBQWM7QUFBQSxNQUNkLGFBQWE7QUFBQSxJQUNmO0FBQUEsSUFDQTtBQUFBLE1BQ0UsYUFBYSxlQUFlO0FBQUEsTUFDNUIsY0FBYztBQUFBLE1BQ2QsYUFBYTtBQUFBLElBQ2Y7QUFBQSxJQUNBO0FBQUEsTUFDRSxhQUFhLGVBQWU7QUFBQSxNQUM1QixjQUFjO0FBQUEsTUFDZCxhQUFhO0FBQUEsSUFDZjtBQUFBLElBQ0E7QUFBQSxNQUNFLGFBQWEsZUFBZTtBQUFBLE1BQzVCLGNBQWM7QUFBQSxNQUNkLGFBQWE7QUFBQSxJQUNmO0FBQUEsSUFDQTtBQUFBLE1BQ0UsYUFBYSxlQUFlO0FBQUEsTUFDNUIsY0FBYztBQUFBLE1BQ2QsYUFBYTtBQUFBLElBQ2Y7QUFBQSxJQUNBO0FBQUEsTUFDRSxhQUFhLGVBQWU7QUFBQSxNQUM1QixjQUFjO0FBQUEsTUFDZCxhQUFhO0FBQUEsSUFDZjtBQUFBLElBQ0EsRUFBRSxhQUFhLGVBQWUsV0FBVyxjQUFjLDJCQUEyQixhQUFhLEtBQUs7QUFBQSxJQUVwRyxFQUFFLGFBQWEsZUFBZSxZQUFZLGNBQWMsaUJBQWlCO0FBQUEsSUFDekUsRUFBRSxhQUFhLGVBQWUsUUFBUSxjQUFjLHdCQUF3QjtBQUFBLElBQzVFLEVBQUUsYUFBYSxlQUFlLGdCQUFnQixjQUFjLHVCQUF1QixhQUFhLEtBQUs7QUFBQSxJQUNyRyxFQUFFLGFBQWEsZUFBZSxXQUFXLGNBQWMsb0JBQW9CLGFBQWEsS0FBSztBQUFBLElBRTdGO0FBQUEsTUFDRSxhQUFhLGVBQWU7QUFBQSxNQUM1QixjQUFjO0FBQUEsTUFDZCxhQUFhO0FBQUEsSUFDZjtBQUFBLElBRUEsRUFBRSxhQUFhLGVBQWUsVUFBVSxjQUFjLGtCQUFrQjtBQUFBLElBQ3hFLEVBQUUsYUFBYSxlQUFlLGdCQUFnQixjQUFjLHlCQUF5QixhQUFhLEtBQUs7QUFBQSxJQUV2RyxFQUFFLGFBQWEsZUFBZSxtQkFBbUIsY0FBYyw2QkFBNkI7QUFBQSxFQUM5RjtBQUFBLEVBR0EsNEJBQTRCO0FBQUEsSUFFMUIsRUFBRSxhQUFhLGVBQWUsa0JBQWtCLGNBQWMsa0JBQWtCLGFBQWEsS0FBSztBQUFBLElBQ2xHLEVBQUUsYUFBYSxlQUFlLG9CQUFvQixjQUFjLGtCQUFrQixhQUFhLEtBQUs7QUFBQSxJQUVwRztBQUFBLE1BQ0UsYUFBYSxlQUFlO0FBQUEsTUFDNUIsY0FBYztBQUFBLE1BQ2QsYUFBYTtBQUFBLElBQ2Y7QUFBQSxJQUNBO0FBQUEsTUFDRSxhQUFhLGVBQWU7QUFBQSxNQUM1QixjQUFjO0FBQUEsTUFDZCxhQUFhO0FBQUEsTUFDYixjQUFjO0FBQUEsSUFDaEI7QUFBQSxJQUVBLEVBQUUsYUFBYSxlQUFlLG9CQUFvQixjQUFjLGtCQUFrQixhQUFhLEtBQUs7QUFBQSxJQUNwRztBQUFBLE1BQ0UsYUFBYSxlQUFlO0FBQUEsTUFDNUIsY0FBYztBQUFBLE1BQ2QsYUFBYTtBQUFBLElBQ2Y7QUFBQSxJQUNBLEVBQUUsYUFBYSxlQUFlLHVCQUF1QixjQUFjLDZCQUE2QixhQUFhLEtBQUs7QUFBQSxJQUNsSDtBQUFBLE1BQ0UsYUFBYSxlQUFlO0FBQUEsTUFDNUIsY0FBYztBQUFBLE1BQ2QsYUFBYTtBQUFBLElBQ2Y7QUFBQSxJQUNBO0FBQUEsTUFDRSxhQUFhLGVBQWU7QUFBQSxNQUM1QixjQUFjO0FBQUEsTUFDZCxhQUFhO0FBQUEsSUFDZjtBQUFBLElBQ0E7QUFBQSxNQUNFLGFBQWEsZUFBZTtBQUFBLE1BQzVCLGNBQWM7QUFBQSxNQUNkLGFBQWE7QUFBQSxJQUNmO0FBQUEsSUFDQTtBQUFBLE1BQ0UsYUFBYSxlQUFlO0FBQUEsTUFDNUIsY0FBYztBQUFBLE1BQ2QsYUFBYTtBQUFBLElBQ2Y7QUFBQSxJQUNBO0FBQUEsTUFDRSxhQUFhLGVBQWU7QUFBQSxNQUM1QixjQUFjO0FBQUEsTUFDZCxhQUFhO0FBQUEsSUFDZjtBQUFBLElBQ0E7QUFBQSxNQUNFLGFBQWEsZUFBZTtBQUFBLE1BQzVCLGNBQWM7QUFBQSxNQUNkLGFBQWE7QUFBQSxJQUNmO0FBQUEsSUFDQTtBQUFBLE1BQ0UsYUFBYSxlQUFlO0FBQUEsTUFDNUIsY0FBYztBQUFBLE1BQ2QsYUFBYTtBQUFBLElBQ2Y7QUFBQSxJQUVBLEVBQUUsYUFBYSxlQUFlLGtCQUFrQixjQUFjLGdDQUFnQyxhQUFhLEtBQUs7QUFBQSxJQUNoSDtBQUFBLE1BQ0UsYUFBYSxlQUFlO0FBQUEsTUFDNUIsY0FBYztBQUFBLE1BQ2QsYUFBYTtBQUFBLElBQ2Y7QUFBQSxJQUVBLEVBQUUsYUFBYSxlQUFlLFlBQVksY0FBYyxvQkFBb0I7QUFBQSxJQUM1RSxFQUFFLGFBQWEsZUFBZSx1QkFBdUIsY0FBYywwQkFBMEI7QUFBQSxJQUM3RjtBQUFBLE1BQ0UsYUFBYSxlQUFlO0FBQUEsTUFDNUIsY0FBYztBQUFBLE1BQ2QsY0FBYztBQUFBLElBQ2hCO0FBQUEsSUFDQSxFQUFFLGFBQWEsZUFBZSxhQUFhLGNBQWMsaUJBQWlCO0FBQUEsSUFDMUUsRUFBRSxhQUFhLGVBQWUsbUJBQW1CLGNBQWMsMkJBQTJCO0FBQUEsSUFFMUY7QUFBQSxNQUNFLGFBQWEsZUFBZTtBQUFBLE1BQzVCLGNBQWM7QUFBQSxNQUNkLGFBQWE7QUFBQSxNQUNiLGNBQWM7QUFBQSxJQUNoQjtBQUFBLElBQ0EsRUFBRSxhQUFhLGVBQWUsZ0JBQWdCLGNBQWMseUJBQXlCLGFBQWEsS0FBSztBQUFBLElBQ3ZHO0FBQUEsTUFDRSxhQUFhLGVBQWU7QUFBQSxNQUM1QixjQUFjO0FBQUEsTUFDZCxhQUFhO0FBQUEsSUFDZjtBQUFBLEVBQ0Y7QUFBQSxFQUdBLGFBQWE7QUFBQSxJQUNYLEVBQUUsYUFBYSxlQUFlLFVBQVUsY0FBYyxrQkFBa0I7QUFBQSxJQUN4RSxFQUFFLGFBQWEsZUFBZSxnQkFBZ0IsY0FBYyx5QkFBeUIsYUFBYSxLQUFLO0FBQUEsRUFDekc7QUFBQSxFQUdBLGFBQWEsQ0FBQyxFQUFFLGFBQWEsZUFBZSxVQUFVLGNBQWMsa0JBQWtCLENBQUM7QUFBQSxFQUd2RixrQkFBa0IsQ0FBQyxFQUFFLGFBQWEsZUFBZSxlQUFlLGNBQWMsdUJBQXVCLENBQUM7QUFBQSxFQUd0RyxTQUFTO0FBQUEsSUFDUDtBQUFBLE1BQ0UsYUFBYSxlQUFlO0FBQUEsTUFDNUIsY0FBYztBQUFBLE1BQ2QsYUFBYTtBQUFBLElBQ2Y7QUFBQSxJQUNBLEVBQUUsYUFBYSxlQUFlLDRCQUE0QixjQUFjLHFDQUFxQztBQUFBLElBQzdHLEVBQUUsYUFBYSxlQUFlLHNCQUFzQixjQUFjLDBCQUEwQjtBQUFBLElBQzVGLEVBQUUsYUFBYSxlQUFlLDBCQUEwQixjQUFjLDJCQUEyQjtBQUFBLElBQ2pHLEVBQUUsYUFBYSxlQUFlLGFBQWEsY0FBYyxpQkFBaUI7QUFBQSxJQUMxRSxFQUFFLGFBQWEsZUFBZSwyQkFBMkIsY0FBYyw0QkFBNEI7QUFBQSxJQUNuRyxFQUFFLGFBQWEsZUFBZSw4QkFBOEIsY0FBYyx3QkFBd0I7QUFBQSxJQUNsRyxFQUFFLGFBQWEsZUFBZSwrQkFBK0IsY0FBYyx3QkFBd0I7QUFBQSxJQUNuRztBQUFBLE1BQ0UsYUFBYSxlQUFlO0FBQUEsTUFDNUIsY0FBYztBQUFBLE1BQ2QsYUFBYTtBQUFBLE1BQ2IsY0FBYztBQUFBLElBQ2hCO0FBQUEsRUFDRjtBQUFBLEVBR0Esd0JBQXdCO0FBQUEsSUFDdEIsRUFBRSxhQUFhLGVBQWUsMEJBQTBCLGNBQWMsc0NBQXNDO0FBQUEsRUFDOUc7QUFBQSxFQUlBLGVBQWU7QUFBQSxJQUViLEVBQUUsYUFBYSxlQUFlLFlBQVksY0FBYyxvQkFBb0I7QUFBQSxJQUM1RSxFQUFFLGFBQWEsZUFBZSx1QkFBdUIsY0FBYywwQkFBMEI7QUFBQSxJQUM3RjtBQUFBLE1BQ0UsYUFBYSxlQUFlO0FBQUEsTUFDNUIsY0FBYztBQUFBLE1BQ2QsY0FBYztBQUFBLElBQ2hCO0FBQUEsSUFDQSxFQUFFLGFBQWEsZUFBZSxhQUFhLGNBQWMsaUJBQWlCO0FBQUEsSUFDMUUsRUFBRSxhQUFhLGVBQWUsbUJBQW1CLGNBQWMsMkJBQTJCO0FBQUEsSUFFMUYsRUFBRSxhQUFhLGVBQWUsa0JBQWtCLGNBQWMsa0JBQWtCLGFBQWEsS0FBSztBQUFBLElBQ2xHLEVBQUUsYUFBYSxlQUFlLG9CQUFvQixjQUFjLGtCQUFrQixhQUFhLEtBQUs7QUFBQSxJQUNwRztBQUFBLE1BQ0UsYUFBYSxlQUFlO0FBQUEsTUFDNUIsY0FBYztBQUFBLE1BQ2QsYUFBYTtBQUFBLElBQ2Y7QUFBQSxJQUNBO0FBQUEsTUFDRSxhQUFhLGVBQWU7QUFBQSxNQUM1QixjQUFjO0FBQUEsTUFDZCxhQUFhO0FBQUEsTUFDYixjQUFjO0FBQUEsSUFDaEI7QUFBQSxJQUNBLEVBQUUsYUFBYSxlQUFlLG9CQUFvQixjQUFjLGtCQUFrQixhQUFhLEtBQUs7QUFBQSxJQUNwRztBQUFBLE1BQ0UsYUFBYSxlQUFlO0FBQUEsTUFDNUIsY0FBYztBQUFBLE1BQ2QsYUFBYTtBQUFBLElBQ2Y7QUFBQSxJQUNBLEVBQUUsYUFBYSxlQUFlLHVCQUF1QixjQUFjLDZCQUE2QixhQUFhLEtBQUs7QUFBQSxJQUNsSDtBQUFBLE1BQ0UsYUFBYSxlQUFlO0FBQUEsTUFDNUIsY0FBYztBQUFBLE1BQ2QsYUFBYTtBQUFBLElBQ2Y7QUFBQSxJQUNBO0FBQUEsTUFDRSxhQUFhLGVBQWU7QUFBQSxNQUM1QixjQUFjO0FBQUEsTUFDZCxhQUFhO0FBQUEsSUFDZjtBQUFBLElBQ0E7QUFBQSxNQUNFLGFBQWEsZUFBZTtBQUFBLE1BQzVCLGNBQWM7QUFBQSxNQUNkLGFBQWE7QUFBQSxJQUNmO0FBQUEsSUFDQTtBQUFBLE1BQ0UsYUFBYSxlQUFlO0FBQUEsTUFDNUIsY0FBYztBQUFBLE1BQ2QsYUFBYTtBQUFBLElBQ2Y7QUFBQSxJQUNBO0FBQUEsTUFDRSxhQUFhLGVBQWU7QUFBQSxNQUM1QixjQUFjO0FBQUEsTUFDZCxhQUFhO0FBQUEsSUFDZjtBQUFBLElBQ0E7QUFBQSxNQUNFLGFBQWEsZUFBZTtBQUFBLE1BQzVCLGNBQWM7QUFBQSxNQUNkLGFBQWE7QUFBQSxJQUNmO0FBQUEsSUFDQTtBQUFBLE1BQ0UsYUFBYSxlQUFlO0FBQUEsTUFDNUIsY0FBYztBQUFBLE1BQ2QsYUFBYTtBQUFBLElBQ2Y7QUFBQSxJQUNBLEVBQUUsYUFBYSxlQUFlLGtCQUFrQixjQUFjLGdDQUFnQyxhQUFhLEtBQUs7QUFBQSxJQUNoSDtBQUFBLE1BQ0UsYUFBYSxlQUFlO0FBQUEsTUFDNUIsY0FBYztBQUFBLE1BQ2QsYUFBYTtBQUFBLElBQ2Y7QUFBQSxJQUNBO0FBQUEsTUFDRSxhQUFhLGVBQWU7QUFBQSxNQUM1QixjQUFjO0FBQUEsTUFDZCxhQUFhO0FBQUEsTUFDYixjQUFjO0FBQUEsSUFDaEI7QUFBQSxJQUNBLEVBQUUsYUFBYSxlQUFlLGdCQUFnQixjQUFjLHlCQUF5QixhQUFhLEtBQUs7QUFBQSxJQUV2RztBQUFBLE1BQ0UsYUFBYSxlQUFlO0FBQUEsTUFDNUIsY0FBYztBQUFBLE1BQ2QsYUFBYTtBQUFBLElBQ2Y7QUFBQSxJQUNBO0FBQUEsTUFDRSxhQUFhLGVBQWU7QUFBQSxNQUM1QixjQUFjO0FBQUEsTUFDZCxhQUFhO0FBQUEsSUFDZjtBQUFBLElBQ0EsRUFBRSxhQUFhLGVBQWUsVUFBVSxjQUFjLHlDQUF5QyxhQUFhLEtBQUs7QUFBQSxJQUNqSDtBQUFBLE1BQ0UsYUFBYSxlQUFlO0FBQUEsTUFDNUIsY0FBYztBQUFBLE1BQ2QsYUFBYTtBQUFBLElBQ2Y7QUFBQSxJQUVBLEVBQUUsYUFBYSxlQUFlLFNBQVMsY0FBYywwQkFBMEIsYUFBYSxLQUFLO0FBQUEsSUFDakcsRUFBRSxhQUFhLGVBQWUsY0FBYyxjQUFjLDRCQUE0QixhQUFhLEtBQUs7QUFBQSxJQUN4RyxFQUFFLGFBQWEsZUFBZSxpQkFBaUIsY0FBYyx1QkFBdUIsYUFBYSxLQUFLO0FBQUEsSUFDdEc7QUFBQSxNQUNFLGFBQWEsZUFBZTtBQUFBLE1BQzVCLGNBQWM7QUFBQSxNQUNkLGFBQWE7QUFBQSxJQUNmO0FBQUEsSUFDQSxFQUFFLGFBQWEsZUFBZSxnQkFBZ0IsY0FBYyw4QkFBOEIsYUFBYSxLQUFLO0FBQUEsSUFDNUcsRUFBRSxhQUFhLGVBQWUsZUFBZSxjQUFjLGlDQUFpQyxhQUFhLEtBQUs7QUFBQSxJQUM5RztBQUFBLE1BQ0UsYUFBYSxlQUFlO0FBQUEsTUFDNUIsY0FBYztBQUFBLE1BQ2QsYUFBYTtBQUFBLElBQ2Y7QUFBQSxJQUNBO0FBQUEsTUFDRSxhQUFhLGVBQWU7QUFBQSxNQUM1QixjQUFjO0FBQUEsTUFDZCxhQUFhO0FBQUEsSUFDZjtBQUFBLElBQ0E7QUFBQSxNQUNFLGFBQWEsZUFBZTtBQUFBLE1BQzVCLGNBQWM7QUFBQSxNQUNkLGFBQWE7QUFBQSxJQUNmO0FBQUEsSUFFQTtBQUFBLE1BQ0UsYUFBYSxlQUFlO0FBQUEsTUFDNUIsY0FBYztBQUFBLE1BQ2QsYUFBYTtBQUFBLElBQ2Y7QUFBQSxJQUNBLEVBQUUsYUFBYSxlQUFlLFdBQVcsY0FBYywyQkFBMkIsYUFBYSxLQUFLO0FBQUEsSUFDcEc7QUFBQSxNQUNFLGFBQWEsZUFBZTtBQUFBLE1BQzVCLGNBQWM7QUFBQSxNQUNkLGFBQWE7QUFBQSxJQUNmO0FBQUEsSUFDQTtBQUFBLE1BQ0UsYUFBYSxlQUFlO0FBQUEsTUFDNUIsY0FBYztBQUFBLE1BQ2QsYUFBYTtBQUFBLElBQ2Y7QUFBQSxJQUNBO0FBQUEsTUFDRSxhQUFhLGVBQWU7QUFBQSxNQUM1QixjQUFjO0FBQUEsTUFDZCxhQUFhO0FBQUEsSUFDZjtBQUFBLElBQ0E7QUFBQSxNQUNFLGFBQWEsZUFBZTtBQUFBLE1BQzVCLGNBQWM7QUFBQSxNQUNkLGFBQWE7QUFBQSxJQUNmO0FBQUEsSUFDQTtBQUFBLE1BQ0UsYUFBYSxlQUFlO0FBQUEsTUFDNUIsY0FBYztBQUFBLE1BQ2QsYUFBYTtBQUFBLElBQ2Y7QUFBQSxJQUNBO0FBQUEsTUFDRSxhQUFhLGVBQWU7QUFBQSxNQUM1QixjQUFjO0FBQUEsTUFDZCxhQUFhO0FBQUEsSUFDZjtBQUFBLEVBQ0Y7QUFBQSxFQUlBLG1CQUFtQjtBQUFBLElBRWpCLEVBQUUsYUFBYSxlQUFlLFlBQVksY0FBYyxvQkFBb0I7QUFBQSxJQUM1RSxFQUFFLGFBQWEsZUFBZSx1QkFBdUIsY0FBYywwQkFBMEI7QUFBQSxJQUM3RjtBQUFBLE1BQ0UsYUFBYSxlQUFlO0FBQUEsTUFDNUIsY0FBYztBQUFBLE1BQ2QsY0FBYztBQUFBLElBQ2hCO0FBQUEsSUFDQSxFQUFFLGFBQWEsZUFBZSxhQUFhLGNBQWMsaUJBQWlCO0FBQUEsSUFDMUUsRUFBRSxhQUFhLGVBQWUsbUJBQW1CLGNBQWMsMkJBQTJCO0FBQUEsSUFFMUYsRUFBRSxhQUFhLGVBQWUsa0JBQWtCLGNBQWMsa0JBQWtCLGFBQWEsS0FBSztBQUFBLElBQ2xHLEVBQUUsYUFBYSxlQUFlLG9CQUFvQixjQUFjLGtCQUFrQixhQUFhLEtBQUs7QUFBQSxJQUNwRztBQUFBLE1BQ0UsYUFBYSxlQUFlO0FBQUEsTUFDNUIsY0FBYztBQUFBLE1BQ2QsYUFBYTtBQUFBLElBQ2Y7QUFBQSxJQUNBO0FBQUEsTUFDRSxhQUFhLGVBQWU7QUFBQSxNQUM1QixjQUFjO0FBQUEsTUFDZCxhQUFhO0FBQUEsTUFDYixjQUFjO0FBQUEsSUFDaEI7QUFBQSxJQUNBLEVBQUUsYUFBYSxlQUFlLG9CQUFvQixjQUFjLGtCQUFrQixhQUFhLEtBQUs7QUFBQSxJQUNwRztBQUFBLE1BQ0UsYUFBYSxlQUFlO0FBQUEsTUFDNUIsY0FBYztBQUFBLE1BQ2QsYUFBYTtBQUFBLElBQ2Y7QUFBQSxJQUNBLEVBQUUsYUFBYSxlQUFlLHVCQUF1QixjQUFjLDZCQUE2QixhQUFhLEtBQUs7QUFBQSxJQUNsSDtBQUFBLE1BQ0UsYUFBYSxlQUFlO0FBQUEsTUFDNUIsY0FBYztBQUFBLE1BQ2QsYUFBYTtBQUFBLElBQ2Y7QUFBQSxJQUNBO0FBQUEsTUFDRSxhQUFhLGVBQWU7QUFBQSxNQUM1QixjQUFjO0FBQUEsTUFDZCxhQUFhO0FBQUEsSUFDZjtBQUFBLElBQ0E7QUFBQSxNQUNFLGFBQWEsZUFBZTtBQUFBLE1BQzVCLGNBQWM7QUFBQSxNQUNkLGFBQWE7QUFBQSxJQUNmO0FBQUEsSUFDQTtBQUFBLE1BQ0UsYUFBYSxlQUFlO0FBQUEsTUFDNUIsY0FBYztBQUFBLE1BQ2QsYUFBYTtBQUFBLElBQ2Y7QUFBQSxJQUNBO0FBQUEsTUFDRSxhQUFhLGVBQWU7QUFBQSxNQUM1QixjQUFjO0FBQUEsTUFDZCxhQUFhO0FBQUEsSUFDZjtBQUFBLElBQ0E7QUFBQSxNQUNFLGFBQWEsZUFBZTtBQUFBLE1BQzVCLGNBQWM7QUFBQSxNQUNkLGFBQWE7QUFBQSxJQUNmO0FBQUEsSUFDQTtBQUFBLE1BQ0UsYUFBYSxlQUFlO0FBQUEsTUFDNUIsY0FBYztBQUFBLE1BQ2QsYUFBYTtBQUFBLElBQ2Y7QUFBQSxJQUNBLEVBQUUsYUFBYSxlQUFlLGtCQUFrQixjQUFjLGdDQUFnQyxhQUFhLEtBQUs7QUFBQSxJQUNoSDtBQUFBLE1BQ0UsYUFBYSxlQUFlO0FBQUEsTUFDNUIsY0FBYztBQUFBLE1BQ2QsYUFBYTtBQUFBLElBQ2Y7QUFBQSxJQUNBO0FBQUEsTUFDRSxhQUFhLGVBQWU7QUFBQSxNQUM1QixjQUFjO0FBQUEsTUFDZCxhQUFhO0FBQUEsTUFDYixjQUFjO0FBQUEsSUFDaEI7QUFBQSxJQUNBLEVBQUUsYUFBYSxlQUFlLGdCQUFnQixjQUFjLHlCQUF5QixhQUFhLEtBQUs7QUFBQSxJQUV2RztBQUFBLE1BQ0UsYUFBYSxlQUFlO0FBQUEsTUFDNUIsY0FBYztBQUFBLE1BQ2QsYUFBYTtBQUFBLElBQ2Y7QUFBQSxJQUNBO0FBQUEsTUFDRSxhQUFhLGVBQWU7QUFBQSxNQUM1QixjQUFjO0FBQUEsTUFDZCxhQUFhO0FBQUEsSUFDZjtBQUFBLElBQ0EsRUFBRSxhQUFhLGVBQWUsVUFBVSxjQUFjLHlDQUF5QyxhQUFhLEtBQUs7QUFBQSxJQUNqSDtBQUFBLE1BQ0UsYUFBYSxlQUFlO0FBQUEsTUFDNUIsY0FBYztBQUFBLE1BQ2QsYUFBYTtBQUFBLElBQ2Y7QUFBQSxJQUNBLEVBQUUsYUFBYSxlQUFlLFdBQVcsY0FBYywyQkFBMkIsYUFBYSxLQUFLO0FBQUEsRUFDdEc7QUFBQSxFQUlBLGtCQUFrQjtBQUFBLElBRWhCLEVBQUUsYUFBYSxlQUFlLFlBQVksY0FBYyxvQkFBb0I7QUFBQSxJQUM1RSxFQUFFLGFBQWEsZUFBZSx1QkFBdUIsY0FBYywwQkFBMEI7QUFBQSxJQUM3RjtBQUFBLE1BQ0UsYUFBYSxlQUFlO0FBQUEsTUFDNUIsY0FBYztBQUFBLE1BQ2QsY0FBYztBQUFBLElBQ2hCO0FBQUEsSUFDQSxFQUFFLGFBQWEsZUFBZSxhQUFhLGNBQWMsaUJBQWlCO0FBQUEsSUFDMUUsRUFBRSxhQUFhLGVBQWUsbUJBQW1CLGNBQWMsMkJBQTJCO0FBQUEsSUFFMUYsRUFBRSxhQUFhLGVBQWUsa0JBQWtCLGNBQWMsa0JBQWtCLGFBQWEsS0FBSztBQUFBLElBQ2xHLEVBQUUsYUFBYSxlQUFlLG9CQUFvQixjQUFjLGtCQUFrQixhQUFhLEtBQUs7QUFBQSxJQUNwRztBQUFBLE1BQ0UsYUFBYSxlQUFlO0FBQUEsTUFDNUIsY0FBYztBQUFBLE1BQ2QsYUFBYTtBQUFBLElBQ2Y7QUFBQSxJQUNBO0FBQUEsTUFDRSxhQUFhLGVBQWU7QUFBQSxNQUM1QixjQUFjO0FBQUEsTUFDZCxhQUFhO0FBQUEsTUFDYixjQUFjO0FBQUEsSUFDaEI7QUFBQSxJQUNBLEVBQUUsYUFBYSxlQUFlLG9CQUFvQixjQUFjLGtCQUFrQixhQUFhLEtBQUs7QUFBQSxJQUNwRztBQUFBLE1BQ0UsYUFBYSxlQUFlO0FBQUEsTUFDNUIsY0FBYztBQUFBLE1BQ2QsYUFBYTtBQUFBLElBQ2Y7QUFBQSxJQUNBLEVBQUUsYUFBYSxlQUFlLHVCQUF1QixjQUFjLDZCQUE2QixhQUFhLEtBQUs7QUFBQSxJQUNsSDtBQUFBLE1BQ0UsYUFBYSxlQUFlO0FBQUEsTUFDNUIsY0FBYztBQUFBLE1BQ2QsYUFBYTtBQUFBLElBQ2Y7QUFBQSxJQUNBO0FBQUEsTUFDRSxhQUFhLGVBQWU7QUFBQSxNQUM1QixjQUFjO0FBQUEsTUFDZCxhQUFhO0FBQUEsSUFDZjtBQUFBLElBQ0E7QUFBQSxNQUNFLGFBQWEsZUFBZTtBQUFBLE1BQzVCLGNBQWM7QUFBQSxNQUNkLGFBQWE7QUFBQSxJQUNmO0FBQUEsSUFDQTtBQUFBLE1BQ0UsYUFBYSxlQUFlO0FBQUEsTUFDNUIsY0FBYztBQUFBLE1BQ2QsYUFBYTtBQUFBLElBQ2Y7QUFBQSxJQUNBO0FBQUEsTUFDRSxhQUFhLGVBQWU7QUFBQSxNQUM1QixjQUFjO0FBQUEsTUFDZCxhQUFhO0FBQUEsSUFDZjtBQUFBLElBQ0E7QUFBQSxNQUNFLGFBQWEsZUFBZTtBQUFBLE1BQzVCLGNBQWM7QUFBQSxNQUNkLGFBQWE7QUFBQSxJQUNmO0FBQUEsSUFDQTtBQUFBLE1BQ0UsYUFBYSxlQUFlO0FBQUEsTUFDNUIsY0FBYztBQUFBLE1BQ2QsYUFBYTtBQUFBLElBQ2Y7QUFBQSxJQUNBLEVBQUUsYUFBYSxlQUFlLGtCQUFrQixjQUFjLGdDQUFnQyxhQUFhLEtBQUs7QUFBQSxJQUNoSDtBQUFBLE1BQ0UsYUFBYSxlQUFlO0FBQUEsTUFDNUIsY0FBYztBQUFBLE1BQ2QsYUFBYTtBQUFBLElBQ2Y7QUFBQSxJQUNBO0FBQUEsTUFDRSxhQUFhLGVBQWU7QUFBQSxNQUM1QixjQUFjO0FBQUEsTUFDZCxhQUFhO0FBQUEsTUFDYixjQUFjO0FBQUEsSUFDaEI7QUFBQSxJQUNBLEVBQUUsYUFBYSxlQUFlLGdCQUFnQixjQUFjLHlCQUF5QixhQUFhLEtBQUs7QUFBQSxJQUN2RztBQUFBLE1BQ0UsYUFBYSxlQUFlO0FBQUEsTUFDNUIsY0FBYztBQUFBLE1BQ2QsYUFBYTtBQUFBLElBQ2Y7QUFBQSxFQUNGO0FBQUEsRUFHQSxhQUFhO0FBQUEsSUFDWCxFQUFFLGFBQWEsZUFBZSxpQ0FBaUMsY0FBYyw0QkFBNEI7QUFBQSxJQUN6RyxFQUFFLGFBQWEsZUFBZSxRQUFRLGNBQWMsa0JBQWtCO0FBQUEsSUFDdEUsRUFBRSxhQUFhLGVBQWUsY0FBYyxjQUFjLHlCQUF5QixhQUFhLEtBQUs7QUFBQSxJQUNyRztBQUFBLE1BQ0UsYUFBYSxlQUFlO0FBQUEsTUFDNUIsY0FBYztBQUFBLE1BQ2QsYUFBYTtBQUFBLElBQ2Y7QUFBQSxJQUNBO0FBQUEsTUFDRSxhQUFhLGVBQWU7QUFBQSxNQUM1QixjQUFjO0FBQUEsTUFDZCxhQUFhO0FBQUEsSUFDZjtBQUFBLElBQ0E7QUFBQSxNQUNFLGFBQWEsZUFBZTtBQUFBLE1BQzVCLGNBQWM7QUFBQSxNQUNkLGFBQWE7QUFBQSxJQUNmO0FBQUEsSUFDQTtBQUFBLE1BQ0UsYUFBYSxlQUFlO0FBQUEsTUFDNUIsY0FBYztBQUFBLE1BQ2QsYUFBYTtBQUFBLElBQ2Y7QUFBQSxJQUNBO0FBQUEsTUFDRSxhQUFhLGVBQWU7QUFBQSxNQUM1QixjQUFjO0FBQUEsTUFDZCxhQUFhO0FBQUEsSUFDZjtBQUFBLElBQ0E7QUFBQSxNQUNFLGFBQWEsZUFBZTtBQUFBLE1BQzVCLGNBQWM7QUFBQSxNQUNkLGFBQWE7QUFBQSxJQUNmO0FBQUEsSUFDQTtBQUFBLE1BQ0UsYUFBYSxlQUFlO0FBQUEsTUFDNUIsY0FBYztBQUFBLE1BQ2QsYUFBYTtBQUFBLElBQ2Y7QUFBQSxJQUNBLEVBQUUsYUFBYSxlQUFlLFdBQVcsY0FBYywyQkFBMkIsYUFBYSxLQUFLO0FBQUEsSUFDcEcsRUFBRSxhQUFhLGVBQWUsWUFBWSxjQUFjLGlCQUFpQjtBQUFBLElBQ3pFLEVBQUUsYUFBYSxlQUFlLFFBQVEsY0FBYyx3QkFBd0I7QUFBQSxJQUM1RSxFQUFFLGFBQWEsZUFBZSxnQkFBZ0IsY0FBYyx1QkFBdUIsYUFBYSxLQUFLO0FBQUEsSUFDckcsRUFBRSxhQUFhLGVBQWUsV0FBVyxjQUFjLG9CQUFvQixhQUFhLEtBQUs7QUFBQSxFQUMvRjtBQUFBLEVBR0EsWUFBWTtBQUFBLElBQ1YsRUFBRSxhQUFhLGVBQWUsaUNBQWlDLGNBQWMsNEJBQTRCO0FBQUEsSUFDekcsRUFBRSxhQUFhLGVBQWUsUUFBUSxjQUFjLGtCQUFrQjtBQUFBLElBQ3RFLEVBQUUsYUFBYSxlQUFlLGNBQWMsY0FBYyx5QkFBeUIsYUFBYSxLQUFLO0FBQUEsSUFDckc7QUFBQSxNQUNFLGFBQWEsZUFBZTtBQUFBLE1BQzVCLGNBQWM7QUFBQSxNQUNkLGFBQWE7QUFBQSxJQUNmO0FBQUEsSUFDQTtBQUFBLE1BQ0UsYUFBYSxlQUFlO0FBQUEsTUFDNUIsY0FBYztBQUFBLE1BQ2QsYUFBYTtBQUFBLElBQ2Y7QUFBQSxJQUNBO0FBQUEsTUFDRSxhQUFhLGVBQWU7QUFBQSxNQUM1QixjQUFjO0FBQUEsTUFDZCxhQUFhO0FBQUEsSUFDZjtBQUFBLElBQ0E7QUFBQSxNQUNFLGFBQWEsZUFBZTtBQUFBLE1BQzVCLGNBQWM7QUFBQSxNQUNkLGFBQWE7QUFBQSxJQUNmO0FBQUEsSUFDQTtBQUFBLE1BQ0UsYUFBYSxlQUFlO0FBQUEsTUFDNUIsY0FBYztBQUFBLE1BQ2QsYUFBYTtBQUFBLElBQ2Y7QUFBQSxJQUNBO0FBQUEsTUFDRSxhQUFhLGVBQWU7QUFBQSxNQUM1QixjQUFjO0FBQUEsTUFDZCxhQUFhO0FBQUEsSUFDZjtBQUFBLElBQ0E7QUFBQSxNQUNFLGFBQWEsZUFBZTtBQUFBLE1BQzVCLGNBQWM7QUFBQSxNQUNkLGFBQWE7QUFBQSxJQUNmO0FBQUEsSUFDQSxFQUFFLGFBQWEsZUFBZSxXQUFXLGNBQWMsMkJBQTJCLGFBQWEsS0FBSztBQUFBLElBQ3BHLEVBQUUsYUFBYSxlQUFlLFlBQVksY0FBYyxpQkFBaUI7QUFBQSxJQUN6RSxFQUFFLGFBQWEsZUFBZSxRQUFRLGNBQWMsd0JBQXdCO0FBQUEsSUFDNUUsRUFBRSxhQUFhLGVBQWUsZ0JBQWdCLGNBQWMsdUJBQXVCLGFBQWEsS0FBSztBQUFBLElBQ3JHLEVBQUUsYUFBYSxlQUFlLFdBQVcsY0FBYyxvQkFBb0IsYUFBYSxLQUFLO0FBQUEsRUFDL0Y7QUFBQSxFQUdBLGlCQUFpQjtBQUFBLElBQ2YsRUFBRSxhQUFhLGVBQWUsaUNBQWlDLGNBQWMsNEJBQTRCO0FBQUEsSUFDekcsRUFBRSxhQUFhLGVBQWUsUUFBUSxjQUFjLGtCQUFrQjtBQUFBLElBQ3RFLEVBQUUsYUFBYSxlQUFlLGNBQWMsY0FBYyx5QkFBeUIsYUFBYSxLQUFLO0FBQUEsSUFDckc7QUFBQSxNQUNFLGFBQWEsZUFBZTtBQUFBLE1BQzVCLGNBQWM7QUFBQSxNQUNkLGFBQWE7QUFBQSxJQUNmO0FBQUEsSUFDQTtBQUFBLE1BQ0UsYUFBYSxlQUFlO0FBQUEsTUFDNUIsY0FBYztBQUFBLE1BQ2QsYUFBYTtBQUFBLElBQ2Y7QUFBQSxJQUNBO0FBQUEsTUFDRSxhQUFhLGVBQWU7QUFBQSxNQUM1QixjQUFjO0FBQUEsTUFDZCxhQUFhO0FBQUEsSUFDZjtBQUFBLElBQ0E7QUFBQSxNQUNFLGFBQWEsZUFBZTtBQUFBLE1BQzVCLGNBQWM7QUFBQSxNQUNkLGFBQWE7QUFBQSxJQUNmO0FBQUEsSUFDQTtBQUFBLE1BQ0UsYUFBYSxlQUFlO0FBQUEsTUFDNUIsY0FBYztBQUFBLE1BQ2QsYUFBYTtBQUFBLElBQ2Y7QUFBQSxJQUNBO0FBQUEsTUFDRSxhQUFhLGVBQWU7QUFBQSxNQUM1QixjQUFjO0FBQUEsTUFDZCxhQUFhO0FBQUEsSUFDZjtBQUFBLElBQ0E7QUFBQSxNQUNFLGFBQWEsZUFBZTtBQUFBLE1BQzVCLGNBQWM7QUFBQSxNQUNkLGFBQWE7QUFBQSxJQUNmO0FBQUEsSUFDQSxFQUFFLGFBQWEsZUFBZSxXQUFXLGNBQWMsMkJBQTJCLGFBQWEsS0FBSztBQUFBLElBQ3BHLEVBQUUsYUFBYSxlQUFlLFlBQVksY0FBYyxpQkFBaUI7QUFBQSxJQUN6RSxFQUFFLGFBQWEsZUFBZSxRQUFRLGNBQWMsd0JBQXdCO0FBQUEsSUFDNUUsRUFBRSxhQUFhLGVBQWUsZ0JBQWdCLGNBQWMsdUJBQXVCLGFBQWEsS0FBSztBQUFBLElBQ3JHLEVBQUUsYUFBYSxlQUFlLFdBQVcsY0FBYyxvQkFBb0IsYUFBYSxLQUFLO0FBQUEsRUFDL0Y7QUFBQSxFQUdBLGtCQUFrQjtBQUFBLElBQ2hCLEVBQUUsYUFBYSxlQUFlLGlDQUFpQyxjQUFjLDRCQUE0QjtBQUFBLElBQ3pHLEVBQUUsYUFBYSxlQUFlLFFBQVEsY0FBYyxrQkFBa0I7QUFBQSxJQUN0RSxFQUFFLGFBQWEsZUFBZSxjQUFjLGNBQWMseUJBQXlCLGFBQWEsS0FBSztBQUFBLElBQ3JHO0FBQUEsTUFDRSxhQUFhLGVBQWU7QUFBQSxNQUM1QixjQUFjO0FBQUEsTUFDZCxhQUFhO0FBQUEsSUFDZjtBQUFBLElBQ0E7QUFBQSxNQUNFLGFBQWEsZUFBZTtBQUFBLE1BQzVCLGNBQWM7QUFBQSxNQUNkLGFBQWE7QUFBQSxJQUNmO0FBQUEsSUFDQTtBQUFBLE1BQ0UsYUFBYSxlQUFlO0FBQUEsTUFDNUIsY0FBYztBQUFBLE1BQ2QsYUFBYTtBQUFBLElBQ2Y7QUFBQSxJQUNBO0FBQUEsTUFDRSxhQUFhLGVBQWU7QUFBQSxNQUM1QixjQUFjO0FBQUEsTUFDZCxhQUFhO0FBQUEsSUFDZjtBQUFBLElBQ0E7QUFBQSxNQUNFLGFBQWEsZUFBZTtBQUFBLE1BQzVCLGNBQWM7QUFBQSxNQUNkLGFBQWE7QUFBQSxJQUNmO0FBQUEsSUFDQTtBQUFBLE1BQ0UsYUFBYSxlQUFlO0FBQUEsTUFDNUIsY0FBYztBQUFBLE1BQ2QsYUFBYTtBQUFBLElBQ2Y7QUFBQSxJQUNBO0FBQUEsTUFDRSxhQUFhLGVBQWU7QUFBQSxNQUM1QixjQUFjO0FBQUEsTUFDZCxhQUFhO0FBQUEsSUFDZjtBQUFBLElBQ0EsRUFBRSxhQUFhLGVBQWUsV0FBVyxjQUFjLDJCQUEyQixhQUFhLEtBQUs7QUFBQSxJQUNwRyxFQUFFLGFBQWEsZUFBZSxZQUFZLGNBQWMsaUJBQWlCO0FBQUEsSUFDekUsRUFBRSxhQUFhLGVBQWUsUUFBUSxjQUFjLHdCQUF3QjtBQUFBLElBQzVFLEVBQUUsYUFBYSxlQUFlLGdCQUFnQixjQUFjLHVCQUF1QixhQUFhLEtBQUs7QUFBQSxJQUNyRyxFQUFFLGFBQWEsZUFBZSxXQUFXLGNBQWMsb0JBQW9CLGFBQWEsS0FBSztBQUFBLEVBQy9GO0FBQUEsRUFHQSxnQkFBZ0I7QUFBQSxJQUNkLEVBQUUsYUFBYSxlQUFlLGlDQUFpQyxjQUFjLDRCQUE0QjtBQUFBLElBQ3pHLEVBQUUsYUFBYSxlQUFlLFFBQVEsY0FBYyxrQkFBa0I7QUFBQSxJQUN0RSxFQUFFLGFBQWEsZUFBZSxjQUFjLGNBQWMseUJBQXlCLGFBQWEsS0FBSztBQUFBLElBQ3JHO0FBQUEsTUFDRSxhQUFhLGVBQWU7QUFBQSxNQUM1QixjQUFjO0FBQUEsTUFDZCxhQUFhO0FBQUEsSUFDZjtBQUFBLElBQ0E7QUFBQSxNQUNFLGFBQWEsZUFBZTtBQUFBLE1BQzVCLGNBQWM7QUFBQSxNQUNkLGFBQWE7QUFBQSxJQUNmO0FBQUEsSUFDQTtBQUFBLE1BQ0UsYUFBYSxlQUFlO0FBQUEsTUFDNUIsY0FBYztBQUFBLE1BQ2QsYUFBYTtBQUFBLElBQ2Y7QUFBQSxJQUNBO0FBQUEsTUFDRSxhQUFhLGVBQWU7QUFBQSxNQUM1QixjQUFjO0FBQUEsTUFDZCxhQUFhO0FBQUEsSUFDZjtBQUFBLElBQ0E7QUFBQSxNQUNFLGFBQWEsZUFBZTtBQUFBLE1BQzVCLGNBQWM7QUFBQSxNQUNkLGFBQWE7QUFBQSxJQUNmO0FBQUEsSUFDQTtBQUFBLE1BQ0UsYUFBYSxlQUFlO0FBQUEsTUFDNUIsY0FBYztBQUFBLE1BQ2QsYUFBYTtBQUFBLElBQ2Y7QUFBQSxJQUNBO0FBQUEsTUFDRSxhQUFhLGVBQWU7QUFBQSxNQUM1QixjQUFjO0FBQUEsTUFDZCxhQUFhO0FBQUEsSUFDZjtBQUFBLElBQ0EsRUFBRSxhQUFhLGVBQWUsV0FBVyxjQUFjLDJCQUEyQixhQUFhLEtBQUs7QUFBQSxJQUNwRyxFQUFFLGFBQWEsZUFBZSxZQUFZLGNBQWMsaUJBQWlCO0FBQUEsSUFDekUsRUFBRSxhQUFhLGVBQWUsUUFBUSxjQUFjLHdCQUF3QjtBQUFBLElBQzVFLEVBQUUsYUFBYSxlQUFlLGdCQUFnQixjQUFjLHVCQUF1QixhQUFhLEtBQUs7QUFBQSxJQUNyRyxFQUFFLGFBQWEsZUFBZSxXQUFXLGNBQWMsb0JBQW9CLGFBQWEsS0FBSztBQUFBLEVBQy9GO0FBQUEsRUFHQSxhQUFhO0FBQUEsSUFDWCxFQUFFLGFBQWEsZUFBZSxpQ0FBaUMsY0FBYyw0QkFBNEI7QUFBQSxJQUN6RyxFQUFFLGFBQWEsZUFBZSxRQUFRLGNBQWMsa0JBQWtCO0FBQUEsSUFDdEUsRUFBRSxhQUFhLGVBQWUsY0FBYyxjQUFjLHlCQUF5QixhQUFhLEtBQUs7QUFBQSxJQUNyRztBQUFBLE1BQ0UsYUFBYSxlQUFlO0FBQUEsTUFDNUIsY0FBYztBQUFBLE1BQ2QsYUFBYTtBQUFBLElBQ2Y7QUFBQSxJQUNBO0FBQUEsTUFDRSxhQUFhLGVBQWU7QUFBQSxNQUM1QixjQUFjO0FBQUEsTUFDZCxhQUFhO0FBQUEsSUFDZjtBQUFBLElBQ0E7QUFBQSxNQUNFLGFBQWEsZUFBZTtBQUFBLE1BQzVCLGNBQWM7QUFBQSxNQUNkLGFBQWE7QUFBQSxJQUNmO0FBQUEsSUFDQTtBQUFBLE1BQ0UsYUFBYSxlQUFlO0FBQUEsTUFDNUIsY0FBYztBQUFBLE1BQ2QsYUFBYTtBQUFBLElBQ2Y7QUFBQSxJQUNBO0FBQUEsTUFDRSxhQUFhLGVBQWU7QUFBQSxNQUM1QixjQUFjO0FBQUEsTUFDZCxhQUFhO0FBQUEsSUFDZjtBQUFBLElBQ0E7QUFBQSxNQUNFLGFBQWEsZUFBZTtBQUFBLE1BQzVCLGNBQWM7QUFBQSxNQUNkLGFBQWE7QUFBQSxJQUNmO0FBQUEsSUFDQTtBQUFBLE1BQ0UsYUFBYSxlQUFlO0FBQUEsTUFDNUIsY0FBYztBQUFBLE1BQ2QsYUFBYTtBQUFBLElBQ2Y7QUFBQSxJQUNBLEVBQUUsYUFBYSxlQUFlLFdBQVcsY0FBYywyQkFBMkIsYUFBYSxLQUFLO0FBQUEsSUFDcEcsRUFBRSxhQUFhLGVBQWUsWUFBWSxjQUFjLGlCQUFpQjtBQUFBLElBQ3pFLEVBQUUsYUFBYSxlQUFlLFFBQVEsY0FBYyx3QkFBd0I7QUFBQSxJQUM1RSxFQUFFLGFBQWEsZUFBZSxnQkFBZ0IsY0FBYyx1QkFBdUIsYUFBYSxLQUFLO0FBQUEsSUFDckcsRUFBRSxhQUFhLGVBQWUsV0FBVyxjQUFjLG9CQUFvQixhQUFhLEtBQUs7QUFBQSxFQUMvRjtBQUFBLEVBR0EsNEJBQTRCLENBQUM7QUFBQSxFQUM3Qiw4QkFBOEIsQ0FBQztBQUFBLEVBQy9CLHFCQUFxQixDQUFDO0FBQUEsRUFDdEIscUJBQXFCLENBQUM7QUFDeEI7OztBQ3IxQ0EsSUFBTSwwQkFBMEIsT0FBTyxJQUFJLDZCQUE2QjtBQUN4RSxJQUFNLGdCQUFnQixPQUFPLElBQUksbUJBQW1CO0FBQ3BELElBQU0sc0JBQXNCLE9BQU8sSUFBSSx5QkFBeUI7QUFDaEUsSUFBTSxxQkFBcUIsT0FBTyxJQUFJLHdCQUF3QjtBQUM5RCxJQUFNLHNCQUFzQixPQUFPLElBQUkseUJBQXlCO0FBQ2hFLElBQU0sd0JBQXdCLE9BQU8sSUFBSSwyQkFBMkI7QUFDcEUsSUFBTSx5QkFBeUIsT0FBTyxJQUFJLDhCQUE4QjtBQUN4RSxJQUFNLDJCQUEyQixPQUFPLElBQUksZ0NBQWdDO0FBQzVFLElBQU0sY0FBYyxPQUFPLElBQUksbUJBQW1CO0FBR2xELElBQU0saUJBQWlCLENBQUMsVUFDdEIsVUFBVSxRQUFRLE9BQU8sVUFBVSxhQUFZLHlCQUF5QjtBQUUxRSxJQUFNLHVCQUF1QixDQUFDLFVBQzVCLFVBQVUsUUFBUSxPQUFPLFVBQVUsYUFBWSw0QkFBNEI7QUFFN0UsSUFBTSxVQUFVLENBQUMsVUFBbUMsVUFBVSxRQUFRLE9BQU8sVUFBVSxhQUFZLGVBQWU7QUFFbEgsSUFBTSwyQkFBMkIsQ0FBQyxVQUNoQyxVQUFVLFFBQVEsT0FBTyxVQUFVLGFBQVksMEJBQTBCO0FBRTNFLElBQU0scUJBQXFCLE9BQU8sSUFBSSxrQ0FBa0M7QUFFeEUsSUFBTSx5QkFBeUIsQ0FBQyxVQUM5QixVQUFVLFFBQVEsT0FBTyxVQUFVLGFBQVksc0JBQXNCO0FBQUE7QUFPdkUsTUFBTSxxQkFBcUI7QUFBQSxFQUNqQjtBQUFBLEdBQ0Usc0JBQXNCO0FBQUEsRUFFaEMsV0FBVyxDQUFDLFVBQXdCO0FBQUEsSUFDbEMsS0FBSyxhQUFhO0FBQUE7QUFBQSxFQUdwQixPQUFPLEdBQVc7QUFBQSxJQUVoQixNQUFNLE9BQVEsS0FBSyxXQUFtQjtBQUFBLElBQ3RDLElBQUksU0FBUyxXQUFXO0FBQUEsTUFDdEIsTUFBTSxJQUFJLE1BQ1Isa0dBQ0UsaUVBQ0o7QUFBQSxJQUNGO0FBQUEsSUFDQSxPQUFPO0FBQUE7QUFBQSxFQUdULFFBQVEsR0FBVztBQUFBLElBQ2pCLE9BQU8sS0FBSyxRQUFRO0FBQUE7QUFBQSxFQUd0QixNQUFNLEdBQVc7QUFBQSxJQUNmLE9BQU8sS0FBSyxRQUFRO0FBQUE7QUFBQSxFQUd0QixPQUFPLEdBQVc7QUFBQSxJQUNoQixPQUFPLEtBQUssUUFBUTtBQUFBO0FBRXhCO0FBQUE7QUFNTyxNQUFNLHVCQUF1QjtBQUFBLEVBQzFCO0FBQUEsRUFDQTtBQUFBLEdBQ0UsMEJBQTBCO0FBQUEsRUFFcEMsV0FBVyxDQUFDLFVBQXdCLE9BQWU7QUFBQSxJQUNqRCxLQUFLLGFBQWE7QUFBQSxJQUNsQixLQUFLLFVBQVU7QUFBQTtBQUFBLEVBR2pCLFFBQVEsR0FBVztBQUFBLElBQ2pCLE9BQU8sbUJBQW1CLEtBQUssV0FBVyxtQkFBbUIsS0FBSztBQUFBO0FBQUEsRUFHcEUsTUFBTSxHQUFXO0FBQUEsSUFDZixPQUFPLEtBQUssU0FBUztBQUFBO0FBQUEsRUFJdkIsT0FBTyxHQUFXO0FBQUEsSUFDaEIsT0FBTyxLQUFLLFNBQVM7QUFBQTtBQUV6QjtBQUFBO0FBS08sTUFBTSxtQkFBbUI7QUFBQSxFQUNkO0FBQUEsRUFDQTtBQUFBLEdBQ04sNEJBQTRCO0FBQUEsRUFFdEMsV0FBVyxDQUFDLE1BQWMsWUFBaUI7QUFBQSxJQUN6QyxLQUFLLE9BQU87QUFBQSxJQUNaLEtBQUssYUFBYTtBQUFBO0FBRXRCO0FBQUE7QUFLTyxNQUFNLGFBQWE7QUFBQSxFQUNSO0FBQUEsR0FDTiw0QkFBNEI7QUFBQSxFQUV0QyxXQUFXLENBQUMsTUFBYztBQUFBLElBQ3hCLEtBQUssT0FBTztBQUFBO0FBRWhCO0FBQUE7QUFrQk8sTUFBTSxNQUFNO0FBQUEsR0FDUCxlQUFlO0FBQUEsRUFDVDtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBRWhCLFdBQVcsQ0FBQyxPQUE4RjtBQUFBLElBQ3hHLEtBQUssVUFBVSxNQUFNO0FBQUEsSUFDckIsS0FBSyxhQUFhLE1BQU07QUFBQSxJQUN4QixLQUFLLHNCQUFzQixNQUFNO0FBQUEsSUFDakMsS0FBSyxjQUFjLE1BQU07QUFBQTtBQUU3QjtBQUFBO0FBS08sTUFBTSxhQUFhO0FBQUEsRUFDUDtBQUFBLEVBQ1Q7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFFUixXQUFXLENBQUMsTUFBMEIsTUFBYyxZQUFpQixXQUFpQjtBQUFBLElBQ3BGLEtBQUssZ0JBQWdCO0FBQUEsSUFDckIsS0FBSyxnQkFBZ0IsU0FBUztBQUFBLElBQzlCLEtBQUssUUFBUTtBQUFBLElBR2IsS0FBSyxjQUFjO0FBQUEsSUFDbkIsS0FBSyxhQUFhO0FBQUEsSUFHbEIsSUFBSSxTQUFTLFdBQVc7QUFBQSxNQUN0QixLQUFLLCtCQUErQjtBQUFBLElBQ3RDO0FBQUE7QUFBQSxFQU9NLDhCQUE4QixHQUFTO0FBQUEsSUFDN0MsTUFBTSxhQUFhLEtBQUs7QUFBQSxJQUN4QixJQUFJLGNBQWMsT0FBTyxlQUFlLFVBQVU7QUFBQSxNQUVoRCxNQUFNLGtCQUFrQixLQUFLLFdBQVc7QUFBQSxNQUd4QyxJQUFJLGVBQWUsaUJBQWlCO0FBQUEsUUFDbEMsTUFBTSxzQkFBc0IsZ0JBQWdCO0FBQUEsUUFDNUMsT0FBTyxnQkFBZ0I7QUFBQSxRQUd2QixJQUFJLHVCQUF1QixPQUFPLHdCQUF3QixVQUFVO0FBQUEsVUFDbEUsS0FBSyxhQUFhLGlDQUFpQyxLQUFLLGVBQWdCLEtBQUssT0FBTyxtQkFBbUI7QUFBQSxRQUN6RztBQUFBLE1BQ0Y7QUFBQSxNQUdBLElBQUksZ0JBQWdCLGlCQUFpQjtBQUFBLFFBQ25DLE1BQU0sdUJBQXVCLGdCQUFnQjtBQUFBLFFBQzdDLE9BQU8sZ0JBQWdCO0FBQUEsUUFHdkIsSUFBSSx3QkFBd0IsT0FBTyx5QkFBeUIsVUFBVTtBQUFBLFVBQ3BFLEtBQUssY0FBYyxrQ0FBa0MsS0FBSyxlQUFnQixLQUFLLE9BQU8sb0JBQW9CO0FBQUEsUUFDNUc7QUFBQSxNQUNGO0FBQUEsTUFFQSxLQUFLLGNBQWM7QUFBQSxJQUNyQjtBQUFBLElBSUEsSUFBSSxLQUFLLGNBQWMsT0FBTyxLQUFLLGVBQWUsVUFBVTtBQUFBLE1BQzFELEtBQUssYUFBYSxpQ0FBaUMsS0FBSyxlQUFnQixLQUFLLE9BQU8sS0FBSyxVQUFVO0FBQUEsSUFDckc7QUFBQSxJQUNBLElBQUksS0FBSyxlQUFlLE9BQU8sS0FBSyxnQkFBZ0IsVUFBVTtBQUFBLE1BQzVELEtBQUssY0FBYyxrQ0FBa0MsS0FBSyxlQUFnQixLQUFLLE9BQU8sS0FBSyxXQUFXO0FBQUEsSUFDeEc7QUFBQTtBQUFBLE1BS0UsWUFBWSxHQUFXO0FBQUEsSUFDekIsSUFBSSxLQUFLLGtCQUFrQixXQUFXO0FBQUEsTUFHcEMsT0FBTyxJQUFJLHFCQUFxQixJQUFJO0FBQUEsSUFDdEM7QUFBQSxJQUNBLE9BQU8sS0FBSztBQUFBO0FBQUEsR0FPYixzQkFBc0IsQ0FBQyxNQUFvQjtBQUFBLElBQzFDLElBQUksS0FBSyxpQkFBaUIsS0FBSyxrQkFBa0IsTUFBTTtBQUFBLE1BRXJEO0FBQUEsSUFDRjtBQUFBLElBQ0EsSUFBSSxLQUFLLGtCQUFrQixXQUFXO0FBQUEsTUFDcEMsS0FBSyxnQkFBZ0I7QUFBQSxNQUVyQixLQUFLLCtCQUErQjtBQUFBLElBQ3RDO0FBQUE7QUFBQSxHQUlELHdCQUF3QixDQUFDLFdBQTJDO0FBQUEsSUFDbkUsT0FBTyxJQUFJLHVCQUF1QixNQUFNLFNBQVM7QUFBQTtBQUFBLEdBR2xELGNBQWMsR0FBVztBQUFBLElBQ3hCLE9BQU8sS0FBSztBQUFBO0FBQUEsR0FHYixvQkFBb0IsR0FBUTtBQUFBLElBQzNCLE9BQU8sS0FBSztBQUFBO0FBQUEsR0FHYixtQkFBbUIsR0FBb0I7QUFBQSxJQUN0QyxPQUFPLEtBQUs7QUFBQTtBQUFBLEdBR2Isb0JBQW9CLEdBQW9CO0FBQUEsSUFDdkMsT0FBTyxLQUFLO0FBQUE7QUFFaEI7QUFPQSxTQUFTLG9CQUFvQixDQUFDLEtBQVUsU0FBUyxJQUF5QjtBQUFBLEVBQ3hFLE1BQU0sU0FBOEIsQ0FBQztBQUFBLEVBRXJDLFdBQVcsT0FBTyxLQUFLO0FBQUEsSUFDckIsTUFBTSxRQUFRLElBQUk7QUFBQSxJQUNsQixNQUFNLFNBQVMsU0FBUyxHQUFHLFVBQVUsUUFBUTtBQUFBLElBRzdDLElBQUksVUFBVSxRQUFRLE9BQU8sVUFBVSxZQUFZLENBQUMsTUFBTSxRQUFRLEtBQUssS0FBSyxNQUFNLGdCQUFnQixRQUFRO0FBQUEsTUFFeEcsT0FBTyxPQUFPLFFBQVEscUJBQXFCLE9BQU8sTUFBTSxDQUFDO0FBQUEsSUFDM0QsRUFBTztBQUFBLE1BRUwsT0FBTyxVQUFVO0FBQUE7QUFBQSxFQUVyQjtBQUFBLEVBRUEsT0FBTztBQUFBO0FBT1QsU0FBUyxnQ0FBZ0MsQ0FBQyxjQUFzQixjQUFzQixXQUFxQjtBQUFBLEVBRXpHLE1BQU0saUJBQWlCLGdCQUFnQixpQkFBaUIsQ0FBQztBQUFBLEVBR3pELE1BQU0sa0JBQWtCLElBQUk7QUFBQSxFQUU1QixXQUFXLGlCQUFpQixnQkFBZ0I7QUFBQSxJQUUxQyxJQUFJLGNBQWMsZUFBZSxjQUFjLFlBQVksTUFBTTtBQUFBLE1BQy9ELGdCQUFnQixJQUFJLGNBQWMsWUFBWSxNQUFNLGFBQWE7QUFBQSxJQUNuRTtBQUFBLEVBQ0Y7QUFBQSxFQUdBLE1BQU0sdUJBQTRCLENBQUM7QUFBQSxFQUNuQyxNQUFNLGVBQWUsbURBQW1EO0FBQUE7QUFBQTtBQUFBLEVBR3hFLFdBQVcsZ0JBQWdCLFdBQVc7QUFBQSxJQUNwQyxNQUFNLGdCQUFnQixnQkFBZ0IsSUFBSSxZQUFZO0FBQUEsSUFHdEQsSUFBSSxlQUFlLGNBQWM7QUFBQSxNQUMvQixNQUFNLElBQUksTUFBTSxhQUFhLFFBQVEsa0JBQWtCLFlBQVksQ0FBQztBQUFBLElBQ3RFO0FBQUEsSUFFQSxJQUFJLGVBQWU7QUFBQSxNQUNqQixNQUFNLGdCQUFnQixjQUFjO0FBQUEsTUFHcEMsSUFBSTtBQUFBLE1BQ0osSUFBSTtBQUFBLFFBQ0YsY0FBYyxjQUFjLFlBQVk7QUFBQSxRQUN4QyxNQUFNO0FBQUEsUUFDTixJQUFJO0FBQUEsVUFDRixjQUFjLGNBQWM7QUFBQSxVQUM1QixNQUFNO0FBQUEsVUFFTixjQUFjO0FBQUE7QUFBQTtBQUFBLE1BR2xCLElBQUksWUFBWSxTQUFTLFdBQVcsR0FBRztBQUFBLFFBQ3JDLE1BQU0sSUFBSSxNQUFNLGFBQWEsUUFBUSxrQkFBa0IsWUFBWSxDQUFDO0FBQUEsTUFDdEU7QUFBQSxNQUdBLE1BQU0sZ0JBQWdCLFVBQVU7QUFBQSxNQUNoQyxJQUFJLENBQUMscUJBQXFCLGNBQWM7QUFBQSxRQUN0QyxxQkFBcUIsZUFBZSxDQUFDO0FBQUEsTUFDdkM7QUFBQSxNQUNBLE9BQU8sT0FBTyxxQkFBcUIsY0FBYyxxQkFBcUIsYUFBYSxDQUFDO0FBQUEsSUFDdEYsRUFBTztBQUFBLE1BR0wscUJBQXFCLGdCQUFnQixVQUFVO0FBQUE7QUFBQSxFQUVuRDtBQUFBLEVBRUEsT0FBTztBQUFBO0FBUVQsU0FBUyxpQ0FBaUMsQ0FBQyxjQUFzQixjQUFzQixZQUFzQjtBQUFBLEVBRTNHLE1BQU0saUJBQWlCLGdCQUFnQixpQkFBaUIsQ0FBQztBQUFBLEVBR3pELE1BQU0sa0JBQWtCLElBQUk7QUFBQSxFQUU1QixXQUFXLGlCQUFpQixnQkFBZ0I7QUFBQSxJQUUxQyxJQUFJLGNBQWMsZUFBZSxjQUFjLFlBQVksTUFBTTtBQUFBLE1BQy9ELGdCQUFnQixJQUFJLGNBQWMsWUFBWSxNQUFNLGFBQWE7QUFBQSxJQUNuRTtBQUFBLEVBQ0Y7QUFBQSxFQUdBLE1BQU0sd0JBQTZCLENBQUM7QUFBQSxFQUNwQyxNQUFNLGVBQWUsb0RBQW9EO0FBQUE7QUFBQTtBQUFBLEVBR3pFLFdBQVcsZ0JBQWdCLFlBQVk7QUFBQSxJQUNyQyxNQUFNLGdCQUFnQixnQkFBZ0IsSUFBSSxZQUFZO0FBQUEsSUFHdEQsSUFBSSxlQUFlLGNBQWM7QUFBQSxNQUMvQixNQUFNLElBQUksTUFBTSxhQUFhLFFBQVEsa0JBQWtCLFlBQVksQ0FBQztBQUFBLElBQ3RFO0FBQUEsSUFFQSxJQUFJLGVBQWU7QUFBQSxNQUNqQixNQUFNLGdCQUFnQixjQUFjO0FBQUEsTUFHcEMsSUFBSTtBQUFBLE1BQ0osSUFBSTtBQUFBLFFBQ0YsY0FBYyxjQUFjLFlBQVk7QUFBQSxRQUN4QyxNQUFNO0FBQUEsUUFDTixJQUFJO0FBQUEsVUFDRixjQUFjLGNBQWM7QUFBQSxVQUM1QixNQUFNO0FBQUEsVUFFTixjQUFjO0FBQUE7QUFBQTtBQUFBLE1BR2xCLElBQUksWUFBWSxTQUFTLFdBQVcsR0FBRztBQUFBLFFBQ3JDLE1BQU0sSUFBSSxNQUFNLGFBQWEsUUFBUSxrQkFBa0IsWUFBWSxDQUFDO0FBQUEsTUFDdEU7QUFBQSxNQUNBLHNCQUFzQixlQUFlLFdBQVc7QUFBQSxJQUNsRCxFQUFPO0FBQUEsTUFFTCxzQkFBc0IsZ0JBQWdCLFdBQVc7QUFBQTtBQUFBLEVBRXJEO0FBQUEsRUFFQSxPQUFPO0FBQUE7QUE0Q0YsSUFBTSxlQUFlLENBQUMsYUFBMkQ7QUFBQSxFQUN0RixPQUFPLENBQUMsV0FBNEI7QUFBQSxJQUNsQyxNQUFNLFNBQVMsU0FBUyxNQUFNO0FBQUEsSUFDOUIsT0FBTyw2QkFBNkIsTUFBTTtBQUFBO0FBQUE7QUFPdkMsSUFBTSwrQkFBK0IsQ0FBQyxXQUFxQjtBQUFBLEVBQ2hFLElBQUksQ0FBQyxVQUFVLE9BQU8sV0FBVyxVQUFVO0FBQUEsSUFDekMsT0FBTztBQUFBLEVBQ1Q7QUFBQSxFQUlBLElBQUksT0FBTyxhQUFhLE9BQU8sT0FBTyxjQUFjLFVBQVU7QUFBQSxJQUM1RCxXQUFXLE9BQU8sT0FBTyxXQUFXO0FBQUEsTUFDbEMsTUFBTSxXQUFXLE9BQU8sVUFBVTtBQUFBLE1BQ2xDLElBQUksZUFBZSxRQUFRLEdBQUc7QUFBQSxRQUMzQixTQUFpQix1QkFBdUIsR0FBRztBQUFBLE1BQzlDO0FBQUEsSUFDRjtBQUFBLEVBQ0Y7QUFBQSxFQUdBLE1BQU0sU0FBYyxDQUFDO0FBQUEsRUFDckIsV0FBVyxPQUFPLFFBQVE7QUFBQSxJQUN4QixJQUFJLFFBQVEsYUFBYTtBQUFBLE1BRXZCLE9BQU8sT0FBTyw2QkFBNkIsT0FBTyxJQUFJO0FBQUEsSUFDeEQsRUFBTyxTQUFJLFFBQVEsV0FBVztBQUFBLE1BRTVCLE9BQU8sT0FBTywyQkFBMkIsT0FBTyxJQUFJO0FBQUEsSUFDdEQsRUFBTztBQUFBLE1BQ0wsT0FBTyxPQUFPLGVBQWUsT0FBTyxJQUFJO0FBQUE7QUFBQSxFQUU1QztBQUFBLEVBQ0EsT0FBTztBQUFBO0FBTVQsSUFBTSx1QkFBdUIsQ0FBQyxRQUFrQjtBQUFBLEVBQzlDLElBQUksQ0FBQyxPQUFPLE9BQU8sUUFBUSxZQUFZLE1BQU0sUUFBUSxHQUFHLEdBQUc7QUFBQSxJQUN6RCxPQUFPO0FBQUEsRUFDVDtBQUFBLEVBR0EsT0FBTyxPQUFPLFFBQVEsR0FBRyxFQUFFLElBQUksRUFBRSxNQUFNLFlBQVk7QUFBQSxJQUNqRDtBQUFBLElBQ0EsT0FBTyxlQUFlLEtBQUs7QUFBQSxFQUM3QixFQUFFO0FBQUE7QUFNSixJQUFNLCtCQUErQixDQUFDLGNBQXdCO0FBQUEsRUFDNUQsSUFBSSxDQUFDLGFBQWEsT0FBTyxjQUFjLFVBQVU7QUFBQSxJQUMvQyxPQUFPO0FBQUEsRUFDVDtBQUFBLEVBRUEsTUFBTSxTQUFjLENBQUM7QUFBQSxFQUNyQixXQUFXLE9BQU8sV0FBVztBQUFBLElBQzNCLE1BQU0sV0FBVyxVQUFVO0FBQUEsSUFDM0IsSUFBSSxlQUFlLFFBQVEsR0FBRztBQUFBLE1BQzVCLE1BQU0sT0FBUSxTQUFpQixlQUFlO0FBQUEsTUFDOUMsTUFBTSxhQUFjLFNBQWlCLHFCQUFxQjtBQUFBLE1BQzFELE1BQU0sWUFBYSxTQUFpQixvQkFBb0I7QUFBQSxNQUN4RCxNQUFNLGFBQWMsU0FBaUIscUJBQXFCO0FBQUEsTUFDMUQsT0FBTyxPQUFPO0FBQUEsUUFDWjtBQUFBLFFBQ0EsWUFBWSxlQUFlLFVBQVU7QUFBQSxXQUNqQyxjQUFjLGFBQWEsRUFBRSxXQUFXLGVBQWUsU0FBUyxFQUFFO0FBQUEsV0FDbEUsZUFBZSxhQUFhLEVBQUUsV0FBVztBQUFBLE1BQy9DO0FBQUEsSUFDRixFQUFPO0FBQUEsTUFDTCxPQUFPLE9BQU8sZUFBZSxRQUFRO0FBQUE7QUFBQSxFQUV6QztBQUFBLEVBQ0EsT0FBTztBQUFBO0FBTVQsSUFBTSw2QkFBNkIsQ0FBQyxZQUFzQjtBQUFBLEVBQ3hELElBQUksQ0FBQyxXQUFXLE9BQU8sWUFBWSxVQUFVO0FBQUEsSUFDM0MsT0FBTztBQUFBLEVBQ1Q7QUFBQSxFQUVBLE1BQU0sU0FBYyxDQUFDO0FBQUEsRUFDckIsV0FBVyxPQUFPLFNBQVM7QUFBQSxJQUN6QixNQUFNLFNBQVMsUUFBUTtBQUFBLElBQ3ZCLElBQUkscUJBQXFCLE1BQU0sR0FBRztBQUFBLE1BQ2hDLE9BQU8sT0FBTztBQUFBLFFBQ1osTUFBTSxPQUFPO0FBQUEsUUFDYixZQUFZLGVBQWUsT0FBTyxVQUFVO0FBQUEsTUFDOUM7QUFBQSxJQUNGLEVBQU87QUFBQSxNQUNMLE9BQU8sT0FBTyxlQUFlLE1BQU07QUFBQTtBQUFBLEVBRXZDO0FBQUEsRUFDQSxPQUFPO0FBQUE7QUFHRixJQUFNLGlCQUFpQixDQUFDLFVBQW9CO0FBQUEsRUFDakQsSUFBSSxVQUFVLFFBQVEsVUFBVSxXQUFXO0FBQUEsSUFDekMsT0FBTztBQUFBLEVBQ1Q7QUFBQSxFQUVBLElBQUksT0FBTyxVQUFVLFVBQVU7QUFBQSxJQUM3QixNQUFNLHFCQUFxQixvQ0FBb0MsS0FBSztBQUFBLElBQ3BFLElBQUksdUJBQXVCLE1BQU07QUFBQSxNQUMvQixPQUFPO0FBQUEsSUFDVDtBQUFBLEVBQ0Y7QUFBQSxFQUdBLElBQUksdUJBQXVCLEtBQUssR0FBRztBQUFBLElBQ2pDLE9BQU8sTUFBTSxRQUFRO0FBQUEsRUFDdkI7QUFBQSxFQUdBLElBQUkseUJBQXlCLEtBQUssR0FBRztBQUFBLElBQ25DLE9BQU8sTUFBTSxTQUFTO0FBQUEsRUFDeEI7QUFBQSxFQUlBLElBQUksZUFBZSxLQUFLLEdBQUc7QUFBQSxJQUN6QixPQUFPLE1BQU07QUFBQSxFQUNmO0FBQUEsRUFHQSxJQUFJLHFCQUFxQixLQUFLLEdBQUc7QUFBQSxJQUUvQixJQUFJLEVBQUUsZ0JBQWdCLFVBQVUsTUFBTSxlQUFlLFdBQVc7QUFBQSxNQUM5RCxPQUFPLEVBQUUsTUFBTSxNQUFNLEtBQUs7QUFBQSxJQUM1QjtBQUFBLElBQ0EsT0FBTztBQUFBLE1BQ0wsTUFBTSxNQUFNO0FBQUEsTUFDWixZQUFZLGVBQWUsTUFBTSxVQUFVO0FBQUEsSUFDN0M7QUFBQSxFQUNGO0FBQUEsRUFHQSxJQUFJLFFBQVEsS0FBSyxHQUFHO0FBQUEsSUFDbEIsTUFBTSxTQUFjO0FBQUEsTUFDbEIsU0FBUyxlQUFlLE1BQU0sT0FBTztBQUFBLElBQ3ZDO0FBQUEsSUFDQSxJQUFJLE1BQU0sZUFBZSxXQUFXO0FBQUEsTUFDbEMsT0FBTyxhQUFhLGVBQWUsTUFBTSxVQUFVO0FBQUEsSUFDckQ7QUFBQSxJQUNBLElBQUksTUFBTSx3QkFBd0IsV0FBVztBQUFBLE1BQzNDLE9BQU8sc0JBQXNCLGVBQWUsTUFBTSxtQkFBbUI7QUFBQSxJQUN2RTtBQUFBLElBQ0EsSUFBSSxNQUFNLGdCQUFnQixXQUFXO0FBQUEsTUFDbkMsT0FBTyxjQUFjLE1BQU07QUFBQSxJQUM3QjtBQUFBLElBQ0EsT0FBTztBQUFBLEVBQ1Q7QUFBQSxFQUdBLElBQUksTUFBTSxRQUFRLEtBQUssR0FBRztBQUFBLElBQ3hCLE9BQU8sTUFBTSxJQUFJLENBQUMsU0FBUztBQUFBLE1BRXpCLElBQUksZUFBZSxJQUFJLEdBQUc7QUFBQSxRQUN4QixPQUFPLEtBQUs7QUFBQSxNQUNkO0FBQUEsTUFDQSxPQUFPLGVBQWUsSUFBSTtBQUFBLEtBQzNCO0FBQUEsRUFDSDtBQUFBLEVBR0EsSUFBSSxPQUFPLFVBQVUsVUFBVTtBQUFBLElBQzdCLE1BQU0sU0FBYyxDQUFDO0FBQUEsSUFDckIsV0FBVyxPQUFPLE9BQU87QUFBQSxNQUV2QixJQUFJLFFBQVEsaUJBQWlCLFFBQVEscUJBQXFCO0FBQUEsUUFDeEQsT0FBTyxPQUFPLHFCQUFxQixNQUFNLElBQUk7QUFBQSxNQUMvQyxFQUFPO0FBQUEsUUFDTCxPQUFPLE9BQU8sZUFBZSxNQUFNLElBQUk7QUFBQTtBQUFBLElBRTNDO0FBQUEsSUFDQSxPQUFPO0FBQUEsRUFDVDtBQUFBLEVBRUEsT0FBTztBQUFBO0FBR1QsSUFBTSxzQ0FBc0MsQ0FBQyxVQUFpQztBQUFBLEVBQzVFLE1BQU0scUJBQXFCLHNCQUFzQixLQUFLO0FBQUEsRUFDdEQsSUFBSSxtQkFBbUIsV0FBVyxHQUFHO0FBQUEsSUFDbkMsT0FBTztBQUFBLEVBQ1Q7QUFBQSxFQUVBLElBQ0UsbUJBQW1CLFdBQVcsS0FDOUIsbUJBQW1CLEdBQUcsYUFBYSxLQUNuQyxtQkFBbUIsR0FBRyxXQUFXLE1BQU0sUUFDdkM7QUFBQSxJQUNBLE9BQU87QUFBQSxFQUNUO0FBQUEsRUFFQSxJQUFJLHFCQUFxQjtBQUFBLEVBQ3pCLElBQUksYUFBYTtBQUFBLEVBQ2pCLG1CQUFtQixRQUFRLEdBQUcsVUFBVSxhQUFhO0FBQUEsSUFDbkQsc0JBQXNCLEdBQUcsTUFBTSxNQUFNLFlBQVksUUFBUTtBQUFBLElBQ3pELGFBQWE7QUFBQSxHQUNkO0FBQUEsRUFDRCxzQkFBc0IsTUFBTSxNQUFNLFVBQVU7QUFBQSxFQUU1QyxNQUFNLDRCQUE0QixtQkFDL0IsUUFBUSxPQUFPLE1BQU0sRUFDckIsUUFBUSxNQUFNLEtBQUssRUFDbkIsUUFBUSxPQUFPLEtBQUssRUFDcEIsUUFBUSxPQUFPLEtBQUssRUFDcEIsUUFBUSxPQUFPLEtBQUs7QUFBQSxFQUV2QixNQUFNLGdCQUFnQixtQkFBbUIsSUFBSSxHQUFHLGlCQUFpQixVQUFVLEVBQUUsS0FBSyxJQUFJO0FBQUEsRUFDdEYsT0FBTyxjQUFjLCtCQUErQjtBQUFBO0FBR3RELElBQU0sd0JBQXdCLENBQUMsVUFBbUY7QUFBQSxFQUNoSCxNQUFNLGFBQThFLENBQUM7QUFBQSxFQUVyRixNQUFNLHNCQUFzQixDQUFDLEtBQWEsYUFBb0U7QUFBQSxJQUM1RyxJQUFJLElBQUksY0FBYyxLQUFLO0FBQUEsTUFDekIsT0FBTztBQUFBLElBQ1Q7QUFBQSxJQUVBLElBQUksT0FBTSxXQUFXO0FBQUEsSUFDckIsTUFBTSxnQkFBZ0IsSUFBSTtBQUFBLElBQzFCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxjQUFjLE1BQU0sU0FBUyxHQUFHO0FBQUEsTUFDckQsT0FBTztBQUFBLElBQ1Q7QUFBQSxJQUVBLE9BQU8sT0FBTSxJQUFJLFVBQVUsSUFBSSxNQUFLLE1BQU0sT0FBTyxHQUFHO0FBQUEsTUFDbEQ7QUFBQSxJQUNGO0FBQUEsSUFFQSxJQUFJLElBQUksVUFBUyxLQUFLO0FBQUEsTUFDcEIsT0FBTztBQUFBLElBQ1Q7QUFBQSxJQUVBLElBQUksUUFBUTtBQUFBLElBQ1osSUFBSSxnQkFBZ0I7QUFBQSxJQUNwQixJQUFJLGdCQUFnQjtBQUFBLElBQ3BCLElBQUksa0JBQWtCO0FBQUEsSUFFdEIsU0FBUyxJQUFJLEtBQUssSUFBSSxJQUFJLFFBQVEsS0FBSztBQUFBLE1BQ3JDLE1BQU0sT0FBTyxJQUFJO0FBQUEsTUFDakIsTUFBTSxXQUFXLElBQUksSUFBSSxJQUFJLElBQUksS0FBSztBQUFBLE1BRXRDLElBQUksU0FBUyxPQUFPLGFBQWEsUUFBUSxDQUFDLGVBQWU7QUFBQSxRQUN2RCxnQkFBZ0IsQ0FBQztBQUFBLE1BQ25CLEVBQU8sU0FBSSxTQUFTLE9BQU8sYUFBYSxRQUFRLENBQUMsZUFBZTtBQUFBLFFBQzlELGdCQUFnQixDQUFDO0FBQUEsTUFDbkI7QUFBQSxNQUVBLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlO0FBQUEsUUFDcEMsSUFBSSxTQUFTLEtBQUs7QUFBQSxVQUNoQjtBQUFBLFFBQ0YsRUFBTyxTQUFJLFNBQVMsS0FBSztBQUFBLFVBQ3ZCO0FBQUEsVUFDQSxJQUFJLFVBQVUsR0FBRztBQUFBLFlBQ2Ysa0JBQWtCO0FBQUEsWUFDbEI7QUFBQSxVQUNGO0FBQUEsUUFDRjtBQUFBLE1BQ0Y7QUFBQSxJQUNGO0FBQUEsSUFFQSxJQUFJLG9CQUFvQixJQUFJO0FBQUEsTUFDMUIsT0FBTztBQUFBLElBQ1Q7QUFBQSxJQUVBLElBQUksU0FBUyxrQkFBa0I7QUFBQSxJQUMvQixJQUFJLElBQUksWUFBWSxLQUFLO0FBQUEsTUFDdkI7QUFBQSxNQUNBLE9BQU8sU0FBUyxJQUFJLFVBQVUsSUFBSSxRQUFRLE1BQU0sU0FBUyxHQUFHO0FBQUEsUUFDMUQ7QUFBQSxNQUNGO0FBQUEsSUFDRjtBQUFBLElBRUEsT0FBTztBQUFBLE1BQ0wsWUFBWSxJQUFJLE1BQU0sVUFBVSxNQUFNO0FBQUEsTUFDdEM7QUFBQSxJQUNGO0FBQUE7QUFBQSxFQUdGLElBQUksTUFBTTtBQUFBLEVBQ1YsT0FBTyxNQUFNLE1BQU0sUUFBUTtBQUFBLElBQ3pCLElBQUksTUFBTSxTQUFTLEtBQUs7QUFBQSxNQUN0QixNQUFNLFNBQVMsb0JBQW9CLE9BQU8sR0FBRztBQUFBLE1BQzdDLElBQUksUUFBUTtBQUFBLFFBQ1YsV0FBVyxLQUFLLEVBQUUsWUFBWSxPQUFPLFlBQVksVUFBVSxLQUFLLFFBQVEsT0FBTyxPQUFPLENBQUM7QUFBQSxRQUN2RixNQUFNLE9BQU87QUFBQSxRQUNiO0FBQUEsTUFDRjtBQUFBLElBQ0Y7QUFBQSxJQUNBO0FBQUEsRUFDRjtBQUFBLEVBRUEsT0FBTztBQUFBOztBQ2p3QkYsSUFBTSxpQkFBaUIsQ0FBQyxjQUFzQixhQUFxQjtBQUFBLEVBQ3hFLE9BQU8sbUJBQW1CLGtCQUFrQjtBQUFBO0FBV3ZDLElBQU0sbUJBQW1CLENBQUMsaUNBQXlDLGFBQXFCO0FBQUEsRUFDN0YsT0FBTyxxQkFBcUIscUNBQXFDO0FBQUE7QUFTNUQsSUFBTSxVQUFVLENBQUMsZUFBdUI7QUFBQSxFQUM3QyxPQUFPLFlBQVk7QUFBQTtBQVlkLElBQU0sWUFBWSxDQUFDLHVCQUErQixXQUFrQjtBQUFBLEVBQ3pFLE9BQU8sY0FBYyx5QkFBeUIsT0FBTyxLQUFLLEdBQUc7QUFBQTtBQVN4RCxJQUFNLGlCQUFpQixDQUFDLFdBQW1CLGVBQXVCO0FBQUEsRUFDdkUsT0FBTyxtQkFBbUIsZUFBZTtBQUFBO0FBd0JwQyxJQUFNLFdBQVcsTUFBTTtBQUFBLEVBQzVCLE9BQU87QUFBQTtBQU9GLElBQU0sVUFBVSxNQUFNO0FBQUEsRUFDM0IsT0FBTztBQUFBO0FBT0YsSUFBTSxTQUFTLE1BQU07QUFBQSxFQUMxQixPQUFPO0FBQUE7O0FDeEZGLElBQU0sVUFBVTs7QUM0QmhCLElBQU0sbUNBQXlEO0FBQUEsRUFDcEU7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLGNBQWM7QUFBQSxJQUNkLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxJQUNaLGNBQWMsQ0FBQztBQUFBLEVBQ2pCO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsY0FBYztBQUFBLElBQ2QsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLElBQ1osbUJBQW1CO0FBQUEsSUFDbkIsY0FBYztBQUFBLE1BQ1o7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsSUFDRjtBQUFBLEVBQ0Y7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxjQUFjO0FBQUEsSUFDZCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsSUFDWixtQkFBbUI7QUFBQSxJQUNuQixjQUFjO0FBQUEsTUFDWjtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLElBQ0Y7QUFBQSxFQUNGO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsY0FBYztBQUFBLElBQ2QsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLElBQ1osbUJBQW1CO0FBQUEsSUFDbkIsY0FBYztBQUFBLE1BQ1o7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxJQUNGO0FBQUEsRUFDRjtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLGNBQWM7QUFBQSxJQUNkLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxJQUNaLG1CQUFtQjtBQUFBLElBQ25CLGNBQWM7QUFBQSxNQUNaO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsSUFDRjtBQUFBLEVBQ0Y7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxjQUFjO0FBQUEsSUFDZCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsSUFDWixtQkFBbUI7QUFBQSxJQUNuQixjQUFjO0FBQUEsTUFDWjtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsSUFDRjtBQUFBLEVBQ0Y7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxjQUFjO0FBQUEsSUFDZCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsSUFDWixtQkFBbUI7QUFBQSxJQUNuQixjQUFjO0FBQUEsTUFDWjtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLElBQ0Y7QUFBQSxFQUNGO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsY0FBYztBQUFBLElBQ2QsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLElBQ1osY0FBYyxDQUFDO0FBQUEsRUFDakI7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxjQUFjO0FBQUEsSUFDZCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsSUFDWixjQUFjLENBQUM7QUFBQSxFQUNqQjtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLGNBQWM7QUFBQSxJQUNkLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxJQUNaLGNBQWMsQ0FBQztBQUFBLEVBQ2pCO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsY0FBYztBQUFBLElBQ2QsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLElBQ1osY0FBYyxDQUFDO0FBQUEsRUFDakI7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxjQUFjO0FBQUEsSUFDZCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsSUFDWixjQUFjLENBQUM7QUFBQSxFQUNqQjtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLGNBQWM7QUFBQSxJQUNkLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxJQUNaLGNBQWMsQ0FBQztBQUFBLEVBQ2pCO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsY0FBYztBQUFBLElBQ2QsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLElBQ1osY0FBYyxDQUFDO0FBQUEsRUFDakI7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxjQUFjO0FBQUEsSUFDZCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsSUFDWixjQUFjLENBQUM7QUFBQSxFQUNqQjtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLGNBQWM7QUFBQSxJQUNkLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxJQUNaLG1CQUFtQjtBQUFBLElBQ25CLGNBQWMsQ0FBQztBQUFBLEVBQ2pCO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsY0FBYztBQUFBLElBQ2QsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLElBQ1osbUJBQW1CO0FBQUEsSUFDbkIsY0FBYyxDQUFDLFlBQVksVUFBVTtBQUFBLEVBQ3ZDO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsY0FBYztBQUFBLElBQ2QsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLElBQ1osY0FBYyxDQUFDO0FBQUEsRUFDakI7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxjQUFjO0FBQUEsSUFDZCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsSUFDWixtQkFBbUI7QUFBQSxJQUNuQixjQUFjLENBQUM7QUFBQSxFQUNqQjtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLGNBQWM7QUFBQSxJQUNkLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxJQUNaLGNBQWMsQ0FBQztBQUFBLEVBQ2pCO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsY0FBYztBQUFBLElBQ2QsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLElBQ1osY0FBYyxDQUFDO0FBQUEsRUFDakI7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxjQUFjO0FBQUEsSUFDZCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsSUFDWixjQUFjLENBQUM7QUFBQSxFQUNqQjtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLGNBQWM7QUFBQSxJQUNkLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxJQUNaLGNBQWMsQ0FBQztBQUFBLEVBQ2pCO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsY0FBYztBQUFBLElBQ2QsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLElBQ1osY0FBYyxDQUFDO0FBQUEsRUFDakI7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxjQUFjO0FBQUEsSUFDZCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsSUFDWixjQUFjLENBQUM7QUFBQSxFQUNqQjtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLGNBQWM7QUFBQSxJQUNkLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxJQUNaLG1CQUFtQjtBQUFBLElBQ25CLGNBQWM7QUFBQSxNQUNaO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxJQUNGO0FBQUEsRUFDRjtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLGNBQWM7QUFBQSxJQUNkLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxJQUNaLGNBQWM7QUFBQSxNQUNaO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxJQUNGO0FBQUEsRUFDRjtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLGNBQWM7QUFBQSxJQUNkLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxJQUNaLGNBQWM7QUFBQSxNQUNaO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxJQUNGO0FBQUEsRUFDRjtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLGNBQWM7QUFBQSxJQUNkLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxJQUNaLGNBQWM7QUFBQSxNQUNaO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxJQUNGO0FBQUEsRUFDRjtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLGNBQWM7QUFBQSxJQUNkLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxJQUNaLGNBQWM7QUFBQSxNQUNaO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxJQUNGO0FBQUEsRUFDRjtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLGNBQWM7QUFBQSxJQUNkLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxJQUNaLGNBQWM7QUFBQSxNQUNaO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxJQUNGO0FBQUEsRUFDRjtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLGNBQWM7QUFBQSxJQUNkLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxJQUNaLGNBQWM7QUFBQSxNQUNaO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxJQUNGO0FBQUEsRUFDRjtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLGNBQWM7QUFBQSxJQUNkLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxJQUNaLGNBQWMsQ0FBQztBQUFBLEVBQ2pCO0FBQ0Y7QUFpQk8sSUFBTSxvQ0FBZ0U7QUFBQSxFQUUzRTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFFQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBRUE7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUVBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBRUE7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUVBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUVBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBRUE7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUVBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUVBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUVBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFFQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBRUE7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVB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Y0FBYyxtQkFBbUI7QUFBQSxJQUMzRCxXQUFXLENBQUMsWUFBaUI7QUFBQSxNQUMzQixNQUFNLFdBQVcsVUFBVTtBQUFBO0FBQUEsRUFFL0I7QUFBQSxFQUVBLE9BQU8sZUFBZSxxQkFBcUIsUUFBUSxFQUFFLE9BQU8sVUFBVSxDQUFDO0FBQUEsRUFDdkUsT0FBTztBQUFBO0FBSVQsSUFBTSwwQkFBd0YsQ0FBQztBQUMvRixXQUFXLE9BQU8sbUNBQW1DO0FBQUEsRUFDbkQsd0JBQXdCLElBQUksYUFBYSwwQkFBMEIsSUFBSSxXQUFXLElBQUksV0FBVyxJQUFJLFFBQVE7QUFDL0c7QUFHTztBQUFBLEVBRUw7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBRUE7QUFBQSxFQUNBO0FBQUEsRUFFQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUVBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFFQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUVBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUVBO0FBQUEsRUFFQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUVBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUVBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUVBO0FBQUEsRUFDQTtBQUFBLEVBRUE7QUFBQSxFQUNBO0FBQUEsRUFFQTtBQUFBLEVBQ0E7QUFBQSxFQUVBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUVBO0FBQUEsRUFDQTtBQUFBLEVBRUE7QUFBQSxFQUVBO0FBQUEsSUFDRTsiLAogICJkZWJ1Z0lkIjogIkFBOUU0NUVFN0I1REU5NDA2NDc1NkUyMTY0NzU2RTIxIiwKICAibmFtZXMiOiBbXQp9