vcomply-workflow-engine 4.0.2 → 4.0.3

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.
@@ -174,7 +174,7 @@ export class MoreOptionComponent {
174
174
  imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/link-items.svg',
175
175
  name: 'LINK RELATED POLICIES',
176
176
  tooltipTitle: 'LINK RELATED POLICIES',
177
- tooltipMessage: `The options lets you associate related policies for quick reference, enabling users to view relevant documents in one place and ensuring policy alignment.`,
177
+ tooltipMessage: `This options lets you associate related policies for quick reference, enabling users to view relevant documents in one place and ensuring policy alignment.`,
178
178
  checked: false,
179
179
  hidden: false,
180
180
  code: 'LINK_RELATED_POLICIES',
@@ -796,4 +796,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
796
796
  }], isAttributesAvailable: [{
797
797
  type: Input
798
798
  }] } });
799
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9yZS1vcHRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvbW9yZS1vcHRpb24vbW9yZS1vcHRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvbW9yZS1vcHRpb24vbW9yZS1vcHRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sR0FFUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0RBQWdELENBQUM7Ozs7OztBQU92RSxNQUFNLE9BQU8sbUJBQW1CO0lBUzlCLElBQTZCLHNCQUFzQixDQUFDLE9BQVk7UUFDOUQsSUFBSSxDQUFDLFVBQVUsR0FBRyxPQUFPLElBQUksSUFBSSxDQUFDO1FBQ2xDLElBQUksT0FBTyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsTUFBTSxFQUFFO1lBQzNDLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1NBQ2pDO0lBQ0gsQ0FBQztJQTRuQkQ7UUF6b0JTLG9CQUFlLEdBQUcsRUFBRSxDQUFDO1FBQ3JCLGVBQVUsR0FBRyxFQUFFLENBQUM7UUFDaEIsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNsQixtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDckMsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFDckIsc0JBQWlCLEdBQUcsS0FBSyxDQUFDO1FBUzFCLDBCQUFxQixHQUFZLElBQUksQ0FBQztRQUMvQyxvQkFBZSxHQUFZLEtBQUssQ0FBQztRQUNqQyx3QkFBbUIsR0FBWSxLQUFLLENBQUM7UUFDckMsa0JBQWEsR0FBWSxLQUFLLENBQUM7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QUFsQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0ksY0FBYztzQkFBdkIsTUFBTTtnQkFDRSxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUV1QixzQkFBc0I7c0JBQWxELEtBQUs7dUJBQUMsZ0JBQWdCO2dCQU1kLHFCQUFxQjtzQkFBN0IsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPbkNoYW5nZXMsXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBMSU5LUyB9IGZyb20gJy4uL3dvcmtmbG93L3NoYXJlZC9jb25zdGFudHMvY2RuLWxpbmsuY29uc3RhbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtbW9yZS1vcHRpb24nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9tb3JlLW9wdGlvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vbW9yZS1vcHRpb24uY29tcG9uZW50Lmxlc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIE1vcmVPcHRpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XHJcbiAgQElucHV0KCkgY3VycmVudFdvcmtmbG93ID0gJyc7XHJcbiAgQElucHV0KCkgb3BlbmVkRnJvbSA9ICcnO1xyXG4gIEBJbnB1dCgpIGlzRWRpdE1vZGUgPSBmYWxzZTtcclxuICBAT3V0cHV0KCkgc2VsZWN0ZWRPcHRpb24gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQElucHV0KCkgaXNSQ1NlbGVjdGVkID0gZmFsc2U7XHJcbiAgQElucHV0KCkgaXNQcm9ncmFtU2VsZWN0ZWQgPSBmYWxzZTtcclxuICBASW5wdXQoKSBhbGxvd2VkRmVhdHVyZTogYW55O1xyXG4gIG9yZ0RldGFpbHM6IGFueTtcclxuICBASW5wdXQoJ29yZ0RldGFpbHNEYXRhJykgc2V0IGdldE9yZ2FuaXphdGlvbkRldGFpbHMoZGV0YWlsczogYW55KSB7XHJcbiAgICB0aGlzLm9yZ0RldGFpbHMgPSBkZXRhaWxzID8/ICd7fSc7XHJcbiAgICBpZiAoZGV0YWlscyAmJiBPYmplY3Qua2V5cyhkZXRhaWxzKT8ubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMudXBkYXRlUHJvZ3JhbU1vcmVPcHRpb25zKCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIEBJbnB1dCgpIGlzQXR0cmlidXRlc0F2YWlsYWJsZTogYm9vbGVhbiA9IHRydWU7XHJcbiAgZmVhdHVyZWZsYWdyb2xlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHJvZ3JhbVNpbXBsaWZ5RmxhZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGZmX3JjX2xpc3Rpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwZXJtaXNzaW9uVGV4dDogc3RyaW5nID0gJ1Blcm1pc3Npb25zJztcclxuXHJcbiAgcGxhY2Vob2xkZXJUZXh0czogYW55ID0ge1xyXG4gICAgQUFSOiAnU2VsZWN0IHdoYXQgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiB5b3Ugd291bGQgbGlrZSB0byBpbmNsdWRlIGluIHRoZSByaXNrLicsXHJcbiAgICBDQVA6ICdTZWxlY3Qgd2hhdCBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIHlvdSB3b3VsZCBsaWtlIHRvIGluY2x1ZGUgaW4gdGhlIHBvbGljeS4nLFxyXG4gICAgQ0FSOiAnU2VsZWN0IHdoYXQgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiB5b3Ugd291bGQgbGlrZSB0byBpbmNsdWRlIGluIHRoZSByZXNwb25zaWJpbGl0eS4nLFxyXG4gICAgQ0FTOiAnU2VsZWN0IHdoYXQgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiB5b3Ugd291bGQgbGlrZSB0byBpbmNsdWRlIGluIHRoZSBzdXJ2ZXkuJyxcclxuICAgIExBSTogJ1NlbGVjdCB3aGF0IGFkZGl0aW9uYWwgaW5mb3JtYXRpb24geW91IHdvdWxkIGxpa2UgdG8gaW5jbHVkZSBpbiB0aGUgaXNzdWUuJyxcclxuICAgIENBUFI6ICdTZWxlY3Qgd2hhdCBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIHlvdSB3b3VsZCBsaWtlIHRvIGluY2x1ZGUgaW4gdGhlIHNjb3BlLicsXHJcbiAgICBHUkM6ICdTZWxlY3Qgd2hhdCBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIHlvdSB3b3VsZCBsaWtlIHRvIGluY2x1ZGUgaW4gdGhlIEdSQyBPYmplY3QuJyxcclxuICB9O1xyXG5cclxuICBidXNpbmVzc0N5Y2xlID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnYnVzaW5lc3NDeWNsZScpID8/ICd7fScpO1xyXG4gIG1vcmVPcHRpb25zTGlzdDogYW55ID0ge1xyXG4gICAgQUFSOiBbXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDpcclxuICAgICAgICAgICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvb3duZXIuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnUmlzayBPd25lcicsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnUmlzayBPd25lcicsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6XHJcbiAgICAgICAgICAnVGhpcyBpcyBlaXRoZXIgYSBwZXJzb24sIGRlcGFydG1lbnQgb3duZXIgb3IgYSBmdW5jdGlvbmFsIHJvbGUgd2l0aGluIHRoZSBvcmdhbml6YXRpb24gdGhhdCBvd25zIHRoZSByaXNrLiBFeGFtcGxlOiBGb3IgSVQgcmlzaywgdGhlIFJpc2sgT3duZXIgY291bGQgYmUgdGhlIFwiRGlyZWN0b3Igb2YgSVQgJiBTZWN1cml0eVwiLicsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcclxuICAgICAgICBjb2RlOiAnUklTS19PV05FUicsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDpcclxuICAgICAgICAgICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvb3ZlcnNpZ2h0LnN2ZycsXHJcbiAgICAgICAgbmFtZTogJ1Jpc2sgT3ZlcnNpZ2h0JyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICdSaXNrIE92ZXJzaWdodCcsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6XHJcbiAgICAgICAgICAnT3ZlcnNpZ2h0IGVuYWJsZXMgeW91IHRvIGRlc2lnbmF0ZSBwZXJzb25zIHRvIG92ZXJzZWUgdGhlIHJpc2sgbWFuYWdlbWVudCBwcm9jZXNzLicsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcclxuICAgICAgICBjb2RlOiAnT1ZFUlNFRVInLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6XHJcbiAgICAgICAgICAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L3ByaW9yaXR5LnN2ZycsXHJcbiAgICAgICAgbmFtZTogJ1Jpc2sgTWl0aWdhdGlvbiBQcmlvcml0eScsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnUmlzayBNaXRpZ2F0aW9uIFByaW9yaXR5JyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTpcclxuICAgICAgICAgICdUaGlzIHNldHMgdGhlIHByaW9yaXR5IGxldmVsIGZvciB0aGUgbWl0aWdhdGlvbiBvZiBlYWNoIHJpc2suJyxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICAgIGNvZGU6ICdNSVRJR0FUSU9OJyxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOlxyXG4gICAgICAgICAgJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9sYWJsZXMuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnUmlzayBMYWJlbCcsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnUmlzayBMYWJlbCcsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6XHJcbiAgICAgICAgICAnVGhpcyBvcHRpb24gbGV0cyB5b3Ugc3BlY2lmeSBpZiB0aGlzIGlzIGEgbmV3bHkgaWRlbnRpZmllZCByaXNrIG9yIGl0IGlzIGEgcmFwaWRseSBjaGFuZ2luZyByaXNrLicsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcclxuICAgICAgICBjb2RlOiAnUklTS19MQUJFTCcsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDpcclxuICAgICAgICAgICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvbGluay1pdGVtcy5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdMSU5LIEdSQyBPQkpFQ1QoUyknLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ0xJTksgT1RIRVIgR1JDIE9CSkVDVFMnLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOiBgVGhpcyBvcHRpb24gbGV0cyB5b3UgbGluayBhIHJpc2sgd2l0aCByZWxhdGVkIEdSQyBPYmplY3RzLmAsXHJcbiAgICAgICAgZGlzYWJsZWRNZXNzYWdlOiBgWW91IGNhbiBsaW5rIGEgR1JDIE9iamVjdCB3aXRoIHRoaXMgcmlzayBvbmx5IGFmdGVyIHlvdSBoYXZlIHNlbGVjdGVkIGEgUmVzcG9uc2liaWxpdHkgQ2VudGVyLmAsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcclxuICAgICAgICBpc0Rpc2FibGVkOiB0cnVlLFxyXG4gICAgICAgIGNvZGU6ICdHUkNfT0JKRUNUUycsXHJcbiAgICAgIH0sXHJcbiAgICBdLFxyXG4gICAgQ0FQOiBbXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDpcclxuICAgICAgICAgICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvcmVzcG9uc2liaWxpdHktY2VudGVyLnN2ZycsXHJcbiAgICAgICAgbmFtZTogJ1Jlc3BvbnNpYmlsaXR5IENlbnRlcicsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnUmVzcG9uc2liaWxpdHkgQ2VudGVyJyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTogYFJlc3BvbnNpYmlsaXR5IENlbnRlcnMgcmVwcmVzZW50IHlvdXIgb3JnYW5pemF0aW9uYWwgYW5kXHJcbiAgICAgICAgIG9wZXJhdGlvbmFsIGluZnJhc3RydWN0dXJlLiBZb3UgY2FuIGF0dHJpYnV0ZSBhIHBvbGljeSB0byBvbmUgb3IgbW9yZSBSZXNwb25zaWJpbGl0eSBDZW50ZXJzLlxyXG4gICAgICAgICAgV2hlcmUgeW91IGF0dHJpYnV0ZSBhIHBvbGljeSB0byBhIFJlc3BvbnNpYmlsaXR5IENlbnRlciwgdGhhdCBwb2xpY3kgd2lsbCBiZSBzaG93biBhcyBhIHBvbGljeVxyXG4gICAgICAgICAgIHRoYXQgaXMgcmVxdWlyZWQgdG8gYmUgYXR0ZXN0ZWQgYnkgYWxsIHRoZSBwZXJzb25zIGFzc29jaWF0ZWQgd2l0aCB0aGF0IFJlc3BvbnNpYmlsaXR5IENlbnRlci5cclxuICAgICAgICAgICAgVGhlIHBlcmZvcm1hbmNlIG9mIGEgcG9saWN5IGFzc2lnbmVkIHRvIGEgUmVzcG9uc2liaWxpdHkgQ2VudGVyIHdpbGwgYWxzbyBjb250cmlidXRlIHRvIHRoZVxyXG4gICAgICAgICAgICBvdmVyYWxsIHBlcmZvcm1hbmNlIG9mIHRoZSBSZXNwb25zaWJpbGl0eSBDZW50ZXIuYCxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICAgIGNvZGU6ICdSRVNQT05TSUJJTElUWV9DRU5URVInLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6XHJcbiAgICAgICAgICAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L2Fzc29jaWF0ZWQtcmlza3Muc3ZnJyxcclxuICAgICAgICBuYW1lOiAnVkVSU0lPTicsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnVmVyc2lvbicsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6IGBUaGlzIG9wdGlvbiBsZXRzIHlvdSBzcGVjaWZ5IHRoZSBvZmZsaW5lIHZlcnNpb24gbnVtYmVyIGZvciBhIHBvbGljeS4gSGVuY2UsIHlvdSBjYW4gaW5wdXQgdGhlIHZlcnNpb24gbnVtYmVyIG9mIHRoZSBkaWdpdGFsIG9yIHBoeXNpY2FsIGNvcHkgb2YgdGhlIHBvbGljeSBkb2N1bWVudCBmb3IgcmVjb3JkLWtlZXBpbmcgcHVycG9zZXMuYCxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICAgIGNvZGU6ICdWRVJTSU9OJyxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOlxyXG4gICAgICAgICAgJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9yZXZpZXdlci5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdSZXZpZXdlcicsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnUmV2aWV3ZXInLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOiBgVGhpcyBvcHRpb25zIGxldHMgeW91IHNwZWNpZnkgYSByZXZpZXcgbGlmZWN5Y2xlIGZvciB0aGUgcG9saWN5IGRvY3VtZW50LlxyXG4gICAgICAgICBZb3UgY2FuIHNlbGVjdCBhIHJldmlld2VyIGFuZCBkZXRlcm1pbmUgaG93IG9mdGVuIHRoZSBwb2xpY3kgbmVlZHMgdG8gYmUgcmV2aWV3ZWQuYCxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IHRydWUsXHJcbiAgICAgICAgY29kZTogJ1JFVklFV0VSJyxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOlxyXG4gICAgICAgICAgJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9jaGVja3BvaW50cy5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdDaGVja3BvaW50cycsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnQ2hlY2twb2ludHMnLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOiBgQ2hlY2twb2ludHMgZW5hYmxlIHlvdSB0byBjb25maXJtIGEgcGVyc29u4oCZcyB1bmRlcnN0YW5kaW5nIG9mIHRoZSBwb2xpY3kgZG9jdW1lbnQuXHJcbiAgICAgICAgIFlvdSBjYW4gY3JlYXRlIHF1ZXN0aW9ucyBiYXNlZCBvbiB0aGUgcG9saWN5IGNvbnRlbnQgYW5kIHJlcXVpcmUgdGhhdCB0aGUgcmVhZGVyIG9mIHRoZSBwb2xpY3lcclxuICAgICAgICAgYW5zd2VycyB0aGVzZSBxdWVzdGlvbnMgY29ycmVjdGx5IGJlZm9yZSBwcm9jZWVkaW5nIHRvIGNvbXBsZXRlIHRoZSBhdHRlc3RhdGlvbi5cclxuICAgICAgICBgLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogdHJ1ZSxcclxuICAgICAgICBjb2RlOiAnQ0hFQ0tQT0lOVFMnLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6XHJcbiAgICAgICAgICAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L292ZXJzaWdodC5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdPdmVyc2lnaHQnLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ092ZXJzaWdodCcsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6IGBPdmVyc2lnaHRzIGFyZSBwZXJzb25zIHdobyBvdmVyc2VlIHRoZSBwb2xpY3kuXHJcbiAgICAgICAgIFRoZXNlIHBlcnNvbnMgd2lsbCByZWNlaXZlIGVtYWlsIG5vdGlmaWNhdGlvbnMgYWJvdXQgdGhlIHBlcmZvcm1hbmNlIG9mIHRoZSBwb2xpY3kuXHJcbiAgICAgICAgIEFzIHRoZSBwZXJzb24gY3JlYXRpbmcgdGhlIHBvbGljeSwgeW91IHdpbGwgYXV0b21hdGljYWxseSByZWNlaXZlIGVtYWlsIG5vdGlmaWNhdGlvbnMgYWJvdXQgdGhlIHBlcmZvcm1hbmNlIG9mIHRoZSBwb2xpY3kuXHJcbiAgICAgICAgYCxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICAgIGNvZGU6ICdPVkVSU0VFUicsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDpcclxuICAgICAgICAgICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvZm9ybWF0LWV2aWRlbmNlLnN2ZycsXHJcbiAgICAgICAgbmFtZTogJ1JlbGF0ZWQgRG9jdW1lbnRzJyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICdSZWxhdGVkIERvY3VtZW50cycsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6IGBSZWxhdGVkIGRvY3VtZW50cyBhcmUgZmlsZXMgdGhhdCBtaWdodCBiZSByZWxhdGVkIHRvIHRoZSBwb2xpY3kuIFRoZXNlIGNvdWxkIGJlIGRvY3VtZW50cyB3aGljaCBhcmUgcmVsYXRlZFxyXG4gICAgICAgICB0byB0aGUgcG9saWN5IG9yIGFyZSBhIHN1YnNldCBvZiB0aGUgcG9saWN5IHRoYXQgaXMgYmVpbmcgY3JlYXRlZC5gLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgICAgY29kZTogJ1JFTEFURURfRE9DVU1FTlRTJyxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOlxyXG4gICAgICAgICAgJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9saW5rLWl0ZW1zLnN2ZycsXHJcbiAgICAgICAgbmFtZTogJ0xJTksgUFJPR1JBTVMgJiBSRVNQT05TSUJJTElUSUVTJyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICdMSU5LIFBST0dSQU1TICYgUkVTUE9OU0lCSUxJVElFUycsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6IGBUaGlzIG9wdGlvbiBhbGxvd3MgeW91IHRvIGFzc29jaWF0ZSBQcm9ncmFtcyAmIHJlc3BvbnNpYmlsaXRpZXMgZnJvbSB0aGUgQ29tcGxpYW5jZSBtb2R1bGUgd2l0aCBhIHBvbGljeS4gVGhlc2UgY291bGQgYmUgcHJvY2Vzc2VzIG9yIHByb2NlZHVyZXMgdGhhdCBtaWdodCBiZSBsaW5rZWQgdG8gYSBwb2xpY3kuYCxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICAgIGNvZGU6ICdMSU5LX1BST0dSQU1fUkVTUE9OU0lCSUxJVElFUycsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDpcclxuICAgICAgICAgICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvYXNzZXNzbWVudHMuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnTElOSyBBTiBBU1NFU1NNRU5UJyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICdMSU5LIEFOIEFTU0VTU01FTlQnLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOiBgQXNzZXNzbWVudHMgYWxsb3cgeW91IHRvIGFzc29jaWF0ZSBvdXRjb21lIGJhc2VkIHF1ZXN0aW9ubmFpcmVzIG9yIGNoZWNrbGlzdCBiYXNlZCBwcm9jZWR1cmVzIHdpdGggYSBwb2xpY3kuYCxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICAgIGNvZGU6ICdMSU5LX0FTU0VTU01FTlRTJyxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOlxyXG4gICAgICAgICAgJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9saW5rLWl0ZW1zLnN2ZycsXHJcbiAgICAgICAgbmFtZTogJ0xJTksgUkVMQVRFRCBQT0xJQ0lFUycsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnTElOSyBSRUxBVEVEIFBPTElDSUVTJyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTogYFRoZSBvcHRpb25zIGxldHMgeW91IGFzc29jaWF0ZSByZWxhdGVkIHBvbGljaWVzIGZvciBxdWljayByZWZlcmVuY2UsIGVuYWJsaW5nIHVzZXJzIHRvIHZpZXcgcmVsZXZhbnQgZG9jdW1lbnRzIGluIG9uZSBwbGFjZSBhbmQgZW5zdXJpbmcgcG9saWN5IGFsaWdubWVudC5gLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgICAgY29kZTogJ0xJTktfUkVMQVRFRF9QT0xJQ0lFUycsXHJcbiAgICAgIH0sXHJcbiAgICBdLFxyXG4gICAgQ0FSOiBbXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDpcclxuICAgICAgICAgICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvb2JqZWN0aXZlcy5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdPYmplY3RpdmUnLFxyXG4gICAgICAgIGNvZGU6ICdPQkpFQ1RJVkUnLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ09iamVjdGl2ZScsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6XHJcbiAgICAgICAgICAnVGhlIG9iamVjdGl2ZSBhbGxvd3MgeW91IHRvIHNwZWNpZnkgYW4gb2JqZWN0aXZlIGZvciB0aGUgcmVzcG9uc2liaWxpdHkuJyxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICB9LFxyXG5cclxuICAgICAgLy8ge1xyXG4gICAgICAvLyAgIGltYWdlVXJsOiAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L2NhdGVnb3J5LnN2ZycsXHJcbiAgICAgIC8vICAgbmFtZTogJ1Byb2dyYW0nLFxyXG4gICAgICAvLyAgIGNvZGU6ICdDQVRFR09SWScsXHJcbiAgICAgIC8vICAgdG9vbHRpcFRpdGxlOiAnUHJvZ3JhbScsXHJcbiAgICAgIC8vICAgdG9vbHRpcE1lc3NhZ2U6IGBQcm9ncmFtcyBlbmFibGUgeW91IHRvIGdyb3VwIHNpbWlsYXIgcmVzcG9uc2liaWxpdGllcyB0b2dldGhlci5cclxuICAgICAgLy8gICAgIEFsbG9jYXRpbmcgYSByZXNwb25zaWJpbGl0eSB0byBhIFByb2dyYW0gYWxsb3dzIHlvdSB0byB2aWV3IGEgZ3JvdXAgb3Igc2ltaWxhciByZXNwb25zaWJpbGl0aWVzIGF0IG9uY2UuXHJcbiAgICAgIC8vICAgICBJdCBhbHNvIGFsbG93cyB5b3UgdG8gdmlldyB0aGUgcGVyZm9ybWFuY2Ugb2YgdGhvc2UgY29sbGVjdGl2ZSByZXNwb25zaWJpbGl0aWVzLmAsXHJcbiAgICAgIC8vICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgIC8vICAgaGlkZGVuOiBmYWxzZSxcclxuICAgICAgLy8gfSxcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOlxyXG4gICAgICAgICAgJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9yZXNwb25zaWJpbGl0eS1jZW50ZXIuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnUmVzcG9uc2liaWxpdHkgQ2VudGVyJyxcclxuICAgICAgICBjb2RlOiAnUkMnLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ1Jlc3BvbnNpYmlsaXR5IENlbnRlcicsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6IGBSZXNwb25zaWJpbGl0eSBDZW50ZXJzIHJlcHJlc2VudCB5b3VyIG9yZ2FuaXphdGlvbmFsIGFuZCBvcGVyYXRpb25hbCBpbmZyYXN0cnVjdHVyZS48YnI+XHJcbiAgICAgICAgICBZb3UgY2FuIGFzc2lnbiBhIHJlc3BvbnNpYmlsaXR5IHRvIG9uZSBvciBtb3JlIFJlc3BvbnNpYmlsaXR5IENlbnRlcnMuIFdoZXJlIHlvdSBhc3NpZ24gYSByZXNwb25zaWJpbGl0eSB0byBhIFJlc3BvbnNpYmlsaXR5IENlbnRlcixcclxuICAgICAgICAgIHRoYXQgcmVzcG9uc2liaWxpdHkgd2lsbCBiZSBzaG93biBhcyBhIHJlc3BvbnNpYmlsaXR5IHRoYXQgaXMgcmVxdWlyZWQgdG8gYmUgY29tcGxldGVkIGJ5IHRoZSBSZXNwb25zaWJpbGl0eSBDZW50ZXIuXHJcbiAgICAgICAgICBUaGUgcGVyZm9ybWFuY2Ugb2YgYSByZXNwb25zaWJpbGl0eSBhc3NpZ25lZCB0byBhIFJlc3BvbnNpYmlsaXR5IENlbnRlciB3aWxsIGFsc28gY29udHJpYnV0ZSB0byB0aGUgb3ZlcmFsbCBwZXJmb3JtYW5jZSBvZiB0aGUgUmVzcG9uc2liaWxpdHkgQ2VudGVyLmAsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOlxyXG4gICAgICAgICAgJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9jYXRlZ29yeS5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdQcm9ncmFtJyxcclxuICAgICAgICBjb2RlOiAnUFJPR1JBTScsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnUHJvZ3JhbScsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6IGBQcm9ncmFtcyBlbmFibGUgeW91IHRvIGdyb3VwIHNpbWlsYXIgcmVzcG9uc2liaWxpdGllcyB0b2dldGhlci5cclxuICAgICAgICAgIEFsbG9jYXRpbmcgYSByZXNwb25zaWJpbGl0eSB0byBhIFByb2dyYW0gYWxsb3dzIHlvdSB0byB2aWV3IGEgZ3JvdXAgb3Igc2ltaWxhciByZXNwb25zaWJpbGl0aWVzIGF0IG9uY2UuXHJcbiAgICAgICAgICBJdCBhbHNvIGFsbG93cyB5b3UgdG8gdmlldyB0aGUgcGVyZm9ybWFuY2Ugb2YgdGhvc2UgY29sbGVjdGl2ZSByZXNwb25zaWJpbGl0aWVzLmAsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOlxyXG4gICAgICAgICAgJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9mb3JtYXQtZXZpZGVuY2Uuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnRm9ybWF0ICYgRXZpZGVuY2UnLFxyXG4gICAgICAgIGNvZGU6ICdGT1JNQVRFX0VWSURFTkNFJyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICcgRm9ybWF0ICYgRXZpZGVuY2UnLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOlxyXG4gICAgICAgICAgJ1lvdSBjYW4gdXBsb2FkIGEgZm9ybWF0IGZvciB0aGlzIHJlc3BvbnNpYmlsaXR5IGFuZCB5b3UgY2FuIGFsc28gcmVxdWlyZSBldmlkZW5jZSBvZiBjb21wbGV0aW9uIG9mIHRoZSByZXNwb25zaWJpbGl0eSB0byBiZSBwcm92aWRlZC4nLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDpcclxuICAgICAgICAgICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvYXNzZXNzbWVudHMuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnQXNzZXNzbWVudHMnLFxyXG4gICAgICAgIGNvZGU6ICdBU1NFU1NNRU5UJyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICcgQXNzZXNzbWVudHMnLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOlxyXG4gICAgICAgICAgJ0Fzc2Vzc21lbnRzIGFsbG93IHlvdSB0byBhc3NvY2lhdGUgb3V0Y29tZSBiYXNlZC1xdWVzdGlvbm5haXJlcyBvciBzZWxmLWFzc2Vzc21lbnQgcXVlc3Rpb25uYWlyZXMgd2l0aCBhIHJlc3BvbnNpYmlsaXR5LiBUaGVzZSBuZWVkIHRvIGJlIGNvbXBsZXRlZCBieSB0aGUgYXNzaWduZWUgYXMgYSBwYXJ0IG9mIGNvbXBsZXRpbmcgdGhlIHJlc3BvbnNpYmlsaXR5LicsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcclxuICAgICAgICBpc0Rpc2FibGVkOiBmYWxzZSxcclxuICAgICAgICBkaXNhYmxlZE1lc3NhZ2U6XHJcbiAgICAgICAgICAnQW4gYXNzZXNzbWVudCBjYW4gYmUgbGlua2VkIHdpdGggYSByZXNwb25zaWJpbGl0eSBvbmx5IGFmdGVyIHJlbW92aW5nIHRoZSBhc3NvY2lhdGVkIGNoZWNrcG9pbnRzLicsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDpcclxuICAgICAgICAgICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvY2hlY2twb2ludHMuc3ZnJyxcclxuICAgICAgICAvLyAgbmFtZTogJ0NoZWNrcG9pbnRzIDxzcGFuICpuZ0lmPVwiZmFsc2VcIiBjbGFzcz1cImNoZWNrcG9pbnQtdmVyc2lvblwiPlYyLjA8L3NwYW4+IDxpIGNsYXNzPVwiaWNvbnMgZGVwcmVjaWF0aW9uLWljb24gdngtZnMtMTYgdngtbWwtMlwiIGFwcFRvb2x0aXA9XCJUaGlzIGlzIGFuIG91dC1vZi1kYXRlIHZlcnNpb24gb2YgdGhlIENoZWNrcG9pbnRzIGZlYXR1cmUuIFRvIGFkZCBjaGVja3BvaW50cyB0aGF0IGFyZSBvbmx5IHJlbGV2YW50IHRvIHRoaXMgcmVzcG9uc2liaWxpdHkgeW91IGNhbiB1c2UgdGhlIG5ldyBDaGVja3BvaW50cyBmZWF0dXJlLiBBbHRlcm5hdGl2ZWx5LCB5b3UgY2FuIHVzZSBhbiBleGlzdGluZyBxdWVzdGlvbm5haXJlIHRlbXBsYXRlIHVzaW5nIHRoZSBBc3Nlc3NtZW50cyBmZWF0dXJlLlwiIHBsYWNlbWVudD1cImJvdHRvbVwiIGRlbGF5PVwiMFwiIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIj4mI3hlOTMwOzwvaT4nLFxyXG4gICAgICAgIG5hbWU6ICdDaGVja3BvaW50cyA8aSBjbGFzcz1cImljb25zIGRlcHJlY2lhdGlvbi1pY29uIHZ4LWZzLTE2IHZ4LW1sLTJcIiBhcHBUb29sdGlwPVwiVGhpcyBpcyBhbiBvdXQtb2YtZGF0ZSB2ZXJzaW9uIG9mIHRoZSBDaGVja3BvaW50cyBmZWF0dXJlLiBUbyBhZGQgY2hlY2twb2ludHMgdGhhdCBhcmUgb25seSByZWxldmFudCB0byB0aGlzIHJlc3BvbnNpYmlsaXR5IHlvdSBjYW4gdXNlIHRoZSBuZXcgQ2hlY2twb2ludHMgZmVhdHVyZS4gQWx0ZXJuYXRpdmVseSwgeW91IGNhbiB1c2UgYW4gZXhpc3RpbmcgcXVlc3Rpb25uYWlyZSB0ZW1wbGF0ZSB1c2luZyB0aGUgQXNzZXNzbWVudHMgZmVhdHVyZS5cIiBwbGFjZW1lbnQ9XCJib3R0b21cIiBkZWxheT1cIjBcIiBbdG9vbHRpcE1hbmRhdG9yeV09XCJ0cnVlXCI+JiN4ZTkzMDs8L2k+JyxcclxuICAgICAgICBjb2RlOiAnQ0hFQ0tQT0lOVFMnLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ0NoZWNrcG9pbnRzJyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTpcclxuICAgICAgICAgICdUaGlzIGlzIGFuIG91dC1vZi1kYXRlIHZlcnNpb24gb2YgdGhlIENoZWNrcG9pbnRzIGZlYXR1cmUuIFRvIGFkZCBjaGVja3BvaW50cyB0aGF0IGFyZSBvbmx5IHJlbGV2YW50IHRvIHRoaXMgcmVzcG9uc2liaWxpdHkgeW91IGNhbiB1c2UgdGhlIG5ldyBDaGVja3BvaW50cyBmZWF0dXJlLiBBbHRlcm5hdGl2ZWx5LCB5b3UgY2FuIHVzZSBhbiBleGlzdGluZyBxdWVzdGlvbm5haXJlIHRlbXBsYXRlIHVzaW5nIHRoZSBBc3Nlc3NtZW50cyBmZWF0dXJlLicsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcclxuICAgICAgICBpc0Rpc2FibGVkOiBmYWxzZSxcclxuICAgICAgICBkaXNhYmxlZE1lc3NhZ2U6XHJcbiAgICAgICAgICAnVGhlIGNoZWNrcG9pbnRzIGZlYXR1cmUgaXMgcmVwbGFjZWQgd2l0aCB0aGUgbmV3ICYgZW5oYW5jZWQgYXNzZXNzbWVudCBmdW5jdGlvbmFsaXR5LiBTZWxlY3QgdGhlIDxzdHJvbmc+QXNzZXNzbWVudHM8L3N0cm9uZz4gb3B0aW9uIGJlbG93IHRvIGNyZWF0ZSBpbnRlcmFjdGl2ZSBvdXRjb21lLWJhc2VkIG9yIHNlbGYtYXNzZXNzbWVudCBxdWVzdGlvbm5haXJlcy4nLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6XHJcbiAgICAgICAgICAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L2NoZWNrcG9pbnRzLnN2ZycsXHJcbiAgICAgICAgbmFtZTogJ0NoZWNrcG9pbnRzJyxcclxuICAgICAgICBjb2RlOiAnQ0hFQ0tQT0lOVFNfTkVXJyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICdDaGVja3BvaW50cycsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6XHJcbiAgICAgICAgICAnQ2hlY2twb2ludHMgYWxsb3cgeW91IHRvIHNwZWNpZnkgbXVsdGlwbGUgc3RlcHMgZm9yIGEgc3BlY2lmaWMgcmVzcG9uc2liaWxpdHkgd2hpY2ggbmVlZCB0byBiZSBjb21wbGV0ZWQgYXMgcGFydCBvZiBjb21wbGV0aW5nIHRoZSByZXNwb25zaWJpbGl0eS4gT2Z0ZW4gY2hlY2twb2ludHMgYXJlIHVzZWQgdG8gcmVwbGFjZSBpbnN0cnVjdGlvbiBtYW51YWxzLicsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcclxuICAgICAgICBpc0Rpc2FibGVkOiBmYWxzZSxcclxuICAgICAgICBkaXNhYmxlZE1lc3NhZ2U6XHJcbiAgICAgICAgICAnTmV3IENoZWNrcG9pbnRzIGNhbiBiZSBsaW5rZWQgd2l0aCBhIHJlc3BvbnNpYmlsaXR5IG9ubHkgYWZ0ZXIgcmVtb3ZpbmcgdGhlIG91dC1vZi1kYXRlIHZlcnNpb24gb2YgdGhlIENoZWNrcG9pbnRzLicsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDpcclxuICAgICAgICAgICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvcmlza3Muc3ZnJyxcclxuICAgICAgICBuYW1lOiAnUmlzayBDbGFzc2lmaWNhdGlvbicsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnUmlzayBDbGFzc2lmaWNhdGlvbicsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6XHJcbiAgICAgICAgICAnWW91IGNhbiBzcGVjaWZ5IHRoZSBsZXZlbCBvZiByaXNrIHRoYXQgdGhlIG9yZ2FuaXphdGlvbiB3aWxsIGJlIGV4cG9zZWQgdG8gaWYgdGhlIHJlc3BvbnNpYmlsaXR5IGlzIG5vdCBjb21wbGV0ZWQuJyxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICAgIGNvZGU6ICdSSVNLX0NMQVNTSUZJQ0FUSU9OJyxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOlxyXG4gICAgICAgICAgJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9yZXZpZXdlci5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdSZXZpZXdlcicsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnUmV2aWV3ZXInLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOlxyXG4gICAgICAgICAgJ0EgUmV2aWV3ZXIgaXMgYSBwZXJzb24gdGhhdCBpcyB0YXNrZWQgd2l0aCByZXZpZXdpbmcgdGhlIGNvbXBsZXRlZCByZXNwb25zaWJpbGl0eS4nLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgICAgY29kZTogJ1JFVklFV0VSJyxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOlxyXG4gICAgICAgICAgJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9vdmVyc2lnaHQuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnT3ZlcnNpZ2h0JyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICdPdmVyc2lnaHQnLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOiBgT3ZlcnNpZ2h0IGVuYWJsZXMgeW91IHRvIGRlc2lnbmF0ZSBwZXJzb25zIHRvIG92ZXJzZWUgdGhlIHJlc3BvbnNpYmlsaXR5LlxyXG4gICAgICAgICAgVGhlc2UgcGVyc29ucyB3aWxsIHJlY2VpdmUgZW1haWwgbm90aWZpY2F0aW9ucyBhYm91dCB0aGUgcGVyZm9ybWFuY2Ugb2YgdGhlIHJlc3BvbnNpYmlsaXR5Ljxicj5cclxuICAgICAgICAgIEFzIHRoZSBwZXJzb24gY3JlYXRpbmcgdGhlIHJlc3BvbnNpYmlsaXR5LCB5b3Ugd2lsbCBhdXRvbWF0aWNhbGx5IHJlY2VpdmUgZW1haWwgbm90aWZpY2F0aW9ucyBhYm91dCB0aGUgcGVyZm9ybWFuY2Ugb2YgdGhlIHJlc3BvbnNpYmlsaXR5LmAsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcclxuICAgICAgICBjb2RlOiAnT1ZFUlNFRVInLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6XHJcbiAgICAgICAgICAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L2F1ZGl0LnN2ZycsXHJcbiAgICAgICAgbmFtZTogJ0FTU1VSQU5DRScsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnQVNTVVJBTkNFJyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTpcclxuICAgICAgICAgICdTZWxlY3QgdGhlIHRlc3QgcGxhbiBjYXRlZ29yaWVzIHRoYXQgeW91IHdvdWxkIGxpa2UgdG8gYWRkIHRoaXMgcmVzcG9uc2liaWxpdHkgdG8uJyxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICAgIGNvZGU6ICdBU1NVUkFOQ0UnLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6XHJcbiAgICAgICAgICAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L2F1ZGl0LnN2ZycsXHJcbiAgICAgICAgbmFtZTogJ1JFUVVJUkVTIEFVRElUPycsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnUkVRVUlSRVMgQVVESVQ/JyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTpcclxuICAgICAgICAgICdTZWxlY3QgdGhlIGF1ZGl0IGNhdGVnb3JpZXMgdGhhdCB5b3Ugd291bGQgbGlrZSB0byBhZGQgdGhpcyByZXNwb25zaWJpbGl0eSB0by4nLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgICAgY29kZTogJ1JFUVVJUkVTX0FVRElUJyxcclxuICAgICAgICBpc0Rpc2FibGVkOiB0cnVlLFxyXG4gICAgICAgIGRpc2FibGVkTWVzc2FnZTpcclxuICAgICAgICAgICdUaGlzIHJlc3BvbnNpYmlsaXR5IGNhbiBiZSBzY2hlZHVsZWQgZm9yIGFuIGF1ZGl0IG9ubHkgYWZ0ZXIgdGhlIFJlc3BvbnNpYmlsaXR5IENlbnRlciBpcyBzZWxlY3RlZC4nLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6XHJcbiAgICAgICAgICAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L2xpbmstaXRlbXMuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnTElOSyBHUkMgT0JKRUNUKFMpJyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICdMSU5LIE9USEVSIEdSQyBPQkpFQ1RTJyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTogYFRoaXMgb3B0aW9uIGxldHMgeW91IGxpbmsgYSByZXNwb25zaWJpbGl0eSB3aXRoIHJlbGF0ZWQgR1JDIE9iamVjdHMuYCxcclxuICAgICAgICBkaXNhYmxlZE1lc3NhZ2U6IGBZb3UgY2FuIGxpbmsgYSBHUkMgT2JqZWN0IHdpdGggdGhpcyByZXNwb25zaWJpbGl0eSBvbmx5IGFmdGVyIHlvdSBoYXZlIHNlbGVjdGVkIGEgUmVzcG9uc2liaWxpdHkgQ2VudGVyLmAsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcclxuICAgICAgICBpc0Rpc2FibGVkOiB0cnVlLFxyXG4gICAgICAgIGNvZGU6ICdHUkNfT0JKRUNUUycsXHJcbiAgICAgIH0sXHJcbiAgICBdLFxyXG4gICAgQ0FTOiBbXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDpcclxuICAgICAgICAgICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvcmVzcG9uc2liaWxpdHktY2VudGVyLnN2ZycsXHJcbiAgICAgICAgbmFtZTogJ1Jlc3BvbnNpYmlsaXR5IENlbnRlcicsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnJyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTogJycsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOlxyXG4gICAgICAgICAgJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9mb3JtYXQtZXZpZGVuY2Uuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnRm9ybWF0ICZhbXA7IEV2aWRlbmNlJyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICcnLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOiAnJyxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6XHJcbiAgICAgICAgICAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L292ZXJzaWdodC5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdPdmVyc2lnaHQnLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJycsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6ICcnLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgIH0sXHJcbiAgICBdLFxyXG5cclxuICAgIExBSTogW1xyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6XHJcbiAgICAgICAgICAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L2V4Y2VwdGlvbi10eXBlLnN2ZycsXHJcbiAgICAgICAgbmFtZTogJ0V4Y2VwdGlvbiB0eXBlJyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICdFeGNlcHRpb24gdHlwZScsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6XHJcbiAgICAgICAgICAnRXhjZXB0aW9uIHR5cGUgbGV0cyB5b3Ugc3BlY2lmeSB3aGV0aGVyIHRoZXJlIGlzIGEgZGVzaWduIG9yIGFuIG9wZXJhdGlvbmFsIGVmZmVjdGl2ZW5lc3MgcHJvYmxlbS4nLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgICAgY29kZTogJ0VYQ0VQVElPTl9UWVBFJyxcclxuICAgICAgfSxcclxuICAgICAgLy8ge1xyXG4gICAgICAvLyAgIGltYWdlVXJsOiAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L2lzc3VlLXR5cGUuc3ZnJyxcclxuICAgICAgLy8gICBuYW1lOiAnSXNzdWUgdHlwZScsXHJcbiAgICAgIC8vICAgdG9vbHRpcFRpdGxlOiAnJyxcclxuICAgICAgLy8gICB0b29sdGlwTWVzc2FnZTogJycsXHJcbiAgICAgIC8vICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgIC8vICAgaGlkZGVuOiBmYWxzZSxcclxuICAgICAgLy8gICBjb2RlOiAnSVNTVUVfVFlQRSdcclxuICAgICAgLy8gfSxcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOlxyXG4gICAgICAgICAgJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9wcmlvcml0eS5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdQcmlvcml0eScsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnUHJpb3JpdHknLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOlxyXG4gICAgICAgICAgJ1RoaXMgc2V0cyB0aGUgcHJpb3JpdHkgbGV2ZWwgZm9yIHJlc29sdmluZyBlYWNoIGlzc3VlLicsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcclxuICAgICAgICBjb2RlOiAnUFJJT1JJVFknLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6XHJcbiAgICAgICAgICAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L2Fzc29jaWF0ZWQtcmlza3Muc3ZnJyxcclxuICAgICAgICBuYW1lOiAnQXNzb2NpYXRlZCBSaXNrcycsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnQXNzb2NpYXRlZCBSaXNrcycsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6XHJcbiAgICAgICAgICAnQXNzb2NpYXRlZCByaXNrcyBsZXRzIHlvdSBzcGVjaWZ5IHRoZSByaXNrcyB0aGF0IGFyZSByZWxhdGVkIHRvIHRoaXMgaXNzdWUuJyxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICAgIGNvZGU6ICdBU1NPQ0lBVEVEX1JJU0tTJyxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOlxyXG4gICAgICAgICAgJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9vdmVyc2lnaHQuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnT3ZlcnNpZ2h0JyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICdPdmVyc2lnaHQnLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOlxyXG4gICAgICAgICAgJ092ZXJzaWdodHMgYXJlIHRoZSBwZXJzb25zIHJlc3BvbnNpYmxlIGZvciBvdmVyc2VlaW5nIGFuIGlzc3VlLiBUaGVzZSBwZXJzb25zIHdpbGwgcmVjZWl2ZSBlbWFpbCBub3RpZmljYXRpb25zIGFib3V0IHRoZSBpc3N1ZSBzdGF0dXMuIEFzIHRoZSBwZXJzb24gcmVwb3J0aW5nIHRoaXMgaXNzdWUsIHlvdSB3aWxsIGF1dG9tYXRpY2FsbHkgcmVjZWl2ZSBzdWNoIGVtYWlsIG5vdGlmaWNhdGlvbnMuJyxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICAgIGNvZGU6ICdPVkVSU0lHSFQnLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6XHJcbiAgICAgICAgICAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L2Zvcm1hdC1ldmlkZW5jZS5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdFdmlkZW5jZScsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnRXZpZGVuY2UnLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOlxyXG4gICAgICAgICAgJ1lvdSBjYW4gcmVxdWlyZSB0aGF0IHRoZSBwZXJzb24gcmVzb2x2aW5nIHRoZSBpc3N1ZSB1cGxvYWRzIGV2aWRlbmNlIHRvIGNvbmZpcm0nLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgICAgY29kZTogJ0VWSURFTkNFJyxcclxuICAgICAgfSxcclxuICAgIF0sXHJcbiAgICBDQVBSOiBbXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDpcclxuICAgICAgICAgICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvcm9sZXMuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnUm9sZShTKScsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnUm9sZShzKScsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6IGBSb2xlKHMpIGxldCB5b3Ugc3BlY2lmeSB0aGUgdXNlcnMgdGhhdCBjYW4gYmUg4oCcT3duZXJz4oCdIG9mIGEgUHJvZ3JhbS5gLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgICAgY29kZTogJ1JPTEVTJyxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOlxyXG4gICAgICAgICAgJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9vd25lci5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdPd25lcihzKScsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnT3duZXIocyknLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOiBgT3duZXJzIGFyZSByZXNwb25zaWJsZSBmb3IgbWFuYWdpbmcgYSBQcm9ncmFtLiBPbmx5IE93bmVycyBjYW4gbWFrZSBjaGFuZ2VzIHRvIGEgUHJvZ3JhbSBhbmQgdGhlIHJlc3BvbnNpYmlsaXRpZXMgdGhhdCBhcmUgbGlua2VkIHdpdGggdGhlIFByb2dyYW0uPGJyPlxyXG4gICAgICAgIFRoZSA8Yj5LZXkgQWRtaW48L2I+IGFuZCBhbGwgPGI+QWRtaW48L2I+IHVzZXJzIHdpbGwgYmUgc2VsZWN0ZWQgYXMgdGhlIE93bmVycyBvZiBhIFByb2dyYW0gYnkgZGVmYXVsdC5cclxuICAgICAgICBgLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgICAgY29kZTogJ09XTkVSUycsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDpcclxuICAgICAgICAgICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvYXBwcm92YWwuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnQXBwcm92ZXInLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ0FwcHJvdmVyJyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTogYEFuIEFwcHJvdmVyIGlzIHJlc3BvbnNpYmxlIGZvciBhcHByb3ZpbmcgYSBQcm9ncmFtLiBXaGVyZSBhbiBBcHByb3ZlciBpcyBzZWxlY3RlZCwgdGhlIFByb2dyYW0gYW5kIGFsbCByZXNwb25zaWJpbGl0aWVzIGxpbmtlZCB3aXRoIHRoYXQgUHJvZ3JhbSB3aWxsIG9ubHkgY29tbWVuY2Ugb25jZSB0aGUgUHJvZ3JhbSBoYXMgYmVlbiBhcHByb3ZlZC5gLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogdHJ1ZSxcclxuICAgICAgICBjb2RlOiAnQVBQUk9WRVInLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6XHJcbiAgICAgICAgICAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L3JlY3VycmluZy5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdQcm9ncmFtIER1cmF0aW9uJyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICdQcm9ncmFtIER1cmF0aW9uJyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTpcclxuICAgICAgICAgICdQcm9ncmFtIER1cmF0aW9uIHJlZmVycyB0byB0aGUgZHVyYXRpb24gb2YgdGhlIFByb2dyYW0uIEEgUHJvZ3JhbSBjYW4gb2NjdXIgaW4gcGVycGV0dWl0eSwgb3IgaXQgY2FuIG9jY3VyIHVudGlsIHRoZSBlbmQgb2YgdGhlIGN1cnJlbnQgYnVzaW5lc3MgY3ljbGUgdGhhdCBoYXMgYmVlbiBzcGVjaWZpZWQgaW4gJyArXHJcbiAgICAgICAgICB0aGlzLmJ1c2luZXNzQ3ljbGU/LnNlbGVjdGVkQ3ljbGU/LmJ1c2luZXNzX2N5Y2xlICtcclxuICAgICAgICAgICcuICBBbGwgcmVzcG9uc2liaWxpdGllcyBsaW5rZWQgd2l0aCB0aGF0IFByb2dyYW0gd2lsbCBhbHNvIGhhdmUgdGhlIHNhbWUgUHJvZ3JhbSBEdXJhdGlvbi4nLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogdHJ1ZSxcclxuICAgICAgICBjb2RlOiAnUFJPR1JBTV9GUkVRVUVOQ1knLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6XHJcbiAgICAgICAgICAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L2xvY2stc2NvcGUuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnTG9jayB0aGUgUHJvZ3JhbSBTY29wZScsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnTG9jayB0aGUgUHJvZ3JhbSBTY29wZScsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6IGBJZiB0aGUgUHJvZ3JhbSBTY29wZSBpcyBsb2NrZWQsIG5laXRoZXIgdGhlIFByb2dyYW0gbm9yIHRoZSByZXNwb25zaWJpbGl0aWVzIGxpbmtlZCB3aXRoIHRoZSBQcm9ncmFtIGNhbiBiZSBlZGl0ZWQgb25jZSB0aGUgUHJvZ3JhbSBiZWdpbnMuIEluIG9yZGVyIHRvIGVkaXQgdGhlIFByb2dyYW0gb3IgdGhlIGxpbmtlZCByZXNwb25zaWJpbGl0aWVzLCB0aGUgUHJvZ3JhbSBkZXRhaWxzIHdpbGwgbmVlZCB0byBiZSBlZGl0ZWQuYCxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IHRydWUsXHJcbiAgICAgICAgY29kZTogJ1NDT1BFX0NIQU5HRVMnLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6XHJcbiAgICAgICAgICAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L3Jlc3BvbnNpYmlsaXR5LWNlbnRlci5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdSZXNwb25zaWJpbGl0eSBDZW50ZXInLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ1Jlc3BvbnNpYmlsaXR5IENlbnRlcicsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6IGBSZXNwb25zaWJpbGl0eSBDZW50ZXJzIHJlcHJlc2VudCB5b3VyIG9yZ2FuaXphdGlvbmFsIGFuZCBvcGVyYXRpb25hbCBpbmZyYXN0cnVjdHVyZS4gV2hlcmUgUmVzcG9uc2liaWxpdHkgQ2VudGVycyBhcmUgc2VsZWN0ZWQgd2hlbiBjcmVhdGluZyBhIFByb2dyYW0sIG9ubHkgdGhvc2UgUmVzcG9uc2liaWxpdGllcyBDZW50ZXJzIHdpbGwgYmUgYXZhaWxhYmxlIGZvciBzZWxlY3Rpb24gd2hlbiBjcmVhdGluZyBhIHJlc3BvbnNpYmlsaXR5IGxpbmtlZCB3aXRoIHRoZSBQcm9ncmFtLmAsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiB0cnVlLFxyXG4gICAgICAgIGNvZGU6ICdSQycsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDpcclxuICAgICAgICAgICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvd2hvLnN2ZycsXHJcbiAgICAgICAgbmFtZTogJ0Fzc2lnbmVlcycsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnQXNzaWduZWVzJyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTogYEFzc2lnbmVlcyBhcmUgcmVxdWlyZWQgdG8gY29tcGxldGUgdGhlIHJlc3BvbnNpYmlsaXRpZXMgdGhhdCBoYXZlIGJlZW4gYXNzaWduZWQgdG8gdGhlbS4gV2hlcmUgQXNzaWduZWVzIGFyZSBzZWxlY3RlZCB3aGVuIGNyZWF0aW5nIGEgUHJvZ3JhbSwgb25seSB0aG9zZSBBc3NpZ25lZXMgd2lsbCBiZSBhdmFpbGFibGUgZm9yIHNlbGVjdGlvbiB3aGVuIGNyZWF0aW5nIGEgcmVzcG9uc2liaWxpdHkgbGlua2VkIHdpdGggdGhlIFByb2dyYW0uYCxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IHRydWUsXHJcbiAgICAgICAgY29kZTogJ0FTU0lHTkVFUycsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDpcclxuICAgICAgICAgICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvcmV2aWV3ZXIuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnUmV2aWV3ZXJzJyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICdSZXZpZXdlcnMnLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOiBgUmV2aWV3ZXJzIGFyZSByZXF1aXJlZCB0byByZXZpZXcgcmVzcG9uc2liaWxpdGllcyBhZnRlciB0aGV5IGhhdmUgYmVlbiBjb21wbGV0ZWQuIFdoZXJlIFJldmlld2VycyBhcmUgc2VsZWN0ZWQgd2hlbiBjcmVhdGluZyBhIFByb2dyYW0sIG9ubHkgdGhvc2UgUmV2aWV3ZXJzIHdpbGwgYmUgYXZhaWxhYmxlIGZvciBzZWxlY3Rpb24gd2hlbiBjcmVhdGluZyBhIHJlc3BvbnNpYmlsaXR5IGxpbmtlZCB3aXRoIHRoZSBQcm9ncmFtLmAsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiB0cnVlLFxyXG4gICAgICAgIGNvZGU6ICdSRVZJRVdFUicsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDpcclxuICAgICAgICAgICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvb3ZlcnNpZ2h0LnN2ZycsXHJcbiAgICAgICAgbmFtZTogJ092ZXJzaWdodHMnLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ092ZXJzaWdodHMnLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOlxyXG4gICAgICAgICAgJ092ZXJzaWdodHMgcmVjZWl2ZSB1cGRhdGVzIHdoZW4gYSByZXNwb25zaWJpbGl0eSBpcyBjb21wbGV0ZWQsIGNvbXBsZXRlZCB3aXRoIGRlbGF5IG9yIG5vdCBjb21wbGV0ZWQuIFdoZXJlIE92ZXJzaWdodHMgYXJlIHNlbGVjdGVkIHdoZW4gY3JlYXRpbmcgYSBQcm9ncmFtLCBvbmx5IHRob3NlIE92ZXJzaWdodHMgd2lsbCBiZSBhdmFpbGFibGUgZm9yIHNlbGVjdGlvbiB3aGVuIGNyZWF0aW5nIGEgcmVzcG9uc2liaWxpdHkgbGlua2VkIHdpdGggdGhlIFByb2dyYW0uJyxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IHRydWUsXHJcbiAgICAgICAgY29kZTogJ09WRVJTRUVSJyxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOlxyXG4gICAgICAgICAgJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9hc3Nlc3NtZW50cy5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdBc3Nlc3NtZW50cycsXHJcbiAgICAgICAgY29kZTogJ0FTU0VTU01FTlQnLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJyBBc3Nlc3NtZW50cycsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6XHJcbiAgICAgICAgICAnQXNzZXNzbWVudHMgYXJlIGEgZGlnaXRhbCBmb3JtIHRoYXQgYXJlIGNyZWF0ZWQgaW4g4oCcQXNzZXNzbWVudOKAnSB3aXRoaW4gdGhlIENvbXBsaWFuY2UgTW9kdWxlLiBXaGVyZSBBc3Nlc3NtZW50cyBhcmUgc2VsZWN0ZWQgd2hlbiBjcmVhdGluZyBhIFByb2dyYW0sIG9ubHkgdGhvc2UgQXNzZXNzbWVudHMgd2lsbCBiZSBhdmFpbGFibGUgZm9yIHNlbGVjdGlvbiB3aGVuIGNyZWF0aW5nIGEgcmVzcG9uc2liaWxpdHkgbGlua2VkIHdpdGggdGhlIFByb2dyYW0uJyxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IHRydWUsXHJcbiAgICAgICAgaXNEaXNhYmxlZDogZmFsc2UsXHJcbiAgICAgICAgZGlzYWJsZWRNZXNzYWdlOlxyXG4gICAgICAgICAgJ0FuIGFzc2Vzc21lbnQgY2FuIGJlIGxpbmtlZCB3aXRoIGEgcmVzcG9uc2liaWxpdHkgb25seSBhZnRlciByZW1vdmluZyB0aGUgYXNzb2NpYXRlZCBjaGVja3BvaW50cy4nLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6XHJcbiAgICAgICAgICAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L2Zvcm1hdC1ldmlkZW5jZS5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdFdmlkZW5jZScsXHJcbiAgICAgICAgY29kZTogJ0ZPUk1BVEVfRVZJREVOQ0UnLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ0V2aWRlbmNlJyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTpcclxuICAgICAgICAgICdJZiBzZWxlY3RlZCwgZXZpZGVuY2Ugb2YgY29tcGxldGlvbiBvZiBhIHJlc3BvbnNpYmlsaXR5IHdpbGwgYmUgcmVxdWlyZWQgZm9yIGFsbCByZXNwb25zaWJpbGl0aWVzIHRoYXQgYXJlIGxpbmtlZCB3aXRoIHRoZSBQcm9ncmFtLiBBbiBBc3NpZ25vciwgYmVpbmcgdGhlIHBlcnNvbiB3aG8gY3JlYXRlcyB0aGUgcmVzcG9uc2liaWxpdHksIGNhbiBvdmVycmlkZSB0aGlzIG9wdGlvbiB3aGVuIGNyZWF0aW5nIGEgcmVzcG9uc2liaWxpdHkuJyxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IHRydWUsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDpcclxuICAgICAgICAgICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvY3VzdG9tLWZpZWxkcy5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdDdXN0b20gRmllbGQnLFxyXG4gICAgICAgIGNvZGU6ICdDVVNUT01fRklFTERTJyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICcgQ3VzdG9tIEZpZWxkJyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTpcclxuICAgICAgICAgICdXaGVyZSBhIGN1c3RvbSBmaWVsZCBpcyBzcGVjaWZpZWQsIGFsbCByZXNwb25zaWJpbGl0aWVzIGxpbmtlZCB3aXRoIGEgUHJvZ3JhbSB3aWxsIGNvbnRhaW4gdGhhdCBjdXN0b20gZmllbGQuIEN1c3RvbSBmaWVsZHMgZW5hYmxlIHRoZSBjb2xsZWN0aW9uIG9mIGFkZGl0aW9uYWwgbWV0YSBkYXRhLicsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcclxuICAgICAgfSxcclxuICAgIF0sXHJcbiAgICBHUkM6IFtcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOlxyXG4gICAgICAgICAgJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9saW5rLWl0ZW1zLnN2ZycsXHJcbiAgICAgICAgbmFtZTogJ0xJTksgUkVTUE9OU0lCSUxJVElFUycsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnTElOSyBSRVNQT05TSUJJTElUSUVTJyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTogYFRoaXMgb3B0aW9uIGxldHMgeW91IGxpbmsgYSBHUkMgT2JqZWN0IHdpdGggcmVsYXRlZCByZXNwb25zaWJpbGl0aWVzLmAsXHJcbiAgICAgICAgZGlzYWJsZWRNZXNzYWdlOlxyXG4gICAgICAgICAgJ1lvdSBjYW4gbGluayBhIHJlc3BvbnNpYmlsaXR5IHdpdGggdGhpcyBHUkMgT2JqZWN0IG9ubHkgYWZ0ZXIgeW91IGhhdmUgc2VsZWN0ZWQgdGhlIHJlbGV2YW50IFJlc3BvbnNpYmlsaXR5IENlbnRlci4nLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgICAgY29kZTogJ0xJTktfUFJPR1JBTScsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDpcclxuICAgICAgICAgICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvbGluay1yaXNrcy5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdMSU5LIFJJU0tTJyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICdMSU5LIFJJU0tTJyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTogYFRoaXMgb3B0aW9uIGxldHMgeW91IGxpbmsgYSBHUkMgT2JqZWN0IHdpdGggcmVsYXRlZCByaXNrcy5gLFxyXG4gICAgICAgIGRpc2FibGVkTWVzc2FnZTpcclxuICAgICAgICAgICdZb3UgY2FuIGxpbmsgYSByaXNrIHdpdGggdGhpcyBHUkMgT2JqZWN0IG9ubHkgYWZ0ZXIgeW91IGhhdmUgc2VsZWN0ZWQgdGhlIHJlbGV2YW50IFJlc3BvbnNpYmlsaXR5IENlbnRlci4nLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgICAgY29kZTogJ0xJTktfUklTS19DQVRFR09SSUVTX1JJU0tTJyxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOlxyXG4gICAgICAgICAgJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9saW5rLWl0ZW1zLnN2ZycsXHJcbiAgICAgICAgbmFtZTogJ0xJTksgT1RIRVIgR1JDIE9CSkVDVFMnLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ0xJTksgT1RIRVIgR1JDIE9CSkVDVFMnLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOiBgVGhpcyBvcHRpb24gbGV0cyB5b3UgbGluayBhIEdSQyBPYmplY3Qgd2l0aCBvdGhlciByZWxhdGVkIEdSQyBPYmplY3RzLmAsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcclxuICAgICAgICBjb2RlOiAnT1RIRVJfR1JDX09CSkVDVFMnLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6IExJTktTPy5jdXN0b21GaWVsZHMsXHJcbiAgICAgICAgbmFtZTogJ0dSQyBPYmplY3QgVHlwZSBBdHRyaWJ1dGVzJyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICdHUkMgT2JqZWN0IFR5cGUgQXR0cmlidXRlcycsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6IGBUaGlzIG9wdGlvbiBsZXRzIHlvdSBhZGQgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiByZWxhdGVkIHRvIGEgR1JDIE9iamVjdC5gLFxyXG4gICAgICAgIGRpc2FibGVkTWVzc2FnZTpcclxuICAgICAgICAgICdUaGVyZSBhcmUgbm8gYWRkaXRpb25hbCBhdHRyaWJ1dGVzIGxpbmtlZCB3aXRoIHRoaXMgR1JDIE9iamVjdCBUeXBlLicsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcclxuICAgICAgICBjb2RlOiAnQVRUUklCVVRFUycsXHJcbiAgICAgIH0sXHJcbiAgICBdLFxyXG4gIH07XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge31cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKFxyXG4gICAgICBjaGFuZ2VzPy5pc1Byb2dyYW1TZWxlY3RlZD8uY3VycmVudFZhbHVlICE9PVxyXG4gICAgICBjaGFuZ2VzPy5pc1Byb2dyYW1TZWxlY3RlZD8ucHJldmlvdXNWYWx1ZVxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMuaXNQcm9ncmFtU2VsZWN0ZWQgPSBjaGFuZ2VzLmlzUHJvZ3JhbVNlbGVjdGVkLmN1cnJlbnRWYWx1ZTtcclxuICAgIH1cclxuICAgIGlmICghdGhpcy5pc1JDU2VsZWN0ZWQpIHtcclxuICAgICAgaWYgKHRoaXMuY3VycmVudFdvcmtmbG93ID09PSAnQUFSJykge1xyXG4gICAgICAgIHRoaXMubW9yZU9wdGlvbnNMaXN0LkFBUi5mb3JFYWNoKChlbGU6IGFueSkgPT4ge1xyXG4gICAgICAgICAgLy8gaWYoZWxlLmNvZGUgPT09ICdBU1NVUkFOQ0UnKSB7XHJcbiAgICAgICAgICAvLyAgIGVsZS5jaGVja2VkID0gZmFsc2U7XHJcbiAgICAgICAgICAvLyB9XHJcbiAgICAgICAgICBpZiAoZWxlLmNvZGUgPT09ICdHUkNfT0JKRUNUUycpIHtcclxuICAgICAgICAgICAgZWxlLmNoZWNrZWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgZWxlLmlzRGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMubW9yZU9wdGlvbnNMaXN0LkNBUi5mb3JFYWNoKChlbGU6IGFueSkgPT4ge1xyXG4gICAgICAgICAgLy8gaWYoZWxlLmNvZGUgPT09ICdBU1NVUkFOQ0UnKSB7XHJcbiAgICAgICAgICAvLyAgIGVsZS5jaGVja2VkID0gZmFsc2U7XHJcbiAgICAgICAgICAvLyB9XHJcbiAgICAgICAgICBpZiAoWydSRVFVSVJFU19BVURJVCcsICdHUkNfT0JKRUNUUyddLmluY2x1ZGVzKGVsZS5jb2RlKSkge1xyXG4gICAgICAgICAgICBlbGUuY2hlY2tlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAodGhpcy5jdXJyZW50V29ya2Zsb3cgPT09ICdBQVInKSB7XHJcbiAgICAgICAgdGhpcy5tb3JlT3B0aW9uc0xpc3QuQUFSLmZvckVhY2goKGVsZTogYW55KSA9PiB7XHJcbiAgICAgICAgICAvLyBpZihlbGUuY29kZSA9PT0gJ0FTU1VSQU5DRScpIHtcclxuICAgICAgICAgIC8vICAgZWxlLmNoZWNrZWQgPSBmYWxzZTtcclxuICAgICAgICAgIC8vIH1cclxuICAgICAgICAgIGlmIChlbGUuY29kZSA9PT0gJ0dSQ19PQkpFQ1RTJykge1xyXG4gICAgICAgICAgICBlbGUuaXNEaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMubW9yZU9wdGlvbnNMaXN0LkNBUi5mb3JFYWNoKChlbGU6IGFueSkgPT4ge1xyXG4gICAgICAgICAgLy8gaWYoZWxlLmNvZGUgPT09ICdBU1NVUkFOQ0UnKSB7XHJcbiAgICAgICAgICAvLyAgIGVsZS5pc0Rpc2FibGVkID0gZmFsc2U7XHJcbiAgICAgICAgICAvLyB9XHJcbiAgICAgICAgICBpZiAoWydSRVFVSVJFU19BVURJVCcsICdHUkNfT0JKRUNUUyddLmluY2x1ZGVzKGVsZS5jb2RlKSkge1xyXG4gICAgICAgICAgICBlbGUuaXNEaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLmNoZWNrR1JDQXR0cmlidXRlcyh0aGlzLmlzQXR0cmlidXRlc0F2YWlsYWJsZSk7XHJcbiAgfVxyXG5cclxuICBjaGVja0dSQ0F0dHJpYnV0ZXModmFsdWU6IGFueSkge1xyXG4gICAgdGhpcy5tb3JlT3B0aW9uc0xpc3QuR1JDLmZvckVhY2goKGVsZTogYW55LCBpbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgIGlmIChlbGUuY29kZSA9PT0gJ0FUVFJJQlVURVMnKSB7XHJcbiAgICAgICAgZWxlLmlzRGlzYWJsZWQgPSAhdmFsdWU7XHJcbiAgICAgICAgaWYgKCF2YWx1ZSkge1xyXG4gICAgICAgICAgZWxlLmNoZWNrZWQgPSAhdmFsdWU7XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdE1vcmVPcHRpb24oZWxlLCBpbmRleCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGlmIChlbGUuY29kZSA9PT0gJ0xJTktfUFJPR1JBTScpIHtcclxuICAgICAgICBlbGUuaXNEaXNhYmxlZCA9ICF0aGlzLmlzUkNTZWxlY3RlZDtcclxuICAgICAgfVxyXG4gICAgICBpZiAoZWxlLmNvZGUgPT09ICdMSU5LX1JJU0tfQ0FURUdPUklFU19SSVNLUycpIHtcclxuICAgICAgICBlbGUuaXNEaXNhYmxlZCA9ICF0aGlzLmlzUkNTZWxlY3RlZDtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5mZWF0dXJlZmxhZ3JvbGUgPSB0aGlzLmFsbG93ZWRGZWF0dXJlPy5pc0ZlYXR1cmVFbmFibGVkKFxyXG4gICAgICAnZmZfcm9sZV9pbXByb3ZlbWVudHMnXHJcbiAgICApO1xyXG4gICAgdGhpcy5mZl9yY19saXN0aW5nID0gdGhpcy5hbGxvd2VkRmVhdHVyZS5pc0ZlYXR1cmVFbmFibGVkKCdmZl9yY19saXN0aW5nJyk7XHJcbiAgICB0aGlzLmZmX3JjX2xpc3RpbmdcclxuICAgICAgPyAodGhpcy5wZXJtaXNzaW9uVGV4dCA9ICdQZXJtaXNzaW9ucycpXHJcbiAgICAgIDogKHRoaXMucGVybWlzc2lvblRleHQgPSAnUGVybWlzc2lvbiBHcm91cChTKScpO1xyXG4gICAgdGhpcy5tb3JlT3B0aW9uc0xpc3QuQ0FQUlswXS5uYW1lID0gdGhpcy5wZXJtaXNzaW9uVGV4dDtcclxuICAgIHRoaXMubW9yZU9wdGlvbnNMaXN0LkNBUFJbMF0udG9vbHRpcFRpdGxlID0gdGhpcy5wZXJtaXNzaW9uVGV4dDtcclxuICAgIHRoaXMubW9yZU9wdGlvbnNMaXN0LkNBUFJbMV0udG9vbHRpcE1lc3NhZ2UgPSB0aGlzLmZlYXR1cmVmbGFncm9sZVxyXG4gICAgICA/IGBPd25lcnMgYXJlIHJlc3BvbnNpYmxlIGZvciBtYW5hZ2luZyBhIFByb2dyYW0uIE9ubHkgT3duZXJzIGNhbiBtYWtlIGNoYW5nZXMgdG8gYSBQcm9ncmFtIGFuZCB0aGUgcmVzcG9uc2liaWxpdGllcyB0aGF0IGFyZSBsaW5rZWQgd2l0aCB0aGUgUHJvZ3JhbS48YnI+XHJcbiAgICBUaGUgPGI+S2V5IFBvd2VyIFVzZXIgPC9iPiBhbmQgYWxsIDxiPlBvd2VyIFVzZXJzPC9iPiAgd2lsbCBiZSBzZWxlY3RlZCBhcyB0aGUgT3duZXJzIG9mIGEgUHJvZ3JhbSBieSBkZWZhdWx0LlxyXG4gICAgYFxyXG4gICAgICA6IGBPd25lcnMgYXJlIHJlc3BvbnNpYmxlIGZvciBtYW5hZ2luZyBhIFByb2dyYW0uIE9ubHkgT3duZXJzIGNhbiBtYWtlIGNoYW5nZXMgdG8gYSBQcm9ncmFtIGFuZCB0aGUgcmVzcG9uc2liaWxpdGllcyB0aGF0IGFyZSBsaW5rZWQgd2l0aCB0aGUgUHJvZ3JhbS48YnI+XHJcbiAgICBUaGUgPGI+S2V5IEFkbWluPC9iPiBhbmQgYWxsIDxiPkFkbWluPC9iPiB1c2VycyB3aWxsIGJlIHNlbGVjdGVkIGFzIHRoZSBPd25lcnMgb2YgYSBQcm9ncmFtIGJ5IGRlZmF1bHQuXHJcbiAgICBgO1xyXG4gICAgaWYgKHRoaXMuYWxsb3dlZEZlYXR1cmU/LmlzRmVhdHVyZUVuYWJsZWQoJ2ZmX3Byb2dyYW1fc2ltcGxpZnknKSkge1xyXG4gICAgICB0aGlzLm1vcmVPcHRpb25zTGlzdC5DQVBSWzBdLnRvb2x0aXBNZXNzYWdlID0gYCR7dGhpcy5wZXJtaXNzaW9uVGV4dH0gbGV0IHlvdSBzcGVjaWZ5IHRoZSB1c2VycyB0aGF0IGNhbiBiZSDigJxPd25lcnPigJ0gb2YgYSBQcm9ncmFtLmA7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLm1vcmVPcHRpb25zTGlzdC5DQVBSWzBdLnRvb2x0aXBNZXNzYWdlID0gYCR7dGhpcy5wZXJtaXNzaW9uVGV4dH0gbGV0IHlvdSBzcGVjaWZ5IHRoZSB1c2VycyB0aGF0IGNhbiBiZSDigJxPd25lcnPigJ0gYW5kIOKAnEFwcHJvdmVyc+KAnSBvZiBhIFByb2dyYW0uYDtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBpbmRleCA9IHRoaXMubW9yZU9wdGlvbnNMaXN0LkNBUi5maW5kSW5kZXgoXHJcbiAgICAgIChlbGU6IGFueSkgPT4gZWxlLmNvZGUgPT09ICdDSEVDS1BPSU5UUydcclxuICAgICk7XHJcbiAgICB0aGlzLm1vcmVPcHRpb25zTGlzdC5DQVJbaW5kZXhdLmhpZGRlbiA9XHJcbiAgICAgIHRoaXMuaXNFZGl0TW9kZSA9PT0gZmFsc2UgPyB0cnVlIDogZmFsc2U7XHJcbiAgICBjb25zdCBQcm9ncmFtSW5kZXggPSB0aGlzLm1vcmVPcHRpb25zTGlzdC5DQVIuZmluZEluZGV4KFxyXG4gICAgICAoZWxlOiBhbnkpID0+IGVsZS5jb2RlID09PSAnUFJPR1JBTSdcclxuICAgICk7XHJcbiAgICBpZiAoUHJvZ3JhbUluZGV4ID4gLTEpIHtcclxuICAgICAgdGhpcy5tb3JlT3B0aW9uc0xpc3QuQ0FSW1Byb2dyYW1JbmRleF0uaXNEaXNhYmxlZCA9IHRoaXMuaXNFZGl0TW9kZTtcclxuICAgIH1cclxuICAgIHRoaXMucHJvZ3JhbVNpbXBsaWZ5RmxhZyA9XHJcbiAgICAgIHRoaXMuYWxsb3dlZEZlYXR1cmU/LmlzRmVhdHVyZUVuYWJsZWQoJ2ZmX3Byb2dyYW1fc2ltcGxpZnknKSA/PyB0cnVlO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0TW9yZU9wdGlvbihldmVudDogYW55LCBpbmRleDogbnVtYmVyKSB7XHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMuY3VycmVudFdvcmtmbG93ID09PSAnQ0FSJyAmJlxyXG4gICAgICBldmVudC5jb2RlID09PSAnQ0hFQ0tQT0lOVFNfTkVXJyAmJlxyXG4gICAgICB0aGlzLm1vcmVPcHRpb25zTGlzdFt0aGlzLmN1cnJlbnRXb3JrZmxvd11baW5kZXhdPy5jaGVja2VkXHJcbiAgICApIHtcclxuICAgICAgZXZlbnRbJ2NoZWNrcG9pbnRfbmV3J10gPSB0cnVlO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLm1vcmVPcHRpb25zTGlzdFt0aGlzLmN1cnJlbnRXb3JrZmxvd10/Lmxlbmd0aCA+IGluZGV4KSB7XHJcbiAgICAgIGV2ZW50WydjaGVja3BvaW50X25ldyddID0gZmFsc2U7XHJcbiAgICAgIHRoaXMubW9yZU9wdGlvbnNMaXN0W3RoaXMuY3VycmVudFdvcmtmbG93XVtpbmRleF1bJ2NoZWNrZWQnXSA9XHJcbiAgICAgICAgIWV2ZW50LmNoZWNrZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5zZWxlY3RlZE9wdGlvbi5lbWl0KGV2ZW50KTtcclxuICB9XHJcblxyXG4gIHBvcHVsYXRlKGV2dDogYW55KSB7XHJcbiAgICBpZiAodGhpcy5jdXJyZW50V29ya2Zsb3cpIHtcclxuICAgICAgdGhpcy5tb3JlT3B0aW9uc0xpc3RbdGhpcy5jdXJyZW50V29ya2Zsb3ddLmZvckVhY2goKGVsZW1lbnQ6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChldnQuaW5jbHVkZXMoZWxlbWVudC5jb2RlKSkge1xyXG4gICAgICAgICAgZWxlbWVudC5jaGVja2VkID0gdHJ1ZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgZWxlbWVudC5jaGVja2VkID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChldnQuaW5jbHVkZXMoJ0NIRUNLUE9JTlRTX05FVycpKSB7XHJcbiAgICAgICAgICBpZiAoZWxlbWVudC5jb2RlID09PSAnQ0hFQ0tQT0lOVFMnKSB7XHJcbiAgICAgICAgICAgIGVsZW1lbnQuaXNEaXNhYmxlZCA9IHRydWU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoZWxlbWVudC5jb2RlID09PSAnQVNTRVNTTUVOVCcpIHtcclxuICAgICAgICAgICAgZWxlbWVudC5pc0Rpc2FibGVkID0gdHJ1ZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGV2dC5pbmNsdWRlcygnQVNTRVNTTUVOVCcpKSB7XHJcbiAgICAgICAgICBpZiAoZWxlbWVudC5jb2RlID09PSAnQ0hFQ0tQT0lOVFNfTkVXJykge1xyXG4gICAgICAgICAgICBlbGVtZW50LmlzRGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKGVsZW1lbnQuY29kZSA9PT0gJ0NIRUNLUE9JTlRTJykge1xyXG4gICAgICAgICAgICBlbGVtZW50LmlzRGlzYWJsZWQgPSBmYWxzZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGV2dC5pbmNsdWRlcygnQ0hFQ0tQT0lOVFMnKSkge1xyXG4gICAgICAgICAgaWYgKGVsZW1lbnQuY29kZSA9PT0gJ0NIRUNLUE9JTlRTX05FVycpIHtcclxuICAgICAgICAgICAgZWxlbWVudC5pc0Rpc2FibGVkID0gdHJ1ZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChlbGVtZW50LmNvZGUgPT09ICdBU1NFU1NNRU5UJykge1xyXG4gICAgICAgICAgICBlbGVtZW50LmlzRGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoZXZ0LmluY2x1ZGVzKCdQUk9HUkFNJykpIHtcclxuICAgICAgICAgIGlmIChlbGVtZW50LmNvZGUgPT09ICdQUk9HUkFNJyAmJiB0aGlzLmlzUHJvZ3JhbVNlbGVjdGVkKSB7XHJcbiAgICAgICAgICAgIGVsZW1lbnQuaXNEaXNhYmxlZCA9IHRydWU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcbiAgaGlkZUVsZW1lbnRzKGhpZGRlbkxpc3Q6IGFueSkge1xyXG4gICAgaWYgKHRoaXMuY3VycmVudFdvcmtmbG93KSB7XHJcbiAgICAgIHRoaXMubW9yZU9wdGlvbnNMaXN0W3RoaXMuY3VycmVudFdvcmtmbG93XS5mb3JFYWNoKChlbGVtZW50OiBhbnkpID0+IHtcclxuICAgICAgICBpZiAoaGlkZGVuTGlzdC5pbmNsdWRlcyhlbGVtZW50LmNvZGUpKSB7XHJcbiAgICAgICAgICBlbGVtZW50LmhpZGRlbiA9IHRydWU7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGVsZW1lbnQuaGlkZGVuID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlc2V0QWxsKHdvcmtmbG93VHlwZTogc3RyaW5nKSB7XHJcbiAgICBpZiAodGhpcy5tb3JlT3B0aW9uc0xpc3Rbd29ya2Zsb3dUeXBlXSkge1xyXG4gICAgICB0aGlzLm1vcmVPcHRpb25zTGlzdFt3b3JrZmxvd1R5cGVdLmZvckVhY2goKGVsZW1lbnQ6IGFueSkgPT4ge1xyXG4gICAgICAgIGVsZW1lbnQuY2hlY2tlZCA9IGZhbHNlO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHVwZGF0ZVByb2dyYW1Nb3JlT3B0aW9ucygpIHtcclxuICAgIGNvbnN0IGNvZGUgPSBbXHJcbiAgICAgICdQUk9HUkFNX0ZSRVFVRU5DWScsXHJcbiAgICAgICdTQ09QRV9DSEFOR0VTJyxcclxuICAgICAgJ1JDJyxcclxuICAgICAgJ0FTU0lHTkVFUycsXHJcbiAgICAgICdSRVZJRVdFUicsXHJcbiAgICAgICdPVkVSU0VFUicsXHJcbiAgICAgICdBU1NFU1NNRU5UJyxcclxuICAgICAgJ0ZPUk1BVEVfRVZJREVOQ0UnLFxyXG4gICAgXTtcclxuICAgIGlmIChcclxuICAgICAgdGhpcy5vcmdEZXRhaWxzPy5oYXNQcm9ncmFtRnVsbFBlcm1pc3Npb24gJiZcclxuICAgICAgdGhpcy5hbGxvd2VkRmVhdHVyZS5pc0ZlYXR1cmVFbmFibGVkKCdmZl9wcm9ncmFtX3NpbXBsaWZ5JylcclxuICAgICkge1xyXG4gICAgICB0aGlzLm1vcmVPcHRpb25zTGlzdD8uQ0FQUj8uZm9yRWFjaCgob3B0aW9uOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAoY29kZT8uaW5jbHVkZXMob3B0aW9uLmNvZGUpKSB7XHJcbiAgICAgICAgICBvcHRpb24uaGlkZGVuID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGlmICghdGhpcy5hbGxvd2VkRmVhdHVyZS5pc0ZlYXR1cmVFbmFibGVkKCdmZl9wcm9ncmFtX3NpbXBsaWZ5JykpIHtcclxuICAgICAgY29kZS5wdXNoKCdBUFBST1ZFUicpO1xyXG4gICAgICB0aGlzLm1vcmVPcHRpb25zTGlzdD8uQ0FQUj8uZm9yRWFjaCgob3B0aW9uOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAoY29kZT8uaW5jbHVkZXMob3B0aW9uLmNvZGUpKSB7XHJcbiAgICAgICAgICBvcHRpb24uaGlkZGVuID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPCEtLSA8cD5tb3JlLW9wdGlvbiB3b3JrcyE8L3A+IC0tPlxyXG48ZGl2IGNsYXNzPVwibW9yZS1vcHRpb25cIj5cclxuICA8ZGl2IGNsYXNzPVwibWVzc2FnZS1jb250YWluZXJcIj5cclxuICAgIDxpbWdcclxuICAgICAgc3JjPVwiaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L2FkZC1yaXNrLW1vcmUtb3B0aW9uLnN2Z1wiXHJcbiAgICAgIGFsdD1cIlwiXHJcbiAgICAvPlxyXG4gICAgPHAgKm5nSWY9XCJjdXJyZW50V29ya2Zsb3dcIj57eyBwbGFjZWhvbGRlclRleHRzW2N1cnJlbnRXb3JrZmxvd10gfX08L3A+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cIm1vcmUtb3B0aW9uc1wiPlxyXG4gICAgPHVsPlxyXG4gICAgICA8IS0tIDxkaXYgY2xhc3M9XCJtb3JlLW9wdGlvbnMtaGVhZGluZ1wiICpuZ0lmPVwiY3VycmVudFdvcmtmbG93ID09PSdDQVBSJ1wiPlBST0dSQU0gU0NPUEUgT1BUSU9OUzwvZGl2PiAtLT5cclxuICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICpuZ0Zvcj1cImxldCBkYXRhIG9mIG1vcmVPcHRpb25zTGlzdFtjdXJyZW50V29ya2Zsb3ddOyBsZXQgaSA9IGluZGV4XCJcclxuICAgICAgPlxyXG4gICAgICAgIDwhLS0gPGxpICpuZ0lmPVwiIWRhdGEuaGlkZGVuXCIgW2FwcFRvb2x0aXBdPVwiZGF0YS5pc0Rpc2FibGVkICYmICFpc1JjU2VsZWN0ZWQ/ICdUaGlzIHJlc3BvbnNpYmlsaXR5IGNhbiBiZSBzY2hlZHVsZWQgZm9yIGFuIGF1ZGl0IG9ubHkgYWZ0ZXIgdGhlIFJlc3BvbnNpYmlsaXR5IENlbnRlciBpcyBzZWxlY3RlZC4nIDogJydcIiBwbGFjZW1lbnQ9XCJyaWdodFwiIGRlbGF5PVwiMFwiIFt0b29sdGlwTWFuZGF0b3J5XT1cImRhdGEuaXNEaXNhYmxlZCAmJiAhaXNSY1NlbGVjdGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBbY2xhc3MuYWN0aXZlXT1cImRhdGEuY2hlY2tlZFwiIFtkaXNhYmxlZF09XCJkYXRhLmNvZGUgPT09ICdSQycgJiYgb3BlbmVkRnJvbSA9PT0gJ1JJU0tfVFJFQVRNRU5UJyAmJiBjdXJyZW50V29ya2Zsb3cgPT09ICdDQVInIHx8IChkYXRhLmlzRGlzYWJsZWQgJiYgIWlzUkNTZWxlY3RlZClcIiBbY2xhc3MuZGlzYWJsZWRdPVwiZGF0YS5pc0Rpc2FibGVkICYmICFpc1JDU2VsZWN0ZWRcIiAoY2xpY2spPVwiZGF0YS5jaGVja2VkID0gIWRhdGEuY2hlY2tlZDsgc2VsZWN0TW9yZU9wdGlvbihkYXRhKVwiPiAtLT5cclxuXHJcbiAgICAgICAgPGxpXHJcbiAgICAgICAgICAqbmdJZj1cIiFkYXRhLmhpZGRlblwiXHJcbiAgICAgICAgICBbYXBwVG9vbHRpcF09XCJcclxuICAgICAgICAgICAgZGF0YS5pc0Rpc2FibGVkIHx8XHJcbiAgICAgICAgICAgICgoKGRhdGEuY29kZSA9PT0gJ1JDJyAmJiAhaXNSY1NlbGVjdGVkKSB8fFxyXG4gICAgICAgICAgICAgIGRhdGEuY29kZSA9PT0gJ0FUVFJJQlVURVMnKSAmJlxyXG4gICAgICAgICAgICAgIGRhdGEuaXNEaXNhYmxlZClcclxuICAgICAgICAgICAgICA/IGRhdGE/LmRpc2FibGVkTWVzc2FnZVxyXG4gICAgICAgICAgICAgIDogJydcclxuICAgICAgICAgIFwiXHJcbiAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXHJcbiAgICAgICAgICBkZWxheT1cIjBcIlxyXG4gICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZGF0YS5pc0Rpc2FibGVkXCJcclxuICAgICAgICAgIGlkPVwibGlzdGRhdGFcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJkYXRhLmNoZWNrZWRcIlxyXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiXHJcbiAgICAgICAgICAgICAgKGRhdGEuY29kZSA9PT0gJ1JDJyAmJlxyXG4gICAgICAgICAgICAgICAgb3BlbmVkRnJvbSA9PT0gJ1JJU0tfVFJFQVRNRU5UJyAmJlxyXG4gICAgICAgICAgICAgICAgY3VycmVudFdvcmtmbG93ID09PSAnQ0FSJykgfHxcclxuICAgICAgICAgICAgICBkYXRhLmlzRGlzYWJsZWQgfHxcclxuICAgICAgICAgICAgICAoZGF0YS5pc0Rpc2FibGVkICYmICFpc1JDU2VsZWN0ZWQpXHJcbiAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RNb3JlT3B0aW9uKGRhdGEsIGkpXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCIhZGF0YS5jaGVja2VkXCIgY2xhc3M9XCJtb3JlLWljb25cIj5cclxuICAgICAgICAgICAgICA8aW1nIFtzcmNdPVwiZGF0YS5pbWFnZVVybFwiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgICAgICpuZ0lmPVwiZGF0YS5jaGVja2VkXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImNoZWNrSWNvblwiXHJcbiAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCA1MiA1MlwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8Y2lyY2xlXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImNoZWNrSWNvbl9fY2lyY2xlXCJcclxuICAgICAgICAgICAgICAgIGN4PVwiMjZcIlxyXG4gICAgICAgICAgICAgICAgY3k9XCIyNlwiXHJcbiAgICAgICAgICAgICAgICByPVwiMjVcIlxyXG4gICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY2hlY2tJY29uX19jaGVja1wiXHJcbiAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICAgICAgICBkPVwiTTE0LjEgMjcuMmw3LjEgNy4yIDE2LjctMTYuOFwiXHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJ2YWx1ZVwiXHJcbiAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJkYXRhPy5uYW1lXCJcclxuICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCJkYXRhPy5uYW1lXCJcclxuICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiXHJcbiAgICAgICAgICAgICAgZGVsYXk9XCIwXCJcclxuICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgID48L3NwYW4+XHJcbiAgICAgICAgICAgIDwhLS0gPHNwYW4gKm5nSWY9XCJkYXRhLmNvZGUgPT09J0NIRUNLUE9JTlRTX05FVydcIiBjbGFzcz1cImNoZWNrcG9pbnQtdmVyc2lvblwiPiBWMi4wPC9zcGFuPiAtLT5cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgY2xhc3M9XCJpY29uXCJcclxuICAgICAgICAgICAgKm5nSWY9XCJkYXRhLnRvb2x0aXBNZXNzYWdlICE9PSAnJ1wiXHJcbiAgICAgICAgICAgIGxpYlBvcG92ZXJIb3ZlclxyXG4gICAgICAgICAgICAobW91c2VvdmVyKT1cImRhdGFUb29sdGlwLnBvcG92ZXIoKVwiXHJcbiAgICAgICAgICAgIChtb3VzZWxlYXZlKT1cImRhdGFUb29sdGlwLmNsb3NlUG9wb3ZlcigpXCJcclxuICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxyXG4gICAgICAgICAgICA+PGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MWY7PC9pPjwvc3BhblxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgPHBvcG92ZXItaG92ZXIgI2RhdGFUb29sdGlwPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidngtaW5mby1jYXJkXCI+XHJcbiAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ2eC1pbmZvLWNhcmQtaGVhZFwiXHJcbiAgICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cImRhdGEudG9vbHRpcFRpdGxlXCJcclxuICAgICAgICAgICAgICA+PC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ2eC1pbmZvLWNhcmQtYm9keVwiXHJcbiAgICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cImRhdGEudG9vbHRpcE1lc3NhZ2VcIlxyXG4gICAgICAgICAgICAgID48L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L3BvcG92ZXItaG92ZXI+XHJcbiAgICAgICAgPC9saT5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBjbGFzcz1cIm1vcmUtb3B0aW9ucy1oZWFkaW5nIHZ4LW10LTJcIlxyXG4gICAgICAgICAgKm5nSWY9XCJjdXJyZW50V29ya2Zsb3cgPT09ICdDQVBSJyAmJiBpID09PSAyXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICBQUk9HUkFNIFNDT1BFIE9QVElPTlNcclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L3VsPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
799
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9yZS1vcHRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvbW9yZS1vcHRpb24vbW9yZS1vcHRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvbW9yZS1vcHRpb24vbW9yZS1vcHRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sR0FFUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0RBQWdELENBQUM7Ozs7OztBQU92RSxNQUFNLE9BQU8sbUJBQW1CO0lBUzlCLElBQTZCLHNCQUFzQixDQUFDLE9BQVk7UUFDOUQsSUFBSSxDQUFDLFVBQVUsR0FBRyxPQUFPLElBQUksSUFBSSxDQUFDO1FBQ2xDLElBQUksT0FBTyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsTUFBTSxFQUFFO1lBQzNDLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1NBQ2pDO0lBQ0gsQ0FBQztJQTRuQkQ7UUF6b0JTLG9CQUFlLEdBQUcsRUFBRSxDQUFDO1FBQ3JCLGVBQVUsR0FBRyxFQUFFLENBQUM7UUFDaEIsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNsQixtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDckMsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFDckIsc0JBQWlCLEdBQUcsS0FBSyxDQUFDO1FBUzFCLDBCQUFxQixHQUFZLElBQUksQ0FBQztRQUMvQyxvQkFBZSxHQUFZLEtBQUssQ0FBQztRQUNqQyx3QkFBbUIsR0FBWSxLQUFLLENBQUM7UUFDckMsa0JBQWEsR0FBWSxLQUFLLENBQUM7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QUFsQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0ksY0FBYztzQkFBdkIsTUFBTTtnQkFDRSxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUV1QixzQkFBc0I7c0JBQWxELEtBQUs7dUJBQUMsZ0JBQWdCO2dCQU1kLHFCQUFxQjtzQkFBN0IsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPbkNoYW5nZXMsXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBMSU5LUyB9IGZyb20gJy4uL3dvcmtmbG93L3NoYXJlZC9jb25zdGFudHMvY2RuLWxpbmsuY29uc3RhbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtbW9yZS1vcHRpb24nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9tb3JlLW9wdGlvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vbW9yZS1vcHRpb24uY29tcG9uZW50Lmxlc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIE1vcmVPcHRpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XHJcbiAgQElucHV0KCkgY3VycmVudFdvcmtmbG93ID0gJyc7XHJcbiAgQElucHV0KCkgb3BlbmVkRnJvbSA9ICcnO1xyXG4gIEBJbnB1dCgpIGlzRWRpdE1vZGUgPSBmYWxzZTtcclxuICBAT3V0cHV0KCkgc2VsZWN0ZWRPcHRpb24gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQElucHV0KCkgaXNSQ1NlbGVjdGVkID0gZmFsc2U7XHJcbiAgQElucHV0KCkgaXNQcm9ncmFtU2VsZWN0ZWQgPSBmYWxzZTtcclxuICBASW5wdXQoKSBhbGxvd2VkRmVhdHVyZTogYW55O1xyXG4gIG9yZ0RldGFpbHM6IGFueTtcclxuICBASW5wdXQoJ29yZ0RldGFpbHNEYXRhJykgc2V0IGdldE9yZ2FuaXphdGlvbkRldGFpbHMoZGV0YWlsczogYW55KSB7XHJcbiAgICB0aGlzLm9yZ0RldGFpbHMgPSBkZXRhaWxzID8/ICd7fSc7XHJcbiAgICBpZiAoZGV0YWlscyAmJiBPYmplY3Qua2V5cyhkZXRhaWxzKT8ubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMudXBkYXRlUHJvZ3JhbU1vcmVPcHRpb25zKCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIEBJbnB1dCgpIGlzQXR0cmlidXRlc0F2YWlsYWJsZTogYm9vbGVhbiA9IHRydWU7XHJcbiAgZmVhdHVyZWZsYWdyb2xlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHJvZ3JhbVNpbXBsaWZ5RmxhZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGZmX3JjX2xpc3Rpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwZXJtaXNzaW9uVGV4dDogc3RyaW5nID0gJ1Blcm1pc3Npb25zJztcclxuXHJcbiAgcGxhY2Vob2xkZXJUZXh0czogYW55ID0ge1xyXG4gICAgQUFSOiAnU2VsZWN0IHdoYXQgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiB5b3Ugd291bGQgbGlrZSB0byBpbmNsdWRlIGluIHRoZSByaXNrLicsXHJcbiAgICBDQVA6ICdTZWxlY3Qgd2hhdCBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIHlvdSB3b3VsZCBsaWtlIHRvIGluY2x1ZGUgaW4gdGhlIHBvbGljeS4nLFxyXG4gICAgQ0FSOiAnU2VsZWN0IHdoYXQgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiB5b3Ugd291bGQgbGlrZSB0byBpbmNsdWRlIGluIHRoZSByZXNwb25zaWJpbGl0eS4nLFxyXG4gICAgQ0FTOiAnU2VsZWN0IHdoYXQgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiB5b3Ugd291bGQgbGlrZSB0byBpbmNsdWRlIGluIHRoZSBzdXJ2ZXkuJyxcclxuICAgIExBSTogJ1NlbGVjdCB3aGF0IGFkZGl0aW9uYWwgaW5mb3JtYXRpb24geW91IHdvdWxkIGxpa2UgdG8gaW5jbHVkZSBpbiB0aGUgaXNzdWUuJyxcclxuICAgIENBUFI6ICdTZWxlY3Qgd2hhdCBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIHlvdSB3b3VsZCBsaWtlIHRvIGluY2x1ZGUgaW4gdGhlIHNjb3BlLicsXHJcbiAgICBHUkM6ICdTZWxlY3Qgd2hhdCBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIHlvdSB3b3VsZCBsaWtlIHRvIGluY2x1ZGUgaW4gdGhlIEdSQyBPYmplY3QuJyxcclxuICB9O1xyXG5cclxuICBidXNpbmVzc0N5Y2xlID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnYnVzaW5lc3NDeWNsZScpID8/ICd7fScpO1xyXG4gIG1vcmVPcHRpb25zTGlzdDogYW55ID0ge1xyXG4gICAgQUFSOiBbXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDpcclxuICAgICAgICAgICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvb3duZXIuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnUmlzayBPd25lcicsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnUmlzayBPd25lcicsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6XHJcbiAgICAgICAgICAnVGhpcyBpcyBlaXRoZXIgYSBwZXJzb24sIGRlcGFydG1lbnQgb3duZXIgb3IgYSBmdW5jdGlvbmFsIHJvbGUgd2l0aGluIHRoZSBvcmdhbml6YXRpb24gdGhhdCBvd25zIHRoZSByaXNrLiBFeGFtcGxlOiBGb3IgSVQgcmlzaywgdGhlIFJpc2sgT3duZXIgY291bGQgYmUgdGhlIFwiRGlyZWN0b3Igb2YgSVQgJiBTZWN1cml0eVwiLicsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcclxuICAgICAgICBjb2RlOiAnUklTS19PV05FUicsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDpcclxuICAgICAgICAgICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvb3ZlcnNpZ2h0LnN2ZycsXHJcbiAgICAgICAgbmFtZTogJ1Jpc2sgT3ZlcnNpZ2h0JyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICdSaXNrIE92ZXJzaWdodCcsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6XHJcbiAgICAgICAgICAnT3ZlcnNpZ2h0IGVuYWJsZXMgeW91IHRvIGRlc2lnbmF0ZSBwZXJzb25zIHRvIG92ZXJzZWUgdGhlIHJpc2sgbWFuYWdlbWVudCBwcm9jZXNzLicsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcclxuICAgICAgICBjb2RlOiAnT1ZFUlNFRVInLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6XHJcbiAgICAgICAgICAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L3ByaW9yaXR5LnN2ZycsXHJcbiAgICAgICAgbmFtZTogJ1Jpc2sgTWl0aWdhdGlvbiBQcmlvcml0eScsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnUmlzayBNaXRpZ2F0aW9uIFByaW9yaXR5JyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTpcclxuICAgICAgICAgICdUaGlzIHNldHMgdGhlIHByaW9yaXR5IGxldmVsIGZvciB0aGUgbWl0aWdhdGlvbiBvZiBlYWNoIHJpc2suJyxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICAgIGNvZGU6ICdNSVRJR0FUSU9OJyxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOlxyXG4gICAgICAgICAgJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9sYWJsZXMuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnUmlzayBMYWJlbCcsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnUmlzayBMYWJlbCcsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6XHJcbiAgICAgICAgICAnVGhpcyBvcHRpb24gbGV0cyB5b3Ugc3BlY2lmeSBpZiB0aGlzIGlzIGEgbmV3bHkgaWRlbnRpZmllZCByaXNrIG9yIGl0IGlzIGEgcmFwaWRseSBjaGFuZ2luZyByaXNrLicsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcclxuICAgICAgICBjb2RlOiAnUklTS19MQUJFTCcsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDpcclxuICAgICAgICAgICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvbGluay1pdGVtcy5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdMSU5LIEdSQyBPQkpFQ1QoUyknLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ0xJTksgT1RIRVIgR1JDIE9CSkVDVFMnLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOiBgVGhpcyBvcHRpb24gbGV0cyB5b3UgbGluayBhIHJpc2sgd2l0aCByZWxhdGVkIEdSQyBPYmplY3RzLmAsXHJcbiAgICAgICAgZGlzYWJsZWRNZXNzYWdlOiBgWW91IGNhbiBsaW5rIGEgR1JDIE9iamVjdCB3aXRoIHRoaXMgcmlzayBvbmx5IGFmdGVyIHlvdSBoYXZlIHNlbGVjdGVkIGEgUmVzcG9uc2liaWxpdHkgQ2VudGVyLmAsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcclxuICAgICAgICBpc0Rpc2FibGVkOiB0cnVlLFxyXG4gICAgICAgIGNvZGU6ICdHUkNfT0JKRUNUUycsXHJcbiAgICAgIH0sXHJcbiAgICBdLFxyXG4gICAgQ0FQOiBbXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDpcclxuICAgICAgICAgICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvcmVzcG9uc2liaWxpdHktY2VudGVyLnN2ZycsXHJcbiAgICAgICAgbmFtZTogJ1Jlc3BvbnNpYmlsaXR5IENlbnRlcicsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnUmVzcG9uc2liaWxpdHkgQ2VudGVyJyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTogYFJlc3BvbnNpYmlsaXR5IENlbnRlcnMgcmVwcmVzZW50IHlvdXIgb3JnYW5pemF0aW9uYWwgYW5kXHJcbiAgICAgICAgIG9wZXJhdGlvbmFsIGluZnJhc3RydWN0dXJlLiBZb3UgY2FuIGF0dHJpYnV0ZSBhIHBvbGljeSB0byBvbmUgb3IgbW9yZSBSZXNwb25zaWJpbGl0eSBDZW50ZXJzLlxyXG4gICAgICAgICAgV2hlcmUgeW91IGF0dHJpYnV0ZSBhIHBvbGljeSB0byBhIFJlc3BvbnNpYmlsaXR5IENlbnRlciwgdGhhdCBwb2xpY3kgd2lsbCBiZSBzaG93biBhcyBhIHBvbGljeVxyXG4gICAgICAgICAgIHRoYXQgaXMgcmVxdWlyZWQgdG8gYmUgYXR0ZXN0ZWQgYnkgYWxsIHRoZSBwZXJzb25zIGFzc29jaWF0ZWQgd2l0aCB0aGF0IFJlc3BvbnNpYmlsaXR5IENlbnRlci5cclxuICAgICAgICAgICAgVGhlIHBlcmZvcm1hbmNlIG9mIGEgcG9saWN5IGFzc2lnbmVkIHRvIGEgUmVzcG9uc2liaWxpdHkgQ2VudGVyIHdpbGwgYWxzbyBjb250cmlidXRlIHRvIHRoZVxyXG4gICAgICAgICAgICBvdmVyYWxsIHBlcmZvcm1hbmNlIG9mIHRoZSBSZXNwb25zaWJpbGl0eSBDZW50ZXIuYCxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICAgIGNvZGU6ICdSRVNQT05TSUJJTElUWV9DRU5URVInLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6XHJcbiAgICAgICAgICAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L2Fzc29jaWF0ZWQtcmlza3Muc3ZnJyxcclxuICAgICAgICBuYW1lOiAnVkVSU0lPTicsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnVmVyc2lvbicsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6IGBUaGlzIG9wdGlvbiBsZXRzIHlvdSBzcGVjaWZ5IHRoZSBvZmZsaW5lIHZlcnNpb24gbnVtYmVyIGZvciBhIHBvbGljeS4gSGVuY2UsIHlvdSBjYW4gaW5wdXQgdGhlIHZlcnNpb24gbnVtYmVyIG9mIHRoZSBkaWdpdGFsIG9yIHBoeXNpY2FsIGNvcHkgb2YgdGhlIHBvbGljeSBkb2N1bWVudCBmb3IgcmVjb3JkLWtlZXBpbmcgcHVycG9zZXMuYCxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICAgIGNvZGU6ICdWRVJTSU9OJyxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOlxyXG4gICAgICAgICAgJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9yZXZpZXdlci5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdSZXZpZXdlcicsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnUmV2aWV3ZXInLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOiBgVGhpcyBvcHRpb25zIGxldHMgeW91IHNwZWNpZnkgYSByZXZpZXcgbGlmZWN5Y2xlIGZvciB0aGUgcG9saWN5IGRvY3VtZW50LlxyXG4gICAgICAgICBZb3UgY2FuIHNlbGVjdCBhIHJldmlld2VyIGFuZCBkZXRlcm1pbmUgaG93IG9mdGVuIHRoZSBwb2xpY3kgbmVlZHMgdG8gYmUgcmV2aWV3ZWQuYCxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IHRydWUsXHJcbiAgICAgICAgY29kZTogJ1JFVklFV0VSJyxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOlxyXG4gICAgICAgICAgJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9jaGVja3BvaW50cy5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdDaGVja3BvaW50cycsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnQ2hlY2twb2ludHMnLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOiBgQ2hlY2twb2ludHMgZW5hYmxlIHlvdSB0byBjb25maXJtIGEgcGVyc29u4oCZcyB1bmRlcnN0YW5kaW5nIG9mIHRoZSBwb2xpY3kgZG9jdW1lbnQuXHJcbiAgICAgICAgIFlvdSBjYW4gY3JlYXRlIHF1ZXN0aW9ucyBiYXNlZCBvbiB0aGUgcG9saWN5IGNvbnRlbnQgYW5kIHJlcXVpcmUgdGhhdCB0aGUgcmVhZGVyIG9mIHRoZSBwb2xpY3lcclxuICAgICAgICAgYW5zd2VycyB0aGVzZSBxdWVzdGlvbnMgY29ycmVjdGx5IGJlZm9yZSBwcm9jZWVkaW5nIHRvIGNvbXBsZXRlIHRoZSBhdHRlc3RhdGlvbi5cclxuICAgICAgICBgLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogdHJ1ZSxcclxuICAgICAgICBjb2RlOiAnQ0hFQ0tQT0lOVFMnLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6XHJcbiAgICAgICAgICAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L292ZXJzaWdodC5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdPdmVyc2lnaHQnLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ092ZXJzaWdodCcsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6IGBPdmVyc2lnaHRzIGFyZSBwZXJzb25zIHdobyBvdmVyc2VlIHRoZSBwb2xpY3kuXHJcbiAgICAgICAgIFRoZXNlIHBlcnNvbnMgd2lsbCByZWNlaXZlIGVtYWlsIG5vdGlmaWNhdGlvbnMgYWJvdXQgdGhlIHBlcmZvcm1hbmNlIG9mIHRoZSBwb2xpY3kuXHJcbiAgICAgICAgIEFzIHRoZSBwZXJzb24gY3JlYXRpbmcgdGhlIHBvbGljeSwgeW91IHdpbGwgYXV0b21hdGljYWxseSByZWNlaXZlIGVtYWlsIG5vdGlmaWNhdGlvbnMgYWJvdXQgdGhlIHBlcmZvcm1hbmNlIG9mIHRoZSBwb2xpY3kuXHJcbiAgICAgICAgYCxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICAgIGNvZGU6ICdPVkVSU0VFUicsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDpcclxuICAgICAgICAgICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvZm9ybWF0LWV2aWRlbmNlLnN2ZycsXHJcbiAgICAgICAgbmFtZTogJ1JlbGF0ZWQgRG9jdW1lbnRzJyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICdSZWxhdGVkIERvY3VtZW50cycsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6IGBSZWxhdGVkIGRvY3VtZW50cyBhcmUgZmlsZXMgdGhhdCBtaWdodCBiZSByZWxhdGVkIHRvIHRoZSBwb2xpY3kuIFRoZXNlIGNvdWxkIGJlIGRvY3VtZW50cyB3aGljaCBhcmUgcmVsYXRlZFxyXG4gICAgICAgICB0byB0aGUgcG9saWN5IG9yIGFyZSBhIHN1YnNldCBvZiB0aGUgcG9saWN5IHRoYXQgaXMgYmVpbmcgY3JlYXRlZC5gLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgICAgY29kZTogJ1JFTEFURURfRE9DVU1FTlRTJyxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOlxyXG4gICAgICAgICAgJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9saW5rLWl0ZW1zLnN2ZycsXHJcbiAgICAgICAgbmFtZTogJ0xJTksgUFJPR1JBTVMgJiBSRVNQT05TSUJJTElUSUVTJyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICdMSU5LIFBST0dSQU1TICYgUkVTUE9OU0lCSUxJVElFUycsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6IGBUaGlzIG9wdGlvbiBhbGxvd3MgeW91IHRvIGFzc29jaWF0ZSBQcm9ncmFtcyAmIHJlc3BvbnNpYmlsaXRpZXMgZnJvbSB0aGUgQ29tcGxpYW5jZSBtb2R1bGUgd2l0aCBhIHBvbGljeS4gVGhlc2UgY291bGQgYmUgcHJvY2Vzc2VzIG9yIHByb2NlZHVyZXMgdGhhdCBtaWdodCBiZSBsaW5rZWQgdG8gYSBwb2xpY3kuYCxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICAgIGNvZGU6ICdMSU5LX1BST0dSQU1fUkVTUE9OU0lCSUxJVElFUycsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDpcclxuICAgICAgICAgICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvYXNzZXNzbWVudHMuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnTElOSyBBTiBBU1NFU1NNRU5UJyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICdMSU5LIEFOIEFTU0VTU01FTlQnLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOiBgQXNzZXNzbWVudHMgYWxsb3cgeW91IHRvIGFzc29jaWF0ZSBvdXRjb21lIGJhc2VkIHF1ZXN0aW9ubmFpcmVzIG9yIGNoZWNrbGlzdCBiYXNlZCBwcm9jZWR1cmVzIHdpdGggYSBwb2xpY3kuYCxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICAgIGNvZGU6ICdMSU5LX0FTU0VTU01FTlRTJyxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOlxyXG4gICAgICAgICAgJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9saW5rLWl0ZW1zLnN2ZycsXHJcbiAgICAgICAgbmFtZTogJ0xJTksgUkVMQVRFRCBQT0xJQ0lFUycsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnTElOSyBSRUxBVEVEIFBPTElDSUVTJyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTogYFRoaXMgb3B0aW9ucyBsZXRzIHlvdSBhc3NvY2lhdGUgcmVsYXRlZCBwb2xpY2llcyBmb3IgcXVpY2sgcmVmZXJlbmNlLCBlbmFibGluZyB1c2VycyB0byB2aWV3IHJlbGV2YW50IGRvY3VtZW50cyBpbiBvbmUgcGxhY2UgYW5kIGVuc3VyaW5nIHBvbGljeSBhbGlnbm1lbnQuYCxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICAgIGNvZGU6ICdMSU5LX1JFTEFURURfUE9MSUNJRVMnLFxyXG4gICAgICB9LFxyXG4gICAgXSxcclxuICAgIENBUjogW1xyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6XHJcbiAgICAgICAgICAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L29iamVjdGl2ZXMuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnT2JqZWN0aXZlJyxcclxuICAgICAgICBjb2RlOiAnT0JKRUNUSVZFJyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICdPYmplY3RpdmUnLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOlxyXG4gICAgICAgICAgJ1RoZSBvYmplY3RpdmUgYWxsb3dzIHlvdSB0byBzcGVjaWZ5IGFuIG9iamVjdGl2ZSBmb3IgdGhlIHJlc3BvbnNpYmlsaXR5LicsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcclxuICAgICAgfSxcclxuXHJcbiAgICAgIC8vIHtcclxuICAgICAgLy8gICBpbWFnZVVybDogJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9jYXRlZ29yeS5zdmcnLFxyXG4gICAgICAvLyAgIG5hbWU6ICdQcm9ncmFtJyxcclxuICAgICAgLy8gICBjb2RlOiAnQ0FURUdPUlknLFxyXG4gICAgICAvLyAgIHRvb2x0aXBUaXRsZTogJ1Byb2dyYW0nLFxyXG4gICAgICAvLyAgIHRvb2x0aXBNZXNzYWdlOiBgUHJvZ3JhbXMgZW5hYmxlIHlvdSB0byBncm91cCBzaW1pbGFyIHJlc3BvbnNpYmlsaXRpZXMgdG9nZXRoZXIuXHJcbiAgICAgIC8vICAgICBBbGxvY2F0aW5nIGEgcmVzcG9uc2liaWxpdHkgdG8gYSBQcm9ncmFtIGFsbG93cyB5b3UgdG8gdmlldyBhIGdyb3VwIG9yIHNpbWlsYXIgcmVzcG9uc2liaWxpdGllcyBhdCBvbmNlLlxyXG4gICAgICAvLyAgICAgSXQgYWxzbyBhbGxvd3MgeW91IHRvIHZpZXcgdGhlIHBlcmZvcm1hbmNlIG9mIHRob3NlIGNvbGxlY3RpdmUgcmVzcG9uc2liaWxpdGllcy5gLFxyXG4gICAgICAvLyAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAvLyAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgIC8vIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDpcclxuICAgICAgICAgICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvcmVzcG9uc2liaWxpdHktY2VudGVyLnN2ZycsXHJcbiAgICAgICAgbmFtZTogJ1Jlc3BvbnNpYmlsaXR5IENlbnRlcicsXHJcbiAgICAgICAgY29kZTogJ1JDJyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICdSZXNwb25zaWJpbGl0eSBDZW50ZXInLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOiBgUmVzcG9uc2liaWxpdHkgQ2VudGVycyByZXByZXNlbnQgeW91ciBvcmdhbml6YXRpb25hbCBhbmQgb3BlcmF0aW9uYWwgaW5mcmFzdHJ1Y3R1cmUuPGJyPlxyXG4gICAgICAgICAgWW91IGNhbiBhc3NpZ24gYSByZXNwb25zaWJpbGl0eSB0byBvbmUgb3IgbW9yZSBSZXNwb25zaWJpbGl0eSBDZW50ZXJzLiBXaGVyZSB5b3UgYXNzaWduIGEgcmVzcG9uc2liaWxpdHkgdG8gYSBSZXNwb25zaWJpbGl0eSBDZW50ZXIsXHJcbiAgICAgICAgICB0aGF0IHJlc3BvbnNpYmlsaXR5IHdpbGwgYmUgc2hvd24gYXMgYSByZXNwb25zaWJpbGl0eSB0aGF0IGlzIHJlcXVpcmVkIHRvIGJlIGNvbXBsZXRlZCBieSB0aGUgUmVzcG9uc2liaWxpdHkgQ2VudGVyLlxyXG4gICAgICAgICAgVGhlIHBlcmZvcm1hbmNlIG9mIGEgcmVzcG9uc2liaWxpdHkgYXNzaWduZWQgdG8gYSBSZXNwb25zaWJpbGl0eSBDZW50ZXIgd2lsbCBhbHNvIGNvbnRyaWJ1dGUgdG8gdGhlIG92ZXJhbGwgcGVyZm9ybWFuY2Ugb2YgdGhlIFJlc3BvbnNpYmlsaXR5IENlbnRlci5gLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDpcclxuICAgICAgICAgICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvY2F0ZWdvcnkuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnUHJvZ3JhbScsXHJcbiAgICAgICAgY29kZTogJ1BST0dSQU0nLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ1Byb2dyYW0nLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOiBgUHJvZ3JhbXMgZW5hYmxlIHlvdSB0byBncm91cCBzaW1pbGFyIHJlc3BvbnNpYmlsaXRpZXMgdG9nZXRoZXIuXHJcbiAgICAgICAgICBBbGxvY2F0aW5nIGEgcmVzcG9uc2liaWxpdHkgdG8gYSBQcm9ncmFtIGFsbG93cyB5b3UgdG8gdmlldyBhIGdyb3VwIG9yIHNpbWlsYXIgcmVzcG9uc2liaWxpdGllcyBhdCBvbmNlLlxyXG4gICAgICAgICAgSXQgYWxzbyBhbGxvd3MgeW91IHRvIHZpZXcgdGhlIHBlcmZvcm1hbmNlIG9mIHRob3NlIGNvbGxlY3RpdmUgcmVzcG9uc2liaWxpdGllcy5gLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDpcclxuICAgICAgICAgICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvZm9ybWF0LWV2aWRlbmNlLnN2ZycsXHJcbiAgICAgICAgbmFtZTogJ0Zvcm1hdCAmIEV2aWRlbmNlJyxcclxuICAgICAgICBjb2RlOiAnRk9STUFURV9FVklERU5DRScsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnIEZvcm1hdCAmIEV2aWRlbmNlJyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTpcclxuICAgICAgICAgICdZb3UgY2FuIHVwbG9hZCBhIGZvcm1hdCBmb3IgdGhpcyByZXNwb25zaWJpbGl0eSBhbmQgeW91IGNhbiBhbHNvIHJlcXVpcmUgZXZpZGVuY2Ugb2YgY29tcGxldGlvbiBvZiB0aGUgcmVzcG9uc2liaWxpdHkgdG8gYmUgcHJvdmlkZWQuJyxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6XHJcbiAgICAgICAgICAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L2Fzc2Vzc21lbnRzLnN2ZycsXHJcbiAgICAgICAgbmFtZTogJ0Fzc2Vzc21lbnRzJyxcclxuICAgICAgICBjb2RlOiAnQVNTRVNTTUVOVCcsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnIEFzc2Vzc21lbnRzJyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTpcclxuICAgICAgICAgICdBc3Nlc3NtZW50cyBhbGxvdyB5b3UgdG8gYXNzb2NpYXRlIG91dGNvbWUgYmFzZWQtcXVlc3Rpb25uYWlyZXMgb3Igc2VsZi1hc3Nlc3NtZW50IHF1ZXN0aW9ubmFpcmVzIHdpdGggYSByZXNwb25zaWJpbGl0eS4gVGhlc2UgbmVlZCB0byBiZSBjb21wbGV0ZWQgYnkgdGhlIGFzc2lnbmVlIGFzIGEgcGFydCBvZiBjb21wbGV0aW5nIHRoZSByZXNwb25zaWJpbGl0eS4nLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgICAgaXNEaXNhYmxlZDogZmFsc2UsXHJcbiAgICAgICAgZGlzYWJsZWRNZXNzYWdlOlxyXG4gICAgICAgICAgJ0FuIGFzc2Vzc21lbnQgY2FuIGJlIGxpbmtlZCB3aXRoIGEgcmVzcG9uc2liaWxpdHkgb25seSBhZnRlciByZW1vdmluZyB0aGUgYXNzb2NpYXRlZCBjaGVja3BvaW50cy4nLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6XHJcbiAgICAgICAgICAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L2NoZWNrcG9pbnRzLnN2ZycsXHJcbiAgICAgICAgLy8gIG5hbWU6ICdDaGVja3BvaW50cyA8c3BhbiAqbmdJZj1cImZhbHNlXCIgY2xhc3M9XCJjaGVja3BvaW50LXZlcnNpb25cIj5WMi4wPC9zcGFuPiA8aSBjbGFzcz1cImljb25zIGRlcHJlY2lhdGlvbi1pY29uIHZ4LWZzLTE2IHZ4LW1sLTJcIiBhcHBUb29sdGlwPVwiVGhpcyBpcyBhbiBvdXQtb2YtZGF0ZSB2ZXJzaW9uIG9mIHRoZSBDaGVja3BvaW50cyBmZWF0dXJlLiBUbyBhZGQgY2hlY2twb2ludHMgdGhhdCBhcmUgb25seSByZWxldmFudCB0byB0aGlzIHJlc3BvbnNpYmlsaXR5IHlvdSBjYW4gdXNlIHRoZSBuZXcgQ2hlY2twb2ludHMgZmVhdHVyZS4gQWx0ZXJuYXRpdmVseSwgeW91IGNhbiB1c2UgYW4gZXhpc3RpbmcgcXVlc3Rpb25uYWlyZSB0ZW1wbGF0ZSB1c2luZyB0aGUgQXNzZXNzbWVudHMgZmVhdHVyZS5cIiBwbGFjZW1lbnQ9XCJib3R0b21cIiBkZWxheT1cIjBcIiBbdG9vbHRpcE1hbmRhdG9yeV09XCJ0cnVlXCI+JiN4ZTkzMDs8L2k+JyxcclxuICAgICAgICBuYW1lOiAnQ2hlY2twb2ludHMgPGkgY2xhc3M9XCJpY29ucyBkZXByZWNpYXRpb24taWNvbiB2eC1mcy0xNiB2eC1tbC0yXCIgYXBwVG9vbHRpcD1cIlRoaXMgaXMgYW4gb3V0LW9mLWRhdGUgdmVyc2lvbiBvZiB0aGUgQ2hlY2twb2ludHMgZmVhdHVyZS4gVG8gYWRkIGNoZWNrcG9pbnRzIHRoYXQgYXJlIG9ubHkgcmVsZXZhbnQgdG8gdGhpcyByZXNwb25zaWJpbGl0eSB5b3UgY2FuIHVzZSB0aGUgbmV3IENoZWNrcG9pbnRzIGZlYXR1cmUuIEFsdGVybmF0aXZlbHksIHlvdSBjYW4gdXNlIGFuIGV4aXN0aW5nIHF1ZXN0aW9ubmFpcmUgdGVtcGxhdGUgdXNpbmcgdGhlIEFzc2Vzc21lbnRzIGZlYXR1cmUuXCIgcGxhY2VtZW50PVwiYm90dG9tXCIgZGVsYXk9XCIwXCIgW3Rvb2x0aXBNYW5kYXRvcnldPVwidHJ1ZVwiPiYjeGU5MzA7PC9pPicsXHJcbiAgICAgICAgY29kZTogJ0NIRUNLUE9JTlRTJyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICdDaGVja3BvaW50cycsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6XHJcbiAgICAgICAgICAnVGhpcyBpcyBhbiBvdXQtb2YtZGF0ZSB2ZXJzaW9uIG9mIHRoZSBDaGVja3BvaW50cyBmZWF0dXJlLiBUbyBhZGQgY2hlY2twb2ludHMgdGhhdCBhcmUgb25seSByZWxldmFudCB0byB0aGlzIHJlc3BvbnNpYmlsaXR5IHlvdSBjYW4gdXNlIHRoZSBuZXcgQ2hlY2twb2ludHMgZmVhdHVyZS4gQWx0ZXJuYXRpdmVseSwgeW91IGNhbiB1c2UgYW4gZXhpc3RpbmcgcXVlc3Rpb25uYWlyZSB0ZW1wbGF0ZSB1c2luZyB0aGUgQXNzZXNzbWVudHMgZmVhdHVyZS4nLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgICAgaXNEaXNhYmxlZDogZmFsc2UsXHJcbiAgICAgICAgZGlzYWJsZWRNZXNzYWdlOlxyXG4gICAgICAgICAgJ1RoZSBjaGVja3BvaW50cyBmZWF0dXJlIGlzIHJlcGxhY2VkIHdpdGggdGhlIG5ldyAmIGVuaGFuY2VkIGFzc2Vzc21lbnQgZnVuY3Rpb25hbGl0eS4gU2VsZWN0IHRoZSA8c3Ryb25nPkFzc2Vzc21lbnRzPC9zdHJvbmc+IG9wdGlvbiBiZWxvdyB0byBjcmVhdGUgaW50ZXJhY3RpdmUgb3V0Y29tZS1iYXNlZCBvciBzZWxmLWFzc2Vzc21lbnQgcXVlc3Rpb25uYWlyZXMuJyxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOlxyXG4gICAgICAgICAgJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9jaGVja3BvaW50cy5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdDaGVja3BvaW50cycsXHJcbiAgICAgICAgY29kZTogJ0NIRUNLUE9JTlRTX05FVycsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnQ2hlY2twb2ludHMnLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOlxyXG4gICAgICAgICAgJ0NoZWNrcG9pbnRzIGFsbG93IHlvdSB0byBzcGVjaWZ5IG11bHRpcGxlIHN0ZXBzIGZvciBhIHNwZWNpZmljIHJlc3BvbnNpYmlsaXR5IHdoaWNoIG5lZWQgdG8gYmUgY29tcGxldGVkIGFzIHBhcnQgb2YgY29tcGxldGluZyB0aGUgcmVzcG9uc2liaWxpdHkuIE9mdGVuIGNoZWNrcG9pbnRzIGFyZSB1c2VkIHRvIHJlcGxhY2UgaW5zdHJ1Y3Rpb24gbWFudWFscy4nLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgICAgaXNEaXNhYmxlZDogZmFsc2UsXHJcbiAgICAgICAgZGlzYWJsZWRNZXNzYWdlOlxyXG4gICAgICAgICAgJ05ldyBDaGVja3BvaW50cyBjYW4gYmUgbGlua2VkIHdpdGggYSByZXNwb25zaWJpbGl0eSBvbmx5IGFmdGVyIHJlbW92aW5nIHRoZSBvdXQtb2YtZGF0ZSB2ZXJzaW9uIG9mIHRoZSBDaGVja3BvaW50cy4nLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6XHJcbiAgICAgICAgICAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L3Jpc2tzLnN2ZycsXHJcbiAgICAgICAgbmFtZTogJ1Jpc2sgQ2xhc3NpZmljYXRpb24nLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ1Jpc2sgQ2xhc3NpZmljYXRpb24nLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOlxyXG4gICAgICAgICAgJ1lvdSBjYW4gc3BlY2lmeSB0aGUgbGV2ZWwgb2YgcmlzayB0aGF0IHRoZSBvcmdhbml6YXRpb24gd2lsbCBiZSBleHBvc2VkIHRvIGlmIHRoZSByZXNwb25zaWJpbGl0eSBpcyBub3QgY29tcGxldGVkLicsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcclxuICAgICAgICBjb2RlOiAnUklTS19DTEFTU0lGSUNBVElPTicsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDpcclxuICAgICAgICAgICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvcmV2aWV3ZXIuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnUmV2aWV3ZXInLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ1Jldmlld2VyJyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTpcclxuICAgICAgICAgICdBIFJldmlld2VyIGlzIGEgcGVyc29uIHRoYXQgaXMgdGFza2VkIHdpdGggcmV2aWV3aW5nIHRoZSBjb21wbGV0ZWQgcmVzcG9uc2liaWxpdHkuJyxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICAgIGNvZGU6ICdSRVZJRVdFUicsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDpcclxuICAgICAgICAgICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvb3ZlcnNpZ2h0LnN2ZycsXHJcbiAgICAgICAgbmFtZTogJ092ZXJzaWdodCcsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnT3ZlcnNpZ2h0JyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTogYE92ZXJzaWdodCBlbmFibGVzIHlvdSB0byBkZXNpZ25hdGUgcGVyc29ucyB0byBvdmVyc2VlIHRoZSByZXNwb25zaWJpbGl0eS5cclxuICAgICAgICAgIFRoZXNlIHBlcnNvbnMgd2lsbCByZWNlaXZlIGVtYWlsIG5vdGlmaWNhdGlvbnMgYWJvdXQgdGhlIHBlcmZvcm1hbmNlIG9mIHRoZSByZXNwb25zaWJpbGl0eS48YnI+XHJcbiAgICAgICAgICBBcyB0aGUgcGVyc29uIGNyZWF0aW5nIHRoZSByZXNwb25zaWJpbGl0eSwgeW91IHdpbGwgYXV0b21hdGljYWxseSByZWNlaXZlIGVtYWlsIG5vdGlmaWNhdGlvbnMgYWJvdXQgdGhlIHBlcmZvcm1hbmNlIG9mIHRoZSByZXNwb25zaWJpbGl0eS5gLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgICAgY29kZTogJ09WRVJTRUVSJyxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOlxyXG4gICAgICAgICAgJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9hdWRpdC5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdBU1NVUkFOQ0UnLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ0FTU1VSQU5DRScsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6XHJcbiAgICAgICAgICAnU2VsZWN0IHRoZSB0ZXN0IHBsYW4gY2F0ZWdvcmllcyB0aGF0IHlvdSB3b3VsZCBsaWtlIHRvIGFkZCB0aGlzIHJlc3BvbnNpYmlsaXR5IHRvLicsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcclxuICAgICAgICBjb2RlOiAnQVNTVVJBTkNFJyxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOlxyXG4gICAgICAgICAgJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9hdWRpdC5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdSRVFVSVJFUyBBVURJVD8nLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ1JFUVVJUkVTIEFVRElUPycsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6XHJcbiAgICAgICAgICAnU2VsZWN0IHRoZSBhdWRpdCBjYXRlZ29yaWVzIHRoYXQgeW91IHdvdWxkIGxpa2UgdG8gYWRkIHRoaXMgcmVzcG9uc2liaWxpdHkgdG8uJyxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICAgIGNvZGU6ICdSRVFVSVJFU19BVURJVCcsXHJcbiAgICAgICAgaXNEaXNhYmxlZDogdHJ1ZSxcclxuICAgICAgICBkaXNhYmxlZE1lc3NhZ2U6XHJcbiAgICAgICAgICAnVGhpcyByZXNwb25zaWJpbGl0eSBjYW4gYmUgc2NoZWR1bGVkIGZvciBhbiBhdWRpdCBvbmx5IGFmdGVyIHRoZSBSZXNwb25zaWJpbGl0eSBDZW50ZXIgaXMgc2VsZWN0ZWQuJyxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOlxyXG4gICAgICAgICAgJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9saW5rLWl0ZW1zLnN2ZycsXHJcbiAgICAgICAgbmFtZTogJ0xJTksgR1JDIE9CSkVDVChTKScsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnTElOSyBPVEhFUiBHUkMgT0JKRUNUUycsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6IGBUaGlzIG9wdGlvbiBsZXRzIHlvdSBsaW5rIGEgcmVzcG9uc2liaWxpdHkgd2l0aCByZWxhdGVkIEdSQyBPYmplY3RzLmAsXHJcbiAgICAgICAgZGlzYWJsZWRNZXNzYWdlOiBgWW91IGNhbiBsaW5rIGEgR1JDIE9iamVjdCB3aXRoIHRoaXMgcmVzcG9uc2liaWxpdHkgb25seSBhZnRlciB5b3UgaGF2ZSBzZWxlY3RlZCBhIFJlc3BvbnNpYmlsaXR5IENlbnRlci5gLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgICAgaXNEaXNhYmxlZDogdHJ1ZSxcclxuICAgICAgICBjb2RlOiAnR1JDX09CSkVDVFMnLFxyXG4gICAgICB9LFxyXG4gICAgXSxcclxuICAgIENBUzogW1xyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6XHJcbiAgICAgICAgICAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L3Jlc3BvbnNpYmlsaXR5LWNlbnRlci5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdSZXNwb25zaWJpbGl0eSBDZW50ZXInLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJycsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6ICcnLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDpcclxuICAgICAgICAgICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvZm9ybWF0LWV2aWRlbmNlLnN2ZycsXHJcbiAgICAgICAgbmFtZTogJ0Zvcm1hdCAmYW1wOyBFdmlkZW5jZScsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnJyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTogJycsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOlxyXG4gICAgICAgICAgJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9vdmVyc2lnaHQuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnT3ZlcnNpZ2h0JyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICcnLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOiAnJyxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICB9LFxyXG4gICAgXSxcclxuXHJcbiAgICBMQUk6IFtcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOlxyXG4gICAgICAgICAgJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9leGNlcHRpb24tdHlwZS5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdFeGNlcHRpb24gdHlwZScsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnRXhjZXB0aW9uIHR5cGUnLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOlxyXG4gICAgICAgICAgJ0V4Y2VwdGlvbiB0eXBlIGxldHMgeW91IHNwZWNpZnkgd2hldGhlciB0aGVyZSBpcyBhIGRlc2lnbiBvciBhbiBvcGVyYXRpb25hbCBlZmZlY3RpdmVuZXNzIHByb2JsZW0uJyxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICAgIGNvZGU6ICdFWENFUFRJT05fVFlQRScsXHJcbiAgICAgIH0sXHJcbiAgICAgIC8vIHtcclxuICAgICAgLy8gICBpbWFnZVVybDogJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9pc3N1ZS10eXBlLnN2ZycsXHJcbiAgICAgIC8vICAgbmFtZTogJ0lzc3VlIHR5cGUnLFxyXG4gICAgICAvLyAgIHRvb2x0aXBUaXRsZTogJycsXHJcbiAgICAgIC8vICAgdG9vbHRpcE1lc3NhZ2U6ICcnLFxyXG4gICAgICAvLyAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAvLyAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgIC8vICAgY29kZTogJ0lTU1VFX1RZUEUnXHJcbiAgICAgIC8vIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDpcclxuICAgICAgICAgICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvcHJpb3JpdHkuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnUHJpb3JpdHknLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ1ByaW9yaXR5JyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTpcclxuICAgICAgICAgICdUaGlzIHNldHMgdGhlIHByaW9yaXR5IGxldmVsIGZvciByZXNvbHZpbmcgZWFjaCBpc3N1ZS4nLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgICAgY29kZTogJ1BSSU9SSVRZJyxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOlxyXG4gICAgICAgICAgJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9hc3NvY2lhdGVkLXJpc2tzLnN2ZycsXHJcbiAgICAgICAgbmFtZTogJ0Fzc29jaWF0ZWQgUmlza3MnLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ0Fzc29jaWF0ZWQgUmlza3MnLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOlxyXG4gICAgICAgICAgJ0Fzc29jaWF0ZWQgcmlza3MgbGV0cyB5b3Ugc3BlY2lmeSB0aGUgcmlza3MgdGhhdCBhcmUgcmVsYXRlZCB0byB0aGlzIGlzc3VlLicsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcclxuICAgICAgICBjb2RlOiAnQVNTT0NJQVRFRF9SSVNLUycsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDpcclxuICAgICAgICAgICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvb3ZlcnNpZ2h0LnN2ZycsXHJcbiAgICAgICAgbmFtZTogJ092ZXJzaWdodCcsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnT3ZlcnNpZ2h0JyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTpcclxuICAgICAgICAgICdPdmVyc2lnaHRzIGFyZSB0aGUgcGVyc29ucyByZXNwb25zaWJsZSBmb3Igb3ZlcnNlZWluZyBhbiBpc3N1ZS4gVGhlc2UgcGVyc29ucyB3aWxsIHJlY2VpdmUgZW1haWwgbm90aWZpY2F0aW9ucyBhYm91dCB0aGUgaXNzdWUgc3RhdHVzLiBBcyB0aGUgcGVyc29uIHJlcG9ydGluZyB0aGlzIGlzc3VlLCB5b3Ugd2lsbCBhdXRvbWF0aWNhbGx5IHJlY2VpdmUgc3VjaCBlbWFpbCBub3RpZmljYXRpb25zLicsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcclxuICAgICAgICBjb2RlOiAnT1ZFUlNJR0hUJyxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOlxyXG4gICAgICAgICAgJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9mb3JtYXQtZXZpZGVuY2Uuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnRXZpZGVuY2UnLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ0V2aWRlbmNlJyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTpcclxuICAgICAgICAgICdZb3UgY2FuIHJlcXVpcmUgdGhhdCB0aGUgcGVyc29uIHJlc29sdmluZyB0aGUgaXNzdWUgdXBsb2FkcyBldmlkZW5jZSB0byBjb25maXJtJyxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICAgIGNvZGU6ICdFVklERU5DRScsXHJcbiAgICAgIH0sXHJcbiAgICBdLFxyXG4gICAgQ0FQUjogW1xyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6XHJcbiAgICAgICAgICAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L3JvbGVzLnN2ZycsXHJcbiAgICAgICAgbmFtZTogJ1JvbGUoUyknLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ1JvbGUocyknLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOiBgUm9sZShzKSBsZXQgeW91IHNwZWNpZnkgdGhlIHVzZXJzIHRoYXQgY2FuIGJlIOKAnE93bmVyc+KAnSBvZiBhIFByb2dyYW0uYCxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICAgIGNvZGU6ICdST0xFUycsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDpcclxuICAgICAgICAgICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvb3duZXIuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnT3duZXIocyknLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ093bmVyKHMpJyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTogYE93bmVycyBhcmUgcmVzcG9uc2libGUgZm9yIG1hbmFnaW5nIGEgUHJvZ3JhbS4gT25seSBPd25lcnMgY2FuIG1ha2UgY2hhbmdlcyB0byBhIFByb2dyYW0gYW5kIHRoZSByZXNwb25zaWJpbGl0aWVzIHRoYXQgYXJlIGxpbmtlZCB3aXRoIHRoZSBQcm9ncmFtLjxicj5cclxuICAgICAgICBUaGUgPGI+S2V5IEFkbWluPC9iPiBhbmQgYWxsIDxiPkFkbWluPC9iPiB1c2VycyB3aWxsIGJlIHNlbGVjdGVkIGFzIHRoZSBPd25lcnMgb2YgYSBQcm9ncmFtIGJ5IGRlZmF1bHQuXHJcbiAgICAgICAgYCxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICAgIGNvZGU6ICdPV05FUlMnLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6XHJcbiAgICAgICAgICAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L2FwcHJvdmFsLnN2ZycsXHJcbiAgICAgICAgbmFtZTogJ0FwcHJvdmVyJyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICdBcHByb3ZlcicsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6IGBBbiBBcHByb3ZlciBpcyByZXNwb25zaWJsZSBmb3IgYXBwcm92aW5nIGEgUHJvZ3JhbS4gV2hlcmUgYW4gQXBwcm92ZXIgaXMgc2VsZWN0ZWQsIHRoZSBQcm9ncmFtIGFuZCBhbGwgcmVzcG9uc2liaWxpdGllcyBsaW5rZWQgd2l0aCB0aGF0IFByb2dyYW0gd2lsbCBvbmx5IGNvbW1lbmNlIG9uY2UgdGhlIFByb2dyYW0gaGFzIGJlZW4gYXBwcm92ZWQuYCxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IHRydWUsXHJcbiAgICAgICAgY29kZTogJ0FQUFJPVkVSJyxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOlxyXG4gICAgICAgICAgJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9yZWN1cnJpbmcuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnUHJvZ3JhbSBEdXJhdGlvbicsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnUHJvZ3JhbSBEdXJhdGlvbicsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6XHJcbiAgICAgICAgICAnUHJvZ3JhbSBEdXJhdGlvbiByZWZlcnMgdG8gdGhlIGR1cmF0aW9uIG9mIHRoZSBQcm9ncmFtLiBBIFByb2dyYW0gY2FuIG9jY3VyIGluIHBlcnBldHVpdHksIG9yIGl0IGNhbiBvY2N1ciB1bnRpbCB0aGUgZW5kIG9mIHRoZSBjdXJyZW50IGJ1c2luZXNzIGN5Y2xlIHRoYXQgaGFzIGJlZW4gc3BlY2lmaWVkIGluICcgK1xyXG4gICAgICAgICAgdGhpcy5idXNpbmVzc0N5Y2xlPy5zZWxlY3RlZEN5Y2xlPy5idXNpbmVzc19jeWNsZSArXHJcbiAgICAgICAgICAnLiAgQWxsIHJlc3BvbnNpYmlsaXRpZXMgbGlua2VkIHdpdGggdGhhdCBQcm9ncmFtIHdpbGwgYWxzbyBoYXZlIHRoZSBzYW1lIFByb2dyYW0gRHVyYXRpb24uJyxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IHRydWUsXHJcbiAgICAgICAgY29kZTogJ1BST0dSQU1fRlJFUVVFTkNZJyxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOlxyXG4gICAgICAgICAgJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9sb2NrLXNjb3BlLnN2ZycsXHJcbiAgICAgICAgbmFtZTogJ0xvY2sgdGhlIFByb2dyYW0gU2NvcGUnLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ0xvY2sgdGhlIFByb2dyYW0gU2NvcGUnLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOiBgSWYgdGhlIFByb2dyYW0gU2NvcGUgaXMgbG9ja2VkLCBuZWl0aGVyIHRoZSBQcm9ncmFtIG5vciB0aGUgcmVzcG9uc2liaWxpdGllcyBsaW5rZWQgd2l0aCB0aGUgUHJvZ3JhbSBjYW4gYmUgZWRpdGVkIG9uY2UgdGhlIFByb2dyYW0gYmVnaW5zLiBJbiBvcmRlciB0byBlZGl0IHRoZSBQcm9ncmFtIG9yIHRoZSBsaW5rZWQgcmVzcG9uc2liaWxpdGllcywgdGhlIFByb2dyYW0gZGV0YWlscyB3aWxsIG5lZWQgdG8gYmUgZWRpdGVkLmAsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiB0cnVlLFxyXG4gICAgICAgIGNvZGU6ICdTQ09QRV9DSEFOR0VTJyxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOlxyXG4gICAgICAgICAgJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9yZXNwb25zaWJpbGl0eS1jZW50ZXIuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnUmVzcG9uc2liaWxpdHkgQ2VudGVyJyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICdSZXNwb25zaWJpbGl0eSBDZW50ZXInLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOiBgUmVzcG9uc2liaWxpdHkgQ2VudGVycyByZXByZXNlbnQgeW91ciBvcmdhbml6YXRpb25hbCBhbmQgb3BlcmF0aW9uYWwgaW5mcmFzdHJ1Y3R1cmUuIFdoZXJlIFJlc3BvbnNpYmlsaXR5IENlbnRlcnMgYXJlIHNlbGVjdGVkIHdoZW4gY3JlYXRpbmcgYSBQcm9ncmFtLCBvbmx5IHRob3NlIFJlc3BvbnNpYmlsaXRpZXMgQ2VudGVycyB3aWxsIGJlIGF2YWlsYWJsZSBmb3Igc2VsZWN0aW9uIHdoZW4gY3JlYXRpbmcgYSByZXNwb25zaWJpbGl0eSBsaW5rZWQgd2l0aCB0aGUgUHJvZ3JhbS5gLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogdHJ1ZSxcclxuICAgICAgICBjb2RlOiAnUkMnLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6XHJcbiAgICAgICAgICAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L3doby5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdBc3NpZ25lZXMnLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ0Fzc2lnbmVlcycsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6IGBBc3NpZ25lZXMgYXJlIHJlcXVpcmVkIHRvIGNvbXBsZXRlIHRoZSByZXNwb25zaWJpbGl0aWVzIHRoYXQgaGF2ZSBiZWVuIGFzc2lnbmVkIHRvIHRoZW0uIFdoZXJlIEFzc2lnbmVlcyBhcmUgc2VsZWN0ZWQgd2hlbiBjcmVhdGluZyBhIFByb2dyYW0sIG9ubHkgdGhvc2UgQXNzaWduZWVzIHdpbGwgYmUgYXZhaWxhYmxlIGZvciBzZWxlY3Rpb24gd2hlbiBjcmVhdGluZyBhIHJlc3BvbnNpYmlsaXR5IGxpbmtlZCB3aXRoIHRoZSBQcm9ncmFtLmAsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiB0cnVlLFxyXG4gICAgICAgIGNvZGU6ICdBU1NJR05FRVMnLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6XHJcbiAgICAgICAgICAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L3Jldmlld2VyLnN2ZycsXHJcbiAgICAgICAgbmFtZTogJ1Jldmlld2VycycsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnUmV2aWV3ZXJzJyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTogYFJldmlld2VycyBhcmUgcmVxdWlyZWQgdG8gcmV2aWV3IHJlc3BvbnNpYmlsaXRpZXMgYWZ0ZXIgdGhleSBoYXZlIGJlZW4gY29tcGxldGVkLiBXaGVyZSBSZXZpZXdlcnMgYXJlIHNlbGVjdGVkIHdoZW4gY3JlYXRpbmcgYSBQcm9ncmFtLCBvbmx5IHRob3NlIFJldmlld2VycyB3aWxsIGJlIGF2YWlsYWJsZSBmb3Igc2VsZWN0aW9uIHdoZW4gY3JlYXRpbmcgYSByZXNwb25zaWJpbGl0eSBsaW5rZWQgd2l0aCB0aGUgUHJvZ3JhbS5gLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogdHJ1ZSxcclxuICAgICAgICBjb2RlOiAnUkVWSUVXRVInLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6XHJcbiAgICAgICAgICAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L292ZXJzaWdodC5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdPdmVyc2lnaHRzJyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICdPdmVyc2lnaHRzJyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTpcclxuICAgICAgICAgICdPdmVyc2lnaHRzIHJlY2VpdmUgdXBkYXRlcyB3aGVuIGEgcmVzcG9uc2liaWxpdHkgaXMgY29tcGxldGVkLCBjb21wbGV0ZWQgd2l0aCBkZWxheSBvciBub3QgY29tcGxldGVkLiBXaGVyZSBPdmVyc2lnaHRzIGFyZSBzZWxlY3RlZCB3aGVuIGNyZWF0aW5nIGEgUHJvZ3JhbSwgb25seSB0aG9zZSBPdmVyc2lnaHRzIHdpbGwgYmUgYXZhaWxhYmxlIGZvciBzZWxlY3Rpb24gd2hlbiBjcmVhdGluZyBhIHJlc3BvbnNpYmlsaXR5IGxpbmtlZCB3aXRoIHRoZSBQcm9ncmFtLicsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiB0cnVlLFxyXG4gICAgICAgIGNvZGU6ICdPVkVSU0VFUicsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDpcclxuICAgICAgICAgICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvYXNzZXNzbWVudHMuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnQXNzZXNzbWVudHMnLFxyXG4gICAgICAgIGNvZGU6ICdBU1NFU1NNRU5UJyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICcgQXNzZXNzbWVudHMnLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOlxyXG4gICAgICAgICAgJ0Fzc2Vzc21lbnRzIGFyZSBhIGRpZ2l0YWwgZm9ybSB0aGF0IGFyZSBjcmVhdGVkIGluIOKAnEFzc2Vzc21lbnTigJ0gd2l0aGluIHRoZSBDb21wbGlhbmNlIE1vZHVsZS4gV2hlcmUgQXNzZXNzbWVudHMgYXJlIHNlbGVjdGVkIHdoZW4gY3JlYXRpbmcgYSBQcm9ncmFtLCBvbmx5IHRob3NlIEFzc2Vzc21lbnRzIHdpbGwgYmUgYXZhaWxhYmxlIGZvciBzZWxlY3Rpb24gd2hlbiBjcmVhdGluZyBhIHJlc3BvbnNpYmlsaXR5IGxpbmtlZCB3aXRoIHRoZSBQcm9ncmFtLicsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiB0cnVlLFxyXG4gICAgICAgIGlzRGlzYWJsZWQ6IGZhbHNlLFxyXG4gICAgICAgIGRpc2FibGVkTWVzc2FnZTpcclxuICAgICAgICAgICdBbiBhc3Nlc3NtZW50IGNhbiBiZSBsaW5rZWQgd2l0aCBhIHJlc3BvbnNpYmlsaXR5IG9ubHkgYWZ0ZXIgcmVtb3ZpbmcgdGhlIGFzc29jaWF0ZWQgY2hlY2twb2ludHMuJyxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOlxyXG4gICAgICAgICAgJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9mb3JtYXQtZXZpZGVuY2Uuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnRXZpZGVuY2UnLFxyXG4gICAgICAgIGNvZGU6ICdGT1JNQVRFX0VWSURFTkNFJyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICdFdmlkZW5jZScsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6XHJcbiAgICAgICAgICAnSWYgc2VsZWN0ZWQsIGV2aWRlbmNlIG9mIGNvbXBsZXRpb24gb2YgYSByZXNwb25zaWJpbGl0eSB3aWxsIGJlIHJlcXVpcmVkIGZvciBhbGwgcmVzcG9uc2liaWxpdGllcyB0aGF0IGFyZSBsaW5rZWQgd2l0aCB0aGUgUHJvZ3JhbS4gQW4gQXNzaWdub3IsIGJlaW5nIHRoZSBwZXJzb24gd2hvIGNyZWF0ZXMgdGhlIHJlc3BvbnNpYmlsaXR5LCBjYW4gb3ZlcnJpZGUgdGhpcyBvcHRpb24gd2hlbiBjcmVhdGluZyBhIHJlc3BvbnNpYmlsaXR5LicsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiB0cnVlLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6XHJcbiAgICAgICAgICAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L2N1c3RvbS1maWVsZHMuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnQ3VzdG9tIEZpZWxkJyxcclxuICAgICAgICBjb2RlOiAnQ1VTVE9NX0ZJRUxEUycsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnIEN1c3RvbSBGaWVsZCcsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6XHJcbiAgICAgICAgICAnV2hlcmUgYSBjdXN0b20gZmllbGQgaXMgc3BlY2lmaWVkLCBhbGwgcmVzcG9uc2liaWxpdGllcyBsaW5rZWQgd2l0aCBhIFByb2dyYW0gd2lsbCBjb250YWluIHRoYXQgY3VzdG9tIGZpZWxkLiBDdXN0b20gZmllbGRzIGVuYWJsZSB0aGUgY29sbGVjdGlvbiBvZiBhZGRpdGlvbmFsIG1ldGEgZGF0YS4nLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgIH0sXHJcbiAgICBdLFxyXG4gICAgR1JDOiBbXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDpcclxuICAgICAgICAgICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvbGluay1pdGVtcy5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdMSU5LIFJFU1BPTlNJQklMSVRJRVMnLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ0xJTksgUkVTUE9OU0lCSUxJVElFUycsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6IGBUaGlzIG9wdGlvbiBsZXRzIHlvdSBsaW5rIGEgR1JDIE9iamVjdCB3aXRoIHJlbGF0ZWQgcmVzcG9uc2liaWxpdGllcy5gLFxyXG4gICAgICAgIGRpc2FibGVkTWVzc2FnZTpcclxuICAgICAgICAgICdZb3UgY2FuIGxpbmsgYSByZXNwb25zaWJpbGl0eSB3aXRoIHRoaXMgR1JDIE9iamVjdCBvbmx5IGFmdGVyIHlvdSBoYXZlIHNlbGVjdGVkIHRoZSByZWxldmFudCBSZXNwb25zaWJpbGl0eSBDZW50ZXIuJyxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICAgIGNvZGU6ICdMSU5LX1BST0dSQU0nLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6XHJcbiAgICAgICAgICAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L2xpbmstcmlza3Muc3ZnJyxcclxuICAgICAgICBuYW1lOiAnTElOSyBSSVNLUycsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnTElOSyBSSVNLUycsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6IGBUaGlzIG9wdGlvbiBsZXRzIHlvdSBsaW5rIGEgR1JDIE9iamVjdCB3aXRoIHJlbGF0ZWQgcmlza3MuYCxcclxuICAgICAgICBkaXNhYmxlZE1lc3NhZ2U6XHJcbiAgICAgICAgICAnWW91IGNhbiBsaW5rIGEgcmlzayB3aXRoIHRoaXMgR1JDIE9iamVjdCBvbmx5IGFmdGVyIHlvdSBoYXZlIHNlbGVjdGVkIHRoZSByZWxldmFudCBSZXNwb25zaWJpbGl0eSBDZW50ZXIuJyxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICAgIGNvZGU6ICdMSU5LX1JJU0tfQ0FURUdPUklFU19SSVNLUycsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDpcclxuICAgICAgICAgICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvbGluay1pdGVtcy5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdMSU5LIE9USEVSIEdSQyBPQkpFQ1RTJyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICdMSU5LIE9USEVSIEdSQyBPQkpFQ1RTJyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTogYFRoaXMgb3B0aW9uIGxldHMgeW91IGxpbmsgYSBHUkMgT2JqZWN0IHdpdGggb3RoZXIgcmVsYXRlZCBHUkMgT2JqZWN0cy5gLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgICAgY29kZTogJ09USEVSX0dSQ19PQkpFQ1RTJyxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOiBMSU5LUz8uY3VzdG9tRmllbGRzLFxyXG4gICAgICAgIG5hbWU6ICdHUkMgT2JqZWN0IFR5cGUgQXR0cmlidXRlcycsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnR1JDIE9iamVjdCBUeXBlIEF0dHJpYnV0ZXMnLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOiBgVGhpcyBvcHRpb24gbGV0cyB5b3UgYWRkIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gcmVsYXRlZCB0byBhIEdSQyBPYmplY3QuYCxcclxuICAgICAgICBkaXNhYmxlZE1lc3NhZ2U6XHJcbiAgICAgICAgICAnVGhlcmUgYXJlIG5vIGFkZGl0aW9uYWwgYXR0cmlidXRlcyBsaW5rZWQgd2l0aCB0aGlzIEdSQyBPYmplY3QgVHlwZS4nLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgICAgY29kZTogJ0FUVFJJQlVURVMnLFxyXG4gICAgICB9LFxyXG4gICAgXSxcclxuICB9O1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHt9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmIChcclxuICAgICAgY2hhbmdlcz8uaXNQcm9ncmFtU2VsZWN0ZWQ/LmN1cnJlbnRWYWx1ZSAhPT1cclxuICAgICAgY2hhbmdlcz8uaXNQcm9ncmFtU2VsZWN0ZWQ/LnByZXZpb3VzVmFsdWVcclxuICAgICkge1xyXG4gICAgICB0aGlzLmlzUHJvZ3JhbVNlbGVjdGVkID0gY2hhbmdlcy5pc1Byb2dyYW1TZWxlY3RlZC5jdXJyZW50VmFsdWU7XHJcbiAgICB9XHJcbiAgICBpZiAoIXRoaXMuaXNSQ1NlbGVjdGVkKSB7XHJcbiAgICAgIGlmICh0aGlzLmN1cnJlbnRXb3JrZmxvdyA9PT0gJ0FBUicpIHtcclxuICAgICAgICB0aGlzLm1vcmVPcHRpb25zTGlzdC5BQVIuZm9yRWFjaCgoZWxlOiBhbnkpID0+IHtcclxuICAgICAgICAgIC8vIGlmKGVsZS5jb2RlID09PSAnQVNTVVJBTkNFJykge1xyXG4gICAgICAgICAgLy8gICBlbGUuY2hlY2tlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgLy8gfVxyXG4gICAgICAgICAgaWYgKGVsZS5jb2RlID09PSAnR1JDX09CSkVDVFMnKSB7XHJcbiAgICAgICAgICAgIGVsZS5jaGVja2VkID0gZmFsc2U7XHJcbiAgICAgICAgICAgIGVsZS5pc0Rpc2FibGVkID0gdHJ1ZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLm1vcmVPcHRpb25zTGlzdC5DQVIuZm9yRWFjaCgoZWxlOiBhbnkpID0+IHtcclxuICAgICAgICAgIC8vIGlmKGVsZS5jb2RlID09PSAnQVNTVVJBTkNFJykge1xyXG4gICAgICAgICAgLy8gICBlbGUuY2hlY2tlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgLy8gfVxyXG4gICAgICAgICAgaWYgKFsnUkVRVUlSRVNfQVVESVQnLCAnR1JDX09CSkVDVFMnXS5pbmNsdWRlcyhlbGUuY29kZSkpIHtcclxuICAgICAgICAgICAgZWxlLmNoZWNrZWQgPSBmYWxzZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKHRoaXMuY3VycmVudFdvcmtmbG93ID09PSAnQUFSJykge1xyXG4gICAgICAgIHRoaXMubW9yZU9wdGlvbnNMaXN0LkFBUi5mb3JFYWNoKChlbGU6IGFueSkgPT4ge1xyXG4gICAgICAgICAgLy8gaWYoZWxlLmNvZGUgPT09ICdBU1NVUkFOQ0UnKSB7XHJcbiAgICAgICAgICAvLyAgIGVsZS5jaGVja2VkID0gZmFsc2U7XHJcbiAgICAgICAgICAvLyB9XHJcbiAgICAgICAgICBpZiAoZWxlLmNvZGUgPT09ICdHUkNfT0JKRUNUUycpIHtcclxuICAgICAgICAgICAgZWxlLmlzRGlzYWJsZWQgPSBmYWxzZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLm1vcmVPcHRpb25zTGlzdC5DQVIuZm9yRWFjaCgoZWxlOiBhbnkpID0+IHtcclxuICAgICAgICAgIC8vIGlmKGVsZS5jb2RlID09PSAnQVNTVVJBTkNFJykge1xyXG4gICAgICAgICAgLy8gICBlbGUuaXNEaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgLy8gfVxyXG4gICAgICAgICAgaWYgKFsnUkVRVUlSRVNfQVVESVQnLCAnR1JDX09CSkVDVFMnXS5pbmNsdWRlcyhlbGUuY29kZSkpIHtcclxuICAgICAgICAgICAgZWxlLmlzRGlzYWJsZWQgPSBmYWxzZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5jaGVja0dSQ0F0dHJpYnV0ZXModGhpcy5pc0F0dHJpYnV0ZXNBdmFpbGFibGUpO1xyXG4gIH1cclxuXHJcbiAgY2hlY2tHUkNBdHRyaWJ1dGVzKHZhbHVlOiBhbnkpIHtcclxuICAgIHRoaXMubW9yZU9wdGlvbnNMaXN0LkdSQy5mb3JFYWNoKChlbGU6IGFueSwgaW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgICBpZiAoZWxlLmNvZGUgPT09ICdBVFRSSUJVVEVTJykge1xyXG4gICAgICAgIGVsZS5pc0Rpc2FibGVkID0gIXZhbHVlO1xyXG4gICAgICAgIGlmICghdmFsdWUpIHtcclxuICAgICAgICAgIGVsZS5jaGVja2VkID0gIXZhbHVlO1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RNb3JlT3B0aW9uKGVsZSwgaW5kZXgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZiAoZWxlLmNvZGUgPT09ICdMSU5LX1BST0dSQU0nKSB7XHJcbiAgICAgICAgZWxlLmlzRGlzYWJsZWQgPSAhdGhpcy5pc1JDU2VsZWN0ZWQ7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGVsZS5jb2RlID09PSAnTElOS19SSVNLX0NBVEVHT1JJRVNfUklTS1MnKSB7XHJcbiAgICAgICAgZWxlLmlzRGlzYWJsZWQgPSAhdGhpcy5pc1JDU2VsZWN0ZWQ7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZmVhdHVyZWZsYWdyb2xlID0gdGhpcy5hbGxvd2VkRmVhdHVyZT8uaXNGZWF0dXJlRW5hYmxlZChcclxuICAgICAgJ2ZmX3JvbGVfaW1wcm92ZW1lbnRzJ1xyXG4gICAgKTtcclxuICAgIHRoaXMuZmZfcmNfbGlzdGluZyA9IHRoaXMuYWxsb3dlZEZlYXR1cmUuaXNGZWF0dXJlRW5hYmxlZCgnZmZfcmNfbGlzdGluZycpO1xyXG4gICAgdGhpcy5mZl9yY19saXN0aW5nXHJcbiAgICAgID8gKHRoaXMucGVybWlzc2lvblRleHQgPSAnUGVybWlzc2lvbnMnKVxyXG4gICAgICA6ICh0aGlzLnBlcm1pc3Npb25UZXh0ID0gJ1Blcm1pc3Npb24gR3JvdXAoUyknKTtcclxuICAgIHRoaXMubW9yZU9wdGlvbnNMaXN0LkNBUFJbMF0ubmFtZSA9IHRoaXMucGVybWlzc2lvblRleHQ7XHJcbiAgICB0aGlzLm1vcmVPcHRpb25zTGlzdC5DQVBSWzBdLnRvb2x0aXBUaXRsZSA9IHRoaXMucGVybWlzc2lvblRleHQ7XHJcbiAgICB0aGlzLm1vcmVPcHRpb25zTGlzdC5DQVBSWzFdLnRvb2x0aXBNZXNzYWdlID0gdGhpcy5mZWF0dXJlZmxhZ3JvbGVcclxuICAgICAgPyBgT3duZXJzIGFyZSByZXNwb25zaWJsZSBmb3IgbWFuYWdpbmcgYSBQcm9ncmFtLiBPbmx5IE93bmVycyBjYW4gbWFrZSBjaGFuZ2VzIHRvIGEgUHJvZ3JhbSBhbmQgdGhlIHJlc3BvbnNpYmlsaXRpZXMgdGhhdCBhcmUgbGlua2VkIHdpdGggdGhlIFByb2dyYW0uPGJyPlxyXG4gICAgVGhlIDxiPktleSBQb3dlciBVc2VyIDwvYj4gYW5kIGFsbCA8Yj5Qb3dlciBVc2VyczwvYj4gIHdpbGwgYmUgc2VsZWN0ZWQgYXMgdGhlIE93bmVycyBvZiBhIFByb2dyYW0gYnkgZGVmYXVsdC5cclxuICAgIGBcclxuICAgICAgOiBgT3duZXJzIGFyZSByZXNwb25zaWJsZSBmb3IgbWFuYWdpbmcgYSBQcm9ncmFtLiBPbmx5IE93bmVycyBjYW4gbWFrZSBjaGFuZ2VzIHRvIGEgUHJvZ3JhbSBhbmQgdGhlIHJlc3BvbnNpYmlsaXRpZXMgdGhhdCBhcmUgbGlua2VkIHdpdGggdGhlIFByb2dyYW0uPGJyPlxyXG4gICAgVGhlIDxiPktleSBBZG1pbjwvYj4gYW5kIGFsbCA8Yj5BZG1pbjwvYj4gdXNlcnMgd2lsbCBiZSBzZWxlY3RlZCBhcyB0aGUgT3duZXJzIG9mIGEgUHJvZ3JhbSBieSBkZWZhdWx0LlxyXG4gICAgYDtcclxuICAgIGlmICh0aGlzLmFsbG93ZWRGZWF0dXJlPy5pc0ZlYXR1cmVFbmFibGVkKCdmZl9wcm9ncmFtX3NpbXBsaWZ5JykpIHtcclxuICAgICAgdGhpcy5tb3JlT3B0aW9uc0xpc3QuQ0FQUlswXS50b29sdGlwTWVzc2FnZSA9IGAke3RoaXMucGVybWlzc2lvblRleHR9IGxldCB5b3Ugc3BlY2lmeSB0aGUgdXNlcnMgdGhhdCBjYW4gYmUg4oCcT3duZXJz4oCdIG9mIGEgUHJvZ3JhbS5gO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5tb3JlT3B0aW9uc0xpc3QuQ0FQUlswXS50b29sdGlwTWVzc2FnZSA9IGAke3RoaXMucGVybWlzc2lvblRleHR9IGxldCB5b3Ugc3BlY2lmeSB0aGUgdXNlcnMgdGhhdCBjYW4gYmUg4oCcT3duZXJz4oCdIGFuZCDigJxBcHByb3ZlcnPigJ0gb2YgYSBQcm9ncmFtLmA7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgaW5kZXggPSB0aGlzLm1vcmVPcHRpb25zTGlzdC5DQVIuZmluZEluZGV4KFxyXG4gICAgICAoZWxlOiBhbnkpID0+IGVsZS5jb2RlID09PSAnQ0hFQ0tQT0lOVFMnXHJcbiAgICApO1xyXG4gICAgdGhpcy5tb3JlT3B0aW9uc0xpc3QuQ0FSW2luZGV4XS5oaWRkZW4gPVxyXG4gICAgICB0aGlzLmlzRWRpdE1vZGUgPT09IGZhbHNlID8gdHJ1ZSA6IGZhbHNlO1xyXG4gICAgY29uc3QgUHJvZ3JhbUluZGV4ID0gdGhpcy5tb3JlT3B0aW9uc0xpc3QuQ0FSLmZpbmRJbmRleChcclxuICAgICAgKGVsZTogYW55KSA9PiBlbGUuY29kZSA9PT0gJ1BST0dSQU0nXHJcbiAgICApO1xyXG4gICAgaWYgKFByb2dyYW1JbmRleCA+IC0xKSB7XHJcbiAgICAgIHRoaXMubW9yZU9wdGlvbnNMaXN0LkNBUltQcm9ncmFtSW5kZXhdLmlzRGlzYWJsZWQgPSB0aGlzLmlzRWRpdE1vZGU7XHJcbiAgICB9XHJcbiAgICB0aGlzLnByb2dyYW1TaW1wbGlmeUZsYWcgPVxyXG4gICAgICB0aGlzLmFsbG93ZWRGZWF0dXJlPy5pc0ZlYXR1cmVFbmFibGVkKCdmZl9wcm9ncmFtX3NpbXBsaWZ5JykgPz8gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHNlbGVjdE1vcmVPcHRpb24oZXZlbnQ6IGFueSwgaW5kZXg6IG51bWJlcikge1xyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLmN1cnJlbnRXb3JrZmxvdyA9PT0gJ0NBUicgJiZcclxuICAgICAgZXZlbnQuY29kZSA9PT0gJ0NIRUNLUE9JTlRTX05FVycgJiZcclxuICAgICAgdGhpcy5tb3JlT3B0aW9uc0xpc3RbdGhpcy5jdXJyZW50V29ya2Zsb3ddW2luZGV4XT8uY2hlY2tlZFxyXG4gICAgKSB7XHJcbiAgICAgIGV2ZW50WydjaGVja3BvaW50X25ldyddID0gdHJ1ZTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5tb3JlT3B0aW9uc0xpc3RbdGhpcy5jdXJyZW50V29ya2Zsb3ddPy5sZW5ndGggPiBpbmRleCkge1xyXG4gICAgICBldmVudFsnY2hlY2twb2ludF9uZXcnXSA9IGZhbHNlO1xyXG4gICAgICB0aGlzLm1vcmVPcHRpb25zTGlzdFt0aGlzLmN1cnJlbnRXb3JrZmxvd11baW5kZXhdWydjaGVja2VkJ10gPVxyXG4gICAgICAgICFldmVudC5jaGVja2VkO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc2VsZWN0ZWRPcHRpb24uZW1pdChldmVudCk7XHJcbiAgfVxyXG5cclxuICBwb3B1bGF0ZShldnQ6IGFueSkge1xyXG4gICAgaWYgKHRoaXMuY3VycmVudFdvcmtmbG93KSB7XHJcbiAgICAgIHRoaXMubW9yZU9wdGlvbnNMaXN0W3RoaXMuY3VycmVudFdvcmtmbG93XS5mb3JFYWNoKChlbGVtZW50OiBhbnkpID0+IHtcclxuICAgICAgICBpZiAoZXZ0LmluY2x1ZGVzKGVsZW1lbnQuY29kZSkpIHtcclxuICAgICAgICAgIGVsZW1lbnQuY2hlY2tlZCA9IHRydWU7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGVsZW1lbnQuY2hlY2tlZCA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoZXZ0LmluY2x1ZGVzKCdDSEVDS1BPSU5UU19ORVcnKSkge1xyXG4gICAgICAgICAgaWYgKGVsZW1lbnQuY29kZSA9PT0gJ0NIRUNLUE9JTlRTJykge1xyXG4gICAgICAgICAgICBlbGVtZW50LmlzRGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKGVsZW1lbnQuY29kZSA9PT0gJ0FTU0VTU01FTlQnKSB7XHJcbiAgICAgICAgICAgIGVsZW1lbnQuaXNEaXNhYmxlZCA9IHRydWU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChldnQuaW5jbHVkZXMoJ0FTU0VTU01FTlQnKSkge1xyXG4gICAgICAgICAgaWYgKGVsZW1lbnQuY29kZSA9PT0gJ0NIRUNLUE9JTlRTX05FVycpIHtcclxuICAgICAgICAgICAgZWxlbWVudC5pc0Rpc2FibGVkID0gdHJ1ZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChlbGVtZW50LmNvZGUgPT09ICdDSEVDS1BPSU5UUycpIHtcclxuICAgICAgICAgICAgZWxlbWVudC5pc0Rpc2FibGVkID0gZmFsc2U7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChldnQuaW5jbHVkZXMoJ0NIRUNLUE9JTlRTJykpIHtcclxuICAgICAgICAgIGlmIChlbGVtZW50LmNvZGUgPT09ICdDSEVDS1BPSU5UU19ORVcnKSB7XHJcbiAgICAgICAgICAgIGVsZW1lbnQuaXNEaXNhYmxlZCA9IHRydWU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoZWxlbWVudC5jb2RlID09PSAnQVNTRVNTTUVOVCcpIHtcclxuICAgICAgICAgICAgZWxlbWVudC5pc0Rpc2FibGVkID0gdHJ1ZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGV2dC5pbmNsdWRlcygnUFJPR1JBTScpKSB7XHJcbiAgICAgICAgICBpZiAoZWxlbWVudC5jb2RlID09PSAnUFJPR1JBTScgJiYgdGhpcy5pc1Byb2dyYW1TZWxlY3RlZCkge1xyXG4gICAgICAgICAgICBlbGVtZW50LmlzRGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGhpZGVFbGVtZW50cyhoaWRkZW5MaXN0OiBhbnkpIHtcclxuICAgIGlmICh0aGlzLmN1cnJlbnRXb3JrZmxvdykge1xyXG4gICAgICB0aGlzLm1vcmVPcHRpb25zTGlzdFt0aGlzLmN1cnJlbnRXb3JrZmxvd10uZm9yRWFjaCgoZWxlbWVudDogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKGhpZGRlbkxpc3QuaW5jbHVkZXMoZWxlbWVudC5jb2RlKSkge1xyXG4gICAgICAgICAgZWxlbWVudC5oaWRkZW4gPSB0cnVlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBlbGVtZW50LmhpZGRlbiA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZXNldEFsbCh3b3JrZmxvd1R5cGU6IHN0cmluZykge1xyXG4gICAgaWYgKHRoaXMubW9yZU9wdGlvbnNMaXN0W3dvcmtmbG93VHlwZV0pIHtcclxuICAgICAgdGhpcy5tb3JlT3B0aW9uc0xpc3Rbd29ya2Zsb3dUeXBlXS5mb3JFYWNoKChlbGVtZW50OiBhbnkpID0+IHtcclxuICAgICAgICBlbGVtZW50LmNoZWNrZWQgPSBmYWxzZTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB1cGRhdGVQcm9ncmFtTW9yZU9wdGlvbnMoKSB7XHJcbiAgICBjb25zdCBjb2RlID0gW1xyXG4gICAgICAnUFJPR1JBTV9GUkVRVUVOQ1knLFxyXG4gICAgICAnU0NPUEVfQ0hBTkdFUycsXHJcbiAgICAgICdSQycsXHJcbiAgICAgICdBU1NJR05FRVMnLFxyXG4gICAgICAnUkVWSUVXRVInLFxyXG4gICAgICAnT1ZFUlNFRVInLFxyXG4gICAgICAnQVNTRVNTTUVOVCcsXHJcbiAgICAgICdGT1JNQVRFX0VWSURFTkNFJyxcclxuICAgIF07XHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMub3JnRGV0YWlscz8uaGFzUHJvZ3JhbUZ1bGxQZXJtaXNzaW9uICYmXHJcbiAgICAgIHRoaXMuYWxsb3dlZEZlYXR1cmUuaXNGZWF0dXJlRW5hYmxlZCgnZmZfcHJvZ3JhbV9zaW1wbGlmeScpXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5tb3JlT3B0aW9uc0xpc3Q/LkNBUFI/LmZvckVhY2goKG9wdGlvbjogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKGNvZGU/LmluY2x1ZGVzKG9wdGlvbi5jb2RlKSkge1xyXG4gICAgICAgICAgb3B0aW9uLmhpZGRlbiA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBpZiAoIXRoaXMuYWxsb3dlZEZlYXR1cmUuaXNGZWF0dXJlRW5hYmxlZCgnZmZfcHJvZ3JhbV9zaW1wbGlmeScpKSB7XHJcbiAgICAgIGNvZGUucHVzaCgnQVBQUk9WRVInKTtcclxuICAgICAgdGhpcy5tb3JlT3B0aW9uc0xpc3Q/LkNBUFI/LmZvckVhY2goKG9wdGlvbjogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKGNvZGU/LmluY2x1ZGVzKG9wdGlvbi5jb2RlKSkge1xyXG4gICAgICAgICAgb3B0aW9uLmhpZGRlbiA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjwhLS0gPHA+bW9yZS1vcHRpb24gd29ya3MhPC9wPiAtLT5cclxuPGRpdiBjbGFzcz1cIm1vcmUtb3B0aW9uXCI+XHJcbiAgPGRpdiBjbGFzcz1cIm1lc3NhZ2UtY29udGFpbmVyXCI+XHJcbiAgICA8aW1nXHJcbiAgICAgIHNyYz1cImh0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9hZGQtcmlzay1tb3JlLW9wdGlvbi5zdmdcIlxyXG4gICAgICBhbHQ9XCJcIlxyXG4gICAgLz5cclxuICAgIDxwICpuZ0lmPVwiY3VycmVudFdvcmtmbG93XCI+e3sgcGxhY2Vob2xkZXJUZXh0c1tjdXJyZW50V29ya2Zsb3ddIH19PC9wPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJtb3JlLW9wdGlvbnNcIj5cclxuICAgIDx1bD5cclxuICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwibW9yZS1vcHRpb25zLWhlYWRpbmdcIiAqbmdJZj1cImN1cnJlbnRXb3JrZmxvdyA9PT0nQ0FQUidcIj5QUk9HUkFNIFNDT1BFIE9QVElPTlM8L2Rpdj4gLS0+XHJcbiAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAqbmdGb3I9XCJsZXQgZGF0YSBvZiBtb3JlT3B0aW9uc0xpc3RbY3VycmVudFdvcmtmbG93XTsgbGV0IGkgPSBpbmRleFwiXHJcbiAgICAgID5cclxuICAgICAgICA8IS0tIDxsaSAqbmdJZj1cIiFkYXRhLmhpZGRlblwiIFthcHBUb29sdGlwXT1cImRhdGEuaXNEaXNhYmxlZCAmJiAhaXNSY1NlbGVjdGVkPyAnVGhpcyByZXNwb25zaWJpbGl0eSBjYW4gYmUgc2NoZWR1bGVkIGZvciBhbiBhdWRpdCBvbmx5IGFmdGVyIHRoZSBSZXNwb25zaWJpbGl0eSBDZW50ZXIgaXMgc2VsZWN0ZWQuJyA6ICcnXCIgcGxhY2VtZW50PVwicmlnaHRcIiBkZWxheT1cIjBcIiBbdG9vbHRpcE1hbmRhdG9yeV09XCJkYXRhLmlzRGlzYWJsZWQgJiYgIWlzUmNTZWxlY3RlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gW2NsYXNzLmFjdGl2ZV09XCJkYXRhLmNoZWNrZWRcIiBbZGlzYWJsZWRdPVwiZGF0YS5jb2RlID09PSAnUkMnICYmIG9wZW5lZEZyb20gPT09ICdSSVNLX1RSRUFUTUVOVCcgJiYgY3VycmVudFdvcmtmbG93ID09PSAnQ0FSJyB8fCAoZGF0YS5pc0Rpc2FibGVkICYmICFpc1JDU2VsZWN0ZWQpXCIgW2NsYXNzLmRpc2FibGVkXT1cImRhdGEuaXNEaXNhYmxlZCAmJiAhaXNSQ1NlbGVjdGVkXCIgKGNsaWNrKT1cImRhdGEuY2hlY2tlZCA9ICFkYXRhLmNoZWNrZWQ7IHNlbGVjdE1vcmVPcHRpb24oZGF0YSlcIj4gLS0+XHJcblxyXG4gICAgICAgIDxsaVxyXG4gICAgICAgICAgKm5nSWY9XCIhZGF0YS5oaWRkZW5cIlxyXG4gICAgICAgICAgW2FwcFRvb2x0aXBdPVwiXHJcbiAgICAgICAgICAgIGRhdGEuaXNEaXNhYmxlZCB8fFxyXG4gICAgICAgICAgICAoKChkYXRhLmNvZGUgPT09ICdSQycgJiYgIWlzUmNTZWxlY3RlZCkgfHxcclxuICAgICAgICAgICAgICBkYXRhLmNvZGUgPT09ICdBVFRSSUJVVEVTJykgJiZcclxuICAgICAgICAgICAgICBkYXRhLmlzRGlzYWJsZWQpXHJcbiAgICAgICAgICAgICAgPyBkYXRhPy5kaXNhYmxlZE1lc3NhZ2VcclxuICAgICAgICAgICAgICA6ICcnXHJcbiAgICAgICAgICBcIlxyXG4gICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxyXG4gICAgICAgICAgZGVsYXk9XCIwXCJcclxuICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cImRhdGEuaXNEaXNhYmxlZFwiXHJcbiAgICAgICAgICBpZD1cImxpc3RkYXRhXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgIFtjbGFzcy5hY3RpdmVdPVwiZGF0YS5jaGVja2VkXCJcclxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cIlxyXG4gICAgICAgICAgICAgIChkYXRhLmNvZGUgPT09ICdSQycgJiZcclxuICAgICAgICAgICAgICAgIG9wZW5lZEZyb20gPT09ICdSSVNLX1RSRUFUTUVOVCcgJiZcclxuICAgICAgICAgICAgICAgIGN1cnJlbnRXb3JrZmxvdyA9PT0gJ0NBUicpIHx8XHJcbiAgICAgICAgICAgICAgZGF0YS5pc0Rpc2FibGVkIHx8XHJcbiAgICAgICAgICAgICAgKGRhdGEuaXNEaXNhYmxlZCAmJiAhaXNSQ1NlbGVjdGVkKVxyXG4gICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0TW9yZU9wdGlvbihkYXRhLCBpKVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiIWRhdGEuY2hlY2tlZFwiIGNsYXNzPVwibW9yZS1pY29uXCI+XHJcbiAgICAgICAgICAgICAgPGltZyBbc3JjXT1cImRhdGEuaW1hZ2VVcmxcIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDxzdmdcclxuICAgICAgICAgICAgICAqbmdJZj1cImRhdGEuY2hlY2tlZFwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJjaGVja0ljb25cIlxyXG4gICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgNTIgNTJcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPGNpcmNsZVxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjaGVja0ljb25fX2NpcmNsZVwiXHJcbiAgICAgICAgICAgICAgICBjeD1cIjI2XCJcclxuICAgICAgICAgICAgICAgIGN5PVwiMjZcIlxyXG4gICAgICAgICAgICAgICAgcj1cIjI1XCJcclxuICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImNoZWNrSWNvbl9fY2hlY2tcIlxyXG4gICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgICAgICAgZD1cIk0xNC4xIDI3LjJsNy4xIDcuMiAxNi43LTE2LjhcIlxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgIGNsYXNzPVwidmFsdWVcIlxyXG4gICAgICAgICAgICAgIFtpbm5lckhUTUxdPVwiZGF0YT8ubmFtZVwiXHJcbiAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiZGF0YT8ubmFtZVwiXHJcbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxyXG4gICAgICAgICAgICAgIGRlbGF5PVwiMFwiXHJcbiAgICAgICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICA+PC9zcGFuPlxyXG4gICAgICAgICAgICA8IS0tIDxzcGFuICpuZ0lmPVwiZGF0YS5jb2RlID09PSdDSEVDS1BPSU5UU19ORVcnXCIgY2xhc3M9XCJjaGVja3BvaW50LXZlcnNpb25cIj4gVjIuMDwvc3Bhbj4gLS0+XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgIGNsYXNzPVwiaWNvblwiXHJcbiAgICAgICAgICAgICpuZ0lmPVwiZGF0YS50b29sdGlwTWVzc2FnZSAhPT0gJydcIlxyXG4gICAgICAgICAgICBsaWJQb3BvdmVySG92ZXJcclxuICAgICAgICAgICAgKG1vdXNlb3Zlcik9XCJkYXRhVG9vbHRpcC5wb3BvdmVyKClcIlxyXG4gICAgICAgICAgICAobW91c2VsZWF2ZSk9XCJkYXRhVG9vbHRpcC5jbG9zZVBvcG92ZXIoKVwiXHJcbiAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcclxuICAgICAgICAgICAgPjxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTFmOzwvaT48L3NwYW5cclxuICAgICAgICAgID5cclxuICAgICAgICAgIDxwb3BvdmVyLWhvdmVyICNkYXRhVG9vbHRpcD5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWluZm8tY2FyZFwiPlxyXG4gICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwidngtaW5mby1jYXJkLWhlYWRcIlxyXG4gICAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJkYXRhLnRvb2x0aXBUaXRsZVwiXHJcbiAgICAgICAgICAgICAgPjwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwidngtaW5mby1jYXJkLWJvZHlcIlxyXG4gICAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJkYXRhLnRvb2x0aXBNZXNzYWdlXCJcclxuICAgICAgICAgICAgICA+PC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9wb3BvdmVyLWhvdmVyPlxyXG4gICAgICAgIDwvbGk+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgY2xhc3M9XCJtb3JlLW9wdGlvbnMtaGVhZGluZyB2eC1tdC0yXCJcclxuICAgICAgICAgICpuZ0lmPVwiY3VycmVudFdvcmtmbG93ID09PSAnQ0FQUicgJiYgaSA9PT0gMlwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgUFJPR1JBTSBTQ09QRSBPUFRJT05TXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC91bD5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -15,15 +15,17 @@ export class CommonService {
15
15
  const targetElement = event?.target;
16
16
  if (!targetElement)
17
17
  return false;
18
- const dateInputElement = document.getElementById(className);
19
- const datePickerCalendarContainer = document.querySelector(".dp-day-calendar-container");
20
- const monthYearElement = document.querySelector(".dp-month-calendar-container");
18
+ const dateInputElement = document?.getElementById(className);
19
+ const datePickerCalendarContainer = document?.querySelector('.dp-day-calendar-container');
20
+ const monthYearElement = document?.querySelector('.dp-month-calendar-container');
21
21
  const isNotMonthYearElement = !monthYearElement?.contains(targetElement);
22
22
  const isOutsidePopup = !popup?.nativeElement?.contains(targetElement);
23
- const isOutsidePopup2 = !popup?.nativeElement?.className.includes("dp-calendar-month");
23
+ const isOutsidePopup2 = !popup?.nativeElement?.className.includes('dp-calendar-month');
24
24
  const isNotDateInputElement = targetElement !== dateInputElement;
25
25
  const isNotInsideCalendar = !datePickerCalendarContainer?.contains(targetElement);
26
- const isNotCalendarMonth = !targetElement.className.includes("dp-calendar-month");
26
+ const isNotCalendarMonth = !targetElement ||
27
+ typeof targetElement?.className !== 'string' ||
28
+ !targetElement?.className?.includes('dp-calendar-month');
27
29
  if (datePickerCalendarContainer &&
28
30
  isNotMonthYearElement &&
29
31
  isOutsidePopup &&
@@ -52,4 +54,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
52
54
  providedIn: 'root',
53
55
  }]
