@tilde-nlp/ngx-translate 5.0.39 → 5.0.40

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.
@@ -461,6 +461,8 @@ export const i18n_en = {
461
461
  "SUMMARY": "Create summary",
462
462
  "REPHRASE": "Rephrase translation",
463
463
  "MENU_TOOLTIP": "Rephrase or summarize translation",
464
+ "MENU_DISABLED_TOOLTIP": "Wait for translation or provide source text to use rephrasing and summarizing features",
465
+ "MENU_REPHRASE_DISABLED_TOOLTIP": "Translate into English to use rephrasing feature",
464
466
  "REPHRASE_MODAL": {
465
467
  "TITLE": "Rephrase translation",
466
468
  "DESCRIPTION": "Rephrase text into a specified writing style, adapting the language and tone to match a given target style or voice.",
@@ -482,10 +484,10 @@ export const i18n_en = {
482
484
  },
483
485
  "SUMMARY_MODAL": {
484
486
  "TITLE": "Translation summary",
485
- "DESCRIPTION": "Creating summary",
487
+ "DESCRIPTION": "Quickly condense lengthy texts into clear summaries using our advanced LLM feature.",
486
488
  "CANCEL": "Cancel",
487
489
  "CLOSE": "Close",
488
- "CREATING": "Creating summary...",
490
+ "CREATE": "Create summary",
489
491
  "REGENERATE": "Re-generate",
490
492
  "LIMIT": "<span class='text-m-semi-bold'>{{limit}}</span> summary left today. Need more? <a href='{{subscriptionUrl}}' target='_blank'>Upgrade subscription</a>",
491
493
  },
@@ -496,4 +498,4 @@ export const i18n_en = {
496
498
  }
497
499
  },
498
500
  };
