@horietakehiro/aws-cdk-utul 0.41.56 → 0.41.58

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 (135) hide show
  1. package/lib/types/cfn-resource-types/aws-apigatewayv2-integration.d.ts +1 -1
  2. package/lib/types/cfn-resource-types/aws-apigatewayv2-integration.js +1 -1
  3. package/lib/types/cfn-resource-types/aws-arcregionswitch-plan.d.ts +35 -2
  4. package/lib/types/cfn-resource-types/aws-arcregionswitch-plan.js +1 -1
  5. package/lib/types/cfn-resource-types/aws-autoscaling-autoscalinggroup.d.ts +8 -0
  6. package/lib/types/cfn-resource-types/aws-autoscaling-autoscalinggroup.js +1 -1
  7. package/lib/types/cfn-resource-types/aws-bedrockagentcore-gateway.d.ts +86 -1
  8. package/lib/types/cfn-resource-types/aws-bedrockagentcore-gateway.js +1 -1
  9. package/lib/types/cfn-resource-types/aws-bedrockagentcore-gatewaytarget.d.ts +13 -1
  10. package/lib/types/cfn-resource-types/aws-bedrockagentcore-gatewaytarget.js +1 -1
  11. package/lib/types/cfn-resource-types/aws-bedrockagentcore-memory.d.ts +53 -4
  12. package/lib/types/cfn-resource-types/aws-bedrockagentcore-memory.js +1 -1
  13. package/lib/types/cfn-resource-types/aws-bedrockagentcore-runtime.d.ts +4 -0
  14. package/lib/types/cfn-resource-types/aws-bedrockagentcore-runtime.js +1 -1
  15. package/lib/types/cfn-resource-types/aws-billing-billingview.d.ts +8 -0
  16. package/lib/types/cfn-resource-types/aws-billing-billingview.js +1 -1
  17. package/lib/types/cfn-resource-types/aws-cases-caserule.d.ts +149 -0
  18. package/lib/types/cfn-resource-types/aws-cases-caserule.js +3 -0
  19. package/lib/types/cfn-resource-types/aws-cases-domain.d.ts +40 -0
  20. package/lib/types/cfn-resource-types/aws-cases-domain.js +3 -0
  21. package/lib/types/cfn-resource-types/aws-cases-field.d.ts +57 -0
  22. package/lib/types/cfn-resource-types/aws-cases-field.js +3 -0
  23. package/lib/types/cfn-resource-types/aws-cases-layout.d.ts +101 -0
  24. package/lib/types/cfn-resource-types/aws-cases-layout.js +3 -0
  25. package/lib/types/cfn-resource-types/aws-cases-template.d.ts +96 -0
  26. package/lib/types/cfn-resource-types/aws-cases-template.js +3 -0
  27. package/lib/types/cfn-resource-types/aws-cloudfront-distribution.d.ts +4 -0
  28. package/lib/types/cfn-resource-types/aws-cloudfront-distribution.js +1 -1
  29. package/lib/types/cfn-resource-types/aws-connect-contactflowmodule.d.ts +14 -0
  30. package/lib/types/cfn-resource-types/aws-connect-contactflowmodule.js +1 -1
  31. package/lib/types/cfn-resource-types/aws-connect-evaluationform.d.ts +27 -15
  32. package/lib/types/cfn-resource-types/aws-connect-evaluationform.js +1 -1
  33. package/lib/types/cfn-resource-types/aws-connect-hoursofoperation.d.ts +59 -0
  34. package/lib/types/cfn-resource-types/aws-connect-hoursofoperation.js +1 -1
  35. package/lib/types/cfn-resource-types/aws-customerprofiles-domain.d.ts +0 -2
  36. package/lib/types/cfn-resource-types/aws-customerprofiles-domain.js +1 -1
  37. package/lib/types/cfn-resource-types/aws-datasync-locationnfs.d.ts +1 -1
  38. package/lib/types/cfn-resource-types/aws-datasync-locationnfs.js +1 -1
  39. package/lib/types/cfn-resource-types/aws-datasync-locationsmb.d.ts +1 -1
  40. package/lib/types/cfn-resource-types/aws-datasync-locationsmb.js +1 -1
  41. package/lib/types/cfn-resource-types/aws-dms-dataprovider.d.ts +1 -1
  42. package/lib/types/cfn-resource-types/aws-dms-dataprovider.js +1 -1
  43. package/lib/types/cfn-resource-types/aws-ec2-clientvpnendpoint.d.ts +2 -0
  44. package/lib/types/cfn-resource-types/aws-ec2-clientvpnendpoint.js +1 -1
  45. package/lib/types/cfn-resource-types/aws-ec2-ec2fleet.d.ts +59 -58
  46. package/lib/types/cfn-resource-types/aws-ec2-ec2fleet.js +1 -1
  47. package/lib/types/cfn-resource-types/aws-ec2-networkinterfaceattachment.d.ts +13 -7
  48. package/lib/types/cfn-resource-types/aws-ec2-networkinterfaceattachment.js +1 -1
  49. package/lib/types/cfn-resource-types/aws-ec2-spotfleet.d.ts +138 -136
  50. package/lib/types/cfn-resource-types/aws-ec2-spotfleet.js +1 -1
  51. package/lib/types/cfn-resource-types/aws-ec2-volume.d.ts +29 -13
  52. package/lib/types/cfn-resource-types/aws-ec2-volume.js +1 -1
  53. package/lib/types/cfn-resource-types/aws-ec2-vpnconcentrator.d.ts +14 -9
  54. package/lib/types/cfn-resource-types/aws-ec2-vpnconcentrator.js +1 -1
  55. package/lib/types/cfn-resource-types/aws-ec2-vpnconnection.d.ts +17 -0
  56. package/lib/types/cfn-resource-types/aws-ec2-vpnconnection.js +1 -1
  57. package/lib/types/cfn-resource-types/aws-ecr-pulltimeupdateexclusion.d.ts +5 -6
  58. package/lib/types/cfn-resource-types/aws-ecr-pulltimeupdateexclusion.js +1 -1
  59. package/lib/types/cfn-resource-types/aws-ecr-repositorycreationtemplate.d.ts +2 -2
  60. package/lib/types/cfn-resource-types/aws-ecr-repositorycreationtemplate.js +1 -1
  61. package/lib/types/cfn-resource-types/aws-ecs-capacityprovider.d.ts +1 -0
  62. package/lib/types/cfn-resource-types/aws-ecs-capacityprovider.js +1 -1
  63. package/lib/types/cfn-resource-types/aws-ecs-service.d.ts +2 -0
  64. package/lib/types/cfn-resource-types/aws-ecs-service.js +1 -1
  65. package/lib/types/cfn-resource-types/aws-emr-step.d.ts +8 -0
  66. package/lib/types/cfn-resource-types/aws-emr-step.js +1 -1
  67. package/lib/types/cfn-resource-types/aws-groundstation-dataflowendpointgroupv2.d.ts +167 -0
  68. package/lib/types/cfn-resource-types/aws-groundstation-dataflowendpointgroupv2.js +3 -0
  69. package/lib/types/cfn-resource-types/aws-iot-topicrule.d.ts +7 -0
  70. package/lib/types/cfn-resource-types/aws-iot-topicrule.js +1 -1
  71. package/lib/types/cfn-resource-types/aws-kafkaconnect-connector.d.ts +4 -0
  72. package/lib/types/cfn-resource-types/aws-kafkaconnect-connector.js +1 -1
  73. package/lib/types/cfn-resource-types/aws-lex-bot.d.ts +39 -13
  74. package/lib/types/cfn-resource-types/aws-lex-bot.js +1 -1
  75. package/lib/types/cfn-resource-types/aws-lex-botalias.d.ts +4 -1
  76. package/lib/types/cfn-resource-types/aws-lex-botalias.js +1 -1
  77. package/lib/types/cfn-resource-types/aws-logs-loggroup.d.ts +4 -0
  78. package/lib/types/cfn-resource-types/aws-logs-loggroup.js +1 -1
  79. package/lib/types/cfn-resource-types/aws-logs-metricfilter.d.ts +6 -0
  80. package/lib/types/cfn-resource-types/aws-logs-metricfilter.js +1 -1
  81. package/lib/types/cfn-resource-types/aws-logs-subscriptionfilter.d.ts +6 -0
  82. package/lib/types/cfn-resource-types/aws-logs-subscriptionfilter.js +1 -1
  83. package/lib/types/cfn-resource-types/aws-logs-transformer.d.ts +3 -1
  84. package/lib/types/cfn-resource-types/aws-logs-transformer.js +1 -1
  85. package/lib/types/cfn-resource-types/aws-mediapackagev2-originendpoint.d.ts +2 -0
  86. package/lib/types/cfn-resource-types/aws-mediapackagev2-originendpoint.js +1 -1
  87. package/lib/types/cfn-resource-types/aws-mediatailor-playbackconfiguration.d.ts +35 -0
  88. package/lib/types/cfn-resource-types/aws-mediatailor-playbackconfiguration.js +1 -1
  89. package/lib/types/cfn-resource-types/aws-odb-odbpeeringconnection.d.ts +8 -0
  90. package/lib/types/cfn-resource-types/aws-odb-odbpeeringconnection.js +1 -1
  91. package/lib/types/cfn-resource-types/aws-paymentcryptography-key.d.ts +1 -1
  92. package/lib/types/cfn-resource-types/aws-paymentcryptography-key.js +1 -1
  93. package/lib/types/cfn-resource-types/aws-pcs-cluster.d.ts +2 -2
  94. package/lib/types/cfn-resource-types/aws-pcs-cluster.js +1 -1
  95. package/lib/types/cfn-resource-types/aws-quicksight-dashboard.d.ts +38 -14
  96. package/lib/types/cfn-resource-types/aws-quicksight-dashboard.js +1 -1
  97. package/lib/types/cfn-resource-types/aws-quicksight-dataset.d.ts +10 -10
  98. package/lib/types/cfn-resource-types/aws-quicksight-dataset.js +1 -1
  99. package/lib/types/cfn-resource-types/aws-quicksight-datasource.d.ts +16 -10
  100. package/lib/types/cfn-resource-types/aws-quicksight-datasource.js +1 -1
  101. package/lib/types/cfn-resource-types/aws-rds-dbinstance.d.ts +27 -0
  102. package/lib/types/cfn-resource-types/aws-rds-dbinstance.js +1 -1
  103. package/lib/types/cfn-resource-types/aws-route53-hostedzone.d.ts +3 -3
  104. package/lib/types/cfn-resource-types/aws-route53-hostedzone.js +1 -1
  105. package/lib/types/cfn-resource-types/aws-route53resolver-resolverendpoint.d.ts +8 -0
  106. package/lib/types/cfn-resource-types/aws-route53resolver-resolverendpoint.js +1 -1
  107. package/lib/types/cfn-resource-types/aws-route53resolver-resolverruleassociation.d.ts +1 -0
  108. package/lib/types/cfn-resource-types/aws-route53resolver-resolverruleassociation.js +1 -1
  109. package/lib/types/cfn-resource-types/aws-s3-bucket.d.ts +10 -2
  110. package/lib/types/cfn-resource-types/aws-s3-bucket.js +1 -1
  111. package/lib/types/cfn-resource-types/aws-sagemaker-cluster.d.ts +4 -0
  112. package/lib/types/cfn-resource-types/aws-sagemaker-cluster.js +1 -1
  113. package/lib/types/cfn-resource-types/aws-secretsmanager-secret.d.ts +3 -0
  114. package/lib/types/cfn-resource-types/aws-secretsmanager-secret.js +1 -1
  115. package/lib/types/cfn-resource-types/aws-securityhub-connectorv2.d.ts +25 -23
  116. package/lib/types/cfn-resource-types/aws-securityhub-connectorv2.js +1 -1
  117. package/lib/types/cfn-resource-types/aws-ses-configurationset.d.ts +23 -0
  118. package/lib/types/cfn-resource-types/aws-ses-configurationset.js +1 -1
  119. package/lib/types/cfn-resource-types/aws-ses-tenant.d.ts +48 -0
  120. package/lib/types/cfn-resource-types/aws-ses-tenant.js +3 -0
  121. package/lib/types/cfn-resource-types/aws-ssm-document.d.ts +37 -37
  122. package/lib/types/cfn-resource-types/aws-ssm-document.js +1 -1
  123. package/lib/types/cfn-resource-types/aws-ssm-maintenancewindowtarget.d.ts +29 -2
  124. package/lib/types/cfn-resource-types/aws-ssm-maintenancewindowtarget.js +1 -1
  125. package/lib/types/cfn-resource-types/aws-ssm-maintenancewindowtask.d.ts +52 -1
  126. package/lib/types/cfn-resource-types/aws-ssm-maintenancewindowtask.js +1 -1
  127. package/lib/types/cfn-resource-types/aws-wisdom-aiprompt.d.ts +1 -1
  128. package/lib/types/cfn-resource-types/aws-wisdom-aiprompt.js +1 -1
  129. package/lib/types/cfn-resource-types/aws-wisdom-assistantassociation.d.ts +9 -3
  130. package/lib/types/cfn-resource-types/aws-wisdom-assistantassociation.js +1 -1
  131. package/lib/types/cfn-resource-types/aws-workspacesweb-usersettings.d.ts +1 -0
  132. package/lib/types/cfn-resource-types/aws-workspacesweb-usersettings.js +1 -1
  133. package/lib/types/cfn-resource-types.d.ts +14 -0
  134. package/lib/types/cfn-resource-types.js +43 -28
  135. package/package.json +1 -1
@@ -31,7 +31,7 @@ export interface _AWS_QUICKSIGHT_DATASET {
31
31
  */
32
32
  CreatedTime?: string;
33
33
  /**
34
- * <p>When you create the dataset, Amazon QuickSight adds the dataset to these folders.</p>
34
+ * <p>When you create the dataset, Quick Suite adds the dataset to these folders.</p>
35
35
  *
36
36
  * @minItems 0
37
37
  * @maxItems 10
@@ -83,7 +83,7 @@ export interface _AWS_QUICKSIGHT_DATASET {
83
83
  DataSetRefreshProperties?: DataSetRefreshProperties;
84
84
  RowLevelPermissionTagConfiguration?: RowLevelPermissionTagConfiguration;
85
85
  /**
86
- * <p>Groupings of columns that work together in certain Amazon QuickSight features. Currently, only geospatial hierarchy is supported.</p>
86
+ * <p>Groupings of columns that work together in certain Quick Suite features. Currently, only geospatial hierarchy is supported.</p>
87
87
  *
88
88
  * @minItems 1
89
89
  * @maxItems 8
@@ -114,7 +114,7 @@ export interface _AWS_QUICKSIGHT_DATASET {
114
114
  /**
115
115
  * <p>Information about a dataset that contains permissions for row-level security (RLS).
116
116
  * The permissions dataset maps fields to users or groups. For more information, see
117
- * <a href="https://docs.aws.amazon.com/quicksight/latest/user/restrict-access-to-a-data-set-using-row-level-security.html">Using Row-Level Security (RLS) to Restrict Access to a Dataset</a> in the <i>Amazon QuickSight User
117
+ * <a href="https://docs.aws.amazon.com/quicksight/latest/user/restrict-access-to-a-data-set-using-row-level-security.html">Using Row-Level Security (RLS) to Restrict Access to a Dataset</a> in the <i>Amazon Quick Suite User
118
118
  * Guide</i>.</p>
119
119
  * <p>The option to deny permissions by setting <code>PermissionPolicy</code> to <code>DENY_ACCESS</code> is
120
120
  * not supported for new RLS datasets.</p>
@@ -163,7 +163,7 @@ export interface ColumnLevelPermissionRule {
163
163
  */
164
164
  ColumnNames?: string[];
165
165
  /**
166
- * <p>An array of Amazon Resource Names (ARNs) for Amazon QuickSight users or groups.</p>
166
+ * <p>An array of Amazon Resource Names (ARNs) for Quick Suite users or groups.</p>
167
167
  *
168
168
  * @minItems 1
169
169
  * @maxItems 100
@@ -186,10 +186,10 @@ export interface ResourcePermission {
186
186
  * following:</p>
187
187
  * <ul>
188
188
  * <li>
189
- * <p>The ARN of an Amazon QuickSight user or group associated with a data source or dataset. (This is common.)</p>
189
+ * <p>The ARN of an Amazon Quick Suite user or group associated with a data source or dataset. (This is common.)</p>
190
190
  * </li>
191
191
  * <li>
192
- * <p>The ARN of an Amazon QuickSight user, group, or namespace associated with an analysis, dashboard, template, or theme. (This is common.)</p>
192
+ * <p>The ARN of an Amazon Quick Suite user, group, or namespace associated with an analysis, dashboard, template, or theme. (This is common.)</p>
193
193
  * </li>
194
194
  * <li>
195
195
  * <p>The ARN of an Amazon Web Services account root: This is an IAM ARN rather than a QuickSight
@@ -487,7 +487,7 @@ export interface RefreshFailureEmailAlert {
487
487
  AlertStatus?: RefreshFailureAlertStatus;
488
488
  }
489
489
  /**
490
- * <p>Groupings of columns that work together in certain Amazon QuickSight features. This is
490
+ * <p>Groupings of columns that work together in certain Amazon Quick Suite features. This is
491
491
  * a variant type structure. For this structure to be valid, only one of the attributes can
492
492
  * be non-null.</p>
493
493
  */
@@ -853,7 +853,7 @@ export interface CastColumnTypeOperation {
853
853
  SubType?: ColumnDataSubType;
854
854
  /**
855
855
  * <p>When casting a column from string to datetime type, you can supply a string in a
856
- * format supported by Amazon QuickSight to denote the source data format.</p>
856
+ * format supported by Amazon Quick Suite to denote the source data format.</p>
857
857
  */
858
858
  Format?: string;
859
859
  NewColumnType: ColumnDataType;
@@ -879,7 +879,7 @@ export interface CreateColumnsOperation {
879
879
  export interface CalculatedColumn {
880
880
  /**
881
881
  * <p>A unique ID to identify a calculated column. During a dataset update, if the column ID
882
- * of a calculated column matches that of an existing calculated column, Amazon QuickSight
882
+ * of a calculated column matches that of an existing calculated column, Amazon Quick Suite
883
883
  * preserves the existing calculated column.</p>
884
884
  */
885
885
  ColumnId: string;
@@ -973,7 +973,7 @@ export interface JoinInstruction {
973
973
  export interface JoinKeyProperties {
974
974
  /**
975
975
  * <p>A value that indicates that a row in a table is uniquely identified by the columns in
976
- * a join key. This is used by Amazon QuickSight to optimize query performance.</p>
976
+ * a join key. This is used by Quick Suite to optimize query performance.</p>
977
977
  */
978
978
  UniqueKey?: boolean;
979
979
  }
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLXF1aWNrc2lnaHQtZGF0YXNldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImF3cy1xdWlja3NpZ2h0LWRhdGFzZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIFN0YXR1cyA9IChcIkVOQUJMRURcIiB8IFwiRElTQUJMRURcIilcbmV4cG9ydCB0eXBlIFJvd0xldmVsUGVybWlzc2lvbkZvcm1hdFZlcnNpb24gPSAoXCJWRVJTSU9OXzFcIiB8IFwiVkVSU0lPTl8yXCIpXG5leHBvcnQgdHlwZSBSb3dMZXZlbFBlcm1pc3Npb25Qb2xpY3kgPSAoXCJHUkFOVF9BQ0NFU1NcIiB8IFwiREVOWV9BQ0NFU1NcIilcbmV4cG9ydCB0eXBlIERhdGFTZXRVc2VBcyA9IFwiUkxTX1JVTEVTXCJcbmV4cG9ydCB0eXBlIElucHV0Q29sdW1uRGF0YVR5cGUgPSAoXCJTVFJJTkdcIiB8IFwiSU5URUdFUlwiIHwgXCJERUNJTUFMXCIgfCBcIkRBVEVUSU1FXCIgfCBcIkJJVFwiIHwgXCJCT09MRUFOXCIgfCBcIkpTT05cIilcbmV4cG9ydCB0eXBlIENvbHVtbkRhdGFTdWJUeXBlID0gKFwiRkxPQVRcIiB8IFwiRklYRURcIilcbmV4cG9ydCB0eXBlIFRleHRRdWFsaWZpZXIgPSAoXCJET1VCTEVfUVVPVEVcIiB8IFwiU0lOR0xFX1FVT1RFXCIpXG5leHBvcnQgdHlwZSBGaWxlRm9ybWF0ID0gKFwiQ1NWXCIgfCBcIlRTVlwiIHwgXCJDTEZcIiB8IFwiRUxGXCIgfCBcIlhMU1hcIiB8IFwiSlNPTlwiKVxuZXhwb3J0IHR5cGUgTG9va2JhY2tXaW5kb3dTaXplVW5pdCA9IChcIkhPVVJcIiB8IFwiREFZXCIgfCBcIldFRUtcIilcbmV4cG9ydCB0eXBlIFJlZnJlc2hGYWlsdXJlQWxlcnRTdGF0dXMgPSAoXCJFTkFCTEVEXCIgfCBcIkRJU0FCTEVEXCIpXG5leHBvcnQgdHlwZSBHZW9TcGF0aWFsQ291bnRyeUNvZGUgPSBcIlVTXCJcbmV4cG9ydCB0eXBlIERhdGFTZXRJbXBvcnRNb2RlID0gKFwiU1BJQ0VcIiB8IFwiRElSRUNUX1FVRVJZXCIpXG5leHBvcnQgdHlwZSBEYXRhc2V0UGFyYW1ldGVyVmFsdWVUeXBlID0gKFwiTVVMVElfVkFMVUVEXCIgfCBcIlNJTkdMRV9WQUxVRURcIilcbmV4cG9ydCB0eXBlIFRpbWVHcmFudWxhcml0eSA9IChcIllFQVJcIiB8IFwiUVVBUlRFUlwiIHwgXCJNT05USFwiIHwgXCJXRUVLXCIgfCBcIkRBWVwiIHwgXCJIT1VSXCIgfCBcIk1JTlVURVwiIHwgXCJTRUNPTkRcIiB8IFwiTUlMTElTRUNPTkRcIilcbmV4cG9ydCB0eXBlIEdlb1NwYXRpYWxEYXRhUm9sZSA9IChcIkNPVU5UUllcIiB8IFwiU1RBVEVcIiB8IFwiQ09VTlRZXCIgfCBcIkNJVFlcIiB8IFwiUE9TVENPREVcIiB8IFwiTE9OR0lUVURFXCIgfCBcIkxBVElUVURFXCIgfCBcIlBPTElUSUNBTDFcIiB8IFwiQ0VOU1VTX1RSQUNUXCIgfCBcIkNFTlNVU19CTE9DS19HUk9VUFwiIHwgXCJDRU5TVVNfQkxPQ0tcIilcbmV4cG9ydCB0eXBlIENvbHVtblRhZ05hbWUgPSAoXCJDT0xVTU5fR0VPR1JBUEhJQ19ST0xFXCIgfCBcIkNPTFVNTl9ERVNDUklQVElPTlwiKVxuZXhwb3J0IHR5cGUgRGF0YVNldERhdGVDb21wYXJpc29uRmlsdGVyT3BlcmF0b3IgPSAoXCJCRUZPUkVcIiB8IFwiQkVGT1JFX09SX0VRVUFMU19UT1wiIHwgXCJBRlRFUlwiIHwgXCJBRlRFUl9PUl9FUVVBTFNfVE9cIilcbmV4cG9ydCB0eXBlIERhdGFTZXRTdHJpbmdDb21wYXJpc29uRmlsdGVyT3BlcmF0b3IgPSAoXCJFUVVBTFNcIiB8IFwiRE9FU19OT1RfRVFVQUxcIiB8IFwiQ09OVEFJTlNcIiB8IFwiRE9FU19OT1RfQ09OVEFJTlwiIHwgXCJTVEFSVFNfV0lUSFwiIHwgXCJFTkRTX1dJVEhcIilcbmV4cG9ydCB0eXBlIERhdGFTZXRTdHJpbmdMaXN0RmlsdGVyT3BlcmF0b3IgPSAoXCJJTkNMVURFXCIgfCBcIkVYQ0xVREVcIilcbmV4cG9ydCB0eXBlIERhdGFTZXROdW1lcmljQ29tcGFyaXNvbkZpbHRlck9wZXJhdG9yID0gKFwiRVFVQUxTXCIgfCBcIkRPRVNfTk9UX0VRVUFMXCIgfCBcIkdSRUFURVJfVEhBTlwiIHwgXCJHUkVBVEVSX1RIQU5fT1JfRVFVQUxTX1RPXCIgfCBcIkxFU1NfVEhBTlwiIHwgXCJMRVNTX1RIQU5fT1JfRVFVQUxTX1RPXCIpXG5leHBvcnQgdHlwZSBDb2x1bW5EYXRhVHlwZSA9IChcIlNUUklOR1wiIHwgXCJJTlRFR0VSXCIgfCBcIkRFQ0lNQUxcIiB8IFwiREFURVRJTUVcIilcbmV4cG9ydCB0eXBlIEpvaW5UeXBlID0gKFwiSU5ORVJcIiB8IFwiT1VURVJcIiB8IFwiTEVGVFwiIHwgXCJSSUdIVFwiKVxuZXhwb3J0IHR5cGUgSm9pbk9wZXJhdGlvblR5cGUgPSAoXCJJTk5FUlwiIHwgXCJPVVRFUlwiIHwgXCJMRUZUXCIgfCBcIlJJR0hUXCIpXG5leHBvcnQgdHlwZSBEYXRhUHJlcFNpbXBsZUFnZ3JlZ2F0aW9uRnVuY3Rpb25UeXBlID0gKFwiQ09VTlRcIiB8IFwiRElTVElOQ1RfQ09VTlRcIiB8IFwiU1VNXCIgfCBcIkFWRVJBR0VcIiB8IFwiTUVESUFOXCIgfCBcIk1BWFwiIHwgXCJNSU5cIiB8IFwiVkFSSUFOQ0VcIiB8IFwiU1RBTkRBUkRfREVWSUFUSU9OXCIpXG5cbi8qKlxuICogRGVmaW5pdGlvbiBvZiB0aGUgQVdTOjpRdWlja1NpZ2h0OjpEYXRhU2V0IFJlc291cmNlIFR5cGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgX0FXU19RVUlDS1NJR0hUX0RBVEFTRVQge1xuLyoqXG4gKiA8cD5UaGUgdGltZSB0aGF0IHRoaXMgZGF0YXNldCB3YXMgY3JlYXRlZC48L3A+XG4gKi9cbkNyZWF0ZWRUaW1lPzogc3RyaW5nXG4vKipcbiAqIDxwPldoZW4geW91IGNyZWF0ZSB0aGUgZGF0YXNldCwgQW1hem9uIFF1aWNrU2lnaHQgYWRkcyB0aGUgZGF0YXNldCB0byB0aGVzZSBmb2xkZXJzLjwvcD5cbiAqIFxuICogQG1pbkl0ZW1zIDBcbiAqIEBtYXhJdGVtcyAxMFxuICovXG5Gb2xkZXJBcm5zPzogc3RyaW5nW11cbi8qKlxuICogPHA+VGhlIGFtb3VudCBvZiBTUElDRSBjYXBhY2l0eSB1c2VkIGJ5IHRoaXMgZGF0YXNldC4gVGhpcyBpcyAwIGlmIHRoZSBkYXRhc2V0IGlzbid0XG4gKiAgICAgICAgICAgICBpbXBvcnRlZCBpbnRvIFNQSUNFLjwvcD5cbiAqL1xuQ29uc3VtZWRTcGljZUNhcGFjaXR5SW5CeXRlcz86IG51bWJlclxuUm93TGV2ZWxQZXJtaXNzaW9uRGF0YVNldD86IFJvd0xldmVsUGVybWlzc2lvbkRhdGFTZXRcbkluZ2VzdGlvbldhaXRQb2xpY3k/OiBJbmdlc3Rpb25XYWl0UG9saWN5XG4vKipcbiAqIDxwPkEgc2V0IG9mIG9uZSBvciBtb3JlIGRlZmluaXRpb25zIG9mIGEgPGNvZGU+XG4gKiAgICAgICAgICAgICAgICA8YSBocmVmPVwiaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3F1aWNrc2lnaHQvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfQ29sdW1uTGV2ZWxQZXJtaXNzaW9uUnVsZS5odG1sXCI+Q29sdW1uTGV2ZWxQZXJtaXNzaW9uUnVsZTwvYT5cbiAqICAgICAgICAgICAgIDwvY29kZT4uPC9wPlxuICogXG4gKiBAbWluSXRlbXMgMVxuICovXG5Db2x1bW5MZXZlbFBlcm1pc3Npb25SdWxlcz86IENvbHVtbkxldmVsUGVybWlzc2lvblJ1bGVbXVxuLyoqXG4gKiA8cD5UaGUgZGlzcGxheSBuYW1lIGZvciB0aGUgZGF0YXNldC48L3A+XG4gKi9cbk5hbWU/OiBzdHJpbmdcbi8qKlxuICogPHA+QSBsaXN0IG9mIHJlc291cmNlIHBlcm1pc3Npb25zIG9uIHRoZSBkYXRhc2V0LjwvcD5cbiAqIFxuICogQG1pbkl0ZW1zIDFcbiAqIEBtYXhJdGVtcyA2NFxuICovXG5QZXJtaXNzaW9ucz86IFJlc291cmNlUGVybWlzc2lvbltdXG5Vc2VBcz86IERhdGFTZXRVc2VBc1xuLyoqXG4gKiA8cD5Db250YWlucyBhIG1hcCBvZiB0aGUga2V5LXZhbHVlIHBhaXJzIGZvciB0aGUgcmVzb3VyY2UgdGFnIG9yIHRhZ3MgYXNzaWduZWQgdG8gdGhlIGRhdGFzZXQuPC9wPlxuICogXG4gKiBAbWluSXRlbXMgMVxuICogQG1heEl0ZW1zIDIwMFxuICovXG5UYWdzPzogVGFnW11cblBoeXNpY2FsVGFibGVNYXA/OiBQaHlzaWNhbFRhYmxlTWFwXG5GaWVsZEZvbGRlcnM/OiBGaWVsZEZvbGRlck1hcFxuLyoqXG4gKiA8cD5UaGUgbGFzdCB0aW1lIHRoYXQgdGhpcyBkYXRhc2V0IHdhcyB1cGRhdGVkLjwvcD5cbiAqL1xuTGFzdFVwZGF0ZWRUaW1lPzogc3RyaW5nXG5TZW1hbnRpY01vZGVsQ29uZmlndXJhdGlvbj86IFNlbWFudGljTW9kZWxDb25maWd1cmF0aW9uXG5EYXRhU2V0SWQ/OiBzdHJpbmdcblBlcmZvcm1hbmNlQ29uZmlndXJhdGlvbj86IFBlcmZvcm1hbmNlQ29uZmlndXJhdGlvblxuRGF0YVNldFJlZnJlc2hQcm9wZXJ0aWVzPzogRGF0YVNldFJlZnJlc2hQcm9wZXJ0aWVzXG5Sb3dMZXZlbFBlcm1pc3Npb25UYWdDb25maWd1cmF0aW9uPzogUm93TGV2ZWxQZXJtaXNzaW9uVGFnQ29uZmlndXJhdGlvblxuLyoqXG4gKiA8cD5Hcm91cGluZ3Mgb2YgY29sdW1ucyB0aGF0IHdvcmsgdG9nZXRoZXIgaW4gY2VydGFpbiBBbWF6b24gUXVpY2tTaWdodCBmZWF0dXJlcy4gQ3VycmVudGx5LCBvbmx5IGdlb3NwYXRpYWwgaGllcmFyY2h5IGlzIHN1cHBvcnRlZC48L3A+XG4gKiBcbiAqIEBtaW5JdGVtcyAxXG4gKiBAbWF4SXRlbXMgOFxuICovXG5Db2x1bW5Hcm91cHM/OiBDb2x1bW5Hcm91cFtdXG5JbXBvcnRNb2RlPzogRGF0YVNldEltcG9ydE1vZGVcbi8qKlxuICogPHA+VGhlIHBhcmFtZXRlciBkZWNsYXJhdGlvbnMgb2YgdGhlIGRhdGFzZXQuPC9wPlxuICogXG4gKiBAbWluSXRlbXMgMFxuICogQG1heEl0ZW1zIDMyXG4gKi9cbkRhdGFzZXRQYXJhbWV0ZXJzPzogRGF0YXNldFBhcmFtZXRlcltdXG5Mb2dpY2FsVGFibGVNYXA/OiBMb2dpY2FsVGFibGVNYXBcbkF3c0FjY291bnRJZD86IHN0cmluZ1xuRGF0YVNldFVzYWdlQ29uZmlndXJhdGlvbj86IERhdGFTZXRVc2FnZUNvbmZpZ3VyYXRpb25cbi8qKlxuICogPHA+VGhlIGxpc3Qgb2YgY29sdW1ucyBhZnRlciBhbGwgdHJhbnNmb3Jtcy4gVGhlc2UgY29sdW1ucyBhcmUgYXZhaWxhYmxlIGluIHRlbXBsYXRlcyxcbiAqICAgICAgICAgICAgIGFuYWx5c2VzLCBhbmQgZGFzaGJvYXJkcy48L3A+XG4gKi9cbk91dHB1dENvbHVtbnM/OiBPdXRwdXRDb2x1bW5bXVxuRGF0YVByZXBDb25maWd1cmF0aW9uPzogRGF0YVByZXBDb25maWd1cmF0aW9uXG4vKipcbiAqIDxwPlRoZSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKSBvZiB0aGUgcmVzb3VyY2UuPC9wPlxuICovXG5Bcm4/OiBzdHJpbmdcbn1cbi8qKlxuICogPHA+SW5mb3JtYXRpb24gYWJvdXQgYSBkYXRhc2V0IHRoYXQgY29udGFpbnMgcGVybWlzc2lvbnMgZm9yIHJvdy1sZXZlbCBzZWN1cml0eSAoUkxTKS5cbiAqICAgICAgICAgICAgIFRoZSBwZXJtaXNzaW9ucyBkYXRhc2V0IG1hcHMgZmllbGRzIHRvIHVzZXJzIG9yIGdyb3Vwcy4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZVxuICogICAgICAgICAgICAgPGEgaHJlZj1cImh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9xdWlja3NpZ2h0L2xhdGVzdC91c2VyL3Jlc3RyaWN0LWFjY2Vzcy10by1hLWRhdGEtc2V0LXVzaW5nLXJvdy1sZXZlbC1zZWN1cml0eS5odG1sXCI+VXNpbmcgUm93LUxldmVsIFNlY3VyaXR5IChSTFMpIHRvIFJlc3RyaWN0IEFjY2VzcyB0byBhIERhdGFzZXQ8L2E+IGluIHRoZSA8aT5BbWF6b24gUXVpY2tTaWdodCBVc2VyXG4gKiAgICAgICAgICAgICAgICAgR3VpZGU8L2k+LjwvcD5cbiAqICAgICAgICAgIDxwPlRoZSBvcHRpb24gdG8gZGVueSBwZXJtaXNzaW9ucyBieSBzZXR0aW5nIDxjb2RlPlBlcm1pc3Npb25Qb2xpY3k8L2NvZGU+IHRvIDxjb2RlPkRFTllfQUNDRVNTPC9jb2RlPiBpc1xuICogICAgICAgICAgICAgbm90IHN1cHBvcnRlZCBmb3IgbmV3IFJMUyBkYXRhc2V0cy48L3A+XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUm93TGV2ZWxQZXJtaXNzaW9uRGF0YVNldCB7XG5TdGF0dXM/OiBTdGF0dXNcbkZvcm1hdFZlcnNpb24/OiBSb3dMZXZlbFBlcm1pc3Npb25Gb3JtYXRWZXJzaW9uXG4vKipcbiAqIDxwPlRoZSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKSBvZiB0aGUgZGF0YXNldCB0aGF0IGNvbnRhaW5zIHBlcm1pc3Npb25zIGZvciBSTFMuPC9wPlxuICovXG5Bcm46IHN0cmluZ1xuLyoqXG4gKiA8cD5UaGUgbmFtZXNwYWNlIGFzc29jaWF0ZWQgd2l0aCB0aGUgZGF0YXNldCB0aGF0IGNvbnRhaW5zIHBlcm1pc3Npb25zIGZvciBSTFMuPC9wPlxuICovXG5OYW1lc3BhY2U/OiBzdHJpbmdcblBlcm1pc3Npb25Qb2xpY3k6IFJvd0xldmVsUGVybWlzc2lvblBvbGljeVxufVxuLyoqXG4gKiA8cD5XYWl0IHBvbGljeSB0byB1c2Ugd2hlbiBjcmVhdGluZy91cGRhdGluZyBkYXRhc2V0LiBEZWZhdWx0IGlzIHRvIHdhaXQgZm9yIFNQSUNFIGluZ2VzdGlvbiB0byBmaW5pc2ggd2l0aCB0aW1lb3V0IG9mIDM2IGhvdXJzLjwvcD5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbmdlc3Rpb25XYWl0UG9saWN5IHtcbi8qKlxuICogPHA+V2FpdCBmb3IgU1BJQ0UgaW5nZXN0aW9uIHRvIGZpbmlzaCB0byBtYXJrIGRhdGFzZXQgY3JlYXRpb24vdXBkYXRlIHN1Y2Nlc3NmdWwuIERlZmF1bHQgKHRydWUpLlxuICogICBBcHBsaWNhYmxlIG9ubHkgd2hlbiBEYXRhU2V0SW1wb3J0TW9kZSBtb2RlIGlzIHNldCB0byBTUElDRS48L3A+XG4gKi9cbldhaXRGb3JTcGljZUluZ2VzdGlvbj86IGJvb2xlYW5cbi8qKlxuICogPHA+VGhlIG1heGltdW0gdGltZSAoaW4gaG91cnMpIHRvIHdhaXQgZm9yIEluZ2VzdGlvbiB0byBjb21wbGV0ZS4gRGVmYXVsdCB0aW1lb3V0IGlzIDM2IGhvdXJzLlxuICogIEFwcGxpY2FibGUgb25seSB3aGVuIERhdGFTZXRJbXBvcnRNb2RlIG1vZGUgaXMgc2V0IHRvIFNQSUNFIGFuZCBXYWl0Rm9yU3BpY2VJbmdlc3Rpb24gaXMgc2V0IHRvIHRydWUuPC9wPlxuICovXG5Jbmdlc3Rpb25XYWl0VGltZUluSG91cnM/OiBudW1iZXJcbn1cbi8qKlxuICogPHA+QSBydWxlIGRlZmluZWQgdG8gZ3JhbnQgYWNjZXNzIG9uIG9uZSBvciBtb3JlIHJlc3RyaWN0ZWQgY29sdW1ucy5cbiAqICAgICAgICAgICAgIEVhY2ggZGF0YXNldCBjYW4gaGF2ZSBtdWx0aXBsZSBydWxlcy5cbiAqICAgICAgICAgICAgIFRvIGNyZWF0ZSBhIHJlc3RyaWN0ZWQgY29sdW1uLCB5b3UgYWRkIGl0IHRvIG9uZSBvciBtb3JlIHJ1bGVzLlxuICogICAgICAgICAgICAgRWFjaCBydWxlIG11c3QgY29udGFpbiBhdCBsZWFzdCBvbmUgY29sdW1uIGFuZCBhdCBsZWFzdCBvbmUgdXNlciBvciBncm91cC5cbiAqICAgICAgICAgICAgIFRvIGJlIGFibGUgdG8gc2VlIGEgcmVzdHJpY3RlZCBjb2x1bW4sIGEgdXNlciBvciBncm91cCBuZWVkcyB0byBiZSBhZGRlZFxuICogICAgICAgICAgICAgdG8gYSBydWxlIGZvciB0aGF0IGNvbHVtbi48L3A+XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29sdW1uTGV2ZWxQZXJtaXNzaW9uUnVsZSB7XG4vKipcbiAqIDxwPkFuIGFycmF5IG9mIGNvbHVtbiBuYW1lcy48L3A+XG4gKiBcbiAqIEBtaW5JdGVtcyAxXG4gKi9cbkNvbHVtbk5hbWVzPzogc3RyaW5nW11cbi8qKlxuICogPHA+QW4gYXJyYXkgb2YgQW1hem9uIFJlc291cmNlIE5hbWVzIChBUk5zKSBmb3IgQW1hem9uIFF1aWNrU2lnaHQgdXNlcnMgb3IgZ3JvdXBzLjwvcD5cbiAqIFxuICogQG1pbkl0ZW1zIDFcbiAqIEBtYXhJdGVtcyAxMDBcbiAqL1xuUHJpbmNpcGFscz86IHN0cmluZ1tdXG59XG4vKipcbiAqIDxwPlBlcm1pc3Npb24gZm9yIHRoZSByZXNvdXJjZS48L3A+XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVzb3VyY2VQZXJtaXNzaW9uIHtcbi8qKlxuICogPHA+VGhlIElBTSBhY3Rpb24gdG8gZ3JhbnQgb3IgcmV2b2tlIHBlcm1pc3Npb25zIG9uLjwvcD5cbiAqIFxuICogQG1pbkl0ZW1zIDFcbiAqIEBtYXhJdGVtcyAyMFxuICovXG5BY3Rpb25zOiBzdHJpbmdbXVxuLyoqXG4gKiA8cD5UaGUgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTikgb2YgdGhlIHByaW5jaXBhbC4gVGhpcyBjYW4gYmUgb25lIG9mIHRoZVxuICogICAgICAgICAgICAgZm9sbG93aW5nOjwvcD5cbiAqICAgICAgICAgIDx1bD5cbiAqICAgICAgICAgICAgIDxsaT5cbiAqICAgICAgICAgICAgICAgIDxwPlRoZSBBUk4gb2YgYW4gQW1hem9uIFF1aWNrU2lnaHQgdXNlciBvciBncm91cCBhc3NvY2lhdGVkIHdpdGggYSBkYXRhIHNvdXJjZSBvciBkYXRhc2V0LiAoVGhpcyBpcyBjb21tb24uKTwvcD5cbiAqICAgICAgICAgICAgIDwvbGk+XG4gKiAgICAgICAgICAgICA8bGk+XG4gKiAgICAgICAgICAgICAgICA8cD5UaGUgQVJOIG9mIGFuIEFtYXpvbiBRdWlja1NpZ2h0IHVzZXIsIGdyb3VwLCBvciBuYW1lc3BhY2UgYXNzb2NpYXRlZCB3aXRoIGFuIGFuYWx5c2lzLCBkYXNoYm9hcmQsIHRlbXBsYXRlLCBvciB0aGVtZS4gKFRoaXMgaXMgY29tbW9uLik8L3A+XG4gKiAgICAgICAgICAgICA8L2xpPlxuICogICAgICAgICAgICAgPGxpPlxuICogICAgICAgICAgICAgICAgPHA+VGhlIEFSTiBvZiBhbiBBbWF6b24gV2ViIFNlcnZpY2VzIGFjY291bnQgcm9vdDogVGhpcyBpcyBhbiBJQU0gQVJOIHJhdGhlciB0aGFuIGEgUXVpY2tTaWdodFxuICogICAgICAgICAgICAgICAgICAgICBBUk4uIFVzZSB0aGlzIG9wdGlvbiBvbmx5IHRvIHNoYXJlIHJlc291cmNlcyAodGVtcGxhdGVzKSBhY3Jvc3MgQW1hem9uIFdlYiBTZXJ2aWNlcyBhY2NvdW50cy5cbiAqICAgICAgICAgICAgICAgICAgICAgKFRoaXMgaXMgbGVzcyBjb21tb24uKSA8L3A+XG4gKiAgICAgICAgICAgICA8L2xpPlxuICogICAgICAgICAgPC91bD5cbiAqL1xuUHJpbmNpcGFsOiBzdHJpbmdcbn1cbi8qKlxuICogPHA+VGhlIGtleSBvciBrZXlzIG9mIHRoZSBrZXktdmFsdWUgcGFpcnMgZm9yIHRoZSByZXNvdXJjZSB0YWcgb3IgdGFncyBhc3NpZ25lZCB0byB0aGVcbiAqICAgICAgICAgICAgIHJlc291cmNlLjwvcD5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUYWcge1xuLyoqXG4gKiA8cD5UYWcgdmFsdWUuPC9wPlxuICovXG5WYWx1ZTogc3RyaW5nXG4vKipcbiAqIDxwPlRhZyBrZXkuPC9wPlxuICovXG5LZXk6IHN0cmluZ1xufVxuZXhwb3J0IGludGVyZmFjZSBQaHlzaWNhbFRhYmxlTWFwIHtcbltrOiBzdHJpbmddOiBQaHlzaWNhbFRhYmxlXG59XG4vKipcbiAqIDxwPkEgdmlldyBvZiBhIGRhdGEgc291cmNlIHRoYXQgY29udGFpbnMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHNoYXBlIG9mIHRoZSBkYXRhIGluIHRoZVxuICogICAgICAgICAgICAgdW5kZXJseWluZyBzb3VyY2UuIFRoaXMgaXMgYSB2YXJpYW50IHR5cGUgc3RydWN0dXJlLiBGb3IgdGhpcyBzdHJ1Y3R1cmUgdG8gYmUgdmFsaWQsXG4gKiAgICAgICAgICAgICBvbmx5IG9uZSBvZiB0aGUgYXR0cmlidXRlcyBjYW4gYmUgbm9uLW51bGwuPC9wPlxuICogXG4gKiBUaGlzIGludGVyZmFjZSB3YXMgcmVmZXJlbmNlZCBieSBgUGh5c2ljYWxUYWJsZU1hcGAncyBKU09OLVNjaGVtYSBkZWZpbml0aW9uXG4gKiB2aWEgdGhlIGBwYXR0ZXJuUHJvcGVydHlgIFwiXlswLTlhLXpBLVotXSokXCIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGh5c2ljYWxUYWJsZSB7XG5TYWFTVGFibGU/OiBTYWFTVGFibGVcblJlbGF0aW9uYWxUYWJsZT86IFJlbGF0aW9uYWxUYWJsZVxuQ3VzdG9tU3FsPzogQ3VzdG9tU3FsXG5TM1NvdXJjZT86IFMzU291cmNlXG59XG5leHBvcnQgaW50ZXJmYWNlIFNhYVNUYWJsZSB7XG5EYXRhU291cmNlQXJuOiBzdHJpbmdcbi8qKlxuICogQG1pbkl0ZW1zIDBcbiAqIEBtYXhJdGVtcyAyMDQ4XG4gKi9cbklucHV0Q29sdW1uczogSW5wdXRDb2x1bW5bXVxuLyoqXG4gKiBAbWluSXRlbXMgMVxuICogQG1heEl0ZW1zIDMyXG4gKi9cblRhYmxlUGF0aDogVGFibGVQYXRoRWxlbWVudFtdXG59XG4vKipcbiAqIDxwPk1ldGFkYXRhIGZvciBhIGNvbHVtbiB0aGF0IGlzIHVzZWQgYXMgdGhlIGlucHV0IG9mIGEgdHJhbnNmb3JtIG9wZXJhdGlvbi48L3A+XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW5wdXRDb2x1bW4ge1xuVHlwZTogSW5wdXRDb2x1bW5EYXRhVHlwZVxuU3ViVHlwZT86IENvbHVtbkRhdGFTdWJUeXBlXG5JZD86IHN0cmluZ1xuLyoqXG4gKiA8cD5UaGUgbmFtZSBvZiB0aGlzIGNvbHVtbiBpbiB0aGUgdW5kZXJseWluZyBkYXRhIHNvdXJjZS48L3A+XG4gKi9cbk5hbWU6IHN0cmluZ1xufVxuZXhwb3J0IGludGVyZmFjZSBUYWJsZVBhdGhFbGVtZW50IHtcbklkPzogc3RyaW5nXG5OYW1lPzogc3RyaW5nXG59XG4vKipcbiAqIDxwPkEgcGh5c2ljYWwgdGFibGUgdHlwZSBmb3IgcmVsYXRpb25hbCBkYXRhIHNvdXJjZXMuPC9wPlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlbGF0aW9uYWxUYWJsZSB7XG4vKipcbiAqIDxwPlRoZSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKSBmb3IgdGhlIGRhdGEgc291cmNlLjwvcD5cbiAqL1xuRGF0YVNvdXJjZUFybjogc3RyaW5nXG4vKipcbiAqIDxwPlRoZSBjb2x1bW4gc2NoZW1hIG9mIHRoZSB0YWJsZS48L3A+XG4gKiBcbiAqIEBtaW5JdGVtcyAwXG4gKiBAbWF4SXRlbXMgMjA0OFxuICovXG5JbnB1dENvbHVtbnM6IElucHV0Q29sdW1uW11cbi8qKlxuICogPHA+VGhlIHNjaGVtYSBuYW1lLiBUaGlzIG5hbWUgYXBwbGllcyB0byBjZXJ0YWluIHJlbGF0aW9uYWwgZGF0YWJhc2UgZW5naW5lcy48L3A+XG4gKi9cblNjaGVtYT86IHN0cmluZ1xuLyoqXG4gKiA8cD5UaGUgY2F0YWxvZyBhc3NvY2lhdGVkIHdpdGggYSB0YWJsZS48L3A+XG4gKi9cbkNhdGFsb2c/OiBzdHJpbmdcbi8qKlxuICogPHA+VGhlIG5hbWUgb2YgdGhlIHJlbGF0aW9uYWwgdGFibGUuPC9wPlxuICovXG5OYW1lOiBzdHJpbmdcbn1cbi8qKlxuICogPHA+QSBwaHlzaWNhbCB0YWJsZSB0eXBlIGJ1aWx0IGZyb20gdGhlIHJlc3VsdHMgb2YgdGhlIGN1c3RvbSBTUUwgcXVlcnkuPC9wPlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEN1c3RvbVNxbCB7XG4vKipcbiAqIDxwPlRoZSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKSBvZiB0aGUgZGF0YSBzb3VyY2UuPC9wPlxuICovXG5EYXRhU291cmNlQXJuOiBzdHJpbmdcbi8qKlxuICogPHA+VGhlIFNRTCBxdWVyeS48L3A+XG4gKi9cblNxbFF1ZXJ5OiBzdHJpbmdcbi8qKlxuICogPHA+VGhlIGNvbHVtbiBzY2hlbWEgZnJvbSB0aGUgU1FMIHF1ZXJ5IHJlc3VsdCBzZXQuPC9wPlxuICogXG4gKiBAbWluSXRlbXMgMFxuICogQG1heEl0ZW1zIDIwNDhcbiAqL1xuQ29sdW1uczogSW5wdXRDb2x1bW5bXVxuLyoqXG4gKiA8cD5BIGRpc3BsYXkgbmFtZSBmb3IgdGhlIFNRTCBxdWVyeSByZXN1bHQuPC9wPlxuICovXG5OYW1lOiBzdHJpbmdcbn1cbi8qKlxuICogPHA+QSBwaHlzaWNhbCB0YWJsZSB0eXBlIGZvciBhbiBTMyBkYXRhIHNvdXJjZS48L3A+XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUzNTb3VyY2Uge1xuLyoqXG4gKiA8cD5UaGUgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTikgZm9yIHRoZSBkYXRhIHNvdXJjZS48L3A+XG4gKi9cbkRhdGFTb3VyY2VBcm46IHN0cmluZ1xuLyoqXG4gKiA8cD5BIHBoeXNpY2FsIHRhYmxlIHR5cGUgZm9yIGFuIFMzIGRhdGEgc291cmNlLjwvcD5cbiAqICAgICAgICAgIDxub3RlPlxuICogICAgICAgICAgICAgPHA+Rm9yIGZpbGVzIHRoYXQgYXJlbid0IEpTT04sIG9ubHkgPGNvZGU+U1RSSU5HPC9jb2RlPiBkYXRhIHR5cGVzIGFyZSBzdXBwb3J0ZWQgaW4gaW5wdXQgY29sdW1ucy48L3A+XG4gKiAgICAgICAgICA8L25vdGU+XG4gKiBcbiAqIEBtaW5JdGVtcyAwXG4gKiBAbWF4SXRlbXMgMjA0OFxuICovXG5JbnB1dENvbHVtbnM6IElucHV0Q29sdW1uW11cblVwbG9hZFNldHRpbmdzPzogVXBsb2FkU2V0dGluZ3Ncbn1cbi8qKlxuICogPHA+SW5mb3JtYXRpb24gYWJvdXQgdGhlIGZvcm1hdCBmb3IgYSBzb3VyY2UgZmlsZSBvciBmaWxlcy48L3A+XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVXBsb2FkU2V0dGluZ3Mge1xuLyoqXG4gKiA8cD5XaGV0aGVyIHRoZSBmaWxlIGhhcyBhIGhlYWRlciByb3csIG9yIHRoZSBmaWxlcyBlYWNoIGhhdmUgYSBoZWFkZXIgcm93LjwvcD5cbiAqL1xuQ29udGFpbnNIZWFkZXI/OiBib29sZWFuXG5UZXh0UXVhbGlmaWVyPzogVGV4dFF1YWxpZmllclxuRm9ybWF0PzogRmlsZUZvcm1hdFxuLyoqXG4gKiA8cD5BIHJvdyBudW1iZXIgdG8gc3RhcnQgcmVhZGluZyBkYXRhIGZyb20uPC9wPlxuICovXG5TdGFydEZyb21Sb3c/OiBudW1iZXJcbi8qKlxuICogPHA+VGhlIGRlbGltaXRlciBiZXR3ZWVuIHZhbHVlcyBpbiB0aGUgZmlsZS48L3A+XG4gKi9cbkRlbGltaXRlcj86IHN0cmluZ1xufVxuZXhwb3J0IGludGVyZmFjZSBGaWVsZEZvbGRlck1hcCB7XG5bazogc3RyaW5nXTogRmllbGRGb2xkZXJcbn1cbi8qKlxuICogPHA+QSBGaWVsZEZvbGRlciBlbGVtZW50IGlzIGEgZm9sZGVyIHRoYXQgY29udGFpbnMgZmllbGRzIGFuZCBuZXN0ZWQgc3ViZm9sZGVycy48L3A+XG4gKiBcbiAqIFRoaXMgaW50ZXJmYWNlIHdhcyByZWZlcmVuY2VkIGJ5IGBGaWVsZEZvbGRlck1hcGAncyBKU09OLVNjaGVtYSBkZWZpbml0aW9uXG4gKiB2aWEgdGhlIGBwYXR0ZXJuUHJvcGVydHlgIFwiLitcIi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGaWVsZEZvbGRlciB7XG4vKipcbiAqIDxwPlRoZSBkZXNjcmlwdGlvbiBmb3IgYSBmaWVsZCBmb2xkZXIuPC9wPlxuICovXG5EZXNjcmlwdGlvbj86IHN0cmluZ1xuLyoqXG4gKiA8cD5BIGZvbGRlciBoYXMgYSBsaXN0IG9mIGNvbHVtbnMuIEEgY29sdW1uIGNhbiBvbmx5IGJlIGluIG9uZSBmb2xkZXIuPC9wPlxuICogXG4gKiBAbWluSXRlbXMgMFxuICogQG1heEl0ZW1zIDUwMDBcbiAqL1xuQ29sdW1ucz86IHN0cmluZ1tdXG59XG5leHBvcnQgaW50ZXJmYWNlIFNlbWFudGljTW9kZWxDb25maWd1cmF0aW9uIHtcblRhYmxlTWFwPzogU2VtYW50aWNUYWJsZU1hcFxufVxuZXhwb3J0IGludGVyZmFjZSBTZW1hbnRpY1RhYmxlTWFwIHtcbltrOiBzdHJpbmddOiBTZW1hbnRpY1RhYmxlXG59XG4vKipcbiAqIFRoaXMgaW50ZXJmYWNlIHdhcyByZWZlcmVuY2VkIGJ5IGBTZW1hbnRpY1RhYmxlTWFwYCdzIEpTT04tU2NoZW1hIGRlZmluaXRpb25cbiAqIHZpYSB0aGUgYHBhdHRlcm5Qcm9wZXJ0eWAgXCJeWzAtOWEtekEtWi1dKiRcIi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZW1hbnRpY1RhYmxlIHtcbkFsaWFzOiBzdHJpbmdcbkRlc3RpbmF0aW9uVGFibGVJZDogc3RyaW5nXG5Sb3dMZXZlbFBlcm1pc3Npb25Db25maWd1cmF0aW9uPzogUm93TGV2ZWxQZXJtaXNzaW9uQ29uZmlndXJhdGlvblxufVxuZXhwb3J0IGludGVyZmFjZSBSb3dMZXZlbFBlcm1pc3Npb25Db25maWd1cmF0aW9uIHtcblRhZ0NvbmZpZ3VyYXRpb24/OiBSb3dMZXZlbFBlcm1pc3Npb25UYWdDb25maWd1cmF0aW9uXG5Sb3dMZXZlbFBlcm1pc3Npb25EYXRhU2V0PzogUm93TGV2ZWxQZXJtaXNzaW9uRGF0YVNldFxufVxuLyoqXG4gKiA8cD5UaGUgY29uZmlndXJhdGlvbiBvZiB0YWdzIG9uIGEgZGF0YXNldCB0byBzZXQgcm93LWxldmVsIHNlY3VyaXR5LiA8L3A+XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUm93TGV2ZWxQZXJtaXNzaW9uVGFnQ29uZmlndXJhdGlvbiB7XG5TdGF0dXM/OiBTdGF0dXNcbi8qKlxuICogPHA+QSBzZXQgb2YgcnVsZXMgYXNzb2NpYXRlZCB3aXRoIHJvdy1sZXZlbCBzZWN1cml0eSwgc3VjaCBhcyB0aGUgdGFnIG5hbWVzIGFuZCBjb2x1bW5zIHRoYXQgdGhleSBhcmUgYXNzaWduZWQgdG8uPC9wPlxuICogXG4gKiBAbWluSXRlbXMgMVxuICogQG1heEl0ZW1zIDUwXG4gKi9cblRhZ1J1bGVzOiBSb3dMZXZlbFBlcm1pc3Npb25UYWdSdWxlW11cbi8qKlxuICogPHA+QSBsaXN0IG9mIHRhZyBjb25maWd1cmF0aW9uIHJ1bGVzIHRvIGFwcGx5IHRvIGEgZGF0YXNldC4gQWxsIHRhZyBjb25maWd1cmF0aW9ucyBoYXZlIHRoZSBPUiBjb25kaXRpb24uIFRhZ3Mgd2l0aGluIGVhY2ggdGlsZSB3aWxsIGJlIGpvaW5lZCAoQU5EKS4gQXQgbGVhc3Qgb25lIHJ1bGUgaW4gdGhpcyBzdHJ1Y3R1cmUgbXVzdCBoYXZlIGFsbCB0YWcgdmFsdWVzIGFzc2lnbmVkIHRvIGl0IHRvIGFwcGx5IFJvdy1sZXZlbCBzZWN1cml0eSAoUkxTKSB0byB0aGUgZGF0YXNldC48L3A+XG4gKiBcbiAqIEBtaW5JdGVtcyAxXG4gKiBAbWF4SXRlbXMgNTBcbiAqL1xuVGFnUnVsZUNvbmZpZ3VyYXRpb25zPzogc3RyaW5nW11bXVxufVxuLyoqXG4gKiA8cD5BIHNldCBvZiBydWxlcyBhc3NvY2lhdGVkIHdpdGggYSB0YWcuPC9wPlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJvd0xldmVsUGVybWlzc2lvblRhZ1J1bGUge1xuLyoqXG4gKiA8cD5UaGUgY29sdW1uIG5hbWUgdGhhdCBhIHRhZyBrZXkgaXMgYXNzaWduZWQgdG8uPC9wPlxuICovXG5Db2x1bW5OYW1lOiBzdHJpbmdcbi8qKlxuICogPHA+VGhlIHVuaXF1ZSBrZXkgZm9yIGEgdGFnLjwvcD5cbiAqL1xuVGFnS2V5OiBzdHJpbmdcbi8qKlxuICogPHA+QSBzdHJpbmcgdGhhdCB5b3Ugd2FudCB0byB1c2UgdG8gZmlsdGVyIGJ5IGFsbCB0aGUgdmFsdWVzIGluIGEgY29sdW1uIGluIHRoZSBkYXRhc2V0IGFuZCBkb27igJl0IHdhbnQgdG8gbGlzdCB0aGUgdmFsdWVzIG9uZSBieSBvbmUuIEZvciBleGFtcGxlLCB5b3UgY2FuIHVzZSBhbiBhc3RlcmlzayBhcyB5b3VyIG1hdGNoIGFsbCB2YWx1ZS48L3A+XG4gKi9cbk1hdGNoQWxsVmFsdWU/OiBzdHJpbmdcbi8qKlxuICogPHA+QSBzdHJpbmcgdGhhdCB5b3Ugd2FudCB0byB1c2UgdG8gZGVsaW1pdCB0aGUgdmFsdWVzIHdoZW4geW91IHBhc3MgdGhlIHZhbHVlcyBhdCBydW4gdGltZS4gRm9yIGV4YW1wbGUsIHlvdSBjYW4gZGVsaW1pdCB0aGUgdmFsdWVzIHdpdGggYSBjb21tYS48L3A+XG4gKi9cblRhZ011bHRpVmFsdWVEZWxpbWl0ZXI/OiBzdHJpbmdcbn1cbmV4cG9ydCBpbnRlcmZhY2UgUGVyZm9ybWFuY2VDb25maWd1cmF0aW9uIHtcbi8qKlxuICogQG1pbkl0ZW1zIDFcbiAqIEBtYXhJdGVtcyAxXG4gKi9cblVuaXF1ZUtleXM/OiBVbmlxdWVLZXlbXVxufVxuZXhwb3J0IGludGVyZmFjZSBVbmlxdWVLZXkge1xuLyoqXG4gKiBAbWluSXRlbXMgMVxuICogQG1heEl0ZW1zIDFcbiAqL1xuQ29sdW1uTmFtZXM6IHN0cmluZ1tdXG59XG4vKipcbiAqIDxwPlRoZSByZWZyZXNoIHByb3BlcnRpZXMgb2YgYSBkYXRhc2V0LjwvcD5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEYXRhU2V0UmVmcmVzaFByb3BlcnRpZXMge1xuUmVmcmVzaENvbmZpZ3VyYXRpb24/OiBSZWZyZXNoQ29uZmlndXJhdGlvblxuRmFpbHVyZUNvbmZpZ3VyYXRpb24/OiBSZWZyZXNoRmFpbHVyZUNvbmZpZ3VyYXRpb25cbn1cbi8qKlxuICogPHA+VGhlIHJlZnJlc2ggY29uZmlndXJhdGlvbiBvZiBhIGRhdGFzZXQuPC9wPlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlZnJlc2hDb25maWd1cmF0aW9uIHtcbkluY3JlbWVudGFsUmVmcmVzaDogSW5jcmVtZW50YWxSZWZyZXNoXG59XG4vKipcbiAqIDxwPlRoZSBpbmNyZW1lbnRhbCByZWZyZXNoIGNvbmZpZ3VyYXRpb24gZm9yIGEgZGF0YXNldC48L3A+XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW5jcmVtZW50YWxSZWZyZXNoIHtcbkxvb2tiYWNrV2luZG93OiBMb29rYmFja1dpbmRvd1xufVxuLyoqXG4gKiA8cD5UaGUgbG9va2JhY2sgd2luZG93IHNldHVwIG9mIGFuIGluY3JlbWVudGFsIHJlZnJlc2ggY29uZmlndXJhdGlvbi48L3A+XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTG9va2JhY2tXaW5kb3cge1xuLyoqXG4gKiA8cD5UaGUgbmFtZSBvZiB0aGUgbG9va2JhY2sgd2luZG93IGNvbHVtbi48L3A+XG4gKi9cbkNvbHVtbk5hbWU6IHN0cmluZ1xuU2l6ZVVuaXQ6IExvb2tiYWNrV2luZG93U2l6ZVVuaXRcbi8qKlxuICogPHA+VGhlIGxvb2tiYWNrIHdpbmRvdyBjb2x1bW4gc2l6ZS48L3A+XG4gKi9cblNpemU6IG51bWJlclxufVxuZXhwb3J0IGludGVyZmFjZSBSZWZyZXNoRmFpbHVyZUNvbmZpZ3VyYXRpb24ge1xuRW1haWxBbGVydD86IFJlZnJlc2hGYWlsdXJlRW1haWxBbGVydFxufVxuZXhwb3J0IGludGVyZmFjZSBSZWZyZXNoRmFpbHVyZUVtYWlsQWxlcnQge1xuQWxlcnRTdGF0dXM/OiBSZWZyZXNoRmFpbHVyZUFsZXJ0U3RhdHVzXG59XG4vKipcbiAqIDxwPkdyb3VwaW5ncyBvZiBjb2x1bW5zIHRoYXQgd29yayB0b2dldGhlciBpbiBjZXJ0YWluIEFtYXpvbiBRdWlja1NpZ2h0IGZlYXR1cmVzLiBUaGlzIGlzXG4gKiAgICAgICAgICAgICBhIHZhcmlhbnQgdHlwZSBzdHJ1Y3R1cmUuIEZvciB0aGlzIHN0cnVjdHVyZSB0byBiZSB2YWxpZCwgb25seSBvbmUgb2YgdGhlIGF0dHJpYnV0ZXMgY2FuXG4gKiAgICAgICAgICAgICBiZSBub24tbnVsbC48L3A+XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29sdW1uR3JvdXAge1xuR2VvU3BhdGlhbENvbHVtbkdyb3VwPzogR2VvU3BhdGlhbENvbHVtbkdyb3VwXG59XG4vKipcbiAqIDxwPkdlb3NwYXRpYWwgY29sdW1uIGdyb3VwIHRoYXQgZGVub3RlcyBhIGhpZXJhcmNoeS48L3A+XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR2VvU3BhdGlhbENvbHVtbkdyb3VwIHtcbi8qKlxuICogPHA+Q29sdW1ucyBpbiB0aGlzIGhpZXJhcmNoeS48L3A+XG4gKiBcbiAqIEBtaW5JdGVtcyAxXG4gKiBAbWF4SXRlbXMgMTZcbiAqL1xuQ29sdW1uczogc3RyaW5nW11cbkNvdW50cnlDb2RlPzogR2VvU3BhdGlhbENvdW50cnlDb2RlXG4vKipcbiAqIDxwPkEgZGlzcGxheSBuYW1lIGZvciB0aGUgaGllcmFyY2h5LjwvcD5cbiAqL1xuTmFtZTogc3RyaW5nXG59XG4vKipcbiAqIDxwPkEgZGF0YXNldCBwYXJhbWV0ZXIuPC9wPlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERhdGFzZXRQYXJhbWV0ZXIge1xuSW50ZWdlckRhdGFzZXRQYXJhbWV0ZXI/OiBJbnRlZ2VyRGF0YXNldFBhcmFtZXRlclxuRGF0ZVRpbWVEYXRhc2V0UGFyYW1ldGVyPzogRGF0ZVRpbWVEYXRhc2V0UGFyYW1ldGVyXG5EZWNpbWFsRGF0YXNldFBhcmFtZXRlcj86IERlY2ltYWxEYXRhc2V0UGFyYW1ldGVyXG5TdHJpbmdEYXRhc2V0UGFyYW1ldGVyPzogU3RyaW5nRGF0YXNldFBhcmFtZXRlclxufVxuLyoqXG4gKiA8cD5BbiBpbnRlZ2VyIHBhcmFtZXRlciBmb3IgYSBkYXRhc2V0LjwvcD5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbnRlZ2VyRGF0YXNldFBhcmFtZXRlciB7XG5WYWx1ZVR5cGU6IERhdGFzZXRQYXJhbWV0ZXJWYWx1ZVR5cGVcbkRlZmF1bHRWYWx1ZXM/OiBJbnRlZ2VyRGF0YXNldFBhcmFtZXRlckRlZmF1bHRWYWx1ZXNcbi8qKlxuICogPHA+QW4gaWRlbnRpZmllciBmb3IgdGhlIGludGVnZXIgcGFyYW1ldGVyIGNyZWF0ZWQgaW4gdGhlIGRhdGFzZXQuPC9wPlxuICovXG5JZDogc3RyaW5nXG4vKipcbiAqIDxwPlRoZSBuYW1lIG9mIHRoZSBpbnRlZ2VyIHBhcmFtZXRlciB0aGF0IGlzIGNyZWF0ZWQgaW4gdGhlIGRhdGFzZXQuPC9wPlxuICovXG5OYW1lOiBzdHJpbmdcbn1cbi8qKlxuICogPHA+VGhlIGRlZmF1bHQgdmFsdWVzIG9mIGFuIGludGVnZXIgcGFyYW1ldGVyLjwvcD5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbnRlZ2VyRGF0YXNldFBhcmFtZXRlckRlZmF1bHRWYWx1ZXMge1xuLyoqXG4gKiA8cD5BIGxpc3Qgb2Ygc3RhdGljIGRlZmF1bHQgdmFsdWVzIGZvciBhIGdpdmVuIGludGVnZXIgcGFyYW1ldGVyLjwvcD5cbiAqIFxuICogQG1pbkl0ZW1zIDBcbiAqIEBtYXhJdGVtcyAzMlxuICovXG5TdGF0aWNWYWx1ZXM/OiBudW1iZXJbXVxufVxuLyoqXG4gKiA8cD5BIGRhdGUgdGltZSBwYXJhbWV0ZXIgZm9yIGEgZGF0YXNldC48L3A+XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGF0ZVRpbWVEYXRhc2V0UGFyYW1ldGVyIHtcblZhbHVlVHlwZTogRGF0YXNldFBhcmFtZXRlclZhbHVlVHlwZVxuVGltZUdyYW51bGFyaXR5PzogVGltZUdyYW51bGFyaXR5XG5EZWZhdWx0VmFsdWVzPzogRGF0ZVRpbWVEYXRhc2V0UGFyYW1ldGVyRGVmYXVsdFZhbHVlc1xuLyoqXG4gKiA8cD5BbiBpZGVudGlmaWVyIGZvciB0aGUgcGFyYW1ldGVyIHRoYXQgaXMgY3JlYXRlZCBpbiB0aGUgZGF0YXNldC48L3A+XG4gKi9cbklkOiBzdHJpbmdcbi8qKlxuICogPHA+VGhlIG5hbWUgb2YgdGhlIGRhdGUgdGltZSBwYXJhbWV0ZXIgdGhhdCBpcyBjcmVhdGVkIGluIHRoZSBkYXRhc2V0LjwvcD5cbiAqL1xuTmFtZTogc3RyaW5nXG59XG4vKipcbiAqIDxwPlRoZSBkZWZhdWx0IHZhbHVlcyBvZiBhIGRhdGUgdGltZSBwYXJhbWV0ZXIuPC9wPlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERhdGVUaW1lRGF0YXNldFBhcmFtZXRlckRlZmF1bHRWYWx1ZXMge1xuLyoqXG4gKiA8cD5BIGxpc3Qgb2Ygc3RhdGljIGRlZmF1bHQgdmFsdWVzIGZvciBhIGdpdmVuIGRhdGUgdGltZSBwYXJhbWV0ZXIuPC9wPlxuICogXG4gKiBAbWluSXRlbXMgMFxuICogQG1heEl0ZW1zIDMyXG4gKi9cblN0YXRpY1ZhbHVlcz86IHN0cmluZ1tdXG59XG4vKipcbiAqIDxwPkEgZGVjaW1hbCBwYXJhbWV0ZXIgZm9yIGEgZGF0YXNldC48L3A+XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGVjaW1hbERhdGFzZXRQYXJhbWV0ZXIge1xuVmFsdWVUeXBlOiBEYXRhc2V0UGFyYW1ldGVyVmFsdWVUeXBlXG5EZWZhdWx0VmFsdWVzPzogRGVjaW1hbERhdGFzZXRQYXJhbWV0ZXJEZWZhdWx0VmFsdWVzXG4vKipcbiAqIDxwPkFuIGlkZW50aWZpZXIgZm9yIHRoZSBkZWNpbWFsIHBhcmFtZXRlciBjcmVhdGVkIGluIHRoZSBkYXRhc2V0LjwvcD5cbiAqL1xuSWQ6IHN0cmluZ1xuLyoqXG4gKiA8cD5UaGUgbmFtZSBvZiB0aGUgZGVjaW1hbCBwYXJhbWV0ZXIgdGhhdCBpcyBjcmVhdGVkIGluIHRoZSBkYXRhc2V0LjwvcD5cbiAqL1xuTmFtZTogc3RyaW5nXG59XG4vKipcbiAqIDxwPlRoZSBkZWZhdWx0IHZhbHVlcyBvZiBhIGRlY2ltYWwgcGFyYW1ldGVyLjwvcD5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEZWNpbWFsRGF0YXNldFBhcmFtZXRlckRlZmF1bHRWYWx1ZXMge1xuLyoqXG4gKiA8cD5BIGxpc3Qgb2Ygc3RhdGljIGRlZmF1bHQgdmFsdWVzIGZvciBhIGdpdmVuIGRlY2ltYWwgcGFyYW1ldGVyLjwvcD5cbiAqIFxuICogQG1pbkl0ZW1zIDBcbiAqIEBtYXhJdGVtcyAzMlxuICovXG5TdGF0aWNWYWx1ZXM/OiBudW1iZXJbXVxufVxuLyoqXG4gKiA8cD5BIHN0cmluZyBwYXJhbWV0ZXIgZm9yIGEgZGF0YXNldC48L3A+XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RyaW5nRGF0YXNldFBhcmFtZXRlciB7XG5WYWx1ZVR5cGU6IERhdGFzZXRQYXJhbWV0ZXJWYWx1ZVR5cGVcbkRlZmF1bHRWYWx1ZXM/OiBTdHJpbmdEYXRhc2V0UGFyYW1ldGVyRGVmYXVsdFZhbHVlc1xuLyoqXG4gKiA8cD5BbiBpZGVudGlmaWVyIGZvciB0aGUgc3RyaW5nIHBhcmFtZXRlciB0aGF0IGlzIGNyZWF0ZWQgaW4gdGhlIGRhdGFzZXQuPC9wPlxuICovXG5JZDogc3RyaW5nXG4vKipcbiAqIDxwPlRoZSBuYW1lIG9mIHRoZSBzdHJpbmcgcGFyYW1ldGVyIHRoYXQgaXMgY3JlYXRlZCBpbiB0aGUgZGF0YXNldC48L3A+XG4gKi9cbk5hbWU6IHN0cmluZ1xufVxuLyoqXG4gKiA8cD5UaGUgZGVmYXVsdCB2YWx1ZXMgb2YgYSBzdHJpbmcgcGFyYW1ldGVyLjwvcD5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdHJpbmdEYXRhc2V0UGFyYW1ldGVyRGVmYXVsdFZhbHVlcyB7XG4vKipcbiAqIDxwPkEgbGlzdCBvZiBzdGF0aWMgZGVmYXVsdCB2YWx1ZXMgZm9yIGEgZ2l2ZW4gc3RyaW5nIHBhcmFtZXRlci48L3A+XG4gKiBcbiAqIEBtaW5JdGVtcyAwXG4gKiBAbWF4SXRlbXMgMzJcbiAqL1xuU3RhdGljVmFsdWVzPzogc3RyaW5nW11cbn1cbmV4cG9ydCBpbnRlcmZhY2UgTG9naWNhbFRhYmxlTWFwIHtcbltrOiBzdHJpbmddOiBMb2dpY2FsVGFibGVcbn1cbi8qKlxuICogPHA+QSA8aT5sb2dpY2FsIHRhYmxlPC9pPiBpcyBhIHVuaXQgdGhhdCBqb2lucyBhbmQgdGhhdCBkYXRhXG4gKiAgICAgICAgICAgICB0cmFuc2Zvcm1hdGlvbnMgb3BlcmF0ZSBvbi4gQSBsb2dpY2FsIHRhYmxlIGhhcyBhIHNvdXJjZSwgd2hpY2ggY2FuIGJlIGVpdGhlciBhIHBoeXNpY2FsXG4gKiAgICAgICAgICAgICB0YWJsZSBvciByZXN1bHQgb2YgYSBqb2luLiBXaGVuIGEgbG9naWNhbCB0YWJsZSBwb2ludHMgdG8gYSBwaHlzaWNhbCB0YWJsZSwgdGhlIGxvZ2ljYWxcbiAqICAgICAgICAgICAgIHRhYmxlIGFjdHMgYXMgYSBtdXRhYmxlIGNvcHkgb2YgdGhhdCBwaHlzaWNhbCB0YWJsZSB0aHJvdWdoIHRyYW5zZm9ybSBvcGVyYXRpb25zLjwvcD5cbiAqIFxuICogVGhpcyBpbnRlcmZhY2Ugd2FzIHJlZmVyZW5jZWQgYnkgYExvZ2ljYWxUYWJsZU1hcGAncyBKU09OLVNjaGVtYSBkZWZpbml0aW9uXG4gKiB2aWEgdGhlIGBwYXR0ZXJuUHJvcGVydHlgIFwiXlswLTlhLXpBLVotXSokXCIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTG9naWNhbFRhYmxlIHtcbi8qKlxuICogPHA+QSBkaXNwbGF5IG5hbWUgZm9yIHRoZSBsb2dpY2FsIHRhYmxlLjwvcD5cbiAqL1xuQWxpYXM6IHN0cmluZ1xuLyoqXG4gKiA8cD5UcmFuc2Zvcm0gb3BlcmF0aW9ucyB0aGF0IGFjdCBvbiB0aGlzIGxvZ2ljYWwgdGFibGUuIEZvciB0aGlzIHN0cnVjdHVyZSB0byBiZSB2YWxpZCwgb25seSBvbmUgb2YgdGhlIGF0dHJpYnV0ZXMgY2FuIGJlIG5vbi1udWxsLiA8L3A+XG4gKiBcbiAqIEBtaW5JdGVtcyAxXG4gKiBAbWF4SXRlbXMgMjA0OFxuICovXG5EYXRhVHJhbnNmb3Jtcz86IFRyYW5zZm9ybU9wZXJhdGlvbltdXG5Tb3VyY2U6IExvZ2ljYWxUYWJsZVNvdXJjZVxufVxuLyoqXG4gKiA8cD5BIGRhdGEgdHJhbnNmb3JtYXRpb24gb24gYSBsb2dpY2FsIHRhYmxlLiBUaGlzIGlzIGEgdmFyaWFudCB0eXBlIHN0cnVjdHVyZS4gRm9yIHRoaXNcbiAqICAgICAgICAgICAgIHN0cnVjdHVyZSB0byBiZSB2YWxpZCwgb25seSBvbmUgb2YgdGhlIGF0dHJpYnV0ZXMgY2FuIGJlIG5vbi1udWxsLjwvcD5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUcmFuc2Zvcm1PcGVyYXRpb24ge1xuVGFnQ29sdW1uT3BlcmF0aW9uPzogVGFnQ29sdW1uT3BlcmF0aW9uXG5VbnRhZ0NvbHVtbk9wZXJhdGlvbj86IFVudGFnQ29sdW1uT3BlcmF0aW9uXG5PdmVycmlkZURhdGFzZXRQYXJhbWV0ZXJPcGVyYXRpb24/OiBPdmVycmlkZURhdGFzZXRQYXJhbWV0ZXJPcGVyYXRpb25cbkZpbHRlck9wZXJhdGlvbj86IEZpbHRlck9wZXJhdGlvblxuQ2FzdENvbHVtblR5cGVPcGVyYXRpb24/OiBDYXN0Q29sdW1uVHlwZU9wZXJhdGlvblxuQ3JlYXRlQ29sdW1uc09wZXJhdGlvbj86IENyZWF0ZUNvbHVtbnNPcGVyYXRpb25cblJlbmFtZUNvbHVtbk9wZXJhdGlvbj86IFJlbmFtZUNvbHVtbk9wZXJhdGlvblxuUHJvamVjdE9wZXJhdGlvbj86IFByb2plY3RPcGVyYXRpb25cbn1cbi8qKlxuICogPHA+QSB0cmFuc2Zvcm0gb3BlcmF0aW9uIHRoYXQgdGFncyBhIGNvbHVtbiB3aXRoIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24uPC9wPlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRhZ0NvbHVtbk9wZXJhdGlvbiB7XG4vKipcbiAqIDxwPlRoZSBjb2x1bW4gdGhhdCB0aGlzIG9wZXJhdGlvbiBhY3RzIG9uLjwvcD5cbiAqL1xuQ29sdW1uTmFtZTogc3RyaW5nXG4vKipcbiAqIDxwPlRoZSBkYXRhc2V0IGNvbHVtbiB0YWcsIGN1cnJlbnRseSBvbmx5IHVzZWQgZm9yIGdlb3NwYXRpYWwgdHlwZSB0YWdnaW5nLjwvcD5cbiAqICAgICAgICAgIDxub3RlPlxuICogICAgICAgICAgICAgPHA+VGhpcyBpcyBub3QgdGFncyBmb3IgdGhlIEFtYXpvbiBXZWIgU2VydmljZXMgdGFnZ2luZyBmZWF0dXJlLjwvcD5cbiAqICAgICAgICAgIDwvbm90ZT5cbiAqIFxuICogQG1pbkl0ZW1zIDFcbiAqIEBtYXhJdGVtcyAxNlxuICovXG5UYWdzOiBDb2x1bW5UYWdbXVxufVxuLyoqXG4gKiA8cD5BIHRhZyBmb3IgYSBjb2x1bW4gaW4gYVxuICogICAgICAgICAgICAgPGNvZGU+XG4gKiAgICAgICAgICAgICAgICA8YSBocmVmPVwiaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3F1aWNrc2lnaHQvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfVGFnQ29sdW1uT3BlcmF0aW9uLmh0bWxcIj5UYWdDb2x1bW5PcGVyYXRpb248L2E+XG4gKiAgICAgICAgICAgICA8L2NvZGU+XG4gKiAgICAgICAgICAgICBzdHJ1Y3R1cmUuIFRoaXMgaXMgYVxuICogICAgICAgICAgICAgdmFyaWFudCB0eXBlIHN0cnVjdHVyZS4gRm9yIHRoaXMgc3RydWN0dXJlIHRvIGJlIHZhbGlkLCBvbmx5IG9uZSBvZiB0aGUgYXR0cmlidXRlcyBjYW5cbiAqICAgICAgICAgICAgIGJlIG5vbi1udWxsLjwvcD5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb2x1bW5UYWcge1xuQ29sdW1uR2VvZ3JhcGhpY1JvbGU/OiBHZW9TcGF0aWFsRGF0YVJvbGVcbkNvbHVtbkRlc2NyaXB0aW9uPzogQ29sdW1uRGVzY3JpcHRpb25cbn1cbi8qKlxuICogPHA+TWV0YWRhdGEgdGhhdCBjb250YWlucyBhIGRlc2NyaXB0aW9uIGZvciBhIGNvbHVtbi48L3A+XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29sdW1uRGVzY3JpcHRpb24ge1xuLyoqXG4gKiA8cD5UaGUgdGV4dCBvZiBhIGRlc2NyaXB0aW9uIGZvciBhIGNvbHVtbi48L3A+XG4gKi9cblRleHQ/OiBzdHJpbmdcbn1cbi8qKlxuICogPHA+QSB0cmFuc2Zvcm0gb3BlcmF0aW9uIHRoYXQgcmVtb3ZlcyB0YWdzIGFzc29jaWF0ZWQgd2l0aCBhIGNvbHVtbi48L3A+XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVW50YWdDb2x1bW5PcGVyYXRpb24ge1xuLyoqXG4gKiA8cD5UaGUgY29sdW1uIHRoYXQgdGhpcyBvcGVyYXRpb24gYWN0cyBvbi48L3A+XG4gKi9cbkNvbHVtbk5hbWU6IHN0cmluZ1xuLyoqXG4gKiA8cD5UaGUgY29sdW1uIHRhZ3MgdG8gcmVtb3ZlIGZyb20gdGhpcyBjb2x1bW4uPC9wPlxuICovXG5UYWdOYW1lczogQ29sdW1uVGFnTmFtZVtdXG59XG4vKipcbiAqIDxwPkEgdHJhbnNmb3JtIG9wZXJhdGlvbiB0aGF0IG92ZXJyaWRlcyB0aGUgZGF0YXNldCBwYXJhbWV0ZXIgdmFsdWVzIHRoYXQgYXJlIGRlZmluZWQgaW4gYW5vdGhlciBkYXRhc2V0LjwvcD5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPdmVycmlkZURhdGFzZXRQYXJhbWV0ZXJPcGVyYXRpb24ge1xuTmV3RGVmYXVsdFZhbHVlcz86IE5ld0RlZmF1bHRWYWx1ZXNcbi8qKlxuICogPHA+VGhlIG5hbWUgb2YgdGhlIHBhcmFtZXRlciB0byBiZSBvdmVycmlkZGVuIHdpdGggZGlmZmVyZW50IHZhbHVlcy48L3A+XG4gKi9cblBhcmFtZXRlck5hbWU6IHN0cmluZ1xuLyoqXG4gKiA8cD5UaGUgbmV3IG5hbWUgZm9yIHRoZSBwYXJhbWV0ZXIuPC9wPlxuICovXG5OZXdQYXJhbWV0ZXJOYW1lPzogc3RyaW5nXG59XG4vKipcbiAqIDxwPlRoZSBjb25maWd1cmF0aW9uIHRoYXQgb3ZlcnJpZGVzIHRoZSBleGlzdGluZyBkZWZhdWx0IHZhbHVlcyBmb3IgYSBkYXRhc2V0IHBhcmFtZXRlciB0aGF0IGlzIGluaGVyaXRlZCBmcm9tIGFub3RoZXIgZGF0YXNldC48L3A+XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTmV3RGVmYXVsdFZhbHVlcyB7XG4vKipcbiAqIDxwPkEgbGlzdCBvZiBzdGF0aWMgZGVmYXVsdCB2YWx1ZXMgZm9yIGEgZ2l2ZW4gZGVjaW1hbCBwYXJhbWV0ZXIuPC9wPlxuICogXG4gKiBAbWluSXRlbXMgMFxuICogQG1heEl0ZW1zIDMyXG4gKi9cbkRlY2ltYWxTdGF0aWNWYWx1ZXM/OiBudW1iZXJbXVxuLyoqXG4gKiA8cD5BIGxpc3Qgb2Ygc3RhdGljIGRlZmF1bHQgdmFsdWVzIGZvciBhIGdpdmVuIGludGVnZXIgcGFyYW1ldGVyLjwvcD5cbiAqIFxuICogQG1pbkl0ZW1zIDBcbiAqIEBtYXhJdGVtcyAzMlxuICovXG5JbnRlZ2VyU3RhdGljVmFsdWVzPzogbnVtYmVyW11cbi8qKlxuICogPHA+QSBsaXN0IG9mIHN0YXRpYyBkZWZhdWx0IHZhbHVlcyBmb3IgYSBnaXZlbiBzdHJpbmcgcGFyYW1ldGVyLjwvcD5cbiAqIFxuICogQG1pbkl0ZW1zIDBcbiAqIEBtYXhJdGVtcyAzMlxuICovXG5TdHJpbmdTdGF0aWNWYWx1ZXM/OiBzdHJpbmdbXVxuLyoqXG4gKiA8cD5BIGxpc3Qgb2Ygc3RhdGljIGRlZmF1bHQgdmFsdWVzIGZvciBhIGdpdmVuIGRhdGUgdGltZSBwYXJhbWV0ZXIuPC9wPlxuICogXG4gKiBAbWluSXRlbXMgMFxuICogQG1heEl0ZW1zIDMyXG4gKi9cbkRhdGVUaW1lU3RhdGljVmFsdWVzPzogc3RyaW5nW11cbn1cbi8qKlxuICogPHA+QSB0cmFuc2Zvcm0gb3BlcmF0aW9uIHRoYXQgZmlsdGVycyByb3dzIGJhc2VkIG9uIGEgY29uZGl0aW9uLjwvcD5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGaWx0ZXJPcGVyYXRpb24ge1xuRGF0ZUZpbHRlckNvbmRpdGlvbj86IERhdGFTZXREYXRlRmlsdGVyQ29uZGl0aW9uXG5TdHJpbmdGaWx0ZXJDb25kaXRpb24/OiBEYXRhU2V0U3RyaW5nRmlsdGVyQ29uZGl0aW9uXG4vKipcbiAqIDxwPkFuIGV4cHJlc3Npb24gdGhhdCBtdXN0IGV2YWx1YXRlIHRvIGEgQm9vbGVhbiB2YWx1ZS4gUm93cyBmb3Igd2hpY2ggdGhlIGV4cHJlc3Npb25cbiAqICAgICAgICAgICAgIGV2YWx1YXRlcyB0byB0cnVlIGFyZSBrZXB0IGluIHRoZSBkYXRhc2V0LjwvcD5cbiAqL1xuQ29uZGl0aW9uRXhwcmVzc2lvbj86IHN0cmluZ1xuTnVtZXJpY0ZpbHRlckNvbmRpdGlvbj86IERhdGFTZXROdW1lcmljRmlsdGVyQ29uZGl0aW9uXG59XG5leHBvcnQgaW50ZXJmYWNlIERhdGFTZXREYXRlRmlsdGVyQ29uZGl0aW9uIHtcbkNvbHVtbk5hbWU/OiBzdHJpbmdcblJhbmdlRmlsdGVyQ29uZGl0aW9uPzogRGF0YVNldERhdGVSYW5nZUZpbHRlckNvbmRpdGlvblxuQ29tcGFyaXNvbkZpbHRlckNvbmRpdGlvbj86IERhdGFTZXREYXRlQ29tcGFyaXNvbkZpbHRlckNvbmRpdGlvblxufVxuZXhwb3J0IGludGVyZmFjZSBEYXRhU2V0RGF0ZVJhbmdlRmlsdGVyQ29uZGl0aW9uIHtcbkluY2x1ZGVNYXhpbXVtPzogYm9vbGVhblxuUmFuZ2VNaW5pbXVtPzogRGF0YVNldERhdGVGaWx0ZXJWYWx1ZVxuUmFuZ2VNYXhpbXVtPzogRGF0YVNldERhdGVGaWx0ZXJWYWx1ZVxuSW5jbHVkZU1pbmltdW0/OiBib29sZWFuXG59XG5leHBvcnQgaW50ZXJmYWNlIERhdGFTZXREYXRlRmlsdGVyVmFsdWUge1xuU3RhdGljVmFsdWU/OiBzdHJpbmdcbn1cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YVNldERhdGVDb21wYXJpc29uRmlsdGVyQ29uZGl0aW9uIHtcbk9wZXJhdG9yOiBEYXRhU2V0RGF0ZUNvbXBhcmlzb25GaWx0ZXJPcGVyYXRvclxuVmFsdWU/OiBEYXRhU2V0RGF0ZUZpbHRlclZhbHVlXG59XG5leHBvcnQgaW50ZXJmYWNlIERhdGFTZXRTdHJpbmdGaWx0ZXJDb25kaXRpb24ge1xuQ29sdW1uTmFtZT86IHN0cmluZ1xuQ29tcGFyaXNvbkZpbHRlckNvbmRpdGlvbj86IERhdGFTZXRTdHJpbmdDb21wYXJpc29uRmlsdGVyQ29uZGl0aW9uXG5MaXN0RmlsdGVyQ29uZGl0aW9uPzogRGF0YVNldFN0cmluZ0xpc3RGaWx0ZXJDb25kaXRpb25cbn1cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YVNldFN0cmluZ0NvbXBhcmlzb25GaWx0ZXJDb25kaXRpb24ge1xuT3BlcmF0b3I6IERhdGFTZXRTdHJpbmdDb21wYXJpc29uRmlsdGVyT3BlcmF0b3JcblZhbHVlPzogRGF0YVNldFN0cmluZ0ZpbHRlclZhbHVlXG59XG5leHBvcnQgaW50ZXJmYWNlIERhdGFTZXRTdHJpbmdGaWx0ZXJWYWx1ZSB7XG5TdGF0aWNWYWx1ZT86IHN0cmluZ1xufVxuZXhwb3J0IGludGVyZmFjZSBEYXRhU2V0U3RyaW5nTGlzdEZpbHRlckNvbmRpdGlvbiB7XG5PcGVyYXRvcjogRGF0YVNldFN0cmluZ0xpc3RGaWx0ZXJPcGVyYXRvclxuVmFsdWVzPzogRGF0YVNldFN0cmluZ0xpc3RGaWx0ZXJWYWx1ZVxufVxuZXhwb3J0IGludGVyZmFjZSBEYXRhU2V0U3RyaW5nTGlzdEZpbHRlclZhbHVlIHtcbi8qKlxuICogQG1pbkl0ZW1zIDBcbiAqIEBtYXhJdGVtcyAxMDAwXG4gKi9cblN0YXRpY1ZhbHVlcz86IHN0cmluZ1tdXG59XG5leHBvcnQgaW50ZXJmYWNlIERhdGFTZXROdW1lcmljRmlsdGVyQ29uZGl0aW9uIHtcbkNvbHVtbk5hbWU/OiBzdHJpbmdcblJhbmdlRmlsdGVyQ29uZGl0aW9uPzogRGF0YVNldE51bWVyaWNSYW5nZUZpbHRlckNvbmRpdGlvblxuQ29tcGFyaXNvbkZpbHRlckNvbmRpdGlvbj86IERhdGFTZXROdW1lcmljQ29tcGFyaXNvbkZpbHRlckNvbmRpdGlvblxufVxuZXhwb3J0IGludGVyZmFjZSBEYXRhU2V0TnVtZXJpY1JhbmdlRmlsdGVyQ29uZGl0aW9uIHtcbkluY2x1ZGVNYXhpbXVtPzogYm9vbGVhblxuUmFuZ2VNaW5pbXVtPzogRGF0YVNldE51bWVyaWNGaWx0ZXJWYWx1ZVxuUmFuZ2VNYXhpbXVtPzogRGF0YVNldE51bWVyaWNGaWx0ZXJWYWx1ZVxuSW5jbHVkZU1pbmltdW0/OiBib29sZWFuXG59XG5leHBvcnQgaW50ZXJmYWNlIERhdGFTZXROdW1lcmljRmlsdGVyVmFsdWUge1xuU3RhdGljVmFsdWU/OiBudW1iZXJcbn1cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YVNldE51bWVyaWNDb21wYXJpc29uRmlsdGVyQ29uZGl0aW9uIHtcbk9wZXJhdG9yOiBEYXRhU2V0TnVtZXJpY0NvbXBhcmlzb25GaWx0ZXJPcGVyYXRvclxuVmFsdWU/OiBEYXRhU2V0TnVtZXJpY0ZpbHRlclZhbHVlXG59XG4vKipcbiAqIDxwPkEgdHJhbnNmb3JtIG9wZXJhdGlvbiB0aGF0IGNhc3RzIGEgY29sdW1uIHRvIGEgZGlmZmVyZW50IHR5cGUuPC9wPlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENhc3RDb2x1bW5UeXBlT3BlcmF0aW9uIHtcbi8qKlxuICogPHA+Q29sdW1uIG5hbWUuPC9wPlxuICovXG5Db2x1bW5OYW1lOiBzdHJpbmdcblN1YlR5cGU/OiBDb2x1bW5EYXRhU3ViVHlwZVxuLyoqXG4gKiA8cD5XaGVuIGNhc3RpbmcgYSBjb2x1bW4gZnJvbSBzdHJpbmcgdG8gZGF0ZXRpbWUgdHlwZSwgeW91IGNhbiBzdXBwbHkgYSBzdHJpbmcgaW4gYVxuICogICAgICAgICAgICAgZm9ybWF0IHN1cHBvcnRlZCBieSBBbWF6b24gUXVpY2tTaWdodCB0byBkZW5vdGUgdGhlIHNvdXJjZSBkYXRhIGZvcm1hdC48L3A+XG4gKi9cbkZvcm1hdD86IHN0cmluZ1xuTmV3Q29sdW1uVHlwZTogQ29sdW1uRGF0YVR5cGVcbn1cbi8qKlxuICogPHA+QSB0cmFuc2Zvcm0gb3BlcmF0aW9uIHRoYXQgY3JlYXRlcyBjYWxjdWxhdGVkIGNvbHVtbnMuIENvbHVtbnMgY3JlYXRlZCBpbiBvbmUgc3VjaFxuICogICAgICAgICAgICAgb3BlcmF0aW9uIGZvcm0gYSBsZXhpY2FsIGNsb3N1cmUuPC9wPlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZUNvbHVtbnNPcGVyYXRpb24ge1xuQWxpYXM/OiBzdHJpbmdcbi8qKlxuICogPHA+Q2FsY3VsYXRlZCBjb2x1bW5zIHRvIGNyZWF0ZS48L3A+XG4gKiBcbiAqIEBtaW5JdGVtcyAwXG4gKiBAbWF4SXRlbXMgMjU2XG4gKi9cbkNvbHVtbnM6IENhbGN1bGF0ZWRDb2x1bW5bXVxuU291cmNlPzogVHJhbnNmb3JtT3BlcmF0aW9uU291cmNlXG59XG4vKipcbiAqIDxwPkEgY2FsY3VsYXRlZCBjb2x1bW4gZm9yIGEgZGF0YXNldC48L3A+XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2FsY3VsYXRlZENvbHVtbiB7XG4vKipcbiAqIDxwPkEgdW5pcXVlIElEIHRvIGlkZW50aWZ5IGEgY2FsY3VsYXRlZCBjb2x1bW4uIER1cmluZyBhIGRhdGFzZXQgdXBkYXRlLCBpZiB0aGUgY29sdW1uIElEXG4gKiAgICAgICAgICAgICBvZiBhIGNhbGN1bGF0ZWQgY29sdW1uIG1hdGNoZXMgdGhhdCBvZiBhbiBleGlzdGluZyBjYWxjdWxhdGVkIGNvbHVtbiwgQW1hem9uIFF1aWNrU2lnaHRcbiAqICAgICAgICAgICAgIHByZXNlcnZlcyB0aGUgZXhpc3RpbmcgY2FsY3VsYXRlZCBjb2x1bW4uPC9wPlxuICovXG5Db2x1bW5JZDogc3RyaW5nXG4vKipcbiAqIDxwPkNvbHVtbiBuYW1lLjwvcD5cbiAqL1xuQ29sdW1uTmFtZTogc3RyaW5nXG4vKipcbiAqIDxwPkFuIGV4cHJlc3Npb24gdGhhdCBkZWZpbmVzIHRoZSBjYWxjdWxhdGVkIGNvbHVtbi48L3A+XG4gKi9cbkV4cHJlc3Npb246IHN0cmluZ1xufVxuZXhwb3J0IGludGVyZmFjZSBUcmFuc2Zvcm1PcGVyYXRpb25Tb3VyY2Uge1xuVHJhbnNmb3JtT3BlcmF0aW9uSWQ6IHN0cmluZ1xuLyoqXG4gKiBAbWluSXRlbXMgMVxuICogQG1heEl0ZW1zIDIwNDhcbiAqL1xuQ29sdW1uSWRNYXBwaW5ncz86IERhdGFTZXRDb2x1bW5JZE1hcHBpbmdbXVxufVxuZXhwb3J0IGludGVyZmFjZSBEYXRhU2V0Q29sdW1uSWRNYXBwaW5nIHtcblNvdXJjZUNvbHVtbklkOiBzdHJpbmdcblRhcmdldENvbHVtbklkOiBzdHJpbmdcbn1cbi8qKlxuICogPHA+QSB0cmFuc2Zvcm0gb3BlcmF0aW9uIHRoYXQgcmVuYW1lcyBhIGNvbHVtbi48L3A+XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVuYW1lQ29sdW1uT3BlcmF0aW9uIHtcbi8qKlxuICogPHA+VGhlIG5ldyBuYW1lIGZvciB0aGUgY29sdW1uLjwvcD5cbiAqL1xuTmV3Q29sdW1uTmFtZTogc3RyaW5nXG4vKipcbiAqIDxwPlRoZSBuYW1lIG9mIHRoZSBjb2x1bW4gdG8gYmUgcmVuYW1lZC48L3A+XG4gKi9cbkNvbHVtbk5hbWU6IHN0cmluZ1xufVxuLyoqXG4gKiA8cD5BIHRyYW5zZm9ybSBvcGVyYXRpb24gdGhhdCBwcm9qZWN0cyBjb2x1bW5zLiBPcGVyYXRpb25zIHRoYXQgY29tZSBhZnRlciBhIHByb2plY3Rpb25cbiAqICAgICAgICAgICAgIGNhbiBvbmx5IHJlZmVyIHRvIHByb2plY3RlZCBjb2x1bW5zLjwvcD5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcm9qZWN0T3BlcmF0aW9uIHtcbkFsaWFzPzogc3RyaW5nXG4vKipcbiAqIDxwPlByb2plY3RlZCBjb2x1bW5zLjwvcD5cbiAqIFxuICogQG1pbkl0ZW1zIDBcbiAqIEBtYXhJdGVtcyAyMDQ4XG4gKi9cblByb2plY3RlZENvbHVtbnM/OiBzdHJpbmdbXVxuU291cmNlPzogVHJhbnNmb3JtT3BlcmF0aW9uU291cmNlXG59XG4vKipcbiAqIDxwPkluZm9ybWF0aW9uIGFib3V0IHRoZSBzb3VyY2Ugb2YgYSBsb2dpY2FsIHRhYmxlLiBUaGlzIGlzIGEgdmFyaWFudCB0eXBlIHN0cnVjdHVyZS4gRm9yXG4gKiAgICAgICAgICAgICB0aGlzIHN0cnVjdHVyZSB0byBiZSB2YWxpZCwgb25seSBvbmUgb2YgdGhlIGF0dHJpYnV0ZXMgY2FuIGJlIG5vbi1udWxsLjwvcD5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMb2dpY2FsVGFibGVTb3VyY2Uge1xuLyoqXG4gKiA8cD5QaHlzaWNhbCB0YWJsZSBJRC48L3A+XG4gKi9cblBoeXNpY2FsVGFibGVJZD86IHN0cmluZ1xuSm9pbkluc3RydWN0aW9uPzogSm9pbkluc3RydWN0aW9uXG4vKipcbiAqIDxwPlRoZSBBbWF6b24gUmVzb3VyY2UgTnVtYmVyIChBUk4pIG9mIHRoZSBwYXJlbnQgZGF0YXNldC48L3A+XG4gKi9cbkRhdGFTZXRBcm4/OiBzdHJpbmdcbn1cbi8qKlxuICogPHA+VGhlIGluc3RydWN0aW9ucyBhc3NvY2lhdGVkIHdpdGggYSBqb2luLiA8L3A+XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSm9pbkluc3RydWN0aW9uIHtcbi8qKlxuICogPHA+VGhlIGpvaW4gaW5zdHJ1Y3Rpb25zIHByb3ZpZGVkIGluIHRoZSA8Y29kZT5PTjwvY29kZT4gY2xhdXNlIG9mIGEgam9pbi48L3A+XG4gKi9cbk9uQ2xhdXNlOiBzdHJpbmdcblR5cGU6IEpvaW5UeXBlXG5MZWZ0Sm9pbktleVByb3BlcnRpZXM/OiBKb2luS2V5UHJvcGVydGllc1xuLyoqXG4gKiA8cD5UaGUgb3BlcmFuZCBvbiB0aGUgbGVmdCBzaWRlIG9mIGEgam9pbi48L3A+XG4gKi9cbkxlZnRPcGVyYW5kOiBzdHJpbmdcbi8qKlxuICogPHA+VGhlIG9wZXJhbmQgb24gdGhlIHJpZ2h0IHNpZGUgb2YgYSBqb2luLjwvcD5cbiAqL1xuUmlnaHRPcGVyYW5kOiBzdHJpbmdcblJpZ2h0Sm9pbktleVByb3BlcnRpZXM/OiBKb2luS2V5UHJvcGVydGllc1xufVxuLyoqXG4gKiA8cD5Qcm9wZXJ0aWVzIGFzc29jaWF0ZWQgd2l0aCB0aGUgY29sdW1ucyBwYXJ0aWNpcGF0aW5nIGluIGEgam9pbi48L3A+XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSm9pbktleVByb3BlcnRpZXMge1xuLyoqXG4gKiA8cD5BIHZhbHVlIHRoYXQgaW5kaWNhdGVzIHRoYXQgYSByb3cgaW4gYSB0YWJsZSBpcyB1bmlxdWVseSBpZGVudGlmaWVkIGJ5IHRoZSBjb2x1bW5zIGluXG4gKiAgICAgICAgICAgICBhIGpvaW4ga2V5LiBUaGlzIGlzIHVzZWQgYnkgQW1hem9uIFF1aWNrU2lnaHQgdG8gb3B0aW1pemUgcXVlcnkgcGVyZm9ybWFuY2UuPC9wPlxuICovXG5VbmlxdWVLZXk/OiBib29sZWFuXG59XG4vKipcbiAqIDxwPlRoZSB1c2FnZSBjb25maWd1cmF0aW9uIHRvIGFwcGx5IHRvIGNoaWxkIGRhdGFzZXRzIHRoYXQgcmVmZXJlbmNlIHRoaXMgZGF0YXNldCBhcyBhIHNvdXJjZS48L3A+XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YVNldFVzYWdlQ29uZmlndXJhdGlvbiB7XG4vKipcbiAqIDxwPkFuIG9wdGlvbiB0aGF0IGNvbnRyb2xzIHdoZXRoZXIgYSBjaGlsZCBkYXRhc2V0IHRoYXQncyBzdG9yZWQgaW4gUXVpY2tTaWdodCBjYW4gdXNlIHRoaXMgZGF0YXNldCBhcyBhIHNvdXJjZS48L3A+XG4gKi9cbkRpc2FibGVVc2VBc0ltcG9ydGVkU291cmNlPzogYm9vbGVhblxuLyoqXG4gKiA8cD5BbiBvcHRpb24gdGhhdCBjb250cm9scyB3aGV0aGVyIGEgY2hpbGQgZGF0YXNldCBvZiBhIGRpcmVjdCBxdWVyeSBjYW4gdXNlIHRoaXMgZGF0YXNldCBhcyBhIHNvdXJjZS48L3A+XG4gKi9cbkRpc2FibGVVc2VBc0RpcmVjdFF1ZXJ5U291cmNlPzogYm9vbGVhblxufVxuLyoqXG4gKiA8cD5PdXRwdXQgY29sdW1uLjwvcD5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPdXRwdXRDb2x1bW4ge1xuVHlwZT86IENvbHVtbkRhdGFUeXBlXG4vKipcbiAqIDxwPkEgZGVzY3JpcHRpb24gZm9yIGEgY29sdW1uLjwvcD5cbiAqL1xuRGVzY3JpcHRpb24/OiBzdHJpbmdcblN1YlR5cGU/OiBDb2x1bW5EYXRhU3ViVHlwZVxuSWQ/OiBzdHJpbmdcbi8qKlxuICogPHA+VGhlIGRpc3BsYXkgbmFtZSBvZiB0aGUgY29sdW1uLi48L3A+XG4gKi9cbk5hbWU/OiBzdHJpbmdcbn1cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YVByZXBDb25maWd1cmF0aW9uIHtcbkRlc3RpbmF0aW9uVGFibGVNYXA6IERlc3RpbmF0aW9uVGFibGVNYXBcblRyYW5zZm9ybVN0ZXBNYXA6IFRyYW5zZm9ybVN0ZXBNYXBcblNvdXJjZVRhYmxlTWFwOiBTb3VyY2VUYWJsZU1hcFxufVxuZXhwb3J0IGludGVyZmFjZSBEZXN0aW5hdGlvblRhYmxlTWFwIHtcbltrOiBzdHJpbmddOiBEZXN0aW5hdGlvblRhYmxlXG59XG4vKipcbiAqIFRoaXMgaW50ZXJmYWNlIHdhcyByZWZlcmVuY2VkIGJ5IGBEZXN0aW5hdGlvblRhYmxlTWFwYCdzIEpTT04tU2NoZW1hIGRlZmluaXRpb25cbiAqIHZpYSB0aGUgYHBhdHRlcm5Qcm9wZXJ0eWAgXCJeWzAtOWEtekEtWi1dKiRcIi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEZXN0aW5hdGlvblRhYmxlIHtcbkFsaWFzOiBzdHJpbmdcblNvdXJjZTogRGVzdGluYXRpb25UYWJsZVNvdXJjZVxufVxuZXhwb3J0IGludGVyZmFjZSBEZXN0aW5hdGlvblRhYmxlU291cmNlIHtcblRyYW5zZm9ybU9wZXJhdGlvbklkOiBzdHJpbmdcbn1cbmV4cG9ydCBpbnRlcmZhY2UgVHJhbnNmb3JtU3RlcE1hcCB7XG5bazogc3RyaW5nXTogVHJhbnNmb3JtU3RlcFxufVxuLyoqXG4gKiBUaGlzIGludGVyZmFjZSB3YXMgcmVmZXJlbmNlZCBieSBgVHJhbnNmb3JtU3RlcE1hcGAncyBKU09OLVNjaGVtYSBkZWZpbml0aW9uXG4gKiB2aWEgdGhlIGBwYXR0ZXJuUHJvcGVydHlgIFwiXlswLTlhLXpBLVotXSokXCIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVHJhbnNmb3JtU3RlcCB7XG5Qcm9qZWN0U3RlcD86IFByb2plY3RPcGVyYXRpb25cbkNyZWF0ZUNvbHVtbnNTdGVwPzogQ3JlYXRlQ29sdW1uc09wZXJhdGlvblxuUmVuYW1lQ29sdW1uc1N0ZXA/OiBSZW5hbWVDb2x1bW5zT3BlcmF0aW9uXG5DYXN0Q29sdW1uVHlwZXNTdGVwPzogQ2FzdENvbHVtblR5cGVzT3BlcmF0aW9uXG5JbXBvcnRUYWJsZVN0ZXA/OiBJbXBvcnRUYWJsZU9wZXJhdGlvblxuVW5waXZvdFN0ZXA/OiBVbnBpdm90T3BlcmF0aW9uXG5Kb2luU3RlcD86IEpvaW5PcGVyYXRpb25cbkFwcGVuZFN0ZXA/OiBBcHBlbmRPcGVyYXRpb25cbkZpbHRlcnNTdGVwPzogRmlsdGVyc09wZXJhdGlvblxuQWdncmVnYXRlU3RlcD86IEFnZ3JlZ2F0ZU9wZXJhdGlvblxuUGl2b3RTdGVwPzogUGl2b3RPcGVyYXRpb25cbn1cbmV4cG9ydCBpbnRlcmZhY2UgUmVuYW1lQ29sdW1uc09wZXJhdGlvbiB7XG5BbGlhczogc3RyaW5nXG4vKipcbiAqIEBtaW5JdGVtcyAwXG4gKiBAbWF4SXRlbXMgMjA0OFxuICovXG5SZW5hbWVDb2x1bW5PcGVyYXRpb25zOiBSZW5hbWVDb2x1bW5PcGVyYXRpb25bXVxuU291cmNlOiBUcmFuc2Zvcm1PcGVyYXRpb25Tb3VyY2Vcbn1cbmV4cG9ydCBpbnRlcmZhY2UgQ2FzdENvbHVtblR5cGVzT3BlcmF0aW9uIHtcbi8qKlxuICogQG1pbkl0ZW1zIDBcbiAqIEBtYXhJdGVtcyAyMDQ4XG4gKi9cbkNhc3RDb2x1bW5UeXBlT3BlcmF0aW9uczogQ2FzdENvbHVtblR5cGVPcGVyYXRpb25bXVxuQWxpYXM6IHN0cmluZ1xuU291cmNlOiBUcmFuc2Zvcm1PcGVyYXRpb25Tb3VyY2Vcbn1cbmV4cG9ydCBpbnRlcmZhY2UgSW1wb3J0VGFibGVPcGVyYXRpb24ge1xuQWxpYXM6IHN0cmluZ1xuU291cmNlOiBJbXBvcnRUYWJsZU9wZXJhdGlvblNvdXJjZVxufVxuZXhwb3J0IGludGVyZmFjZSBJbXBvcnRUYWJsZU9wZXJhdGlvblNvdXJjZSB7XG5Tb3VyY2VUYWJsZUlkOiBzdHJpbmdcbi8qKlxuICogQG1pbkl0ZW1zIDFcbiAqIEBtYXhJdGVtcyAyMDQ4XG4gKi9cbkNvbHVtbklkTWFwcGluZ3M/OiBEYXRhU2V0Q29sdW1uSWRNYXBwaW5nW11cbn1cbmV4cG9ydCBpbnRlcmZhY2UgVW5waXZvdE9wZXJhdGlvbiB7XG5VbnBpdm90ZWRMYWJlbENvbHVtbk5hbWU6IHN0cmluZ1xuLyoqXG4gKiBAbWluSXRlbXMgMFxuICogQG1heEl0ZW1zIDEwMFxuICovXG5Db2x1bW5zVG9VbnBpdm90OiBDb2x1bW5Ub1VucGl2b3RbXVxuVW5waXZvdGVkTGFiZWxDb2x1bW5JZDogc3RyaW5nXG5BbGlhczogc3RyaW5nXG5VbnBpdm90ZWRWYWx1ZUNvbHVtbklkOiBzdHJpbmdcblVucGl2b3RlZFZhbHVlQ29sdW1uTmFtZTogc3RyaW5nXG5Tb3VyY2U6IFRyYW5zZm9ybU9wZXJhdGlvblNvdXJjZVxufVxuZXhwb3J0IGludGVyZmFjZSBDb2x1bW5Ub1VucGl2b3Qge1xuQ29sdW1uTmFtZT86IHN0cmluZ1xuTmV3VmFsdWU/OiBzdHJpbmdcbn1cbmV4cG9ydCBpbnRlcmZhY2UgSm9pbk9wZXJhdGlvbiB7XG5PbkNsYXVzZTogc3RyaW5nXG5UeXBlOiBKb2luT3BlcmF0aW9uVHlwZVxuUmlnaHRPcGVyYW5kUHJvcGVydGllcz86IEpvaW5PcGVyYW5kUHJvcGVydGllc1xuTGVmdE9wZXJhbmRQcm9wZXJ0aWVzPzogSm9pbk9wZXJhbmRQcm9wZXJ0aWVzXG5BbGlhczogc3RyaW5nXG5MZWZ0T3BlcmFuZDogVHJhbnNmb3JtT3BlcmF0aW9uU291cmNlXG5SaWdodE9wZXJhbmQ6IFRyYW5zZm9ybU9wZXJhdGlvblNvdXJjZVxufVxuZXhwb3J0IGludGVyZmFjZSBKb2luT3BlcmFuZFByb3BlcnRpZXMge1xuLyoqXG4gKiBAbWluSXRlbXMgMVxuICogQG1heEl0ZW1zIDIwNDhcbiAqL1xuT3V0cHV0Q29sdW1uTmFtZU92ZXJyaWRlczogT3V0cHV0Q29sdW1uTmFtZU92ZXJyaWRlW11cbn1cbmV4cG9ydCBpbnRlcmZhY2UgT3V0cHV0Q29sdW1uTmFtZU92ZXJyaWRlIHtcbk91dHB1dENvbHVtbk5hbWU6IHN0cmluZ1xuU291cmNlQ29sdW1uTmFtZT86IHN0cmluZ1xufVxuZXhwb3J0IGludGVyZmFjZSBBcHBlbmRPcGVyYXRpb24ge1xuLyoqXG4gKiBAbWluSXRlbXMgMFxuICogQG1heEl0ZW1zIDIwNDhcbiAqL1xuQXBwZW5kZWRDb2x1bW5zOiBBcHBlbmRlZENvbHVtbltdXG5TZWNvbmRTb3VyY2U/OiBUcmFuc2Zvcm1PcGVyYXRpb25Tb3VyY2VcbkFsaWFzOiBzdHJpbmdcbkZpcnN0U291cmNlPzogVHJhbnNmb3JtT3BlcmF0aW9uU291cmNlXG59XG5leHBvcnQgaW50ZXJmYWNlIEFwcGVuZGVkQ29sdW1uIHtcbkNvbHVtbk5hbWU6IHN0cmluZ1xuTmV3Q29sdW1uSWQ6IHN0cmluZ1xufVxuZXhwb3J0IGludGVyZmFjZSBGaWx0ZXJzT3BlcmF0aW9uIHtcbi8qKlxuICogQG1pbkl0ZW1zIDBcbiAqIEBtYXhJdGVtcyAxMjhcbiAqL1xuRmlsdGVyT3BlcmF0aW9uczogRmlsdGVyT3BlcmF0aW9uW11cbkFsaWFzOiBzdHJpbmdcblNvdXJjZTogVHJhbnNmb3JtT3BlcmF0aW9uU291cmNlXG59XG5leHBvcnQgaW50ZXJmYWNlIEFnZ3JlZ2F0ZU9wZXJhdGlvbiB7XG4vKipcbiAqIEBtaW5JdGVtcyAwXG4gKiBAbWF4SXRlbXMgMTI4XG4gKi9cbkdyb3VwQnlDb2x1bW5OYW1lcz86IHN0cmluZ1tdXG5BbGlhczogc3RyaW5nXG4vKipcbiAqIEBtaW5JdGVtcyAwXG4gKiBAbWF4SXRlbXMgMTI4XG4gKi9cbkFnZ3JlZ2F0aW9uczogQWdncmVnYXRpb25bXVxuU291cmNlOiBUcmFuc2Zvcm1PcGVyYXRpb25Tb3VyY2Vcbn1cbmV4cG9ydCBpbnRlcmZhY2UgQWdncmVnYXRpb24ge1xuQWdncmVnYXRpb25GdW5jdGlvbjogRGF0YVByZXBBZ2dyZWdhdGlvbkZ1bmN0aW9uXG5OZXdDb2x1bW5OYW1lOiBzdHJpbmdcbk5ld0NvbHVtbklkOiBzdHJpbmdcbn1cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YVByZXBBZ2dyZWdhdGlvbkZ1bmN0aW9uIHtcblBlcmNlbnRpbGVBZ2dyZWdhdGlvbj86IERhdGFQcmVwUGVyY2VudGlsZUFnZ3JlZ2F0aW9uRnVuY3Rpb25cblNpbXBsZUFnZ3JlZ2F0aW9uPzogRGF0YVByZXBTaW1wbGVBZ2dyZWdhdGlvbkZ1bmN0aW9uXG5MaXN0QWdncmVnYXRpb24/OiBEYXRhUHJlcExpc3RBZ2dyZWdhdGlvbkZ1bmN0aW9uXG59XG5leHBvcnQgaW50ZXJmYWNlIERhdGFQcmVwUGVyY2VudGlsZUFnZ3JlZ2F0aW9uRnVuY3Rpb24ge1xuSW5wdXRDb2x1bW5OYW1lPzogc3RyaW5nXG5QZXJjZW50aWxlVmFsdWU6IG51bWJlclxufVxuZXhwb3J0IGludGVyZmFjZSBEYXRhUHJlcFNpbXBsZUFnZ3JlZ2F0aW9uRnVuY3Rpb24ge1xuRnVuY3Rpb25UeXBlOiBEYXRhUHJlcFNpbXBsZUFnZ3JlZ2F0aW9uRnVuY3Rpb25UeXBlXG5JbnB1dENvbHVtbk5hbWU/OiBzdHJpbmdcbn1cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YVByZXBMaXN0QWdncmVnYXRpb25GdW5jdGlvbiB7XG5EaXN0aW5jdDogYm9vbGVhblxuSW5wdXRDb2x1bW5OYW1lPzogc3RyaW5nXG5TZXBhcmF0b3I6IHN0cmluZ1xufVxuZXhwb3J0IGludGVyZmFjZSBQaXZvdE9wZXJhdGlvbiB7XG5QaXZvdENvbmZpZ3VyYXRpb246IFBpdm90Q29uZmlndXJhdGlvblxuLyoqXG4gKiBAbWluSXRlbXMgMFxuICogQG1heEl0ZW1zIDEyOFxuICovXG5Hcm91cEJ5Q29sdW1uTmFtZXM/OiBzdHJpbmdbXVxuQWxpYXM6IHN0cmluZ1xuVmFsdWVDb2x1bW5Db25maWd1cmF0aW9uOiBWYWx1ZUNvbHVtbkNvbmZpZ3VyYXRpb25cblNvdXJjZTogVHJhbnNmb3JtT3BlcmF0aW9uU291cmNlXG59XG5leHBvcnQgaW50ZXJmYWNlIFBpdm90Q29uZmlndXJhdGlvbiB7XG5MYWJlbENvbHVtbk5hbWU/OiBzdHJpbmdcbi8qKlxuICogQG1pbkl0ZW1zIDBcbiAqIEBtYXhJdGVtcyAxMDBcbiAqL1xuUGl2b3RlZExhYmVsczogUGl2b3RlZExhYmVsW11cbn1cbmV4cG9ydCBpbnRlcmZhY2UgUGl2b3RlZExhYmVsIHtcbk5ld0NvbHVtbk5hbWU6IHN0cmluZ1xuTmV3Q29sdW1uSWQ6IHN0cmluZ1xuTGFiZWxOYW1lOiBzdHJpbmdcbn1cbmV4cG9ydCBpbnRlcmZhY2UgVmFsdWVDb2x1bW5Db25maWd1cmF0aW9uIHtcbkFnZ3JlZ2F0aW9uRnVuY3Rpb24/OiBEYXRhUHJlcEFnZ3JlZ2F0aW9uRnVuY3Rpb25cbn1cbmV4cG9ydCBpbnRlcmZhY2UgU291cmNlVGFibGVNYXAge1xuW2s6IHN0cmluZ106IFNvdXJjZVRhYmxlXG59XG4vKipcbiAqIFRoaXMgaW50ZXJmYWNlIHdhcyByZWZlcmVuY2VkIGJ5IGBTb3VyY2VUYWJsZU1hcGAncyBKU09OLVNjaGVtYSBkZWZpbml0aW9uXG4gKiB2aWEgdGhlIGBwYXR0ZXJuUHJvcGVydHlgIFwiXlswLTlhLXpBLVotXSokXCIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU291cmNlVGFibGUge1xuUGh5c2ljYWxUYWJsZUlkPzogc3RyaW5nXG5EYXRhU2V0PzogUGFyZW50RGF0YVNldFxufVxuZXhwb3J0IGludGVyZmFjZSBQYXJlbnREYXRhU2V0IHtcbi8qKlxuICogQG1pbkl0ZW1zIDBcbiAqIEBtYXhJdGVtcyAyMDQ4XG4gKi9cbklucHV0Q29sdW1uczogSW5wdXRDb2x1bW5bXVxuRGF0YVNldEFybjogc3RyaW5nXG59XG4iXX0=
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLXF1aWNrc2lnaHQtZGF0YXNldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImF3cy1xdWlja3NpZ2h0LWRhdGFzZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIFN0YXR1cyA9IChcIkVOQUJMRURcIiB8IFwiRElTQUJMRURcIilcbmV4cG9ydCB0eXBlIFJvd0xldmVsUGVybWlzc2lvbkZvcm1hdFZlcnNpb24gPSAoXCJWRVJTSU9OXzFcIiB8IFwiVkVSU0lPTl8yXCIpXG5leHBvcnQgdHlwZSBSb3dMZXZlbFBlcm1pc3Npb25Qb2xpY3kgPSAoXCJHUkFOVF9BQ0NFU1NcIiB8IFwiREVOWV9BQ0NFU1NcIilcbmV4cG9ydCB0eXBlIERhdGFTZXRVc2VBcyA9IFwiUkxTX1JVTEVTXCJcbmV4cG9ydCB0eXBlIElucHV0Q29sdW1uRGF0YVR5cGUgPSAoXCJTVFJJTkdcIiB8IFwiSU5URUdFUlwiIHwgXCJERUNJTUFMXCIgfCBcIkRBVEVUSU1FXCIgfCBcIkJJVFwiIHwgXCJCT09MRUFOXCIgfCBcIkpTT05cIilcbmV4cG9ydCB0eXBlIENvbHVtbkRhdGFTdWJUeXBlID0gKFwiRkxPQVRcIiB8IFwiRklYRURcIilcbmV4cG9ydCB0eXBlIFRleHRRdWFsaWZpZXIgPSAoXCJET1VCTEVfUVVPVEVcIiB8IFwiU0lOR0xFX1FVT1RFXCIpXG5leHBvcnQgdHlwZSBGaWxlRm9ybWF0ID0gKFwiQ1NWXCIgfCBcIlRTVlwiIHwgXCJDTEZcIiB8IFwiRUxGXCIgfCBcIlhMU1hcIiB8IFwiSlNPTlwiKVxuZXhwb3J0IHR5cGUgTG9va2JhY2tXaW5kb3dTaXplVW5pdCA9IChcIkhPVVJcIiB8IFwiREFZXCIgfCBcIldFRUtcIilcbmV4cG9ydCB0eXBlIFJlZnJlc2hGYWlsdXJlQWxlcnRTdGF0dXMgPSAoXCJFTkFCTEVEXCIgfCBcIkRJU0FCTEVEXCIpXG5leHBvcnQgdHlwZSBHZW9TcGF0aWFsQ291bnRyeUNvZGUgPSBcIlVTXCJcbmV4cG9ydCB0eXBlIERhdGFTZXRJbXBvcnRNb2RlID0gKFwiU1BJQ0VcIiB8IFwiRElSRUNUX1FVRVJZXCIpXG5leHBvcnQgdHlwZSBEYXRhc2V0UGFyYW1ldGVyVmFsdWVUeXBlID0gKFwiTVVMVElfVkFMVUVEXCIgfCBcIlNJTkdMRV9WQUxVRURcIilcbmV4cG9ydCB0eXBlIFRpbWVHcmFudWxhcml0eSA9IChcIllFQVJcIiB8IFwiUVVBUlRFUlwiIHwgXCJNT05USFwiIHwgXCJXRUVLXCIgfCBcIkRBWVwiIHwgXCJIT1VSXCIgfCBcIk1JTlVURVwiIHwgXCJTRUNPTkRcIiB8IFwiTUlMTElTRUNPTkRcIilcbmV4cG9ydCB0eXBlIEdlb1NwYXRpYWxEYXRhUm9sZSA9IChcIkNPVU5UUllcIiB8IFwiU1RBVEVcIiB8IFwiQ09VTlRZXCIgfCBcIkNJVFlcIiB8IFwiUE9TVENPREVcIiB8IFwiTE9OR0lUVURFXCIgfCBcIkxBVElUVURFXCIgfCBcIlBPTElUSUNBTDFcIiB8IFwiQ0VOU1VTX1RSQUNUXCIgfCBcIkNFTlNVU19CTE9DS19HUk9VUFwiIHwgXCJDRU5TVVNfQkxPQ0tcIilcbmV4cG9ydCB0eXBlIENvbHVtblRhZ05hbWUgPSAoXCJDT0xVTU5fR0VPR1JBUEhJQ19ST0xFXCIgfCBcIkNPTFVNTl9ERVNDUklQVElPTlwiKVxuZXhwb3J0IHR5cGUgRGF0YVNldERhdGVDb21wYXJpc29uRmlsdGVyT3BlcmF0b3IgPSAoXCJCRUZPUkVcIiB8IFwiQkVGT1JFX09SX0VRVUFMU19UT1wiIHwgXCJBRlRFUlwiIHwgXCJBRlRFUl9PUl9FUVVBTFNfVE9cIilcbmV4cG9ydCB0eXBlIERhdGFTZXRTdHJpbmdDb21wYXJpc29uRmlsdGVyT3BlcmF0b3IgPSAoXCJFUVVBTFNcIiB8IFwiRE9FU19OT1RfRVFVQUxcIiB8IFwiQ09OVEFJTlNcIiB8IFwiRE9FU19OT1RfQ09OVEFJTlwiIHwgXCJTVEFSVFNfV0lUSFwiIHwgXCJFTkRTX1dJVEhcIilcbmV4cG9ydCB0eXBlIERhdGFTZXRTdHJpbmdMaXN0RmlsdGVyT3BlcmF0b3IgPSAoXCJJTkNMVURFXCIgfCBcIkVYQ0xVREVcIilcbmV4cG9ydCB0eXBlIERhdGFTZXROdW1lcmljQ29tcGFyaXNvbkZpbHRlck9wZXJhdG9yID0gKFwiRVFVQUxTXCIgfCBcIkRPRVNfTk9UX0VRVUFMXCIgfCBcIkdSRUFURVJfVEhBTlwiIHwgXCJHUkVBVEVSX1RIQU5fT1JfRVFVQUxTX1RPXCIgfCBcIkxFU1NfVEhBTlwiIHwgXCJMRVNTX1RIQU5fT1JfRVFVQUxTX1RPXCIpXG5leHBvcnQgdHlwZSBDb2x1bW5EYXRhVHlwZSA9IChcIlNUUklOR1wiIHwgXCJJTlRFR0VSXCIgfCBcIkRFQ0lNQUxcIiB8IFwiREFURVRJTUVcIilcbmV4cG9ydCB0eXBlIEpvaW5UeXBlID0gKFwiSU5ORVJcIiB8IFwiT1VURVJcIiB8IFwiTEVGVFwiIHwgXCJSSUdIVFwiKVxuZXhwb3J0IHR5cGUgSm9pbk9wZXJhdGlvblR5cGUgPSAoXCJJTk5FUlwiIHwgXCJPVVRFUlwiIHwgXCJMRUZUXCIgfCBcIlJJR0hUXCIpXG5leHBvcnQgdHlwZSBEYXRhUHJlcFNpbXBsZUFnZ3JlZ2F0aW9uRnVuY3Rpb25UeXBlID0gKFwiQ09VTlRcIiB8IFwiRElTVElOQ1RfQ09VTlRcIiB8IFwiU1VNXCIgfCBcIkFWRVJBR0VcIiB8IFwiTUVESUFOXCIgfCBcIk1BWFwiIHwgXCJNSU5cIiB8IFwiVkFSSUFOQ0VcIiB8IFwiU1RBTkRBUkRfREVWSUFUSU9OXCIpXG5cbi8qKlxuICogRGVmaW5pdGlvbiBvZiB0aGUgQVdTOjpRdWlja1NpZ2h0OjpEYXRhU2V0IFJlc291cmNlIFR5cGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgX0FXU19RVUlDS1NJR0hUX0RBVEFTRVQge1xuLyoqXG4gKiA8cD5UaGUgdGltZSB0aGF0IHRoaXMgZGF0YXNldCB3YXMgY3JlYXRlZC48L3A+XG4gKi9cbkNyZWF0ZWRUaW1lPzogc3RyaW5nXG4vKipcbiAqIDxwPldoZW4geW91IGNyZWF0ZSB0aGUgZGF0YXNldCwgUXVpY2sgU3VpdGUgYWRkcyB0aGUgZGF0YXNldCB0byB0aGVzZSBmb2xkZXJzLjwvcD5cbiAqIFxuICogQG1pbkl0ZW1zIDBcbiAqIEBtYXhJdGVtcyAxMFxuICovXG5Gb2xkZXJBcm5zPzogc3RyaW5nW11cbi8qKlxuICogPHA+VGhlIGFtb3VudCBvZiBTUElDRSBjYXBhY2l0eSB1c2VkIGJ5IHRoaXMgZGF0YXNldC4gVGhpcyBpcyAwIGlmIHRoZSBkYXRhc2V0IGlzbid0XG4gKiAgICAgICAgICAgICBpbXBvcnRlZCBpbnRvIFNQSUNFLjwvcD5cbiAqL1xuQ29uc3VtZWRTcGljZUNhcGFjaXR5SW5CeXRlcz86IG51bWJlclxuUm93TGV2ZWxQZXJtaXNzaW9uRGF0YVNldD86IFJvd0xldmVsUGVybWlzc2lvbkRhdGFTZXRcbkluZ2VzdGlvbldhaXRQb2xpY3k/OiBJbmdlc3Rpb25XYWl0UG9saWN5XG4vKipcbiAqIDxwPkEgc2V0IG9mIG9uZSBvciBtb3JlIGRlZmluaXRpb25zIG9mIGEgPGNvZGU+XG4gKiAgICAgICAgICAgICAgICA8YSBocmVmPVwiaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3F1aWNrc2lnaHQvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfQ29sdW1uTGV2ZWxQZXJtaXNzaW9uUnVsZS5odG1sXCI+Q29sdW1uTGV2ZWxQZXJtaXNzaW9uUnVsZTwvYT5cbiAqICAgICAgICAgICAgIDwvY29kZT4uPC9wPlxuICogXG4gKiBAbWluSXRlbXMgMVxuICovXG5Db2x1bW5MZXZlbFBlcm1pc3Npb25SdWxlcz86IENvbHVtbkxldmVsUGVybWlzc2lvblJ1bGVbXVxuLyoqXG4gKiA8cD5UaGUgZGlzcGxheSBuYW1lIGZvciB0aGUgZGF0YXNldC48L3A+XG4gKi9cbk5hbWU/OiBzdHJpbmdcbi8qKlxuICogPHA+QSBsaXN0IG9mIHJlc291cmNlIHBlcm1pc3Npb25zIG9uIHRoZSBkYXRhc2V0LjwvcD5cbiAqIFxuICogQG1pbkl0ZW1zIDFcbiAqIEBtYXhJdGVtcyA2NFxuICovXG5QZXJtaXNzaW9ucz86IFJlc291cmNlUGVybWlzc2lvbltdXG5Vc2VBcz86IERhdGFTZXRVc2VBc1xuLyoqXG4gKiA8cD5Db250YWlucyBhIG1hcCBvZiB0aGUga2V5LXZhbHVlIHBhaXJzIGZvciB0aGUgcmVzb3VyY2UgdGFnIG9yIHRhZ3MgYXNzaWduZWQgdG8gdGhlIGRhdGFzZXQuPC9wPlxuICogXG4gKiBAbWluSXRlbXMgMVxuICogQG1heEl0ZW1zIDIwMFxuICovXG5UYWdzPzogVGFnW11cblBoeXNpY2FsVGFibGVNYXA/OiBQaHlzaWNhbFRhYmxlTWFwXG5GaWVsZEZvbGRlcnM/OiBGaWVsZEZvbGRlck1hcFxuLyoqXG4gKiA8cD5UaGUgbGFzdCB0aW1lIHRoYXQgdGhpcyBkYXRhc2V0IHdhcyB1cGRhdGVkLjwvcD5cbiAqL1xuTGFzdFVwZGF0ZWRUaW1lPzogc3RyaW5nXG5TZW1hbnRpY01vZGVsQ29uZmlndXJhdGlvbj86IFNlbWFudGljTW9kZWxDb25maWd1cmF0aW9uXG5EYXRhU2V0SWQ/OiBzdHJpbmdcblBlcmZvcm1hbmNlQ29uZmlndXJhdGlvbj86IFBlcmZvcm1hbmNlQ29uZmlndXJhdGlvblxuRGF0YVNldFJlZnJlc2hQcm9wZXJ0aWVzPzogRGF0YVNldFJlZnJlc2hQcm9wZXJ0aWVzXG5Sb3dMZXZlbFBlcm1pc3Npb25UYWdDb25maWd1cmF0aW9uPzogUm93TGV2ZWxQZXJtaXNzaW9uVGFnQ29uZmlndXJhdGlvblxuLyoqXG4gKiA8cD5Hcm91cGluZ3Mgb2YgY29sdW1ucyB0aGF0IHdvcmsgdG9nZXRoZXIgaW4gY2VydGFpbiBRdWljayBTdWl0ZSBmZWF0dXJlcy4gQ3VycmVudGx5LCBvbmx5IGdlb3NwYXRpYWwgaGllcmFyY2h5IGlzIHN1cHBvcnRlZC48L3A+XG4gKiBcbiAqIEBtaW5JdGVtcyAxXG4gKiBAbWF4SXRlbXMgOFxuICovXG5Db2x1bW5Hcm91cHM/OiBDb2x1bW5Hcm91cFtdXG5JbXBvcnRNb2RlPzogRGF0YVNldEltcG9ydE1vZGVcbi8qKlxuICogPHA+VGhlIHBhcmFtZXRlciBkZWNsYXJhdGlvbnMgb2YgdGhlIGRhdGFzZXQuPC9wPlxuICogXG4gKiBAbWluSXRlbXMgMFxuICogQG1heEl0ZW1zIDMyXG4gKi9cbkRhdGFzZXRQYXJhbWV0ZXJzPzogRGF0YXNldFBhcmFtZXRlcltdXG5Mb2dpY2FsVGFibGVNYXA/OiBMb2dpY2FsVGFibGVNYXBcbkF3c0FjY291bnRJZD86IHN0cmluZ1xuRGF0YVNldFVzYWdlQ29uZmlndXJhdGlvbj86IERhdGFTZXRVc2FnZUNvbmZpZ3VyYXRpb25cbi8qKlxuICogPHA+VGhlIGxpc3Qgb2YgY29sdW1ucyBhZnRlciBhbGwgdHJhbnNmb3Jtcy4gVGhlc2UgY29sdW1ucyBhcmUgYXZhaWxhYmxlIGluIHRlbXBsYXRlcyxcbiAqICAgICAgICAgICAgIGFuYWx5c2VzLCBhbmQgZGFzaGJvYXJkcy48L3A+XG4gKi9cbk91dHB1dENvbHVtbnM/OiBPdXRwdXRDb2x1bW5bXVxuRGF0YVByZXBDb25maWd1cmF0aW9uPzogRGF0YVByZXBDb25maWd1cmF0aW9uXG4vKipcbiAqIDxwPlRoZSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKSBvZiB0aGUgcmVzb3VyY2UuPC9wPlxuICovXG5Bcm4/OiBzdHJpbmdcbn1cbi8qKlxuICogPHA+SW5mb3JtYXRpb24gYWJvdXQgYSBkYXRhc2V0IHRoYXQgY29udGFpbnMgcGVybWlzc2lvbnMgZm9yIHJvdy1sZXZlbCBzZWN1cml0eSAoUkxTKS5cbiAqICAgICAgICAgICAgIFRoZSBwZXJtaXNzaW9ucyBkYXRhc2V0IG1hcHMgZmllbGRzIHRvIHVzZXJzIG9yIGdyb3Vwcy4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZVxuICogICAgICAgICAgICAgPGEgaHJlZj1cImh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9xdWlja3NpZ2h0L2xhdGVzdC91c2VyL3Jlc3RyaWN0LWFjY2Vzcy10by1hLWRhdGEtc2V0LXVzaW5nLXJvdy1sZXZlbC1zZWN1cml0eS5odG1sXCI+VXNpbmcgUm93LUxldmVsIFNlY3VyaXR5IChSTFMpIHRvIFJlc3RyaWN0IEFjY2VzcyB0byBhIERhdGFzZXQ8L2E+IGluIHRoZSA8aT5BbWF6b24gUXVpY2sgU3VpdGUgVXNlclxuICogICAgICAgICAgICAgICAgIEd1aWRlPC9pPi48L3A+XG4gKiAgICAgICAgICA8cD5UaGUgb3B0aW9uIHRvIGRlbnkgcGVybWlzc2lvbnMgYnkgc2V0dGluZyA8Y29kZT5QZXJtaXNzaW9uUG9saWN5PC9jb2RlPiB0byA8Y29kZT5ERU5ZX0FDQ0VTUzwvY29kZT4gaXNcbiAqICAgICAgICAgICAgIG5vdCBzdXBwb3J0ZWQgZm9yIG5ldyBSTFMgZGF0YXNldHMuPC9wPlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJvd0xldmVsUGVybWlzc2lvbkRhdGFTZXQge1xuU3RhdHVzPzogU3RhdHVzXG5Gb3JtYXRWZXJzaW9uPzogUm93TGV2ZWxQZXJtaXNzaW9uRm9ybWF0VmVyc2lvblxuLyoqXG4gKiA8cD5UaGUgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTikgb2YgdGhlIGRhdGFzZXQgdGhhdCBjb250YWlucyBwZXJtaXNzaW9ucyBmb3IgUkxTLjwvcD5cbiAqL1xuQXJuOiBzdHJpbmdcbi8qKlxuICogPHA+VGhlIG5hbWVzcGFjZSBhc3NvY2lhdGVkIHdpdGggdGhlIGRhdGFzZXQgdGhhdCBjb250YWlucyBwZXJtaXNzaW9ucyBmb3IgUkxTLjwvcD5cbiAqL1xuTmFtZXNwYWNlPzogc3RyaW5nXG5QZXJtaXNzaW9uUG9saWN5OiBSb3dMZXZlbFBlcm1pc3Npb25Qb2xpY3lcbn1cbi8qKlxuICogPHA+V2FpdCBwb2xpY3kgdG8gdXNlIHdoZW4gY3JlYXRpbmcvdXBkYXRpbmcgZGF0YXNldC4gRGVmYXVsdCBpcyB0byB3YWl0IGZvciBTUElDRSBpbmdlc3Rpb24gdG8gZmluaXNoIHdpdGggdGltZW91dCBvZiAzNiBob3Vycy48L3A+XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW5nZXN0aW9uV2FpdFBvbGljeSB7XG4vKipcbiAqIDxwPldhaXQgZm9yIFNQSUNFIGluZ2VzdGlvbiB0byBmaW5pc2ggdG8gbWFyayBkYXRhc2V0IGNyZWF0aW9uL3VwZGF0ZSBzdWNjZXNzZnVsLiBEZWZhdWx0ICh0cnVlKS5cbiAqICAgQXBwbGljYWJsZSBvbmx5IHdoZW4gRGF0YVNldEltcG9ydE1vZGUgbW9kZSBpcyBzZXQgdG8gU1BJQ0UuPC9wPlxuICovXG5XYWl0Rm9yU3BpY2VJbmdlc3Rpb24/OiBib29sZWFuXG4vKipcbiAqIDxwPlRoZSBtYXhpbXVtIHRpbWUgKGluIGhvdXJzKSB0byB3YWl0IGZvciBJbmdlc3Rpb24gdG8gY29tcGxldGUuIERlZmF1bHQgdGltZW91dCBpcyAzNiBob3Vycy5cbiAqICBBcHBsaWNhYmxlIG9ubHkgd2hlbiBEYXRhU2V0SW1wb3J0TW9kZSBtb2RlIGlzIHNldCB0byBTUElDRSBhbmQgV2FpdEZvclNwaWNlSW5nZXN0aW9uIGlzIHNldCB0byB0cnVlLjwvcD5cbiAqL1xuSW5nZXN0aW9uV2FpdFRpbWVJbkhvdXJzPzogbnVtYmVyXG59XG4vKipcbiAqIDxwPkEgcnVsZSBkZWZpbmVkIHRvIGdyYW50IGFjY2VzcyBvbiBvbmUgb3IgbW9yZSByZXN0cmljdGVkIGNvbHVtbnMuXG4gKiAgICAgICAgICAgICBFYWNoIGRhdGFzZXQgY2FuIGhhdmUgbXVsdGlwbGUgcnVsZXMuXG4gKiAgICAgICAgICAgICBUbyBjcmVhdGUgYSByZXN0cmljdGVkIGNvbHVtbiwgeW91IGFkZCBpdCB0byBvbmUgb3IgbW9yZSBydWxlcy5cbiAqICAgICAgICAgICAgIEVhY2ggcnVsZSBtdXN0IGNvbnRhaW4gYXQgbGVhc3Qgb25lIGNvbHVtbiBhbmQgYXQgbGVhc3Qgb25lIHVzZXIgb3IgZ3JvdXAuXG4gKiAgICAgICAgICAgICBUbyBiZSBhYmxlIHRvIHNlZSBhIHJlc3RyaWN0ZWQgY29sdW1uLCBhIHVzZXIgb3IgZ3JvdXAgbmVlZHMgdG8gYmUgYWRkZWRcbiAqICAgICAgICAgICAgIHRvIGEgcnVsZSBmb3IgdGhhdCBjb2x1bW4uPC9wPlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbHVtbkxldmVsUGVybWlzc2lvblJ1bGUge1xuLyoqXG4gKiA8cD5BbiBhcnJheSBvZiBjb2x1bW4gbmFtZXMuPC9wPlxuICogXG4gKiBAbWluSXRlbXMgMVxuICovXG5Db2x1bW5OYW1lcz86IHN0cmluZ1tdXG4vKipcbiAqIDxwPkFuIGFycmF5IG9mIEFtYXpvbiBSZXNvdXJjZSBOYW1lcyAoQVJOcykgZm9yIFF1aWNrIFN1aXRlIHVzZXJzIG9yIGdyb3Vwcy48L3A+XG4gKiBcbiAqIEBtaW5JdGVtcyAxXG4gKiBAbWF4SXRlbXMgMTAwXG4gKi9cblByaW5jaXBhbHM/OiBzdHJpbmdbXVxufVxuLyoqXG4gKiA8cD5QZXJtaXNzaW9uIGZvciB0aGUgcmVzb3VyY2UuPC9wPlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlc291cmNlUGVybWlzc2lvbiB7XG4vKipcbiAqIDxwPlRoZSBJQU0gYWN0aW9uIHRvIGdyYW50IG9yIHJldm9rZSBwZXJtaXNzaW9ucyBvbi48L3A+XG4gKiBcbiAqIEBtaW5JdGVtcyAxXG4gKiBAbWF4SXRlbXMgMjBcbiAqL1xuQWN0aW9uczogc3RyaW5nW11cbi8qKlxuICogPHA+VGhlIEFtYXpvbiBSZXNvdXJjZSBOYW1lIChBUk4pIG9mIHRoZSBwcmluY2lwYWwuIFRoaXMgY2FuIGJlIG9uZSBvZiB0aGVcbiAqICAgICAgICAgICAgIGZvbGxvd2luZzo8L3A+XG4gKiAgICAgICAgICA8dWw+XG4gKiAgICAgICAgICAgICA8bGk+XG4gKiAgICAgICAgICAgICAgICA8cD5UaGUgQVJOIG9mIGFuIEFtYXpvbiBRdWljayBTdWl0ZSB1c2VyIG9yIGdyb3VwIGFzc29jaWF0ZWQgd2l0aCBhIGRhdGEgc291cmNlIG9yIGRhdGFzZXQuIChUaGlzIGlzIGNvbW1vbi4pPC9wPlxuICogICAgICAgICAgICAgPC9saT5cbiAqICAgICAgICAgICAgIDxsaT5cbiAqICAgICAgICAgICAgICAgIDxwPlRoZSBBUk4gb2YgYW4gQW1hem9uIFF1aWNrIFN1aXRlIHVzZXIsIGdyb3VwLCBvciBuYW1lc3BhY2UgYXNzb2NpYXRlZCB3aXRoIGFuIGFuYWx5c2lzLCBkYXNoYm9hcmQsIHRlbXBsYXRlLCBvciB0aGVtZS4gKFRoaXMgaXMgY29tbW9uLik8L3A+XG4gKiAgICAgICAgICAgICA8L2xpPlxuICogICAgICAgICAgICAgPGxpPlxuICogICAgICAgICAgICAgICAgPHA+VGhlIEFSTiBvZiBhbiBBbWF6b24gV2ViIFNlcnZpY2VzIGFjY291bnQgcm9vdDogVGhpcyBpcyBhbiBJQU0gQVJOIHJhdGhlciB0aGFuIGEgUXVpY2tTaWdodFxuICogICAgICAgICAgICAgICAgICAgICBBUk4uIFVzZSB0aGlzIG9wdGlvbiBvbmx5IHRvIHNoYXJlIHJlc291cmNlcyAodGVtcGxhdGVzKSBhY3Jvc3MgQW1hem9uIFdlYiBTZXJ2aWNlcyBhY2NvdW50cy5cbiAqICAgICAgICAgICAgICAgICAgICAgKFRoaXMgaXMgbGVzcyBjb21tb24uKSA8L3A+XG4gKiAgICAgICAgICAgICA8L2xpPlxuICogICAgICAgICAgPC91bD5cbiAqL1xuUHJpbmNpcGFsOiBzdHJpbmdcbn1cbi8qKlxuICogPHA+VGhlIGtleSBvciBrZXlzIG9mIHRoZSBrZXktdmFsdWUgcGFpcnMgZm9yIHRoZSByZXNvdXJjZSB0YWcgb3IgdGFncyBhc3NpZ25lZCB0byB0aGVcbiAqICAgICAgICAgICAgIHJlc291cmNlLjwvcD5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUYWcge1xuLyoqXG4gKiA8cD5UYWcgdmFsdWUuPC9wPlxuICovXG5WYWx1ZTogc3RyaW5nXG4vKipcbiAqIDxwPlRhZyBrZXkuPC9wPlxuICovXG5LZXk6IHN0cmluZ1xufVxuZXhwb3J0IGludGVyZmFjZSBQaHlzaWNhbFRhYmxlTWFwIHtcbltrOiBzdHJpbmddOiBQaHlzaWNhbFRhYmxlXG59XG4vKipcbiAqIDxwPkEgdmlldyBvZiBhIGRhdGEgc291cmNlIHRoYXQgY29udGFpbnMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHNoYXBlIG9mIHRoZSBkYXRhIGluIHRoZVxuICogICAgICAgICAgICAgdW5kZXJseWluZyBzb3VyY2UuIFRoaXMgaXMgYSB2YXJpYW50IHR5cGUgc3RydWN0dXJlLiBGb3IgdGhpcyBzdHJ1Y3R1cmUgdG8gYmUgdmFsaWQsXG4gKiAgICAgICAgICAgICBvbmx5IG9uZSBvZiB0aGUgYXR0cmlidXRlcyBjYW4gYmUgbm9uLW51bGwuPC9wPlxuICogXG4gKiBUaGlzIGludGVyZmFjZSB3YXMgcmVmZXJlbmNlZCBieSBgUGh5c2ljYWxUYWJsZU1hcGAncyBKU09OLVNjaGVtYSBkZWZpbml0aW9uXG4gKiB2aWEgdGhlIGBwYXR0ZXJuUHJvcGVydHlgIFwiXlswLTlhLXpBLVotXSokXCIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGh5c2ljYWxUYWJsZSB7XG5TYWFTVGFibGU/OiBTYWFTVGFibGVcblJlbGF0aW9uYWxUYWJsZT86IFJlbGF0aW9uYWxUYWJsZVxuQ3VzdG9tU3FsPzogQ3VzdG9tU3FsXG5TM1NvdXJjZT86IFMzU291cmNlXG59XG5leHBvcnQgaW50ZXJmYWNlIFNhYVNUYWJsZSB7XG5EYXRhU291cmNlQXJuOiBzdHJpbmdcbi8qKlxuICogQG1pbkl0ZW1zIDBcbiAqIEBtYXhJdGVtcyAyMDQ4XG4gKi9cbklucHV0Q29sdW1uczogSW5wdXRDb2x1bW5bXVxuLyoqXG4gKiBAbWluSXRlbXMgMVxuICogQG1heEl0ZW1zIDMyXG4gKi9cblRhYmxlUGF0aDogVGFibGVQYXRoRWxlbWVudFtdXG59XG4vKipcbiAqIDxwPk1ldGFkYXRhIGZvciBhIGNvbHVtbiB0aGF0IGlzIHVzZWQgYXMgdGhlIGlucHV0IG9mIGEgdHJhbnNmb3JtIG9wZXJhdGlvbi48L3A+XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW5wdXRDb2x1bW4ge1xuVHlwZTogSW5wdXRDb2x1bW5EYXRhVHlwZVxuU3ViVHlwZT86IENvbHVtbkRhdGFTdWJUeXBlXG5JZD86IHN0cmluZ1xuLyoqXG4gKiA8cD5UaGUgbmFtZSBvZiB0aGlzIGNvbHVtbiBpbiB0aGUgdW5kZXJseWluZyBkYXRhIHNvdXJjZS48L3A+XG4gKi9cbk5hbWU6IHN0cmluZ1xufVxuZXhwb3J0IGludGVyZmFjZSBUYWJsZVBhdGhFbGVtZW50IHtcbklkPzogc3RyaW5nXG5OYW1lPzogc3RyaW5nXG59XG4vKipcbiAqIDxwPkEgcGh5c2ljYWwgdGFibGUgdHlwZSBmb3IgcmVsYXRpb25hbCBkYXRhIHNvdXJjZXMuPC9wPlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlbGF0aW9uYWxUYWJsZSB7XG4vKipcbiAqIDxwPlRoZSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKSBmb3IgdGhlIGRhdGEgc291cmNlLjwvcD5cbiAqL1xuRGF0YVNvdXJjZUFybjogc3RyaW5nXG4vKipcbiAqIDxwPlRoZSBjb2x1bW4gc2NoZW1hIG9mIHRoZSB0YWJsZS48L3A+XG4gKiBcbiAqIEBtaW5JdGVtcyAwXG4gKiBAbWF4SXRlbXMgMjA0OFxuICovXG5JbnB1dENvbHVtbnM6IElucHV0Q29sdW1uW11cbi8qKlxuICogPHA+VGhlIHNjaGVtYSBuYW1lLiBUaGlzIG5hbWUgYXBwbGllcyB0byBjZXJ0YWluIHJlbGF0aW9uYWwgZGF0YWJhc2UgZW5naW5lcy48L3A+XG4gKi9cblNjaGVtYT86IHN0cmluZ1xuLyoqXG4gKiA8cD5UaGUgY2F0YWxvZyBhc3NvY2lhdGVkIHdpdGggYSB0YWJsZS48L3A+XG4gKi9cbkNhdGFsb2c/OiBzdHJpbmdcbi8qKlxuICogPHA+VGhlIG5hbWUgb2YgdGhlIHJlbGF0aW9uYWwgdGFibGUuPC9wPlxuICovXG5OYW1lOiBzdHJpbmdcbn1cbi8qKlxuICogPHA+QSBwaHlzaWNhbCB0YWJsZSB0eXBlIGJ1aWx0IGZyb20gdGhlIHJlc3VsdHMgb2YgdGhlIGN1c3RvbSBTUUwgcXVlcnkuPC9wPlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEN1c3RvbVNxbCB7XG4vKipcbiAqIDxwPlRoZSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKSBvZiB0aGUgZGF0YSBzb3VyY2UuPC9wPlxuICovXG5EYXRhU291cmNlQXJuOiBzdHJpbmdcbi8qKlxuICogPHA+VGhlIFNRTCBxdWVyeS48L3A+XG4gKi9cblNxbFF1ZXJ5OiBzdHJpbmdcbi8qKlxuICogPHA+VGhlIGNvbHVtbiBzY2hlbWEgZnJvbSB0aGUgU1FMIHF1ZXJ5IHJlc3VsdCBzZXQuPC9wPlxuICogXG4gKiBAbWluSXRlbXMgMFxuICogQG1heEl0ZW1zIDIwNDhcbiAqL1xuQ29sdW1uczogSW5wdXRDb2x1bW5bXVxuLyoqXG4gKiA8cD5BIGRpc3BsYXkgbmFtZSBmb3IgdGhlIFNRTCBxdWVyeSByZXN1bHQuPC9wPlxuICovXG5OYW1lOiBzdHJpbmdcbn1cbi8qKlxuICogPHA+QSBwaHlzaWNhbCB0YWJsZSB0eXBlIGZvciBhbiBTMyBkYXRhIHNvdXJjZS48L3A+XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUzNTb3VyY2Uge1xuLyoqXG4gKiA8cD5UaGUgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTikgZm9yIHRoZSBkYXRhIHNvdXJjZS48L3A+XG4gKi9cbkRhdGFTb3VyY2VBcm46IHN0cmluZ1xuLyoqXG4gKiA8cD5BIHBoeXNpY2FsIHRhYmxlIHR5cGUgZm9yIGFuIFMzIGRhdGEgc291cmNlLjwvcD5cbiAqICAgICAgICAgIDxub3RlPlxuICogICAgICAgICAgICAgPHA+Rm9yIGZpbGVzIHRoYXQgYXJlbid0IEpTT04sIG9ubHkgPGNvZGU+U1RSSU5HPC9jb2RlPiBkYXRhIHR5cGVzIGFyZSBzdXBwb3J0ZWQgaW4gaW5wdXQgY29sdW1ucy48L3A+XG4gKiAgICAgICAgICA8L25vdGU+XG4gKiBcbiAqIEBtaW5JdGVtcyAwXG4gKiBAbWF4SXRlbXMgMjA0OFxuICovXG5JbnB1dENvbHVtbnM6IElucHV0Q29sdW1uW11cblVwbG9hZFNldHRpbmdzPzogVXBsb2FkU2V0dGluZ3Ncbn1cbi8qKlxuICogPHA+SW5mb3JtYXRpb24gYWJvdXQgdGhlIGZvcm1hdCBmb3IgYSBzb3VyY2UgZmlsZSBvciBmaWxlcy48L3A+XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVXBsb2FkU2V0dGluZ3Mge1xuLyoqXG4gKiA8cD5XaGV0aGVyIHRoZSBmaWxlIGhhcyBhIGhlYWRlciByb3csIG9yIHRoZSBmaWxlcyBlYWNoIGhhdmUgYSBoZWFkZXIgcm93LjwvcD5cbiAqL1xuQ29udGFpbnNIZWFkZXI/OiBib29sZWFuXG5UZXh0UXVhbGlmaWVyPzogVGV4dFF1YWxpZmllclxuRm9ybWF0PzogRmlsZUZvcm1hdFxuLyoqXG4gKiA8cD5BIHJvdyBudW1iZXIgdG8gc3RhcnQgcmVhZGluZyBkYXRhIGZyb20uPC9wPlxuICovXG5TdGFydEZyb21Sb3c/OiBudW1iZXJcbi8qKlxuICogPHA+VGhlIGRlbGltaXRlciBiZXR3ZWVuIHZhbHVlcyBpbiB0aGUgZmlsZS48L3A+XG4gKi9cbkRlbGltaXRlcj86IHN0cmluZ1xufVxuZXhwb3J0IGludGVyZmFjZSBGaWVsZEZvbGRlck1hcCB7XG5bazogc3RyaW5nXTogRmllbGRGb2xkZXJcbn1cbi8qKlxuICogPHA+QSBGaWVsZEZvbGRlciBlbGVtZW50IGlzIGEgZm9sZGVyIHRoYXQgY29udGFpbnMgZmllbGRzIGFuZCBuZXN0ZWQgc3ViZm9sZGVycy48L3A+XG4gKiBcbiAqIFRoaXMgaW50ZXJmYWNlIHdhcyByZWZlcmVuY2VkIGJ5IGBGaWVsZEZvbGRlck1hcGAncyBKU09OLVNjaGVtYSBkZWZpbml0aW9uXG4gKiB2aWEgdGhlIGBwYXR0ZXJuUHJvcGVydHlgIFwiLitcIi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGaWVsZEZvbGRlciB7XG4vKipcbiAqIDxwPlRoZSBkZXNjcmlwdGlvbiBmb3IgYSBmaWVsZCBmb2xkZXIuPC9wPlxuICovXG5EZXNjcmlwdGlvbj86IHN0cmluZ1xuLyoqXG4gKiA8cD5BIGZvbGRlciBoYXMgYSBsaXN0IG9mIGNvbHVtbnMuIEEgY29sdW1uIGNhbiBvbmx5IGJlIGluIG9uZSBmb2xkZXIuPC9wPlxuICogXG4gKiBAbWluSXRlbXMgMFxuICogQG1heEl0ZW1zIDUwMDBcbiAqL1xuQ29sdW1ucz86IHN0cmluZ1tdXG59XG5leHBvcnQgaW50ZXJmYWNlIFNlbWFudGljTW9kZWxDb25maWd1cmF0aW9uIHtcblRhYmxlTWFwPzogU2VtYW50aWNUYWJsZU1hcFxufVxuZXhwb3J0IGludGVyZmFjZSBTZW1hbnRpY1RhYmxlTWFwIHtcbltrOiBzdHJpbmddOiBTZW1hbnRpY1RhYmxlXG59XG4vKipcbiAqIFRoaXMgaW50ZXJmYWNlIHdhcyByZWZlcmVuY2VkIGJ5IGBTZW1hbnRpY1RhYmxlTWFwYCdzIEpTT04tU2NoZW1hIGRlZmluaXRpb25cbiAqIHZpYSB0aGUgYHBhdHRlcm5Qcm9wZXJ0eWAgXCJeWzAtOWEtekEtWi1dKiRcIi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZW1hbnRpY1RhYmxlIHtcbkFsaWFzOiBzdHJpbmdcbkRlc3RpbmF0aW9uVGFibGVJZDogc3RyaW5nXG5Sb3dMZXZlbFBlcm1pc3Npb25Db25maWd1cmF0aW9uPzogUm93TGV2ZWxQZXJtaXNzaW9uQ29uZmlndXJhdGlvblxufVxuZXhwb3J0IGludGVyZmFjZSBSb3dMZXZlbFBlcm1pc3Npb25Db25maWd1cmF0aW9uIHtcblRhZ0NvbmZpZ3VyYXRpb24/OiBSb3dMZXZlbFBlcm1pc3Npb25UYWdDb25maWd1cmF0aW9uXG5Sb3dMZXZlbFBlcm1pc3Npb25EYXRhU2V0PzogUm93TGV2ZWxQZXJtaXNzaW9uRGF0YVNldFxufVxuLyoqXG4gKiA8cD5UaGUgY29uZmlndXJhdGlvbiBvZiB0YWdzIG9uIGEgZGF0YXNldCB0byBzZXQgcm93LWxldmVsIHNlY3VyaXR5LiA8L3A+XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUm93TGV2ZWxQZXJtaXNzaW9uVGFnQ29uZmlndXJhdGlvbiB7XG5TdGF0dXM/OiBTdGF0dXNcbi8qKlxuICogPHA+QSBzZXQgb2YgcnVsZXMgYXNzb2NpYXRlZCB3aXRoIHJvdy1sZXZlbCBzZWN1cml0eSwgc3VjaCBhcyB0aGUgdGFnIG5hbWVzIGFuZCBjb2x1bW5zIHRoYXQgdGhleSBhcmUgYXNzaWduZWQgdG8uPC9wPlxuICogXG4gKiBAbWluSXRlbXMgMVxuICogQG1heEl0ZW1zIDUwXG4gKi9cblRhZ1J1bGVzOiBSb3dMZXZlbFBlcm1pc3Npb25UYWdSdWxlW11cbi8qKlxuICogPHA+QSBsaXN0IG9mIHRhZyBjb25maWd1cmF0aW9uIHJ1bGVzIHRvIGFwcGx5IHRvIGEgZGF0YXNldC4gQWxsIHRhZyBjb25maWd1cmF0aW9ucyBoYXZlIHRoZSBPUiBjb25kaXRpb24uIFRhZ3Mgd2l0aGluIGVhY2ggdGlsZSB3aWxsIGJlIGpvaW5lZCAoQU5EKS4gQXQgbGVhc3Qgb25lIHJ1bGUgaW4gdGhpcyBzdHJ1Y3R1cmUgbXVzdCBoYXZlIGFsbCB0YWcgdmFsdWVzIGFzc2lnbmVkIHRvIGl0IHRvIGFwcGx5IFJvdy1sZXZlbCBzZWN1cml0eSAoUkxTKSB0byB0aGUgZGF0YXNldC48L3A+XG4gKiBcbiAqIEBtaW5JdGVtcyAxXG4gKiBAbWF4SXRlbXMgNTBcbiAqL1xuVGFnUnVsZUNvbmZpZ3VyYXRpb25zPzogc3RyaW5nW11bXVxufVxuLyoqXG4gKiA8cD5BIHNldCBvZiBydWxlcyBhc3NvY2lhdGVkIHdpdGggYSB0YWcuPC9wPlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJvd0xldmVsUGVybWlzc2lvblRhZ1J1bGUge1xuLyoqXG4gKiA8cD5UaGUgY29sdW1uIG5hbWUgdGhhdCBhIHRhZyBrZXkgaXMgYXNzaWduZWQgdG8uPC9wPlxuICovXG5Db2x1bW5OYW1lOiBzdHJpbmdcbi8qKlxuICogPHA+VGhlIHVuaXF1ZSBrZXkgZm9yIGEgdGFnLjwvcD5cbiAqL1xuVGFnS2V5OiBzdHJpbmdcbi8qKlxuICogPHA+QSBzdHJpbmcgdGhhdCB5b3Ugd2FudCB0byB1c2UgdG8gZmlsdGVyIGJ5IGFsbCB0aGUgdmFsdWVzIGluIGEgY29sdW1uIGluIHRoZSBkYXRhc2V0IGFuZCBkb27igJl0IHdhbnQgdG8gbGlzdCB0aGUgdmFsdWVzIG9uZSBieSBvbmUuIEZvciBleGFtcGxlLCB5b3UgY2FuIHVzZSBhbiBhc3RlcmlzayBhcyB5b3VyIG1hdGNoIGFsbCB2YWx1ZS48L3A+XG4gKi9cbk1hdGNoQWxsVmFsdWU/OiBzdHJpbmdcbi8qKlxuICogPHA+QSBzdHJpbmcgdGhhdCB5b3Ugd2FudCB0byB1c2UgdG8gZGVsaW1pdCB0aGUgdmFsdWVzIHdoZW4geW91IHBhc3MgdGhlIHZhbHVlcyBhdCBydW4gdGltZS4gRm9yIGV4YW1wbGUsIHlvdSBjYW4gZGVsaW1pdCB0aGUgdmFsdWVzIHdpdGggYSBjb21tYS48L3A+XG4gKi9cblRhZ011bHRpVmFsdWVEZWxpbWl0ZXI/OiBzdHJpbmdcbn1cbmV4cG9ydCBpbnRlcmZhY2UgUGVyZm9ybWFuY2VDb25maWd1cmF0aW9uIHtcbi8qKlxuICogQG1pbkl0ZW1zIDFcbiAqIEBtYXhJdGVtcyAxXG4gKi9cblVuaXF1ZUtleXM/OiBVbmlxdWVLZXlbXVxufVxuZXhwb3J0IGludGVyZmFjZSBVbmlxdWVLZXkge1xuLyoqXG4gKiBAbWluSXRlbXMgMVxuICogQG1heEl0ZW1zIDFcbiAqL1xuQ29sdW1uTmFtZXM6IHN0cmluZ1tdXG59XG4vKipcbiAqIDxwPlRoZSByZWZyZXNoIHByb3BlcnRpZXMgb2YgYSBkYXRhc2V0LjwvcD5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEYXRhU2V0UmVmcmVzaFByb3BlcnRpZXMge1xuUmVmcmVzaENvbmZpZ3VyYXRpb24/OiBSZWZyZXNoQ29uZmlndXJhdGlvblxuRmFpbHVyZUNvbmZpZ3VyYXRpb24/OiBSZWZyZXNoRmFpbHVyZUNvbmZpZ3VyYXRpb25cbn1cbi8qKlxuICogPHA+VGhlIHJlZnJlc2ggY29uZmlndXJhdGlvbiBvZiBhIGRhdGFzZXQuPC9wPlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlZnJlc2hDb25maWd1cmF0aW9uIHtcbkluY3JlbWVudGFsUmVmcmVzaDogSW5jcmVtZW50YWxSZWZyZXNoXG59XG4vKipcbiAqIDxwPlRoZSBpbmNyZW1lbnRhbCByZWZyZXNoIGNvbmZpZ3VyYXRpb24gZm9yIGEgZGF0YXNldC48L3A+XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW5jcmVtZW50YWxSZWZyZXNoIHtcbkxvb2tiYWNrV2luZG93OiBMb29rYmFja1dpbmRvd1xufVxuLyoqXG4gKiA8cD5UaGUgbG9va2JhY2sgd2luZG93IHNldHVwIG9mIGFuIGluY3JlbWVudGFsIHJlZnJlc2ggY29uZmlndXJhdGlvbi48L3A+XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTG9va2JhY2tXaW5kb3cge1xuLyoqXG4gKiA8cD5UaGUgbmFtZSBvZiB0aGUgbG9va2JhY2sgd2luZG93IGNvbHVtbi48L3A+XG4gKi9cbkNvbHVtbk5hbWU6IHN0cmluZ1xuU2l6ZVVuaXQ6IExvb2tiYWNrV2luZG93U2l6ZVVuaXRcbi8qKlxuICogPHA+VGhlIGxvb2tiYWNrIHdpbmRvdyBjb2x1bW4gc2l6ZS48L3A+XG4gKi9cblNpemU6IG51bWJlclxufVxuZXhwb3J0IGludGVyZmFjZSBSZWZyZXNoRmFpbHVyZUNvbmZpZ3VyYXRpb24ge1xuRW1haWxBbGVydD86IFJlZnJlc2hGYWlsdXJlRW1haWxBbGVydFxufVxuZXhwb3J0IGludGVyZmFjZSBSZWZyZXNoRmFpbHVyZUVtYWlsQWxlcnQge1xuQWxlcnRTdGF0dXM/OiBSZWZyZXNoRmFpbHVyZUFsZXJ0U3RhdHVzXG59XG4vKipcbiAqIDxwPkdyb3VwaW5ncyBvZiBjb2x1bW5zIHRoYXQgd29yayB0b2dldGhlciBpbiBjZXJ0YWluIEFtYXpvbiBRdWljayBTdWl0ZSBmZWF0dXJlcy4gVGhpcyBpc1xuICogICAgICAgICAgICAgYSB2YXJpYW50IHR5cGUgc3RydWN0dXJlLiBGb3IgdGhpcyBzdHJ1Y3R1cmUgdG8gYmUgdmFsaWQsIG9ubHkgb25lIG9mIHRoZSBhdHRyaWJ1dGVzIGNhblxuICogICAgICAgICAgICAgYmUgbm9uLW51bGwuPC9wPlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbHVtbkdyb3VwIHtcbkdlb1NwYXRpYWxDb2x1bW5Hcm91cD86IEdlb1NwYXRpYWxDb2x1bW5Hcm91cFxufVxuLyoqXG4gKiA8cD5HZW9zcGF0aWFsIGNvbHVtbiBncm91cCB0aGF0IGRlbm90ZXMgYSBoaWVyYXJjaHkuPC9wPlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdlb1NwYXRpYWxDb2x1bW5Hcm91cCB7XG4vKipcbiAqIDxwPkNvbHVtbnMgaW4gdGhpcyBoaWVyYXJjaHkuPC9wPlxuICogXG4gKiBAbWluSXRlbXMgMVxuICogQG1heEl0ZW1zIDE2XG4gKi9cbkNvbHVtbnM6IHN0cmluZ1tdXG5Db3VudHJ5Q29kZT86IEdlb1NwYXRpYWxDb3VudHJ5Q29kZVxuLyoqXG4gKiA8cD5BIGRpc3BsYXkgbmFtZSBmb3IgdGhlIGhpZXJhcmNoeS48L3A+XG4gKi9cbk5hbWU6IHN0cmluZ1xufVxuLyoqXG4gKiA8cD5BIGRhdGFzZXQgcGFyYW1ldGVyLjwvcD5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEYXRhc2V0UGFyYW1ldGVyIHtcbkludGVnZXJEYXRhc2V0UGFyYW1ldGVyPzogSW50ZWdlckRhdGFzZXRQYXJhbWV0ZXJcbkRhdGVUaW1lRGF0YXNldFBhcmFtZXRlcj86IERhdGVUaW1lRGF0YXNldFBhcmFtZXRlclxuRGVjaW1hbERhdGFzZXRQYXJhbWV0ZXI/OiBEZWNpbWFsRGF0YXNldFBhcmFtZXRlclxuU3RyaW5nRGF0YXNldFBhcmFtZXRlcj86IFN0cmluZ0RhdGFzZXRQYXJhbWV0ZXJcbn1cbi8qKlxuICogPHA+QW4gaW50ZWdlciBwYXJhbWV0ZXIgZm9yIGEgZGF0YXNldC48L3A+XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW50ZWdlckRhdGFzZXRQYXJhbWV0ZXIge1xuVmFsdWVUeXBlOiBEYXRhc2V0UGFyYW1ldGVyVmFsdWVUeXBlXG5EZWZhdWx0VmFsdWVzPzogSW50ZWdlckRhdGFzZXRQYXJhbWV0ZXJEZWZhdWx0VmFsdWVzXG4vKipcbiAqIDxwPkFuIGlkZW50aWZpZXIgZm9yIHRoZSBpbnRlZ2VyIHBhcmFtZXRlciBjcmVhdGVkIGluIHRoZSBkYXRhc2V0LjwvcD5cbiAqL1xuSWQ6IHN0cmluZ1xuLyoqXG4gKiA8cD5UaGUgbmFtZSBvZiB0aGUgaW50ZWdlciBwYXJhbWV0ZXIgdGhhdCBpcyBjcmVhdGVkIGluIHRoZSBkYXRhc2V0LjwvcD5cbiAqL1xuTmFtZTogc3RyaW5nXG59XG4vKipcbiAqIDxwPlRoZSBkZWZhdWx0IHZhbHVlcyBvZiBhbiBpbnRlZ2VyIHBhcmFtZXRlci48L3A+XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW50ZWdlckRhdGFzZXRQYXJhbWV0ZXJEZWZhdWx0VmFsdWVzIHtcbi8qKlxuICogPHA+QSBsaXN0IG9mIHN0YXRpYyBkZWZhdWx0IHZhbHVlcyBmb3IgYSBnaXZlbiBpbnRlZ2VyIHBhcmFtZXRlci48L3A+XG4gKiBcbiAqIEBtaW5JdGVtcyAwXG4gKiBAbWF4SXRlbXMgMzJcbiAqL1xuU3RhdGljVmFsdWVzPzogbnVtYmVyW11cbn1cbi8qKlxuICogPHA+QSBkYXRlIHRpbWUgcGFyYW1ldGVyIGZvciBhIGRhdGFzZXQuPC9wPlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERhdGVUaW1lRGF0YXNldFBhcmFtZXRlciB7XG5WYWx1ZVR5cGU6IERhdGFzZXRQYXJhbWV0ZXJWYWx1ZVR5cGVcblRpbWVHcmFudWxhcml0eT86IFRpbWVHcmFudWxhcml0eVxuRGVmYXVsdFZhbHVlcz86IERhdGVUaW1lRGF0YXNldFBhcmFtZXRlckRlZmF1bHRWYWx1ZXNcbi8qKlxuICogPHA+QW4gaWRlbnRpZmllciBmb3IgdGhlIHBhcmFtZXRlciB0aGF0IGlzIGNyZWF0ZWQgaW4gdGhlIGRhdGFzZXQuPC9wPlxuICovXG5JZDogc3RyaW5nXG4vKipcbiAqIDxwPlRoZSBuYW1lIG9mIHRoZSBkYXRlIHRpbWUgcGFyYW1ldGVyIHRoYXQgaXMgY3JlYXRlZCBpbiB0aGUgZGF0YXNldC48L3A+XG4gKi9cbk5hbWU6IHN0cmluZ1xufVxuLyoqXG4gKiA8cD5UaGUgZGVmYXVsdCB2YWx1ZXMgb2YgYSBkYXRlIHRpbWUgcGFyYW1ldGVyLjwvcD5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEYXRlVGltZURhdGFzZXRQYXJhbWV0ZXJEZWZhdWx0VmFsdWVzIHtcbi8qKlxuICogPHA+QSBsaXN0IG9mIHN0YXRpYyBkZWZhdWx0IHZhbHVlcyBmb3IgYSBnaXZlbiBkYXRlIHRpbWUgcGFyYW1ldGVyLjwvcD5cbiAqIFxuICogQG1pbkl0ZW1zIDBcbiAqIEBtYXhJdGVtcyAzMlxuICovXG5TdGF0aWNWYWx1ZXM/OiBzdHJpbmdbXVxufVxuLyoqXG4gKiA8cD5BIGRlY2ltYWwgcGFyYW1ldGVyIGZvciBhIGRhdGFzZXQuPC9wPlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERlY2ltYWxEYXRhc2V0UGFyYW1ldGVyIHtcblZhbHVlVHlwZTogRGF0YXNldFBhcmFtZXRlclZhbHVlVHlwZVxuRGVmYXVsdFZhbHVlcz86IERlY2ltYWxEYXRhc2V0UGFyYW1ldGVyRGVmYXVsdFZhbHVlc1xuLyoqXG4gKiA8cD5BbiBpZGVudGlmaWVyIGZvciB0aGUgZGVjaW1hbCBwYXJhbWV0ZXIgY3JlYXRlZCBpbiB0aGUgZGF0YXNldC48L3A+XG4gKi9cbklkOiBzdHJpbmdcbi8qKlxuICogPHA+VGhlIG5hbWUgb2YgdGhlIGRlY2ltYWwgcGFyYW1ldGVyIHRoYXQgaXMgY3JlYXRlZCBpbiB0aGUgZGF0YXNldC48L3A+XG4gKi9cbk5hbWU6IHN0cmluZ1xufVxuLyoqXG4gKiA8cD5UaGUgZGVmYXVsdCB2YWx1ZXMgb2YgYSBkZWNpbWFsIHBhcmFtZXRlci48L3A+XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGVjaW1hbERhdGFzZXRQYXJhbWV0ZXJEZWZhdWx0VmFsdWVzIHtcbi8qKlxuICogPHA+QSBsaXN0IG9mIHN0YXRpYyBkZWZhdWx0IHZhbHVlcyBmb3IgYSBnaXZlbiBkZWNpbWFsIHBhcmFtZXRlci48L3A+XG4gKiBcbiAqIEBtaW5JdGVtcyAwXG4gKiBAbWF4SXRlbXMgMzJcbiAqL1xuU3RhdGljVmFsdWVzPzogbnVtYmVyW11cbn1cbi8qKlxuICogPHA+QSBzdHJpbmcgcGFyYW1ldGVyIGZvciBhIGRhdGFzZXQuPC9wPlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0cmluZ0RhdGFzZXRQYXJhbWV0ZXIge1xuVmFsdWVUeXBlOiBEYXRhc2V0UGFyYW1ldGVyVmFsdWVUeXBlXG5EZWZhdWx0VmFsdWVzPzogU3RyaW5nRGF0YXNldFBhcmFtZXRlckRlZmF1bHRWYWx1ZXNcbi8qKlxuICogPHA+QW4gaWRlbnRpZmllciBmb3IgdGhlIHN0cmluZyBwYXJhbWV0ZXIgdGhhdCBpcyBjcmVhdGVkIGluIHRoZSBkYXRhc2V0LjwvcD5cbiAqL1xuSWQ6IHN0cmluZ1xuLyoqXG4gKiA8cD5UaGUgbmFtZSBvZiB0aGUgc3RyaW5nIHBhcmFtZXRlciB0aGF0IGlzIGNyZWF0ZWQgaW4gdGhlIGRhdGFzZXQuPC9wPlxuICovXG5OYW1lOiBzdHJpbmdcbn1cbi8qKlxuICogPHA+VGhlIGRlZmF1bHQgdmFsdWVzIG9mIGEgc3RyaW5nIHBhcmFtZXRlci48L3A+XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RyaW5nRGF0YXNldFBhcmFtZXRlckRlZmF1bHRWYWx1ZXMge1xuLyoqXG4gKiA8cD5BIGxpc3Qgb2Ygc3RhdGljIGRlZmF1bHQgdmFsdWVzIGZvciBhIGdpdmVuIHN0cmluZyBwYXJhbWV0ZXIuPC9wPlxuICogXG4gKiBAbWluSXRlbXMgMFxuICogQG1heEl0ZW1zIDMyXG4gKi9cblN0YXRpY1ZhbHVlcz86IHN0cmluZ1tdXG59XG5leHBvcnQgaW50ZXJmYWNlIExvZ2ljYWxUYWJsZU1hcCB7XG5bazogc3RyaW5nXTogTG9naWNhbFRhYmxlXG59XG4vKipcbiAqIDxwPkEgPGk+bG9naWNhbCB0YWJsZTwvaT4gaXMgYSB1bml0IHRoYXQgam9pbnMgYW5kIHRoYXQgZGF0YVxuICogICAgICAgICAgICAgdHJhbnNmb3JtYXRpb25zIG9wZXJhdGUgb24uIEEgbG9naWNhbCB0YWJsZSBoYXMgYSBzb3VyY2UsIHdoaWNoIGNhbiBiZSBlaXRoZXIgYSBwaHlzaWNhbFxuICogICAgICAgICAgICAgdGFibGUgb3IgcmVzdWx0IG9mIGEgam9pbi4gV2hlbiBhIGxvZ2ljYWwgdGFibGUgcG9pbnRzIHRvIGEgcGh5c2ljYWwgdGFibGUsIHRoZSBsb2dpY2FsXG4gKiAgICAgICAgICAgICB0YWJsZSBhY3RzIGFzIGEgbXV0YWJsZSBjb3B5IG9mIHRoYXQgcGh5c2ljYWwgdGFibGUgdGhyb3VnaCB0cmFuc2Zvcm0gb3BlcmF0aW9ucy48L3A+XG4gKiBcbiAqIFRoaXMgaW50ZXJmYWNlIHdhcyByZWZlcmVuY2VkIGJ5IGBMb2dpY2FsVGFibGVNYXBgJ3MgSlNPTi1TY2hlbWEgZGVmaW5pdGlvblxuICogdmlhIHRoZSBgcGF0dGVyblByb3BlcnR5YCBcIl5bMC05YS16QS1aLV0qJFwiLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIExvZ2ljYWxUYWJsZSB7XG4vKipcbiAqIDxwPkEgZGlzcGxheSBuYW1lIGZvciB0aGUgbG9naWNhbCB0YWJsZS48L3A+XG4gKi9cbkFsaWFzOiBzdHJpbmdcbi8qKlxuICogPHA+VHJhbnNmb3JtIG9wZXJhdGlvbnMgdGhhdCBhY3Qgb24gdGhpcyBsb2dpY2FsIHRhYmxlLiBGb3IgdGhpcyBzdHJ1Y3R1cmUgdG8gYmUgdmFsaWQsIG9ubHkgb25lIG9mIHRoZSBhdHRyaWJ1dGVzIGNhbiBiZSBub24tbnVsbC4gPC9wPlxuICogXG4gKiBAbWluSXRlbXMgMVxuICogQG1heEl0ZW1zIDIwNDhcbiAqL1xuRGF0YVRyYW5zZm9ybXM/OiBUcmFuc2Zvcm1PcGVyYXRpb25bXVxuU291cmNlOiBMb2dpY2FsVGFibGVTb3VyY2Vcbn1cbi8qKlxuICogPHA+QSBkYXRhIHRyYW5zZm9ybWF0aW9uIG9uIGEgbG9naWNhbCB0YWJsZS4gVGhpcyBpcyBhIHZhcmlhbnQgdHlwZSBzdHJ1Y3R1cmUuIEZvciB0aGlzXG4gKiAgICAgICAgICAgICBzdHJ1Y3R1cmUgdG8gYmUgdmFsaWQsIG9ubHkgb25lIG9mIHRoZSBhdHRyaWJ1dGVzIGNhbiBiZSBub24tbnVsbC48L3A+XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVHJhbnNmb3JtT3BlcmF0aW9uIHtcblRhZ0NvbHVtbk9wZXJhdGlvbj86IFRhZ0NvbHVtbk9wZXJhdGlvblxuVW50YWdDb2x1bW5PcGVyYXRpb24/OiBVbnRhZ0NvbHVtbk9wZXJhdGlvblxuT3ZlcnJpZGVEYXRhc2V0UGFyYW1ldGVyT3BlcmF0aW9uPzogT3ZlcnJpZGVEYXRhc2V0UGFyYW1ldGVyT3BlcmF0aW9uXG5GaWx0ZXJPcGVyYXRpb24/OiBGaWx0ZXJPcGVyYXRpb25cbkNhc3RDb2x1bW5UeXBlT3BlcmF0aW9uPzogQ2FzdENvbHVtblR5cGVPcGVyYXRpb25cbkNyZWF0ZUNvbHVtbnNPcGVyYXRpb24/OiBDcmVhdGVDb2x1bW5zT3BlcmF0aW9uXG5SZW5hbWVDb2x1bW5PcGVyYXRpb24/OiBSZW5hbWVDb2x1bW5PcGVyYXRpb25cblByb2plY3RPcGVyYXRpb24/OiBQcm9qZWN0T3BlcmF0aW9uXG59XG4vKipcbiAqIDxwPkEgdHJhbnNmb3JtIG9wZXJhdGlvbiB0aGF0IHRhZ3MgYSBjb2x1bW4gd2l0aCBhZGRpdGlvbmFsIGluZm9ybWF0aW9uLjwvcD5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUYWdDb2x1bW5PcGVyYXRpb24ge1xuLyoqXG4gKiA8cD5UaGUgY29sdW1uIHRoYXQgdGhpcyBvcGVyYXRpb24gYWN0cyBvbi48L3A+XG4gKi9cbkNvbHVtbk5hbWU6IHN0cmluZ1xuLyoqXG4gKiA8cD5UaGUgZGF0YXNldCBjb2x1bW4gdGFnLCBjdXJyZW50bHkgb25seSB1c2VkIGZvciBnZW9zcGF0aWFsIHR5cGUgdGFnZ2luZy48L3A+XG4gKiAgICAgICAgICA8bm90ZT5cbiAqICAgICAgICAgICAgIDxwPlRoaXMgaXMgbm90IHRhZ3MgZm9yIHRoZSBBbWF6b24gV2ViIFNlcnZpY2VzIHRhZ2dpbmcgZmVhdHVyZS48L3A+XG4gKiAgICAgICAgICA8L25vdGU+XG4gKiBcbiAqIEBtaW5JdGVtcyAxXG4gKiBAbWF4SXRlbXMgMTZcbiAqL1xuVGFnczogQ29sdW1uVGFnW11cbn1cbi8qKlxuICogPHA+QSB0YWcgZm9yIGEgY29sdW1uIGluIGFcbiAqICAgICAgICAgICAgIDxjb2RlPlxuICogICAgICAgICAgICAgICAgPGEgaHJlZj1cImh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9xdWlja3NpZ2h0L2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX1RhZ0NvbHVtbk9wZXJhdGlvbi5odG1sXCI+VGFnQ29sdW1uT3BlcmF0aW9uPC9hPlxuICogICAgICAgICAgICAgPC9jb2RlPlxuICogICAgICAgICAgICAgc3RydWN0dXJlLiBUaGlzIGlzIGFcbiAqICAgICAgICAgICAgIHZhcmlhbnQgdHlwZSBzdHJ1Y3R1cmUuIEZvciB0aGlzIHN0cnVjdHVyZSB0byBiZSB2YWxpZCwgb25seSBvbmUgb2YgdGhlIGF0dHJpYnV0ZXMgY2FuXG4gKiAgICAgICAgICAgICBiZSBub24tbnVsbC48L3A+XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29sdW1uVGFnIHtcbkNvbHVtbkdlb2dyYXBoaWNSb2xlPzogR2VvU3BhdGlhbERhdGFSb2xlXG5Db2x1bW5EZXNjcmlwdGlvbj86IENvbHVtbkRlc2NyaXB0aW9uXG59XG4vKipcbiAqIDxwPk1ldGFkYXRhIHRoYXQgY29udGFpbnMgYSBkZXNjcmlwdGlvbiBmb3IgYSBjb2x1bW4uPC9wPlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbHVtbkRlc2NyaXB0aW9uIHtcbi8qKlxuICogPHA+VGhlIHRleHQgb2YgYSBkZXNjcmlwdGlvbiBmb3IgYSBjb2x1bW4uPC9wPlxuICovXG5UZXh0Pzogc3RyaW5nXG59XG4vKipcbiAqIDxwPkEgdHJhbnNmb3JtIG9wZXJhdGlvbiB0aGF0IHJlbW92ZXMgdGFncyBhc3NvY2lhdGVkIHdpdGggYSBjb2x1bW4uPC9wPlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFVudGFnQ29sdW1uT3BlcmF0aW9uIHtcbi8qKlxuICogPHA+VGhlIGNvbHVtbiB0aGF0IHRoaXMgb3BlcmF0aW9uIGFjdHMgb24uPC9wPlxuICovXG5Db2x1bW5OYW1lOiBzdHJpbmdcbi8qKlxuICogPHA+VGhlIGNvbHVtbiB0YWdzIHRvIHJlbW92ZSBmcm9tIHRoaXMgY29sdW1uLjwvcD5cbiAqL1xuVGFnTmFtZXM6IENvbHVtblRhZ05hbWVbXVxufVxuLyoqXG4gKiA8cD5BIHRyYW5zZm9ybSBvcGVyYXRpb24gdGhhdCBvdmVycmlkZXMgdGhlIGRhdGFzZXQgcGFyYW1ldGVyIHZhbHVlcyB0aGF0IGFyZSBkZWZpbmVkIGluIGFub3RoZXIgZGF0YXNldC48L3A+XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT3ZlcnJpZGVEYXRhc2V0UGFyYW1ldGVyT3BlcmF0aW9uIHtcbk5ld0RlZmF1bHRWYWx1ZXM/OiBOZXdEZWZhdWx0VmFsdWVzXG4vKipcbiAqIDxwPlRoZSBuYW1lIG9mIHRoZSBwYXJhbWV0ZXIgdG8gYmUgb3ZlcnJpZGRlbiB3aXRoIGRpZmZlcmVudCB2YWx1ZXMuPC9wPlxuICovXG5QYXJhbWV0ZXJOYW1lOiBzdHJpbmdcbi8qKlxuICogPHA+VGhlIG5ldyBuYW1lIGZvciB0aGUgcGFyYW1ldGVyLjwvcD5cbiAqL1xuTmV3UGFyYW1ldGVyTmFtZT86IHN0cmluZ1xufVxuLyoqXG4gKiA8cD5UaGUgY29uZmlndXJhdGlvbiB0aGF0IG92ZXJyaWRlcyB0aGUgZXhpc3RpbmcgZGVmYXVsdCB2YWx1ZXMgZm9yIGEgZGF0YXNldCBwYXJhbWV0ZXIgdGhhdCBpcyBpbmhlcml0ZWQgZnJvbSBhbm90aGVyIGRhdGFzZXQuPC9wPlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE5ld0RlZmF1bHRWYWx1ZXMge1xuLyoqXG4gKiA8cD5BIGxpc3Qgb2Ygc3RhdGljIGRlZmF1bHQgdmFsdWVzIGZvciBhIGdpdmVuIGRlY2ltYWwgcGFyYW1ldGVyLjwvcD5cbiAqIFxuICogQG1pbkl0ZW1zIDBcbiAqIEBtYXhJdGVtcyAzMlxuICovXG5EZWNpbWFsU3RhdGljVmFsdWVzPzogbnVtYmVyW11cbi8qKlxuICogPHA+QSBsaXN0IG9mIHN0YXRpYyBkZWZhdWx0IHZhbHVlcyBmb3IgYSBnaXZlbiBpbnRlZ2VyIHBhcmFtZXRlci48L3A+XG4gKiBcbiAqIEBtaW5JdGVtcyAwXG4gKiBAbWF4SXRlbXMgMzJcbiAqL1xuSW50ZWdlclN0YXRpY1ZhbHVlcz86IG51bWJlcltdXG4vKipcbiAqIDxwPkEgbGlzdCBvZiBzdGF0aWMgZGVmYXVsdCB2YWx1ZXMgZm9yIGEgZ2l2ZW4gc3RyaW5nIHBhcmFtZXRlci48L3A+XG4gKiBcbiAqIEBtaW5JdGVtcyAwXG4gKiBAbWF4SXRlbXMgMzJcbiAqL1xuU3RyaW5nU3RhdGljVmFsdWVzPzogc3RyaW5nW11cbi8qKlxuICogPHA+QSBsaXN0IG9mIHN0YXRpYyBkZWZhdWx0IHZhbHVlcyBmb3IgYSBnaXZlbiBkYXRlIHRpbWUgcGFyYW1ldGVyLjwvcD5cbiAqIFxuICogQG1pbkl0ZW1zIDBcbiAqIEBtYXhJdGVtcyAzMlxuICovXG5EYXRlVGltZVN0YXRpY1ZhbHVlcz86IHN0cmluZ1tdXG59XG4vKipcbiAqIDxwPkEgdHJhbnNmb3JtIG9wZXJhdGlvbiB0aGF0IGZpbHRlcnMgcm93cyBiYXNlZCBvbiBhIGNvbmRpdGlvbi48L3A+XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRmlsdGVyT3BlcmF0aW9uIHtcbkRhdGVGaWx0ZXJDb25kaXRpb24/OiBEYXRhU2V0RGF0ZUZpbHRlckNvbmRpdGlvblxuU3RyaW5nRmlsdGVyQ29uZGl0aW9uPzogRGF0YVNldFN0cmluZ0ZpbHRlckNvbmRpdGlvblxuLyoqXG4gKiA8cD5BbiBleHByZXNzaW9uIHRoYXQgbXVzdCBldmFsdWF0ZSB0byBhIEJvb2xlYW4gdmFsdWUuIFJvd3MgZm9yIHdoaWNoIHRoZSBleHByZXNzaW9uXG4gKiAgICAgICAgICAgICBldmFsdWF0ZXMgdG8gdHJ1ZSBhcmUga2VwdCBpbiB0aGUgZGF0YXNldC48L3A+XG4gKi9cbkNvbmRpdGlvbkV4cHJlc3Npb24/OiBzdHJpbmdcbk51bWVyaWNGaWx0ZXJDb25kaXRpb24/OiBEYXRhU2V0TnVtZXJpY0ZpbHRlckNvbmRpdGlvblxufVxuZXhwb3J0IGludGVyZmFjZSBEYXRhU2V0RGF0ZUZpbHRlckNvbmRpdGlvbiB7XG5Db2x1bW5OYW1lPzogc3RyaW5nXG5SYW5nZUZpbHRlckNvbmRpdGlvbj86IERhdGFTZXREYXRlUmFuZ2VGaWx0ZXJDb25kaXRpb25cbkNvbXBhcmlzb25GaWx0ZXJDb25kaXRpb24/OiBEYXRhU2V0RGF0ZUNvbXBhcmlzb25GaWx0ZXJDb25kaXRpb25cbn1cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YVNldERhdGVSYW5nZUZpbHRlckNvbmRpdGlvbiB7XG5JbmNsdWRlTWF4aW11bT86IGJvb2xlYW5cblJhbmdlTWluaW11bT86IERhdGFTZXREYXRlRmlsdGVyVmFsdWVcblJhbmdlTWF4aW11bT86IERhdGFTZXREYXRlRmlsdGVyVmFsdWVcbkluY2x1ZGVNaW5pbXVtPzogYm9vbGVhblxufVxuZXhwb3J0IGludGVyZmFjZSBEYXRhU2V0RGF0ZUZpbHRlclZhbHVlIHtcblN0YXRpY1ZhbHVlPzogc3RyaW5nXG59XG5leHBvcnQgaW50ZXJmYWNlIERhdGFTZXREYXRlQ29tcGFyaXNvbkZpbHRlckNvbmRpdGlvbiB7XG5PcGVyYXRvcjogRGF0YVNldERhdGVDb21wYXJpc29uRmlsdGVyT3BlcmF0b3JcblZhbHVlPzogRGF0YVNldERhdGVGaWx0ZXJWYWx1ZVxufVxuZXhwb3J0IGludGVyZmFjZSBEYXRhU2V0U3RyaW5nRmlsdGVyQ29uZGl0aW9uIHtcbkNvbHVtbk5hbWU/OiBzdHJpbmdcbkNvbXBhcmlzb25GaWx0ZXJDb25kaXRpb24/OiBEYXRhU2V0U3RyaW5nQ29tcGFyaXNvbkZpbHRlckNvbmRpdGlvblxuTGlzdEZpbHRlckNvbmRpdGlvbj86IERhdGFTZXRTdHJpbmdMaXN0RmlsdGVyQ29uZGl0aW9uXG59XG5leHBvcnQgaW50ZXJmYWNlIERhdGFTZXRTdHJpbmdDb21wYXJpc29uRmlsdGVyQ29uZGl0aW9uIHtcbk9wZXJhdG9yOiBEYXRhU2V0U3RyaW5nQ29tcGFyaXNvbkZpbHRlck9wZXJhdG9yXG5WYWx1ZT86IERhdGFTZXRTdHJpbmdGaWx0ZXJWYWx1ZVxufVxuZXhwb3J0IGludGVyZmFjZSBEYXRhU2V0U3RyaW5nRmlsdGVyVmFsdWUge1xuU3RhdGljVmFsdWU/OiBzdHJpbmdcbn1cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YVNldFN0cmluZ0xpc3RGaWx0ZXJDb25kaXRpb24ge1xuT3BlcmF0b3I6IERhdGFTZXRTdHJpbmdMaXN0RmlsdGVyT3BlcmF0b3JcblZhbHVlcz86IERhdGFTZXRTdHJpbmdMaXN0RmlsdGVyVmFsdWVcbn1cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YVNldFN0cmluZ0xpc3RGaWx0ZXJWYWx1ZSB7XG4vKipcbiAqIEBtaW5JdGVtcyAwXG4gKiBAbWF4SXRlbXMgMTAwMFxuICovXG5TdGF0aWNWYWx1ZXM/OiBzdHJpbmdbXVxufVxuZXhwb3J0IGludGVyZmFjZSBEYXRhU2V0TnVtZXJpY0ZpbHRlckNvbmRpdGlvbiB7XG5Db2x1bW5OYW1lPzogc3RyaW5nXG5SYW5nZUZpbHRlckNvbmRpdGlvbj86IERhdGFTZXROdW1lcmljUmFuZ2VGaWx0ZXJDb25kaXRpb25cbkNvbXBhcmlzb25GaWx0ZXJDb25kaXRpb24/OiBEYXRhU2V0TnVtZXJpY0NvbXBhcmlzb25GaWx0ZXJDb25kaXRpb25cbn1cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YVNldE51bWVyaWNSYW5nZUZpbHRlckNvbmRpdGlvbiB7XG5JbmNsdWRlTWF4aW11bT86IGJvb2xlYW5cblJhbmdlTWluaW11bT86IERhdGFTZXROdW1lcmljRmlsdGVyVmFsdWVcblJhbmdlTWF4aW11bT86IERhdGFTZXROdW1lcmljRmlsdGVyVmFsdWVcbkluY2x1ZGVNaW5pbXVtPzogYm9vbGVhblxufVxuZXhwb3J0IGludGVyZmFjZSBEYXRhU2V0TnVtZXJpY0ZpbHRlclZhbHVlIHtcblN0YXRpY1ZhbHVlPzogbnVtYmVyXG59XG5leHBvcnQgaW50ZXJmYWNlIERhdGFTZXROdW1lcmljQ29tcGFyaXNvbkZpbHRlckNvbmRpdGlvbiB7XG5PcGVyYXRvcjogRGF0YVNldE51bWVyaWNDb21wYXJpc29uRmlsdGVyT3BlcmF0b3JcblZhbHVlPzogRGF0YVNldE51bWVyaWNGaWx0ZXJWYWx1ZVxufVxuLyoqXG4gKiA8cD5BIHRyYW5zZm9ybSBvcGVyYXRpb24gdGhhdCBjYXN0cyBhIGNvbHVtbiB0byBhIGRpZmZlcmVudCB0eXBlLjwvcD5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDYXN0Q29sdW1uVHlwZU9wZXJhdGlvbiB7XG4vKipcbiAqIDxwPkNvbHVtbiBuYW1lLjwvcD5cbiAqL1xuQ29sdW1uTmFtZTogc3RyaW5nXG5TdWJUeXBlPzogQ29sdW1uRGF0YVN1YlR5cGVcbi8qKlxuICogPHA+V2hlbiBjYXN0aW5nIGEgY29sdW1uIGZyb20gc3RyaW5nIHRvIGRhdGV0aW1lIHR5cGUsIHlvdSBjYW4gc3VwcGx5IGEgc3RyaW5nIGluIGFcbiAqICAgICAgICAgICAgIGZvcm1hdCBzdXBwb3J0ZWQgYnkgQW1hem9uIFF1aWNrIFN1aXRlIHRvIGRlbm90ZSB0aGUgc291cmNlIGRhdGEgZm9ybWF0LjwvcD5cbiAqL1xuRm9ybWF0Pzogc3RyaW5nXG5OZXdDb2x1bW5UeXBlOiBDb2x1bW5EYXRhVHlwZVxufVxuLyoqXG4gKiA8cD5BIHRyYW5zZm9ybSBvcGVyYXRpb24gdGhhdCBjcmVhdGVzIGNhbGN1bGF0ZWQgY29sdW1ucy4gQ29sdW1ucyBjcmVhdGVkIGluIG9uZSBzdWNoXG4gKiAgICAgICAgICAgICBvcGVyYXRpb24gZm9ybSBhIGxleGljYWwgY2xvc3VyZS48L3A+XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlQ29sdW1uc09wZXJhdGlvbiB7XG5BbGlhcz86IHN0cmluZ1xuLyoqXG4gKiA8cD5DYWxjdWxhdGVkIGNvbHVtbnMgdG8gY3JlYXRlLjwvcD5cbiAqIFxuICogQG1pbkl0ZW1zIDBcbiAqIEBtYXhJdGVtcyAyNTZcbiAqL1xuQ29sdW1uczogQ2FsY3VsYXRlZENvbHVtbltdXG5Tb3VyY2U/OiBUcmFuc2Zvcm1PcGVyYXRpb25Tb3VyY2Vcbn1cbi8qKlxuICogPHA+QSBjYWxjdWxhdGVkIGNvbHVtbiBmb3IgYSBkYXRhc2V0LjwvcD5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDYWxjdWxhdGVkQ29sdW1uIHtcbi8qKlxuICogPHA+QSB1bmlxdWUgSUQgdG8gaWRlbnRpZnkgYSBjYWxjdWxhdGVkIGNvbHVtbi4gRHVyaW5nIGEgZGF0YXNldCB1cGRhdGUsIGlmIHRoZSBjb2x1bW4gSURcbiAqICAgICAgICAgICAgIG9mIGEgY2FsY3VsYXRlZCBjb2x1bW4gbWF0Y2hlcyB0aGF0IG9mIGFuIGV4aXN0aW5nIGNhbGN1bGF0ZWQgY29sdW1uLCBBbWF6b24gUXVpY2sgU3VpdGVcbiAqICAgICAgICAgICAgIHByZXNlcnZlcyB0aGUgZXhpc3RpbmcgY2FsY3VsYXRlZCBjb2x1bW4uPC9wPlxuICovXG5Db2x1bW5JZDogc3RyaW5nXG4vKipcbiAqIDxwPkNvbHVtbiBuYW1lLjwvcD5cbiAqL1xuQ29sdW1uTmFtZTogc3RyaW5nXG4vKipcbiAqIDxwPkFuIGV4cHJlc3Npb24gdGhhdCBkZWZpbmVzIHRoZSBjYWxjdWxhdGVkIGNvbHVtbi48L3A+XG4gKi9cbkV4cHJlc3Npb246IHN0cmluZ1xufVxuZXhwb3J0IGludGVyZmFjZSBUcmFuc2Zvcm1PcGVyYXRpb25Tb3VyY2Uge1xuVHJhbnNmb3JtT3BlcmF0aW9uSWQ6IHN0cmluZ1xuLyoqXG4gKiBAbWluSXRlbXMgMVxuICogQG1heEl0ZW1zIDIwNDhcbiAqL1xuQ29sdW1uSWRNYXBwaW5ncz86IERhdGFTZXRDb2x1bW5JZE1hcHBpbmdbXVxufVxuZXhwb3J0IGludGVyZmFjZSBEYXRhU2V0Q29sdW1uSWRNYXBwaW5nIHtcblNvdXJjZUNvbHVtbklkOiBzdHJpbmdcblRhcmdldENvbHVtbklkOiBzdHJpbmdcbn1cbi8qKlxuICogPHA+QSB0cmFuc2Zvcm0gb3BlcmF0aW9uIHRoYXQgcmVuYW1lcyBhIGNvbHVtbi48L3A+XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVuYW1lQ29sdW1uT3BlcmF0aW9uIHtcbi8qKlxuICogPHA+VGhlIG5ldyBuYW1lIGZvciB0aGUgY29sdW1uLjwvcD5cbiAqL1xuTmV3Q29sdW1uTmFtZTogc3RyaW5nXG4vKipcbiAqIDxwPlRoZSBuYW1lIG9mIHRoZSBjb2x1bW4gdG8gYmUgcmVuYW1lZC48L3A+XG4gKi9cbkNvbHVtbk5hbWU6IHN0cmluZ1xufVxuLyoqXG4gKiA8cD5BIHRyYW5zZm9ybSBvcGVyYXRpb24gdGhhdCBwcm9qZWN0cyBjb2x1bW5zLiBPcGVyYXRpb25zIHRoYXQgY29tZSBhZnRlciBhIHByb2plY3Rpb25cbiAqICAgICAgICAgICAgIGNhbiBvbmx5IHJlZmVyIHRvIHByb2plY3RlZCBjb2x1bW5zLjwvcD5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcm9qZWN0T3BlcmF0aW9uIHtcbkFsaWFzPzogc3RyaW5nXG4vKipcbiAqIDxwPlByb2plY3RlZCBjb2x1bW5zLjwvcD5cbiAqIFxuICogQG1pbkl0ZW1zIDBcbiAqIEBtYXhJdGVtcyAyMDQ4XG4gKi9cblByb2plY3RlZENvbHVtbnM/OiBzdHJpbmdbXVxuU291cmNlPzogVHJhbnNmb3JtT3BlcmF0aW9uU291cmNlXG59XG4vKipcbiAqIDxwPkluZm9ybWF0aW9uIGFib3V0IHRoZSBzb3VyY2Ugb2YgYSBsb2dpY2FsIHRhYmxlLiBUaGlzIGlzIGEgdmFyaWFudCB0eXBlIHN0cnVjdHVyZS4gRm9yXG4gKiAgICAgICAgICAgICB0aGlzIHN0cnVjdHVyZSB0byBiZSB2YWxpZCwgb25seSBvbmUgb2YgdGhlIGF0dHJpYnV0ZXMgY2FuIGJlIG5vbi1udWxsLjwvcD5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMb2dpY2FsVGFibGVTb3VyY2Uge1xuLyoqXG4gKiA8cD5QaHlzaWNhbCB0YWJsZSBJRC48L3A+XG4gKi9cblBoeXNpY2FsVGFibGVJZD86IHN0cmluZ1xuSm9pbkluc3RydWN0aW9uPzogSm9pbkluc3RydWN0aW9uXG4vKipcbiAqIDxwPlRoZSBBbWF6b24gUmVzb3VyY2UgTnVtYmVyIChBUk4pIG9mIHRoZSBwYXJlbnQgZGF0YXNldC48L3A+XG4gKi9cbkRhdGFTZXRBcm4/OiBzdHJpbmdcbn1cbi8qKlxuICogPHA+VGhlIGluc3RydWN0aW9ucyBhc3NvY2lhdGVkIHdpdGggYSBqb2luLiA8L3A+XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSm9pbkluc3RydWN0aW9uIHtcbi8qKlxuICogPHA+VGhlIGpvaW4gaW5zdHJ1Y3Rpb25zIHByb3ZpZGVkIGluIHRoZSA8Y29kZT5PTjwvY29kZT4gY2xhdXNlIG9mIGEgam9pbi48L3A+XG4gKi9cbk9uQ2xhdXNlOiBzdHJpbmdcblR5cGU6IEpvaW5UeXBlXG5MZWZ0Sm9pbktleVByb3BlcnRpZXM/OiBKb2luS2V5UHJvcGVydGllc1xuLyoqXG4gKiA8cD5UaGUgb3BlcmFuZCBvbiB0aGUgbGVmdCBzaWRlIG9mIGEgam9pbi48L3A+XG4gKi9cbkxlZnRPcGVyYW5kOiBzdHJpbmdcbi8qKlxuICogPHA+VGhlIG9wZXJhbmQgb24gdGhlIHJpZ2h0IHNpZGUgb2YgYSBqb2luLjwvcD5cbiAqL1xuUmlnaHRPcGVyYW5kOiBzdHJpbmdcblJpZ2h0Sm9pbktleVByb3BlcnRpZXM/OiBKb2luS2V5UHJvcGVydGllc1xufVxuLyoqXG4gKiA8cD5Qcm9wZXJ0aWVzIGFzc29jaWF0ZWQgd2l0aCB0aGUgY29sdW1ucyBwYXJ0aWNpcGF0aW5nIGluIGEgam9pbi48L3A+XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSm9pbktleVByb3BlcnRpZXMge1xuLyoqXG4gKiA8cD5BIHZhbHVlIHRoYXQgaW5kaWNhdGVzIHRoYXQgYSByb3cgaW4gYSB0YWJsZSBpcyB1bmlxdWVseSBpZGVudGlmaWVkIGJ5IHRoZSBjb2x1bW5zIGluXG4gKiAgICAgICAgICAgICBhIGpvaW4ga2V5LiBUaGlzIGlzIHVzZWQgYnkgUXVpY2sgU3VpdGUgdG8gb3B0aW1pemUgcXVlcnkgcGVyZm9ybWFuY2UuPC9wPlxuICovXG5VbmlxdWVLZXk/OiBib29sZWFuXG59XG4vKipcbiAqIDxwPlRoZSB1c2FnZSBjb25maWd1cmF0aW9uIHRvIGFwcGx5IHRvIGNoaWxkIGRhdGFzZXRzIHRoYXQgcmVmZXJlbmNlIHRoaXMgZGF0YXNldCBhcyBhIHNvdXJjZS48L3A+XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YVNldFVzYWdlQ29uZmlndXJhdGlvbiB7XG4vKipcbiAqIDxwPkFuIG9wdGlvbiB0aGF0IGNvbnRyb2xzIHdoZXRoZXIgYSBjaGlsZCBkYXRhc2V0IHRoYXQncyBzdG9yZWQgaW4gUXVpY2tTaWdodCBjYW4gdXNlIHRoaXMgZGF0YXNldCBhcyBhIHNvdXJjZS48L3A+XG4gKi9cbkRpc2FibGVVc2VBc0ltcG9ydGVkU291cmNlPzogYm9vbGVhblxuLyoqXG4gKiA8cD5BbiBvcHRpb24gdGhhdCBjb250cm9scyB3aGV0aGVyIGEgY2hpbGQgZGF0YXNldCBvZiBhIGRpcmVjdCBxdWVyeSBjYW4gdXNlIHRoaXMgZGF0YXNldCBhcyBhIHNvdXJjZS48L3A+XG4gKi9cbkRpc2FibGVVc2VBc0RpcmVjdFF1ZXJ5U291cmNlPzogYm9vbGVhblxufVxuLyoqXG4gKiA8cD5PdXRwdXQgY29sdW1uLjwvcD5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPdXRwdXRDb2x1bW4ge1xuVHlwZT86IENvbHVtbkRhdGFUeXBlXG4vKipcbiAqIDxwPkEgZGVzY3JpcHRpb24gZm9yIGEgY29sdW1uLjwvcD5cbiAqL1xuRGVzY3JpcHRpb24/OiBzdHJpbmdcblN1YlR5cGU/OiBDb2x1bW5EYXRhU3ViVHlwZVxuSWQ/OiBzdHJpbmdcbi8qKlxuICogPHA+VGhlIGRpc3BsYXkgbmFtZSBvZiB0aGUgY29sdW1uLi48L3A+XG4gKi9cbk5hbWU/OiBzdHJpbmdcbn1cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YVByZXBDb25maWd1cmF0aW9uIHtcbkRlc3RpbmF0aW9uVGFibGVNYXA6IERlc3RpbmF0aW9uVGFibGVNYXBcblRyYW5zZm9ybVN0ZXBNYXA6IFRyYW5zZm9ybVN0ZXBNYXBcblNvdXJjZVRhYmxlTWFwOiBTb3VyY2VUYWJsZU1hcFxufVxuZXhwb3J0IGludGVyZmFjZSBEZXN0aW5hdGlvblRhYmxlTWFwIHtcbltrOiBzdHJpbmddOiBEZXN0aW5hdGlvblRhYmxlXG59XG4vKipcbiAqIFRoaXMgaW50ZXJmYWNlIHdhcyByZWZlcmVuY2VkIGJ5IGBEZXN0aW5hdGlvblRhYmxlTWFwYCdzIEpTT04tU2NoZW1hIGRlZmluaXRpb25cbiAqIHZpYSB0aGUgYHBhdHRlcm5Qcm9wZXJ0eWAgXCJeWzAtOWEtekEtWi1dKiRcIi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEZXN0aW5hdGlvblRhYmxlIHtcbkFsaWFzOiBzdHJpbmdcblNvdXJjZTogRGVzdGluYXRpb25UYWJsZVNvdXJjZVxufVxuZXhwb3J0IGludGVyZmFjZSBEZXN0aW5hdGlvblRhYmxlU291cmNlIHtcblRyYW5zZm9ybU9wZXJhdGlvbklkOiBzdHJpbmdcbn1cbmV4cG9ydCBpbnRlcmZhY2UgVHJhbnNmb3JtU3RlcE1hcCB7XG5bazogc3RyaW5nXTogVHJhbnNmb3JtU3RlcFxufVxuLyoqXG4gKiBUaGlzIGludGVyZmFjZSB3YXMgcmVmZXJlbmNlZCBieSBgVHJhbnNmb3JtU3RlcE1hcGAncyBKU09OLVNjaGVtYSBkZWZpbml0aW9uXG4gKiB2aWEgdGhlIGBwYXR0ZXJuUHJvcGVydHlgIFwiXlswLTlhLXpBLVotXSokXCIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVHJhbnNmb3JtU3RlcCB7XG5Qcm9qZWN0U3RlcD86IFByb2plY3RPcGVyYXRpb25cbkNyZWF0ZUNvbHVtbnNTdGVwPzogQ3JlYXRlQ29sdW1uc09wZXJhdGlvblxuUmVuYW1lQ29sdW1uc1N0ZXA/OiBSZW5hbWVDb2x1bW5zT3BlcmF0aW9uXG5DYXN0Q29sdW1uVHlwZXNTdGVwPzogQ2FzdENvbHVtblR5cGVzT3BlcmF0aW9uXG5JbXBvcnRUYWJsZVN0ZXA/OiBJbXBvcnRUYWJsZU9wZXJhdGlvblxuVW5waXZvdFN0ZXA/OiBVbnBpdm90T3BlcmF0aW9uXG5Kb2luU3RlcD86IEpvaW5PcGVyYXRpb25cbkFwcGVuZFN0ZXA/OiBBcHBlbmRPcGVyYXRpb25cbkZpbHRlcnNTdGVwPzogRmlsdGVyc09wZXJhdGlvblxuQWdncmVnYXRlU3RlcD86IEFnZ3JlZ2F0ZU9wZXJhdGlvblxuUGl2b3RTdGVwPzogUGl2b3RPcGVyYXRpb25cbn1cbmV4cG9ydCBpbnRlcmZhY2UgUmVuYW1lQ29sdW1uc09wZXJhdGlvbiB7XG5BbGlhczogc3RyaW5nXG4vKipcbiAqIEBtaW5JdGVtcyAwXG4gKiBAbWF4SXRlbXMgMjA0OFxuICovXG5SZW5hbWVDb2x1bW5PcGVyYXRpb25zOiBSZW5hbWVDb2x1bW5PcGVyYXRpb25bXVxuU291cmNlOiBUcmFuc2Zvcm1PcGVyYXRpb25Tb3VyY2Vcbn1cbmV4cG9ydCBpbnRlcmZhY2UgQ2FzdENvbHVtblR5cGVzT3BlcmF0aW9uIHtcbi8qKlxuICogQG1pbkl0ZW1zIDBcbiAqIEBtYXhJdGVtcyAyMDQ4XG4gKi9cbkNhc3RDb2x1bW5UeXBlT3BlcmF0aW9uczogQ2FzdENvbHVtblR5cGVPcGVyYXRpb25bXVxuQWxpYXM6IHN0cmluZ1xuU291cmNlOiBUcmFuc2Zvcm1PcGVyYXRpb25Tb3VyY2Vcbn1cbmV4cG9ydCBpbnRlcmZhY2UgSW1wb3J0VGFibGVPcGVyYXRpb24ge1xuQWxpYXM6IHN0cmluZ1xuU291cmNlOiBJbXBvcnRUYWJsZU9wZXJhdGlvblNvdXJjZVxufVxuZXhwb3J0IGludGVyZmFjZSBJbXBvcnRUYWJsZU9wZXJhdGlvblNvdXJjZSB7XG5Tb3VyY2VUYWJsZUlkOiBzdHJpbmdcbi8qKlxuICogQG1pbkl0ZW1zIDFcbiAqIEBtYXhJdGVtcyAyMDQ4XG4gKi9cbkNvbHVtbklkTWFwcGluZ3M/OiBEYXRhU2V0Q29sdW1uSWRNYXBwaW5nW11cbn1cbmV4cG9ydCBpbnRlcmZhY2UgVW5waXZvdE9wZXJhdGlvbiB7XG5VbnBpdm90ZWRMYWJlbENvbHVtbk5hbWU6IHN0cmluZ1xuLyoqXG4gKiBAbWluSXRlbXMgMFxuICogQG1heEl0ZW1zIDEwMFxuICovXG5Db2x1bW5zVG9VbnBpdm90OiBDb2x1bW5Ub1VucGl2b3RbXVxuVW5waXZvdGVkTGFiZWxDb2x1bW5JZDogc3RyaW5nXG5BbGlhczogc3RyaW5nXG5VbnBpdm90ZWRWYWx1ZUNvbHVtbklkOiBzdHJpbmdcblVucGl2b3RlZFZhbHVlQ29sdW1uTmFtZTogc3RyaW5nXG5Tb3VyY2U6IFRyYW5zZm9ybU9wZXJhdGlvblNvdXJjZVxufVxuZXhwb3J0IGludGVyZmFjZSBDb2x1bW5Ub1VucGl2b3Qge1xuQ29sdW1uTmFtZT86IHN0cmluZ1xuTmV3VmFsdWU/OiBzdHJpbmdcbn1cbmV4cG9ydCBpbnRlcmZhY2UgSm9pbk9wZXJhdGlvbiB7XG5PbkNsYXVzZTogc3RyaW5nXG5UeXBlOiBKb2luT3BlcmF0aW9uVHlwZVxuUmlnaHRPcGVyYW5kUHJvcGVydGllcz86IEpvaW5PcGVyYW5kUHJvcGVydGllc1xuTGVmdE9wZXJhbmRQcm9wZXJ0aWVzPzogSm9pbk9wZXJhbmRQcm9wZXJ0aWVzXG5BbGlhczogc3RyaW5nXG5MZWZ0T3BlcmFuZDogVHJhbnNmb3JtT3BlcmF0aW9uU291cmNlXG5SaWdodE9wZXJhbmQ6IFRyYW5zZm9ybU9wZXJhdGlvblNvdXJjZVxufVxuZXhwb3J0IGludGVyZmFjZSBKb2luT3BlcmFuZFByb3BlcnRpZXMge1xuLyoqXG4gKiBAbWluSXRlbXMgMVxuICogQG1heEl0ZW1zIDIwNDhcbiAqL1xuT3V0cHV0Q29sdW1uTmFtZU92ZXJyaWRlczogT3V0cHV0Q29sdW1uTmFtZU92ZXJyaWRlW11cbn1cbmV4cG9ydCBpbnRlcmZhY2UgT3V0cHV0Q29sdW1uTmFtZU92ZXJyaWRlIHtcbk91dHB1dENvbHVtbk5hbWU6IHN0cmluZ1xuU291cmNlQ29sdW1uTmFtZT86IHN0cmluZ1xufVxuZXhwb3J0IGludGVyZmFjZSBBcHBlbmRPcGVyYXRpb24ge1xuLyoqXG4gKiBAbWluSXRlbXMgMFxuICogQG1heEl0ZW1zIDIwNDhcbiAqL1xuQXBwZW5kZWRDb2x1bW5zOiBBcHBlbmRlZENvbHVtbltdXG5TZWNvbmRTb3VyY2U/OiBUcmFuc2Zvcm1PcGVyYXRpb25Tb3VyY2VcbkFsaWFzOiBzdHJpbmdcbkZpcnN0U291cmNlPzogVHJhbnNmb3JtT3BlcmF0aW9uU291cmNlXG59XG5leHBvcnQgaW50ZXJmYWNlIEFwcGVuZGVkQ29sdW1uIHtcbkNvbHVtbk5hbWU6IHN0cmluZ1xuTmV3Q29sdW1uSWQ6IHN0cmluZ1xufVxuZXhwb3J0IGludGVyZmFjZSBGaWx0ZXJzT3BlcmF0aW9uIHtcbi8qKlxuICogQG1pbkl0ZW1zIDBcbiAqIEBtYXhJdGVtcyAxMjhcbiAqL1xuRmlsdGVyT3BlcmF0aW9uczogRmlsdGVyT3BlcmF0aW9uW11cbkFsaWFzOiBzdHJpbmdcblNvdXJjZTogVHJhbnNmb3JtT3BlcmF0aW9uU291cmNlXG59XG5leHBvcnQgaW50ZXJmYWNlIEFnZ3JlZ2F0ZU9wZXJhdGlvbiB7XG4vKipcbiAqIEBtaW5JdGVtcyAwXG4gKiBAbWF4SXRlbXMgMTI4XG4gKi9cbkdyb3VwQnlDb2x1bW5OYW1lcz86IHN0cmluZ1tdXG5BbGlhczogc3RyaW5nXG4vKipcbiAqIEBtaW5JdGVtcyAwXG4gKiBAbWF4SXRlbXMgMTI4XG4gKi9cbkFnZ3JlZ2F0aW9uczogQWdncmVnYXRpb25bXVxuU291cmNlOiBUcmFuc2Zvcm1PcGVyYXRpb25Tb3VyY2Vcbn1cbmV4cG9ydCBpbnRlcmZhY2UgQWdncmVnYXRpb24ge1xuQWdncmVnYXRpb25GdW5jdGlvbjogRGF0YVByZXBBZ2dyZWdhdGlvbkZ1bmN0aW9uXG5OZXdDb2x1bW5OYW1lOiBzdHJpbmdcbk5ld0NvbHVtbklkOiBzdHJpbmdcbn1cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YVByZXBBZ2dyZWdhdGlvbkZ1bmN0aW9uIHtcblBlcmNlbnRpbGVBZ2dyZWdhdGlvbj86IERhdGFQcmVwUGVyY2VudGlsZUFnZ3JlZ2F0aW9uRnVuY3Rpb25cblNpbXBsZUFnZ3JlZ2F0aW9uPzogRGF0YVByZXBTaW1wbGVBZ2dyZWdhdGlvbkZ1bmN0aW9uXG5MaXN0QWdncmVnYXRpb24/OiBEYXRhUHJlcExpc3RBZ2dyZWdhdGlvbkZ1bmN0aW9uXG59XG5leHBvcnQgaW50ZXJmYWNlIERhdGFQcmVwUGVyY2VudGlsZUFnZ3JlZ2F0aW9uRnVuY3Rpb24ge1xuSW5wdXRDb2x1bW5OYW1lPzogc3RyaW5nXG5QZXJjZW50aWxlVmFsdWU6IG51bWJlclxufVxuZXhwb3J0IGludGVyZmFjZSBEYXRhUHJlcFNpbXBsZUFnZ3JlZ2F0aW9uRnVuY3Rpb24ge1xuRnVuY3Rpb25UeXBlOiBEYXRhUHJlcFNpbXBsZUFnZ3JlZ2F0aW9uRnVuY3Rpb25UeXBlXG5JbnB1dENvbHVtbk5hbWU/OiBzdHJpbmdcbn1cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YVByZXBMaXN0QWdncmVnYXRpb25GdW5jdGlvbiB7XG5EaXN0aW5jdDogYm9vbGVhblxuSW5wdXRDb2x1bW5OYW1lPzogc3RyaW5nXG5TZXBhcmF0b3I6IHN0cmluZ1xufVxuZXhwb3J0IGludGVyZmFjZSBQaXZvdE9wZXJhdGlvbiB7XG5QaXZvdENvbmZpZ3VyYXRpb246IFBpdm90Q29uZmlndXJhdGlvblxuLyoqXG4gKiBAbWluSXRlbXMgMFxuICogQG1heEl0ZW1zIDEyOFxuICovXG5Hcm91cEJ5Q29sdW1uTmFtZXM/OiBzdHJpbmdbXVxuQWxpYXM6IHN0cmluZ1xuVmFsdWVDb2x1bW5Db25maWd1cmF0aW9uOiBWYWx1ZUNvbHVtbkNvbmZpZ3VyYXRpb25cblNvdXJjZTogVHJhbnNmb3JtT3BlcmF0aW9uU291cmNlXG59XG5leHBvcnQgaW50ZXJmYWNlIFBpdm90Q29uZmlndXJhdGlvbiB7XG5MYWJlbENvbHVtbk5hbWU/OiBzdHJpbmdcbi8qKlxuICogQG1pbkl0ZW1zIDBcbiAqIEBtYXhJdGVtcyAxMDBcbiAqL1xuUGl2b3RlZExhYmVsczogUGl2b3RlZExhYmVsW11cbn1cbmV4cG9ydCBpbnRlcmZhY2UgUGl2b3RlZExhYmVsIHtcbk5ld0NvbHVtbk5hbWU6IHN0cmluZ1xuTmV3Q29sdW1uSWQ6IHN0cmluZ1xuTGFiZWxOYW1lOiBzdHJpbmdcbn1cbmV4cG9ydCBpbnRlcmZhY2UgVmFsdWVDb2x1bW5Db25maWd1cmF0aW9uIHtcbkFnZ3JlZ2F0aW9uRnVuY3Rpb24/OiBEYXRhUHJlcEFnZ3JlZ2F0aW9uRnVuY3Rpb25cbn1cbmV4cG9ydCBpbnRlcmZhY2UgU291cmNlVGFibGVNYXAge1xuW2s6IHN0cmluZ106IFNvdXJjZVRhYmxlXG59XG4vKipcbiAqIFRoaXMgaW50ZXJmYWNlIHdhcyByZWZlcmVuY2VkIGJ5IGBTb3VyY2VUYWJsZU1hcGAncyBKU09OLVNjaGVtYSBkZWZpbml0aW9uXG4gKiB2aWEgdGhlIGBwYXR0ZXJuUHJvcGVydHlgIFwiXlswLTlhLXpBLVotXSokXCIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU291cmNlVGFibGUge1xuUGh5c2ljYWxUYWJsZUlkPzogc3RyaW5nXG5EYXRhU2V0PzogUGFyZW50RGF0YVNldFxufVxuZXhwb3J0IGludGVyZmFjZSBQYXJlbnREYXRhU2V0IHtcbi8qKlxuICogQG1pbkl0ZW1zIDBcbiAqIEBtYXhJdGVtcyAyMDQ4XG4gKi9cbklucHV0Q29sdW1uczogSW5wdXRDb2x1bW5bXVxuRGF0YVNldEFybjogc3RyaW5nXG59XG4iXX0=
@@ -1,7 +1,7 @@
1
1
  export type ResourceStatus = ("CREATION_IN_PROGRESS" | "CREATION_SUCCESSFUL" | "CREATION_FAILED" | "UPDATE_IN_PROGRESS" | "UPDATE_SUCCESSFUL" | "UPDATE_FAILED" | "PENDING_UPDATE" | "DELETED");
2
2
  export type DataSourceErrorInfoType = ("ACCESS_DENIED" | "COPY_SOURCE_NOT_FOUND" | "TIMEOUT" | "ENGINE_VERSION_NOT_SUPPORTED" | "UNKNOWN_HOST" | "GENERIC_SQL_FAILURE" | "CONFLICT" | "UNKNOWN");
3
3
  export type StarburstProductType = ("GALAXY" | "ENTERPRISE");
4
- export type AuthenticationType = ("PASSWORD" | "TOKEN" | "X509");
4
+ export type AuthenticationType = ("PASSWORD" | "TOKEN" | "X509" | "KEYPAIR");
5
5
  export type DataSourceType = ("ADOBE_ANALYTICS" | "AMAZON_ELASTICSEARCH" | "AMAZON_OPENSEARCH" | "ATHENA" | "AURORA" | "AURORA_POSTGRESQL" | "AWS_IOT_ANALYTICS" | "DATABRICKS" | "DENODO" | "DREMIO" | "DYNAMODB" | "SAPHANA" | "DB2_AS400" | "EXASOL" | "FILE" | "GITHUB" | "INTERNATIONAL_DATA_CORPORATION" | "JIRA" | "MARIADB" | "MYSQL" | "ORACLE" | "POSTGRESQL" | "PRESTO" | "QBUSINESS" | "REDSHIFT" | "S3" | "S3_TABLES" | "S3_KNOWLEDGE_BASE" | "SALESFORCE" | "SERVICENOW" | "SNOWFLAKE" | "SPARK" | "SPICE" | "SQLSERVER" | "TERADATA" | "TIMESTREAM" | "TWITTER" | "BIGQUERY" | "GOOGLE_ANALYTICS" | "TRINO" | "STARBURST" | "MONGO" | "MONGO_ATLAS" | "DOCUMENTDB" | "APPFLOW" | "IMPALA" | "GLUE" | "GOOGLE_DRIVE" | "CONFLUENCE" | "SHAREPOINT" | "ONE_DRIVE" | "WEB_CRAWLER");
6
6
  /**
7
7
  * Definition of the AWS::QuickSight::DataSource Resource Type.
@@ -71,7 +71,7 @@ export interface DataSourceErrorInfo {
71
71
  Message?: string;
72
72
  }
73
73
  /**
74
- * <p>The parameters that Amazon QuickSight uses to connect to your underlying data source.
74
+ * <p>The parameters that Amazon Quick Suite uses to connect to your underlying data source.
75
75
  * This is a variant type structure. For this structure to be valid, only one of the
76
76
  * attributes can be non-null.</p>
77
77
  */
@@ -294,25 +294,25 @@ export interface RedshiftParameters {
294
294
  IdentityCenterConfiguration?: IdentityCenterConfiguration;
295
295
  }
296
296
  /**
297
- * <p>A structure that grants Amazon QuickSight access to your cluster and make a call to the <code>redshift:GetClusterCredentials</code> API. For more information on the <code>redshift:GetClusterCredentials</code> API, see <a href="https://docs.aws.amazon.com/redshift/latest/APIReference/API_GetClusterCredentials.html">
297
+ * <p>A structure that grants Quick Suite access to your cluster and make a call to the <code>redshift:GetClusterCredentials</code> API. For more information on the <code>redshift:GetClusterCredentials</code> API, see <a href="https://docs.aws.amazon.com/redshift/latest/APIReference/API_GetClusterCredentials.html">
298
298
  * <code>GetClusterCredentials</code>
299
299
  * </a>.</p>
300
300
  */
301
301
  export interface RedshiftIAMParameters {
302
302
  /**
303
- * <p>Automatically creates a database user. If your database doesn't have a <code>DatabaseUser</code>, set this parameter to <code>True</code>. If there is no <code>DatabaseUser</code>, Amazon QuickSight can't connect to your cluster. The <code>RoleArn</code> that you use for this operation must grant access to <code>redshift:CreateClusterUser</code> to successfully create the user.</p>
303
+ * <p>Automatically creates a database user. If your database doesn't have a <code>DatabaseUser</code>, set this parameter to <code>True</code>. If there is no <code>DatabaseUser</code>, Amazon Quick Suite can't connect to your cluster. The <code>RoleArn</code> that you use for this operation must grant access to <code>redshift:CreateClusterUser</code> to successfully create the user.</p>
304
304
  */
305
305
  AutoCreateDatabaseUser?: boolean;
306
306
  /**
307
- * <p>The user whose permissions and group memberships will be used by Amazon QuickSight to access the cluster. If this user already exists in your database, Amazon QuickSight is granted the same permissions that the user has. If the user doesn't exist, set the value of <code>AutoCreateDatabaseUser</code> to <code>True</code> to create a new user with PUBLIC permissions.</p>
307
+ * <p>The user whose permissions and group memberships will be used by Quick Suite to access the cluster. If this user already exists in your database, Quick Suite is granted the same permissions that the user has. If the user doesn't exist, set the value of <code>AutoCreateDatabaseUser</code> to <code>True</code> to create a new user with PUBLIC permissions.</p>
308
308
  */
309
309
  DatabaseUser?: string;
310
310
  /**
311
- * <p>Use the <code>RoleArn</code> structure to allow Amazon QuickSight to call <code>redshift:GetClusterCredentials</code> on your cluster. The calling principal must have <code>iam:PassRole</code> access to pass the role to Amazon QuickSight. The role's trust policy must allow the Amazon QuickSight service principal to assume the role.</p>
311
+ * <p>Use the <code>RoleArn</code> structure to allow Quick Suite to call <code>redshift:GetClusterCredentials</code> on your cluster. The calling principal must have <code>iam:PassRole</code> access to pass the role to Quick Suite. The role's trust policy must allow the Quick Suite service principal to assume the role.</p>
312
312
  */
313
313
  RoleArn: string;
314
314
  /**
315
- * <p>A list of groups whose permissions will be granted to Amazon QuickSight to access the cluster. These permissions are combined with the permissions granted to Amazon QuickSight by the <code>DatabaseUser</code>. If you choose to include this parameter, the <code>RoleArn</code> must grant access to <code>redshift:JoinGroup</code>.</p>
315
+ * <p>A list of groups whose permissions will be granted to Quick Suite to access the cluster. These permissions are combined with the permissions granted to Quick Suite by the <code>DatabaseUser</code>. If you choose to include this parameter, the <code>RoleArn</code> must grant access to <code>redshift:JoinGroup</code>.</p>
316
316
  *
317
317
  * @minItems 1
318
318
  * @maxItems 50
@@ -499,10 +499,10 @@ export interface ResourcePermission {
499
499
  * following:</p>
500
500
  * <ul>
501
501
  * <li>
502
- * <p>The ARN of an Amazon QuickSight user or group associated with a data source or dataset. (This is common.)</p>
502
+ * <p>The ARN of an Amazon Quick Suite user or group associated with a data source or dataset. (This is common.)</p>
503
503
  * </li>
504
504
  * <li>
505
- * <p>The ARN of an Amazon QuickSight user, group, or namespace associated with an analysis, dashboard, template, or theme. (This is common.)</p>
505
+ * <p>The ARN of an Amazon Quick Suite user, group, or namespace associated with an analysis, dashboard, template, or theme. (This is common.)</p>
506
506
  * </li>
507
507
  * <li>
508
508
  * <p>The ARN of an Amazon Web Services account root: This is an IAM ARN rather than a QuickSight
@@ -514,7 +514,7 @@ export interface ResourcePermission {
514
514
  Principal: string;
515
515
  }
516
516
  /**
517
- * <p>Secure Socket Layer (SSL) properties that apply when Amazon QuickSight connects to your
517
+ * <p>Secure Socket Layer (SSL) properties that apply when Quick Suite connects to your
518
518
  * underlying data source.</p>
519
519
  */
520
520
  export interface SslProperties {
@@ -540,6 +540,7 @@ export interface DataSourceCredentials {
540
540
  */
541
541
  CopySourceArn?: string;
542
542
  CredentialPair?: CredentialPair;
543
+ KeyPairCredentials?: KeyPairCredentials;
543
544
  }
544
545
  /**
545
546
  * <p>The combination of user name and password that are used as credentials.</p>
@@ -569,6 +570,11 @@ export interface CredentialPair {
569
570
  */
570
571
  Password: string;
571
572
  }
573
+ export interface KeyPairCredentials {
574
+ KeyPairUsername: string;
575
+ PrivateKey: string;
576
+ PrivateKeyPassphrase?: string;
577
+ }
572
578
  /**
573
579
  * <p>The key or keys of the key-value pairs for the resource tag or tags assigned to the
574
580
  * resource.</p>
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLXF1aWNrc2lnaHQtZGF0YXNvdXJjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImF3cy1xdWlja3NpZ2h0LWRhdGFzb3VyY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIFJlc291cmNlU3RhdHVzID0gKFwiQ1JFQVRJT05fSU5fUFJPR1JFU1NcIiB8IFwiQ1JFQVRJT05fU1VDQ0VTU0ZVTFwiIHwgXCJDUkVBVElPTl9GQUlMRURcIiB8IFwiVVBEQVRFX0lOX1BST0dSRVNTXCIgfCBcIlVQREFURV9TVUNDRVNTRlVMXCIgfCBcIlVQREFURV9GQUlMRURcIiB8IFwiUEVORElOR19VUERBVEVcIiB8IFwiREVMRVRFRFwiKVxuZXhwb3J0IHR5cGUgRGF0YVNvdXJjZUVycm9ySW5mb1R5cGUgPSAoXCJBQ0NFU1NfREVOSUVEXCIgfCBcIkNPUFlfU09VUkNFX05PVF9GT1VORFwiIHwgXCJUSU1FT1VUXCIgfCBcIkVOR0lORV9WRVJTSU9OX05PVF9TVVBQT1JURURcIiB8IFwiVU5LTk9XTl9IT1NUXCIgfCBcIkdFTkVSSUNfU1FMX0ZBSUxVUkVcIiB8IFwiQ09ORkxJQ1RcIiB8IFwiVU5LTk9XTlwiKVxuZXhwb3J0IHR5cGUgU3RhcmJ1cnN0UHJvZHVjdFR5cGUgPSAoXCJHQUxBWFlcIiB8IFwiRU5URVJQUklTRVwiKVxuZXhwb3J0IHR5cGUgQXV0aGVudGljYXRpb25UeXBlID0gKFwiUEFTU1dPUkRcIiB8IFwiVE9LRU5cIiB8IFwiWDUwOVwiKVxuZXhwb3J0IHR5cGUgRGF0YVNvdXJjZVR5cGUgPSAoXCJBRE9CRV9BTkFMWVRJQ1NcIiB8IFwiQU1BWk9OX0VMQVNUSUNTRUFSQ0hcIiB8IFwiQU1BWk9OX09QRU5TRUFSQ0hcIiB8IFwiQVRIRU5BXCIgfCBcIkFVUk9SQVwiIHwgXCJBVVJPUkFfUE9TVEdSRVNRTFwiIHwgXCJBV1NfSU9UX0FOQUxZVElDU1wiIHwgXCJEQVRBQlJJQ0tTXCIgfCBcIkRFTk9ET1wiIHwgXCJEUkVNSU9cIiB8IFwiRFlOQU1PREJcIiB8IFwiU0FQSEFOQVwiIHwgXCJEQjJfQVM0MDBcIiB8IFwiRVhBU09MXCIgfCBcIkZJTEVcIiB8IFwiR0lUSFVCXCIgfCBcIklOVEVSTkFUSU9OQUxfREFUQV9DT1JQT1JBVElPTlwiIHwgXCJKSVJBXCIgfCBcIk1BUklBREJcIiB8IFwiTVlTUUxcIiB8IFwiT1JBQ0xFXCIgfCBcIlBPU1RHUkVTUUxcIiB8IFwiUFJFU1RPXCIgfCBcIlFCVVNJTkVTU1wiIHwgXCJSRURTSElGVFwiIHwgXCJTM1wiIHwgXCJTM19UQUJMRVNcIiB8IFwiUzNfS05PV0xFREdFX0JBU0VcIiB8IFwiU0FMRVNGT1JDRVwiIHwgXCJTRVJWSUNFTk9XXCIgfCBcIlNOT1dGTEFLRVwiIHwgXCJTUEFSS1wiIHwgXCJTUElDRVwiIHwgXCJTUUxTRVJWRVJcIiB8IFwiVEVSQURBVEFcIiB8IFwiVElNRVNUUkVBTVwiIHwgXCJUV0lUVEVSXCIgfCBcIkJJR1FVRVJZXCIgfCBcIkdPT0dMRV9BTkFMWVRJQ1NcIiB8IFwiVFJJTk9cIiB8IFwiU1RBUkJVUlNUXCIgfCBcIk1PTkdPXCIgfCBcIk1PTkdPX0FUTEFTXCIgfCBcIkRPQ1VNRU5UREJcIiB8IFwiQVBQRkxPV1wiIHwgXCJJTVBBTEFcIiB8IFwiR0xVRVwiIHwgXCJHT09HTEVfRFJJVkVcIiB8IFwiQ09ORkxVRU5DRVwiIHwgXCJTSEFSRVBPSU5UXCIgfCBcIk9ORV9EUklWRVwiIHwgXCJXRUJfQ1JBV0xFUlwiKVxuXG4vKipcbiAqIERlZmluaXRpb24gb2YgdGhlIEFXUzo6UXVpY2tTaWdodDo6RGF0YVNvdXJjZSBSZXNvdXJjZSBUeXBlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIF9BV1NfUVVJQ0tTSUdIVF9EQVRBU09VUkNFIHtcblN0YXR1cz86IFJlc291cmNlU3RhdHVzXG4vKipcbiAqIDxwPlRoZSB0aW1lIHRoYXQgdGhpcyBkYXRhIHNvdXJjZSB3YXMgY3JlYXRlZC48L3A+XG4gKi9cbkNyZWF0ZWRUaW1lPzogc3RyaW5nXG5FcnJvckluZm8/OiBEYXRhU291cmNlRXJyb3JJbmZvXG4vKipcbiAqIDxwPlRoZSBsYXN0IHRpbWUgdGhhdCB0aGlzIGRhdGEgc291cmNlIHdhcyB1cGRhdGVkLjwvcD5cbiAqL1xuTGFzdFVwZGF0ZWRUaW1lPzogc3RyaW5nXG4vKipcbiAqIEBtaW5JdGVtcyAwXG4gKiBAbWF4SXRlbXMgMTBcbiAqL1xuRm9sZGVyQXJucz86IHN0cmluZ1tdXG5OYW1lOiBzdHJpbmdcbkRhdGFTb3VyY2VQYXJhbWV0ZXJzPzogRGF0YVNvdXJjZVBhcmFtZXRlcnNcblR5cGU6IERhdGFTb3VyY2VUeXBlXG5WcGNDb25uZWN0aW9uUHJvcGVydGllcz86IFZwY0Nvbm5lY3Rpb25Qcm9wZXJ0aWVzXG4vKipcbiAqIDxwPkEgc2V0IG9mIGFsdGVybmF0ZSBkYXRhIHNvdXJjZSBwYXJhbWV0ZXJzIHRoYXQgeW91IHdhbnQgdG8gc2hhcmUgZm9yIHRoZSBjcmVkZW50aWFsc1xuICogICAgICAgICAgICAgc3RvcmVkIHdpdGggdGhpcyBkYXRhIHNvdXJjZS4gVGhlIGNyZWRlbnRpYWxzIGFyZSBhcHBsaWVkIGluIHRhbmRlbSB3aXRoIHRoZSBkYXRhIHNvdXJjZVxuICogICAgICAgICAgICAgcGFyYW1ldGVycyB3aGVuIHlvdSBjb3B5IGEgZGF0YSBzb3VyY2UgYnkgdXNpbmcgYSBjcmVhdGUgb3IgdXBkYXRlIHJlcXVlc3QuIFRoZSBBUElcbiAqICAgICAgICAgICAgIG9wZXJhdGlvbiBjb21wYXJlcyB0aGUgPGNvZGU+RGF0YVNvdXJjZVBhcmFtZXRlcnM8L2NvZGU+IHN0cnVjdHVyZSB0aGF0J3MgaW4gdGhlIHJlcXVlc3RcbiAqICAgICAgICAgICAgIHdpdGggdGhlIHN0cnVjdHVyZXMgaW4gdGhlIDxjb2RlPkFsdGVybmF0ZURhdGFTb3VyY2VQYXJhbWV0ZXJzPC9jb2RlPiBhbGxvdyBsaXN0LiBJZiB0aGVcbiAqICAgICAgICAgICAgIHN0cnVjdHVyZXMgYXJlIGFuIGV4YWN0IG1hdGNoLCB0aGUgcmVxdWVzdCBpcyBhbGxvd2VkIHRvIHVzZSB0aGUgY3JlZGVudGlhbHMgZnJvbSB0aGlzXG4gKiAgICAgICAgICAgICBleGlzdGluZyBkYXRhIHNvdXJjZS4gSWYgdGhlIDxjb2RlPkFsdGVybmF0ZURhdGFTb3VyY2VQYXJhbWV0ZXJzPC9jb2RlPiBsaXN0IGlzIG51bGwsXG4gKiAgICAgICAgICAgICB0aGUgPGNvZGU+Q3JlZGVudGlhbHM8L2NvZGU+IG9yaWdpbmFsbHkgdXNlZCB3aXRoIHRoaXMgPGNvZGU+RGF0YVNvdXJjZVBhcmFtZXRlcnM8L2NvZGU+XG4gKiAgICAgICAgICAgICBhcmUgYXV0b21hdGljYWxseSBhbGxvd2VkLjwvcD5cbiAqIFxuICogQG1pbkl0ZW1zIDFcbiAqIEBtYXhJdGVtcyA1MFxuICovXG5BbHRlcm5hdGVEYXRhU291cmNlUGFyYW1ldGVycz86IERhdGFTb3VyY2VQYXJhbWV0ZXJzW11cbkF3c0FjY291bnRJZD86IHN0cmluZ1xuLyoqXG4gKiBAbWluSXRlbXMgMVxuICogQG1heEl0ZW1zIDY0XG4gKi9cblBlcm1pc3Npb25zPzogUmVzb3VyY2VQZXJtaXNzaW9uW11cbi8qKlxuICogPHA+VGhlIEFtYXpvbiBSZXNvdXJjZSBOYW1lIChBUk4pIG9mIHRoZSBkYXRhIHNvdXJjZS48L3A+XG4gKi9cbkFybj86IHN0cmluZ1xuU3NsUHJvcGVydGllcz86IFNzbFByb3BlcnRpZXNcbkNyZWRlbnRpYWxzPzogRGF0YVNvdXJjZUNyZWRlbnRpYWxzXG5EYXRhU291cmNlSWQ/OiBzdHJpbmdcbi8qKlxuICogQG1pbkl0ZW1zIDFcbiAqIEBtYXhJdGVtcyAyMDBcbiAqL1xuVGFncz86IFRhZ1tdXG59XG4vKipcbiAqIDxwPkVycm9yIGluZm9ybWF0aW9uIGZvciB0aGUgZGF0YSBzb3VyY2UgY3JlYXRpb24gb3IgdXBkYXRlLjwvcD5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEYXRhU291cmNlRXJyb3JJbmZvIHtcblR5cGU/OiBEYXRhU291cmNlRXJyb3JJbmZvVHlwZVxuLyoqXG4gKiA8cD5FcnJvciBtZXNzYWdlLjwvcD5cbiAqL1xuTWVzc2FnZT86IHN0cmluZ1xufVxuLyoqXG4gKiA8cD5UaGUgcGFyYW1ldGVycyB0aGF0IEFtYXpvbiBRdWlja1NpZ2h0IHVzZXMgdG8gY29ubmVjdCB0byB5b3VyIHVuZGVybHlpbmcgZGF0YSBzb3VyY2UuXG4gKiAgICAgICAgICAgICBUaGlzIGlzIGEgdmFyaWFudCB0eXBlIHN0cnVjdHVyZS4gRm9yIHRoaXMgc3RydWN0dXJlIHRvIGJlIHZhbGlkLCBvbmx5IG9uZSBvZiB0aGVcbiAqICAgICAgICAgICAgIGF0dHJpYnV0ZXMgY2FuIGJlIG5vbi1udWxsLjwvcD5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEYXRhU291cmNlUGFyYW1ldGVycyB7XG5BdXJvcmFQb3N0Z3JlU3FsUGFyYW1ldGVycz86IEF1cm9yYVBvc3RncmVTcWxQYXJhbWV0ZXJzXG5UZXJhZGF0YVBhcmFtZXRlcnM/OiBUZXJhZGF0YVBhcmFtZXRlcnNcblJkc1BhcmFtZXRlcnM/OiBSZHNQYXJhbWV0ZXJzXG5BdGhlbmFQYXJhbWV0ZXJzPzogQXRoZW5hUGFyYW1ldGVyc1xuU3BhcmtQYXJhbWV0ZXJzPzogU3BhcmtQYXJhbWV0ZXJzXG5NYXJpYURiUGFyYW1ldGVycz86IE1hcmlhRGJQYXJhbWV0ZXJzXG5PcmFjbGVQYXJhbWV0ZXJzPzogT3JhY2xlUGFyYW1ldGVyc1xuUHJlc3RvUGFyYW1ldGVycz86IFByZXN0b1BhcmFtZXRlcnNcblN0YXJidXJzdFBhcmFtZXRlcnM/OiBTdGFyYnVyc3RQYXJhbWV0ZXJzXG5SZWRzaGlmdFBhcmFtZXRlcnM/OiBSZWRzaGlmdFBhcmFtZXRlcnNcbk15U3FsUGFyYW1ldGVycz86IE15U3FsUGFyYW1ldGVyc1xuU3FsU2VydmVyUGFyYW1ldGVycz86IFNxbFNlcnZlclBhcmFtZXRlcnNcblNub3dmbGFrZVBhcmFtZXRlcnM/OiBTbm93Zmxha2VQYXJhbWV0ZXJzXG5BbWF6b25FbGFzdGljc2VhcmNoUGFyYW1ldGVycz86IEFtYXpvbkVsYXN0aWNzZWFyY2hQYXJhbWV0ZXJzXG5BbWF6b25PcGVuU2VhcmNoUGFyYW1ldGVycz86IEFtYXpvbk9wZW5TZWFyY2hQYXJhbWV0ZXJzXG5Qb3N0Z3JlU3FsUGFyYW1ldGVycz86IFBvc3RncmVTcWxQYXJhbWV0ZXJzXG5BdXJvcmFQYXJhbWV0ZXJzPzogQXVyb3JhUGFyYW1ldGVyc1xuUzNQYXJhbWV0ZXJzPzogUzNQYXJhbWV0ZXJzXG5Ucmlub1BhcmFtZXRlcnM/OiBUcmlub1BhcmFtZXRlcnNcbkRhdGFicmlja3NQYXJhbWV0ZXJzPzogRGF0YWJyaWNrc1BhcmFtZXRlcnNcbn1cbi8qKlxuICogPHA+UGFyYW1ldGVycyBmb3IgQW1hem9uIEF1cm9yYSBQb3N0Z3JlU1FMLUNvbXBhdGlibGUgRWRpdGlvbi48L3A+XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXVyb3JhUG9zdGdyZVNxbFBhcmFtZXRlcnMge1xuLyoqXG4gKiA8cD5UaGUgcG9ydCB0aGF0IEFtYXpvbiBBdXJvcmEgUG9zdGdyZVNRTCBpcyBsaXN0ZW5pbmcgb24uPC9wPlxuICovXG5Qb3J0OiBudW1iZXJcbi8qKlxuICogPHA+VGhlIEFtYXpvbiBBdXJvcmEgUG9zdGdyZVNRTCBkYXRhYmFzZSB0byBjb25uZWN0IHRvLjwvcD5cbiAqL1xuRGF0YWJhc2U6IHN0cmluZ1xuLyoqXG4gKiA8cD5UaGUgQW1hem9uIEF1cm9yYSBQb3N0Z3JlU1FMLUNvbXBhdGlibGUgaG9zdCB0byBjb25uZWN0IHRvLjwvcD5cbiAqL1xuSG9zdDogc3RyaW5nXG59XG4vKipcbiAqIDxwPlRoZSBwYXJhbWV0ZXJzIGZvciBUZXJhZGF0YS48L3A+XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGVyYWRhdGFQYXJhbWV0ZXJzIHtcbi8qKlxuICogPHA+UG9ydC48L3A+XG4gKi9cblBvcnQ6IG51bWJlclxuLyoqXG4gKiA8cD5EYXRhYmFzZS48L3A+XG4gKi9cbkRhdGFiYXNlOiBzdHJpbmdcbi8qKlxuICogPHA+SG9zdC48L3A+XG4gKi9cbkhvc3Q6IHN0cmluZ1xufVxuLyoqXG4gKiA8cD5UaGUgcGFyYW1ldGVycyBmb3IgQW1hem9uIFJEUy48L3A+XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmRzUGFyYW1ldGVycyB7XG4vKipcbiAqIDxwPkluc3RhbmNlIElELjwvcD5cbiAqL1xuSW5zdGFuY2VJZDogc3RyaW5nXG4vKipcbiAqIDxwPkRhdGFiYXNlLjwvcD5cbiAqL1xuRGF0YWJhc2U6IHN0cmluZ1xufVxuLyoqXG4gKiA8cD5QYXJhbWV0ZXJzIGZvciBBbWF6b24gQXRoZW5hLjwvcD5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBdGhlbmFQYXJhbWV0ZXJzIHtcbi8qKlxuICogPHA+VGhlIHdvcmtncm91cCB0aGF0IEFtYXpvbiBBdGhlbmEgdXNlcy48L3A+XG4gKi9cbldvcmtHcm91cD86IHN0cmluZ1xuSWRlbnRpdHlDZW50ZXJDb25maWd1cmF0aW9uPzogSWRlbnRpdHlDZW50ZXJDb25maWd1cmF0aW9uXG4vKipcbiAqIDxwPlVzZSB0aGUgPGNvZGU+Um9sZUFybjwvY29kZT4gc3RydWN0dXJlIHRvIG92ZXJyaWRlIGFuIGFjY291bnQtd2lkZSByb2xlIGZvciBhIHNwZWNpZmljIEF0aGVuYSBkYXRhIHNvdXJjZS4gRm9yIGV4YW1wbGUsIHNheSBhbiBhY2NvdW50IGFkbWluaXN0cmF0b3IgaGFzIHR1cm5lZCBvZmYgYWxsIEF0aGVuYSBhY2Nlc3Mgd2l0aCBhbiBhY2NvdW50LXdpZGUgcm9sZS4gVGhlIGFkbWluaXN0cmF0b3IgY2FuIHRoZW4gdXNlIDxjb2RlPlJvbGVBcm48L2NvZGU+IHRvIGJ5cGFzcyB0aGUgYWNjb3VudC13aWRlIHJvbGUgYW5kIGFsbG93IEF0aGVuYSBhY2Nlc3MgZm9yIHRoZSBzaW5nbGUgQXRoZW5hIGRhdGEgc291cmNlIHRoYXQgaXMgc3BlY2lmaWVkIGluIHRoZSBzdHJ1Y3R1cmUsIGV2ZW4gaWYgdGhlIGFjY291bnQtd2lkZSByb2xlIGZvcmJpZGRpbmcgQXRoZW5hIGFjY2VzcyBpcyBzdGlsbCBhY3RpdmUuPC9wPlxuICovXG5Sb2xlQXJuPzogc3RyaW5nXG59XG4vKipcbiAqIDxwPlRoZSBwYXJhbWV0ZXJzIGZvciBhbiBJQU0gSWRlbnRpdHkgQ2VudGVyIGNvbmZpZ3VyYXRpb24uPC9wPlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElkZW50aXR5Q2VudGVyQ29uZmlndXJhdGlvbiB7XG4vKipcbiAqIDxwPkEgQm9vbGVhbiBvcHRpb24gdGhhdCBjb250cm9scyB3aGV0aGVyIFRydXN0ZWQgSWRlbnRpdHkgUHJvcGFnYXRpb24gc2hvdWxkIGJlIHVzZWQuPC9wPlxuICovXG5FbmFibGVJZGVudGl0eVByb3BhZ2F0aW9uPzogYm9vbGVhblxufVxuLyoqXG4gKiA8cD5UaGUgcGFyYW1ldGVycyBmb3IgU3BhcmsuPC9wPlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNwYXJrUGFyYW1ldGVycyB7XG4vKipcbiAqIDxwPlBvcnQuPC9wPlxuICovXG5Qb3J0OiBudW1iZXJcbi8qKlxuICogPHA+SG9zdC48L3A+XG4gKi9cbkhvc3Q6IHN0cmluZ1xufVxuLyoqXG4gKiA8cD5UaGUgcGFyYW1ldGVycyBmb3IgTWFyaWFEQi48L3A+XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWFyaWFEYlBhcmFtZXRlcnMge1xuLyoqXG4gKiA8cD5Qb3J0LjwvcD5cbiAqL1xuUG9ydDogbnVtYmVyXG4vKipcbiAqIDxwPkRhdGFiYXNlLjwvcD5cbiAqL1xuRGF0YWJhc2U6IHN0cmluZ1xuLyoqXG4gKiA8cD5Ib3N0LjwvcD5cbiAqL1xuSG9zdDogc3RyaW5nXG59XG4vKipcbiAqIDxwPlRoZSBwYXJhbWV0ZXJzIGZvciBPcmFjbGUuPC9wPlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE9yYWNsZVBhcmFtZXRlcnMge1xuVXNlU2VydmljZU5hbWU/OiBib29sZWFuXG4vKipcbiAqIDxwPlRoZSBwb3J0LjwvcD5cbiAqL1xuUG9ydDogbnVtYmVyXG4vKipcbiAqIDxwPlRoZSBkYXRhYmFzZS48L3A+XG4gKi9cbkRhdGFiYXNlOiBzdHJpbmdcbi8qKlxuICogPHA+QW4gT3JhY2xlIGhvc3QuPC9wPlxuICovXG5Ib3N0OiBzdHJpbmdcbn1cbi8qKlxuICogPHA+VGhlIHBhcmFtZXRlcnMgZm9yIFByZXN0by48L3A+XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJlc3RvUGFyYW1ldGVycyB7XG4vKipcbiAqIDxwPlBvcnQuPC9wPlxuICovXG5Qb3J0OiBudW1iZXJcbi8qKlxuICogPHA+SG9zdC48L3A+XG4gKi9cbkhvc3Q6IHN0cmluZ1xuLyoqXG4gKiA8cD5DYXRhbG9nLjwvcD5cbiAqL1xuQ2F0YWxvZzogc3RyaW5nXG59XG4vKipcbiAqIDxwPlRoZSBwYXJhbWV0ZXJzIHRoYXQgYXJlIHJlcXVpcmVkIHRvIGNvbm5lY3QgdG8gYSBTdGFyYnVyc3QgZGF0YSBzb3VyY2UuPC9wPlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0YXJidXJzdFBhcmFtZXRlcnMge1xuLyoqXG4gKiA8cD5UaGUgcG9ydCBmb3IgdGhlIFN0YXJidXJzdCBkYXRhIHNvdXJjZS48L3A+XG4gKi9cblBvcnQ6IG51bWJlclxuRGF0YWJhc2VBY2Nlc3NDb250cm9sUm9sZT86IHN0cmluZ1xuUHJvZHVjdFR5cGU/OiBTdGFyYnVyc3RQcm9kdWN0VHlwZVxuT0F1dGhQYXJhbWV0ZXJzPzogT0F1dGhQYXJhbWV0ZXJzXG4vKipcbiAqIDxwPlRoZSBob3N0IG5hbWUgb2YgdGhlIFN0YXJidXJzdCBkYXRhIHNvdXJjZS48L3A+XG4gKi9cbkhvc3Q6IHN0cmluZ1xuLyoqXG4gKiA8cD5UaGUgY2F0YWxvZyBuYW1lIGZvciB0aGUgU3RhcmJ1cnN0IGRhdGEgc291cmNlLjwvcD5cbiAqL1xuQ2F0YWxvZzogc3RyaW5nXG5BdXRoZW50aWNhdGlvblR5cGU/OiBBdXRoZW50aWNhdGlvblR5cGVcbn1cbmV4cG9ydCBpbnRlcmZhY2UgT0F1dGhQYXJhbWV0ZXJzIHtcblRva2VuUHJvdmlkZXJVcmw6IHN0cmluZ1xuT0F1dGhTY29wZT86IHN0cmluZ1xuSWRlbnRpdHlQcm92aWRlclZwY0Nvbm5lY3Rpb25Qcm9wZXJ0aWVzPzogVnBjQ29ubmVjdGlvblByb3BlcnRpZXNcbklkZW50aXR5UHJvdmlkZXJSZXNvdXJjZVVyaT86IHN0cmluZ1xufVxuLyoqXG4gKiA8cD5WUEMgY29ubmVjdGlvbiBwcm9wZXJ0aWVzLjwvcD5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBWcGNDb25uZWN0aW9uUHJvcGVydGllcyB7XG4vKipcbiAqIDxwPlRoZSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKSBmb3IgdGhlIFZQQyBjb25uZWN0aW9uLjwvcD5cbiAqL1xuVnBjQ29ubmVjdGlvbkFybjogc3RyaW5nXG59XG4vKipcbiAqIDxwPlRoZSBwYXJhbWV0ZXJzIGZvciBBbWF6b24gUmVkc2hpZnQuIFRoZSA8Y29kZT5DbHVzdGVySWQ8L2NvZGU+IGZpZWxkIGNhbiBiZSBibGFuayBpZlxuICogICAgICAgICAgICAgPGNvZGU+SG9zdDwvY29kZT4gYW5kIDxjb2RlPlBvcnQ8L2NvZGU+IGFyZSBib3RoIHNldC4gVGhlIDxjb2RlPkhvc3Q8L2NvZGU+IGFuZCA8Y29kZT5Qb3J0PC9jb2RlPiBmaWVsZHMgY2FuIGJlIGJsYW5rIGlmIHRoZSA8Y29kZT5DbHVzdGVySWQ8L2NvZGU+IGZpZWxkIGlzIHNldC48L3A+XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVkc2hpZnRQYXJhbWV0ZXJzIHtcbklBTVBhcmFtZXRlcnM/OiBSZWRzaGlmdElBTVBhcmFtZXRlcnNcbi8qKlxuICogPHA+Q2x1c3RlciBJRC4gVGhpcyBmaWVsZCBjYW4gYmUgYmxhbmsgaWYgdGhlIDxjb2RlPkhvc3Q8L2NvZGU+IGFuZCA8Y29kZT5Qb3J0PC9jb2RlPiBhcmVcbiAqICAgICAgICAgICAgIHByb3ZpZGVkLjwvcD5cbiAqL1xuQ2x1c3RlcklkPzogc3RyaW5nXG4vKipcbiAqIDxwPlBvcnQuIFRoaXMgZmllbGQgY2FuIGJlIGJsYW5rIGlmIHRoZSA8Y29kZT5DbHVzdGVySWQ8L2NvZGU+IGlzIHByb3ZpZGVkLjwvcD5cbiAqL1xuUG9ydD86IG51bWJlclxuLyoqXG4gKiA8cD5EYXRhYmFzZS48L3A+XG4gKi9cbkRhdGFiYXNlOiBzdHJpbmdcbi8qKlxuICogPHA+SG9zdC4gVGhpcyBmaWVsZCBjYW4gYmUgYmxhbmsgaWYgPGNvZGU+Q2x1c3RlcklkPC9jb2RlPiBpcyBwcm92aWRlZC48L3A+XG4gKi9cbkhvc3Q/OiBzdHJpbmdcbklkZW50aXR5Q2VudGVyQ29uZmlndXJhdGlvbj86IElkZW50aXR5Q2VudGVyQ29uZmlndXJhdGlvblxufVxuLyoqXG4gKiA8cD5BIHN0cnVjdHVyZSB0aGF0IGdyYW50cyBBbWF6b24gUXVpY2tTaWdodCBhY2Nlc3MgdG8geW91ciBjbHVzdGVyIGFuZCBtYWtlIGEgY2FsbCB0byB0aGUgPGNvZGU+cmVkc2hpZnQ6R2V0Q2x1c3RlckNyZWRlbnRpYWxzPC9jb2RlPiBBUEkuIEZvciBtb3JlIGluZm9ybWF0aW9uIG9uIHRoZSA8Y29kZT5yZWRzaGlmdDpHZXRDbHVzdGVyQ3JlZGVudGlhbHM8L2NvZGU+IEFQSSwgc2VlIDxhIGhyZWY9XCJodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vcmVkc2hpZnQvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfR2V0Q2x1c3RlckNyZWRlbnRpYWxzLmh0bWxcIj5cbiAqICAgICAgICAgICAgICAgIDxjb2RlPkdldENsdXN0ZXJDcmVkZW50aWFsczwvY29kZT5cbiAqICAgICAgICAgICAgIDwvYT4uPC9wPlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlZHNoaWZ0SUFNUGFyYW1ldGVycyB7XG4vKipcbiAqIDxwPkF1dG9tYXRpY2FsbHkgY3JlYXRlcyBhIGRhdGFiYXNlIHVzZXIuIElmIHlvdXIgZGF0YWJhc2UgZG9lc24ndCBoYXZlIGEgPGNvZGU+RGF0YWJhc2VVc2VyPC9jb2RlPiwgc2V0IHRoaXMgcGFyYW1ldGVyIHRvIDxjb2RlPlRydWU8L2NvZGU+LiBJZiB0aGVyZSBpcyBubyA8Y29kZT5EYXRhYmFzZVVzZXI8L2NvZGU+LCBBbWF6b24gUXVpY2tTaWdodCBjYW4ndCBjb25uZWN0IHRvIHlvdXIgY2x1c3Rlci4gVGhlIDxjb2RlPlJvbGVBcm48L2NvZGU+IHRoYXQgeW91IHVzZSBmb3IgdGhpcyBvcGVyYXRpb24gbXVzdCBncmFudCBhY2Nlc3MgdG8gPGNvZGU+cmVkc2hpZnQ6Q3JlYXRlQ2x1c3RlclVzZXI8L2NvZGU+IHRvIHN1Y2Nlc3NmdWxseSBjcmVhdGUgdGhlIHVzZXIuPC9wPlxuICovXG5BdXRvQ3JlYXRlRGF0YWJhc2VVc2VyPzogYm9vbGVhblxuLyoqXG4gKiA8cD5UaGUgdXNlciB3aG9zZSBwZXJtaXNzaW9ucyBhbmQgZ3JvdXAgbWVtYmVyc2hpcHMgd2lsbCBiZSB1c2VkIGJ5IEFtYXpvbiBRdWlja1NpZ2h0IHRvIGFjY2VzcyB0aGUgY2x1c3Rlci4gSWYgdGhpcyB1c2VyIGFscmVhZHkgZXhpc3RzIGluIHlvdXIgZGF0YWJhc2UsIEFtYXpvbiBRdWlja1NpZ2h0IGlzIGdyYW50ZWQgdGhlIHNhbWUgcGVybWlzc2lvbnMgdGhhdCB0aGUgdXNlciBoYXMuIElmIHRoZSB1c2VyIGRvZXNuJ3QgZXhpc3QsIHNldCB0aGUgdmFsdWUgb2YgPGNvZGU+QXV0b0NyZWF0ZURhdGFiYXNlVXNlcjwvY29kZT4gdG8gPGNvZGU+VHJ1ZTwvY29kZT4gdG8gY3JlYXRlIGEgbmV3IHVzZXIgd2l0aCBQVUJMSUMgcGVybWlzc2lvbnMuPC9wPlxuICovXG5EYXRhYmFzZVVzZXI/OiBzdHJpbmdcbi8qKlxuICogPHA+VXNlIHRoZSA8Y29kZT5Sb2xlQXJuPC9jb2RlPiBzdHJ1Y3R1cmUgdG8gYWxsb3cgQW1hem9uIFF1aWNrU2lnaHQgdG8gY2FsbCA8Y29kZT5yZWRzaGlmdDpHZXRDbHVzdGVyQ3JlZGVudGlhbHM8L2NvZGU+IG9uIHlvdXIgY2x1c3Rlci4gVGhlIGNhbGxpbmcgcHJpbmNpcGFsIG11c3QgaGF2ZSA8Y29kZT5pYW06UGFzc1JvbGU8L2NvZGU+IGFjY2VzcyB0byBwYXNzIHRoZSByb2xlIHRvIEFtYXpvbiBRdWlja1NpZ2h0LiBUaGUgcm9sZSdzIHRydXN0IHBvbGljeSBtdXN0IGFsbG93IHRoZSBBbWF6b24gUXVpY2tTaWdodCBzZXJ2aWNlIHByaW5jaXBhbCB0byBhc3N1bWUgdGhlIHJvbGUuPC9wPlxuICovXG5Sb2xlQXJuOiBzdHJpbmdcbi8qKlxuICogPHA+QSBsaXN0IG9mIGdyb3VwcyB3aG9zZSBwZXJtaXNzaW9ucyB3aWxsIGJlIGdyYW50ZWQgdG8gQW1hem9uIFF1aWNrU2lnaHQgdG8gYWNjZXNzIHRoZSBjbHVzdGVyLiBUaGVzZSBwZXJtaXNzaW9ucyBhcmUgY29tYmluZWQgd2l0aCB0aGUgcGVybWlzc2lvbnMgZ3JhbnRlZCB0byBBbWF6b24gUXVpY2tTaWdodCBieSB0aGUgPGNvZGU+RGF0YWJhc2VVc2VyPC9jb2RlPi4gSWYgeW91IGNob29zZSB0byBpbmNsdWRlIHRoaXMgcGFyYW1ldGVyLCB0aGUgPGNvZGU+Um9sZUFybjwvY29kZT4gbXVzdCBncmFudCBhY2Nlc3MgdG8gPGNvZGU+cmVkc2hpZnQ6Sm9pbkdyb3VwPC9jb2RlPi48L3A+XG4gKiBcbiAqIEBtaW5JdGVtcyAxXG4gKiBAbWF4SXRlbXMgNTBcbiAqL1xuRGF0YWJhc2VHcm91cHM/OiBzdHJpbmdbXVxufVxuLyoqXG4gKiA8cD5UaGUgcGFyYW1ldGVycyBmb3IgTXlTUUwuPC9wPlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE15U3FsUGFyYW1ldGVycyB7XG4vKipcbiAqIDxwPlBvcnQuPC9wPlxuICovXG5Qb3J0OiBudW1iZXJcbi8qKlxuICogPHA+RGF0YWJhc2UuPC9wPlxuICovXG5EYXRhYmFzZTogc3RyaW5nXG4vKipcbiAqIDxwPkhvc3QuPC9wPlxuICovXG5Ib3N0OiBzdHJpbmdcbn1cbi8qKlxuICogPHA+VGhlIHBhcmFtZXRlcnMgZm9yIFNRTCBTZXJ2ZXIuPC9wPlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNxbFNlcnZlclBhcmFtZXRlcnMge1xuLyoqXG4gKiA8cD5Qb3J0LjwvcD5cbiAqL1xuUG9ydDogbnVtYmVyXG4vKipcbiAqIDxwPkRhdGFiYXNlLjwvcD5cbiAqL1xuRGF0YWJhc2U6IHN0cmluZ1xuLyoqXG4gKiA8cD5Ib3N0LjwvcD5cbiAqL1xuSG9zdDogc3RyaW5nXG59XG4vKipcbiAqIDxwPlRoZSBwYXJhbWV0ZXJzIGZvciBTbm93Zmxha2UuPC9wPlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNub3dmbGFrZVBhcmFtZXRlcnMge1xuLyoqXG4gKiA8cD5XYXJlaG91c2UuPC9wPlxuICovXG5XYXJlaG91c2U6IHN0cmluZ1xuRGF0YWJhc2VBY2Nlc3NDb250cm9sUm9sZT86IHN0cmluZ1xuLyoqXG4gKiA8cD5EYXRhYmFzZS48L3A+XG4gKi9cbkRhdGFiYXNlOiBzdHJpbmdcbk9BdXRoUGFyYW1ldGVycz86IE9BdXRoUGFyYW1ldGVyc1xuLyoqXG4gKiA8cD5Ib3N0LjwvcD5cbiAqL1xuSG9zdDogc3RyaW5nXG5BdXRoZW50aWNhdGlvblR5cGU/OiBBdXRoZW50aWNhdGlvblR5cGVcbn1cbi8qKlxuICogPHA+VGhlIHBhcmFtZXRlcnMgZm9yIE9wZW5TZWFyY2guPC9wPlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFtYXpvbkVsYXN0aWNzZWFyY2hQYXJhbWV0ZXJzIHtcbi8qKlxuICogPHA+VGhlIE9wZW5TZWFyY2ggZG9tYWluLjwvcD5cbiAqL1xuRG9tYWluOiBzdHJpbmdcbn1cbi8qKlxuICogPHA+VGhlIHBhcmFtZXRlcnMgZm9yIE9wZW5TZWFyY2guPC9wPlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFtYXpvbk9wZW5TZWFyY2hQYXJhbWV0ZXJzIHtcbi8qKlxuICogPHA+VGhlIE9wZW5TZWFyY2ggZG9tYWluLjwvcD5cbiAqL1xuRG9tYWluOiBzdHJpbmdcbn1cbi8qKlxuICogPHA+VGhlIHBhcmFtZXRlcnMgZm9yIFBvc3RncmVTUUwuPC9wPlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBvc3RncmVTcWxQYXJhbWV0ZXJzIHtcbi8qKlxuICogPHA+UG9ydC48L3A+XG4gKi9cblBvcnQ6IG51bWJlclxuLyoqXG4gKiA8cD5EYXRhYmFzZS48L3A+XG4gKi9cbkRhdGFiYXNlOiBzdHJpbmdcbi8qKlxuICogPHA+SG9zdC48L3A+XG4gKi9cbkhvc3Q6IHN0cmluZ1xufVxuLyoqXG4gKiA8cD5QYXJhbWV0ZXJzIGZvciBBbWF6b24gQXVyb3JhLjwvcD5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBdXJvcmFQYXJhbWV0ZXJzIHtcbi8qKlxuICogPHA+UG9ydC48L3A+XG4gKi9cblBvcnQ6IG51bWJlclxuLyoqXG4gKiA8cD5EYXRhYmFzZS48L3A+XG4gKi9cbkRhdGFiYXNlOiBzdHJpbmdcbi8qKlxuICogPHA+SG9zdC48L3A+XG4gKi9cbkhvc3Q6IHN0cmluZ1xufVxuLyoqXG4gKiA8cD5UaGUgcGFyYW1ldGVycyBmb3IgUzMuPC9wPlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFMzUGFyYW1ldGVycyB7XG5NYW5pZmVzdEZpbGVMb2NhdGlvbjogTWFuaWZlc3RGaWxlTG9jYXRpb25cbi8qKlxuICogPHA+VXNlIHRoZSA8Y29kZT5Sb2xlQXJuPC9jb2RlPiBzdHJ1Y3R1cmUgdG8gb3ZlcnJpZGUgYW4gYWNjb3VudC13aWRlIHJvbGUgZm9yIGEgc3BlY2lmaWMgUzMgZGF0YSBzb3VyY2UuIEZvciBleGFtcGxlLCBzYXkgYW4gYWNjb3VudCBhZG1pbmlzdHJhdG9yIGhhcyB0dXJuZWQgb2ZmIGFsbCBTMyBhY2Nlc3Mgd2l0aCBhbiBhY2NvdW50LXdpZGUgcm9sZS4gVGhlIGFkbWluaXN0cmF0b3IgY2FuIHRoZW4gdXNlIDxjb2RlPlJvbGVBcm48L2NvZGU+IHRvIGJ5cGFzcyB0aGUgYWNjb3VudC13aWRlIHJvbGUgYW5kIGFsbG93IFMzIGFjY2VzcyBmb3IgdGhlIHNpbmdsZSBTMyBkYXRhIHNvdXJjZSB0aGF0IGlzIHNwZWNpZmllZCBpbiB0aGUgc3RydWN0dXJlLCBldmVuIGlmIHRoZSBhY2NvdW50LXdpZGUgcm9sZSBmb3JiaWRkaW5nIFMzIGFjY2VzcyBpcyBzdGlsbCBhY3RpdmUuPC9wPlxuICovXG5Sb2xlQXJuPzogc3RyaW5nXG59XG4vKipcbiAqIDxwPkFtYXpvbiBTMyBtYW5pZmVzdCBmaWxlIGxvY2F0aW9uLjwvcD5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNYW5pZmVzdEZpbGVMb2NhdGlvbiB7XG4vKipcbiAqIDxwPkFtYXpvbiBTMyBidWNrZXQuPC9wPlxuICovXG5CdWNrZXQ6IHN0cmluZ1xuLyoqXG4gKiA8cD5BbWF6b24gUzMga2V5IHRoYXQgaWRlbnRpZmllcyBhbiBvYmplY3QuPC9wPlxuICovXG5LZXk6IHN0cmluZ1xufVxuLyoqXG4gKiA8cD5UaGUgcGFyYW1ldGVycyB0aGF0IGFyZSByZXF1aXJlZCB0byBjb25uZWN0IHRvIGEgVHJpbm8gZGF0YSBzb3VyY2UuPC9wPlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRyaW5vUGFyYW1ldGVycyB7XG4vKipcbiAqIDxwPlRoZSBwb3J0IGZvciB0aGUgVHJpbm8gZGF0YSBzb3VyY2UuPC9wPlxuICovXG5Qb3J0OiBudW1iZXJcbi8qKlxuICogPHA+VGhlIGhvc3QgbmFtZSBvZiB0aGUgVHJpbm8gZGF0YSBzb3VyY2UuPC9wPlxuICovXG5Ib3N0OiBzdHJpbmdcbi8qKlxuICogPHA+VGhlIGNhdGFsb2cgbmFtZSBmb3IgdGhlIFRyaW5vIGRhdGEgc291cmNlLjwvcD5cbiAqL1xuQ2F0YWxvZzogc3RyaW5nXG59XG4vKipcbiAqIDxwPlRoZSBwYXJhbWV0ZXJzIHRoYXQgYXJlIHJlcXVpcmVkIHRvIGNvbm5lY3QgdG8gYSBEYXRhYnJpY2tzIGRhdGEgc291cmNlLjwvcD5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEYXRhYnJpY2tzUGFyYW1ldGVycyB7XG4vKipcbiAqIDxwPlRoZSBwb3J0IGZvciB0aGUgRGF0YWJyaWNrcyBkYXRhIHNvdXJjZS48L3A+XG4gKi9cblBvcnQ6IG51bWJlclxuLyoqXG4gKiA8cD5UaGUgaG9zdCBuYW1lIG9mIHRoZSBEYXRhYnJpY2tzIGRhdGEgc291cmNlLjwvcD5cbiAqL1xuSG9zdDogc3RyaW5nXG4vKipcbiAqIDxwPlRoZSBIVFRQIHBhdGggb2YgdGhlIERhdGFicmlja3MgZGF0YSBzb3VyY2UuPC9wPlxuICovXG5TcWxFbmRwb2ludFBhdGg6IHN0cmluZ1xufVxuLyoqXG4gKiA8cD5QZXJtaXNzaW9uIGZvciB0aGUgcmVzb3VyY2UuPC9wPlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlc291cmNlUGVybWlzc2lvbiB7XG4vKipcbiAqIDxwPlRoZSBJQU0gYWN0aW9uIHRvIGdyYW50IG9yIHJldm9rZSBwZXJtaXNzaW9ucyBvbi48L3A+XG4gKiBcbiAqIEBtaW5JdGVtcyAxXG4gKiBAbWF4SXRlbXMgMjBcbiAqL1xuQWN0aW9uczogc3RyaW5nW11cblJlc291cmNlPzogc3RyaW5nXG4vKipcbiAqIDxwPlRoZSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKSBvZiB0aGUgcHJpbmNpcGFsLiBUaGlzIGNhbiBiZSBvbmUgb2YgdGhlXG4gKiAgICAgICAgICAgICBmb2xsb3dpbmc6PC9wPlxuICogICAgICAgICAgPHVsPlxuICogICAgICAgICAgICAgPGxpPlxuICogICAgICAgICAgICAgICAgPHA+VGhlIEFSTiBvZiBhbiBBbWF6b24gUXVpY2tTaWdodCB1c2VyIG9yIGdyb3VwIGFzc29jaWF0ZWQgd2l0aCBhIGRhdGEgc291cmNlIG9yIGRhdGFzZXQuIChUaGlzIGlzIGNvbW1vbi4pPC9wPlxuICogICAgICAgICAgICAgPC9saT5cbiAqICAgICAgICAgICAgIDxsaT5cbiAqICAgICAgICAgICAgICAgIDxwPlRoZSBBUk4gb2YgYW4gQW1hem9uIFF1aWNrU2lnaHQgdXNlciwgZ3JvdXAsIG9yIG5hbWVzcGFjZSBhc3NvY2lhdGVkIHdpdGggYW4gYW5hbHlzaXMsIGRhc2hib2FyZCwgdGVtcGxhdGUsIG9yIHRoZW1lLiAoVGhpcyBpcyBjb21tb24uKTwvcD5cbiAqICAgICAgICAgICAgIDwvbGk+XG4gKiAgICAgICAgICAgICA8bGk+XG4gKiAgICAgICAgICAgICAgICA8cD5UaGUgQVJOIG9mIGFuIEFtYXpvbiBXZWIgU2VydmljZXMgYWNjb3VudCByb290OiBUaGlzIGlzIGFuIElBTSBBUk4gcmF0aGVyIHRoYW4gYSBRdWlja1NpZ2h0XG4gKiAgICAgICAgICAgICAgICAgICAgIEFSTi4gVXNlIHRoaXMgb3B0aW9uIG9ubHkgdG8gc2hhcmUgcmVzb3VyY2VzICh0ZW1wbGF0ZXMpIGFjcm9zcyBBbWF6b24gV2ViIFNlcnZpY2VzIGFjY291bnRzLlxuICogICAgICAgICAgICAgICAgICAgICAoVGhpcyBpcyBsZXNzIGNvbW1vbi4pIDwvcD5cbiAqICAgICAgICAgICAgIDwvbGk+XG4gKiAgICAgICAgICA8L3VsPlxuICovXG5QcmluY2lwYWw6IHN0cmluZ1xufVxuLyoqXG4gKiA8cD5TZWN1cmUgU29ja2V0IExheWVyIChTU0wpIHByb3BlcnRpZXMgdGhhdCBhcHBseSB3aGVuIEFtYXpvbiBRdWlja1NpZ2h0IGNvbm5lY3RzIHRvIHlvdXJcbiAqICAgICAgICAgICAgIHVuZGVybHlpbmcgZGF0YSBzb3VyY2UuPC9wPlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNzbFByb3BlcnRpZXMge1xuLyoqXG4gKiA8cD5BIEJvb2xlYW4gb3B0aW9uIHRvIGNvbnRyb2wgd2hldGhlciBTU0wgc2hvdWxkIGJlIGRpc2FibGVkLjwvcD5cbiAqL1xuRGlzYWJsZVNzbD86IGJvb2xlYW5cbn1cbi8qKlxuICogPHA+RGF0YSBzb3VyY2UgY3JlZGVudGlhbHMuIFRoaXMgaXMgYSB2YXJpYW50IHR5cGUgc3RydWN0dXJlLiBGb3IgdGhpcyBzdHJ1Y3R1cmUgdG8gYmVcbiAqICAgICAgICAgICAgIHZhbGlkLCBvbmx5IG9uZSBvZiB0aGUgYXR0cmlidXRlcyBjYW4gYmUgbm9uLW51bGwuPC9wPlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERhdGFTb3VyY2VDcmVkZW50aWFscyB7XG4vKipcbiAqIDxwPlRoZSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKSBvZiB0aGUgc2VjcmV0IGFzc29jaWF0ZWQgd2l0aCB0aGUgZGF0YSBzb3VyY2UgaW4gQW1hem9uIFNlY3JldHMgTWFuYWdlci48L3A+XG4gKi9cblNlY3JldEFybj86IHN0cmluZ1xuLyoqXG4gKiA8cD5UaGUgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTikgb2YgYSBkYXRhIHNvdXJjZSB0aGF0IGhhcyB0aGUgY3JlZGVudGlhbCBwYWlyIHRoYXQgeW91XG4gKiAgICAgICAgICAgICB3YW50IHRvIHVzZS4gV2hlbiA8Y29kZT5Db3B5U291cmNlQXJuPC9jb2RlPiBpcyBub3QgbnVsbCwgdGhlIGNyZWRlbnRpYWwgcGFpciBmcm9tIHRoZVxuICogICAgICAgICAgICAgZGF0YSBzb3VyY2UgaW4gdGhlIEFSTiBpcyB1c2VkIGFzIHRoZSBjcmVkZW50aWFscyBmb3IgdGhlXG4gKiAgICAgICAgICAgICA8Y29kZT5EYXRhU291cmNlQ3JlZGVudGlhbHM8L2NvZGU+IHN0cnVjdHVyZS48L3A+XG4gKi9cbkNvcHlTb3VyY2VBcm4/OiBzdHJpbmdcbkNyZWRlbnRpYWxQYWlyPzogQ3JlZGVudGlhbFBhaXJcbn1cbi8qKlxuICogPHA+VGhlIGNvbWJpbmF0aW9uIG9mIHVzZXIgbmFtZSBhbmQgcGFzc3dvcmQgdGhhdCBhcmUgdXNlZCBhcyBjcmVkZW50aWFscy48L3A+XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlZGVudGlhbFBhaXIge1xuLyoqXG4gKiA8cD5BIHNldCBvZiBhbHRlcm5hdGUgZGF0YSBzb3VyY2UgcGFyYW1ldGVycyB0aGF0IHlvdSB3YW50IHRvIHNoYXJlIGZvciB0aGVzZVxuICogICAgICAgICAgICAgY3JlZGVudGlhbHMuIFRoZSBjcmVkZW50aWFscyBhcmUgYXBwbGllZCBpbiB0YW5kZW0gd2l0aCB0aGUgZGF0YSBzb3VyY2UgcGFyYW1ldGVycyB3aGVuXG4gKiAgICAgICAgICAgICB5b3UgY29weSBhIGRhdGEgc291cmNlIGJ5IHVzaW5nIGEgY3JlYXRlIG9yIHVwZGF0ZSByZXF1ZXN0LiBUaGUgQVBJIG9wZXJhdGlvbiBjb21wYXJlc1xuICogICAgICAgICAgICAgdGhlIDxjb2RlPkRhdGFTb3VyY2VQYXJhbWV0ZXJzPC9jb2RlPiBzdHJ1Y3R1cmUgdGhhdCdzIGluIHRoZSByZXF1ZXN0IHdpdGggdGhlXG4gKiAgICAgICAgICAgICBzdHJ1Y3R1cmVzIGluIHRoZSA8Y29kZT5BbHRlcm5hdGVEYXRhU291cmNlUGFyYW1ldGVyczwvY29kZT4gYWxsb3cgbGlzdC4gSWYgdGhlXG4gKiAgICAgICAgICAgICBzdHJ1Y3R1cmVzIGFyZSBhbiBleGFjdCBtYXRjaCwgdGhlIHJlcXVlc3QgaXMgYWxsb3dlZCB0byB1c2UgdGhlIG5ldyBkYXRhIHNvdXJjZSB3aXRoXG4gKiAgICAgICAgICAgICB0aGUgZXhpc3RpbmcgY3JlZGVudGlhbHMuIElmIHRoZSA8Y29kZT5BbHRlcm5hdGVEYXRhU291cmNlUGFyYW1ldGVyczwvY29kZT4gbGlzdCBpc1xuICogICAgICAgICAgICAgbnVsbCwgdGhlIDxjb2RlPkRhdGFTb3VyY2VQYXJhbWV0ZXJzPC9jb2RlPiBvcmlnaW5hbGx5IHVzZWQgd2l0aCB0aGVzZVxuICogICAgICAgICAgICAgICAgIDxjb2RlPkNyZWRlbnRpYWxzPC9jb2RlPiBpcyBhdXRvbWF0aWNhbGx5IGFsbG93ZWQuPC9wPlxuICogXG4gKiBAbWluSXRlbXMgMVxuICogQG1heEl0ZW1zIDUwXG4gKi9cbkFsdGVybmF0ZURhdGFTb3VyY2VQYXJhbWV0ZXJzPzogRGF0YVNvdXJjZVBhcmFtZXRlcnNbXVxuLyoqXG4gKiA8cD5Vc2VyIG5hbWUuPC9wPlxuICovXG5Vc2VybmFtZTogc3RyaW5nXG4vKipcbiAqIDxwPlBhc3N3b3JkLjwvcD5cbiAqL1xuUGFzc3dvcmQ6IHN0cmluZ1xufVxuLyoqXG4gKiA8cD5UaGUga2V5IG9yIGtleXMgb2YgdGhlIGtleS12YWx1ZSBwYWlycyBmb3IgdGhlIHJlc291cmNlIHRhZyBvciB0YWdzIGFzc2lnbmVkIHRvIHRoZVxuICogICAgICAgICAgICAgcmVzb3VyY2UuPC9wPlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRhZyB7XG4vKipcbiAqIDxwPlRhZyB2YWx1ZS48L3A+XG4gKi9cblZhbHVlOiBzdHJpbmdcbi8qKlxuICogPHA+VGFnIGtleS48L3A+XG4gKi9cbktleTogc3RyaW5nXG59XG4iXX0=
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLXF1aWNrc2lnaHQtZGF0YXNvdXJjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImF3cy1xdWlja3NpZ2h0LWRhdGFzb3VyY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIFJlc291cmNlU3RhdHVzID0gKFwiQ1JFQVRJT05fSU5fUFJPR1JFU1NcIiB8IFwiQ1JFQVRJT05fU1VDQ0VTU0ZVTFwiIHwgXCJDUkVBVElPTl9GQUlMRURcIiB8IFwiVVBEQVRFX0lOX1BST0dSRVNTXCIgfCBcIlVQREFURV9TVUNDRVNTRlVMXCIgfCBcIlVQREFURV9GQUlMRURcIiB8IFwiUEVORElOR19VUERBVEVcIiB8IFwiREVMRVRFRFwiKVxuZXhwb3J0IHR5cGUgRGF0YVNvdXJjZUVycm9ySW5mb1R5cGUgPSAoXCJBQ0NFU1NfREVOSUVEXCIgfCBcIkNPUFlfU09VUkNFX05PVF9GT1VORFwiIHwgXCJUSU1FT1VUXCIgfCBcIkVOR0lORV9WRVJTSU9OX05PVF9TVVBQT1JURURcIiB8IFwiVU5LTk9XTl9IT1NUXCIgfCBcIkdFTkVSSUNfU1FMX0ZBSUxVUkVcIiB8IFwiQ09ORkxJQ1RcIiB8IFwiVU5LTk9XTlwiKVxuZXhwb3J0IHR5cGUgU3RhcmJ1cnN0UHJvZHVjdFR5cGUgPSAoXCJHQUxBWFlcIiB8IFwiRU5URVJQUklTRVwiKVxuZXhwb3J0IHR5cGUgQXV0aGVudGljYXRpb25UeXBlID0gKFwiUEFTU1dPUkRcIiB8IFwiVE9LRU5cIiB8IFwiWDUwOVwiIHwgXCJLRVlQQUlSXCIpXG5leHBvcnQgdHlwZSBEYXRhU291cmNlVHlwZSA9IChcIkFET0JFX0FOQUxZVElDU1wiIHwgXCJBTUFaT05fRUxBU1RJQ1NFQVJDSFwiIHwgXCJBTUFaT05fT1BFTlNFQVJDSFwiIHwgXCJBVEhFTkFcIiB8IFwiQVVST1JBXCIgfCBcIkFVUk9SQV9QT1NUR1JFU1FMXCIgfCBcIkFXU19JT1RfQU5BTFlUSUNTXCIgfCBcIkRBVEFCUklDS1NcIiB8IFwiREVOT0RPXCIgfCBcIkRSRU1JT1wiIHwgXCJEWU5BTU9EQlwiIHwgXCJTQVBIQU5BXCIgfCBcIkRCMl9BUzQwMFwiIHwgXCJFWEFTT0xcIiB8IFwiRklMRVwiIHwgXCJHSVRIVUJcIiB8IFwiSU5URVJOQVRJT05BTF9EQVRBX0NPUlBPUkFUSU9OXCIgfCBcIkpJUkFcIiB8IFwiTUFSSUFEQlwiIHwgXCJNWVNRTFwiIHwgXCJPUkFDTEVcIiB8IFwiUE9TVEdSRVNRTFwiIHwgXCJQUkVTVE9cIiB8IFwiUUJVU0lORVNTXCIgfCBcIlJFRFNISUZUXCIgfCBcIlMzXCIgfCBcIlMzX1RBQkxFU1wiIHwgXCJTM19LTk9XTEVER0VfQkFTRVwiIHwgXCJTQUxFU0ZPUkNFXCIgfCBcIlNFUlZJQ0VOT1dcIiB8IFwiU05PV0ZMQUtFXCIgfCBcIlNQQVJLXCIgfCBcIlNQSUNFXCIgfCBcIlNRTFNFUlZFUlwiIHwgXCJURVJBREFUQVwiIHwgXCJUSU1FU1RSRUFNXCIgfCBcIlRXSVRURVJcIiB8IFwiQklHUVVFUllcIiB8IFwiR09PR0xFX0FOQUxZVElDU1wiIHwgXCJUUklOT1wiIHwgXCJTVEFSQlVSU1RcIiB8IFwiTU9OR09cIiB8IFwiTU9OR09fQVRMQVNcIiB8IFwiRE9DVU1FTlREQlwiIHwgXCJBUFBGTE9XXCIgfCBcIklNUEFMQVwiIHwgXCJHTFVFXCIgfCBcIkdPT0dMRV9EUklWRVwiIHwgXCJDT05GTFVFTkNFXCIgfCBcIlNIQVJFUE9JTlRcIiB8IFwiT05FX0RSSVZFXCIgfCBcIldFQl9DUkFXTEVSXCIpXG5cbi8qKlxuICogRGVmaW5pdGlvbiBvZiB0aGUgQVdTOjpRdWlja1NpZ2h0OjpEYXRhU291cmNlIFJlc291cmNlIFR5cGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgX0FXU19RVUlDS1NJR0hUX0RBVEFTT1VSQ0Uge1xuU3RhdHVzPzogUmVzb3VyY2VTdGF0dXNcbi8qKlxuICogPHA+VGhlIHRpbWUgdGhhdCB0aGlzIGRhdGEgc291cmNlIHdhcyBjcmVhdGVkLjwvcD5cbiAqL1xuQ3JlYXRlZFRpbWU/OiBzdHJpbmdcbkVycm9ySW5mbz86IERhdGFTb3VyY2VFcnJvckluZm9cbi8qKlxuICogPHA+VGhlIGxhc3QgdGltZSB0aGF0IHRoaXMgZGF0YSBzb3VyY2Ugd2FzIHVwZGF0ZWQuPC9wPlxuICovXG5MYXN0VXBkYXRlZFRpbWU/OiBzdHJpbmdcbi8qKlxuICogQG1pbkl0ZW1zIDBcbiAqIEBtYXhJdGVtcyAxMFxuICovXG5Gb2xkZXJBcm5zPzogc3RyaW5nW11cbk5hbWU6IHN0cmluZ1xuRGF0YVNvdXJjZVBhcmFtZXRlcnM/OiBEYXRhU291cmNlUGFyYW1ldGVyc1xuVHlwZTogRGF0YVNvdXJjZVR5cGVcblZwY0Nvbm5lY3Rpb25Qcm9wZXJ0aWVzPzogVnBjQ29ubmVjdGlvblByb3BlcnRpZXNcbi8qKlxuICogPHA+QSBzZXQgb2YgYWx0ZXJuYXRlIGRhdGEgc291cmNlIHBhcmFtZXRlcnMgdGhhdCB5b3Ugd2FudCB0byBzaGFyZSBmb3IgdGhlIGNyZWRlbnRpYWxzXG4gKiAgICAgICAgICAgICBzdG9yZWQgd2l0aCB0aGlzIGRhdGEgc291cmNlLiBUaGUgY3JlZGVudGlhbHMgYXJlIGFwcGxpZWQgaW4gdGFuZGVtIHdpdGggdGhlIGRhdGEgc291cmNlXG4gKiAgICAgICAgICAgICBwYXJhbWV0ZXJzIHdoZW4geW91IGNvcHkgYSBkYXRhIHNvdXJjZSBieSB1c2luZyBhIGNyZWF0ZSBvciB1cGRhdGUgcmVxdWVzdC4gVGhlIEFQSVxuICogICAgICAgICAgICAgb3BlcmF0aW9uIGNvbXBhcmVzIHRoZSA8Y29kZT5EYXRhU291cmNlUGFyYW1ldGVyczwvY29kZT4gc3RydWN0dXJlIHRoYXQncyBpbiB0aGUgcmVxdWVzdFxuICogICAgICAgICAgICAgd2l0aCB0aGUgc3RydWN0dXJlcyBpbiB0aGUgPGNvZGU+QWx0ZXJuYXRlRGF0YVNvdXJjZVBhcmFtZXRlcnM8L2NvZGU+IGFsbG93IGxpc3QuIElmIHRoZVxuICogICAgICAgICAgICAgc3RydWN0dXJlcyBhcmUgYW4gZXhhY3QgbWF0Y2gsIHRoZSByZXF1ZXN0IGlzIGFsbG93ZWQgdG8gdXNlIHRoZSBjcmVkZW50aWFscyBmcm9tIHRoaXNcbiAqICAgICAgICAgICAgIGV4aXN0aW5nIGRhdGEgc291cmNlLiBJZiB0aGUgPGNvZGU+QWx0ZXJuYXRlRGF0YVNvdXJjZVBhcmFtZXRlcnM8L2NvZGU+IGxpc3QgaXMgbnVsbCxcbiAqICAgICAgICAgICAgIHRoZSA8Y29kZT5DcmVkZW50aWFsczwvY29kZT4gb3JpZ2luYWxseSB1c2VkIHdpdGggdGhpcyA8Y29kZT5EYXRhU291cmNlUGFyYW1ldGVyczwvY29kZT5cbiAqICAgICAgICAgICAgIGFyZSBhdXRvbWF0aWNhbGx5IGFsbG93ZWQuPC9wPlxuICogXG4gKiBAbWluSXRlbXMgMVxuICogQG1heEl0ZW1zIDUwXG4gKi9cbkFsdGVybmF0ZURhdGFTb3VyY2VQYXJhbWV0ZXJzPzogRGF0YVNvdXJjZVBhcmFtZXRlcnNbXVxuQXdzQWNjb3VudElkPzogc3RyaW5nXG4vKipcbiAqIEBtaW5JdGVtcyAxXG4gKiBAbWF4SXRlbXMgNjRcbiAqL1xuUGVybWlzc2lvbnM/OiBSZXNvdXJjZVBlcm1pc3Npb25bXVxuLyoqXG4gKiA8cD5UaGUgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTikgb2YgdGhlIGRhdGEgc291cmNlLjwvcD5cbiAqL1xuQXJuPzogc3RyaW5nXG5Tc2xQcm9wZXJ0aWVzPzogU3NsUHJvcGVydGllc1xuQ3JlZGVudGlhbHM/OiBEYXRhU291cmNlQ3JlZGVudGlhbHNcbkRhdGFTb3VyY2VJZD86IHN0cmluZ1xuLyoqXG4gKiBAbWluSXRlbXMgMVxuICogQG1heEl0ZW1zIDIwMFxuICovXG5UYWdzPzogVGFnW11cbn1cbi8qKlxuICogPHA+RXJyb3IgaW5mb3JtYXRpb24gZm9yIHRoZSBkYXRhIHNvdXJjZSBjcmVhdGlvbiBvciB1cGRhdGUuPC9wPlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERhdGFTb3VyY2VFcnJvckluZm8ge1xuVHlwZT86IERhdGFTb3VyY2VFcnJvckluZm9UeXBlXG4vKipcbiAqIDxwPkVycm9yIG1lc3NhZ2UuPC9wPlxuICovXG5NZXNzYWdlPzogc3RyaW5nXG59XG4vKipcbiAqIDxwPlRoZSBwYXJhbWV0ZXJzIHRoYXQgQW1hem9uIFF1aWNrIFN1aXRlIHVzZXMgdG8gY29ubmVjdCB0byB5b3VyIHVuZGVybHlpbmcgZGF0YSBzb3VyY2UuXG4gKiAgICAgICAgICAgICBUaGlzIGlzIGEgdmFyaWFudCB0eXBlIHN0cnVjdHVyZS4gRm9yIHRoaXMgc3RydWN0dXJlIHRvIGJlIHZhbGlkLCBvbmx5IG9uZSBvZiB0aGVcbiAqICAgICAgICAgICAgIGF0dHJpYnV0ZXMgY2FuIGJlIG5vbi1udWxsLjwvcD5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEYXRhU291cmNlUGFyYW1ldGVycyB7XG5BdXJvcmFQb3N0Z3JlU3FsUGFyYW1ldGVycz86IEF1cm9yYVBvc3RncmVTcWxQYXJhbWV0ZXJzXG5UZXJhZGF0YVBhcmFtZXRlcnM/OiBUZXJhZGF0YVBhcmFtZXRlcnNcblJkc1BhcmFtZXRlcnM/OiBSZHNQYXJhbWV0ZXJzXG5BdGhlbmFQYXJhbWV0ZXJzPzogQXRoZW5hUGFyYW1ldGVyc1xuU3BhcmtQYXJhbWV0ZXJzPzogU3BhcmtQYXJhbWV0ZXJzXG5NYXJpYURiUGFyYW1ldGVycz86IE1hcmlhRGJQYXJhbWV0ZXJzXG5PcmFjbGVQYXJhbWV0ZXJzPzogT3JhY2xlUGFyYW1ldGVyc1xuUHJlc3RvUGFyYW1ldGVycz86IFByZXN0b1BhcmFtZXRlcnNcblN0YXJidXJzdFBhcmFtZXRlcnM/OiBTdGFyYnVyc3RQYXJhbWV0ZXJzXG5SZWRzaGlmdFBhcmFtZXRlcnM/OiBSZWRzaGlmdFBhcmFtZXRlcnNcbk15U3FsUGFyYW1ldGVycz86IE15U3FsUGFyYW1ldGVyc1xuU3FsU2VydmVyUGFyYW1ldGVycz86IFNxbFNlcnZlclBhcmFtZXRlcnNcblNub3dmbGFrZVBhcmFtZXRlcnM/OiBTbm93Zmxha2VQYXJhbWV0ZXJzXG5BbWF6b25FbGFzdGljc2VhcmNoUGFyYW1ldGVycz86IEFtYXpvbkVsYXN0aWNzZWFyY2hQYXJhbWV0ZXJzXG5BbWF6b25PcGVuU2VhcmNoUGFyYW1ldGVycz86IEFtYXpvbk9wZW5TZWFyY2hQYXJhbWV0ZXJzXG5Qb3N0Z3JlU3FsUGFyYW1ldGVycz86IFBvc3RncmVTcWxQYXJhbWV0ZXJzXG5BdXJvcmFQYXJhbWV0ZXJzPzogQXVyb3JhUGFyYW1ldGVyc1xuUzNQYXJhbWV0ZXJzPzogUzNQYXJhbWV0ZXJzXG5Ucmlub1BhcmFtZXRlcnM/OiBUcmlub1BhcmFtZXRlcnNcbkRhdGFicmlja3NQYXJhbWV0ZXJzPzogRGF0YWJyaWNrc1BhcmFtZXRlcnNcbn1cbi8qKlxuICogPHA+UGFyYW1ldGVycyBmb3IgQW1hem9uIEF1cm9yYSBQb3N0Z3JlU1FMLUNvbXBhdGlibGUgRWRpdGlvbi48L3A+XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXVyb3JhUG9zdGdyZVNxbFBhcmFtZXRlcnMge1xuLyoqXG4gKiA8cD5UaGUgcG9ydCB0aGF0IEFtYXpvbiBBdXJvcmEgUG9zdGdyZVNRTCBpcyBsaXN0ZW5pbmcgb24uPC9wPlxuICovXG5Qb3J0OiBudW1iZXJcbi8qKlxuICogPHA+VGhlIEFtYXpvbiBBdXJvcmEgUG9zdGdyZVNRTCBkYXRhYmFzZSB0byBjb25uZWN0IHRvLjwvcD5cbiAqL1xuRGF0YWJhc2U6IHN0cmluZ1xuLyoqXG4gKiA8cD5UaGUgQW1hem9uIEF1cm9yYSBQb3N0Z3JlU1FMLUNvbXBhdGlibGUgaG9zdCB0byBjb25uZWN0IHRvLjwvcD5cbiAqL1xuSG9zdDogc3RyaW5nXG59XG4vKipcbiAqIDxwPlRoZSBwYXJhbWV0ZXJzIGZvciBUZXJhZGF0YS48L3A+XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGVyYWRhdGFQYXJhbWV0ZXJzIHtcbi8qKlxuICogPHA+UG9ydC48L3A+XG4gKi9cblBvcnQ6IG51bWJlclxuLyoqXG4gKiA8cD5EYXRhYmFzZS48L3A+XG4gKi9cbkRhdGFiYXNlOiBzdHJpbmdcbi8qKlxuICogPHA+SG9zdC48L3A+XG4gKi9cbkhvc3Q6IHN0cmluZ1xufVxuLyoqXG4gKiA8cD5UaGUgcGFyYW1ldGVycyBmb3IgQW1hem9uIFJEUy48L3A+XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmRzUGFyYW1ldGVycyB7XG4vKipcbiAqIDxwPkluc3RhbmNlIElELjwvcD5cbiAqL1xuSW5zdGFuY2VJZDogc3RyaW5nXG4vKipcbiAqIDxwPkRhdGFiYXNlLjwvcD5cbiAqL1xuRGF0YWJhc2U6IHN0cmluZ1xufVxuLyoqXG4gKiA8cD5QYXJhbWV0ZXJzIGZvciBBbWF6b24gQXRoZW5hLjwvcD5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBdGhlbmFQYXJhbWV0ZXJzIHtcbi8qKlxuICogPHA+VGhlIHdvcmtncm91cCB0aGF0IEFtYXpvbiBBdGhlbmEgdXNlcy48L3A+XG4gKi9cbldvcmtHcm91cD86IHN0cmluZ1xuSWRlbnRpdHlDZW50ZXJDb25maWd1cmF0aW9uPzogSWRlbnRpdHlDZW50ZXJDb25maWd1cmF0aW9uXG4vKipcbiAqIDxwPlVzZSB0aGUgPGNvZGU+Um9sZUFybjwvY29kZT4gc3RydWN0dXJlIHRvIG92ZXJyaWRlIGFuIGFjY291bnQtd2lkZSByb2xlIGZvciBhIHNwZWNpZmljIEF0aGVuYSBkYXRhIHNvdXJjZS4gRm9yIGV4YW1wbGUsIHNheSBhbiBhY2NvdW50IGFkbWluaXN0cmF0b3IgaGFzIHR1cm5lZCBvZmYgYWxsIEF0aGVuYSBhY2Nlc3Mgd2l0aCBhbiBhY2NvdW50LXdpZGUgcm9sZS4gVGhlIGFkbWluaXN0cmF0b3IgY2FuIHRoZW4gdXNlIDxjb2RlPlJvbGVBcm48L2NvZGU+IHRvIGJ5cGFzcyB0aGUgYWNjb3VudC13aWRlIHJvbGUgYW5kIGFsbG93IEF0aGVuYSBhY2Nlc3MgZm9yIHRoZSBzaW5nbGUgQXRoZW5hIGRhdGEgc291cmNlIHRoYXQgaXMgc3BlY2lmaWVkIGluIHRoZSBzdHJ1Y3R1cmUsIGV2ZW4gaWYgdGhlIGFjY291bnQtd2lkZSByb2xlIGZvcmJpZGRpbmcgQXRoZW5hIGFjY2VzcyBpcyBzdGlsbCBhY3RpdmUuPC9wPlxuICovXG5Sb2xlQXJuPzogc3RyaW5nXG59XG4vKipcbiAqIDxwPlRoZSBwYXJhbWV0ZXJzIGZvciBhbiBJQU0gSWRlbnRpdHkgQ2VudGVyIGNvbmZpZ3VyYXRpb24uPC9wPlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElkZW50aXR5Q2VudGVyQ29uZmlndXJhdGlvbiB7XG4vKipcbiAqIDxwPkEgQm9vbGVhbiBvcHRpb24gdGhhdCBjb250cm9scyB3aGV0aGVyIFRydXN0ZWQgSWRlbnRpdHkgUHJvcGFnYXRpb24gc2hvdWxkIGJlIHVzZWQuPC9wPlxuICovXG5FbmFibGVJZGVudGl0eVByb3BhZ2F0aW9uPzogYm9vbGVhblxufVxuLyoqXG4gKiA8cD5UaGUgcGFyYW1ldGVycyBmb3IgU3BhcmsuPC9wPlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNwYXJrUGFyYW1ldGVycyB7XG4vKipcbiAqIDxwPlBvcnQuPC9wPlxuICovXG5Qb3J0OiBudW1iZXJcbi8qKlxuICogPHA+SG9zdC48L3A+XG4gKi9cbkhvc3Q6IHN0cmluZ1xufVxuLyoqXG4gKiA8cD5UaGUgcGFyYW1ldGVycyBmb3IgTWFyaWFEQi48L3A+XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWFyaWFEYlBhcmFtZXRlcnMge1xuLyoqXG4gKiA8cD5Qb3J0LjwvcD5cbiAqL1xuUG9ydDogbnVtYmVyXG4vKipcbiAqIDxwPkRhdGFiYXNlLjwvcD5cbiAqL1xuRGF0YWJhc2U6IHN0cmluZ1xuLyoqXG4gKiA8cD5Ib3N0LjwvcD5cbiAqL1xuSG9zdDogc3RyaW5nXG59XG4vKipcbiAqIDxwPlRoZSBwYXJhbWV0ZXJzIGZvciBPcmFjbGUuPC9wPlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE9yYWNsZVBhcmFtZXRlcnMge1xuVXNlU2VydmljZU5hbWU/OiBib29sZWFuXG4vKipcbiAqIDxwPlRoZSBwb3J0LjwvcD5cbiAqL1xuUG9ydDogbnVtYmVyXG4vKipcbiAqIDxwPlRoZSBkYXRhYmFzZS48L3A+XG4gKi9cbkRhdGFiYXNlOiBzdHJpbmdcbi8qKlxuICogPHA+QW4gT3JhY2xlIGhvc3QuPC9wPlxuICovXG5Ib3N0OiBzdHJpbmdcbn1cbi8qKlxuICogPHA+VGhlIHBhcmFtZXRlcnMgZm9yIFByZXN0by48L3A+XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJlc3RvUGFyYW1ldGVycyB7XG4vKipcbiAqIDxwPlBvcnQuPC9wPlxuICovXG5Qb3J0OiBudW1iZXJcbi8qKlxuICogPHA+SG9zdC48L3A+XG4gKi9cbkhvc3Q6IHN0cmluZ1xuLyoqXG4gKiA8cD5DYXRhbG9nLjwvcD5cbiAqL1xuQ2F0YWxvZzogc3RyaW5nXG59XG4vKipcbiAqIDxwPlRoZSBwYXJhbWV0ZXJzIHRoYXQgYXJlIHJlcXVpcmVkIHRvIGNvbm5lY3QgdG8gYSBTdGFyYnVyc3QgZGF0YSBzb3VyY2UuPC9wPlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0YXJidXJzdFBhcmFtZXRlcnMge1xuLyoqXG4gKiA8cD5UaGUgcG9ydCBmb3IgdGhlIFN0YXJidXJzdCBkYXRhIHNvdXJjZS48L3A+XG4gKi9cblBvcnQ6IG51bWJlclxuRGF0YWJhc2VBY2Nlc3NDb250cm9sUm9sZT86IHN0cmluZ1xuUHJvZHVjdFR5cGU/OiBTdGFyYnVyc3RQcm9kdWN0VHlwZVxuT0F1dGhQYXJhbWV0ZXJzPzogT0F1dGhQYXJhbWV0ZXJzXG4vKipcbiAqIDxwPlRoZSBob3N0IG5hbWUgb2YgdGhlIFN0YXJidXJzdCBkYXRhIHNvdXJjZS48L3A+XG4gKi9cbkhvc3Q6IHN0cmluZ1xuLyoqXG4gKiA8cD5UaGUgY2F0YWxvZyBuYW1lIGZvciB0aGUgU3RhcmJ1cnN0IGRhdGEgc291cmNlLjwvcD5cbiAqL1xuQ2F0YWxvZzogc3RyaW5nXG5BdXRoZW50aWNhdGlvblR5cGU/OiBBdXRoZW50aWNhdGlvblR5cGVcbn1cbmV4cG9ydCBpbnRlcmZhY2UgT0F1dGhQYXJhbWV0ZXJzIHtcblRva2VuUHJvdmlkZXJVcmw6IHN0cmluZ1xuT0F1dGhTY29wZT86IHN0cmluZ1xuSWRlbnRpdHlQcm92aWRlclZwY0Nvbm5lY3Rpb25Qcm9wZXJ0aWVzPzogVnBjQ29ubmVjdGlvblByb3BlcnRpZXNcbklkZW50aXR5UHJvdmlkZXJSZXNvdXJjZVVyaT86IHN0cmluZ1xufVxuLyoqXG4gKiA8cD5WUEMgY29ubmVjdGlvbiBwcm9wZXJ0aWVzLjwvcD5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBWcGNDb25uZWN0aW9uUHJvcGVydGllcyB7XG4vKipcbiAqIDxwPlRoZSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKSBmb3IgdGhlIFZQQyBjb25uZWN0aW9uLjwvcD5cbiAqL1xuVnBjQ29ubmVjdGlvbkFybjogc3RyaW5nXG59XG4vKipcbiAqIDxwPlRoZSBwYXJhbWV0ZXJzIGZvciBBbWF6b24gUmVkc2hpZnQuIFRoZSA8Y29kZT5DbHVzdGVySWQ8L2NvZGU+IGZpZWxkIGNhbiBiZSBibGFuayBpZlxuICogICAgICAgICAgICAgPGNvZGU+SG9zdDwvY29kZT4gYW5kIDxjb2RlPlBvcnQ8L2NvZGU+IGFyZSBib3RoIHNldC4gVGhlIDxjb2RlPkhvc3Q8L2NvZGU+IGFuZCA8Y29kZT5Qb3J0PC9jb2RlPiBmaWVsZHMgY2FuIGJlIGJsYW5rIGlmIHRoZSA8Y29kZT5DbHVzdGVySWQ8L2NvZGU+IGZpZWxkIGlzIHNldC48L3A+XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVkc2hpZnRQYXJhbWV0ZXJzIHtcbklBTVBhcmFtZXRlcnM/OiBSZWRzaGlmdElBTVBhcmFtZXRlcnNcbi8qKlxuICogPHA+Q2x1c3RlciBJRC4gVGhpcyBmaWVsZCBjYW4gYmUgYmxhbmsgaWYgdGhlIDxjb2RlPkhvc3Q8L2NvZGU+IGFuZCA8Y29kZT5Qb3J0PC9jb2RlPiBhcmVcbiAqICAgICAgICAgICAgIHByb3ZpZGVkLjwvcD5cbiAqL1xuQ2x1c3RlcklkPzogc3RyaW5nXG4vKipcbiAqIDxwPlBvcnQuIFRoaXMgZmllbGQgY2FuIGJlIGJsYW5rIGlmIHRoZSA8Y29kZT5DbHVzdGVySWQ8L2NvZGU+IGlzIHByb3ZpZGVkLjwvcD5cbiAqL1xuUG9ydD86IG51bWJlclxuLyoqXG4gKiA8cD5EYXRhYmFzZS48L3A+XG4gKi9cbkRhdGFiYXNlOiBzdHJpbmdcbi8qKlxuICogPHA+SG9zdC4gVGhpcyBmaWVsZCBjYW4gYmUgYmxhbmsgaWYgPGNvZGU+Q2x1c3RlcklkPC9jb2RlPiBpcyBwcm92aWRlZC48L3A+XG4gKi9cbkhvc3Q/OiBzdHJpbmdcbklkZW50aXR5Q2VudGVyQ29uZmlndXJhdGlvbj86IElkZW50aXR5Q2VudGVyQ29uZmlndXJhdGlvblxufVxuLyoqXG4gKiA8cD5BIHN0cnVjdHVyZSB0aGF0IGdyYW50cyBRdWljayBTdWl0ZSBhY2Nlc3MgdG8geW91ciBjbHVzdGVyIGFuZCBtYWtlIGEgY2FsbCB0byB0aGUgPGNvZGU+cmVkc2hpZnQ6R2V0Q2x1c3RlckNyZWRlbnRpYWxzPC9jb2RlPiBBUEkuIEZvciBtb3JlIGluZm9ybWF0aW9uIG9uIHRoZSA8Y29kZT5yZWRzaGlmdDpHZXRDbHVzdGVyQ3JlZGVudGlhbHM8L2NvZGU+IEFQSSwgc2VlIDxhIGhyZWY9XCJodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vcmVkc2hpZnQvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfR2V0Q2x1c3RlckNyZWRlbnRpYWxzLmh0bWxcIj5cbiAqICAgICAgICAgICAgICAgIDxjb2RlPkdldENsdXN0ZXJDcmVkZW50aWFsczwvY29kZT5cbiAqICAgICAgICAgICAgIDwvYT4uPC9wPlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlZHNoaWZ0SUFNUGFyYW1ldGVycyB7XG4vKipcbiAqIDxwPkF1dG9tYXRpY2FsbHkgY3JlYXRlcyBhIGRhdGFiYXNlIHVzZXIuIElmIHlvdXIgZGF0YWJhc2UgZG9lc24ndCBoYXZlIGEgPGNvZGU+RGF0YWJhc2VVc2VyPC9jb2RlPiwgc2V0IHRoaXMgcGFyYW1ldGVyIHRvIDxjb2RlPlRydWU8L2NvZGU+LiBJZiB0aGVyZSBpcyBubyA8Y29kZT5EYXRhYmFzZVVzZXI8L2NvZGU+LCBBbWF6b24gUXVpY2sgU3VpdGUgY2FuJ3QgY29ubmVjdCB0byB5b3VyIGNsdXN0ZXIuIFRoZSA8Y29kZT5Sb2xlQXJuPC9jb2RlPiB0aGF0IHlvdSB1c2UgZm9yIHRoaXMgb3BlcmF0aW9uIG11c3QgZ3JhbnQgYWNjZXNzIHRvIDxjb2RlPnJlZHNoaWZ0OkNyZWF0ZUNsdXN0ZXJVc2VyPC9jb2RlPiB0byBzdWNjZXNzZnVsbHkgY3JlYXRlIHRoZSB1c2VyLjwvcD5cbiAqL1xuQXV0b0NyZWF0ZURhdGFiYXNlVXNlcj86IGJvb2xlYW5cbi8qKlxuICogPHA+VGhlIHVzZXIgd2hvc2UgcGVybWlzc2lvbnMgYW5kIGdyb3VwIG1lbWJlcnNoaXBzIHdpbGwgYmUgdXNlZCBieSBRdWljayBTdWl0ZSB0byBhY2Nlc3MgdGhlIGNsdXN0ZXIuIElmIHRoaXMgdXNlciBhbHJlYWR5IGV4aXN0cyBpbiB5b3VyIGRhdGFiYXNlLCBRdWljayBTdWl0ZSBpcyBncmFudGVkIHRoZSBzYW1lIHBlcm1pc3Npb25zIHRoYXQgdGhlIHVzZXIgaGFzLiBJZiB0aGUgdXNlciBkb2Vzbid0IGV4aXN0LCBzZXQgdGhlIHZhbHVlIG9mIDxjb2RlPkF1dG9DcmVhdGVEYXRhYmFzZVVzZXI8L2NvZGU+IHRvIDxjb2RlPlRydWU8L2NvZGU+IHRvIGNyZWF0ZSBhIG5ldyB1c2VyIHdpdGggUFVCTElDIHBlcm1pc3Npb25zLjwvcD5cbiAqL1xuRGF0YWJhc2VVc2VyPzogc3RyaW5nXG4vKipcbiAqIDxwPlVzZSB0aGUgPGNvZGU+Um9sZUFybjwvY29kZT4gc3RydWN0dXJlIHRvIGFsbG93IFF1aWNrIFN1aXRlIHRvIGNhbGwgPGNvZGU+cmVkc2hpZnQ6R2V0Q2x1c3RlckNyZWRlbnRpYWxzPC9jb2RlPiBvbiB5b3VyIGNsdXN0ZXIuIFRoZSBjYWxsaW5nIHByaW5jaXBhbCBtdXN0IGhhdmUgPGNvZGU+aWFtOlBhc3NSb2xlPC9jb2RlPiBhY2Nlc3MgdG8gcGFzcyB0aGUgcm9sZSB0byBRdWljayBTdWl0ZS4gVGhlIHJvbGUncyB0cnVzdCBwb2xpY3kgbXVzdCBhbGxvdyB0aGUgUXVpY2sgU3VpdGUgc2VydmljZSBwcmluY2lwYWwgdG8gYXNzdW1lIHRoZSByb2xlLjwvcD5cbiAqL1xuUm9sZUFybjogc3RyaW5nXG4vKipcbiAqIDxwPkEgbGlzdCBvZiBncm91cHMgd2hvc2UgcGVybWlzc2lvbnMgd2lsbCBiZSBncmFudGVkIHRvIFF1aWNrIFN1aXRlIHRvIGFjY2VzcyB0aGUgY2x1c3Rlci4gVGhlc2UgcGVybWlzc2lvbnMgYXJlIGNvbWJpbmVkIHdpdGggdGhlIHBlcm1pc3Npb25zIGdyYW50ZWQgdG8gUXVpY2sgU3VpdGUgYnkgdGhlIDxjb2RlPkRhdGFiYXNlVXNlcjwvY29kZT4uIElmIHlvdSBjaG9vc2UgdG8gaW5jbHVkZSB0aGlzIHBhcmFtZXRlciwgdGhlIDxjb2RlPlJvbGVBcm48L2NvZGU+IG11c3QgZ3JhbnQgYWNjZXNzIHRvIDxjb2RlPnJlZHNoaWZ0OkpvaW5Hcm91cDwvY29kZT4uPC9wPlxuICogXG4gKiBAbWluSXRlbXMgMVxuICogQG1heEl0ZW1zIDUwXG4gKi9cbkRhdGFiYXNlR3JvdXBzPzogc3RyaW5nW11cbn1cbi8qKlxuICogPHA+VGhlIHBhcmFtZXRlcnMgZm9yIE15U1FMLjwvcD5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNeVNxbFBhcmFtZXRlcnMge1xuLyoqXG4gKiA8cD5Qb3J0LjwvcD5cbiAqL1xuUG9ydDogbnVtYmVyXG4vKipcbiAqIDxwPkRhdGFiYXNlLjwvcD5cbiAqL1xuRGF0YWJhc2U6IHN0cmluZ1xuLyoqXG4gKiA8cD5Ib3N0LjwvcD5cbiAqL1xuSG9zdDogc3RyaW5nXG59XG4vKipcbiAqIDxwPlRoZSBwYXJhbWV0ZXJzIGZvciBTUUwgU2VydmVyLjwvcD5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTcWxTZXJ2ZXJQYXJhbWV0ZXJzIHtcbi8qKlxuICogPHA+UG9ydC48L3A+XG4gKi9cblBvcnQ6IG51bWJlclxuLyoqXG4gKiA8cD5EYXRhYmFzZS48L3A+XG4gKi9cbkRhdGFiYXNlOiBzdHJpbmdcbi8qKlxuICogPHA+SG9zdC48L3A+XG4gKi9cbkhvc3Q6IHN0cmluZ1xufVxuLyoqXG4gKiA8cD5UaGUgcGFyYW1ldGVycyBmb3IgU25vd2ZsYWtlLjwvcD5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTbm93Zmxha2VQYXJhbWV0ZXJzIHtcbi8qKlxuICogPHA+V2FyZWhvdXNlLjwvcD5cbiAqL1xuV2FyZWhvdXNlOiBzdHJpbmdcbkRhdGFiYXNlQWNjZXNzQ29udHJvbFJvbGU/OiBzdHJpbmdcbi8qKlxuICogPHA+RGF0YWJhc2UuPC9wPlxuICovXG5EYXRhYmFzZTogc3RyaW5nXG5PQXV0aFBhcmFtZXRlcnM/OiBPQXV0aFBhcmFtZXRlcnNcbi8qKlxuICogPHA+SG9zdC48L3A+XG4gKi9cbkhvc3Q6IHN0cmluZ1xuQXV0aGVudGljYXRpb25UeXBlPzogQXV0aGVudGljYXRpb25UeXBlXG59XG4vKipcbiAqIDxwPlRoZSBwYXJhbWV0ZXJzIGZvciBPcGVuU2VhcmNoLjwvcD5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBbWF6b25FbGFzdGljc2VhcmNoUGFyYW1ldGVycyB7XG4vKipcbiAqIDxwPlRoZSBPcGVuU2VhcmNoIGRvbWFpbi48L3A+XG4gKi9cbkRvbWFpbjogc3RyaW5nXG59XG4vKipcbiAqIDxwPlRoZSBwYXJhbWV0ZXJzIGZvciBPcGVuU2VhcmNoLjwvcD5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBbWF6b25PcGVuU2VhcmNoUGFyYW1ldGVycyB7XG4vKipcbiAqIDxwPlRoZSBPcGVuU2VhcmNoIGRvbWFpbi48L3A+XG4gKi9cbkRvbWFpbjogc3RyaW5nXG59XG4vKipcbiAqIDxwPlRoZSBwYXJhbWV0ZXJzIGZvciBQb3N0Z3JlU1FMLjwvcD5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQb3N0Z3JlU3FsUGFyYW1ldGVycyB7XG4vKipcbiAqIDxwPlBvcnQuPC9wPlxuICovXG5Qb3J0OiBudW1iZXJcbi8qKlxuICogPHA+RGF0YWJhc2UuPC9wPlxuICovXG5EYXRhYmFzZTogc3RyaW5nXG4vKipcbiAqIDxwPkhvc3QuPC9wPlxuICovXG5Ib3N0OiBzdHJpbmdcbn1cbi8qKlxuICogPHA+UGFyYW1ldGVycyBmb3IgQW1hem9uIEF1cm9yYS48L3A+XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXVyb3JhUGFyYW1ldGVycyB7XG4vKipcbiAqIDxwPlBvcnQuPC9wPlxuICovXG5Qb3J0OiBudW1iZXJcbi8qKlxuICogPHA+RGF0YWJhc2UuPC9wPlxuICovXG5EYXRhYmFzZTogc3RyaW5nXG4vKipcbiAqIDxwPkhvc3QuPC9wPlxuICovXG5Ib3N0OiBzdHJpbmdcbn1cbi8qKlxuICogPHA+VGhlIHBhcmFtZXRlcnMgZm9yIFMzLjwvcD5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTM1BhcmFtZXRlcnMge1xuTWFuaWZlc3RGaWxlTG9jYXRpb246IE1hbmlmZXN0RmlsZUxvY2F0aW9uXG4vKipcbiAqIDxwPlVzZSB0aGUgPGNvZGU+Um9sZUFybjwvY29kZT4gc3RydWN0dXJlIHRvIG92ZXJyaWRlIGFuIGFjY291bnQtd2lkZSByb2xlIGZvciBhIHNwZWNpZmljIFMzIGRhdGEgc291cmNlLiBGb3IgZXhhbXBsZSwgc2F5IGFuIGFjY291bnQgYWRtaW5pc3RyYXRvciBoYXMgdHVybmVkIG9mZiBhbGwgUzMgYWNjZXNzIHdpdGggYW4gYWNjb3VudC13aWRlIHJvbGUuIFRoZSBhZG1pbmlzdHJhdG9yIGNhbiB0aGVuIHVzZSA8Y29kZT5Sb2xlQXJuPC9jb2RlPiB0byBieXBhc3MgdGhlIGFjY291bnQtd2lkZSByb2xlIGFuZCBhbGxvdyBTMyBhY2Nlc3MgZm9yIHRoZSBzaW5nbGUgUzMgZGF0YSBzb3VyY2UgdGhhdCBpcyBzcGVjaWZpZWQgaW4gdGhlIHN0cnVjdHVyZSwgZXZlbiBpZiB0aGUgYWNjb3VudC13aWRlIHJvbGUgZm9yYmlkZGluZyBTMyBhY2Nlc3MgaXMgc3RpbGwgYWN0aXZlLjwvcD5cbiAqL1xuUm9sZUFybj86IHN0cmluZ1xufVxuLyoqXG4gKiA8cD5BbWF6b24gUzMgbWFuaWZlc3QgZmlsZSBsb2NhdGlvbi48L3A+XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWFuaWZlc3RGaWxlTG9jYXRpb24ge1xuLyoqXG4gKiA8cD5BbWF6b24gUzMgYnVja2V0LjwvcD5cbiAqL1xuQnVja2V0OiBzdHJpbmdcbi8qKlxuICogPHA+QW1hem9uIFMzIGtleSB0aGF0IGlkZW50aWZpZXMgYW4gb2JqZWN0LjwvcD5cbiAqL1xuS2V5OiBzdHJpbmdcbn1cbi8qKlxuICogPHA+VGhlIHBhcmFtZXRlcnMgdGhhdCBhcmUgcmVxdWlyZWQgdG8gY29ubmVjdCB0byBhIFRyaW5vIGRhdGEgc291cmNlLjwvcD5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUcmlub1BhcmFtZXRlcnMge1xuLyoqXG4gKiA8cD5UaGUgcG9ydCBmb3IgdGhlIFRyaW5vIGRhdGEgc291cmNlLjwvcD5cbiAqL1xuUG9ydDogbnVtYmVyXG4vKipcbiAqIDxwPlRoZSBob3N0IG5hbWUgb2YgdGhlIFRyaW5vIGRhdGEgc291cmNlLjwvcD5cbiAqL1xuSG9zdDogc3RyaW5nXG4vKipcbiAqIDxwPlRoZSBjYXRhbG9nIG5hbWUgZm9yIHRoZSBUcmlubyBkYXRhIHNvdXJjZS48L3A+XG4gKi9cbkNhdGFsb2c6IHN0cmluZ1xufVxuLyoqXG4gKiA8cD5UaGUgcGFyYW1ldGVycyB0aGF0IGFyZSByZXF1aXJlZCB0byBjb25uZWN0IHRvIGEgRGF0YWJyaWNrcyBkYXRhIHNvdXJjZS48L3A+XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YWJyaWNrc1BhcmFtZXRlcnMge1xuLyoqXG4gKiA8cD5UaGUgcG9ydCBmb3IgdGhlIERhdGFicmlja3MgZGF0YSBzb3VyY2UuPC9wPlxuICovXG5Qb3J0OiBudW1iZXJcbi8qKlxuICogPHA+VGhlIGhvc3QgbmFtZSBvZiB0aGUgRGF0YWJyaWNrcyBkYXRhIHNvdXJjZS48L3A+XG4gKi9cbkhvc3Q6IHN0cmluZ1xuLyoqXG4gKiA8cD5UaGUgSFRUUCBwYXRoIG9mIHRoZSBEYXRhYnJpY2tzIGRhdGEgc291cmNlLjwvcD5cbiAqL1xuU3FsRW5kcG9pbnRQYXRoOiBzdHJpbmdcbn1cbi8qKlxuICogPHA+UGVybWlzc2lvbiBmb3IgdGhlIHJlc291cmNlLjwvcD5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXNvdXJjZVBlcm1pc3Npb24ge1xuLyoqXG4gKiA8cD5UaGUgSUFNIGFjdGlvbiB0byBncmFudCBvciByZXZva2UgcGVybWlzc2lvbnMgb24uPC9wPlxuICogXG4gKiBAbWluSXRlbXMgMVxuICogQG1heEl0ZW1zIDIwXG4gKi9cbkFjdGlvbnM6IHN0cmluZ1tdXG5SZXNvdXJjZT86IHN0cmluZ1xuLyoqXG4gKiA8cD5UaGUgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTikgb2YgdGhlIHByaW5jaXBhbC4gVGhpcyBjYW4gYmUgb25lIG9mIHRoZVxuICogICAgICAgICAgICAgZm9sbG93aW5nOjwvcD5cbiAqICAgICAgICAgIDx1bD5cbiAqICAgICAgICAgICAgIDxsaT5cbiAqICAgICAgICAgICAgICAgIDxwPlRoZSBBUk4gb2YgYW4gQW1hem9uIFF1aWNrIFN1aXRlIHVzZXIgb3IgZ3JvdXAgYXNzb2NpYXRlZCB3aXRoIGEgZGF0YSBzb3VyY2Ugb3IgZGF0YXNldC4gKFRoaXMgaXMgY29tbW9uLik8L3A+XG4gKiAgICAgICAgICAgICA8L2xpPlxuICogICAgICAgICAgICAgPGxpPlxuICogICAgICAgICAgICAgICAgPHA+VGhlIEFSTiBvZiBhbiBBbWF6b24gUXVpY2sgU3VpdGUgdXNlciwgZ3JvdXAsIG9yIG5hbWVzcGFjZSBhc3NvY2lhdGVkIHdpdGggYW4gYW5hbHlzaXMsIGRhc2hib2FyZCwgdGVtcGxhdGUsIG9yIHRoZW1lLiAoVGhpcyBpcyBjb21tb24uKTwvcD5cbiAqICAgICAgICAgICAgIDwvbGk+XG4gKiAgICAgICAgICAgICA8bGk+XG4gKiAgICAgICAgICAgICAgICA8cD5UaGUgQVJOIG9mIGFuIEFtYXpvbiBXZWIgU2VydmljZXMgYWNjb3VudCByb290OiBUaGlzIGlzIGFuIElBTSBBUk4gcmF0aGVyIHRoYW4gYSBRdWlja1NpZ2h0XG4gKiAgICAgICAgICAgICAgICAgICAgIEFSTi4gVXNlIHRoaXMgb3B0aW9uIG9ubHkgdG8gc2hhcmUgcmVzb3VyY2VzICh0ZW1wbGF0ZXMpIGFjcm9zcyBBbWF6b24gV2ViIFNlcnZpY2VzIGFjY291bnRzLlxuICogICAgICAgICAgICAgICAgICAgICAoVGhpcyBpcyBsZXNzIGNvbW1vbi4pIDwvcD5cbiAqICAgICAgICAgICAgIDwvbGk+XG4gKiAgICAgICAgICA8L3VsPlxuICovXG5QcmluY2lwYWw6IHN0cmluZ1xufVxuLyoqXG4gKiA8cD5TZWN1cmUgU29ja2V0IExheWVyIChTU0wpIHByb3BlcnRpZXMgdGhhdCBhcHBseSB3aGVuIFF1aWNrIFN1aXRlIGNvbm5lY3RzIHRvIHlvdXJcbiAqICAgICAgICAgICAgIHVuZGVybHlpbmcgZGF0YSBzb3VyY2UuPC9wPlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNzbFByb3BlcnRpZXMge1xuLyoqXG4gKiA8cD5BIEJvb2xlYW4gb3B0aW9uIHRvIGNvbnRyb2wgd2hldGhlciBTU0wgc2hvdWxkIGJlIGRpc2FibGVkLjwvcD5cbiAqL1xuRGlzYWJsZVNzbD86IGJvb2xlYW5cbn1cbi8qKlxuICogPHA+RGF0YSBzb3VyY2UgY3JlZGVudGlhbHMuIFRoaXMgaXMgYSB2YXJpYW50IHR5cGUgc3RydWN0dXJlLiBGb3IgdGhpcyBzdHJ1Y3R1cmUgdG8gYmVcbiAqICAgICAgICAgICAgIHZhbGlkLCBvbmx5IG9uZSBvZiB0aGUgYXR0cmlidXRlcyBjYW4gYmUgbm9uLW51bGwuPC9wPlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERhdGFTb3VyY2VDcmVkZW50aWFscyB7XG4vKipcbiAqIDxwPlRoZSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKSBvZiB0aGUgc2VjcmV0IGFzc29jaWF0ZWQgd2l0aCB0aGUgZGF0YSBzb3VyY2UgaW4gQW1hem9uIFNlY3JldHMgTWFuYWdlci48L3A+XG4gKi9cblNlY3JldEFybj86IHN0cmluZ1xuLyoqXG4gKiA8cD5UaGUgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTikgb2YgYSBkYXRhIHNvdXJjZSB0aGF0IGhhcyB0aGUgY3JlZGVudGlhbCBwYWlyIHRoYXQgeW91XG4gKiAgICAgICAgICAgICB3YW50IHRvIHVzZS4gV2hlbiA8Y29kZT5Db3B5U291cmNlQXJuPC9jb2RlPiBpcyBub3QgbnVsbCwgdGhlIGNyZWRlbnRpYWwgcGFpciBmcm9tIHRoZVxuICogICAgICAgICAgICAgZGF0YSBzb3VyY2UgaW4gdGhlIEFSTiBpcyB1c2VkIGFzIHRoZSBjcmVkZW50aWFscyBmb3IgdGhlXG4gKiAgICAgICAgICAgICA8Y29kZT5EYXRhU291cmNlQ3JlZGVudGlhbHM8L2NvZGU+IHN0cnVjdHVyZS48L3A+XG4gKi9cbkNvcHlTb3VyY2VBcm4/OiBzdHJpbmdcbkNyZWRlbnRpYWxQYWlyPzogQ3JlZGVudGlhbFBhaXJcbktleVBhaXJDcmVkZW50aWFscz86IEtleVBhaXJDcmVkZW50aWFsc1xufVxuLyoqXG4gKiA8cD5UaGUgY29tYmluYXRpb24gb2YgdXNlciBuYW1lIGFuZCBwYXNzd29yZCB0aGF0IGFyZSB1c2VkIGFzIGNyZWRlbnRpYWxzLjwvcD5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDcmVkZW50aWFsUGFpciB7XG4vKipcbiAqIDxwPkEgc2V0IG9mIGFsdGVybmF0ZSBkYXRhIHNvdXJjZSBwYXJhbWV0ZXJzIHRoYXQgeW91IHdhbnQgdG8gc2hhcmUgZm9yIHRoZXNlXG4gKiAgICAgICAgICAgICBjcmVkZW50aWFscy4gVGhlIGNyZWRlbnRpYWxzIGFyZSBhcHBsaWVkIGluIHRhbmRlbSB3aXRoIHRoZSBkYXRhIHNvdXJjZSBwYXJhbWV0ZXJzIHdoZW5cbiAqICAgICAgICAgICAgIHlvdSBjb3B5IGEgZGF0YSBzb3VyY2UgYnkgdXNpbmcgYSBjcmVhdGUgb3IgdXBkYXRlIHJlcXVlc3QuIFRoZSBBUEkgb3BlcmF0aW9uIGNvbXBhcmVzXG4gKiAgICAgICAgICAgICB0aGUgPGNvZGU+RGF0YVNvdXJjZVBhcmFtZXRlcnM8L2NvZGU+IHN0cnVjdHVyZSB0aGF0J3MgaW4gdGhlIHJlcXVlc3Qgd2l0aCB0aGVcbiAqICAgICAgICAgICAgIHN0cnVjdHVyZXMgaW4gdGhlIDxjb2RlPkFsdGVybmF0ZURhdGFTb3VyY2VQYXJhbWV0ZXJzPC9jb2RlPiBhbGxvdyBsaXN0LiBJZiB0aGVcbiAqICAgICAgICAgICAgIHN0cnVjdHVyZXMgYXJlIGFuIGV4YWN0IG1hdGNoLCB0aGUgcmVxdWVzdCBpcyBhbGxvd2VkIHRvIHVzZSB0aGUgbmV3IGRhdGEgc291cmNlIHdpdGhcbiAqICAgICAgICAgICAgIHRoZSBleGlzdGluZyBjcmVkZW50aWFscy4gSWYgdGhlIDxjb2RlPkFsdGVybmF0ZURhdGFTb3VyY2VQYXJhbWV0ZXJzPC9jb2RlPiBsaXN0IGlzXG4gKiAgICAgICAgICAgICBudWxsLCB0aGUgPGNvZGU+RGF0YVNvdXJjZVBhcmFtZXRlcnM8L2NvZGU+IG9yaWdpbmFsbHkgdXNlZCB3aXRoIHRoZXNlXG4gKiAgICAgICAgICAgICAgICAgPGNvZGU+Q3JlZGVudGlhbHM8L2NvZGU+IGlzIGF1dG9tYXRpY2FsbHkgYWxsb3dlZC48L3A+XG4gKiBcbiAqIEBtaW5JdGVtcyAxXG4gKiBAbWF4SXRlbXMgNTBcbiAqL1xuQWx0ZXJuYXRlRGF0YVNvdXJjZVBhcmFtZXRlcnM/OiBEYXRhU291cmNlUGFyYW1ldGVyc1tdXG4vKipcbiAqIDxwPlVzZXIgbmFtZS48L3A+XG4gKi9cblVzZXJuYW1lOiBzdHJpbmdcbi8qKlxuICogPHA+UGFzc3dvcmQuPC9wPlxuICovXG5QYXNzd29yZDogc3RyaW5nXG59XG5leHBvcnQgaW50ZXJmYWNlIEtleVBhaXJDcmVkZW50aWFscyB7XG5LZXlQYWlyVXNlcm5hbWU6IHN0cmluZ1xuUHJpdmF0ZUtleTogc3RyaW5nXG5Qcml2YXRlS2V5UGFzc3BocmFzZT86IHN0cmluZ1xufVxuLyoqXG4gKiA8cD5UaGUga2V5IG9yIGtleXMgb2YgdGhlIGtleS12YWx1ZSBwYWlycyBmb3IgdGhlIHJlc291cmNlIHRhZyBvciB0YWdzIGFzc2lnbmVkIHRvIHRoZVxuICogICAgICAgICAgICAgcmVzb3VyY2UuPC9wPlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRhZyB7XG4vKipcbiAqIDxwPlRhZyB2YWx1ZS48L3A+XG4gKi9cblZhbHVlOiBzdHJpbmdcbi8qKlxuICogPHA+VGFnIGtleS48L3A+XG4gKi9cbktleTogc3RyaW5nXG59XG4iXX0=
@@ -816,6 +816,7 @@ export interface _AWS_RDS_DBINSTANCE {
816
816
  * Default: ``true``
817
817
  */
818
818
  ApplyImmediately?: boolean;
819
+ AdditionalStorageVolumes?: AdditionalStorageVolume[];
819
820
  }
820
821
  /**
821
822
  * Information about an AWS Identity and Access Management (IAM) role that is associated with a DB instance.
@@ -930,3 +931,29 @@ export interface Tag {
930
931
  */
931
932
  Value?: string;
932
933
  }
934
+ export interface AdditionalStorageVolume {
935
+ /**
936
+ * The name of the additional storage volume.
937
+ */
938
+ VolumeName?: string;
939
+ /**
940
+ * The storage type for the additional storage volume.
941
+ */
942
+ StorageType?: string;
943
+ /**
944
+ * The amount of storage allocated for the additional storage volume, in gibibytes (GiB). The minimum is 20 GiB. The maximum is 65,536 GiB (64 TiB).
945
+ */
946
+ AllocatedStorage?: string;
947
+ /**
948
+ * The number of I/O operations per second (IOPS) provisioned for the additional storage volume.
949
+ */
950
+ Iops?: number;
951
+ /**
952
+ * The upper limit in gibibytes (GiB) to which RDS can automatically scale the storage of the additional storage volume.
953
+ */
954
+ MaxAllocatedStorage?: number;
955
+ /**
956
+ * The storage throughput value for the additional storage volume, in mebibytes per second (MiBps). This setting applies only to the General Purpose SSD gp3 storage type.
957
+ */
958
+ StorageThroughput?: number;
959
+ }