@cdktn/provider-generator 0.25.0-pre.9 → 0.26.0-pre.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.
Files changed (70) hide show
  1. package/README.md +12 -0
  2. package/build/__tests__/edge-provider-schema/builder.js +3 -3
  3. package/build/__tests__/edge-provider-schema/cli.js +18 -8
  4. package/build/__tests__/edge-provider-schema.test.js +18 -8
  5. package/build/__tests__/provider.test.js +44 -16
  6. package/build/get/__tests__/constructs-maker.test.js +91 -8
  7. package/build/get/__tests__/generator/complex-computed-types.test.js +18 -8
  8. package/build/get/__tests__/generator/deep-nested-attributes.test.js +18 -8
  9. package/build/get/__tests__/generator/description-escaping.test.js +18 -8
  10. package/build/get/__tests__/generator/empty-provider-resources.test.js +18 -8
  11. package/build/get/__tests__/generator/ephemeral-resources.test.js +18 -8
  12. package/build/get/__tests__/generator/export-sharding.test.js +18 -8
  13. package/build/get/__tests__/generator/import-style.test.js +18 -8
  14. package/build/get/__tests__/generator/module-docs-registry.test.d.ts +2 -0
  15. package/build/get/__tests__/generator/module-docs-registry.test.js +91 -0
  16. package/build/get/__tests__/generator/module-generator.test.js +18 -8
  17. package/build/get/__tests__/generator/nested-types.test.js +18 -8
  18. package/build/get/__tests__/generator/provider-functions-name-collision.test.d.ts +2 -0
  19. package/build/get/__tests__/generator/provider-functions-name-collision.test.js +89 -0
  20. package/build/get/__tests__/generator/provider-functions.test.js +18 -8
  21. package/build/get/__tests__/generator/provider.test.js +18 -8
  22. package/build/get/__tests__/generator/resource-types.test.js +18 -8
  23. package/build/get/__tests__/generator/skipped-attributes.test.js +18 -8
  24. package/build/get/__tests__/generator/types.test.js +18 -8
  25. package/build/get/__tests__/generator/versions-file.test.js +25 -10
  26. package/build/get/__tests__/generator/write-only.test.js +18 -8
  27. package/build/get/__tests__/registry-class-invalidation.test.d.ts +2 -0
  28. package/build/get/__tests__/registry-class-invalidation.test.js +120 -0
  29. package/build/get/__tests__/target-versions.test.js +46 -8
  30. package/build/get/__tests__/util.js +20 -11
  31. package/build/get/constructs-maker.d.ts +17 -0
  32. package/build/get/constructs-maker.js +86 -11
  33. package/build/get/generator/custom-defaults.js +2 -1
  34. package/build/get/generator/emitter/struct-emitter.js +20 -10
  35. package/build/get/generator/loop-detection.js +2 -3
  36. package/build/get/generator/models/attribute-model.js +3 -3
  37. package/build/get/generator/models/attribute-type-model.js +3 -3
  38. package/build/get/generator/models/provider-function-model.js +3 -4
  39. package/build/get/generator/models/resource-model.d.ts +5 -1
  40. package/build/get/generator/models/resource-model.js +20 -10
  41. package/build/get/generator/models/supported-stored-classes.js +2 -3
  42. package/build/get/generator/module-generator.d.ts +3 -2
  43. package/build/get/generator/module-generator.js +15 -17
  44. package/build/get/generator/provider-generator.d.ts +15 -1
  45. package/build/get/generator/provider-generator.js +20 -5
  46. package/build/get/generator/resource-parser.d.ts +3 -1
  47. package/build/get/generator/resource-parser.js +16 -7
  48. package/build/get/generator/sanitized-comments.js +2 -3
  49. package/build/get/generator/skipped-attributes.js +2 -3
  50. package/build/index.js +3 -3
  51. package/build/util.js +3 -4
  52. package/package.json +32 -9
  53. package/src/__tests__/__snapshots__/provider.test.ts.snap +1309 -3206
  54. package/src/__tests__/provider.test.ts +31 -8
  55. package/src/get/__tests__/constructs-maker.test.ts +125 -1
  56. package/src/get/__tests__/generator/fixtures/provider-functions-name-collision.test.fixture.json +42 -0
  57. package/src/get/__tests__/generator/module-docs-registry.test.ts +89 -0
  58. package/src/get/__tests__/generator/provider-functions-name-collision.test.ts +84 -0
  59. package/src/get/__tests__/generator/versions-file.test.ts +10 -5
  60. package/src/get/__tests__/registry-class-invalidation.test.ts +123 -0
  61. package/src/get/__tests__/target-versions.test.ts +43 -0
  62. package/src/get/constructs-maker.ts +108 -7
  63. package/src/get/generator/custom-defaults.ts +1 -0
  64. package/src/get/generator/emitter/struct-emitter.ts +2 -2
  65. package/src/get/generator/models/attribute-type-model.ts +1 -2
  66. package/src/get/generator/models/resource-model.ts +32 -9
  67. package/src/get/generator/module-generator.ts +20 -18
  68. package/src/get/generator/provider-generator.ts +27 -4
  69. package/src/get/generator/resource-parser.ts +21 -3
  70. package/tsconfig.json +4 -0
@@ -73,6 +73,7 @@ exports.CUSTOM_DEFAULTS = {
73
73
  "aws.route_table.route.destination_prefix_list_id": null,
74
74
  "aws.route_table.route.carrier_gateway_id": null,
75
75
  "aws.route_table.route.core_network_arn": null,
76
+ "aws.route_table.route.odb_network_arn": null,
76
77
  "aws.default_security_group.ingress.cidr_blocks": null,
77
78
  "aws.default_security_group.ingress.description": null,
78
79
  "aws.default_security_group.ingress.from_port": null,
@@ -400,4 +401,4 @@ exports.CUSTOM_DEFAULTS = {
400
401
  "azurerm.container_group.exposed_port.port": null,
401
402
  "azurerm.container_group.exposed_port.protocol": null,
402
403
  };
403
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWRlZmF1bHRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2dldC9nZW5lcmF0b3IvY3VzdG9tLWRlZmF1bHRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLCtCQUErQjtBQUMvQixtQ0FBbUM7QUFDdEIsUUFBQSxlQUFlLEdBQWdDO0lBQzFELHdDQUF3QyxFQUFFLElBQUk7SUFDOUMsd0NBQXdDLEVBQUUsSUFBSTtJQUM5QyxzQ0FBc0MsRUFBRSxJQUFJO0lBQzVDLDZDQUE2QyxFQUFFLElBQUk7SUFDbkQsNENBQTRDLEVBQUUsSUFBSTtJQUNsRCxxQ0FBcUMsRUFBRSxJQUFJO0lBQzNDLDRDQUE0QyxFQUFFLElBQUk7SUFDbEQsaUNBQWlDLEVBQUUsSUFBSTtJQUN2QyxvQ0FBb0MsRUFBRSxJQUFJO0lBQzFDLHVDQUF1QyxFQUFFLElBQUk7SUFDN0MsdUNBQXVDLEVBQUUsSUFBSTtJQUM3QyxxQ0FBcUMsRUFBRSxJQUFJO0lBQzNDLDRDQUE0QyxFQUFFLElBQUk7SUFDbEQsMkNBQTJDLEVBQUUsSUFBSTtJQUNqRCxvQ0FBb0MsRUFBRSxJQUFJO0lBQzFDLDJDQUEyQyxFQUFFLElBQUk7SUFDakQsZ0NBQWdDLEVBQUUsSUFBSTtJQUN0QyxtQ0FBbUMsRUFBRSxJQUFJO0lBRXpDLDBDQUEwQyxFQUFFLElBQUk7SUFDaEQsK0NBQStDLEVBQUUsSUFBSTtJQUNyRCxzREFBc0QsRUFBRSxJQUFJO0lBQzVELDBDQUEwQyxFQUFFLElBQUk7SUFDaEQsMkNBQTJDLEVBQUUsSUFBSTtJQUNqRCw4Q0FBOEMsRUFBRSxJQUFJO0lBQ3BELG9EQUFvRCxFQUFFLElBQUk7SUFDMUQsa0RBQWtELEVBQUUsSUFBSTtJQUN4RCwrQ0FBK0MsRUFBRSxJQUFJO0lBQ3JELHlEQUF5RCxFQUFFLElBQUk7SUFDL0QsMERBQTBELEVBQUUsSUFBSTtJQUNoRSxnREFBZ0QsRUFBRSxJQUFJO0lBRXRELHdDQUF3QyxFQUFFLElB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SUFDTixvREFBb0QsRUFBRSxJQUFJO0lBQzFELHdEQUF3RCxFQUFFLElBQUk7SUFDOUQsc0RBQXNELEVBQUUsSUFBSTtJQUM1RCx1REFBdUQsRUFBRSxJQUFJO0lBQzdELHdFQUF3RSxFQUN0RSxJQUFJO0lBQ04sdUVBQXVFLEVBQUUsSUFBSTtJQUM3RSxvRUFBb0UsRUFBRSxJQUFJO0lBQzFFLHlFQUF5RSxFQUN2RSxJQUFJO0lBRU4sMkNBQTJDLEVBQUUsSUFBSTtJQUNqRCx3Q0FBd0MsRUFBRSxJQUFJO0lBRTlDLDJDQUEyQyxFQUFFLElBQUk7SUFDakQsK0NBQStDLEVBQUUsSUFBSTtDQUN0RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluY1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcbmV4cG9ydCBjb25zdCBDVVNUT01fREVGQVVMVFM6IHsgW2Z1bGxOYW1lOiBzdHJpbmddOiBhbnkgfSA9IHtcbiAgXCJhd3Muc2VjdXJpdHlfZ3JvdXAuaW5ncmVzcy5jaWRyX2Jsb2Nrc1wiOiBudWxsLFxuICBcImF3cy5zZWN1cml0eV9ncm91cC5pbmdyZXNzLmRlc2NyaXB0aW9uXCI6IG51bGwsXG4gIFwiYXdzLnNlY3VyaXR5X2dyb3VwLmluZ3Jlc3MuZnJvbV9wb3J0XCI6IG51bGwsXG4gIFwiYXdzLnNlY3VyaXR5X2dyb3VwLmluZ3Jlc3MuaXB2Nl9jaWRyX2Jsb2Nrc1wiOiBudWxsLFxuICBcImF3cy5zZWN1cml0eV9ncm91cC5pbmdyZXNzLnByZWZpeF9saXN0X2lkc1wiOiBudWxsLFxuICBcImF3cy5zZWN1cml0eV9ncm91cC5pbmdyZXNzLnByb3RvY29sXCI6IG51bGwsXG4gIFwiYXdzLnNlY3VyaXR5X2dyb3VwLmluZ3Jlc3Muc2VjdXJpdHlfZ3JvdXBzXCI6IG51bGwsXG4gIFwiYXdzLnNlY3VyaXR5X2dyb3VwLmluZ3Jlc3Muc2VsZlwiOiBudWxsLFxuICBcImF3cy5zZWN1cml0eV9ncm91cC5pbmdyZXNzLnRvX3BvcnRcIjogbnVsbCxcbiAgXCJhd3Muc2VjdXJpdHlfZ3JvdXAuZWdyZXNzLmNpZHJfYmxvY2tzXCI6IG51bGwsXG4gIFwiYXdzLnNlY3VyaXR5X2dyb3VwLmVncmVzcy5kZXNjcmlwdGlvblwiOiBudWxsLFxuICBcImF3cy5zZWN1cml0eV9ncm91cC5lZ3Jlc3MuZnJvbV9wb3J0XCI6IG51bGwsXG4gIFwiYXdzLnNlY3VyaXR5X2dyb3VwLmVncmVzcy5pcHY2X2NpZHJfYmxvY2tzXCI6IG51bGwsXG4gIFwiYXdzLnNlY3VyaXR5X2dyb3VwLmVncmVzcy5wcmVmaXhfbGlzdF9pZHNcIjogbnVsbCxcbiAgXCJhd3Muc2VjdXJpdHlfZ3JvdXAuZWdyZXNzLnByb3RvY29sXCI6IG51bGwsXG4gIFwiYXdzLnNlY3VyaXR5X2dyb3VwLmVncmVzcy5zZWN1cml0eV9ncm91cHNcIjogbnVsbCxcbiAgXCJhd3Muc2VjdXJpdHlfZ3JvdXAuZWdyZXNzLnNlbGZcIjogbnVsbCxcbiAgXCJhd3Muc2VjdXJpdHlfZ3JvdXAuZWdyZXNzLnRvX3BvcnRcIjogbnVsbCxcblxuICBcImF3cy5kZWZhdWx0X3JvdXRlX3RhYmxlLnJvdXRlLmNpZHJfYmxvY2tcIjogbnVsbCxcbiAgXCJhd3MuZGVmYXVsdF9yb3V0ZV90YWJsZS5yb3V0ZS5pcHY2X2NpZHJfYmxvY2tcIjogbnVsbCxcbiAgXCJhd3MuZGVmYXVsdF9yb3V0ZV90YWJsZS5yb3V0ZS5lZ3Jlc3Nfb25seV9nYXRld2F5X2lkXCI6IG51bGwsXG4gIFwiYXdzLmRlZmF1bHRfcm91dGVfdGFibGUucm91dGUuZ2F0ZXdheV9pZFwiOiBudWxsLFxuICBcImF3cy5kZWZhdWx0X3JvdXRlX3RhYmxlLnJvdXRlLmluc3RhbmNlX2lkXCI6IG51bGwsXG4gIFwiYXdzLmRlZmF1bHRfcm91dGVfdGFibGUucm91dGUubmF0X2dhdGV3YXlfaWRcIjogbnVsbCxcbiAgXCJhd3MuZGVmYXVsdF9yb3V0ZV90YWJsZS5yb3V0ZS5uZXR3b3JrX2ludGVyZmFjZV9pZFwiOiBudWxsLFxuICBcImF3cy5kZWZhdWx0X3JvdXRlX3RhYmxlLnJvdXRlLnRyYW5zaXRfZ2F0ZXdheV9pZFwiOiBudWxsLFxuICBcImF3cy5kZWZhdWx0X3JvdXRlX3RhYmxlLnJvdXRlLnZwY19lbmRwb2ludF9pZFwiOiBudWxsLFxuICBcImF3cy5kZWZhdWx0X3JvdXRlX3RhYmxlLnJvdXRlLnZwY19wZWVyaW5nX2Nvbm5lY3Rpb25faWRcIjogbnVsbCxcbiAgXCJhd3MuZGVmYXVsdF9yb3V0ZV90YWJsZS5yb3V0ZS5kZXN0aW5hdGlvbl9wcmVmaXhfbGlzdF9pZFwiOiBudWxsLFxuICBcImF3cy5kZWZhdWx0X3JvdXRlX3RhYmxlLnJvdXRlLmNvcmVfbmV0d29ya19hcm5cIjogbnVsbCxcblxuICBcImF3cy5lbXJfY2x1c3Rlci5zdGVwLmFjdGlvbl9vbl9mYWlsdXJlXCI6IG51bGwsXG4gIFwiYXdzLmVtcl9jbHVzdGVyLnN0ZXAuaGFkb29wX2phcl9zdGVwXCI6IG51bGwsXG4gIFwiYXdzLmVtcl9jbHVzdGVyLnN0ZXAubmFtZVwiOiBudWxsLFxuICBcImF3cy5lbXJfY2x1c3Rlci5zdGVwLmhhZG9vcF9qYXJfc3RlcC5hcmdzXCI6IG51bGwsXG4gIFwiYXdzLmVtcl9jbHVzdGVyLnN0ZXAuaGFkb29wX2phcl9zdGVwLmphclwiOiBudWxsLFxuICBcImF3cy5lbXJfY2x1c3Rlci5zdGVwLmhhZG9vcF9qYXJfc3RlcC5tYWluX2NsYXNzXCI6IG51bGwsXG4gIFwiYXdzLmVtcl9jbHVzdGVyLnN0ZXAuaGFkb29wX2phcl9zdGVwLnByb3BlcnRpZXNcIjogbnVsbCxcblxuICBcImF3cy5uZXR3b3JrX2FjbC5pbmdyZXNzLmZyb21fcG9ydFwiOiBudWxsLFxuICBcImF3cy5uZXR3b3JrX2FjbC5pbmdyZXNzLnRvX3BvcnRcIjogbnVsbCxcbiAgXCJhd3MubmV0d29ya19hY2wuaW5ncmVzcy5ydWxlX25vXCI6IG51bGwsXG4gIFwiYXdzLm5ldHdvcmtfYWNsLmluZ3Jlc3MuYWN0aW9uXCI6IG51bGwsXG4gIFwiYXdzLm5ldHdvcmtfYWNsLmluZ3Jlc3MucHJvdG9jb2xcIjogbnVsbCxcbiAgXCJhd3MubmV0d29ya19hY2wuaW5ncmVzcy5jaWRyX2Jsb2NrXCI6IG51bGwsXG4gIFwiYXdzLm5ldHdvcmtfYWNsLmluZ3Jlc3MuaXB2Nl9jaWRyX2Jsb2NrXCI6IG51bGwsXG4gIFwiYXdzLm5ldHdvcmtfYWNsLmluZ3Jlc3MuaWNtcF90eXBlXCI6IG51bGwsXG4gIFwiYXdzLm5ldHdvcmtfYWNsLmluZ3Jlc3MuaWNtcF9jb2RlXCI6IG51bGwsXG4gIFwiYXdzLm5ldHdvcmtfYWNsLmVncmVzcy5mcm9tX3BvcnRcIjogbnVsbCxcbiAgXCJhd3MubmV0d29ya19hY2wuZWdyZXNzLnRvX3BvcnRcIjogbnVsbCxcbiAgXCJhd3MubmV0d29ya19hY2wuZWdyZXNzLnJ1bGVfbm9cIjogbnVsbCxcbiAgXCJhd3MubmV0d29ya19hY2wuZWdyZXNzLmFjdGlvblwiOiBudWxsLFxuICBcImF3cy5uZXR3b3JrX2FjbC5lZ3Jlc3MucHJvdG9jb2xcIjogbnVsbCxcbiAgXCJhd3MubmV0d29ya19hY2wuZWdyZXNzLmNpZHJfYmxvY2tcIjogbnVsbCxcbiAgXCJhd3MubmV0d29ya19hY2wuZWdyZXNzLmlwdjZfY2lkcl9ibG9ja1wiOiBudWxsLFxuICBcImF3cy5uZXR3b3JrX2FjbC5lZ3Jlc3MuaWNtcF90eXBlXCI6IG51bGwsXG4gIFwiYXdzLm5ldHdvcmtfYWNsLmVncmVzcy5pY21wX2NvZGVcIjogbnVsbCxcblxuICBcImF3cy5yb3V0ZV90YWJsZS5yb3V0ZS5jaWRyX2Jsb2NrXCI6IG51bGwsXG4gIFwiYXdzLnJvdXRlX3RhYmxlLnJvdXRlLmlwdjZfY2lkcl9ibG9ja1wiOiBudWxsLFxuICBcImF3cy5yb3V0ZV90YWJsZS5yb3V0ZS5lZ3Jlc3Nfb25seV9nYXRld2F5X2lkXCI6IG51bGwsXG4gIFwiYXdzLnJvdXRlX3RhYmxlLnJvdXRlLmdhdGV3YXlfaWRcIjogbnVsbCxcbiAgXCJhd3Mucm91dGVfdGFibGUucm91dGUuaW5zdGFuY2VfaWRcIjogbnVsbCxcbiAgXCJhd3Mucm91dGVfdGFibGUucm91dGUubmF0X2dhdGV3YXlfaWRcIjogbnVsbCxcbiAgXCJhd3Mucm91dGVfdGFibGUucm91dGUubG9jYWxfZ2F0ZXdheV9pZFwiOiBudWxsLFxuICBcImF3cy5yb3V0ZV90YWJsZS5yb3V0ZS5uZXR3b3JrX2ludGVyZmFjZV9pZFwiOiBudWxsLFxuICBcImF3cy5yb3V0ZV90YWJsZS5yb3V0ZS50cmFuc2l0X2dhdGV3YXlfaWRcIjogbnVsbCxcbiAgXCJhd3Mucm91dGVfdGFibGUucm91dGUudnBjX2VuZHBvaW50X2lkXCI6IG51bGwsXG4gIFwiYXdzLnJvdXRlX3RhYmxlLnJvdXRlLnZwY19wZWVyaW5nX2Nvbm5lY3Rpb25faWRcIjogbnVsbCxcbiAgXCJhd3Mucm91dGVfdGFibGUucm91dGUuZGVzdGluYXRpb25fcHJlZml4X2xpc3RfaWRcIjogbnVsbCxcbiAgXCJhd3Mucm91dGVfdGFibGUucm91dGUuY2Fycmllcl9nYXRld2F5X2lkXCI6IG51bGwsXG4gIFwiYXdzLnJvdXRlX3RhYmxlLnJvdXRlLmNvcmVfbmV0d29ya19hcm5cIjogbnVsbCxcblxuICBcImF3cy5kZWZhdWx0X3NlY3VyaXR5X2dyb3VwLmluZ3Jlc3MuY2lkcl9ibG9ja3NcIjogbnVsbCxcbiAgXCJhd3MuZGVmYXVsdF9zZWN1cml0eV9ncm91cC5pbmdyZXNzLmRlc2NyaXB0aW9uXCI6IG51bGwsXG4gIFwiYXdzLmRlZmF1bHRfc2VjdXJpdHlfZ3JvdXAuaW5ncmVzcy5mcm9tX3BvcnRcIjogbnVsbCxcbiAgXCJhd3MuZGVmYXVsdF9zZWN1cml0eV9ncm91cC5pbmdyZXNzLmlwdjZfY2lkcl9ibG9ja3NcIjogbnVsbCxcbiAgXCJhd3MuZGVmYXVsdF9zZWN1cml0eV9ncm91cC5pbmdyZXNzLnByZWZpeF9saXN0X2lkc1wiOiBudWxsLFxuICBcImF3cy5kZWZhdWx0X3NlY3VyaXR5X2dyb3VwLmluZ3Jlc3MucHJvdG9jb2xcIjogbnVsbCxcbiAgXCJhd3MuZGVmYXVsdF9zZWN1cml0eV9ncm91cC5pbmdyZXNzLnNlY3VyaXR5X2dyb3Vwc1wiOiBudWxsLFxuICBcImF3cy5kZWZhdWx0X3NlY3VyaXR5X2dyb3VwLmluZ3Jlc3Muc2VsZlwiOiBudWxsLFxuICBcImF3cy5kZWZhdWx0X3NlY3VyaXR5X2dyb3VwLmluZ3Jlc3MudG9fcG9ydFwiOiBudWxsLFxuICBcImF3cy5kZWZhdWx0X3NlY3VyaXR5X2dyb3VwLmVncmVzcy5jaWRyX2Jsb2Nrc1wiOiBudWxsLFxuICBcImF3cy5kZWZhdWx0X3NlY3VyaXR5X2dyb3VwLmVncmVzcy5kZXNjcmlwdGlvblwiOiBudWxsLFxuICBcImF3cy5kZWZhdWx0X3NlY3VyaXR5X2dyb3VwLmVncmVzcy5mcm9tX3BvcnRcIjogbnVsbCxcbiAgXCJhd3MuZGVmYXVsdF9zZWN1cml0eV9ncm91cC5lZ3Jlc3MuaXB2Nl9jaWRyX2Jsb2Nrc1wiOiBudWxsLFxuICBcImF3cy5kZWZhdWx0X3NlY3VyaXR5X2dyb3VwLmVncmVzcy5wcmVmaXhfbGlzdF9pZHNcIjogbnVsbCxcbiAgXCJhd3MuZGVmYXVsdF9zZWN1cml0eV9ncm91cC5lZ3Jlc3MucHJvdG9jb2xcIjogbnVsbCxcbiAgXCJhd3MuZGVmYXVsdF9zZWN1cml0eV9ncm91cC5lZ3Jlc3Muc2VjdXJpdHlfZ3JvdXBzXCI6IG51bGwsXG4gIFwiYXdzLmRlZmF1bHRfc2VjdXJpdHlfZ3JvdXAuZWdyZXNzLnNlbGZcIjogbnVsbCxcbiAgXCJhd3MuZGVmYXVsdF9zZWN1cml0eV9ncm91cC5lZ3Jlc3MudG9fcG9ydFwiOiBudWxsLFxuXG4gIFwiYXp1cmVhZC5hcHBsaWNhdGlvbi5hcHBfcm9sZS5pZFwiOiBudWxsLFxuICBcImF6dXJlYWQuYXBwbGljYXRpb24uYXBwX3JvbGUuYWxsb3dlZF9tZW1iZXJfdHlwZXNcIjogbnVsbCxcbiAgXCJhenVyZWFkLmFwcGxpY2F0aW9uLmFwcF9yb2xlLmRlc2NyaXB0aW9uXCI6IG51bGwsXG4gIFwiYXp1cmVhZC5hcHBsaWNhdGlvbi5hcHBfcm9sZS5kaXNwbGF5X25hbWVcIjogbnVsbCxcbiAgXCJhenVyZWFkLmFwcGxpY2F0aW9uLmFwcF9yb2xlLmlzX2VuYWJsZWRcIjogbnVsbCxcbiAgXCJhenVyZWFkLmFwcGxpY2F0aW9uLmFwcF9yb2xlLnZhbHVlXCI6IG51bGwsXG4gIFwiYXp1cmVhZC5hcHBsaWNhdGlvbi5vYXV0aDJfcGVybWlzc2lvbnMuaWRcIjogbnVsbCxcbiAgXCJhenVyZWFkLmFwcGxpY2F0aW9uLm9hdXRoMl9wZXJtaXNzaW9ucy5hZG1pbl9jb25zZW50X2Rlc2NyaXB0aW9uXCI6IG51bGwsXG4gIFwiYXp1cmVhZC5hcHBsaWNhdGlvbi5vYXV0aDJfcGVybWlzc2lvbnMuYWRtaW5fY29uc2VudF9kaXNwbGF5X25hbWVcIjogbnVsbCxcbiAgXCJhenVyZWFkLmFwcGxpY2F0aW9uLm9hdXRoMl9wZXJtaXNzaW9ucy52YWx1ZVwiOiBudWxsLFxuICBcImF6dXJlYWQuYXBwbGljYXRpb24ub2F1dGgyX3Blcm1pc3Npb25zLnR5cGVcIjogbnVsbCxcbiAgXCJhenVyZWFkLmFwcGxpY2F0aW9uLm9hdXRoMl9wZXJtaXNzaW9ucy5pc19lbmFibGVkXCI6IG51bGwsXG4gIFwiYXp1cmVhZC5hcHBsaWNhdGlvbi5vYXV0aDJfcGVybWlzc2lvbnMudXNlcl9jb25zZW50X2Rlc2NyaXB0aW9uXCI6IG51bGwsXG4gIFwiYXp1cmVhZC5hcHBsaWNhdGlvbi5vYXV0aDJfcGVybWlzc2lvbnMudXNlcl9jb25zZW50X2Rpc3BsYXlfbmFtZVwiOiBudWxsLFxuXG4gIFwiYXp1cmVzdGFjay5yb3V0ZV90YWJsZS5yb3V0ZS5uYW1lXCI6IG51bGwsXG4gIFwiYXp1cmVzdGFjay5yb3V0ZV90YWJsZS5yb3V0ZS5hZGRyZXNzX3ByZWZpeFwiOiBudWxsLFxuICBcImF6dXJlc3RhY2sucm91dGVfdGFibGUucm91dGUubmV4dF9ob3BfdHlwZVwiOiBudWxsLFxuICBcImF6dXJlc3RhY2sucm91dGVfdGFibGUucm91dGUubmV4dF9ob3BfaW5faXBfYWRkcmVzc1wiOiBudWxsLFxuXG4gIFwiYXp1cmVzdGFjay5uZXR3b3JrX3NlY3VyaXR5X2dyb3VwLnNlY3VyaXR5X3J1bGUubmFtZVwiOiBudWxsLFxuICBcImF6dXJlc3RhY2submV0d29ya19zZWN1cml0eV9ncm91cC5zZWN1cml0eV9ydWxlLmRlc2NyaXB0aW9uXCI6IG51bGwsXG4gIFwiYXp1cmVzdGFjay5uZXR3b3JrX3NlY3VyaXR5X2dyb3VwLnNlY3VyaXR5X3J1bGUucHJvdG9jb2xcIjogbnVsbCxcbiAgXCJhenVyZXN0YWNrLm5ldHdvcmtfc2VjdXJpdHlfZ3JvdXAuc2VjdXJpdHlfcnVsZS5zb3VyY2VfcG9ydF9yYW5nZVwiOiBudWxsLFxuICBcImF6dXJlc3RhY2submV0d29ya19zZWN1cml0eV9ncm91cC5zZWN1cml0eV9ydWxlLnNvdXJjZV9wb3J0X3Jhbmdlc1wiOiBudWxsLFxuICBcImF6dXJlc3RhY2submV0d29ya19zZWN1cml0eV9ncm91cC5zZWN1cml0eV9ydWxlLmRlc3RpbmF0aW9uX3BvcnRfcmFuZ2VcIjpcbiAgICBudWxsLFxuICBcImF6dXJlc3RhY2submV0d29ya19zZWN1cml0eV9ncm91cC5zZWN1cml0eV9ydWxlLmRlc3RpbmF0aW9uX3BvcnRfcmFuZ2VzXCI6XG4gICAgbnVsbCxcbiAgXCJhenVyZXN0YWNrLm5ldHdvcmtfc2VjdXJpdHlfZ3JvdXAuc2VjdXJpdHlfcnVsZS5zb3VyY2VfYWRkcmVzc19wcmVmaXhcIjogbnVsbCxcbiAgXCJhenVyZXN0YWNrLm5ldHdvcmtfc2VjdXJpdHlfZ3JvdXAuc2VjdXJpdHlfcnVsZS5zb3VyY2VfYWRkcmVzc19wcmVmaXhlc1wiOlxuICAgIG51bGwsXG4gIFwiYXp1cmVzdGFjay5uZXR3b3JrX3NlY3VyaXR5X2dyb3VwLnNlY3VyaXR5X3J1bGUuZGVzdGluYXRpb25fYWRkcmVzc19wcmVmaXhcIjpcbiAgICBudWxsLFxuICBcImF6dXJlc3RhY2submV0d29ya19zZWN1cml0eV9ncm91cC5zZWN1cml0eV9ydWxlLmRlc3RpbmF0aW9uX2FkZHJlc3NfcHJlZml4ZXNcIjpcbiAgICBudWxsLFxuICBcImF6dXJlc3RhY2submV0d29ya19zZWN1cml0eV9ncm91cC5zZWN1cml0eV9ydWxlLmRlc3RpbmF0aW9uX2FwcGxpY2F0aW9uX3NlY3VyaXR5X2dyb3VwX2lkc1wiOlxuICAgIG51bGwsXG4gIFwiYXp1cmVzdGFjay5uZXR3b3JrX3NlY3VyaXR5X2dyb3VwLnNlY3VyaXR5X3J1bGUuc291cmNlX2FwcGxpY2F0aW9uX3NlY3VyaXR5X2dyb3VwX2lkc1wiOlxuICAgIG51bGwsXG4gIFwiYXp1cmVzdGFjay5uZXR3b3JrX3NlY3VyaXR5X2dyb3VwLnNlY3VyaXR5X3J1bGUuYWNjZXNzXCI6IG51bGwsXG4gIFwiYXp1cmVzdGFjay5uZXR3b3JrX3NlY3VyaXR5X2dyb3VwLnNlY3VyaXR5X3J1bGUucHJpb3JpdHlcIjogbnVsbCxcbiAgXCJhenVyZXN0YWNrLm5ldHdvcmtfc2VjdXJpdHlfZ3JvdXAuc2VjdXJpdHlfcnVsZS5kaXJlY3Rpb25cIjogbnVsbCxcblxuICBcImF6dXJlc3RhY2sudmlydHVhbF9uZXR3b3JrLnN1Ym5ldC5uYW1lXCI6IG51bGwsXG4gIFwiYXp1cmVzdGFjay52aXJ0dWFsX25ldHdvcmsuc3VibmV0LmFkZHJlc3NfcHJlZml4XCI6IG51bGwsXG4gIFwiYXp1cmVzdGFjay52aXJ0dWFsX25ldHdvcmsuc3VibmV0LnNlY3VyaXR5X2dyb3VwXCI6IG51bGwsXG4gIFwiYXp1cmVzdGFjay52aXJ0dWFsX25ldHdvcmsuc3VibmV0LmlkXCI6IG51bGwsXG5cbiAgXCJhenVyZXN0YWNrLmtleV92YXVsdC5hY2Nlc3NfcG9saWN5LnRlbmFudF9pZFwiOiBudWxsLFxuICBcImF6dXJlc3RhY2sua2V5X3ZhdWx0LmFjY2Vzc19wb2xpY3kub2JqZWN0X2lkXCI6IG51bGwsXG4gIFwiYXp1cmVzdGFjay5rZXlfdmF1bHQuYWNjZXNzX3BvbGljeS5hcHBsaWNhdGlvbl9pZFwiOiBudWxsLFxuICBcImF6dXJlc3RhY2sua2V5X3ZhdWx0LmFjY2Vzc19wb2xpY3kuY2VydGlmaWNhdGVfcGVybWlzc2lvbnNcIjogbnVsbCxcbiAgXCJhenVyZXN0YWNrLmtleV92YXVsdC5hY2Nlc3NfcG9saWN5LmtleV9wZXJtaXNzaW9uc1wiOiBudWxsLFxuICBcImF6dXJlc3RhY2sua2V5X3ZhdWx0LmFjY2Vzc19wb2xpY3kuc2VjcmV0X3Blcm1pc3Npb25zXCI6IG51bGwsXG4gIFwiYXp1cmVzdGFjay5rZXlfdmF1bHQuYWNjZXNzX3BvbGljeS5zdG9yYWdlX3Blcm1pc3Npb25zXCI6IG51bGwsXG5cbiAgXCJ2YXVsdC5hdXRoX2JhY2tlbmQudHVuZS5kZWZhdWx0X2xlYXNlX3R0bFwiOiBudWxsLFxuICBcInZhdWx0LmF1dGhfYmFja2VuZC50dW5lLm1heF9sZWFzZV90dGxcIjogbnVsbCxcbiAgXCJ2YXVsdC5hdXRoX2JhY2tlbmQudHVuZS5hdWRpdF9ub25faG1hY19yZXF1ZXN0X2tleXNcIjogbnVsbCxcbiAgXCJ2YXVsdC5hdXRoX2JhY2tlbmQudHVuZS5hdWRpdF9ub25faG1hY19yZXNwb25zZV9rZXlzXCI6IG51bGwsXG4gIFwidmF1bHQuYXV0aF9iYWNrZW5kLnR1bmUubGlzdGluZ192aXNpYmlsaXR5XCI6IG51bGwsXG4gIFwidmF1bHQuYXV0aF9iYWNrZW5kLnR1bmUucGFzc3Rocm91Z2hfcmVxdWVzdF9oZWFkZXJzXCI6IG51bGwsXG4gIFwidmF1bHQuYXV0aF9iYWNrZW5kLnR1bmUuYWxsb3dlZF9yZXNwb25zZV9oZWFkZXJzXCI6IG51bGwsXG4gIFwidmF1bHQuYXV0aF9iYWNrZW5kLnR1bmUudG9rZW5fdHlwZVwiOiBudWxsLFxuXG4gIFwidmF1bHQuZ2l0aHViX2F1dGhfYmFja2VuZC50dW5lLmRlZmF1bHRfbGVhc2VfdHRsXCI6IG51bGwsXG4gIFwidmF1bHQuZ2l0aHViX2F1dGhfYmFja2VuZC50dW5lLm1heF9sZWFzZV90dGxcIjogbnVsbCxcbiAgXCJ2YXVsdC5naXRodWJfYXV0aF9iYWNrZW5kLnR1bmUuYXVkaXRfbm9uX2htYWNfcmVxdWVzdF9rZXlzXCI6IG51bGwsXG4gIFwidmF1bHQuZ2l0aHViX2F1dGhfYmFja2VuZC50dW5lLmF1ZGl0X25vbl9obWFjX3Jlc3BvbnNlX2tleXNcIjogbnVsbCxcbiAgXCJ2YXVsdC5naXRodWJfYXV0aF9iYWNrZW5kLnR1bmUubGlzdGluZ192aXNpYmlsaXR5XCI6IG51bGwsXG4gIFwidmF1bHQuZ2l0aHViX2F1dGhfYmFja2VuZC50dW5lLnBhc3N0aHJvdWdoX3JlcXVlc3RfaGVhZGVyc1wiOiBudWxsLFxuICBcInZhdWx0LmdpdGh1Yl9hdXRoX2JhY2tlbmQudHVuZS5hbGxvd2VkX3Jlc3BvbnNlX2hlYWRlcnNcIjogbnVsbCxcbiAgXCJ2YXVsdC5naXRodWJfYXV0aF9iYWNrZW5kLnR1bmUudG9rZW5fdHlwZVwiOiBudWxsLFxuXG4gIFwidmF1bHQuand0X2F1dGhfYmFja2VuZC50dW5lLmRlZmF1bHRfbGVhc2VfdHRsXCI6IG51bGwsXG4gIFwidmF1bHQuand0X2F1dGhfYmFja2VuZC50dW5lLm1heF9sZWFzZV90dGxcIjogbnVsbCxcbiAgXCJ2YXVsdC5qd3RfYXV0aF9iYWNrZW5kLnR1bmUuYXVkaXRfbm9uX2htYWNfcmVxdWVzdF9rZXlzXCI6IG51bGwsXG4gIFwidmF1bHQuand0X2F1dGhfYmFja2VuZC50dW5lLmF1ZGl0X25vbl9obWFjX3Jlc3BvbnNlX2tleXNcIjogbnVsbCxcbiAgXCJ2YXVsdC5qd3RfYXV0aF9iYWNrZW5kLnR1bmUubGlzdGluZ192aXNpYmlsaXR5XCI6IG51bGwsXG4gIFwidmF1bHQuand0X2F1dGhfYmFja2VuZC50dW5lLnBhc3N0aHJvdWdoX3JlcXVlc3RfaGVhZGVyc1wiOiBudWxsLFxuICBcInZhdWx0Lmp3dF9hdXRoX2JhY2tlbmQudHVuZS5hbGxvd2VkX3Jlc3BvbnNlX2hlYWRlcnNcIjogbnVsbCxcbiAgXCJ2YXVsdC5qd3RfYXV0aF9iYWNrZW5kLnR1bmUudG9rZW5fdHlwZVwiOiBudWxsLFxuXG4gIFwidmF1bHQub2t0YV9hdXRoX2JhY2tlbmQuZ3JvdXAuZ3JvdXBfbmFtZVwiOiBudWxsLFxuICBcInZhdWx0Lm9rdGFfYXV0aF9iYWNrZW5kLmdyb3VwLnBvbGljaWVzXCI6IG51bGwsXG4gIFwidmF1bHQub2t0YV9hdXRoX2JhY2tlbmQudXNlci51c2VybmFtZVwiOiBudWxsLFxuICBcInZhdWx0Lm9rdGFfYXV0aF9iYWNrZW5kLnVzZXIuZ3JvdXBzXCI6IG51bGwsXG4gIFwidmF1bHQub2t0YV9hdXRoX2JhY2tlbmQudXNlci5wb2xpY2llc1wiOiBudWxsLFxuXG4gIFwiZ29vZ2xlLmNvbXB1dGVfaW5zdGFuY2UuZ3Vlc3RfYWNjZWxlcmF0b3IuY291bnRcIjogbnVsbCxcbiAgXCJnb29nbGUuY29tcHV0ZV9pbnN0YW5jZS5ndWVzdF9hY2NlbGVyYXRvci50eXBlXCI6IG51bGwsXG5cbiAgXCJnb29nbGUuY29tcHV0ZV9pbnN0YW5jZV9mcm9tX3RlbXBsYXRlLmF0dGFjaGVkX2Rpc2suc291cmNlXCI6IG51bGwsXG4gIFwiZ29vZ2xlLmNvbXB1dGVfaW5zdGFuY2VfZnJvbV90ZW1wbGF0ZS5hdHRhY2hlZF9kaXNrLmRldmljZV9uYW1lXCI6IG51bGwsXG4gIFwiZ29vZ2xlLmNvbXB1dGVfaW5zdGFuY2VfZnJvbV90ZW1wbGF0ZS5hdHRhY2hlZF9kaXNrLm1vZGVcIjogbnVsbCxcbiAgXCJnb29nbGUuY29tcHV0ZV9pbnN0YW5jZV9mcm9tX3RlbXBsYXRlLmF0dGFjaGVkX2Rpc2suZGlza19lbmNyeXB0aW9uX2tleV9yYXdcIjpcbiAgICBudWxsLFxuICBcImdvb2dsZS5jb21wdXRlX2luc3RhbmNlX2Zyb21fdGVtcGxhdGUuYXR0YWNoZWRfZGlzay5rbXNfa2V5X3NlbGZfbGlua1wiOiBudWxsLFxuICBcImdvb2dsZS5jb21wdXRlX2luc3RhbmNlX2Zyb21fdGVtcGxhdGUuZ3Vlc3RfYWNjZWxlcmF0b3IuY291bnRcIjogbnVsbCxcbiAgXCJnb29nbGUuY29tcHV0ZV9pbnN0YW5jZV9mcm9tX3RlbXBsYXRlLmd1ZXN0X2FjY2VsZXJhdG9yLnR5cGVcIjogbnVsbCxcbiAgXCJnb29nbGUuY29tcHV0ZV9pbnN0YW5jZV9mcm9tX3RlbXBsYXRlLnNlcnZpY2VfYWNjb3VudC5lbWFpbFwiOiBudWxsLFxuICBcImdvb2dsZS5jb21wdXRlX2luc3RhbmNlX2Zyb21fdGVtcGxhdGUuc2VydmljZV9hY2NvdW50LnNjb3Blc1wiOiBudWxsLFxuICBcImdvb2dsZS5jb21wdXRlX2luc3RhbmNlX2Zyb21fdGVtcGxhdGUuc2NyYXRjaF9kaXNrLmludGVyZmFjZVwiOiBudWxsLFxuICBcImdvb2dsZS5jb21wdXRlX2luc3RhbmNlX2Zyb21fdGVtcGxhdGUubmV0d29ya19pbnRlcmZhY2UuYWxpYXNfaXBfcmFuZ2UuaXBfY2lkcl9yYW5nZVwiOlxuICAgIG51bGwsXG4gIFwiZ29vZ2xlLmNvbXB1dGVfaW5zdGFuY2VfZnJvbV90ZW1wbGF0ZS5uZXR3b3JrX2ludGVyZmFjZS5hbGlhc19pcF9yYW5nZS5zdWJuZXR3b3JrX3JhbmdlX25hbWVcIjpcbiAgICBudWxsLFxuICBcImdvb2dsZS5jb21wdXRlX2luc3RhbmNlX2Zyb21fdGVtcGxhdGUubmV0d29ya19pbnRlcmZhY2UuYWNjZXNzX2NvbmZpZy5uYXRfaXBcIjpcbiAgICBudWxsLFxuICBcImdvb2dsZS5jb21wdXRlX2luc3RhbmNlX2Zyb21fdGVtcGxhdGUubmV0d29ya19pbnRlcmZhY2UuYWNjZXNzX2NvbmZpZy5wdWJsaWNfcHRyX2RvbWFpbl9uYW1lXCI6XG4gICAgbnVsbCxcbiAgXCJnb29nbGUuY29tcHV0ZV9pbnN0YW5jZV9mcm9tX3RlbXBsYXRlLm5ldHdvcmtfaW50ZXJmYWNlLmFjY2Vzc19jb25maWcubmV0d29ya190aWVyXCI6XG4gICAgbnVsbCxcblxuICBcImdvb2dsZS5jb21wdXRlX3N1Ym5ldHdvcmsuc2Vjb25kYXJ5X2lwX3JhbmdlLnJhbmdlX25hbWVcIjogbnVsbCxcbiAgXCJnb29nbGUuY29tcHV0ZV9zdWJuZXR3b3JrLnNlY29uZGFyeV9pcF9yYW5nZS5pcF9jaWRyX3JhbmdlXCI6IG51bGwsXG5cbiAgXCJnb29nbGUuY29udGFpbmVyX2NsdXN0ZXIubm9kZV9jb25maWcuZ3Vlc3RfYWNjZWxlcmF0b3IuY291bnRcIjogbnVsbCxcbiAgXCJnb29nbGUuY29udGFpbmVyX2NsdXN0ZXIubm9kZV9jb25maWcuZ3Vlc3RfYWNjZWxlcmF0b3IudHlwZVwiOiBudWxsLFxuICBcImdvb2dsZS5jb250YWluZXJfY2x1c3Rlci5ub2RlX2NvbmZpZy5ndWVzdF9hY2NlbGVyYXRvci5ncHVfcGFydGl0aW9uX3NpemVcIjpcbiAgICBudWxsLFxuICBcImdvb2dsZS5jb250YWluZXJfY2x1c3Rlci5ub2RlX2NvbmZpZy5ndWVzdF9hY2NlbGVyYXRvci5ncHVfc2hhcmluZ19jb25maWdcIjpcbiAgICBudWxsLFxuICBcImdvb2dsZS5jb250YWluZXJfY2x1c3Rlci5ub2RlX2NvbmZpZy5ndWVzdF9hY2NlbGVyYXRvci5ncHVfc2hhcmluZ19jb25maWcuZ3B1X3NoYXJpbmdfc3RyYXRlZ3lcIjpcbiAgICBudWxsLFxuICBcImdvb2dsZS5jb250YWluZXJfY2x1c3Rlci5ub2RlX2NvbmZpZy5ndWVzdF9hY2NlbGVyYXRvci5ncHVfc2hhcmluZ19jb25maWcubWF4X3NoYXJlZF9jbGllbnRzX3Blcl9ncHVcIjpcbiAgICBudWxsLFxuICBcImdvb2dsZS5jb250YWluZXJfY2x1c3Rlci5ub2RlX2NvbmZpZy50YWludC5rZXlcIjogbnVsbCxcbiAgXCJnb29nbGUuY29udGFpbmVyX2NsdXN0ZXIubm9kZV9jb25maWcudGFpbnQudmFsdWVcIjogbnVsbCxcbiAgXCJnb29nbGUuY29udGFpbmVyX2NsdXN0ZXIubm9kZV9jb25maWcudGFpbnQuZWZmZWN0XCI6IG51bGwsXG5cbiAgXCJnb29nbGUuY29udGFpbmVyX25vZGVfcG9vbC5ub2RlX2NvbmZpZy5ndWVzdF9hY2NlbGVyYXRvci5jb3VudFwiOiBudWxsLFxuICBcImdvb2dsZS5jb250YWluZXJfbm9kZV9wb29sLm5vZGVfY29uZmlnLmd1ZXN0X2FjY2VsZXJhdG9yLnR5cGVcIjogbnVsbCxcbiAgXCJnb29nbGUuY29udGFpbmVyX25vZGVfcG9vbC5ub2RlX2NvbmZpZy5ndWVzdF9hY2NlbGVyYXRvci5ncHVfcGFydGl0aW9uX3NpemVcIjpcbiAgICBudWxsLFxuICBcImdvb2dsZS5jb250YWluZXJfbm9kZV9wb29sLm5vZGVfY29uZmlnLmd1ZXN0X2FjY2VsZXJhdG9yLmdwdV9zaGFyaW5nX2NvbmZpZ1wiOlxuICAgIG51bGwsXG4gIFwiZ29vZ2xlLmNvbnRhaW5lcl9ub2RlX3Bvb2wubm9kZV9jb25maWcuZ3Vlc3RfYWNjZWxlcmF0b3IuZ3B1X3NoYXJpbmdfY29uZmlnLmdwdV9zaGFyaW5nX3N0cmF0ZWd5XCI6XG4gICAgbnVsbCxcbiAgXCJnb29nbGUuY29udGFpbmVyX25vZGVfcG9vbC5ub2RlX2NvbmZpZy5ndWVzdF9hY2NlbGVyYXRvci5ncHVfc2hhcmluZ19jb25maWcubWF4X3NoYXJlZF9jbGllbnRzX3Blcl9ncHVcIjpcbiAgICBudWxsLFxuICBcImdvb2dsZS5jb250YWluZXJfbm9kZV9wb29sLm5vZGVfY29uZmlnLnRhaW50LmtleVwiOiBudWxsLFxuICBcImdvb2dsZS5jb250YWluZXJfbm9kZV9wb29sLm5vZGVfY29uZmlnLnRhaW50LnZhbHVlXCI6IG51bGwsXG4gIFwiZ29vZ2xlLmNvbnRhaW5lcl9ub2RlX3Bvb2wubm9kZV9jb25maWcudGFpbnQuZWZmZWN0XCI6IG51bGwsXG5cbiAgXCJnb29nbGUuY29tcG9zZXJfZW52aXJvbm1lbnQuaXBfYWxsb2NhdGlvbl9wb2xpY3kudXNlX2lwX2FsaWFzZXNcIjogbnVsbCxcbiAgXCJnb29nbGUuY29tcG9zZXJfZW52aXJvbm1lbnQuaXBfYWxsb2NhdGlvbl9wb2xpY3kuY2x1c3Rlcl9zZWNvbmRhcnlfcmFuZ2VfbmFtZVwiOlxuICAgIG51bGwsXG4gIFwiZ29vZ2xlLmNvbXBvc2VyX2Vudmlyb25tZW50LmlwX2FsbG9jYXRpb25fcG9saWN5LnNlcnZpY2VzX3NlY29uZGFyeV9yYW5nZV9uYW1lXCI6XG4gICAgbnVsbCxcbiAgXCJnb29nbGUuY29tcG9zZXJfZW52aXJvbm1lbnQuaXBfYWxsb2NhdGlvbl9wb2xpY3kuY2x1c3Rlcl9pcHY0X2NpZHJfYmxvY2tcIjpcbiAgICBudWxsLFxuICBcImdvb2dsZS5jb21wb3Nlcl9lbnZpcm9ubWVudC5pcF9hbGxvY2F0aW9uX3BvbGljeS5zZXJ2aWNlc19pcHY0X2NpZHJfYmxvY2tcIjpcbiAgICBudWxsLFxuXG4gIFwiYXp1cmVybS5ldmVudGdyaWRfdG9waWMuaW5ib3VuZF9pcF9ydWxlLmlwX21hc2tcIjogbnVsbCxcbiAgXCJhenVyZXJtLmV2ZW50Z3JpZF90b3BpYy5pbmJvdW5kX2lwX3J1bGUuYWN0aW9uXCI6IG51bGwsXG5cbiAgXCJhenVyZXJtLmV2ZW50Z3JpZF9kb21haW4uaW5ib3VuZF9pcF9ydWxlLmlwX21hc2tcIjogbnVsbCxcbiAgXCJhenVyZXJtLmV2ZW50Z3JpZF9kb21haW4uaW5ib3VuZF9pcF9ydWxlLmFjdGlvblwiOiBudWxsLFxuXG4gIFwiYXp1cmVybS5jb250YWluZXJfcmVnaXN0cnkubmV0d29ya19ydWxlX3NldC5kZWZhdWx0X2FjdGlvblwiOiBudWxsLFxuICBcImF6dXJlcm0uY29udGFpbmVyX3JlZ2lzdHJ5Lm5ldHdvcmtfcnVsZV9zZXQuaXBfcnVsZVwiOiBudWxsLFxuICBcImF6dXJlcm0uY29udGFpbmVyX3JlZ2lzdHJ5Lm5ldHdvcmtfcnVsZV9zZXQudmlydHVhbF9uZXR3b3JrXCI6IG51bGwsXG4gIFwiYXp1cmVybS5jb250YWluZXJfcmVnaXN0cnkubmV0d29ya19ydWxlX3NldC5pcF9ydWxlLmFjdGlvblwiOiBudWxsLFxuICBcImF6dXJlcm0uY29udGFpbmVyX3JlZ2lzdHJ5Lm5ldHdvcmtfcnVsZV9zZXQuaXBfcnVsZS5pcF9yYW5nZVwiOiBudWxsLFxuICBcImF6dXJlcm0uY29udGFpbmVyX3JlZ2lzdHJ5Lm5ldHdvcmtfcnVsZV9zZXQudmlydHVhbF9uZXR3b3JrLmFjdGlvblwiOiBudWxsLFxuICBcImF6dXJlcm0uY29udGFpbmVyX3JlZ2lzdHJ5Lm5ldHdvcmtfcnVsZV9zZXQudmlydHVhbF9uZXR3b3JrLnN1Ym5ldF9pZFwiOiBudWxsLFxuICBcImF6dXJlcm0uY29udGFpbmVyX3JlZ2lzdHJ5LnJldGVudGlvbl9wb2xpY3kuZGF5c1wiOiBudWxsLFxuICBcImF6dXJlcm0uY29udGFpbmVyX3JlZ2lzdHJ5LnJldGVudGlvbl9wb2xpY3kuZW5hYmxlZFwiOiBudWxsLFxuICBcImF6dXJlcm0uY29udGFpbmVyX3JlZ2lzdHJ5LnRydXN0X3BvbGljeS5lbmFibGVkXCI6IG51bGwsXG4gIFwiYXp1cmVybS5jb250YWluZXJfcmVnaXN0cnkuZW5jcnlwdGlvbi5lbmFibGVkXCI6IG51bGwsXG4gIFwiYXp1cmVybS5jb250YWluZXJfcmVnaXN0cnkuZW5jcnlwdGlvbi5pZGVudGl0eV9jbGllbnRfaWRcIjogbnVsbCxcbiAgXCJhenVyZXJtLmNvbnRhaW5lcl9yZWdpc3RyeS5lbmNyeXB0aW9uLmtleV92YXVsdF9rZXlfaWRcIjogbnVsbCxcblxuICBcImF6dXJlcm0uZXZlbnRodWJfbmFtZXNwYWNlLm5ldHdvcmtfcnVsZXNldHMuZGVmYXVsdF9hY3Rpb25cIjogbnVsbCxcbiAgXCJhenVyZXJtLmV2ZW50aHViX25hbWVzcGFjZS5uZXR3b3JrX3J1bGVzZXRzLnB1YmxpY19uZXR3b3JrX2FjY2Vzc19lbmFibGVkXCI6XG4gICAgbnVsbCxcbiAgXCJhenVyZXJtLmV2ZW50aHViX25hbWVzcGFjZS5uZXR3b3JrX3J1bGVzZXRzLnRydXN0ZWRfc2VydmljZV9hY2Nlc3NfZW5hYmxlZFwiOlxuICAgIG51bGwsXG4gIFwiYXp1cmVybS5ldmVudGh1Yl9uYW1lc3BhY2UubmV0d29ya19ydWxlc2V0cy52aXJ0dWFsX25ldHdvcmtfcnVsZVwiOiBudWxsLFxuICBcImF6dXJlcm0uZXZlbnRodWJfbmFtZXNwYWNlLm5ldHdvcmtfcnVsZXNldHMudmlydHVhbF9uZXR3b3JrX3J1bGUuc3VibmV0X2lkXCI6XG4gICAgbnVsbCxcbiAgXCJhenVyZXJtLmV2ZW50aHViX25hbWVzcGFjZS5uZXR3b3JrX3J1bGVzZXRzLnZpcnR1YWxfbmV0d29ya19ydWxlLmlnbm9yZV9taXNzaW5nX3ZpcnR1YWxfbmV0d29ya19zZXJ2aWNlX2VuZHBvaW50XCI6XG4gICAgbnVsbCxcbiAgXCJhenVyZXJtLmV2ZW50aHViX25hbWVzcGFjZS5uZXR3b3JrX3J1bGVzZXRzLmlwX3J1bGVcIjogbnVsbCxcbiAgXCJhenVyZXJtLmV2ZW50aHViX25hbWVzcGFjZS5uZXR3b3JrX3J1bGVzZXRzLmlwX3J1bGUuaXBfbWFza1wiOiBudWxsLFxuICBcImF6dXJlcm0uZXZlbnRodWJfbmFtZXNwYWNlLm5ldHdvcmtfcnVsZXNldHMuaXBfcnVsZS5hY3Rpb25cIjogbnVsbCxcblxuICBcImF6dXJlcm0uYXV0b21hdGlvbl9ydW5ib29rLmpvYl9zY2hlZHVsZS5zY2hlZHVsZV9uYW1lXCI6IG51bGwsXG4gIFwiYXp1cmVybS5hdXRvbWF0aW9uX3J1bmJvb2suam9iX3NjaGVkdWxlLnBhcmFtZXRlcnNcIjogbnVsbCxcbiAgXCJhenVyZXJtLmF1dG9tYXRpb25fcnVuYm9vay5qb2Jfc2NoZWR1bGUucnVuX29uXCI6IG51bGwsXG4gIFwiYXp1cmVybS5hdXRvbWF0aW9uX3J1bmJvb2suam9iX3NjaGVkdWxlLmpvYl9zY2hlZHVsZV9pZFwiOiBudWxsLFxuXG4gIFwiYXp1cmVybS5tc3NxbF9kYXRhYmFzZS5leHRlbmRlZF9hdWRpdGluZ19wb2xpY3kuc3RvcmFnZV9hY2NvdW50X2FjY2Vzc19rZXlcIjpcbiAgICBudWxsLFxuICBcImF6dXJlcm0ubXNzcWxfZGF0YWJhc2UuZXh0ZW5kZWRfYXVkaXRpbmdfcG9saWN5LnN0b3JhZ2VfZW5kcG9pbnRcIjogbnVsbCxcbiAgXCJhenVyZXJtLm1zc3FsX2RhdGFiYXNlLmV4dGVuZGVkX2F1ZGl0aW5nX3BvbGljeS5zdG9yYWdlX2FjY291bnRfYWNjZXNzX2tleV9pc19zZWNvbmRhcnlcIjpcbiAgICBudWxsLFxuICBcImF6dXJlcm0ubXNzcWxfZGF0YWJhc2UuZXh0ZW5kZWRfYXVkaXRpbmdfcG9saWN5LnJldGVudGlvbl9pbl9kYXlzXCI6IG51bGwsXG4gIFwiYXp1cmVybS5tc3NxbF9kYXRhYmFzZS5leHRlbmRlZF9hdWRpdGluZ19wb2xpY3kubG9nX21vbml0b3JpbmdfZW5hYmxlZFwiOlxuICAgIG51bGwsXG5cbiAgXCJhenVyZXJtLm1zc3FsX3NlcnZlci5leHRlbmRlZF9hdWRpdGluZ19wb2xpY3kuc3RvcmFnZV9hY2NvdW50X2FjY2Vzc19rZXlcIjpcbiAgICBudWxsLFxuICBcImF6dXJlcm0ubXNzcWxfc2VydmVyLmV4dGVuZGVkX2F1ZGl0aW5nX3BvbGljeS5zdG9yYWdlX2VuZHBvaW50XCI6IG51bGwsXG4gIFwiYXp1cmVybS5tc3NxbF9zZXJ2ZXIuZXh0ZW5kZWRfYXVkaXRpbmdfcG9saWN5LnN0b3JhZ2VfYWNjb3VudF9hY2Nlc3Nfa2V5X2lzX3NlY29uZGFyeVwiOlxuICAgIG51bGwsXG4gIFwiYXp1cmVybS5tc3NxbF9zZXJ2ZXIuZXh0ZW5kZWRfYXVkaXRpbmdfcG9saWN5LnJldGVudGlvbl9pbl9kYXlzXCI6IG51bGwsXG4gIFwiYXp1cmVybS5tc3NxbF9zZXJ2ZXIuZXh0ZW5kZWRfYXVkaXRpbmdfcG9saWN5LmxvZ19tb25pdG9yaW5nX2VuYWJsZWRcIjogbnVsbCxcblxuICBcImF6dXJlcm0ucm91dGVfZmlsdGVyLnJ1bGUuYWNjZXNzXCI6IG51bGwsXG4gIFwiYXp1cmVybS5yb3V0ZV9maWx0ZXIucnVsZS5jb21tdW5pdGllc1wiOiBudWxsLFxuICBcImF6dXJlcm0ucm91dGVfZmlsdGVyLnJ1bGUubmFtZVwiOiBudWxsLFxuICBcImF6dXJlcm0ucm91dGVfZmlsdGVyLnJ1bGUucnVsZV90eXBlXCI6IG51bGwsXG5cbiAgXCJhenVyZXJtLnJvdXRlX3RhYmxlLnJvdXRlLm5hbWVcIjogbnVsbCxcbiAgXCJhenVyZXJtLnJvdXRlX3RhYmxlLnJvdXRlLmFkZHJlc3NfcHJlZml4XCI6IG51bGwsXG4gIFwiYXp1cmVybS5yb3V0ZV90YWJsZS5yb3V0ZS5uZXh0X2hvcF90eXBlXCI6IG51bGwsXG4gIFwiYXp1cmVybS5yb3V0ZV90YWJsZS5yb3V0ZS5uZXh0X2hvcF9pbl9pcF9hZGRyZXNzXCI6IG51bGwsXG5cbiAgXCJhenVyZXJtLnNpdGVfcmVjb3ZlcnlfcmVwbGljYXRlZF92bS5tYW5hZ2VkX2Rpc2suZGlza19pZFwiOiBudWxsLFxuICBcImF6dXJlcm0uc2l0ZV9yZWNvdmVyeV9yZXBsaWNhdGVkX3ZtLm1hbmFnZWRfZGlzay5zdGFnaW5nX3N0b3JhZ2VfYWNjb3VudF9pZFwiOlxuICAgIG51bGwsXG4gIFwiYXp1cmVybS5zaXRlX3JlY292ZXJ5X3JlcGxpY2F0ZWRfdm0ubWFuYWdlZF9kaXNrLnRhcmdldF9yZXNvdXJjZV9ncm91cF9pZFwiOlxuICAgIG51bGwsXG4gIFwiYXp1cmVybS5zaXRlX3JlY292ZXJ5X3JlcGxpY2F0ZWRfdm0ubWFuYWdlZF9kaXNrLnRhcmdldF9kaXNrX3R5cGVcIjogbnVsbCxcbiAgXCJhenVyZXJtLnNpdGVfcmVjb3ZlcnlfcmVwbGljYXRlZF92bS5tYW5hZ2VkX2Rpc2sudGFyZ2V0X3JlcGxpY2FfZGlza190eXBlXCI6XG4gICAgbnVsbCxcbiAgXCJhenVyZXJtLnNpdGVfcmVjb3ZlcnlfcmVwbGljYXRlZF92bS5tYW5hZ2VkX2Rpc2sudGFyZ2V0X2Rpc2tfZW5jcnlwdGlvbl9zZXRfaWRcIjpcbiAgICBudWxsLFxuICBcImF6dXJlcm0uc2l0ZV9yZWNvdmVyeV9yZXBsaWNhdGVkX3ZtLm1hbmFnZWRfZGlzay50YXJnZXRfZGlza19lbmNyeXB0aW9uXCI6XG4gICAgbnVsbCxcbiAgXCJhenVyZXJtLnNpdGVfcmVjb3ZlcnlfcmVwbGljYXRlZF92bS5uZXR3b3JrX2ludGVyZmFjZS5zb3VyY2VfbmV0d29ya19pbnRlcmZhY2VfaWRcIjpcbiAgICBudWxsLFxuICBcImF6dXJlcm0uc2l0ZV9yZWNvdmVyeV9yZXBsaWNhdGVkX3ZtLm5ldHdvcmtfaW50ZXJmYWNlLnRhcmdldF9zdGF0aWNfaXBcIjpcbiAgICBudWxsLFxuICBcImF6dXJlcm0uc2l0ZV9yZWNvdmVyeV9yZXBsaWNhdGVkX3ZtLm5ldHdvcmtfaW50ZXJmYWNlLnRhcmdldF9zdWJuZXRfbmFtZVwiOlxuICAgIG51bGwsXG4gIFwiYXp1cmVybS5zaXRlX3JlY292ZXJ5X3JlcGxpY2F0ZWRfdm0ubmV0d29ya19pbnRlcmZhY2UucmVjb3ZlcnlfcHVibGljX2lwX2FkZHJlc3NfaWRcIjpcbiAgICBudWxsLFxuXG4gIFwiYXp1cmVybS5pb3RodWIuZW5kcG9pbnQudHlwZVwiOiBudWxsLFxuICBcImF6dXJlcm0uaW90aHViLmVuZHBvaW50LmF1dGhlbnRpY2F0aW9uX3R5cGVcIjogbnVsbCxcbiAgXCJhenVyZXJtLmlvdGh1Yi5lbmRwb2ludC5pZGVudGl0eV9pZFwiOiBudWxsLFxuICBcImF6dXJlcm0uaW90aHViLmVuZHBvaW50LmVuZHBvaW50X3VyaVwiOiBudWxsLFxuICBcImF6dXJlcm0uaW90aHViLmVuZHBvaW50LmVudGl0eV9wYXRoXCI6IG51bGwsXG4gIFwiYXp1cmVybS5pb3RodWIuZW5kcG9pbnQuY29ubmVjdGlvbl9zdHJpbmdcIjogbnVsbCxcbiAgXCJhenVyZXJtLmlvdGh1Yi5lbmRwb2ludC5uYW1lXCI6IG51bGwsXG4gIFwiYXp1cmVybS5pb3RodWIuZW5kcG9pbnQuYmF0Y2hfZnJlcXVlbmN5X2luX3NlY29uZHNcIjogbnVsbCxcbiAgXCJhenVyZXJtLmlvdGh1Yi5lbmRwb2ludC5tYXhfY2h1bmtfc2l6ZV9pbl9ieXRlc1wiOiBudWxsLFxuICBcImF6dXJlcm0uaW90aHViLmVuZHBvaW50LmNvbnRhaW5lcl9uYW1lXCI6IG51bGwsXG4gIFwiYXp1cmVybS5pb3RodWIuZW5kcG9pbnQuZW5jb2RpbmdcIjogbnVsbCxcbiAgXCJhenVyZXJtLmlvdGh1Yi5lbmRwb2ludC5maWxlX25hbWVfZm9ybWF0XCI6IG51bGwsXG4gIFwiYXp1cmVybS5pb3RodWIuZW5kcG9pbnQucmVzb3VyY2VfZ3JvdXBfbmFtZVwiOiBudWxsLFxuICBcImF6dXJlcm0uaW90aHViLnJvdXRlLm5hbWVcIjogbnVsbCxcbiAgXCJhenVyZXJtLmlvdGh1Yi5yb3V0ZS5zb3VyY2VcIjogbnVsbCxcbiAgXCJhenVyZXJtLmlvdGh1Yi5yb3V0ZS5jb25kaXRpb25cIjogbnVsbCxcbiAgXCJhenVyZXJtLmlvdGh1Yi5yb3V0ZS5lbmRwb2ludF9uYW1lc1wiOiBudWxsLFxuICBcImF6dXJlcm0uaW90aHViLnJvdXRlLmVuYWJsZWRcIjogbnVsbCxcbiAgXCJhenVyZXJtLmlvdGh1Yi5lbnJpY2htZW50LmtleVwiOiBudWxsLFxuICBcImF6dXJlcm0uaW90aHViLmVucmljaG1lbnQudmFsdWVcIjogbnVsbCxcbiAgXCJhenVyZXJtLmlvdGh1Yi5lbnJpY2htZW50LmVuZHBvaW50X25hbWVzXCI6IG51bGwsXG5cbiAgXCJhenVyZXJtLnZpcnR1YWxfbmV0d29yay5zdWJuZXQubmFtZVwiOiBudWxsLFxuICBcImF6dXJlcm0udmlydHVhbF9uZXR3b3JrLnN1Ym5ldC5hZGRyZXNzX3ByZWZpeFwiOiBudWxsLFxuICBcImF6dXJlcm0udmlydHVhbF9uZXR3b3JrLnN1Ym5ldC5zZWN1cml0eV9ncm91cFwiOiBudWxsLFxuICBcImF6dXJlcm0udmlydHVhbF9uZXR3b3JrLnN1Ym5ldC5pZFwiOiBudWxsLFxuXG4gIFwiYXp1cmVybS5uZXR3b3JrX3NlY3VyaXR5X2dyb3VwLnNlY3VyaXR5X3J1bGUubmFtZVwiOiBudWxsLFxuICBcImF6dXJlcm0ubmV0d29ya19zZWN1cml0eV9ncm91cC5zZWN1cml0eV9ydWxlLmRlc2NyaXB0aW9uXCI6IG51bGwsXG4gIFwiYXp1cmVybS5uZXR3b3JrX3NlY3VyaXR5X2dyb3VwLnNlY3VyaXR5X3J1bGUucHJvdG9jb2xcIjogbnVsbCxcbiAgXCJhenVyZXJtLm5ldHdvcmtfc2VjdXJpdHlfZ3JvdXAuc2VjdXJpdHlfcnVsZS5zb3VyY2VfcG9ydF9yYW5nZVwiOiBudWxsLFxuICBcImF6dXJlcm0ubmV0d29ya19zZWN1cml0eV9ncm91cC5zZWN1cml0eV9ydWxlLnNvdXJjZV9wb3J0X3Jhbmdlc1wiOiBudWxsLFxuICBcImF6dXJlcm0ubmV0d29ya19zZWN1cml0eV9ncm91cC5zZWN1cml0eV9ydWxlLmRlc3RpbmF0aW9uX3BvcnRfcmFuZ2VcIjogbnVsbCxcbiAgXCJhenVyZXJtLm5ldHdvcmtfc2VjdXJpdHlfZ3JvdXAuc2VjdXJpdHlfcnVsZS5kZXN0aW5hdGlvbl9wb3J0X3Jhbmdlc1wiOiBudWxsLFxuICBcImF6dXJlcm0ubmV0d29ya19zZWN1cml0eV9ncm91cC5zZWN1cml0eV9ydWxlLnNvdXJjZV9hZGRyZXNzX3ByZWZpeFwiOiBudWxsLFxuICBcImF6dXJlcm0ubmV0d29ya19zZWN1cml0eV9ncm91cC5zZWN1cml0eV9ydWxlLnNvdXJjZV9hZGRyZXNzX3ByZWZpeGVzXCI6IG51bGwsXG4gIFwiYXp1cmVybS5uZXR3b3JrX3NlY3VyaXR5X2dyb3VwLnNlY3VyaXR5X3J1bGUuZGVzdGluYXRpb25fYWRkcmVzc19wcmVmaXhcIjpcbiAgICBudWxsLFxuICBcImF6dXJlcm0ubmV0d29ya19zZWN1cml0eV9ncm91cC5zZWN1cml0eV9ydWxlLmRlc3RpbmF0aW9uX2FkZHJlc3NfcHJlZml4ZXNcIjpcbiAgICBudWxsLFxuICBcImF6dXJlcm0ubmV0d29ya19zZWN1cml0eV9ncm91cC5zZWN1cml0eV9ydWxlLmRlc3RpbmF0aW9uX2FwcGxpY2F0aW9uX3NlY3VyaXR5X2dyb3VwX2lkc1wiOlxuICAgIG51bGwsXG4gIFwiYXp1cmVybS5uZXR3b3JrX3NlY3VyaXR5X2dyb3VwLnNlY3VyaXR5X3J1bGUuc291cmNlX2FwcGxpY2F0aW9uX3NlY3VyaXR5X2dyb3VwX2lkc1wiOlxuICAgIG51bGwsXG4gIFwiYXp1cmVybS5uZXR3b3JrX3NlY3VyaXR5X2dyb3VwLnNlY3VyaXR5X3J1bGUuYWNjZXNzXCI6IG51bGwsXG4gIFwiYXp1cmVybS5uZXR3b3JrX3NlY3VyaXR5X2dyb3VwLnNlY3VyaXR5X3J1bGUucHJpb3JpdHlcIjogbnVsbCxcbiAgXCJhenVyZXJtLm5ldHdvcmtfc2VjdXJpdHlfZ3JvdXAuc2VjdXJpdHlfcnVsZS5kaXJlY3Rpb25cIjogbnVsbCxcblxuICBcImF6dXJlcm0uc3luYXBzZV93b3Jrc3BhY2UuYWFkX2FkbWluLmxvZ2luXCI6IG51bGwsXG4gIFwiYXp1cmVybS5zeW5hcHNlX3dvcmtzcGFjZS5hYWRfYWRtaW4ub2JqZWN0X2lkXCI6IG51bGwsXG4gIFwiYXp1cmVybS5zeW5hcHNlX3dvcmtzcGFjZS5hYWRfYWRtaW4udGVuYW50X2lkXCI6IG51bGwsXG4gIFwiYXp1cmVybS5zeW5hcHNlX3dvcmtzcGFjZS5zcWxfYWFkX2FkbWluLmxvZ2luXCI6IG51bGwsXG4gIFwiYXp1cmVybS5zeW5hcHNlX3dvcmtzcGFjZS5zcWxfYWFkX2FkbWluLm9iamVjdF9pZFwiOiBudWxsLFxuICBcImF6dXJlcm0uc3luYXBzZV93b3Jrc3BhY2Uuc3FsX2FhZF9hZG1pbi50ZW5hbnRfaWRcIjogbnVsbCxcblxuICBcImF6dXJlcm0uYmF0Y2hfcG9vbC5jb250YWluZXJfY29uZmlndXJhdGlvbi5jb250YWluZXJfcmVnaXN0cmllcy5yZWdpc3RyeV9zZXJ2ZXJcIjpcbiAgICBudWxsLFxuICBcImF6dXJlcm0uYmF0Y2hfcG9vbC5jb250YWluZXJfY29uZmlndXJhdGlvbi5jb250YWluZXJfcmVnaXN0cmllcy51c2VyX25hbWVcIjpcbiAgICBudWxsLFxuICBcImF6dXJlcm0uYmF0Y2hfcG9vbC5jb250YWluZXJfY29uZmlndXJhdGlvbi5jb250YWluZXJfcmVnaXN0cmllcy5wYXNzd29yZFwiOlxuICAgIG51bGwsXG5cbiAgXCJhenVyZXJtLmtleV92YXVsdC5hY2Nlc3NfcG9saWN5LnRlbmFudF9pZFwiOiBudWxsLFxuICBcImF6dXJlcm0ua2V5X3ZhdWx0LmFjY2Vzc19wb2xpY3kub2JqZWN0X2lkXCI6IG51bGwsXG4gIFwiYXp1cmVybS5rZXlfdmF1bHQuYWNjZXNzX3BvbGljeS5hcHBsaWNhdGlvbl9pZFwiOiBudWxsLFxuICBcImF6dXJlcm0ua2V5X3ZhdWx0LmFjY2Vzc19wb2xpY3kuY2VydGlmaWNhdGVfcGVybWlzc2lvbnNcIjogbnVsbCxcbiAgXCJhenVyZXJtLmtleV92YXVsdC5hY2Nlc3NfcG9saWN5LmtleV9wZXJtaXNzaW9uc1wiOiBudWxsLFxuICBcImF6dXJlcm0ua2V5X3ZhdWx0LmFjY2Vzc19wb2xpY3kuc2VjcmV0X3Blcm1pc3Npb25zXCI6IG51bGwsXG4gIFwiYXp1cmVybS5rZXlfdmF1bHQuYWNjZXNzX3BvbGljeS5zdG9yYWdlX3Blcm1pc3Npb25zXCI6IG51bGwsXG5cbiAgXCJhenVyZXJtLmFwcF9zZXJ2aWNlLmlwX3Jlc3RyaWN0aW9uLmlwX2FkZHJlc3NcIjogbnVsbCxcbiAgXCJhenVyZXJtLmFwcF9zZXJ2aWNlLmlwX3Jlc3RyaWN0aW9uLnNlcnZpY2VfdGFnXCI6IG51bGwsXG4gIFwiYXp1cmVybS5hcHBfc2VydmljZS5pcF9yZXN0cmljdGlvbi5zdWJuZXRfaWRcIjogbnVsbCxcbiAgXCJhenVyZXJtLmFwcF9zZXJ2aWNlLmlwX3Jlc3RyaWN0aW9uLnZpcnR1YWxfbmV0d29ya19zdWJuZXRfaWRcIjogbnVsbCxcbiAgXCJhenVyZXJtLmFwcF9zZXJ2aWNlLmlwX3Jlc3RyaWN0aW9uLm5hbWVcIjogbnVsbCxcbiAgXCJhenVyZXJtLmFwcF9zZXJ2aWNlLmlwX3Jlc3RyaWN0aW9uLnByaW9yaXR5XCI6IG51bGwsXG4gIFwiYXp1cmVybS5hcHBfc2VydmljZS5pcF9yZXN0cmljdGlvbi5hY3Rpb25cIjogbnVsbCxcbiAgXCJhenVyZXJtLmFwcF9zZXJ2aWNlLmlwX3Jlc3RyaWN0aW9uLmhlYWRlcnNcIjogbnVsbCxcbiAgXCJhenVyZXJtLmFwcF9zZXJ2aWNlLmlwX3Jlc3RyaWN0aW9uLmhlYWRlcnMueF9mb3J3YXJkZWRfaG9zdFwiOiBudWxsLFxuICBcImF6dXJlcm0uYXBwX3NlcnZpY2UuaXBfcmVzdHJpY3Rpb24uaGVhZGVycy54X2ZvcndhcmRlZF9mb3JcIjogbnVsbCxcbiAgXCJhenVyZXJtLmFwcF9zZXJ2aWNlLmlwX3Jlc3RyaWN0aW9uLmhlYWRlcnMueF9henVyZV9mZGlkXCI6IG51bGwsXG4gIFwiYXp1cmVybS5hcHBfc2VydmljZS5pcF9yZXN0cmljdGlvbi5oZWFkZXJzLnhfZmRfaGVhbHRoX3Byb2JlXCI6IG51bGwsXG4gIFwiYXp1cmVybS5hcHBfc2VydmljZS5zY21faXBfcmVzdHJpY3Rpb24uaXBfYWRkcmVzc1wiOiBudWxsLFxuICBcImF6dXJlcm0uYXBwX3NlcnZpY2Uuc2NtX2lwX3Jlc3RyaWN0aW9uLnNlcnZpY2VfdGFnXCI6IG51bGwsXG4gIFwiYXp1cmVybS5hcHBfc2VydmljZS5zY21faXBfcmVzdHJpY3Rpb24uc3VibmV0X2lkXCI6IG51bGwsXG4gIFwiYXp1cmVybS5hcHBfc2VydmljZS5zY21faXBfcmVzdHJpY3Rpb24udmlydHVhbF9uZXR3b3JrX3N1Ym5ldF9pZFwiOiBudWxsLFxuICBcImF6dXJlcm0uYXBwX3NlcnZpY2Uuc2NtX2lwX3Jlc3RyaWN0aW9uLm5hbWVcIjogbnVsbCxcbiAgXCJhenVyZXJtLmFwcF9zZXJ2aWNlLnNjbV9pcF9yZXN0cmljdGlvbi5wcmlvcml0eVwiOiBudWxsLFxuICBcImF6dXJlcm0uYXBwX3NlcnZpY2Uuc2NtX2lwX3Jlc3RyaWN0aW9uLmFjdGlvblwiOiBudWxsLFxuICBcImF6dXJlcm0uYXBwX3NlcnZpY2Uuc2NtX2lwX3Jlc3RyaWN0aW9uLmhlYWRlcnNcIjogbnVsbCxcbiAgXCJhenVyZXJtLmFwcF9zZXJ2aWNlLnNjbV9pcF9yZXN0cmljdGlvbi5oZWFkZXJzLnhfZm9yd2FyZGVkX2hvc3RcIjogbnVsbCxcbiAgXCJhenVyZXJtLmFwcF9zZXJ2aWNlLnNjbV9pcF9yZXN0cmljdGlvbi5oZWFkZXJzLnhfZm9yd2FyZGVkX2ZvclwiOiBudWxsLFxuICBcImF6dXJlcm0uYXBwX3NlcnZpY2Uuc2NtX2lwX3Jlc3RyaWN0aW9uLmhlYWRlcnMueF9henVyZV9mZGlkXCI6IG51bGwsXG4gIFwiYXp1cmVybS5hcHBfc2VydmljZS5zY21faXBfcmVzdHJpY3Rpb24uaGVhZGVycy54X2ZkX2hlYWx0aF9wcm9iZVwiOiBudWxsLFxuXG4gIFwiYXp1cmVybS5mdW5jdGlvbl9hcHAuaXBfcmVzdHJpY3Rpb24uaXBfYWRkcmVzc1wiOiBudWxsLFxuICBcImF6dXJlcm0uZnVuY3Rpb25fYXBwLmlwX3Jlc3RyaWN0aW9uLnNlcnZpY2VfdGFnXCI6IG51bGwsXG4gIFwiYXp1cmVybS5mdW5jdGlvbl9hcHAuaXBfcmVzdHJpY3Rpb24uc3VibmV0X2lkXCI6IG51bGwsXG4gIFwiYXp1cmVybS5mdW5jdGlvbl9hcHAuaXBfcmVzdHJpY3Rpb24udmlydHVhbF9uZXR3b3JrX3N1Ym5ldF9pZFwiOiBudWxsLFxuICBcImF6dXJlcm0uZnVuY3Rpb25fYXBwLmlwX3Jlc3RyaWN0aW9uLm5hbWVcIjogbnVsbCxcbiAgXCJhenVyZXJtLmZ1bmN0aW9uX2FwcC5pcF9yZXN0cmljdGlvbi5wcmlvcml0eVwiOiBudWxsLFxuICBcImF6dXJlcm0uZnVuY3Rpb25fYXBwLmlwX3Jlc3RyaWN0aW9uLmFjdGlvblwiOiBudWxsLFxuICBcImF6dXJlcm0uZnVuY3Rpb25fYXBwLmlwX3Jlc3RyaWN0aW9uLmhlYWRlcnNcIjogbnVsbCxcbiAgXCJhenVyZXJtLmZ1bmN0aW9uX2FwcC5pcF9yZXN0cmljdGlvbi5oZWFkZXJzLnhfZm9yd2FyZGVkX2hvc3RcIjogbnVsbCxcbiAgXCJhenVyZXJtLmZ1bmN0aW9uX2FwcC5pcF9yZXN0cmljdGlvbi5oZWFkZXJzLnhfZm9yd2FyZGVkX2ZvclwiOiBudWxsLFxuICBcImF6dXJlcm0uZnVuY3Rpb25fYXBwLmlwX3Jlc3RyaWN0aW9uLmhlYWRlcnMueF9henVyZV9mZGlkXCI6IG51bGwsXG4gIFwiYXp1cmVybS5mdW5jdGlvbl9hcHAuaXBfcmVzdHJpY3Rpb24uaGVhZGVycy54X2ZkX2hlYWx0aF9wcm9iZVwiOiBudWxsLFxuICBcImF6dXJlcm0uZnVuY3Rpb25fYXBwLnNjbV9pcF9yZXN0cmljdGlvbi5pcF9hZGRyZXNzXCI6IG51bGwsXG4gIFwiYXp1cmVybS5mdW5jdGlvbl9hcHAuc2NtX2lwX3Jlc3RyaWN0aW9uLnNlcnZpY2VfdGFnXCI6IG51bGwsXG4gIFwiYXp1cmVybS5mdW5jdGlvbl9hcHAuc2NtX2lwX3Jlc3RyaWN0aW9uLnN1Ym5ldF9pZFwiOiBudWxsLFxuICBcImF6dXJlcm0uZnVuY3Rpb25fYXBwLnNjbV9pcF9yZXN0cmljdGlvbi52aXJ0dWFsX25ldHdvcmtfc3VibmV0X2lkXCI6IG51bGwsXG4gIFwiYXp1cmVybS5mdW5jdGlvbl9hcHAuc2NtX2lwX3Jlc3RyaWN0aW9uLm5hbWVcIjogbnVsbCxcbiAgXCJhenVyZXJtLmZ1bmN0aW9uX2FwcC5zY21faXBfcmVzdHJpY3Rpb24ucHJpb3JpdHlcIjogbnVsbCxcbiAgXCJhenVyZXJtLmZ1bmN0aW9uX2FwcC5zY21faXBfcmVzdHJpY3Rpb24uYWN0aW9uXCI6IG51bGwsXG4gIFwiYXp1cmVybS5mdW5jdGlvbl9hcHAuc2NtX2lwX3Jlc3RyaWN0aW9uLmhlYWRlcnNcIjogbnVsbCxcbiAgXCJhenVyZXJtLmZ1bmN0aW9uX2FwcC5zY21faXBfcmVzdHJpY3Rpb24uaGVhZGVycy54X2ZvcndhcmRlZF9ob3N0XCI6IG51bGwsXG4gIFwiYXp1cmVybS5mdW5jdGlvbl9hcHAuc2NtX2lwX3Jlc3RyaWN0aW9uLmhlYWRlcnMueF9mb3J3YXJkZWRfZm9yXCI6IG51bGwsXG4gIFwiYXp1cmVybS5mdW5jdGlvbl9hcHAuc2NtX2lwX3Jlc3RyaWN0aW9uLmhlYWRlcnMueF9henVyZV9mZGlkXCI6IG51bGwsXG4gIFwiYXp1cmVybS5mdW5jdGlvbl9hcHAuc2NtX2lwX3Jlc3RyaWN0aW9uLmhlYWRlcnMueF9mZF9oZWFsdGhfcHJvYmVcIjogbnVsbCxcblxuICBcImF6dXJlcm0ubG9naWNfYXBwX3N0YW5kYXJkLmlwX3Jlc3RyaWN0aW9uLmlwX2FkZHJlc3NcIjogbnVsbCxcbiAgXCJhenVyZXJtLmxvZ2ljX2FwcF9zdGFuZGFyZC5pcF9yZXN0cmljdGlvbi5zZXJ2aWNlX3RhZ1wiOiBudWxsLFxuICBcImF6dXJlcm0ubG9naWNfYXBwX3N0YW5kYXJkLmlwX3Jlc3RyaWN0aW9uLnN1Ym5ldF9pZFwiOiBudWxsLFxuICBcImF6dXJlcm0ubG9naWNfYXBwX3N0YW5kYXJkLmlwX3Jlc3RyaWN0aW9uLnZpcnR1YWxfbmV0d29ya19zdWJuZXRfaWRcIjogbnVsbCxcbiAgXCJhenVyZXJtLmxvZ2ljX2FwcF9zdGFuZGFyZC5pcF9yZXN0cmljdGlvbi5uYW1lXCI6IG51bGwsXG4gIFwiYXp1cmVybS5sb2dpY19hcHBfc3RhbmRhcmQuaXBfcmVzdHJpY3Rpb24ucHJpb3JpdHlcIjogbnVsbCxcbiAgXCJhenVyZXJtLmxvZ2ljX2FwcF9zdGFuZGFyZC5pcF9yZXN0cmljdGlvbi5hY3Rpb25cIjogbnVsbCxcbiAgXCJhenVyZXJtLmxvZ2ljX2FwcF9zdGFuZGFyZC5pcF9yZXN0cmljdGlvbi5oZWFkZXJzXCI6IG51bGwsXG4gIFwiYXp1cmVybS5sb2dpY19hcHBfc3RhbmRhcmQuaXBfcmVzdHJpY3Rpb24uaGVhZGVycy54X2ZvcndhcmRlZF9ob3N0XCI6IG51bGwsXG4gIFwiYXp1cmVybS5sb2dpY19hcHBfc3RhbmRhcmQuaXBfcmVzdHJpY3Rpb24uaGVhZGVycy54X2ZvcndhcmRlZF9mb3JcIjogbnVsbCxcbiAgXCJhenVyZXJtLmxvZ2ljX2FwcF9zdGFuZGFyZC5pcF9yZXN0cmljdGlvbi5oZWFkZXJzLnhfYXp1cmVfZmRpZFwiOiBudWxsLFxuICBcImF6dXJlcm0ubG9naWNfYXBwX3N0YW5kYXJkLmlwX3Jlc3RyaWN0aW9uLmhlYWRlcnMueF9mZF9oZWFsdGhfcHJvYmVcIjogbnVsbCxcbiAgXCJhenVyZXJtLmxvZ2ljX2FwcF9zdGFuZGFyZC5zY21faXBfcmVzdHJpY3Rpb24uaXBfYWRkcmVzc1wiOiBudWxsLFxuICBcImF6dXJlcm0ubG9naWNfYXBwX3N0YW5kYXJkLnNjbV9pcF9yZXN0cmljdGlvbi5zZXJ2aWNlX3RhZ1wiOiBudWxsLFxuICBcImF6dXJlcm0ubG9naWNfYXBwX3N0YW5kYXJkLnNjbV9pcF9yZXN0cmljdGlvbi5zdWJuZXRfaWRcIjogbnVsbCxcbiAgXCJhenVyZXJtLmxvZ2ljX2FwcF9zdGFuZGFyZC5zY21faXBfcmVzdHJpY3Rpb24udmlydHVhbF9uZXR3b3JrX3N1Ym5ldF9pZFwiOlxuICAgIG51bGwsXG4gIFwiYXp1cmVybS5sb2dpY19hcHBfc3RhbmRhcmQuc2NtX2lwX3Jlc3RyaWN0aW9uLm5hbWVcIjogbnVsbCxcbiAgXCJhenVyZXJtLmxvZ2ljX2FwcF9zdGFuZGFyZC5zY21faXBfcmVzdHJpY3Rpb24ucHJpb3JpdHlcIjogbnVsbCxcbiAgXCJhenVyZXJtLmxvZ2ljX2FwcF9zdGFuZGFyZC5zY21faXBfcmVzdHJpY3Rpb24uYWN0aW9uXCI6IG51bGwsXG4gIFwiYXp1cmVybS5sb2dpY19hcHBfc3RhbmRhcmQuc2NtX2lwX3Jlc3RyaWN0aW9uLmhlYWRlcnNcIjogbnVsbCxcbiAgXCJhenVyZXJtLmxvZ2ljX2FwcF9zdGFuZGFyZC5zY21faXBfcmVzdHJpY3Rpb24uaGVhZGVycy54X2ZvcndhcmRlZF9ob3N0XCI6XG4gICAgbnVsbCxcbiAgXCJhenVyZXJtLmxvZ2ljX2FwcF9zdGFuZGFyZC5zY21faXBfcmVzdHJpY3Rpb24uaGVhZGVycy54X2ZvcndhcmRlZF9mb3JcIjogbnVsbCxcbiAgXCJhenVyZXJtLmxvZ2ljX2FwcF9zdGFuZGFyZC5zY21faXBfcmVzdHJpY3Rpb24uaGVhZGVycy54X2F6dXJlX2ZkaWRcIjogbnVsbCxcbiAgXCJhenVyZXJtLmxvZ2ljX2FwcF9zdGFuZGFyZC5zY21faXBfcmVzdHJpY3Rpb24uaGVhZGVycy54X2ZkX2hlYWx0aF9wcm9iZVwiOlxuICAgIG51bGwsXG5cbiAgXCJhenVyZXJtLmFwaV9tYW5hZ2VtZW50LnBvbGljeS54bWxfY29udGVudFwiOiBudWxsLFxuICBcImF6dXJlcm0uYXBpX21hbmFnZW1lbnQucG9saWN5LnhtbF9saW5rXCI6IG51bGwsXG5cbiAgXCJhenVyZXJtLmNvbnRhaW5lcl9ncm91cC5leHBvc2VkX3BvcnQucG9ydFwiOiBudWxsLFxuICBcImF6dXJlcm0uY29udGFpbmVyX2dyb3VwLmV4cG9zZWRfcG9ydC5wcm90b2NvbFwiOiBudWxsLFxufTtcbiJdfQ==
404
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWRlZmF1bHRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2dldC9nZW5lcmF0b3IvY3VzdG9tLWRlZmF1bHRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLCtCQUErQjtBQUMvQixtQ0FBbUM7QUFDdEIsUUFBQSxlQUFlLEdBQWdDO0lBQzFELHdDQUF3QyxFQUFFLElBQUk7SUFDOUMsd0NBQXdDLEVBQUUsSUFBSTtJQUM5QyxzQ0FBc0MsRUFBRSxJQUFJO0lBQzVDLDZDQUE2QyxFQUFFLElBQUk7SUFDbkQsNENBQTRDLEVBQUUsSUFBSTtJQUNsRCxxQ0FBcUMsRUFBRSxJQUFJO0lBQzNDLDRDQUE0QyxFQUFFLElBQUk7SUFDbEQsaUNBQWlDLEVBQUUsSUFBSTtJQUN2QyxvQ0FBb0MsRUFBRSxJQUFJO0lBQzFDLHVDQUF1QyxFQUFFLElBQUk7SUFDN0MsdUNBQXVDLEVBQUUsSUFBSTtJQUM3QyxxQ0FBcUMsRUFBRSxJQUFJO0lBQzNDLDRDQUE0QyxFQUFFLElBQUk7SUFDbEQsMkNBQTJDLEVBQUUsSUFBSTtJQUNqRCxvQ0FBb0MsRUFBRSxJQUFJO0lBQzFDLDJDQUEyQyxFQUFFLElBQUk7SUFDakQsZ0NBQWdDLEVBQUUsSUFBSTtJQUN0QyxtQ0FBbUMsRUFBRSxJQUFJO0lBRXpDLDBDQUEwQyxFQUFFLElBQUk7SUFDaEQsK0NBQStDLEVBQUUsSUFBSTtJQUNyRCxzREFBc0QsRUFBRSxJQUFJO0lBQzVELDBDQUEwQyxFQUFFLElBQUk7SUFDaEQsMkNBQTJDLEVBQUUsSUFBSTtJQUNqRCw4Q0FBOEMsRUFBRSxJQUFJO0lBQ3BELG9EQUFvRCxFQUFFLElBQUk7SUFDMUQsa0RBQWtELEVBQUUsSUFBSTtJQUN4RCwrQ0FBK0MsRUFBRSxJQUFJO0lBQ3JELHlEQUF5RCxFQUFFLElBQUk7SUFDL0QsMERBQTBELEVBQUUsSUFBSTtJQUNoRSxnREFBZ0QsRUFBRSxJQUFJO0lBRXRELHdDQUF3QyxFQUFFLElBQUk7SUFDOUMsc0NBQXNDLEVBQUUsSUFBSTtJQUM1QywyQkFBMkIsRUFBRSxJQUFJO0lBQ2pDLDJDQUEyQyxFQUFFLElBQUk7SUFDakQsMENBQTBDLEVBQUUsSUFBSTtJQUNoRCxpREFBaUQsRUFBRSxJQUFJO0lBQ3ZELGlEQUFpRCxFQUFFLElBQUk7SUFFdkQsbUNBQW1DLEVBQUUsSUFBSTtJQUN6QyxpQ0FBaUMsRUFBRSxJQUFJO0lBQ3ZDLGlDQUFpQyxFQUFFLElBQUk7SUFDdkMsZ0NBQWdDLEVBQUUsSUFBSTtJQUN0QyxrQ0FBa0MsRUFBRSxJQUFJO0lBQ3hDLG9DQUFvQyxFQUFFLElBQUk7SUFDMUMseUNBQXlDLEVBQUUsSUFBSTtJQUMvQyxtQ0FBbUMsRUFBRSxJQUFJO0lBQ3pDLG1DQUFtQyxFQUFFLElBQUk7SUFDekMsa0NBQWtDLEVBQUUsSUFBSTtJQUN4QyxnQ0FBZ0MsRUFBRSxJQUFJO0lBQ3RDLGdDQUFnQyxFQUFFLElBQUk7SUFDdEMsK0JBQStCLEVBQUUsSUFBSTtJQUNyQyxpQ0FBaUMsRUFBRSxJQUFJO0lBQ3ZDLG1DQUFtQyxFQUFFLElBQUk7SUFDekMsd0NBQXdDLEVBQUUsSUFBSTtJQUM5QyxrQ0FBa0MsRUFBRSxJQUFJO0lBQ3hDLGtDQUFrQyxFQUFFLElBQUk7SUFFeEMsa0NBQWtDLEVBQUUsSUFBSTtJQUN4Qyx1Q0FBdUMsRUFBRSxJQUFJO0lBQzdDLDhDQUE4QyxFQUFFLElBQUk7SUFDcEQsa0NBQWtDLEVBQUUsSUFBSTtJQUN4QyxtQ0FBbUMsRUFBRSxJQUFJO0lBQ3pDLHNDQUFzQyxFQUFFLElBQUk7SUFDNUMsd0NBQXdDLEVBQUUsSUFBSTtJQUM5Qyw0Q0FBNEMsRUFBRSxJQUFJO0lBQ2xELDBDQUEwQyxFQUFFLElBQUk7SUFDaEQsdUNBQXVDLEVBQUUsSUFBSTtJQUM3QyxpREFBaUQsRUFBRSxJQUFJO0lBQ3ZELGtEQUFrRCxFQUFFLElBQUk7SUFDeEQsMENBQTBDLEVBQUUsSUFBSTtJQUNoRCx3Q0FBd0MsRUFBRSxJQUFJO0lBQzlDLHVDQUF1QyxFQUFFLElBQUk7SUFFN0MsZ0RBQWdELEVBQUUsSUFBSTtJQUN0RCxnREFBZ0QsRUFBRSxJQUFJO0lBQ3RELDhDQUE4QyxFQUFFLElBQUk7SUFDcEQscURBQXFELEVBQUUsSUFBSTtJQUMzRCxvREFBb0QsRUFBRSxJQUFJO0lBQzFELDZDQUE2QyxFQUFFLElBQUk7SUFDbkQsb0RBQW9ELEVBQUUsSUFBSTtJQUMxRCx5Q0FBeUMsRUFBRSxJQUFJO0lBQy9DLDRDQUE0QyxFQUFFLElBQUk7SUFDbEQsK0NBQStDLEVBQUUsSUFBSTtJQUNyRCwrQ0FBK0MsRUFBRSxJQUFJO0lBQ3JELDZDQUE2QyxFQUFFLElBQUk7SUFDbkQsb0RBQW9ELEVBQUUsSUFBSTtJQUMxRCxtREFBbUQsRUFBRSxJQUFJO0lBQ3pELDRDQUE0QyxFQUFFLElBQUk7SUFDbEQsbURBQW1ELEVBQUUsSUFBSTtJQUN6RCx3Q0FBd0MsRUFBRSxJQUFJO0lBQzlDLDJDQUEyQyxFQUFFLElBQUk7SUFFakQsaUNBQWlDLEVBQUUsSUFBSTtJQUN2QyxtREFBbUQsRUFBRSxJQUFJO0lBQ3pELDBDQUEwQyxFQUFFLElBQUk7SUFDaEQsMkNBQTJDLEVBQUUsSUFBSTtJQUNqRCx5Q0FBeUMsRUFBRSxJQUFJO0lBQy9DLG9DQUFvQyxFQUFFLElBQUk7SUFDMUMsMkNBQTJDLEVBQUUsSUFBSTtJQUNqRCxrRUFBa0UsRUFBRSxJQUFJO0lBQ3hFLG1FQUFtRSxFQUFFLElBQUk7SUFDekUsOENBQThDLEVBQUUsSUFBSTtJQUNwRCw2Q0FBNkMsRUFBRSxJQUFJO0lBQ25ELG1EQUFtRCxFQUFFLElBQUk7SUFDekQsaUVBQWlFLEVBQUUsSUFBSTtJQUN2RSxrRUFBa0UsRUFBRSxJQUFJO0lBRXhFLG1DQUFtQyxFQUFFLElBQUk7SUFDekMsNkNBQTZDLEVBQUUsSUFBSTtJQUNuRCw0Q0FBNEMsRUFBRSxJQUFJO0lBQ2xELHFEQUFxRCxFQUFFLElBQUk7SUFFM0Qsc0RBQXNELEVBQUUsSUFBSTtJQUM1RCw2REFBNkQsRUFBRSxJQUFJO0lBQ25FLDBEQUEwRCxFQUFFLElBQUk7SUFDaEUsbUVBQW1FLEVBQUUsSUFBSTtJQUN6RSxvRUFBb0UsRUFBRSxJQUFJO0lBQzFFLHdFQUF3RSxFQUN0RSxJQUFJO0lBQ04seUVBQXlFLEVBQ3ZFLElBQUk7SUFDTix1RUFBdUUsRUFBRSxJQUFJO0lBQzdFLHlFQUF5RSxFQUN2RSxJQUFJO0lBQ04sNEVBQTRFLEVBQzFFLElBQUk7SUFDTiw4RUFBOEUsRUFDNUUsSUFBSTtJQUNOLDRGQUE0RixFQUMxRixJQUFJO0lBQ04sdUZBQXVGLEVBQ3JGLElBQUk7SUFDTix3REFBd0QsRUFBRSxJQUFJO0lBQzlELDBEQUEwRCxFQUFFLElBQUk7SUFDaEUsMkRBQTJELEVBQUUsSUFBSTtJQUVqRSx3Q0FBd0MsRUFBRSxJQUFJO0lBQzlDLGtEQUFrRCxFQUFFLElBQUk7SUFDeEQsa0RBQWtELEVBQUUsSUFBSTtJQUN4RCxzQ0FBc0MsRUFBRSxJQUFJO0lBRTVDLDhDQUE4QyxFQUFFLElBQUk7SUFDcEQsOENBQThDLEVBQUUsSUFBSTtJQUNwRCxtREFBbUQsRUFBRSxJQUFJO0lBQ3pELDREQUE0RCxFQUFFLElBQUk7SUFDbEUsb0RBQW9ELEVBQUUsSUFBSTtJQUMxRCx1REFBdUQsRUFBRSxJQUFJO0lBQzdELHdEQUF3RCxFQUFFLElBQUk7SUFFOUQsMkNBQTJDLEVBQUUsSUFBSTtJQUNqRCx1Q0FBdUMsRUFBRSxJQUFJO0lBQzdDLHFEQUFxRCxFQUFFLElBQUk7SUFDM0Qsc0RBQXNELEVBQUUsSUFBSTtJQUM1RCw0Q0FBNEMsRUFBRSxJQUFJO0lBQ2xELHFEQUFxRCxFQUFFLElBQUk7SUFDM0Qsa0RBQWtELEVBQUUsSUFBSTtJQUN4RCxvQ0FBb0MsRUFBRSxJQUFJO0lBRTFDLGtEQUFrRCxFQUFFLElBQUk7SUFDeEQsOENBQThDLEVBQUUsSUFBSTtJQUNwRCw0REFBNEQsRUFBRSxJQUFJO0lBQ2xFLDZEQUE2RCxFQUFFLElBQUk7SUFDbkUsbURBQW1ELEVBQUUsSUFBSTtJQUN6RCw0REFBNEQsRUFBRSxJQUFJO0lBQ2xFLHlEQUF5RCxFQUFFLElBQUk7SUFDL0QsMkNBQTJDLEVBQUUsSUFBSTtJQUVqRCwrQ0FBK0MsRUFBRSxJQUFJO0lBQ3JELDJDQUEyQyxFQUFFLElBQUk7SUFDakQseURBQXlELEVBQUUsSUFBSTtJQUMvRCwwREFBMEQsRUFBRSxJQUFJO0lBQ2hFLGdEQUFnRCxFQUFFLElBQUk7SUFDdEQseURBQXlELEVBQUUsSUFBSTtJQUMvRCxzREFBc0QsRUFBRSxJQUFJO0lBQzVELHdDQUF3QyxFQUFFLElBQUk7SUFFOUMsMENBQTBDLEVBQUUsSUFBSTtJQUNoRCx3Q0FBd0MsRUFBRSxJQUFJO0lBQzlDLHVDQUF1QyxFQUFFLElBQUk7SUFDN0MscUNBQXFDLEVBQUUsSUFBSTtJQUMzQyx1Q0FBdUMsRUFBRSxJQUFJO0lBRTdDLGlEQUFpRCxFQUFFLElBQUk7SUFDdkQsZ0RBQWdELEVBQUUsSUFBSTtJQUV0RCw0REFBNEQsRUFBRSxJQUFJO0lBQ2xFLGlFQUFpRSxFQUFFLElBQUk7SUFDdkUsMERBQTBELEVBQUUsSUFBSTtJQUNoRSw2RUFBNkUsRUFDM0UsSUFBSTtJQUNOLHVFQUF1RSxFQUFFLElBQUk7SUFDN0UsK0RBQStELEVBQUUsSUFBSTtJQUNyRSw4REFBOEQsRUFBRSxJQUFJO0lBQ3BFLDZEQUE2RCxFQUFFLElBQUk7SUFDbkUsOERBQThELEVBQUUsSUFBSTtJQUNwRSw4REFBOEQsRUFBRSxJQUFJO0lBQ3BFLHNGQUFzRixFQUNwRixJQUFJO0lBQ04sOEZBQThGLEVBQzVGLElBQUk7SUFDTiw4RUFBOEUsRUFDNUUsSUFBSTtJQUNOLDhGQUE4RixFQUM1RixJQUFJO0lBQ04sb0ZBQW9GLEVBQ2xGLElBQUk7SUFFTix5REFBeUQsRUFBRSxJQUFJO0lBQy9ELDREQUE0RCxFQUFFLElBQUk7SUFFbEUsOERBQThELEVBQUUsSUFBSTtJQUNwRSw2REFBNkQsRUFBRSxJQUFJO0lBQ25FLDJFQUEyRSxFQUN6RSxJQUFJO0lBQ04sMkVBQTJFLEVBQ3pFLElBQUk7SUFDTixnR0FBZ0csRUFDOUYsSUFBSTtJQUNOLHNHQUFzRyxFQUNwRyxJQUFJO0lBQ04sZ0RBQWdELEVBQUUsSUFBSTtJQUN0RCxrREFBa0QsRUFBRSxJQUFJO0lBQ3hELG1EQUFtRCxFQUFFLElBQUk7SUFFekQsZ0VBQWdFLEVBQUUsSUFBSTtJQUN0RSwrREFBK0QsRUFBRSxJQUFJO0lBQ3JFLDZFQUE2RSxFQUMzRSxJQUFJO0lBQ04sNkVBQTZFLEVBQzNFLElBQUk7SUFDTixrR0FBa0csRUFDaEcsSUFBSTtJQUNOLHdHQUF3RyxFQUN0RyxJQUFJO0lBQ04sa0RBQWtELEVBQUUsSUFBSTtJQUN4RCxvREFBb0QsRUFBRSxJQUFJO0lBQzFELHFEQUFxRCxFQUFFLElBQUk7SUFFM0QsaUVBQWlFLEVBQUUsSUFBSTtJQUN2RSwrRUFBK0UsRUFDN0UsSUFBSTtJQUNOLGdGQUFnRixFQUM5RSxJQUFJO0lBQ04sMEVBQTBFLEVBQ3hFLElBQUk7SUFDTiwyRUFBMkUsRUFDekUsSUFBSTtJQUVOLGlEQUFpRCxFQUFFLElBQUk7SUFDdkQsZ0RBQWdELEVBQUUsSUFBSTtJQUV0RCxrREFBa0QsRUFBRSxJQUFJO0lBQ3hELGlEQUFpRCxFQUFFLElBQUk7SUFFdkQsNERBQTRELEVBQUUsSUFBSTtJQUNsRSxxREFBcUQsRUFBRSxJQUFJO0lBQzNELDZEQUE2RCxFQUFFLElBQUk7SUFDbkUsNERBQTRELEVBQUUsSUFBSTtJQUNsRSw4REFBOEQsRUFBRSxJQUFJO0lBQ3BFLG9FQUFvRSxFQUFFLElBQUk7SUFDMUUsdUVBQXVFLEVBQUUsSUFBSTtJQUM3RSxrREFBa0QsRUFBRSxJQUFJO0lBQ3hELHFEQUFxRCxFQUFFLElBQUk7SUFDM0QsaURBQWlELEVBQUUsSUFBSTtJQUN2RCwrQ0FBK0MsRUFBRSxJQUFJO0lBQ3JELDBEQUEwRCxFQUFFLElBQUk7SUFDaEUsd0RBQXdELEVBQUUsSUFBSTtJQUU5RCw0REFBNEQsRUFBRSxJQUFJO0lBQ2xFLDJFQUEyRSxFQUN6RSxJQUFJO0lBQ04sNEVBQTRFLEVBQzFFLElBQUk7SUFDTixrRUFBa0UsRUFBRSxJQUFJO0lBQ3hFLDRFQUE0RSxFQUMxRSxJQUFJO0lBQ04sa0hBQWtILEVBQ2hILElBQUk7SUFDTixxREFBcUQsRUFBRSxJQUFJO0lBQzNELDZEQUE2RCxFQUFFLElBQUk7SUFDbkUsNERBQTRELEVBQUUsSUFBSTtJQUVsRSx1REFBdUQsRUFBRSxJQUFJO0lBQzdELG9EQUFvRCxFQUFFLElBQUk7SUFDMUQsZ0RBQWdELEVBQUUsSUFBSTtJQUN0RCx5REFBeUQsRUFBRSxJQUFJO0lBRS9ELDRFQUE0RSxFQUMxRSxJQUFJO0lBQ04sa0VBQWtFLEVBQUUsSUFBSTtJQUN4RSx5RkFBeUYsRUFDdkYsSUFBSTtJQUNOLG1FQUFtRSxFQUFFLElBQUk7SUFDekUsd0VBQXdFLEVBQ3RFLElBQUk7SUFFTiwwRUFBMEUsRUFDeEUsSUFBSTtJQUNOLGdFQUFnRSxFQUFFLElBQUk7SUFDdEUsdUZBQXVGLEVBQ3JGLElBQUk7SUFDTixpRUFBaUUsRUFBRSxJQUFJO0lBQ3ZFLHNFQUFzRSxFQUFFLElBQUk7SUFFNUUsa0NBQWtDLEVBQUUsSUFBSTtJQUN4Qyx1Q0FBdUMsRUFBRSxJQUFJO0lBQzdDLGdDQUFnQyxFQUFFLElBQUk7SUFDdEMscUNBQXFDLEVBQUUsSUFBSTtJQUUzQyxnQ0FBZ0MsRUFBRSxJQUFJO0lBQ3RDLDBDQUEwQyxFQUFFLElBQUk7SUFDaEQseUNBQXlDLEVBQUUsSUFBSTtJQUMvQyxrREFBa0QsRUFBRSxJQUFJO0lBRXhELDBEQUEwRCxFQUFFLElBQUk7SUFDaEUsNkVBQTZFLEVBQzNFLElBQUk7SUFDTiwyRUFBMkUsRUFDekUsSUFBSTtJQUNOLG1FQUFtRSxFQUFFLElBQUk7SUFDekUsMkVBQTJFLEVBQ3pFLElBQUk7SUFDTixnRkFBZ0YsRUFDOUUsSUFBSTtJQUNOLHlFQUF5RSxFQUN2RSxJQUFJO0lBQ04sbUZBQW1GLEVBQ2pGLElBQUk7SUFDTix3RUFBd0UsRUFDdEUsSUFBSTtJQUNOLDBFQUEwRSxFQUN4RSxJQUFJO0lBQ04scUZBQXFGLEVBQ25GLElBQUk7SUFFTiw4QkFBOEIsRUFBRSxJQUFJO0lBQ3BDLDZDQUE2QyxFQUFFLElBQUk7SUFDbkQscUNBQXFDLEVBQUUsSUFBSTtJQUMzQyxzQ0FBc0MsRUFBRSxJQUFJO0lBQzVDLHFDQUFxQyxFQUFFLElBQUk7SUFDM0MsMkNBQTJDLEVBQUUsSUFBSTtJQUNqRCw4QkFBOEIsRUFBRSxJQUFJO0lBQ3BDLG9EQUFvRCxFQUFFLElBQUk7SUFDMUQsaURBQWlELEVBQUUsSUFBSTtJQUN2RCx3Q0FBd0MsRUFBRSxJQUFJO0lBQzlDLGtDQUFrQyxFQUFFLElBQUk7SUFDeEMsMENBQTBDLEVBQUUsSUFBSTtJQUNoRCw2Q0FBNkMsRUFBRSxJQUFJO0lBQ25ELDJCQUEyQixFQUFFLElBQUk7SUFDakMsNkJBQTZCLEVBQUUsSUFBSTtJQUNuQyxnQ0FBZ0MsRUFBRSxJQUFJO0lBQ3RDLHFDQUFxQyxFQUFFLElBQUk7SUFDM0MsOEJBQThCLEVBQUUsSUFBSTtJQUNwQywrQkFBK0IsRUFBRSxJQUFJO0lBQ3JDLGlDQUFpQyxFQUFFLElBQUk7SUFDdkMsMENBQTBDLEVBQUUsSUFBSTtJQUVoRCxxQ0FBcUMsRUFBRSxJQUFJO0lBQzNDLCtDQUErQyxFQUFFLElBQUk7SUFDckQsK0NBQStDLEVBQUUsSUFBSTtJQUNyRCxtQ0FBbUMsRUFBRSxJQUFJO0lBRXpDLG1EQUFtRCxFQUFFLElBQUk7SUFDekQsMERBQTBELEVBQUUsSUFBSTtJQUNoRSx1REFBdUQsRUFBRSxJQUFJO0lBQzdELGdFQUFnRSxFQUFFLElBQUk7SUFDdEUsaUVBQWlFLEVBQUUsSUFBSTtJQUN2RSxxRUFBcUUsRUFBRSxJQUFJO0lBQzNFLHNFQUFzRSxFQUFFLElBQUk7SUFDNUUsb0VBQW9FLEVBQUUsSUFBSTtJQUMxRSxzRUFBc0UsRUFBRSxJQUFJO0lBQzVFLHlFQUF5RSxFQUN2RSxJQUFJO0lBQ04sMkVBQTJFLEVBQ3pFLElBQUk7SUFDTix5RkFBeUYsRUFDdkYsSUFBSTtJQUNOLG9GQUFvRixFQUNsRixJQUFJO0lBQ04scURBQXFELEVBQUUsSUFBSTtJQUMzRCx1REFBdUQsRUFBRSxJQUFJO0lBQzdELHdEQUF3RCxFQUFFLElBQUk7SUFFOUQsMkNBQTJDLEVBQUUsSUFBSTtJQUNqRCwrQ0FBK0MsRUFBRSxJQUFJO0lBQ3JELCtDQUErQyxFQUFFLElBQUk7SUFDckQsK0NBQStDLEVBQUUsSUFBSTtJQUNyRCxtREFBbUQsRUFBRSxJQUFJO0lBQ3pELG1EQUFtRCxFQUFFLElBQUk7SUFFekQsaUZBQWlGLEVBQy9FLElBQUk7SUFDTiwyRUFBMkUsRUFDekUsSUFBSTtJQUNOLDBFQUEwRSxFQUN4RSxJQUFJO0lBRU4sMkNBQTJDLEVBQUUsSUFBSTtJQUNqRCwyQ0FBMkMsRUFBRSxJQUFJO0lBQ2pELGdEQUFnRCxFQUFFLElBQUk7SUFDdEQseURBQXlELEVBQUUsSUFBSTtJQUMvRCxpREFBaUQsRUFBRSxJQUFJO0lBQ3ZELG9EQUFvRCxFQUFFLElBQUk7SUFDMUQscURBQXFELEVBQUUsSUFBSTtJQUUzRCwrQ0FBK0MsRUFBRSxJQUFJO0lBQ3JELGdEQUFnRCxFQUFFLElBQUk7SUFDdEQsOENBQThDLEVBQUUsSUFBSTtJQUNwRCw4REFBOEQsRUFBRSxJQUFJO0lBQ3BFLHlDQUF5QyxFQUFFLElBQUk7SUFDL0MsNkNBQTZDLEVBQUUsSUFBSTtJQUNuRCwyQ0FBMkMsRUFBRSxJQUFJO0lBQ2pELDRDQUE0QyxFQUFFLElBQUk7SUFDbEQsNkRBQTZELEVBQUUsSUFBSTtJQUNuRSw0REFBNEQsRUFBRSxJQUFJO0lBQ2xFLHlEQUF5RCxFQUFFLElBQUk7SUFDL0QsOERBQThELEVBQUUsSUFBSTtJQUNwRSxtREFBbUQsRUFBRSxJQUFJO0lBQ3pELG9EQUFvRCxFQUFFLElBQUk7SUFDMUQsa0RBQWtELEVBQUUsSUFBSTtJQUN4RCxrRUFBa0UsRUFBRSxJQUFJO0lBQ3hFLDZDQUE2QyxFQUFFLElBQUk7SUFDbkQsaURBQWlELEVBQUUsSUFBSTtJQUN2RCwrQ0FBK0MsRUFBRSxJQUFJO0lBQ3JELGdEQUFnRCxFQUFFLElBQUk7SUFDdEQsaUVBQWlFLEVBQUUsSUFBSTtJQUN2RSxnRUFBZ0UsRUFBRSxJQUFJO0lBQ3RFLDZEQUE2RCxFQUFFLElBQUk7SUFDbkUsa0VBQWtFLEVBQUUsSUFBSTtJQUV4RSxnREFBZ0QsRUFBRSxJQUFJO0lBQ3RELGlEQUFpRCxFQUFFLElBQUk7SUFDdkQsK0NBQStDLEVBQUUsSUFBSTtJQUNyRCwrREFBK0QsRUFBRSxJQUFJO0lBQ3JFLDBDQUEwQyxFQUFFLElBQUk7SUFDaEQsOENBQThDLEVBQUUsSUFBSTtJQUNwRCw0Q0FBNEMsRUFBRSxJQUFJO0lBQ2xELDZDQUE2QyxFQUFFLElBQUk7SUFDbkQsOERBQThELEVBQUUsSUFBSTtJQUNwRSw2REFBNkQsRUFBRSxJQUFJO0lBQ25FLDBEQUEwRCxFQUFFLElBQUk7SUFDaEUsK0RBQStELEVBQUUsSUFBSTtJQUNyRSxvREFBb0QsRUFBRSxJQUFJO0lBQzFELHFEQUFxRCxFQUFFLElBQUk7SUFDM0QsbURBQW1ELEVBQUUsSUFBSTtJQUN6RCxtRUFBbUUsRUFBRSxJQUFJO0lBQ3pFLDhDQUE4QyxFQUFFLElBQUk7SUFDcEQsa0RBQWtELEVBQUUsSUFBSTtJQUN4RCxnREFBZ0QsRUFBRSxJQUFJO0lBQ3RELGlEQUFpRCxFQUFFLElBQUk7SUFDdkQsa0VBQWtFLEVBQUUsSUFBSTtJQUN4RSxpRUFBaUUsRUFBRSxJQUFJO0lBQ3ZFLDhEQUE4RCxFQUFFLElBQUk7SUFDcEUsbUVBQW1FLEVBQUUsSUFBSTtJQUV6RSxzREFBc0QsRUFBRSxJQUFJO0lBQzVELHVEQUF1RCxFQUFFLElBQUk7SUFDN0QscURBQXFELEVBQUUsSUFBSTtJQUMzRCxxRUFBcUUsRUFBRSxJQUFJO0lBQzNFLGdEQUFnRCxFQUFFLElBQUk7SUFDdEQsb0RBQW9ELEVBQUUsSUFBSTtJQUMxRCxrREFBa0QsRUFBRSxJQUFJO0lBQ3hELG1EQUFtRCxFQUFFLElBQUk7SUFDekQsb0VBQW9FLEVBQUUsSUFBSTtJQUMxRSxtRUFBbUUsRUFBRSxJQUFJO0lBQ3pFLGdFQUFnRSxFQUFFLElBQUk7SUFDdEUscUVBQXFFLEVBQUUsSUFBSTtJQUMzRSwwREFBMEQsRUFBRSxJQUFJO0lBQ2hFLDJEQUEyRCxFQUFFLElBQUk7SUFDakUseURBQXlELEVBQUUsSUFBSTtJQUMvRCx5RUFBeUUsRUFDdkUsSUFBSTtJQUNOLG9EQUFvRCxFQUFFLElBQUk7SUFDMUQsd0RBQXdELEVBQUUsSUFBSTtJQUM5RCxzREFBc0QsRUFBRSxJQUFJO0lBQzVELHVEQUF1RCxFQUFFLElBQUk7SUFDN0Qsd0VBQXdFLEVBQ3RFLElBQUk7SUFDTix1RUFBdUUsRUFBRSxJQUFJO0lBQzdFLG9FQUFvRSxFQUFFLElBQUk7SUFDMUUseUVBQXlFLEVBQ3ZFLElBQUk7SUFFTiwyQ0FBMkMsRUFBRSxJQUFJO0lBQ2pELHdDQUF3QyxFQUFFLElBQUk7SUFFOUMsMkNBQTJDLEVBQUUsSUFBSTtJQUNqRCwrQ0FBK0MsRUFBRSxJQUFJO0NBQ3RELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIEhhc2hpQ29ycCwgSW5jXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuZXhwb3J0IGNvbnN0IENVU1RPTV9ERUZBVUxUUzogeyBbZnVsbE5hbWU6IHN0cmluZ106IGFueSB9ID0ge1xuICBcImF3cy5zZWN1cml0eV9ncm91cC5pbmdyZXNzLmNpZHJfYmxvY2tzXCI6IG51bGwsXG4gIFwiYXdzLnNlY3VyaXR5X2dyb3VwLmluZ3Jlc3MuZGVzY3JpcHRpb25cIjogbnVsbCxcbiAgXCJhd3Muc2VjdXJpdHlfZ3JvdXAuaW5ncmVzcy5mcm9tX3BvcnRcIjogbnVsbCxcbiAgXCJhd3Muc2VjdXJpdHlfZ3JvdXAuaW5ncmVzcy5pcHY2X2NpZHJfYmxvY2tzXCI6IG51bGwsXG4gIFwiYXdzLnNlY3VyaXR5X2dyb3VwLmluZ3Jlc3MucHJlZml4X2xpc3RfaWRzXCI6IG51bGwsXG4gIFwiYXdzLnNlY3VyaXR5X2dyb3VwLmluZ3Jlc3MucHJvdG9jb2xcIjogbnVsbCxcbiAgXCJhd3Muc2VjdXJpdHlfZ3JvdXAuaW5ncmVzcy5zZWN1cml0eV9ncm91cHNcIjogbnVsbCxcbiAgXCJhd3Muc2VjdXJpdHlfZ3JvdXAuaW5ncmVzcy5zZWxmXCI6IG51bGwsXG4gIFwiYXdzLnNlY3VyaXR5X2dyb3VwLmluZ3Jlc3MudG9fcG9ydFwiOiBudWxsLFxuICBcImF3cy5zZWN1cml0eV9ncm91cC5lZ3Jlc3MuY2lkcl9ibG9ja3NcIjogbnVsbCxcbiAgXCJhd3Muc2VjdXJpdHlfZ3JvdXAuZWdyZXNzLmRlc2NyaXB0aW9uXCI6IG51bGwsXG4gIFwiYXdzLnNlY3VyaXR5X2dyb3VwLmVncmVzcy5mcm9tX3BvcnRcIjogbnVsbCxcbiAgXCJhd3Muc2VjdXJpdHlfZ3JvdXAuZWdyZXNzLmlwdjZfY2lkcl9ibG9ja3NcIjogbnVsbCxcbiAgXCJhd3Muc2VjdXJpdHlfZ3JvdXAuZWdyZXNzLnByZWZpeF9saXN0X2lkc1wiOiBudWxsLFxuICBcImF3cy5zZWN1cml0eV9ncm91cC5lZ3Jlc3MucHJvdG9jb2xcIjogbnVsbCxcbiAgXCJhd3Muc2VjdXJpdHlfZ3JvdXAuZWdyZXNzLnNlY3VyaXR5X2dyb3Vwc1wiOiBudWxsLFxuICBcImF3cy5zZWN1cml0eV9ncm91cC5lZ3Jlc3Muc2VsZlwiOiBudWxsLFxuICBcImF3cy5zZWN1cml0eV9ncm91cC5lZ3Jlc3MudG9fcG9ydFwiOiBudWxsLFxuXG4gIFwiYXdzLmRlZmF1bHRfcm91dGVfdGFibGUucm91dGUuY2lkcl9ibG9ja1wiOiBudWxsLFxuICBcImF3cy5kZWZhdWx0X3JvdXRlX3RhYmxlLnJvdXRlLmlwdjZfY2lkcl9ibG9ja1wiOiBudWxsLFxuICBcImF3cy5kZWZhdWx0X3JvdXRlX3RhYmxlLnJvdXRlLmVncmVzc19vbmx5X2dhdGV3YXlfaWRcIjogbnVsbCxcbiAgXCJhd3MuZGVmYXVsdF9yb3V0ZV90YWJsZS5yb3V0ZS5nYXRld2F5X2lkXCI6IG51bGwsXG4gIFwiYXdzLmRlZmF1bHRfcm91dGVfdGFibGUucm91dGUuaW5zdGFuY2VfaWRcIjogbnVsbCxcbiAgXCJhd3MuZGVmYXVsdF9yb3V0ZV90YWJsZS5yb3V0ZS5uYXRfZ2F0ZXdheV9pZFwiOiBudWxsLFxuICBcImF3cy5kZWZhdWx0X3JvdXRlX3RhYmxlLnJvdXRlLm5ldHdvcmtfaW50ZXJmYWNlX2lkXCI6IG51bGwsXG4gIFwiYXdzLmRlZmF1bHRfcm91dGVfdGFibGUucm91dGUudHJhbnNpdF9nYXRld2F5X2lkXCI6IG51bGwsXG4gIFwiYXdzLmRlZmF1bHRfcm91dGVfdGFibGUucm91dGUudnBjX2VuZHBvaW50X2lkXCI6IG51bGwsXG4gIFwiYXdzLmRlZmF1bHRfcm91dGVfdGFibGUucm91dGUudnBjX3BlZXJpbmdfY29ubmVjdGlvbl9pZFwiOiBudWxsLFxuICBcImF3cy5kZWZhdWx0X3JvdXRlX3RhYmxlLnJvdXRlLmRlc3RpbmF0aW9uX3ByZWZpeF9saXN0X2lkXCI6IG51bGwsXG4gIFwiYXdzLmRlZmF1bHRfcm91dGVfdGFibGUucm91dGUuY29yZV9uZXR3b3JrX2FyblwiOiBudWxsLFxuXG4gIFwiYXdzLmVtcl9jbHVzdGVyLnN0ZXAuYWN0aW9uX29uX2ZhaWx1cmVcIjogbnVsbCxcbiAgXCJhd3MuZW1yX2NsdXN0ZXIuc3RlcC5oYWRvb3BfamFyX3N0ZXBcIjogbnVsbCxcbiAgXCJhd3MuZW1yX2NsdXN0ZXIuc3RlcC5uYW1lXCI6IG51bGwsXG4gIFwiYXdzLmVtcl9jbHVzdGVyLnN0ZXAuaGFkb29wX2phcl9zdGVwLmFyZ3NcIjogbnVsbCxcbiAgXCJhd3MuZW1yX2NsdXN0ZXIuc3RlcC5oYWRvb3BfamFyX3N0ZXAuamFyXCI6IG51bGwsXG4gIFwiYXdzLmVtcl9jbHVzdGVyLnN0ZXAuaGFkb29wX2phcl9zdGVwLm1haW5fY2xhc3NcIjogbnVsbCxcbiAgXCJhd3MuZW1yX2NsdXN0ZXIuc3RlcC5oYWRvb3BfamFyX3N0ZXAucHJvcGVydGllc1wiOiBudWxsLFxuXG4gIFwiYXdzLm5ldHdvcmtfYWNsLmluZ3Jlc3MuZnJvbV9wb3J0XCI6IG51bGwsXG4gIFwiYXdzLm5ldHdvcmtfYWNsLmluZ3Jlc3MudG9fcG9ydFwiOiBudWxsLFxuICBcImF3cy5uZXR3b3JrX2FjbC5pbmdyZXNzLnJ1bGVfbm9cIjogbnVsbCxcbiAgXCJhd3MubmV0d29ya19hY2wuaW5ncmVzcy5hY3Rpb25cIjogbnVsbCxcbiAgXCJhd3MubmV0d29ya19hY2wuaW5ncmVzcy5wcm90b2NvbFwiOiBudWxsLFxuICBcImF3cy5uZXR3b3JrX2FjbC5pbmdyZXNzLmNpZHJfYmxvY2tcIjogbnVsbCxcbiAgXCJhd3MubmV0d29ya19hY2wuaW5ncmVzcy5pcHY2X2NpZHJfYmxvY2tcIjogbnVsbCxcbiAgXCJhd3MubmV0d29ya19hY2wuaW5ncmVzcy5pY21wX3R5cGVcIjogbnVsbCxcbiAgXCJhd3MubmV0d29ya19hY2wuaW5ncmVzcy5pY21wX2NvZGVcIjogbnVsbCxcbiAgXCJhd3MubmV0d29ya19hY2wuZWdyZXNzLmZyb21fcG9ydFwiOiBudWxsLFxuICBcImF3cy5uZXR3b3JrX2FjbC5lZ3Jlc3MudG9fcG9ydFwiOiBudWxsLFxuICBcImF3cy5uZXR3b3JrX2FjbC5lZ3Jlc3MucnVsZV9ub1wiOiBudWxsLFxuICBcImF3cy5uZXR3b3JrX2FjbC5lZ3Jlc3MuYWN0aW9uXCI6IG51bGwsXG4gIFwiYXdzLm5ldHdvcmtfYWNsLmVncmVzcy5wcm90b2NvbFwiOiBudWxsLFxuICBcImF3cy5uZXR3b3JrX2FjbC5lZ3Jlc3MuY2lkcl9ibG9ja1wiOiBudWxsLFxuICBcImF3cy5uZXR3b3JrX2FjbC5lZ3Jlc3MuaXB2Nl9jaWRyX2Jsb2NrXCI6IG51bGwsXG4gIFwiYXdzLm5ldHdvcmtfYWNsLmVncmVzcy5pY21wX3R5cGVcIjogbnVsbCxcbiAgXCJhd3MubmV0d29ya19hY2wuZWdyZXNzLmljbXBfY29kZVwiOiBudWxsLFxuXG4gIFwiYXdzLnJvdXRlX3RhYmxlLnJvdXRlLmNpZHJfYmxvY2tcIjogbnVsbCxcbiAgXCJhd3Mucm91dGVfdGFibGUucm91dGUuaXB2Nl9jaWRyX2Jsb2NrXCI6IG51bGwsXG4gIFwiYXdzLnJvdXRlX3RhYmxlLnJvdXRlLmVncmVzc19vbmx5X2dhdGV3YXlfaWRcIjogbnVsbCxcbiAgXCJhd3Mucm91dGVfdGFibGUucm91dGUuZ2F0ZXdheV9pZFwiOiBudWxsLFxuICBcImF3cy5yb3V0ZV90YWJsZS5yb3V0ZS5pbnN0YW5jZV9pZFwiOiBudWxsLFxuICBcImF3cy5yb3V0ZV90YWJsZS5yb3V0ZS5uYXRfZ2F0ZXdheV9pZFwiOiBudWxsLFxuICBcImF3cy5yb3V0ZV90YWJsZS5yb3V0ZS5sb2NhbF9nYXRld2F5X2lkXCI6IG51bGwsXG4gIFwiYXdzLnJvdXRlX3RhYmxlLnJvdXRlLm5ldHdvcmtfaW50ZXJmYWNlX2lkXCI6IG51bGwsXG4gIFwiYXdzLnJvdXRlX3RhYmxlLnJvdXRlLnRyYW5zaXRfZ2F0ZXdheV9pZFwiOiBudWxsLFxuICBcImF3cy5yb3V0ZV90YWJsZS5yb3V0ZS52cGNfZW5kcG9pbnRfaWRcIjogbnVsbCxcbiAgXCJhd3Mucm91dGVfdGFibGUucm91dGUudnBjX3BlZXJpbmdfY29ubmVjdGlvbl9pZFwiOiBudWxsLFxuICBcImF3cy5yb3V0ZV90YWJsZS5yb3V0ZS5kZXN0aW5hdGlvbl9wcmVmaXhfbGlzdF9pZFwiOiBudWxsLFxuICBcImF3cy5yb3V0ZV90YWJsZS5yb3V0ZS5jYXJyaWVyX2dhdGV3YXlfaWRcIjogbnVsbCxcbiAgXCJhd3Mucm91dGVfdGFibGUucm91dGUuY29yZV9uZXR3b3JrX2FyblwiOiBudWxsLFxuICBcImF3cy5yb3V0ZV90YWJsZS5yb3V0ZS5vZGJfbmV0d29ya19hcm5cIjogbnVsbCxcblxuICBcImF3cy5kZWZhdWx0X3NlY3VyaXR5X2dyb3VwLmluZ3Jlc3MuY2lkcl9ibG9ja3NcIjogbnVsbCxcbiAgXCJhd3MuZGVmYXVsdF9zZWN1cml0eV9ncm91cC5pbmdyZXNzLmRlc2NyaXB0aW9uXCI6IG51bGwsXG4gIFwiYXdzLmRlZmF1bHRfc2VjdXJpdHlfZ3JvdXAuaW5ncmVzcy5mcm9tX3BvcnRcIjogbnVsbCxcbiAgXCJhd3MuZGVmYXVsdF9zZWN1cml0eV9ncm91cC5pbmdyZXNzLmlwdjZfY2lkcl9ibG9ja3NcIjogbnVsbCxcbiAgXCJhd3MuZGVmYXVsdF9zZWN1cml0eV9ncm91cC5pbmdyZXNzLnByZWZpeF9saXN0X2lkc1wiOiBudWxsLFxuICBcImF3cy5kZWZhdWx0X3NlY3VyaXR5X2dyb3VwLmluZ3Jlc3MucHJvdG9jb2xcIjogbnVsbCxcbiAgXCJhd3MuZGVmYXVsdF9zZWN1cml0eV9ncm91cC5pbmdyZXNzLnNlY3VyaXR5X2dyb3Vwc1wiOiBudWxsLFxuICBcImF3cy5kZWZhdWx0X3NlY3VyaXR5X2dyb3VwLmluZ3Jlc3Muc2VsZlwiOiBudWxsLFxuICBcImF3cy5kZWZhdWx0X3NlY3VyaXR5X2dyb3VwLmluZ3Jlc3MudG9fcG9ydFwiOiBudWxsLFxuICBcImF3cy5kZWZhdWx0X3NlY3VyaXR5X2dyb3VwLmVncmVzcy5jaWRyX2Jsb2Nrc1wiOiBudWxsLFxuICBcImF3cy5kZWZhdWx0X3NlY3VyaXR5X2dyb3VwLmVncmVzcy5kZXNjcmlwdGlvblwiOiBudWxsLFxuICBcImF3cy5kZWZhdWx0X3NlY3VyaXR5X2dyb3VwLmVncmVzcy5mcm9tX3BvcnRcIjogbnVsbCxcbiAgXCJhd3MuZGVmYXVsdF9zZWN1cml0eV9ncm91cC5lZ3Jlc3MuaXB2Nl9jaWRyX2Jsb2Nrc1wiOiBudWxsLFxuICBcImF3cy5kZWZhdWx0X3NlY3VyaXR5X2dyb3VwLmVncmVzcy5wcmVmaXhfbGlzdF9pZHNcIjogbnVsbCxcbiAgXCJhd3MuZGVmYXVsdF9zZWN1cml0eV9ncm91cC5lZ3Jlc3MucHJvdG9jb2xcIjogbnVsbCxcbiAgXCJhd3MuZGVmYXVsdF9zZWN1cml0eV9ncm91cC5lZ3Jlc3Muc2VjdXJpdHlfZ3JvdXBzXCI6IG51bGwsXG4gIFwiYXdzLmRlZmF1bHRfc2VjdXJpdHlfZ3JvdXAuZWdyZXNzLnNlbGZcIjogbnVsbCxcbiAgXCJhd3MuZGVmYXVsdF9zZWN1cml0eV9ncm91cC5lZ3Jlc3MudG9fcG9ydFwiOiBudWxsLFxuXG4gIFwiYXp1cmVhZC5hcHBsaWNhdGlvbi5hcHBfcm9sZS5pZFwiOiBudWxsLFxuICBcImF6dXJlYWQuYXBwbGljYXRpb24uYXBwX3JvbGUuYWxsb3dlZF9tZW1iZXJfdHlwZXNcIjogbnVsbCxcbiAgXCJhenVyZWFkLmFwcGxpY2F0aW9uLmFwcF9yb2xlLmRlc2NyaXB0aW9uXCI6IG51bGwsXG4gIFwiYXp1cmVhZC5hcHBsaWNhdGlvbi5hcHBfcm9sZS5kaXNwbGF5X25hbWVcIjogbnVsbCxcbiAgXCJhenVyZWFkLmFwcGxpY2F0aW9uLmFwcF9yb2xlLmlzX2VuYWJsZWRcIjogbnVsbCxcbiAgXCJhenVyZWFkLmFwcGxpY2F0aW9uLmFwcF9yb2xlLnZhbHVlXCI6IG51bGwsXG4gIFwiYXp1cmVhZC5hcHBsaWNhdGlvbi5vYXV0aDJfcGVybWlzc2lvbnMuaWRcIjogbnVsbCxcbiAgXCJhenVyZWFkLmFwcGxpY2F0aW9uLm9hdXRoMl9wZXJtaXNzaW9ucy5hZG1pbl9jb25zZW50X2Rlc2NyaXB0aW9uXCI6IG51bGwsXG4gIFwiYXp1cmVhZC5hcHBsaWNhdGlvbi5vYXV0aDJfcGVybWlzc2lvbnMuYWRtaW5fY29uc2VudF9kaXNwbGF5X25hbWVcIjogbnVsbCxcbiAgXCJhenVyZWFkLmFwcGxpY2F0aW9uLm9hdXRoMl9wZXJtaXNzaW9ucy52YWx1ZVwiOiBudWxsLFxuICBcImF6dXJlYWQuYXBwbGljYXRpb24ub2F1dGgyX3Blcm1pc3Npb25zLnR5cGVcIjogbnVsbCxcbiAgXCJhenVyZWFkLmFwcGxpY2F0aW9uLm9hdXRoMl9wZXJtaXNzaW9ucy5pc19lbmFibGVkXCI6IG51bGwsXG4gIFwiYXp1cmVhZC5hcHBsaWNhdGlvbi5vYXV0aDJfcGVybWlzc2lvbnMudXNlcl9jb25zZW50X2Rlc2NyaXB0aW9uXCI6IG51bGwsXG4gIFwiYXp1cmVhZC5hcHBsaWNhdGlvbi5vYXV0aDJfcGVybWlzc2lvbnMudXNlcl9jb25zZW50X2Rpc3BsYXlfbmFtZVwiOiBudWxsLFxuXG4gIFwiYXp1cmVzdGFjay5yb3V0ZV90YWJsZS5yb3V0ZS5uYW1lXCI6IG51bGwsXG4gIFwiYXp1cmVzdGFjay5yb3V0ZV90YWJsZS5yb3V0ZS5hZGRyZXNzX3ByZWZpeFwiOiBudWxsLFxuICBcImF6dXJlc3RhY2sucm91dGVfdGFibGUucm91dGUubmV4dF9ob3BfdHlwZVwiOiBudWxsLFxuICBcImF6dXJlc3RhY2sucm91dGVfdGFibGUucm91dGUubmV4dF9ob3BfaW5faXBfYWRkcmVzc1wiOiBudWxsLFxuXG4gIFwiYXp1cmVzdGFjay5uZXR3b3JrX3NlY3VyaXR5X2dyb3VwLnNlY3VyaXR5X3J1bGUubmFtZVwiOiBudWxsLFxuICBcImF6dXJlc3RhY2submV0d29ya19zZWN1cml0eV9ncm91cC5zZWN1cml0eV9ydWxlLmRlc2NyaXB0aW9uXCI6IG51bGwsXG4gIFwiYXp1cmVzdGFjay5uZXR3b3JrX3NlY3VyaXR5X2dyb3VwLnNlY3VyaXR5X3J1bGUucHJvdG9jb2xcIjogbnVsbCxcbiAgXCJhenVyZXN0YWNrLm5ldHdvcmtfc2VjdXJpdHlfZ3JvdXAuc2VjdXJpdHlfcnVsZS5zb3VyY2VfcG9ydF9yYW5nZVwiOiBudWxsLFxuICBcImF6dXJlc3RhY2submV0d29ya19zZWN1cml0eV9ncm91cC5zZWN1cml0eV9ydWxlLnNvdXJjZV9wb3J0X3Jhbmdlc1wiOiBudWxsLFxuICBcImF6dXJlc3RhY2submV0d29ya19zZWN1cml0eV9ncm91cC5zZWN1cml0eV9ydWxlLmRlc3RpbmF0aW9uX3BvcnRfcmFuZ2VcIjpcbiAgICBudWxsLFxuICBcImF6dXJlc3RhY2submV0d29ya19zZWN1cml0eV9ncm91cC5zZWN1cml0eV9ydWxlLmRlc3RpbmF0aW9uX3BvcnRfcmFuZ2VzXCI6XG4gICAgbnVsbCxcbiAgXCJhenVyZXN0YWNrLm5ldHdvcmtfc2VjdXJpdHlfZ3JvdXAuc2VjdXJpdHlfcnVsZS5zb3VyY2VfYWRkcmVzc19wcmVmaXhcIjogbnVsbCxcbiAgXCJhenVyZXN0YWNrLm5ldHdvcmtfc2VjdXJpdHlfZ3JvdXAuc2VjdXJpdHlfcnVsZS5zb3VyY2VfYWRkcmVzc19wcmVmaXhlc1wiOlxuICAgIG51bGwsXG4gIFwiYXp1cmVzdGFjay5uZXR3b3JrX3NlY3VyaXR5X2dyb3VwLnNlY3VyaXR5X3J1bGUuZGVzdGluYXRpb25fYWRkcmVzc19wcmVmaXhcIjpcbiAgICBudWxsLFxuICBcImF6dXJlc3RhY2submV0d29ya19zZWN1cml0eV9ncm91cC5zZWN1cml0eV9ydWxlLmRlc3RpbmF0aW9uX2FkZHJlc3NfcHJlZml4ZXNcIjpcbiAgICBudWxsLFxuICBcImF6dXJlc3RhY2submV0d29ya19zZWN1cml0eV9ncm91cC5zZWN1cml0eV9ydWxlLmRlc3RpbmF0aW9uX2FwcGxpY2F0aW9uX3NlY3VyaXR5X2dyb3VwX2lkc1wiOlxuICAgIG51bGwsXG4gIFwiYXp1cmVzdGFjay5uZXR3b3JrX3NlY3VyaXR5X2dyb3VwLnNlY3VyaXR5X3J1bGUuc291cmNlX2FwcGxpY2F0aW9uX3NlY3VyaXR5X2dyb3VwX2lkc1wiOlxuICAgIG51bGwsXG4gIFwiYXp1cmVzdGFjay5uZXR3b3JrX3NlY3VyaXR5X2dyb3VwLnNlY3VyaXR5X3J1bGUuYWNjZXNzXCI6IG51bGwsXG4gIFwiYXp1cmVzdGFjay5uZXR3b3JrX3NlY3VyaXR5X2dyb3VwLnNlY3VyaXR5X3J1bGUucHJpb3JpdHlcIjogbnVsbCxcbiAgXCJhenVyZXN0YWNrLm5ldHdvcmtfc2VjdXJpdHlfZ3JvdXAuc2VjdXJpdHlfcnVsZS5kaXJlY3Rpb25cIjogbnVsbCxcblxuICBcImF6dXJlc3RhY2sudmlydHVhbF9uZXR3b3JrLnN1Ym5ldC5uYW1lXCI6IG51bGwsXG4gIFwiYXp1cmVzdGFjay52aXJ0dWFsX25ldHdvcmsuc3VibmV0LmFkZHJlc3NfcHJlZml4XCI6IG51bGwsXG4gIFwiYXp1cmVzdGFjay52aXJ0dWFsX25ldHdvcmsuc3VibmV0LnNlY3VyaXR5X2dyb3VwXCI6IG51bGwsXG4gIFwiYXp1cmVzdGFjay52aXJ0dWFsX25ldHdvcmsuc3VibmV0LmlkXCI6IG51bGwsXG5cbiAgXCJhenVyZXN0YWNrLmtleV92YXVsdC5hY2Nlc3NfcG9saWN5LnRlbmFudF9pZFwiOiBudWxsLFxuICBcImF6dXJlc3RhY2sua2V5X3ZhdWx0LmFjY2Vzc19wb2xpY3kub2JqZWN0X2lkXCI6IG51bGwsXG4gIFwiYXp1cmVzdGFjay5rZXlfdmF1bHQuYWNjZXNzX3BvbGljeS5hcHBsaWNhdGlvbl9pZFwiOiBudWxsLFxuICBcImF6dXJlc3RhY2sua2V5X3ZhdWx0LmFjY2Vzc19wb2xpY3kuY2VydGlmaWNhdGVfcGVybWlzc2lvbnNcIjogbnVsbCxcbiAgXCJhenVyZXN0YWNrLmtleV92YXVsdC5hY2Nlc3NfcG9saWN5LmtleV9wZXJtaXNzaW9uc1wiOiBudWxsLFxuICBcImF6dXJlc3RhY2sua2V5X3ZhdWx0LmFjY2Vzc19wb2xpY3kuc2VjcmV0X3Blcm1pc3Npb25zXCI6IG51bGwsXG4gIFwiYXp1cmVzdGFjay5rZXlfdmF1bHQuYWNjZXNzX3BvbGljeS5zdG9yYWdlX3Blcm1pc3Npb25zXCI6IG51bGwsXG5cbiAgXCJ2YXVsdC5hdXRoX2JhY2tlbmQudHVuZS5kZWZhdWx0X2xlYXNlX3R0bFwiOiBudWxsLFxuICBcInZhdWx0LmF1dGhfYmFja2VuZC50dW5lLm1heF9sZWFzZV90dGxcIjogbnVsbCxcbiAgXCJ2YXVsdC5hdXRoX2JhY2tlbmQudHVuZS5hdWRpdF9ub25faG1hY19yZXF1ZXN0X2tleXNcIjogbnVsbCxcbiAgXCJ2YXVsdC5hdXRoX2JhY2tlbmQudHVuZS5hdWRpdF9ub25faG1hY19yZXNwb25zZV9rZXlzXCI6IG51bGwsXG4gIFwidmF1bHQuYXV0aF9iYWNrZW5kLnR1bmUubGlzdGluZ192aXNpYmlsaXR5XCI6IG51bGwsXG4gIFwidmF1bHQuYXV0aF9iYWNrZW5kLnR1bmUucGFzc3Rocm91Z2hfcmVxdWVzdF9oZWFkZXJzXCI6IG51bGwsXG4gIFwidmF1bHQuYXV0aF9iYWNrZW5kLnR1bmUuYWxsb3dlZF9yZXNwb25zZV9oZWFkZXJzXCI6IG51bGwsXG4gIFwidmF1bHQuYXV0aF9iYWNrZW5kLnR1bmUudG9rZW5fdHlwZVwiOiBudWxsLFxuXG4gIFwidmF1bHQuZ2l0aHViX2F1dGhfYmFja2VuZC50dW5lLmRlZmF1bHRfbGVhc2VfdHRsXCI6IG51bGwsXG4gIFwidmF1bHQuZ2l0aHViX2F1dGhfYmFja2VuZC50dW5lLm1heF9sZWFzZV90dGxcIjogbnVsbCxcbiAgXCJ2YXVsdC5naXRodWJfYXV0aF9iYWNrZW5kLnR1bmUuYXVkaXRfbm9uX2htYWNfcmVxdWVzdF9rZXlzXCI6IG51bGwsXG4gIFwidmF1bHQuZ2l0aHViX2F1dGhfYmFja2VuZC50dW5lLmF1ZGl0X25vbl9obWFjX3Jlc3BvbnNlX2tleXNcIjogbnVsbCxcbiAgXCJ2YXVsdC5naXRodWJfYXV0aF9iYWNrZW5kLnR1bmUubGlzdGluZ192aXNpYmlsaXR5XCI6IG51bGwsXG4gIFwidmF1bHQuZ2l0aHViX2F1dGhfYmFja2VuZC50dW5lLnBhc3N0aHJvdWdoX3JlcXVlc3RfaGVhZGVyc1wiOiBudWxsLFxuICBcInZhdWx0LmdpdGh1Yl9hdXRoX2JhY2tlbmQudHVuZS5hbGxvd2VkX3Jlc3BvbnNlX2hlYWRlcnNcIjogbnVsbCxcbiAgXCJ2YXVsdC5naXRodWJfYXV0aF9iYWNrZW5kLnR1bmUudG9rZW5fdHlwZVwiOiBudWxsLFxuXG4gIFwidmF1bHQuand0X2F1dGhfYmFja2VuZC50dW5lLmRlZmF1bHRfbGVhc2VfdHRsXCI6IG51bGwsXG4gIFwidmF1bHQuand0X2F1dGhfYmFja2VuZC50dW5lLm1heF9sZWFzZV90dGxcIjogbnVsbCxcbiAgXCJ2YXVsdC5qd3RfYXV0aF9iYWNrZW5kLnR1bmUuYXVkaXRfbm9uX2htYWNfcmVxdWVzdF9rZXlzXCI6IG51bGwsXG4gIFwidmF1bHQuand0X2F1dGhfYmFja2VuZC50dW5lLmF1ZGl0X25vbl9obWFjX3Jlc3BvbnNlX2tleXNcIjogbnVsbCxcbiAgXCJ2YXVsdC5qd3RfYXV0aF9iYWNrZW5kLnR1bmUubGlzdGluZ192aXNpYmlsaXR5XCI6IG51bGwsXG4gIFwidmF1bHQuand0X2F1dGhfYmFja2VuZC50dW5lLnBhc3N0aHJvdWdoX3JlcXVlc3RfaGVhZGVyc1wiOiBudWxsLFxuICBcInZhdWx0Lmp3dF9hdXRoX2JhY2tlbmQudHVuZS5hbGxvd2VkX3Jlc3BvbnNlX2hlYWRlcnNcIjogbnVsbCxcbiAgXCJ2YXVsdC5qd3RfYXV0aF9iYWNrZW5kLnR1bmUudG9rZW5fdHlwZVwiOiBudWxsLFxuXG4gIFwidmF1bHQub2t0YV9hdXRoX2JhY2tlbmQuZ3JvdXAuZ3JvdXBfbmFtZVwiOiBudWxsLFxuICBcInZhdWx0Lm9rdGFfYXV0aF9iYWNrZW5kLmdyb3VwLnBvbGljaWVzXCI6IG51bGwsXG4gIFwidmF1bHQub2t0YV9hdXRoX2JhY2tlbmQudXNlci51c2VybmFtZVwiOiBudWxsLFxuICBcInZhdWx0Lm9rdGFfYXV0aF9iYWNrZW5kLnVzZXIuZ3JvdXBzXCI6IG51bGwsXG4gIFwidmF1bHQub2t0YV9hdXRoX2JhY2tlbmQudXNlci5wb2xpY2llc1wiOiBudWxsLFxuXG4gIFwiZ29vZ2xlLmNvbXB1dGVfaW5zdGFuY2UuZ3Vlc3RfYWNjZWxlcmF0b3IuY291bnRcIjogbnVsbCxcbiAgXCJnb29nbGUuY29tcHV0ZV9pbnN0YW5jZS5ndWVzdF9hY2NlbGVyYXRvci50eXBlXCI6IG51bGwsXG5cbiAgXCJnb29nbGUuY29tcHV0ZV9pbnN0YW5jZV9mcm9tX3RlbXBsYXRlLmF0dGFjaGVkX2Rpc2suc291cmNlXCI6IG51bGwsXG4gIFwiZ29vZ2xlLmNvbXB1dGVfaW5zdGFuY2VfZnJvbV90ZW1wbGF0ZS5hdHRhY2hlZF9kaXNrLmRldmljZV9uYW1lXCI6IG51bGwsXG4gIFwiZ29vZ2xlLmNvbXB1dGVfaW5zdGFuY2VfZnJvbV90ZW1wbGF0ZS5hdHRhY2hlZF9kaXNrLm1vZGVcIjogbnVsbCxcbiAgXCJnb29nbGUuY29tcHV0ZV9pbnN0YW5jZV9mcm9tX3RlbXBsYXRlLmF0dGFjaGVkX2Rpc2suZGlza19lbmNyeXB0aW9uX2tleV9yYXdcIjpcbiAgICBudWxsLFxuICBcImdvb2dsZS5jb21wdXRlX2luc3RhbmNlX2Zyb21fdGVtcGxhdGUuYXR0YWNoZWRfZGlzay5rbXNfa2V5X3NlbGZfbGlua1wiOiBudWxsLFxuICBcImdvb2dsZS5jb21wdXRlX2luc3RhbmNlX2Zyb21fdGVtcGxhdGUuZ3Vlc3RfYWNjZWxlcmF0b3IuY291bnRcIjogbnVsbCxcbiAgXCJnb29nbGUuY29tcHV0ZV9pbnN0YW5jZV9mcm9tX3RlbXBsYXRlLmd1ZXN0X2FjY2VsZXJhdG9yLnR5cGVcIjogbnVsbCxcbiAgXCJnb29nbGUuY29tcHV0ZV9pbnN0YW5jZV9mcm9tX3RlbXBsYXRlLnNlcnZpY2VfYWNjb3VudC5lbWFpbFwiOiBudWxsLFxuICBcImdvb2dsZS5jb21wdXRlX2luc3RhbmNlX2Zyb21fdGVtcGxhdGUuc2VydmljZV9hY2NvdW50LnNjb3Blc1wiOiBudWxsLFxuICBcImdvb2dsZS5jb21wdXRlX2luc3RhbmNlX2Zyb21fdGVtcGxhdGUuc2NyYXRjaF9kaXNrLmludGVyZmFjZVwiOiBudWxsLFxuICBcImdvb2dsZS5jb21wdXRlX2luc3RhbmNlX2Zyb21fdGVtcGxhdGUubmV0d29ya19pbnRlcmZhY2UuYWxpYXNfaXBfcmFuZ2UuaXBfY2lkcl9yYW5nZVwiOlxuICAgIG51bGwsXG4gIFwiZ29vZ2xlLmNvbXB1dGVfaW5zdGFuY2VfZnJvbV90ZW1wbGF0ZS5uZXR3b3JrX2ludGVyZmFjZS5hbGlhc19pcF9yYW5nZS5zdWJuZXR3b3JrX3JhbmdlX25hbWVcIjpcbiAgICBudWxsLFxuICBcImdvb2dsZS5jb21wdXRlX2luc3RhbmNlX2Zyb21fdGVtcGxhdGUubmV0d29ya19pbnRlcmZhY2UuYWNjZXNzX2NvbmZpZy5uYXRfaXBcIjpcbiAgICBudWxsLFxuICBcImdvb2dsZS5jb21wdXRlX2luc3RhbmNlX2Zyb21fdGVtcGxhdGUubmV0d29ya19pbnRlcmZhY2UuYWNjZXNzX2NvbmZpZy5wdWJsaWNfcHRyX2RvbWFpbl9uYW1lXCI6XG4gICAgbnVsbCxcbiAgXCJnb29nbGUuY29tcHV0ZV9pbnN0YW5jZV9mcm9tX3RlbXBsYXRlLm5ldHdvcmtfaW50ZXJmYWNlLmFjY2Vzc19jb25maWcubmV0d29ya190aWVyXCI6XG4gICAgbnVsbCxcblxuICBcImdvb2dsZS5jb21wdXRlX3N1Ym5ldHdvcmsuc2Vjb25kYXJ5X2lwX3JhbmdlLnJhbmdlX25hbWVcIjogbnVsbCxcbiAgXCJnb29nbGUuY29tcHV0ZV9zdWJuZXR3b3JrLnNlY29uZGFyeV9pcF9yYW5nZS5pcF9jaWRyX3JhbmdlXCI6IG51bGwsXG5cbiAgXCJnb29nbGUuY29udGFpbmVyX2NsdXN0ZXIubm9kZV9jb25maWcuZ3Vlc3RfYWNjZWxlcmF0b3IuY291bnRcIjogbnVsbCxcbiAgXCJnb29nbGUuY29udGFpbmVyX2NsdXN0ZXIubm9kZV9jb25maWcuZ3Vlc3RfYWNjZWxlcmF0b3IudHlwZVwiOiBudWxsLFxuICBcImdvb2dsZS5jb250YWluZXJfY2x1c3Rlci5ub2RlX2NvbmZpZy5ndWVzdF9hY2NlbGVyYXRvci5ncHVfcGFydGl0aW9uX3NpemVcIjpcbiAgICBudWxsLFxuICBcImdvb2dsZS5jb250YWluZXJfY2x1c3Rlci5ub2RlX2NvbmZpZy5ndWVzdF9hY2NlbGVyYXRvci5ncHVfc2hhcmluZ19jb25maWdcIjpcbiAgICBudWxsLFxuICBcImdvb2dsZS5jb250YWluZXJfY2x1c3Rlci5ub2RlX2NvbmZpZy5ndWVzdF9hY2NlbGVyYXRvci5ncHVfc2hhcmluZ19jb25maWcuZ3B1X3NoYXJpbmdfc3RyYXRlZ3lcIjpcbiAgICBudWxsLFxuICBcImdvb2dsZS5jb250YWluZXJfY2x1c3Rlci5ub2RlX2NvbmZpZy5ndWVzdF9hY2NlbGVyYXRvci5ncHVfc2hhcmluZ19jb25maWcubWF4X3NoYXJlZF9jbGllbnRzX3Blcl9ncHVcIjpcbiAgICBudWxsLFxuICBcImdvb2dsZS5jb250YWluZXJfY2x1c3Rlci5ub2RlX2NvbmZpZy50YWludC5rZXlcIjogbnVsbCxcbiAgXCJnb29nbGUuY29udGFpbmVyX2NsdXN0ZXIubm9kZV9jb25maWcudGFpbnQudmFsdWVcIjogbnVsbCxcbiAgXCJnb29nbGUuY29udGFpbmVyX2NsdXN0ZXIubm9kZV9jb25maWcudGFpbnQuZWZmZWN0XCI6IG51bGwsXG5cbiAgXCJnb29nbGUuY29udGFpbmVyX25vZGVfcG9vbC5ub2RlX2NvbmZpZy5ndWVzdF9hY2NlbGVyYXRvci5jb3VudFwiOiBudWxsLFxuICBcImdvb2dsZS5jb250YWluZXJfbm9kZV9wb29sLm5vZGVfY29uZmlnLmd1ZXN0X2FjY2VsZXJhdG9yLnR5cGVcIjogbnVsbCxcbiAgXCJnb29nbGUuY29udGFpbmVyX25vZGVfcG9vbC5ub2RlX2NvbmZpZy5ndWVzdF9hY2NlbGVyYXRvci5ncHVfcGFydGl0aW9uX3NpemVcIjpcbiAgICBudWxsLFxuICBcImdvb2dsZS5jb250YWluZXJfbm9kZV9wb29sLm5vZGVfY29uZmlnLmd1ZXN0X2FjY2VsZXJhdG9yLmdwdV9zaGFyaW5nX2NvbmZpZ1wiOlxuICAgIG51bGwsXG4gIFwiZ29vZ2xlLmNvbnRhaW5lcl9ub2RlX3Bvb2wubm9kZV9jb25maWcuZ3Vlc3RfYWNjZWxlcmF0b3IuZ3B1X3NoYXJpbmdfY29uZmlnLmdwdV9zaGFyaW5nX3N0cmF0ZWd5XCI6XG4gICAgbnVsbCxcbiAgXCJnb29nbGUuY29udGFpbmVyX25vZGVfcG9vbC5ub2RlX2NvbmZpZy5ndWVzdF9hY2NlbGVyYXRvci5ncHVfc2hhcmluZ19jb25maWcubWF4X3NoYXJlZF9jbGllbnRzX3Blcl9ncHVcIjpcbiAgICBudWxsLFxuICBcImdvb2dsZS5jb250YWluZXJfbm9kZV9wb29sLm5vZGVfY29uZmlnLnRhaW50LmtleVwiOiBudWxsLFxuICBcImdvb2dsZS5jb250YWluZXJfbm9kZV9wb29sLm5vZGVfY29uZmlnLnRhaW50LnZhbHVlXCI6IG51bGwsXG4gIFwiZ29vZ2xlLmNvbnRhaW5lcl9ub2RlX3Bvb2wubm9kZV9jb25maWcudGFpbnQuZWZmZWN0XCI6IG51bGwsXG5cbiAgXCJnb29nbGUuY29tcG9zZXJfZW52aXJvbm1lbnQuaXBfYWxsb2NhdGlvbl9wb2xpY3kudXNlX2lwX2FsaWFzZXNcIjogbnVsbCxcbiAgXCJnb29nbGUuY29tcG9zZXJfZW52aXJvbm1lbnQuaXBfYWxsb2NhdGlvbl9wb2xpY3kuY2x1c3Rlcl9zZWNvbmRhcnlfcmFuZ2VfbmFtZVwiOlxuICAgIG51bGwsXG4gIFwiZ29vZ2xlLmNvbXBvc2VyX2Vudmlyb25tZW50LmlwX2FsbG9jYXRpb25fcG9saWN5LnNlcnZpY2VzX3NlY29uZGFyeV9yYW5nZV9uYW1lXCI6XG4gICAgbnVsbCxcbiAgXCJnb29nbGUuY29tcG9zZXJfZW52aXJvbm1lbnQuaXBfYWxsb2NhdGlvbl9wb2xpY3kuY2x1c3Rlcl9pcHY0X2NpZHJfYmxvY2tcIjpcbiAgICBudWxsLFxuICBcImdvb2dsZS5jb21wb3Nlcl9lbnZpcm9ubWVudC5pcF9hbGxvY2F0aW9uX3BvbGljeS5zZXJ2aWNlc19pcHY0X2NpZHJfYmxvY2tcIjpcbiAgICBudWxsLFxuXG4gIFwiYXp1cmVybS5ldmVudGdyaWRfdG9waWMuaW5ib3VuZF9pcF9ydWxlLmlwX21hc2tcIjogbnVsbCxcbiAgXCJhenVyZXJtLmV2ZW50Z3JpZF90b3BpYy5pbmJvdW5kX2lwX3J1bGUuYWN0aW9uXCI6IG51bGwsXG5cbiAgXCJhenVyZXJtLmV2ZW50Z3JpZF9kb21haW4uaW5ib3VuZF9pcF9ydWxlLmlwX21hc2tcIjogbnVsbCxcbiAgXCJhenVyZXJtLmV2ZW50Z3JpZF9kb21haW4uaW5ib3VuZF9pcF9ydWxlLmFjdGlvblwiOiBudWxsLFxuXG4gIFwiYXp1cmVybS5jb250YWluZXJfcmVnaXN0cnkubmV0d29ya19ydWxlX3NldC5kZWZhdWx0X2FjdGlvblwiOiBudWxsLFxuICBcImF6dXJlcm0uY29udGFpbmVyX3JlZ2lzdHJ5Lm5ldHdvcmtfcnVsZV9zZXQuaXBfcnVsZVwiOiBudWxsLFxuICBcImF6dXJlcm0uY29udGFpbmVyX3JlZ2lzdHJ5Lm5ldHdvcmtfcnVsZV9zZXQudmlydHVhbF9uZXR3b3JrXCI6IG51bGwsXG4gIFwiYXp1cmVybS5jb250YWluZXJfcmVnaXN0cnkubmV0d29ya19ydWxlX3NldC5pcF9ydWxlLmFjdGlvblwiOiBudWxsLFxuICBcImF6dXJlcm0uY29udGFpbmVyX3JlZ2lzdHJ5Lm5ldHdvcmtfcnVsZV9zZXQuaXBfcnVsZS5pcF9yYW5nZVwiOiBudWxsLFxuICBcImF6dXJlcm0uY29udGFpbmVyX3JlZ2lzdHJ5Lm5ldHdvcmtfcnVsZV9zZXQudmlydHVhbF9uZXR3b3JrLmFjdGlvblwiOiBudWxsLFxuICBcImF6dXJlcm0uY29udGFpbmVyX3JlZ2lzdHJ5Lm5ldHdvcmtfcnVsZV9zZXQudmlydHVhbF9uZXR3b3JrLnN1Ym5ldF9pZFwiOiBudWxsLFxuICBcImF6dXJlcm0uY29udGFpbmVyX3JlZ2lzdHJ5LnJldGVudGlvbl9wb2xpY3kuZGF5c1wiOiBudWxsLFxuICBcImF6dXJlcm0uY29udGFpbmVyX3JlZ2lzdHJ5LnJldGVudGlvbl9wb2xpY3kuZW5hYmxlZFwiOiBudWxsLFxuICBcImF6dXJlcm0uY29udGFpbmVyX3JlZ2lzdHJ5LnRydXN0X3BvbGljeS5lbmFibGVkXCI6IG51bGwsXG4gIFwiYXp1cmVybS5jb250YWluZXJfcmVnaXN0cnkuZW5jcnlwdGlvbi5lbmFibGVkXCI6IG51bGwsXG4gIFwiYXp1cmVybS5jb250YWluZXJfcmVnaXN0cnkuZW5jcnlwdGlvbi5pZGVudGl0eV9jbGllbnRfaWRcIjogbnVsbCxcbiAgXCJhenVyZXJtLmNvbnRhaW5lcl9yZWdpc3RyeS5lbmNyeXB0aW9uLmtleV92YXVsdF9rZXlfaWRcIjogbnVsbCxcblxuICBcImF6dXJlcm0uZXZlbnRodWJfbmFtZXNwYWNlLm5ldHdvcmtfcnVsZXNldHMuZGVmYXVsdF9hY3Rpb25cIjogbnVsbCxcbiAgXCJhenVyZXJtLmV2ZW50aHViX25hbWVzcGFjZS5uZXR3b3JrX3J1bGVzZXRzLnB1YmxpY19uZXR3b3JrX2FjY2Vzc19lbmFibGVkXCI6XG4gICAgbnVsbCxcbiAgXCJhenVyZXJtLmV2ZW50aHViX25hbWVzcGFjZS5uZXR3b3JrX3J1bGVzZXRzLnRydXN0ZWRfc2VydmljZV9hY2Nlc3NfZW5hYmxlZFwiOlxuICAgIG51bGwsXG4gIFwiYXp1cmVybS5ldmVudGh1Yl9uYW1lc3BhY2UubmV0d29ya19ydWxlc2V0cy52aXJ0dWFsX25ldHdvcmtfcnVsZVwiOiBudWxsLFxuICBcImF6dXJlcm0uZXZlbnRodWJfbmFtZXNwYWNlLm5ldHdvcmtfcnVsZXNldHMudmlydHVhbF9uZXR3b3JrX3J1bGUuc3VibmV0X2lkXCI6XG4gICAgbnVsbCxcbiAgXCJhenVyZXJtLmV2ZW50aHViX25hbWVzcGFjZS5uZXR3b3JrX3J1bGVzZXRzLnZpcnR1YWxfbmV0d29ya19ydWxlLmlnbm9yZV9taXNzaW5nX3ZpcnR1YWxfbmV0d29ya19zZXJ2aWNlX2VuZHBvaW50XCI6XG4gICAgbnVsbCxcbiAgXCJhenVyZXJtLmV2ZW50aHViX25hbWVzcGFjZS5uZXR3b3JrX3J1bGVzZXRzLmlwX3J1bGVcIjogbnVsbCxcbiAgXCJhenVyZXJtLmV2ZW50aHViX25hbWVzcGFjZS5uZXR3b3JrX3J1bGVzZXRzLmlwX3J1bGUuaXBfbWFza1wiOiBudWxsLFxuICBcImF6dXJlcm0uZXZlbnRodWJfbmFtZXNwYWNlLm5ldHdvcmtfcnVsZXNldHMuaXBfcnVsZS5hY3Rpb25cIjogbnVsbCxcblxuICBcImF6dXJlcm0uYXV0b21hdGlvbl9ydW5ib29rLmpvYl9zY2hlZHVsZS5zY2hlZHVsZV9uYW1lXCI6IG51bGwsXG4gIFwiYXp1cmVybS5hdXRvbWF0aW9uX3J1bmJvb2suam9iX3NjaGVkdWxlLnBhcmFtZXRlcnNcIjogbnVsbCxcbiAgXCJhenVyZXJtLmF1dG9tYXRpb25fcnVuYm9vay5qb2Jfc2NoZWR1bGUucnVuX29uXCI6IG51bGwsXG4gIFwiYXp1cmVybS5hdXRvbWF0aW9uX3J1bmJvb2suam9iX3NjaGVkdWxlLmpvYl9zY2hlZHVsZV9pZFwiOiBudWxsLFxuXG4gIFwiYXp1cmVybS5tc3NxbF9kYXRhYmFzZS5leHRlbmRlZF9hdWRpdGluZ19wb2xpY3kuc3RvcmFnZV9hY2NvdW50X2FjY2Vzc19rZXlcIjpcbiAgICBudWxsLFxuICBcImF6dXJlcm0ubXNzcWxfZGF0YWJhc2UuZXh0ZW5kZWRfYXVkaXRpbmdfcG9saWN5LnN0b3JhZ2VfZW5kcG9pbnRcIjogbnVsbCxcbiAgXCJhenVyZXJtLm1zc3FsX2RhdGFiYXNlLmV4dGVuZGVkX2F1ZGl0aW5nX3BvbGljeS5zdG9yYWdlX2FjY291bnRfYWNjZXNzX2tleV9pc19zZWNvbmRhcnlcIjpcbiAgICBudWxsLFxuICBcImF6dXJlcm0ubXNzcWxfZGF0YWJhc2UuZXh0ZW5kZWRfYXVkaXRpbmdfcG9saWN5LnJldGVudGlvbl9pbl9kYXlzXCI6IG51bGwsXG4gIFwiYXp1cmVybS5tc3NxbF9kYXRhYmFzZS5leHRlbmRlZF9hdWRpdGluZ19wb2xpY3kubG9nX21vbml0b3JpbmdfZW5hYmxlZFwiOlxuICAgIG51bGwsXG5cbiAgXCJhenVyZXJtLm1zc3FsX3NlcnZlci5leHRlbmRlZF9hdWRpdGluZ19wb2xpY3kuc3RvcmFnZV9hY2NvdW50X2FjY2Vzc19rZXlcIjpcbiAgICBudWxsLFxuICBcImF6dXJlcm0ubXNzcWxfc2VydmVyLmV4dGVuZGVkX2F1ZGl0aW5nX3BvbGljeS5zdG9yYWdlX2VuZHBvaW50XCI6IG51bGwsXG4gIFwiYXp1cmVybS5tc3NxbF9zZXJ2ZXIuZXh0ZW5kZWRfYXVkaXRpbmdfcG9saWN5LnN0b3JhZ2VfYWNjb3VudF9hY2Nlc3Nfa2V5X2lzX3NlY29uZGFyeVwiOlxuICAgIG51bGwsXG4gIFwiYXp1cmVybS5tc3NxbF9zZXJ2ZXIuZXh0ZW5kZWRfYXVkaXRpbmdfcG9saWN5LnJldGVudGlvbl9pbl9kYXlzXCI6IG51bGwsXG4gIFwiYXp1cmVybS5tc3NxbF9zZXJ2ZXIuZXh0ZW5kZWRfYXVkaXRpbmdfcG9saWN5LmxvZ19tb25pdG9yaW5nX2VuYWJsZWRcIjogbnVsbCxcblxuICBcImF6dXJlcm0ucm91dGVfZmlsdGVyLnJ1bGUuYWNjZXNzXCI6IG51bGwsXG4gIFwiYXp1cmVybS5yb3V0ZV9maWx0ZXIucnVsZS5jb21tdW5pdGllc1wiOiBudWxsLFxuICBcImF6dXJlcm0ucm91dGVfZmlsdGVyLnJ1bGUubmFtZVwiOiBudWxsLFxuICBcImF6dXJlcm0ucm91dGVfZmlsdGVyLnJ1bGUucnVsZV90eXBlXCI6IG51bGwsXG5cbiAgXCJhenVyZXJtLnJvdXRlX3RhYmxlLnJvdXRlLm5hbWVcIjogbnVsbCxcbiAgXCJhenVyZXJtLnJvdXRlX3RhYmxlLnJvdXRlLmFkZHJlc3NfcHJlZml4XCI6IG51bGwsXG4gIFwiYXp1cmVybS5yb3V0ZV90YWJsZS5yb3V0ZS5uZXh0X2hvcF90eXBlXCI6IG51bGwsXG4gIFwiYXp1cmVybS5yb3V0ZV90YWJsZS5yb3V0ZS5uZXh0X2hvcF9pbl9pcF9hZGRyZXNzXCI6IG51bGwsXG5cbiAgXCJhenVyZXJtLnNpdGVfcmVjb3ZlcnlfcmVwbGljYXRlZF92bS5tYW5hZ2VkX2Rpc2suZGlza19pZFwiOiBudWxsLFxuICBcImF6dXJlcm0uc2l0ZV9yZWNvdmVyeV9yZXBsaWNhdGVkX3ZtLm1hbmFnZWRfZGlzay5zdGFnaW5nX3N0b3JhZ2VfYWNjb3VudF9pZFwiOlxuICAgIG51bGwsXG4gIFwiYXp1cmVybS5zaXRlX3JlY292ZXJ5X3JlcGxpY2F0ZWRfdm0ubWFuYWdlZF9kaXNrLnRhcmdldF9yZXNvdXJjZV9ncm91cF9pZFwiOlxuICAgIG51bGwsXG4gIFwiYXp1cmVybS5zaXRlX3JlY292ZXJ5X3JlcGxpY2F0ZWRfdm0ubWFuYWdlZF9kaXNrLnRhcmdldF9kaXNrX3R5cGVcIjogbnVsbCxcbiAgXCJhenVyZXJtLnNpdGVfcmVjb3ZlcnlfcmVwbGljYXRlZF92bS5tYW5hZ2VkX2Rpc2sudGFyZ2V0X3JlcGxpY2FfZGlza190eXBlXCI6XG4gICAgbnVsbCxcbiAgXCJhenVyZXJtLnNpdGVfcmVjb3ZlcnlfcmVwbGljYXRlZF92bS5tYW5hZ2VkX2Rpc2sudGFyZ2V0X2Rpc2tfZW5jcnlwdGlvbl9zZXRfaWRcIjpcbiAgICBudWxsLFxuICBcImF6dXJlcm0uc2l0ZV9yZWNvdmVyeV9yZXBsaWNhdGVkX3ZtLm1hbmFnZWRfZGlzay50YXJnZXRfZGlza19lbmNyeXB0aW9uXCI6XG4gICAgbnVsbCxcbiAgXCJhenVyZXJtLnNpdGVfcmVjb3ZlcnlfcmVwbGljYXRlZF92bS5uZXR3b3JrX2ludGVyZmFjZS5zb3VyY2VfbmV0d29ya19pbnRlcmZhY2VfaWRcIjpcbiAgICBudWxsLFxuICBcImF6dXJlcm0uc2l0ZV9yZWNvdmVyeV9yZXBsaWNhdGVkX3ZtLm5ldHdvcmtfaW50ZXJmYWNlLnRhcmdldF9zdGF0aWNfaXBcIjpcbiAgICBudWxsLFxuICBcImF6dXJlcm0uc2l0ZV9yZWNvdmVyeV9yZXBsaWNhdGVkX3ZtLm5ldHdvcmtfaW50ZXJmYWNlLnRhcmdldF9zdWJuZXRfbmFtZVwiOlxuICAgIG51bGwsXG4gIFwiYXp1cmVybS5zaXRlX3JlY292ZXJ5X3JlcGxpY2F0ZWRfdm0ubmV0d29ya19pbnRlcmZhY2UucmVjb3ZlcnlfcHVibGljX2lwX2FkZHJlc3NfaWRcIjpcbiAgICBudWxsLFxuXG4gIFwiYXp1cmVybS5pb3RodWIuZW5kcG9pbnQudHlwZVwiOiBudWxsLFxuICBcImF6dXJlcm0uaW90aHViLmVuZHBvaW50LmF1dGhlbnRpY2F0aW9uX3R5cGVcIjogbnVsbCxcbiAgXCJhenVyZXJtLmlvdGh1Yi5lbmRwb2ludC5pZGVudGl0eV9pZFwiOiBudWxsLFxuICBcImF6dXJlcm0uaW90aHViLmVuZHBvaW50LmVuZHBvaW50X3VyaVwiOiBudWxsLFxuICBcImF6dXJlcm0uaW90aHViLmVuZHBvaW50LmVudGl0eV9wYXRoXCI6IG51bGwsXG4gIFwiYXp1cmVybS5pb3RodWIuZW5kcG9pbnQuY29ubmVjdGlvbl9zdHJpbmdcIjogbnVsbCxcbiAgXCJhenVyZXJtLmlvdGh1Yi5lbmRwb2ludC5uYW1lXCI6IG51bGwsXG4gIFwiYXp1cmVybS5pb3RodWIuZW5kcG9pbnQuYmF0Y2hfZnJlcXVlbmN5X2luX3NlY29uZHNcIjogbnVsbCxcbiAgXCJhenVyZXJtLmlvdGh1Yi5lbmRwb2ludC5tYXhfY2h1bmtfc2l6ZV9pbl9ieXRlc1wiOiBudWxsLFxuICBcImF6dXJlcm0uaW90aHViLmVuZHBvaW50LmNvbnRhaW5lcl9uYW1lXCI6IG51bGwsXG4gIFwiYXp1cmVybS5pb3RodWIuZW5kcG9pbnQuZW5jb2RpbmdcIjogbnVsbCxcbiAgXCJhenVyZXJtLmlvdGh1Yi5lbmRwb2ludC5maWxlX25hbWVfZm9ybWF0XCI6IG51bGwsXG4gIFwiYXp1cmVybS5pb3RodWIuZW5kcG9pbnQucmVzb3VyY2VfZ3JvdXBfbmFtZVwiOiBudWxsLFxuICBcImF6dXJlcm0uaW90aHViLnJvdXRlLm5hbWVcIjogbnVsbCxcbiAgXCJhenVyZXJtLmlvdGh1Yi5yb3V0ZS5zb3VyY2VcIjogbnVsbCxcbiAgXCJhenVyZXJtLmlvdGh1Yi5yb3V0ZS5jb25kaXRpb25cIjogbnVsbCxcbiAgXCJhenVyZXJtLmlvdGh1Yi5yb3V0ZS5lbmRwb2ludF9uYW1lc1wiOiBudWxsLFxuICBcImF6dXJlcm0uaW90aHViLnJvdXRlLmVuYWJsZWRcIjogbnVsbCxcbiAgXCJhenVyZXJtLmlvdGh1Yi5lbnJpY2htZW50LmtleVwiOiBudWxsLFxuICBcImF6dXJlcm0uaW90aHViLmVucmljaG1lbnQudmFsdWVcIjogbnVsbCxcbiAgXCJhenVyZXJtLmlvdGh1Yi5lbnJpY2htZW50LmVuZHBvaW50X25hbWVzXCI6IG51bGwsXG5cbiAgXCJhenVyZXJtLnZpcnR1YWxfbmV0d29yay5zdWJuZXQubmFtZVwiOiBudWxsLFxuICBcImF6dXJlcm0udmlydHVhbF9uZXR3b3JrLnN1Ym5ldC5hZGRyZXNzX3ByZWZpeFwiOiBudWxsLFxuICBcImF6dXJlcm0udmlydHVhbF9uZXR3b3JrLnN1Ym5ldC5zZWN1cml0eV9ncm91cFwiOiBudWxsLFxuICBcImF6dXJlcm0udmlydHVhbF9uZXR3b3JrLnN1Ym5ldC5pZFwiOiBudWxsLFxuXG4gIFwiYXp1cmVybS5uZXR3b3JrX3NlY3VyaXR5X2dyb3VwLnNlY3VyaXR5X3J1bGUubmFtZVwiOiBudWxsLFxuICBcImF6dXJlcm0ubmV0d29ya19zZWN1cml0eV9ncm91cC5zZWN1cml0eV9ydWxlLmRlc2NyaXB0aW9uXCI6IG51bGwsXG4gIFwiYXp1cmVybS5uZXR3b3JrX3NlY3VyaXR5X2dyb3VwLnNlY3VyaXR5X3J1bGUucHJvdG9jb2xcIjogbnVsbCxcbiAgXCJhenVyZXJtLm5ldHdvcmtfc2VjdXJpdHlfZ3JvdXAuc2VjdXJpdHlfcnVsZS5zb3VyY2VfcG9ydF9yYW5nZVwiOiBudWxsLFxuICBcImF6dXJlcm0ubmV0d29ya19zZWN1cml0eV9ncm91cC5zZWN1cml0eV9ydWxlLnNvdXJjZV9wb3J0X3Jhbmdlc1wiOiBudWxsLFxuICBcImF6dXJlcm0ubmV0d29ya19zZWN1cml0eV9ncm91cC5zZWN1cml0eV9ydWxlLmRlc3RpbmF0aW9uX3BvcnRfcmFuZ2VcIjogbnVsbCxcbiAgXCJhenVyZXJtLm5ldHdvcmtfc2VjdXJpdHlfZ3JvdXAuc2VjdXJpdHlfcnVsZS5kZXN0aW5hdGlvbl9wb3J0X3Jhbmdlc1wiOiBudWxsLFxuICBcImF6dXJlcm0ubmV0d29ya19zZWN1cml0eV9ncm91cC5zZWN1cml0eV9ydWxlLnNvdXJjZV9hZGRyZXNzX3ByZWZpeFwiOiBudWxsLFxuICBcImF6dXJlcm0ubmV0d29ya19zZWN1cml0eV9ncm91cC5zZWN1cml0eV9ydWxlLnNvdXJjZV9hZGRyZXNzX3ByZWZpeGVzXCI6IG51bGwsXG4gIFwiYXp1cmVybS5uZXR3b3JrX3NlY3VyaXR5X2dyb3VwLnNlY3VyaXR5X3J1bGUuZGVzdGluYXRpb25fYWRkcmVzc19wcmVmaXhcIjpcbiAgICBudWxsLFxuICBcImF6dXJlcm0ubmV0d29ya19zZWN1cml0eV9ncm91cC5zZWN1cml0eV9ydWxlLmRlc3RpbmF0aW9uX2FkZHJlc3NfcHJlZml4ZXNcIjpcbiAgICBudWxsLFxuICBcImF6dXJlcm0ubmV0d29ya19zZWN1cml0eV9ncm91cC5zZWN1cml0eV9ydWxlLmRlc3RpbmF0aW9uX2FwcGxpY2F0aW9uX3NlY3VyaXR5X2dyb3VwX2lkc1wiOlxuICAgIG51bGwsXG4gIFwiYXp1cmVybS5uZXR3b3JrX3NlY3VyaXR5X2dyb3VwLnNlY3VyaXR5X3J1bGUuc291cmNlX2FwcGxpY2F0aW9uX3NlY3VyaXR5X2dyb3VwX2lkc1wiOlxuICAgIG51bGwsXG4gIFwiYXp1cmVybS5uZXR3b3JrX3NlY3VyaXR5X2dyb3VwLnNlY3VyaXR5X3J1bGUuYWNjZXNzXCI6IG51bGwsXG4gIFwiYXp1cmVybS5uZXR3b3JrX3NlY3VyaXR5X2dyb3VwLnNlY3VyaXR5X3J1bGUucHJpb3JpdHlcIjogbnVsbCxcbiAgXCJhenVyZXJtLm5ldHdvcmtfc2VjdXJpdHlfZ3JvdXAuc2VjdXJpdHlfcnVsZS5kaXJlY3Rpb25cIjogbnVsbCxcblxuICBcImF6dXJlcm0uc3luYXBzZV93b3Jrc3BhY2UuYWFkX2FkbWluLmxvZ2luXCI6IG51bGwsXG4gIFwiYXp1cmVybS5zeW5hcHNlX3dvcmtzcGFjZS5hYWRfYWRtaW4ub2JqZWN0X2lkXCI6IG51bGwsXG4gIFwiYXp1cmVybS5zeW5hcHNlX3dvcmtzcGFjZS5hYWRfYWRtaW4udGVuYW50X2lkXCI6IG51bGwsXG4gIFwiYXp1cmVybS5zeW5hcHNlX3dvcmtzcGFjZS5zcWxfYWFkX2FkbWluLmxvZ2luXCI6IG51bGwsXG4gIFwiYXp1cmVybS5zeW5hcHNlX3dvcmtzcGFjZS5zcWxfYWFkX2FkbWluLm9iamVjdF9pZFwiOiBudWxsLFxuICBcImF6dXJlcm0uc3luYXBzZV93b3Jrc3BhY2Uuc3FsX2FhZF9hZG1pbi50ZW5hbnRfaWRcIjogbnVsbCxcblxuICBcImF6dXJlcm0uYmF0Y2hfcG9vbC5jb250YWluZXJfY29uZmlndXJhdGlvbi5jb250YWluZXJfcmVnaXN0cmllcy5yZWdpc3RyeV9zZXJ2ZXJcIjpcbiAgICBudWxsLFxuICBcImF6dXJlcm0uYmF0Y2hfcG9vbC5jb250YWluZXJfY29uZmlndXJhdGlvbi5jb250YWluZXJfcmVnaXN0cmllcy51c2VyX25hbWVcIjpcbiAgICBudWxsLFxuICBcImF6dXJlcm0uYmF0Y2hfcG9vbC5jb250YWluZXJfY29uZmlndXJhdGlvbi5jb250YWluZXJfcmVnaXN0cmllcy5wYXNzd29yZFwiOlxuICAgIG51bGwsXG5cbiAgXCJhenVyZXJtLmtleV92YXVsdC5hY2Nlc3NfcG9saWN5LnRlbmFudF9pZFwiOiBudWxsLFxuICBcImF6dXJlcm0ua2V5X3ZhdWx0LmFjY2Vzc19wb2xpY3kub2JqZWN0X2lkXCI6IG51bGwsXG4gIFwiYXp1cmVybS5rZXlfdmF1bHQuYWNjZXNzX3BvbGljeS5hcHBsaWNhdGlvbl9pZFwiOiBudWxsLFxuICBcImF6dXJlcm0ua2V5X3ZhdWx0LmFjY2Vzc19wb2xpY3kuY2VydGlmaWNhdGVfcGVybWlzc2lvbnNcIjogbnVsbCxcbiAgXCJhenVyZXJtLmtleV92YXVsdC5hY2Nlc3NfcG9saWN5LmtleV9wZXJtaXNzaW9uc1wiOiBudWxsLFxuICBcImF6dXJlcm0ua2V5X3ZhdWx0LmFjY2Vzc19wb2xpY3kuc2VjcmV0X3Blcm1pc3Npb25zXCI6IG51bGwsXG4gIFwiYXp1cmVybS5rZXlfdmF1bHQuYWNjZXNzX3BvbGljeS5zdG9yYWdlX3Blcm1pc3Npb25zXCI6IG51bGwsXG5cbiAgXCJhenVyZXJtLmFwcF9zZXJ2aWNlLmlwX3Jlc3RyaWN0aW9uLmlwX2FkZHJlc3NcIjogbnVsbCxcbiAgXCJhenVyZXJtLmFwcF9zZXJ2aWNlLmlwX3Jlc3RyaWN0aW9uLnNlcnZpY2VfdGFnXCI6IG51bGwsXG4gIFwiYXp1cmVybS5hcHBfc2VydmljZS5pcF9yZXN0cmljdGlvbi5zdWJuZXRfaWRcIjogbnVsbCxcbiAgXCJhenVyZXJtLmFwcF9zZXJ2aWNlLmlwX3Jlc3RyaWN0aW9uLnZpcnR1YWxfbmV0d29ya19zdWJuZXRfaWRcIjogbnVsbCxcbiAgXCJhenVyZXJtLmFwcF9zZXJ2aWNlLmlwX3Jlc3RyaWN0aW9uLm5hbWVcIjogbnVsbCxcbiAgXCJhenVyZXJtLmFwcF9zZXJ2aWNlLmlwX3Jlc3RyaWN0aW9uLnByaW9yaXR5XCI6IG51bGwsXG4gIFwiYXp1cmVybS5hcHBfc2VydmljZS5pcF9yZXN0cmljdGlvbi5hY3Rpb25cIjogbnVsbCxcbiAgXCJhenVyZXJtLmFwcF9zZXJ2aWNlLmlwX3Jlc3RyaWN0aW9uLmhlYWRlcnNcIjogbnVsbCxcbiAgXCJhenVyZXJtLmFwcF9zZXJ2aWNlLmlwX3Jlc3RyaWN0aW9uLmhlYWRlcnMueF9mb3J3YXJkZWRfaG9zdFwiOiBudWxsLFxuICBcImF6dXJlcm0uYXBwX3NlcnZpY2UuaXBfcmVzdHJpY3Rpb24uaGVhZGVycy54X2ZvcndhcmRlZF9mb3JcIjogbnVsbCxcbiAgXCJhenVyZXJtLmFwcF9zZXJ2aWNlLmlwX3Jlc3RyaWN0aW9uLmhlYWRlcnMueF9henVyZV9mZGlkXCI6IG51bGwsXG4gIFwiYXp1cmVybS5hcHBfc2VydmljZS5pcF9yZXN0cmljdGlvbi5oZWFkZXJzLnhfZmRfaGVhbHRoX3Byb2JlXCI6IG51bGwsXG4gIFwiYXp1cmVybS5hcHBfc2VydmljZS5zY21faXBfcmVzdHJpY3Rpb24uaXBfYWRkcmVzc1wiOiBudWxsLFxuICBcImF6dXJlcm0uYXBwX3NlcnZpY2Uuc2NtX2lwX3Jlc3RyaWN0aW9uLnNlcnZpY2VfdGFnXCI6IG51bGwsXG4gIFwiYXp1cmVybS5hcHBfc2VydmljZS5zY21faXBfcmVzdHJpY3Rpb24uc3VibmV0X2lkXCI6IG51bGwsXG4gIFwiYXp1cmVybS5hcHBfc2VydmljZS5zY21faXBfcmVzdHJpY3Rpb24udmlydHVhbF9uZXR3b3JrX3N1Ym5ldF9pZFwiOiBudWxsLFxuICBcImF6dXJlcm0uYXBwX3NlcnZpY2Uuc2NtX2lwX3Jlc3RyaWN0aW9uLm5hbWVcIjogbnVsbCxcbiAgXCJhenVyZXJtLmFwcF9zZXJ2aWNlLnNjbV9pcF9yZXN0cmljdGlvbi5wcmlvcml0eVwiOiBudWxsLFxuICBcImF6dXJlcm0uYXBwX3NlcnZpY2Uuc2NtX2lwX3Jlc3RyaWN0aW9uLmFjdGlvblwiOiBudWxsLFxuICBcImF6dXJlcm0uYXBwX3NlcnZpY2Uuc2NtX2lwX3Jlc3RyaWN0aW9uLmhlYWRlcnNcIjogbnVsbCxcbiAgXCJhenVyZXJtLmFwcF9zZXJ2aWNlLnNjbV9pcF9yZXN0cmljdGlvbi5oZWFkZXJzLnhfZm9yd2FyZGVkX2hvc3RcIjogbnVsbCxcbiAgXCJhenVyZXJtLmFwcF9zZXJ2aWNlLnNjbV9pcF9yZXN0cmljdGlvbi5oZWFkZXJzLnhfZm9yd2FyZGVkX2ZvclwiOiBudWxsLFxuICBcImF6dXJlcm0uYXBwX3NlcnZpY2Uuc2NtX2lwX3Jlc3RyaWN0aW9uLmhlYWRlcnMueF9henVyZV9mZGlkXCI6IG51bGwsXG4gIFwiYXp1cmVybS5hcHBfc2VydmljZS5zY21faXBfcmVzdHJpY3Rpb24uaGVhZGVycy54X2ZkX2hlYWx0aF9wcm9iZVwiOiBudWxsLFxuXG4gIFwiYXp1cmVybS5mdW5jdGlvbl9hcHAuaXBfcmVzdHJpY3Rpb24uaXBfYWRkcmVzc1wiOiBudWxsLFxuICBcImF6dXJlcm0uZnVuY3Rpb25fYXBwLmlwX3Jlc3RyaWN0aW9uLnNlcnZpY2VfdGFnXCI6IG51bGwsXG4gIFwiYXp1cmVybS5mdW5jdGlvbl9hcHAuaXBfcmVzdHJpY3Rpb24uc3VibmV0X2lkXCI6IG51bGwsXG4gIFwiYXp1cmVybS5mdW5jdGlvbl9hcHAuaXBfcmVzdHJpY3Rpb24udmlydHVhbF9uZXR3b3JrX3N1Ym5ldF9pZFwiOiBudWxsLFxuICBcImF6dXJlcm0uZnVuY3Rpb25fYXBwLmlwX3Jlc3RyaWN0aW9uLm5hbWVcIjogbnVsbCxcbiAgXCJhenVyZXJtLmZ1bmN0aW9uX2FwcC5pcF9yZXN0cmljdGlvbi5wcmlvcml0eVwiOiBudWxsLFxuICBcImF6dXJlcm0uZnVuY3Rpb25fYXBwLmlwX3Jlc3RyaWN0aW9uLmFjdGlvblwiOiBudWxsLFxuICBcImF6dXJlcm0uZnVuY3Rpb25fYXBwLmlwX3Jlc3RyaWN0aW9uLmhlYWRlcnNcIjogbnVsbCxcbiAgXCJhenVyZXJtLmZ1bmN0aW9uX2FwcC5pcF9yZXN0cmljdGlvbi5oZWFkZXJzLnhfZm9yd2FyZGVkX2hvc3RcIjogbnVsbCxcbiAgXCJhenVyZXJtLmZ1bmN0aW9uX2FwcC5pcF9yZXN0cmljdGlvbi5oZWFkZXJzLnhfZm9yd2FyZGVkX2ZvclwiOiBudWxsLFxuICBcImF6dXJlcm0uZnVuY3Rpb25fYXBwLmlwX3Jlc3RyaWN0aW9uLmhlYWRlcnMueF9henVyZV9mZGlkXCI6IG51bGwsXG4gIFwiYXp1cmVybS5mdW5jdGlvbl9hcHAuaXBfcmVzdHJpY3Rpb24uaGVhZGVycy54X2ZkX2hlYWx0aF9wcm9iZVwiOiBudWxsLFxuICBcImF6dXJlcm0uZnVuY3Rpb25fYXBwLnNjbV9pcF9yZXN0cmljdGlvbi5pcF9hZGRyZXNzXCI6IG51bGwsXG4gIFwiYXp1cmVybS5mdW5jdGlvbl9hcHAuc2NtX2lwX3Jlc3RyaWN0aW9uLnNlcnZpY2VfdGFnXCI6IG51bGwsXG4gIFwiYXp1cmVybS5mdW5jdGlvbl9hcHAuc2NtX2lwX3Jlc3RyaWN0aW9uLnN1Ym5ldF9pZFwiOiBudWxsLFxuICBcImF6dXJlcm0uZnVuY3Rpb25fYXBwLnNjbV9pcF9yZXN0cmljdGlvbi52aXJ0dWFsX25ldHdvcmtfc3VibmV0X2lkXCI6IG51bGwsXG4gIFwiYXp1cmVybS5mdW5jdGlvbl9hcHAuc2NtX2lwX3Jlc3RyaWN0aW9uLm5hbWVcIjogbnVsbCxcbiAgXCJhenVyZXJtLmZ1bmN0aW9uX2FwcC5zY21faXBfcmVzdHJpY3Rpb24ucHJpb3JpdHlcIjogbnVsbCxcbiAgXCJhenVyZXJtLmZ1bmN0aW9uX2FwcC5zY21faXBfcmVzdHJpY3Rpb24uYWN0aW9uXCI6IG51bGwsXG4gIFwiYXp1cmVybS5mdW5jdGlvbl9hcHAuc2NtX2lwX3Jlc3RyaWN0aW9uLmhlYWRlcnNcIjogbnVsbCxcbiAgXCJhenVyZXJtLmZ1bmN0aW9uX2FwcC5zY21faXBfcmVzdHJpY3Rpb24uaGVhZGVycy54X2ZvcndhcmRlZF9ob3N0XCI6IG51bGwsXG4gIFwiYXp1cmVybS5mdW5jdGlvbl9hcHAuc2NtX2lwX3Jlc3RyaWN0aW9uLmhlYWRlcnMueF9mb3J3YXJkZWRfZm9yXCI6IG51bGwsXG4gIFwiYXp1cmVybS5mdW5jdGlvbl9hcHAuc2NtX2lwX3Jlc3RyaWN0aW9uLmhlYWRlcnMueF9henVyZV9mZGlkXCI6IG51bGwsXG4gIFwiYXp1cmVybS5mdW5jdGlvbl9hcHAuc2NtX2lwX3Jlc3RyaWN0aW9uLmhlYWRlcnMueF9mZF9oZWFsdGhfcHJvYmVcIjogbnVsbCxcblxuICBcImF6dXJlcm0ubG9naWNfYXBwX3N0YW5kYXJkLmlwX3Jlc3RyaWN0aW9uLmlwX2FkZHJlc3NcIjogbnVsbCxcbiAgXCJhenVyZXJtLmxvZ2ljX2FwcF9zdGFuZGFyZC5pcF9yZXN0cmljdGlvbi5zZXJ2aWNlX3RhZ1wiOiBudWxsLFxuICBcImF6dXJlcm0ubG9naWNfYXBwX3N0YW5kYXJkLmlwX3Jlc3RyaWN0aW9uLnN1Ym5ldF9pZFwiOiBudWxsLFxuICBcImF6dXJlcm0ubG9naWNfYXBwX3N0YW5kYXJkLmlwX3Jlc3RyaWN0aW9uLnZpcnR1YWxfbmV0d29ya19zdWJuZXRfaWRcIjogbnVsbCxcbiAgXCJhenVyZXJtLmxvZ2ljX2FwcF9zdGFuZGFyZC5pcF9yZXN0cmljdGlvbi5uYW1lXCI6IG51bGwsXG4gIFwiYXp1cmVybS5sb2dpY19hcHBfc3RhbmRhcmQuaXBfcmVzdHJpY3Rpb24ucHJpb3JpdHlcIjogbnVsbCxcbiAgXCJhenVyZXJtLmxvZ2ljX2FwcF9zdGFuZGFyZC5pcF9yZXN0cmljdGlvbi5hY3Rpb25cIjogbnVsbCxcbiAgXCJhenVyZXJtLmxvZ2ljX2FwcF9zdGFuZGFyZC5pcF9yZXN0cmljdGlvbi5oZWFkZXJzXCI6IG51bGwsXG4gIFwiYXp1cmVybS5sb2dpY19hcHBfc3RhbmRhcmQuaXBfcmVzdHJpY3Rpb24uaGVhZGVycy54X2ZvcndhcmRlZF9ob3N0XCI6IG51bGwsXG4gIFwiYXp1cmVybS5sb2dpY19hcHBfc3RhbmRhcmQuaXBfcmVzdHJpY3Rpb24uaGVhZGVycy54X2ZvcndhcmRlZF9mb3JcIjogbnVsbCxcbiAgXCJhenVyZXJtLmxvZ2ljX2FwcF9zdGFuZGFyZC5pcF9yZXN0cmljdGlvbi5oZWFkZXJzLnhfYXp1cmVfZmRpZFwiOiBudWxsLFxuICBcImF6dXJlcm0ubG9naWNfYXBwX3N0YW5kYXJkLmlwX3Jlc3RyaWN0aW9uLmhlYWRlcnMueF9mZF9oZWFsdGhfcHJvYmVcIjogbnVsbCxcbiAgXCJhenVyZXJtLmxvZ2ljX2FwcF9zdGFuZGFyZC5zY21faXBfcmVzdHJpY3Rpb24uaXBfYWRkcmVzc1wiOiBudWxsLFxuICBcImF6dXJlcm0ubG9naWNfYXBwX3N0YW5kYXJkLnNjbV9pcF9yZXN0cmljdGlvbi5zZXJ2aWNlX3RhZ1wiOiBudWxsLFxuICBcImF6dXJlcm0ubG9naWNfYXBwX3N0YW5kYXJkLnNjbV9pcF9yZXN0cmljdGlvbi5zdWJuZXRfaWRcIjogbnVsbCxcbiAgXCJhenVyZXJtLmxvZ2ljX2FwcF9zdGFuZGFyZC5zY21faXBfcmVzdHJpY3Rpb24udmlydHVhbF9uZXR3b3JrX3N1Ym5ldF9pZFwiOlxuICAgIG51bGwsXG4gIFwiYXp1cmVybS5sb2dpY19hcHBfc3RhbmRhcmQuc2NtX2lwX3Jlc3RyaWN0aW9uLm5hbWVcIjogbnVsbCxcbiAgXCJhenVyZXJtLmxvZ2ljX2FwcF9zdGFuZGFyZC5zY21faXBfcmVzdHJpY3Rpb24ucHJpb3JpdHlcIjogbnVsbCxcbiAgXCJhenVyZXJtLmxvZ2ljX2FwcF9zdGFuZGFyZC5zY21faXBfcmVzdHJpY3Rpb24uYWN0aW9uXCI6IG51bGwsXG4gIFwiYXp1cmVybS5sb2dpY19hcHBfc3RhbmRhcmQuc2NtX2lwX3Jlc3RyaWN0aW9uLmhlYWRlcnNcIjogbnVsbCxcbiAgXCJhenVyZXJtLmxvZ2ljX2FwcF9zdGFuZGFyZC5zY21faXBfcmVzdHJpY3Rpb24uaGVhZGVycy54X2ZvcndhcmRlZF9ob3N0XCI6XG4gICAgbnVsbCxcbiAgXCJhenVyZXJtLmxvZ2ljX2FwcF9zdGFuZGFyZC5zY21faXBfcmVzdHJpY3Rpb24uaGVhZGVycy54X2ZvcndhcmRlZF9mb3JcIjogbnVsbCxcbiAgXCJhenVyZXJtLmxvZ2ljX2FwcF9zdGFuZGFyZC5zY21faXBfcmVzdHJpY3Rpb24uaGVhZGVycy54X2F6dXJlX2ZkaWRcIjogbnVsbCxcbiAgXCJhenVyZXJtLmxvZ2ljX2FwcF9zdGFuZGFyZC5zY21faXBfcmVzdHJpY3Rpb24uaGVhZGVycy54X2ZkX2hlYWx0aF9wcm9iZVwiOlxuICAgIG51bGwsXG5cbiAgXCJhenVyZXJtLmFwaV9tYW5hZ2VtZW50LnBvbGljeS54bWxfY29udGVudFwiOiBudWxsLFxuICBcImF6dXJlcm0uYXBpX21hbmFnZW1lbnQucG9saWN5LnhtbF9saW5rXCI6IG51bGwsXG5cbiAgXCJhenVyZXJtLmNvbnRhaW5lcl9ncm91cC5leHBvc2VkX3BvcnQucG9ydFwiOiBudWxsLFxuICBcImF6dXJlcm0uY29udGFpbmVyX2dyb3VwLmV4cG9zZWRfcG9ydC5wcm90b2NvbFwiOiBudWxsLFxufTtcbiJdfQ==
@@ -15,13 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
15
15
  }) : function(o, v) {
16
16
  o["default"] = v;
17
17
  });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
25
35
  Object.defineProperty(exports, "__esModule", { value: true });
26
36
  exports.StructEmitter = void 0;
27
37
  const models_1 = require("../models");
@@ -66,12 +76,12 @@ class StructEmitter {
66
76
  if (att.description) {
67
77
  comment.line(att.description);
68
78
  comment.line(``);
69
- comment.line(`Docs at Terraform Registry: {@link ${resource.linkToDocs}#${att.terraformName} ${resource.className}#${att.terraformName}}`);
79
+ comment.line(`Docs at ${resource.docsRegistryName}: {@link ${resource.linkToDocs}#${att.terraformName} ${resource.className}#${att.terraformName}}`);
70
80
  this.warnAboutIdField(att);
71
81
  comment.end();
72
82
  }
73
83
  else {
74
- comment.line(`Docs at Terraform Registry: {@link ${resource.linkToDocs}#${att.terraformName} ${resource.className}#${att.terraformName}}`);
84
+ comment.line(`Docs at ${resource.docsRegistryName}: {@link ${resource.linkToDocs}#${att.terraformName} ${resource.className}#${att.terraformName}}`);
75
85
  this.warnAboutIdField(att);
76
86
  comment.end();
77
87
  }
@@ -500,4 +510,4 @@ class StructEmitter {
500
510
  }
501
511
  }
502
512
  exports.StructEmitter = StructEmitter;
503
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RydWN0LWVtaXR0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZ2V0L2dlbmVyYXRvci9lbWl0dGVyL3N0cnVjdC1lbWl0dGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBR0Esc0NBQWdFO0FBQ2hFLDZEQUF5RDtBQUN6RCx3Q0FBOEM7QUFDOUMsMkNBQTZCO0FBQzdCLDZEQUFxRTtBQUVyRSw4REFBeUQ7QUFFekQsTUFBYSxhQUFhO0lBSXhCLFlBQ21CLElBQWUsRUFDaEMsZUFBdUI7UUFETixTQUFJLEdBQUosSUFBSSxDQUFXO1FBR2hDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLHNDQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxRCxJQUFJLENBQUMsZUFBZSxHQUFHLGVBQWUsQ0FBQztJQUN6QyxDQUFDO0lBRU0sSUFBSSxDQUFDLFFBQXVCO1FBQ2pDLElBQUksUUFBUSxDQUFDLHNCQUFzQixFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3ZDLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM3QixDQUFDO0lBQ0gsQ0FBQztJQUVELCtHQUErRztJQUMvRywwRUFBMEU7SUFDMUUscUdBQXFHO0lBQzdGLGdCQUFnQixDQUFDLEdBQW1CO1FBQzFDLElBQUksR0FBRyxDQUFDLElBQUksS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNwQixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FDWixvSkFBb0osQ0FDckosQ0FBQztZQUNGLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUNaLDZKQUE2SixDQUM5SixDQUFDO1FBQ0osQ0FBQztJ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QztRQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ25CLENBQUM7Q0FDRjtBQS9wQkQsc0NBK3BCQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG5pbXBvcnQgeyBDb2RlTWFrZXIgfSBmcm9tIFwiY29kZW1ha2VyXCI7XG5pbXBvcnQgeyBSZXNvdXJjZU1vZGVsLCBTdHJ1Y3QsIENvbmZpZ1N0cnVjdCB9IGZyb20gXCIuLi9tb2RlbHNcIjtcbmltcG9ydCB7IEF0dHJpYnV0ZXNFbWl0dGVyIH0gZnJvbSBcIi4vYXR0cmlidXRlcy1lbWl0dGVyXCI7XG5pbXBvcnQgeyBkb3duY2FzZUZpcnN0IH0gZnJvbSBcIi4uLy4uLy4uL3V0aWxcIjtcbmltcG9ydCAqIGFzIHBhdGggZnJvbSBcInBhdGhcIjtcbmltcG9ydCB7IFNUUlVDVF9TSEFSRElOR19USFJFU0hPTEQgfSBmcm9tIFwiLi4vbW9kZWxzL3Jlc291cmNlLW1vZGVsXCI7XG5pbXBvcnQgeyBBdHRyaWJ1dGVNb2RlbCB9IGZyb20gXCIuLi9tb2RlbHMvYXR0cmlidXRlLW1vZGVsXCI7XG5pbXBvcnQgeyBzYW5pdGl6ZWRDb21tZW50IH0gZnJvbSBcIi4uL3Nhbml0aXplZC1jb21tZW50c1wiO1xuXG5leHBvcnQgY2xhc3MgU3RydWN0RW1pdHRlciB7XG4gIGF0dHJpYnV0ZXNFbWl0dGVyOiBBdHRyaWJ1dGVzRW1pdHRlcjtcbiAgcHJpdmF0ZSByZWFkb25seSBpbXBvcnRFeHRlbnNpb246IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvZGU6IENvZGVNYWtlcixcbiAgICBpbXBvcnRFeHRlbnNpb246IHN0cmluZyxcbiAgKSB7XG4gICAgdGhpcy5hdHRyaWJ1dGVzRW1pdHRlciA9IG5ldyBBdHRyaWJ1dGVzRW1pdHRlcih0aGlzLmNvZGUpO1xuICAgIHRoaXMuaW1wb3J0RXh0ZW5zaW9uID0gaW1wb3J0RXh0ZW5zaW9uO1xuICB9XG5cbiAgcHVibGljIGVtaXQocmVzb3VyY2U6IFJlc291cmNlTW9kZWwpIHtcbiAgICBpZiAocmVzb3VyY2Uuc3RydWN0c1JlcXVpcmVTaGFyZGluZykge1xuICAgICAgdGhpcy5lbWl0TmFtZXNwYWNlZFN0cnVjdHMocmVzb3VyY2UpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmVtaXRTdHJ1Y3RzKHJlc291cmNlKTtcbiAgICB9XG4gIH1cblxuICAvLyBEdWUgdG8gaHR0cHM6Ly9naXRodWIuY29tL2hhc2hpY29ycC90ZXJyYWZvcm0tcGx1Z2luLXNkay9jb21taXQvMjM4N2ViODVlMzJjMDY0YjRhNjI3MThjOWY1YzgwYmYwMGRjN2ZiOSBhbGxcbiAgLy8gcmVzb3VyY2VzIGZyb20gcHJvdmlkZXJzIHVzaW5nIHRoZSBvbGQgU0RLIGhhdmUgdGhlIGlkIGZpZWxkIGJ5IGRlZmF1bHRcbiAgLy8gV2UgaGF2ZSBubyB3YXkgdG8gZGlzdGluZ3Vpc2ggdGhlbSB0aHJvdWdoIHRoZSBwcm92aWRlciBzY2hlbWEsIHNvIGEgd29yZCBvZiB3YXJuaW5nIGZvciBvdXIgdXNlcnNcbiAgcHJpdmF0ZSB3YXJuQWJvdXRJZEZpZWxkKGF0dDogQXR0cmlidXRlTW9kZWwpIHtcbiAgICBpZiAoYXR0Lm5hbWUgPT09IFwiaWRcIikge1xuICAgICAgdGhpcy5jb2RlLmxpbmUoYCpgKTtcbiAgICAgIHRoaXMuY29kZS5saW5lKFxuICAgICAgICBgKiBQbGVhc2UgYmUgYXdhcmUgdGhhdCB0aGUgaWQgZmllbGQgaXMgYXV0b21hdGljYWxseSBhZGRlZCB0byBhbGwgcmVzb3VyY2VzIGluIFRlcnJhZm9ybSBwcm92aWRlcnMgdXNpbmcgYSBUZXJyYWZvcm0gcHJvdmlkZXIgU0RLIHZlcnNpb24gYmVsb3cgMi5gLFxuICAgICAgKTtcbiAgICAgIHRoaXMuY29kZS5saW5lKFxuICAgICAgICBgKiBJZiB5b3UgZXhwZXJpZW5jZSBwcm9ibGVtcyBzZXR0aW5nIHRoaXMgdmFsdWUgaXQgbWlnaHQgbm90IGJlIHNldHRhYmxlLiBQbGVhc2UgdGFrZSBhIGxvb2sgYXQgdGhlIHByb3ZpZGVyIGRvY3VtZW50YXRpb24gdG8gZW5zdXJlIGl0IHNob3VsZCBiZSBzZXR0YWJsZS5gLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZW1pdEludGVyZmFjZShcbiAgICByZXNvdXJjZTogUmVzb3VyY2VNb2RlbCxcbiAgICBzdHJ1Y3Q6IFN0cnVjdCxcbiAgICBuYW1lID0gc3RydWN0Lm5hbWUsXG4gICkge1xuICAgIGlmIChyZXNvdXJjZS5pc1Byb3ZpZGVyKSB7XG4gICAgICB0aGlzLmNvZGUub3BlbkJsb2NrKGBleHBvcnQgaW50ZXJmYWNlICR7bmFtZX1gKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jb2RlLm9wZW5CbG9jayhgZXhwb3J0IGludGVyZmFjZSAke25hbWV9JHtzdHJ1Y3QuZXh0ZW5kc31gKTtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IGF0dCBvZiBzdHJ1Y3QuYXNzaWduYWJsZUF0dHJpYnV0ZXMpIHtcbiAgICAgIGNvbnN0IGNvbW1lbnQgPSBzYW5pdGl6ZWRDb21tZW50KHRoaXMuY29kZSk7XG4gICAgICBpZiAoYXR0LmRlc2NyaXB0aW9uKSB7XG4gICAgICAgIGNvbW1lbnQubGluZShhdHQuZGVzY3JpcHRpb24pO1xuICAgICAgICBjb21tZW50LmxpbmUoYGApO1xuICAgICAgICBjb21tZW50LmxpbmUoXG4gICAgICAgICAgYERvY3MgYXQgVGVycmFmb3JtIFJlZ2lzdHJ5OiB7QGxpbmsgJHtyZXNvdXJjZS5saW5rVG9Eb2NzfSMke2F0dC50ZXJyYWZvcm1OYW1lfSAke3Jlc291cmNlLmNsYXNzTmFtZX0jJHthdHQudGVycmFmb3JtTmFtZX19YCxcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy53YXJuQWJvdXRJZEZpZWxkKGF0dCk7XG4gICAgICAgIGNvbW1lbnQuZW5kKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb21tZW50LmxpbmUoXG4gICAgICAgICAgYERvY3MgYXQgVGVycmFmb3JtIFJlZ2lzdHJ5OiB7QGxpbmsgJHtyZXNvdXJjZS5saW5rVG9Eb2NzfSMke2F0dC50ZXJyYWZvcm1OYW1lfSAke3Jlc291cmNlLmNsYXNzTmFtZX0jJHthdHQudGVycmFmb3JtTmFtZX19YCxcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy53YXJuQWJvdXRJZEZpZWxkKGF0dCk7XG4gICAgICAgIGNvbW1lbnQuZW5kKCk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuY29kZS5saW5lKGByZWFkb25seSAke2F0dC50eXBlRGVmaW5pdGlvbn07YCk7XG4gICAgfVxuICAgIHRoaXMuY29kZS5jbG9zZUJsb2NrKCk7XG5cbiAgICBpZiAoIShzdHJ1Y3QgaW5zdGFuY2VvZiBDb25maWdTdHJ1Y3QpKSB7XG4gICAgICB0aGlzLmVtaXRUb1RlcnJhZm9ybUZ1bmN0aW9uKHN0cnVjdCk7XG4gICAgICB0aGlzLmVtaXRUb0hjbFRlcnJhZm9ybUZ1bmN0aW9uKHN0cnVjdCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBlbWl0U3RydWN0cyhyZXNvdXJjZTogUmVzb3VyY2VNb2RlbCkge1xuICAgIHJlc291cmNlLnN0cnVjdHMuZm9yRWFjaCgoc3RydWN0KSA9PiB7XG4gICAgICBpZiAoc3RydWN0IGluc3RhbmNlb2YgQ29uZmlnU3RydWN0KSB7XG4gICAgICAgIHRoaXMuZW1pdEludGVyZmFjZShyZXNvdXJjZSwgc3RydWN0KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFdlIHVzZSB0aGUgaW50ZXJmYWNlIGhlcmUgZm9yIHRoZSBjb25maWd1cmF0aW9uIC8gaW5wdXRzIG9mIGEgcmVzb3VyY2UgLyBuZXN0ZWQgYmxvY2tcbiAgICAgICAgdGhpcy5lbWl0SW50ZXJmYWNlKHJlc291cmNlLCBzdHJ1Y3QpO1xuICAgICAgICAvLyBBbmQgd2UgdXNlIHRoZSBjbGFzcyBmb3IgdGhlIGF0dHJpYnV0ZXMgLyBvdXRwdXRzIG9mIGEgcmVzb3VyY2UgLyBuZXN0ZWQgYmxvY2tcbiAgICAgICAgaWYgKCFzdHJ1Y3QuaXNQcm92aWRlcikge1xuICAgICAgICAgIHRoaXMuZW1pdENsYXNzKHN0cnVjdCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZW1pdE5hbWVzcGFjZWRTdHJ1Y3RzKHJlc291cmNlOiBSZXNvdXJjZU1vZGVsKSB7XG4gICAgLy8gaXRlcmF0ZSBvdmVyIGFsbCBzdHJ1Y3RzIGluIGJhdGNoZXMgb2YgNDAwIHRvIGF2b2lkIHRvbyBtYW55IGV4cG9ydHMgKD4gMTIwMClcbiAgICBjb25zdCBzdHJ1Y3RJbXBvcnRzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG5cbiAgICAvLyBkcm9wIGNvbmZpZ1N0cnVjdCBmcm9tIHJlc291cmNlLnN0cnVjdHMgdG8gYXZvaWQgZG91YmxlIGltcG9ydFxuICAgIGNvbnN0IHN0cnVjdHNXaXRob3V0Q29uZmlnU3RydWN0ID0gcmVzb3VyY2Uuc3RydWN0cy5zbGljZSgxKTtcblxuICAgIGNvbnN0IHN0cnVjdFNwbGl0czogU3RydWN0W11bXSA9IFtbXV07XG4gICAgY29uc3Qgc3BsaXRDb3VudHM6IG51bWJlcltdID0gWzBdO1xuICAgIHN0cnVjdHNXaXRob3V0Q29uZmlnU3RydWN0LmZvckVhY2goKHN0cnVjdCkgPT4ge1xuICAgICAgaWYgKFxuICAgICAgICBzcGxpdENvdW50c1tzcGxpdENvdW50cy5sZW5ndGggLSAxXSArIHN0cnVjdC5leHBvcnRDb3VudCA8PVxuICAgICAgICBTVFJVQ1RfU0hBUkRJTkdfVEhSRVNIT0xEXG4gICAgICApIHtcbiAgICAgICAgc3RydWN0U3BsaXRzW3N0cnVjdFNwbGl0cy5sZW5ndGggLSAxXS5wdXNoKHN0cnVjdCk7XG4gICAgICAgIHNwbGl0Q291bnRzW3NwbGl0Q291bnRzLmxlbmd0aCAtIDFdICs9IHN0cnVjdC5leHBvcnRDb3VudDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHN0cnVjdFNwbGl0cy5wdXNoKFtzdHJ1Y3RdKTtcbiAgICAgICAgc3BsaXRDb3VudHMucHVzaChzdHJ1Y3QuZXhwb3J0Q291bnQpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgLy8gZmlsbCB0aGUgc3RydWN0IGltcG9ydHMgbWFwcGluZyBiZWZvcmUgY29kZSBnZW5lcmF0aW9uIHNvIHRoYXQgaW1wb3J0cyBjYW5cbiAgICAvLyBwb2ludCB0byBub3QgeWV0IGdlbmVyYXRlZCBzdHJ1Y3QgZmlsZXNcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHN0cnVjdFNwbGl0cy5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3Qgc3RydWN0RmlsZW5hbWUgPSBgc3RydWN0cyR7aSAqIFNUUlVDVF9TSEFSRElOR19USFJFU0hPTER9LnRzYDtcbiAgICAgIGNvbnN0IHN0cnVjdHMgPSBzdHJ1Y3RTcGxpdHNbaV07XG5cbiAgICAgIC8vIGFzc29jaWF0ZSBjdXJyZW50IHN0cnVjdHMgYmF0Y2ggd2l0aCB0aGUgZmlsZSBpdCB3aWxsIGJlIHdyaXR0ZW4gdG9cbiAgICAgIC8vIHRvIGZpbmQgaXQgaW4gc3Vic2VxdWVudCBmaWxlcyBmb3IgaW1wb3J0aW5nXG4gICAgICBzdHJ1Y3RzLmZvckVhY2goXG4gICAgICAgIChzdHJ1Y3QpID0+IChzdHJ1Y3RJbXBvcnRzW3N0cnVjdC5uYW1lXSA9IHN0cnVjdEZpbGVuYW1lKSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3Qgc3RydWN0UGF0aHMgPSBbXTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHN0cnVjdFNwbGl0cy5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3Qgc3RydWN0c1RvSW1wb3J0OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT4gPSB7fTtcbiAgICAgIGNvbnN0IHN0cnVjdHMgPSBzdHJ1Y3RTcGxpdHNbaV07XG4gICAgICBjb25zdCBzdHJ1Y3RGaWxlbmFtZSA9IGBzdHJ1Y3RzJHtpICogU1RSVUNUX1NIQVJESU5HX1RIUkVTSE9MRH0udHNgO1xuICAgICAgc3RydWN0UGF0aHMucHVzaChzdHJ1Y3RGaWxlbmFtZSk7XG5cbiAgICAgIC8vIGZpbmQgYWxsIHN0cnVjdHMgdGhhdCBuZWVkIHRvIGJlIGltcG9ydGVkIGluIHRoaXMgZmlsZVxuICAgICAgc3RydWN0cy5mb3JFYWNoKChzdHJ1Y3QpID0+IHtcbiAgICAgICAgc3RydWN0LmF0dHJpYnV0ZXMuZm9yRWFjaCgoYXR0KSA9PiB7XG4gICAgICAgICAgY29uc3Qgc3RydWN0VHlwZU5hbWUgPSBhdHQudHlwZS5zdHJ1Y3Q/Lm5hbWU7XG4gICAgICAgICAgY29uc3QgZmlsZVRvSW1wb3J0ID0gc3RydWN0SW1wb3J0c1tzdHJ1Y3RUeXBlTmFtZSA/PyBcIlwiXTtcblxuICAgICAgICAgIGlmIChmaWxlVG9JbXBvcnQgJiYgZmlsZVRvSW1wb3J0ICE9PSBzdHJ1Y3RGaWxlbmFtZSkge1xuICAgICAgICAgICAgY29uc3QgYXR0VHlwZVN0cnVjdCA9IGF0dC50eXBlLnN0cnVjdDtcbiAgICAgICAgICAgIGlmICghYXR0VHlwZVN0cnVjdClcbiAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGAke3N0cnVjdFR5cGVOYW1lfSBpcyBub3QgYSBzdHJ1Y3RgKTtcblxuICAgICAgICAgICAgc3RydWN0c1RvSW1wb3J0W2ZpbGVUb0ltcG9ydF0gPz89IFtdO1xuXG4gICAgICAgICAgICBjb25zdCBhdHRSZWZlcmVuY2VzID0gYXR0LmdldFJlZmVyZW5jZWRUeXBlcyhcbiAgICAgICAgICAgICAgc3RydWN0IGluc3RhbmNlb2YgQ29uZmlnU3RydWN0LFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGlmIChhdHRSZWZlcmVuY2VzKSB7XG4gICAgICAgICAgICAgIHN0cnVjdHNUb0ltcG9ydFtmaWxlVG9JbXBvcnRdLnB1c2goLi4uYXR0UmVmZXJlbmNlcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBuYW1lc3BhY2VkRmlsZVBhdGggPSBwYXRoLmpvaW4oXG4gICAgICAgIHJlc291cmNlLnN0cnVjdHNGb2xkZXJQYXRoLFxuICAgICAgICBzdHJ1Y3RGaWxlbmFtZSxcbiAgICAgICk7XG5cbiAgICAgIHRoaXMuY29kZS5vcGVuRmlsZShuYW1lc3BhY2VkRmlsZVBhdGgpO1xuICAgICAgLy8gdGhlIHN0cnVjdHMgb25seSBtYWtlcyB1c2Ugb2YgY2RrdG4gbm90IGNvbnN0cnVjdHNcbiAgICAgIHRoaXMuY29kZS5saW5lKGBpbXBvcnQgKiBhcyBjZGt0biBmcm9tICdjZGt0bic7YCk7XG4gICAgICBPYmplY3QuZW50cmllcyhzdHJ1Y3RzVG9JbXBvcnQpLmZvckVhY2goKFtmaWxlVG9JbXBvcnQsIHN0cnVjdHNdKSA9PiB7XG4gICAgICAgIGNvbnN0IHRhcmdldCA9IHBhdGguYmFzZW5hbWUoZmlsZVRvSW1wb3J0LCBcIi50c1wiKTtcbiAgICAgICAgdGhpcy5jb2RlLmxpbmUoXG4gICAgICAgICAgYGltcG9ydCB7ICR7Wy4uLm5ldyBTZXQoc3RydWN0cyldLmpvaW4oXCIsXFxuXCIpfSB9IGZyb20gJy4vJHt0YXJnZXR9JHt0aGlzLmltcG9ydEV4dGVuc2lvbn0nO2AsXG4gICAgICAgICk7XG4gICAgICB9KTtcblxuICAgICAgc3RydWN0cy5mb3JFYWNoKChzdHJ1Y3QpID0+IHtcbiAgICAgICAgaWYgKHN0cnVjdCBpbnN0YW5jZW9mIENvbmZpZ1N0cnVjdCkge1xuICAgICAgICAgIHRoaXMuZW1pdEludGVyZmFjZShyZXNvdXJjZSwgc3RydWN0KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBXZSB1c2UgdGhlIGludGVyZmFjZSBoZXJlIGZvciB0aGUgY29uZmlndXJhdGlvbiAvIGlucHV0cyBvZiBhIHJlc291cmNlIC8gbmVzdGVkIGJsb2NrXG4gICAgICAgICAgdGhpcy5lbWl0SW50ZXJmYWNlKHJlc291cmNlLCBzdHJ1Y3QpO1xuICAgICAgICAgIC8vIEFuZCB3ZSB1c2UgdGhlIGNsYXNzIGZvciB0aGUgYXR0cmlidXRlcyAvIG91dHB1dHMgb2YgYSByZXNvdXJjZSAvIG5lc3RlZCBibG9ja1xuICAgICAgICAgIGlmICghc3RydWN0LmlzUHJvdmlkZXIpIHtcbiAgICAgICAgICAgIHRoaXMuZW1pdENsYXNzKHN0cnVjdCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHRoaXMuY29kZS5jbG9zZUZpbGUobmFtZXNwYWNlZEZpbGVQYXRoKTtcbiAgICB9XG5cbiAgICAvLyBlbWl0IHRoZSBpbmRleCBmaWxlIHRoYXQgZXhwb3J0cyBhbGwgdGhlIHN0cnVjdCBmaWxlcyB3ZSd2ZSBqdXN0IGdlbmVyYXRlZFxuICAgIGNvbnN0IGluZGV4RmlsZVBhdGggPSBwYXRoLmpvaW4ocmVzb3VyY2Uuc3RydWN0c0ZvbGRlclBhdGgsIFwiaW5kZXgudHNcIik7XG5cbiAgICB0aGlzLmNvZGUub3BlbkZpbGUoaW5kZXhGaWxlUGF0aCk7XG4gICAgc3RydWN0UGF0aHMuZm9yRWFjaCgoc3RydWN0UGF0aCkgPT4ge1xuICAgICAgY29uc3QgdGFyZ2V0ID0gcGF0aC5iYXNlbmFtZShzdHJ1Y3RQYXRoLCBcIi50c1wiKTtcbiAgICAgIHRoaXMuY29kZS5saW5lKGBleHBvcnQgKiBmcm9tICcuLyR7dGFyZ2V0fSR7dGhpcy5pbXBvcnRFeHRlbnNpb259JztgKTtcbiAgICB9KTtcbiAgICB0aGlzLmNvZGUuY2xvc2VGaWxlKGluZGV4RmlsZVBhdGgpO1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0Q2xhc3Moc3RydWN0OiBTdHJ1Y3QpIHtcbiAgICB0aGlzLmNvZGUub3BlbkJsb2NrKFxuICAgICAgYGV4cG9ydCBjbGFzcyAke3N0cnVjdC5vdXRwdXRSZWZlcmVuY2VOYW1lfSBleHRlbmRzIGNka3RuLkNvbXBsZXhPYmplY3RgLFxuICAgICk7XG5cbiAgICB0aGlzLmNvZGUubGluZShcInByaXZhdGUgaXNFbXB0eU9iamVjdCA9IGZhbHNlO1wiKTtcbiAgICBpZiAoIXN0cnVjdC5pc0NsYXNzKSB7XG4gICAgICB0aGlzLmNvZGUubGluZShcInByaXZhdGUgcmVzb2x2YWJsZVZhbHVlPzogY2RrdG4uSVJlc29sdmFibGU7XCIpO1xuICAgIH1cbiAgICB0aGlzLmNvZGUubGluZSgpO1xuXG4gICAgY29uc3QgY29tbWVudCA9IHNhbml0aXplZENvbW1lbnQodGhpcy5jb2RlKTtcbiAgICBjb21tZW50LmxpbmUoYEBwYXJhbSB0ZXJyYWZvcm1SZXNvdXJjZSBUaGUgcGFyZW50IHJlc291cmNlYCk7XG4gICAgY29tbWVudC5saW5lKFxuICAgICAgYEBwYXJhbSB0ZXJyYWZvcm1BdHRyaWJ1dGUgVGhlIGF0dHJpYnV0ZSBvbiB0aGUgcGFyZW50IHJlc291cmNlIHRoaXMgY2xhc3MgaXMgcmVmZXJlbmNpbmdgLFxuICAgICk7XG4gICAgaWYgKHN0cnVjdC5pc1NpbmdsZUl0ZW0pIHtcbiAgICAgIGNvbW1lbnQuZW5kKCk7XG4gICAgICB0aGlzLmNvZGUub3BlbkJsb2NrKFxuICAgICAgICBgcHVibGljIGNvbnN0cnVjdG9yKHRlcnJhZm9ybVJlc291cmNlOiBjZGt0bi5JSW50ZXJwb2xhdGluZ1BhcmVudCwgdGVycmFmb3JtQXR0cmlidXRlOiBzdHJpbmcpYCxcbiAgICAgICk7XG4gICAgICB0aGlzLmNvZGUubGluZShgc3VwZXIodGVycmFmb3JtUmVzb3VyY2UsIHRlcnJhZm9ybUF0dHJpYnV0ZSwgZmFsc2UsIDApO2ApO1xuICAgICAgdGhpcy5jb2RlLmNsb3NlQmxvY2soKTtcbiAgICB9IGVsc2UgaWYgKFxuICAgICAgc3RydWN0Lm5lc3RpbmdNb2RlID09PSBcInNpbmdsZVwiIHx8XG4gICAgICBzdHJ1Y3QubmVzdGluZ01vZGUgPT09IFwib2JqZWN0XCJcbiAgICApIHtcbiAgICAgIGNvbW1lbnQuZW5kKCk7XG4gICAgICB0aGlzLmNvZGUub3BlbkJsb2NrKFxuICAgICAgICBgcHVibGljIGNvbnN0cnVjdG9yKHRlcnJhZm9ybVJlc291cmNlOiBjZGt0bi5JSW50ZXJwb2xhdGluZ1BhcmVudCwgdGVycmFmb3JtQXR0cmlidXRlOiBzdHJpbmcpYCxcbiAgICAgICk7XG4gICAgICB0aGlzLmNvZGUubGluZShgc3VwZXIodGVycmFmb3JtUmVzb3VyY2UsIHRlcnJhZm9ybUF0dHJpYnV0ZSwgZmFsc2UpO2ApO1xuICAgICAgdGhpcy5jb2RlLmNsb3NlQmxvY2soKTtcbiAgICB9IGVsc2UgaWYgKHN0cnVjdC5uZXN0aW5nTW9kZS5zdGFydHNXaXRoKFwibWFwXCIpKSB7XG4gICAgICB0aGlzLmNvZGUubGluZShcbiAgICAgICAgYCogQHBhcmFtIGNvbXBsZXhPYmplY3RLZXkgdGhlIGtleSBvZiB0aGlzIGl0ZW0gaW4gdGhlIG1hcGAsXG4gICAgICApO1xuICAgICAgY29tbWVudC5lbmQoKTtcbiAgICAgIHRoaXMuY29kZS5vcGVuQmxvY2soXG4gICAgICAgIGBwdWJsaWMgY29uc3RydWN0b3IodGVycmFmb3JtUmVzb3VyY2U6IGNka3RuLklJbnRlcnBvbGF0aW5nUGFyZW50LCB0ZXJyYWZvcm1BdHRyaWJ1dGU6IHN0cmluZywgY29tcGxleE9iamVjdEtleTogc3RyaW5nKWAsXG4gICAgICApO1xuICAgICAgdGhpcy5jb2RlLmxpbmUoXG4gICAgICAgIGBzdXBlcih0ZXJyYWZvcm1SZXNvdXJjZSwgdGVycmFmb3JtQXR0cmlidXRlLCBmYWxzZSwgY29tcGxleE9iamVjdEtleSk7YCxcbiAgICAgICk7XG4gICAgICB0aGlzLmNvZGUuY2xvc2VCbG9jaygpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb21tZW50LmxpbmUoXG4gICAgICAgIGBAcGFyYW0gY29tcGxleE9iamVjdEluZGV4IHRoZSBpbmRleCBvZiB0aGlzIGl0ZW0gaW4gdGhlIGxpc3RgLFxuICAgICAgKTtcbiAgICAgIGNvbW1lbnQubGluZShcbiAgICAgICAgYEBwYXJhbSBjb21wbGV4T2JqZWN0SXNGcm9tU2V0IHdoZXRoZXIgdGhlIGxpc3QgaXMgd3JhcHBpbmcgYSBzZXQgKHdpbGwgYWRkIHRvbGlzdCgpIHRvIGJlIGFibGUgdG8gYWNjZXNzIGFuIGl0ZW0gdmlhIGFuIGluZGV4KWAsXG4gICAgICApO1xuICAgICAgY29tbWVudC5lbmQoKTtcbiAgICAgIHRoaXMuY29kZS5vcGVuQmxvY2soXG4gICAgICAgIGBwdWJsaWMgY29uc3RydWN0b3IodGVycmFmb3JtUmVzb3VyY2U6IGNka3RuLklJbnRlcnBvbGF0aW5nUGFyZW50LCB0ZXJyYWZvcm1BdHRyaWJ1dGU6IHN0cmluZywgY29tcGxleE9iamVjdEluZGV4OiBudW1iZXIsIGNvbXBsZXhPYmplY3RJc0Zyb21TZXQ6IGJvb2xlYW4pYCxcbiAgICAgICk7XG4gICAgICB0aGlzLmNvZGUubGluZShcbiAgICAgICAgYHN1cGVyKHRlcnJhZm9ybVJlc291cmNlLCB0ZXJyYWZvcm1BdHRyaWJ1dGUsIGNvbXBsZXhPYmplY3RJc0Zyb21TZXQsIGNvbXBsZXhPYmplY3RJbmRleCk7YCxcbiAgICAgICk7XG4gICAgICB0aGlzLmNvZGUuY2xvc2VCbG9jaygpO1xuICAgIH1cblxuICAgIHRoaXMuY29kZS5saW5lKCk7XG4gICAgdGhpcy5lbWl0SW50ZXJuYWxWYWx1ZUdldHRlcihzdHJ1Y3QpO1xuICAgIHRoaXMuY29kZS5saW5lKCk7XG4gICAgdGhpcy5lbWl0SW50ZXJuYWxWYWx1ZVNldHRlcihzdHJ1Y3QpO1xuXG4gICAgZm9yIChjb25zdCBhdHQgb2Ygc3RydWN0LmF0dHJpYnV0ZXMpIHtcbiAgICAgIHRoaXMuYXR0cmlidXRlc0VtaXR0ZXIuZW1pdChcbiAgICAgICAgYXR0LFxuICAgICAgICB0aGlzLmF0dHJpYnV0ZXNFbWl0dGVyLm5lZWRzUmVzZXRFc2NhcGUoYXR0LCBzdHJ1Y3QuYXR0cmlidXRlcyksXG4gICAgICAgIHRoaXMuYXR0cmlidXRlc0VtaXR0ZXIubmVlZHNJbnB1dEVzY2FwZShhdHQsIHN0cnVjdC5hdHRyaWJ1dGVzKSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy5jb2RlLmNsb3NlQmxvY2soKTtcblxuICAgIGlmIChcbiAgICAgICFzdHJ1Y3QuaXNTaW5nbGVJdGVtICYmXG4gICAgICAoc3RydWN0Lm5lc3RpbmdNb2RlID09PSBcImxpc3RcIiB8fCBzdHJ1Y3QubmVzdGluZ01vZGUgPT09IFwic2V0XCIpXG4gICAgKSB7XG4gICAgICB0aGlzLmVtaXRDb21wbGV4TGlzdENsYXNzKHN0cnVjdCk7XG4gICAgfSBlbHNlIGlmIChzdHJ1Y3QubmVzdGluZ01vZGUgPT09IFwibWFwXCIpIHtcbiAgICAgIHRoaXMuZW1pdENvbXBsZXhNYXBDbGFzcyhzdHJ1Y3QpO1xuICAgIH0gZWxzZSBpZiAoc3RydWN0Lm5lc3RpbmdNb2RlID09PSBcIm1hcGxpc3RcIikge1xuICAgICAgdGhpcy5lbWl0Q29tcGxleE1hcExpc3RDbGFzc2VzKHN0cnVjdCk7XG4gICAgfSBlbHNlIGlmIChzdHJ1Y3QubmVzdGluZ01vZGUgPT09IFwibWFwc2V0XCIpIHtcbiAgICAgIHRoaXMuZW1pdENvbXBsZXhNYXBMaXN0Q2xhc3NlcyhzdHJ1Y3QpO1xuICAgIH0gZWxzZSBpZiAoc3RydWN0Lm5lc3RpbmdNb2RlID09PSBcImxpc3RtYXBcIikge1xuICAgICAgdGhpcy5lbWl0Q29tcGxleExpc3RNYXBDbGFzc2VzKHN0cnVjdCwgZmFsc2UpO1xuICAgIH0gZWxzZSBpZiAoc3RydWN0Lm5lc3RpbmdNb2RlID09PSBcInNldG1hcFwiKSB7XG4gICAgICB0aGlzLmVtaXRDb21wbGV4TGlzdE1hcENsYXNzZXMoc3RydWN0LCB0cnVlKTtcbiAgICB9IGVsc2UgaWYgKFxuICAgICAgc3RydWN0Lm5lc3RpbmdNb2RlID09PSBcImxpc3RsaXN0XCIgfHxcbiAgICAgIHN0cnVjdC5uZXN0aW5nTW9kZSA9PT0gXCJsaXN0c2V0XCIgfHxcbiAgICAgIHN0cnVjdC5uZXN0aW5nTW9kZSA9PT0gXCJzZXRsaXN0XCIgfHxcbiAgICAgIHN0cnVjdC5uZXN0aW5nTW9kZSA9PT0gXCJzZXRzZXRcIlxuICAgICkge1xuICAgICAgdGhpcy5lbWl0Q29tcGxleExpc3RMaXN0Q2xhc3NlcyhzdHJ1Y3QpO1xuICAgIH1cbiAgICAvLyBvdGhlciB0eXBlcyBvZiBuZXN0ZWQgY29sbGVjdGlvbnMgYXJlbid0IHN1cHBvcnRlZFxuICB9XG5cbiAgcHJpdmF0ZSBlbWl0Q29tcGxleExpc3RDbGFzcyhzdHJ1Y3Q6IFN0cnVjdCkge1xuICAgIHRoaXMuY29kZS5saW5lKCk7XG4gICAgdGhpcy5jb2RlLm9wZW5CbG9jayhcbiAgICAgIGBleHBvcnQgY2xhc3MgJHtzdHJ1Y3QubGlzdE5hbWV9IGV4dGVuZHMgY2RrdG4uQ29tcGxleExpc3RgLFxuICAgICk7XG5cbiAgICBpZiAoc3RydWN0LmFzc2lnbmFibGUpIHtcbiAgICAgIHRoaXMuY29kZS5saW5lKFxuICAgICAgICBgcHVibGljIGludGVybmFsVmFsdWU/IDogJHtzdHJ1Y3QubmFtZX1bXSB8IGNka3RuLklSZXNvbHZhYmxlYCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy5jb2RlLmxpbmUoKTtcbiAgICBjb25zdCBjb25zdHJ1Y3RvckNvbW1lbnQgPSBzYW5pdGl6ZWRDb21tZW50KHRoaXMuY29kZSk7XG4gICAgY29uc3RydWN0b3JDb21tZW50LmxpbmUoYEBwYXJhbSB0ZXJyYWZvcm1SZXNvdXJjZSBUaGUgcGFyZW50IHJlc291cmNlYCk7XG4gICAgY29uc3RydWN0b3JDb21tZW50LmxpbmUoXG4gICAgICBgQHBhcmFtIHRlcnJhZm9ybUF0dHJpYnV0ZSBUaGUgYXR0cmlidXRlIG9uIHRoZSBwYXJlbnQgcmVzb3VyY2UgdGhpcyBjbGFzcyBpcyByZWZlcmVuY2luZ2AsXG4gICAgKTtcbiAgICBjb25zdHJ1Y3RvckNvbW1lbnQubGluZShcbiAgICAgIGBAcGFyYW0gd3JhcHNTZXQgd2hldGhlciB0aGUgbGlzdCBpcyB3cmFwcGluZyBhIHNldCAod2lsbCBhZGQgdG9saXN0KCkgdG8gYmUgYWJsZSB0byBhY2Nlc3MgYW4gaXRlbSB2aWEgYW4gaW5kZXgpYCxcbiAgICApO1xuICAgIGNvbnN0cnVjdG9yQ29tbWVudC5lbmQoKTtcbiAgICB0aGlzLmNvZGUub3BlbkJsb2NrKFxuICAgICAgYGNvbnN0cnVjdG9yKHRlcnJhZm9ybVJlc291cmNlOiBjZGt0bi5JSW50ZXJwb2xhdGluZ1BhcmVudCwgdGVycmFmb3JtQXR0cmlidXRlOiBzdHJpbmcsIHdyYXBzU2V0OiBib29sZWFuKWAsXG4gICAgKTtcbiAgICB0aGlzLmNvZGUubGluZShgc3VwZXIodGVycmFmb3JtUmVzb3VyY2UsIHRlcnJhZm9ybUF0dHJpYnV0ZSwgd3JhcHNTZXQpO2ApO1xuICAgIHRoaXMuY29kZS5jbG9zZUJsb2NrKCk7XG5cbiAgICB0aGlzLmNvZGUubGluZSgpO1xuICAgIGNvbnN0IGdldHRlckNvbW1lbnQgPSBzYW5pdGl6ZWRDb21tZW50KHRoaXMuY29kZSk7XG4gICAgZ2V0dGVyQ29tbWVudC5saW5lKGBAcGFyYW0gaW5kZXggdGhlIGluZGV4IG9mIHRoZSBpdGVtIHRvIHJldHVybmApO1xuICAgIGdldHRlckNvbW1lbnQuZW5kKCk7XG4gICAgdGhpcy5jb2RlLm9wZW5CbG9jayhcbiAgICAgIGBwdWJsaWMgZ2V0KGluZGV4OiBudW1iZXIpOiAke3N0cnVjdC5vdXRwdXRSZWZlcmVuY2VOYW1lfWAsXG4gICAgKTtcbiAgICB0aGlzLmNvZGUubGluZShcbiAgICAgIGByZXR1cm4gbmV3ICR7c3RydWN0Lm91dHB1dFJlZmVyZW5jZU5hbWV9KHRoaXMudGVycmFmb3JtUmVzb3VyY2UsIHRoaXMudGVycmFmb3JtQXR0cmlidXRlLCBpbmRleCwgdGhpcy53cmFwc1NldCk7YCxcbiAgICApO1xuICAgIHRoaXMuY29kZS5jbG9zZUJsb2NrKCk7XG5cbiAgICB0aGlzLmNvZGUuY2xvc2VCbG9jaygpO1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0Q29tcGxleE1hcENsYXNzKHN0cnVjdDogU3RydWN0KSB7XG4gICAgdGhpcy5jb2RlLmxpbmUoKTtcbiAgICB0aGlzLmNvZGUub3BlbkJsb2NrKFxuICAgICAgYGV4cG9ydCBjbGFzcyAke3N0cnVjdC5tYXBOYW1lfSBleHRlbmRzIGNka3RuLkNvbXBsZXhNYXBgLFxuICAgICk7XG5cbiAgICBpZiAoc3RydWN0LmFzc2lnbmFibGUpIHtcbiAgICAgIHRoaXMuY29kZS5saW5lKFxuICAgICAgICBgcHVibGljIGludGVybmFsVmFsdWU/IDogeyBba2V5OiBzdHJpbmddOiAke3N0cnVjdC5uYW1lfSB9IHwgY2RrdG4uSVJlc29sdmFibGVgLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGlzLmNvZGUubGluZSgpO1xuICAgIGNvbnN0IGNvbnN0cnVjdG9yQ29tbWVudCA9IHNhbml0aXplZENvbW1lbnQodGhpcy5jb2RlKTtcbiAgICBjb25zdHJ1Y3RvckNvbW1lbnQubGluZShgQHBhcmFtIHRlcnJhZm9ybVJlc291cmNlIFRoZSBwYXJlbnQgcmVzb3VyY2VgKTtcbiAgICBjb25zdHJ1Y3RvckNvbW1lbnQubGluZShcbiAgICAgIGBAcGFyYW0gdGVycmFmb3JtQXR0cmlidXRlIFRoZSBhdHRyaWJ1dGUgb24gdGhlIHBhcmVudCByZXNvdXJjZSB0aGlzIGNsYXNzIGlzIHJlZmVyZW5jaW5nYCxcbiAgICApO1xuICAgIGNvbnN0cnVjdG9yQ29tbWVudC5lbmQoKTtcbiAgICB0aGlzLmNvZGUub3BlbkJsb2NrKFxuICAgICAgYGNvbnN0cnVjdG9yKHRlcnJhZm9ybVJlc291cmNlOiBjZGt0bi5JSW50ZXJwb2xhdGluZ1BhcmVudCwgdGVycmFmb3JtQXR0cmlidXRlOiBzdHJpbmcpYCxcbiAgICApO1xuICAgIHRoaXMuY29kZS5saW5lKGBzdXBlcih0ZXJyYWZvcm1SZXNvdXJjZSwgdGVycmFmb3JtQXR0cmlidXRlKTtgKTtcbiAgICB0aGlzLmNvZGUuY2xvc2VCbG9jaygpO1xuXG4gICAgdGhpcy5jb2RlLmxpbmUoKTtcbiAgICBjb25zdCBnZXR0ZXJDb21tZW50ID0gc2FuaXRpemVkQ29tbWVudCh0aGlzLmNvZGUpO1xuICAgIGdldHRlckNvbW1lbnQubGluZShgQHBhcmFtIGtleSB0aGUga2V5IG9mIHRoZSBpdGVtIHRvIHJldHVybmApO1xuICAgIGdldHRlckNvbW1lbnQuZW5kKCk7XG4gICAgdGhpcy5jb2RlLm9wZW5CbG9jayhcbiAgICAgIGBwdWJsaWMgZ2V0KGtleTogc3RyaW5nKTogJHtzdHJ1Y3Qub3V0cHV0UmVmZXJlbmNlTmFtZX1gLFxuICAgICk7XG4gICAgdGhpcy5jb2RlLmxpbmUoXG4gICAgICBgcmV0dXJuIG5ldyAke3N0cnVjdC5vdXRwdXRSZWZlcmVuY2VOYW1lfSh0aGlzLnRlcnJhZm9ybVJlc291cmNlLCB0aGlzLnRlcnJhZm9ybUF0dHJpYnV0ZSwga2V5KTtgLFxuICAgICk7XG4gICAgdGhpcy5jb2RlLmNsb3NlQmxvY2soKTtcblxuICAgIHRoaXMuY29kZS5jbG9zZUJsb2NrKCk7XG4gIH1cblxuICBwcml2YXRlIGVtaXRDb21wbGV4TWFwTGlzdENsYXNzZXMoc3RydWN0OiBTdHJ1Y3QpIHtcbiAgICB0aGlzLmVtaXRDb21wbGV4TWFwTGlzdENsYXNzKHN0cnVjdCk7XG4gICAgdGhpcy5lbWl0Q29tcGxleE1hcENsYXNzKHN0cnVjdCk7XG4gIH1cblxuICBwcml2YXRlIGVtaXRDb21wbGV4TWFwTGlzdENsYXNzKHN0cnVjdDogU3RydWN0KSB7XG4gICAgdGhpcy5jb2RlLmxpbmUoKTtcbiAgICB0aGlzLmNvZGUub3BlbkJsb2NrKFxuICAgICAgYGV4cG9ydCBjbGFzcyAke3N0cnVjdC5tYXBMaXN0TmFtZX0gZXh0ZW5kcyBjZGt0bi5NYXBMaXN0YCxcbiAgICApO1xuXG4gICAgaWYgKHN0cnVjdC5hc3NpZ25hYmxlKSB7XG4gICAgICB0aGlzLmNvZGUubGluZShcbiAgICAgICAgYHB1YmxpYyBpbnRlcm5hbFZhbHVlPyA6ICR7c3RydWN0Lm1hcE5hbWV9W10gfCBjZGt0bi5JUmVzb2x2YWJsZWAsXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMuY29kZS5saW5lKCk7XG4gICAgY29uc3QgY29uc3RydWN0b3JDb21tZW50ID0gc2FuaXRpemVkQ29tbWVudCh0aGlzLmNvZGUpO1xuICAgIGNvbnN0cnVjdG9yQ29tbWVudC5saW5lKGBAcGFyYW0gdGVycmFmb3JtUmVzb3VyY2UgVGhlIHBhcmVudCByZXNvdXJjZWApO1xuICAgIGNvbnN0cnVjdG9yQ29tbWVudC5saW5lKFxuICAgICAgYEBwYXJhbSB0ZXJyYWZvcm1BdHRyaWJ1dGUgVGhlIGF0dHJpYnV0ZSBvbiB0aGUgcGFyZW50IHJlc291cmNlIHRoaXMgY2xhc3MgaXMgcmVmZXJlbmNpbmdgLFxuICAgICk7XG4gICAgY29uc3RydWN0b3JDb21tZW50LmxpbmUoXG4gICAgICBgQHBhcmFtIHdyYXBzU2V0IHdoZXRoZXIgdGhlIGxpc3QgaXMgd3JhcHBpbmcgYSBzZXQgKHdpbGwgYWRkIHRvbGlzdCgpIHRvIGJlIGFibGUgdG8gYWNjZXNzIGFuIGl0ZW0gdmlhIGFuIGluZGV4KWAsXG4gICAgKTtcbiAgICBjb25zdHJ1Y3RvckNvbW1lbnQuZW5kKCk7XG4gICAgdGhpcy5jb2RlLm9wZW5CbG9jayhcbiAgICAgIGBjb25zdHJ1Y3Rvcih0ZXJyYWZvcm1SZXNvdXJjZTogY2RrdG4uSUludGVycG9sYXRpbmdQYXJlbnQsIHRlcnJhZm9ybUF0dHJpYnV0ZTogc3RyaW5nLCB3cmFwc1NldDogYm9vbGVhbilgLFxuICAgICk7XG4gICAgdGhpcy5jb2RlLmxpbmUoYHN1cGVyKHRlcnJhZm9ybVJlc291cmNlLCB0ZXJyYWZvcm1BdHRyaWJ1dGUsIHdyYXBzU2V0KTtgKTtcbiAgICB0aGlzLmNvZGUuY2xvc2VCbG9jaygpO1xuXG4gICAgdGhpcy5jb2RlLmxpbmUoKTtcbiAgICBjb25zdCBnZXR0ZXJDb21tZW50ID0gc2FuaXRpemVkQ29tbWVudCh0aGlzLmNvZGUpO1xuICAgIGdldHRlckNvbW1lbnQubGluZShgQHBhcmFtIGluZGV4IHRoZSBpbmRleCBvZiB0aGUgaXRlbSB0byByZXR1cm5gKTtcbiAgICBnZXR0ZXJDb21tZW50LmVuZCgpO1xuICAgIHRoaXMuY29kZS5vcGVuQmxvY2soYHB1YmxpYyBnZXQoaW5kZXg6IG51bWJlcik6ICR7c3RydWN0Lm1hcE5hbWV9YCk7XG4gICAgdGhpcy5jb2RlLmxpbmUoYHJldHVybiBuZXcgJHtzdHJ1Y3QubWFwTmFtZX0odGhpcywgXFxgW1xcJHtpbmRleH1dXFxgKTtgKTtcbiAgICB0aGlzLmNvZGUuY2xvc2VCbG9jaygpO1xuXG4gICAgdGhpcy5jb2RlLmNsb3NlQmxvY2soKTtcbiAgfVxuXG4gIHByaXZhdGUgZW1pdENvbXBsZXhMaXN0TWFwQ2xhc3NlcyhzdHJ1Y3Q6IFN0cnVjdCwgaXNTZXQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmVtaXRDb21wbGV4TGlzdE1hcENsYXNzKHN0cnVjdCwgaXNTZXQpO1xuICAgIHRoaXMuZW1pdENvbXBsZXhMaXN0Q2xhc3Moc3RydWN0KTtcbiAgfVxuXG4gIHByaXZhdGUgZW1pdENvbXBsZXhMaXN0TWFwQ2xhc3Moc3RydWN0OiBTdHJ1Y3QsIGlzU2V0OiBib29sZWFuKSB7XG4gICAgdGhpcy5jb2RlLmxpbmUoKTtcbiAgICB0aGlzLmNvZGUub3BlbkJsb2NrKFxuICAgICAgYGV4cG9ydCBjbGFzcyAke3N0cnVjdC5saXN0TWFwTmFtZX0gZXh0ZW5kcyBjZGt0bi5Db21wbGV4TWFwYCxcbiAgICApO1xuXG4gICAgaWYgKHN0cnVjdC5hc3NpZ25hYmxlKSB7XG4gICAgICB0aGlzLmNvZGUubGluZShcbiAgICAgICAgYHB1YmxpYyBpbnRlcm5hbFZhbHVlPyA6IHsgW2tleTogc3RyaW5nXTogJHtzdHJ1Y3QubmFtZX1bXSB9IHwgY2RrdG4uSVJlc29sdmFibGVgLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGlzLmNvZGUubGluZSgpO1xuICAgIGNvbnN0IGNvbnN0cnVjdG9yQ29tbWVudCA9IHNhbml0aXplZENvbW1lbnQodGhpcy5jb2RlKTtcbiAgICBjb25zdHJ1Y3RvckNvbW1lbnQubGluZShgQHBhcmFtIHRlcnJhZm9ybVJlc291cmNlIFRoZSBwYXJlbnQgcmVzb3VyY2VgKTtcbiAgICBjb25zdHJ1Y3RvckNvbW1lbnQubGluZShcbiAgICAgIGBAcGFyYW0gdGVycmFmb3JtQXR0cmlidXRlIFRoZSBhdHRyaWJ1dGUgb24gdGhlIHBhcmVudCByZXNvdXJjZSB0aGlzIGNsYXNzIGlzIHJlZmVyZW5jaW5nYCxcbiAgICApO1xuICAgIGNvbnN0cnVjdG9yQ29tbWVudC5lbmQoKTtcbiAgICB0aGlzLmNvZGUub3BlbkJsb2NrKFxuICAgICAgYGNvbnN0cnVjdG9yKHRlcnJhZm9ybVJlc291cmNlOiBjZGt0bi5JSW50ZXJwb2xhdGluZ1BhcmVudCwgdGVycmFmb3JtQXR0cmlidXRlOiBzdHJpbmcpYCxcbiAgICApO1xuICAgIHRoaXMuY29kZS5saW5lKGBzdXBlcih0ZXJyYWZvcm1SZXNvdXJjZSwgdGVycmFmb3JtQXR0cmlidXRlKTtgKTtcbiAgICB0aGlzLmNvZGUuY2xvc2VCbG9jaygpO1xuXG4gICAgdGhpcy5jb2RlLmxpbmUoKTtcbiAgICBjb25zdCBnZXR0ZXJDb21tZW50ID0gc2FuaXRpemVkQ29tbWVudCh0aGlzLmNvZGUpO1xuICAgIGdldHRlckNvbW1lbnQubGluZShgQHBhcmFtIGtleSB0aGUga2V5IG9mIHRoZSBpdGVtIHRvIHJldHVybmApO1xuICAgIGdldHRlckNvbW1lbnQuZW5kKCk7XG4gICAgdGhpcy5jb2RlLm9wZW5CbG9jayhgcHVibGljIGdldChrZXk6IHN0cmluZyk6ICR7c3RydWN0Lmxpc3ROYW1lfWApO1xuICAgIHRoaXMuY29kZS5saW5lKFxuICAgICAgYHJldHVybiBuZXcgJHtzdHJ1Y3QubGlzdE5hbWV9KHRoaXMsIFxcYFtcXCR7a2V5fV1cXGAsICR7aXNTZXR9KTtgLFxuICAgICk7XG4gICAgdGhpcy5jb2RlLmNsb3NlQmxvY2soKTtcblxuICAgIHRoaXMuY29kZS5jbG9zZUJsb2NrKCk7XG4gIH1cblxuICBwcml2YXRlIGVtaXRDb21wbGV4TGlzdExpc3RDbGFzc2VzKHN0cnVjdDogU3RydWN0KSB7XG4gICAgdGhpcy5lbWl0Q29tcGxleExpc3RMaXN0Q2xhc3Moc3RydWN0KTtcbiAgICB0aGlzLmVtaXRDb21wbGV4TGlzdENsYXNzKHN0cnVjdCk7XG4gIH1cblxuICBwcml2YXRlIGVtaXRDb21wbGV4TGlzdExpc3RDbGFzcyhzdHJ1Y3Q6IFN0cnVjdCkge1xuICAgIHRoaXMuY29kZS5saW5lKCk7XG4gICAgdGhpcy5jb2RlLm9wZW5CbG9jayhcbiAgICAgIGBleHBvcnQgY2xhc3MgJHtzdHJ1Y3QubGlzdExpc3ROYW1lfSBleHRlbmRzIGNka3RuLk1hcExpc3RgLCAvLyBkZXNwaXRlIG5hbWUsIG5lZWQgdGhlIHNhbWUgYmVoYXZpb3JcbiAgICApO1xuXG4gICAgaWYgKHN0cnVjdC5hc3NpZ25hYmxlKSB7XG4gICAgICB0aGlzLmNvZGUubGluZShcbiAgICAgICAgYHB1YmxpYyBpbnRlcm5hbFZhbHVlPyA6ICR7c3RydWN0Lm5hbWV9W11bXSB8IGNka3RuLklSZXNvbHZhYmxlYCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy5jb2RlLmxpbmUoKTtcbiAgICBjb25zdCBjb25zdHJ1Y3RvckNvbW1lbnQgPSBzYW5pdGl6ZWRDb21tZW50KHRoaXMuY29kZSk7XG4gICAgY29uc3RydWN0b3JDb21tZW50LmxpbmUoYEBwYXJhbSB0ZXJyYWZvcm1SZXNvdXJjZSBUaGUgcGFyZW50IHJlc291cmNlYCk7XG4gICAgY29uc3RydWN0b3JDb21tZW50LmxpbmUoXG4gICAgICBgQHBhcmFtIHRlcnJhZm9ybUF0dHJpYnV0ZSBUaGUgYXR0cmlidXRlIG9uIHRoZSBwYXJlbnQgcmVzb3VyY2UgdGhpcyBjbGFzcyBpcyByZWZlcmVuY2luZ2AsXG4gICAgKTtcbiAgICBjb25zdHJ1Y3RvckNvbW1lbnQubGluZShcbiAgICAgIGBAcGFyYW0gd3JhcHNTZXQgd2hldGhlciB0aGUgbGlzdCBpcyB3cmFwcGluZyBhIHNldCAod2lsbCBhZGQgdG9saXN0KCkgdG8gYmUgYWJsZSB0byBhY2Nlc3MgYW4gaXRlbSB2aWEgYW4gaW5kZXgpYCxcbiAgICApO1xuICAgIGNvbnN0cnVjdG9yQ29tbWVudC5lbmQoKTtcbiAgICB0aGlzLmNvZGUub3BlbkJsb2NrKFxuICAgICAgYGNvbnN0cnVjdG9yKHRlcnJhZm9ybVJlc291cmNlOiBjZGt0bi5JSW50ZXJwb2xhdGluZ1BhcmVudCwgdGVycmFmb3JtQXR0cmlidXRlOiBzdHJpbmcsIHdyYXBzU2V0OiBib29sZWFuKWAsXG4gICAgKTtcbiAgICB0aGlzLmNvZGUubGluZShgc3VwZXIodGVycmFmb3JtUmVzb3VyY2UsIHRlcnJhZm9ybUF0dHJpYnV0ZSwgd3JhcHNTZXQpO2ApO1xuICAgIHRoaXMuY29kZS5jbG9zZUJsb2NrKCk7XG5cbiAgICB0aGlzLmNvZGUubGluZSgpO1xuICAgIGNvbnN0IGdldHRlckNvbW1lbnQgPSBzYW5pdGl6ZWRDb21tZW50KHRoaXMuY29kZSk7XG4gICAgZ2V0dGVyQ29tbWVudC5saW5lKGBAcGFyYW0gaW5kZXggdGhlIGluZGV4IG9mIHRoZSBpdGVtIHRvIHJldHVybmApO1xuICAgIGdldHRlckNvbW1lbnQuZW5kKCk7XG4gICAgdGhpcy5jb2RlLm9wZW5CbG9jayhgcHVibGljIGdldChpbmRleDogbnVtYmVyKTogJHtzdHJ1Y3QubGlzdE5hbWV9YCk7XG4gICAgdGhpcy5jb2RlLmxpbmUoXG4gICAgICBgcmV0dXJuIG5ldyAke3N0cnVjdC5saXN0TmFtZX0odGhpcywgXFxgW1xcJHtpbmRleH1dXFxgLCAke1xuICAgICAgICBzdHJ1Y3QubmVzdGluZ01vZGUgPT09IFwic2V0bGlzdFwiIHx8IHN0cnVjdC5uZXN0aW5nTW9kZSA9PT0gXCJzZXRzZXRcIlxuICAgICAgfSk7YCxcbiAgICApO1xuICAgIHRoaXMuY29kZS5jbG9zZUJsb2NrKCk7XG5cbiAgICB0aGlzLmNvZGUuY2xvc2VCbG9jaygpO1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0SW50ZXJuYWxWYWx1ZUdldHRlcihzdHJ1Y3Q6IFN0cnVjdCkge1xuICAgIHRoaXMuY29kZS5vcGVuQmxvY2soXG4gICAgICBgcHVibGljIGdldCBpbnRlcm5hbFZhbHVlKCk6ICR7c3RydWN0Lm5hbWV9JHtcbiAgICAgICAgIXN0cnVjdC5pc0NsYXNzID8gXCIgfCBjZGt0bi5JUmVzb2x2YWJsZVwiIDogXCJcIlxuICAgICAgfSB8IHVuZGVmaW5lZGAsXG4gICAgKTtcblxuICAgIGlmICghc3RydWN0LmlzQ2xhc3MpIHtcbiAgICAgIHRoaXMuY29kZS5vcGVuQmxvY2soXCJpZiAodGhpcy5yZXNvbHZhYmxlVmFsdWUpXCIpO1xuICAgICAgdGhpcy5jb2RlLmxpbmUoXCJyZXR1cm4gdGhpcy5yZXNvbHZhYmxlVmFsdWU7XCIpO1xuICAgICAgdGhpcy5jb2RlLmNsb3NlQmxvY2soKTtcbiAgICB9XG5cbiAgICB0aGlzLmNvZGUubGluZShcImxldCBoYXNBbnlWYWx1ZXMgPSB0aGlzLmlzRW1wdHlPYmplY3Q7XCIpO1xuICAgIHRoaXMuY29kZS5saW5lKFwiY29uc3QgaW50ZXJuYWxWYWx1ZVJlc3VsdDogYW55ID0ge307XCIpO1xuICAgIGZvciAoY29uc3QgYXR0IG9mIHN0cnVjdC5hdHRyaWJ1dGVzKSB7XG4gICAgICBpZiAoYXR0LmlzU3RvcmVkKSB7XG4gICAgICAgIGlmIChhdHQuZ2V0dGVyVHlwZS5fdHlwZSA9PT0gXCJzdG9yZWRfY2xhc3NcIikge1xuICAgICAgICAgIHRoaXMuY29kZS5vcGVuQmxvY2soXG4gICAgICAgICAgICBgaWYgKHRoaXMuJHthdHQuc3RvcmFnZU5hbWV9Py5pbnRlcm5hbFZhbHVlICE9PSB1bmRlZmluZWQpYCxcbiAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuY29kZS5vcGVuQmxvY2soYGlmICh0aGlzLiR7YXR0LnN0b3JhZ2VOYW1lfSAhPT0gdW5kZWZpbmVkKWApO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY29kZS5saW5lKFwiaGFzQW55VmFsdWVzID0gdHJ1ZTtcIik7XG4gICAgICAgIGlmIChhdHQuZ2V0dGVyVHlwZS5fdHlwZSA9PT0gXCJzdG9yZWRfY2xhc3NcIikge1xuICAgICAgICAgIHRoaXMuY29kZS5saW5lKFxuICAgICAgICAgICAgYGludGVybmFsVmFsdWVSZXN1bHQuJHthdHQubmFtZX0gPSB0aGlzLiR7YXR0LnN0b3JhZ2VOYW1lfT8uaW50ZXJuYWxWYWx1ZTtgLFxuICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5jb2RlLmxpbmUoXG4gICAgICAgICAgICBgaW50ZXJuYWxWYWx1ZVJlc3VsdC4ke2F0dC5uYW1lfSA9IHRoaXMuJHthdHQuc3RvcmFnZU5hbWV9O2AsXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNvZGUuY2xvc2VCbG9jaygpO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLmNvZGUubGluZShcInJldHVybiBoYXNBbnlWYWx1ZXMgPyBpbnRlcm5hbFZhbHVlUmVzdWx0IDogdW5kZWZpbmVkO1wiKTtcbiAgICB0aGlzLmNvZGUuY2xvc2VCbG9jaygpO1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0SW50ZXJuYWxWYWx1ZVNldHRlcihzdHJ1Y3Q6IFN0cnVjdCkge1xuICAgIHRoaXMuY29kZS5vcGVuQmxvY2soXG4gICAgICBgcHVibGljIHNldCBpbnRlcm5hbFZhbHVlKHZhbHVlOiAke3N0cnVjdC5uYW1lfSR7XG4gICAgICAgICFzdHJ1Y3QuaXNDbGFzcyA/IFwiIHwgY2RrdG4uSVJlc29sdmFibGVcIiA6IFwiXCJcbiAgICAgIH0gfCB1bmRlZmluZWQpYCxcbiAgICApO1xuXG4gICAgdGhpcy5jb2RlLm9wZW5CbG9jayhcImlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKVwiKTtcbiAgICB0aGlzLmNvZGUubGluZShcInRoaXMuaXNFbXB0eU9iamVjdCA9IGZhbHNlO1wiKTtcbiAgICBpZiAoIXN0cnVjdC5pc0NsYXNzKSB7XG4gICAgICB0aGlzLmNvZGUubGluZShcInRoaXMucmVzb2x2YWJsZVZhbHVlID0gdW5kZWZpbmVkO1wiKTtcbiAgICB9XG4gICAgZm9yIChjb25zdCBhdHQgb2Ygc3RydWN0LmF0dHJpYnV0ZXMpIHtcbiAgICAgIGlmIChhdHQuaXNTdG9yZWQpIHtcbiAgICAgICAgaWYgKGF0dC5zZXR0ZXJUeXBlLl90eXBlID09PSBcInN0b3JlZF9jbGFzc1wiKSB7XG4gICAgICAgICAgdGhpcy5jb2RlLmxpbmUoYHRoaXMuJHthdHQuc3RvcmFnZU5hbWV9LmludGVybmFsVmFsdWUgPSB1bmRlZmluZWQ7YCk7XG4gICAgICAgIH0gZWxzZSBpZiAoYXR0LnNldHRlclR5cGUuX3R5cGUgIT09IFwibm9uZVwiKSB7XG4gICAgICAgICAgdGhpcy5jb2RlLmxpbmUoYHRoaXMuJHthdHQuc3RvcmFnZU5hbWV9ID0gdW5kZWZpbmVkO2ApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuY29kZS5jbG9zZUJsb2NrKCk7XG4gICAgaWYgKCFzdHJ1Y3QuaXNDbGFzcykge1xuICAgICAgdGhpcy5jb2RlLm9wZW5CbG9jayhcImVsc2UgaWYgKGNka3RuLlRva2VuaXphdGlvbi5pc1Jlc29sdmFibGUodmFsdWUpKVwiKTtcbiAgICAgIHRoaXMuY29kZS5saW5lKFwidGhpcy5pc0VtcHR5T2JqZWN0ID0gZmFsc2U7XCIpO1xuICAgICAgdGhpcy5jb2RlLmxpbmUoXCJ0aGlzLnJlc29sdmFibGVWYWx1ZSA9IHZhbHVlO1wiKTtcbiAgICAgIHRoaXMuY29kZS5jbG9zZUJsb2NrKCk7XG4gICAgfVxuICAgIHRoaXMuY29kZS5vcGVuQmxvY2soXCJlbHNlXCIpO1xuICAgIHRoaXMuY29kZS5saW5lKFwidGhpcy5pc0VtcHR5T2JqZWN0ID0gT2JqZWN0LmtleXModmFsdWUpLmxlbmd0aCA9PT0gMDtcIik7XG4gICAgaWYgKCFzdHJ1Y3QuaXNDbGFzcykge1xuICAgICAgdGhpcy5jb2RlLmxpbmUoXCJ0aGlzLnJlc29sdmFibGVWYWx1ZSA9IHVuZGVmaW5lZDtcIik7XG4gICAgfVxuICAgIGZvciAoY29uc3QgYXR0IG9mIHN0cnVjdC5hdHRyaWJ1dGVzKSB7XG4gICAgICBpZiAoYXR0LmlzU3RvcmVkKSB7XG4gICAgICAgIGlmIChhdHQuc2V0dGVyVHlwZS5fdHlwZSA9PT0gXCJzdG9yZWRfY2xhc3NcIikge1xuICAgICAgICAgIHRoaXMuY29kZS5saW5lKFxuICAgICAgICAgICAgYHRoaXMuJHthdHQuc3RvcmFnZU5hbWV9LmludGVybmFsVmFsdWUgPSB2YWx1ZS4ke2F0dC5uYW1lfTtgLFxuICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSBpZiAoYXR0LnNldHRlclR5cGUuX3R5cGUgIT09IFwibm9uZVwiKSB7XG4gICAgICAgICAgdGhpcy5jb2RlLmxpbmUoYHRoaXMuJHthdHQuc3RvcmFnZU5hbWV9ID0gdmFsdWUuJHthdHQubmFtZX07YCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5jb2RlLmNsb3NlQmxvY2soKTtcbiAgICB0aGlzLmNvZGUuY2xvc2VCbG9jaygpO1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0VG9IY2xUZXJyYWZvcm1GdW5jdGlvbihzdHJ1Y3Q6IFN0cnVjdCkge1xuICAgIHRoaXMuY29kZS5saW5lKCk7XG4gICAgdGhpcy5jb2RlLm9wZW5CbG9jayhcbiAgICAgIGBleHBvcnQgZnVuY3Rpb24gJHtkb3duY2FzZUZpcnN0KHN0cnVjdC5uYW1lKX1Ub0hjbFRlcnJhZm9ybShzdHJ1Y3Q/OiAke1xuICAgICAgICBzdHJ1Y3QuaXNTaW5nbGVJdGVtICYmICFzdHJ1Y3QuaXNQcm92aWRlclxuICAgICAgICAgID8gYCR7c3RydWN0Lm5hbWV9T3V0cHV0UmVmZXJlbmNlIHwgYFxuICAgICAgICAgIDogXCJcIlxuICAgICAgfSR7c3RydWN0Lm5hbWV9JHshc3RydWN0LmlzQ2xhc3MgPyBcIiB8IGNka3RuLklSZXNvbHZhYmxlXCIgOiBcIlwifSk6IGFueWAsXG4gICAgKTtcbiAgICB0aGlzLmNvZGUubGluZShcbiAgICAgIGBpZiAoIWNka3RuLmNhbkluc3BlY3Qoc3RydWN0KSB8fCBjZGt0bi5Ub2tlbml6YXRpb24uaXNSZXNvbHZhYmxlKHN0cnVjdCkpIHsgcmV0dXJuIHN0cnVjdDsgfWAsXG4gICAgKTtcbiAgICB0aGlzLmNvZGUub3BlbkJsb2NrKGBpZiAoY2RrdG4uaXNDb21wbGV4RWxlbWVudChzdHJ1Y3QpKWApO1xuICAgIHRoaXMuY29kZS5saW5lKFxuICAgICAgYHRocm93IG5ldyBFcnJvcihcIkEgY29tcGxleCBlbGVtZW50IHdhcyB1c2VkIGFzIGNvbmZpZ3VyYXRpb24sIHRoaXMgaXMgbm90IHN1cHBvcnRlZDogaHR0cHM6Ly9jZGt0bi5pby9kb2NzL2NvbmNlcHRzL3Jlc291cmNlcyNyZWZlcmVuY2VzXCIpO2AsXG4gICAgKTtcbiAgICB0aGlzLmNvZGUuY2xvc2VCbG9jaygpO1xuXG4gICAgdGhpcy5jb2RlLm9wZW4oYGNvbnN0IGF0dHJzID0ge2ApO1xuXG4gICAgZm9yIChjb25zdCBhdHQgb2Ygc3RydWN0LmFzc2lnbmFibGVBdHRyaWJ1dGVzKSB7XG4gICAgICB0aGlzLmF0dHJpYnV0ZXNFbWl0dGVyLmVtaXRUb0hjbFRlcnJhZm9ybShhdHQsIHRydWUpO1xuICAgIH1cblxuICAgIHRoaXMuY29kZS5jbG9zZShgfTtgKTtcblxuICAgIGlmIChzdHJ1Y3QuYXNzaWduYWJsZUF0dHJpYnV0ZXMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5jb2RlLmxpbmUoKTtcbiAgICAgIHRoaXMuY29kZS5saW5lKGAvLyByZW1vdmUgdW5kZWZpbmVkIGF0dHJpYnV0ZXNgKTtcbiAgICAgIHRoaXMuY29kZS5saW5lKFxuICAgICAgICBgcmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyhPYmplY3QuZW50cmllcyhhdHRycykuZmlsdGVyKChbXywgdmFsdWVdKSA9PiB2YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHZhbHVlLnZhbHVlICE9PSB1bmRlZmluZWQpKTtgLFxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jb2RlLmxpbmUoYHJldHVybiBhdHRycztgKTtcbiAgICB9XG5cbiAgICB0aGlzLmNvZGUuY2xvc2VCbG9jaygpO1xuICAgIHRoaXMuY29kZS5saW5lKCk7XG4gIH1cblxuICBwcml2YXRlIGVtaXRUb1RlcnJhZm9ybUZ1bmN0aW9uKHN0cnVjdDogU3RydWN0KSB7XG4gICAgdGhpcy5jb2RlLmxpbmUoKTtcbiAgICB0aGlzLmNvZGUub3BlbkJsb2NrKFxuICAgICAgYGV4cG9ydCBmdW5jdGlvbiAke2Rvd25jYXNlRmlyc3Qoc3RydWN0Lm5hbWUpfVRvVGVycmFmb3JtKHN0cnVjdD86ICR7XG4gICAgICAgIHN0cnVjdC5pc1NpbmdsZUl0ZW0gJiYgIXN0cnVjdC5pc1Byb3ZpZGVyXG4gICAgICAgICAgPyBgJHtzdHJ1Y3QubmFtZX1PdXRwdXRSZWZlcmVuY2UgfCBgXG4gICAgICAgICAgOiBcIlwiXG4gICAgICB9JHtzdHJ1Y3QubmFtZX0keyFzdHJ1Y3QuaXNDbGFzcyA/IFwiIHwgY2RrdG4uSVJlc29sdmFibGVcIiA6IFwiXCJ9KTogYW55YCxcbiAgICApO1xuICAgIHRoaXMuY29kZS5saW5lKFxuICAgICAgYGlmICghY2RrdG4uY2FuSW5zcGVjdChzdHJ1Y3QpIHx8IGNka3RuLlRva2VuaXphdGlvbi5pc1Jlc29sdmFibGUoc3RydWN0KSkgeyByZXR1cm4gc3RydWN0OyB9YCxcbiAgICApO1xuICAgIHRoaXMuY29kZS5vcGVuQmxvY2soYGlmIChjZGt0bi5pc0NvbXBsZXhFbGVtZW50KHN0cnVjdCkpYCk7XG4gICAgdGhpcy5jb2RlLmxpbmUoXG4gICAgICBgdGhyb3cgbmV3IEVycm9yKFwiQSBjb21wbGV4IGVsZW1lbnQgd2FzIHVzZWQgYXMgY29uZmlndXJhdGlvbiwgdGhpcyBpcyBub3Qgc3VwcG9ydGVkOiBodHRwczovL2Nka3RuLmlvL2RvY3MvY29uY2VwdHMvcmVzb3VyY2VzI3JlZmVyZW5jZXNcIik7YCxcbiAgICApO1xuICAgIHRoaXMuY29kZS5jbG9zZUJsb2NrKCk7XG5cbiAgICB0aGlzLmNvZGUub3BlbkJsb2NrKFwicmV0dXJuXCIpO1xuICAgIGZvciAoY29uc3QgYXR0IG9mIHN0cnVjdC5hc3NpZ25hYmxlQXR0cmlidXRlcykge1xuICAgICAgdGhpcy5hdHRyaWJ1dGVzRW1pdHRlci5lbWl0VG9UZXJyYWZvcm0oYXR0LCB0cnVlKTtcbiAgICB9XG4gICAgdGhpcy5jb2RlLmNsb3NlQmxvY2soXCI7XCIpO1xuICAgIHRoaXMuY29kZS5jbG9zZUJsb2NrKCk7XG4gICAgdGhpcy5jb2RlLmxpbmUoKTtcbiAgfVxufVxuIl19
513
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RydWN0LWVtaXR0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZ2V0L2dlbmVyYXRvci9lbWl0dGVyL3N0cnVjdC1lbWl0dGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUdBLHNDQUFnRTtBQUNoRSw2REFBeUQ7QUFDekQsd0NBQThDO0FBQzlDLDJDQUE2QjtBQUM3Qiw2REFBcUU7QUFFckUsOERBQXlEO0FBRXpELE1BQWEsYUFBYTtJQUl4QixZQUNtQixJQUFlLEVBQ2hDLGVBQXVCO1FBRE4sU0FBSSxHQUFKLElBQUksQ0FBVztRQUdoQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxzQ0FBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDMUQsSUFBSSxDQUFDLGVBQWUsR0FBRyxlQUFlLENBQUM7SUFDekMsQ0FBQztJQUVNLElBQUksQ0FBQyxRQUF1QjtRQUNqQyxJQUFJLFFBQVEsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1lBQ3BDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN2QyxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDN0IsQ0FBQztJQUNILENBQUM7SUFFRCwrR0FBK0c7SUFDL0csMEVBQTBFO0lBQzFFLHFHQUFxRztJQUM3RixnQkFBZ0IsQ0FBQyxHQUFtQjtRQUMxQyxJQUFJLEdBQUcsQ0FBQyxJQUFJLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDdEIsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQ1osb0pBQW9KLENBQ3JKLENBQUM7WUFDRixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FDWiw2SkFBNkosQ0FDOUosQ0FBQztR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LENBQUMsQ0FBQztRQUMxQixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDbkIsQ0FBQztDQUNGO0FBL3BCRCxzQ0ErcEJDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluY1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcbmltcG9ydCB7IENvZGVNYWtlciB9IGZyb20gXCJjb2RlbWFrZXJcIjtcbmltcG9ydCB7IFJlc291cmNlTW9kZWwsIFN0cnVjdCwgQ29uZmlnU3RydWN0IH0gZnJvbSBcIi4uL21vZGVsc1wiO1xuaW1wb3J0IHsgQXR0cmlidXRlc0VtaXR0ZXIgfSBmcm9tIFwiLi9hdHRyaWJ1dGVzLWVtaXR0ZXJcIjtcbmltcG9ydCB7IGRvd25jYXNlRmlyc3QgfSBmcm9tIFwiLi4vLi4vLi4vdXRpbFwiO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IHsgU1RSVUNUX1NIQVJESU5HX1RIUkVTSE9MRCB9IGZyb20gXCIuLi9tb2RlbHMvcmVzb3VyY2UtbW9kZWxcIjtcbmltcG9ydCB7IEF0dHJpYnV0ZU1vZGVsIH0gZnJvbSBcIi4uL21vZGVscy9hdHRyaWJ1dGUtbW9kZWxcIjtcbmltcG9ydCB7IHNhbml0aXplZENvbW1lbnQgfSBmcm9tIFwiLi4vc2FuaXRpemVkLWNvbW1lbnRzXCI7XG5cbmV4cG9ydCBjbGFzcyBTdHJ1Y3RFbWl0dGVyIHtcbiAgYXR0cmlidXRlc0VtaXR0ZXI6IEF0dHJpYnV0ZXNFbWl0dGVyO1xuICBwcml2YXRlIHJlYWRvbmx5IGltcG9ydEV4dGVuc2lvbjogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY29kZTogQ29kZU1ha2VyLFxuICAgIGltcG9ydEV4dGVuc2lvbjogc3RyaW5nLFxuICApIHtcbiAgICB0aGlzLmF0dHJpYnV0ZXNFbWl0dGVyID0gbmV3IEF0dHJpYnV0ZXNFbWl0dGVyKHRoaXMuY29kZSk7XG4gICAgdGhpcy5pbXBvcnRFeHRlbnNpb24gPSBpbXBvcnRFeHRlbnNpb247XG4gIH1cblxuICBwdWJsaWMgZW1pdChyZXNvdXJjZTogUmVzb3VyY2VNb2RlbCkge1xuICAgIGlmIChyZXNvdXJjZS5zdHJ1Y3RzUmVxdWlyZVNoYXJkaW5nKSB7XG4gICAgICB0aGlzLmVtaXROYW1lc3BhY2VkU3RydWN0cyhyZXNvdXJjZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZW1pdFN0cnVjdHMocmVzb3VyY2UpO1xuICAgIH1cbiAgfVxuXG4gIC8vIER1ZSB0byBodHRwczovL2dpdGh1Yi5jb20vaGFzaGljb3JwL3RlcnJhZm9ybS1wbHVnaW4tc2RrL2NvbW1pdC8yMzg3ZWI4NWUzMmMwNjRiNGE2MjcxOGM5ZjVjODBiZjAwZGM3ZmI5IGFsbFxuICAvLyByZXNvdXJjZXMgZnJvbSBwcm92aWRlcnMgdXNpbmcgdGhlIG9sZCBTREsgaGF2ZSB0aGUgaWQgZmllbGQgYnkgZGVmYXVsdFxuICAvLyBXZSBoYXZlIG5vIHdheSB0byBkaXN0aW5ndWlzaCB0aGVtIHRocm91Z2ggdGhlIHByb3ZpZGVyIHNjaGVtYSwgc28gYSB3b3JkIG9mIHdhcm5pbmcgZm9yIG91ciB1c2Vyc1xuICBwcml2YXRlIHdhcm5BYm91dElkRmllbGQoYXR0OiBBdHRyaWJ1dGVNb2RlbCkge1xuICAgIGlmIChhdHQubmFtZSA9PT0gXCJpZFwiKSB7XG4gICAgICB0aGlzLmNvZGUubGluZShgKmApO1xuICAgICAgdGhpcy5jb2RlLmxpbmUoXG4gICAgICAgIGAqIFBsZWFzZSBiZSBhd2FyZSB0aGF0IHRoZSBpZCBmaWVsZCBpcyBhdXRvbWF0aWNhbGx5IGFkZGVkIHRvIGFsbCByZXNvdXJjZXMgaW4gVGVycmFmb3JtIHByb3ZpZGVycyB1c2luZyBhIFRlcnJhZm9ybSBwcm92aWRlciBTREsgdmVyc2lvbiBiZWxvdyAyLmAsXG4gICAgICApO1xuICAgICAgdGhpcy5jb2RlLmxpbmUoXG4gICAgICAgIGAqIElmIHlvdSBleHBlcmllbmNlIHByb2JsZW1zIHNldHRpbmcgdGhpcyB2YWx1ZSBpdCBtaWdodCBub3QgYmUgc2V0dGFibGUuIFBsZWFzZSB0YWtlIGEgbG9vayBhdCB0aGUgcHJvdmlkZXIgZG9jdW1lbnRhdGlvbiB0byBlbnN1cmUgaXQgc2hvdWxkIGJlIHNldHRhYmxlLmAsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBlbWl0SW50ZXJmYWNlKFxuICAgIHJlc291cmNlOiBSZXNvdXJjZU1vZGVsLFxuICAgIHN0cnVjdDogU3RydWN0LFxuICAgIG5hbWUgPSBzdHJ1Y3QubmFtZSxcbiAgKSB7XG4gICAgaWYgKHJlc291cmNlLmlzUHJvdmlkZXIpIHtcbiAgICAgIHRoaXMuY29kZS5vcGVuQmxvY2soYGV4cG9ydCBpbnRlcmZhY2UgJHtuYW1lfWApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNvZGUub3BlbkJsb2NrKGBleHBvcnQgaW50ZXJmYWNlICR7bmFtZX0ke3N0cnVjdC5leHRlbmRzfWApO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgYXR0IG9mIHN0cnVjdC5hc3NpZ25hYmxlQXR0cmlidXRlcykge1xuICAgICAgY29uc3QgY29tbWVudCA9IHNhbml0aXplZENvbW1lbnQodGhpcy5jb2RlKTtcbiAgICAgIGlmIChhdHQuZGVzY3JpcHRpb24pIHtcbiAgICAgICAgY29tbWVudC5saW5lKGF0dC5kZXNjcmlwdGlvbik7XG4gICAgICAgIGNvbW1lbnQubGluZShgYCk7XG4gICAgICAgIGNvbW1lbnQubGluZShcbiAgICAgICAgICBgRG9jcyBhdCAke3Jlc291cmNlLmRvY3NSZWdpc3RyeU5hbWV9OiB7QGxpbmsgJHtyZXNvdXJjZS5saW5rVG9Eb2NzfSMke2F0dC50ZXJyYWZvcm1OYW1lfSAke3Jlc291cmNlLmNsYXNzTmFtZX0jJHthdHQudGVycmFmb3JtTmFtZX19YCxcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy53YXJuQWJvdXRJZEZpZWxkKGF0dCk7XG4gICAgICAgIGNvbW1lbnQuZW5kKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb21tZW50LmxpbmUoXG4gICAgICAgICAgYERvY3MgYXQgJHtyZXNvdXJjZS5kb2NzUmVnaXN0cnlOYW1lfToge0BsaW5rICR7cmVzb3VyY2UubGlua1RvRG9jc30jJHthdHQudGVycmFmb3JtTmFtZX0gJHtyZXNvdXJjZS5jbGFzc05hbWV9IyR7YXR0LnRlcnJhZm9ybU5hbWV9fWAsXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMud2FybkFib3V0SWRGaWVsZChhdHQpO1xuICAgICAgICBjb21tZW50LmVuZCgpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmNvZGUubGluZShgcmVhZG9ubHkgJHthdHQudHlwZURlZmluaXRpb259O2ApO1xuICAgIH1cbiAgICB0aGlzLmNvZGUuY2xvc2VCbG9jaygpO1xuXG4gICAgaWYgKCEoc3RydWN0IGluc3RhbmNlb2YgQ29uZmlnU3RydWN0KSkge1xuICAgICAgdGhpcy5lbWl0VG9UZXJyYWZvcm1GdW5jdGlvbihzdHJ1Y3QpO1xuICAgICAgdGhpcy5lbWl0VG9IY2xUZXJyYWZvcm1GdW5jdGlvbihzdHJ1Y3QpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZW1pdFN0cnVjdHMocmVzb3VyY2U6IFJlc291cmNlTW9kZWwpIHtcbiAgICByZXNvdXJjZS5zdHJ1Y3RzLmZvckVhY2goKHN0cnVjdCkgPT4ge1xuICAgICAgaWYgKHN0cnVjdCBpbnN0YW5jZW9mIENvbmZpZ1N0cnVjdCkge1xuICAgICAgICB0aGlzLmVtaXRJbnRlcmZhY2UocmVzb3VyY2UsIHN0cnVjdCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBXZSB1c2UgdGhlIGludGVyZmFjZSBoZXJlIGZvciB0aGUgY29uZmlndXJhdGlvbiAvIGlucHV0cyBvZiBhIHJlc291cmNlIC8gbmVzdGVkIGJsb2NrXG4gICAgICAgIHRoaXMuZW1pdEludGVyZmFjZShyZXNvdXJjZSwgc3RydWN0KTtcbiAgICAgICAgLy8gQW5kIHdlIHVzZSB0aGUgY2xhc3MgZm9yIHRoZSBhdHRyaWJ1dGVzIC8gb3V0cHV0cyBvZiBhIHJlc291cmNlIC8gbmVzdGVkIGJsb2NrXG4gICAgICAgIGlmICghc3RydWN0LmlzUHJvdmlkZXIpIHtcbiAgICAgICAgICB0aGlzLmVtaXRDbGFzcyhzdHJ1Y3QpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGVtaXROYW1lc3BhY2VkU3RydWN0cyhyZXNvdXJjZTogUmVzb3VyY2VNb2RlbCkge1xuICAgIC8vIGl0ZXJhdGUgb3ZlciBhbGwgc3RydWN0cyBpbiBiYXRjaGVzIG9mIDQwMCB0byBhdm9pZCB0b28gbWFueSBleHBvcnRzICg+IDEyMDApXG4gICAgY29uc3Qgc3RydWN0SW1wb3J0czogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9O1xuXG4gICAgLy8gZHJvcCBjb25maWdTdHJ1Y3QgZnJvbSByZXNvdXJjZS5zdHJ1Y3RzIHRvIGF2b2lkIGRvdWJsZSBpbXBvcnRcbiAgICBjb25zdCBzdHJ1Y3RzV2l0aG91dENvbmZpZ1N0cnVjdCA9IHJlc291cmNlLnN0cnVjdHMuc2xpY2UoMSk7XG5cbiAgICBjb25zdCBzdHJ1Y3RTcGxpdHM6IFN0cnVjdFtdW10gPSBbW11dO1xuICAgIGNvbnN0IHNwbGl0Q291bnRzOiBudW1iZXJbXSA9IFswXTtcbiAgICBzdHJ1Y3RzV2l0aG91dENvbmZpZ1N0cnVjdC5mb3JFYWNoKChzdHJ1Y3QpID0+IHtcbiAgICAgIGlmIChcbiAgICAgICAgc3BsaXRDb3VudHNbc3BsaXRDb3VudHMubGVuZ3RoIC0gMV0gKyBzdHJ1Y3QuZXhwb3J0Q291bnQgPD1cbiAgICAgICAgU1RSVUNUX1NIQVJESU5HX1RIUkVTSE9MRFxuICAgICAgKSB7XG4gICAgICAgIHN0cnVjdFNwbGl0c1tzdHJ1Y3RTcGxpdHMubGVuZ3RoIC0gMV0ucHVzaChzdHJ1Y3QpO1xuICAgICAgICBzcGxpdENvdW50c1tzcGxpdENvdW50cy5sZW5ndGggLSAxXSArPSBzdHJ1Y3QuZXhwb3J0Q291bnQ7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzdHJ1Y3RTcGxpdHMucHVzaChbc3RydWN0XSk7XG4gICAgICAgIHNwbGl0Q291bnRzLnB1c2goc3RydWN0LmV4cG9ydENvdW50KTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIC8vIGZpbGwgdGhlIHN0cnVjdCBpbXBvcnRzIG1hcHBpbmcgYmVmb3JlIGNvZGUgZ2VuZXJhdGlvbiBzbyB0aGF0IGltcG9ydHMgY2FuXG4gICAgLy8gcG9pbnQgdG8gbm90IHlldCBnZW5lcmF0ZWQgc3RydWN0IGZpbGVzXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzdHJ1Y3RTcGxpdHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IHN0cnVjdEZpbGVuYW1lID0gYHN0cnVjdHMke2kgKiBTVFJVQ1RfU0hBUkRJTkdfVEhSRVNIT0xEfS50c2A7XG4gICAgICBjb25zdCBzdHJ1Y3RzID0gc3RydWN0U3BsaXRzW2ldO1xuXG4gICAgICAvLyBhc3NvY2lhdGUgY3VycmVudCBzdHJ1Y3RzIGJhdGNoIHdpdGggdGhlIGZpbGUgaXQgd2lsbCBiZSB3cml0dGVuIHRvXG4gICAgICAvLyB0byBmaW5kIGl0IGluIHN1YnNlcXVlbnQgZmlsZXMgZm9yIGltcG9ydGluZ1xuICAgICAgc3RydWN0cy5mb3JFYWNoKFxuICAgICAgICAoc3RydWN0KSA9PiAoc3RydWN0SW1wb3J0c1tzdHJ1Y3QubmFtZV0gPSBzdHJ1Y3RGaWxlbmFtZSksXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IHN0cnVjdFBhdGhzID0gW107XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzdHJ1Y3RTcGxpdHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IHN0cnVjdHNUb0ltcG9ydDogUmVjb3JkPHN0cmluZywgc3RyaW5nW10+ID0ge307XG4gICAgICBjb25zdCBzdHJ1Y3RzID0gc3RydWN0U3BsaXRzW2ldO1xuICAgICAgY29uc3Qgc3RydWN0RmlsZW5hbWUgPSBgc3RydWN0cyR7aSAqIFNUUlVDVF9TSEFSRElOR19USFJFU0hPTER9LnRzYDtcbiAgICAgIHN0cnVjdFBhdGhzLnB1c2goc3RydWN0RmlsZW5hbWUpO1xuXG4gICAgICAvLyBmaW5kIGFsbCBzdHJ1Y3RzIHRoYXQgbmVlZCB0byBiZSBpbXBvcnRlZCBpbiB0aGlzIGZpbGVcbiAgICAgIHN0cnVjdHMuZm9yRWFjaCgoc3RydWN0KSA9PiB7XG4gICAgICAgIHN0cnVjdC5hdHRyaWJ1dGVzLmZvckVhY2goKGF0dCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHN0cnVjdFR5cGVOYW1lID0gYXR0LnR5cGUuc3RydWN0Py5uYW1lO1xuICAgICAgICAgIGNvbnN0IGZpbGVUb0ltcG9ydCA9IHN0cnVjdEltcG9ydHNbc3RydWN0VHlwZU5hbWUgPz8gXCJcIl07XG5cbiAgICAgICAgICBpZiAoZmlsZVRvSW1wb3J0ICYmIGZpbGVUb0ltcG9ydCAhPT0gc3RydWN0RmlsZW5hbWUpIHtcbiAgICAgICAgICAgIGNvbnN0IGF0dFR5cGVTdHJ1Y3QgPSBhdHQudHlwZS5zdHJ1Y3Q7XG4gICAgICAgICAgICBpZiAoIWF0dFR5cGVTdHJ1Y3QpXG4gICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgJHtzdHJ1Y3RUeXBlTmFtZX0gaXMgbm90IGEgc3RydWN0YCk7XG5cbiAgICAgICAgICAgIHN0cnVjdHNUb0ltcG9ydFtmaWxlVG9JbXBvcnRdID8/PSBbXTtcblxuICAgICAgICAgICAgY29uc3QgYXR0UmVmZXJlbmNlcyA9IGF0dC5nZXRSZWZlcmVuY2VkVHlwZXMoXG4gICAgICAgICAgICAgIHN0cnVjdCBpbnN0YW5jZW9mIENvbmZpZ1N0cnVjdCxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBpZiAoYXR0UmVmZXJlbmNlcykge1xuICAgICAgICAgICAgICBzdHJ1Y3RzVG9JbXBvcnRbZmlsZVRvSW1wb3J0XS5wdXNoKC4uLmF0dFJlZmVyZW5jZXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9KTtcblxuICAgICAgY29uc3QgbmFtZXNwYWNlZEZpbGVQYXRoID0gcGF0aC5qb2luKFxuICAgICAgICByZXNvdXJjZS5zdHJ1Y3RzRm9sZGVyUGF0aCxcbiAgICAgICAgc3RydWN0RmlsZW5hbWUsXG4gICAgICApO1xuXG4gICAgICB0aGlzLmNvZGUub3BlbkZpbGUobmFtZXNwYWNlZEZpbGVQYXRoKTtcbiAgICAgIC8vIHRoZSBzdHJ1Y3RzIG9ubHkgbWFrZXMgdXNlIG9mIGNka3RuIG5vdCBjb25zdHJ1Y3RzXG4gICAgICB0aGlzLmNvZGUubGluZShgaW1wb3J0ICogYXMgY2RrdG4gZnJvbSAnY2RrdG4nO2ApO1xuICAgICAgT2JqZWN0LmVudHJpZXMoc3RydWN0c1RvSW1wb3J0KS5mb3JFYWNoKChbZmlsZVRvSW1wb3J0LCBzdHJ1Y3RzXSkgPT4ge1xuICAgICAgICBjb25zdCB0YXJnZXQgPSBwYXRoLmJhc2VuYW1lKGZpbGVUb0ltcG9ydCwgXCIudHNcIik7XG4gICAgICAgIHRoaXMuY29kZS5saW5lKFxuICAgICAgICAgIGBpbXBvcnQgeyAke1suLi5uZXcgU2V0KHN0cnVjdHMpXS5qb2luKFwiLFxcblwiKX0gfSBmcm9tICcuLyR7dGFyZ2V0fSR7dGhpcy5pbXBvcnRFeHRlbnNpb259JztgLFxuICAgICAgICApO1xuICAgICAgfSk7XG5cbiAgICAgIHN0cnVjdHMuZm9yRWFjaCgoc3RydWN0KSA9PiB7XG4gICAgICAgIGlmIChzdHJ1Y3QgaW5zdGFuY2VvZiBDb25maWdTdHJ1Y3QpIHtcbiAgICAgICAgICB0aGlzLmVtaXRJbnRlcmZhY2UocmVzb3VyY2UsIHN0cnVjdCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gV2UgdXNlIHRoZSBpbnRlcmZhY2UgaGVyZSBmb3IgdGhlIGNvbmZpZ3VyYXRpb24gLyBpbnB1dHMgb2YgYSByZXNvdXJjZSAvIG5lc3RlZCBibG9ja1xuICAgICAgICAgIHRoaXMuZW1pdEludGVyZmFjZShyZXNvdXJjZSwgc3RydWN0KTtcbiAgICAgICAgICAvLyBBbmQgd2UgdXNlIHRoZSBjbGFzcyBmb3IgdGhlIGF0dHJpYnV0ZXMgLyBvdXRwdXRzIG9mIGEgcmVzb3VyY2UgLyBuZXN0ZWQgYmxvY2tcbiAgICAgICAgICBpZiAoIXN0cnVjdC5pc1Byb3ZpZGVyKSB7XG4gICAgICAgICAgICB0aGlzLmVtaXRDbGFzcyhzdHJ1Y3QpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICB0aGlzLmNvZGUuY2xvc2VGaWxlKG5hbWVzcGFjZWRGaWxlUGF0aCk7XG4gICAgfVxuXG4gICAgLy8gZW1pdCB0aGUgaW5kZXggZmlsZSB0aGF0IGV4cG9ydHMgYWxsIHRoZSBzdHJ1Y3QgZmlsZXMgd2UndmUganVzdCBnZW5lcmF0ZWRcbiAgICBjb25zdCBpbmRleEZpbGVQYXRoID0gcGF0aC5qb2luKHJlc291cmNlLnN0cnVjdHNGb2xkZXJQYXRoLCBcImluZGV4LnRzXCIpO1xuXG4gICAgdGhpcy5jb2RlLm9wZW5GaWxlKGluZGV4RmlsZVBhdGgpO1xuICAgIHN0cnVjdFBhdGhzLmZvckVhY2goKHN0cnVjdFBhdGgpID0+IHtcbiAgICAgIGNvbnN0IHRhcmdldCA9IHBhdGguYmFzZW5hbWUoc3RydWN0UGF0aCwgXCIudHNcIik7XG4gICAgICB0aGlzLmNvZGUubGluZShgZXhwb3J0ICogZnJvbSAnLi8ke3RhcmdldH0ke3RoaXMuaW1wb3J0RXh0ZW5zaW9ufSc7YCk7XG4gICAgfSk7XG4gICAgdGhpcy5jb2RlLmNsb3NlRmlsZShpbmRleEZpbGVQYXRoKTtcbiAgfVxuXG4gIHByaXZhdGUgZW1pdENsYXNzKHN0cnVjdDogU3RydWN0KSB7XG4gICAgdGhpcy5jb2RlLm9wZW5CbG9jayhcbiAgICAgIGBleHBvcnQgY2xhc3MgJHtzdHJ1Y3Qub3V0cHV0UmVmZXJlbmNlTmFtZX0gZXh0ZW5kcyBjZGt0bi5Db21wbGV4T2JqZWN0YCxcbiAgICApO1xuXG4gICAgdGhpcy5jb2RlLmxpbmUoXCJwcml2YXRlIGlzRW1wdHlPYmplY3QgPSBmYWxzZTtcIik7XG4gICAgaWYgKCFzdHJ1Y3QuaXNDbGFzcykge1xuICAgICAgdGhpcy5jb2RlLmxpbmUoXCJwcml2YXRlIHJlc29sdmFibGVWYWx1ZT86IGNka3RuLklSZXNvbHZhYmxlO1wiKTtcbiAgICB9XG4gICAgdGhpcy5jb2RlLmxpbmUoKTtcblxuICAgIGNvbnN0IGNvbW1lbnQgPSBzYW5pdGl6ZWRDb21tZW50KHRoaXMuY29kZSk7XG4gICAgY29tbWVudC5saW5lKGBAcGFyYW0gdGVycmFmb3JtUmVzb3VyY2UgVGhlIHBhcmVudCByZXNvdXJjZWApO1xuICAgIGNvbW1lbnQubGluZShcbiAgICAgIGBAcGFyYW0gdGVycmFmb3JtQXR0cmlidXRlIFRoZSBhdHRyaWJ1dGUgb24gdGhlIHBhcmVudCByZXNvdXJjZSB0aGlzIGNsYXNzIGlzIHJlZmVyZW5jaW5nYCxcbiAgICApO1xuICAgIGlmIChzdHJ1Y3QuaXNTaW5nbGVJdGVtKSB7XG4gICAgICBjb21tZW50LmVuZCgpO1xuICAgICAgdGhpcy5jb2RlLm9wZW5CbG9jayhcbiAgICAgICAgYHB1YmxpYyBjb25zdHJ1Y3Rvcih0ZXJyYWZvcm1SZXNvdXJjZTogY2RrdG4uSUludGVycG9sYXRpbmdQYXJlbnQsIHRlcnJhZm9ybUF0dHJpYnV0ZTogc3RyaW5nKWAsXG4gICAgICApO1xuICAgICAgdGhpcy5jb2RlLmxpbmUoYHN1cGVyKHRlcnJhZm9ybVJlc291cmNlLCB0ZXJyYWZvcm1BdHRyaWJ1dGUsIGZhbHNlLCAwKTtgKTtcbiAgICAgIHRoaXMuY29kZS5jbG9zZUJsb2NrKCk7XG4gICAgfSBlbHNlIGlmIChcbiAgICAgIHN0cnVjdC5uZXN0aW5nTW9kZSA9PT0gXCJzaW5nbGVcIiB8fFxuICAgICAgc3RydWN0Lm5lc3RpbmdNb2RlID09PSBcIm9iamVjdFwiXG4gICAgKSB7XG4gICAgICBjb21tZW50LmVuZCgpO1xuICAgICAgdGhpcy5jb2RlLm9wZW5CbG9jayhcbiAgICAgICAgYHB1YmxpYyBjb25zdHJ1Y3Rvcih0ZXJyYWZvcm1SZXNvdXJjZTogY2RrdG4uSUludGVycG9sYXRpbmdQYXJlbnQsIHRlcnJhZm9ybUF0dHJpYnV0ZTogc3RyaW5nKWAsXG4gICAgICApO1xuICAgICAgdGhpcy5jb2RlLmxpbmUoYHN1cGVyKHRlcnJhZm9ybVJlc291cmNlLCB0ZXJyYWZvcm1BdHRyaWJ1dGUsIGZhbHNlKTtgKTtcbiAgICAgIHRoaXMuY29kZS5jbG9zZUJsb2NrKCk7XG4gICAgfSBlbHNlIGlmIChzdHJ1Y3QubmVzdGluZ01vZGUuc3RhcnRzV2l0aChcIm1hcFwiKSkge1xuICAgICAgdGhpcy5jb2RlLmxpbmUoXG4gICAgICAgIGAqIEBwYXJhbSBjb21wbGV4T2JqZWN0S2V5IHRoZSBrZXkgb2YgdGhpcyBpdGVtIGluIHRoZSBtYXBgLFxuICAgICAgKTtcbiAgICAgIGNvbW1lbnQuZW5kKCk7XG4gICAgICB0aGlzLmNvZGUub3BlbkJsb2NrKFxuICAgICAgICBgcHVibGljIGNvbnN0cnVjdG9yKHRlcnJhZm9ybVJlc291cmNlOiBjZGt0bi5JSW50ZXJwb2xhdGluZ1BhcmVudCwgdGVycmFmb3JtQXR0cmlidXRlOiBzdHJpbmcsIGNvbXBsZXhPYmplY3RLZXk6IHN0cmluZylgLFxuICAgICAgKTtcbiAgICAgIHRoaXMuY29kZS5saW5lKFxuICAgICAgICBgc3VwZXIodGVycmFmb3JtUmVzb3VyY2UsIHRlcnJhZm9ybUF0dHJpYnV0ZSwgZmFsc2UsIGNvbXBsZXhPYmplY3RLZXkpO2AsXG4gICAgICApO1xuICAgICAgdGhpcy5jb2RlLmNsb3NlQmxvY2soKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29tbWVudC5saW5lKFxuICAgICAgICBgQHBhcmFtIGNvbXBsZXhPYmplY3RJbmRleCB0aGUgaW5kZXggb2YgdGhpcyBpdGVtIGluIHRoZSBsaXN0YCxcbiAgICAgICk7XG4gICAgICBjb21tZW50LmxpbmUoXG4gICAgICAgIGBAcGFyYW0gY29tcGxleE9iamVjdElzRnJvbVNldCB3aGV0aGVyIHRoZSBsaXN0IGlzIHdyYXBwaW5nIGEgc2V0ICh3aWxsIGFkZCB0b2xpc3QoKSB0byBiZSBhYmxlIHRvIGFjY2VzcyBhbiBpdGVtIHZpYSBhbiBpbmRleClgLFxuICAgICAgKTtcbiAgICAgIGNvbW1lbnQuZW5kKCk7XG4gICAgICB0aGlzLmNvZGUub3BlbkJsb2NrKFxuICAgICAgICBgcHVibGljIGNvbnN0cnVjdG9yKHRlcnJhZm9ybVJlc291cmNlOiBjZGt0bi5JSW50ZXJwb2xhdGluZ1BhcmVudCwgdGVycmFmb3JtQXR0cmlidXRlOiBzdHJpbmcsIGNvbXBsZXhPYmplY3RJbmRleDogbnVtYmVyLCBjb21wbGV4T2JqZWN0SXNGcm9tU2V0OiBib29sZWFuKWAsXG4gICAgICApO1xuICAgICAgdGhpcy5jb2RlLmxpbmUoXG4gICAgICAgIGBzdXBlcih0ZXJyYWZvcm1SZXNvdXJjZSwgdGVycmFmb3JtQXR0cmlidXRlLCBjb21wbGV4T2JqZWN0SXNGcm9tU2V0LCBjb21wbGV4T2JqZWN0SW5kZXgpO2AsXG4gICAgICApO1xuICAgICAgdGhpcy5jb2RlLmNsb3NlQmxvY2soKTtcbiAgICB9XG5cbiAgICB0aGlzLmNvZGUubGluZSgpO1xuICAgIHRoaXMuZW1pdEludGVybmFsVmFsdWVHZXR0ZXIoc3RydWN0KTtcbiAgICB0aGlzLmNvZGUubGluZSgpO1xuICAgIHRoaXMuZW1pdEludGVybmFsVmFsdWVTZXR0ZXIoc3RydWN0KTtcblxuICAgIGZvciAoY29uc3QgYXR0IG9mIHN0cnVjdC5hdHRyaWJ1dGVzKSB7XG4gICAgICB0aGlzLmF0dHJpYnV0ZXNFbWl0dGVyLmVtaXQoXG4gICAgICAgIGF0dCxcbiAgICAgICAgdGhpcy5hdHRyaWJ1dGVzRW1pdHRlci5uZWVkc1Jlc2V0RXNjYXBlKGF0dCwgc3RydWN0LmF0dHJpYnV0ZXMpLFxuICAgICAgICB0aGlzLmF0dHJpYnV0ZXNFbWl0dGVyLm5lZWRzSW5wdXRFc2NhcGUoYXR0LCBzdHJ1Y3QuYXR0cmlidXRlcyksXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMuY29kZS5jbG9zZUJsb2NrKCk7XG5cbiAgICBpZiAoXG4gICAgICAhc3RydWN0LmlzU2luZ2xlSXRlbSAmJlxuICAgICAgKHN0cnVjdC5uZXN0aW5nTW9kZSA9PT0gXCJsaXN0XCIgfHwgc3RydWN0Lm5lc3RpbmdNb2RlID09PSBcInNldFwiKVxuICAgICkge1xuICAgICAgdGhpcy5lbWl0Q29tcGxleExpc3RDbGFzcyhzdHJ1Y3QpO1xuICAgIH0gZWxzZSBpZiAoc3RydWN0Lm5lc3RpbmdNb2RlID09PSBcIm1hcFwiKSB7XG4gICAgICB0aGlzLmVtaXRDb21wbGV4TWFwQ2xhc3Moc3RydWN0KTtcbiAgICB9IGVsc2UgaWYgKHN0cnVjdC5uZXN0aW5nTW9kZSA9PT0gXCJtYXBsaXN0XCIpIHtcbiAgICAgIHRoaXMuZW1pdENvbXBsZXhNYXBMaXN0Q2xhc3NlcyhzdHJ1Y3QpO1xuICAgIH0gZWxzZSBpZiAoc3RydWN0Lm5lc3RpbmdNb2RlID09PSBcIm1hcHNldFwiKSB7XG4gICAgICB0aGlzLmVtaXRDb21wbGV4TWFwTGlzdENsYXNzZXMoc3RydWN0KTtcbiAgICB9IGVsc2UgaWYgKHN0cnVjdC5uZXN0aW5nTW9kZSA9PT0gXCJsaXN0bWFwXCIpIHtcbiAgICAgIHRoaXMuZW1pdENvbXBsZXhMaXN0TWFwQ2xhc3NlcyhzdHJ1Y3QsIGZhbHNlKTtcbiAgICB9IGVsc2UgaWYgKHN0cnVjdC5uZXN0aW5nTW9kZSA9PT0gXCJzZXRtYXBcIikge1xuICAgICAgdGhpcy5lbWl0Q29tcGxleExpc3RNYXBDbGFzc2VzKHN0cnVjdCwgdHJ1ZSk7XG4gICAgfSBlbHNlIGlmIChcbiAgICAgIHN0cnVjdC5uZXN0aW5nTW9kZSA9PT0gXCJsaXN0bGlzdFwiIHx8XG4gICAgICBzdHJ1Y3QubmVzdGluZ01vZGUgPT09IFwibGlzdHNldFwiIHx8XG4gICAgICBzdHJ1Y3QubmVzdGluZ01vZGUgPT09IFwic2V0bGlzdFwiIHx8XG4gICAgICBzdHJ1Y3QubmVzdGluZ01vZGUgPT09IFwic2V0c2V0XCJcbiAgICApIHtcbiAgICAgIHRoaXMuZW1pdENvbXBsZXhMaXN0TGlzdENsYXNzZXMoc3RydWN0KTtcbiAgICB9XG4gICAgLy8gb3RoZXIgdHlwZXMgb2YgbmVzdGVkIGNvbGxlY3Rpb25zIGFyZW4ndCBzdXBwb3J0ZWRcbiAgfVxuXG4gIHByaXZhdGUgZW1pdENvbXBsZXhMaXN0Q2xhc3Moc3RydWN0OiBTdHJ1Y3QpIHtcbiAgICB0aGlzLmNvZGUubGluZSgpO1xuICAgIHRoaXMuY29kZS5vcGVuQmxvY2soXG4gICAgICBgZXhwb3J0IGNsYXNzICR7c3RydWN0Lmxpc3ROYW1lfSBleHRlbmRzIGNka3RuLkNvbXBsZXhMaXN0YCxcbiAgICApO1xuXG4gICAgaWYgKHN0cnVjdC5hc3NpZ25hYmxlKSB7XG4gICAgICB0aGlzLmNvZGUubGluZShcbiAgICAgICAgYHB1YmxpYyBpbnRlcm5hbFZhbHVlPyA6ICR7c3RydWN0Lm5hbWV9W10gfCBjZGt0bi5JUmVzb2x2YWJsZWAsXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMuY29kZS5saW5lKCk7XG4gICAgY29uc3QgY29uc3RydWN0b3JDb21tZW50ID0gc2FuaXRpemVkQ29tbWVudCh0aGlzLmNvZGUpO1xuICAgIGNvbnN0cnVjdG9yQ29tbWVudC5saW5lKGBAcGFyYW0gdGVycmFmb3JtUmVzb3VyY2UgVGhlIHBhcmVudCByZXNvdXJjZWApO1xuICAgIGNvbnN0cnVjdG9yQ29tbWVudC5saW5lKFxuICAgICAgYEBwYXJhbSB0ZXJyYWZvcm1BdHRyaWJ1dGUgVGhlIGF0dHJpYnV0ZSBvbiB0aGUgcGFyZW50IHJlc291cmNlIHRoaXMgY2xhc3MgaXMgcmVmZXJlbmNpbmdgLFxuICAgICk7XG4gICAgY29uc3RydWN0b3JDb21tZW50LmxpbmUoXG4gICAgICBgQHBhcmFtIHdyYXBzU2V0IHdoZXRoZXIgdGhlIGxpc3QgaXMgd3JhcHBpbmcgYSBzZXQgKHdpbGwgYWRkIHRvbGlzdCgpIHRvIGJlIGFibGUgdG8gYWNjZXNzIGFuIGl0ZW0gdmlhIGFuIGluZGV4KWAsXG4gICAgKTtcbiAgICBjb25zdHJ1Y3RvckNvbW1lbnQuZW5kKCk7XG4gICAgdGhpcy5jb2RlLm9wZW5CbG9jayhcbiAgICAgIGBjb25zdHJ1Y3Rvcih0ZXJyYWZvcm1SZXNvdXJjZTogY2RrdG4uSUludGVycG9sYXRpbmdQYXJlbnQsIHRlcnJhZm9ybUF0dHJpYnV0ZTogc3RyaW5nLCB3cmFwc1NldDogYm9vbGVhbilgLFxuICAgICk7XG4gICAgdGhpcy5jb2RlLmxpbmUoYHN1cGVyKHRlcnJhZm9ybVJlc291cmNlLCB0ZXJyYWZvcm1BdHRyaWJ1dGUsIHdyYXBzU2V0KTtgKTtcbiAgICB0aGlzLmNvZGUuY2xvc2VCbG9jaygpO1xuXG4gICAgdGhpcy5jb2RlLmxpbmUoKTtcbiAgICBjb25zdCBnZXR0ZXJDb21tZW50ID0gc2FuaXRpemVkQ29tbWVudCh0aGlzLmNvZGUpO1xuICAgIGdldHRlckNvbW1lbnQubGluZShgQHBhcmFtIGluZGV4IHRoZSBpbmRleCBvZiB0aGUgaXRlbSB0byByZXR1cm5gKTtcbiAgICBnZXR0ZXJDb21tZW50LmVuZCgpO1xuICAgIHRoaXMuY29kZS5vcGVuQmxvY2soXG4gICAgICBgcHVibGljIGdldChpbmRleDogbnVtYmVyKTogJHtzdHJ1Y3Qub3V0cHV0UmVmZXJlbmNlTmFtZX1gLFxuICAgICk7XG4gICAgdGhpcy5jb2RlLmxpbmUoXG4gICAgICBgcmV0dXJuIG5ldyAke3N0cnVjdC5vdXRwdXRSZWZlcmVuY2VOYW1lfSh0aGlzLnRlcnJhZm9ybVJlc291cmNlLCB0aGlzLnRlcnJhZm9ybUF0dHJpYnV0ZSwgaW5kZXgsIHRoaXMud3JhcHNTZXQpO2AsXG4gICAgKTtcbiAgICB0aGlzLmNvZGUuY2xvc2VCbG9jaygpO1xuXG4gICAgdGhpcy5jb2RlLmNsb3NlQmxvY2soKTtcbiAgfVxuXG4gIHByaXZhdGUgZW1pdENvbXBsZXhNYXBDbGFzcyhzdHJ1Y3Q6IFN0cnVjdCkge1xuICAgIHRoaXMuY29kZS5saW5lKCk7XG4gICAgdGhpcy5jb2RlLm9wZW5CbG9jayhcbiAgICAgIGBleHBvcnQgY2xhc3MgJHtzdHJ1Y3QubWFwTmFtZX0gZXh0ZW5kcyBjZGt0bi5Db21wbGV4TWFwYCxcbiAgICApO1xuXG4gICAgaWYgKHN0cnVjdC5hc3NpZ25hYmxlKSB7XG4gICAgICB0aGlzLmNvZGUubGluZShcbiAgICAgICAgYHB1YmxpYyBpbnRlcm5hbFZhbHVlPyA6IHsgW2tleTogc3RyaW5nXTogJHtzdHJ1Y3QubmFtZX0gfSB8IGNka3RuLklSZXNvbHZhYmxlYCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy5jb2RlLmxpbmUoKTtcbiAgICBjb25zdCBjb25zdHJ1Y3RvckNvbW1lbnQgPSBzYW5pdGl6ZWRDb21tZW50KHRoaXMuY29kZSk7XG4gICAgY29uc3RydWN0b3JDb21tZW50LmxpbmUoYEBwYXJhbSB0ZXJyYWZvcm1SZXNvdXJjZSBUaGUgcGFyZW50IHJlc291cmNlYCk7XG4gICAgY29uc3RydWN0b3JDb21tZW50LmxpbmUoXG4gICAgICBgQHBhcmFtIHRlcnJhZm9ybUF0dHJpYnV0ZSBUaGUgYXR0cmlidXRlIG9uIHRoZSBwYXJlbnQgcmVzb3VyY2UgdGhpcyBjbGFzcyBpcyByZWZlcmVuY2luZ2AsXG4gICAgKTtcbiAgICBjb25zdHJ1Y3RvckNvbW1lbnQuZW5kKCk7XG4gICAgdGhpcy5jb2RlLm9wZW5CbG9jayhcbiAgICAgIGBjb25zdHJ1Y3Rvcih0ZXJyYWZvcm1SZXNvdXJjZTogY2RrdG4uSUludGVycG9sYXRpbmdQYXJlbnQsIHRlcnJhZm9ybUF0dHJpYnV0ZTogc3RyaW5nKWAsXG4gICAgKTtcbiAgICB0aGlzLmNvZGUubGluZShgc3VwZXIodGVycmFmb3JtUmVzb3VyY2UsIHRlcnJhZm9ybUF0dHJpYnV0ZSk7YCk7XG4gICAgdGhpcy5jb2RlLmNsb3NlQmxvY2soKTtcblxuICAgIHRoaXMuY29kZS5saW5lKCk7XG4gICAgY29uc3QgZ2V0dGVyQ29tbWVudCA9IHNhbml0aXplZENvbW1lbnQodGhpcy5jb2RlKTtcbiAgICBnZXR0ZXJDb21tZW50LmxpbmUoYEBwYXJhbSBrZXkgdGhlIGtleSBvZiB0aGUgaXRlbSB0byByZXR1cm5gKTtcbiAgICBnZXR0ZXJDb21tZW50LmVuZCgpO1xuICAgIHRoaXMuY29kZS5vcGVuQmxvY2soXG4gICAgICBgcHVibGljIGdldChrZXk6IHN0cmluZyk6ICR7c3RydWN0Lm91dHB1dFJlZmVyZW5jZU5hbWV9YCxcbiAgICApO1xuICAgIHRoaXMuY29kZS5saW5lKFxuICAgICAgYHJldHVybiBuZXcgJHtzdHJ1Y3Qub3V0cHV0UmVmZXJlbmNlTmFtZX0odGhpcy50ZXJyYWZvcm1SZXNvdXJjZSwgdGhpcy50ZXJyYWZvcm1BdHRyaWJ1dGUsIGtleSk7YCxcbiAgICApO1xuICAgIHRoaXMuY29kZS5jbG9zZUJsb2NrKCk7XG5cbiAgICB0aGlzLmNvZGUuY2xvc2VCbG9jaygpO1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0Q29tcGxleE1hcExpc3RDbGFzc2VzKHN0cnVjdDogU3RydWN0KSB7XG4gICAgdGhpcy5lbWl0Q29tcGxleE1hcExpc3RDbGFzcyhzdHJ1Y3QpO1xuICAgIHRoaXMuZW1pdENvbXBsZXhNYXBDbGFzcyhzdHJ1Y3QpO1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0Q29tcGxleE1hcExpc3RDbGFzcyhzdHJ1Y3Q6IFN0cnVjdCkge1xuICAgIHRoaXMuY29kZS5saW5lKCk7XG4gICAgdGhpcy5jb2RlLm9wZW5CbG9jayhcbiAgICAgIGBleHBvcnQgY2xhc3MgJHtzdHJ1Y3QubWFwTGlzdE5hbWV9IGV4dGVuZHMgY2RrdG4uTWFwTGlzdGAsXG4gICAgKTtcblxuICAgIGlmIChzdHJ1Y3QuYXNzaWduYWJsZSkge1xuICAgICAgdGhpcy5jb2RlLmxpbmUoXG4gICAgICAgIGBwdWJsaWMgaW50ZXJuYWxWYWx1ZT8gOiAke3N0cnVjdC5tYXBOYW1lfVtdIHwgY2RrdG4uSVJlc29sdmFibGVgLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGlzLmNvZGUubGluZSgpO1xuICAgIGNvbnN0IGNvbnN0cnVjdG9yQ29tbWVudCA9IHNhbml0aXplZENvbW1lbnQodGhpcy5jb2RlKTtcbiAgICBjb25zdHJ1Y3RvckNvbW1lbnQubGluZShgQHBhcmFtIHRlcnJhZm9ybVJlc291cmNlIFRoZSBwYXJlbnQgcmVzb3VyY2VgKTtcbiAgICBjb25zdHJ1Y3RvckNvbW1lbnQubGluZShcbiAgICAgIGBAcGFyYW0gdGVycmFmb3JtQXR0cmlidXRlIFRoZSBhdHRyaWJ1dGUgb24gdGhlIHBhcmVudCByZXNvdXJjZSB0aGlzIGNsYXNzIGlzIHJlZmVyZW5jaW5nYCxcbiAgICApO1xuICAgIGNvbnN0cnVjdG9yQ29tbWVudC5saW5lKFxuICAgICAgYEBwYXJhbSB3cmFwc1NldCB3aGV0aGVyIHRoZSBsaXN0IGlzIHdyYXBwaW5nIGEgc2V0ICh3aWxsIGFkZCB0b2xpc3QoKSB0byBiZSBhYmxlIHRvIGFjY2VzcyBhbiBpdGVtIHZpYSBhbiBpbmRleClgLFxuICAgICk7XG4gICAgY29uc3RydWN0b3JDb21tZW50LmVuZCgpO1xuICAgIHRoaXMuY29kZS5vcGVuQmxvY2soXG4gICAgICBgY29uc3RydWN0b3IodGVycmFmb3JtUmVzb3VyY2U6IGNka3RuLklJbnRlcnBvbGF0aW5nUGFyZW50LCB0ZXJyYWZvcm1BdHRyaWJ1dGU6IHN0cmluZywgd3JhcHNTZXQ6IGJvb2xlYW4pYCxcbiAgICApO1xuICAgIHRoaXMuY29kZS5saW5lKGBzdXBlcih0ZXJyYWZvcm1SZXNvdXJjZSwgdGVycmFmb3JtQXR0cmlidXRlLCB3cmFwc1NldCk7YCk7XG4gICAgdGhpcy5jb2RlLmNsb3NlQmxvY2soKTtcblxuICAgIHRoaXMuY29kZS5saW5lKCk7XG4gICAgY29uc3QgZ2V0dGVyQ29tbWVudCA9IHNhbml0aXplZENvbW1lbnQodGhpcy5jb2RlKTtcbiAgICBnZXR0ZXJDb21tZW50LmxpbmUoYEBwYXJhbSBpbmRleCB0aGUgaW5kZXggb2YgdGhlIGl0ZW0gdG8gcmV0dXJuYCk7XG4gICAgZ2V0dGVyQ29tbWVudC5lbmQoKTtcbiAgICB0aGlzLmNvZGUub3BlbkJsb2NrKGBwdWJsaWMgZ2V0KGluZGV4OiBudW1iZXIpOiAke3N0cnVjdC5tYXBOYW1lfWApO1xuICAgIHRoaXMuY29kZS5saW5lKGByZXR1cm4gbmV3ICR7c3RydWN0Lm1hcE5hbWV9KHRoaXMsIFxcYFtcXCR7aW5kZXh9XVxcYCk7YCk7XG4gICAgdGhpcy5jb2RlLmNsb3NlQmxvY2soKTtcblxuICAgIHRoaXMuY29kZS5jbG9zZUJsb2NrKCk7XG4gIH1cblxuICBwcml2YXRlIGVtaXRDb21wbGV4TGlzdE1hcENsYXNzZXMoc3RydWN0OiBTdHJ1Y3QsIGlzU2V0OiBib29sZWFuKSB7XG4gICAgdGhpcy5lbWl0Q29tcGxleExpc3RNYXBDbGFzcyhzdHJ1Y3QsIGlzU2V0KTtcbiAgICB0aGlzLmVtaXRDb21wbGV4TGlzdENsYXNzKHN0cnVjdCk7XG4gIH1cblxuICBwcml2YXRlIGVtaXRDb21wbGV4TGlzdE1hcENsYXNzKHN0cnVjdDogU3RydWN0LCBpc1NldDogYm9vbGVhbikge1xuICAgIHRoaXMuY29kZS5saW5lKCk7XG4gICAgdGhpcy5jb2RlLm9wZW5CbG9jayhcbiAgICAgIGBleHBvcnQgY2xhc3MgJHtzdHJ1Y3QubGlzdE1hcE5hbWV9IGV4dGVuZHMgY2RrdG4uQ29tcGxleE1hcGAsXG4gICAgKTtcblxuICAgIGlmIChzdHJ1Y3QuYXNzaWduYWJsZSkge1xuICAgICAgdGhpcy5jb2RlLmxpbmUoXG4gICAgICAgIGBwdWJsaWMgaW50ZXJuYWxWYWx1ZT8gOiB7IFtrZXk6IHN0cmluZ106ICR7c3RydWN0Lm5hbWV9W10gfSB8IGNka3RuLklSZXNvbHZhYmxlYCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy5jb2RlLmxpbmUoKTtcbiAgICBjb25zdCBjb25zdHJ1Y3RvckNvbW1lbnQgPSBzYW5pdGl6ZWRDb21tZW50KHRoaXMuY29kZSk7XG4gICAgY29uc3RydWN0b3JDb21tZW50LmxpbmUoYEBwYXJhbSB0ZXJyYWZvcm1SZXNvdXJjZSBUaGUgcGFyZW50IHJlc291cmNlYCk7XG4gICAgY29uc3RydWN0b3JDb21tZW50LmxpbmUoXG4gICAgICBgQHBhcmFtIHRlcnJhZm9ybUF0dHJpYnV0ZSBUaGUgYXR0cmlidXRlIG9uIHRoZSBwYXJlbnQgcmVzb3VyY2UgdGhpcyBjbGFzcyBpcyByZWZlcmVuY2luZ2AsXG4gICAgKTtcbiAgICBjb25zdHJ1Y3RvckNvbW1lbnQuZW5kKCk7XG4gICAgdGhpcy5jb2RlLm9wZW5CbG9jayhcbiAgICAgIGBjb25zdHJ1Y3Rvcih0ZXJyYWZvcm1SZXNvdXJjZTogY2RrdG4uSUludGVycG9sYXRpbmdQYXJlbnQsIHRlcnJhZm9ybUF0dHJpYnV0ZTogc3RyaW5nKWAsXG4gICAgKTtcbiAgICB0aGlzLmNvZGUubGluZShgc3VwZXIodGVycmFmb3JtUmVzb3VyY2UsIHRlcnJhZm9ybUF0dHJpYnV0ZSk7YCk7XG4gICAgdGhpcy5jb2RlLmNsb3NlQmxvY2soKTtcblxuICAgIHRoaXMuY29kZS5saW5lKCk7XG4gICAgY29uc3QgZ2V0dGVyQ29tbWVudCA9IHNhbml0aXplZENvbW1lbnQodGhpcy5jb2RlKTtcbiAgICBnZXR0ZXJDb21tZW50LmxpbmUoYEBwYXJhbSBrZXkgdGhlIGtleSBvZiB0aGUgaXRlbSB0byByZXR1cm5gKTtcbiAgICBnZXR0ZXJDb21tZW50LmVuZCgpO1xuICAgIHRoaXMuY29kZS5vcGVuQmxvY2soYHB1YmxpYyBnZXQoa2V5OiBzdHJpbmcpOiAke3N0cnVjdC5saXN0TmFtZX1gKTtcbiAgICB0aGlzLmNvZGUubGluZShcbiAgICAgIGByZXR1cm4gbmV3ICR7c3RydWN0Lmxpc3ROYW1lfSh0aGlzLCBcXGBbXFwke2tleX1dXFxgLCAke2lzU2V0fSk7YCxcbiAgICApO1xuICAgIHRoaXMuY29kZS5jbG9zZUJsb2NrKCk7XG5cbiAgICB0aGlzLmNvZGUuY2xvc2VCbG9jaygpO1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0Q29tcGxleExpc3RMaXN0Q2xhc3NlcyhzdHJ1Y3Q6IFN0cnVjdCkge1xuICAgIHRoaXMuZW1pdENvbXBsZXhMaXN0TGlzdENsYXNzKHN0cnVjdCk7XG4gICAgdGhpcy5lbWl0Q29tcGxleExpc3RDbGFzcyhzdHJ1Y3QpO1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0Q29tcGxleExpc3RMaXN0Q2xhc3Moc3RydWN0OiBTdHJ1Y3QpIHtcbiAgICB0aGlzLmNvZGUubGluZSgpO1xuICAgIHRoaXMuY29kZS5vcGVuQmxvY2soXG4gICAgICBgZXhwb3J0IGNsYXNzICR7c3RydWN0Lmxpc3RMaXN0TmFtZX0gZXh0ZW5kcyBjZGt0bi5NYXBMaXN0YCwgLy8gZGVzcGl0ZSBuYW1lLCBuZWVkIHRoZSBzYW1lIGJlaGF2aW9yXG4gICAgKTtcblxuICAgIGlmIChzdHJ1Y3QuYXNzaWduYWJsZSkge1xuICAgICAgdGhpcy5jb2RlLmxpbmUoXG4gICAgICAgIGBwdWJsaWMgaW50ZXJuYWxWYWx1ZT8gOiAke3N0cnVjdC5uYW1lfVtdW10gfCBjZGt0bi5JUmVzb2x2YWJsZWAsXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMuY29kZS5saW5lKCk7XG4gICAgY29uc3QgY29uc3RydWN0b3JDb21tZW50ID0gc2FuaXRpemVkQ29tbWVudCh0aGlzLmNvZGUpO1xuICAgIGNvbnN0cnVjdG9yQ29tbWVudC5saW5lKGBAcGFyYW0gdGVycmFmb3JtUmVzb3VyY2UgVGhlIHBhcmVudCByZXNvdXJjZWApO1xuICAgIGNvbnN0cnVjdG9yQ29tbWVudC5saW5lKFxuICAgICAgYEBwYXJhbSB0ZXJyYWZvcm1BdHRyaWJ1dGUgVGhlIGF0dHJpYnV0ZSBvbiB0aGUgcGFyZW50IHJlc291cmNlIHRoaXMgY2xhc3MgaXMgcmVmZXJlbmNpbmdgLFxuICAgICk7XG4gICAgY29uc3RydWN0b3JDb21tZW50LmxpbmUoXG4gICAgICBgQHBhcmFtIHdyYXBzU2V0IHdoZXRoZXIgdGhlIGxpc3QgaXMgd3JhcHBpbmcgYSBzZXQgKHdpbGwgYWRkIHRvbGlzdCgpIHRvIGJlIGFibGUgdG8gYWNjZXNzIGFuIGl0ZW0gdmlhIGFuIGluZGV4KWAsXG4gICAgKTtcbiAgICBjb25zdHJ1Y3RvckNvbW1lbnQuZW5kKCk7XG4gICAgdGhpcy5jb2RlLm9wZW5CbG9jayhcbiAgICAgIGBjb25zdHJ1Y3Rvcih0ZXJyYWZvcm1SZXNvdXJjZTogY2RrdG4uSUludGVycG9sYXRpbmdQYXJlbnQsIHRlcnJhZm9ybUF0dHJpYnV0ZTogc3RyaW5nLCB3cmFwc1NldDogYm9vbGVhbilgLFxuICAgICk7XG4gICAgdGhpcy5jb2RlLmxpbmUoYHN1cGVyKHRlcnJhZm9ybVJlc291cmNlLCB0ZXJyYWZvcm1BdHRyaWJ1dGUsIHdyYXBzU2V0KTtgKTtcbiAgICB0aGlzLmNvZGUuY2xvc2VCbG9jaygpO1xuXG4gICAgdGhpcy5jb2RlLmxpbmUoKTtcbiAgICBjb25zdCBnZXR0ZXJDb21tZW50ID0gc2FuaXRpemVkQ29tbWVudCh0aGlzLmNvZGUpO1xuICAgIGdldHRlckNvbW1lbnQubGluZShgQHBhcmFtIGluZGV4IHRoZSBpbmRleCBvZiB0aGUgaXRlbSB0byByZXR1cm5gKTtcbiAgICBnZXR0ZXJDb21tZW50LmVuZCgpO1xuICAgIHRoaXMuY29kZS5vcGVuQmxvY2soYHB1YmxpYyBnZXQoaW5kZXg6IG51bWJlcik6ICR7c3RydWN0Lmxpc3ROYW1lfWApO1xuICAgIHRoaXMuY29kZS5saW5lKFxuICAgICAgYHJldHVybiBuZXcgJHtzdHJ1Y3QubGlzdE5hbWV9KHRoaXMsIFxcYFtcXCR7aW5kZXh9XVxcYCwgJHtcbiAgICAgICAgc3RydWN0Lm5lc3RpbmdNb2RlID09PSBcInNldGxpc3RcIiB8fCBzdHJ1Y3QubmVzdGluZ01vZGUgPT09IFwic2V0c2V0XCJcbiAgICAgIH0pO2AsXG4gICAgKTtcbiAgICB0aGlzLmNvZGUuY2xvc2VCbG9jaygpO1xuXG4gICAgdGhpcy5jb2RlLmNsb3NlQmxvY2soKTtcbiAgfVxuXG4gIHByaXZhdGUgZW1pdEludGVybmFsVmFsdWVHZXR0ZXIoc3RydWN0OiBTdHJ1Y3QpIHtcbiAgICB0aGlzLmNvZGUub3BlbkJsb2NrKFxuICAgICAgYHB1YmxpYyBnZXQgaW50ZXJuYWxWYWx1ZSgpOiAke3N0cnVjdC5uYW1lfSR7XG4gICAgICAgICFzdHJ1Y3QuaXNDbGFzcyA/IFwiIHwgY2RrdG4uSVJlc29sdmFibGVcIiA6IFwiXCJcbiAgICAgIH0gfCB1bmRlZmluZWRgLFxuICAgICk7XG5cbiAgICBpZiAoIXN0cnVjdC5pc0NsYXNzKSB7XG4gICAgICB0aGlzLmNvZGUub3BlbkJsb2NrKFwiaWYgKHRoaXMucmVzb2x2YWJsZVZhbHVlKVwiKTtcbiAgICAgIHRoaXMuY29kZS5saW5lKFwicmV0dXJuIHRoaXMucmVzb2x2YWJsZVZhbHVlO1wiKTtcbiAgICAgIHRoaXMuY29kZS5jbG9zZUJsb2NrKCk7XG4gICAgfVxuXG4gICAgdGhpcy5jb2RlLmxpbmUoXCJsZXQgaGFzQW55VmFsdWVzID0gdGhpcy5pc0VtcHR5T2JqZWN0O1wiKTtcbiAgICB0aGlzLmNvZGUubGluZShcImNvbnN0IGludGVybmFsVmFsdWVSZXN1bHQ6IGFueSA9IHt9O1wiKTtcbiAgICBmb3IgKGNvbnN0IGF0dCBvZiBzdHJ1Y3QuYXR0cmlidXRlcykge1xuICAgICAgaWYgKGF0dC5pc1N0b3JlZCkge1xuICAgICAgICBpZiAoYXR0LmdldHRlclR5cGUuX3R5cGUgPT09IFwic3RvcmVkX2NsYXNzXCIpIHtcbiAgICAgICAgICB0aGlzLmNvZGUub3BlbkJsb2NrKFxuICAgICAgICAgICAgYGlmICh0aGlzLiR7YXR0LnN0b3JhZ2VOYW1lfT8uaW50ZXJuYWxWYWx1ZSAhPT0gdW5kZWZpbmVkKWAsXG4gICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmNvZGUub3BlbkJsb2NrKGBpZiAodGhpcy4ke2F0dC5zdG9yYWdlTmFtZX0gIT09IHVuZGVmaW5lZClgKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNvZGUubGluZShcImhhc0FueVZhbHVlcyA9IHRydWU7XCIpO1xuICAgICAgICBpZiAoYXR0LmdldHRlclR5cGUuX3R5cGUgPT09IFwic3RvcmVkX2NsYXNzXCIpIHtcbiAgICAgICAgICB0aGlzLmNvZGUubGluZShcbiAgICAgICAgICAgIGBpbnRlcm5hbFZhbHVlUmVzdWx0LiR7YXR0Lm5hbWV9ID0gdGhpcy4ke2F0dC5zdG9yYWdlTmFtZX0/LmludGVybmFsVmFsdWU7YCxcbiAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuY29kZS5saW5lKFxuICAgICAgICAgICAgYGludGVybmFsVmFsdWVSZXN1bHQuJHthdHQubmFtZX0gPSB0aGlzLiR7YXR0LnN0b3JhZ2VOYW1lfTtgLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jb2RlLmNsb3NlQmxvY2soKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5jb2RlLmxpbmUoXCJyZXR1cm4gaGFzQW55VmFsdWVzID8gaW50ZXJuYWxWYWx1ZVJlc3VsdCA6IHVuZGVmaW5lZDtcIik7XG4gICAgdGhpcy5jb2RlLmNsb3NlQmxvY2soKTtcbiAgfVxuXG4gIHByaXZhdGUgZW1pdEludGVybmFsVmFsdWVTZXR0ZXIoc3RydWN0OiBTdHJ1Y3QpIHtcbiAgICB0aGlzLmNvZGUub3BlbkJsb2NrKFxuICAgICAgYHB1YmxpYyBzZXQgaW50ZXJuYWxWYWx1ZSh2YWx1ZTogJHtzdHJ1Y3QubmFtZX0ke1xuICAgICAgICAhc3RydWN0LmlzQ2xhc3MgPyBcIiB8IGNka3RuLklSZXNvbHZhYmxlXCIgOiBcIlwiXG4gICAgICB9IHwgdW5kZWZpbmVkKWAsXG4gICAgKTtcblxuICAgIHRoaXMuY29kZS5vcGVuQmxvY2soXCJpZiAodmFsdWUgPT09IHVuZGVmaW5lZClcIik7XG4gICAgdGhpcy5jb2RlLmxpbmUoXCJ0aGlzLmlzRW1wdHlPYmplY3QgPSBmYWxzZTtcIik7XG4gICAgaWYgKCFzdHJ1Y3QuaXNDbGFzcykge1xuICAgICAgdGhpcy5jb2RlLmxpbmUoXCJ0aGlzLnJlc29sdmFibGVWYWx1ZSA9IHVuZGVmaW5lZDtcIik7XG4gICAgfVxuICAgIGZvciAoY29uc3QgYXR0IG9mIHN0cnVjdC5hdHRyaWJ1dGVzKSB7XG4gICAgICBpZiAoYXR0LmlzU3RvcmVkKSB7XG4gICAgICAgIGlmIChhdHQuc2V0dGVyVHlwZS5fdHlwZSA9PT0gXCJzdG9yZWRfY2xhc3NcIikge1xuICAgICAgICAgIHRoaXMuY29kZS5saW5lKGB0aGlzLiR7YXR0LnN0b3JhZ2VOYW1lfS5pbnRlcm5hbFZhbHVlID0gdW5kZWZpbmVkO2ApO1xuICAgICAgICB9IGVsc2UgaWYgKGF0dC5zZXR0ZXJUeXBlLl90eXBlICE9PSBcIm5vbmVcIikge1xuICAgICAgICAgIHRoaXMuY29kZS5saW5lKGB0aGlzLiR7YXR0LnN0b3JhZ2VOYW1lfSA9IHVuZGVmaW5lZDtgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLmNvZGUuY2xvc2VCbG9jaygpO1xuICAgIGlmICghc3RydWN0LmlzQ2xhc3MpIHtcbiAgICAgIHRoaXMuY29kZS5vcGVuQmxvY2soXCJlbHNlIGlmIChjZGt0bi5Ub2tlbml6YXRpb24uaXNSZXNvbHZhYmxlKHZhbHVlKSlcIik7XG4gICAgICB0aGlzLmNvZGUubGluZShcInRoaXMuaXNFbXB0eU9iamVjdCA9IGZhbHNlO1wiKTtcbiAgICAgIHRoaXMuY29kZS5saW5lKFwidGhpcy5yZXNvbHZhYmxlVmFsdWUgPSB2YWx1ZTtcIik7XG4gICAgICB0aGlzLmNvZGUuY2xvc2VCbG9jaygpO1xuICAgIH1cbiAgICB0aGlzLmNvZGUub3BlbkJsb2NrKFwiZWxzZVwiKTtcbiAgICB0aGlzLmNvZGUubGluZShcInRoaXMuaXNFbXB0eU9iamVjdCA9IE9iamVjdC5rZXlzKHZhbHVlKS5sZW5ndGggPT09IDA7XCIpO1xuICAgIGlmICghc3RydWN0LmlzQ2xhc3MpIHtcbiAgICAgIHRoaXMuY29kZS5saW5lKFwidGhpcy5yZXNvbHZhYmxlVmFsdWUgPSB1bmRlZmluZWQ7XCIpO1xuICAgIH1cbiAgICBmb3IgKGNvbnN0IGF0dCBvZiBzdHJ1Y3QuYXR0cmlidXRlcykge1xuICAgICAgaWYgKGF0dC5pc1N0b3JlZCkge1xuICAgICAgICBpZiAoYXR0LnNldHRlclR5cGUuX3R5cGUgPT09IFwic3RvcmVkX2NsYXNzXCIpIHtcbiAgICAgICAgICB0aGlzLmNvZGUubGluZShcbiAgICAgICAgICAgIGB0aGlzLiR7YXR0LnN0b3JhZ2VOYW1lfS5pbnRlcm5hbFZhbHVlID0gdmFsdWUuJHthdHQubmFtZX07YCxcbiAgICAgICAgICApO1xuICAgICAgICB9IGVsc2UgaWYgKGF0dC5zZXR0ZXJUeXBlLl90eXBlICE9PSBcIm5vbmVcIikge1xuICAgICAgICAgIHRoaXMuY29kZS5saW5lKGB0aGlzLiR7YXR0LnN0b3JhZ2VOYW1lfSA9IHZhbHVlLiR7YXR0Lm5hbWV9O2ApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuY29kZS5jbG9zZUJsb2NrKCk7XG4gICAgdGhpcy5jb2RlLmNsb3NlQmxvY2soKTtcbiAgfVxuXG4gIHByaXZhdGUgZW1pdFRvSGNsVGVycmFmb3JtRnVuY3Rpb24oc3RydWN0OiBTdHJ1Y3QpIHtcbiAgICB0aGlzLmNvZGUubGluZSgpO1xuICAgIHRoaXMuY29kZS5vcGVuQmxvY2soXG4gICAgICBgZXhwb3J0IGZ1bmN0aW9uICR7ZG93bmNhc2VGaXJzdChzdHJ1Y3QubmFtZSl9VG9IY2xUZXJyYWZvcm0oc3RydWN0PzogJHtcbiAgICAgICAgc3RydWN0LmlzU2luZ2xlSXRlbSAmJiAhc3RydWN0LmlzUHJvdmlkZXJcbiAgICAgICAgICA/IGAke3N0cnVjdC5uYW1lfU91dHB1dFJlZmVyZW5jZSB8IGBcbiAgICAgICAgICA6IFwiXCJcbiAgICAgIH0ke3N0cnVjdC5uYW1lfSR7IXN0cnVjdC5pc0NsYXNzID8gXCIgfCBjZGt0bi5JUmVzb2x2YWJsZVwiIDogXCJcIn0pOiBhbnlgLFxuICAgICk7XG4gICAgdGhpcy5jb2RlLmxpbmUoXG4gICAgICBgaWYgKCFjZGt0bi5jYW5JbnNwZWN0KHN0cnVjdCkgfHwgY2RrdG4uVG9rZW5pemF0aW9uLmlzUmVzb2x2YWJsZShzdHJ1Y3QpKSB7IHJldHVybiBzdHJ1Y3Q7IH1gLFxuICAgICk7XG4gICAgdGhpcy5jb2RlLm9wZW5CbG9jayhgaWYgKGNka3RuLmlzQ29tcGxleEVsZW1lbnQoc3RydWN0KSlgKTtcbiAgICB0aGlzLmNvZGUubGluZShcbiAgICAgIGB0aHJvdyBuZXcgRXJyb3IoXCJBIGNvbXBsZXggZWxlbWVudCB3YXMgdXNlZCBhcyBjb25maWd1cmF0aW9uLCB0aGlzIGlzIG5vdCBzdXBwb3J0ZWQ6IGh0dHBzOi8vY2RrdG4uaW8vZG9jcy9jb25jZXB0cy9yZXNvdXJjZXMjcmVmZXJlbmNlc1wiKTtgLFxuICAgICk7XG4gICAgdGhpcy5jb2RlLmNsb3NlQmxvY2soKTtcblxuICAgIHRoaXMuY29kZS5vcGVuKGBjb25zdCBhdHRycyA9IHtgKTtcblxuICAgIGZvciAoY29uc3QgYXR0IG9mIHN0cnVjdC5hc3NpZ25hYmxlQXR0cmlidXRlcykge1xuICAgICAgdGhpcy5hdHRyaWJ1dGVzRW1pdHRlci5lbWl0VG9IY2xUZXJyYWZvcm0oYXR0LCB0cnVlKTtcbiAgICB9XG5cbiAgICB0aGlzLmNvZGUuY2xvc2UoYH07YCk7XG5cbiAgICBpZiAoc3RydWN0LmFzc2lnbmFibGVBdHRyaWJ1dGVzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMuY29kZS5saW5lKCk7XG4gICAgICB0aGlzLmNvZGUubGluZShgLy8gcmVtb3ZlIHVuZGVmaW5lZCBhdHRyaWJ1dGVzYCk7XG4gICAgICB0aGlzLmNvZGUubGluZShcbiAgICAgICAgYHJldHVybiBPYmplY3QuZnJvbUVudHJpZXMoT2JqZWN0LmVudHJpZXMoYXR0cnMpLmZpbHRlcigoW18sIHZhbHVlXSkgPT4gdmFsdWUgIT09IHVuZGVmaW5lZCAmJiB2YWx1ZS52YWx1ZSAhPT0gdW5kZWZpbmVkKSk7YCxcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY29kZS5saW5lKGByZXR1cm4gYXR0cnM7YCk7XG4gICAgfVxuXG4gICAgdGhpcy5jb2RlLmNsb3NlQmxvY2soKTtcbiAgICB0aGlzLmNvZGUubGluZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0VG9UZXJyYWZvcm1GdW5jdGlvbihzdHJ1Y3Q6IFN0cnVjdCkge1xuICAgIHRoaXMuY29kZS5saW5lKCk7XG4gICAgdGhpcy5jb2RlLm9wZW5CbG9jayhcbiAgICAgIGBleHBvcnQgZnVuY3Rpb24gJHtkb3duY2FzZUZpcnN0KHN0cnVjdC5uYW1lKX1Ub1RlcnJhZm9ybShzdHJ1Y3Q/OiAke1xuICAgICAgICBzdHJ1Y3QuaXNTaW5nbGVJdGVtICYmICFzdHJ1Y3QuaXNQcm92aWRlclxuICAgICAgICAgID8gYCR7c3RydWN0Lm5hbWV9T3V0cHV0UmVmZXJlbmNlIHwgYFxuICAgICAgICAgIDogXCJcIlxuICAgICAgfSR7c3RydWN0Lm5hbWV9JHshc3RydWN0LmlzQ2xhc3MgPyBcIiB8IGNka3RuLklSZXNvbHZhYmxlXCIgOiBcIlwifSk6IGFueWAsXG4gICAgKTtcbiAgICB0aGlzLmNvZGUubGluZShcbiAgICAgIGBpZiAoIWNka3RuLmNhbkluc3BlY3Qoc3RydWN0KSB8fCBjZGt0bi5Ub2tlbml6YXRpb24uaXNSZXNvbHZhYmxlKHN0cnVjdCkpIHsgcmV0dXJuIHN0cnVjdDsgfWAsXG4gICAgKTtcbiAgICB0aGlzLmNvZGUub3BlbkJsb2NrKGBpZiAoY2RrdG4uaXNDb21wbGV4RWxlbWVudChzdHJ1Y3QpKWApO1xuICAgIHRoaXMuY29kZS5saW5lKFxuICAgICAgYHRocm93IG5ldyBFcnJvcihcIkEgY29tcGxleCBlbGVtZW50IHdhcyB1c2VkIGFzIGNvbmZpZ3VyYXRpb24sIHRoaXMgaXMgbm90IHN1cHBvcnRlZDogaHR0cHM6Ly9jZGt0bi5pby9kb2NzL2NvbmNlcHRzL3Jlc291cmNlcyNyZWZlcmVuY2VzXCIpO2AsXG4gICAgKTtcbiAgICB0aGlzLmNvZGUuY2xvc2VCbG9jaygpO1xuXG4gICAgdGhpcy5jb2RlLm9wZW5CbG9jayhcInJldHVyblwiKTtcbiAgICBmb3IgKGNvbnN0IGF0dCBvZiBzdHJ1Y3QuYXNzaWduYWJsZUF0dHJpYnV0ZXMpIHtcbiAgICAgIHRoaXMuYXR0cmlidXRlc0VtaXR0ZXIuZW1pdFRvVGVycmFmb3JtKGF0dCwgdHJ1ZSk7XG4gICAgfVxuICAgIHRoaXMuY29kZS5jbG9zZUJsb2NrKFwiO1wiKTtcbiAgICB0aGlzLmNvZGUuY2xvc2VCbG9jaygpO1xuICAgIHRoaXMuY29kZS5saW5lKCk7XG4gIH1cbn1cbiJdfQ==