499
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90bGQtdHJhbnNsYXRlL3NyYy9saWIvaTE4bi9lbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUc7SUFDckIsa0JBQWtCLEVBQUUsWUFBWTtJQUNoQyxVQUFVLEVBQUUsVUFBVTtJQUN0QixlQUFlLEVBQUU7UUFDZixVQUFVLEVBQUUsc0dBQXNHO1FBQ2xILGVBQWUsRUFBRSxZQUFZO1FBQzdCLG9CQUFvQixFQUFFLFFBQVE7UUFDOUIscUJBQXFCLEVBQUUsVUFBVTtRQUNqQyxxQkFBcUIsRUFBRSxVQUFVO1FBQ2pDLG9CQUFvQixFQUFFLFNBQVM7UUFDL0Isc0JBQXNCLEVBQUUsK0JBQStCO1FBQ3ZELDJCQUEyQixFQUFFLGdLQUFnSztRQUM3TCw0QkFBNEIsRUFBRSxpQ0FBaUM7UUFDL0QsaUNBQWlDLEVBQUUsa0tBQWtLO1FBQ3JNLHNDQUFzQyxFQUFFLHFDQUFxQztRQUM3RSxvQ0FBb0MsRUFBRSxvQ0FBb0M7UUFDMUUsaUNBQWlDLEVBQUUsd0JBQXdCO1FBQzNELHFDQUFxQyxFQUFFLGdCQUFnQjtRQUN2RCxnQ0FBZ0MsRUFBRSx1QkFBdUI7UUFDekQsaUNBQWlDLEVBQUUsNEJBQTRCO1FBQy9ELG1DQUFtQyxFQUFFLGNBQWM7UUFDbkQsa0NBQWtDLEVBQUUsVUFBVTtRQUM5Qyw2QkFBNkIsRUFBRSxrR0FBa0c7UUFDakksTUFBTSxFQUFFLE9BQU87UUFDZixxQkFBcUIsRUFBRSxtQkFBbUI7UUFDMUMsdUJBQXVCLEVBQUUsOEJBQThCO1FBQ3ZELHVCQUF1QixFQUFFLHlCQUF5QjtRQUNsRCw4QkFBOEIsRUFBRSwwRkFBMEY7UUFDMUgsb0JBQW9CLEVBQUUsNkxBQTZMO1FBQ25OLGdCQUFnQixFQUFFLHFGQUFxRjtRQUN2RyxnQkFBZ0IsRUFBRSx3Q0FBd0M7UUFDMUQsMEJBQTBCLEVBQUUseUJBQXlCO1FBQ3JELCtCQUErQixFQUFFLDRKQUE0SjtRQUM3TCxvQkFBb0IsRUFBRSxtSEFBbUg7UUFDekksSUFBSSxFQUFFLEtBQUs7UUFDWCxhQUFhLEVBQUUsb0JBQW9CO1FBQ25DLGdCQUFnQixFQUFFLHFCQUFxQjtRQUN2Qyx3QkFBd0IsRUFBRSxtQkFBbUI7UUFDN0MsdUJBQXVCLEVBQUUsWUFBWTtRQUNyQywyQkFBMkIsRUFBRSxhQUFhO1FBQzFDLG9CQUFvQixFQUFFLG9HQUFvRztRQUMxSCxnQkFBZ0IsRUFBRSxXQUFXO1FBQzdCLG9CQUFvQixFQUFFLFdBQVc7UUFDakMscUJBQXFCLEVBQUUsV0FBVztRQUNsQyxnQkFBZ0IsRUFBRSxNQUFNO1FBQ3hCLGdCQUFnQixFQUFFLE1BQU07UUFDeEIsa0JBQWtCLEVBQUUsUUFBUTtRQUM1Qix1QkFBdUIsRUFBRSxhQUFhO1FBQ3RDLHdCQUF3QixFQUFFLGNBQWM7UUFDeEMsbUJBQW1CLEVBQUUsU0FBUztRQUM5Qiw4QkFBOEIsRUFBRSxtQkFBbUI7UUFDbkQsd0JBQXdCLEVBQUUsK0NBQStDO1FBQ3pFLHFDQUFxQyxFQUFFLG1JQUFtSTtRQUMxSywrQkFBK0IsRUFBRSxvQ0FBb0M7UUFDckUseUJBQXlCLEVBQUUsaURBQWlEO1FBQzVFLGlDQUFpQyxFQUFFLGdHQUFnRztRQUNuSSwwQkFBMEIsRUFBRSxtQkFBbUI7UUFDL0Msb0JBQW9CLEVBQUUseUNBQXlDO1FBQy9ELGlDQUFpQyxFQUFFLHVJQUF1STtRQUMxSyxzQkFBc0IsRUFBRSxZQUFZO0tBQ3JDO0lBQ0QsZ0JBQWdCLEVBQUU7UUFDaEIsUUFBUSxFQUFFLFdBQVc7UUFDckIsV0FBVyxFQUFFLFFBQVE7UUFDckIsVUFBVSxFQUFFLFVBQVU7UUFDdEIsc0JBQXNCLEVBQUUsY0FBYztRQUN0QyxvQkFBb0IsRUFBRSxZQUFZO1FBQ2xDLGlCQUFpQixFQUFFLHFCQUFxQjtRQUN4QyxxQkFBcUIsRUFBRSwwQkFBMEI7UUFDakQsZ0JBQWdCLEVBQUUsUUFBUTtRQUMxQixtQkFBbUIsRUFBRSxXQUFXO1FBQ2hDLGVBQWUsRUFBRSxPQUFPO1FBQ3hCLGlCQUFpQixFQUFFLFNBQVM7UUFDNUIscUJBQXFCLEVBQUUsVUFBVTtRQUNqQyxtQkFBbUIsRUFBRSxjQUFjO1FBQ25DLGtCQUFrQixFQUFFLFVBQVU7UUFDOUIsaUJBQWlCLEVBQUUsTUFBTTtRQUN6QixlQUFlLEVBQUUsUUFBUTtRQUN6QiwyQkFBMkIsRUFBRSxRQUFRO1FBQ3JDLGdCQUFnQixFQUFFLDBEQUEwRDtRQUM1RSxxQkFBcUIsRUFBRSw0QkFBNEI7UUFDbkQsa0JBQWtCLEVBQUUsa0VBQWtFO1FBQ3RGLHVCQUF1QixFQUFFLDhCQUE4QjtRQUN2RCw0QkFBNEIsRUFBRSx1REFBdUQ7UUFDckYscUJBQXFCLEVBQUUsWUFBWTtLQUNwQztJQUNELFFBQVEsRUFBRTtRQUNSLHFCQUFxQixFQUFFLGtCQUFrQjtRQUN6QyxlQUFlLEVBQUUsaURBQWlEO1FBQ2xFLHVCQUF1QixFQUFFLCtGQUErRjtRQUN4SCx1QkFBdUIsRUFBRSxtQkFBbUI7UUFDNUMsaUJBQWlCLEVBQUUsd0VBQXdFO1FBQzNGLDhCQUE4QixFQUFFLDRJQUE0STtRQUM1SywyQkFBMkIsRUFBRSxjQUFjO1FBQzNDLHFCQUFxQixFQUFFLGlEQUFpRDtRQUN4RSxvQ0FBb0MsRUFBRSxjQUFjO1FBQ3BELDhCQUE4QixFQUFFLHFLQUFxSztRQUNyTSwwQkFBMEIsRUFBRSw2QkFBNkI7UUFDekQsb0JBQW9CLEVBQUUsK0NBQStDO1FBQ3JFLHdCQUF3QixFQUFFLGNBQWM7UUFDeEMsa0JBQWtCLEVBQUUsdURBQXVEO1FBQzNFLDBCQUEwQixFQUFFLDZFQUE2RTtRQUN6RyxxQkFBcUIsRUFBRSxvQkFBb0I7UUFDM0MsMEJBQTBCLEVBQUUscUJBQXFCO1FBQ2pELG9CQUFvQixFQUFFLGtHQUFrRztRQUN4SCwrQkFBK0IsRUFBRSxvQkFBb0I7UUFDckQseUJBQXlCLEVBQUUscURBQXFEO1FBQ2hGLGlDQUFpQyxFQUFFLGdHQUFnRztRQUNuSSw4QkFBOEIsRUFBRSwwREFBMEQ7UUFDMUYsd0JBQXdCLEVBQUUsK0ZBQStGO1FBQ3pILHVCQUF1QixFQUFFLGVBQWU7UUFDeEMsaUJBQWlCLEVBQUUsNEJBQTRCO1FBQy9DLHNCQUFzQixFQUFFLGNBQWM7UUFDdEMsZ0JBQWdCLEVBQUUsa0NBQWtDO1FBQ3BELHlCQUF5QixFQUFFLDZCQUE2QjtRQUN4RCxtQkFBbUIsRUFBRSxvREFBb0Q7UUFDekUsMkJBQTJCLEVBQUUsK0ZBQStGO1FBQzVILHlCQUF5QixFQUFFLCtCQUErQjtRQUMxRCxtQkFBbUIsRUFBRSwrR0FBK0c7UUFDcEksTUFBTSxFQUFFLDJDQUEyQztRQUNuRCxjQUFjLEVBQUUseUdBQXlHO1FBQ3pILFlBQVksRUFBRSxpQkFBaUI7UUFDL0IsTUFBTSxFQUFFLHlEQUF5RDtRQUNqRSxjQUFjLEVBQUUsNkdBQTZHO1FBQzdILE1BQU0sRUFBRSxnRUFBZ0U7UUFDeEUsWUFBWSxFQUFFLHNDQUFzQztRQUNwRCxNQUFNLEVBQUUsdUNBQXVDO1FBQy9DLGNBQWMsRUFBRSw0RUFBNEU7UUFDNUYsTUFBTSxFQUFFLDRDQUE0QztRQUNwRCxjQUFjLEVBQUUscUVBQXFFO1FBQ3JGLE1BQU0sRUFBRSwrRkFBK0Y7UUFDdkcsT0FBTyxFQUFFLDZDQUE2QztRQUN0RCxhQUFhLEVBQUUscUJBQXFCO1FBQ3BDLFVBQVUsRUFBRSxrQ0FBa0M7UUFDOUMsZ0JBQWdCLEVBQUUsc0JBQXNCO1FBQ3hDLFVBQVUsRUFBRSw0QkFBNEI7UUFDeEMsMEJBQTBCLEVBQUUsb0JBQW9CO1FBQ2hELG9CQUFvQixFQUFFLCtCQUErQjtRQUNyRCw0QkFBNEIsRUFBRSwrRkFBK0Y7UUFDN0gseUJBQXlCLEVBQUU7WUFDekIsZ0JBQWdCLEVBQUUsZ0NBQWdDO1lBQ2xELFVBQVUsRUFBRSxzS0FBc0s7U0FDbkw7UUFDRCw0QkFBNEIsRUFBRTtZQUM1QixzQkFBc0IsRUFBRSw4QkFBOEI7WUFDdEQsZ0JBQWdCLEVBQUUsaUZBQWlGO1lBQ25HLCtCQUErQixFQUFFLDRCQUE0QjtZQUM3RCx5QkFBeUIsRUFBRSxzREFBc0Q7WUFDakYsbUNBQW1DLEVBQUUsMERBQTBEO1lBQy9GLDZCQUE2QixFQUFFLCtGQUErRjtZQUM5SCwrQkFBK0IsRUFBRSxtQkFBbUI7WUFDcEQseUJBQXlCLEVBQUUsOEZBQThGO1NBQzFIO1FBQ0QsYUFBYSxFQUFFO1lBQ2IseUJBQXlCLEVBQUUsbUJBQW1CO1lBQzlDLG1CQUFtQixFQUFFLDBFQUEwRTtZQUMvRiw0QkFBNEIsRUFBRSxpQkFBaUI7WUFDL0Msc0JBQXNCLEVBQUUsNkVBQTZFO1lBQ3JHLHNDQUFzQyxFQUFFLHlCQUF5QjtZQUNqRSxnQ0FBZ0MsRUFBRSwrSEFBK0g7WUFDakssK0NBQStDLEVBQUUseUJBQXlCO1lBQzFFLHlDQUF5QyxFQUFFLDZJQUE2STtZQUN4TCxhQUFhLEVBQUUsZ0JBQWdCO1lBQy9CLE9BQU8sRUFBRSxrQ0FBa0M7WUFDM0Msb0JBQW9CLEVBQUUsMkJBQTJCO1lBQ2pELGNBQWMsRUFBRSwrQkFBK0I7U0FDaEQ7UUFDRCxPQUFPLEVBQUU7WUFDUCxpQkFBaUIsRUFBRSxXQUFXO1lBQzlCLFdBQVcsRUFBRSxtREFBbUQ7WUFDaEUseUJBQXlCLEVBQUUsY0FBYztZQUN6QyxtQkFBbUIsRUFBRSx3RUFBd0U7WUFDN0YsdUJBQXVCLEVBQUUsMEJBQTBCO1lBQ25ELGlCQUFpQixFQUFFLHFGQUFxRjtZQUN4Ryx5QkFBeUIsRUFBRSxjQUFjO1lBQ3pDLG1CQUFtQixFQUFFLHVHQUF1RztZQUM1SCw0QkFBNEIsRUFBRSwyQkFBMkI7WUFDekQsc0JBQXNCLEVBQUUsOENBQThDO1lBQ3RFLDBCQUEwQixFQUFFLHNCQUFzQjtZQUNsRCxvQkFBb0IsRUFBRSxxRUFBcUU7U0FDNUY7S0FDRjtJQUNELFdBQVcsRUFBRTtRQUNYLE1BQU0sRUFBRSxpQkFBaUI7UUFDekIsSUFBSSxFQUFFLFFBQVE7UUFDZCxJQUFJLEVBQUUsU0FBUztRQUNmLElBQUksRUFBRSxVQUFVO1FBQ2hCLElBQUksRUFBRSxRQUFRO1FBQ2QsSUFBSSxFQUFFLFNBQVM7UUFDZixJQUFJLEVBQUUsV0FBVztRQUNqQixJQUFJLEVBQUUsWUFBWTtRQUNsQixJQUFJLEVBQUUsU0FBUztRQUNmLElBQUksRUFBRSxhQUFhO1FBQ25CLElBQUksRUFBRSxXQUFXO1FBQ2pCLElBQUksRUFBRSxPQUFPO1FBQ2IsSUFBSSxFQUFFLFdBQVc7UUFDakIsSUFBSSxFQUFFLFNBQVM7UUFDZixJQUFJLEVBQUUsV0FBVztRQUNqQixJQUFJLEVBQUUsUUFBUTtRQUNkLElBQUksRUFBRSxRQUFRO1FBQ2QsSUFBSSxFQUFFLFdBQVc7UUFDakIsSUFBSSxFQUFFLE9BQU87UUFDYixJQUFJLEVBQUUsU0FBUztRQUNmLElBQUksRUFBRSxRQUFRO1FBQ2QsSUFBSSxFQUFFLFFBQVE7UUFDZCxJQUFJLEVBQUUsT0FBTztRQUNiLElBQUksRUFBRSxPQUFPO1FBQ2IsSUFBSSxFQUFFLFNBQVM7UUFDZixJQUFJLEVBQUUsU0FBUztRQUNmLElBQUksRUFBRSxZQUFZO1FBQ2xCLElBQUksRUFBRSxTQUFTO1FBQ2YsSUFBSSxFQUFFLFdBQVc7UUFDakIsSUFBSSxFQUFFLFNBQVM7UUFDZixJQUFJLEVBQUUsU0FBUztRQUNmLElBQUksRUFBRSxVQUFVO1FBQ2hCLElBQUksRUFBRSxRQUFRO1FBQ2QsSUFBSSxFQUFFLFNBQVM7UUFDZixJQUFJLEVBQUUsVUFBVTtRQUNoQixJQUFJLEVBQUUsVUFBVTtRQUNoQixJQUFJLEVBQUUsT0FBTztRQUNiLElBQUksRUFBRSxZQUFZO0tBQ25CO0lBQ0QsYUFBYSxFQUFFO1FBQ2IsY0FBYyxFQUFFLE9BQU87UUFDdkIsb0JBQW9CLEVBQUUsYUFBYTtRQUNuQyxjQUFjLEVBQUUsb0JBQW9CO1FBQ3BDLGNBQWMsRUFBRSxjQUFjO1FBQzlCLGFBQWEsRUFBRSxzQkFBc0I7UUFDckMsaUJBQWlCLEVBQUUsNkJBQTZCO1FBQ2hELE1BQU0sRUFBRSxtQkFBbUI7UUFDM0IsU0FBUyxFQUFFLHFCQUFxQjtRQUNoQyxhQUFhLEVBQUUsaUJBQWlCO1FBQ2hDLGdCQUFnQixFQUFFLGdCQUFnQjtRQUNsQyx5QkFBeUIsRUFBRSxzQkFBc0I7S0FDbEQ7SUFDRCxVQUFVLEVBQUU7UUFDVixNQUFNLEVBQUUsbUJBQW1CO1FBQzNCLFNBQVMsRUFBRSxxQkFBcUI7UUFDaEMsZ0JBQWdCLEVBQUUsZ0JBQWdCO0tBQ25DO0lBQ0QsZ0JBQWdCLEVBQUU7UUFDaEIsU0FBUyxFQUFFLGlCQUFpQjtRQUM1QixlQUFlLEVBQUUsNk5BQTZOO1FBQzlPLGVBQWUsRUFBRSw2TUFBNk07UUFDOU4sZUFBZSxFQUFFLHVLQUF1SztRQUN4TCxhQUFhLEVBQUUsNkJBQTZCO1FBQzVDLFNBQVMsRUFBRSxnQkFBZ0I7UUFDM0IsZUFBZSxFQUFFLHVMQUF1TDtRQUN4TSxlQUFlLEVBQUUsNkxBQTZMO1FBQzlNLGVBQWUsRUFBRSxxREFBcUQ7UUFDdEUsUUFBUSxFQUFFLDJMQUEyTDtRQUNyTSxRQUFRLEVBQUUscUVBQXFFO1FBQy9FLFFBQVEsRUFBRSxvRkFBb0Y7UUFDOUYsUUFBUSxFQUFFLHNEQUFzRDtRQUNoRSxTQUFTLEVBQUUsbUNBQW1DO1FBQzlDLGVBQWUsRUFBRSxrSEFBa0g7UUFDbkksZUFBZSxFQUFFLHFCQUFxQjtRQUN0QyxRQUFRLEVBQUUsK0JBQStCO1FBQ3pDLFFBQVEsRUFBRSw0QkFBNEI7UUFDdEMsUUFBUSxFQUFFLDJGQUEyRjtRQUNyRyxRQUFRLEVBQUUscUNBQXFDO1FBQy9DLFFBQVEsRUFBRSxzQkFBc0I7UUFDaEMsUUFBUSxFQUFFLG9HQUFvRztRQUM5RyxRQUFRLEVBQUUsaUVBQWlFO1FBQzNFLFFBQVEsRUFBRSwrRkFBK0Y7UUFDekcsUUFBUSxFQUFFLG1IQUFtSDtRQUM3SCxlQUFlLEVBQUUsMmpCQUEyakI7UUFDNWtCLE9BQU8sRUFBRSxjQUFjO0tBQ3hCO0lBQ0Qsa0JBQWtCLEVBQUU7UUFDbEIsU0FBUyxFQUFFLG1CQUFtQjtRQUM5QixlQUFlLEVBQUUsaUxBQWlMO1FBQ2xNLGVBQWUsRUFBRSw2REFBNkQ7UUFDOUUsZUFBZSxFQUFFLHVLQUF1SztRQUN4TCxhQUFhLEVBQUUsK0JBQStCO1FBQzlDLFNBQVMsRUFBRSxrQkFBa0I7UUFDN0IsZUFBZSxFQUFFLG9MQUFvTDtRQUNyTSxlQUFlLEVBQUUsNkxBQTZMO1FBQzlNLGVBQWUsRUFBRSxxREFBcUQ7UUFDdEUsUUFBUSxFQUFFLHlMQUF5TDtRQUNuTSxRQUFRLEVBQUUscUVBQXFFO1FBQy9FLFFBQVEsRUFBRSxvRkFBb0Y7UUFDOUYsUUFBUSxFQUFFLHNEQUFzRDtRQUNoRSxTQUFTLEVBQUUsbUNBQW1DO1FBQzlDLGVBQWUsRUFBRSxrSEFBa0g7UUFDbkksZUFBZSxFQUFFLHFCQUFxQjtRQUN0QyxRQUFRLEVBQUUsK0JBQStCO1FBQ3pDLFFBQVEsRUFBRSw0QkFBNEI7UUFDdEMsUUFBUSxFQUFFLDJGQUEyRjtRQUNyRyxRQUFRLEVBQUUscUNBQXFDO1FBQy9DLFFBQVEsRUFBRSxzQkFBc0I7UUFDaEMsUUFBUSxFQUFFLG9HQUFvRztRQUM5RyxRQUFRLEVBQUUsaUVBQWlFO1FBQzNFLFFBQVEsRUFBRSwrRkFBK0Y7UUFDekcsZUFBZSxFQUFFLDBTQUEwUztRQUMzVCxPQUFPLEVBQUUsY0FBYztLQUN4QjtJQUNELGNBQWMsRUFBRTtRQUNkLE1BQU0sRUFBRSxvQkFBb0I7UUFDNUIsV0FBVyxFQUFFLFdBQVc7UUFDeEIsU0FBUyxFQUFFLFNBQVM7UUFDcEIsUUFBUSxFQUFFLFFBQVE7UUFDbEIsUUFBUSxFQUFFLGdCQUFnQjtRQUMxQixZQUFZLEVBQUU7WUFDWixPQUFPLEVBQUUsbUNBQW1DO1lBQzVDLGFBQWEsRUFBRSw4RUFBOEU7U0FDOUY7S0FDRjtJQUNELFVBQVUsRUFBRTtRQUNWLE1BQU0sRUFBRSxvQkFBb0I7UUFDNUIsT0FBTyxFQUFFLHFCQUFxQjtRQUM5QixPQUFPLEVBQUUscUJBQXFCO1FBQzlCLFFBQVEsRUFBRSxzQkFBc0I7UUFDaEMsTUFBTSxFQUFFLG9CQUFvQjtRQUM1QixPQUFPLEVBQUUscUJBQXFCO1FBQzlCLEtBQUssRUFBRSxtQkFBbUI7UUFDMUIsTUFBTSxFQUFFLG9CQUFvQjtRQUM1QixNQUFNLEVBQUUsb0JBQW9CO1FBQzVCLE9BQU8sRUFBRSxxQkFBcUI7UUFDOUIsUUFBUSxFQUFFLHNCQUFzQjtRQUNoQyxTQUFTLEVBQUUsdUJBQXVCO1FBQ2xDLFFBQVEsRUFBRSxzQkFBc0I7UUFDaEMsU0FBUyxFQUFFLHVCQUF1QjtRQUNsQyxVQUFVLEVBQUUsVUFBVTtLQUN2QjtJQUNELGtCQUFrQixFQUFFO1FBQ2xCLE9BQU8sRUFBRSxZQUFZO1FBQ3JCLFNBQVMsRUFBRSxTQUFTO1FBQ3BCLGFBQWEsRUFBRSxpR0FBaUc7UUFDaEgsVUFBVSxFQUFFLFlBQVk7UUFDeEIsZUFBZSxFQUFFLE1BQU07UUFDdkIsTUFBTSxFQUFFLE1BQU07UUFDZCxRQUFRLEVBQUUsY0FBYztRQUN4QixtQkFBbUIsRUFBRSx5TEFBeUw7UUFDOU0sd0JBQXdCLEVBQUUsdUJBQXVCO1FBQ2pELGNBQWMsRUFBRSx3QkFBd0I7UUFDeEMseUJBQXlCLEVBQUUsb0JBQW9CO1FBQy9DLE1BQU0sRUFBRSxNQUFNO1FBQ2QsWUFBWSxFQUFFLE9BQU87UUFDckIsY0FBYyxFQUFFLDZCQUE2QjtRQUM3Qyw2QkFBNkIsRUFBRSwyQkFBMkI7UUFDMUQsYUFBYSxFQUFFO1lBQ2IsYUFBYSxFQUFFLDBCQUEwQjtZQUN6QyxtQkFBbUIsRUFBRSwwQkFBMEI7U0FDaEQ7UUFDRCxlQUFlLEVBQUU7WUFDZixRQUFRLEVBQUUsUUFBUTtZQUNsQix1QkFBdUIsRUFBRSxlQUFlO1lBQ3hDLFFBQVEsRUFBRSxRQUFRO1lBQ2xCLGVBQWUsRUFBRSxpRkFBaUY7WUFDbEcsZUFBZSxFQUFFLHlIQUF5SDtZQUMxSSxPQUFPLEVBQUUscUJBQXFCO1lBQzlCLHVCQUF1QixFQUFFLCtGQUErRjtTQUN6SDtRQUNELFVBQVUsRUFBRTtZQUNWLE1BQU0sRUFBRSxxQ0FBcUM7WUFDN0MsV0FBVyxFQUFFLG9CQUFvQjtZQUNqQyxZQUFZLEVBQUUsNkRBQTZEO1lBQzNFLG9CQUFvQixFQUFFLHVGQUF1RjtZQUM3RyxNQUFNLEVBQUUsNEJBQTRCO1lBQ3BDLFNBQVMsRUFBRSw4RUFBOEU7WUFDekYsd0JBQXdCLEVBQUUsMERBQTBEO1NBQ3JGO1FBQ0QsUUFBUSxFQUFFO1lBQ1IsT0FBTyxFQUFFLFlBQVk7WUFDckIsYUFBYSxFQUFFLDBCQUEwQjtZQUN6QyxNQUFNLEVBQUUsZ0xBQWdMO1lBQ3hMLHdCQUF3QixFQUFFLHFCQUFxQjtZQUMvQyx1QkFBdUIsRUFBRSw4RkFBOEY7WUFDdkgsZ0JBQWdCLEVBQUUsbUJBQW1CO1lBQ3JDLGVBQWUsRUFBRSw2RkFBNkY7U0FDL0c7UUFDRCxRQUFRLEVBQUU7WUFDUixnQkFBZ0IsRUFBRSxpQkFBaUI7U0FDcEM7S0FDRjtJQUNELFNBQVMsRUFBRTtRQUNULHNCQUFzQixFQUFFLGtCQUFrQjtRQUMxQyxPQUFPLEVBQUUsU0FBUztRQUNsQixLQUFLLEVBQUUsS0FBSztRQUNaLGtCQUFrQixFQUFFLGtCQUFrQjtRQUN0QyxVQUFVLEVBQUUsVUFBVTtRQUN0QixTQUFTLEVBQUUsU0FBUztRQUNwQixNQUFNLEVBQUUsWUFBWTtRQUNwQixLQUFLLEVBQUUsb0JBQW9CO1FBQzNCLEtBQUssRUFBRSxjQUFjO1FBQ3JCLEtBQUssRUFBRSxTQUFTO1FBQ2hCLEtBQUssRUFBRSwyQkFBMkI7UUFDbEMsV0FBVyxFQUFFLGVBQWU7UUFDNUIsTUFBTSxFQUFFLHFCQUFxQjtRQUM3QixPQUFPLEVBQUUsd0JBQXdCO1FBQ2pDLFdBQVcsRUFBRSxXQUFXO1FBQ3hCLEtBQUssRUFBRSxhQUFhO1FBQ3BCLE1BQU0sRUFBRSwyRUFBMkU7UUFDbkYsSUFBSSxFQUFFLHlCQUF5QjtRQUMvQixjQUFjLEVBQUUsMEJBQTBCO0tBQzNDO0lBQ0Qsb0JBQW9CLEVBQUU7UUFDcEIsT0FBTyxFQUFFLHVCQUF1QjtLQUNqQztJQUNELE9BQU8sRUFBRTtRQUNQLFFBQVEsRUFBRSxRQUFRO1FBQ2xCLDBCQUEwQixFQUFFLDJCQUEyQjtRQUN2RCwyQkFBMkIsRUFBRSxlQUFlO1FBQzVDLGVBQWUsRUFBRSxzQkFBc0I7UUFDdkMsTUFBTSxFQUFFLGdCQUFnQjtRQUN4QixPQUFPLEVBQUUsa0JBQWtCO1FBQzNCLDJCQUEyQixFQUFFLGlCQUFpQjtRQUM5QyxxQkFBcUIsRUFBRSx1SUFBdUk7S0FDL0o7SUFDRCxpQkFBaUIsRUFBRTtRQUNqQixNQUFNLEVBQUUsMkJBQTJCO1FBQ25DLE9BQU8sRUFBRSx3QkFBd0I7UUFDakMsYUFBYSxFQUFFLG9FQUFvRTtRQUNuRixRQUFRLEVBQUUsUUFBUTtRQUNsQixTQUFTLEVBQUUsYUFBYTtRQUN4QixhQUFhLEVBQUUscUJBQXFCO1FBQ3BDLEtBQUssRUFBRSxLQUFLO1FBQ1osT0FBTyxFQUFFLE9BQU87S0FDakI7SUFDRCxhQUFhLEVBQUU7UUFDYixRQUFRLEVBQUUsUUFBUTtRQUNsQixlQUFlLEVBQUUsbUJBQW1CO1FBQ3BDLE1BQU0sRUFBRSxRQUFRO1FBQ2hCLE9BQU8sRUFBRSxPQUFPO1FBQ2hCLFdBQVcsRUFBRSxxQkFBcUI7UUFDbEMsT0FBTyxFQUFFLFlBQVk7UUFDckIseUJBQXlCLEVBQUUsaURBQWlEO0tBQzdFO0lBQ0QsZUFBZSxFQUFFO1FBQ2YsUUFBUSxFQUFFLGdCQUFnQjtRQUMxQixRQUFRLEVBQUUsY0FBYztRQUN4QixvQkFBb0IsRUFBRSxrQkFBa0I7UUFDeEMscUJBQXFCLEVBQUUsUUFBUTtRQUMvQixlQUFlLEVBQUUsZUFBZTtRQUNoQyxtQkFBbUIsRUFBRSxZQUFZO1FBQ2pDLGVBQWUsRUFBRSxlQUFlO1FBQ2hDLGNBQWMsRUFBRSxtQkFBbUI7UUFDbkMsd0JBQXdCLEVBQUUsd0JBQXdCO1FBQ2xELHdCQUF3QixFQUFFLG1DQUFtQztRQUM3RCxVQUFVLEVBQUUsVUFBVTtLQUN2QjtJQUNELHFDQUFxQyxFQUFFO1FBQ3JDLE9BQU8sRUFBRSxzQ0FBc0M7UUFDL0MsYUFBYSxFQUFFLGdCQUFnQjtRQUMvQixzQkFBc0IsRUFBRSxxQkFBcUI7UUFDN0MseUJBQXlCLEVBQUUscUJBQXFCO0tBQ2pEO0lBQ0QsZ0JBQWdCLEVBQUU7UUFDaEIsTUFBTSxFQUFFLG9DQUFvQztRQUM1QyxjQUFjLEVBQUUsd0hBQXdIO0tBQ3pJO0lBQ0QsU0FBUyxFQUFFO1FBQ1QsY0FBYyxFQUFFLGNBQWM7S0FDL0I7SUFDRCxnQkFBZ0IsRUFBRTtRQUNoQixNQUFNLEVBQUUsUUFBUTtRQUNoQixPQUFPLEVBQUUsT0FBTztLQUNqQjtJQUNELEtBQUssRUFBRTtRQUNMLFNBQVMsRUFBRSxnQkFBZ0I7UUFDM0IsVUFBVSxFQUFFLHNCQUFzQjtRQUNsQyxjQUFjLEVBQUUsbUNBQW1DO1FBQ25ELGdCQUFnQixFQUFFO1lBQ2hCLE9BQU8sRUFBRSxzQkFBc0I7WUFDL0IsYUFBYSxFQUFFLHNIQUFzSDtZQUNySSxPQUFPLEVBQUUsT0FBTztZQUNoQixRQUFRLEVBQUUsUUFBUTtZQUNsQixVQUFVLEVBQUUsVUFBVTtZQUN0QixZQUFZLEVBQUUsZUFBZTtZQUM3QixPQUFPLEVBQUUsd0pBQXdKO1lBQ2pLLGdCQUFnQixFQUFFO2dCQUNoQixPQUFPLEVBQUUsZUFBZTtnQkFDeEIsaUJBQWlCLEVBQUUsc1BBQXNQO2dCQUN6USxzQkFBc0IsRUFBRSxrU0FBa1M7Z0JBQzFULGtCQUFrQixFQUFFLDRSQUE0UjtnQkFDaFQsZ0JBQWdCLEVBQUUseUJBQXlCO2dCQUMzQyxTQUFTLEVBQUUsU0FBUztnQkFDcEIsY0FBYyxFQUFFLGNBQWM7Z0JBQzlCLFVBQVUsRUFBRSxVQUFVO2FBQ3ZCO1NBQ0Y7UUFDRCxlQUFlLEVBQUU7WUFDZixPQUFPLEVBQUUscUJBQXFCO1lBQzlCLGFBQWEsRUFBRSxrQkFBa0I7WUFDakMsUUFBUSxFQUFFLFFBQVE7WUFDbEIsT0FBTyxFQUFFLE9BQU87WUFDaEIsVUFBVSxFQUFFLHFCQUFxQjtZQUNqQyxZQUFZLEVBQUUsYUFBYTtZQUMzQixPQUFPLEVBQUUsdUpBQXVKO1NBQ2pLO1FBQ0QsUUFBUSxFQUFFO1lBQ1IsYUFBYSxFQUFFLHNIQUFzSDtZQUNySSxxQkFBcUIsRUFBRSxzSEFBc0g7WUFDN0ksU0FBUyxFQUFFLHNLQUFzSztTQUNsTDtLQUNGO0NBQ0YsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBpMThuX2VuID0ge1xyXG4gIFwiVEVSTV9QT1JUQUxfTkFNRVwiOiBcIlRpbGRlIHRlcm1cIixcclxuICBcIkFQUF9OQU1FXCI6IFwiVGlsZGUgTVRcIixcclxuICBcIlRMRF9UUkFOU0xBVEVcIjoge1xyXG4gICAgXCJCRVNUX05NVFwiOiBcIlByb3VkIHdpbm5lciBvZiB0aGUgYmVzdCBtYWNoaW5lIHRyYW5zbGF0aW9uIHRlY2hub2xvZ3kgYXQgV01UIENvbXBldGl0aW9uIGZvciB0aHJlZSB5ZWFycyBpbiBhIHJvdy5cIixcclxuICAgIFwiQkVTVF9OTVRfTU9SRVwiOiBcIkxlYXJuIG1vcmVcIixcclxuICAgIFwiQ0FOQ0VMX1RSQU5TTEFUSU9OXCI6IFwiQ2FuY2VsXCIsXHJcbiAgICBcIkRJQ1RJT05BUllfRVhBTVBMRVNcIjogXCJleGFtcGxlc1wiLFxyXG4gICAgXCJET1dOTE9BRF9UUkFOU0xBVEVEXCI6IFwiRG93bmxvYWRcIixcclxuICAgIFwiRE9NQUlOU19BUklBX0xBQkVMXCI6IFwiRG9tYWluc1wiLFxyXG4gICAgXCJGSUxFX0RPV05MT0FEX1NPVVJDRVwiOiBcIkRvd25sb2FkIGNvbnZlcnRlZCBzb3VyY2UgUERGXCIsXHJcbiAgICBcIkZJTEVfRE9XTkxPQURfU09VUkNFX0hFTFBcIjogXCJQREYgY29udmVyc2lvbiBtYXkgY2F1c2UgZm9ybWF0dGluZyBlcnJvcnMgb3IgdGV4dCBkaXN0b3J0aW9uLiBQbGVhc2UgY2hlY2sgdGhlIGNvbnZlcnRlZCBmaWxlIGFuZCBmaXggdGhlIGVycm9ycyBiZWZvcmUgcmUtdXBsb2FkaW5nIHRoZSBmaWxlIGZvciB0cmFuc2xhdGlvblwiLFxyXG4gICAgXCJGSUxFX0RPV05MT0FEX1NPVVJDRV9JTUFHRVwiOiBcIkRvd25sb2FkIGNvbnZlcnRlZCBzb3VyY2UgaW1hZ2VcIixcclxuICAgIFwiRklMRV9ET1dOTE9BRF9TT1VSQ0VfSU1BR0VfSEVMUFwiOiBcIkltYWdlIGNvbnZlcnNpb24gbWF5IGNhdXNlIGZvcm1hdHRpbmcgZXJyb3JzIG9yIHRleHQgZGlzdG9ydGlvbi4gUGxlYXNlIGNoZWNrIHRoZSBjb252ZXJ0ZWQgZmlsZSBhbmQgZml4IHRoZSBlcnJvcnMgYmVmb3JlIHJlLXVwbG9hZGluZyB0aGUgZmlsZSBmb3IgdHJhbnNsYXRpb25cIixcclxuICAgIFwiRklMRV9UQU5TTEFUSU9OX1NUQVRVU1NfSU5JVElBTElaSU5HXCI6IFwiSW5pdGlhbGl6aW5nIHRyYW5zbGF0aW9uIHByb2Nlc3MuLi5cIixcclxuICAgIFwiRklMRV9UQU5TTEFUSU9OX1NUQVRVU1NfRVhUUkFDVElOR1wiOiBcIkV4dHJhY3RpbmcgdHJhbnNsYXRhYmxlIGNvbnRlbnQuLi5cIixcclxuICAgIFwiRklMRV9UQU5TTEFUSU9OX1NUQVRVU1NfV0FJVElOR1wiOiBcIlN0YXJ0aW5nIHRyYW5zbGF0b3IuLi5cIixcclxuICAgIFwiRklMRV9UQU5TTEFUSU9OX1NUQVRVU1NfVFJBTlNMQVRJTkdcIjogXCJUcmFuc2xhdGluZy4uLlwiLFxyXG4gICAgXCJGSUxFX1RBTlNMQVRJT05fU1RBVFVTU19TQVZJTkdcIjogXCJTYXZpbmcgdHJhbnNsYXRpb24uLi5cIixcclxuICAgIFwiRklMRV9UQU5TTEFUSU9OX1NUQVRVU1NfUVVFVUlOR1wiOiBcIlRyYW5zbGF0aW9uIGlzIHN0YXJ0aW5nLi4uXCIsXHJcbiAgICBcIkZJTEVfVEFOU0xBVElPTl9TVEFUVVNTX1VQTE9BRElOR1wiOiBcIlVwbG9hZGluZy4uLlwiLFxyXG4gICAgXCJGSUxFX1RBTlNMQVRJT05fU1RBVFVTU19VUExPQURFRFwiOiBcIlVwbG9hZGVkXCIsXHJcbiAgICBcIkZJTEVfVEFSR0VUX1BSRVZJRVdfTUVTU0FHRVwiOiBcIlRoaXMgaXMgYSBwcmV2aWV3IG9mIHRoZSB0cmFuc2xhdGVkIGRvY3VtZW50LCBwbGVhc2UgZG93bmxvYWQgdG8gcmVjZWl2ZSBhIGNvbXBsZXRlIHRyYW5zbGF0aW9uLlwiLFxyXG4gICAgXCJGUk9NXCI6IFwiRnJvbTpcIixcclxuICAgIFwiUERGX0RJU0NMQUlNRVJfTElOS1wiOiBcIlNlZSBob3cgdG8gZml4IGl0XCIsXHJcbiAgICBcIklNQUdFX0RJU0NMQUlNRVJfTElOS1wiOiBcIlJlYWQgYWJvdXQgaW1hZ2UgY29udmVyc2lvbi5cIixcclxuICAgIFwiUFJFUEFSSU5HX1RSQU5TTEFUSU9OXCI6IFwiVHJhbnNsYXRpb24gaXMgc3RhcnRpbmdcIixcclxuICAgIFwiUkVHSVNURVJFRF9GT1JNQVRTX0xPR0dFRF9JTlwiOiBcIlJlZ2lzdGVyZWQgdXNlcnMgaGF2ZSBhY2Nlc3MgdG8gdGhlIGZvbGxvd2luZyBkb2N1bWVudCBmb3JtYXRzIHRyYW5zbGF0aW9uOiB7e2Zvcm1hdHN9fS5cIixcclxuICAgIFwiUkVHSVNURVJFRF9GT1JNQVRTXCI6IFwiUmVnaXN0ZXJlZCB1c2VycyBoYXZlIGFjY2VzcyB0byB0aGUgZm9sbG93aW5nIGRvY3VtZW50IGZvcm1hdHMgdHJhbnNsYXRpb246IHt7Zm9ybWF0c319LiBSZXF1ZXN0IHlvdXIgYWNjZXNzIDxhIGNsYXNzPVxcXCJhY2NlbnQtY29sb3JcXFwiIHRhcmdldD1cXFwiYmxhbmtcXFwiIGhyZWY9XFxcInt7cmVnaXN0ZXJMaW5rfX1cXFwiPmhlcmU8L2E+LlwiLFxyXG4gICAgXCJTT1VSQ0VfRk9STUFUU1wiOiBcIlNlY3VyZSBwdWJsaWMgdHJhbnNsYXRpb24gc2VydmljZSBzdXBwb3J0cyBmb2xsb3dpbmcgZG9jdW1lbnQgZm9ybWF0czoge3tmb3JtYXRzfX07XCIsXHJcbiAgICBcIlNPVVJDRV9UT09MVElQXCI6IFwiVHlwZSB0ZXh0IG9yIGluc2VydCBsaW5rIHRvIHRyYW5zbGF0ZS5cIixcclxuICAgIFwiU09VUkNFX1RPT0xUSVBfT05MWV9URVhUXCI6IFwiVHlwZSB0ZXh0IHRvIHRyYW5zbGF0ZS5cIixcclxuICAgIFwiU09VUkNFX1RPT0xUSVBfU0VOU0lUSVZFX0lORk9cIjogXCJEbyBub3QgdXNlIHt7YXBwTmFtZX19IHRvIHRyYW5zbGF0ZSBjb25maWRlbnRpYWwgb3IgY2xhc3NpZmllZCBpbmZvcm1hdGlvbiBvciB0ZXh0cyB0aGF0IGNvbnRhaW4gc3BlY2lhbCBjYXRlZ29yaWVzIG9mIHBlcnNvbmFsIGRhdGEsIHN1Y2ggYXMgbWVkaWNhbCBkYXRhXCIsXHJcbiAgICBcIlRBUkdFVF9ERVNDUklQVElPTlwiOiBcIk1hY2hpbmUgdHJhbnNsYXRpb24gYWxsb3dzIHRvIHVuZGVyc3RhbmQgdGhlIG1lYW5pbmcgb2YgYSBzb3VyY2UgdGV4dCwgYnV0IGNhbm5vdCBzdWJzdGl0dXRlIGEgaHVtYW4gdHJhbnNsYXRpb24uXCIsXHJcbiAgICBcIlRPXCI6IFwiVG86XCIsXHJcbiAgICBcIlRFWFRfQ09QSUVEXCI6IFwiVHJhbnNsYXRpb24gY29waWVkXCIsXHJcbiAgICBcIlNVR0dFU1RfQlVUVE9OXCI6IFwiU3VnZ2VzdCB0cmFuc2xhdGlvblwiLFxyXG4gICAgXCJTVUdHRVNUX09SSUdJTkFMX0xBQkVMXCI6IFwiT3JpZ2luYWwgc2VudGVuY2VcIixcclxuICAgIFwiU1VHR0VTVF9TVUJNSVRfQlVUVE9OXCI6IFwiQ29udHJpYnV0ZVwiLFxyXG4gICAgXCJTVUdHRVNUX1RSQU5TTEFUSU9OX0xBQkVMXCI6IFwiVHJhbnNsYXRpb25cIixcclxuICAgIFwiU1VHR0VTVF9VU0FHRV9JTkZPXCI6IFwiWW91ciBhbm9ueW1pemVkIHRyYW5zbGF0aW9uIHN1Z2dlc3Rpb24gd2lsbCBiZSB1c2VkIHRvIGltcHJvdmUgdGhlIHF1YWxpdHkgb2YgbWFjaGluZSB0cmFuc2xhdGlvbi5cIixcclxuICAgIFwiVE9PTFRJUF9BQ1RJT05cIjogXCJUcmFuc2xhdGVcIixcclxuICAgIFwiVkVORE9SU19BUklBX0xBQkVMXCI6IFwiUHJvdmlkZXJzXCIsXHJcbiAgICBcIldPUkRfVFlQRV9BREpFQ1RJVkVcIjogXCJhZGplY3RpdmVcIixcclxuICAgIFwiV09SRF9UWVBFX05PVU5cIjogXCJub3VuXCIsXHJcbiAgICBcIldPUkRfVFlQRV9WRVJCXCI6IFwidmVyYlwiLFxyXG4gICAgXCJXT1JEX1RZUEVfQURWRVJCXCI6IFwiYWR2ZXJiXCIsXHJcbiAgICBcIldPUkRfVFlQRV9DT05KVU5DVElPTlwiOiBcImNvbmp1bmN0aW9uXCIsXHJcbiAgICBcIldPUkRfVFlQRV9JTlRFUkpFQ1RJT05cIjogXCJpbnRlcmplY3Rpb25cIixcclxuICAgIFwiV09SRF9UWVBFX1BST05PVU5cIjogXCJwcm9ub3VuXCIsXHJcbiAgICBcIkRPQ19XT1JEX0NOVF9MSU1JVF9NU0dfVElUTEVcIjogXCJUcmFuc2xhdGlvbiBsaW1pdFwiLFxyXG4gICAgXCJET0NfV09SRF9DTlRfTElNSVRfTVNHXCI6IFwiT25seSB0aGUgZmlyc3QgMTI1MCB3b3JkcyB3aWxsIGJlIHRyYW5zbGF0ZWQuXCIsXHJcbiAgICBcIkRPQ19XT1JEX0NOVF9MSU1JVF9NU0dfU1VCU0NSSVBUSU9OXCI6IFwiIFlvdSBuZWVkIGEgVGlsZGUgTVQgc3Vic2NyaXB0aW9uIHRvIHRyYW5zbGF0ZSBmdWxsIGZpbGVzLiA8YSBocmVmPVxcXCJ7e3ByaWNpbmdVcmx9fVxcXCIgdGFyZ2V0PSdfYmxhbmsnPnN0YXJ0IHdpdGggYSBmcmVlIHRyaWFsPC9hPlwiLFxyXG4gICAgXCJFUlJPUl9OT19TWVNURU1TX0xPQURFRF9USVRMRVwiOiBcIk5vIHRyYW5zbGF0aW9uIGVuZ2luZXMgd2VyZSBsb2FkZWRcIixcclxuICAgIFwiRVJST1JfTk9fU1lTVEVNU19MT0FERURcIjogXCJGYWlsZWQgdG8gbG9hZCB0aGUgbWFjaGluZSB0cmFuc2xhdGlvbiBlbmdpbmVzLlwiLFxyXG4gICAgXCJFUlJPUl9OT19TWVNURU1TX0xPQURFRF9TVVBQT1JUXCI6IFwiIFBsZWFzZSByZWxvYWQgdGhlIHBhZ2Ugb3IgY29udGFjdCA8YSBocmVmPVxcXCJtYWlsdG86e3tlbWFpbH19XFxcIj48c3Ryb25nPiBzdXBwb3J0PC9zdHJvbmc+PC9hPi5cIixcclxuICAgIFwiUERGX1BBR0VfTElNSVRfTVNHX1RJVExFXCI6IFwiVHJhbnNsYXRpb24gbGltaXRcIixcclxuICAgIFwiUERGX1BBR0VfTElNSVRfTVNHXCI6IFwiT25seSB0aGUgZmlyc3QgcGFnZSB3aWxsIGJlIHRyYW5zbGF0ZWQuXCIsXHJcbiAgICBcIlBERl9QQUdFX0xJTUlUX01TR19TVUJTQ1JJUFRJT05cIjogXCIgWW91IG5lZWQgYSBUaWxkZSBNVCBzdWJzY3JpcHRpb24gdG8gdHJhbnNsYXRlIGZ1bGwgUERGIGZpbGVzLiA8YSBocmVmPVxcXCJ7e3ByaWNpbmdVcmx9fVxcXCIgdGFyZ2V0PSdfYmxhbmsnPnN0YXJ0IHdpdGggYSBmcmVlIHRyaWFsPC9hPlwiLFxyXG4gICAgXCJDTEVBUl9TT1VSQ0VfVE9PTFRJUFwiOiBcIkNsZWFyIHRleHRcIlxyXG4gIH0sXHJcbiAgXCJNVUxUSVBMRV9GSUxFU1wiOiB7XHJcbiAgICBcIkFQUEVORFwiOiBcIkFkZCBmaWxlc1wiLFxyXG4gICAgXCJDTEVBUl9BTExcIjogXCJDYW5jZWxcIixcclxuICAgIFwiRE9XTkxPQURcIjogXCJEb3dubG9hZFwiLFxyXG4gICAgXCJTVEFUVVNTX0lOSVRJQUxJWklOR1wiOiBcIkluaXRpYWxpemluZ1wiLFxyXG4gICAgXCJTVEFUVVNTX0VYVFJBQ1RJTkdcIjogXCJFeHRyYWN0aW5nXCIsXHJcbiAgICBcIlNUQVRVU1NfV0FJVElOR1wiOiBcIlN0YXJ0aW5nIHRyYW5zbGF0b3JcIixcclxuICAgIFwiU1RBVFVTU19UUkFOU0xBVElOR1wiOiBcIlRyYW5zbGF0aW5nIHt7cGVyY2VudH19JVwiLFxyXG4gICAgXCJTVEFUVVNTX1NBVklOR1wiOiBcIlNhdmluZ1wiLFxyXG4gICAgXCJTVEFUVVNTX0NPTVBMRVRFRFwiOiBcIkNvbXBsZXRlZFwiLFxyXG4gICAgXCJTVEFUVVNTX0VSUk9SXCI6IFwiRXJyb3JcIixcclxuICAgIFwiU1RBVFVTU19RVUVVSU5HXCI6IFwiUXVldWluZ1wiLFxyXG4gICAgXCJTVEFUVVNTX05PVF9TVEFSVEVEXCI6IFwiVXBsb2FkZWRcIixcclxuICAgIFwiU1RBVFVTU19VUExPQURJTkdcIjogXCJVcGxvYWRpbmcuLi5cIixcclxuICAgIFwiU1RBVFVTU19VUExPQURFRFwiOiBcIlVwbG9hZGVkXCIsXHJcbiAgICBcIlRJVExFX0ZJTEVfTkFNRVwiOiBcIkZpbGVcIixcclxuICAgIFwiVElUTEVfU1RBVFVTU1wiOiBcIlN0YXR1c1wiLFxyXG4gICAgXCJUUkFOU0xBVElPTl9TVEFUVVNTX0xBQkVMXCI6IFwiU3RhdHVzXCIsXHJcbiAgICBcIlBERl9ESVNDTEFJTUVSXCI6IFwiUERGIGRvY3VtZW50cyBtYXkgaGF2ZSBmb3JtYXR0aW5nIG9yIHRyYW5zbGF0aW9uIGVycm9ycy5cIixcclxuICAgIFwiUERGX0RJU0NMQUlNRVJfTElOS1wiOiBcIlJlYWQgYWJvdXQgcGRmIGNvbnZlcnNpb24uXCIsXHJcbiAgICBcIklNQUdFX0RJU0NMQUlNRVJcIjogXCJJbWFnZSBjb252ZXJzaW9uIG1heSBjYXVzZSBmb3JtYXR0aW5nIGVycm9ycyBvciB0ZXh0IGRpc3RvcnRpb24uXCIsXHJcbiAgICBcIklNQUdFX0RJU0NMQUlNRVJfTElOS1wiOiBcIlJlYWQgYWJvdXQgaW1hZ2UgY29udmVyc2lvbi5cIixcclxuICAgIFwiU0NSRUVOX1JFQURFUl9BTk5PVU5DRU1FTlRcIjogXCJ7e3RyYW5zbGF0ZWR9fSBvdXQgb2Yge3t0b3RhbH19IGZpbGVzIGFyZSB0cmFuc2xhdGVkLlwiLFxyXG4gICAgXCJSRU1PVkVfRklMRV9UT09MVElQXCI6IFwiQ2xlYXIgZmlsZVwiXHJcbiAgfSxcclxuICBcIkVSUk9SU1wiOiB7XHJcbiAgICBcIkVSUk9SX0RFRkFVTFRfVElUTEVcIjogXCJVbmV4cGVjdGVkIGVycm9yXCIsXHJcbiAgICBcIkVSUk9SX0RFRkFVTFRcIjogXCJBbiB1bmV4cGVjdGVkIGVycm9yIG9jY3VycmVkLiBQbGVhc2UgdHJ5IGFnYWluLlwiLFxyXG4gICAgXCJFUlJPUl9ERUZBVUxUX1NVUFBPUlRcIjogXCIgSWYgdGhlIHByb2JsZW0gY29udGludWVzLCBjb250YWN0IDxhIGhyZWY9XFxcIm1haWx0bzp7e2VtYWlsfX1cXFwiPjxzdHJvbmc+c3VwcG9ydDwvc3Ryb25nPjwvYT4uXCIsXHJcbiAgICBcIk1BWF9DSEFSX0xFTkdUSF9USVRMRVwiOiBcIlRyYW5zbGF0aW9uIGxpbWl0XCIsXHJcbiAgICBcIk1BWF9DSEFSX0xFTkdUSFwiOiBcIk9ubHkge3ttYXhDaGFyTGVuZ3RofX0ve3t0b3RhbFN5bWJvbHN9fSBjaGFyYWN0ZXJzIHdpbGwgYmUgdHJhbnNsYXRlZC5cIixcclxuICAgIFwiTUFYX0NIQVJfTEVOR1RIX1NVQlNDUklQVElPTlwiOiBcIiBZb3UgbmVlZCBhIFRpbGRlIE1UIHN1YnNjcmlwdGlvbiBmb3IgdW5saW1pdGVkIHRleHQgdHJhbnNsYXRpb24uIDxhIGhyZWY9XFxcInt7cmVnaXN0ZXJMaW5rfX0/e3txdWVyeVN0cmluZ319XFxcIj5zdGFydCB3aXRoIGEgZnJlZSB0cmlhbDwvYT5cIixcclxuICAgIFwiTUFYX05VTUJFUl9PRl9GSUxFU19USVRMRVwiOiBcIlVwbG9hZCBsaW1pdFwiLFxyXG4gICAgXCJNQVhfTlVNQkVSX09GX0ZJTEVTXCI6IFwiT25seSB7e2xpbWl0fX0gZmlsZXMgY2FuIGJlIHRyYW5zbGF0ZWQgYXQgb25jZS5cIixcclxuICAgIFwiSU5DUkVBU0VfTUFYX05VTUJFUl9PRl9GSUxFU19USVRMRVwiOiBcIlVwbG9hZCBsaW1pdFwiLFxyXG4gICAgXCJJTkNSRUFTRV9NQVhfTlVNQkVSX09GX0ZJTEVTXCI6IFwiT25seSAxIGZpbGUgY2FuIGJlIHRyYW5zbGF0ZWQgYXQgb25jZS4gWW91IG5lZWQgYSBUaWxkZSBNVCBzdWJzY3JpcHRpb24gdG8gaW5jcmVhc2UgbGltaXQuIDxhIGhyZWY9XFxcInt7cmVnaXN0ZXJMaW5rfX0/e3txdWVyeVN0cmluZ319XFxcIj5zdGFydCB3aXRoIGEgZnJlZSB0cmlhbDwvYT5cIixcclxuICAgIFwiRklMRV9BTFJFQURZX0FEREVEX1RJVExFXCI6IFwiRmlsZSBoYXMgYWxyZWFkeSBiZWVuIGFkZGVkXCIsXHJcbiAgICBcIkZJTEVfQUxSRUFEWV9BRERFRFwiOiBcIkZpbGUgXFxcInt7ZmlsZU5hbWV9fVxcXCIgaGFzIGFscmVhZHkgYmVlbiBhZGRlZC5cIixcclxuICAgIFwiVUFOVVRIT1JJWkVEXzQwMV9USVRMRVwiOiBcIlVuYXV0aG9yaXplZFwiLFxyXG4gICAgXCJVQU5VVEhPUklaRURfNDAxXCI6IFwiWW91IGRvbid0IGhhdmUgcGVybWlzc2lvbiB0byB1c2UgbWFjaGluZSB0cmFuc2xhdGlvbi5cIixcclxuICAgIFwiVUFOVVRIT1JJWkVEXzQwMV9TVVBQT1JUXCI6IFwiIFBsZWFzZSBjb250YWN0IDxhIGhyZWY9XFxcIm1haWx0bzp7e2VtYWlsfX1cXFwiPjxzdHJvbmc+IHN1cHBvcnQ8L3N0cm9uZz48L2E+LlwiLFxyXG4gICAgXCJFX1VOS05PV05fRklMRV9UWVBFXCI6IFwiVW5rbm93biBmaWxlIHR5cGUuXCIsXHJcbiAgICBcIkVfQ0FOTk9UX1JFQURfRklMRV9USVRMRVwiOiBcIlVuYWJsZSB0byByZWFkIGZpbGVcIixcclxuICAgIFwiRV9DQU5OT1RfUkVBRF9GSUxFXCI6IFwiVGhlIGZpbGUgXFxcInt7ZmlsZU5hbWV9fVxcXCIgaXMgY29ycnVwdGVkIGFuZCBjb3VsZG4ndCBiZSB0cmFuc2xhdGVkLiBDaGVjayB0aGUgZmlsZSBhbmQgdHJ5IGFnYWluLlwiLFxyXG4gICAgXCJFX0ZBSUxFRF9JTl9UUkFOU0xBVElPTl9USVRMRVwiOiBcIlRyYW5zbGF0aW9uIGZhaWxlZFwiLFxyXG4gICAgXCJFX0ZBSUxFRF9JTl9UUkFOU0xBVElPTlwiOiBcIkVycm9yIG9jY3VycmVkIHdoaWxlIHRyYW5zbGF0aW5nLiBQbGVhc2UgdHJ5IGFnYWluLlwiLFxyXG4gICAgXCJFX0ZBSUxFRF9JTl9UUkFOU0xBVElPTl9TVVBQT1JUXCI6IFwiIElmIHRoZSBwcm9ibGVtIGNvbnRpbnVlcywgY29udGFjdCA8YSBocmVmPVxcXCJtYWlsdG86e3tlbWFpbH19XFxcIj48c3Ryb25nPiBzdXBwb3J0PC9zdHJvbmc+PC9hPi5cIixcclxuICAgIFwiRV9GT1JNQVRfVFJBQ0tfQ0hBTkdFU19USVRMRVwiOiBcIlRyYW5zbGF0aW9uIGZhaWxlZCwgYmVjYXVzZSDigJh0cmFjayBjaGFuZ2Vz4oCZIGlzIHR1cm5lZCBvblwiLFxyXG4gICAgXCJFX0ZPUk1BVF9UUkFDS19DSEFOR0VTXCI6IFwiQ2hhbmdlcyBtdXN0IGZpcnN0IGJlIGFjY2VwdGVkIG9yIOKAmHRyYWNrIGNoYW5nZXPigJkgdHVybmVkIG9mZiBiZWZvcmUgdHJhbnNsYXRpbmcgT2ZmaWNlIGZpbGVzLlwiLFxyXG4gICAgXCJFX1VOS05PV05fRVJST1JfVElUTEVcIjogXCJVbmtub3duIGVycm9yXCIsXHJcbiAgICBcIkVfVU5LTk9XTl9FUlJPUlwiOiBcIkFuIHVua25vd24gZXJyb3Igb2NjdXJyZWQuXCIsXHJcbiAgICBcIkVfVU5BVVRIT1JJWkVEX1RJVExFXCI6IFwiVW5hdXRob3JpemVkXCIsXHJcbiAgICBcIkVfVU5BVVRIT1JJWkVEXCI6IFwiRG9jdW1lbnQgdHJhbnNsYXRpb24gd2FzIGRlbmllZC5cIixcclxuICAgIFwiQ09MTEVDVElPTl9DUkVBVEVfVElUTEVcIjogXCJGYWlsZWQgdG8gY3JlYXRlIGEgZ2xvc3NhcnlcIixcclxuICAgIFwiQ09MTEVDVElPTl9DUkVBVEVcIjogXCJGYWlsZWQgdG8gY3JlYXRlIGEgbmV3IGdsb3NzYXJ5LiBQbGVhc2UgdHJ5IGFnYWluLlwiLFxyXG4gICAgXCJDT0xMRUNUSU9OX0NSRUFURV9TVVBQT1JUXCI6IFwiIElmIHRoZSBwcm9ibGVtIGNvbnRpbnVlcywgY29udGFjdCA8YSBocmVmPVxcXCJtYWlsdG86e3tlbWFpbH19XFxcIj48c3Ryb25nPnN1cHBvcnQ8L3N0cm9uZz48L2E+LlwiLFxyXG4gICAgXCJDT0xMRUNUSU9OX0lNUE9SVF9USVRMRVwiOiBcIkZhaWxlZCB0byBhdHRhY2ggdGhlIGdsb3NzYXJ5XCIsXHJcbiAgICBcIkNPTExFQ1RJT05fSU1QT1JUXCI6IFwiRmFpbGVkIHRvIGF0dGFjaCB0aGUgdGVybSBjb2xsZWN0aW9uIHdpdGggSUQ6IHt7dGVybUlkfX0gdG8gdGhlIG1hY2hpbmUgdHJhbnNsYXRpb24gZW5naW5lLiBQbGVhc2UgdHJ5IGFnYWluLlwiLFxyXG4gICAgXCJFXzExXCI6IFwiRGFpbHkgdHJhbnNsYXRpb24gbGltaXQgaGFzIGJlZW4gcmVhY2hlZC5cIixcclxuICAgIFwiRV8xMV9TVVBQT1JUXCI6IFwiIFRvIGluY3JlYXNlIHRoZSBkYWlseSBsaW1pdCwgcGxlYXNlIGNvbnRhY3QgPGEgaHJlZj1cXFwibWFpbHRvOnt7ZW1haWx9fVxcXCI+PHN0cm9uZz5zdXBwb3J0PC9zdHJvbmc+PC9hPi5cIixcclxuICAgIFwiRV8xMl9USVRMRVwiOiBcIlRleHQgc2l6ZSBsaW1pdFwiLFxyXG4gICAgXCJFXzEyXCI6IFwiVGV4dCBzaXplIGxpbWl0IHJlYWNoZWQuIFNlbmQgbGVzcyB0ZXh0IGluIHRoZSByZXF1ZXN0LlwiLFxyXG4gICAgXCJFXzEyX1NVUFBPUlRcIjogXCIgVG8gaW5jcmVhc2UgdGhlIHRleHQgc2l6ZSBsaW1pdCwgcGxlYXNlIGNvbnRhY3QgPGEgaHJlZj1cXFwibWFpbHRvOnt7ZW1haWx9fVxcXCI+PHN0cm9uZz5zdXBwb3J0PC9zdHJvbmc+PC9hPi5cIixcclxuICAgIFwiRV8yMVwiOiBcIlRoZSB0cmFuc2xhdGlvbiBlbmdpbmUgaXMgc3RhcnRpbmcgdXAsIHRoaXMgbWF5IHRha2UgYSBtb21lbnQhXCIsXHJcbiAgICBcIkVfMjJfVElUTEVcIjogXCJNYWNoaW5lIHRyYW5zbGF0aW9uIGVuZ2luZSBub3QgZm91bmRcIixcclxuICAgIFwiRV8yMlwiOiBcIk1hY2hpbmUgdHJhbnNsYXRpb24gZW5naW5lIG5vdCBmb3VuZC5cIixcclxuICAgIFwiRV8yMl9TVVBQT1JUXCI6IFwiIFBsZWFzZSBjb250YWN0IDxhIGhyZWY9XFxcIm1haWx0bzp7e2VtYWlsfX1cXFwiPjxzdHJvbmc+c3VwcG9ydDwvc3Ryb25nPjwvYT4uXCIsXHJcbiAgICBcIkVfMjNcIjogXCJNYWNoaW5lIHRyYW5zbGF0aW9uIGVuZ2luZSBpcyBub3Qgc3RhcnRlZC5cIixcclxuICAgIFwiRV8yM19TVVBQT1JUXCI6IFwiIENvbnRhY3QgPGEgaHJlZj1cXFwibWFpbHRvOnt7ZW1haWx9fVxcXCI+PHN0cm9uZz5zdXBwb3J0PC9zdHJvbmc+PC9hPi5cIixcclxuICAgIFwiRV80MVwiOiBcIlVua25vd24gdGVybSBjb3JwdXMgSUQgcHJvdmlkZWQuIFRlcm0gY29ycHVzIG11c3QgYmUgbGlua2VkIHRvIHRoZSBtYWNoaW5lIHRyYW5zbGF0aW9uIGVuZ2luZVwiLFxyXG4gICAgXCJFXzUwNFwiOiBcIlRyYW5zbGF0aW9uIGhhcyB0aW1lZCBvdXQuIFRyeSBhZ2FpbiBsYXRlci5cIixcclxuICAgIFwiRV81MDRfVElUTEVcIjogXCJUcmFuc2xhdGlvbiB0aW1lb3V0XCIsXHJcbiAgICBcIkVfNDA0MjAxXCI6IFwiRW5naW5lIHRlcm0gY29sbGVjdGlvbiBub3QgZm91bmRcIixcclxuICAgIFwiRV80MTMxMDJfVElUTEVcIjogXCJVcGxvYWRpbmcgZmlsZSBlcnJvclwiLFxyXG4gICAgXCJFXzQxMzEwMlwiOiBcIlVwbG9hZGVkIGZpbGUgaXMgdG9vIGxhcmdlXCIsXHJcbiAgICBcIlRSQU5TTEFUSU9OX0ZBSUxFRF9USVRMRVwiOiBcIlRyYW5zbGF0aW9uIGZhaWxlZFwiLFxyXG4gICAgXCJUUkFOU0xBVElPTl9GQUlMRURcIjogXCJBbiB1bmV4cGVjdGVkIGVycm9yIG9jY3VycmVkLlwiLFxyXG4gICAgXCJUUkFOU0xBVElPTl9GQUlMRURfU1VQUE9SVFwiOiBcIiBJZiB0aGUgcHJvYmxlbSBjb250aW51ZXMsIGNvbnRhY3QgPGEgaHJlZj1cXFwibWFpbHRvOnt7ZW1haWx9fVxcXCI+PHN0cm9uZz5zdXBwb3J0PC9zdHJvbmc+PC9hPi5cIixcclxuICAgIFwiRklMRV9UUkFOU0xBVElPTl9MSU1JVFNcIjoge1xyXG4gICAgICBcIkVfNDI5MDAxX1RJVExFXCI6IFwiRmlsZSB0cmFuc2xhdGlvbiBsaW1pdCByZWFjaGVkXCIsXHJcbiAgICAgIFwiRV80MjkwMDFcIjogXCJZb3UgaGF2ZSByZWFjaGVkIHlvdXIgbW9udGhseSBsaW1pdCBvZiB7e3F1b3RhRmlsZUxpbWl0fX0gZmlsZXMgdHJhbnNsYXRlZC4gPGEgaHJlZj0ne3twcmljaW5nVXJsfX0nIHRhcmdldD0nX2JsYW5rJz5VcGdyYWRlIHBsYW48L2E+IHRvIGNvbnRpbnVlIHRyYW5zbGF0aW5nIGZpbGVzLlwiXHJcbiAgICB9LFxyXG4gICAgXCJGSUxFX1RSQU5TTEFUSU9OX1NVQlNUQVRVU1wiOiB7XHJcbiAgICAgIFwiQkFEX0ZJTEVfRVJST1JfVElUTEVcIjogXCJGYWlsZWQgdG8gdHJhbnNsYXRlIHRoZSBmaWxlXCIsXHJcbiAgICAgIFwiQkFEX0ZJTEVfRVJST1JcIjogXCJUaGUgZmlsZSBpcyBjb3JydXB0ZWQgYW5kIGNvdWxkbid0IGJlIHRyYW5zbGF0ZWQuIENoZWNrIHRoZSBmaWxlIGFuZCB0cnkgYWdhaW4uXCIsXHJcbiAgICAgIFwiTk9fVEVYVF9FWFRSQUNURURfRVJST1JfVElUTEVcIjogXCJGYWlsZWQgdG8gZXh0cmFjdCBhbnkgdGV4dFwiLFxyXG4gICAgICBcIk5PX1RFWFRfRVhUUkFDVEVEX0VSUk9SXCI6IFwiVGhlIGZpbGUgbWF5IGJlIGVtcHR5LiBDaGVjayB0aGUgZmlsZSBhbmQgdHJ5IGFnYWluLlwiLFxyXG4gICAgICBcIlRSQUNLX0NIQU5HRVNfRU5BQkxFRF9FUlJPUl9USVRMRVwiOiBcIlRyYW5zbGF0aW9uIGZhaWxlZCwgYmVjYXVzZSDigJh0cmFjayBjaGFuZ2Vz4oCZIGlzIHR1cm5lZCBvblwiLFxyXG4gICAgICBcIlRSQUNLX0NIQU5HRVNfRU5BQkxFRF9FUlJPUlwiOiBcIkNoYW5nZXMgbXVzdCBmaXJzdCBiZSBhY2NlcHRlZCBvciDigJh0cmFjayBjaGFuZ2Vz4oCZIHR1cm5lZCBvZmYgYmVmb3JlIHRyYW5zbGF0aW5nIE9mZmljZSBmaWxlcy5cIixcclxuICAgICAgXCJVTktOT1dOX0ZJTEVfVFlQRV9FUlJPUl9USVRMRVwiOiBcIlVua25vd24gZmlsZSB0eXBlXCIsXHJcbiAgICAgIFwiVU5LTk9XTl9GSUxFX1RZUEVfRVJST1JcIjogXCJGaWxlIHR5cGUgbm90IHJlY29nbml6ZWQuIFRoZSBmaWxlIGV4dGVuc2lvbiBtYXkgYmUgaW5jb3JyZWN0LCBvciB0aGUgZmlsZSBtYXkgYmUgY29ycnVwdGVkLlwiXHJcbiAgICB9LFxyXG4gICAgXCJGSUxFX1VQTE9BRFwiOiB7XHJcbiAgICAgIFwiRklMRV9VUExPQURfRU1QVFlfVElUTEVcIjogXCJUaGUgZmlsZSBpcyBlbXB0eVwiLFxyXG4gICAgICBcIkZJTEVfVVBMT0FEX0VNUFRZXCI6IFwiVGhlIHVwbG9hZGVkIGZpbGUgXFxcInt7ZmlsZU5hbWV9fVxcXCIgaXMgZW1wdHkuIFNlbGVjdCBhIGZpbGUgd2l0aCBjb250ZW50LlwiLFxyXG4gICAgICBcIkZJTEVfVVBMT0FEX01BWF9TSVpFX1RJVExFXCI6IFwiRmlsZSBzaXplIGxpbWl0XCIsXHJcbiAgICAgIFwiRklMRV9VUExPQURfTUFYX1NJWkVcIjogXCJUaGUgdXBsb2FkZWQgZmlsZSBcXFwie3tmaWxlTmFtZX19XFxcIiBpcyB0b28gYmlnLiBNYXhpbXVtIHNpemUge3ttYXhTaXplTUJ9fU1CXCIsXHJcbiAgICAgIFwiRklMRV9VUExPQURfVU5TVVBQT1JURURfRk9STUFUX1RJVExFXCI6IFwiVW5zdXBwb3J0ZWQgZmlsZSBmb3JtYXRcIixcclxuICAgICAgXCJGSUxFX1VQTE9BRF9VTlNVUFBPUlRFRF9GT1JNQVRcIjogXCJUaGUgdXBsb2FkZWQgZmlsZSBcXFwie3tmaWxlTmFtZX19XFxcIiBmb3JtYXQgaXMgbm90IHN1cHBvcnRlZC4gVHJhbnNsYXRpb24gaXMgc3VwcG9ydGVkIGZvciB0aGVzZSBkb2N1bWVudCBmb3JtYXRzOiB7e2Zvcm1hdHN9fS5cIixcclxuICAgICAgXCJGSUxFX1VQTE9BRF9VTlNVUFBPUlRFRF9GT1JNQVRfUkVHSVNURVJfVElUTEVcIjogXCJVbnN1cHBvcnRlZCBmaWxlIGZvcm1hdFwiLFxyXG4gICAgICBcIkZJTEVfVVBMT0FEX1VOU1VQUE9SVEVEX0ZPUk1BVF9SRUdJU1RFUlwiOiBcIllvdSBuZWVkIFRpbGRlIE1UIHN1YnNjcmlwdGlvbiB0byB0cmFuc2xhdGUgXFxcInt7ZmlsZU5hbWV9fVxcXCIgZmlsZS4gPGEgaHJlZj1cXFwie3tyZWdpc3Rlckxpbmt9fT97e3F1ZXJ5U3RyaW5nfX1cXFwiPnN0YXJ0IHdpdGggYSBmcmVlIHRyaWFsPC9hPlwiLFxyXG4gICAgICBcIkVfNDA0X1RJVExFXCI6IFwiRmlsZSBub3QgZm91bmRcIixcclxuICAgICAgXCJFXzQwNFwiOiBcIlRoZSByZXF1ZXN0ZWQgZmlsZSBkb2Vzbid0IGV4aXN0XCIsXHJcbiAgICAgIFwiRV80MDRfUkVNT1ZFX1RJVExFXCI6IFwiRmFpbGVkIHRvIGRlbGV0ZSB0aGUgZmlsZVwiLFxyXG4gICAgICBcIkVfNDA0X1JFTU9WRVwiOiBcIkZpbGUgaGFzIGFscmVhZHkgYmVlbiBkZWxldGVkXCJcclxuICAgIH0sXHJcbiAgICBcIkFVRElPXCI6IHtcclxuICAgICAgXCJOT19TUEVFQ0hfVElUTEVcIjogXCJObyBzcGVlY2hcIixcclxuICAgICAgXCJOT19TUEVFQ0hcIjogXCJZb3VyIHJlY29yZGluZyB3YXMgc3RvcHBlZC4gV2UgY291bGRuJ3QgaGVhciB5b3UuXCIsXHJcbiAgICAgIFwiTUFYX1RJTUVfRVhDRUVERURfVElUTEVcIjogXCJTcGVlY2ggbGltaXRcIixcclxuICAgICAgXCJNQVhfVElNRV9FWENFRURFRFwiOiBcIllvdXIgcmVjb3JkaW5nIHdhcyBzdG9wcGVkLiBTcGVlY2ggaW5wdXQgaXMgbGltaXRlZCB0byB7e3RpbWVTdHJpbmd9fS5cIixcclxuICAgICAgXCJNSUNfTk9UX0FMTE9XRURfVElUTEVcIjogXCJNaWNyb3Bob25lIGFjY2VzcyBkZW5pZWRcIixcclxuICAgICAgXCJNSUNfTk9UX0FMTE9XRURcIjogXCJZb3UgaGF2ZSBkZW5pZWQgYWNjZXNzIHRvIHRoZSBtaWNyb3Bob25lLiBDaGFuZ2UgcGVybWlzc2lvbnMgaW4gYnJvd3NlcidzIHNldHRpbmdzLlwiLFxyXG4gICAgICBcIk1BWF9TSVpFX0VYQ0VFREVEX1RJVExFXCI6IFwiU3BlZWNoIGxpbWl0XCIsXHJcbiAgICAgIFwiTUFYX1NJWkVfRVhDRUVERURcIjogXCJZb3VyIHJlY29yZGluZyB3YXMgc3RvcHBlZCBhbmQgc2VudCB0byBwcm9jZXNzaW5nLiBTcGVlY2ggaW5wdXQgaXMgbGltaXRlZCB0byAoe3ttYXhTaXplTWJ9fU1CKSBzaXplLlwiLFxyXG4gICAgICBcIkNBTlRfU1RBUlRfUkVDT1JESU5HX1RJVExFXCI6IFwiRmFpbGVkIHRvIHN0YXJ0IHJlY29yZGluZ1wiLFxyXG4gICAgICBcIkNBTlRfU1RBUlRfUkVDT1JESU5HXCI6IFwiVW5hYmxlIHRvIHN0YXJ0IHJlY29yZGluZy4gUGxlYXNlIHRyeSBhZ2Fpbi5cIixcclxuICAgICAgXCJOT19URVhUX1JFQ09HTklaRURfVGl0bGVcIjogXCJObyBzcGVlY2ggcmVjb2duaXplZFwiLFxyXG4gICAgICBcIk5PX1RFWFRfUkVDT0dOSVpFRFwiOiBcIk5vIHNwZWVjaCBjb3VsZCBiZSByZWNvZ25pemVkLiBDaGVjayB5b3VyIG1pY3JvcGhvbmUgYW5kIHRyeSBhZ2Fpbi5cIlxyXG4gICAgfVxyXG4gIH0sXHJcbiAgXCJMQU5HVUFHRVNcIjoge1xyXG4gICAgXCJBVVRPXCI6IFwiRGV0ZWN0IGxhbmd1YWdlXCIsXHJcbiAgICBcIkFSXCI6IFwiQXJhYmljXCIsXHJcbiAgICBcIkxWXCI6IFwiTGF0dmlhblwiLFxyXG4gICAgXCJFVFwiOiBcIkVzdG9uaWFuXCIsXHJcbiAgICBcIkRBXCI6IFwiRGFuaXNoXCIsXHJcbiAgICBcIkZJXCI6IFwiRmlubmlzaFwiLFxyXG4gICAgXCJJU1wiOiBcIkljZWxhbmRpY1wiLFxyXG4gICAgXCJMVFwiOiBcIkxpdGh1YW5pYW5cIixcclxuICAgIFwiU1ZcIjogXCJTd2VkaXNoXCIsXHJcbiAgICBcIkJFXCI6IFwiQmVsb3J1c3NpYW5cIixcclxuICAgIFwiQkdcIjogXCJCdWxnYXJpYW5cIixcclxuICAgIFwiQ1NcIjogXCJDemVjaFwiLFxyXG4gICAgXCJIVVwiOiBcIkh1bmdhcmlhblwiLFxyXG4gICAgXCJSVVwiOiBcIlJ1c3NpYW5cIixcclxuICAgIFwiTU9cIjogXCJNb2xkYXZpYW5cIixcclxuICAgIFwiUExcIjogXCJQb2xpc2hcIixcclxuICAgIFwiU0tcIjogXCJTbG92YWtcIixcclxuICAgIFwiVUtcIjogXCJVa3JhaW5pYW5cIixcclxuICAgIFwiTkxcIjogXCJEdXRjaFwiLFxyXG4gICAgXCJFTlwiOiBcIkVuZ2xpc2hcIixcclxuICAgIFwiRlJcIjogXCJGcmVuY2hcIixcclxuICAgIFwiREVcIjogXCJHZXJtYW5cIixcclxuICAgIFwiR0FcIjogXCJJcmlzaFwiLFxyXG4gICAgXCJFTFwiOiBcIkdyZWVrXCIsXHJcbiAgICBcIklUXCI6IFwiSXRhbGlhblwiLFxyXG4gICAgXCJNVFwiOiBcIk1hbHRlc2VcIixcclxuICAgIFwiUFRcIjogXCJQb3J0dWd1ZXNlXCIsXHJcbiAgICBcIlNSXCI6IFwiU2VyYmlhblwiLFxyXG4gICAgXCJTTFwiOiBcIlNsb3ZlbmlhblwiLFxyXG4gICAgXCJFU1wiOiBcIlNwYW5pc2hcIixcclxuICAgIFwiWkhcIjogXCJDaGluZXNlXCIsXHJcbiAgICBcIkpBXCI6IFwiSmFwYW5lc2VcIixcclxuICAgIFwiS09cIjogXCJLb3JlYW5cIixcclxuICAgIFwiVFJcIjogXCJUdXJraXNoXCIsXHJcbiAgICBcIkhSXCI6IFwiQ3JvYXRpYW5cIixcclxuICAgIFwiUk9cIjogXCJSb21hbmlhblwiLFxyXG4gICAgXCJVWlwiOiBcIlV6YmVrXCIsXHJcbiAgICBcIklEXCI6IFwiSW5kb25lc2lhblwiXHJcbiAgfSxcclxuICBcIkFSSUFfTEFCRUxTXCI6IHtcclxuICAgIFwiQ0xPU0VfQlVUVE9OXCI6IFwiQ2xlYXJcIixcclxuICAgIFwiQ0xFQVJfTk9USUZJQ0FUSU9OXCI6IFwiQ2xvc2UgYWxlcnRcIixcclxuICAgIFwiQ0xFQVJfU09VUkNFXCI6IFwiQ2xlYXIgZW50ZXJlZCB0ZXh0XCIsXHJcbiAgICBcIkNMT1NFX0RJQUxPR1wiOiBcIkNsb3NlIGRpYWxvZ1wiLFxyXG4gICAgXCJDTEVBUl9GSUxFU1wiOiBcIkNsZWFyIHVwbG9hZGVkIGZpbGVzXCIsXHJcbiAgICBcIlNIT1dfRVhURU5TSU9OU1wiOiBcIlNob3cgb3RoZXIgZG93bmxvYWQgb3B0aW9uc1wiLFxyXG4gICAgXCJDT1BZXCI6IFwiQ29weSB0byBjbGlwYm9hcmRcIixcclxuICAgIFwiUkVGUkVTSFwiOiBcIlJlZnJlc2ggdHJhbnNsYXRpb25cIixcclxuICAgIFwiT1BFTl9JTl9ORVdcIjogXCJPcGVuIGluIG5ldyB0YWJcIixcclxuICAgIFwiU1dBUF9MQU5HVUFHRVNcIjogXCJTd2FwIGxhbmd1YWdlc1wiLFxyXG4gICAgXCJPVEhFUl9MQU5HVUFHRVNfVFJJR0dFUlwiOiBcIlNob3cgb3RoZXIgbGFuZ3VhZ2VzXCJcclxuICB9LFxyXG4gIFwiVE9PTFRJUFNcIjoge1xyXG4gICAgXCJDT1BZXCI6IFwiQ29weSB0byBjbGlwYm9hcmRcIixcclxuICAgIFwiUkVGUkVTSFwiOiBcIlJlZnJlc2ggdHJhbnNsYXRpb25cIixcclxuICAgIFwiU1dBUF9MQU5HVUFHRVNcIjogXCJTd2FwIGxhbmd1YWdlc1wiXHJcbiAgfSxcclxuICBcIlBERl9DT05WRVJTSU9OXCI6IHtcclxuICAgIFwiVElUTEVfMVwiOiBcIlBERiB0cmFuc2xhdGlvblwiLFxyXG4gICAgXCJQQVJBR1JBUEhfMV8xXCI6IFwiV2hlbiBhIC5wZGYgZmlsZSBpcyB1cGxvYWRlZCBmb3IgdHJhbnNsYXRpb24gaXQgaXMgY29udmVydGVkIGludG8gYSB0cmFuc2xhdGFibGUgZm9ybWF0LiBCb3RoIHNjYW5uZWQgYW5kIG5hdGl2ZSAucGRmcyBhcmUgc3VwcG9ydGVkLiBUcmFuc2xhdGlvbnMgY2FuIGJlIGRvd25sb2FkZWQgaW4gLmRvY3ggZm9ybWF0IGFuZCB3aWxsIHJldGFpbiB0aGUgYmFzaWMgZm9ybWF0dGluZy4gXCIsXHJcbiAgICBcIlBBUkFHUkFQSF8xXzJcIjogXCJBcyBjb252ZXJzaW9uIHRha2VzIHRpbWUsIHRvIHNwZWVkIHRoaW5ncyB1cCBzcGxpdCB5b3VyIC5wZGZzIGFuZCBkZWxldGUgdGhlIHBhZ2VzIHdpdGggbm8gdHJhbnNsYXRhYmxlIGluZm9ybWF0aW9uLiBGYWN0b3JzIGxpa2UgdGhlIG51bWJlciBvZiBwYWdlcywgcXVhbGl0eSBhbmQgdGV4dCBkZW5zaXR5IGFmZmVjdCB0aGUgcHJvY2Vzc2luZyB0aW1lLlwiLFxyXG4gICAgXCJQQVJBR1JBUEhfMV8zXCI6IFwiVG8gaW1wcm92ZSB0cmFuc2xhdGlvbiBwZXJmb3JtYW5jZSwgd2UgcmVjb21tZW5kIHRvIGRvd25sb2FkIHRoZSBjb252ZXJ0ZWQgZG9jdW1lbnQgaW4gdGhlIG9yaWdpbmFsIGxhbmd1YWdlIGFuZCBmaXggaXQgbWFudWFsbHkgYmVmb3JlIHJlLXVwbG9hZGluZyBmb3IgdHJhbnNsYXRpb24uXCIsXHJcbiAgICBcIklNQUdFX0FMVF8xXCI6IFwiU291cmNlIFBERiBkb3dubG9hZCBleGFtcGxlXCIsXHJcbiAgICBcIlRJVExFXzJcIjogXCJQREYgY29udmVyc2lvblwiLFxyXG4gICAgXCJQQVJBR1JBUEhfMl8xXCI6IFwiVGhlIGRvY3VtZW50IGlzIGFuYWx5c2VkIGFuZCBpdHMgY29udGVudCBpcyBzcGxpdCBpbiB0ZXh0LCB0YWJsZSBhbmQgaW1hZ2UvYmFja2dyb3VuZCBpbWFnZSBhcmVhcy4gVGhleSBhcmUgYW5hbHlzZWQgZnVydGhlciB0byBkZXRlcm1pbmUgd2hpY2ggY29udGVudCBzaG91bGQgYmUgcmVjb2duaXplZCBhcyB0ZXh0LlwiLFxyXG4gICAgXCJQQVJBR1JBUEhfMl8yXCI6IFwiVGV4dHVhbCBkYXRhIGFyZSBhY3F1aXJlZCBieSBtZWFucyBvZiBPQ1Igb3Igb3B0aWNhbCBjaGFyYWN0ZXIgcmVjb2duaXRpb24uIEV2ZXJ5IGNoYXJhY3RlciBpcyByZWNvZ25pemVkIGRlcGVuZGluZyBvbiBpdHMgdmlzdWFsIGNoYXJhY3RlcmlzdGljcywgdGhlbiBhc3NlbWJsZWQgaW50byB3b3JkcyBhbmQgc2VudGVuY2VzLlwiLFxyXG4gICAgXCJQQVJBR1JBUEhfMl8zXCI6IFwiUmVjb2duaXRpb24gaXMgYWZmZWN0ZWQgYnkgbWFueSBmYWN0b3JzLCBpbmNsdWRpbmc6XCIsXHJcbiAgICBcIkxJXzFfMVwiOiBcIlF1YWxpdHkgb2YgdGhlIHNjYW5uZWQgZG9jdW1lbnQgKGJsdXJyZWQgb3IgZGVmb3JtZWQgdGV4dCwgaW1hZ2Ugbm9pc2UsIGltYWdlIHJlc29sdXRpb24sIGNvbnRyYXN0IGV0Yy4pLiBGb3IgdGhlIGJlc3QgcmVzdWx0LCAucGRmcyBzaG91bGQgYmUgYXQgbGVhc3QgMzAwIGRwaSwgdW5za2V3ZWQgYW5kIG5vaXNlIGZyZWUuXCIsXHJcbiAgICBcIkxJXzFfMlwiOiBcIkZvbnQgc2l6ZS4gU2l6ZXMgc21hbGxlciB0aGFuIDkgcG9pbnRzIG1pZ2h0IGJlIHBvb3JseSByZWNvZ25pemVkLiBcIixcclxuICAgIFwiTElfMV8zXCI6IFwiUmFyZSBhbmQgb3JpZ2luYWwgZm9udHMuIExlc3MgY29tbW9uIGZvbnRzIG1heSBiZSB1bnJlY29nbml6YWJsZSBvciBwZXJmb3JtIHdvcnNlLlwiLFxyXG4gICAgXCJMSV8xXzRcIjogXCJDb21wbGV4aXR5IG9mIHRoZSBkb2N1bWVudCBzdHJ1Y3R1cmUgYW5kIGZvcm1hdHRpbmcuXCIsXHJcbiAgICBcIlRJVExFXzNcIjogXCJJbXByb3ZpbmcgdHJhbnNsYXRpb24gcGVyZm9ybWFuY2VcIixcclxuICAgIFwiUEFSQUdSQVBIXzNfMVwiOiBcIlRoZSBjb252ZXJzaW9uIHByb2Nlc3MgaXMgdmVyeSBjb21wbGV4IGFuZCBtYXkgYmUgYWZmZWN0ZWQgYnkgdmFyaW91cyBlcnJvcnMgcmVzdWx0aW5nIGZyb20gdGhlIGlucHV0IGRvY3VtZW50LiBcIixcclxuICAgIFwiUEFSQUdSQVBIXzNfMlwiOiBcIklzc3VlcyB0byBsb29rIGZvcjpcIixcclxuICAgIFwiTElfMl8xXCI6IFwiSW5jb3JyZWN0bHkgcmVjb2duaXplZCB3b3Jkcy5cIixcclxuICAgIFwiTElfMl8yXCI6IFwiSW5jb3JyZWN0IHdvcmQgYm91bmRhcmllcy5cIixcclxuICAgIFwiTElfMl8zXCI6IFwiU2VudGVuY2VzIHNwYW5uaW5nIG11bHRpcGxlIGNvbHVtbnMsIGxpbmVzIG9yIHBhZ2VzIHNwbGl0IGludG8gZGlmZmVyZW50IHRleHR1YWwgb2JqZWN0cy5cIixcclxuICAgIFwiTElfMl80XCI6IFwiTWlzcGxhY2VkIHBhZ2UgZm9vdGVycyBhbmQgaGVhZGVycy5cIixcclxuICAgIFwiTElfMl81XCI6IFwiSW5jb3JyZWN0IG51bWJlcmluZy5cIixcclxuICAgIFwiTElfMl82XCI6IFwiVGFibGVzIHJlY29nbml6ZWQgYXMgYmFja2dyb3VuZCBpbWFnZXMgd2l0aCB0ZXh0dWFsIGNvbnRlbnQgcGxhY2VkIGludG8gZGlmZmVyZW50IHRleHR1YWwgb2JqZWN0cy5cIixcclxuICAgIFwiTElfMl83XCI6IFwiU29tZSBkaWFncmFtcyByZWNvZ25pemVkIGFzIGltYWdlcyB3aXRob3V0IGFueSB0ZXh0dWFsIGNvbnRlbnQuXCIsXHJcbiAgICBcIkxJXzJfOFwiOiBcIlNlcGFyYXRvcnMsIGJvcmRlcnMgb3Igb3RoZXIgaG9yaXpvbnRhbCBsaW5lcyByZWNvZ25pemVkIGFzIHN0cmlrZXRocm91Z2ggb3IgdW5kZXJsaW5lZCB0ZXh0LlwiLFxyXG4gICAgXCJMSV8yXzlcIjogXCJGb3JtYXR0aW5nIG9mIHRoZSB0YWJsZSBvZiBjb250ZW50cyBvciBzaW1pbGFyIGxpc3RzIGNvbGxhcHNlZCBvciByZWNvZ25pemVkIGFzIHN0cmlrZXRocm91Z2ggb3IgdW5kZXJsaW5lZCB0ZXh0LlwiLFxyXG4gICAgXCJQQVJBR1JBUEhfNF8xXCI6IFwiPGI+Tm90ZSB0aGF0IHRoZSByZXN1bHRpbmcgZG9jdW1lbnQgd2lsbCBub3QgcmV0YWluIGFsbCBkZXRhaWxzIG9mIHRoZSBvcmlnaW5hbCBmb3JtYXR0aW5nLjwvYj4gU29tZSBpbWFnZXMsIHRhYmxlcyBvciBkaWFncmFtcyBtYXkgYmVjb21lIGRpc3RvcnRlZCBvciBzaW1wbGlmaWVkLiBGb250cyBpbiB0aGUgdHJhbnNsYXRlZCBkb2N1bWVudCB3aWxsIG5vdCBiZSB0aGUgc2FtZSBhcyBpbiB0aGUgb3JpZ2luYWwsIGJ1dCBtYXkgYmUgc2ltaWxhci4gSW5jb3JyZWN0IGZvbnQgc2l6ZSBtYXkgYmUgcmVjb2duaXplZC4gU3BlY2lmaWMgV29yZCBmb3JtYXR0aW5nIGxpa2UgaGVhZGluZ3MsIHRhYmxlcyBvZiBjb250ZW50LCBoZWFkZXJzIGFuZCBmb290ZXJzLCBsYWJlbHMsIGZvcm1zIGV0Yy4gd2lsbCBiZSBzdHlsZWQgdG8gbG9vayBsaWtlIHRoZSBvcmlnaW5hbCwgYnV0IHdpbGwgbm90IG1hdGNoIHRoZSBvcmlnaW5hbCBjb21wbGV0ZWx5IChlLmcuIHRpdGxlcyB3aWxsIGJlIGJvbGQgYW5kIGluIGxhcmdlciBmb250LCBidXQgd2lsbCBub3QgYmUgc2V0IHRvIHRoZSBoZWFkaW5nIHN0eWxlKS5cIixcclxuICAgIFwiQ0xPU0VcIjogXCJDbG9zZSBkaWFsb2dcIlxyXG4gIH0sXHJcbiAgXCJJTUFHRV9DT05WRVJTSU9OXCI6IHtcclxuICAgIFwiVElUTEVfMVwiOiBcIkltYWdlIHRyYW5zbGF0aW9uXCIsXHJcbiAgICBcIlBBUkFHUkFQSF8xXzFcIjogXCJXaGVuIGFuIGltYWdlIGZpbGUgaXMgdXBsb2FkZWQgZm9yIHRyYW5zbGF0aW9uIGl0IGlzIGNvbnZlcnRlZCBpbnRvIGEgdHJhbnNsYXRhYmxlIGZvcm1hdC4gVHJhbnNsYXRpb25zIGNhbiBiZSBkb3dubG9hZGVkIGluIC5kb2N4IGZvcm1hdCBhbmQgd2lsbCByZXRhaW4gdGhlIGJhc2ljIGZvcm1hdHRpbmcuXCIsXHJcbiAgICBcIlBBUkFHUkFQSF8xXzJcIjogXCI8Yj5TdXBwb3J0ZWQgaW1hZ2UgZm9ybWF0czo8L2I+IC5qcGcsIC5qcGVnLCAucG5nIGFuZCAuYm1wLlwiLFxyXG4gICAgXCJQQVJBR1JBUEhfMV8zXCI6IFwiVG8gaW1wcm92ZSB0cmFuc2xhdGlvbiBwZXJmb3JtYW5jZSwgd2UgcmVjb21tZW5kIHRvIGRvd25sb2FkIHRoZSBjb252ZXJ0ZWQgZG9jdW1lbnQgaW4gdGhlIG9yaWdpbmFsIGxhbmd1YWdlIGFuZCBmaXggaXQgbWFudWFsbHkgYmVmb3JlIHJlLXVwbG9hZGluZyBmb3IgdHJhbnNsYXRpb24uXCIsXHJcbiAgICBcIklNQUdFX0FMVF8xXCI6IFwiU291cmNlIGltYWdlIGRvd25sb2FkIGV4YW1wbGVcIixcclxuICAgIFwiVElUTEVfMlwiOiBcIkltYWdlIGNvbnZlcnNpb25cIixcclxuICAgIFwiUEFSQUdSQVBIXzJfMVwiOiBcIlRoZSBpbWFnZSBpcyBhbmFseXNlZCBhbmQgaXRzIGNvbnRlbnQgaXMgc3BsaXQgaW4gdGV4dCwgdGFibGUgYW5kIGltYWdlL2JhY2tncm91bmQgaW1hZ2UgYXJlYXMuIFRoZXkgYXJlIGFuYWx5c2VkIGZ1cnRoZXIgdG8gZGV0ZXJtaW5lIHdoaWNoIGNvbnRlbnQgc2hvdWxkIGJlIHJlY29nbml6ZWQgYXMgdGV4dC5cIixcclxuICAgIFwiUEFSQUdSQVBIXzJfMlwiOiBcIlRleHR1YWwgZGF0YSBhcmUgYWNxdWlyZWQgYnkgbWVhbnMgb2YgT0NSIG9yIG9wdGljYWwgY2hhcmFjdGVyIHJlY29nbml0aW9uLiBFdmVyeSBjaGFyYWN0ZXIgaXMgcmVjb2duaXplZCBkZXBlbmRpbmcgb24gaXRzIHZpc3VhbCBjaGFyYWN0ZXJpc3RpY3MsIHRoZW4gYXNzZW1ibGVkIGludG8gd29yZHMgYW5kIHNlbnRlbmNlcy5cIixcclxuICAgIFwiUEFSQUdSQVBIXzJfM1wiOiBcIlJlY29nbml0aW9uIGlzIGFmZmVjdGVkIGJ5IG1hbnkgZmFjdG9ycywgaW5jbHVkaW5nOlwiLFxyXG4gICAgXCJMSV8xXzFcIjogXCJRdWFsaXR5IG9mIHRoZSBzY2FubmVkIGltYWdlIChibHVycmVkIG9yIGRlZm9ybWVkIHRleHQsIGltYWdlIG5vaXNlLCBpbWFnZSByZXNvbHV0aW9uLCBjb250cmFzdCBldGMuKS4gRm9yIHRoZSBiZXN0IHJlc3VsdCwgaW1hZ2VzIHNob3VsZCBiZSBhdCBsZWFzdCAzMDAgZHBpLCB1bnNrZXdlZCBhbmQgbm9pc2UgZnJlZS5cIixcclxuICAgIFwiTElfMV8yXCI6IFwiRm9udCBzaXplLiBTaXplcyBzbWFsbGVyIHRoYW4gOSBwb2ludHMgbWlnaHQgYmUgcG9vcmx5IHJlY29nbml6ZWQuIFwiLFxyXG4gICAgXCJMSV8xXzNcIjogXCJSYXJlIGFuZCBvcmlnaW5hbCBmb250cy4gTGVzcyBjb21tb24gZm9udHMgbWF5IGJlIHVucmVjb2duaXphYmxlIG9yIHBlcmZvcm0gd29yc2UuXCIsXHJcbiAgICBcIkxJXzFfNFwiOiBcIkNvbXBsZXhpdHkgb2YgdGhlIGRvY3VtZW50IHN0cnVjdHVyZSBhbmQgZm9ybWF0dGluZy5cIixcclxuICAgIFwiVElUTEVfM1wiOiBcIkltcHJvdmluZyB0cmFuc2xhdGlvbiBwZXJmb3JtYW5jZVwiLFxyXG4gICAgXCJQQVJBR1JBUEhfM18xXCI6IFwiVGhlIGNvbnZlcnNpb24gcHJvY2VzcyBpcyB2ZXJ5IGNvbXBsZXggYW5kIG1heSBiZSBhZmZlY3RlZCBieSB2YXJpb3VzIGVycm9ycyByZXN1bHRpbmcgZnJvbSB0aGUgaW5wdXQgZG9jdW1lbnQuIFwiLFxyXG4gICAgXCJQQVJBR1JBUEhfM18yXCI6IFwiSXNzdWVzIHRvIGxvb2sgZm9yOlwiLFxyXG4gICAgXCJMSV8yXzFcIjogXCJJbmNvcnJlY3RseSByZWNvZ25pemVkIHdvcmRzLlwiLFxyXG4gICAgXCJMSV8yXzJcIjogXCJJbmNvcnJlY3Qgd29yZCBib3VuZGFyaWVzLlwiLFxyXG4gICAgXCJMSV8yXzNcIjogXCJTZW50ZW5jZXMgc3Bhbm5pbmcgbXVsdGlwbGUgY29sdW1ucywgbGluZXMgb3IgcGFnZXMgc3BsaXQgaW50byBkaWZmZXJlbnQgdGV4dHVhbCBvYmplY3RzLlwiLFxyXG4gICAgXCJMSV8yXzRcIjogXCJNaXNwbGFjZWQgcGFnZSBmb290ZXJzIGFuZCBoZWFkZXJzLlwiLFxyXG4gICAgXCJMSV8yXzVcIjogXCJJbmNvcnJlY3QgbnVtYmVyaW5nLlwiLFxyXG4gICAgXCJMSV8yXzZcIjogXCJUYWJsZXMgcmVjb2duaXplZCBhcyBiYWNrZ3JvdW5kIGltYWdlcyB3aXRoIHRleHR1YWwgY29udGVudCBwbGFjZWQgaW50byBkaWZmZXJlbnQgdGV4dHVhbCBvYmplY3RzLlwiLFxyXG4gICAgXCJMSV8yXzdcIjogXCJTb21lIGRpYWdyYW1zIHJlY29nbml6ZWQgYXMgaW1hZ2VzIHdpdGhvdXQgYW55IHRleHR1YWwgY29udGVudC5cIixcclxuICAgIFwiTElfMl84XCI6IFwiU2VwYXJhdG9ycywgYm9yZGVycyBvciBvdGhlciBob3Jpem9udGFsIGxpbmVzIHJlY29nbml6ZWQgYXMgc3RyaWtldGhyb3VnaCBvciB1bmRlcmxpbmVkIHRleHQuXCIsXHJcbiAgICBcIlBBUkFHUkFQSF80XzFcIjogXCI8Yj5Ob3RlIHRoYXQgdGhlIHJlc3VsdGluZyBkb2N1bWVudCB3aWxsIG5vdCByZXRhaW4gYWxsIGRldGFpbHMgb2YgdGhlIG9yaWdpbmFsIGZvcm1hdHRpbmcuPC9iPiBTb21lIGltYWdlcywgdGFibGVzIG9yIGRpYWdyYW1zIG1heSBiZWNvbWUgZGlzdG9ydGVkIG9yIHNpbXBsaWZpZWQuIEZvbnRzIGluIHRoZSB0cmFuc2xhdGVkIGRvY3VtZW50IHdpbGwgbm90IGJlIHRoZSBzYW1lIGFzIGluIHRoZSBvcmlnaW5hbCwgYnV0IG1heSBiZSBzaW1pbGFyLiBJbmNvcnJlY3QgZm9udCBzaXplIG1heSBiZSByZWNvZ25pemVkLlwiLFxyXG4gICAgXCJDTE9TRVwiOiBcIkNsb3NlIGRpYWxvZ1wiXHJcbiAgfSxcclxuICBcIldFQlRSQU5TTEFURVwiOiB7XHJcbiAgICBcIkJBQ0tcIjogXCJCYWNrIHRvIFRyYW5zbGF0b3JcIixcclxuICAgIFwiTE9BRF9QQUdFXCI6IFwiTG9hZCBwYWdlXCIsXHJcbiAgICBcIlJFU1RPUkVcIjogXCJSZXN0b3JlXCIsXHJcbiAgICBcIkNBTkNFTFwiOiBcIkNhbmNlbFwiLFxyXG4gICAgXCJTRUFSQ0hcIjogXCJTZWFyY2ggd2Vic2l0ZVwiLFxyXG4gICAgXCJOT19SRUNPUkRTXCI6IHtcclxuICAgICAgXCJUSVRMRVwiOiBcIlNlYXJjaCBmb3IgYSB3ZWJzaXRlIHRvIHRyYW5zbGF0ZVwiLFxyXG4gICAgICBcIkRFU0NSSVBUSU9OXCI6IFwiU2VlIDxhIGhyZWY9J3t7aGVscFVybH19JyB0YXJnZXQ9J19ibGFuaycgY2xhc3M9J3VuZGVybGluZSc+aG93IGl0IHdvcmtzPC9hPlwiXHJcbiAgICB9XHJcbiAgfSxcclxuICBcIkRBVEVfQUdPXCI6IHtcclxuICAgIFwiWUVBUlwiOiBcInt7dmFsdWV9fSB5ZWFyIGFnb1wiLFxyXG4gICAgXCJZRUFSU1wiOiBcInt7dmFsdWV9fSB5ZWFycyBhZ29cIixcclxuICAgIFwiTU9OVEhcIjogXCJ7e3ZhbHVlfX0gbW9udGggYWdvXCIsXHJcbiAgICBcIk1PTlRIU1wiOiBcInt7dmFsdWV9fSBtb250aHMgYWdvXCIsXHJcbiAgICBcIldFRUtcIjogXCJ7e3ZhbHVlfX0gd2VlayBhZ29cIixcclxuICAgIFwiV0VFS1NcIjogXCJ7e3ZhbHVlfX0gd2Vla3MgYWdvXCIsXHJcbiAgICBcIkRBWVwiOiBcInt7dmFsdWV9fSBkYXkgYWdvXCIsXHJcbiAgICBcIkRBWVNcIjogXCJ7e3ZhbHVlfX0gZGF5cyBhZ29cIixcclxuICAgIFwiSE9VUlwiOiBcInt7dmFsdWV9fSBob3VyIGFnb1wiLFxyXG4gICAgXCJIT1VSU1wiOiBcInt7dmFsdWV9fSBob3VycyBhZ29cIixcclxuICAgIFwiTUlOVVRFXCI6IFwie3t2YWx1ZX19IG1pbnV0ZSBhZ29cIixcclxuICAgIFwiTUlOVVRFU1wiOiBcInt7dmFsdWV9fSBtaW51dGVzIGFnb1wiLFxyXG4gICAgXCJTRUNPTkRcIjogXCJ7e3ZhbHVlfX0gc2Vjb25kIGFnb1wiLFxyXG4gICAgXCJTRUNPTkRTXCI6IFwie3t2YWx1ZX19IHNlY29uZHMgYWdvXCIsXHJcbiAgICBcIkpVU1RfTk9XXCI6IFwiSnVzdCBub3dcIlxyXG4gIH0sXHJcbiAgXCJURVJNX0NPTExFQ1RJT05TXCI6IHtcclxuICAgIFwiVElUTEVcIjogXCJHbG9zc2FyaWVzXCIsXHJcbiAgICBcIkRFRkFVTFRcIjogXCJEZWZhdWx0XCIsXHJcbiAgICBcIkRFU0NSSVBUSU9OXCI6IFwiQWNoaWV2ZSBwcmVjaXNlIGFuZCByZWxpYWJsZSB0cmFuc2xhdGlvbnMgYnkgY2hvb3NpbmcgdGhlIG1vc3Qgc3VpdGFibGUgZ2xvc3NhcnkgZnJvbSB0aGUgbGlzdC5cIixcclxuICAgIFwiR0xPU1NBUllcIjogXCJHbG9zc2FyeTogXCIsXHJcbiAgICBcIlNFTEVDVEVEX05PTkVcIjogXCJOb25lXCIsXHJcbiAgICBcIkVESVRcIjogXCJFZGl0XCIsXHJcbiAgICBcIkNSRUFURVwiOiBcIk5ldyBnbG9zc2FyeVwiLFxyXG4gICAgXCJERVNDUklQVElPTl9FTVBUWVwiOiBcIjxzcGFuPkNyZWF0ZSBuZXcgZ2xvc3Nhcnk8L3NwYW4+IGZvciB7e3NyY0xhbmd9fS17e3RyZ0xhbmd9fSBvciBvcGVuIDxzcGFuPkRlZmF1bHQgZ2xvc3NhcmllcyBtYW5hZ2VtZW50PC9zcGFuPiBhbmQgY3JlYXRlIGdsb3NzYXJ5IHRoZXJlIHRvIHVzZSBpdCBpbiB0cmFuc2xhdGlvbiBhY3Jvc3MgdGhlIHBsYXRmb3JtLlwiLFxyXG4gICAgXCJVTkFWQUlMQUJMRV9HTE9TU0FSSUVTXCI6IFwiTm8gZ2xvc3NhcnkgYXZhaWxhYmxlXCIsXHJcbiAgICBcIkxBU1RfVVBEQVRFRFwiOiBcIkxhc3QgdXBkYXRlZDoge3tkYXRlfX1cIixcclxuICAgIFwiREVGQVVMVF9DT0xMRUNUSU9OX05BTUVcIjogXCJNeSB0ZXJtIGNvbGxlY3Rpb25cIixcclxuICAgIFwiU1lOQ1wiOiBcIlN5bmNcIixcclxuICAgIFwiU1lOQ19FUlJPUlwiOiBcIlJldHJ5XCIsXHJcbiAgICBcIlRFUk1TX0lOX1VTRVwiOiBcIlRlcm1zIGluIHVzZToge3t0ZXJtQ291bnR9fVwiLFxyXG4gICAgXCJERUZBVUxUX0dMT1NTQVJZX01BTkFHRU1FTlRcIjogXCJNYW5hZ2UgZGVmYXVsdCBnbG9zc2FyaWVzXCIsXHJcbiAgICBcIkFSSUFfTEFCRUxTXCI6IHtcclxuICAgICAgXCJSQURJT19HUk9VUFwiOiBcIlNlbGVjdCBhIHRlcm0gY29sbGVjdGlvblwiLFxyXG4gICAgICBcIk9USEVSX0NPTExFQ1RJT05TXCI6IFwiT3BlbiB0aGUgY29sbGVjdGlvbiBtZW51XCJcclxuICAgIH0sXHJcbiAgICBcIkNSRUFURV9ESUFMT0dcIjoge1xyXG4gICAgICBcIkNBTkNFTFwiOiBcIkNhbmNlbFwiLFxyXG4gICAgICBcIkNPTExFQ1RJT05fTkFNRV9MQUJFTFwiOiBcIkdsb3NzYXJ5IG5hbWVcIixcclxuICAgICAgXCJDUkVBVEVcIjogXCJDcmVhdGVcIixcclxuICAgICAgXCJERVNDUklQVElPTl8xXCI6IFwiQWZ0ZXIgY2xpY2tpbmcg4oCcQ3JlYXRl4oCdIHlvdSB3aWxsIGJlIHJlZGlyZWN0ZWQgdG8gVGlsZGUgVGVybSB0byBhZGQgeW91ciB0ZXJtcy5cIixcclxuICAgICAgXCJERVNDUklQVElPTl8yXCI6IFwiPGk+KkFJIGlzIG5vdCBwZXJmZWN0IGFuZCBjYW4gbWFrZSBvY2Nhc2lvbmFsIG1pc3Rha2VzLiBZb3VyIHVuaXF1ZSB0ZXJtcyB3aWxsIGJlIHVzZWQgY29ycmVjdGx5IHdpdGggOTUlIGFjY3VyYWN5LjwvaT5cIixcclxuICAgICAgXCJUSVRMRVwiOiBcIkNyZWF0ZSBuZXcgZ2xvc3NhcnlcIixcclxuICAgICAgXCJDT0xMRUNUSU9OX05BTUVfRVJST1JcIjogXCJUaXRsZSBzaG91bGQgYmUgYXQgbGVhc3Qge3ttaW5MZW5ndGh9fSBzeW1ib2xzIGxvbmcgYW5kIG5vdCBsb25nZXIgdGhhbiB7e21heExlbmd0aH19IHN5bWJvbHNcIlxyXG4gICAgfSxcclxuICAgIFwiVE9PTFRJUFNcIjoge1xyXG4gICAgICBcIkVESVRcIjogXCJFZGl0IGdsb3NzYXJ5IGluIHRlcm1pbm9sb2d5IHBvcnRhbFwiLFxyXG4gICAgICBcIklNUE9SVElOR1wiOiBcIkltcG9ydGluZyBnbG9zc2FyeVwiLFxyXG4gICAgICBcIk5PX0VOVFJJRVNcIjogXCJUZXJtIGNvbGxlY3Rpb24gY2Fubm90IGJlIHVzZWQ6IG5vIHRlcm1zIGluIHNvdXJjZSBsYW5ndWFnZVwiLFxyXG4gICAgICBcIkRFRkFVTFRfQ09MTEVDVElPTlwiOiBcIlRoZXNlIHRlcm1zIGFyZSBub3cgaW4gdXNlLiBZb3UgY2FuIG1hbmFnZSB0aGVtIHRocm91Z2ggRGVmYXVsdCBnbG9zc2FyeSBtYW5hZ2VtZW50LiBcIixcclxuICAgICAgXCJTWU5DXCI6IFwiVXBkYXRlIHRoZSB0ZXJtIGNvbGxlY3Rpb25cIixcclxuICAgICAgXCJTWU5DSU5HXCI6IFwiVGVybSBjb2xsZWN0aW9uIGlzIHN5bmNlZCwgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoZSBjb2xsZWN0aW9uIHdpbGwgYmUgdXNlZFwiLFxyXG4gICAgICBcIkFUVEFDSF9UT19TWVNURU1fRVJST1JcIjogXCJBbiBlcnJvciBoYXMgb2NjdXJlZCB3aGlsZSBpbXBvcnRpbmcgdGhlIHRlcm0gY29sbGVjdGlvblwiXHJcbiAgICB9LFxyXG4gICAgXCJSRUFERVJcIjoge1xyXG4gICAgICBcIlRJVExFXCI6IFwiR2xvc3Nhcmllc1wiLFxyXG4gICAgICBcIlVOQVZBSUxBQkxFXCI6IFwiR2xvc3NhcmllcyBub3QgYXZhaWxhYmxlXCIsXHJcbiAgICAgIFwiVEVYVFwiOiBcIkdsb3NzYXJpZXMgYXJlIG9ubHkgYXZhaWxhYmxlIGZvciBhdXRob3JpemVkIHVzZXJzLiA8L2JyPiA8YSBocmVmPSd7e3NpZ25JblVybH19Jz5TaWduIGluPC9hPiBvciA8YSBocmVmPSd7e3N0YXJ0VHJpYWxVcmx9fSc+c3RhcnQgeW91ciBmcmVlIHRyaWFsPC9hPiB0byB1bmxvY2sgb3VyIGdsb3NzYXJ5LlwiLFxyXG4gICAgICBcIldIQVRfSVNfR0xPU1NBUllfVElUTEVcIjogXCJXaGF0IGlzIGEgR2xvc3Nhcnk/XCIsXHJcbiAgICAgIFwiV0hBVF9JU19HTE9TU0FSWV9ERVNDXCI6IFwiQSBnbG9zc2FyeSBpbiBtYWNoaW5lIHRyYW5zbGF0aW9uIGlzIGEgY3VzdG9tIGRpY3Rpb25hcnkgb2Ygc3BlY2lmaWMgdGVybXMgYW5kIHRyYW5zbGF0aW9ucy5cIixcclxuICAgICAgXCJCRU5FRklUU19USVRMRVwiOiBcIkdsb3NzYXJ5IEJlbmVmaXRzXCIsXHJcbiAgICAgIFwiQkVORUZJVFNfREVTQ1wiOiBcIkl0IGVuc3VyZXMgY29uc2lzdGVuY3kgYW5kIGFjY3VyYWN5LCBlbmhhbmNpbmcgdHJhbnNsYXRpb24gcXVhbGl0eSBmb3Igc3BlY2lhbGl6ZWQgY29udGVudC5cIlxyXG4gICAgfSxcclxuICAgIFwiRVJST1JTXCI6IHtcclxuICAgICAgXCJFUlJPUklNUE9SVElOR1wiOiBcIkltcG9ydGluZyBlcnJvclwiXHJcbiAgICB9XHJcbiAgfSxcclxuICBcIkRPTUFJTlNcIjoge1xyXG4gICAgXCJPUEVOX0xJU1RfQVJJQV9MQUJFTFwiOiBcIk9wZW4gZG9tYWluIGxpc3RcIixcclxuICAgIFwiVElUTEVcIjogXCJEb21haW46XCIsXHJcbiAgICBcIkxBV1wiOiBcIkxhd1wiLFxyXG4gICAgXCJEWU5BTUlDX0xFQVJOSU5HXCI6IFwiRHluYW1pYyBsZWFybmluZ1wiLFxyXG4gICAgXCJCVVNJTkVTU1wiOiBcIkJ1c2luZXNzXCIsXHJcbiAgICBcIkdFTkVSQUxcIjogXCJHZW5lcmFsXCIsXHJcbiAgICBcIkFVVE9cIjogXCJBdXRvZGV0ZWN0XCIsXHJcbiAgICBcIlNQRFwiOiBcIkVVIEZvcm1hbCBMYW5ndWFnZVwiLFxyXG4gICAgXCJHRU5cIjogXCJHZW5lcmFsIFRleHRcIixcclxuICAgIFwiRUNCXCI6IFwiRmluYW5jZVwiLFxyXG4gICAgXCJFQ0pcIjogXCJFdXJvcGVhbiBDb3VydCBvZiBKdXN0aWNlXCIsXHJcbiAgICBcIlBVQkhFQUxUSFwiOiBcIlB1YmxpYyBIZWFsdGhcIixcclxuICAgIFwiQlVCQVwiOiBcIkRldXRzY2hlIEJ1bmRlc2JhbmtcIixcclxuICAgIFwiQkVSQ1lcIjogXCJNaW5pc3TDqHJlIGRlcyBGaW5hbmNlc1wiLFxyXG4gICAgXCJFVVJPUEVBTkFcIjogXCJFdXJvcGVhbmFcIixcclxuICAgIFwiSVBPXCI6IFwiSVAgQ2FzZSBMYXdcIixcclxuICAgIFwiVFJJU1wiOiBcIkVuZ2luZXMgYnVpbHQgdXNpbmcgZGF0YSBmcm9tIHRoZSB0ZWNobmljYWwgcmVndWxhdGlvbiBpbmZvcm1hdGlvbiBzeXN0ZW1cIixcclxuICAgIFwiVktcIjogXCJWYWx0aW9uZXV2b3N0b24gS2Fuc2xpYVwiLFxyXG4gICAgXCJCVUJBX05NVFRFU1RcIjogXCJEZXV0c2NoZSBCdW5kZXNiYW5rIFRlc3RcIlxyXG4gIH0sXHJcbiAgXCJHUkFNTUFSX0NIRUNLX01FTlVcIjoge1xyXG4gICAgXCJUSVRMRVwiOiBcIkNvbnNpZGVyIGNoYW5naW5nIHRvOlwiXHJcbiAgfSxcclxuICBcIkFVRElPXCI6IHtcclxuICAgIFwiQ0FOQ0VMXCI6IFwiQ2FuY2VsXCIsXHJcbiAgICBcIkRFU0NSSUJFX1NUQVRFX1JFQ09SRElOR1wiOiBcIlBsZWFzZSBzcGVhayB0byByZWNvcmQuLi5cIixcclxuICAgIFwiREVTQ1JJQkVfU1RBVEVfUFJPQ0VTU0lOR1wiOiBcIlByb2Nlc3NpbmcuLi5cIixcclxuICAgIFwiTUlDX05PVF9GT1VORFwiOiBcIk1pY3JvcGhvbmUgbm90IGZvdW5kXCIsXHJcbiAgICBcIlNUT1BcIjogXCJTdG9wIHJlY29yZGluZ1wiLFxyXG4gICAgXCJTVEFSVFwiOiBcIlRyYW5zbGF0ZSBzcGVlY2hcIixcclxuICAgIFwiUFVOQ1RVQVRJT05fTUVTU0FHRV9USVRMRVwiOiBcIkFkZCBwdW5jdHVhdGlvblwiLFxyXG4gICAgXCJQVU5DVFVBVElPTl9NRVNTQUdFXCI6IFwiUGxlYXNlIGFkZCBwdW5jdHVhdGlvbiB0byB0aGUgcmVjb2duaXplZCB0ZXh0LiBMb25nIHRleHQgd2l0aG91dCBwdW5jdHVhdGlvbiBtYXkgaGF2ZSBsb3dlciB0cmFuc2xhdGlvbiBxdWFsaXR5IG9yIG5vdCBiZSB0cmFuc2xhdGVkLlwiXHJcbiAgfSxcclxuICBcIkVYVEVOU0lPTl9QT1BVUFwiOiB7XHJcbiAgICBcIk9QRU5cIjogXCJzZWUgYWxsIHN1cHBvcnRlZCBmb3JtYXRzXCIsXHJcbiAgICBcIlRJVExFXCI6IFwiU3VwcG9ydGVkIGZpbGUgZm9ybWF0c1wiLFxyXG4gICAgXCJERVNDUklQVElPTlwiOiBcIlVURi04IG9yIFVURi0xNiBjb2RpbmcgcmVxdWlyZWQgdG8gZW5zdXJlIGNvcnJlY3QgZmlsZSB0cmFuc2xhdGlvblwiLFxyXG4gICAgXCJPRkZJQ0VcIjogXCJPZmZpY2VcIixcclxuICAgIFwiU0NBTk5FRFwiOiBcIkltYWdlIGZpbGVzXCIsXHJcbiAgICBcIklOVEVSQ0hBTkdFXCI6IFwiSW50ZXJjaGFuZ2UgZm9ybWF0c1wiLFxyXG4gICAgXCJXRUJcIjogXCJXZWJcIixcclxuICAgIFwiT1RIRVJcIjogXCJPdGhlclwiXHJcbiAgfSxcclxuICBcIkZJTEVfVVBMT0FEXCI6IHtcclxuICAgIFwiVVBMT0FEXCI6IFwiVXBsb2FkXCIsXHJcbiAgICBcIkRSQUdfQU5EX0RST1BcIjogXCJvciBkcmFnIGFuZCBkcm9wIFwiLFxyXG4gICAgXCJGSUxFXCI6IFwiYSBmaWxlXCIsXHJcbiAgICBcIkZJTEVTXCI6IFwiZmlsZXNcIixcclxuICAgIFwiTElNSVRTX01CXCI6IFwiTWF4IHt7bWF4U2l6ZU1CfX1NQlwiLFxyXG4gICAgXCJDTEVBUlwiOiBcIkNsZWFyIGZpbGVcIixcclxuICAgIFwiU0VMRUNUX0xBTkdVQUdFX1dBUk5JTkdcIjogXCJQbGVhc2UsIHNlbGVjdCB0aGUgc291cmNlIGxhbmd1YWdlIG9mIHRoZSBmaWxlLlwiXHJcbiAgfSxcclxuICBcIlNZU1RFTV9QSUNLRVJcIjoge1xyXG4gICAgXCJTT1VSQ0VcIjogXCJUcmFuc2xhdGUgZnJvbVwiLFxyXG4gICAgXCJUQVJHRVRcIjogXCJUcmFuc2xhdGUgdG9cIixcclxuICAgIFwiU0VBUkNIX1BMQUNFSE9MREVSXCI6IFwiU2VhcmNoIGxhbmd1YWdlc1wiLFxyXG4gICAgXCJSRUNFTlRfU1lTVEVNX1RJVExFXCI6IFwiUmVjZW50XCIsXHJcbiAgICBcIlNFTEVDVF9ET01BSU5cIjogXCJTZWxlY3QgZG9tYWluXCIsXHJcbiAgICBcIkZJTFRFUl9OT19SRVNVTFRTXCI6IFwiTm8gcmVzdWx0c1wiLFxyXG4gICAgXCJBTExfTEFOR1VBR0VTXCI6IFwiQWxsIGxhbmd1YWdlc1wiLFxyXG4gICAgXCJDTEVBUl9TRUFSQ0hcIjogXCJDbGVhciBzZWFyY2ggdGV4dFwiLFxyXG4gICAgXCJPUEVOX1NPVVJDRV9BUklBX0xBQkVMXCI6IFwiU2VsZWN0IHNvdXJjZSBsYW5ndWFnZVwiLFxyXG4gICAgXCJPUEVOX1RBUkdFVF9BUklBX0xBQkVMXCI6IFwiU2VsZWN0IHRhcmdldCBsYW5ndWFnZSBhbmQgZG9tYWluXCIsXHJcbiAgICBcIkRFVEVDVEVEXCI6IFwiRGV0ZWN0ZWRcIlxyXG4gIH0sXHJcbiAgXCJURVhUX1RSQU5TTEFUSU9OX1BST0dSRVNTX0lORElDQVRPUlwiOiB7XHJcbiAgICBcIlRJVExFXCI6IFwiVHJhbnNsYXRpb24gcHJvdmlkZWQgYnkge3twcm92aWRlcn19XCIsXHJcbiAgICBcIlRSQU5TTEFUSU5HXCI6IFwiVHJhbnNsYXRpbmcuLi5cIixcclxuICAgIFwiQ0xPU0VfQlVUVE9OX1RPT0xUSVBcIjogXCJSZW1vdmUgcHJvZ3Jlc3MgYmFyXCIsXHJcbiAgICBcIkNMT1NFX0JVVFRPTl9BUklBX0xBQkVMXCI6IFwiUmVtb3ZlIHByb2dyZXNzIGJhclwiXHJcbiAgfSxcclxuICBcIlZFTkRPUl9NRVNTQUdFXCI6IHtcclxuICAgIFwiVEVYVFwiOiBcIlRyYW5zbGF0aW9uIHByb3ZpZGVkIGJ5IHt7dmVuZG9yfX1cIixcclxuICAgIFwiSUNPTl9UT09MVElQXCI6IFwiU3lzdGVtcyBvZmZlcmVkIGJ5IHt7dmVuZG9yfX0gYXJlIHVzZWQgYnkgYSBodWdlIG51bWJlciBvZiB1c2Vycy4gVGhleSBtYXkgYmUgc2xvdyBhdCB0aW1lIGR1ZSB0byB0aGUgaGVhdnkgd29yayBsb2FkLlwiXHJcbiAgfSxcclxuICBcIlZFTkRPUlNcIjoge1xyXG4gICAgXCJFVFJBTlNMQVRJT05cIjogXCJlVHJhbnNsYXRpb25cIlxyXG4gIH0sXHJcbiAgXCJURVhUX1RPX1NQRUVDSFwiOiB7XHJcbiAgICBcIlBMQVlcIjogXCJMaXN0ZW5cIixcclxuICAgIFwiUEFVU0VcIjogXCJQYXVzZVwiXHJcbiAgfSxcclxuICBcIkxMTVwiOiB7XHJcbiAgICBcIlNVTU1BUllcIjogXCJDcmVhdGUgc3VtbWFyeVwiLFxyXG4gICAgXCJSRVBIUkFTRVwiOiBcIlJlcGhyYXNlIHRyYW5zbGF0aW9uXCIsXHJcbiAgICBcIk1FTlVfVE9PTFRJUFwiOiBcIlJlcGhyYXNlIG9yIHN1bW1hcml6ZSB0cmFuc2xhdGlvblwiLFxyXG4gICAgXCJSRVBIUkFTRV9NT0RBTFwiOiB7XHJcbiAgICAgIFwiVElUTEVcIjogXCJSZXBocmFzZSB0cmFuc2xhdGlvblwiLFxyXG4gICAgICBcIkRFU0NSSVBUSU9OXCI6IFwiUmVwaHJhc2UgdGV4dCBpbnRvIGEgc3BlY2lmaWVkIHdyaXRpbmcgc3R5bGUsIGFkYXB0aW5nIHRoZSBsYW5ndWFnZSBhbmQgdG9uZSB0byBtYXRjaCBhIGdpdmVuIHRhcmdldCBzdHlsZSBvciB2b2ljZS5cIixcclxuICAgICAgXCJDTE9TRVwiOiBcIkNsb3NlXCIsXHJcbiAgICAgIFwiQ0FOQ0VMXCI6IFwiQ2FuY2VsXCIsXHJcbiAgICAgIFwiUkVQSFJBU0VcIjogXCJSZXBocmFzZVwiLFxyXG4gICAgICBcIlJFUEhSQVNJTkdcIjogXCJSZXBocmFzaW5nLi4uXCIsXHJcbiAgICAgIFwiTElNSVRcIjogXCI8c3BhbiBjbGFzcz0ndGV4dC1tLXNlbWktYm9sZCc+e3tsaW1pdH19PC9zcGFuPiByZXBocmFzZSBsZWZ0IHRvZGF5LiBOZWVkIG1vcmU/IDxhIGhyZWY9J3t7c3Vic2NyaXB0aW9uVXJsfX0nIHRhcmdldD0nX2JsYW5rJz5VcGdyYWRlIHN1YnNjcmlwdGlvbjwvYT5cIixcclxuICAgICAgXCJXUklUSU5HX1NUWUxFU1wiOiB7XHJcbiAgICAgICAgXCJUSVRMRVwiOiBcIldyaXRpbmcgc3R5bGVcIixcclxuICAgICAgICBcIlRPT0xUSVBfR0VORVJBTFwiOiBcIkZvcm1hbGl0eTogVXNlIGEgbG93IHRvIG1lZGl1bSBsZXZlbCBvZiBmb3JtYWxpdHkuIFxcblZvY2FidWxhcnk6IE9wdGltYWwgZm9yIHNpbXBsZSBhbmQgY2xlYXIgbGFuZ3VhZ2UsIGF2b2lkaW5nIHRlY2huaWNhbCBqYXJnb24uIFxcblNlbnRlbmNlIFN0cnVjdHVyZTogS2VlcCBzZW50ZW5jZXMgc2ltcGxlIHRvIG1vZGVyYXRlbHkgY29tcGxleC4gXFxuVG9uZTogTWFpbnRhaW4gYSBmcmllbmRseSBhbmQgZW5nYWdpbmcgdG9uZS5cIixcclxuICAgICAgICBcIlRPT0xUSVBfUFJPRkVTU0lPTkFMXCI6IFwiRm9ybWFsaXR5OiBVc2UgYSBtZWRpdW0gdG8gaGlnaCBsZXZlbCBvZiBmb3JtYWxpdHkuIFxcblZvY2FidWxhcnk6IFV0aWxpemUgaW5kdXN0cnktc3BlY2lmaWMgdGVybWlub2xvZ3kgYW5kIGphcmdvbiB3aGVyZSBhcHByb3ByaWF0ZS4gXFxuU2VudGVuY2UgU3RydWN0dXJlOiBFbnN1cmUgc2VudGVuY2VzIGFyZSBjbGVhciBhbmQgY29uY2lzZSwgd2l0aCBzb21lIGNvbXBsZXhpdHkuIFxcblRvbmU6IE1haW50YWluIGEgcHJvZmVzc2lvbmFsLCByZXNwZWN0ZnVsLCBhbmQgc3RyYWlnaHRmb3J3YXJkIHRvbmUuXCIsXHJcbiAgICAgICAgXCJUT09MVElQX0FDQURFTUlDXCI6IFwiRm9ybWFsaXR5OiBVc2UgYSBoaWdoIGxldmVsIG9mIGZvcm1hbGl0eS4gXFxuVm9jYWJ1bGFyeTogSW5jb3Jwb3JhdGUgdGVjaG5pY2FsIGFuZCBzdWJqZWN0LXNwZWNpZmljIHRlcm1pbm9sb2d5LiBcXG5TZW50ZW5jZSBTdHJ1Y3R1cmU6IFV0aWxpemUgY29tcGxleCBzZW50ZW5jZSBzdHJ1Y3R1cmVzIHdpdGggYSBmb2N1cyBvbiBjbGFyaXR5IGFuZCBwcmVjaXNpb24uIFxcblRvbmU6IE1haW50YWluIGFuIG9iamVjdGl2ZSwgYW5hbHl0aWNhbCwgYW5kIHNvbWV0aW1lcyBpbXBlcnNvbmFsIHRvbmUuXCIsXHJcbiAgICAgICAgXCJTUEVDSUZJQ19TVFlMRVwiOiBcInt7c3R5bGV9fSB3cml0aW5nIHN0eWxlXCIsXHJcbiAgICAgICAgXCJHRU5FUkFMXCI6IFwiR2VuZXJhbFwiLFxyXG4gICAgICAgIFwiUFJPRkVTU0lPTkFMXCI6IFwiUHJvZmVzc2lvbmFsXCIsXHJcbiAgICAgICAgXCJBQ0FERU1JQ1wiOiBcIkFjYWRlbWljXCJcclxuICAgICAgfSxcclxuICAgIH0sXHJcbiAgICBcIlNVTU1BUllfTU9EQUxcIjoge1xyXG4gICAgICBcIlRJVExFXCI6IFwiVHJhbnNsYXRpb24gc3VtbWFyeVwiLFxyXG4gICAgICBcIkRFU0NSSVBUSU9OXCI6IFwiQ3JlYXRpbmcgc3VtbWFyeVwiLFxyXG4gICAgICBcIkNBTkNFTFwiOiBcIkNhbmNlbFwiLFxyXG4gICAgICBcIkNMT1NFXCI6IFwiQ2xvc2VcIixcclxuICAgICAgXCJDUkVBVElOR1wiOiBcIkNyZWF0aW5nIHN1bW1hcnkuLi5cIixcclxuICAgICAgXCJSRUdFTkVSQVRFXCI6IFwiUmUtZ2VuZXJhdGVcIixcclxuICAgICAgXCJMSU1JVFwiOiBcIjxzcGFuIGNsYXNzPSd0ZXh0LW0tc2VtaS1ib2xkJz57e2xpbWl0fX08L3NwYW4+IHN1bW1hcnkgbGVmdCB0b2RheS4gTmVlZCBtb3JlPyA8YSBocmVmPSd7e3N1YnNjcmlwdGlvblVybH19JyB0YXJnZXQ9J19ibGFuayc+VXBncmFkZSBzdWJzY3JpcHRpb248L2E+XCIsXHJcbiAgICB9LFxyXG4gICAgXCJFUlJPUlNcIjoge1xyXG4gICAgICBcIlFVT1RBX0xJTUlUXCI6IFwiWW91IGhhdmUgcmVhY2hlZCB5b3VyIHF1b3RhIGxpbWl0LiBOZWVkIG1vcmU/IDxhIGhyZWY9J3t7c3Vic2NyaXB0aW9uVXJsfX0nIHRhcmdldD0nX2JsYW5rJz5VcGdyYWRlIHN1YnNjcmlwdGlvbjwvYT5cIixcclxuICAgICAgXCJRVU9UQV9MSU1JVF9SRUFDSEVEXCI6IFwiWW91IGhhdmUgcmVhY2hlZCB5b3VyIHF1b3RhIGxpbWl0LiBOZWVkIG1vcmU/IDxhIGhyZWY9J3t7c3Vic2NyaXB0aW9uVXJsfX0nIHRhcmdldD0nX2JsYW5rJz5VcGdyYWRlIHN1YnNjcmlwdGlvbjwvYT5cIixcclxuICAgICAgXCJERUZBVUxUXCI6IFwiSXQgc2VlbXMgbGlrZSB3ZSBoYWQgcHJvYmxlbSwgcGxlYXNlIDxib2xkPnJlcGVhdDwvYm9sZD4gYWN0aW9uLCBpZiBpdCBkb2Vzbid0IHdvcmssIGNvbnRhY3Qgb3VyIDxhIGhyZWY9J21haWx0bzp7e3N1cHBvcnRFbWFpbH19JyB0YXJnZXQ9J19ibGFuayc+c3VwcG9ydCB0ZWFtPC9hPi5cIlxyXG4gICAgfVxyXG4gIH0sXHJcbn1cclxuIl19
501
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90bGQtdHJhbnNsYXRlL3NyYy9saWIvaTE4bi9lbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUc7SUFDckIsa0JBQWtCLEVBQUUsWUFBWTtJQUNoQyxVQUFVLEVBQUUsVUFBVTtJQUN0QixlQUFlLEVBQUU7UUFDZixVQUFVLEVBQUUsc0dBQXNHO1FBQ2xILGVBQWUsRUFBRSxZQUFZO1FBQzdCLG9CQUFvQixFQUFFLFFBQVE7UUFDOUIscUJBQXFCLEVBQUUsVUFBVTtRQUNqQyxxQkFBcUIsRUFBRSxVQUFVO1FBQ2pDLG9CQUFvQixFQUFFLFNBQVM7UUFDL0Isc0JBQXNCLEVBQUUsK0JBQStCO1FBQ3ZELDJCQUEyQixFQUFFLGdLQUFnSztRQUM3TCw0QkFBNEIsRUFBRSxpQ0FBaUM7UUFDL0QsaUNBQWlDLEVBQUUsa0tBQWtLO1FBQ3JNLHNDQUFzQyxFQUFFLHFDQUFxQztRQUM3RSxvQ0FBb0MsRUFBRSxvQ0FBb0M7UUFDMUUsaUNBQWlDLEVBQUUsd0JBQXdCO1FBQzNELHFDQUFxQyxFQUFFLGdCQUFnQjtRQUN2RCxnQ0FBZ0MsRUFBRSx1QkFBdUI7UUFDekQsaUNBQWlDLEVBQUUsNEJBQTRCO1FBQy9ELG1DQUFtQyxFQUFFLGNBQWM7UUFDbkQsa0NBQWtDLEVBQUUsVUFBVTtRQUM5Qyw2QkFBNkIsRUFBRSxrR0FBa0c7UUFDakksTUFBTSxFQUFFLE9BQU87UUFDZixxQkFBcUIsRUFBRSxtQkFBbUI7UUFDMUMsdUJBQXVCLEVBQUUsOEJBQThCO1FBQ3ZELHVCQUF1QixFQUFFLHlCQUF5QjtRQUNsRCw4QkFBOEIsRUFBRSwwRkFBMEY7UUFDMUgsb0JBQW9CLEVBQUUsNkxBQTZMO1FBQ25OLGdCQUFnQixFQUFFLHFGQUFxRjtRQUN2RyxnQkFBZ0IsRUFBRSx3Q0FBd0M7UUFDMUQsMEJBQTBCLEVBQUUseUJB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IGNvbnN0IGkxOG5fZW4gPSB7XHJcbiAgXCJURVJNX1BPUlRBTF9OQU1FXCI6IFwiVGlsZGUgdGVybVwiLFxyXG4gIFwiQVBQX05BTUVcIjogXCJUaWxkZSBNVFwiLFxyXG4gIFwiVExEX1RSQU5TTEFURVwiOiB7XHJcbiAgICBcIkJFU1RfTk1UXCI6IFwiUHJvdWQgd2lubmVyIG9mIHRoZSBiZXN0IG1hY2hpbmUgdHJhbnNsYXRpb24gdGVjaG5vbG9neSBhdCBXTVQgQ29tcGV0aXRpb24gZm9yIHRocmVlIHllYXJzIGluIGEgcm93LlwiLFxyXG4gICAgXCJCRVNUX05NVF9NT1JFXCI6IFwiTGVhcm4gbW9yZVwiLFxyXG4gICAgXCJDQU5DRUxfVFJBTlNMQVRJT05cIjogXCJDYW5jZWxcIixcclxuICAgIFwiRElDVElPTkFSWV9FWEFNUExFU1wiOiBcImV4YW1wbGVzXCIsXHJcbiAgICBcIkRPV05MT0FEX1RSQU5TTEFURURcIjogXCJEb3dubG9hZFwiLFxyXG4gICAgXCJET01BSU5TX0FSSUFfTEFCRUxcIjogXCJEb21haW5zXCIsXHJcbiAgICBcIkZJTEVfRE9XTkxPQURfU09VUkNFXCI6IFwiRG93bmxvYWQgY29udmVydGVkIHNvdXJjZSBQREZcIixcclxuICAgIFwiRklMRV9ET1dOTE9BRF9TT1VSQ0VfSEVMUFwiOiBcIlBERiBjb252ZXJzaW9uIG1heSBjYXVzZSBmb3JtYXR0aW5nIGVycm9ycyBvciB0ZXh0IGRpc3RvcnRpb24uIFBsZWFzZSBjaGVjayB0aGUgY29udmVydGVkIGZpbGUgYW5kIGZpeCB0aGUgZXJyb3JzIGJlZm9yZSByZS11cGxvYWRpbmcgdGhlIGZpbGUgZm9yIHRyYW5zbGF0aW9uXCIsXHJcbiAgICBcIkZJTEVfRE9XTkxPQURfU09VUkNFX0lNQUdFXCI6IFwiRG93bmxvYWQgY29udmVydGVkIHNvdXJjZSBpbWFnZVwiLFxyXG4gICAgXCJGSUxFX0RPV05MT0FEX1NPVVJDRV9JTUFHRV9IRUxQXCI6IFwiSW1hZ2UgY29udmVyc2lvbiBtYXkgY2F1c2UgZm9ybWF0dGluZyBlcnJvcnMgb3IgdGV4dCBkaXN0b3J0aW9uLiBQbGVhc2UgY2hlY2sgdGhlIGNvbnZlcnRlZCBmaWxlIGFuZCBmaXggdGhlIGVycm9ycyBiZWZvcmUgcmUtdXBsb2FkaW5nIHRoZSBmaWxlIGZvciB0cmFuc2xhdGlvblwiLFxyXG4gICAgXCJGSUxFX1RBTlNMQVRJT05fU1RBVFVTU19JTklUSUFMSVpJTkdcIjogXCJJbml0aWFsaXppbmcgdHJhbnNsYXRpb24gcHJvY2Vzcy4uLlwiLFxyXG4gICAgXCJGSUxFX1RBTlNMQVRJT05fU1RBVFVTU19FWFRSQUNUSU5HXCI6IFwiRXh0cmFjdGluZyB0cmFuc2xhdGFibGUgY29udGVudC4uLlwiLFxyXG4gICAgXCJGSUxFX1RBTlNMQVRJT05fU1RBVFVTU19XQUlUSU5HXCI6IFwiU3RhcnRpbmcgdHJhbnNsYXRvci4uLlwiLFxyXG4gICAgXCJGSUxFX1RBTlNMQVRJT05fU1RBVFVTU19UUkFOU0xBVElOR1wiOiBcIlRyYW5zbGF0aW5nLi4uXCIsXHJcbiAgICBcIkZJTEVfVEFOU0xBVElPTl9TVEFUVVNTX1NBVklOR1wiOiBcIlNhdmluZyB0cmFuc2xhdGlvbi4uLlwiLFxyXG4gICAgXCJGSUxFX1RBTlNMQVRJT05fU1RBVFVTU19RVUVVSU5HXCI6IFwiVHJhbnNsYXRpb24gaXMgc3RhcnRpbmcuLi5cIixcclxuICAgIFwiRklMRV9UQU5TTEFUSU9OX1NUQVRVU1NfVVBMT0FESU5HXCI6IFwiVXBsb2FkaW5nLi4uXCIsXHJcbiAgICBcIkZJTEVfVEFOU0xBVElPTl9TVEFUVVNTX1VQTE9BREVEXCI6IFwiVXBsb2FkZWRcIixcclxuICAgIFwiRklMRV9UQVJHRVRfUFJFVklFV19NRVNTQUdFXCI6IFwiVGhpcyBpcyBhIHByZXZpZXcgb2YgdGhlIHRyYW5zbGF0ZWQgZG9jdW1lbnQsIHBsZWFzZSBkb3dubG9hZCB0byByZWNlaXZlIGEgY29tcGxldGUgdHJhbnNsYXRpb24uXCIsXHJcbiAgICBcIkZST01cIjogXCJGcm9tOlwiLFxyXG4gICAgXCJQREZfRElTQ0xBSU1FUl9MSU5LXCI6IFwiU2VlIGhvdyB0byBmaXggaXRcIixcclxuICAgIFwiSU1BR0VfRElTQ0xBSU1FUl9MSU5LXCI6IFwiUmVhZCBhYm91dCBpbWFnZSBjb252ZXJzaW9uLlwiLFxyXG4gICAgXCJQUkVQQVJJTkdfVFJBTlNMQVRJT05cIjogXCJUcmFuc2xhdGlvbiBpcyBzdGFydGluZ1wiLFxyXG4gICAgXCJSRUdJU1RFUkVEX0ZPUk1BVFNfTE9HR0VEX0lOXCI6IFwiUmVnaXN0ZXJlZCB1c2VycyBoYXZlIGFjY2VzcyB0byB0aGUgZm9sbG93aW5nIGRvY3VtZW50IGZvcm1hdHMgdHJhbnNsYXRpb246IHt7Zm9ybWF0c319LlwiLFxyXG4gICAgXCJSRUdJU1RFUkVEX0ZPUk1BVFNcIjogXCJSZWdpc3RlcmVkIHVzZXJzIGhhdmUgYWNjZXNzIHRvIHRoZSBmb2xsb3dpbmcgZG9jdW1lbnQgZm9ybWF0cyB0cmFuc2xhdGlvbjoge3tmb3JtYXRzfX0uIFJlcXVlc3QgeW91ciBhY2Nlc3MgPGEgY2xhc3M9XFxcImFjY2VudC1jb2xvclxcXCIgdGFyZ2V0PVxcXCJibGFua1xcXCIgaHJlZj1cXFwie3tyZWdpc3Rlckxpbmt9fVxcXCI+aGVyZTwvYT4uXCIsXHJcbiAgICBcIlNPVVJDRV9GT1JNQVRTXCI6IFwiU2VjdXJlIHB1YmxpYyB0cmFuc2xhdGlvbiBzZXJ2aWNlIHN1cHBvcnRzIGZvbGxvd2luZyBkb2N1bWVudCBmb3JtYXRzOiB7e2Zvcm1hdHN9fTtcIixcclxuICAgIFwiU09VUkNFX1RPT0xUSVBcIjogXCJUeXBlIHRleHQgb3IgaW5zZXJ0IGxpbmsgdG8gdHJhbnNsYXRlLlwiLFxyXG4gICAgXCJTT1VSQ0VfVE9PTFRJUF9PTkxZX1RFWFRcIjogXCJUeXBlIHRleHQgdG8gdHJhbnNsYXRlLlwiLFxyXG4gICAgXCJTT1VSQ0VfVE9PTFRJUF9TRU5TSVRJVkVfSU5GT1wiOiBcIkRvIG5vdCB1c2Uge3thcHBOYW1lfX0gdG8gdHJhbnNsYXRlIGNvbmZpZGVudGlhbCBvciBjbGFzc2lmaWVkIGluZm9ybWF0aW9uIG9yIHRleHRzIHRoYXQgY29udGFpbiBzcGVjaWFsIGNhdGVnb3JpZXMgb2YgcGVyc29uYWwgZGF0YSwgc3VjaCBhcyBtZWRpY2FsIGRhdGFcIixcclxuICAgIFwiVEFSR0VUX0RFU0NSSVBUSU9OXCI6IFwiTWFjaGluZSB0cmFuc2xhdGlvbiBhbGxvd3MgdG8gdW5kZXJzdGFuZCB0aGUgbWVhbmluZyBvZiBhIHNvdXJjZSB0ZXh0LCBidXQgY2Fubm90IHN1YnN0aXR1dGUgYSBodW1hbiB0cmFuc2xhdGlvbi5cIixcclxuICAgIFwiVE9cIjogXCJUbzpcIixcclxuICAgIFwiVEVYVF9DT1BJRURcIjogXCJUcmFuc2xhdGlvbiBjb3BpZWRcIixcclxuICAgIFwiU1VHR0VTVF9CVVRUT05cIjogXCJTdWdnZXN0IHRyYW5zbGF0aW9uXCIsXHJcbiAgICBcIlNVR0dFU1RfT1JJR0lOQUxfTEFCRUxcIjogXCJPcmlnaW5hbCBzZW50ZW5jZVwiLFxyXG4gICAgXCJTVUdHRVNUX1NVQk1JVF9CVVRUT05cIjogXCJDb250cmlidXRlXCIsXHJcbiAgICBcIlNVR0dFU1RfVFJBTlNMQVRJT05fTEFCRUxcIjogXCJUcmFuc2xhdGlvblwiLFxyXG4gICAgXCJTVUdHRVNUX1VTQUdFX0lORk9cIjogXCJZb3VyIGFub255bWl6ZWQgdHJhbnNsYXRpb24gc3VnZ2VzdGlvbiB3aWxsIGJlIHVzZWQgdG8gaW1wcm92ZSB0aGUgcXVhbGl0eSBvZiBtYWNoaW5lIHRyYW5zbGF0aW9uLlwiLFxyXG4gICAgXCJUT09MVElQX0FDVElPTlwiOiBcIlRyYW5zbGF0ZVwiLFxyXG4gICAgXCJWRU5ET1JTX0FSSUFfTEFCRUxcIjogXCJQcm92aWRlcnNcIixcclxuICAgIFwiV09SRF9UWVBFX0FESkVDVElWRVwiOiBcImFkamVjdGl2ZVwiLFxyXG4gICAgXCJXT1JEX1RZUEVfTk9VTlwiOiBcIm5vdW5cIixcclxuICAgIFwiV09SRF9UWVBFX1ZFUkJcIjogXCJ2ZXJiXCIsXHJcbiAgICBcIldPUkRfVFlQRV9BRFZFUkJcIjogXCJhZHZlcmJcIixcclxuICAgIFwiV09SRF9UWVBFX0NPTkpVTkNUSU9OXCI6IFwiY29uanVuY3Rpb25cIixcclxuICAgIFwiV09SRF9UWVBFX0lOVEVSSkVDVElPTlwiOiBcImludGVyamVjdGlvblwiLFxyXG4gICAgXCJXT1JEX1RZUEVfUFJPTk9VTlwiOiBcInByb25vdW5cIixcclxuICAgIFwiRE9DX1dPUkRfQ05UX0xJTUlUX01TR19USVRMRVwiOiBcIlRyYW5zbGF0aW9uIGxpbWl0XCIsXHJcbiAgICBcIkRPQ19XT1JEX0NOVF9MSU1JVF9NU0dcIjogXCJPbmx5IHRoZSBmaXJzdCAxMjUwIHdvcmRzIHdpbGwgYmUgdHJhbnNsYXRlZC5cIixcclxuICAgIFwiRE9DX1dPUkRfQ05UX0xJTUlUX01TR19TVUJTQ1JJUFRJT05cIjogXCIgWW91IG5lZWQgYSBUaWxkZSBNVCBzdWJzY3JpcHRpb24gdG8gdHJhbnNsYXRlIGZ1bGwgZmlsZXMuIDxhIGhyZWY9XFxcInt7cHJpY2luZ1VybH19XFxcIiB0YXJnZXQ9J19ibGFuayc+c3RhcnQgd2l0aCBhIGZyZWUgdHJpYWw8L2E+XCIsXHJcbiAgICBcIkVSUk9SX05PX1NZU1RFTVNfTE9BREVEX1RJVExFXCI6IFwiTm8gdHJhbnNsYXRpb24gZW5naW5lcyB3ZXJlIGxvYWRlZFwiLFxyXG4gICAgXCJFUlJPUl9OT19TWVNURU1TX0xPQURFRFwiOiBcIkZhaWxlZCB0byBsb2FkIHRoZSBtYWNoaW5lIHRyYW5zbGF0aW9uIGVuZ2luZXMuXCIsXHJcbiAgICBcIkVSUk9SX05PX1NZU1RFTVNfTE9BREVEX1NVUFBPUlRcIjogXCIgUGxlYXNlIHJlbG9hZCB0aGUgcGFnZSBvciBjb250YWN0IDxhIGhyZWY9XFxcIm1haWx0bzp7e2VtYWlsfX1cXFwiPjxzdHJvbmc+IHN1cHBvcnQ8L3N0cm9uZz48L2E+LlwiLFxyXG4gICAgXCJQREZfUEFHRV9MSU1JVF9NU0dfVElUTEVcIjogXCJUcmFuc2xhdGlvbiBsaW1pdFwiLFxyXG4gICAgXCJQREZfUEFHRV9MSU1JVF9NU0dcIjogXCJPbmx5IHRoZSBmaXJzdCBwYWdlIHdpbGwgYmUgdHJhbnNsYXRlZC5cIixcclxuICAgIFwiUERGX1BBR0VfTElNSVRfTVNHX1NVQlNDUklQVElPTlwiOiBcIiBZb3UgbmVlZCBhIFRpbGRlIE1UIHN1YnNjcmlwdGlvbiB0byB0cmFuc2xhdGUgZnVsbCBQREYgZmlsZXMuIDxhIGhyZWY9XFxcInt7cHJpY2luZ1VybH19XFxcIiB0YXJnZXQ9J19ibGFuayc+c3RhcnQgd2l0aCBhIGZyZWUgdHJpYWw8L2E+XCIsXHJcbiAgICBcIkNMRUFSX1NPVVJDRV9UT09MVElQXCI6IFwiQ2xlYXIgdGV4dFwiXHJcbiAgfSxcclxuICBcIk1VTFRJUExFX0ZJTEVTXCI6IHtcclxuICAgIFwiQVBQRU5EXCI6IFwiQWRkIGZpbGVzXCIsXHJcbiAgICBcIkNMRUFSX0FMTFwiOiBcIkNhbmNlbFwiLFxyXG4gICAgXCJET1dOTE9BRFwiOiBcIkRvd25sb2FkXCIsXHJcbiAgICBcIlNUQVRVU1NfSU5JVElBTElaSU5HXCI6IFwiSW5pdGlhbGl6aW5nXCIsXHJcbiAgICBcIlNUQVRVU1NfRVhUUkFDVElOR1wiOiBcIkV4dHJhY3RpbmdcIixcclxuICAgIFwiU1RBVFVTU19XQUlUSU5HXCI6IFwiU3RhcnRpbmcgdHJhbnNsYXRvclwiLFxyXG4gICAgXCJTVEFUVVNTX1RSQU5TTEFUSU5HXCI6IFwiVHJhbnNsYXRpbmcge3twZXJjZW50fX0lXCIsXHJcbiAgICBcIlNUQVRVU1NfU0FWSU5HXCI6IFwiU2F2aW5nXCIsXHJcbiAgICBcIlNUQVRVU1NfQ09NUExFVEVEXCI6IFwiQ29tcGxldGVkXCIsXHJcbiAgICBcIlNUQVRVU1NfRVJST1JcIjogXCJFcnJvclwiLFxyXG4gICAgXCJTVEFUVVNTX1FVRVVJTkdcIjogXCJRdWV1aW5nXCIsXHJcbiAgICBcIlNUQVRVU1NfTk9UX1NUQVJURURcIjogXCJVcGxvYWRlZFwiLFxyXG4gICAgXCJTVEFUVVNTX1VQTE9BRElOR1wiOiBcIlVwbG9hZGluZy4uLlwiLFxyXG4gICAgXCJTVEFUVVNTX1VQTE9BREVEXCI6IFwiVXBsb2FkZWRcIixcclxuICAgIFwiVElUTEVfRklMRV9OQU1FXCI6IFwiRmlsZVwiLFxyXG4gICAgXCJUSVRMRV9TVEFUVVNTXCI6IFwiU3RhdHVzXCIsXHJcbiAgICBcIlRSQU5TTEFUSU9OX1NUQVRVU1NfTEFCRUxcIjogXCJTdGF0dXNcIixcclxuICAgIFwiUERGX0RJU0NMQUlNRVJcIjogXCJQREYgZG9jdW1lbnRzIG1heSBoYXZlIGZvcm1hdHRpbmcgb3IgdHJhbnNsYXRpb24gZXJyb3JzLlwiLFxyXG4gICAgXCJQREZfRElTQ0xBSU1FUl9MSU5LXCI6IFwiUmVhZCBhYm91dCBwZGYgY29udmVyc2lvbi5cIixcclxuICAgIFwiSU1BR0VfRElTQ0xBSU1FUlwiOiBcIkltYWdlIGNvbnZlcnNpb24gbWF5IGNhdXNlIGZvcm1hdHRpbmcgZXJyb3JzIG9yIHRleHQgZGlzdG9ydGlvbi5cIixcclxuICAgIFwiSU1BR0VfRElTQ0xBSU1FUl9MSU5LXCI6IFwiUmVhZCBhYm91dCBpbWFnZSBjb252ZXJzaW9uLlwiLFxyXG4gICAgXCJTQ1JFRU5fUkVBREVSX0FOTk9VTkNFTUVOVFwiOiBcInt7dHJhbnNsYXRlZH19IG91dCBvZiB7e3RvdGFsfX0gZmlsZXMgYXJlIHRyYW5zbGF0ZWQuXCIsXHJcbiAgICBcIlJFTU9WRV9GSUxFX1RPT0xUSVBcIjogXCJDbGVhciBmaWxlXCJcclxuICB9LFxyXG4gIFwiRVJST1JTXCI6IHtcclxuICAgIFwiRVJST1JfREVGQVVMVF9USVRMRVwiOiBcIlVuZXhwZWN0ZWQgZXJyb3JcIixcclxuICAgIFwiRVJST1JfREVGQVVMVFwiOiBcIkFuIHVuZXhwZWN0ZWQgZXJyb3Igb2NjdXJyZWQuIFBsZWFzZSB0cnkgYWdhaW4uXCIsXHJcbiAgICBcIkVSUk9SX0RFRkFVTFRfU1VQUE9SVFwiOiBcIiBJZiB0aGUgcHJvYmxlbSBjb250aW51ZXMsIGNvbnRhY3QgPGEgaHJlZj1cXFwibWFpbHRvOnt7ZW1haWx9fVxcXCI+PHN0cm9uZz5zdXBwb3J0PC9zdHJvbmc+PC9hPi5cIixcclxuICAgIFwiTUFYX0NIQVJfTEVOR1RIX1RJVExFXCI6IFwiVHJhbnNsYXRpb24gbGltaXRcIixcclxuICAgIFwiTUFYX0NIQVJfTEVOR1RIXCI6IFwiT25seSB7e21heENoYXJMZW5ndGh9fS97e3RvdGFsU3ltYm9sc319IGNoYXJhY3RlcnMgd2lsbCBiZSB0cmFuc2xhdGVkLlwiLFxyXG4gICAgXCJNQVhfQ0hBUl9MRU5HVEhfU1VCU0NSSVBUSU9OXCI6IFwiIFlvdSBuZWVkIGEgVGlsZGUgTVQgc3Vic2NyaXB0aW9uIGZvciB1bmxpbWl0ZWQgdGV4dCB0cmFuc2xhdGlvbi4gPGEgaHJlZj1cXFwie3tyZWdpc3Rlckxpbmt9fT97e3F1ZXJ5U3RyaW5nfX1cXFwiPnN0YXJ0IHdpdGggYSBmcmVlIHRyaWFsPC9hPlwiLFxyXG4gICAgXCJNQVhfTlVNQkVSX09GX0ZJTEVTX1RJVExFXCI6IFwiVXBsb2FkIGxpbWl0XCIsXHJcbiAgICBcIk1BWF9OVU1CRVJfT0ZfRklMRVNcIjogXCJPbmx5IHt7bGltaXR9fSBmaWxlcyBjYW4gYmUgdHJhbnNsYXRlZCBhdCBvbmNlLlwiLFxyXG4gICAgXCJJTkNSRUFTRV9NQVhfTlVNQkVSX09GX0ZJTEVTX1RJVExFXCI6IFwiVXBsb2FkIGxpbWl0XCIsXHJcbiAgICBcIklOQ1JFQVNFX01BWF9OVU1CRVJfT0ZfRklMRVNcIjogXCJPbmx5IDEgZmlsZSBjYW4gYmUgdHJhbnNsYXRlZCBhdCBvbmNlLiBZb3UgbmVlZCBhIFRpbGRlIE1UIHN1YnNjcmlwdGlvbiB0byBpbmNyZWFzZSBsaW1pdC4gPGEgaHJlZj1cXFwie3tyZWdpc3Rlckxpbmt9fT97e3F1ZXJ5U3RyaW5nfX1cXFwiPnN0YXJ0IHdpdGggYSBmcmVlIHRyaWFsPC9hPlwiLFxyXG4gICAgXCJGSUxFX0FMUkVBRFlfQURERURfVElUTEVcIjogXCJGaWxlIGhhcyBhbHJlYWR5IGJlZW4gYWRkZWRcIixcclxuICAgIFwiRklMRV9BTFJFQURZX0FEREVEXCI6IFwiRmlsZSBcXFwie3tmaWxlTmFtZX19XFxcIiBoYXMgYWxyZWFkeSBiZWVuIGFkZGVkLlwiLFxyXG4gICAgXCJVQU5VVEhPUklaRURfNDAxX1RJVExFXCI6IFwiVW5hdXRob3JpemVkXCIsXHJcbiAgICBcIlVBTlVUSE9SSVpFRF80MDFcIjogXCJZb3UgZG9uJ3QgaGF2ZSBwZXJtaXNzaW9uIHRvIHVzZSBtYWNoaW5lIHRyYW5zbGF0aW9uLlwiLFxyXG4gICAgXCJVQU5VVEhPUklaRURfNDAxX1NVUFBPUlRcIjogXCIgUGxlYXNlIGNvbnRhY3QgPGEgaHJlZj1cXFwibWFpbHRvOnt7ZW1haWx9fVxcXCI+PHN0cm9uZz4gc3VwcG9ydDwvc3Ryb25nPjwvYT4uXCIsXHJcbiAgICBcIkVfVU5LTk9XTl9GSUxFX1RZUEVcIjogXCJVbmtub3duIGZpbGUgdHlwZS5cIixcclxuICAgIFwiRV9DQU5OT1RfUkVBRF9GSUxFX1RJVExFXCI6IFwiVW5hYmxlIHRvIHJlYWQgZmlsZVwiLFxyXG4gICAgXCJFX0NBTk5PVF9SRUFEX0ZJTEVcIjogXCJUaGUgZmlsZSBcXFwie3tmaWxlTmFtZX19XFxcIiBpcyBjb3JydXB0ZWQgYW5kIGNvdWxkbid0IGJlIHRyYW5zbGF0ZWQuIENoZWNrIHRoZSBmaWxlIGFuZCB0cnkgYWdhaW4uXCIsXHJcbiAgICBcIkVfRkFJTEVEX0lOX1RSQU5TTEFUSU9OX1RJVExFXCI6IFwiVHJhbnNsYXRpb24gZmFpbGVkXCIsXHJcbiAgICBcIkVfRkFJTEVEX0lOX1RSQU5TTEFUSU9OXCI6IFwiRXJyb3Igb2NjdXJyZWQgd2hpbGUgdHJhbnNsYXRpbmcuIFBsZWFzZSB0cnkgYWdhaW4uXCIsXHJcbiAgICBcIkVfRkFJTEVEX0lOX1RSQU5TTEFUSU9OX1NVUFBPUlRcIjogXCIgSWYgdGhlIHByb2JsZW0gY29udGludWVzLCBjb250YWN0IDxhIGhyZWY9XFxcIm1haWx0bzp7e2VtYWlsfX1cXFwiPjxzdHJvbmc+IHN1cHBvcnQ8L3N0cm9uZz48L2E+LlwiLFxyXG4gICAgXCJFX0ZPUk1BVF9UUkFDS19DSEFOR0VTX1RJVExFXCI6IFwiVHJhbnNsYXRpb24gZmFpbGVkLCBiZWNhdXNlIOKAmHRyYWNrIGNoYW5nZXPigJkgaXMgdHVybmVkIG9uXCIsXHJcbiAgICBcIkVfRk9STUFUX1RSQUNLX0NIQU5HRVNcIjogXCJDaGFuZ2VzIG11c3QgZmlyc3QgYmUgYWNjZXB0ZWQgb3Ig4oCYdHJhY2sgY2hhbmdlc+KAmSB0dXJuZWQgb2ZmIGJlZm9yZSB0cmFuc2xhdGluZyBPZmZpY2UgZmlsZXMuXCIsXHJcbiAgICBcIkVfVU5LTk9XTl9FUlJPUl9USVRMRVwiOiBcIlVua25vd24gZXJyb3JcIixcclxuICAgIFwiRV9VTktOT1dOX0VSUk9SXCI6IFwiQW4gdW5rbm93biBlcnJvciBvY2N1cnJlZC5cIixcclxuICAgIFwiRV9VTkFVVEhPUklaRURfVElUTEVcIjogXCJVbmF1dGhvcml6ZWRcIixcclxuICAgIFwiRV9VTkFVVEhPUklaRURcIjogXCJEb2N1bWVudCB0cmFuc2xhdGlvbiB3YXMgZGVuaWVkLlwiLFxyXG4gICAgXCJDT0xMRUNUSU9OX0NSRUFURV9USVRMRVwiOiBcIkZhaWxlZCB0byBjcmVhdGUgYSBnbG9zc2FyeVwiLFxyXG4gICAgXCJDT0xMRUNUSU9OX0NSRUFURVwiOiBcIkZhaWxlZCB0byBjcmVhdGUgYSBuZXcgZ2xvc3NhcnkuIFBsZWFzZSB0cnkgYWdhaW4uXCIsXHJcbiAgICBcIkNPTExFQ1RJT05fQ1JFQVRFX1NVUFBPUlRcIjogXCIgSWYgdGhlIHByb2JsZW0gY29udGludWVzLCBjb250YWN0IDxhIGhyZWY9XFxcIm1haWx0bzp7e2VtYWlsfX1cXFwiPjxzdHJvbmc+c3VwcG9ydDwvc3Ryb25nPjwvYT4uXCIsXHJcbiAgICBcIkNPTExFQ1RJT05fSU1QT1JUX1RJVExFXCI6IFwiRmFpbGVkIHRvIGF0dGFjaCB0aGUgZ2xvc3NhcnlcIixcclxuICAgIFwiQ09MTEVDVElPTl9JTVBPUlRcIjogXCJGYWlsZWQgdG8gYXR0YWNoIHRoZSB0ZXJtIGNvbGxlY3Rpb24gd2l0aCBJRDoge3t0ZXJtSWR9fSB0byB0aGUgbWFjaGluZSB0cmFuc2xhdGlvbiBlbmdpbmUuIFBsZWFzZSB0cnkgYWdhaW4uXCIsXHJcbiAgICBcIkVfMTFcIjogXCJEYWlseSB0cmFuc2xhdGlvbiBsaW1pdCBoYXMgYmVlbiByZWFjaGVkLlwiLFxyXG4gICAgXCJFXzExX1NVUFBPUlRcIjogXCIgVG8gaW5jcmVhc2UgdGhlIGRhaWx5IGxpbWl0LCBwbGVhc2UgY29udGFjdCA8YSBocmVmPVxcXCJtYWlsdG86e3tlbWFpbH19XFxcIj48c3Ryb25nPnN1cHBvcnQ8L3N0cm9uZz48L2E+LlwiLFxyXG4gICAgXCJFXzEyX1RJVExFXCI6IFwiVGV4dCBzaXplIGxpbWl0XCIsXHJcbiAgICBcIkVfMTJcIjogXCJUZXh0IHNpemUgbGltaXQgcmVhY2hlZC4gU2VuZCBsZXNzIHRleHQgaW4gdGhlIHJlcXVlc3QuXCIsXHJcbiAgICBcIkVfMTJfU1VQUE9SVFwiOiBcIiBUbyBpbmNyZWFzZSB0aGUgdGV4dCBzaXplIGxpbWl0LCBwbGVhc2UgY29udGFjdCA8YSBocmVmPVxcXCJtYWlsdG86e3tlbWFpbH19XFxcIj48c3Ryb25nPnN1cHBvcnQ8L3N0cm9uZz48L2E+LlwiLFxyXG4gICAgXCJFXzIxXCI6IFwiVGhlIHRyYW5zbGF0aW9uIGVuZ2luZSBpcyBzdGFydGluZyB1cCwgdGhpcyBtYXkgdGFrZSBhIG1vbWVudCFcIixcclxuICAgIFwiRV8yMl9USVRMRVwiOiBcIk1hY2hpbmUgdHJhbnNsYXRpb24gZW5naW5lIG5vdCBmb3VuZFwiLFxyXG4gICAgXCJFXzIyXCI6IFwiTWFjaGluZSB0cmFuc2xhdGlvbiBlbmdpbmUgbm90IGZvdW5kLlwiLFxyXG4gICAgXCJFXzIyX1NVUFBPUlRcIjogXCIgUGxlYXNlIGNvbnRhY3QgPGEgaHJlZj1cXFwibWFpbHRvOnt7ZW1haWx9fVxcXCI+PHN0cm9uZz5zdXBwb3J0PC9zdHJvbmc+PC9hPi5cIixcclxuICAgIFwiRV8yM1wiOiBcIk1hY2hpbmUgdHJhbnNsYXRpb24gZW5naW5lIGlzIG5vdCBzdGFydGVkLlwiLFxyXG4gICAgXCJFXzIzX1NVUFBPUlRcIjogXCIgQ29udGFjdCA8YSBocmVmPVxcXCJtYWlsdG86e3tlbWFpbH19XFxcIj48c3Ryb25nPnN1cHBvcnQ8L3N0cm9uZz48L2E+LlwiLFxyXG4gICAgXCJFXzQxXCI6IFwiVW5rbm93biB0ZXJtIGNvcnB1cyBJRCBwcm92aWRlZC4gVGVybSBjb3JwdXMgbXVzdCBiZSBsaW5rZWQgdG8gdGhlIG1hY2hpbmUgdHJhbnNsYXRpb24gZW5naW5lXCIsXHJcbiAgICBcIkVfNTA0XCI6IFwiVHJhbnNsYXRpb24gaGFzIHRpbWVkIG91dC4gVHJ5IGFnYWluIGxhdGVyLlwiLFxyXG4gICAgXCJFXzUwNF9USVRMRVwiOiBcIlRyYW5zbGF0aW9uIHRpbWVvdXRcIixcclxuICAgIFwiRV80MDQyMDFcIjogXCJFbmdpbmUgdGVybSBjb2xsZWN0aW9uIG5vdCBmb3VuZFwiLFxyXG4gICAgXCJFXzQxMzEwMl9USVRMRVwiOiBcIlVwbG9hZGluZyBmaWxlIGVycm9yXCIsXHJcbiAgICBcIkVfNDEzMTAyXCI6IFwiVXBsb2FkZWQgZmlsZSBpcyB0b28gbGFyZ2VcIixcclxuICAgIFwiVFJBTlNMQVRJT05fRkFJTEVEX1RJVExFXCI6IFwiVHJhbnNsYXRpb24gZmFpbGVkXCIsXHJcbiAgICBcIlRSQU5TTEFUSU9OX0ZBSUxFRFwiOiBcIkFuIHVuZXhwZWN0ZWQgZXJyb3Igb2NjdXJyZWQuXCIsXHJcbiAgICBcIlRSQU5TTEFUSU9OX0ZBSUxFRF9TVVBQT1JUXCI6IFwiIElmIHRoZSBwcm9ibGVtIGNvbnRpbnVlcywgY29udGFjdCA8YSBocmVmPVxcXCJtYWlsdG86e3tlbWFpbH19XFxcIj48c3Ryb25nPnN1cHBvcnQ8L3N0cm9uZz48L2E+LlwiLFxyXG4gICAgXCJGSUxFX1RSQU5TTEFUSU9OX0xJTUlUU1wiOiB7XHJcbiAgICAgIFwiRV80MjkwMDFfVElUTEVcIjogXCJGaWxlIHRyYW5zbGF0aW9uIGxpbWl0IHJlYWNoZWRcIixcclxuICAgICAgXCJFXzQyOTAwMVwiOiBcIllvdSBoYXZlIHJlYWNoZWQgeW91ciBtb250aGx5IGxpbWl0IG9mIHt7cXVvdGFGaWxlTGltaXR9fSBmaWxlcyB0cmFuc2xhdGVkLiA8YSBocmVmPSd7e3ByaWNpbmdVcmx9fScgdGFyZ2V0PSdfYmxhbmsnPlVwZ3JhZGUgcGxhbjwvYT4gdG8gY29udGludWUgdHJhbnNsYXRpbmcgZmlsZXMuXCJcclxuICAgIH0sXHJcbiAgICBcIkZJTEVfVFJBTlNMQVRJT05fU1VCU1RBVFVTXCI6IHtcclxuICAgICAgXCJCQURfRklMRV9FUlJPUl9USVRMRVwiOiBcIkZhaWxlZCB0byB0cmFuc2xhdGUgdGhlIGZpbGVcIixcclxuICAgICAgXCJCQURfRklMRV9FUlJPUlwiOiBcIlRoZSBmaWxlIGlzIGNvcnJ1cHRlZCBhbmQgY291bGRuJ3QgYmUgdHJhbnNsYXRlZC4gQ2hlY2sgdGhlIGZpbGUgYW5kIHRyeSBhZ2Fpbi5cIixcclxuICAgICAgXCJOT19URVhUX0VYVFJBQ1RFRF9FUlJPUl9USVRMRVwiOiBcIkZhaWxlZCB0byBleHRyYWN0IGFueSB0ZXh0XCIsXHJcbiAgICAgIFwiTk9fVEVYVF9FWFRSQUNURURfRVJST1JcIjogXCJUaGUgZmlsZSBtYXkgYmUgZW1wdHkuIENoZWNrIHRoZSBmaWxlIGFuZCB0cnkgYWdhaW4uXCIsXHJcbiAgICAgIFwiVFJBQ0tfQ0hBTkdFU19FTkFCTEVEX0VSUk9SX1RJVExFXCI6IFwiVHJhbnNsYXRpb24gZmFpbGVkLCBiZWNhdXNlIOKAmHRyYWNrIGNoYW5nZXPigJkgaXMgdHVybmVkIG9uXCIsXHJcbiAgICAgIFwiVFJBQ0tfQ0hBTkdFU19FTkFCTEVEX0VSUk9SXCI6IFwiQ2hhbmdlcyBtdXN0IGZpcnN0IGJlIGFjY2VwdGVkIG9yIOKAmHRyYWNrIGNoYW5nZXPigJkgdHVybmVkIG9mZiBiZWZvcmUgdHJhbnNsYXRpbmcgT2ZmaWNlIGZpbGVzLlwiLFxyXG4gICAgICBcIlVOS05PV05fRklMRV9UWVBFX0VSUk9SX1RJVExFXCI6IFwiVW5rbm93biBmaWxlIHR5cGVcIixcclxuICAgICAgXCJVTktOT1dOX0ZJTEVfVFlQRV9FUlJPUlwiOiBcIkZpbGUgdHlwZSBub3QgcmVjb2duaXplZC4gVGhlIGZpbGUgZXh0ZW5zaW9uIG1heSBiZSBpbmNvcnJlY3QsIG9yIHRoZSBmaWxlIG1heSBiZSBjb3JydXB0ZWQuXCJcclxuICAgIH0sXHJcbiAgICBcIkZJTEVfVVBMT0FEXCI6IHtcclxuICAgICAgXCJGSUxFX1VQTE9BRF9FTVBUWV9USVRMRVwiOiBcIlRoZSBmaWxlIGlzIGVtcHR5XCIsXHJcbiAgICAgIFwiRklMRV9VUExPQURfRU1QVFlcIjogXCJUaGUgdXBsb2FkZWQgZmlsZSBcXFwie3tmaWxlTmFtZX19XFxcIiBpcyBlbXB0eS4gU2VsZWN0IGEgZmlsZSB3aXRoIGNvbnRlbnQuXCIsXHJcbiAgICAgIFwiRklMRV9VUExPQURfTUFYX1NJWkVfVElUTEVcIjogXCJGaWxlIHNpemUgbGltaXRcIixcclxuICAgICAgXCJGSUxFX1VQTE9BRF9NQVhfU0laRVwiOiBcIlRoZSB1cGxvYWRlZCBmaWxlIFxcXCJ7e2ZpbGVOYW1lfX1cXFwiIGlzIHRvbyBiaWcuIE1heGltdW0gc2l6ZSB7e21heFNpemVNQn19TUJcIixcclxuICAgICAgXCJGSUxFX1VQTE9BRF9VTlNVUFBPUlRFRF9GT1JNQVRfVElUTEVcIjogXCJVbnN1cHBvcnRlZCBmaWxlIGZvcm1hdFwiLFxyXG4gICAgICBcIkZJTEVfVVBMT0FEX1VOU1VQUE9SVEVEX0ZPUk1BVFwiOiBcIlRoZSB1cGxvYWRlZCBmaWxlIFxcXCJ7e2ZpbGVOYW1lfX1cXFwiIGZvcm1hdCBpcyBub3Qgc3VwcG9ydGVkLiBUcmFuc2xhdGlvbiBpcyBzdXBwb3J0ZWQgZm9yIHRoZXNlIGRvY3VtZW50IGZvcm1hdHM6IHt7Zm9ybWF0c319LlwiLFxyXG4gICAgICBcIkZJTEVfVVBMT0FEX1VOU1VQUE9SVEVEX0ZPUk1BVF9SRUdJU1RFUl9USVRMRVwiOiBcIlVuc3VwcG9ydGVkIGZpbGUgZm9ybWF0XCIsXHJcbiAgICAgIFwiRklMRV9VUExPQURfVU5TVVBQT1JURURfRk9STUFUX1JFR0lTVEVSXCI6IFwiWW91IG5lZWQgVGlsZGUgTVQgc3Vic2NyaXB0aW9uIHRvIHRyYW5zbGF0ZSBcXFwie3tmaWxlTmFtZX19XFxcIiBmaWxlLiA8YSBocmVmPVxcXCJ7e3JlZ2lzdGVyTGlua319P3t7cXVlcnlTdHJpbmd9fVxcXCI+c3RhcnQgd2l0aCBhIGZyZWUgdHJpYWw8L2E+XCIsXHJcbiAgICAgIFwiRV80MDRfVElUTEVcIjogXCJGaWxlIG5vdCBmb3VuZFwiLFxyXG4gICAgICBcIkVfNDA0XCI6IFwiVGhlIHJlcXVlc3RlZCBmaWxlIGRvZXNuJ3QgZXhpc3RcIixcclxuICAgICAgXCJFXzQwNF9SRU1PVkVfVElUTEVcIjogXCJGYWlsZWQgdG8gZGVsZXRlIHRoZSBmaWxlXCIsXHJcbiAgICAgIFwiRV80MDRfUkVNT1ZFXCI6IFwiRmlsZSBoYXMgYWxyZWFkeSBiZWVuIGRlbGV0ZWRcIlxyXG4gICAgfSxcclxuICAgIFwiQVVESU9cIjoge1xyXG4gICAgICBcIk5PX1NQRUVDSF9USVRMRVwiOiBcIk5vIHNwZWVjaFwiLFxyXG4gICAgICBcIk5PX1NQRUVDSFwiOiBcIllvdXIgcmVjb3JkaW5nIHdhcyBzdG9wcGVkLiBXZSBjb3VsZG4ndCBoZWFyIHlvdS5cIixcclxuICAgICAgXCJNQVhfVElNRV9FWENFRURFRF9USVRMRVwiOiBcIlNwZWVjaCBsaW1pdFwiLFxyXG4gICAgICBcIk1BWF9USU1FX0VYQ0VFREVEXCI6IFwiWW91ciByZWNvcmRpbmcgd2FzIHN0b3BwZWQuIFNwZWVjaCBpbnB1dCBpcyBsaW1pdGVkIHRvIHt7dGltZVN0cmluZ319LlwiLFxyXG4gICAgICBcIk1JQ19OT1RfQUxMT1dFRF9USVRMRVwiOiBcIk1pY3JvcGhvbmUgYWNjZXNzIGRlbmllZFwiLFxyXG4gICAgICBcIk1JQ19OT1RfQUxMT1dFRFwiOiBcIllvdSBoYXZlIGRlbmllZCBhY2Nlc3MgdG8gdGhlIG1pY3JvcGhvbmUuIENoYW5nZSBwZXJtaXNzaW9ucyBpbiBicm93c2VyJ3Mgc2V0dGluZ3MuXCIsXHJcbiAgICAgIFwiTUFYX1NJWkVfRVhDRUVERURfVElUTEVcIjogXCJTcGVlY2ggbGltaXRcIixcclxuICAgICAgXCJNQVhfU0laRV9FWENFRURFRFwiOiBcIllvdXIgcmVjb3JkaW5nIHdhcyBzdG9wcGVkIGFuZCBzZW50IHRvIHByb2Nlc3NpbmcuIFNwZWVjaCBpbnB1dCBpcyBsaW1pdGVkIHRvICh7e21heFNpemVNYn19TUIpIHNpemUuXCIsXHJcbiAgICAgIFwiQ0FOVF9TVEFSVF9SRUNPUkRJTkdfVElUTEVcIjogXCJGYWlsZWQgdG8gc3RhcnQgcmVjb3JkaW5nXCIsXHJcbiAgICAgIFwiQ0FOVF9TVEFSVF9SRUNPUkRJTkdcIjogXCJVbmFibGUgdG8gc3RhcnQgcmVjb3JkaW5nLiBQbGVhc2UgdHJ5IGFnYWluLlwiLFxyXG4gICAgICBcIk5PX1RFWFRfUkVDT0dOSVpFRF9UaXRsZVwiOiBcIk5vIHNwZWVjaCByZWNvZ25pemVkXCIsXHJcbiAgICAgIFwiTk9fVEVYVF9SRUNPR05JWkVEXCI6IFwiTm8gc3BlZWNoIGNvdWxkIGJlIHJlY29nbml6ZWQuIENoZWNrIHlvdXIgbWljcm9waG9uZSBhbmQgdHJ5IGFnYWluLlwiXHJcbiAgICB9XHJcbiAgfSxcclxuICBcIkxBTkdVQUdFU1wiOiB7XHJcbiAgICBcIkFVVE9cIjogXCJEZXRlY3QgbGFuZ3VhZ2VcIixcclxuICAgIFwiQVJcIjogXCJBcmFiaWNcIixcclxuICAgIFwiTFZcIjogXCJMYXR2aWFuXCIsXHJcbiAgICBcIkVUXCI6IFwiRXN0b25pYW5cIixcclxuICAgIFwiREFcIjogXCJEYW5pc2hcIixcclxuICAgIFwiRklcIjogXCJGaW5uaXNoXCIsXHJcbiAgICBcIklTXCI6IFwiSWNlbGFuZGljXCIsXHJcbiAgICBcIkxUXCI6IFwiTGl0aHVhbmlhblwiLFxyXG4gICAgXCJTVlwiOiBcIlN3ZWRpc2hcIixcclxuICAgIFwiQkVcIjogXCJCZWxvcnVzc2lhblwiLFxyXG4gICAgXCJCR1wiOiBcIkJ1bGdhcmlhblwiLFxyXG4gICAgXCJDU1wiOiBcIkN6ZWNoXCIsXHJcbiAgICBcIkhVXCI6IFwiSHVuZ2FyaWFuXCIsXHJcbiAgICBcIlJVXCI6IFwiUnVzc2lhblwiLFxyXG4gICAgXCJNT1wiOiBcIk1vbGRhdmlhblwiLFxyXG4gICAgXCJQTFwiOiBcIlBvbGlzaFwiLFxyXG4gICAgXCJTS1wiOiBcIlNsb3Zha1wiLFxyXG4gICAgXCJVS1wiOiBcIlVrcmFpbmlhblwiLFxyXG4gICAgXCJOTFwiOiBcIkR1dGNoXCIsXHJcbiAgICBcIkVOXCI6IFwiRW5nbGlzaFwiLFxyXG4gICAgXCJGUlwiOiBcIkZyZW5jaFwiLFxyXG4gICAgXCJERVwiOiBcIkdlcm1hblwiLFxyXG4gICAgXCJHQVwiOiBcIklyaXNoXCIsXHJcbiAgICBcIkVMXCI6IFwiR3JlZWtcIixcclxuICAgIFwiSVRcIjogXCJJdGFsaWFuXCIsXHJcbiAgICBcIk1UXCI6IFwiTWFsdGVzZVwiLFxyXG4gICAgXCJQVFwiOiBcIlBvcnR1Z3Vlc2VcIixcclxuICAgIFwiU1JcIjogXCJTZXJiaWFuXCIsXHJcbiAgICBcIlNMXCI6IFwiU2xvdmVuaWFuXCIsXHJcbiAgICBcIkVTXCI6IFwiU3BhbmlzaFwiLFxyXG4gICAgXCJaSFwiOiBcIkNoaW5lc2VcIixcclxuICAgIFwiSkFcIjogXCJKYXBhbmVzZVwiLFxyXG4gICAgXCJLT1wiOiBcIktvcmVhblwiLFxyXG4gICAgXCJUUlwiOiBcIlR1cmtpc2hcIixcclxuICAgIFwiSFJcIjogXCJDcm9hdGlhblwiLFxyXG4gICAgXCJST1wiOiBcIlJvbWFuaWFuXCIsXHJcbiAgICBcIlVaXCI6IFwiVXpiZWtcIixcclxuICAgIFwiSURcIjogXCJJbmRvbmVzaWFuXCJcclxuICB9LFxyXG4gIFwiQVJJQV9MQUJFTFNcIjoge1xyXG4gICAgXCJDTE9TRV9CVVRUT05cIjogXCJDbGVhclwiLFxyXG4gICAgXCJDTEVBUl9OT1RJRklDQVRJT05cIjogXCJDbG9zZSBhbGVydFwiLFxyXG4gICAgXCJDTEVBUl9TT1VSQ0VcIjogXCJDbGVhciBlbnRlcmVkIHRleHRcIixcclxuICAgIFwiQ0xPU0VfRElBTE9HXCI6IFwiQ2xvc2UgZGlhbG9nXCIsXHJcbiAgICBcIkNMRUFSX0ZJTEVTXCI6IFwiQ2xlYXIgdXBsb2FkZWQgZmlsZXNcIixcclxuICAgIFwiU0hPV19FWFRFTlNJT05TXCI6IFwiU2hvdyBvdGhlciBkb3dubG9hZCBvcHRpb25zXCIsXHJcbiAgICBcIkNPUFlcIjogXCJDb3B5IHRvIGNsaXBib2FyZFwiLFxyXG4gICAgXCJSRUZSRVNIXCI6IFwiUmVmcmVzaCB0cmFuc2xhdGlvblwiLFxyXG4gICAgXCJPUEVOX0lOX05FV1wiOiBcIk9wZW4gaW4gbmV3IHRhYlwiLFxyXG4gICAgXCJTV0FQX0xBTkdVQUdFU1wiOiBcIlN3YXAgbGFuZ3VhZ2VzXCIsXHJcbiAgICBcIk9USEVSX0xBTkdVQUdFU19UUklHR0VSXCI6IFwiU2hvdyBvdGhlciBsYW5ndWFnZXNcIlxyXG4gIH0sXHJcbiAgXCJUT09MVElQU1wiOiB7XHJcbiAgICBcIkNPUFlcIjogXCJDb3B5IHRvIGNsaXBib2FyZFwiLFxyXG4gICAgXCJSRUZSRVNIXCI6IFwiUmVmcmVzaCB0cmFuc2xhdGlvblwiLFxyXG4gICAgXCJTV0FQX0xBTkdVQUdFU1wiOiBcIlN3YXAgbGFuZ3VhZ2VzXCJcclxuICB9LFxyXG4gIFwiUERGX0NPTlZFUlNJT05cIjoge1xyXG4gICAgXCJUSVRMRV8xXCI6IFwiUERGIHRyYW5zbGF0aW9uXCIsXHJcbiAgICBcIlBBUkFHUkFQSF8xXzFcIjogXCJXaGVuIGEgLnBkZiBmaWxlIGlzIHVwbG9hZGVkIGZvciB0cmFuc2xhdGlvbiBpdCBpcyBjb252ZXJ0ZWQgaW50byBhIHRyYW5zbGF0YWJsZSBmb3JtYXQuIEJvdGggc2Nhbm5lZCBhbmQgbmF0aXZlIC5wZGZzIGFyZSBzdXBwb3J0ZWQuIFRyYW5zbGF0aW9ucyBjYW4gYmUgZG93bmxvYWRlZCBpbiAuZG9jeCBmb3JtYXQgYW5kIHdpbGwgcmV0YWluIHRoZSBiYXNpYyBmb3JtYXR0aW5nLiBcIixcclxuICAgIFwiUEFSQUdSQVBIXzFfMlwiOiBcIkFzIGNvbnZlcnNpb24gdGFrZXMgdGltZSwgdG8gc3BlZWQgdGhpbmdzIHVwIHNwbGl0IHlvdXIgLnBkZnMgYW5kIGRlbGV0ZSB0aGUgcGFnZXMgd2l0aCBubyB0cmFuc2xhdGFibGUgaW5mb3JtYXRpb24uIEZhY3RvcnMgbGlrZSB0aGUgbnVtYmVyIG9mIHBhZ2VzLCBxdWFsaXR5IGFuZCB0ZXh0IGRlbnNpdHkgYWZmZWN0IHRoZSBwcm9jZXNzaW5nIHRpbWUuXCIsXHJcbiAgICBcIlBBUkFHUkFQSF8xXzNcIjogXCJUbyBpbXByb3ZlIHRyYW5zbGF0aW9uIHBlcmZvcm1hbmNlLCB3ZSByZWNvbW1lbmQgdG8gZG93bmxvYWQgdGhlIGNvbnZlcnRlZCBkb2N1bWVudCBpbiB0aGUgb3JpZ2luYWwgbGFuZ3VhZ2UgYW5kIGZpeCBpdCBtYW51YWxseSBiZWZvcmUgcmUtdXBsb2FkaW5nIGZvciB0cmFuc2xhdGlvbi5cIixcclxuICAgIFwiSU1BR0VfQUxUXzFcIjogXCJTb3VyY2UgUERGIGRvd25sb2FkIGV4YW1wbGVcIixcclxuICAgIFwiVElUTEVfMlwiOiBcIlBERiBjb252ZXJzaW9uXCIsXHJcbiAgICBcIlBBUkFHUkFQSF8yXzFcIjogXCJUaGUgZG9jdW1lbnQgaXMgYW5hbHlzZWQgYW5kIGl0cyBjb250ZW50IGlzIHNwbGl0IGluIHRleHQsIHRhYmxlIGFuZCBpbWFnZS9iYWNrZ3JvdW5kIGltYWdlIGFyZWFzLiBUaGV5IGFyZSBhbmFseXNlZCBmdXJ0aGVyIHRvIGRldGVybWluZSB3aGljaCBjb250ZW50IHNob3VsZCBiZSByZWNvZ25pemVkIGFzIHRleHQuXCIsXHJcbiAgICBcIlBBUkFHUkFQSF8yXzJcIjogXCJUZXh0dWFsIGRhdGEgYXJlIGFjcXVpcmVkIGJ5IG1lYW5zIG9mIE9DUiBvciBvcHRpY2FsIGNoYXJhY3RlciByZWNvZ25pdGlvbi4gRXZlcnkgY2hhcmFjdGVyIGlzIHJlY29nbml6ZWQgZGVwZW5kaW5nIG9uIGl0cyB2aXN1YWwgY2hhcmFjdGVyaXN0aWNzLCB0aGVuIGFzc2VtYmxlZCBpbnRvIHdvcmRzIGFuZCBzZW50ZW5jZXMuXCIsXHJcbiAgICBcIlBBUkFHUkFQSF8yXzNcIjogXCJSZWNvZ25pdGlvbiBpcyBhZmZlY3RlZCBieSBtYW55IGZhY3RvcnMsIGluY2x1ZGluZzpcIixcclxuICAgIFwiTElfMV8xXCI6IFwiUXVhbGl0eSBvZiB0aGUgc2Nhbm5lZCBkb2N1bWVudCAoYmx1cnJlZCBvciBkZWZvcm1lZCB0ZXh0LCBpbWFnZSBub2lzZSwgaW1hZ2UgcmVzb2x1dGlvbiwgY29udHJhc3QgZXRjLikuIEZvciB0aGUgYmVzdCByZXN1bHQsIC5wZGZzIHNob3VsZCBiZSBhdCBsZWFzdCAzMDAgZHBpLCB1bnNrZXdlZCBhbmQgbm9pc2UgZnJlZS5cIixcclxuICAgIFwiTElfMV8yXCI6IFwiRm9udCBzaXplLiBTaXplcyBzbWFsbGVyIHRoYW4gOSBwb2ludHMgbWlnaHQgYmUgcG9vcmx5IHJlY29nbml6ZWQuIFwiLFxyXG4gICAgXCJMSV8xXzNcIjogXCJSYXJlIGFuZCBvcmlnaW5hbCBmb250cy4gTGVzcyBjb21tb24gZm9udHMgbWF5IGJlIHVucmVjb2duaXphYmxlIG9yIHBlcmZvcm0gd29yc2UuXCIsXHJcbiAgICBcIkxJXzFfNFwiOiBcIkNvbXBsZXhpdHkgb2YgdGhlIGRvY3VtZW50IHN0cnVjdHVyZSBhbmQgZm9ybWF0dGluZy5cIixcclxuICAgIFwiVElUTEVfM1wiOiBcIkltcHJvdmluZyB0cmFuc2xhdGlvbiBwZXJmb3JtYW5jZVwiLFxyXG4gICAgXCJQQVJBR1JBUEhfM18xXCI6IFwiVGhlIGNvbnZlcnNpb24gcHJvY2VzcyBpcyB2ZXJ5IGNvbXBsZXggYW5kIG1heSBiZSBhZmZlY3RlZCBieSB2YXJpb3VzIGVycm9ycyByZXN1bHRpbmcgZnJvbSB0aGUgaW5wdXQgZG9jdW1lbnQuIFwiLFxyXG4gICAgXCJQQVJBR1JBUEhfM18yXCI6IFwiSXNzdWVzIHRvIGxvb2sgZm9yOlwiLFxyXG4gICAgXCJMSV8yXzFcIjogXCJJbmNvcnJlY3RseSByZWNvZ25pemVkIHdvcmRzLlwiLFxyXG4gICAgXCJMSV8yXzJcIjogXCJJbmNvcnJlY3Qgd29yZCBib3VuZGFyaWVzLlwiLFxyXG4gICAgXCJMSV8yXzNcIjogXCJTZW50ZW5jZXMgc3Bhbm5pbmcgbXVsdGlwbGUgY29sdW1ucywgbGluZXMgb3IgcGFnZXMgc3BsaXQgaW50byBkaWZmZXJlbnQgdGV4dHVhbCBvYmplY3RzLlwiLFxyXG4gICAgXCJMSV8yXzRcIjogXCJNaXNwbGFjZWQgcGFnZSBmb290ZXJzIGFuZCBoZWFkZXJzLlwiLFxyXG4gICAgXCJMSV8yXzVcIjogXCJJbmNvcnJlY3QgbnVtYmVyaW5nLlwiLFxyXG4gICAgXCJMSV8yXzZcIjogXCJUYWJsZXMgcmVjb2duaXplZCBhcyBiYWNrZ3JvdW5kIGltYWdlcyB3aXRoIHRleHR1YWwgY29udGVudCBwbGFjZWQgaW50byBkaWZmZXJlbnQgdGV4dHVhbCBvYmplY3RzLlwiLFxyXG4gICAgXCJMSV8yXzdcIjogXCJTb21lIGRpYWdyYW1zIHJlY29nbml6ZWQgYXMgaW1hZ2VzIHdpdGhvdXQgYW55IHRleHR1YWwgY29udGVudC5cIixcclxuICAgIFwiTElfMl84XCI6IFwiU2VwYXJhdG9ycywgYm9yZGVycyBvciBvdGhlciBob3Jpem9udGFsIGxpbmVzIHJlY29nbml6ZWQgYXMgc3RyaWtldGhyb3VnaCBvciB1bmRlcmxpbmVkIHRleHQuXCIsXHJcbiAgICBcIkxJXzJfOVwiOiBcIkZvcm1hdHRpbmcgb2YgdGhlIHRhYmxlIG9mIGNvbnRlbnRzIG9yIHNpbWlsYXIgbGlzdHMgY29sbGFwc2VkIG9yIHJlY29nbml6ZWQgYXMgc3RyaWtldGhyb3VnaCBvciB1bmRlcmxpbmVkIHRleHQuXCIsXHJcbiAgICBcIlBBUkFHUkFQSF80XzFcIjogXCI8Yj5Ob3RlIHRoYXQgdGhlIHJlc3VsdGluZyBkb2N1bWVudCB3aWxsIG5vdCByZXRhaW4gYWxsIGRldGFpbHMgb2YgdGhlIG9yaWdpbmFsIGZvcm1hdHRpbmcuPC9iPiBTb21lIGltYWdlcywgdGFibGVzIG9yIGRpYWdyYW1zIG1heSBiZWNvbWUgZGlzdG9ydGVkIG9yIHNpbXBsaWZpZWQuIEZvbnRzIGluIHRoZSB0cmFuc2xhdGVkIGRvY3VtZW50IHdpbGwgbm90IGJlIHRoZSBzYW1lIGFzIGluIHRoZSBvcmlnaW5hbCwgYnV0IG1heSBiZSBzaW1pbGFyLiBJbmNvcnJlY3QgZm9udCBzaXplIG1heSBiZSByZWNvZ25pemVkLiBTcGVjaWZpYyBXb3JkIGZvcm1hdHRpbmcgbGlrZSBoZWFkaW5ncywgdGFibGVzIG9mIGNvbnRlbnQsIGhlYWRlcnMgYW5kIGZvb3RlcnMsIGxhYmVscywgZm9ybXMgZXRjLiB3aWxsIGJlIHN0eWxlZCB0byBsb29rIGxpa2UgdGhlIG9yaWdpbmFsLCBidXQgd2lsbCBub3QgbWF0Y2ggdGhlIG9yaWdpbmFsIGNvbXBsZXRlbHkgKGUuZy4gdGl0bGVzIHdpbGwgYmUgYm9sZCBhbmQgaW4gbGFyZ2VyIGZvbnQsIGJ1dCB3aWxsIG5vdCBiZSBzZXQgdG8gdGhlIGhlYWRpbmcgc3R5bGUpLlwiLFxyXG4gICAgXCJDTE9TRVwiOiBcIkNsb3NlIGRpYWxvZ1wiXHJcbiAgfSxcclxuICBcIklNQUdFX0NPTlZFUlNJT05cIjoge1xyXG4gICAgXCJUSVRMRV8xXCI6IFwiSW1hZ2UgdHJhbnNsYXRpb25cIixcclxuICAgIFwiUEFSQUdSQVBIXzFfMVwiOiBcIldoZW4gYW4gaW1hZ2UgZmlsZSBpcyB1cGxvYWRlZCBmb3IgdHJhbnNsYXRpb24gaXQgaXMgY29udmVydGVkIGludG8gYSB0cmFuc2xhdGFibGUgZm9ybWF0LiBUcmFuc2xhdGlvbnMgY2FuIGJlIGRvd25sb2FkZWQgaW4gLmRvY3ggZm9ybWF0IGFuZCB3aWxsIHJldGFpbiB0aGUgYmFzaWMgZm9ybWF0dGluZy5cIixcclxuICAgIFwiUEFSQUdSQVBIXzFfMlwiOiBcIjxiPlN1cHBvcnRlZCBpbWFnZSBmb3JtYXRzOjwvYj4gLmpwZywgLmpwZWcsIC5wbmcgYW5kIC5ibXAuXCIsXHJcbiAgICBcIlBBUkFHUkFQSF8xXzNcIjogXCJUbyBpbXByb3ZlIHRyYW5zbGF0aW9uIHBlcmZvcm1hbmNlLCB3ZSByZWNvbW1lbmQgdG8gZG93bmxvYWQgdGhlIGNvbnZlcnRlZCBkb2N1bWVudCBpbiB0aGUgb3JpZ2luYWwgbGFuZ3VhZ2UgYW5kIGZpeCBpdCBtYW51YWxseSBiZWZvcmUgcmUtdXBsb2FkaW5nIGZvciB0cmFuc2xhdGlvbi5cIixcclxuICAgIFwiSU1BR0VfQUxUXzFcIjogXCJTb3VyY2UgaW1hZ2UgZG93bmxvYWQgZXhhbXBsZVwiLFxyXG4gICAgXCJUSVRMRV8yXCI6IFwiSW1hZ2UgY29udmVyc2lvblwiLFxyXG4gICAgXCJQQVJBR1JBUEhfMl8xXCI6IFwiVGhlIGltYWdlIGlzIGFuYWx5c2VkIGFuZCBpdHMgY29udGVudCBpcyBzcGxpdCBpbiB0ZXh0LCB0YWJsZSBhbmQgaW1hZ2UvYmFja2dyb3VuZCBpbWFnZSBhcmVhcy4gVGhleSBhcmUgYW5hbHlzZWQgZnVydGhlciB0byBkZXRlcm1pbmUgd2hpY2ggY29udGVudCBzaG91bGQgYmUgcmVjb2duaXplZCBhcyB0ZXh0LlwiLFxyXG4gICAgXCJQQVJBR1JBUEhfMl8yXCI6IFwiVGV4dHVhbCBkYXRhIGFyZSBhY3F1aXJlZCBieSBtZWFucyBvZiBPQ1Igb3Igb3B0aWNhbCBjaGFyYWN0ZXIgcmVjb2duaXRpb24uIEV2ZXJ5IGNoYXJhY3RlciBpcyByZWNvZ25pemVkIGRlcGVuZGluZyBvbiBpdHMgdmlzdWFsIGNoYXJhY3RlcmlzdGljcywgdGhlbiBhc3NlbWJsZWQgaW50byB3b3JkcyBhbmQgc2VudGVuY2VzLlwiLFxyXG4gICAgXCJQQVJBR1JBUEhfMl8zXCI6IFwiUmVjb2duaXRpb24gaXMgYWZmZWN0ZWQgYnkgbWFueSBmYWN0b3JzLCBpbmNsdWRpbmc6XCIsXHJcbiAgICBcIkxJXzFfMVwiOiBcIlF1YWxpdHkgb2YgdGhlIHNjYW5uZWQgaW1hZ2UgKGJsdXJyZWQgb3IgZGVmb3JtZWQgdGV4dCwgaW1hZ2Ugbm9pc2UsIGltYWdlIHJlc29sdXRpb24sIGNvbnRyYXN0IGV0Yy4pLiBGb3IgdGhlIGJlc3QgcmVzdWx0LCBpbWFnZXMgc2hvdWxkIGJlIGF0IGxlYXN0IDMwMCBkcGksIHVuc2tld2VkIGFuZCBub2lzZSBmcmVlLlwiLFxyXG4gICAgXCJMSV8xXzJcIjogXCJGb250IHNpemUuIFNpemVzIHNtYWxsZXIgdGhhbiA5IHBvaW50cyBtaWdodCBiZSBwb29ybHkgcmVjb2duaXplZC4gXCIsXHJcbiAgICBcIkxJXzFfM1wiOiBcIlJhcmUgYW5kIG9yaWdpbmFsIGZvbnRzLiBMZXNzIGNvbW1vbiBmb250cyBtYXkgYmUgdW5yZWNvZ25pemFibGUgb3IgcGVyZm9ybSB3b3JzZS5cIixcclxuICAgIFwiTElfMV80XCI6IFwiQ29tcGxleGl0eSBvZiB0aGUgZG9jdW1lbnQgc3RydWN0dXJlIGFuZCBmb3JtYXR0aW5nLlwiLFxyXG4gICAgXCJUSVRMRV8zXCI6IFwiSW1wcm92aW5nIHRyYW5zbGF0aW9uIHBlcmZvcm1hbmNlXCIsXHJcbiAgICBcIlBBUkFHUkFQSF8zXzFcIjogXCJUaGUgY29udmVyc2lvbiBwcm9jZXNzIGlzIHZlcnkgY29tcGxleCBhbmQgbWF5IGJlIGFmZmVjdGVkIGJ5IHZhcmlvdXMgZXJyb3JzIHJlc3VsdGluZyBmcm9tIHRoZSBpbnB1dCBkb2N1bWVudC4gXCIsXHJcbiAgICBcIlBBUkFHUkFQSF8zXzJcIjogXCJJc3N1ZXMgdG8gbG9vayBmb3I6XCIsXHJcbiAgICBcIkxJXzJfMVwiOiBcIkluY29ycmVjdGx5IHJlY29nbml6ZWQgd29yZHMuXCIsXHJcbiAgICBcIkxJXzJfMlwiOiBcIkluY29ycmVjdCB3b3JkIGJvdW5kYXJpZXMuXCIsXHJcbiAgICBcIkxJXzJfM1wiOiBcIlNlbnRlbmNlcyBzcGFubmluZyBtdWx0aXBsZSBjb2x1bW5zLCBsaW5lcyBvciBwYWdlcyBzcGxpdCBpbnRvIGRpZmZlcmVudCB0ZXh0dWFsIG9iamVjdHMuXCIsXHJcbiAgICBcIkxJXzJfNFwiOiBcIk1pc3BsYWNlZCBwYWdlIGZvb3RlcnMgYW5kIGhlYWRlcnMuXCIsXHJcbiAgICBcIkxJXzJfNVwiOiBcIkluY29ycmVjdCBudW1iZXJpbmcuXCIsXHJcbiAgICBcIkxJXzJfNlwiOiBcIlRhYmxlcyByZWNvZ25pemVkIGFzIGJhY2tncm91bmQgaW1hZ2VzIHdpdGggdGV4dHVhbCBjb250ZW50IHBsYWNlZCBpbnRvIGRpZmZlcmVudCB0ZXh0dWFsIG9iamVjdHMuXCIsXHJcbiAgICBcIkxJXzJfN1wiOiBcIlNvbWUgZGlhZ3JhbXMgcmVjb2duaXplZCBhcyBpbWFnZXMgd2l0aG91dCBhbnkgdGV4dHVhbCBjb250ZW50LlwiLFxyXG4gICAgXCJMSV8yXzhcIjogXCJTZXBhcmF0b3JzLCBib3JkZXJzIG9yIG90aGVyIGhvcml6b250YWwgbGluZXMgcmVjb2duaXplZCBhcyBzdHJpa2V0aHJvdWdoIG9yIHVuZGVybGluZWQgdGV4dC5cIixcclxuICAgIFwiUEFSQUdSQVBIXzRfMVwiOiBcIjxiPk5vdGUgdGhhdCB0aGUgcmVzdWx0aW5nIGRvY3VtZW50IHdpbGwgbm90IHJldGFpbiBhbGwgZGV0YWlscyBvZiB0aGUgb3JpZ2luYWwgZm9ybWF0dGluZy48L2I+IFNvbWUgaW1hZ2VzLCB0YWJsZXMgb3IgZGlhZ3JhbXMgbWF5IGJlY29tZSBkaXN0b3J0ZWQgb3Igc2ltcGxpZmllZC4gRm9udHMgaW4gdGhlIHRyYW5zbGF0ZWQgZG9jdW1lbnQgd2lsbCBub3QgYmUgdGhlIHNhbWUgYXMgaW4gdGhlIG9yaWdpbmFsLCBidXQgbWF5IGJlIHNpbWlsYXIuIEluY29ycmVjdCBmb250IHNpemUgbWF5IGJlIHJlY29nbml6ZWQuXCIsXHJcbiAgICBcIkNMT1NFXCI6IFwiQ2xvc2UgZGlhbG9nXCJcclxuICB9LFxyXG4gIFwiV0VCVFJBTlNMQVRFXCI6IHtcclxuICAgIFwiQkFDS1wiOiBcIkJhY2sgdG8gVHJhbnNsYXRvclwiLFxyXG4gICAgXCJMT0FEX1BBR0VcIjogXCJMb2FkIHBhZ2VcIixcclxuICAgIFwiUkVTVE9SRVwiOiBcIlJlc3RvcmVcIixcclxuICAgIFwiQ0FOQ0VMXCI6IFwiQ2FuY2VsXCIsXHJcbiAgICBcIlNFQVJDSFwiOiBcIlNlYXJjaCB3ZWJzaXRlXCIsXHJcbiAgICBcIk5PX1JFQ09SRFNcIjoge1xyXG4gICAgICBcIlRJVExFXCI6IFwiU2VhcmNoIGZvciBhIHdlYnNpdGUgdG8gdHJhbnNsYXRlXCIsXHJcbiAgICAgIFwiREVTQ1JJUFRJT05cIjogXCJTZWUgPGEgaHJlZj0ne3toZWxwVXJsfX0nIHRhcmdldD0nX2JsYW5rJyBjbGFzcz0ndW5kZXJsaW5lJz5ob3cgaXQgd29ya3M8L2E+XCJcclxuICAgIH1cclxuICB9LFxyXG4gIFwiREFURV9BR09cIjoge1xyXG4gICAgXCJZRUFSXCI6IFwie3t2YWx1ZX19IHllYXIgYWdvXCIsXHJcbiAgICBcIllFQVJTXCI6IFwie3t2YWx1ZX19IHllYXJzIGFnb1wiLFxyXG4gICAgXCJNT05USFwiOiBcInt7dmFsdWV9fSBtb250aCBhZ29cIixcclxuICAgIFwiTU9OVEhTXCI6IFwie3t2YWx1ZX19IG1vbnRocyBhZ29cIixcclxuICAgIFwiV0VFS1wiOiBcInt7dmFsdWV9fSB3ZWVrIGFnb1wiLFxyXG4gICAgXCJXRUVLU1wiOiBcInt7dmFsdWV9fSB3ZWVrcyBhZ29cIixcclxuICAgIFwiREFZXCI6IFwie3t2YWx1ZX19IGRheSBhZ29cIixcclxuICAgIFwiREFZU1wiOiBcInt7dmFsdWV9fSBkYXlzIGFnb1wiLFxyXG4gICAgXCJIT1VSXCI6IFwie3t2YWx1ZX19IGhvdXIgYWdvXCIsXHJcbiAgICBcIkhPVVJTXCI6IFwie3t2YWx1ZX19IGhvdXJzIGFnb1wiLFxyXG4gICAgXCJNSU5VVEVcIjogXCJ7e3ZhbHVlfX0gbWludXRlIGFnb1wiLFxyXG4gICAgXCJNSU5VVEVTXCI6IFwie3t2YWx1ZX19IG1pbnV0ZXMgYWdvXCIsXHJcbiAgICBcIlNFQ09ORFwiOiBcInt7dmFsdWV9fSBzZWNvbmQgYWdvXCIsXHJcbiAgICBcIlNFQ09ORFNcIjogXCJ7e3ZhbHVlfX0gc2Vjb25kcyBhZ29cIixcclxuICAgIFwiSlVTVF9OT1dcIjogXCJKdXN0IG5vd1wiXHJcbiAgfSxcclxuICBcIlRFUk1fQ09MTEVDVElPTlNcIjoge1xyXG4gICAgXCJUSVRMRVwiOiBcIkdsb3NzYXJpZXNcIixcclxuICAgIFwiREVGQVVMVFwiOiBcIkRlZmF1bHRcIixcclxuICAgIFwiREVTQ1JJUFRJT05cIjogXCJBY2hpZXZlIHByZWNpc2UgYW5kIHJlbGlhYmxlIHRyYW5zbGF0aW9ucyBieSBjaG9vc2luZyB0aGUgbW9zdCBzdWl0YWJsZSBnbG9zc2FyeSBmcm9tIHRoZSBsaXN0LlwiLFxyXG4gICAgXCJHTE9TU0FSWVwiOiBcIkdsb3NzYXJ5OiBcIixcclxuICAgIFwiU0VMRUNURURfTk9ORVwiOiBcIk5vbmVcIixcclxuICAgIFwiRURJVFwiOiBcIkVkaXRcIixcclxuICAgIFwiQ1JFQVRFXCI6IFwiTmV3IGdsb3NzYXJ5XCIsXHJcbiAgICBcIkRFU0NSSVBUSU9OX0VNUFRZXCI6IFwiPHNwYW4+Q3JlYXRlIG5ldyBnbG9zc2FyeTwvc3Bhbj4gZm9yIHt7c3JjTGFuZ319LXt7dHJnTGFuZ319IG9yIG9wZW4gPHNwYW4+RGVmYXVsdCBnbG9zc2FyaWVzIG1hbmFnZW1lbnQ8L3NwYW4+IGFuZCBjcmVhdGUgZ2xvc3NhcnkgdGhlcmUgdG8gdXNlIGl0IGluIHRyYW5zbGF0aW9uIGFjcm9zcyB0aGUgcGxhdGZvcm0uXCIsXHJcbiAgICBcIlVOQVZBSUxBQkxFX0dMT1NTQVJJRVNcIjogXCJObyBnbG9zc2FyeSBhdmFpbGFibGVcIixcclxuICAgIFwiTEFTVF9VUERBVEVEXCI6IFwiTGFzdCB1cGRhdGVkOiB7e2RhdGV9fVwiLFxyXG4gICAgXCJERUZBVUxUX0NPTExFQ1RJT05fTkFNRVwiOiBcIk15IHRlcm0gY29sbGVjdGlvblwiLFxyXG4gICAgXCJTWU5DXCI6IFwiU3luY1wiLFxyXG4gICAgXCJTWU5DX0VSUk9SXCI6IFwiUmV0cnlcIixcclxuICAgIFwiVEVSTVNfSU5fVVNFXCI6IFwiVGVybXMgaW4gdXNlOiB7e3Rlcm1Db3VudH19XCIsXHJcbiAgICBcIkRFRkFVTFRfR0xPU1NBUllfTUFOQUdFTUVOVFwiOiBcIk1hbmFnZSBkZWZhdWx0IGdsb3NzYXJpZXNcIixcclxuICAgIFwiQVJJQV9MQUJFTFNcIjoge1xyXG4gICAgICBcIlJBRElPX0dST1VQXCI6IFwiU2VsZWN0IGEgdGVybSBjb2xsZWN0aW9uXCIsXHJcbiAgICAgIFwiT1RIRVJfQ09MTEVDVElPTlNcIjogXCJPcGVuIHRoZSBjb2xsZWN0aW9uIG1lbnVcIlxyXG4gICAgfSxcclxuICAgIFwiQ1JFQVRFX0RJQUxPR1wiOiB7XHJcbiAgICAgIFwiQ0FOQ0VMXCI6IFwiQ2FuY2VsXCIsXHJcbiAgICAgIFwiQ09MTEVDVElPTl9OQU1FX0xBQkVMXCI6IFwiR2xvc3NhcnkgbmFtZVwiLFxyXG4gICAgICBcIkNSRUFURVwiOiBcIkNyZWF0ZVwiLFxyXG4gICAgICBcIkRFU0NSSVBUSU9OXzFcIjogXCJBZnRlciBjbGlja2luZyDigJxDcmVhdGXigJ0geW91IHdpbGwgYmUgcmVkaXJlY3RlZCB0byBUaWxkZSBUZXJtIHRvIGFkZCB5b3VyIHRlcm1zLlwiLFxyXG4gICAgICBcIkRFU0NSSVBUSU9OXzJcIjogXCI8aT4qQUkgaXMgbm90IHBlcmZlY3QgYW5kIGNhbiBtYWtlIG9jY2FzaW9uYWwgbWlzdGFrZXMuIFlvdXIgdW5pcXVlIHRlcm1zIHdpbGwgYmUgdXNlZCBjb3JyZWN0bHkgd2l0aCA5NSUgYWNjdXJhY3kuPC9pPlwiLFxyXG4gICAgICBcIlRJVExFXCI6IFwiQ3JlYXRlIG5ldyBnbG9zc2FyeVwiLFxyXG4gICAgICBcIkNPTExFQ1RJT05fTkFNRV9FUlJPUlwiOiBcIlRpdGxlIHNob3VsZCBiZSBhdCBsZWFzdCB7e21pbkxlbmd0aH19IHN5bWJvbHMgbG9uZyBhbmQgbm90IGxvbmdlciB0aGFuIHt7bWF4TGVuZ3RofX0gc3ltYm9sc1wiXHJcbiAgICB9LFxyXG4gICAgXCJUT09MVElQU1wiOiB7XHJcbiAgICAgIFwiRURJVFwiOiBcIkVkaXQgZ2xvc3NhcnkgaW4gdGVybWlub2xvZ3kgcG9ydGFsXCIsXHJcbiAgICAgIFwiSU1QT1JUSU5HXCI6IFwiSW1wb3J0aW5nIGdsb3NzYXJ5XCIsXHJcbiAgICAgIFwiTk9fRU5UUklFU1wiOiBcIlRlcm0gY29sbGVjdGlvbiBjYW5ub3QgYmUgdXNlZDogbm8gdGVybXMgaW4gc291cmNlIGxhbmd1YWdlXCIsXHJcbiAgICAgIFwiREVGQVVMVF9DT0xMRUNUSU9OXCI6IFwiVGhlc2UgdGVybXMgYXJlIG5vdyBpbiB1c2UuIFlvdSBjYW4gbWFuYWdlIHRoZW0gdGhyb3VnaCBEZWZhdWx0IGdsb3NzYXJ5IG1hbmFnZW1lbnQuIFwiLFxyXG4gICAgICBcIlNZTkNcIjogXCJVcGRhdGUgdGhlIHRlcm0gY29sbGVjdGlvblwiLFxyXG4gICAgICBcIlNZTkNJTkdcIjogXCJUZXJtIGNvbGxlY3Rpb24gaXMgc3luY2VkLCB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhlIGNvbGxlY3Rpb24gd2lsbCBiZSB1c2VkXCIsXHJcbiAgICAgIFwiQVRUQUNIX1RPX1NZU1RFTV9FUlJPUlwiOiBcIkFuIGVycm9yIGhhcyBvY2N1cmVkIHdoaWxlIGltcG9ydGluZyB0aGUgdGVybSBjb2xsZWN0aW9uXCJcclxuICAgIH0sXHJcbiAgICBcIlJFQURFUlwiOiB7XHJcbiAgICAgIFwiVElUTEVcIjogXCJHbG9zc2FyaWVzXCIsXHJcbiAgICAgIFwiVU5BVkFJTEFCTEVcIjogXCJHbG9zc2FyaWVzIG5vdCBhdmFpbGFibGVcIixcclxuICAgICAgXCJURVhUXCI6IFwiR2xvc3NhcmllcyBhcmUgb25seSBhdmFpbGFibGUgZm9yIGF1dGhvcml6ZWQgdXNlcnMuIDwvYnI+IDxhIGhyZWY9J3t7c2lnbkluVXJsfX0nPlNpZ24gaW48L2E+IG9yIDxhIGhyZWY9J3t7c3RhcnRUcmlhbFVybH19Jz5zdGFydCB5b3VyIGZyZWUgdHJpYWw8L2E+IHRvIHVubG9jayBvdXIgZ2xvc3NhcnkuXCIsXHJcbiAgICAgIFwiV0hBVF9JU19HTE9TU0FSWV9USVRMRVwiOiBcIldoYXQgaXMgYSBHbG9zc2FyeT9cIixcclxuICAgICAgXCJXSEFUX0lTX0dMT1NTQVJZX0RFU0NcIjogXCJBIGdsb3NzYXJ5IGluIG1hY2hpbmUgdHJhbnNsYXRpb24gaXMgYSBjdXN0b20gZGljdGlvbmFyeSBvZiBzcGVjaWZpYyB0ZXJtcyBhbmQgdHJhbnNsYXRpb25zLlwiLFxyXG4gICAgICBcIkJFTkVGSVRTX1RJVExFXCI6IFwiR2xvc3NhcnkgQmVuZWZpdHNcIixcclxuICAgICAgXCJCRU5FRklUU19ERVNDXCI6IFwiSXQgZW5zdXJlcyBjb25zaXN0ZW5jeSBhbmQgYWNjdXJhY3ksIGVuaGFuY2luZyB0cmFuc2xhdGlvbiBxdWFsaXR5IGZvciBzcGVjaWFsaXplZCBjb250ZW50LlwiXHJcbiAgICB9LFxyXG4gICAgXCJFUlJPUlNcIjoge1xyXG4gICAgICBcIkVSUk9SSU1QT1JUSU5HXCI6IFwiSW1wb3J0aW5nIGVycm9yXCJcclxuICAgIH1cclxuICB9LFxyXG4gIFwiRE9NQUlOU1wiOiB7XHJcbiAgICBcIk9QRU5fTElTVF9BUklBX0xBQkVMXCI6IFwiT3BlbiBkb21haW4gbGlzdFwiLFxyXG4gICAgXCJUSVRMRVwiOiBcIkRvbWFpbjpcIixcclxuICAgIFwiTEFXXCI6IFwiTGF3XCIsXHJcbiAgICBcIkRZTkFNSUNfTEVBUk5JTkdcIjogXCJEeW5hbWljIGxlYXJuaW5nXCIsXHJcbiAgICBcIkJVU0lORVNTXCI6IFwiQnVzaW5lc3NcIixcclxuICAgIFwiR0VORVJBTFwiOiBcIkdlbmVyYWxcIixcclxuICAgIFwiQVVUT1wiOiBcIkF1dG9kZXRlY3RcIixcclxuICAgIFwiU1BEXCI6IFwiRVUgRm9ybWFsIExhbmd1YWdlXCIsXHJcbiAgICBcIkdFTlwiOiBcIkdlbmVyYWwgVGV4dFwiLFxyXG4gICAgXCJFQ0JcIjogXCJGaW5hbmNlXCIsXHJcbiAgICBcIkVDSlwiOiBcIkV1cm9wZWFuIENvdXJ0IG9mIEp1c3RpY2VcIixcclxuICAgIFwiUFVCSEVBTFRIXCI6IFwiUHVibGljIEhlYWx0aFwiLFxyXG4gICAgXCJCVUJBXCI6IFwiRGV1dHNjaGUgQnVuZGVzYmFua1wiLFxyXG4gICAgXCJCRVJDWVwiOiBcIk1pbmlzdMOocmUgZGVzIEZpbmFuY2VzXCIsXHJcbiAgICBcIkVVUk9QRUFOQVwiOiBcIkV1cm9wZWFuYVwiLFxyXG4gICAgXCJJUE9cIjogXCJJUCBDYXNlIExhd1wiLFxyXG4gICAgXCJUUklTXCI6IFwiRW5naW5lcyBidWlsdCB1c2luZyBkYXRhIGZyb20gdGhlIHRlY2huaWNhbCByZWd1bGF0aW9uIGluZm9ybWF0aW9uIHN5c3RlbVwiLFxyXG4gICAgXCJWS1wiOiBcIlZhbHRpb25ldXZvc3RvbiBLYW5zbGlhXCIsXHJcbiAgICBcIkJVQkFfTk1UVEVTVFwiOiBcIkRldXRzY2hlIEJ1bmRlc2JhbmsgVGVzdFwiXHJcbiAgfSxcclxuICBcIkdSQU1NQVJfQ0hFQ0tfTUVOVVwiOiB7XHJcbiAgICBcIlRJVExFXCI6IFwiQ29uc2lkZXIgY2hhbmdpbmcgdG86XCJcclxuICB9LFxyXG4gIFwiQVVESU9cIjoge1xyXG4gICAgXCJDQU5DRUxcIjogXCJDYW5jZWxcIixcclxuICAgIFwiREVTQ1JJQkVfU1RBVEVfUkVDT1JESU5HXCI6IFwiUGxlYXNlIHNwZWFrIHRvIHJlY29yZC4uLlwiLFxyXG4gICAgXCJERVNDUklCRV9TVEFURV9QUk9DRVNTSU5HXCI6IFwiUHJvY2Vzc2luZy4uLlwiLFxyXG4gICAgXCJNSUNfTk9UX0ZPVU5EXCI6IFwiTWljcm9waG9uZSBub3QgZm91bmRcIixcclxuICAgIFwiU1RPUFwiOiBcIlN0b3AgcmVjb3JkaW5nXCIsXHJcbiAgICBcIlNUQVJUXCI6IFwiVHJhbnNsYXRlIHNwZWVjaFwiLFxyXG4gICAgXCJQVU5DVFVBVElPTl9NRVNTQUdFX1RJVExFXCI6IFwiQWRkIHB1bmN0dWF0aW9uXCIsXHJcbiAgICBcIlBVTkNUVUFUSU9OX01FU1NBR0VcIjogXCJQbGVhc2UgYWRkIHB1bmN0dWF0aW9uIHRvIHRoZSByZWNvZ25pemVkIHRleHQuIExvbmcgdGV4dCB3aXRob3V0IHB1bmN0dWF0aW9uIG1heSBoYXZlIGxvd2VyIHRyYW5zbGF0aW9uIHF1YWxpdHkgb3Igbm90IGJlIHRyYW5zbGF0ZWQuXCJcclxuICB9LFxyXG4gIFwiRVhURU5TSU9OX1BPUFVQXCI6IHtcclxuICAgIFwiT1BFTlwiOiBcInNlZSBhbGwgc3VwcG9ydGVkIGZvcm1hdHNcIixcclxuICAgIFwiVElUTEVcIjogXCJTdXBwb3J0ZWQgZmlsZSBmb3JtYXRzXCIsXHJcbiAgICBcIkRFU0NSSVBUSU9OXCI6IFwiVVRGLTggb3IgVVRGLTE2IGNvZGluZyByZXF1aXJlZCB0byBlbnN1cmUgY29ycmVjdCBmaWxlIHRyYW5zbGF0aW9uXCIsXHJcbiAgICBcIk9GRklDRVwiOiBcIk9mZmljZVwiLFxyXG4gICAgXCJTQ0FOTkVEXCI6IFwiSW1hZ2UgZmlsZXNcIixcclxuICAgIFwiSU5URVJDSEFOR0VcIjogXCJJbnRlcmNoYW5nZSBmb3JtYXRzXCIsXHJcbiAgICBcIldFQlwiOiBcIldlYlwiLFxyXG4gICAgXCJPVEhFUlwiOiBcIk90aGVyXCJcclxuICB9LFxyXG4gIFwiRklMRV9VUExPQURcIjoge1xyXG4gICAgXCJVUExPQURcIjogXCJVcGxvYWRcIixcclxuICAgIFwiRFJBR19BTkRfRFJPUFwiOiBcIm9yIGRyYWcgYW5kIGRyb3AgXCIsXHJcbiAgICBcIkZJTEVcIjogXCJhIGZpbGVcIixcclxuICAgIFwiRklMRVNcIjogXCJmaWxlc1wiLFxyXG4gICAgXCJMSU1JVFNfTUJcIjogXCJNYXgge3ttYXhTaXplTUJ9fU1CXCIsXHJcbiAgICBcIkNMRUFSXCI6IFwiQ2xlYXIgZmlsZVwiLFxyXG4gICAgXCJTRUxFQ1RfTEFOR1VBR0VfV0FSTklOR1wiOiBcIlBsZWFzZSwgc2VsZWN0IHRoZSBzb3VyY2UgbGFuZ3VhZ2Ugb2YgdGhlIGZpbGUuXCJcclxuICB9LFxyXG4gIFwiU1lTVEVNX1BJQ0tFUlwiOiB7XHJcbiAgICBcIlNPVVJDRVwiOiBcIlRyYW5zbGF0ZSBmcm9tXCIsXHJcbiAgICBcIlRBUkdFVFwiOiBcIlRyYW5zbGF0ZSB0b1wiLFxyXG4gICAgXCJTRUFSQ0hfUExBQ0VIT0xERVJcIjogXCJTZWFyY2ggbGFuZ3VhZ2VzXCIsXHJcbiAgICBcIlJFQ0VOVF9TWVNURU1fVElUTEVcIjogXCJSZWNlbnRcIixcclxuICAgIFwiU0VMRUNUX0RPTUFJTlwiOiBcIlNlbGVjdCBkb21haW5cIixcclxuICAgIFwiRklMVEVSX05PX1JFU1VMVFNcIjogXCJObyByZXN1bHRzXCIsXHJcbiAgICBcIkFMTF9MQU5HVUFHRVNcIjogXCJBbGwgbGFuZ3VhZ2VzXCIsXHJcbiAgICBcIkNMRUFSX1NFQVJDSFwiOiBcIkNsZWFyIHNlYXJjaCB0ZXh0XCIsXHJcbiAgICBcIk9QRU5fU09VUkNFX0FSSUFfTEFCRUxcIjogXCJTZWxlY3Qgc291cmNlIGxhbmd1YWdlXCIsXHJcbiAgICBcIk9QRU5fVEFSR0VUX0FSSUFfTEFCRUxcIjogXCJTZWxlY3QgdGFyZ2V0IGxhbmd1YWdlIGFuZCBkb21haW5cIixcclxuICAgIFwiREVURUNURURcIjogXCJEZXRlY3RlZFwiXHJcbiAgfSxcclxuICBcIlRFWFRfVFJBTlNMQVRJT05fUFJPR1JFU1NfSU5ESUNBVE9SXCI6IHtcclxuICAgIFwiVElUTEVcIjogXCJUcmFuc2xhdGlvbiBwcm92aWRlZCBieSB7e3Byb3ZpZGVyfX1cIixcclxuICAgIFwiVFJBTlNMQVRJTkdcIjogXCJUcmFuc2xhdGluZy4uLlwiLFxyXG4gICAgXCJDTE9TRV9CVVRUT05fVE9PTFRJUFwiOiBcIlJlbW92ZSBwcm9ncmVzcyBiYXJcIixcclxuICAgIFwiQ0xPU0VfQlVUVE9OX0FSSUFfTEFCRUxcIjogXCJSZW1vdmUgcHJvZ3Jlc3MgYmFyXCJcclxuICB9LFxyXG4gIFwiVkVORE9SX01FU1NBR0VcIjoge1xyXG4gICAgXCJURVhUXCI6IFwiVHJhbnNsYXRpb24gcHJvdmlkZWQgYnkge3t2ZW5kb3J9fVwiLFxyXG4gICAgXCJJQ09OX1RPT0xUSVBcIjogXCJTeXN0ZW1zIG9mZmVyZWQgYnkge3t2ZW5kb3J9fSBhcmUgdXNlZCBieSBhIGh1Z2UgbnVtYmVyIG9mIHVzZXJzLiBUaGV5IG1heSBiZSBzbG93IGF0IHRpbWUgZHVlIHRvIHRoZSBoZWF2eSB3b3JrIGxvYWQuXCJcclxuICB9LFxyXG4gIFwiVkVORE9SU1wiOiB7XHJcbiAgICBcIkVUUkFOU0xBVElPTlwiOiBcImVUcmFuc2xhdGlvblwiXHJcbiAgfSxcclxuICBcIlRFWFRfVE9fU1BFRUNIXCI6IHtcclxuICAgIFwiUExBWVwiOiBcIkxpc3RlblwiLFxyXG4gICAgXCJQQVVTRVwiOiBcIlBhdXNlXCJcclxuICB9LFxyXG4gIFwiTExNXCI6IHtcclxuICAgIFwiU1VNTUFSWVwiOiBcIkNyZWF0ZSBzdW1tYXJ5XCIsXHJcbiAgICBcIlJFUEhSQVNFXCI6IFwiUmVwaHJhc2UgdHJhbnNsYXRpb25cIixcclxuICAgIFwiTUVOVV9UT09MVElQXCI6IFwiUmVwaHJhc2Ugb3Igc3VtbWFyaXplIHRyYW5zbGF0aW9uXCIsXHJcbiAgICBcIk1FTlVfRElTQUJMRURfVE9PTFRJUFwiOiBcIldhaXQgZm9yIHRyYW5zbGF0aW9uIG9yIHByb3ZpZGUgc291cmNlIHRleHQgdG8gdXNlIHJlcGhyYXNpbmcgYW5kIHN1bW1hcml6aW5nIGZlYXR1cmVzXCIsXHJcbiAgICBcIk1FTlVfUkVQSFJBU0VfRElTQUJMRURfVE9PTFRJUFwiOiBcIlRyYW5zbGF0ZSBpbnRvIEVuZ2xpc2ggdG8gdXNlIHJlcGhyYXNpbmcgZmVhdHVyZVwiLFxyXG4gICAgXCJSRVBIUkFTRV9NT0RBTFwiOiB7XHJcbiAgICAgIFwiVElUTEVcIjogXCJSZXBocmFzZSB0cmFuc2xhdGlvblwiLFxyXG4gICAgICBcIkRFU0NSSVBUSU9OXCI6IFwiUmVwaHJhc2UgdGV4dCBpbnRvIGEgc3BlY2lmaWVkIHdyaXRpbmcgc3R5bGUsIGFkYXB0aW5nIHRoZSBsYW5ndWFnZSBhbmQgdG9uZSB0byBtYXRjaCBhIGdpdmVuIHRhcmdldCBzdHlsZSBvciB2b2ljZS5cIixcclxuICAgICAgXCJDTE9TRVwiOiBcIkNsb3NlXCIsXHJcbiAgICAgIFwiQ0FOQ0VMXCI6IFwiQ2FuY2VsXCIsXHJcbiAgICAgIFwiUkVQSFJBU0VcIjogXCJSZXBocmFzZVwiLFxyXG4gICAgICBcIlJFUEhSQVNJTkdcIjogXCJSZXBocmFzaW5nLi4uXCIsXHJcbiAgICAgIFwiTElNSVRcIjogXCI8c3BhbiBjbGFzcz0ndGV4dC1tLXNlbWktYm9sZCc+e3tsaW1pdH19PC9zcGFuPiByZXBocmFzZSBsZWZ0IHRvZGF5LiBOZWVkIG1vcmU/IDxhIGhyZWY9J3t7c3Vic2NyaXB0aW9uVXJsfX0nIHRhcmdldD0nX2JsYW5rJz5VcGdyYWRlIHN1YnNjcmlwdGlvbjwvYT5cIixcclxuICAgICAgXCJXUklUSU5HX1NUWUxFU1wiOiB7XHJcbiAgICAgICAgXCJUSVRMRVwiOiBcIldyaXRpbmcgc3R5bGVcIixcclxuICAgICAgICBcIlRPT0xUSVBfR0VORVJBTFwiOiBcIkZvcm1hbGl0eTogVXNlIGEgbG93IHRvIG1lZGl1bSBsZXZlbCBvZiBmb3JtYWxpdHkuIFxcblZvY2FidWxhcnk6IE9wdGltYWwgZm9yIHNpbXBsZSBhbmQgY2xlYXIgbGFuZ3VhZ2UsIGF2b2lkaW5nIHRlY2huaWNhbCBqYXJnb24uIFxcblNlbnRlbmNlIFN0cnVjdHVyZTogS2VlcCBzZW50ZW5jZXMgc2ltcGxlIHRvIG1vZGVyYXRlbHkgY29tcGxleC4gXFxuVG9uZTogTWFpbnRhaW4gYSBmcmllbmRseSBhbmQgZW5nYWdpbmcgdG9uZS5cIixcclxuICAgICAgICBcIlRPT0xUSVBfUFJPRkVTU0lPTkFMXCI6IFwiRm9ybWFsaXR5OiBVc2UgYSBtZWRpdW0gdG8gaGlnaCBsZXZlbCBvZiBmb3JtYWxpdHkuIFxcblZvY2FidWxhcnk6IFV0aWxpemUgaW5kdXN0cnktc3BlY2lmaWMgdGVybWlub2xvZ3kgYW5kIGphcmdvbiB3aGVyZSBhcHByb3ByaWF0ZS4gXFxuU2VudGVuY2UgU3RydWN0dXJlOiBFbnN1cmUgc2VudGVuY2VzIGFyZSBjbGVhciBhbmQgY29uY2lzZSwgd2l0aCBzb21lIGNvbXBsZXhpdHkuIFxcblRvbmU6IE1haW50YWluIGEgcHJvZmVzc2lvbmFsLCByZXNwZWN0ZnVsLCBhbmQgc3RyYWlnaHRmb3J3YXJkIHRvbmUuXCIsXHJcbiAgICAgICAgXCJUT09MVElQX0FDQURFTUlDXCI6IFwiRm9ybWFsaXR5OiBVc2UgYSBoaWdoIGxldmVsIG9mIGZvcm1hbGl0eS4gXFxuVm9jYWJ1bGFyeTogSW5jb3Jwb3JhdGUgdGVjaG5pY2FsIGFuZCBzdWJqZWN0LXNwZWNpZmljIHRlcm1pbm9sb2d5LiBcXG5TZW50ZW5jZSBTdHJ1Y3R1cmU6IFV0aWxpemUgY29tcGxleCBzZW50ZW5jZSBzdHJ1Y3R1cmVzIHdpdGggYSBmb2N1cyBvbiBjbGFyaXR5IGFuZCBwcmVjaXNpb24uIFxcblRvbmU6IE1haW50YWluIGFuIG9iamVjdGl2ZSwgYW5hbHl0aWNhbCwgYW5kIHNvbWV0aW1lcyBpbXBlcnNvbmFsIHRvbmUuXCIsXHJcbiAgICAgICAgXCJTUEVDSUZJQ19TVFlMRVwiOiBcInt7c3R5bGV9fSB3cml0aW5nIHN0eWxlXCIsXHJcbiAgICAgICAgXCJHRU5FUkFMXCI6IFwiR2VuZXJhbFwiLFxyXG4gICAgICAgIFwiUFJPRkVTU0lPTkFMXCI6IFwiUHJvZmVzc2lvbmFsXCIsXHJcbiAgICAgICAgXCJBQ0FERU1JQ1wiOiBcIkFjYWRlbWljXCJcclxuICAgICAgfSxcclxuICAgIH0sXHJcbiAgICBcIlNVTU1BUllfTU9EQUxcIjoge1xyXG4gICAgICBcIlRJVExFXCI6IFwiVHJhbnNsYXRpb24gc3VtbWFyeVwiLFxyXG4gICAgICBcIkRFU0NSSVBUSU9OXCI6IFwiUXVpY2tseSBjb25kZW5zZSBsZW5ndGh5IHRleHRzIGludG8gY2xlYXIgc3VtbWFyaWVzIHVzaW5nIG91ciBhZHZhbmNlZCBMTE0gZmVhdHVyZS5cIixcclxuICAgICAgXCJDQU5DRUxcIjogXCJDYW5jZWxcIixcclxuICAgICAgXCJDTE9TRVwiOiBcIkNsb3NlXCIsXHJcbiAgICAgIFwiQ1JFQVRFXCI6IFwiQ3JlYXRlIHN1bW1hcnlcIixcclxuICAgICAgXCJSRUdFTkVSQVRFXCI6IFwiUmUtZ2VuZXJhdGVcIixcclxuICAgICAgXCJMSU1JVFwiOiBcIjxzcGFuIGNsYXNzPSd0ZXh0LW0tc2VtaS1ib2xkJz57e2xpbWl0fX08L3NwYW4+IHN1bW1hcnkgbGVmdCB0b2RheS4gTmVlZCBtb3JlPyA8YSBocmVmPSd7e3N1YnNjcmlwdGlvblVybH19JyB0YXJnZXQ9J19ibGFuayc+VXBncmFkZSBzdWJzY3JpcHRpb248L2E+XCIsXHJcbiAgICB9LFxyXG4gICAgXCJFUlJPUlNcIjoge1xyXG4gICAgICBcIlFVT1RBX0xJTUlUXCI6IFwiWW91IGhhdmUgcmVhY2hlZCB5b3VyIHF1b3RhIGxpbWl0LiBOZWVkIG1vcmU/IDxhIGhyZWY9J3t7c3Vic2NyaXB0aW9uVXJsfX0nIHRhcmdldD0nX2JsYW5rJz5VcGdyYWRlIHN1YnNjcmlwdGlvbjwvYT5cIixcclxuICAgICAgXCJRVU9UQV9MSU1JVF9SRUFDSEVEXCI6IFwiWW91IGhhdmUgcmVhY2hlZCB5b3VyIHF1b3RhIGxpbWl0LiBOZWVkIG1vcmU/IDxhIGhyZWY9J3t7c3Vic2NyaXB0aW9uVXJsfX0nIHRhcmdldD0nX2JsYW5rJz5VcGdyYWRlIHN1YnNjcmlwdGlvbjwvYT5cIixcclxuICAgICAgXCJERUZBVUxUXCI6IFwiSXQgc2VlbXMgbGlrZSB3ZSBoYWQgcHJvYmxlbSwgcGxlYXNlIDxib2xkPnJlcGVhdDwvYm9sZD4gYWN0aW9uLCBpZiBpdCBkb2Vzbid0IHdvcmssIGNvbnRhY3Qgb3VyIDxhIGhyZWY9J21haWx0bzp7e3N1cHBvcnRFbWFpbH19JyB0YXJnZXQ9J19ibGFuayc+c3VwcG9ydCB0ZWFtPC9hPi5cIlxyXG4gICAgfVxyXG4gIH0sXHJcbn1cclxuIl19
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGxkLXRlcm0tY29uZmlnLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGxkLXRyYW5zbGF0ZS9zcmMvbGliL21vZHVsZXMvdGxkLWNvbW1vbi9tb2RlbHMvY29uZmlncy90bGQtdGVybS1jb25maWcubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBJbnRlcmZhY2UgZm9yIGNvbmZpZ3VyYXRpbmcgY29sbGVjdGlvbiBzdXBwb3J0IGZyb20gTVQgYXBpIGFuZCBUaWxkZSBUZXJtLlxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBJVGxkVGVybUNvbmZpZyB7XHJcbiAgLyoqIElmIHVzZXIgaGFzIHBlcm1pc3Npb25zIHRvIGNyZWF0ZS9lZGl0IG5ldyBjb2xsZWN0aW9uLiBUaGlzIHNob3VsZCBiZSB2YWxpZGF0ZWQgb3V0c2lkZSBvZiB0aGUgbGlicmFyeSAqL1xyXG4gIGNhbkNyZWF0ZUNvbGxlY3Rpb24/OiBib29sZWFuO1xyXG4gIC8qKiBXaGV0aGVyIGNvbGxlY3Rpb25zIHNob3VsZCBiZSByZWFkIGZyb20gYm90aCBBUElzKi9cclxuICBpc0NvbGxlY3Rpb25zQWN0aXZhdGVkPzogYm9vbGVhbjtcclxuICAvKiogRm9yIFwiU2lnbiB1cC4uLi5cIiBidXR0b24gaW4gdGVybWlub2xvZ3kgcHJvbW90aW9uIGNvbXBvbmVudC4gKi9cclxuICBmcmVlVHJpYWxVcmw/OiBzdHJpbmc7XHJcbiAgLyoqICBGb3IgXCJMZWFybiBtb3JlIGFib3V0IGdsb3NzYXJpZXNcIiBidXR0b24gaW4gdGVybWlub2xvZ3kgcHJvbW90aW9uKi9cclxuICBsZWFybk1vcmVVcmw/OiBzdHJpbmc7XHJcbn1cclxuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGxkLXRlcm0tY29uZmlnLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGxkLXRyYW5zbGF0ZS9zcmMvbGliL21vZHVsZXMvdGxkLWNvbW1vbi9tb2RlbHMvY29uZmlncy90bGQtdGVybS1jb25maWcubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBJbnRlcmZhY2UgZm9yIGNvbmZpZ3VyYXRpbmcgY29sbGVjdGlvbiBzdXBwb3J0IGZyb20gTVQgYXBpIGFuZCBUaWxkZSBUZXJtLlxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBJVGxkVGVybUNvbmZpZyB7XHJcbiAgLyoqIElmIHVzZXIgaGFzIHBlcm1pc3Npb25zIHRvIGNyZWF0ZS9lZGl0IG5ldyBjb2xsZWN0aW9uLiBUaGlzIHNob3VsZCBiZSB2YWxpZGF0ZWQgb3V0c2lkZSBvZiB0aGUgbGlicmFyeSAqL1xyXG4gIGNhbkNyZWF0ZUNvbGxlY3Rpb24/OiBib29sZWFuO1xyXG4gIC8qKiBXaGV0aGVyIGNvbGxlY3Rpb25zIHNob3VsZCBiZSByZWFkIGZyb20gYm90aCBBUElzKi9cclxuICBpc0NvbGxlY3Rpb25zQWN0aXZhdGVkPzogYm9vbGVhbjtcclxuICAvKiogRm9yIFwiU2lnbiB1cC4uLi5cIiBidXR0b24gaW4gdGVybWlub2xvZ3kgcHJvbW90aW9uIGNvbXBvbmVudC4gKi9cclxuICBmcmVlVHJpYWxVcmw/OiBzdHJpbmc7XHJcbiAgLyoqICBGb3IgXCJMZWFybiBtb3JlIGFib3V0IGdsb3NzYXJpZXNcIiBidXR0b24gaW4gdGVybWlub2xvZ3kgcHJvbW90aW9uICovXHJcbiAgbGVhcm5Nb3JlVXJsPzogc3RyaW5nO1xyXG4gIC8qKiBTZXQgdGhpcyB0byBvdmVycmlkZSBkZWZhdWx0IEVuZ2luZSBUZXJtIHVybC4gKi9cclxuICBlbmdpbmVUZXJtVXJsPzogc3RyaW5nO1xyXG4gIC8qKiBTZXQgdGhpcyB0byBvdmVycmlkZSBkZWZhdWx0IFN5c3RlbSBMaXN0IHVybC4gKi9cclxuICBzeXN0ZW1MaXN0VXJsPzogc3RyaW5nO1xyXG4gIC8qKiBTZXQgdGhpcyB0byBvdmVycmlkZSBkZWZhdWx0IFRlcm0gUG9ydGFsIHVybC4gKi9cclxuICB0ZXJtaW5vbG9neVBvcnRhbFVybD86IHN0cmluZztcclxufVxyXG4iXX0=
@@ -15,11 +15,11 @@ export class TranslationSystemPickerButtonComponent {
15
15
  this.onClick.emit();
16
16
  }
