@cdklabs/multi-az-observability 0.0.1-alpha.39 → 0.0.1-alpha.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.
Files changed (107) hide show
  1. package/.jsii +1830 -604
  2. package/API.md +4724 -1382
  3. package/README.md +14 -14
  4. package/lib/alarmsandrules/AvailabilityAndLatencyAlarmsAndRules.d.ts +11 -9
  5. package/lib/alarmsandrules/AvailabilityAndLatencyAlarmsAndRules.js +10 -10
  6. package/lib/alarmsandrules/props/BaseOperationRegionalAlarmsAndRulesProps.d.ts +4 -3
  7. package/lib/alarmsandrules/props/BaseOperationRegionalAlarmsAndRulesProps.js +1 -1
  8. package/lib/azmapper/AvailabilityZoneMapper.js +1 -1
  9. package/lib/basic_observability/BasicServiceMultiAZObservability.js +4 -6
  10. package/lib/basic_observability/props/ApplicationLoadBalancerDetectionProps.d.ts +2 -1
  11. package/lib/basic_observability/props/ApplicationLoadBalancerDetectionProps.js +1 -1
  12. package/lib/canaries/CanaryFunction.js +3 -3
  13. package/lib/canaries/src/canary.zip +0 -0
  14. package/lib/dashboards/ContributorInsightsWidget.d.ts +1 -1
  15. package/lib/dashboards/ContributorInsightsWidget.js +12 -16
  16. package/lib/dashboards/OperationAvailabilityAndLatencyDashboard.js +8 -8
  17. package/lib/dashboards/ServiceAvailabilityAndLatencyDashboard.js +4 -4
  18. package/lib/index.d.ts +54 -29
  19. package/lib/index.js +32 -19
  20. package/lib/metrics/ApplicationLoadBalancerMetrics.d.ts +3 -3
  21. package/lib/metrics/ApplicationLoadBalancerMetrics.js +5 -8
  22. package/lib/monitoring/src/monitoring-layer.zip +0 -0
  23. package/lib/outlier-detection/src/outlier-detection.zip +0 -0
  24. package/lib/outlier-detection/src/scipy-layer.zip +0 -0
  25. package/lib/services/CanaryMetrics.d.ts +4 -3
  26. package/lib/services/CanaryMetrics.js +3 -4
  27. package/lib/services/CanaryTestAvailabilityMetricsOverride.d.ts +21 -0
  28. package/lib/services/CanaryTestAvailabilityMetricsOverride.js +23 -0
  29. package/lib/services/CanaryTestLatencyMetricsOverride.d.ts +15 -0
  30. package/lib/services/CanaryTestLatencyMetricsOverride.js +20 -0
  31. package/lib/services/CanaryTestMetricsOverride.d.ts +1 -13
  32. package/lib/services/CanaryTestMetricsOverride.js +2 -4
  33. package/lib/services/ContributorInsightRuleDetails.js +1 -1
  34. package/lib/services/ICanaryMetrics.d.ts +4 -3
  35. package/lib/services/ICanaryMetrics.js +1 -1
  36. package/lib/services/ICanaryTestAvailabilityMetricsOverride.d.ts +23 -0
  37. package/lib/services/ICanaryTestAvailabilityMetricsOverride.js +3 -0
  38. package/lib/services/ICanaryTestLatencyMetricsOverride.d.ts +13 -0
  39. package/lib/services/ICanaryTestLatencyMetricsOverride.js +3 -0
  40. package/lib/services/ICanaryTestMetricsOverride.d.ts +0 -12
  41. package/lib/services/ICanaryTestMetricsOverride.js +1 -1
  42. package/lib/services/IInstrumentedServiceMultiAZObservability.d.ts +13 -3
  43. package/lib/services/IInstrumentedServiceMultiAZObservability.js +1 -1
  44. package/lib/services/IOperation.d.ts +8 -6
  45. package/lib/services/IOperation.js +1 -1
  46. package/lib/services/IOperationAvailabilityMetricDetails.d.ts +18 -0
  47. package/lib/services/IOperationAvailabilityMetricDetails.js +3 -0
  48. package/lib/services/IOperationLatencyMetricDetails.d.ts +12 -0
  49. package/lib/services/IOperationLatencyMetricDetails.js +3 -0
  50. package/lib/services/IOperationMetricDetails.d.ts +0 -12
  51. package/lib/services/IOperationMetricDetails.js +1 -1
  52. package/lib/services/IService.d.ts +4 -3
  53. package/lib/services/IService.js +1 -1
  54. package/lib/services/IServiceAvailabilityMetricDetails.d.ts +18 -0
  55. package/lib/services/IServiceAvailabilityMetricDetails.js +3 -0
  56. package/lib/services/IServiceLatencyMetricDetails.d.ts +12 -0
  57. package/lib/services/IServiceLatencyMetricDetails.js +3 -0
  58. package/lib/services/IServiceMetricDetails.d.ts +0 -12
  59. package/lib/services/IServiceMetricDetails.js +1 -1
  60. package/lib/services/InstrumentedServiceMultiAZObservability.d.ts +5 -3
  61. package/lib/services/InstrumentedServiceMultiAZObservability.js +12 -15
  62. package/lib/services/Operation.d.ts +8 -6
  63. package/lib/services/Operation.js +2 -2
  64. package/lib/services/OperationAvailabilityMetricDetails.d.ts +22 -0
  65. package/lib/services/OperationAvailabilityMetricDetails.js +24 -0
  66. package/lib/services/OperationLatencyMetricDetails.d.ts +16 -0
  67. package/lib/services/OperationLatencyMetricDetails.js +21 -0
  68. package/lib/services/OperationMetricDetails.d.ts +1 -13
  69. package/lib/services/OperationMetricDetails.js +2 -8
  70. package/lib/services/Service.d.ts +4 -3
  71. package/lib/services/Service.js +2 -2
  72. package/lib/services/ServiceAvailabilityMetricDetails.d.ts +21 -0
  73. package/lib/services/ServiceAvailabilityMetricDetails.js +20 -0
  74. package/lib/services/ServiceLatencyMetricDetails.d.ts +15 -0
  75. package/lib/services/ServiceLatencyMetricDetails.js +19 -0
  76. package/lib/services/ServiceMetricDetails.d.ts +1 -13
  77. package/lib/services/ServiceMetricDetails.js +2 -4
  78. package/lib/services/props/CanaryMetricProps.d.ts +4 -3
  79. package/lib/services/props/CanaryMetricProps.js +1 -1
  80. package/lib/services/props/CanaryTestAvailabilityMetricsOverrideProps.d.ts +22 -0
  81. package/lib/services/props/CanaryTestAvailabilityMetricsOverrideProps.js +3 -0
  82. package/lib/services/props/CanaryTestLatencyMetricsOverrideProps.d.ts +14 -0
  83. package/lib/services/props/CanaryTestLatencyMetricsOverrideProps.js +3 -0
  84. package/lib/services/props/CanaryTestMetricsOverrideProps.d.ts +0 -16
  85. package/lib/services/props/CanaryTestMetricsOverrideProps.js +1 -1
  86. package/lib/services/props/MetricDimensions.js +1 -1
  87. package/lib/services/props/OperationAvailabilityMetricDetailsProps.d.ts +22 -0
  88. package/lib/services/props/OperationAvailabilityMetricDetailsProps.js +3 -0
  89. package/lib/services/props/OperationLatencyMetricDetailsProps.d.ts +14 -0
  90. package/lib/services/props/OperationLatencyMetricDetailsProps.js +3 -0
  91. package/lib/services/props/OperationMetricDetailsProps.d.ts +0 -16
  92. package/lib/services/props/OperationMetricDetailsProps.js +1 -1
  93. package/lib/services/props/OperationProps.d.ts +4 -3
  94. package/lib/services/props/OperationProps.js +1 -1
  95. package/lib/services/props/ServiceAvailabilityMetricDetailsProps.d.ts +18 -0
  96. package/lib/services/props/ServiceAvailabilityMetricDetailsProps.js +3 -0
  97. package/lib/services/props/ServiceLatencyMetricDetailsProps.d.ts +12 -0
  98. package/lib/services/props/ServiceLatencyMetricDetailsProps.js +3 -0
  99. package/lib/services/props/ServiceMetricDetailsProps.d.ts +0 -12
  100. package/lib/services/props/ServiceMetricDetailsProps.js +1 -1
  101. package/lib/services/props/ServiceProps.d.ts +4 -3
  102. package/lib/services/props/ServiceProps.js +1 -1
  103. package/lib/utilities/MetricsHelper.d.ts +3 -0
  104. package/lib/utilities/MetricsHelper.js +17 -1
  105. package/package.json +5 -5
  106. package/lib/services/IBasicServiceMultiAZObservability.d.ts +0 -45
  107. package/lib/services/IBasicServiceMultiAZObservability.js +0 -3