54
56
  }] });
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9zZXJ2aWNlcy9jb21tb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsVUFBVSxFQUFZLE1BQU0sZUFBZSxDQUFDOztBQUtqRSxNQUFNLE9BQU8sYUFBYTtJQUgxQjtRQUlJLHFCQUFnQixHQUFHO1lBQ2YsS0FBSyxFQUFFLElBQUk7WUFDWCxLQUFLLEVBQUUsRUFBRTtZQUNULEtBQUssRUFBRSxJQUFJO1lBQ1gsU0FBUyxFQUFFLElBQUk7WUFDZixPQUFPLEVBQUUsS0FBSztTQUNqQixDQUFBO0tBNERKO0lBM0RHLG1CQUFtQixDQUFDLGdCQUFxQjtRQUN2QyxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEdBQUcsZ0JBQWdCLElBQUksRUFBRSxDQUFDO1FBQ2xFLE1BQU0sYUFBYSxHQUFHLEtBQUssRUFBRSxNQUFpQixDQUFDO1FBRS9DLElBQUksQ0FBQyxhQUFhO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFFakMsTUFBTSxnQkFBZ0IsR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzVELE1BQU0sMkJBQTJCLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FDeEQsNEJBQTRCLENBQzdCLENBQUM7UUFDRixNQUFNLGdCQUFnQixHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQzdDLDhCQUE4QixDQUMvQixDQUFDO1FBRUYsTUFBTSxxQkFBcUIsR0FBRyxDQUFDLGdCQUFnQixFQUFFLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN6RSxNQUFNLGNBQWMsR0FBRyxDQUFDLEtBQUssRUFBRSxhQUFhLEVBQUUsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3RFLE1BQU0sZUFBZSxHQUFHLENBQUMsS0FBSyxFQUFFLGFBQWEsRUFBRSxTQUFTLENBQUMsUUFBUSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFFdkYsTUFBTSxxQkFBcUIsR0FBRyxhQUFhLEtBQUssZ0JBQWdCLENBQUM7UUFDakUsTUFBTSxtQkFBbUIsR0FDdkIsQ0FBQywyQkFBMkIsRUFBRSxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDeEQsTUFBTSxrQkFBa0IsR0FDdEIsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBRXpELElBQ0UsMkJBQTJCO1lBQzNCLHFCQUFxQjtZQUNyQixjQUFjO1lBQ2QscUJBQXFCO1lBQ3JCLG1CQUFtQjtZQUNuQixrQkFBa0I7WUFDbEIsZUFBZSxFQUNmO1lBQ0EsSUFBSSxDQUFDLHFCQUFxQixDQUN4QixhQUFhLEVBQ2IsS0FBSyxFQUNMLGdCQUFnQixFQUFFLE9BQU8sRUFDekIsZ0JBQWdCLEVBQUUsU0FBUyxDQUM1QixDQUFDO1lBQ0YsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVLLHFCQUFxQixDQUMzQixNQUFXLEVBQ1gsYUFBeUIsRUFDekIsaUJBQTBCLEVBQzFCLFVBQWU7UUFFZixJQUNFLENBQUMsYUFBYSxFQUFFLGFBQWEsRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDO1lBQy9DLFVBQVUsRUFBRSxpQkFBaUIsRUFDN0I7WUFDQSxVQUFVLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxDQUFDO1lBQ3pCLGlCQUFpQixHQUFHLEtBQUssQ0FBQztTQUMzQjtJQUNILENBQUM7K0dBbEVVLGFBQWE7bUhBQWIsYUFBYSxjQUZaLE1BQU07OzRGQUVQLGFBQWE7a0JBSHpCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWxlbWVudFJlZiwgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb21tb25TZXJ2aWNlIHtcclxuICAgIGRhdGVQaWNrZXJPYmplY3QgPSB7XHJcbiAgICAgICAgZXZlbnQ6IG51bGwsXHJcbiAgICAgICAgY2xhc3M6ICcnLFxyXG4gICAgICAgIHBvcHVwOiBudWxsLFxyXG4gICAgICAgIGNvbXBvbmVudDogbnVsbCxcclxuICAgICAgICBvdmVybGF5OiBmYWxzZSxcclxuICAgIH1cclxuICAgIGhhbmRsZURvY3VtZW50Q2xpY2soZGF0ZVBpY2tlck9iamVjdDogYW55KTogYm9vbGVhbiB7XHJcbiAgICAgIGNvbnN0IHsgZXZlbnQsIHBvcHVwLCBjbGFzczogY2xhc3NOYW1lIH0gPSBkYXRlUGlja2VyT2JqZWN0IHx8IHt9O1xyXG4gICAgICBjb25zdCB0YXJnZXRFbGVtZW50ID0gZXZlbnQ/LnRhcmdldCBhcyBFbGVtZW50O1xyXG4gIFxyXG4gICAgICBpZiAoIXRhcmdldEVsZW1lbnQpIHJldHVybiBmYWxzZTtcclxuICBcclxuICAgICAgY29uc3QgZGF0ZUlucHV0RWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGNsYXNzTmFtZSk7XHJcbiAgICAgIGNvbnN0IGRhdGVQaWNrZXJDYWxlbmRhckNvbnRhaW5lciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXHJcbiAgICAgICAgXCIuZHAtZGF5LWNhbGVuZGFyLWNvbnRhaW5lclwiXHJcbiAgICAgICk7XHJcbiAgICAgIGNvbnN0IG1vbnRoWWVhckVsZW1lbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFxyXG4gICAgICAgIFwiLmRwLW1vbnRoLWNhbGVuZGFyLWNvbnRhaW5lclwiXHJcbiAgICAgICk7XHJcbiAgXHJcbiAgICAgIGNvbnN0IGlzTm90TW9udGhZZWFyRWxlbWVudCA9ICFtb250aFllYXJFbGVtZW50Py5jb250YWlucyh0YXJnZXRFbGVtZW50KTtcclxuICAgICAgY29uc3QgaXNPdXRzaWRlUG9wdXAgPSAhcG9wdXA/Lm5hdGl2ZUVsZW1lbnQ/LmNvbnRhaW5zKHRhcmdldEVsZW1lbnQpO1xyXG4gICAgICBjb25zdCBpc091dHNpZGVQb3B1cDIgPSAhcG9wdXA/Lm5hdGl2ZUVsZW1lbnQ/LmNsYXNzTmFtZS5pbmNsdWRlcyhcImRwLWNhbGVuZGFyLW1vbnRoXCIpO1xyXG4gIFxyXG4gICAgICBjb25zdCBpc05vdERhdGVJbnB1dEVsZW1lbnQgPSB0YXJnZXRFbGVtZW50ICE9PSBkYXRlSW5wdXRFbGVtZW50O1xyXG4gICAgICBjb25zdCBpc05vdEluc2lkZUNhbGVuZGFyID1cclxuICAgICAgICAhZGF0ZVBpY2tlckNhbGVuZGFyQ29udGFpbmVyPy5jb250YWlucyh0YXJnZXRFbGVtZW50KTtcclxuICAgICAgY29uc3QgaXNOb3RDYWxlbmRhck1vbnRoID1cclxuICAgICAgICAhdGFyZ2V0RWxlbWVudC5jbGFzc05hbWUuaW5jbHVkZXMoXCJkcC1jYWxlbmRhci1tb250aFwiKTtcclxuICBcclxuICAgICAgaWYgKFxyXG4gICAgICAgIGRhdGVQaWNrZXJDYWxlbmRhckNvbnRhaW5lciAmJlxyXG4gICAgICAgIGlzTm90TW9udGhZZWFyRWxlbWVudCAmJlxyXG4gICAgICAgIGlzT3V0c2lkZVBvcHVwICYmXHJcbiAgICAgICAgaXNOb3REYXRlSW5wdXRFbGVtZW50ICYmXHJcbiAgICAgICAgaXNOb3RJbnNpZGVDYWxlbmRhciAmJlxyXG4gICAgICAgIGlzTm90Q2FsZW5kYXJNb250aCAmJlxyXG4gICAgICAgIGlzT3V0c2lkZVBvcHVwMlxyXG4gICAgICApIHtcclxuICAgICAgICB0aGlzLmNsb3NlRGF0ZVBpY2tlcklmT3BlbihcclxuICAgICAgICAgIHRhcmdldEVsZW1lbnQsXHJcbiAgICAgICAgICBwb3B1cCxcclxuICAgICAgICAgIGRhdGVQaWNrZXJPYmplY3Q/Lm92ZXJsYXksXHJcbiAgICAgICAgICBkYXRlUGlja2VyT2JqZWN0Py5jb21wb25lbnRcclxuICAgICAgICApO1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICB9XHJcbiAgXHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgcHJpdmF0ZSBjbG9zZURhdGVQaWNrZXJJZk9wZW4oXHJcbiAgICB0YXJnZXQ6IGFueSxcclxuICAgIG9wZW5lZEVsZW1lbnQ6IEVsZW1lbnRSZWYsXHJcbiAgICBkYXRlUGlja2VyT3ZlcmxheTogYm9vbGVhbixcclxuICAgIERhdGVQaWNrZXI6IGFueVxyXG4gICk6IHZvaWQge1xyXG4gICAgaWYgKFxyXG4gICAgICAhb3BlbmVkRWxlbWVudD8ubmF0aXZlRWxlbWVudD8uY29udGFpbnModGFyZ2V0KSAmJlxyXG4gICAgICBEYXRlUGlja2VyPy5hcmVDYWxlbmRhcnNTaG93blxyXG4gICAgKSB7XHJcbiAgICAgIERhdGVQaWNrZXI/LmFwaT8uY2xvc2UoKTtcclxuICAgICAgZGF0ZVBpY2tlck92ZXJsYXkgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9zZXJ2aWNlcy9jb21tb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsVUFBVSxFQUFZLE1BQU0sZUFBZSxDQUFDOztBQUtqRSxNQUFNLE9BQU8sYUFBYTtJQUgxQjtRQUlFLHFCQUFnQixHQUFHO1lBQ2pCLEtBQUssRUFBRSxJQUFJO1lBQ1gsS0FBSyxFQUFFLEVBQUU7WUFDVCxLQUFLLEVBQUUsSUFBSTtZQUNYLFNBQVMsRUFBRSxJQUFJO1lBQ2YsT0FBTyxFQUFFLEtBQUs7U0FDZixDQUFDO0tBK0RIO0lBOURDLG1CQUFtQixDQUFDLGdCQUFxQjtRQUN2QyxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEdBQUcsZ0JBQWdCLElBQUksRUFBRSxDQUFDO1FBQ2xFLE1BQU0sYUFBYSxHQUFHLEtBQUssRUFBRSxNQUFpQixDQUFDO1FBRS9DLElBQUksQ0FBQyxhQUFhO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFFakMsTUFBTSxnQkFBZ0IsR0FBRyxRQUFRLEVBQUUsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzdELE1BQU0sMkJBQTJCLEdBQUcsUUFBUSxFQUFFLGFBQWEsQ0FDekQsNEJBQTRCLENBQzdCLENBQUM7UUFDRixNQUFNLGdCQUFnQixHQUFHLFFBQVEsRUFBRSxhQUFhLENBQzlDLDhCQUE4QixDQUMvQixDQUFDO1FBRUYsTUFBTSxxQkFBcUIsR0FBRyxDQUFDLGdCQUFnQixFQUFFLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN6RSxNQUFNLGNBQWMsR0FBRyxDQUFDLEtBQUssRUFBRSxhQUFhLEVBQUUsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3RFLE1BQU0sZUFBZSxHQUNuQixDQUFDLEtBQUssRUFBRSxhQUFhLEVBQUUsU0FBUyxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBRWpFLE1BQU0scUJBQXFCLEdBQUcsYUFBYSxLQUFLLGdCQUFnQixDQUFDO1FBQ2pFLE1BQU0sbUJBQW1CLEdBQ3ZCLENBQUMsMkJBQTJCLEVBQUUsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3hELE1BQU0sa0JBQWtCLEdBQ3RCLENBQUMsYUFBYTtZQUNkLE9BQU8sYUFBYSxFQUFFLFNBQVMsS0FBSyxRQUFRO1lBQzVDLENBQUMsYUFBYSxFQUFFLFNBQVMsRUFBRSxRQUFRLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUUzRCxJQUNFLDJCQUEyQjtZQUMzQixxQkFBcUI7WUFDckIsY0FBYztZQUNkLHFCQUFxQjtZQUNyQixtQkFBbUI7WUFDbkIsa0JBQWtCO1lBQ2xCLGVBQWUsRUFDZjtZQUNBLElBQUksQ0FBQyxxQkFBcUIsQ0FDeEIsYUFBYSxFQUNiLEtBQUssRUFDTCxnQkFBZ0IsRUFBRSxPQUFPLEVBQ3pCLGdCQUFnQixFQUFFLFNBQVMsQ0FDNUIsQ0FBQztZQUNGLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFTyxxQkFBcUIsQ0FDM0IsTUFBVyxFQUNYLGFBQXlCLEVBQ3pCLGlCQUEwQixFQUMxQixVQUFlO1FBRWYsSUFDRSxDQUFDLGFBQWEsRUFBRSxhQUFhLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQztZQUMvQyxVQUFVLEVBQUUsaUJBQWlCLEVBQzdCO1lBQ0EsVUFBVSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsQ0FBQztZQUN6QixpQkFBaUIsR0FBRyxLQUFLLENBQUM7U0FDM0I7SUFDSCxDQUFDOytHQXJFVSxhQUFhO21IQUFiLGFBQWEsY0FGWixNQUFNOzs0RkFFUCxhQUFhO2tCQUh6QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVsZW1lbnRSZWYsIEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29tbW9uU2VydmljZSB7XHJcbiAgZGF0ZVBpY2tlck9iamVjdCA9IHtcclxuICAgIGV2ZW50OiBudWxsLFxyXG4gICAgY2xhc3M6ICcnLFxyXG4gICAgcG9wdXA6IG51bGwsXHJcbiAgICBjb21wb25lbnQ6IG51bGwsXHJcbiAgICBvdmVybGF5OiBmYWxzZSxcclxuICB9O1xyXG4gIGhhbmRsZURvY3VtZW50Q2xpY2soZGF0ZVBpY2tlck9iamVjdDogYW55KTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCB7IGV2ZW50LCBwb3B1cCwgY2xhc3M6IGNsYXNzTmFtZSB9ID0gZGF0ZVBpY2tlck9iamVjdCB8fCB7fTtcclxuICAgIGNvbnN0IHRhcmdldEVsZW1lbnQgPSBldmVudD8udGFyZ2V0IGFzIEVsZW1lbnQ7XHJcblxyXG4gICAgaWYgKCF0YXJnZXRFbGVtZW50KSByZXR1cm4gZmFsc2U7XHJcblxyXG4gICAgY29uc3QgZGF0ZUlucHV0RWxlbWVudCA9IGRvY3VtZW50Py5nZXRFbGVtZW50QnlJZChjbGFzc05hbWUpO1xyXG4gICAgY29uc3QgZGF0ZVBpY2tlckNhbGVuZGFyQ29udGFpbmVyID0gZG9jdW1lbnQ/LnF1ZXJ5U2VsZWN0b3IoXHJcbiAgICAgICcuZHAtZGF5LWNhbGVuZGFyLWNvbnRhaW5lcidcclxuICAgICk7XHJcbiAgICBjb25zdCBtb250aFllYXJFbGVtZW50ID0gZG9jdW1lbnQ/LnF1ZXJ5U2VsZWN0b3IoXHJcbiAgICAgICcuZHAtbW9udGgtY2FsZW5kYXItY29udGFpbmVyJ1xyXG4gICAgKTtcclxuXHJcbiAgICBjb25zdCBpc05vdE1vbnRoWWVhckVsZW1lbnQgPSAhbW9udGhZZWFyRWxlbWVudD8uY29udGFpbnModGFyZ2V0RWxlbWVudCk7XHJcbiAgICBjb25zdCBpc091dHNpZGVQb3B1cCA9ICFwb3B1cD8ubmF0aXZlRWxlbWVudD8uY29udGFpbnModGFyZ2V0RWxlbWVudCk7XHJcbiAgICBjb25zdCBpc091dHNpZGVQb3B1cDIgPVxyXG4gICAgICAhcG9wdXA/Lm5hdGl2ZUVsZW1lbnQ/LmNsYXNzTmFtZS5pbmNsdWRlcygnZHAtY2FsZW5kYXItbW9udGgnKTtcclxuXHJcbiAgICBjb25zdCBpc05vdERhdGVJbnB1dEVsZW1lbnQgPSB0YXJnZXRFbGVtZW50ICE9PSBkYXRlSW5wdXRFbGVtZW50O1xyXG4gICAgY29uc3QgaXNOb3RJbnNpZGVDYWxlbmRhciA9XHJcbiAgICAgICFkYXRlUGlja2VyQ2FsZW5kYXJDb250YWluZXI/LmNvbnRhaW5zKHRhcmdldEVsZW1lbnQpO1xyXG4gICAgY29uc3QgaXNOb3RDYWxlbmRhck1vbnRoID1cclxuICAgICAgIXRhcmdldEVsZW1lbnQgfHxcclxuICAgICAgdHlwZW9mIHRhcmdldEVsZW1lbnQ/LmNsYXNzTmFtZSAhPT0gJ3N0cmluZycgfHxcclxuICAgICAgIXRhcmdldEVsZW1lbnQ/LmNsYXNzTmFtZT8uaW5jbHVkZXMoJ2RwLWNhbGVuZGFyLW1vbnRoJyk7XHJcblxyXG4gICAgaWYgKFxyXG4gICAgICBkYXRlUGlja2VyQ2FsZW5kYXJDb250YWluZXIgJiZcclxuICAgICAgaXNOb3RNb250aFllYXJFbGVtZW50ICYmXHJcbiAgICAgIGlzT3V0c2lkZVBvcHVwICYmXHJcbiAgICAgIGlzTm90RGF0ZUlucHV0RWxlbWVudCAmJlxyXG4gICAgICBpc05vdEluc2lkZUNhbGVuZGFyICYmXHJcbiAgICAgIGlzTm90Q2FsZW5kYXJNb250aCAmJlxyXG4gICAgICBpc091dHNpZGVQb3B1cDJcclxuICAgICkge1xyXG4gICAgICB0aGlzLmNsb3NlRGF0ZVBpY2tlcklmT3BlbihcclxuICAgICAgICB0YXJnZXRFbGVtZW50LFxyXG4gICAgICAgIHBvcHVwLFxyXG4gICAgICAgIGRhdGVQaWNrZXJPYmplY3Q/Lm92ZXJsYXksXHJcbiAgICAgICAgZGF0ZVBpY2tlck9iamVjdD8uY29tcG9uZW50XHJcbiAgICAgICk7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY2xvc2VEYXRlUGlja2VySWZPcGVuKFxyXG4gICAgdGFyZ2V0OiBhbnksXHJcbiAgICBvcGVuZWRFbGVtZW50OiBFbGVtZW50UmVmLFxyXG4gICAgZGF0ZVBpY2tlck92ZXJsYXk6IGJvb2xlYW4sXHJcbiAgICBEYXRlUGlja2VyOiBhbnlcclxuICApOiB2b2lkIHtcclxuICAgIGlmIChcclxuICAgICAgIW9wZW5lZEVsZW1lbnQ/Lm5hdGl2ZUVsZW1lbnQ/LmNvbnRhaW5zKHRhcmdldCkgJiZcclxuICAgICAgRGF0ZVBpY2tlcj8uYXJlQ2FsZW5kYXJzU2hvd25cclxuICAgICkge1xyXG4gICAgICBEYXRlUGlja2VyPy5hcGk/LmNsb3NlKCk7XHJcbiAgICAgIGRhdGVQaWNrZXJPdmVybGF5ID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==