17
17
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TranslationSystemPickerButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
18
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TranslationSystemPickerButtonComponent, selector: "translation-system-picker-button", inputs: { active: "active", isRecentSystemList: "isRecentSystemList", isDomainList: "isDomainList", tooltip: "tooltip" }, outputs: { onClick: "onClick" }, ngImport: i0, template: "<button [ngClass.lt-sm]=\"'system-picker-button-mobile'\" [class.domain]=\"isDomainList\" [class.recent-system]=\"isRecentSystemList\" mat-button [class.active]=\"active\" class=\"system-picker-button\" (click)=\"clicked($event)\"\r\n [matTooltip]=\"tooltip ? tooltip : ''\">\r\n <ng-content></ng-content>\r\n</button>\r\n", styles: ["button{font-size:1rem;font-weight:400}.active{color:var(--accent)}.system-picker-button:not(.recent-system,.domain){text-align:start;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;max-width:193px}.system-picker-button-mobile:not(.recent-system,.domain){max-width:220px!important}@media (max-width: 600px){.system-picker-button-mobile:not(.recent-system){max-width:300px!important}}\n"], dependencies: [{ kind: "directive", type: i1.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "directive", type: i2.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }] });
18
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TranslationSystemPickerButtonComponent, selector: "translation-system-picker-button", inputs: { active: "active", isRecentSystemList: "isRecentSystemList", isDomainList: "isDomainList", tooltip: "tooltip" }, outputs: { onClick: "onClick" }, ngImport: i0, template: "<button [ngClass.lt-sm]=\"'system-picker-button-mobile'\" [class.domain]=\"isDomainList\" [class.recent-system]=\"isRecentSystemList\" mat-button [class.active]=\"active\" class=\"system-picker-button\" (click)=\"clicked($event)\"\r\n [matTooltip]=\"tooltip ? tooltip : ''\">\r\n <ng-content></ng-content>\r\n</button>\r\n", styles: ["button{font-size:1rem;font-weight:400}.active{color:var(--accent)}.system-picker-button{text-align:start;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.system-picker-button:not(.recent-system,.domain){max-width:193px}.system-picker-button-mobile:not(.recent-system,.domain){max-width:220px!important}@media (max-width: 600px){.system-picker-button-mobile:not(.recent-system,.domain){max-width:300px!important}}\n"], dependencies: [{ kind: "directive", type: i1.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "directive", type: i2.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }] });
19
19
  }
