@pipeline-builder/pipeline-data 4.3.5 → 4.3.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/api/access-control-builder.js +1 -1
- package/lib/api/alert-destinations.js +1 -1
- package/lib/api/crud-service.js +1 -1
- package/lib/api/ecosystem-privacy.js +1 -1
- package/lib/api/keyset-cursor.js +1 -1
- package/lib/api/pipeline-step-resolution.js +1 -1
- package/lib/api/plugin-advisories.js +1 -1
- package/lib/api/plugin-consumption-policy.js +1 -1
- package/lib/api/plugin-resolution.js +6 -1
- package/lib/api/public-directory.d.ts +71 -3
- package/lib/api/public-directory.js +68 -22
- package/lib/api/query-builders.js +47 -2
- package/lib/api/reporting/analytics-queries.js +1 -1
- package/lib/api/reporting/caches.js +1 -1
- package/lib/api/reporting/daily-rollup.js +1 -1
- package/lib/api/reporting/deploy-rollup.js +1 -1
- package/lib/api/reporting/dora-scoring.js +1 -1
- package/lib/api/reporting/dora.js +1 -1
- package/lib/api/reporting/failure-classifier.js +1 -1
- package/lib/api/reporting/ingest.js +1 -1
- package/lib/api/reporting/last-deploy.js +1 -1
- package/lib/api/reporting/needs-attention.js +1 -1
- package/lib/api/reporting/plugin-exposure.js +1 -1
- package/lib/api/reporting/plugin-runtime.js +1 -1
- package/lib/api/reporting/query-scope.js +1 -1
- package/lib/api/reporting/retention-sweep.js +1 -1
- package/lib/api/reporting/retention.js +1 -1
- package/lib/api/reporting/sql-helpers.js +1 -1
- package/lib/api/reporting/stakeholder/compose.js +1 -1
- package/lib/api/reporting/stakeholder/index.js +1 -1
- package/lib/api/reporting/stakeholder/period.js +1 -1
- package/lib/api/reporting/stakeholder/report-html.js +1 -1
- package/lib/api/reporting/stakeholder/sections.js +1 -1
- package/lib/api/reporting/stakeholder/store.js +1 -1
- package/lib/api/reporting/stakeholder/templates.js +1 -1
- package/lib/api/reporting/types.js +1 -1
- package/lib/api/reporting-service.js +1 -1
- package/lib/api/semver-range.js +1 -1
- package/lib/api/soft-delete-sweep.js +1 -1
- package/lib/api/support-cases.js +1 -1
- package/lib/api/version-references.js +1 -1
- package/lib/api/viewer-context.js +1 -1
- package/lib/core/query-filters.d.ts +25 -0
- package/lib/core/query-filters.js +1 -1
- package/lib/database/drizzle-schema.d.ts +19 -0
- package/lib/database/drizzle-schema.js +1 -1
- package/lib/database/index.js +1 -1
- package/lib/database/pg-result.js +1 -1
- package/lib/database/postgres-connection.js +1 -1
- package/lib/database/public-reader.js +1 -1
- package/lib/database/read-connection.js +1 -1
- package/lib/database/read-lag.js +1 -1
- package/lib/database/retry-strategy.js +1 -1
- package/lib/database/schema/alert.js +1 -1
- package/lib/database/schema/compliance.js +1 -1
- package/lib/database/schema/dashboard.js +1 -1
- package/lib/database/schema/ecosystem.d.ts +17 -0
- package/lib/database/schema/ecosystem.js +3 -1
- package/lib/database/schema/message-attachment.js +1 -1
- package/lib/database/schema/message.d.ts +19 -0
- package/lib/database/schema/message.js +18 -1
- package/lib/database/schema/pipeline-template.js +1 -1
- package/lib/database/schema/pipeline.js +1 -1
- package/lib/database/schema/plugin.js +1 -1
- package/lib/database/schema/reporting-analytics.js +1 -1
- package/lib/database/schema/reporting-stakeholder.js +1 -1
- package/lib/database/schema/support.js +1 -1
- package/lib/database/tenancy.js +1 -1
- package/lib/index.js +1 -1
- package/package.json +8 -8
|
@@ -101,4 +101,4 @@ export function assertTemplatesResolve() {
|
|
|
101
101
|
}
|
|
102
102
|
}
|
|
103
103
|
assertTemplatesResolve();
|
|
104
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
104
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGVzLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXBpL3JlcG9ydGluZy9zdGFrZWhvbGRlci90ZW1wbGF0ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQUV0Qzs7Ozs7Ozs7Ozs7R0FXRztBQUVILE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFlM0MsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQTRCO0lBQzVEO1FBQ0UsRUFBRSxFQUFFLGlCQUFpQjtRQUNyQixLQUFLLEVBQUUseUJBQXlCO1FBQ2hDLFFBQVEsRUFBRSw2RUFBNkU7UUFDdkYsT0FBTyxFQUFFLFFBQVE7UUFDakIsMkVBQTJFO1FBQzNFLDhFQUE4RTtRQUM5RSwrRUFBK0U7UUFDL0UsMkNBQTJDO1FBQzNDLEVBQUU7UUFDRiwyRUFBMkU7UUFDM0UseUVBQXlFO1FBQ3pFLHNCQUFzQjtRQUN0QixRQUFRLEVBQUU7WUFDUixpQkFBaUI7WUFDakIsaUJBQWlCO1lBQ2pCLGNBQWM7WUFDZCxrQkFBa0I7WUFDbEIsb0JBQW9CO1lBQ3BCLFdBQVc7U0FDWjtLQUNGO0lBQ0Q7UUFDRSxFQUFFLEVBQUUsZ0JBQWdCO1FBQ3BCLEtBQUssRUFBRSw0QkFBNEI7UUFDbkMsUUFBUSxFQUFFLGtFQUFrRTtRQUM1RSxPQUFPLEVBQUUsU0FBUztRQUNsQiwyRUFBMkU7UUFDM0UsMkVBQTJFO1FBQzNFLHNFQUFzRTtRQUN0RSxRQUFRLEVBQUU7WUFDUixpQkFBaUI7WUFDakIsTUFBTTtZQUNOLFlBQVk7WUFDWixjQUFjO1lBQ2Qsa0JBQWtCO1lBQ2xCLG1CQUFtQjtZQUNuQix3QkFBd0I7WUFDeEIsa0JBQWtCO1lBQ2xCLG9CQUFvQjtTQUNyQjtLQUNGO0lBQ0Q7UUFDRSxFQUFFLEVBQUUsa0JBQWtCO1FBQ3RCLEtBQUssRUFBRSxrQkFBa0I7UUFDekIsUUFBUSxFQUFFLHNGQUFzRjtRQUNoRyxPQUFPLEVBQUUsV0FBVztRQUNwQiwyRUFBMkU7UUFDM0UsNkVBQTZFO1FBQzdFLDZFQUE2RTtRQUM3RSx3QkFBd0I7UUFDeEIsUUFBUSxFQUFFO1lBQ1IsTUFBTTtZQUNOLFlBQVk7WUFDWixpQkFBaUI7WUFDakIsY0FBYztZQUNkLGtCQUFrQjtZQUNsQixXQUFXO1lBQ1gsY0FBYztZQUNkLHdCQUF3QjtZQUN4QixrQkFBa0I7WUFDbEIsb0JBQW9CO1lBQ3BCLFVBQVU7WUFDVixzQkFBc0I7U0FDdkI7S0FDRjtDQUNGLENBQUM7QUFFRixnQ0FBZ0M7QUFDaEMsTUFBTSxVQUFVLFdBQVcsQ0FBQyxFQUFVO0lBQ3BDLE9BQU8scUJBQXFCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0FBQ3hELENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLHNCQUFzQjtJQUNwQyxLQUFLLE1BQU0sUUFBUSxJQUFJLHFCQUFxQixFQUFFLENBQUM7UUFDN0MsS0FBSyxNQUFNLEVBQUUsSUFBSSxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbkMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO2dCQUNwQixNQUFNLElBQUksS0FBSyxDQUNiLGFBQWEsUUFBUSxDQUFDLEVBQUUsNEJBQTRCLEVBQUUsS0FBSztzQkFDekQsNERBQTRELENBQy9ELENBQUM7WUFDSixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7QUFDSCxDQUFDO0FBRUQsc0JBQXNCLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG4vKipcbiAqIFRoZSBtYW5hZ2VyLWZhY2luZyB0ZW1wbGF0ZXMuXG4gKlxuICogQSB0ZW1wbGF0ZSBpcyBhIGN1cmF0ZWQgc2VjdGlvbiBsaXN0LCBub3QgYSBmcmVlLWZvcm0gcGlja2VyLCBiZWNhdXNlIHRoZVxuICogZmFpbHVyZSBtb2RlIG9mIHRoaXMgZmVhdHVyZSBpcyBhIHJlcG9ydCBub2JvZHkgcmVhZHMuIE1hbmFnZXJzIGRvIG5vdCBhY3Qgb25cbiAqIFwicDk1IHN0YWdlIGR1cmF0aW9uXCI7IHRoZXkgYWN0IG9uIGFuc3dlcnMgdG8gZm91ciBxdWVzdGlvbnMg4oCUIGFyZSB3ZSBzaGlwcGluZyxcbiAqIGlzIGl0IGdldHRpbmcgYmV0dGVyIG9yIHdvcnNlLCB3aGF0IGlzIGJsb2NraW5nIHVzLCBpcyBhbnl0aGluZyByaXNreS4gRWFjaFxuICogdGVtcGxhdGUgYW5zd2VycyB0aG9zZSBpbiB0aGF0IG9yZGVyLCBzbyB0aGUgZmlyc3QgdGhpbmcgb24gdGhlIHBhZ2UgaXMgYVxuICogbnVtYmVyIHdpdGggYSBkaXJlY3Rpb24gcmF0aGVyIHRoYW4gYSB0YWJsZS5cbiAqXG4gKiBTZWN0aW9uIE9SREVSIGlzIHRoZSByZWFkaW5nIG9yZGVyLiBJdCBpcyBkZWxpYmVyYXRlIGFuZCB3b3J0aCBwcmVzZXJ2aW5nLlxuICovXG5cbmltcG9ydCB7IGdldFNlY3Rpb24gfSBmcm9tICcuL3NlY3Rpb25zLmpzJztcbmltcG9ydCB0eXBlIHsgUmVwb3J0Q2FkZW5jZSwgUmVwb3J0VGVtcGxhdGUgfSBmcm9tICcuLi8uLi8uLi9kYXRhYmFzZS9zY2hlbWEvcmVwb3J0aW5nLXN0YWtlaG9sZGVyLmpzJztcblxuLyoqIEEgbmFtZWQsIG9yZGVyZWQgc2VjdGlvbiBsaXN0IHdpdGggdGhlIGNhZGVuY2UgaXQgaXMgZGVzaWduZWQgZm9yLiAqL1xuZXhwb3J0IGludGVyZmFjZSBUZW1wbGF0ZVNwZWMge1xuICBpZDogUmVwb3J0VGVtcGxhdGU7XG4gIC8qKiBXaGF0IGEgbGVhZCBwaWNrcyBpbiB0aGUgVUkuICovXG4gIGxhYmVsOiBzdHJpbmc7XG4gIC8qKiBPbmUgbGluZSBleHBsYWluaW5nIHdobyBpdCBpcyBmb3Ig4oCUIHNob3duIG5leHQgdG8gdGhlIGxhYmVsLiAqL1xuICBhdWRpZW5jZTogc3RyaW5nO1xuICAvKiogVGhlIGNhZGVuY2UgdGhpcyB0ZW1wbGF0ZSBhc3N1bWVzLiBBIHdlZWtseSBET1JBIHJlcG9ydCBpcyBtb3N0bHkgbm9pc2UuICovXG4gIGNhZGVuY2U6IFJlcG9ydENhZGVuY2U7XG4gIHNlY3Rpb25zOiByZWFkb25seSBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGNvbnN0IFJFUE9SVF9URU1QTEFURV9TUEVDUzogcmVhZG9ubHkgVGVtcGxhdGVTcGVjW10gPSBbXG4gIHtcbiAgICBpZDogJ3dlZWtseV9kZWxpdmVyeScsXG4gICAgbGFiZWw6ICdXZWVrbHkgZGVsaXZlcnkgc3VtbWFyeScsXG4gICAgYXVkaWVuY2U6ICdGb3IgYW4gZW5naW5lZXJpbmcgbWFuYWdlcjogd2hhdCBzaGlwcGVkIHRoaXMgd2VlayBhbmQgd2hhdCBpcyBibG9ja2luZyBpdC4nLFxuICAgIGNhZGVuY2U6ICd3ZWVrbHknLFxuICAgIC8vIE5FRURTIEFUVEVOVElPTiBMRUFEUy4gQSB3ZWVrbHkgcmVwb3J0J3Mgam9iIGlzIHRvIGFuc3dlciBcIndoYXQgc2hvdWxkIElcbiAgICAvLyBsb29rIGF0XCIsIGFuZCBwdXR0aW5nIHRoZSBkZWNpc2lvbiBmaXJzdCBpcyB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIGEgcmVwb3J0XG4gICAgLy8gdGhhdCBnZXRzIHJlYWQgYW5kIGEgdGFibGUgdGhhdCBnZXRzIHNraW1tZWQuIFRoZW46IGFyZSB3ZSBzaGlwcGluZywgd2hhdCBpc1xuICAgIC8vIGJyZWFraW5nLCBhbmQgd2hpY2ggcGlwZWxpbmVzIGFyZSB3b3JzdC5cbiAgICAvL1xuICAgIC8vIE5vIERPUkEgaGVyZTogd2Vla2x5IERPUkEgb24gYSBub3JtYWwgdGVhbSBpcyB0b28gc21hbGwgYSBzYW1wbGUgdG8gbWVhblxuICAgIC8vIGFueXRoaW5nLCBhbmQgdGhlIGxvY2tlZC1zZWN0aW9uIHBhdGggd291bGQgZG9taW5hdGUgdGhlIHBhZ2UgZm9yIG9yZ3NcbiAgICAvLyB3aXRob3V0IHRoZSBhZGQtb24uXG4gICAgc2VjdGlvbnM6IFtcbiAgICAgICduZWVkc19hdHRlbnRpb24nLFxuICAgICAgJ2V4ZWN1dGlvbl9jb3VudCcsXG4gICAgICAnc3VjY2Vzc19yYXRlJyxcbiAgICAgICdmYWlsdXJlX2FuYWx5c2lzJyxcbiAgICAgICdwaXBlbGluZV9icmVha2Rvd24nLFxuICAgICAgJ3Byb21vdGlvbicsXG4gICAgXSxcbiAgfSxcbiAge1xuICAgIGlkOiAnbW9udGhseV9oZWFsdGgnLFxuICAgIGxhYmVsOiAnTW9udGhseSBlbmdpbmVlcmluZyBoZWFsdGgnLFxuICAgIGF1ZGllbmNlOiAnRm9yIGEgZGlyZWN0b3I6IGRlbGl2ZXJ5IHBlcmZvcm1hbmNlIHdpdGggRE9SQSBsZXZlbHMgYW5kIHRyZW5kLicsXG4gICAgY2FkZW5jZTogJ21vbnRobHknLFxuICAgIC8vIEEgbW9udGggaXMgdGhlIHNtYWxsZXN0IHdpbmRvdyB3aGVyZSBET1JBIGJhbmRzIGFyZSBtZWFuaW5nZnVsLiBBZGRzIHRoZVxuICAgIC8vIHN1cHBseS1jaGFpbiBhbmQgcG9zdHVyZSBwYW5lbHMgYSBkaXJlY3RvciBpcyBhY2NvdW50YWJsZSBmb3IgYW5kIGEgbGVhZFxuICAgIC8vIHJhcmVseSB2b2x1bnRlZXJzOiB2dWxuZXJhYmxlIHBsdWdpbnMsIHZlcnNpb25zIGJlaGluZCwgY29tcGxpYW5jZS5cbiAgICBzZWN0aW9uczogW1xuICAgICAgJ25lZWRzX2F0dGVudGlvbicsXG4gICAgICAnZG9yYScsXG4gICAgICAnZG9yYV90cmVuZCcsXG4gICAgICAnc3VjY2Vzc19yYXRlJyxcbiAgICAgICdmYWlsdXJlX2FuYWx5c2lzJyxcbiAgICAgICdzdGFnZV9wZXJmb3JtYW5jZScsXG4gICAgICAncGx1Z2luX3Z1bG5lcmFiaWxpdGllcycsXG4gICAgICAnb3V0ZGF0ZWRfcGx1Z2lucycsXG4gICAgICAnY29tcGxpYW5jZV9wb3N0dXJlJyxcbiAgICBdLFxuICB9LFxuICB7XG4gICAgaWQ6ICdxdWFydGVybHlfcmV2aWV3JyxcbiAgICBsYWJlbDogJ1F1YXJ0ZXJseSByZXZpZXcnLFxuICAgIGF1ZGllbmNlOiAnRm9yIGEgbGVhZGVyc2hpcCByZXZpZXc6IHRoZSBxdWFydGVyIGFjcm9zcyB0ZWFtcywgd2l0aCBxdWFydGVyLW92ZXItcXVhcnRlciBjaGFuZ2UuJyxcbiAgICBjYWRlbmNlOiAncXVhcnRlcmx5JyxcbiAgICAvLyBXaWRlc3QgdmlldzogZGVsaXZlcnksIGhlYWx0aCwgc3VwcGx5IGNoYWluLCBhZG9wdGlvbiBhbmQgY29zdC1vZi1idWlsZC5cbiAgICAvLyBgYWRvcHRpb25gIGFuZCBgcmVzb3VyY2VfY29uc3VtcHRpb25gIGFyZSBoZXJlIGFuZCBub3doZXJlIGVsc2Ug4oCUIGJvdGggYXJlXG4gICAgLy8gcXVhcnRlci1zY2FsZSBxdWVzdGlvbnMsIGFuZCBhc2tpbmcgdGhlbSB3ZWVrbHkgd291bGQgcHJvZHVjZSBub2lzZSBhIGxlYWRcbiAgICAvLyB3b3VsZCByaWdodGx5IGlnbm9yZS5cbiAgICBzZWN0aW9uczogW1xuICAgICAgJ2RvcmEnLFxuICAgICAgJ2RvcmFfdHJlbmQnLFxuICAgICAgJ2V4ZWN1dGlvbl9jb3VudCcsXG4gICAgICAnc3VjY2Vzc19yYXRlJyxcbiAgICAgICdmYWlsdXJlX2FuYWx5c2lzJyxcbiAgICAgICdwcm9tb3Rpb24nLFxuICAgICAgJ2Vudmlyb25tZW50cycsXG4gICAgICAncGx1Z2luX3Z1bG5lcmFiaWxpdGllcycsXG4gICAgICAnb3V0ZGF0ZWRfcGx1Z2lucycsXG4gICAgICAnY29tcGxpYW5jZV9wb3N0dXJlJyxcbiAgICAgICdhZG9wdGlvbicsXG4gICAgICAncmVzb3VyY2VfY29uc3VtcHRpb24nLFxuICAgIF0sXG4gIH0sXG5dO1xuXG4vKiogTG9vayBhIHRlbXBsYXRlIHVwIGJ5IGlkLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFRlbXBsYXRlKGlkOiBzdHJpbmcpOiBUZW1wbGF0ZVNwZWMgfCB1bmRlZmluZWQge1xuICByZXR1cm4gUkVQT1JUX1RFTVBMQVRFX1NQRUNTLmZpbmQoKHQpID0+IHQuaWQgPT09IGlkKTtcbn1cblxuLyoqXG4gKiBFdmVyeSBzZWN0aW9uIGlkIGEgdGVtcGxhdGUgbmFtZXMgbXVzdCBleGlzdCBpbiB0aGUgcmVnaXN0cnkuIENhbGxlZCBhdCBtb2R1bGVcbiAqIGxvYWQgc28gYSB0ZW1wbGF0ZSByZWZlcmVuY2luZyBhIHJlbW92ZWQgc2VjdGlvbiBmYWlscyB0aGUgQlVJTEQgcmF0aGVyIHRoYW5cbiAqIHByb2R1Y2luZyBhIHJlcG9ydCBmdWxsIG9mIFwiVW5rbm93biByZXBvcnQgc2VjdGlvblwiIHBhbmVscyBpbiBwcm9kdWN0aW9uLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYXNzZXJ0VGVtcGxhdGVzUmVzb2x2ZSgpOiB2b2lkIHtcbiAgZm9yIChjb25zdCB0ZW1wbGF0ZSBvZiBSRVBPUlRfVEVNUExBVEVfU1BFQ1MpIHtcbiAgICBmb3IgKGNvbnN0IGlkIG9mIHRlbXBsYXRlLnNlY3Rpb25zKSB7XG4gICAgICBpZiAoIWdldFNlY3Rpb24oaWQpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgVGVtcGxhdGUgXCIke3RlbXBsYXRlLmlkfVwiIG5hbWVzIHVua25vd24gc2VjdGlvbiBcIiR7aWR9XCIuIGBcbiAgICAgICAgICArICdSZWdpc3RlciBpdCBpbiBzZWN0aW9ucy50cyBvciByZW1vdmUgaXQgZnJvbSB0aGUgdGVtcGxhdGUuJyxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuYXNzZXJ0VGVtcGxhdGVzUmVzb2x2ZSgpO1xuIl19
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
// Copyright 2026 Pipeline Builder Contributors
|
|
2
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
3
3
|
export {};
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBpL3JlcG9ydGluZy90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbi8qKlxuICogUHVibGljIHJlc3VsdCBzaGFwZXMgZm9yIHRoZSByZXBvcnRpbmcgc2VydmljZS5cbiAqXG4gKiBTcGxpdCBvdXQgb2YgcmVwb3J0aW5nLXNlcnZpY2UudHMgcHVyZWx5IGZvciBzaXplOiB0aGVzZSBhcmUgZGF0YSBjb250cmFjdHNcbiAqIHdpdGggbm8gYmVoYXZpb3VyLiByZXBvcnRpbmctc2VydmljZS50cyByZS1leHBvcnRzIHRoZW0sIHNvIHRoZVxuICogYEBwaXBlbGluZS1idWlsZGVyL3BpcGVsaW5lLWRhdGFgIHB1YmxpYyBzdXJmYWNlIGlzIHVuY2hhbmdlZC5cbiAqL1xuXG5leHBvcnQgaW50ZXJmYWNlIEV4ZWN1dGlvbkNvdW50IHtcbiAgaWQ6IHN0cmluZztcbiAgcHJvamVjdDogc3RyaW5nO1xuICBvcmdhbml6YXRpb246IHN0cmluZztcbiAgcGlwZWxpbmVOYW1lOiBzdHJpbmcgfCBudWxsO1xuICB0b3RhbDogbnVtYmVyO1xuICBzdWNjZWVkZWQ6IG51bWJlcjtcbiAgZmFpbGVkOiBudW1iZXI7XG4gIGNhbmNlbGVkOiBudW1iZXI7XG4gIGZpcnN0RXhlY3V0aW9uOiBzdHJpbmcgfCBudWxsO1xuICBsYXN0RXhlY3V0aW9uOiBzdHJpbmcgfCBudWxsO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRpbWVTZXJpZXNFbnRyeSB7XG4gIHBlcmlvZDogc3RyaW5nO1xuICBzdWNjZWVkZWQ6IG51bWJlcjtcbiAgZmFpbGVkOiBudW1iZXI7XG4gIGNhbmNlbGVkOiBudW1iZXI7XG4gIHN1Y2Nlc3NQY3Q6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEdXJhdGlvblN0YXRzIHtcbiAgaWQ6IHN0cmluZztcbiAgcHJvamVjdDogc3RyaW5nO1xuICBwaXBlbGluZU5hbWU6IHN0cmluZyB8IG51bGw7XG4gIGF2Z01zOiBudW1iZXI7XG4gIG1pbk1zOiBudW1iZXI7XG4gIG1heE1zOiBudW1iZXI7XG4gIHA5NU1zOiBudW1iZXI7XG4gIGV4ZWN1dGlvbnM6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQaXBlbGluZUV4ZWN1dGlvbiB7XG4gIGV4ZWN1dGlvbklkOiBzdHJpbmc7XG4gIC8qKiBSb2xsZWQtdXAgdGVybWluYWwgc3RhdHVzOiBzdWNjZWVkZWQgfCBmYWlsZWQgfCBjYW5jZWxlZCB8IGluLXByb2dyZXNzLiAqL1xuICBzdGF0dXM6IHN0cmluZztcbiAgc3RhcnRlZEF0OiBzdHJpbmcgfCBudWxsO1xuICBlbmRlZEF0OiBzdHJpbmcgfCBudWxsO1xuICBkdXJhdGlvbk1zOiBudW1iZXIgfCBudWxsO1xuICAvKiogRmlyc3QgZmFpbGluZyBzdGFnZS9hY3Rpb24gZm9yIHRoZSBleGVjdXRpb24gKG51bGwgd2hlbiBpdCBkaWRuJ3QgZmFpbCkuICovXG4gIGZhaWxpbmdTdGFnZTogc3RyaW5nIHwgbnVsbDtcbiAgZmFpbGluZ0FjdGlvbjogc3RyaW5nIHwgbnVsbDtcbiAgLyoqIFRoZSBmaXJzdCBmYWlsdXJlIGRldGFpbCBhbiBldmVudCBvZiB0aGUgZXhlY3V0aW9uIGNhcnJpZWQgKGBkZXRhaWwuZmFpbHVyZWApLCBvciBudWxsLiAqL1xuICBmYWlsdXJlOiB1bmtub3duIHwgbnVsbDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdGFnZUZhaWx1cmUge1xuICBzdGFnZU5hbWU6IHN0cmluZztcbiAgZmFpbHVyZXM6IG51bWJlcjtcbiAgdG90YWw6IG51bWJlcjtcbiAgZmFpbHVyZVBjdDogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN0YWdlQm90dGxlbmVjayB7XG4gIGlkOiBzdHJpbmc7XG4gIHBpcGVsaW5lTmFtZTogc3RyaW5nIHwgbnVsbDtcbiAgc3RhZ2VOYW1lOiBzdHJpbmc7XG4gIGF2Z01zOiBudW1iZXI7XG4gIG1heE1zOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWN0aW9uRmFpbHVyZSB7XG4gIGFjdGlvbk5hbWU6IHN0cmluZztcbiAgZmFpbHVyZXM6IG51bWJlcjtcbiAgdG90YWw6IG51bWJlcjtcbiAgZmFpbHVyZVBjdDogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVycm9yRW50cnkge1xuICBlcnJvclBhdHRlcm46IHN0cmluZztcbiAgb2NjdXJyZW5jZXM6IG51bWJlcjtcbiAgYWZmZWN0ZWRQaXBlbGluZXM6IG51bWJlcjtcbiAgbGFzdFNlZW46IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQbHVnaW5TdW1tYXJ5IHtcbiAgdG90YWw6IG51bWJlcjtcbiAgYWN0aXZlOiBudW1iZXI7XG4gIGluYWN0aXZlOiBudW1iZXI7XG4gIC8qKiBDb3VudHMgcGVyIHNoYXJpbmcgcnVuZyDigJQgb25lIGJ1Y2tldCBwZXIgYHZpc2liaWxpdHlgIHZhbHVlLiAqL1xuICBwdWJsaWM6IG51bWJlcjtcbiAgb3JnOiBudW1iZXI7XG4gIHByaXZhdGU6IG51bWJlcjtcbiAgdW5pcXVlTmFtZXM6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUeXBlQ29tcHV0ZURpc3RyaWJ1dGlvbiB7XG4gIHBsdWdpblR5cGU6IHN0cmluZztcbiAgY29tcHV0ZVR5cGU6IHN0cmluZztcbiAgY291bnQ6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBWZXJzaW9uQ291bnQge1xuICBuYW1lOiBzdHJpbmc7XG4gIHZlcnNpb25Db3VudDogbnVtYmVyO1xuICBsYXRlc3RWZXJzaW9uOiBzdHJpbmc7XG4gIGhhc0RlZmF1bHQ6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnVpbGRUaW1lU2VyaWVzRW50cnkge1xuICBwZXJpb2Q6IHN0cmluZztcbiAgc3VjY2VlZGVkOiBudW1iZXI7XG4gIGZhaWxlZDogbnVtYmVyO1xuICBzdWNjZXNzUGN0OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnVpbGREdXJhdGlvbiB7XG4gIHBsdWdpbk5hbWU6IHN0cmluZztcbiAgYXZnTXM6IG51bWJlcjtcbiAgbWF4TXM6IG51bWJlcjtcbiAgYnVpbGRzOiBudW1iZXI7XG59XG5cbi8qKlxuICogUGx1Z2luIHJ1bnRpbWUgcmVwb3J0IGZpbHRlcnMuIGBwdWJsaXNoZXI6IG51bGxgIHNlbGVjdHMgb3duLW9yZ1xuICogKHB1Ymxpc2hlci1sZXNzKSBwbHVnaW5zOyBhbiBvbWl0dGVkIGZpZWxkIGRvZXNuJ3QgZmlsdGVyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBsdWdpblJ1bnRpbWVGaWx0ZXIge1xuICBuYW1lPzogc3RyaW5nO1xuICBwdWJsaXNoZXI/OiBzdHJpbmcgfCBudWxsO1xuICB2ZXJzaW9uPzogc3RyaW5nO1xufVxuXG4vKiogUGVyIHBsdWdpbiB2ZXJzaW9uIHJ1bnRpbWUgc3RhdHMgb3ZlciBhIHdpbmRvdyAodGVybWluYWwgQUNUSU9OIHJ1bnMpLiAqL1xuZXhwb3J0IGludGVyZmFjZSBQbHVnaW5SdW50aW1lU3RhdHMge1xuICBwbHVnaW5QdWJsaXNoZXI6IHN0cmluZyB8IG51bGw7XG4gIHBsdWdpbk5hbWU6IHN0cmluZztcbiAgcGx1Z2luVmVyc2lvbjogc3RyaW5nO1xuICBydW5zOiBudW1iZXI7XG4gIHN1Y2NlZWRlZDogbnVtYmVyO1xuICBmYWlsZWQ6IG51bWJlcjtcbiAgLyoqIDDigJMxMDAsIG9uZSBkZWNpbWFsLiAqL1xuICBzdWNjZXNzUGN0OiBudW1iZXI7XG4gIC8qKiBOdWxsIHdoZW4gbm8gcnVuIGluIHRoZSBncm91cCBjYXJyaWVkIGEgZHVyYXRpb24uICovXG4gIHA1ME1zOiBudW1iZXIgfCBudWxsO1xuICBwOTVNczogbnVtYmVyIHwgbnVsbDtcbiAgbGFzdFJ1bjogc3RyaW5nO1xufVxuXG4vKiogQ3Jvc3Mtb3JnIDMwLWRheSBhZ2dyZWdhdGUgZm9yIG9uZSBgKHB1Ymxpc2hlciwgbmFtZSlgIGxpc3RpbmcuICovXG5leHBvcnQgaW50ZXJmYWNlIFBsdWdpblJ1bnRpbWVBZ2dyZWdhdGUge1xuICBydW5zMzBkOiBudW1iZXI7XG4gIC8qKiAw4oCTMTsgbnVsbCB3aGVuIHRoZXJlIHdlcmUgbm8gcnVucy4gKi9cbiAgc3VjY2Vzc1JhdGUzMGQ6IG51bWJlciB8IG51bGw7XG4gIGFjdGl2ZU9yZ0NvdW50MzBkOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnVpbGRGYWlsdXJlIHtcbiAgcGx1Z2luTmFtZTogc3RyaW5nO1xuICBlcnJvck1lc3NhZ2U6IHN0cmluZztcbiAgb2NjdXJyZW5jZXM6IG51bWJlcjtcbiAgbGFzdFNlZW46IHN0cmluZztcbn1cblxuLyoqXG4gKiBUaGUgRE9SQSBoZWFkbGluZSBlbnZpcm9ubWVudC4gRGVwbG95bWVudCB0byB0aGlzIGxpdGVyYWwgZW52IG5hbWUgaXMgdGhlXG4gKiBpbmR1c3RyeS1zdGFuZGFyZCBET1JBIHNpZ25hbDsgTVRUUiBpcyBtZWFzdXJlZCBwcm9kdWN0aW9uLW9ubHksIGFuZCB0aGlzXG4gKiBlbnZpcm9ubWVudCdzIGNhcmQgaXMgdGhlIHN1bW1hcnkgc2hvd24gYXQgdGhlIHRvcCBvZiB0aGUgcGFuZWwuXG4gKi9cblxuLyoqIFBlci1vcmcgcmV0ZW50aW9uIG92ZXJyaWRlIHJvdy4gQm90aCBudWxsYWJsZSDih5IgZ2xvYmFsIGRlZmF1bHRzLiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXBvcnRpbmdSZXRlbnRpb25TZXR0aW5ncyB7XG4gIGV2ZW50UmV0ZW50aW9uRGF5czogbnVtYmVyIHwgbnVsbDtcbiAgZG9yYVJldGVudGlvbkRheXM6IG51bWJlciB8IG51bGw7XG4gIGRlZmF1bHRFdmVudFJldGVudGlvbkRheXM6IG51bWJlcjtcbiAgZGVmYXVsdERvcmFSZXRlbnRpb25EYXlzOiBudW1iZXI7XG59XG5cbi8qKiBPcHRpb25zIGZvciB0aGUgcmVwb3J0aW5nIHJldGVudGlvbiBzd2VlcC4gKi9cbi8qKlxuICogSG93IGEgdGltZS1idWNrZXRlZCByZXBvcnQgc2xpY2VzIGl0cyBwZXJpb2RzLiBBYnNlbnQgbWVhbnMgVVRDICsgTW9uZGF5LCB3aGljaFxuICogaXMgd2hhdCBldmVyeSBwcmUtdGltZXpvbmUgY2FsbGVyIGdvdCDigJQgc28gYW4gb21pdHRlZCB2YWx1ZSBjYW4gbmV2ZXIgc2lsZW50bHlcbiAqIGNoYW5nZSBhbiBleGlzdGluZyByZXBvcnQncyBib3VuZGFyaWVzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJ1Y2tldE9wdGlvbnMge1xuICAvKiogSUFOQSB0aW1lem9uZSB0aGUgYnVja2V0cyBhcmUgY3V0IGluICh2YWxpZGF0ZWQgYXQgdGhlIHJvdXRlKS4gKi9cbiAgdHo/OiBzdHJpbmc7XG4gIC8qKiBXaGVyZSB0aGUgd2VlayBzdGFydHMuIFBvc3RncmVzIERBVEVfVFJVTkMgaXMgTW9uZGF5LW9ubHksIHNvIGBzdW5kYXlgXG4gICAqICBzaGlmdHMgdGhlIGJvdW5kYXJ5IGV4cGxpY2l0bHkuICovXG4gIHdlZWtTdGFydD86ICdtb25kYXknIHwgJ3N1bmRheSc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVwb3J0aW5nUmV0ZW50aW9uT3B0aW9ucyB7XG4gIC8qKiBSb3dzIGRlbGV0ZWQgcGVyIHN0YXRlbWVudCAoZGVmYXVsdCAxMDAwKS4gKi9cbiAgYmF0Y2hTaXplPzogbnVtYmVyO1xuICAvKipcbiAgICogVGhlIGxlYWRlci1sb2NrZWQgcnVuIHRoaXMgc3dlZXAgYmVsb25ncyB0by4gQ2hlY2tlZCBCRVRXRUVOIE9SR1M6IGFib3J0ZWRcbiAgICogbWVhbnMgdGhlIGxvY2sgd2FzIGxvc3QgKGFub3RoZXIgcG9kIGlzIHRha2luZyBvdmVyKSBvciB0aGUgcHJvY2VzcyBpc1xuICAgKiBzaHV0dGluZyBkb3duLCBhbmQgdGhlIHJlbWFpbmluZyBvcmdzIGFyZSBwaWNrZWQgdXAgbmV4dCB0aWNrLiBXaXRob3V0IGl0IGFcbiAgICogbG9uZyBzd2VlcCBrZXB0IGRlbGV0aW5nIGFmdGVyIGFub3RoZXIgcG9kIGhhZCBhbHJlYWR5IHRha2VuIHRoZSBsb2NrLlxuICAgKi9cbiAgcnVuPzogeyBzaWduYWw6IEFib3J0U2lnbmFsIH07XG4gIC8qKiBNYXggYmF0Y2hlcyBwZXIgdGFibGUgcGVyIG9yZyBwZXIgdGljayAoZGVmYXVsdCA1MCk7IHRoZSByZXN0IGRlZmVycyB0b1xuICAgKiAgdGhlIG5leHQgdGljayBzbyBhIGh1Z2UgYmFja2xvZyBjYW4ndCBob2xkIGxvY2tzIHRvbyBsb25nLiAqL1xuICBtYXhCYXRjaGVzUGVyVGFibGU/OiBudW1iZXI7XG4gIC8qKiBGaXhlZCBcIm5vd1wiIGZvciB0aGUgd2hvbGUgc3dlZXAgKGRlZmF1bHQgYG5ldyBEYXRlKClgKS4gKi9cbiAgbm93PzogRGF0ZTtcbiAgLyoqXG4gICAqIFJlc29sdmUgdGhlIG9yZyB3aG9zZSBgZG9yYV9zZXR0aW5nc2AgcmV0ZW50aW9uIGdvdmVybnMgYG9yZ0lkYCdzIHJvd3Mg4oCUIGl0c1xuICAgKiBhY2NvdW50IFJPT1QuIFJldGVudGlvbiBpcyBhIGJpbGxpbmcgZW50aXRsZW1lbnQgc3luY2VkIG9udG8gdGhlIHJvb3Qgb25seSxcbiAgICogc28gYSB0ZWFtJ3Mgcm93cyBtdXN0IGZvbGxvdyB0aGUgcm9vdCdzIChwdXJjaGFzZWQpIHdpbmRvdywgbm90IHRoZSBlbnZcbiAgICogZGVmYXVsdC4gUmV0dXJuIGBudWxsYCB3aGVuIHRoZSByb290IGNhbid0IGJlIHJlc29sdmVkOiB0aGF0IG9yZyBpcyBTS0lQUEVEXG4gICAqIHRoaXMgdGljayAobmV2ZXIgcHVyZ2VkIG9uIGEgcG9zc2libHktc2hvcnRlciB3aW5kb3cpLiBEZWZhdWx0OiBpZGVudGl0eVxuICAgKiAoZXZlcnkgb3JnIGlzIGl0cyBvd24gcm9vdCDigJQgYSBmbGF0IGRlcGxveW1lbnQpLlxuICAgKi9cbiAgcmVzb2x2ZVJldGVudGlvbk9yZ0lkPzogKG9yZ0lkOiBzdHJpbmcpID0+IFByb21pc2U8c3RyaW5nIHwgbnVsbD47XG59XG5cbi8qKiBQZXItcnVuIHB1cmdlIHRhbGxpZXMgKGFsc28gbG9nZ2VkKS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVwb3J0aW5nUmV0ZW50aW9uQ291bnRzIHtcbiAgLyoqIE9yZ3Mgc3dlcHQgdGhpcyBydW4uICovXG4gIG9yZ3M6IG51bWJlcjtcbiAgLyoqIFN0YW5kYXJkIGBwaXBlbGluZV9ldmVudHNgIChlbnZpcm9ubWVudCBJUyBOVUxMKSByb3dzIHB1cmdlZC4gKi9cbiAgc3RhbmRhcmRFdmVudHM6IG51bWJlcjtcbiAgLyoqIERPUkEtc291cmNlIGBwaXBlbGluZV9ldmVudHNgIChlbnZpcm9ubWVudCBJUyBOT1QgTlVMTCkgcm93cyBwdXJnZWQuICovXG4gIGRvcmFFdmVudHM6IG51bWJlcjtcbiAgLyoqIGBkZXBsb3ltZW50X291dGNvbWVzYCByb3dzIHB1cmdlZC4gKi9cbiAgZGVwbG95bWVudE91dGNvbWVzOiBudW1iZXI7XG4gIC8qKiBgaW5jaWRlbnRzYCByb3dzIHB1cmdlZC4gKi9cbiAgaW5jaWRlbnRzOiBudW1iZXI7XG59XG5cbi8qKlxuICogRE9SQSBwZXJmb3JtYW5jZSBiYW5kLiBgbnVsbGAgPSBpbnN1ZmZpY2llbnQgZGF0YSB0byBjbGFzc2lmeSAobm9cbiAqIGRlcGxveW1lbnRzL2ZhaWx1cmVzL2xlYWQtdGltZSBzYW1wbGUgaW4gdGhlIHdpbmRvdyksIHNvIHRoZSBVSSBzaG93cyBhXG4gKiBuZXV0cmFsIHN0YXRlIHJhdGhlciB0aGFuIG1pc2xhYmVsaW5nIGFuIGVtcHR5IHdpbmRvdyBhcyBcImxvd1wiLlxuICovXG5leHBvcnQgdHlwZSBEb3JhTGV2ZWwgPSAnZWxpdGUnIHwgJ2hpZ2gnIHwgJ21lZGl1bScgfCAnbG93JyB8IG51bGw7XG5cbi8qKiBPcHRpb25hbCBzY29waW5nIGZvciB7QGxpbmsgUmVwb3J0aW5nU2VydmljZS5nZXREb3JhTWV0cmljc30uICovXG5leHBvcnQgaW50ZXJmYWNlIERvcmFPcHRpb25zIHtcbiAgLyoqIFJlc3RyaWN0IHRvIGEgc2luZ2xlIHBpcGVsaW5lIChwZXItcGlwZWxpbmUgRE9SQSkuICovXG4gIHBpcGVsaW5lSWQ/OiBzdHJpbmc7XG4gIC8qKiBSZXN0cmljdCB0byBhIHNpbmdsZSBkZXBsb3kgZW52aXJvbm1lbnQgKGVsc2UgYWxsIGRlcGxveSBlbnZpcm9ubWVudHMpLiAqL1xuICBlbnZpcm9ubWVudD86IHN0cmluZztcbiAgLyoqXG4gICAqIFBlci1vcmcgaW5jaWRlbnTihpJkZXBsb3kgY29ycmVsYXRpb24gd2luZG93IG92ZXJyaWRlIChob3VycykuIFdoZW4gc2V0IChhXG4gICAqIHBvc2l0aXZlIGZpbml0ZSBudW1iZXIpLCB0aGUgaW5jaWRlbnQgY29ycmVsYXRpb24gdXNlcyBpdCBpbnN0ZWFkIG9mIHRoZVxuICAgKiBnbG9iYWwgYERPUkFfSU5DSURFTlRfV0lORE9XX0hPVVJTYC4gVGhlIHJvdXRlIHJlc29sdmVzIHRoaXMgZnJvbSB0aGUgb3JnJ3NcbiAgICogYGRvcmFfc2V0dGluZ3NgIHJvdyAoc2VlIHtAbGluayBSZXBvcnRpbmdTZXJ2aWNlLmdldFJlcG9ydGluZ1NldHRpbmdzfSkgYW5kXG4gICAqIHBhc3NlcyBpdCBpbjsgdW5zZXQgZmFsbHMgYmFjayB0byB0aGUgZW52IGRlZmF1bHQuXG4gICAqL1xuICBpbmNpZGVudFdpbmRvd0hvdXJzPzogbnVtYmVyO1xuICAvKiogSUFOQSB0aW1lem9uZSBmb3IgdGhlIHRyZW5kJ3MgYnVja2V0cyAoc2VlIHtAbGluayBCdWNrZXRPcHRpb25zfSkuICovXG4gIHR6Pzogc3RyaW5nO1xuICAvKiogV2VlayBzdGFydCBmb3IgdGhlIHRyZW5kJ3MgYnVja2V0cy4gKi9cbiAgd2Vla1N0YXJ0PzogJ21vbmRheScgfCAnc3VuZGF5Jztcbn1cblxuLyoqXG4gKiBQZXItb3JnIHJlcG9ydGluZyBzZXR0aW5ncyBzdXJmYWNlZCB0byB0aGUgb3JnLWFkbWluIHBhbmVsLiBgaW5jaWRlbnRXaW5kb3dIb3Vyc2BcbiAqIGlzIHRoZSBpbmNpZGVudOKGkmRlcGxveSBjb3JyZWxhdGlvbiB3aW5kb3c7IGBldmVudFJldGVudGlvbkRheXNgIC9cbiAqIGBkb3JhUmV0ZW50aW9uRGF5c2AgYXJlIHRoZSB0d28gcmV0ZW50aW9uLXN3ZWVwIHdpbmRvd3MuIEVhY2ggb3ZlcnJpZGVcbiAqIGlzIGBudWxsYCB3aGVuIHVuc2V0ICh0aGUgcGFpcmVkIGBkZWZhdWx0KmAgZmllbGQgc2hvd3MgdGhlIGVudiBmYWxsYmFjayBhcHBsaWVkKS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXBvcnRpbmdTZXR0aW5ncyB7XG4gIC8qKiBUaGUgb3JnJ3Mgc3RvcmVkIGNvcnJlbGF0aW9uLXdpbmRvdyBvdmVycmlkZSBpbiBob3Vycywgb3IgYG51bGxgIHdoZW4gdW5zZXQuICovXG4gIGluY2lkZW50V2luZG93SG91cnM6IG51bWJlciB8IG51bGw7XG4gIC8qKiBUaGUgZ2xvYmFsIGVudiBkZWZhdWx0IGFwcGxpZWQgd2hlbiBubyBvdmVycmlkZSBpcyBzdG9yZWQuICovXG4gIGRlZmF1bHRXaW5kb3dIb3VyczogbnVtYmVyO1xuICAvKiogU3RhbmRhcmQtZXZlbnQgcmV0ZW50aW9uIG92ZXJyaWRlIGluIGRheXMsIG9yIGBudWxsYCB3aGVuIHVuc2V0LiAqL1xuICBldmVudFJldGVudGlvbkRheXM6IG51bWJlciB8IG51bGw7XG4gIC8qKiBET1JBLXNvdXJjZSByZXRlbnRpb24gb3ZlcnJpZGUgaW4gZGF5cywgb3IgYG51bGxgIHdoZW4gdW5zZXQuICovXG4gIGRvcmFSZXRlbnRpb25EYXlzOiBudW1iZXIgfCBudWxsO1xuICAvKiogR2xvYmFsIHN0YW5kYXJkLWV2ZW50IHJldGVudGlvbiBkZWZhdWx0IGFwcGxpZWQgd2hlbiB1bnNldCAoZGF5cykuICovXG4gIGRlZmF1bHRFdmVudFJldGVudGlvbkRheXM6IG51bWJlcjtcbiAgLyoqIEdsb2JhbCBET1JBLXNvdXJjZSByZXRlbnRpb24gZGVmYXVsdCBhcHBsaWVkIHdoZW4gdW5zZXQgKGRheXMpLiAqL1xuICBkZWZhdWx0RG9yYVJldGVudGlvbkRheXM6IG51bWJlcjtcbn1cblxuLyoqIEEgcGFydGlhbCByZXBvcnRpbmctc2V0dGluZ3Mgd3JpdGUgKDcpLiBPbmx5IHByb3ZpZGVkIGZpZWxkcyBhcmVcbiAqICB1cHNlcnRlZDsgb21pdHRlZCBmaWVsZHMgYXJlIGxlZnQgdW5jaGFuZ2VkIChhbiBvbWl0dGVkIHJldGVudGlvbiBmaWVsZCBrZWVwc1xuICogIGl0cyBzdG9yZWQgb3ZlcnJpZGUgLyB0aGUgZ2xvYmFsIGRlZmF1bHQpLiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXBvcnRpbmdTZXR0aW5nc1BhdGNoIHtcbiAgaW5jaWRlbnRXaW5kb3dIb3Vycz86IG51bWJlcjtcbiAgZXZlbnRSZXRlbnRpb25EYXlzPzogbnVtYmVyO1xuICBkb3JhUmV0ZW50aW9uRGF5cz86IG51bWJlcjtcbn1cblxuLyoqIE9uZSByb3cgb2YgdGhlIG9yZy1hZG1pbiBpbmNpZGVudHMgbGlzdCAocmVjZW50IGluY2lkZW50cyArIGRlcGxveSBjb3JyZWxhdGlvbikuICovXG5leHBvcnQgaW50ZXJmYWNlIEluY2lkZW50TGlzdEl0ZW0ge1xuICBpbmNpZGVudElkOiBzdHJpbmc7XG4gIGVudmlyb25tZW50OiBzdHJpbmc7XG4gIHNldmVyaXR5OiBzdHJpbmc7XG4gIG9wZW5lZEF0OiBzdHJpbmcgfCBudWxsO1xuICByZXNvbHZlZEF0OiBzdHJpbmcgfCBudWxsO1xuICBjcmVhdGVkQXQ6IHN0cmluZyB8IG51bGw7XG4gIC8qKiBUcnVlIG9uY2UgdGhlIGluY2lkZW50IGhhcyBhIGByZXNvbHZlZF9hdGAuICovXG4gIHJlc29sdmVkOiBib29sZWFuO1xuICAvKiogVGhlIGNvcnJlbGF0ZWQgZGVwbG95IGV4ZWN1dGlvbiBpZCAobW9zdCByZWNlbnQgc3VjY2Vzc2Z1bCBkZXBsb3kgaW4td2luZG93KSwgb3IgbnVsbC4gKi9cbiAgY29ycmVsYXRlZEV4ZWN1dGlvbklkOiBzdHJpbmcgfCBudWxsO1xuICAvKiogVGhhdCBkZXBsb3kncyBjb21wbGV0aW9uIGluc3RhbnQsIG9yIG51bGwgd2hlbiB1bmNvcnJlbGF0ZWQuICovXG4gIGRlcGxveUNvbXBsZXRlZEF0OiBzdHJpbmcgfCBudWxsO1xufVxuXG4vKiogUmVzdWx0IG9mIHRoZSB3aXJpbmctdGVzdCBkcnktcnVuIGNvcnJlbGF0aW9uICh7QGxpbmsgUmVwb3J0aW5nU2VydmljZS50ZXN0SW5jaWRlbnRDb3JyZWxhdGlvbn0pLiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbmNpZGVudFRlc3RSZXN1bHQge1xuICBlbnZpcm9ubWVudDogc3RyaW5nO1xuICAvKiogVGhlIHN5bnRoZXRpYyBpbmNpZGVudCdzIG9wZW5lZEF0IChub3csIElTTykuICovXG4gIG9wZW5lZEF0OiBzdHJpbmc7XG4gIC8qKiBUaGUgZWZmZWN0aXZlIGNvcnJlbGF0aW9uIHdpbmRvdyB1c2VkLiAqL1xuICB3aW5kb3dIb3VyczogbnVtYmVyO1xuICAvKiogV2hldGhlciBhIHJlY2VudCBzdWNjZXNzZnVsIGRlcGxveSB0byBgZW52aXJvbm1lbnRgIGNvcnJlbGF0ZWQuICovXG4gIGNvcnJlbGF0ZWQ6IGJvb2xlYW47XG4gIC8qKiBUaGUgY29ycmVsYXRlZCBkZXBsb3kgZXhlY3V0aW9uIGlkLCBvciBudWxsLiAqL1xuICBleGVjdXRpb25JZDogc3RyaW5nIHwgbnVsbDtcbiAgLyoqIFRoYXQgZGVwbG95J3MgY29tcGxldGlvbiBpbnN0YW50LCBvciBudWxsLiAqL1xuICBkZXBsb3lDb21wbGV0ZWRBdDogc3RyaW5nIHwgbnVsbDtcbn1cblxuLy8gRE9SQSBwZXJmb3JtYW5jZSBiYW5kcyAodGhyZXNob2xkcyBmcm9tIHRoZSBET1JBL0FjY2VsZXJhdGUgcmVwb3J0cykuIEVhY2hcbi8vIGhlbHBlciByZXR1cm5zIGBudWxsYCB3aGVuIHRoZXJlJ3Mgbm8gc2FtcGxlIHRvIGNsYXNzaWZ5LlxuLyoqIERlcGxveW1lbnQgZnJlcXVlbmN5IGJ5IGRlcGxveXMvZGF5OiBlbGl0ZSDiiaUxL2RheSwgaGlnaCDiiaUxL3dlZWssIG1lZGl1bSDiiaUxL21vbnRoLiAqL1xuXG4vKipcbiAqIERPUkEgbWV0cmljcyBvdmVyIGEgW2Zyb20sdG9dIHdpbmRvdywgb3JnLXNjb3BlZCAoc2luZ2xlLW9yZyBvciByb2xsdXAgc3VidHJlZSkuXG4gKlxuICogREVQTE9ZLUJBU0lTIOKAlCBldmVyeSBtZXRyaWMgZGVyaXZlcyBmcm9tIHJlYWwgREVQTE9ZLVNUQUdFIGV4ZWN1dGlvbnMsIGkuZS5cbiAqIGBwaXBlbGluZV9ldmVudHNgIHJvd3Mgd2l0aCBgZXZlbnRfdHlwZT0nU1RBR0UnYCBhbmQgYSBub24tbnVsbCBgZW52aXJvbm1lbnRgXG4gKiAodGhlIGZvcndhcmRlciBzZXRzIGBlbnZpcm9ubWVudGAgb25seSBmb3IgdGhlIHN0YWdlcyBhIHVzZXIgZGVjbGFyZWQgaW5cbiAqIGBwYi5kZXBsb3lzYCkuIEEgQ0ktb25seSBidWlsZC90ZXN0IHBpcGVsaW5lIHdpdGggbm8gZGVwbG95IHN0YWdlIHByb2R1Y2VzIE5PXG4gKiBET1JBIGRhdGEg4oCUIHRoZXJlIGlzIG5vIHJ1bi1iYXNlZCBmYWxsYmFjay4gVGhlIHBhbmVsIGlzIGVtcHR5IHVudGlsIGRlcGxveWVkXG4gKiBwaXBlbGluZXMgcmUtc3ludGggd2l0aCB0aGUgbmV3IGRlcGxveSB0YWdzIGFuZCBzdGFydCBlbWl0dGluZyBkZXBsb3kgZXZlbnRzLlxuICpcbiAqIGBwcm9kdWN0aW9uYCBpcyB0aGUgaGVhZGxpbmUgZW52aXJvbm1lbnQ7IE1UVFIgaXMgbWVhc3VyZWQgcHJvZHVjdGlvbi1vbmx5LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERvcmFNZXRyaWNzIHtcbiAgLyoqIFRoZSBbZnJvbSx0b10gd2luZG93IGVjaG9lZCBiYWNrIChkZXBsb3kgYGNvbXBsZXRlZF9hdGAgcmFuZ2UpLiAqL1xuICB3aW5kb3c6IHsgZnJvbTogc3RyaW5nOyB0bzogc3RyaW5nIH07XG4gIC8qKiBUaGUgc2NvcGluZyBhcHBsaWVkIChlY2hvZWQgZm9yIHRoZSBVSSk7IGBudWxsYCB3aGVuIHVuc2NvcGVkLiAqL1xuICBmaWx0ZXJzOiB7IHBpcGVsaW5lSWQ6IHN0cmluZyB8IG51bGw7IGVudmlyb25tZW50OiBzdHJpbmcgfCBudWxsIH07XG4gIC8qKiBUaGUgaGVhZGxpbmUgZW52aXJvbm1lbnQgbmFtZSAoYHByb2R1Y3Rpb25gKS4gKi9cbiAgaGVhZGxpbmU6IHN0cmluZztcbiAgLyoqIFBlci1lbnZpcm9ubWVudCBERiAvIENGUiAvIGxlYWQgdGltZS4gU29ydGVkIGhlYWRsaW5lLWZpcnN0LCB0aGVuIEHihpJaLiAqL1xuICBlbnZpcm9ubWVudHM6IERvcmFFbnZNZXRyaWNzW107XG4gIC8qKlxuICAgKiBNZWFuIFRpbWUgVG8gUmVzdG9yZSDigJQgUFJPRFVDVElPTi1PTkxZLCBmcm9tIGBkZXBsb3ltZW50X291dGNvbWVzYC5cbiAgICogYG1lZGlhbihyZXN0b3JlZC5hdCDiiJIgZGVwbG95ZWQuY29tcGxldGVkX2F0KWAgb3ZlciByZXN0b3JlZCBwcm9kdWN0aW9uXG4gICAqIGluY2lkZW50cyAoZGVsdGFzIGNsYW1wZWQg4omlMCkuIGBpbmNpZGVudHNgIGNvdW50cyBwcm9kdWN0aW9uIGRlcGxveXMgbWFya2VkXG4gICAqIGZhaWxlZDsgYHJlc3RvcmVkYCBjb3VudHMgdGhvc2UgdGhhdCByZWNvdmVyZWQ7IGBtZWRpYW5TZWNvbmRzYCBpcyBudWxsIHdoZW5cbiAgICogbm8gcmVzdG9yZWQgaW5jaWRlbnQgaGFzIGEgcmVzb2x2YWJsZSBkZXBsb3kgdGltZS5cbiAgICovXG4gIG1lYW5UaW1lVG9SZXN0b3JlOiB7XG4gICAgaW5jaWRlbnRzOiBudW1iZXI7XG4gICAgcmVzdG9yZWQ6IG51bWJlcjtcbiAgICBtZWRpYW5TZWNvbmRzOiBudW1iZXIgfCBudWxsO1xuICAgIC8qKiA5MHRoLzk1dGggcGVyY2VudGlsZSByZWNvdmVyeSwgb3ZlciB0aGUgc2FtZSBzYW1wbGUgYXMgdGhlIG1lZGlhbi4gVGhlXG4gICAgICogIG1lZGlhbiBhbG9uZSBoaWRlcyB0aGUgbG9uZyB0YWlsIHRoYXQgYWN0dWFsbHkgZGVmaW5lcyBhbiBvdXRhZ2UncyBjb3N0O1xuICAgICAqICBgbnVsbGAgd2hlbiBubyByZWNvdmVyeSBnYXAgd2FzIG9ic2VydmVkLiAqL1xuICAgIHA5MFNlY29uZHM6IG51bWJlciB8IG51bGw7XG4gICAgcDk1U2Vjb25kczogbnVtYmVyIHwgbnVsbDtcbiAgICBsZXZlbDogRG9yYUxldmVsO1xuICB9O1xuICAvKipcbiAgICogQ292ZXJhZ2UgcmVjb25jaWxpYXRpb24g4oCUIHJlZ2lzdGVyZWQgcGlwZWxpbmVzIHdpdGggbm8gb2JzZXJ2ZWQgZGVwbG95IGluXG4gICAqIHRoZSB3aW5kb3cuIEEgaGlnaCBgd2l0aG91dERlcGxveXNgIGNvdW50IG1lYW5zIERPUkEgaXMgYmxpbmQgdG8gbW9zdCBvZiB0aGVcbiAgICogZmxlZXQgKHBpcGVsaW5lcyB0aGF0IGhhdmVuJ3QgcmUtc3ludGhlZCB3aXRoIGRlcGxveSB0YWdzLCBvciBkb24ndCBkZXBsb3kpLlxuICAgKi9cbiAgY292ZXJhZ2U6IHtcbiAgICAvKiogUGlwZWxpbmVzIGluIHRoZSByZWdpc3RyeSAob3JnLXNjb3BlZCkuICovXG4gICAgcmVnaXN0ZXJlZDogbnVtYmVyO1xuICAgIC8qKiBSZWdpc3RlcmVkIHBpcGVsaW5lcyB3aXRoIOKJpTEgZGVwbG95LXN0YWdlIGV4ZWN1dGlvbiBpbiB0aGUgd2luZG93LiAqL1xuICAgIGRlcGxveWluZzogbnVtYmVyO1xuICAgIC8qKiByZWdpc3RlcmVkIOKIkiBkZXBsb3lpbmcgKGNsYW1wZWQg4omlMCkuICovXG4gICAgd2l0aG91dERlcGxveXM6IG51bWJlcjtcbiAgfTtcbn1cblxuLyoqIFBlci1lbnZpcm9ubWVudCBET1JBIG1ldHJpY3MgKGRlcGxveW1lbnQgZnJlcXVlbmN5LCBDRlIsIGxlYWQgdGltZSkuICovXG5leHBvcnQgaW50ZXJmYWNlIERvcmFFbnZNZXRyaWNzIHtcbiAgZW52aXJvbm1lbnQ6IHN0cmluZztcbiAgLyoqIERlcGxveW1lbnQgRnJlcXVlbmN5IOKAlCBzdWNjZXNzZnVsIGRlcGxveS1zdGFnZSBleGVjdXRpb25zIGZvciB0aGlzIGVudi4gKi9cbiAgZGVwbG95bWVudEZyZXF1ZW5jeToge1xuICAgIGRlcGxveW1lbnRzOiBudW1iZXI7XG4gICAgcGVyRGF5OiBudW1iZXI7XG4gICAgbGV2ZWw6IERvcmFMZXZlbDtcbiAgfTtcbiAgLyoqXG4gICAqIENoYW5nZSBGYWlsdXJlIFJhdGUg4oCUIHR3by1jbGFzczpcbiAgICogYChkZXBsb3lUaW1lRmFpbHVyZXMgKyBwb3N0RGVwbG95RmFpbHVyZXMpIC8gYXR0ZW1wdHNgLlxuICAgKiAtIGBkZXBsb3lUaW1lRmFpbHVyZXNgIOKAlCBkZXBsb3kgc3RhZ2UgYHJlc3VsdD1mYWlsZWRgIChmcm9tIGV2ZW50cykuXG4gICAqIC0gYHBvc3REZXBsb3lGYWlsdXJlc2Ag4oCUIGEgc3VjY2Vzc2Z1bCBkZXBsb3kgbGF0ZXIgbWFya2VkIGZhaWxlZCBpbiBwcm9kXG4gICAqICAgKGZyb20gYGRlcGxveW1lbnRfb3V0Y29tZXNgKS5cbiAgICogLSBgYXR0ZW1wdHNgIOKAlCBhbGwgdGVybWluYWwgZGVwbG95LXN0YWdlIGF0dGVtcHRzIChzdWNjZWVkZWQgKyBmYWlsZWQpLlxuICAgKi9cbiAgY2hhbmdlRmFpbHVyZVJhdGU6IHtcbiAgICByYXRlOiBudW1iZXI7XG4gICAgZGVwbG95VGltZUZhaWx1cmVzOiBudW1iZXI7XG4gICAgcG9zdERlcGxveUZhaWx1cmVzOiBudW1iZXI7XG4gICAgYXR0ZW1wdHM6IG51bWJlcjtcbiAgICBsZXZlbDogRG9yYUxldmVsO1xuICB9O1xuICAvKipcbiAgICogTGVhZCBUaW1lIOKAlCBNRUFTVVJFRDogYG1lZGlhbihkZXBsb3lfY29tcGxldGVkIOKIkiBvbGRlc3RfY29tbWl0X3RpbWUpYCBvdmVyXG4gICAqIHN1Y2Nlc3NmdWwgZGVwbG95cyB3aXRoIGEgcmVzb2x2YWJsZSBjb21taXQgdGltZXN0YW1wIChkZWx0YXMgY2xhbXBlZCDiiaUwKS5cbiAgICogYG1lZGlhblNlY29uZHNgIGlzIGBudWxsYCAoPSB1bmtub3duKSB3aGVuIG5vIHN1Y2Nlc3NmdWwgZGVwbG95IGluIHRoaXMgZW52XG4gICAqIGNhcnJpZWQgYSBgY29tbWl0X3RpbWVzdGFtcGAuIFRoZSBvbGQgbWVkaWFuLXJ1bi1kdXJhdGlvbiBwcm94eSBpcyByZW1vdmVkLlxuICAgKlxuICAgKiBgcDkwU2Vjb25kc2AvYHA5NVNlY29uZHNgIGNvbWUgZnJvbSB0aGUgc2FtZSBzYW1wbGUuIFRoZSBsZXZlbCBpcyBzY29yZWQgb2ZmXG4gICAqIHRoZSBNRURJQU4gb25seSwgc28gYWRkaW5nIHRoZSB0YWlscyBjYW5ub3QgbW92ZSBhIHRlYW0ncyBET1JBIGJhbmQuXG4gICAqL1xuICBsZWFkVGltZToge1xuICAgIC8qKiBTdWNjZXNzZnVsIGRlcGxveXMgd2l0aCBhIHJlc29sdmFibGUgY29tbWl0IHRpbWUgKHRoZSBtZWRpYW4gc2FtcGxlKS4gKi9cbiAgICBkZXBsb3ltZW50czogbnVtYmVyO1xuICAgIG1lZGlhblNlY29uZHM6IG51bWJlciB8IG51bGw7XG4gICAgcDkwU2Vjb25kczogbnVtYmVyIHwgbnVsbDtcbiAgICBwOTVTZWNvbmRzOiBudW1iZXIgfCBudWxsO1xuICAgIGxldmVsOiBEb3JhTGV2ZWw7XG4gIH07XG59XG5cbi8qKiBPbmUgaW50ZXJ2YWwgYnVja2V0IG9mIHRoZSBET1JBIHRyZW5kIChkZXBsb3kgZnJlcXVlbmN5ICsgY2hhbmdlIGZhaWx1cmUpLiAqL1xuZXhwb3J0IGludGVyZmFjZSBEb3JhVHJlbmRQb2ludCB7XG4gIC8qKiBCdWNrZXQgc3RhcnQgKERBVEVfVFJVTkMgb2YgdGhlIGRlcGxveSBgY29tcGxldGVkX2F0YCksIElTTyB0ZXh0LiAqL1xuICBwZXJpb2Q6IHN0cmluZztcbiAgLyoqIFN1Y2Nlc3NmdWwgZGVwbG95LXN0YWdlIGV4ZWN1dGlvbnMgaW4gdGhlIGJ1Y2tldC4gKi9cbiAgZGVwbG95bWVudHM6IG51bWJlcjtcbiAgLyoqIEZhaWxlZCBkZXBsb3ktc3RhZ2UgZXhlY3V0aW9ucyBpbiB0aGUgYnVja2V0LiAqL1xuICBmYWlsZWQ6IG51bWJlcjtcbiAgLyoqIHN1Y2NlZWRlZCArIGZhaWxlZCBpbiB0aGUgYnVja2V0IChkZXBsb3kgYXR0ZW1wdHMpLiAqL1xuICB0b3RhbDogbnVtYmVyO1xuICAvKiogZmFpbGVkL3RvdGFsIGFzIGEgcGVyY2VudCAoMCB3aGVuIHRvdGFsIGlzIDApLiBEZXBsb3ktdGltZSBDRlIgb25seS4gKi9cbiAgY2hhbmdlRmFpbHVyZVBjdDogbnVtYmVyO1xufVxuXG4vKiogUGVyLXN0YWdlIGJ1aWxkLWhlYWx0aCBtZXRyaWNzIGZvciBvbmUgcGlwZWxpbmUgb3ZlciBhIHdpbmRvdy4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQnVpbGRIZWFsdGhTdGFnZSB7XG4gIHN0YWdlOiBzdHJpbmc7XG4gIC8qKiBUZXJtaW5hbCBzdGFnZSBydW5zIChzdWNjZWVkZWQgKyBmYWlsZWQpIGluIHRoZSB3aW5kb3cuICovXG4gIHJ1bnM6IG51bWJlcjtcbiAgc3VjY2Vzc2VzOiBudW1iZXI7XG4gIGZhaWx1cmVzOiBudW1iZXI7XG4gIC8qKiBzdWNjZXNzZXMgLyBydW5zIGFzIGEgcGVyY2VudCAoMCB3aGVuIHJ1bnMgaXMgMCkuICovXG4gIHN1Y2Nlc3NSYXRlOiBudW1iZXI7XG4gIC8qKiBEdXJhdGlvbiBwZXJjZW50aWxlcyBvdmVyIHRoZSBzdGFnZSdzIHRlcm1pbmFsIHJ1bnM7IG51bGwgd2hlbiBubyBkdXJhdGlvbnMuICovXG4gIHA1ME1zOiBudW1iZXIgfCBudWxsO1xuICBwOTBNczogbnVtYmVyIHwgbnVsbDtcbiAgcDk5TXM6IG51bWJlciB8IG51bGw7XG59XG5cbi8qKlxuICogUGVyLXBpcGVsaW5lIGJ1aWxkLWhlYWx0aCBicmVha2Rvd24uIFN0YW5kYXJkIHJlcG9ydGluZyAoTk9UXG4gKiBgYWR2YW5jZWRfcmVwb3J0aW5nYC1nYXRlZCkg4oCUIHBlci1zdGFnZSBzdWNjZXNzIHJhdGUgKyB0aW1pbmcgcGVyY2VudGlsZXMsIHdpdGhcbiAqIHRvdGFscyBzdW1tZWQgYWNyb3NzIHN0YWdlcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCdWlsZEhlYWx0aCB7XG4gIHN0YWdlczogQnVpbGRIZWFsdGhTdGFnZVtdO1xuICB0b3RhbHM6IHsgcnVuczogbnVtYmVyOyBmYWlsdXJlczogbnVtYmVyOyBmYWlsdXJlUmF0ZTogbnVtYmVyIH07XG59XG5cbi8qKiBQb3N0LWRlcGxveSBpbmNpZGVudCBtYXJrZXIgYWNjZXB0ZWQgYnkgYFJlcG9ydGluZ1NlcnZpY2UucmVjb3JkSW5jaWRlbnRgLiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbmNpZGVudElucHV0IHtcbiAgaW5jaWRlbnRJZDogc3RyaW5nO1xuICBlbnZpcm9ubWVudDogc3RyaW5nO1xuICBvcGVuZWRBdDogc3RyaW5nO1xuICByZXNvbHZlZEF0Pzogc3RyaW5nO1xuICBzZXZlcml0eTogc3RyaW5nO1xufVxuXG4vKiogVGhlIHBlcnNpc3RlZCBpbmNpZGVudCBzdGF0ZSBhcyBhbiBhdWRpdCByb3cgcmVjb3JkcyBpdCAoc2NydWJiZWQgdmFsdWVzLCBJU08gaW5zdGFudHMpLiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbmNpZGVudFN0YXRlIHtcbiAgZW52aXJvbm1lbnQ6IHN0cmluZztcbiAgb3BlbmVkQXQ6IHN0cmluZyB8IG51bGw7XG4gIHJlc29sdmVkQXQ6IHN0cmluZyB8IG51bGw7XG4gIHNldmVyaXR5OiBzdHJpbmc7XG59XG5cbi8qKlxuICogV2hhdCBgUmVwb3J0aW5nU2VydmljZS5yZWNvcmRJbmNpZGVudGAgZGlkLiBgY2hhbmdlZGAgaXMgZmFsc2UgZm9yIGEgc2VuZGVyJ3NcbiAqIHJlcGVhdC1pbnRlcnZhbCByZS1wb3N0IG9mIGFuIHVuY2hhbmdlZCBhbGVydCwgc28gdGhlIHJvdXRlIHJlY29yZHMgYW4gYXVkaXRcbiAqIHJvdyBvbmx5IGZvciBhbiBpbmNpZGVudCB0aGF0IGlzIG5ldyBvciBhY3R1YWxseSBtb3ZlZCAob3BlbmVkLCByZS1vcGVuZWQsXG4gKiByZXNvbHZlZCwgcmUtcmFua2VkKSDigJQgYSB3ZWJob29rIHJlLWZpcmluZyBldmVyeSBmZXcgaG91cnMgbXVzdCBub3QgYnVyeSB0aGVcbiAqIHRyYWlsLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEluY2lkZW50V3JpdGUge1xuICAvKiogVGhlIHN0b3JlZCAoc2NydWJiZWQpIGluY2lkZW50IGlkLiAqL1xuICBpbmNpZGVudElkOiBzdHJpbmc7XG4gIGNyZWF0ZWQ6IGJvb2xlYW47XG4gIGNoYW5nZWQ6IGJvb2xlYW47XG4gIGJlZm9yZTogSW5jaWRlbnRTdGF0ZSB8IG51bGw7XG4gIGFmdGVyOiBJbmNpZGVudFN0YXRlO1xufVxuXG4vKiogV2hhdCBgUmVwb3J0aW5nU2VydmljZS5yZWNvcmREZXBsb3ltZW50T3V0Y29tZWAgcmVwbGFjZWQ6IHRoZSBwcmlvciBtYXJrZXIgb2YgdGhlIHNhbWUgb3V0Y29tZSwgaWYgYW55LiAqL1xuZXhwb3J0IGludGVyZmFjZSBEZXBsb3ltZW50T3V0Y29tZVdyaXRlIHtcbiAgcHJldmlvdXM6IHsgYXQ6IHN0cmluZyB8IG51bGw7IGVudmlyb25tZW50OiBzdHJpbmcgfCBudWxsIH0gfCBudWxsO1xufVxuXG4vKiogRXZlbnQgcGF5bG9hZCBhY2NlcHRlZCBieSBgUmVwb3J0aW5nU2VydmljZS5pbmdlc3RFdmVudHNgLiBNaXJyb3JzIHRoZSByb3V0ZSdzIFpvZCBzaGFwZS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW5nZXN0RXZlbnQge1xuICAvKiogU3RhYmxlIHBpcGVsaW5lIGlkIHRoZSBldmVudHMgTGFtYmRhIHJlYWQgZnJvbSB0aGUgYHBiLnBpcGVsaW5lLWlkYFxuICAgKiAgdGFnICg9IHRoZSBwbGF0Zm9ybSBwaXBlbGluZUlkKS4gVGhlIHJlZ2lzdHJ5IGpvaW4ga2V5LiAqL1xuICBwaXBlbGluZUlkOiBzdHJpbmc7XG4gIGV2ZW50U291cmNlOiAnY29kZXBpcGVsaW5lJyB8ICdjb2RlYnVpbGQnIHwgJ3BsdWdpbi1idWlsZCc7XG4gIGV2ZW50VHlwZTogJ1BJUEVMSU5FJyB8ICdTVEFHRScgfCAnQUNUSU9OJyB8ICdCVUlMRCc7XG4gIHN0YXR1czogc3RyaW5nO1xuICBleGVjdXRpb25JZD86IHN0cmluZztcbiAgc3RhZ2VOYW1lPzogc3RyaW5nO1xuICBhY3Rpb25OYW1lPzogc3RyaW5nO1xuICAvKiogSHVtYW4tcmVhZGFibGUgZmFpbHVyZSByZWFzb24gKEFjdGlvbiBldmVudHMpLiAqL1xuICBlcnJvck1lc3NhZ2U/OiBzdHJpbmc7XG4gIHN0YXJ0ZWRBdD86IHN0cmluZztcbiAgY29tcGxldGVkQXQ/OiBzdHJpbmc7XG4gIGR1cmF0aW9uTXM/OiBudW1iZXI7XG4gIC8qKiBTb3VyY2UgY29tbWl0IGlkIG9mIHRoZSBjaGFuZ2UgYmVpbmcgc2hpcHBlZCAoRE9SQSBkZXBsb3kgYXR0cmlidXRpb24pLiAqL1xuICBjb21taXRTaGE/OiBzdHJpbmc7XG4gIC8qKiBTb3VyY2UgcmVmL2JyYW5jaCAoRE9SQSBkZXBsb3kgYXR0cmlidXRpb24pLiAqL1xuICBjb21taXRSZWY/OiBzdHJpbmc7XG4gIC8qKiBEZXBsb3kgdGFyZ2V0IChlLmcuIFwicHJvZHVjdGlvblwiKS4gSXRzIHByZXNlbmNlIG9uIGEgU1RBR0UvQUNUSU9OIGV2ZW50XG4gICAqICBtYXJrcyBhIHJlYWwgZGVwbG95bWVudCAoZGVyaXZlZCBzZXJ2ZXItc2lkZSDigJQgdGhlcmUgaXMgbm8gYGlzRGVwbG95YCkuICovXG4gIGVudmlyb25tZW50Pzogc3RyaW5nO1xuICAvKiogT2xkZXN0IHVuc2hpcHBlZCBjb21taXQgdGltZXN0YW1wIChJU08gODYwMSkgZm9yIG1lYXN1cmVkIGxlYWQgdGltZS4gKi9cbiAgY29tbWl0VGltZXN0YW1wPzogc3RyaW5nO1xuICAvKiogTnVtYmVyIG9mIGNvbW1pdHMgc2hpcHBlZCBpbiB0aGlzIGNoYW5nZSAo4omlMSkuICovXG4gIGNvbW1pdENvdW50PzogbnVtYmVyO1xuICAvKipcbiAgICogVGhlIEV2ZW50QnJpZGdlIGV2ZW50IGBpZGAgdGhlIGZvcndhcmRlciByZWNlaXZlZCB0aGlzIHN0YXRlIGNoYW5nZSBhcy5cbiAgICogQVdTLWFzc2lnbmVkIGFuZCB1bmlxdWUgcGVyIGRlbGl2ZXJ5IHNvdXJjZSBldmVudCwgc28gaXQgaXMgdGhlIHN0cm9uZ2VzdFxuICAgKiBkZWR1cCBrZXkgdGhlcmUgaXMgKGBldmVudF9zb3VyY2VfZXZlbnRfaWR4YCkgYW5kIHRoZSB0aHJlYWQgYW4gYXVkaXQgb3JcbiAgICogRE9SQSByb3cgZm9sbG93cyBiYWNrIHRvIHRoZSBleGFjdCBBV1MgZXZlbnQuIEFic2VudCBmb3IgcGx1Z2luLWJ1aWxkXG4gICAqIGV2ZW50cywgd2hpY2ggaGF2ZSBubyBFdmVudEJyaWRnZSBvcmlnaW4uXG4gICAqL1xuICBzb3VyY2VFdmVudElkPzogc3RyaW5nO1xuICAvKiogVGhlIFNRUyBtZXNzYWdlIGlkIGl0IGFycml2ZWQgaW4gKGZvbGRlZCBpbnRvIGBkZXRhaWwuc291cmNlTWVzc2FnZUlkYDsgbm90IGEgY29sdW1uKS4gKi9cbiAgc291cmNlTWVzc2FnZUlkPzogc3RyaW5nO1xuICBkZXRhaWw/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbn1cblxuLyoqXG4gKiBQZXItZXZlbnQgbWV0cmljIGRlc2NyaXB0b3IgZW1pdHRlZCAodmlhIHRoZSB7QGxpbmsgUmVwb3J0aW5nU2VydmljZS5pbmdlc3RFdmVudHN9XG4gKiBgb25NZXRyaWNgIGhvb2spIGZvciBlYWNoIFJFR0lTVEVSRUQgdGVybWluYWwgZGVwbG95L3N0YWdlIGV2ZW50LCBzbyB0aGUgcm91dGVcbiAqIGxheWVyIGNhbiBmYW4gdGhlbSBpbnRvIFByb21ldGhldXMgY291bnRlcnMgd2l0aG91dCBwaXBlbGluZS1kYXRhIGltcG9ydGluZ1xuICogYXBpLXNlcnZlcidzIG1ldHJpY3MgcmVnaXN0cnkuIGByZXN1bHRgIGlzIHRoZSB0ZXJtaW5hbCBvdXRjb21lOyBgZW52aXJvbm1lbnRgXG4gKiBpcyBub24tbnVsbCBvbmx5IGZvciBhIGRlcGxveS1zdGFnZSBldmVudC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdGFnZUluZ2VzdE1ldHJpYyB7XG4gIGtpbmQ6ICdzdGFnZSc7XG4gIHBpcGVsaW5lSWQ6IHN0cmluZztcbiAgb3JnSWQ6IHN0cmluZztcbiAgc3RhZ2U6IHN0cmluZztcbiAgZW52aXJvbm1lbnQ6IHN0cmluZyB8IG51bGw7XG4gIHJlc3VsdDogJ3N1Y2NlZWRlZCcgfCAnZmFpbGVkJztcbn1cblxuLyoqXG4gKiBPbmUgdGVybWluYWwgQ29kZUJ1aWxkIEFDVElPTidzIGNvbXB1dGUgY29uc3VtcHRpb24gKFBoYXNlIDQsIG1lYXN1cmVtZW50XG4gKiBoYWxmKS5cbiAqXG4gKiBgY3JlZGl0c2AgaXMgTlVMTCByYXRoZXIgdGhhbiAwIHdoZW4gdGhlIGFjdGlvbiBjb3VsZCBub3QgYmUgbWVhc3VyZWQg4oCUIG5vXG4gKiBkZWNsYXJlZCBzdGFydCB0aW1lLCBvciBhIGNvbXB1dGUgc2l6ZSB0aGUgZm9yd2FyZGVyIGNvdWxkIG5vdCByZWFkLiBUaGVcbiAqIGRpc3RpbmN0aW9uIGlzIHRoZSB3aG9sZSB2YWx1ZSBvZiB0aGlzIG1ldHJpYzogemVybyB3b3VsZCBtYWtlIGEgY292ZXJhZ2UgZ2FwXG4gKiBsb29rIGxpa2UgaWRsZW5lc3MsIGFuZCBhIHRpZXIgbGFkZGVyIHJlLWRlcml2ZWQgYWdhaW5zdCBhbiB1bmtub3duXG4gKiBkZW5vbWluYXRvciBpcyBhIHJlcHJpY2luZyBub2JvZHkgY2FuIGRlZmVuZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb21wdXRlSW5nZXN0TWV0cmljIHtcbiAga2luZDogJ2NvbXB1dGUnO1xuICBwaXBlbGluZUlkOiBzdHJpbmc7XG4gIG9yZ0lkOiBzdHJpbmc7XG4gIGNvbXB1dGVUeXBlOiBzdHJpbmcgfCBudWxsO1xuICBkdXJhdGlvbk1zOiBudW1iZXIgfCBudWxsO1xuICBjcmVkaXRzOiBudW1iZXIgfCBudWxsO1xufVxuXG4vKiogV2hhdCB0aGUgaW5nZXN0IGZhbnMgb3V0IHRvIGl0cyBjYWxsZXIncyBtZXRyaWMgcmVnaXN0cnkuIERpc2NyaW1pbmF0ZWQsIHNvXG4gKiAgYSBuZXcga2luZCBjYW5ub3QgYmUgc2lsZW50bHkgY291bnRlZCBhcyBhIHN0YWdlIG91dGNvbWUuICovXG5leHBvcnQgdHlwZSBJbmdlc3RNZXRyaWMgPSBTdGFnZUluZ2VzdE1ldHJpYyB8IENvbXB1dGVJbmdlc3RNZXRyaWM7XG5cbi8qKiBDb3VudHMgKyB0aGUgKHBvc3NpYmx5IHRydW5jYXRlZCkgbGlzdCBvZiB1bnJlZ2lzdGVyZWQgcGlwZWxpbmUgaWRzIHRoZSBjYWxsZXIgY2FuIGxvZy4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW5nZXN0UmVzdWx0IHtcbiAgaW5zZXJ0ZWQ6IG51bWJlcjtcbiAgc2tpcHBlZDogbnVtYmVyO1xuICB1bnJlZ2lzdGVyZWRQaXBlbGluZUlkczogc3RyaW5nW107XG4gIC8qKlxuICAgKiBFdmVyeSBvcmcgd2l0aCBhdCBsZWFzdCBvbmUgcm93IGluIHRoaXMgYmF0Y2gsIGRlZHVwZWQuXG4gICAqXG4gICAqIEFscmVhZHkgY29tcHV0ZWQgZm9yIHBvc3QtY29tbWl0IGNhY2hlIGludmFsaWRhdGlvbjsgc3VyZmFjZWQgYmVjYXVzZSB0aGVcbiAgICogaW5nZXN0IHJvdXRlIG5lZWRzIHRoZSBzYW1lIHNldCB0byBwdXNoIGl0cyBsaXZlIFNTRSBmcmFtZS4gVGhlIHN0YWdlLW1ldHJpY1xuICAgKiBob29rIGNhbid0IGRyaXZlIHRoYXQgZmFuLW91dDogaXQgb25seSBmaXJlcyBmb3IgU1RBR0UgZXZlbnRzLCBzbyBhIGJhdGNoIG9mXG4gICAqIFBJUEVMSU5FIG9yIEJVSUxEIGV2ZW50cyB3b3VsZCBsYW5kIHJvd3MgYW5kIHB1c2ggbm8gZnJhbWUgYXQgYWxsLlxuICAgKi9cbiAgYWZmZWN0ZWRPcmdzOiBzdHJpbmdbXTtcbiAgLyoqXG4gICAqIEV2ZW50cyBkcm9wcGVkIGJlY2F1c2UgdGhlIHBpcGVsaW5lIHRoZXkgbmFtZSBiZWxvbmdzIHRvIGFuIG9yZyB0aGUgY2FsbGVyXG4gICAqIG1heSBub3Qgd3JpdGUgZm9yLiBTdXJmYWNlZCBzbyB0aGUgcm91dGUgY2FuIGxvZyBhbmQgY291bnQgdGhlbTogYSBub24temVyb1xuICAgKiB2YWx1ZSBpcyBlaXRoZXIgYSBtaXNyb3V0ZWQgcHJvZHVjZXIgb3IgYW4gYXR0ZW1wdCB0byBpbmplY3QgZXZlbnRzIGludG9cbiAgICogYW5vdGhlciB0ZW5hbnQncyByZXBvcnRzLCBhbmQgYm90aCBuZWVkIHRvIGJlIHZpc2libGUuXG4gICAqL1xuICBkcm9wcGVkRm9yZWlnbk9yZzogbnVtYmVyO1xuICAvKipcbiAgICogRXZlbnRzIGRyb3BwZWQgYmVjYXVzZSB0aGVpciB0aW1lc3RhbXBzIGFyZSBpbXBvc3NpYmxlIOKAlCBkYXRlZCBpbiB0aGUgZnV0dXJlLFxuICAgKiBvciBjb21wbGV0aW5nIGJlZm9yZSB0aGV5IHN0YXJ0ZWQuIFJlamVjdGVkIGhlcmUgcmF0aGVyIHRoYW4gY2xhbXBlZCBsYXRlcjpcbiAgICogYSBkZXBsb3kgd2hvc2UgZHVyYXRpb24gb3IgbGVhZCB0aW1lIGlzIG5lZ2F0aXZlIHNpbGVudGx5IHNrZXdzIGRlcGxveW1lbnRcbiAgICogZnJlcXVlbmN5LCBjaGFuZ2UtZmFpbHVyZSByYXRlIGFuZCBsZWFkIHRpbWUgZm9yIHRoZSB3aG9sZSBvcmcsIGFuZCBhIGNsYW1wXG4gICAqIHRvIDAgbWFrZXMgYSBiYWQgY2xvY2sgbG9vayBsaWtlIGFuIGluc3RhbnQgZGVwbG95LlxuICAgKi9cbiAgZHJvcHBlZEludmFsaWRUaW1lOiBudW1iZXI7XG4gIC8qKlxuICAgKiBUaGUgcmVnaXN0ZXJlZCBwaXBlbGluZSBpZHMgd2hvc2UgZXZlbnRzIHdlcmUgZHJvcHBlZCBhcyBGT1JFSUdOLU9SRyDigJQgdGhlXG4gICAqIHRlbmFuY3kgcmVmdXNhbCB0aGUgcm91dGUgYXVkaXRzIGFzIGEgZmFpbHVyZS4gSWRzIG9ubHkgKG5ldmVyIHRoZSBvcmcgdGhleVxuICAgKiByZXNvbHZlZCB0bzogdGhhdCB3b3VsZCB0ZWxsIGEgcHJvYmVyIHdoaWNoIHRlbmFudCBvd25zIHRoZSBwaXBlbGluZSkuXG4gICAqL1xuICBmb3JlaWduUGlwZWxpbmVJZHM6IHN0cmluZ1tdO1xuICAvKiogRGlzdGluY3QgZXhlY3V0aW9uIGlkcyBvZiB0aGUgcm93cyB0aGF0IGFjdHVhbGx5IGxhbmRlZCAodGhlIGF1ZGl0J3MgY29ycmVsYXRpb24gc2V0KS4gKi9cbiAgaW5zZXJ0ZWRFeGVjdXRpb25JZHM6IHN0cmluZ1tdO1xuICAvKiogRGlzdGluY3QgcGlwZWxpbmUgaWRzIG9mIHRoZSByb3dzIHRoYXQgYWN0dWFsbHkgbGFuZGVkLiAqL1xuICBpbnNlcnRlZFBpcGVsaW5lSWRzOiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBXaG8gaXMgd3JpdGluZywgZm9yIHRoZSBpbmdlc3QgdGVuYW5jeSBjaGVjay5cbiAqXG4gKiBgL3JlcG9ydHMvZXZlbnRzYCByZXNvbHZlcyBhbiBldmVudCdzIG9yZyBmcm9tIHRoZSBwaXBlbGluZSByZWdpc3RyeSwgc29cbiAqIHdpdGhvdXQgdGhpcyBhIHRva2VuIGhvbGRpbmcgYHJlcG9ydGluZzppbmdlc3RgIGNvdWxkIHBvc3QgZXZlbnRzIGZvciBBTllcbiAqIHBpcGVsaW5lIGlkIGFuZCBoYXZlIHRoZW0gYXR0cmlidXRlZCB0byB0aGF0IHBpcGVsaW5lJ3Mgb3JnIOKAlCBvbmUgb3JnXG4gKiBpbmplY3Rpbmcgcm93cyBpbnRvIGFub3RoZXIncyByZXBvcnRzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEluZ2VzdENhbGxlciB7XG4gIC8qKlxuICAgKiBPcmcgaWRzIHRoaXMgY2FsbGVyIG1heSB3cml0ZSBldmVudHMgZm9yOiBpdHMgb3duLCBwbHVzIGRlc2NlbmRhbnQgdGVhbXMuXG4gICAqIFJlc29sdmVkIGJ5IHRoZSByb3V0ZS4gQW4gZXZlbnQgd2hvc2UgcGlwZWxpbmUgYmVsb25ncyB0byBhbnl0aGluZyBlbHNlIGlzXG4gICAqIGRyb3BwZWQuXG4gICAqL1xuICBhbGxvd2VkT3JnSWRzOiByZWFkb25seSBzdHJpbmdbXTtcbiAgLyoqXG4gICAqIEEgdmVyaWZpZWQgSU5URVJOQUwgc2VydmljZSBwcmluY2lwYWwgKHRoZSBwbHVnaW4gc2VydmljZSBwb3N0cyBwbHVnaW4tYnVpbGRcbiAgICogZXZlbnRzIGZvciBldmVyeSB0ZW5hbnQpLiBTdWNoIGNhbGxlcnMgYXJlIGV4ZW1wdDogdGhleSBob2xkIGEgc2lnbmVkXG4gICAqIHNlcnZpY2Uga2V5IG5vIGV4dGVybmFsIGNsaWVudCBjYW4gbWludCwgYW5kIHRoZXkgbGVnaXRpbWF0ZWx5IHdyaXRlXG4gICAqIGNyb3NzLXRlbmFudC4gTmV2ZXIgc2V0IHRoaXMgZnJvbSBhbnl0aGluZyBhIHJlcXVlc3QgYm9keSBjYW4gaW5mbHVlbmNlLlxuICAgKi9cbiAgY3Jvc3NUZW5hbnQ/OiBib29sZWFuO1xuICAvKipcbiAgICogVGhlIGFjY2VzcyBrZXkgKHNlcnZpY2UtYWNjb3VudCAvIFBBVCBrZXkgaWQpIHRoZSBpbmdlc3QgdG9rZW4gd2FzIGV4Y2hhbmdlZFxuICAgKiBmcm9tLCBzdGFtcGVkIG9uIGV2ZXJ5IHJvdyBhcyBgaW5nZXN0X2tleV9pZGAgc28gYSBmb3JnZWQgb3IgbWlzcm91dGVkIHJvd1xuICAgKiBuYW1lcyB0aGUgY3JlZGVudGlhbCB0aGF0IHdyb3RlIGl0LiBBIGtleSBJRCwgbmV2ZXIgdGhlIHNlY3JldC5cbiAgICovXG4gIGtleUlkPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIE9uZSBvcmcncyBpbmdlc3Rpb24taGVhbHRoIHJvdyBhcyBSRUFEIGJhY2sgYnkgdGhlIFJlcG9ydHMgVUkuIFRoZVxuICogQVdTIGV2ZW50cyBMYW1iZGEgd3JpdGVzIGl0OyB0aGlzIGlzIHRoZSBzaGFwZSB0aGF0IGxldHMgdGhlIFVJIHRlbGxcbiAqIFwiaW5nZXN0aW9uIGlzIGhlYWx0aHksIHRoZXJlIHdlcmUgc2ltcGx5IG5vIGRlcGxveXMgaW4gdGhlIHJhbmdlXCIgYXBhcnQgZnJvbVxuICogXCJ3ZSBoYXZlbid0IGhlYXJkIGZyb20gdGhlIGluZ2VzdCBwaXBlbGluZSBzaW5jZSBYXCIuXG4gKlxuICogYG51bGxgIGZyb20ge0BsaW5rIFJlcG9ydGluZ1NlcnZpY2UuZ2V0SW5nZXN0SGVhbHRofSBtZWFucyB0aGUgZGVwbG95bWVudCBoYXNcbiAqIE5FVkVSIHJlcG9ydGVkIOKAlCBub3QgXCJzdGFsZVwiLiBUaGUgdHdvIG11c3Qgbm90IGJlIGNvbmZsYXRlZDogYSBmcmVzaCBpbnN0YWxsXG4gKiAob3Igb25lIHdob3NlIGZvcndhcmRlciB3YXMgbmV2ZXIgd2lyZWQgdXApIGhhcyBubyBoZWFydGJlYXQgYXQgYWxsLCBhbmRcbiAqIGNhbGxpbmcgdGhhdCBcInN0YWxlXCIgd291bGQgaW52ZW50IGEgcmVncmVzc2lvbiB0aGF0IG5ldmVyIGhhcHBlbmVkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEluZ2VzdEhlYWx0aFN0YXR1cyB7XG4gIC8qKiBXaGVuIHRoZSBmb3J3YXJkZXIgbGFzdCBwb3N0ZWQgYSBoZWFydGJlYXQgKGl0cyBvd24gY2xvY2ssIElTTyA4NjAxKS4gKi9cbiAgdXBkYXRlZEF0OiBzdHJpbmc7XG4gIC8qKiBUaW1lc3RhbXAgb2YgdGhlIG5ld2VzdCBldmVudCBpdCBoYWQgZm9yd2FyZGVkLCBvciBudWxsIGlmIGl0IGhhcyBzZWVuIG5vbmUuICovXG4gIGxhc3RFdmVudEF0OiBzdHJpbmcgfCBudWxsO1xuICAvKiogQ3VtdWxhdGl2ZSBldmVudHMgZm9yd2FyZGVkLCBvciBudWxsIHdoZW4gdGhlIGZvcndhcmRlciBkb2Vzbid0IHJlcG9ydCBpdC4gKi9cbiAgZm9yd2FyZGVkOiBudW1iZXIgfCBudWxsO1xuICAvKiogQ3VtdWxhdGl2ZSBldmVudHMgRFJPUFBFRCAobm9uLXplcm8g4oeSIGRhdGEgbG9zcyB1cHN0cmVhbSBvZiB0aGUgcmVwb3J0cykuICovXG4gIGRyb3BwZWQ6IG51bWJlciB8IG51bGw7XG59XG5cblxuLyoqXG4gKiBSZWFkLW9ubHkgcmVwb3J0aW5nIHNlcnZpY2UgZm9yIHBpcGVsaW5lIGV4ZWN1dGlvbiBhbmQgcGx1Z2luIGludmVudG9yeSBhZ2dyZWdhdGlvbnMuXG4gKiBEb2VzIG5vdCBleHRlbmQgQ3J1ZFNlcnZpY2Ug4oCUIHJlcG9ydHMgYXJlIGFnZ3JlZ2F0ZSBxdWVyaWVzLCBub3QgZW50aXR5IENSVUQuXG4gKlxuICogQWxsIHF1ZXJpZXMgYXJlIGNhY2hlZCBpbi1tZW1vcnkgdG8gYXZvaWQgcmVwZWF0ZWQgZXhwZW5zaXZlIFNRTCBhZ2dyZWdhdGlvbnM6XG4gKiAtIEludmVudG9yeSBxdWVyaWVzIChwbHVnaW4gc3VtbWFyeS9kaXN0cmlidXRpb24vdmVyc2lvbnMpOiA1IG1pbiBUVExcbiAqIC0gVGltZXNlcmllcyBxdWVyaWVzIChleGVjdXRpb24vYnVpbGQgbWV0cmljcyB3aXRoIGRhdGUgcmFuZ2VzKTogMiBtaW4gVFRMXG4gKi9cblxuLyoqXG4gKiBJbnRlcm5hbCByb3cgc2hhcGVzIGZvciB0aGUgRE9SQSBxdWVyaWVzLiBFeHBvcnRlZCBiZWNhdXNlIC4vZG9yYS50cyBjb25zdW1lc1xuICogdGhlbTsgbm90IHBhcnQgb2YgdGhlIHBhY2thZ2UncyBwdWJsaWMgc3VyZmFjZSAocmVwb3J0aW5nLXNlcnZpY2UudHNcbiAqIHJlLWV4cG9ydHMgdGhpcyBtb2R1bGUgd2hvbGVzYWxlLCB3aGljaCBpcyBhIGRlbGliZXJhdGUgc2ltcGxpZmljYXRpb24g4oCUIHRoZXNlXG4gKiBkZXNjcmliZSBxdWVyeSByZXN1bHRzLCBub3QgQVBJIGNvbnRyYWN0cykuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGVwbG95Um93IHtcbiAgZW52aXJvbm1lbnQ6IHN0cmluZztcbiAgc3RhdHVzOiAnU1VDQ0VFREVEJyB8ICdGQUlMRUQnIHwgc3RyaW5nO1xuICAvKiogRGVwbG95IGV4ZWN1dGlvbiBpZCDigJQgdGhlIGF0dHJpYnV0aW9uIGtleSBmb3IgZGVkdXAgYWdhaW5zdCBvdXRjb21lcy9pbmNpZGVudHMuICovXG4gIGV4ZWN1dGlvbl9pZDogc3RyaW5nIHwgbnVsbDtcbiAgY29tcGxldGVkX2F0OiBzdHJpbmcgfCBudWxsO1xuICBjb21taXRfdHM6IHN0cmluZyB8IG51bGw7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBkZXBsb3kgY29tcGxldGVkIGluc2lkZSBbZnJvbSx0b10uIEFic2VudCAodW5kZWZpbmVkKSBpbiB1bml0XG4gICAqIGZpeHR1cmVzIOKHkiB0cmVhdGVkIGFzIGluLXdpbmRvdy4gYHRgL2BmYCB0b2xlcmF0ZWQgKHBnIGJvb2xlYW4gdGV4dCBmb3JtKS5cbiAgICovXG4gIGluX3dpbmRvdz86IGJvb2xlYW4gfCBzdHJpbmcgfCBudWxsO1xufVxuXG4vKiogUmF3IHBvc3QtZGVwbG95IG91dGNvbWUgbWFya2VyIHJvdyAoZnJvbSBgZGVwbG95bWVudF9vdXRjb21lc2AsIGluLXdpbmRvdykuICovXG5leHBvcnQgaW50ZXJmYWNlIE91dGNvbWVSb3cge1xuICBlbnZpcm9ubWVudDogc3RyaW5nIHwgbnVsbDtcbiAgb3V0Y29tZTogJ2ZhaWxlZCcgfCAncmVzdG9yZWQnIHwgc3RyaW5nO1xuICAvKiogRXhlY3V0aW9uIHRoZSB1c2VyIG1hcmtlZCDigJQgZGVkdXAga2V5IGFnYWluc3QgaW5jaWRlbnQtY29ycmVsYXRlZCBkZXBsb3lzLiAqL1xuICBleGVjdXRpb25faWQ6IHN0cmluZyB8IG51bGw7XG59XG5cbi8qKiBQcm9kdWN0aW9uIHJlc3RvcmVkLWluY2lkZW50IHBhaXI6IHJlY292ZXJ5IHRpbWUgKyB0aGUgZGVwbG95J3MgY29tcGxldGlvbi4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTXR0clBhaXJSb3cge1xuICByZXN0b3JlZF9hdDogc3RyaW5nIHwgbnVsbDtcbiAgZGVwbG95ZWRfYXQ6IHN0cmluZyB8IG51bGw7XG4gIC8qKiBFeGVjdXRpb24gaWQg4oCUIGxldHMgaW5jaWRlbnQgcHJlY2VkZW5jZSBvdmVycmlkZSB0aGUgbWFudWFsIG91dGNvbWUgcGVyIGRlcGxveS4gKi9cbiAgZXhlY3V0aW9uX2lkOiBzdHJpbmcgfCBudWxsO1xufVxuXG4vKipcbiAqIFJhdyBpbmNpZGVudCByb3cgKGZyb20gYGluY2lkZW50c2AsIG9wZW5lZCBpbi13aW5kb3cpLiBDb3JyZWxhdGVkIGluIEpTIHRvIHRoZVxuICogbW9zdCByZWNlbnQgc3VjY2Vzc2Z1bCBkZXBsb3kgdG8gYGVudmlyb25tZW50YCB3aXRoaW4gRE9SQV9JTkNJREVOVF9XSU5ET1dfSE9VUlNcbiAqIOKGkiBhbiBhdXRvbWF0ZWQgcG9zdC1kZXBsb3kgZmFpbHVyZSAoQ0ZSKSArIHJlYWwgcmVjb3ZlcnkgdGltZSAoTVRUUikuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW5jaWRlbnRSb3cge1xuICBlbnZpcm9ubWVudDogc3RyaW5nO1xuICBvcGVuZWRfYXQ6IHN0cmluZyB8IG51bGw7XG4gIHJlc29sdmVkX2F0OiBzdHJpbmcgfCBudWxsO1xufVxuXG4vKiogQ292ZXJhZ2UgY291bnRzOiByZWdpc3RlcmVkIHBpcGVsaW5lcyB2cyB0aG9zZSB0aGF0IGFjdHVhbGx5IGRlcGxveWVkLiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb3ZlcmFnZVJvdyB7XG4gIHJlZ2lzdGVyZWQ6IG51bWJlciB8IHN0cmluZyB8IG51bGw7XG4gIGRlcGxveWluZzogbnVtYmVyIHwgc3RyaW5nIHwgbnVsbDtcbn1cbiJdfQ==
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcGkvcmVwb3J0aW5nL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuLyoqXG4gKiBQdWJsaWMgcmVzdWx0IHNoYXBlcyBmb3IgdGhlIHJlcG9ydGluZyBzZXJ2aWNlLlxuICpcbiAqIFNwbGl0IG91dCBvZiByZXBvcnRpbmctc2VydmljZS50cyBwdXJlbHkgZm9yIHNpemU6IHRoZXNlIGFyZSBkYXRhIGNvbnRyYWN0c1xuICogd2l0aCBubyBiZWhhdmlvdXIuIHJlcG9ydGluZy1zZXJ2aWNlLnRzIHJlLWV4cG9ydHMgdGhlbSwgc28gdGhlXG4gKiBgQHBpcGVsaW5lLWJ1aWxkZXIvcGlwZWxpbmUtZGF0YWAgcHVibGljIHN1cmZhY2UgaXMgdW5jaGFuZ2VkLlxuICovXG5cbmV4cG9ydCBpbnRlcmZhY2UgRXhlY3V0aW9uQ291bnQge1xuICBpZDogc3RyaW5nO1xuICBwcm9qZWN0OiBzdHJpbmc7XG4gIG9yZ2FuaXphdGlvbjogc3RyaW5nO1xuICBwaXBlbGluZU5hbWU6IHN0cmluZyB8IG51bGw7XG4gIHRvdGFsOiBudW1iZXI7XG4gIHN1Y2NlZWRlZDogbnVtYmVyO1xuICBmYWlsZWQ6IG51bWJlcjtcbiAgY2FuY2VsZWQ6IG51bWJlcjtcbiAgZmlyc3RFeGVjdXRpb246IHN0cmluZyB8IG51bGw7XG4gIGxhc3RFeGVjdXRpb246IHN0cmluZyB8IG51bGw7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGltZVNlcmllc0VudHJ5IHtcbiAgcGVyaW9kOiBzdHJpbmc7XG4gIHN1Y2NlZWRlZDogbnVtYmVyO1xuICBmYWlsZWQ6IG51bWJlcjtcbiAgY2FuY2VsZWQ6IG51bWJlcjtcbiAgc3VjY2Vzc1BjdDogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIER1cmF0aW9uU3RhdHMge1xuICBpZDogc3RyaW5nO1xuICBwcm9qZWN0OiBzdHJpbmc7XG4gIHBpcGVsaW5lTmFtZTogc3RyaW5nIHwgbnVsbDtcbiAgYXZnTXM6IG51bWJlcjtcbiAgbWluTXM6IG51bWJlcjtcbiAgbWF4TXM6IG51bWJlcjtcbiAgcDk1TXM6IG51bWJlcjtcbiAgZXhlY3V0aW9uczogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBpcGVsaW5lRXhlY3V0aW9uIHtcbiAgZXhlY3V0aW9uSWQ6IHN0cmluZztcbiAgLyoqIFJvbGxlZC11cCB0ZXJtaW5hbCBzdGF0dXM6IHN1Y2NlZWRlZCB8IGZhaWxlZCB8IGNhbmNlbGVkIHwgaW4tcHJvZ3Jlc3MuICovXG4gIHN0YXR1czogc3RyaW5nO1xuICBzdGFydGVkQXQ6IHN0cmluZyB8IG51bGw7XG4gIGVuZGVkQXQ6IHN0cmluZyB8IG51bGw7XG4gIGR1cmF0aW9uTXM6IG51bWJlciB8IG51bGw7XG4gIC8qKiBGaXJzdCBmYWlsaW5nIHN0YWdlL2FjdGlvbiBmb3IgdGhlIGV4ZWN1dGlvbiAobnVsbCB3aGVuIGl0IGRpZG4ndCBmYWlsKS4gKi9cbiAgZmFpbGluZ1N0YWdlOiBzdHJpbmcgfCBudWxsO1xuICBmYWlsaW5nQWN0aW9uOiBzdHJpbmcgfCBudWxsO1xuICAvKiogVGhlIGZpcnN0IGZhaWx1cmUgZGV0YWlsIGFuIGV2ZW50IG9mIHRoZSBleGVjdXRpb24gY2FycmllZCAoYGRldGFpbC5mYWlsdXJlYCksIG9yIG51bGwuICovXG4gIGZhaWx1cmU6IHVua25vd24gfCBudWxsO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN0YWdlRmFpbHVyZSB7XG4gIHN0YWdlTmFtZTogc3RyaW5nO1xuICBmYWlsdXJlczogbnVtYmVyO1xuICB0b3RhbDogbnVtYmVyO1xuICBmYWlsdXJlUGN0OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3RhZ2VCb3R0bGVuZWNrIHtcbiAgaWQ6IHN0cmluZztcbiAgcGlwZWxpbmVOYW1lOiBzdHJpbmcgfCBudWxsO1xuICBzdGFnZU5hbWU6IHN0cmluZztcbiAgYXZnTXM6IG51bWJlcjtcbiAgbWF4TXM6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBY3Rpb25GYWlsdXJlIHtcbiAgYWN0aW9uTmFtZTogc3RyaW5nO1xuICBmYWlsdXJlczogbnVtYmVyO1xuICB0b3RhbDogbnVtYmVyO1xuICBmYWlsdXJlUGN0OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXJyb3JFbnRyeSB7XG4gIGVycm9yUGF0dGVybjogc3RyaW5nO1xuICBvY2N1cnJlbmNlczogbnVtYmVyO1xuICBhZmZlY3RlZFBpcGVsaW5lczogbnVtYmVyO1xuICBsYXN0U2Vlbjogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBsdWdpblN1bW1hcnkge1xuICB0b3RhbDogbnVtYmVyO1xuICBhY3RpdmU6IG51bWJlcjtcbiAgaW5hY3RpdmU6IG51bWJlcjtcbiAgLyoqIENvdW50cyBwZXIgc2hhcmluZyBydW5nIOKAlCBvbmUgYnVja2V0IHBlciBgdmlzaWJpbGl0eWAgdmFsdWUuICovXG4gIHB1YmxpYzogbnVtYmVyO1xuICBvcmc6IG51bWJlcjtcbiAgcHJpdmF0ZTogbnVtYmVyO1xuICB1bmlxdWVOYW1lczogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFR5cGVDb21wdXRlRGlzdHJpYnV0aW9uIHtcbiAgcGx1Z2luVHlwZTogc3RyaW5nO1xuICBjb21wdXRlVHlwZTogc3RyaW5nO1xuICBjb3VudDogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFZlcnNpb25Db3VudCB7XG4gIG5hbWU6IHN0cmluZztcbiAgdmVyc2lvbkNvdW50OiBudW1iZXI7XG4gIGxhdGVzdFZlcnNpb246IHN0cmluZztcbiAgaGFzRGVmYXVsdDogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCdWlsZFRpbWVTZXJpZXNFbnRyeSB7XG4gIHBlcmlvZDogc3RyaW5nO1xuICBzdWNjZWVkZWQ6IG51bWJlcjtcbiAgZmFpbGVkOiBudW1iZXI7XG4gIHN1Y2Nlc3NQY3Q6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCdWlsZER1cmF0aW9uIHtcbiAgcGx1Z2luTmFtZTogc3RyaW5nO1xuICBhdmdNczogbnVtYmVyO1xuICBtYXhNczogbnVtYmVyO1xuICBidWlsZHM6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBQbHVnaW4gcnVudGltZSByZXBvcnQgZmlsdGVycy4gYHB1Ymxpc2hlcjogbnVsbGAgc2VsZWN0cyBvd24tb3JnXG4gKiAocHVibGlzaGVyLWxlc3MpIHBsdWdpbnM7IGFuIG9taXR0ZWQgZmllbGQgZG9lc24ndCBmaWx0ZXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGx1Z2luUnVudGltZUZpbHRlciB7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIHB1Ymxpc2hlcj86IHN0cmluZyB8IG51bGw7XG4gIHZlcnNpb24/OiBzdHJpbmc7XG59XG5cbi8qKiBQZXIgcGx1Z2luIHZlcnNpb24gcnVudGltZSBzdGF0cyBvdmVyIGEgd2luZG93ICh0ZXJtaW5hbCBBQ1RJT04gcnVucykuICovXG5leHBvcnQgaW50ZXJmYWNlIFBsdWdpblJ1bnRpbWVTdGF0cyB7XG4gIHBsdWdpblB1Ymxpc2hlcjogc3RyaW5nIHwgbnVsbDtcbiAgcGx1Z2luTmFtZTogc3RyaW5nO1xuICBwbHVnaW5WZXJzaW9uOiBzdHJpbmc7XG4gIHJ1bnM6IG51bWJlcjtcbiAgc3VjY2VlZGVkOiBudW1iZXI7XG4gIGZhaWxlZDogbnVtYmVyO1xuICAvKiogMOKAkzEwMCwgb25lIGRlY2ltYWwuICovXG4gIHN1Y2Nlc3NQY3Q6IG51bWJlcjtcbiAgLyoqIE51bGwgd2hlbiBubyBydW4gaW4gdGhlIGdyb3VwIGNhcnJpZWQgYSBkdXJhdGlvbi4gKi9cbiAgcDUwTXM6IG51bWJlciB8IG51bGw7XG4gIHA5NU1zOiBudW1iZXIgfCBudWxsO1xuICBsYXN0UnVuOiBzdHJpbmc7XG59XG5cbi8qKiBDcm9zcy1vcmcgMzAtZGF5IGFnZ3JlZ2F0ZSBmb3Igb25lIGAocHVibGlzaGVyLCBuYW1lKWAgbGlzdGluZy4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGx1Z2luUnVudGltZUFnZ3JlZ2F0ZSB7XG4gIHJ1bnMzMGQ6IG51bWJlcjtcbiAgLyoqIDDigJMxOyBudWxsIHdoZW4gdGhlcmUgd2VyZSBubyBydW5zLiAqL1xuICBzdWNjZXNzUmF0ZTMwZDogbnVtYmVyIHwgbnVsbDtcbiAgYWN0aXZlT3JnQ291bnQzMGQ6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCdWlsZEZhaWx1cmUge1xuICBwbHVnaW5OYW1lOiBzdHJpbmc7XG4gIGVycm9yTWVzc2FnZTogc3RyaW5nO1xuICBvY2N1cnJlbmNlczogbnVtYmVyO1xuICBsYXN0U2Vlbjogc3RyaW5nO1xufVxuXG4vKipcbiAqIFRoZSBET1JBIGhlYWRsaW5lIGVudmlyb25tZW50LiBEZXBsb3ltZW50IHRvIHRoaXMgbGl0ZXJhbCBlbnYgbmFtZSBpcyB0aGVcbiAqIGluZHVzdHJ5LXN0YW5kYXJkIERPUkEgc2lnbmFsOyBNVFRSIGlzIG1lYXN1cmVkIHByb2R1Y3Rpb24tb25seSwgYW5kIHRoaXNcbiAqIGVudmlyb25tZW50J3MgY2FyZCBpcyB0aGUgc3VtbWFyeSBzaG93biBhdCB0aGUgdG9wIG9mIHRoZSBwYW5lbC5cbiAqL1xuXG4vKiogUGVyLW9yZyByZXRlbnRpb24gb3ZlcnJpZGUgcm93LiBCb3RoIG51bGxhYmxlIOKHkiBnbG9iYWwgZGVmYXVsdHMuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlcG9ydGluZ1JldGVudGlvblNldHRpbmdzIHtcbiAgZXZlbnRSZXRlbnRpb25EYXlzOiBudW1iZXIgfCBudWxsO1xuICBkb3JhUmV0ZW50aW9uRGF5czogbnVtYmVyIHwgbnVsbDtcbiAgZGVmYXVsdEV2ZW50UmV0ZW50aW9uRGF5czogbnVtYmVyO1xuICBkZWZhdWx0RG9yYVJldGVudGlvbkRheXM6IG51bWJlcjtcbn1cblxuLyoqIE9wdGlvbnMgZm9yIHRoZSByZXBvcnRpbmcgcmV0ZW50aW9uIHN3ZWVwLiAqL1xuLyoqXG4gKiBIb3cgYSB0aW1lLWJ1Y2tldGVkIHJlcG9ydCBzbGljZXMgaXRzIHBlcmlvZHMuIEFic2VudCBtZWFucyBVVEMgKyBNb25kYXksIHdoaWNoXG4gKiBpcyB3aGF0IGV2ZXJ5IHByZS10aW1lem9uZSBjYWxsZXIgZ290IOKAlCBzbyBhbiBvbWl0dGVkIHZhbHVlIGNhbiBuZXZlciBzaWxlbnRseVxuICogY2hhbmdlIGFuIGV4aXN0aW5nIHJlcG9ydCdzIGJvdW5kYXJpZXMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQnVja2V0T3B0aW9ucyB7XG4gIC8qKiBJQU5BIHRpbWV6b25lIHRoZSBidWNrZXRzIGFyZSBjdXQgaW4gKHZhbGlkYXRlZCBhdCB0aGUgcm91dGUpLiAqL1xuICB0ej86IHN0cmluZztcbiAgLyoqIFdoZXJlIHRoZSB3ZWVrIHN0YXJ0cy4gUG9zdGdyZXMgREFURV9UUlVOQyBpcyBNb25kYXktb25seSwgc28gYHN1bmRheWBcbiAgICogIHNoaWZ0cyB0aGUgYm91bmRhcnkgZXhwbGljaXRseS4gKi9cbiAgd2Vla1N0YXJ0PzogJ21vbmRheScgfCAnc3VuZGF5Jztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZXBvcnRpbmdSZXRlbnRpb25PcHRpb25zIHtcbiAgLyoqIFJvd3MgZGVsZXRlZCBwZXIgc3RhdGVtZW50IChkZWZhdWx0IDEwMDApLiAqL1xuICBiYXRjaFNpemU/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBUaGUgbGVhZGVyLWxvY2tlZCBydW4gdGhpcyBzd2VlcCBiZWxvbmdzIHRvLiBDaGVja2VkIEJFVFdFRU4gT1JHUzogYWJvcnRlZFxuICAgKiBtZWFucyB0aGUgbG9jayB3YXMgbG9zdCAoYW5vdGhlciBwb2QgaXMgdGFraW5nIG92ZXIpIG9yIHRoZSBwcm9jZXNzIGlzXG4gICAqIHNodXR0aW5nIGRvd24sIGFuZCB0aGUgcmVtYWluaW5nIG9yZ3MgYXJlIHBpY2tlZCB1cCBuZXh0IHRpY2suIFdpdGhvdXQgaXQgYVxuICAgKiBsb25nIHN3ZWVwIGtlcHQgZGVsZXRpbmcgYWZ0ZXIgYW5vdGhlciBwb2QgaGFkIGFscmVhZHkgdGFrZW4gdGhlIGxvY2suXG4gICAqL1xuICBydW4/OiB7IHNpZ25hbDogQWJvcnRTaWduYWwgfTtcbiAgLyoqIE1heCBiYXRjaGVzIHBlciB0YWJsZSBwZXIgb3JnIHBlciB0aWNrIChkZWZhdWx0IDUwKTsgdGhlIHJlc3QgZGVmZXJzIHRvXG4gICAqICB0aGUgbmV4dCB0aWNrIHNvIGEgaHVnZSBiYWNrbG9nIGNhbid0IGhvbGQgbG9ja3MgdG9vIGxvbmcuICovXG4gIG1heEJhdGNoZXNQZXJUYWJsZT86IG51bWJlcjtcbiAgLyoqIEZpeGVkIFwibm93XCIgZm9yIHRoZSB3aG9sZSBzd2VlcCAoZGVmYXVsdCBgbmV3IERhdGUoKWApLiAqL1xuICBub3c/OiBEYXRlO1xuICAvKipcbiAgICogUmVzb2x2ZSB0aGUgb3JnIHdob3NlIGBkb3JhX3NldHRpbmdzYCByZXRlbnRpb24gZ292ZXJucyBgb3JnSWRgJ3Mgcm93cyDigJQgaXRzXG4gICAqIGFjY291bnQgUk9PVC4gUmV0ZW50aW9uIGlzIGEgYmlsbGluZyBlbnRpdGxlbWVudCBzeW5jZWQgb250byB0aGUgcm9vdCBvbmx5LFxuICAgKiBzbyBhIHRlYW0ncyByb3dzIG11c3QgZm9sbG93IHRoZSByb290J3MgKHB1cmNoYXNlZCkgd2luZG93LCBub3QgdGhlIGVudlxuICAgKiBkZWZhdWx0LiBSZXR1cm4gYG51bGxgIHdoZW4gdGhlIHJvb3QgY2FuJ3QgYmUgcmVzb2x2ZWQ6IHRoYXQgb3JnIGlzIFNLSVBQRURcbiAgICogdGhpcyB0aWNrIChuZXZlciBwdXJnZWQgb24gYSBwb3NzaWJseS1zaG9ydGVyIHdpbmRvdykuIERlZmF1bHQ6IGlkZW50aXR5XG4gICAqIChldmVyeSBvcmcgaXMgaXRzIG93biByb290IOKAlCBhIGZsYXQgZGVwbG95bWVudCkuXG4gICAqL1xuICByZXNvbHZlUmV0ZW50aW9uT3JnSWQ/OiAob3JnSWQ6IHN0cmluZykgPT4gUHJvbWlzZTxzdHJpbmcgfCBudWxsPjtcbn1cblxuLyoqIFBlci1ydW4gcHVyZ2UgdGFsbGllcyAoYWxzbyBsb2dnZWQpLiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXBvcnRpbmdSZXRlbnRpb25Db3VudHMge1xuICAvKiogT3JncyBzd2VwdCB0aGlzIHJ1bi4gKi9cbiAgb3JnczogbnVtYmVyO1xuICAvKiogU3RhbmRhcmQgYHBpcGVsaW5lX2V2ZW50c2AgKGVudmlyb25tZW50IElTIE5VTEwpIHJvd3MgcHVyZ2VkLiAqL1xuICBzdGFuZGFyZEV2ZW50czogbnVtYmVyO1xuICAvKiogRE9SQS1zb3VyY2UgYHBpcGVsaW5lX2V2ZW50c2AgKGVudmlyb25tZW50IElTIE5PVCBOVUxMKSByb3dzIHB1cmdlZC4gKi9cbiAgZG9yYUV2ZW50czogbnVtYmVyO1xuICAvKiogYGRlcGxveW1lbnRfb3V0Y29tZXNgIHJvd3MgcHVyZ2VkLiAqL1xuICBkZXBsb3ltZW50T3V0Y29tZXM6IG51bWJlcjtcbiAgLyoqIGBpbmNpZGVudHNgIHJvd3MgcHVyZ2VkLiAqL1xuICBpbmNpZGVudHM6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBET1JBIHBlcmZvcm1hbmNlIGJhbmQuIGBudWxsYCA9IGluc3VmZmljaWVudCBkYXRhIHRvIGNsYXNzaWZ5IChub1xuICogZGVwbG95bWVudHMvZmFpbHVyZXMvbGVhZC10aW1lIHNhbXBsZSBpbiB0aGUgd2luZG93KSwgc28gdGhlIFVJIHNob3dzIGFcbiAqIG5ldXRyYWwgc3RhdGUgcmF0aGVyIHRoYW4gbWlzbGFiZWxpbmcgYW4gZW1wdHkgd2luZG93IGFzIFwibG93XCIuXG4gKi9cbmV4cG9ydCB0eXBlIERvcmFMZXZlbCA9ICdlbGl0ZScgfCAnaGlnaCcgfCAnbWVkaXVtJyB8ICdsb3cnIHwgbnVsbDtcblxuLyoqIE9wdGlvbmFsIHNjb3BpbmcgZm9yIHtAbGluayBSZXBvcnRpbmdTZXJ2aWNlLmdldERvcmFNZXRyaWNzfS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRG9yYU9wdGlvbnMge1xuICAvKiogUmVzdHJpY3QgdG8gYSBzaW5nbGUgcGlwZWxpbmUgKHBlci1waXBlbGluZSBET1JBKS4gKi9cbiAgcGlwZWxpbmVJZD86IHN0cmluZztcbiAgLyoqIFJlc3RyaWN0IHRvIGEgc2luZ2xlIGRlcGxveSBlbnZpcm9ubWVudCAoZWxzZSBhbGwgZGVwbG95IGVudmlyb25tZW50cykuICovXG4gIGVudmlyb25tZW50Pzogc3RyaW5nO1xuICAvKipcbiAgICogUGVyLW9yZyBpbmNpZGVudOKGkmRlcGxveSBjb3JyZWxhdGlvbiB3aW5kb3cgb3ZlcnJpZGUgKGhvdXJzKS4gV2hlbiBzZXQgKGFcbiAgICogcG9zaXRpdmUgZmluaXRlIG51bWJlciksIHRoZSBpbmNpZGVudCBjb3JyZWxhdGlvbiB1c2VzIGl0IGluc3RlYWQgb2YgdGhlXG4gICAqIGdsb2JhbCBgRE9SQV9JTkNJREVOVF9XSU5ET1dfSE9VUlNgLiBUaGUgcm91dGUgcmVzb2x2ZXMgdGhpcyBmcm9tIHRoZSBvcmcnc1xuICAgKiBgZG9yYV9zZXR0aW5nc2Agcm93IChzZWUge0BsaW5rIFJlcG9ydGluZ1NlcnZpY2UuZ2V0UmVwb3J0aW5nU2V0dGluZ3N9KSBhbmRcbiAgICogcGFzc2VzIGl0IGluOyB1bnNldCBmYWxscyBiYWNrIHRvIHRoZSBlbnYgZGVmYXVsdC5cbiAgICovXG4gIGluY2lkZW50V2luZG93SG91cnM/OiBudW1iZXI7XG4gIC8qKiBJQU5BIHRpbWV6b25lIGZvciB0aGUgdHJlbmQncyBidWNrZXRzIChzZWUge0BsaW5rIEJ1Y2tldE9wdGlvbnN9KS4gKi9cbiAgdHo/OiBzdHJpbmc7XG4gIC8qKiBXZWVrIHN0YXJ0IGZvciB0aGUgdHJlbmQncyBidWNrZXRzLiAqL1xuICB3ZWVrU3RhcnQ/OiAnbW9uZGF5JyB8ICdzdW5kYXknO1xufVxuXG4vKipcbiAqIFBlci1vcmcgcmVwb3J0aW5nIHNldHRpbmdzIHN1cmZhY2VkIHRvIHRoZSBvcmctYWRtaW4gcGFuZWwuIGBpbmNpZGVudFdpbmRvd0hvdXJzYFxuICogaXMgdGhlIGluY2lkZW504oaSZGVwbG95IGNvcnJlbGF0aW9uIHdpbmRvdzsgYGV2ZW50UmV0ZW50aW9uRGF5c2AgL1xuICogYGRvcmFSZXRlbnRpb25EYXlzYCBhcmUgdGhlIHR3byByZXRlbnRpb24tc3dlZXAgd2luZG93cy4gRWFjaCBvdmVycmlkZVxuICogaXMgYG51bGxgIHdoZW4gdW5zZXQgKHRoZSBwYWlyZWQgYGRlZmF1bHQqYCBmaWVsZCBzaG93cyB0aGUgZW52IGZhbGxiYWNrIGFwcGxpZWQpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlcG9ydGluZ1NldHRpbmdzIHtcbiAgLyoqIFRoZSBvcmcncyBzdG9yZWQgY29ycmVsYXRpb24td2luZG93IG92ZXJyaWRlIGluIGhvdXJzLCBvciBgbnVsbGAgd2hlbiB1bnNldC4gKi9cbiAgaW5jaWRlbnRXaW5kb3dIb3VyczogbnVtYmVyIHwgbnVsbDtcbiAgLyoqIFRoZSBnbG9iYWwgZW52IGRlZmF1bHQgYXBwbGllZCB3aGVuIG5vIG92ZXJyaWRlIGlzIHN0b3JlZC4gKi9cbiAgZGVmYXVsdFdpbmRvd0hvdXJzOiBudW1iZXI7XG4gIC8qKiBTdGFuZGFyZC1ldmVudCByZXRlbnRpb24gb3ZlcnJpZGUgaW4gZGF5cywgb3IgYG51bGxgIHdoZW4gdW5zZXQuICovXG4gIGV2ZW50UmV0ZW50aW9uRGF5czogbnVtYmVyIHwgbnVsbDtcbiAgLyoqIERPUkEtc291cmNlIHJldGVudGlvbiBvdmVycmlkZSBpbiBkYXlzLCBvciBgbnVsbGAgd2hlbiB1bnNldC4gKi9cbiAgZG9yYVJldGVudGlvbkRheXM6IG51bWJlciB8IG51bGw7XG4gIC8qKiBHbG9iYWwgc3RhbmRhcmQtZXZlbnQgcmV0ZW50aW9uIGRlZmF1bHQgYXBwbGllZCB3aGVuIHVuc2V0IChkYXlzKS4gKi9cbiAgZGVmYXVsdEV2ZW50UmV0ZW50aW9uRGF5czogbnVtYmVyO1xuICAvKiogR2xvYmFsIERPUkEtc291cmNlIHJldGVudGlvbiBkZWZhdWx0IGFwcGxpZWQgd2hlbiB1bnNldCAoZGF5cykuICovXG4gIGRlZmF1bHREb3JhUmV0ZW50aW9uRGF5czogbnVtYmVyO1xufVxuXG4vKiogQSBwYXJ0aWFsIHJlcG9ydGluZy1zZXR0aW5ncyB3cml0ZSAoNykuIE9ubHkgcHJvdmlkZWQgZmllbGRzIGFyZVxuICogIHVwc2VydGVkOyBvbWl0dGVkIGZpZWxkcyBhcmUgbGVmdCB1bmNoYW5nZWQgKGFuIG9taXR0ZWQgcmV0ZW50aW9uIGZpZWxkIGtlZXBzXG4gKiAgaXRzIHN0b3JlZCBvdmVycmlkZSAvIHRoZSBnbG9iYWwgZGVmYXVsdCkuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlcG9ydGluZ1NldHRpbmdzUGF0Y2gge1xuICBpbmNpZGVudFdpbmRvd0hvdXJzPzogbnVtYmVyO1xuICBldmVudFJldGVudGlvbkRheXM/OiBudW1iZXI7XG4gIGRvcmFSZXRlbnRpb25EYXlzPzogbnVtYmVyO1xufVxuXG4vKiogT25lIHJvdyBvZiB0aGUgb3JnLWFkbWluIGluY2lkZW50cyBsaXN0IChyZWNlbnQgaW5jaWRlbnRzICsgZGVwbG95IGNvcnJlbGF0aW9uKS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW5jaWRlbnRMaXN0SXRlbSB7XG4gIGluY2lkZW50SWQ6IHN0cmluZztcbiAgZW52aXJvbm1lbnQ6IHN0cmluZztcbiAgc2V2ZXJpdHk6IHN0cmluZztcbiAgb3BlbmVkQXQ6IHN0cmluZyB8IG51bGw7XG4gIHJlc29sdmVkQXQ6IHN0cmluZyB8IG51bGw7XG4gIGNyZWF0ZWRBdDogc3RyaW5nIHwgbnVsbDtcbiAgLyoqIFRydWUgb25jZSB0aGUgaW5jaWRlbnQgaGFzIGEgYHJlc29sdmVkX2F0YC4gKi9cbiAgcmVzb2x2ZWQ6IGJvb2xlYW47XG4gIC8qKiBUaGUgY29ycmVsYXRlZCBkZXBsb3kgZXhlY3V0aW9uIGlkIChtb3N0IHJlY2VudCBzdWNjZXNzZnVsIGRlcGxveSBpbi13aW5kb3cpLCBvciBudWxsLiAqL1xuICBjb3JyZWxhdGVkRXhlY3V0aW9uSWQ6IHN0cmluZyB8IG51bGw7XG4gIC8qKiBUaGF0IGRlcGxveSdzIGNvbXBsZXRpb24gaW5zdGFudCwgb3IgbnVsbCB3aGVuIHVuY29ycmVsYXRlZC4gKi9cbiAgZGVwbG95Q29tcGxldGVkQXQ6IHN0cmluZyB8IG51bGw7XG59XG5cbi8qKiBSZXN1bHQgb2YgdGhlIHdpcmluZy10ZXN0IGRyeS1ydW4gY29ycmVsYXRpb24gKHtAbGluayBSZXBvcnRpbmdTZXJ2aWNlLnRlc3RJbmNpZGVudENvcnJlbGF0aW9ufSkuICovXG5leHBvcnQgaW50ZXJmYWNlIEluY2lkZW50VGVzdFJlc3VsdCB7XG4gIGVudmlyb25tZW50OiBzdHJpbmc7XG4gIC8qKiBUaGUgc3ludGhldGljIGluY2lkZW50J3Mgb3BlbmVkQXQgKG5vdywgSVNPKS4gKi9cbiAgb3BlbmVkQXQ6IHN0cmluZztcbiAgLyoqIFRoZSBlZmZlY3RpdmUgY29ycmVsYXRpb24gd2luZG93IHVzZWQuICovXG4gIHdpbmRvd0hvdXJzOiBudW1iZXI7XG4gIC8qKiBXaGV0aGVyIGEgcmVjZW50IHN1Y2Nlc3NmdWwgZGVwbG95IHRvIGBlbnZpcm9ubWVudGAgY29ycmVsYXRlZC4gKi9cbiAgY29ycmVsYXRlZDogYm9vbGVhbjtcbiAgLyoqIFRoZSBjb3JyZWxhdGVkIGRlcGxveSBleGVjdXRpb24gaWQsIG9yIG51bGwuICovXG4gIGV4ZWN1dGlvbklkOiBzdHJpbmcgfCBudWxsO1xuICAvKiogVGhhdCBkZXBsb3kncyBjb21wbGV0aW9uIGluc3RhbnQsIG9yIG51bGwuICovXG4gIGRlcGxveUNvbXBsZXRlZEF0OiBzdHJpbmcgfCBudWxsO1xufVxuXG4vLyBET1JBIHBlcmZvcm1hbmNlIGJhbmRzICh0aHJlc2hvbGRzIGZyb20gdGhlIERPUkEvQWNjZWxlcmF0ZSByZXBvcnRzKS4gRWFjaFxuLy8gaGVscGVyIHJldHVybnMgYG51bGxgIHdoZW4gdGhlcmUncyBubyBzYW1wbGUgdG8gY2xhc3NpZnkuXG4vKiogRGVwbG95bWVudCBmcmVxdWVuY3kgYnkgZGVwbG95cy9kYXk6IGVsaXRlIOKJpTEvZGF5LCBoaWdoIOKJpTEvd2VlaywgbWVkaXVtIOKJpTEvbW9udGguICovXG5cbi8qKlxuICogRE9SQSBtZXRyaWNzIG92ZXIgYSBbZnJvbSx0b10gd2luZG93LCBvcmctc2NvcGVkIChzaW5nbGUtb3JnIG9yIHJvbGx1cCBzdWJ0cmVlKS5cbiAqXG4gKiBERVBMT1ktQkFTSVMg4oCUIGV2ZXJ5IG1ldHJpYyBkZXJpdmVzIGZyb20gcmVhbCBERVBMT1ktU1RBR0UgZXhlY3V0aW9ucywgaS5lLlxuICogYHBpcGVsaW5lX2V2ZW50c2Agcm93cyB3aXRoIGBldmVudF90eXBlPSdTVEFHRSdgIGFuZCBhIG5vbi1udWxsIGBlbnZpcm9ubWVudGBcbiAqICh0aGUgZm9yd2FyZGVyIHNldHMgYGVudmlyb25tZW50YCBvbmx5IGZvciB0aGUgc3RhZ2VzIGEgdXNlciBkZWNsYXJlZCBpblxuICogYHBiLmRlcGxveXNgKS4gQSBDSS1vbmx5IGJ1aWxkL3Rlc3QgcGlwZWxpbmUgd2l0aCBubyBkZXBsb3kgc3RhZ2UgcHJvZHVjZXMgTk9cbiAqIERPUkEgZGF0YSDigJQgdGhlcmUgaXMgbm8gcnVuLWJhc2VkIGZhbGxiYWNrLiBUaGUgcGFuZWwgaXMgZW1wdHkgdW50aWwgZGVwbG95ZWRcbiAqIHBpcGVsaW5lcyByZS1zeW50aCB3aXRoIHRoZSBuZXcgZGVwbG95IHRhZ3MgYW5kIHN0YXJ0IGVtaXR0aW5nIGRlcGxveSBldmVudHMuXG4gKlxuICogYHByb2R1Y3Rpb25gIGlzIHRoZSBoZWFkbGluZSBlbnZpcm9ubWVudDsgTVRUUiBpcyBtZWFzdXJlZCBwcm9kdWN0aW9uLW9ubHkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRG9yYU1ldHJpY3Mge1xuICAvKiogVGhlIFtmcm9tLHRvXSB3aW5kb3cgZWNob2VkIGJhY2sgKGRlcGxveSBgY29tcGxldGVkX2F0YCByYW5nZSkuICovXG4gIHdpbmRvdzogeyBmcm9tOiBzdHJpbmc7IHRvOiBzdHJpbmcgfTtcbiAgLyoqIFRoZSBzY29waW5nIGFwcGxpZWQgKGVjaG9lZCBmb3IgdGhlIFVJKTsgYG51bGxgIHdoZW4gdW5zY29wZWQuICovXG4gIGZpbHRlcnM6IHsgcGlwZWxpbmVJZDogc3RyaW5nIHwgbnVsbDsgZW52aXJvbm1lbnQ6IHN0cmluZyB8IG51bGwgfTtcbiAgLyoqIFRoZSBoZWFkbGluZSBlbnZpcm9ubWVudCBuYW1lIChgcHJvZHVjdGlvbmApLiAqL1xuICBoZWFkbGluZTogc3RyaW5nO1xuICAvKiogUGVyLWVudmlyb25tZW50IERGIC8gQ0ZSIC8gbGVhZCB0aW1lLiBTb3J0ZWQgaGVhZGxpbmUtZmlyc3QsIHRoZW4gQeKGklouICovXG4gIGVudmlyb25tZW50czogRG9yYUVudk1ldHJpY3NbXTtcbiAgLyoqXG4gICAqIE1lYW4gVGltZSBUbyBSZXN0b3JlIOKAlCBQUk9EVUNUSU9OLU9OTFksIGZyb20gYGRlcGxveW1lbnRfb3V0Y29tZXNgLlxuICAgKiBgbWVkaWFuKHJlc3RvcmVkLmF0IOKIkiBkZXBsb3llZC5jb21wbGV0ZWRfYXQpYCBvdmVyIHJlc3RvcmVkIHByb2R1Y3Rpb25cbiAgICogaW5jaWRlbnRzIChkZWx0YXMgY2xhbXBlZCDiiaUwKS4gYGluY2lkZW50c2AgY291bnRzIHByb2R1Y3Rpb24gZGVwbG95cyBtYXJrZWRcbiAgICogZmFpbGVkOyBgcmVzdG9yZWRgIGNvdW50cyB0aG9zZSB0aGF0IHJlY292ZXJlZDsgYG1lZGlhblNlY29uZHNgIGlzIG51bGwgd2hlblxuICAgKiBubyByZXN0b3JlZCBpbmNpZGVudCBoYXMgYSByZXNvbHZhYmxlIGRlcGxveSB0aW1lLlxuICAgKi9cbiAgbWVhblRpbWVUb1Jlc3RvcmU6IHtcbiAgICBpbmNpZGVudHM6IG51bWJlcjtcbiAgICByZXN0b3JlZDogbnVtYmVyO1xuICAgIG1lZGlhblNlY29uZHM6IG51bWJlciB8IG51bGw7XG4gICAgLyoqIDkwdGgvOTV0aCBwZXJjZW50aWxlIHJlY292ZXJ5LCBvdmVyIHRoZSBzYW1lIHNhbXBsZSBhcyB0aGUgbWVkaWFuLiBUaGVcbiAgICAgKiAgbWVkaWFuIGFsb25lIGhpZGVzIHRoZSBsb25nIHRhaWwgdGhhdCBhY3R1YWxseSBkZWZpbmVzIGFuIG91dGFnZSdzIGNvc3Q7XG4gICAgICogIGBudWxsYCB3aGVuIG5vIHJlY292ZXJ5IGdhcCB3YXMgb2JzZXJ2ZWQuICovXG4gICAgcDkwU2Vjb25kczogbnVtYmVyIHwgbnVsbDtcbiAgICBwOTVTZWNvbmRzOiBudW1iZXIgfCBudWxsO1xuICAgIGxldmVsOiBEb3JhTGV2ZWw7XG4gIH07XG4gIC8qKlxuICAgKiBDb3ZlcmFnZSByZWNvbmNpbGlhdGlvbiDigJQgcmVnaXN0ZXJlZCBwaXBlbGluZXMgd2l0aCBubyBvYnNlcnZlZCBkZXBsb3kgaW5cbiAgICogdGhlIHdpbmRvdy4gQSBoaWdoIGB3aXRob3V0RGVwbG95c2AgY291bnQgbWVhbnMgRE9SQSBpcyBibGluZCB0byBtb3N0IG9mIHRoZVxuICAgKiBmbGVldCAocGlwZWxpbmVzIHRoYXQgaGF2ZW4ndCByZS1zeW50aGVkIHdpdGggZGVwbG95IHRhZ3MsIG9yIGRvbid0IGRlcGxveSkuXG4gICAqL1xuICBjb3ZlcmFnZToge1xuICAgIC8qKiBQaXBlbGluZXMgaW4gdGhlIHJlZ2lzdHJ5IChvcmctc2NvcGVkKS4gKi9cbiAgICByZWdpc3RlcmVkOiBudW1iZXI7XG4gICAgLyoqIFJlZ2lzdGVyZWQgcGlwZWxpbmVzIHdpdGgg4omlMSBkZXBsb3ktc3RhZ2UgZXhlY3V0aW9uIGluIHRoZSB3aW5kb3cuICovXG4gICAgZGVwbG95aW5nOiBudW1iZXI7XG4gICAgLyoqIHJlZ2lzdGVyZWQg4oiSIGRlcGxveWluZyAoY2xhbXBlZCDiiaUwKS4gKi9cbiAgICB3aXRob3V0RGVwbG95czogbnVtYmVyO1xuICB9O1xufVxuXG4vKiogUGVyLWVudmlyb25tZW50IERPUkEgbWV0cmljcyAoZGVwbG95bWVudCBmcmVxdWVuY3ksIENGUiwgbGVhZCB0aW1lKS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRG9yYUVudk1ldHJpY3Mge1xuICBlbnZpcm9ubWVudDogc3RyaW5nO1xuICAvKiogRGVwbG95bWVudCBGcmVxdWVuY3kg4oCUIHN1Y2Nlc3NmdWwgZGVwbG95LXN0YWdlIGV4ZWN1dGlvbnMgZm9yIHRoaXMgZW52LiAqL1xuICBkZXBsb3ltZW50RnJlcXVlbmN5OiB7XG4gICAgZGVwbG95bWVudHM6IG51bWJlcjtcbiAgICBwZXJEYXk6IG51bWJlcjtcbiAgICBsZXZlbDogRG9yYUxldmVsO1xuICB9O1xuICAvKipcbiAgICogQ2hhbmdlIEZhaWx1cmUgUmF0ZSDigJQgdHdvLWNsYXNzOlxuICAgKiBgKGRlcGxveVRpbWVGYWlsdXJlcyArIHBvc3REZXBsb3lGYWlsdXJlcykgLyBhdHRlbXB0c2AuXG4gICAqIC0gYGRlcGxveVRpbWVGYWlsdXJlc2Ag4oCUIGRlcGxveSBzdGFnZSBgcmVzdWx0PWZhaWxlZGAgKGZyb20gZXZlbnRzKS5cbiAgICogLSBgcG9zdERlcGxveUZhaWx1cmVzYCDigJQgYSBzdWNjZXNzZnVsIGRlcGxveSBsYXRlciBtYXJrZWQgZmFpbGVkIGluIHByb2RcbiAgICogICAoZnJvbSBgZGVwbG95bWVudF9vdXRjb21lc2ApLlxuICAgKiAtIGBhdHRlbXB0c2Ag4oCUIGFsbCB0ZXJtaW5hbCBkZXBsb3ktc3RhZ2UgYXR0ZW1wdHMgKHN1Y2NlZWRlZCArIGZhaWxlZCkuXG4gICAqL1xuICBjaGFuZ2VGYWlsdXJlUmF0ZToge1xuICAgIHJhdGU6IG51bWJlcjtcbiAgICBkZXBsb3lUaW1lRmFpbHVyZXM6IG51bWJlcjtcbiAgICBwb3N0RGVwbG95RmFpbHVyZXM6IG51bWJlcjtcbiAgICBhdHRlbXB0czogbnVtYmVyO1xuICAgIGxldmVsOiBEb3JhTGV2ZWw7XG4gIH07XG4gIC8qKlxuICAgKiBMZWFkIFRpbWUg4oCUIE1FQVNVUkVEOiBgbWVkaWFuKGRlcGxveV9jb21wbGV0ZWQg4oiSIG9sZGVzdF9jb21taXRfdGltZSlgIG92ZXJcbiAgICogc3VjY2Vzc2Z1bCBkZXBsb3lzIHdpdGggYSByZXNvbHZhYmxlIGNvbW1pdCB0aW1lc3RhbXAgKGRlbHRhcyBjbGFtcGVkIOKJpTApLlxuICAgKiBgbWVkaWFuU2Vjb25kc2AgaXMgYG51bGxgICg9IHVua25vd24pIHdoZW4gbm8gc3VjY2Vzc2Z1bCBkZXBsb3kgaW4gdGhpcyBlbnZcbiAgICogY2FycmllZCBhIGBjb21taXRfdGltZXN0YW1wYC4gVGhlIG9sZCBtZWRpYW4tcnVuLWR1cmF0aW9uIHByb3h5IGlzIHJlbW92ZWQuXG4gICAqXG4gICAqIGBwOTBTZWNvbmRzYC9gcDk1U2Vjb25kc2AgY29tZSBmcm9tIHRoZSBzYW1lIHNhbXBsZS4gVGhlIGxldmVsIGlzIHNjb3JlZCBvZmZcbiAgICogdGhlIE1FRElBTiBvbmx5LCBzbyBhZGRpbmcgdGhlIHRhaWxzIGNhbm5vdCBtb3ZlIGEgdGVhbSdzIERPUkEgYmFuZC5cbiAgICovXG4gIGxlYWRUaW1lOiB7XG4gICAgLyoqIFN1Y2Nlc3NmdWwgZGVwbG95cyB3aXRoIGEgcmVzb2x2YWJsZSBjb21taXQgdGltZSAodGhlIG1lZGlhbiBzYW1wbGUpLiAqL1xuICAgIGRlcGxveW1lbnRzOiBudW1iZXI7XG4gICAgbWVkaWFuU2Vjb25kczogbnVtYmVyIHwgbnVsbDtcbiAgICBwOTBTZWNvbmRzOiBudW1iZXIgfCBudWxsO1xuICAgIHA5NVNlY29uZHM6IG51bWJlciB8IG51bGw7XG4gICAgbGV2ZWw6IERvcmFMZXZlbDtcbiAgfTtcbn1cblxuLyoqIE9uZSBpbnRlcnZhbCBidWNrZXQgb2YgdGhlIERPUkEgdHJlbmQgKGRlcGxveSBmcmVxdWVuY3kgKyBjaGFuZ2UgZmFpbHVyZSkuICovXG5leHBvcnQgaW50ZXJmYWNlIERvcmFUcmVuZFBvaW50IHtcbiAgLyoqIEJ1Y2tldCBzdGFydCAoREFURV9UUlVOQyBvZiB0aGUgZGVwbG95IGBjb21wbGV0ZWRfYXRgKSwgSVNPIHRleHQuICovXG4gIHBlcmlvZDogc3RyaW5nO1xuICAvKiogU3VjY2Vzc2Z1bCBkZXBsb3ktc3RhZ2UgZXhlY3V0aW9ucyBpbiB0aGUgYnVja2V0LiAqL1xuICBkZXBsb3ltZW50czogbnVtYmVyO1xuICAvKiogRmFpbGVkIGRlcGxveS1zdGFnZSBleGVjdXRpb25zIGluIHRoZSBidWNrZXQuICovXG4gIGZhaWxlZDogbnVtYmVyO1xuICAvKiogc3VjY2VlZGVkICsgZmFpbGVkIGluIHRoZSBidWNrZXQgKGRlcGxveSBhdHRlbXB0cykuICovXG4gIHRvdGFsOiBudW1iZXI7XG4gIC8qKiBmYWlsZWQvdG90YWwgYXMgYSBwZXJjZW50ICgwIHdoZW4gdG90YWwgaXMgMCkuIERlcGxveS10aW1lIENGUiBvbmx5LiAqL1xuICBjaGFuZ2VGYWlsdXJlUGN0OiBudW1iZXI7XG59XG5cbi8qKiBQZXItc3RhZ2UgYnVpbGQtaGVhbHRoIG1ldHJpY3MgZm9yIG9uZSBwaXBlbGluZSBvdmVyIGEgd2luZG93LiAqL1xuZXhwb3J0IGludGVyZmFjZSBCdWlsZEhlYWx0aFN0YWdlIHtcbiAgc3RhZ2U6IHN0cmluZztcbiAgLyoqIFRlcm1pbmFsIHN0YWdlIHJ1bnMgKHN1Y2NlZWRlZCArIGZhaWxlZCkgaW4gdGhlIHdpbmRvdy4gKi9cbiAgcnVuczogbnVtYmVyO1xuICBzdWNjZXNzZXM6IG51bWJlcjtcbiAgZmFpbHVyZXM6IG51bWJlcjtcbiAgLyoqIHN1Y2Nlc3NlcyAvIHJ1bnMgYXMgYSBwZXJjZW50ICgwIHdoZW4gcnVucyBpcyAwKS4gKi9cbiAgc3VjY2Vzc1JhdGU6IG51bWJlcjtcbiAgLyoqIER1cmF0aW9uIHBlcmNlbnRpbGVzIG92ZXIgdGhlIHN0YWdlJ3MgdGVybWluYWwgcnVuczsgbnVsbCB3aGVuIG5vIGR1cmF0aW9ucy4gKi9cbiAgcDUwTXM6IG51bWJlciB8IG51bGw7XG4gIHA5ME1zOiBudW1iZXIgfCBudWxsO1xuICBwOTlNczogbnVtYmVyIHwgbnVsbDtcbn1cblxuLyoqXG4gKiBQZXItcGlwZWxpbmUgYnVpbGQtaGVhbHRoIGJyZWFrZG93bi4gU3RhbmRhcmQgcmVwb3J0aW5nIChOT1RcbiAqIGBhZHZhbmNlZF9yZXBvcnRpbmdgLWdhdGVkKSDigJQgcGVyLXN0YWdlIHN1Y2Nlc3MgcmF0ZSArIHRpbWluZyBwZXJjZW50aWxlcywgd2l0aFxuICogdG90YWxzIHN1bW1lZCBhY3Jvc3Mgc3RhZ2VzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJ1aWxkSGVhbHRoIHtcbiAgc3RhZ2VzOiBCdWlsZEhlYWx0aFN0YWdlW107XG4gIHRvdGFsczogeyBydW5zOiBudW1iZXI7IGZhaWx1cmVzOiBudW1iZXI7IGZhaWx1cmVSYXRlOiBudW1iZXIgfTtcbn1cblxuLyoqIFBvc3QtZGVwbG95IGluY2lkZW50IG1hcmtlciBhY2NlcHRlZCBieSBgUmVwb3J0aW5nU2VydmljZS5yZWNvcmRJbmNpZGVudGAuICovXG5leHBvcnQgaW50ZXJmYWNlIEluY2lkZW50SW5wdXQge1xuICBpbmNpZGVudElkOiBzdHJpbmc7XG4gIGVudmlyb25tZW50OiBzdHJpbmc7XG4gIG9wZW5lZEF0OiBzdHJpbmc7XG4gIHJlc29sdmVkQXQ/OiBzdHJpbmc7XG4gIHNldmVyaXR5OiBzdHJpbmc7XG59XG5cbi8qKiBUaGUgcGVyc2lzdGVkIGluY2lkZW50IHN0YXRlIGFzIGFuIGF1ZGl0IHJvdyByZWNvcmRzIGl0IChzY3J1YmJlZCB2YWx1ZXMsIElTTyBpbnN0YW50cykuICovXG5leHBvcnQgaW50ZXJmYWNlIEluY2lkZW50U3RhdGUge1xuICBlbnZpcm9ubWVudDogc3RyaW5nO1xuICBvcGVuZWRBdDogc3RyaW5nIHwgbnVsbDtcbiAgcmVzb2x2ZWRBdDogc3RyaW5nIHwgbnVsbDtcbiAgc2V2ZXJpdHk6IHN0cmluZztcbn1cblxuLyoqXG4gKiBXaGF0IGBSZXBvcnRpbmdTZXJ2aWNlLnJlY29yZEluY2lkZW50YCBkaWQuIGBjaGFuZ2VkYCBpcyBmYWxzZSBmb3IgYSBzZW5kZXInc1xuICogcmVwZWF0LWludGVydmFsIHJlLXBvc3Qgb2YgYW4gdW5jaGFuZ2VkIGFsZXJ0LCBzbyB0aGUgcm91dGUgcmVjb3JkcyBhbiBhdWRpdFxuICogcm93IG9ubHkgZm9yIGFuIGluY2lkZW50IHRoYXQgaXMgbmV3IG9yIGFjdHVhbGx5IG1vdmVkIChvcGVuZWQsIHJlLW9wZW5lZCxcbiAqIHJlc29sdmVkLCByZS1yYW5rZWQpIOKAlCBhIHdlYmhvb2sgcmUtZmlyaW5nIGV2ZXJ5IGZldyBob3VycyBtdXN0IG5vdCBidXJ5IHRoZVxuICogdHJhaWwuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW5jaWRlbnRXcml0ZSB7XG4gIC8qKiBUaGUgc3RvcmVkIChzY3J1YmJlZCkgaW5jaWRlbnQgaWQuICovXG4gIGluY2lkZW50SWQ6IHN0cmluZztcbiAgY3JlYXRlZDogYm9vbGVhbjtcbiAgY2hhbmdlZDogYm9vbGVhbjtcbiAgYmVmb3JlOiBJbmNpZGVudFN0YXRlIHwgbnVsbDtcbiAgYWZ0ZXI6IEluY2lkZW50U3RhdGU7XG59XG5cbi8qKiBXaGF0IGBSZXBvcnRpbmdTZXJ2aWNlLnJlY29yZERlcGxveW1lbnRPdXRjb21lYCByZXBsYWNlZDogdGhlIHByaW9yIG1hcmtlciBvZiB0aGUgc2FtZSBvdXRjb21lLCBpZiBhbnkuICovXG5leHBvcnQgaW50ZXJmYWNlIERlcGxveW1lbnRPdXRjb21lV3JpdGUge1xuICBwcmV2aW91czogeyBhdDogc3RyaW5nIHwgbnVsbDsgZW52aXJvbm1lbnQ6IHN0cmluZyB8IG51bGwgfSB8IG51bGw7XG59XG5cbi8qKiBFdmVudCBwYXlsb2FkIGFjY2VwdGVkIGJ5IGBSZXBvcnRpbmdTZXJ2aWNlLmluZ2VzdEV2ZW50c2AuIE1pcnJvcnMgdGhlIHJvdXRlJ3MgWm9kIHNoYXBlLiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbmdlc3RFdmVudCB7XG4gIC8qKiBTdGFibGUgcGlwZWxpbmUgaWQgdGhlIGV2ZW50cyBMYW1iZGEgcmVhZCBmcm9tIHRoZSBgcGIucGlwZWxpbmUtaWRgXG4gICAqICB0YWcgKD0gdGhlIHBsYXRmb3JtIHBpcGVsaW5lSWQpLiBUaGUgcmVnaXN0cnkgam9pbiBrZXkuICovXG4gIHBpcGVsaW5lSWQ6IHN0cmluZztcbiAgZXZlbnRTb3VyY2U6ICdjb2RlcGlwZWxpbmUnIHwgJ2NvZGVidWlsZCcgfCAncGx1Z2luLWJ1aWxkJztcbiAgZXZlbnRUeXBlOiAnUElQRUxJTkUnIHwgJ1NUQUdFJyB8ICdBQ1RJT04nIHwgJ0JVSUxEJztcbiAgc3RhdHVzOiBzdHJpbmc7XG4gIGV4ZWN1dGlvbklkPzogc3RyaW5nO1xuICBzdGFnZU5hbWU/OiBzdHJpbmc7XG4gIGFjdGlvbk5hbWU/OiBzdHJpbmc7XG4gIC8qKiBIdW1hbi1yZWFkYWJsZSBmYWlsdXJlIHJlYXNvbiAoQWN0aW9uIGV2ZW50cykuICovXG4gIGVycm9yTWVzc2FnZT86IHN0cmluZztcbiAgc3RhcnRlZEF0Pzogc3RyaW5nO1xuICBjb21wbGV0ZWRBdD86IHN0cmluZztcbiAgZHVyYXRpb25Ncz86IG51bWJlcjtcbiAgLyoqIFNvdXJjZSBjb21taXQgaWQgb2YgdGhlIGNoYW5nZSBiZWluZyBzaGlwcGVkIChET1JBIGRlcGxveSBhdHRyaWJ1dGlvbikuICovXG4gIGNvbW1pdFNoYT86IHN0cmluZztcbiAgLyoqIFNvdXJjZSByZWYvYnJhbmNoIChET1JBIGRlcGxveSBhdHRyaWJ1dGlvbikuICovXG4gIGNvbW1pdFJlZj86IHN0cmluZztcbiAgLyoqIERlcGxveSB0YXJnZXQgKGUuZy4gXCJwcm9kdWN0aW9uXCIpLiBJdHMgcHJlc2VuY2Ugb24gYSBTVEFHRS9BQ1RJT04gZXZlbnRcbiAgICogIG1hcmtzIGEgcmVhbCBkZXBsb3ltZW50IChkZXJpdmVkIHNlcnZlci1zaWRlIOKAlCB0aGVyZSBpcyBubyBgaXNEZXBsb3lgKS4gKi9cbiAgZW52aXJvbm1lbnQ/OiBzdHJpbmc7XG4gIC8qKiBPbGRlc3QgdW5zaGlwcGVkIGNvbW1pdCB0aW1lc3RhbXAgKElTTyA4NjAxKSBmb3IgbWVhc3VyZWQgbGVhZCB0aW1lLiAqL1xuICBjb21taXRUaW1lc3RhbXA/OiBzdHJpbmc7XG4gIC8qKiBOdW1iZXIgb2YgY29tbWl0cyBzaGlwcGVkIGluIHRoaXMgY2hhbmdlICjiiaUxKS4gKi9cbiAgY29tbWl0Q291bnQ/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBUaGUgRXZlbnRCcmlkZ2UgZXZlbnQgYGlkYCB0aGUgZm9yd2FyZGVyIHJlY2VpdmVkIHRoaXMgc3RhdGUgY2hhbmdlIGFzLlxuICAgKiBBV1MtYXNzaWduZWQgYW5kIHVuaXF1ZSBwZXIgZGVsaXZlcnkgc291cmNlIGV2ZW50LCBzbyBpdCBpcyB0aGUgc3Ryb25nZXN0XG4gICAqIGRlZHVwIGtleSB0aGVyZSBpcyAoYGV2ZW50X3NvdXJjZV9ldmVudF9pZHhgKSBhbmQgdGhlIHRocmVhZCBhbiBhdWRpdCBvclxuICAgKiBET1JBIHJvdyBmb2xsb3dzIGJhY2sgdG8gdGhlIGV4YWN0IEFXUyBldmVudC4gQWJzZW50IGZvciBwbHVnaW4tYnVpbGRcbiAgICogZXZlbnRzLCB3aGljaCBoYXZlIG5vIEV2ZW50QnJpZGdlIG9yaWdpbi5cbiAgICovXG4gIHNvdXJjZUV2ZW50SWQ/OiBzdHJpbmc7XG4gIC8qKiBUaGUgU1FTIG1lc3NhZ2UgaWQgaXQgYXJyaXZlZCBpbiAoZm9sZGVkIGludG8gYGRldGFpbC5zb3VyY2VNZXNzYWdlSWRgOyBub3QgYSBjb2x1bW4pLiAqL1xuICBzb3VyY2VNZXNzYWdlSWQ/OiBzdHJpbmc7XG4gIGRldGFpbD86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xufVxuXG4vKipcbiAqIFBlci1ldmVudCBtZXRyaWMgZGVzY3JpcHRvciBlbWl0dGVkICh2aWEgdGhlIHtAbGluayBSZXBvcnRpbmdTZXJ2aWNlLmluZ2VzdEV2ZW50c31cbiAqIGBvbk1ldHJpY2AgaG9vaykgZm9yIGVhY2ggUkVHSVNURVJFRCB0ZXJtaW5hbCBkZXBsb3kvc3RhZ2UgZXZlbnQsIHNvIHRoZSByb3V0ZVxuICogbGF5ZXIgY2FuIGZhbiB0aGVtIGludG8gUHJvbWV0aGV1cyBjb3VudGVycyB3aXRob3V0IHBpcGVsaW5lLWRhdGEgaW1wb3J0aW5nXG4gKiBhcGktc2VydmVyJ3MgbWV0cmljcyByZWdpc3RyeS4gYHJlc3VsdGAgaXMgdGhlIHRlcm1pbmFsIG91dGNvbWU7IGBlbnZpcm9ubWVudGBcbiAqIGlzIG5vbi1udWxsIG9ubHkgZm9yIGEgZGVwbG95LXN0YWdlIGV2ZW50LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0YWdlSW5nZXN0TWV0cmljIHtcbiAga2luZDogJ3N0YWdlJztcbiAgcGlwZWxpbmVJZDogc3RyaW5nO1xuICBvcmdJZDogc3RyaW5nO1xuICBzdGFnZTogc3RyaW5nO1xuICBlbnZpcm9ubWVudDogc3RyaW5nIHwgbnVsbDtcbiAgcmVzdWx0OiAnc3VjY2VlZGVkJyB8ICdmYWlsZWQnO1xufVxuXG4vKipcbiAqIE9uZSB0ZXJtaW5hbCBDb2RlQnVpbGQgQUNUSU9OJ3MgY29tcHV0ZSBjb25zdW1wdGlvbiAoUGhhc2UgNCwgbWVhc3VyZW1lbnRcbiAqIGhhbGYpLlxuICpcbiAqIGBjcmVkaXRzYCBpcyBOVUxMIHJhdGhlciB0aGFuIDAgd2hlbiB0aGUgYWN0aW9uIGNvdWxkIG5vdCBiZSBtZWFzdXJlZCDigJQgbm9cbiAqIGRlY2xhcmVkIHN0YXJ0IHRpbWUsIG9yIGEgY29tcHV0ZSBzaXplIHRoZSBmb3J3YXJkZXIgY291bGQgbm90IHJlYWQuIFRoZVxuICogZGlzdGluY3Rpb24gaXMgdGhlIHdob2xlIHZhbHVlIG9mIHRoaXMgbWV0cmljOiB6ZXJvIHdvdWxkIG1ha2UgYSBjb3ZlcmFnZSBnYXBcbiAqIGxvb2sgbGlrZSBpZGxlbmVzcywgYW5kIGEgdGllciBsYWRkZXIgcmUtZGVyaXZlZCBhZ2FpbnN0IGFuIHVua25vd25cbiAqIGRlbm9taW5hdG9yIGlzIGEgcmVwcmljaW5nIG5vYm9keSBjYW4gZGVmZW5kLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbXB1dGVJbmdlc3RNZXRyaWMge1xuICBraW5kOiAnY29tcHV0ZSc7XG4gIHBpcGVsaW5lSWQ6IHN0cmluZztcbiAgb3JnSWQ6IHN0cmluZztcbiAgY29tcHV0ZVR5cGU6IHN0cmluZyB8IG51bGw7XG4gIGR1cmF0aW9uTXM6IG51bWJlciB8IG51bGw7XG4gIGNyZWRpdHM6IG51bWJlciB8IG51bGw7XG59XG5cbi8qKiBXaGF0IHRoZSBpbmdlc3QgZmFucyBvdXQgdG8gaXRzIGNhbGxlcidzIG1ldHJpYyByZWdpc3RyeS4gRGlzY3JpbWluYXRlZCwgc29cbiAqICBhIG5ldyBraW5kIGNhbm5vdCBiZSBzaWxlbnRseSBjb3VudGVkIGFzIGEgc3RhZ2Ugb3V0Y29tZS4gKi9cbmV4cG9ydCB0eXBlIEluZ2VzdE1ldHJpYyA9IFN0YWdlSW5nZXN0TWV0cmljIHwgQ29tcHV0ZUluZ2VzdE1ldHJpYztcblxuLyoqIENvdW50cyArIHRoZSAocG9zc2libHkgdHJ1bmNhdGVkKSBsaXN0IG9mIHVucmVnaXN0ZXJlZCBwaXBlbGluZSBpZHMgdGhlIGNhbGxlciBjYW4gbG9nLiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbmdlc3RSZXN1bHQge1xuICBpbnNlcnRlZDogbnVtYmVyO1xuICBza2lwcGVkOiBudW1iZXI7XG4gIHVucmVnaXN0ZXJlZFBpcGVsaW5lSWRzOiBzdHJpbmdbXTtcbiAgLyoqXG4gICAqIEV2ZXJ5IG9yZyB3aXRoIGF0IGxlYXN0IG9uZSByb3cgaW4gdGhpcyBiYXRjaCwgZGVkdXBlZC5cbiAgICpcbiAgICogQWxyZWFkeSBjb21wdXRlZCBmb3IgcG9zdC1jb21taXQgY2FjaGUgaW52YWxpZGF0aW9uOyBzdXJmYWNlZCBiZWNhdXNlIHRoZVxuICAgKiBpbmdlc3Qgcm91dGUgbmVlZHMgdGhlIHNhbWUgc2V0IHRvIHB1c2ggaXRzIGxpdmUgU1NFIGZyYW1lLiBUaGUgc3RhZ2UtbWV0cmljXG4gICAqIGhvb2sgY2FuJ3QgZHJpdmUgdGhhdCBmYW4tb3V0OiBpdCBvbmx5IGZpcmVzIGZvciBTVEFHRSBldmVudHMsIHNvIGEgYmF0Y2ggb2ZcbiAgICogUElQRUxJTkUgb3IgQlVJTEQgZXZlbnRzIHdvdWxkIGxhbmQgcm93cyBhbmQgcHVzaCBubyBmcmFtZSBhdCBhbGwuXG4gICAqL1xuICBhZmZlY3RlZE9yZ3M6IHN0cmluZ1tdO1xuICAvKipcbiAgICogRXZlbnRzIGRyb3BwZWQgYmVjYXVzZSB0aGUgcGlwZWxpbmUgdGhleSBuYW1lIGJlbG9uZ3MgdG8gYW4gb3JnIHRoZSBjYWxsZXJcbiAgICogbWF5IG5vdCB3cml0ZSBmb3IuIFN1cmZhY2VkIHNvIHRoZSByb3V0ZSBjYW4gbG9nIGFuZCBjb3VudCB0aGVtOiBhIG5vbi16ZXJvXG4gICAqIHZhbHVlIGlzIGVpdGhlciBhIG1pc3JvdXRlZCBwcm9kdWNlciBvciBhbiBhdHRlbXB0IHRvIGluamVjdCBldmVudHMgaW50b1xuICAgKiBhbm90aGVyIHRlbmFudCdzIHJlcG9ydHMsIGFuZCBib3RoIG5lZWQgdG8gYmUgdmlzaWJsZS5cbiAgICovXG4gIGRyb3BwZWRGb3JlaWduT3JnOiBudW1iZXI7XG4gIC8qKlxuICAgKiBFdmVudHMgZHJvcHBlZCBiZWNhdXNlIHRoZWlyIHRpbWVzdGFtcHMgYXJlIGltcG9zc2libGUg4oCUIGRhdGVkIGluIHRoZSBmdXR1cmUsXG4gICAqIG9yIGNvbXBsZXRpbmcgYmVmb3JlIHRoZXkgc3RhcnRlZC4gUmVqZWN0ZWQgaGVyZSByYXRoZXIgdGhhbiBjbGFtcGVkIGxhdGVyOlxuICAgKiBhIGRlcGxveSB3aG9zZSBkdXJhdGlvbiBvciBsZWFkIHRpbWUgaXMgbmVnYXRpdmUgc2lsZW50bHkgc2tld3MgZGVwbG95bWVudFxuICAgKiBmcmVxdWVuY3ksIGNoYW5nZS1mYWlsdXJlIHJhdGUgYW5kIGxlYWQgdGltZSBmb3IgdGhlIHdob2xlIG9yZywgYW5kIGEgY2xhbXBcbiAgICogdG8gMCBtYWtlcyBhIGJhZCBjbG9jayBsb29rIGxpa2UgYW4gaW5zdGFudCBkZXBsb3kuXG4gICAqL1xuICBkcm9wcGVkSW52YWxpZFRpbWU6IG51bWJlcjtcbiAgLyoqXG4gICAqIFRoZSByZWdpc3RlcmVkIHBpcGVsaW5lIGlkcyB3aG9zZSBldmVudHMgd2VyZSBkcm9wcGVkIGFzIEZPUkVJR04tT1JHIOKAlCB0aGVcbiAgICogdGVuYW5jeSByZWZ1c2FsIHRoZSByb3V0ZSBhdWRpdHMgYXMgYSBmYWlsdXJlLiBJZHMgb25seSAobmV2ZXIgdGhlIG9yZyB0aGV5XG4gICAqIHJlc29sdmVkIHRvOiB0aGF0IHdvdWxkIHRlbGwgYSBwcm9iZXIgd2hpY2ggdGVuYW50IG93bnMgdGhlIHBpcGVsaW5lKS5cbiAgICovXG4gIGZvcmVpZ25QaXBlbGluZUlkczogc3RyaW5nW107XG4gIC8qKiBEaXN0aW5jdCBleGVjdXRpb24gaWRzIG9mIHRoZSByb3dzIHRoYXQgYWN0dWFsbHkgbGFuZGVkICh0aGUgYXVkaXQncyBjb3JyZWxhdGlvbiBzZXQpLiAqL1xuICBpbnNlcnRlZEV4ZWN1dGlvbklkczogc3RyaW5nW107XG4gIC8qKiBEaXN0aW5jdCBwaXBlbGluZSBpZHMgb2YgdGhlIHJvd3MgdGhhdCBhY3R1YWxseSBsYW5kZWQuICovXG4gIGluc2VydGVkUGlwZWxpbmVJZHM6IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIFdobyBpcyB3cml0aW5nLCBmb3IgdGhlIGluZ2VzdCB0ZW5hbmN5IGNoZWNrLlxuICpcbiAqIGAvcmVwb3J0cy9ldmVudHNgIHJlc29sdmVzIGFuIGV2ZW50J3Mgb3JnIGZyb20gdGhlIHBpcGVsaW5lIHJlZ2lzdHJ5LCBzb1xuICogd2l0aG91dCB0aGlzIGEgdG9rZW4gaG9sZGluZyBgcmVwb3J0aW5nOmluZ2VzdGAgY291bGQgcG9zdCBldmVudHMgZm9yIEFOWVxuICogcGlwZWxpbmUgaWQgYW5kIGhhdmUgdGhlbSBhdHRyaWJ1dGVkIHRvIHRoYXQgcGlwZWxpbmUncyBvcmcg4oCUIG9uZSBvcmdcbiAqIGluamVjdGluZyByb3dzIGludG8gYW5vdGhlcidzIHJlcG9ydHMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW5nZXN0Q2FsbGVyIHtcbiAgLyoqXG4gICAqIE9yZyBpZHMgdGhpcyBjYWxsZXIgbWF5IHdyaXRlIGV2ZW50cyBmb3I6IGl0cyBvd24sIHBsdXMgZGVzY2VuZGFudCB0ZWFtcy5cbiAgICogUmVzb2x2ZWQgYnkgdGhlIHJvdXRlLiBBbiBldmVudCB3aG9zZSBwaXBlbGluZSBiZWxvbmdzIHRvIGFueXRoaW5nIGVsc2UgaXNcbiAgICogZHJvcHBlZC5cbiAgICovXG4gIGFsbG93ZWRPcmdJZHM6IHJlYWRvbmx5IHN0cmluZ1tdO1xuICAvKipcbiAgICogQSB2ZXJpZmllZCBJTlRFUk5BTCBzZXJ2aWNlIHByaW5jaXBhbCAodGhlIHBsdWdpbiBzZXJ2aWNlIHBvc3RzIHBsdWdpbi1idWlsZFxuICAgKiBldmVudHMgZm9yIGV2ZXJ5IHRlbmFudCkuIFN1Y2ggY2FsbGVycyBhcmUgZXhlbXB0OiB0aGV5IGhvbGQgYSBzaWduZWRcbiAgICogc2VydmljZSBrZXkgbm8gZXh0ZXJuYWwgY2xpZW50IGNhbiBtaW50LCBhbmQgdGhleSBsZWdpdGltYXRlbHkgd3JpdGVcbiAgICogY3Jvc3MtdGVuYW50LiBOZXZlciBzZXQgdGhpcyBmcm9tIGFueXRoaW5nIGEgcmVxdWVzdCBib2R5IGNhbiBpbmZsdWVuY2UuXG4gICAqL1xuICBjcm9zc1RlbmFudD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBUaGUgYWNjZXNzIGtleSAoc2VydmljZS1hY2NvdW50IC8gUEFUIGtleSBpZCkgdGhlIGluZ2VzdCB0b2tlbiB3YXMgZXhjaGFuZ2VkXG4gICAqIGZyb20sIHN0YW1wZWQgb24gZXZlcnkgcm93IGFzIGBpbmdlc3Rfa2V5X2lkYCBzbyBhIGZvcmdlZCBvciBtaXNyb3V0ZWQgcm93XG4gICAqIG5hbWVzIHRoZSBjcmVkZW50aWFsIHRoYXQgd3JvdGUgaXQuIEEga2V5IElELCBuZXZlciB0aGUgc2VjcmV0LlxuICAgKi9cbiAga2V5SWQ/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogT25lIG9yZydzIGluZ2VzdGlvbi1oZWFsdGggcm93IGFzIFJFQUQgYmFjayBieSB0aGUgUmVwb3J0cyBVSS4gVGhlXG4gKiBBV1MgZXZlbnRzIExhbWJkYSB3cml0ZXMgaXQ7IHRoaXMgaXMgdGhlIHNoYXBlIHRoYXQgbGV0cyB0aGUgVUkgdGVsbFxuICogXCJpbmdlc3Rpb24gaXMgaGVhbHRoeSwgdGhlcmUgd2VyZSBzaW1wbHkgbm8gZGVwbG95cyBpbiB0aGUgcmFuZ2VcIiBhcGFydCBmcm9tXG4gKiBcIndlIGhhdmVuJ3QgaGVhcmQgZnJvbSB0aGUgaW5nZXN0IHBpcGVsaW5lIHNpbmNlIFhcIi5cbiAqXG4gKiBgbnVsbGAgZnJvbSB7QGxpbmsgUmVwb3J0aW5nU2VydmljZS5nZXRJbmdlc3RIZWFsdGh9IG1lYW5zIHRoZSBkZXBsb3ltZW50IGhhc1xuICogTkVWRVIgcmVwb3J0ZWQg4oCUIG5vdCBcInN0YWxlXCIuIFRoZSB0d28gbXVzdCBub3QgYmUgY29uZmxhdGVkOiBhIGZyZXNoIGluc3RhbGxcbiAqIChvciBvbmUgd2hvc2UgZm9yd2FyZGVyIHdhcyBuZXZlciB3aXJlZCB1cCkgaGFzIG5vIGhlYXJ0YmVhdCBhdCBhbGwsIGFuZFxuICogY2FsbGluZyB0aGF0IFwic3RhbGVcIiB3b3VsZCBpbnZlbnQgYSByZWdyZXNzaW9uIHRoYXQgbmV2ZXIgaGFwcGVuZWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW5nZXN0SGVhbHRoU3RhdHVzIHtcbiAgLyoqIFdoZW4gdGhlIGZvcndhcmRlciBsYXN0IHBvc3RlZCBhIGhlYXJ0YmVhdCAoaXRzIG93biBjbG9jaywgSVNPIDg2MDEpLiAqL1xuICB1cGRhdGVkQXQ6IHN0cmluZztcbiAgLyoqIFRpbWVzdGFtcCBvZiB0aGUgbmV3ZXN0IGV2ZW50IGl0IGhhZCBmb3J3YXJkZWQsIG9yIG51bGwgaWYgaXQgaGFzIHNlZW4gbm9uZS4gKi9cbiAgbGFzdEV2ZW50QXQ6IHN0cmluZyB8IG51bGw7XG4gIC8qKiBDdW11bGF0aXZlIGV2ZW50cyBmb3J3YXJkZWQsIG9yIG51bGwgd2hlbiB0aGUgZm9yd2FyZGVyIGRvZXNuJ3QgcmVwb3J0IGl0LiAqL1xuICBmb3J3YXJkZWQ6IG51bWJlciB8IG51bGw7XG4gIC8qKiBDdW11bGF0aXZlIGV2ZW50cyBEUk9QUEVEIChub24temVybyDih5IgZGF0YSBsb3NzIHVwc3RyZWFtIG9mIHRoZSByZXBvcnRzKS4gKi9cbiAgZHJvcHBlZDogbnVtYmVyIHwgbnVsbDtcbn1cblxuXG4vKipcbiAqIFJlYWQtb25seSByZXBvcnRpbmcgc2VydmljZSBmb3IgcGlwZWxpbmUgZXhlY3V0aW9uIGFuZCBwbHVnaW4gaW52ZW50b3J5IGFnZ3JlZ2F0aW9ucy5cbiAqIERvZXMgbm90IGV4dGVuZCBDcnVkU2VydmljZSDigJQgcmVwb3J0cyBhcmUgYWdncmVnYXRlIHF1ZXJpZXMsIG5vdCBlbnRpdHkgQ1JVRC5cbiAqXG4gKiBBbGwgcXVlcmllcyBhcmUgY2FjaGVkIGluLW1lbW9yeSB0byBhdm9pZCByZXBlYXRlZCBleHBlbnNpdmUgU1FMIGFnZ3JlZ2F0aW9uczpcbiAqIC0gSW52ZW50b3J5IHF1ZXJpZXMgKHBsdWdpbiBzdW1tYXJ5L2Rpc3RyaWJ1dGlvbi92ZXJzaW9ucyk6IDUgbWluIFRUTFxuICogLSBUaW1lc2VyaWVzIHF1ZXJpZXMgKGV4ZWN1dGlvbi9idWlsZCBtZXRyaWNzIHdpdGggZGF0ZSByYW5nZXMpOiAyIG1pbiBUVExcbiAqL1xuXG4vKipcbiAqIEludGVybmFsIHJvdyBzaGFwZXMgZm9yIHRoZSBET1JBIHF1ZXJpZXMuIEV4cG9ydGVkIGJlY2F1c2UgLi9kb3JhLnRzIGNvbnN1bWVzXG4gKiB0aGVtOyBub3QgcGFydCBvZiB0aGUgcGFja2FnZSdzIHB1YmxpYyBzdXJmYWNlIChyZXBvcnRpbmctc2VydmljZS50c1xuICogcmUtZXhwb3J0cyB0aGlzIG1vZHVsZSB3aG9sZXNhbGUsIHdoaWNoIGlzIGEgZGVsaWJlcmF0ZSBzaW1wbGlmaWNhdGlvbiDigJQgdGhlc2VcbiAqIGRlc2NyaWJlIHF1ZXJ5IHJlc3VsdHMsIG5vdCBBUEkgY29udHJhY3RzKS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEZXBsb3lSb3cge1xuICBlbnZpcm9ubWVudDogc3RyaW5nO1xuICBzdGF0dXM6ICdTVUNDRUVERUQnIHwgJ0ZBSUxFRCcgfCBzdHJpbmc7XG4gIC8qKiBEZXBsb3kgZXhlY3V0aW9uIGlkIOKAlCB0aGUgYXR0cmlidXRpb24ga2V5IGZvciBkZWR1cCBhZ2FpbnN0IG91dGNvbWVzL2luY2lkZW50cy4gKi9cbiAgZXhlY3V0aW9uX2lkOiBzdHJpbmcgfCBudWxsO1xuICBjb21wbGV0ZWRfYXQ6IHN0cmluZyB8IG51bGw7XG4gIGNvbW1pdF90czogc3RyaW5nIHwgbnVsbDtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGRlcGxveSBjb21wbGV0ZWQgaW5zaWRlIFtmcm9tLHRvXS4gQWJzZW50ICh1bmRlZmluZWQpIGluIHVuaXRcbiAgICogZml4dHVyZXMg4oeSIHRyZWF0ZWQgYXMgaW4td2luZG93LiBgdGAvYGZgIHRvbGVyYXRlZCAocGcgYm9vbGVhbiB0ZXh0IGZvcm0pLlxuICAgKi9cbiAgaW5fd2luZG93PzogYm9vbGVhbiB8IHN0cmluZyB8IG51bGw7XG59XG5cbi8qKiBSYXcgcG9zdC1kZXBsb3kgb3V0Y29tZSBtYXJrZXIgcm93IChmcm9tIGBkZXBsb3ltZW50X291dGNvbWVzYCwgaW4td2luZG93KS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT3V0Y29tZVJvdyB7XG4gIGVudmlyb25tZW50OiBzdHJpbmcgfCBudWxsO1xuICBvdXRjb21lOiAnZmFpbGVkJyB8ICdyZXN0b3JlZCcgfCBzdHJpbmc7XG4gIC8qKiBFeGVjdXRpb24gdGhlIHVzZXIgbWFya2VkIOKAlCBkZWR1cCBrZXkgYWdhaW5zdCBpbmNpZGVudC1jb3JyZWxhdGVkIGRlcGxveXMuICovXG4gIGV4ZWN1dGlvbl9pZDogc3RyaW5nIHwgbnVsbDtcbn1cblxuLyoqIFByb2R1Y3Rpb24gcmVzdG9yZWQtaW5jaWRlbnQgcGFpcjogcmVjb3ZlcnkgdGltZSArIHRoZSBkZXBsb3kncyBjb21wbGV0aW9uLiAqL1xuZXhwb3J0IGludGVyZmFjZSBNdHRyUGFpclJvdyB7XG4gIHJlc3RvcmVkX2F0OiBzdHJpbmcgfCBudWxsO1xuICBkZXBsb3llZF9hdDogc3RyaW5nIHwgbnVsbDtcbiAgLyoqIEV4ZWN1dGlvbiBpZCDigJQgbGV0cyBpbmNpZGVudCBwcmVjZWRlbmNlIG92ZXJyaWRlIHRoZSBtYW51YWwgb3V0Y29tZSBwZXIgZGVwbG95LiAqL1xuICBleGVjdXRpb25faWQ6IHN0cmluZyB8IG51bGw7XG59XG5cbi8qKlxuICogUmF3IGluY2lkZW50IHJvdyAoZnJvbSBgaW5jaWRlbnRzYCwgb3BlbmVkIGluLXdpbmRvdykuIENvcnJlbGF0ZWQgaW4gSlMgdG8gdGhlXG4gKiBtb3N0IHJlY2VudCBzdWNjZXNzZnVsIGRlcGxveSB0byBgZW52aXJvbm1lbnRgIHdpdGhpbiBET1JBX0lOQ0lERU5UX1dJTkRPV19IT1VSU1xuICog4oaSIGFuIGF1dG9tYXRlZCBwb3N0LWRlcGxveSBmYWlsdXJlIChDRlIpICsgcmVhbCByZWNvdmVyeSB0aW1lIChNVFRSKS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbmNpZGVudFJvdyB7XG4gIGVudmlyb25tZW50OiBzdHJpbmc7XG4gIG9wZW5lZF9hdDogc3RyaW5nIHwgbnVsbDtcbiAgcmVzb2x2ZWRfYXQ6IHN0cmluZyB8IG51bGw7XG59XG5cbi8qKiBDb3ZlcmFnZSBjb3VudHM6IHJlZ2lzdGVyZWQgcGlwZWxpbmVzIHZzIHRob3NlIHRoYXQgYWN0dWFsbHkgZGVwbG95ZWQuICovXG5leHBvcnQgaW50ZXJmYWNlIENvdmVyYWdlUm93IHtcbiAgcmVnaXN0ZXJlZDogbnVtYmVyIHwgc3RyaW5nIHwgbnVsbDtcbiAgZGVwbG95aW5nOiBudW1iZXIgfCBzdHJpbmcgfCBudWxsO1xufVxuIl19
|