stacktape 3.0.17 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.js CHANGED
@@ -978,6 +978,13 @@ var cfLogicalNames = {
978
978
  suffix: { cloudformationResourceType: "AWS::CloudFormation::CustomResource" }
979
979
  });
980
980
  },
981
+ ecsDeregisterTargetsCustomResource(stpResourceName) {
982
+ return buildCfLogicalName({
983
+ stpResourceName,
984
+ specifier: { type: "DeregisterTargets" },
985
+ suffix: { cloudformationResourceType: "AWS::CloudFormation::CustomResource" }
986
+ });
987
+ },
981
988
  ecsEc2CapacityProvider(stpResourceName) {
982
989
  return buildCfLogicalName({
983
990
  stpResourceName,
@@ -4185,4 +4192,4 @@ var {
4185
4192
  WorkerService,
4186
4193
  defineConfig
4187
4194
  });
4188
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL2FwaS9ucG0vdHMvaW5kZXgudHMiLCAiLi4vbm9kZV9tb2R1bGVzL2NoYW5nZS1jYXNlL3NyYy9pbmRleC50cyIsICIuLi9zaGFyZWQvbmFtaW5nL2xvZ2ljYWwtbmFtZXMudHMiLCAiLi4vc3JjL2FwaS9ucG0vdHMvY2hpbGQtcmVzb3VyY2VzLnRzIiwgIi4uL3NyYy9hcGkvbnBtL3RzL2NvbmZpZy50cyIsICIuLi9zcmMvYXBpL25wbS90cy9kaXJlY3RpdmVzLnRzIiwgIi4uL3NyYy9hcGkvbnBtL3RzL2dsb2JhbC1hd3Mtc2VydmljZXMudHMiLCAiLi4vc3JjL2FwaS9ucG0vdHMvY2xhc3MtY29uZmlnLnRzIiwgIi4uL3NyYy9hcGkvbnBtL3RzL3Jlc291cmNlLW1ldGFkYXRhLnRzIiwgIi4uL3NyYy9hcGkvbnBtL3RzL3Jlc291cmNlcy50cyIsICIuLi9zcmMvYXBpL25wbS90cy90eXBlLXByb3BlcnRpZXMudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8vIE1haW4gZXhwb3J0IC0gb25seSBjbGFzc2VzLCBkaXJlY3RpdmVzLCBhbmQgZGVmaW5lQ29uZmlnXG5cbi8vIGRlZmluZUNvbmZpZyBmdW5jdGlvblxuZXhwb3J0IHsgZGVmaW5lQ29uZmlnIH0gZnJvbSAnLi9jb25maWcnO1xuXG4vLyBEaXJlY3RpdmVzXG5leHBvcnQgeyAkQ2ZGb3JtYXQsICRDZlJlc291cmNlUGFyYW0sICRDZlN0YWNrT3V0cHV0LCAkR2l0SW5mbywgJFJlc291cmNlUGFyYW0sICRTZWNyZXQgfSBmcm9tICcuL2RpcmVjdGl2ZXMnO1xuXG4vLyBBV1Mgc2VydmljZSBjb25zdGFudHMgKGZvciBjb25uZWN0VG8pXG5leHBvcnQgeyBBV1NfU0VTIH0gZnJvbSAnLi9nbG9iYWwtYXdzLXNlcnZpY2VzJztcblxuLy8gUmVzb3VyY2UgY2xhc3Nlc1xuZXhwb3J0ICogZnJvbSAnLi9yZXNvdXJjZXMnO1xuXG4vLyBUeXBlL3Byb3BlcnRpZXMgY2xhc3Nlc1xuZXhwb3J0ICogZnJvbSAnLi90eXBlLXByb3BlcnRpZXMnO1xuIiwgIi8vIFJlZ2V4cHMgaW52b2x2ZWQgd2l0aCBzcGxpdHRpbmcgd29yZHMgaW4gdmFyaW91cyBjYXNlIGZvcm1hdHMuXG5jb25zdCBTUExJVF9MT1dFUl9VUFBFUl9SRSA9IC8oW1xccHtMbH1cXGRdKShcXHB7THV9KS9ndTtcbmNvbnN0IFNQTElUX1VQUEVSX1VQUEVSX1JFID0gLyhcXHB7THV9KShbXFxwe0x1fV1bXFxwe0xsfV0pL2d1O1xuXG4vLyBVc2VkIHRvIGl0ZXJhdGUgb3ZlciB0aGUgaW5pdGlhbCBzcGxpdCByZXN1bHQgYW5kIHNlcGFyYXRlIG51bWJlcnMuXG5jb25zdCBTUExJVF9TRVBBUkFURV9OVU1CRVJfUkUgPSAvKFxcZClcXHB7TGx9fChcXHB7TH0pXFxkL3U7XG5cbi8vIFJlZ2V4cCBpbnZvbHZlZCB3aXRoIHN0cmlwcGluZyBub24td29yZCBjaGFyYWN0ZXJzIGZyb20gdGhlIHJlc3VsdC5cbmNvbnN0IERFRkFVTFRfU1RSSVBfUkVHRVhQID0gL1teXFxwe0x9XFxkXSsvZ2l1O1xuXG4vLyBUaGUgcmVwbGFjZW1lbnQgdmFsdWUgZm9yIHNwbGl0cy5cbmNvbnN0IFNQTElUX1JFUExBQ0VfVkFMVUUgPSBcIiQxXFwwJDJcIjtcblxuLy8gVGhlIGRlZmF1bHQgY2hhcmFjdGVycyB0byBrZWVwIGFmdGVyIHRyYW5zZm9ybWluZyBjYXNlLlxuY29uc3QgREVGQVVMVF9QUkVGSVhfU1VGRklYX0NIQVJBQ1RFUlMgPSBcIlwiO1xuXG4vKipcbiAqIFN1cHBvcnRlZCBsb2NhbGUgdmFsdWVzLiBVc2UgYGZhbHNlYCB0byBpZ25vcmUgbG9jYWxlLlxuICogRGVmYXVsdHMgdG8gYHVuZGVmaW5lZGAsIHdoaWNoIHVzZXMgdGhlIGhvc3QgZW52aXJvbm1lbnQuXG4gKi9cbmV4cG9ydCB0eXBlIExvY2FsZSA9IHN0cmluZ1tdIHwgc3RyaW5nIHwgZmFsc2UgfCB1bmRlZmluZWQ7XG5cbi8qKlxuICogT3B0aW9ucyB1c2VkIGZvciBjb252ZXJ0aW5nIHN0cmluZ3MgdG8gcGFzY2FsL2NhbWVsIGNhc2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGFzY2FsQ2FzZU9wdGlvbnMgZXh0ZW5kcyBPcHRpb25zIHtcbiAgbWVyZ2VBbWJpZ3VvdXNDaGFyYWN0ZXJzPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBPcHRpb25zIHVzZWQgZm9yIGNvbnZlcnRpbmcgc3RyaW5ncyB0byBhbnkgY2FzZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPcHRpb25zIHtcbiAgbG9jYWxlPzogTG9jYWxlO1xuICBzcGxpdD86ICh2YWx1ZTogc3RyaW5nKSA9PiBzdHJpbmdbXTtcbiAgLyoqIEBkZXByZWNhdGVkIFBhc3MgYHNwbGl0OiBzcGxpdFNlcGFyYXRlTnVtYmVyc2AgaW5zdGVhZC4gKi9cbiAgc2VwYXJhdGVOdW1iZXJzPzogYm9vbGVhbjtcbiAgZGVsaW1pdGVyPzogc3RyaW5nO1xuICBwcmVmaXhDaGFyYWN0ZXJzPzogc3RyaW5nO1xuICBzdWZmaXhDaGFyYWN0ZXJzPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFNwbGl0IGFueSBjYXNlZCBpbnB1dCBzdHJpbmdzIGludG8gYW4gYXJyYXkgb2Ygd29yZHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzcGxpdCh2YWx1ZTogc3RyaW5nKSB7XG4gIGxldCByZXN1bHQgPSB2YWx1ZS50cmltKCk7XG5cbiAgcmVzdWx0ID0gcmVzdWx0XG4gICAgLnJlcGxhY2UoU1BMSVRfTE9XRVJfVVBQRVJfUkUsIFNQTElUX1JFUExBQ0VfVkFMVUUpXG4gICAgLnJlcGxhY2UoU1BMSVRfVVBQRVJfVVBQRVJfUkUsIFNQTElUX1JFUExBQ0VfVkFMVUUpO1xuXG4gIHJlc3VsdCA9IHJlc3VsdC5yZXBsYWNlKERFRkFVTFRfU1RSSVBfUkVHRVhQLCBcIlxcMFwiKTtcblxuICBsZXQgc3RhcnQgPSAwO1xuICBsZXQgZW5kID0gcmVzdWx0Lmxlbmd0aDtcblxuICAvLyBUcmltIHRoZSBkZWxpbWl0ZXIgZnJvbSBhcm91bmQgdGhlIG91dHB1dCBzdHJpbmcuXG4gIHdoaWxlIChyZXN1bHQuY2hhckF0KHN0YXJ0KSA9PT0gXCJcXDBcIikgc3RhcnQrKztcbiAgaWYgKHN0YXJ0ID09PSBlbmQpIHJldHVybiBbXTtcbiAgd2hpbGUgKHJlc3VsdC5jaGFyQXQoZW5kIC0gMSkgPT09IFwiXFwwXCIpIGVuZC0tO1xuXG4gIHJldHVybiByZXN1bHQuc2xpY2Uoc3RhcnQsIGVuZCkuc3BsaXQoL1xcMC9nKTtcbn1cblxuLyoqXG4gKiBTcGxpdCB0aGUgaW5wdXQgc3RyaW5nIGludG8gYW4gYXJyYXkgb2Ygd29yZHMsIHNlcGFyYXRpbmcgbnVtYmVycy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNwbGl0U2VwYXJhdGVOdW1iZXJzKHZhbHVlOiBzdHJpbmcpIHtcbiAgY29uc3Qgd29yZHMgPSBzcGxpdCh2YWx1ZSk7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgd29yZHMubGVuZ3RoOyBpKyspIHtcbiAgICBjb25zdCB3b3JkID0gd29yZHNbaV07XG4gICAgY29uc3QgbWF0Y2ggPSBTUExJVF9TRVBBUkFURV9OVU1CRVJfUkUuZXhlYyh3b3JkKTtcbiAgICBpZiAobWF0Y2gpIHtcbiAgICAgIGNvbnN0IG9mZnNldCA9IG1hdGNoLmluZGV4ICsgKG1hdGNoWzFdID8/IG1hdGNoWzJdKS5sZW5ndGg7XG4gICAgICB3b3Jkcy5zcGxpY2UoaSwgMSwgd29yZC5zbGljZSgwLCBvZmZzZXQpLCB3b3JkLnNsaWNlKG9mZnNldCkpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gd29yZHM7XG59XG5cbi8qKlxuICogQ29udmVydCBhIHN0cmluZyB0byBzcGFjZSBzZXBhcmF0ZWQgbG93ZXIgY2FzZSAoYGZvbyBiYXJgKS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5vQ2FzZShpbnB1dDogc3RyaW5nLCBvcHRpb25zPzogT3B0aW9ucykge1xuICBjb25zdCBbcHJlZml4LCB3b3Jkcywgc3VmZml4XSA9IHNwbGl0UHJlZml4U3VmZml4KGlucHV0LCBvcHRpb25zKTtcbiAgcmV0dXJuIChcbiAgICBwcmVmaXggK1xuICAgIHdvcmRzLm1hcChsb3dlckZhY3Rvcnkob3B0aW9ucz8ubG9jYWxlKSkuam9pbihvcHRpb25zPy5kZWxpbWl0ZXIgPz8gXCIgXCIpICtcbiAgICBzdWZmaXhcbiAgKTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0IGEgc3RyaW5nIHRvIGNhbWVsIGNhc2UgKGBmb29CYXJgKS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNhbWVsQ2FzZShpbnB1dDogc3RyaW5nLCBvcHRpb25zPzogUGFzY2FsQ2FzZU9wdGlvbnMpIHtcbiAgY29uc3QgW3ByZWZpeCwgd29yZHMsIHN1ZmZpeF0gPSBzcGxpdFByZWZpeFN1ZmZpeChpbnB1dCwgb3B0aW9ucyk7XG4gIGNvbnN0IGxvd2VyID0gbG93ZXJGYWN0b3J5KG9wdGlvbnM/LmxvY2FsZSk7XG4gIGNvbnN0IHVwcGVyID0gdXBwZXJGYWN0b3J5KG9wdGlvbnM/LmxvY2FsZSk7XG4gIGNvbnN0IHRyYW5zZm9ybSA9IG9wdGlvbnM/Lm1lcmdlQW1iaWd1b3VzQ2hhcmFjdGVyc1xuICAgID8gY2FwaXRhbENhc2VUcmFuc2Zvcm1GYWN0b3J5KGxvd2VyLCB1cHBlcilcbiAgICA6IHBhc2NhbENhc2VUcmFuc2Zvcm1GYWN0b3J5KGxvd2VyLCB1cHBlcik7XG4gIHJldHVybiAoXG4gICAgcHJlZml4ICtcbiAgICB3b3Jkc1xuICAgICAgLm1hcCgod29yZCwgaW5kZXgpID0+IHtcbiAgICAgICAgaWYgKGluZGV4ID09PSAwKSByZXR1cm4gbG93ZXIod29yZCk7XG4gICAgICAgIHJldHVybiB0cmFuc2Zvcm0od29yZCwgaW5kZXgpO1xuICAgICAgfSlcbiAgICAgIC5qb2luKG9wdGlvbnM/LmRlbGltaXRlciA/PyBcIlwiKSArXG4gICAgc3VmZml4XG4gICk7XG59XG5cbi8qKlxuICogQ29udmVydCBhIHN0cmluZyB0byBwYXNjYWwgY2FzZSAoYEZvb0JhcmApLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFzY2FsQ2FzZShpbnB1dDogc3RyaW5nLCBvcHRpb25zPzogUGFzY2FsQ2FzZU9wdGlvbnMpIHtcbiAgY29uc3QgW3ByZWZpeCwgd29yZHMsIHN1ZmZpeF0gPSBzcGxpdFByZWZpeFN1ZmZpeChpbnB1dCwgb3B0aW9ucyk7XG4gIGNvbnN0IGxvd2VyID0gbG93ZXJGYWN0b3J5KG9wdGlvbnM/LmxvY2FsZSk7XG4gIGNvbnN0IHVwcGVyID0gdXBwZXJGYWN0b3J5KG9wdGlvbnM/LmxvY2FsZSk7XG4gIGNvbnN0IHRyYW5zZm9ybSA9IG9wdGlvbnM/Lm1lcmdlQW1iaWd1b3VzQ2hhcmFjdGVyc1xuICAgID8gY2FwaXRhbENhc2VUcmFuc2Zvcm1GYWN0b3J5KGxvd2VyLCB1cHBlcilcbiAgICA6IHBhc2NhbENhc2VUcmFuc2Zvcm1GYWN0b3J5KGxvd2VyLCB1cHBlcik7XG4gIHJldHVybiBwcmVmaXggKyB3b3Jkcy5tYXAodHJhbnNmb3JtKS5qb2luKG9wdGlvbnM/LmRlbGltaXRlciA/PyBcIlwiKSArIHN1ZmZpeDtcbn1cblxuLyoqXG4gKiBDb252ZXJ0IGEgc3RyaW5nIHRvIHBhc2NhbCBzbmFrZSBjYXNlIChgRm9vX0JhcmApLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFzY2FsU25ha2VDYXNlKGlucHV0OiBzdHJpbmcsIG9wdGlvbnM/OiBPcHRpb25zKSB7XG4gIHJldHVybiBjYXBpdGFsQ2FzZShpbnB1dCwgeyBkZWxpbWl0ZXI6IFwiX1wiLCAuLi5vcHRpb25zIH0pO1xufVxuXG4vKipcbiAqIENvbnZlcnQgYSBzdHJpbmcgdG8gY2FwaXRhbCBjYXNlIChgRm9vIEJhcmApLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY2FwaXRhbENhc2UoaW5wdXQ6IHN0cmluZywgb3B0aW9ucz86IE9wdGlvbnMpIHtcbiAgY29uc3QgW3ByZWZpeCwgd29yZHMsIHN1ZmZpeF0gPSBzcGxpdFByZWZpeFN1ZmZpeChpbnB1dCwgb3B0aW9ucyk7XG4gIGNvbnN0IGxvd2VyID0gbG93ZXJGYWN0b3J5KG9wdGlvbnM/LmxvY2FsZSk7XG4gIGNvbnN0IHVwcGVyID0gdXBwZXJGYWN0b3J5KG9wdGlvbnM/LmxvY2FsZSk7XG4gIHJldHVybiAoXG4gICAgcHJlZml4ICtcbiAgICB3b3Jkc1xuICAgICAgLm1hcChjYXBpdGFsQ2FzZVRyYW5zZm9ybUZhY3RvcnkobG93ZXIsIHVwcGVyKSlcbiAgICAgIC5qb2luKG9wdGlvbnM/LmRlbGltaXRlciA/PyBcIiBcIikgK1xuICAgIHN1ZmZpeFxuICApO1xufVxuXG4vKipcbiAqIENvbnZlcnQgYSBzdHJpbmcgdG8gY29uc3RhbnQgY2FzZSAoYEZPT19CQVJgKS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbnN0YW50Q2FzZShpbnB1dDogc3RyaW5nLCBvcHRpb25zPzogT3B0aW9ucykge1xuICBjb25zdCBbcHJlZml4LCB3b3Jkcywgc3VmZml4XSA9IHNwbGl0UHJlZml4U3VmZml4KGlucHV0LCBvcHRpb25zKTtcbiAgcmV0dXJuIChcbiAgICBwcmVmaXggK1xuICAgIHdvcmRzLm1hcCh1cHBlckZhY3Rvcnkob3B0aW9ucz8ubG9jYWxlKSkuam9pbihvcHRpb25zPy5kZWxpbWl0ZXIgPz8gXCJfXCIpICtcbiAgICBzdWZmaXhcbiAgKTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0IGEgc3RyaW5nIHRvIGRvdCBjYXNlIChgZm9vLmJhcmApLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZG90Q2FzZShpbnB1dDogc3RyaW5nLCBvcHRpb25zPzogT3B0aW9ucykge1xuICByZXR1cm4gbm9DYXNlKGlucHV0LCB7IGRlbGltaXRlcjogXCIuXCIsIC4uLm9wdGlvbnMgfSk7XG59XG5cbi8qKlxuICogQ29udmVydCBhIHN0cmluZyB0byBrZWJhYiBjYXNlIChgZm9vLWJhcmApLlxuICovXG5leHBvcnQgZnVuY3Rpb24ga2ViYWJDYXNlKGlucHV0OiBzdHJpbmcsIG9wdGlvbnM/OiBPcHRpb25zKSB7XG4gIHJldHVybiBub0Nhc2UoaW5wdXQsIHsgZGVsaW1pdGVyOiBcIi1cIiwgLi4ub3B0aW9ucyB9KTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0IGEgc3RyaW5nIHRvIHBhdGggY2FzZSAoYGZvby9iYXJgKS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhdGhDYXNlKGlucHV0OiBzdHJpbmcsIG9wdGlvbnM/OiBPcHRpb25zKSB7XG4gIHJldHVybiBub0Nhc2UoaW5wdXQsIHsgZGVsaW1pdGVyOiBcIi9cIiwgLi4ub3B0aW9ucyB9KTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0IGEgc3RyaW5nIHRvIHBhdGggY2FzZSAoYEZvbyBiYXJgKS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNlbnRlbmNlQ2FzZShpbnB1dDogc3RyaW5nLCBvcHRpb25zPzogT3B0aW9ucykge1xuICBjb25zdCBbcHJlZml4LCB3b3Jkcywgc3VmZml4XSA9IHNwbGl0UHJlZml4U3VmZml4KGlucHV0LCBvcHRpb25zKTtcbiAgY29uc3QgbG93ZXIgPSBsb3dlckZhY3Rvcnkob3B0aW9ucz8ubG9jYWxlKTtcbiAgY29uc3QgdXBwZXIgPSB1cHBlckZhY3Rvcnkob3B0aW9ucz8ubG9jYWxlKTtcbiAgY29uc3QgdHJhbnNmb3JtID0gY2FwaXRhbENhc2VUcmFuc2Zvcm1GYWN0b3J5KGxvd2VyLCB1cHBlcik7XG4gIHJldHVybiAoXG4gICAgcHJlZml4ICtcbiAgICB3b3Jkc1xuICAgICAgLm1hcCgod29yZCwgaW5kZXgpID0+IHtcbiAgICAgICAgaWYgKGluZGV4ID09PSAwKSByZXR1cm4gdHJhbnNmb3JtKHdvcmQpO1xuICAgICAgICByZXR1cm4gbG93ZXIod29yZCk7XG4gICAgICB9KVxuICAgICAgLmpvaW4ob3B0aW9ucz8uZGVsaW1pdGVyID8/IFwiIFwiKSArXG4gICAgc3VmZml4XG4gICk7XG59XG5cbi8qKlxuICogQ29udmVydCBhIHN0cmluZyB0byBzbmFrZSBjYXNlIChgZm9vX2JhcmApLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc25ha2VDYXNlKGlucHV0OiBzdHJpbmcsIG9wdGlvbnM/OiBPcHRpb25zKSB7XG4gIHJldHVybiBub0Nhc2UoaW5wdXQsIHsgZGVsaW1pdGVyOiBcIl9cIiwgLi4ub3B0aW9ucyB9KTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0IGEgc3RyaW5nIHRvIGhlYWRlciBjYXNlIChgRm9vLUJhcmApLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdHJhaW5DYXNlKGlucHV0OiBzdHJpbmcsIG9wdGlvbnM/OiBPcHRpb25zKSB7XG4gIHJldHVybiBjYXBpdGFsQ2FzZShpbnB1dCwgeyBkZWxpbWl0ZXI6IFwiLVwiLCAuLi5vcHRpb25zIH0pO1xufVxuXG5mdW5jdGlvbiBsb3dlckZhY3RvcnkobG9jYWxlOiBMb2NhbGUpOiAoaW5wdXQ6IHN0cmluZykgPT4gc3RyaW5nIHtcbiAgcmV0dXJuIGxvY2FsZSA9PT0gZmFsc2VcbiAgICA/IChpbnB1dDogc3RyaW5nKSA9PiBpbnB1dC50b0xvd2VyQ2FzZSgpXG4gICAgOiAoaW5wdXQ6IHN0cmluZykgPT4gaW5wdXQudG9Mb2NhbGVMb3dlckNhc2UobG9jYWxlKTtcbn1cblxuZnVuY3Rpb24gdXBwZXJGYWN0b3J5KGxvY2FsZTogTG9jYWxlKTogKGlucHV0OiBzdHJpbmcpID0+IHN0cmluZyB7XG4gIHJldHVybiBsb2NhbGUgPT09IGZhbHNlXG4gICAgPyAoaW5wdXQ6IHN0cmluZykgPT4gaW5wdXQudG9VcHBlckNhc2UoKVxuICAgIDogKGlucHV0OiBzdHJpbmcpID0+IGlucHV0LnRvTG9jYWxlVXBwZXJDYXNlKGxvY2FsZSk7XG59XG5cbmZ1bmN0aW9uIGNhcGl0YWxDYXNlVHJhbnNmb3JtRmFjdG9yeShcbiAgbG93ZXI6IChpbnB1dDogc3RyaW5nKSA9PiBzdHJpbmcsXG4gIHVwcGVyOiAoaW5wdXQ6IHN0cmluZykgPT4gc3RyaW5nLFxuKSB7XG4gIHJldHVybiAod29yZDogc3RyaW5nKSA9PiBgJHt1cHBlcih3b3JkWzBdKX0ke2xvd2VyKHdvcmQuc2xpY2UoMSkpfWA7XG59XG5cbmZ1bmN0aW9uIHBhc2NhbENhc2VUcmFuc2Zvcm1GYWN0b3J5KFxuICBsb3dlcjogKGlucHV0OiBzdHJpbmcpID0+IHN0cmluZyxcbiAgdXBwZXI6IChpbnB1dDogc3RyaW5nKSA9PiBzdHJpbmcsXG4pIHtcbiAgcmV0dXJuICh3b3JkOiBzdHJpbmcsIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICBjb25zdCBjaGFyMCA9IHdvcmRbMF07XG4gICAgY29uc3QgaW5pdGlhbCA9XG4gICAgICBpbmRleCA+IDAgJiYgY2hhcjAgPj0gXCIwXCIgJiYgY2hhcjAgPD0gXCI5XCIgPyBcIl9cIiArIGNoYXIwIDogdXBwZXIoY2hhcjApO1xuICAgIHJldHVybiBpbml0aWFsICsgbG93ZXIod29yZC5zbGljZSgxKSk7XG4gIH07XG59XG5cbmZ1bmN0aW9uIHNwbGl0UHJlZml4U3VmZml4KFxuICBpbnB1dDogc3RyaW5nLFxuICBvcHRpb25zOiBPcHRpb25zID0ge30sXG4pOiBbc3RyaW5nLCBzdHJpbmdbXSwgc3RyaW5nXSB7XG4gIGNvbnN0IHNwbGl0Rm4gPVxuICAgIG9wdGlvbnMuc3BsaXQgPz8gKG9wdGlvbnMuc2VwYXJhdGVOdW1iZXJzID8gc3BsaXRTZXBhcmF0ZU51bWJlcnMgOiBzcGxpdCk7XG4gIGNvbnN0IHByZWZpeENoYXJhY3RlcnMgPVxuICAgIG9wdGlvbnMucHJlZml4Q2hhcmFjdGVycyA/PyBERUZBVUxUX1BSRUZJWF9TVUZGSVhfQ0hBUkFDVEVSUztcbiAgY29uc3Qgc3VmZml4Q2hhcmFjdGVycyA9XG4gICAgb3B0aW9ucy5zdWZmaXhDaGFyYWN0ZXJzID8/IERFRkFVTFRfUFJFRklYX1NVRkZJWF9DSEFSQUNURVJTO1xuICBsZXQgcHJlZml4SW5kZXggPSAwO1xuICBsZXQgc3VmZml4SW5kZXggPSBpbnB1dC5sZW5ndGg7XG5cbiAgd2hpbGUgKHByZWZpeEluZGV4IDwgaW5wdXQubGVuZ3RoKSB7XG4gICAgY29uc3QgY2hhciA9IGlucHV0LmNoYXJBdChwcmVmaXhJbmRleCk7XG4gICAgaWYgKCFwcmVmaXhDaGFyYWN0ZXJzLmluY2x1ZGVzKGNoYXIpKSBicmVhaztcbiAgICBwcmVmaXhJbmRleCsrO1xuICB9XG5cbiAgd2hpbGUgKHN1ZmZpeEluZGV4ID4gcHJlZml4SW5kZXgpIHtcbiAgICBjb25zdCBpbmRleCA9IHN1ZmZpeEluZGV4IC0gMTtcbiAgICBjb25zdCBjaGFyID0gaW5wdXQuY2hhckF0KGluZGV4KTtcbiAgICBpZiAoIXN1ZmZpeENoYXJhY3RlcnMuaW5jbHVkZXMoY2hhcikpIGJyZWFrO1xuICAgIHN1ZmZpeEluZGV4ID0gaW5kZXg7XG4gIH1cblxuICByZXR1cm4gW1xuICAgIGlucHV0LnNsaWNlKDAsIHByZWZpeEluZGV4KSxcbiAgICBzcGxpdEZuKGlucHV0LnNsaWNlKHByZWZpeEluZGV4LCBzdWZmaXhJbmRleCkpLFxuICAgIGlucHV0LnNsaWNlKHN1ZmZpeEluZGV4KSxcbiAgXTtcbn1cbiIsICJpbXBvcnQgdHlwZSB7IENsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlIH0gZnJvbSAnQGNsb3VkZm9ybS9yZXNvdXJjZS10eXBlcyc7XG5pbXBvcnQgeyBwYXNjYWxDYXNlIH0gZnJvbSAnY2hhbmdlLWNhc2UnO1xuXG5leHBvcnQgY29uc3QgY2ZMb2dpY2FsTmFtZXMgPSB7XG4gIGJ1Y2tldChzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBwYXNjYWxDYXNlKGAke3N0cFJlc291cmNlTmFtZX0tYnVja2V0YCk7XG4gIH0sXG4gIGF0bGFzTW9uZ29Qcm9qZWN0KCkge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdBdGxhc01vbmdvJyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnTW9uZ29EQjo6U3RwQXRsYXNWMTo6UHJvamVjdCcgfVxuICAgIH0pO1xuICB9LFxuICBhdGxhc01vbmdvQ3JlZGVudGlhbHNQcm92aWRlcigpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnQXRsYXNNb25nb0NyZWRlbnRpYWxzUHJvdmlkZXInIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZScgfVxuICAgIH0pO1xuICB9LFxuICBhdGxhc01vbmdvUHJvamVjdFZwY05ldHdvcmtDb250YWluZXIoKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ0F0bGFzTW9uZ28nIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdNb25nb0RCOjpTdHBBdGxhc1YxOjpOZXR3b3JrQ29udGFpbmVyJyB9XG4gICAgfSk7XG4gIH0sXG4gIGF0bGFzTW9uZ29Qcm9qZWN0VnBjTmV0d29ya1BlZXJpbmcoKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ0F0bGFzTW9uZ28nIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdNb25nb0RCOjpTdHBBdGxhc1YxOjpOZXR3b3JrUGVlcmluZycgfVxuICAgIH0pO1xuICB9LFxuICBhdGxhc01vbmdvUHJvamVjdElwQWNjZXNzTGlzdCgpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnQXRsYXNNb25nbycgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ01vbmdvREI6OlN0cEF0bGFzVjE6OlByb2plY3RJcEFjY2Vzc0xpc3QnIH1cbiAgICB9KTtcbiAgfSxcbiAgYXRsYXNNb25nb1VzZXJBc3NvY2lhdGVkV2l0aFJvbGUoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnQXRsYXNNb25nbycgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ01vbmdvREI6OlN0cEF0bGFzVjE6OkRhdGFiYXNlVXNlcicgfVxuICAgIH0pO1xuICB9LFxuICBhdGxhc01vbmdvQ2x1c3Rlck1hc3RlclVzZXIoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ01vbmdvREI6OlN0cEF0bGFzVjE6OkRhdGFiYXNlVXNlcicgfVxuICAgIH0pO1xuICB9LFxuICBhdGxhc01vbmdvQ2x1c3RlcihzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnTW9uZ29EQjo6U3RwQXRsYXNWMTo6Q2x1c3RlcicgfVxuICAgIH0pO1xuICB9LFxuICByZWRpc1JlcGxpY2F0aW9uR3JvdXAoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6RWxhc3RpQ2FjaGU6OlJlcGxpY2F0aW9uR3JvdXAnIH1cbiAgICB9KTtcbiAgfSxcbiAgcmVkaXNMb2dHcm91cChzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpMb2dzOjpMb2dHcm91cCcgfVxuICAgIH0pO1xuICB9LFxuICByZWRpc1BhcmFtZXRlckdyb3VwKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkVsYXN0aUNhY2hlOjpQYXJhbWV0ZXJHcm91cCcgfVxuICAgIH0pO1xuICB9LFxuICByZWRpc1N1Ym5ldEdyb3VwKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkVsYXN0aUNhY2hlOjpTdWJuZXRHcm91cCcgfVxuICAgIH0pO1xuICB9LFxuICByZWRpc1NlY3VyaXR5R3JvdXAoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpTZWN1cml0eUdyb3VwJyB9XG4gICAgfSk7XG4gIH0sXG4gIGVmc0ZpbGVzeXN0ZW0oc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDoge1xuICAgICAgICBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6RUZTOjpGaWxlU3lzdGVtJ1xuICAgICAgfVxuICAgIH0pO1xuICB9LFxuICBlZnNBY2Nlc3NQb2ludCh7XG4gICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgIGVmc0ZpbGVzeXN0ZW1OYW1lLFxuICAgIHJvb3REaXJlY3RvcnlcbiAgfToge1xuICAgIHN0cFJlc291cmNlTmFtZTogc3RyaW5nO1xuICAgIGVmc0ZpbGVzeXN0ZW1OYW1lOiBzdHJpbmc7XG4gICAgcm9vdERpcmVjdG9yeT86IHN0cmluZztcbiAgfSkge1xuICAgIC8vIENyZWF0ZSBhIHVuaXF1ZSBpZGVudGlmaWVyIGJhc2VkIG9uIHRoZSByb290IGRpcmVjdG9yeVxuICAgIGNvbnN0IHJvb3REaXJJZGVudGlmaWVyID0gcm9vdERpcmVjdG9yeSA/IGAke3Jvb3REaXJlY3RvcnkucmVwbGFjZSgvXFwvL2csICctJykucmVwbGFjZSgvXi18LSQvZywgJycpfWAgOiAnUm9vdCc7XG5cbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjoge1xuICAgICAgICB0eXBlOiBgJHtlZnNGaWxlc3lzdGVtTmFtZX0tJHtyb290RGlySWRlbnRpZmllcn1gXG4gICAgICB9LFxuICAgICAgc3VmZml4OiB7XG4gICAgICAgIGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFRlM6OkFjY2Vzc1BvaW50J1xuICAgICAgfVxuICAgIH0pO1xuICB9LFxuICBlZnNNb3VudFRhcmdldChzdHBSZXNvdXJjZU5hbWU6IHN0cmluZywgbW91bnRUYXJnZXRJbmRleDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ1N1Ym5ldCcsIHR5cGVJbmRleDogbW91bnRUYXJnZXRJbmRleCB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFRlM6Ok1vdW50VGFyZ2V0JyB9XG4gICAgfSk7XG4gIH0sXG4gIGVmc1NlY3VyaXR5R3JvdXAoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpTZWN1cml0eUdyb3VwJyB9XG4gICAgfSk7XG4gIH0sXG4gIHNuc1JvbGVTZW5kU21zRnJvbUNvZ25pdG8oc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnU2VuZFNtcycgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpSb2xlJyB9XG4gICAgfSk7XG4gIH0sXG4gIGNsb3VkZnJvbnREaXN0cmlidXRpb24oc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcsIGRpc3RyaWJ1dGlvbkluZGV4OiBudW1iZXIpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnQ0ROJyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpEaXN0cmlidXRpb24nLCBpbmRleDogZGlzdHJpYnV0aW9uSW5kZXggfVxuICAgIH0pO1xuICB9LFxuICBjbG91ZGZyb250Q3VzdG9tQ2FjaGVQb2xpY3koc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcsIGNhY2hpbmdPcHRpb25zSGFzaDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogYENETkNhY2hlQmVoYXZpb3Ike2NhY2hpbmdPcHRpb25zSGFzaH1gIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6OkNhY2hlUG9saWN5JyB9XG4gICAgfSk7XG4gIH0sXG4gIGNsb3VkZnJvbnREZWZhdWx0Q2FjaGVQb2xpY3kodHlwZTogJ0RlZkR5bmFtaWMnIHwgJ0RlZlN0YXRpYycpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiBgQ0ROJHt0eXBlfWAgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6Q2FjaGVQb2xpY3knIH1cbiAgICB9KTtcbiAgfSxcbiAgY2xvdWRmcm9udEN1c3RvbU9yaWdpblJlcXVlc3RQb2xpY3koc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcsIGZvcndhcmRpbmdPcHRpb25zSGFzaDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogYENETkNhY2hlQmVoYXZpb3Ike2ZvcndhcmRpbmdPcHRpb25zSGFzaH1gIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6Ok9yaWdpblJlcXVlc3RQb2xpY3knIH1cbiAgICB9KTtcbiAgfSxcbiAgY2xvdWRmcm9udERlZmF1bHRPcmlnaW5SZXF1ZXN0UG9saWN5KHR5cGU6ICdEZWZEeW5hbWljJyB8ICdEZWZTdGF0aWMnKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogYENETiR7dHlwZX1gIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6Ok9yaWdpblJlcXVlc3RQb2xpY3knIH1cbiAgICB9KTtcbiAgfSxcbiAgY2xvdWRmcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5KHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ0NETicgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6Q2xvdWRGcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5JyB9XG4gICAgfSk7XG4gIH0sXG4gIG9wZW5OZXh0SG9zdEhlYWRlclJld3JpdGVGdW5jdGlvbihzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdPcGVuTmV4dEhvc3RIZWFkZXJSZXdyaXRlJyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpGdW5jdGlvbicgfVxuICAgIH0pO1xuICB9LFxuICBvcGVuTmV4dEFzc2V0UmVwbGFjZXJDdXN0b21SZXNvdXJjZShzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdBc3NldFJlcGxhY2VyJyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6Q3VzdG9tUmVzb3VyY2UnIH1cbiAgICB9KTtcbiAgfSxcbiAgb3Blbk5leHREeW5hbW9JbnNlcnRDdXN0b21SZXNvdXJjZShzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdEeW5hbW9JbnNlcnQnIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZScgfVxuICAgIH0pO1xuICB9LFxuICBkbnNSZWNvcmQoZnVsbHlRdWFsaWZpZWREb21haW5OYW1lOiBzdHJpbmcpIHtcbiAgICAvLyB3ZSBkbyBub3QgYnVpbGQgYnVpbGQgdGhlIHJlc291cmNlIG5hbWUgY29udmVudGlvbmFsbHkgdGhyb3VnaCBzdHBSZXNvdXJjZU5hbWVcbiAgICAvLyB0aGlzIGlzIGR1ZSB0byB1cGRhdGUgYmVoYXZpb3JzIG9mIENsb3VkZm9ybWF0aW9uXG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWU6ICcnLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6IGdldFNwZWNpZmllckZvckRvbWFpblJlc291cmNlKGZ1bGx5UXVhbGlmaWVkRG9tYWluTmFtZSkgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6Um91dGU1Mzo6UmVjb3JkU2V0JyB9XG4gICAgfSk7XG4gIH0sXG4gIGR5bmFtb0dsb2JhbFRhYmxlKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkR5bmFtb0RCOjpHbG9iYWxUYWJsZScgfVxuICAgIH0pO1xuICB9LFxuICBkeW5hbW9SZWdpb25hbFRhYmxlKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkR5bmFtb0RCOjpUYWJsZScgfVxuICAgIH0pO1xuICB9LFxuICBidWNrZXRQb2xpY3koc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6UzM6OkJ1Y2tldFBvbGljeScgfVxuICAgIH0pO1xuICB9LFxuICBsYW1iZGFMb2dHcm91cChzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpMb2dzOjpMb2dHcm91cCcgfVxuICAgIH0pO1xuICB9LFxuICBldmVudE9uRGVsaXZlcnlGYWlsdXJlU3FzUXVldWVQb2xpY3koc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcsIGV2ZW50SW5kZXg6IG51bWJlcikge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7XG4gICAgICAgIHR5cGU6ICdFdmVudCcsXG4gICAgICAgIHR5cGVJbmRleDogZXZlbnRJbmRleFxuICAgICAgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6U1FTOjpRdWV1ZVBvbGljeScgfVxuICAgIH0pO1xuICB9LFxuICBzbnNFdmVudFN1YnNjcmlwdGlvbihzdHBSZXNvdXJjZU5hbWU6IHN0cmluZywgZXZlbnRJbmRleDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHtcbiAgICAgICAgdHlwZTogJ0V2ZW50JyxcbiAgICAgICAgdHlwZUluZGV4OiBldmVudEluZGV4XG4gICAgICB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpTTlM6OlN1YnNjcmlwdGlvbicgfVxuICAgIH0pO1xuICB9LFxuICBzbnNFdmVudFBlcm1pc3Npb24oc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcsIGV2ZW50SW5kZXg6IG51bWJlcikge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7XG4gICAgICAgIHR5cGU6ICdFdmVudCcsXG4gICAgICAgIHR5cGVJbmRleDogZXZlbnRJbmRleFxuICAgICAgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6TGFtYmRhOjpQZXJtaXNzaW9uJyB9XG4gICAgfSk7XG4gIH0sXG4gIGVjclJlcG8oKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHtcbiAgICAgICAgdHlwZTogJ0NvbnRhaW5lcidcbiAgICAgIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkVDUjo6UmVwb3NpdG9yeScgfVxuICAgIH0pO1xuICB9LFxuICBkZXBsb3ltZW50QnVja2V0KCkge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3BlY2lmaWVyOiB7XG4gICAgICAgIHR5cGU6ICdEZXBsb3ltZW50J1xuICAgICAgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6UzM6OkJ1Y2tldCcgfVxuICAgIH0pO1xuICB9LFxuICBkZXBsb3ltZW50QnVja2V0UG9saWN5KCkge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3BlY2lmaWVyOiB7XG4gICAgICAgIHR5cGU6ICdEZXBsb3ltZW50J1xuICAgICAgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6UzM6OkJ1Y2tldFBvbGljeScgfVxuICAgIH0pO1xuICB9LFxuICBsYW1iZGFJbnZva2VDb25maWcoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6TGFtYmRhOjpFdmVudEludm9rZUNvbmZpZycgfVxuICAgIH0pO1xuICB9LFxuICBsYW1iZGFWZXJzaW9uUHVibGlzaGVyQ3VzdG9tUmVzb3VyY2Uoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnVmVyc2lvbicgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGb3JtYXRpb246OkN1c3RvbVJlc291cmNlJyB9XG4gICAgfSk7XG4gIH0sXG4gIGNvZGVEZXBsb3lTZXJ2aWNlUm9sZSgpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjoge1xuICAgICAgICB0eXBlOiAnQ29kZURlcGxveSdcbiAgICAgIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6Um9sZScgfVxuICAgIH0pO1xuICB9LFxuICBiYXRjaEluc3RhbmNlUm9sZSgpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjoge1xuICAgICAgICB0eXBlOiAnQmF0Y2hJbnN0YW5jZSdcbiAgICAgIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6Um9sZScgfVxuICAgIH0pO1xuICB9LFxuICBiYXRjaEluc3RhbmNlRGVmYXVsdFNlY3VyaXR5R3JvdXAoKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHtcbiAgICAgICAgdHlwZTogJ0JhdGNoSW5zdGFuY2UnXG4gICAgICB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFQzI6OlNlY3VyaXR5R3JvdXAnIH1cbiAgICB9KTtcbiAgfSxcbiAgYmF0Y2hJbnN0YW5jZVByb2ZpbGUoKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHtcbiAgICAgICAgdHlwZTogJ0JhdGNoSW5zdGFuY2UnXG4gICAgICB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06Okluc3RhbmNlUHJvZmlsZScgfVxuICAgIH0pO1xuICB9LFxuICBiYXRjaEluc3RhbmNlTGF1bmNoVGVtcGxhdGUoKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHtcbiAgICAgICAgdHlwZTogJ0JhdGNoSW5zdGFuY2UnXG4gICAgICB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFQzI6OkxhdW5jaFRlbXBsYXRlJyB9XG4gICAgfSk7XG4gIH0sXG4gIGJhdGNoU3RhdGVNYWNoaW5lRXhlY3V0aW9uUm9sZSgpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjoge1xuICAgICAgICB0eXBlOiAnQmF0Y2hTdGF0ZU1hY2hpbmUnXG4gICAgICB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnIH1cbiAgICB9KTtcbiAgfSxcbiAgYmF0Y2hTcG90RmxlZXRSb2xlKCkge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3BlY2lmaWVyOiB7XG4gICAgICAgIHR5cGU6ICdCYXRjaFNwb3RGbGVldCdcbiAgICAgIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6Um9sZScgfVxuICAgIH0pO1xuICB9LFxuICBiYXRjaFNlcnZpY2VSb2xlKCkge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3BlY2lmaWVyOiB7XG4gICAgICAgIHR5cGU6ICdCYXRjaFNlcnZpY2UnXG4gICAgICB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnIH1cbiAgICB9KTtcbiAgfSxcbiAgYmF0Y2hKb2JFeGVjdXRpb25Sb2xlKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6Um9sZScgfVxuICAgIH0pO1xuICB9LFxuICBiYXRjaENvbXB1dGVFbnZpcm9ubWVudChzcG90OiBib29sZWFuLCBncHU6IGJvb2xlYW4pIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjoge1xuICAgICAgICB0eXBlOiBgQmF0Y2gtJHtzcG90ID8gJ3Nwb3QnIDogJ29uRGVtYW5kJ30tJHtncHUgPyAnZ3B1JyA6ICcnfWBcbiAgICAgIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkJhdGNoOjpDb21wdXRlRW52aXJvbm1lbnQnIH1cbiAgICB9KTtcbiAgfSxcbiAgYmF0Y2hKb2JRdWV1ZShzcG90OiBib29sZWFuLCBncHU6IGJvb2xlYW4pIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjoge1xuICAgICAgICB0eXBlOiBgQmF0Y2gtJHtzcG90ID8gJ3Nwb3QnIDogJ29uRGVtYW5kJ30tJHtncHUgPyAnZ3B1JyA6ICcnfWBcbiAgICAgIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkJhdGNoOjpKb2JRdWV1ZScgfVxuICAgIH0pO1xuICB9LFxuICBzdWJuZXQocHVibGljU3VibmV0OiBib29sZWFuLCBzdWJuZXRJbmRleDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHtcbiAgICAgICAgdHlwZTogcHVibGljU3VibmV0ID8gJ1B1YmxpYycgOiAnUHJpdmF0ZSdcbiAgICAgIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkVDMjo6U3VibmV0JywgaW5kZXg6IHN1Ym5ldEluZGV4IH1cbiAgICB9KTtcbiAgfSxcbiAgdnBjKCkge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFQzI6OlZQQycgfVxuICAgIH0pO1xuICB9LFxuICB2cGNHYXRld2F5RW5kcG9pbnQodHlwZTogJ3MzJyB8ICdkeW5hbW8tZGInKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogYCR7dHlwZX0tR2F0ZXdheWAgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpWUENFbmRwb2ludCcgfVxuICAgIH0pO1xuICB9LFxuICBkYlN1Ym5ldEdyb3VwKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OlJEUzo6REJTdWJuZXRHcm91cCcgfVxuICAgIH0pO1xuICB9LFxuICBhdXJvcmFEYkNsdXN0ZXIoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6UkRTOjpEQkNsdXN0ZXInIH1cbiAgICB9KTtcbiAgfSxcbiAgYXVyb3JhRGJDbHVzdGVyUGFyYW1ldGVyR3JvdXAoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6UkRTOjpEQkNsdXN0ZXJQYXJhbWV0ZXJHcm91cCcgfVxuICAgIH0pO1xuICB9LFxuICBhdXJvcmFEYkNsdXN0ZXJMb2dHcm91cChzdHBSZXNvdXJjZU5hbWU6IHN0cmluZywgbG9nR3JvdXBUeXBlOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnQ2x1c3RlcicsIHN1YnR5cGU6IGxvZ0dyb3VwVHlwZSB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpMb2dzOjpMb2dHcm91cCcgfVxuICAgIH0pO1xuICB9LFxuICBkYlNlY3VyaXR5R3JvdXAoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpTZWN1cml0eUdyb3VwJyB9XG4gICAgfSk7XG4gIH0sXG4gIGRiSW5zdGFuY2Uoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6UkRTOjpEQkluc3RhbmNlJyB9XG4gICAgfSk7XG4gIH0sXG4gIGRiSW5zdGFuY2VMb2dHcm91cChzdHBSZXNvdXJjZU5hbWU6IHN0cmluZywgbG9nR3JvdXBUeXBlOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnSW5zdGFuY2UnLCBzdWJ0eXBlOiBsb2dHcm91cFR5cGUgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6TG9nczo6TG9nR3JvdXAnIH1cbiAgICB9KTtcbiAgfSxcbiAgb3BlblNlYXJjaERvbWFpbkxvZ0dyb3VwKHN0cFJlc291cmNlTmFtZTogc3RyaW5nLCBsb2dHcm91cFR5cGU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdJbnN0YW5jZScsIHN1YnR5cGU6IGxvZ0dyb3VwVHlwZSB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpMb2dzOjpMb2dHcm91cCcgfVxuICAgIH0pO1xuICB9LFxuICBkYk9wdGlvbkdyb3VwKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OlJEUzo6T3B0aW9uR3JvdXAnIH1cbiAgICB9KTtcbiAgfSxcbiAgZGJJbnN0YW5jZVBhcmFtZXRlckdyb3VwKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OlJEUzo6REJQYXJhbWV0ZXJHcm91cCcgfVxuICAgIH0pO1xuICB9LFxuICBkYlJlcGxpY2Eoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcsIHJlcGxpY2FOdW06IG51bWJlcikge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdSZXBsaWNhJywgdHlwZUluZGV4OiByZXBsaWNhTnVtIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OlJEUzo6REJJbnN0YW5jZScgfVxuICAgIH0pO1xuICB9LFxuICBkYlJlcGxpY2FMb2dHcm91cChzdHBSZXNvdXJjZU5hbWU6IHN0cmluZywgbG9nR3JvdXBUeXBlOiBzdHJpbmcsIHJlcGxpY2FOdW06IG51bWJlcikge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdSZXBsaWNhJywgdHlwZUluZGV4OiByZXBsaWNhTnVtLCBzdWJ0eXBlOiBsb2dHcm91cFR5cGUgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6TG9nczo6TG9nR3JvdXAnIH1cbiAgICB9KTtcbiAgfSxcbiAgZGJSZXBsaWNhUGFyYW1ldGVyR3JvdXAoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcsIHJlcGxpY2FOdW06IG51bWJlcikge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdSZXBsaWNhJywgdHlwZUluZGV4OiByZXBsaWNhTnVtIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OlJEUzo6REJQYXJhbWV0ZXJHcm91cCcgfVxuICAgIH0pO1xuICB9LFxuICBhdXJvcmFEYkluc3RhbmNlKHN0cFJlc291cmNlTmFtZTogc3RyaW5nLCBpbnN0YW5jZU51bTogbnVtYmVyKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OlJEUzo6REJJbnN0YW5jZScsIGluZGV4OiBpbnN0YW5jZU51bSB9XG4gICAgfSk7XG4gIH0sXG4gIGF1cm9yYURiSW5zdGFuY2VQYXJhbWV0ZXJHcm91cChzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdJbnN0YW5jZScgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6UkRTOjpEQlBhcmFtZXRlckdyb3VwJyB9XG4gICAgfSk7XG4gIH0sXG4gIGV2ZW50QnVzUnVsZShzdHBSZXNvdXJjZU5hbWU6IHN0cmluZywgZXZlbnRJbmRleDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHtcbiAgICAgICAgdHlwZTogJ0V2ZW50JyxcbiAgICAgICAgdHlwZUluZGV4OiBldmVudEluZGV4XG4gICAgICB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFdmVudHM6OlJ1bGUnIH1cbiAgICB9KTtcbiAgfSxcbiAgY3VzdG9tVGFnZ2luZ1NjaGVkdWxlUnVsZSgpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnU3RwQ3VzdG9tVGFnZ2luZ1NjaGVkdWxlJyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFdmVudHM6OlJ1bGUnIH1cbiAgICB9KTtcbiAgfSxcbiAgY3VzdG9tVGFnZ2luZ1NjaGVkdWxlUnVsZVBlcm1pc3Npb24oKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ1N0cEN1c3RvbVRhZ2dpbmdTY2hlZHVsZVJ1bGUnIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkxhbWJkYTo6UGVybWlzc2lvbicgfVxuICAgIH0pO1xuICB9LFxuICBjbG91ZFdhdGNoTG9nRXZlbnRTdWJzY3JpcHRpb25GaWx0ZXIoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcsIGV2ZW50SW5kZXg6IG51bWJlcikge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7XG4gICAgICAgIHR5cGU6ICdFdmVudCcsXG4gICAgICAgIHR5cGVJbmRleDogZXZlbnRJbmRleFxuICAgICAgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6TG9nczo6U3Vic2NyaXB0aW9uRmlsdGVyJyB9XG4gICAgfSk7XG4gIH0sXG4gIGV2ZW50U291cmNlTWFwcGluZyhzdHBSZXNvdXJjZU5hbWU6IHN0cmluZywgZXZlbnRJbmRleDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHtcbiAgICAgICAgdHlwZTogJ0V2ZW50JyxcbiAgICAgICAgdHlwZUluZGV4OiBldmVudEluZGV4XG4gICAgICB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpMYW1iZGE6OkV2ZW50U291cmNlTWFwcGluZycgfVxuICAgIH0pO1xuICB9LFxuICBpb3RFdmVudFRvcGljUnVsZShzdHBSZXNvdXJjZU5hbWU6IHN0cmluZywgZXZlbnRJbmRleDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHtcbiAgICAgICAgdHlwZTogJ0V2ZW50JyxcbiAgICAgICAgdHlwZUluZGV4OiBldmVudEluZGV4XG4gICAgICB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpJb1Q6OlRvcGljUnVsZScgfVxuICAgIH0pO1xuICB9LFxuICBraW5lc2lzRXZlbnRDb25zdW1lcihzdHBSZXNvdXJjZU5hbWU6IHN0cmluZywgZXZlbnRJbmRleDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHtcbiAgICAgICAgdHlwZTogJ0V2ZW50JyxcbiAgICAgICAgdHlwZUluZGV4OiBldmVudEluZGV4XG4gICAgICB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpLaW5lc2lzOjpTdHJlYW1Db25zdW1lcicgfVxuICAgIH0pO1xuICB9LFxuICBsYW1iZGEoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcsIGlzU3RwU2VydmljZUZ1bmN0aW9uPzogYm9vbGVhbikge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiBpc1N0cFNlcnZpY2VGdW5jdGlvbiA/IHsgdHlwZTogJ0N1c3RvbVJlc291cmNlJyB9IDogdW5kZWZpbmVkLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpMYW1iZGE6OkZ1bmN0aW9uJyB9XG4gICAgfSk7XG4gIH0sXG4gIGxhbWJkYVN0cEFsaWFzKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHtcbiAgICAgICAgdHlwZTogJ1N0cCdcbiAgICAgIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkxhbWJkYTo6QWxpYXMnIH1cbiAgICB9KTtcbiAgfSxcbiAgbGFtYmRhVXJsKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkxhbWJkYTo6VXJsJyB9XG4gICAgfSk7XG4gIH0sXG4gIGNvZGVEZXBsb3lEZXBsb3ltZW50R3JvdXAoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6Q29kZURlcGxveTo6RGVwbG95bWVudEdyb3VwJyB9XG4gICAgfSk7XG4gIH0sXG4gIGN1c3RvbVJlc291cmNlKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZScgfVxuICAgIH0pO1xuICB9LFxuICBzY3JpcHRDdXN0b21SZXNvdXJjZShzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdTY3JpcHQnIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZScgfVxuICAgIH0pO1xuICB9LFxuICBiYXRjaFN0YXRlTWFjaGluZShzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdKb2JFeGVjdXRpb24nIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OlN0ZXBGdW5jdGlvbnM6OlN0YXRlTWFjaGluZScgfVxuICAgIH0pO1xuICB9LFxuICBiYXRjaEpvYkRlZmluaXRpb24oc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6QmF0Y2g6OkpvYkRlZmluaXRpb24nIH1cbiAgICB9KTtcbiAgfSxcbiAgYmF0Y2hKb2JMb2dHcm91cChzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpMb2dzOjpMb2dHcm91cCcgfVxuICAgIH0pO1xuICB9LFxuICBnbG9iYWxTdGF0ZU1hY2hpbmVzUm9sZSgpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjoge1xuICAgICAgICB0eXBlOiAnR2xvYmFsU3RhdGVNYWNoaW5lJ1xuICAgICAgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpSb2xlJyB9XG4gICAgfSk7XG4gIH0sXG4gIHN0YXRlTWFjaGluZShzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpTdGVwRnVuY3Rpb25zOjpTdGF0ZU1hY2hpbmUnIH1cbiAgICB9KTtcbiAgfSxcbiAgaW50ZXJuZXRHYXRld2F5KCkge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFQzI6OkludGVybmV0R2F0ZXdheScgfVxuICAgIH0pO1xuICB9LFxuICB2cGNHYXRld2F5QXR0YWNobWVudCgpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpWUENHYXRld2F5QXR0YWNobWVudCcgfVxuICAgIH0pO1xuICB9LFxuICByb3V0ZVRhYmxlKHB1YmxpY1N1Ym5ldDogYm9vbGVhbiwgc3VibmV0SW5kZXg6IG51bWJlcikge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6IHB1YmxpY1N1Ym5ldCA/ICdQdWJsaWNTdWJuZXQnIDogJ1ByaXZhdGVTdWJuZXQnLCB0eXBlSW5kZXg6IHN1Ym5ldEluZGV4IH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkVDMjo6Um91dGVUYWJsZScgfVxuICAgIH0pO1xuICB9LFxuICBpbnRlcm5ldEdhdGV3YXlSb3V0ZShzdWJuZXRJbmRleDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ0ludGVybmV0R2F0ZXdheScgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpSb3V0ZScsIGluZGV4OiBzdWJuZXRJbmRleCB9XG4gICAgfSk7XG4gIH0sXG4gIGF0bGFzTW9uZ29WcGNSb3V0ZShwdWJsaWNTdWJuZXRUYWJsZTogYm9vbGVhbiwgc3VibmV0SW5kZXg6IG51bWJlcikge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6IGBBdGxhc01vbmdvJHtwdWJsaWNTdWJuZXRUYWJsZSA/ICdQdWJsaWNTdWJuZXQnIDogJ1ByaXZhdGVTdWJuZXQnfWAgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpSb3V0ZScsIGluZGV4OiBzdWJuZXRJbmRleCB9XG4gICAgfSk7XG4gIH0sXG4gIHJvdXRlVGFibGVUb1N1Ym5ldEFzc29jaWF0aW9uKHB1YmxpY1N1Ym5ldDogYm9vbGVhbiwgc3VibmV0SW5kZXg6IG51bWJlcikge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6IHB1YmxpY1N1Ym5ldCA/ICdQdWJsaWNTdWJuZXQnIDogJ1ByaXZhdGVTdWJuZXQnLCB0eXBlSW5kZXg6IHN1Ym5ldEluZGV4IH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkVDMjo6U3VibmV0Um91dGVUYWJsZUFzc29jaWF0aW9uJyB9XG4gICAgfSk7XG4gIH0sXG4gIG5hdEdhdGV3YXkoYXpJbmRleDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkVDMjo6TmF0R2F0ZXdheScsIGluZGV4OiBhekluZGV4IH1cbiAgICB9KTtcbiAgfSxcbiAgbmF0RWxhc3RpY0lwKGF6SW5kZXg6IG51bWJlcikge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdOYXQnIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkVDMjo6RUlQJywgaW5kZXg6IGF6SW5kZXggfVxuICAgIH0pO1xuICB9LFxuICBuYXRSb3V0ZShzdWJuZXRJbmRleDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ05hdFByaXZhdGVTdWJuZXQnIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkVDMjo6Um91dGUnLCBpbmRleDogc3VibmV0SW5kZXggfVxuICAgIH0pO1xuICB9LFxuICBldmVudEJ1cyhzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFdmVudHM6OkV2ZW50QnVzJyB9XG4gICAgfSk7XG4gIH0sXG4gIGV2ZW50QnVzQXJjaGl2ZShzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFdmVudHM6OkFyY2hpdmUnIH1cbiAgICB9KTtcbiAgfSxcbiAgZWNzQ2x1c3RlcihzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFQ1M6OkNsdXN0ZXInIH1cbiAgICB9KTtcbiAgfSxcbiAgZWNzVGFza0RlZmluaXRpb24oc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6RUNTOjpUYXNrRGVmaW5pdGlvbicgfVxuICAgIH0pO1xuICB9LFxuICBlY3NTZXJ2aWNlKHN0cFJlc291cmNlTmFtZTogc3RyaW5nLCBibHVlR3JlZW46IGJvb2xlYW4pIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogYmx1ZUdyZWVuID8geyB0eXBlOiAnQmx1ZUdyZWVuJyB9IDogdW5kZWZpbmVkLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFQ1M6OlNlcnZpY2UnIH1cbiAgICB9KTtcbiAgfSxcbiAgZWNzRXhlY3V0aW9uUm9sZSgpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnRWNzRXhlY3V0aW9uJyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnIH1cbiAgICB9KTtcbiAgfSxcbiAgZWNzRWMySW5zdGFuY2VSb2xlKCkge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3BlY2lmaWVyOiB7XG4gICAgICAgIHR5cGU6ICdFY3NJbnN0YW5jZSdcbiAgICAgIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6Um9sZScgfVxuICAgIH0pO1xuICB9LFxuICBlY3NFYzJBdXRvc2NhbGluZ0dyb3VwV2FybVBvb2woc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6QXV0b1NjYWxpbmc6Oldhcm1Qb29sJyB9XG4gICAgfSk7XG4gIH0sXG4gIGV2ZW50QnVzUm9sZUZvclNjaGVkdWxlZEluc3RhbmNlUmVmcmVzaCgpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnU2NoZWR1bGVkSW5zdGFuY2VSZWZyZXNoJyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnIH1cbiAgICB9KTtcbiAgfSxcbiAgc2NoZWR1bGVyUnVsZUZvclNjaGVkdWxlZEluc3RhbmNlUmVmcmVzaChzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdTY2hlZHVsZWRJbnN0YW5jZVJlZnJlc2gnIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkV2ZW50czo6UnVsZScgfVxuICAgIH0pO1xuICB9LFxuICBlY3NFYzJJbnN0YW5jZUxhdW5jaFRlbXBsYXRlKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkVDMjo6TGF1bmNoVGVtcGxhdGUnIH1cbiAgICB9KTtcbiAgfSxcbiAgZWNzRWMyQXV0b3NjYWxpbmdHcm91cChzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpBdXRvU2NhbGluZzo6QXV0b1NjYWxpbmdHcm91cCcgfVxuICAgIH0pO1xuICB9LFxuICBlY3NFYzJGb3JjZURlbGV0ZUF1dG9zY2FsaW5nR3JvdXBDdXN0b21SZXNvdXJjZShzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdGb3JjZURlbGV0ZUFzZycgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGb3JtYXRpb246OkN1c3RvbVJlc291cmNlJyB9XG4gICAgfSk7XG4gIH0sXG4gIGVjc0Rpc2FibGVNYW5hZ2VkVGVybWluYXRpb25Qcm90ZWN0aW9uQ3VzdG9tUmVzb3VyY2Uoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnRGlzYWJsZU1hbmFnZWRUZXJtaW5hdGlvblByb3RlY3Rpb24nIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZScgfVxuICAgIH0pO1xuICB9LFxuXG4gIGVjc0VjMkNhcGFjaXR5UHJvdmlkZXIoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6RUNTOjpDYXBhY2l0eVByb3ZpZGVyJyB9XG4gICAgfSk7XG4gIH0sXG4gIGVjc0VjMkNhcGFjaXR5UHJvdmlkZXJBc3NvY2lhdGlvbihzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFQ1M6OkNsdXN0ZXJDYXBhY2l0eVByb3ZpZGVyQXNzb2NpYXRpb25zJyB9XG4gICAgfSk7XG4gIH0sXG4gIGVjc0VjMkluc3RhbmNlUHJvZmlsZSgpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjoge1xuICAgICAgICB0eXBlOiAnRWNzSW5zdGFuY2UnXG4gICAgICB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06Okluc3RhbmNlUHJvZmlsZScgfVxuICAgIH0pO1xuICB9LFxuICBlY3NUYXNrUm9sZShzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnIH1cbiAgICB9KTtcbiAgfSxcbiAgZWNzQXV0b1NjYWxpbmdSb2xlKCkge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdFY3NBdXRvU2NhbGUnIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6Um9sZScgfVxuICAgIH0pO1xuICB9LFxuICAvLyBlY3NTY2hlZHVsZWRNYWludGVuYW5jZUV2ZW50QnVzUnVsZShzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAvLyAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAvLyAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAvLyAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdTY2hlZHVsZWRNYWludGVuYW5jZScgfSxcbiAgLy8gICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6RXZlbnRzOjpSdWxlJyB9XG4gIC8vICAgfSkucmVwbGFjZUFsbCgnXycsICcnKTtcbiAgLy8gfSxcbiAgZWNzU2NoZWR1bGVkTWFpbnRlbmFuY2VMYW1iZGFQZXJtaXNzaW9uKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ1NjaGVkdWxlZE1haW50ZW5hbmNlJyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpMYW1iZGE6OlBlcm1pc3Npb24nIH1cbiAgICB9KS5yZXBsYWNlQWxsKCdfJywgJycpO1xuICB9LFxuICBiYXN0aW9uRWMyTGF1bmNoVGVtcGxhdGUoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpMYXVuY2hUZW1wbGF0ZScgfVxuICAgIH0pO1xuICB9LFxuICBiYXN0aW9uRWMySW5zdGFuY2VQcm9maWxlKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6SW5zdGFuY2VQcm9maWxlJyB9XG4gICAgfSk7XG4gIH0sXG4gIGJhc3Rpb25FYzJBdXRvc2NhbGluZ0dyb3VwKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkF1dG9TY2FsaW5nOjpBdXRvU2NhbGluZ0dyb3VwJyB9XG4gICAgfSk7XG4gIH0sXG4gIGJhc3Rpb25TZWN1cml0eUdyb3VwKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkVDMjo6U2VjdXJpdHlHcm91cCcgfVxuICAgIH0pO1xuICB9LFxuICBiYXN0aW9uQ3dBZ2VudFNzbUFzc29jaWF0aW9uKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ0N3QWdlbnQnIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OlNTTTo6QXNzb2NpYXRpb24nIH1cbiAgICB9KTtcbiAgfSxcbiAgYmFzdGlvblNzbUFnZW50U3NtQXNzb2NpYXRpb24oc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnU3NtQWdlbnQnIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OlNTTTo6QXNzb2NpYXRpb24nIH1cbiAgICB9KTtcbiAgfSxcbiAgYmFzdGlvblJvbGUoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpSb2xlJyB9XG4gICAgfSk7XG4gIH0sXG4gIGJhc3Rpb25Mb2dHcm91cChzdHBSZXNvdXJjZU5hbWU6IHN0cmluZywgbG9nVHlwZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogcGFzY2FsQ2FzZShsb2dUeXBlKSB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpMb2dzOjpMb2dHcm91cCcgfVxuICAgIH0pO1xuICB9LFxuICBiYXN0aW9uQ2xvdWR3YXRjaFNzbURvY3VtZW50KCkge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdCYXN0aW9uQ2xvdWR3YXRjaEFnZW50JyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpTU006OkRvY3VtZW50JyB9XG4gICAgfSk7XG4gIH0sXG4gIHNlcnZpY2VEaXNjb3ZlcnlFY3NTZXJ2aWNlKHN0cFJlc291cmNlTmFtZTogc3RyaW5nLCBzZXJ2aWNlVGFyZ2V0Q29udGFpbmVyUG9ydDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogYFBvcnQke3NlcnZpY2VUYXJnZXRDb250YWluZXJQb3J0fURpc2NvdmVyeWAgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6U2VydmljZURpc2NvdmVyeTo6U2VydmljZScgfVxuICAgIH0pO1xuICB9LFxuICB3b3JrbG9hZFNlY3VyaXR5R3JvdXAoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpTZWN1cml0eUdyb3VwJyB9XG4gICAgfSk7XG4gIH0sXG4gIGxvYWRCYWxhbmNlclNlY3VyaXR5R3JvdXAoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnTGInIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkVDMjo6U2VjdXJpdHlHcm91cCcgfVxuICAgIH0pO1xuICB9LFxuICB0YXJnZXRHcm91cCh7XG4gICAgbG9hZEJhbGFuY2VyTmFtZSxcbiAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgdGFyZ2V0Q29udGFpbmVyUG9ydCxcbiAgICBibHVlR3JlZW5cbiAgfToge1xuICAgIHN0cFJlc291cmNlTmFtZTogc3RyaW5nO1xuICAgIGxvYWRCYWxhbmNlck5hbWU6IHN0cmluZztcbiAgICB0YXJnZXRDb250YWluZXJQb3J0PzogbnVtYmVyO1xuICAgIGJsdWVHcmVlbj86IGJvb2xlYW47XG4gIH0pIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjoge1xuICAgICAgICB0eXBlOiBgJHtsb2FkQmFsYW5jZXJOYW1lfSR7dGFyZ2V0Q29udGFpbmVyUG9ydCA/IGBUb1BvcnQke3RhcmdldENvbnRhaW5lclBvcnR9YCA6ICcnfSR7Ymx1ZUdyZWVuID8gJ0JHJyA6ICcnfWBcbiAgICAgIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkVsYXN0aWNMb2FkQmFsYW5jaW5nVjI6OlRhcmdldEdyb3VwJyB9XG4gICAgfSk7XG4gIH0sXG4gIGxhbWJkYVJvbGUoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpSb2xlJyB9XG4gICAgfSk7XG4gIH0sXG4gIGRlZmF1bHRMYW1iZGFGdW5jdGlvblJvbGUoKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ0xhbWJkYScgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpSb2xlJyB9XG4gICAgfSk7XG4gIH0sXG4gIGxhbWJkYVBlcm1pc3Npb24oc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcsIGV2ZW50SW5kZXg6IG51bWJlcikge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdFdmVudCcsIHR5cGVJbmRleDogZXZlbnRJbmRleCB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpMYW1iZGE6OlBlcm1pc3Npb24nIH1cbiAgICB9KTtcbiAgfSxcbiAgbGFtYmRhUHVibGljVXJsUGVybWlzc2lvbihzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdQdWJsaWNVcmwnIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkxhbWJkYTo6UGVybWlzc2lvbicgfVxuICAgIH0pO1xuICB9LFxuICBsYW1iZGFJb3RFdmVudFBlcm1pc3Npb24od29ya2xvYWROYW1lOiBzdHJpbmcsIGV2ZW50SW5kZXg6IG51bWJlcikge1xuICAgIHJldHVybiBwYXNjYWxDYXNlKGAke3dvcmtsb2FkTmFtZX0tRXZlbnQke2V2ZW50SW5kZXh9LWxhbWJkYS1pb3RFdmVudFBlcm1pc3Npb25gKTtcbiAgfSxcbiAgbGFtYmRhVGFyZ2V0R3JvdXBQZXJtaXNzaW9uKHN0cFJlc291cmNlTmFtZTogc3RyaW5nLCBsb2FkQmFsYW5jZXJOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiBgJHtsb2FkQmFsYW5jZXJOYW1lfVRhcmdldEdyb3VwYCB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpMYW1iZGE6OlBlcm1pc3Npb24nIH1cbiAgICB9KTtcbiAgfSxcbiAgaHR0cEFwaShzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpBcGlHYXRld2F5VjI6OkFwaScgfVxuICAgIH0pO1xuICB9LFxuICBodHRwQXBpTG9nR3JvdXAoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6TG9nczo6TG9nR3JvdXAnIH1cbiAgICB9KTtcbiAgfSxcbiAgaHR0cEFwaUxhbWJkYUludGVncmF0aW9uKHtcbiAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgc3RwSHR0cEFwaUdhdGV3YXlOYW1lXG4gIH06IHtcbiAgICBzdHBSZXNvdXJjZU5hbWU6IHN0cmluZztcbiAgICBzdHBIdHRwQXBpR2F0ZXdheU5hbWU6IHN0cmluZztcbiAgfSkge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6IHN0cEh0dHBBcGlHYXRld2F5TmFtZSB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpBcGlHYXRld2F5VjI6OkludGVncmF0aW9uJyB9XG4gICAgfSk7XG4gIH0sXG4gIGh0dHBBcGlDb250YWluZXJXb3JrbG9hZEludGVncmF0aW9uKHtcbiAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgc3RwSHR0cEFwaUdhdGV3YXlOYW1lLFxuICAgIHRhcmdldENvbnRhaW5lclBvcnRcbiAgfToge1xuICAgIHN0cFJlc291cmNlTmFtZTogc3RyaW5nO1xuICAgIHRhcmdldENvbnRhaW5lclBvcnQ6IG51bWJlcjtcbiAgICBzdHBIdHRwQXBpR2F0ZXdheU5hbWU6IHN0cmluZztcbiAgfSkge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6IGAke3N0cEh0dHBBcGlHYXRld2F5TmFtZX1Ub1BvcnQke3RhcmdldENvbnRhaW5lclBvcnR9YCB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpBcGlHYXRld2F5VjI6OkludGVncmF0aW9uJyB9XG4gICAgfSk7XG4gIH0sXG4gIGh0dHBBcGlBdXRob3JpemVyKHsgbWV0aG9kLCBwYXRoLCBzdHBSZXNvdXJjZU5hbWUgfTogeyBtZXRob2Q6IEh0dHBNZXRob2Q7IHBhdGg6IHN0cmluZzsgc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcgfSkge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lOiAnJyxcbiAgICAgIHNwZWNpZmllcjoge1xuICAgICAgICB0eXBlOiBgJHtzdHBSZXNvdXJjZU5hbWV9LSR7bWV0aG9kID09PSAnKicgPyAnQW55JyA6IG1ldGhvZH0tJHtwYXRoID09PSAnKicgPyAnRGVmYXVsdCcgOiBwYXRofWBcbiAgICAgIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkFwaUdhdGV3YXlWMjo6QXV0aG9yaXplcicgfVxuICAgIH0pO1xuICB9LFxuICBodHRwQXBpUm91dGUoeyBtZXRob2QsIHBhdGgsIHN0cFJlc291cmNlTmFtZSB9OiB7IG1ldGhvZDogSHR0cE1ldGhvZDsgcGF0aDogc3RyaW5nOyBzdHBSZXNvdXJjZU5hbWU6IHN0cmluZyB9KSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWU6ICcnLFxuICAgICAgc3BlY2lmaWVyOiB7XG4gICAgICAgIHR5cGU6IGAke3N0cFJlc291cmNlTmFtZX0tJHttZXRob2QgPT09ICcqJyA/ICdBbnknIDogbWV0aG9kfS0ke3BhdGggPT09ICcqJyA/ICdEZWZhdWx0JyA6IHBhdGh9YFxuICAgICAgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6QXBpR2F0ZXdheVYyOjpSb3V0ZScgfVxuICAgIH0pO1xuICB9LFxuICBodHRwQXBpVnBjTGluayhzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpBcGlHYXRld2F5VjI6OlZwY0xpbmsnIH1cbiAgICB9KTtcbiAgfSxcbiAgaHR0cEFwaVZwY0xpbmtTZWN1cml0eUdyb3VwKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ1ZwY0xpbmsnIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkVDMjo6U2VjdXJpdHlHcm91cCcgfVxuICAgIH0pO1xuICB9LFxuICBodHRwQXBpTGFtYmRhUGVybWlzc2lvbih7XG4gICAgc3RwUmVzb3VyY2VOYW1lT2ZMYW1iZGEsXG4gICAgc3RwUmVzb3VyY2VOYW1lT2ZIdHRwQXBpR2F0ZXdheVxuICB9OiB7XG4gICAgc3RwUmVzb3VyY2VOYW1lT2ZMYW1iZGE6IHN0cmluZztcbiAgICBzdHBSZXNvdXJjZU5hbWVPZkh0dHBBcGlHYXRld2F5OiBzdHJpbmc7XG4gIH0pIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZTogc3RwUmVzb3VyY2VOYW1lT2ZMYW1iZGEsXG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogc3RwUmVzb3VyY2VOYW1lT2ZIdHRwQXBpR2F0ZXdheSB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpMYW1iZGE6OlBlcm1pc3Npb24nIH1cbiAgICB9KTtcbiAgfSxcbiAgaHR0cEFwaVN0YWdlKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkFwaUdhdGV3YXlWMjo6U3RhZ2UnIH1cbiAgICB9KTtcbiAgfSxcbiAgaHR0cEFwaURvbWFpbihmdWxseVF1YWxpZmllZERvbWFpbk5hbWU6IHN0cmluZykge1xuICAgIC8vIHdlIGRvIG5vdCBidWlsZCBidWlsZCB0aGUgcmVzb3VyY2UgbmFtZSBjb252ZW50aW9uYWxseSB0aHJvdWdoIHN0cFJlc291cmNlTmFtZVxuICAgIC8vIHRoaXMgaXMgZHVlIHRvIHVwZGF0ZSBiZWhhdmlvcnMgb2YgQ2xvdWRmb3JtYXRpb25cbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZTogJycsXG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogZ2V0U3BlY2lmaWVyRm9yRG9tYWluUmVzb3VyY2UoZnVsbHlRdWFsaWZpZWREb21haW5OYW1lKSB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpBcGlHYXRld2F5VjI6OkRvbWFpbk5hbWUnIH1cbiAgICB9KTtcbiAgfSxcbiAgaHR0cEFwaURlZmF1bHREb21haW4oc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6QXBpR2F0ZXdheVYyOjpEb21haW5OYW1lJyB9XG4gICAgfSk7XG4gIH0sXG4gIGh0dHBBcGlEb21haW5NYXBwaW5nKGZ1bGx5UXVhbGlmaWVkRG9tYWluTmFtZTogc3RyaW5nKSB7XG4gICAgLy8gd2UgZG8gbm90IGJ1aWxkIGJ1aWxkIHRoZSByZXNvdXJjZSBuYW1lIGNvbnZlbnRpb25hbGx5IHRocm91Z2ggc3RwUmVzb3VyY2VOYW1lXG4gICAgLy8gdGhpcyBpcyBkdWUgdG8gdXBkYXRlIGJlaGF2aW9ycyBvZiBDbG91ZGZvcm1hdGlvblxuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lOiAnJyxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiBnZXRTcGVjaWZpZXJGb3JEb21haW5SZXNvdXJjZShmdWxseVF1YWxpZmllZERvbWFpbk5hbWUpIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkFwaUdhdGV3YXlWMjo6QXBpTWFwcGluZycgfVxuICAgIH0pO1xuICB9LFxuICBodHRwQXBpRGVmYXVsdERvbWFpbk1hcHBpbmcoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6QXBpR2F0ZXdheVYyOjpBcGlNYXBwaW5nJyB9XG4gICAgfSk7XG4gIH0sXG4gIGxpc3RlbmVyKGV4cG9zdXJlUG9ydDogbnVtYmVyLCBzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6IGBQb3J0JHtleHBvc3VyZVBvcnR9YCB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFbGFzdGljTG9hZEJhbGFuY2luZ1YyOjpMaXN0ZW5lcicgfVxuICAgIH0pO1xuICB9LFxuICBsaXN0ZW5lclJ1bGUoZXhwb3N1cmVQb3J0OiBudW1iZXIsIHN0cFJlc291cmNlTmFtZTogc3RyaW5nLCBydWxlUHJpb3JpdHk6IG51bWJlcikge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6IGBQb3J0JHtleHBvc3VyZVBvcnR9UHJpb3JpdHkke3J1bGVQcmlvcml0eX1gIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkVsYXN0aWNMb2FkQmFsYW5jaW5nVjI6Okxpc3RlbmVyUnVsZScgfVxuICAgIH0pO1xuICB9LFxuICBsaXN0ZW5lckNlcnRpZmljYXRlTGlzdChleHBvc3VyZVBvcnQ6IG51bWJlciwgc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiBgUG9ydCR7ZXhwb3N1cmVQb3J0fWAgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6RWxhc3RpY0xvYWRCYWxhbmNpbmdWMjo6TGlzdGVuZXJDZXJ0aWZpY2F0ZScgfVxuICAgIH0pO1xuICB9LFxuICBsb2FkQmFsYW5jZXIoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6RWxhc3RpY0xvYWRCYWxhbmNpbmdWMjo6TG9hZEJhbGFuY2VyJyB9XG4gICAgfSk7XG4gIH0sXG4gIGVjc0xvZ0dyb3VwKHN0cFJlc291cmNlTmFtZTogc3RyaW5nLCBjb250YWluZXJOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiBjb250YWluZXJOYW1lIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkxvZ3M6OkxvZ0dyb3VwJyB9XG4gICAgfSk7XG4gIH0sXG4gIGF1dG9TY2FsaW5nVGFyZ2V0KHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkFwcGxpY2F0aW9uQXV0b1NjYWxpbmc6OlNjYWxhYmxlVGFyZ2V0JyB9XG4gICAgfSk7XG4gIH0sXG4gIGR5bmFtb0F1dG9TY2FsaW5nVGFyZ2V0KHN0cFJlc291cmNlTmFtZTogc3RyaW5nLCBtZXRyaWM6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6IG1ldHJpYyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpBcHBsaWNhdGlvbkF1dG9TY2FsaW5nOjpTY2FsYWJsZVRhcmdldCcgfVxuICAgIH0pO1xuICB9LFxuICBhdXRvU2NhbGluZ1BvbGljeShzdHBSZXNvdXJjZU5hbWU6IHN0cmluZywgbWV0cmljOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiBtZXRyaWMgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6QXBwbGljYXRpb25BdXRvU2NhbGluZzo6U2NhbGluZ1BvbGljeScgfVxuICAgIH0pO1xuICB9LFxuICBjdXN0b21SZXNvdXJjZVMzRXZlbnRzKCkge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdFdmVudHMnIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZScgfVxuICAgIH0pO1xuICB9LFxuICAvLyBAZGVwcmVjYXRlZFxuICAvLyBzdGFja3RhcGVTZXJ2aWNlQ3VzdG9tUmVzb3VyY2VFZGdlRnVuY3Rpb25zKCkge1xuICAvLyAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAvLyAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdFZGdlRnVuY3Rpb25zJyB9LFxuICAvLyAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6Q3VzdG9tUmVzb3VyY2UnIH1cbiAgLy8gICB9KTtcbiAgLy8gfSxcbiAgY3VzdG9tUmVzb3VyY2VTZW5zaXRpdmVEYXRhKCkge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdTZW5zaXRpdmVEYXRhJyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6Q3VzdG9tUmVzb3VyY2UnIH1cbiAgICB9KTtcbiAgfSxcbiAgY3VzdG9tUmVzb3VyY2VBY2NlcHRWcGNQZWVyaW5ncygpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnQWNjZXB0VnBjUGVlcmluZ3MnIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZScgfVxuICAgIH0pO1xuICB9LFxuICBjdXN0b21SZXNvdXJjZURlZmF1bHREb21haW5DZXJ0KCkge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdEZWZhdWx0RG9tYWluQ2VydCcgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGb3JtYXRpb246OkN1c3RvbVJlc291cmNlJyB9XG4gICAgfSk7XG4gIH0sXG4gIGN1c3RvbVJlc291cmNlRWRnZUxhbWJkYUJ1Y2tldCgpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnRWRnZUxhbWJkYUJ1Y2tldCcgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGb3JtYXRpb246OkN1c3RvbVJlc291cmNlJyB9XG4gICAgfSk7XG4gIH0sXG4gIGN1c3RvbVJlc291cmNlRWRnZUxhbWJkYShzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdFZGdlTGFtYmRhJyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6Q3VzdG9tUmVzb3VyY2UnIH1cbiAgICB9KTtcbiAgfSxcbiAgY3VzdG9tUmVzb3VyY2VEZWZhdWx0RG9tYWluKHN0cFJlc291cmNlTmFtZTogc3RyaW5nLCBjZG4/OiBib29sZWFuKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogYCR7Y2RuID8gJ0NkbicgOiAnJ31EZWZhdWx0RG9tYWluYCB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6Q3VzdG9tUmVzb3VyY2UnIH1cbiAgICB9KTtcbiAgfSxcbiAgY3VzdG9tUmVzb3VyY2VEYXRhYmFzZURlbGV0aW9uUHJvdGVjdGlvbihzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdEZWxldGlvblByb3RlY3Rpb24nIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZScgfVxuICAgIH0pO1xuICB9LFxuICB1c2VyUG9vbChzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpDb2duaXRvOjpVc2VyUG9vbCcgfVxuICAgIH0pO1xuICB9LFxuICB1c2VyUG9vbENsaWVudChzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpDb2duaXRvOjpVc2VyUG9vbENsaWVudCcgfVxuICAgIH0pO1xuICB9LFxuICB1c2VyUG9vbERvbWFpbihzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpDb2duaXRvOjpVc2VyUG9vbERvbWFpbicgfVxuICAgIH0pO1xuICB9LFxuICBpZGVudGl0eVByb3ZpZGVyKHN0cFJlc291cmNlTmFtZTogc3RyaW5nLCB0eXBlOiBTdHBVc2VyQXV0aFBvb2xbJ2lkZW50aXR5UHJvdmlkZXJzJ11bbnVtYmVyXVsndHlwZSddKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZSB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpDb2duaXRvOjpVc2VyUG9vbElkZW50aXR5UHJvdmlkZXInIH1cbiAgICB9KTtcbiAgfSxcbiAgY29nbml0b0xhbWJkYUhvb2tQZXJtaXNzaW9uKHN0cFJlc291cmNlTmFtZTogc3RyaW5nLCBob29rTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogaG9va05hbWUgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6TGFtYmRhOjpQZXJtaXNzaW9uJyB9XG4gICAgfSk7XG4gIH0sXG4gIGNvZ25pdG9Vc2VyUG9vbERldGFpbHNDdXN0b21SZXNvdXJjZShzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdVc2VyUG9vbERldGFpbHMnIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZScgfVxuICAgIH0pO1xuICB9LFxuICB1c2VyUG9vbFVpQ3VzdG9taXphdGlvbkF0dGFjaG1lbnQoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6Q29nbml0bzo6VXNlclBvb2xVSUN1c3RvbWl6YXRpb25BdHRhY2htZW50JyB9XG4gICAgfSk7XG4gIH0sXG4gIHNlcnZpY2VEaXNjb3ZlcnlQcml2YXRlTmFtZXNwYWNlKCkge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdEaXNjb3ZlcnknIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OlNlcnZpY2VEaXNjb3Zlcnk6OlNlcnZpY2UnIH1cbiAgICB9KTtcbiAgfSxcbiAgbGFtYmRhQ29kZURlcGxveUFwcCgpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnTGFtYmRhQ29kZURlcGxveScgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6Q29kZURlcGxveTo6QXBwbGljYXRpb24nIH1cbiAgICB9KTtcbiAgfSxcbiAgZWNzQ29kZURlcGxveUFwcCgpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnRUNTQ29kZURlcGxveScgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6Q29kZURlcGxveTo6QXBwbGljYXRpb24nIH1cbiAgICB9KTtcbiAgfSxcbiAgc3RhY2tCdWRnZXQoc3RhY2tOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiBwYXNjYWxDYXNlKHN0YWNrTmFtZSkucmVwbGFjZUFsbCgnXycsICcnKSB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpCdWRnZXRzOjpCdWRnZXQnIH1cbiAgICB9KTtcbiAgfSxcbiAgdXBzdGFzaFJlZGlzRGF0YWJhc2Uoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ1Vwc3Rhc2g6OkRhdGFiYXNlc1YxOjpEYXRhYmFzZScgfVxuICAgIH0pO1xuICB9LFxuICB1cHN0YXNoQ3JlZGVudGlhbHNQcm92aWRlcigpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnVXBzdGFzaENyZWRlbnRpYWxzUHJvdmlkZXInIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZScgfVxuICAgIH0pO1xuICB9LFxuICBjbG91ZHdhdGNoQWxhcm0oc3RhY2t0YXBlQWxhcm1OYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZTogc3RhY2t0YXBlQWxhcm1OYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZFdhdGNoOjpBbGFybScgfVxuICAgIH0pLnJlcGxhY2VBbGwoJ18nLCAnJyk7XG4gIH0sXG4gIGNsb3Vkd2F0Y2hBbGFybUV2ZW50QnVzTm90aWZpY2F0aW9uUnVsZShzdGFja3RhcGVBbGFybU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lOiBzdGFja3RhcGVBbGFybU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ05vdGlmaWNhdGlvbicgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6RXZlbnRzOjpSdWxlJyB9XG4gICAgfSkucmVwbGFjZUFsbCgnXycsICcnKTtcbiAgfSxcbiAgY2xvdWR3YXRjaEFsYXJtRXZlbnRCdXNOb3RpZmljYXRpb25SdWxlTGFtYmRhUGVybWlzc2lvbihzdGFja3RhcGVBbGFybU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lOiBzdGFja3RhcGVBbGFybU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ05vdGlmaWNhdGlvbicgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6TGFtYmRhOjpQZXJtaXNzaW9uJyB9XG4gICAgfSkucmVwbGFjZUFsbCgnXycsICcnKTtcbiAgfSxcbiAgc3FzUXVldWUoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6U1FTOjpRdWV1ZScgfVxuICAgIH0pLnJlcGxhY2VBbGwoJ18nLCAnJyk7XG4gIH0sXG4gIHNxc1F1ZXVlUG9saWN5KHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OlNRUzo6UXVldWVQb2xpY3knIH1cbiAgICB9KTtcbiAgfSxcbiAgc25zVG9waWMoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6U05TOjpUb3BpYycgfVxuICAgIH0pLnJlcGxhY2VBbGwoJ18nLCAnJyk7XG4gIH0sXG4gIHdlYkFwcEZpcmV3YWxsQ3VzdG9tUmVzb3VyY2Uoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnV2ViQXBwRmlyZXdhbGwnIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZScgfVxuICAgIH0pO1xuICB9LFxuICB3ZWJBcHBGaXJld2FsbEFzc29jaWF0aW9uKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OldBRnYyOjpXZWJBQ0xBc3NvY2lhdGlvbicgfVxuICAgIH0pO1xuICB9LFxuICBvcGVuU2VhcmNoRG9tYWluKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6Ok9wZW5TZWFyY2hTZXJ2aWNlOjpEb21haW4nIH1cbiAgICB9KTtcbiAgfSxcbiAgb3BlblNlYXJjaEN1c3RvbVJlc291cmNlKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ09wZW5TZWFyY2gnIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZScgfVxuICAgIH0pO1xuICB9LFxuICBvcGVuU2VhcmNoU2VjdXJpdHlHcm91cChzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFQzI6OlNlY3VyaXR5R3JvdXAnIH1cbiAgICB9KTtcbiAgfSxcbiAgbG9nRm9yd2FyZGluZ0ZpcmVob3NlVG9TM1JvbGUoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnTG9nRm9yd2FyZGluZ1MzJyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnIH1cbiAgICB9KTtcbiAgfSxcbiAgbG9nRm9yd2FyZGluZ0N3VG9GaXJlaG9zZVJvbGUoeyBsb2dHcm91cENmTG9naWNhbE5hbWUgfTogeyBsb2dHcm91cENmTG9naWNhbE5hbWU6IHN0cmluZyB9KSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWU6IGxvZ0dyb3VwQ2ZMb2dpY2FsTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnQ3dUb0ZpcmVob3NlJyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnIH1cbiAgICB9KTtcbiAgfSxcbiAgbG9nRm9yd2FyZGluZ0ZhaWxlZEV2ZW50c0J1Y2tldChzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdMb2dGb3J3YXJkaW5nRmFpbGVkUmVjb3JkcycgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6UzM6OkJ1Y2tldCcgfVxuICAgIH0pO1xuICB9LFxuICBsb2dGb3J3YXJkaW5nRmlyZWhvc2VEZWxpdmVyeVN0cmVhbSh7IGxvZ0dyb3VwQ2ZMb2dpY2FsTmFtZSB9OiB7IGxvZ0dyb3VwQ2ZMb2dpY2FsTmFtZTogc3RyaW5nIH0pIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZTogbG9nR3JvdXBDZkxvZ2ljYWxOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpLaW5lc2lzRmlyZWhvc2U6OkRlbGl2ZXJ5U3RyZWFtJyB9XG4gICAgfSk7XG4gIH0sXG4gIGxvZ0ZvcndhcmRpbmdTdWJzY3JpcHRpb25GaWx0ZXIoeyBsb2dHcm91cENmTG9naWNhbE5hbWUgfTogeyBsb2dHcm91cENmTG9naWNhbE5hbWU6IHN0cmluZyB9KSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWU6IGxvZ0dyb3VwQ2ZMb2dpY2FsTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6TG9nczo6U3Vic2NyaXB0aW9uRmlsdGVyJyB9XG4gICAgfSk7XG4gIH1cbn07XG5cbmNvbnN0IGJ1aWxkQ2ZMb2dpY2FsTmFtZSA9ICh7XG4gIHN0cFJlc291cmNlTmFtZSxcbiAgc3BlY2lmaWVyLFxuICBzdWZmaXhcbn06IHtcbiAgc3RwUmVzb3VyY2VOYW1lPzogc3RyaW5nO1xuICBzcGVjaWZpZXI/OiB7IHR5cGU6IHN0cmluZzsgdHlwZUluZGV4PzogbnVtYmVyOyBzdWJ0eXBlPzogc3RyaW5nIH07XG4gIHN1ZmZpeDoge1xuICAgIGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiBDbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZSB8IFN1cHBvcnRlZFByaXZhdGVDZlJlc291cmNlVHlwZTtcbiAgICBpbmRleD86IG51bWJlcjtcbiAgfTtcbn0pID0+IHtcbiAgY29uc3Qgc3BsaXR0ZWRUeXBlID0gc3VmZml4LmNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlLnNwbGl0KCc6Jyk7XG4gIGNvbnN0IHJlc29sdmVkUGFyZW50TmFtZSA9IHN0cFJlc291cmNlTmFtZSB8fCAnU3RwJztcbiAgY29uc3QgcmVzb2x2ZWRTcGVjaWZpZXIgPSBzcGVjaWZpZXJcbiAgICA/IGAke3NwZWNpZmllci50eXBlfSR7c3BlY2lmaWVyLnR5cGVJbmRleCAhPT0gdW5kZWZpbmVkID8gc3BlY2lmaWVyLnR5cGVJbmRleCA6ICcnfSR7XG4gICAgICAgIHNwZWNpZmllci5zdWJ0eXBlICE9PSB1bmRlZmluZWQgPyBgLSR7c3BlY2lmaWVyLnN1YnR5cGV9YCA6ICcnXG4gICAgICB9YFxuICAgIDogJyc7XG4gIGNvbnN0IHJlc29sdmVkU3VmZml4ID0gYCR7c3BsaXR0ZWRUeXBlW3NwbGl0dGVkVHlwZS5sZW5ndGggLSAxXX0ke3N1ZmZpeC5pbmRleCAhPT0gdW5kZWZpbmVkID8gc3VmZml4LmluZGV4IDogJyd9YDtcbiAgcmV0dXJuIHBhc2NhbENhc2UoYCR7cmVzb2x2ZWRQYXJlbnROYW1lfS0ke3Jlc29sdmVkU3BlY2lmaWVyfS0ke3Jlc29sdmVkU3VmZml4fWApO1xufTtcblxuY29uc3QgZ2V0U3BlY2lmaWVyRm9yRG9tYWluUmVzb3VyY2UgPSAoZnVsbHlRdWFsaWZpZWREb21haW5OYW1lKSA9PiB7XG4gIGlmIChwYXNjYWxDYXNlKGZ1bGx5UXVhbGlmaWVkRG9tYWluTmFtZSkucmVwbGFjZSgnXycsICcnKS5sZW5ndGggPCA4NSkge1xuICAgIHJldHVybiBwYXNjYWxDYXNlKGZ1bGx5UXVhbGlmaWVkRG9tYWluTmFtZSkucmVwbGFjZSgnXycsICcnKTtcbiAgfVxuICBjb25zdCBzcGxpdHRlZERvbWFpbiA9IGZ1bGx5UXVhbGlmaWVkRG9tYWluTmFtZVxuICAgIC5zcGxpdCgnLicpXG4gICAgLm1hcCgoc3ViZG9tYWluKSA9PiBzdWJkb21haW4uc3BsaXQoJy0nKSlcbiAgICAuZmxhdCgpO1xuICBjb25zdCBtYXhDaGFyYWN0ZXJzUGVyV29yZCA9IE1hdGguZmxvb3IoODUgLyBzcGxpdHRlZERvbWFpbi5sZW5ndGgpO1xuICByZXR1cm4gc3BsaXR0ZWREb21haW4ubWFwKCh3b3JkKSA9PiBwYXNjYWxDYXNlKHdvcmQuc2xpY2UoMCwgbWF4Q2hhcmFjdGVyc1BlcldvcmQpKS5yZXBsYWNlKCdfJywgJycpKS5qb2luKCcnKTtcbn07XG4iLCAiaW1wb3J0IHsgY2ZMb2dpY2FsTmFtZXMgfSBmcm9tICcuLi8uLi8uLi8uLi9zaGFyZWQvbmFtaW5nL2xvZ2ljYWwtbmFtZXMnO1xuXG5leHBvcnQgY29uc3QgQ0hJTERfUkVTT1VSQ0VTOiBSZWNvcmQ8XG4gIFN0cFJlc291cmNlVHlwZSxcbiAgQXJyYXk8eyBsb2dpY2FsTmFtZTogKC4uLmFyZ3M6IGFueVtdKSA9PiBzdHJpbmc7IHJlc291cmNlVHlwZTogc3RyaW5nOyBjb25kaXRpb25hbD86IHRydWU7IHVucmVzb2x2YWJsZT86IHRydWUgfT5cbj4gPSB7XG4gIC8vID09PT09IEJVQ0tFVCA9PT09PVxuICBidWNrZXQ6IFtcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5idWNrZXQsIHJlc291cmNlVHlwZTogJ0FXUzo6UzM6OkJ1Y2tldCcgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5idWNrZXRQb2xpY3ksIHJlc291cmNlVHlwZTogJ0FXUzo6UzM6OkJ1Y2tldFBvbGljeScsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6Q2xvdWRGcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udEN1c3RvbUNhY2hlUG9saWN5LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpDYWNoZVBvbGljeScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnREZWZhdWx0Q2FjaGVQb2xpY3ksXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6OkNhY2hlUG9saWN5JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udEN1c3RvbU9yaWdpblJlcXVlc3RQb2xpY3ksXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6Ok9yaWdpblJlcXVlc3RQb2xpY3knLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250RGVmYXVsdE9yaWdpblJlcXVlc3RQb2xpY3ksXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6Ok9yaWdpblJlcXVlc3RQb2xpY3knLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250RGlzdHJpYnV0aW9uLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpEaXN0cmlidXRpb24nLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jdXN0b21SZXNvdXJjZURlZmF1bHREb21haW4sXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZG5zUmVjb3JkLCByZXNvdXJjZVR5cGU6ICdBV1M6OlJvdXRlNTM6OlJlY29yZFNldCcsIGNvbmRpdGlvbmFsOiB0cnVlIH1cbiAgXSxcblxuICAvLyA9PT09PSBGVU5DVElPTiA9PT09PVxuICBmdW5jdGlvbjogW1xuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmxhbWJkYVJvbGUsIHJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpSb2xlJyB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmxhbWJkYSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpMYW1iZGE6OkZ1bmN0aW9uJyB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVmc0FjY2Vzc1BvaW50LCByZXNvdXJjZVR5cGU6ICdBV1M6OkVGUzo6QWNjZXNzUG9pbnQnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLndvcmtsb2FkU2VjdXJpdHlHcm91cCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpFQzI6OlNlY3VyaXR5R3JvdXAnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmxhbWJkYVVybCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpMYW1iZGE6OlVybCcsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmxhbWJkYVB1YmxpY1VybFBlcm1pc3Npb24sXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkxhbWJkYTo6UGVybWlzc2lvbicsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMubGFtYmRhTG9nR3JvdXAsIHJlc291cmNlVHlwZTogJ0FXUzo6TG9nczo6TG9nR3JvdXAnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5sYW1iZGFJbnZva2VDb25maWcsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkxhbWJkYTo6RXZlbnRJbnZva2VDb25maWcnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5sYW1iZGFDb2RlRGVwbG95QXBwLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDb2RlRGVwbG95OjpBcHBsaWNhdGlvbicsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmxhbWJkYVZlcnNpb25QdWJsaXNoZXJDdXN0b21SZXNvdXJjZSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGb3JtYXRpb246OkN1c3RvbVJlc291cmNlJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY29kZURlcGxveURlcGxveW1lbnRHcm91cCxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q29kZURlcGxveTo6RGVwbG95bWVudEdyb3VwJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5sYW1iZGFTdHBBbGlhcywgcmVzb3VyY2VUeXBlOiAnQVdTOjpMYW1iZGE6OkFsaWFzJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpDbG91ZEZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHknLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250Q3VzdG9tQ2FjaGVQb2xpY3ksXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6OkNhY2hlUG9saWN5JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlLFxuICAgICAgdW5yZXNvbHZhYmxlOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udERlZmF1bHRDYWNoZVBvbGljeSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6Q2FjaGVQb2xpY3knLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250Q3VzdG9tT3JpZ2luUmVxdWVzdFBvbGljeSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6T3JpZ2luUmVxdWVzdFBvbGljeScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZSxcbiAgICAgIHVucmVzb2x2YWJsZTogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnREZWZhdWx0T3JpZ2luUmVxdWVzdFBvbGljeSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6T3JpZ2luUmVxdWVzdFBvbGljeScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnREaXN0cmlidXRpb24sXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6OkRpc3RyaWJ1dGlvbicsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZSxcbiAgICAgIHVucmVzb2x2YWJsZTogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmN1c3RvbVJlc291cmNlRGVmYXVsdERvbWFpbixcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGb3JtYXRpb246OkN1c3RvbVJlc291cmNlJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5kbnNSZWNvcmQsIHJlc291cmNlVHlwZTogJ0FXUzo6Um91dGU1Mzo6UmVjb3JkU2V0JywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMubGFtYmRhUGVybWlzc2lvbixcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6TGFtYmRhOjpQZXJtaXNzaW9uJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlLFxuICAgICAgdW5yZXNvbHZhYmxlOiB0cnVlXG4gICAgfVxuICBdLFxuXG4gIC8vID09PT09IFJFTEFUSU9OQUwgREFUQUJBU0UgPT09PT1cbiAgJ3JlbGF0aW9uYWwtZGF0YWJhc2UnOiBbXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZGJTdWJuZXRHcm91cCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpSRFM6OkRCU3VibmV0R3JvdXAnIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZGJTZWN1cml0eUdyb3VwLCByZXNvdXJjZVR5cGU6ICdBV1M6OkVDMjo6U2VjdXJpdHlHcm91cCcgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY3VzdG9tUmVzb3VyY2VEYXRhYmFzZURlbGV0aW9uUHJvdGVjdGlvbixcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGb3JtYXRpb246OkN1c3RvbVJlc291cmNlJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5hdXJvcmFEYkNsdXN0ZXIsIHJlc291cmNlVHlwZTogJ0FXUzo6UkRTOjpEQkNsdXN0ZXInLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5hdXJvcmFEYkNsdXN0ZXJQYXJhbWV0ZXJHcm91cCxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6UkRTOjpEQkNsdXN0ZXJQYXJhbWV0ZXJHcm91cCcsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmF1cm9yYURiQ2x1c3RlckxvZ0dyb3VwLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpMb2dzOjpMb2dHcm91cCcsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZSxcbiAgICAgIHVucmVzb2x2YWJsZTogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmF1cm9yYURiSW5zdGFuY2UsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OlJEUzo6REJJbnN0YW5jZScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZSxcbiAgICAgIHVucmVzb2x2YWJsZTogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmF1cm9yYURiSW5zdGFuY2VQYXJhbWV0ZXJHcm91cCxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6UkRTOjpEQlBhcmFtZXRlckdyb3VwJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5kYkluc3RhbmNlLCByZXNvdXJjZVR5cGU6ICdBV1M6OlJEUzo6REJJbnN0YW5jZScsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmRiSW5zdGFuY2VMb2dHcm91cCxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6TG9nczo6TG9nR3JvdXAnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWUsXG4gICAgICB1bnJlc29sdmFibGU6IHRydWVcbiAgICB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmRiT3B0aW9uR3JvdXAsIHJlc291cmNlVHlwZTogJ0FXUzo6UkRTOjpPcHRpb25Hcm91cCcsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmRiSW5zdGFuY2VQYXJhbWV0ZXJHcm91cCxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6UkRTOjpEQlBhcmFtZXRlckdyb3VwJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZGJSZXBsaWNhLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpSRFM6OkRCSW5zdGFuY2UnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWUsXG4gICAgICB1bnJlc29sdmFibGU6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5kYlJlcGxpY2FMb2dHcm91cCxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6TG9nczo6TG9nR3JvdXAnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWUsXG4gICAgICB1bnJlc29sdmFibGU6IHRydWVcbiAgICB9XG4gIF0sXG5cbiAgLy8gPT09PT0gRFlOQU1PIERCIFRBQkxFID09PT09XG4gICdkeW5hbW8tZGItdGFibGUnOiBbeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZHluYW1vR2xvYmFsVGFibGUsIHJlc291cmNlVHlwZTogJ0FXUzo6RHluYW1vREI6Okdsb2JhbFRhYmxlJyB9XSxcblxuICAvLyA9PT09PSBIVFRQIEFQSSBHQVRFV0FZID09PT09XG4gICdodHRwLWFwaS1nYXRld2F5JzogW1xuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmh0dHBBcGksIHJlc291cmNlVHlwZTogJ0FXUzo6QXBpR2F0ZXdheVYyOjpBcGknIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuaHR0cEFwaVN0YWdlLCByZXNvdXJjZVR5cGU6ICdBV1M6OkFwaUdhdGV3YXlWMjo6U3RhZ2UnIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuaHR0cEFwaUxvZ0dyb3VwLCByZXNvdXJjZVR5cGU6ICdBV1M6OkxvZ3M6OkxvZ0dyb3VwJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuaHR0cEFwaVZwY0xpbmtTZWN1cml0eUdyb3VwLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpFQzI6OlNlY3VyaXR5R3JvdXAnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmh0dHBBcGlWcGNMaW5rLCByZXNvdXJjZVR5cGU6ICdBV1M6OkFwaUdhdGV3YXlWMjo6VnBjTGluaycsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuaHR0cEFwaURvbWFpbiwgcmVzb3VyY2VUeXBlOiAnQVdTOjpBcGlHYXRld2F5VjI6OkRvbWFpbk5hbWUnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5odHRwQXBpRG9tYWluTWFwcGluZyxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6QXBpR2F0ZXdheVYyOjpBcGlNYXBwaW5nJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuaHR0cEFwaURlZmF1bHREb21haW4sXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkFwaUdhdGV3YXlWMjo6RG9tYWluTmFtZScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmh0dHBBcGlEZWZhdWx0RG9tYWluTWFwcGluZyxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6QXBpR2F0ZXdheVYyOjpBcGlNYXBwaW5nJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY3VzdG9tUmVzb3VyY2VEZWZhdWx0RG9tYWluLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6Q3VzdG9tUmVzb3VyY2UnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmRuc1JlY29yZCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpSb3V0ZTUzOjpSZWNvcmRTZXQnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHksXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6OkNsb3VkRnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnRDdXN0b21DYWNoZVBvbGljeSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6Q2FjaGVQb2xpY3knLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250RGVmYXVsdENhY2hlUG9saWN5LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpDYWNoZVBvbGljeScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnRDdXN0b21PcmlnaW5SZXF1ZXN0UG9saWN5LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpPcmlnaW5SZXF1ZXN0UG9saWN5JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udERlZmF1bHRPcmlnaW5SZXF1ZXN0UG9saWN5LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpPcmlnaW5SZXF1ZXN0UG9saWN5JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udERpc3RyaWJ1dGlvbixcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6RGlzdHJpYnV0aW9uJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfVxuICBdLFxuXG4gIC8vID09PT09IEJBVENIIEpPQiA9PT09PVxuICAnYmF0Y2gtam9iJzogW1xuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmJhdGNoU2VydmljZVJvbGUsIHJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpSb2xlJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5iYXRjaFNwb3RGbGVldFJvbGUsIHJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpSb2xlJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5iYXRjaEluc3RhbmNlUm9sZSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmJhdGNoSW5zdGFuY2VQcm9maWxlLCByZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6SW5zdGFuY2VQcm9maWxlJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5iYXRjaFN0YXRlTWFjaGluZUV4ZWN1dGlvblJvbGUsIHJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpSb2xlJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYmF0Y2hJbnN0YW5jZUxhdW5jaFRlbXBsYXRlLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpFQzI6OkxhdW5jaFRlbXBsYXRlJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYmF0Y2hJbnN0YW5jZURlZmF1bHRTZWN1cml0eUdyb3VwLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpFQzI6OlNlY3VyaXR5R3JvdXAnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5iYXRjaENvbXB1dGVFbnZpcm9ubWVudCxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6QmF0Y2g6OkNvbXB1dGVFbnZpcm9ubWVudCcsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYmF0Y2hKb2JRdWV1ZSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpCYXRjaDo6Sm9iUXVldWUnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmJhdGNoSm9iRGVmaW5pdGlvbiwgcmVzb3VyY2VUeXBlOiAnQVdTOjpCYXRjaDo6Sm9iRGVmaW5pdGlvbicgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5iYXRjaFN0YXRlTWFjaGluZSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpTdGVwRnVuY3Rpb25zOjpTdGF0ZU1hY2hpbmUnIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYmF0Y2hKb2JMb2dHcm91cCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpMb2dzOjpMb2dHcm91cCcsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYmF0Y2hKb2JFeGVjdXRpb25Sb2xlLCByZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6Um9sZScgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYXRsYXNNb25nb1VzZXJBc3NvY2lhdGVkV2l0aFJvbGUsXG4gICAgICByZXNvdXJjZVR5cGU6ICdNb25nb0RCOjpTdHBBdGxhc1YxOjpEYXRhYmFzZVVzZXInLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9XG4gIF0sXG5cbiAgLy8gPT09PT0gRVZFTlQgQlVTID09PT09XG4gICdldmVudC1idXMnOiBbXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZXZlbnRCdXMsIHJlc291cmNlVHlwZTogJ0FXUzo6RXZlbnRzOjpFdmVudEJ1cycgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5ldmVudEJ1c0FyY2hpdmUsIHJlc291cmNlVHlwZTogJ0FXUzo6RXZlbnRzOjpBcmNoaXZlJywgY29uZGl0aW9uYWw6IHRydWUgfVxuICBdLFxuXG4gIC8vID09PT09IFNUQVRFIE1BQ0hJTkUgPT09PT1cbiAgJ3N0YXRlLW1hY2hpbmUnOiBbXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZ2xvYmFsU3RhdGVNYWNoaW5lc1JvbGUsIHJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpSb2xlJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5zdGF0ZU1hY2hpbmUsIHJlc291cmNlVHlwZTogJ0FXUzo6U3RlcEZ1bmN0aW9uczo6U3RhdGVNYWNoaW5lJyB9XG4gIF0sXG5cbiAgLy8gPT09PT0gUkVESVMgQ0xVU1RFUiA9PT09PVxuICAncmVkaXMtY2x1c3Rlcic6IFtcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5yZWRpc1BhcmFtZXRlckdyb3VwLCByZXNvdXJjZVR5cGU6ICdBV1M6OkVsYXN0aUNhY2hlOjpQYXJhbWV0ZXJHcm91cCcgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5yZWRpc1N1Ym5ldEdyb3VwLCByZXNvdXJjZVR5cGU6ICdBV1M6OkVsYXN0aUNhY2hlOjpTdWJuZXRHcm91cCcgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5yZWRpc1NlY3VyaXR5R3JvdXAsIHJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpTZWN1cml0eUdyb3VwJyB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLnJlZGlzTG9nR3JvdXAsIHJlc291cmNlVHlwZTogJ0FXUzo6TG9nczo6TG9nR3JvdXAnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLnJlZGlzUmVwbGljYXRpb25Hcm91cCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpFbGFzdGlDYWNoZTo6UmVwbGljYXRpb25Hcm91cCcgfVxuICBdLFxuXG4gIC8vID09PT09IE1PTkdPIERCIEFUTEFTIENMVVNURVIgPT09PT1cbiAgJ21vbmdvLWRiLWF0bGFzLWNsdXN0ZXInOiBbXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmF0bGFzTW9uZ29DcmVkZW50aWFsc1Byb3ZpZGVyLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6Q3VzdG9tUmVzb3VyY2UnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmF0bGFzTW9uZ29Qcm9qZWN0LCByZXNvdXJjZVR5cGU6ICdNb25nb0RCOjpTdHBBdGxhc1YxOjpQcm9qZWN0JywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYXRsYXNNb25nb1Byb2plY3RJcEFjY2Vzc0xpc3QsXG4gICAgICByZXNvdXJjZVR5cGU6ICdNb25nb0RCOjpTdHBBdGxhc1YxOjpQcm9qZWN0SXBBY2Nlc3NMaXN0JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYXRsYXNNb25nb1Byb2plY3RWcGNOZXR3b3JrQ29udGFpbmVyLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnTW9uZ29EQjo6U3RwQXRsYXNWMTo6TmV0d29ya0NvbnRhaW5lcicsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmF0bGFzTW9uZ29Qcm9qZWN0VnBjTmV0d29ya1BlZXJpbmcsXG4gICAgICByZXNvdXJjZVR5cGU6ICdNb25nb0RCOjpTdHBBdGxhc1YxOjpOZXR3b3JrUGVlcmluZycsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYXRsYXNNb25nb1ZwY1JvdXRlLCByZXNvdXJjZVR5cGU6ICdBV1M6OkVDMjo6Um91dGUnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmF0bGFzTW9uZ29DbHVzdGVyLCByZXNvdXJjZVR5cGU6ICdNb25nb0RCOjpTdHBBdGxhc1YxOjpDbHVzdGVyJyB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5hdGxhc01vbmdvQ2x1c3Rlck1hc3RlclVzZXIsXG4gICAgICByZXNvdXJjZVR5cGU6ICdNb25nb0RCOjpTdHBBdGxhc1YxOjpEYXRhYmFzZVVzZXInLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9XG4gIF0sXG5cbiAgLy8gPT09PT0gVVNFUiBBVVRIIFBPT0wgPT09PT1cbiAgJ3VzZXItYXV0aC1wb29sJzogW1xuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLnVzZXJQb29sLCByZXNvdXJjZVR5cGU6ICdBV1M6OkNvZ25pdG86OlVzZXJQb29sJyB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLnNuc1JvbGVTZW5kU21zRnJvbUNvZ25pdG8sIHJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpSb2xlJyB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLnVzZXJQb29sQ2xpZW50LCByZXNvdXJjZVR5cGU6ICdBV1M6OkNvZ25pdG86OlVzZXJQb29sQ2xpZW50JyB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLnVzZXJQb29sRG9tYWluLCByZXNvdXJjZVR5cGU6ICdBV1M6OkNvZ25pdG86OlVzZXJQb29sRG9tYWluJyB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jb2duaXRvVXNlclBvb2xEZXRhaWxzQ3VzdG9tUmVzb3VyY2UsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZSdcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5pZGVudGl0eVByb3ZpZGVyLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDb2duaXRvOjpVc2VyUG9vbElkZW50aXR5UHJvdmlkZXInLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jb2duaXRvTGFtYmRhSG9va1Blcm1pc3Npb24sXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkxhbWJkYTo6UGVybWlzc2lvbicsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLnVzZXJQb29sVWlDdXN0b21pemF0aW9uQXR0YWNobWVudCxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q29nbml0bzo6VXNlclBvb2xVSUN1c3RvbWl6YXRpb25BdHRhY2htZW50JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMud2ViQXBwRmlyZXdhbGxBc3NvY2lhdGlvbixcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6V0FGdjI6OldlYkFDTEFzc29jaWF0aW9uJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfVxuICBdLFxuXG4gIC8vID09PT09IFVQU1RBU0ggUkVESVMgPT09PT1cbiAgJ3Vwc3Rhc2gtcmVkaXMnOiBbXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLnVwc3Rhc2hDcmVkZW50aWFsc1Byb3ZpZGVyLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6Q3VzdG9tUmVzb3VyY2UnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLnVwc3Rhc2hSZWRpc0RhdGFiYXNlLCByZXNvdXJjZVR5cGU6ICdVcHN0YXNoOjpSZWRpczo6RGF0YWJhc2UnIH1cbiAgXSxcblxuICAvLyA9PT09PSBBUFBMSUNBVElPTiBMT0FEIEJBTEFOQ0VSID09PT09XG4gICdhcHBsaWNhdGlvbi1sb2FkLWJhbGFuY2VyJzogW1xuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmxvYWRCYWxhbmNlciwgcmVzb3VyY2VUeXBlOiAnQVdTOjpFbGFzdGljTG9hZEJhbGFuY2luZ1YyOjpMb2FkQmFsYW5jZXInIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMubG9hZEJhbGFuY2VyU2VjdXJpdHlHcm91cCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpFQzI6OlNlY3VyaXR5R3JvdXAnIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLndlYkFwcEZpcmV3YWxsQXNzb2NpYXRpb24sXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OldBRnYyOjpXZWJBQ0xBc3NvY2lhdGlvbicsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMubGlzdGVuZXIsIHJlc291cmNlVHlwZTogJ0FXUzo6RWxhc3RpY0xvYWRCYWxhbmNpbmdWMjo6TGlzdGVuZXInLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jdXN0b21SZXNvdXJjZURlZmF1bHREb21haW4sXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZG5zUmVjb3JkLCByZXNvdXJjZVR5cGU6ICdBV1M6OlJvdXRlNTM6OlJlY29yZFNldCcsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6Q2xvdWRGcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udEN1c3RvbUNhY2hlUG9saWN5LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpDYWNoZVBvbGljeScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnREZWZhdWx0Q2FjaGVQb2xpY3ksXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6OkNhY2hlUG9saWN5JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udEN1c3RvbU9yaWdpblJlcXVlc3RQb2xpY3ksXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6Ok9yaWdpblJlcXVlc3RQb2xpY3knLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250RGVmYXVsdE9yaWdpblJlcXVlc3RQb2xpY3ksXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6Ok9yaWdpblJlcXVlc3RQb2xpY3knLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250RGlzdHJpYnV0aW9uLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpEaXN0cmlidXRpb24nLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9XG4gIF0sXG5cbiAgLy8gPT09PT0gTkVUV09SSyBMT0FEIEJBTEFOQ0VSID09PT09XG4gICduZXR3b3JrLWxvYWQtYmFsYW5jZXInOiBbXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMubG9hZEJhbGFuY2VyLCByZXNvdXJjZVR5cGU6ICdBV1M6OkVsYXN0aWNMb2FkQmFsYW5jaW5nVjI6OkxvYWRCYWxhbmNlcicgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5sb2FkQmFsYW5jZXJTZWN1cml0eUdyb3VwLCByZXNvdXJjZVR5cGU6ICdBV1M6OkVDMjo6U2VjdXJpdHlHcm91cCcgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5saXN0ZW5lciwgcmVzb3VyY2VUeXBlOiAnQVdTOjpFbGFzdGljTG9hZEJhbGFuY2luZ1YyOjpMaXN0ZW5lcicsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmN1c3RvbVJlc291cmNlRGVmYXVsdERvbWFpbixcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGb3JtYXRpb246OkN1c3RvbVJlc291cmNlJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5kbnNSZWNvcmQsIHJlc291cmNlVHlwZTogJ0FXUzo6Um91dGU1Mzo6UmVjb3JkU2V0JywgY29uZGl0aW9uYWw6IHRydWUgfVxuICBdLFxuXG4gIC8vID09PT09IEhPU1RJTkcgQlVDS0VUID09PT09XG4gIC8vIEhvc3RpbmcgYnVja2V0IGRlbGVnYXRlcyB0byBhIGJ1Y2tldCByZXNvdXJjZSwgc28gaXQgaW5jbHVkZXMgYWxsIGJ1Y2tldCBjaGlsZCByZXNvdXJjZXNcbiAgJ2hvc3RpbmctYnVja2V0JzogW1xuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmJ1Y2tldCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpTMzo6QnVja2V0JyB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmJ1Y2tldFBvbGljeSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpTMzo6QnVja2V0UG9saWN5JywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpDbG91ZEZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHknLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250Q3VzdG9tQ2FjaGVQb2xpY3ksXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6OkNhY2hlUG9saWN5JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udERlZmF1bHRDYWNoZVBvbGljeSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6Q2FjaGVQb2xpY3knLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250Q3VzdG9tT3JpZ2luUmVxdWVzdFBvbGljeSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6T3JpZ2luUmVxdWVzdFBvbGljeScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnREZWZhdWx0T3JpZ2luUmVxdWVzdFBvbGljeSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6T3JpZ2luUmVxdWVzdFBvbGljeScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnREaXN0cmlidXRpb24sXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6OkRpc3RyaWJ1dGlvbicsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmN1c3RvbVJlc291cmNlRGVmYXVsdERvbWFpbixcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGb3JtYXRpb246OkN1c3RvbVJlc291cmNlJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5kbnNSZWNvcmQsIHJlc291cmNlVHlwZTogJ0FXUzo6Um91dGU1Mzo6UmVjb3JkU2V0JywgY29uZGl0aW9uYWw6IHRydWUgfVxuICBdLFxuXG4gIC8vID09PT09IFdFQiBBUFAgRklSRVdBTEwgPT09PT1cbiAgJ3dlYi1hcHAtZmlyZXdhbGwnOiBbXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMud2ViQXBwRmlyZXdhbGxDdXN0b21SZXNvdXJjZSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6Q3VzdG9tUmVzb3VyY2UnIH1cbiAgXSxcblxuICAvLyA9PT09PSBPUEVOIFNFQVJDSCBET01BSU4gPT09PT1cbiAgJ29wZW4tc2VhcmNoLWRvbWFpbic6IFtcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5vcGVuU2VhcmNoRG9tYWluLCByZXNvdXJjZVR5cGU6ICdBV1M6Ok9wZW5TZWFyY2hTZXJ2aWNlOjpEb21haW4nIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMub3BlblNlYXJjaFNlY3VyaXR5R3JvdXAsIHJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpTZWN1cml0eUdyb3VwJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMub3BlblNlYXJjaERvbWFpbkxvZ0dyb3VwLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpMb2dzOjpMb2dHcm91cCcsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZSxcbiAgICAgIHVucmVzb2x2YWJsZTogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLm9wZW5TZWFyY2hDdXN0b21SZXNvdXJjZSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGb3JtYXRpb246OkN1c3RvbVJlc291cmNlJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfVxuICBdLFxuXG4gIC8vID09PT09IEVGUyBGSUxFU1lTVEVNID09PT09XG4gICdlZnMtZmlsZXN5c3RlbSc6IFtcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lZnNGaWxlc3lzdGVtLCByZXNvdXJjZVR5cGU6ICdBV1M6OkVGUzo6RmlsZVN5c3RlbScgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lZnNTZWN1cml0eUdyb3VwLCByZXNvdXJjZVR5cGU6ICdBV1M6OkVDMjo6U2VjdXJpdHlHcm91cCcgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWZzTW91bnRUYXJnZXQsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkVGUzo6TW91bnRUYXJnZXQnLFxuICAgICAgdW5yZXNvbHZhYmxlOiB0cnVlXG4gICAgfVxuICBdLFxuXG4gIC8vID09PT09IE5FWFRKUyBXRUIgPT09PT1cbiAgLy8gTmV4dEpTIHdlYiBkZWxlZ2F0ZXMgdG86IGJ1Y2tldCwgaW1hZ2VGdW5jdGlvbiwgcmV2YWxpZGF0aW9uRnVuY3Rpb24sIHJldmFsaWRhdGlvblF1ZXVlLFxuICAvLyByZXZhbGlkYXRpb25UYWJsZSwgcmV2YWxpZGF0aW9uSW5zZXJ0RnVuY3Rpb24sIGFuZCBvcHRpb25hbGx5IHNlcnZlckVkZ2VGdW5jdGlvbiBvciBzZXJ2ZXJGdW5jdGlvblxuICAnbmV4dGpzLXdlYic6IFtcbiAgICAvLyBOZXh0SlMtc3BlY2lmaWMgcmVzb3VyY2VzXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLm9wZW5OZXh0SG9zdEhlYWRlclJld3JpdGVGdW5jdGlvbixcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6RnVuY3Rpb24nXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMub3Blbk5leHRBc3NldFJlcGxhY2VyQ3VzdG9tUmVzb3VyY2UsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZSdcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5vcGVuTmV4dER5bmFtb0luc2VydEN1c3RvbVJlc291cmNlLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6Q3VzdG9tUmVzb3VyY2UnXG4gICAgfSxcbiAgICAvLyBGcm9tIGJ1Y2tldFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmJ1Y2tldCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpTMzo6QnVja2V0JyB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmJ1Y2tldFBvbGljeSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpTMzo6QnVja2V0UG9saWN5JywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpDbG91ZEZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHknLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250Q3VzdG9tQ2FjaGVQb2xpY3ksXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6OkNhY2hlUG9saWN5JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udERlZmF1bHRDYWNoZVBvbGljeSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6Q2FjaGVQb2xpY3knLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250Q3VzdG9tT3JpZ2luUmVxdWVzdFBvbGljeSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6T3JpZ2luUmVxdWVzdFBvbGljeScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnREZWZhdWx0T3JpZ2luUmVxdWVzdFBvbGljeSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6T3JpZ2luUmVxdWVzdFBvbGljeScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnREaXN0cmlidXRpb24sXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6OkRpc3RyaWJ1dGlvbicsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmN1c3RvbVJlc291cmNlRGVmYXVsdERvbWFpbixcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGb3JtYXRpb246OkN1c3RvbVJlc291cmNlJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5kbnNSZWNvcmQsIHJlc291cmNlVHlwZTogJ0FXUzo6Um91dGU1Mzo6UmVjb3JkU2V0JywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICAvLyBGcm9tIGZ1bmN0aW9ucyAoaW1hZ2VGdW5jdGlvbiwgcmV2YWxpZGF0aW9uRnVuY3Rpb24sIHNlcnZlckZ1bmN0aW9uLCB3YXJtZXJGdW5jdGlvbiwgcmV2YWxpZGF0aW9uSW5zZXJ0RnVuY3Rpb24pXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMubGFtYmRhUm9sZSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMubGFtYmRhLCByZXNvdXJjZVR5cGU6ICdBV1M6OkxhbWJkYTo6RnVuY3Rpb24nIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMubGFtYmRhTG9nR3JvdXAsIHJlc291cmNlVHlwZTogJ0FXUzo6TG9nczo6TG9nR3JvdXAnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmxhbWJkYVVybCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpMYW1iZGE6OlVybCcsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAgLy8gRnJvbSBlZGdlIGZ1bmN0aW9uIChzZXJ2ZXJFZGdlRnVuY3Rpb24pXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmN1c3RvbVJlc291cmNlRWRnZUxhbWJkYSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGb3JtYXRpb246OkN1c3RvbVJlc291cmNlJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICAvLyBGcm9tIHJldmFsaWRhdGlvblF1ZXVlXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuc3FzUXVldWUsIHJlc291cmNlVHlwZTogJ0FXUzo6U1FTOjpRdWV1ZScgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5zcXNRdWV1ZVBvbGljeSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpTUVM6OlF1ZXVlUG9saWN5JywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICAvLyBGcm9tIHJldmFsaWRhdGlvblRhYmxlXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZHluYW1vR2xvYmFsVGFibGUsIHJlc291cmNlVHlwZTogJ0FXUzo6RHluYW1vREI6Okdsb2JhbFRhYmxlJyB9XG4gIF0sXG5cbiAgLy8gPT09PT0gTVVMVEktQ09OVEFJTkVSIFdPUktMT0FEID09PT09XG4gICdtdWx0aS1jb250YWluZXItd29ya2xvYWQnOiBbXG4gICAgLy8gU2hhcmVkIGdsb2JhbCByZXNvdXJjZXMgKGNvbmRpdGlvbmFsIC0gY3JlYXRlZCBvbmx5IG9uY2UgaWYgbm90IGV4aXN0cylcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NFeGVjdXRpb25Sb2xlLCByZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6Um9sZScsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzQXV0b1NjYWxpbmdSb2xlLCByZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6Um9sZScsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAgLy8gU2NhbGluZyByZXNvdXJjZXMgKGNvbmRpdGlvbmFsIC0gb25seSBpZiBzY2FsaW5nIGlzIGNvbmZpZ3VyZWQpXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmF1dG9TY2FsaW5nVGFyZ2V0LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpBcHBsaWNhdGlvbkF1dG9TY2FsaW5nOjpTY2FsYWJsZVRhcmdldCcsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmF1dG9TY2FsaW5nUG9saWN5LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpBcHBsaWNhdGlvbkF1dG9TY2FsaW5nOjpTY2FsaW5nUG9saWN5JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlLFxuICAgICAgdW5yZXNvbHZhYmxlOiB0cnVlXG4gICAgfSxcbiAgICAvLyBFQzItYmFzZWQgcmVzb3VyY2VzIChjb25kaXRpb25hbCAtIG9ubHkgaWYgaW5zdGFuY2VUeXBlcyBhcmUgY29uZmlndXJlZClcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NFYzJJbnN0YW5jZVJvbGUsIHJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpSb2xlJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZXZlbnRCdXNSb2xlRm9yU2NoZWR1bGVkSW5zdGFuY2VSZWZyZXNoLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0VjMkluc3RhbmNlUHJvZmlsZSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06Okluc3RhbmNlUHJvZmlsZScsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0VjMkluc3RhbmNlTGF1bmNoVGVtcGxhdGUsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkVDMjo6TGF1bmNoVGVtcGxhdGUnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NFYzJBdXRvc2NhbGluZ0dyb3VwLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpBdXRvU2NhbGluZzo6QXV0b1NjYWxpbmdHcm91cCcsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0VjMkZvcmNlRGVsZXRlQXV0b3NjYWxpbmdHcm91cEN1c3RvbVJlc291cmNlLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6Q3VzdG9tUmVzb3VyY2UnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NFYzJDYXBhY2l0eVByb3ZpZGVyLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpFQ1M6OkNhcGFjaXR5UHJvdmlkZXInLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NFYzJDYXBhY2l0eVByb3ZpZGVyQXNzb2NpYXRpb24sXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkVDUzo6Q2x1c3RlckNhcGFjaXR5UHJvdmlkZXJBc3NvY2lhdGlvbnMnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5zY2hlZHVsZXJSdWxlRm9yU2NoZWR1bGVkSW5zdGFuY2VSZWZyZXNoLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpTY2hlZHVsZXI6OlNjaGVkdWxlJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzRWMyQXV0b3NjYWxpbmdHcm91cFdhcm1Qb29sLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpBdXRvU2NhbGluZzo6V2FybVBvb2wnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIC8vIERlcGxveW1lbnQgcmVzb3VyY2VzIChjb25kaXRpb25hbCAtIG9ubHkgaWYgZGVwbG95bWVudCBpcyBjb25maWd1cmVkKVxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0NvZGVEZXBsb3lBcHAsIHJlc291cmNlVHlwZTogJ0FXUzo6Q29kZURlcGxveTo6QXBwbGljYXRpb24nLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jb2RlRGVwbG95RGVwbG95bWVudEdyb3VwLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDb2RlRGVwbG95OjpEZXBsb3ltZW50R3JvdXAnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIC8vIENvcmUgcmVzb3VyY2VzIChhbHdheXMgcHJlc2VudClcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NDbHVzdGVyLCByZXNvdXJjZVR5cGU6ICdBV1M6OkVDUzo6Q2x1c3RlcicgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy53b3JrbG9hZFNlY3VyaXR5R3JvdXAsIHJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpTZWN1cml0eUdyb3VwJyB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NTZXJ2aWNlLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpFQ1M6OlNlcnZpY2UnLFxuICAgICAgdW5yZXNvbHZhYmxlOiB0cnVlXG4gICAgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NUYXNrUm9sZSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzVGFza0RlZmluaXRpb24sIHJlc291cmNlVHlwZTogJ0FXUzo6RUNTOjpUYXNrRGVmaW5pdGlvbicgfSxcbiAgICAvLyBDb25kaXRpb25hbCByZXNvdXJjZXNcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzTG9nR3JvdXAsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkxvZ3M6OkxvZ0dyb3VwJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlLFxuICAgICAgdW5yZXNvbHZhYmxlOiB0cnVlXG4gICAgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lZnNBY2Nlc3NQb2ludCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpFRlM6OkFjY2Vzc1BvaW50JywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYXRsYXNNb25nb1VzZXJBc3NvY2lhdGVkV2l0aFJvbGUsXG4gICAgICByZXNvdXJjZVR5cGU6ICdNb25nb0RCOjpTdHBBdGxhc1YxOjpEYXRhYmFzZVVzZXInLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9XG4gIF0sXG5cbiAgLy8gPT09PT0gU1FTIFFVRVVFID09PT09XG4gICdzcXMtcXVldWUnOiBbXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuc3FzUXVldWUsIHJlc291cmNlVHlwZTogJ0FXUzo6U1FTOjpRdWV1ZScgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5zcXNRdWV1ZVBvbGljeSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpTUVM6OlF1ZXVlUG9saWN5JywgY29uZGl0aW9uYWw6IHRydWUgfVxuICBdLFxuXG4gIC8vID09PT09IFNOUyBUT1BJQyA9PT09PVxuICAnc25zLXRvcGljJzogW3sgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLnNuc1RvcGljLCByZXNvdXJjZVR5cGU6ICdBV1M6OlNOUzo6VG9waWMnIH1dLFxuXG4gIC8vID09PT09IEJBU1RJT04gPT09PT1cbiAgYmFzdGlvbjogW1xuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5iYXN0aW9uQ2xvdWR3YXRjaFNzbURvY3VtZW50LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpTU006OkRvY3VtZW50JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5iYXN0aW9uRWMyQXV0b3NjYWxpbmdHcm91cCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpBdXRvU2NhbGluZzo6QXV0b1NjYWxpbmdHcm91cCcgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5iYXN0aW9uU2VjdXJpdHlHcm91cCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpFQzI6OlNlY3VyaXR5R3JvdXAnIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYmFzdGlvbkVjMkxhdW5jaFRlbXBsYXRlLCByZXNvdXJjZVR5cGU6ICdBV1M6OkVDMjo6TGF1bmNoVGVtcGxhdGUnIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYmFzdGlvblJvbGUsIHJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpSb2xlJyB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmJhc3Rpb25FYzJJbnN0YW5jZVByb2ZpbGUsIHJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpJbnN0YW5jZVByb2ZpbGUnIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYmFzdGlvbkN3QWdlbnRTc21Bc3NvY2lhdGlvbiwgcmVzb3VyY2VUeXBlOiAnQVdTOjpTU006OkFzc29jaWF0aW9uJyB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmJhc3Rpb25Tc21BZ2VudFNzbUFzc29jaWF0aW9uLCByZXNvdXJjZVR5cGU6ICdBV1M6OlNTTTo6QXNzb2NpYXRpb24nIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmJhc3Rpb25Mb2dHcm91cCxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6TG9nczo6TG9nR3JvdXAnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWUsXG4gICAgICB1bnJlc29sdmFibGU6IHRydWVcbiAgICB9XG4gIF0sXG5cbiAgLy8gPT09PT0gRURHRSBMQU1CREEgRlVOQ1RJT04gPT09PT1cbiAgJ2VkZ2UtbGFtYmRhLWZ1bmN0aW9uJzogW1xuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmN1c3RvbVJlc291cmNlRWRnZUxhbWJkYSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6Q3VzdG9tUmVzb3VyY2UnIH1cbiAgXSxcblxuICAvLyA9PT09PSBXRUIgU0VSVklDRSA9PT09PVxuICAvLyBXZWIgc2VydmljZSBkZWxlZ2F0ZXMgdG86IGNvbnRhaW5lcldvcmtsb2FkICsgb3B0aW9uYWxseSAoaHR0cEFwaUdhdGV3YXkgT1IgbG9hZEJhbGFuY2VyIE9SIG5ldHdvcmtMb2FkQmFsYW5jZXIpXG4gICd3ZWItc2VydmljZSc6IFtcbiAgICAvLyBGcm9tIG11bHRpLWNvbnRhaW5lci13b3JrbG9hZCAtIGNvcmUgcmVzb3VyY2VzIChhbHdheXMgcHJlc2VudClcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NDbHVzdGVyLCByZXNvdXJjZVR5cGU6ICdBV1M6OkVDUzo6Q2x1c3RlcicgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy53b3JrbG9hZFNlY3VyaXR5R3JvdXAsIHJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpTZWN1cml0eUdyb3VwJyB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NTZXJ2aWNlLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpFQ1M6OlNlcnZpY2UnLFxuICAgICAgdW5yZXNvbHZhYmxlOiB0cnVlXG4gICAgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NUYXNrUm9sZSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzVGFza0RlZmluaXRpb24sIHJlc291cmNlVHlwZTogJ0FXUzo6RUNTOjpUYXNrRGVmaW5pdGlvbicgfSxcbiAgICAvLyBGcm9tIG11bHRpLWNvbnRhaW5lci13b3JrbG9hZCAtIGNvbmRpdGlvbmFsIHJlc291cmNlc1xuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0V4ZWN1dGlvblJvbGUsIHJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpSb2xlJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NBdXRvU2NhbGluZ1JvbGUsIHJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpSb2xlJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYXV0b1NjYWxpbmdUYXJnZXQsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkFwcGxpY2F0aW9uQXV0b1NjYWxpbmc6OlNjYWxhYmxlVGFyZ2V0JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYXV0b1NjYWxpbmdQb2xpY3ksXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkFwcGxpY2F0aW9uQXV0b1NjYWxpbmc6OlNjYWxpbmdQb2xpY3knLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWUsXG4gICAgICB1bnJlc29sdmFibGU6IHRydWVcbiAgICB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0VjMkluc3RhbmNlUm9sZSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5ldmVudEJ1c1JvbGVGb3JTY2hlZHVsZWRJbnN0YW5jZVJlZnJlc2gsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6Um9sZScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzRWMySW5zdGFuY2VQcm9maWxlLCByZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6SW5zdGFuY2VQcm9maWxlJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzRWMySW5zdGFuY2VMYXVuY2hUZW1wbGF0ZSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpMYXVuY2hUZW1wbGF0ZScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0VjMkF1dG9zY2FsaW5nR3JvdXAsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkF1dG9TY2FsaW5nOjpBdXRvU2NhbGluZ0dyb3VwJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzRWMyRm9yY2VEZWxldGVBdXRvc2NhbGluZ0dyb3VwQ3VzdG9tUmVzb3VyY2UsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0VjMkNhcGFjaXR5UHJvdmlkZXIsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkVDUzo6Q2FwYWNpdHlQcm92aWRlcicsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0VjMkNhcGFjaXR5UHJvdmlkZXJBc3NvY2lhdGlvbixcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6RUNTOjpDbHVzdGVyQ2FwYWNpdHlQcm92aWRlckFzc29jaWF0aW9ucycsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLnNjaGVkdWxlclJ1bGVGb3JTY2hlZHVsZWRJbnN0YW5jZVJlZnJlc2gsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OlNjaGVkdWxlcjo6U2NoZWR1bGUnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NFYzJBdXRvc2NhbGluZ0dyb3VwV2FybVBvb2wsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkF1dG9TY2FsaW5nOjpXYXJtUG9vbCcsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzQ29kZURlcGxveUFwcCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpDb2RlRGVwbG95OjpBcHBsaWNhdGlvbicsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNvZGVEZXBsb3lEZXBsb3ltZW50R3JvdXAsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNvZGVEZXBsb3k6OkRlcGxveW1lbnRHcm91cCcsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0xvZ0dyb3VwLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpMb2dzOjpMb2dHcm91cCcsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZSxcbiAgICAgIHVucmVzb2x2YWJsZTogdHJ1ZVxuICAgIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWZzQWNjZXNzUG9pbnQsIHJlc291cmNlVHlwZTogJ0FXUzo6RUZTOjpBY2Nlc3NQb2ludCcsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAgLy8gRnJvbSBhcHBsaWNhdGlvbi1sb2FkLWJhbGFuY2VyIChjb25kaXRpb25hbCAtIG9ubHkgaWYgQUxCIGlzIHVzZWQpXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmxvYWRCYWxhbmNlcixcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6RWxhc3RpY0xvYWRCYWxhbmNpbmdWMjo6TG9hZEJhbGFuY2VyJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMubG9hZEJhbGFuY2VyU2VjdXJpdHlHcm91cCxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpTZWN1cml0eUdyb3VwJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5saXN0ZW5lciwgcmVzb3VyY2VUeXBlOiAnQVdTOjpFbGFzdGljTG9hZEJhbGFuY2luZ1YyOjpMaXN0ZW5lcicsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLndlYkFwcEZpcmV3YWxsQXNzb2NpYXRpb24sXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OldBRnYyOjpXZWJBQ0xBc3NvY2lhdGlvbicsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAgLy8gRnJvbSBodHRwLWFwaS1nYXRld2F5IChjb25kaXRpb25hbCAtIG9ubHkgaWYgSFRUUCBBUEkgR2F0ZXdheSBpcyB1c2VkLCBhbHRlcm5hdGl2ZSB0byBBTEIvTkxCKVxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmh0dHBBcGksIHJlc291cmNlVHlwZTogJ0FXUzo6QXBpR2F0ZXdheVYyOjpBcGknLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmh0dHBBcGlTdGFnZSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpBcGlHYXRld2F5VjI6OlN0YWdlJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5odHRwQXBpTG9nR3JvdXAsIHJlc291cmNlVHlwZTogJ0FXUzo6TG9nczo6TG9nR3JvdXAnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5odHRwQXBpVnBjTGlua1NlY3VyaXR5R3JvdXAsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkVDMjo6U2VjdXJpdHlHcm91cCcsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuaHR0cEFwaVZwY0xpbmssIHJlc291cmNlVHlwZTogJ0FXUzo6QXBpR2F0ZXdheVYyOjpWcGNMaW5rJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5odHRwQXBpRG9tYWluLCByZXNvdXJjZVR5cGU6ICdBV1M6OkFwaUdhdGV3YXlWMjo6RG9tYWluTmFtZScsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmh0dHBBcGlEb21haW5NYXBwaW5nLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpBcGlHYXRld2F5VjI6OkFwaU1hcHBpbmcnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5odHRwQXBpRGVmYXVsdERvbWFpbixcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6QXBpR2F0ZXdheVYyOjpEb21haW5OYW1lJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuaHR0cEFwaURlZmF1bHREb21haW5NYXBwaW5nLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpBcGlHYXRld2F5VjI6OkFwaU1hcHBpbmcnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIC8vIENvbW1vbiByZXNvdXJjZXMgKGRvbWFpbnMsIENETiAtIGFsbCBjb25kaXRpb25hbClcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY3VzdG9tUmVzb3VyY2VEZWZhdWx0RG9tYWluLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6Q3VzdG9tUmVzb3VyY2UnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmRuc1JlY29yZCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpSb3V0ZTUzOjpSZWNvcmRTZXQnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHksXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6OkNsb3VkRnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnRDdXN0b21DYWNoZVBvbGljeSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6Q2FjaGVQb2xpY3knLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250RGVmYXVsdENhY2hlUG9saWN5LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpDYWNoZVBvbGljeScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnRDdXN0b21PcmlnaW5SZXF1ZXN0UG9saWN5LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpPcmlnaW5SZXF1ZXN0UG9saWN5JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udERlZmF1bHRPcmlnaW5SZXF1ZXN0UG9saWN5LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpPcmlnaW5SZXF1ZXN0UG9saWN5JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udERpc3RyaWJ1dGlvbixcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6RGlzdHJpYnV0aW9uJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfVxuICBdLFxuXG4gIC8vID09PT09IFBSSVZBVEUgU0VSVklDRSA9PT09PVxuICAvLyBQcml2YXRlIHNlcnZpY2UgZGVsZWdhdGVzIHRvOiBjb250YWluZXJXb3JrbG9hZCArIG9wdGlvbmFsbHkgbG9hZEJhbGFuY2VyXG4gICdwcml2YXRlLXNlcnZpY2UnOiBbXG4gICAgLy8gRnJvbSBtdWx0aS1jb250YWluZXItd29ya2xvYWQgLSBjb3JlIHJlc291cmNlcyAoYWx3YXlzIHByZXNlbnQpXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzQ2x1c3RlciwgcmVzb3VyY2VUeXBlOiAnQVdTOjpFQ1M6OkNsdXN0ZXInIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMud29ya2xvYWRTZWN1cml0eUdyb3VwLCByZXNvdXJjZVR5cGU6ICdBV1M6OkVDMjo6U2VjdXJpdHlHcm91cCcgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzU2VydmljZSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6RUNTOjpTZXJ2aWNlJyxcbiAgICAgIHVucmVzb2x2YWJsZTogdHJ1ZVxuICAgIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzVGFza1JvbGUsIHJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpSb2xlJyB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc1Rhc2tEZWZpbml0aW9uLCByZXNvdXJjZVR5cGU6ICdBV1M6OkVDUzo6VGFza0RlZmluaXRpb24nIH0sXG4gICAgLy8gRnJvbSBtdWx0aS1jb250YWluZXItd29ya2xvYWQgLSBjb25kaXRpb25hbCByZXNvdXJjZXNcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NFeGVjdXRpb25Sb2xlLCByZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6Um9sZScsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzQXV0b1NjYWxpbmdSb2xlLCByZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6Um9sZScsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmF1dG9TY2FsaW5nVGFyZ2V0LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpBcHBsaWNhdGlvbkF1dG9TY2FsaW5nOjpTY2FsYWJsZVRhcmdldCcsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmF1dG9TY2FsaW5nUG9saWN5LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpBcHBsaWNhdGlvbkF1dG9TY2FsaW5nOjpTY2FsaW5nUG9saWN5JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlLFxuICAgICAgdW5yZXNvbHZhYmxlOiB0cnVlXG4gICAgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NFYzJJbnN0YW5jZVJvbGUsIHJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpSb2xlJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZXZlbnRCdXNSb2xlRm9yU2NoZWR1bGVkSW5zdGFuY2VSZWZyZXNoLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0VjMkluc3RhbmNlUHJvZmlsZSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06Okluc3RhbmNlUHJvZmlsZScsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0VjMkluc3RhbmNlTGF1bmNoVGVtcGxhdGUsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkVDMjo6TGF1bmNoVGVtcGxhdGUnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NFYzJBdXRvc2NhbGluZ0dyb3VwLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpBdXRvU2NhbGluZzo6QXV0b1NjYWxpbmdHcm91cCcsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0VjMkZvcmNlRGVsZXRlQXV0b3NjYWxpbmdHcm91cEN1c3RvbVJlc291cmNlLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6Q3VzdG9tUmVzb3VyY2UnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NFYzJDYXBhY2l0eVByb3ZpZGVyLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpFQ1M6OkNhcGFjaXR5UHJvdmlkZXInLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NFYzJDYXBhY2l0eVByb3ZpZGVyQXNzb2NpYXRpb24sXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkVDUzo6Q2x1c3RlckNhcGFjaXR5UHJvdmlkZXJBc3NvY2lhdGlvbnMnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5zY2hlZHVsZXJSdWxlRm9yU2NoZWR1bGVkSW5zdGFuY2VSZWZyZXNoLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpTY2hlZHVsZXI6OlNjaGVkdWxlJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzRWMyQXV0b3NjYWxpbmdHcm91cFdhcm1Qb29sLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpBdXRvU2NhbGluZzo6V2FybVBvb2wnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0NvZGVEZXBsb3lBcHAsIHJlc291cmNlVHlwZTogJ0FXUzo6Q29kZURlcGxveTo6QXBwbGljYXRpb24nLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jb2RlRGVwbG95RGVwbG95bWVudEdyb3VwLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDb2RlRGVwbG95OjpEZXBsb3ltZW50R3JvdXAnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NMb2dHcm91cCxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6TG9nczo6TG9nR3JvdXAnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWUsXG4gICAgICB1bnJlc29sdmFibGU6IHRydWVcbiAgICB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVmc0FjY2Vzc1BvaW50LCByZXNvdXJjZVR5cGU6ICdBV1M6OkVGUzo6QWNjZXNzUG9pbnQnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIC8vIEZyb20gYXBwbGljYXRpb24tbG9hZC1iYWxhbmNlciAoY29uZGl0aW9uYWwgLSBvbmx5IGlmIEFMQiBpcyBjb25maWd1cmVkKVxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5sb2FkQmFsYW5jZXIsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkVsYXN0aWNMb2FkQmFsYW5jaW5nVjI6OkxvYWRCYWxhbmNlcicsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmxvYWRCYWxhbmNlclNlY3VyaXR5R3JvdXAsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkVDMjo6U2VjdXJpdHlHcm91cCcsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMubGlzdGVuZXIsIHJlc291cmNlVHlwZTogJ0FXUzo6RWxhc3RpY0xvYWRCYWxhbmNpbmdWMjo6TGlzdGVuZXInLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jdXN0b21SZXNvdXJjZURlZmF1bHREb21haW4sXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZG5zUmVjb3JkLCByZXNvdXJjZVR5cGU6ICdBV1M6OlJvdXRlNTM6OlJlY29yZFNldCcsIGNvbmRpdGlvbmFsOiB0cnVlIH1cbiAgXSxcblxuICAvLyA9PT09PSBXT1JLRVIgU0VSVklDRSA9PT09PVxuICAvLyBXb3JrZXIgc2VydmljZSBkZWxlZ2F0ZXMgdG86IGNvbnRhaW5lcldvcmtsb2FkIG9ubHlcbiAgJ3dvcmtlci1zZXJ2aWNlJzogW1xuICAgIC8vIEZyb20gbXVsdGktY29udGFpbmVyLXdvcmtsb2FkIC0gY29yZSByZXNvdXJjZXMgKGFsd2F5cyBwcmVzZW50KVxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0NsdXN0ZXIsIHJlc291cmNlVHlwZTogJ0FXUzo6RUNTOjpDbHVzdGVyJyB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLndvcmtsb2FkU2VjdXJpdHlHcm91cCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpFQzI6OlNlY3VyaXR5R3JvdXAnIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc1NlcnZpY2UsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkVDUzo6U2VydmljZScsXG4gICAgICB1bnJlc29sdmFibGU6IHRydWVcbiAgICB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc1Rhc2tSb2xlLCByZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6Um9sZScgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NUYXNrRGVmaW5pdGlvbiwgcmVzb3VyY2VUeXBlOiAnQVdTOjpFQ1M6OlRhc2tEZWZpbml0aW9uJyB9LFxuICAgIC8vIEZyb20gbXVsdGktY29udGFpbmVyLXdvcmtsb2FkIC0gY29uZGl0aW9uYWwgcmVzb3VyY2VzXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzRXhlY3V0aW9uUm9sZSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0F1dG9TY2FsaW5nUm9sZSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5hdXRvU2NhbGluZ1RhcmdldCxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6QXBwbGljYXRpb25BdXRvU2NhbGluZzo6U2NhbGFibGVUYXJnZXQnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5hdXRvU2NhbGluZ1BvbGljeSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6QXBwbGljYXRpb25BdXRvU2NhbGluZzo6U2NhbGluZ1BvbGljeScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZSxcbiAgICAgIHVucmVzb2x2YWJsZTogdHJ1ZVxuICAgIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzRWMySW5zdGFuY2VSb2xlLCByZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6Um9sZScsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmV2ZW50QnVzUm9sZUZvclNjaGVkdWxlZEluc3RhbmNlUmVmcmVzaCxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpSb2xlJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NFYzJJbnN0YW5jZVByb2ZpbGUsIHJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpJbnN0YW5jZVByb2ZpbGUnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NFYzJJbnN0YW5jZUxhdW5jaFRlbXBsYXRlLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpFQzI6OkxhdW5jaFRlbXBsYXRlJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzRWMyQXV0b3NjYWxpbmdHcm91cCxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6QXV0b1NjYWxpbmc6OkF1dG9TY2FsaW5nR3JvdXAnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NFYzJGb3JjZURlbGV0ZUF1dG9zY2FsaW5nR3JvdXBDdXN0b21SZXNvdXJjZSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGb3JtYXRpb246OkN1c3RvbVJlc291cmNlJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzRWMyQ2FwYWNpdHlQcm92aWRlcixcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6RUNTOjpDYXBhY2l0eVByb3ZpZGVyJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzRWMyQ2FwYWNpdHlQcm92aWRlckFzc29jaWF0aW9uLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpFQ1M6OkNsdXN0ZXJDYXBhY2l0eVByb3ZpZGVyQXNzb2NpYXRpb25zJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuc2NoZWR1bGVyUnVsZUZvclNjaGVkdWxlZEluc3RhbmNlUmVmcmVzaCxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6U2NoZWR1bGVyOjpTY2hlZHVsZScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0VjMkF1dG9zY2FsaW5nR3JvdXBXYXJtUG9vbCxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6QXV0b1NjYWxpbmc6Oldhcm1Qb29sJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NDb2RlRGVwbG95QXBwLCByZXNvdXJjZVR5cGU6ICdBV1M6OkNvZGVEZXBsb3k6OkFwcGxpY2F0aW9uJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY29kZURlcGxveURlcGxveW1lbnRHcm91cCxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q29kZURlcGxveTo6RGVwbG95bWVudEdyb3VwJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzTG9nR3JvdXAsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkxvZ3M6OkxvZ0dyb3VwJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlLFxuICAgICAgdW5yZXNvbHZhYmxlOiB0cnVlXG4gICAgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lZnNBY2Nlc3NQb2ludCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpFRlM6OkFjY2Vzc1BvaW50JywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYXRsYXNNb25nb1VzZXJBc3NvY2lhdGVkV2l0aFJvbGUsXG4gICAgICByZXNvdXJjZVR5cGU6ICdNb25nb0RCOjpTdHBBdGxhc1YxOjpEYXRhYmFzZVVzZXInLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9XG4gIF0sXG5cbiAgLy8gPT09PT0gT1RIRVIgUkVTT1VSQ0VTID09PT09XG4gICdjdXN0b20tcmVzb3VyY2UtaW5zdGFuY2UnOiBbXSxcbiAgJ2N1c3RvbS1yZXNvdXJjZS1kZWZpbml0aW9uJzogW10sXG4gICdkZXBsb3ltZW50LXNjcmlwdCc6IFtdLFxuICAnYXdzLWNkay1jb25zdHJ1Y3QnOiBbXVxufTtcbiIsICJpbXBvcnQgeyBDSElMRF9SRVNPVVJDRVMgfSBmcm9tICcuL2NoaWxkLXJlc291cmNlcyc7XG5cbi8vIFByaXZhdGUgc3ltYm9scyBmb3IgaW50ZXJuYWwgbWV0aG9kcyAtIG5vdCBhY2Nlc3NpYmxlIGZyb20gb3V0c2lkZVxuLy8gVXNlIFN5bWJvbC5mb3IoKSBzbyBpdCBjYW4gYmUgYWNjZXNzZWQgYWNyb3NzIG1vZHVsZXMgKGNydWNpYWwgZm9yIG5wbSBwYWNrYWdlIGludGVyb3ApXG5jb25zdCBnZXRQYXJhbVJlZmVyZW5jZVN5bWJvbCA9IFN5bWJvbC5mb3IoJ3N0YWNrdGFwZTpnZXRQYXJhbVJlZmVyZW5jZScpO1xuY29uc3QgZ2V0VHlwZVN5bWJvbCA9IFN5bWJvbC5mb3IoJ3N0YWNrdGFwZTpnZXRUeXBlJyk7XG5jb25zdCBnZXRQcm9wZXJ0aWVzU3ltYm9sID0gU3ltYm9sLmZvcignc3RhY2t0YXBlOmdldFByb3BlcnRpZXMnKTtcbmNvbnN0IGdldE92ZXJyaWRlc1N5bWJvbCA9IFN5bWJvbC5mb3IoJ3N0YWNrdGFwZTpnZXRPdmVycmlkZXMnKTtcbmNvbnN0IGdldFRyYW5zZm9ybXNTeW1ib2wgPSBTeW1ib2wuZm9yKCdzdGFja3RhcGU6Z2V0VHJhbnNmb3JtcycpO1xuY29uc3Qgc2V0UmVzb3VyY2VOYW1lU3ltYm9sID0gU3ltYm9sLmZvcignc3RhY2t0YXBlOnNldFJlc291cmNlTmFtZScpO1xuY29uc3QgcmVzb3VyY2VQYXJhbVJlZlN5bWJvbCA9IFN5bWJvbC5mb3IoJ3N0YWNrdGFwZTppc1Jlc291cmNlUGFyYW1SZWYnKTtcbmNvbnN0IGJhc2VUeXBlUHJvcGVydGllc1N5bWJvbCA9IFN5bWJvbC5mb3IoJ3N0YWNrdGFwZTppc0Jhc2VUeXBlUHJvcGVydGllcycpO1xuXG4vLyBEdWNrLXR5cGUgY2hlY2tlcnMgLSB1c2Ugc3ltYm9scyBpbnN0ZWFkIG9mIGluc3RhbmNlb2YgZm9yIGNyb3NzLW1vZHVsZSBjb21wYXRpYmlsaXR5XG5jb25zdCBpc0Jhc2VSZXNvdXJjZSA9ICh2YWx1ZTogdW5rbm93bik6IHZhbHVlIGlzIEJhc2VSZXNvdXJjZSA9PlxuICB2YWx1ZSAhPT0gbnVsbCAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIHNldFJlc291cmNlTmFtZVN5bWJvbCBpbiB2YWx1ZTtcblxuY29uc3QgaXNCYXNlVHlwZVByb3BlcnRpZXMgPSAodmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBCYXNlVHlwZVByb3BlcnRpZXMgPT5cbiAgdmFsdWUgIT09IG51bGwgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiBiYXNlVHlwZVByb3BlcnRpZXNTeW1ib2wgaW4gdmFsdWU7XG5cbmNvbnN0IGlzUmVzb3VyY2VQYXJhbVJlZmVyZW5jZSA9ICh2YWx1ZTogdW5rbm93bik6IHZhbHVlIGlzIFJlc291cmNlUGFyYW1SZWZlcmVuY2UgPT5cbiAgdmFsdWUgIT09IG51bGwgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiByZXNvdXJjZVBhcmFtUmVmU3ltYm9sIGluIHZhbHVlO1xuXG5jb25zdCBkZWZlcnJlZE5hbWVTeW1ib2wgPSBTeW1ib2wuZm9yKCdzdGFja3RhcGU6aXNEZWZlcnJlZFJlc291cmNlTmFtZScpO1xuXG5jb25zdCBpc0RlZmVycmVkUmVzb3VyY2VOYW1lID0gKHZhbHVlOiB1bmtub3duKTogdmFsdWUgaXMgRGVmZXJyZWRSZXNvdXJjZU5hbWUgPT5cbiAgdmFsdWUgIT09IG51bGwgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiBkZWZlcnJlZE5hbWVTeW1ib2wgaW4gdmFsdWU7XG5cbi8qKlxuICogQSBkZWZlcnJlZCByZWZlcmVuY2UgdG8gYSByZXNvdXJjZSdzIG5hbWUuXG4gKiBVc2VkIHdoZW4gYWNjZXNzaW5nIHJlc291cmNlTmFtZSBiZWZvcmUgdGhlIG5hbWUgaXMgc2V0LlxuICogUmVzb2x2ZXMgbGF6aWx5IGR1cmluZyB0cmFuc2Zvcm1hdGlvbi5cbiAqL1xuY2xhc3MgRGVmZXJyZWRSZXNvdXJjZU5hbWUge1xuICBwcml2YXRlIF9fcmVzb3VyY2U6IEJhc2VSZXNvdXJjZTtcbiAgcmVhZG9ubHkgW2RlZmVycmVkTmFtZVN5bWJvbF0gPSB0cnVlO1xuXG4gIGNvbnN0cnVjdG9yKHJlc291cmNlOiBCYXNlUmVzb3VyY2UpIHtcbiAgICB0aGlzLl9fcmVzb3VyY2UgPSByZXNvdXJjZTtcbiAgfVxuXG4gIHJlc29sdmUoKTogc3RyaW5nIHtcbiAgICAvLyBBdCByZXNvbHV0aW9uIHRpbWUsIHRoZSBuYW1lIHNob3VsZCBiZSBzZXRcbiAgICBjb25zdCBuYW1lID0gKHRoaXMuX19yZXNvdXJjZSBhcyBhbnkpLl9yZXNvdXJjZU5hbWU7XG4gICAgaWYgKG5hbWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnUmVzb3VyY2UgbmFtZSBub3Qgc2V0LiBNYWtlIHN1cmUgdG8gYWRkIHRoZSByZXNvdXJjZSB0byB0aGUgcmVzb3VyY2VzIG9iamVjdCBpbiB5b3VyIGNvbmZpZy4gJyArXG4gICAgICAgICAgJ1RoZSByZXNvdXJjZSBuYW1lIGlzIGF1dG9tYXRpY2FsbHkgZGVyaXZlZCBmcm9tIHRoZSBvYmplY3Qga2V5LidcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBuYW1lO1xuICB9XG5cbiAgdG9TdHJpbmcoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5yZXNvbHZlKCk7XG4gIH1cblxuICB0b0pTT04oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5yZXNvbHZlKCk7XG4gIH1cblxuICB2YWx1ZU9mKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucmVzb2x2ZSgpO1xuICB9XG59XG5cbi8qKlxuICogQSByZWZlcmVuY2UgdG8gYSByZXNvdXJjZSBwYXJhbWV0ZXIgdGhhdCB3aWxsIGJlIHJlc29sdmVkIGF0IHJ1bnRpbWUuXG4gKiBTdG9yZXMgYSByZWZlcmVuY2UgdG8gdGhlIHJlc291cmNlIGZvciBsYXp5IG5hbWUgcmVzb2x1dGlvbi5cbiAqL1xuZXhwb3J0IGNsYXNzIFJlc291cmNlUGFyYW1SZWZlcmVuY2Uge1xuICBwcml2YXRlIF9fcmVzb3VyY2U6IEJhc2VSZXNvdXJjZTtcbiAgcHJpdmF0ZSBfX3BhcmFtOiBzdHJpbmc7XG4gIHJlYWRvbmx5IFtyZXNvdXJjZVBhcmFtUmVmU3ltYm9sXSA9IHRydWU7XG5cbiAgY29uc3RydWN0b3IocmVzb3VyY2U6IEJhc2VSZXNvdXJjZSwgcGFyYW06IHN0cmluZykge1xuICAgIHRoaXMuX19yZXNvdXJjZSA9IHJlc291cmNlO1xuICAgIHRoaXMuX19wYXJhbSA9IHBhcmFtO1xuICB9XG5cbiAgdG9TdHJpbmcoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYCRSZXNvdXJjZVBhcmFtKCcke3RoaXMuX19yZXNvdXJjZS5yZXNvdXJjZU5hbWV9JywgJyR7dGhpcy5fX3BhcmFtfScpYDtcbiAgfVxuXG4gIHRvSlNPTigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnRvU3RyaW5nKCk7XG4gIH1cblxuICAvLyBBbGxvdyB0aGUgcmVmZXJlbmNlIHRvIGJlIHVzZWQgZGlyZWN0bHkgaW4gdGVtcGxhdGUgc3RyaW5nc1xuICB2YWx1ZU9mKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudG9TdHJpbmcoKTtcbiAgfVxufVxuXG4vKipcbiAqIEJhc2UgY2xhc3MgZm9yIHR5cGUvcHJvcGVydGllcyBzdHJ1Y3R1cmVzIChlbmdpbmVzLCBwYWNrYWdpbmcsIGV2ZW50cywgZXRjLilcbiAqL1xuZXhwb3J0IGNsYXNzIEJhc2VUeXBlUHJvcGVydGllcyB7XG4gIHB1YmxpYyByZWFkb25seSB0eXBlOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBwcm9wZXJ0aWVzOiBhbnk7XG4gIHJlYWRvbmx5IFtiYXNlVHlwZVByb3BlcnRpZXNTeW1ib2xdID0gdHJ1ZTtcblxuICBjb25zdHJ1Y3Rvcih0eXBlOiBzdHJpbmcsIHByb3BlcnRpZXM6IGFueSkge1xuICAgIHRoaXMudHlwZSA9IHR5cGU7XG4gICAgdGhpcy5wcm9wZXJ0aWVzID0gcHJvcGVydGllcztcbiAgfVxufVxuXG4vKipcbiAqIEJhc2UgcmVzb3VyY2UgY2xhc3MgdGhhdCBwcm92aWRlcyBjb21tb24gZnVuY3Rpb25hbGl0eVxuICovXG5leHBvcnQgY2xhc3MgQmFzZVJlc291cmNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBfdHlwZTogc3RyaW5nO1xuICBwcml2YXRlIF9wcm9wZXJ0aWVzOiBhbnk7XG4gIHByaXZhdGUgX292ZXJyaWRlcz86IGFueTtcbiAgcHJpdmF0ZSBfdHJhbnNmb3Jtcz86IGFueTtcbiAgcHJpdmF0ZSBfcmVzb3VyY2VOYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgX2V4cGxpY2l0TmFtZTogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3RvcihuYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQsIHR5cGU6IHN0cmluZywgcHJvcGVydGllczogYW55LCBvdmVycmlkZXM/OiBhbnkpIHtcbiAgICB0aGlzLl9yZXNvdXJjZU5hbWUgPSBuYW1lO1xuICAgIHRoaXMuX2V4cGxpY2l0TmFtZSA9IG5hbWUgIT09IHVuZGVmaW5lZDtcbiAgICB0aGlzLl90eXBlID0gdHlwZTtcblxuICAgIC8vIFN0b3JlIHByb3BlcnRpZXMgYW5kIG92ZXJyaWRlcyBpbml0aWFsbHkgLSB0aGV5J2xsIGJlIHByb2Nlc3NlZCB3aGVuIG5hbWUgaXMgc2V0XG4gICAgdGhpcy5fcHJvcGVydGllcyA9IHByb3BlcnRpZXM7XG4gICAgdGhpcy5fb3ZlcnJpZGVzID0gb3ZlcnJpZGVzO1xuXG4gICAgLy8gSWYgbmFtZSBpcyBhbHJlYWR5IHNldCwgcHJvY2VzcyBvdmVycmlkZXMgYW5kIHRyYW5zZm9ybXMgbm93XG4gICAgaWYgKG5hbWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5fcHJvY2Vzc092ZXJyaWRlc0FuZFRyYW5zZm9ybXMoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUHJvY2VzcyBvdmVycmlkZXMgYW5kIHRyYW5zZm9ybXMgZXh0cmFjdGlvbiBmcm9tIHByb3BlcnRpZXMuXG4gICAqIENhbGxlZCB3aGVuIHRoZSByZXNvdXJjZSBuYW1lIGlzIGF2YWlsYWJsZS5cbiAgICovXG4gIHByaXZhdGUgX3Byb2Nlc3NPdmVycmlkZXNBbmRUcmFuc2Zvcm1zKCk6IHZvaWQge1xuICAgIGNvbnN0IHByb3BlcnRpZXMgPSB0aGlzLl9wcm9wZXJ0aWVzO1xuICAgIGlmIChwcm9wZXJ0aWVzICYmIHR5cGVvZiBwcm9wZXJ0aWVzID09PSAnb2JqZWN0Jykge1xuICAgICAgLy8gQ2xvbmUgcHJvcGVydGllcyB3aXRob3V0IG92ZXJyaWRlcyBhbmQgdHJhbnNmb3Jtc1xuICAgICAgY29uc3QgZmluYWxQcm9wZXJ0aWVzID0geyAuLi5wcm9wZXJ0aWVzIH07XG5cbiAgICAgIC8vIEhhbmRsZSBvdmVycmlkZXNcbiAgICAgIGlmICgnb3ZlcnJpZGVzJyBpbiBmaW5hbFByb3BlcnRpZXMpIHtcbiAgICAgICAgY29uc3QgcHJvcGVydGllc092ZXJyaWRlcyA9IGZpbmFsUHJvcGVydGllcy5vdmVycmlkZXM7XG4gICAgICAgIGRlbGV0ZSBmaW5hbFByb3BlcnRpZXMub3ZlcnJpZGVzO1xuXG4gICAgICAgIC8vIFRyYW5zZm9ybSBvdmVycmlkZXMgdXNpbmcgY2ZMb2dpY2FsTmFtZXNcbiAgICAgICAgaWYgKHByb3BlcnRpZXNPdmVycmlkZXMgJiYgdHlwZW9mIHByb3BlcnRpZXNPdmVycmlkZXMgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgdGhpcy5fb3ZlcnJpZGVzID0gdHJhbnNmb3JtT3ZlcnJpZGVzVG9Mb2dpY2FsTmFtZXModGhpcy5fcmVzb3VyY2VOYW1lISwgdGhpcy5fdHlwZSwgcHJvcGVydGllc092ZXJyaWRlcyk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gSGFuZGxlIHRyYW5zZm9ybXNcbiAgICAgIGlmICgndHJhbnNmb3JtcycgaW4gZmluYWxQcm9wZXJ0aWVzKSB7XG4gICAgICAgIGNvbnN0IHByb3BlcnRpZXNUcmFuc2Zvcm1zID0gZmluYWxQcm9wZXJ0aWVzLnRyYW5zZm9ybXM7XG4gICAgICAgIGRlbGV0ZSBmaW5hbFByb3BlcnRpZXMudHJhbnNmb3JtcztcblxuICAgICAgICAvLyBUcmFuc2Zvcm0gdHJhbnNmb3JtcyB1c2luZyBjZkxvZ2ljYWxOYW1lcyAoc2FtZSBtYXBwaW5nIGFzIG92ZXJyaWRlcylcbiAgICAgICAgaWYgKHByb3BlcnRpZXNUcmFuc2Zvcm1zICYmIHR5cGVvZiBwcm9wZXJ0aWVzVHJhbnNmb3JtcyA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICB0aGlzLl90cmFuc2Zvcm1zID0gdHJhbnNmb3JtVHJhbnNmb3Jtc1RvTG9naWNhbE5hbWVzKHRoaXMuX3Jlc291cmNlTmFtZSEsIHRoaXMuX3R5cGUsIHByb3BlcnRpZXNUcmFuc2Zvcm1zKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB0aGlzLl9wcm9wZXJ0aWVzID0gZmluYWxQcm9wZXJ0aWVzO1xuICAgIH1cbiAgfVxuXG4gIC8vIFB1YmxpYyBnZXR0ZXIgZm9yIHJlc291cmNlIG5hbWUgKHVzZWQgZm9yIHJlZmVyZW5jaW5nIHJlc291cmNlcylcbiAgLy8gUmV0dXJucyBhIGRlZmVycmVkIHJlZmVyZW5jZSB3aGVuIG5hbWUgaXNuJ3Qgc2V0IHlldCwgd2hpY2ggcmVzb2x2ZXMgZHVyaW5nIHRyYW5zZm9ybWF0aW9uXG4gIGdldCByZXNvdXJjZU5hbWUoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5fcmVzb3VyY2VOYW1lID09PSB1bmRlZmluZWQpIHtcbiAgICAgIC8vIFJldHVybiBhIGRlZmVycmVkIHJlZmVyZW5jZSB0aGF0IHdpbGwgcmVzb2x2ZSBkdXJpbmcgdHJhbnNmb3JtYXRpb25cbiAgICAgIC8vIFR5cGVTY3JpcHQgc2VlcyB0aGlzIGFzIHN0cmluZyBkdWUgdG8gdG9TdHJpbmcvdmFsdWVPZiwgcnVudGltZSByZXNvbHZlcyBsYXppbHlcbiAgICAgIHJldHVybiBuZXcgRGVmZXJyZWRSZXNvdXJjZU5hbWUodGhpcykgYXMgdW5rbm93biBhcyBzdHJpbmc7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9yZXNvdXJjZU5hbWU7XG4gIH1cblxuICAvKipcbiAgICogSW50ZXJuYWwgbWV0aG9kIHRvIHNldCB0aGUgcmVzb3VyY2UgbmFtZSBmcm9tIHRoZSBvYmplY3Qga2V5LlxuICAgKiBDYWxsZWQgYnkgdHJhbnNmb3JtQ29uZmlnV2l0aFJlc291cmNlcy5cbiAgICovXG4gIFtzZXRSZXNvdXJjZU5hbWVTeW1ib2xdKG5hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9leHBsaWNpdE5hbWUgJiYgdGhpcy5fcmVzb3VyY2VOYW1lICE9PSBuYW1lKSB7XG4gICAgICAvLyBJZiBhbiBleHBsaWNpdCBuYW1lIHdhcyBwcm92aWRlZCBhbmQgaXQgZGlmZmVycyBmcm9tIHRoZSBrZXksIHVzZSB0aGUgZXhwbGljaXQgbmFtZVxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodGhpcy5fcmVzb3VyY2VOYW1lID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuX3Jlc291cmNlTmFtZSA9IG5hbWU7XG4gICAgICAvLyBOb3cgdGhhdCB3ZSBoYXZlIGEgbmFtZSwgcHJvY2VzcyBvdmVycmlkZXMgYW5kIHRyYW5zZm9ybXNcbiAgICAgIHRoaXMuX3Byb2Nlc3NPdmVycmlkZXNBbmRUcmFuc2Zvcm1zKCk7XG4gICAgfVxuICB9XG5cbiAgLy8gUHJpdmF0ZSBtZXRob2RzIHVzaW5nIHN5bWJvbHMgLSBub3QgYWNjZXNzaWJsZSBmcm9tIG91dHNpZGUgb3IgaW4gYXV0b2NvbXBsZXRlXG4gIFtnZXRQYXJhbVJlZmVyZW5jZVN5bWJvbF0ocGFyYW1OYW1lOiBzdHJpbmcpOiBSZXNvdXJjZVBhcmFtUmVmZXJlbmNlIHtcbiAgICByZXR1cm4gbmV3IFJlc291cmNlUGFyYW1SZWZlcmVuY2UodGhpcywgcGFyYW1OYW1lKTtcbiAgfVxuXG4gIFtnZXRUeXBlU3ltYm9sXSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl90eXBlO1xuICB9XG5cbiAgW2dldFByb3BlcnRpZXNTeW1ib2xdKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuX3Byb3BlcnRpZXM7XG4gIH1cblxuICBbZ2V0T3ZlcnJpZGVzU3ltYm9sXSgpOiBhbnkgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9vdmVycmlkZXM7XG4gIH1cblxuICBbZ2V0VHJhbnNmb3Jtc1N5bWJvbF0oKTogYW55IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fdHJhbnNmb3JtcztcbiAgfVxufVxuXG4vKipcbiAqIFRyYW5zZm9ybSB1c2VyLWZyaWVuZGx5IG92ZXJyaWRlcyAod2l0aCBwcm9wZXJ0eSBuYW1lcyBsaWtlICdidWNrZXQnLCAnbGFtYmRhTG9nR3JvdXAnKVxuICogdG8gQ2xvdWRGb3JtYXRpb24gbG9naWNhbCBuYW1lcyB1c2luZyBjZkxvZ2ljYWxOYW1lc1xuICovXG5mdW5jdGlvbiB0cmFuc2Zvcm1PdmVycmlkZXNUb0xvZ2ljYWxOYW1lcyhyZXNvdXJjZU5hbWU6IHN0cmluZywgcmVzb3VyY2VUeXBlOiBzdHJpbmcsIG92ZXJyaWRlczogYW55KTogYW55IHtcbiAgLy8gR2V0IGNoaWxkIHJlc291cmNlcyBmb3IgdGhpcyByZXNvdXJjZSB0eXBlXG4gIGNvbnN0IGNoaWxkUmVzb3VyY2VzID0gQ0hJTERfUkVTT1VSQ0VTW3Jlc291cmNlVHlwZV0gfHwgW107XG5cbiAgLy8gQnVpbGQgYSBtYXAgb2YgcHJvcGVydHkgbmFtZXMgdG8gY2hpbGQgcmVzb3VyY2VzXG4gIGNvbnN0IHByb3BlcnR5TmFtZU1hcCA9IG5ldyBNYXA8c3RyaW5nLCBhbnk+KCk7XG5cbiAgZm9yIChjb25zdCBjaGlsZFJlc291cmNlIG9mIGNoaWxkUmVzb3VyY2VzKSB7XG4gICAgLy8gVGhlIGxvZ2ljYWxOYW1lIGZ1bmN0aW9uIGhhcyBhIG5hbWUgcHJvcGVydHkgdGhhdCBtYXRjaGVzIHRoZSBwcm9wZXJ0eSBuYW1lXG4gICAgaWYgKGNoaWxkUmVzb3VyY2UubG9naWNhbE5hbWUgJiYgY2hpbGRSZXNvdXJjZS5sb2dpY2FsTmFtZS5uYW1lKSB7XG4gICAgICBwcm9wZXJ0eU5hbWVNYXAuc2V0KGNoaWxkUmVzb3VyY2UubG9naWNhbE5hbWUubmFtZSwgY2hpbGRSZXNvdXJjZSk7XG4gICAgfVxuICB9XG5cbiAgLy8gVHJhbnNmb3JtIG92ZXJyaWRlcyBvYmplY3RcbiAgY29uc3QgdHJhbnNmb3JtZWRPdmVycmlkZXM6IGFueSA9IHt9O1xuICBjb25zdCBlcnJvck1lc3NhZ2UgPSBgT3ZlcnJpZGUgb2YgcHJvcGVydHkge3Byb3BlcnR5TmFtZX0gb2YgcmVzb3VyY2UgJHtyZXNvdXJjZU5hbWV9IGlzIG5vdCBzdXBwb3J0ZWQuXFxuXG5SZW1vdmUgdGhlIG92ZXJyaWRlLCBydW4gJ3N0YWNrdGFwZSBjb21waWxlOnRlbXBsYXRlJyBjb21tYW5kLCBhbmQgZmluZCB0aGUgbG9naWNhbCBuYW1lIG9mIHRoZSByZXNvdXJjZSB5b3Ugd2FudCB0byBvdmVycmlkZSBtYW51YWxseS4gVGhlbiBhZGQgaXQgdG8gdGhlIG92ZXJyaWRlcyBvYmplY3QuYDtcblxuICBmb3IgKGNvbnN0IHByb3BlcnR5TmFtZSBpbiBvdmVycmlkZXMpIHtcbiAgICBjb25zdCBjaGlsZFJlc291cmNlID0gcHJvcGVydHlOYW1lTWFwLmdldChwcm9wZXJ0eU5hbWUpO1xuXG4gICAgLy8gU2tpcCB1bnJlc29sdmFibGUgcmVzb3VyY2VzXG4gICAgaWYgKGNoaWxkUmVzb3VyY2U/LnVucmVzb2x2YWJsZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGVycm9yTWVzc2FnZS5yZXBsYWNlKCd7cHJvcGVydHlOYW1lfScsIHByb3BlcnR5TmFtZSkpO1xuICAgIH1cblxuICAgIGlmIChjaGlsZFJlc291cmNlKSB7XG4gICAgICBjb25zdCBsb2dpY2FsTmFtZUZuID0gY2hpbGRSZXNvdXJjZS5sb2dpY2FsTmFtZTtcbiAgICAgIC8vIENhbGwgdGhlIGNmTG9naWNhbE5hbWVzIGZ1bmN0aW9uIHRvIGdldCB0aGUgYWN0dWFsIENsb3VkRm9ybWF0aW9uIGxvZ2ljYWwgbmFtZVxuICAgICAgLy8gVHJ5IHdpdGggcmVzb3VyY2VOYW1lIGZpcnN0IChtb3N0IGNvbW1vbiksIHRoZW4gdHJ5IHdpdGhvdXQgYXJndW1lbnRzXG4gICAgICBsZXQgbG9naWNhbE5hbWU6IHN0cmluZztcbiAgICAgIHRyeSB7XG4gICAgICAgIGxvZ2ljYWxOYW1lID0gbG9naWNhbE5hbWVGbihyZXNvdXJjZU5hbWUpO1xuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgbG9naWNhbE5hbWUgPSBsb2dpY2FsTmFtZUZuKCk7XG4gICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgIC8vIElmIGJvdGggZmFpbCwgdXNlIHByb3BlcnR5IG5hbWUgYXMtaXNcbiAgICAgICAgICBsb2dpY2FsTmFtZSA9IHByb3BlcnR5TmFtZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKGxvZ2ljYWxOYW1lLmluY2x1ZGVzKCd1bmRlZmluZWQnKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoZXJyb3JNZXNzYWdlLnJlcGxhY2UoJ3twcm9wZXJ0eU5hbWV9JywgcHJvcGVydHlOYW1lKSk7XG4gICAgICB9XG4gICAgICB0cmFuc2Zvcm1lZE92ZXJyaWRlc1tsb2dpY2FsTmFtZV0gPSBvdmVycmlkZXNbcHJvcGVydHlOYW1lXTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gSWYgbm90IGZvdW5kIGluIG1hcCwgdXNlIHByb3BlcnR5IG5hbWUgYXMtaXMgKHNob3VsZG4ndCBoYXBwZW4gd2l0aCBwcm9wZXIgdHlwZXMpXG4gICAgICB0cmFuc2Zvcm1lZE92ZXJyaWRlc1twcm9wZXJ0eU5hbWVdID0gb3ZlcnJpZGVzW3Byb3BlcnR5TmFtZV07XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRyYW5zZm9ybWVkT3ZlcnJpZGVzO1xufVxuXG4vKipcbiAqIFRyYW5zZm9ybSB1c2VyLWZyaWVuZGx5IHRyYW5zZm9ybXMgKHdpdGggcHJvcGVydHkgbmFtZXMgbGlrZSAnbGFtYmRhJywgJ2xhbWJkYUxvZ0dyb3VwJylcbiAqIHRvIENsb3VkRm9ybWF0aW9uIGxvZ2ljYWwgbmFtZXMgdXNpbmcgY2ZMb2dpY2FsTmFtZXNcbiAqIFNpbWlsYXIgdG8gb3ZlcnJpZGVzIGJ1dCB0aGUgdmFsdWVzIGFyZSBmdW5jdGlvbnMgaW5zdGVhZCBvZiBvYmplY3RzXG4gKi9cbmZ1bmN0aW9uIHRyYW5zZm9ybVRyYW5zZm9ybXNUb0xvZ2ljYWxOYW1lcyhyZXNvdXJjZU5hbWU6IHN0cmluZywgcmVzb3VyY2VUeXBlOiBzdHJpbmcsIHRyYW5zZm9ybXM6IGFueSk6IGFueSB7XG4gIC8vIEdldCBjaGlsZCByZXNvdXJjZXMgZm9yIHRoaXMgcmVzb3VyY2UgdHlwZVxuICBjb25zdCBjaGlsZFJlc291cmNlcyA9IENISUxEX1JFU09VUkNFU1tyZXNvdXJjZVR5cGVdIHx8IFtdO1xuXG4gIC8vIEJ1aWxkIGEgbWFwIG9mIHByb3BlcnR5IG5hbWVzIHRvIGNoaWxkIHJlc291cmNlc1xuICBjb25zdCBwcm9wZXJ0eU5hbWVNYXAgPSBuZXcgTWFwPHN0cmluZywgYW55PigpO1xuXG4gIGZvciAoY29uc3QgY2hpbGRSZXNvdXJjZSBvZiBjaGlsZFJlc291cmNlcykge1xuICAgIC8vIFRoZSBsb2dpY2FsTmFtZSBmdW5jdGlvbiBoYXMgYSBuYW1lIHByb3BlcnR5IHRoYXQgbWF0Y2hlcyB0aGUgcHJvcGVydHkgbmFtZVxuICAgIGlmIChjaGlsZFJlc291cmNlLmxvZ2ljYWxOYW1lICYmIGNoaWxkUmVzb3VyY2UubG9naWNhbE5hbWUubmFtZSkge1xuICAgICAgcHJvcGVydHlOYW1lTWFwLnNldChjaGlsZFJlc291cmNlLmxvZ2ljYWxOYW1lLm5hbWUsIGNoaWxkUmVzb3VyY2UpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFRyYW5zZm9ybSB0cmFuc2Zvcm1zIG9iamVjdFxuICBjb25zdCB0cmFuc2Zvcm1lZFRyYW5zZm9ybXM6IGFueSA9IHt9O1xuICBjb25zdCBlcnJvck1lc3NhZ2UgPSBgVHJhbnNmb3JtIG9mIHByb3BlcnR5IHtwcm9wZXJ0eU5hbWV9IG9mIHJlc291cmNlICR7cmVzb3VyY2VOYW1lfSBpcyBub3Qgc3VwcG9ydGVkLlxcblxuUmVtb3ZlIHRoZSB0cmFuc2Zvcm0sIHJ1biAnc3RhY2t0YXBlIGNvbXBpbGU6dGVtcGxhdGUnIGNvbW1hbmQsIGFuZCBmaW5kIHRoZSBsb2dpY2FsIG5hbWUgb2YgdGhlIHJlc291cmNlIHlvdSB3YW50IHRvIHRyYW5zZm9ybSBtYW51YWxseS4gVGhlbiBhZGQgaXQgdG8gdGhlIHRyYW5zZm9ybXMgb2JqZWN0LmA7XG5cbiAgZm9yIChjb25zdCBwcm9wZXJ0eU5hbWUgaW4gdHJhbnNmb3Jtcykge1xuICAgIGNvbnN0IGNoaWxkUmVzb3VyY2UgPSBwcm9wZXJ0eU5hbWVNYXAuZ2V0KHByb3BlcnR5TmFtZSk7XG5cbiAgICAvLyBTa2lwIHVucmVzb2x2YWJsZSByZXNvdXJjZXNcbiAgICBpZiAoY2hpbGRSZXNvdXJjZT8udW5yZXNvbHZhYmxlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoZXJyb3JNZXNzYWdlLnJlcGxhY2UoJ3twcm9wZXJ0eU5hbWV9JywgcHJvcGVydHlOYW1lKSk7XG4gICAgfVxuXG4gICAgaWYgKGNoaWxkUmVzb3VyY2UpIHtcbiAgICAgIGNvbnN0IGxvZ2ljYWxOYW1lRm4gPSBjaGlsZFJlc291cmNlLmxvZ2ljYWxOYW1lO1xuICAgICAgLy8gQ2FsbCB0aGUgY2ZMb2dpY2FsTmFtZXMgZnVuY3Rpb24gdG8gZ2V0IHRoZSBhY3R1YWwgQ2xvdWRGb3JtYXRpb24gbG9naWNhbCBuYW1lXG4gICAgICAvLyBUcnkgd2l0aCByZXNvdXJjZU5hbWUgZmlyc3QgKG1vc3QgY29tbW9uKSwgdGhlbiB0cnkgd2l0aG91dCBhcmd1bWVudHNcbiAgICAgIGxldCBsb2dpY2FsTmFtZTogc3RyaW5nO1xuICAgICAgdHJ5IHtcbiAgICAgICAgbG9naWNhbE5hbWUgPSBsb2dpY2FsTmFtZUZuKHJlc291cmNlTmFtZSk7XG4gICAgICB9IGNhdGNoIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBsb2dpY2FsTmFtZSA9IGxvZ2ljYWxOYW1lRm4oKTtcbiAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgLy8gSWYgYm90aCBmYWlsLCB1c2UgcHJvcGVydHkgbmFtZSBhcy1pc1xuICAgICAgICAgIGxvZ2ljYWxOYW1lID0gcHJvcGVydHlOYW1lO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAobG9naWNhbE5hbWUuaW5jbHVkZXMoJ3VuZGVmaW5lZCcpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihlcnJvck1lc3NhZ2UucmVwbGFjZSgne3Byb3BlcnR5TmFtZX0nLCBwcm9wZXJ0eU5hbWUpKTtcbiAgICAgIH1cbiAgICAgIHRyYW5zZm9ybWVkVHJhbnNmb3Jtc1tsb2dpY2FsTmFtZV0gPSB0cmFuc2Zvcm1zW3Byb3BlcnR5TmFtZV07XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIElmIG5vdCBmb3VuZCBpbiBtYXAsIHVzZSBwcm9wZXJ0eSBuYW1lIGFzLWlzIChzaG91bGRuJ3QgaGFwcGVuIHdpdGggcHJvcGVyIHR5cGVzKVxuICAgICAgdHJhbnNmb3JtZWRUcmFuc2Zvcm1zW3Byb3BlcnR5TmFtZV0gPSB0cmFuc2Zvcm1zW3Byb3BlcnR5TmFtZV07XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRyYW5zZm9ybWVkVHJhbnNmb3Jtcztcbn1cblxuZXhwb3J0IHR5cGUgR2V0Q29uZmlnUGFyYW1zID0ge1xuICAvKipcbiAgICogUHJvamVjdCBuYW1lIHVzZWQgZm9yIHRoaXMgb3BlcmF0aW9uXG4gICAqL1xuICBwcm9qZWN0TmFtZTogc3RyaW5nO1xuICAvKipcbiAgICogU3RhZ2UgKFwiZW52aXJvbm1lbnRcIikgdXNlZCBmb3IgdGhpcyBvcGVyYXRpb25cbiAgICovXG4gIHN0YWdlOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBV1MgcmVnaW9uIHVzZWQgZm9yIHRoaXMgb3BlcmF0aW9uXG4gICAqIFRoZSBsaXN0IG9mIGF2YWlsYWJsZSByZWdpb25zIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5hd3Mtc2VydmljZXMuaW5mby9yZWdpb25zLmh0bWxcbiAgICovXG4gIHJlZ2lvbjogc3RyaW5nO1xuICAvKipcbiAgICogTGlzdCBvZiBhcmd1bWVudHMgcGFzc2VkIHRvIHRoZSBvcGVyYXRpb25cbiAgICovXG4gIGNsaUFyZ3M6IFN0YWNrdGFwZUFyZ3M7XG4gIC8qKlxuICAgKiBTdGFja3RhcGUgY29tbWFuZCB1c2VkIHRvIHBlcmZvcm0gdGhpcyBvcGVyYXRpb24gKGNhbiBiZSBlaXRoZXIgZGVwbG95LCBjb2RlYnVpbGQ6ZGVwbG95LCBkZWxldGUsIGV0Yy4pXG4gICAqL1xuICBjb21tYW5kOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBMb2NhbGx5LWNvbmZpZ3VyZWQgQVdTIHByb2ZpbGUgdXNlZCB0byBleGVjdXRlIHRoZSBvcGVyYXRpb24uXG4gICAqIERvZXNuJ3QgYXBwbHkgaWYgeW91IGhhdmUgeW91ciBBV1MgYWNjb3VudCBjb25uZWN0ZWQgaW4gXCJhdXRvbWF0aWNcIiBtb2RlLlxuICAgKi9cbiAgYXdzUHJvZmlsZTogc3RyaW5nO1xuICAvKipcbiAgICogSW5mb3JtYXRpb24gYWJvdXQgdGhlIHVzZXIgcGVyZm9ybWluZyB0aGUgc3RhY2sgb3BlcmF0aW9uXG4gICAqL1xuICB1c2VyOiB7XG4gICAgaWQ6IHN0cmluZztcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgZW1haWw6IHN0cmluZztcbiAgfTtcbn07XG5cbi8qKlxuICogSGVscGVyIGZ1bmN0aW9uIHRvIGRlZmluZSBhIGNvbmZpZyB3aXRoIGF1dG9tYXRpYyB0cmFuc2Zvcm1hdGlvblxuICogVXNlIHRoaXMgd2hlbiBleHBvcnRpbmcgeW91ciBjb25maWcgZm9yIHRoZSBTdGFja3RhcGUgQ0xJXG4gKi9cbmV4cG9ydCBjb25zdCBkZWZpbmVDb25maWcgPSAoY29uZmlnRm46IChwYXJhbXM6IEdldENvbmZpZ1BhcmFtcykgPT4gU3RhY2t0YXBlQ29uZmlnKSA9PiB7XG4gIHJldHVybiAocGFyYW1zOiBHZXRDb25maWdQYXJhbXMpID0+IHtcbiAgICBjb25zdCBjb25maWcgPSBjb25maWdGbihwYXJhbXMpO1xuICAgIHJldHVybiB0cmFuc2Zvcm1Db25maWdXaXRoUmVzb3VyY2VzKGNvbmZpZyk7XG4gIH07XG59O1xuXG4vKipcbiAqIFRyYW5zZm9ybXMgYSBjb25maWcgd2l0aCByZXNvdXJjZSBpbnN0YW5jZXMgaW50byBhIHBsYWluIGNvbmZpZyBvYmplY3RcbiAqL1xuZXhwb3J0IGNvbnN0IHRyYW5zZm9ybUNvbmZpZ1dpdGhSZXNvdXJjZXMgPSAoY29uZmlnOiBhbnkpOiBhbnkgPT4ge1xuICBpZiAoIWNvbmZpZyB8fCB0eXBlb2YgY29uZmlnICE9PSAnb2JqZWN0Jykge1xuICAgIHJldHVybiBjb25maWc7XG4gIH1cblxuICAvLyBGaXJzdCBwYXNzOiBzZXQgYWxsIHJlc291cmNlIG5hbWVzIGZyb20gb2JqZWN0IGtleXNcbiAgLy8gVGhpcyBtdXN0IGhhcHBlbiBiZWZvcmUgYW55IHRyYW5zZm9ybWF0aW9uIHNvIHRoYXQgUmVzb3VyY2VQYXJhbVJlZmVyZW5jZXMgY2FuIHJlc29sdmUgbmFtZXNcbiAgaWYgKGNvbmZpZy5yZXNvdXJjZXMgJiYgdHlwZW9mIGNvbmZpZy5yZXNvdXJjZXMgPT09ICdvYmplY3QnKSB7XG4gICAgZm9yIChjb25zdCBrZXkgaW4gY29uZmlnLnJlc291cmNlcykge1xuICAgICAgY29uc3QgcmVzb3VyY2UgPSBjb25maWcucmVzb3VyY2VzW2tleV07XG4gICAgICBpZiAoaXNCYXNlUmVzb3VyY2UocmVzb3VyY2UpKSB7XG4gICAgICAgIChyZXNvdXJjZSBhcyBhbnkpW3NldFJlc291cmNlTmFtZVN5bWJvbF0oa2V5KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBTZWNvbmQgcGFzczogdHJhbnNmb3JtIHRoZSBjb25maWdcbiAgY29uc3QgcmVzdWx0OiBhbnkgPSB7fTtcbiAgZm9yIChjb25zdCBrZXkgaW4gY29uZmlnKSB7XG4gICAgaWYgKGtleSA9PT0gJ3Jlc291cmNlcycpIHtcbiAgICAgIC8vIFJlc291cmNlcyBhcmUgdHJhbnNmb3JtZWQgYXMgZGVmaW5pdGlvbnNcbiAgICAgIHJlc3VsdFtrZXldID0gdHJhbnNmb3JtUmVzb3VyY2VEZWZpbml0aW9ucyhjb25maWdba2V5XSk7XG4gICAgfSBlbHNlIGlmIChrZXkgPT09ICdzY3JpcHRzJykge1xuICAgICAgLy8gU2NyaXB0cyBhcmUgYWxzbyB0cmFuc2Zvcm1lZCBhcyBkZWZpbml0aW9uc1xuICAgICAgcmVzdWx0W2tleV0gPSB0cmFuc2Zvcm1TY3JpcHREZWZpbml0aW9ucyhjb25maWdba2V5XSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlc3VsdFtrZXldID0gdHJhbnNmb3JtVmFsdWUoY29uZmlnW2tleV0pO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufTtcblxuLyoqXG4gKiBUcmFuc2Zvcm1zIGVudmlyb25tZW50IG9iamVjdCB0byBhcnJheSBmb3JtYXRcbiAqL1xuY29uc3QgdHJhbnNmb3JtRW52aXJvbm1lbnQgPSAoZW52OiBhbnkpOiBhbnkgPT4ge1xuICBpZiAoIWVudiB8fCB0eXBlb2YgZW52ICE9PSAnb2JqZWN0JyB8fCBBcnJheS5pc0FycmF5KGVudikpIHtcbiAgICByZXR1cm4gZW52O1xuICB9XG5cbiAgLy8gQ29udmVydCB7IEtFWTogdmFsdWUgfSB0byBbeyBuYW1lOiAnS0VZJywgdmFsdWUgfV1cbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKGVudikubWFwKChbbmFtZSwgdmFsdWVdKSA9PiAoe1xuICAgIG5hbWUsXG4gICAgdmFsdWU6IHRyYW5zZm9ybVZhbHVlKHZhbHVlKVxuICB9KSk7XG59O1xuXG4vKipcbiAqIFRyYW5zZm9ybXMgcmVzb3VyY2UgZGVmaW5pdGlvbnMgKHZhbHVlcyBpbiB0aGUgcmVzb3VyY2VzIG9iamVjdClcbiAqL1xuY29uc3QgdHJhbnNmb3JtUmVzb3VyY2VEZWZpbml0aW9ucyA9IChyZXNvdXJjZXM6IGFueSk6IGFueSA9PiB7XG4gIGlmICghcmVzb3VyY2VzIHx8IHR5cGVvZiByZXNvdXJjZXMgIT09ICdvYmplY3QnKSB7XG4gICAgcmV0dXJuIHJlc291cmNlcztcbiAgfVxuXG4gIGNvbnN0IHJlc3VsdDogYW55ID0ge307XG4gIGZvciAoY29uc3Qga2V5IGluIHJlc291cmNlcykge1xuICAgIGNvbnN0IHJlc291cmNlID0gcmVzb3VyY2VzW2tleV07XG4gICAgaWYgKGlzQmFzZVJlc291cmNlKHJlc291cmNlKSkge1xuICAgICAgY29uc3QgdHlwZSA9IChyZXNvdXJjZSBhcyBhbnkpW2dldFR5cGVTeW1ib2xdKCk7XG4gICAgICBjb25zdCBwcm9wZXJ0aWVzID0gKHJlc291cmNlIGFzIGFueSlbZ2V0UHJvcGVydGllc1N5bWJvbF0oKTtcbiAgICAgIGNvbnN0IG92ZXJyaWRlcyA9IChyZXNvdXJjZSBhcyBhbnkpW2dldE92ZXJyaWRlc1N5bWJvbF0oKTtcbiAgICAgIGNvbnN0IHRyYW5zZm9ybXMgPSAocmVzb3VyY2UgYXMgYW55KVtnZXRUcmFuc2Zvcm1zU3ltYm9sXSgpO1xuICAgICAgcmVzdWx0W2tleV0gPSB7XG4gICAgICAgIHR5cGUsXG4gICAgICAgIHByb3BlcnRpZXM6IHRyYW5zZm9ybVZhbHVlKHByb3BlcnRpZXMpLFxuICAgICAgICAuLi4ob3ZlcnJpZGVzICE9PSB1bmRlZmluZWQgJiYgeyBvdmVycmlkZXM6IHRyYW5zZm9ybVZhbHVlKG92ZXJyaWRlcykgfSksXG4gICAgICAgIC4uLih0cmFuc2Zvcm1zICE9PSB1bmRlZmluZWQgJiYgeyB0cmFuc2Zvcm1zIH0pXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXN1bHRba2V5XSA9IHRyYW5zZm9ybVZhbHVlKHJlc291cmNlKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn07XG5cbi8qKlxuICogVHJhbnNmb3JtcyBzY3JpcHQgZGVmaW5pdGlvbnMgKHZhbHVlcyBpbiB0aGUgc2NyaXB0cyBvYmplY3QpXG4gKi9cbmNvbnN0IHRyYW5zZm9ybVNjcmlwdERlZmluaXRpb25zID0gKHNjcmlwdHM6IGFueSk6IGFueSA9PiB7XG4gIGlmICghc2NyaXB0cyB8fCB0eXBlb2Ygc2NyaXB0cyAhPT0gJ29iamVjdCcpIHtcbiAgICByZXR1cm4gc2NyaXB0cztcbiAgfVxuXG4gIGNvbnN0IHJlc3VsdDogYW55ID0ge307XG4gIGZvciAoY29uc3Qga2V5IGluIHNjcmlwdHMpIHtcbiAgICBjb25zdCBzY3JpcHQgPSBzY3JpcHRzW2tleV07XG4gICAgaWYgKGlzQmFzZVR5cGVQcm9wZXJ0aWVzKHNjcmlwdCkpIHtcbiAgICAgIHJlc3VsdFtrZXldID0ge1xuICAgICAgICB0eXBlOiBzY3JpcHQudHlwZSxcbiAgICAgICAgcHJvcGVydGllczogdHJhbnNmb3JtVmFsdWUoc2NyaXB0LnByb3BlcnRpZXMpXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXN1bHRba2V5XSA9IHRyYW5zZm9ybVZhbHVlKHNjcmlwdCk7XG4gICAgfVxuICB9XG4gIHJldHVybiByZXN1bHQ7XG59O1xuXG5leHBvcnQgY29uc3QgdHJhbnNmb3JtVmFsdWUgPSAodmFsdWU6IGFueSk6IGFueSA9PiB7XG4gIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgLy8gVHJhbnNmb3JtIERlZmVycmVkUmVzb3VyY2VOYW1lIC0gcmVzb2x2ZSB0byBhY3R1YWwgbmFtZVxuICBpZiAoaXNEZWZlcnJlZFJlc291cmNlTmFtZSh2YWx1ZSkpIHtcbiAgICByZXR1cm4gdmFsdWUucmVzb2x2ZSgpO1xuICB9XG5cbiAgLy8gVHJhbnNmb3JtIFJlc291cmNlUGFyYW1SZWZlcmVuY2VcbiAgaWYgKGlzUmVzb3VyY2VQYXJhbVJlZmVyZW5jZSh2YWx1ZSkpIHtcbiAgICByZXR1cm4gdmFsdWUudG9TdHJpbmcoKTtcbiAgfVxuXG4gIC8vIFRyYW5zZm9ybSBCYXNlUmVzb3VyY2UgcmVmZXJlbmNlcyAobm90IGRlZmluaXRpb25zKSB0byByZXNvdXJjZU5hbWVcbiAgLy8gVGhpcyBoYW5kbGVzIGNhc2VzIGxpa2UgY29ubmVjdFRvOiBbZGF0YWJhc2VdXG4gIGlmIChpc0Jhc2VSZXNvdXJjZSh2YWx1ZSkpIHtcbiAgICByZXR1cm4gdmFsdWUucmVzb3VyY2VOYW1lO1xuICB9XG5cbiAgLy8gVHJhbnNmb3JtIEJhc2VUeXBlUHJvcGVydGllcyAoZW5naW5lcywgcGFja2FnaW5nLCBldmVudHMpIHRvIHBsYWluIG9iamVjdFxuICBpZiAoaXNCYXNlVHlwZVByb3BlcnRpZXModmFsdWUpKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IHZhbHVlLnR5cGUsXG4gICAgICBwcm9wZXJ0aWVzOiB0cmFuc2Zvcm1WYWx1ZSh2YWx1ZS5wcm9wZXJ0aWVzKVxuICAgIH07XG4gIH1cblxuICAvLyBUcmFuc2Zvcm0gYXJyYXlzXG4gIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgIHJldHVybiB2YWx1ZS5tYXAoKGl0ZW0pID0+IHtcbiAgICAgIC8vIElmIGl0J3MgYSByZXNvdXJjZSBpbnN0YW5jZSBpbiBhbiBhcnJheSAoZS5nLiwgY29ubmVjdFRvKSwgdHJhbnNmb3JtIHRvIHJlc291cmNlTmFtZVxuICAgICAgaWYgKGlzQmFzZVJlc291cmNlKGl0ZW0pKSB7XG4gICAgICAgIHJldHVybiBpdGVtLnJlc291cmNlTmFtZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0cmFuc2Zvcm1WYWx1ZShpdGVtKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8vIFRyYW5zZm9ybSBvYmplY3RzXG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnKSB7XG4gICAgY29uc3QgcmVzdWx0OiBhbnkgPSB7fTtcbiAgICBmb3IgKGNvbnN0IGtleSBpbiB2YWx1ZSkge1xuICAgICAgLy8gU3BlY2lhbCBoYW5kbGluZyBmb3IgZW52aXJvbm1lbnQgcHJvcGVydHlcbiAgICAgIGlmIChrZXkgPT09ICdlbnZpcm9ubWVudCcpIHtcbiAgICAgICAgcmVzdWx0W2tleV0gPSB0cmFuc2Zvcm1FbnZpcm9ubWVudCh2YWx1ZVtrZXldKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc3VsdFtrZXldID0gdHJhbnNmb3JtVmFsdWUodmFsdWVba2V5XSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICByZXR1cm4gdmFsdWU7XG59O1xuIiwgIi8qKlxuICogUmV0dXJucyBhIHJlZmVyZW5jZSB0byBhIHJlc291cmNlIHBhcmFtZXRlci5cbiAqIEBwYXJhbSByZXNvdXJjZU5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgcmVzb3VyY2UgYXMgc3BlY2lmaWVkIGluIHRoZSBTdGFja3RhcGUgY29uZmlnLlxuICogQHBhcmFtIHByb3BlcnR5IC0gVGhlIHByb3BlcnR5IG9mIHRoZSByZXNvdXJjZS4gVGhlIGxpc3Qgb2YgcHJvcGVydGllcyBpcyBhdmFpbGFibGUgaW4gdGhlIFN0YWNrdGFwZSBkb2NzIGZvciBldmVyeSBnaXZlbiByZXNvdXJjZSB0eXBlLlxuICovXG5leHBvcnQgY29uc3QgJFJlc291cmNlUGFyYW0gPSAocmVzb3VyY2VOYW1lOiBzdHJpbmcsIHByb3BlcnR5OiBzdHJpbmcpID0+IHtcbiAgcmV0dXJuIGAkUmVzb3VyY2VQYXJhbSgnJHtyZXNvdXJjZU5hbWV9JywnJHtwcm9wZXJ0eX0nKWA7XG59O1xuXG4vKipcbiAqIFJldHVybnMgYSByZWZlcmVuY2UgdG8gYSBDbG91ZEZvcm1hdGlvbiByZXNvdXJjZSBwYXJhbWV0ZXIuXG4gKiBAcGFyYW0gY2xvdWRmb3JtYXRpb25SZXNvdXJjZUxvZ2ljYWxJZCAtIFRoZSBsb2dpY2FsIG5hbWUgb2YgdGhlIENsb3VkZm9ybWF0aW9uIHJlc291cmNlLlxuICogSWYgeW91IGFyZSByZWZlcmVuY2luZyBhIHJlc291cmNlIGRlZmluZWQgaW4gdGhlIGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VzIHNlY3Rpb24sIHVzZSBpdHMgbmFtZS5cbiAqIFRvIHJlZmVyZW5jZSBhIGNoaWxkIHJlc291cmNlIG9mIGEgU3RhY2t0YXBlIHJlc291cmNlLCB5b3UgY2FuIGdldCBhIGxpc3Qgb2YgY2hpbGQgcmVzb3VyY2VzIHdpdGggdGhlIGBzdGFja3RhcGUgc3RhY2staW5mb2AgY29tbWFuZFxuICogQHBhcmFtIHByb3BlcnR5IC0gVGhlIHBhcmFtZXRlciBvZiB0aGUgQ2xvdWRmb3JtYXRpb24gcmVzb3VyY2UgdG8gcmVmZXJlbmNlLlxuICogRm9yIGEgbGlzdCBvZiBhbGwgcmVmZXJlbmNlYWJsZSBwYXJhbWV0ZXJzLCByZWZlciB0byB0aGUgW1JlZmVyZW5jaW5nIHBhcmFtZXRlcnNdKGh0dHBzOi8vZG9jcy5zdGFja3RhcGUuY29tL2NvbmZpZ3VyYXRpb24vcmVmZXJlbmNpbmctcGFyYW1ldGVycyNwYXJhbWV0ZXJzLW9mLWNsb3VkZm9ybWF0aW9uLXJlc291cmNlcykgc2VjdGlvbiBpbiB0aGUgU3RhY2t0YXBlIGRvY3MuXG4gKi9cbmV4cG9ydCBjb25zdCAkQ2ZSZXNvdXJjZVBhcmFtID0gKGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VMb2dpY2FsSWQ6IHN0cmluZywgcHJvcGVydHk6IHN0cmluZykgPT4ge1xuICByZXR1cm4gYCRDZlJlc291cmNlUGFyYW0oJyR7Y2xvdWRmb3JtYXRpb25SZXNvdXJjZUxvZ2ljYWxJZH0nLCcke3Byb3BlcnR5fScpYDtcbn07XG5cbi8qKlxuICogUmV0dXJucyBhIHJlZmVyZW5jZSB0byBhIHNlY3JldC5cbiAqIEBwYXJhbSBzZWNyZXROYW1lIC0gVGhlIG5hbWUgb2YgdGhlIHNlY3JldC4gTXVzdCBiZSBhIHZhbGlkIHNlY3JldCBuYW1lIGluIHRoZSBBV1MgU2VjcmV0cyBNYW5hZ2VyIGluIHRoZSByZWdpb24geW91J3JlIGRlcGxveWluZyB0by5cbiAqIElmIHRoZSBzZWNyZXQgaXMgaW4gSlNPTiBmb3JtYXQsIHlvdSBjYW4gZXh0cmFjdCBuZXN0ZWQgcHJvcGVydGllcyB1c2luZyBkb3Qgbm90YXRpb24uXG4gKiBFeGFtcGxlOiBgJFNlY3JldCgnbXktc2VjcmV0LmFwaS1rZXknKWAgd2lsbCByZXR1cm4gdGhlIHZhbHVlIG9mIHRoZSBgYXBpLWtleWAgcHJvcGVydHkgaW4gdGhlIGBteS1zZWNyZXRgIHNlY3JldC5cbiAqL1xuZXhwb3J0IGNvbnN0ICRTZWNyZXQgPSAoc2VjcmV0TmFtZTogc3RyaW5nKSA9PiB7XG4gIHJldHVybiBgJFNlY3JldCgnJHtzZWNyZXROYW1lfScpYDtcbn07XG5cbi8qKlxuICogUmV0dXJucyBhbiBpbnRlcnBvbGF0ZWQgc3RyaW5nLiBVbmxpa2UgdGhlICRGb3JtYXQoKSBkaXJlY3RpdmUsIHRoZSAkQ2ZGb3JtYXQoKSBkaXJlY3RpdmUgY2FuIGNvbnRhaW4gcnVudGltZS1yZXNvbHZlZCBkaXJlY3RpdmVzIGFzIGFyZ3VtZW50cy5cbiAqIEBwYXJhbSBpbnRlcnBvbGF0ZWRTdHJpbmcgLSBPY2N1cnJlbmNlcyBvZiB7fSBhcmUgcmVwbGFjZWQgYnkgdGhlIHN1YnNlcXVlbnQgYXJndW1lbnRzLlxuICogQHBhcmFtIHZhbHVlcyAtIFRoZSBudW1iZXIgb2YgdmFsdWVzIG11c3QgYmUgZXF1YWwgdG8gdGhlIG51bWJlciBvZiB7fSBwbGFjZWhvbGRlcnMgaW4gdGhlIGZpcnN0IGFyZ3VtZW50LlxuICogRXhhbXBsZTpcbiAqIGAkQ2ZGb3JtYXQoJ3t9LXt9JywgJ2ZvbycsICdiYXInKWAgcmVzdWx0cyBpbiBgZm9vLWJhcmAuXG4gKiAkQ2ZGb3JtYXQoJ3t9LW15ZG9tYWluLmNvbScsICdmb28nKSByZXN1bHRzIGluIGZvby1teWRvbWFpbi5jb20uXG4gKiBgJENmRm9ybWF0KCd7fS5teWRvbWFpbi5jb20nLCAkU3RhZ2UoKSlgIHJlc3VsdHMgaW4gYHN0YWdpbmcubXlkb21haW4uY29tYCBpZiB0aGUgc3RhZ2UgaXMgc3RhZ2luZy5cbiAqL1xuZXhwb3J0IGNvbnN0ICRDZkZvcm1hdCA9IChpbnRlcnBvbGF0ZWRTdHJpbmc6IHN0cmluZywgLi4udmFsdWVzOiBhbnlbXSkgPT4ge1xuICByZXR1cm4gYCRDZkZvcm1hdCgnJHtpbnRlcnBvbGF0ZWRTdHJpbmd9JywgJyR7dmFsdWVzLmpvaW4oJywnKX0nKWA7XG59O1xuXG4vKipcbiAqIFJldHVybnMgdGhlIG91dHB1dCBvZiBhbm90aGVyIHN0YWNrLCBhbGxvd2luZyB5b3UgdG8gcmVmZXJlbmNlIHJlc291cmNlcyBkZXBsb3llZCBpbiBhbm90aGVyIHN0YWNrLiBUaGUgcmVmZXJlbmNlZCBzdGFjayBtdXN0IGFscmVhZHkgYmUgZGVwbG95ZWQuIElmIHlvdSB0cnkgdG8gZGVsZXRlIGEgc3RhY2sgdGhhdCBpcyByZWZlcmVuY2VkIGJ5IGFub3RoZXIgc3RhY2ssIHlvdSB3aWxsIGdldCBhbiBlcnJvci5cbiAqIFRvIGdldCB0aGUgb3V0cHV0IGxvY2FsbHkgKGkuZS4sIGRvd25sb2FkIHRoZSB2YWx1ZSBhbmQgcGFzcyBpdCB0byB0aGUgY29uZmlndXJhdGlvbiksIHVzZSB0aGUgJFN0YWNrT3V0cHV0KCkgZGlyZWN0aXZlLlxuICogQHBhcmFtIHN0YWNrTmFtZSAtIFRoZSBuYW1lIG9mIHRoZSBzdGFjay5cbiAqIEBwYXJhbSBvdXRwdXROYW1lIC0gVGhlIG5hbWUgb2YgdGhlIG91dHB1dC5cbiAqL1xuZXhwb3J0IGNvbnN0ICRDZlN0YWNrT3V0cHV0ID0gKHN0YWNrTmFtZTogc3RyaW5nLCBvdXRwdXROYW1lOiBzdHJpbmcpID0+IHtcbiAgcmV0dXJuIGAkQ2ZTdGFja091dHB1dCgnJHtzdGFja05hbWV9JywnJHtvdXRwdXROYW1lfScpYDtcbn07XG5cbi8qKlxuICogUmV0dXJucyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgY3VycmVudCBHaXQgcmVwb3NpdG9yeS5cbiAqXG4gKiAkR2l0SW5mbygpLnNoYTEgLSBTSEEtMSBvZiB0aGUgbGF0ZXN0IGNvbW1pdFxuICpcbiAqICRHaXRJbmZvKCkuY29tbWl0IC0gVGhlIGxhdGVzdCBjb21taXQgSURcbiAqXG4gKiAkR2l0SW5mbygpLmJyYW5jaCAtIFRoZSBuYW1lIG9mIHRoZSBjdXJyZW50IGJyYW5jaFxuICpcbiAqICRHaXRJbmZvKCkubWVzc2FnZSAtIFRoZSBtZXNzYWdlIG9mIHRoZSBsYXN0IGNvbW1pdFxuICpcbiAqICRHaXRJbmZvKCkudXNlciAtIEdpdCB1c2VyJ3MgbmFtZVxuICpcbiAqICRHaXRJbmZvKCkuZW1haWwgLSBHaXQgdXNlcidzIGVtYWlsXG4gKlxuICogJEdpdEluZm8oKS5yZXBvc2l0b3J5IC0gVGhlIG5hbWUgb2YgdGhlIGdpdCByZXBvc2l0b3J5XG4gKlxuICogJEdpdEluZm8oKS50YWdzIC0gVGhlIHRhZ3MgcG9pbnRpbmcgdG8gdGhlIGN1cnJlbnQgY29tbWl0XG4gKlxuICogJEdpdEluZm8oKS5kZXNjcmliZSAtIFRoZSBtb3N0IHJlY2VudCB0YWcgdGhhdCBpcyByZWFjaGFibGUgZnJvbSBhIGNvbW1pdFxuICovXG5leHBvcnQgY29uc3QgJEdpdEluZm8gPSAoKSA9PiB7XG4gIHJldHVybiAnJEdpdEluZm8oKSc7XG59O1xuIiwgIi8qKlxuICogQVdTIFNFUyAoU2ltcGxlIEVtYWlsIFNlcnZpY2UpIHJlZmVyZW5jZSBmb3IgY29ubmVjdFRvXG4gKiBHcmFudHMgZnVsbCBwZXJtaXNzaW9ucyBmb3IgQVdTIFNFUyAoc2VzOiopXG4gKi9cbmV4cG9ydCBjb25zdCBBV1NfU0VTID0gJ2F3czpzZXMnIGFzIGNvbnN0O1xuXG4vKipcbiAqIFR5cGUgdGhhdCByZXByZXNlbnRzIGFueSBBV1Mgc2VydmljZSBjb25zdGFudFxuICovXG5leHBvcnQgdHlwZSBHbG9iYWxBd3NTZXJ2aWNlQ29uc3RhbnQgPSB0eXBlb2YgQVdTX1NFUztcbiIsICIvKipcbiAqIFRoaXMgZmlsZSBkZWZpbmVzIHR5cGUtcHJvcGVydGllcyBzaGFwZWQgZGVmaW5pdGlvbnMgKGUuZy4gU3RhY2t0YXBlIHJlc291cmNlcywgcGFja2FnaW5nIHR5cGVzIGV0Yy4pXG4gKiB0aGF0IGNhbiBiZSBjb252ZXJ0ZWQgdG8gYSBUeXBlc2NyaXB0IGNsYXNzLiBUaGVzZSBjbGFzc2VzIGFyZSB0aGVuIGV4cG9ydGVkIGZyb20gc3RhY2t0YXBlL2NsYXNzZXNcbiAqXG4gKiBAZXhhbXBsZSBpbXBvcnQgeyBTdGFja3RhcGVMYW1iZGFCdWlsZHBhY2tQYWNrYWdpbmcgfSBmcm9tICdzdGFja3RhcGUvY2xhc3Nlcyc7XG4gKi9cblxuZXhwb3J0IHR5cGUgUmVzb3VyY2VDbGFzc05hbWUgPSBPbWl0PEtlYmFiVG9QYXNjYWxDYXNlPFN0cFJlc291cmNlVHlwZT4sICdGdW5jdGlvbic+IHwgJ0xhbWJkYUZ1bmN0aW9uJztcblxuZXhwb3J0IHR5cGUgUmVzb3VyY2VEZWZpbml0aW9uID0ge1xuICAvKiogQ2xhc3MgbmFtZSBmb3IgdGhlIHJlc291cmNlIChlLmcuLCAnTGFtYmRhRnVuY3Rpb24nKSAqL1xuICBjbGFzc05hbWU6IFJlc291cmNlQ2xhc3NOYW1lO1xuICAvKiogUmVzb3VyY2UgdHlwZSBpZGVudGlmaWVyIHVzZWQgaW4gY29uZmlnIChlLmcuLCAnZnVuY3Rpb24nKSAqL1xuICByZXNvdXJjZVR5cGU6IHN0cmluZztcbiAgLyoqIFByb3BzIHR5cGUgbmFtZSAoZS5nLiwgJ0xhbWJkYUZ1bmN0aW9uUHJvcHMnKSAqL1xuICBwcm9wc1R5cGU6IHN0cmluZztcbiAgLyoqIEludGVyZmFjZSBuYW1lIGluIHRoZSBzb3VyY2UgLmQudHMgZmlsZSAoZS5nLiwgJ0xhbWJkYUZ1bmN0aW9uJykgKi9cbiAgaW50ZXJmYWNlTmFtZTogc3RyaW5nO1xuICAvKiogU291cmNlIC5kLnRzIGZpbGUgbmFtZSAoZS5nLiwgJ2Z1bmN0aW9ucy5kLnRzJykgKi9cbiAgc291cmNlRmlsZTogc3RyaW5nO1xuICAvKiogUmVzb3VyY2VzIGFuZCBBV1Mgc2VydmljZXMgdGhpcyByZXNvdXJjZSBjYW4gY29ubmVjdCB0by4gR2xvYmFsQXdzU2VydmljZUNvbnN0YW50IGlzIGZvciBnbG9iYWwgc2VydmljZXMsIGUuZy4gYXdzOnNlcyAgKi9cbiAgY2FuQ29ubmVjdFRvPzogc3RyaW5nW107XG4gIC8qKiBXaGV0aGVyIHRoaXMgcmVzb3VyY2Ugc3VwcG9ydHMgb3ZlcnJpZGVzIChkZWZhdWx0OiB0cnVlKSAqL1xuICBzdXBwb3J0c092ZXJyaWRlcz86IGJvb2xlYW47XG4gIC8qKiBXaGV0aGVyIHRoaXMgcmVzb3VyY2UgaGFzIGF1Z21lbnRlZCBjb25uZWN0VG8vZW52aXJvbm1lbnQgcHJvcHMgKGRlZmF1bHQ6IGZhbHNlKSAqL1xuICBoYXNBdWdtZW50ZWRQcm9wcz86IGJvb2xlYW47XG59O1xuXG4vKipcbiAqIENvbXBsZXRlIGxpc3Qgb2YgYWxsIFN0YWNrdGFwZSByZXNvdXJjZXMuXG4gKiBUaGlzIGlzIHRoZSBzaW5nbGUgc291cmNlIG9mIHRydXRoIC0gYWxsIGNvZGUgZ2VuZXJhdGlvbiBkZXJpdmVzIGZyb20gdGhpcy5cbiAqL1xuZXhwb3J0IGNvbnN0IFJFU09VUkNFU19DT05WRVJUSUJMRV9UT19DTEFTU0VTOiBSZXNvdXJjZURlZmluaXRpb25bXSA9IFtcbiAge1xuICAgIGNsYXNzTmFtZTogJ1JlbGF0aW9uYWxEYXRhYmFzZScsXG4gICAgcmVzb3VyY2VUeXBlOiAncmVsYXRpb25hbC1kYXRhYmFzZScsXG4gICAgcHJvcHNUeXBlOiAnUmVsYXRpb25hbERhdGFiYXNlUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdSZWxhdGlvbmFsRGF0YWJhc2UnLFxuICAgIHNvdXJjZUZpbGU6ICdyZWxhdGlvbmFsLWRhdGFiYXNlcy5kLnRzJyxcbiAgICBjYW5Db25uZWN0VG86IFtdXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdXZWJTZXJ2aWNlJyxcbiAgICByZXNvdXJjZVR5cGU6ICd3ZWItc2VydmljZScsXG4gICAgcHJvcHNUeXBlOiAnV2ViU2VydmljZVByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnV2ViU2VydmljZScsXG4gICAgc291cmNlRmlsZTogJ3dlYi1zZXJ2aWNlcy5kLnRzJyxcbiAgICBoYXNBdWdtZW50ZWRQcm9wczogdHJ1ZSxcbiAgICBjYW5Db25uZWN0VG86IFtcbiAgICAgICdSZWxhdGlvbmFsRGF0YWJhc2UnLFxuICAgICAgJ0J1Y2tldCcsXG4gICAgICAnSG9zdGluZ0J1Y2tldCcsXG4gICAgICAnRHluYW1vRGJUYWJsZScsXG4gICAgICAnRXZlbnRCdXMnLFxuICAgICAgJ1JlZGlzQ2x1c3RlcicsXG4gICAgICAnTW9uZ29EYkF0bGFzQ2x1c3RlcicsXG4gICAgICAnVXBzdGFzaFJlZGlzJyxcbiAgICAgICdTcXNRdWV1ZScsXG4gICAgICAnU25zVG9waWMnLFxuICAgICAgJ09wZW5TZWFyY2hEb21haW4nLFxuICAgICAgJ0Vmc0ZpbGVzeXN0ZW0nLFxuICAgICAgJ1ByaXZhdGVTZXJ2aWNlJ1xuICAgIF1cbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ1ByaXZhdGVTZXJ2aWNlJyxcbiAgICByZXNvdXJjZVR5cGU6ICdwcml2YXRlLXNlcnZpY2UnLFxuICAgIHByb3BzVHlwZTogJ1ByaXZhdGVTZXJ2aWNlUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdQcml2YXRlU2VydmljZScsXG4gICAgc291cmNlRmlsZTogJ3ByaXZhdGUtc2VydmljZXMuZC50cycsXG4gICAgaGFzQXVnbWVudGVkUHJvcHM6IHRydWUsXG4gICAgY2FuQ29ubmVjdFRvOiBbXG4gICAgICAnUmVsYXRpb25hbERhdGFiYXNlJyxcbiAgICAgICdCdWNrZXQnLFxuICAgICAgJ0hvc3RpbmdCdWNrZXQnLFxuICAgICAgJ0R5bmFtb0RiVGFibGUnLFxuICAgICAgJ0V2ZW50QnVzJyxcbiAgICAgICdSZWRpc0NsdXN0ZXInLFxuICAgICAgJ01vbmdvRGJBdGxhc0NsdXN0ZXInLFxuICAgICAgJ1Vwc3Rhc2hSZWRpcycsXG4gICAgICAnU3FzUXVldWUnLFxuICAgICAgJ1Nuc1RvcGljJyxcbiAgICAgICdPcGVuU2VhcmNoRG9tYWluJyxcbiAgICAgICdFZnNGaWxlc3lzdGVtJ1xuICAgIF1cbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ1dvcmtlclNlcnZpY2UnLFxuICAgIHJlc291cmNlVHlwZTogJ3dvcmtlci1zZXJ2aWNlJyxcbiAgICBwcm9wc1R5cGU6ICdXb3JrZXJTZXJ2aWNlUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdXb3JrZXJTZXJ2aWNlJyxcbiAgICBzb3VyY2VGaWxlOiAnd29ya2VyLXNlcnZpY2VzLmQudHMnLFxuICAgIGhhc0F1Z21lbnRlZFByb3BzOiB0cnVlLFxuICAgIGNhbkNvbm5lY3RUbzogW1xuICAgICAgJ1JlbGF0aW9uYWxEYXRhYmFzZScsXG4gICAgICAnQnVja2V0JyxcbiAgICAgICdIb3N0aW5nQnVja2V0JyxcbiAgICAgICdEeW5hbW9EYlRhYmxlJyxcbiAgICAgICdFdmVudEJ1cycsXG4gICAgICAnUmVkaXNDbHVzdGVyJyxcbiAgICAgICdNb25nb0RiQXRsYXNDbHVzdGVyJyxcbiAgICAgICdVcHN0YXNoUmVkaXMnLFxuICAgICAgJ1Nxc1F1ZXVlJyxcbiAgICAgICdTbnNUb3BpYycsXG4gICAgICAnT3BlblNlYXJjaERvbWFpbicsXG4gICAgICAnRWZzRmlsZXN5c3RlbSdcbiAgICBdXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdNdWx0aUNvbnRhaW5lcldvcmtsb2FkJyxcbiAgICByZXNvdXJjZVR5cGU6ICdtdWx0aS1jb250YWluZXItd29ya2xvYWQnLFxuICAgIHByb3BzVHlwZTogJ0NvbnRhaW5lcldvcmtsb2FkUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdNdWx0aUNvbnRhaW5lcldvcmtsb2FkJyxcbiAgICBzb3VyY2VGaWxlOiAnbXVsdGktY29udGFpbmVyLXdvcmtsb2Fkcy5kLnRzJyxcbiAgICBoYXNBdWdtZW50ZWRQcm9wczogdHJ1ZSxcbiAgICBjYW5Db25uZWN0VG86IFtcbiAgICAgICdSZWxhdGlvbmFsRGF0YWJhc2UnLFxuICAgICAgJ0J1Y2tldCcsXG4gICAgICAnSG9zdGluZ0J1Y2tldCcsXG4gICAgICAnRHluYW1vRGJUYWJsZScsXG4gICAgICAnRXZlbnRCdXMnLFxuICAgICAgJ1JlZGlzQ2x1c3RlcicsXG4gICAgICAnTW9uZ29EYkF0bGFzQ2x1c3RlcicsXG4gICAgICAnVXBzdGFzaFJlZGlzJyxcbiAgICAgICdTcXNRdWV1ZScsXG4gICAgICAnU25zVG9waWMnLFxuICAgICAgJ09wZW5TZWFyY2hEb21haW4nLFxuICAgICAgJ0Vmc0ZpbGVzeXN0ZW0nXG4gICAgXVxuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnTGFtYmRhRnVuY3Rpb24nLFxuICAgIHJlc291cmNlVHlwZTogJ2Z1bmN0aW9uJyxcbiAgICBwcm9wc1R5cGU6ICdMYW1iZGFGdW5jdGlvblByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnTGFtYmRhRnVuY3Rpb24nLFxuICAgIHNvdXJjZUZpbGU6ICdmdW5jdGlvbnMuZC50cycsXG4gICAgaGFzQXVnbWVudGVkUHJvcHM6IHRydWUsXG4gICAgY2FuQ29ubmVjdFRvOiBbXG4gICAgICAnUmVsYXRpb25hbERhdGFiYXNlJyxcbiAgICAgICdCdWNrZXQnLFxuICAgICAgJ0hvc3RpbmdCdWNrZXQnLFxuICAgICAgJ0R5bmFtb0RiVGFibGUnLFxuICAgICAgJ0V2ZW50QnVzJyxcbiAgICAgICdSZWRpc0NsdXN0ZXInLFxuICAgICAgJ01vbmdvRGJBdGxhc0NsdXN0ZXInLFxuICAgICAgJ1Vwc3Rhc2hSZWRpcycsXG4gICAgICAnU3FzUXVldWUnLFxuICAgICAgJ1Nuc1RvcGljJyxcbiAgICAgICdPcGVuU2VhcmNoRG9tYWluJyxcbiAgICAgICdFZnNGaWxlc3lzdGVtJyxcbiAgICAgICdQcml2YXRlU2VydmljZScsXG4gICAgICAnV2ViU2VydmljZSdcbiAgICBdXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdCYXRjaEpvYicsXG4gICAgcmVzb3VyY2VUeXBlOiAnYmF0Y2gtam9iJyxcbiAgICBwcm9wc1R5cGU6ICdCYXRjaEpvYlByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnQmF0Y2hKb2InLFxuICAgIHNvdXJjZUZpbGU6ICdiYXRjaC1qb2JzLmQudHMnLFxuICAgIGhhc0F1Z21lbnRlZFByb3BzOiB0cnVlLFxuICAgIGNhbkNvbm5lY3RUbzogW1xuICAgICAgJ1JlbGF0aW9uYWxEYXRhYmFzZScsXG4gICAgICAnQnVja2V0JyxcbiAgICAgICdIb3N0aW5nQnVja2V0JyxcbiAgICAgICdEeW5hbW9EYlRhYmxlJyxcbiAgICAgICdFdmVudEJ1cycsXG4gICAgICAnUmVkaXNDbHVzdGVyJyxcbiAgICAgICdNb25nb0RiQXRsYXNDbHVzdGVyJyxcbiAgICAgICdVcHN0YXNoUmVkaXMnLFxuICAgICAgJ1Nxc1F1ZXVlJyxcbiAgICAgICdTbnNUb3BpYycsXG4gICAgICAnT3BlblNlYXJjaERvbWFpbicsXG4gICAgICAnRWZzRmlsZXN5c3RlbSdcbiAgICBdXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdCdWNrZXQnLFxuICAgIHJlc291cmNlVHlwZTogJ2J1Y2tldCcsXG4gICAgcHJvcHNUeXBlOiAnQnVja2V0UHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdCdWNrZXQnLFxuICAgIHNvdXJjZUZpbGU6ICdidWNrZXRzLmQudHMnLFxuICAgIGNhbkNvbm5lY3RUbzogW11cbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ0hvc3RpbmdCdWNrZXQnLFxuICAgIHJlc291cmNlVHlwZTogJ2hvc3RpbmctYnVja2V0JyxcbiAgICBwcm9wc1R5cGU6ICdIb3N0aW5nQnVja2V0UHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdIb3N0aW5nQnVja2V0JyxcbiAgICBzb3VyY2VGaWxlOiAnaG9zdGluZy1idWNrZXRzLmQudHMnLFxuICAgIGNhbkNvbm5lY3RUbzogW11cbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ0R5bmFtb0RiVGFibGUnLFxuICAgIHJlc291cmNlVHlwZTogJ2R5bmFtby1kYi10YWJsZScsXG4gICAgcHJvcHNUeXBlOiAnRHluYW1vRGJUYWJsZVByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnRHluYW1vRGJUYWJsZScsXG4gICAgc291cmNlRmlsZTogJ2R5bmFtby1kYi10YWJsZXMuZC50cycsXG4gICAgY2FuQ29ubmVjdFRvOiBbXVxuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnRXZlbnRCdXMnLFxuICAgIHJlc291cmNlVHlwZTogJ2V2ZW50LWJ1cycsXG4gICAgcHJvcHNUeXBlOiAnRXZlbnRCdXNQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0V2ZW50QnVzJyxcbiAgICBzb3VyY2VGaWxlOiAnZXZlbnQtYnVzZXMuZC50cycsXG4gICAgY2FuQ29ubmVjdFRvOiBbXVxuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnSHR0cEFwaUdhdGV3YXknLFxuICAgIHJlc291cmNlVHlwZTogJ2h0dHAtYXBpLWdhdGV3YXknLFxuICAgIHByb3BzVHlwZTogJ0h0dHBBcGlHYXRld2F5UHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdIdHRwQXBpR2F0ZXdheScsXG4gICAgc291cmNlRmlsZTogJ2h0dHAtYXBpLWdhdGV3YXlzLmQudHMnLFxuICAgIGNhbkNvbm5lY3RUbzogW11cbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ0FwcGxpY2F0aW9uTG9hZEJhbGFuY2VyJyxcbiAgICByZXNvdXJjZVR5cGU6ICdhcHBsaWNhdGlvbi1sb2FkLWJhbGFuY2VyJyxcbiAgICBwcm9wc1R5cGU6ICdBcHBsaWNhdGlvbkxvYWRCYWxhbmNlclByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnQXBwbGljYXRpb25Mb2FkQmFsYW5jZXInLFxuICAgIHNvdXJjZUZpbGU6ICdhcHBsaWNhdGlvbi1sb2FkLWJhbGFuY2Vycy5kLnRzJyxcbiAgICBjYW5Db25uZWN0VG86IFtdXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdOZXR3b3JrTG9hZEJhbGFuY2VyJyxcbiAgICByZXNvdXJjZVR5cGU6ICduZXR3b3JrLWxvYWQtYmFsYW5jZXInLFxuICAgIHByb3BzVHlwZTogJ05ldHdvcmtMb2FkQmFsYW5jZXJQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ05ldHdvcmtMb2FkQmFsYW5jZXInLFxuICAgIHNvdXJjZUZpbGU6ICduZXR3b3JrLWxvYWQtYmFsYW5jZXIuZC50cycsXG4gICAgY2FuQ29ubmVjdFRvOiBbXVxuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnUmVkaXNDbHVzdGVyJyxcbiAgICByZXNvdXJjZVR5cGU6ICdyZWRpcy1jbHVzdGVyJyxcbiAgICBwcm9wc1R5cGU6ICdSZWRpc0NsdXN0ZXJQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ1JlZGlzQ2x1c3RlcicsXG4gICAgc291cmNlRmlsZTogJ3JlZGlzLWNsdXN0ZXIuZC50cycsXG4gICAgY2FuQ29ubmVjdFRvOiBbXVxuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnTW9uZ29EYkF0bGFzQ2x1c3RlcicsXG4gICAgcmVzb3VyY2VUeXBlOiAnbW9uZ28tZGItYXRsYXMtY2x1c3RlcicsXG4gICAgcHJvcHNUeXBlOiAnTW9uZ29EYkF0bGFzQ2x1c3RlclByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnTW9uZ29EYkF0bGFzQ2x1c3RlcicsXG4gICAgc291cmNlRmlsZTogJ21vbmdvLWRiLWF0bGFzLWNsdXN0ZXJzLmQudHMnLFxuICAgIHN1cHBvcnRzT3ZlcnJpZGVzOiBmYWxzZSxcbiAgICBjYW5Db25uZWN0VG86IFtdXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdTdGF0ZU1hY2hpbmUnLFxuICAgIHJlc291cmNlVHlwZTogJ3N0YXRlLW1hY2hpbmUnLFxuICAgIHByb3BzVHlwZTogJ1N0YXRlTWFjaGluZVByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnU3RhdGVNYWNoaW5lJyxcbiAgICBzb3VyY2VGaWxlOiAnc3RhdGUtbWFjaGluZXMuZC50cycsXG4gICAgaGFzQXVnbWVudGVkUHJvcHM6IHRydWUsXG4gICAgY2FuQ29ubmVjdFRvOiBbJ0Z1bmN0aW9uJywgJ0JhdGNoSm9iJ11cbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ1VzZXJBdXRoUG9vbCcsXG4gICAgcmVzb3VyY2VUeXBlOiAndXNlci1hdXRoLXBvb2wnLFxuICAgIHByb3BzVHlwZTogJ1VzZXJBdXRoUG9vbFByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnVXNlckF1dGhQb29sJyxcbiAgICBzb3VyY2VGaWxlOiAndXNlci1wb29scy5kLnRzJyxcbiAgICBjYW5Db25uZWN0VG86IFtdXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdVcHN0YXNoUmVkaXMnLFxuICAgIHJlc291cmNlVHlwZTogJ3Vwc3Rhc2gtcmVkaXMnLFxuICAgIHByb3BzVHlwZTogJ1Vwc3Rhc2hSZWRpc1Byb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnVXBzdGFzaFJlZGlzJyxcbiAgICBzb3VyY2VGaWxlOiAndXBzdGFzaC1yZWRpcy5kLnRzJyxcbiAgICBzdXBwb3J0c092ZXJyaWRlczogZmFsc2UsXG4gICAgY2FuQ29ubmVjdFRvOiBbXVxuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnU3FzUXVldWUnLFxuICAgIHJlc291cmNlVHlwZTogJ3Nxcy1xdWV1ZScsXG4gICAgcHJvcHNUeXBlOiAnU3FzUXVldWVQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ1Nxc1F1ZXVlJyxcbiAgICBzb3VyY2VGaWxlOiAnc3FzLXF1ZXVlcy5kLnRzJyxcbiAgICBjYW5Db25uZWN0VG86IFtdXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdTbnNUb3BpYycsXG4gICAgcmVzb3VyY2VUeXBlOiAnc25zLXRvcGljJyxcbiAgICBwcm9wc1R5cGU6ICdTbnNUb3BpY1Byb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnU25zVG9waWMnLFxuICAgIHNvdXJjZUZpbGU6ICdzbnMtdG9waWMuZC50cycsXG4gICAgY2FuQ29ubmVjdFRvOiBbXVxuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnV2ViQXBwRmlyZXdhbGwnLFxuICAgIHJlc291cmNlVHlwZTogJ3dlYi1hcHAtZmlyZXdhbGwnLFxuICAgIHByb3BzVHlwZTogJ1dlYkFwcEZpcmV3YWxsUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdXZWJBcHBGaXJld2FsbCcsXG4gICAgc291cmNlRmlsZTogJ3dlYi1hcHAtZmlyZXdhbGwuZC50cycsXG4gICAgY2FuQ29ubmVjdFRvOiBbXVxuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnT3BlblNlYXJjaERvbWFpbicsXG4gICAgcmVzb3VyY2VUeXBlOiAnb3Blbi1zZWFyY2gtZG9tYWluJyxcbiAgICBwcm9wc1R5cGU6ICdPcGVuU2VhcmNoRG9tYWluUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdPcGVuU2VhcmNoRG9tYWluJyxcbiAgICBzb3VyY2VGaWxlOiAnb3Blbi1zZWFyY2guZC50cycsXG4gICAgY2FuQ29ubmVjdFRvOiBbXVxuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnRWZzRmlsZXN5c3RlbScsXG4gICAgcmVzb3VyY2VUeXBlOiAnZWZzLWZpbGVzeXN0ZW0nLFxuICAgIHByb3BzVHlwZTogJ0Vmc0ZpbGVzeXN0ZW1Qcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0Vmc0ZpbGVzeXN0ZW0nLFxuICAgIHNvdXJjZUZpbGU6ICdlZnMtZmlsZXN5c3RlbS5kLnRzJyxcbiAgICBjYW5Db25uZWN0VG86IFtdXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdOZXh0anNXZWInLFxuICAgIHJlc291cmNlVHlwZTogJ25leHRqcy13ZWInLFxuICAgIHByb3BzVHlwZTogJ05leHRqc1dlYlByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnTmV4dGpzV2ViJyxcbiAgICBzb3VyY2VGaWxlOiAnbmV4dGpzLXdlYi5kLnRzJyxcbiAgICBoYXNBdWdtZW50ZWRQcm9wczogdHJ1ZSxcbiAgICBjYW5Db25uZWN0VG86IFtcbiAgICAgICdSZWxhdGlvbmFsRGF0YWJhc2UnLFxuICAgICAgJ0J1Y2tldCcsXG4gICAgICAnSG9zdGluZ0J1Y2tldCcsXG4gICAgICAnRHluYW1vRGJUYWJsZScsXG4gICAgICAnRXZlbnRCdXMnLFxuICAgICAgJ1JlZGlzQ2x1c3RlcicsXG4gICAgICAnTW9uZ29EYkF0bGFzQ2x1c3RlcicsXG4gICAgICAnVXBzdGFzaFJlZGlzJyxcbiAgICAgICdTcXNRdWV1ZScsXG4gICAgICAnU25zVG9waWMnLFxuICAgICAgJ09wZW5TZWFyY2hEb21haW4nLFxuICAgICAgJ0Vmc0ZpbGVzeXN0ZW0nLFxuICAgICAgJ1ByaXZhdGVTZXJ2aWNlJyxcbiAgICAgICdXZWJTZXJ2aWNlJyxcbiAgICAgICdMYW1iZGFGdW5jdGlvbicsXG4gICAgICAnQmF0Y2hKb2InLFxuICAgICAgJ1VzZXJBdXRoUG9vbCdcbiAgICBdXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdCYXN0aW9uJyxcbiAgICByZXNvdXJjZVR5cGU6ICdiYXN0aW9uJyxcbiAgICBwcm9wc1R5cGU6ICdCYXN0aW9uUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdCYXN0aW9uJyxcbiAgICBzb3VyY2VGaWxlOiAnYmFzdGlvbi5kLnRzJyxcbiAgICBjYW5Db25uZWN0VG86IFtdXG4gIH1cbl07XG5cbi8qKlxuICogRGVmaW5lcyBhbGwgdHlwZSArIHByb3BlcnRpZXMgc2hhcGVkIGRlZmluaXRpb25zIHRoYXQgY2FuIGJlIGNvbnZlcnRlZCB0byBhIFR5cGVzY3JpcHQgY2xhc3NcbiAqL1xuZXhwb3J0IHR5cGUgVHlwZVByb3BlcnRpZXNEZWZpbml0aW9uID0ge1xuICBjbGFzc05hbWU6IHN0cmluZztcbiAgdHlwZVZhbHVlOiBzdHJpbmc7XG4gIHByb3BzVHlwZTogc3RyaW5nO1xuICBpbnRlcmZhY2VOYW1lOiBzdHJpbmc7XG4gIHNvdXJjZUZpbGU6IHN0cmluZztcbn07XG5cbmV4cG9ydCBjb25zdCBNSVNDX1RZUEVTX0NPTlZFUlRJQkxFX1RPX0NMQVNTRVM6IFR5cGVQcm9wZXJ0aWVzRGVmaW5pdGlvbltdID0gW1xuICAvLyBEYXRhYmFzZSBFbmdpbmVzXG4gIHtcbiAgICBjbGFzc05hbWU6ICdSZHNFbmdpbmVQb3N0Z3JlcycsXG4gICAgdHlwZVZhbHVlOiAncG9zdGdyZXMnLFxuICAgIHByb3BzVHlwZTogJ1Jkc0VuZ2luZVByb3BlcnRpZXMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdSZHNFbmdpbmUnLFxuICAgIHNvdXJjZUZpbGU6ICdyZWxhdGlvbmFsLWRhdGFiYXNlcy5kLnRzJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnUmRzRW5naW5lTWFyaWFkYicsXG4gICAgdHlwZVZhbHVlOiAnbWFyaWFkYicsXG4gICAgcHJvcHNUeXBlOiAnUmRzRW5naW5lUHJvcGVydGllcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ1Jkc0VuZ2luZScsXG4gICAgc291cmNlRmlsZTogJ3JlbGF0aW9uYWwtZGF0YWJhc2VzLmQudHMnXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdSZHNFbmdpbmVNeXNxbCcsXG4gICAgdHlwZVZhbHVlOiAnbXlzcWwnLFxuICAgIHByb3BzVHlwZTogJ1Jkc0VuZ2luZVByb3BlcnRpZXMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdSZHNFbmdpbmUnLFxuICAgIHNvdXJjZUZpbGU6ICdyZWxhdGlvbmFsLWRhdGFiYXNlcy5kLnRzJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnUmRzRW5naW5lT3JhY2xlRUUnLFxuICAgIHR5cGVWYWx1ZTogJ29yYWNsZS1lZScsXG4gICAgcHJvcHNUeXBlOiAnUmRzRW5naW5lUHJvcGVydGllcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ1Jkc0VuZ2luZScsXG4gICAgc291cmNlRmlsZTogJ3JlbGF0aW9uYWwtZGF0YWJhc2VzLmQudHMnXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdSZHNFbmdpbmVPcmFjbGVTRTInLFxuICAgIHR5cGVWYWx1ZTogJ29yYWNsZS1zZTInLFxuICAgIHByb3BzVHlwZTogJ1Jkc0VuZ2luZVByb3BlcnRpZXMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdSZHNFbmdpbmUnLFxuICAgIHNvdXJjZUZpbGU6ICdyZWxhdGlvbmFsLWRhdGFiYXNlcy5kLnRzJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnUmRzRW5naW5lU3FsU2VydmVyRUUnLFxuICAgIHR5cGVWYWx1ZTogJ3NxbHNlcnZlci1lZScsXG4gICAgcHJvcHNUeXBlOiAnUmRzRW5naW5lUHJvcGVydGllcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ1Jkc0VuZ2luZScsXG4gICAgc291cmNlRmlsZTogJ3JlbGF0aW9uYWwtZGF0YWJhc2VzLmQudHMnXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdSZHNFbmdpbmVTcWxTZXJ2ZXJFWCcsXG4gICAgdHlwZVZhbHVlOiAnc3Fsc2VydmVyLWV4JyxcbiAgICBwcm9wc1R5cGU6ICdSZHNFbmdpbmVQcm9wZXJ0aWVzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnUmRzRW5naW5lJyxcbiAgICBzb3VyY2VGaWxlOiAncmVsYXRpb25hbC1kYXRhYmFzZXMuZC50cydcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ1Jkc0VuZ2luZVNxbFNlcnZlclNFJyxcbiAgICB0eXBlVmFsdWU6ICdzcWxzZXJ2ZXItc2UnLFxuICAgIHByb3BzVHlwZTogJ1Jkc0VuZ2luZVByb3BlcnRpZXMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdSZHNFbmdpbmUnLFxuICAgIHNvdXJjZUZpbGU6ICdyZWxhdGlvbmFsLWRhdGFiYXNlcy5kLnRzJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnUmRzRW5naW5lU3FsU2VydmVyV2ViJyxcbiAgICB0eXBlVmFsdWU6ICdzcWxzZXJ2ZXItd2ViJyxcbiAgICBwcm9wc1R5cGU6ICdSZHNFbmdpbmVQcm9wZXJ0aWVzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnUmRzRW5naW5lJyxcbiAgICBzb3VyY2VGaWxlOiAncmVsYXRpb25hbC1kYXRhYmFzZXMuZC50cydcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ0F1cm9yYUVuZ2luZVBvc3RncmVzcWwnLFxuICAgIHR5cGVWYWx1ZTogJ2F1cm9yYS1wb3N0Z3Jlc3FsJyxcbiAgICBwcm9wc1R5cGU6ICdBdXJvcmFFbmdpbmVQcm9wZXJ0aWVzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnQXVyb3JhRW5naW5lJyxcbiAgICBzb3VyY2VGaWxlOiAncmVsYXRpb25hbC1kYXRhYmFzZXMuZC50cydcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ0F1cm9yYUVuZ2luZU15c3FsJyxcbiAgICB0eXBlVmFsdWU6ICdhdXJvcmEtbXlzcWwnLFxuICAgIHByb3BzVHlwZTogJ0F1cm9yYUVuZ2luZVByb3BlcnRpZXMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdBdXJvcmFFbmdpbmUnLFxuICAgIHNvdXJjZUZpbGU6ICdyZWxhdGlvbmFsLWRhdGFiYXNlcy5kLnRzJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnQXVyb3JhU2VydmVybGVzc0VuZ2luZVBvc3RncmVzcWwnLFxuICAgIHR5cGVWYWx1ZTogJ2F1cm9yYS1wb3N0Z3Jlc3FsLXNlcnZlcmxlc3MnLFxuICAgIHByb3BzVHlwZTogJ0F1cm9yYVNlcnZlcmxlc3NFbmdpbmVQcm9wZXJ0aWVzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnQXVyb3JhU2VydmVybGVzc0VuZ2luZScsXG4gICAgc291cmNlRmlsZTogJ3JlbGF0aW9uYWwtZGF0YWJhc2VzLmQudHMnXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdBdXJvcmFTZXJ2ZXJsZXNzRW5naW5lTXlzcWwnLFxuICAgIHR5cGVWYWx1ZTogJ2F1cm9yYS1teXNxbC1zZXJ2ZXJsZXNzJyxcbiAgICBwcm9wc1R5cGU6ICdBdXJvcmFTZXJ2ZXJsZXNzRW5naW5lUHJvcGVydGllcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0F1cm9yYVNlcnZlcmxlc3NFbmdpbmUnLFxuICAgIHNvdXJjZUZpbGU6ICdyZWxhdGlvbmFsLWRhdGFiYXNlcy5kLnRzJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnQXVyb3JhU2VydmVybGVzc1YyRW5naW5lUG9zdGdyZXNxbCcsXG4gICAgdHlwZVZhbHVlOiAnYXVyb3JhLXBvc3RncmVzcWwtc2VydmVybGVzcy12MicsXG4gICAgcHJvcHNUeXBlOiAnQXVyb3JhU2VydmVybGVzc1YyRW5naW5lUHJvcGVydGllcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0F1cm9yYVNlcnZlcmxlc3NWMkVuZ2luZScsXG4gICAgc291cmNlRmlsZTogJ3JlbGF0aW9uYWwtZGF0YWJhc2VzLmQudHMnXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdBdXJvcmFTZXJ2ZXJsZXNzVjJFbmdpbmVNeXNxbCcsXG4gICAgdHlwZVZhbHVlOiAnYXVyb3JhLW15c3FsLXNlcnZlcmxlc3MtdjInLFxuICAgIHByb3BzVHlwZTogJ0F1cm9yYVNlcnZlcmxlc3NWMkVuZ2luZVByb3BlcnRpZXMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdBdXJvcmFTZXJ2ZXJsZXNzVjJFbmdpbmUnLFxuICAgIHNvdXJjZUZpbGU6ICdyZWxhdGlvbmFsLWRhdGFiYXNlcy5kLnRzJ1xuICB9LFxuICAvLyBMYW1iZGEgUGFja2FnaW5nXG4gIHtcbiAgICBjbGFzc05hbWU6ICdTdGFja3RhcGVMYW1iZGFCdWlsZHBhY2tQYWNrYWdpbmcnLFxuICAgIHR5cGVWYWx1ZTogJ3N0YWNrdGFwZS1sYW1iZGEtYnVpbGRwYWNrJyxcbiAgICBwcm9wc1R5cGU6ICdTdHBCdWlsZHBhY2tMYW1iZGFQYWNrYWdpbmdQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ1N0cEJ1aWxkcGFja0xhbWJkYVBhY2thZ2luZycsXG4gICAgc291cmNlRmlsZTogJ2RlcGxveW1lbnQtYXJ0aWZhY3RzLmQudHMnXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdDdXN0b21BcnRpZmFjdExhbWJkYVBhY2thZ2luZycsXG4gICAgdHlwZVZhbHVlOiAnY3VzdG9tLWFydGlmYWN0JyxcbiAgICBwcm9wc1R5cGU6ICdDdXN0b21BcnRpZmFjdExhbWJkYVBhY2thZ2luZ1Byb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnQ3VzdG9tQXJ0aWZhY3RMYW1iZGFQYWNrYWdpbmcnLFxuICAgIHNvdXJjZUZpbGU6ICdkZXBsb3ltZW50LWFydGlmYWN0cy5kLnRzJ1xuICB9LFxuICAvLyBDb250YWluZXIgUGFja2FnaW5nXG4gIHtcbiAgICBjbGFzc05hbWU6ICdQcmVidWlsdEltYWdlUGFja2FnaW5nJyxcbiAgICB0eXBlVmFsdWU6ICdwcmVidWlsdC1pbWFnZScsXG4gICAgcHJvcHNUeXBlOiAnUHJlYnVpbHRJbWFnZUN3UGFja2FnaW5nUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdQcmVidWlsdEN3SW1hZ2VQYWNrYWdpbmcnLFxuICAgIHNvdXJjZUZpbGU6ICdkZXBsb3ltZW50LWFydGlmYWN0cy5kLnRzJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnQ3VzdG9tRG9ja2VyZmlsZVBhY2thZ2luZycsXG4gICAgdHlwZVZhbHVlOiAnY3VzdG9tLWRvY2tlcmZpbGUnLFxuICAgIHByb3BzVHlwZTogJ0N1c3RvbURvY2tlcmZpbGVDd0ltYWdlUGFja2FnaW5nUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdDdXN0b21Eb2NrZXJmaWxlQ3dJbWFnZVBhY2thZ2luZycsXG4gICAgc291cmNlRmlsZTogJ2RlcGxveW1lbnQtYXJ0aWZhY3RzLmQudHMnXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdFeHRlcm5hbEJ1aWxkcGFja1BhY2thZ2luZycsXG4gICAgdHlwZVZhbHVlOiAnZXh0ZXJuYWwtYnVpbGRwYWNrJyxcbiAgICBwcm9wc1R5cGU6ICdFeHRlcm5hbEJ1aWxkcGFja0N3SW1hZ2VQYWNrYWdpbmdQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0V4dGVybmFsQnVpbGRwYWNrQ3dJbWFnZVBhY2thZ2luZycsXG4gICAgc291cmNlRmlsZTogJ2RlcGxveW1lbnQtYXJ0aWZhY3RzLmQudHMnXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdOaXhwYWNrc1BhY2thZ2luZycsXG4gICAgdHlwZVZhbHVlOiAnbml4cGFja3MnLFxuICAgIHByb3BzVHlwZTogJ05peHBhY2tzQ3dJbWFnZVBhY2thZ2luZ1Byb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnTml4cGFja3NDd0ltYWdlUGFja2FnaW5nJyxcbiAgICBzb3VyY2VGaWxlOiAnZGVwbG95bWVudC1hcnRpZmFjdHMuZC50cydcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ1N0YWNrdGFwZUltYWdlQnVpbGRwYWNrUGFja2FnaW5nJyxcbiAgICB0eXBlVmFsdWU6ICdzdGFja3RhcGUtaW1hZ2UtYnVpbGRwYWNrJyxcbiAgICBwcm9wc1R5cGU6ICdTdHBCdWlsZHBhY2tDd0ltYWdlUGFja2FnaW5nUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdTdHBCdWlsZHBhY2tDd0ltYWdlUGFja2FnaW5nJyxcbiAgICBzb3VyY2VGaWxlOiAnZGVwbG95bWVudC1hcnRpZmFjdHMuZC50cydcbiAgfSxcbiAgLy8gTGFtYmRhIEZ1bmN0aW9uIEV2ZW50cy9JbnRlZ3JhdGlvbnNcbiAge1xuICAgIGNsYXNzTmFtZTogJ0h0dHBBcGlJbnRlZ3JhdGlvbicsXG4gICAgdHlwZVZhbHVlOiAnaHR0cC1hcGktZ2F0ZXdheScsXG4gICAgcHJvcHNUeXBlOiAnSHR0cEFwaUludGVncmF0aW9uUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdIdHRwQXBpSW50ZWdyYXRpb24nLFxuICAgIHNvdXJjZUZpbGU6ICdldmVudHMuZC50cydcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ1MzSW50ZWdyYXRpb24nLFxuICAgIHR5cGVWYWx1ZTogJ3MzJyxcbiAgICBwcm9wc1R5cGU6ICdTM0ludGVncmF0aW9uUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdTM0ludGVncmF0aW9uJyxcbiAgICBzb3VyY2VGaWxlOiAnZXZlbnRzLmQudHMnXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdTY2hlZHVsZUludGVncmF0aW9uJyxcbiAgICB0eXBlVmFsdWU6ICdzY2hlZHVsZScsXG4gICAgcHJvcHNUeXBlOiAnU2NoZWR1bGVJbnRlZ3JhdGlvblByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnU2NoZWR1bGVJbnRlZ3JhdGlvbicsXG4gICAgc291cmNlRmlsZTogJ2V2ZW50cy5kLnRzJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnU25zSW50ZWdyYXRpb24nLFxuICAgIHR5cGVWYWx1ZTogJ3NucycsXG4gICAgcHJvcHNUeXBlOiAnU25zSW50ZWdyYXRpb25Qcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ1Nuc0ludGVncmF0aW9uJyxcbiAgICBzb3VyY2VGaWxlOiAnZXZlbnRzLmQudHMnXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdTcXNJbnRlZ3JhdGlvbicsXG4gICAgdHlwZVZhbHVlOiAnc3FzJyxcbiAgICBwcm9wc1R5cGU6ICdTcXNJbnRlZ3JhdGlvblByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnU3FzSW50ZWdyYXRpb24nLFxuICAgIHNvdXJjZUZpbGU6ICdldmVudHMuZC50cydcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ0tpbmVzaXNJbnRlZ3JhdGlvbicsXG4gICAgdHlwZVZhbHVlOiAna2luZXNpcycsXG4gICAgcHJvcHNUeXBlOiAnS2luZXNpc0ludGVncmF0aW9uUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdLaW5lc2lzSW50ZWdyYXRpb24nLFxuICAgIHNvdXJjZUZpbGU6ICdldmVudHMuZC50cydcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ0R5bmFtb0RiSW50ZWdyYXRpb24nLFxuICAgIHR5cGVWYWx1ZTogJ2R5bmFtb2RiJyxcbiAgICBwcm9wc1R5cGU6ICdEeW5hbW9EYkludGVncmF0aW9uUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdEeW5hbW9EYkludGVncmF0aW9uJyxcbiAgICBzb3VyY2VGaWxlOiAnZXZlbnRzLmQudHMnXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdDbG91ZHdhdGNoTG9nSW50ZWdyYXRpb24nLFxuICAgIHR5cGVWYWx1ZTogJ2Nsb3Vkd2F0Y2gtbG9ncycsXG4gICAgcHJvcHNUeXBlOiAnQ2xvdWR3YXRjaExvZ0ludGVncmF0aW9uUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdDbG91ZHdhdGNoTG9nSW50ZWdyYXRpb24nLFxuICAgIHNvdXJjZUZpbGU6ICdldmVudHMuZC50cydcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ0FwcGxpY2F0aW9uTG9hZEJhbGFuY2VySW50ZWdyYXRpb24nLFxuICAgIHR5cGVWYWx1ZTogJ2FwcGxpY2F0aW9uLWxvYWQtYmFsYW5jZXInLFxuICAgIHByb3BzVHlwZTogJ0FwcGxpY2F0aW9uTG9hZEJhbGFuY2VySW50ZWdyYXRpb25Qcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0FwcGxpY2F0aW9uTG9hZEJhbGFuY2VySW50ZWdyYXRpb24nLFxuICAgIHNvdXJjZUZpbGU6ICdldmVudHMuZC50cydcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ0V2ZW50QnVzSW50ZWdyYXRpb24nLFxuICAgIHR5cGVWYWx1ZTogJ2V2ZW50LWJ1cycsXG4gICAgcHJvcHNUeXBlOiAnRXZlbnRCdXNJbnRlZ3JhdGlvblByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnRXZlbnRCdXNJbnRlZ3JhdGlvbicsXG4gICAgc291cmNlRmlsZTogJ2V2ZW50cy5kLnRzJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnS2Fma2FUb3BpY0ludGVncmF0aW9uJyxcbiAgICB0eXBlVmFsdWU6ICdrYWZrYS10b3BpYycsXG4gICAgcHJvcHNUeXBlOiAnS2Fma2FUb3BpY0ludGVncmF0aW9uUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdLYWZrYVRvcGljSW50ZWdyYXRpb24nLFxuICAgIHNvdXJjZUZpbGU6ICdldmVudHMuZC50cydcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ0FsYXJtSW50ZWdyYXRpb24nLFxuICAgIHR5cGVWYWx1ZTogJ2FsYXJtJyxcbiAgICBwcm9wc1R5cGU6ICdBbGFybUludGVncmF0aW9uUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdBbGFybUludGVncmF0aW9uJyxcbiAgICBzb3VyY2VGaWxlOiAnZXZlbnRzLmQudHMnXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdJb3RJbnRlZ3JhdGlvbicsXG4gICAgdHlwZVZhbHVlOiAnaW90JyxcbiAgICBwcm9wc1R5cGU6ICdJb3RJbnRlZ3JhdGlvblByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnSW90SW50ZWdyYXRpb24nLFxuICAgIHNvdXJjZUZpbGU6ICdldmVudHMuZC50cydcbiAgfSxcbiAgLy8gQ0ROIFJvdXRlc1xuICB7XG4gICAgY2xhc3NOYW1lOiAnQ2RuTG9hZEJhbGFuY2VyUm91dGUnLFxuICAgIHR5cGVWYWx1ZTogJ2FwcGxpY2F0aW9uLWxvYWQtYmFsYW5jZXInLFxuICAgIHByb3BzVHlwZTogJ0NkbkxvYWRCYWxhbmNlck9yaWdpbicsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0NkbkxvYWRCYWxhbmNlck9yaWdpbicsXG4gICAgc291cmNlRmlsZTogJ2Nkbi5kLnRzJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnQ2RuSHR0cEFwaUdhdGV3YXlSb3V0ZScsXG4gICAgdHlwZVZhbHVlOiAnaHR0cC1hcGktZ2F0ZXdheScsXG4gICAgcHJvcHNUeXBlOiAnQ2RuSHR0cEFwaUdhdGV3YXlPcmlnaW4nLFxuICAgIGludGVyZmFjZU5hbWU6ICdDZG5IdHRwQXBpR2F0ZXdheU9yaWdpbicsXG4gICAgc291cmNlRmlsZTogJ2Nkbi5kLnRzJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnQ2RuTGFtYmRhRnVuY3Rpb25Sb3V0ZScsXG4gICAgdHlwZVZhbHVlOiAnZnVuY3Rpb24nLFxuICAgIHByb3BzVHlwZTogJ0NkbkxhbWJkYUZ1bmN0aW9uT3JpZ2luJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnQ2RuTGFtYmRhRnVuY3Rpb25PcmlnaW4nLFxuICAgIHNvdXJjZUZpbGU6ICdjZG4uZC50cydcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ0NkbkN1c3RvbURvbWFpblJvdXRlJyxcbiAgICB0eXBlVmFsdWU6ICdjdXN0b20tb3JpZ2luJyxcbiAgICBwcm9wc1R5cGU6ICdDZG5DdXN0b21PcmlnaW4nLFxuICAgIGludGVyZmFjZU5hbWU6ICdDZG5DdXN0b21PcmlnaW4nLFxuICAgIHNvdXJjZUZpbGU6ICdjZG4uZC50cydcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ0NkbkJ1Y2tldFJvdXRlJyxcbiAgICB0eXBlVmFsdWU6ICdidWNrZXQnLFxuICAgIHByb3BzVHlwZTogJ0NkbkJ1Y2tldE9yaWdpbicsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0NkbkJ1Y2tldE9yaWdpbicsXG4gICAgc291cmNlRmlsZTogJ2Nkbi5kLnRzJ1xuICB9LFxuICAvLyBXZWIgQXBwIEZpcmV3YWxsIFJ1bGVzXG4gIHtcbiAgICBjbGFzc05hbWU6ICdNYW5hZ2VkUnVsZUdyb3VwJyxcbiAgICB0eXBlVmFsdWU6ICdtYW5hZ2VkLXJ1bGUtZ3JvdXAnLFxuICAgIHByb3BzVHlwZTogJ01hbmFnZWRSdWxlR3JvdXBQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ01hbmFnZWRSdWxlR3JvdXAnLFxuICAgIHNvdXJjZUZpbGU6ICd3ZWItYXBwLWZpcmV3YWxsLmQudHMnXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdDdXN0b21SdWxlR3JvdXAnLFxuICAgIHR5cGVWYWx1ZTogJ2N1c3RvbS1ydWxlLWdyb3VwJyxcbiAgICBwcm9wc1R5cGU6ICdDdXN0b21SdWxlR3JvdXBQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0N1c3RvbVJ1bGVHcm91cCcsXG4gICAgc291cmNlRmlsZTogJ3dlYi1hcHAtZmlyZXdhbGwuZC50cydcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ1JhdGVCYXNlZFJ1bGUnLFxuICAgIHR5cGVWYWx1ZTogJ3JhdGUtYmFzZWQtcnVsZScsXG4gICAgcHJvcHNUeXBlOiAnUmF0ZUJhc2VkU3RhdGVtZW50UHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdSYXRlQmFzZWRSdWxlJyxcbiAgICBzb3VyY2VGaWxlOiAnd2ViLWFwcC1maXJld2FsbC5kLnRzJ1xuICB9LFxuICAvLyBTUVMgUXVldWUgSW50ZWdyYXRpb25zXG4gIHtcbiAgICBjbGFzc05hbWU6ICdTcXNRdWV1ZUV2ZW50QnVzSW50ZWdyYXRpb24nLFxuICAgIHR5cGVWYWx1ZTogJ2V2ZW50LWJ1cycsXG4gICAgcHJvcHNUeXBlOiAnU3FzUXVldWVFdmVudEJ1c0ludGVncmF0aW9uUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdTcXNRdWV1ZUV2ZW50QnVzSW50ZWdyYXRpb24nLFxuICAgIHNvdXJjZUZpbGU6ICdzcXMtcXVldWVzLmQudHMnXG4gIH0sXG4gIC8vIE11bHRpIENvbnRhaW5lciBXb3JrbG9hZCBJbnRlZ3JhdGlvbnNcbiAge1xuICAgIGNsYXNzTmFtZTogJ011bHRpQ29udGFpbmVyV29ya2xvYWRIdHRwQXBpSW50ZWdyYXRpb24nLFxuICAgIHR5cGVWYWx1ZTogJ2h0dHAtYXBpLWdhdGV3YXknLFxuICAgIHByb3BzVHlwZTogJ0NvbnRhaW5lcldvcmtsb2FkSHR0cEFwaUludGVncmF0aW9uUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdDb250YWluZXJXb3JrbG9hZEh0dHBBcGlJbnRlZ3JhdGlvbicsXG4gICAgc291cmNlRmlsZTogJ211bHRpLWNvbnRhaW5lci13b3JrbG9hZHMuZC50cydcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ011bHRpQ29udGFpbmVyV29ya2xvYWRMb2FkQmFsYW5jZXJJbnRlZ3JhdGlvbicsXG4gICAgdHlwZVZhbHVlOiAnYXBwbGljYXRpb24tbG9hZC1iYWxhbmNlcicsXG4gICAgcHJvcHNUeXBlOiAnQ29udGFpbmVyV29ya2xvYWRMb2FkQmFsYW5jZXJJbnRlZ3JhdGlvblByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnQ29udGFpbmVyV29ya2xvYWRMb2FkQmFsYW5jZXJJbnRlZ3JhdGlvbicsXG4gICAgc291cmNlRmlsZTogJ211bHRpLWNvbnRhaW5lci13b3JrbG9hZHMuZC50cydcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ011bHRpQ29udGFpbmVyV29ya2xvYWROZXR3b3JrTG9hZEJhbGFuY2VySW50ZWdyYXRpb24nLFxuICAgIHR5cGVWYWx1ZTogJ25ldHdvcmstbG9hZC1iYWxhbmNlcicsXG4gICAgcHJvcHNUeXBlOiAnQ29udGFpbmVyV29ya2xvYWROZXR3b3JrTG9hZEJhbGFuY2VySW50ZWdyYXRpb25Qcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0NvbnRhaW5lcldvcmtsb2FkTmV0d29ya0xvYWRCYWxhbmNlckludGVncmF0aW9uJyxcbiAgICBzb3VyY2VGaWxlOiAnbXVsdGktY29udGFpbmVyLXdvcmtsb2Fkcy5kLnRzJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnTXVsdGlDb250YWluZXJXb3JrbG9hZEludGVybmFsSW50ZWdyYXRpb24nLFxuICAgIHR5cGVWYWx1ZTogJ3dvcmtsb2FkLWludGVybmFsJyxcbiAgICBwcm9wc1R5cGU6ICdDb250YWluZXJXb3JrbG9hZEludGVybmFsSW50ZWdyYXRpb25Qcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0NvbnRhaW5lcldvcmtsb2FkSW50ZXJuYWxJbnRlZ3JhdGlvbicsXG4gICAgc291cmNlRmlsZTogJ211bHRpLWNvbnRhaW5lci13b3JrbG9hZHMuZC50cydcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ011bHRpQ29udGFpbmVyV29ya2xvYWRTZXJ2aWNlQ29ubmVjdEludGVncmF0aW9uJyxcbiAgICB0eXBlVmFsdWU6ICdzZXJ2aWNlLWNvbm5lY3QnLFxuICAgIHByb3BzVHlwZTogJ0NvbnRhaW5lcldvcmtsb2FkU2VydmljZUNvbm5lY3RJbnRlZ3JhdGlvblByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnQ29udGFpbmVyV29ya2xvYWRTZXJ2aWNlQ29ubmVjdEludGVncmF0aW9uJyxcbiAgICBzb3VyY2VGaWxlOiAnbXVsdGktY29udGFpbmVyLXdvcmtsb2Fkcy5kLnRzJ1xuICB9LFxuICAvLyBTY3JpcHRzXG4gIHtcbiAgICBjbGFzc05hbWU6ICdMb2NhbFNjcmlwdCcsXG4gICAgdHlwZVZhbHVlOiAnbG9jYWwtc2NyaXB0JyxcbiAgICBwcm9wc1R5cGU6ICdMb2NhbFNjcmlwdFByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnTG9jYWxTY3JpcHQnLFxuICAgIHNvdXJjZUZpbGU6ICdfX2hlbHBlcnMuZC50cydcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ0Jhc3Rpb25TY3JpcHQnLFxuICAgIHR5cGVWYWx1ZTogJ2Jhc3Rpb24tc2NyaXB0JyxcbiAgICBwcm9wc1R5cGU6ICdCYXN0aW9uU2NyaXB0UHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdCYXN0aW9uU2NyaXB0JyxcbiAgICBzb3VyY2VGaWxlOiAnX19oZWxwZXJzLmQudHMnXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdMb2NhbFNjcmlwdFdpdGhCYXN0aW9uVHVubmVsaW5nJyxcbiAgICB0eXBlVmFsdWU6ICdsb2NhbC1zY3JpcHQtd2l0aC1iYXN0aW9uLXR1bm5lbGluZycsXG4gICAgcHJvcHNUeXBlOiAnTG9jYWxTY3JpcHRXaXRoQmFzdGlvblR1bm5lbGluZ1Byb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnTG9jYWxTY3JpcHRXaXRoQmFzdGlvblR1bm5lbGluZycsXG4gICAgc291cmNlRmlsZTogJ19faGVscGVycy5kLnRzJ1xuICB9LFxuICAvLyBMb2cgRm9yd2FyZGluZ1xuICB7XG4gICAgY2xhc3NOYW1lOiAnSHR0cEVuZHBvaW50TG9nRm9yd2FyZGluZycsXG4gICAgdHlwZVZhbHVlOiAnaHR0cC1lbmRwb2ludCcsXG4gICAgcHJvcHNUeXBlOiAnSHR0cEVuZHBvaW50TG9nRm9yd2FyZGluZ1Byb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnSHR0cEVuZHBvaW50TG9nRm9yd2FyZGluZycsXG4gICAgc291cmNlRmlsZTogJ19faGVscGVycy5kLnRzJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnSGlnaGxpZ2h0TG9nRm9yd2FyZGluZycsXG4gICAgdHlwZVZhbHVlOiAnaGlnaGxpZ2h0JyxcbiAgICBwcm9wc1R5cGU6ICdIaWdobGlnaHRMb2dGb3J3YXJkaW5nUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdIaWdobGlnaHRMb2dGb3J3YXJkaW5nJyxcbiAgICBzb3VyY2VGaWxlOiAnX19oZWxwZXJzLmQudHMnXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdEYXRhZG9nTG9nRm9yd2FyZGluZycsXG4gICAgdHlwZVZhbHVlOiAnZGF0YWRvZycsXG4gICAgcHJvcHNUeXBlOiAnRGF0YWRvZ0xvZ0ZvcndhcmRpbmdQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0RhdGFkb2dMb2dGb3J3YXJkaW5nJyxcbiAgICBzb3VyY2VGaWxlOiAnX19oZWxwZXJzLmQudHMnXG4gIH0sXG4gIC8vIEJ1Y2tldCBMaWZlY3ljbGUgUnVsZXNcbiAge1xuICAgIGNsYXNzTmFtZTogJ0V4cGlyYXRpb25MaWZlY3ljbGVSdWxlJyxcbiAgICB0eXBlVmFsdWU6ICdleHBpcmF0aW9uJyxcbiAgICBwcm9wc1R5cGU6ICdFeHBpcmF0aW9uUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdFeHBpcmF0aW9uTGlmZWN5Y2xlUnVsZScsXG4gICAgc291cmNlRmlsZTogJ2J1Y2tldHMuZC50cydcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ05vbkN1cnJlbnRWZXJzaW9uRXhwaXJhdGlvbkxpZmVjeWNsZVJ1bGUnLFxuICAgIHR5cGVWYWx1ZTogJ25vbi1jdXJyZW50LXZlcnNpb24tZXhwaXJhdGlvbicsXG4gICAgcHJvcHNUeXBlOiAnTm9uQ3VycmVudFZlcnNpb25FeHBpcmF0aW9uUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdOb25DdXJyZW50VmVyc2lvbkV4cGlyYXRpb25MaWZlY3ljbGVSdWxlJyxcbiAgICBzb3VyY2VGaWxlOiAnYnVja2V0cy5kLnRzJ1xuICB9LFxuICAvLyBFRlMgTW91bnRzXG4gIHtcbiAgICBjbGFzc05hbWU6ICdDb250YWluZXJFZnNNb3VudCcsXG4gICAgdHlwZVZhbHVlOiAnZWZzJyxcbiAgICBwcm9wc1R5cGU6ICdDb250YWluZXJFZnNNb3VudFByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnQ29udGFpbmVyRWZzTW91bnQnLFxuICAgIHNvdXJjZUZpbGU6ICdfX2hlbHBlcnMuZC50cydcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ0xhbWJkYUVmc01vdW50JyxcbiAgICB0eXBlVmFsdWU6ICdlZnMnLFxuICAgIHByb3BzVHlwZTogJ0xhbWJkYUVmc01vdW50UHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdMYW1iZGFFZnNNb3VudCcsXG4gICAgc291cmNlRmlsZTogJ2Z1bmN0aW9ucy5kLnRzJ1xuICB9LFxuICAvLyBBdXRob3JpemVyc1xuICB7XG4gICAgY2xhc3NOYW1lOiAnQ29nbml0b0F1dGhvcml6ZXInLFxuICAgIHR5cGVWYWx1ZTogJ2NvZ25pdG8nLFxuICAgIHByb3BzVHlwZTogJ0NvZ25pdG9BdXRob3JpemVyUHJvcGVydGllcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0NvZ25pdG9BdXRob3JpemVyJyxcbiAgICBzb3VyY2VGaWxlOiAndXNlci1wb29scy5kLnRzJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnTGFtYmRhQXV0aG9yaXplcicsXG4gICAgdHlwZVZhbHVlOiAnbGFtYmRhJyxcbiAgICBwcm9wc1R5cGU6ICdMYW1iZGFBdXRob3JpemVyUHJvcGVydGllcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0xhbWJkYUF1dGhvcml6ZXInLFxuICAgIHNvdXJjZUZpbGU6ICd1c2VyLXBvb2xzLmQudHMnXG4gIH0sXG4gIC8vIEN1c3RvbSBSZXNvdXJjZXNcbiAge1xuICAgIGNsYXNzTmFtZTogJ0N1c3RvbVJlc291cmNlRGVmaW5pdGlvbicsXG4gICAgdHlwZVZhbHVlOiAnY3VzdG9tLXJlc291cmNlLWRlZmluaXRpb24nLFxuICAgIHByb3BzVHlwZTogJ0N1c3RvbVJlc291cmNlRGVmaW5pdGlvblByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnQ3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uJyxcbiAgICBzb3VyY2VGaWxlOiAnY3VzdG9tLXJlc291cmNlcy5kLnRzJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnQ3VzdG9tUmVzb3VyY2VJbnN0YW5jZScsXG4gICAgdHlwZVZhbHVlOiAnY3VzdG9tLXJlc291cmNlLWluc3RhbmNlJyxcbiAgICBwcm9wc1R5cGU6ICdDdXN0b21SZXNvdXJjZUluc3RhbmNlUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdDdXN0b21SZXNvdXJjZUluc3RhbmNlJyxcbiAgICBzb3VyY2VGaWxlOiAnY3VzdG9tLXJlc291cmNlcy5kLnRzJ1xuICB9LFxuICAvLyBEZXBsb3ltZW50IFNjcmlwdHNcbiAge1xuICAgIGNsYXNzTmFtZTogJ0RlcGxveW1lbnRTY3JpcHQnLFxuICAgIHR5cGVWYWx1ZTogJ2RlcGxveW1lbnQtc2NyaXB0JyxcbiAgICBwcm9wc1R5cGU6ICdEZXBsb3ltZW50U2NyaXB0UHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdEZXBsb3ltZW50U2NyaXB0JyxcbiAgICBzb3VyY2VGaWxlOiAnZGVwbG95bWVudC1zY3JpcHQuZC50cydcbiAgfSxcbiAgLy8gRWRnZSBMYW1iZGEgRnVuY3Rpb25zXG4gIHtcbiAgICBjbGFzc05hbWU6ICdFZGdlTGFtYmRhRnVuY3Rpb24nLFxuICAgIHR5cGVWYWx1ZTogJ2VkZ2UtbGFtYmRhLWZ1bmN0aW9uJyxcbiAgICBwcm9wc1R5cGU6ICdFZGdlTGFtYmRhRnVuY3Rpb25Qcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0VkZ2VMYW1iZGFGdW5jdGlvbicsXG4gICAgc291cmNlRmlsZTogJ2VkZ2UtbGFtYmRhLWZ1bmN0aW9ucy5kLnRzJ1xuICB9XG5dO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PSBIRUxQRVIgRlVOQ1RJT05TID09PT09PT09PT09PT09PT09PT09XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRSZXNvdXJjZUJ5Q2xhc3NOYW1lKGNsYXNzTmFtZTogc3RyaW5nKTogUmVzb3VyY2VEZWZpbml0aW9uIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIFJFU09VUkNFU19DT05WRVJUSUJMRV9UT19DTEFTU0VTLmZpbmQoKHIpID0+IHIuY2xhc3NOYW1lID09PSBjbGFzc05hbWUpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVzb3VyY2VCeVR5cGUocmVzb3VyY2VUeXBlOiBzdHJpbmcpOiBSZXNvdXJjZURlZmluaXRpb24gfCB1bmRlZmluZWQge1xuICByZXR1cm4gUkVTT1VSQ0VTX0NPTlZFUlRJQkxFX1RPX0NMQVNTRVMuZmluZCgocikgPT4gci5yZXNvdXJjZVR5cGUgPT09IHJlc291cmNlVHlwZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRSZXNvdXJjZXNXaXRoQXVnbWVudGVkUHJvcHMoKTogUmVzb3VyY2VEZWZpbml0aW9uW10ge1xuICByZXR1cm4gUkVTT1VSQ0VTX0NPTlZFUlRJQkxFX1RPX0NMQVNTRVMuZmlsdGVyKChyKSA9PiByLmhhc0F1Z21lbnRlZFByb3BzKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFJlc291cmNlc1dpdGhPdmVycmlkZXMoKTogUmVzb3VyY2VEZWZpbml0aW9uW10ge1xuICByZXR1cm4gUkVTT1VSQ0VTX0NPTlZFUlRJQkxFX1RPX0NMQVNTRVMuZmlsdGVyKChyKSA9PiByLnN1cHBvcnRzT3ZlcnJpZGVzICE9PSBmYWxzZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRUeXBlUHJvcGVydGllc0J5Q2xhc3NOYW1lKGNsYXNzTmFtZTogc3RyaW5nKTogVHlwZVByb3BlcnRpZXNEZWZpbml0aW9uIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIE1JU0NfVFlQRVNfQ09OVkVSVElCTEVfVE9fQ0xBU1NFUy5maW5kKCh0KSA9PiB0LmNsYXNzTmFtZSA9PT0gY2xhc3NOYW1lKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFR5cGVQcm9wZXJ0aWVzQnlUeXBlVmFsdWUodHlwZVZhbHVlOiBzdHJpbmcpOiBUeXBlUHJvcGVydGllc0RlZmluaXRpb24gfCB1bmRlZmluZWQge1xuICByZXR1cm4gTUlTQ19UWVBFU19DT05WRVJUSUJMRV9UT19DTEFTU0VTLmZpbmQoKHQpID0+IHQudHlwZVZhbHVlID09PSB0eXBlVmFsdWUpO1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PSBERVJJVkVEIE1BUFBJTkdTID09PT09PT09PT09PT09PT09PT09XG5cbi8qKiBSZXNvdXJjZSB0eXBlIFx1MjE5MiBjbGFzcyBuYW1lIG1hcHBpbmcgKi9cbmV4cG9ydCBjb25zdCBSRVNPVVJDRV9UWVBFX1RPX0NMQVNTOiBSZWNvcmQ8c3RyaW5nLCBSZXNvdXJjZUNsYXNzTmFtZT4gPSBPYmplY3QuZnJvbUVudHJpZXMoXG4gIFJFU09VUkNFU19DT05WRVJUSUJMRV9UT19DTEFTU0VTLm1hcCgocikgPT4gW3IucmVzb3VyY2VUeXBlLCByLmNsYXNzTmFtZV0pXG4pO1xuXG4vKiogU2NyaXB0IHR5cGUgXHUyMTkyIGNsYXNzIG5hbWUgbWFwcGluZyAqL1xuZXhwb3J0IGNvbnN0IFNDUklQVF9UWVBFX1RPX0NMQVNTOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0gT2JqZWN0LmZyb21FbnRyaWVzKFxuICBNSVNDX1RZUEVTX0NPTlZFUlRJQkxFX1RPX0NMQVNTRVMuZmlsdGVyKFxuICAgICh0KSA9PiB0LnNvdXJjZUZpbGUgPT09ICdfX2hlbHBlcnMuZC50cycgJiYgdC5wcm9wc1R5cGUuaW5jbHVkZXMoJ1NjcmlwdCcpXG4gICkubWFwKCh0KSA9PiBbdC50eXBlVmFsdWUsIHQuY2xhc3NOYW1lXSlcbik7XG5cbi8qKiBQYWNrYWdpbmcgdHlwZSBcdTIxOTIgY2xhc3MgbmFtZSBtYXBwaW5nICovXG5leHBvcnQgY29uc3QgUEFDS0FHSU5HX1RZUEVfVE9fQ0xBU1M6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSBPYmplY3QuZnJvbUVudHJpZXMoXG4gIE1JU0NfVFlQRVNfQ09OVkVSVElCTEVfVE9fQ0xBU1NFUy5maWx0ZXIoKHQpID0+IHQuc291cmNlRmlsZSA9PT0gJ2RlcGxveW1lbnQtYXJ0aWZhY3RzLmQudHMnKS5tYXAoKHQpID0+IFtcbiAgICB0LnR5cGVWYWx1ZSxcbiAgICB0LmNsYXNzTmFtZVxuICBdKVxuKTtcblxuLyoqIEVuZ2luZSB0eXBlIFx1MjE5MiBjbGFzcyBuYW1lIG1hcHBpbmcgKi9cbmV4cG9ydCBjb25zdCBFTkdJTkVfVFlQRV9UT19DTEFTUzogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IE9iamVjdC5mcm9tRW50cmllcyhcbiAgTUlTQ19UWVBFU19DT05WRVJUSUJMRV9UT19DTEFTU0VTLmZpbHRlcigodCkgPT4gdC5wcm9wc1R5cGUuaW5jbHVkZXMoJ0VuZ2luZScpKS5tYXAoKHQpID0+IFt0LnR5cGVWYWx1ZSwgdC5jbGFzc05hbWVdKVxuKTtcbiIsICIvLyBSZS1leHBvcnQgZnJvbSBjbGFzcy1jb25maWcgKHNpbmdsZSBzb3VyY2Ugb2YgdHJ1dGgpXG5leHBvcnQge1xuICBnZXRSZXNvdXJjZUJ5Q2xhc3NOYW1lLFxuICBnZXRSZXNvdXJjZUJ5VHlwZSxcbiAgZ2V0UmVzb3VyY2VzV2l0aEF1Z21lbnRlZFByb3BzLFxuICBnZXRSZXNvdXJjZXNXaXRoT3ZlcnJpZGVzLFxuICBnZXRUeXBlUHJvcGVydGllc0J5Q2xhc3NOYW1lLFxuICBnZXRUeXBlUHJvcGVydGllc0J5VHlwZVZhbHVlLFxuICBNSVNDX1RZUEVTX0NPTlZFUlRJQkxFX1RPX0NMQVNTRVMsXG4gIHR5cGUgUmVzb3VyY2VEZWZpbml0aW9uLFxuICBSRVNPVVJDRVNfQ09OVkVSVElCTEVfVE9fQ0xBU1NFUyxcbiAgdHlwZSBUeXBlUHJvcGVydGllc0RlZmluaXRpb25cbn0gZnJvbSAnLi9jbGFzcy1jb25maWcnO1xuXG4vLyBUaGVzZSBjYW4gYmUgcmVmZXJlbmNlZCB1c2luZyAkUmVzb3VyY2VQYXJhbSBkaXJlY3RpdmVcbmV4cG9ydCBjb25zdCBSRUZFUkVOQ0VBQkxFX1BBUkFNUzogUmVjb3JkPHN0cmluZywgQXJyYXk8eyBuYW1lOiBzdHJpbmc7IGRlc2NyaXB0aW9uOiBzdHJpbmcgfT4+ID0ge1xuICAncmVsYXRpb25hbC1kYXRhYmFzZSc6IFtcbiAgICB7IG5hbWU6ICdjb25uZWN0aW9uU3RyaW5nJywgZGVzY3JpcHRpb246ICdDb25uZWN0aW9uIHN0cmluZyBmb3IgdGhlIGRhdGFiYXNlJyB9LFxuICAgIHsgbmFtZTogJ2pkYmNDb25uZWN0aW9uU3RyaW5nJywgZGVzY3JpcHRpb246ICdKREJDIGNvbm5lY3Rpb24gc3RyaW5nJyB9LFxuICAgIHsgbmFtZTogJ2hvc3QnLCBkZXNjcmlwdGlvbjogJ0RhdGFiYXNlIGhvc3QnIH0sXG4gICAgeyBuYW1lOiAncG9ydCcsIGRlc2NyaXB0aW9uOiAnRGF0YWJhc2UgcG9ydCcgfSxcbiAgICB7IG5hbWU6ICdkYk5hbWUnLCBkZXNjcmlwdGlvbjogJ0RhdGFiYXNlIG5hbWUnIH0sXG4gICAgeyBuYW1lOiAncmVhZGVySG9zdCcsIGRlc2NyaXB0aW9uOiAnUmVhZGVyIGVuZHBvaW50IGhvc3QnIH0sXG4gICAgeyBuYW1lOiAncmVhZGVyQ29ubmVjdGlvblN0cmluZycsIGRlc2NyaXB0aW9uOiAnUmVhZGVyIGNvbm5lY3Rpb24gc3RyaW5nJyB9LFxuICAgIHsgbmFtZTogJ3JlYWRlckpkYmNDb25uZWN0aW9uU3RyaW5nJywgZGVzY3JpcHRpb246ICdSZWFkZXIgSkRCQyBjb25uZWN0aW9uIHN0cmluZycgfVxuICBdLFxuICAnd2ViLXNlcnZpY2UnOiBbXG4gICAgeyBuYW1lOiAnZG9tYWluJywgZGVzY3JpcHRpb246ICdXZWIgc2VydmljZSBkb21haW4nIH0sXG4gICAgeyBuYW1lOiAndXJsJywgZGVzY3JpcHRpb246ICdXZWIgc2VydmljZSBVUkwnIH0sXG4gICAgeyBuYW1lOiAnY3VzdG9tRG9tYWlucycsIGRlc2NyaXB0aW9uOiAnQ3VzdG9tIGRvbWFpbnMnIH0sXG4gICAgeyBuYW1lOiAnY3VzdG9tRG9tYWluVXJscycsIGRlc2NyaXB0aW9uOiAnQ3VzdG9tIGRvbWFpbiBVUkxzJyB9XG4gIF0sXG4gICdwcml2YXRlLXNlcnZpY2UnOiBbeyBuYW1lOiAnYWRkcmVzcycsIGRlc2NyaXB0aW9uOiAnUHJpdmF0ZSBzZXJ2aWNlIGFkZHJlc3MnIH1dLFxuICBidWNrZXQ6IFtcbiAgICB7IG5hbWU6ICduYW1lJywgZGVzY3JpcHRpb246ICdCdWNrZXQgbmFtZScgfSxcbiAgICB7IG5hbWU6ICdhcm4nLCBkZXNjcmlwdGlvbjogJ0J1Y2tldCBBUk4nIH1cbiAgXSxcbiAgJ2R5bmFtby1kYi10YWJsZSc6IFtcbiAgICB7IG5hbWU6ICduYW1lJywgZGVzY3JpcHRpb246ICdUYWJsZSBuYW1lJyB9LFxuICAgIHsgbmFtZTogJ2FybicsIGRlc2NyaXB0aW9uOiAnVGFibGUgQVJOJyB9LFxuICAgIHsgbmFtZTogJ3N0cmVhbUFybicsIGRlc2NyaXB0aW9uOiAnU3RyZWFtIEFSTicgfVxuICBdLFxuICBmdW5jdGlvbjogW1xuICAgIHsgbmFtZTogJ2FybicsIGRlc2NyaXB0aW9uOiAnRnVuY3Rpb24gQVJOJyB9LFxuICAgIHsgbmFtZTogJ2xvZ0dyb3VwQXJuJywgZGVzY3JpcHRpb246ICdMb2cgZ3JvdXAgQVJOJyB9XG4gIF0sXG4gICdiYXRjaC1qb2InOiBbXG4gICAgeyBuYW1lOiAnam9iRGVmaW5pdGlvbkFybicsIGRlc2NyaXB0aW9uOiAnSm9iIGRlZmluaXRpb24gQVJOJyB9LFxuICAgIHsgbmFtZTogJ3N0YXRlTWFjaGluZUFybicsIGRlc2NyaXB0aW9uOiAnU3RhdGUgbWFjaGluZSBBUk4nIH0sXG4gICAgeyBuYW1lOiAnbG9nR3JvdXBBcm4nLCBkZXNjcmlwdGlvbjogJ0xvZyBncm91cCBBUk4nIH1cbiAgXSxcbiAgJ2V2ZW50LWJ1cyc6IFtcbiAgICB7IG5hbWU6ICdhcm4nLCBkZXNjcmlwdGlvbjogJ0V2ZW50IGJ1cyBBUk4nIH0sXG4gICAgeyBuYW1lOiAnYXJjaGl2ZUFybicsIGRlc2NyaXB0aW9uOiAnQXJjaGl2ZSBBUk4nIH1cbiAgXSxcbiAgJ2h0dHAtYXBpLWdhdGV3YXknOiBbXG4gICAgeyBuYW1lOiAnZG9tYWluJywgZGVzY3JpcHRpb246ICdBUEkgR2F0ZXdheSBkb21haW4nIH0sXG4gICAgeyBuYW1lOiAndXJsJywgZGVzY3JpcHRpb246ICdBUEkgR2F0ZXdheSBVUkwnIH0sXG4gICAgeyBuYW1lOiAnY3VzdG9tRG9tYWlucycsIGRlc2NyaXB0aW9uOiAnQ3VzdG9tIGRvbWFpbnMnIH0sXG4gICAgeyBuYW1lOiAnY3VzdG9tRG9tYWluVXJscycsIGRlc2NyaXB0aW9uOiAnQ3VzdG9tIGRvbWFpbiBVUkxzJyB9LFxuICAgIHsgbmFtZTogJ2N1c3RvbURvbWFpblVybCcsIGRlc2NyaXB0aW9uOiAnRmlyc3QgY3VzdG9tIGRvbWFpbiBVUkwnIH1cbiAgXSxcbiAgJ21vbmdvLWRiLWF0bGFzLWNsdXN0ZXInOiBbeyBuYW1lOiAnY29ubmVjdGlvblN0cmluZycsIGRlc2NyaXB0aW9uOiAnTW9uZ29EQiBjb25uZWN0aW9uIHN0cmluZycgfV0sXG4gICdyZWRpcy1jbHVzdGVyJzogW1xuICAgIHsgbmFtZTogJ2hvc3QnLCBkZXNjcmlwdGlvbjogJ1JlZGlzIGhvc3QnIH0sXG4gICAgeyBuYW1lOiAncmVhZGVySG9zdCcsIGRlc2NyaXB0aW9uOiAnUmVkaXMgcmVhZGVyIGhvc3QnIH0sXG4gICAgeyBuYW1lOiAncG9ydCcsIGRlc2NyaXB0aW9uOiAnUmVkaXMgcG9ydCcgfSxcbiAgICB7IG5hbWU6ICdzaGFyZGluZycsIGRlc2NyaXB0aW9uOiAnU2hhcmRpbmcgc3RhdHVzJyB9XG4gIF0sXG4gICdzdGF0ZS1tYWNoaW5lJzogW1xuICAgIHsgbmFtZTogJ2FybicsIGRlc2NyaXB0aW9uOiAnU3RhdGUgbWFjaGluZSBBUk4nIH0sXG4gICAgeyBuYW1lOiAnbmFtZScsIGRlc2NyaXB0aW9uOiAnU3RhdGUgbWFjaGluZSBuYW1lJyB9XG4gIF0sXG4gICd1c2VyLWF1dGgtcG9vbCc6IFtcbiAgICB7IG5hbWU6ICdpZCcsIGRlc2NyaXB0aW9uOiAnVXNlciBwb29sIElEJyB9LFxuICAgIHsgbmFtZTogJ2NsaWVudElkJywgZGVzY3JpcHRpb246ICdDbGllbnQgSUQnIH0sXG4gICAgeyBuYW1lOiAnZG9tYWluJywgZGVzY3JpcHRpb246ICdVc2VyIHBvb2wgZG9tYWluJyB9XG4gIF0sXG4gICd1cHN0YXNoLXJlZGlzJzogW1xuICAgIHsgbmFtZTogJ2hvc3QnLCBkZXNjcmlwdGlvbjogJ1Vwc3Rhc2ggUmVkaXMgaG9zdCcgfSxcbiAgICB7IG5hbWU6ICdwb3J0JywgZGVzY3JpcHRpb246ICdVcHN0YXNoIFJlZGlzIHBvcnQnIH0sXG4gICAgeyBuYW1lOiAncGFzc3dvcmQnLCBkZXNjcmlwdGlvbjogJ1Bhc3N3b3JkJyB9LFxuICAgIHsgbmFtZTogJ3Jlc3RUb2tlbicsIGRlc2NyaXB0aW9uOiAnUkVTVCB0b2tlbicgfSxcbiAgICB7IG5hbWU6ICdyZWFkT25seVJlc3RUb2tlbicsIGRlc2NyaXB0aW9uOiAnUmVhZC1vbmx5IFJFU1QgdG9rZW4nIH0sXG4gICAgeyBuYW1lOiAncmVzdFVybCcsIGRlc2NyaXB0aW9uOiAnUkVTVCBVUkwnIH0sXG4gICAgeyBuYW1lOiAncmVkaXNVcmwnLCBkZXNjcmlwdGlvbjogJ1JlZGlzIFVSTCcgfVxuICBdLFxuICAnYXBwbGljYXRpb24tbG9hZC1iYWxhbmNlcic6IFtcbiAgICB7IG5hbWU6ICdkb21haW4nLCBkZXNjcmlwdGlvbjogJ0xvYWQgYmFsYW5jZXIgZG9tYWluJyB9LFxuICAgIHsgbmFtZTogJ2N1c3RvbURvbWFpbnMnLCBkZXNjcmlwdGlvbjogJ0N1c3RvbSBkb21haW5zJyB9XG4gIF0sXG4gICduZXR3b3JrLWxvYWQtYmFsYW5jZXInOiBbXG4gICAgeyBuYW1lOiAnZG9tYWluJywgZGVzY3JpcHRpb246ICdMb2FkIGJhbGFuY2VyIGRvbWFpbicgfSxcbiAgICB7IG5hbWU6ICdjdXN0b21Eb21haW5zJywgZGVzY3JpcHRpb246ICdDdXN0b20gZG9tYWlucycgfVxuICBdLFxuICAnaG9zdGluZy1idWNrZXQnOiBbXG4gICAgeyBuYW1lOiAnbmFtZScsIGRlc2NyaXB0aW9uOiAnQnVja2V0IG5hbWUnIH0sXG4gICAgeyBuYW1lOiAnYXJuJywgZGVzY3JpcHRpb246ICdCdWNrZXQgQVJOJyB9XG4gIF0sXG4gICd3ZWItYXBwLWZpcmV3YWxsJzogW1xuICAgIHsgbmFtZTogJ2FybicsIGRlc2NyaXB0aW9uOiAnRmlyZXdhbGwgQVJOJyB9LFxuICAgIHsgbmFtZTogJ3Njb3BlJywgZGVzY3JpcHRpb246ICdGaXJld2FsbCBzY29wZScgfVxuICBdLFxuICAnb3Blbi1zZWFyY2gtZG9tYWluJzogW1xuICAgIHsgbmFtZTogJ2RvbWFpbkVuZHBvaW50JywgZGVzY3JpcHRpb246ICdPcGVuU2VhcmNoIGRvbWFpbiBlbmRwb2ludCcgfSxcbiAgICB7IG5hbWU6ICdhcm4nLCBkZXNjcmlwdGlvbjogJ0RvbWFpbiBBUk4nIH1cbiAgXSxcbiAgJ2Vmcy1maWxlc3lzdGVtJzogW1xuICAgIHsgbmFtZTogJ2FybicsIGRlc2NyaXB0aW9uOiAnRUZTIEFSTicgfSxcbiAgICB7IG5hbWU6ICdpZCcsIGRlc2NyaXB0aW9uOiAnRUZTIElEJyB9XG4gIF0sXG4gICduZXh0anMtd2ViJzogW3sgbmFtZTogJ3VybCcsIGRlc2NyaXB0aW9uOiAnV2Vic2l0ZSBVUkwnIH1dLFxuICAnbXVsdGktY29udGFpbmVyLXdvcmtsb2FkJzogW3sgbmFtZTogJ2xvZ0dyb3VwQXJuJywgZGVzY3JpcHRpb246ICdMb2cgZ3JvdXAgQVJOJyB9XVxufTtcbiIsICJpbXBvcnQgdHlwZSB7IFJlc291cmNlQ2xhc3NOYW1lIH0gZnJvbSAnLi9jbGFzcy1jb25maWcnO1xuaW1wb3J0IHsgUkVTT1VSQ0VTX0NPTlZFUlRJQkxFX1RPX0NMQVNTRVMgfSBmcm9tICcuL2NsYXNzLWNvbmZpZyc7XG5pbXBvcnQgeyBCYXNlUmVzb3VyY2UgfSBmcm9tICcuL2NvbmZpZyc7XG5pbXBvcnQgeyBSRUZFUkVOQ0VBQkxFX1BBUkFNUyB9IGZyb20gJy4vcmVzb3VyY2UtbWV0YWRhdGEnO1xuXG4vLyBQcml2YXRlIHN5bWJvbCBmb3IgYWNjZXNzaW5nIHRoZSBpbnRlcm5hbCBwYXJhbSByZWZlcmVuY2UgbWV0aG9kXG5jb25zdCBnZXRQYXJhbVJlZmVyZW5jZVN5bWJvbCA9IFN5bWJvbC5mb3IoJ3N0YWNrdGFwZTpnZXRQYXJhbVJlZmVyZW5jZScpO1xuXG4vKipcbiAqIEZhY3RvcnkgZnVuY3Rpb24gdG8gY3JlYXRlIGEgcmVzb3VyY2UgY2xhc3Mgd2l0aCByZWZlcmVuY2VhYmxlIHBhcmFtZXRlcnMuXG4gKiBTdXBwb3J0cyB0d28gY2FsbGluZyBjb252ZW50aW9uczpcbiAqIC0gbmV3IFJlc291cmNlKHByb3BlcnRpZXMpIC0gbmFtZSBkZXJpdmVkIGZyb20gb2JqZWN0IGtleSBpbiByZXNvdXJjZXNcbiAqIC0gbmV3IFJlc291cmNlKG5hbWUsIHByb3BlcnRpZXMpIC0gZXhwbGljaXQgbmFtZSAoYmFja3dhcmRzIGNvbXBhdGlibGUpXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZVJlc291cmNlQ2xhc3MoY2xhc3NOYW1lOiBSZXNvdXJjZUNsYXNzTmFtZSwgcmVzb3VyY2VUeXBlOiBzdHJpbmcpOiBhbnkge1xuICAvLyBDcmVhdGUgdGhlIGNsYXNzIGR5bmFtaWNhbGx5XG4gIGNvbnN0IFJlc291cmNlQ2xhc3MgPSBjbGFzcyBleHRlbmRzIEJhc2VSZXNvdXJjZSB7XG4gICAgY29uc3RydWN0b3IobmFtZU9yUHJvcGVydGllczogc3RyaW5nIHwgYW55LCBwcm9wZXJ0aWVzPzogYW55KSB7XG4gICAgICBpZiAodHlwZW9mIG5hbWVPclByb3BlcnRpZXMgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIC8vIE9sZCBzdHlsZTogKG5hbWUsIHByb3BlcnRpZXMpIC0gZXhwbGljaXQgbmFtZVxuICAgICAgICBzdXBlcihuYW1lT3JQcm9wZXJ0aWVzLCByZXNvdXJjZVR5cGUsIHByb3BlcnRpZXMpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gTmV3IHN0eWxlOiAocHJvcGVydGllcykgLSBuYW1lIHdpbGwgYmUgc2V0IGZyb20gb2JqZWN0IGtleVxuICAgICAgICBzdXBlcih1bmRlZmluZWQsIHJlc291cmNlVHlwZSwgbmFtZU9yUHJvcGVydGllcyk7XG4gICAgICB9XG4gICAgfVxuICB9O1xuXG4gIC8vIFNldCB0aGUgY2xhc3MgbmFtZSBmb3IgYmV0dGVyIGRlYnVnZ2luZ1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoUmVzb3VyY2VDbGFzcywgJ25hbWUnLCB7IHZhbHVlOiBjbGFzc05hbWUgfSk7XG5cbiAgLy8gQWRkIHJlZmVyZW5jZWFibGUgcGFyYW1ldGVyIGdldHRlcnNcbiAgY29uc3QgcmVmZXJlbmNlYWJsZVBhcmFtcyA9IFJFRkVSRU5DRUFCTEVfUEFSQU1TW3Jlc291cmNlVHlwZV0gfHwgW107XG4gIGZvciAoY29uc3QgcGFyYW0gb2YgcmVmZXJlbmNlYWJsZVBhcmFtcykge1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShSZXNvdXJjZUNsYXNzLnByb3RvdHlwZSwgcGFyYW0ubmFtZSwge1xuICAgICAgZ2V0KHRoaXM6IEJhc2VSZXNvdXJjZSkge1xuICAgICAgICByZXR1cm4gKHRoaXMgYXMgYW55KVtnZXRQYXJhbVJlZmVyZW5jZVN5bWJvbF0ocGFyYW0ubmFtZSk7XG4gICAgICB9LFxuICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiBSZXNvdXJjZUNsYXNzO1xufVxuXG4vLyBDcmVhdGUgYWxsIHJlc291cmNlIGNsYXNzZXMgZnJvbSBjb25maWdcbmNvbnN0IFJFU09VUkNFX0NMQVNTRVM6IFJlY29yZDxzdHJpbmcsIFJldHVyblR5cGU8dHlwZW9mIGNyZWF0ZVJlc291cmNlQ2xhc3M+PiA9IHt9O1xuZm9yIChjb25zdCBkZWYgb2YgUkVTT1VSQ0VTX0NPTlZFUlRJQkxFX1RPX0NMQVNTRVMpIHtcbiAgLy8gVXNlICdMYW1iZGFGdW5jdGlvbicgYXMgdGhlIGV4cG9ydGVkIG5hbWUgZm9yICdGdW5jdGlvbicgdG8gYXZvaWQgSlMgcmVzZXJ2ZWQgd29yZCBpc3N1ZXNcbiAgUkVTT1VSQ0VfQ0xBU1NFU1tkZWYuY2xhc3NOYW1lIGFzIGFueV0gPSBjcmVhdGVSZXNvdXJjZUNsYXNzKGRlZi5jbGFzc05hbWUsIGRlZi5yZXNvdXJjZVR5cGUpO1xufVxuXG4vLyBFeHBvcnQgYWxsIHJlc291cmNlIGNsYXNzZXMgZm9yIG5hbWVkIGltcG9ydHNcbmV4cG9ydCBjb25zdCB7XG4gIFJlbGF0aW9uYWxEYXRhYmFzZSxcbiAgV2ViU2VydmljZSxcbiAgUHJpdmF0ZVNlcnZpY2UsXG4gIFdvcmtlclNlcnZpY2UsXG4gIE11bHRpQ29udGFpbmVyV29ya2xvYWQsXG4gIExhbWJkYUZ1bmN0aW9uLFxuICBCYXRjaEpvYixcbiAgQnVja2V0LFxuICBIb3N0aW5nQnVja2V0LFxuICBEeW5hbW9EYlRhYmxlLFxuICBFdmVudEJ1cyxcbiAgSHR0cEFwaUdhdGV3YXksXG4gIEFwcGxpY2F0aW9uTG9hZEJhbGFuY2VyLFxuICBOZXR3b3JrTG9hZEJhbGFuY2VyLFxuICBSZWRpc0NsdXN0ZXIsXG4gIE1vbmdvRGJBdGxhc0NsdXN0ZXIsXG4gIFN0YXRlTWFjaGluZSxcbiAgVXNlckF1dGhQb29sLFxuICBVcHN0YXNoUmVkaXMsXG4gIFNxc1F1ZXVlLFxuICBTbnNUb3BpYyxcbiAgV2ViQXBwRmlyZXdhbGwsXG4gIE9wZW5TZWFyY2hEb21haW4sXG4gIEVmc0ZpbGVzeXN0ZW0sXG4gIE5leHRqc1dlYixcbiAgQmFzdGlvblxufSA9IFJFU09VUkNFX0NMQVNTRVM7XG4iLCAiaW1wb3J0IHsgTUlTQ19UWVBFU19DT05WRVJUSUJMRV9UT19DTEFTU0VTIH0gZnJvbSAnLi9jbGFzcy1jb25maWcnO1xuaW1wb3J0IHsgQmFzZVR5cGVQcm9wZXJ0aWVzIH0gZnJvbSAnLi9jb25maWcnO1xuXG5mdW5jdGlvbiBjcmVhdGVUeXBlUHJvcGVydGllc0NsYXNzKGNsYXNzTmFtZTogc3RyaW5nLCB0eXBlVmFsdWU6IHN0cmluZyk6IGFueSB7XG4gIGNvbnN0IFR5cGVQcm9wZXJ0aWVzQ2xhc3MgPSBjbGFzcyBleHRlbmRzIEJhc2VUeXBlUHJvcGVydGllcyB7XG4gICAgY29uc3RydWN0b3IocHJvcGVydGllczogYW55KSB7XG4gICAgICBzdXBlcih0eXBlVmFsdWUsIHByb3BlcnRpZXMpO1xuICAgIH1cbiAgfTtcblxuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoVHlwZVByb3BlcnRpZXNDbGFzcywgJ25hbWUnLCB7IHZhbHVlOiBjbGFzc05hbWUgfSk7XG4gIHJldHVybiBUeXBlUHJvcGVydGllc0NsYXNzO1xufVxuXG4vLyBDcmVhdGUgYWxsIHR5cGUtcHJvcGVydGllcyBjbGFzc2VzIGZyb20gY29uZmlnXG5jb25zdCBUWVBFX1BST1BFUlRJRVNfQ0xBU1NFUzogUmVjb3JkPHN0cmluZywgUmV0dXJuVHlwZTx0eXBlb2YgY3JlYXRlVHlwZVByb3BlcnRpZXNDbGFzcz4+ID0ge307XG5mb3IgKGNvbnN0IGRlZiBvZiBNSVNDX1RZUEVTX0NPTlZFUlRJQkxFX1RPX0NMQVNTRVMpIHtcbiAgVFlQRV9QUk9QRVJUSUVTX0NMQVNTRVNbZGVmLmNsYXNzTmFtZV0gPSBjcmVhdGVUeXBlUHJvcGVydGllc0NsYXNzKGRlZi5jbGFzc05hbWUsIGRlZi50eXBlVmFsdWUpO1xufVxuXG4vLyBFeHBvcnQgYWxsIGNsYXNzZXMgZm9yIG5hbWVkIGltcG9ydHMgKFR5cGVTY3JpcHQgbmVlZHMgdGhlc2UgZXhwbGljaXQgZXhwb3J0cylcbmV4cG9ydCBjb25zdCB7XG4gIC8vIERhdGFiYXNlIEVuZ2luZXNcbiAgUmRzRW5naW5lUG9zdGdyZXMsXG4gIFJkc0VuZ2luZU1hcmlhZGIsXG4gIFJkc0VuZ2luZU15c3FsLFxuICBSZHNFbmdpbmVPcmFjbGVFRSxcbiAgUmRzRW5naW5lT3JhY2xlU0UyLFxuICBSZHNFbmdpbmVTcWxTZXJ2ZXJFRSxcbiAgUmRzRW5naW5lU3FsU2VydmVyRVgsXG4gIFJkc0VuZ2luZVNxbFNlcnZlclNFLFxuICBSZHNFbmdpbmVTcWxTZXJ2ZXJXZWIsXG4gIEF1cm9yYUVuZ2luZVBvc3RncmVzcWwsXG4gIEF1cm9yYUVuZ2luZU15c3FsLFxuICBBdXJvcmFTZXJ2ZXJsZXNzRW5naW5lUG9zdGdyZXNxbCxcbiAgQXVyb3JhU2VydmVybGVzc0VuZ2luZU15c3FsLFxuICBBdXJvcmFTZXJ2ZXJsZXNzVjJFbmdpbmVQb3N0Z3Jlc3FsLFxuICBBdXJvcmFTZXJ2ZXJsZXNzVjJFbmdpbmVNeXNxbCxcbiAgLy8gTGFtYmRhIFBhY2thZ2luZ1xuICBTdGFja3RhcGVMYW1iZGFCdWlsZHBhY2tQYWNrYWdpbmcsXG4gIEN1c3RvbUFydGlmYWN0TGFtYmRhUGFja2FnaW5nLFxuICAvLyBDb250YWluZXIgUGFja2FnaW5nXG4gIFByZWJ1aWx0SW1hZ2VQYWNrYWdpbmcsXG4gIEN1c3RvbURvY2tlcmZpbGVQYWNrYWdpbmcsXG4gIEV4dGVybmFsQnVpbGRwYWNrUGFja2FnaW5nLFxuICBOaXhwYWNrc1BhY2thZ2luZyxcbiAgU3RhY2t0YXBlSW1hZ2VCdWlsZHBhY2tQYWNrYWdpbmcsXG4gIC8vIExhbWJkYSBGdW5jdGlvbiBFdmVudHMvSW50ZWdyYXRpb25zXG4gIEh0dHBBcGlJbnRlZ3JhdGlvbixcbiAgUzNJbnRlZ3JhdGlvbixcbiAgU2NoZWR1bGVJbnRlZ3JhdGlvbixcbiAgU25zSW50ZWdyYXRpb24sXG4gIFNxc0ludGVncmF0aW9uLFxuICBLaW5lc2lzSW50ZWdyYXRpb24sXG4gIER5bmFtb0RiSW50ZWdyYXRpb24sXG4gIENsb3Vkd2F0Y2hMb2dJbnRlZ3JhdGlvbixcbiAgQXBwbGljYXRpb25Mb2FkQmFsYW5jZXJJbnRlZ3JhdGlvbixcbiAgRXZlbnRCdXNJbnRlZ3JhdGlvbixcbiAgS2Fma2FUb3BpY0ludGVncmF0aW9uLFxuICBBbGFybUludGVncmF0aW9uLFxuICBJb3RJbnRlZ3JhdGlvbixcbiAgLy8gQ0ROIFJvdXRlc1xuICBDZG5Mb2FkQmFsYW5jZXJSb3V0ZSxcbiAgQ2RuSHR0cEFwaUdhdGV3YXlSb3V0ZSxcbiAgQ2RuTGFtYmRhRnVuY3Rpb25Sb3V0ZSxcbiAgQ2RuQ3VzdG9tRG9tYWluUm91dGUsXG4gIENkbkJ1Y2tldFJvdXRlLFxuICAvLyBXZWIgQXBwIEZpcmV3YWxsIFJ1bGVzXG4gIE1hbmFnZWRSdWxlR3JvdXAsXG4gIEN1c3RvbVJ1bGVHcm91cCxcbiAgUmF0ZUJhc2VkUnVsZSxcbiAgLy8gU1FTIFF1ZXVlIEludGVncmF0aW9uc1xuICBTcXNRdWV1ZUV2ZW50QnVzSW50ZWdyYXRpb24sXG4gIC8vIE11bHRpIENvbnRhaW5lciBXb3JrbG9hZCBJbnRlZ3JhdGlvbnNcbiAgTXVsdGlDb250YWluZXJXb3JrbG9hZEh0dHBBcGlJbnRlZ3JhdGlvbixcbiAgTXVsdGlDb250YWluZXJXb3JrbG9hZExvYWRCYWxhbmNlckludGVncmF0aW9uLFxuICBNdWx0aUNvbnRhaW5lcldvcmtsb2FkTmV0d29ya0xvYWRCYWxhbmNlckludGVncmF0aW9uLFxuICBNdWx0aUNvbnRhaW5lcldvcmtsb2FkSW50ZXJuYWxJbnRlZ3JhdGlvbixcbiAgTXVsdGlDb250YWluZXJXb3JrbG9hZFNlcnZpY2VDb25uZWN0SW50ZWdyYXRpb24sXG4gIC8vIFNjcmlwdHNcbiAgTG9jYWxTY3JpcHQsXG4gIEJhc3Rpb25TY3JpcHQsXG4gIExvY2FsU2NyaXB0V2l0aEJhc3Rpb25UdW5uZWxpbmcsXG4gIC8vIExvZyBGb3J3YXJkaW5nXG4gIEh0dHBFbmRwb2ludExvZ0ZvcndhcmRpbmcsXG4gIEhpZ2hsaWdodExvZ0ZvcndhcmRpbmcsXG4gIERhdGFkb2dMb2dGb3J3YXJkaW5nLFxuICAvLyBCdWNrZXQgTGlmZWN5Y2xlIFJ1bGVzXG4gIEV4cGlyYXRpb25MaWZlY3ljbGVSdWxlLFxuICBOb25DdXJyZW50VmVyc2lvbkV4cGlyYXRpb25MaWZlY3ljbGVSdWxlLFxuICAvLyBFRlMgTW91bnRzXG4gIENvbnRhaW5lckVmc01vdW50LFxuICBMYW1iZGFFZnNNb3VudCxcbiAgLy8gQXV0aG9yaXplcnNcbiAgQ29nbml0b0F1dGhvcml6ZXIsXG4gIExhbWJkYUF1dGhvcml6ZXIsXG4gIC8vIEN1c3RvbSBSZXNvdXJjZXNcbiAgQ3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uLFxuICBDdXN0b21SZXNvdXJjZUluc3RhbmNlLFxuICAvLyBEZXBsb3ltZW50IFNjcmlwdHNcbiAgRGVwbG95bWVudFNjcmlwdCxcbiAgLy8gRWRnZSBMYW1iZGEgRnVuY3Rpb25zXG4gIEVkZ2VMYW1iZGFGdW5jdGlvblxufSA9IFRZUEVfUFJPUEVSVElFU19DTEFTU0VTO1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7O0FDQ0EsSUFBTSx1QkFBdUIsV0FBQSwyQkFBQSxJQUF3QjtBQUNyRCxJQUFNLHVCQUF1QixXQUFBLGlDQUFBLElBQThCO0FBRzNELElBQU0sMkJBQTJCLFdBQUEsNEJBQUEsR0FBdUI7QUFHeEQsSUFBTSx1QkFBdUI7QUFHN0IsSUFBTSxzQkFBc0I7QUFHNUIsSUFBTSxtQ0FBbUM7QUErQm5DLFNBQVUsTUFBTSxP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Q0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBO0FBQUEsRUFFQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBO0FBQUEsRUFFQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBO0FBQUEsRUFFQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQTtBQUFBLEVBRUE7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQTtBQUFBLEVBRUE7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBO0FBQUEsRUFFQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQTtBQUFBLEVBRUE7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQTtBQUFBLEVBRUE7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBO0FBQUEsRUFFQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUE7QUFBQSxFQUVBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUE7QUFBQSxFQUVBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUE7QUFBQSxFQUVBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdB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O0FBQUEsRUFDQTtBQUFBO0FBQUEsRUFFQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBO0FBQUEsRUFFQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQTtBQUFBLEVBRUE7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBO0FBQUEsRUFFQTtBQUFBO0FBQUEsRUFFQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQTtBQUFBLEVBRUE7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBO0FBQUEsRUFFQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUE7QUFBQSxFQUVBO0FBQUEsRUFDQTtBQUFBO0FBQUEsRUFFQTtBQUFBLEVBQ0E7QUFBQTtBQUFBLEVBRUE7QUFBQSxFQUNBO0FBQUE7QUFBQSxFQUVBO0FBQUEsRUFDQTtBQUFBO0FBQUEsRUFFQTtBQUFBO0FBQUEsRUFFQTtBQUNGLElBQUk7IiwKICAibmFtZXMiOiBbIl9hIiwgImdldFBhcmFtUmVmZXJlbmNlU3ltYm9sIl0KfQo=
4195
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL2FwaS9ucG0vdHMvaW5kZXgudHMiLCAiLi4vbm9kZV9tb2R1bGVzL2NoYW5nZS1jYXNlL3NyYy9pbmRleC50cyIsICIuLi9zaGFyZWQvbmFtaW5nL2xvZ2ljYWwtbmFtZXMudHMiLCAiLi4vc3JjL2FwaS9ucG0vdHMvY2hpbGQtcmVzb3VyY2VzLnRzIiwgIi4uL3NyYy9hcGkvbnBtL3RzL2NvbmZpZy50cyIsICIuLi9zcmMvYXBpL25wbS90cy9kaXJlY3RpdmVzLnRzIiwgIi4uL3NyYy9hcGkvbnBtL3RzL2dsb2JhbC1hd3Mtc2VydmljZXMudHMiLCAiLi4vc3JjL2FwaS9ucG0vdHMvY2xhc3MtY29uZmlnLnRzIiwgIi4uL3NyYy9hcGkvbnBtL3RzL3Jlc291cmNlLW1ldGFkYXRhLnRzIiwgIi4uL3NyYy9hcGkvbnBtL3RzL3Jlc291cmNlcy50cyIsICIuLi9zcmMvYXBpL25wbS90cy90eXBlLXByb3BlcnRpZXMudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8vIE1haW4gZXhwb3J0IC0gb25seSBjbGFzc2VzLCBkaXJlY3RpdmVzLCBhbmQgZGVmaW5lQ29uZmlnXG5cbi8vIGRlZmluZUNvbmZpZyBmdW5jdGlvblxuZXhwb3J0IHsgZGVmaW5lQ29uZmlnIH0gZnJvbSAnLi9jb25maWcnO1xuXG4vLyBEaXJlY3RpdmVzXG5leHBvcnQgeyAkQ2ZGb3JtYXQsICRDZlJlc291cmNlUGFyYW0sICRDZlN0YWNrT3V0cHV0LCAkR2l0SW5mbywgJFJlc291cmNlUGFyYW0sICRTZWNyZXQgfSBmcm9tICcuL2RpcmVjdGl2ZXMnO1xuXG4vLyBBV1Mgc2VydmljZSBjb25zdGFudHMgKGZvciBjb25uZWN0VG8pXG5leHBvcnQgeyBBV1NfU0VTIH0gZnJvbSAnLi9nbG9iYWwtYXdzLXNlcnZpY2VzJztcblxuLy8gUmVzb3VyY2UgY2xhc3Nlc1xuZXhwb3J0ICogZnJvbSAnLi9yZXNvdXJjZXMnO1xuXG4vLyBUeXBlL3Byb3BlcnRpZXMgY2xhc3Nlc1xuZXhwb3J0ICogZnJvbSAnLi90eXBlLXByb3BlcnRpZXMnO1xuIiwgIi8vIFJlZ2V4cHMgaW52b2x2ZWQgd2l0aCBzcGxpdHRpbmcgd29yZHMgaW4gdmFyaW91cyBjYXNlIGZvcm1hdHMuXG5jb25zdCBTUExJVF9MT1dFUl9VUFBFUl9SRSA9IC8oW1xccHtMbH1cXGRdKShcXHB7THV9KS9ndTtcbmNvbnN0IFNQTElUX1VQUEVSX1VQUEVSX1JFID0gLyhcXHB7THV9KShbXFxwe0x1fV1bXFxwe0xsfV0pL2d1O1xuXG4vLyBVc2VkIHRvIGl0ZXJhdGUgb3ZlciB0aGUgaW5pdGlhbCBzcGxpdCByZXN1bHQgYW5kIHNlcGFyYXRlIG51bWJlcnMuXG5jb25zdCBTUExJVF9TRVBBUkFURV9OVU1CRVJfUkUgPSAvKFxcZClcXHB7TGx9fChcXHB7TH0pXFxkL3U7XG5cbi8vIFJlZ2V4cCBpbnZvbHZlZCB3aXRoIHN0cmlwcGluZyBub24td29yZCBjaGFyYWN0ZXJzIGZyb20gdGhlIHJlc3VsdC5cbmNvbnN0IERFRkFVTFRfU1RSSVBfUkVHRVhQID0gL1teXFxwe0x9XFxkXSsvZ2l1O1xuXG4vLyBUaGUgcmVwbGFjZW1lbnQgdmFsdWUgZm9yIHNwbGl0cy5cbmNvbnN0IFNQTElUX1JFUExBQ0VfVkFMVUUgPSBcIiQxXFwwJDJcIjtcblxuLy8gVGhlIGRlZmF1bHQgY2hhcmFjdGVycyB0byBrZWVwIGFmdGVyIHRyYW5zZm9ybWluZyBjYXNlLlxuY29uc3QgREVGQVVMVF9QUkVGSVhfU1VGRklYX0NIQVJBQ1RFUlMgPSBcIlwiO1xuXG4vKipcbiAqIFN1cHBvcnRlZCBsb2NhbGUgdmFsdWVzLiBVc2UgYGZhbHNlYCB0byBpZ25vcmUgbG9jYWxlLlxuICogRGVmYXVsdHMgdG8gYHVuZGVmaW5lZGAsIHdoaWNoIHVzZXMgdGhlIGhvc3QgZW52aXJvbm1lbnQuXG4gKi9cbmV4cG9ydCB0eXBlIExvY2FsZSA9IHN0cmluZ1tdIHwgc3RyaW5nIHwgZmFsc2UgfCB1bmRlZmluZWQ7XG5cbi8qKlxuICogT3B0aW9ucyB1c2VkIGZvciBjb252ZXJ0aW5nIHN0cmluZ3MgdG8gcGFzY2FsL2NhbWVsIGNhc2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGFzY2FsQ2FzZU9wdGlvbnMgZXh0ZW5kcyBPcHRpb25zIHtcbiAgbWVyZ2VBbWJpZ3VvdXNDaGFyYWN0ZXJzPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBPcHRpb25zIHVzZWQgZm9yIGNvbnZlcnRpbmcgc3RyaW5ncyB0byBhbnkgY2FzZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPcHRpb25zIHtcbiAgbG9jYWxlPzogTG9jYWxlO1xuICBzcGxpdD86ICh2YWx1ZTogc3RyaW5nKSA9PiBzdHJpbmdbXTtcbiAgLyoqIEBkZXByZWNhdGVkIFBhc3MgYHNwbGl0OiBzcGxpdFNlcGFyYXRlTnVtYmVyc2AgaW5zdGVhZC4gKi9cbiAgc2VwYXJhdGVOdW1iZXJzPzogYm9vbGVhbjtcbiAgZGVsaW1pdGVyPzogc3RyaW5nO1xuICBwcmVmaXhDaGFyYWN0ZXJzPzogc3RyaW5nO1xuICBzdWZmaXhDaGFyYWN0ZXJzPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFNwbGl0IGFueSBjYXNlZCBpbnB1dCBzdHJpbmdzIGludG8gYW4gYXJyYXkgb2Ygd29yZHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzcGxpdCh2YWx1ZTogc3RyaW5nKSB7XG4gIGxldCByZXN1bHQgPSB2YWx1ZS50cmltKCk7XG5cbiAgcmVzdWx0ID0gcmVzdWx0XG4gICAgLnJlcGxhY2UoU1BMSVRfTE9XRVJfVVBQRVJfUkUsIFNQTElUX1JFUExBQ0VfVkFMVUUpXG4gICAgLnJlcGxhY2UoU1BMSVRfVVBQRVJfVVBQRVJfUkUsIFNQTElUX1JFUExBQ0VfVkFMVUUpO1xuXG4gIHJlc3VsdCA9IHJlc3VsdC5yZXBsYWNlKERFRkFVTFRfU1RSSVBfUkVHRVhQLCBcIlxcMFwiKTtcblxuICBsZXQgc3RhcnQgPSAwO1xuICBsZXQgZW5kID0gcmVzdWx0Lmxlbmd0aDtcblxuICAvLyBUcmltIHRoZSBkZWxpbWl0ZXIgZnJvbSBhcm91bmQgdGhlIG91dHB1dCBzdHJpbmcuXG4gIHdoaWxlIChyZXN1bHQuY2hhckF0KHN0YXJ0KSA9PT0gXCJcXDBcIikgc3RhcnQrKztcbiAgaWYgKHN0YXJ0ID09PSBlbmQpIHJldHVybiBbXTtcbiAgd2hpbGUgKHJlc3VsdC5jaGFyQXQoZW5kIC0gMSkgPT09IFwiXFwwXCIpIGVuZC0tO1xuXG4gIHJldHVybiByZXN1bHQuc2xpY2Uoc3RhcnQsIGVuZCkuc3BsaXQoL1xcMC9nKTtcbn1cblxuLyoqXG4gKiBTcGxpdCB0aGUgaW5wdXQgc3RyaW5nIGludG8gYW4gYXJyYXkgb2Ygd29yZHMsIHNlcGFyYXRpbmcgbnVtYmVycy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNwbGl0U2VwYXJhdGVOdW1iZXJzKHZhbHVlOiBzdHJpbmcpIHtcbiAgY29uc3Qgd29yZHMgPSBzcGxpdCh2YWx1ZSk7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgd29yZHMubGVuZ3RoOyBpKyspIHtcbiAgICBjb25zdCB3b3JkID0gd29yZHNbaV07XG4gICAgY29uc3QgbWF0Y2ggPSBTUExJVF9TRVBBUkFURV9OVU1CRVJfUkUuZXhlYyh3b3JkKTtcbiAgICBpZiAobWF0Y2gpIHtcbiAgICAgIGNvbnN0IG9mZnNldCA9IG1hdGNoLmluZGV4ICsgKG1hdGNoWzFdID8/IG1hdGNoWzJdKS5sZW5ndGg7XG4gICAgICB3b3Jkcy5zcGxpY2UoaSwgMSwgd29yZC5zbGljZSgwLCBvZmZzZXQpLCB3b3JkLnNsaWNlKG9mZnNldCkpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gd29yZHM7XG59XG5cbi8qKlxuICogQ29udmVydCBhIHN0cmluZyB0byBzcGFjZSBzZXBhcmF0ZWQgbG93ZXIgY2FzZSAoYGZvbyBiYXJgKS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5vQ2FzZShpbnB1dDogc3RyaW5nLCBvcHRpb25zPzogT3B0aW9ucykge1xuICBjb25zdCBbcHJlZml4LCB3b3Jkcywgc3VmZml4XSA9IHNwbGl0UHJlZml4U3VmZml4KGlucHV0LCBvcHRpb25zKTtcbiAgcmV0dXJuIChcbiAgICBwcmVmaXggK1xuICAgIHdvcmRzLm1hcChsb3dlckZhY3Rvcnkob3B0aW9ucz8ubG9jYWxlKSkuam9pbihvcHRpb25zPy5kZWxpbWl0ZXIgPz8gXCIgXCIpICtcbiAgICBzdWZmaXhcbiAgKTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0IGEgc3RyaW5nIHRvIGNhbWVsIGNhc2UgKGBmb29CYXJgKS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNhbWVsQ2FzZShpbnB1dDogc3RyaW5nLCBvcHRpb25zPzogUGFzY2FsQ2FzZU9wdGlvbnMpIHtcbiAgY29uc3QgW3ByZWZpeCwgd29yZHMsIHN1ZmZpeF0gPSBzcGxpdFByZWZpeFN1ZmZpeChpbnB1dCwgb3B0aW9ucyk7XG4gIGNvbnN0IGxvd2VyID0gbG93ZXJGYWN0b3J5KG9wdGlvbnM/LmxvY2FsZSk7XG4gIGNvbnN0IHVwcGVyID0gdXBwZXJGYWN0b3J5KG9wdGlvbnM/LmxvY2FsZSk7XG4gIGNvbnN0IHRyYW5zZm9ybSA9IG9wdGlvbnM/Lm1lcmdlQW1iaWd1b3VzQ2hhcmFjdGVyc1xuICAgID8gY2FwaXRhbENhc2VUcmFuc2Zvcm1GYWN0b3J5KGxvd2VyLCB1cHBlcilcbiAgICA6IHBhc2NhbENhc2VUcmFuc2Zvcm1GYWN0b3J5KGxvd2VyLCB1cHBlcik7XG4gIHJldHVybiAoXG4gICAgcHJlZml4ICtcbiAgICB3b3Jkc1xuICAgICAgLm1hcCgod29yZCwgaW5kZXgpID0+IHtcbiAgICAgICAgaWYgKGluZGV4ID09PSAwKSByZXR1cm4gbG93ZXIod29yZCk7XG4gICAgICAgIHJldHVybiB0cmFuc2Zvcm0od29yZCwgaW5kZXgpO1xuICAgICAgfSlcbiAgICAgIC5qb2luKG9wdGlvbnM/LmRlbGltaXRlciA/PyBcIlwiKSArXG4gICAgc3VmZml4XG4gICk7XG59XG5cbi8qKlxuICogQ29udmVydCBhIHN0cmluZyB0byBwYXNjYWwgY2FzZSAoYEZvb0JhcmApLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFzY2FsQ2FzZShpbnB1dDogc3RyaW5nLCBvcHRpb25zPzogUGFzY2FsQ2FzZU9wdGlvbnMpIHtcbiAgY29uc3QgW3ByZWZpeCwgd29yZHMsIHN1ZmZpeF0gPSBzcGxpdFByZWZpeFN1ZmZpeChpbnB1dCwgb3B0aW9ucyk7XG4gIGNvbnN0IGxvd2VyID0gbG93ZXJGYWN0b3J5KG9wdGlvbnM/LmxvY2FsZSk7XG4gIGNvbnN0IHVwcGVyID0gdXBwZXJGYWN0b3J5KG9wdGlvbnM/LmxvY2FsZSk7XG4gIGNvbnN0IHRyYW5zZm9ybSA9IG9wdGlvbnM/Lm1lcmdlQW1iaWd1b3VzQ2hhcmFjdGVyc1xuICAgID8gY2FwaXRhbENhc2VUcmFuc2Zvcm1GYWN0b3J5KGxvd2VyLCB1cHBlcilcbiAgICA6IHBhc2NhbENhc2VUcmFuc2Zvcm1GYWN0b3J5KGxvd2VyLCB1cHBlcik7XG4gIHJldHVybiBwcmVmaXggKyB3b3Jkcy5tYXAodHJhbnNmb3JtKS5qb2luKG9wdGlvbnM/LmRlbGltaXRlciA/PyBcIlwiKSArIHN1ZmZpeDtcbn1cblxuLyoqXG4gKiBDb252ZXJ0IGEgc3RyaW5nIHRvIHBhc2NhbCBzbmFrZSBjYXNlIChgRm9vX0JhcmApLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFzY2FsU25ha2VDYXNlKGlucHV0OiBzdHJpbmcsIG9wdGlvbnM/OiBPcHRpb25zKSB7XG4gIHJldHVybiBjYXBpdGFsQ2FzZShpbnB1dCwgeyBkZWxpbWl0ZXI6IFwiX1wiLCAuLi5vcHRpb25zIH0pO1xufVxuXG4vKipcbiAqIENvbnZlcnQgYSBzdHJpbmcgdG8gY2FwaXRhbCBjYXNlIChgRm9vIEJhcmApLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY2FwaXRhbENhc2UoaW5wdXQ6IHN0cmluZywgb3B0aW9ucz86IE9wdGlvbnMpIHtcbiAgY29uc3QgW3ByZWZpeCwgd29yZHMsIHN1ZmZpeF0gPSBzcGxpdFByZWZpeFN1ZmZpeChpbnB1dCwgb3B0aW9ucyk7XG4gIGNvbnN0IGxvd2VyID0gbG93ZXJGYWN0b3J5KG9wdGlvbnM/LmxvY2FsZSk7XG4gIGNvbnN0IHVwcGVyID0gdXBwZXJGYWN0b3J5KG9wdGlvbnM/LmxvY2FsZSk7XG4gIHJldHVybiAoXG4gICAgcHJlZml4ICtcbiAgICB3b3Jkc1xuICAgICAgLm1hcChjYXBpdGFsQ2FzZVRyYW5zZm9ybUZhY3RvcnkobG93ZXIsIHVwcGVyKSlcbiAgICAgIC5qb2luKG9wdGlvbnM/LmRlbGltaXRlciA/PyBcIiBcIikgK1xuICAgIHN1ZmZpeFxuICApO1xufVxuXG4vKipcbiAqIENvbnZlcnQgYSBzdHJpbmcgdG8gY29uc3RhbnQgY2FzZSAoYEZPT19CQVJgKS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbnN0YW50Q2FzZShpbnB1dDogc3RyaW5nLCBvcHRpb25zPzogT3B0aW9ucykge1xuICBjb25zdCBbcHJlZml4LCB3b3Jkcywgc3VmZml4XSA9IHNwbGl0UHJlZml4U3VmZml4KGlucHV0LCBvcHRpb25zKTtcbiAgcmV0dXJuIChcbiAgICBwcmVmaXggK1xuICAgIHdvcmRzLm1hcCh1cHBlckZhY3Rvcnkob3B0aW9ucz8ubG9jYWxlKSkuam9pbihvcHRpb25zPy5kZWxpbWl0ZXIgPz8gXCJfXCIpICtcbiAgICBzdWZmaXhcbiAgKTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0IGEgc3RyaW5nIHRvIGRvdCBjYXNlIChgZm9vLmJhcmApLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZG90Q2FzZShpbnB1dDogc3RyaW5nLCBvcHRpb25zPzogT3B0aW9ucykge1xuICByZXR1cm4gbm9DYXNlKGlucHV0LCB7IGRlbGltaXRlcjogXCIuXCIsIC4uLm9wdGlvbnMgfSk7XG59XG5cbi8qKlxuICogQ29udmVydCBhIHN0cmluZyB0byBrZWJhYiBjYXNlIChgZm9vLWJhcmApLlxuICovXG5leHBvcnQgZnVuY3Rpb24ga2ViYWJDYXNlKGlucHV0OiBzdHJpbmcsIG9wdGlvbnM/OiBPcHRpb25zKSB7XG4gIHJldHVybiBub0Nhc2UoaW5wdXQsIHsgZGVsaW1pdGVyOiBcIi1cIiwgLi4ub3B0aW9ucyB9KTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0IGEgc3RyaW5nIHRvIHBhdGggY2FzZSAoYGZvby9iYXJgKS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhdGhDYXNlKGlucHV0OiBzdHJpbmcsIG9wdGlvbnM/OiBPcHRpb25zKSB7XG4gIHJldHVybiBub0Nhc2UoaW5wdXQsIHsgZGVsaW1pdGVyOiBcIi9cIiwgLi4ub3B0aW9ucyB9KTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0IGEgc3RyaW5nIHRvIHBhdGggY2FzZSAoYEZvbyBiYXJgKS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNlbnRlbmNlQ2FzZShpbnB1dDogc3RyaW5nLCBvcHRpb25zPzogT3B0aW9ucykge1xuICBjb25zdCBbcHJlZml4LCB3b3Jkcywgc3VmZml4XSA9IHNwbGl0UHJlZml4U3VmZml4KGlucHV0LCBvcHRpb25zKTtcbiAgY29uc3QgbG93ZXIgPSBsb3dlckZhY3Rvcnkob3B0aW9ucz8ubG9jYWxlKTtcbiAgY29uc3QgdXBwZXIgPSB1cHBlckZhY3Rvcnkob3B0aW9ucz8ubG9jYWxlKTtcbiAgY29uc3QgdHJhbnNmb3JtID0gY2FwaXRhbENhc2VUcmFuc2Zvcm1GYWN0b3J5KGxvd2VyLCB1cHBlcik7XG4gIHJldHVybiAoXG4gICAgcHJlZml4ICtcbiAgICB3b3Jkc1xuICAgICAgLm1hcCgod29yZCwgaW5kZXgpID0+IHtcbiAgICAgICAgaWYgKGluZGV4ID09PSAwKSByZXR1cm4gdHJhbnNmb3JtKHdvcmQpO1xuICAgICAgICByZXR1cm4gbG93ZXIod29yZCk7XG4gICAgICB9KVxuICAgICAgLmpvaW4ob3B0aW9ucz8uZGVsaW1pdGVyID8/IFwiIFwiKSArXG4gICAgc3VmZml4XG4gICk7XG59XG5cbi8qKlxuICogQ29udmVydCBhIHN0cmluZyB0byBzbmFrZSBjYXNlIChgZm9vX2JhcmApLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc25ha2VDYXNlKGlucHV0OiBzdHJpbmcsIG9wdGlvbnM/OiBPcHRpb25zKSB7XG4gIHJldHVybiBub0Nhc2UoaW5wdXQsIHsgZGVsaW1pdGVyOiBcIl9cIiwgLi4ub3B0aW9ucyB9KTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0IGEgc3RyaW5nIHRvIGhlYWRlciBjYXNlIChgRm9vLUJhcmApLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdHJhaW5DYXNlKGlucHV0OiBzdHJpbmcsIG9wdGlvbnM/OiBPcHRpb25zKSB7XG4gIHJldHVybiBjYXBpdGFsQ2FzZShpbnB1dCwgeyBkZWxpbWl0ZXI6IFwiLVwiLCAuLi5vcHRpb25zIH0pO1xufVxuXG5mdW5jdGlvbiBsb3dlckZhY3RvcnkobG9jYWxlOiBMb2NhbGUpOiAoaW5wdXQ6IHN0cmluZykgPT4gc3RyaW5nIHtcbiAgcmV0dXJuIGxvY2FsZSA9PT0gZmFsc2VcbiAgICA/IChpbnB1dDogc3RyaW5nKSA9PiBpbnB1dC50b0xvd2VyQ2FzZSgpXG4gICAgOiAoaW5wdXQ6IHN0cmluZykgPT4gaW5wdXQudG9Mb2NhbGVMb3dlckNhc2UobG9jYWxlKTtcbn1cblxuZnVuY3Rpb24gdXBwZXJGYWN0b3J5KGxvY2FsZTogTG9jYWxlKTogKGlucHV0OiBzdHJpbmcpID0+IHN0cmluZyB7XG4gIHJldHVybiBsb2NhbGUgPT09IGZhbHNlXG4gICAgPyAoaW5wdXQ6IHN0cmluZykgPT4gaW5wdXQudG9VcHBlckNhc2UoKVxuICAgIDogKGlucHV0OiBzdHJpbmcpID0+IGlucHV0LnRvTG9jYWxlVXBwZXJDYXNlKGxvY2FsZSk7XG59XG5cbmZ1bmN0aW9uIGNhcGl0YWxDYXNlVHJhbnNmb3JtRmFjdG9yeShcbiAgbG93ZXI6IChpbnB1dDogc3RyaW5nKSA9PiBzdHJpbmcsXG4gIHVwcGVyOiAoaW5wdXQ6IHN0cmluZykgPT4gc3RyaW5nLFxuKSB7XG4gIHJldHVybiAod29yZDogc3RyaW5nKSA9PiBgJHt1cHBlcih3b3JkWzBdKX0ke2xvd2VyKHdvcmQuc2xpY2UoMSkpfWA7XG59XG5cbmZ1bmN0aW9uIHBhc2NhbENhc2VUcmFuc2Zvcm1GYWN0b3J5KFxuICBsb3dlcjogKGlucHV0OiBzdHJpbmcpID0+IHN0cmluZyxcbiAgdXBwZXI6IChpbnB1dDogc3RyaW5nKSA9PiBzdHJpbmcsXG4pIHtcbiAgcmV0dXJuICh3b3JkOiBzdHJpbmcsIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICBjb25zdCBjaGFyMCA9IHdvcmRbMF07XG4gICAgY29uc3QgaW5pdGlhbCA9XG4gICAgICBpbmRleCA+IDAgJiYgY2hhcjAgPj0gXCIwXCIgJiYgY2hhcjAgPD0gXCI5XCIgPyBcIl9cIiArIGNoYXIwIDogdXBwZXIoY2hhcjApO1xuICAgIHJldHVybiBpbml0aWFsICsgbG93ZXIod29yZC5zbGljZSgxKSk7XG4gIH07XG59XG5cbmZ1bmN0aW9uIHNwbGl0UHJlZml4U3VmZml4KFxuICBpbnB1dDogc3RyaW5nLFxuICBvcHRpb25zOiBPcHRpb25zID0ge30sXG4pOiBbc3RyaW5nLCBzdHJpbmdbXSwgc3RyaW5nXSB7XG4gIGNvbnN0IHNwbGl0Rm4gPVxuICAgIG9wdGlvbnMuc3BsaXQgPz8gKG9wdGlvbnMuc2VwYXJhdGVOdW1iZXJzID8gc3BsaXRTZXBhcmF0ZU51bWJlcnMgOiBzcGxpdCk7XG4gIGNvbnN0IHByZWZpeENoYXJhY3RlcnMgPVxuICAgIG9wdGlvbnMucHJlZml4Q2hhcmFjdGVycyA/PyBERUZBVUxUX1BSRUZJWF9TVUZGSVhfQ0hBUkFDVEVSUztcbiAgY29uc3Qgc3VmZml4Q2hhcmFjdGVycyA9XG4gICAgb3B0aW9ucy5zdWZmaXhDaGFyYWN0ZXJzID8/IERFRkFVTFRfUFJFRklYX1NVRkZJWF9DSEFSQUNURVJTO1xuICBsZXQgcHJlZml4SW5kZXggPSAwO1xuICBsZXQgc3VmZml4SW5kZXggPSBpbnB1dC5sZW5ndGg7XG5cbiAgd2hpbGUgKHByZWZpeEluZGV4IDwgaW5wdXQubGVuZ3RoKSB7XG4gICAgY29uc3QgY2hhciA9IGlucHV0LmNoYXJBdChwcmVmaXhJbmRleCk7XG4gICAgaWYgKCFwcmVmaXhDaGFyYWN0ZXJzLmluY2x1ZGVzKGNoYXIpKSBicmVhaztcbiAgICBwcmVmaXhJbmRleCsrO1xuICB9XG5cbiAgd2hpbGUgKHN1ZmZpeEluZGV4ID4gcHJlZml4SW5kZXgpIHtcbiAgICBjb25zdCBpbmRleCA9IHN1ZmZpeEluZGV4IC0gMTtcbiAgICBjb25zdCBjaGFyID0gaW5wdXQuY2hhckF0KGluZGV4KTtcbiAgICBpZiAoIXN1ZmZpeENoYXJhY3RlcnMuaW5jbHVkZXMoY2hhcikpIGJyZWFrO1xuICAgIHN1ZmZpeEluZGV4ID0gaW5kZXg7XG4gIH1cblxuICByZXR1cm4gW1xuICAgIGlucHV0LnNsaWNlKDAsIHByZWZpeEluZGV4KSxcbiAgICBzcGxpdEZuKGlucHV0LnNsaWNlKHByZWZpeEluZGV4LCBzdWZmaXhJbmRleCkpLFxuICAgIGlucHV0LnNsaWNlKHN1ZmZpeEluZGV4KSxcbiAgXTtcbn1cbiIsICJpbXBvcnQgdHlwZSB7IENsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlIH0gZnJvbSAnQGNsb3VkZm9ybS9yZXNvdXJjZS10eXBlcyc7XG5pbXBvcnQgeyBwYXNjYWxDYXNlIH0gZnJvbSAnY2hhbmdlLWNhc2UnO1xuXG5leHBvcnQgY29uc3QgY2ZMb2dpY2FsTmFtZXMgPSB7XG4gIGJ1Y2tldChzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBwYXNjYWxDYXNlKGAke3N0cFJlc291cmNlTmFtZX0tYnVja2V0YCk7XG4gIH0sXG4gIGF0bGFzTW9uZ29Qcm9qZWN0KCkge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdBdGxhc01vbmdvJyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnTW9uZ29EQjo6U3RwQXRsYXNWMTo6UHJvamVjdCcgfVxuICAgIH0pO1xuICB9LFxuICBhdGxhc01vbmdvQ3JlZGVudGlhbHNQcm92aWRlcigpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnQXRsYXNNb25nb0NyZWRlbnRpYWxzUHJvdmlkZXInIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZScgfVxuICAgIH0pO1xuICB9LFxuICBhdGxhc01vbmdvUHJvamVjdFZwY05ldHdvcmtDb250YWluZXIoKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ0F0bGFzTW9uZ28nIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdNb25nb0RCOjpTdHBBdGxhc1YxOjpOZXR3b3JrQ29udGFpbmVyJyB9XG4gICAgfSk7XG4gIH0sXG4gIGF0bGFzTW9uZ29Qcm9qZWN0VnBjTmV0d29ya1BlZXJpbmcoKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ0F0bGFzTW9uZ28nIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdNb25nb0RCOjpTdHBBdGxhc1YxOjpOZXR3b3JrUGVlcmluZycgfVxuICAgIH0pO1xuICB9LFxuICBhdGxhc01vbmdvUHJvamVjdElwQWNjZXNzTGlzdCgpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnQXRsYXNNb25nbycgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ01vbmdvREI6OlN0cEF0bGFzVjE6OlByb2plY3RJcEFjY2Vzc0xpc3QnIH1cbiAgICB9KTtcbiAgfSxcbiAgYXRsYXNNb25nb1VzZXJBc3NvY2lhdGVkV2l0aFJvbGUoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnQXRsYXNNb25nbycgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ01vbmdvREI6OlN0cEF0bGFzVjE6OkRhdGFiYXNlVXNlcicgfVxuICAgIH0pO1xuICB9LFxuICBhdGxhc01vbmdvQ2x1c3Rlck1hc3RlclVzZXIoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ01vbmdvREI6OlN0cEF0bGFzVjE6OkRhdGFiYXNlVXNlcicgfVxuICAgIH0pO1xuICB9LFxuICBhdGxhc01vbmdvQ2x1c3RlcihzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnTW9uZ29EQjo6U3RwQXRsYXNWMTo6Q2x1c3RlcicgfVxuICAgIH0pO1xuICB9LFxuICByZWRpc1JlcGxpY2F0aW9uR3JvdXAoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6RWxhc3RpQ2FjaGU6OlJlcGxpY2F0aW9uR3JvdXAnIH1cbiAgICB9KTtcbiAgfSxcbiAgcmVkaXNMb2dHcm91cChzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpMb2dzOjpMb2dHcm91cCcgfVxuICAgIH0pO1xuICB9LFxuICByZWRpc1BhcmFtZXRlckdyb3VwKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkVsYXN0aUNhY2hlOjpQYXJhbWV0ZXJHcm91cCcgfVxuICAgIH0pO1xuICB9LFxuICByZWRpc1N1Ym5ldEdyb3VwKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkVsYXN0aUNhY2hlOjpTdWJuZXRHcm91cCcgfVxuICAgIH0pO1xuICB9LFxuICByZWRpc1NlY3VyaXR5R3JvdXAoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpTZWN1cml0eUdyb3VwJyB9XG4gICAgfSk7XG4gIH0sXG4gIGVmc0ZpbGVzeXN0ZW0oc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDoge1xuICAgICAgICBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6RUZTOjpGaWxlU3lzdGVtJ1xuICAgICAgfVxuICAgIH0pO1xuICB9LFxuICBlZnNBY2Nlc3NQb2ludCh7XG4gICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgIGVmc0ZpbGVzeXN0ZW1OYW1lLFxuICAgIHJvb3REaXJlY3RvcnlcbiAgfToge1xuICAgIHN0cFJlc291cmNlTmFtZTogc3RyaW5nO1xuICAgIGVmc0ZpbGVzeXN0ZW1OYW1lOiBzdHJpbmc7XG4gICAgcm9vdERpcmVjdG9yeT86IHN0cmluZztcbiAgfSkge1xuICAgIC8vIENyZWF0ZSBhIHVuaXF1ZSBpZGVudGlmaWVyIGJhc2VkIG9uIHRoZSByb290IGRpcmVjdG9yeVxuICAgIGNvbnN0IHJvb3REaXJJZGVudGlmaWVyID0gcm9vdERpcmVjdG9yeSA/IGAke3Jvb3REaXJlY3RvcnkucmVwbGFjZSgvXFwvL2csICctJykucmVwbGFjZSgvXi18LSQvZywgJycpfWAgOiAnUm9vdCc7XG5cbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjoge1xuICAgICAgICB0eXBlOiBgJHtlZnNGaWxlc3lzdGVtTmFtZX0tJHtyb290RGlySWRlbnRpZmllcn1gXG4gICAgICB9LFxuICAgICAgc3VmZml4OiB7XG4gICAgICAgIGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFRlM6OkFjY2Vzc1BvaW50J1xuICAgICAgfVxuICAgIH0pO1xuICB9LFxuICBlZnNNb3VudFRhcmdldChzdHBSZXNvdXJjZU5hbWU6IHN0cmluZywgbW91bnRUYXJnZXRJbmRleDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ1N1Ym5ldCcsIHR5cGVJbmRleDogbW91bnRUYXJnZXRJbmRleCB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFRlM6Ok1vdW50VGFyZ2V0JyB9XG4gICAgfSk7XG4gIH0sXG4gIGVmc1NlY3VyaXR5R3JvdXAoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpTZWN1cml0eUdyb3VwJyB9XG4gICAgfSk7XG4gIH0sXG4gIHNuc1JvbGVTZW5kU21zRnJvbUNvZ25pdG8oc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnU2VuZFNtcycgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpSb2xlJyB9XG4gICAgfSk7XG4gIH0sXG4gIGNsb3VkZnJvbnREaXN0cmlidXRpb24oc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcsIGRpc3RyaWJ1dGlvbkluZGV4OiBudW1iZXIpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnQ0ROJyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpEaXN0cmlidXRpb24nLCBpbmRleDogZGlzdHJpYnV0aW9uSW5kZXggfVxuICAgIH0pO1xuICB9LFxuICBjbG91ZGZyb250Q3VzdG9tQ2FjaGVQb2xpY3koc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcsIGNhY2hpbmdPcHRpb25zSGFzaDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogYENETkNhY2hlQmVoYXZpb3Ike2NhY2hpbmdPcHRpb25zSGFzaH1gIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6OkNhY2hlUG9saWN5JyB9XG4gICAgfSk7XG4gIH0sXG4gIGNsb3VkZnJvbnREZWZhdWx0Q2FjaGVQb2xpY3kodHlwZTogJ0RlZkR5bmFtaWMnIHwgJ0RlZlN0YXRpYycpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiBgQ0ROJHt0eXBlfWAgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6Q2FjaGVQb2xpY3knIH1cbiAgICB9KTtcbiAgfSxcbiAgY2xvdWRmcm9udEN1c3RvbU9yaWdpblJlcXVlc3RQb2xpY3koc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcsIGZvcndhcmRpbmdPcHRpb25zSGFzaDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogYENETkNhY2hlQmVoYXZpb3Ike2ZvcndhcmRpbmdPcHRpb25zSGFzaH1gIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6Ok9yaWdpblJlcXVlc3RQb2xpY3knIH1cbiAgICB9KTtcbiAgfSxcbiAgY2xvdWRmcm9udERlZmF1bHRPcmlnaW5SZXF1ZXN0UG9saWN5KHR5cGU6ICdEZWZEeW5hbWljJyB8ICdEZWZTdGF0aWMnKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogYENETiR7dHlwZX1gIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6Ok9yaWdpblJlcXVlc3RQb2xpY3knIH1cbiAgICB9KTtcbiAgfSxcbiAgY2xvdWRmcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5KHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ0NETicgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6Q2xvdWRGcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5JyB9XG4gICAgfSk7XG4gIH0sXG4gIG9wZW5OZXh0SG9zdEhlYWRlclJld3JpdGVGdW5jdGlvbihzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdPcGVuTmV4dEhvc3RIZWFkZXJSZXdyaXRlJyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpGdW5jdGlvbicgfVxuICAgIH0pO1xuICB9LFxuICBvcGVuTmV4dEFzc2V0UmVwbGFjZXJDdXN0b21SZXNvdXJjZShzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdBc3NldFJlcGxhY2VyJyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6Q3VzdG9tUmVzb3VyY2UnIH1cbiAgICB9KTtcbiAgfSxcbiAgb3Blbk5leHREeW5hbW9JbnNlcnRDdXN0b21SZXNvdXJjZShzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdEeW5hbW9JbnNlcnQnIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZScgfVxuICAgIH0pO1xuICB9LFxuICBkbnNSZWNvcmQoZnVsbHlRdWFsaWZpZWREb21haW5OYW1lOiBzdHJpbmcpIHtcbiAgICAvLyB3ZSBkbyBub3QgYnVpbGQgYnVpbGQgdGhlIHJlc291cmNlIG5hbWUgY29udmVudGlvbmFsbHkgdGhyb3VnaCBzdHBSZXNvdXJjZU5hbWVcbiAgICAvLyB0aGlzIGlzIGR1ZSB0byB1cGRhdGUgYmVoYXZpb3JzIG9mIENsb3VkZm9ybWF0aW9uXG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWU6ICcnLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6IGdldFNwZWNpZmllckZvckRvbWFpblJlc291cmNlKGZ1bGx5UXVhbGlmaWVkRG9tYWluTmFtZSkgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6Um91dGU1Mzo6UmVjb3JkU2V0JyB9XG4gICAgfSk7XG4gIH0sXG4gIGR5bmFtb0dsb2JhbFRhYmxlKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkR5bmFtb0RCOjpHbG9iYWxUYWJsZScgfVxuICAgIH0pO1xuICB9LFxuICBkeW5hbW9SZWdpb25hbFRhYmxlKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkR5bmFtb0RCOjpUYWJsZScgfVxuICAgIH0pO1xuICB9LFxuICBidWNrZXRQb2xpY3koc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6UzM6OkJ1Y2tldFBvbGljeScgfVxuICAgIH0pO1xuICB9LFxuICBsYW1iZGFMb2dHcm91cChzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpMb2dzOjpMb2dHcm91cCcgfVxuICAgIH0pO1xuICB9LFxuICBldmVudE9uRGVsaXZlcnlGYWlsdXJlU3FzUXVldWVQb2xpY3koc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcsIGV2ZW50SW5kZXg6IG51bWJlcikge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7XG4gICAgICAgIHR5cGU6ICdFdmVudCcsXG4gICAgICAgIHR5cGVJbmRleDogZXZlbnRJbmRleFxuICAgICAgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6U1FTOjpRdWV1ZVBvbGljeScgfVxuICAgIH0pO1xuICB9LFxuICBzbnNFdmVudFN1YnNjcmlwdGlvbihzdHBSZXNvdXJjZU5hbWU6IHN0cmluZywgZXZlbnRJbmRleDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHtcbiAgICAgICAgdHlwZTogJ0V2ZW50JyxcbiAgICAgICAgdHlwZUluZGV4OiBldmVudEluZGV4XG4gICAgICB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpTTlM6OlN1YnNjcmlwdGlvbicgfVxuICAgIH0pO1xuICB9LFxuICBzbnNFdmVudFBlcm1pc3Npb24oc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcsIGV2ZW50SW5kZXg6IG51bWJlcikge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7XG4gICAgICAgIHR5cGU6ICdFdmVudCcsXG4gICAgICAgIHR5cGVJbmRleDogZXZlbnRJbmRleFxuICAgICAgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6TGFtYmRhOjpQZXJtaXNzaW9uJyB9XG4gICAgfSk7XG4gIH0sXG4gIGVjclJlcG8oKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHtcbiAgICAgICAgdHlwZTogJ0NvbnRhaW5lcidcbiAgICAgIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkVDUjo6UmVwb3NpdG9yeScgfVxuICAgIH0pO1xuICB9LFxuICBkZXBsb3ltZW50QnVja2V0KCkge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3BlY2lmaWVyOiB7XG4gICAgICAgIHR5cGU6ICdEZXBsb3ltZW50J1xuICAgICAgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6UzM6OkJ1Y2tldCcgfVxuICAgIH0pO1xuICB9LFxuICBkZXBsb3ltZW50QnVja2V0UG9saWN5KCkge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3BlY2lmaWVyOiB7XG4gICAgICAgIHR5cGU6ICdEZXBsb3ltZW50J1xuICAgICAgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6UzM6OkJ1Y2tldFBvbGljeScgfVxuICAgIH0pO1xuICB9LFxuICBsYW1iZGFJbnZva2VDb25maWcoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6TGFtYmRhOjpFdmVudEludm9rZUNvbmZpZycgfVxuICAgIH0pO1xuICB9LFxuICBsYW1iZGFWZXJzaW9uUHVibGlzaGVyQ3VzdG9tUmVzb3VyY2Uoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnVmVyc2lvbicgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGb3JtYXRpb246OkN1c3RvbVJlc291cmNlJyB9XG4gICAgfSk7XG4gIH0sXG4gIGNvZGVEZXBsb3lTZXJ2aWNlUm9sZSgpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjoge1xuICAgICAgICB0eXBlOiAnQ29kZURlcGxveSdcbiAgICAgIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6Um9sZScgfVxuICAgIH0pO1xuICB9LFxuICBiYXRjaEluc3RhbmNlUm9sZSgpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjoge1xuICAgICAgICB0eXBlOiAnQmF0Y2hJbnN0YW5jZSdcbiAgICAgIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6Um9sZScgfVxuICAgIH0pO1xuICB9LFxuICBiYXRjaEluc3RhbmNlRGVmYXVsdFNlY3VyaXR5R3JvdXAoKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHtcbiAgICAgICAgdHlwZTogJ0JhdGNoSW5zdGFuY2UnXG4gICAgICB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFQzI6OlNlY3VyaXR5R3JvdXAnIH1cbiAgICB9KTtcbiAgfSxcbiAgYmF0Y2hJbnN0YW5jZVByb2ZpbGUoKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHtcbiAgICAgICAgdHlwZTogJ0JhdGNoSW5zdGFuY2UnXG4gICAgICB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06Okluc3RhbmNlUHJvZmlsZScgfVxuICAgIH0pO1xuICB9LFxuICBiYXRjaEluc3RhbmNlTGF1bmNoVGVtcGxhdGUoKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHtcbiAgICAgICAgdHlwZTogJ0JhdGNoSW5zdGFuY2UnXG4gICAgICB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFQzI6OkxhdW5jaFRlbXBsYXRlJyB9XG4gICAgfSk7XG4gIH0sXG4gIGJhdGNoU3RhdGVNYWNoaW5lRXhlY3V0aW9uUm9sZSgpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjoge1xuICAgICAgICB0eXBlOiAnQmF0Y2hTdGF0ZU1hY2hpbmUnXG4gICAgICB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnIH1cbiAgICB9KTtcbiAgfSxcbiAgYmF0Y2hTcG90RmxlZXRSb2xlKCkge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3BlY2lmaWVyOiB7XG4gICAgICAgIHR5cGU6ICdCYXRjaFNwb3RGbGVldCdcbiAgICAgIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6Um9sZScgfVxuICAgIH0pO1xuICB9LFxuICBiYXRjaFNlcnZpY2VSb2xlKCkge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3BlY2lmaWVyOiB7XG4gICAgICAgIHR5cGU6ICdCYXRjaFNlcnZpY2UnXG4gICAgICB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnIH1cbiAgICB9KTtcbiAgfSxcbiAgYmF0Y2hKb2JFeGVjdXRpb25Sb2xlKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6Um9sZScgfVxuICAgIH0pO1xuICB9LFxuICBiYXRjaENvbXB1dGVFbnZpcm9ubWVudChzcG90OiBib29sZWFuLCBncHU6IGJvb2xlYW4pIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjoge1xuICAgICAgICB0eXBlOiBgQmF0Y2gtJHtzcG90ID8gJ3Nwb3QnIDogJ29uRGVtYW5kJ30tJHtncHUgPyAnZ3B1JyA6ICcnfWBcbiAgICAgIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkJhdGNoOjpDb21wdXRlRW52aXJvbm1lbnQnIH1cbiAgICB9KTtcbiAgfSxcbiAgYmF0Y2hKb2JRdWV1ZShzcG90OiBib29sZWFuLCBncHU6IGJvb2xlYW4pIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjoge1xuICAgICAgICB0eXBlOiBgQmF0Y2gtJHtzcG90ID8gJ3Nwb3QnIDogJ29uRGVtYW5kJ30tJHtncHUgPyAnZ3B1JyA6ICcnfWBcbiAgICAgIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkJhdGNoOjpKb2JRdWV1ZScgfVxuICAgIH0pO1xuICB9LFxuICBzdWJuZXQocHVibGljU3VibmV0OiBib29sZWFuLCBzdWJuZXRJbmRleDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHtcbiAgICAgICAgdHlwZTogcHVibGljU3VibmV0ID8gJ1B1YmxpYycgOiAnUHJpdmF0ZSdcbiAgICAgIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkVDMjo6U3VibmV0JywgaW5kZXg6IHN1Ym5ldEluZGV4IH1cbiAgICB9KTtcbiAgfSxcbiAgdnBjKCkge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFQzI6OlZQQycgfVxuICAgIH0pO1xuICB9LFxuICB2cGNHYXRld2F5RW5kcG9pbnQodHlwZTogJ3MzJyB8ICdkeW5hbW8tZGInKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogYCR7dHlwZX0tR2F0ZXdheWAgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpWUENFbmRwb2ludCcgfVxuICAgIH0pO1xuICB9LFxuICBkYlN1Ym5ldEdyb3VwKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OlJEUzo6REJTdWJuZXRHcm91cCcgfVxuICAgIH0pO1xuICB9LFxuICBhdXJvcmFEYkNsdXN0ZXIoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6UkRTOjpEQkNsdXN0ZXInIH1cbiAgICB9KTtcbiAgfSxcbiAgYXVyb3JhRGJDbHVzdGVyUGFyYW1ldGVyR3JvdXAoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6UkRTOjpEQkNsdXN0ZXJQYXJhbWV0ZXJHcm91cCcgfVxuICAgIH0pO1xuICB9LFxuICBhdXJvcmFEYkNsdXN0ZXJMb2dHcm91cChzdHBSZXNvdXJjZU5hbWU6IHN0cmluZywgbG9nR3JvdXBUeXBlOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnQ2x1c3RlcicsIHN1YnR5cGU6IGxvZ0dyb3VwVHlwZSB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpMb2dzOjpMb2dHcm91cCcgfVxuICAgIH0pO1xuICB9LFxuICBkYlNlY3VyaXR5R3JvdXAoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpTZWN1cml0eUdyb3VwJyB9XG4gICAgfSk7XG4gIH0sXG4gIGRiSW5zdGFuY2Uoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6UkRTOjpEQkluc3RhbmNlJyB9XG4gICAgfSk7XG4gIH0sXG4gIGRiSW5zdGFuY2VMb2dHcm91cChzdHBSZXNvdXJjZU5hbWU6IHN0cmluZywgbG9nR3JvdXBUeXBlOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnSW5zdGFuY2UnLCBzdWJ0eXBlOiBsb2dHcm91cFR5cGUgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6TG9nczo6TG9nR3JvdXAnIH1cbiAgICB9KTtcbiAgfSxcbiAgb3BlblNlYXJjaERvbWFpbkxvZ0dyb3VwKHN0cFJlc291cmNlTmFtZTogc3RyaW5nLCBsb2dHcm91cFR5cGU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdJbnN0YW5jZScsIHN1YnR5cGU6IGxvZ0dyb3VwVHlwZSB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpMb2dzOjpMb2dHcm91cCcgfVxuICAgIH0pO1xuICB9LFxuICBkYk9wdGlvbkdyb3VwKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OlJEUzo6T3B0aW9uR3JvdXAnIH1cbiAgICB9KTtcbiAgfSxcbiAgZGJJbnN0YW5jZVBhcmFtZXRlckdyb3VwKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OlJEUzo6REJQYXJhbWV0ZXJHcm91cCcgfVxuICAgIH0pO1xuICB9LFxuICBkYlJlcGxpY2Eoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcsIHJlcGxpY2FOdW06IG51bWJlcikge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdSZXBsaWNhJywgdHlwZUluZGV4OiByZXBsaWNhTnVtIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OlJEUzo6REJJbnN0YW5jZScgfVxuICAgIH0pO1xuICB9LFxuICBkYlJlcGxpY2FMb2dHcm91cChzdHBSZXNvdXJjZU5hbWU6IHN0cmluZywgbG9nR3JvdXBUeXBlOiBzdHJpbmcsIHJlcGxpY2FOdW06IG51bWJlcikge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdSZXBsaWNhJywgdHlwZUluZGV4OiByZXBsaWNhTnVtLCBzdWJ0eXBlOiBsb2dHcm91cFR5cGUgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6TG9nczo6TG9nR3JvdXAnIH1cbiAgICB9KTtcbiAgfSxcbiAgZGJSZXBsaWNhUGFyYW1ldGVyR3JvdXAoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcsIHJlcGxpY2FOdW06IG51bWJlcikge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdSZXBsaWNhJywgdHlwZUluZGV4OiByZXBsaWNhTnVtIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OlJEUzo6REJQYXJhbWV0ZXJHcm91cCcgfVxuICAgIH0pO1xuICB9LFxuICBhdXJvcmFEYkluc3RhbmNlKHN0cFJlc291cmNlTmFtZTogc3RyaW5nLCBpbnN0YW5jZU51bTogbnVtYmVyKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OlJEUzo6REJJbnN0YW5jZScsIGluZGV4OiBpbnN0YW5jZU51bSB9XG4gICAgfSk7XG4gIH0sXG4gIGF1cm9yYURiSW5zdGFuY2VQYXJhbWV0ZXJHcm91cChzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdJbnN0YW5jZScgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6UkRTOjpEQlBhcmFtZXRlckdyb3VwJyB9XG4gICAgfSk7XG4gIH0sXG4gIGV2ZW50QnVzUnVsZShzdHBSZXNvdXJjZU5hbWU6IHN0cmluZywgZXZlbnRJbmRleDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHtcbiAgICAgICAgdHlwZTogJ0V2ZW50JyxcbiAgICAgICAgdHlwZUluZGV4OiBldmVudEluZGV4XG4gICAgICB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFdmVudHM6OlJ1bGUnIH1cbiAgICB9KTtcbiAgfSxcbiAgY3VzdG9tVGFnZ2luZ1NjaGVkdWxlUnVsZSgpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnU3RwQ3VzdG9tVGFnZ2luZ1NjaGVkdWxlJyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFdmVudHM6OlJ1bGUnIH1cbiAgICB9KTtcbiAgfSxcbiAgY3VzdG9tVGFnZ2luZ1NjaGVkdWxlUnVsZVBlcm1pc3Npb24oKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ1N0cEN1c3RvbVRhZ2dpbmdTY2hlZHVsZVJ1bGUnIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkxhbWJkYTo6UGVybWlzc2lvbicgfVxuICAgIH0pO1xuICB9LFxuICBjbG91ZFdhdGNoTG9nRXZlbnRTdWJzY3JpcHRpb25GaWx0ZXIoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcsIGV2ZW50SW5kZXg6IG51bWJlcikge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7XG4gICAgICAgIHR5cGU6ICdFdmVudCcsXG4gICAgICAgIHR5cGVJbmRleDogZXZlbnRJbmRleFxuICAgICAgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6TG9nczo6U3Vic2NyaXB0aW9uRmlsdGVyJyB9XG4gICAgfSk7XG4gIH0sXG4gIGV2ZW50U291cmNlTWFwcGluZyhzdHBSZXNvdXJjZU5hbWU6IHN0cmluZywgZXZlbnRJbmRleDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHtcbiAgICAgICAgdHlwZTogJ0V2ZW50JyxcbiAgICAgICAgdHlwZUluZGV4OiBldmVudEluZGV4XG4gICAgICB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpMYW1iZGE6OkV2ZW50U291cmNlTWFwcGluZycgfVxuICAgIH0pO1xuICB9LFxuICBpb3RFdmVudFRvcGljUnVsZShzdHBSZXNvdXJjZU5hbWU6IHN0cmluZywgZXZlbnRJbmRleDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHtcbiAgICAgICAgdHlwZTogJ0V2ZW50JyxcbiAgICAgICAgdHlwZUluZGV4OiBldmVudEluZGV4XG4gICAgICB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpJb1Q6OlRvcGljUnVsZScgfVxuICAgIH0pO1xuICB9LFxuICBraW5lc2lzRXZlbnRDb25zdW1lcihzdHBSZXNvdXJjZU5hbWU6IHN0cmluZywgZXZlbnRJbmRleDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHtcbiAgICAgICAgdHlwZTogJ0V2ZW50JyxcbiAgICAgICAgdHlwZUluZGV4OiBldmVudEluZGV4XG4gICAgICB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpLaW5lc2lzOjpTdHJlYW1Db25zdW1lcicgfVxuICAgIH0pO1xuICB9LFxuICBsYW1iZGEoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcsIGlzU3RwU2VydmljZUZ1bmN0aW9uPzogYm9vbGVhbikge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiBpc1N0cFNlcnZpY2VGdW5jdGlvbiA/IHsgdHlwZTogJ0N1c3RvbVJlc291cmNlJyB9IDogdW5kZWZpbmVkLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpMYW1iZGE6OkZ1bmN0aW9uJyB9XG4gICAgfSk7XG4gIH0sXG4gIGxhbWJkYVN0cEFsaWFzKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHtcbiAgICAgICAgdHlwZTogJ1N0cCdcbiAgICAgIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkxhbWJkYTo6QWxpYXMnIH1cbiAgICB9KTtcbiAgfSxcbiAgbGFtYmRhVXJsKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkxhbWJkYTo6VXJsJyB9XG4gICAgfSk7XG4gIH0sXG4gIGNvZGVEZXBsb3lEZXBsb3ltZW50R3JvdXAoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6Q29kZURlcGxveTo6RGVwbG95bWVudEdyb3VwJyB9XG4gICAgfSk7XG4gIH0sXG4gIGN1c3RvbVJlc291cmNlKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZScgfVxuICAgIH0pO1xuICB9LFxuICBzY3JpcHRDdXN0b21SZXNvdXJjZShzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdTY3JpcHQnIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZScgfVxuICAgIH0pO1xuICB9LFxuICBiYXRjaFN0YXRlTWFjaGluZShzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdKb2JFeGVjdXRpb24nIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OlN0ZXBGdW5jdGlvbnM6OlN0YXRlTWFjaGluZScgfVxuICAgIH0pO1xuICB9LFxuICBiYXRjaEpvYkRlZmluaXRpb24oc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6QmF0Y2g6OkpvYkRlZmluaXRpb24nIH1cbiAgICB9KTtcbiAgfSxcbiAgYmF0Y2hKb2JMb2dHcm91cChzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpMb2dzOjpMb2dHcm91cCcgfVxuICAgIH0pO1xuICB9LFxuICBnbG9iYWxTdGF0ZU1hY2hpbmVzUm9sZSgpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjoge1xuICAgICAgICB0eXBlOiAnR2xvYmFsU3RhdGVNYWNoaW5lJ1xuICAgICAgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpSb2xlJyB9XG4gICAgfSk7XG4gIH0sXG4gIHN0YXRlTWFjaGluZShzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpTdGVwRnVuY3Rpb25zOjpTdGF0ZU1hY2hpbmUnIH1cbiAgICB9KTtcbiAgfSxcbiAgaW50ZXJuZXRHYXRld2F5KCkge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFQzI6OkludGVybmV0R2F0ZXdheScgfVxuICAgIH0pO1xuICB9LFxuICB2cGNHYXRld2F5QXR0YWNobWVudCgpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpWUENHYXRld2F5QXR0YWNobWVudCcgfVxuICAgIH0pO1xuICB9LFxuICByb3V0ZVRhYmxlKHB1YmxpY1N1Ym5ldDogYm9vbGVhbiwgc3VibmV0SW5kZXg6IG51bWJlcikge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6IHB1YmxpY1N1Ym5ldCA/ICdQdWJsaWNTdWJuZXQnIDogJ1ByaXZhdGVTdWJuZXQnLCB0eXBlSW5kZXg6IHN1Ym5ldEluZGV4IH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkVDMjo6Um91dGVUYWJsZScgfVxuICAgIH0pO1xuICB9LFxuICBpbnRlcm5ldEdhdGV3YXlSb3V0ZShzdWJuZXRJbmRleDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ0ludGVybmV0R2F0ZXdheScgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpSb3V0ZScsIGluZGV4OiBzdWJuZXRJbmRleCB9XG4gICAgfSk7XG4gIH0sXG4gIGF0bGFzTW9uZ29WcGNSb3V0ZShwdWJsaWNTdWJuZXRUYWJsZTogYm9vbGVhbiwgc3VibmV0SW5kZXg6IG51bWJlcikge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6IGBBdGxhc01vbmdvJHtwdWJsaWNTdWJuZXRUYWJsZSA/ICdQdWJsaWNTdWJuZXQnIDogJ1ByaXZhdGVTdWJuZXQnfWAgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpSb3V0ZScsIGluZGV4OiBzdWJuZXRJbmRleCB9XG4gICAgfSk7XG4gIH0sXG4gIHJvdXRlVGFibGVUb1N1Ym5ldEFzc29jaWF0aW9uKHB1YmxpY1N1Ym5ldDogYm9vbGVhbiwgc3VibmV0SW5kZXg6IG51bWJlcikge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6IHB1YmxpY1N1Ym5ldCA/ICdQdWJsaWNTdWJuZXQnIDogJ1ByaXZhdGVTdWJuZXQnLCB0eXBlSW5kZXg6IHN1Ym5ldEluZGV4IH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkVDMjo6U3VibmV0Um91dGVUYWJsZUFzc29jaWF0aW9uJyB9XG4gICAgfSk7XG4gIH0sXG4gIG5hdEdhdGV3YXkoYXpJbmRleDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkVDMjo6TmF0R2F0ZXdheScsIGluZGV4OiBhekluZGV4IH1cbiAgICB9KTtcbiAgfSxcbiAgbmF0RWxhc3RpY0lwKGF6SW5kZXg6IG51bWJlcikge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdOYXQnIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkVDMjo6RUlQJywgaW5kZXg6IGF6SW5kZXggfVxuICAgIH0pO1xuICB9LFxuICBuYXRSb3V0ZShzdWJuZXRJbmRleDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ05hdFByaXZhdGVTdWJuZXQnIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkVDMjo6Um91dGUnLCBpbmRleDogc3VibmV0SW5kZXggfVxuICAgIH0pO1xuICB9LFxuICBldmVudEJ1cyhzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFdmVudHM6OkV2ZW50QnVzJyB9XG4gICAgfSk7XG4gIH0sXG4gIGV2ZW50QnVzQXJjaGl2ZShzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFdmVudHM6OkFyY2hpdmUnIH1cbiAgICB9KTtcbiAgfSxcbiAgZWNzQ2x1c3RlcihzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFQ1M6OkNsdXN0ZXInIH1cbiAgICB9KTtcbiAgfSxcbiAgZWNzVGFza0RlZmluaXRpb24oc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6RUNTOjpUYXNrRGVmaW5pdGlvbicgfVxuICAgIH0pO1xuICB9LFxuICBlY3NTZXJ2aWNlKHN0cFJlc291cmNlTmFtZTogc3RyaW5nLCBibHVlR3JlZW46IGJvb2xlYW4pIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogYmx1ZUdyZWVuID8geyB0eXBlOiAnQmx1ZUdyZWVuJyB9IDogdW5kZWZpbmVkLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFQ1M6OlNlcnZpY2UnIH1cbiAgICB9KTtcbiAgfSxcbiAgZWNzRXhlY3V0aW9uUm9sZSgpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnRWNzRXhlY3V0aW9uJyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnIH1cbiAgICB9KTtcbiAgfSxcbiAgZWNzRWMySW5zdGFuY2VSb2xlKCkge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3BlY2lmaWVyOiB7XG4gICAgICAgIHR5cGU6ICdFY3NJbnN0YW5jZSdcbiAgICAgIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6Um9sZScgfVxuICAgIH0pO1xuICB9LFxuICBlY3NFYzJBdXRvc2NhbGluZ0dyb3VwV2FybVBvb2woc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6QXV0b1NjYWxpbmc6Oldhcm1Qb29sJyB9XG4gICAgfSk7XG4gIH0sXG4gIGV2ZW50QnVzUm9sZUZvclNjaGVkdWxlZEluc3RhbmNlUmVmcmVzaCgpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnU2NoZWR1bGVkSW5zdGFuY2VSZWZyZXNoJyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnIH1cbiAgICB9KTtcbiAgfSxcbiAgc2NoZWR1bGVyUnVsZUZvclNjaGVkdWxlZEluc3RhbmNlUmVmcmVzaChzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdTY2hlZHVsZWRJbnN0YW5jZVJlZnJlc2gnIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkV2ZW50czo6UnVsZScgfVxuICAgIH0pO1xuICB9LFxuICBlY3NFYzJJbnN0YW5jZUxhdW5jaFRlbXBsYXRlKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkVDMjo6TGF1bmNoVGVtcGxhdGUnIH1cbiAgICB9KTtcbiAgfSxcbiAgZWNzRWMyQXV0b3NjYWxpbmdHcm91cChzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpBdXRvU2NhbGluZzo6QXV0b1NjYWxpbmdHcm91cCcgfVxuICAgIH0pO1xuICB9LFxuICBlY3NFYzJGb3JjZURlbGV0ZUF1dG9zY2FsaW5nR3JvdXBDdXN0b21SZXNvdXJjZShzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdGb3JjZURlbGV0ZUFzZycgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGb3JtYXRpb246OkN1c3RvbVJlc291cmNlJyB9XG4gICAgfSk7XG4gIH0sXG4gIGVjc0Rpc2FibGVNYW5hZ2VkVGVybWluYXRpb25Qcm90ZWN0aW9uQ3VzdG9tUmVzb3VyY2Uoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnRGlzYWJsZU1hbmFnZWRUZXJtaW5hdGlvblByb3RlY3Rpb24nIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZScgfVxuICAgIH0pO1xuICB9LFxuICBlY3NEZXJlZ2lzdGVyVGFyZ2V0c0N1c3RvbVJlc291cmNlKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ0RlcmVnaXN0ZXJUYXJnZXRzJyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6Q3VzdG9tUmVzb3VyY2UnIH1cbiAgICB9KTtcbiAgfSxcblxuICBlY3NFYzJDYXBhY2l0eVByb3ZpZGVyKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkVDUzo6Q2FwYWNpdHlQcm92aWRlcicgfVxuICAgIH0pO1xuICB9LFxuICBlY3NFYzJDYXBhY2l0eVByb3ZpZGVyQXNzb2NpYXRpb24oc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6RUNTOjpDbHVzdGVyQ2FwYWNpdHlQcm92aWRlckFzc29jaWF0aW9ucycgfVxuICAgIH0pO1xuICB9LFxuICBlY3NFYzJJbnN0YW5jZVByb2ZpbGUoKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHtcbiAgICAgICAgdHlwZTogJ0Vjc0luc3RhbmNlJ1xuICAgICAgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpJbnN0YW5jZVByb2ZpbGUnIH1cbiAgICB9KTtcbiAgfSxcbiAgZWNzVGFza1JvbGUoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpSb2xlJyB9XG4gICAgfSk7XG4gIH0sXG4gIGVjc0F1dG9TY2FsaW5nUm9sZSgpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnRWNzQXV0b1NjYWxlJyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnIH1cbiAgICB9KTtcbiAgfSxcbiAgLy8gZWNzU2NoZWR1bGVkTWFpbnRlbmFuY2VFdmVudEJ1c1J1bGUoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgLy8gICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgLy8gICAgIHN0cFJlc291cmNlTmFtZSxcbiAgLy8gICAgIHNwZWNpZmllcjogeyB0eXBlOiAnU2NoZWR1bGVkTWFpbnRlbmFuY2UnIH0sXG4gIC8vICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkV2ZW50czo6UnVsZScgfVxuICAvLyAgIH0pLnJlcGxhY2VBbGwoJ18nLCAnJyk7XG4gIC8vIH0sXG4gIGVjc1NjaGVkdWxlZE1haW50ZW5hbmNlTGFtYmRhUGVybWlzc2lvbihzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdTY2hlZHVsZWRNYWludGVuYW5jZScgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6TGFtYmRhOjpQZXJtaXNzaW9uJyB9XG4gICAgfSkucmVwbGFjZUFsbCgnXycsICcnKTtcbiAgfSxcbiAgYmFzdGlvbkVjMkxhdW5jaFRlbXBsYXRlKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkVDMjo6TGF1bmNoVGVtcGxhdGUnIH1cbiAgICB9KTtcbiAgfSxcbiAgYmFzdGlvbkVjMkluc3RhbmNlUHJvZmlsZShzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06Okluc3RhbmNlUHJvZmlsZScgfVxuICAgIH0pO1xuICB9LFxuICBiYXN0aW9uRWMyQXV0b3NjYWxpbmdHcm91cChzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpBdXRvU2NhbGluZzo6QXV0b1NjYWxpbmdHcm91cCcgfVxuICAgIH0pO1xuICB9LFxuICBiYXN0aW9uU2VjdXJpdHlHcm91cChzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFQzI6OlNlY3VyaXR5R3JvdXAnIH1cbiAgICB9KTtcbiAgfSxcbiAgYmFzdGlvbkN3QWdlbnRTc21Bc3NvY2lhdGlvbihzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdDd0FnZW50JyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpTU006OkFzc29jaWF0aW9uJyB9XG4gICAgfSk7XG4gIH0sXG4gIGJhc3Rpb25Tc21BZ2VudFNzbUFzc29jaWF0aW9uKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ1NzbUFnZW50JyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpTU006OkFzc29jaWF0aW9uJyB9XG4gICAgfSk7XG4gIH0sXG4gIGJhc3Rpb25Sb2xlKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6Um9sZScgfVxuICAgIH0pO1xuICB9LFxuICBiYXN0aW9uTG9nR3JvdXAoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcsIGxvZ1R5cGU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6IHBhc2NhbENhc2UobG9nVHlwZSkgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6TG9nczo6TG9nR3JvdXAnIH1cbiAgICB9KTtcbiAgfSxcbiAgYmFzdGlvbkNsb3Vkd2F0Y2hTc21Eb2N1bWVudCgpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnQmFzdGlvbkNsb3Vkd2F0Y2hBZ2VudCcgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6U1NNOjpEb2N1bWVudCcgfVxuICAgIH0pO1xuICB9LFxuICBzZXJ2aWNlRGlzY292ZXJ5RWNzU2VydmljZShzdHBSZXNvdXJjZU5hbWU6IHN0cmluZywgc2VydmljZVRhcmdldENvbnRhaW5lclBvcnQ6IG51bWJlcikge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6IGBQb3J0JHtzZXJ2aWNlVGFyZ2V0Q29udGFpbmVyUG9ydH1EaXNjb3ZlcnlgIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OlNlcnZpY2VEaXNjb3Zlcnk6OlNlcnZpY2UnIH1cbiAgICB9KTtcbiAgfSxcbiAgd29ya2xvYWRTZWN1cml0eUdyb3VwKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkVDMjo6U2VjdXJpdHlHcm91cCcgfVxuICAgIH0pO1xuICB9LFxuICBsb2FkQmFsYW5jZXJTZWN1cml0eUdyb3VwKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ0xiJyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFQzI6OlNlY3VyaXR5R3JvdXAnIH1cbiAgICB9KTtcbiAgfSxcbiAgdGFyZ2V0R3JvdXAoe1xuICAgIGxvYWRCYWxhbmNlck5hbWUsXG4gICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgIHRhcmdldENvbnRhaW5lclBvcnQsXG4gICAgYmx1ZUdyZWVuXG4gIH06IHtcbiAgICBzdHBSZXNvdXJjZU5hbWU6IHN0cmluZztcbiAgICBsb2FkQmFsYW5jZXJOYW1lOiBzdHJpbmc7XG4gICAgdGFyZ2V0Q29udGFpbmVyUG9ydD86IG51bWJlcjtcbiAgICBibHVlR3JlZW4/OiBib29sZWFuO1xuICB9KSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHtcbiAgICAgICAgdHlwZTogYCR7bG9hZEJhbGFuY2VyTmFtZX0ke3RhcmdldENvbnRhaW5lclBvcnQgPyBgVG9Qb3J0JHt0YXJnZXRDb250YWluZXJQb3J0fWAgOiAnJ30ke2JsdWVHcmVlbiA/ICdCRycgOiAnJ31gXG4gICAgICB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFbGFzdGljTG9hZEJhbGFuY2luZ1YyOjpUYXJnZXRHcm91cCcgfVxuICAgIH0pO1xuICB9LFxuICBsYW1iZGFSb2xlKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6Um9sZScgfVxuICAgIH0pO1xuICB9LFxuICBkZWZhdWx0TGFtYmRhRnVuY3Rpb25Sb2xlKCkge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdMYW1iZGEnIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6Um9sZScgfVxuICAgIH0pO1xuICB9LFxuICBsYW1iZGFQZXJtaXNzaW9uKHN0cFJlc291cmNlTmFtZTogc3RyaW5nLCBldmVudEluZGV4OiBudW1iZXIpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnRXZlbnQnLCB0eXBlSW5kZXg6IGV2ZW50SW5kZXggfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6TGFtYmRhOjpQZXJtaXNzaW9uJyB9XG4gICAgfSk7XG4gIH0sXG4gIGxhbWJkYVB1YmxpY1VybFBlcm1pc3Npb24oc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnUHVibGljVXJsJyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpMYW1iZGE6OlBlcm1pc3Npb24nIH1cbiAgICB9KTtcbiAgfSxcbiAgbGFtYmRhSW90RXZlbnRQZXJtaXNzaW9uKHdvcmtsb2FkTmFtZTogc3RyaW5nLCBldmVudEluZGV4OiBudW1iZXIpIHtcbiAgICByZXR1cm4gcGFzY2FsQ2FzZShgJHt3b3JrbG9hZE5hbWV9LUV2ZW50JHtldmVudEluZGV4fS1sYW1iZGEtaW90RXZlbnRQZXJtaXNzaW9uYCk7XG4gIH0sXG4gIGxhbWJkYVRhcmdldEdyb3VwUGVybWlzc2lvbihzdHBSZXNvdXJjZU5hbWU6IHN0cmluZywgbG9hZEJhbGFuY2VyTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogYCR7bG9hZEJhbGFuY2VyTmFtZX1UYXJnZXRHcm91cGAgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6TGFtYmRhOjpQZXJtaXNzaW9uJyB9XG4gICAgfSk7XG4gIH0sXG4gIGh0dHBBcGkoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6QXBpR2F0ZXdheVYyOjpBcGknIH1cbiAgICB9KTtcbiAgfSxcbiAgaHR0cEFwaUxvZ0dyb3VwKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkxvZ3M6OkxvZ0dyb3VwJyB9XG4gICAgfSk7XG4gIH0sXG4gIGh0dHBBcGlMYW1iZGFJbnRlZ3JhdGlvbih7XG4gICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgIHN0cEh0dHBBcGlHYXRld2F5TmFtZVxuICB9OiB7XG4gICAgc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmc7XG4gICAgc3RwSHR0cEFwaUdhdGV3YXlOYW1lOiBzdHJpbmc7XG4gIH0pIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiBzdHBIdHRwQXBpR2F0ZXdheU5hbWUgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6QXBpR2F0ZXdheVYyOjpJbnRlZ3JhdGlvbicgfVxuICAgIH0pO1xuICB9LFxuICBodHRwQXBpQ29udGFpbmVyV29ya2xvYWRJbnRlZ3JhdGlvbih7XG4gICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgIHN0cEh0dHBBcGlHYXRld2F5TmFtZSxcbiAgICB0YXJnZXRDb250YWluZXJQb3J0XG4gIH06IHtcbiAgICBzdHBSZXNvdXJjZU5hbWU6IHN0cmluZztcbiAgICB0YXJnZXRDb250YWluZXJQb3J0OiBudW1iZXI7XG4gICAgc3RwSHR0cEFwaUdhdGV3YXlOYW1lOiBzdHJpbmc7XG4gIH0pIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiBgJHtzdHBIdHRwQXBpR2F0ZXdheU5hbWV9VG9Qb3J0JHt0YXJnZXRDb250YWluZXJQb3J0fWAgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6QXBpR2F0ZXdheVYyOjpJbnRlZ3JhdGlvbicgfVxuICAgIH0pO1xuICB9LFxuICBodHRwQXBpQXV0aG9yaXplcih7IG1ldGhvZCwgcGF0aCwgc3RwUmVzb3VyY2VOYW1lIH06IHsgbWV0aG9kOiBIdHRwTWV0aG9kOyBwYXRoOiBzdHJpbmc7IHN0cFJlc291cmNlTmFtZTogc3RyaW5nIH0pIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZTogJycsXG4gICAgICBzcGVjaWZpZXI6IHtcbiAgICAgICAgdHlwZTogYCR7c3RwUmVzb3VyY2VOYW1lfS0ke21ldGhvZCA9PT0gJyonID8gJ0FueScgOiBtZXRob2R9LSR7cGF0aCA9PT0gJyonID8gJ0RlZmF1bHQnIDogcGF0aH1gXG4gICAgICB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpBcGlHYXRld2F5VjI6OkF1dGhvcml6ZXInIH1cbiAgICB9KTtcbiAgfSxcbiAgaHR0cEFwaVJvdXRlKHsgbWV0aG9kLCBwYXRoLCBzdHBSZXNvdXJjZU5hbWUgfTogeyBtZXRob2Q6IEh0dHBNZXRob2Q7IHBhdGg6IHN0cmluZzsgc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcgfSkge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lOiAnJyxcbiAgICAgIHNwZWNpZmllcjoge1xuICAgICAgICB0eXBlOiBgJHtzdHBSZXNvdXJjZU5hbWV9LSR7bWV0aG9kID09PSAnKicgPyAnQW55JyA6IG1ldGhvZH0tJHtwYXRoID09PSAnKicgPyAnRGVmYXVsdCcgOiBwYXRofWBcbiAgICAgIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkFwaUdhdGV3YXlWMjo6Um91dGUnIH1cbiAgICB9KTtcbiAgfSxcbiAgaHR0cEFwaVZwY0xpbmsoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6QXBpR2F0ZXdheVYyOjpWcGNMaW5rJyB9XG4gICAgfSk7XG4gIH0sXG4gIGh0dHBBcGlWcGNMaW5rU2VjdXJpdHlHcm91cChzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdWcGNMaW5rJyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFQzI6OlNlY3VyaXR5R3JvdXAnIH1cbiAgICB9KTtcbiAgfSxcbiAgaHR0cEFwaUxhbWJkYVBlcm1pc3Npb24oe1xuICAgIHN0cFJlc291cmNlTmFtZU9mTGFtYmRhLFxuICAgIHN0cFJlc291cmNlTmFtZU9mSHR0cEFwaUdhdGV3YXlcbiAgfToge1xuICAgIHN0cFJlc291cmNlTmFtZU9mTGFtYmRhOiBzdHJpbmc7XG4gICAgc3RwUmVzb3VyY2VOYW1lT2ZIdHRwQXBpR2F0ZXdheTogc3RyaW5nO1xuICB9KSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWU6IHN0cFJlc291cmNlTmFtZU9mTGFtYmRhLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6IHN0cFJlc291cmNlTmFtZU9mSHR0cEFwaUdhdGV3YXkgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6TGFtYmRhOjpQZXJtaXNzaW9uJyB9XG4gICAgfSk7XG4gIH0sXG4gIGh0dHBBcGlTdGFnZShzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpBcGlHYXRld2F5VjI6OlN0YWdlJyB9XG4gICAgfSk7XG4gIH0sXG4gIGh0dHBBcGlEb21haW4oZnVsbHlRdWFsaWZpZWREb21haW5OYW1lOiBzdHJpbmcpIHtcbiAgICAvLyB3ZSBkbyBub3QgYnVpbGQgYnVpbGQgdGhlIHJlc291cmNlIG5hbWUgY29udmVudGlvbmFsbHkgdGhyb3VnaCBzdHBSZXNvdXJjZU5hbWVcbiAgICAvLyB0aGlzIGlzIGR1ZSB0byB1cGRhdGUgYmVoYXZpb3JzIG9mIENsb3VkZm9ybWF0aW9uXG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWU6ICcnLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6IGdldFNwZWNpZmllckZvckRvbWFpblJlc291cmNlKGZ1bGx5UXVhbGlmaWVkRG9tYWluTmFtZSkgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6QXBpR2F0ZXdheVYyOjpEb21haW5OYW1lJyB9XG4gICAgfSk7XG4gIH0sXG4gIGh0dHBBcGlEZWZhdWx0RG9tYWluKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkFwaUdhdGV3YXlWMjo6RG9tYWluTmFtZScgfVxuICAgIH0pO1xuICB9LFxuICBodHRwQXBpRG9tYWluTWFwcGluZyhmdWxseVF1YWxpZmllZERvbWFpbk5hbWU6IHN0cmluZykge1xuICAgIC8vIHdlIGRvIG5vdCBidWlsZCBidWlsZCB0aGUgcmVzb3VyY2UgbmFtZSBjb252ZW50aW9uYWxseSB0aHJvdWdoIHN0cFJlc291cmNlTmFtZVxuICAgIC8vIHRoaXMgaXMgZHVlIHRvIHVwZGF0ZSBiZWhhdmlvcnMgb2YgQ2xvdWRmb3JtYXRpb25cbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZTogJycsXG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogZ2V0U3BlY2lmaWVyRm9yRG9tYWluUmVzb3VyY2UoZnVsbHlRdWFsaWZpZWREb21haW5OYW1lKSB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpBcGlHYXRld2F5VjI6OkFwaU1hcHBpbmcnIH1cbiAgICB9KTtcbiAgfSxcbiAgaHR0cEFwaURlZmF1bHREb21haW5NYXBwaW5nKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkFwaUdhdGV3YXlWMjo6QXBpTWFwcGluZycgfVxuICAgIH0pO1xuICB9LFxuICBsaXN0ZW5lcihleHBvc3VyZVBvcnQ6IG51bWJlciwgc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiBgUG9ydCR7ZXhwb3N1cmVQb3J0fWAgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6RWxhc3RpY0xvYWRCYWxhbmNpbmdWMjo6TGlzdGVuZXInIH1cbiAgICB9KTtcbiAgfSxcbiAgbGlzdGVuZXJSdWxlKGV4cG9zdXJlUG9ydDogbnVtYmVyLCBzdHBSZXNvdXJjZU5hbWU6IHN0cmluZywgcnVsZVByaW9yaXR5OiBudW1iZXIpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiBgUG9ydCR7ZXhwb3N1cmVQb3J0fVByaW9yaXR5JHtydWxlUHJpb3JpdHl9YCB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFbGFzdGljTG9hZEJhbGFuY2luZ1YyOjpMaXN0ZW5lclJ1bGUnIH1cbiAgICB9KTtcbiAgfSxcbiAgbGlzdGVuZXJDZXJ0aWZpY2F0ZUxpc3QoZXhwb3N1cmVQb3J0OiBudW1iZXIsIHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogYFBvcnQke2V4cG9zdXJlUG9ydH1gIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkVsYXN0aWNMb2FkQmFsYW5jaW5nVjI6Okxpc3RlbmVyQ2VydGlmaWNhdGUnIH1cbiAgICB9KTtcbiAgfSxcbiAgbG9hZEJhbGFuY2VyKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkVsYXN0aWNMb2FkQmFsYW5jaW5nVjI6OkxvYWRCYWxhbmNlcicgfVxuICAgIH0pO1xuICB9LFxuICBlY3NMb2dHcm91cChzdHBSZXNvdXJjZU5hbWU6IHN0cmluZywgY29udGFpbmVyTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogY29udGFpbmVyTmFtZSB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpMb2dzOjpMb2dHcm91cCcgfVxuICAgIH0pO1xuICB9LFxuICBhdXRvU2NhbGluZ1RhcmdldChzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpBcHBsaWNhdGlvbkF1dG9TY2FsaW5nOjpTY2FsYWJsZVRhcmdldCcgfVxuICAgIH0pO1xuICB9LFxuICBkeW5hbW9BdXRvU2NhbGluZ1RhcmdldChzdHBSZXNvdXJjZU5hbWU6IHN0cmluZywgbWV0cmljOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiBtZXRyaWMgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6QXBwbGljYXRpb25BdXRvU2NhbGluZzo6U2NhbGFibGVUYXJnZXQnIH1cbiAgICB9KTtcbiAgfSxcbiAgYXV0b1NjYWxpbmdQb2xpY3koc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcsIG1ldHJpYzogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogbWV0cmljIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkFwcGxpY2F0aW9uQXV0b1NjYWxpbmc6OlNjYWxpbmdQb2xpY3knIH1cbiAgICB9KTtcbiAgfSxcbiAgY3VzdG9tUmVzb3VyY2VTM0V2ZW50cygpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnRXZlbnRzJyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6Q3VzdG9tUmVzb3VyY2UnIH1cbiAgICB9KTtcbiAgfSxcbiAgLy8gQGRlcHJlY2F0ZWRcbiAgLy8gc3RhY2t0YXBlU2VydmljZUN1c3RvbVJlc291cmNlRWRnZUZ1bmN0aW9ucygpIHtcbiAgLy8gICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgLy8gICAgIHNwZWNpZmllcjogeyB0eXBlOiAnRWRnZUZ1bmN0aW9ucycgfSxcbiAgLy8gICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGb3JtYXRpb246OkN1c3RvbVJlc291cmNlJyB9XG4gIC8vICAgfSk7XG4gIC8vIH0sXG4gIGN1c3RvbVJlc291cmNlU2Vuc2l0aXZlRGF0YSgpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnU2Vuc2l0aXZlRGF0YScgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGb3JtYXRpb246OkN1c3RvbVJlc291cmNlJyB9XG4gICAgfSk7XG4gIH0sXG4gIGN1c3RvbVJlc291cmNlQWNjZXB0VnBjUGVlcmluZ3MoKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ0FjY2VwdFZwY1BlZXJpbmdzJyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6Q3VzdG9tUmVzb3VyY2UnIH1cbiAgICB9KTtcbiAgfSxcbiAgY3VzdG9tUmVzb3VyY2VEZWZhdWx0RG9tYWluQ2VydCgpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnRGVmYXVsdERvbWFpbkNlcnQnIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZScgfVxuICAgIH0pO1xuICB9LFxuICBjdXN0b21SZXNvdXJjZUVkZ2VMYW1iZGFCdWNrZXQoKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ0VkZ2VMYW1iZGFCdWNrZXQnIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZScgfVxuICAgIH0pO1xuICB9LFxuICBjdXN0b21SZXNvdXJjZUVkZ2VMYW1iZGEoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnRWRnZUxhbWJkYScgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGb3JtYXRpb246OkN1c3RvbVJlc291cmNlJyB9XG4gICAgfSk7XG4gIH0sXG4gIGN1c3RvbVJlc291cmNlRGVmYXVsdERvbWFpbihzdHBSZXNvdXJjZU5hbWU6IHN0cmluZywgY2RuPzogYm9vbGVhbikge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6IGAke2NkbiA/ICdDZG4nIDogJyd9RGVmYXVsdERvbWFpbmAgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGb3JtYXRpb246OkN1c3RvbVJlc291cmNlJyB9XG4gICAgfSk7XG4gIH0sXG4gIGN1c3RvbVJlc291cmNlRGF0YWJhc2VEZWxldGlvblByb3RlY3Rpb24oc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnRGVsZXRpb25Qcm90ZWN0aW9uJyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6Q3VzdG9tUmVzb3VyY2UnIH1cbiAgICB9KTtcbiAgfSxcbiAgdXNlclBvb2woc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6Q29nbml0bzo6VXNlclBvb2wnIH1cbiAgICB9KTtcbiAgfSxcbiAgdXNlclBvb2xDbGllbnQoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6Q29nbml0bzo6VXNlclBvb2xDbGllbnQnIH1cbiAgICB9KTtcbiAgfSxcbiAgdXNlclBvb2xEb21haW4oc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6Q29nbml0bzo6VXNlclBvb2xEb21haW4nIH1cbiAgICB9KTtcbiAgfSxcbiAgaWRlbnRpdHlQcm92aWRlcihzdHBSZXNvdXJjZU5hbWU6IHN0cmluZywgdHlwZTogU3RwVXNlckF1dGhQb29sWydpZGVudGl0eVByb3ZpZGVycyddW251bWJlcl1bJ3R5cGUnXSkge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGUgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6Q29nbml0bzo6VXNlclBvb2xJZGVudGl0eVByb3ZpZGVyJyB9XG4gICAgfSk7XG4gIH0sXG4gIGNvZ25pdG9MYW1iZGFIb29rUGVybWlzc2lvbihzdHBSZXNvdXJjZU5hbWU6IHN0cmluZywgaG9va05hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6IGhvb2tOYW1lIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkxhbWJkYTo6UGVybWlzc2lvbicgfVxuICAgIH0pO1xuICB9LFxuICBjb2duaXRvVXNlclBvb2xEZXRhaWxzQ3VzdG9tUmVzb3VyY2Uoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnVXNlclBvb2xEZXRhaWxzJyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6Q3VzdG9tUmVzb3VyY2UnIH1cbiAgICB9KTtcbiAgfSxcbiAgdXNlclBvb2xVaUN1c3RvbWl6YXRpb25BdHRhY2htZW50KHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkNvZ25pdG86OlVzZXJQb29sVUlDdXN0b21pemF0aW9uQXR0YWNobWVudCcgfVxuICAgIH0pO1xuICB9LFxuICBzZXJ2aWNlRGlzY292ZXJ5UHJpdmF0ZU5hbWVzcGFjZSgpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnRGlzY292ZXJ5JyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpTZXJ2aWNlRGlzY292ZXJ5OjpTZXJ2aWNlJyB9XG4gICAgfSk7XG4gIH0sXG4gIGxhbWJkYUNvZGVEZXBsb3lBcHAoKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ0xhbWJkYUNvZGVEZXBsb3knIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkNvZGVEZXBsb3k6OkFwcGxpY2F0aW9uJyB9XG4gICAgfSk7XG4gIH0sXG4gIGVjc0NvZGVEZXBsb3lBcHAoKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ0VDU0NvZGVEZXBsb3knIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkNvZGVEZXBsb3k6OkFwcGxpY2F0aW9uJyB9XG4gICAgfSk7XG4gIH0sXG4gIHN0YWNrQnVkZ2V0KHN0YWNrTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogcGFzY2FsQ2FzZShzdGFja05hbWUpLnJlcGxhY2VBbGwoJ18nLCAnJykgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6QnVkZ2V0czo6QnVkZ2V0JyB9XG4gICAgfSk7XG4gIH0sXG4gIHVwc3Rhc2hSZWRpc0RhdGFiYXNlKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdVcHN0YXNoOjpEYXRhYmFzZXNWMTo6RGF0YWJhc2UnIH1cbiAgICB9KTtcbiAgfSxcbiAgdXBzdGFzaENyZWRlbnRpYWxzUHJvdmlkZXIoKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ1Vwc3Rhc2hDcmVkZW50aWFsc1Byb3ZpZGVyJyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6Q3VzdG9tUmVzb3VyY2UnIH1cbiAgICB9KTtcbiAgfSxcbiAgY2xvdWR3YXRjaEFsYXJtKHN0YWNrdGFwZUFsYXJtTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWU6IHN0YWNrdGFwZUFsYXJtTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRXYXRjaDo6QWxhcm0nIH1cbiAgICB9KS5yZXBsYWNlQWxsKCdfJywgJycpO1xuICB9LFxuICBjbG91ZHdhdGNoQWxhcm1FdmVudEJ1c05vdGlmaWNhdGlvblJ1bGUoc3RhY2t0YXBlQWxhcm1OYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZTogc3RhY2t0YXBlQWxhcm1OYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdOb3RpZmljYXRpb24nIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkV2ZW50czo6UnVsZScgfVxuICAgIH0pLnJlcGxhY2VBbGwoJ18nLCAnJyk7XG4gIH0sXG4gIGNsb3Vkd2F0Y2hBbGFybUV2ZW50QnVzTm90aWZpY2F0aW9uUnVsZUxhbWJkYVBlcm1pc3Npb24oc3RhY2t0YXBlQWxhcm1OYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZTogc3RhY2t0YXBlQWxhcm1OYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdOb3RpZmljYXRpb24nIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkxhbWJkYTo6UGVybWlzc2lvbicgfVxuICAgIH0pLnJlcGxhY2VBbGwoJ18nLCAnJyk7XG4gIH0sXG4gIHNxc1F1ZXVlKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OlNRUzo6UXVldWUnIH1cbiAgICB9KS5yZXBsYWNlQWxsKCdfJywgJycpO1xuICB9LFxuICBzcXNRdWV1ZVBvbGljeShzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpTUVM6OlF1ZXVlUG9saWN5JyB9XG4gICAgfSk7XG4gIH0sXG4gIHNuc1RvcGljKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OlNOUzo6VG9waWMnIH1cbiAgICB9KS5yZXBsYWNlQWxsKCdfJywgJycpO1xuICB9LFxuICB3ZWJBcHBGaXJld2FsbEN1c3RvbVJlc291cmNlKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ1dlYkFwcEZpcmV3YWxsJyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6Q3VzdG9tUmVzb3VyY2UnIH1cbiAgICB9KTtcbiAgfSxcbiAgd2ViQXBwRmlyZXdhbGxBc3NvY2lhdGlvbihzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpXQUZ2Mjo6V2ViQUNMQXNzb2NpYXRpb24nIH1cbiAgICB9KTtcbiAgfSxcbiAgb3BlblNlYXJjaERvbWFpbihzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpPcGVuU2VhcmNoU2VydmljZTo6RG9tYWluJyB9XG4gICAgfSk7XG4gIH0sXG4gIG9wZW5TZWFyY2hDdXN0b21SZXNvdXJjZShzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdPcGVuU2VhcmNoJyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6Q3VzdG9tUmVzb3VyY2UnIH1cbiAgICB9KTtcbiAgfSxcbiAgb3BlblNlYXJjaFNlY3VyaXR5R3JvdXAoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpTZWN1cml0eUdyb3VwJyB9XG4gICAgfSk7XG4gIH0sXG4gIGxvZ0ZvcndhcmRpbmdGaXJlaG9zZVRvUzNSb2xlKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ0xvZ0ZvcndhcmRpbmdTMycgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpSb2xlJyB9XG4gICAgfSk7XG4gIH0sXG4gIGxvZ0ZvcndhcmRpbmdDd1RvRmlyZWhvc2VSb2xlKHsgbG9nR3JvdXBDZkxvZ2ljYWxOYW1lIH06IHsgbG9nR3JvdXBDZkxvZ2ljYWxOYW1lOiBzdHJpbmcgfSkge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lOiBsb2dHcm91cENmTG9naWNhbE5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ0N3VG9GaXJlaG9zZScgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpSb2xlJyB9XG4gICAgfSk7XG4gIH0sXG4gIGxvZ0ZvcndhcmRpbmdGYWlsZWRFdmVudHNCdWNrZXQoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnTG9nRm9yd2FyZGluZ0ZhaWxlZFJlY29yZHMnIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OlMzOjpCdWNrZXQnIH1cbiAgICB9KTtcbiAgfSxcbiAgbG9nRm9yd2FyZGluZ0ZpcmVob3NlRGVsaXZlcnlTdHJlYW0oeyBsb2dHcm91cENmTG9naWNhbE5hbWUgfTogeyBsb2dHcm91cENmTG9naWNhbE5hbWU6IHN0cmluZyB9KSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWU6IGxvZ0dyb3VwQ2ZMb2dpY2FsTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6S2luZXNpc0ZpcmVob3NlOjpEZWxpdmVyeVN0cmVhbScgfVxuICAgIH0pO1xuICB9LFxuICBsb2dGb3J3YXJkaW5nU3Vic2NyaXB0aW9uRmlsdGVyKHsgbG9nR3JvdXBDZkxvZ2ljYWxOYW1lIH06IHsgbG9nR3JvdXBDZkxvZ2ljYWxOYW1lOiBzdHJpbmcgfSkge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lOiBsb2dHcm91cENmTG9naWNhbE5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkxvZ3M6OlN1YnNjcmlwdGlvbkZpbHRlcicgfVxuICAgIH0pO1xuICB9XG59O1xuXG5jb25zdCBidWlsZENmTG9naWNhbE5hbWUgPSAoe1xuICBzdHBSZXNvdXJjZU5hbWUsXG4gIHNwZWNpZmllcixcbiAgc3VmZml4XG59OiB7XG4gIHN0cFJlc291cmNlTmFtZT86IHN0cmluZztcbiAgc3BlY2lmaWVyPzogeyB0eXBlOiBzdHJpbmc7IHR5cGVJbmRleD86IG51bWJlcjsgc3VidHlwZT86IHN0cmluZyB9O1xuICBzdWZmaXg6IHtcbiAgICBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogQ2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGUgfCBTdXBwb3J0ZWRQcml2YXRlQ2ZSZXNvdXJjZVR5cGU7XG4gICAgaW5kZXg/OiBudW1iZXI7XG4gIH07XG59KSA9PiB7XG4gIGNvbnN0IHNwbGl0dGVkVHlwZSA9IHN1ZmZpeC5jbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZS5zcGxpdCgnOicpO1xuICBjb25zdCByZXNvbHZlZFBhcmVudE5hbWUgPSBzdHBSZXNvdXJjZU5hbWUgfHwgJ1N0cCc7XG4gIGNvbnN0IHJlc29sdmVkU3BlY2lmaWVyID0gc3BlY2lmaWVyXG4gICAgPyBgJHtzcGVjaWZpZXIudHlwZX0ke3NwZWNpZmllci50eXBlSW5kZXggIT09IHVuZGVmaW5lZCA/IHNwZWNpZmllci50eXBlSW5kZXggOiAnJ30ke1xuICAgICAgICBzcGVjaWZpZXIuc3VidHlwZSAhPT0gdW5kZWZpbmVkID8gYC0ke3NwZWNpZmllci5zdWJ0eXBlfWAgOiAnJ1xuICAgICAgfWBcbiAgICA6ICcnO1xuICBjb25zdCByZXNvbHZlZFN1ZmZpeCA9IGAke3NwbGl0dGVkVHlwZVtzcGxpdHRlZFR5cGUubGVuZ3RoIC0gMV19JHtzdWZmaXguaW5kZXggIT09IHVuZGVmaW5lZCA/IHN1ZmZpeC5pbmRleCA6ICcnfWA7XG4gIHJldHVybiBwYXNjYWxDYXNlKGAke3Jlc29sdmVkUGFyZW50TmFtZX0tJHtyZXNvbHZlZFNwZWNpZmllcn0tJHtyZXNvbHZlZFN1ZmZpeH1gKTtcbn07XG5cbmNvbnN0IGdldFNwZWNpZmllckZvckRvbWFpblJlc291cmNlID0gKGZ1bGx5UXVhbGlmaWVkRG9tYWluTmFtZSkgPT4ge1xuICBpZiAocGFzY2FsQ2FzZShmdWxseVF1YWxpZmllZERvbWFpbk5hbWUpLnJlcGxhY2UoJ18nLCAnJykubGVuZ3RoIDwgODUpIHtcbiAgICByZXR1cm4gcGFzY2FsQ2FzZShmdWxseVF1YWxpZmllZERvbWFpbk5hbWUpLnJlcGxhY2UoJ18nLCAnJyk7XG4gIH1cbiAgY29uc3Qgc3BsaXR0ZWREb21haW4gPSBmdWxseVF1YWxpZmllZERvbWFpbk5hbWVcbiAgICAuc3BsaXQoJy4nKVxuICAgIC5tYXAoKHN1YmRvbWFpbikgPT4gc3ViZG9tYWluLnNwbGl0KCctJykpXG4gICAgLmZsYXQoKTtcbiAgY29uc3QgbWF4Q2hhcmFjdGVyc1BlcldvcmQgPSBNYXRoLmZsb29yKDg1IC8gc3BsaXR0ZWREb21haW4ubGVuZ3RoKTtcbiAgcmV0dXJuIHNwbGl0dGVkRG9tYWluLm1hcCgod29yZCkgPT4gcGFzY2FsQ2FzZSh3b3JkLnNsaWNlKDAsIG1heENoYXJhY3RlcnNQZXJXb3JkKSkucmVwbGFjZSgnXycsICcnKSkuam9pbignJyk7XG59O1xuIiwgImltcG9ydCB7IGNmTG9naWNhbE5hbWVzIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2hhcmVkL25hbWluZy9sb2dpY2FsLW5hbWVzJztcblxuZXhwb3J0IGNvbnN0IENISUxEX1JFU09VUkNFUzogUmVjb3JkPFxuICBTdHBSZXNvdXJjZVR5cGUsXG4gIEFycmF5PHsgbG9naWNhbE5hbWU6ICguLi5hcmdzOiBhbnlbXSkgPT4gc3RyaW5nOyByZXNvdXJjZVR5cGU6IHN0cmluZzsgY29uZGl0aW9uYWw/OiB0cnVlOyB1bnJlc29sdmFibGU/OiB0cnVlIH0+XG4+ID0ge1xuICAvLyA9PT09PSBCVUNLRVQgPT09PT1cbiAgYnVja2V0OiBbXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYnVja2V0LCByZXNvdXJjZVR5cGU6ICdBV1M6OlMzOjpCdWNrZXQnIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYnVja2V0UG9saWN5LCByZXNvdXJjZVR5cGU6ICdBV1M6OlMzOjpCdWNrZXRQb2xpY3knLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHksXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6OkNsb3VkRnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnRDdXN0b21DYWNoZVBvbGljeSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6Q2FjaGVQb2xpY3knLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250RGVmYXVsdENhY2hlUG9saWN5LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpDYWNoZVBvbGljeScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnRDdXN0b21PcmlnaW5SZXF1ZXN0UG9saWN5LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpPcmlnaW5SZXF1ZXN0UG9saWN5JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udERlZmF1bHRPcmlnaW5SZXF1ZXN0UG9saWN5LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpPcmlnaW5SZXF1ZXN0UG9saWN5JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udERpc3RyaWJ1dGlvbixcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6RGlzdHJpYnV0aW9uJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY3VzdG9tUmVzb3VyY2VEZWZhdWx0RG9tYWluLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6Q3VzdG9tUmVzb3VyY2UnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmRuc1JlY29yZCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpSb3V0ZTUzOjpSZWNvcmRTZXQnLCBjb25kaXRpb25hbDogdHJ1ZSB9XG4gIF0sXG5cbiAgLy8gPT09PT0gRlVOQ1RJT04gPT09PT1cbiAgZnVuY3Rpb246IFtcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5sYW1iZGFSb2xlLCByZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6Um9sZScgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5sYW1iZGEsIHJlc291cmNlVHlwZTogJ0FXUzo6TGFtYmRhOjpGdW5jdGlvbicgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lZnNBY2Nlc3NQb2ludCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpFRlM6OkFjY2Vzc1BvaW50JywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy53b3JrbG9hZFNlY3VyaXR5R3JvdXAsIHJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpTZWN1cml0eUdyb3VwJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5sYW1iZGFVcmwsIHJlc291cmNlVHlwZTogJ0FXUzo6TGFtYmRhOjpVcmwnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5sYW1iZGFQdWJsaWNVcmxQZXJtaXNzaW9uLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpMYW1iZGE6OlBlcm1pc3Npb24nLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmxhbWJkYUxvZ0dyb3VwLCByZXNvdXJjZVR5cGU6ICdBV1M6OkxvZ3M6OkxvZ0dyb3VwJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMubGFtYmRhSW52b2tlQ29uZmlnLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpMYW1iZGE6OkV2ZW50SW52b2tlQ29uZmlnJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMubGFtYmRhQ29kZURlcGxveUFwcCxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q29kZURlcGxveTo6QXBwbGljYXRpb24nLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5sYW1iZGFWZXJzaW9uUHVibGlzaGVyQ3VzdG9tUmVzb3VyY2UsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNvZGVEZXBsb3lEZXBsb3ltZW50R3JvdXAsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNvZGVEZXBsb3k6OkRlcGxveW1lbnRHcm91cCcsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMubGFtYmRhU3RwQWxpYXMsIHJlc291cmNlVHlwZTogJ0FXUzo6TGFtYmRhOjpBbGlhcycsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6Q2xvdWRGcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udEN1c3RvbUNhY2hlUG9saWN5LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpDYWNoZVBvbGljeScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZSxcbiAgICAgIHVucmVzb2x2YWJsZTogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnREZWZhdWx0Q2FjaGVQb2xpY3ksXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6OkNhY2hlUG9saWN5JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udEN1c3RvbU9yaWdpblJlcXVlc3RQb2xpY3ksXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6Ok9yaWdpblJlcXVlc3RQb2xpY3knLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWUsXG4gICAgICB1bnJlc29sdmFibGU6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250RGVmYXVsdE9yaWdpblJlcXVlc3RQb2xpY3ksXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6Ok9yaWdpblJlcXVlc3RQb2xpY3knLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250RGlzdHJpYnV0aW9uLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpEaXN0cmlidXRpb24nLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWUsXG4gICAgICB1bnJlc29sdmFibGU6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jdXN0b21SZXNvdXJjZURlZmF1bHREb21haW4sXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZG5zUmVjb3JkLCByZXNvdXJjZVR5cGU6ICdBV1M6OlJvdXRlNTM6OlJlY29yZFNldCcsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmxhbWJkYVBlcm1pc3Npb24sXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkxhbWJkYTo6UGVybWlzc2lvbicsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZSxcbiAgICAgIHVucmVzb2x2YWJsZTogdHJ1ZVxuICAgIH1cbiAgXSxcblxuICAvLyA9PT09PSBSRUxBVElPTkFMIERBVEFCQVNFID09PT09XG4gICdyZWxhdGlvbmFsLWRhdGFiYXNlJzogW1xuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmRiU3VibmV0R3JvdXAsIHJlc291cmNlVHlwZTogJ0FXUzo6UkRTOjpEQlN1Ym5ldEdyb3VwJyB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmRiU2VjdXJpdHlHcm91cCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpFQzI6OlNlY3VyaXR5R3JvdXAnIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmN1c3RvbVJlc291cmNlRGF0YWJhc2VEZWxldGlvblByb3RlY3Rpb24sXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYXVyb3JhRGJDbHVzdGVyLCByZXNvdXJjZVR5cGU6ICdBV1M6OlJEUzo6REJDbHVzdGVyJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYXVyb3JhRGJDbHVzdGVyUGFyYW1ldGVyR3JvdXAsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OlJEUzo6REJDbHVzdGVyUGFyYW1ldGVyR3JvdXAnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5hdXJvcmFEYkNsdXN0ZXJMb2dHcm91cCxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6TG9nczo6TG9nR3JvdXAnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWUsXG4gICAgICB1bnJlc29sdmFibGU6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5hdXJvcmFEYkluc3RhbmNlLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpSRFM6OkRCSW5zdGFuY2UnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWUsXG4gICAgICB1bnJlc29sdmFibGU6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5hdXJvcmFEYkluc3RhbmNlUGFyYW1ldGVyR3JvdXAsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OlJEUzo6REJQYXJhbWV0ZXJHcm91cCcsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZGJJbnN0YW5jZSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpSRFM6OkRCSW5zdGFuY2UnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5kYkluc3RhbmNlTG9nR3JvdXAsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkxvZ3M6OkxvZ0dyb3VwJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlLFxuICAgICAgdW5yZXNvbHZhYmxlOiB0cnVlXG4gICAgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5kYk9wdGlvbkdyb3VwLCByZXNvdXJjZVR5cGU6ICdBV1M6OlJEUzo6T3B0aW9uR3JvdXAnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5kYkluc3RhbmNlUGFyYW1ldGVyR3JvdXAsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OlJEUzo6REJQYXJhbWV0ZXJHcm91cCcsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmRiUmVwbGljYSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6UkRTOjpEQkluc3RhbmNlJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlLFxuICAgICAgdW5yZXNvbHZhYmxlOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZGJSZXBsaWNhTG9nR3JvdXAsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkxvZ3M6OkxvZ0dyb3VwJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlLFxuICAgICAgdW5yZXNvbHZhYmxlOiB0cnVlXG4gICAgfVxuICBdLFxuXG4gIC8vID09PT09IERZTkFNTyBEQiBUQUJMRSA9PT09PVxuICAnZHluYW1vLWRiLXRhYmxlJzogW3sgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmR5bmFtb0dsb2JhbFRhYmxlLCByZXNvdXJjZVR5cGU6ICdBV1M6OkR5bmFtb0RCOjpHbG9iYWxUYWJsZScgfV0sXG5cbiAgLy8gPT09PT0gSFRUUCBBUEkgR0FURVdBWSA9PT09PVxuICAnaHR0cC1hcGktZ2F0ZXdheSc6IFtcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5odHRwQXBpLCByZXNvdXJjZVR5cGU6ICdBV1M6OkFwaUdhdGV3YXlWMjo6QXBpJyB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmh0dHBBcGlTdGFnZSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpBcGlHYXRld2F5VjI6OlN0YWdlJyB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmh0dHBBcGlMb2dHcm91cCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpMb2dzOjpMb2dHcm91cCcsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmh0dHBBcGlWcGNMaW5rU2VjdXJpdHlHcm91cCxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpTZWN1cml0eUdyb3VwJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5odHRwQXBpVnBjTGluaywgcmVzb3VyY2VUeXBlOiAnQVdTOjpBcGlHYXRld2F5VjI6OlZwY0xpbmsnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmh0dHBBcGlEb21haW4sIHJlc291cmNlVHlwZTogJ0FXUzo6QXBpR2F0ZXdheVYyOjpEb21haW5OYW1lJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuaHR0cEFwaURvbWFpbk1hcHBpbmcsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkFwaUdhdGV3YXlWMjo6QXBpTWFwcGluZycsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmh0dHBBcGlEZWZhdWx0RG9tYWluLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpBcGlHYXRld2F5VjI6OkRvbWFpbk5hbWUnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5odHRwQXBpRGVmYXVsdERvbWFpbk1hcHBpbmcsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkFwaUdhdGV3YXlWMjo6QXBpTWFwcGluZycsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmN1c3RvbVJlc291cmNlRGVmYXVsdERvbWFpbixcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGb3JtYXRpb246OkN1c3RvbVJlc291cmNlJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5kbnNSZWNvcmQsIHJlc291cmNlVHlwZTogJ0FXUzo6Um91dGU1Mzo6UmVjb3JkU2V0JywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpDbG91ZEZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHknLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250Q3VzdG9tQ2FjaGVQb2xpY3ksXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6OkNhY2hlUG9saWN5JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udERlZmF1bHRDYWNoZVBvbGljeSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6Q2FjaGVQb2xpY3knLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250Q3VzdG9tT3JpZ2luUmVxdWVzdFBvbGljeSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6T3JpZ2luUmVxdWVzdFBvbGljeScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnREZWZhdWx0T3JpZ2luUmVxdWVzdFBvbGljeSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6T3JpZ2luUmVxdWVzdFBvbGljeScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnREaXN0cmlidXRpb24sXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6OkRpc3RyaWJ1dGlvbicsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH1cbiAgXSxcblxuICAvLyA9PT09PSBCQVRDSCBKT0IgPT09PT1cbiAgJ2JhdGNoLWpvYic6IFtcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5iYXRjaFNlcnZpY2VSb2xlLCByZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6Um9sZScsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYmF0Y2hTcG90RmxlZXRSb2xlLCByZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6Um9sZScsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYmF0Y2hJbnN0YW5jZVJvbGUsIHJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpSb2xlJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5iYXRjaEluc3RhbmNlUHJvZmlsZSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06Okluc3RhbmNlUHJvZmlsZScsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYmF0Y2hTdGF0ZU1hY2hpbmVFeGVjdXRpb25Sb2xlLCByZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6Um9sZScsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmJhdGNoSW5zdGFuY2VMYXVuY2hUZW1wbGF0ZSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpMYXVuY2hUZW1wbGF0ZScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmJhdGNoSW5zdGFuY2VEZWZhdWx0U2VjdXJpdHlHcm91cCxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpTZWN1cml0eUdyb3VwJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYmF0Y2hDb21wdXRlRW52aXJvbm1lbnQsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkJhdGNoOjpDb21wdXRlRW52aXJvbm1lbnQnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmJhdGNoSm9iUXVldWUsIHJlc291cmNlVHlwZTogJ0FXUzo6QmF0Y2g6OkpvYlF1ZXVlJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5iYXRjaEpvYkRlZmluaXRpb24sIHJlc291cmNlVHlwZTogJ0FXUzo6QmF0Y2g6OkpvYkRlZmluaXRpb24nIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYmF0Y2hTdGF0ZU1hY2hpbmUsIHJlc291cmNlVHlwZTogJ0FXUzo6U3RlcEZ1bmN0aW9uczo6U3RhdGVNYWNoaW5lJyB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmJhdGNoSm9iTG9nR3JvdXAsIHJlc291cmNlVHlwZTogJ0FXUzo6TG9nczo6TG9nR3JvdXAnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmJhdGNoSm9iRXhlY3V0aW9uUm9sZSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmF0bGFzTW9uZ29Vc2VyQXNzb2NpYXRlZFdpdGhSb2xlLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnTW9uZ29EQjo6U3RwQXRsYXNWMTo6RGF0YWJhc2VVc2VyJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfVxuICBdLFxuXG4gIC8vID09PT09IEVWRU5UIEJVUyA9PT09PVxuICAnZXZlbnQtYnVzJzogW1xuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmV2ZW50QnVzLCByZXNvdXJjZVR5cGU6ICdBV1M6OkV2ZW50czo6RXZlbnRCdXMnIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZXZlbnRCdXNBcmNoaXZlLCByZXNvdXJjZVR5cGU6ICdBV1M6OkV2ZW50czo6QXJjaGl2ZScsIGNvbmRpdGlvbmFsOiB0cnVlIH1cbiAgXSxcblxuICAvLyA9PT09PSBTVEFURSBNQUNISU5FID09PT09XG4gICdzdGF0ZS1tYWNoaW5lJzogW1xuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmdsb2JhbFN0YXRlTWFjaGluZXNSb2xlLCByZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6Um9sZScsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuc3RhdGVNYWNoaW5lLCByZXNvdXJjZVR5cGU6ICdBV1M6OlN0ZXBGdW5jdGlvbnM6OlN0YXRlTWFjaGluZScgfVxuICBdLFxuXG4gIC8vID09PT09IFJFRElTIENMVVNURVIgPT09PT1cbiAgJ3JlZGlzLWNsdXN0ZXInOiBbXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMucmVkaXNQYXJhbWV0ZXJHcm91cCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpFbGFzdGlDYWNoZTo6UGFyYW1ldGVyR3JvdXAnIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMucmVkaXNTdWJuZXRHcm91cCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpFbGFzdGlDYWNoZTo6U3VibmV0R3JvdXAnIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMucmVkaXNTZWN1cml0eUdyb3VwLCByZXNvdXJjZVR5cGU6ICdBV1M6OkVDMjo6U2VjdXJpdHlHcm91cCcgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5yZWRpc0xvZ0dyb3VwLCByZXNvdXJjZVR5cGU6ICdBV1M6OkxvZ3M6OkxvZ0dyb3VwJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5yZWRpc1JlcGxpY2F0aW9uR3JvdXAsIHJlc291cmNlVHlwZTogJ0FXUzo6RWxhc3RpQ2FjaGU6OlJlcGxpY2F0aW9uR3JvdXAnIH1cbiAgXSxcblxuICAvLyA9PT09PSBNT05HTyBEQiBBVExBUyBDTFVTVEVSID09PT09XG4gICdtb25nby1kYi1hdGxhcy1jbHVzdGVyJzogW1xuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5hdGxhc01vbmdvQ3JlZGVudGlhbHNQcm92aWRlcixcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGb3JtYXRpb246OkN1c3RvbVJlc291cmNlJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5hdGxhc01vbmdvUHJvamVjdCwgcmVzb3VyY2VUeXBlOiAnTW9uZ29EQjo6U3RwQXRsYXNWMTo6UHJvamVjdCcsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmF0bGFzTW9uZ29Qcm9qZWN0SXBBY2Nlc3NMaXN0LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnTW9uZ29EQjo6U3RwQXRsYXNWMTo6UHJvamVjdElwQWNjZXNzTGlzdCcsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmF0bGFzTW9uZ29Qcm9qZWN0VnBjTmV0d29ya0NvbnRhaW5lcixcbiAgICAgIHJlc291cmNlVHlwZTogJ01vbmdvREI6OlN0cEF0bGFzVjE6Ok5ldHdvcmtDb250YWluZXInLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5hdGxhc01vbmdvUHJvamVjdFZwY05ldHdvcmtQZWVyaW5nLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnTW9uZ29EQjo6U3RwQXRsYXNWMTo6TmV0d29ya1BlZXJpbmcnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmF0bGFzTW9uZ29WcGNSb3V0ZSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpFQzI6OlJvdXRlJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5hdGxhc01vbmdvQ2x1c3RlciwgcmVzb3VyY2VUeXBlOiAnTW9uZ29EQjo6U3RwQXRsYXNWMTo6Q2x1c3RlcicgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYXRsYXNNb25nb0NsdXN0ZXJNYXN0ZXJVc2VyLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnTW9uZ29EQjo6U3RwQXRsYXNWMTo6RGF0YWJhc2VVc2VyJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfVxuICBdLFxuXG4gIC8vID09PT09IFVTRVIgQVVUSCBQT09MID09PT09XG4gICd1c2VyLWF1dGgtcG9vbCc6IFtcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy51c2VyUG9vbCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpDb2duaXRvOjpVc2VyUG9vbCcgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5zbnNSb2xlU2VuZFNtc0Zyb21Db2duaXRvLCByZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6Um9sZScgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy51c2VyUG9vbENsaWVudCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpDb2duaXRvOjpVc2VyUG9vbENsaWVudCcgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy51c2VyUG9vbERvbWFpbiwgcmVzb3VyY2VUeXBlOiAnQVdTOjpDb2duaXRvOjpVc2VyUG9vbERvbWFpbicgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY29nbml0b1VzZXJQb29sRGV0YWlsc0N1c3RvbVJlc291cmNlLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6Q3VzdG9tUmVzb3VyY2UnXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuaWRlbnRpdHlQcm92aWRlcixcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q29nbml0bzo6VXNlclBvb2xJZGVudGl0eVByb3ZpZGVyJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY29nbml0b0xhbWJkYUhvb2tQZXJtaXNzaW9uLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpMYW1iZGE6OlBlcm1pc3Npb24nLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy51c2VyUG9vbFVpQ3VzdG9taXphdGlvbkF0dGFjaG1lbnQsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNvZ25pdG86OlVzZXJQb29sVUlDdXN0b21pemF0aW9uQXR0YWNobWVudCcsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLndlYkFwcEZpcmV3YWxsQXNzb2NpYXRpb24sXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OldBRnYyOjpXZWJBQ0xBc3NvY2lhdGlvbicsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH1cbiAgXSxcblxuICAvLyA9PT09PSBVUFNUQVNIIFJFRElTID09PT09XG4gICd1cHN0YXNoLXJlZGlzJzogW1xuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy51cHN0YXNoQ3JlZGVudGlhbHNQcm92aWRlcixcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGb3JtYXRpb246OkN1c3RvbVJlc291cmNlJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy51cHN0YXNoUmVkaXNEYXRhYmFzZSwgcmVzb3VyY2VUeXBlOiAnVXBzdGFzaDo6UmVkaXM6OkRhdGFiYXNlJyB9XG4gIF0sXG5cbiAgLy8gPT09PT0gQVBQTElDQVRJT04gTE9BRCBCQUxBTkNFUiA9PT09PVxuICAnYXBwbGljYXRpb24tbG9hZC1iYWxhbmNlcic6IFtcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5sb2FkQmFsYW5jZXIsIHJlc291cmNlVHlwZTogJ0FXUzo6RWxhc3RpY0xvYWRCYWxhbmNpbmdWMjo6TG9hZEJhbGFuY2VyJyB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmxvYWRCYWxhbmNlclNlY3VyaXR5R3JvdXAsIHJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpTZWN1cml0eUdyb3VwJyB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy53ZWJBcHBGaXJld2FsbEFzc29jaWF0aW9uLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpXQUZ2Mjo6V2ViQUNMQXNzb2NpYXRpb24nLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmxpc3RlbmVyLCByZXNvdXJjZVR5cGU6ICdBV1M6OkVsYXN0aWNMb2FkQmFsYW5jaW5nVjI6Okxpc3RlbmVyJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY3VzdG9tUmVzb3VyY2VEZWZhdWx0RG9tYWluLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6Q3VzdG9tUmVzb3VyY2UnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmRuc1JlY29yZCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpSb3V0ZTUzOjpSZWNvcmRTZXQnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHksXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6OkNsb3VkRnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnRDdXN0b21DYWNoZVBvbGljeSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6Q2FjaGVQb2xpY3knLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250RGVmYXVsdENhY2hlUG9saWN5LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpDYWNoZVBvbGljeScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnRDdXN0b21PcmlnaW5SZXF1ZXN0UG9saWN5LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpPcmlnaW5SZXF1ZXN0UG9saWN5JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udERlZmF1bHRPcmlnaW5SZXF1ZXN0UG9saWN5LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpPcmlnaW5SZXF1ZXN0UG9saWN5JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udERpc3RyaWJ1dGlvbixcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6RGlzdHJpYnV0aW9uJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfVxuICBdLFxuXG4gIC8vID09PT09IE5FVFdPUksgTE9BRCBCQUxBTkNFUiA9PT09PVxuICAnbmV0d29yay1sb2FkLWJhbGFuY2VyJzogW1xuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmxvYWRCYWxhbmNlciwgcmVzb3VyY2VUeXBlOiAnQVdTOjpFbGFzdGljTG9hZEJhbGFuY2luZ1YyOjpMb2FkQmFsYW5jZXInIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMubG9hZEJhbGFuY2VyU2VjdXJpdHlHcm91cCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpFQzI6OlNlY3VyaXR5R3JvdXAnIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMubGlzdGVuZXIsIHJlc291cmNlVHlwZTogJ0FXUzo6RWxhc3RpY0xvYWRCYWxhbmNpbmdWMjo6TGlzdGVuZXInLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jdXN0b21SZXNvdXJjZURlZmF1bHREb21haW4sXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZG5zUmVjb3JkLCByZXNvdXJjZVR5cGU6ICdBV1M6OlJvdXRlNTM6OlJlY29yZFNldCcsIGNvbmRpdGlvbmFsOiB0cnVlIH1cbiAgXSxcblxuICAvLyA9PT09PSBIT1NUSU5HIEJVQ0tFVCA9PT09PVxuICAvLyBIb3N0aW5nIGJ1Y2tldCBkZWxlZ2F0ZXMgdG8gYSBidWNrZXQgcmVzb3VyY2UsIHNvIGl0IGluY2x1ZGVzIGFsbCBidWNrZXQgY2hpbGQgcmVzb3VyY2VzXG4gICdob3N0aW5nLWJ1Y2tldCc6IFtcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5idWNrZXQsIHJlc291cmNlVHlwZTogJ0FXUzo6UzM6OkJ1Y2tldCcgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5idWNrZXRQb2xpY3ksIHJlc291cmNlVHlwZTogJ0FXUzo6UzM6OkJ1Y2tldFBvbGljeScsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6Q2xvdWRGcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udEN1c3RvbUNhY2hlUG9saWN5LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpDYWNoZVBvbGljeScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnREZWZhdWx0Q2FjaGVQb2xpY3ksXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6OkNhY2hlUG9saWN5JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udEN1c3RvbU9yaWdpblJlcXVlc3RQb2xpY3ksXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6Ok9yaWdpblJlcXVlc3RQb2xpY3knLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250RGVmYXVsdE9yaWdpblJlcXVlc3RQb2xpY3ksXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6Ok9yaWdpblJlcXVlc3RQb2xpY3knLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250RGlzdHJpYnV0aW9uLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpEaXN0cmlidXRpb24nLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jdXN0b21SZXNvdXJjZURlZmF1bHREb21haW4sXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZG5zUmVjb3JkLCByZXNvdXJjZVR5cGU6ICdBV1M6OlJvdXRlNTM6OlJlY29yZFNldCcsIGNvbmRpdGlvbmFsOiB0cnVlIH1cbiAgXSxcblxuICAvLyA9PT09PSBXRUIgQVBQIEZJUkVXQUxMID09PT09XG4gICd3ZWItYXBwLWZpcmV3YWxsJzogW1xuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLndlYkFwcEZpcmV3YWxsQ3VzdG9tUmVzb3VyY2UsIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGb3JtYXRpb246OkN1c3RvbVJlc291cmNlJyB9XG4gIF0sXG5cbiAgLy8gPT09PT0gT1BFTiBTRUFSQ0ggRE9NQUlOID09PT09XG4gICdvcGVuLXNlYXJjaC1kb21haW4nOiBbXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMub3BlblNlYXJjaERvbWFpbiwgcmVzb3VyY2VUeXBlOiAnQVdTOjpPcGVuU2VhcmNoU2VydmljZTo6RG9tYWluJyB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLm9wZW5TZWFyY2hTZWN1cml0eUdyb3VwLCByZXNvdXJjZVR5cGU6ICdBV1M6OkVDMjo6U2VjdXJpdHlHcm91cCcsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLm9wZW5TZWFyY2hEb21haW5Mb2dHcm91cCxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6TG9nczo6TG9nR3JvdXAnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWUsXG4gICAgICB1bnJlc29sdmFibGU6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5vcGVuU2VhcmNoQ3VzdG9tUmVzb3VyY2UsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH1cbiAgXSxcblxuICAvLyA9PT09PSBFRlMgRklMRVNZU1RFTSA9PT09PVxuICAnZWZzLWZpbGVzeXN0ZW0nOiBbXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWZzRmlsZXN5c3RlbSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpFRlM6OkZpbGVTeXN0ZW0nIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWZzU2VjdXJpdHlHcm91cCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpFQzI6OlNlY3VyaXR5R3JvdXAnIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVmc01vdW50VGFyZ2V0LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpFRlM6Ok1vdW50VGFyZ2V0JyxcbiAgICAgIHVucmVzb2x2YWJsZTogdHJ1ZVxuICAgIH1cbiAgXSxcblxuICAvLyA9PT09PSBORVhUSlMgV0VCID09PT09XG4gIC8vIE5leHRKUyB3ZWIgZGVsZWdhdGVzIHRvOiBidWNrZXQsIGltYWdlRnVuY3Rpb24sIHJldmFsaWRhdGlvbkZ1bmN0aW9uLCByZXZhbGlkYXRpb25RdWV1ZSxcbiAgLy8gcmV2YWxpZGF0aW9uVGFibGUsIHJldmFsaWRhdGlvbkluc2VydEZ1bmN0aW9uLCBhbmQgb3B0aW9uYWxseSBzZXJ2ZXJFZGdlRnVuY3Rpb24gb3Igc2VydmVyRnVuY3Rpb25cbiAgJ25leHRqcy13ZWInOiBbXG4gICAgLy8gTmV4dEpTLXNwZWNpZmljIHJlc291cmNlc1xuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5vcGVuTmV4dEhvc3RIZWFkZXJSZXdyaXRlRnVuY3Rpb24sXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6OkZ1bmN0aW9uJ1xuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLm9wZW5OZXh0QXNzZXRSZXBsYWNlckN1c3RvbVJlc291cmNlLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6Q3VzdG9tUmVzb3VyY2UnXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMub3Blbk5leHREeW5hbW9JbnNlcnRDdXN0b21SZXNvdXJjZSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGb3JtYXRpb246OkN1c3RvbVJlc291cmNlJ1xuICAgIH0sXG4gICAgLy8gRnJvbSBidWNrZXRcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5idWNrZXQsIHJlc291cmNlVHlwZTogJ0FXUzo6UzM6OkJ1Y2tldCcgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5idWNrZXRQb2xpY3ksIHJlc291cmNlVHlwZTogJ0FXUzo6UzM6OkJ1Y2tldFBvbGljeScsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6Q2xvdWRGcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udEN1c3RvbUNhY2hlUG9saWN5LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpDYWNoZVBvbGljeScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnREZWZhdWx0Q2FjaGVQb2xpY3ksXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6OkNhY2hlUG9saWN5JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udEN1c3RvbU9yaWdpblJlcXVlc3RQb2xpY3ksXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6Ok9yaWdpblJlcXVlc3RQb2xpY3knLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250RGVmYXVsdE9yaWdpblJlcXVlc3RQb2xpY3ksXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6Ok9yaWdpblJlcXVlc3RQb2xpY3knLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250RGlzdHJpYnV0aW9uLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpEaXN0cmlidXRpb24nLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jdXN0b21SZXNvdXJjZURlZmF1bHREb21haW4sXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZG5zUmVjb3JkLCByZXNvdXJjZVR5cGU6ICdBV1M6OlJvdXRlNTM6OlJlY29yZFNldCcsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAgLy8gRnJvbSBmdW5jdGlvbnMgKGltYWdlRnVuY3Rpb24sIHJldmFsaWRhdGlvbkZ1bmN0aW9uLCBzZXJ2ZXJGdW5jdGlvbiwgd2FybWVyRnVuY3Rpb24sIHJldmFsaWRhdGlvbkluc2VydEZ1bmN0aW9uKVxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmxhbWJkYVJvbGUsIHJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpSb2xlJyB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmxhbWJkYSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpMYW1iZGE6OkZ1bmN0aW9uJyB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmxhbWJkYUxvZ0dyb3VwLCByZXNvdXJjZVR5cGU6ICdBV1M6OkxvZ3M6OkxvZ0dyb3VwJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5sYW1iZGFVcmwsIHJlc291cmNlVHlwZTogJ0FXUzo6TGFtYmRhOjpVcmwnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIC8vIEZyb20gZWRnZSBmdW5jdGlvbiAoc2VydmVyRWRnZUZ1bmN0aW9uKVxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jdXN0b21SZXNvdXJjZUVkZ2VMYW1iZGEsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAgLy8gRnJvbSByZXZhbGlkYXRpb25RdWV1ZVxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLnNxc1F1ZXVlLCByZXNvdXJjZVR5cGU6ICdBV1M6OlNRUzo6UXVldWUnIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuc3FzUXVldWVQb2xpY3ksIHJlc291cmNlVHlwZTogJ0FXUzo6U1FTOjpRdWV1ZVBvbGljeScsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAgLy8gRnJvbSByZXZhbGlkYXRpb25UYWJsZVxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmR5bmFtb0dsb2JhbFRhYmxlLCByZXNvdXJjZVR5cGU6ICdBV1M6OkR5bmFtb0RCOjpHbG9iYWxUYWJsZScgfVxuICBdLFxuXG4gIC8vID09PT09IE1VTFRJLUNPTlRBSU5FUiBXT1JLTE9BRCA9PT09PVxuICAnbXVsdGktY29udGFpbmVyLXdvcmtsb2FkJzogW1xuICAgIC8vIFNoYXJlZCBnbG9iYWwgcmVzb3VyY2VzIChjb25kaXRpb25hbCAtIGNyZWF0ZWQgb25seSBvbmNlIGlmIG5vdCBleGlzdHMpXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzRXhlY3V0aW9uUm9sZSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0F1dG9TY2FsaW5nUm9sZSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIC8vIFNjYWxpbmcgcmVzb3VyY2VzIChjb25kaXRpb25hbCAtIG9ubHkgaWYgc2NhbGluZyBpcyBjb25maWd1cmVkKVxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5hdXRvU2NhbGluZ1RhcmdldCxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6QXBwbGljYXRpb25BdXRvU2NhbGluZzo6U2NhbGFibGVUYXJnZXQnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5hdXRvU2NhbGluZ1BvbGljeSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6QXBwbGljYXRpb25BdXRvU2NhbGluZzo6U2NhbGluZ1BvbGljeScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZSxcbiAgICAgIHVucmVzb2x2YWJsZTogdHJ1ZVxuICAgIH0sXG4gICAgLy8gRUMyLWJhc2VkIHJlc291cmNlcyAoY29uZGl0aW9uYWwgLSBvbmx5IGlmIGluc3RhbmNlVHlwZXMgYXJlIGNvbmZpZ3VyZWQpXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzRWMySW5zdGFuY2VSb2xlLCByZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6Um9sZScsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmV2ZW50QnVzUm9sZUZvclNjaGVkdWxlZEluc3RhbmNlUmVmcmVzaCxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpSb2xlJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NFYzJJbnN0YW5jZVByb2ZpbGUsIHJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpJbnN0YW5jZVByb2ZpbGUnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NFYzJJbnN0YW5jZUxhdW5jaFRlbXBsYXRlLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpFQzI6OkxhdW5jaFRlbXBsYXRlJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzRWMyQXV0b3NjYWxpbmdHcm91cCxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6QXV0b1NjYWxpbmc6OkF1dG9TY2FsaW5nR3JvdXAnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NFYzJGb3JjZURlbGV0ZUF1dG9zY2FsaW5nR3JvdXBDdXN0b21SZXNvdXJjZSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGb3JtYXRpb246OkN1c3RvbVJlc291cmNlJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzRWMyQ2FwYWNpdHlQcm92aWRlcixcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6RUNTOjpDYXBhY2l0eVByb3ZpZGVyJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzRWMyQ2FwYWNpdHlQcm92aWRlckFzc29jaWF0aW9uLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpFQ1M6OkNsdXN0ZXJDYXBhY2l0eVByb3ZpZGVyQXNzb2NpYXRpb25zJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuc2NoZWR1bGVyUnVsZUZvclNjaGVkdWxlZEluc3RhbmNlUmVmcmVzaCxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6U2NoZWR1bGVyOjpTY2hlZHVsZScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0VjMkF1dG9zY2FsaW5nR3JvdXBXYXJtUG9vbCxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6QXV0b1NjYWxpbmc6Oldhcm1Qb29sJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICAvLyBEZXBsb3ltZW50IHJlc291cmNlcyAoY29uZGl0aW9uYWwgLSBvbmx5IGlmIGRlcGxveW1lbnQgaXMgY29uZmlndXJlZClcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NDb2RlRGVwbG95QXBwLCByZXNvdXJjZVR5cGU6ICdBV1M6OkNvZGVEZXBsb3k6OkFwcGxpY2F0aW9uJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY29kZURlcGxveURlcGxveW1lbnRHcm91cCxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q29kZURlcGxveTo6RGVwbG95bWVudEdyb3VwJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICAvLyBDb3JlIHJlc291cmNlcyAoYWx3YXlzIHByZXNlbnQpXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzQ2x1c3RlciwgcmVzb3VyY2VUeXBlOiAnQVdTOjpFQ1M6OkNsdXN0ZXInIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMud29ya2xvYWRTZWN1cml0eUdyb3VwLCByZXNvdXJjZVR5cGU6ICdBV1M6OkVDMjo6U2VjdXJpdHlHcm91cCcgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzU2VydmljZSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6RUNTOjpTZXJ2aWNlJyxcbiAgICAgIHVucmVzb2x2YWJsZTogdHJ1ZVxuICAgIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzVGFza1JvbGUsIHJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpSb2xlJyB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc1Rhc2tEZWZpbml0aW9uLCByZXNvdXJjZVR5cGU6ICdBV1M6OkVDUzo6VGFza0RlZmluaXRpb24nIH0sXG4gICAgLy8gQ29uZGl0aW9uYWwgcmVzb3VyY2VzXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0xvZ0dyb3VwLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpMb2dzOjpMb2dHcm91cCcsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZSxcbiAgICAgIHVucmVzb2x2YWJsZTogdHJ1ZVxuICAgIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWZzQWNjZXNzUG9pbnQsIHJlc291cmNlVHlwZTogJ0FXUzo6RUZTOjpBY2Nlc3NQb2ludCcsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmF0bGFzTW9uZ29Vc2VyQXNzb2NpYXRlZFdpdGhSb2xlLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnTW9uZ29EQjo6U3RwQXRsYXNWMTo6RGF0YWJhc2VVc2VyJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfVxuICBdLFxuXG4gIC8vID09PT09IFNRUyBRVUVVRSA9PT09PVxuICAnc3FzLXF1ZXVlJzogW1xuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLnNxc1F1ZXVlLCByZXNvdXJjZVR5cGU6ICdBV1M6OlNRUzo6UXVldWUnIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuc3FzUXVldWVQb2xpY3ksIHJlc291cmNlVHlwZTogJ0FXUzo6U1FTOjpRdWV1ZVBvbGljeScsIGNvbmRpdGlvbmFsOiB0cnVlIH1cbiAgXSxcblxuICAvLyA9PT09PSBTTlMgVE9QSUMgPT09PT1cbiAgJ3Nucy10b3BpYyc6IFt7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5zbnNUb3BpYywgcmVzb3VyY2VUeXBlOiAnQVdTOjpTTlM6OlRvcGljJyB9XSxcblxuICAvLyA9PT09PSBCQVNUSU9OID09PT09XG4gIGJhc3Rpb246IFtcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYmFzdGlvbkNsb3Vkd2F0Y2hTc21Eb2N1bWVudCxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6U1NNOjpEb2N1bWVudCcsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYmFzdGlvbkVjMkF1dG9zY2FsaW5nR3JvdXAsIHJlc291cmNlVHlwZTogJ0FXUzo6QXV0b1NjYWxpbmc6OkF1dG9TY2FsaW5nR3JvdXAnIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYmFzdGlvblNlY3VyaXR5R3JvdXAsIHJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpTZWN1cml0eUdyb3VwJyB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmJhc3Rpb25FYzJMYXVuY2hUZW1wbGF0ZSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpFQzI6OkxhdW5jaFRlbXBsYXRlJyB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmJhc3Rpb25Sb2xlLCByZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6Um9sZScgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5iYXN0aW9uRWMySW5zdGFuY2VQcm9maWxlLCByZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6SW5zdGFuY2VQcm9maWxlJyB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmJhc3Rpb25Dd0FnZW50U3NtQXNzb2NpYXRpb24sIHJlc291cmNlVHlwZTogJ0FXUzo6U1NNOjpBc3NvY2lhdGlvbicgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5iYXN0aW9uU3NtQWdlbnRTc21Bc3NvY2lhdGlvbiwgcmVzb3VyY2VUeXBlOiAnQVdTOjpTU006OkFzc29jaWF0aW9uJyB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5iYXN0aW9uTG9nR3JvdXAsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkxvZ3M6OkxvZ0dyb3VwJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlLFxuICAgICAgdW5yZXNvbHZhYmxlOiB0cnVlXG4gICAgfVxuICBdLFxuXG4gIC8vID09PT09IEVER0UgTEFNQkRBIEZVTkNUSU9OID09PT09XG4gICdlZGdlLWxhbWJkYS1mdW5jdGlvbic6IFtcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jdXN0b21SZXNvdXJjZUVkZ2VMYW1iZGEsIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGb3JtYXRpb246OkN1c3RvbVJlc291cmNlJyB9XG4gIF0sXG5cbiAgLy8gPT09PT0gV0VCIFNFUlZJQ0UgPT09PT1cbiAgLy8gV2ViIHNlcnZpY2UgZGVsZWdhdGVzIHRvOiBjb250YWluZXJXb3JrbG9hZCArIG9wdGlvbmFsbHkgKGh0dHBBcGlHYXRld2F5IE9SIGxvYWRCYWxhbmNlciBPUiBuZXR3b3JrTG9hZEJhbGFuY2VyKVxuICAnd2ViLXNlcnZpY2UnOiBbXG4gICAgLy8gRnJvbSBtdWx0aS1jb250YWluZXItd29ya2xvYWQgLSBjb3JlIHJlc291cmNlcyAoYWx3YXlzIHByZXNlbnQpXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzQ2x1c3RlciwgcmVzb3VyY2VUeXBlOiAnQVdTOjpFQ1M6OkNsdXN0ZXInIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMud29ya2xvYWRTZWN1cml0eUdyb3VwLCByZXNvdXJjZVR5cGU6ICdBV1M6OkVDMjo6U2VjdXJpdHlHcm91cCcgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzU2VydmljZSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6RUNTOjpTZXJ2aWNlJyxcbiAgICAgIHVucmVzb2x2YWJsZTogdHJ1ZVxuICAgIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzVGFza1JvbGUsIHJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpSb2xlJyB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc1Rhc2tEZWZpbml0aW9uLCByZXNvdXJjZVR5cGU6ICdBV1M6OkVDUzo6VGFza0RlZmluaXRpb24nIH0sXG4gICAgLy8gRnJvbSBtdWx0aS1jb250YWluZXItd29ya2xvYWQgLSBjb25kaXRpb25hbCByZXNvdXJjZXNcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NFeGVjdXRpb25Sb2xlLCByZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6Um9sZScsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzQXV0b1NjYWxpbmdSb2xlLCByZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6Um9sZScsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmF1dG9TY2FsaW5nVGFyZ2V0LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpBcHBsaWNhdGlvbkF1dG9TY2FsaW5nOjpTY2FsYWJsZVRhcmdldCcsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmF1dG9TY2FsaW5nUG9saWN5LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpBcHBsaWNhdGlvbkF1dG9TY2FsaW5nOjpTY2FsaW5nUG9saWN5JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlLFxuICAgICAgdW5yZXNvbHZhYmxlOiB0cnVlXG4gICAgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NFYzJJbnN0YW5jZVJvbGUsIHJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpSb2xlJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZXZlbnRCdXNSb2xlRm9yU2NoZWR1bGVkSW5zdGFuY2VSZWZyZXNoLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0VjMkluc3RhbmNlUHJvZmlsZSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06Okluc3RhbmNlUHJvZmlsZScsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0VjMkluc3RhbmNlTGF1bmNoVGVtcGxhdGUsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkVDMjo6TGF1bmNoVGVtcGxhdGUnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NFYzJBdXRvc2NhbGluZ0dyb3VwLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpBdXRvU2NhbGluZzo6QXV0b1NjYWxpbmdHcm91cCcsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0VjMkZvcmNlRGVsZXRlQXV0b3NjYWxpbmdHcm91cEN1c3RvbVJlc291cmNlLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6Q3VzdG9tUmVzb3VyY2UnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NFYzJDYXBhY2l0eVByb3ZpZGVyLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpFQ1M6OkNhcGFjaXR5UHJvdmlkZXInLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NFYzJDYXBhY2l0eVByb3ZpZGVyQXNzb2NpYXRpb24sXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkVDUzo6Q2x1c3RlckNhcGFjaXR5UHJvdmlkZXJBc3NvY2lhdGlvbnMnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5zY2hlZHVsZXJSdWxlRm9yU2NoZWR1bGVkSW5zdGFuY2VSZWZyZXNoLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpTY2hlZHVsZXI6OlNjaGVkdWxlJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzRWMyQXV0b3NjYWxpbmdHcm91cFdhcm1Qb29sLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpBdXRvU2NhbGluZzo6V2FybVBvb2wnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0NvZGVEZXBsb3lBcHAsIHJlc291cmNlVHlwZTogJ0FXUzo6Q29kZURlcGxveTo6QXBwbGljYXRpb24nLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jb2RlRGVwbG95RGVwbG95bWVudEdyb3VwLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDb2RlRGVwbG95OjpEZXBsb3ltZW50R3JvdXAnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NMb2dHcm91cCxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6TG9nczo6TG9nR3JvdXAnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWUsXG4gICAgICB1bnJlc29sdmFibGU6IHRydWVcbiAgICB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVmc0FjY2Vzc1BvaW50LCByZXNvdXJjZVR5cGU6ICdBV1M6OkVGUzo6QWNjZXNzUG9pbnQnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIC8vIEZyb20gYXBwbGljYXRpb24tbG9hZC1iYWxhbmNlciAoY29uZGl0aW9uYWwgLSBvbmx5IGlmIEFMQiBpcyB1c2VkKVxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5sb2FkQmFsYW5jZXIsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkVsYXN0aWNMb2FkQmFsYW5jaW5nVjI6OkxvYWRCYWxhbmNlcicsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmxvYWRCYWxhbmNlclNlY3VyaXR5R3JvdXAsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkVDMjo6U2VjdXJpdHlHcm91cCcsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMubGlzdGVuZXIsIHJlc291cmNlVHlwZTogJ0FXUzo6RWxhc3RpY0xvYWRCYWxhbmNpbmdWMjo6TGlzdGVuZXInLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy53ZWJBcHBGaXJld2FsbEFzc29jaWF0aW9uLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpXQUZ2Mjo6V2ViQUNMQXNzb2NpYXRpb24nLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIC8vIEZyb20gaHR0cC1hcGktZ2F0ZXdheSAoY29uZGl0aW9uYWwgLSBvbmx5IGlmIEhUVFAgQVBJIEdhdGV3YXkgaXMgdXNlZCwgYWx0ZXJuYXRpdmUgdG8gQUxCL05MQilcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5odHRwQXBpLCByZXNvdXJjZVR5cGU6ICdBV1M6OkFwaUdhdGV3YXlWMjo6QXBpJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5odHRwQXBpU3RhZ2UsIHJlc291cmNlVHlwZTogJ0FXUzo6QXBpR2F0ZXdheVYyOjpTdGFnZScsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuaHR0cEFwaUxvZ0dyb3VwLCByZXNvdXJjZVR5cGU6ICdBV1M6OkxvZ3M6OkxvZ0dyb3VwJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuaHR0cEFwaVZwY0xpbmtTZWN1cml0eUdyb3VwLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpFQzI6OlNlY3VyaXR5R3JvdXAnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmh0dHBBcGlWcGNMaW5rLCByZXNvdXJjZVR5cGU6ICdBV1M6OkFwaUdhdGV3YXlWMjo6VnBjTGluaycsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuaHR0cEFwaURvbWFpbiwgcmVzb3VyY2VUeXBlOiAnQVdTOjpBcGlHYXRld2F5VjI6OkRvbWFpbk5hbWUnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5odHRwQXBpRG9tYWluTWFwcGluZyxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6QXBpR2F0ZXdheVYyOjpBcGlNYXBwaW5nJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuaHR0cEFwaURlZmF1bHREb21haW4sXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkFwaUdhdGV3YXlWMjo6RG9tYWluTmFtZScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmh0dHBBcGlEZWZhdWx0RG9tYWluTWFwcGluZyxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6QXBpR2F0ZXdheVYyOjpBcGlNYXBwaW5nJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICAvLyBDb21tb24gcmVzb3VyY2VzIChkb21haW5zLCBDRE4gLSBhbGwgY29uZGl0aW9uYWwpXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmN1c3RvbVJlc291cmNlRGVmYXVsdERvbWFpbixcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGb3JtYXRpb246OkN1c3RvbVJlc291cmNlJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5kbnNSZWNvcmQsIHJlc291cmNlVHlwZTogJ0FXUzo6Um91dGU1Mzo6UmVjb3JkU2V0JywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpDbG91ZEZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHknLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250Q3VzdG9tQ2FjaGVQb2xpY3ksXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6OkNhY2hlUG9saWN5JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udERlZmF1bHRDYWNoZVBvbGljeSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6Q2FjaGVQb2xpY3knLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250Q3VzdG9tT3JpZ2luUmVxdWVzdFBvbGljeSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6T3JpZ2luUmVxdWVzdFBvbGljeScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnREZWZhdWx0T3JpZ2luUmVxdWVzdFBvbGljeSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6T3JpZ2luUmVxdWVzdFBvbGljeScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnREaXN0cmlidXRpb24sXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6OkRpc3RyaWJ1dGlvbicsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH1cbiAgXSxcblxuICAvLyA9PT09PSBQUklWQVRFIFNFUlZJQ0UgPT09PT1cbiAgLy8gUHJpdmF0ZSBzZXJ2aWNlIGRlbGVnYXRlcyB0bzogY29udGFpbmVyV29ya2xvYWQgKyBvcHRpb25hbGx5IGxvYWRCYWxhbmNlclxuICAncHJpdmF0ZS1zZXJ2aWNlJzogW1xuICAgIC8vIEZyb20gbXVsdGktY29udGFpbmVyLXdvcmtsb2FkIC0gY29yZSByZXNvdXJjZXMgKGFsd2F5cyBwcmVzZW50KVxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0NsdXN0ZXIsIHJlc291cmNlVHlwZTogJ0FXUzo6RUNTOjpDbHVzdGVyJyB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLndvcmtsb2FkU2VjdXJpdHlHcm91cCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpFQzI6OlNlY3VyaXR5R3JvdXAnIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc1NlcnZpY2UsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkVDUzo6U2VydmljZScsXG4gICAgICB1bnJlc29sdmFibGU6IHRydWVcbiAgICB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc1Rhc2tSb2xlLCByZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6Um9sZScgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NUYXNrRGVmaW5pdGlvbiwgcmVzb3VyY2VUeXBlOiAnQVdTOjpFQ1M6OlRhc2tEZWZpbml0aW9uJyB9LFxuICAgIC8vIEZyb20gbXVsdGktY29udGFpbmVyLXdvcmtsb2FkIC0gY29uZGl0aW9uYWwgcmVzb3VyY2VzXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzRXhlY3V0aW9uUm9sZSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0F1dG9TY2FsaW5nUm9sZSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5hdXRvU2NhbGluZ1RhcmdldCxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6QXBwbGljYXRpb25BdXRvU2NhbGluZzo6U2NhbGFibGVUYXJnZXQnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5hdXRvU2NhbGluZ1BvbGljeSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6QXBwbGljYXRpb25BdXRvU2NhbGluZzo6U2NhbGluZ1BvbGljeScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZSxcbiAgICAgIHVucmVzb2x2YWJsZTogdHJ1ZVxuICAgIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzRWMySW5zdGFuY2VSb2xlLCByZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6Um9sZScsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmV2ZW50QnVzUm9sZUZvclNjaGVkdWxlZEluc3RhbmNlUmVmcmVzaCxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpSb2xlJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NFYzJJbnN0YW5jZVByb2ZpbGUsIHJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpJbnN0YW5jZVByb2ZpbGUnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NFYzJJbnN0YW5jZUxhdW5jaFRlbXBsYXRlLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpFQzI6OkxhdW5jaFRlbXBsYXRlJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzRWMyQXV0b3NjYWxpbmdHcm91cCxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6QXV0b1NjYWxpbmc6OkF1dG9TY2FsaW5nR3JvdXAnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NFYzJGb3JjZURlbGV0ZUF1dG9zY2FsaW5nR3JvdXBDdXN0b21SZXNvdXJjZSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGb3JtYXRpb246OkN1c3RvbVJlc291cmNlJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzRWMyQ2FwYWNpdHlQcm92aWRlcixcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6RUNTOjpDYXBhY2l0eVByb3ZpZGVyJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzRWMyQ2FwYWNpdHlQcm92aWRlckFzc29jaWF0aW9uLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpFQ1M6OkNsdXN0ZXJDYXBhY2l0eVByb3ZpZGVyQXNzb2NpYXRpb25zJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuc2NoZWR1bGVyUnVsZUZvclNjaGVkdWxlZEluc3RhbmNlUmVmcmVzaCxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6U2NoZWR1bGVyOjpTY2hlZHVsZScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0VjMkF1dG9zY2FsaW5nR3JvdXBXYXJtUG9vbCxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6QXV0b1NjYWxpbmc6Oldhcm1Qb29sJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NDb2RlRGVwbG95QXBwLCByZXNvdXJjZVR5cGU6ICdBV1M6OkNvZGVEZXBsb3k6OkFwcGxpY2F0aW9uJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY29kZURlcGxveURlcGxveW1lbnRHcm91cCxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q29kZURlcGxveTo6RGVwbG95bWVudEdyb3VwJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzTG9nR3JvdXAsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkxvZ3M6OkxvZ0dyb3VwJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlLFxuICAgICAgdW5yZXNvbHZhYmxlOiB0cnVlXG4gICAgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lZnNBY2Nlc3NQb2ludCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpFRlM6OkFjY2Vzc1BvaW50JywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICAvLyBGcm9tIGFwcGxpY2F0aW9uLWxvYWQtYmFsYW5jZXIgKGNvbmRpdGlvbmFsIC0gb25seSBpZiBBTEIgaXMgY29uZmlndXJlZClcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMubG9hZEJhbGFuY2VyLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpFbGFzdGljTG9hZEJhbGFuY2luZ1YyOjpMb2FkQmFsYW5jZXInLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5sb2FkQmFsYW5jZXJTZWN1cml0eUdyb3VwLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpFQzI6OlNlY3VyaXR5R3JvdXAnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmxpc3RlbmVyLCByZXNvdXJjZVR5cGU6ICdBV1M6OkVsYXN0aWNMb2FkQmFsYW5jaW5nVjI6Okxpc3RlbmVyJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY3VzdG9tUmVzb3VyY2VEZWZhdWx0RG9tYWluLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6Q3VzdG9tUmVzb3VyY2UnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmRuc1JlY29yZCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpSb3V0ZTUzOjpSZWNvcmRTZXQnLCBjb25kaXRpb25hbDogdHJ1ZSB9XG4gIF0sXG5cbiAgLy8gPT09PT0gV09SS0VSIFNFUlZJQ0UgPT09PT1cbiAgLy8gV29ya2VyIHNlcnZpY2UgZGVsZWdhdGVzIHRvOiBjb250YWluZXJXb3JrbG9hZCBvbmx5XG4gICd3b3JrZXItc2VydmljZSc6IFtcbiAgICAvLyBGcm9tIG11bHRpLWNvbnRhaW5lci13b3JrbG9hZCAtIGNvcmUgcmVzb3VyY2VzIChhbHdheXMgcHJlc2VudClcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NDbHVzdGVyLCByZXNvdXJjZVR5cGU6ICdBV1M6OkVDUzo6Q2x1c3RlcicgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy53b3JrbG9hZFNlY3VyaXR5R3JvdXAsIHJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpTZWN1cml0eUdyb3VwJyB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NTZXJ2aWNlLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpFQ1M6OlNlcnZpY2UnLFxuICAgICAgdW5yZXNvbHZhYmxlOiB0cnVlXG4gICAgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NUYXNrUm9sZSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzVGFza0RlZmluaXRpb24sIHJlc291cmNlVHlwZTogJ0FXUzo6RUNTOjpUYXNrRGVmaW5pdGlvbicgfSxcbiAgICAvLyBGcm9tIG11bHRpLWNvbnRhaW5lci13b3JrbG9hZCAtIGNvbmRpdGlvbmFsIHJlc291cmNlc1xuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0V4ZWN1dGlvblJvbGUsIHJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpSb2xlJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NBdXRvU2NhbGluZ1JvbGUsIHJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpSb2xlJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYXV0b1NjYWxpbmdUYXJnZXQsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkFwcGxpY2F0aW9uQXV0b1NjYWxpbmc6OlNjYWxhYmxlVGFyZ2V0JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYXV0b1NjYWxpbmdQb2xpY3ksXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkFwcGxpY2F0aW9uQXV0b1NjYWxpbmc6OlNjYWxpbmdQb2xpY3knLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWUsXG4gICAgICB1bnJlc29sdmFibGU6IHRydWVcbiAgICB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0VjMkluc3RhbmNlUm9sZSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5ldmVudEJ1c1JvbGVGb3JTY2hlZHVsZWRJbnN0YW5jZVJlZnJlc2gsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6Um9sZScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzRWMySW5zdGFuY2VQcm9maWxlLCByZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6SW5zdGFuY2VQcm9maWxlJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzRWMySW5zdGFuY2VMYXVuY2hUZW1wbGF0ZSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpMYXVuY2hUZW1wbGF0ZScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0VjMkF1dG9zY2FsaW5nR3JvdXAsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkF1dG9TY2FsaW5nOjpBdXRvU2NhbGluZ0dyb3VwJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzRWMyRm9yY2VEZWxldGVBdXRvc2NhbGluZ0dyb3VwQ3VzdG9tUmVzb3VyY2UsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0VjMkNhcGFjaXR5UHJvdmlkZXIsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkVDUzo6Q2FwYWNpdHlQcm92aWRlcicsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0VjMkNhcGFjaXR5UHJvdmlkZXJBc3NvY2lhdGlvbixcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6RUNTOjpDbHVzdGVyQ2FwYWNpdHlQcm92aWRlckFzc29jaWF0aW9ucycsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLnNjaGVkdWxlclJ1bGVGb3JTY2hlZHVsZWRJbnN0YW5jZVJlZnJlc2gsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OlNjaGVkdWxlcjo6U2NoZWR1bGUnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NFYzJBdXRvc2NhbGluZ0dyb3VwV2FybVBvb2wsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkF1dG9TY2FsaW5nOjpXYXJtUG9vbCcsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzQ29kZURlcGxveUFwcCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpDb2RlRGVwbG95OjpBcHBsaWNhdGlvbicsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNvZGVEZXBsb3lEZXBsb3ltZW50R3JvdXAsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNvZGVEZXBsb3k6OkRlcGxveW1lbnRHcm91cCcsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0xvZ0dyb3VwLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpMb2dzOjpMb2dHcm91cCcsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZSxcbiAgICAgIHVucmVzb2x2YWJsZTogdHJ1ZVxuICAgIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWZzQWNjZXNzUG9pbnQsIHJlc291cmNlVHlwZTogJ0FXUzo6RUZTOjpBY2Nlc3NQb2ludCcsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmF0bGFzTW9uZ29Vc2VyQXNzb2NpYXRlZFdpdGhSb2xlLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnTW9uZ29EQjo6U3RwQXRsYXNWMTo6RGF0YWJhc2VVc2VyJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfVxuICBdLFxuXG4gIC8vID09PT09IE9USEVSIFJFU09VUkNFUyA9PT09PVxuICAnY3VzdG9tLXJlc291cmNlLWluc3RhbmNlJzogW10sXG4gICdjdXN0b20tcmVzb3VyY2UtZGVmaW5pdGlvbic6IFtdLFxuICAnZGVwbG95bWVudC1zY3JpcHQnOiBbXSxcbiAgJ2F3cy1jZGstY29uc3RydWN0JzogW11cbn07XG4iLCAiaW1wb3J0IHsgQ0hJTERfUkVTT1VSQ0VTIH0gZnJvbSAnLi9jaGlsZC1yZXNvdXJjZXMnO1xuXG4vLyBQcml2YXRlIHN5bWJvbHMgZm9yIGludGVybmFsIG1ldGhvZHMgLSBub3QgYWNjZXNzaWJsZSBmcm9tIG91dHNpZGVcbi8vIFVzZSBTeW1ib2wuZm9yKCkgc28gaXQgY2FuIGJlIGFjY2Vzc2VkIGFjcm9zcyBtb2R1bGVzIChjcnVjaWFsIGZvciBucG0gcGFja2FnZSBpbnRlcm9wKVxuY29uc3QgZ2V0UGFyYW1SZWZlcmVuY2VTeW1ib2wgPSBTeW1ib2wuZm9yKCdzdGFja3RhcGU6Z2V0UGFyYW1SZWZlcmVuY2UnKTtcbmNvbnN0IGdldFR5cGVTeW1ib2wgPSBTeW1ib2wuZm9yKCdzdGFja3RhcGU6Z2V0VHlwZScpO1xuY29uc3QgZ2V0UHJvcGVydGllc1N5bWJvbCA9IFN5bWJvbC5mb3IoJ3N0YWNrdGFwZTpnZXRQcm9wZXJ0aWVzJyk7XG5jb25zdCBnZXRPdmVycmlkZXNTeW1ib2wgPSBTeW1ib2wuZm9yKCdzdGFja3RhcGU6Z2V0T3ZlcnJpZGVzJyk7XG5jb25zdCBnZXRUcmFuc2Zvcm1zU3ltYm9sID0gU3ltYm9sLmZvcignc3RhY2t0YXBlOmdldFRyYW5zZm9ybXMnKTtcbmNvbnN0IHNldFJlc291cmNlTmFtZVN5bWJvbCA9IFN5bWJvbC5mb3IoJ3N0YWNrdGFwZTpzZXRSZXNvdXJjZU5hbWUnKTtcbmNvbnN0IHJlc291cmNlUGFyYW1SZWZTeW1ib2wgPSBTeW1ib2wuZm9yKCdzdGFja3RhcGU6aXNSZXNvdXJjZVBhcmFtUmVmJyk7XG5jb25zdCBiYXNlVHlwZVByb3BlcnRpZXNTeW1ib2wgPSBTeW1ib2wuZm9yKCdzdGFja3RhcGU6aXNCYXNlVHlwZVByb3BlcnRpZXMnKTtcblxuLy8gRHVjay10eXBlIGNoZWNrZXJzIC0gdXNlIHN5bWJvbHMgaW5zdGVhZCBvZiBpbnN0YW5jZW9mIGZvciBjcm9zcy1tb2R1bGUgY29tcGF0aWJpbGl0eVxuY29uc3QgaXNCYXNlUmVzb3VyY2UgPSAodmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBCYXNlUmVzb3VyY2UgPT5cbiAgdmFsdWUgIT09IG51bGwgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiBzZXRSZXNvdXJjZU5hbWVTeW1ib2wgaW4gdmFsdWU7XG5cbmNvbnN0IGlzQmFzZVR5cGVQcm9wZXJ0aWVzID0gKHZhbHVlOiB1bmtub3duKTogdmFsdWUgaXMgQmFzZVR5cGVQcm9wZXJ0aWVzID0+XG4gIHZhbHVlICE9PSBudWxsICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgYmFzZVR5cGVQcm9wZXJ0aWVzU3ltYm9sIGluIHZhbHVlO1xuXG5jb25zdCBpc1Jlc291cmNlUGFyYW1SZWZlcmVuY2UgPSAodmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBSZXNvdXJjZVBhcmFtUmVmZXJlbmNlID0+XG4gIHZhbHVlICE9PSBudWxsICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgcmVzb3VyY2VQYXJhbVJlZlN5bWJvbCBpbiB2YWx1ZTtcblxuY29uc3QgZGVmZXJyZWROYW1lU3ltYm9sID0gU3ltYm9sLmZvcignc3RhY2t0YXBlOmlzRGVmZXJyZWRSZXNvdXJjZU5hbWUnKTtcblxuY29uc3QgaXNEZWZlcnJlZFJlc291cmNlTmFtZSA9ICh2YWx1ZTogdW5rbm93bik6IHZhbHVlIGlzIERlZmVycmVkUmVzb3VyY2VOYW1lID0+XG4gIHZhbHVlICE9PSBudWxsICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgZGVmZXJyZWROYW1lU3ltYm9sIGluIHZhbHVlO1xuXG4vKipcbiAqIEEgZGVmZXJyZWQgcmVmZXJlbmNlIHRvIGEgcmVzb3VyY2UncyBuYW1lLlxuICogVXNlZCB3aGVuIGFjY2Vzc2luZyByZXNvdXJjZU5hbWUgYmVmb3JlIHRoZSBuYW1lIGlzIHNldC5cbiAqIFJlc29sdmVzIGxhemlseSBkdXJpbmcgdHJhbnNmb3JtYXRpb24uXG4gKi9cbmNsYXNzIERlZmVycmVkUmVzb3VyY2VOYW1lIHtcbiAgcHJpdmF0ZSBfX3Jlc291cmNlOiBCYXNlUmVzb3VyY2U7XG4gIHJlYWRvbmx5IFtkZWZlcnJlZE5hbWVTeW1ib2xdID0gdHJ1ZTtcblxuICBjb25zdHJ1Y3RvcihyZXNvdXJjZTogQmFzZVJlc291cmNlKSB7XG4gICAgdGhpcy5fX3Jlc291cmNlID0gcmVzb3VyY2U7XG4gIH1cblxuICByZXNvbHZlKCk6IHN0cmluZyB7XG4gICAgLy8gQXQgcmVzb2x1dGlvbiB0aW1lLCB0aGUgbmFtZSBzaG91bGQgYmUgc2V0XG4gICAgY29uc3QgbmFtZSA9ICh0aGlzLl9fcmVzb3VyY2UgYXMgYW55KS5fcmVzb3VyY2VOYW1lO1xuICAgIGlmIChuYW1lID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ1Jlc291cmNlIG5hbWUgbm90IHNldC4gTWFrZSBzdXJlIHRvIGFkZCB0aGUgcmVzb3VyY2UgdG8gdGhlIHJlc291cmNlcyBvYmplY3QgaW4geW91ciBjb25maWcuICcgK1xuICAgICAgICAgICdUaGUgcmVzb3VyY2UgbmFtZSBpcyBhdXRvbWF0aWNhbGx5IGRlcml2ZWQgZnJvbSB0aGUgb2JqZWN0IGtleS4nXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gbmFtZTtcbiAgfVxuXG4gIHRvU3RyaW5nKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucmVzb2x2ZSgpO1xuICB9XG5cbiAgdG9KU09OKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucmVzb2x2ZSgpO1xuICB9XG5cbiAgdmFsdWVPZigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnJlc29sdmUoKTtcbiAgfVxufVxuXG4vKipcbiAqIEEgcmVmZXJlbmNlIHRvIGEgcmVzb3VyY2UgcGFyYW1ldGVyIHRoYXQgd2lsbCBiZSByZXNvbHZlZCBhdCBydW50aW1lLlxuICogU3RvcmVzIGEgcmVmZXJlbmNlIHRvIHRoZSByZXNvdXJjZSBmb3IgbGF6eSBuYW1lIHJlc29sdXRpb24uXG4gKi9cbmV4cG9ydCBjbGFzcyBSZXNvdXJjZVBhcmFtUmVmZXJlbmNlIHtcbiAgcHJpdmF0ZSBfX3Jlc291cmNlOiBCYXNlUmVzb3VyY2U7XG4gIHByaXZhdGUgX19wYXJhbTogc3RyaW5nO1xuICByZWFkb25seSBbcmVzb3VyY2VQYXJhbVJlZlN5bWJvbF0gPSB0cnVlO1xuXG4gIGNvbnN0cnVjdG9yKHJlc291cmNlOiBCYXNlUmVzb3VyY2UsIHBhcmFtOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9fcmVzb3VyY2UgPSByZXNvdXJjZTtcbiAgICB0aGlzLl9fcGFyYW0gPSBwYXJhbTtcbiAgfVxuXG4gIHRvU3RyaW5nKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAkUmVzb3VyY2VQYXJhbSgnJHt0aGlzLl9fcmVzb3VyY2UucmVzb3VyY2VOYW1lfScsICcke3RoaXMuX19wYXJhbX0nKWA7XG4gIH1cblxuICB0b0pTT04oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy50b1N0cmluZygpO1xuICB9XG5cbiAgLy8gQWxsb3cgdGhlIHJlZmVyZW5jZSB0byBiZSB1c2VkIGRpcmVjdGx5IGluIHRlbXBsYXRlIHN0cmluZ3NcbiAgdmFsdWVPZigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnRvU3RyaW5nKCk7XG4gIH1cbn1cblxuLyoqXG4gKiBCYXNlIGNsYXNzIGZvciB0eXBlL3Byb3BlcnRpZXMgc3RydWN0dXJlcyAoZW5naW5lcywgcGFja2FnaW5nLCBldmVudHMsIGV0Yy4pXG4gKi9cbmV4cG9ydCBjbGFzcyBCYXNlVHlwZVByb3BlcnRpZXMge1xuICBwdWJsaWMgcmVhZG9ubHkgdHlwZTogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgcHJvcGVydGllczogYW55O1xuICByZWFkb25seSBbYmFzZVR5cGVQcm9wZXJ0aWVzU3ltYm9sXSA9IHRydWU7XG5cbiAgY29uc3RydWN0b3IodHlwZTogc3RyaW5nLCBwcm9wZXJ0aWVzOiBhbnkpIHtcbiAgICB0aGlzLnR5cGUgPSB0eXBlO1xuICAgIHRoaXMucHJvcGVydGllcyA9IHByb3BlcnRpZXM7XG4gIH1cbn1cblxuLyoqXG4gKiBCYXNlIHJlc291cmNlIGNsYXNzIHRoYXQgcHJvdmlkZXMgY29tbW9uIGZ1bmN0aW9uYWxpdHlcbiAqL1xuZXhwb3J0IGNsYXNzIEJhc2VSZXNvdXJjZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3R5cGU6IHN0cmluZztcbiAgcHJpdmF0ZSBfcHJvcGVydGllczogYW55O1xuICBwcml2YXRlIF9vdmVycmlkZXM/OiBhbnk7XG4gIHByaXZhdGUgX3RyYW5zZm9ybXM/OiBhbnk7XG4gIHByaXZhdGUgX3Jlc291cmNlTmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIF9leHBsaWNpdE5hbWU6IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IobmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkLCB0eXBlOiBzdHJpbmcsIHByb3BlcnRpZXM6IGFueSwgb3ZlcnJpZGVzPzogYW55KSB7XG4gICAgdGhpcy5fcmVzb3VyY2VOYW1lID0gbmFtZTtcbiAgICB0aGlzLl9leHBsaWNpdE5hbWUgPSBuYW1lICE9PSB1bmRlZmluZWQ7XG4gICAgdGhpcy5fdHlwZSA9IHR5cGU7XG5cbiAgICAvLyBTdG9yZSBwcm9wZXJ0aWVzIGFuZCBvdmVycmlkZXMgaW5pdGlhbGx5IC0gdGhleSdsbCBiZSBwcm9jZXNzZWQgd2hlbiBuYW1lIGlzIHNldFxuICAgIHRoaXMuX3Byb3BlcnRpZXMgPSBwcm9wZXJ0aWVzO1xuICAgIHRoaXMuX292ZXJyaWRlcyA9IG92ZXJyaWRlcztcblxuICAgIC8vIElmIG5hbWUgaXMgYWxyZWFkeSBzZXQsIHByb2Nlc3Mgb3ZlcnJpZGVzIGFuZCB0cmFuc2Zvcm1zIG5vd1xuICAgIGlmIChuYW1lICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuX3Byb2Nlc3NPdmVycmlkZXNBbmRUcmFuc2Zvcm1zKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFByb2Nlc3Mgb3ZlcnJpZGVzIGFuZCB0cmFuc2Zvcm1zIGV4dHJhY3Rpb24gZnJvbSBwcm9wZXJ0aWVzLlxuICAgKiBDYWxsZWQgd2hlbiB0aGUgcmVzb3VyY2UgbmFtZSBpcyBhdmFpbGFibGUuXG4gICAqL1xuICBwcml2YXRlIF9wcm9jZXNzT3ZlcnJpZGVzQW5kVHJhbnNmb3JtcygpOiB2b2lkIHtcbiAgICBjb25zdCBwcm9wZXJ0aWVzID0gdGhpcy5fcHJvcGVydGllcztcbiAgICBpZiAocHJvcGVydGllcyAmJiB0eXBlb2YgcHJvcGVydGllcyA9PT0gJ29iamVjdCcpIHtcbiAgICAgIC8vIENsb25lIHByb3BlcnRpZXMgd2l0aG91dCBvdmVycmlkZXMgYW5kIHRyYW5zZm9ybXNcbiAgICAgIGNvbnN0IGZpbmFsUHJvcGVydGllcyA9IHsgLi4ucHJvcGVydGllcyB9O1xuXG4gICAgICAvLyBIYW5kbGUgb3ZlcnJpZGVzXG4gICAgICBpZiAoJ292ZXJyaWRlcycgaW4gZmluYWxQcm9wZXJ0aWVzKSB7XG4gICAgICAgIGNvbnN0IHByb3BlcnRpZXNPdmVycmlkZXMgPSBmaW5hbFByb3BlcnRpZXMub3ZlcnJpZGVzO1xuICAgICAgICBkZWxldGUgZmluYWxQcm9wZXJ0aWVzLm92ZXJyaWRlcztcblxuICAgICAgICAvLyBUcmFuc2Zvcm0gb3ZlcnJpZGVzIHVzaW5nIGNmTG9naWNhbE5hbWVzXG4gICAgICAgIGlmIChwcm9wZXJ0aWVzT3ZlcnJpZGVzICYmIHR5cGVvZiBwcm9wZXJ0aWVzT3ZlcnJpZGVzID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgIHRoaXMuX292ZXJyaWRlcyA9IHRyYW5zZm9ybU92ZXJyaWRlc1RvTG9naWNhbE5hbWVzKHRoaXMuX3Jlc291cmNlTmFtZSEsIHRoaXMuX3R5cGUsIHByb3BlcnRpZXNPdmVycmlkZXMpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIEhhbmRsZSB0cmFuc2Zvcm1zXG4gICAgICBpZiAoJ3RyYW5zZm9ybXMnIGluIGZpbmFsUHJvcGVydGllcykge1xuICAgICAgICBjb25zdCBwcm9wZXJ0aWVzVHJhbnNmb3JtcyA9IGZpbmFsUHJvcGVydGllcy50cmFuc2Zvcm1zO1xuICAgICAgICBkZWxldGUgZmluYWxQcm9wZXJ0aWVzLnRyYW5zZm9ybXM7XG5cbiAgICAgICAgLy8gVHJhbnNmb3JtIHRyYW5zZm9ybXMgdXNpbmcgY2ZMb2dpY2FsTmFtZXMgKHNhbWUgbWFwcGluZyBhcyBvdmVycmlkZXMpXG4gICAgICAgIGlmIChwcm9wZXJ0aWVzVHJhbnNmb3JtcyAmJiB0eXBlb2YgcHJvcGVydGllc1RyYW5zZm9ybXMgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgdGhpcy5fdHJhbnNmb3JtcyA9IHRyYW5zZm9ybVRyYW5zZm9ybXNUb0xvZ2ljYWxOYW1lcyh0aGlzLl9yZXNvdXJjZU5hbWUhLCB0aGlzLl90eXBlLCBwcm9wZXJ0aWVzVHJhbnNmb3Jtcyk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdGhpcy5fcHJvcGVydGllcyA9IGZpbmFsUHJvcGVydGllcztcbiAgICB9XG4gIH1cblxuICAvLyBQdWJsaWMgZ2V0dGVyIGZvciByZXNvdXJjZSBuYW1lICh1c2VkIGZvciByZWZlcmVuY2luZyByZXNvdXJjZXMpXG4gIC8vIFJldHVybnMgYSBkZWZlcnJlZCByZWZlcmVuY2Ugd2hlbiBuYW1lIGlzbid0IHNldCB5ZXQsIHdoaWNoIHJlc29sdmVzIGR1cmluZyB0cmFuc2Zvcm1hdGlvblxuICBnZXQgcmVzb3VyY2VOYW1lKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuX3Jlc291cmNlTmFtZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAvLyBSZXR1cm4gYSBkZWZlcnJlZCByZWZlcmVuY2UgdGhhdCB3aWxsIHJlc29sdmUgZHVyaW5nIHRyYW5zZm9ybWF0aW9uXG4gICAgICAvLyBUeXBlU2NyaXB0IHNlZXMgdGhpcyBhcyBzdHJpbmcgZHVlIHRvIHRvU3RyaW5nL3ZhbHVlT2YsIHJ1bnRpbWUgcmVzb2x2ZXMgbGF6aWx5XG4gICAgICByZXR1cm4gbmV3IERlZmVycmVkUmVzb3VyY2VOYW1lKHRoaXMpIGFzIHVua25vd24gYXMgc3RyaW5nO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fcmVzb3VyY2VOYW1lO1xuICB9XG5cbiAgLyoqXG4gICAqIEludGVybmFsIG1ldGhvZCB0byBzZXQgdGhlIHJlc291cmNlIG5hbWUgZnJvbSB0aGUgb2JqZWN0IGtleS5cbiAgICogQ2FsbGVkIGJ5IHRyYW5zZm9ybUNvbmZpZ1dpdGhSZXNvdXJjZXMuXG4gICAqL1xuICBbc2V0UmVzb3VyY2VOYW1lU3ltYm9sXShuYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fZXhwbGljaXROYW1lICYmIHRoaXMuX3Jlc291cmNlTmFtZSAhPT0gbmFtZSkge1xuICAgICAgLy8gSWYgYW4gZXhwbGljaXQgbmFtZSB3YXMgcHJvdmlkZWQgYW5kIGl0IGRpZmZlcnMgZnJvbSB0aGUga2V5LCB1c2UgdGhlIGV4cGxpY2l0IG5hbWVcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHRoaXMuX3Jlc291cmNlTmFtZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLl9yZXNvdXJjZU5hbWUgPSBuYW1lO1xuICAgICAgLy8gTm93IHRoYXQgd2UgaGF2ZSBhIG5hbWUsIHByb2Nlc3Mgb3ZlcnJpZGVzIGFuZCB0cmFuc2Zvcm1zXG4gICAgICB0aGlzLl9wcm9jZXNzT3ZlcnJpZGVzQW5kVHJhbnNmb3JtcygpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFByaXZhdGUgbWV0aG9kcyB1c2luZyBzeW1ib2xzIC0gbm90IGFjY2Vzc2libGUgZnJvbSBvdXRzaWRlIG9yIGluIGF1dG9jb21wbGV0ZVxuICBbZ2V0UGFyYW1SZWZlcmVuY2VTeW1ib2xdKHBhcmFtTmFtZTogc3RyaW5nKTogUmVzb3VyY2VQYXJhbVJlZmVyZW5jZSB7XG4gICAgcmV0dXJuIG5ldyBSZXNvdXJjZVBhcmFtUmVmZXJlbmNlKHRoaXMsIHBhcmFtTmFtZSk7XG4gIH1cblxuICBbZ2V0VHlwZVN5bWJvbF0oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fdHlwZTtcbiAgfVxuXG4gIFtnZXRQcm9wZXJ0aWVzU3ltYm9sXSgpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLl9wcm9wZXJ0aWVzO1xuICB9XG5cbiAgW2dldE92ZXJyaWRlc1N5bWJvbF0oKTogYW55IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fb3ZlcnJpZGVzO1xuICB9XG5cbiAgW2dldFRyYW5zZm9ybXNTeW1ib2xdKCk6IGFueSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX3RyYW5zZm9ybXM7XG4gIH1cbn1cblxuLyoqXG4gKiBUcmFuc2Zvcm0gdXNlci1mcmllbmRseSBvdmVycmlkZXMgKHdpdGggcHJvcGVydHkgbmFtZXMgbGlrZSAnYnVja2V0JywgJ2xhbWJkYUxvZ0dyb3VwJylcbiAqIHRvIENsb3VkRm9ybWF0aW9uIGxvZ2ljYWwgbmFtZXMgdXNpbmcgY2ZMb2dpY2FsTmFtZXNcbiAqL1xuZnVuY3Rpb24gdHJhbnNmb3JtT3ZlcnJpZGVzVG9Mb2dpY2FsTmFtZXMocmVzb3VyY2VOYW1lOiBzdHJpbmcsIHJlc291cmNlVHlwZTogc3RyaW5nLCBvdmVycmlkZXM6IGFueSk6IGFueSB7XG4gIC8vIEdldCBjaGlsZCByZXNvdXJjZXMgZm9yIHRoaXMgcmVzb3VyY2UgdHlwZVxuICBjb25zdCBjaGlsZFJlc291cmNlcyA9IENISUxEX1JFU09VUkNFU1tyZXNvdXJjZVR5cGVdIHx8IFtdO1xuXG4gIC8vIEJ1aWxkIGEgbWFwIG9mIHByb3BlcnR5IG5hbWVzIHRvIGNoaWxkIHJlc291cmNlc1xuICBjb25zdCBwcm9wZXJ0eU5hbWVNYXAgPSBuZXcgTWFwPHN0cmluZywgYW55PigpO1xuXG4gIGZvciAoY29uc3QgY2hpbGRSZXNvdXJjZSBvZiBjaGlsZFJlc291cmNlcykge1xuICAgIC8vIFRoZSBsb2dpY2FsTmFtZSBmdW5jdGlvbiBoYXMgYSBuYW1lIHByb3BlcnR5IHRoYXQgbWF0Y2hlcyB0aGUgcHJvcGVydHkgbmFtZVxuICAgIGlmIChjaGlsZFJlc291cmNlLmxvZ2ljYWxOYW1lICYmIGNoaWxkUmVzb3VyY2UubG9naWNhbE5hbWUubmFtZSkge1xuICAgICAgcHJvcGVydHlOYW1lTWFwLnNldChjaGlsZFJlc291cmNlLmxvZ2ljYWxOYW1lLm5hbWUsIGNoaWxkUmVzb3VyY2UpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFRyYW5zZm9ybSBvdmVycmlkZXMgb2JqZWN0XG4gIGNvbnN0IHRyYW5zZm9ybWVkT3ZlcnJpZGVzOiBhbnkgPSB7fTtcbiAgY29uc3QgZXJyb3JNZXNzYWdlID0gYE92ZXJyaWRlIG9mIHByb3BlcnR5IHtwcm9wZXJ0eU5hbWV9IG9mIHJlc291cmNlICR7cmVzb3VyY2VOYW1lfSBpcyBub3Qgc3VwcG9ydGVkLlxcblxuUmVtb3ZlIHRoZSBvdmVycmlkZSwgcnVuICdzdGFja3RhcGUgY29tcGlsZTp0ZW1wbGF0ZScgY29tbWFuZCwgYW5kIGZpbmQgdGhlIGxvZ2ljYWwgbmFtZSBvZiB0aGUgcmVzb3VyY2UgeW91IHdhbnQgdG8gb3ZlcnJpZGUgbWFudWFsbHkuIFRoZW4gYWRkIGl0IHRvIHRoZSBvdmVycmlkZXMgb2JqZWN0LmA7XG5cbiAgZm9yIChjb25zdCBwcm9wZXJ0eU5hbWUgaW4gb3ZlcnJpZGVzKSB7XG4gICAgY29uc3QgY2hpbGRSZXNvdXJjZSA9IHByb3BlcnR5TmFtZU1hcC5nZXQocHJvcGVydHlOYW1lKTtcblxuICAgIC8vIFNraXAgdW5yZXNvbHZhYmxlIHJlc291cmNlc1xuICAgIGlmIChjaGlsZFJlc291cmNlPy51bnJlc29sdmFibGUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihlcnJvck1lc3NhZ2UucmVwbGFjZSgne3Byb3BlcnR5TmFtZX0nLCBwcm9wZXJ0eU5hbWUpKTtcbiAgICB9XG5cbiAgICBpZiAoY2hpbGRSZXNvdXJjZSkge1xuICAgICAgY29uc3QgbG9naWNhbE5hbWVGbiA9IGNoaWxkUmVzb3VyY2UubG9naWNhbE5hbWU7XG4gICAgICAvLyBDYWxsIHRoZSBjZkxvZ2ljYWxOYW1lcyBmdW5jdGlvbiB0byBnZXQgdGhlIGFjdHVhbCBDbG91ZEZvcm1hdGlvbiBsb2dpY2FsIG5hbWVcbiAgICAgIC8vIFRyeSB3aXRoIHJlc291cmNlTmFtZSBmaXJzdCAobW9zdCBjb21tb24pLCB0aGVuIHRyeSB3aXRob3V0IGFyZ3VtZW50c1xuICAgICAgbGV0IGxvZ2ljYWxOYW1lOiBzdHJpbmc7XG4gICAgICB0cnkge1xuICAgICAgICBsb2dpY2FsTmFtZSA9IGxvZ2ljYWxOYW1lRm4ocmVzb3VyY2VOYW1lKTtcbiAgICAgIH0gY2F0Y2gge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGxvZ2ljYWxOYW1lID0gbG9naWNhbE5hbWVGbigpO1xuICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAvLyBJZiBib3RoIGZhaWwsIHVzZSBwcm9wZXJ0eSBuYW1lIGFzLWlzXG4gICAgICAgICAgbG9naWNhbE5hbWUgPSBwcm9wZXJ0eU5hbWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChsb2dpY2FsTmFtZS5pbmNsdWRlcygndW5kZWZpbmVkJykpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGVycm9yTWVzc2FnZS5yZXBsYWNlKCd7cHJvcGVydHlOYW1lfScsIHByb3BlcnR5TmFtZSkpO1xuICAgICAgfVxuICAgICAgdHJhbnNmb3JtZWRPdmVycmlkZXNbbG9naWNhbE5hbWVdID0gb3ZlcnJpZGVzW3Byb3BlcnR5TmFtZV07XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIElmIG5vdCBmb3VuZCBpbiBtYXAsIHVzZSBwcm9wZXJ0eSBuYW1lIGFzLWlzIChzaG91bGRuJ3QgaGFwcGVuIHdpdGggcHJvcGVyIHR5cGVzKVxuICAgICAgdHJhbnNmb3JtZWRPdmVycmlkZXNbcHJvcGVydHlOYW1lXSA9IG92ZXJyaWRlc1twcm9wZXJ0eU5hbWVdO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0cmFuc2Zvcm1lZE92ZXJyaWRlcztcbn1cblxuLyoqXG4gKiBUcmFuc2Zvcm0gdXNlci1mcmllbmRseSB0cmFuc2Zvcm1zICh3aXRoIHByb3BlcnR5IG5hbWVzIGxpa2UgJ2xhbWJkYScsICdsYW1iZGFMb2dHcm91cCcpXG4gKiB0byBDbG91ZEZvcm1hdGlvbiBsb2dpY2FsIG5hbWVzIHVzaW5nIGNmTG9naWNhbE5hbWVzXG4gKiBTaW1pbGFyIHRvIG92ZXJyaWRlcyBidXQgdGhlIHZhbHVlcyBhcmUgZnVuY3Rpb25zIGluc3RlYWQgb2Ygb2JqZWN0c1xuICovXG5mdW5jdGlvbiB0cmFuc2Zvcm1UcmFuc2Zvcm1zVG9Mb2dpY2FsTmFtZXMocmVzb3VyY2VOYW1lOiBzdHJpbmcsIHJlc291cmNlVHlwZTogc3RyaW5nLCB0cmFuc2Zvcm1zOiBhbnkpOiBhbnkge1xuICAvLyBHZXQgY2hpbGQgcmVzb3VyY2VzIGZvciB0aGlzIHJlc291cmNlIHR5cGVcbiAgY29uc3QgY2hpbGRSZXNvdXJjZXMgPSBDSElMRF9SRVNPVVJDRVNbcmVzb3VyY2VUeXBlXSB8fCBbXTtcblxuICAvLyBCdWlsZCBhIG1hcCBvZiBwcm9wZXJ0eSBuYW1lcyB0byBjaGlsZCByZXNvdXJjZXNcbiAgY29uc3QgcHJvcGVydHlOYW1lTWFwID0gbmV3IE1hcDxzdHJpbmcsIGFueT4oKTtcblxuICBmb3IgKGNvbnN0IGNoaWxkUmVzb3VyY2Ugb2YgY2hpbGRSZXNvdXJjZXMpIHtcbiAgICAvLyBUaGUgbG9naWNhbE5hbWUgZnVuY3Rpb24gaGFzIGEgbmFtZSBwcm9wZXJ0eSB0aGF0IG1hdGNoZXMgdGhlIHByb3BlcnR5IG5hbWVcbiAgICBpZiAoY2hpbGRSZXNvdXJjZS5sb2dpY2FsTmFtZSAmJiBjaGlsZFJlc291cmNlLmxvZ2ljYWxOYW1lLm5hbWUpIHtcbiAgICAgIHByb3BlcnR5TmFtZU1hcC5zZXQoY2hpbGRSZXNvdXJjZS5sb2dpY2FsTmFtZS5uYW1lLCBjaGlsZFJlc291cmNlKTtcbiAgICB9XG4gIH1cblxuICAvLyBUcmFuc2Zvcm0gdHJhbnNmb3JtcyBvYmplY3RcbiAgY29uc3QgdHJhbnNmb3JtZWRUcmFuc2Zvcm1zOiBhbnkgPSB7fTtcbiAgY29uc3QgZXJyb3JNZXNzYWdlID0gYFRyYW5zZm9ybSBvZiBwcm9wZXJ0eSB7cHJvcGVydHlOYW1lfSBvZiByZXNvdXJjZSAke3Jlc291cmNlTmFtZX0gaXMgbm90IHN1cHBvcnRlZC5cXG5cblJlbW92ZSB0aGUgdHJhbnNmb3JtLCBydW4gJ3N0YWNrdGFwZSBjb21waWxlOnRlbXBsYXRlJyBjb21tYW5kLCBhbmQgZmluZCB0aGUgbG9naWNhbCBuYW1lIG9mIHRoZSByZXNvdXJjZSB5b3Ugd2FudCB0byB0cmFuc2Zvcm0gbWFudWFsbHkuIFRoZW4gYWRkIGl0IHRvIHRoZSB0cmFuc2Zvcm1zIG9iamVjdC5gO1xuXG4gIGZvciAoY29uc3QgcHJvcGVydHlOYW1lIGluIHRyYW5zZm9ybXMpIHtcbiAgICBjb25zdCBjaGlsZFJlc291cmNlID0gcHJvcGVydHlOYW1lTWFwLmdldChwcm9wZXJ0eU5hbWUpO1xuXG4gICAgLy8gU2tpcCB1bnJlc29sdmFibGUgcmVzb3VyY2VzXG4gICAgaWYgKGNoaWxkUmVzb3VyY2U/LnVucmVzb2x2YWJsZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGVycm9yTWVzc2FnZS5yZXBsYWNlKCd7cHJvcGVydHlOYW1lfScsIHByb3BlcnR5TmFtZSkpO1xuICAgIH1cblxuICAgIGlmIChjaGlsZFJlc291cmNlKSB7XG4gICAgICBjb25zdCBsb2dpY2FsTmFtZUZuID0gY2hpbGRSZXNvdXJjZS5sb2dpY2FsTmFtZTtcbiAgICAgIC8vIENhbGwgdGhlIGNmTG9naWNhbE5hbWVzIGZ1bmN0aW9uIHRvIGdldCB0aGUgYWN0dWFsIENsb3VkRm9ybWF0aW9uIGxvZ2ljYWwgbmFtZVxuICAgICAgLy8gVHJ5IHdpdGggcmVzb3VyY2VOYW1lIGZpcnN0IChtb3N0IGNvbW1vbiksIHRoZW4gdHJ5IHdpdGhvdXQgYXJndW1lbnRzXG4gICAgICBsZXQgbG9naWNhbE5hbWU6IHN0cmluZztcbiAgICAgIHRyeSB7XG4gICAgICAgIGxvZ2ljYWxOYW1lID0gbG9naWNhbE5hbWVGbihyZXNvdXJjZU5hbWUpO1xuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgbG9naWNhbE5hbWUgPSBsb2dpY2FsTmFtZUZuKCk7XG4gICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgIC8vIElmIGJvdGggZmFpbCwgdXNlIHByb3BlcnR5IG5hbWUgYXMtaXNcbiAgICAgICAgICBsb2dpY2FsTmFtZSA9IHByb3BlcnR5TmFtZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKGxvZ2ljYWxOYW1lLmluY2x1ZGVzKCd1bmRlZmluZWQnKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoZXJyb3JNZXNzYWdlLnJlcGxhY2UoJ3twcm9wZXJ0eU5hbWV9JywgcHJvcGVydHlOYW1lKSk7XG4gICAgICB9XG4gICAgICB0cmFuc2Zvcm1lZFRyYW5zZm9ybXNbbG9naWNhbE5hbWVdID0gdHJhbnNmb3Jtc1twcm9wZXJ0eU5hbWVdO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBJZiBub3QgZm91bmQgaW4gbWFwLCB1c2UgcHJvcGVydHkgbmFtZSBhcy1pcyAoc2hvdWxkbid0IGhhcHBlbiB3aXRoIHByb3BlciB0eXBlcylcbiAgICAgIHRyYW5zZm9ybWVkVHJhbnNmb3Jtc1twcm9wZXJ0eU5hbWVdID0gdHJhbnNmb3Jtc1twcm9wZXJ0eU5hbWVdO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0cmFuc2Zvcm1lZFRyYW5zZm9ybXM7XG59XG5cbmV4cG9ydCB0eXBlIEdldENvbmZpZ1BhcmFtcyA9IHtcbiAgLyoqXG4gICAqIFByb2plY3QgbmFtZSB1c2VkIGZvciB0aGlzIG9wZXJhdGlvblxuICAgKi9cbiAgcHJvamVjdE5hbWU6IHN0cmluZztcbiAgLyoqXG4gICAqIFN0YWdlIChcImVudmlyb25tZW50XCIpIHVzZWQgZm9yIHRoaXMgb3BlcmF0aW9uXG4gICAqL1xuICBzdGFnZTogc3RyaW5nO1xuICAvKipcbiAgICogQVdTIHJlZ2lvbiB1c2VkIGZvciB0aGlzIG9wZXJhdGlvblxuICAgKiBUaGUgbGlzdCBvZiBhdmFpbGFibGUgcmVnaW9ucyBpcyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cuYXdzLXNlcnZpY2VzLmluZm8vcmVnaW9ucy5odG1sXG4gICAqL1xuICByZWdpb246IHN0cmluZztcbiAgLyoqXG4gICAqIExpc3Qgb2YgYXJndW1lbnRzIHBhc3NlZCB0byB0aGUgb3BlcmF0aW9uXG4gICAqL1xuICBjbGlBcmdzOiBTdGFja3RhcGVBcmdzO1xuICAvKipcbiAgICogU3RhY2t0YXBlIGNvbW1hbmQgdXNlZCB0byBwZXJmb3JtIHRoaXMgb3BlcmF0aW9uIChjYW4gYmUgZWl0aGVyIGRlcGxveSwgY29kZWJ1aWxkOmRlcGxveSwgZGVsZXRlLCBldGMuKVxuICAgKi9cbiAgY29tbWFuZDogc3RyaW5nO1xuICAvKipcbiAgICogTG9jYWxseS1jb25maWd1cmVkIEFXUyBwcm9maWxlIHVzZWQgdG8gZXhlY3V0ZSB0aGUgb3BlcmF0aW9uLlxuICAgKiBEb2Vzbid0IGFwcGx5IGlmIHlvdSBoYXZlIHlvdXIgQVdTIGFjY291bnQgY29ubmVjdGVkIGluIFwiYXV0b21hdGljXCIgbW9kZS5cbiAgICovXG4gIGF3c1Byb2ZpbGU6IHN0cmluZztcbiAgLyoqXG4gICAqIEluZm9ybWF0aW9uIGFib3V0IHRoZSB1c2VyIHBlcmZvcm1pbmcgdGhlIHN0YWNrIG9wZXJhdGlvblxuICAgKi9cbiAgdXNlcjoge1xuICAgIGlkOiBzdHJpbmc7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIGVtYWlsOiBzdHJpbmc7XG4gIH07XG59O1xuXG4vKipcbiAqIEhlbHBlciBmdW5jdGlvbiB0byBkZWZpbmUgYSBjb25maWcgd2l0aCBhdXRvbWF0aWMgdHJhbnNmb3JtYXRpb25cbiAqIFVzZSB0aGlzIHdoZW4gZXhwb3J0aW5nIHlvdXIgY29uZmlnIGZvciB0aGUgU3RhY2t0YXBlIENMSVxuICovXG5leHBvcnQgY29uc3QgZGVmaW5lQ29uZmlnID0gKGNvbmZpZ0ZuOiAocGFyYW1zOiBHZXRDb25maWdQYXJhbXMpID0+IFN0YWNrdGFwZUNvbmZpZykgPT4ge1xuICByZXR1cm4gKHBhcmFtczogR2V0Q29uZmlnUGFyYW1zKSA9PiB7XG4gICAgY29uc3QgY29uZmlnID0gY29uZmlnRm4ocGFyYW1zKTtcbiAgICByZXR1cm4gdHJhbnNmb3JtQ29uZmlnV2l0aFJlc291cmNlcyhjb25maWcpO1xuICB9O1xufTtcblxuLyoqXG4gKiBUcmFuc2Zvcm1zIGEgY29uZmlnIHdpdGggcmVzb3VyY2UgaW5zdGFuY2VzIGludG8gYSBwbGFpbiBjb25maWcgb2JqZWN0XG4gKi9cbmV4cG9ydCBjb25zdCB0cmFuc2Zvcm1Db25maWdXaXRoUmVzb3VyY2VzID0gKGNvbmZpZzogYW55KTogYW55ID0+IHtcbiAgaWYgKCFjb25maWcgfHwgdHlwZW9mIGNvbmZpZyAhPT0gJ29iamVjdCcpIHtcbiAgICByZXR1cm4gY29uZmlnO1xuICB9XG5cbiAgLy8gRmlyc3QgcGFzczogc2V0IGFsbCByZXNvdXJjZSBuYW1lcyBmcm9tIG9iamVjdCBrZXlzXG4gIC8vIFRoaXMgbXVzdCBoYXBwZW4gYmVmb3JlIGFueSB0cmFuc2Zvcm1hdGlvbiBzbyB0aGF0IFJlc291cmNlUGFyYW1SZWZlcmVuY2VzIGNhbiByZXNvbHZlIG5hbWVzXG4gIGlmIChjb25maWcucmVzb3VyY2VzICYmIHR5cGVvZiBjb25maWcucmVzb3VyY2VzID09PSAnb2JqZWN0Jykge1xuICAgIGZvciAoY29uc3Qga2V5IGluIGNvbmZpZy5yZXNvdXJjZXMpIHtcbiAgICAgIGNvbnN0IHJlc291cmNlID0gY29uZmlnLnJlc291cmNlc1trZXldO1xuICAgICAgaWYgKGlzQmFzZVJlc291cmNlKHJlc291cmNlKSkge1xuICAgICAgICAocmVzb3VyY2UgYXMgYW55KVtzZXRSZXNvdXJjZU5hbWVTeW1ib2xdKGtleSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gU2Vjb25kIHBhc3M6IHRyYW5zZm9ybSB0aGUgY29uZmlnXG4gIGNvbnN0IHJlc3VsdDogYW55ID0ge307XG4gIGZvciAoY29uc3Qga2V5IGluIGNvbmZpZykge1xuICAgIGlmIChrZXkgPT09ICdyZXNvdXJjZXMnKSB7XG4gICAgICAvLyBSZXNvdXJjZXMgYXJlIHRyYW5zZm9ybWVkIGFzIGRlZmluaXRpb25zXG4gICAgICByZXN1bHRba2V5XSA9IHRyYW5zZm9ybVJlc291cmNlRGVmaW5pdGlvbnMoY29uZmlnW2tleV0pO1xuICAgIH0gZWxzZSBpZiAoa2V5ID09PSAnc2NyaXB0cycpIHtcbiAgICAgIC8vIFNjcmlwdHMgYXJlIGFsc28gdHJhbnNmb3JtZWQgYXMgZGVmaW5pdGlvbnNcbiAgICAgIHJlc3VsdFtrZXldID0gdHJhbnNmb3JtU2NyaXB0RGVmaW5pdGlvbnMoY29uZmlnW2tleV0pO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXN1bHRba2V5XSA9IHRyYW5zZm9ybVZhbHVlKGNvbmZpZ1trZXldKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn07XG5cbi8qKlxuICogVHJhbnNmb3JtcyBlbnZpcm9ubWVudCBvYmplY3QgdG8gYXJyYXkgZm9ybWF0XG4gKi9cbmNvbnN0IHRyYW5zZm9ybUVudmlyb25tZW50ID0gKGVudjogYW55KTogYW55ID0+IHtcbiAgaWYgKCFlbnYgfHwgdHlwZW9mIGVudiAhPT0gJ29iamVjdCcgfHwgQXJyYXkuaXNBcnJheShlbnYpKSB7XG4gICAgcmV0dXJuIGVudjtcbiAgfVxuXG4gIC8vIENvbnZlcnQgeyBLRVk6IHZhbHVlIH0gdG8gW3sgbmFtZTogJ0tFWScsIHZhbHVlIH1dXG4gIHJldHVybiBPYmplY3QuZW50cmllcyhlbnYpLm1hcCgoW25hbWUsIHZhbHVlXSkgPT4gKHtcbiAgICBuYW1lLFxuICAgIHZhbHVlOiB0cmFuc2Zvcm1WYWx1ZSh2YWx1ZSlcbiAgfSkpO1xufTtcblxuLyoqXG4gKiBUcmFuc2Zvcm1zIHJlc291cmNlIGRlZmluaXRpb25zICh2YWx1ZXMgaW4gdGhlIHJlc291cmNlcyBvYmplY3QpXG4gKi9cbmNvbnN0IHRyYW5zZm9ybVJlc291cmNlRGVmaW5pdGlvbnMgPSAocmVzb3VyY2VzOiBhbnkpOiBhbnkgPT4ge1xuICBpZiAoIXJlc291cmNlcyB8fCB0eXBlb2YgcmVzb3VyY2VzICE9PSAnb2JqZWN0Jykge1xuICAgIHJldHVybiByZXNvdXJjZXM7XG4gIH1cblxuICBjb25zdCByZXN1bHQ6IGFueSA9IHt9O1xuICBmb3IgKGNvbnN0IGtleSBpbiByZXNvdXJjZXMpIHtcbiAgICBjb25zdCByZXNvdXJjZSA9IHJlc291cmNlc1trZXldO1xuICAgIGlmIChpc0Jhc2VSZXNvdXJjZShyZXNvdXJjZSkpIHtcbiAgICAgIGNvbnN0IHR5cGUgPSAocmVzb3VyY2UgYXMgYW55KVtnZXRUeXBlU3ltYm9sXSgpO1xuICAgICAgY29uc3QgcHJvcGVydGllcyA9IChyZXNvdXJjZSBhcyBhbnkpW2dldFByb3BlcnRpZXNTeW1ib2xdKCk7XG4gICAgICBjb25zdCBvdmVycmlkZXMgPSAocmVzb3VyY2UgYXMgYW55KVtnZXRPdmVycmlkZXNTeW1ib2xdKCk7XG4gICAgICBjb25zdCB0cmFuc2Zvcm1zID0gKHJlc291cmNlIGFzIGFueSlbZ2V0VHJhbnNmb3Jtc1N5bWJvbF0oKTtcbiAgICAgIHJlc3VsdFtrZXldID0ge1xuICAgICAgICB0eXBlLFxuICAgICAgICBwcm9wZXJ0aWVzOiB0cmFuc2Zvcm1WYWx1ZShwcm9wZXJ0aWVzKSxcbiAgICAgICAgLi4uKG92ZXJyaWRlcyAhPT0gdW5kZWZpbmVkICYmIHsgb3ZlcnJpZGVzOiB0cmFuc2Zvcm1WYWx1ZShvdmVycmlkZXMpIH0pLFxuICAgICAgICAuLi4odHJhbnNmb3JtcyAhPT0gdW5kZWZpbmVkICYmIHsgdHJhbnNmb3JtcyB9KVxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmVzdWx0W2tleV0gPSB0cmFuc2Zvcm1WYWx1ZShyZXNvdXJjZSk7XG4gICAgfVxuICB9XG4gIHJldHVybiByZXN1bHQ7XG59O1xuXG4vKipcbiAqIFRyYW5zZm9ybXMgc2NyaXB0IGRlZmluaXRpb25zICh2YWx1ZXMgaW4gdGhlIHNjcmlwdHMgb2JqZWN0KVxuICovXG5jb25zdCB0cmFuc2Zvcm1TY3JpcHREZWZpbml0aW9ucyA9IChzY3JpcHRzOiBhbnkpOiBhbnkgPT4ge1xuICBpZiAoIXNjcmlwdHMgfHwgdHlwZW9mIHNjcmlwdHMgIT09ICdvYmplY3QnKSB7XG4gICAgcmV0dXJuIHNjcmlwdHM7XG4gIH1cblxuICBjb25zdCByZXN1bHQ6IGFueSA9IHt9O1xuICBmb3IgKGNvbnN0IGtleSBpbiBzY3JpcHRzKSB7XG4gICAgY29uc3Qgc2NyaXB0ID0gc2NyaXB0c1trZXldO1xuICAgIGlmIChpc0Jhc2VUeXBlUHJvcGVydGllcyhzY3JpcHQpKSB7XG4gICAgICByZXN1bHRba2V5XSA9IHtcbiAgICAgICAgdHlwZTogc2NyaXB0LnR5cGUsXG4gICAgICAgIHByb3BlcnRpZXM6IHRyYW5zZm9ybVZhbHVlKHNjcmlwdC5wcm9wZXJ0aWVzKVxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmVzdWx0W2tleV0gPSB0cmFuc2Zvcm1WYWx1ZShzY3JpcHQpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufTtcblxuZXhwb3J0IGNvbnN0IHRyYW5zZm9ybVZhbHVlID0gKHZhbHVlOiBhbnkpOiBhbnkgPT4ge1xuICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIC8vIFRyYW5zZm9ybSBEZWZlcnJlZFJlc291cmNlTmFtZSAtIHJlc29sdmUgdG8gYWN0dWFsIG5hbWVcbiAgaWYgKGlzRGVmZXJyZWRSZXNvdXJjZU5hbWUodmFsdWUpKSB7XG4gICAgcmV0dXJuIHZhbHVlLnJlc29sdmUoKTtcbiAgfVxuXG4gIC8vIFRyYW5zZm9ybSBSZXNvdXJjZVBhcmFtUmVmZXJlbmNlXG4gIGlmIChpc1Jlc291cmNlUGFyYW1SZWZlcmVuY2UodmFsdWUpKSB7XG4gICAgcmV0dXJuIHZhbHVlLnRvU3RyaW5nKCk7XG4gIH1cblxuICAvLyBUcmFuc2Zvcm0gQmFzZVJlc291cmNlIHJlZmVyZW5jZXMgKG5vdCBkZWZpbml0aW9ucykgdG8gcmVzb3VyY2VOYW1lXG4gIC8vIFRoaXMgaGFuZGxlcyBjYXNlcyBsaWtlIGNvbm5lY3RUbzogW2RhdGFiYXNlXVxuICBpZiAoaXNCYXNlUmVzb3VyY2UodmFsdWUpKSB7XG4gICAgcmV0dXJuIHZhbHVlLnJlc291cmNlTmFtZTtcbiAgfVxuXG4gIC8vIFRyYW5zZm9ybSBCYXNlVHlwZVByb3BlcnRpZXMgKGVuZ2luZXMsIHBhY2thZ2luZywgZXZlbnRzKSB0byBwbGFpbiBvYmplY3RcbiAgaWYgKGlzQmFzZVR5cGVQcm9wZXJ0aWVzKHZhbHVlKSkge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiB2YWx1ZS50eXBlLFxuICAgICAgcHJvcGVydGllczogdHJhbnNmb3JtVmFsdWUodmFsdWUucHJvcGVydGllcylcbiAgICB9O1xuICB9XG5cbiAgLy8gVHJhbnNmb3JtIGFycmF5c1xuICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICByZXR1cm4gdmFsdWUubWFwKChpdGVtKSA9PiB7XG4gICAgICAvLyBJZiBpdCdzIGEgcmVzb3VyY2UgaW5zdGFuY2UgaW4gYW4gYXJyYXkgKGUuZy4sIGNvbm5lY3RUbyksIHRyYW5zZm9ybSB0byByZXNvdXJjZU5hbWVcbiAgICAgIGlmIChpc0Jhc2VSZXNvdXJjZShpdGVtKSkge1xuICAgICAgICByZXR1cm4gaXRlbS5yZXNvdXJjZU5hbWU7XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJhbnNmb3JtVmFsdWUoaXRlbSk7XG4gICAgfSk7XG4gIH1cblxuICAvLyBUcmFuc2Zvcm0gb2JqZWN0c1xuICBpZiAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0Jykge1xuICAgIGNvbnN0IHJlc3VsdDogYW55ID0ge307XG4gICAgZm9yIChjb25zdCBrZXkgaW4gdmFsdWUpIHtcbiAgICAgIC8vIFNwZWNpYWwgaGFuZGxpbmcgZm9yIGVudmlyb25tZW50IHByb3BlcnR5XG4gICAgICBpZiAoa2V5ID09PSAnZW52aXJvbm1lbnQnKSB7XG4gICAgICAgIHJlc3VsdFtrZXldID0gdHJhbnNmb3JtRW52aXJvbm1lbnQodmFsdWVba2V5XSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXN1bHRba2V5XSA9IHRyYW5zZm9ybVZhbHVlKHZhbHVlW2tleV0pO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcmV0dXJuIHZhbHVlO1xufTtcbiIsICIvKipcbiAqIFJldHVybnMgYSByZWZlcmVuY2UgdG8gYSByZXNvdXJjZSBwYXJhbWV0ZXIuXG4gKiBAcGFyYW0gcmVzb3VyY2VOYW1lIC0gVGhlIG5hbWUgb2YgdGhlIHJlc291cmNlIGFzIHNwZWNpZmllZCBpbiB0aGUgU3RhY2t0YXBlIGNvbmZpZy5cbiAqIEBwYXJhbSBwcm9wZXJ0eSAtIFRoZSBwcm9wZXJ0eSBvZiB0aGUgcmVzb3VyY2UuIFRoZSBsaXN0IG9mIHByb3BlcnRpZXMgaXMgYXZhaWxhYmxlIGluIHRoZSBTdGFja3RhcGUgZG9jcyBmb3IgZXZlcnkgZ2l2ZW4gcmVzb3VyY2UgdHlwZS5cbiAqL1xuZXhwb3J0IGNvbnN0ICRSZXNvdXJjZVBhcmFtID0gKHJlc291cmNlTmFtZTogc3RyaW5nLCBwcm9wZXJ0eTogc3RyaW5nKSA9PiB7XG4gIHJldHVybiBgJFJlc291cmNlUGFyYW0oJyR7cmVzb3VyY2VOYW1lfScsJyR7cHJvcGVydHl9JylgO1xufTtcblxuLyoqXG4gKiBSZXR1cm5zIGEgcmVmZXJlbmNlIHRvIGEgQ2xvdWRGb3JtYXRpb24gcmVzb3VyY2UgcGFyYW1ldGVyLlxuICogQHBhcmFtIGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VMb2dpY2FsSWQgLSBUaGUgbG9naWNhbCBuYW1lIG9mIHRoZSBDbG91ZGZvcm1hdGlvbiByZXNvdXJjZS5cbiAqIElmIHlvdSBhcmUgcmVmZXJlbmNpbmcgYSByZXNvdXJjZSBkZWZpbmVkIGluIHRoZSBjbG91ZGZvcm1hdGlvblJlc291cmNlcyBzZWN0aW9uLCB1c2UgaXRzIG5hbWUuXG4gKiBUbyByZWZlcmVuY2UgYSBjaGlsZCByZXNvdXJjZSBvZiBhIFN0YWNrdGFwZSByZXNvdXJjZSwgeW91IGNhbiBnZXQgYSBsaXN0IG9mIGNoaWxkIHJlc291cmNlcyB3aXRoIHRoZSBgc3RhY2t0YXBlIHN0YWNrLWluZm9gIGNvbW1hbmRcbiAqIEBwYXJhbSBwcm9wZXJ0eSAtIFRoZSBwYXJhbWV0ZXIgb2YgdGhlIENsb3VkZm9ybWF0aW9uIHJlc291cmNlIHRvIHJlZmVyZW5jZS5cbiAqIEZvciBhIGxpc3Qgb2YgYWxsIHJlZmVyZW5jZWFibGUgcGFyYW1ldGVycywgcmVmZXIgdG8gdGhlIFtSZWZlcmVuY2luZyBwYXJhbWV0ZXJzXShodHRwczovL2RvY3Muc3RhY2t0YXBlLmNvbS9jb25maWd1cmF0aW9uL3JlZmVyZW5jaW5nLXBhcmFtZXRlcnMjcGFyYW1ldGVycy1vZi1jbG91ZGZvcm1hdGlvbi1yZXNvdXJjZXMpIHNlY3Rpb24gaW4gdGhlIFN0YWNrdGFwZSBkb2NzLlxuICovXG5leHBvcnQgY29uc3QgJENmUmVzb3VyY2VQYXJhbSA9IChjbG91ZGZvcm1hdGlvblJlc291cmNlTG9naWNhbElkOiBzdHJpbmcsIHByb3BlcnR5OiBzdHJpbmcpID0+IHtcbiAgcmV0dXJuIGAkQ2ZSZXNvdXJjZVBhcmFtKCcke2Nsb3VkZm9ybWF0aW9uUmVzb3VyY2VMb2dpY2FsSWR9JywnJHtwcm9wZXJ0eX0nKWA7XG59O1xuXG4vKipcbiAqIFJldHVybnMgYSByZWZlcmVuY2UgdG8gYSBzZWNyZXQuXG4gKiBAcGFyYW0gc2VjcmV0TmFtZSAtIFRoZSBuYW1lIG9mIHRoZSBzZWNyZXQuIE11c3QgYmUgYSB2YWxpZCBzZWNyZXQgbmFtZSBpbiB0aGUgQVdTIFNlY3JldHMgTWFuYWdlciBpbiB0aGUgcmVnaW9uIHlvdSdyZSBkZXBsb3lpbmcgdG8uXG4gKiBJZiB0aGUgc2VjcmV0IGlzIGluIEpTT04gZm9ybWF0LCB5b3UgY2FuIGV4dHJhY3QgbmVzdGVkIHByb3BlcnRpZXMgdXNpbmcgZG90IG5vdGF0aW9uLlxuICogRXhhbXBsZTogYCRTZWNyZXQoJ215LXNlY3JldC5hcGkta2V5JylgIHdpbGwgcmV0dXJuIHRoZSB2YWx1ZSBvZiB0aGUgYGFwaS1rZXlgIHByb3BlcnR5IGluIHRoZSBgbXktc2VjcmV0YCBzZWNyZXQuXG4gKi9cbmV4cG9ydCBjb25zdCAkU2VjcmV0ID0gKHNlY3JldE5hbWU6IHN0cmluZykgPT4ge1xuICByZXR1cm4gYCRTZWNyZXQoJyR7c2VjcmV0TmFtZX0nKWA7XG59O1xuXG4vKipcbiAqIFJldHVybnMgYW4gaW50ZXJwb2xhdGVkIHN0cmluZy4gVW5saWtlIHRoZSAkRm9ybWF0KCkgZGlyZWN0aXZlLCB0aGUgJENmRm9ybWF0KCkgZGlyZWN0aXZlIGNhbiBjb250YWluIHJ1bnRpbWUtcmVzb2x2ZWQgZGlyZWN0aXZlcyBhcyBhcmd1bWVudHMuXG4gKiBAcGFyYW0gaW50ZXJwb2xhdGVkU3RyaW5nIC0gT2NjdXJyZW5jZXMgb2Yge30gYXJlIHJlcGxhY2VkIGJ5IHRoZSBzdWJzZXF1ZW50IGFyZ3VtZW50cy5cbiAqIEBwYXJhbSB2YWx1ZXMgLSBUaGUgbnVtYmVyIG9mIHZhbHVlcyBtdXN0IGJlIGVxdWFsIHRvIHRoZSBudW1iZXIgb2Yge30gcGxhY2Vob2xkZXJzIGluIHRoZSBmaXJzdCBhcmd1bWVudC5cbiAqIEV4YW1wbGU6XG4gKiBgJENmRm9ybWF0KCd7fS17fScsICdmb28nLCAnYmFyJylgIHJlc3VsdHMgaW4gYGZvby1iYXJgLlxuICogJENmRm9ybWF0KCd7fS1teWRvbWFpbi5jb20nLCAnZm9vJykgcmVzdWx0cyBpbiBmb28tbXlkb21haW4uY29tLlxuICogYCRDZkZvcm1hdCgne30ubXlkb21haW4uY29tJywgJFN0YWdlKCkpYCByZXN1bHRzIGluIGBzdGFnaW5nLm15ZG9tYWluLmNvbWAgaWYgdGhlIHN0YWdlIGlzIHN0YWdpbmcuXG4gKi9cbmV4cG9ydCBjb25zdCAkQ2ZGb3JtYXQgPSAoaW50ZXJwb2xhdGVkU3RyaW5nOiBzdHJpbmcsIC4uLnZhbHVlczogYW55W10pID0+IHtcbiAgcmV0dXJuIGAkQ2ZGb3JtYXQoJyR7aW50ZXJwb2xhdGVkU3RyaW5nfScsICcke3ZhbHVlcy5qb2luKCcsJyl9JylgO1xufTtcblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBvdXRwdXQgb2YgYW5vdGhlciBzdGFjaywgYWxsb3dpbmcgeW91IHRvIHJlZmVyZW5jZSByZXNvdXJjZXMgZGVwbG95ZWQgaW4gYW5vdGhlciBzdGFjay4gVGhlIHJlZmVyZW5jZWQgc3RhY2sgbXVzdCBhbHJlYWR5IGJlIGRlcGxveWVkLiBJZiB5b3UgdHJ5IHRvIGRlbGV0ZSBhIHN0YWNrIHRoYXQgaXMgcmVmZXJlbmNlZCBieSBhbm90aGVyIHN0YWNrLCB5b3Ugd2lsbCBnZXQgYW4gZXJyb3IuXG4gKiBUbyBnZXQgdGhlIG91dHB1dCBsb2NhbGx5IChpLmUuLCBkb3dubG9hZCB0aGUgdmFsdWUgYW5kIHBhc3MgaXQgdG8gdGhlIGNvbmZpZ3VyYXRpb24pLCB1c2UgdGhlICRTdGFja091dHB1dCgpIGRpcmVjdGl2ZS5cbiAqIEBwYXJhbSBzdGFja05hbWUgLSBUaGUgbmFtZSBvZiB0aGUgc3RhY2suXG4gKiBAcGFyYW0gb3V0cHV0TmFtZSAtIFRoZSBuYW1lIG9mIHRoZSBvdXRwdXQuXG4gKi9cbmV4cG9ydCBjb25zdCAkQ2ZTdGFja091dHB1dCA9IChzdGFja05hbWU6IHN0cmluZywgb3V0cHV0TmFtZTogc3RyaW5nKSA9PiB7XG4gIHJldHVybiBgJENmU3RhY2tPdXRwdXQoJyR7c3RhY2tOYW1lfScsJyR7b3V0cHV0TmFtZX0nKWA7XG59O1xuXG4vKipcbiAqIFJldHVybnMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGN1cnJlbnQgR2l0IHJlcG9zaXRvcnkuXG4gKlxuICogJEdpdEluZm8oKS5zaGExIC0gU0hBLTEgb2YgdGhlIGxhdGVzdCBjb21taXRcbiAqXG4gKiAkR2l0SW5mbygpLmNvbW1pdCAtIFRoZSBsYXRlc3QgY29tbWl0IElEXG4gKlxuICogJEdpdEluZm8oKS5icmFuY2ggLSBUaGUgbmFtZSBvZiB0aGUgY3VycmVudCBicmFuY2hcbiAqXG4gKiAkR2l0SW5mbygpLm1lc3NhZ2UgLSBUaGUgbWVzc2FnZSBvZiB0aGUgbGFzdCBjb21taXRcbiAqXG4gKiAkR2l0SW5mbygpLnVzZXIgLSBHaXQgdXNlcidzIG5hbWVcbiAqXG4gKiAkR2l0SW5mbygpLmVtYWlsIC0gR2l0IHVzZXIncyBlbWFpbFxuICpcbiAqICRHaXRJbmZvKCkucmVwb3NpdG9yeSAtIFRoZSBuYW1lIG9mIHRoZSBnaXQgcmVwb3NpdG9yeVxuICpcbiAqICRHaXRJbmZvKCkudGFncyAtIFRoZSB0YWdzIHBvaW50aW5nIHRvIHRoZSBjdXJyZW50IGNvbW1pdFxuICpcbiAqICRHaXRJbmZvKCkuZGVzY3JpYmUgLSBUaGUgbW9zdCByZWNlbnQgdGFnIHRoYXQgaXMgcmVhY2hhYmxlIGZyb20gYSBjb21taXRcbiAqL1xuZXhwb3J0IGNvbnN0ICRHaXRJbmZvID0gKCkgPT4ge1xuICByZXR1cm4gJyRHaXRJbmZvKCknO1xufTtcbiIsICIvKipcbiAqIEFXUyBTRVMgKFNpbXBsZSBFbWFpbCBTZXJ2aWNlKSByZWZlcmVuY2UgZm9yIGNvbm5lY3RUb1xuICogR3JhbnRzIGZ1bGwgcGVybWlzc2lvbnMgZm9yIEFXUyBTRVMgKHNlczoqKVxuICovXG5leHBvcnQgY29uc3QgQVdTX1NFUyA9ICdhd3M6c2VzJyBhcyBjb25zdDtcblxuLyoqXG4gKiBUeXBlIHRoYXQgcmVwcmVzZW50cyBhbnkgQVdTIHNlcnZpY2UgY29uc3RhbnRcbiAqL1xuZXhwb3J0IHR5cGUgR2xvYmFsQXdzU2VydmljZUNvbnN0YW50ID0gdHlwZW9mIEFXU19TRVM7XG4iLCAiLyoqXG4gKiBUaGlzIGZpbGUgZGVmaW5lcyB0eXBlLXByb3BlcnRpZXMgc2hhcGVkIGRlZmluaXRpb25zIChlLmcuIFN0YWNrdGFwZSByZXNvdXJjZXMsIHBhY2thZ2luZyB0eXBlcyBldGMuKVxuICogdGhhdCBjYW4gYmUgY29udmVydGVkIHRvIGEgVHlwZXNjcmlwdCBjbGFzcy4gVGhlc2UgY2xhc3NlcyBhcmUgdGhlbiBleHBvcnRlZCBmcm9tIHN0YWNrdGFwZS9jbGFzc2VzXG4gKlxuICogQGV4YW1wbGUgaW1wb3J0IHsgU3RhY2t0YXBlTGFtYmRhQnVpbGRwYWNrUGFja2FnaW5nIH0gZnJvbSAnc3RhY2t0YXBlL2NsYXNzZXMnO1xuICovXG5cbmV4cG9ydCB0eXBlIFJlc291cmNlQ2xhc3NOYW1lID0gT21pdDxLZWJhYlRvUGFzY2FsQ2FzZTxTdHBSZXNvdXJjZVR5cGU+LCAnRnVuY3Rpb24nPiB8ICdMYW1iZGFGdW5jdGlvbic7XG5cbmV4cG9ydCB0eXBlIFJlc291cmNlRGVmaW5pdGlvbiA9IHtcbiAgLyoqIENsYXNzIG5hbWUgZm9yIHRoZSByZXNvdXJjZSAoZS5nLiwgJ0xhbWJkYUZ1bmN0aW9uJykgKi9cbiAgY2xhc3NOYW1lOiBSZXNvdXJjZUNsYXNzTmFtZTtcbiAgLyoqIFJlc291cmNlIHR5cGUgaWRlbnRpZmllciB1c2VkIGluIGNvbmZpZyAoZS5nLiwgJ2Z1bmN0aW9uJykgKi9cbiAgcmVzb3VyY2VUeXBlOiBzdHJpbmc7XG4gIC8qKiBQcm9wcyB0eXBlIG5hbWUgKGUuZy4sICdMYW1iZGFGdW5jdGlvblByb3BzJykgKi9cbiAgcHJvcHNUeXBlOiBzdHJpbmc7XG4gIC8qKiBJbnRlcmZhY2UgbmFtZSBpbiB0aGUgc291cmNlIC5kLnRzIGZpbGUgKGUuZy4sICdMYW1iZGFGdW5jdGlvbicpICovXG4gIGludGVyZmFjZU5hbWU6IHN0cmluZztcbiAgLyoqIFNvdXJjZSAuZC50cyBmaWxlIG5hbWUgKGUuZy4sICdmdW5jdGlvbnMuZC50cycpICovXG4gIHNvdXJjZUZpbGU6IHN0cmluZztcbiAgLyoqIFJlc291cmNlcyBhbmQgQVdTIHNlcnZpY2VzIHRoaXMgcmVzb3VyY2UgY2FuIGNvbm5lY3QgdG8uIEdsb2JhbEF3c1NlcnZpY2VDb25zdGFudCBpcyBmb3IgZ2xvYmFsIHNlcnZpY2VzLCBlLmcuIGF3czpzZXMgICovXG4gIGNhbkNvbm5lY3RUbz86IHN0cmluZ1tdO1xuICAvKiogV2hldGhlciB0aGlzIHJlc291cmNlIHN1cHBvcnRzIG92ZXJyaWRlcyAoZGVmYXVsdDogdHJ1ZSkgKi9cbiAgc3VwcG9ydHNPdmVycmlkZXM/OiBib29sZWFuO1xuICAvKiogV2hldGhlciB0aGlzIHJlc291cmNlIGhhcyBhdWdtZW50ZWQgY29ubmVjdFRvL2Vudmlyb25tZW50IHByb3BzIChkZWZhdWx0OiBmYWxzZSkgKi9cbiAgaGFzQXVnbWVudGVkUHJvcHM/OiBib29sZWFuO1xufTtcblxuLyoqXG4gKiBDb21wbGV0ZSBsaXN0IG9mIGFsbCBTdGFja3RhcGUgcmVzb3VyY2VzLlxuICogVGhpcyBpcyB0aGUgc2luZ2xlIHNvdXJjZSBvZiB0cnV0aCAtIGFsbCBjb2RlIGdlbmVyYXRpb24gZGVyaXZlcyBmcm9tIHRoaXMuXG4gKi9cbmV4cG9ydCBjb25zdCBSRVNPVVJDRVNfQ09OVkVSVElCTEVfVE9fQ0xBU1NFUzogUmVzb3VyY2VEZWZpbml0aW9uW10gPSBbXG4gIHtcbiAgICBjbGFzc05hbWU6ICdSZWxhdGlvbmFsRGF0YWJhc2UnLFxuICAgIHJlc291cmNlVHlwZTogJ3JlbGF0aW9uYWwtZGF0YWJhc2UnLFxuICAgIHByb3BzVHlwZTogJ1JlbGF0aW9uYWxEYXRhYmFzZVByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnUmVsYXRpb25hbERhdGFiYXNlJyxcbiAgICBzb3VyY2VGaWxlOiAncmVsYXRpb25hbC1kYXRhYmFzZXMuZC50cycsXG4gICAgY2FuQ29ubmVjdFRvOiBbXVxuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnV2ViU2VydmljZScsXG4gICAgcmVzb3VyY2VUeXBlOiAnd2ViLXNlcnZpY2UnLFxuICAgIHByb3BzVHlwZTogJ1dlYlNlcnZpY2VQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ1dlYlNlcnZpY2UnLFxuICAgIHNvdXJjZUZpbGU6ICd3ZWItc2VydmljZXMuZC50cycsXG4gICAgaGFzQXVnbWVudGVkUHJvcHM6IHRydWUsXG4gICAgY2FuQ29ubmVjdFRvOiBbXG4gICAgICAnUmVsYXRpb25hbERhdGFiYXNlJyxcbiAgICAgICdCdWNrZXQnLFxuICAgICAgJ0hvc3RpbmdCdWNrZXQnLFxuICAgICAgJ0R5bmFtb0RiVGFibGUnLFxuICAgICAgJ0V2ZW50QnVzJyxcbiAgICAgICdSZWRpc0NsdXN0ZXInLFxuICAgICAgJ01vbmdvRGJBdGxhc0NsdXN0ZXInLFxuICAgICAgJ1Vwc3Rhc2hSZWRpcycsXG4gICAgICAnU3FzUXVldWUnLFxuICAgICAgJ1Nuc1RvcGljJyxcbiAgICAgICdPcGVuU2VhcmNoRG9tYWluJyxcbiAgICAgICdFZnNGaWxlc3lzdGVtJyxcbiAgICAgICdQcml2YXRlU2VydmljZSdcbiAgICBdXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdQcml2YXRlU2VydmljZScsXG4gICAgcmVzb3VyY2VUeXBlOiAncHJpdmF0ZS1zZXJ2aWNlJyxcbiAgICBwcm9wc1R5cGU6ICdQcml2YXRlU2VydmljZVByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnUHJpdmF0ZVNlcnZpY2UnLFxuICAgIHNvdXJjZUZpbGU6ICdwcml2YXRlLXNlcnZpY2VzLmQudHMnLFxuICAgIGhhc0F1Z21lbnRlZFByb3BzOiB0cnVlLFxuICAgIGNhbkNvbm5lY3RUbzogW1xuICAgICAgJ1JlbGF0aW9uYWxEYXRhYmFzZScsXG4gICAgICAnQnVja2V0JyxcbiAgICAgICdIb3N0aW5nQnVja2V0JyxcbiAgICAgICdEeW5hbW9EYlRhYmxlJyxcbiAgICAgICdFdmVudEJ1cycsXG4gICAgICAnUmVkaXNDbHVzdGVyJyxcbiAgICAgICdNb25nb0RiQXRsYXNDbHVzdGVyJyxcbiAgICAgICdVcHN0YXNoUmVkaXMnLFxuICAgICAgJ1Nxc1F1ZXVlJyxcbiAgICAgICdTbnNUb3BpYycsXG4gICAgICAnT3BlblNlYXJjaERvbWFpbicsXG4gICAgICAnRWZzRmlsZXN5c3RlbSdcbiAgICBdXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdXb3JrZXJTZXJ2aWNlJyxcbiAgICByZXNvdXJjZVR5cGU6ICd3b3JrZXItc2VydmljZScsXG4gICAgcHJvcHNUeXBlOiAnV29ya2VyU2VydmljZVByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnV29ya2VyU2VydmljZScsXG4gICAgc291cmNlRmlsZTogJ3dvcmtlci1zZXJ2aWNlcy5kLnRzJyxcbiAgICBoYXNBdWdtZW50ZWRQcm9wczogdHJ1ZSxcbiAgICBjYW5Db25uZWN0VG86IFtcbiAgICAgICdSZWxhdGlvbmFsRGF0YWJhc2UnLFxuICAgICAgJ0J1Y2tldCcsXG4gICAgICAnSG9zdGluZ0J1Y2tldCcsXG4gICAgICAnRHluYW1vRGJUYWJsZScsXG4gICAgICAnRXZlbnRCdXMnLFxuICAgICAgJ1JlZGlzQ2x1c3RlcicsXG4gICAgICAnTW9uZ29EYkF0bGFzQ2x1c3RlcicsXG4gICAgICAnVXBzdGFzaFJlZGlzJyxcbiAgICAgICdTcXNRdWV1ZScsXG4gICAgICAnU25zVG9waWMnLFxuICAgICAgJ09wZW5TZWFyY2hEb21haW4nLFxuICAgICAgJ0Vmc0ZpbGVzeXN0ZW0nXG4gICAgXVxuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnTXVsdGlDb250YWluZXJXb3JrbG9hZCcsXG4gICAgcmVzb3VyY2VUeXBlOiAnbXVsdGktY29udGFpbmVyLXdvcmtsb2FkJyxcbiAgICBwcm9wc1R5cGU6ICdDb250YWluZXJXb3JrbG9hZFByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnTXVsdGlDb250YWluZXJXb3JrbG9hZCcsXG4gICAgc291cmNlRmlsZTogJ211bHRpLWNvbnRhaW5lci13b3JrbG9hZHMuZC50cycsXG4gICAgaGFzQXVnbWVudGVkUHJvcHM6IHRydWUsXG4gICAgY2FuQ29ubmVjdFRvOiBbXG4gICAgICAnUmVsYXRpb25hbERhdGFiYXNlJyxcbiAgICAgICdCdWNrZXQnLFxuICAgICAgJ0hvc3RpbmdCdWNrZXQnLFxuICAgICAgJ0R5bmFtb0RiVGFibGUnLFxuICAgICAgJ0V2ZW50QnVzJyxcbiAgICAgICdSZWRpc0NsdXN0ZXInLFxuICAgICAgJ01vbmdvRGJBdGxhc0NsdXN0ZXInLFxuICAgICAgJ1Vwc3Rhc2hSZWRpcycsXG4gICAgICAnU3FzUXVldWUnLFxuICAgICAgJ1Nuc1RvcGljJyxcbiAgICAgICdPcGVuU2VhcmNoRG9tYWluJyxcbiAgICAgICdFZnNGaWxlc3lzdGVtJ1xuICAgIF1cbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ0xhbWJkYUZ1bmN0aW9uJyxcbiAgICByZXNvdXJjZVR5cGU6ICdmdW5jdGlvbicsXG4gICAgcHJvcHNUeXBlOiAnTGFtYmRhRnVuY3Rpb25Qcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0xhbWJkYUZ1bmN0aW9uJyxcbiAgICBzb3VyY2VGaWxlOiAnZnVuY3Rpb25zLmQudHMnLFxuICAgIGhhc0F1Z21lbnRlZFByb3BzOiB0cnVlLFxuICAgIGNhbkNvbm5lY3RUbzogW1xuICAgICAgJ1JlbGF0aW9uYWxEYXRhYmFzZScsXG4gICAgICAnQnVja2V0JyxcbiAgICAgICdIb3N0aW5nQnVja2V0JyxcbiAgICAgICdEeW5hbW9EYlRhYmxlJyxcbiAgICAgICdFdmVudEJ1cycsXG4gICAgICAnUmVkaXNDbHVzdGVyJyxcbiAgICAgICdNb25nb0RiQXRsYXNDbHVzdGVyJyxcbiAgICAgICdVcHN0YXNoUmVkaXMnLFxuICAgICAgJ1Nxc1F1ZXVlJyxcbiAgICAgICdTbnNUb3BpYycsXG4gICAgICAnT3BlblNlYXJjaERvbWFpbicsXG4gICAgICAnRWZzRmlsZXN5c3RlbScsXG4gICAgICAnUHJpdmF0ZVNlcnZpY2UnLFxuICAgICAgJ1dlYlNlcnZpY2UnXG4gICAgXVxuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnQmF0Y2hKb2InLFxuICAgIHJlc291cmNlVHlwZTogJ2JhdGNoLWpvYicsXG4gICAgcHJvcHNUeXBlOiAnQmF0Y2hKb2JQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0JhdGNoSm9iJyxcbiAgICBzb3VyY2VGaWxlOiAnYmF0Y2gtam9icy5kLnRzJyxcbiAgICBoYXNBdWdtZW50ZWRQcm9wczogdHJ1ZSxcbiAgICBjYW5Db25uZWN0VG86IFtcbiAgICAgICdSZWxhdGlvbmFsRGF0YWJhc2UnLFxuICAgICAgJ0J1Y2tldCcsXG4gICAgICAnSG9zdGluZ0J1Y2tldCcsXG4gICAgICAnRHluYW1vRGJUYWJsZScsXG4gICAgICAnRXZlbnRCdXMnLFxuICAgICAgJ1JlZGlzQ2x1c3RlcicsXG4gICAgICAnTW9uZ29EYkF0bGFzQ2x1c3RlcicsXG4gICAgICAnVXBzdGFzaFJlZGlzJyxcbiAgICAgICdTcXNRdWV1ZScsXG4gICAgICAnU25zVG9waWMnLFxuICAgICAgJ09wZW5TZWFyY2hEb21haW4nLFxuICAgICAgJ0Vmc0ZpbGVzeXN0ZW0nXG4gICAgXVxuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnQnVja2V0JyxcbiAgICByZXNvdXJjZVR5cGU6ICdidWNrZXQnLFxuICAgIHByb3BzVHlwZTogJ0J1Y2tldFByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnQnVja2V0JyxcbiAgICBzb3VyY2VGaWxlOiAnYnVja2V0cy5kLnRzJyxcbiAgICBjYW5Db25uZWN0VG86IFtdXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdIb3N0aW5nQnVja2V0JyxcbiAgICByZXNvdXJjZVR5cGU6ICdob3N0aW5nLWJ1Y2tldCcsXG4gICAgcHJvcHNUeXBlOiAnSG9zdGluZ0J1Y2tldFByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnSG9zdGluZ0J1Y2tldCcsXG4gICAgc291cmNlRmlsZTogJ2hvc3RpbmctYnVja2V0cy5kLnRzJyxcbiAgICBjYW5Db25uZWN0VG86IFtdXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdEeW5hbW9EYlRhYmxlJyxcbiAgICByZXNvdXJjZVR5cGU6ICdkeW5hbW8tZGItdGFibGUnLFxuICAgIHByb3BzVHlwZTogJ0R5bmFtb0RiVGFibGVQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0R5bmFtb0RiVGFibGUnLFxuICAgIHNvdXJjZUZpbGU6ICdkeW5hbW8tZGItdGFibGVzLmQudHMnLFxuICAgIGNhbkNvbm5lY3RUbzogW11cbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ0V2ZW50QnVzJyxcbiAgICByZXNvdXJjZVR5cGU6ICdldmVudC1idXMnLFxuICAgIHByb3BzVHlwZTogJ0V2ZW50QnVzUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdFdmVudEJ1cycsXG4gICAgc291cmNlRmlsZTogJ2V2ZW50LWJ1c2VzLmQudHMnLFxuICAgIGNhbkNvbm5lY3RUbzogW11cbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ0h0dHBBcGlHYXRld2F5JyxcbiAgICByZXNvdXJjZVR5cGU6ICdodHRwLWFwaS1nYXRld2F5JyxcbiAgICBwcm9wc1R5cGU6ICdIdHRwQXBpR2F0ZXdheVByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnSHR0cEFwaUdhdGV3YXknLFxuICAgIHNvdXJjZUZpbGU6ICdodHRwLWFwaS1nYXRld2F5cy5kLnRzJyxcbiAgICBjYW5Db25uZWN0VG86IFtdXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdBcHBsaWNhdGlvbkxvYWRCYWxhbmNlcicsXG4gICAgcmVzb3VyY2VUeXBlOiAnYXBwbGljYXRpb24tbG9hZC1iYWxhbmNlcicsXG4gICAgcHJvcHNUeXBlOiAnQXBwbGljYXRpb25Mb2FkQmFsYW5jZXJQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0FwcGxpY2F0aW9uTG9hZEJhbGFuY2VyJyxcbiAgICBzb3VyY2VGaWxlOiAnYXBwbGljYXRpb24tbG9hZC1iYWxhbmNlcnMuZC50cycsXG4gICAgY2FuQ29ubmVjdFRvOiBbXVxuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnTmV0d29ya0xvYWRCYWxhbmNlcicsXG4gICAgcmVzb3VyY2VUeXBlOiAnbmV0d29yay1sb2FkLWJhbGFuY2VyJyxcbiAgICBwcm9wc1R5cGU6ICdOZXR3b3JrTG9hZEJhbGFuY2VyUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdOZXR3b3JrTG9hZEJhbGFuY2VyJyxcbiAgICBzb3VyY2VGaWxlOiAnbmV0d29yay1sb2FkLWJhbGFuY2VyLmQudHMnLFxuICAgIGNhbkNvbm5lY3RUbzogW11cbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ1JlZGlzQ2x1c3RlcicsXG4gICAgcmVzb3VyY2VUeXBlOiAncmVkaXMtY2x1c3RlcicsXG4gICAgcHJvcHNUeXBlOiAnUmVkaXNDbHVzdGVyUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdSZWRpc0NsdXN0ZXInLFxuICAgIHNvdXJjZUZpbGU6ICdyZWRpcy1jbHVzdGVyLmQudHMnLFxuICAgIGNhbkNvbm5lY3RUbzogW11cbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ01vbmdvRGJBdGxhc0NsdXN0ZXInLFxuICAgIHJlc291cmNlVHlwZTogJ21vbmdvLWRiLWF0bGFzLWNsdXN0ZXInLFxuICAgIHByb3BzVHlwZTogJ01vbmdvRGJBdGxhc0NsdXN0ZXJQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ01vbmdvRGJBdGxhc0NsdXN0ZXInLFxuICAgIHNvdXJjZUZpbGU6ICdtb25nby1kYi1hdGxhcy1jbHVzdGVycy5kLnRzJyxcbiAgICBzdXBwb3J0c092ZXJyaWRlczogZmFsc2UsXG4gICAgY2FuQ29ubmVjdFRvOiBbXVxuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnU3RhdGVNYWNoaW5lJyxcbiAgICByZXNvdXJjZVR5cGU6ICdzdGF0ZS1tYWNoaW5lJyxcbiAgICBwcm9wc1R5cGU6ICdTdGF0ZU1hY2hpbmVQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ1N0YXRlTWFjaGluZScsXG4gICAgc291cmNlRmlsZTogJ3N0YXRlLW1hY2hpbmVzLmQudHMnLFxuICAgIGhhc0F1Z21lbnRlZFByb3BzOiB0cnVlLFxuICAgIGNhbkNvbm5lY3RUbzogWydGdW5jdGlvbicsICdCYXRjaEpvYiddXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdVc2VyQXV0aFBvb2wnLFxuICAgIHJlc291cmNlVHlwZTogJ3VzZXItYXV0aC1wb29sJyxcbiAgICBwcm9wc1R5cGU6ICdVc2VyQXV0aFBvb2xQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ1VzZXJBdXRoUG9vbCcsXG4gICAgc291cmNlRmlsZTogJ3VzZXItcG9vbHMuZC50cycsXG4gICAgY2FuQ29ubmVjdFRvOiBbXVxuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnVXBzdGFzaFJlZGlzJyxcbiAgICByZXNvdXJjZVR5cGU6ICd1cHN0YXNoLXJlZGlzJyxcbiAgICBwcm9wc1R5cGU6ICdVcHN0YXNoUmVkaXNQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ1Vwc3Rhc2hSZWRpcycsXG4gICAgc291cmNlRmlsZTogJ3Vwc3Rhc2gtcmVkaXMuZC50cycsXG4gICAgc3VwcG9ydHNPdmVycmlkZXM6IGZhbHNlLFxuICAgIGNhbkNvbm5lY3RUbzogW11cbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ1Nxc1F1ZXVlJyxcbiAgICByZXNvdXJjZVR5cGU6ICdzcXMtcXVldWUnLFxuICAgIHByb3BzVHlwZTogJ1Nxc1F1ZXVlUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdTcXNRdWV1ZScsXG4gICAgc291cmNlRmlsZTogJ3Nxcy1xdWV1ZXMuZC50cycsXG4gICAgY2FuQ29ubmVjdFRvOiBbXVxuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnU25zVG9waWMnLFxuICAgIHJlc291cmNlVHlwZTogJ3Nucy10b3BpYycsXG4gICAgcHJvcHNUeXBlOiAnU25zVG9waWNQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ1Nuc1RvcGljJyxcbiAgICBzb3VyY2VGaWxlOiAnc25zLXRvcGljLmQudHMnLFxuICAgIGNhbkNvbm5lY3RUbzogW11cbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ1dlYkFwcEZpcmV3YWxsJyxcbiAgICByZXNvdXJjZVR5cGU6ICd3ZWItYXBwLWZpcmV3YWxsJyxcbiAgICBwcm9wc1R5cGU6ICdXZWJBcHBGaXJld2FsbFByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnV2ViQXBwRmlyZXdhbGwnLFxuICAgIHNvdXJjZUZpbGU6ICd3ZWItYXBwLWZpcmV3YWxsLmQudHMnLFxuICAgIGNhbkNvbm5lY3RUbzogW11cbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ09wZW5TZWFyY2hEb21haW4nLFxuICAgIHJlc291cmNlVHlwZTogJ29wZW4tc2VhcmNoLWRvbWFpbicsXG4gICAgcHJvcHNUeXBlOiAnT3BlblNlYXJjaERvbWFpblByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnT3BlblNlYXJjaERvbWFpbicsXG4gICAgc291cmNlRmlsZTogJ29wZW4tc2VhcmNoLmQudHMnLFxuICAgIGNhbkNvbm5lY3RUbzogW11cbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ0Vmc0ZpbGVzeXN0ZW0nLFxuICAgIHJlc291cmNlVHlwZTogJ2Vmcy1maWxlc3lzdGVtJyxcbiAgICBwcm9wc1R5cGU6ICdFZnNGaWxlc3lzdGVtUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdFZnNGaWxlc3lzdGVtJyxcbiAgICBzb3VyY2VGaWxlOiAnZWZzLWZpbGVzeXN0ZW0uZC50cycsXG4gICAgY2FuQ29ubmVjdFRvOiBbXVxuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnTmV4dGpzV2ViJyxcbiAgICByZXNvdXJjZVR5cGU6ICduZXh0anMtd2ViJyxcbiAgICBwcm9wc1R5cGU6ICdOZXh0anNXZWJQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ05leHRqc1dlYicsXG4gICAgc291cmNlRmlsZTogJ25leHRqcy13ZWIuZC50cycsXG4gICAgaGFzQXVnbWVudGVkUHJvcHM6IHRydWUsXG4gICAgY2FuQ29ubmVjdFRvOiBbXG4gICAgICAnUmVsYXRpb25hbERhdGFiYXNlJyxcbiAgICAgICdCdWNrZXQnLFxuICAgICAgJ0hvc3RpbmdCdWNrZXQnLFxuICAgICAgJ0R5bmFtb0RiVGFibGUnLFxuICAgICAgJ0V2ZW50QnVzJyxcbiAgICAgICdSZWRpc0NsdXN0ZXInLFxuICAgICAgJ01vbmdvRGJBdGxhc0NsdXN0ZXInLFxuICAgICAgJ1Vwc3Rhc2hSZWRpcycsXG4gICAgICAnU3FzUXVldWUnLFxuICAgICAgJ1Nuc1RvcGljJyxcbiAgICAgICdPcGVuU2VhcmNoRG9tYWluJyxcbiAgICAgICdFZnNGaWxlc3lzdGVtJyxcbiAgICAgICdQcml2YXRlU2VydmljZScsXG4gICAgICAnV2ViU2VydmljZScsXG4gICAgICAnTGFtYmRhRnVuY3Rpb24nLFxuICAgICAgJ0JhdGNoSm9iJyxcbiAgICAgICdVc2VyQXV0aFBvb2wnXG4gICAgXVxuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnQmFzdGlvbicsXG4gICAgcmVzb3VyY2VUeXBlOiAnYmFzdGlvbicsXG4gICAgcHJvcHNUeXBlOiAnQmFzdGlvblByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnQmFzdGlvbicsXG4gICAgc291cmNlRmlsZTogJ2Jhc3Rpb24uZC50cycsXG4gICAgY2FuQ29ubmVjdFRvOiBbXVxuICB9XG5dO1xuXG4vKipcbiAqIERlZmluZXMgYWxsIHR5cGUgKyBwcm9wZXJ0aWVzIHNoYXBlZCBkZWZpbml0aW9ucyB0aGF0IGNhbiBiZSBjb252ZXJ0ZWQgdG8gYSBUeXBlc2NyaXB0IGNsYXNzXG4gKi9cbmV4cG9ydCB0eXBlIFR5cGVQcm9wZXJ0aWVzRGVmaW5pdGlvbiA9IHtcbiAgY2xhc3NOYW1lOiBzdHJpbmc7XG4gIHR5cGVWYWx1ZTogc3RyaW5nO1xuICBwcm9wc1R5cGU6IHN0cmluZztcbiAgaW50ZXJmYWNlTmFtZTogc3RyaW5nO1xuICBzb3VyY2VGaWxlOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgY29uc3QgTUlTQ19UWVBFU19DT05WRVJUSUJMRV9UT19DTEFTU0VTOiBUeXBlUHJvcGVydGllc0RlZmluaXRpb25bXSA9IFtcbiAgLy8gRGF0YWJhc2UgRW5naW5lc1xuICB7XG4gICAgY2xhc3NOYW1lOiAnUmRzRW5naW5lUG9zdGdyZXMnLFxuICAgIHR5cGVWYWx1ZTogJ3Bvc3RncmVzJyxcbiAgICBwcm9wc1R5cGU6ICdSZHNFbmdpbmVQcm9wZXJ0aWVzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnUmRzRW5naW5lJyxcbiAgICBzb3VyY2VGaWxlOiAncmVsYXRpb25hbC1kYXRhYmFzZXMuZC50cydcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ1Jkc0VuZ2luZU1hcmlhZGInLFxuICAgIHR5cGVWYWx1ZTogJ21hcmlhZGInLFxuICAgIHByb3BzVHlwZTogJ1Jkc0VuZ2luZVByb3BlcnRpZXMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdSZHNFbmdpbmUnLFxuICAgIHNvdXJjZUZpbGU6ICdyZWxhdGlvbmFsLWRhdGFiYXNlcy5kLnRzJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnUmRzRW5naW5lTXlzcWwnLFxuICAgIHR5cGVWYWx1ZTogJ215c3FsJyxcbiAgICBwcm9wc1R5cGU6ICdSZHNFbmdpbmVQcm9wZXJ0aWVzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnUmRzRW5naW5lJyxcbiAgICBzb3VyY2VGaWxlOiAncmVsYXRpb25hbC1kYXRhYmFzZXMuZC50cydcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ1Jkc0VuZ2luZU9yYWNsZUVFJyxcbiAgICB0eXBlVmFsdWU6ICdvcmFjbGUtZWUnLFxuICAgIHByb3BzVHlwZTogJ1Jkc0VuZ2luZVByb3BlcnRpZXMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdSZHNFbmdpbmUnLFxuICAgIHNvdXJjZUZpbGU6ICdyZWxhdGlvbmFsLWRhdGFiYXNlcy5kLnRzJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnUmRzRW5naW5lT3JhY2xlU0UyJyxcbiAgICB0eXBlVmFsdWU6ICdvcmFjbGUtc2UyJyxcbiAgICBwcm9wc1R5cGU6ICdSZHNFbmdpbmVQcm9wZXJ0aWVzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnUmRzRW5naW5lJyxcbiAgICBzb3VyY2VGaWxlOiAncmVsYXRpb25hbC1kYXRhYmFzZXMuZC50cydcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ1Jkc0VuZ2luZVNxbFNlcnZlckVFJyxcbiAgICB0eXBlVmFsdWU6ICdzcWxzZXJ2ZXItZWUnLFxuICAgIHByb3BzVHlwZTogJ1Jkc0VuZ2luZVByb3BlcnRpZXMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdSZHNFbmdpbmUnLFxuICAgIHNvdXJjZUZpbGU6ICdyZWxhdGlvbmFsLWRhdGFiYXNlcy5kLnRzJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnUmRzRW5naW5lU3FsU2VydmVyRVgnLFxuICAgIHR5cGVWYWx1ZTogJ3NxbHNlcnZlci1leCcsXG4gICAgcHJvcHNUeXBlOiAnUmRzRW5naW5lUHJvcGVydGllcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ1Jkc0VuZ2luZScsXG4gICAgc291cmNlRmlsZTogJ3JlbGF0aW9uYWwtZGF0YWJhc2VzLmQudHMnXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdSZHNFbmdpbmVTcWxTZXJ2ZXJTRScsXG4gICAgdHlwZVZhbHVlOiAnc3Fsc2VydmVyLXNlJyxcbiAgICBwcm9wc1R5cGU6ICdSZHNFbmdpbmVQcm9wZXJ0aWVzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnUmRzRW5naW5lJyxcbiAgICBzb3VyY2VGaWxlOiAncmVsYXRpb25hbC1kYXRhYmFzZXMuZC50cydcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ1Jkc0VuZ2luZVNxbFNlcnZlcldlYicsXG4gICAgdHlwZVZhbHVlOiAnc3Fsc2VydmVyLXdlYicsXG4gICAgcHJvcHNUeXBlOiAnUmRzRW5naW5lUHJvcGVydGllcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ1Jkc0VuZ2luZScsXG4gICAgc291cmNlRmlsZTogJ3JlbGF0aW9uYWwtZGF0YWJhc2VzLmQudHMnXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdBdXJvcmFFbmdpbmVQb3N0Z3Jlc3FsJyxcbiAgICB0eXBlVmFsdWU6ICdhdXJvcmEtcG9zdGdyZXNxbCcsXG4gICAgcHJvcHNUeXBlOiAnQXVyb3JhRW5naW5lUHJvcGVydGllcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0F1cm9yYUVuZ2luZScsXG4gICAgc291cmNlRmlsZTogJ3JlbGF0aW9uYWwtZGF0YWJhc2VzLmQudHMnXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdBdXJvcmFFbmdpbmVNeXNxbCcsXG4gICAgdHlwZVZhbHVlOiAnYXVyb3JhLW15c3FsJyxcbiAgICBwcm9wc1R5cGU6ICdBdXJvcmFFbmdpbmVQcm9wZXJ0aWVzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnQXVyb3JhRW5naW5lJyxcbiAgICBzb3VyY2VGaWxlOiAncmVsYXRpb25hbC1kYXRhYmFzZXMuZC50cydcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ0F1cm9yYVNlcnZlcmxlc3NFbmdpbmVQb3N0Z3Jlc3FsJyxcbiAgICB0eXBlVmFsdWU6ICdhdXJvcmEtcG9zdGdyZXNxbC1zZXJ2ZXJsZXNzJyxcbiAgICBwcm9wc1R5cGU6ICdBdXJvcmFTZXJ2ZXJsZXNzRW5naW5lUHJvcGVydGllcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0F1cm9yYVNlcnZlcmxlc3NFbmdpbmUnLFxuICAgIHNvdXJjZUZpbGU6ICdyZWxhdGlvbmFsLWRhdGFiYXNlcy5kLnRzJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnQXVyb3JhU2VydmVybGVzc0VuZ2luZU15c3FsJyxcbiAgICB0eXBlVmFsdWU6ICdhdXJvcmEtbXlzcWwtc2VydmVybGVzcycsXG4gICAgcHJvcHNUeXBlOiAnQXVyb3JhU2VydmVybGVzc0VuZ2luZVByb3BlcnRpZXMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdBdXJvcmFTZXJ2ZXJsZXNzRW5naW5lJyxcbiAgICBzb3VyY2VGaWxlOiAncmVsYXRpb25hbC1kYXRhYmFzZXMuZC50cydcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ0F1cm9yYVNlcnZlcmxlc3NWMkVuZ2luZVBvc3RncmVzcWwnLFxuICAgIHR5cGVWYWx1ZTogJ2F1cm9yYS1wb3N0Z3Jlc3FsLXNlcnZlcmxlc3MtdjInLFxuICAgIHByb3BzVHlwZTogJ0F1cm9yYVNlcnZlcmxlc3NWMkVuZ2luZVByb3BlcnRpZXMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdBdXJvcmFTZXJ2ZXJsZXNzVjJFbmdpbmUnLFxuICAgIHNvdXJjZUZpbGU6ICdyZWxhdGlvbmFsLWRhdGFiYXNlcy5kLnRzJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnQXVyb3JhU2VydmVybGVzc1YyRW5naW5lTXlzcWwnLFxuICAgIHR5cGVWYWx1ZTogJ2F1cm9yYS1teXNxbC1zZXJ2ZXJsZXNzLXYyJyxcbiAgICBwcm9wc1R5cGU6ICdBdXJvcmFTZXJ2ZXJsZXNzVjJFbmdpbmVQcm9wZXJ0aWVzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnQXVyb3JhU2VydmVybGVzc1YyRW5naW5lJyxcbiAgICBzb3VyY2VGaWxlOiAncmVsYXRpb25hbC1kYXRhYmFzZXMuZC50cydcbiAgfSxcbiAgLy8gTGFtYmRhIFBhY2thZ2luZ1xuICB7XG4gICAgY2xhc3NOYW1lOiAnU3RhY2t0YXBlTGFtYmRhQnVpbGRwYWNrUGFja2FnaW5nJyxcbiAgICB0eXBlVmFsdWU6ICdzdGFja3RhcGUtbGFtYmRhLWJ1aWxkcGFjaycsXG4gICAgcHJvcHNUeXBlOiAnU3RwQnVpbGRwYWNrTGFtYmRhUGFja2FnaW5nUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdTdHBCdWlsZHBhY2tMYW1iZGFQYWNrYWdpbmcnLFxuICAgIHNvdXJjZUZpbGU6ICdkZXBsb3ltZW50LWFydGlmYWN0cy5kLnRzJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnQ3VzdG9tQXJ0aWZhY3RMYW1iZGFQYWNrYWdpbmcnLFxuICAgIHR5cGVWYWx1ZTogJ2N1c3RvbS1hcnRpZmFjdCcsXG4gICAgcHJvcHNUeXBlOiAnQ3VzdG9tQXJ0aWZhY3RMYW1iZGFQYWNrYWdpbmdQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0N1c3RvbUFydGlmYWN0TGFtYmRhUGFja2FnaW5nJyxcbiAgICBzb3VyY2VGaWxlOiAnZGVwbG95bWVudC1hcnRpZmFjdHMuZC50cydcbiAgfSxcbiAgLy8gQ29udGFpbmVyIFBhY2thZ2luZ1xuICB7XG4gICAgY2xhc3NOYW1lOiAnUHJlYnVpbHRJbWFnZVBhY2thZ2luZycsXG4gICAgdHlwZVZhbHVlOiAncHJlYnVpbHQtaW1hZ2UnLFxuICAgIHByb3BzVHlwZTogJ1ByZWJ1aWx0SW1hZ2VDd1BhY2thZ2luZ1Byb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnUHJlYnVpbHRDd0ltYWdlUGFja2FnaW5nJyxcbiAgICBzb3VyY2VGaWxlOiAnZGVwbG95bWVudC1hcnRpZmFjdHMuZC50cydcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ0N1c3RvbURvY2tlcmZpbGVQYWNrYWdpbmcnLFxuICAgIHR5cGVWYWx1ZTogJ2N1c3RvbS1kb2NrZXJmaWxlJyxcbiAgICBwcm9wc1R5cGU6ICdDdXN0b21Eb2NrZXJmaWxlQ3dJbWFnZVBhY2thZ2luZ1Byb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnQ3VzdG9tRG9ja2VyZmlsZUN3SW1hZ2VQYWNrYWdpbmcnLFxuICAgIHNvdXJjZUZpbGU6ICdkZXBsb3ltZW50LWFydGlmYWN0cy5kLnRzJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnRXh0ZXJuYWxCdWlsZHBhY2tQYWNrYWdpbmcnLFxuICAgIHR5cGVWYWx1ZTogJ2V4dGVybmFsLWJ1aWxkcGFjaycsXG4gICAgcHJvcHNUeXBlOiAnRXh0ZXJuYWxCdWlsZHBhY2tDd0ltYWdlUGFja2FnaW5nUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdFeHRlcm5hbEJ1aWxkcGFja0N3SW1hZ2VQYWNrYWdpbmcnLFxuICAgIHNvdXJjZUZpbGU6ICdkZXBsb3ltZW50LWFydGlmYWN0cy5kLnRzJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnTml4cGFja3NQYWNrYWdpbmcnLFxuICAgIHR5cGVWYWx1ZTogJ25peHBhY2tzJyxcbiAgICBwcm9wc1R5cGU6ICdOaXhwYWNrc0N3SW1hZ2VQYWNrYWdpbmdQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ05peHBhY2tzQ3dJbWFnZVBhY2thZ2luZycsXG4gICAgc291cmNlRmlsZTogJ2RlcGxveW1lbnQtYXJ0aWZhY3RzLmQudHMnXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdTdGFja3RhcGVJbWFnZUJ1aWxkcGFja1BhY2thZ2luZycsXG4gICAgdHlwZVZhbHVlOiAnc3RhY2t0YXBlLWltYWdlLWJ1aWxkcGFjaycsXG4gICAgcHJvcHNUeXBlOiAnU3RwQnVpbGRwYWNrQ3dJbWFnZVBhY2thZ2luZ1Byb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnU3RwQnVpbGRwYWNrQ3dJbWFnZVBhY2thZ2luZycsXG4gICAgc291cmNlRmlsZTogJ2RlcGxveW1lbnQtYXJ0aWZhY3RzLmQudHMnXG4gIH0sXG4gIC8vIExhbWJkYSBGdW5jdGlvbiBFdmVudHMvSW50ZWdyYXRpb25zXG4gIHtcbiAgICBjbGFzc05hbWU6ICdIdHRwQXBpSW50ZWdyYXRpb24nLFxuICAgIHR5cGVWYWx1ZTogJ2h0dHAtYXBpLWdhdGV3YXknLFxuICAgIHByb3BzVHlwZTogJ0h0dHBBcGlJbnRlZ3JhdGlvblByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnSHR0cEFwaUludGVncmF0aW9uJyxcbiAgICBzb3VyY2VGaWxlOiAnZXZlbnRzLmQudHMnXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdTM0ludGVncmF0aW9uJyxcbiAgICB0eXBlVmFsdWU6ICdzMycsXG4gICAgcHJvcHNUeXBlOiAnUzNJbnRlZ3JhdGlvblByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnUzNJbnRlZ3JhdGlvbicsXG4gICAgc291cmNlRmlsZTogJ2V2ZW50cy5kLnRzJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnU2NoZWR1bGVJbnRlZ3JhdGlvbicsXG4gICAgdHlwZVZhbHVlOiAnc2NoZWR1bGUnLFxuICAgIHByb3BzVHlwZTogJ1NjaGVkdWxlSW50ZWdyYXRpb25Qcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ1NjaGVkdWxlSW50ZWdyYXRpb24nLFxuICAgIHNvdXJjZUZpbGU6ICdldmVudHMuZC50cydcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ1Nuc0ludGVncmF0aW9uJyxcbiAgICB0eXBlVmFsdWU6ICdzbnMnLFxuICAgIHByb3BzVHlwZTogJ1Nuc0ludGVncmF0aW9uUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdTbnNJbnRlZ3JhdGlvbicsXG4gICAgc291cmNlRmlsZTogJ2V2ZW50cy5kLnRzJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnU3FzSW50ZWdyYXRpb24nLFxuICAgIHR5cGVWYWx1ZTogJ3NxcycsXG4gICAgcHJvcHNUeXBlOiAnU3FzSW50ZWdyYXRpb25Qcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ1Nxc0ludGVncmF0aW9uJyxcbiAgICBzb3VyY2VGaWxlOiAnZXZlbnRzLmQudHMnXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdLaW5lc2lzSW50ZWdyYXRpb24nLFxuICAgIHR5cGVWYWx1ZTogJ2tpbmVzaXMnLFxuICAgIHByb3BzVHlwZTogJ0tpbmVzaXNJbnRlZ3JhdGlvblByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnS2luZXNpc0ludGVncmF0aW9uJyxcbiAgICBzb3VyY2VGaWxlOiAnZXZlbnRzLmQudHMnXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdEeW5hbW9EYkludGVncmF0aW9uJyxcbiAgICB0eXBlVmFsdWU6ICdkeW5hbW9kYicsXG4gICAgcHJvcHNUeXBlOiAnRHluYW1vRGJJbnRlZ3JhdGlvblByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnRHluYW1vRGJJbnRlZ3JhdGlvbicsXG4gICAgc291cmNlRmlsZTogJ2V2ZW50cy5kLnRzJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnQ2xvdWR3YXRjaExvZ0ludGVncmF0aW9uJyxcbiAgICB0eXBlVmFsdWU6ICdjbG91ZHdhdGNoLWxvZ3MnLFxuICAgIHByb3BzVHlwZTogJ0Nsb3Vkd2F0Y2hMb2dJbnRlZ3JhdGlvblByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnQ2xvdWR3YXRjaExvZ0ludGVncmF0aW9uJyxcbiAgICBzb3VyY2VGaWxlOiAnZXZlbnRzLmQudHMnXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdBcHBsaWNhdGlvbkxvYWRCYWxhbmNlckludGVncmF0aW9uJyxcbiAgICB0eXBlVmFsdWU6ICdhcHBsaWNhdGlvbi1sb2FkLWJhbGFuY2VyJyxcbiAgICBwcm9wc1R5cGU6ICdBcHBsaWNhdGlvbkxvYWRCYWxhbmNlckludGVncmF0aW9uUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdBcHBsaWNhdGlvbkxvYWRCYWxhbmNlckludGVncmF0aW9uJyxcbiAgICBzb3VyY2VGaWxlOiAnZXZlbnRzLmQudHMnXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdFdmVudEJ1c0ludGVncmF0aW9uJyxcbiAgICB0eXBlVmFsdWU6ICdldmVudC1idXMnLFxuICAgIHByb3BzVHlwZTogJ0V2ZW50QnVzSW50ZWdyYXRpb25Qcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0V2ZW50QnVzSW50ZWdyYXRpb24nLFxuICAgIHNvdXJjZUZpbGU6ICdldmVudHMuZC50cydcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ0thZmthVG9waWNJbnRlZ3JhdGlvbicsXG4gICAgdHlwZVZhbHVlOiAna2Fma2EtdG9waWMnLFxuICAgIHByb3BzVHlwZTogJ0thZmthVG9waWNJbnRlZ3JhdGlvblByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnS2Fma2FUb3BpY0ludGVncmF0aW9uJyxcbiAgICBzb3VyY2VGaWxlOiAnZXZlbnRzLmQudHMnXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdBbGFybUludGVncmF0aW9uJyxcbiAgICB0eXBlVmFsdWU6ICdhbGFybScsXG4gICAgcHJvcHNUeXBlOiAnQWxhcm1JbnRlZ3JhdGlvblByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnQWxhcm1JbnRlZ3JhdGlvbicsXG4gICAgc291cmNlRmlsZTogJ2V2ZW50cy5kLnRzJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnSW90SW50ZWdyYXRpb24nLFxuICAgIHR5cGVWYWx1ZTogJ2lvdCcsXG4gICAgcHJvcHNUeXBlOiAnSW90SW50ZWdyYXRpb25Qcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0lvdEludGVncmF0aW9uJyxcbiAgICBzb3VyY2VGaWxlOiAnZXZlbnRzLmQudHMnXG4gIH0sXG4gIC8vIENETiBSb3V0ZXNcbiAge1xuICAgIGNsYXNzTmFtZTogJ0NkbkxvYWRCYWxhbmNlclJvdXRlJyxcbiAgICB0eXBlVmFsdWU6ICdhcHBsaWNhdGlvbi1sb2FkLWJhbGFuY2VyJyxcbiAgICBwcm9wc1R5cGU6ICdDZG5Mb2FkQmFsYW5jZXJPcmlnaW4nLFxuICAgIGludGVyZmFjZU5hbWU6ICdDZG5Mb2FkQmFsYW5jZXJPcmlnaW4nLFxuICAgIHNvdXJjZUZpbGU6ICdjZG4uZC50cydcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ0Nkbkh0dHBBcGlHYXRld2F5Um91dGUnLFxuICAgIHR5cGVWYWx1ZTogJ2h0dHAtYXBpLWdhdGV3YXknLFxuICAgIHByb3BzVHlwZTogJ0Nkbkh0dHBBcGlHYXRld2F5T3JpZ2luJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnQ2RuSHR0cEFwaUdhdGV3YXlPcmlnaW4nLFxuICAgIHNvdXJjZUZpbGU6ICdjZG4uZC50cydcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ0NkbkxhbWJkYUZ1bmN0aW9uUm91dGUnLFxuICAgIHR5cGVWYWx1ZTogJ2Z1bmN0aW9uJyxcbiAgICBwcm9wc1R5cGU6ICdDZG5MYW1iZGFGdW5jdGlvbk9yaWdpbicsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0NkbkxhbWJkYUZ1bmN0aW9uT3JpZ2luJyxcbiAgICBzb3VyY2VGaWxlOiAnY2RuLmQudHMnXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdDZG5DdXN0b21Eb21haW5Sb3V0ZScsXG4gICAgdHlwZVZhbHVlOiAnY3VzdG9tLW9yaWdpbicsXG4gICAgcHJvcHNUeXBlOiAnQ2RuQ3VzdG9tT3JpZ2luJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnQ2RuQ3VzdG9tT3JpZ2luJyxcbiAgICBzb3VyY2VGaWxlOiAnY2RuLmQudHMnXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdDZG5CdWNrZXRSb3V0ZScsXG4gICAgdHlwZVZhbHVlOiAnYnVja2V0JyxcbiAgICBwcm9wc1R5cGU6ICdDZG5CdWNrZXRPcmlnaW4nLFxuICAgIGludGVyZmFjZU5hbWU6ICdDZG5CdWNrZXRPcmlnaW4nLFxuICAgIHNvdXJjZUZpbGU6ICdjZG4uZC50cydcbiAgfSxcbiAgLy8gV2ViIEFwcCBGaXJld2FsbCBSdWxlc1xuICB7XG4gICAgY2xhc3NOYW1lOiAnTWFuYWdlZFJ1bGVHcm91cCcsXG4gICAgdHlwZVZhbHVlOiAnbWFuYWdlZC1ydWxlLWdyb3VwJyxcbiAgICBwcm9wc1R5cGU6ICdNYW5hZ2VkUnVsZUdyb3VwUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdNYW5hZ2VkUnVsZUdyb3VwJyxcbiAgICBzb3VyY2VGaWxlOiAnd2ViLWFwcC1maXJld2FsbC5kLnRzJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnQ3VzdG9tUnVsZUdyb3VwJyxcbiAgICB0eXBlVmFsdWU6ICdjdXN0b20tcnVsZS1ncm91cCcsXG4gICAgcHJvcHNUeXBlOiAnQ3VzdG9tUnVsZUdyb3VwUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdDdXN0b21SdWxlR3JvdXAnLFxuICAgIHNvdXJjZUZpbGU6ICd3ZWItYXBwLWZpcmV3YWxsLmQudHMnXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdSYXRlQmFzZWRSdWxlJyxcbiAgICB0eXBlVmFsdWU6ICdyYXRlLWJhc2VkLXJ1bGUnLFxuICAgIHByb3BzVHlwZTogJ1JhdGVCYXNlZFN0YXRlbWVudFByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnUmF0ZUJhc2VkUnVsZScsXG4gICAgc291cmNlRmlsZTogJ3dlYi1hcHAtZmlyZXdhbGwuZC50cydcbiAgfSxcbiAgLy8gU1FTIFF1ZXVlIEludGVncmF0aW9uc1xuICB7XG4gICAgY2xhc3NOYW1lOiAnU3FzUXVldWVFdmVudEJ1c0ludGVncmF0aW9uJyxcbiAgICB0eXBlVmFsdWU6ICdldmVudC1idXMnLFxuICAgIHByb3BzVHlwZTogJ1Nxc1F1ZXVlRXZlbnRCdXNJbnRlZ3JhdGlvblByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnU3FzUXVldWVFdmVudEJ1c0ludGVncmF0aW9uJyxcbiAgICBzb3VyY2VGaWxlOiAnc3FzLXF1ZXVlcy5kLnRzJ1xuICB9LFxuICAvLyBNdWx0aSBDb250YWluZXIgV29ya2xvYWQgSW50ZWdyYXRpb25zXG4gIHtcbiAgICBjbGFzc05hbWU6ICdNdWx0aUNvbnRhaW5lcldvcmtsb2FkSHR0cEFwaUludGVncmF0aW9uJyxcbiAgICB0eXBlVmFsdWU6ICdodHRwLWFwaS1nYXRld2F5JyxcbiAgICBwcm9wc1R5cGU6ICdDb250YWluZXJXb3JrbG9hZEh0dHBBcGlJbnRlZ3JhdGlvblByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnQ29udGFpbmVyV29ya2xvYWRIdHRwQXBpSW50ZWdyYXRpb24nLFxuICAgIHNvdXJjZUZpbGU6ICdtdWx0aS1jb250YWluZXItd29ya2xvYWRzLmQudHMnXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdNdWx0aUNvbnRhaW5lcldvcmtsb2FkTG9hZEJhbGFuY2VySW50ZWdyYXRpb24nLFxuICAgIHR5cGVWYWx1ZTogJ2FwcGxpY2F0aW9uLWxvYWQtYmFsYW5jZXInLFxuICAgIHByb3BzVHlwZTogJ0NvbnRhaW5lcldvcmtsb2FkTG9hZEJhbGFuY2VySW50ZWdyYXRpb25Qcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0NvbnRhaW5lcldvcmtsb2FkTG9hZEJhbGFuY2VySW50ZWdyYXRpb24nLFxuICAgIHNvdXJjZUZpbGU6ICdtdWx0aS1jb250YWluZXItd29ya2xvYWRzLmQudHMnXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdNdWx0aUNvbnRhaW5lcldvcmtsb2FkTmV0d29ya0xvYWRCYWxhbmNlckludGVncmF0aW9uJyxcbiAgICB0eXBlVmFsdWU6ICduZXR3b3JrLWxvYWQtYmFsYW5jZXInLFxuICAgIHByb3BzVHlwZTogJ0NvbnRhaW5lcldvcmtsb2FkTmV0d29ya0xvYWRCYWxhbmNlckludGVncmF0aW9uUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdDb250YWluZXJXb3JrbG9hZE5ldHdvcmtMb2FkQmFsYW5jZXJJbnRlZ3JhdGlvbicsXG4gICAgc291cmNlRmlsZTogJ211bHRpLWNvbnRhaW5lci13b3JrbG9hZHMuZC50cydcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ011bHRpQ29udGFpbmVyV29ya2xvYWRJbnRlcm5hbEludGVncmF0aW9uJyxcbiAgICB0eXBlVmFsdWU6ICd3b3JrbG9hZC1pbnRlcm5hbCcsXG4gICAgcHJvcHNUeXBlOiAnQ29udGFpbmVyV29ya2xvYWRJbnRlcm5hbEludGVncmF0aW9uUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdDb250YWluZXJXb3JrbG9hZEludGVybmFsSW50ZWdyYXRpb24nLFxuICAgIHNvdXJjZUZpbGU6ICdtdWx0aS1jb250YWluZXItd29ya2xvYWRzLmQudHMnXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdNdWx0aUNvbnRhaW5lcldvcmtsb2FkU2VydmljZUNvbm5lY3RJbnRlZ3JhdGlvbicsXG4gICAgdHlwZVZhbHVlOiAnc2VydmljZS1jb25uZWN0JyxcbiAgICBwcm9wc1R5cGU6ICdDb250YWluZXJXb3JrbG9hZFNlcnZpY2VDb25uZWN0SW50ZWdyYXRpb25Qcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0NvbnRhaW5lcldvcmtsb2FkU2VydmljZUNvbm5lY3RJbnRlZ3JhdGlvbicsXG4gICAgc291cmNlRmlsZTogJ211bHRpLWNvbnRhaW5lci13b3JrbG9hZHMuZC50cydcbiAgfSxcbiAgLy8gU2NyaXB0c1xuICB7XG4gICAgY2xhc3NOYW1lOiAnTG9jYWxTY3JpcHQnLFxuICAgIHR5cGVWYWx1ZTogJ2xvY2FsLXNjcmlwdCcsXG4gICAgcHJvcHNUeXBlOiAnTG9jYWxTY3JpcHRQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0xvY2FsU2NyaXB0JyxcbiAgICBzb3VyY2VGaWxlOiAnX19oZWxwZXJzLmQudHMnXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdCYXN0aW9uU2NyaXB0JyxcbiAgICB0eXBlVmFsdWU6ICdiYXN0aW9uLXNjcmlwdCcsXG4gICAgcHJvcHNUeXBlOiAnQmFzdGlvblNjcmlwdFByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnQmFzdGlvblNjcmlwdCcsXG4gICAgc291cmNlRmlsZTogJ19faGVscGVycy5kLnRzJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnTG9jYWxTY3JpcHRXaXRoQmFzdGlvblR1bm5lbGluZycsXG4gICAgdHlwZVZhbHVlOiAnbG9jYWwtc2NyaXB0LXdpdGgtYmFzdGlvbi10dW5uZWxpbmcnLFxuICAgIHByb3BzVHlwZTogJ0xvY2FsU2NyaXB0V2l0aEJhc3Rpb25UdW5uZWxpbmdQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0xvY2FsU2NyaXB0V2l0aEJhc3Rpb25UdW5uZWxpbmcnLFxuICAgIHNvdXJjZUZpbGU6ICdfX2hlbHBlcnMuZC50cydcbiAgfSxcbiAgLy8gTG9nIEZvcndhcmRpbmdcbiAge1xuICAgIGNsYXNzTmFtZTogJ0h0dHBFbmRwb2ludExvZ0ZvcndhcmRpbmcnLFxuICAgIHR5cGVWYWx1ZTogJ2h0dHAtZW5kcG9pbnQnLFxuICAgIHByb3BzVHlwZTogJ0h0dHBFbmRwb2ludExvZ0ZvcndhcmRpbmdQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0h0dHBFbmRwb2ludExvZ0ZvcndhcmRpbmcnLFxuICAgIHNvdXJjZUZpbGU6ICdfX2hlbHBlcnMuZC50cydcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ0hpZ2hsaWdodExvZ0ZvcndhcmRpbmcnLFxuICAgIHR5cGVWYWx1ZTogJ2hpZ2hsaWdodCcsXG4gICAgcHJvcHNUeXBlOiAnSGlnaGxpZ2h0TG9nRm9yd2FyZGluZ1Byb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnSGlnaGxpZ2h0TG9nRm9yd2FyZGluZycsXG4gICAgc291cmNlRmlsZTogJ19faGVscGVycy5kLnRzJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnRGF0YWRvZ0xvZ0ZvcndhcmRpbmcnLFxuICAgIHR5cGVWYWx1ZTogJ2RhdGFkb2cnLFxuICAgIHByb3BzVHlwZTogJ0RhdGFkb2dMb2dGb3J3YXJkaW5nUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdEYXRhZG9nTG9nRm9yd2FyZGluZycsXG4gICAgc291cmNlRmlsZTogJ19faGVscGVycy5kLnRzJ1xuICB9LFxuICAvLyBCdWNrZXQgTGlmZWN5Y2xlIFJ1bGVzXG4gIHtcbiAgICBjbGFzc05hbWU6ICdFeHBpcmF0aW9uTGlmZWN5Y2xlUnVsZScsXG4gICAgdHlwZVZhbHVlOiAnZXhwaXJhdGlvbicsXG4gICAgcHJvcHNUeXBlOiAnRXhwaXJhdGlvblByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnRXhwaXJhdGlvbkxpZmVjeWNsZVJ1bGUnLFxuICAgIHNvdXJjZUZpbGU6ICdidWNrZXRzLmQudHMnXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdOb25DdXJyZW50VmVyc2lvbkV4cGlyYXRpb25MaWZlY3ljbGVSdWxlJyxcbiAgICB0eXBlVmFsdWU6ICdub24tY3VycmVudC12ZXJzaW9uLWV4cGlyYXRpb24nLFxuICAgIHByb3BzVHlwZTogJ05vbkN1cnJlbnRWZXJzaW9uRXhwaXJhdGlvblByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnTm9uQ3VycmVudFZlcnNpb25FeHBpcmF0aW9uTGlmZWN5Y2xlUnVsZScsXG4gICAgc291cmNlRmlsZTogJ2J1Y2tldHMuZC50cydcbiAgfSxcbiAgLy8gRUZTIE1vdW50c1xuICB7XG4gICAgY2xhc3NOYW1lOiAnQ29udGFpbmVyRWZzTW91bnQnLFxuICAgIHR5cGVWYWx1ZTogJ2VmcycsXG4gICAgcHJvcHNUeXBlOiAnQ29udGFpbmVyRWZzTW91bnRQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0NvbnRhaW5lckVmc01vdW50JyxcbiAgICBzb3VyY2VGaWxlOiAnX19oZWxwZXJzLmQudHMnXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdMYW1iZGFFZnNNb3VudCcsXG4gICAgdHlwZVZhbHVlOiAnZWZzJyxcbiAgICBwcm9wc1R5cGU6ICdMYW1iZGFFZnNNb3VudFByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnTGFtYmRhRWZzTW91bnQnLFxuICAgIHNvdXJjZUZpbGU6ICdmdW5jdGlvbnMuZC50cydcbiAgfSxcbiAgLy8gQXV0aG9yaXplcnNcbiAge1xuICAgIGNsYXNzTmFtZTogJ0NvZ25pdG9BdXRob3JpemVyJyxcbiAgICB0eXBlVmFsdWU6ICdjb2duaXRvJyxcbiAgICBwcm9wc1R5cGU6ICdDb2duaXRvQXV0aG9yaXplclByb3BlcnRpZXMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdDb2duaXRvQXV0aG9yaXplcicsXG4gICAgc291cmNlRmlsZTogJ3VzZXItcG9vbHMuZC50cydcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ0xhbWJkYUF1dGhvcml6ZXInLFxuICAgIHR5cGVWYWx1ZTogJ2xhbWJkYScsXG4gICAgcHJvcHNUeXBlOiAnTGFtYmRhQXV0aG9yaXplclByb3BlcnRpZXMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdMYW1iZGFBdXRob3JpemVyJyxcbiAgICBzb3VyY2VGaWxlOiAndXNlci1wb29scy5kLnRzJ1xuICB9LFxuICAvLyBDdXN0b20gUmVzb3VyY2VzXG4gIHtcbiAgICBjbGFzc05hbWU6ICdDdXN0b21SZXNvdXJjZURlZmluaXRpb24nLFxuICAgIHR5cGVWYWx1ZTogJ2N1c3RvbS1yZXNvdXJjZS1kZWZpbml0aW9uJyxcbiAgICBwcm9wc1R5cGU6ICdDdXN0b21SZXNvdXJjZURlZmluaXRpb25Qcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0N1c3RvbVJlc291cmNlRGVmaW5pdGlvbicsXG4gICAgc291cmNlRmlsZTogJ2N1c3RvbS1yZXNvdXJjZXMuZC50cydcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ0N1c3RvbVJlc291cmNlSW5zdGFuY2UnLFxuICAgIHR5cGVWYWx1ZTogJ2N1c3RvbS1yZXNvdXJjZS1pbnN0YW5jZScsXG4gICAgcHJvcHNUeXBlOiAnQ3VzdG9tUmVzb3VyY2VJbnN0YW5jZVByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnQ3VzdG9tUmVzb3VyY2VJbnN0YW5jZScsXG4gICAgc291cmNlRmlsZTogJ2N1c3RvbS1yZXNvdXJjZXMuZC50cydcbiAgfSxcbiAgLy8gRGVwbG95bWVudCBTY3JpcHRzXG4gIHtcbiAgICBjbGFzc05hbWU6ICdEZXBsb3ltZW50U2NyaXB0JyxcbiAgICB0eXBlVmFsdWU6ICdkZXBsb3ltZW50LXNjcmlwdCcsXG4gICAgcHJvcHNUeXBlOiAnRGVwbG95bWVudFNjcmlwdFByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnRGVwbG95bWVudFNjcmlwdCcsXG4gICAgc291cmNlRmlsZTogJ2RlcGxveW1lbnQtc2NyaXB0LmQudHMnXG4gIH0sXG4gIC8vIEVkZ2UgTGFtYmRhIEZ1bmN0aW9uc1xuICB7XG4gICAgY2xhc3NOYW1lOiAnRWRnZUxhbWJkYUZ1bmN0aW9uJyxcbiAgICB0eXBlVmFsdWU6ICdlZGdlLWxhbWJkYS1mdW5jdGlvbicsXG4gICAgcHJvcHNUeXBlOiAnRWRnZUxhbWJkYUZ1bmN0aW9uUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdFZGdlTGFtYmRhRnVuY3Rpb24nLFxuICAgIHNvdXJjZUZpbGU6ICdlZGdlLWxhbWJkYS1mdW5jdGlvbnMuZC50cydcbiAgfVxuXTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT0gSEVMUEVSIEZVTkNUSU9OUyA9PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVzb3VyY2VCeUNsYXNzTmFtZShjbGFzc05hbWU6IHN0cmluZyk6IFJlc291cmNlRGVmaW5pdGlvbiB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBSRVNPVVJDRVNfQ09OVkVSVElCTEVfVE9fQ0xBU1NFUy5maW5kKChyKSA9PiByLmNsYXNzTmFtZSA9PT0gY2xhc3NOYW1lKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFJlc291cmNlQnlUeXBlKHJlc291cmNlVHlwZTogc3RyaW5nKTogUmVzb3VyY2VEZWZpbml0aW9uIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIFJFU09VUkNFU19DT05WRVJUSUJMRV9UT19DTEFTU0VTLmZpbmQoKHIpID0+IHIucmVzb3VyY2VUeXBlID09PSByZXNvdXJjZVR5cGUpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVzb3VyY2VzV2l0aEF1Z21lbnRlZFByb3BzKCk6IFJlc291cmNlRGVmaW5pdGlvbltdIHtcbiAgcmV0dXJuIFJFU09VUkNFU19DT05WRVJUSUJMRV9UT19DTEFTU0VTLmZpbHRlcigocikgPT4gci5oYXNBdWdtZW50ZWRQcm9wcyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRSZXNvdXJjZXNXaXRoT3ZlcnJpZGVzKCk6IFJlc291cmNlRGVmaW5pdGlvbltdIHtcbiAgcmV0dXJuIFJFU09VUkNFU19DT05WRVJUSUJMRV9UT19DTEFTU0VTLmZpbHRlcigocikgPT4gci5zdXBwb3J0c092ZXJyaWRlcyAhPT0gZmFsc2UpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VHlwZVByb3BlcnRpZXNCeUNsYXNzTmFtZShjbGFzc05hbWU6IHN0cmluZyk6IFR5cGVQcm9wZXJ0aWVzRGVmaW5pdGlvbiB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBNSVNDX1RZUEVTX0NPTlZFUlRJQkxFX1RPX0NMQVNTRVMuZmluZCgodCkgPT4gdC5jbGFzc05hbWUgPT09IGNsYXNzTmFtZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRUeXBlUHJvcGVydGllc0J5VHlwZVZhbHVlKHR5cGVWYWx1ZTogc3RyaW5nKTogVHlwZVByb3BlcnRpZXNEZWZpbml0aW9uIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIE1JU0NfVFlQRVNfQ09OVkVSVElCTEVfVE9fQ0xBU1NFUy5maW5kKCh0KSA9PiB0LnR5cGVWYWx1ZSA9PT0gdHlwZVZhbHVlKTtcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT0gREVSSVZFRCBNQVBQSU5HUyA9PT09PT09PT09PT09PT09PT09PVxuXG4vKiogUmVzb3VyY2UgdHlwZSBcdTIxOTIgY2xhc3MgbmFtZSBtYXBwaW5nICovXG5leHBvcnQgY29uc3QgUkVTT1VSQ0VfVFlQRV9UT19DTEFTUzogUmVjb3JkPHN0cmluZywgUmVzb3VyY2VDbGFzc05hbWU+ID0gT2JqZWN0LmZyb21FbnRyaWVzKFxuICBSRVNPVVJDRVNfQ09OVkVSVElCTEVfVE9fQ0xBU1NFUy5tYXAoKHIpID0+IFtyLnJlc291cmNlVHlwZSwgci5jbGFzc05hbWVdKVxuKTtcblxuLyoqIFNjcmlwdCB0eXBlIFx1MjE5MiBjbGFzcyBuYW1lIG1hcHBpbmcgKi9cbmV4cG9ydCBjb25zdCBTQ1JJUFRfVFlQRV9UT19DTEFTUzogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IE9iamVjdC5mcm9tRW50cmllcyhcbiAgTUlTQ19UWVBFU19DT05WRVJUSUJMRV9UT19DTEFTU0VTLmZpbHRlcihcbiAgICAodCkgPT4gdC5zb3VyY2VGaWxlID09PSAnX19oZWxwZXJzLmQudHMnICYmIHQucHJvcHNUeXBlLmluY2x1ZGVzKCdTY3JpcHQnKVxuICApLm1hcCgodCkgPT4gW3QudHlwZVZhbHVlLCB0LmNsYXNzTmFtZV0pXG4pO1xuXG4vKiogUGFja2FnaW5nIHR5cGUgXHUyMTkyIGNsYXNzIG5hbWUgbWFwcGluZyAqL1xuZXhwb3J0IGNvbnN0IFBBQ0tBR0lOR19UWVBFX1RPX0NMQVNTOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0gT2JqZWN0LmZyb21FbnRyaWVzKFxuICBNSVNDX1RZUEVTX0NPTlZFUlRJQkxFX1RPX0NMQVNTRVMuZmlsdGVyKCh0KSA9PiB0LnNvdXJjZUZpbGUgPT09ICdkZXBsb3ltZW50LWFydGlmYWN0cy5kLnRzJykubWFwKCh0KSA9PiBbXG4gICAgdC50eXBlVmFsdWUsXG4gICAgdC5jbGFzc05hbWVcbiAgXSlcbik7XG5cbi8qKiBFbmdpbmUgdHlwZSBcdTIxOTIgY2xhc3MgbmFtZSBtYXBwaW5nICovXG5leHBvcnQgY29uc3QgRU5HSU5FX1RZUEVfVE9fQ0xBU1M6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSBPYmplY3QuZnJvbUVudHJpZXMoXG4gIE1JU0NfVFlQRVNfQ09OVkVSVElCTEVfVE9fQ0xBU1NFUy5maWx0ZXIoKHQpID0+IHQucHJvcHNUeXBlLmluY2x1ZGVzKCdFbmdpbmUnKSkubWFwKCh0KSA9PiBbdC50eXBlVmFsdWUsIHQuY2xhc3NOYW1lXSlcbik7XG4iLCAiLy8gUmUtZXhwb3J0IGZyb20gY2xhc3MtY29uZmlnIChzaW5nbGUgc291cmNlIG9mIHRydXRoKVxuZXhwb3J0IHtcbiAgZ2V0UmVzb3VyY2VCeUNsYXNzTmFtZSxcbiAgZ2V0UmVzb3VyY2VCeVR5cGUsXG4gIGdldFJlc291cmNlc1dpdGhBdWdtZW50ZWRQcm9wcyxcbiAgZ2V0UmVzb3VyY2VzV2l0aE92ZXJyaWRlcyxcbiAgZ2V0VHlwZVByb3BlcnRpZXNCeUNsYXNzTmFtZSxcbiAgZ2V0VHlwZVByb3BlcnRpZXNCeVR5cGVWYWx1ZSxcbiAgTUlTQ19UWVBFU19DT05WRVJUSUJMRV9UT19DTEFTU0VTLFxuICB0eXBlIFJlc291cmNlRGVmaW5pdGlvbixcbiAgUkVTT1VSQ0VTX0NPTlZFUlRJQkxFX1RPX0NMQVNTRVMsXG4gIHR5cGUgVHlwZVByb3BlcnRpZXNEZWZpbml0aW9uXG59IGZyb20gJy4vY2xhc3MtY29uZmlnJztcblxuLy8gVGhlc2UgY2FuIGJlIHJlZmVyZW5jZWQgdXNpbmcgJFJlc291cmNlUGFyYW0gZGlyZWN0aXZlXG5leHBvcnQgY29uc3QgUkVGRVJFTkNFQUJMRV9QQVJBTVM6IFJlY29yZDxzdHJpbmcsIEFycmF5PHsgbmFtZTogc3RyaW5nOyBkZXNjcmlwdGlvbjogc3RyaW5nIH0+PiA9IHtcbiAgJ3JlbGF0aW9uYWwtZGF0YWJhc2UnOiBbXG4gICAgeyBuYW1lOiAnY29ubmVjdGlvblN0cmluZycsIGRlc2NyaXB0aW9uOiAnQ29ubmVjdGlvbiBzdHJpbmcgZm9yIHRoZSBkYXRhYmFzZScgfSxcbiAgICB7IG5hbWU6ICdqZGJjQ29ubmVjdGlvblN0cmluZycsIGRlc2NyaXB0aW9uOiAnSkRCQyBjb25uZWN0aW9uIHN0cmluZycgfSxcbiAgICB7IG5hbWU6ICdob3N0JywgZGVzY3JpcHRpb246ICdEYXRhYmFzZSBob3N0JyB9LFxuICAgIHsgbmFtZTogJ3BvcnQnLCBkZXNjcmlwdGlvbjogJ0RhdGFiYXNlIHBvcnQnIH0sXG4gICAgeyBuYW1lOiAnZGJOYW1lJywgZGVzY3JpcHRpb246ICdEYXRhYmFzZSBuYW1lJyB9LFxuICAgIHsgbmFtZTogJ3JlYWRlckhvc3QnLCBkZXNjcmlwdGlvbjogJ1JlYWRlciBlbmRwb2ludCBob3N0JyB9LFxuICAgIHsgbmFtZTogJ3JlYWRlckNvbm5lY3Rpb25TdHJpbmcnLCBkZXNjcmlwdGlvbjogJ1JlYWRlciBjb25uZWN0aW9uIHN0cmluZycgfSxcbiAgICB7IG5hbWU6ICdyZWFkZXJKZGJjQ29ubmVjdGlvblN0cmluZycsIGRlc2NyaXB0aW9uOiAnUmVhZGVyIEpEQkMgY29ubmVjdGlvbiBzdHJpbmcnIH1cbiAgXSxcbiAgJ3dlYi1zZXJ2aWNlJzogW1xuICAgIHsgbmFtZTogJ2RvbWFpbicsIGRlc2NyaXB0aW9uOiAnV2ViIHNlcnZpY2UgZG9tYWluJyB9LFxuICAgIHsgbmFtZTogJ3VybCcsIGRlc2NyaXB0aW9uOiAnV2ViIHNlcnZpY2UgVVJMJyB9LFxuICAgIHsgbmFtZTogJ2N1c3RvbURvbWFpbnMnLCBkZXNjcmlwdGlvbjogJ0N1c3RvbSBkb21haW5zJyB9LFxuICAgIHsgbmFtZTogJ2N1c3RvbURvbWFpblVybHMnLCBkZXNjcmlwdGlvbjogJ0N1c3RvbSBkb21haW4gVVJMcycgfVxuICBdLFxuICAncHJpdmF0ZS1zZXJ2aWNlJzogW3sgbmFtZTogJ2FkZHJlc3MnLCBkZXNjcmlwdGlvbjogJ1ByaXZhdGUgc2VydmljZSBhZGRyZXNzJyB9XSxcbiAgYnVja2V0OiBbXG4gICAgeyBuYW1lOiAnbmFtZScsIGRlc2NyaXB0aW9uOiAnQnVja2V0IG5hbWUnIH0sXG4gICAgeyBuYW1lOiAnYXJuJywgZGVzY3JpcHRpb246ICdCdWNrZXQgQVJOJyB9XG4gIF0sXG4gICdkeW5hbW8tZGItdGFibGUnOiBbXG4gICAgeyBuYW1lOiAnbmFtZScsIGRlc2NyaXB0aW9uOiAnVGFibGUgbmFtZScgfSxcbiAgICB7IG5hbWU6ICdhcm4nLCBkZXNjcmlwdGlvbjogJ1RhYmxlIEFSTicgfSxcbiAgICB7IG5hbWU6ICdzdHJlYW1Bcm4nLCBkZXNjcmlwdGlvbjogJ1N0cmVhbSBBUk4nIH1cbiAgXSxcbiAgZnVuY3Rpb246IFtcbiAgICB7IG5hbWU6ICdhcm4nLCBkZXNjcmlwdGlvbjogJ0Z1bmN0aW9uIEFSTicgfSxcbiAgICB7IG5hbWU6ICdsb2dHcm91cEFybicsIGRlc2NyaXB0aW9uOiAnTG9nIGdyb3VwIEFSTicgfVxuICBdLFxuICAnYmF0Y2gtam9iJzogW1xuICAgIHsgbmFtZTogJ2pvYkRlZmluaXRpb25Bcm4nLCBkZXNjcmlwdGlvbjogJ0pvYiBkZWZpbml0aW9uIEFSTicgfSxcbiAgICB7IG5hbWU6ICdzdGF0ZU1hY2hpbmVBcm4nLCBkZXNjcmlwdGlvbjogJ1N0YXRlIG1hY2hpbmUgQVJOJyB9LFxuICAgIHsgbmFtZTogJ2xvZ0dyb3VwQXJuJywgZGVzY3JpcHRpb246ICdMb2cgZ3JvdXAgQVJOJyB9XG4gIF0sXG4gICdldmVudC1idXMnOiBbXG4gICAgeyBuYW1lOiAnYXJuJywgZGVzY3JpcHRpb246ICdFdmVudCBidXMgQVJOJyB9LFxuICAgIHsgbmFtZTogJ2FyY2hpdmVBcm4nLCBkZXNjcmlwdGlvbjogJ0FyY2hpdmUgQVJOJyB9XG4gIF0sXG4gICdodHRwLWFwaS1nYXRld2F5JzogW1xuICAgIHsgbmFtZTogJ2RvbWFpbicsIGRlc2NyaXB0aW9uOiAnQVBJIEdhdGV3YXkgZG9tYWluJyB9LFxuICAgIHsgbmFtZTogJ3VybCcsIGRlc2NyaXB0aW9uOiAnQVBJIEdhdGV3YXkgVVJMJyB9LFxuICAgIHsgbmFtZTogJ2N1c3RvbURvbWFpbnMnLCBkZXNjcmlwdGlvbjogJ0N1c3RvbSBkb21haW5zJyB9LFxuICAgIHsgbmFtZTogJ2N1c3RvbURvbWFpblVybHMnLCBkZXNjcmlwdGlvbjogJ0N1c3RvbSBkb21haW4gVVJMcycgfSxcbiAgICB7IG5hbWU6ICdjdXN0b21Eb21haW5VcmwnLCBkZXNjcmlwdGlvbjogJ0ZpcnN0IGN1c3RvbSBkb21haW4gVVJMJyB9XG4gIF0sXG4gICdtb25nby1kYi1hdGxhcy1jbHVzdGVyJzogW3sgbmFtZTogJ2Nvbm5lY3Rpb25TdHJpbmcnLCBkZXNjcmlwdGlvbjogJ01vbmdvREIgY29ubmVjdGlvbiBzdHJpbmcnIH1dLFxuICAncmVkaXMtY2x1c3Rlcic6IFtcbiAgICB7IG5hbWU6ICdob3N0JywgZGVzY3JpcHRpb246ICdSZWRpcyBob3N0JyB9LFxuICAgIHsgbmFtZTogJ3JlYWRlckhvc3QnLCBkZXNjcmlwdGlvbjogJ1JlZGlzIHJlYWRlciBob3N0JyB9LFxuICAgIHsgbmFtZTogJ3BvcnQnLCBkZXNjcmlwdGlvbjogJ1JlZGlzIHBvcnQnIH0sXG4gICAgeyBuYW1lOiAnc2hhcmRpbmcnLCBkZXNjcmlwdGlvbjogJ1NoYXJkaW5nIHN0YXR1cycgfVxuICBdLFxuICAnc3RhdGUtbWFjaGluZSc6IFtcbiAgICB7IG5hbWU6ICdhcm4nLCBkZXNjcmlwdGlvbjogJ1N0YXRlIG1hY2hpbmUgQVJOJyB9LFxuICAgIHsgbmFtZTogJ25hbWUnLCBkZXNjcmlwdGlvbjogJ1N0YXRlIG1hY2hpbmUgbmFtZScgfVxuICBdLFxuICAndXNlci1hdXRoLXBvb2wnOiBbXG4gICAgeyBuYW1lOiAnaWQnLCBkZXNjcmlwdGlvbjogJ1VzZXIgcG9vbCBJRCcgfSxcbiAgICB7IG5hbWU6ICdjbGllbnRJZCcsIGRlc2NyaXB0aW9uOiAnQ2xpZW50IElEJyB9LFxuICAgIHsgbmFtZTogJ2RvbWFpbicsIGRlc2NyaXB0aW9uOiAnVXNlciBwb29sIGRvbWFpbicgfVxuICBdLFxuICAndXBzdGFzaC1yZWRpcyc6IFtcbiAgICB7IG5hbWU6ICdob3N0JywgZGVzY3JpcHRpb246ICdVcHN0YXNoIFJlZGlzIGhvc3QnIH0sXG4gICAgeyBuYW1lOiAncG9ydCcsIGRlc2NyaXB0aW9uOiAnVXBzdGFzaCBSZWRpcyBwb3J0JyB9LFxuICAgIHsgbmFtZTogJ3Bhc3N3b3JkJywgZGVzY3JpcHRpb246ICdQYXNzd29yZCcgfSxcbiAgICB7IG5hbWU6ICdyZXN0VG9rZW4nLCBkZXNjcmlwdGlvbjogJ1JFU1QgdG9rZW4nIH0sXG4gICAgeyBuYW1lOiAncmVhZE9ubHlSZXN0VG9rZW4nLCBkZXNjcmlwdGlvbjogJ1JlYWQtb25seSBSRVNUIHRva2VuJyB9LFxuICAgIHsgbmFtZTogJ3Jlc3RVcmwnLCBkZXNjcmlwdGlvbjogJ1JFU1QgVVJMJyB9LFxuICAgIHsgbmFtZTogJ3JlZGlzVXJsJywgZGVzY3JpcHRpb246ICdSZWRpcyBVUkwnIH1cbiAgXSxcbiAgJ2FwcGxpY2F0aW9uLWxvYWQtYmFsYW5jZXInOiBbXG4gICAgeyBuYW1lOiAnZG9tYWluJywgZGVzY3JpcHRpb246ICdMb2FkIGJhbGFuY2VyIGRvbWFpbicgfSxcbiAgICB7IG5hbWU6ICdjdXN0b21Eb21haW5zJywgZGVzY3JpcHRpb246ICdDdXN0b20gZG9tYWlucycgfVxuICBdLFxuICAnbmV0d29yay1sb2FkLWJhbGFuY2VyJzogW1xuICAgIHsgbmFtZTogJ2RvbWFpbicsIGRlc2NyaXB0aW9uOiAnTG9hZCBiYWxhbmNlciBkb21haW4nIH0sXG4gICAgeyBuYW1lOiAnY3VzdG9tRG9tYWlucycsIGRlc2NyaXB0aW9uOiAnQ3VzdG9tIGRvbWFpbnMnIH1cbiAgXSxcbiAgJ2hvc3RpbmctYnVja2V0JzogW1xuICAgIHsgbmFtZTogJ25hbWUnLCBkZXNjcmlwdGlvbjogJ0J1Y2tldCBuYW1lJyB9LFxuICAgIHsgbmFtZTogJ2FybicsIGRlc2NyaXB0aW9uOiAnQnVja2V0IEFSTicgfVxuICBdLFxuICAnd2ViLWFwcC1maXJld2FsbCc6IFtcbiAgICB7IG5hbWU6ICdhcm4nLCBkZXNjcmlwdGlvbjogJ0ZpcmV3YWxsIEFSTicgfSxcbiAgICB7IG5hbWU6ICdzY29wZScsIGRlc2NyaXB0aW9uOiAnRmlyZXdhbGwgc2NvcGUnIH1cbiAgXSxcbiAgJ29wZW4tc2VhcmNoLWRvbWFpbic6IFtcbiAgICB7IG5hbWU6ICdkb21haW5FbmRwb2ludCcsIGRlc2NyaXB0aW9uOiAnT3BlblNlYXJjaCBkb21haW4gZW5kcG9pbnQnIH0sXG4gICAgeyBuYW1lOiAnYXJuJywgZGVzY3JpcHRpb246ICdEb21haW4gQVJOJyB9XG4gIF0sXG4gICdlZnMtZmlsZXN5c3RlbSc6IFtcbiAgICB7IG5hbWU6ICdhcm4nLCBkZXNjcmlwdGlvbjogJ0VGUyBBUk4nIH0sXG4gICAgeyBuYW1lOiAnaWQnLCBkZXNjcmlwdGlvbjogJ0VGUyBJRCcgfVxuICBdLFxuICAnbmV4dGpzLXdlYic6IFt7IG5hbWU6ICd1cmwnLCBkZXNjcmlwdGlvbjogJ1dlYnNpdGUgVVJMJyB9XSxcbiAgJ211bHRpLWNvbnRhaW5lci13b3JrbG9hZCc6IFt7IG5hbWU6ICdsb2dHcm91cEFybicsIGRlc2NyaXB0aW9uOiAnTG9nIGdyb3VwIEFSTicgfV1cbn07XG4iLCAiaW1wb3J0IHR5cGUgeyBSZXNvdXJjZUNsYXNzTmFtZSB9IGZyb20gJy4vY2xhc3MtY29uZmlnJztcbmltcG9ydCB7IFJFU09VUkNFU19DT05WRVJUSUJMRV9UT19DTEFTU0VTIH0gZnJvbSAnLi9jbGFzcy1jb25maWcnO1xuaW1wb3J0IHsgQmFzZVJlc291cmNlIH0gZnJvbSAnLi9jb25maWcnO1xuaW1wb3J0IHsgUkVGRVJFTkNFQUJMRV9QQVJBTVMgfSBmcm9tICcuL3Jlc291cmNlLW1ldGFkYXRhJztcblxuLy8gUHJpdmF0ZSBzeW1ib2wgZm9yIGFjY2Vzc2luZyB0aGUgaW50ZXJuYWwgcGFyYW0gcmVmZXJlbmNlIG1ldGhvZFxuY29uc3QgZ2V0UGFyYW1SZWZlcmVuY2VTeW1ib2wgPSBTeW1ib2wuZm9yKCdzdGFja3RhcGU6Z2V0UGFyYW1SZWZlcmVuY2UnKTtcblxuLyoqXG4gKiBGYWN0b3J5IGZ1bmN0aW9uIHRvIGNyZWF0ZSBhIHJlc291cmNlIGNsYXNzIHdpdGggcmVmZXJlbmNlYWJsZSBwYXJhbWV0ZXJzLlxuICogU3VwcG9ydHMgdHdvIGNhbGxpbmcgY29udmVudGlvbnM6XG4gKiAtIG5ldyBSZXNvdXJjZShwcm9wZXJ0aWVzKSAtIG5hbWUgZGVyaXZlZCBmcm9tIG9iamVjdCBrZXkgaW4gcmVzb3VyY2VzXG4gKiAtIG5ldyBSZXNvdXJjZShuYW1lLCBwcm9wZXJ0aWVzKSAtIGV4cGxpY2l0IG5hbWUgKGJhY2t3YXJkcyBjb21wYXRpYmxlKVxuICovXG5mdW5jdGlvbiBjcmVhdGVSZXNvdXJjZUNsYXNzKGNsYXNzTmFtZTogUmVzb3VyY2VDbGFzc05hbWUsIHJlc291cmNlVHlwZTogc3RyaW5nKTogYW55IHtcbiAgLy8gQ3JlYXRlIHRoZSBjbGFzcyBkeW5hbWljYWxseVxuICBjb25zdCBSZXNvdXJjZUNsYXNzID0gY2xhc3MgZXh0ZW5kcyBCYXNlUmVzb3VyY2Uge1xuICAgIGNvbnN0cnVjdG9yKG5hbWVPclByb3BlcnRpZXM6IHN0cmluZyB8IGFueSwgcHJvcGVydGllcz86IGFueSkge1xuICAgICAgaWYgKHR5cGVvZiBuYW1lT3JQcm9wZXJ0aWVzID09PSAnc3RyaW5nJykge1xuICAgICAgICAvLyBPbGQgc3R5bGU6IChuYW1lLCBwcm9wZXJ0aWVzKSAtIGV4cGxpY2l0IG5hbWVcbiAgICAgICAgc3VwZXIobmFtZU9yUHJvcGVydGllcywgcmVzb3VyY2VUeXBlLCBwcm9wZXJ0aWVzKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIE5ldyBzdHlsZTogKHByb3BlcnRpZXMpIC0gbmFtZSB3aWxsIGJlIHNldCBmcm9tIG9iamVjdCBrZXlcbiAgICAgICAgc3VwZXIodW5kZWZpbmVkLCByZXNvdXJjZVR5cGUsIG5hbWVPclByb3BlcnRpZXMpO1xuICAgICAgfVxuICAgIH1cbiAgfTtcblxuICAvLyBTZXQgdGhlIGNsYXNzIG5hbWUgZm9yIGJldHRlciBkZWJ1Z2dpbmdcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFJlc291cmNlQ2xhc3MsICduYW1lJywgeyB2YWx1ZTogY2xhc3NOYW1lIH0pO1xuXG4gIC8vIEFkZCByZWZlcmVuY2VhYmxlIHBhcmFtZXRlciBnZXR0ZXJzXG4gIGNvbnN0IHJlZmVyZW5jZWFibGVQYXJhbXMgPSBSRUZFUkVOQ0VBQkxFX1BBUkFNU1tyZXNvdXJjZVR5cGVdIHx8IFtdO1xuICBmb3IgKGNvbnN0IHBhcmFtIG9mIHJlZmVyZW5jZWFibGVQYXJhbXMpIHtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoUmVzb3VyY2VDbGFzcy5wcm90b3R5cGUsIHBhcmFtLm5hbWUsIHtcbiAgICAgIGdldCh0aGlzOiBCYXNlUmVzb3VyY2UpIHtcbiAgICAgICAgcmV0dXJuICh0aGlzIGFzIGFueSlbZ2V0UGFyYW1SZWZlcmVuY2VTeW1ib2xdKHBhcmFtLm5hbWUpO1xuICAgICAgfSxcbiAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gUmVzb3VyY2VDbGFzcztcbn1cblxuLy8gQ3JlYXRlIGFsbCByZXNvdXJjZSBjbGFzc2VzIGZyb20gY29uZmlnXG5jb25zdCBSRVNPVVJDRV9DTEFTU0VTOiBSZWNvcmQ8c3RyaW5nLCBSZXR1cm5UeXBlPHR5cGVvZiBjcmVhdGVSZXNvdXJjZUNsYXNzPj4gPSB7fTtcbmZvciAoY29uc3QgZGVmIG9mIFJFU09VUkNFU19DT05WRVJUSUJMRV9UT19DTEFTU0VTKSB7XG4gIC8vIFVzZSAnTGFtYmRhRnVuY3Rpb24nIGFzIHRoZSBleHBvcnRlZCBuYW1lIGZvciAnRnVuY3Rpb24nIHRvIGF2b2lkIEpTIHJlc2VydmVkIHdvcmQgaXNzdWVzXG4gIFJFU09VUkNFX0NMQVNTRVNbZGVmLmNsYXNzTmFtZSBhcyBhbnldID0gY3JlYXRlUmVzb3VyY2VDbGFzcyhkZWYuY2xhc3NOYW1lLCBkZWYucmVzb3VyY2VUeXBlKTtcbn1cblxuLy8gRXhwb3J0IGFsbCByZXNvdXJjZSBjbGFzc2VzIGZvciBuYW1lZCBpbXBvcnRzXG5leHBvcnQgY29uc3Qge1xuICBSZWxhdGlvbmFsRGF0YWJhc2UsXG4gIFdlYlNlcnZpY2UsXG4gIFByaXZhdGVTZXJ2aWNlLFxuICBXb3JrZXJTZXJ2aWNlLFxuICBNdWx0aUNvbnRhaW5lcldvcmtsb2FkLFxuICBMYW1iZGFGdW5jdGlvbixcbiAgQmF0Y2hKb2IsXG4gIEJ1Y2tldCxcbiAgSG9zdGluZ0J1Y2tldCxcbiAgRHluYW1vRGJUYWJsZSxcbiAgRXZlbnRCdXMsXG4gIEh0dHBBcGlHYXRld2F5LFxuICBBcHBsaWNhdGlvbkxvYWRCYWxhbmNlcixcbiAgTmV0d29ya0xvYWRCYWxhbmNlcixcbiAgUmVkaXNDbHVzdGVyLFxuICBNb25nb0RiQXRsYXNDbHVzdGVyLFxuICBTdGF0ZU1hY2hpbmUsXG4gIFVzZXJBdXRoUG9vbCxcbiAgVXBzdGFzaFJlZGlzLFxuICBTcXNRdWV1ZSxcbiAgU25zVG9waWMsXG4gIFdlYkFwcEZpcmV3YWxsLFxuICBPcGVuU2VhcmNoRG9tYWluLFxuICBFZnNGaWxlc3lzdGVtLFxuICBOZXh0anNXZWIsXG4gIEJhc3Rpb25cbn0gPSBSRVNPVVJDRV9DTEFTU0VTO1xuIiwgImltcG9ydCB7IE1JU0NfVFlQRVNfQ09OVkVSVElCTEVfVE9fQ0xBU1NFUyB9IGZyb20gJy4vY2xhc3MtY29uZmlnJztcbmltcG9ydCB7IEJhc2VUeXBlUHJvcGVydGllcyB9IGZyb20gJy4vY29uZmlnJztcblxuZnVuY3Rpb24gY3JlYXRlVHlwZVByb3BlcnRpZXNDbGFzcyhjbGFzc05hbWU6IHN0cmluZywgdHlwZVZhbHVlOiBzdHJpbmcpOiBhbnkge1xuICBjb25zdCBUeXBlUHJvcGVydGllc0NsYXNzID0gY2xhc3MgZXh0ZW5kcyBCYXNlVHlwZVByb3BlcnRpZXMge1xuICAgIGNvbnN0cnVjdG9yKHByb3BlcnRpZXM6IGFueSkge1xuICAgICAgc3VwZXIodHlwZVZhbHVlLCBwcm9wZXJ0aWVzKTtcbiAgICB9XG4gIH07XG5cbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFR5cGVQcm9wZXJ0aWVzQ2xhc3MsICduYW1lJywgeyB2YWx1ZTogY2xhc3NOYW1lIH0pO1xuICByZXR1cm4gVHlwZVByb3BlcnRpZXNDbGFzcztcbn1cblxuLy8gQ3JlYXRlIGFsbCB0eXBlLXByb3BlcnRpZXMgY2xhc3NlcyBmcm9tIGNvbmZpZ1xuY29uc3QgVFlQRV9QUk9QRVJUSUVTX0NMQVNTRVM6IFJlY29yZDxzdHJpbmcsIFJldHVyblR5cGU8dHlwZW9mIGNyZWF0ZVR5cGVQcm9wZXJ0aWVzQ2xhc3M+PiA9IHt9O1xuZm9yIChjb25zdCBkZWYgb2YgTUlTQ19UWVBFU19DT05WRVJUSUJMRV9UT19DTEFTU0VTKSB7XG4gIFRZUEVfUFJPUEVSVElFU19DTEFTU0VTW2RlZi5jbGFzc05hbWVdID0gY3JlYXRlVHlwZVByb3BlcnRpZXNDbGFzcyhkZWYuY2xhc3NOYW1lLCBkZWYudHlwZVZhbHVlKTtcbn1cblxuLy8gRXhwb3J0IGFsbCBjbGFzc2VzIGZvciBuYW1lZCBpbXBvcnRzIChUeXBlU2NyaXB0IG5lZWRzIHRoZXNlIGV4cGxpY2l0IGV4cG9ydHMpXG5leHBvcnQgY29uc3Qge1xuICAvLyBEYXRhYmFzZSBFbmdpbmVzXG4gIFJkc0VuZ2luZVBvc3RncmVzLFxuICBSZHNFbmdpbmVNYXJpYWRiLFxuICBSZHNFbmdpbmVNeXNxbCxcbiAgUmRzRW5naW5lT3JhY2xlRUUsXG4gIFJkc0VuZ2luZU9yYWNsZVNFMixcbiAgUmRzRW5naW5lU3FsU2VydmVyRUUsXG4gIFJkc0VuZ2luZVNxbFNlcnZlckVYLFxuICBSZHNFbmdpbmVTcWxTZXJ2ZXJTRSxcbiAgUmRzRW5naW5lU3FsU2VydmVyV2ViLFxuICBBdXJvcmFFbmdpbmVQb3N0Z3Jlc3FsLFxuICBBdXJvcmFFbmdpbmVNeXNxbCxcbiAgQXVyb3JhU2VydmVybGVzc0VuZ2luZVBvc3RncmVzcWwsXG4gIEF1cm9yYVNlcnZlcmxlc3NFbmdpbmVNeXNxbCxcbiAgQXVyb3JhU2VydmVybGVzc1YyRW5naW5lUG9zdGdyZXNxbCxcbiAgQXVyb3JhU2VydmVybGVzc1YyRW5naW5lTXlzcWwsXG4gIC8vIExhbWJkYSBQYWNrYWdpbmdcbiAgU3RhY2t0YXBlTGFtYmRhQnVpbGRwYWNrUGFja2FnaW5nLFxuICBDdXN0b21BcnRpZmFjdExhbWJkYVBhY2thZ2luZyxcbiAgLy8gQ29udGFpbmVyIFBhY2thZ2luZ1xuICBQcmVidWlsdEltYWdlUGFja2FnaW5nLFxuICBDdXN0b21Eb2NrZXJmaWxlUGFja2FnaW5nLFxuICBFeHRlcm5hbEJ1aWxkcGFja1BhY2thZ2luZyxcbiAgTml4cGFja3NQYWNrYWdpbmcsXG4gIFN0YWNrdGFwZUltYWdlQnVpbGRwYWNrUGFja2FnaW5nLFxuICAvLyBMYW1iZGEgRnVuY3Rpb24gRXZlbnRzL0ludGVncmF0aW9uc1xuICBIdHRwQXBpSW50ZWdyYXRpb24sXG4gIFMzSW50ZWdyYXRpb24sXG4gIFNjaGVkdWxlSW50ZWdyYXRpb24sXG4gIFNuc0ludGVncmF0aW9uLFxuICBTcXNJbnRlZ3JhdGlvbixcbiAgS2luZXNpc0ludGVncmF0aW9uLFxuICBEeW5hbW9EYkludGVncmF0aW9uLFxuICBDbG91ZHdhdGNoTG9nSW50ZWdyYXRpb24sXG4gIEFwcGxpY2F0aW9uTG9hZEJhbGFuY2VySW50ZWdyYXRpb24sXG4gIEV2ZW50QnVzSW50ZWdyYXRpb24sXG4gIEthZmthVG9waWNJbnRlZ3JhdGlvbixcbiAgQWxhcm1JbnRlZ3JhdGlvbixcbiAgSW90SW50ZWdyYXRpb24sXG4gIC8vIENETiBSb3V0ZXNcbiAgQ2RuTG9hZEJhbGFuY2VyUm91dGUsXG4gIENkbkh0dHBBcGlHYXRld2F5Um91dGUsXG4gIENkbkxhbWJkYUZ1bmN0aW9uUm91dGUsXG4gIENkbkN1c3RvbURvbWFpblJvdXRlLFxuICBDZG5CdWNrZXRSb3V0ZSxcbiAgLy8gV2ViIEFwcCBGaXJld2FsbCBSdWxlc1xuICBNYW5hZ2VkUnVsZUdyb3VwLFxuICBDdXN0b21SdWxlR3JvdXAsXG4gIFJhdGVCYXNlZFJ1bGUsXG4gIC8vIFNRUyBRdWV1ZSBJbnRlZ3JhdGlvbnNcbiAgU3FzUXVldWVFdmVudEJ1c0ludGVncmF0aW9uLFxuICAvLyBNdWx0aSBDb250YWluZXIgV29ya2xvYWQgSW50ZWdyYXRpb25zXG4gIE11bHRpQ29udGFpbmVyV29ya2xvYWRIdHRwQXBpSW50ZWdyYXRpb24sXG4gIE11bHRpQ29udGFpbmVyV29ya2xvYWRMb2FkQmFsYW5jZXJJbnRlZ3JhdGlvbixcbiAgTXVsdGlDb250YWluZXJXb3JrbG9hZE5ldHdvcmtMb2FkQmFsYW5jZXJJbnRlZ3JhdGlvbixcbiAgTXVsdGlDb250YWluZXJXb3JrbG9hZEludGVybmFsSW50ZWdyYXRpb24sXG4gIE11bHRpQ29udGFpbmVyV29ya2xvYWRTZXJ2aWNlQ29ubmVjdEludGVncmF0aW9uLFxuICAvLyBTY3JpcHRzXG4gIExvY2FsU2NyaXB0LFxuICBCYXN0aW9uU2NyaXB0LFxuICBMb2NhbFNjcmlwdFdpdGhCYXN0aW9uVHVubmVsaW5nLFxuICAvLyBMb2cgRm9yd2FyZGluZ1xuICBIdHRwRW5kcG9pbnRMb2dGb3J3YXJkaW5nLFxuICBIaWdobGlnaHRMb2dGb3J3YXJkaW5nLFxuICBEYXRhZG9nTG9nRm9yd2FyZGluZyxcbiAgLy8gQnVja2V0IExpZmVjeWNsZSBSdWxlc1xuICBFeHBpcmF0aW9uTGlmZWN5Y2xlUnVsZSxcbiAgTm9uQ3VycmVudFZlcnNpb25FeHBpcmF0aW9uTGlmZWN5Y2xlUnVsZSxcbiAgLy8gRUZTIE1vdW50c1xuICBDb250YWluZXJFZnNNb3VudCxcbiAgTGFtYmRhRWZzTW91bnQsXG4gIC8vIEF1dGhvcml6ZXJzXG4gIENvZ25pdG9BdXRob3JpemVyLFxuICBMYW1iZGFBdXRob3JpemVyLFxuICAvLyBDdXN0b20gUmVzb3VyY2VzXG4gIEN1c3RvbVJlc291cmNlRGVmaW5pdGlvbixcbiAgQ3VzdG9tUmVzb3VyY2VJbnN0YW5jZSxcbiAgLy8gRGVwbG95bWVudCBTY3JpcHRzXG4gIERlcGxveW1lbnRTY3JpcHQsXG4gIC8vIEVkZ2UgTGFtYmRhIEZ1bmN0aW9uc1xuICBFZGdlTGFtYmRhRnVuY3Rpb25cbn0gPSBUWVBFX1BST1BFUlRJRVNfQ0xBU1NFUztcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FB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QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxJQUNGO0FBQUEsRUFDRjtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLGNBQWM7QUFBQSxJQUNkLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxJQUNaLG1CQUFtQjtBQUFBLElBQ25CLGNBQWM7QUFBQSxNQUNaO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxJQUNGO0FBQUEsRUFDRjtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLGNBQWM7QUFBQSxJQUNkLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxJQUNaLG1CQUFtQjtBQUFBLElBQ25CLGNBQWM7QUFBQSxNQUNaO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxJQUNGO0FBQUEsRUFDRjtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLGNBQWM7QUFBQSxJQUNkLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxJQUNaLG1CQUFtQjtBQUFBLElBQ25CLGNBQWM7QUFBQSxNQUNaO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLElBQ0Y7QUFBQSxFQUNGO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztB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TyxJQUFNLG9DQUFnRTtBQUFBO0FBQUEsRUFFM0U7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBO0FBQUEsRUFFQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBO0FBQUEsRUFFQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBO0FBQUEsRUFFQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQTtBQUFBLEVBRUE7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQTtBQUFBLEVBRUE7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBO0FBQUEsRUFFQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQTtBQUFBLEVBRUE7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQTtBQUFBLEVBRUE7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBO0FBQUEsRUFFQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUE7QUFBQSxFQUVBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUE7QUFBQSxFQUVBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUE7QUFBQSxFQUVBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUE7QUFBQSxFQUVBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUE7QUFBQSxFQUVBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBO0FBQUEsRUFFQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFDRjtBQStCTyxJQUFNLHlCQUE0RCxPQUFPO0FB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