20
20
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TranslationSystemPickerButtonComponent, decorators: [{
21
21
  type: Component,
22
- args: [{ selector: 'translation-system-picker-button', template: "<button [ngClass.lt-sm]=\"'system-picker-button-mobile'\" [class.domain]=\"isDomainList\" [class.recent-system]=\"isRecentSystemList\" mat-button [class.active]=\"active\" class=\"system-picker-button\" (click)=\"clicked($event)\"\r\n [matTooltip]=\"tooltip ? tooltip : ''\">\r\n <ng-content></ng-content>\r\n</button>\r\n", styles: ["button{font-size:1rem;font-weight:400}.active{color:var(--accent)}.system-picker-button:not(.recent-system,.domain){text-align:start;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;max-width:193px}.system-picker-button-mobile:not(.recent-system,.domain){max-width:220px!important}@media (max-width: 600px){.system-picker-button-mobile:not(.recent-system){max-width:300px!important}}\n"] }]
22
+ args: [{ selector: 'translation-system-picker-button', template: "<button [ngClass.lt-sm]=\"'system-picker-button-mobile'\" [class.domain]=\"isDomainList\" [class.recent-system]=\"isRecentSystemList\" mat-button [class.active]=\"active\" class=\"system-picker-button\" (click)=\"clicked($event)\"\r\n [matTooltip]=\"tooltip ? tooltip : ''\">\r\n <ng-content></ng-content>\r\n</button>\r\n", styles: ["button{font-size:1rem;font-weight:400}.active{color:var(--accent)}.system-picker-button{text-align:start;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.system-picker-button:not(.recent-system,.domain){max-width:193px}.system-picker-button-mobile:not(.recent-system,.domain){max-width:220px!important}@media (max-width: 600px){.system-picker-button-mobile:not(.recent-system,.domain){max-width:300px!important}}\n"] }]
23
23
  }], propDecorators: { active: [{
24
24
  type: Input
25
25
  }], isRecentSystemList: [{
@@ -43,7 +43,10 @@ export class TranslationSystemPickerComponent {
43
43
  return this.text.translatedText;
44
44
  }
45
45
  get isLLMEnabled() {
46
- return this.config.textConfig.isLLMEnabled && !this.text.isTranslating;
46
+ return this.config.textConfig.isLLMEnabled;
47
+ }
48
+ get isTranslating() {
49
+ return this.text.isTranslating;
47
50
  }
48
51
  sourceAriaLabel = "SYSTEM_PICKER.OPEN_SOURCE_ARIA_LABEL";
49
52
  targetAriaLabel = "SYSTEM_PICKER.OPEN_TARGET_ARIA_LABEL";
@@ -110,12 +113,12 @@ export class TranslationSystemPickerComponent {
110
113
  });
111
114
  }
112
115
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TranslationSystemPickerComponent, deps: [{ token: i1.TranslationSystemPickerService }, { token: i2.TldTranslateSystemManagementService }, { token: i3.TldTranslateFileService }, { token: i4.TldTranslateTextService }, { token: i2.TldTranslateConfigService }], target: i0.ɵɵFactoryTarget.Component });
113
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TranslationSystemPickerComponent, selector: "tld-translation-system-picker", inputs: { isCollectionsActivated: "isCollectionsActivated" }, ngImport: i0, template: "<div fxFlex fxLayout=\"row\">\r\n <ng-container *ngIf=\"isDataLoaded\">\r\n <div fxFlex fxLayoutAlign=\"space-between center\">\r\n <ng-container\r\n *ngTemplateOutlet=\"languageDropdownTrigger; context: { language: sourceLanguage, localizationKey: 'SYSTEM_PICKER.SOURCE', isOpened: isSourceOpened, isSource: true, ariaLabelCode: sourceAriaLabel }\">\r\n </ng-container>\r\n <button [disabled]=\"!canSwap\" class=\"swap-languages-button\" mat-icon-button (click)=\"swap()\"\r\n aria-label=\"swap languages\" color=\"primary\" matTooltip=\"{{'TOOLTIPS.SWAP_LANGUAGES' | translate}}\">\r\n <span class=\"material-icons\" aria-hidden=\"false\"\r\n [attr.aria-label]=\"'ARIA_LABELS.SWAP_LANGUAGES' | translate\">swap_horiz</span>\r\n </button>\r\n </div>\r\n <div fxFlex fxLayoutAlign=\"space-between center\">\r\n <ng-container\r\n *ngTemplateOutlet=\"languageDropdownTrigger; context: { language: targetLanguage, localizationKey: 'SYSTEM_PICKER.TARGET', isOpened: isTargetOpened, isSource: false, ariaLabelCode: targetAriaLabel}\">\r\n </ng-container>\r\n\r\n <div *ngIf=\"collectionsVisible\" #collectionWrapper class=\"terminology-wrapper\">\r\n <lib-terminology [system]=\"system\"></lib-terminology>\r\n </div>\r\n\r\n <lib-llm *ngIf=\"isLLMEnabled && translatedText\" [text]=\"translatedText\" [language]=\"targetLanguage.lang\"></lib-llm>\r\n </div>\r\n </ng-container>\r\n</div>\r\n\r\n<ng-template #languageName let-language=\"language\" let-showDomain=\"showDomain\" let-detectedLanguage=\"detectedLanguage\">\r\n <span>{{ language.lang | languageTranslate }}</span>\r\n <span *ngIf=\"detectedLanguage && !showDomain\"> - {{'SYSTEM_PICKER.DETECTED' | translate}}</span>\r\n <ng-container *ngIf=\"showDomain && domainLength>1\">\r\n <span>(</span>\r\n <span class=\"domain\">{{('DOMAINS.'+(activeDomainKey | uppercase)) | translate: {default: activeDomainKey} }}</span>\r\n <span>)</span>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #openedDropdown let-localizationKey=\"localizationKey\">\r\n {{localizationKey | translate}}\r\n</ng-template>\r\n\r\n<!--Template for language dropdown trigger. Same as for target and source with different params-->\r\n<ng-template #languageDropdownTrigger let-language=\"language\" let-isOpened=\"isOpened\" let-placeholder=\"localizationKey\"\r\n let-isSource=\"isSource\" let-ariaLabelCode=\"ariaLabelCode\">\r\n <lib-open-close-button [disabled]=\"isFileTranslating\" class=\"system-picker-button\" [ngClass]=\"isSource? 'source': 'target'\"\r\n [ngClass.lt-sm]=\"'mobile'\" (click)=\"isSource ? sourceClick($event) : targetClick($event)\"\r\n [disableFocusOnAction]=\"true\" [isOpened]=\"isOpened\" [class.opened]=\"isOpened\" [ariaLabelCode]=\"ariaLabelCode\">\r\n <span [ngClass.lt-md]=\"'text-l-semi-bold'\" [ngClass.lt-sm]=\"'text-m-semi-bold mobile-domain-container'\">\r\n <ng-container\r\n *ngTemplateOutlet=\"isOpened && isSource || isOpened && !isSource && !isTargetReselected ? openedDropdown : languageName; context: { language: language, localizationKey: placeholder, showDomain: !isSource, detectedLanguage: system.detectedLanguage }\">\r\n </ng-container>\r\n </span>\r\n </lib-open-close-button>\r\n</ng-template>\r\n", styles: [":host{display:flex}.swap-languages-button{color:var(--base-40)!important}.source{margin-left:.3em}.system-picker-button.mobile{margin-left:.2em}.target{margin-left:1.5em}.mobile-domain-container{display:flex}.mobile-domain-container .domain{text-overflow:ellipsis;overflow:hidden;max-width:3.5rem;white-space:nowrap;display:inline-block}.terminology-wrapper{margin-right:.3rem}:host ::ng-deep .opened button{color:var(--accent)}:host ::ng-deep .open-close-button-content{white-space:nowrap;overflow:hidden}\n"], dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i6.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i6.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i6.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: i7.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "component", type: i8.OpenCloseButtonComponent, selector: "lib-open-close-button", inputs: ["disableFocusOnAction", "disabled", "isIcon", "ariaLabelCode", "isOpened"] }, { kind: "component", type: i8.TerminologyComponent, selector: "lib-terminology", inputs: ["selectedCollectionId", "system", "disabled", "storeSelectedInLocalStorage", "setSelectedFromLocalStorage", "showMenuIconOnMobile"], outputs: ["glossarySelectEvent", "menuToggleEvent"] }, { kind: "directive", type: i9.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i10.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i8.LLMComponent, selector: "lib-llm", inputs: ["text", "language", "llmActions"] }, { kind: "pipe", type: i5.UpperCasePipe, name: "uppercase" }, { kind: "pipe", type: i11.TranslatePipe, name: "translate" }, { kind: "pipe", type: i8.LanguageTranslatePipe, name: "languageTranslate" }] });
116
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TranslationSystemPickerComponent, selector: "tld-translation-system-picker", inputs: { isCollectionsActivated: "isCollectionsActivated" }, ngImport: i0, template: "<div fxFlex fxLayout=\"row\">\r\n <ng-container *ngIf=\"isDataLoaded\">\r\n <div fxFlex fxLayoutAlign=\"space-between center\">\r\n <ng-container\r\n *ngTemplateOutlet=\"languageDropdownTrigger; context: { language: sourceLanguage, localizationKey: 'SYSTEM_PICKER.SOURCE', isOpened: isSourceOpened, isSource: true, ariaLabelCode: sourceAriaLabel }\">\r\n </ng-container>\r\n <button [disabled]=\"!canSwap\" class=\"swap-languages-button\" mat-icon-button (click)=\"swap()\"\r\n aria-label=\"swap languages\" color=\"primary\" matTooltip=\"{{'TOOLTIPS.SWAP_LANGUAGES' | translate}}\">\r\n <span class=\"material-icons\" aria-hidden=\"false\"\r\n [attr.aria-label]=\"'ARIA_LABELS.SWAP_LANGUAGES' | translate\">swap_horiz</span>\r\n </button>\r\n </div>\r\n <div fxFlex fxLayoutAlign=\"space-between center\">\r\n <ng-container\r\n *ngTemplateOutlet=\"languageDropdownTrigger; context: { language: targetLanguage, localizationKey: 'SYSTEM_PICKER.TARGET', isOpened: isTargetOpened, isSource: false, ariaLabelCode: targetAriaLabel}\">\r\n </ng-container>\r\n\r\n <div fxFlex fxLayoutAlign=\"end center\">\r\n <div *ngIf=\"collectionsVisible\" #collectionWrapper class=\"terminology-wrapper\">\r\n <lib-terminology [system]=\"system\"></lib-terminology>\r\n </div>\r\n \r\n <div [matTooltip]=\"(isTranslating || !translatedText) ? ('LLM.MENU_DISABLED_TOOLTIP' | translate) : ''\">\r\n <lib-llm *ngIf=\"isLLMEnabled\" [text]=\"translatedText\" [language]=\"targetLanguage.lang\" [isMenuDisabled]=\"isTranslating || !translatedText\"></lib-llm>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n</div>\r\n\r\n<ng-template #languageName let-language=\"language\" let-showDomain=\"showDomain\" let-detectedLanguage=\"detectedLanguage\">\r\n <span>{{ language.lang | languageTranslate }}</span>\r\n <span *ngIf=\"detectedLanguage && !showDomain\"> - {{'SYSTEM_PICKER.DETECTED' | translate}}</span>\r\n <ng-container *ngIf=\"showDomain && domainLength>1\">\r\n <span>(</span>\r\n <span class=\"domain\">{{('DOMAINS.'+(activeDomainKey | uppercase)) | translate: {default: activeDomainKey} }}</span>\r\n <span>)</span>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #openedDropdown let-localizationKey=\"localizationKey\">\r\n {{localizationKey | translate}}\r\n</ng-template>\r\n\r\n<!--Template for language dropdown trigger. Same as for target and source with different params-->\r\n<ng-template #languageDropdownTrigger let-language=\"language\" let-isOpened=\"isOpened\" let-placeholder=\"localizationKey\"\r\n let-isSource=\"isSource\" let-ariaLabelCode=\"ariaLabelCode\">\r\n <lib-open-close-button [disabled]=\"isFileTranslating\" class=\"system-picker-button\" [ngClass]=\"isSource? 'source': 'target'\"\r\n [ngClass.lt-sm]=\"'mobile'\" (click)=\"isSource ? sourceClick($event) : targetClick($event)\"\r\n [disableFocusOnAction]=\"true\" [isOpened]=\"isOpened\" [class.opened]=\"isOpened\" [ariaLabelCode]=\"ariaLabelCode\">\r\n <span [ngClass.lt-md]=\"'text-l-semi-bold'\" [ngClass.lt-sm]=\"'text-m-semi-bold mobile-domain-container'\">\r\n <ng-container\r\n *ngTemplateOutlet=\"isOpened && isSource || isOpened && !isSource && !isTargetReselected ? openedDropdown : languageName; context: { language: language, localizationKey: placeholder, showDomain: !isSource, detectedLanguage: system.detectedLanguage }\">\r\n </ng-container>\r\n </span>\r\n </lib-open-close-button>\r\n</ng-template>\r\n", styles: [":host{display:flex}.swap-languages-button{color:var(--base-40)!important}.source{margin-left:.3em}.system-picker-button.mobile{margin-left:.2em}.target{margin-left:1.5em}.mobile-domain-container{display:flex}.mobile-domain-container .domain{text-overflow:ellipsis;overflow:hidden;max-width:3.5rem;white-space:nowrap;display:inline-block}.terminology-wrapper{margin-right:.3rem}:host ::ng-deep .opened button{color:var(--accent)}:host ::ng-deep .open-close-button-content{white-space:nowrap;overflow:hidden}\n"], dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i6.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i6.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i6.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: i7.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "component", type: i8.OpenCloseButtonComponent, selector: "lib-open-close-button", inputs: ["disableFocusOnAction", "disabled", "isIcon", "ariaLabelCode", "isOpened"] }, { kind: "component", type: i8.TerminologyComponent, selector: "lib-terminology", inputs: ["selectedCollectionId", "system", "disabled", "storeSelectedInLocalStorage", "setSelectedFromLocalStorage", "showMenuIconOnMobile"], outputs: ["glossarySelectEvent", "menuToggleEvent"] }, { kind: "directive", type: i9.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i10.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i8.LLMComponent, selector: "lib-llm", inputs: ["text", "language", "isMenuDisabled", "rephrasableLanguagesCodeList", "llmActions"] }, { kind: "pipe", type: i5.UpperCasePipe, name: "uppercase" }, { kind: "pipe", type: i11.TranslatePipe, name: "translate" }, { kind: "pipe", type: i8.LanguageTranslatePipe, name: "languageTranslate" }] });
114
117
  }