@@ -144,13 +144,11 @@ class BasicServiceMultiAZObservability extends constructs_1.Construct {
144
144
  // Is there availability impact in this AZ?
145
145
  let availabilityImpact = ApplicationLoadBalancerMetrics_1.ApplicationLoadBalancerMetrics.createAZAvailabilityImpactAlarm(this, alb, availabilityZoneId, az, props.applicationLoadBalancerProps.faultCountPercentThreshold, keyPrefix, period, props.evaluationPeriods, props.datapointsToAlarm);
146
146
  // Is there latency impact in this AZ?
147
- let latencyImpact = ApplicationLoadBalancerMetrics_1.ApplicationLoadBalancerMetrics.createAZLatencyImpactAlarm(this, alb, availabilityZoneId, az, (props.applicationLoadBalancerProps.latencyThreshold / 1000), // threshold is provided in milliseconds, but latency is provided in seconds
148
- props.applicationLoadBalancerProps.latencyStatistic, keyPrefix, period, props.evaluationPeriods, props.datapointsToAlarm);
147
+ let latencyImpact = ApplicationLoadBalancerMetrics_1.ApplicationLoadBalancerMetrics.createAZLatencyImpactAlarm(this, alb, availabilityZoneId, az, props.applicationLoadBalancerProps.latencyThreshold, props.applicationLoadBalancerProps.latencyStatistic, keyPrefix, period, props.evaluationPeriods, props.datapointsToAlarm);
149
148
  // Is the AZ an outlier for faults
150
149
  let availabilityOutlier = ApplicationLoadBalancerMetrics_1.ApplicationLoadBalancerMetrics.createAZAvailabilityOutlierAlarm(this, alb, availabilityOutlierDetectionAlgorithm, availabilityZoneId, az, availabilityOutlierThreshold, keyPrefix, period, props.evaluationPeriods, props.datapointsToAlarm);
151
150
  // Is the AZ an outlier for latency
152
- let latencyOutlier = ApplicationLoadBalancerMetrics_1.ApplicationLoadBalancerMetrics.createAZLatencyOutlierAlarm(this, alb, latencyOutlierDetectionAlgorithm, az, props.applicationLoadBalancerProps.latencyStatistic, (props.applicationLoadBalancerProps.latencyThreshold / 1000), // threshold is provided in milliseconds, but latency is provided in seconds
153
- latencyOutlierThreshold, period, props.evaluationPeriods, props.datapointsToAlarm, this._azMapper);
151
+ let latencyOutlier = ApplicationLoadBalancerMetrics_1.ApplicationLoadBalancerMetrics.createAZLatencyOutlierAlarm(this, alb, latencyOutlierDetectionAlgorithm, az, props.applicationLoadBalancerProps.latencyStatistic, props.applicationLoadBalancerProps.latencyThreshold, latencyOutlierThreshold, period, props.evaluationPeriods, props.datapointsToAlarm, this._azMapper);
154
152
  // Alarm if the AZ shows impact and is an outlier
155
153
  let azImpactAlarm = new aws_cloudwatch_1.CompositeAlarm(this, azLetter + "-composite-impact-alarm", {
156
154
  alarmRule: aws_cloudwatch_1.AlarmRule.anyOf(aws_cloudwatch_1.AlarmRule.allOf(availabilityImpact, availabilityOutlier), aws_cloudwatch_1.AlarmRule.allOf(latencyImpact, latencyOutlier)),
@@ -218,5 +216,5 @@ class BasicServiceMultiAZObservability extends constructs_1.Construct {
218
216
  }
219
217
  exports.BasicServiceMultiAZObservability = BasicServiceMultiAZObservability;
220
218
  _a = JSII_RTTI_SYMBOL_1;
221
- BasicServiceMultiAZObservability[_a] = { fqn: "@cdklabs/multi-az-observability.BasicServiceMultiAZObservability", version: "0.0.1-alpha.39" };
222
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmFzaWNTZXJ2aWNlTXVsdGlBWk9ic2VydmFiaWxpdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYmFzaWNfb2JzZXJ2YWJpbGl0eS9CYXNpY1NlcnZpY2VNdWx0aUFaT2JzZXJ2YWJpbGl0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHFFQUFxRTtBQUNyRSxzQ0FBc0M7QUFFdEMsNkNBQXVDO0FBQ3ZDLCtEQUtvQztBQU9wQywyQ0FBdUM7QUFHdkMsK0VBQTRFO0FBRTVFLG1FQUFnRTtBQUNoRSw4RkFBMkY7QUFDM0YsOERBQTJEO0FBQzNELHdJQUFxSTtBQUNySSxvRUFBaUU7QUFDakUsa0pBQStJO0FBQy9JLGdHQUE2RjtBQUU3Rjs7O0dBR0c7QUFDSCxNQUFhLGdDQUNYLFNBQVEsc0JBQVM7SUE4Q2pCLFlBQ0UsS0FBZ0IsRUFDaEIsRUFBVSxFQUNWLEtBQTRDO1FBRTVDLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLDRCQUE0QixDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDO1lBQ3RFLE1BQU0sSUFBSSxLQUFLLENBQUMsOEZBQThGLENBQUMsQ0FBQztRQUNsSCxDQUFDO1FBRUQsOEJBQThCO1FBQzlCLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQztRQUNyQyxJQUFJLENBQUMsd0JBQXdCLEdBQUcsS0FBSyxDQUFDLDRCQUE0QixFQUFFLHdCQUF3QixDQUFDO1FBQzdGLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDLGVBQWUsRUFBRSxXQUFXLENBQUM7UUFFdEQsSUFBSSxDQUFDLGtDQUFrQyxHQUFHLEVBQUUsQ0FBQztRQUM3QyxJQUFJLENBQUMsNEJBQTRCLEdBQUcsRUFBRSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyw4QkFBOEIsR0FBRyxFQUFFLENB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QUcsSUFBSSwrQkFBYyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEdBQUcsOEJBQThCLEVBQUU7Z0JBQ3ZILFNBQVMsRUFBRSwwQkFBUyxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxpQkFBaUIsQ0FBQztnQkFDL0Qsa0JBQWtCLEVBQUUsa0JBQWtCLEdBQUcsOEJBQThCO2FBQ3hFLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxxQkFBcUIsQ0FBQztJQUMvQixDQUFDOztBQXRYSCw0RUF1WEMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbmltcG9ydCB7IER1cmF0aW9uIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHtcbiAgQWxhcm1SdWxlLFxuICBDb21wb3NpdGVBbGFybSxcbiAgRGFzaGJvYXJkLFxuICBJQWxhcm1cbn0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWNsb3Vkd2F0Y2gnO1xuaW1wb3J0IHsgQ2ZuTmF0R2F0ZXdheSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1lYzInO1xuaW1wb3J0IHtcbiAgQmFzZUxvYWRCYWxhbmNlcixcbiAgSUFwcGxpY2F0aW9uTG9hZEJhbGFuY2VyLFxuICBJTG9hZEJhbGFuY2VyVjIsXG59IGZyb20gJ2F3cy1jZGstbGliL2F3cy1lbGFzdGljbG9hZGJhbGFuY2luZ3YyJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgSUJhc2ljU2VydmljZU11bHRpQVpPYnNlcnZhYmlsaXR5IH0gZnJvbSAnLi9JQmFzaWNTZXJ2aWNlTXVsdGlBWk9ic2VydmFiaWxpdHknO1xuaW1wb3J0IHsgQmFzaWNTZXJ2aWNlTXVsdGlBWk9ic2VydmFiaWxpdHlQcm9wcyB9IGZyb20gJy4vcHJvcHMvQmFzaWNTZXJ2aWNlTXVsdGlBWk9ic2VydmFiaWxpdHlQcm9wcyc7XG5pbXBvcnQgeyBBdmFpbGFiaWxpdHlab25lTWFwcGVyIH0gZnJvbSAnLi4vYXptYXBwZXIvQXZhaWxhYmlsaXR5Wm9uZU1hcHBlcic7XG5pbXBvcnQgeyBJQXZhaWxhYmlsaXR5Wm9uZU1hcHBlciB9IGZyb20gJy4uL2F6bWFwcGVyL0lBdmFpbGFiaWxpdHlab25lTWFwcGVyJztcbmltcG9ydCB7IEJhc2ljU2VydmljZURhc2hib2FyZCB9IGZyb20gJy4vQmFzaWNTZXJ2aWNlRGFzaGJvYXJkJztcbmltcG9ydCB7IEFwcGxpY2F0aW9uTG9hZEJhbGFuY2VyTWV0cmljcyB9IGZyb20gJy4uL21ldHJpY3MvQXBwbGljYXRpb25Mb2FkQmFsYW5jZXJNZXRyaWNzJztcbmltcG9ydCB7IE1ldHJpY3NIZWxwZXIgfSBmcm9tICcuLi91dGlsaXRpZXMvTWV0cmljc0hlbHBlcic7XG5pbXBvcnQgeyBBcHBsaWNhdGlvbkxvYWRCYWxhbmNlckxhdGVuY3lPdXRsaWVyQWxnb3JpdGhtIH0gZnJvbSAnLi4vb3V0bGllci1kZXRlY3Rpb24vQXBwbGljYXRpb25Mb2FkQmFsYW5jZXJMYXRlbmN5T3V0bGllckFsZ29yaXRobSc7XG5pbXBvcnQgeyBOYXRHYXRld2F5TWV0cmljcyB9IGZyb20gJy4uL21ldHJpY3MvTmF0R2F0ZXdheU1ldHJpY3MnO1xuaW1wb3J0IHsgQXBwbGljYXRpb25Mb2FkQmFsYW5jZXJBdmFpbGFiaWxpdHlPdXRsaWVyQWxnb3JpdGhtIH0gZnJvbSAnLi4vb3V0bGllci1kZXRlY3Rpb24vQXBwbGljYXRpb25Mb2FkQmFsYW5jZXJBdmFpbGFiaWxpdHlPdXRsaWVyQWxnb3JpdGhtJztcbmltcG9ydCB7IFBhY2tldExvc3NPdXRsaWVyQWxnb3JpdGhtIH0gZnJvbSAnLi4vb3V0bGllci1kZXRlY3Rpb24vUGFja2V0TG9zc091dGxpZXJBbGdvcml0aG0nO1xuXG4vKipcbiAqIEJhc2ljIG9ic2VydmFiaWxpdHkgZm9yIGEgc2VydmljZSB1c2luZyBtZXRyaWNzIGZyb21cbiAqIEFMQnMgYW5kIE5BVCBHYXRld2F5c1xuICovXG5leHBvcnQgY2xhc3MgQmFzaWNTZXJ2aWNlTXVsdGlBWk9ic2VydmFiaWxpdHlcbiAgZXh0ZW5kcyBDb25zdHJ1Y3RcbiAgaW1wbGVtZW50cyBJQmFzaWNTZXJ2aWNlTXVsdGlBWk9ic2VydmFiaWxpdHkge1xuICAvKipcbiAgICogVGhlIE5BVCBHYXRld2F5cyBiZWluZyB1c2VkIGluIHRoZSBzZXJ2aWNlLCBlYWNoIHNldCBvZiBOQVQgR2F0ZXdheXNcbiAgICogYXJlIGtleWVkIGJ5IHRoZWlyIEF2YWlsYWJpbGl0eSBab25lIElkXG4gICAqL1xuICBuYXRHYXRld2F5cz86IHsgW2tleTogc3RyaW5nXTogQ2ZuTmF0R2F0ZXdheVtdIH07XG5cbiAgLyoqXG4gICAqIFRoZSBhcHBsaWNhdGlvbiBsb2FkIGJhbGFuY2VycyBiZWluZyB1c2VkIGJ5IHRoZSBzZXJ2aWNlXG4gICAqL1xuICBhcHBsaWNhdGlvbkxvYWRCYWxhbmNlcnM/OiBJQXBwbGljYXRpb25Mb2FkQmFsYW5jZXJbXTtcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHNlcnZpY2VcbiAgICovXG4gIHNlcnZpY2VOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBhbGFybXMgaW5kaWNhdGluZyBpZiBhbiBBWiBpcyBhbiBvdXRsaWVyIGZvciBOQVQgR1dcbiAgICogcGFja2V0IGxvc3MgYW5kIGhhcyBpc29sYXRlZCBpbXBhY3RcbiAgICovXG4gIG5hdEdXWm9uYWxJc29sYXRlZEltcGFjdEFsYXJtcz86IHsgW2tleTogc3RyaW5nXTogSUFsYXJtIH07XG5cbiAgLyoqXG4gICAqIFRoZSBhbGFybXMgaW5kaWNhdGluZyBpZiBhbiBBWiBpcyBhbiBvdXRsaWVyIGZvciBBTEJcbiAgICogZmF1bHRzIGFuZCBoYXMgaXNvbGF0ZWQgaW1wYWN0XG4gICAqL1xuICBhbGJab25hbElzb2xhdGVkSW1wYWN0QWxhcm1zPzogeyBba2V5OiBzdHJpbmddOiBJQWxhcm0gfTtcblxuICAvKipcbiAgICogVGhlIGFsYXJtcyBpbmRpY2F0aW5nIGlmIGFuIEFaIGhhcyBpc29sYXRlZCBpbXBhY3RcbiAgICogZnJvbSBlaXRoZXIgQUxCIG9yIE5BVCBHVyBtZXRyaWNzXG4gICAqL1xuICBhZ2dyZWdhdGVab25hbElzb2xhdGVkSW1wYWN0QWxhcm1zOiB7IFtrZXk6IHN0cmluZ106IElBbGFybSB9O1xuXG4gIC8qKlxuICAgKiBUaGUgZGFzaGJvYXJkIHRoYXQgaXMgb3B0aW9uYWxseSBjcmVhdGVkXG4gICAqL1xuICBkYXNoYm9hcmQ/OiBEYXNoYm9hcmQ7XG5cbiAgLyoqXG4gICAqIFRoZSBBWiBtYXBwZXIgcmVzb3VyY2VcbiAgICovXG4gIHByaXZhdGUgX2F6TWFwcGVyOiBJQXZhaWxhYmlsaXR5Wm9uZU1hcHBlcjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgcHJvcHM6IEJhc2ljU2VydmljZU11bHRpQVpPYnNlcnZhYmlsaXR5UHJvcHMsXG4gICkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBpZiAoIShwcm9wcy5hcHBsaWNhdGlvbkxvYWRCYWxhbmNlclByb3BzKSAmJiAhKHByb3BzLm5hdEdhdGV3YXlQcm9wcykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIllvdSBtdXN0IGRlZmluZSBlaXRoZXIgQUxCcyBvciBOQVQgR2F0ZXdheXMgZm9yIHRoaXMgc2VydmljZSBpbiBvcmRlciB0byBjcmVhdGUgYSBkYXNoYm9hcmQuXCIpO1xuICAgIH1cblxuICAgIC8vIEluaXRpYWxpemUgY2xhc3MgcHJvcGVydGllc1xuICAgIHRoaXMuc2VydmljZU5hbWUgPSBwcm9wcy5zZXJ2aWNlTmFtZTtcbiAgICB0aGlzLmFwcGxpY2F0aW9uTG9hZEJhbGFuY2VycyA9IHByb3BzLmFwcGxpY2F0aW9uTG9hZEJhbGFuY2VyUHJvcHM/LmFwcGxpY2F0aW9uTG9hZEJhbGFuY2VycztcbiAgICB0aGlzLm5hdEdhdGV3YXlzID0gcHJvcHMubmF0R2F0ZXdheVByb3BzPy5uYXRHYXRld2F5cztcblxuICAgIHRoaXMuYWdncmVnYXRlWm9uYWxJc29sYXRlZEltcGFjdEFsYXJtcyA9IHt9O1xuICAgIHRoaXMuYWxiWm9uYWxJc29sYXRlZEltcGFjdEFsYXJtcyA9IHt9O1xuICAgIHRoaXMubmF0R1dab25hbElzb2xhdGVkSW1wYWN0QWxhcm1zID0ge307XG5cbiAgICAvLyBDcmVhdGUgdGhlIEFaIG1hcHBlciByZXNvdXJjZSB0byB0cmFuc2xhdGUgQVogbmFtZXMgdG8gaWRzXG4gICAgdGhpcy5fYXpNYXBwZXIgPSBuZXcgQXZhaWxhYmlsaXR5Wm9uZU1hcHBlcih0aGlzLCAnYXZhaWxhYmlsaXR5LXpvbmUtbWFwcGVyJyk7XG5cbiAgICAvLyBDcmVhdGUgQUxCIG1ldHJpY3MgYW5kIGFsYXJtcyBwZXIgQVpcbiAgICBpZiAodGhpcy5hcHBsaWNhdGlvbkxvYWRCYWxhbmNlcnMpIHtcbiAgICAgIHRoaXMuYWxiWm9uYWxJc29sYXRlZEltcGFjdEFsYXJtcyA9IHRoaXMuY3JlYXRlQWxiWm9uYWxJbXBhY3RBbGFybXMocHJvcHMpO1xuICAgIH1cblxuICAgIC8vIENyZWF0ZSBOQVQgR2F0ZXdheSBtZXRyaWNzIGFuZCBhbGFybXMgcGVyIEFaXG4gICAgaWYgKHRoaXMubmF0R2F0ZXdheXMpIHtcbiAgICAgIHRoaXMubmF0R1dab25hbElzb2xhdGVkSW1wYWN0QWxhcm1zID0gdGhpcy5jcmVhdGVOYXRHYXRld2F5Wm9uYWxJbXBhY3RBbGFybXMocHJvcHMpO1xuICAgIH1cblxuICAgIC8vIExvb2sgdGhyb3VnaCBhbGwgb2YgdGhlIHBlciBBWiBBTEIgYWxhcm1zLCBpZiB0aGVyZSdzIGFsc28gYSBOQVQgR1cgYWxhcm1cbiAgICAvLyBjcmVhdGUgYSBjb21wb3NpdGUgYWxhcm0gaWYgZWl0aGVyIG9mIHRoZW0gdHJpZ2dlclxuICAgIE9iamVjdC5rZXlzKHRoaXMuYWxiWm9uYWxJc29sYXRlZEltcGFjdEFsYXJtcykuZm9yRWFjaCgoYXpMZXR0ZXI6IHN0cmluZykgPT4ge1xuICAgICAgbGV0IGF2YWlsYWJpbGl0eVpvbmVJZCA9IHRoaXMuX2F6TWFwcGVyLmF2YWlsYWJpbGl0eVpvbmVJZEZyb21BdmFpbGFiaWxpdHlab25lTGV0dGVyKGF6TGV0dGVyKTtcbiAgICAgIGlmIChhekxldHRlciBpbiB0aGlzLm5hdEdXWm9uYWxJc29sYXRlZEltcGFjdEFsYXJtcyEpIHtcbiAgICAgICAgdGhpcy5hZ2dyZWdhdGVab25hbElzb2xhdGVkSW1wYWN0QWxhcm1zW2F6TGV0dGVyXSA9IG5ldyBDb21wb3NpdGVBbGFybSh0aGlzLCBhekxldHRlciArIFwiLWlzb2xhdGVkLWltcGFjdC1hbGFybVwiLCB7XG4gICAgICAgICAgYWxhcm1SdWxlOiBBbGFybVJ1bGUuYW55T2YodGhpcy5hbGJab25hbElzb2xhdGVkSW1wYWN0QWxhcm1zIVthekxldHRlcl0sIHRoaXMubmF0R1dab25hbElzb2xhdGVkSW1wYWN0QWxhcm1zIVthekxldHRlcl0pLFxuICAgICAgICAgIGNvbXBvc2l0ZUFsYXJtTmFtZTogYXZhaWxhYmlsaXR5Wm9uZUlkICsgXCItaXNvbGF0ZWQtaW1wYWN0LWFsYXJtXCJcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBlbHNlIHtcbiAgICAgICAgdGhpcy5hZ2dyZWdhdGVab25hbElzb2xhdGVkSW1wYWN0QWxhcm1zW2F6TGV0dGVyXSA9IG5ldyBDb21wb3NpdGVBbGFybSh0aGlzLCBhekxldHRlciArIFwiLWlzb2xhdGVkLWltcGFjdC1hbGFybVwiLCB7XG4gICAgICAgICAgYWxhcm1SdWxlOiBBbGFybVJ1bGUuYW55T2YodGhpcy5hbGJab25hbElzb2xhdGVkSW1wYWN0QWxhcm1zIVthekxldHRlcl0pLFxuICAgICAgICAgIGNvbXBvc2l0ZUFsYXJtTmFtZTogYXZhaWxhYmlsaXR5Wm9uZUlkICsgXCItaXNvbGF0ZWQtaW1wYWN0LWFsYXJtXCJcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICAvLyBMb29rIHRocm91Z2ggYWxsIG9mIHRoZSBwZXIgQVogTkFUIEdXIGFsYXJtcy4gSWYgdGhlcmUncyBhbiBBWiB3ZSBoYXZlbid0IHNlZW4gaW4gdGhlIEFMQlxuICAgIC8vIGFsYXJtcyB5ZXQsIHRoZW4gaXQgd2lsbCBqdXN0IGJlIGEgTkFUIEdXIGFsYXJtIHRoYXQgd2UnbGwgdHVybiBpbnRvIHRoZSBzYW1lIGtpbmQgb2ZcbiAgICAvLyBjb21wb3NpdGUgYWxhcm1cbiAgICBPYmplY3Qua2V5cyh0aGlzLm5hdEdXWm9uYWxJc29sYXRlZEltcGFjdEFsYXJtcykuZm9yRWFjaCgoYXpMZXR0ZXI6IHN0cmluZykgPT4ge1xuICAgICAgaWYgKCEoYXpMZXR0ZXIgaW4gdGhpcy5hZ2dyZWdhdGVab25hbElzb2xhdGVkSW1wYWN0QWxhcm1zKSkge1xuICAgICAgICBsZXQgYXZhaWxhYmlsaXR5Wm9uZUlkID0gdGhpcy5fYXpNYXBwZXIuYXZhaWxhYmlsaXR5Wm9uZUlkRnJvbUF2YWlsYWJpbGl0eVpvbmVMZXR0ZXIoYXpMZXR0ZXIpO1xuXG4gICAgICAgIHRoaXMuYWdncmVnYXRlWm9uYWxJc29sYXRlZEltcGFjdEFsYXJtc1thekxldHRlcl0gPSBuZXcgQ29tcG9zaXRlQWxhcm0odGhpcywgYXpMZXR0ZXIgKyBcIi1pc29sYXRlZC1pbXBhY3QtYWxhcm1cIiwge1xuICAgICAgICAgIGFsYXJtUnVsZTogQWxhcm1SdWxlLmFueU9mKHRoaXMubmF0R1dab25hbElzb2xhdGVkSW1wYWN0QWxhcm1zIVthekxldHRlcl0pLFxuICAgICAgICAgIGNvbXBvc2l0ZUFsYXJtTmFtZTogYXZhaWxhYmlsaXR5Wm9uZUlkICsgXCItaXNvbGF0ZWQtaW1wYWN0LWFsYXJtXCJcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgXG4gICAgLy8gU2hvdWxkIHdlIGNyZWF0ZSB0aGUgZGFzaGJvYXJkXG4gICAgaWYgKHByb3BzLmNyZWF0ZURhc2hib2FyZCA9PSB0cnVlKSB7XG4gICAgICB0aGlzLmRhc2hib2FyZCA9IG5ldyBCYXNpY1NlcnZpY2VEYXNoYm9hcmQoXG4gICAgICAgIHRoaXMsXG4gICAgICAgICdCYXNpY1NlcnZpY2VEYXNoYm9hcmQnLFxuICAgICAgICB7XG4gICAgICAgICAgc2VydmljZU5hbWU6IHByb3BzLnNlcnZpY2VOYW1lLnRvTG93ZXJDYXNlKCksXG4gICAgICAgICAgem9uYWxBZ2dyZWdhdGVJc29sYXRlZEltcGFjdEFsYXJtczpcbiAgICAgICAgICAgIHRoaXMuYWdncmVnYXRlWm9uYWxJc29sYXRlZEltcGFjdEFsYXJtcyxcbiAgICAgICAgICBpbnRlcnZhbDogcHJvcHMuaW50ZXJ2YWwsXG4gICAgICAgICAgbmF0Z3dzOiBwcm9wcy5uYXRHYXRld2F5UHJvcHMsXG4gICAgICAgICAgYWxiczogcHJvcHMuYXBwbGljYXRpb25Mb2FkQmFsYW5jZXJQcm9wcyxcbiAgICAgICAgICBwZXJpb2Q6IHByb3BzLnBlcmlvZCA/IHByb3BzLnBlcmlvZCA6IER1cmF0aW9uLm1pbnV0ZXMoMSksXG4gICAgICAgICAgYXpNYXBwZXI6IHRoaXMuX2F6TWFwcGVyXG4gICAgICAgIH0sXG4gICAgICApLmRhc2hib2FyZDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogXG4gICAqIEBwYXJhbSBwcm9wcyBcbiAgICogQHJldHVybnMgQSBjb21wb3NpdGUgYWxhcm0gcGVyIEFaIHRvIGluZGljYXRlIGlzb2xhdGVkIHpvbmFsIGltcGFjdC4gVGhlIGRpY3Rpb25hcnlcbiAgICogaXMga2V5ZWQgYnkgdGhlIGF6IGxldHRlciwgbGlrZSBcImFcIiwgXCJiXCIsIFwiY1wiLlxuICAgKi9cbiAgcHJpdmF0ZSBjcmVhdGVBbGJab25hbEltcGFjdEFsYXJtcyhcbiAgICBwcm9wczogQmFzaWNTZXJ2aWNlTXVsdGlBWk9ic2VydmFiaWxpdHlQcm9wc1xuICApIDogeyBba2V5OiBzdHJpbmddOiBJQWxhcm0gfSB7XG5cbiAgICAvLyBDcmVhdGUgaW1wYWN0IGFsYXJtcyBwZXIgQVosIHdpdGggZWFjaCBBTEIgcHJvdmlkaW5nXG4gICAgLy8gYW4gYWxhcm0gZm9yIGl0cyBBWnNcbiAgICBsZXQgcGVyQVpJbXBhY3RBbGFybXM6IHsgW2tleTogc3RyaW5nXTogSUFsYXJtW10gfSA9IHt9O1xuXG4gICAgbGV0IGtleVByZWZpeDogc3RyaW5nID0gTWV0cmljc0hlbHBlci5uZXh0Q2hhcigpO1xuXG4gICAgbGV0IGF2YWlsYWJpbGl0eU91dGxpZXJEZXRlY3Rpb25BbGdvcml0aG06IEFwcGxpY2F0aW9uTG9hZEJhbGFuY2VyQXZhaWxhYmlsaXR5T3V0bGllckFsZ29yaXRobSA9IFxuICAgICAgcHJvcHMuYXBwbGljYXRpb25Mb2FkQmFsYW5jZXJQcm9wcz8uYXZhaWxhYmlsaXR5T3V0bGllckFsZ29yaXRobSA/XG4gICAgICBwcm9wcy5hcHBsaWNhdGlvbkxvYWRCYWxhbmNlclByb3BzLmF2YWlsYWJpbGl0eU91dGxpZXJBbGdvcml0aG0gOlxuICAgICAgQXBwbGljYXRpb25Mb2FkQmFsYW5jZXJBdmFpbGFiaWxpdHlPdXRsaWVyQWxnb3JpdGhtLlNUQVRJQztcblxuICAgIGxldCBsYXRlbmN5T3V0bGllckRldGVjdGlvbkFsZ29yaXRobTogQXBwbGljYXRpb25Mb2FkQmFsYW5jZXJMYXRlbmN5T3V0bGllckFsZ29yaXRobSA9XG4gICAgICBwcm9wcy5hcHBsaWNhdGlvbkxvYWRCYWxhbmNlclByb3BzPy5sYXRlbmN5T3V0bGllckFsZ29yaXRobSA/IFxuICAgICAgcHJvcHMuYXBwbGljYXRpb25Mb2FkQmFsYW5jZXJQcm9wcy5sYXRlbmN5T3V0bGllckFsZ29yaXRobSA6XG4gICAgICBBcHBsaWNhdGlvbkxvYWRCYWxhbmNlckxhdGVuY3lPdXRsaWVyQWxnb3JpdGhtLlpfU0NPUkU7XG5cbiAgICBsZXQgYXZhaWxhYmlsaXR5T3V0bGllclRocmVzaG9sZDogbnVtYmVyO1xuICAgIGlmIChwcm9wcy5hcHBsaWNhdGlvbkxvYWRCYWxhbmNlclByb3BzPy5hdmFpbGFiaWxpdHlPdXRsaWVyVGhyZXNob2xkKSB7XG4gICAgICBhdmFpbGFiaWxpdHlPdXRsaWVyVGhyZXNob2xkID0gcHJvcHMuYXBwbGljYXRpb25Mb2FkQmFsYW5jZXJQcm9wcy5hdmFpbGFiaWxpdHlPdXRsaWVyVGhyZXNob2xkO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIHN3aXRjaCAoYXZhaWxhYmlsaXR5T3V0bGllckRldGVjdGlvbkFsZ29yaXRobSkge1xuICAgICAgICBjYXNlIEFwcGxpY2F0aW9uTG9hZEJhbGFuY2VyQXZhaWxhYmlsaXR5T3V0bGllckFsZ29yaXRobS5TVEFUSUM6XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgYXZhaWxhYmlsaXR5T3V0bGllclRocmVzaG9sZCA9IDY2O1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIGxldCBsYXRlbmN5T3V0bGllclRocmVzaG9sZDogbnVtYmVyO1xuXG4gICAgaWYgKHByb3BzLmFwcGxpY2F0aW9uTG9hZEJhbGFuY2VyUHJvcHM/LmxhdGVuY3lPdXRsaWVyVGhyZXNob2xkKSB7XG4gICAgICBsYXRlbmN5T3V0bGllclRocmVzaG9sZCA9IHByb3BzLmFwcGxpY2F0aW9uTG9hZEJhbGFuY2VyUHJvcHMubGF0ZW5jeU91dGxpZXJUaHJlc2hvbGQ7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgc3dpdGNoIChsYXRlbmN5T3V0bGllckRldGVjdGlvbkFsZ29yaXRobSkge1xuICAgICAgICBjYXNlIEFwcGxpY2F0aW9uTG9hZEJhbGFuY2VyTGF0ZW5jeU91dGxpZXJBbGdvcml0aG0uWl9TQ09SRTpcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBsYXRlbmN5T3V0bGllclRocmVzaG9sZCA9IDM7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgQXBwbGljYXRpb25Mb2FkQmFsYW5jZXJMYXRlbmN5T3V0bGllckFsZ29yaXRobS5TVEFUSUM6XG4gICAgICAgICAgbGF0ZW5jeU91dGxpZXJUaHJlc2hvbGQgPSA2NjtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBsZXQgcGVyaW9kOiBEdXJhdGlvbiA9IHByb3BzLnBlcmlvZCA/IHByb3BzLnBlcmlvZCA6IER1cmF0aW9uLm1pbnV0ZXMoMSk7XG5cbiAgICAvLyBJdGVyYXRlIGVhY2ggQUxCXG4gICAgdGhpcy5hcHBsaWNhdGlvbkxvYWRCYWxhbmNlcnMhLmZvckVhY2goKGFsYikgPT4ge1xuICAgICAgXG4gICAgICAvLyBJdGVyYXRlIGVhY2ggQVogaW4gdGhlIFZQQ1xuICAgICAgYWxiLnZwYz8uYXZhaWxhYmlsaXR5Wm9uZXMuZm9yRWFjaCgoYXopID0+IHtcblxuICAgICAgICBpZiAoIShheiBpbiBwZXJBWkltcGFjdEFsYXJtcykpIHtcbiAgICAgICAgICBwZXJBWkltcGFjdEFsYXJtc1thel0gPSBbXTtcbiAgICAgICAgfVxuICAgICBcbiAgICAgICAgLy8gR2V0IEFaIGxldHRlclxuICAgICAgICBsZXQgYXpMZXR0ZXIgPSBhei5zdWJzdHJpbmcoYXoubGVuZ3RoIC0gMSk7XG5cbiAgICAgICAgLy8gTWFwIGxldHRlciB0byBBWiBJRFxuICAgICAgICBsZXQgYXZhaWxhYmlsaXR5Wm9uZUlkOiBzdHJpbmcgPVxuICAgICAgICAgIHRoaXMuX2F6TWFwcGVyLmF2YWlsYWJpbGl0eVpvbmVJZEZyb21BdmFpbGFiaWxpdHlab25lTGV0dGVyKGF6TGV0dGVyKTtcblxuICAgICAgICAvLyBJcyB0aGVyZSBhdmFpbGFiaWxpdHkgaW1wYWN0IGluIHRoaXMgQVo/XG4gICAgICAgIGxldCBhdmFpbGFiaWxpdHlJbXBhY3Q6IElBbGFybSA9IEFwcGxpY2F0aW9uTG9hZEJhbGFuY2VyTWV0cmljcy5jcmVhdGVBWkF2YWlsYWJpbGl0eUltcGFjdEFsYXJtKFxuICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgYWxiLFxuICAgICAgICAgIGF2YWlsYWJpbGl0eVpvbmVJZCxcbiAgICAgICAgICBheixcbiAgICAgICAgICBwcm9wcy5hcHBsaWNhdGlvbkxvYWRCYWxhbmNlclByb3BzIS5mYXVsdENvdW50UGVyY2VudFRocmVzaG9sZCxcbiAgICAgICAgICBrZXlQcmVmaXgsXG4gICAgICAgICAgcGVyaW9kLFxuICAgICAgICAgIHByb3BzLmV2YWx1YXRpb25QZXJpb2RzLFxuICAgICAgICAgIHByb3BzLmRhdGFwb2ludHNUb0FsYXJtXG4gICAgICAgICk7XG5cbiAgICAgICAgLy8gSXMgdGhlcmUgbGF0ZW5jeSBpbXBhY3QgaW4gdGhpcyBBWj9cbiAgICAgICAgbGV0IGxhdGVuY3lJbXBhY3Q6IElBbGFybSA9IEFwcGxpY2F0aW9uTG9hZEJhbGFuY2VyTWV0cmljcy5jcmVhdGVBWkxhdGVuY3lJbXBhY3RBbGFybShcbiAgICAgICAgICB0aGlzLFxuICAgICAgICAgIGFsYixcbiAgICAgICAgICBhdmFpbGFiaWxpdHlab25lSWQsXG4gICAgICAgICAgYXosXG4gICAgICAgICAgKHByb3BzLmFwcGxpY2F0aW9uTG9hZEJhbGFuY2VyUHJvcHMhLmxhdGVuY3lUaHJlc2hvbGQgLyAxMDAwKSwgLy8gdGhyZXNob2xkIGlzIHByb3ZpZGVkIGluIG1pbGxpc2Vjb25kcywgYnV0IGxhdGVuY3kgaXMgcHJvdmlkZWQgaW4gc2Vjb25kc1xuICAgICAgICAgIHByb3BzLmFwcGxpY2F0aW9uTG9hZEJhbGFuY2VyUHJvcHMhLmxhdGVuY3lTdGF0aXN0aWMsXG4gICAgICAgICAga2V5UHJlZml4LFxuICAgICAgICAgIHBlcmlvZCxcbiAgICAgICAgICBwcm9wcy5ldmFsdWF0aW9uUGVyaW9kcyxcbiAgICAgICAgICBwcm9wcy5kYXRhcG9pbnRzVG9BbGFybVxuICAgICAgICApO1xuXG4gICAgICAgIC8vIElzIHRoZSBBWiBhbiBvdXRsaWVyIGZvciBmYXVsdHNcbiAgICAgICAgbGV0IGF2YWlsYWJpbGl0eU91dGxpZXIgPSBBcHBsaWNhdGlvbkxvYWRCYWxhbmNlck1ldHJpY3MuY3JlYXRlQVpBdmFpbGFiaWxpdHlPdXRsaWVyQWxhcm0oXG4gICAgICAgICAgdGhpcyxcbiAgICAgICAgICBhbGIsXG4gICAgICAgICAgYXZhaWxhYmlsaXR5T3V0bGllckRldGVjdGlvbkFsZ29yaXRobSxcbiAgICAgICAgICBhdmFpbGFiaWxpdHlab25lSWQsXG4gICAgICAgICAgYXosXG4gICAgICAgICAgYXZhaWxhYmlsaXR5T3V0bGllclRocmVzaG9sZCxcbiAgICAgICAgICBrZXlQcmVmaXgsXG4gICAgICAgICAgcGVyaW9kLFxuICAgICAgICAgIHByb3BzLmV2YWx1YXRpb25QZXJpb2RzLFxuICAgICAgICAgIHByb3BzLmRhdGFwb2ludHNUb0FsYXJtXG4gICAgICAgICk7XG5cbiAgICAgICAgLy8gSXMgdGhlIEFaIGFuIG91dGxpZXIgZm9yIGxhdGVuY3lcbiAgICAgICAgbGV0IGxhdGVuY3lPdXRsaWVyID0gQXBwbGljYXRpb25Mb2FkQmFsYW5jZXJNZXRyaWNzLmNyZWF0ZUFaTGF0ZW5jeU91dGxpZXJBbGFybShcbiAgICAgICAgICB0aGlzLFxuICAgICAgICAgIGFsYixcbiAgICAgICAgICBsYXRlbmN5T3V0bGllckRldGVjdGlvbkFsZ29yaXRobSxcbiAgICAgICAgICBheixcbiAgICAgICAgICBwcm9wcy5hcHBsaWNhdGlvbkxvYWRCYWxhbmNlclByb3BzIS5sYXRlbmN5U3RhdGlzdGljLFxuICAgICAgICAgIChwcm9wcy5hcHBsaWNhdGlvbkxvYWRCYWxhbmNlclByb3BzIS5sYXRlbmN5VGhyZXNob2xkIC8gMTAwMCksIC8vIHRocmVzaG9sZCBpcyBwcm92aWRlZCBpbiBtaWxsaXNlY29uZHMsIGJ1dCBsYXRlbmN5IGlzIHByb3ZpZGVkIGluIHNlY29uZHNcbiAgICAgICAgICBsYXRlbmN5T3V0bGllclRocmVzaG9sZCxcbiAgICAgICAgICBwZXJpb2QsXG4gICAgICAgICAgcHJvcHMuZXZhbHVhdGlvblBlcmlvZHMsXG4gICAgICAgICAgcHJvcHMuZGF0YXBvaW50c1RvQWxhcm0sXG4gICAgICAgICAgdGhpcy5fYXpNYXBwZXJcbiAgICAgICAgKTtcblxuICAgICAgICAvLyBBbGFybSBpZiB0aGUgQVogc2hvd3MgaW1wYWN0IGFuZCBpcyBhbiBvdXRsaWVyXG4gICAgICAgIGxldCBhekltcGFjdEFsYXJtOiBJQWxhcm0gPSBuZXcgQ29tcG9zaXRlQWxhcm0odGhpcywgXG4gICAgICAgICAgYXpMZXR0ZXIgKyAgXCItY29tcG9zaXRlLWltcGFjdC1hbGFybVwiLCBcbiAgICAgICAgICB7XG4gICAgICAgICAgICBhbGFybVJ1bGU6IEFsYXJtUnVsZS5hbnlPZihcbiAgICAgICAgICAgICAgQWxhcm1SdWxlLmFsbE9mKGF2YWlsYWJpbGl0eUltcGFjdCwgYXZhaWxhYmlsaXR5T3V0bGllciksIFxuICAgICAgICAgICAgICBBbGFybVJ1bGUuYWxsT2YobGF0ZW5jeUltcGFjdCwgbGF0ZW5jeU91dGxpZXIpXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgY29tcG9zaXRlQWxhcm1OYW1lOiBcbiAgICAgICAgICAgICAgYXZhaWxhYmlsaXR5Wm9uZUlkICsgXCItXCIgKyBcbiAgICAgICAgICAgICAgKGFsYiBhcyBJTG9hZEJhbGFuY2VyVjIgYXMgQmFzZUxvYWRCYWxhbmNlcikubG9hZEJhbGFuY2VyTmFtZSArIFxuICAgICAgICAgICAgICBcIi1sYXRlbmN5LW9yLWF2YWlsYWJpbGl0eS1pbXBhY3RcIixcbiAgICAgICAgICAgIGFjdGlvbnNFbmFibGVkOiBmYWxzZVxuICAgICAgICAgIH1cbiAgICAgICAgKTtcblxuICAgICAgICAvLyBBZGQgdGhpcyBBTEIncyBmYXVsdCByYXRlIGFsYXJtXG4gICAgICAgIHBlckFaSW1wYWN0QWxhcm1zW2F6XS5wdXNoKGF6SW1wYWN0QWxhcm0pO1xuXG4gICAgICAgIC8vIEdldCBuZXh0IHVuaXF1ZSBrZXlcbiAgICAgICAga2V5UHJlZml4ID0gTWV0cmljc0hlbHBlci5uZXh0Q2hhcihrZXlQcmVmaXgpO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBsZXQgYXpDb21wb3NpdGVBbGFybXM6IHtba2V5OiBzdHJpbmddOiBJQWxhcm19ID0ge307XG5cbiAgICAvLyBJdGVyYXRlIEFacyBmb3IgdGhlIEFMQiBpbXBhY3QgYWxhcm1zIHNvIHdlIGNhbiBqb2luIHRoZW1cbiAgICAvLyBpbnRvIGEgc2luZ2xlIGNvbXBvc2l0ZSBhbGFybSBmb3IgZWFjaCBBWlxuICAgIE9iamVjdC5rZXlzKHBlckFaSW1wYWN0QWxhcm1zKS5mb3JFYWNoKChheikgPT4ge1xuICAgICAgbGV0IGF6TGV0dGVyID0gYXouc3Vic3RyaW5nKGF6Lmxlbmd0aCAtIDEpO1xuICAgICAgbGV0IGF2YWlsYWJpbGl0eVpvbmVJZDogc3RyaW5nID0gdGhpcy5fYXpNYXBwZXIuYXZhaWxhYmlsaXR5Wm9uZUlkRnJvbUF2YWlsYWJpbGl0eVpvbmVMZXR0ZXIoYXpMZXR0ZXIpO1xuXG4gICAgICBhekNvbXBvc2l0ZUFsYXJtc1thekxldHRlcl0gPSBuZXcgQ29tcG9zaXRlQWxhcm0odGhpcywgYXpMZXR0ZXIgKyBcIi1hbGItaW1wYWN0LWNvbXBvc2l0ZS1hbGFybVwiLCB7XG4gICAgICAgIGFsYXJtUnVsZTogQWxhcm1SdWxlLmFueU9mKC4uLnBlckFaSW1wYWN0QWxhcm1zW2F6XSksXG4gICAgICAgIGNvbXBvc2l0ZUFsYXJtTmFtZTogYXZhaWxhYmlsaXR5Wm9uZUlkICsgXCItYWxiLWltcGFjdC1jb21wb3NpdGUtYWxhcm1cIlxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gYXpDb21wb3NpdGVBbGFybXM7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZU5hdEdhdGV3YXlab25hbEltcGFjdEFsYXJtcyhcbiAgICBwcm9wczogQmFzaWNTZXJ2aWNlTXVsdGlBWk9ic2VydmFiaWxpdHlQcm9wc1xuICApOiB7W2tleTogc3RyaW5nXTogSUFsYXJtfSB7XG5cbiAgICAvLyBDb2xsZWN0IGFsYXJtcyBmb3IgcGFja2V0IGRyb3BzIGV4Y2VlZGluZyBhIHRocmVzaG9sZCBwZXIgTkFUIEdXXG4gICAgbGV0IHBhY2tldExvc3NQZXJBWkFsYXJtczogeyBba2V5OiBzdHJpbmddOiBJQWxhcm0gfSA9IHt9O1xuXG4gICAgbGV0IHBhY2tldExvc3NPdXRsaWVyQWxnb3JpdGhtOiBQYWNrZXRMb3NzT3V0bGllckFsZ29yaXRobSA9IHByb3BzLm5hdEdhdGV3YXlQcm9wcz8ucGFja2V0TG9zc091dGxpZXJBbGdvcml0aG0gP1xuICAgICAgcHJvcHMubmF0R2F0ZXdheVByb3BzPy5wYWNrZXRMb3NzT3V0bGllckFsZ29yaXRobSA6XG4gICAgICBQYWNrZXRMb3NzT3V0bGllckFsZ29yaXRobS5TVEFUSUM7XG5cbiAgICBsZXQgcGFja2V0TG9zc1RocmVzaG9sZDogbnVtYmVyID0gcHJvcHMubmF0R2F0ZXdheVByb3BzPy5wYWNrZXRMb3NzUGVyY2VudFRocmVzaG9sZCA/IFxuICAgICAgcHJvcHMubmF0R2F0ZXdheVByb3BzLnBhY2tldExvc3NQZXJjZW50VGhyZXNob2xkIDpcbiAgICAgIDAuMDE7XG5cbiAgICBsZXQgb3V0bGllclRocmVzaG9sZDogbnVtYmVyO1xuXG4gICAgaWYgKHByb3BzLm5hdEdhdGV3YXlQcm9wcz8ucGFja2V0TG9zc091dGxpZXJUaHJlc2hvbGQpIHtcbiAgICAgIG91dGxpZXJUaHJlc2hvbGQgPSBwcm9wcy5uYXRHYXRld2F5UHJvcHMucGFja2V0TG9zc091dGxpZXJUaHJlc2hvbGQ7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgc3dpdGNoIChwYWNrZXRMb3NzT3V0bGllckFsZ29yaXRobSkge1xuICAgICAgICBjYXNlIFBhY2tldExvc3NPdXRsaWVyQWxnb3JpdGhtLlNUQVRJQzpcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBvdXRsaWVyVGhyZXNob2xkID0gNjY7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICAgICAgXG5cbiAgICBsZXQgcGVyaW9kOiBEdXJhdGlvbiA9IHByb3BzLnBlcmlvZCA/IHByb3BzLnBlcmlvZCA6IER1cmF0aW9uLm1pbnV0ZXMoMSk7XG5cbiAgICAvLyBGb3IgZWFjaCBBWiwgY3JlYXRlIG1ldHJpY3MgZm9yIGVhY2ggTkFUIEdXXG4gICAgT2JqZWN0LmtleXModGhpcy5uYXRHYXRld2F5cyEpLmZvckVhY2goKGF6OiBzdHJpbmcpID0+IHtcblxuICAgICAgbGV0IGF6TGV0dGVyOiBzdHJpbmcgPSBhei5zdWJzdHJpbmcoYXoubGVuZ3RoIC0gMSk7XG4gICAgICBsZXQgYXZhaWxhYmlsaXR5Wm9uZUlkID1cbiAgICAgICAgdGhpcy5fYXpNYXBwZXIuYXZhaWxhYmlsaXR5Wm9uZUlkRnJvbUF2YWlsYWJpbGl0eVpvbmVMZXR0ZXIoYXpMZXR0ZXIpO1xuXG4gICAgICAvLyBJcyB0aGVyZSBwYWNrZXQgbG9zcyBpbXBhY3Q/XG4gICAgICBsZXQgcGFja2V0TG9zc0ltcGFjdDogSUFsYXJtID0gTmF0R2F0ZXdheU1ldHJpY3MuaXNUaGVyZUFuQVpQYWNrZXRMb3NzSW1wYWN0TkFUR1coXG4gICAgICAgIHRoaXMsXG4gICAgICAgIHRoaXMubmF0R2F0ZXdheXMhW2F6XSxcbiAgICAgICAgYXZhaWxhYmlsaXR5Wm9uZUlkLFxuICAgICAgICBheixcbiAgICAgICAgcGFja2V0TG9zc1RocmVzaG9sZCxcbiAgICAgICAgcGVyaW9kLFxuICAgICAgICBwcm9wcy5ldmFsdWF0aW9uUGVyaW9kcyxcbiAgICAgICAgcHJvcHMuZGF0YXBvaW50c1RvQWxhcm1cbiAgICAgICk7XG5cbiAgICAgIC8vIElzIHRoaXMgQVogYW4gb3V0bGllciBmb3IgdGhpcyBOQVRHVz9cbiAgICAgIGxldCBwYWNrZXRMb3NzT3V0bGllcjogSUFsYXJtID0gTmF0R2F0ZXdheU1ldHJpY3MuaXNBWkFuT3V0bGllckZvclBhY2tldExvc3NOQVRHVyhcbiAgICAgICAgdGhpcyxcbiAgICAgICAgdGhpcy5uYXRHYXRld2F5cyEsXG4gICAgICAgIHBhY2tldExvc3NPdXRsaWVyQWxnb3JpdGhtLFxuICAgICAgICBheixcbiAgICAgICAgdGhpcy5fYXpNYXBwZXIsXG4gICAgICAgIG91dGxpZXJUaHJlc2hvbGQsXG4gICAgICAgIHByb3BzLnBlcmlvZCA/IHByb3BzLnBlcmlvZCA6IER1cmF0aW9uLm1pbnV0ZXMoMSksXG4gICAgICAgIHByb3BzLmV2YWx1YXRpb25QZXJpb2RzLFxuICAgICAgICBwcm9wcy5kYXRhcG9pbnRzVG9BbGFybVxuICAgICAgKTtcblxuICAgICAgcGFja2V0TG9zc1BlckFaQWxhcm1zW2F6TGV0dGVyXSA9IG5ldyBDb21wb3NpdGVBbGFybSh0aGlzLCBhei5zdWJzdHJpbmcoYXoubGVuZ3RoIC0gMSkgKyBcIi1wYWNrZXQtbG9zcy1jb21wb3NpdGUtYWxhcm1cIiwge1xuICAgICAgICBhbGFybVJ1bGU6IEFsYXJtUnVsZS5hbGxPZihwYWNrZXRMb3NzSW1wYWN0LCBwYWNrZXRMb3NzT3V0bGllciksXG4gICAgICAgIGNvbXBvc2l0ZUFsYXJtTmFtZTogYXZhaWxhYmlsaXR5Wm9uZUlkICsgXCItcGFja2V0LWxvc3MtY29tcG9zaXRlLWFsYXJtXCJcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHBhY2tldExvc3NQZXJBWkFsYXJtcztcbiAgfVxufVxuIl19
219
+ BasicServiceMultiAZObservability[_a] = { fqn: "@cdklabs/multi-az-observability.BasicServiceMultiAZObservability", version: "0.0.1-alpha.40" };
220
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmFzaWNTZXJ2aWNlTXVsdGlBWk9ic2VydmFiaWxpdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYmFzaWNfb2JzZXJ2YWJpbGl0eS9CYXNpY1NlcnZpY2VNdWx0aUFaT2JzZXJ2YWJpbGl0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHFFQUFxRTtBQUNyRSxzQ0FBc0M7QUFFdEMsNkNBQXVDO0FBQ3ZDLCtEQUtvQztBQU9wQywyQ0FBdUM7QUFHdkMsK0VBQTRFO0FBRTVFLG1FQUFnRTtBQUNoRSw4RkFBMkY7QUFDM0YsOERBQTJEO0FBQzNELHdJQUFxSTtBQUNySSxvRUFBaUU7QUFDakUsa0pBQStJO0FBQy9JLGdHQUE2RjtBQUU3Rjs7O0dBR0c7QUFDSCxNQUFhLGdDQUNYLFNBQVEsc0JBQVM7SUE4Q2pCLFlBQ0UsS0FBZ0IsRUFDaEIsRUFBVSxFQUNWLEtBQTRDO1FBRTVDLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLDRCQUE0QixDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDO1lBQ3RFLE1BQU0sSUFBSSxLQUFLLENBQUMsOEZBQThGLENBQUMsQ0FBQztRQUNsSCxDQUFDO1FBRUQsOEJBQThCO1FBQzlCLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQztRQUNyQyxJQUFJLENBQUMsd0JBQXdCLEdBQUcsS0FBSyxDQUFDLDRCQUE0QixFQUFFLHdCQUF3QixDQUFDO1FBQzdGLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDLGVBQWUsRUFBRSxXQUFXLENBQUM7UUFFdEQsSUFBSSxDQUFDLGtDQUFrQyxHQUFHLEVBQUUsQ0FBQztRQUM3QyxJQUFJLENBQUMsNEJBQTRCLEdBQUcsRUFBRSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyw4QkFBOEIsR0FBRyxFQUFFLENB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QUcsQ0FBQyxDQUFDLEdBQUcsOEJBQThCLEVBQUU7Z0JBQ3ZILFNBQVMsRUFBRSwwQkFBUyxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxpQkFBaUIsQ0FBQztnQkFDL0Qsa0JBQWtCLEVBQUUsa0JBQWtCLEdBQUcsOEJBQThCO2FBQ3hFLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxxQkFBcUIsQ0FBQztJQUMvQixDQUFDOztBQXRYSCw0RUF1WEMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbmltcG9ydCB7IER1cmF0aW9uIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHtcbiAgQWxhcm1SdWxlLFxuICBDb21wb3NpdGVBbGFybSxcbiAgRGFzaGJvYXJkLFxuICBJQWxhcm1cbn0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWNsb3Vkd2F0Y2gnO1xuaW1wb3J0IHsgQ2ZuTmF0R2F0ZXdheSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1lYzInO1xuaW1wb3J0IHtcbiAgQmFzZUxvYWRCYWxhbmNlcixcbiAgSUFwcGxpY2F0aW9uTG9hZEJhbGFuY2VyLFxuICBJTG9hZEJhbGFuY2VyVjIsXG59IGZyb20gJ2F3cy1jZGstbGliL2F3cy1lbGFzdGljbG9hZGJhbGFuY2luZ3YyJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgSUJhc2ljU2VydmljZU11bHRpQVpPYnNlcnZhYmlsaXR5IH0gZnJvbSAnLi9JQmFzaWNTZXJ2aWNlTXVsdGlBWk9ic2VydmFiaWxpdHknO1xuaW1wb3J0IHsgQmFzaWNTZXJ2aWNlTXVsdGlBWk9ic2VydmFiaWxpdHlQcm9wcyB9IGZyb20gJy4vcHJvcHMvQmFzaWNTZXJ2aWNlTXVsdGlBWk9ic2VydmFiaWxpdHlQcm9wcyc7XG5pbXBvcnQgeyBBdmFpbGFiaWxpdHlab25lTWFwcGVyIH0gZnJvbSAnLi4vYXptYXBwZXIvQXZhaWxhYmlsaXR5Wm9uZU1hcHBlcic7XG5pbXBvcnQgeyBJQXZhaWxhYmlsaXR5Wm9uZU1hcHBlciB9IGZyb20gJy4uL2F6bWFwcGVyL0lBdmFpbGFiaWxpdHlab25lTWFwcGVyJztcbmltcG9ydCB7IEJhc2ljU2VydmljZURhc2hib2FyZCB9IGZyb20gJy4vQmFzaWNTZXJ2aWNlRGFzaGJvYXJkJztcbmltcG9ydCB7IEFwcGxpY2F0aW9uTG9hZEJhbGFuY2VyTWV0cmljcyB9IGZyb20gJy4uL21ldHJpY3MvQXBwbGljYXRpb25Mb2FkQmFsYW5jZXJNZXRyaWNzJztcbmltcG9ydCB7IE1ldHJpY3NIZWxwZXIgfSBmcm9tICcuLi91dGlsaXRpZXMvTWV0cmljc0hlbHBlcic7XG5pbXBvcnQgeyBBcHBsaWNhdGlvbkxvYWRCYWxhbmNlckxhdGVuY3lPdXRsaWVyQWxnb3JpdGhtIH0gZnJvbSAnLi4vb3V0bGllci1kZXRlY3Rpb24vQXBwbGljYXRpb25Mb2FkQmFsYW5jZXJMYXRlbmN5T3V0bGllckFsZ29yaXRobSc7XG5pbXBvcnQgeyBOYXRHYXRld2F5TWV0cmljcyB9IGZyb20gJy4uL21ldHJpY3MvTmF0R2F0ZXdheU1ldHJpY3MnO1xuaW1wb3J0IHsgQXBwbGljYXRpb25Mb2FkQmFsYW5jZXJBdmFpbGFiaWxpdHlPdXRsaWVyQWxnb3JpdGhtIH0gZnJvbSAnLi4vb3V0bGllci1kZXRlY3Rpb24vQXBwbGljYXRpb25Mb2FkQmFsYW5jZXJBdmFpbGFiaWxpdHlPdXRsaWVyQWxnb3JpdGhtJztcbmltcG9ydCB7IFBhY2tldExvc3NPdXRsaWVyQWxnb3JpdGhtIH0gZnJvbSAnLi4vb3V0bGllci1kZXRlY3Rpb24vUGFja2V0TG9zc091dGxpZXJBbGdvcml0aG0nO1xuXG4vKipcbiAqIEJhc2ljIG9ic2VydmFiaWxpdHkgZm9yIGEgc2VydmljZSB1c2luZyBtZXRyaWNzIGZyb21cbiAqIEFMQnMgYW5kIE5BVCBHYXRld2F5c1xuICovXG5leHBvcnQgY2xhc3MgQmFzaWNTZXJ2aWNlTXVsdGlBWk9ic2VydmFiaWxpdHlcbiAgZXh0ZW5kcyBDb25zdHJ1Y3RcbiAgaW1wbGVtZW50cyBJQmFzaWNTZXJ2aWNlTXVsdGlBWk9ic2VydmFiaWxpdHkge1xuICAvKipcbiAgICogVGhlIE5BVCBHYXRld2F5cyBiZWluZyB1c2VkIGluIHRoZSBzZXJ2aWNlLCBlYWNoIHNldCBvZiBOQVQgR2F0ZXdheXNcbiAgICogYXJlIGtleWVkIGJ5IHRoZWlyIEF2YWlsYWJpbGl0eSBab25lIElkXG4gICAqL1xuICBuYXRHYXRld2F5cz86IHsgW2tleTogc3RyaW5nXTogQ2ZuTmF0R2F0ZXdheVtdIH07XG5cbiAgLyoqXG4gICAqIFRoZSBhcHBsaWNhdGlvbiBsb2FkIGJhbGFuY2VycyBiZWluZyB1c2VkIGJ5IHRoZSBzZXJ2aWNlXG4gICAqL1xuICBhcHBsaWNhdGlvbkxvYWRCYWxhbmNlcnM/OiBJQXBwbGljYXRpb25Mb2FkQmFsYW5jZXJbXTtcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHNlcnZpY2VcbiAgICovXG4gIHNlcnZpY2VOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBhbGFybXMgaW5kaWNhdGluZyBpZiBhbiBBWiBpcyBhbiBvdXRsaWVyIGZvciBOQVQgR1dcbiAgICogcGFja2V0IGxvc3MgYW5kIGhhcyBpc29sYXRlZCBpbXBhY3RcbiAgICovXG4gIG5hdEdXWm9uYWxJc29sYXRlZEltcGFjdEFsYXJtcz86IHsgW2tleTogc3RyaW5nXTogSUFsYXJtIH07XG5cbiAgLyoqXG4gICAqIFRoZSBhbGFybXMgaW5kaWNhdGluZyBpZiBhbiBBWiBpcyBhbiBvdXRsaWVyIGZvciBBTEJcbiAgICogZmF1bHRzIGFuZCBoYXMgaXNvbGF0ZWQgaW1wYWN0XG4gICAqL1xuICBhbGJab25hbElzb2xhdGVkSW1wYWN0QWxhcm1zPzogeyBba2V5OiBzdHJpbmddOiBJQWxhcm0gfTtcblxuICAvKipcbiAgICogVGhlIGFsYXJtcyBpbmRpY2F0aW5nIGlmIGFuIEFaIGhhcyBpc29sYXRlZCBpbXBhY3RcbiAgICogZnJvbSBlaXRoZXIgQUxCIG9yIE5BVCBHVyBtZXRyaWNzXG4gICAqL1xuICBhZ2dyZWdhdGVab25hbElzb2xhdGVkSW1wYWN0QWxhcm1zOiB7IFtrZXk6IHN0cmluZ106IElBbGFybSB9O1xuXG4gIC8qKlxuICAgKiBUaGUgZGFzaGJvYXJkIHRoYXQgaXMgb3B0aW9uYWxseSBjcmVhdGVkXG4gICAqL1xuICBkYXNoYm9hcmQ/OiBEYXNoYm9hcmQ7XG5cbiAgLyoqXG4gICAqIFRoZSBBWiBtYXBwZXIgcmVzb3VyY2VcbiAgICovXG4gIHByaXZhdGUgX2F6TWFwcGVyOiBJQXZhaWxhYmlsaXR5Wm9uZU1hcHBlcjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgcHJvcHM6IEJhc2ljU2VydmljZU11bHRpQVpPYnNlcnZhYmlsaXR5UHJvcHMsXG4gICkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBpZiAoIShwcm9wcy5hcHBsaWNhdGlvbkxvYWRCYWxhbmNlclByb3BzKSAmJiAhKHByb3BzLm5hdEdhdGV3YXlQcm9wcykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIllvdSBtdXN0IGRlZmluZSBlaXRoZXIgQUxCcyBvciBOQVQgR2F0ZXdheXMgZm9yIHRoaXMgc2VydmljZSBpbiBvcmRlciB0byBjcmVhdGUgYSBkYXNoYm9hcmQuXCIpO1xuICAgIH1cblxuICAgIC8vIEluaXRpYWxpemUgY2xhc3MgcHJvcGVydGllc1xuICAgIHRoaXMuc2VydmljZU5hbWUgPSBwcm9wcy5zZXJ2aWNlTmFtZTtcbiAgICB0aGlzLmFwcGxpY2F0aW9uTG9hZEJhbGFuY2VycyA9IHByb3BzLmFwcGxpY2F0aW9uTG9hZEJhbGFuY2VyUHJvcHM/LmFwcGxpY2F0aW9uTG9hZEJhbGFuY2VycztcbiAgICB0aGlzLm5hdEdhdGV3YXlzID0gcHJvcHMubmF0R2F0ZXdheVByb3BzPy5uYXRHYXRld2F5cztcblxuICAgIHRoaXMuYWdncmVnYXRlWm9uYWxJc29sYXRlZEltcGFjdEFsYXJtcyA9IHt9O1xuICAgIHRoaXMuYWxiWm9uYWxJc29sYXRlZEltcGFjdEFsYXJtcyA9IHt9O1xuICAgIHRoaXMubmF0R1dab25hbElzb2xhdGVkSW1wYWN0QWxhcm1zID0ge307XG5cbiAgICAvLyBDcmVhdGUgdGhlIEFaIG1hcHBlciByZXNvdXJjZSB0byB0cmFuc2xhdGUgQVogbmFtZXMgdG8gaWRzXG4gICAgdGhpcy5fYXpNYXBwZXIgPSBuZXcgQXZhaWxhYmlsaXR5Wm9uZU1hcHBlcih0aGlzLCAnYXZhaWxhYmlsaXR5LXpvbmUtbWFwcGVyJyk7XG5cbiAgICAvLyBDcmVhdGUgQUxCIG1ldHJpY3MgYW5kIGFsYXJtcyBwZXIgQVpcbiAgICBpZiAodGhpcy5hcHBsaWNhdGlvbkxvYWRCYWxhbmNlcnMpIHtcbiAgICAgIHRoaXMuYWxiWm9uYWxJc29sYXRlZEltcGFjdEFsYXJtcyA9IHRoaXMuY3JlYXRlQWxiWm9uYWxJbXBhY3RBbGFybXMocHJvcHMpO1xuICAgIH1cblxuICAgIC8vIENyZWF0ZSBOQVQgR2F0ZXdheSBtZXRyaWNzIGFuZCBhbGFybXMgcGVyIEFaXG4gICAgaWYgKHRoaXMubmF0R2F0ZXdheXMpIHtcbiAgICAgIHRoaXMubmF0R1dab25hbElzb2xhdGVkSW1wYWN0QWxhcm1zID0gdGhpcy5jcmVhdGVOYXRHYXRld2F5Wm9uYWxJbXBhY3RBbGFybXMocHJvcHMpO1xuICAgIH1cblxuICAgIC8vIExvb2sgdGhyb3VnaCBhbGwgb2YgdGhlIHBlciBBWiBBTEIgYWxhcm1zLCBpZiB0aGVyZSdzIGFsc28gYSBOQVQgR1cgYWxhcm1cbiAgICAvLyBjcmVhdGUgYSBjb21wb3NpdGUgYWxhcm0gaWYgZWl0aGVyIG9mIHRoZW0gdHJpZ2dlclxuICAgIE9iamVjdC5rZXlzKHRoaXMuYWxiWm9uYWxJc29sYXRlZEltcGFjdEFsYXJtcykuZm9yRWFjaCgoYXpMZXR0ZXI6IHN0cmluZykgPT4ge1xuICAgICAgbGV0IGF2YWlsYWJpbGl0eVpvbmVJZCA9IHRoaXMuX2F6TWFwcGVyLmF2YWlsYWJpbGl0eVpvbmVJZEZyb21BdmFpbGFiaWxpdHlab25lTGV0dGVyKGF6TGV0dGVyKTtcbiAgICAgIGlmIChhekxldHRlciBpbiB0aGlzLm5hdEdXWm9uYWxJc29sYXRlZEltcGFjdEFsYXJtcyEpIHtcbiAgICAgICAgdGhpcy5hZ2dyZWdhdGVab25hbElzb2xhdGVkSW1wYWN0QWxhcm1zW2F6TGV0dGVyXSA9IG5ldyBDb21wb3NpdGVBbGFybSh0aGlzLCBhekxldHRlciArIFwiLWlzb2xhdGVkLWltcGFjdC1hbGFybVwiLCB7XG4gICAgICAgICAgYWxhcm1SdWxlOiBBbGFybVJ1bGUuYW55T2YodGhpcy5hbGJab25hbElzb2xhdGVkSW1wYWN0QWxhcm1zIVthekxldHRlcl0sIHRoaXMubmF0R1dab25hbElzb2xhdGVkSW1wYWN0QWxhcm1zIVthekxldHRlcl0pLFxuICAgICAgICAgIGNvbXBvc2l0ZUFsYXJtTmFtZTogYXZhaWxhYmlsaXR5Wm9uZUlkICsgXCItaXNvbGF0ZWQtaW1wYWN0LWFsYXJtXCJcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBlbHNlIHtcbiAgICAgICAgdGhpcy5hZ2dyZWdhdGVab25hbElzb2xhdGVkSW1wYWN0QWxhcm1zW2F6TGV0dGVyXSA9IG5ldyBDb21wb3NpdGVBbGFybSh0aGlzLCBhekxldHRlciArIFwiLWlzb2xhdGVkLWltcGFjdC1hbGFybVwiLCB7XG4gICAgICAgICAgYWxhcm1SdWxlOiBBbGFybVJ1bGUuYW55T2YodGhpcy5hbGJab25hbElzb2xhdGVkSW1wYWN0QWxhcm1zIVthekxldHRlcl0pLFxuICAgICAgICAgIGNvbXBvc2l0ZUFsYXJtTmFtZTogYXZhaWxhYmlsaXR5Wm9uZUlkICsgXCItaXNvbGF0ZWQtaW1wYWN0LWFsYXJtXCJcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICAvLyBMb29rIHRocm91Z2ggYWxsIG9mIHRoZSBwZXIgQVogTkFUIEdXIGFsYXJtcy4gSWYgdGhlcmUncyBhbiBBWiB3ZSBoYXZlbid0IHNlZW4gaW4gdGhlIEFMQlxuICAgIC8vIGFsYXJtcyB5ZXQsIHRoZW4gaXQgd2lsbCBqdXN0IGJlIGEgTkFUIEdXIGFsYXJtIHRoYXQgd2UnbGwgdHVybiBpbnRvIHRoZSBzYW1lIGtpbmQgb2ZcbiAgICAvLyBjb21wb3NpdGUgYWxhcm1cbiAgICBPYmplY3Qua2V5cyh0aGlzLm5hdEdXWm9uYWxJc29sYXRlZEltcGFjdEFsYXJtcykuZm9yRWFjaCgoYXpMZXR0ZXI6IHN0cmluZykgPT4ge1xuICAgICAgaWYgKCEoYXpMZXR0ZXIgaW4gdGhpcy5hZ2dyZWdhdGVab25hbElzb2xhdGVkSW1wYWN0QWxhcm1zKSkge1xuICAgICAgICBsZXQgYXZhaWxhYmlsaXR5Wm9uZUlkID0gdGhpcy5fYXpNYXBwZXIuYXZhaWxhYmlsaXR5Wm9uZUlkRnJvbUF2YWlsYWJpbGl0eVpvbmVMZXR0ZXIoYXpMZXR0ZXIpO1xuXG4gICAgICAgIHRoaXMuYWdncmVnYXRlWm9uYWxJc29sYXRlZEltcGFjdEFsYXJtc1thekxldHRlcl0gPSBuZXcgQ29tcG9zaXRlQWxhcm0odGhpcywgYXpMZXR0ZXIgKyBcIi1pc29sYXRlZC1pbXBhY3QtYWxhcm1cIiwge1xuICAgICAgICAgIGFsYXJtUnVsZTogQWxhcm1SdWxlLmFueU9mKHRoaXMubmF0R1dab25hbElzb2xhdGVkSW1wYWN0QWxhcm1zIVthekxldHRlcl0pLFxuICAgICAgICAgIGNvbXBvc2l0ZUFsYXJtTmFtZTogYXZhaWxhYmlsaXR5Wm9uZUlkICsgXCItaXNvbGF0ZWQtaW1wYWN0LWFsYXJtXCJcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgXG4gICAgLy8gU2hvdWxkIHdlIGNyZWF0ZSB0aGUgZGFzaGJvYXJkXG4gICAgaWYgKHByb3BzLmNyZWF0ZURhc2hib2FyZCA9PSB0cnVlKSB7XG4gICAgICB0aGlzLmRhc2hib2FyZCA9IG5ldyBCYXNpY1NlcnZpY2VEYXNoYm9hcmQoXG4gICAgICAgIHRoaXMsXG4gICAgICAgICdCYXNpY1NlcnZpY2VEYXNoYm9hcmQnLFxuICAgICAgICB7XG4gICAgICAgICAgc2VydmljZU5hbWU6IHByb3BzLnNlcnZpY2VOYW1lLnRvTG93ZXJDYXNlKCksXG4gICAgICAgICAgem9uYWxBZ2dyZWdhdGVJc29sYXRlZEltcGFjdEFsYXJtczpcbiAgICAgICAgICAgIHRoaXMuYWdncmVnYXRlWm9uYWxJc29sYXRlZEltcGFjdEFsYXJtcyxcbiAgICAgICAgICBpbnRlcnZhbDogcHJvcHMuaW50ZXJ2YWwsXG4gICAgICAgICAgbmF0Z3dzOiBwcm9wcy5uYXRHYXRld2F5UHJvcHMsXG4gICAgICAgICAgYWxiczogcHJvcHMuYXBwbGljYXRpb25Mb2FkQmFsYW5jZXJQcm9wcyxcbiAgICAgICAgICBwZXJpb2Q6IHByb3BzLnBlcmlvZCA/IHByb3BzLnBlcmlvZCA6IER1cmF0aW9uLm1pbnV0ZXMoMSksXG4gICAgICAgICAgYXpNYXBwZXI6IHRoaXMuX2F6TWFwcGVyXG4gICAgICAgIH0sXG4gICAgICApLmRhc2hib2FyZDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogXG4gICAqIEBwYXJhbSBwcm9wcyBcbiAgICogQHJldHVybnMgQSBjb21wb3NpdGUgYWxhcm0gcGVyIEFaIHRvIGluZGljYXRlIGlzb2xhdGVkIHpvbmFsIGltcGFjdC4gVGhlIGRpY3Rpb25hcnlcbiAgICogaXMga2V5ZWQgYnkgdGhlIGF6IGxldHRlciwgbGlrZSBcImFcIiwgXCJiXCIsIFwiY1wiLlxuICAgKi9cbiAgcHJpdmF0ZSBjcmVhdGVBbGJab25hbEltcGFjdEFsYXJtcyhcbiAgICBwcm9wczogQmFzaWNTZXJ2aWNlTXVsdGlBWk9ic2VydmFiaWxpdHlQcm9wc1xuICApIDogeyBba2V5OiBzdHJpbmddOiBJQWxhcm0gfSB7XG5cbiAgICAvLyBDcmVhdGUgaW1wYWN0IGFsYXJtcyBwZXIgQVosIHdpdGggZWFjaCBBTEIgcHJvdmlkaW5nXG4gICAgLy8gYW4gYWxhcm0gZm9yIGl0cyBBWnNcbiAgICBsZXQgcGVyQVpJbXBhY3RBbGFybXM6IHsgW2tleTogc3RyaW5nXTogSUFsYXJtW10gfSA9IHt9O1xuXG4gICAgbGV0IGtleVByZWZpeDogc3RyaW5nID0gTWV0cmljc0hlbHBlci5uZXh0Q2hhcigpO1xuXG4gICAgbGV0IGF2YWlsYWJpbGl0eU91dGxpZXJEZXRlY3Rpb25BbGdvcml0aG06IEFwcGxpY2F0aW9uTG9hZEJhbGFuY2VyQXZhaWxhYmlsaXR5T3V0bGllckFsZ29yaXRobSA9IFxuICAgICAgcHJvcHMuYXBwbGljYXRpb25Mb2FkQmFsYW5jZXJQcm9wcz8uYXZhaWxhYmlsaXR5T3V0bGllckFsZ29yaXRobSA/XG4gICAgICBwcm9wcy5hcHBsaWNhdGlvbkxvYWRCYWxhbmNlclByb3BzLmF2YWlsYWJpbGl0eU91dGxpZXJBbGdvcml0aG0gOlxuICAgICAgQXBwbGljYXRpb25Mb2FkQmFsYW5jZXJBdmFpbGFiaWxpdHlPdXRsaWVyQWxnb3JpdGhtLlNUQVRJQztcblxuICAgIGxldCBsYXRlbmN5T3V0bGllckRldGVjdGlvbkFsZ29yaXRobTogQXBwbGljYXRpb25Mb2FkQmFsYW5jZXJMYXRlbmN5T3V0bGllckFsZ29yaXRobSA9XG4gICAgICBwcm9wcy5hcHBsaWNhdGlvbkxvYWRCYWxhbmNlclByb3BzPy5sYXRlbmN5T3V0bGllckFsZ29yaXRobSA/IFxuICAgICAgcHJvcHMuYXBwbGljYXRpb25Mb2FkQmFsYW5jZXJQcm9wcy5sYXRlbmN5T3V0bGllckFsZ29yaXRobSA6XG4gICAgICBBcHBsaWNhdGlvbkxvYWRCYWxhbmNlckxhdGVuY3lPdXRsaWVyQWxnb3JpdGhtLlpfU0NPUkU7XG5cbiAgICBsZXQgYXZhaWxhYmlsaXR5T3V0bGllclRocmVzaG9sZDogbnVtYmVyO1xuICAgIGlmIChwcm9wcy5hcHBsaWNhdGlvbkxvYWRCYWxhbmNlclByb3BzPy5hdmFpbGFiaWxpdHlPdXRsaWVyVGhyZXNob2xkKSB7XG4gICAgICBhdmFpbGFiaWxpdHlPdXRsaWVyVGhyZXNob2xkID0gcHJvcHMuYXBwbGljYXRpb25Mb2FkQmFsYW5jZXJQcm9wcy5hdmFpbGFiaWxpdHlPdXRsaWVyVGhyZXNob2xkO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIHN3aXRjaCAoYXZhaWxhYmlsaXR5T3V0bGllckRldGVjdGlvbkFsZ29yaXRobSkge1xuICAgICAgICBjYXNlIEFwcGxpY2F0aW9uTG9hZEJhbGFuY2VyQXZhaWxhYmlsaXR5T3V0bGllckFsZ29yaXRobS5TVEFUSUM6XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgYXZhaWxhYmlsaXR5T3V0bGllclRocmVzaG9sZCA9IDY2O1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIGxldCBsYXRlbmN5T3V0bGllclRocmVzaG9sZDogbnVtYmVyO1xuXG4gICAgaWYgKHByb3BzLmFwcGxpY2F0aW9uTG9hZEJhbGFuY2VyUHJvcHM/LmxhdGVuY3lPdXRsaWVyVGhyZXNob2xkKSB7XG4gICAgICBsYXRlbmN5T3V0bGllclRocmVzaG9sZCA9IHByb3BzLmFwcGxpY2F0aW9uTG9hZEJhbGFuY2VyUHJvcHMubGF0ZW5jeU91dGxpZXJUaHJlc2hvbGQ7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgc3dpdGNoIChsYXRlbmN5T3V0bGllckRldGVjdGlvbkFsZ29yaXRobSkge1xuICAgICAgICBjYXNlIEFwcGxpY2F0aW9uTG9hZEJhbGFuY2VyTGF0ZW5jeU91dGxpZXJBbGdvcml0aG0uWl9TQ09SRTpcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBsYXRlbmN5T3V0bGllclRocmVzaG9sZCA9IDM7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgQXBwbGljYXRpb25Mb2FkQmFsYW5jZXJMYXRlbmN5T3V0bGllckFsZ29yaXRobS5TVEFUSUM6XG4gICAgICAgICAgbGF0ZW5jeU91dGxpZXJUaHJlc2hvbGQgPSA2NjtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBsZXQgcGVyaW9kOiBEdXJhdGlvbiA9IHByb3BzLnBlcmlvZCA/IHByb3BzLnBlcmlvZCA6IER1cmF0aW9uLm1pbnV0ZXMoMSk7XG5cbiAgICAvLyBJdGVyYXRlIGVhY2ggQUxCXG4gICAgdGhpcy5hcHBsaWNhdGlvbkxvYWRCYWxhbmNlcnMhLmZvckVhY2goKGFsYikgPT4ge1xuICAgICAgXG4gICAgICAvLyBJdGVyYXRlIGVhY2ggQVogaW4gdGhlIFZQQ1xuICAgICAgYWxiLnZwYz8uYXZhaWxhYmlsaXR5Wm9uZXMuZm9yRWFjaCgoYXopID0+IHtcblxuICAgICAgICBpZiAoIShheiBpbiBwZXJBWkltcGFjdEFsYXJtcykpIHtcbiAgICAgICAgICBwZXJBWkltcGFjdEFsYXJtc1thel0gPSBbXTtcbiAgICAgICAgfVxuICAgICBcbiAgICAgICAgLy8gR2V0IEFaIGxldHRlclxuICAgICAgICBsZXQgYXpMZXR0ZXIgPSBhei5zdWJzdHJpbmcoYXoubGVuZ3RoIC0gMSk7XG5cbiAgICAgICAgLy8gTWFwIGxldHRlciB0byBBWiBJRFxuICAgICAgICBsZXQgYXZhaWxhYmlsaXR5Wm9uZUlkOiBzdHJpbmcgPVxuICAgICAgICAgIHRoaXMuX2F6TWFwcGVyLmF2YWlsYWJpbGl0eVpvbmVJZEZyb21BdmFpbGFiaWxpdHlab25lTGV0dGVyKGF6TGV0dGVyKTtcblxuICAgICAgICAvLyBJcyB0aGVyZSBhdmFpbGFiaWxpdHkgaW1wYWN0IGluIHRoaXMgQVo/XG4gICAgICAgIGxldCBhdmFpbGFiaWxpdHlJbXBhY3Q6IElBbGFybSA9IEFwcGxpY2F0aW9uTG9hZEJhbGFuY2VyTWV0cmljcy5jcmVhdGVBWkF2YWlsYWJpbGl0eUltcGFjdEFsYXJtKFxuICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgYWxiLFxuICAgICAgICAgIGF2YWlsYWJpbGl0eVpvbmVJZCxcbiAgICAgICAgICBheixcbiAgICAgICAgICBwcm9wcy5hcHBsaWNhdGlvbkxvYWRCYWxhbmNlclByb3BzIS5mYXVsdENvdW50UGVyY2VudFRocmVzaG9sZCxcbiAgICAgICAgICBrZXlQcmVmaXgsXG4gICAgICAgICAgcGVyaW9kLFxuICAgICAgICAgIHByb3BzLmV2YWx1YXRpb25QZXJpb2RzLFxuICAgICAgICAgIHByb3BzLmRhdGFwb2ludHNUb0FsYXJtXG4gICAgICAgICk7XG5cbiAgICAgICAgLy8gSXMgdGhlcmUgbGF0ZW5jeSBpbXBhY3QgaW4gdGhpcyBBWj9cbiAgICAgICAgbGV0IGxhdGVuY3lJbXBhY3Q6IElBbGFybSA9IEFwcGxpY2F0aW9uTG9hZEJhbGFuY2VyTWV0cmljcy5jcmVhdGVBWkxhdGVuY3lJbXBhY3RBbGFybShcbiAgICAgICAgICB0aGlzLFxuICAgICAgICAgIGFsYixcbiAgICAgICAgICBhdmFpbGFiaWxpdHlab25lSWQsXG4gICAgICAgICAgYXosXG4gICAgICAgICAgcHJvcHMuYXBwbGljYXRpb25Mb2FkQmFsYW5jZXJQcm9wcyEubGF0ZW5jeVRocmVzaG9sZCxcbiAgICAgICAgICBwcm9wcy5hcHBsaWNhdGlvbkxvYWRCYWxhbmNlclByb3BzIS5sYXRlbmN5U3RhdGlzdGljLFxuICAgICAgICAgIGtleVByZWZpeCxcbiAgICAgICAgICBwZXJpb2QsXG4gICAgICAgICAgcHJvcHMuZXZhbHVhdGlvblBlcmlvZHMsXG4gICAgICAgICAgcHJvcHMuZGF0YXBvaW50c1RvQWxhcm1cbiAgICAgICAgKTtcblxuICAgICAgICAvLyBJcyB0aGUgQVogYW4gb3V0bGllciBmb3IgZmF1bHRzXG4gICAgICAgIGxldCBhdmFpbGFiaWxpdHlPdXRsaWVyID0gQXBwbGljYXRpb25Mb2FkQmFsYW5jZXJNZXRyaWNzLmNyZWF0ZUFaQXZhaWxhYmlsaXR5T3V0bGllckFsYXJtKFxuICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgYWxiLFxuICAgICAgICAgIGF2YWlsYWJpbGl0eU91dGxpZXJEZXRlY3Rpb25BbGdvcml0aG0sXG4gICAgICAgICAgYXZhaWxhYmlsaXR5Wm9uZUlkLFxuICAgICAgICAgIGF6LFxuICAgICAgICAgIGF2YWlsYWJpbGl0eU91dGxpZXJUaHJlc2hvbGQsXG4gICAgICAgICAga2V5UHJlZml4LFxuICAgICAgICAgIHBlcmlvZCxcbiAgICAgICAgICBwcm9wcy5ldmFsdWF0aW9uUGVyaW9kcyxcbiAgICAgICAgICBwcm9wcy5kYXRhcG9pbnRzVG9BbGFybVxuICAgICAgICApO1xuXG4gICAgICAgIC8vIElzIHRoZSBBWiBhbiBvdXRsaWVyIGZvciBsYXRlbmN5XG4gICAgICAgIGxldCBsYXRlbmN5T3V0bGllciA9IEFwcGxpY2F0aW9uTG9hZEJhbGFuY2VyTWV0cmljcy5jcmVhdGVBWkxhdGVuY3lPdXRsaWVyQWxhcm0oXG4gICAgICAgICAgdGhpcyxcbiAgICAgICAgICBhbGIsXG4gICAgICAgICAgbGF0ZW5jeU91dGxpZXJEZXRlY3Rpb25BbGdvcml0aG0sXG4gICAgICAgICAgYXosXG4gICAgICAgICAgcHJvcHMuYXBwbGljYXRpb25Mb2FkQmFsYW5jZXJQcm9wcyEubGF0ZW5jeVN0YXRpc3RpYyxcbiAgICAgICAgICBwcm9wcy5hcHBsaWNhdGlvbkxvYWRCYWxhbmNlclByb3BzIS5sYXRlbmN5VGhyZXNob2xkLFxuICAgICAgICAgIGxhdGVuY3lPdXRsaWVyVGhyZXNob2xkLFxuICAgICAgICAgIHBlcmlvZCxcbiAgICAgICAgICBwcm9wcy5ldmFsdWF0aW9uUGVyaW9kcyxcbiAgICAgICAgICBwcm9wcy5kYXRhcG9pbnRzVG9BbGFybSxcbiAgICAgICAgICB0aGlzLl9hek1hcHBlclxuICAgICAgICApO1xuXG4gICAgICAgIC8vIEFsYXJtIGlmIHRoZSBBWiBzaG93cyBpbXBhY3QgYW5kIGlzIGFuIG91dGxpZXJcbiAgICAgICAgbGV0IGF6SW1wYWN0QWxhcm06IElBbGFybSA9IG5ldyBDb21wb3NpdGVBbGFybSh0aGlzLCBcbiAgICAgICAgICBhekxldHRlciArICBcIi1jb21wb3NpdGUtaW1wYWN0LWFsYXJtXCIsIFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGFsYXJtUnVsZTogQWxhcm1SdWxlLmFueU9mKFxuICAgICAgICAgICAgICBBbGFybVJ1bGUuYWxsT2YoYXZhaWxhYmlsaXR5SW1wYWN0LCBhdmFpbGFiaWxpdHlPdXRsaWVyKSwgXG4gICAgICAgICAgICAgIEFsYXJtUnVsZS5hbGxPZihsYXRlbmN5SW1wYWN0LCBsYXRlbmN5T3V0bGllcilcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBjb21wb3NpdGVBbGFybU5hbWU6IFxuICAgICAgICAgICAgICBhdmFpbGFiaWxpdHlab25lSWQgKyBcIi1cIiArIFxuICAgICAgICAgICAgICAoYWxiIGFzIElMb2FkQmFsYW5jZXJWMiBhcyBCYXNlTG9hZEJhbGFuY2VyKS5sb2FkQmFsYW5jZXJOYW1lICsgXG4gICAgICAgICAgICAgIFwiLWxhdGVuY3ktb3ItYXZhaWxhYmlsaXR5LWltcGFjdFwiLFxuICAgICAgICAgICAgYWN0aW9uc0VuYWJsZWQ6IGZhbHNlXG4gICAgICAgICAgfVxuICAgICAgICApO1xuXG4gICAgICAgIC8vIEFkZCB0aGlzIEFMQidzIGZhdWx0IHJhdGUgYWxhcm1cbiAgICAgICAgcGVyQVpJbXBhY3RBbGFybXNbYXpdLnB1c2goYXpJbXBhY3RBbGFybSk7XG5cbiAgICAgICAgLy8gR2V0IG5leHQgdW5pcXVlIGtleVxuICAgICAgICBrZXlQcmVmaXggPSBNZXRyaWNzSGVscGVyLm5leHRDaGFyKGtleVByZWZpeCk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGxldCBhekNvbXBvc2l0ZUFsYXJtczoge1trZXk6IHN0cmluZ106IElBbGFybX0gPSB7fTtcblxuICAgIC8vIEl0ZXJhdGUgQVpzIGZvciB0aGUgQUxCIGltcGFjdCBhbGFybXMgc28gd2UgY2FuIGpvaW4gdGhlbVxuICAgIC8vIGludG8gYSBzaW5nbGUgY29tcG9zaXRlIGFsYXJtIGZvciBlYWNoIEFaXG4gICAgT2JqZWN0LmtleXMocGVyQVpJbXBhY3RBbGFybXMpLmZvckVhY2goKGF6KSA9PiB7XG4gICAgICBsZXQgYXpMZXR0ZXIgPSBhei5zdWJzdHJpbmcoYXoubGVuZ3RoIC0gMSk7XG4gICAgICBsZXQgYXZhaWxhYmlsaXR5Wm9uZUlkOiBzdHJpbmcgPSB0aGlzLl9hek1hcHBlci5hdmFpbGFiaWxpdHlab25lSWRGcm9tQXZhaWxhYmlsaXR5Wm9uZUxldHRlcihhekxldHRlcik7XG5cbiAgICAgIGF6Q29tcG9zaXRlQWxhcm1zW2F6TGV0dGVyXSA9IG5ldyBDb21wb3NpdGVBbGFybSh0aGlzLCBhekxldHRlciArIFwiLWFsYi1pbXBhY3QtY29tcG9zaXRlLWFsYXJtXCIsIHtcbiAgICAgICAgYWxhcm1SdWxlOiBBbGFybVJ1bGUuYW55T2YoLi4ucGVyQVpJbXBhY3RBbGFybXNbYXpdKSxcbiAgICAgICAgY29tcG9zaXRlQWxhcm1OYW1lOiBhdmFpbGFiaWxpdHlab25lSWQgKyBcIi1hbGItaW1wYWN0LWNvbXBvc2l0ZS1hbGFybVwiXG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIHJldHVybiBhekNvbXBvc2l0ZUFsYXJtcztcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlTmF0R2F0ZXdheVpvbmFsSW1wYWN0QWxhcm1zKFxuICAgIHByb3BzOiBCYXNpY1NlcnZpY2VNdWx0aUFaT2JzZXJ2YWJpbGl0eVByb3BzXG4gICk6IHtba2V5OiBzdHJpbmddOiBJQWxhcm19IHtcblxuICAgIC8vIENvbGxlY3QgYWxhcm1zIGZvciBwYWNrZXQgZHJvcHMgZXhjZWVkaW5nIGEgdGhyZXNob2xkIHBlciBOQVQgR1dcbiAgICBsZXQgcGFja2V0TG9zc1BlckFaQWxhcm1zOiB7IFtrZXk6IHN0cmluZ106IElBbGFybSB9ID0ge307XG5cbiAgICBsZXQgcGFja2V0TG9zc091dGxpZXJBbGdvcml0aG06IFBhY2tldExvc3NPdXRsaWVyQWxnb3JpdGhtID0gcHJvcHMubmF0R2F0ZXdheVByb3BzPy5wYWNrZXRMb3NzT3V0bGllckFsZ29yaXRobSA/XG4gICAgICBwcm9wcy5uYXRHYXRld2F5UHJvcHM/LnBhY2tldExvc3NPdXRsaWVyQWxnb3JpdGhtIDpcbiAgICAgIFBhY2tldExvc3NPdXRsaWVyQWxnb3JpdGhtLlNUQVRJQztcblxuICAgIGxldCBwYWNrZXRMb3NzVGhyZXNob2xkOiBudW1iZXIgPSBwcm9wcy5uYXRHYXRld2F5UHJvcHM/LnBhY2tldExvc3NQZXJjZW50VGhyZXNob2xkID8gXG4gICAgICBwcm9wcy5uYXRHYXRld2F5UHJvcHMucGFja2V0TG9zc1BlcmNlbnRUaHJlc2hvbGQgOlxuICAgICAgMC4wMTtcblxuICAgIGxldCBvdXRsaWVyVGhyZXNob2xkOiBudW1iZXI7XG5cbiAgICBpZiAocHJvcHMubmF0R2F0ZXdheVByb3BzPy5wYWNrZXRMb3NzT3V0bGllclRocmVzaG9sZCkge1xuICAgICAgb3V0bGllclRocmVzaG9sZCA9IHByb3BzLm5hdEdhdGV3YXlQcm9wcy5wYWNrZXRMb3NzT3V0bGllclRocmVzaG9sZDtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICBzd2l0Y2ggKHBhY2tldExvc3NPdXRsaWVyQWxnb3JpdGhtKSB7XG4gICAgICAgIGNhc2UgUGFja2V0TG9zc091dGxpZXJBbGdvcml0aG0uU1RBVElDOlxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIG91dGxpZXJUaHJlc2hvbGQgPSA2NjtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gICAgICBcblxuICAgIGxldCBwZXJpb2Q6IER1cmF0aW9uID0gcHJvcHMucGVyaW9kID8gcHJvcHMucGVyaW9kIDogRHVyYXRpb24ubWludXRlcygxKTtcblxuICAgIC8vIEZvciBlYWNoIEFaLCBjcmVhdGUgbWV0cmljcyBmb3IgZWFjaCBOQVQgR1dcbiAgICBPYmplY3Qua2V5cyh0aGlzLm5hdEdhdGV3YXlzISkuZm9yRWFjaCgoYXo6IHN0cmluZykgPT4ge1xuXG4gICAgICBsZXQgYXpMZXR0ZXI6IHN0cmluZyA9IGF6LnN1YnN0cmluZyhhei5sZW5ndGggLSAxKTtcbiAgICAgIGxldCBhdmFpbGFiaWxpdHlab25lSWQgPVxuICAgICAgICB0aGlzLl9hek1hcHBlci5hdmFpbGFiaWxpdHlab25lSWRGcm9tQXZhaWxhYmlsaXR5Wm9uZUxldHRlcihhekxldHRlcik7XG5cbiAgICAgIC8vIElzIHRoZXJlIHBhY2tldCBsb3NzIGltcGFjdD9cbiAgICAgIGxldCBwYWNrZXRMb3NzSW1wYWN0OiBJQWxhcm0gPSBOYXRHYXRld2F5TWV0cmljcy5pc1RoZXJlQW5BWlBhY2tldExvc3NJbXBhY3ROQVRHVyhcbiAgICAgICAgdGhpcyxcbiAgICAgICAgdGhpcy5uYXRHYXRld2F5cyFbYXpdLFxuICAgICAgICBhdmFpbGFiaWxpdHlab25lSWQsXG4gICAgICAgIGF6LFxuICAgICAgICBwYWNrZXRMb3NzVGhyZXNob2xkLFxuICAgICAgICBwZXJpb2QsXG4gICAgICAgIHByb3BzLmV2YWx1YXRpb25QZXJpb2RzLFxuICAgICAgICBwcm9wcy5kYXRhcG9pbnRzVG9BbGFybVxuICAgICAgKTtcblxuICAgICAgLy8gSXMgdGhpcyBBWiBhbiBvdXRsaWVyIGZvciB0aGlzIE5BVEdXP1xuICAgICAgbGV0IHBhY2tldExvc3NPdXRsaWVyOiBJQWxhcm0gPSBOYXRHYXRld2F5TWV0cmljcy5pc0FaQW5PdXRsaWVyRm9yUGFja2V0TG9zc05BVEdXKFxuICAgICAgICB0aGlzLFxuICAgICAgICB0aGlzLm5hdEdhdGV3YXlzISxcbiAgICAgICAgcGFja2V0TG9zc091dGxpZXJBbGdvcml0aG0sXG4gICAgICAgIGF6LFxuICAgICAgICB0aGlzLl9hek1hcHBlcixcbiAgICAgICAgb3V0bGllclRocmVzaG9sZCxcbiAgICAgICAgcHJvcHMucGVyaW9kID8gcHJvcHMucGVyaW9kIDogRHVyYXRpb24ubWludXRlcygxKSxcbiAgICAgICAgcHJvcHMuZXZhbHVhdGlvblBlcmlvZHMsXG4gICAgICAgIHByb3BzLmRhdGFwb2ludHNUb0FsYXJtXG4gICAgICApO1xuXG4gICAgICBwYWNrZXRMb3NzUGVyQVpBbGFybXNbYXpMZXR0ZXJdID0gbmV3IENvbXBvc2l0ZUFsYXJtKHRoaXMsIGF6LnN1YnN0cmluZyhhei5sZW5ndGggLSAxKSArIFwiLXBhY2tldC1sb3NzLWNvbXBvc2l0ZS1hbGFybVwiLCB7XG4gICAgICAgIGFsYXJtUnVsZTogQWxhcm1SdWxlLmFsbE9mKHBhY2tldExvc3NJbXBhY3QsIHBhY2tldExvc3NPdXRsaWVyKSxcbiAgICAgICAgY29tcG9zaXRlQWxhcm1OYW1lOiBhdmFpbGFiaWxpdHlab25lSWQgKyBcIi1wYWNrZXQtbG9zcy1jb21wb3NpdGUtYWxhcm1cIlxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gcGFja2V0TG9zc1BlckFaQWxhcm1zO1xuICB9XG59XG4iXX0=
@@ -1,6 +1,7 @@
1
1
  import { IApplicationLoadBalancer } from "aws-cdk-lib/aws-elasticloadbalancingv2";
2
2
  import { ApplicationLoadBalancerAvailabilityOutlierAlgorithm } from "../../outlier-detection/ApplicationLoadBalancerAvailabilityOutlierAlgorithm";
3
3
  import { ApplicationLoadBalancerLatencyOutlierAlgorithm } from "../../outlier-detection/ApplicationLoadBalancerLatencyOutlierAlgorithm";
4
+ import { Duration } from "aws-cdk-lib";
4
5
  /**
5
6
  * The properties for performing zonal impact detection with ALB(s).
6
7
  */
@@ -19,7 +20,7 @@ export interface ApplicationLoadBalancerDetectionProps {
19
20
  * The threshold in milliseconds for ALB targets whose responses are slower than this
20
21
  * value at the specified percentile statistic.
21
22
  */
22
- readonly latencyThreshold: number;
23
+ readonly latencyThreshold: Duration;
23
24
  /**
24
25
  * The statistic used to measure target response latency, like p99,
25
26
  * which can be specified using Stats.percentile(99) or "p99".
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXBwbGljYXRpb25Mb2FkQmFsYW5jZXJEZXRlY3Rpb25Qcm9wcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iYXNpY19vYnNlcnZhYmlsaXR5L3Byb3BzL0FwcGxpY2F0aW9uTG9hZEJhbGFuY2VyRGV0ZWN0aW9uUHJvcHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElBcHBsaWNhdGlvbkxvYWRCYWxhbmNlciB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtZWxhc3RpY2xvYWRiYWxhbmNpbmd2MlwiO1xuaW1wb3J0IHsgQXBwbGljYXRpb25Mb2FkQmFsYW5jZXJBdmFpbGFiaWxpdHlPdXRsaWVyQWxnb3JpdGhtIH0gZnJvbSBcIi4uLy4uL291dGxpZXItZGV0ZWN0aW9uL0FwcGxpY2F0aW9uTG9hZEJhbGFuY2VyQXZhaWxhYmlsaXR5T3V0bGllckFsZ29yaXRobVwiO1xuaW1wb3J0IHsgQXBwbGljYXRpb25Mb2FkQmFsYW5jZXJMYXRlbmN5T3V0bGllckFsZ29yaXRobSB9IGZyb20gXCIuLi8uLi9vdXRsaWVyLWRldGVjdGlvbi9BcHBsaWNhdGlvbkxvYWRCYWxhbmNlckxhdGVuY3lPdXRsaWVyQWxnb3JpdGhtXCI7XG5cbi8qKlxuICogVGhlIHByb3BlcnRpZXMgZm9yIHBlcmZvcm1pbmcgem9uYWwgaW1wYWN0IGRldGVjdGlvbiB3aXRoIEFMQihzKS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBcHBsaWNhdGlvbkxvYWRCYWxhbmNlckRldGVjdGlvblByb3BzIHtcblxuICAvKipcbiAgICogVGhlIGFwcGxpY2F0aW9uIGxvYWQgYmFsYW5jZXJzIHRvIGNvbGxlY3QgbWV0cmljcyBmcm9tLlxuICAgKi9cbiAgcmVhZG9ubHkgYXBwbGljYXRpb25Mb2FkQmFsYW5jZXJzOiBJQXBwbGljYXRpb25Mb2FkQmFsYW5jZXJbXTtcblxuICAvKipcbiAgICogVGhlIHBlcmNlbnRhZ2Ugb2YgZmF1bHRzIGZvciBhIHNpbmdsZSBBTEIgdG8gY29uc2lkZXIgYW4gQVpcbiAgICogdG8gYmUgdW5oZWFsdGh5LCBhIG51bWJlciBiZXR3ZWVuIDAgYW5kIDEwMC4gVGhpcyBzaG91bGQgYWxpZ24gd2l0aCB5b3VyIGF2YWlsYWJpbGl0eSBnb2FsLiBGb3IgZXhhbXBsZVxuICAgKiAxJSBvciA1JSwgcHJvdmlkZWQgYXMgMSBvciA1LlxuICAgKi9cbiAgcmVhZG9ubHkgZmF1bHRDb3VudFBlcmNlbnRUaHJlc2hvbGQ6IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIHRocmVzaG9sZCBpbiBtaWxsaXNlY29uZHMgZm9yIEFMQiB0YXJnZXRzIHdob3NlIHJlc3BvbnNlcyBhcmUgc2xvd2VyIHRoYW4gdGhpc1xuICAgKiB2YWx1ZSBhdCB0aGUgc3BlY2lmaWVkIHBlcmNlbnRpbGUgc3RhdGlzdGljLlxuICAgKi9cbiAgcmVhZG9ubHkgbGF0ZW5jeVRocmVzaG9sZDogbnVtYmVyO1xuICBcbiAgLyoqXG4gICAqIFRoZSBzdGF0aXN0aWMgdXNlZCB0byBtZWFzdXJlIHRhcmdldCByZXNwb25zZSBsYXRlbmN5LCBsaWtlIHA5OSwgXG4gICAqIHdoaWNoIGNhbiBiZSBzcGVjaWZpZWQgdXNpbmcgU3RhdHMucGVyY2VudGlsZSg5OSkgb3IgXCJwOTlcIi5cbiAgICovXG4gIHJlYWRvbmx5IGxhdGVuY3lTdGF0aXN0aWM6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG1ldGhvZCB1c2VkIHRvIGRldGVybWluZSBpZiBhbiBBWiBpcyBhbiBvdXRsaWVyIGZvciBsYXRlbmN5IGZvciBBcHBsaWNhdGlvbiBMb2FkIEJhbGFuY2VyIG1ldHJpY3MuXG4gICAqIEBkZWZhdWx0IFpfU0NPUkVcbiAgICovXG4gIHJlYWRvbmx5IGxhdGVuY3lPdXRsaWVyQWxnb3JpdGhtPzogQXBwbGljYXRpb25Mb2FkQmFsYW5jZXJMYXRlbmN5T3V0bGllckFsZ29yaXRobTtcblxuICAvKipcbiAgICogVGhlIG1ldGhvZCB1c2VkIHRvIGRldGVybWluZSBpZiBhbiBBWiBpcyBhbiBvdXRsaWVyIGZvciBhdmFpbGFiaWxpdHkgZm9yIEFwcGxpY2F0aW9uIExvYWQgQmFsYW5jZXIgbWV0cmljcy5cbiAgICogQGRlZmF1bHQgU1RBVElDXG4gICAqL1xuICByZWFkb25seSBhdmFpbGFiaWxpdHlPdXRsaWVyQWxnb3JpdGhtPzogQXBwbGljYXRpb25Mb2FkQmFsYW5jZXJBdmFpbGFiaWxpdHlPdXRsaWVyQWxnb3JpdGhtO1xuXG4gIC8qKlxuICAgKiBUaGUgdGhyZXNob2xkIGZvciB0aGUgb3V0bGllciBkZXRlY3Rpb24gYWxnb3JpdGhtLlxuICAgKiBcbiAgICogQGRlZmF1bHQgXCJUaGlzIGRlcGVuZHMgb24gdGhlIGFsZ29yaXRobSB1c2VkLiBTVEFUSUM6IDY2XCJcbiAgICovXG4gIHJlYWRvbmx5IGF2YWlsYWJpbGl0eU91dGxpZXJUaHJlc2hvbGQ/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSB0aHJlc2hvbGQgZm9yIHRoZSBvdXRsaWVyIGRldGVjdGlvbiBhbGdvcml0aG0uXG4gICAqIFxuICAgKiBAZGVmYXVsdCBcIlRoaXMgZGVwZW5kcyBvbiB0aGUgYWxnb3JpdGhtIHVzZWQuIFNUQVRJQzogNjYuIFpfU0NPUkU6IDMuXCJcbiAgICovXG4gIHJlYWRvbmx5IGxhdGVuY3lPdXRsaWVyVGhyZXNob2xkPzogbnVtYmVyO1xuICBcbn0iXX0=
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXBwbGljYXRpb25Mb2FkQmFsYW5jZXJEZXRlY3Rpb25Qcm9wcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iYXNpY19vYnNlcnZhYmlsaXR5L3Byb3BzL0FwcGxpY2F0aW9uTG9hZEJhbGFuY2VyRGV0ZWN0aW9uUHJvcHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElBcHBsaWNhdGlvbkxvYWRCYWxhbmNlciB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtZWxhc3RpY2xvYWRiYWxhbmNpbmd2MlwiO1xuaW1wb3J0IHsgQXBwbGljYXRpb25Mb2FkQmFsYW5jZXJBdmFpbGFiaWxpdHlPdXRsaWVyQWxnb3JpdGhtIH0gZnJvbSBcIi4uLy4uL291dGxpZXItZGV0ZWN0aW9uL0FwcGxpY2F0aW9uTG9hZEJhbGFuY2VyQXZhaWxhYmlsaXR5T3V0bGllckFsZ29yaXRobVwiO1xuaW1wb3J0IHsgQXBwbGljYXRpb25Mb2FkQmFsYW5jZXJMYXRlbmN5T3V0bGllckFsZ29yaXRobSB9IGZyb20gXCIuLi8uLi9vdXRsaWVyLWRldGVjdGlvbi9BcHBsaWNhdGlvbkxvYWRCYWxhbmNlckxhdGVuY3lPdXRsaWVyQWxnb3JpdGhtXCI7XG5pbXBvcnQgeyBEdXJhdGlvbiB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuXG4vKipcbiAqIFRoZSBwcm9wZXJ0aWVzIGZvciBwZXJmb3JtaW5nIHpvbmFsIGltcGFjdCBkZXRlY3Rpb24gd2l0aCBBTEIocykuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXBwbGljYXRpb25Mb2FkQmFsYW5jZXJEZXRlY3Rpb25Qcm9wcyB7XG5cbiAgLyoqXG4gICAqIFRoZSBhcHBsaWNhdGlvbiBsb2FkIGJhbGFuY2VycyB0byBjb2xsZWN0IG1ldHJpY3MgZnJvbS5cbiAgICovXG4gIHJlYWRvbmx5IGFwcGxpY2F0aW9uTG9hZEJhbGFuY2VyczogSUFwcGxpY2F0aW9uTG9hZEJhbGFuY2VyW107XG5cbiAgLyoqXG4gICAqIFRoZSBwZXJjZW50YWdlIG9mIGZhdWx0cyBmb3IgYSBzaW5nbGUgQUxCIHRvIGNvbnNpZGVyIGFuIEFaXG4gICAqIHRvIGJlIHVuaGVhbHRoeSwgYSBudW1iZXIgYmV0d2VlbiAwIGFuZCAxMDAuIFRoaXMgc2hvdWxkIGFsaWduIHdpdGggeW91ciBhdmFpbGFiaWxpdHkgZ29hbC4gRm9yIGV4YW1wbGVcbiAgICogMSUgb3IgNSUsIHByb3ZpZGVkIGFzIDEgb3IgNS5cbiAgICovXG4gIHJlYWRvbmx5IGZhdWx0Q291bnRQZXJjZW50VGhyZXNob2xkOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSB0aHJlc2hvbGQgaW4gbWlsbGlzZWNvbmRzIGZvciBBTEIgdGFyZ2V0cyB3aG9zZSByZXNwb25zZXMgYXJlIHNsb3dlciB0aGFuIHRoaXNcbiAgICogdmFsdWUgYXQgdGhlIHNwZWNpZmllZCBwZXJjZW50aWxlIHN0YXRpc3RpYy5cbiAgICovXG4gIHJlYWRvbmx5IGxhdGVuY3lUaHJlc2hvbGQ6IER1cmF0aW9uO1xuICBcbiAgLyoqXG4gICAqIFRoZSBzdGF0aXN0aWMgdXNlZCB0byBtZWFzdXJlIHRhcmdldCByZXNwb25zZSBsYXRlbmN5LCBsaWtlIHA5OSwgXG4gICAqIHdoaWNoIGNhbiBiZSBzcGVjaWZpZWQgdXNpbmcgU3RhdHMucGVyY2VudGlsZSg5OSkgb3IgXCJwOTlcIi5cbiAgICovXG4gIHJlYWRvbmx5IGxhdGVuY3lTdGF0aXN0aWM6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG1ldGhvZCB1c2VkIHRvIGRldGVybWluZSBpZiBhbiBBWiBpcyBhbiBvdXRsaWVyIGZvciBsYXRlbmN5IGZvciBBcHBsaWNhdGlvbiBMb2FkIEJhbGFuY2VyIG1ldHJpY3MuXG4gICAqIEBkZWZhdWx0IFpfU0NPUkVcbiAgICovXG4gIHJlYWRvbmx5IGxhdGVuY3lPdXRsaWVyQWxnb3JpdGhtPzogQXBwbGljYXRpb25Mb2FkQmFsYW5jZXJMYXRlbmN5T3V0bGllckFsZ29yaXRobTtcblxuICAvKipcbiAgICogVGhlIG1ldGhvZCB1c2VkIHRvIGRldGVybWluZSBpZiBhbiBBWiBpcyBhbiBvdXRsaWVyIGZvciBhdmFpbGFiaWxpdHkgZm9yIEFwcGxpY2F0aW9uIExvYWQgQmFsYW5jZXIgbWV0cmljcy5cbiAgICogQGRlZmF1bHQgU1RBVElDXG4gICAqL1xuICByZWFkb25seSBhdmFpbGFiaWxpdHlPdXRsaWVyQWxnb3JpdGhtPzogQXBwbGljYXRpb25Mb2FkQmFsYW5jZXJBdmFpbGFiaWxpdHlPdXRsaWVyQWxnb3JpdGhtO1xuXG4gIC8qKlxuICAgKiBUaGUgdGhyZXNob2xkIGZvciB0aGUgb3V0bGllciBkZXRlY3Rpb24gYWxnb3JpdGhtLlxuICAgKiBcbiAgICogQGRlZmF1bHQgXCJUaGlzIGRlcGVuZHMgb24gdGhlIGFsZ29yaXRobSB1c2VkLiBTVEFUSUM6IDY2XCJcbiAgICovXG4gIHJlYWRvbmx5IGF2YWlsYWJpbGl0eU91dGxpZXJUaHJlc2hvbGQ/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSB0aHJlc2hvbGQgZm9yIHRoZSBvdXRsaWVyIGRldGVjdGlvbiBhbGdvcml0aG0uXG4gICAqIFxuICAgKiBAZGVmYXVsdCBcIlRoaXMgZGVwZW5kcyBvbiB0aGUgYWxnb3JpdGhtIHVzZWQuIFNUQVRJQzogNjYuIFpfU0NPUkU6IDMuXCJcbiAgICovXG4gIHJlYWRvbmx5IGxhdGVuY3lPdXRsaWVyVGhyZXNob2xkPzogbnVtYmVyO1xuICBcbn0iXX0=
@@ -87,7 +87,7 @@ class CanaryFunction extends constructs_1.Construct {
87
87
  REGION: aws_cdk_lib_1.Aws.REGION,
88
88
  PARTITION: aws_cdk_lib_1.Aws.PARTITION,
89
89
  TIMEOUT: props.httpTimeout !== undefined
90
- ? props.httpTimeout.toSeconds().toString()
90
+ ? props.httpTimeout.toSeconds({ integral: false }).toString()
91
91
  : '2',
92
92
  IGNORE_SSL_ERRORS: (props.ignoreTlsErrors !== undefined && props.ignoreTlsErrors == true)
93
93
  .toString()
@@ -113,7 +113,7 @@ class CanaryFunction extends constructs_1.Construct {
113
113
  REGION: aws_cdk_lib_1.Aws.REGION,
114
114
  PARTITION: aws_cdk_lib_1.Aws.PARTITION,
115
115
  TIMEOUT: props.httpTimeout !== undefined
116
- ? props.httpTimeout.toSeconds().toString()
116
+ ? props.httpTimeout.toSeconds({ integral: false }).toString()
117
117
  : '2',
118
118
  IGNORE_SSL_ERRORS: (props.ignoreTlsErrors !== undefined && props.ignoreTlsErrors == true)
119
119
  .toString()
@@ -150,4 +150,4 @@ class CanaryFunction extends constructs_1.Construct {
150
150
  }
151
151
  }
152
152
  exports.CanaryFunction = CanaryFunction;
153
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2FuYXJ5RnVuY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2FuYXJpZXMvQ2FuYXJ5RnVuY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUVBQXFFO0FBQ3JFLHNDQUFzQztBQUN0Qyw2QkFBNkI7QUFDN0IsNkNBQTJEO0FBQzNELGlEQUFvRTtBQUNwRSxpREFRNkI7QUFDN0IsdURBUWdDO0FBQ2hDLG1EQUEwRTtBQUMxRSwyQ0FBdUM7QUFHdkMsOERBQTJEO0FBRTNELE1BQWEsY0FBZSxTQUFRLHNCQUFTO0lBVzNDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBMEI7UUFDbEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixJQUFJLGlCQUFpQixHQUFtQixJQUFJLHVCQUFhLENBQ3ZELElBQUksRUFDSixtQkFBbUIsRUFDbkI7WUFDRSxJQUFJLEVBQUUsVUFBVTtZQUNoQixVQUFVLEVBQUU7Z0JBQ1YsSUFBSSx5QkFBZSxDQUFDO29CQUNsQixPQUFPLEVBQUU7d0JBQ1AsdUJBQXVCO3dCQUN2QiwwQkFBMEI7d0JBQzFCLHVCQUF1Qjt3QkFDdkIseUJBQXlCO3dCQUN6QixvQ0FBb0M7cUJBQ3JDO29CQUNELE1BQU0sRUFBRSxnQkFBTSxDQUFDLEtBQUs7b0JBQ3BCLFNBQVMsRUFBRSxDQUFDLEdBQUcsQ0FBQztpQkFDakIsQ0FBQzthQUNIO1NBQ0YsQ0FDRixDQUFDO1FBQ0YsSUFBSSxnQkFBZ0IsR0FBRyxJQUFJLHVCQUFhLENBQUMsSUFBSSxFQUFFLGtCQUFrQixFQUFFO1lBQ2pFLElBQUksRUFBRSxVQUFVO1lBQ2hCLFVBQVUsRUFBRTtnQkFDVixJQUFJLHlCQUFlLENBQUM7b0JBQ2xCLE9BQU8sRUFBRTt3QkFDUCw0QkFBNEI7d0JBQzVCLCtCQUErQjt3QkFDL0IsNEJBQTRCO3FCQUM3QjtvQkFDRCxNQUFNLEVBQUUsZ0JBQU0sQ0FBQyxLQUFLO29CQUNw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QUNqQyxhQUFhLEVBQUUsMkJBQWEsQ0FBQyxPQUFPO1NBQ3JDLENBQUMsQ0FBQztRQUVILElBQUksdUJBQWEsQ0FBQyxJQUFJLEVBQUUsaUJBQWlCLEVBQUU7WUFDekMsSUFBSSxFQUFFLFVBQVU7WUFDaEIsVUFBVSxFQUFFO2dCQUNWLElBQUkseUJBQWUsQ0FBQztvQkFDbEIsT0FBTyxFQUFFLENBQUMsMEJBQTBCLENBQUM7b0JBQ3JDLE1BQU0sRUFBRSxnQkFBTSxDQUFDLEtBQUs7b0JBQ3BCLFNBQVMsRUFBRSxDQUFDLEdBQUcsQ0FBQztpQkFDakIsQ0FBQztnQkFDRixJQUFJLHlCQUFlLENBQUM7b0JBQ2xCLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixFQUFFLG1CQUFtQixDQUFDO29CQUN0RCxNQUFNLEVBQUUsZ0JBQU0sQ0FBQyxLQUFLO29CQUNwQixTQUFTLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQztpQkFDdkMsQ0FBQzthQUNIO1lBQ0QsS0FBSyxFQUFFLENBQUMsYUFBYSxDQUFDO1NBQ3ZCLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQTFLRCx3Q0EwS0MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgQXdzLCBEdXJhdGlvbiwgUmVtb3ZhbFBvbGljeSB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IElTZWN1cml0eUdyb3VwLCBTZWN1cml0eUdyb3VwIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWVjMic7XG5pbXBvcnQge1xuICBFZmZlY3QsXG4gIElNYW5hZ2VkUG9saWN5LFxuICBJUm9sZSxcbiAgTWFuYWdlZFBvbGljeSxcbiAgUG9saWN5U3RhdGVtZW50LFxuICBSb2xlLFxuICBTZXJ2aWNlUHJpbmNpcGFsLFxufSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCB7XG4gIEFyY2hpdGVjdHVyZSxcbiAgQ29kZSxcbiAgRnVuY3Rpb24sXG4gIElGdW5jdGlvbixcbiAgSUxheWVyVmVyc2lvbixcbiAgTGF5ZXJWZXJzaW9uLFxuICBUcmFjaW5nLFxufSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhJztcbmltcG9ydCB7IElMb2dHcm91cCwgTG9nR3JvdXAsIFJldGVudGlvbkRheXMgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbG9ncyc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IElDYW5hcnlGdW5jdGlvbiB9IGZyb20gJy4vSUNhbmFyeUZ1bmN0aW9uJztcbmltcG9ydCB7IENhbmFyeUZ1bmN0aW9uUHJvcHMgfSBmcm9tICcuL3Byb3BzL0NhbmFyeUZ1bmN0aW9uUHJvcHMnO1xuaW1wb3J0IHsgTWV0cmljc0hlbHBlciB9IGZyb20gJy4uL3V0aWxpdGllcy9NZXRyaWNzSGVscGVyJztcblxuZXhwb3J0IGNsYXNzIENhbmFyeUZ1bmN0aW9uIGV4dGVuZHMgQ29uc3RydWN0IGltcGxlbWVudHMgSUNhbmFyeUZ1bmN0aW9uIHtcbiAgLyoqXG4gICAqIFRoZSBjYW5hcnkgZnVuY3Rpb25cbiAgICovXG4gIGZ1bmN0aW9uOiBJRnVuY3Rpb247XG5cbiAgLyoqXG4gICAqIFRoZSBsb2cgZ3JvdXAgd2hlcmUgdGhlIGNhbmFydHkgbG9ncyB3aWxsIGJlIHNlbnRcbiAgICovXG4gIGxvZ0dyb3VwOiBJTG9nR3JvdXA7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IENhbmFyeUZ1bmN0aW9uUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgbGV0IHhyYXlNYW5hZ2VkUG9saWN5OiBJTWFuYWdlZFBvbGljeSA9IG5ldyBNYW5hZ2VkUG9saWN5KFxuICAgICAgdGhpcyxcbiAgICAgICd4cmF5TWFuYWdlZFBvbGljeScsXG4gICAgICB7XG4gICAgICAgIHBhdGg6ICcvY2FuYXJ5LycsXG4gICAgICAgIHN0YXRlbWVudHM6IFtcbiAgICAgICAgICBuZXcgUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICAgICAgJ3hyYXk6UHV0VHJhY2VTZWdtZW50cycsXG4gICAgICAgICAgICAgICd4cmF5OlB1dFRlbGVtZXRyeVJlY29yZHMnLFxuICAgICAgICAgICAgICAneHJheTpHZXRTYW1wbGluZ1J1bGVzJyxcbiAgICAgICAgICAgICAgJ3hyYXk6R2V0U2FtcGxpbmdUYXJnZXRzJyxcbiAgICAgICAgICAgICAgJ3hyYXk6R2V0U2FtcGxpbmdTdGF0aXN0aWNTdW1tYXJpZXMnLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIGVmZmVjdDogRWZmZWN0LkFMTE9XLFxuICAgICAgICAgICAgcmVzb3VyY2VzOiBbJyonXSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgKTtcbiAgICBsZXQgZWMyTWFuYWdlZFBvbGljeSA9IG5ldyBNYW5hZ2VkUG9saWN5KHRoaXMsICdlYzJNYW5hZ2VkUG9saWN5Jywge1xuICAgICAgcGF0aDogJy9jYW5hcnkvJyxcbiAgICAgIHN0YXRlbWVudHM6IFtcbiAgICAgICAgbmV3IFBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgICAgJ2VjMjpDcmVhdGVOZXR3b3JrSW50ZXJmYWNlJyxcbiAgICAgICAgICAgICdlYzI6RGVzY3JpYmVOZXR3b3JrSW50ZXJmYWNlcycsXG4gICAgICAgICAgICAnZWMyOkRlbGV0ZU5ldHdvcmtJbnRlcmZhY2UnLFxuICAgICAgICAgIF0sXG4gICAgICAgICAgZWZmZWN0OiBFZmZlY3QuQUxMT1csXG4gICAgICAgICAgcmVzb3VyY2VzOiBbJyonXSxcbiAgICAgICAgfSksXG4gICAgICBdLFxuICAgIH0pO1xuXG4gICAgbGV0IGV4ZWN1dGlvblJvbGU6IElSb2xlID0gbmV3IFJvbGUodGhpcywgJ2V4ZWN1dGlvblJvbGUnLCB7XG4gICAgICBhc3N1bWVkQnk6IG5ldyBTZXJ2aWNlUHJpbmNpcGFsKCdsYW1iZGEuYW1hem9uYXdzLmNvbScpLFxuICAgICAgcGF0aDogJy9jYW5hcnkvJyxcbiAgICAgIG1hbmFnZWRQb2xpY2llczogW3hyYXlNYW5hZ2VkUG9saWN5LCBlYzJNYW5hZ2VkUG9saWN5XSxcbiAgICB9KTtcblxuICAgIC8qXG4gICAgbGV0IGNvZGU6IEFzc2V0Q29kZSA9IENvZGUuZnJvbUFzc2V0KHBhdGguam9pbihfX2Rpcm5hbWUsIFwic3JjL1wiKSwge1xuICAgICAgYnVuZGxpbmc6IHtcbiAgICAgICAgLy9pbWFnZTogbmV3IFJ1bnRpbWUoJ3B5dGhvbjMuMTM6bGF0ZXN0LWFybTY0JywgUnVudGltZUZhbWlseS5QWVRIT04pLmJ1bmRsaW5nSW1hZ2UsXG4gICAgICAgIGltYWdlOiBNZXRyaWNzSGVscGVyLlB5dGhvblJ1bnRpbWUuYnVuZGxpbmdJbWFnZSxcbiAgICAgICAgY29tbWFuZDogW1xuICAgICAgICAgICdiYXNoJywgJy1jJyxcbiAgICAgICAgICAncGlwIGluc3RhbGwgLS1uby1jYWNoZSAtciByZXF1aXJlbWVudHMudHh0IC10IC9hc3NldC1vdXRwdXQgJiYgY3AgLS1hcmNoaXZlIC0tdXBkYXRlIC4gL2Fzc2V0LW91dHB1dCcsXG4gICAgICAgIF0sXG4gICAgICAgIHBsYXRmb3JtOiAnbGludXgvYXJtNjQnLFxuICAgICAgfSxcbiAgICB9KTtcbiAgICAqL1xuICAgIGxldCBtb25pdG9yaW5nTGF5ZXI6IElMYXllclZlcnNpb24gPSBuZXcgTGF5ZXJWZXJzaW9uKFxuICAgICAgdGhpcyxcbiAgICAgICdNb25pdG9yaW5nTGF5ZXInLFxuICAgICAge1xuICAgICAgICBjb2RlOiBDb2RlLmZyb21Bc3NldChcbiAgICAgICAgICBwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi4vbW9uaXRvcmluZy9zcmMvbW9uaXRvcmluZy1sYXllci56aXAnKSxcbiAgICAgICAgKSxcbiAgICAgICAgY29tcGF0aWJsZUFyY2hpdGVjdHVyZXM6IFtBcmNoaXRlY3R1cmUuQVJNXzY0XSxcbiAgICAgICAgY29tcGF0aWJsZVJ1bnRpbWVzOiBbTWV0cmljc0hlbHBlci5QeXRob25SdW50aW1lXSxcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIGlmIChwcm9wcy52cGMgIT09IHVuZGVmaW5lZCAmJiBwcm9wcy52cGMgIT0gbnVsbCkge1xuICAgICAgbGV0IHNnOiBJU2VjdXJpdHlHcm91cCA9IG5ldyBTZWN1cml0eUdyb3VwKHRoaXMsICdjYW5hcnlTZWN1cml0eUdyb3VwJywge1xuICAgICAgICBkZXNjcmlwdGlvbjogJ0FsbG93IGNhbmFyeSB0byBjb21tdW5pY2F0ZSB3aXRoIGxvYWQgYmFsYW5jZXInLFxuICAgICAgICB2cGM6IHByb3BzLnZwYyxcbiAgICAgICAgYWxsb3dBbGxPdXRib3VuZDogdHJ1ZSxcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLmZ1bmN0aW9uID0gbmV3IEZ1bmN0aW9uKHRoaXMsICdjYW5hcnknLCB7XG4gICAgICAgIHJ1bnRpbWU6IE1ldHJpY3NIZWxwZXIuUHl0aG9uUnVudGltZSxcbiAgICAgICAgY29kZTogQ29kZS5mcm9tQXNzZXQocGF0aC5qb2luKF9fZGlybmFtZSwgJ3NyYy9jYW5hcnkuemlwJykpLFxuICAgICAgICBoYW5kbGVyOiAnaW5kZXguaGFuZGxlcicsXG4gICAgICAgIHJvbGU6IGV4ZWN1dGlvblJvbGUsXG4gICAgICAgIGFyY2hpdGVjdHVyZTogQXJjaGl0ZWN0dXJlLkFSTV82NCxcbiAgICAgICAgdHJhY2luZzogVHJhY2luZy5BQ1RJVkUsXG4gICAgICAgIHRpbWVvdXQ6IER1cmF0aW9uLnNlY29uZHMoMjQwKSxcbiAgICAgICAgbWVtb3J5U2l6ZTogNTEyLFxuICAgICAgICBsYXllcnM6IFttb25pdG9yaW5nTGF5ZXJdLFxuICAgICAgICBlbnZpcm9ubWVudDoge1xuICAgICAgICAgIFJFR0lPTjpBd3MuUkVHSU9OLFxuICAgICAgICAgIFBBUlRJVElPTjogQXdzLlBBUlRJVElPTixcbiAgICAgICAgICBUSU1FT1VUOlxuICAgICAgICAgICAgcHJvcHMuaHR0cFRpbWVvdXQgIT09IHVuZGVmaW5lZFxuICAgICAgICAgICAgICA/IHByb3BzLmh0dHBUaW1lb3V0LnRvU2Vjb25kcygpLnRvU3RyaW5nKClcbiAgICAgICAgICAgICAgOiAnMicsXG4gICAgICAgICAgSUdOT1JFX1NTTF9FUlJPUlM6IChcbiAgICAgICAgICAgIHByb3BzLmlnbm9yZVRsc0Vycm9ycyAhPT0gdW5kZWZpbmVkICYmIHByb3BzLmlnbm9yZVRsc0Vycm9ycyA9PSB0cnVlXG4gICAgICAgICAgKVxuICAgICAgICAgICAgLnRvU3RyaW5nKClcbiAgICAgICAgICAgIC50b0xvd2VyQ2FzZSgpLFxuICAgICAgICB9LFxuICAgICAgICB2cGM6IHByb3BzLnZwYyxcbiAgICAgICAgc2VjdXJpdHlHcm91cHM6IFtzZ10sXG4gICAgICAgIHZwY1N1Ym5ldHM6IHByb3BzLnN1Ym5ldFNlbGVjdGlvbixcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmZ1bmN0aW9uID0gbmV3IEZ1bmN0aW9uKHRoaXMsICdjYW5hcnknLCB7XG4gICAgICAgIHJ1bnRpbWU6IE1ldHJpY3NIZWxwZXIuUHl0aG9uUnVudGltZSxcbiAgICAgICAgY29kZTogQ29kZS5mcm9tQXNzZXQocGF0aC5qb2luKF9fZGlybmFtZSwgJ3NyYy9jYW5hcnkuemlwJykpLFxuICAgICAgICBoYW5kbGVyOiAnaW5kZXguaGFuZGxlcicsXG4gICAgICAgIHJvbGU6IGV4ZWN1dGlvblJvbGUsXG4gICAgICAgIGFyY2hpdGVjdHVyZTogQXJjaGl0ZWN0dXJlLkFSTV82NCxcbiAgICAgICAgdHJhY2luZzogVHJhY2luZy5BQ1RJVkUsXG4gICAgICAgIHRpbWVvdXQ6IER1cmF0aW9uLnNlY29uZHMoMjQwKSxcbiAgICAgICAgbWVtb3J5U2l6ZTogNTEyLFxuICAgICAgICBsYXllcnM6IFttb25pdG9yaW5nTGF5ZXJdLFxuICAgICAgICBlbnZpcm9ubWVudDoge1xuICAgICAgICAgIFJFR0lPTjogQXdzLlJFR0lPTixcbiAgICAgICAgICBQQVJUSVRJT046IEF3cy5QQVJUSVRJT04sXG4gICAgICAgICAgVElNRU9VVDpcbiAgICAgICAgICAgIHByb3BzLmh0dHBUaW1lb3V0ICE9PSB1bmRlZmluZWRcbiAgICAgICAgICAgICAgPyBwcm9wcy5odHRwVGltZW91dC50b1NlY29uZHMoKS50b1N0cmluZygpXG4gICAgICAgICAgICAgIDogJzInLFxuICAgICAgICAgIElHTk9SRV9TU0xfRVJST1JTOiAoXG4gICAgICAgICAgICBwcm9wcy5pZ25vcmVUbHNFcnJvcnMgIT09IHVuZGVmaW5lZCAmJiBwcm9wcy5pZ25vcmVUbHNFcnJvcnMgPT0gdHJ1ZVxuICAgICAgICAgIClcbiAgICAgICAgICAgIC50b1N0cmluZygpXG4gICAgICAgICAgICAudG9Mb3dlckNhc2UoKSxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHRoaXMuZnVuY3Rpb24uYWRkUGVybWlzc2lvbignaW52b2tlUGVybWlzc2lvbicsIHtcbiAgICAgIGFjdGlvbjogJ2xhbWJkYTpJbnZva2VGdW5jdGlvbicsXG4gICAgICBwcmluY2lwYWw6IG5ldyBTZXJ2aWNlUHJpbmNpcGFsKCdldmVudHMuYW1hem9uYXdzLmNvbScpLFxuICAgICAgc291cmNlQXJuOiBgYXJuOiR7QXdzLlBBUlRJVElPTn06ZXZlbnRzOiR7QXdzLlJFR0lPTn06JHtBd3MuQUNDT1VOVF9JRH06cnVsZS8qYFxuICAgIH0pO1xuXG4gICAgdGhpcy5sb2dHcm91cCA9IG5ldyBMb2dHcm91cCh0aGlzLCAnbG9nR3JvdXAnLCB7XG4gICAgICBsb2dHcm91cE5hbWU6IGAvYXdzL2xhbWJkYS8ke3RoaXMuZnVuY3Rpb24uZnVuY3Rpb25OYW1lfWAsXG4gICAgICByZXRlbnRpb246IFJldGVudGlvbkRheXMuT05FX1dFRUssXG4gICAgICByZW1vdmFsUG9saWN5OiBSZW1vdmFsUG9saWN5LkRFU1RST1ksXG4gICAgfSk7XG5cbiAgICBuZXcgTWFuYWdlZFBvbGljeSh0aGlzLCAnY3dNYW5hZ2VkUG9saWN5Jywge1xuICAgICAgcGF0aDogJy9jYW5hcnkvJyxcbiAgICAgIHN0YXRlbWVudHM6IFtcbiAgICAgICAgbmV3IFBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgYWN0aW9uczogWydjbG91ZHdhdGNoOlB1dE1ldHJpY0RhdGEnXSxcbiAgICAgICAgICBlZmZlY3Q6IEVmZmVjdC5BTExPVyxcbiAgICAgICAgICByZXNvdXJjZXM6IFsnKiddLFxuICAgICAgICB9KSxcbiAgICAgICAgbmV3IFBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgYWN0aW9uczogWydsb2dzOkNyZWF0ZUxvZ1N0cmVhbScsICdsb2dzOlB1dExvZ0V2ZW50cyddLFxuICAgICAgICAgIGVmZmVjdDogRWZmZWN0LkFMTE9XLFxuICAgICAgICAgIHJlc291cmNlczogW3RoaXMubG9nR3JvdXAubG9nR3JvdXBBcm5dLFxuICAgICAgICB9KSxcbiAgICAgIF0sXG4gICAgICByb2xlczogW2V4ZWN1dGlvblJvbGVdLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
153
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2FuYXJ5RnVuY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2FuYXJpZXMvQ2FuYXJ5RnVuY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUVBQXFFO0FBQ3JFLHNDQUFzQztBQUN0Qyw2QkFBNkI7QUFDN0IsNkNBQTJEO0FBQzNELGlEQUFvRTtBQUNwRSxpREFRNkI7QUFDN0IsdURBUWdDO0FBQ2hDLG1EQUEwRTtBQUMxRSwyQ0FBdUM7QUFHdkMsOERBQTJEO0FBRTNELE1BQWEsY0FBZSxTQUFRLHNCQUFTO0lBVzNDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBMEI7UUFDbEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixJQUFJLGlCQUFpQixHQUFtQixJQUFJLHVCQUFhLENBQ3ZELElBQUksRUFDSixtQkFBbUIsRUFDbkI7WUFDRSxJQUFJLEVBQUUsVUFBVTtZQUNoQixVQUFVLEVBQUU7Z0JBQ1YsSUFBSSx5QkFBZSxDQUFDO29CQUNsQixPQUFPLEVBQUU7d0JBQ1AsdUJBQXVCO3dCQUN2QiwwQkFBMEI7d0JBQzFCLHVCQUF1Qjt3QkFDdkIseUJBQXlCO3dCQUN6QixvQ0FBb0M7cUJBQ3JDO29CQUNELE1BQU0sRUFBRSxnQkFBTSxDQUFDLEtBQUs7b0JBQ3BCLFNBQVMsRUFBRSxDQUFDLEdBQUcsQ0FBQztpQkFDakIsQ0FBQzthQUNIO1NBQ0YsQ0FDRixDQUFDO1FBQ0YsSUFBSSxnQkFBZ0IsR0FBRyxJQUFJLHVCQUFhLENBQUMsSUFBSSxFQUFFLGtCQUFrQixFQUFFO1lBQ2pFLElBQUksRUFBRSxVQUFVO1lBQ2hCLFVBQVUsRUFBRTtnQkFDVixJQUFJLHlCQUFlLENBQUM7b0JBQ2xCLE9BQU8sRUFBRTt3QkFDUCw0QkFBNEI7d0JBQzVCLCtCQUErQjt3QkFDL0IsNEJBQTRCO3FCQUM3QjtvQkFDRCxNQUFNLEVBQUUsZ0JBQU0sQ0FBQyxLQUFLO29CQUNw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SSxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUU7WUFDekQsU0FBUyxFQUFFLHdCQUFhLENBQUMsUUFBUTtZQUNqQyxhQUFhLEVBQUUsMkJBQWEsQ0FBQyxPQUFPO1NBQ3JDLENBQUMsQ0FBQztRQUVILElBQUksdUJBQWEsQ0FBQyxJQUFJLEVBQUUsaUJBQWlCLEVBQUU7WUFDekMsSUFBSSxFQUFFLFVBQVU7WUFDaEIsVUFBVSxFQUFFO2dCQUNWLElBQUkseUJBQWUsQ0FBQztvQkFDbEIsT0FBTyxFQUFFLENBQUMsMEJBQTBCLENBQUM7b0JBQ3JDLE1BQU0sRUFBRSxnQkFBTSxDQUFDLEtBQUs7b0JBQ3BCLFNBQVMsRUFBRSxDQUFDLEdBQUcsQ0FBQztpQkFDakIsQ0FBQztnQkFDRixJQUFJLHlCQUFlLENBQUM7b0JBQ2xCLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixFQUFFLG1CQUFtQixDQUFDO29CQUN0RCxNQUFNLEVBQUUsZ0JBQU0sQ0FBQyxLQUFLO29CQUNwQixTQUFTLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQztpQkFDdkMsQ0FBQzthQUNIO1lBQ0QsS0FBSyxFQUFFLENBQUMsYUFBYSxDQUFDO1NBQ3ZCLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQTFLRCx3Q0EwS0MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgQXdzLCBEdXJhdGlvbiwgUmVtb3ZhbFBvbGljeSB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IElTZWN1cml0eUdyb3VwLCBTZWN1cml0eUdyb3VwIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWVjMic7XG5pbXBvcnQge1xuICBFZmZlY3QsXG4gIElNYW5hZ2VkUG9saWN5LFxuICBJUm9sZSxcbiAgTWFuYWdlZFBvbGljeSxcbiAgUG9saWN5U3RhdGVtZW50LFxuICBSb2xlLFxuICBTZXJ2aWNlUHJpbmNpcGFsLFxufSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCB7XG4gIEFyY2hpdGVjdHVyZSxcbiAgQ29kZSxcbiAgRnVuY3Rpb24sXG4gIElGdW5jdGlvbixcbiAgSUxheWVyVmVyc2lvbixcbiAgTGF5ZXJWZXJzaW9uLFxuICBUcmFjaW5nLFxufSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhJztcbmltcG9ydCB7IElMb2dHcm91cCwgTG9nR3JvdXAsIFJldGVudGlvbkRheXMgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbG9ncyc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IElDYW5hcnlGdW5jdGlvbiB9IGZyb20gJy4vSUNhbmFyeUZ1bmN0aW9uJztcbmltcG9ydCB7IENhbmFyeUZ1bmN0aW9uUHJvcHMgfSBmcm9tICcuL3Byb3BzL0NhbmFyeUZ1bmN0aW9uUHJvcHMnO1xuaW1wb3J0IHsgTWV0cmljc0hlbHBlciB9IGZyb20gJy4uL3V0aWxpdGllcy9NZXRyaWNzSGVscGVyJztcblxuZXhwb3J0IGNsYXNzIENhbmFyeUZ1bmN0aW9uIGV4dGVuZHMgQ29uc3RydWN0IGltcGxlbWVudHMgSUNhbmFyeUZ1bmN0aW9uIHtcbiAgLyoqXG4gICAqIFRoZSBjYW5hcnkgZnVuY3Rpb25cbiAgICovXG4gIGZ1bmN0aW9uOiBJRnVuY3Rpb247XG5cbiAgLyoqXG4gICAqIFRoZSBsb2cgZ3JvdXAgd2hlcmUgdGhlIGNhbmFydHkgbG9ncyB3aWxsIGJlIHNlbnRcbiAgICovXG4gIGxvZ0dyb3VwOiBJTG9nR3JvdXA7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IENhbmFyeUZ1bmN0aW9uUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgbGV0IHhyYXlNYW5hZ2VkUG9saWN5OiBJTWFuYWdlZFBvbGljeSA9IG5ldyBNYW5hZ2VkUG9saWN5KFxuICAgICAgdGhpcyxcbiAgICAgICd4cmF5TWFuYWdlZFBvbGljeScsXG4gICAgICB7XG4gICAgICAgIHBhdGg6ICcvY2FuYXJ5LycsXG4gICAgICAgIHN0YXRlbWVudHM6IFtcbiAgICAgICAgICBuZXcgUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICAgICAgJ3hyYXk6UHV0VHJhY2VTZWdtZW50cycsXG4gICAgICAgICAgICAgICd4cmF5OlB1dFRlbGVtZXRyeVJlY29yZHMnLFxuICAgICAgICAgICAgICAneHJheTpHZXRTYW1wbGluZ1J1bGVzJyxcbiAgICAgICAgICAgICAgJ3hyYXk6R2V0U2FtcGxpbmdUYXJnZXRzJyxcbiAgICAgICAgICAgICAgJ3hyYXk6R2V0U2FtcGxpbmdTdGF0aXN0aWNTdW1tYXJpZXMnLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIGVmZmVjdDogRWZmZWN0LkFMTE9XLFxuICAgICAgICAgICAgcmVzb3VyY2VzOiBbJyonXSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgKTtcbiAgICBsZXQgZWMyTWFuYWdlZFBvbGljeSA9IG5ldyBNYW5hZ2VkUG9saWN5KHRoaXMsICdlYzJNYW5hZ2VkUG9saWN5Jywge1xuICAgICAgcGF0aDogJy9jYW5hcnkvJyxcbiAgICAgIHN0YXRlbWVudHM6IFtcbiAgICAgICAgbmV3IFBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgICAgJ2VjMjpDcmVhdGVOZXR3b3JrSW50ZXJmYWNlJyxcbiAgICAgICAgICAgICdlYzI6RGVzY3JpYmVOZXR3b3JrSW50ZXJmYWNlcycsXG4gICAgICAgICAgICAnZWMyOkRlbGV0ZU5ldHdvcmtJbnRlcmZhY2UnLFxuICAgICAgICAgIF0sXG4gICAgICAgICAgZWZmZWN0OiBFZmZlY3QuQUxMT1csXG4gICAgICAgICAgcmVzb3VyY2VzOiBbJyonXSxcbiAgICAgICAgfSksXG4gICAgICBdLFxuICAgIH0pO1xuXG4gICAgbGV0IGV4ZWN1dGlvblJvbGU6IElSb2xlID0gbmV3IFJvbGUodGhpcywgJ2V4ZWN1dGlvblJvbGUnLCB7XG4gICAgICBhc3N1bWVkQnk6IG5ldyBTZXJ2aWNlUHJpbmNpcGFsKCdsYW1iZGEuYW1hem9uYXdzLmNvbScpLFxuICAgICAgcGF0aDogJy9jYW5hcnkvJyxcbiAgICAgIG1hbmFnZWRQb2xpY2llczogW3hyYXlNYW5hZ2VkUG9saWN5LCBlYzJNYW5hZ2VkUG9saWN5XSxcbiAgICB9KTtcblxuICAgIC8qXG4gICAgbGV0IGNvZGU6IEFzc2V0Q29kZSA9IENvZGUuZnJvbUFzc2V0KHBhdGguam9pbihfX2Rpcm5hbWUsIFwic3JjL1wiKSwge1xuICAgICAgYnVuZGxpbmc6IHtcbiAgICAgICAgLy9pbWFnZTogbmV3IFJ1bnRpbWUoJ3B5dGhvbjMuMTM6bGF0ZXN0LWFybTY0JywgUnVudGltZUZhbWlseS5QWVRIT04pLmJ1bmRsaW5nSW1hZ2UsXG4gICAgICAgIGltYWdlOiBNZXRyaWNzSGVscGVyLlB5dGhvblJ1bnRpbWUuYnVuZGxpbmdJbWFnZSxcbiAgICAgICAgY29tbWFuZDogW1xuICAgICAgICAgICdiYXNoJywgJy1jJyxcbiAgICAgICAgICAncGlwIGluc3RhbGwgLS1uby1jYWNoZSAtciByZXF1aXJlbWVudHMudHh0IC10IC9hc3NldC1vdXRwdXQgJiYgY3AgLS1hcmNoaXZlIC0tdXBkYXRlIC4gL2Fzc2V0LW91dHB1dCcsXG4gICAgICAgIF0sXG4gICAgICAgIHBsYXRmb3JtOiAnbGludXgvYXJtNjQnLFxuICAgICAgfSxcbiAgICB9KTtcbiAgICAqL1xuICAgIGxldCBtb25pdG9yaW5nTGF5ZXI6IElMYXllclZlcnNpb24gPSBuZXcgTGF5ZXJWZXJzaW9uKFxuICAgICAgdGhpcyxcbiAgICAgICdNb25pdG9yaW5nTGF5ZXInLFxuICAgICAge1xuICAgICAgICBjb2RlOiBDb2RlLmZyb21Bc3NldChcbiAgICAgICAgICBwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi4vbW9uaXRvcmluZy9zcmMvbW9uaXRvcmluZy1sYXllci56aXAnKSxcbiAgICAgICAgKSxcbiAgICAgICAgY29tcGF0aWJsZUFyY2hpdGVjdHVyZXM6IFtBcmNoaXRlY3R1cmUuQVJNXzY0XSxcbiAgICAgICAgY29tcGF0aWJsZVJ1bnRpbWVzOiBbTWV0cmljc0hlbHBlci5QeXRob25SdW50aW1lXSxcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIGlmIChwcm9wcy52cGMgIT09IHVuZGVmaW5lZCAmJiBwcm9wcy52cGMgIT0gbnVsbCkge1xuICAgICAgbGV0IHNnOiBJU2VjdXJpdHlHcm91cCA9IG5ldyBTZWN1cml0eUdyb3VwKHRoaXMsICdjYW5hcnlTZWN1cml0eUdyb3VwJywge1xuICAgICAgICBkZXNjcmlwdGlvbjogJ0FsbG93IGNhbmFyeSB0byBjb21tdW5pY2F0ZSB3aXRoIGxvYWQgYmFsYW5jZXInLFxuICAgICAgICB2cGM6IHByb3BzLnZwYyxcbiAgICAgICAgYWxsb3dBbGxPdXRib3VuZDogdHJ1ZSxcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLmZ1bmN0aW9uID0gbmV3IEZ1bmN0aW9uKHRoaXMsICdjYW5hcnknLCB7XG4gICAgICAgIHJ1bnRpbWU6IE1ldHJpY3NIZWxwZXIuUHl0aG9uUnVudGltZSxcbiAgICAgICAgY29kZTogQ29kZS5mcm9tQXNzZXQocGF0aC5qb2luKF9fZGlybmFtZSwgJ3NyYy9jYW5hcnkuemlwJykpLFxuICAgICAgICBoYW5kbGVyOiAnaW5kZXguaGFuZGxlcicsXG4gICAgICAgIHJvbGU6IGV4ZWN1dGlvblJvbGUsXG4gICAgICAgIGFyY2hpdGVjdHVyZTogQXJjaGl0ZWN0dXJlLkFSTV82NCxcbiAgICAgICAgdHJhY2luZzogVHJhY2luZy5BQ1RJVkUsXG4gICAgICAgIHRpbWVvdXQ6IER1cmF0aW9uLnNlY29uZHMoMjQwKSxcbiAgICAgICAgbWVtb3J5U2l6ZTogNTEyLFxuICAgICAgICBsYXllcnM6IFttb25pdG9yaW5nTGF5ZXJdLFxuICAgICAgICBlbnZpcm9ubWVudDoge1xuICAgICAgICAgIFJFR0lPTjpBd3MuUkVHSU9OLFxuICAgICAgICAgIFBBUlRJVElPTjogQXdzLlBBUlRJVElPTixcbiAgICAgICAgICBUSU1FT1VUOlxuICAgICAgICAgICAgcHJvcHMuaHR0cFRpbWVvdXQgIT09IHVuZGVmaW5lZFxuICAgICAgICAgICAgICA/IHByb3BzLmh0dHBUaW1lb3V0LnRvU2Vjb25kcyh7aW50ZWdyYWw6IGZhbHNlfSkudG9TdHJpbmcoKVxuICAgICAgICAgICAgICA6ICcyJyxcbiAgICAgICAgICBJR05PUkVfU1NMX0VSUk9SUzogKFxuICAgICAgICAgICAgcHJvcHMuaWdub3JlVGxzRXJyb3JzICE9PSB1bmRlZmluZWQgJiYgcHJvcHMuaWdub3JlVGxzRXJyb3JzID09IHRydWVcbiAgICAgICAgICApXG4gICAgICAgICAgICAudG9TdHJpbmcoKVxuICAgICAgICAgICAgLnRvTG93ZXJDYXNlKCksXG4gICAgICAgIH0sXG4gICAgICAgIHZwYzogcHJvcHMudnBjLFxuICAgICAgICBzZWN1cml0eUdyb3VwczogW3NnXSxcbiAgICAgICAgdnBjU3VibmV0czogcHJvcHMuc3VibmV0U2VsZWN0aW9uLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZnVuY3Rpb24gPSBuZXcgRnVuY3Rpb24odGhpcywgJ2NhbmFyeScsIHtcbiAgICAgICAgcnVudGltZTogTWV0cmljc0hlbHBlci5QeXRob25SdW50aW1lLFxuICAgICAgICBjb2RlOiBDb2RlLmZyb21Bc3NldChwYXRoLmpvaW4oX19kaXJuYW1lLCAnc3JjL2NhbmFyeS56aXAnKSksXG4gICAgICAgIGhhbmRsZXI6ICdpbmRleC5oYW5kbGVyJyxcbiAgICAgICAgcm9sZTogZXhlY3V0aW9uUm9sZSxcbiAgICAgICAgYXJjaGl0ZWN0dXJlOiBBcmNoaXRlY3R1cmUuQVJNXzY0LFxuICAgICAgICB0cmFjaW5nOiBUcmFjaW5nLkFDVElWRSxcbiAgICAgICAgdGltZW91dDogRHVyYXRpb24uc2Vjb25kcygyNDApLFxuICAgICAgICBtZW1vcnlTaXplOiA1MTIsXG4gICAgICAgIGxheWVyczogW21vbml0b3JpbmdMYXllcl0sXG4gICAgICAgIGVudmlyb25tZW50OiB7XG4gICAgICAgICAgUkVHSU9OOiBBd3MuUkVHSU9OLFxuICAgICAgICAgIFBBUlRJVElPTjogQXdzLlBBUlRJVElPTixcbiAgICAgICAgICBUSU1FT1VUOlxuICAgICAgICAgICAgcHJvcHMuaHR0cFRpbWVvdXQgIT09IHVuZGVmaW5lZFxuICAgICAgICAgICAgICA/IHByb3BzLmh0dHBUaW1lb3V0LnRvU2Vjb25kcyh7aW50ZWdyYWw6IGZhbHNlfSkudG9TdHJpbmcoKVxuICAgICAgICAgICAgICA6ICcyJyxcbiAgICAgICAgICBJR05PUkVfU1NMX0VSUk9SUzogKFxuICAgICAgICAgICAgcHJvcHMuaWdub3JlVGxzRXJyb3JzICE9PSB1bmRlZmluZWQgJiYgcHJvcHMuaWdub3JlVGxzRXJyb3JzID09IHRydWVcbiAgICAgICAgICApXG4gICAgICAgICAgICAudG9TdHJpbmcoKVxuICAgICAgICAgICAgLnRvTG93ZXJDYXNlKCksXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICB0aGlzLmZ1bmN0aW9uLmFkZFBlcm1pc3Npb24oJ2ludm9rZVBlcm1pc3Npb24nLCB7XG4gICAgICBhY3Rpb246ICdsYW1iZGE6SW52b2tlRnVuY3Rpb24nLFxuICAgICAgcHJpbmNpcGFsOiBuZXcgU2VydmljZVByaW5jaXBhbCgnZXZlbnRzLmFtYXpvbmF3cy5jb20nKSxcbiAgICAgIHNvdXJjZUFybjogYGFybjoke0F3cy5QQVJUSVRJT059OmV2ZW50czoke0F3cy5SRUdJT059OiR7QXdzLkFDQ09VTlRfSUR9OnJ1bGUvKmBcbiAgICB9KTtcblxuICAgIHRoaXMubG9nR3JvdXAgPSBuZXcgTG9nR3JvdXAodGhpcywgJ2xvZ0dyb3VwJywge1xuICAgICAgbG9nR3JvdXBOYW1lOiBgL2F3cy9sYW1iZGEvJHt0aGlzLmZ1bmN0aW9uLmZ1bmN0aW9uTmFtZX1gLFxuICAgICAgcmV0ZW50aW9uOiBSZXRlbnRpb25EYXlzLk9ORV9XRUVLLFxuICAgICAgcmVtb3ZhbFBvbGljeTogUmVtb3ZhbFBvbGljeS5ERVNUUk9ZLFxuICAgIH0pO1xuXG4gICAgbmV3IE1hbmFnZWRQb2xpY3kodGhpcywgJ2N3TWFuYWdlZFBvbGljeScsIHtcbiAgICAgIHBhdGg6ICcvY2FuYXJ5LycsXG4gICAgICBzdGF0ZW1lbnRzOiBbXG4gICAgICAgIG5ldyBQb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgIGFjdGlvbnM6IFsnY2xvdWR3YXRjaDpQdXRNZXRyaWNEYXRhJ10sXG4gICAgICAgICAgZWZmZWN0OiBFZmZlY3QuQUxMT1csXG4gICAgICAgICAgcmVzb3VyY2VzOiBbJyonXSxcbiAgICAgICAgfSksXG4gICAgICAgIG5ldyBQb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgIGFjdGlvbnM6IFsnbG9nczpDcmVhdGVMb2dTdHJlYW0nLCAnbG9nczpQdXRMb2dFdmVudHMnXSxcbiAgICAgICAgICBlZmZlY3Q6IEVmZmVjdC5BTExPVyxcbiAgICAgICAgICByZXNvdXJjZXM6IFt0aGlzLmxvZ0dyb3VwLmxvZ0dyb3VwQXJuXSxcbiAgICAgICAgfSksXG4gICAgICBdLFxuICAgICAgcm9sZXM6IFtleGVjdXRpb25Sb2xlXSxcbiAgICB9KTtcbiAgfVxufVxuIl19
Binary file
@@ -7,7 +7,7 @@ export declare class ContributorInsightsWidget extends ConcreteWidget implements
7
7
  /**
8
8
  * The widget properties
9
9
  */
10
- properties: ContributorInsightWidgetProps;
10
+ private readonly props;
11
11
  /**
12
12
  * Creates the widget
13
13
  * @param props
@@ -14,8 +14,8 @@ class ContributorInsightsWidget extends aws_cloudwatch_1.ConcreteWidget {
14
14
  * @param props
15
15
  */
16
16
  constructor(props) {
17
- super(props.width === undefined ? 6 : props.width, props.height === undefined ? 6 : props.height);
18
- this.properties = props;
17
+ super(props.width || 6, props.height || 6);
18
+ this.props = props;
19
19
  }
20
20
  /**
21
21
  * Converts the widget into an array of JSON objects (not string), this returns
@@ -31,25 +31,21 @@ class ContributorInsightsWidget extends aws_cloudwatch_1.ConcreteWidget {
31
31
  x: this.x,
32
32
  y: this.y,
33
33
  properties: {
34
+ view: 'timeSeries',
35
+ title: this.props.title,
36
+ region: this.props.region || aws_cdk_lib_1.Aws.REGION,
34
37
  insightRule: {
35
- maxContributorCount: this.properties.topContributors,
36
- orderBy: this.properties.orderStatistic,
37
- ruleName: this.properties.insightRule.attrRuleName,
38
- },
39
- region: this.properties.region !== undefined
40
- ? this.properties.region
41
- : aws_cdk_lib_1.Aws.REGION,
42
- legend: {
43
- position: this.properties.legendPosition,
38
+ maxContributorCount: this.props.topContributors,
39
+ orderBy: this.props.orderStatistic,
40
+ ruleName: this.props.insightRule.attrRuleName,
44
41
  },
45
- view: 'timeSeries',
46
- period: this.properties.period.toSeconds(),
47
- title: this.properties.title,
48
- accountId: this.properties.accountId,
42
+ legend: this.props.legendPosition !== undefined ? { position: this.props.legendPosition } : undefined,
43
+ period: this.props.period?.toSeconds(),
44
+ accountId: this.props.accountId
49
45
  },
50
46
  },
51
47
  ];
52
48
  }
53
49
  }
54
50
  exports.ContributorInsightsWidget = ContributorInsightsWidget;
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29udHJpYnV0b3JJbnNpZ2h0c1dpZGdldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXNoYm9hcmRzL0NvbnRyaWJ1dG9ySW5zaWdodHNXaWRnZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUVBQXFFO0FBQ3JFLHNDQUFzQztBQUN0QywrREFBcUU7QUFFckUsNkNBQWtDO0FBRWxDOztHQUVHO0FBQ0gsTUFBYSx5QkFDWCxTQUFRLCtCQUFjO0lBT3RCOzs7T0FHRztJQUNILFlBQVksS0FBb0M7UUFDOUMsS0FBSyxDQUNILEtBQUssQ0FBQyxLQUFLLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQzNDLEtBQUssQ0FBQyxNQUFNLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQzlDLENBQUM7UUFDRixJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztJQUMxQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILE1BQU07UUFDSixPQUFPO1lBQ0w7Z0JBQ0UsSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO2dCQUNqQixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07Z0JBQ25CLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDVCxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQ1QsVUFBVSxFQUFFO29CQUNWLFdBQVcsRUFBRTt3QkFDWCxtQkFBbUIsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLGVBQWU7d0JBQ3BELE9BQU8sRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWM7d0JBQ3ZDLFFBQVEsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxZQUFZO3FCQUNuRDtvQkFDRCxNQUFNLEVBQ0osSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEtBQUssU0FBUzt3QkFDbEMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTTt3QkFDeEIsQ0FBQyxDQUFBLGlCQUFHLENBQUMsTUFBTTtvQkFDZixNQUFNLEVBQUU7d0JBQ04sUUFBUSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsY0FBYztxQkFDekM7b0JBQ0QsSUFBSSxFQUFFLFlBQVk7b0JBQ2xCLE1BQU0sRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUU7b0JBQzFDLEtBQUssRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUs7b0JBQzVCLFNBQVMsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVM7aUJBQ3JDO2FBQ0Y7U0FDRixDQUFDO0lBQ0osQ0FBQztDQUNGO0FBdERELDhEQXNEQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcbmltcG9ydCB7IENvbmNyZXRlV2lkZ2V0LCBJV2lkZ2V0IH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWNsb3Vkd2F0Y2gnO1xuaW1wb3J0IHsgQ29udHJpYnV0b3JJbnNpZ2h0V2lkZ2V0UHJvcHMgfSBmcm9tICcuL3Byb3BzL0NvbnRyaWJ1dG9ySW5zaWdodFdpZGdldFByb3BzJztcbmltcG9ydCB7IEF3cyB9IGZyb20gJ2F3cy1jZGstbGliJztcblxuLyoqXG4gKiBBIENvbnRyaWJ1dG9yIEluc2lnaHQgZGFzaGJvYXJkIHdpZGdldFxuICovXG5leHBvcnQgY2xhc3MgQ29udHJpYnV0b3JJbnNpZ2h0c1dpZGdldFxuICBleHRlbmRzIENvbmNyZXRlV2lkZ2V0XG4gIGltcGxlbWVudHMgSVdpZGdldCB7XG4gIC8qKlxuICAgKiBUaGUgd2lkZ2V0IHByb3BlcnRpZXNcbiAgICovXG4gIHByb3BlcnRpZXM6IENvbnRyaWJ1dG9ySW5zaWdodFdpZGdldFByb3BzO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIHRoZSB3aWRnZXRcbiAgICogQHBhcmFtIHByb3BzXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihwcm9wczogQ29udHJpYnV0b3JJbnNpZ2h0V2lkZ2V0UHJvcHMpIHtcbiAgICBzdXBlcihcbiAgICAgIHByb3BzLndpZHRoID09PSB1bmRlZmluZWQgPyA2IDogcHJvcHMud2lkdGgsXG4gICAgICBwcm9wcy5oZWlnaHQgPT09IHVuZGVmaW5lZCA/IDYgOiBwcm9wcy5oZWlnaHQsXG4gICAgKTtcbiAgICB0aGlzLnByb3BlcnRpZXMgPSBwcm9wcztcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0cyB0aGUgd2lkZ2V0IGludG8gYW4gYXJyYXkgb2YgSlNPTiBvYmplY3RzIChub3Qgc3RyaW5nKSwgdGhpcyByZXR1cm5zXG4gICAqIGEgc2luZ2xlIGl0ZW0gaW4gdGhlIGFycmF5XG4gICAqIEByZXR1cm5zIEFuIGFycmF5IG9mIGRpY3Rpb25hcmllc1xuICAgKi9cbiAgdG9Kc29uKCk6IGFueVtdIHtcbiAgICByZXR1cm4gW1xuICAgICAge1xuICAgICAgICB0eXBlOiAnbWV0cmljJyxcbiAgICAgICAgd2lkdGg6IHRoaXMud2lkdGgsXG4gICAgICAgIGhlaWdodDogdGhpcy5oZWlnaHQsXG4gICAgICAgIHg6IHRoaXMueCxcbiAgICAgICAgeTogdGhpcy55LFxuICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgaW5zaWdodFJ1bGU6IHtcbiAgICAgICAgICAgIG1heENvbnRyaWJ1dG9yQ291bnQ6IHRoaXMucHJvcGVydGllcy50b3BDb250cmlidXRvcnMsXG4gICAgICAgICAgICBvcmRlckJ5OiB0aGlzLnByb3BlcnRpZXMub3JkZXJTdGF0aXN0aWMsXG4gICAgICAgICAgICBydWxlTmFtZTogdGhpcy5wcm9wZXJ0aWVzLmluc2lnaHRSdWxlLmF0dHJSdWxlTmFtZSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHJlZ2lvbjpcbiAgICAgICAgICAgIHRoaXMucHJvcGVydGllcy5yZWdpb24gIT09IHVuZGVmaW5lZFxuICAgICAgICAgICAgICA/IHRoaXMucHJvcGVydGllcy5yZWdpb25cbiAgICAgICAgICAgICAgOkF3cy5SRUdJT04sXG4gICAgICAgICAgbGVnZW5kOiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogdGhpcy5wcm9wZXJ0aWVzLmxlZ2VuZFBvc2l0aW9uLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgdmlldzogJ3RpbWVTZXJpZXMnLFxuICAgICAgICAgIHBlcmlvZDogdGhpcy5wcm9wZXJ0aWVzLnBlcmlvZC50b1NlY29uZHMoKSxcbiAgICAgICAgICB0aXRsZTogdGhpcy5wcm9wZXJ0aWVzLnRpdGxlLFxuICAgICAgICAgIGFjY291bnRJZDogdGhpcy5wcm9wZXJ0aWVzLmFjY291bnRJZCxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgXTtcbiAgfVxufVxuIl19
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29udHJpYnV0b3JJbnNpZ2h0c1dpZGdldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXNoYm9hcmRzL0NvbnRyaWJ1dG9ySW5zaWdodHNXaWRnZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUVBQXFFO0FBQ3JFLHNDQUFzQztBQUN0QywrREFBcUU7QUFFckUsNkNBQWtDO0FBRWxDOztHQUVHO0FBQ0gsTUFBYSx5QkFDWCxTQUFRLCtCQUFjO0lBT3RCOzs7T0FHRztJQUNILFlBQVksS0FBb0M7UUFDOUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksQ0FBQyxFQUFFLEtBQUssQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDM0MsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDckIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxNQUFNO1FBQ0osT0FBTztZQUNMO2dCQUNFLElBQUksRUFBRSxRQUFRO2dCQUNkLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztnQkFDakIsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO2dCQUNuQixDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQ1QsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUNULFVBQVUsRUFBRTtvQkFDVixJQUFJLEVBQUUsWUFBWTtvQkFDbEIsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSztvQkFDdkIsTUFBTSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxJQUFHLGlCQUFHLENBQUMsTUFBTTtvQkFDdEMsV0FBVyxFQUFFO3dCQUNYLG1CQUFtQixFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZTt3QkFDL0MsT0FBTyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYzt3QkFDbEMsUUFBUSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLFlBQVk7cUJBQzlDO29CQUNELE1BQU0sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVM7b0JBQ3JHLE1BQU0sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxTQUFTLEVBQUU7b0JBQ3RDLFNBQVMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVM7aUJBQ2hDO2FBQ0Y7U0FDRixDQUFDO0lBQ0osQ0FBQztDQUNGO0FBOUNELDhEQThDQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcbmltcG9ydCB7IENvbmNyZXRlV2lkZ2V0LCBJV2lkZ2V0IH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWNsb3Vkd2F0Y2gnO1xuaW1wb3J0IHsgQ29udHJpYnV0b3JJbnNpZ2h0V2lkZ2V0UHJvcHMgfSBmcm9tICcuL3Byb3BzL0NvbnRyaWJ1dG9ySW5zaWdodFdpZGdldFByb3BzJztcbmltcG9ydCB7IEF3cyB9IGZyb20gJ2F3cy1jZGstbGliJztcblxuLyoqXG4gKiBBIENvbnRyaWJ1dG9yIEluc2lnaHQgZGFzaGJvYXJkIHdpZGdldFxuICovXG5leHBvcnQgY2xhc3MgQ29udHJpYnV0b3JJbnNpZ2h0c1dpZGdldFxuICBleHRlbmRzIENvbmNyZXRlV2lkZ2V0XG4gIGltcGxlbWVudHMgSVdpZGdldCB7XG4gIC8qKlxuICAgKiBUaGUgd2lkZ2V0IHByb3BlcnRpZXNcbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgcHJvcHM6IENvbnRyaWJ1dG9ySW5zaWdodFdpZGdldFByb3BzO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIHRoZSB3aWRnZXRcbiAgICogQHBhcmFtIHByb3BzXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihwcm9wczogQ29udHJpYnV0b3JJbnNpZ2h0V2lkZ2V0UHJvcHMpIHtcbiAgICBzdXBlcihwcm9wcy53aWR0aCB8fCA2LCBwcm9wcy5oZWlnaHQgfHwgNik7XG4gICAgdGhpcy5wcm9wcyA9IHByb3BzO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnRzIHRoZSB3aWRnZXQgaW50byBhbiBhcnJheSBvZiBKU09OIG9iamVjdHMgKG5vdCBzdHJpbmcpLCB0aGlzIHJldHVybnNcbiAgICogYSBzaW5nbGUgaXRlbSBpbiB0aGUgYXJyYXlcbiAgICogQHJldHVybnMgQW4gYXJyYXkgb2YgZGljdGlvbmFyaWVzXG4gICAqL1xuICB0b0pzb24oKTogYW55W10ge1xuICAgIHJldHVybiBbXG4gICAgICB7XG4gICAgICAgIHR5cGU6ICdtZXRyaWMnLFxuICAgICAgICB3aWR0aDogdGhpcy53aWR0aCxcbiAgICAgICAgaGVpZ2h0OiB0aGlzLmhlaWdodCxcbiAgICAgICAgeDogdGhpcy54LFxuICAgICAgICB5OiB0aGlzLnksXG4gICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICB2aWV3OiAndGltZVNlcmllcycsXG4gICAgICAgICAgdGl0bGU6IHRoaXMucHJvcHMudGl0bGUsXG4gICAgICAgICAgcmVnaW9uOiB0aGlzLnByb3BzLnJlZ2lvbnx8IEF3cy5SRUdJT04sICAgICBcbiAgICAgICAgICBpbnNpZ2h0UnVsZToge1xuICAgICAgICAgICAgbWF4Q29udHJpYnV0b3JDb3VudDogdGhpcy5wcm9wcy50b3BDb250cmlidXRvcnMsXG4gICAgICAgICAgICBvcmRlckJ5OiB0aGlzLnByb3BzLm9yZGVyU3RhdGlzdGljLFxuICAgICAgICAgICAgcnVsZU5hbWU6IHRoaXMucHJvcHMuaW5zaWdodFJ1bGUuYXR0clJ1bGVOYW1lLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgbGVnZW5kOiB0aGlzLnByb3BzLmxlZ2VuZFBvc2l0aW9uICE9PSB1bmRlZmluZWQgPyB7IHBvc2l0aW9uOiB0aGlzLnByb3BzLmxlZ2VuZFBvc2l0aW9uIH0gOiB1bmRlZmluZWQsXG4gICAgICAgICAgcGVyaW9kOiB0aGlzLnByb3BzLnBlcmlvZD8udG9TZWNvbmRzKCksXG4gICAgICAgICAgYWNjb3VudElkOiB0aGlzLnByb3BzLmFjY291bnRJZFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICBdO1xuICB9XG59XG4iXX0=