115
118
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TranslationSystemPickerComponent, decorators: [{
116
119
  type: Component,
117
- args: [{ selector: 'tld-translation-system-picker', template: "<div fxFlex fxLayout=\"row\">\r\n <ng-container *ngIf=\"isDataLoaded\">\r\n <div fxFlex fxLayoutAlign=\"space-between center\">\r\n <ng-container\r\n *ngTemplateOutlet=\"languageDropdownTrigger; context: { language: sourceLanguage, localizationKey: 'SYSTEM_PICKER.SOURCE', isOpened: isSourceOpened, isSource: true, ariaLabelCode: sourceAriaLabel }\">\r\n </ng-container>\r\n <button [disabled]=\"!canSwap\" class=\"swap-languages-button\" mat-icon-button (click)=\"swap()\"\r\n aria-label=\"swap languages\" color=\"primary\" matTooltip=\"{{'TOOLTIPS.SWAP_LANGUAGES' | translate}}\">\r\n <span class=\"material-icons\" aria-hidden=\"false\"\r\n [attr.aria-label]=\"'ARIA_LABELS.SWAP_LANGUAGES' | translate\">swap_horiz</span>\r\n </button>\r\n </div>\r\n <div fxFlex fxLayoutAlign=\"space-between center\">\r\n <ng-container\r\n *ngTemplateOutlet=\"languageDropdownTrigger; context: { language: targetLanguage, localizationKey: 'SYSTEM_PICKER.TARGET', isOpened: isTargetOpened, isSource: false, ariaLabelCode: targetAriaLabel}\">\r\n </ng-container>\r\n\r\n <div *ngIf=\"collectionsVisible\" #collectionWrapper class=\"terminology-wrapper\">\r\n <lib-terminology [system]=\"system\"></lib-terminology>\r\n </div>\r\n\r\n <lib-llm *ngIf=\"isLLMEnabled && translatedText\" [text]=\"translatedText\" [language]=\"targetLanguage.lang\"></lib-llm>\r\n </div>\r\n </ng-container>\r\n</div>\r\n\r\n<ng-template #languageName let-language=\"language\" let-showDomain=\"showDomain\" let-detectedLanguage=\"detectedLanguage\">\r\n <span>{{ language.lang | languageTranslate }}</span>\r\n <span *ngIf=\"detectedLanguage && !showDomain\"> - {{'SYSTEM_PICKER.DETECTED' | translate}}</span>\r\n <ng-container *ngIf=\"showDomain && domainLength>1\">\r\n <span>(</span>\r\n <span class=\"domain\">{{('DOMAINS.'+(activeDomainKey | uppercase)) | translate: {default: activeDomainKey} }}</span>\r\n <span>)</span>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #openedDropdown let-localizationKey=\"localizationKey\">\r\n {{localizationKey | translate}}\r\n</ng-template>\r\n\r\n<!--Template for language dropdown trigger. Same as for target and source with different params-->\r\n<ng-template #languageDropdownTrigger let-language=\"language\" let-isOpened=\"isOpened\" let-placeholder=\"localizationKey\"\r\n let-isSource=\"isSource\" let-ariaLabelCode=\"ariaLabelCode\">\r\n <lib-open-close-button [disabled]=\"isFileTranslating\" class=\"system-picker-button\" [ngClass]=\"isSource? 'source': 'target'\"\r\n [ngClass.lt-sm]=\"'mobile'\" (click)=\"isSource ? sourceClick($event) : targetClick($event)\"\r\n [disableFocusOnAction]=\"true\" [isOpened]=\"isOpened\" [class.opened]=\"isOpened\" [ariaLabelCode]=\"ariaLabelCode\">\r\n <span [ngClass.lt-md]=\"'text-l-semi-bold'\" [ngClass.lt-sm]=\"'text-m-semi-bold mobile-domain-container'\">\r\n <ng-container\r\n *ngTemplateOutlet=\"isOpened && isSource || isOpened && !isSource && !isTargetReselected ? openedDropdown : languageName; context: { language: language, localizationKey: placeholder, showDomain: !isSource, detectedLanguage: system.detectedLanguage }\">\r\n </ng-container>\r\n </span>\r\n </lib-open-close-button>\r\n</ng-template>\r\n", styles: [":host{display:flex}.swap-languages-button{color:var(--base-40)!important}.source{margin-left:.3em}.system-picker-button.mobile{margin-left:.2em}.target{margin-left:1.5em}.mobile-domain-container{display:flex}.mobile-domain-container .domain{text-overflow:ellipsis;overflow:hidden;max-width:3.5rem;white-space:nowrap;display:inline-block}.terminology-wrapper{margin-right:.3rem}:host ::ng-deep .opened button{color:var(--accent)}:host ::ng-deep .open-close-button-content{white-space:nowrap;overflow:hidden}\n"] }]
120
+ args: [{ selector: 'tld-translation-system-picker', template: "<div fxFlex fxLayout=\"row\">\r\n <ng-container *ngIf=\"isDataLoaded\">\r\n <div fxFlex fxLayoutAlign=\"space-between center\">\r\n <ng-container\r\n *ngTemplateOutlet=\"languageDropdownTrigger; context: { language: sourceLanguage, localizationKey: 'SYSTEM_PICKER.SOURCE', isOpened: isSourceOpened, isSource: true, ariaLabelCode: sourceAriaLabel }\">\r\n </ng-container>\r\n <button [disabled]=\"!canSwap\" class=\"swap-languages-button\" mat-icon-button (click)=\"swap()\"\r\n aria-label=\"swap languages\" color=\"primary\" matTooltip=\"{{'TOOLTIPS.SWAP_LANGUAGES' | translate}}\">\r\n <span class=\"material-icons\" aria-hidden=\"false\"\r\n [attr.aria-label]=\"'ARIA_LABELS.SWAP_LANGUAGES' | translate\">swap_horiz</span>\r\n </button>\r\n </div>\r\n <div fxFlex fxLayoutAlign=\"space-between center\">\r\n <ng-container\r\n *ngTemplateOutlet=\"languageDropdownTrigger; context: { language: targetLanguage, localizationKey: 'SYSTEM_PICKER.TARGET', isOpened: isTargetOpened, isSource: false, ariaLabelCode: targetAriaLabel}\">\r\n </ng-container>\r\n\r\n <div fxFlex fxLayoutAlign=\"end center\">\r\n <div *ngIf=\"collectionsVisible\" #collectionWrapper class=\"terminology-wrapper\">\r\n <lib-terminology [system]=\"system\"></lib-terminology>\r\n </div>\r\n \r\n <div [matTooltip]=\"(isTranslating || !translatedText) ? ('LLM.MENU_DISABLED_TOOLTIP' | translate) : ''\">\r\n <lib-llm *ngIf=\"isLLMEnabled\" [text]=\"translatedText\" [language]=\"targetLanguage.lang\" [isMenuDisabled]=\"isTranslating || !translatedText\"></lib-llm>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n</div>\r\n\r\n<ng-template #languageName let-language=\"language\" let-showDomain=\"showDomain\" let-detectedLanguage=\"detectedLanguage\">\r\n <span>{{ language.lang | languageTranslate }}</span>\r\n <span *ngIf=\"detectedLanguage && !showDomain\"> - {{'SYSTEM_PICKER.DETECTED' | translate}}</span>\r\n <ng-container *ngIf=\"showDomain && domainLength>1\">\r\n <span>(</span>\r\n <span class=\"domain\">{{('DOMAINS.'+(activeDomainKey | uppercase)) | translate: {default: activeDomainKey} }}</span>\r\n <span>)</span>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #openedDropdown let-localizationKey=\"localizationKey\">\r\n {{localizationKey | translate}}\r\n</ng-template>\r\n\r\n<!--Template for language dropdown trigger. Same as for target and source with different params-->\r\n<ng-template #languageDropdownTrigger let-language=\"language\" let-isOpened=\"isOpened\" let-placeholder=\"localizationKey\"\r\n let-isSource=\"isSource\" let-ariaLabelCode=\"ariaLabelCode\">\r\n <lib-open-close-button [disabled]=\"isFileTranslating\" class=\"system-picker-button\" [ngClass]=\"isSource? 'source': 'target'\"\r\n [ngClass.lt-sm]=\"'mobile'\" (click)=\"isSource ? sourceClick($event) : targetClick($event)\"\r\n [disableFocusOnAction]=\"true\" [isOpened]=\"isOpened\" [class.opened]=\"isOpened\" [ariaLabelCode]=\"ariaLabelCode\">\r\n <span [ngClass.lt-md]=\"'text-l-semi-bold'\" [ngClass.lt-sm]=\"'text-m-semi-bold mobile-domain-container'\">\r\n <ng-container\r\n *ngTemplateOutlet=\"isOpened && isSource || isOpened && !isSource && !isTargetReselected ? openedDropdown : languageName; context: { language: language, localizationKey: placeholder, showDomain: !isSource, detectedLanguage: system.detectedLanguage }\">\r\n </ng-container>\r\n </span>\r\n </lib-open-close-button>\r\n</ng-template>\r\n", styles: [":host{display:flex}.swap-languages-button{color:var(--base-40)!important}.source{margin-left:.3em}.system-picker-button.mobile{margin-left:.2em}.target{margin-left:1.5em}.mobile-domain-container{display:flex}.mobile-domain-container .domain{text-overflow:ellipsis;overflow:hidden;max-width:3.5rem;white-space:nowrap;display:inline-block}.terminology-wrapper{margin-right:.3rem}:host ::ng-deep .opened button{color:var(--accent)}:host ::ng-deep .open-close-button-content{white-space:nowrap;overflow:hidden}\n"] }]
118
121
  }], ctorParameters: function () { return [{ type: i1.TranslationSystemPickerService }, { type: i2.TldTranslateSystemManagementService }, { type: i3.TldTranslateFileService }, { type: i4.TldTranslateTextService }, { type: i2.TldTranslateConfigService }]; }, propDecorators: { isCollectionsActivated: [{
119
122
  type: Input
120
123
  }] } });
121
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb24tc3lzdGVtLXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90bGQtdHJhbnNsYXRlL3NyYy9saWIvbW9kdWxlcy90bGQtdG9vbHRpcC90cmFuc2xhdGlvbi1zeXN0ZW0tcGlja2VyL3RyYW5zbGF0aW9uLXN5c3RlbS1waWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGxkLXRyYW5zbGF0ZS9zcmMvbGliL21vZHVsZXMvdGxkLXRvb2x0aXAvdHJhbnNsYXRpb24tc3lzdGVtLXBpY2tlci90cmFuc2xhdGlvbi1zeXN0ZW0tcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFxQixNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7Ozs7OztBQWFwRSxNQUFNLE9BQU8sZ0NBQWdDO0lBdUR4QjtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBMURWLHNCQUFzQixDQUFVO0lBRXpDLElBQUksY0FBYyxLQUFLLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7SUFDeEUsSUFBSSxjQUFjLEtBQUssT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztJQUV4RSxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUM7SUFDcEUsQ0FBQztJQUVELElBQUksY0FBYztRQUNoQixPQUFPLElBQUksQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDO0lBQ3JDLENBQUM7SUFFRCxJQUFJLGNBQWM7UUFDaEIsT0FBTyxJQUFJLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQztJQUNyQyxDQUFDO0lBRUQsSUFBSSxZ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RUFBRSxVQUFVLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxrQkFBa0IsRUFBRSxVQUFVLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxVQUFVLENBQUMsZ0JBQWdCLEVBQUMsQ0FBQztZQUM3TCxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztZQUM3QixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUM7WUFDOUQsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUMsQ0FBQztZQUNsRSxJQUFJLENBQUMsc0JBQXNCLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzlGLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQzt3R0F2SFUsZ0NBQWdDOzRGQUFoQyxnQ0FBZ0MsbUlDYjdDLCt3R0FxREE7OzRGRHhDYSxnQ0FBZ0M7a0JBTDVDLFNBQVM7K0JBQ0UsK0JBQStCOzJSQUtoQyxzQkFBc0I7c0JBQTlCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgVHJhbnNsYXRpb25TeXN0ZW1QaWNrZXJTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy90cmFuc2xhdGlvbi1zeXN0ZW0tcGlja2VyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUbGRUcmFuc2xhdGVDb25maWdTZXJ2aWNlLCBUbGRUcmFuc2xhdGVTeXN0ZW1NYW5hZ2VtZW50U2VydmljZSB9IGZyb20gJy4uLy4uL3RsZC1jb21tb24vc2VydmljZXMnO1xyXG5pbXBvcnQgeyBBY3RpdmVEYXRhIH0gZnJvbSAnQHRpbGRlLW5scC9uZ3gtY29tbW9uJztcclxuaW1wb3J0IHsgVGxkVHJhbnNsYXRlRmlsZVNlcnZpY2UgfSBmcm9tICcuLi8uLi90bGQtZG9jdW1lbnQvc2VydmljZXMnO1xyXG5pbXBvcnQgeyBUbGRUcmFuc2xhdGVUZXh0U2VydmljZSB9IGZyb20gJy4uLy4uL3RsZC10ZXh0L3NlcnZpY2VzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndGxkLXRyYW5zbGF0aW9uLXN5c3RlbS1waWNrZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90cmFuc2xhdGlvbi1zeXN0ZW0tcGlja2VyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi90cmFuc2xhdGlvbi1zeXN0ZW0tcGlja2VyLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFRyYW5zbGF0aW9uU3lzdGVtUGlja2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIEBJbnB1dCgpIGlzQ29sbGVjdGlvbnNBY3RpdmF0ZWQ6IGJvb2xlYW47XHJcblxyXG4gIGdldCBpc1NvdXJjZU9wZW5lZCgpIHsgcmV0dXJuIHRoaXMuc3lzdGVtUGlja2VyU2VydmljZS5pc1NvdXJjZU9wZW5lZDsgfVxyXG4gIGdldCBpc1RhcmdldE9wZW5lZCgpIHsgcmV0dXJuIHRoaXMuc3lzdGVtUGlja2VyU2VydmljZS5pc1RhcmdldE9wZW5lZDsgfVxyXG5cclxuICBnZXQgY2FuU3dhcCgpIHtcclxuICAgIHJldHVybiB0aGlzLnRsZFN5c3RlbS5jYW5Td2FwTGFuZ3VhZ2VzICYmICF0aGlzLmlzRmlsZVRyYW5zbGF0aW5nO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHNvdXJjZUxhbmd1YWdlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWN0aXZlRGF0YT8uc291cmNlTGFuZztcclxuICB9XHJcblxyXG4gIGdldCB0YXJnZXRMYW5ndWFnZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmFjdGl2ZURhdGE/LnRhcmdldExhbmc7XHJcbiAgfVxyXG5cclxuICBnZXQgaXNEYXRhTG9hZGVkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWN0aXZlRGF0YTtcclxuICB9XHJcblxyXG4gIGdldCBjb2xsZWN0aW9uc1Zpc2libGUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5pc0NvbGxlY3Rpb25zQWN0aXZhdGVkXHJcbiAgICAgICYmIHRoaXMuaXNUZXJtaW5vbG9neVN1cHBvcnRlZDtcclxuICB9XHJcblxyXG4gIGdldCBpc0ZpbGVUcmFuc2xhdGluZygpIHtcclxuICAgIHJldHVybiB0aGlzLmZpbGUudHJhbnNsYXRpb25TdGFydGVkO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHRyYW5zbGF0ZWRUZXh0KCkge1xyXG4gICAgcmV0dXJuIHRoaXMudGV4dC50cmFuc2xhdGVkVGV4dDtcclxuICB9XHJcblxyXG4gIGdldCBpc0xMTUVuYWJsZWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jb25maWcudGV4dENvbmZpZy5pc0xMTUVuYWJsZWQgJiYgIXRoaXMudGV4dC5pc1RyYW5zbGF0aW5nO1xyXG4gIH1cclxuXHJcbiAgcmVhZG9ubHkgc291cmNlQXJpYUxhYmVsID0gXCJTWVNURU1fUElDS0VSLk9QRU5fU09VUkNFX0FSSUFfTEFCRUxcIjtcclxuICByZWFkb25seSB0YXJnZXRBcmlhTGFiZWwgPSBcIlNZU1RFTV9QSUNLRVIuT1BFTl9UQVJHRVRfQVJJQV9MQUJFTFwiO1xyXG5cclxuICBkb21haW5MZW5ndGg6IG51bWJlciA9IDA7XHJcbiAgYWN0aXZlRG9tYWluS2V5OiBzdHJpbmc7XHJcblxyXG4gIGlzVGFyZ2V0UmVzZWxlY3RlZCA9IGZhbHNlO1xyXG5cclxuICBwcml2YXRlIGlzVGVybWlub2xvZ3lTdXBwb3J0ZWQ6IGJvb2xlYW47XHJcblxyXG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcbiAgcHJpdmF0ZSBhY3RpdmVEYXRhOiBBY3RpdmVEYXRhO1xyXG5cclxuICBzeXN0ZW06IHsgc3lzdGVtSWQ6IHN0cmluZzsgc291cmNlTGFuZ3VhZ2VDb2RlOiBzdHJpbmc7IHRhcmdldExhbmd1YWdlQ29kZTogc3RyaW5nOyBkZXRlY3RlZExhbmd1YWdlPzogc3RyaW5nOyB9O1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgc3lzdGVtUGlja2VyU2VydmljZTogVHJhbnNsYXRpb25TeXN0ZW1QaWNrZXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSB0bGRTeXN0ZW06IFRsZFRyYW5zbGF0ZVN5c3RlbU1hbmFnZW1lbnRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBmaWxlOiBUbGRUcmFuc2xhdGVGaWxlU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgdGV4dDogVGxkVHJhbnNsYXRlVGV4dFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpZzogVGxkVHJhbnNsYXRlQ29uZmlnU2VydmljZVxyXG4gICkge31cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnN1YnNjcmliZVRvQWN0aXZlRGF0YSgpO1xyXG4gIH1cclxuXHJcbiAgc291cmNlQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpIHtcclxuICAgIGlmICh0aGlzLmlzRmlsZVRyYW5zbGF0aW5nKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIC8vIHN0b3AgcHJvcGFnYXRpb24gbmVjZXNzYXJ5IHNvIHRoYXQgY2xpY2sgb3V0c2lkZSBkaXJlY3RpdmUgd29ya3MgYXMgaW50ZW5kZWQgb3RoZXJ3aXNlIGNsaWNrIGV2ZW50IGdvZXMgdXAgdGhyb3VnaCBwYXJlbnRzIGFuZCBjbGljayBvdXRzaWRlIGdldHMgY2FsbGVkIGFuZCBjbG9zZXMgZHJvcGRvd24uXHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIHRoaXMuc3lzdGVtUGlja2VyU2VydmljZS5zb3VyY2VMYW5ndWFnZUNsaWNrZWQoKTtcclxuICB9XHJcblxyXG4gIHRhcmdldENsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KSB7XHJcbiAgICBpZiAodGhpcy5pc0ZpbGVUcmFuc2xhdGluZykge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLmlzVGFyZ2V0UmVzZWxlY3RlZCA9IGZhbHNlO1xyXG5cclxuICAgIC8vIHN0b3AgcHJvcGFnYXRpb24gbmVjZXNzYXJ5IHNvIHRoYXQgY2xpY2sgb3V0c2lkZSBkaXJlY3RpdmUgd29ya3MgYXMgaW50ZW5kZWQgb3RoZXJ3aXNlIGNsaWNrIGV2ZW50IGdvZXMgdXAgdGhyb3VnaCBwYXJlbnRzIGFuZCBjbGljayBvdXRzaWRlIGdldHMgY2FsbGVkIGFuZCBjbG9zZXMgZHJvcGRvd24uXHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIHRoaXMuc3lzdGVtUGlja2VyU2VydmljZS50YXJnZXRMYW5ndWFnZUNsaWNrZWQoKTtcclxuICB9XHJcblxyXG4gIHN3YXAoKSB7XHJcbiAgICBpZiAodGhpcy5pc0ZpbGVUcmFuc2xhdGluZykge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLnRsZFN5c3RlbS5zd2FwU3lzdGVtTGFuZ3VhZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHN1YnNjcmliZVRvQWN0aXZlRGF0YSgpIHtcclxuICAgIGxldCBsYXN0VGFyZ2V0TGFuZ3VhZ2UhOiBzdHJpbmc7XHJcblxyXG4gICAgdGhpcy5zdWJzY3JpcHRpb24gPSB0aGlzLnRsZFN5c3RlbS5nZXRBY3RpdmVEYXRhKCkuc3Vic2NyaWJlKChhY3RpdmVEYXRhKSA9PiB7XHJcbiAgICAgIGlmICghYWN0aXZlRGF0YSkge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKGFjdGl2ZURhdGEudGFyZ2V0TGFuZy5sYW5nICE9PSBsYXN0VGFyZ2V0TGFuZ3VhZ2UpIHtcclxuICAgICAgICBpZiAobGFzdFRhcmdldExhbmd1YWdlKSB7XHJcbiAgICAgICAgICB0aGlzLmlzVGFyZ2V0UmVzZWxlY3RlZCA9IHRydWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsYXN0VGFyZ2V0TGFuZ3VhZ2UgPSBhY3RpdmVEYXRhLnRhcmdldExhbmcubGFuZztcclxuICAgICAgfSBcclxuXHJcbiAgICAgIHRoaXMuc3lzdGVtID0ge3N5c3RlbUlkOiBhY3RpdmVEYXRhLnN5c3RlbUlkLCBzb3VyY2VMYW5ndWFnZUNvZGU6IGFjdGl2ZURhdGEuc291cmNlTGFuZy5sYW5nLCB0YXJnZXRMYW5ndWFnZUNvZGU6IGFjdGl2ZURhdGEudGFyZ2V0TGFuZy5sYW5nLCBkZXRlY3RlZExhbmd1YWdlOiBhY3RpdmVEYXRhLmRldGVjdGVkTGFuZ3VhZ2V9O1xyXG4gICAgICB0aGlzLmFjdGl2ZURhdGEgPSBhY3RpdmVEYXRhO1xyXG4gICAgICB0aGlzLmFjdGl2ZURvbWFpbktleSA9IHRoaXMuYWN0aXZlRGF0YS5kb21haW5zPy5hY3RpdmU/LnRpdGxlO1xyXG4gICAgICB0aGlzLmRvbWFpbkxlbmd0aCA9IHRoaXMuYWN0aXZlRGF0YS5kb21haW5zPy5kb21haW5zPy5sZW5ndGggPz8gMDtcclxuICAgICAgdGhpcy5pc1Rlcm1pbm9sb2d5U3VwcG9ydGVkID0gdGhpcy50bGRTeXN0ZW0uaXNUZXJtaW5vbG9neVN1cHBvcnRlZCh0aGlzLmFjdGl2ZURhdGEuc3lzdGVtKTtcclxuICAgIH0pXHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgZnhGbGV4IGZ4TGF5b3V0PVwicm93XCI+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzRGF0YUxvYWRlZFwiPlxyXG4gICAgPGRpdiBmeEZsZXggZnhMYXlvdXRBbGlnbj1cInNwYWNlLWJldHdlZW4gY2VudGVyXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImxhbmd1YWdlRHJvcGRvd25UcmlnZ2VyOyBjb250ZXh0OiB7IGxhbmd1YWdlOiBzb3VyY2VMYW5ndWFnZSwgbG9jYWxpemF0aW9uS2V5OiAnU1lTVEVNX1BJQ0tFUi5TT1VSQ0UnLCBpc09wZW5lZDogaXNTb3VyY2VPcGVuZWQsIGlzU291cmNlOiB0cnVlLCBhcmlhTGFiZWxDb2RlOiBzb3VyY2VBcmlhTGFiZWwgfVwiPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPGJ1dHRvbiBbZGlzYWJsZWRdPVwiIWNhblN3YXBcIiBjbGFzcz1cInN3YXAtbGFuZ3VhZ2VzLWJ1dHRvblwiIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwic3dhcCgpXCJcclxuICAgICAgICBhcmlhLWxhYmVsPVwic3dhcCBsYW5ndWFnZXNcIiBjb2xvcj1cInByaW1hcnlcIiBtYXRUb29sdGlwPVwie3snVE9PTFRJUFMuU1dBUF9MQU5HVUFHRVMnIHwgdHJhbnNsYXRlfX1cIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cIm1hdGVyaWFsLWljb25zXCIgYXJpYS1oaWRkZW49XCJmYWxzZVwiXHJcbiAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidBUklBX0xBQkVMUy5TV0FQX0xBTkdVQUdFUycgfCB0cmFuc2xhdGVcIj5zd2FwX2hvcml6PC9zcGFuPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBmeEZsZXggZnhMYXlvdXRBbGlnbj1cInNwYWNlLWJldHdlZW4gY2VudGVyXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImxhbmd1YWdlRHJvcGRvd25UcmlnZ2VyOyBjb250ZXh0OiB7IGxhbmd1YWdlOiB0YXJnZXRMYW5ndWFnZSwgbG9jYWxpemF0aW9uS2V5OiAnU1lTVEVNX1BJQ0tFUi5UQVJHRVQnLCBpc09wZW5lZDogaXNUYXJnZXRPcGVuZWQsIGlzU291cmNlOiBmYWxzZSwgIGFyaWFMYWJlbENvZGU6IHRhcmdldEFyaWFMYWJlbH1cIj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICA8ZGl2ICpuZ0lmPVwiY29sbGVjdGlvbnNWaXNpYmxlXCIgI2NvbGxlY3Rpb25XcmFwcGVyIGNsYXNzPVwidGVybWlub2xvZ3ktd3JhcHBlclwiPlxyXG4gICAgICAgIDxsaWItdGVybWlub2xvZ3kgW3N5c3RlbV09XCJzeXN0ZW1cIj48L2xpYi10ZXJtaW5vbG9neT5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8bGliLWxsbSAqbmdJZj1cImlzTExNRW5hYmxlZCAmJiB0cmFuc2xhdGVkVGV4dFwiIFt0ZXh0XT1cInRyYW5zbGF0ZWRUZXh0XCIgW2xhbmd1YWdlXT1cInRhcmdldExhbmd1YWdlLmxhbmdcIj48L2xpYi1sbG0+XHJcbiAgICA8L2Rpdj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuPC9kaXY+XHJcblxyXG48bmctdGVtcGxhdGUgI2xhbmd1YWdlTmFtZSBsZXQtbGFuZ3VhZ2U9XCJsYW5ndWFnZVwiIGxldC1zaG93RG9tYWluPVwic2hvd0RvbWFpblwiIGxldC1kZXRlY3RlZExhbmd1YWdlPVwiZGV0ZWN0ZWRMYW5ndWFnZVwiPlxyXG4gIDxzcGFuPnt7IGxhbmd1YWdlLmxhbmcgfCBsYW5ndWFnZVRyYW5zbGF0ZSB9fTwvc3Bhbj5cclxuICA8c3BhbiAqbmdJZj1cImRldGVjdGVkTGFuZ3VhZ2UgJiYgIXNob3dEb21haW5cIj4gLSB7eydTWVNURU1fUElDS0VSLkRFVEVDVEVEJyB8IHRyYW5zbGF0ZX19PC9zcGFuPlxyXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJzaG93RG9tYWluICYmIGRvbWFpbkxlbmd0aD4xXCI+XHJcbiAgICA8c3Bhbj4oPC9zcGFuPlxyXG4gICAgPHNwYW4gY2xhc3M9XCJkb21haW5cIj57eygnRE9NQUlOUy4nKyhhY3RpdmVEb21haW5LZXkgfCB1cHBlcmNhc2UpKSB8IHRyYW5zbGF0ZToge2RlZmF1bHQ6IGFjdGl2ZURvbWFpbktleX0gfX08L3NwYW4+XHJcbiAgICA8c3Bhbj4pPC9zcGFuPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNvcGVuZWREcm9wZG93biBsZXQtbG9jYWxpemF0aW9uS2V5PVwibG9jYWxpemF0aW9uS2V5XCI+XHJcbiAge3tsb2NhbGl6YXRpb25LZXkgfCB0cmFuc2xhdGV9fVxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPCEtLVRlbXBsYXRlIGZvciBsYW5ndWFnZSBkcm9wZG93biB0cmlnZ2VyLiBTYW1lIGFzIGZvciB0YXJnZXQgYW5kIHNvdXJjZSB3aXRoIGRpZmZlcmVudCBwYXJhbXMtLT5cclxuPG5nLXRlbXBsYXRlICNsYW5ndWFnZURyb3Bkb3duVHJpZ2dlciBsZXQtbGFuZ3VhZ2U9XCJsYW5ndWFnZVwiIGxldC1pc09wZW5lZD1cImlzT3BlbmVkXCIgbGV0LXBsYWNlaG9sZGVyPVwibG9jYWxpemF0aW9uS2V5XCJcclxuICBsZXQtaXNTb3VyY2U9XCJpc1NvdXJjZVwiIGxldC1hcmlhTGFiZWxDb2RlPVwiYXJpYUxhYmVsQ29kZVwiPlxyXG4gIDxsaWItb3Blbi1jbG9zZS1idXR0b24gW2Rpc2FibGVkXT1cImlzRmlsZVRyYW5zbGF0aW5nXCIgY2xhc3M9XCJzeXN0ZW0tcGlja2VyLWJ1dHRvblwiIFtuZ0NsYXNzXT1cImlzU291cmNlPyAnc291cmNlJzogJ3RhcmdldCdcIlxyXG4gICAgW25nQ2xhc3MubHQtc21dPVwiJ21vYmlsZSdcIiAoY2xpY2spPVwiaXNTb3VyY2UgPyBzb3VyY2VDbGljaygkZXZlbnQpIDogdGFyZ2V0Q2xpY2soJGV2ZW50KVwiXHJcbiAgICBbZGlzYWJsZUZvY3VzT25BY3Rpb25dPVwidHJ1ZVwiIFtpc09wZW5lZF09XCJpc09wZW5lZFwiIFtjbGFzcy5vcGVuZWRdPVwiaXNPcGVuZWRcIiBbYXJpYUxhYmVsQ29kZV09XCJhcmlhTGFiZWxDb2RlXCI+XHJcbiAgICA8c3BhbiBbbmdDbGFzcy5sdC1tZF09XCIndGV4dC1sLXNlbWktYm9sZCdcIiBbbmdDbGFzcy5sdC1zbV09XCIndGV4dC1tLXNlbWktYm9sZCBtb2JpbGUtZG9tYWluLWNvbnRhaW5lcidcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiaXNPcGVuZWQgJiYgaXNTb3VyY2UgfHwgaXNPcGVuZWQgJiYgIWlzU291cmNlICYmICFpc1RhcmdldFJlc2VsZWN0ZWQgPyBvcGVuZWREcm9wZG93biA6IGxhbmd1YWdlTmFtZTsgY29udGV4dDogeyBsYW5ndWFnZTogbGFuZ3VhZ2UsIGxvY2FsaXphdGlvbktleTogcGxhY2Vob2xkZXIsIHNob3dEb21haW46ICFpc1NvdXJjZSwgZGV0ZWN0ZWRMYW5ndWFnZTogc3lzdGVtLmRldGVjdGVkTGFuZ3VhZ2UgfVwiPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvc3Bhbj5cclxuICA8L2xpYi1vcGVuLWNsb3NlLWJ1dHRvbj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
124
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb24tc3lzdGVtLXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90bGQtdHJhbnNsYXRlL3NyYy9saWIvbW9kdWxlcy90bGQtdG9vbHRpcC90cmFuc2xhdGlvbi1zeXN0ZW0tcGlja2VyL3RyYW5zbGF0aW9uLXN5c3RlbS1waWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGxkLXRyYW5zbGF0ZS9zcmMvbGliL21vZHVsZXMvdGxkLXRvb2x0aXAvdHJhbnNsYXRpb24tc3lzdGVtLXBpY2tlci90cmFuc2xhdGlvbi1zeXN0ZW0tcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFxQixNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7Ozs7OztBQWFwRSxNQUFNLE9BQU8sZ0NBQWdDO0lBMkR4QjtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBOURWLHNCQUFzQixDQUFVO0lBRXpDLElBQUksY0FBYyxLQUFLLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7SUFDeEUsSUFBSSxjQUFjLEtBQUssT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztJQUV4RSxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUM7SUFDcEUsQ0FBQztJQUVELElBQUksY0FBYztRQUNoQixPQUFPLElBQUksQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDO0lBQ3JDLENBQUM7SUFFRCxJQUFJLGNBQWM7UUFDaEIsT0FBTyxJQUFJLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQztJQUNyQyxDQUFDO0lBRUQsSUFBSSxZ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QUFFLFVBQVUsQ0FBQyxRQUFRLEVBQUUsa0JBQWtCLEVBQUUsVUFBVSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsa0JBQWtCLEVBQUUsVUFBVSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsVUFBVSxDQUFDLGdCQUFnQixFQUFDLENBQUM7WUFDN0wsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7WUFDN0IsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDO1lBQzlELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sSUFBSSxDQUFDLENBQUM7WUFDbEUsSUFBSSxDQUFDLHNCQUFzQixHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM5RixDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7d0dBM0hVLGdDQUFnQzs0RkFBaEMsZ0NBQWdDLG1JQ2I3QywwZ0hBeURBOzs0RkQ1Q2EsZ0NBQWdDO2tCQUw1QyxTQUFTOytCQUNFLCtCQUErQjsyUkFLaEMsc0JBQXNCO3NCQUE5QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFRyYW5zbGF0aW9uU3lzdGVtUGlja2VyU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvdHJhbnNsYXRpb24tc3lzdGVtLXBpY2tlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVGxkVHJhbnNsYXRlQ29uZmlnU2VydmljZSwgVGxkVHJhbnNsYXRlU3lzdGVtTWFuYWdlbWVudFNlcnZpY2UgfSBmcm9tICcuLi8uLi90bGQtY29tbW9uL3NlcnZpY2VzJztcclxuaW1wb3J0IHsgQWN0aXZlRGF0YSB9IGZyb20gJ0B0aWxkZS1ubHAvbmd4LWNvbW1vbic7XHJcbmltcG9ydCB7IFRsZFRyYW5zbGF0ZUZpbGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdGxkLWRvY3VtZW50L3NlcnZpY2VzJztcclxuaW1wb3J0IHsgVGxkVHJhbnNsYXRlVGV4dFNlcnZpY2UgfSBmcm9tICcuLi8uLi90bGQtdGV4dC9zZXJ2aWNlcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3RsZC10cmFuc2xhdGlvbi1zeXN0ZW0tcGlja2VyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdHJhbnNsYXRpb24tc3lzdGVtLXBpY2tlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdHJhbnNsYXRpb24tc3lzdGVtLXBpY2tlci5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcmFuc2xhdGlvblN5c3RlbVBpY2tlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBASW5wdXQoKSBpc0NvbGxlY3Rpb25zQWN0aXZhdGVkOiBib29sZWFuO1xyXG5cclxuICBnZXQgaXNTb3VyY2VPcGVuZWQoKSB7IHJldHVybiB0aGlzLnN5c3RlbVBpY2tlclNlcnZpY2UuaXNTb3VyY2VPcGVuZWQ7IH1cclxuICBnZXQgaXNUYXJnZXRPcGVuZWQoKSB7IHJldHVybiB0aGlzLnN5c3RlbVBpY2tlclNlcnZpY2UuaXNUYXJnZXRPcGVuZWQ7IH1cclxuXHJcbiAgZ2V0IGNhblN3YXAoKSB7XHJcbiAgICByZXR1cm4gdGhpcy50bGRTeXN0ZW0uY2FuU3dhcExhbmd1YWdlcyAmJiAhdGhpcy5pc0ZpbGVUcmFuc2xhdGluZztcclxuICB9XHJcblxyXG4gIGdldCBzb3VyY2VMYW5ndWFnZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmFjdGl2ZURhdGE/LnNvdXJjZUxhbmc7XHJcbiAgfVxyXG5cclxuICBnZXQgdGFyZ2V0TGFuZ3VhZ2UoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hY3RpdmVEYXRhPy50YXJnZXRMYW5nO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGlzRGF0YUxvYWRlZCgpIHtcclxuICAgIHJldHVybiB0aGlzLmFjdGl2ZURhdGE7XHJcbiAgfVxyXG5cclxuICBnZXQgY29sbGVjdGlvbnNWaXNpYmxlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuaXNDb2xsZWN0aW9uc0FjdGl2YXRlZFxyXG4gICAgICAmJiB0aGlzLmlzVGVybWlub2xvZ3lTdXBwb3J0ZWQ7XHJcbiAgfVxyXG5cclxuICBnZXQgaXNGaWxlVHJhbnNsYXRpbmcoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5maWxlLnRyYW5zbGF0aW9uU3RhcnRlZDtcclxuICB9XHJcblxyXG4gIGdldCB0cmFuc2xhdGVkVGV4dCgpIHtcclxuICAgIHJldHVybiB0aGlzLnRleHQudHJhbnNsYXRlZFRleHQ7XHJcbiAgfVxyXG5cclxuICBnZXQgaXNMTE1FbmFibGVkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLnRleHRDb25maWcuaXNMTE1FbmFibGVkO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGlzVHJhbnNsYXRpbmcoKSB7XHJcbiAgICByZXR1cm4gdGhpcy50ZXh0LmlzVHJhbnNsYXRpbmc7XHJcbiAgfVxyXG5cclxuICByZWFkb25seSBzb3VyY2VBcmlhTGFiZWwgPSBcIlNZU1RFTV9QSUNLRVIuT1BFTl9TT1VSQ0VfQVJJQV9MQUJFTFwiO1xyXG4gIHJlYWRvbmx5IHRhcmdldEFyaWFMYWJlbCA9IFwiU1lTVEVNX1BJQ0tFUi5PUEVOX1RBUkdFVF9BUklBX0xBQkVMXCI7XHJcblxyXG4gIGRvbWFpbkxlbmd0aDogbnVtYmVyID0gMDtcclxuICBhY3RpdmVEb21haW5LZXk6IHN0cmluZztcclxuXHJcbiAgaXNUYXJnZXRSZXNlbGVjdGVkID0gZmFsc2U7XHJcblxyXG4gIHByaXZhdGUgaXNUZXJtaW5vbG9neVN1cHBvcnRlZDogYm9vbGVhbjtcclxuXHJcbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcclxuICBwcml2YXRlIGFjdGl2ZURhdGE6IEFjdGl2ZURhdGE7XHJcblxyXG4gIHN5c3RlbTogeyBzeXN0ZW1JZDogc3RyaW5nOyBzb3VyY2VMYW5ndWFnZUNvZGU6IHN0cmluZzsgdGFyZ2V0TGFuZ3VhZ2VDb2RlOiBzdHJpbmc7IGRldGVjdGVkTGFuZ3VhZ2U/OiBzdHJpbmc7IH07XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBzeXN0ZW1QaWNrZXJTZXJ2aWNlOiBUcmFuc2xhdGlvblN5c3RlbVBpY2tlclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRsZFN5c3RlbTogVGxkVHJhbnNsYXRlU3lzdGVtTWFuYWdlbWVudFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZpbGU6IFRsZFRyYW5zbGF0ZUZpbGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSB0ZXh0OiBUbGRUcmFuc2xhdGVUZXh0U2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgY29uZmlnOiBUbGRUcmFuc2xhdGVDb25maWdTZXJ2aWNlXHJcbiAgKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc3Vic2NyaWJlVG9BY3RpdmVEYXRhKCk7XHJcbiAgfVxyXG5cclxuICBzb3VyY2VDbGljayhldmVudDogTW91c2VFdmVudCkge1xyXG4gICAgaWYgKHRoaXMuaXNGaWxlVHJhbnNsYXRpbmcpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgLy8gc3RvcCBwcm9wYWdhdGlvbiBuZWNlc3Nhcnkgc28gdGhhdCBjbGljayBvdXRzaWRlIGRpcmVjdGl2ZSB3b3JrcyBhcyBpbnRlbmRlZCBvdGhlcndpc2UgY2xpY2sgZXZlbnQgZ29lcyB1cCB0aHJvdWdoIHBhcmVudHMgYW5kIGNsaWNrIG91dHNpZGUgZ2V0cyBjYWxsZWQgYW5kIGNsb3NlcyBkcm9wZG93bi5cclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgdGhpcy5zeXN0ZW1QaWNrZXJTZXJ2aWNlLnNvdXJjZUxhbmd1YWdlQ2xpY2tlZCgpO1xyXG4gIH1cclxuXHJcbiAgdGFyZ2V0Q2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpIHtcclxuICAgIGlmICh0aGlzLmlzRmlsZVRyYW5zbGF0aW5nKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuaXNUYXJnZXRSZXNlbGVjdGVkID0gZmFsc2U7XHJcblxyXG4gICAgLy8gc3RvcCBwcm9wYWdhdGlvbiBuZWNlc3Nhcnkgc28gdGhhdCBjbGljayBvdXRzaWRlIGRpcmVjdGl2ZSB3b3JrcyBhcyBpbnRlbmRlZCBvdGhlcndpc2UgY2xpY2sgZXZlbnQgZ29lcyB1cCB0aHJvdWdoIHBhcmVudHMgYW5kIGNsaWNrIG91dHNpZGUgZ2V0cyBjYWxsZWQgYW5kIGNsb3NlcyBkcm9wZG93bi5cclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgdGhpcy5zeXN0ZW1QaWNrZXJTZXJ2aWNlLnRhcmdldExhbmd1YWdlQ2xpY2tlZCgpO1xyXG4gIH1cclxuXHJcbiAgc3dhcCgpIHtcclxuICAgIGlmICh0aGlzLmlzRmlsZVRyYW5zbGF0aW5nKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMudGxkU3lzdGVtLnN3YXBTeXN0ZW1MYW5ndWFnZXMoKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc3Vic2NyaWJlVG9BY3RpdmVEYXRhKCkge1xyXG4gICAgbGV0IGxhc3RUYXJnZXRMYW5ndWFnZSE6IHN0cmluZztcclxuXHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IHRoaXMudGxkU3lzdGVtLmdldEFjdGl2ZURhdGEoKS5zdWJzY3JpYmUoKGFjdGl2ZURhdGEpID0+IHtcclxuICAgICAgaWYgKCFhY3RpdmVEYXRhKSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAoYWN0aXZlRGF0YS50YXJnZXRMYW5nLmxhbmcgIT09IGxhc3RUYXJnZXRMYW5ndWFnZSkge1xyXG4gICAgICAgIGlmIChsYXN0VGFyZ2V0TGFuZ3VhZ2UpIHtcclxuICAgICAgICAgIHRoaXMuaXNUYXJnZXRSZXNlbGVjdGVkID0gdHJ1ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxhc3RUYXJnZXRMYW5ndWFnZSA9IGFjdGl2ZURhdGEudGFyZ2V0TGFuZy5sYW5nO1xyXG4gICAgICB9IFxyXG5cclxuICAgICAgdGhpcy5zeXN0ZW0gPSB7c3lzdGVtSWQ6IGFjdGl2ZURhdGEuc3lzdGVtSWQsIHNvdXJjZUxhbmd1YWdlQ29kZTogYWN0aXZlRGF0YS5zb3VyY2VMYW5nLmxhbmcsIHRhcmdldExhbmd1YWdlQ29kZTogYWN0aXZlRGF0YS50YXJnZXRMYW5nLmxhbmcsIGRldGVjdGVkTGFuZ3VhZ2U6IGFjdGl2ZURhdGEuZGV0ZWN0ZWRMYW5ndWFnZX07XHJcbiAgICAgIHRoaXMuYWN0aXZlRGF0YSA9IGFjdGl2ZURhdGE7XHJcbiAgICAgIHRoaXMuYWN0aXZlRG9tYWluS2V5ID0gdGhpcy5hY3RpdmVEYXRhLmRvbWFpbnM/LmFjdGl2ZT8udGl0bGU7XHJcbiAgICAgIHRoaXMuZG9tYWluTGVuZ3RoID0gdGhpcy5hY3RpdmVEYXRhLmRvbWFpbnM/LmRvbWFpbnM/Lmxlbmd0aCA/PyAwO1xyXG4gICAgICB0aGlzLmlzVGVybWlub2xvZ3lTdXBwb3J0ZWQgPSB0aGlzLnRsZFN5c3RlbS5pc1Rlcm1pbm9sb2d5U3VwcG9ydGVkKHRoaXMuYWN0aXZlRGF0YS5zeXN0ZW0pO1xyXG4gICAgfSlcclxuICB9XHJcbn1cclxuIiwiPGRpdiBmeEZsZXggZnhMYXlvdXQ9XCJyb3dcIj5cclxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNEYXRhTG9hZGVkXCI+XHJcbiAgICA8ZGl2IGZ4RmxleCBmeExheW91dEFsaWduPVwic3BhY2UtYmV0d2VlbiBjZW50ZXJcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwibGFuZ3VhZ2VEcm9wZG93blRyaWdnZXI7IGNvbnRleHQ6IHsgbGFuZ3VhZ2U6IHNvdXJjZUxhbmd1YWdlLCBsb2NhbGl6YXRpb25LZXk6ICdTWVNURU1fUElDS0VSLlNPVVJDRScsIGlzT3BlbmVkOiBpc1NvdXJjZU9wZW5lZCwgaXNTb3VyY2U6IHRydWUsIGFyaWFMYWJlbENvZGU6IHNvdXJjZUFyaWFMYWJlbCB9XCI+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8YnV0dG9uIFtkaXNhYmxlZF09XCIhY2FuU3dhcFwiIGNsYXNzPVwic3dhcC1sYW5ndWFnZXMtYnV0dG9uXCIgbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJzd2FwKClcIlxyXG4gICAgICAgIGFyaWEtbGFiZWw9XCJzd2FwIGxhbmd1YWdlc1wiIGNvbG9yPVwicHJpbWFyeVwiIG1hdFRvb2x0aXA9XCJ7eydUT09MVElQUy5TV0FQX0xBTkdVQUdFUycgfCB0cmFuc2xhdGV9fVwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnNcIiBhcmlhLWhpZGRlbj1cImZhbHNlXCJcclxuICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ0FSSUFfTEFCRUxTLlNXQVBfTEFOR1VBR0VTJyB8IHRyYW5zbGF0ZVwiPnN3YXBfaG9yaXo8L3NwYW4+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGZ4RmxleCBmeExheW91dEFsaWduPVwic3BhY2UtYmV0d2VlbiBjZW50ZXJcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwibGFuZ3VhZ2VEcm9wZG93blRyaWdnZXI7IGNvbnRleHQ6IHsgbGFuZ3VhZ2U6IHRhcmdldExhbmd1YWdlLCBsb2NhbGl6YXRpb25LZXk6ICdTWVNURU1fUElDS0VSLlRBUkdFVCcsIGlzT3BlbmVkOiBpc1RhcmdldE9wZW5lZCwgaXNTb3VyY2U6IGZhbHNlLCAgYXJpYUxhYmVsQ29kZTogdGFyZ2V0QXJpYUxhYmVsfVwiPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgIDxkaXYgZnhGbGV4IGZ4TGF5b3V0QWxpZ249XCJlbmQgY2VudGVyXCI+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cImNvbGxlY3Rpb25zVmlzaWJsZVwiICNjb2xsZWN0aW9uV3JhcHBlciBjbGFzcz1cInRlcm1pbm9sb2d5LXdyYXBwZXJcIj5cclxuICAgICAgICAgIDxsaWItdGVybWlub2xvZ3kgW3N5c3RlbV09XCJzeXN0ZW1cIj48L2xpYi10ZXJtaW5vbG9neT5cclxuICAgICAgICA8L2Rpdj5cclxuICBcclxuICAgICAgICA8ZGl2IFttYXRUb29sdGlwXT1cIihpc1RyYW5zbGF0aW5nIHx8ICF0cmFuc2xhdGVkVGV4dCkgPyAoJ0xMTS5NRU5VX0RJU0FCTEVEX1RPT0xUSVAnIHwgdHJhbnNsYXRlKSA6ICcnXCI+XHJcbiAgICAgICAgICA8bGliLWxsbSAqbmdJZj1cImlzTExNRW5hYmxlZFwiIFt0ZXh0XT1cInRyYW5zbGF0ZWRUZXh0XCIgW2xhbmd1YWdlXT1cInRhcmdldExhbmd1YWdlLmxhbmdcIiBbaXNNZW51RGlzYWJsZWRdPVwiaXNUcmFuc2xhdGluZyB8fCAhdHJhbnNsYXRlZFRleHRcIj48L2xpYi1sbG0+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbjwvZGl2PlxyXG5cclxuPG5nLXRlbXBsYXRlICNsYW5ndWFnZU5hbWUgbGV0LWxhbmd1YWdlPVwibGFuZ3VhZ2VcIiBsZXQtc2hvd0RvbWFpbj1cInNob3dEb21haW5cIiBsZXQtZGV0ZWN0ZWRMYW5ndWFnZT1cImRldGVjdGVkTGFuZ3VhZ2VcIj5cclxuICA8c3Bhbj57eyBsYW5ndWFnZS5sYW5nIHwgbGFuZ3VhZ2VUcmFuc2xhdGUgfX08L3NwYW4+XHJcbiAgPHNwYW4gKm5nSWY9XCJkZXRlY3RlZExhbmd1YWdlICYmICFzaG93RG9tYWluXCI+IC0ge3snU1lTVEVNX1BJQ0tFUi5ERVRFQ1RFRCcgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cclxuICA8bmctY29udGFpbmVyICpuZ0lmPVwic2hvd0RvbWFpbiAmJiBkb21haW5MZW5ndGg+MVwiPlxyXG4gICAgPHNwYW4+KDwvc3Bhbj5cclxuICAgIDxzcGFuIGNsYXNzPVwiZG9tYWluXCI+e3soJ0RPTUFJTlMuJysoYWN0aXZlRG9tYWluS2V5IHwgdXBwZXJjYXNlKSkgfCB0cmFuc2xhdGU6IHtkZWZhdWx0OiBhY3RpdmVEb21haW5LZXl9IH19PC9zcGFuPlxyXG4gICAgPHNwYW4+KTwvc3Bhbj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjb3BlbmVkRHJvcGRvd24gbGV0LWxvY2FsaXphdGlvbktleT1cImxvY2FsaXphdGlvbktleVwiPlxyXG4gIHt7bG9jYWxpemF0aW9uS2V5IHwgdHJhbnNsYXRlfX1cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjwhLS1UZW1wbGF0ZSBmb3IgbGFuZ3VhZ2UgZHJvcGRvd24gdHJpZ2dlci4gU2FtZSBhcyBmb3IgdGFyZ2V0IGFuZCBzb3VyY2Ugd2l0aCBkaWZmZXJlbnQgcGFyYW1zLS0+XHJcbjxuZy10ZW1wbGF0ZSAjbGFuZ3VhZ2VEcm9wZG93blRyaWdnZXIgbGV0LWxhbmd1YWdlPVwibGFuZ3VhZ2VcIiBsZXQtaXNPcGVuZWQ9XCJpc09wZW5lZFwiIGxldC1wbGFjZWhvbGRlcj1cImxvY2FsaXphdGlvbktleVwiXHJcbiAgbGV0LWlzU291cmNlPVwiaXNTb3VyY2VcIiBsZXQtYXJpYUxhYmVsQ29kZT1cImFyaWFMYWJlbENvZGVcIj5cclxuICA8bGliLW9wZW4tY2xvc2UtYnV0dG9uIFtkaXNhYmxlZF09XCJpc0ZpbGVUcmFuc2xhdGluZ1wiIGNsYXNzPVwic3lzdGVtLXBpY2tlci1idXR0b25cIiBbbmdDbGFzc109XCJpc1NvdXJjZT8gJ3NvdXJjZSc6ICd0YXJnZXQnXCJcclxuICAgIFtuZ0NsYXNzLmx0LXNtXT1cIidtb2JpbGUnXCIgKGNsaWNrKT1cImlzU291cmNlID8gc291cmNlQ2xpY2soJGV2ZW50KSA6IHRhcmdldENsaWNrKCRldmVudClcIlxyXG4gICAgW2Rpc2FibGVGb2N1c09uQWN0aW9uXT1cInRydWVcIiBbaXNPcGVuZWRdPVwiaXNPcGVuZWRcIiBbY2xhc3Mub3BlbmVkXT1cImlzT3BlbmVkXCIgW2FyaWFMYWJlbENvZGVdPVwiYXJpYUxhYmVsQ29kZVwiPlxyXG4gICAgPHNwYW4gW25nQ2xhc3MubHQtbWRdPVwiJ3RleHQtbC1zZW1pLWJvbGQnXCIgW25nQ2xhc3MubHQtc21dPVwiJ3RleHQtbS1zZW1pLWJvbGQgbW9iaWxlLWRvbWFpbi1jb250YWluZXInXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImlzT3BlbmVkICYmIGlzU291cmNlIHx8IGlzT3BlbmVkICYmICFpc1NvdXJjZSAmJiAhaXNUYXJnZXRSZXNlbGVjdGVkID8gb3BlbmVkRHJvcGRvd24gOiBsYW5ndWFnZU5hbWU7IGNvbnRleHQ6IHsgbGFuZ3VhZ2U6IGxhbmd1YWdlLCBsb2NhbGl6YXRpb25LZXk6IHBsYWNlaG9sZGVyLCBzaG93RG9tYWluOiAhaXNTb3VyY2UsIGRldGVjdGVkTGFuZ3VhZ2U6IHN5c3RlbS5kZXRlY3RlZExhbmd1YWdlIH1cIj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L3NwYW4+XHJcbiAgPC9saWItb3Blbi1jbG9zZS1idXR0b24+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==