@horietakehiro/aws-cdk-utul 0.41.60 → 0.41.62

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.
@@ -14,6 +14,7 @@ export interface _AWS_CLOUDFRONT_KEYVALUESTORE {
14
14
  */
15
15
  Comment?: string;
16
16
  ImportSource?: ImportSource;
17
+ Tags?: Tag[];
17
18
  }
18
19
  /**
19
20
  * The import source for the key value store.
@@ -28,3 +29,7 @@ export interface ImportSource {
28
29
  */
29
30
  SourceArn: string;
30
31
  }
32
+ export interface Tag {
33
+ Key: string;
34
+ Value: string;
35
+ }
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWNsb3VkZnJvbnQta2V5dmFsdWVzdG9yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImF3cy1jbG91ZGZyb250LWtleXZhbHVlc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhlIGtleSB2YWx1ZSBzdG9yZS4gVXNlIHRoaXMgdG8gc2VwYXJhdGUgZGF0YSBmcm9tIGZ1bmN0aW9uIGNvZGUsIGFsbG93aW5nIHlvdSB0byB1cGRhdGUgZGF0YSB3aXRob3V0IGhhdmluZyB0byBwdWJsaXNoIGEgbmV3IHZlcnNpb24gb2YgYSBmdW5jdGlvbi4gVGhlIGtleSB2YWx1ZSBzdG9yZSBob2xkcyBrZXlzIGFuZCB0aGVpciBjb3JyZXNwb25kaW5nIHZhbHVlcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBfQVdTX0NMT1VERlJPTlRfS0VZVkFMVUVTVE9SRSB7XG5Bcm4/OiBzdHJpbmdcbklkPzogc3RyaW5nXG5TdGF0dXM/OiBzdHJpbmdcbi8qKlxuICogVGhlIG5hbWUgb2YgdGhlIGtleSB2YWx1ZSBzdG9yZS5cbiAqL1xuTmFtZTogc3RyaW5nXG4vKipcbiAqIEEgY29tbWVudCBmb3IgdGhlIGtleSB2YWx1ZSBzdG9yZS5cbiAqL1xuQ29tbWVudD86IHN0cmluZ1xuSW1wb3J0U291cmNlPzogSW1wb3J0U291cmNlXG59XG4vKipcbiAqIFRoZSBpbXBvcnQgc291cmNlIGZvciB0aGUga2V5IHZhbHVlIHN0b3JlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEltcG9ydFNvdXJjZSB7XG4vKipcbiAqIFRoZSBzb3VyY2UgdHlwZSBvZiB0aGUgaW1wb3J0IHNvdXJjZSBmb3IgdGhlIGtleSB2YWx1ZSBzdG9yZS5cbiAqL1xuU291cmNlVHlwZTogc3RyaW5nXG4vKipcbiAqIFRoZSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKSBvZiB0aGUgaW1wb3J0IHNvdXJjZSBmb3IgdGhlIGtleSB2YWx1ZSBzdG9yZS5cbiAqL1xuU291cmNlQXJuOiBzdHJpbmdcbn1cbiJdfQ==
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWNsb3VkZnJvbnQta2V5dmFsdWVzdG9yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImF3cy1jbG91ZGZyb250LWtleXZhbHVlc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhlIGtleSB2YWx1ZSBzdG9yZS4gVXNlIHRoaXMgdG8gc2VwYXJhdGUgZGF0YSBmcm9tIGZ1bmN0aW9uIGNvZGUsIGFsbG93aW5nIHlvdSB0byB1cGRhdGUgZGF0YSB3aXRob3V0IGhhdmluZyB0byBwdWJsaXNoIGEgbmV3IHZlcnNpb24gb2YgYSBmdW5jdGlvbi4gVGhlIGtleSB2YWx1ZSBzdG9yZSBob2xkcyBrZXlzIGFuZCB0aGVpciBjb3JyZXNwb25kaW5nIHZhbHVlcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBfQVdTX0NMT1VERlJPTlRfS0VZVkFMVUVTVE9SRSB7XG5Bcm4/OiBzdHJpbmdcbklkPzogc3RyaW5nXG5TdGF0dXM/OiBzdHJpbmdcbi8qKlxuICogVGhlIG5hbWUgb2YgdGhlIGtleSB2YWx1ZSBzdG9yZS5cbiAqL1xuTmFtZTogc3RyaW5nXG4vKipcbiAqIEEgY29tbWVudCBmb3IgdGhlIGtleSB2YWx1ZSBzdG9yZS5cbiAqL1xuQ29tbWVudD86IHN0cmluZ1xuSW1wb3J0U291cmNlPzogSW1wb3J0U291cmNlXG5UYWdzPzogVGFnW11cbn1cbi8qKlxuICogVGhlIGltcG9ydCBzb3VyY2UgZm9yIHRoZSBrZXkgdmFsdWUgc3RvcmUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW1wb3J0U291cmNlIHtcbi8qKlxuICogVGhlIHNvdXJjZSB0eXBlIG9mIHRoZSBpbXBvcnQgc291cmNlIGZvciB0aGUga2V5IHZhbHVlIHN0b3JlLlxuICovXG5Tb3VyY2VUeXBlOiBzdHJpbmdcbi8qKlxuICogVGhlIEFtYXpvbiBSZXNvdXJjZSBOYW1lIChBUk4pIG9mIHRoZSBpbXBvcnQgc291cmNlIGZvciB0aGUga2V5IHZhbHVlIHN0b3JlLlxuICovXG5Tb3VyY2VBcm46IHN0cmluZ1xufVxuZXhwb3J0IGludGVyZmFjZSBUYWcge1xuS2V5OiBzdHJpbmdcblZhbHVlOiBzdHJpbmdcbn1cbiJdfQ==
@@ -46,6 +46,7 @@ export interface _AWS_CONNECT_EVALUATIONFORM {
46
46
  Status: ("DRAFT" | "ACTIVE");
47
47
  TargetConfiguration?: EvaluationFormTargetConfiguration;
48
48
  LanguageConfiguration?: EvaluationFormLanguageConfiguration;
49
+ ReviewConfiguration?: EvaluationReviewConfiguration;
49
50
  /**
50
51
  * The tags used to organize, track, or control access for this resource. For example, { "tags": {"key1":"value1", "key2":"value2"} }.
51
52
  *
@@ -570,6 +571,32 @@ export interface EvaluationFormLanguageConfiguration {
570
571
  */
571
572
  FormLanguage?: ("de-DE" | "en-US" | "es-ES" | "fr-FR" | "it-IT" | "pt-BR");
572
573
  }
574
+ export interface EvaluationReviewConfiguration {
575
+ /**
576
+ * List of recipients who should be notified when a review is requested.
577
+ */
578
+ ReviewNotificationRecipients: EvaluationReviewNotificationRecipient[];
579
+ /**
580
+ * Number of days during which a request for review can be submitted for evaluations created from this form.
581
+ */
582
+ EligibilityDays?: number;
583
+ }
584
+ export interface EvaluationReviewNotificationRecipient {
585
+ /**
586
+ * The type of notification recipient.
587
+ */
588
+ Type: "USER_ID";
589
+ Value: EvaluationReviewNotificationRecipientValue;
590
+ }
591
+ /**
592
+ * The value associated with the notification recipient type.
593
+ */
594
+ export interface EvaluationReviewNotificationRecipientValue {
595
+ /**
596
+ * The user identifier for the notification recipient.
597
+ */
598
+ UserId?: string;
599
+ }
573
600
  /**
574
601
  * A key-value pair to associate with a resource.
575
602
  */
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWNvbm5lY3QtZXZhbHVhdGlvbmZvcm0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJhd3MtY29ubmVjdC1ldmFsdWF0aW9uZm9ybS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUaGUgaWRlbnRpZmllciB0byByZWZlcmVuY2UgdGhlIGl0ZW0uXG4gKi9cbmV4cG9ydCB0eXBlIFJlZklkID0gc3RyaW5nXG4vKipcbiAqIFJlZmVyZW5jZSBJRHMgb2Ygb3B0aW9ucyBmb3IgdGhpcyBhdXRvbWF0aW9uIHJ1bGUuXG4gKi9cbmV4cG9ydCB0eXBlIFJlZmVyZW5jZUlkTGlzdCA9IFJlZklkW11cbi8qKlxuICogUmVmZXJlbmNlIElEcyBvZiBkZWZhdWx0IG9wdGlvbnMuXG4gKi9cbmV4cG9ydCB0eXBlIFJlZmVyZW5jZUlkTGlzdDEgPSBSZWZJZFtdXG5cbi8qKlxuICogQ3JlYXRlcyBhbiBldmFsdWF0aW9uIGZvcm0gZm9yIHRoZSBzcGVjaWZpZWQgQ09OIGluc3RhbmNlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIF9BV1NfQ09OTkVDVF9FVkFMVUFUSU9ORk9STSB7XG4vKipcbiAqIEEgdGl0bGUgb2YgdGhlIGV2YWx1YXRpb24gZm9ybS5cbiAqL1xuVGl0bGU6IHN0cmluZ1xuLyoqXG4gKiBUaGUgZGVzY3JpcHRpb24gb2YgdGhlIGV2YWx1YXRpb24gZm9ybS5cbiAqICAqTGVuZ3RoIENvbnN0cmFpbnRzKjogTWluaW11bSBsZW5ndGggb2YgMC4gTWF4aW11bSBsZW5ndGggb2YgMTAyNC5cbiAqL1xuRGVzY3JpcHRpb24/OiBzdHJpbmdcbkV2YWx1YXRpb25Gb3JtQXJuPzogc3RyaW5nXG4vKipcbiAqIFRoZSBpZGVudGlmaWVyIG9mIHRoZSBBbWF6b24gQ29ubmVjdCBpbnN0YW5jZS5cbiAqL1xuSW5zdGFuY2VBcm46IHN0cmluZ1xuLyoqXG4gKiBJdGVtcyB0aGF0IGFyZSBwYXJ0IG9mIHRoZSBldmFsdWF0aW9uIGZvcm0uIFRoZSB0b3RhbCBudW1iZXIgb2Ygc2VjdGlvbnMgYW5kIHF1ZXN0aW9ucyBtdXN0IG5vdCBleGNlZWQgMTAwIGVhY2guIFF1ZXN0aW9ucyBtdXN0IGJlIGNvbnRhaW5lZCBpbiBhIHNlY3Rpb24uXG4gKiAgKk1pbmltdW0gc2l6ZSo6IDFcbiAqICAqTWF4aW11bSBzaXplKjogMTAwXG4gKiBcbiAqIEBtaW5JdGVtcyAxXG4gKiBAbWF4SXRlbXMgMjAwXG4gKi9cbkl0ZW1zOiBFdmFsdWF0aW9uRm9ybUJhc2VJdGVtW11cblNjb3JpbmdTdHJhdGVneT86IFNjb3JpbmdTdHJhdGVneVxuQXV0b0V2YWx1YXRpb25Db25maWd1cmF0aW9uPzogQXV0b0V2YWx1YXRpb25Db25maWd1cmF0aW9uXG4vKipcbiAqIFRoZSBzdGF0dXMgb2YgdGhlIGV2YWx1YXRpb24gZm9ybS5cbiAqICAqQWxsb3dlZCB2YWx1ZXMqOiBgYERSQUZUYGAgfCBgYEFDVElWRWBgXG4gKi9cblN0YXR1czogKFwiRFJBRlRcIiB8IFwiQUNUSVZFXCIpXG5UYXJnZXRDb25maWd1cmF0aW9uPzogRXZhbHVhdGlvbkZvcm1UYXJnZXRDb25maWd1cmF0aW9uXG5MYW5ndWFnZUNvbmZpZ3VyYXRpb24/OiBFdmFsdWF0aW9uRm9ybUxhbmd1YWdlQ29uZmlndXJhdGlvblxuLyoqXG4gKiBUaGUgdGFncyB1c2VkIHRvIG9yZ2FuaXplLCB0cmFjaywgb3IgY29udHJvbCBhY2Nlc3MgZm9yIHRoaXMgcmVzb3VyY2UuIEZvciBleGFtcGxlLCB7IFwidGFnc1wiOiB7XCJrZXkxXCI6XCJ2YWx1ZTFcIiwgXCJrZXkyXCI6XCJ2YWx1ZTJcIn0gfS5cbiAqIFxuICogQG1heEl0ZW1zIDUwXG4gKi9cblRhZ3M/OiBUYWdbXVxufVxuLyoqXG4gKiBBbiBpdGVtIGF0IHRoZSByb290IGxldmVsLiBBbGwgaXRlbXMgbXVzdCBiZSBzZWN0aW9ucy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFdmFsdWF0aW9uRm9ybUJhc2VJdGVtIHtcblNlY3Rpb246IEV2YWx1YXRpb25Gb3JtU2VjdGlvblxufVxuLyoqXG4gKiBBIHN1YnNlY3Rpb24gb3IgaW5uZXIgc2VjdGlvbiBvZiBhbiBpdGVtLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEV2YWx1YXRpb25Gb3JtU2VjdGlvbiB7XG4vKipcbiAqIFRoZSB0aXRsZSBvZiB0aGUgc2VjdGlvbi5cbiAqICAqTGVuZ3RoIENvbnN0cmFpbnRzKjogTWluaW11bSBsZW5ndGggb2YgMS4gTWF4aW11bSBsZW5ndGggb2YgMTI4LlxuICovXG5UaXRsZTogc3RyaW5nXG4vKipcbiAqIFRoZSBpbnN0cnVjdGlvbnMgb2YgdGhlIHNlY3Rpb24uXG4gKi9cbkluc3RydWN0aW9ucz86IHN0cmluZ1xuLyoqXG4gKiBUaGUgaWRlbnRpZmllciB0byByZWZlcmVuY2UgdGhlIGl0ZW0uXG4gKi9cblJlZklkOiBzdHJpbmdcbi8qKlxuICogVGhlIGl0ZW1zIG9mIHRoZSBzZWN0aW9uLlxuICogICpNaW5pbXVtKjogMVxuICogXG4gKiBAbWluSXRlbXMgMVxuICogQG1heEl0ZW1zIDIwMFxuICovXG5JdGVtcz86IEV2YWx1YXRpb25Gb3JtSXRlbVtdXG4vKipcbiAqIFRoZSBzY29yaW5nIHdlaWdodCBvZiB0aGUgc2VjdGlvbi5cbiAqICAqTWluaW11bSo6IDAgXG4gKiAgKk1heGltdW0qOiAxMDBcbiAqL1xuV2VpZ2h0PzogbnVtYmVyXG59XG4vKipcbiAqIEl0ZW1zIHRoYXQgYXJlIHBhcnQgb2YgdGhlIGV2YWx1YXRpb24gZm9ybS4gVGhlIHRvdGFsIG51bWJlciBvZiBzZWN0aW9ucyBhbmQgcXVlc3Rpb25zIG11c3Qgbm90IGV4Y2VlZCAxMDAgZWFjaC4gUXVlc3Rpb25zIG11c3QgYmUgY29udGFpbmVkIGluIGEgc2VjdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFdmFsdWF0aW9uRm9ybUl0ZW0ge1xuU2VjdGlvbj86IEV2YWx1YXRpb25Gb3JtU2VjdGlvbjFcblF1ZXN0aW9uPzogRXZhbHVhdGlvbkZvcm1RdWVzdGlvblxufVxuLyoqXG4gKiBUaGUgaW5mb3JtYXRpb24gb2YgdGhlIHNlY3Rpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXZhbHVhdGlvbkZvcm1TZWN0aW9uMSB7XG4vKipcbiAqIFRoZSB0aXRsZSBvZiB0aGUgc2VjdGlvbi5cbiAqICAqTGVuZ3RoIENvbnN0cmFpbnRzKjogTWluaW11bSBsZW5ndGggb2YgMS4gTWF4aW11bSBsZW5ndGggb2YgMTI4LlxuICovXG5UaXRsZTogc3RyaW5nXG4vKipcbiAqIFRoZSBpbnN0cnVjdGlvbnMgb2YgdGhlIHNlY3Rpb24uXG4gKi9cbkluc3RydWN0aW9ucz86IHN0cmluZ1xuLyoqXG4gKiBUaGUgaWRlbnRpZmllciB0byByZWZlcmVuY2UgdGhlIGl0ZW0uXG4gKi9cblJlZklkOiBzdHJpbmdcbi8qKlxuICogVGhlIGl0ZW1zIG9mIHRoZSBzZWN0aW9uLlxuICogICpNaW5pbXVtKjogMVxuICogXG4gKiBAbWluSXRlbXMgMVxuICogQG1heEl0ZW1zIDIwMFxuICovXG5JdGVtcz86IEV2YWx1YXRpb25Gb3JtSXRlbVtdXG4vKipcbiAqIFRoZSBzY29yaW5nIHdlaWdodCBvZiB0aGUgc2VjdGlvbi5cbiAqICAqTWluaW11bSo6IDAgXG4gKiAgKk1heGltdW0qOiAxMDBcbiAqL1xuV2VpZ2h0PzogbnVtYmVyXG59XG4vKipcbiAqIFRoZSBpbmZvcm1hdGlvbiBvZiB0aGUgcXVlc3Rpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXZhbHVhdGlvbkZvcm1RdWVzdGlvbiB7XG4vKipcbiAqIFRoZSB0aXRsZSBvZiB0aGUgcXVlc3Rpb24uXG4gKiAgKkxlbmd0aCBDb25zdHJhaW50cyo6IE1pbmltdW0gbGVuZ3RoIG9mIDEuIE1heGltdW0gbGVuZ3RoIG9mIDM1MC5cbiAqL1xuVGl0bGU6IHN0cmluZ1xuLyoqXG4gKiBUaGUgaW5zdHJ1Y3Rpb25zIG9mIHRoZSBzZWN0aW9uLlxuICogICpMZW5ndGggQ29uc3RyYWludHMqOiBNaW5pbXVtIGxlbmd0aCBvZiAwLiBNYXhpbXVtIGxlbmd0aCBvZiAxMDI0LlxuICovXG5JbnN0cnVjdGlvbnM/OiBzdHJpbmdcbi8qKlxuICogVGhlIGlkZW50aWZpZXIgdG8gcmVmZXJlbmNlIHRoZSBpdGVtLlxuICovXG5SZWZJZDogc3RyaW5nXG4vKipcbiAqIFRoZSBmbGFnIHRvIGVuYWJsZSBub3QgYXBwbGljYWJsZSBhbnN3ZXJzIHRvIHRoZSBxdWVzdGlvbi5cbiAqL1xuTm90QXBwbGljYWJsZUVuYWJsZWQ/OiBib29sZWFuXG4vKipcbiAqIFRoZSB0eXBlIG9mIHRoZSBxdWVzdGlvbi5cbiAqICAqQWxsb3dlZCB2YWx1ZXMqOiBgYE5VTUVSSUNgYCB8IGBgU0lOR0xFU0VMRUNUYGAgfCBgYFRFWFRgYFxuICovXG5RdWVzdGlvblR5cGU6IChcIk5VTUVSSUNcIiB8IFwiU0lOR0xFU0VMRUNUXCIgfCBcIlRFWFRcIiB8IFwiTVVMVElTRUxFQ1RcIiB8IFwiREFURVRJTUVcIilcblF1ZXN0aW9uVHlwZVByb3BlcnRpZXM/OiBFdmFsdWF0aW9uRm9ybVF1ZXN0aW9uVHlwZVByb3BlcnRpZXNcbi8qKlxuICogVGhlIHNjb3Jpbmcgd2VpZ2h0IG9mIHRoZSBzZWN0aW9uLlxuICogICpNaW5pbXVtKjogMFxuICogICpNYXhpbXVtKjogMTAwXG4gKi9cbldlaWdodD86IG51bWJlclxuRW5hYmxlbWVudD86IEV2YWx1YXRpb25Gb3JtSXRlbUVuYWJsZW1lbnRDb25maWd1cmF0aW9uXG59XG4vKipcbiAqIFRoZSBwcm9wZXJ0aWVzIG9mIHRoZSB0eXBlIG9mIHF1ZXN0aW9uLiBUZXh0IHF1ZXN0aW9ucyBkbyBub3QgaGF2ZSB0byBkZWZpbmUgcXVlc3Rpb24gdHlwZSBwcm9wZXJ0aWVzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEV2YWx1YXRpb25Gb3JtUXVlc3Rpb25UeXBlUHJvcGVydGllcyB7XG5OdW1lcmljPzogRXZhbHVhdGlvbkZvcm1OdW1lcmljUXVlc3Rpb25Qcm9wZXJ0aWVzXG5TaW5nbGVTZWxlY3Q/OiBFdmFsdWF0aW9uRm9ybVNpbmdsZVNlbGVjdFF1ZXN0aW9uUHJvcGVydGllc1xuVGV4dD86IEV2YWx1YXRpb25Gb3JtVGV4dFF1ZXN0aW9uUHJvcGVydGllc1xuTXVsdGlTZWxlY3Q/OiBFdmFsdWF0aW9uRm9ybU11bHRpU2VsZWN0UXVlc3Rpb25Qcm9wZXJ0aWVzXG59XG4vKipcbiAqIFRoZSBwcm9wZXJ0aWVzIG9mIHRoZSBudW1lcmljIHF1ZXN0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEV2YWx1YXRpb25Gb3JtTnVtZXJpY1F1ZXN0aW9uUHJvcGVydGllcyB7XG4vKipcbiAqIFRoZSBtaW5pbXVtIGFuc3dlciB2YWx1ZS5cbiAqL1xuTWluVmFsdWU6IG51bWJlclxuLyoqXG4gKiBUaGUgbWF4aW11bSBhbnN3ZXIgdmFsdWUuXG4gKi9cbk1heFZhbHVlOiBudW1iZXJcbi8qKlxuICogVGhlIHNjb3Jpbmcgb3B0aW9ucyBvZiB0aGUgbnVtZXJpYyBxdWVzdGlvbi5cbiAqIFxuICogQG1pbkl0ZW1zIDFcbiAqIEBtYXhJdGVtcyAxMFxuICovXG5PcHRpb25zPzogRXZhbHVhdGlvbkZvcm1OdW1lcmljUXVlc3Rpb25PcHRpb25bXVxuQXV0b21hdGlvbj86IEV2YWx1YXRpb25Gb3JtTnVtZXJpY1F1ZXN0aW9uQXV0b21hdGlvblxufVxuLyoqXG4gKiBJbmZvcm1hdGlvbiBhYm91dCB0aGUgb3B0aW9uIHJhbmdlIHVzZWQgZm9yIHNjb3JpbmcgaW4gbnVtZXJpYyBxdWVzdGlvbnMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXZhbHVhdGlvbkZvcm1OdW1lcmljUXVlc3Rpb25PcHRpb24ge1xuLyoqXG4gKiBUaGUgbWluaW11bSBhbnN3ZXIgdmFsdWUgb2YgdGhlIHJhbmdlIG9wdGlvbi5cbiAqL1xuTWluVmFsdWU6IG51bWJlclxuLyoqXG4gKiBUaGUgbWF4aW11bSBhbnN3ZXIgdmFsdWUgb2YgdGhlIHJhbmdlIG9wdGlvbi5cbiAqL1xuTWF4VmFsdWU6IG51bWJlclxuLyoqXG4gKiBUaGUgc2NvcmUgYXNzaWduZWQgdG8gYW5zd2VyIHZhbHVlcyB3aXRoaW4gdGhlIHJhbmdlIG9wdGlvbi5cbiAqICAqTWluaW11bSo6IDBcbiAqICAqTWF4aW11bSo6IDEwXG4gKi9cblNjb3JlPzogbnVtYmVyXG4vKipcbiAqIFRoZSBmbGFnIHRvIG1hcmsgdGhlIG9wdGlvbiBhcyBhdXRvbWF0aWMgZmFpbC4gSWYgYW4gYXV0b21hdGljIGZhaWwgYW5zd2VyIGlzIHByb3ZpZGVkLCB0aGUgb3ZlcmFsbCBldmFsdWF0aW9uIGdldHMgYSBzY29yZSBvZiAwLlxuICovXG5BdXRvbWF0aWNGYWlsPzogYm9vbGVhblxuQXV0b21hdGljRmFpbENvbmZpZ3VyYXRpb24/OiBBdXRvbWF0aWNGYWlsQ29uZmlndXJhdGlvblxufVxuLyoqXG4gKiBBIGNvbmZpZ3VyYXRpb24gZm9yIGF1dG9tYXRpYyBmYWlsLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEF1dG9tYXRpY0ZhaWxDb25maWd1cmF0aW9uIHtcbi8qKlxuICogVGhlIHJlZmVyZW5jZUlkIG9mIHRoZSB0YXJnZXQgc2VjdGlvbiBmb3IgYXV0byBmYWlsdXJlLlxuICovXG5UYXJnZXRTZWN0aW9uPzogc3RyaW5nXG59XG4vKipcbiAqIFRoZSBhdXRvbWF0aW9uIHByb3BlcnRpZXMgb2YgdGhlIG51bWVyaWMgcXVlc3Rpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXZhbHVhdGlvbkZvcm1OdW1lcmljUXVlc3Rpb25BdXRvbWF0aW9uIHtcblByb3BlcnR5VmFsdWU/OiBOdW1lcmljUXVlc3Rpb25Qcm9wZXJ0eVZhbHVlQXV0b21hdGlvblxuQW5zd2VyU291cmNlPzogRXZhbHVhdGlvbkZvcm1RdWVzdGlvbkF1dG9tYXRpb25BbnN3ZXJTb3VyY2Vcbn1cbi8qKlxuICogVGhlIHByb3BlcnR5IHZhbHVlIG9mIHRoZSBhdXRvbWF0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE51bWVyaWNRdWVzdGlvblByb3BlcnR5VmFsdWVBdXRvbWF0aW9uIHtcbi8qKlxuICogVGhlIHByb3BlcnR5IGxhYmVsIG9mIHRoZSBhdXRvbWF0aW9uLlxuICovXG5MYWJlbDogKFwiT1ZFUkFMTF9DVVNUT01FUl9TRU5USU1FTlRfU0NPUkVcIiB8IFwiT1ZFUkFMTF9BR0VOVF9TRU5USU1FTlRfU0NPUkVcIiB8IFwiTk9OX1RBTEtfVElNRVwiIHwgXCJOT05fVEFMS19USU1FX1BFUkNFTlRBR0VcIiB8IFwiTlVNQkVSX09GX0lOVEVSUlVQVElPTlNcIiB8IFwiQ09OVEFDVF9EVVJBVElPTlwiIHwgXCJBR0VOVF9JTlRFUkFDVElPTl9EVVJBVElPTlwiIHwgXCJDVVNUT01FUl9IT0xEX1RJTUVcIiB8IFwiTE9OR0VTVF9IT0xEX0RVUkFUSU9OXCIgfCBcIk5VTUJFUl9PRl9IT0xEU1wiIHwgXCJBR0VOVF9JTlRFUkFDVElPTl9BTkRfSE9MRF9EVVJBVElPTlwiIHwgXCJDVVNUT01FUl9TRU5USU1FTlRfU0NPUkVfV0lUSE9VVF9BR0VOVFwiIHwgXCJDVVNUT01FUl9TRU5USU1FTlRfU0NPUkVfV0lUSF9BR0VOVFwiKVxufVxuLyoqXG4gKiBBIHNvdXJjZSBvZiBhdXRvbWF0aW9uIGFuc3dlciBmb3IgbnVtZXJpYyBxdWVzdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFdmFsdWF0aW9uRm9ybVF1ZXN0aW9uQXV0b21hdGlvbkFuc3dlclNvdXJjZSB7XG4vKipcbiAqIFRoZSBhdXRvbWF0aW9uIGFuc3dlciBzb3VyY2UgdHlwZS5cbiAqL1xuU291cmNlVHlwZTogKFwiQ09OVEFDVF9MRU5TX0RBVEFcIiB8IFwiR0VOX0FJXCIpXG59XG4vKipcbiAqIFRoZSBwcm9wZXJ0aWVzIG9mIHRoZSBudW1lcmljIHF1ZXN0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEV2YWx1YXRpb25Gb3JtU2luZ2xlU2VsZWN0UXVlc3Rpb25Qcm9wZXJ0aWVzIHtcbi8qKlxuICogVGhlIGFuc3dlciBvcHRpb25zIG9mIHRoZSBzaW5nbGUgc2VsZWN0IHF1ZXN0aW9uLlxuICogICpNaW5pbXVtKjogMlxuICogICpNYXhpbXVtKjogMjU2XG4gKiBcbiAqIEBtaW5JdGVtcyAyXG4gKiBAbWF4SXRlbXMgMjU2XG4gKi9cbk9wdGlvbnM6IEV2YWx1YXRpb25Gb3JtU2luZ2xlU2VsZWN0UXVlc3Rpb25PcHRpb25bXVxuLyoqXG4gKiBUaGUgZGlzcGxheSBtb2RlIG9mIHRoZSBzaW5nbGUgc2VsZWN0IHF1ZXN0aW9uLlxuICogICpBbGxvd2VkIHZhbHVlcyo6IGBgRFJPUERPV05gYCB8IGBgUkFESU9gYFxuICovXG5EaXNwbGF5QXM/OiAoXCJEUk9QRE9XTlwiIHwgXCJSQURJT1wiKVxuQXV0b21hdGlvbj86IEV2YWx1YXRpb25Gb3JtU2luZ2xlU2VsZWN0UXVlc3Rpb25BdXRvbWF0aW9uXG59XG4vKipcbiAqIEluZm9ybWF0aW9uIGFib3V0IHRoZSBhdXRvbWF0aW9uIGNvbmZpZ3VyYXRpb24gaW4gc2luZ2xlIHNlbGVjdCBxdWVzdGlvbnMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXZhbHVhdGlvbkZvcm1TaW5nbGVTZWxlY3RRdWVzdGlvbk9wdGlvbiB7XG4vKipcbiAqIFRoZSBpZGVudGlmaWVyIHRvIHJlZmVyZW5jZSB0aGUgaXRlbS5cbiAqL1xuUmVmSWQ6IHN0cmluZ1xuLyoqXG4gKiBUaGUgdGl0bGUgb2YgdGhlIGFuc3dlciBvcHRpb24uXG4gKiAgKkxlbmd0aCBDb25zdHJhaW50cyo6IE1pbmltdW0gbGVuZ3RoIG9mIDEuIE1heGltdW0gbGVuZ3RoIG9mIDEyOC5cbiAqL1xuVGV4dDogc3RyaW5nXG4vKipcbiAqIFRoZSBzY29yZSBhc3NpZ25lZCB0byB0aGUgYW5zd2VyIG9wdGlvbi5cbiAqICAqTWluaW11bSo6IDBcbiAqICAqTWF4aW11bSo6IDEwXG4gKi9cblNjb3JlPzogbnVtYmVyXG4vKipcbiAqIFRoZSBmbGFnIHRvIG1hcmsgdGhlIG9wdGlvbiBhcyBhdXRvbWF0aWMgZmFpbC4gSWYgYW4gYXV0b21hdGljIGZhaWwgYW5zd2VyIGlzIHByb3ZpZGVkLCB0aGUgb3ZlcmFsbCBldmFsdWF0aW9uIGdldHMgYSBzY29yZSBvZiAwLlxuICovXG5BdXRvbWF0aWNGYWlsPzogYm9vbGVhblxuQXV0b21hdGljRmFpbENvbmZpZ3VyYXRpb24/OiBBdXRvbWF0aWNGYWlsQ29uZmlndXJhdGlvbjFcbn1cbi8qKlxuICogV2hldGhlciBhdXRvbWF0aWMgZmFpbCBpcyBjb25maWd1cmVkIG9uIGEgc2luZ2xlIHNlbGVjdCBxdWVzdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBdXRvbWF0aWNGYWlsQ29uZmlndXJhdGlvbjEge1xuLyoqXG4gKiBUaGUgcmVmZXJlbmNlSWQgb2YgdGhlIHRhcmdldCBzZWN0aW9uIGZvciBhdXRvIGZhaWx1cmUuXG4gKi9cblRhcmdldFNlY3Rpb24/OiBzdHJpbmdcbn1cbi8qKlxuICogVGhlIGRpc3BsYXkgbW9kZSBvZiB0aGUgc2luZ2xlIHNlbGVjdCBxdWVzdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFdmFsdWF0aW9uRm9ybVNpbmdsZVNlbGVjdFF1ZXN0aW9uQXV0b21hdGlvbiB7XG4vKipcbiAqIFRoZSBhdXRvbWF0aW9uIG9wdGlvbnMgb2YgdGhlIHNpbmdsZSBzZWxlY3QgcXVlc3Rpb24uXG4gKiAgKk1pbmltdW0qOiAxXG4gKiAgKk1heGltdW0qOiAyMFxuICogXG4gKiBAbWluSXRlbXMgMVxuICogQG1heEl0ZW1zIDIwXG4gKi9cbk9wdGlvbnM6IEV2YWx1YXRpb25Gb3JtU2luZ2xlU2VsZWN0UXVlc3Rpb25BdXRvbWF0aW9uT3B0aW9uW11cbi8qKlxuICogVGhlIGlkZW50aWZpZXIgdG8gcmVmZXJlbmNlIHRoZSBpdGVtLlxuICovXG5EZWZhdWx0T3B0aW9uUmVmSWQ/OiBzdHJpbmdcbkFuc3dlclNvdXJjZT86IEV2YWx1YXRpb25Gb3JtUXVlc3Rpb25BdXRvbWF0aW9uQW5zd2VyU291cmNlMVxufVxuLyoqXG4gKiBUaGUgYXV0b21hdGlvbiBvcHRpb25zIG9mIHRoZSBzaW5nbGUgc2VsZWN0IHF1ZXN0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEV2YWx1YXRpb25Gb3JtU2luZ2xlU2VsZWN0UXVlc3Rpb25BdXRvbWF0aW9uT3B0aW9uIHtcblJ1bGVDYXRlZ29yeTogU2luZ2xlU2VsZWN0UXVlc3Rpb25SdWxlQ2F0ZWdvcnlBdXRvbWF0aW9uXG59XG4vKipcbiAqIFRoZSBhdXRvbWF0aW9uIG9wdGlvbiBiYXNlZCBvbiBhIHJ1bGUgY2F0ZWdvcnkgZm9yIHRoZSBzaW5nbGUgc2VsZWN0IHF1ZXN0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNpbmdsZVNlbGVjdFF1ZXN0aW9uUnVsZUNhdGVnb3J5QXV0b21hdGlvbiB7XG4vKipcbiAqIFRoZSBjYXRlZ29yeSBuYW1lLCBhcyBkZWZpbmVkIGluIFJ1bGVzLlxuICogICpNaW5pbXVtKjogMVxuICogICpNYXhpbXVtKjogNTBcbiAqL1xuQ2F0ZWdvcnk6IHN0cmluZ1xuLyoqXG4gKiBUaGUgY29uZGl0aW9uIHRvIGFwcGx5IGZvciB0aGUgYXV0b21hdGlvbiBvcHRpb24uIElmIHRoZSBjb25kaXRpb24gaXMgUFJFU0VOVCwgdGhlbiB0aGUgb3B0aW9uIGlzIGFwcGxpZWQgd2hlbiB0aGUgY29udGFjdCBkYXRhIGluY2x1ZGVzIHRoZSBjYXRlZ29yeS4gU2ltaWxhcmx5LCBpZiB0aGUgY29uZGl0aW9uIGlzIE5PVF9QUkVTRU5ULCB0aGVuIHRoZSBvcHRpb24gaXMgYXBwbGllZCB3aGVuIHRoZSBjb250YWN0IGRhdGEgZG9lcyBub3QgaW5jbHVkZSB0aGUgY2F0ZWdvcnkuXG4gKiAgKkFsbG93ZWQgdmFsdWVzKjogYGBQUkVTRU5UYGAgfCBgYE5PVF9QUkVTRU5UYGBcbiAqICAqTWF4aW11bSo6IDUwXG4gKi9cbkNvbmRpdGlvbjogKFwiUFJFU0VOVFwiIHwgXCJOT1RfUFJFU0VOVFwiKVxuLyoqXG4gKiBUaGUgaWRlbnRpZmllciB0byByZWZlcmVuY2UgdGhlIGl0ZW0uXG4gKi9cbk9wdGlvblJlZklkOiBzdHJpbmdcbn1cbi8qKlxuICogQXV0b21hdGlvbiBhbnN3ZXIgc291cmNlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEV2YWx1YXRpb25Gb3JtUXVlc3Rpb25BdXRvbWF0aW9uQW5zd2VyU291cmNlMSB7XG4vKipcbiAqIFRoZSBhdXRvbWF0aW9uIGFuc3dlciBzb3VyY2UgdHlwZS5cbiAqL1xuU291cmNlVHlwZTogKFwiQ09OVEFDVF9MRU5TX0RBVEFcIiB8IFwiR0VOX0FJXCIpXG59XG4vKipcbiAqIFRoZSBwcm9wZXJ0aWVzIG9mIHRoZSB0ZXh0IHF1ZXN0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEV2YWx1YXRpb25Gb3JtVGV4dFF1ZXN0aW9uUHJvcGVydGllcyB7XG5BdXRvbWF0aW9uPzogRXZhbHVhdGlvbkZvcm1UZXh0UXVlc3Rpb25BdXRvbWF0aW9uXG59XG4vKipcbiAqIFRoZSBhdXRvbWF0aW9uIHByb3BlcnRpZXMgb2YgdGhlIHRleHQgcXVlc3Rpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXZhbHVhdGlvbkZvcm1UZXh0UXVlc3Rpb25BdXRvbWF0aW9uIHtcbkFuc3dlclNvdXJjZT86IEV2YWx1YXRpb25Gb3JtUXVlc3Rpb25BdXRvbWF0aW9uQW5zd2VyU291cmNlMlxufVxuLyoqXG4gKiBBdXRvbWF0aW9uIGFuc3dlciBzb3VyY2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXZhbHVhdGlvbkZvcm1RdWVzdGlvbkF1dG9tYXRpb25BbnN3ZXJTb3VyY2UyIHtcbi8qKlxuICogVGhlIGF1dG9tYXRpb24gYW5zd2VyIHNvdXJjZSB0eXBlLlxuICovXG5Tb3VyY2VUeXBlOiAoXCJDT05UQUNUX0xFTlNfREFUQVwiIHwgXCJHRU5fQUlcIilcbn1cbi8qKlxuICogUHJvcGVydGllcyBmb3IgbXVsdGktc2VsZWN0IHF1ZXN0aW9uIHR5cGVzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEV2YWx1YXRpb25Gb3JtTXVsdGlTZWxlY3RRdWVzdGlvblByb3BlcnRpZXMge1xuLyoqXG4gKiBPcHRpb25zIGF2YWlsYWJsZSBmb3IgdGhpcyBtdWx0aS1zZWxlY3QgcXVlc3Rpb24uXG4gKiBcbiAqIEBtaW5JdGVtcyAyXG4gKiBAbWF4SXRlbXMgMjU2XG4gKi9cbk9wdGlvbnM6IEV2YWx1YXRpb25Gb3JtTXVsdGlTZWxlY3RRdWVzdGlvbk9wdGlvbltdXG4vKipcbiAqIERpc3BsYXkgZm9ybWF0IGZvciB0aGUgbXVsdGktc2VsZWN0IHF1ZXN0aW9uLlxuICovXG5EaXNwbGF5QXM/OiAoXCJEUk9QRE9XTlwiIHwgXCJDSEVDS0JPWFwiKVxuQXV0b21hdGlvbj86IEV2YWx1YXRpb25Gb3JtTXVsdGlTZWxlY3RRdWVzdGlvbkF1dG9tYXRpb25cbn1cbi8qKlxuICogQW4gb3B0aW9uIGZvciBhIG11bHRpLXNlbGVjdCBxdWVzdGlvbiBpbiBhbiBldmFsdWF0aW9uIGZvcm0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXZhbHVhdGlvbkZvcm1NdWx0aVNlbGVjdFF1ZXN0aW9uT3B0aW9uIHtcbi8qKlxuICogVGhlIGlkZW50aWZpZXIgdG8gcmVmZXJlbmNlIHRoZSBpdGVtLlxuICovXG5SZWZJZDogc3RyaW5nXG4vKipcbiAqIERpc3BsYXkgdGV4dCBmb3IgdGhpcyBvcHRpb24uXG4gKi9cblRleHQ6IHN0cmluZ1xufVxuLyoqXG4gKiBBdXRvbWF0aW9uIGNvbmZpZ3VyYXRpb24gZm9yIHRoaXMgbXVsdGktc2VsZWN0IHF1ZXN0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEV2YWx1YXRpb25Gb3JtTXVsdGlTZWxlY3RRdWVzdGlvbkF1dG9tYXRpb24ge1xuLyoqXG4gKiBBdXRvbWF0aW9uIG9wdGlvbnMgZm9yIHRoZSBtdWx0aS1zZWxlY3QgcXVlc3Rpb24uXG4gKiBcbiAqIEBtaW5JdGVtcyAxXG4gKiBAbWF4SXRlbXMgMjBcbiAqL1xuT3B0aW9uczogRXZhbHVhdGlvbkZvcm1NdWx0aVNlbGVjdFF1ZXN0aW9uQXV0b21hdGlvbk9wdGlvbltdXG5EZWZhdWx0T3B0aW9uUmVmSWRzPzogUmVmZXJlbmNlSWRMaXN0MVxuQW5zd2VyU291cmNlPzogRXZhbHVhdGlvbkZvcm1RdWVzdGlvbkF1dG9tYXRpb25BbnN3ZXJTb3VyY2UzXG59XG4vKipcbiAqIEFuIGF1dG9tYXRpb24gb3B0aW9uIGZvciBhIG11bHRpLXNlbGVjdCBxdWVzdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFdmFsdWF0aW9uRm9ybU11bHRpU2VsZWN0UXVlc3Rpb25BdXRvbWF0aW9uT3B0aW9uIHtcblJ1bGVDYXRlZ29yeTogTXVsdGlTZWxlY3RRdWVzdGlvblJ1bGVDYXRlZ29yeUF1dG9tYXRpb25cbn1cbi8qKlxuICogUnVsZSBjYXRlZ29yeSBjb25maWd1cmF0aW9uIGZvciB0aGlzIGF1dG9tYXRpb24gb3B0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE11bHRpU2VsZWN0UXVlc3Rpb25SdWxlQ2F0ZWdvcnlBdXRvbWF0aW9uIHtcbi8qKlxuICogVGhlIGNhdGVnb3J5IG5hbWUgZm9yIHRoaXMgYXV0b21hdGlvbiBydWxlLlxuICovXG5DYXRlZ29yeTogc3RyaW5nXG4vKipcbiAqIFRoZSBjb25kaXRpb24gZm9yIHRoaXMgYXV0b21hdGlvbiBydWxlLlxuICovXG5Db25kaXRpb246IChcIlBSRVNFTlRcIiB8IFwiTk9UX1BSRVNFTlRcIilcbk9wdGlvblJlZklkczogUmVmZXJlbmNlSWRMaXN0XG59XG5leHBvcnQgaW50ZXJmYWNlIEV2YWx1YXRpb25Gb3JtUXVlc3Rpb25BdXRvbWF0aW9uQW5zd2VyU291cmNlMyB7XG4vKipcbiAqIFRoZSBhdXRvbWF0aW9uIGFuc3dlciBzb3VyY2UgdHlwZS5cbiAqL1xuU291cmNlVHlwZTogKFwiQ09OVEFDVF9MRU5TX0RBVEFcIiB8IFwiR0VOX0FJXCIpXG59XG4vKipcbiAqIEEgcXVlc3Rpb24gY29uZGl0aW9uYWwgZW5hYmxlbWVudC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFdmFsdWF0aW9uRm9ybUl0ZW1FbmFibGVtZW50Q29uZmlndXJhdGlvbiB7XG5Db25kaXRpb246IEV2YWx1YXRpb25Gb3JtSXRlbUVuYWJsZW1lbnRDb25kaXRpb25cbi8qKlxuICogQW4gZW5hYmxlbWVudCBhY3Rpb24gdGhhdCBpZiBjb25kaXRpb24gaXMgc2F0aXNmaWVkLlxuICovXG5BY3Rpb246IChcIkRJU0FCTEVcIiB8IFwiRU5BQkxFXCIpXG4vKipcbiAqIEFuIGVuYWJsZW1lbnQgYWN0aW9uIHRoYXQgaWYgY29uZGl0aW9uIGlzIG5vdCBzYXRpc2ZpZWQuXG4gKi9cbkRlZmF1bHRBY3Rpb24/OiAoXCJESVNBQkxFXCIgfCBcIkVOQUJMRVwiKVxufVxuLyoqXG4gKiBBIGNvbmRpdGlvbiBmb3IgaXRlbSBlbmFibGVtZW50IGNvbmZpZ3VyYXRpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXZhbHVhdGlvbkZvcm1JdGVtRW5hYmxlbWVudENvbmRpdGlvbiB7XG4vKipcbiAqIE9wZXJhbmRzIG9mIHRoZSBlbmFibGVtZW50IGNvbmRpdGlvbi5cbiAqIFxuICogQG1pbkl0ZW1zIDFcbiAqL1xuT3BlcmFuZHM6IEV2YWx1YXRpb25Gb3JtSXRlbUVuYWJsZW1lbnRDb25kaXRpb25PcGVyYW5kW11cbi8qKlxuICogVGhlIG9wZXJhdG9yIHRvIGJlIHVzZWQgdG8gYmUgYXBwbGllZCB0byBvcGVyYW5kcyBpZiBtb3JlIHRoYW4gb25lIHByb3ZpZGVkLlxuICovXG5PcGVyYXRvcj86IChcIk9SXCIgfCBcIkFORFwiKVxufVxuLyoqXG4gKiBBbiBvcGVyYW5kIG9mIHRoZSBlbmFibGVtZW50IGNvbmRpdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFdmFsdWF0aW9uRm9ybUl0ZW1FbmFibGVtZW50Q29uZGl0aW9uT3BlcmFuZCB7XG5FeHByZXNzaW9uPzogRXZhbHVhdGlvbkZvcm1JdGVtRW5hYmxlbWVudEV4cHJlc3Npb25cbn1cbi8qKlxuICogQW4gZXhwcmVzc2lvbiBvZiB0aGUgZW5hYmxlbWVudCBjb25kaXRpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXZhbHVhdGlvbkZvcm1JdGVtRW5hYmxlbWVudEV4cHJlc3Npb24ge1xuU291cmNlOiBFdmFsdWF0aW9uRm9ybUl0ZW1FbmFibGVtZW50U291cmNlXG4vKipcbiAqIEEgbGlzdCBvZiB2YWx1ZXMgZnJvbSBzb3VyY2UgaXRlbS5cbiAqIFxuICogQG1pbkl0ZW1zIDFcbiAqL1xuVmFsdWVzOiBFdmFsdWF0aW9uRm9ybUl0ZW1FbmFibGVtZW50U291cmNlVmFsdWVbXVxuLyoqXG4gKiBBIGNvbXBhcmF0b3IgdG8gYmUgdXNlZCBhZ2FpbnN0IGxpc3Qgb2YgdmFsdWVzLlxuICovXG5Db21wYXJhdG9yOiAoXCJJTlwiIHwgXCJOT1RfSU5cIiB8IFwiQUxMX0lOXCIgfCBcIkVYQUNUXCIpXG59XG4vKipcbiAqIEEgc291cmNlIGl0ZW0gb2YgZW5hYmxlbWVudCBleHByZXNzaW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEV2YWx1YXRpb25Gb3JtSXRlbUVuYWJsZW1lbnRTb3VyY2Uge1xuLyoqXG4gKiBBIHR5cGUgb2Ygc291cmNlIGl0ZW0uXG4gKi9cblR5cGU6IFwiUVVFU1RJT05fUkVGX0lEXCJcbi8qKlxuICogVGhlIGlkZW50aWZpZXIgdG8gcmVmZXJlbmNlIHRoZSBpdGVtLlxuICovXG5SZWZJZD86IHN0cmluZ1xufVxuLyoqXG4gKiBBbiBlbmFibGVtZW50IGV4cHJlc3Npb24gc291cmNlIHZhbHVlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEV2YWx1YXRpb25Gb3JtSXRlbUVuYWJsZW1lbnRTb3VyY2VWYWx1ZSB7XG4vKipcbiAqIEEgdHlwZSBvZiBzb3VyY2UgaXRlbSB2YWx1ZS5cbiAqL1xuVHlwZT86IFwiT1BUSU9OX1JFRl9JRFwiXG4vKipcbiAqIFRoZSBpZGVudGlmaWVyIHRvIHJlZmVyZW5jZSB0aGUgaXRlbS5cbiAqL1xuUmVmSWQ/OiBzdHJpbmdcbn1cbi8qKlxuICogQSBzY29yaW5nIHN0cmF0ZWd5IG9mIHRoZSBldmFsdWF0aW9uIGZvcm0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2NvcmluZ1N0cmF0ZWd5IHtcbi8qKlxuICogVGhlIHNjb3JpbmcgbW9kZSBvZiB0aGUgZXZhbHVhdGlvbiBmb3JtLlxuICogICpBbGxvd2VkIHZhbHVlcyo6IGBgUVVFU1RJT05fT05MWWBgIHwgYGBTRUNUSU9OX09OTFlgYFxuICovXG5Nb2RlOiAoXCJRVUVTVElPTl9PTkxZXCIgfCBcIlNFQ1RJT05fT05MWVwiKVxuLyoqXG4gKiBUaGUgc2NvcmluZyBzdGF0dXMgb2YgdGhlIGV2YWx1YXRpb24gZm9ybS5cbiAqICAqQWxsb3dlZCB2YWx1ZXMqOiBgYEVOQUJMRURgYCB8IGBgRElTQUJMRURgYFxuICovXG5TdGF0dXM6IChcIkVOQUJMRURcIiB8IFwiRElTQUJMRURcIilcbn1cbi8qKlxuICogVGhlIGF1dG9tYXRpYyBldmFsdWF0aW9uIGNvbmZpZ3VyYXRpb24gb2YgYW4gZXZhbHVhdGlvbiBmb3JtLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEF1dG9FdmFsdWF0aW9uQ29uZmlndXJhdGlvbiB7XG5FbmFibGVkPzogYm9vbGVhblxufVxuLyoqXG4gKiBDb25maWd1cmF0aW9uIHRoYXQgc3BlY2lmaWVzIHRoZSB0YXJnZXQgZm9yIHRoaXMgZXZhbHVhdGlvbiBmb3JtLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEV2YWx1YXRpb25Gb3JtVGFyZ2V0Q29uZmlndXJhdGlvbiB7XG4vKipcbiAqIFRoZSBjb250YWN0IGludGVyYWN0aW9uIHR5cGUgZm9yIHRoaXMgZXZhbHVhdGlvbiBmb3JtLlxuICovXG5Db250YWN0SW50ZXJhY3Rpb25UeXBlOiAoXCJBR0VOVFwiIHwgXCJBVVRPTUFURURcIilcbn1cbi8qKlxuICogQ29uZmlndXJhdGlvbiBmb3IgbGFuZ3VhZ2Ugc2V0dGluZ3Mgb2YgdGhpcyBldmFsdWF0aW9uIGZvcm0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXZhbHVhdGlvbkZvcm1MYW5ndWFnZUNvbmZpZ3VyYXRpb24ge1xuLyoqXG4gKiBUaGUgbGFuZ3VhZ2UgZm9yIHRoZSBldmFsdWF0aW9uIGZvcm0uXG4gKi9cbkZvcm1MYW5ndWFnZT86IChcImRlLURFXCIgfCBcImVuLVVTXCIgfCBcImVzLUVTXCIgfCBcImZyLUZSXCIgfCBcIml0LUlUXCIgfCBcInB0LUJSXCIpXG59XG4vKipcbiAqIEEga2V5LXZhbHVlIHBhaXIgdG8gYXNzb2NpYXRlIHdpdGggYSByZXNvdXJjZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUYWcge1xuLyoqXG4gKiBUaGUga2V5IG5hbWUgb2YgdGhlIHRhZy4gWW91IGNhbiBzcGVjaWZ5IGEgdmFsdWUgdGhhdCBpcyAxIHRvIDEyOCBVbmljb2RlIGNoYXJhY3RlcnMgaW4gbGVuZ3RoIGFuZCBjYW5ub3QgYmUgcHJlZml4ZWQgd2l0aCBhd3M6LiBZb3UgY2FuIHVzZSBhbnkgb2YgdGhlIGZvbGxvd2luZyBjaGFyYWN0ZXJzOiB0aGUgc2V0IG9mIFVuaWNvZGUgbGV0dGVycywgZGlnaXRzLCB3aGl0ZXNwYWNlLCBfLCAuLCAvLCA9LCArLCBhbmQgLVxuICovXG5LZXk6IHN0cmluZ1xuLyoqXG4gKiBUaGUgdmFsdWUgZm9yIHRoZSB0YWcuIFlvdSBjYW4gc3BlY2lmeSBhIHZhbHVlIHRoYXQgaXMgMCB0byAyNTYgVW5pY29kZSBjaGFyYWN0ZXJzIGluIGxlbmd0aCBhbmQgY2Fubm90IGJlIHByZWZpeGVkIHdpdGggYXdzOi4gWW91IGNhbiB1c2UgYW55IG9mIHRoZSBmb2xsb3dpbmcgY2hhcmFjdGVyczogdGhlIHNldCBvZiBVbmljb2RlIGxldHRlcnMsIGRpZ2l0cywgd2hpdGVzcGFjZSwgXywgLiwgLywgPSwgKywgYW5kIC1cbiAqL1xuVmFsdWU6IHN0cmluZ1xufVxuIl19
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWNvbm5lY3QtZXZhbHVhdGlvbmZvcm0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJhd3MtY29ubmVjdC1ldmFsdWF0aW9uZm9ybS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUaGUgaWRlbnRpZmllciB0byByZWZlcmVuY2UgdGhlIGl0ZW0uXG4gKi9cbmV4cG9ydCB0eXBlIFJlZklkID0gc3RyaW5nXG4vKipcbiAqIFJlZmVyZW5jZSBJRHMgb2Ygb3B0aW9ucyBmb3IgdGhpcyBhdXRvbWF0aW9uIHJ1bGUuXG4gKi9cbmV4cG9ydCB0eXBlIFJlZmVyZW5jZUlkTGlzdCA9IFJlZklkW11cbi8qKlxuICogUmVmZXJlbmNlIElEcyBvZiBkZWZhdWx0IG9wdGlvbnMuXG4gKi9cbmV4cG9ydCB0eXBlIFJlZmVyZW5jZUlkTGlzdDEgPSBSZWZJZFtdXG5cbi8qKlxuICogQ3JlYXRlcyBhbiBldmFsdWF0aW9uIGZvcm0gZm9yIHRoZSBzcGVjaWZpZWQgQ09OIGluc3RhbmNlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIF9BV1NfQ09OTkVDVF9FVkFMVUFUSU9ORk9STSB7XG4vKipcbiAqIEEgdGl0bGUgb2YgdGhlIGV2YWx1YXRpb24gZm9ybS5cbiAqL1xuVGl0bGU6IHN0cmluZ1xuLyoqXG4gKiBUaGUgZGVzY3JpcHRpb24gb2YgdGhlIGV2YWx1YXRpb24gZm9ybS5cbiAqICAqTGVuZ3RoIENvbnN0cmFpbnRzKjogTWluaW11bSBsZW5ndGggb2YgMC4gTWF4aW11bSBsZW5ndGggb2YgMTAyNC5cbiAqL1xuRGVzY3JpcHRpb24/OiBzdHJpbmdcbkV2YWx1YXRpb25Gb3JtQXJuPzogc3RyaW5nXG4vKipcbiAqIFRoZSBpZGVudGlmaWVyIG9mIHRoZSBBbWF6b24gQ29ubmVjdCBpbnN0YW5jZS5cbiAqL1xuSW5zdGFuY2VBcm46IHN0cmluZ1xuLyoqXG4gKiBJdGVtcyB0aGF0IGFyZSBwYXJ0IG9mIHRoZSBldmFsdWF0aW9uIGZvcm0uIFRoZSB0b3RhbCBudW1iZXIgb2Ygc2VjdGlvbnMgYW5kIHF1ZXN0aW9ucyBtdXN0IG5vdCBleGNlZWQgMTAwIGVhY2guIFF1ZXN0aW9ucyBtdXN0IGJlIGNvbnRhaW5lZCBpbiBhIHNlY3Rpb24uXG4gKiAgKk1pbmltdW0gc2l6ZSo6IDFcbiAqICAqTWF4aW11bSBzaXplKjogMTAwXG4gKiBcbiAqIEBtaW5JdGVtcyAxXG4gKiBAbWF4SXRlbXMgMjAwXG4gKi9cbkl0ZW1zOiBFdmFsdWF0aW9uRm9ybUJhc2VJdGVtW11cblNjb3JpbmdTdHJhdGVneT86IFNjb3JpbmdTdHJhdGVneVxuQXV0b0V2YWx1YXRpb25Db25maWd1cmF0aW9uPzogQXV0b0V2YWx1YXRpb25Db25maWd1cmF0aW9uXG4vKipcbiAqIFRoZSBzdGF0dXMgb2YgdGhlIGV2YWx1YXRpb24gZm9ybS5cbiAqICAqQWxsb3dlZCB2YWx1ZXMqOiBgYERSQUZUYGAgfCBgYEFDVElWRWBgXG4gKi9cblN0YXR1czogKFwiRFJBRlRcIiB8IFwiQUNUSVZFXCIpXG5UYXJnZXRDb25maWd1cmF0aW9uPzogRXZhbHVhdGlvbkZvcm1UYXJnZXRDb25maWd1cmF0aW9uXG5MYW5ndWFnZUNvbmZpZ3VyYXRpb24/OiBFdmFsdWF0aW9uRm9ybUxhbmd1YWdlQ29uZmlndXJhdGlvblxuUmV2aWV3Q29uZmlndXJhdGlvbj86IEV2YWx1YXRpb25SZXZpZXdDb25maWd1cmF0aW9uXG4vKipcbiAqIFRoZSB0YWdzIHVzZWQgdG8gb3JnYW5pemUsIHRyYWNrLCBvciBjb250cm9sIGFjY2VzcyBmb3IgdGhpcyByZXNvdXJjZS4gRm9yIGV4YW1wbGUsIHsgXCJ0YWdzXCI6IHtcImtleTFcIjpcInZhbHVlMVwiLCBcImtleTJcIjpcInZhbHVlMlwifSB9LlxuICogXG4gKiBAbWF4SXRlbXMgNTBcbiAqL1xuVGFncz86IFRhZ1tdXG59XG4vKipcbiAqIEFuIGl0ZW0gYXQgdGhlIHJvb3QgbGV2ZWwuIEFsbCBpdGVtcyBtdXN0IGJlIHNlY3Rpb25zLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEV2YWx1YXRpb25Gb3JtQmFzZUl0ZW0ge1xuU2VjdGlvbjogRXZhbHVhdGlvbkZvcm1TZWN0aW9uXG59XG4vKipcbiAqIEEgc3Vic2VjdGlvbiBvciBpbm5lciBzZWN0aW9uIG9mIGFuIGl0ZW0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXZhbHVhdGlvbkZvcm1TZWN0aW9uIHtcbi8qKlxuICogVGhlIHRpdGxlIG9mIHRoZSBzZWN0aW9uLlxuICogICpMZW5ndGggQ29uc3RyYWludHMqOiBNaW5pbXVtIGxlbmd0aCBvZiAxLiBNYXhpbXVtIGxlbmd0aCBvZiAxMjguXG4gKi9cblRpdGxlOiBzdHJpbmdcbi8qKlxuICogVGhlIGluc3RydWN0aW9ucyBvZiB0aGUgc2VjdGlvbi5cbiAqL1xuSW5zdHJ1Y3Rpb25zPzogc3RyaW5nXG4vKipcbiAqIFRoZSBpZGVudGlmaWVyIHRvIHJlZmVyZW5jZSB0aGUgaXRlbS5cbiAqL1xuUmVmSWQ6IHN0cmluZ1xuLyoqXG4gKiBUaGUgaXRlbXMgb2YgdGhlIHNlY3Rpb24uXG4gKiAgKk1pbmltdW0qOiAxXG4gKiBcbiAqIEBtaW5JdGVtcyAxXG4gKiBAbWF4SXRlbXMgMjAwXG4gKi9cbkl0ZW1zPzogRXZhbHVhdGlvbkZvcm1JdGVtW11cbi8qKlxuICogVGhlIHNjb3Jpbmcgd2VpZ2h0IG9mIHRoZSBzZWN0aW9uLlxuICogICpNaW5pbXVtKjogMCBcbiAqICAqTWF4aW11bSo6IDEwMFxuICovXG5XZWlnaHQ/OiBudW1iZXJcbn1cbi8qKlxuICogSXRlbXMgdGhhdCBhcmUgcGFydCBvZiB0aGUgZXZhbHVhdGlvbiBmb3JtLiBUaGUgdG90YWwgbnVtYmVyIG9mIHNlY3Rpb25zIGFuZCBxdWVzdGlvbnMgbXVzdCBub3QgZXhjZWVkIDEwMCBlYWNoLiBRdWVzdGlvbnMgbXVzdCBiZSBjb250YWluZWQgaW4gYSBzZWN0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEV2YWx1YXRpb25Gb3JtSXRlbSB7XG5TZWN0aW9uPzogRXZhbHVhdGlvbkZvcm1TZWN0aW9uMVxuUXVlc3Rpb24/OiBFdmFsdWF0aW9uRm9ybVF1ZXN0aW9uXG59XG4vKipcbiAqIFRoZSBpbmZvcm1hdGlvbiBvZiB0aGUgc2VjdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFdmFsdWF0aW9uRm9ybVNlY3Rpb24xIHtcbi8qKlxuICogVGhlIHRpdGxlIG9mIHRoZSBzZWN0aW9uLlxuICogICpMZW5ndGggQ29uc3RyYWludHMqOiBNaW5pbXVtIGxlbmd0aCBvZiAxLiBNYXhpbXVtIGxlbmd0aCBvZiAxMjguXG4gKi9cblRpdGxlOiBzdHJpbmdcbi8qKlxuICogVGhlIGluc3RydWN0aW9ucyBvZiB0aGUgc2VjdGlvbi5cbiAqL1xuSW5zdHJ1Y3Rpb25zPzogc3RyaW5nXG4vKipcbiAqIFRoZSBpZGVudGlmaWVyIHRvIHJlZmVyZW5jZSB0aGUgaXRlbS5cbiAqL1xuUmVmSWQ6IHN0cmluZ1xuLyoqXG4gKiBUaGUgaXRlbXMgb2YgdGhlIHNlY3Rpb24uXG4gKiAgKk1pbmltdW0qOiAxXG4gKiBcbiAqIEBtaW5JdGVtcyAxXG4gKiBAbWF4SXRlbXMgMjAwXG4gKi9cbkl0ZW1zPzogRXZhbHVhdGlvbkZvcm1JdGVtW11cbi8qKlxuICogVGhlIHNjb3Jpbmcgd2VpZ2h0IG9mIHRoZSBzZWN0aW9uLlxuICogICpNaW5pbXVtKjogMCBcbiAqICAqTWF4aW11bSo6IDEwMFxuICovXG5XZWlnaHQ/OiBudW1iZXJcbn1cbi8qKlxuICogVGhlIGluZm9ybWF0aW9uIG9mIHRoZSBxdWVzdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFdmFsdWF0aW9uRm9ybVF1ZXN0aW9uIHtcbi8qKlxuICogVGhlIHRpdGxlIG9mIHRoZSBxdWVzdGlvbi5cbiAqICAqTGVuZ3RoIENvbnN0cmFpbnRzKjogTWluaW11bSBsZW5ndGggb2YgMS4gTWF4aW11bSBsZW5ndGggb2YgMzUwLlxuICovXG5UaXRsZTogc3RyaW5nXG4vKipcbiAqIFRoZSBpbnN0cnVjdGlvbnMgb2YgdGhlIHNlY3Rpb24uXG4gKiAgKkxlbmd0aCBDb25zdHJhaW50cyo6IE1pbmltdW0gbGVuZ3RoIG9mIDAuIE1heGltdW0gbGVuZ3RoIG9mIDEwMjQuXG4gKi9cbkluc3RydWN0aW9ucz86IHN0cmluZ1xuLyoqXG4gKiBUaGUgaWRlbnRpZmllciB0byByZWZlcmVuY2UgdGhlIGl0ZW0uXG4gKi9cblJlZklkOiBzdHJpbmdcbi8qKlxuICogVGhlIGZsYWcgdG8gZW5hYmxlIG5vdCBhcHBsaWNhYmxlIGFuc3dlcnMgdG8gdGhlIHF1ZXN0aW9uLlxuICovXG5Ob3RBcHBsaWNhYmxlRW5hYmxlZD86IGJvb2xlYW5cbi8qKlxuICogVGhlIHR5cGUgb2YgdGhlIHF1ZXN0aW9uLlxuICogICpBbGxvd2VkIHZhbHVlcyo6IGBgTlVNRVJJQ2BgIHwgYGBTSU5HTEVTRUxFQ1RgYCB8IGBgVEVYVGBgXG4gKi9cblF1ZXN0aW9uVHlwZTogKFwiTlVNRVJJQ1wiIHwgXCJTSU5HTEVTRUxFQ1RcIiB8IFwiVEVYVFwiIHwgXCJNVUxUSVNFTEVDVFwiIHwgXCJEQVRFVElNRVwiKVxuUXVlc3Rpb25UeXBlUHJvcGVydGllcz86IEV2YWx1YXRpb25Gb3JtUXVlc3Rpb25UeXBlUHJvcGVydGllc1xuLyoqXG4gKiBUaGUgc2NvcmluZyB3ZWlnaHQgb2YgdGhlIHNlY3Rpb24uXG4gKiAgKk1pbmltdW0qOiAwXG4gKiAgKk1heGltdW0qOiAxMDBcbiAqL1xuV2VpZ2h0PzogbnVtYmVyXG5FbmFibGVtZW50PzogRXZhbHVhdGlvbkZvcm1JdGVtRW5hYmxlbWVudENvbmZpZ3VyYXRpb25cbn1cbi8qKlxuICogVGhlIHByb3BlcnRpZXMgb2YgdGhlIHR5cGUgb2YgcXVlc3Rpb24uIFRleHQgcXVlc3Rpb25zIGRvIG5vdCBoYXZlIHRvIGRlZmluZSBxdWVzdGlvbiB0eXBlIHByb3BlcnRpZXMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXZhbHVhdGlvbkZvcm1RdWVzdGlvblR5cGVQcm9wZXJ0aWVzIHtcbk51bWVyaWM/OiBFdmFsdWF0aW9uRm9ybU51bWVyaWNRdWVzdGlvblByb3BlcnRpZXNcblNpbmdsZVNlbGVjdD86IEV2YWx1YXRpb25Gb3JtU2luZ2xlU2VsZWN0UXVlc3Rpb25Qcm9wZXJ0aWVzXG5UZXh0PzogRXZhbHVhdGlvbkZvcm1UZXh0UXVlc3Rpb25Qcm9wZXJ0aWVzXG5NdWx0aVNlbGVjdD86IEV2YWx1YXRpb25Gb3JtTXVsdGlTZWxlY3RRdWVzdGlvblByb3BlcnRpZXNcbn1cbi8qKlxuICogVGhlIHByb3BlcnRpZXMgb2YgdGhlIG51bWVyaWMgcXVlc3Rpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXZhbHVhdGlvbkZvcm1OdW1lcmljUXVlc3Rpb25Qcm9wZXJ0aWVzIHtcbi8qKlxuICogVGhlIG1pbmltdW0gYW5zd2VyIHZhbHVlLlxuICovXG5NaW5WYWx1ZTogbnVtYmVyXG4vKipcbiAqIFRoZSBtYXhpbXVtIGFuc3dlciB2YWx1ZS5cbiAqL1xuTWF4VmFsdWU6IG51bWJlclxuLyoqXG4gKiBUaGUgc2NvcmluZyBvcHRpb25zIG9mIHRoZSBudW1lcmljIHF1ZXN0aW9uLlxuICogXG4gKiBAbWluSXRlbXMgMVxuICogQG1heEl0ZW1zIDEwXG4gKi9cbk9wdGlvbnM/OiBFdmFsdWF0aW9uRm9ybU51bWVyaWNRdWVzdGlvbk9wdGlvbltdXG5BdXRvbWF0aW9uPzogRXZhbHVhdGlvbkZvcm1OdW1lcmljUXVlc3Rpb25BdXRvbWF0aW9uXG59XG4vKipcbiAqIEluZm9ybWF0aW9uIGFib3V0IHRoZSBvcHRpb24gcmFuZ2UgdXNlZCBmb3Igc2NvcmluZyBpbiBudW1lcmljIHF1ZXN0aW9ucy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFdmFsdWF0aW9uRm9ybU51bWVyaWNRdWVzdGlvbk9wdGlvbiB7XG4vKipcbiAqIFRoZSBtaW5pbXVtIGFuc3dlciB2YWx1ZSBvZiB0aGUgcmFuZ2Ugb3B0aW9uLlxuICovXG5NaW5WYWx1ZTogbnVtYmVyXG4vKipcbiAqIFRoZSBtYXhpbXVtIGFuc3dlciB2YWx1ZSBvZiB0aGUgcmFuZ2Ugb3B0aW9uLlxuICovXG5NYXhWYWx1ZTogbnVtYmVyXG4vKipcbiAqIFRoZSBzY29yZSBhc3NpZ25lZCB0byBhbnN3ZXIgdmFsdWVzIHdpdGhpbiB0aGUgcmFuZ2Ugb3B0aW9uLlxuICogICpNaW5pbXVtKjogMFxuICogICpNYXhpbXVtKjogMTBcbiAqL1xuU2NvcmU/OiBudW1iZXJcbi8qKlxuICogVGhlIGZsYWcgdG8gbWFyayB0aGUgb3B0aW9uIGFzIGF1dG9tYXRpYyBmYWlsLiBJZiBhbiBhdXRvbWF0aWMgZmFpbCBhbnN3ZXIgaXMgcHJvdmlkZWQsIHRoZSBvdmVyYWxsIGV2YWx1YXRpb24gZ2V0cyBhIHNjb3JlIG9mIDAuXG4gKi9cbkF1dG9tYXRpY0ZhaWw/OiBib29sZWFuXG5BdXRvbWF0aWNGYWlsQ29uZmlndXJhdGlvbj86IEF1dG9tYXRpY0ZhaWxDb25maWd1cmF0aW9uXG59XG4vKipcbiAqIEEgY29uZmlndXJhdGlvbiBmb3IgYXV0b21hdGljIGZhaWwuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXV0b21hdGljRmFpbENvbmZpZ3VyYXRpb24ge1xuLyoqXG4gKiBUaGUgcmVmZXJlbmNlSWQgb2YgdGhlIHRhcmdldCBzZWN0aW9uIGZvciBhdXRvIGZhaWx1cmUuXG4gKi9cblRhcmdldFNlY3Rpb24/OiBzdHJpbmdcbn1cbi8qKlxuICogVGhlIGF1dG9tYXRpb24gcHJvcGVydGllcyBvZiB0aGUgbnVtZXJpYyBxdWVzdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFdmFsdWF0aW9uRm9ybU51bWVyaWNRdWVzdGlvbkF1dG9tYXRpb24ge1xuUHJvcGVydHlWYWx1ZT86IE51bWVyaWNRdWVzdGlvblByb3BlcnR5VmFsdWVBdXRvbWF0aW9uXG5BbnN3ZXJTb3VyY2U/OiBFdmFsdWF0aW9uRm9ybVF1ZXN0aW9uQXV0b21hdGlvbkFuc3dlclNvdXJjZVxufVxuLyoqXG4gKiBUaGUgcHJvcGVydHkgdmFsdWUgb2YgdGhlIGF1dG9tYXRpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTnVtZXJpY1F1ZXN0aW9uUHJvcGVydHlWYWx1ZUF1dG9tYXRpb24ge1xuLyoqXG4gKiBUaGUgcHJvcGVydHkgbGFiZWwgb2YgdGhlIGF1dG9tYXRpb24uXG4gKi9cbkxhYmVsOiAoXCJPVkVSQUxMX0NVU1RPTUVSX1NFTlRJTUVOVF9TQ09SRVwiIHwgXCJPVkVSQUxMX0FHRU5UX1NFTlRJTUVOVF9TQ09SRVwiIHwgXCJOT05fVEFMS19USU1FXCIgfCBcIk5PTl9UQUxLX1RJTUVfUEVSQ0VOVEFHRVwiIHwgXCJOVU1CRVJfT0ZfSU5URVJSVVBUSU9OU1wiIHwgXCJDT05UQUNUX0RVUkFUSU9OXCIgfCBcIkFHRU5UX0lOVEVSQUNUSU9OX0RVUkFUSU9OXCIgfCBcIkNVU1RPTUVSX0hPTERfVElNRVwiIHwgXCJMT05HRVNUX0hPTERfRFVSQVRJT05cIiB8IFwiTlVNQkVSX09GX0hPTERTXCIgfCBcIkFHRU5UX0lOVEVSQUNUSU9OX0FORF9IT0xEX0RVUkFUSU9OXCIgfCBcIkNVU1RPTUVSX1NFTlRJTUVOVF9TQ09SRV9XSVRIT1VUX0FHRU5UXCIgfCBcIkNVU1RPTUVSX1NFTlRJTUVOVF9TQ09SRV9XSVRIX0FHRU5UXCIpXG59XG4vKipcbiAqIEEgc291cmNlIG9mIGF1dG9tYXRpb24gYW5zd2VyIGZvciBudW1lcmljIHF1ZXN0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEV2YWx1YXRpb25Gb3JtUXVlc3Rpb25BdXRvbWF0aW9uQW5zd2VyU291cmNlIHtcbi8qKlxuICogVGhlIGF1dG9tYXRpb24gYW5zd2VyIHNvdXJjZSB0eXBlLlxuICovXG5Tb3VyY2VUeXBlOiAoXCJDT05UQUNUX0xFTlNfREFUQVwiIHwgXCJHRU5fQUlcIilcbn1cbi8qKlxuICogVGhlIHByb3BlcnRpZXMgb2YgdGhlIG51bWVyaWMgcXVlc3Rpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXZhbHVhdGlvbkZvcm1TaW5nbGVTZWxlY3RRdWVzdGlvblByb3BlcnRpZXMge1xuLyoqXG4gKiBUaGUgYW5zd2VyIG9wdGlvbnMgb2YgdGhlIHNpbmdsZSBzZWxlY3QgcXVlc3Rpb24uXG4gKiAgKk1pbmltdW0qOiAyXG4gKiAgKk1heGltdW0qOiAyNTZcbiAqIFxuICogQG1pbkl0ZW1zIDJcbiAqIEBtYXhJdGVtcyAyNTZcbiAqL1xuT3B0aW9uczogRXZhbHVhdGlvbkZvcm1TaW5nbGVTZWxlY3RRdWVzdGlvbk9wdGlvbltdXG4vKipcbiAqIFRoZSBkaXNwbGF5IG1vZGUgb2YgdGhlIHNpbmdsZSBzZWxlY3QgcXVlc3Rpb24uXG4gKiAgKkFsbG93ZWQgdmFsdWVzKjogYGBEUk9QRE9XTmBgIHwgYGBSQURJT2BgXG4gKi9cbkRpc3BsYXlBcz86IChcIkRST1BET1dOXCIgfCBcIlJBRElPXCIpXG5BdXRvbWF0aW9uPzogRXZhbHVhdGlvbkZvcm1TaW5nbGVTZWxlY3RRdWVzdGlvbkF1dG9tYXRpb25cbn1cbi8qKlxuICogSW5mb3JtYXRpb24gYWJvdXQgdGhlIGF1dG9tYXRpb24gY29uZmlndXJhdGlvbiBpbiBzaW5nbGUgc2VsZWN0IHF1ZXN0aW9ucy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFdmFsdWF0aW9uRm9ybVNpbmdsZVNlbGVjdFF1ZXN0aW9uT3B0aW9uIHtcbi8qKlxuICogVGhlIGlkZW50aWZpZXIgdG8gcmVmZXJlbmNlIHRoZSBpdGVtLlxuICovXG5SZWZJZDogc3RyaW5nXG4vKipcbiAqIFRoZSB0aXRsZSBvZiB0aGUgYW5zd2VyIG9wdGlvbi5cbiAqICAqTGVuZ3RoIENvbnN0cmFpbnRzKjogTWluaW11bSBsZW5ndGggb2YgMS4gTWF4aW11bSBsZW5ndGggb2YgMTI4LlxuICovXG5UZXh0OiBzdHJpbmdcbi8qKlxuICogVGhlIHNjb3JlIGFzc2lnbmVkIHRvIHRoZSBhbnN3ZXIgb3B0aW9uLlxuICogICpNaW5pbXVtKjogMFxuICogICpNYXhpbXVtKjogMTBcbiAqL1xuU2NvcmU/OiBudW1iZXJcbi8qKlxuICogVGhlIGZsYWcgdG8gbWFyayB0aGUgb3B0aW9uIGFzIGF1dG9tYXRpYyBmYWlsLiBJZiBhbiBhdXRvbWF0aWMgZmFpbCBhbnN3ZXIgaXMgcHJvdmlkZWQsIHRoZSBvdmVyYWxsIGV2YWx1YXRpb24gZ2V0cyBhIHNjb3JlIG9mIDAuXG4gKi9cbkF1dG9tYXRpY0ZhaWw/OiBib29sZWFuXG5BdXRvbWF0aWNGYWlsQ29uZmlndXJhdGlvbj86IEF1dG9tYXRpY0ZhaWxDb25maWd1cmF0aW9uMVxufVxuLyoqXG4gKiBXaGV0aGVyIGF1dG9tYXRpYyBmYWlsIGlzIGNvbmZpZ3VyZWQgb24gYSBzaW5nbGUgc2VsZWN0IHF1ZXN0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEF1dG9tYXRpY0ZhaWxDb25maWd1cmF0aW9uMSB7XG4vKipcbiAqIFRoZSByZWZlcmVuY2VJZCBvZiB0aGUgdGFyZ2V0IHNlY3Rpb24gZm9yIGF1dG8gZmFpbHVyZS5cbiAqL1xuVGFyZ2V0U2VjdGlvbj86IHN0cmluZ1xufVxuLyoqXG4gKiBUaGUgZGlzcGxheSBtb2RlIG9mIHRoZSBzaW5nbGUgc2VsZWN0IHF1ZXN0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEV2YWx1YXRpb25Gb3JtU2luZ2xlU2VsZWN0UXVlc3Rpb25BdXRvbWF0aW9uIHtcbi8qKlxuICogVGhlIGF1dG9tYXRpb24gb3B0aW9ucyBvZiB0aGUgc2luZ2xlIHNlbGVjdCBxdWVzdGlvbi5cbiAqICAqTWluaW11bSo6IDFcbiAqICAqTWF4aW11bSo6IDIwXG4gKiBcbiAqIEBtaW5JdGVtcyAxXG4gKiBAbWF4SXRlbXMgMjBcbiAqL1xuT3B0aW9uczogRXZhbHVhdGlvbkZvcm1TaW5nbGVTZWxlY3RRdWVzdGlvbkF1dG9tYXRpb25PcHRpb25bXVxuLyoqXG4gKiBUaGUgaWRlbnRpZmllciB0byByZWZlcmVuY2UgdGhlIGl0ZW0uXG4gKi9cbkRlZmF1bHRPcHRpb25SZWZJZD86IHN0cmluZ1xuQW5zd2VyU291cmNlPzogRXZhbHVhdGlvbkZvcm1RdWVzdGlvbkF1dG9tYXRpb25BbnN3ZXJTb3VyY2UxXG59XG4vKipcbiAqIFRoZSBhdXRvbWF0aW9uIG9wdGlvbnMgb2YgdGhlIHNpbmdsZSBzZWxlY3QgcXVlc3Rpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXZhbHVhdGlvbkZvcm1TaW5nbGVTZWxlY3RRdWVzdGlvbkF1dG9tYXRpb25PcHRpb24ge1xuUnVsZUNhdGVnb3J5OiBTaW5nbGVTZWxlY3RRdWVzdGlvblJ1bGVDYXRlZ29yeUF1dG9tYXRpb25cbn1cbi8qKlxuICogVGhlIGF1dG9tYXRpb24gb3B0aW9uIGJhc2VkIG9uIGEgcnVsZSBjYXRlZ29yeSBmb3IgdGhlIHNpbmdsZSBzZWxlY3QgcXVlc3Rpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2luZ2xlU2VsZWN0UXVlc3Rpb25SdWxlQ2F0ZWdvcnlBdXRvbWF0aW9uIHtcbi8qKlxuICogVGhlIGNhdGVnb3J5IG5hbWUsIGFzIGRlZmluZWQgaW4gUnVsZXMuXG4gKiAgKk1pbmltdW0qOiAxXG4gKiAgKk1heGltdW0qOiA1MFxuICovXG5DYXRlZ29yeTogc3RyaW5nXG4vKipcbiAqIFRoZSBjb25kaXRpb24gdG8gYXBwbHkgZm9yIHRoZSBhdXRvbWF0aW9uIG9wdGlvbi4gSWYgdGhlIGNvbmRpdGlvbiBpcyBQUkVTRU5ULCB0aGVuIHRoZSBvcHRpb24gaXMgYXBwbGllZCB3aGVuIHRoZSBjb250YWN0IGRhdGEgaW5jbHVkZXMgdGhlIGNhdGVnb3J5LiBTaW1pbGFybHksIGlmIHRoZSBjb25kaXRpb24gaXMgTk9UX1BSRVNFTlQsIHRoZW4gdGhlIG9wdGlvbiBpcyBhcHBsaWVkIHdoZW4gdGhlIGNvbnRhY3QgZGF0YSBkb2VzIG5vdCBpbmNsdWRlIHRoZSBjYXRlZ29yeS5cbiAqICAqQWxsb3dlZCB2YWx1ZXMqOiBgYFBSRVNFTlRgYCB8IGBgTk9UX1BSRVNFTlRgYFxuICogICpNYXhpbXVtKjogNTBcbiAqL1xuQ29uZGl0aW9uOiAoXCJQUkVTRU5UXCIgfCBcIk5PVF9QUkVTRU5UXCIpXG4vKipcbiAqIFRoZSBpZGVudGlmaWVyIHRvIHJlZmVyZW5jZSB0aGUgaXRlbS5cbiAqL1xuT3B0aW9uUmVmSWQ6IHN0cmluZ1xufVxuLyoqXG4gKiBBdXRvbWF0aW9uIGFuc3dlciBzb3VyY2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXZhbHVhdGlvbkZvcm1RdWVzdGlvbkF1dG9tYXRpb25BbnN3ZXJTb3VyY2UxIHtcbi8qKlxuICogVGhlIGF1dG9tYXRpb24gYW5zd2VyIHNvdXJjZSB0eXBlLlxuICovXG5Tb3VyY2VUeXBlOiAoXCJDT05UQUNUX0xFTlNfREFUQVwiIHwgXCJHRU5fQUlcIilcbn1cbi8qKlxuICogVGhlIHByb3BlcnRpZXMgb2YgdGhlIHRleHQgcXVlc3Rpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXZhbHVhdGlvbkZvcm1UZXh0UXVlc3Rpb25Qcm9wZXJ0aWVzIHtcbkF1dG9tYXRpb24/OiBFdmFsdWF0aW9uRm9ybVRleHRRdWVzdGlvbkF1dG9tYXRpb25cbn1cbi8qKlxuICogVGhlIGF1dG9tYXRpb24gcHJvcGVydGllcyBvZiB0aGUgdGV4dCBxdWVzdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFdmFsdWF0aW9uRm9ybVRleHRRdWVzdGlvbkF1dG9tYXRpb24ge1xuQW5zd2VyU291cmNlPzogRXZhbHVhdGlvbkZvcm1RdWVzdGlvbkF1dG9tYXRpb25BbnN3ZXJTb3VyY2UyXG59XG4vKipcbiAqIEF1dG9tYXRpb24gYW5zd2VyIHNvdXJjZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFdmFsdWF0aW9uRm9ybVF1ZXN0aW9uQXV0b21hdGlvbkFuc3dlclNvdXJjZTIge1xuLyoqXG4gKiBUaGUgYXV0b21hdGlvbiBhbnN3ZXIgc291cmNlIHR5cGUuXG4gKi9cblNvdXJjZVR5cGU6IChcIkNPTlRBQ1RfTEVOU19EQVRBXCIgfCBcIkdFTl9BSVwiKVxufVxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBtdWx0aS1zZWxlY3QgcXVlc3Rpb24gdHlwZXMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXZhbHVhdGlvbkZvcm1NdWx0aVNlbGVjdFF1ZXN0aW9uUHJvcGVydGllcyB7XG4vKipcbiAqIE9wdGlvbnMgYXZhaWxhYmxlIGZvciB0aGlzIG11bHRpLXNlbGVjdCBxdWVzdGlvbi5cbiAqIFxuICogQG1pbkl0ZW1zIDJcbiAqIEBtYXhJdGVtcyAyNTZcbiAqL1xuT3B0aW9uczogRXZhbHVhdGlvbkZvcm1NdWx0aVNlbGVjdFF1ZXN0aW9uT3B0aW9uW11cbi8qKlxuICogRGlzcGxheSBmb3JtYXQgZm9yIHRoZSBtdWx0aS1zZWxlY3QgcXVlc3Rpb24uXG4gKi9cbkRpc3BsYXlBcz86IChcIkRST1BET1dOXCIgfCBcIkNIRUNLQk9YXCIpXG5BdXRvbWF0aW9uPzogRXZhbHVhdGlvbkZvcm1NdWx0aVNlbGVjdFF1ZXN0aW9uQXV0b21hdGlvblxufVxuLyoqXG4gKiBBbiBvcHRpb24gZm9yIGEgbXVsdGktc2VsZWN0IHF1ZXN0aW9uIGluIGFuIGV2YWx1YXRpb24gZm9ybS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFdmFsdWF0aW9uRm9ybU11bHRpU2VsZWN0UXVlc3Rpb25PcHRpb24ge1xuLyoqXG4gKiBUaGUgaWRlbnRpZmllciB0byByZWZlcmVuY2UgdGhlIGl0ZW0uXG4gKi9cblJlZklkOiBzdHJpbmdcbi8qKlxuICogRGlzcGxheSB0ZXh0IGZvciB0aGlzIG9wdGlvbi5cbiAqL1xuVGV4dDogc3RyaW5nXG59XG4vKipcbiAqIEF1dG9tYXRpb24gY29uZmlndXJhdGlvbiBmb3IgdGhpcyBtdWx0aS1zZWxlY3QgcXVlc3Rpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXZhbHVhdGlvbkZvcm1NdWx0aVNlbGVjdFF1ZXN0aW9uQXV0b21hdGlvbiB7XG4vKipcbiAqIEF1dG9tYXRpb24gb3B0aW9ucyBmb3IgdGhlIG11bHRpLXNlbGVjdCBxdWVzdGlvbi5cbiAqIFxuICogQG1pbkl0ZW1zIDFcbiAqIEBtYXhJdGVtcyAyMFxuICovXG5PcHRpb25zOiBFdmFsdWF0aW9uRm9ybU11bHRpU2VsZWN0UXVlc3Rpb25BdXRvbWF0aW9uT3B0aW9uW11cbkRlZmF1bHRPcHRpb25SZWZJZHM/OiBSZWZlcmVuY2VJZExpc3QxXG5BbnN3ZXJTb3VyY2U/OiBFdmFsdWF0aW9uRm9ybVF1ZXN0aW9uQXV0b21hdGlvbkFuc3dlclNvdXJjZTNcbn1cbi8qKlxuICogQW4gYXV0b21hdGlvbiBvcHRpb24gZm9yIGEgbXVsdGktc2VsZWN0IHF1ZXN0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEV2YWx1YXRpb25Gb3JtTXVsdGlTZWxlY3RRdWVzdGlvbkF1dG9tYXRpb25PcHRpb24ge1xuUnVsZUNhdGVnb3J5OiBNdWx0aVNlbGVjdFF1ZXN0aW9uUnVsZUNhdGVnb3J5QXV0b21hdGlvblxufVxuLyoqXG4gKiBSdWxlIGNhdGVnb3J5IGNvbmZpZ3VyYXRpb24gZm9yIHRoaXMgYXV0b21hdGlvbiBvcHRpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTXVsdGlTZWxlY3RRdWVzdGlvblJ1bGVDYXRlZ29yeUF1dG9tYXRpb24ge1xuLyoqXG4gKiBUaGUgY2F0ZWdvcnkgbmFtZSBmb3IgdGhpcyBhdXRvbWF0aW9uIHJ1bGUuXG4gKi9cbkNhdGVnb3J5OiBzdHJpbmdcbi8qKlxuICogVGhlIGNvbmRpdGlvbiBmb3IgdGhpcyBhdXRvbWF0aW9uIHJ1bGUuXG4gKi9cbkNvbmRpdGlvbjogKFwiUFJFU0VOVFwiIHwgXCJOT1RfUFJFU0VOVFwiKVxuT3B0aW9uUmVmSWRzOiBSZWZlcmVuY2VJZExpc3Rcbn1cbmV4cG9ydCBpbnRlcmZhY2UgRXZhbHVhdGlvbkZvcm1RdWVzdGlvbkF1dG9tYXRpb25BbnN3ZXJTb3VyY2UzIHtcbi8qKlxuICogVGhlIGF1dG9tYXRpb24gYW5zd2VyIHNvdXJjZSB0eXBlLlxuICovXG5Tb3VyY2VUeXBlOiAoXCJDT05UQUNUX0xFTlNfREFUQVwiIHwgXCJHRU5fQUlcIilcbn1cbi8qKlxuICogQSBxdWVzdGlvbiBjb25kaXRpb25hbCBlbmFibGVtZW50LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEV2YWx1YXRpb25Gb3JtSXRlbUVuYWJsZW1lbnRDb25maWd1cmF0aW9uIHtcbkNvbmRpdGlvbjogRXZhbHVhdGlvbkZvcm1JdGVtRW5hYmxlbWVudENvbmRpdGlvblxuLyoqXG4gKiBBbiBlbmFibGVtZW50IGFjdGlvbiB0aGF0IGlmIGNvbmRpdGlvbiBpcyBzYXRpc2ZpZWQuXG4gKi9cbkFjdGlvbjogKFwiRElTQUJMRVwiIHwgXCJFTkFCTEVcIilcbi8qKlxuICogQW4gZW5hYmxlbWVudCBhY3Rpb24gdGhhdCBpZiBjb25kaXRpb24gaXMgbm90IHNhdGlzZmllZC5cbiAqL1xuRGVmYXVsdEFjdGlvbj86IChcIkRJU0FCTEVcIiB8IFwiRU5BQkxFXCIpXG59XG4vKipcbiAqIEEgY29uZGl0aW9uIGZvciBpdGVtIGVuYWJsZW1lbnQgY29uZmlndXJhdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFdmFsdWF0aW9uRm9ybUl0ZW1FbmFibGVtZW50Q29uZGl0aW9uIHtcbi8qKlxuICogT3BlcmFuZHMgb2YgdGhlIGVuYWJsZW1lbnQgY29uZGl0aW9uLlxuICogXG4gKiBAbWluSXRlbXMgMVxuICovXG5PcGVyYW5kczogRXZhbHVhdGlvbkZvcm1JdGVtRW5hYmxlbWVudENvbmRpdGlvbk9wZXJhbmRbXVxuLyoqXG4gKiBUaGUgb3BlcmF0b3IgdG8gYmUgdXNlZCB0byBiZSBhcHBsaWVkIHRvIG9wZXJhbmRzIGlmIG1vcmUgdGhhbiBvbmUgcHJvdmlkZWQuXG4gKi9cbk9wZXJhdG9yPzogKFwiT1JcIiB8IFwiQU5EXCIpXG59XG4vKipcbiAqIEFuIG9wZXJhbmQgb2YgdGhlIGVuYWJsZW1lbnQgY29uZGl0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEV2YWx1YXRpb25Gb3JtSXRlbUVuYWJsZW1lbnRDb25kaXRpb25PcGVyYW5kIHtcbkV4cHJlc3Npb24/OiBFdmFsdWF0aW9uRm9ybUl0ZW1FbmFibGVtZW50RXhwcmVzc2lvblxufVxuLyoqXG4gKiBBbiBleHByZXNzaW9uIG9mIHRoZSBlbmFibGVtZW50IGNvbmRpdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFdmFsdWF0aW9uRm9ybUl0ZW1FbmFibGVtZW50RXhwcmVzc2lvbiB7XG5Tb3VyY2U6IEV2YWx1YXRpb25Gb3JtSXRlbUVuYWJsZW1lbnRTb3VyY2Vcbi8qKlxuICogQSBsaXN0IG9mIHZhbHVlcyBmcm9tIHNvdXJjZSBpdGVtLlxuICogXG4gKiBAbWluSXRlbXMgMVxuICovXG5WYWx1ZXM6IEV2YWx1YXRpb25Gb3JtSXRlbUVuYWJsZW1lbnRTb3VyY2VWYWx1ZVtdXG4vKipcbiAqIEEgY29tcGFyYXRvciB0byBiZSB1c2VkIGFnYWluc3QgbGlzdCBvZiB2YWx1ZXMuXG4gKi9cbkNvbXBhcmF0b3I6IChcIklOXCIgfCBcIk5PVF9JTlwiIHwgXCJBTExfSU5cIiB8IFwiRVhBQ1RcIilcbn1cbi8qKlxuICogQSBzb3VyY2UgaXRlbSBvZiBlbmFibGVtZW50IGV4cHJlc3Npb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXZhbHVhdGlvbkZvcm1JdGVtRW5hYmxlbWVudFNvdXJjZSB7XG4vKipcbiAqIEEgdHlwZSBvZiBzb3VyY2UgaXRlbS5cbiAqL1xuVHlwZTogXCJRVUVTVElPTl9SRUZfSURcIlxuLyoqXG4gKiBUaGUgaWRlbnRpZmllciB0byByZWZlcmVuY2UgdGhlIGl0ZW0uXG4gKi9cblJlZklkPzogc3RyaW5nXG59XG4vKipcbiAqIEFuIGVuYWJsZW1lbnQgZXhwcmVzc2lvbiBzb3VyY2UgdmFsdWUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXZhbHVhdGlvbkZvcm1JdGVtRW5hYmxlbWVudFNvdXJjZVZhbHVlIHtcbi8qKlxuICogQSB0eXBlIG9mIHNvdXJjZSBpdGVtIHZhbHVlLlxuICovXG5UeXBlPzogXCJPUFRJT05fUkVGX0lEXCJcbi8qKlxuICogVGhlIGlkZW50aWZpZXIgdG8gcmVmZXJlbmNlIHRoZSBpdGVtLlxuICovXG5SZWZJZD86IHN0cmluZ1xufVxuLyoqXG4gKiBBIHNjb3Jpbmcgc3RyYXRlZ3kgb2YgdGhlIGV2YWx1YXRpb24gZm9ybS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTY29yaW5nU3RyYXRlZ3kge1xuLyoqXG4gKiBUaGUgc2NvcmluZyBtb2RlIG9mIHRoZSBldmFsdWF0aW9uIGZvcm0uXG4gKiAgKkFsbG93ZWQgdmFsdWVzKjogYGBRVUVTVElPTl9PTkxZYGAgfCBgYFNFQ1RJT05fT05MWWBgXG4gKi9cbk1vZGU6IChcIlFVRVNUSU9OX09OTFlcIiB8IFwiU0VDVElPTl9PTkxZXCIpXG4vKipcbiAqIFRoZSBzY29yaW5nIHN0YXR1cyBvZiB0aGUgZXZhbHVhdGlvbiBmb3JtLlxuICogICpBbGxvd2VkIHZhbHVlcyo6IGBgRU5BQkxFRGBgIHwgYGBESVNBQkxFRGBgXG4gKi9cblN0YXR1czogKFwiRU5BQkxFRFwiIHwgXCJESVNBQkxFRFwiKVxufVxuLyoqXG4gKiBUaGUgYXV0b21hdGljIGV2YWx1YXRpb24gY29uZmlndXJhdGlvbiBvZiBhbiBldmFsdWF0aW9uIGZvcm0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXV0b0V2YWx1YXRpb25Db25maWd1cmF0aW9uIHtcbkVuYWJsZWQ/OiBib29sZWFuXG59XG4vKipcbiAqIENvbmZpZ3VyYXRpb24gdGhhdCBzcGVjaWZpZXMgdGhlIHRhcmdldCBmb3IgdGhpcyBldmFsdWF0aW9uIGZvcm0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXZhbHVhdGlvbkZvcm1UYXJnZXRDb25maWd1cmF0aW9uIHtcbi8qKlxuICogVGhlIGNvbnRhY3QgaW50ZXJhY3Rpb24gdHlwZSBmb3IgdGhpcyBldmFsdWF0aW9uIGZvcm0uXG4gKi9cbkNvbnRhY3RJbnRlcmFjdGlvblR5cGU6IChcIkFHRU5UXCIgfCBcIkFVVE9NQVRFRFwiKVxufVxuLyoqXG4gKiBDb25maWd1cmF0aW9uIGZvciBsYW5ndWFnZSBzZXR0aW5ncyBvZiB0aGlzIGV2YWx1YXRpb24gZm9ybS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFdmFsdWF0aW9uRm9ybUxhbmd1YWdlQ29uZmlndXJhdGlvbiB7XG4vKipcbiAqIFRoZSBsYW5ndWFnZSBmb3IgdGhlIGV2YWx1YXRpb24gZm9ybS5cbiAqL1xuRm9ybUxhbmd1YWdlPzogKFwiZGUtREVcIiB8IFwiZW4tVVNcIiB8IFwiZXMtRVNcIiB8IFwiZnItRlJcIiB8IFwiaXQtSVRcIiB8IFwicHQtQlJcIilcbn1cbmV4cG9ydCBpbnRlcmZhY2UgRXZhbHVhdGlvblJldmlld0NvbmZpZ3VyYXRpb24ge1xuLyoqXG4gKiBMaXN0IG9mIHJlY2lwaWVudHMgd2hvIHNob3VsZCBiZSBub3RpZmllZCB3aGVuIGEgcmV2aWV3IGlzIHJlcXVlc3RlZC5cbiAqL1xuUmV2aWV3Tm90aWZpY2F0aW9uUmVjaXBpZW50czogRXZhbHVhdGlvblJldmlld05vdGlmaWNhdGlvblJlY2lwaWVudFtdXG4vKipcbiAqIE51bWJlciBvZiBkYXlzIGR1cmluZyB3aGljaCBhIHJlcXVlc3QgZm9yIHJldmlldyBjYW4gYmUgc3VibWl0dGVkIGZvciBldmFsdWF0aW9ucyBjcmVhdGVkIGZyb20gdGhpcyBmb3JtLlxuICovXG5FbGlnaWJpbGl0eURheXM/OiBudW1iZXJcbn1cbmV4cG9ydCBpbnRlcmZhY2UgRXZhbHVhdGlvblJldmlld05vdGlmaWNhdGlvblJlY2lwaWVudCB7XG4vKipcbiAqIFRoZSB0eXBlIG9mIG5vdGlmaWNhdGlvbiByZWNpcGllbnQuXG4gKi9cblR5cGU6IFwiVVNFUl9JRFwiXG5WYWx1ZTogRXZhbHVhdGlvblJldmlld05vdGlmaWNhdGlvblJlY2lwaWVudFZhbHVlXG59XG4vKipcbiAqIFRoZSB2YWx1ZSBhc3NvY2lhdGVkIHdpdGggdGhlIG5vdGlmaWNhdGlvbiByZWNpcGllbnQgdHlwZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFdmFsdWF0aW9uUmV2aWV3Tm90aWZpY2F0aW9uUmVjaXBpZW50VmFsdWUge1xuLyoqXG4gKiBUaGUgdXNlciBpZGVudGlmaWVyIGZvciB0aGUgbm90aWZpY2F0aW9uIHJlY2lwaWVudC5cbiAqL1xuVXNlcklkPzogc3RyaW5nXG59XG4vKipcbiAqIEEga2V5LXZhbHVlIHBhaXIgdG8gYXNzb2NpYXRlIHdpdGggYSByZXNvdXJjZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUYWcge1xuLyoqXG4gKiBUaGUga2V5IG5hbWUgb2YgdGhlIHRhZy4gWW91IGNhbiBzcGVjaWZ5IGEgdmFsdWUgdGhhdCBpcyAxIHRvIDEyOCBVbmljb2RlIGNoYXJhY3RlcnMgaW4gbGVuZ3RoIGFuZCBjYW5ub3QgYmUgcHJlZml4ZWQgd2l0aCBhd3M6LiBZb3UgY2FuIHVzZSBhbnkgb2YgdGhlIGZvbGxvd2luZyBjaGFyYWN0ZXJzOiB0aGUgc2V0IG9mIFVuaWNvZGUgbGV0dGVycywgZGlnaXRzLCB3aGl0ZXNwYWNlLCBfLCAuLCAvLCA9LCArLCBhbmQgLVxuICovXG5LZXk6IHN0cmluZ1xuLyoqXG4gKiBUaGUgdmFsdWUgZm9yIHRoZSB0YWcuIFlvdSBjYW4gc3BlY2lmeSBhIHZhbHVlIHRoYXQgaXMgMCB0byAyNTYgVW5pY29kZSBjaGFyYWN0ZXJzIGluIGxlbmd0aCBhbmQgY2Fubm90IGJlIHByZWZpeGVkIHdpdGggYXdzOi4gWW91IGNhbiB1c2UgYW55IG9mIHRoZSBmb2xsb3dpbmcgY2hhcmFjdGVyczogdGhlIHNldCBvZiBVbmljb2RlIGxldHRlcnMsIGRpZ2l0cywgd2hpdGVzcGFjZSwgXywgLiwgLywgPSwgKywgYW5kIC1cbiAqL1xuVmFsdWU6IHN0cmluZ1xufVxuIl19
@@ -50,7 +50,17 @@ export interface _AWS_EC2_NATGATEWAY {
50
50
  VpcId?: string;
51
51
  EniId?: string;
52
52
  RouteTableId?: string;
53
+ /**
54
+ * Indicates whether this is a zonal (single-AZ) or regional (multi-AZ) NAT gateway.
55
+ * A zonal NAT gateway is a NAT Gateway that provides redundancy and scalability within a single availability zone. A regional NAT gateway is a single NAT Gateway that works across multiple availability zones (AZs) in your VPC, providing redundancy, scalability and availability across all the AZs in a Region.
56
+ * For more information, see [Regional NAT gateways for automatic multi-AZ expansion](https://docs.aws.amazon.com/vpc/latest/userguide/nat-gateways-regional.html) in the *Amazon VPC User Guide*.
57
+ */
53
58
  AvailabilityMode?: string;
59
+ /**
60
+ * For regional NAT gateways only: Specifies which Availability Zones you want the NAT gateway to support and the Elastic IP addresses (EIPs) to use in each AZ. The regional NAT gateway uses these EIPs to handle outbound NAT traffic from their respective AZs. If not specified, the NAT gateway will automatically expand to new AZs and associate EIPs upon detection of an elastic network interface. If you specify this parameter, auto-expansion is disabled and you must manually manage AZ coverage.
61
+ * A regional NAT gateway is a single NAT Gateway that works across multiple availability zones (AZs) in your VPC, providing redundancy, scalability and availability across all the AZs in a Region.
62
+ * For more information, see [Regional NAT gateways for automatic multi-AZ expansion](https://docs.aws.amazon.com/vpc/latest/userguide/nat-gateways-regional.html) in the *Amazon VPC User Guide*.
63
+ */
54
64
  AvailabilityZoneAddresses?: AvailabilityZoneAddress[];
55
65
  AutoProvisionZones?: string;
56
66
  AutoScalingIps?: string;
@@ -68,8 +78,24 @@ export interface Tag {
68
78
  */
69
79
  Key: string;
70
80
  }
81
+ /**
82
+ * For regional NAT gateways only: The configuration specifying which Elastic IP address (EIP) to use for handling outbound NAT traffic from a specific Availability Zone.
83
+ * A regional NAT gateway is a single NAT Gateway that works across multiple availability zones (AZs) in your VPC, providing redundancy, scalability and availability across all the AZs in a Region.
84
+ * For more information, see [Regional NAT gateways for automatic multi-AZ expansion](https://docs.aws.amazon.com/vpc/latest/userguide/nat-gateways-regional.html) in the *Amazon VPC User Guide*.
85
+ */
71
86
  export interface AvailabilityZoneAddress {
87
+ /**
88
+ * For regional NAT gateways only: The Availability Zone where this specific NAT gateway configuration will be active. Each AZ in a regional NAT gateway has its own configuration to handle outbound NAT traffic from that AZ.
89
+ * A regional NAT gateway is a single NAT Gateway that works across multiple availability zones (AZs) in your VPC, providing redundancy, scalability and availability across all the AZs in a Region.
90
+ */
72
91
  AvailabilityZone?: string;
92
+ /**
93
+ * For regional NAT gateways only: The ID of the Availability Zone where this specific NAT gateway configuration will be active. Each AZ in a regional NAT gateway has its own configuration to handle outbound NAT traffic from that AZ. Use this instead of AvailabilityZone for consistent identification of AZs across AWS Regions.
94
+ * A regional NAT gateway is a single NAT Gateway that works across multiple availability zones (AZs) in your VPC, providing redundancy, scalability and availability across all the AZs in a Region.
95
+ */
73
96
  AvailabilityZoneId?: string;
97
+ /**
98
+ * The allocation IDs of the Elastic IP addresses (EIPs) to be used for handling outbound NAT traffic in this specific Availability Zone.
99
+ */
74
100
  AllocationIds: string[];
75
101
  }
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWVjMi1uYXRnYXRld2F5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXdzLWVjMi1uYXRnYXRld2F5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFNwZWNpZmllcyBhIG5ldHdvcmsgYWRkcmVzcyB0cmFuc2xhdGlvbiAoTkFUKSBnYXRld2F5IGluIHRoZSBzcGVjaWZpZWQgc3VibmV0LiBZb3UgY2FuIGNyZWF0ZSBlaXRoZXIgYSBwdWJsaWMgTkFUIGdhdGV3YXkgb3IgYSBwcml2YXRlIE5BVCBnYXRld2F5LiBUaGUgZGVmYXVsdCBpcyBhIHB1YmxpYyBOQVQgZ2F0ZXdheS4gSWYgeW91IGNyZWF0ZSBhIHB1YmxpYyBOQVQgZ2F0ZXdheSwgeW91IG11c3Qgc3BlY2lmeSBhbiBlbGFzdGljIElQIGFkZHJlc3MuXG4gKiAgV2l0aCBhIE5BVCBnYXRld2F5LCBpbnN0YW5jZXMgaW4gYSBwcml2YXRlIHN1Ym5ldCBjYW4gY29ubmVjdCB0byB0aGUgaW50ZXJuZXQsIG90aGVyIEFXUyBzZXJ2aWNlcywgb3IgYW4gb24tcHJlbWlzZXMgbmV0d29yayB1c2luZyB0aGUgSVAgYWRkcmVzcyBvZiB0aGUgTkFUIGdhdGV3YXkuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW05BVCBnYXRld2F5c10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3ZwYy9sYXRlc3QvdXNlcmd1aWRlL3ZwYy1uYXQtZ2F0ZXdheS5odG1sKSBpbiB0aGUgKkFtYXpvbiBWUEMgVXNlciBHdWlkZSouXG4gKiAgSWYgeW91IGFkZCBhIGRlZmF1bHQgcm91dGUgKGBgQVdTOjpFQzI6OlJvdXRlYGAgcmVzb3VyY2UpIHRoYXQgcG9pbnRzIHRvIGEgTkFUIGdhdGV3YXksIHNwZWNpZnkgdGhlIE5BVCBnYXRld2F5IElEIGZvciB0aGUgcm91dGUncyBgYE5hdEdhdGV3YXlJZGBgIHByb3BlcnR5LlxuICogICBXaGVuIHlvdSBhc3NvY2lhdGUgYW4gRWxhc3RpYyBJUCBhZGRyZXNzIG9yIHNlY29uZGFyeSBFbGFzdGljIElQIGFkZHJlc3Mgd2l0aCBhIHB1YmxpYyBOQVQgZ2F0ZXdheSwgdGhlIG5ldHdvcmsgYm9yZGVyIGdyb3VwIG9mIHRoZSBFbGFzdGljIElQIGFkZHJlc3MgbXVzdCBtYXRjaCB0aGUgbmV0d29yayBib3JkZXIgZ3JvdXAgb2YgdGhlIEF2YWlsYWJpbGl0eSBab25lIChBWikgdGhhdCB0aGUgcHVibGljIE5BVCBnYXRld2F5IGlzIGluLiBPdGhlcndpc2UsIHRoZSBOQVQgZ2F0ZXdheSBmYWlscyB0byBsYXVuY2guIFlvdSBjYW4gc2VlIHRoZSBuZXR3b3JrIGJvcmRlciBncm91cCBmb3IgdGhlIEFaIGJ5IHZpZXdpbmcgdGhlIGRldGFpbHMgb2YgdGhlIHN1Ym5ldC4gU2ltaWxhcmx5LCB5b3UgY2FuIHZpZXcgdGhlIG5ldHdvcmsgYm9yZGVyIGdyb3VwIGZvciB0aGUgRWxhc3RpYyBJUCBhZGRyZXNzIGJ5IHZpZXdpbmcgaXRzIGRldGFpbHMuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW0FsbG9jYXRlIGFuIEVsYXN0aWMgSVAgYWRkcmVzc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3ZwYy9sYXRlc3QvdXNlcmd1aWRlL3ZwYy1laXBzLmh0bWwjYWxsb2NhdGUtZWlwKSBpbiB0aGUgKkFtYXpvbiBWUEMgVXNlciBHdWlkZSouXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgX0FXU19FQzJfTkFUR0FURVdBWSB7XG4vKipcbiAqIFRoZSBJRCBvZiB0aGUgc3VibmV0IGluIHdoaWNoIHRoZSBOQVQgZ2F0ZXdheSBpcyBsb2NhdGVkLlxuICovXG5TdWJuZXRJZD86IHN0cmluZ1xuTmF0R2F0ZXdheUlkPzogc3RyaW5nXG4vKipcbiAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBOQVQgZ2F0ZXdheSBzdXBwb3J0cyBwdWJsaWMgb3IgcHJpdmF0ZSBjb25uZWN0aXZpdHkuIFRoZSBkZWZhdWx0IGlzIHB1YmxpYyBjb25uZWN0aXZpdHkuXG4gKi9cbkNvbm5lY3Rpdml0eVR5cGU/OiBzdHJpbmdcbi8qKlxuICogVGhlIHByaXZhdGUgSVB2NCBhZGRyZXNzIHRvIGFzc2lnbiB0byB0aGUgTkFUIGdhdGV3YXkuIElmIHlvdSBkb24ndCBwcm92aWRlIGFuIGFkZHJlc3MsIGEgcHJpdmF0ZSBJUHY0IGFkZHJlc3Mgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGFzc2lnbmVkLlxuICovXG5Qcml2YXRlSXBBZGRyZXNzPzogc3RyaW5nXG4vKipcbiAqIFRoZSB0YWdzIGZvciB0aGUgTkFUIGdhdGV3YXkuXG4gKi9cblRhZ3M/OiBUYWdbXVxuLyoqXG4gKiBbUHVibGljIE5BVCBnYXRld2F5IG9ubHldIFRoZSBhbGxvY2F0aW9uIElEIG9mIHRoZSBFbGFzdGljIElQIGFkZHJlc3MgdGhhdCdzIGFzc29jaWF0ZWQgd2l0aCB0aGUgTkFUIGdhdGV3YXkuIFRoaXMgcHJvcGVydHkgaXMgcmVxdWlyZWQgZm9yIGEgcHVibGljIE5BVCBnYXRld2F5IGFuZCBjYW5ub3QgYmUgc3BlY2lmaWVkIHdpdGggYSBwcml2YXRlIE5BVCBnYXRld2F5LlxuICovXG5BbGxvY2F0aW9uSWQ/OiBzdHJpbmdcbi8qKlxuICogU2Vjb25kYXJ5IEVJUCBhbGxvY2F0aW9uIElEcy4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbQ3JlYXRlIGEgTkFUIGdhdGV3YXldKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS92cGMvbGF0ZXN0L3VzZXJndWlkZS9uYXQtZ2F0ZXdheS13b3JraW5nLXdpdGguaHRtbCkgaW4gdGhlICpBbWF6b24gVlBDIFVzZXIgR3VpZGUqLlxuICovXG5TZWNvbmRhcnlBbGxvY2F0aW9uSWRzPzogc3RyaW5nW11cbi8qKlxuICogU2Vjb25kYXJ5IHByaXZhdGUgSVB2NCBhZGRyZXNzZXMuIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHNlY29uZGFyeSBhZGRyZXNzZXMsIHNlZSBbQ3JlYXRlIGEgTkFUIGdhdGV3YXldKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS92cGMvbGF0ZXN0L3VzZXJndWlkZS92cGMtbmF0LWdhdGV3YXkuaHRtbCNuYXQtZ2F0ZXdheS1jcmVhdGluZykgaW4gdGhlICpBbWF6b24gVmlydHVhbCBQcml2YXRlIENsb3VkIFVzZXIgR3VpZGUqLlxuICogIGBgU2Vjb25kYXJ5UHJpdmF0ZUlwQWRkcmVzc0NvdW50YGAgYW5kIGBgU2Vjb25kYXJ5UHJpdmF0ZUlwQWRkcmVzc2VzYGAgY2Fubm90IGJlIHNldCBhdCB0aGUgc2FtZSB0aW1lLlxuICovXG5TZWNvbmRhcnlQcml2YXRlSXBBZGRyZXNzZXM/OiBzdHJpbmdbXVxuLyoqXG4gKiBbUHJpdmF0ZSBOQVQgZ2F0ZXdheSBvbmx5XSBUaGUgbnVtYmVyIG9mIHNlY29uZGFyeSBwcml2YXRlIElQdjQgYWRkcmVzc2VzIHlvdSB3YW50IHRvIGFzc2lnbiB0byB0aGUgTkFUIGdhdGV3YXkuIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHNlY29uZGFyeSBhZGRyZXNzZXMsIHNlZSBbQ3JlYXRlIGEgTkFUIGdhdGV3YXldKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS92cGMvbGF0ZXN0L3VzZXJndWlkZS92cGMtbmF0LWdhdGV3YXkuaHRtbCNuYXQtZ2F0ZXdheS1jcmVhdGluZykgaW4gdGhlICpBbWF6b24gVmlydHVhbCBQcml2YXRlIENsb3VkIFVzZXIgR3VpZGUqLlxuICogIGBgU2Vjb25kYXJ5UHJpdmF0ZUlwQWRkcmVzc0NvdW50YGAgYW5kIGBgU2Vjb25kYXJ5UHJpdmF0ZUlwQWRkcmVzc2VzYGAgY2Fubm90IGJlIHNldCBhdCB0aGUgc2FtZSB0aW1lLlxuICovXG5TZWNvbmRhcnlQcml2YXRlSXBBZGRyZXNzQ291bnQ/OiBudW1iZXJcbi8qKlxuICogVGhlIG1heGltdW0gYW1vdW50IG9mIHRpbWUgdG8gd2FpdCAoaW4gc2Vjb25kcykgYmVmb3JlIGZvcmNpYmx5IHJlbGVhc2luZyB0aGUgSVAgYWRkcmVzc2VzIGlmIGNvbm5lY3Rpb25zIGFyZSBzdGlsbCBpbiBwcm9ncmVzcy4gRGVmYXVsdCB2YWx1ZSBpcyAzNTAgc2Vjb25kcy5cbiAqL1xuTWF4RHJhaW5EdXJhdGlvblNlY29uZHM/OiBudW1iZXJcbi8qKlxuICogVGhlIElEIG9mIHRoZSBWUEMgaW4gd2hpY2ggdGhlIE5BVCBnYXRld2F5IGlzIGxvY2F0ZWQuXG4gKi9cblZwY0lkPzogc3RyaW5nXG5FbmlJZD86IHN0cmluZ1xuUm91dGVUYWJsZUlkPzogc3RyaW5nXG5BdmFpbGFiaWxpdHlNb2RlPzogc3RyaW5nXG5BdmFpbGFiaWxpdHlab25lQWRkcmVzc2VzPzogQXZhaWxhYmlsaXR5Wm9uZUFkZHJlc3NbXVxuQXV0b1Byb3Zpc2lvblpvbmVzPzogc3RyaW5nXG5BdXRvU2NhbGluZ0lwcz86IHN0cmluZ1xufVxuLyoqXG4gKiBTcGVjaWZpZXMgYSB0YWcuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW1Jlc291cmNlIHRhZ3NdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLXJlc291cmNlLXRhZ3MuaHRtbCkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGFnIHtcbi8qKlxuICogVGhlIHRhZyB2YWx1ZS5cbiAqL1xuVmFsdWU6IHN0cmluZ1xuLyoqXG4gKiBUaGUgdGFnIGtleS5cbiAqL1xuS2V5OiBzdHJpbmdcbn1cbmV4cG9ydCBpbnRlcmZhY2UgQXZhaWxhYmlsaXR5Wm9uZUFkZHJlc3Mge1xuQXZhaWxhYmlsaXR5Wm9uZT86IHN0cmluZ1xuQXZhaWxhYmlsaXR5Wm9uZUlkPzogc3RyaW5nXG5BbGxvY2F0aW9uSWRzOiBzdHJpbmdbXVxufVxuIl19
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWVjMi1uYXRnYXRld2F5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXdzLWVjMi1uYXRnYXRld2F5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFNwZWNpZmllcyBhIG5ldHdvcmsgYWRkcmVzcyB0cmFuc2xhdGlvbiAoTkFUKSBnYXRld2F5IGluIHRoZSBzcGVjaWZpZWQgc3VibmV0LiBZb3UgY2FuIGNyZWF0ZSBlaXRoZXIgYSBwdWJsaWMgTkFUIGdhdGV3YXkgb3IgYSBwcml2YXRlIE5BVCBnYXRld2F5LiBUaGUgZGVmYXVsdCBpcyBhIHB1YmxpYyBOQVQgZ2F0ZXdheS4gSWYgeW91IGNyZWF0ZSBhIHB1YmxpYyBOQVQgZ2F0ZXdheSwgeW91IG11c3Qgc3BlY2lmeSBhbiBlbGFzdGljIElQIGFkZHJlc3MuXG4gKiAgV2l0aCBhIE5BVCBnYXRld2F5LCBpbnN0YW5jZXMgaW4gYSBwcml2YXRlIHN1Ym5ldCBjYW4gY29ubmVjdCB0byB0aGUgaW50ZXJuZXQsIG90aGVyIEFXUyBzZXJ2aWNlcywgb3IgYW4gb24tcHJlbWlzZXMgbmV0d29yayB1c2luZyB0aGUgSVAgYWRkcmVzcyBvZiB0aGUgTkFUIGdhdGV3YXkuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW05BVCBnYXRld2F5c10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3ZwYy9sYXRlc3QvdXNlcmd1aWRlL3ZwYy1uYXQtZ2F0ZXdheS5odG1sKSBpbiB0aGUgKkFtYXpvbiBWUEMgVXNlciBHdWlkZSouXG4gKiAgSWYgeW91IGFkZCBhIGRlZmF1bHQgcm91dGUgKGBgQVdTOjpFQzI6OlJvdXRlYGAgcmVzb3VyY2UpIHRoYXQgcG9pbnRzIHRvIGEgTkFUIGdhdGV3YXksIHNwZWNpZnkgdGhlIE5BVCBnYXRld2F5IElEIGZvciB0aGUgcm91dGUncyBgYE5hdEdhdGV3YXlJZGBgIHByb3BlcnR5LlxuICogICBXaGVuIHlvdSBhc3NvY2lhdGUgYW4gRWxhc3RpYyBJUCBhZGRyZXNzIG9yIHNlY29uZGFyeSBFbGFzdGljIElQIGFkZHJlc3Mgd2l0aCBhIHB1YmxpYyBOQVQgZ2F0ZXdheSwgdGhlIG5ldHdvcmsgYm9yZGVyIGdyb3VwIG9mIHRoZSBFbGFzdGljIElQIGFkZHJlc3MgbXVzdCBtYXRjaCB0aGUgbmV0d29yayBib3JkZXIgZ3JvdXAgb2YgdGhlIEF2YWlsYWJpbGl0eSBab25lIChBWikgdGhhdCB0aGUgcHVibGljIE5BVCBnYXRld2F5IGlzIGluLiBPdGhlcndpc2UsIHRoZSBOQVQgZ2F0ZXdheSBmYWlscyB0byBsYXVuY2guIFlvdSBjYW4gc2VlIHRoZSBuZXR3b3JrIGJvcmRlciBncm91cCBmb3IgdGhlIEFaIGJ5IHZpZXdpbmcgdGhlIGRldGFpbHMgb2YgdGhlIHN1Ym5ldC4gU2ltaWxhcmx5LCB5b3UgY2FuIHZpZXcgdGhlIG5ldHdvcmsgYm9yZGVyIGdyb3VwIGZvciB0aGUgRWxhc3RpYyBJUCBhZGRyZXNzIGJ5IHZpZXdpbmcgaXRzIGRldGFpbHMuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW0FsbG9jYXRlIGFuIEVsYXN0aWMgSVAgYWRkcmVzc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3ZwYy9sYXRlc3QvdXNlcmd1aWRlL3ZwYy1laXBzLmh0bWwjYWxsb2NhdGUtZWlwKSBpbiB0aGUgKkFtYXpvbiBWUEMgVXNlciBHdWlkZSouXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgX0FXU19FQzJfTkFUR0FURVdBWSB7XG4vKipcbiAqIFRoZSBJRCBvZiB0aGUgc3VibmV0IGluIHdoaWNoIHRoZSBOQVQgZ2F0ZXdheSBpcyBsb2NhdGVkLlxuICovXG5TdWJuZXRJZD86IHN0cmluZ1xuTmF0R2F0ZXdheUlkPzogc3RyaW5nXG4vKipcbiAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBOQVQgZ2F0ZXdheSBzdXBwb3J0cyBwdWJsaWMgb3IgcHJpdmF0ZSBjb25uZWN0aXZpdHkuIFRoZSBkZWZhdWx0IGlzIHB1YmxpYyBjb25uZWN0aXZpdHkuXG4gKi9cbkNvbm5lY3Rpdml0eVR5cGU/OiBzdHJpbmdcbi8qKlxuICogVGhlIHByaXZhdGUgSVB2NCBhZGRyZXNzIHRvIGFzc2lnbiB0byB0aGUgTkFUIGdhdGV3YXkuIElmIHlvdSBkb24ndCBwcm92aWRlIGFuIGFkZHJlc3MsIGEgcHJpdmF0ZSBJUHY0IGFkZHJlc3Mgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGFzc2lnbmVkLlxuICovXG5Qcml2YXRlSXBBZGRyZXNzPzogc3RyaW5nXG4vKipcbiAqIFRoZSB0YWdzIGZvciB0aGUgTkFUIGdhdGV3YXkuXG4gKi9cblRhZ3M/OiBUYWdbXVxuLyoqXG4gKiBbUHVibGljIE5BVCBnYXRld2F5IG9ubHldIFRoZSBhbGxvY2F0aW9uIElEIG9mIHRoZSBFbGFzdGljIElQIGFkZHJlc3MgdGhhdCdzIGFzc29jaWF0ZWQgd2l0aCB0aGUgTkFUIGdhdGV3YXkuIFRoaXMgcHJvcGVydHkgaXMgcmVxdWlyZWQgZm9yIGEgcHVibGljIE5BVCBnYXRld2F5IGFuZCBjYW5ub3QgYmUgc3BlY2lmaWVkIHdpdGggYSBwcml2YXRlIE5BVCBnYXRld2F5LlxuICovXG5BbGxvY2F0aW9uSWQ/OiBzdHJpbmdcbi8qKlxuICogU2Vjb25kYXJ5IEVJUCBhbGxvY2F0aW9uIElEcy4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbQ3JlYXRlIGEgTkFUIGdhdGV3YXldKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS92cGMvbGF0ZXN0L3VzZXJndWlkZS9uYXQtZ2F0ZXdheS13b3JraW5nLXdpdGguaHRtbCkgaW4gdGhlICpBbWF6b24gVlBDIFVzZXIgR3VpZGUqLlxuICovXG5TZWNvbmRhcnlBbGxvY2F0aW9uSWRzPzogc3RyaW5nW11cbi8qKlxuICogU2Vjb25kYXJ5IHByaXZhdGUgSVB2NCBhZGRyZXNzZXMuIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHNlY29uZGFyeSBhZGRyZXNzZXMsIHNlZSBbQ3JlYXRlIGEgTkFUIGdhdGV3YXldKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS92cGMvbGF0ZXN0L3VzZXJndWlkZS92cGMtbmF0LWdhdGV3YXkuaHRtbCNuYXQtZ2F0ZXdheS1jcmVhdGluZykgaW4gdGhlICpBbWF6b24gVmlydHVhbCBQcml2YXRlIENsb3VkIFVzZXIgR3VpZGUqLlxuICogIGBgU2Vjb25kYXJ5UHJpdmF0ZUlwQWRkcmVzc0NvdW50YGAgYW5kIGBgU2Vjb25kYXJ5UHJpdmF0ZUlwQWRkcmVzc2VzYGAgY2Fubm90IGJlIHNldCBhdCB0aGUgc2FtZSB0aW1lLlxuICovXG5TZWNvbmRhcnlQcml2YXRlSXBBZGRyZXNzZXM/OiBzdHJpbmdbXVxuLyoqXG4gKiBbUHJpdmF0ZSBOQVQgZ2F0ZXdheSBvbmx5XSBUaGUgbnVtYmVyIG9mIHNlY29uZGFyeSBwcml2YXRlIElQdjQgYWRkcmVzc2VzIHlvdSB3YW50IHRvIGFzc2lnbiB0byB0aGUgTkFUIGdhdGV3YXkuIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHNlY29uZGFyeSBhZGRyZXNzZXMsIHNlZSBbQ3JlYXRlIGEgTkFUIGdhdGV3YXldKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS92cGMvbGF0ZXN0L3VzZXJndWlkZS92cGMtbmF0LWdhdGV3YXkuaHRtbCNuYXQtZ2F0ZXdheS1jcmVhdGluZykgaW4gdGhlICpBbWF6b24gVmlydHVhbCBQcml2YXRlIENsb3VkIFVzZXIgR3VpZGUqLlxuICogIGBgU2Vjb25kYXJ5UHJpdmF0ZUlwQWRkcmVzc0NvdW50YGAgYW5kIGBgU2Vjb25kYXJ5UHJpdmF0ZUlwQWRkcmVzc2VzYGAgY2Fubm90IGJlIHNldCBhdCB0aGUgc2FtZSB0aW1lLlxuICovXG5TZWNvbmRhcnlQcml2YXRlSXBBZGRyZXNzQ291bnQ/OiBudW1iZXJcbi8qKlxuICogVGhlIG1heGltdW0gYW1vdW50IG9mIHRpbWUgdG8gd2FpdCAoaW4gc2Vjb25kcykgYmVmb3JlIGZvcmNpYmx5IHJlbGVhc2luZyB0aGUgSVAgYWRkcmVzc2VzIGlmIGNvbm5lY3Rpb25zIGFyZSBzdGlsbCBpbiBwcm9ncmVzcy4gRGVmYXVsdCB2YWx1ZSBpcyAzNTAgc2Vjb25kcy5cbiAqL1xuTWF4RHJhaW5EdXJhdGlvblNlY29uZHM/OiBudW1iZXJcbi8qKlxuICogVGhlIElEIG9mIHRoZSBWUEMgaW4gd2hpY2ggdGhlIE5BVCBnYXRld2F5IGlzIGxvY2F0ZWQuXG4gKi9cblZwY0lkPzogc3RyaW5nXG5FbmlJZD86IHN0cmluZ1xuUm91dGVUYWJsZUlkPzogc3RyaW5nXG4vKipcbiAqIEluZGljYXRlcyB3aGV0aGVyIHRoaXMgaXMgYSB6b25hbCAoc2luZ2xlLUFaKSBvciByZWdpb25hbCAobXVsdGktQVopIE5BVCBnYXRld2F5LlxuICogIEEgem9uYWwgTkFUIGdhdGV3YXkgaXMgYSBOQVQgR2F0ZXdheSB0aGF0IHByb3ZpZGVzIHJlZHVuZGFuY3kgYW5kIHNjYWxhYmlsaXR5IHdpdGhpbiBhIHNpbmdsZSBhdmFpbGFiaWxpdHkgem9uZS4gQSByZWdpb25hbCBOQVQgZ2F0ZXdheSBpcyBhIHNpbmdsZSBOQVQgR2F0ZXdheSB0aGF0IHdvcmtzIGFjcm9zcyBtdWx0aXBsZSBhdmFpbGFiaWxpdHkgem9uZXMgKEFacykgaW4geW91ciBWUEMsIHByb3ZpZGluZyByZWR1bmRhbmN5LCBzY2FsYWJpbGl0eSBhbmQgYXZhaWxhYmlsaXR5IGFjcm9zcyBhbGwgdGhlIEFacyBpbiBhIFJlZ2lvbi5cbiAqICBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtSZWdpb25hbCBOQVQgZ2F0ZXdheXMgZm9yIGF1dG9tYXRpYyBtdWx0aS1BWiBleHBhbnNpb25dKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS92cGMvbGF0ZXN0L3VzZXJndWlkZS9uYXQtZ2F0ZXdheXMtcmVnaW9uYWwuaHRtbCkgaW4gdGhlICpBbWF6b24gVlBDIFVzZXIgR3VpZGUqLlxuICovXG5BdmFpbGFiaWxpdHlNb2RlPzogc3RyaW5nXG4vKipcbiAqIEZvciByZWdpb25hbCBOQVQgZ2F0ZXdheXMgb25seTogU3BlY2lmaWVzIHdoaWNoIEF2YWlsYWJpbGl0eSBab25lcyB5b3Ugd2FudCB0aGUgTkFUIGdhdGV3YXkgdG8gc3VwcG9ydCBhbmQgdGhlIEVsYXN0aWMgSVAgYWRkcmVzc2VzIChFSVBzKSB0byB1c2UgaW4gZWFjaCBBWi4gVGhlIHJlZ2lvbmFsIE5BVCBnYXRld2F5IHVzZXMgdGhlc2UgRUlQcyB0byBoYW5kbGUgb3V0Ym91bmQgTkFUIHRyYWZmaWMgZnJvbSB0aGVpciByZXNwZWN0aXZlIEFacy4gSWYgbm90IHNwZWNpZmllZCwgdGhlIE5BVCBnYXRld2F5IHdpbGwgYXV0b21hdGljYWxseSBleHBhbmQgdG8gbmV3IEFacyBhbmQgYXNzb2NpYXRlIEVJUHMgdXBvbiBkZXRlY3Rpb24gb2YgYW4gZWxhc3RpYyBuZXR3b3JrIGludGVyZmFjZS4gSWYgeW91IHNwZWNpZnkgdGhpcyBwYXJhbWV0ZXIsIGF1dG8tZXhwYW5zaW9uIGlzIGRpc2FibGVkIGFuZCB5b3UgbXVzdCBtYW51YWxseSBtYW5hZ2UgQVogY292ZXJhZ2UuXG4gKiAgQSByZWdpb25hbCBOQVQgZ2F0ZXdheSBpcyBhIHNpbmdsZSBOQVQgR2F0ZXdheSB0aGF0IHdvcmtzIGFjcm9zcyBtdWx0aXBsZSBhdmFpbGFiaWxpdHkgem9uZXMgKEFacykgaW4geW91ciBWUEMsIHByb3ZpZGluZyByZWR1bmRhbmN5LCBzY2FsYWJpbGl0eSBhbmQgYXZhaWxhYmlsaXR5IGFjcm9zcyBhbGwgdGhlIEFacyBpbiBhIFJlZ2lvbi5cbiAqICBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtSZWdpb25hbCBOQVQgZ2F0ZXdheXMgZm9yIGF1dG9tYXRpYyBtdWx0aS1BWiBleHBhbnNpb25dKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS92cGMvbGF0ZXN0L3VzZXJndWlkZS9uYXQtZ2F0ZXdheXMtcmVnaW9uYWwuaHRtbCkgaW4gdGhlICpBbWF6b24gVlBDIFVzZXIgR3VpZGUqLlxuICovXG5BdmFpbGFiaWxpdHlab25lQWRkcmVzc2VzPzogQXZhaWxhYmlsaXR5Wm9uZUFkZHJlc3NbXVxuQXV0b1Byb3Zpc2lvblpvbmVzPzogc3RyaW5nXG5BdXRvU2NhbGluZ0lwcz86IHN0cmluZ1xufVxuLyoqXG4gKiBTcGVjaWZpZXMgYSB0YWcuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW1Jlc291cmNlIHRhZ3NdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLXJlc291cmNlLXRhZ3MuaHRtbCkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGFnIHtcbi8qKlxuICogVGhlIHRhZyB2YWx1ZS5cbiAqL1xuVmFsdWU6IHN0cmluZ1xuLyoqXG4gKiBUaGUgdGFnIGtleS5cbiAqL1xuS2V5OiBzdHJpbmdcbn1cbi8qKlxuICogRm9yIHJlZ2lvbmFsIE5BVCBnYXRld2F5cyBvbmx5OiBUaGUgY29uZmlndXJhdGlvbiBzcGVjaWZ5aW5nIHdoaWNoIEVsYXN0aWMgSVAgYWRkcmVzcyAoRUlQKSB0byB1c2UgZm9yIGhhbmRsaW5nIG91dGJvdW5kIE5BVCB0cmFmZmljIGZyb20gYSBzcGVjaWZpYyBBdmFpbGFiaWxpdHkgWm9uZS4gXG4gKiAgQSByZWdpb25hbCBOQVQgZ2F0ZXdheSBpcyBhIHNpbmdsZSBOQVQgR2F0ZXdheSB0aGF0IHdvcmtzIGFjcm9zcyBtdWx0aXBsZSBhdmFpbGFiaWxpdHkgem9uZXMgKEFacykgaW4geW91ciBWUEMsIHByb3ZpZGluZyByZWR1bmRhbmN5LCBzY2FsYWJpbGl0eSBhbmQgYXZhaWxhYmlsaXR5IGFjcm9zcyBhbGwgdGhlIEFacyBpbiBhIFJlZ2lvbi5cbiAqICBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtSZWdpb25hbCBOQVQgZ2F0ZXdheXMgZm9yIGF1dG9tYXRpYyBtdWx0aS1BWiBleHBhbnNpb25dKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS92cGMvbGF0ZXN0L3VzZXJndWlkZS9uYXQtZ2F0ZXdheXMtcmVnaW9uYWwuaHRtbCkgaW4gdGhlICpBbWF6b24gVlBDIFVzZXIgR3VpZGUqLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEF2YWlsYWJpbGl0eVpvbmVBZGRyZXNzIHtcbi8qKlxuICogRm9yIHJlZ2lvbmFsIE5BVCBnYXRld2F5cyBvbmx5OiBUaGUgQXZhaWxhYmlsaXR5IFpvbmUgd2hlcmUgdGhpcyBzcGVjaWZpYyBOQVQgZ2F0ZXdheSBjb25maWd1cmF0aW9uIHdpbGwgYmUgYWN0aXZlLiBFYWNoIEFaIGluIGEgcmVnaW9uYWwgTkFUIGdhdGV3YXkgaGFzIGl0cyBvd24gY29uZmlndXJhdGlvbiB0byBoYW5kbGUgb3V0Ym91bmQgTkFUIHRyYWZmaWMgZnJvbSB0aGF0IEFaLiBcbiAqICBBIHJlZ2lvbmFsIE5BVCBnYXRld2F5IGlzIGEgc2luZ2xlIE5BVCBHYXRld2F5IHRoYXQgd29ya3MgYWNyb3NzIG11bHRpcGxlIGF2YWlsYWJpbGl0eSB6b25lcyAoQVpzKSBpbiB5b3VyIFZQQywgcHJvdmlkaW5nIHJlZHVuZGFuY3ksIHNjYWxhYmlsaXR5IGFuZCBhdmFpbGFiaWxpdHkgYWNyb3NzIGFsbCB0aGUgQVpzIGluIGEgUmVnaW9uLlxuICovXG5BdmFpbGFiaWxpdHlab25lPzogc3RyaW5nXG4vKipcbiAqIEZvciByZWdpb25hbCBOQVQgZ2F0ZXdheXMgb25seTogVGhlIElEIG9mIHRoZSBBdmFpbGFiaWxpdHkgWm9uZSB3aGVyZSB0aGlzIHNwZWNpZmljIE5BVCBnYXRld2F5IGNvbmZpZ3VyYXRpb24gd2lsbCBiZSBhY3RpdmUuIEVhY2ggQVogaW4gYSByZWdpb25hbCBOQVQgZ2F0ZXdheSBoYXMgaXRzIG93biBjb25maWd1cmF0aW9uIHRvIGhhbmRsZSBvdXRib3VuZCBOQVQgdHJhZmZpYyBmcm9tIHRoYXQgQVouIFVzZSB0aGlzIGluc3RlYWQgb2YgQXZhaWxhYmlsaXR5Wm9uZSBmb3IgY29uc2lzdGVudCBpZGVudGlmaWNhdGlvbiBvZiBBWnMgYWNyb3NzIEFXUyBSZWdpb25zLiBcbiAqICBBIHJlZ2lvbmFsIE5BVCBnYXRld2F5IGlzIGEgc2luZ2xlIE5BVCBHYXRld2F5IHRoYXQgd29ya3MgYWNyb3NzIG11bHRpcGxlIGF2YWlsYWJpbGl0eSB6b25lcyAoQVpzKSBpbiB5b3VyIFZQQywgcHJvdmlkaW5nIHJlZHVuZGFuY3ksIHNjYWxhYmlsaXR5IGFuZCBhdmFpbGFiaWxpdHkgYWNyb3NzIGFsbCB0aGUgQVpzIGluIGEgUmVnaW9uLlxuICovXG5BdmFpbGFiaWxpdHlab25lSWQ/OiBzdHJpbmdcbi8qKlxuICogVGhlIGFsbG9jYXRpb24gSURzIG9mIHRoZSBFbGFzdGljIElQIGFkZHJlc3NlcyAoRUlQcykgdG8gYmUgdXNlZCBmb3IgaGFuZGxpbmcgb3V0Ym91bmQgTkFUIHRyYWZmaWMgaW4gdGhpcyBzcGVjaWZpYyBBdmFpbGFiaWxpdHkgWm9uZS5cbiAqL1xuQWxsb2NhdGlvbklkczogc3RyaW5nW11cbn1cbiJdfQ==
@@ -46,6 +46,7 @@ export interface ManagedInstancesProvider {
46
46
  export interface InstanceLaunchTemplate {
47
47
  Ec2InstanceProfileArn: string;
48
48
  CapacityOptionType?: ("ON_DEMAND" | "SPOT");
49
+ FipsEnabled?: boolean;
49
50
  StorageConfiguration?: ManagedInstancesStorageConfiguration;
50
51
  NetworkConfiguration: ManagedInstancesNetworkConfiguration;
51
52
  InstanceRequirements?: InstanceRequirementsRequest;
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWVjcy1jYXBhY2l0eXByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXdzLWVjcy1jYXBhY2l0eXByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBNYW5hZ2VkSW5zdGFuY2VzTW9uaXRvcmluZ09wdGlvbnMgPSAoXCJCQVNJQ1wiIHwgXCJERVRBSUxFRFwiKVxuXG4vKipcbiAqIFJlc291cmNlIFR5cGUgZGVmaW5pdGlvbiBmb3IgQVdTOjpFQ1M6OkNhcGFjaXR5UHJvdmlkZXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgX0FXU19FQ1NfQ0FQQUNJVFlQUk9WSURFUiB7XG5BdXRvU2NhbGluZ0dyb3VwUHJvdmlkZXI/OiBBdXRvU2NhbGluZ0dyb3VwUHJvdmlkZXJcbkNsdXN0ZXJOYW1lPzogc3RyaW5nXG5UYWdzPzogVGFnW11cbk5hbWU/OiBzdHJpbmdcbk1hbmFnZWRJbnN0YW5jZXNQcm92aWRlcj86IE1hbmFnZWRJbnN0YW5jZXNQcm92aWRlclxufVxuZXhwb3J0IGludGVyZmFjZSBBdXRvU2NhbGluZ0dyb3VwUHJvdmlkZXIge1xuTWFuYWdlZFNjYWxpbmc/OiBNYW5hZ2VkU2NhbGluZ1xuQXV0b1NjYWxpbmdHcm91cEFybjogc3RyaW5nXG5NYW5hZ2VkVGVybWluYXRpb25Qcm90ZWN0aW9uPzogKFwiRElTQUJMRURcIiB8IFwiRU5BQkxFRFwiKVxuTWFuYWdlZERyYWluaW5nPzogKFwiRElTQUJMRURcIiB8IFwiRU5BQkxFRFwiKVxufVxuLyoqXG4gKiBUaGUgbWFuYWdlZCBzY2FsaW5nIHNldHRpbmdzIGZvciB0aGUgQXV0byBTY2FsaW5nIGdyb3VwIGNhcGFjaXR5IHByb3ZpZGVyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1hbmFnZWRTY2FsaW5nIHtcblN0YXR1cz86IChcIkRJU0FCTEVEXCIgfCBcIkVOQUJMRURcIilcbk1pbmltdW1TY2FsaW5nU3RlcFNpemU/OiBudW1iZXJcbkluc3RhbmNlV2FybXVwUGVyaW9kPzogbnVtYmVyXG5UYXJnZXRDYXBhY2l0eT86IG51bWJlclxuTWF4aW11bVNjYWxpbmdTdGVwU2l6ZT86IG51bWJlclxufVxuZXhwb3J0IGludGVyZmFjZSBUYWcge1xuVmFsdWU/OiBzdHJpbmdcbktleT86IHN0cmluZ1xufVxuZXhwb3J0IGludGVyZmFjZSBNYW5hZ2VkSW5zdGFuY2VzUHJvdmlkZXIge1xuSW5mcmFzdHJ1Y3R1cmVSb2xlQXJuOiBzdHJpbmdcblByb3BhZ2F0ZVRhZ3M/OiAoXCJDQVBBQ0lUWV9QUk9WSURFUlwiIHwgXCJOT05FXCIpXG4vKipcbiAqIERlZmluZXMgaG93IEFtYXpvbiBFQ1MgTWFuYWdlZCBJbnN0YW5jZXMgb3B0aW1pemVzIHRoZSBpbmZyYXN0cnVjdHVyZSBpbiB5b3VyIGNhcGFjaXR5IHByb3ZpZGVyLiBDb25maWd1cmUgaXQgdG8gdHVybiBvbiBvciBvZmYgdGhlIGluZnJhc3RydWN0dXJlIG9wdGltaXphdGlvbiBpbiB5b3VyIGNhcGFjaXR5IHByb3ZpZGVyLCBhbmQgdG8gY29udHJvbCB0aGUgaWRsZSBFQzIgaW5zdGFuY2VzIG9wdGltaXphdGlvbiBkZWxheS5cbiAqL1xuSW5mcmFzdHJ1Y3R1cmVPcHRpbWl6YXRpb24/OiB7XG4vKipcbiAqIFRoaXMgcGFyYW1ldGVyIGRlZmluZXMgdGhlIG51bWJlciBvZiBzZWNvbmRzIEFtYXpvbiBFQ1MgTWFuYWdlZCBJbnN0YW5jZXMgd2FpdHMgYmVmb3JlIG9wdGltaXppbmcgRUMyIGluc3RhbmNlcyB0aGF0IGhhdmUgYmVjb21lIGlkbGUgb3IgdW5kZXJ1dGlsaXplZC4gQSBsb25nZXIgZGVsYXkgaW5jcmVhc2VzIHRoZSBsaWtlbGlob29kIG9mIHBsYWNpbmcgbmV3IHRhc2tzIG9uIGlkbGUgaW5zdGFuY2VzLCByZWR1Y2luZyBzdGFydHVwIHRpbWUuIEEgc2hvcnRlciBkZWxheSBoZWxwcyByZWR1Y2UgaW5mcmFzdHJ1Y3R1cmUgY29zdHMgYnkgb3B0aW1pemluZyBpZGxlIGluc3RhbmNlcyBtb3JlIHF1aWNrbHkuIFZhbGlkIHZhbHVlcyBhcmU6IE5vdCBzZXQgKG51bGwpIC0gVXNlcyB0aGUgZGVmYXVsdCBvcHRpbWl6YXRpb24gYmVoYXZpb3IsIGAtMWAgLSBEaXNhYmxlcyBhdXRvbWF0aWMgaW5mcmFzdHJ1Y3R1cmUgb3B0aW1pemF0aW9uLCBgMGAgdG8gYDM2MDBgIChpbmNsdXNpdmUpIC0gU3BlY2lmaWVzIHRoZSBudW1iZXIgb2Ygc2Vjb25kcyB0byB3YWl0IGJlZm9yZSBvcHRpbWl6aW5nIGluc3RhbmNlcy5cbiAqL1xuU2NhbGVJbkFmdGVyPzogbnVtYmVyXG59XG5JbnN0YW5jZUxhdW5jaFRlbXBsYXRlOiBJbnN0YW5jZUxhdW5jaFRlbXBsYXRlXG59XG5leHBvcnQgaW50ZXJmYWNlIEluc3RhbmNlTGF1bmNoVGVtcGxhdGUge1xuRWMySW5zdGFuY2VQcm9maWxlQXJuOiBzdHJpbmdcbkNhcGFjaXR5T3B0aW9uVHlwZT86IChcIk9OX0RFTUFORFwiIHwgXCJTUE9UXCIpXG5TdG9yYWdlQ29uZmlndXJhdGlvbj86IE1hbmFnZWRJbnN0YW5jZXNTdG9yYWdlQ29uZmlndXJhdGlvblxuTmV0d29ya0NvbmZpZ3VyYXRpb246IE1hbmFnZWRJbnN0YW5jZXNOZXR3b3JrQ29uZmlndXJhdGlvblxuSW5zdGFuY2VSZXF1aXJlbWVudHM/OiBJbnN0YW5jZVJlcXVpcmVtZW50c1JlcXVlc3Rcbk1vbml0b3Jpbmc/OiBNYW5hZ2VkSW5zdGFuY2VzTW9uaXRvcmluZ09wdGlvbnNcbn1cbmV4cG9ydCBpbnRlcmZhY2UgTWFuYWdlZEluc3RhbmNlc1N0b3JhZ2VDb25maWd1cmF0aW9uIHtcblN0b3JhZ2VTaXplR2lCOiBudW1iZXJcbn1cbmV4cG9ydCBpbnRlcmZhY2UgTWFuYWdlZEluc3RhbmNlc05ldHdvcmtDb25maWd1cmF0aW9uIHtcblNlY3VyaXR5R3JvdXBzOiBzdHJpbmdbXVxuU3VibmV0czogc3RyaW5nW11cbn1cbmV4cG9ydCBpbnRlcmZhY2UgSW5zdGFuY2VSZXF1aXJlbWVudHNSZXF1ZXN0IHtcbkxvY2FsU3RvcmFnZVR5cGVzPzogKFwiaGRkXCIgfCBcInNzZFwiKVtdXG5JbnN0YW5jZUdlbmVyYXRpb25zPzogKFwiY3VycmVudFwiIHwgXCJwcmV2aW91c1wiKVtdXG5OZXR3b3JrSW50ZXJmYWNlQ291bnQ/OiBOZXR3b3JrSW50ZXJmYWNlQ291bnRSZXF1ZXN0XG5NZW1vcnlHaUJQZXJWQ3B1PzogTWVtb3J5R2lCUGVyVkNwdVJlcXVlc3RcbkFjY2VsZXJhdG9yVHlwZXM/OiAoXCJncHVcIiB8IFwiZnBnYVwiIHwgXCJpbmZlcmVuY2VcIilbXVxuVkNwdUNvdW50OiBWQ3B1Q291bnRSYW5nZVJlcXVlc3RcbkV4Y2x1ZGVkSW5zdGFuY2VUeXBlcz86IHN0cmluZ1tdXG5BY2NlbGVyYXRvck1hbnVmYWN0dXJlcnM/OiAoXCJhbWF6b24td2ViLXNlcnZpY2VzXCIgfCBcImFtZFwiIHwgXCJoYWJhbmFcIiB8IFwibnZpZGlhXCIgfCBcInhpbGlueFwiKVtdXG5BbGxvd2VkSW5zdGFuY2VUeXBlcz86IHN0cmluZ1tdXG5Mb2NhbFN0b3JhZ2U/OiAoXCJpbmNsdWRlZFwiIHwgXCJyZXF1aXJlZFwiIHwgXCJleGNsdWRlZFwiKVxuQ3B1TWFudWZhY3R1cmVycz86IChcImludGVsXCIgfCBcImFtZFwiIHwgXCJhbWF6b24td2ViLXNlcnZpY2VzXCIpW11cbk5ldHdvcmtCYW5kd2lkdGhHYnBzPzogTmV0d29ya0JhbmR3aWR0aEdicHNSZXF1ZXN0XG5BY2NlbGVyYXRvckNvdW50PzogQWNjZWxlcmF0b3JDb3VudFJlcXVlc3RcbkJhcmVNZXRhbD86IChcImluY2x1ZGVkXCIgfCBcInJlcXVpcmVkXCIgfCBcImV4Y2x1ZGVkXCIpXG5SZXF1aXJlSGliZXJuYXRlU3VwcG9ydD86IGJvb2xlYW5cbk1heFNwb3RQcmljZUFzUGVyY2VudGFnZU9mT3B0aW1hbE9uRGVtYW5kUHJpY2U/OiBudW1iZXJcblNwb3RNYXhQcmljZVBlcmNlbnRhZ2VPdmVyTG93ZXN0UHJpY2U/OiBudW1iZXJcbkJhc2VsaW5lRWJzQmFuZHdpZHRoTWJwcz86IEJhc2VsaW5lRWJzQmFuZHdpZHRoTWJwc1JlcXVlc3Rcbk9uRGVtYW5kTWF4UHJpY2VQZXJjZW50YWdlT3Zlckxvd2VzdFByaWNlPzogbnVtYmVyXG5BY2NlbGVyYXRvck5hbWVzPzogKFwiYTEwZ1wiIHwgXCJhMTAwXCIgfCBcImgxMDBcIiB8IFwiaW5mZXJlbnRpYVwiIHwgXCJrNTIwXCIgfCBcIms4MFwiIHwgXCJtNjBcIiB8IFwicmFkZW9uLXByby12NTIwXCIgfCBcInQ0XCIgfCBcInQ0Z1wiIHwgXCJ2dTlwXCIgfCBcInYxMDBcIiB8IFwibDQwc1wiKVtdXG5BY2NlbGVyYXRvclRvdGFsTWVtb3J5TWlCPzogQWNjZWxlcmF0b3JUb3RhbE1lbW9yeU1pQlJlcXVlc3RcbkJ1cnN0YWJsZVBlcmZvcm1hbmNlPzogKFwiaW5jbHVkZWRcIiB8IFwicmVxdWlyZWRcIiB8IFwiZXhjbHVkZWRcIilcbk1lbW9yeU1pQjogTWVtb3J5TWlCUmVxdWVzdFxuVG90YWxMb2NhbFN0b3JhZ2VHQj86IFRvdGFsTG9jYWxTdG9yYWdlR0JSZXF1ZXN0XG59XG5leHBvcnQgaW50ZXJmYWNlIE5ldHdvcmtJbnRlcmZhY2VDb3VudFJlcXVlc3Qge1xuTWluPzogbnVtYmVyXG5NYXg/OiBudW1iZXJcbn1cbmV4cG9ydCBpbnRlcmZhY2UgTWVtb3J5R2lCUGVyVkNwdVJlcXVlc3Qge1xuTWluPzogbnVtYmVyXG5NYXg/OiBudW1iZXJcbn1cbmV4cG9ydCBpbnRlcmZhY2UgVkNwdUNvdW50UmFuZ2VSZXF1ZXN0IHtcbk1pbjogbnVtYmVyXG5NYXg/OiBudW1iZXJcbn1cbmV4cG9ydCBpbnRlcmZhY2UgTmV0d29ya0JhbmR3aWR0aEdicHNSZXF1ZXN0IHtcbk1pbj86IG51bWJlclxuTWF4PzogbnVtYmVyXG59XG5leHBvcnQgaW50ZXJmYWNlIEFjY2VsZXJhdG9yQ291bnRSZXF1ZXN0IHtcbk1pbj86IG51bWJlclxuTWF4PzogbnVtYmVyXG59XG5leHBvcnQgaW50ZXJmYWNlIEJhc2VsaW5lRWJzQmFuZHdpZHRoTWJwc1JlcXVlc3Qge1xuTWluPzogbnVtYmVyXG5NYXg/OiBudW1iZXJcbn1cbmV4cG9ydCBpbnRlcmZhY2UgQWNjZWxlcmF0b3JUb3RhbE1lbW9yeU1pQlJlcXVlc3Qge1xuTWluPzogbnVtYmVyXG5NYXg/OiBudW1iZXJcbn1cbmV4cG9ydCBpbnRlcmZhY2UgTWVtb3J5TWlCUmVxdWVzdCB7XG5NaW46IG51bWJlclxuTWF4PzogbnVtYmVyXG59XG5leHBvcnQgaW50ZXJmYWNlIFRvdGFsTG9jYWxTdG9yYWdlR0JSZXF1ZXN0IHtcbk1pbj86IG51bWJlclxuTWF4PzogbnVtYmVyXG59XG4iXX0=
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWVjcy1jYXBhY2l0eXByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXdzLWVjcy1jYXBhY2l0eXByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBNYW5hZ2VkSW5zdGFuY2VzTW9uaXRvcmluZ09wdGlvbnMgPSAoXCJCQVNJQ1wiIHwgXCJERVRBSUxFRFwiKVxuXG4vKipcbiAqIFJlc291cmNlIFR5cGUgZGVmaW5pdGlvbiBmb3IgQVdTOjpFQ1M6OkNhcGFjaXR5UHJvdmlkZXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgX0FXU19FQ1NfQ0FQQUNJVFlQUk9WSURFUiB7XG5BdXRvU2NhbGluZ0dyb3VwUHJvdmlkZXI/OiBBdXRvU2NhbGluZ0dyb3VwUHJvdmlkZXJcbkNsdXN0ZXJOYW1lPzogc3RyaW5nXG5UYWdzPzogVGFnW11cbk5hbWU/OiBzdHJpbmdcbk1hbmFnZWRJbnN0YW5jZXNQcm92aWRlcj86IE1hbmFnZWRJbnN0YW5jZXNQcm92aWRlclxufVxuZXhwb3J0IGludGVyZmFjZSBBdXRvU2NhbGluZ0dyb3VwUHJvdmlkZXIge1xuTWFuYWdlZFNjYWxpbmc/OiBNYW5hZ2VkU2NhbGluZ1xuQXV0b1NjYWxpbmdHcm91cEFybjogc3RyaW5nXG5NYW5hZ2VkVGVybWluYXRpb25Qcm90ZWN0aW9uPzogKFwiRElTQUJMRURcIiB8IFwiRU5BQkxFRFwiKVxuTWFuYWdlZERyYWluaW5nPzogKFwiRElTQUJMRURcIiB8IFwiRU5BQkxFRFwiKVxufVxuLyoqXG4gKiBUaGUgbWFuYWdlZCBzY2FsaW5nIHNldHRpbmdzIGZvciB0aGUgQXV0byBTY2FsaW5nIGdyb3VwIGNhcGFjaXR5IHByb3ZpZGVyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1hbmFnZWRTY2FsaW5nIHtcblN0YXR1cz86IChcIkRJU0FCTEVEXCIgfCBcIkVOQUJMRURcIilcbk1pbmltdW1TY2FsaW5nU3RlcFNpemU/OiBudW1iZXJcbkluc3RhbmNlV2FybXVwUGVyaW9kPzogbnVtYmVyXG5UYXJnZXRDYXBhY2l0eT86IG51bWJlclxuTWF4aW11bVNjYWxpbmdTdGVwU2l6ZT86IG51bWJlclxufVxuZXhwb3J0IGludGVyZmFjZSBUYWcge1xuVmFsdWU/OiBzdHJpbmdcbktleT86IHN0cmluZ1xufVxuZXhwb3J0IGludGVyZmFjZSBNYW5hZ2VkSW5zdGFuY2VzUHJvdmlkZXIge1xuSW5mcmFzdHJ1Y3R1cmVSb2xlQXJuOiBzdHJpbmdcblByb3BhZ2F0ZVRhZ3M/OiAoXCJDQVBBQ0lUWV9QUk9WSURFUlwiIHwgXCJOT05FXCIpXG4vKipcbiAqIERlZmluZXMgaG93IEFtYXpvbiBFQ1MgTWFuYWdlZCBJbnN0YW5jZXMgb3B0aW1pemVzIHRoZSBpbmZyYXN0cnVjdHVyZSBpbiB5b3VyIGNhcGFjaXR5IHByb3ZpZGVyLiBDb25maWd1cmUgaXQgdG8gdHVybiBvbiBvciBvZmYgdGhlIGluZnJhc3RydWN0dXJlIG9wdGltaXphdGlvbiBpbiB5b3VyIGNhcGFjaXR5IHByb3ZpZGVyLCBhbmQgdG8gY29udHJvbCB0aGUgaWRsZSBFQzIgaW5zdGFuY2VzIG9wdGltaXphdGlvbiBkZWxheS5cbiAqL1xuSW5mcmFzdHJ1Y3R1cmVPcHRpbWl6YXRpb24/OiB7XG4vKipcbiAqIFRoaXMgcGFyYW1ldGVyIGRlZmluZXMgdGhlIG51bWJlciBvZiBzZWNvbmRzIEFtYXpvbiBFQ1MgTWFuYWdlZCBJbnN0YW5jZXMgd2FpdHMgYmVmb3JlIG9wdGltaXppbmcgRUMyIGluc3RhbmNlcyB0aGF0IGhhdmUgYmVjb21lIGlkbGUgb3IgdW5kZXJ1dGlsaXplZC4gQSBsb25nZXIgZGVsYXkgaW5jcmVhc2VzIHRoZSBsaWtlbGlob29kIG9mIHBsYWNpbmcgbmV3IHRhc2tzIG9uIGlkbGUgaW5zdGFuY2VzLCByZWR1Y2luZyBzdGFydHVwIHRpbWUuIEEgc2hvcnRlciBkZWxheSBoZWxwcyByZWR1Y2UgaW5mcmFzdHJ1Y3R1cmUgY29zdHMgYnkgb3B0aW1pemluZyBpZGxlIGluc3RhbmNlcyBtb3JlIHF1aWNrbHkuIFZhbGlkIHZhbHVlcyBhcmU6IE5vdCBzZXQgKG51bGwpIC0gVXNlcyB0aGUgZGVmYXVsdCBvcHRpbWl6YXRpb24gYmVoYXZpb3IsIGAtMWAgLSBEaXNhYmxlcyBhdXRvbWF0aWMgaW5mcmFzdHJ1Y3R1cmUgb3B0aW1pemF0aW9uLCBgMGAgdG8gYDM2MDBgIChpbmNsdXNpdmUpIC0gU3BlY2lmaWVzIHRoZSBudW1iZXIgb2Ygc2Vjb25kcyB0byB3YWl0IGJlZm9yZSBvcHRpbWl6aW5nIGluc3RhbmNlcy5cbiAqL1xuU2NhbGVJbkFmdGVyPzogbnVtYmVyXG59XG5JbnN0YW5jZUxhdW5jaFRlbXBsYXRlOiBJbnN0YW5jZUxhdW5jaFRlbXBsYXRlXG59XG5leHBvcnQgaW50ZXJmYWNlIEluc3RhbmNlTGF1bmNoVGVtcGxhdGUge1xuRWMySW5zdGFuY2VQcm9maWxlQXJuOiBzdHJpbmdcbkNhcGFjaXR5T3B0aW9uVHlwZT86IChcIk9OX0RFTUFORFwiIHwgXCJTUE9UXCIpXG5GaXBzRW5hYmxlZD86IGJvb2xlYW5cblN0b3JhZ2VDb25maWd1cmF0aW9uPzogTWFuYWdlZEluc3RhbmNlc1N0b3JhZ2VDb25maWd1cmF0aW9uXG5OZXR3b3JrQ29uZmlndXJhdGlvbjogTWFuYWdlZEluc3RhbmNlc05ldHdvcmtDb25maWd1cmF0aW9uXG5JbnN0YW5jZVJlcXVpcmVtZW50cz86IEluc3RhbmNlUmVxdWlyZW1lbnRzUmVxdWVzdFxuTW9uaXRvcmluZz86IE1hbmFnZWRJbnN0YW5jZXNNb25pdG9yaW5nT3B0aW9uc1xufVxuZXhwb3J0IGludGVyZmFjZSBNYW5hZ2VkSW5zdGFuY2VzU3RvcmFnZUNvbmZpZ3VyYXRpb24ge1xuU3RvcmFnZVNpemVHaUI6IG51bWJlclxufVxuZXhwb3J0IGludGVyZmFjZSBNYW5hZ2VkSW5zdGFuY2VzTmV0d29ya0NvbmZpZ3VyYXRpb24ge1xuU2VjdXJpdHlHcm91cHM6IHN0cmluZ1tdXG5TdWJuZXRzOiBzdHJpbmdbXVxufVxuZXhwb3J0IGludGVyZmFjZSBJbnN0YW5jZVJlcXVpcmVtZW50c1JlcXVlc3Qge1xuTG9jYWxTdG9yYWdlVHlwZXM/OiAoXCJoZGRcIiB8IFwic3NkXCIpW11cbkluc3RhbmNlR2VuZXJhdGlvbnM/OiAoXCJjdXJyZW50XCIgfCBcInByZXZpb3VzXCIpW11cbk5ldHdvcmtJbnRlcmZhY2VDb3VudD86IE5ldHdvcmtJbnRlcmZhY2VDb3VudFJlcXVlc3Rcbk1lbW9yeUdpQlBlclZDcHU/OiBNZW1vcnlHaUJQZXJWQ3B1UmVxdWVzdFxuQWNjZWxlcmF0b3JUeXBlcz86IChcImdwdVwiIHwgXCJmcGdhXCIgfCBcImluZmVyZW5jZVwiKVtdXG5WQ3B1Q291bnQ6IFZDcHVDb3VudFJhbmdlUmVxdWVzdFxuRXhjbHVkZWRJbnN0YW5jZVR5cGVzPzogc3RyaW5nW11cbkFjY2VsZXJhdG9yTWFudWZhY3R1cmVycz86IChcImFtYXpvbi13ZWItc2VydmljZXNcIiB8IFwiYW1kXCIgfCBcImhhYmFuYVwiIHwgXCJudmlkaWFcIiB8IFwieGlsaW54XCIpW11cbkFsbG93ZWRJbnN0YW5jZVR5cGVzPzogc3RyaW5nW11cbkxvY2FsU3RvcmFnZT86IChcImluY2x1ZGVkXCIgfCBcInJlcXVpcmVkXCIgfCBcImV4Y2x1ZGVkXCIpXG5DcHVNYW51ZmFjdHVyZXJzPzogKFwiaW50ZWxcIiB8IFwiYW1kXCIgfCBcImFtYXpvbi13ZWItc2VydmljZXNcIilbXVxuTmV0d29ya0JhbmR3aWR0aEdicHM/OiBOZXR3b3JrQmFuZHdpZHRoR2Jwc1JlcXVlc3RcbkFjY2VsZXJhdG9yQ291bnQ/OiBBY2NlbGVyYXRvckNvdW50UmVxdWVzdFxuQmFyZU1ldGFsPzogKFwiaW5jbHVkZWRcIiB8IFwicmVxdWlyZWRcIiB8IFwiZXhjbHVkZWRcIilcblJlcXVpcmVIaWJlcm5hdGVTdXBwb3J0PzogYm9vbGVhblxuTWF4U3BvdFByaWNlQXNQZXJjZW50YWdlT2ZPcHRpbWFsT25EZW1hbmRQcmljZT86IG51bWJlclxuU3BvdE1heFByaWNlUGVyY2VudGFnZU92ZXJMb3dlc3RQcmljZT86IG51bWJlclxuQmFzZWxpbmVFYnNCYW5kd2lkdGhNYnBzPzogQmFzZWxpbmVFYnNCYW5kd2lkdGhNYnBzUmVxdWVzdFxuT25EZW1hbmRNYXhQcmljZVBlcmNlbnRhZ2VPdmVyTG93ZXN0UHJpY2U/OiBudW1iZXJcbkFjY2VsZXJhdG9yTmFtZXM/OiAoXCJhMTBnXCIgfCBcImExMDBcIiB8IFwiaDEwMFwiIHwgXCJpbmZlcmVudGlhXCIgfCBcIms1MjBcIiB8IFwiazgwXCIgfCBcIm02MFwiIHwgXCJyYWRlb24tcHJvLXY1MjBcIiB8IFwidDRcIiB8IFwidDRnXCIgfCBcInZ1OXBcIiB8IFwidjEwMFwiIHwgXCJsNDBzXCIpW11cbkFjY2VsZXJhdG9yVG90YWxNZW1vcnlNaUI/OiBBY2NlbGVyYXRvclRvdGFsTWVtb3J5TWlCUmVxdWVzdFxuQnVyc3RhYmxlUGVyZm9ybWFuY2U/OiAoXCJpbmNsdWRlZFwiIHwgXCJyZXF1aXJlZFwiIHwgXCJleGNsdWRlZFwiKVxuTWVtb3J5TWlCOiBNZW1vcnlNaUJSZXF1ZXN0XG5Ub3RhbExvY2FsU3RvcmFnZUdCPzogVG90YWxMb2NhbFN0b3JhZ2VHQlJlcXVlc3Rcbn1cbmV4cG9ydCBpbnRlcmZhY2UgTmV0d29ya0ludGVyZmFjZUNvdW50UmVxdWVzdCB7XG5NaW4/OiBudW1iZXJcbk1heD86IG51bWJlclxufVxuZXhwb3J0IGludGVyZmFjZSBNZW1vcnlHaUJQZXJWQ3B1UmVxdWVzdCB7XG5NaW4/OiBudW1iZXJcbk1heD86IG51bWJlclxufVxuZXhwb3J0IGludGVyZmFjZSBWQ3B1Q291bnRSYW5nZVJlcXVlc3Qge1xuTWluOiBudW1iZXJcbk1heD86IG51bWJlclxufVxuZXhwb3J0IGludGVyZmFjZSBOZXR3b3JrQmFuZHdpZHRoR2Jwc1JlcXVlc3Qge1xuTWluPzogbnVtYmVyXG5NYXg/OiBudW1iZXJcbn1cbmV4cG9ydCBpbnRlcmZhY2UgQWNjZWxlcmF0b3JDb3VudFJlcXVlc3Qge1xuTWluPzogbnVtYmVyXG5NYXg/OiBudW1iZXJcbn1cbmV4cG9ydCBpbnRlcmZhY2UgQmFzZWxpbmVFYnNCYW5kd2lkdGhNYnBzUmVxdWVzdCB7XG5NaW4/OiBudW1iZXJcbk1heD86IG51bWJlclxufVxuZXhwb3J0IGludGVyZmFjZSBBY2NlbGVyYXRvclRvdGFsTWVtb3J5TWlCUmVxdWVzdCB7XG5NaW4/OiBudW1iZXJcbk1heD86IG51bWJlclxufVxuZXhwb3J0IGludGVyZmFjZSBNZW1vcnlNaUJSZXF1ZXN0IHtcbk1pbjogbnVtYmVyXG5NYXg/OiBudW1iZXJcbn1cbmV4cG9ydCBpbnRlcmZhY2UgVG90YWxMb2NhbFN0b3JhZ2VHQlJlcXVlc3Qge1xuTWluPzogbnVtYmVyXG5NYXg/OiBudW1iZXJcbn1cbiJdfQ==
@@ -2,30 +2,14 @@
2
2
  * An object representing an Amazon EKS PodIdentityAssociation.
3
3
  */
4
4
  export interface _AWS_EKS_PODIDENTITYASSOCIATION {
5
- /**
6
- * The cluster that the pod identity association is created for.
7
- */
8
- ClusterName: string;
9
- /**
10
- * The IAM role ARN that the pod identity association is created for.
11
- */
12
- RoleArn: string;
13
- /**
14
- * The Kubernetes namespace that the pod identity association is created for.
15
- */
16
- Namespace: string;
17
- /**
18
- * The Kubernetes service account that the pod identity association is created for.
19
- */
20
- ServiceAccount: string;
21
5
  /**
22
6
  * The ARN of the pod identity association.
23
7
  */
24
8
  AssociationArn?: string;
25
9
  /**
26
- * The ID of the pod identity association.
10
+ * The Kubernetes service account that the pod identity association is created for.
27
11
  */
28
- AssociationId?: string;
12
+ ServiceAccount: string;
29
13
  /**
30
14
  * The Target Role Arn of the pod identity association.
31
15
  */
@@ -34,10 +18,26 @@ export interface _AWS_EKS_PODIDENTITYASSOCIATION {
34
18
  * The External Id of the pod identity association.
35
19
  */
36
20
  ExternalId?: string;
21
+ /**
22
+ * The cluster that the pod identity association is created for.
23
+ */
24
+ ClusterName: string;
37
25
  /**
38
26
  * The Disable Session Tags of the pod identity association.
39
27
  */
40
28
  DisableSessionTags?: boolean;
29
+ /**
30
+ * The IAM role ARN that the pod identity association is created for.
31
+ */
32
+ RoleArn: string;
33
+ /**
34
+ * The Kubernetes namespace that the pod identity association is created for.
35
+ */
36
+ Namespace: string;
37
+ /**
38
+ * The ID of the pod identity association.
39
+ */
40
+ AssociationId?: string;
41
41
  /**
42
42
  * An array of key-value pairs to apply to this resource.
43
43
  */
@@ -47,12 +47,12 @@ export interface _AWS_EKS_PODIDENTITYASSOCIATION {
47
47
  * A key-value pair to associate with a resource.
48
48
  */
49
49
  export interface Tag {
50
- /**
51
- * The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.
52
- */
53
- Key: string;
54
50
  /**
55
51
  * The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.
56
52
  */
57
53
  Value: string;
54
+ /**
55
+ * The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.
56
+ */
57
+ Key: string;
58
58
  }
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWVrcy1wb2RpZGVudGl0eWFzc29jaWF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXdzLWVrcy1wb2RpZGVudGl0eWFzc29jaWF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEFuIG9iamVjdCByZXByZXNlbnRpbmcgYW4gQW1hem9uIEVLUyBQb2RJZGVudGl0eUFzc29jaWF0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIF9BV1NfRUtTX1BPRElERU5USVRZQVNTT0NJQVRJT04ge1xuLyoqXG4gKiBUaGUgY2x1c3RlciB0aGF0IHRoZSBwb2QgaWRlbnRpdHkgYXNzb2NpYXRpb24gaXMgY3JlYXRlZCBmb3IuXG4gKi9cbkNsdXN0ZXJOYW1lOiBzdHJpbmdcbi8qKlxuICogVGhlIElBTSByb2xlIEFSTiB0aGF0IHRoZSBwb2QgaWRlbnRpdHkgYXNzb2NpYXRpb24gaXMgY3JlYXRlZCBmb3IuXG4gKi9cblJvbGVBcm46IHN0cmluZ1xuLyoqXG4gKiBUaGUgS3ViZXJuZXRlcyBuYW1lc3BhY2UgdGhhdCB0aGUgcG9kIGlkZW50aXR5IGFzc29jaWF0aW9uIGlzIGNyZWF0ZWQgZm9yLlxuICovXG5OYW1lc3BhY2U6IHN0cmluZ1xuLyoqXG4gKiBUaGUgS3ViZXJuZXRlcyBzZXJ2aWNlIGFjY291bnQgdGhhdCB0aGUgcG9kIGlkZW50aXR5IGFzc29jaWF0aW9uIGlzIGNyZWF0ZWQgZm9yLlxuICovXG5TZXJ2aWNlQWNjb3VudDogc3RyaW5nXG4vKipcbiAqIFRoZSBBUk4gb2YgdGhlIHBvZCBpZGVudGl0eSBhc3NvY2lhdGlvbi5cbiAqL1xuQXNzb2NpYXRpb25Bcm4/OiBzdHJpbmdcbi8qKlxuICogVGhlIElEIG9mIHRoZSBwb2QgaWRlbnRpdHkgYXNzb2NpYXRpb24uXG4gKi9cbkFzc29jaWF0aW9uSWQ/OiBzdHJpbmdcbi8qKlxuICogVGhlIFRhcmdldCBSb2xlIEFybiBvZiB0aGUgcG9kIGlkZW50aXR5IGFzc29jaWF0aW9uLlxuICovXG5UYXJnZXRSb2xlQXJuPzogc3RyaW5nXG4vKipcbiAqIFRoZSBFeHRlcm5hbCBJZCBvZiB0aGUgcG9kIGlkZW50aXR5IGFzc29jaWF0aW9uLlxuICovXG5FeHRlcm5hbElkPzogc3RyaW5nXG4vKipcbiAqIFRoZSBEaXNhYmxlIFNlc3Npb24gVGFncyBvZiB0aGUgcG9kIGlkZW50aXR5IGFzc29jaWF0aW9uLlxuICovXG5EaXNhYmxlU2Vzc2lvblRhZ3M/OiBib29sZWFuXG4vKipcbiAqIEFuIGFycmF5IG9mIGtleS12YWx1ZSBwYWlycyB0byBhcHBseSB0byB0aGlzIHJlc291cmNlLlxuICovXG5UYWdzPzogVGFnW11cbn1cbi8qKlxuICogQSBrZXktdmFsdWUgcGFpciB0byBhc3NvY2lhdGUgd2l0aCBhIHJlc291cmNlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRhZyB7XG4vKipcbiAqIFRoZSBrZXkgbmFtZSBvZiB0aGUgdGFnLiBZb3UgY2FuIHNwZWNpZnkgYSB2YWx1ZSB0aGF0IGlzIDEgdG8gMTI4IFVuaWNvZGUgY2hhcmFjdGVycyBpbiBsZW5ndGggYW5kIGNhbm5vdCBiZSBwcmVmaXhlZCB3aXRoIGF3czouIFlvdSBjYW4gdXNlIGFueSBvZiB0aGUgZm9sbG93aW5nIGNoYXJhY3RlcnM6IHRoZSBzZXQgb2YgVW5pY29kZSBsZXR0ZXJzLCBkaWdpdHMsIHdoaXRlc3BhY2UsIF8sIC4sIC8sID0sICssIGFuZCAtLlxuICovXG5LZXk6IHN0cmluZ1xuLyoqXG4gKiBUaGUgdmFsdWUgZm9yIHRoZSB0YWcuIFlvdSBjYW4gc3BlY2lmeSBhIHZhbHVlIHRoYXQgaXMgMCB0byAyNTYgVW5pY29kZSBjaGFyYWN0ZXJzIGluIGxlbmd0aCBhbmQgY2Fubm90IGJlIHByZWZpeGVkIHdpdGggYXdzOi4gWW91IGNhbiB1c2UgYW55IG9mIHRoZSBmb2xsb3dpbmcgY2hhcmFjdGVyczogdGhlIHNldCBvZiBVbmljb2RlIGxldHRlcnMsIGRpZ2l0cywgd2hpdGVzcGFjZSwgXywgLiwgLywgPSwgKywgYW5kIC0uXG4gKi9cblZhbHVlOiBzdHJpbmdcbn1cbiJdfQ==
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWVrcy1wb2RpZGVudGl0eWFzc29jaWF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXdzLWVrcy1wb2RpZGVudGl0eWFzc29jaWF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEFuIG9iamVjdCByZXByZXNlbnRpbmcgYW4gQW1hem9uIEVLUyBQb2RJZGVudGl0eUFzc29jaWF0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIF9BV1NfRUtTX1BPRElERU5USVRZQVNTT0NJQVRJT04ge1xuLyoqXG4gKiBUaGUgQVJOIG9mIHRoZSBwb2QgaWRlbnRpdHkgYXNzb2NpYXRpb24uXG4gKi9cbkFzc29jaWF0aW9uQXJuPzogc3RyaW5nXG4vKipcbiAqIFRoZSBLdWJlcm5ldGVzIHNlcnZpY2UgYWNjb3VudCB0aGF0IHRoZSBwb2QgaWRlbnRpdHkgYXNzb2NpYXRpb24gaXMgY3JlYXRlZCBmb3IuXG4gKi9cblNlcnZpY2VBY2NvdW50OiBzdHJpbmdcbi8qKlxuICogVGhlIFRhcmdldCBSb2xlIEFybiBvZiB0aGUgcG9kIGlkZW50aXR5IGFzc29jaWF0aW9uLlxuICovXG5UYXJnZXRSb2xlQXJuPzogc3RyaW5nXG4vKipcbiAqIFRoZSBFeHRlcm5hbCBJZCBvZiB0aGUgcG9kIGlkZW50aXR5IGFzc29jaWF0aW9uLlxuICovXG5FeHRlcm5hbElkPzogc3RyaW5nXG4vKipcbiAqIFRoZSBjbHVzdGVyIHRoYXQgdGhlIHBvZCBpZGVudGl0eSBhc3NvY2lhdGlvbiBpcyBjcmVhdGVkIGZvci5cbiAqL1xuQ2x1c3Rlck5hbWU6IHN0cmluZ1xuLyoqXG4gKiBUaGUgRGlzYWJsZSBTZXNzaW9uIFRhZ3Mgb2YgdGhlIHBvZCBpZGVudGl0eSBhc3NvY2lhdGlvbi5cbiAqL1xuRGlzYWJsZVNlc3Npb25UYWdzPzogYm9vbGVhblxuLyoqXG4gKiBUaGUgSUFNIHJvbGUgQVJOIHRoYXQgdGhlIHBvZCBpZGVudGl0eSBhc3NvY2lhdGlvbiBpcyBjcmVhdGVkIGZvci5cbiAqL1xuUm9sZUFybjogc3RyaW5nXG4vKipcbiAqIFRoZSBLdWJlcm5ldGVzIG5hbWVzcGFjZSB0aGF0IHRoZSBwb2QgaWRlbnRpdHkgYXNzb2NpYXRpb24gaXMgY3JlYXRlZCBmb3IuXG4gKi9cbk5hbWVzcGFjZTogc3RyaW5nXG4vKipcbiAqIFRoZSBJRCBvZiB0aGUgcG9kIGlkZW50aXR5IGFzc29jaWF0aW9uLlxuICovXG5Bc3NvY2lhdGlvbklkPzogc3RyaW5nXG4vKipcbiAqIEFuIGFycmF5IG9mIGtleS12YWx1ZSBwYWlycyB0byBhcHBseSB0byB0aGlzIHJlc291cmNlLlxuICovXG5UYWdzPzogVGFnW11cbn1cbi8qKlxuICogQSBrZXktdmFsdWUgcGFpciB0byBhc3NvY2lhdGUgd2l0aCBhIHJlc291cmNlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRhZyB7XG4vKipcbiAqIFRoZSB2YWx1ZSBmb3IgdGhlIHRhZy4gWW91IGNhbiBzcGVjaWZ5IGEgdmFsdWUgdGhhdCBpcyAwIHRvIDI1NiBVbmljb2RlIGNoYXJhY3RlcnMgaW4gbGVuZ3RoIGFuZCBjYW5ub3QgYmUgcHJlZml4ZWQgd2l0aCBhd3M6LiBZb3UgY2FuIHVzZSBhbnkgb2YgdGhlIGZvbGxvd2luZyBjaGFyYWN0ZXJzOiB0aGUgc2V0IG9mIFVuaWNvZGUgbGV0dGVycywgZGlnaXRzLCB3aGl0ZXNwYWNlLCBfLCAuLCAvLCA9LCArLCBhbmQgLS5cbiAqL1xuVmFsdWU6IHN0cmluZ1xuLyoqXG4gKiBUaGUga2V5IG5hbWUgb2YgdGhlIHRhZy4gWW91IGNhbiBzcGVjaWZ5IGEgdmFsdWUgdGhhdCBpcyAxIHRvIDEyOCBVbmljb2RlIGNoYXJhY3RlcnMgaW4gbGVuZ3RoIGFuZCBjYW5ub3QgYmUgcHJlZml4ZWQgd2l0aCBhd3M6LiBZb3UgY2FuIHVzZSBhbnkgb2YgdGhlIGZvbGxvd2luZyBjaGFyYWN0ZXJzOiB0aGUgc2V0IG9mIFVuaWNvZGUgbGV0dGVycywgZGlnaXRzLCB3aGl0ZXNwYWNlLCBfLCAuLCAvLCA9LCArLCBhbmQgLS5cbiAqL1xuS2V5OiBzdHJpbmdcbn1cbiJdfQ==
@@ -16,7 +16,7 @@ export interface _AWS_EVS_ENVIRONMENT {
16
16
  KmsKeyId?: string;
17
17
  VpcId: string;
18
18
  ServiceAccessSubnetId: string;
19
- VcfVersion: "VCF-5.2.1";
19
+ VcfVersion: ("VCF-5.2.1" | "VCF-5.2.2");
20
20
  TermsAccepted: boolean;
21
21
  /**
22
22
  * The license information for an EVS environment
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWV2cy1lbnZpcm9ubWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImF3cy1ldnMtZW52aXJvbm1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIE5ldHdvcmtBY2xJZCA9IHN0cmluZ1xuZXhwb3J0IHR5cGUgSG9zdE5hbWUgPSBzdHJpbmdcbmV4cG9ydCB0eXBlIFJvdXRlU2VydmVyUGVlcmluZyA9IHN0cmluZ1xuZXhwb3J0IHR5cGUgRW52aXJvbm1lbnRTdGF0ZSA9IChcIkNSRUFUSU5HXCIgfCBcIkNSRUFURURcIiB8IFwiREVMRVRJTkdcIiB8IFwiREVMRVRFRFwiIHwgXCJDUkVBVEVfRkFJTEVEXCIpXG5leHBvcnQgdHlwZSBDaGVja1Jlc3VsdCA9IChcIlBBU1NFRFwiIHwgXCJGQUlMRURcIiB8IFwiVU5LTk9XTlwiKVxuZXhwb3J0IHR5cGUgU2VjdXJpdHlHcm91cElkID0gc3RyaW5nXG5leHBvcnQgdHlwZSBUaW1lc3RhbXAgPSBzdHJpbmdcblxuLyoqXG4gKiBBbiBlbnZpcm9ubWVudCBjcmVhdGVkIHdpdGhpbiB0aGUgRVZTIHNlcnZpY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBfQVdTX0VWU19FTlZJUk9OTUVOVCB7XG4vKipcbiAqIFRoZSBuYW1lIG9mIGFuIEVWUyBlbnZpcm9ubWVudFxuICovXG5FbnZpcm9ubWVudE5hbWU/OiBzdHJpbmdcbkttc0tleUlkPzogc3RyaW5nXG5WcGNJZDogc3RyaW5nXG5TZXJ2aWNlQWNjZXNzU3VibmV0SWQ6IHN0cmluZ1xuVmNmVmVyc2lvbjogXCJWQ0YtNS4yLjFcIlxuVGVybXNBY2NlcHRlZDogYm9vbGVhblxuLyoqXG4gKiBUaGUgbGljZW5zZSBpbmZvcm1hdGlvbiBmb3IgYW4gRVZTIGVudmlyb25tZW50XG4gKi9cbkxpY2Vuc2VJbmZvOiB7XG5Tb2x1dGlvbktleTogc3RyaW5nXG5Wc2FuS2V5OiBzdHJpbmdcbn1cbi8qKlxuICogVGhlIGluaXRpYWwgVmxhbiBjb25maWd1cmF0aW9uIG9ubHkgcmVxdWlyZWQgdXBvbiBjcmVhdGlvbi4gTW9kaWZpY2F0aW9uIGFmdGVyIGNyZWF0aW9uIHdpbGwgaGF2ZSBubyBlZmZlY3RcbiAqL1xuSW5pdGlhbFZsYW5zPzoge1xuVm1rTWFuYWdlbWVudDogSW5pdGlhbFZsYW5JbmZvXG5WbU1hbmFnZW1lbnQ6IEluaXRpYWxWbGFuSW5mb1xuVk1vdGlvbjogSW5pdGlhbFZsYW5JbmZvXG5WU2FuOiBJbml0aWFsVmxhbkluZm9cblZUZXA6IEluaXRpYWxWbGFuSW5mb1xuRWRnZVZUZXA6IEluaXRpYWxWbGFuSW5mb1xuTnN4VXBMaW5rOiBJbml0aWFsVmxhbkluZm9cbkhjeDogSW5pdGlhbFZsYW5JbmZvXG5Jc0hjeFB1YmxpYz86IGJvb2xlYW5cbkhjeE5ldHdvcmtBY2xJZD86IE5ldHdvcmtBY2xJZFxuRXhwYW5zaW9uVmxhbjE6IEluaXRpYWxWbGFuSW5mb1xuRXhwYW5zaW9uVmxhbjI6IEluaXRpYWxWbGFuSW5mb1xuW2s6IHN0cmluZ106IHVua25vd25cbn1cbi8qKlxuICogVGhlIGluaXRpYWwgaG9zdHMgZm9yIGVudmlyb25tZW50IG9ubHkgcmVxdWlyZWQgdXBvbiBjcmVhdGlvbi4gTW9kaWZpY2F0aW9uIGFmdGVyIGNyZWF0aW9uIHdpbGwgaGF2ZSBubyBlZmZlY3RcbiAqIFxuICogQG1pbkl0ZW1zIDRcbiAqIEBtYXhJdGVtcyA0XG4gKi9cbkhvc3RzPzogSG9zdEluZm9Gb3JDcmVhdGVbXVxuQ29ubmVjdGl2aXR5SW5mbzoge1xuLyoqXG4gKiBAbWluSXRlbXMgMlxuICogQG1heEl0ZW1zIDJcbiAqL1xuUHJpdmF0ZVJvdXRlU2VydmVyUGVlcmluZ3M6IFJvdXRlU2VydmVyUGVlcmluZ1tdXG5bazogc3RyaW5nXTogdW5rbm93blxufVxuVmNmSG9zdG5hbWVzOiB7XG5WQ2VudGVyOiBIb3N0TmFtZVxuTnN4OiBIb3N0TmFtZVxuTnN4TWFuYWdlcjE6IEhvc3ROYW1lXG5Oc3hNYW5hZ2VyMjogSG9zdE5hbWVcbk5zeE1hbmFnZXIzOiBIb3N0TmFtZVxuTnN4RWRnZTE6IEhvc3ROYW1lXG5Oc3hFZGdlMjogSG9zdE5hbWVcblNkZGNNYW5hZ2VyOiBIb3N0TmFtZVxuQ2xvdWRCdWlsZGVyOiBIb3N0TmFtZVxuW2s6IHN0cmluZ106IHVua25vd25cbn1cblNpdGVJZDogc3RyaW5nXG5FbnZpcm9ubWVudElkPzogc3RyaW5nXG5FbnZpcm9ubWVudEFybj86IHN0cmluZ1xuRW52aXJvbm1lbnRTdGF0ZT86IEVudmlyb25tZW50U3RhdGVcblN0YXRlRGV0YWlscz86IHN0cmluZ1xuQ2hlY2tzPzogQ2hlY2tbXVxuQ3JlZGVudGlhbHM/OiBTZWNyZXRbXVxuU2VydmljZUFjY2Vzc1NlY3VyaXR5R3JvdXBzPzoge1xuU2VjdXJpdHlHcm91cHM/OiBTZWN1cml0eUdyb3VwSWRbXVxuW2s6IHN0cmluZ106IHVua25vd25cbn1cbi8qKlxuICogQW4gYXJyYXkgb2Yga2V5LXZhbHVlIHBhaXJzIHRvIGFwcGx5IHRvIHRoaXMgcmVzb3VyY2UuXG4gKi9cblRhZ3M/OiBUYWdbXVxuQ3JlYXRlZEF0PzogVGltZXN0YW1wXG5Nb2RpZmllZEF0PzogVGltZXN0YW1wXG59XG5leHBvcnQgaW50ZXJmYWNlIEluaXRpYWxWbGFuSW5mbyB7XG5DaWRyOiBzdHJpbmdcbltrOiBzdHJpbmddOiB1bmtub3duXG59XG5leHBvcnQgaW50ZXJmYWNlIEhvc3RJbmZvRm9yQ3JlYXRlIHtcbkhvc3ROYW1lOiBIb3N0TmFtZVxuS2V5TmFtZTogc3RyaW5nXG5JbnN0YW5jZVR5cGU6IFwiaTRpLm1ldGFsXCJcblBsYWNlbWVudEdyb3VwSWQ/OiBzdHJpbmdcbkRlZGljYXRlZEhvc3RJZD86IHN0cmluZ1xuW2s6IHN0cmluZ106IHVua25vd25cbn1cbmV4cG9ydCBpbnRlcmZhY2UgQ2hlY2sge1xuVHlwZTogKFwiS0VZX1JFVVNFXCIgfCBcIktFWV9DT1ZFUkFHRVwiIHwgXCJSRUFDSEFCSUxJVFlcIiB8IFwiVkNGX1ZFUlNJT05cIiB8IFwiSE9TVF9DT1VOVFwiKVxuUmVzdWx0OiBDaGVja1Jlc3VsdFxuSW1wYWlyZWRTaW5jZT86IHN0cmluZ1xuW2s6IHN0cmluZ106IHVua25vd25cbn1cbmV4cG9ydCBpbnRlcmZhY2UgU2VjcmV0IHtcblNlY3JldEFybj86IHN0cmluZ1xuW2s6IHN0cmluZ106IHVua25vd25cbn1cbi8qKlxuICogQSBrZXktdmFsdWUgcGFpciB0byBhc3NvY2lhdGUgd2l0aCBhIHJlc291cmNlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRhZyB7XG4vKipcbiAqIFRoZSBrZXkgbmFtZSBvZiB0aGUgdGFnLiBZb3UgY2FuIHNwZWNpZnkgYSB2YWx1ZSB0aGF0IGlzIDEgdG8gMTI4IFVuaWNvZGUgY2hhcmFjdGVycyBpbiBsZW5ndGggYW5kIGNhbm5vdCBiZSBwcmVmaXhlZCB3aXRoIGF3czouIFlvdSBjYW4gdXNlIGFueSBvZiB0aGUgZm9sbG93aW5nIGNoYXJhY3RlcnM6IHRoZSBzZXQgb2YgVW5pY29kZSBsZXR0ZXJzLCBkaWdpdHMsIHdoaXRlc3BhY2UsIF8sIC4sIC8sID0sICssIGFuZCAtLlxuICovXG5LZXk6IHN0cmluZ1xuLyoqXG4gKiBUaGUgdmFsdWUgZm9yIHRoZSB0YWcuIFlvdSBjYW4gc3BlY2lmeSBhIHZhbHVlIHRoYXQgaXMgMCB0byAyNTYgVW5pY29kZSBjaGFyYWN0ZXJzIGluIGxlbmd0aCBhbmQgY2Fubm90IGJlIHByZWZpeGVkIHdpdGggYXdzOi4gWW91IGNhbiB1c2UgYW55IG9mIHRoZSBmb2xsb3dpbmcgY2hhcmFjdGVyczogdGhlIHNldCBvZiBVbmljb2RlIGxldHRlcnMsIGRpZ2l0cywgd2hpdGVzcGFjZSwgXywgLiwgLywgPSwgKywgYW5kIC0uXG4gKi9cblZhbHVlOiBzdHJpbmdcbn1cbiJdfQ==
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWV2cy1lbnZpcm9ubWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImF3cy1ldnMtZW52aXJvbm1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIE5ldHdvcmtBY2xJZCA9IHN0cmluZ1xuZXhwb3J0IHR5cGUgSG9zdE5hbWUgPSBzdHJpbmdcbmV4cG9ydCB0eXBlIFJvdXRlU2VydmVyUGVlcmluZyA9IHN0cmluZ1xuZXhwb3J0IHR5cGUgRW52aXJvbm1lbnRTdGF0ZSA9IChcIkNSRUFUSU5HXCIgfCBcIkNSRUFURURcIiB8IFwiREVMRVRJTkdcIiB8IFwiREVMRVRFRFwiIHwgXCJDUkVBVEVfRkFJTEVEXCIpXG5leHBvcnQgdHlwZSBDaGVja1Jlc3VsdCA9IChcIlBBU1NFRFwiIHwgXCJGQUlMRURcIiB8IFwiVU5LTk9XTlwiKVxuZXhwb3J0IHR5cGUgU2VjdXJpdHlHcm91cElkID0gc3RyaW5nXG5leHBvcnQgdHlwZSBUaW1lc3RhbXAgPSBzdHJpbmdcblxuLyoqXG4gKiBBbiBlbnZpcm9ubWVudCBjcmVhdGVkIHdpdGhpbiB0aGUgRVZTIHNlcnZpY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBfQVdTX0VWU19FTlZJUk9OTUVOVCB7XG4vKipcbiAqIFRoZSBuYW1lIG9mIGFuIEVWUyBlbnZpcm9ubWVudFxuICovXG5FbnZpcm9ubWVudE5hbWU/OiBzdHJpbmdcbkttc0tleUlkPzogc3RyaW5nXG5WcGNJZDogc3RyaW5nXG5TZXJ2aWNlQWNjZXNzU3VibmV0SWQ6IHN0cmluZ1xuVmNmVmVyc2lvbjogKFwiVkNGLTUuMi4xXCIgfCBcIlZDRi01LjIuMlwiKVxuVGVybXNBY2NlcHRlZDogYm9vbGVhblxuLyoqXG4gKiBUaGUgbGljZW5zZSBpbmZvcm1hdGlvbiBmb3IgYW4gRVZTIGVudmlyb25tZW50XG4gKi9cbkxpY2Vuc2VJbmZvOiB7XG5Tb2x1dGlvbktleTogc3RyaW5nXG5Wc2FuS2V5OiBzdHJpbmdcbn1cbi8qKlxuICogVGhlIGluaXRpYWwgVmxhbiBjb25maWd1cmF0aW9uIG9ubHkgcmVxdWlyZWQgdXBvbiBjcmVhdGlvbi4gTW9kaWZpY2F0aW9uIGFmdGVyIGNyZWF0aW9uIHdpbGwgaGF2ZSBubyBlZmZlY3RcbiAqL1xuSW5pdGlhbFZsYW5zPzoge1xuVm1rTWFuYWdlbWVudDogSW5pdGlhbFZsYW5JbmZvXG5WbU1hbmFnZW1lbnQ6IEluaXRpYWxWbGFuSW5mb1xuVk1vdGlvbjogSW5pdGlhbFZsYW5JbmZvXG5WU2FuOiBJbml0aWFsVmxhbkluZm9cblZUZXA6IEluaXRpYWxWbGFuSW5mb1xuRWRnZVZUZXA6IEluaXRpYWxWbGFuSW5mb1xuTnN4VXBMaW5rOiBJbml0aWFsVmxhbkluZm9cbkhjeDogSW5pdGlhbFZsYW5JbmZvXG5Jc0hjeFB1YmxpYz86IGJvb2xlYW5cbkhjeE5ldHdvcmtBY2xJZD86IE5ldHdvcmtBY2xJZFxuRXhwYW5zaW9uVmxhbjE6IEluaXRpYWxWbGFuSW5mb1xuRXhwYW5zaW9uVmxhbjI6IEluaXRpYWxWbGFuSW5mb1xuW2s6IHN0cmluZ106IHVua25vd25cbn1cbi8qKlxuICogVGhlIGluaXRpYWwgaG9zdHMgZm9yIGVudmlyb25tZW50IG9ubHkgcmVxdWlyZWQgdXBvbiBjcmVhdGlvbi4gTW9kaWZpY2F0aW9uIGFmdGVyIGNyZWF0aW9uIHdpbGwgaGF2ZSBubyBlZmZlY3RcbiAqIFxuICogQG1pbkl0ZW1zIDRcbiAqIEBtYXhJdGVtcyA0XG4gKi9cbkhvc3RzPzogSG9zdEluZm9Gb3JDcmVhdGVbXVxuQ29ubmVjdGl2aXR5SW5mbzoge1xuLyoqXG4gKiBAbWluSXRlbXMgMlxuICogQG1heEl0ZW1zIDJcbiAqL1xuUHJpdmF0ZVJvdXRlU2VydmVyUGVlcmluZ3M6IFJvdXRlU2VydmVyUGVlcmluZ1tdXG5bazogc3RyaW5nXTogdW5rbm93blxufVxuVmNmSG9zdG5hbWVzOiB7XG5WQ2VudGVyOiBIb3N0TmFtZVxuTnN4OiBIb3N0TmFtZVxuTnN4TWFuYWdlcjE6IEhvc3ROYW1lXG5Oc3hNYW5hZ2VyMjogSG9zdE5hbWVcbk5zeE1hbmFnZXIzOiBIb3N0TmFtZVxuTnN4RWRnZTE6IEhvc3ROYW1lXG5Oc3hFZGdlMjogSG9zdE5hbWVcblNkZGNNYW5hZ2VyOiBIb3N0TmFtZVxuQ2xvdWRCdWlsZGVyOiBIb3N0TmFtZVxuW2s6IHN0cmluZ106IHVua25vd25cbn1cblNpdGVJZDogc3RyaW5nXG5FbnZpcm9ubWVudElkPzogc3RyaW5nXG5FbnZpcm9ubWVudEFybj86IHN0cmluZ1xuRW52aXJvbm1lbnRTdGF0ZT86IEVudmlyb25tZW50U3RhdGVcblN0YXRlRGV0YWlscz86IHN0cmluZ1xuQ2hlY2tzPzogQ2hlY2tbXVxuQ3JlZGVudGlhbHM/OiBTZWNyZXRbXVxuU2VydmljZUFjY2Vzc1NlY3VyaXR5R3JvdXBzPzoge1xuU2VjdXJpdHlHcm91cHM/OiBTZWN1cml0eUdyb3VwSWRbXVxuW2s6IHN0cmluZ106IHVua25vd25cbn1cbi8qKlxuICogQW4gYXJyYXkgb2Yga2V5LXZhbHVlIHBhaXJzIHRvIGFwcGx5IHRvIHRoaXMgcmVzb3VyY2UuXG4gKi9cblRhZ3M/OiBUYWdbXVxuQ3JlYXRlZEF0PzogVGltZXN0YW1wXG5Nb2RpZmllZEF0PzogVGltZXN0YW1wXG59XG5leHBvcnQgaW50ZXJmYWNlIEluaXRpYWxWbGFuSW5mbyB7XG5DaWRyOiBzdHJpbmdcbltrOiBzdHJpbmddOiB1bmtub3duXG59XG5leHBvcnQgaW50ZXJmYWNlIEhvc3RJbmZvRm9yQ3JlYXRlIHtcbkhvc3ROYW1lOiBIb3N0TmFtZVxuS2V5TmFtZTogc3RyaW5nXG5JbnN0YW5jZVR5cGU6IFwiaTRpLm1ldGFsXCJcblBsYWNlbWVudEdyb3VwSWQ/OiBzdHJpbmdcbkRlZGljYXRlZEhvc3RJZD86IHN0cmluZ1xuW2s6IHN0cmluZ106IHVua25vd25cbn1cbmV4cG9ydCBpbnRlcmZhY2UgQ2hlY2sge1xuVHlwZTogKFwiS0VZX1JFVVNFXCIgfCBcIktFWV9DT1ZFUkFHRVwiIHwgXCJSRUFDSEFCSUxJVFlcIiB8IFwiVkNGX1ZFUlNJT05cIiB8IFwiSE9TVF9DT1VOVFwiKVxuUmVzdWx0OiBDaGVja1Jlc3VsdFxuSW1wYWlyZWRTaW5jZT86IHN0cmluZ1xuW2s6IHN0cmluZ106IHVua25vd25cbn1cbmV4cG9ydCBpbnRlcmZhY2UgU2VjcmV0IHtcblNlY3JldEFybj86IHN0cmluZ1xuW2s6IHN0cmluZ106IHVua25vd25cbn1cbi8qKlxuICogQSBrZXktdmFsdWUgcGFpciB0byBhc3NvY2lhdGUgd2l0aCBhIHJlc291cmNlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRhZyB7XG4vKipcbiAqIFRoZSBrZXkgbmFtZSBvZiB0aGUgdGFnLiBZb3UgY2FuIHNwZWNpZnkgYSB2YWx1ZSB0aGF0IGlzIDEgdG8gMTI4IFVuaWNvZGUgY2hhcmFjdGVycyBpbiBsZW5ndGggYW5kIGNhbm5vdCBiZSBwcmVmaXhlZCB3aXRoIGF3czouIFlvdSBjYW4gdXNlIGFueSBvZiB0aGUgZm9sbG93aW5nIGNoYXJhY3RlcnM6IHRoZSBzZXQgb2YgVW5pY29kZSBsZXR0ZXJzLCBkaWdpdHMsIHdoaXRlc3BhY2UsIF8sIC4sIC8sID0sICssIGFuZCAtLlxuICovXG5LZXk6IHN0cmluZ1xuLyoqXG4gKiBUaGUgdmFsdWUgZm9yIHRoZSB0YWcuIFlvdSBjYW4gc3BlY2lmeSBhIHZhbHVlIHRoYXQgaXMgMCB0byAyNTYgVW5pY29kZSBjaGFyYWN0ZXJzIGluIGxlbmd0aCBhbmQgY2Fubm90IGJlIHByZWZpeGVkIHdpdGggYXdzOi4gWW91IGNhbiB1c2UgYW55IG9mIHRoZSBmb2xsb3dpbmcgY2hhcmFjdGVyczogdGhlIHNldCBvZiBVbmljb2RlIGxldHRlcnMsIGRpZ2l0cywgd2hpdGVzcGFjZSwgXywgLiwgLywgPSwgKywgYW5kIC0uXG4gKi9cblZhbHVlOiBzdHJpbmdcbn1cbiJdfQ==
@@ -33,6 +33,10 @@ export interface _AWS_GAMELIFT_SCRIPT {
33
33
  * The file size of the uploaded Realtime script, expressed in bytes. When files are uploaded from an S3 location, this value remains at "0".
34
34
  */
35
35
  SizeOnDisk?: number;
36
+ /**
37
+ * The Node.js version used for execution of the Realtime script.
38
+ */
39
+ NodeJsVersion?: string;
36
40
  }
37
41
  /**
38
42
  * The location of the Amazon S3 bucket where a zipped file containing your Realtime scripts is stored. The storage location must specify the Amazon S3 bucket name, the zip file name (the "key"), and a role ARN that allows Amazon GameLift to access the Amazon S3 storage location. The S3 bucket must be in the same Region where you want to create a new script. By default, Amazon GameLift uploads the latest version of the zip file; if you have S3 object versioning turned on, you can use the ObjectVersion parameter to specify an earlier version.
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWdhbWVsaWZ0LXNjcmlwdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImF3cy1nYW1lbGlmdC1zY3JpcHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhlIEFXUzo6R2FtZUxpZnQ6OlNjcmlwdCByZXNvdXJjZSBjcmVhdGVzIGEgbmV3IHNjcmlwdCByZWNvcmQgZm9yIHlvdXIgUmVhbHRpbWUgU2VydmVycyBzY3JpcHQuIFJlYWx0aW1lIHNjcmlwdHMgYXJlIEphdmFTY3JpcHQgdGhhdCBwcm92aWRlIGNvbmZpZ3VyYXRpb24gc2V0dGluZ3MgYW5kIG9wdGlvbmFsIGN1c3RvbSBnYW1lIGxvZ2ljIGZvciB5b3VyIGdhbWUuIFRoZSBzY3JpcHQgaXMgZGVwbG95ZWQgd2hlbiB5b3UgY3JlYXRlIGEgUmVhbHRpbWUgU2VydmVycyBmbGVldCB0byBob3N0IHlvdXIgZ2FtZSBzZXNzaW9ucy4gU2NyaXB0IGxvZ2ljIGlzIGV4ZWN1dGVkIGR1cmluZyBhbiBhY3RpdmUgZ2FtZSBzZXNzaW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIF9BV1NfR0FNRUxJRlRfU0NSSVBUIHtcbi8qKlxuICogQSBkZXNjcmlwdGl2ZSBsYWJlbCB0aGF0IGlzIGFzc29jaWF0ZWQgd2l0aCBhIHNjcmlwdC4gU2NyaXB0IG5hbWVzIGRvIG5vdCBuZWVkIHRvIGJlIHVuaXF1ZS5cbiAqL1xuTmFtZT86IHN0cmluZ1xuU3RvcmFnZUxvY2F0aW9uOiBTM0xvY2F0aW9uXG4vKipcbiAqIFRoZSB2ZXJzaW9uIHRoYXQgaXMgYXNzb2NpYXRlZCB3aXRoIGEgc2NyaXB0LiBWZXJzaW9uIHN0cmluZ3MgZG8gbm90IG5lZWQgdG8gYmUgdW5pcXVlLlxuICovXG5WZXJzaW9uPzogc3RyaW5nXG4vKipcbiAqIEFuIGFycmF5IG9mIGtleS12YWx1ZSBwYWlycyB0byBhcHBseSB0byB0aGlzIHJlc291cmNlLlxuICogXG4gKiBAbWF4SXRlbXMgMjAwXG4gKi9cblRhZ3M/OiBUYWdbXVxuLyoqXG4gKiBBIHRpbWUgc3RhbXAgaW5kaWNhdGluZyB3aGVuIHRoaXMgZGF0YSBvYmplY3Qgd2FzIGNyZWF0ZWQuIEZvcm1hdCBpcyBhIG51bWJlciBleHByZXNzZWQgaW4gVW5peCB0aW1lIGFzIG1pbGxpc2Vjb25kcyAoZm9yIGV4YW1wbGUgXCIxNDY5NDk4NDY4LjA1N1wiKS5cbiAqL1xuQ3JlYXRpb25UaW1lPzogc3RyaW5nXG4vKipcbiAqIFRoZSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKSB0aGF0IGlzIGFzc2lnbmVkIHRvIGEgQW1hem9uIEdhbWVMaWZ0IHNjcmlwdCByZXNvdXJjZSBhbmQgdW5pcXVlbHkgaWRlbnRpZmllcyBpdC4gQVJOcyBhcmUgdW5pcXVlIGFjcm9zcyBhbGwgUmVnaW9ucy4gSW4gYSBHYW1lTGlmdCBzY3JpcHQgQVJOLCB0aGUgcmVzb3VyY2UgSUQgbWF0Y2hlcyB0aGUgSWQgdmFsdWUuXG4gKi9cbkFybj86IHN0cmluZ1xuLyoqXG4gKiBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgUmVhbHRpbWUgc2NyaXB0XG4gKi9cbklkPzogc3RyaW5nXG4vKipcbiAqIFRoZSBmaWxlIHNpemUgb2YgdGhlIHVwbG9hZGVkIFJlYWx0aW1lIHNjcmlwdCwgZXhwcmVzc2VkIGluIGJ5dGVzLiBXaGVuIGZpbGVzIGFyZSB1cGxvYWRlZCBmcm9tIGFuIFMzIGxvY2F0aW9uLCB0aGlzIHZhbHVlIHJlbWFpbnMgYXQgXCIwXCIuXG4gKi9cblNpemVPbkRpc2s/OiBudW1iZXJcbn1cbi8qKlxuICogVGhlIGxvY2F0aW9uIG9mIHRoZSBBbWF6b24gUzMgYnVja2V0IHdoZXJlIGEgemlwcGVkIGZpbGUgY29udGFpbmluZyB5b3VyIFJlYWx0aW1lIHNjcmlwdHMgaXMgc3RvcmVkLiBUaGUgc3RvcmFnZSBsb2NhdGlvbiBtdXN0IHNwZWNpZnkgdGhlIEFtYXpvbiBTMyBidWNrZXQgbmFtZSwgdGhlIHppcCBmaWxlIG5hbWUgKHRoZSBcImtleVwiKSwgYW5kIGEgcm9sZSBBUk4gdGhhdCBhbGxvd3MgQW1hem9uIEdhbWVMaWZ0IHRvIGFjY2VzcyB0aGUgQW1hem9uIFMzIHN0b3JhZ2UgbG9jYXRpb24uIFRoZSBTMyBidWNrZXQgbXVzdCBiZSBpbiB0aGUgc2FtZSBSZWdpb24gd2hlcmUgeW91IHdhbnQgdG8gY3JlYXRlIGEgbmV3IHNjcmlwdC4gQnkgZGVmYXVsdCwgQW1hem9uIEdhbWVMaWZ0IHVwbG9hZHMgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoZSB6aXAgZmlsZTsgaWYgeW91IGhhdmUgUzMgb2JqZWN0IHZlcnNpb25pbmcgdHVybmVkIG9uLCB5b3UgY2FuIHVzZSB0aGUgT2JqZWN0VmVyc2lvbiBwYXJhbWV0ZXIgdG8gc3BlY2lmeSBhbiBlYXJsaWVyIHZlcnNpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUzNMb2NhdGlvbiB7XG4vKipcbiAqIEFuIEFtYXpvbiBTMyBidWNrZXQgaWRlbnRpZmllci4gVGhpcyBpcyB0aGUgbmFtZSBvZiB0aGUgUzMgYnVja2V0LlxuICovXG5CdWNrZXQ6IHN0cmluZ1xuLyoqXG4gKiBUaGUgbmFtZSBvZiB0aGUgemlwIGZpbGUgdGhhdCBjb250YWlucyB0aGUgc2NyaXB0IGZpbGVzLlxuICovXG5LZXk6IHN0cmluZ1xuLyoqXG4gKiBUaGUgdmVyc2lvbiBvZiB0aGUgZmlsZSwgaWYgb2JqZWN0IHZlcnNpb25pbmcgaXMgdHVybmVkIG9uIGZvciB0aGUgYnVja2V0LiBBbWF6b24gR2FtZUxpZnQgdXNlcyB0aGlzIGluZm9ybWF0aW9uIHdoZW4gcmV0cmlldmluZyBmaWxlcyBmcm9tIHlvdXIgUzMgYnVja2V0LiBUbyByZXRyaWV2ZSBhIHNwZWNpZmljIHZlcnNpb24gb2YgdGhlIGZpbGUsIHByb3ZpZGUgYW4gb2JqZWN0IHZlcnNpb24uIFRvIHJldHJpZXZlIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGUgZmlsZSwgZG8gbm90IHNldCB0aGlzIHBhcmFtZXRlci5cbiAqL1xuT2JqZWN0VmVyc2lvbj86IHN0cmluZ1xuLyoqXG4gKiBUaGUgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTikgZm9yIGFuIElBTSByb2xlIHRoYXQgYWxsb3dzIEFtYXpvbiBHYW1lTGlmdCB0byBhY2Nlc3MgdGhlIFMzIGJ1Y2tldC5cbiAqL1xuUm9sZUFybjogc3RyaW5nXG59XG4vKipcbiAqIEEga2V5LXZhbHVlIHBhaXIgdG8gYXNzb2NpYXRlIHdpdGggYSByZXNvdXJjZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUYWcge1xuLyoqXG4gKiBUaGUga2V5IG5hbWUgb2YgdGhlIHRhZy4gWW91IGNhbiBzcGVjaWZ5IGEgdmFsdWUgdGhhdCBpcyAxIHRvIDEyOCBVbmljb2RlIGNoYXJhY3RlcnMgaW4gbGVuZ3RoLlxuICovXG5LZXk6IHN0cmluZ1xuLyoqXG4gKiBUaGUgdmFsdWUgZm9yIHRoZSB0YWcuIFlvdSBjYW4gc3BlY2lmeSBhIHZhbHVlIHRoYXQgaXMgMCB0byAyNTYgVW5pY29kZSBjaGFyYWN0ZXJzIGluIGxlbmd0aC5cbiAqL1xuVmFsdWU6IHN0cmluZ1xufVxuIl19
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWdhbWVsaWZ0LXNjcmlwdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImF3cy1nYW1lbGlmdC1zY3JpcHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhlIEFXUzo6R2FtZUxpZnQ6OlNjcmlwdCByZXNvdXJjZSBjcmVhdGVzIGEgbmV3IHNjcmlwdCByZWNvcmQgZm9yIHlvdXIgUmVhbHRpbWUgU2VydmVycyBzY3JpcHQuIFJlYWx0aW1lIHNjcmlwdHMgYXJlIEphdmFTY3JpcHQgdGhhdCBwcm92aWRlIGNvbmZpZ3VyYXRpb24gc2V0dGluZ3MgYW5kIG9wdGlvbmFsIGN1c3RvbSBnYW1lIGxvZ2ljIGZvciB5b3VyIGdhbWUuIFRoZSBzY3JpcHQgaXMgZGVwbG95ZWQgd2hlbiB5b3UgY3JlYXRlIGEgUmVhbHRpbWUgU2VydmVycyBmbGVldCB0byBob3N0IHlvdXIgZ2FtZSBzZXNzaW9ucy4gU2NyaXB0IGxvZ2ljIGlzIGV4ZWN1dGVkIGR1cmluZyBhbiBhY3RpdmUgZ2FtZSBzZXNzaW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIF9BV1NfR0FNRUxJRlRfU0NSSVBUIHtcbi8qKlxuICogQSBkZXNjcmlwdGl2ZSBsYWJlbCB0aGF0IGlzIGFzc29jaWF0ZWQgd2l0aCBhIHNjcmlwdC4gU2NyaXB0IG5hbWVzIGRvIG5vdCBuZWVkIHRvIGJlIHVuaXF1ZS5cbiAqL1xuTmFtZT86IHN0cmluZ1xuU3RvcmFnZUxvY2F0aW9uOiBTM0xvY2F0aW9uXG4vKipcbiAqIFRoZSB2ZXJzaW9uIHRoYXQgaXMgYXNzb2NpYXRlZCB3aXRoIGEgc2NyaXB0LiBWZXJzaW9uIHN0cmluZ3MgZG8gbm90IG5lZWQgdG8gYmUgdW5pcXVlLlxuICovXG5WZXJzaW9uPzogc3RyaW5nXG4vKipcbiAqIEFuIGFycmF5IG9mIGtleS12YWx1ZSBwYWlycyB0byBhcHBseSB0byB0aGlzIHJlc291cmNlLlxuICogXG4gKiBAbWF4SXRlbXMgMjAwXG4gKi9cblRhZ3M/OiBUYWdbXVxuLyoqXG4gKiBBIHRpbWUgc3RhbXAgaW5kaWNhdGluZyB3aGVuIHRoaXMgZGF0YSBvYmplY3Qgd2FzIGNyZWF0ZWQuIEZvcm1hdCBpcyBhIG51bWJlciBleHByZXNzZWQgaW4gVW5peCB0aW1lIGFzIG1pbGxpc2Vjb25kcyAoZm9yIGV4YW1wbGUgXCIxNDY5NDk4NDY4LjA1N1wiKS5cbiAqL1xuQ3JlYXRpb25UaW1lPzogc3RyaW5nXG4vKipcbiAqIFRoZSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKSB0aGF0IGlzIGFzc2lnbmVkIHRvIGEgQW1hem9uIEdhbWVMaWZ0IHNjcmlwdCByZXNvdXJjZSBhbmQgdW5pcXVlbHkgaWRlbnRpZmllcyBpdC4gQVJOcyBhcmUgdW5pcXVlIGFjcm9zcyBhbGwgUmVnaW9ucy4gSW4gYSBHYW1lTGlmdCBzY3JpcHQgQVJOLCB0aGUgcmVzb3VyY2UgSUQgbWF0Y2hlcyB0aGUgSWQgdmFsdWUuXG4gKi9cbkFybj86IHN0cmluZ1xuLyoqXG4gKiBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgUmVhbHRpbWUgc2NyaXB0XG4gKi9cbklkPzogc3RyaW5nXG4vKipcbiAqIFRoZSBmaWxlIHNpemUgb2YgdGhlIHVwbG9hZGVkIFJlYWx0aW1lIHNjcmlwdCwgZXhwcmVzc2VkIGluIGJ5dGVzLiBXaGVuIGZpbGVzIGFyZSB1cGxvYWRlZCBmcm9tIGFuIFMzIGxvY2F0aW9uLCB0aGlzIHZhbHVlIHJlbWFpbnMgYXQgXCIwXCIuXG4gKi9cblNpemVPbkRpc2s/OiBudW1iZXJcbi8qKlxuICogVGhlIE5vZGUuanMgdmVyc2lvbiB1c2VkIGZvciBleGVjdXRpb24gb2YgdGhlIFJlYWx0aW1lIHNjcmlwdC5cbiAqL1xuTm9kZUpzVmVyc2lvbj86IHN0cmluZ1xufVxuLyoqXG4gKiBUaGUgbG9jYXRpb24gb2YgdGhlIEFtYXpvbiBTMyBidWNrZXQgd2hlcmUgYSB6aXBwZWQgZmlsZSBjb250YWluaW5nIHlvdXIgUmVhbHRpbWUgc2NyaXB0cyBpcyBzdG9yZWQuIFRoZSBzdG9yYWdlIGxvY2F0aW9uIG11c3Qgc3BlY2lmeSB0aGUgQW1hem9uIFMzIGJ1Y2tldCBuYW1lLCB0aGUgemlwIGZpbGUgbmFtZSAodGhlIFwia2V5XCIpLCBhbmQgYSByb2xlIEFSTiB0aGF0IGFsbG93cyBBbWF6b24gR2FtZUxpZnQgdG8gYWNjZXNzIHRoZSBBbWF6b24gUzMgc3RvcmFnZSBsb2NhdGlvbi4gVGhlIFMzIGJ1Y2tldCBtdXN0IGJlIGluIHRoZSBzYW1lIFJlZ2lvbiB3aGVyZSB5b3Ugd2FudCB0byBjcmVhdGUgYSBuZXcgc2NyaXB0LiBCeSBkZWZhdWx0LCBBbWF6b24gR2FtZUxpZnQgdXBsb2FkcyB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhlIHppcCBmaWxlOyBpZiB5b3UgaGF2ZSBTMyBvYmplY3QgdmVyc2lvbmluZyB0dXJuZWQgb24sIHlvdSBjYW4gdXNlIHRoZSBPYmplY3RWZXJzaW9uIHBhcmFtZXRlciB0byBzcGVjaWZ5IGFuIGVhcmxpZXIgdmVyc2lvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTM0xvY2F0aW9uIHtcbi8qKlxuICogQW4gQW1hem9uIFMzIGJ1Y2tldCBpZGVudGlmaWVyLiBUaGlzIGlzIHRoZSBuYW1lIG9mIHRoZSBTMyBidWNrZXQuXG4gKi9cbkJ1Y2tldDogc3RyaW5nXG4vKipcbiAqIFRoZSBuYW1lIG9mIHRoZSB6aXAgZmlsZSB0aGF0IGNvbnRhaW5zIHRoZSBzY3JpcHQgZmlsZXMuXG4gKi9cbktleTogc3RyaW5nXG4vKipcbiAqIFRoZSB2ZXJzaW9uIG9mIHRoZSBmaWxlLCBpZiBvYmplY3QgdmVyc2lvbmluZyBpcyB0dXJuZWQgb24gZm9yIHRoZSBidWNrZXQuIEFtYXpvbiBHYW1lTGlmdCB1c2VzIHRoaXMgaW5mb3JtYXRpb24gd2hlbiByZXRyaWV2aW5nIGZpbGVzIGZyb20geW91ciBTMyBidWNrZXQuIFRvIHJldHJpZXZlIGEgc3BlY2lmaWMgdmVyc2lvbiBvZiB0aGUgZmlsZSwgcHJvdmlkZSBhbiBvYmplY3QgdmVyc2lvbi4gVG8gcmV0cmlldmUgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoZSBmaWxlLCBkbyBub3Qgc2V0IHRoaXMgcGFyYW1ldGVyLlxuICovXG5PYmplY3RWZXJzaW9uPzogc3RyaW5nXG4vKipcbiAqIFRoZSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKSBmb3IgYW4gSUFNIHJvbGUgdGhhdCBhbGxvd3MgQW1hem9uIEdhbWVMaWZ0IHRvIGFjY2VzcyB0aGUgUzMgYnVja2V0LlxuICovXG5Sb2xlQXJuOiBzdHJpbmdcbn1cbi8qKlxuICogQSBrZXktdmFsdWUgcGFpciB0byBhc3NvY2lhdGUgd2l0aCBhIHJlc291cmNlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRhZyB7XG4vKipcbiAqIFRoZSBrZXkgbmFtZSBvZiB0aGUgdGFnLiBZb3UgY2FuIHNwZWNpZnkgYSB2YWx1ZSB0aGF0IGlzIDEgdG8gMTI4IFVuaWNvZGUgY2hhcmFjdGVycyBpbiBsZW5ndGguXG4gKi9cbktleTogc3RyaW5nXG4vKipcbiAqIFRoZSB2YWx1ZSBmb3IgdGhlIHRhZy4gWW91IGNhbiBzcGVjaWZ5IGEgdmFsdWUgdGhhdCBpcyAwIHRvIDI1NiBVbmljb2RlIGNoYXJhY3RlcnMgaW4gbGVuZ3RoLlxuICovXG5WYWx1ZTogc3RyaW5nXG59XG4iXX0=
@@ -816,6 +816,9 @@ export interface _AWS_RDS_DBINSTANCE {
816
816
  * Default: ``true``
817
817
  */
818
818
  ApplyImmediately?: boolean;
819
+ /**
820
+ * The additional storage volumes associated with the DB instance. RDS supports additional storage volumes for RDS for Oracle and RDS for SQL Server.
821
+ */
819
822
  AdditionalStorageVolumes?: AdditionalStorageVolume[];
820
823
  }
821
824
  /**
@@ -931,13 +934,18 @@ export interface Tag {
931
934
  */
932
935
  Value?: string;
933
936
  }
937
+ /**
938
+ * Contains details about an additional storage volume for a DB instance. RDS support additional storage volumes for RDS for Oracle and RDS for SQL Server.
939
+ */
934
940
  export interface AdditionalStorageVolume {
935
941
  /**
936
942
  * The name of the additional storage volume.
943
+ * Valid Values: ``RDSDBDATA2 | RDSDBDATA3 | RDSDBDATA4``
937
944
  */
938
945
  VolumeName?: string;
939
946
  /**
940
947
  * The storage type for the additional storage volume.
948
+ * Valid Values: ``GP3 | IO2``
941
949
  */
942
950
  StorageType?: string;
943
951
  /**
@@ -953,7 +961,7 @@ export interface AdditionalStorageVolume {
953
961
  */
954
962
  MaxAllocatedStorage?: number;
955
963
  /**
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.
964
+ * 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
965
  */
958
966
  StorageThroughput?: number;
959
967
  }
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLXJkcy1kYmluc3RhbmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXdzLXJkcy1kYmluc3RhbmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRoZSBgYEFXUzo6UkRTOjpEQkluc3RhbmNlYGAgcmVzb3VyY2UgY3JlYXRlcyBhbiBBbWF6b24gREIgaW5zdGFuY2UuIFRoZSBuZXcgREIgaW5zdGFuY2UgY2FuIGJlIGFuIFJEUyBEQiBpbnN0YW5jZSwgb3IgaXQgY2FuIGJlIGEgREIgaW5zdGFuY2UgaW4gYW4gQXVyb3JhIERCIGNsdXN0ZXIuXG4gKiAgRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgY3JlYXRpbmcgYW4gUkRTIERCIGluc3RhbmNlLCBzZWUgW0NyZWF0aW5nIGFuIEFtYXpvbiBSRFMgREIgaW5zdGFuY2VdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L1VzZXJHdWlkZS9VU0VSX0NyZWF0ZURCSW5zdGFuY2UuaHRtbCkgaW4gdGhlICpBbWF6b24gUkRTIFVzZXIgR3VpZGUqLlxuICogIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IGNyZWF0aW5nIGEgREIgaW5zdGFuY2UgaW4gYW4gQXVyb3JhIERCIGNsdXN0ZXIsIHNlZSBbQ3JlYXRpbmcgYW4gQW1hem9uIEF1cm9yYSBEQiBjbHVzdGVyXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUkRTL2xhdGVzdC9BdXJvcmFVc2VyR3VpZGUvQXVyb3JhLkNyZWF0ZUluc3RhbmNlLmh0bWwpIGluIHRoZSAqQW1hem9uIEF1cm9yYSBVc2VyIEd1aWRlKi5cbiAqICBJZiB5b3UgaW1wb3J0IGFuIGV4aXN0aW5nIERCIGluc3RhbmNlLCBhbmQgdGhlIHRlbXBsYXRlIGNvbmZpZ3VyYXRpb24gZG9lc24ndCBtYXRjaCB0aGUgYWN0dWFsIGNvbmZpZ3VyYXRpb24gb2YgdGhlIERCIGluc3RhbmNlLCBBV1MgQ2xvdWRGb3JtYXRpb24gYXBwbGllcyB0aGUgY2hhbmdlcyBpbiB0aGUgdGVtcGxhdGUgZHVyaW5nIHRoZSBpbXBvcnQgb3BlcmF0aW9uLlxuICogICBJZiBhIERCIGluc3RhbmNlIGlzIGRlbGV0ZWQgb3IgcmVwbGFjZWQgZHVyaW5nIGFuIHVwZGF0ZSwgQVdTIENsb3VkRm9ybWF0aW9uIGRlbGV0ZXMgYWxsIGF1dG9tYXRlZCBzbmFwc2hvdHMuIEhvd2V2ZXIsIGl0IHJldGFpbnMgbWFudWFsIERCIHNuYXBzaG90cy4gRHVyaW5nIGFuIHVwZGF0ZSB0aGF0IHJlcXVpcmVzIHJlcGxhY2VtZW50LCB5b3UgY2FuIGFwcGx5IGEgc3RhY2sgcG9saWN5IHRvIHByZXZlbnQgREIgaW5zdGFuY2VzIGZyb20gYmVpbmcgcmVwbGFjZWQuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW1ByZXZlbnQgVXBkYXRlcyB0byBTdGFjayBSZXNvdXJjZXNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL3Byb3RlY3Qtc3RhY2stcmVzb3VyY2VzLmh0bWwpLlxuICogICAgKlVwZGF0aW5nIERCIGluc3RhbmNlcyogXG4gKiAgV2hlbiBwcm9wZXJ0aWVzIGxhYmVsZWQgXCIqVXBkYXRlIHJlcXVpcmVzOipbUmVwbGFjZW1lbnRdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL3VzaW5nLWNmbi11cGRhdGluZy1zdGFja3MtdXBkYXRlLWJlaGF2aW9ycy5odG1sI3VwZGF0ZS1yZXBsYWNlbWVudClcIiBhcmUgdXBkYXRlZCwgQVdTIENsb3VkRm9ybWF0aW9uIGZpcnN0IGNyZWF0ZXMgYSByZXBsYWNlbWVudCBEQiBpbnN0YW5jZSwgdGhlbiBjaGFuZ2VzIHJlZmVyZW5jZXMgZnJvbSBvdGhlciBkZXBlbmRlbnQgcmVzb3VyY2VzIHRvIHBvaW50IHRvIHRoZSByZXBsYWNlbWVudCBEQiBpbnN0YW5jZSwgYW5kIGZpbmFsbHkgZGVsZXRlcyB0aGUgb2xkIERCIGluc3RhbmNlLlxuICogICBXZSBoaWdobHkgcmVjb21tZW5kIHRoYXQgeW91IHRha2UgYSBzbmFwc2hvdCBvZiB0aGUgZGF0YWJhc2UgYmVmb3JlIHVwZGF0aW5nIHRoZSBzdGFjay4gSWYgeW91IGRvbid0LCB5b3UgbG9zZSB0aGUgZGF0YSB3aGVuIEFXUyBDbG91ZEZvcm1hdGlvbiByZXBsYWNlcyB5b3VyIERCIGluc3RhbmNlLiBUbyBwcmVzZXJ2ZSB5b3VyIGRhdGEsIHBlcmZvcm0gdGhlIGZvbGxvd2luZyBwcm9jZWR1cmU6XG4gKiAgIDEuICBEZWFjdGl2YXRlIGFueSBhcHBsaWNhdGlvbnMgdGhhdCBhcmUgdXNpbmcgdGhlIERCIGluc3RhbmNlIHNvIHRoYXQgdGhlcmUncyBubyBhY3Rpdml0eSBvbiB0aGUgREIgaW5zdGFuY2UuXG4gKiAgIDEuICBDcmVhdGUgYSBzbmFwc2hvdCBvZiB0aGUgREIgaW5zdGFuY2UuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW0NyZWF0aW5nIGEgREIgU25hcHNob3RdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L1VzZXJHdWlkZS9VU0VSX0NyZWF0ZVNuYXBzaG90Lmh0bWwpLlxuICogICAxLiAgSWYgeW91IHdhbnQgdG8gcmVzdG9yZSB5b3VyIGluc3RhbmNlIHVzaW5nIGEgREIgc25hcHNob3QsIG1vZGlmeSB0aGUgdXBkYXRlZCB0ZW1wbGF0ZSB3aXRoIHlvdXIgREIgaW5zdGFuY2UgY2hhbmdlcyBhbmQgYWRkIHRoZSBgYERCU25hcHNob3RJZGVudGlmaWVyYGAgcHJvcGVydHkgd2l0aCB0aGUgSUQgb2YgdGhlIERCIHNuYXBzaG90IHRoYXQgeW91IHdhbnQgdG8gdXNlLlxuICogIEFmdGVyIHlvdSByZXN0b3JlIGEgREIgaW5zdGFuY2Ugd2l0aCBhIGBgREJTbmFwc2hvdElkZW50aWZpZXJgYCBwcm9wZXJ0eSwgeW91IGNhbiBkZWxldGUgdGhlIGBgREJTbmFwc2hvdElkZW50aWZpZXJgYCBwcm9wZXJ0eS4gV2hlbiB5b3Ugc3BlY2lmeSB0aGlzIHByb3BlcnR5IGZvciBhbiB1cGRhdGUsIHRoZSBEQiBpbnN0YW5jZSBpcyBub3QgcmVzdG9yZWQgZnJvbSB0aGUgREIgc25hcHNob3QgYWdhaW4sIGFuZCB0aGUgZGF0YSBpbiB0aGUgZGF0YWJhc2UgaXMgbm90IGNoYW5nZWQuIEhvd2V2ZXIsIGlmIHlvdSBkb24ndCBzcGVjaWZ5IHRoZSBgYERCU25hcHNob3RJZGVudGlmaWVyYGAgcHJvcGVydHksIGFuIGVtcHR5IERCIGluc3RhbmNlIGlzIGNyZWF0ZWQsIGFuZCB0aGUgb3JpZ2luYWwgREIgaW5zdGFuY2UgaXMgZGVsZXRlZC4gSWYgeW91IHNwZWNpZnkgYSBwcm9wZXJ0eSB0aGF0IGlzIGRpZmZlcmVudCBmcm9tIHRoZSBwcmV2aW91cyBzbmFwc2hvdCByZXN0b3JlIHByb3BlcnR5LCBhIG5ldyBEQiBpbnN0YW5jZSBpcyByZXN0b3JlZCBmcm9tIHRoZSBzcGVjaWZpZWQgYGBEQlNuYXBzaG90SWRlbnRpZmllcmBgIHByb3BlcnR5LCBhbmQgdGhlIG9yaWdpbmFsIERCIGluc3RhbmNlIGlzIGRlbGV0ZWQuXG4gKiAgIDEuICBVcGRhdGUgdGhlIHN0YWNrLlxuICogICBcbiAqICAgRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdXBkYXRpbmcgb3RoZXIgcHJvcGVydGllcyBvZiB0aGlzIHJlc291cmNlLCBzZWUgYGBNb2RpZnlEQkluc3RhbmNlYGAuIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHVwZGF0aW5nIHN0YWNrcywgc2VlIFtDbG91ZEZvcm1hdGlvbiBTdGFja3MgVXBkYXRlc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvdXNpbmctY2ZuLXVwZGF0aW5nLXN0YWNrcy5odG1sKS5cbiAqICAgKkRlbGV0aW5nIERCIGluc3RhbmNlcyogXG4gKiAgRm9yIERCIGluc3RhbmNlcyB0aGF0IGFyZSBwYXJ0IG9mIGFuIEF1cm9yYSBEQiBjbHVzdGVyLCB5b3UgY2FuIHNldCBhIGRlbGV0aW9uIHBvbGljeSBmb3IgeW91ciBEQiBpbnN0YW5jZSB0byBjb250cm9sIGhvdyBBV1MgQ2xvdWRGb3JtYXRpb24gaGFuZGxlcyB0aGUgREIgaW5zdGFuY2Ugd2hlbiB0aGUgc3RhY2sgaXMgZGVsZXRlZC4gRm9yIEFtYXpvbiBSRFMgREIgaW5zdGFuY2VzLCB5b3UgY2FuIGNob29zZSB0byAqcmV0YWluKiB0aGUgREIgaW5zdGFuY2UsIHRvICpkZWxldGUqIHRoZSBEQiBpbnN0YW5jZSwgb3IgdG8gKmNyZWF0ZSBhIHNuYXBzaG90KiBvZiB0aGUgREIgaW5zdGFuY2UuIFRoZSBkZWZhdWx0IEFXUyBDbG91ZEZvcm1hdGlvbiBiZWhhdmlvciBkZXBlbmRzIG9uIHRoZSBgYERCQ2x1c3RlcklkZW50aWZpZXJgYCBwcm9wZXJ0eTpcbiAqICAgMS4gIEZvciBgYEFXUzo6UkRTOjpEQkluc3RhbmNlYGAgcmVzb3VyY2VzIHRoYXQgZG9uJ3Qgc3BlY2lmeSB0aGUgYGBEQkNsdXN0ZXJJZGVudGlmaWVyYGAgcHJvcGVydHksIEFXUyBDbG91ZEZvcm1hdGlvbiBzYXZlcyBhIHNuYXBzaG90IG9mIHRoZSBEQiBpbnN0YW5jZS5cbiAqICAgMS4gICBGb3IgYGBBV1M6OlJEUzo6REJJbnN0YW5jZWBgIHJlc291cmNlcyB0aGF0IGRvIHNwZWNpZnkgdGhlIGBgREJDbHVzdGVySWRlbnRpZmllcmBgIHByb3BlcnR5LCBBV1MgQ2xvdWRGb3JtYXRpb24gZGVsZXRlcyB0aGUgREIgaW5zdGFuY2UuXG4gKiAgIFxuICogICBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtEZWxldGlvblBvbGljeSBBdHRyaWJ1dGVdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1hdHRyaWJ1dGUtZGVsZXRpb25wb2xpY3kuaHRtbCkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgX0FXU19SRFNfREJJTlNUQU5DRSB7XG4vKipcbiAqIFRoZSBhbW91bnQgb2Ygc3RvcmFnZSBpbiBnaWJpYnl0ZXMgKEdpQikgdG8gYmUgaW5pdGlhbGx5IGFsbG9jYXRlZCBmb3IgdGhlIGRhdGFiYXNlIGluc3RhbmNlLlxuICogICBJZiBhbnkgdmFsdWUgaXMgc2V0IGluIHRoZSBgYElvcHNgYCBwYXJhbWV0ZXIsIGBgQWxsb2NhdGVkU3RvcmFnZWBgIG11c3QgYmUgYXQgbGVhc3QgMTAwIEdpQiwgd2hpY2ggY29ycmVzcG9uZHMgdG8gdGhlIG1pbmltdW0gSW9wcyB2YWx1ZSBvZiAxLDAwMC4gSWYgeW91IGluY3JlYXNlIHRoZSBgYElvcHNgYCB2YWx1ZSAoaW4gMSwwMDAgSU9QUyBpbmNyZW1lbnRzKSwgdGhlbiB5b3UgbXVzdCBhbHNvIGluY3JlYXNlIHRoZSBgYEFsbG9jYXRlZFN0b3JhZ2VgYCB2YWx1ZSAoaW4gMTAwLUdpQiBpbmNyZW1lbnRzKS4gXG4gKiAgICAqQW1hem9uIEF1cm9yYSogXG4gKiAgTm90IGFwcGxpY2FibGUuIEF1cm9yYSBjbHVzdGVyIHZvbHVtZXMgYXV0b21hdGljYWxseSBncm93IGFzIHRoZSBhbW91bnQgb2YgZGF0YSBpbiB5b3VyIGRhdGFiYXNlIGluY3JlYXNlcywgdGhvdWdoIHlvdSBhcmUgb25seSBjaGFyZ2VkIGZvciB0aGUgc3BhY2UgdGhhdCB5b3UgdXNlIGluIGFuIEF1cm9yYSBjbHVzdGVyIHZvbHVtZS5cbiAqICAgKkRiMiogXG4gKiAgQ29uc3RyYWludHMgdG8gdGhlIGFtb3VudCBvZiBzdG9yYWdlIGZvciBlYWNoIHN0b3JhZ2UgdHlwZSBhcmUgdGhlIGZvbGxvd2luZzpcbiAqICAgKyAgR2VuZXJhbCBQdXJwb3NlIChTU0QpIHN0b3JhZ2UgKGdwMyk6IE11c3QgYmUgYW4gaW50ZWdlciBmcm9tIDIwIHRvIDY0MDAwLlxuICogICArICBQcm92aXNpb25lZCBJT1BTIHN0b3JhZ2UgKGlvMSk6IE11c3QgYmUgYW4gaW50ZWdlciBmcm9tIDEwMCB0byA2NDAwMC5cbiAqICAgXG4gKiAgICpNeVNRTCogXG4gKiAgQ29uc3RyYWludHMgdG8gdGhlIGFtb3VudCBvZiBzdG9yYWdlIGZvciBlYWNoIHN0b3JhZ2UgdHlwZSBhcmUgdGhlIGZvbGxvd2luZzogXG4gKiAgICsgIEdlbmVyYWwgUHVycG9zZSAoU1NEKSBzdG9yYWdlIChncDIpOiBNdXN0IGJlIGFuIGludGVnZXIgZnJvbSAyMCB0byA2NTUzNi5cbiAqICAgKyAgUHJvdmlzaW9uZWQgSU9QUyBzdG9yYWdlIChpbzEpOiBNdXN0IGJlIGFuIGludGVnZXIgZnJvbSAxMDAgdG8gNjU1MzYuXG4gKiAgICsgIE1hZ25ldGljIHN0b3JhZ2UgKHN0YW5kYXJkKTogTXVzdCBiZSBhbiBpbnRlZ2VyIGZyb20gNSB0byAzMDcyLlxuICogICBcbiAqICAgKk1hcmlhREIqIFxuICogIENvbnN0cmFpbnRzIHRvIHRoZSBhbW91bnQgb2Ygc3RvcmFnZSBmb3IgZWFjaCBzdG9yYWdlIHR5cGUgYXJlIHRoZSBmb2xsb3dpbmc6IFxuICogICArICBHZW5lcmFsIFB1cnBvc2UgKFNTRCkgc3RvcmFnZSAoZ3AyKTogTXVzdCBiZSBhbiBpbnRlZ2VyIGZyb20gMjAgdG8gNjU1MzYuXG4gKiAgICsgIFByb3Zpc2lvbmVkIElPUFMgc3RvcmFnZSAoaW8xKTogTXVzdCBiZSBhbiBpbnRlZ2VyIGZyb20gMTAwIHRvIDY1NTM2LlxuICogICArICBNYWduZXRpYyBzdG9yYWdlIChzdGFuZGFyZCk6IE11c3QgYmUgYW4gaW50ZWdlciBmcm9tIDUgdG8gMzA3Mi5cbiAqICAgXG4gKiAgICpQb3N0Z3JlU1FMKiBcbiAqICBDb25zdHJhaW50cyB0byB0aGUgYW1vdW50IG9mIHN0b3JhZ2UgZm9yIGVhY2ggc3RvcmFnZSB0eXBlIGFyZSB0aGUgZm9sbG93aW5nOiBcbiAqICAgKyAgR2VuZXJhbCBQdXJwb3NlIChTU0QpIHN0b3JhZ2UgKGdwMik6IE11c3QgYmUgYW4gaW50ZWdlciBmcm9tIDIwIHRvIDY1NTM2LlxuICogICArICBQcm92aXNpb25lZCBJT1BTIHN0b3JhZ2UgKGlvMSk6IE11c3QgYmUgYW4gaW50ZWdlciBmcm9tIDEwMCB0byA2NTUzNi5cbiAqICAgKyAgTWFnbmV0aWMgc3RvcmFnZSAoc3RhbmRhcmQpOiBNdXN0IGJlIGFuIGludGVnZXIgZnJvbSA1IHRvIDMwNzIuXG4gKiAgIFxuICogICAqT3JhY2xlKiBcbiAqICBDb25zdHJhaW50cyB0byB0aGUgYW1vdW50IG9mIHN0b3JhZ2UgZm9yIGVhY2ggc3RvcmFnZSB0eXBlIGFyZSB0aGUgZm9sbG93aW5nOiBcbiAqICAgKyAgR2VuZXJhbCBQdXJwb3NlIChTU0QpIHN0b3JhZ2UgKGdwMik6IE11c3QgYmUgYW4gaW50ZWdlciBmcm9tIDIwIHRvIDY1NTM2LlxuICogICArICBQcm92aXNpb25lZCBJT1BTIHN0b3JhZ2UgKGlvMSk6IE11c3QgYmUgYW4gaW50ZWdlciBmcm9tIDEwMCB0byA2NTUzNi5cbiAqICAgKyAgTWFnbmV0aWMgc3RvcmFnZSAoc3RhbmRhcmQpOiBNdXN0IGJlIGFuIGludGVnZXIgZnJvbSAxMCB0byAzMDcyLlxuICogICBcbiAqICAgKlNRTCBTZXJ2ZXIqIFxuICogIENvbnN0cmFpbnRzIHRvIHRoZSBhbW91bnQgb2Ygc3RvcmFnZSBmb3IgZWFjaCBzdG9yYWdlIHR5cGUgYXJlIHRoZSBmb2xsb3dpbmc6IFxuICogICArICBHZW5lcmFsIFB1cnBvc2UgKFNTRCkgc3RvcmFnZSAoZ3AyKTpcbiAqICAgKyAgRW50ZXJwcmlzZSBhbmQgU3RhbmRhcmQgZWRpdGlvbnM6IE11c3QgYmUgYW4gaW50ZWdlciBmcm9tIDIwIHRvIDE2Mzg0LlxuICogICArICBXZWIgYW5kIEV4cHJlc3MgZWRpdGlvbnM6IE11c3QgYmUgYW4gaW50ZWdlciBmcm9tIDIwIHRvIDE2Mzg0LlxuICogICBcbiAqICAgKyAgUHJvdmlzaW9uZWQgSU9QUyBzdG9yYWdlIChpbzEpOlxuICogICArICBFbnRlcnByaXNlIGFuZCBTdGFuZGFyZCBlZGl0aW9uczogTXVzdCBiZSBhbiBpbnRlZ2VyIGZyb20gMjAgdG8gMTYzODQuXG4gKiAgICsgIFdlYiBhbmQgRXhwcmVzcyBlZGl0aW9uczogTXVzdCBiZSBhbiBpbnRlZ2VyIGZyb20gMjAgdG8gMTYzODQuXG4gKiAgIFxuICogICArICBNYWduZXRpYyBzdG9yYWdlIChzdGFuZGFyZCk6XG4gKiAgICsgIEVudGVycHJpc2UgYW5kIFN0YW5kYXJkIGVkaXRpb25zOiBNdXN0IGJlIGFuIGludGVnZXIgZnJvbSAyMCB0byAxMDI0LlxuICogICArICBXZWIgYW5kIEV4cHJlc3MgZWRpdGlvbnM6IE11c3QgYmUgYW4gaW50ZWdlciBmcm9tIDIwIHRvIDEwMjQuXG4gKi9cbkFsbG9jYXRlZFN0b3JhZ2U/OiBzdHJpbmdcbi8qKlxuICogQSB2YWx1ZSB0aGF0IGluZGljYXRlcyB3aGV0aGVyIG1ham9yIHZlcnNpb24gdXBncmFkZXMgYXJlIGFsbG93ZWQuIENoYW5naW5nIHRoaXMgcGFyYW1ldGVyIGRvZXNuJ3QgcmVzdWx0IGluIGFuIG91dGFnZSBhbmQgdGhlIGNoYW5nZSBpcyBhc3luY2hyb25vdXNseSBhcHBsaWVkIGFzIHNvb24gYXMgcG9zc2libGUuXG4gKiAgQ29uc3RyYWludHM6IE1ham9yIHZlcnNpb24gdXBncmFkZXMgbXVzdCBiZSBhbGxvd2VkIHdoZW4gc3BlY2lmeWluZyBhIHZhbHVlIGZvciB0aGUgYGBFbmdpbmVWZXJzaW9uYGAgcGFyYW1ldGVyIHRoYXQgaXMgYSBkaWZmZXJlbnQgbWFqb3IgdmVyc2lvbiB0aGFuIHRoZSBEQiBpbnN0YW5jZSdzIGN1cnJlbnQgdmVyc2lvbi5cbiAqL1xuQWxsb3dNYWpvclZlcnNpb25VcGdyYWRlPzogYm9vbGVhblxuLyoqXG4gKiBUaGUgSUFNbG9uZyAoSUFNKSByb2xlcyBhc3NvY2lhdGVkIHdpdGggdGhlIERCIGluc3RhbmNlLiBcbiAqICAgKkFtYXpvbiBBdXJvcmEqIFxuICogIE5vdCBhcHBsaWNhYmxlLiBUaGUgYXNzb2NpYXRlZCByb2xlcyBhcmUgbWFuYWdlZCBieSB0aGUgREIgY2x1c3Rlci5cbiAqL1xuQXNzb2NpYXRlZFJvbGVzPzogREJJbnN0YW5jZVJvbGVbXVxuLyoqXG4gKiBBIHZhbHVlIHRoYXQgaW5kaWNhdGVzIHdoZXRoZXIgbWlub3IgZW5naW5lIHVwZ3JhZGVzIGFyZSBhcHBsaWVkIGF1dG9tYXRpY2FsbHkgdG8gdGhlIERCIGluc3RhbmNlIGR1cmluZyB0aGUgbWFpbnRlbmFuY2Ugd2luZG93LiBCeSBkZWZhdWx0LCBtaW5vciBlbmdpbmUgdXBncmFkZXMgYXJlIGFwcGxpZWQgYXV0b21hdGljYWxseS5cbiAqL1xuQXV0b01pbm9yVmVyc2lvblVwZ3JhZGU/OiBib29sZWFuXG4vKipcbiAqIFRoZSBBV1MtUmVnaW9uIGFzc29jaWF0ZWQgd2l0aCB0aGUgYXV0b21hdGVkIGJhY2t1cC5cbiAqL1xuQXV0b21hdGljQmFja3VwUmVwbGljYXRpb25SZWdpb24/OiBzdHJpbmdcbi8qKlxuICogVGhlIEFXUyBLTVMga2V5IGlkZW50aWZpZXIgZm9yIGVuY3J5cHRpb24gb2YgdGhlIHJlcGxpY2F0ZWQgYXV0b21hdGVkIGJhY2t1cHMuIFRoZSBLTVMga2V5IElEIGlzIHRoZSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKSBmb3IgdGhlIEtNUyBlbmNyeXB0aW9uIGtleSBpbiB0aGUgZGVzdGluYXRpb24gQVdTLVJlZ2lvbiwgZm9yIGV4YW1wbGUsIGBgYXJuOmF3czprbXM6dXMtZWFzdC0xOjEyMzQ1Njc4OTAxMjprZXkvQUtJQUlPU0ZPRE5ON0VYQU1QTEVgYC5cbiAqL1xuQXV0b21hdGljQmFja3VwUmVwbGljYXRpb25LbXNLZXlJZD86IHN0cmluZ1xuLyoqXG4gKiBUaGUgcmV0ZW50aW9uIHBlcmlvZCBmb3IgYXV0b21hdGVkIGJhY2t1cHMgaW4gYSBkaWZmZXJlbnQgQVdTIFJlZ2lvbi4gVXNlIHRoaXMgcGFyYW1ldGVyIHRvIHNldCBhIHVuaXF1ZSByZXRlbnRpb24gcGVyaW9kIHRoYXQgb25seSBhcHBsaWVzIHRvIGNyb3NzLVJlZ2lvbiBhdXRvbWF0ZWQgYmFja3Vwcy4gVG8gZW5hYmxlIGF1dG9tYXRlZCBiYWNrdXBzIGluIGEgZGlmZmVyZW50IFJlZ2lvbiwgc3BlY2lmeSBhIHBvc2l0aXZlIHZhbHVlIGZvciB0aGUgYGBBdXRvbWF0aWNCYWNrdXBSZXBsaWNhdGlvblJlZ2lvbmBgIHBhcmFtZXRlci4gXG4gKiAgSWYgbm90IHNwZWNpZmllZCwgdGhpcyBwYXJhbWV0ZXIgZGVmYXVsdHMgdG8gdGhlIHZhbHVlIG9mIHRoZSBgYEJhY2t1cFJldGVudGlvblBlcmlvZGBgIHBhcmFtZXRlci4gVGhlIG1heGltdW0gYWxsb3dlZCB2YWx1ZSBpcyAzNS5cbiAqL1xuQXV0b21hdGljQmFja3VwUmVwbGljYXRpb25SZXRlbnRpb25QZXJpb2Q/OiBudW1iZXJcbkF1dG9tYXRpY1Jlc3RhcnRUaW1lPzogc3RyaW5nXG4vKipcbiAqIFRoZSBBdmFpbGFiaWxpdHkgWm9uZSAoQVopIHdoZXJlIHRoZSBkYXRhYmFzZSB3aWxsIGJlIGNyZWF0ZWQuIEZvciBpbmZvcm1hdGlvbiBvbiBBV1MtUmVnaW9ucyBhbmQgQXZhaWxhYmlsaXR5IFpvbmVzLCBzZWUgW1JlZ2lvbnMgYW5kIEF2YWlsYWJpbGl0eSBab25lc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvVXNlckd1aWRlL0NvbmNlcHRzLlJlZ2lvbnNBbmRBdmFpbGFiaWxpdHlab25lcy5odG1sKS5cbiAqICBGb3IgQW1hem9uIEF1cm9yYSwgZWFjaCBBdXJvcmEgREIgY2x1c3RlciBob3N0cyBjb3BpZXMgb2YgaXRzIHN0b3JhZ2UgaW4gdGhyZWUgc2VwYXJhdGUgQXZhaWxhYmlsaXR5IFpvbmVzLiBTcGVjaWZ5IG9uZSBvZiB0aGVzZSBBdmFpbGFiaWxpdHkgWm9uZXMuIEF1cm9yYSBhdXRvbWF0aWNhbGx5IGNob29zZXMgYW4gYXBwcm9wcmlhdGUgQXZhaWxhYmlsaXR5IFpvbmUgaWYgeW91IGRvbid0IHNwZWNpZnkgb25lLlxuICogIERlZmF1bHQ6IEEgcmFuZG9tLCBzeXN0ZW0tY2hvc2VuIEF2YWlsYWJpbGl0eSBab25lIGluIHRoZSBlbmRwb2ludCdzIEFXUy1SZWdpb24uXG4gKiAgQ29uc3RyYWludHM6XG4gKiAgICsgIFRoZSBgYEF2YWlsYWJpbGl0eVpvbmVgYCBwYXJhbWV0ZXIgY2FuJ3QgYmUgc3BlY2lmaWVkIGlmIHRoZSBEQiBpbnN0YW5jZSBpcyBhIE11bHRpLUFaIGRlcGxveW1lbnQuXG4gKiAgICsgIFRoZSBzcGVjaWZpZWQgQXZhaWxhYmlsaXR5IFpvbmUgbXVzdCBiZSBpbiB0aGUgc2FtZSBBV1MtUmVnaW9uIGFzIHRoZSBjdXJyZW50IGVuZHBvaW50LlxuICogICBcbiAqICBFeGFtcGxlOiBgYHVzLWVhc3QtMWRgYFxuICovXG5BdmFpbGFiaWxpdHlab25lPzogc3RyaW5nXG4vKipcbiAqIFRoZSBudW1iZXIgb2YgZGF5cyBmb3Igd2hpY2ggYXV0b21hdGVkIGJhY2t1cHMgYXJlIHJldGFpbmVkLiBTZXR0aW5nIHRoaXMgcGFyYW1ldGVyIHRvIGEgcG9zaXRpdmUgbnVtYmVyIGVuYWJsZXMgYmFja3Vwcy4gU2V0dGluZyB0aGlzIHBhcmFtZXRlciB0byAwIGRpc2FibGVzIGF1dG9tYXRlZCBiYWNrdXBzLlxuICogICAqQW1hem9uIEF1cm9yYSogXG4gKiAgTm90IGFwcGxpY2FibGUuIFRoZSByZXRlbnRpb24gcGVyaW9kIGZvciBhdXRvbWF0ZWQgYmFja3VwcyBpcyBtYW5hZ2VkIGJ5IHRoZSBEQiBjbHVzdGVyLlxuICogIERlZmF1bHQ6IDFcbiAqICBDb25zdHJhaW50czpcbiAqICAgKyAgTXVzdCBiZSBhIHZhbHVlIGZyb20gMCB0byAzNVxuICogICArICBDYW4ndCBiZSBzZXQgdG8gMCBpZiB0aGUgREIgaW5zdGFuY2UgaXMgYSBzb3VyY2UgdG8gcmVhZCByZXBsaWNhc1xuICovXG5CYWNrdXBSZXRlbnRpb25QZXJpb2Q/OiBudW1iZXJcbi8qKlxuICogVGhlIGxvY2F0aW9uIGZvciBzdG9yaW5nIGF1dG9tYXRlZCBiYWNrdXBzIGFuZCBtYW51YWwgc25hcHNob3RzLlxuICogIFZhbGlkIFZhbHVlczpcbiAqICAgKyAgYGBsb2NhbGBgIChEZWRpY2F0ZWQgTG9jYWwgWm9uZSlcbiAqICAgKyAgYGBvdXRwb3N0c2BgIChBV1MgT3V0cG9zdHMpXG4gKiAgICsgIGBgcmVnaW9uYGAgKEFXUy1SZWdpb24pXG4gKiAgIFxuICogIERlZmF1bHQ6IGBgcmVnaW9uYGBcbiAqICBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtXb3JraW5nIHdpdGggQW1hem9uIFJEUyBvbiBPdXRwb3N0c10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvVXNlckd1aWRlL3Jkcy1vbi1vdXRwb3N0cy5odG1sKSBpbiB0aGUgKkFtYXpvbiBSRFMgVXNlciBHdWlkZSouXG4gKi9cbkJhY2t1cFRhcmdldD86IHN0cmluZ1xuLyoqXG4gKiBUaGUgaWRlbnRpZmllciBvZiB0aGUgQ0EgY2VydGlmaWNhdGUgZm9yIHRoaXMgREIgaW5zdGFuY2UuXG4gKiAgRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbVXNpbmcgU1NML1RMUyB0byBlbmNyeXB0IGEgY29ubmVjdGlvbiB0byBhIERCIGluc3RhbmNlXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUkRTL2xhdGVzdC9Vc2VyR3VpZGUvVXNpbmdXaXRoUkRTLlNTTC5odG1sKSBpbiB0aGUgKkFtYXpvbiBSRFMgVXNlciBHdWlkZSogYW5kIFtVc2luZyBTU0wvVExTIHRvIGVuY3J5cHQgYSBjb25uZWN0aW9uIHRvIGEgREIgY2x1c3Rlcl0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvQXVyb3JhVXNlckd1aWRlL1VzaW5nV2l0aFJEUy5TU0wuaHRtbCkgaW4gdGhlICpBbWF6b24gQXVyb3JhIFVzZXIgR3VpZGUqLlxuICovXG5DQUNlcnRpZmljYXRlSWRlbnRpZmllcj86IHN0cmluZ1xuQ2VydGlmaWNhdGVEZXRhaWxzPzogQ2VydGlmaWNhdGVEZXRhaWxzXG4vKipcbiAqIFNwZWNpZmllcyB3aGV0aGVyIHRoZSBEQiBpbnN0YW5jZSBpcyByZXN0YXJ0ZWQgd2hlbiB5b3Ugcm90YXRlIHlvdXIgU1NML1RMUyBjZXJ0aWZpY2F0ZS5cbiAqICBCeSBkZWZhdWx0LCB0aGUgREIgaW5zdGFuY2UgaXMgcmVzdGFydGVkIHdoZW4geW91IHJvdGF0ZSB5b3VyIFNTTC9UTFMgY2VydGlmaWNhdGUuIFRoZSBjZXJ0aWZpY2F0ZSBpcyBub3QgdXBkYXRlZCB1bnRpbCB0aGUgREIgaW5zdGFuY2UgaXMgcmVzdGFydGVkLlxuICogICBTZXQgdGhpcyBwYXJhbWV0ZXIgb25seSBpZiB5b3UgYXJlICpub3QqIHVzaW5nIFNTTC9UTFMgdG8gY29ubmVjdCB0byB0aGUgREIgaW5zdGFuY2UuXG4gKiAgIElmIHlvdSBhcmUgdXNpbmcgU1NML1RMUyB0byBjb25uZWN0IHRvIHRoZSBEQiBpbnN0YW5jZSwgZm9sbG93IHRoZSBhcHByb3ByaWF0ZSBpbnN0cnVjdGlvbnMgZm9yIHlvdXIgREIgZW5naW5lIHRvIHJvdGF0ZSB5b3VyIFNTTC9UTFMgY2VydGlmaWNhdGU6XG4gKiAgICsgIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHJvdGF0aW5nIHlvdXIgU1NML1RMUyBjZXJ0aWZpY2F0ZSBmb3IgUkRTIERCIGVuZ2luZXMsIHNlZSBbUm90YXRpbmcgWW91ciBTU0wvVExTIENlcnRpZmljYXRlLl0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvVXNlckd1aWRlL1VzaW5nV2l0aFJEUy5TU0wtY2VydGlmaWNhdGUtcm90YXRpb24uaHRtbCkgaW4gdGhlICpBbWF6b24gUkRTIFVzZXIgR3VpZGUuKlxuICogICArICBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCByb3RhdGluZyB5b3VyIFNTTC9UTFMgY2VydGlmaWNhdGUgZm9yIEF1cm9yYSBEQiBlbmdpbmVzLCBzZWUgW1JvdGF0aW5nIFlvdXIgU1NML1RMUyBDZXJ0aWZpY2F0ZV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvQXVyb3JhVXNlckd1aWRlL1VzaW5nV2l0aFJEUy5TU0wtY2VydGlmaWNhdGUtcm90YXRpb24uaHRtbCkgaW4gdGhlICpBbWF6b24gQXVyb3JhIFVzZXIgR3VpZGUqLlxuICogICBcbiAqICBUaGlzIHNldHRpbmcgZG9lc24ndCBhcHBseSB0byBSRFMgQ3VzdG9tIERCIGluc3RhbmNlcy5cbiAqL1xuQ2VydGlmaWNhdGVSb3RhdGlvblJlc3RhcnQ/OiBib29sZWFuXG4vKipcbiAqIEZvciBzdXBwb3J0ZWQgZW5naW5lcywgaW5kaWNhdGVzIHRoYXQgdGhlIERCIGluc3RhbmNlIHNob3VsZCBiZSBhc3NvY2lhdGVkIHdpdGggdGhlIHNwZWNpZmllZCBjaGFyYWN0ZXIgc2V0LlxuICogICAqQW1hem9uIEF1cm9yYSogXG4gKiAgTm90IGFwcGxpY2FibGUuIFRoZSBjaGFyYWN0ZXIgc2V0IGlzIG1hbmFnZWQgYnkgdGhlIERCIGNsdXN0ZXIuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW0FXUzo6UkRTOjpEQkNsdXN0ZXJdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1yZXNvdXJjZS1yZHMtZGJjbHVzdGVyLmh0bWwpLlxuICovXG5DaGFyYWN0ZXJTZXROYW1lPzogc3RyaW5nXG4vKipcbiAqIFNwZWNpZmllcyB3aGV0aGVyIHRvIGNvcHkgdGFncyBmcm9tIHRoZSBEQiBpbnN0YW5jZSB0byBzbmFwc2hvdHMgb2YgdGhlIERCIGluc3RhbmNlLiBCeSBkZWZhdWx0LCB0YWdzIGFyZSBub3QgY29waWVkLlxuICogIFRoaXMgc2V0dGluZyBkb2Vzbid0IGFwcGx5IHRvIEFtYXpvbiBBdXJvcmEgREIgaW5zdGFuY2VzLiBDb3B5aW5nIHRhZ3MgdG8gc25hcHNob3RzIGlzIG1hbmFnZWQgYnkgdGhlIERCIGNsdXN0ZXIuIFNldHRpbmcgdGhpcyB2YWx1ZSBmb3IgYW4gQXVyb3JhIERCIGluc3RhbmNlIGhhcyBubyBlZmZlY3Qgb24gdGhlIERCIGNsdXN0ZXIgc2V0dGluZy5cbiAqL1xuQ29weVRhZ3NUb1NuYXBzaG90PzogYm9vbGVhblxuLyoqXG4gKiBUaGUgaW5zdGFuY2UgcHJvZmlsZSBhc3NvY2lhdGVkIHdpdGggdGhlIHVuZGVybHlpbmcgQW1hem9uIEVDMiBpbnN0YW5jZSBvZiBhbiBSRFMgQ3VzdG9tIERCIGluc3RhbmNlLlxuICogIFRoaXMgc2V0dGluZyBpcyByZXF1aXJlZCBmb3IgUkRTIEN1c3RvbS5cbiAqICBDb25zdHJhaW50czpcbiAqICAgKyAgVGhlIHByb2ZpbGUgbXVzdCBleGlzdCBpbiB5b3VyIGFjY291bnQuXG4gKiAgICsgIFRoZSBwcm9maWxlIG11c3QgaGF2ZSBhbiBJQU0gcm9sZSB0aGF0IEFtYXpvbiBFQzIgaGFzIHBlcm1pc3Npb25zIHRvIGFzc3VtZS5cbiAqICAgKyAgVGhlIGluc3RhbmNlIHByb2ZpbGUgbmFtZSBhbmQgdGhlIGFzc29jaWF0ZWQgSUFNIHJvbGUgbmFtZSBtdXN0IHN0YXJ0IHdpdGggdGhlIHByZWZpeCBgYEFXU1JEU0N1c3RvbWBgLlxuICogICBcbiAqICBGb3IgdGhlIGxpc3Qgb2YgcGVybWlzc2lvbnMgcmVxdWlyZWQgZm9yIHRoZSBJQU0gcm9sZSwgc2VlIFtDb25maWd1cmUgSUFNIGFuZCB5b3VyIFZQQ10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvVXNlckd1aWRlL2N1c3RvbS1zZXR1cC1vcmNsLmh0bWwjY3VzdG9tLXNldHVwLW9yY2wuaWFtLXZwYykgaW4gdGhlICpBbWF6b24gUkRTIFVzZXIgR3VpZGUqLlxuICovXG5DdXN0b21JQU1JbnN0YW5jZVByb2ZpbGU/OiBzdHJpbmdcbi8qKlxuICogVGhlIG1vZGUgb2YgRGF0YWJhc2UgSW5zaWdodHMgdG8gZW5hYmxlIGZvciB0aGUgREIgaW5zdGFuY2UuXG4gKiAgIEF1cm9yYSBEQiBpbnN0YW5jZXMgaW5oZXJpdCB0aGlzIHZhbHVlIGZyb20gdGhlIERCIGNsdXN0ZXIsIHNvIHlvdSBjYW4ndCBjaGFuZ2UgdGhpcyB2YWx1ZS5cbiAqL1xuRGF0YWJhc2VJbnNpZ2h0c01vZGU/OiBzdHJpbmdcbi8qKlxuICogVGhlIGlkZW50aWZpZXIgb2YgdGhlIERCIGNsdXN0ZXIgdGhhdCB0aGlzIERCIGluc3RhbmNlIHdpbGwgYmVsb25nIHRvLlxuICogIFRoaXMgc2V0dGluZyBkb2Vzbid0IGFwcGx5IHRvIFJEUyBDdXN0b20gREIgaW5zdGFuY2VzLlxuICovXG5EQkNsdXN0ZXJJZGVudGlmaWVyPzogc3RyaW5nXG4vKipcbiAqIFRoZSBpZGVudGlmaWVyIGZvciB0aGUgTXVsdGktQVogREIgY2x1c3RlciBzbmFwc2hvdCB0byByZXN0b3JlIGZyb20uXG4gKiAgRm9yIG1vcmUgaW5mb3JtYXRpb24gb24gTXVsdGktQVogREIgY2x1c3RlcnMsIHNlZSBbTXVsdGktQVogREIgY2x1c3RlciBkZXBsb3ltZW50c10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvVXNlckd1aWRlL211bHRpLWF6LWRiLWNsdXN0ZXJzLWNvbmNlcHRzLmh0bWwpIGluIHRoZSAqQW1hem9uIFJEUyBVc2VyIEd1aWRlKi5cbiAqICBDb25zdHJhaW50czpcbiAqICAgKyAgTXVzdCBtYXRjaCB0aGUgaWRlbnRpZmllciBvZiBhbiBleGlzdGluZyBNdWx0aS1BWiBEQiBjbHVzdGVyIHNuYXBzaG90LlxuICogICArICBDYW4ndCBiZSBzcGVjaWZpZWQgd2hlbiBgYERCU25hcHNob3RJZGVudGlmaWVyYGAgaXMgc3BlY2lmaWVkLlxuICogICArICBNdXN0IGJlIHNwZWNpZmllZCB3aGVuIGBgREJTbmFwc2hvdElkZW50aWZpZXJgYCBpc24ndCBzcGVjaWZpZWQuXG4gKiAgICsgIElmIHlvdSBhcmUgcmVzdG9yaW5nIGZyb20gYSBzaGFyZWQgbWFudWFsIE11bHRpLUFaIERCIGNsdXN0ZXIgc25hcHNob3QsIHRoZSBgYERCQ2x1c3RlclNuYXBzaG90SWRlbnRpZmllcmBgIG11c3QgYmUgdGhlIEFSTiBvZiB0aGUgc2hhcmVkIHNuYXBzaG90LlxuICogICArICBDYW4ndCBiZSB0aGUgaWRlbnRpZmllciBvZiBhbiBBdXJvcmEgREIgY2x1c3RlciBzbmFwc2hvdC5cbiAqL1xuREJDbHVzdGVyU25hcHNob3RJZGVudGlmaWVyPzogc3RyaW5nXG5EQkluc3RhbmNlQXJuPzogc3RyaW5nXG4vKipcbiAqIFRoZSBjb21wdXRlIGFuZCBtZW1vcnkgY2FwYWNpdHkgb2YgdGhlIERCIGluc3RhbmNlLCBmb3IgZXhhbXBsZSBgYGRiLm01LmxhcmdlYGAuIE5vdCBhbGwgREIgaW5zdGFuY2UgY2xhc3NlcyBhcmUgYXZhaWxhYmxlIGluIGFsbCBBV1MtUmVnaW9ucywgb3IgZm9yIGFsbCBkYXRhYmFzZSBlbmdpbmVzLiBGb3IgdGhlIGZ1bGwgbGlzdCBvZiBEQiBpbnN0YW5jZSBjbGFzc2VzLCBhbmQgYXZhaWxhYmlsaXR5IGZvciB5b3VyIGVuZ2luZSwgc2VlIFtEQiBpbnN0YW5jZSBjbGFzc2VzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUkRTL2xhdGVzdC9Vc2VyR3VpZGUvQ29uY2VwdHMuREJJbnN0YW5jZUNsYXNzLmh0bWwpIGluIHRoZSAqQW1hem9uIFJEUyBVc2VyIEd1aWRlKiBvciBbQXVyb3JhIERCIGluc3RhbmNlIGNsYXNzZXNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L0F1cm9yYVVzZXJHdWlkZS9Db25jZXB0cy5EQkluc3RhbmNlQ2xhc3MuaHRtbCkgaW4gdGhlICpBbWF6b24gQXVyb3JhIFVzZXIgR3VpZGUqLlxuICovXG5EQkluc3RhbmNlQ2xhc3M/OiBzdHJpbmdcbi8qKlxuICogQSBuYW1lIGZvciB0aGUgREIgaW5zdGFuY2UuIElmIHlvdSBzcGVjaWZ5IGEgbmFtZSwgQVdTIENsb3VkRm9ybWF0aW9uIGNvbnZlcnRzIGl0IHRvIGxvd2VyY2FzZS4gSWYgeW91IGRvbid0IHNwZWNpZnkgYSBuYW1lLCBBV1MgQ2xvdWRGb3JtYXRpb24gZ2VuZXJhdGVzIGEgdW5pcXVlIHBoeXNpY2FsIElEIGFuZCB1c2VzIHRoYXQgSUQgZm9yIHRoZSBEQiBpbnN0YW5jZS4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbTmFtZSBUeXBlXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1uYW1lLmh0bWwpLlxuICogIEZvciBpbmZvcm1hdGlvbiBhYm91dCBjb25zdHJhaW50cyB0aGF0IGFwcGx5IHRvIERCIGluc3RhbmNlIGlkZW50aWZpZXJzLCBzZWUgW05hbWluZyBjb25zdHJhaW50cyBpbiBBbWF6b24gUkRTXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUkRTL2xhdGVzdC9Vc2VyR3VpZGUvQ0hBUF9MaW1pdHMuaHRtbCNSRFNfTGltaXRzLkNvbnN0cmFpbnRzKSBpbiB0aGUgKkFtYXpvbiBSRFMgVXNlciBHdWlkZSouXG4gKiAgIElmIHlvdSBzcGVjaWZ5IGEgbmFtZSwgeW91IGNhbid0IHBlcmZvcm0gdXBkYXRlcyB0aGF0IHJlcXVpcmUgcmVwbGFjZW1lbnQgb2YgdGhpcyByZXNvdXJjZS4gWW91IGNhbiBwZXJmb3JtIHVwZGF0ZXMgdGhhdCByZXF1aXJlIG5vIG9yIHNvbWUgaW50ZXJydXB0aW9uLiBJZiB5b3UgbXVzdCByZXBsYWNlIHRoZSByZXNvdXJjZSwgc3BlY2lmeSBhIG5ldyBuYW1lLlxuICovXG5EQkluc3RhbmNlSWRlbnRpZmllcj86IHN0cmluZ1xuREJJbnN0YW5jZVN0YXR1cz86IHN0cmluZ1xuRGJpUmVzb3VyY2VJZD86IHN0cmluZ1xuLyoqXG4gKiBUaGUgbWVhbmluZyBvZiB0aGlzIHBhcmFtZXRlciBkaWZmZXJzIGFjY29yZGluZyB0byB0aGUgZGF0YWJhc2UgZW5naW5lIHlvdSB1c2UuXG4gKiAgIElmIHlvdSBzcGVjaWZ5IHRoZSBgYERCU25hcHNob3RJZGVudGlmaWVyYGAgcHJvcGVydHksIHRoaXMgcHJvcGVydHkgb25seSBhcHBsaWVzIHRvIFJEUyBmb3IgT3JhY2xlLlxuICogICAgKkFtYXpvbiBBdXJvcmEqIFxuICogIE5vdCBhcHBsaWNhYmxlLiBUaGUgZGF0YWJhc2UgbmFtZSBpcyBtYW5hZ2VkIGJ5IHRoZSBEQiBjbHVzdGVyLlxuICogICAqRGIyKiBcbiAqICBUaGUgbmFtZSBvZiB0aGUgZGF0YWJhc2UgdG8gY3JlYXRlIHdoZW4gdGhlIERCIGluc3RhbmNlIGlzIGNyZWF0ZWQuIElmIHRoaXMgcGFyYW1ldGVyIGlzbid0IHNwZWNpZmllZCwgbm8gZGF0YWJhc2UgaXMgY3JlYXRlZCBpbiB0aGUgREIgaW5zdGFuY2UuXG4gKiAgQ29uc3RyYWludHM6XG4gKiAgICsgIE11c3QgY29udGFpbiAxIHRvIDY0IGxldHRlcnMgb3IgbnVtYmVycy5cbiAqICAgKyAgTXVzdCBiZWdpbiB3aXRoIGEgbGV0dGVyLiBTdWJzZXF1ZW50IGNoYXJhY3RlcnMgY2FuIGJlIGxldHRlcnMsIHVuZGVyc2NvcmVzLCBvciBkaWdpdHMgKDAtOSkuXG4gKiAgICsgIENhbid0IGJlIGEgd29yZCByZXNlcnZlZCBieSB0aGUgc3BlY2lmaWVkIGRhdGFiYXNlIGVuZ2luZS5cbiAqICAgXG4gKiAgICpNeVNRTCogXG4gKiAgVGhlIG5hbWUgb2YgdGhlIGRhdGFiYXNlIHRvIGNyZWF0ZSB3aGVuIHRoZSBEQiBpbnN0YW5jZSBpcyBjcmVhdGVkLiBJZiB0aGlzIHBhcmFtZXRlciBpcyBub3Qgc3BlY2lmaWVkLCBubyBkYXRhYmFzZSBpcyBjcmVhdGVkIGluIHRoZSBEQiBpbnN0YW5jZS5cbiAqICBDb25zdHJhaW50czpcbiAqICAgKyAgTXVzdCBjb250YWluIDEgdG8gNjQgbGV0dGVycyBvciBudW1iZXJzLlxuICogICArICBDYW4ndCBiZSBhIHdvcmQgcmVzZXJ2ZWQgYnkgdGhlIHNwZWNpZmllZCBkYXRhYmFzZSBlbmdpbmVcbiAqICAgXG4gKiAgICpNYXJpYURCKiBcbiAqICBUaGUgbmFtZSBvZiB0aGUgZGF0YWJhc2UgdG8gY3JlYXRlIHdoZW4gdGhlIERCIGluc3RhbmNlIGlzIGNyZWF0ZWQuIElmIHRoaXMgcGFyYW1ldGVyIGlzIG5vdCBzcGVjaWZpZWQsIG5vIGRhdGFiYXNlIGlzIGNyZWF0ZWQgaW4gdGhlIERCIGluc3RhbmNlLlxuICogIENvbnN0cmFpbnRzOlxuICogICArICBNdXN0IGNvbnRhaW4gMSB0byA2NCBsZXR0ZXJzIG9yIG51bWJlcnMuXG4gKiAgICsgIENhbid0IGJlIGEgd29yZCByZXNlcnZlZCBieSB0aGUgc3BlY2lmaWVkIGRhdGFiYXNlIGVuZ2luZVxuICogICBcbiAqICAgKlBvc3RncmVTUUwqIFxuICogIFRoZSBuYW1lIG9mIHRoZSBkYXRhYmFzZSB0byBjcmVhdGUgd2hlbiB0aGUgREIgaW5zdGFuY2UgaXMgY3JlYXRlZC4gSWYgdGhpcyBwYXJhbWV0ZXIgaXMgbm90IHNwZWNpZmllZCwgdGhlIGRlZmF1bHQgYGBwb3N0Z3Jlc2BgIGRhdGFiYXNlIGlzIGNyZWF0ZWQgaW4gdGhlIERCIGluc3RhbmNlLlxuICogIENvbnN0cmFpbnRzOlxuICogICArICBNdXN0IGJlZ2luIHdpdGggYSBsZXR0ZXIuIFN1YnNlcXVlbnQgY2hhcmFjdGVycyBjYW4gYmUgbGV0dGVycywgdW5kZXJzY29yZXMsIG9yIGRpZ2l0cyAoMC05KS5cbiAqICAgKyAgTXVzdCBjb250YWluIDEgdG8gNjMgY2hhcmFjdGVycy5cbiAqICAgKyAgQ2FuJ3QgYmUgYSB3b3JkIHJlc2VydmVkIGJ5IHRoZSBzcGVjaWZpZWQgZGF0YWJhc2UgZW5naW5lXG4gKiAgIFxuICogICAqT3JhY2xlKiBcbiAqICBUaGUgT3JhY2xlIFN5c3RlbSBJRCAoU0lEKSBvZiB0aGUgY3JlYXRlZCBEQiBpbnN0YW5jZS4gSWYgeW91IHNwZWNpZnkgYGBudWxsYGAsIHRoZSBkZWZhdWx0IHZhbHVlIGBgT1JDTGBgIGlzIHVzZWQuIFlvdSBjYW4ndCBzcGVjaWZ5IHRoZSBzdHJpbmcgTlVMTCwgb3IgYW55IG90aGVyIHJlc2VydmVkIHdvcmQsIGZvciBgYERCTmFtZWBgLiBcbiAqICBEZWZhdWx0OiBgYE9SQ0xgYFxuICogIENvbnN0cmFpbnRzOlxuICogICArICBDYW4ndCBiZSBsb25nZXIgdGhhbiA4IGNoYXJhY3RlcnNcbiAqICAgXG4gKiAgICpTUUwgU2VydmVyKiBcbiAqICBOb3QgYXBwbGljYWJsZS4gTXVzdCBiZSBudWxsLlxuICovXG5EQk5hbWU/OiBzdHJpbmdcbi8qKlxuICogVGhlIG5hbWUgb2YgYW4gZXhpc3RpbmcgREIgcGFyYW1ldGVyIGdyb3VwIG9yIGEgcmVmZXJlbmNlIHRvIGFuIFtBV1M6OlJEUzo6REJQYXJhbWV0ZXJHcm91cF0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtcmRzLWRicGFyYW1ldGVyZ3JvdXAuaHRtbCkgcmVzb3VyY2UgY3JlYXRlZCBpbiB0aGUgdGVtcGxhdGUuXG4gKiAgVG8gbGlzdCBhbGwgb2YgdGhlIGF2YWlsYWJsZSBEQiBwYXJhbWV0ZXIgZ3JvdXAgbmFtZXMsIHVzZSB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6XG4gKiAgIGBgYXdzIHJkcyBkZXNjcmliZS1kYi1wYXJhbWV0ZXItZ3JvdXBzIC0tcXVlcnkgXCJEQlBhcmFtZXRlckdyb3Vwc1tdLkRCUGFyYW1ldGVyR3JvdXBOYW1lXCIgLS1vdXRwdXQgdGV4dGBgIFxuICogICBJZiBhbnkgb2YgdGhlIGRhdGEgbWVtYmVycyBvZiB0aGUgcmVmZXJlbmNlZCBwYXJhbWV0ZXIgZ3JvdXAgYXJlIGNoYW5nZWQgZHVyaW5nIGFuIHVwZGF0ZSwgdGhlIERCIGluc3RhbmNlIG1pZ2h0IG5lZWQgdG8gYmUgcmVzdGFydGVkLCB3aGljaCBjYXVzZXMgc29tZSBpbnRlcnJ1cHRpb24uIElmIHRoZSBwYXJhbWV0ZXIgZ3JvdXAgY29udGFpbnMgc3RhdGljIHBhcmFtZXRlcnMsIHdoZXRoZXIgdGhleSB3ZXJlIGNoYW5nZWQgb3Igbm90LCBhbiB1cGRhdGUgdHJpZ2dlcnMgYSByZWJvb3QuXG4gKiAgIElmIHlvdSBkb24ndCBzcGVjaWZ5IGEgdmFsdWUgZm9yIGBgREJQYXJhbWV0ZXJHcm91cE5hbWVgYCBwcm9wZXJ0eSwgdGhlIGRlZmF1bHQgREIgcGFyYW1ldGVyIGdyb3VwIGZvciB0aGUgc3BlY2lmaWVkIGVuZ2luZSBhbmQgZW5naW5lIHZlcnNpb24gaXMgdXNlZC5cbiAqL1xuREJQYXJhbWV0ZXJHcm91cE5hbWU/OiBzdHJpbmdcbi8qKlxuICogQSBsaXN0IG9mIHRoZSBEQiBzZWN1cml0eSBncm91cHMgdG8gYXNzaWduIHRvIHRoZSBEQiBpbnN0YW5jZS4gVGhlIGxpc3QgY2FuIGluY2x1ZGUgYm90aCB0aGUgbmFtZSBvZiBleGlzdGluZyBEQiBzZWN1cml0eSBncm91cHMgb3IgcmVmZXJlbmNlcyB0byBBV1M6OlJEUzo6REJTZWN1cml0eUdyb3VwIHJlc291cmNlcyBjcmVhdGVkIGluIHRoZSB0ZW1wbGF0ZS5cbiAqICAgSWYgeW91IHNldCBEQlNlY3VyaXR5R3JvdXBzLCB5b3UgbXVzdCBub3Qgc2V0IFZQQ1NlY3VyaXR5R3JvdXBzLCBhbmQgdmljZSB2ZXJzYS4gQWxzbywgbm90ZSB0aGF0IHRoZSBEQlNlY3VyaXR5R3JvdXBzIHByb3BlcnR5IGV4aXN0cyBvbmx5IGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSB3aXRoIG9sZGVyIHJlZ2lvbnMgYW5kIGlzIG5vIGxvbmdlciByZWNvbW1lbmRlZCBmb3IgcHJvdmlkaW5nIHNlY3VyaXR5IGluZm9ybWF0aW9uIHRvIGFuIFJEUyBEQiBpbnN0YW5jZS4gSW5zdGVhZCwgdXNlIFZQQ1NlY3VyaXR5R3JvdXBzLlxuICogICBJZiB5b3Ugc3BlY2lmeSB0aGlzIHByb3BlcnR5LCBBV1MgQ2xvdWRGb3JtYXRpb24gc2VuZHMgb25seSB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXMgKGlmIHNwZWNpZmllZCkgdG8gQW1hem9uIFJEUyBkdXJpbmcgY3JlYXRlIG9wZXJhdGlvbnM6XG4gKiAgICsgICBgYEFsbG9jYXRlZFN0b3JhZ2VgYCBcbiAqICAgKyAgIGBgQXV0b01pbm9yVmVyc2lvblVwZ3JhZGVgYCBcbiAqICAgKyAgIGBgQXZhaWxhYmlsaXR5Wm9uZWBgIFxuICogICArICAgYGBCYWNrdXBSZXRlbnRpb25QZXJpb2RgYCBcbiAqICAgKyAgIGBgQ2hhcmFjdGVyU2V0TmFtZWBgIFxuICogICArICAgYGBEQkluc3RhbmNlQ2xhc3NgYCBcbiAqICAgKyAgIGBgREJOYW1lYGAgXG4gKiAgICsgICBgYERCUGFyYW1ldGVyR3JvdXBOYW1lYGAgXG4gKiAgICsgICBgYERCU2VjdXJpdHlHcm91cHNgYCBcbiAqICAgKyAgIGBgREJTdWJuZXRHcm91cE5hbWVgYCBcbiAqICAgKyAgIGBgRW5naW5lYGAgXG4gKiAgICsgICBgYEVuZ2luZVZlcnNpb25gYCBcbiAqICAgKyAgIGBgSW9wc2BgIFxuICogICArICAgYGBMaWNlbnNlTW9kZWxgYCBcbiAqICAgKyAgIGBgTWFzdGVyVXNlcm5hbWVgYCBcbiAqICAgKyAgIGBgTWFzdGVyVXNlclBhc3N3b3JkYGAgXG4gKiAgICsgICBgYE11bHRpQVpgYCBcbiAqICAgKyAgIGBgT3B0aW9uR3JvdXBOYW1lYGAgXG4gKiAgICsgICBgYFByZWZlcnJlZEJhY2t1cFdpbmRvd2BgIFxuICogICArICAgYGBQcmVmZXJyZWRNYWludGVuYW5jZVdpbmRvd2BgIFxuICogICBcbiAqICBBbGwgb3RoZXIgcHJvcGVydGllcyBhcmUgaWdub3JlZC4gU3BlY2lmeSBhIHZpcnR1YWwgcHJpdmF0ZSBjbG91ZCAoVlBDKSBzZWN1cml0eSBncm91cCBpZiB5b3Ugd2FudCB0byBzdWJtaXQgb3RoZXIgcHJvcGVydGllcywgc3VjaCBhcyBgYFN0b3JhZ2VUeXBlYGAsIGBgU3RvcmFnZUVuY3J5cHRlZGBgLCBvciBgYEttc0tleUlkYGAuIElmIHlvdSdyZSBhbHJlYWR5IHVzaW5nIHRoZSBgYERCU2VjdXJpdHlHcm91cHNgYCBwcm9wZXJ0eSwgeW91IGNhbid0IHVzZSB0aGVzZSBvdGhlciBwcm9wZXJ0aWVzIGJ5IHVwZGF0aW5nIHlvdXIgREIgaW5zdGFuY2UgdG8gdXNlIGEgVlBDIHNlY3VyaXR5IGdyb3VwLiBZb3UgbXVzdCByZWNyZWF0ZSB0aGUgREIgaW5zdGFuY2UuXG4gKi9cbkRCU2VjdXJpdHlHcm91cHM/OiBzdHJpbmdbXVxuLyoqXG4gKiBUaGUgbmFtZSBvciBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKSBvZiB0aGUgREIgc25hcHNob3QgdGhhdCdzIHVzZWQgdG8gcmVzdG9yZSB0aGUgREIgaW5zdGFuY2UuIElmIHlvdSdyZSByZXN0b3JpbmcgZnJvbSBhIHNoYXJlZCBtYW51YWwgREIgc25hcHNob3QsIHlvdSBtdXN0IHNwZWNpZnkgdGhlIEFSTiBvZiB0aGUgc25hcHNob3QuXG4gKiAgQnkgc3BlY2lmeWluZyB0aGlzIHByb3BlcnR5LCB5b3UgY2FuIGNyZWF0ZSBhIERCIGluc3RhbmNlIGZyb20gdGhlIHNwZWNpZmllZCBEQiBzbmFwc2hvdC4gSWYgdGhlIGBgREJTbmFwc2hvdElkZW50aWZpZXJgYCBwcm9wZXJ0eSBpcyBhbiBlbXB0eSBzdHJpbmcgb3IgdGhlIGBgQVdTOjpSRFM6OkRCSW5zdGFuY2VgYCBkZWNsYXJhdGlvbiBoYXMgbm8gYGBEQlNuYXBzaG90SWRlbnRpZmllcmBgIHByb3BlcnR5LCBBV1MgQ2xvdWRGb3JtYXRpb24gY3JlYXRlcyBhIG5ldyBkYXRhYmFzZS4gSWYgdGhlIHByb3BlcnR5IGNvbnRhaW5zIGEgdmFsdWUgKG90aGVyIHRoYW4gYW4gZW1wdHkgc3RyaW5nKSwgQVdTIENsb3VkRm9ybWF0aW9uIGNyZWF0ZXMgYSBkYXRhYmFzZSBmcm9tIHRoZSBzcGVjaWZpZWQgc25hcHNob3QuIElmIGEgc25hcHNob3Qgd2l0aCB0aGUgc3BlY2lmaWVkIG5hbWUgZG9lc24ndCBleGlzdCwgQVdTIENsb3VkRm9ybWF0aW9uIGNhbid0IGNyZWF0ZSB0aGUgZGF0YWJhc2UgYW5kIGl0IHJvbGxzIGJhY2sgdGhlIHN0YWNrLlxuICogIFNvbWUgREIgaW5zdGFuY2UgcHJvcGVydGllcyBhcmVuJ3QgdmFsaWQgd2hlbiB5b3UgcmVzdG9yZSBmcm9tIGEgc25hcHNob3QsIHN1Y2ggYXMgdGhlIGBgTWFzdGVyVXNlcm5hbWVgYCBhbmQgYGBNYXN0ZXJVc2VyUGFzc3dvcmRgYCBwcm9wZXJ0aWVzLCBhbmQgdGhlIHBvaW50LWluLXRpbWUgcmVjb3ZlcnkgcHJvcGVydGllcyBgYFJlc3RvcmVUaW1lYGAgYW5kIGBgVXNlTGF0ZXN0UmVzdG9yYWJsZVRpbWVgYC4gRm9yIGluZm9ybWF0aW9uIGFib3V0IHRoZSBwcm9wZXJ0aWVzIHRoYXQgeW91IGNhbiBzcGVjaWZ5LCBzZWUgdGhlIFtSZXN0b3JlREJJbnN0YW5jZUZyb21EQlNuYXBzaG90XShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUkRTL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX1Jlc3RvcmVEQkluc3RhbmNlRnJvbURCU25hcHNob3QuaHRtbCkgYWN0aW9uIGluIHRoZSAqQW1hem9uIFJEUyBBUEkgUmVmZXJlbmNlKi5cbiAqICBBZnRlciB5b3UgcmVzdG9yZSBhIERCIGluc3RhbmNlIHdpdGggYSBgYERCU25hcHNob3RJZGVudGlmaWVyYGAgcHJvcGVydHksIHlvdSBtdXN0IHNwZWNpZnkgdGhlIHNhbWUgYGBEQlNuYXBzaG90SWRlbnRpZmllcmBgIHByb3BlcnR5IGZvciBhbnkgZnV0dXJlIHVwZGF0ZXMgdG8gdGhlIERCIGluc3RhbmNlLiBXaGVuIHlvdSBzcGVjaWZ5IHRoaXMgcHJvcGVydHkgZm9yIGFuIHVwZGF0ZSwgdGhlIERCIGluc3RhbmNlIGlzIG5vdCByZXN0b3JlZCBmcm9tIHRoZSBEQiBzbmFwc2hvdCBhZ2FpbiwgYW5kIHRoZSBkYXRhIGluIHRoZSBkYXRhYmFzZSBpcyBub3QgY2hhbmdlZC4gSG93ZXZlciwgaWYgeW91IGRvbid0IHNwZWNpZnkgdGhlIGBgREJTbmFwc2hvdElkZW50aWZpZXJgYCBwcm9wZXJ0eSwgYW4gZW1wdHkgREIgaW5zdGFuY2UgaXMgY3JlYXRlZCwgYW5kIHRoZSBvcmlnaW5hbCBEQiBpbnN0YW5jZSBpcyBkZWxldGVkLiBJZiB5b3Ugc3BlY2lmeSBhIHByb3BlcnR5IHRoYXQgaXMgZGlmZmVyZW50IGZyb20gdGhlIHByZXZpb3VzIHNuYXBzaG90IHJlc3RvcmUgcHJvcGVydHksIGEgbmV3IERCIGluc3RhbmNlIGlzIHJlc3RvcmVkIGZyb20gdGhlIHNwZWNpZmllZCBgYERCU25hcHNob3RJZGVudGlmaWVyYGAgcHJvcGVydHksIGFuZCB0aGUgb3JpZ2luYWwgREIgaW5zdGFuY2UgaXMgZGVsZXRlZC5cbiAqICBJZiB5b3Ugc3BlY2lmeSB0aGUgYGBEQlNuYXBzaG90SWRlbnRpZmllcmBgIHByb3BlcnR5IHRvIHJlc3RvcmUgYSBEQiBpbnN0YW5jZSAoYXMgb3Bwb3NlZCB0byBzcGVjaWZ5aW5nIGl0IGZvciBEQiBpbnN0YW5jZSB1cGRhdGVzKSwgdGhlbiBkb24ndCBzcGVjaWZ5IHRoZSBmb2xsb3dpbmcgcHJvcGVydGllczpcbiAqICAgKyAgIGBgQ2hhcmFjdGVyU2V0TmFtZWBgIFxuICogICArICAgYGBEQkNsdXN0ZXJJZGVudGlmaWVyYGAgXG4gKiAgICsgICBgYERCTmFtZWBgIFxuICogICArICAgYGBLbXNLZXlJZGBgIFxuICogICArICAgYGBNYXN0ZXJVc2VybmFtZWBgIFxuICogICArICAgYGBNYXN0ZXJVc2VyUGFzc3dvcmRgYCBcbiAqICAgKyAgIGBgUHJvbW90aW9uVGllcmBgIFxuICogICArICAgYGBTb3VyY2VEQkluc3RhbmNlSWRlbnRpZmllcmBgIFxuICogICArICAgYGBTb3VyY2VSZWdpb25gYCBcbiAqICAgKyAgYGBTdG9yYWdlRW5jcnlwdGVkYGAgKGZvciBhbiB1bmVuY3J5cHRlZCBzbmFwc2hvdClcbiAqICAgKyAgIGBgVGltZXpvbmVgYCBcbiAqICAgXG4gKiAgICpBbWF6b24gQXVyb3JhKiBcbiAqICBOb3QgYXBwbGljYWJsZS4gU25hcHNob3QgcmVzdG9yZSBpcyBtYW5hZ2VkIGJ5IHRoZSBEQiBjbHVzdGVyLlxuICovXG5EQlNuYXBzaG90SWRlbnRpZmllcj86IHN0cmluZ1xuLyoqXG4gKiBBIERCIHN1Ym5ldCBncm91cCB0byBhc3NvY2lhdGUgd2l0aCB0aGUgREIgaW5zdGFuY2UuIElmIHlvdSB1cGRhdGUgdGhpcyB2YWx1ZSwgdGhlIG5ldyBzdWJuZXQgZ3JvdXAgbXVzdCBiZSBhIHN1Ym5ldCBncm91cCBpbiBhIG5ldyBWUEMuIFxuICogIElmIHlvdSBkb24ndCBzcGVjaWZ5IGEgREIgc3VibmV0IGdyb3VwLCBSRFMgdXNlcyB0aGUgZGVmYXVsdCBEQiBzdWJuZXQgZ3JvdXAgaWYgb25lIGV4aXN0cy4gSWYgYSBkZWZhdWx0IERCIHN1Ym5ldCBncm91cCBkb2VzIG5vdCBleGlzdCwgYW5kIHlvdSBkb24ndCBzcGVjaWZ5IGEgYGBEQlN1Ym5ldEdyb3VwTmFtZWBgLCB0aGUgREIgaW5zdGFuY2UgZmFpbHMgdG8gbGF1bmNoLiBcbiAqICBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB1c2luZyBBbWF6b24gUkRTIGluIGEgVlBDLCBzZWUgW0FtYXpvbiBWUEMgYW5kIEFtYXpvbiBSRFNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L1VzZXJHdWlkZS9VU0VSX1ZQQy5odG1sKSBpbiB0aGUgKkFtYXpvbiBSRFMgVXNlciBHdWlkZSouIFxuICogIFRoaXMgc2V0dGluZyBkb2Vzbid0IGFwcGx5IHRvIEFtYXpvbiBBdXJvcmEgREIgaW5zdGFuY2VzLiBUaGUgREIgc3VibmV0IGdyb3VwIGlzIG1hbmFnZWQgYnkgdGhlIERCIGNsdXN0ZXIuIElmIHNwZWNpZmllZCwgdGhlIHNldHRpbmcgbXVzdCBtYXRjaCB0aGUgREIgY2x1c3RlciBzZXR0aW5nLlxuICovXG5EQlN1Ym5ldEdyb3VwTmFtZT86IHN0cmluZ1xuLyoqXG4gKiBUaGUgT3JhY2xlIHN5c3RlbSBpZGVudGlmaWVyIChTSUQpLCB3aGljaCBpcyB0aGUgbmFtZSBvZiB0aGUgT3JhY2xlIGRhdGFiYXNlIGluc3RhbmNlIHRoYXQgbWFuYWdlcyB5b3VyIGRhdGFiYXNlIGZpbGVzLiBJbiB0aGlzIGNvbnRleHQsIHRoZSB0ZXJtIFwiT3JhY2xlIGRhdGFiYXNlIGluc3RhbmNlXCIgcmVmZXJzIGV4Y2x1c2l2ZWx5IHRvIHRoZSBzeXN0ZW0gZ2xvYmFsIGFyZWEgKFNHQSkgYW5kIE9yYWNsZSBiYWNrZ3JvdW5kIHByb2Nlc3Nlcy4gSWYgeW91IGRvbid0IHNwZWNpZnkgYSBTSUQsIHRoZSB2YWx1ZSBkZWZhdWx0cyB0byBgYFJEU0NEQmBgLiBUaGUgT3JhY2xlIFNJRCBpcyBhbHNvIHRoZSBuYW1lIG9mIHlvdXIgQ0RCLlxuICovXG5EQlN5c3RlbUlkPzogc3RyaW5nXG4vKipcbiAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBEQiBpbnN0YW5jZSBoYXMgYSBkZWRpY2F0ZWQgbG9nIHZvbHVtZSAoRExWKSBlbmFibGVkLlxuICovXG5EZWRpY2F0ZWRMb2dWb2x1bWU/OiBib29sZWFuXG4vKipcbiAqIEEgdmFsdWUgdGhhdCBpbmRpY2F0ZXMgd2hldGhlciB0byByZW1vdmUgYXV0b21hdGVkIGJhY2t1cHMgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlIERCIGluc3RhbmNlIGlzIGRlbGV0ZWQuIFRoaXMgcGFyYW1ldGVyIGlzbid0IGNhc2Utc2Vuc2l0aXZlLiBUaGUgZGVmYXVsdCBpcyB0byByZW1vdmUgYXV0b21hdGVkIGJhY2t1cHMgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlIERCIGluc3RhbmNlIGlzIGRlbGV0ZWQuXG4gKiAgICpBbWF6b24gQXVyb3JhKiBcbiAqICBOb3QgYXBwbGljYWJsZS4gV2hlbiB5b3UgZGVsZXRlIGEgREIgY2x1c3RlciwgYWxsIGF1dG9tYXRlZCBiYWNrdXBzIGZvciB0aGF0IERCIGNsdXN0ZXIgYXJlIGRlbGV0ZWQgYW5kIGNhbid0IGJlIHJlY292ZXJlZC4gTWFudWFsIERCIGNsdXN0ZXIgc25hcHNob3RzIG9mIHRoZSBEQiBjbHVzdGVyIGFyZSBub3QgZGVsZXRlZC5cbiAqL1xuRGVsZXRlQXV0b21hdGVkQmFja3Vwcz86IGJvb2xlYW5cbi8qKlxuICogU3BlY2lmaWVzIHdoZXRoZXIgdGhlIERCIGluc3RhbmNlIGhhcyBkZWxldGlvbiBwcm90ZWN0aW9uIGVuYWJsZWQuIFRoZSBkYXRhYmFzZSBjYW4ndCBiZSBkZWxldGVkIHdoZW4gZGVsZXRpb24gcHJvdGVjdGlvbiBpcyBlbmFibGVkLiBCeSBkZWZhdWx0LCBkZWxldGlvbiBwcm90ZWN0aW9uIGlzbid0IGVuYWJsZWQuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW0RlbGV0aW5nIGEgREIgSW5zdGFuY2VdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L1VzZXJHdWlkZS9VU0VSX0RlbGV0ZUluc3RhbmNlLmh0bWwpLlxuICogIFRoaXMgc2V0dGluZyBkb2Vzbid0IGFwcGx5IHRvIEFtYXpvbiBBdXJvcmEgREIgaW5zdGFuY2VzLiBZb3UgY2FuIGVuYWJsZSBvciBkaXNhYmxlIGRlbGV0aW9uIHByb3RlY3Rpb24gZm9yIHRoZSBEQiBjbHVzdGVyLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIGBgQ3JlYXRlREJDbHVzdGVyYGAuIERCIGluc3RhbmNlcyBpbiBhIERCIGNsdXN0ZXIgY2FuIGJlIGRlbGV0ZWQgZXZlbiB3aGVuIGRlbGV0aW9uIHByb3RlY3Rpb24gaXMgZW5hYmxlZCBmb3IgdGhlIERCIGNsdXN0ZXIuXG4gKi9cbkRlbGV0aW9uUHJvdGVjdGlvbj86IGJvb2xlYW5cbi8qKlxuICogVGhlIEFjdGl2ZSBEaXJlY3RvcnkgZGlyZWN0b3J5IElEIHRvIGNyZWF0ZSB0aGUgREIgaW5zdGFuY2UgaW4uIEN1cnJlbnRseSwgb25seSBEYjIsIE15U1FMLCBNaWNyb3NvZnQgU1FMIFNlcnZlciwgT3JhY2xlLCBhbmQgUG9zdGdyZVNRTCBEQiBpbnN0YW5jZXMgY2FuIGJlIGNyZWF0ZWQgaW4gYW4gQWN0aXZlIERpcmVjdG9yeSBEb21haW4uXG4gKiAgRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbS2VyYmVyb3MgQXV0aGVudGljYXRpb25dKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L1VzZXJHdWlkZS9rZXJiZXJvcy1hdXRoZW50aWNhdGlvbi5odG1sKSBpbiB0aGUgKkFtYXpvbiBSRFMgVXNlciBHdWlkZSouXG4gKi9cbkRvbWFpbj86IHN0cmluZ1xuLyoqXG4gKiBUaGUgQVJOIGZvciB0aGUgU2VjcmV0cyBNYW5hZ2VyIHNlY3JldCB3aXRoIHRoZSBjcmVkZW50aWFscyBmb3IgdGhlIHVzZXIgam9pbmluZyB0aGUgZG9tYWluLlxuICogIEV4YW1wbGU6IGBgYXJuOmF3czpzZWNyZXRzbWFuYWdlcjpyZWdpb246YWNjb3VudC1udW1iZXI6c2VjcmV0Om15c2VsZm1hbmFnZWRBRHRlc3RzZWNyZXQtMTIzNDU2YGBcbiAqL1xuRG9tYWluQXV0aFNlY3JldEFybj86IHN0cmluZ1xuLyoqXG4gKiBUaGUgSVB2NCBETlMgSVAgYWRkcmVzc2VzIG9mIHlvdXIgcHJpbWFyeSBhbmQgc2Vjb25kYXJ5IEFjdGl2ZSBEaXJlY3RvcnkgZG9tYWluIGNvbnRyb2xsZXJzLlxuICogIENvbnN0cmFpbnRzOlxuICogICArICBUd28gSVAgYWRkcmVzc2VzIG11c3QgYmUgcHJvdmlkZWQuIElmIHRoZXJlIGlzbid0IGEgc2Vjb25kYXJ5IGRvbWFpbiBjb250cm9sbGVyLCB1c2UgdGhlIElQIGFkZHJlc3Mgb2YgdGhlIHByaW1hcnkgZG9tYWluIGNvbnRyb2xsZXIgZm9yIGJvdGggZW50cmllcyBpbiB0aGUgbGlzdC5cbiAqICAgXG4gKiAgRXhhbXBsZTogYGAxMjMuMTI0LjEyNS4xMjYsMjM0LjIzNS4yMzYuMjM3YGBcbiAqL1xuRG9tYWluRG5zSXBzPzogc3RyaW5nW11cbi8qKlxuICogVGhlIGZ1bGx5IHF1YWxpZmllZCBkb21haW4gbmFtZSAoRlFETikgb2YgYW4gQWN0aXZlIERpcmVjdG9yeSBkb21haW4uXG4gKiAgQ29uc3RyYWludHM6XG4gKiAgICsgIENhbid0IGJlIGxvbmdlciB0aGFuIDY0IGNoYXJhY3RlcnMuXG4gKiAgIFxuICogIEV4YW1wbGU6IGBgbXltYW5hZ2VkQUR0ZXN0Lm15bWFuYWdlZEFELm15ZG9tYWluYGBcbiAqL1xuRG9tYWluRnFkbj86IHN0cmluZ1xuLyoqXG4gKiBUaGUgbmFtZSBvZiB0aGUgSUFNIHJvbGUgdG8gdXNlIHdoZW4gbWFraW5nIEFQSSBjYWxscyB0byB0aGUgRGlyZWN0b3J5IFNlcnZpY2UuXG4gKiAgVGhpcyBzZXR0aW5nIGRvZXNuJ3QgYXBwbHkgdG8gdGhlIGZvbGxvd2luZyBEQiBpbnN0YW5jZXM6XG4gKiAgICsgIEFtYXpvbiBBdXJvcmEgKFRoZSBkb21haW4gaXMgbWFuYWdlZCBieSB0aGUgREIgY2x1c3Rlci4pXG4gKiAgICsgIFJEUyBDdXN0b21cbiAqL1xuRG9tYWluSUFNUm9sZU5hbWU/OiBzdHJpbmdcbi8qKlxuICogVGhlIEFjdGl2ZSBEaXJlY3Rvcnkgb3JnYW5pemF0aW9uYWwgdW5pdCBmb3IgeW91ciBEQiBpbnN0YW5jZSB0byBqb2luLlxuICogIENvbnN0cmFpbnRzOlxuICogICArICBNdXN0IGJlIGluIHRoZSBkaXN0aW5ndWlzaGVkIG5hbWUgZm9ybWF0LlxuICogICArICBDYW4ndCBiZSBsb25nZXIgdGhhbiA2NCBjaGFyYWN0ZXJzLlxuICogICBcbiAqICBFeGFtcGxlOiBgYE9VPW15bWFuYWdlZEFEdGVzdE9VLERDPW15bWFuYWdlZEFEdGVzdCxEQz1teW1hbmFnZWRBRCxEQz1teWRvbWFpbmBgXG4gKi9cbkRvbWFpbk91Pzogc3RyaW5nXG4vKipcbiAqIFRoZSBsaXN0IG9mIGxvZyB0eXBlcyB0aGF0IG5lZWQgdG8gYmUgZW5hYmxlZCBmb3IgZXhwb3J0aW5nIHRvIENsb3VkV2F0Y2ggTG9ncy4gVGhlIHZhbHVlcyBpbiB0aGUgbGlzdCBkZXBlbmQgb24gdGhlIERCIGVuZ2luZSBiZWluZyB1c2VkLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtQdWJsaXNoaW5nIERhdGFiYXNlIExvZ3MgdG8gQW1hem9uIENsb3VkV2F0Y2ggTG9nc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvVXNlckd1aWRlL1VTRVJfTG9nQWNjZXNzLmh0bWwjVVNFUl9Mb2dBY2Nlc3MuUHJvY2VkdXJhbC5VcGxvYWR0b0Nsb3VkV2F0Y2gpIGluIHRoZSAqQW1hem9uIFJlbGF0aW9uYWwgRGF0YWJhc2UgU2VydmljZSBVc2VyIEd1aWRlKi5cbiAqICAgKkFtYXpvbiBBdXJvcmEqIFxuICogIE5vdCBhcHBsaWNhYmxlLiBDbG91ZFdhdGNoIExvZ3MgZXhwb3J0cyBhcmUgbWFuYWdlZCBieSB0aGUgREIgY2x1c3Rlci4gXG4gKiAgICpEYjIqIFxuICogIFZhbGlkIHZhbHVlczogYGBkaWFnLmxvZ2BgLCBgYG5vdGlmeS5sb2dgYFxuICogICAqTWFyaWFEQiogXG4gKiAgVmFsaWQgdmFsdWVzOiBgYGF1ZGl0YGAsIGBgZXJyb3JgYCwgYGBnZW5lcmFsYGAsIGBgc2xvd3F1ZXJ5YGBcbiAqICAgKk1pY3Jvc29mdCBTUUwgU2VydmVyKiBcbiAqICBWYWxpZCB2YWx1ZXM6IGBgYWdlbnRgYCwgYGBlcnJvcmBgXG4gKiAgICpNeVNRTCogXG4gKiAgVmFsaWQgdmFsdWVzOiBgYGF1ZGl0YGAsIGBgZXJyb3JgYCwgYGBnZW5lcmFsYGAsIGBgc2xvd3F1ZXJ5YGBcbiAqICAgKk9yYWNsZSogXG4gKiAgVmFsaWQgdmFsdWVzOiBgYGFsZXJ0YGAsIGBgYXVkaXRgYCwgYGBsaXN0ZW5lcmBgLCBgYHRyYWNlYGAsIGBgb2VtYWdlbnRgYFxuICogICAqUG9zdGdyZVNRTCogXG4gKiAgVmFsaWQgdmFsdWVzOiBgYHBvc3RncmVzcWxgYCwgYGB1cGdyYWRlYGBcbiAqL1xuRW5hYmxlQ2xvdWR3YXRjaExvZ3NFeHBvcnRzPzogc3RyaW5nW11cbi8qKlxuICogQSB2YWx1ZSB0aGF0IGluZGljYXRlcyB3aGV0aGVyIHRvIGVuYWJsZSBtYXBwaW5nIG9mIEFXUyBJZGVudGl0eSBhbmQgQWNjZXNzIE1hbmFnZW1lbnQgKElBTSkgYWNjb3VudHMgdG8gZGF0YWJhc2UgYWNjb3VudHMuIEJ5IGRlZmF1bHQsIG1hcHBpbmcgaXMgZGlzYWJsZWQuXG4gKiAgVGhpcyBwcm9wZXJ0eSBpcyBzdXBwb3J0ZWQgZm9yIFJEUyBmb3IgTWFyaWFEQiwgUkRTIGZvciBNeVNRTCwgYW5kIFJEUyBmb3IgUG9zdGdyZVNRTC4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbSUFNIERhdGFiYXNlIEF1dGhlbnRpY2F0aW9uIGZvciBNYXJpYURCLCBNeVNRTCwgYW5kIFBvc3RncmVTUUxdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L1VzZXJHdWlkZS9Vc2luZ1dpdGhSRFMuSUFNREJBdXRoLmh0bWwpIGluIHRoZSAqQW1hem9uIFJEUyBVc2VyIEd1aWRlLipcbiAqICAgKkFtYXpvbiBBdXJvcmEqIFxuICogIE5vdCBhcHBsaWNhYmxlLiBNYXBwaW5nIEFXUyBJQU0gYWNjb3VudHMgdG8gZGF0YWJhc2UgYWNjb3VudHMgaXMgbWFuYWdlZCBieSB0aGUgREIgY2x1c3Rlci5cbiAqL1xuRW5hYmxlSUFNRGF0YWJhc2VBdXRoZW50aWNhdGlvbj86IGJvb2xlYW5cbi8qKlxuICogU3BlY2lmaWVzIHdoZXRoZXIgdG8gZW5hYmxlIFBlcmZvcm1hbmNlIEluc2lnaHRzIGZvciB0aGUgREIgaW5zdGFuY2UuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW1VzaW5nIEFtYXpvbiBQZXJmb3JtYW5jZSBJbnNpZ2h0c10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvVXNlckd1aWRlL1VTRVJfUGVyZkluc2lnaHRzLmh0bWwpIGluIHRoZSAqQW1hem9uIFJEUyBVc2VyIEd1aWRlKi5cbiAqICBUaGlzIHNldHRpbmcgZG9lc24ndCBhcHBseSB0byBSRFMgQ3VzdG9tIERCIGluc3RhbmNlcy5cbiAqL1xuRW5hYmxlUGVyZm9ybWFuY2VJbnNpZ2h0cz86IGJvb2xlYW5cbkVuZHBvaW50PzogRW5kcG9pbnRcbi8qKlxuICogVGhlIG5hbWUgb2YgdGhlIGRhdGFiYXNlIGVuZ2luZSB0byB1c2UgZm9yIHRoaXMgREIgaW5zdGFuY2UuIE5vdCBldmVyeSBkYXRhYmFzZSBlbmdpbmUgaXMgYXZhaWxhYmxlIGluIGV2ZXJ5IEFXUyBSZWdpb24uXG4gKiAgVGhpcyBwcm9wZXJ0eSBpcyByZXF1aXJlZCB3aGVuIGNyZWF0aW5nIGEgREIgaW5zdGFuY2UuXG4gKiAgIFlvdSBjYW4gY29udmVydCBhbiBPcmFjbGUgZGF0YWJhc2UgZnJvbSB0aGUgbm9uLUNEQiBhcmNoaXRlY3R1cmUgdG8gdGhlIGNvbnRhaW5lciBkYXRhYmFzZSAoQ0RCKSBhcmNoaXRlY3R1cmUgYnkgdXBkYXRpbmcgdGhlIGBgRW5naW5lYGAgdmFsdWUgaW4geW91ciB0ZW1wbGF0ZXMgZnJvbSBgYG9yYWNsZS1lZWBgIHRvIGBgb3JhY2xlLWVlLWNkYmBgIG9yIGZyb20gYGBvcmFjbGUtc2UyYGAgdG8gYGBvcmFjbGUtc2UyLWNkYmBgLiBDb252ZXJ0aW5nIHRvIHRoZSBDREIgYXJjaGl0ZWN0dXJlIHJlcXVpcmVzIGFuIGludGVycnVwdGlvbi5cbiAqICAgVmFsaWQgVmFsdWVzOlxuICogICArICBgYGF1cm9yYS1teXNxbGBgIChmb3IgQXVyb3JhIE15U1FMIERCIGluc3RhbmNlcylcbiAqICAgKyAgYGBhdXJvcmEtcG9zdGdyZXNxbGBgIChmb3IgQXVyb3JhIFBvc3RncmVTUUwgREIgaW5zdGFuY2VzKVxuICogICArICBgYGN1c3RvbS1vcmFjbGUtZWVgYCAoZm9yIFJEUyBDdXN0b20gZm9yIE9yYWNsZSBEQiBpbnN0YW5jZXMpXG4gKiAgICsgIGBgY3VzdG9tLW9yYWNsZS1lZS1jZGJgYCAoZm9yIFJEUyBDdXN0b20gZm9yIE9yYWNsZSBEQiBpbnN0YW5jZXMpXG4gKiAgICsgIGBgY3VzdG9tLXNxbHNlcnZlci1lZWBgIChmb3IgUkRTIEN1c3RvbSBmb3IgU1FMIFNlcnZlciBEQiBpbnN0YW5jZXMpXG4gKiAgICsgIGBgY3VzdG9tLXNxbHNlcnZlci1zZWBgIChmb3IgUkRTIEN1c3RvbSBmb3IgU1FMIFNlcnZlciBEQiBpbnN0YW5jZXMpXG4gKiAgICsgIGBgY3VzdG9tLXNxbHNlcnZlci13ZWJgYCAoZm9yIFJEUyBDdXN0b20gZm9yIFNRTCBTZXJ2ZXIgREIgaW5zdGFuY2VzKVxuICogICArICAgYGBkYjItYWVgYCBcbiAqICAgKyAgIGBgZGIyLXNlYGAgXG4gKiAgICsgICBgYG1hcmlhZGJgYCBcbiAqICAgKyAgIGBgbXlzcWxgYCBcbiAqICAgKyAgIGBgb3JhY2xlLWVlYGAgXG4gKiAgICsgICBgYG9yYWNsZS1lZS1jZGJgYCBcbiAqICAgKyAgIGBgb3JhY2xlLXNlMmBgIFxuICogICArICAgYGBvcmFjbGUtc2UyLWNkYmBgIFxuICogICArICAgYGBwb3N0Z3Jlc2BgIFxuICogICArICAgYGBzcWxzZXJ2ZXItZWVgYCBcbiAqICAgKyAgIGBgc3Fsc2VydmVyLXNlYGAgXG4gKiAgICsgICBgYHNxbHNlcnZlci1leGBgIFxuICogICArICAgYGBzcWxzZXJ2ZXItd2ViYGBcbiAqL1xuRW5naW5lPzogc3RyaW5nXG4vKipcbiAqIFRoZSBsaWZlIGN5Y2xlIHR5cGUgZm9yIHRoaXMgREIgaW5zdGFuY2UuXG4gKiAgIEJ5IGRlZmF1bHQsIHRoaXMgdmFsdWUgaXMgc2V0IHRvIGBgb3Blbi1zb3VyY2UtcmRzLWV4dGVuZGVkLXN1cHBvcnRgYCwgd2hpY2ggZW5yb2xscyB5b3VyIERCIGluc3RhbmNlIGludG8gQW1hem9uIFJEUyBFeHRlbmRlZCBTdXBwb3J0LiBBdCB0aGUgZW5kIG9mIHN0YW5kYXJkIHN1cHBvcnQsIHlvdSBjYW4gYXZvaWQgY2hhcmdlcyBmb3IgRXh0ZW5kZWQgU3VwcG9ydCBieSBzZXR0aW5nIHRoZSB2YWx1ZSB0byBgYG9wZW4tc291cmNlLXJkcy1leHRlbmRlZC1zdXBwb3J0LWRpc2FibGVkYGAuIEluIHRoaXMgY2FzZSwgY3JlYXRpbmcgdGhlIERCIGluc3RhbmNlIHdpbGwgZmFpbCBpZiB0aGUgREIgbWFqb3IgdmVyc2lvbiBpcyBwYXN0IGl0cyBlbmQgb2Ygc3RhbmRhcmQgc3VwcG9ydCBkYXRlLlxuICogICBUaGlzIHNldHRpbmcgYXBwbGllcyBvbmx5IHRvIFJEUyBmb3IgTXlTUUwgYW5kIFJEUyBmb3IgUG9zdGdyZVNRTC4gRm9yIEFtYXpvbiBBdXJvcmEgREIgaW5zdGFuY2VzLCB0aGUgbGlmZSBjeWNsZSB0eXBlIGlzIG1hbmFnZWQgYnkgdGhlIERCIGNsdXN0ZXIuXG4gKiAgWW91IGNhbiB1c2UgdGhpcyBzZXR0aW5nIHRvIGVucm9sbCB5b3VyIERCIGluc3RhbmNlIGludG8gQW1hem9uIFJEUyBFeHRlbmRlZCBTdXBwb3J0LiBXaXRoIFJEUyBFeHRlbmRlZCBTdXBwb3J0LCB5b3UgY2FuIHJ1biB0aGUgc2VsZWN0ZWQgbWFqb3IgZW5naW5lIHZlcnNpb24gb24geW91ciBEQiBpbnN0YW5jZSBwYXN0IHRoZSBlbmQgb2Ygc3RhbmRhcmQgc3VwcG9ydCBmb3IgdGhhdCBlbmdpbmUgdmVyc2lvbi4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbQW1hem9uIFJEUyBFeHRlbmRlZCBTdXBwb3J0IHdpdGggQW1hem9uIFJEU10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvVXNlckd1aWRlL2V4dGVuZGVkLXN1cHBvcnQuaHRtbCkgaW4gdGhlICpBbWF6b24gUkRTIFVzZXIgR3VpZGUqLlxuICogIFZhbGlkIFZhbHVlczogYGBvcGVuLXNvdXJjZS1yZHMtZXh0ZW5kZWQtc3VwcG9ydCB8IG9wZW4tc291cmNlLXJkcy1leHRlbmRlZC1zdXBwb3J0LWRpc2FibGVkYGBcbiAqICBEZWZhdWx0OiBgYG9wZW4tc291cmNlLXJkcy1leHRlbmRlZC1zdXBwb3J0YGBcbiAqL1xuRW5naW5lTGlmZWN5Y2xlU3VwcG9ydD86IHN0cmluZ1xuLyoqXG4gKiBUaGUgdmVyc2lvbiBudW1iZXIgb2YgdGhlIGRhdGFiYXNlIGVuZ2luZSB0byB1c2UuXG4gKiAgRm9yIGEgbGlzdCBvZiB2YWxpZCBlbmdpbmUgdmVyc2lvbnMsIHVzZSB0aGUgYGBEZXNjcmliZURCRW5naW5lVmVyc2lvbnNgYCBhY3Rpb24uXG4gKiAgVGhlIGZvbGxvd2luZyBhcmUgdGhlIGRhdGFiYXNlIGVuZ2luZXMgYW5kIGxpbmtzIHRvIGluZm9ybWF0aW9uIGFib3V0IHRoZSBtYWpvciBhbmQgbWlub3IgdmVyc2lvbnMgdGhhdCBhcmUgYXZhaWxhYmxlIHdpdGggQW1hem9uIFJEUy4gTm90IGV2ZXJ5IGRhdGFiYXNlIGVuZ2luZSBpcyBhdmFpbGFibGUgZm9yIGV2ZXJ5IEFXUyBSZWdpb24uXG4gKiAgICpBbWF6b24gQXVyb3JhKiBcbiAqICBOb3QgYXBwbGljYWJsZS4gVGhlIHZlcnNpb24gbnVtYmVyIG9mIHRoZSBkYXRhYmFzZSBlbmdpbmUgdG8gYmUgdXNlZCBieSB0aGUgREIgaW5zdGFuY2UgaXMgbWFuYWdlZCBieSB0aGUgREIgY2x1c3Rlci5cbiAqICAgKkRiMiogXG4gKiAgU2VlIFtBbWF6b24gUkRTIGZvciBEYjJdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L1VzZXJHdWlkZS9DSEFQX0RiMi5odG1sI0RiMi5Db25jZXB0cy5WZXJzaW9uTWdtdCkgaW4gdGhlICpBbWF6b24gUkRTIFVzZXIgR3VpZGUuKlxuICogICAqTWFyaWFEQiogXG4gKiAgU2VlIFtNYXJpYURCIG9uIEFtYXpvbiBSRFMgVmVyc2lvbnNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L1VzZXJHdWlkZS9DSEFQX01hcmlhREIuaHRtbCNNYXJpYURCLkNvbmNlcHRzLlZlcnNpb25NZ210KSBpbiB0aGUgKkFtYXpvbiBSRFMgVXNlciBHdWlkZS4qXG4gKiAgICpNaWNyb3NvZnQgU1FMIFNlcnZlciogXG4gKiAgU2VlIFtNaWNyb3NvZnQgU1FMIFNlcnZlciBWZXJzaW9ucyBvbiBBbWF6b24gUkRTXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUkRTL2xhdGVzdC9Vc2VyR3VpZGUvQ0hBUF9TUUxTZXJ2ZXIuaHRtbCNTUUxTZXJ2ZXIuQ29uY2VwdHMuR2VuZXJhbC5WZXJzaW9uU3VwcG9ydCkgaW4gdGhlICpBbWF6b24gUkRTIFVzZXIgR3VpZGUuKlxuICogICAqTXlTUUwqIFxuICogIFNlZSBbTXlTUUwgb24gQW1hem9uIFJEUyBWZXJzaW9uc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvVXNlckd1aWRlL0NIQVBfTXlTUUwuaHRtbCNNeVNRTC5Db25jZXB0cy5WZXJzaW9uTWdtdCkgaW4gdGhlICpBbWF6b24gUkRTIFVzZXIgR3VpZGUuKlxuICogICAqT3JhY2xlKiBcbiAqICBTZWUgW09yYWNsZSBEYXRhYmFzZSBFbmdpbmUgUmVsZWFzZSBOb3Rlc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvVXNlckd1aWRlL0FwcGVuZGl4Lk9yYWNsZS5QYXRjaENvbXBvc2l0aW9uLmh0bWwpIGluIHRoZSAqQW1hem9uIFJEUyBVc2VyIEd1aWRlLipcbiAqICAgKlBvc3RncmVTUUwqIFxuICogIFNlZSBbU3VwcG9ydGVkIFBvc3RncmVTUUwgRGF0YWJhc2UgVmVyc2lvbnNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L1VzZXJHdWlkZS9DSEFQX1Bvc3RncmVTUUwuaHRtbCNQb3N0Z3JlU1FMLkNvbmNlcHRzLkdlbmVyYWwuREJWZXJzaW9ucykgaW4gdGhlICpBbWF6b24gUkRTIFVzZXIgR3VpZGUuKlxuICovXG5FbmdpbmVWZXJzaW9uPzogc3RyaW5nXG4vKipcbiAqIFNwZWNpZmllcyB3aGV0aGVyIHRvIG1hbmFnZSB0aGUgbWFzdGVyIHVzZXIgcGFzc3dvcmQgd2l0aCBBV1MgU2VjcmV0cyBNYW5hZ2VyLlxuICogIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW1Bhc3N3b3JkIG1hbmFnZW1lbnQgd2l0aCBTZWNyZXRzIE1hbmFnZXJdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L1VzZXJHdWlkZS9yZHMtc2VjcmV0cy1tYW5hZ2VyLmh0bWwpIGluIHRoZSAqQW1hem9uIFJEUyBVc2VyIEd1aWRlLipcbiAqICBDb25zdHJhaW50czpcbiAqICAgKyAgQ2FuJ3QgbWFuYWdlIHRoZSBtYXN0ZXIgdXNlciBwYXNzd29yZCB3aXRoIEFXUyBTZWNyZXRzIE1hbmFnZXIgaWYgYGBNYXN0ZXJVc2VyUGFzc3dvcmRgYCBpcyBzcGVjaWZpZWQuXG4gKi9cbk1hbmFnZU1hc3RlclVzZXJQYXNzd29yZD86IGJvb2xlYW5cbkluc3RhbmNlQ3JlYXRlVGltZT86IHN0cmluZ1xuLyoqXG4gKiBUaGUgbnVtYmVyIG9mIEkvTyBvcGVyYXRpb25zIHBlciBzZWNvbmQgKElPUFMpIHRoYXQgdGhlIGRhdGFiYXNlIHByb3Zpc2lvbnMuIFRoZSB2YWx1ZSBtdXN0IGJlIGVxdWFsIHRvIG9yIGdyZWF0ZXIgdGhhbiAxMDAwLiBcbiAqICBJZiB5b3Ugc3BlY2lmeSB0aGlzIHByb3BlcnR5LCB5b3UgbXVzdCBmb2xsb3cgdGhlIHJhbmdlIG9mIGFsbG93ZWQgcmF0aW9zIG9mIHlvdXIgcmVxdWVzdGVkIElPUFMgcmF0ZSB0byB0aGUgYW1vdW50IG9mIHN0b3JhZ2UgdGhhdCB5b3UgYWxsb2NhdGUgKElPUFMgdG8gYWxsb2NhdGVkIHN0b3JhZ2UpLiBGb3IgZXhhbXBsZSwgeW91IGNhbiBwcm92aXNpb24gYW4gT3JhY2xlIGRhdGFiYXNlIGluc3RhbmNlIHdpdGggMTAwMCBJT1BTIGFuZCAyMDAgR2lCIG9mIHN0b3JhZ2UgKGEgcmF0aW8gb2YgNToxKSwgb3Igc3BlY2lmeSAyMDAwIElPUFMgd2l0aCAyMDAgR2lCIG9mIHN0b3JhZ2UgKGEgcmF0aW8gb2YgMTA6MSkuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW0FtYXpvbiBSRFMgUHJvdmlzaW9uZWQgSU9QUyBTdG9yYWdlIHRvIEltcHJvdmUgUGVyZm9ybWFuY2VdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L0RldmVsb3Blckd1aWRlL0NIQVBfU3RvcmFnZS5odG1sI1VTRVJfUElPUFMpIGluIHRoZSAqQW1hem9uIFJEUyBVc2VyIEd1aWRlKi5cbiAqICAgSWYgeW91IHNwZWNpZnkgYGBpbzFgYCBmb3IgdGhlIGBgU3RvcmFnZVR5cGVgYCBwcm9wZXJ0eSwgdGhlbiB5b3UgbXVzdCBhbHNvIHNwZWNpZnkgdGhlIGBgSW9wc2BgIHByb3BlcnR5LlxuICogICBDb25zdHJhaW50czpcbiAqICAgKyAgRm9yIFJEUyBmb3IgRGIyLCBNYXJpYURCLCBNeVNRTCwgT3JhY2xlLCBhbmQgUG9zdGdyZVNRTCAtIE11c3QgYmUgYSBtdWx0aXBsZSBiZXR3ZWVuIC41IGFuZCA1MCBvZiB0aGUgc3RvcmFnZSBhbW91bnQgZm9yIHRoZSBEQiBpbnN0YW5jZS5cbiAqICAgKyAgRm9yIFJEUyBmb3IgU1FMIFNlcnZlciAtIE11c3QgYmUgYSBtdWx0aXBsZSBiZXR3ZWVuIDEgYW5kIDUwIG9mIHRoZSBzdG9yYWdlIGFtb3VudCBmb3IgdGhlIERCIGluc3RhbmNlLlxuICovXG5Jb3BzPzogbnVtYmVyXG5Jc1N0b3JhZ2VDb25maWdVcGdyYWRlQXZhaWxhYmxlPzogYm9vbGVhblxuLyoqXG4gKiBUaGUgQVJOIG9mIHRoZSBBV1MgS01TIGtleSB0aGF0J3MgdXNlZCB0byBlbmNyeXB0IHRoZSBEQiBpbnN0YW5jZSwgc3VjaCBhcyBgYGFybjphd3M6a21zOnVzLWVhc3QtMTowMTIzNDU2Nzg5MTA6a2V5L2FiY2QxMjM0LWExMjMtNDU2YS1hMTJiLWExMjNiNGNkNTZlZmBgLiBJZiB5b3UgZW5hYmxlIHRoZSBTdG9yYWdlRW5jcnlwdGVkIHByb3BlcnR5IGJ1dCBkb24ndCBzcGVjaWZ5IHRoaXMgcHJvcGVydHksIEFXUyBDbG91ZEZvcm1hdGlvbiB1c2VzIHRoZSBkZWZhdWx0IEtNUyBrZXkuIElmIHlvdSBzcGVjaWZ5IHRoaXMgcHJvcGVydHksIHlvdSBtdXN0IHNldCB0aGUgU3RvcmFnZUVuY3J5cHRlZCBwcm9wZXJ0eSB0byB0cnVlLiBcbiAqICBJZiB5b3Ugc3BlY2lmeSB0aGUgYGBTb3VyY2VEQkluc3RhbmNlSWRlbnRpZmllcmBgIG9yIGBgU291cmNlRGJpUmVzb3VyY2VJZGBgIHByb3BlcnR5LCBkb24ndCBzcGVjaWZ5IHRoaXMgcHJvcGVydHkuIFRoZSB2YWx1ZSBpcyBpbmhlcml0ZWQgZnJvbSB0aGUgc291cmNlIERCIGluc3RhbmNlLCBhbmQgaWYgdGhlIERCIGluc3RhbmNlIGlzIGVuY3J5cHRlZCwgdGhlIHNwZWNpZmllZCBgYEttc0tleUlkYGAgcHJvcGVydHkgaXMgdXNlZC4gSG93ZXZlciwgaWYgdGhlIHNvdXJjZSBEQiBpbnN0YW5jZSBpcyBpbiBhIGRpZmZlcmVudCBBV1MgUmVnaW9uLCB5b3UgbXVzdCBzcGVjaWZ5IGEgS01TIGtleSBJRC5cbiAqICBJZiB5b3Ugc3BlY2lmeSB0aGUgYGBTb3VyY2VEQkluc3RhbmNlQXV0b21hdGVkQmFja3Vwc0FybmBgIHByb3BlcnR5LCBkb24ndCBzcGVjaWZ5IHRoaXMgcHJvcGVydHkuIFRoZSB2YWx1ZSBpcyBpbmhlcml0ZWQgZnJvbSB0aGUgc291cmNlIERCIGluc3RhbmNlIGF1dG9tYXRlZCBiYWNrdXAsIGFuZCBpZiB0aGUgYXV0b21hdGVkIGJhY2t1cCBpcyBlbmNyeXB0ZWQsIHRoZSBzcGVjaWZpZWQgYGBLbXNLZXlJZGBgIHByb3BlcnR5IGlzIHVzZWQuXG4gKiAgSWYgeW91IGNyZWF0ZSBhbiBlbmNyeXB0ZWQgcmVhZCByZXBsaWNhIGluIGEgZGlmZmVyZW50IEFXUyBSZWdpb24sIHRoZW4geW91IG11c3Qgc3BlY2lmeSBhIEtNUyBrZXkgZm9yIHRoZSBkZXN0aW5hdGlvbiBBV1MgUmVnaW9uLiBLTVMgZW5jcnlwdGlvbiBrZXlzIGFyZSBzcGVjaWZpYyB0byB0aGUgcmVnaW9uIHRoYXQgdGhleSdyZSBjcmVhdGVkIGluLCBhbmQgeW91IGNhbid0IHVzZSBlbmNyeXB0aW9uIGtleXMgZnJvbSBvbmUgcmVnaW9uIGluIGFub3RoZXIgcmVnaW9uLlxuICogIElmIHlvdSBzcGVjaWZ5IHRoZSBgYERCU25hcHNob3RJZGVudGlmaWVyYGAgcHJvcGVydHksIGRvbid0IHNwZWNpZnkgdGhpcyBwcm9wZXJ0eS4gVGhlIGBgU3RvcmFnZUVuY3J5cHRlZGBgIHByb3BlcnR5IHZhbHVlIGlzIGluaGVyaXRlZCBmcm9tIHRoZSBzbmFwc2hvdC4gSWYgdGhlIERCIGluc3RhbmNlIGlzIGVuY3J5cHRlZCwgdGhlIHNwZWNpZmllZCBgYEttc0tleUlkYGAgcHJvcGVydHkgaXMgYWxzbyBpbmhlcml0ZWQgZnJvbSB0aGUgc25hcHNob3QuXG4gKiAgSWYgeW91IHNwZWNpZnkgYGBEQlNlY3VyaXR5R3JvdXBzYGAsIEFXUyBDbG91ZEZvcm1hdGlvbiBpZ25vcmVzIHRoaXMgcHJvcGVydHkuIFRvIHNwZWNpZnkgYm90aCBhIHNlY3VyaXR5IGdyb3VwIGFuZCB0aGlzIHByb3BlcnR5LCB5b3UgbXVzdCB1c2UgYSBWUEMgc2VjdXJpdHkgZ3JvdXAuIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IEFtYXpvbiBSRFMgYW5kIFZQQywgc2VlIFtVc2luZyBBbWF6b24gUkRTIHdpdGggQW1hem9uIFZQQ10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvVXNlckd1aWRlL1VTRVJfVlBDLmh0bWwpIGluIHRoZSAqQW1hem9uIFJEUyBVc2VyIEd1aWRlKi5cbiAqICAgKkFtYXpvbiBBdXJvcmEqIFxuICogIE5vdCBhcHBsaWNhYmxlLiBUaGUgS01TIGtleSBpZGVudGlmaWVyIGlzIG1hbmFnZWQgYnkgdGhlIERCIGNsdXN0ZXIuXG4gKi9cbkttc0tleUlkPzogc3RyaW5nXG5MYXRlc3RSZXN0b3JhYmxlVGltZT86IHN0cmluZ1xuLyoqXG4gKiBMaWNlbnNlIG1vZGVsIGluZm9ybWF0aW9uIGZvciB0aGlzIERCIGluc3RhbmNlLlxuICogICBWYWxpZCBWYWx1ZXM6XG4gKiAgICsgIEF1cm9yYSBNeVNRTCAtIGBgZ2VuZXJhbC1wdWJsaWMtbGljZW5zZWBgXG4gKiAgICsgIEF1cm9yYSBQb3N0Z3JlU1FMIC0gYGBwb3N0Z3Jlc3FsLWxpY2Vuc2VgYFxuICogICArICBSRFMgZm9yIERiMiAtIGBgYnJpbmcteW91ci1vd24tbGljZW5zZWBgLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCBSRFMgZm9yIERiMiBsaWNlbnNpbmcsIHNlZSBbXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUkRTL2xhdGVzdC9Vc2VyR3VpZGUvZGIyLWxpY2Vuc2luZy5odG1sKSBpbiB0aGUgKkFtYXpvbiBSRFMgVXNlciBHdWlkZS4qXG4gKiAgICsgIFJEUyBmb3IgTWFyaWFEQiAtIGBgZ2VuZXJhbC1wdWJsaWMtbGljZW5zZWBgXG4gKiAgICsgIFJEUyBmb3IgTWljcm9zb2Z0IFNRTCBTZXJ2ZXIgLSBgYGxpY2Vuc2UtaW5jbHVkZWRgYFxuICogICArICBSRFMgZm9yIE15U1FMIC0gYGBnZW5lcmFsLXB1YmxpYy1saWNlbnNlYGBcbiAqICAgKyAgUkRTIGZvciBPcmFjbGUgLSBgYGJyaW5nLXlvdXItb3duLWxpY2Vuc2VgYCBvciBgYGxpY2Vuc2UtaW5jbHVkZWRgYFxuICogICArICBSRFMgZm9yIFBvc3RncmVTUUwgLSBgYHBvc3RncmVzcWwtbGljZW5zZWBgXG4gKiAgIFxuICogICBJZiB5b3UndmUgc3BlY2lmaWVkIGBgREJTZWN1cml0eUdyb3Vwc2BgIGFuZCB0aGVuIHlvdSB1cGRhdGUgdGhlIGxpY2Vuc2UgbW9kZWwsIEFXUyBDbG91ZEZvcm1hdGlvbiByZXBsYWNlcyB0aGUgdW5kZXJseWluZyBEQiBpbnN0YW5jZS4gVGhpcyB3aWxsIGluY3VyIHNvbWUgaW50ZXJydXB0aW9ucyB0byBkYXRhYmFzZSBhdmFpbGFiaWxpdHkuXG4gKi9cbkxpY2Vuc2VNb2RlbD86IHN0cmluZ1xuTGlzdGVuZXJFbmRwb2ludD86IEVuZHBvaW50MVxuLyoqXG4gKiBTcGVjaWZpZXMgdGhlIGF1dGhlbnRpY2F0aW9uIHR5cGUgZm9yIHRoZSBtYXN0ZXIgdXNlci4gV2l0aCBJQU0gbWFzdGVyIHVzZXIgYXV0aGVudGljYXRpb24sIHlvdSBjYW4gY29uZmlndXJlIHRoZSBtYXN0ZXIgREIgdXNlciB3aXRoIElBTSBkYXRhYmFzZSBhdXRoZW50aWNhdGlvbiB3aGVuIHlvdSBjcmVhdGUgYSBEQiBpbnN0YW5jZS5cbiAqICBZb3UgY2FuIHNwZWNpZnkgb25lIG9mIHRoZSBmb2xsb3dpbmcgdmFsdWVzOlxuICogICArICBgYHBhc3N3b3JkYGAgLSBVc2Ugc3RhbmRhcmQgZGF0YWJhc2UgYXV0aGVudGljYXRpb24gd2l0aCBhIHBhc3N3b3JkLlxuICogICArICBgYGlhbS1kYi1hdXRoYGAgLSBVc2UgSUFNIGRhdGFiYXNlIGF1dGhlbnRpY2F0aW9uIGZvciB0aGUgbWFzdGVyIHVzZXIuXG4gKiAgIFxuICogIFRoaXMgb3B0aW9uIGlzIG9ubHkgdmFsaWQgZm9yIFJEUyBmb3IgTXlTUUwsIFJEUyBmb3IgTWFyaWFEQiwgUkRTIGZvciBQb3N0Z3JlU1FMLCBBdXJvcmEgTXlTUUwsIGFuZCBBdXJvcmEgUG9zdGdyZVNRTCBlbmdpbmVzLlxuICovXG5NYXN0ZXJVc2VyQXV0aGVudGljYXRpb25UeXBlPzogc3RyaW5nXG4vKipcbiAqIFRoZSBtYXN0ZXIgdXNlciBuYW1lIGZvciB0aGUgREIgaW5zdGFuY2UuXG4gKiAgIElmIHlvdSBzcGVjaWZ5IHRoZSBgYFNvdXJjZURCSW5zdGFuY2VJZGVudGlmaWVyYGAgb3IgYGBEQlNuYXBzaG90SWRlbnRpZmllcmBgIHByb3BlcnR5LCBkb24ndCBzcGVjaWZ5IHRoaXMgcHJvcGVydHkuIFRoZSB2YWx1ZSBpcyBpbmhlcml0ZWQgZnJvbSB0aGUgc291cmNlIERCIGluc3RhbmNlIG9yIHNuYXBzaG90LlxuICogIFdoZW4gbWlncmF0aW5nIGEgc2VsZi1tYW5hZ2VkIERiMiBkYXRhYmFzZSwgd2UgcmVjb21tZW5kIHRoYXQgeW91IHVzZSB0aGUgc2FtZSBtYXN0ZXIgdXNlcm5hbWUgYXMgeW91ciBzZWxmLW1hbmFnZWQgRGIyIGluc3RhbmNlIG5hbWUuXG4gKiAgICAqQW1hem9uIEF1cm9yYSogXG4gKiAgTm90IGFwcGxpY2FibGUuIFRoZSBuYW1lIGZvciB0aGUgbWFzdGVyIHVzZXIgaXMgbWFuYWdlZCBieSB0aGUgREIgY2x1c3Rlci4gXG4gKiAgICpSRFMgZm9yIERiMiogXG4gKiAgQ29uc3RyYWludHM6XG4gKiAgICsgIE11c3QgYmUgMSB0byAxNiBsZXR0ZXJzIG9yIG51bWJlcnMuXG4gKiAgICsgIEZpcnN0IGNoYXJhY3RlciBtdXN0IGJlIGEgbGV0dGVyLlxuICogICArICBDYW4ndCBiZSBhIHJlc2VydmVkIHdvcmQgZm9yIHRoZSBjaG9zZW4gZGF0YWJhc2UgZW5naW5lLlxuICogICBcbiAqICAgKlJEUyBmb3IgTWFyaWFEQiogXG4gKiAgQ29uc3RyYWludHM6XG4gKiAgICsgIE11c3QgYmUgMSB0byAxNiBsZXR0ZXJzIG9yIG51bWJlcnMuXG4gKiAgICsgIENhbid0IGJlIGEgcmVzZXJ2ZWQgd29yZCBmb3IgdGhlIGNob3NlbiBkYXRhYmFzZSBlbmdpbmUuXG4gKiAgIFxuICogICAqUkRTIGZvciBNaWNyb3NvZnQgU1FMIFNlcnZlciogXG4gKiAgQ29uc3RyYWludHM6XG4gKiAgICsgIE11c3QgYmUgMSB0byAxMjggbGV0dGVycyBvciBudW1iZXJzLlxuICogICArICBGaXJzdCBjaGFyYWN0ZXIgbXVzdCBiZSBhIGxldHRlci5cbiAqICAgKyAgQ2FuJ3QgYmUgYSByZXNlcnZlZCB3b3JkIGZvciB0aGUgY2hvc2VuIGRhdGFiYXNlIGVuZ2luZS5cbiAqICAgXG4gKiAgICpSRFMgZm9yIE15U1FMKiBcbiAqICBDb25zdHJhaW50czpcbiAqICAgKyAgTXVzdCBiZSAxIHRvIDE2IGxldHRlcnMgb3IgbnVtYmVycy5cbiAqICAgKyAgRmlyc3QgY2hhcmFjdGVyIG11c3QgYmUgYSBsZXR0ZXIuXG4gKiAgICsgIENhbid0IGJlIGEgcmVzZXJ2ZWQgd29yZCBmb3IgdGhlIGNob3NlbiBkYXRhYmFzZSBlbmdpbmUuXG4gKiAgIFxuICogICAqUkRTIGZvciBPcmFjbGUqIFxuICogIENvbnN0cmFpbnRzOlxuICogICArICBNdXN0IGJlIDEgdG8gMzAgbGV0dGVycyBvciBudW1iZXJzLlxuICogICArICBGaXJzdCBjaGFyYWN0ZXIgbXVzdCBiZSBhIGxldHRlci5cbiAqICAgKyAgQ2FuJ3QgYmUgYSByZXNlcnZlZCB3b3JkIGZvciB0aGUgY2hvc2VuIGRhdGFiYXNlIGVuZ2luZS5cbiAqICAgXG4gKiAgICpSRFMgZm9yIFBvc3RncmVTUUwqIFxuICogIENvbnN0cmFpbnRzOlxuICogICArICBNdXN0IGJlIDEgdG8gNjMgbGV0dGVycyBvciBudW1iZXJzLlxuICogICArICBGaXJzdCBjaGFyYWN0ZXIgbXVzdCBiZSBhIGxldHRlci5cbiAqICAgKyAgQ2FuJ3QgYmUgYSByZXNlcnZlZCB3b3JkIGZvciB0aGUgY2hvc2VuIGRhdGFiYXNlIGVuZ2luZS5cbiAqL1xuTWFzdGVyVXNlcm5hbWU/OiBzdHJpbmdcbi8qKlxuICogVGhlIHBhc3N3b3JkIGZvciB0aGUgbWFzdGVyIHVzZXIuIFRoZSBwYXNzd29yZCBjYW4gaW5jbHVkZSBhbnkgcHJpbnRhYmxlIEFTQ0lJIGNoYXJhY3RlciBleGNlcHQgXCIvXCIsIFwiXCJcIiwgb3IgXCJAXCIuXG4gKiAgICpBbWF6b24gQXVyb3JhKiBcbiAqICBOb3QgYXBwbGljYWJsZS4gVGhlIHBhc3N3b3JkIGZvciB0aGUgbWFzdGVyIHVzZXIgaXMgbWFuYWdlZCBieSB0aGUgREIgY2x1c3Rlci5cbiAqICAgKlJEUyBmb3IgRGIyKiBcbiAqICBNdXN0IGNvbnRhaW4gZnJvbSA4IHRvIDI1NSBjaGFyYWN0ZXJzLlxuICogICAqUkRTIGZvciBNYXJpYURCKiBcbiAqICBDb25zdHJhaW50czogTXVzdCBjb250YWluIGZyb20gOCB0byA0MSBjaGFyYWN0ZXJzLlxuICogICAqUkRTIGZvciBNaWNyb3NvZnQgU1FMIFNlcnZlciogXG4gKiAgQ29uc3RyYWludHM6IE11c3QgY29udGFpbiBmcm9tIDggdG8gMTI4IGNoYXJhY3RlcnMuXG4gKiAgICpSRFMgZm9yIE15U1FMKiBcbiAqICBDb25zdHJhaW50czogTXVzdCBjb250YWluIGZyb20gOCB0byA0MSBjaGFyYWN0ZXJzLlxuICogICAqUkRTIGZvciBPcmFjbGUqIFxuICogIENvbnN0cmFpbnRzOiBNdXN0IGNvbnRhaW4gZnJvbSA4IHRvIDMwIGNoYXJhY3RlcnMuXG4gKiAgICpSRFMgZm9yIFBvc3RncmVTUUwqIFxuICogIENvbnN0cmFpbnRzOiBNdXN0IGNvbnRhaW4gZnJvbSA4IHRvIDEyOCBjaGFyYWN0ZXJzLlxuICovXG5NYXN0ZXJVc2VyUGFzc3dvcmQ/OiBzdHJpbmdcbk1hc3RlclVzZXJTZWNyZXQ/OiBNYXN0ZXJVc2VyU2VjcmV0XG4vKipcbiAqIFRoZSB1cHBlciBsaW1pdCBpbiBnaWJpYnl0ZXMgKEdpQikgdG8gd2hpY2ggQW1hem9uIFJEUyBjYW4gYXV0b21hdGljYWxseSBzY2FsZSB0aGUgc3RvcmFnZSBvZiB0aGUgREIgaW5zdGFuY2UuXG4gKiAgRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhpcyBzZXR0aW5nLCBpbmNsdWRpbmcgbGltaXRhdGlvbnMgdGhhdCBhcHBseSB0byBpdCwgc2VlIFtNYW5hZ2luZyBjYXBhY2l0eSBhdXRvbWF0aWNhbGx5IHdpdGggQW1hem9uIFJEUyBzdG9yYWdlIGF1dG9zY2FsaW5nXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUkRTL2xhdGVzdC9Vc2VyR3VpZGUvVVNFUl9QSU9QUy5TdG9yYWdlVHlwZXMuaHRtbCNVU0VSX1BJT1BTLkF1dG9zY2FsaW5nKSBpbiB0aGUgKkFtYXpvbiBSRFMgVXNlciBHdWlkZSouXG4gKiAgVGhpcyBzZXR0aW5nIGRvZXNuJ3QgYXBwbHkgdG8gdGhlIGZvbGxvd2luZyBEQiBpbnN0YW5jZXM6XG4gKiAgICsgIEFtYXpvbiBBdXJvcmEgKFN0b3JhZ2UgaXMgbWFuYWdlZCBieSB0aGUgREIgY2x1c3Rlci4pXG4gKiAgICsgIFJEUyBDdXN0b21cbiAqL1xuTWF4QWxsb2NhdGVkU3RvcmFnZT86IG51bWJlclxuLyoqXG4gKiBUaGUgaW50ZXJ2YWwsIGluIHNlY29uZHMsIGJldHdlZW4gcG9pbnRzIHdoZW4gRW5oYW5jZWQgTW9uaXRvcmluZyBtZXRyaWNzIGFyZSBjb2xsZWN0ZWQgZm9yIHRoZSBEQiBpbnN0YW5jZS4gVG8gZGlzYWJsZSBjb2xsZWN0aW9uIG9mIEVuaGFuY2VkIE1vbml0b3JpbmcgbWV0cmljcywgc3BlY2lmeSBgYDBgYC5cbiAqICBJZiBgYE1vbml0b3JpbmdSb2xlQXJuYGAgaXMgc3BlY2lmaWVkLCB0aGVuIHlvdSBtdXN0IHNldCBgYE1vbml0b3JpbmdJbnRlcnZhbGBgIHRvIGEgdmFsdWUgb3RoZXIgdGhhbiBgYDBgYC5cbiAqICBUaGlzIHNldHRpbmcgZG9lc24ndCBhcHBseSB0byBSRFMgQ3VzdG9tIERCIGluc3RhbmNlcy5cbiAqICBWYWxpZCBWYWx1ZXM6IGBgMCB8IDEgfCA1IHwgMTAgfCAxNSB8IDMwIHwgNjBgYFxuICogIERlZmF1bHQ6IGBgMGBgXG4gKi9cbk1vbml0b3JpbmdJbnRlcnZhbD86IG51bWJlclxuLyoqXG4gKiBUaGUgQVJOIGZvciB0aGUgSUFNIHJvbGUgdGhhdCBwZXJtaXRzIFJEUyB0byBzZW5kIGVuaGFuY2VkIG1vbml0b3JpbmcgbWV0cmljcyB0byBBbWF6b24gQ2xvdWRXYXRjaCBMb2dzLiBGb3IgZXhhbXBsZSwgYGBhcm46YXdzOmlhbToxMjM0NTY3ODkwMTI6cm9sZS9lbWFjY2Vzc2BgLiBGb3IgaW5mb3JtYXRpb24gb24gY3JlYXRpbmcgYSBtb25pdG9yaW5nIHJvbGUsIHNlZSBbU2V0dGluZyBVcCBhbmQgRW5hYmxpbmcgRW5oYW5jZWQgTW9uaXRvcmluZ10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvVXNlckd1aWRlL1VTRVJfTW9uaXRvcmluZy5PUy5odG1sI1VTRVJfTW9uaXRvcmluZy5PUy5FbmFibGluZykgaW4gdGhlICpBbWF6b24gUkRTIFVzZXIgR3VpZGUqLlxuICogIElmIGBgTW9uaXRvcmluZ0ludGVydmFsYGAgaXMgc2V0IHRvIGEgdmFsdWUgb3RoZXIgdGhhbiBgYDBgYCwgdGhlbiB5b3UgbXVzdCBzdXBwbHkgYSBgYE1vbml0b3JpbmdSb2xlQXJuYGAgdmFsdWUuXG4gKiAgVGhpcyBzZXR0aW5nIGRvZXNuJ3QgYXBwbHkgdG8gUkRTIEN1c3RvbSBEQiBpbnN0YW5jZXMuXG4gKi9cbk1vbml0b3JpbmdSb2xlQXJuPzogc3RyaW5nXG4vKipcbiAqIFNwZWNpZmllcyB3aGV0aGVyIHRoZSBEQiBpbnN0YW5jZSBpcyBhIE11bHRpLUFaIGRlcGxveW1lbnQuIFlvdSBjYW4ndCBzZXQgdGhlIGBgQXZhaWxhYmlsaXR5Wm9uZWBgIHBhcmFtZXRlciBpZiB0aGUgREIgaW5zdGFuY2UgaXMgYSBNdWx0aS1BWiBkZXBsb3ltZW50LlxuICogIFRoaXMgc2V0dGluZyBkb2Vzbid0IGFwcGx5IHRvIEFtYXpvbiBBdXJvcmEgYmVjYXVzZSB0aGUgREIgaW5zdGFuY2UgQXZhaWxhYmlsaXR5IFpvbmVzIChBWnMpIGFyZSBtYW5hZ2VkIGJ5IHRoZSBEQiBjbHVzdGVyLlxuICovXG5NdWx0aUFaPzogYm9vbGVhblxuLyoqXG4gKiBUaGUgbmFtZSBvZiB0aGUgTkNIQVIgY2hhcmFjdGVyIHNldCBmb3IgdGhlIE9yYWNsZSBEQiBpbnN0YW5jZS5cbiAqICBUaGlzIHNldHRpbmcgZG9lc24ndCBhcHBseSB0byBSRFMgQ3VzdG9tIERCIGluc3RhbmNlcy5cbiAqL1xuTmNoYXJDaGFyYWN0ZXJTZXROYW1lPzogc3RyaW5nXG4vKipcbiAqIFRoZSBuZXR3b3JrIHR5cGUgb2YgdGhlIERCIGluc3RhbmNlLlxuICogIFZhbGlkIHZhbHVlczpcbiAqICAgKyAgIGBgSVBWNGBgIFxuICogICArICAgYGBEVUFMYGAgXG4gKiAgIFxuICogIFRoZSBuZXR3b3JrIHR5cGUgaXMgZGV0ZXJtaW5lZCBieSB0aGUgYGBEQlN1Ym5ldEdyb3VwYGAgc3BlY2lmaWVkIGZvciB0aGUgREIgaW5zdGFuY2UuIEEgYGBEQlN1Ym5ldEdyb3VwYGAgY2FuIHN1cHBvcnQgb25seSB0aGUgSVB2NCBwcm90b2NvbCBvciB0aGUgSVB2NCBhbmQgSVB2NiBwcm90b2NvbHMgKGBgRFVBTGBgKS5cbiAqICBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtXb3JraW5nIHdpdGggYSBEQiBpbnN0YW5jZSBpbiBhIFZQQ10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvVXNlckd1aWRlL1VTRVJfVlBDLldvcmtpbmdXaXRoUkRTSW5zdGFuY2VpbmFWUEMuaHRtbCkgaW4gdGhlICpBbWF6b24gUkRTIFVzZXIgR3VpZGUuKlxuICovXG5OZXR3b3JrVHlwZT86IHN0cmluZ1xuLyoqXG4gKiBJbmRpY2F0ZXMgdGhhdCB0aGUgREIgaW5zdGFuY2Ugc2hvdWxkIGJlIGFzc29jaWF0ZWQgd2l0aCB0aGUgc3BlY2lmaWVkIG9wdGlvbiBncm91cC5cbiAqICBQZXJtYW5lbnQgb3B0aW9ucywgc3VjaCBhcyB0aGUgVERFIG9wdGlvbiBmb3IgT3JhY2xlIEFkdmFuY2VkIFNlY3VyaXR5IFRERSwgY2FuJ3QgYmUgcmVtb3ZlZCBmcm9tIGFuIG9wdGlvbiBncm91cC4gQWxzbywgdGhhdCBvcHRpb24gZ3JvdXAgY2FuJ3QgYmUgcmVtb3ZlZCBmcm9tIGEgREIgaW5zdGFuY2Ugb25jZSBpdCBpcyBhc3NvY2lhdGVkIHdpdGggYSBEQiBpbnN0YW5jZS5cbiAqL1xuT3B0aW9uR3JvdXBOYW1lPzogc3RyaW5nXG5QZXJjZW50UHJvZ3Jlc3M/OiBzdHJpbmdcbi8qKlxuICogVGhlIEFXUyBLTVMga2V5IGlkZW50aWZpZXIgZm9yIGVuY3J5cHRpb24gb2YgUGVyZm9ybWFuY2UgSW5zaWdodHMgZGF0YS5cbiAqICBUaGUgS01TIGtleSBpZGVudGlmaWVyIGlzIHRoZSBrZXkgQVJOLCBrZXkgSUQsIGFsaWFzIEFSTiwgb3IgYWxpYXMgbmFtZSBmb3IgdGhlIEtNUyBrZXkuXG4gKiAgSWYgeW91IGRvIG5vdCBzcGVjaWZ5IGEgdmFsdWUgZm9yIGBgUGVyZm9ybWFuY2VJbnNpZ2h0c0tNU0tleUlkYGAsIHRoZW4gQW1hem9uIFJEUyB1c2VzIHlvdXIgZGVmYXVsdCBLTVMga2V5LiBUaGVyZSBpcyBhIGRlZmF1bHQgS01TIGtleSBmb3IgeW91ciBBV1MgYWNjb3VudC4gWW91ciBBV1MgYWNjb3VudCBoYXMgYSBkaWZmZXJlbnQgZGVmYXVsdCBLTVMga2V5IGZvciBlYWNoIEFXUyBSZWdpb24uXG4gKiAgRm9yIGluZm9ybWF0aW9uIGFib3V0IGVuYWJsaW5nIFBlcmZvcm1hbmNlIEluc2lnaHRzLCBzZWUgW0VuYWJsZVBlcmZvcm1hbmNlSW5zaWdodHNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLXJkcy1kYXRhYmFzZS1pbnN0YW5jZS5odG1sI2Nmbi1yZHMtZGJpbnN0YW5jZS1lbmFibGVwZXJmb3JtYW5jZWluc2lnaHRzKS5cbiAqL1xuUGVyZm9ybWFuY2VJbnNpZ2h0c0tNU0tleUlkPzogc3RyaW5nXG4vKipcbiAqIFRoZSBudW1iZXIgb2YgZGF5cyB0byByZXRhaW4gUGVyZm9ybWFuY2UgSW5zaWdodHMgZGF0YS4gV2hlbiBjcmVhdGluZyBhIERCIGluc3RhbmNlIHdpdGhvdXQgZW5hYmxpbmcgUGVyZm9ybWFuY2UgSW5zaWdodHMsIHlvdSBjYW4ndCBzcGVjaWZ5IHRoZSBwYXJhbWV0ZXIgYGBQZXJmb3JtYW5jZUluc2lnaHRzUmV0ZW50aW9uUGVyaW9kYGAuXG4gKiAgVGhpcyBzZXR0aW5nIGRvZXNuJ3QgYXBwbHkgdG8gUkRTIEN1c3RvbSBEQiBpbnN0YW5jZXMuXG4gKiAgVmFsaWQgVmFsdWVzOlxuICogICArICAgYGA3YGAgXG4gKiAgICsgICptb250aCogKiAzMSwgd2hlcmUgKm1vbnRoKiBpcyBhIG51bWJlciBvZiBtb250aHMgZnJvbSAxLTIzLiBFeGFtcGxlczogYGA5M2BgICgzIG1vbnRocyAqIDMxKSwgYGAzNDFgYCAoMTEgbW9udGhzICogMzEpLCBgYDU4OWBgICgxOSBtb250aHMgKiAzMSlcbiAqICAgKyAgIGBgNzMxYGAgXG4gKiAgIFxuICogIERlZmF1bHQ6IGBgN2BgIGRheXNcbiAqICBJZiB5b3Ugc3BlY2lmeSBhIHJldGVudGlvbiBwZXJpb2QgdGhhdCBpc24ndCB2YWxpZCwgc3VjaCBhcyBgYDk0YGAsIEFtYXpvbiBSRFMgcmV0dXJucyBhbiBlcnJvci5cbiAqL1xuUGVyZm9ybWFuY2VJbnNpZ2h0c1JldGVudGlvblBlcmlvZD86IG51bWJlclxuLyoqXG4gKiBUaGUgcG9ydCBudW1iZXIgb24gd2hpY2ggdGhlIGRhdGFiYXNlIGFjY2VwdHMgY29ubmVjdGlvbnMuXG4gKiAgVGhpcyBzZXR0aW5nIGRvZXNuJ3QgYXBwbHkgdG8gQXVyb3JhIERCIGluc3RhbmNlcy4gVGhlIHBvcnQgbnVtYmVyIGlzIG1hbmFnZWQgYnkgdGhlIGNsdXN0ZXIuXG4gKiAgVmFsaWQgVmFsdWVzOiBgYDExNTAtNjU1MzVgYFxuICogIERlZmF1bHQ6XG4gKiAgICsgIFJEUyBmb3IgRGIyIC0gYGA1MDAwMGBgXG4gKiAgICsgIFJEUyBmb3IgTWFyaWFEQiAtIGBgMzMwNmBgXG4gKiAgICsgIFJEUyBmb3IgTWljcm9zb2Z0IFNRTCBTZXJ2ZXIgLSBgYDE0MzNgYFxuICogICArICBSRFMgZm9yIE15U1FMIC0gYGAzMzA2YGBcbiAqICAgKyAgUkRTIGZvciBPcmFjbGUgLSBgYDE1MjFgYFxuICogICArICBSRFMgZm9yIFBvc3RncmVTUUwgLSBgYDU0MzJgYFxuICogICBcbiAqICBDb25zdHJhaW50czpcbiAqICAgKyAgRm9yIFJEUyBmb3IgTWljcm9zb2Z0IFNRTCBTZXJ2ZXIsIHRoZSB2YWx1ZSBjYW4ndCBiZSBgYDEyMzRgYCwgYGAxNDM0YGAsIGBgMzI2MGBgLCBgYDMzNDNgYCwgYGAzMzg5YGAsIGBgNDcwMDFgYCwgb3IgYGA0OTE1Mi00OTE1NmBgLlxuICovXG5Qb3J0Pzogc3RyaW5nXG4vKipcbiAqIFRoZSBkYWlseSB0aW1lIHJhbmdlIGR1cmluZyB3aGljaCBhdXRvbWF0ZWQgYmFja3VwcyBhcmUgY3JlYXRlZCBpZiBhdXRvbWF0ZWQgYmFja3VwcyBhcmUgZW5hYmxlZCwgdXNpbmcgdGhlIGBgQmFja3VwUmV0ZW50aW9uUGVyaW9kYGAgcGFyYW1ldGVyLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtCYWNrdXAgV2luZG93XShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUkRTL2xhdGVzdC9Vc2VyR3VpZGUvVVNFUl9Xb3JraW5nV2l0aEF1dG9tYXRlZEJhY2t1cHMuaHRtbCNVU0VSX1dvcmtpbmdXaXRoQXV0b21hdGVkQmFja3Vwcy5CYWNrdXBXaW5kb3cpIGluIHRoZSAqQW1hem9uIFJEUyBVc2VyIEd1aWRlLipcbiAqICBDb25zdHJhaW50czpcbiAqICAgKyAgTXVzdCBiZSBpbiB0aGUgZm9ybWF0IGBgaGgyNDptaS1oaDI0Om1pYGAuXG4gKiAgICsgIE11c3QgYmUgaW4gVW5pdmVyc2FsIENvb3JkaW5hdGVkIFRpbWUgKFVUQykuXG4gKiAgICsgIE11c3Qgbm90IGNvbmZsaWN0IHdpdGggdGhlIHByZWZlcnJlZCBtYWludGVuYW5jZSB3aW5kb3cuXG4gKiAgICsgIE11c3QgYmUgYXQgbGVhc3QgMzAgbWludXRlcy5cbiAqICAgXG4gKiAgICpBbWF6b24gQXVyb3JhKiBcbiAqICBOb3QgYXBwbGljYWJsZS4gVGhlIGRhaWx5IHRpbWUgcmFuZ2UgZm9yIGNyZWF0aW5nIGF1dG9tYXRlZCBiYWNrdXBzIGlzIG1hbmFnZWQgYnkgdGhlIERCIGNsdXN0ZXIuXG4gKi9cblByZWZlcnJlZEJhY2t1cFdpbmRvdz86IHN0cmluZ1xuLyoqXG4gKiBUaGUgd2Vla2x5IHRpbWUgcmFuZ2UgZHVyaW5nIHdoaWNoIHN5c3RlbSBtYWludGVuYW5jZSBjYW4gb2NjdXIsIGluIFVuaXZlcnNhbCBDb29yZGluYXRlZCBUaW1lIChVVEMpLlxuICogIEZvcm1hdDogYGBkZGQ6aGgyNDptaS1kZGQ6aGgyNDptaWBgXG4gKiAgVGhlIGRlZmF1bHQgaXMgYSAzMC1taW51dGUgd2luZG93IHNlbGVjdGVkIGF0IHJhbmRvbSBmcm9tIGFuIDgtaG91ciBibG9jayBvZiB0aW1lIGZvciBlYWNoIEFXUyBSZWdpb24sIG9jY3VycmluZyBvbiBhIHJhbmRvbSBkYXkgb2YgdGhlIHdlZWsuIFRvIHNlZSB0aGUgdGltZSBibG9ja3MgYXZhaWxhYmxlLCBzZWUgW01haW50YWluaW5nIGEgREIgaW5zdGFuY2VdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L1VzZXJHdWlkZS9VU0VSX1VwZ3JhZGVEQkluc3RhbmNlLk1haW50ZW5hbmNlLmh0bWwjQWRqdXN0aW5nVGhlTWFpbnRlbmFuY2VXaW5kb3cpIGluIHRoZSAqQW1hem9uIFJEUyBVc2VyIEd1aWRlLipcbiAqICAgVGhpcyBwcm9wZXJ0eSBhcHBsaWVzIHdoZW4gQVdTIENsb3VkRm9ybWF0aW9uIGluaXRpYWxseSBjcmVhdGVzIHRoZSBEQiBpbnN0YW5jZS4gSWYgeW91IHVzZSBBV1MgQ2xvdWRGb3JtYXRpb24gdG8gdXBkYXRlIHRoZSBEQiBpbnN0YW5jZSwgdGhvc2UgdXBkYXRlcyBhcmUgYXBwbGllZCBpbW1lZGlhdGVseS5cbiAqICAgQ29uc3RyYWludHM6IE1pbmltdW0gMzAtbWludXRlIHdpbmRvdy5cbiAqL1xuUHJlZmVycmVkTWFpbnRlbmFuY2VXaW5kb3c/OiBzdHJpbmdcbi8qKlxuICogVGhlIG51bWJlciBvZiBDUFUgY29yZXMgYW5kIHRoZSBudW1iZXIgb2YgdGhyZWFkcyBwZXIgY29yZSBmb3IgdGhlIERCIGluc3RhbmNlIGNsYXNzIG9mIHRoZSBEQiBpbnN0YW5jZS5cbiAqICBUaGlzIHNldHRpbmcgZG9lc24ndCBhcHBseSB0byBBbWF6b24gQXVyb3JhIG9yIFJEUyBDdXN0b20gREIgaW5zdGFuY2VzLlxuICovXG5Qcm9jZXNzb3JGZWF0dXJlcz86IFByb2Nlc3NvckZlYXR1cmVbXVxuLyoqXG4gKiBUaGUgb3JkZXIgb2YgcHJpb3JpdHkgaW4gd2hpY2ggYW4gQXVyb3JhIFJlcGxpY2EgaXMgcHJvbW90ZWQgdG8gdGhlIHByaW1hcnkgaW5zdGFuY2UgYWZ0ZXIgYSBmYWlsdXJlIG9mIHRoZSBleGlzdGluZyBwcmltYXJ5IGluc3RhbmNlLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtGYXVsdCBUb2xlcmFuY2UgZm9yIGFuIEF1cm9yYSBEQiBDbHVzdGVyXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUkRTL2xhdGVzdC9BdXJvcmFVc2VyR3VpZGUvQ29uY2VwdHMuQXVyb3JhSGlnaEF2YWlsYWJpbGl0eS5odG1sI0F1cm9yYS5NYW5hZ2luZy5GYXVsdFRvbGVyYW5jZSkgaW4gdGhlICpBbWF6b24gQXVyb3JhIFVzZXIgR3VpZGUqLlxuICogIFRoaXMgc2V0dGluZyBkb2Vzbid0IGFwcGx5IHRvIFJEUyBDdXN0b20gREIgaW5zdGFuY2VzLlxuICogIERlZmF1bHQ6IGBgMWBgXG4gKiAgVmFsaWQgVmFsdWVzOiBgYDAgLSAxNWBgXG4gKi9cblByb21vdGlvblRpZXI/OiBudW1iZXJcbi8qKlxuICogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIERCIGluc3RhbmNlIGlzIGFuIGludGVybmV0LWZhY2luZyBpbnN0YW5jZS4gSWYgeW91IHNwZWNpZnkgdHJ1ZSwgQVdTIENsb3VkRm9ybWF0aW9uIGNyZWF0ZXMgYW4gaW5zdGFuY2Ugd2l0aCBhIHB1YmxpY2x5IHJlc29sdmFibGUgRE5TIG5hbWUsIHdoaWNoIHJlc29sdmVzIHRvIGEgcHVibGljIElQIGFkZHJlc3MuIElmIHlvdSBzcGVjaWZ5IGZhbHNlLCBBV1MgQ2xvdWRGb3JtYXRpb24gY3JlYXRlcyBhbiBpbnRlcm5hbCBpbnN0YW5jZSB3aXRoIGEgRE5TIG5hbWUgdGhhdCByZXNvbHZlcyB0byBhIHByaXZhdGUgSVAgYWRkcmVzcy4gXG4gKiAgVGhlIGRlZmF1bHQgYmVoYXZpb3IgdmFsdWUgZGVwZW5kcyBvbiB5b3VyIFZQQyBzZXR1cCBhbmQgdGhlIGRhdGFiYXNlIHN1Ym5ldCBncm91cC4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSB0aGUgYGBQdWJsaWNseUFjY2Vzc2libGVgYCBwYXJhbWV0ZXIgaW4gdGhlIFtDcmVhdGVEQkluc3RhbmNlXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUkRTL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0NyZWF0ZURCSW5zdGFuY2UuaHRtbCkgaW4gdGhlICpBbWF6b24gUkRTIEFQSSBSZWZlcmVuY2UqLlxuICovXG5QdWJsaWNseUFjY2Vzc2libGU/OiBib29sZWFuXG5SZWFkUmVwbGljYURCQ2x1c3RlcklkZW50aWZpZXJzPzogc3RyaW5nW11cblJlYWRSZXBsaWNhREJJbnN0YW5jZUlkZW50aWZpZXJzPzogc3RyaW5nW11cbi8qKlxuICogVGhlIG9wZW4gbW9kZSBvZiBhbiBPcmFjbGUgcmVhZCByZXBsaWNhLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtXb3JraW5nIHdpdGggT3JhY2xlIFJlYWQgUmVwbGljYXMgZm9yIEFtYXpvbiBSRFNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L1VzZXJHdWlkZS9vcmFjbGUtcmVhZC1yZXBsaWNhcy5odG1sKSBpbiB0aGUgKkFtYXpvbiBSRFMgVXNlciBHdWlkZSouXG4gKiAgVGhpcyBzZXR0aW5nIGlzIG9ubHkgc3VwcG9ydGVkIGluIFJEUyBmb3IgT3JhY2xlLlxuICogIERlZmF1bHQ6IGBgb3Blbi1yZWFkLW9ubHlgYFxuICogIFZhbGlkIFZhbHVlczogYGBvcGVuLXJlYWQtb25seWBgIG9yIGBgbW91bnRlZGBgXG4gKi9cblJlcGxpY2FNb2RlPzogc3RyaW5nXG4vKipcbiAqIFRoZSBkYXRlIGFuZCB0aW1lIHRvIHJlc3RvcmUgZnJvbS4gVGhpcyBwYXJhbWV0ZXIgYXBwbGllcyB0byBwb2ludC1pbi10aW1lIHJlY292ZXJ5LiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtSZXN0b3JpbmcgYSBEQiBpbnN0YW5jZSB0byBhIHNwZWNpZmllZCB0aW1lXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUkRTL2xhdGVzdC9Vc2VyR3VpZGUvVVNFUl9QSVQuaHRtbCkgaW4gdGhlIGluIHRoZSAqQW1hem9uIFJEUyBVc2VyIEd1aWRlKi5cbiAqICBDb25zdHJhaW50czpcbiAqICAgKyAgTXVzdCBiZSBhIHRpbWUgaW4gVW5pdmVyc2FsIENvb3JkaW5hdGVkIFRpbWUgKFVUQykgZm9ybWF0LlxuICogICArICBNdXN0IGJlIGJlZm9yZSB0aGUgbGF0ZXN0IHJlc3RvcmFibGUgdGltZSBmb3IgdGhlIERCIGluc3RhbmNlLlxuICogICArICBDYW4ndCBiZSBzcGVjaWZpZWQgaWYgdGhlIGBgVXNlTGF0ZXN0UmVzdG9yYWJsZVRpbWVgYCBwYXJhbWV0ZXIgaXMgZW5hYmxlZC5cbiAqICAgXG4gKiAgRXhhbXBsZTogYGAyMDA5LTA5LTA3VDIzOjQ1OjAwWmBgXG4gKi9cblJlc3RvcmVUaW1lPzogc3RyaW5nXG5SZXN1bWVGdWxsQXV0b21hdGlvbk1vZGVUaW1lPzogc3RyaW5nXG5TZWNvbmRhcnlBdmFpbGFiaWxpdHlab25lPzogc3RyaW5nXG4vKipcbiAqIFRoZSBpZGVudGlmaWVyIG9mIHRoZSBNdWx0aS1BWiBEQiBjbHVzdGVyIHRoYXQgd2lsbCBhY3QgYXMgdGhlIHNvdXJjZSBmb3IgdGhlIHJlYWQgcmVwbGljYS4gRWFjaCBEQiBjbHVzdGVyIGNhbiBoYXZlIHVwIHRvIDE1IHJlYWQgcmVwbGljYXMuXG4gKiAgQ29uc3RyYWludHM6XG4gKiAgICsgIE11c3QgYmUgdGhlIGlkZW50aWZpZXIgb2YgYW4gZXhpc3RpbmcgTXVsdGktQVogREIgY2x1c3Rlci5cbiAqICAgKyAgQ2FuJ3QgYmUgc3BlY2lmaWVkIGlmIHRoZSBgYFNvdXJjZURCSW5zdGFuY2VJZGVudGlmaWVyYGAgcGFyYW1ldGVyIGlzIGFsc28gc3BlY2lmaWVkLlxuICogICArICBUaGUgc3BlY2lmaWVkIERCIGNsdXN0ZXIgbXVzdCBoYXZlIGF1dG9tYXRpYyBiYWNrdXBzIGVuYWJsZWQsIHRoYXQgaXMsIGl0cyBiYWNrdXAgcmV0ZW50aW9uIHBlcmlvZCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAwLlxuICogICArICBUaGUgc291cmNlIERCIGNsdXN0ZXIgbXVzdCBiZSBpbiB0aGUgc2FtZSBBV1MtUmVnaW9uIGFzIHRoZSByZWFkIHJlcGxpY2EuIENyb3NzLVJlZ2lvbiByZXBsaWNhdGlvbiBpc24ndCBzdXBwb3J0ZWQuXG4gKi9cblNvdXJjZURCQ2x1c3RlcklkZW50aWZpZXI/OiBzdHJpbmdcbi8qKlxuICogVGhlIHJlc291cmNlIElEIG9mIHRoZSBzb3VyY2UgREIgaW5zdGFuY2UgZnJvbSB3aGljaCB0byByZXN0b3JlLlxuICovXG5Tb3VyY2VEYmlSZXNvdXJjZUlkPzogc3RyaW5nXG4vKipcbiAqIFRoZSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKSBvZiB0aGUgcmVwbGljYXRlZCBhdXRvbWF0ZWQgYmFja3VwcyBmcm9tIHdoaWNoIHRvIHJlc3RvcmUsIGZvciBleGFtcGxlLCBgYGFybjphd3M6cmRzOnVzLWVhc3QtMToxMjM0NTY3ODkwMTI6YXV0by1iYWNrdXA6YWItTDJJSkNFWEpQN1hRN0hPSjRTSUVYQU1QTEVgYC5cbiAqICBUaGlzIHNldHRpbmcgZG9lc24ndCBhcHBseSB0byBSRFMgQ3VzdG9tLlxuICovXG5Tb3VyY2VEQkluc3RhbmNlQXV0b21hdGVkQmFja3Vwc0Fybj86IHN0cmluZ1xuLyoqXG4gKiBJZiB5b3Ugd2FudCB0byBjcmVhdGUgYSByZWFkIHJlcGxpY2EgREIgaW5zdGFuY2UsIHNwZWNpZnkgdGhlIElEIG9mIHRoZSBzb3VyY2UgREIgaW5zdGFuY2UuIEVhY2ggREIgaW5zdGFuY2UgY2FuIGhhdmUgYSBsaW1pdGVkIG51bWJlciBvZiByZWFkIHJlcGxpY2FzLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtXb3JraW5nIHdpdGggUmVhZCBSZXBsaWNhc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvRGV2ZWxvcGVyR3VpZGUvVVNFUl9SZWFkUmVwbC5odG1sKSBpbiB0aGUgKkFtYXpvbiBSRFMgVXNlciBHdWlkZSouXG4gKiAgRm9yIGluZm9ybWF0aW9uIGFib3V0IGNvbnN0cmFpbnRzIHRoYXQgYXBwbHkgdG8gREIgaW5zdGFuY2UgaWRlbnRpZmllcnMsIHNlZSBbTmFtaW5nIGNvbnN0cmFpbnRzIGluIEFtYXpvbiBSRFNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L1VzZXJHdWlkZS9DSEFQX0xpbWl0cy5odG1sI1JEU19MaW1pdHMuQ29uc3RyYWludHMpIGluIHRoZSAqQW1hem9uIFJEUyBVc2VyIEd1aWRlKi5cbiAqICBUaGUgYGBTb3VyY2VEQkluc3RhbmNlSWRlbnRpZmllcmBgIHByb3BlcnR5IGRldGVybWluZXMgd2hldGhlciBhIERCIGluc3RhbmNlIGlzIGEgcmVhZCByZXBsaWNhLiBJZiB5b3UgcmVtb3ZlIHRoZSBgYFNvdXJjZURCSW5zdGFuY2VJZGVudGlmaWVyYGAgcHJvcGVydHkgZnJvbSB5b3VyIHRlbXBsYXRlIGFuZCB0aGVuIHVwZGF0ZSB5b3VyIHN0YWNrLCBBV1MgQ2xvdWRGb3JtYXRpb24gcHJvbW90ZXMgdGhlIHJlYWQgcmVwbGljYSB0byBhIHN0YW5kYWxvbmUgREIgaW5zdGFuY2UuXG4gKiAgSWYgeW91IHNwZWNpZnkgdGhlIGBgVXNlTGF0ZXN0UmVzdG9yYWJsZVRpbWVgYCBvciBgYFJlc3RvcmVUaW1lYGAgcHJvcGVydGllcyBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZSBgYFNvdXJjZURCSW5zdGFuY2VJZGVudGlmaWVyYGAgcHJvcGVydHksIFJEUyByZXN0b3JlcyB0aGUgREIgaW5zdGFuY2UgdG8gdGhlIHJlcXVlc3RlZCBwb2ludCBpbiB0aW1lLCB0aGVyZWJ5IGNyZWF0aW5nIGEgbmV3IERCIGluc3RhbmNlLlxuICogICAgKyAgSWYgeW91IHNwZWNpZnkgYSBzb3VyY2UgREIgaW5zdGFuY2UgdGhhdCB1c2VzIFZQQyBzZWN1cml0eSBncm91cHMsIHdlIHJlY29tbWVuZCB0aGF0IHlvdSBzcGVjaWZ5IHRoZSBgYFZQQ1NlY3VyaXR5R3JvdXBzYGAgcHJvcGVydHkuIElmIHlvdSBkb24ndCBzcGVjaWZ5IHRoZSBwcm9wZXJ0eSwgdGhlIHJlYWQgcmVwbGljYSBpbmhlcml0cyB0aGUgdmFsdWUgb2YgdGhlIGBgVlBDU2VjdXJpdHlHcm91cHNgYCBwcm9wZXJ0eSBmcm9tIHRoZSBzb3VyY2UgREIgd2hlbiB5b3UgY3JlYXRlIHRoZSByZXBsaWNhLiBIb3dldmVyLCBpZiB5b3UgdXBkYXRlIHRoZSBzdGFjaywgQVdTIENsb3VkRm9ybWF0aW9uIHJldmVydHMgdGhlIHJlcGxpY2EncyBgYFZQQ1NlY3VyaXR5R3JvdXBzYGAgcHJvcGVydHkgdG8gdGhlIGRlZmF1bHQgdmFsdWUgYmVjYXVzZSBpdCdzIG5vdCBkZWZpbmVkIGluIHRoZSBzdGFjaydzIHRlbXBsYXRlLiBUaGlzIGNoYW5nZSBtaWdodCBjYXVzZSB1bmV4cGVjdGVkIGlzc3Vlcy5cbiAqICAgKyAgUmVhZCByZXBsaWNhcyBkb24ndCBzdXBwb3J0IGRlbGV0aW9uIHBvbGljaWVzLiBBV1MgQ2xvdWRGb3JtYXRpb24gaWdub3JlcyBhbnkgZGVsZXRpb24gcG9saWN5IHRoYXQncyBhc3NvY2lhdGVkIHdpdGggYSByZWFkIHJlcGxpY2EuXG4gKiAgICsgIElmIHlvdSBzcGVjaWZ5IGBgU291cmNlREJJbnN0YW5jZUlkZW50aWZpZXJgYCwgZG9uJ3Qgc3BlY2lmeSB0aGUgYGBEQlNuYXBzaG90SWRlbnRpZmllcmBgIHByb3BlcnR5LiBZb3UgY2FuJ3QgY3JlYXRlIGEgcmVhZCByZXBsaWNhIGZyb20gYSBzbmFwc2hvdC5cbiAqICAgKyAgRG9uJ3Qgc2V0IHRoZSBgYEJhY2t1cFJldGVudGlvblBlcmlvZGBgLCBgYERCTmFtZWBgLCBgYE1hc3RlclVzZXJuYW1lYGAsIGBgTWFzdGVyVXNlclBhc3N3b3JkYGAsIGFuZCBgYFByZWZlcnJlZEJhY2t1cFdpbmRvd2BgIHByb3BlcnRpZXMuIFRoZSBkYXRhYmFzZSBhdHRyaWJ1dGVzIGFyZSBpbmhlcml0ZWQgZnJvbSB0aGUgc291cmNlIERCIGluc3RhbmNlLCBhbmQgYmFja3VwcyBhcmUgZGlzYWJsZWQgZm9yIHJlYWQgcmVwbGljYXMuXG4gKiAgICsgIElmIHRoZSBzb3VyY2UgREIgaW5zdGFuY2UgaXMgaW4gYSBkaWZmZXJlbnQgcmVnaW9uIHRoYW4gdGhlIHJlYWQgcmVwbGljYSwgc3BlY2lmeSB0aGUgc291cmNlIHJlZ2lvbiBpbiBgYFNvdXJjZVJlZ2lvbmBgLCBhbmQgc3BlY2lmeSBhbiBBUk4gZm9yIGEgdmFsaWQgREIgaW5zdGFuY2UgaW4gYGBTb3VyY2VEQkluc3RhbmNlSWRlbnRpZmllcmBgLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtDb25zdHJ1Y3RpbmcgYSBBbWF6b24gUkRTIEFtYXpvbiBSZXNvdXJjZSBOYW1lIChBUk4pXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUkRTL2xhdGVzdC9Vc2VyR3VpZGUvVVNFUl9UYWdnaW5nLmh0bWwjVVNFUl9UYWdnaW5nLkFSTikgaW4gdGhlICpBbWF6b24gUkRTIFVzZXIgR3VpZGUqLlxuICogICArICBGb3IgREIgaW5zdGFuY2VzIGluIEFtYXpvbiBBdXJvcmEgY2x1c3RlcnMsIGRvbid0IHNwZWNpZnkgdGhpcyBwcm9wZXJ0eS4gQW1hem9uIFJEUyBhdXRvbWF0aWNhbGx5IGFzc2lnbnMgd3JpdGVyIGFuZCByZWFkZXIgREIgaW5zdGFuY2VzLlxuICovXG5Tb3VyY2VEQkluc3RhbmNlSWRlbnRpZmllcj86IHN0cmluZ1xuLyoqXG4gKiBUaGUgSUQgb2YgdGhlIHJlZ2lvbiB0aGF0IGNvbnRhaW5zIHRoZSBzb3VyY2UgREIgaW5zdGFuY2UgZm9yIHRoZSByZWFkIHJlcGxpY2EuXG4gKi9cblNvdXJjZVJlZ2lvbj86IHN0cmluZ1xuU3RhdHVzSW5mb3M/OiBEQkluc3RhbmNlU3RhdHVzSW5mb1tdXG4vKipcbiAqIEEgdmFsdWUgdGhhdCBpbmRpY2F0ZXMgd2hldGhlciB0aGUgREIgaW5zdGFuY2UgaXMgZW5jcnlwdGVkLiBCeSBkZWZhdWx0LCBpdCBpc24ndCBlbmNyeXB0ZWQuXG4gKiAgSWYgeW91IHNwZWNpZnkgdGhlIGBgS21zS2V5SWRgYCBwcm9wZXJ0eSwgdGhlbiB5b3UgbXVzdCBlbmFibGUgZW5jcnlwdGlvbi5cbiAqICBJZiB5b3Ugc3BlY2lmeSB0aGUgYGBTb3VyY2VEQkluc3RhbmNlSWRlbnRpZmllcmBgIG9yIGBgU291cmNlRGJpUmVzb3VyY2VJZGBgIHByb3BlcnR5LCBkb24ndCBzcGVjaWZ5IHRoaXMgcHJvcGVydHkuIFRoZSB2YWx1ZSBpcyBpbmhlcml0ZWQgZnJvbSB0aGUgc291cmNlIERCIGluc3RhbmNlLCBhbmQgaWYgdGhlIERCIGluc3RhbmNlIGlzIGVuY3J5cHRlZCwgdGhlIHNwZWNpZmllZCBgYEttc0tleUlkYGAgcHJvcGVydHkgaXMgdXNlZC5cbiAqICBJZiB5b3Ugc3BlY2lmeSB0aGUgYGBTb3VyY2VEQkluc3RhbmNlQXV0b21hdGVkQmFja3Vwc0FybmBgIHByb3BlcnR5LCBkb24ndCBzcGVjaWZ5IHRoaXMgcHJvcGVydHkuIFRoZSB2YWx1ZSBpcyBpbmhlcml0ZWQgZnJvbSB0aGUgc291cmNlIERCIGluc3RhbmNlIGF1dG9tYXRlZCBiYWNrdXAuIFxuICogIElmIHlvdSBzcGVjaWZ5IGBgREJTbmFwc2hvdElkZW50aWZpZXJgYCBwcm9wZXJ0eSwgZG9uJ3Qgc3BlY2lmeSB0aGlzIHByb3BlcnR5LiBUaGUgdmFsdWUgaXMgaW5oZXJpdGVkIGZyb20gdGhlIHNuYXBzaG90LlxuICogICAqQW1hem9uIEF1cm9yYSogXG4gKiAgTm90IGFwcGxpY2FibGUuIFRoZSBlbmNyeXB0aW9uIGZvciBEQiBpbnN0YW5jZXMgaXMgbWFuYWdlZCBieSB0aGUgREIgY2x1c3Rlci5cbiAqL1xuU3RvcmFnZUVuY3J5cHRlZD86IGJvb2xlYW5cbi8qKlxuICogVGhlIHN0b3JhZ2UgdHlwZSB0byBhc3NvY2lhdGUgd2l0aCB0aGUgREIgaW5zdGFuY2UuXG4gKiAgSWYgeW91IHNwZWNpZnkgYGBpbzFgYCwgYGBpbzJgYCwgb3IgYGBncDNgYCwgeW91IG11c3QgYWxzbyBpbmNsdWRlIGEgdmFsdWUgZm9yIHRoZSBgYElvcHNgYCBwYXJhbWV0ZXIuXG4gKiAgVGhpcyBzZXR0aW5nIGRvZXNuJ3QgYXBwbHkgdG8gQW1hem9uIEF1cm9yYSBEQiBpbnN0YW5jZXMuIFN0b3JhZ2UgaXMgbWFuYWdlZCBieSB0aGUgREIgY2x1c3Rlci5cbiAqICBWYWxpZCBWYWx1ZXM6IGBgZ3AyIHwgZ3AzIHwgaW8xIHwgaW8yIHwgc3RhbmRhcmRgYFxuICogIERlZmF1bHQ6IGBgaW8xYGAsIGlmIHRoZSBgYElvcHNgYCBwYXJhbWV0ZXIgaXMgc3BlY2lmaWVkLiBPdGhlcndpc2UsIGBgZ3AzYGAuXG4gKi9cblN0b3JhZ2VUeXBlPzogc3RyaW5nXG4vKipcbiAqIFNwZWNpZmllcyB0aGUgc3RvcmFnZSB0aHJvdWdocHV0IHZhbHVlLCBpbiBtZWJpYnl0ZSBwZXIgc2Vjb25kIChNaUJwcyksIGZvciB0aGUgREIgaW5zdGFuY2UuIFRoaXMgc2V0dGluZyBhcHBsaWVzIG9ubHkgdG8gdGhlIGBgZ3AzYGAgc3RvcmFnZSB0eXBlLiBcbiAqICBUaGlzIHNldHRpbmcgZG9lc24ndCBhcHBseSB0byBSRFMgQ3VzdG9tIG9yIEFtYXpvbiBBdXJvcmEuXG4gKi9cblN0b3JhZ2VUaHJvdWdocHV0PzogbnVtYmVyXG4vKipcbiAqIFRhZ3MgdG8gYXNzaWduIHRvIHRoZSBEQiBpbnN0YW5jZS5cbiAqL1xuVGFncz86IFRhZ1tdXG5UZGVDcmVkZW50aWFsQXJuPzogc3RyaW5nXG5UZGVDcmVkZW50aWFsUGFzc3dvcmQ/OiBzdHJpbmdcbi8qKlxuICogVGhlIHRpbWUgem9uZSBvZiB0aGUgREIgaW5zdGFuY2UuIFRoZSB0aW1lIHpvbmUgcGFyYW1ldGVyIGlzIGN1cnJlbnRseSBzdXBwb3J0ZWQgb25seSBieSBbUkRTIGZvciBEYjJdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L1VzZXJHdWlkZS9kYjItdGltZS16b25lKSBhbmQgW1JEUyBmb3IgU1FMIFNlcnZlcl0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvVXNlckd1aWRlL0NIQVBfU1FMU2VydmVyLmh0bWwjU1FMU2VydmVyLkNvbmNlcHRzLkdlbmVyYWwuVGltZVpvbmUpLlxuICovXG5UaW1lem9uZT86IHN0cmluZ1xuLyoqXG4gKiBTcGVjaWZpZXMgd2hldGhlciB0aGUgREIgaW5zdGFuY2UgY2xhc3Mgb2YgdGhlIERCIGluc3RhbmNlIHVzZXMgaXRzIGRlZmF1bHQgcHJvY2Vzc29yIGZlYXR1cmVzLlxuICogIFRoaXMgc2V0dGluZyBkb2Vzbid0IGFwcGx5IHRvIFJEUyBDdXN0b20gREIgaW5zdGFuY2VzLlxuICovXG5Vc2VEZWZhdWx0UHJvY2Vzc29yRmVhdHVyZXM/OiBib29sZWFuXG4vKipcbiAqIFNwZWNpZmllcyB3aGV0aGVyIHRoZSBEQiBpbnN0YW5jZSBpcyByZXN0b3JlZCBmcm9tIHRoZSBsYXRlc3QgYmFja3VwIHRpbWUuIEJ5IGRlZmF1bHQsIHRoZSBEQiBpbnN0YW5jZSBpc24ndCByZXN0b3JlZCBmcm9tIHRoZSBsYXRlc3QgYmFja3VwIHRpbWUuIFRoaXMgcGFyYW1ldGVyIGFwcGxpZXMgdG8gcG9pbnQtaW4tdGltZSByZWNvdmVyeS4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbUmVzdG9yaW5nIGEgREIgaW5zdGFuY2UgdG8gYSBzcGVjaWZpZWQgdGltZV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvVXNlckd1aWRlL1VTRVJfUElULmh0bWwpIGluIHRoZSBpbiB0aGUgKkFtYXpvbiBSRFMgVXNlciBHdWlkZSouXG4gKiAgQ29uc3RyYWludHM6XG4gKiAgICsgIENhbid0IGJlIHNwZWNpZmllZCBpZiB0aGUgYGBSZXN0b3JlVGltZWBgIHBhcmFtZXRlciBpcyBwcm92aWRlZC5cbiAqL1xuVXNlTGF0ZXN0UmVzdG9yYWJsZVRpbWU/OiBib29sZWFuXG4vKipcbiAqIEEgbGlzdCBvZiB0aGUgVlBDIHNlY3VyaXR5IGdyb3VwIElEcyB0byBhc3NpZ24gdG8gdGhlIERCIGluc3RhbmNlLiBUaGUgbGlzdCBjYW4gaW5jbHVkZSBib3RoIHRoZSBwaHlzaWNhbCBJRHMgb2YgZXhpc3RpbmcgVlBDIHNlY3VyaXR5IGdyb3VwcyBhbmQgcmVmZXJlbmNlcyB0byBbQVdTOjpFQzI6OlNlY3VyaXR5R3JvdXBdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLWVjMi1zZWN1cml0eS1ncm91cC5odG1sKSByZXNvdXJjZXMgY3JlYXRlZCBpbiB0aGUgdGVtcGxhdGUuXG4gKiAgSWYgeW91IHBsYW4gdG8gdXBkYXRlIHRoZSByZXNvdXJjZSwgZG9uJ3Qgc3BlY2lmeSBWUEMgc2VjdXJpdHkgZ3JvdXBzIGluIGEgc2hhcmVkIFZQQy5cbiAqICAgSWYgeW91IHNldCBgYFZQQ1NlY3VyaXR5R3JvdXBzYGAsIHlvdSBtdXN0IG5vdCBzZXQgW0RCU2VjdXJpdHlHcm91cHNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS8vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1yZHMtZGF0YWJhc2UtaW5zdGFuY2UuaHRtbCNjZm4tcmRzLWRiaW5zdGFuY2UtZGJzZWN1cml0eWdyb3VwcyksIGFuZCB2aWNlIHZlcnNhLlxuICogICBZb3UgY2FuIG1pZ3JhdGUgYSBEQiBpbnN0YW5jZSBpbiB5b3VyIHN0YWNrIGZyb20gYW4gUkRTIERCIHNlY3VyaXR5IGdyb3VwIHRvIGEgVlBDIHNlY3VyaXR5IGdyb3VwLCBidXQga2VlcCB0aGUgZm9sbG93aW5nIGluIG1pbmQ6XG4gKiAgICsgIFlvdSBjYW4ndCByZXZlcnQgdG8gdXNpbmcgYW4gUkRTIHNlY3VyaXR5IGdyb3VwIGFmdGVyIHlvdSBlc3RhYmxpc2ggYSBWUEMgc2VjdXJpdHkgZ3JvdXAgbWVtYmVyc2hpcC5cbiAqICAgKyAgV2hlbiB5b3UgbWlncmF0ZSB5b3VyIERCIGluc3RhbmNlIHRvIFZQQyBzZWN1cml0eSBncm91cHMsIGlmIHlvdXIgc3RhY2sgdXBkYXRlIHJvbGxzIGJhY2sgYmVjYXVzZSB0aGUgREIgaW5zdGFuY2UgdXBkYXRlIGZhaWxzIG9yIGJlY2F1c2UgYW4gdXBkYXRlIGZhaWxzIGluIGFub3RoZXIgQVdTIENsb3VkRm9ybWF0aW9uIHJlc291cmNlLCB0aGUgcm9sbGJhY2sgZmFpbHMgYmVjYXVzZSBpdCBjYW4ndCByZXZlcnQgdG8gYW4gUkRTIHNlY3VyaXR5IGdyb3VwLlxuICogICArICBUbyB1c2UgdGhlIHByb3BlcnRpZXMgdGhhdCBhcmUgYXZhaWxhYmxlIHdoZW4geW91IHVzZSBhIFZQQyBzZWN1cml0eSBncm91cCwgeW91IG11c3QgcmVjcmVhdGUgdGhlIERCIGluc3RhbmNlLiBJZiB5b3UgZG9uJ3QsIEFXUyBDbG91ZEZvcm1hdGlvbiBzdWJtaXRzIG9ubHkgdGhlIHByb3BlcnR5IHZhbHVlcyB0aGF0IGFyZSBsaXN0ZWQgaW4gdGhlIFtEQlNlY3VyaXR5R3JvdXBzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1yZHMtZGF0YWJhc2UtaW5zdGFuY2UuaHRtbCNjZm4tcmRzLWRiaW5zdGFuY2UtZGJzZWN1cml0eWdyb3VwcykgcHJvcGVydHkuXG4gKiAgIFxuICogICBUbyBhdm9pZCB0aGlzIHNpdHVhdGlvbiwgbWlncmF0ZSB5b3VyIERCIGluc3RhbmNlIHRvIHVzaW5nIFZQQyBzZWN1cml0eSBncm91cHMgb25seSB3aGVuIHRoYXQgaXMgdGhlIG9ubHkgY2hhbmdlIGluIHlvdXIgc3RhY2sgdGVtcGxhdGUuIFxuICogICAqQW1hem9uIEF1cm9yYSogXG4gKiAgTm90IGFwcGxpY2FibGUuIFRoZSBhc3NvY2lhdGVkIGxpc3Qgb2YgRUMyIFZQQyBzZWN1cml0eSBncm91cHMgaXMgbWFuYWdlZCBieSB0aGUgREIgY2x1c3Rlci4gSWYgc3BlY2lmaWVkLCB0aGUgc2V0dGluZyBtdXN0IG1hdGNoIHRoZSBEQiBjbHVzdGVyIHNldHRpbmcuXG4gKi9cblZQQ1NlY3VyaXR5R3JvdXBzPzogc3RyaW5nW11cbi8qKlxuICogU3BlY2lmaWVzIHdoZXRoZXIgY2hhbmdlcyB0byB0aGUgREIgaW5zdGFuY2UgYW5kIGFueSBwZW5kaW5nIG1vZGlmaWNhdGlvbnMgYXJlIGFwcGxpZWQgaW1tZWRpYXRlbHksIHJlZ2FyZGxlc3Mgb2YgdGhlIGBgUHJlZmVycmVkTWFpbnRlbmFuY2VXaW5kb3dgYCBzZXR0aW5nLiBJZiBzZXQgdG8gYGBmYWxzZWBgLCBjaGFuZ2VzIGFyZSBhcHBsaWVkIGR1cmluZyB0aGUgbmV4dCBtYWludGVuYW5jZSB3aW5kb3cuIFVudGlsIFJEUyBhcHBsaWVzIHRoZSBjaGFuZ2VzLCB0aGUgREIgaW5zdGFuY2UgcmVtYWlucyBpbiBhIGRyaWZ0IHN0YXRlLiBBcyBhIHJlc3VsdCwgdGhlIGNvbmZpZ3VyYXRpb24gZG9lc24ndCBmdWxseSByZWZsZWN0IHRoZSByZXF1ZXN0ZWQgbW9kaWZpY2F0aW9ucyBhbmQgdGVtcG9yYXJpbHkgZGl2ZXJnZXMgZnJvbSB0aGUgaW50ZW5kZWQgc3RhdGUuXG4gKiAgSW4gYWRkaXRpb24gdG8gdGhlIHNldHRpbmdzIGRlc2NyaWJlZCBpbiBbTW9kaWZ5aW5nIGEgREIgaW5zdGFuY2VdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L1VzZXJHdWlkZS9PdmVydmlldy5EQkluc3RhbmNlLk1vZGlmeWluZy5odG1sKSwgdGhpcyBwcm9wZXJ0eSBhbHNvIGRldGVybWluZXMgd2hldGhlciB0aGUgREIgaW5zdGFuY2UgcmVib290cyB3aGVuIGEgc3RhdGljIHBhcmFtZXRlciBpcyBtb2RpZmllZCBpbiB0aGUgYXNzb2NpYXRlZCBEQiBwYXJhbWV0ZXIgZ3JvdXAuXG4gKiAgRGVmYXVsdDogYGB0cnVlYGBcbiAqL1xuQXBwbHlJbW1lZGlhdGVseT86IGJvb2xlYW5cbkFkZGl0aW9uYWxTdG9yYWdlVm9sdW1lcz86IEFkZGl0aW9uYWxTdG9yYWdlVm9sdW1lW11cbn1cbi8qKlxuICogSW5mb3JtYXRpb24gYWJvdXQgYW4gQVdTIElkZW50aXR5IGFuZCBBY2Nlc3MgTWFuYWdlbWVudCAoSUFNKSByb2xlIHRoYXQgaXMgYXNzb2NpYXRlZCB3aXRoIGEgREIgaW5zdGFuY2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgREJJbnN0YW5jZVJvbGUge1xuLyoqXG4gKiBUaGUgbmFtZSBvZiB0aGUgZmVhdHVyZSBhc3NvY2lhdGVkIHdpdGggdGhlIEFXUyBJZGVudGl0eSBhbmQgQWNjZXNzIE1hbmFnZW1lbnQgKElBTSkgcm9sZS4gSUFNIHJvbGVzIHRoYXQgYXJlIGFzc29jaWF0ZWQgd2l0aCBhIERCIGluc3RhbmNlIGdyYW50IHBlcm1pc3Npb24gZm9yIHRoZSBEQiBpbnN0YW5jZSB0byBhY2Nlc3Mgb3RoZXIgQVdTIHNlcnZpY2VzIG9uIHlvdXIgYmVoYWxmLiBGb3IgdGhlIGxpc3Qgb2Ygc3VwcG9ydGVkIGZlYXR1cmUgbmFtZXMsIHNlZSB0aGUgYGBTdXBwb3J0ZWRGZWF0dXJlTmFtZXNgYCBkZXNjcmlwdGlvbiBpbiBbREJFbmdpbmVWZXJzaW9uXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUkRTL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0RCRW5naW5lVmVyc2lvbi5odG1sKSBpbiB0aGUgKkFtYXpvbiBSRFMgQVBJIFJlZmVyZW5jZSouXG4gKi9cbkZlYXR1cmVOYW1lOiBzdHJpbmdcbi8qKlxuICogVGhlIEFtYXpvbiBSZXNvdXJjZSBOYW1lIChBUk4pIG9mIHRoZSBJQU0gcm9sZSB0aGF0IGlzIGFzc29jaWF0ZWQgd2l0aCB0aGUgREIgaW5zdGFuY2UuXG4gKi9cblJvbGVBcm46IHN0cmluZ1xufVxuZXhwb3J0IGludGVyZmFjZSBDZXJ0aWZpY2F0ZURldGFpbHMge1xuLyoqXG4gKiBUaGUgQ0EgaWRlbnRpZmllciBvZiB0aGUgQ0EgY2VydGlmaWNhdGUgdXNlZCBmb3IgdGhlIERCIGluc3RhbmNlJ3Mgc2VydmVyIGNlcnRpZmljYXRlLlxuICovXG5DQUlkZW50aWZpZXI/OiBzdHJpbmdcbi8qKlxuICogVGhlIGV4cGlyYXRpb24gZGF0ZSBvZiB0aGUgREIgaW5zdGFuY2XigJlzIHNlcnZlciBjZXJ0aWZpY2F0ZS5cbiAqL1xuVmFsaWRUaWxsPzogc3RyaW5nXG59XG5leHBvcnQgaW50ZXJmYWNlIEVuZHBvaW50IHtcbi8qKlxuICogU3BlY2lmaWVzIHRoZSBETlMgYWRkcmVzcyBvZiB0aGUgREIgaW5zdGFuY2UuXG4gKi9cbkFkZHJlc3M/OiBzdHJpbmdcbi8qKlxuICogU3BlY2lmaWVzIHRoZSBwb3J0IHRoYXQgdGhlIGRhdGFiYXNlIGVuZ2luZSBpcyBsaXN0ZW5pbmcgb24uXG4gKi9cblBvcnQ/OiBzdHJpbmdcbi8qKlxuICogU3BlY2lmaWVzIHRoZSBJRCB0aGF0IEFtYXpvbiBSb3V0ZSA1MyBhc3NpZ25zIHdoZW4geW91IGNyZWF0ZSBhIGhvc3RlZCB6b25lLlxuICovXG5Ib3N0ZWRab25lSWQ/OiBzdHJpbmdcbn1cbmV4cG9ydCBpbnRlcmZhY2UgRW5kcG9pbnQxIHtcbi8qKlxuICogU3BlY2lmaWVzIHRoZSBETlMgYWRkcmVzcyBvZiB0aGUgREIgaW5zdGFuY2UuXG4gKi9cbkFkZHJlc3M/OiBzdHJpbmdcbi8qKlxuICogU3BlY2lmaWVzIHRoZSBwb3J0IHRoYXQgdGhlIGRhdGFiYXNlIGVuZ2luZSBpcyBsaXN0ZW5pbmcgb24uXG4gKi9cblBvcnQ/OiBzdHJpbmdcbi8qKlxuICogU3BlY2lmaWVzIHRoZSBJRCB0aGF0IEFtYXpvbiBSb3V0ZSA1MyBhc3NpZ25zIHdoZW4geW91IGNyZWF0ZSBhIGhvc3RlZCB6b25lLlxuICovXG5Ib3N0ZWRab25lSWQ/OiBzdHJpbmdcbn1cbi8qKlxuICogVGhlIHNlY3JldCBtYW5hZ2VkIGJ5IFJEUyBpbiBBV1MgU2VjcmV0cyBNYW5hZ2VyIGZvciB0aGUgbWFzdGVyIHVzZXIgcGFzc3dvcmQuXG4gKiAgRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbUGFzc3dvcmQgbWFuYWdlbWVudCB3aXRoIFNlY3JldHMgTWFuYWdlcl0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvVXNlckd1aWRlL3Jkcy1zZWNyZXRzLW1hbmFnZXIuaHRtbCkgaW4gdGhlICpBbWF6b24gUkRTIFVzZXIgR3VpZGUuKlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1hc3RlclVzZXJTZWNyZXQge1xuLyoqXG4gKiBUaGUgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTikgb2YgdGhlIHNlY3JldC4gVGhpcyBwYXJhbWV0ZXIgaXMgYSByZXR1cm4gdmFsdWUgdGhhdCB5b3UgY2FuIHJldHJpZXZlIHVzaW5nIHRoZSBgYEZuOjpHZXRBdHRgYCBpbnRyaW5zaWMgZnVuY3Rpb24uIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW1JldHVybiB2YWx1ZXNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1yZXNvdXJjZS1yZHMtZGJpbnN0YW5jZS5odG1sI2F3cy1yZXNvdXJjZS1yZHMtZGJpbnN0YW5jZS1yZXR1cm4tdmFsdWVzKS5cbiAqL1xuU2VjcmV0QXJuPzogc3RyaW5nXG4vKipcbiAqIFRoZSBBV1MgS01TIGtleSBpZGVudGlmaWVyIHRoYXQgaXMgdXNlZCB0byBlbmNyeXB0IHRoZSBzZWNyZXQuXG4gKi9cbkttc0tleUlkPzogc3RyaW5nXG59XG4vKipcbiAqIFRoZSBgYFByb2Nlc3NvckZlYXR1cmVgYCBwcm9wZXJ0eSB0eXBlIHNwZWNpZmllcyB0aGUgcHJvY2Vzc29yIGZlYXR1cmVzIG9mIGEgREIgaW5zdGFuY2UgY2xhc3MuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJvY2Vzc29yRmVhdHVyZSB7XG4vKipcbiAqIFRoZSBuYW1lIG9mIHRoZSBwcm9jZXNzb3IgZmVhdHVyZS4gVmFsaWQgbmFtZXMgYXJlIGBgY29yZUNvdW50YGAgYW5kIGBgdGhyZWFkc1BlckNvcmVgYC5cbiAqL1xuTmFtZT86IChcImNvcmVDb3VudFwiIHwgXCJ0aHJlYWRzUGVyQ29yZVwiKVxuLyoqXG4gKiBUaGUgdmFsdWUgb2YgYSBwcm9jZXNzb3IgZmVhdHVyZS5cbiAqL1xuVmFsdWU/OiBzdHJpbmdcbn1cbi8qKlxuICogUHJvdmlkZXMgYSBsaXN0IG9mIHN0YXR1cyBpbmZvcm1hdGlvbiBmb3IgYSBEQiBpbnN0YW5jZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEQkluc3RhbmNlU3RhdHVzSW5mbyB7XG4vKipcbiAqIERldGFpbHMgb2YgdGhlIGVycm9yIGlmIHRoZXJlIGlzIGFuIGVycm9yIGZvciB0aGUgaW5zdGFuY2UuIElmIHRoZSBpbnN0YW5jZSBpc24ndCBpbiBhbiBlcnJvciBzdGF0ZSwgdGhpcyB2YWx1ZSBpcyBibGFuay5cbiAqL1xuTWVzc2FnZT86IHN0cmluZ1xuLyoqXG4gKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgaW5zdGFuY2UgaXMgb3BlcmF0aW5nIG5vcm1hbGx5IChUUlVFKSBvciBpcyBpbiBhbiBlcnJvciBzdGF0ZSAoRkFMU0UpLlxuICovXG5Ob3JtYWw/OiBib29sZWFuXG4vKipcbiAqIFRoZSBzdGF0dXMgb2YgdGhlIERCIGluc3RhbmNlLiBGb3IgYSBTdGF0dXNUeXBlIG9mIHJlYWQgcmVwbGljYSwgdGhlIHZhbHVlcyBjYW4gYmUgcmVwbGljYXRpbmcsIHJlcGxpY2F0aW9uIHN0b3AgcG9pbnQgc2V0LCByZXBsaWNhdGlvbiBzdG9wIHBvaW50IHJlYWNoZWQsIGVycm9yLCBzdG9wcGVkLCBvciB0ZXJtaW5hdGVkLlxuICovXG5TdGF0dXM/OiBzdHJpbmdcbi8qKlxuICogVGhpcyB2YWx1ZSBpcyBjdXJyZW50bHkgXCJyZWFkIHJlcGxpY2F0aW9uLlwiXG4gKi9cblN0YXR1c1R5cGU/OiBzdHJpbmdcbn1cbi8qKlxuICogTWV0YWRhdGEgYXNzaWduZWQgdG8gYW4gQW1hem9uIFJEUyByZXNvdXJjZSBjb25zaXN0aW5nIG9mIGEga2V5LXZhbHVlIHBhaXIuXG4gKiAgRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbVGFnZ2luZyBBbWF6b24gUkRTIHJlc291cmNlc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvVXNlckd1aWRlL1VTRVJfVGFnZ2luZy5odG1sKSBpbiB0aGUgKkFtYXpvbiBSRFMgVXNlciBHdWlkZSogb3IgW1RhZ2dpbmcgQW1hem9uIEF1cm9yYSBhbmQgQW1hem9uIFJEUyByZXNvdXJjZXNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L0F1cm9yYVVzZXJHdWlkZS9VU0VSX1RhZ2dpbmcuaHRtbCkgaW4gdGhlICpBbWF6b24gQXVyb3JhIFVzZXIgR3VpZGUqLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRhZyB7XG4vKipcbiAqIEEga2V5IGlzIHRoZSByZXF1aXJlZCBuYW1lIG9mIHRoZSB0YWcuIFRoZSBzdHJpbmcgdmFsdWUgY2FuIGJlIGZyb20gMSB0byAxMjggVW5pY29kZSBjaGFyYWN0ZXJzIGluIGxlbmd0aCBhbmQgY2FuJ3QgYmUgcHJlZml4ZWQgd2l0aCBgYGF3czpgYCBvciBgYHJkczpgYC4gVGhlIHN0cmluZyBjYW4gb25seSBjb250YWluIG9ubHkgdGhlIHNldCBvZiBVbmljb2RlIGxldHRlcnMsIGRpZ2l0cywgd2hpdGUtc3BhY2UsICdfJywgJy4nLCAnOicsICcvJywgJz0nLCAnKycsICctJywgJ0AnIChKYXZhIHJlZ2V4OiBcIl4oW1xcXFxwe0x9XFxcXHB7Wn1cXFxccHtOfV8uOi89K1xcXFwtQF0qKSRcIikuXG4gKi9cbktleTogc3RyaW5nXG4vKipcbiAqIEEgdmFsdWUgaXMgdGhlIG9wdGlvbmFsIHZhbHVlIG9mIHRoZSB0YWcuIFRoZSBzdHJpbmcgdmFsdWUgY2FuIGJlIGZyb20gMSB0byAyNTYgVW5pY29kZSBjaGFyYWN0ZXJzIGluIGxlbmd0aCBhbmQgY2FuJ3QgYmUgcHJlZml4ZWQgd2l0aCBgYGF3czpgYCBvciBgYHJkczpgYC4gVGhlIHN0cmluZyBjYW4gb25seSBjb250YWluIG9ubHkgdGhlIHNldCBvZiBVbmljb2RlIGxldHRlcnMsIGRpZ2l0cywgd2hpdGUtc3BhY2UsICdfJywgJy4nLCAnOicsICcvJywgJz0nLCAnKycsICctJywgJ0AnIChKYXZhIHJlZ2V4OiBcIl4oW1xcXFxwe0x9XFxcXHB7Wn1cXFxccHtOfV8uOi89K1xcXFwtQF0qKSRcIikuXG4gKi9cblZhbHVlPzogc3RyaW5nXG59XG5leHBvcnQgaW50ZXJmYWNlIEFkZGl0aW9uYWxTdG9yYWdlVm9sdW1lIHtcbi8qKlxuICogVGhlIG5hbWUgb2YgdGhlIGFkZGl0aW9uYWwgc3RvcmFnZSB2b2x1bWUuXG4gKi9cblZvbHVtZU5hbWU/OiBzdHJpbmdcbi8qKlxuICogVGhlIHN0b3JhZ2UgdHlwZSBmb3IgdGhlIGFkZGl0aW9uYWwgc3RvcmFnZSB2b2x1bWUuXG4gKi9cblN0b3JhZ2VUeXBlPzogc3RyaW5nXG4vKipcbiAqIFRoZSBhbW91bnQgb2Ygc3RvcmFnZSBhbGxvY2F0ZWQgZm9yIHRoZSBhZGRpdGlvbmFsIHN0b3JhZ2Ugdm9sdW1lLCBpbiBnaWJpYnl0ZXMgKEdpQikuIFRoZSBtaW5pbXVtIGlzIDIwIEdpQi4gVGhlIG1heGltdW0gaXMgNjUsNTM2IEdpQiAoNjQgVGlCKS5cbiAqL1xuQWxsb2NhdGVkU3RvcmFnZT86IHN0cmluZ1xuLyoqXG4gKiBUaGUgbnVtYmVyIG9mIEkvTyBvcGVyYXRpb25zIHBlciBzZWNvbmQgKElPUFMpIHByb3Zpc2lvbmVkIGZvciB0aGUgYWRkaXRpb25hbCBzdG9yYWdlIHZvbHVtZS5cbiAqL1xuSW9wcz86IG51bWJlclxuLyoqXG4gKiBUaGUgdXBwZXIgbGltaXQgaW4gZ2liaWJ5dGVzIChHaUIpIHRvIHdoaWNoIFJEUyBjYW4gYXV0b21hdGljYWxseSBzY2FsZSB0aGUgc3RvcmFnZSBvZiB0aGUgYWRkaXRpb25hbCBzdG9yYWdlIHZvbHVtZS5cbiAqL1xuTWF4QWxsb2NhdGVkU3RvcmFnZT86IG51bWJlclxuLyoqXG4gKiBUaGUgc3RvcmFnZSB0aHJvdWdocHV0IHZhbHVlIGZvciB0aGUgYWRkaXRpb25hbCBzdG9yYWdlIHZvbHVtZSwgaW4gbWViaWJ5dGVzIHBlciBzZWNvbmQgKE1pQnBzKS4gVGhpcyBzZXR0aW5nIGFwcGxpZXMgb25seSB0byB0aGUgR2VuZXJhbCBQdXJwb3NlIFNTRCBncDMgc3RvcmFnZSB0eXBlLlxuICovXG5TdG9yYWdlVGhyb3VnaHB1dD86IG51bWJlclxufVxuIl19
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLXJkcy1kYmluc3RhbmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXdzLXJkcy1kYmluc3RhbmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRoZSBgYEFXUzo6UkRTOjpEQkluc3RhbmNlYGAgcmVzb3VyY2UgY3JlYXRlcyBhbiBBbWF6b24gREIgaW5zdGFuY2UuIFRoZSBuZXcgREIgaW5zdGFuY2UgY2FuIGJlIGFuIFJEUyBEQiBpbnN0YW5jZSwgb3IgaXQgY2FuIGJlIGEgREIgaW5zdGFuY2UgaW4gYW4gQXVyb3JhIERCIGNsdXN0ZXIuXG4gKiAgRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgY3JlYXRpbmcgYW4gUkRTIERCIGluc3RhbmNlLCBzZWUgW0NyZWF0aW5nIGFuIEFtYXpvbiBSRFMgREIgaW5zdGFuY2VdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L1VzZXJHdWlkZS9VU0VSX0NyZWF0ZURCSW5zdGFuY2UuaHRtbCkgaW4gdGhlICpBbWF6b24gUkRTIFVzZXIgR3VpZGUqLlxuICogIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IGNyZWF0aW5nIGEgREIgaW5zdGFuY2UgaW4gYW4gQXVyb3JhIERCIGNsdXN0ZXIsIHNlZSBbQ3JlYXRpbmcgYW4gQW1hem9uIEF1cm9yYSBEQiBjbHVzdGVyXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUkRTL2xhdGVzdC9BdXJvcmFVc2VyR3VpZGUvQXVyb3JhLkNyZWF0ZUluc3RhbmNlLmh0bWwpIGluIHRoZSAqQW1hem9uIEF1cm9yYSBVc2VyIEd1aWRlKi5cbiAqICBJZiB5b3UgaW1wb3J0IGFuIGV4aXN0aW5nIERCIGluc3RhbmNlLCBhbmQgdGhlIHRlbXBsYXRlIGNvbmZpZ3VyYXRpb24gZG9lc24ndCBtYXRjaCB0aGUgYWN0dWFsIGNvbmZpZ3VyYXRpb24gb2YgdGhlIERCIGluc3RhbmNlLCBBV1MgQ2xvdWRGb3JtYXRpb24gYXBwbGllcyB0aGUgY2hhbmdlcyBpbiB0aGUgdGVtcGxhdGUgZHVyaW5nIHRoZSBpbXBvcnQgb3BlcmF0aW9uLlxuICogICBJZiBhIERCIGluc3RhbmNlIGlzIGRlbGV0ZWQgb3IgcmVwbGFjZWQgZHVyaW5nIGFuIHVwZGF0ZSwgQVdTIENsb3VkRm9ybWF0aW9uIGRlbGV0ZXMgYWxsIGF1dG9tYXRlZCBzbmFwc2hvdHMuIEhvd2V2ZXIsIGl0IHJldGFpbnMgbWFudWFsIERCIHNuYXBzaG90cy4gRHVyaW5nIGFuIHVwZGF0ZSB0aGF0IHJlcXVpcmVzIHJlcGxhY2VtZW50LCB5b3UgY2FuIGFwcGx5IGEgc3RhY2sgcG9saWN5IHRvIHByZXZlbnQgREIgaW5zdGFuY2VzIGZyb20gYmVpbmcgcmVwbGFjZWQuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW1ByZXZlbnQgVXBkYXRlcyB0byBTdGFjayBSZXNvdXJjZXNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL3Byb3RlY3Qtc3RhY2stcmVzb3VyY2VzLmh0bWwpLlxuICogICAgKlVwZGF0aW5nIERCIGluc3RhbmNlcyogXG4gKiAgV2hlbiBwcm9wZXJ0aWVzIGxhYmVsZWQgXCIqVXBkYXRlIHJlcXVpcmVzOipbUmVwbGFjZW1lbnRdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL3VzaW5nLWNmbi11cGRhdGluZy1zdGFja3MtdXBkYXRlLWJlaGF2aW9ycy5odG1sI3VwZGF0ZS1yZXBsYWNlbWVudClcIiBhcmUgdXBkYXRlZCwgQVdTIENsb3VkRm9ybWF0aW9uIGZpcnN0IGNyZWF0ZXMgYSByZXBsYWNlbWVudCBEQiBpbnN0YW5jZSwgdGhlbiBjaGFuZ2VzIHJlZmVyZW5jZXMgZnJvbSBvdGhlciBkZXBlbmRlbnQgcmVzb3VyY2VzIHRvIHBvaW50IHRvIHRoZSByZXBsYWNlbWVudCBEQiBpbnN0YW5jZSwgYW5kIGZpbmFsbHkgZGVsZXRlcyB0aGUgb2xkIERCIGluc3RhbmNlLlxuICogICBXZSBoaWdobHkgcmVjb21tZW5kIHRoYXQgeW91IHRha2UgYSBzbmFwc2hvdCBvZiB0aGUgZGF0YWJhc2UgYmVmb3JlIHVwZGF0aW5nIHRoZSBzdGFjay4gSWYgeW91IGRvbid0LCB5b3UgbG9zZSB0aGUgZGF0YSB3aGVuIEFXUyBDbG91ZEZvcm1hdGlvbiByZXBsYWNlcyB5b3VyIERCIGluc3RhbmNlLiBUbyBwcmVzZXJ2ZSB5b3VyIGRhdGEsIHBlcmZvcm0gdGhlIGZvbGxvd2luZyBwcm9jZWR1cmU6XG4gKiAgIDEuICBEZWFjdGl2YXRlIGFueSBhcHBsaWNhdGlvbnMgdGhhdCBhcmUgdXNpbmcgdGhlIERCIGluc3RhbmNlIHNvIHRoYXQgdGhlcmUncyBubyBhY3Rpdml0eSBvbiB0aGUgREIgaW5zdGFuY2UuXG4gKiAgIDEuICBDcmVhdGUgYSBzbmFwc2hvdCBvZiB0aGUgREIgaW5zdGFuY2UuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW0NyZWF0aW5nIGEgREIgU25hcHNob3RdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L1VzZXJHdWlkZS9VU0VSX0NyZWF0ZVNuYXBzaG90Lmh0bWwpLlxuICogICAxLiAgSWYgeW91IHdhbnQgdG8gcmVzdG9yZSB5b3VyIGluc3RhbmNlIHVzaW5nIGEgREIgc25hcHNob3QsIG1vZGlmeSB0aGUgdXBkYXRlZCB0ZW1wbGF0ZSB3aXRoIHlvdXIgREIgaW5zdGFuY2UgY2hhbmdlcyBhbmQgYWRkIHRoZSBgYERCU25hcHNob3RJZGVudGlmaWVyYGAgcHJvcGVydHkgd2l0aCB0aGUgSUQgb2YgdGhlIERCIHNuYXBzaG90IHRoYXQgeW91IHdhbnQgdG8gdXNlLlxuICogIEFmdGVyIHlvdSByZXN0b3JlIGEgREIgaW5zdGFuY2Ugd2l0aCBhIGBgREJTbmFwc2hvdElkZW50aWZpZXJgYCBwcm9wZXJ0eSwgeW91IGNhbiBkZWxldGUgdGhlIGBgREJTbmFwc2hvdElkZW50aWZpZXJgYCBwcm9wZXJ0eS4gV2hlbiB5b3Ugc3BlY2lmeSB0aGlzIHByb3BlcnR5IGZvciBhbiB1cGRhdGUsIHRoZSBEQiBpbnN0YW5jZSBpcyBub3QgcmVzdG9yZWQgZnJvbSB0aGUgREIgc25hcHNob3QgYWdhaW4sIGFuZCB0aGUgZGF0YSBpbiB0aGUgZGF0YWJhc2UgaXMgbm90IGNoYW5nZWQuIEhvd2V2ZXIsIGlmIHlvdSBkb24ndCBzcGVjaWZ5IHRoZSBgYERCU25hcHNob3RJZGVudGlmaWVyYGAgcHJvcGVydHksIGFuIGVtcHR5IERCIGluc3RhbmNlIGlzIGNyZWF0ZWQsIGFuZCB0aGUgb3JpZ2luYWwgREIgaW5zdGFuY2UgaXMgZGVsZXRlZC4gSWYgeW91IHNwZWNpZnkgYSBwcm9wZXJ0eSB0aGF0IGlzIGRpZmZlcmVudCBmcm9tIHRoZSBwcmV2aW91cyBzbmFwc2hvdCByZXN0b3JlIHByb3BlcnR5LCBhIG5ldyBEQiBpbnN0YW5jZSBpcyByZXN0b3JlZCBmcm9tIHRoZSBzcGVjaWZpZWQgYGBEQlNuYXBzaG90SWRlbnRpZmllcmBgIHByb3BlcnR5LCBhbmQgdGhlIG9yaWdpbmFsIERCIGluc3RhbmNlIGlzIGRlbGV0ZWQuXG4gKiAgIDEuICBVcGRhdGUgdGhlIHN0YWNrLlxuICogICBcbiAqICAgRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdXBkYXRpbmcgb3RoZXIgcHJvcGVydGllcyBvZiB0aGlzIHJlc291cmNlLCBzZWUgYGBNb2RpZnlEQkluc3RhbmNlYGAuIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHVwZGF0aW5nIHN0YWNrcywgc2VlIFtDbG91ZEZvcm1hdGlvbiBTdGFja3MgVXBkYXRlc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvdXNpbmctY2ZuLXVwZGF0aW5nLXN0YWNrcy5odG1sKS5cbiAqICAgKkRlbGV0aW5nIERCIGluc3RhbmNlcyogXG4gKiAgRm9yIERCIGluc3RhbmNlcyB0aGF0IGFyZSBwYXJ0IG9mIGFuIEF1cm9yYSBEQiBjbHVzdGVyLCB5b3UgY2FuIHNldCBhIGRlbGV0aW9uIHBvbGljeSBmb3IgeW91ciBEQiBpbnN0YW5jZSB0byBjb250cm9sIGhvdyBBV1MgQ2xvdWRGb3JtYXRpb24gaGFuZGxlcyB0aGUgREIgaW5zdGFuY2Ugd2hlbiB0aGUgc3RhY2sgaXMgZGVsZXRlZC4gRm9yIEFtYXpvbiBSRFMgREIgaW5zdGFuY2VzLCB5b3UgY2FuIGNob29zZSB0byAqcmV0YWluKiB0aGUgREIgaW5zdGFuY2UsIHRvICpkZWxldGUqIHRoZSBEQiBpbnN0YW5jZSwgb3IgdG8gKmNyZWF0ZSBhIHNuYXBzaG90KiBvZiB0aGUgREIgaW5zdGFuY2UuIFRoZSBkZWZhdWx0IEFXUyBDbG91ZEZvcm1hdGlvbiBiZWhhdmlvciBkZXBlbmRzIG9uIHRoZSBgYERCQ2x1c3RlcklkZW50aWZpZXJgYCBwcm9wZXJ0eTpcbiAqICAgMS4gIEZvciBgYEFXUzo6UkRTOjpEQkluc3RhbmNlYGAgcmVzb3VyY2VzIHRoYXQgZG9uJ3Qgc3BlY2lmeSB0aGUgYGBEQkNsdXN0ZXJJZGVudGlmaWVyYGAgcHJvcGVydHksIEFXUyBDbG91ZEZvcm1hdGlvbiBzYXZlcyBhIHNuYXBzaG90IG9mIHRoZSBEQiBpbnN0YW5jZS5cbiAqICAgMS4gICBGb3IgYGBBV1M6OlJEUzo6REJJbnN0YW5jZWBgIHJlc291cmNlcyB0aGF0IGRvIHNwZWNpZnkgdGhlIGBgREJDbHVzdGVySWRlbnRpZmllcmBgIHByb3BlcnR5LCBBV1MgQ2xvdWRGb3JtYXRpb24gZGVsZXRlcyB0aGUgREIgaW5zdGFuY2UuXG4gKiAgIFxuICogICBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtEZWxldGlvblBvbGljeSBBdHRyaWJ1dGVdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1hdHRyaWJ1dGUtZGVsZXRpb25wb2xpY3kuaHRtbCkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgX0FXU19SRFNfREJJTlNUQU5DRSB7XG4vKipcbiAqIFRoZSBhbW91bnQgb2Ygc3RvcmFnZSBpbiBnaWJpYnl0ZXMgKEdpQikgdG8gYmUgaW5pdGlhbGx5IGFsbG9jYXRlZCBmb3IgdGhlIGRhdGFiYXNlIGluc3RhbmNlLlxuICogICBJZiBhbnkgdmFsdWUgaXMgc2V0IGluIHRoZSBgYElvcHNgYCBwYXJhbWV0ZXIsIGBgQWxsb2NhdGVkU3RvcmFnZWBgIG11c3QgYmUgYXQgbGVhc3QgMTAwIEdpQiwgd2hpY2ggY29ycmVzcG9uZHMgdG8gdGhlIG1pbmltdW0gSW9wcyB2YWx1ZSBvZiAxLDAwMC4gSWYgeW91IGluY3JlYXNlIHRoZSBgYElvcHNgYCB2YWx1ZSAoaW4gMSwwMDAgSU9QUyBpbmNyZW1lbnRzKSwgdGhlbiB5b3UgbXVzdCBhbHNvIGluY3JlYXNlIHRoZSBgYEFsbG9jYXRlZFN0b3JhZ2VgYCB2YWx1ZSAoaW4gMTAwLUdpQiBpbmNyZW1lbnRzKS4gXG4gKiAgICAqQW1hem9uIEF1cm9yYSogXG4gKiAgTm90IGFwcGxpY2FibGUuIEF1cm9yYSBjbHVzdGVyIHZvbHVtZXMgYXV0b21hdGljYWxseSBncm93IGFzIHRoZSBhbW91bnQgb2YgZGF0YSBpbiB5b3VyIGRhdGFiYXNlIGluY3JlYXNlcywgdGhvdWdoIHlvdSBhcmUgb25seSBjaGFyZ2VkIGZvciB0aGUgc3BhY2UgdGhhdCB5b3UgdXNlIGluIGFuIEF1cm9yYSBjbHVzdGVyIHZvbHVtZS5cbiAqICAgKkRiMiogXG4gKiAgQ29uc3RyYWludHMgdG8gdGhlIGFtb3VudCBvZiBzdG9yYWdlIGZvciBlYWNoIHN0b3JhZ2UgdHlwZSBhcmUgdGhlIGZvbGxvd2luZzpcbiAqICAgKyAgR2VuZXJhbCBQdXJwb3NlIChTU0QpIHN0b3JhZ2UgKGdwMyk6IE11c3QgYmUgYW4gaW50ZWdlciBmcm9tIDIwIHRvIDY0MDAwLlxuICogICArICBQcm92aXNpb25lZCBJT1BTIHN0b3JhZ2UgKGlvMSk6IE11c3QgYmUgYW4gaW50ZWdlciBmcm9tIDEwMCB0byA2NDAwMC5cbiAqICAgXG4gKiAgICpNeVNRTCogXG4gKiAgQ29uc3RyYWludHMgdG8gdGhlIGFtb3VudCBvZiBzdG9yYWdlIGZvciBlYWNoIHN0b3JhZ2UgdHlwZSBhcmUgdGhlIGZvbGxvd2luZzogXG4gKiAgICsgIEdlbmVyYWwgUHVycG9zZSAoU1NEKSBzdG9yYWdlIChncDIpOiBNdXN0IGJlIGFuIGludGVnZXIgZnJvbSAyMCB0byA2NTUzNi5cbiAqICAgKyAgUHJvdmlzaW9uZWQgSU9QUyBzdG9yYWdlIChpbzEpOiBNdXN0IGJlIGFuIGludGVnZXIgZnJvbSAxMDAgdG8gNjU1MzYuXG4gKiAgICsgIE1hZ25ldGljIHN0b3JhZ2UgKHN0YW5kYXJkKTogTXVzdCBiZSBhbiBpbnRlZ2VyIGZyb20gNSB0byAzMDcyLlxuICogICBcbiAqICAgKk1hcmlhREIqIFxuICogIENvbnN0cmFpbnRzIHRvIHRoZSBhbW91bnQgb2Ygc3RvcmFnZSBmb3IgZWFjaCBzdG9yYWdlIHR5cGUgYXJlIHRoZSBmb2xsb3dpbmc6IFxuICogICArICBHZW5lcmFsIFB1cnBvc2UgKFNTRCkgc3RvcmFnZSAoZ3AyKTogTXVzdCBiZSBhbiBpbnRlZ2VyIGZyb20gMjAgdG8gNjU1MzYuXG4gKiAgICsgIFByb3Zpc2lvbmVkIElPUFMgc3RvcmFnZSAoaW8xKTogTXVzdCBiZSBhbiBpbnRlZ2VyIGZyb20gMTAwIHRvIDY1NTM2LlxuICogICArICBNYWduZXRpYyBzdG9yYWdlIChzdGFuZGFyZCk6IE11c3QgYmUgYW4gaW50ZWdlciBmcm9tIDUgdG8gMzA3Mi5cbiAqICAgXG4gKiAgICpQb3N0Z3JlU1FMKiBcbiAqICBDb25zdHJhaW50cyB0byB0aGUgYW1vdW50IG9mIHN0b3JhZ2UgZm9yIGVhY2ggc3RvcmFnZSB0eXBlIGFyZSB0aGUgZm9sbG93aW5nOiBcbiAqICAgKyAgR2VuZXJhbCBQdXJwb3NlIChTU0QpIHN0b3JhZ2UgKGdwMik6IE11c3QgYmUgYW4gaW50ZWdlciBmcm9tIDIwIHRvIDY1NTM2LlxuICogICArICBQcm92aXNpb25lZCBJT1BTIHN0b3JhZ2UgKGlvMSk6IE11c3QgYmUgYW4gaW50ZWdlciBmcm9tIDEwMCB0byA2NTUzNi5cbiAqICAgKyAgTWFnbmV0aWMgc3RvcmFnZSAoc3RhbmRhcmQpOiBNdXN0IGJlIGFuIGludGVnZXIgZnJvbSA1IHRvIDMwNzIuXG4gKiAgIFxuICogICAqT3JhY2xlKiBcbiAqICBDb25zdHJhaW50cyB0byB0aGUgYW1vdW50IG9mIHN0b3JhZ2UgZm9yIGVhY2ggc3RvcmFnZSB0eXBlIGFyZSB0aGUgZm9sbG93aW5nOiBcbiAqICAgKyAgR2VuZXJhbCBQdXJwb3NlIChTU0QpIHN0b3JhZ2UgKGdwMik6IE11c3QgYmUgYW4gaW50ZWdlciBmcm9tIDIwIHRvIDY1NTM2LlxuICogICArICBQcm92aXNpb25lZCBJT1BTIHN0b3JhZ2UgKGlvMSk6IE11c3QgYmUgYW4gaW50ZWdlciBmcm9tIDEwMCB0byA2NTUzNi5cbiAqICAgKyAgTWFnbmV0aWMgc3RvcmFnZSAoc3RhbmRhcmQpOiBNdXN0IGJlIGFuIGludGVnZXIgZnJvbSAxMCB0byAzMDcyLlxuICogICBcbiAqICAgKlNRTCBTZXJ2ZXIqIFxuICogIENvbnN0cmFpbnRzIHRvIHRoZSBhbW91bnQgb2Ygc3RvcmFnZSBmb3IgZWFjaCBzdG9yYWdlIHR5cGUgYXJlIHRoZSBmb2xsb3dpbmc6IFxuICogICArICBHZW5lcmFsIFB1cnBvc2UgKFNTRCkgc3RvcmFnZSAoZ3AyKTpcbiAqICAgKyAgRW50ZXJwcmlzZSBhbmQgU3RhbmRhcmQgZWRpdGlvbnM6IE11c3QgYmUgYW4gaW50ZWdlciBmcm9tIDIwIHRvIDE2Mzg0LlxuICogICArICBXZWIgYW5kIEV4cHJlc3MgZWRpdGlvbnM6IE11c3QgYmUgYW4gaW50ZWdlciBmcm9tIDIwIHRvIDE2Mzg0LlxuICogICBcbiAqICAgKyAgUHJvdmlzaW9uZWQgSU9QUyBzdG9yYWdlIChpbzEpOlxuICogICArICBFbnRlcnByaXNlIGFuZCBTdGFuZGFyZCBlZGl0aW9uczogTXVzdCBiZSBhbiBpbnRlZ2VyIGZyb20gMjAgdG8gMTYzODQuXG4gKiAgICsgIFdlYiBhbmQgRXhwcmVzcyBlZGl0aW9uczogTXVzdCBiZSBhbiBpbnRlZ2VyIGZyb20gMjAgdG8gMTYzODQuXG4gKiAgIFxuICogICArICBNYWduZXRpYyBzdG9yYWdlIChzdGFuZGFyZCk6XG4gKiAgICsgIEVudGVycHJpc2UgYW5kIFN0YW5kYXJkIGVkaXRpb25zOiBNdXN0IGJlIGFuIGludGVnZXIgZnJvbSAyMCB0byAxMDI0LlxuICogICArICBXZWIgYW5kIEV4cHJlc3MgZWRpdGlvbnM6IE11c3QgYmUgYW4gaW50ZWdlciBmcm9tIDIwIHRvIDEwMjQuXG4gKi9cbkFsbG9jYXRlZFN0b3JhZ2U/OiBzdHJpbmdcbi8qKlxuICogQSB2YWx1ZSB0aGF0IGluZGljYXRlcyB3aGV0aGVyIG1ham9yIHZlcnNpb24gdXBncmFkZXMgYXJlIGFsbG93ZWQuIENoYW5naW5nIHRoaXMgcGFyYW1ldGVyIGRvZXNuJ3QgcmVzdWx0IGluIGFuIG91dGFnZSBhbmQgdGhlIGNoYW5nZSBpcyBhc3luY2hyb25vdXNseSBhcHBsaWVkIGFzIHNvb24gYXMgcG9zc2libGUuXG4gKiAgQ29uc3RyYWludHM6IE1ham9yIHZlcnNpb24gdXBncmFkZXMgbXVzdCBiZSBhbGxvd2VkIHdoZW4gc3BlY2lmeWluZyBhIHZhbHVlIGZvciB0aGUgYGBFbmdpbmVWZXJzaW9uYGAgcGFyYW1ldGVyIHRoYXQgaXMgYSBkaWZmZXJlbnQgbWFqb3IgdmVyc2lvbiB0aGFuIHRoZSBEQiBpbnN0YW5jZSdzIGN1cnJlbnQgdmVyc2lvbi5cbiAqL1xuQWxsb3dNYWpvclZlcnNpb25VcGdyYWRlPzogYm9vbGVhblxuLyoqXG4gKiBUaGUgSUFNbG9uZyAoSUFNKSByb2xlcyBhc3NvY2lhdGVkIHdpdGggdGhlIERCIGluc3RhbmNlLiBcbiAqICAgKkFtYXpvbiBBdXJvcmEqIFxuICogIE5vdCBhcHBsaWNhYmxlLiBUaGUgYXNzb2NpYXRlZCByb2xlcyBhcmUgbWFuYWdlZCBieSB0aGUgREIgY2x1c3Rlci5cbiAqL1xuQXNzb2NpYXRlZFJvbGVzPzogREJJbnN0YW5jZVJvbGVbXVxuLyoqXG4gKiBBIHZhbHVlIHRoYXQgaW5kaWNhdGVzIHdoZXRoZXIgbWlub3IgZW5naW5lIHVwZ3JhZGVzIGFyZSBhcHBsaWVkIGF1dG9tYXRpY2FsbHkgdG8gdGhlIERCIGluc3RhbmNlIGR1cmluZyB0aGUgbWFpbnRlbmFuY2Ugd2luZG93LiBCeSBkZWZhdWx0LCBtaW5vciBlbmdpbmUgdXBncmFkZXMgYXJlIGFwcGxpZWQgYXV0b21hdGljYWxseS5cbiAqL1xuQXV0b01pbm9yVmVyc2lvblVwZ3JhZGU/OiBib29sZWFuXG4vKipcbiAqIFRoZSBBV1MtUmVnaW9uIGFzc29jaWF0ZWQgd2l0aCB0aGUgYXV0b21hdGVkIGJhY2t1cC5cbiAqL1xuQXV0b21hdGljQmFja3VwUmVwbGljYXRpb25SZWdpb24/OiBzdHJpbmdcbi8qKlxuICogVGhlIEFXUyBLTVMga2V5IGlkZW50aWZpZXIgZm9yIGVuY3J5cHRpb24gb2YgdGhlIHJlcGxpY2F0ZWQgYXV0b21hdGVkIGJhY2t1cHMuIFRoZSBLTVMga2V5IElEIGlzIHRoZSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKSBmb3IgdGhlIEtNUyBlbmNyeXB0aW9uIGtleSBpbiB0aGUgZGVzdGluYXRpb24gQVdTLVJlZ2lvbiwgZm9yIGV4YW1wbGUsIGBgYXJuOmF3czprbXM6dXMtZWFzdC0xOjEyMzQ1Njc4OTAxMjprZXkvQUtJQUlPU0ZPRE5ON0VYQU1QTEVgYC5cbiAqL1xuQXV0b21hdGljQmFja3VwUmVwbGljYXRpb25LbXNLZXlJZD86IHN0cmluZ1xuLyoqXG4gKiBUaGUgcmV0ZW50aW9uIHBlcmlvZCBmb3IgYXV0b21hdGVkIGJhY2t1cHMgaW4gYSBkaWZmZXJlbnQgQVdTIFJlZ2lvbi4gVXNlIHRoaXMgcGFyYW1ldGVyIHRvIHNldCBhIHVuaXF1ZSByZXRlbnRpb24gcGVyaW9kIHRoYXQgb25seSBhcHBsaWVzIHRvIGNyb3NzLVJlZ2lvbiBhdXRvbWF0ZWQgYmFja3Vwcy4gVG8gZW5hYmxlIGF1dG9tYXRlZCBiYWNrdXBzIGluIGEgZGlmZmVyZW50IFJlZ2lvbiwgc3BlY2lmeSBhIHBvc2l0aXZlIHZhbHVlIGZvciB0aGUgYGBBdXRvbWF0aWNCYWNrdXBSZXBsaWNhdGlvblJlZ2lvbmBgIHBhcmFtZXRlci4gXG4gKiAgSWYgbm90IHNwZWNpZmllZCwgdGhpcyBwYXJhbWV0ZXIgZGVmYXVsdHMgdG8gdGhlIHZhbHVlIG9mIHRoZSBgYEJhY2t1cFJldGVudGlvblBlcmlvZGBgIHBhcmFtZXRlci4gVGhlIG1heGltdW0gYWxsb3dlZCB2YWx1ZSBpcyAzNS5cbiAqL1xuQXV0b21hdGljQmFja3VwUmVwbGljYXRpb25SZXRlbnRpb25QZXJpb2Q/OiBudW1iZXJcbkF1dG9tYXRpY1Jlc3RhcnRUaW1lPzogc3RyaW5nXG4vKipcbiAqIFRoZSBBdmFpbGFiaWxpdHkgWm9uZSAoQVopIHdoZXJlIHRoZSBkYXRhYmFzZSB3aWxsIGJlIGNyZWF0ZWQuIEZvciBpbmZvcm1hdGlvbiBvbiBBV1MtUmVnaW9ucyBhbmQgQXZhaWxhYmlsaXR5IFpvbmVzLCBzZWUgW1JlZ2lvbnMgYW5kIEF2YWlsYWJpbGl0eSBab25lc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvVXNlckd1aWRlL0NvbmNlcHRzLlJlZ2lvbnNBbmRBdmFpbGFiaWxpdHlab25lcy5odG1sKS5cbiAqICBGb3IgQW1hem9uIEF1cm9yYSwgZWFjaCBBdXJvcmEgREIgY2x1c3RlciBob3N0cyBjb3BpZXMgb2YgaXRzIHN0b3JhZ2UgaW4gdGhyZWUgc2VwYXJhdGUgQXZhaWxhYmlsaXR5IFpvbmVzLiBTcGVjaWZ5IG9uZSBvZiB0aGVzZSBBdmFpbGFiaWxpdHkgWm9uZXMuIEF1cm9yYSBhdXRvbWF0aWNhbGx5IGNob29zZXMgYW4gYXBwcm9wcmlhdGUgQXZhaWxhYmlsaXR5IFpvbmUgaWYgeW91IGRvbid0IHNwZWNpZnkgb25lLlxuICogIERlZmF1bHQ6IEEgcmFuZG9tLCBzeXN0ZW0tY2hvc2VuIEF2YWlsYWJpbGl0eSBab25lIGluIHRoZSBlbmRwb2ludCdzIEFXUy1SZWdpb24uXG4gKiAgQ29uc3RyYWludHM6XG4gKiAgICsgIFRoZSBgYEF2YWlsYWJpbGl0eVpvbmVgYCBwYXJhbWV0ZXIgY2FuJ3QgYmUgc3BlY2lmaWVkIGlmIHRoZSBEQiBpbnN0YW5jZSBpcyBhIE11bHRpLUFaIGRlcGxveW1lbnQuXG4gKiAgICsgIFRoZSBzcGVjaWZpZWQgQXZhaWxhYmlsaXR5IFpvbmUgbXVzdCBiZSBpbiB0aGUgc2FtZSBBV1MtUmVnaW9uIGFzIHRoZSBjdXJyZW50IGVuZHBvaW50LlxuICogICBcbiAqICBFeGFtcGxlOiBgYHVzLWVhc3QtMWRgYFxuICovXG5BdmFpbGFiaWxpdHlab25lPzogc3RyaW5nXG4vKipcbiAqIFRoZSBudW1iZXIgb2YgZGF5cyBmb3Igd2hpY2ggYXV0b21hdGVkIGJhY2t1cHMgYXJlIHJldGFpbmVkLiBTZXR0aW5nIHRoaXMgcGFyYW1ldGVyIHRvIGEgcG9zaXRpdmUgbnVtYmVyIGVuYWJsZXMgYmFja3Vwcy4gU2V0dGluZyB0aGlzIHBhcmFtZXRlciB0byAwIGRpc2FibGVzIGF1dG9tYXRlZCBiYWNrdXBzLlxuICogICAqQW1hem9uIEF1cm9yYSogXG4gKiAgTm90IGFwcGxpY2FibGUuIFRoZSByZXRlbnRpb24gcGVyaW9kIGZvciBhdXRvbWF0ZWQgYmFja3VwcyBpcyBtYW5hZ2VkIGJ5IHRoZSBEQiBjbHVzdGVyLlxuICogIERlZmF1bHQ6IDFcbiAqICBDb25zdHJhaW50czpcbiAqICAgKyAgTXVzdCBiZSBhIHZhbHVlIGZyb20gMCB0byAzNVxuICogICArICBDYW4ndCBiZSBzZXQgdG8gMCBpZiB0aGUgREIgaW5zdGFuY2UgaXMgYSBzb3VyY2UgdG8gcmVhZCByZXBsaWNhc1xuICovXG5CYWNrdXBSZXRlbnRpb25QZXJpb2Q/OiBudW1iZXJcbi8qKlxuICogVGhlIGxvY2F0aW9uIGZvciBzdG9yaW5nIGF1dG9tYXRlZCBiYWNrdXBzIGFuZCBtYW51YWwgc25hcHNob3RzLlxuICogIFZhbGlkIFZhbHVlczpcbiAqICAgKyAgYGBsb2NhbGBgIChEZWRpY2F0ZWQgTG9jYWwgWm9uZSlcbiAqICAgKyAgYGBvdXRwb3N0c2BgIChBV1MgT3V0cG9zdHMpXG4gKiAgICsgIGBgcmVnaW9uYGAgKEFXUy1SZWdpb24pXG4gKiAgIFxuICogIERlZmF1bHQ6IGBgcmVnaW9uYGBcbiAqICBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtXb3JraW5nIHdpdGggQW1hem9uIFJEUyBvbiBPdXRwb3N0c10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvVXNlckd1aWRlL3Jkcy1vbi1vdXRwb3N0cy5odG1sKSBpbiB0aGUgKkFtYXpvbiBSRFMgVXNlciBHdWlkZSouXG4gKi9cbkJhY2t1cFRhcmdldD86IHN0cmluZ1xuLyoqXG4gKiBUaGUgaWRlbnRpZmllciBvZiB0aGUgQ0EgY2VydGlmaWNhdGUgZm9yIHRoaXMgREIgaW5zdGFuY2UuXG4gKiAgRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbVXNpbmcgU1NML1RMUyB0byBlbmNyeXB0IGEgY29ubmVjdGlvbiB0byBhIERCIGluc3RhbmNlXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUkRTL2xhdGVzdC9Vc2VyR3VpZGUvVXNpbmdXaXRoUkRTLlNTTC5odG1sKSBpbiB0aGUgKkFtYXpvbiBSRFMgVXNlciBHdWlkZSogYW5kIFtVc2luZyBTU0wvVExTIHRvIGVuY3J5cHQgYSBjb25uZWN0aW9uIHRvIGEgREIgY2x1c3Rlcl0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvQXVyb3JhVXNlckd1aWRlL1VzaW5nV2l0aFJEUy5TU0wuaHRtbCkgaW4gdGhlICpBbWF6b24gQXVyb3JhIFVzZXIgR3VpZGUqLlxuICovXG5DQUNlcnRpZmljYXRlSWRlbnRpZmllcj86IHN0cmluZ1xuQ2VydGlmaWNhdGVEZXRhaWxzPzogQ2VydGlmaWNhdGVEZXRhaWxzXG4vKipcbiAqIFNwZWNpZmllcyB3aGV0aGVyIHRoZSBEQiBpbnN0YW5jZSBpcyByZXN0YXJ0ZWQgd2hlbiB5b3Ugcm90YXRlIHlvdXIgU1NML1RMUyBjZXJ0aWZpY2F0ZS5cbiAqICBCeSBkZWZhdWx0LCB0aGUgREIgaW5zdGFuY2UgaXMgcmVzdGFydGVkIHdoZW4geW91IHJvdGF0ZSB5b3VyIFNTTC9UTFMgY2VydGlmaWNhdGUuIFRoZSBjZXJ0aWZpY2F0ZSBpcyBub3QgdXBkYXRlZCB1bnRpbCB0aGUgREIgaW5zdGFuY2UgaXMgcmVzdGFydGVkLlxuICogICBTZXQgdGhpcyBwYXJhbWV0ZXIgb25seSBpZiB5b3UgYXJlICpub3QqIHVzaW5nIFNTTC9UTFMgdG8gY29ubmVjdCB0byB0aGUgREIgaW5zdGFuY2UuXG4gKiAgIElmIHlvdSBhcmUgdXNpbmcgU1NML1RMUyB0byBjb25uZWN0IHRvIHRoZSBEQiBpbnN0YW5jZSwgZm9sbG93IHRoZSBhcHByb3ByaWF0ZSBpbnN0cnVjdGlvbnMgZm9yIHlvdXIgREIgZW5naW5lIHRvIHJvdGF0ZSB5b3VyIFNTTC9UTFMgY2VydGlmaWNhdGU6XG4gKiAgICsgIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHJvdGF0aW5nIHlvdXIgU1NML1RMUyBjZXJ0aWZpY2F0ZSBmb3IgUkRTIERCIGVuZ2luZXMsIHNlZSBbUm90YXRpbmcgWW91ciBTU0wvVExTIENlcnRpZmljYXRlLl0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvVXNlckd1aWRlL1VzaW5nV2l0aFJEUy5TU0wtY2VydGlmaWNhdGUtcm90YXRpb24uaHRtbCkgaW4gdGhlICpBbWF6b24gUkRTIFVzZXIgR3VpZGUuKlxuICogICArICBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCByb3RhdGluZyB5b3VyIFNTTC9UTFMgY2VydGlmaWNhdGUgZm9yIEF1cm9yYSBEQiBlbmdpbmVzLCBzZWUgW1JvdGF0aW5nIFlvdXIgU1NML1RMUyBDZXJ0aWZpY2F0ZV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvQXVyb3JhVXNlckd1aWRlL1VzaW5nV2l0aFJEUy5TU0wtY2VydGlmaWNhdGUtcm90YXRpb24uaHRtbCkgaW4gdGhlICpBbWF6b24gQXVyb3JhIFVzZXIgR3VpZGUqLlxuICogICBcbiAqICBUaGlzIHNldHRpbmcgZG9lc24ndCBhcHBseSB0byBSRFMgQ3VzdG9tIERCIGluc3RhbmNlcy5cbiAqL1xuQ2VydGlmaWNhdGVSb3RhdGlvblJlc3RhcnQ/OiBib29sZWFuXG4vKipcbiAqIEZvciBzdXBwb3J0ZWQgZW5naW5lcywgaW5kaWNhdGVzIHRoYXQgdGhlIERCIGluc3RhbmNlIHNob3VsZCBiZSBhc3NvY2lhdGVkIHdpdGggdGhlIHNwZWNpZmllZCBjaGFyYWN0ZXIgc2V0LlxuICogICAqQW1hem9uIEF1cm9yYSogXG4gKiAgTm90IGFwcGxpY2FibGUuIFRoZSBjaGFyYWN0ZXIgc2V0IGlzIG1hbmFnZWQgYnkgdGhlIERCIGNsdXN0ZXIuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW0FXUzo6UkRTOjpEQkNsdXN0ZXJdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1yZXNvdXJjZS1yZHMtZGJjbHVzdGVyLmh0bWwpLlxuICovXG5DaGFyYWN0ZXJTZXROYW1lPzogc3RyaW5nXG4vKipcbiAqIFNwZWNpZmllcyB3aGV0aGVyIHRvIGNvcHkgdGFncyBmcm9tIHRoZSBEQiBpbnN0YW5jZSB0byBzbmFwc2hvdHMgb2YgdGhlIERCIGluc3RhbmNlLiBCeSBkZWZhdWx0LCB0YWdzIGFyZSBub3QgY29waWVkLlxuICogIFRoaXMgc2V0dGluZyBkb2Vzbid0IGFwcGx5IHRvIEFtYXpvbiBBdXJvcmEgREIgaW5zdGFuY2VzLiBDb3B5aW5nIHRhZ3MgdG8gc25hcHNob3RzIGlzIG1hbmFnZWQgYnkgdGhlIERCIGNsdXN0ZXIuIFNldHRpbmcgdGhpcyB2YWx1ZSBmb3IgYW4gQXVyb3JhIERCIGluc3RhbmNlIGhhcyBubyBlZmZlY3Qgb24gdGhlIERCIGNsdXN0ZXIgc2V0dGluZy5cbiAqL1xuQ29weVRhZ3NUb1NuYXBzaG90PzogYm9vbGVhblxuLyoqXG4gKiBUaGUgaW5zdGFuY2UgcHJvZmlsZSBhc3NvY2lhdGVkIHdpdGggdGhlIHVuZGVybHlpbmcgQW1hem9uIEVDMiBpbnN0YW5jZSBvZiBhbiBSRFMgQ3VzdG9tIERCIGluc3RhbmNlLlxuICogIFRoaXMgc2V0dGluZyBpcyByZXF1aXJlZCBmb3IgUkRTIEN1c3RvbS5cbiAqICBDb25zdHJhaW50czpcbiAqICAgKyAgVGhlIHByb2ZpbGUgbXVzdCBleGlzdCBpbiB5b3VyIGFjY291bnQuXG4gKiAgICsgIFRoZSBwcm9maWxlIG11c3QgaGF2ZSBhbiBJQU0gcm9sZSB0aGF0IEFtYXpvbiBFQzIgaGFzIHBlcm1pc3Npb25zIHRvIGFzc3VtZS5cbiAqICAgKyAgVGhlIGluc3RhbmNlIHByb2ZpbGUgbmFtZSBhbmQgdGhlIGFzc29jaWF0ZWQgSUFNIHJvbGUgbmFtZSBtdXN0IHN0YXJ0IHdpdGggdGhlIHByZWZpeCBgYEFXU1JEU0N1c3RvbWBgLlxuICogICBcbiAqICBGb3IgdGhlIGxpc3Qgb2YgcGVybWlzc2lvbnMgcmVxdWlyZWQgZm9yIHRoZSBJQU0gcm9sZSwgc2VlIFtDb25maWd1cmUgSUFNIGFuZCB5b3VyIFZQQ10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvVXNlckd1aWRlL2N1c3RvbS1zZXR1cC1vcmNsLmh0bWwjY3VzdG9tLXNldHVwLW9yY2wuaWFtLXZwYykgaW4gdGhlICpBbWF6b24gUkRTIFVzZXIgR3VpZGUqLlxuICovXG5DdXN0b21JQU1JbnN0YW5jZVByb2ZpbGU/OiBzdHJpbmdcbi8qKlxuICogVGhlIG1vZGUgb2YgRGF0YWJhc2UgSW5zaWdodHMgdG8gZW5hYmxlIGZvciB0aGUgREIgaW5zdGFuY2UuXG4gKiAgIEF1cm9yYSBEQiBpbnN0YW5jZXMgaW5oZXJpdCB0aGlzIHZhbHVlIGZyb20gdGhlIERCIGNsdXN0ZXIsIHNvIHlvdSBjYW4ndCBjaGFuZ2UgdGhpcyB2YWx1ZS5cbiAqL1xuRGF0YWJhc2VJbnNpZ2h0c01vZGU/OiBzdHJpbmdcbi8qKlxuICogVGhlIGlkZW50aWZpZXIgb2YgdGhlIERCIGNsdXN0ZXIgdGhhdCB0aGlzIERCIGluc3RhbmNlIHdpbGwgYmVsb25nIHRvLlxuICogIFRoaXMgc2V0dGluZyBkb2Vzbid0IGFwcGx5IHRvIFJEUyBDdXN0b20gREIgaW5zdGFuY2VzLlxuICovXG5EQkNsdXN0ZXJJZGVudGlmaWVyPzogc3RyaW5nXG4vKipcbiAqIFRoZSBpZGVudGlmaWVyIGZvciB0aGUgTXVsdGktQVogREIgY2x1c3RlciBzbmFwc2hvdCB0byByZXN0b3JlIGZyb20uXG4gKiAgRm9yIG1vcmUgaW5mb3JtYXRpb24gb24gTXVsdGktQVogREIgY2x1c3RlcnMsIHNlZSBbTXVsdGktQVogREIgY2x1c3RlciBkZXBsb3ltZW50c10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvVXNlckd1aWRlL211bHRpLWF6LWRiLWNsdXN0ZXJzLWNvbmNlcHRzLmh0bWwpIGluIHRoZSAqQW1hem9uIFJEUyBVc2VyIEd1aWRlKi5cbiAqICBDb25zdHJhaW50czpcbiAqICAgKyAgTXVzdCBtYXRjaCB0aGUgaWRlbnRpZmllciBvZiBhbiBleGlzdGluZyBNdWx0aS1BWiBEQiBjbHVzdGVyIHNuYXBzaG90LlxuICogICArICBDYW4ndCBiZSBzcGVjaWZpZWQgd2hlbiBgYERCU25hcHNob3RJZGVudGlmaWVyYGAgaXMgc3BlY2lmaWVkLlxuICogICArICBNdXN0IGJlIHNwZWNpZmllZCB3aGVuIGBgREJTbmFwc2hvdElkZW50aWZpZXJgYCBpc24ndCBzcGVjaWZpZWQuXG4gKiAgICsgIElmIHlvdSBhcmUgcmVzdG9yaW5nIGZyb20gYSBzaGFyZWQgbWFudWFsIE11bHRpLUFaIERCIGNsdXN0ZXIgc25hcHNob3QsIHRoZSBgYERCQ2x1c3RlclNuYXBzaG90SWRlbnRpZmllcmBgIG11c3QgYmUgdGhlIEFSTiBvZiB0aGUgc2hhcmVkIHNuYXBzaG90LlxuICogICArICBDYW4ndCBiZSB0aGUgaWRlbnRpZmllciBvZiBhbiBBdXJvcmEgREIgY2x1c3RlciBzbmFwc2hvdC5cbiAqL1xuREJDbHVzdGVyU25hcHNob3RJZGVudGlmaWVyPzogc3RyaW5nXG5EQkluc3RhbmNlQXJuPzogc3RyaW5nXG4vKipcbiAqIFRoZSBjb21wdXRlIGFuZCBtZW1vcnkgY2FwYWNpdHkgb2YgdGhlIERCIGluc3RhbmNlLCBmb3IgZXhhbXBsZSBgYGRiLm01LmxhcmdlYGAuIE5vdCBhbGwgREIgaW5zdGFuY2UgY2xhc3NlcyBhcmUgYXZhaWxhYmxlIGluIGFsbCBBV1MtUmVnaW9ucywgb3IgZm9yIGFsbCBkYXRhYmFzZSBlbmdpbmVzLiBGb3IgdGhlIGZ1bGwgbGlzdCBvZiBEQiBpbnN0YW5jZSBjbGFzc2VzLCBhbmQgYXZhaWxhYmlsaXR5IGZvciB5b3VyIGVuZ2luZSwgc2VlIFtEQiBpbnN0YW5jZSBjbGFzc2VzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUkRTL2xhdGVzdC9Vc2VyR3VpZGUvQ29uY2VwdHMuREJJbnN0YW5jZUNsYXNzLmh0bWwpIGluIHRoZSAqQW1hem9uIFJEUyBVc2VyIEd1aWRlKiBvciBbQXVyb3JhIERCIGluc3RhbmNlIGNsYXNzZXNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L0F1cm9yYVVzZXJHdWlkZS9Db25jZXB0cy5EQkluc3RhbmNlQ2xhc3MuaHRtbCkgaW4gdGhlICpBbWF6b24gQXVyb3JhIFVzZXIgR3VpZGUqLlxuICovXG5EQkluc3RhbmNlQ2xhc3M/OiBzdHJpbmdcbi8qKlxuICogQSBuYW1lIGZvciB0aGUgREIgaW5zdGFuY2UuIElmIHlvdSBzcGVjaWZ5IGEgbmFtZSwgQVdTIENsb3VkRm9ybWF0aW9uIGNvbnZlcnRzIGl0IHRvIGxvd2VyY2FzZS4gSWYgeW91IGRvbid0IHNwZWNpZnkgYSBuYW1lLCBBV1MgQ2xvdWRGb3JtYXRpb24gZ2VuZXJhdGVzIGEgdW5pcXVlIHBoeXNpY2FsIElEIGFuZCB1c2VzIHRoYXQgSUQgZm9yIHRoZSBEQiBpbnN0YW5jZS4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbTmFtZSBUeXBlXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1uYW1lLmh0bWwpLlxuICogIEZvciBpbmZvcm1hdGlvbiBhYm91dCBjb25zdHJhaW50cyB0aGF0IGFwcGx5IHRvIERCIGluc3RhbmNlIGlkZW50aWZpZXJzLCBzZWUgW05hbWluZyBjb25zdHJhaW50cyBpbiBBbWF6b24gUkRTXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUkRTL2xhdGVzdC9Vc2VyR3VpZGUvQ0hBUF9MaW1pdHMuaHRtbCNSRFNfTGltaXRzLkNvbnN0cmFpbnRzKSBpbiB0aGUgKkFtYXpvbiBSRFMgVXNlciBHdWlkZSouXG4gKiAgIElmIHlvdSBzcGVjaWZ5IGEgbmFtZSwgeW91IGNhbid0IHBlcmZvcm0gdXBkYXRlcyB0aGF0IHJlcXVpcmUgcmVwbGFjZW1lbnQgb2YgdGhpcyByZXNvdXJjZS4gWW91IGNhbiBwZXJmb3JtIHVwZGF0ZXMgdGhhdCByZXF1aXJlIG5vIG9yIHNvbWUgaW50ZXJydXB0aW9uLiBJZiB5b3UgbXVzdCByZXBsYWNlIHRoZSByZXNvdXJjZSwgc3BlY2lmeSBhIG5ldyBuYW1lLlxuICovXG5EQkluc3RhbmNlSWRlbnRpZmllcj86IHN0cmluZ1xuREJJbnN0YW5jZVN0YXR1cz86IHN0cmluZ1xuRGJpUmVzb3VyY2VJZD86IHN0cmluZ1xuLyoqXG4gKiBUaGUgbWVhbmluZyBvZiB0aGlzIHBhcmFtZXRlciBkaWZmZXJzIGFjY29yZGluZyB0byB0aGUgZGF0YWJhc2UgZW5naW5lIHlvdSB1c2UuXG4gKiAgIElmIHlvdSBzcGVjaWZ5IHRoZSBgYERCU25hcHNob3RJZGVudGlmaWVyYGAgcHJvcGVydHksIHRoaXMgcHJvcGVydHkgb25seSBhcHBsaWVzIHRvIFJEUyBmb3IgT3JhY2xlLlxuICogICAgKkFtYXpvbiBBdXJvcmEqIFxuICogIE5vdCBhcHBsaWNhYmxlLiBUaGUgZGF0YWJhc2UgbmFtZSBpcyBtYW5hZ2VkIGJ5IHRoZSBEQiBjbHVzdGVyLlxuICogICAqRGIyKiBcbiAqICBUaGUgbmFtZSBvZiB0aGUgZGF0YWJhc2UgdG8gY3JlYXRlIHdoZW4gdGhlIERCIGluc3RhbmNlIGlzIGNyZWF0ZWQuIElmIHRoaXMgcGFyYW1ldGVyIGlzbid0IHNwZWNpZmllZCwgbm8gZGF0YWJhc2UgaXMgY3JlYXRlZCBpbiB0aGUgREIgaW5zdGFuY2UuXG4gKiAgQ29uc3RyYWludHM6XG4gKiAgICsgIE11c3QgY29udGFpbiAxIHRvIDY0IGxldHRlcnMgb3IgbnVtYmVycy5cbiAqICAgKyAgTXVzdCBiZWdpbiB3aXRoIGEgbGV0dGVyLiBTdWJzZXF1ZW50IGNoYXJhY3RlcnMgY2FuIGJlIGxldHRlcnMsIHVuZGVyc2NvcmVzLCBvciBkaWdpdHMgKDAtOSkuXG4gKiAgICsgIENhbid0IGJlIGEgd29yZCByZXNlcnZlZCBieSB0aGUgc3BlY2lmaWVkIGRhdGFiYXNlIGVuZ2luZS5cbiAqICAgXG4gKiAgICpNeVNRTCogXG4gKiAgVGhlIG5hbWUgb2YgdGhlIGRhdGFiYXNlIHRvIGNyZWF0ZSB3aGVuIHRoZSBEQiBpbnN0YW5jZSBpcyBjcmVhdGVkLiBJZiB0aGlzIHBhcmFtZXRlciBpcyBub3Qgc3BlY2lmaWVkLCBubyBkYXRhYmFzZSBpcyBjcmVhdGVkIGluIHRoZSBEQiBpbnN0YW5jZS5cbiAqICBDb25zdHJhaW50czpcbiAqICAgKyAgTXVzdCBjb250YWluIDEgdG8gNjQgbGV0dGVycyBvciBudW1iZXJzLlxuICogICArICBDYW4ndCBiZSBhIHdvcmQgcmVzZXJ2ZWQgYnkgdGhlIHNwZWNpZmllZCBkYXRhYmFzZSBlbmdpbmVcbiAqICAgXG4gKiAgICpNYXJpYURCKiBcbiAqICBUaGUgbmFtZSBvZiB0aGUgZGF0YWJhc2UgdG8gY3JlYXRlIHdoZW4gdGhlIERCIGluc3RhbmNlIGlzIGNyZWF0ZWQuIElmIHRoaXMgcGFyYW1ldGVyIGlzIG5vdCBzcGVjaWZpZWQsIG5vIGRhdGFiYXNlIGlzIGNyZWF0ZWQgaW4gdGhlIERCIGluc3RhbmNlLlxuICogIENvbnN0cmFpbnRzOlxuICogICArICBNdXN0IGNvbnRhaW4gMSB0byA2NCBsZXR0ZXJzIG9yIG51bWJlcnMuXG4gKiAgICsgIENhbid0IGJlIGEgd29yZCByZXNlcnZlZCBieSB0aGUgc3BlY2lmaWVkIGRhdGFiYXNlIGVuZ2luZVxuICogICBcbiAqICAgKlBvc3RncmVTUUwqIFxuICogIFRoZSBuYW1lIG9mIHRoZSBkYXRhYmFzZSB0byBjcmVhdGUgd2hlbiB0aGUgREIgaW5zdGFuY2UgaXMgY3JlYXRlZC4gSWYgdGhpcyBwYXJhbWV0ZXIgaXMgbm90IHNwZWNpZmllZCwgdGhlIGRlZmF1bHQgYGBwb3N0Z3Jlc2BgIGRhdGFiYXNlIGlzIGNyZWF0ZWQgaW4gdGhlIERCIGluc3RhbmNlLlxuICogIENvbnN0cmFpbnRzOlxuICogICArICBNdXN0IGJlZ2luIHdpdGggYSBsZXR0ZXIuIFN1YnNlcXVlbnQgY2hhcmFjdGVycyBjYW4gYmUgbGV0dGVycywgdW5kZXJzY29yZXMsIG9yIGRpZ2l0cyAoMC05KS5cbiAqICAgKyAgTXVzdCBjb250YWluIDEgdG8gNjMgY2hhcmFjdGVycy5cbiAqICAgKyAgQ2FuJ3QgYmUgYSB3b3JkIHJlc2VydmVkIGJ5IHRoZSBzcGVjaWZpZWQgZGF0YWJhc2UgZW5naW5lXG4gKiAgIFxuICogICAqT3JhY2xlKiBcbiAqICBUaGUgT3JhY2xlIFN5c3RlbSBJRCAoU0lEKSBvZiB0aGUgY3JlYXRlZCBEQiBpbnN0YW5jZS4gSWYgeW91IHNwZWNpZnkgYGBudWxsYGAsIHRoZSBkZWZhdWx0IHZhbHVlIGBgT1JDTGBgIGlzIHVzZWQuIFlvdSBjYW4ndCBzcGVjaWZ5IHRoZSBzdHJpbmcgTlVMTCwgb3IgYW55IG90aGVyIHJlc2VydmVkIHdvcmQsIGZvciBgYERCTmFtZWBgLiBcbiAqICBEZWZhdWx0OiBgYE9SQ0xgYFxuICogIENvbnN0cmFpbnRzOlxuICogICArICBDYW4ndCBiZSBsb25nZXIgdGhhbiA4IGNoYXJhY3RlcnNcbiAqICAgXG4gKiAgICpTUUwgU2VydmVyKiBcbiAqICBOb3QgYXBwbGljYWJsZS4gTXVzdCBiZSBudWxsLlxuICovXG5EQk5hbWU/OiBzdHJpbmdcbi8qKlxuICogVGhlIG5hbWUgb2YgYW4gZXhpc3RpbmcgREIgcGFyYW1ldGVyIGdyb3VwIG9yIGEgcmVmZXJlbmNlIHRvIGFuIFtBV1M6OlJEUzo6REJQYXJhbWV0ZXJHcm91cF0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtcmRzLWRicGFyYW1ldGVyZ3JvdXAuaHRtbCkgcmVzb3VyY2UgY3JlYXRlZCBpbiB0aGUgdGVtcGxhdGUuXG4gKiAgVG8gbGlzdCBhbGwgb2YgdGhlIGF2YWlsYWJsZSBEQiBwYXJhbWV0ZXIgZ3JvdXAgbmFtZXMsIHVzZSB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6XG4gKiAgIGBgYXdzIHJkcyBkZXNjcmliZS1kYi1wYXJhbWV0ZXItZ3JvdXBzIC0tcXVlcnkgXCJEQlBhcmFtZXRlckdyb3Vwc1tdLkRCUGFyYW1ldGVyR3JvdXBOYW1lXCIgLS1vdXRwdXQgdGV4dGBgIFxuICogICBJZiBhbnkgb2YgdGhlIGRhdGEgbWVtYmVycyBvZiB0aGUgcmVmZXJlbmNlZCBwYXJhbWV0ZXIgZ3JvdXAgYXJlIGNoYW5nZWQgZHVyaW5nIGFuIHVwZGF0ZSwgdGhlIERCIGluc3RhbmNlIG1pZ2h0IG5lZWQgdG8gYmUgcmVzdGFydGVkLCB3aGljaCBjYXVzZXMgc29tZSBpbnRlcnJ1cHRpb24uIElmIHRoZSBwYXJhbWV0ZXIgZ3JvdXAgY29udGFpbnMgc3RhdGljIHBhcmFtZXRlcnMsIHdoZXRoZXIgdGhleSB3ZXJlIGNoYW5nZWQgb3Igbm90LCBhbiB1cGRhdGUgdHJpZ2dlcnMgYSByZWJvb3QuXG4gKiAgIElmIHlvdSBkb24ndCBzcGVjaWZ5IGEgdmFsdWUgZm9yIGBgREJQYXJhbWV0ZXJHcm91cE5hbWVgYCBwcm9wZXJ0eSwgdGhlIGRlZmF1bHQgREIgcGFyYW1ldGVyIGdyb3VwIGZvciB0aGUgc3BlY2lmaWVkIGVuZ2luZSBhbmQgZW5naW5lIHZlcnNpb24gaXMgdXNlZC5cbiAqL1xuREJQYXJhbWV0ZXJHcm91cE5hbWU/OiBzdHJpbmdcbi8qKlxuICogQSBsaXN0IG9mIHRoZSBEQiBzZWN1cml0eSBncm91cHMgdG8gYXNzaWduIHRvIHRoZSBEQiBpbnN0YW5jZS4gVGhlIGxpc3QgY2FuIGluY2x1ZGUgYm90aCB0aGUgbmFtZSBvZiBleGlzdGluZyBEQiBzZWN1cml0eSBncm91cHMgb3IgcmVmZXJlbmNlcyB0byBBV1M6OlJEUzo6REJTZWN1cml0eUdyb3VwIHJlc291cmNlcyBjcmVhdGVkIGluIHRoZSB0ZW1wbGF0ZS5cbiAqICAgSWYgeW91IHNldCBEQlNlY3VyaXR5R3JvdXBzLCB5b3UgbXVzdCBub3Qgc2V0IFZQQ1NlY3VyaXR5R3JvdXBzLCBhbmQgdmljZSB2ZXJzYS4gQWxzbywgbm90ZSB0aGF0IHRoZSBEQlNlY3VyaXR5R3JvdXBzIHByb3BlcnR5IGV4aXN0cyBvbmx5IGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSB3aXRoIG9sZGVyIHJlZ2lvbnMgYW5kIGlzIG5vIGxvbmdlciByZWNvbW1lbmRlZCBmb3IgcHJvdmlkaW5nIHNlY3VyaXR5IGluZm9ybWF0aW9uIHRvIGFuIFJEUyBEQiBpbnN0YW5jZS4gSW5zdGVhZCwgdXNlIFZQQ1NlY3VyaXR5R3JvdXBzLlxuICogICBJZiB5b3Ugc3BlY2lmeSB0aGlzIHByb3BlcnR5LCBBV1MgQ2xvdWRGb3JtYXRpb24gc2VuZHMgb25seSB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXMgKGlmIHNwZWNpZmllZCkgdG8gQW1hem9uIFJEUyBkdXJpbmcgY3JlYXRlIG9wZXJhdGlvbnM6XG4gKiAgICsgICBgYEFsbG9jYXRlZFN0b3JhZ2VgYCBcbiAqICAgKyAgIGBgQXV0b01pbm9yVmVyc2lvblVwZ3JhZGVgYCBcbiAqICAgKyAgIGBgQXZhaWxhYmlsaXR5Wm9uZWBgIFxuICogICArICAgYGBCYWNrdXBSZXRlbnRpb25QZXJpb2RgYCBcbiAqICAgKyAgIGBgQ2hhcmFjdGVyU2V0TmFtZWBgIFxuICogICArICAgYGBEQkluc3RhbmNlQ2xhc3NgYCBcbiAqICAgKyAgIGBgREJOYW1lYGAgXG4gKiAgICsgICBgYERCUGFyYW1ldGVyR3JvdXBOYW1lYGAgXG4gKiAgICsgICBgYERCU2VjdXJpdHlHcm91cHNgYCBcbiAqICAgKyAgIGBgREJTdWJuZXRHcm91cE5hbWVgYCBcbiAqICAgKyAgIGBgRW5naW5lYGAgXG4gKiAgICsgICBgYEVuZ2luZVZlcnNpb25gYCBcbiAqICAgKyAgIGBgSW9wc2BgIFxuICogICArICAgYGBMaWNlbnNlTW9kZWxgYCBcbiAqICAgKyAgIGBgTWFzdGVyVXNlcm5hbWVgYCBcbiAqICAgKyAgIGBgTWFzdGVyVXNlclBhc3N3b3JkYGAgXG4gKiAgICsgICBgYE11bHRpQVpgYCBcbiAqICAgKyAgIGBgT3B0aW9uR3JvdXBOYW1lYGAgXG4gKiAgICsgICBgYFByZWZlcnJlZEJhY2t1cFdpbmRvd2BgIFxuICogICArICAgYGBQcmVmZXJyZWRNYWludGVuYW5jZVdpbmRvd2BgIFxuICogICBcbiAqICBBbGwgb3RoZXIgcHJvcGVydGllcyBhcmUgaWdub3JlZC4gU3BlY2lmeSBhIHZpcnR1YWwgcHJpdmF0ZSBjbG91ZCAoVlBDKSBzZWN1cml0eSBncm91cCBpZiB5b3Ugd2FudCB0byBzdWJtaXQgb3RoZXIgcHJvcGVydGllcywgc3VjaCBhcyBgYFN0b3JhZ2VUeXBlYGAsIGBgU3RvcmFnZUVuY3J5cHRlZGBgLCBvciBgYEttc0tleUlkYGAuIElmIHlvdSdyZSBhbHJlYWR5IHVzaW5nIHRoZSBgYERCU2VjdXJpdHlHcm91cHNgYCBwcm9wZXJ0eSwgeW91IGNhbid0IHVzZSB0aGVzZSBvdGhlciBwcm9wZXJ0aWVzIGJ5IHVwZGF0aW5nIHlvdXIgREIgaW5zdGFuY2UgdG8gdXNlIGEgVlBDIHNlY3VyaXR5IGdyb3VwLiBZb3UgbXVzdCByZWNyZWF0ZSB0aGUgREIgaW5zdGFuY2UuXG4gKi9cbkRCU2VjdXJpdHlHcm91cHM/OiBzdHJpbmdbXVxuLyoqXG4gKiBUaGUgbmFtZSBvciBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKSBvZiB0aGUgREIgc25hcHNob3QgdGhhdCdzIHVzZWQgdG8gcmVzdG9yZSB0aGUgREIgaW5zdGFuY2UuIElmIHlvdSdyZSByZXN0b3JpbmcgZnJvbSBhIHNoYXJlZCBtYW51YWwgREIgc25hcHNob3QsIHlvdSBtdXN0IHNwZWNpZnkgdGhlIEFSTiBvZiB0aGUgc25hcHNob3QuXG4gKiAgQnkgc3BlY2lmeWluZyB0aGlzIHByb3BlcnR5LCB5b3UgY2FuIGNyZWF0ZSBhIERCIGluc3RhbmNlIGZyb20gdGhlIHNwZWNpZmllZCBEQiBzbmFwc2hvdC4gSWYgdGhlIGBgREJTbmFwc2hvdElkZW50aWZpZXJgYCBwcm9wZXJ0eSBpcyBhbiBlbXB0eSBzdHJpbmcgb3IgdGhlIGBgQVdTOjpSRFM6OkRCSW5zdGFuY2VgYCBkZWNsYXJhdGlvbiBoYXMgbm8gYGBEQlNuYXBzaG90SWRlbnRpZmllcmBgIHByb3BlcnR5LCBBV1MgQ2xvdWRGb3JtYXRpb24gY3JlYXRlcyBhIG5ldyBkYXRhYmFzZS4gSWYgdGhlIHByb3BlcnR5IGNvbnRhaW5zIGEgdmFsdWUgKG90aGVyIHRoYW4gYW4gZW1wdHkgc3RyaW5nKSwgQVdTIENsb3VkRm9ybWF0aW9uIGNyZWF0ZXMgYSBkYXRhYmFzZSBmcm9tIHRoZSBzcGVjaWZpZWQgc25hcHNob3QuIElmIGEgc25hcHNob3Qgd2l0aCB0aGUgc3BlY2lmaWVkIG5hbWUgZG9lc24ndCBleGlzdCwgQVdTIENsb3VkRm9ybWF0aW9uIGNhbid0IGNyZWF0ZSB0aGUgZGF0YWJhc2UgYW5kIGl0IHJvbGxzIGJhY2sgdGhlIHN0YWNrLlxuICogIFNvbWUgREIgaW5zdGFuY2UgcHJvcGVydGllcyBhcmVuJ3QgdmFsaWQgd2hlbiB5b3UgcmVzdG9yZSBmcm9tIGEgc25hcHNob3QsIHN1Y2ggYXMgdGhlIGBgTWFzdGVyVXNlcm5hbWVgYCBhbmQgYGBNYXN0ZXJVc2VyUGFzc3dvcmRgYCBwcm9wZXJ0aWVzLCBhbmQgdGhlIHBvaW50LWluLXRpbWUgcmVjb3ZlcnkgcHJvcGVydGllcyBgYFJlc3RvcmVUaW1lYGAgYW5kIGBgVXNlTGF0ZXN0UmVzdG9yYWJsZVRpbWVgYC4gRm9yIGluZm9ybWF0aW9uIGFib3V0IHRoZSBwcm9wZXJ0aWVzIHRoYXQgeW91IGNhbiBzcGVjaWZ5LCBzZWUgdGhlIFtSZXN0b3JlREJJbnN0YW5jZUZyb21EQlNuYXBzaG90XShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUkRTL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX1Jlc3RvcmVEQkluc3RhbmNlRnJvbURCU25hcHNob3QuaHRtbCkgYWN0aW9uIGluIHRoZSAqQW1hem9uIFJEUyBBUEkgUmVmZXJlbmNlKi5cbiAqICBBZnRlciB5b3UgcmVzdG9yZSBhIERCIGluc3RhbmNlIHdpdGggYSBgYERCU25hcHNob3RJZGVudGlmaWVyYGAgcHJvcGVydHksIHlvdSBtdXN0IHNwZWNpZnkgdGhlIHNhbWUgYGBEQlNuYXBzaG90SWRlbnRpZmllcmBgIHByb3BlcnR5IGZvciBhbnkgZnV0dXJlIHVwZGF0ZXMgdG8gdGhlIERCIGluc3RhbmNlLiBXaGVuIHlvdSBzcGVjaWZ5IHRoaXMgcHJvcGVydHkgZm9yIGFuIHVwZGF0ZSwgdGhlIERCIGluc3RhbmNlIGlzIG5vdCByZXN0b3JlZCBmcm9tIHRoZSBEQiBzbmFwc2hvdCBhZ2FpbiwgYW5kIHRoZSBkYXRhIGluIHRoZSBkYXRhYmFzZSBpcyBub3QgY2hhbmdlZC4gSG93ZXZlciwgaWYgeW91IGRvbid0IHNwZWNpZnkgdGhlIGBgREJTbmFwc2hvdElkZW50aWZpZXJgYCBwcm9wZXJ0eSwgYW4gZW1wdHkgREIgaW5zdGFuY2UgaXMgY3JlYXRlZCwgYW5kIHRoZSBvcmlnaW5hbCBEQiBpbnN0YW5jZSBpcyBkZWxldGVkLiBJZiB5b3Ugc3BlY2lmeSBhIHByb3BlcnR5IHRoYXQgaXMgZGlmZmVyZW50IGZyb20gdGhlIHByZXZpb3VzIHNuYXBzaG90IHJlc3RvcmUgcHJvcGVydHksIGEgbmV3IERCIGluc3RhbmNlIGlzIHJlc3RvcmVkIGZyb20gdGhlIHNwZWNpZmllZCBgYERCU25hcHNob3RJZGVudGlmaWVyYGAgcHJvcGVydHksIGFuZCB0aGUgb3JpZ2luYWwgREIgaW5zdGFuY2UgaXMgZGVsZXRlZC5cbiAqICBJZiB5b3Ugc3BlY2lmeSB0aGUgYGBEQlNuYXBzaG90SWRlbnRpZmllcmBgIHByb3BlcnR5IHRvIHJlc3RvcmUgYSBEQiBpbnN0YW5jZSAoYXMgb3Bwb3NlZCB0byBzcGVjaWZ5aW5nIGl0IGZvciBEQiBpbnN0YW5jZSB1cGRhdGVzKSwgdGhlbiBkb24ndCBzcGVjaWZ5IHRoZSBmb2xsb3dpbmcgcHJvcGVydGllczpcbiAqICAgKyAgIGBgQ2hhcmFjdGVyU2V0TmFtZWBgIFxuICogICArICAgYGBEQkNsdXN0ZXJJZGVudGlmaWVyYGAgXG4gKiAgICsgICBgYERCTmFtZWBgIFxuICogICArICAgYGBLbXNLZXlJZGBgIFxuICogICArICAgYGBNYXN0ZXJVc2VybmFtZWBgIFxuICogICArICAgYGBNYXN0ZXJVc2VyUGFzc3dvcmRgYCBcbiAqICAgKyAgIGBgUHJvbW90aW9uVGllcmBgIFxuICogICArICAgYGBTb3VyY2VEQkluc3RhbmNlSWRlbnRpZmllcmBgIFxuICogICArICAgYGBTb3VyY2VSZWdpb25gYCBcbiAqICAgKyAgYGBTdG9yYWdlRW5jcnlwdGVkYGAgKGZvciBhbiB1bmVuY3J5cHRlZCBzbmFwc2hvdClcbiAqICAgKyAgIGBgVGltZXpvbmVgYCBcbiAqICAgXG4gKiAgICpBbWF6b24gQXVyb3JhKiBcbiAqICBOb3QgYXBwbGljYWJsZS4gU25hcHNob3QgcmVzdG9yZSBpcyBtYW5hZ2VkIGJ5IHRoZSBEQiBjbHVzdGVyLlxuICovXG5EQlNuYXBzaG90SWRlbnRpZmllcj86IHN0cmluZ1xuLyoqXG4gKiBBIERCIHN1Ym5ldCBncm91cCB0byBhc3NvY2lhdGUgd2l0aCB0aGUgREIgaW5zdGFuY2UuIElmIHlvdSB1cGRhdGUgdGhpcyB2YWx1ZSwgdGhlIG5ldyBzdWJuZXQgZ3JvdXAgbXVzdCBiZSBhIHN1Ym5ldCBncm91cCBpbiBhIG5ldyBWUEMuIFxuICogIElmIHlvdSBkb24ndCBzcGVjaWZ5IGEgREIgc3VibmV0IGdyb3VwLCBSRFMgdXNlcyB0aGUgZGVmYXVsdCBEQiBzdWJuZXQgZ3JvdXAgaWYgb25lIGV4aXN0cy4gSWYgYSBkZWZhdWx0IERCIHN1Ym5ldCBncm91cCBkb2VzIG5vdCBleGlzdCwgYW5kIHlvdSBkb24ndCBzcGVjaWZ5IGEgYGBEQlN1Ym5ldEdyb3VwTmFtZWBgLCB0aGUgREIgaW5zdGFuY2UgZmFpbHMgdG8gbGF1bmNoLiBcbiAqICBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB1c2luZyBBbWF6b24gUkRTIGluIGEgVlBDLCBzZWUgW0FtYXpvbiBWUEMgYW5kIEFtYXpvbiBSRFNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L1VzZXJHdWlkZS9VU0VSX1ZQQy5odG1sKSBpbiB0aGUgKkFtYXpvbiBSRFMgVXNlciBHdWlkZSouIFxuICogIFRoaXMgc2V0dGluZyBkb2Vzbid0IGFwcGx5IHRvIEFtYXpvbiBBdXJvcmEgREIgaW5zdGFuY2VzLiBUaGUgREIgc3VibmV0IGdyb3VwIGlzIG1hbmFnZWQgYnkgdGhlIERCIGNsdXN0ZXIuIElmIHNwZWNpZmllZCwgdGhlIHNldHRpbmcgbXVzdCBtYXRjaCB0aGUgREIgY2x1c3RlciBzZXR0aW5nLlxuICovXG5EQlN1Ym5ldEdyb3VwTmFtZT86IHN0cmluZ1xuLyoqXG4gKiBUaGUgT3JhY2xlIHN5c3RlbSBpZGVudGlmaWVyIChTSUQpLCB3aGljaCBpcyB0aGUgbmFtZSBvZiB0aGUgT3JhY2xlIGRhdGFiYXNlIGluc3RhbmNlIHRoYXQgbWFuYWdlcyB5b3VyIGRhdGFiYXNlIGZpbGVzLiBJbiB0aGlzIGNvbnRleHQsIHRoZSB0ZXJtIFwiT3JhY2xlIGRhdGFiYXNlIGluc3RhbmNlXCIgcmVmZXJzIGV4Y2x1c2l2ZWx5IHRvIHRoZSBzeXN0ZW0gZ2xvYmFsIGFyZWEgKFNHQSkgYW5kIE9yYWNsZSBiYWNrZ3JvdW5kIHByb2Nlc3Nlcy4gSWYgeW91IGRvbid0IHNwZWNpZnkgYSBTSUQsIHRoZSB2YWx1ZSBkZWZhdWx0cyB0byBgYFJEU0NEQmBgLiBUaGUgT3JhY2xlIFNJRCBpcyBhbHNvIHRoZSBuYW1lIG9mIHlvdXIgQ0RCLlxuICovXG5EQlN5c3RlbUlkPzogc3RyaW5nXG4vKipcbiAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBEQiBpbnN0YW5jZSBoYXMgYSBkZWRpY2F0ZWQgbG9nIHZvbHVtZSAoRExWKSBlbmFibGVkLlxuICovXG5EZWRpY2F0ZWRMb2dWb2x1bWU/OiBib29sZWFuXG4vKipcbiAqIEEgdmFsdWUgdGhhdCBpbmRpY2F0ZXMgd2hldGhlciB0byByZW1vdmUgYXV0b21hdGVkIGJhY2t1cHMgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlIERCIGluc3RhbmNlIGlzIGRlbGV0ZWQuIFRoaXMgcGFyYW1ldGVyIGlzbid0IGNhc2Utc2Vuc2l0aXZlLiBUaGUgZGVmYXVsdCBpcyB0byByZW1vdmUgYXV0b21hdGVkIGJhY2t1cHMgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlIERCIGluc3RhbmNlIGlzIGRlbGV0ZWQuXG4gKiAgICpBbWF6b24gQXVyb3JhKiBcbiAqICBOb3QgYXBwbGljYWJsZS4gV2hlbiB5b3UgZGVsZXRlIGEgREIgY2x1c3RlciwgYWxsIGF1dG9tYXRlZCBiYWNrdXBzIGZvciB0aGF0IERCIGNsdXN0ZXIgYXJlIGRlbGV0ZWQgYW5kIGNhbid0IGJlIHJlY292ZXJlZC4gTWFudWFsIERCIGNsdXN0ZXIgc25hcHNob3RzIG9mIHRoZSBEQiBjbHVzdGVyIGFyZSBub3QgZGVsZXRlZC5cbiAqL1xuRGVsZXRlQXV0b21hdGVkQmFja3Vwcz86IGJvb2xlYW5cbi8qKlxuICogU3BlY2lmaWVzIHdoZXRoZXIgdGhlIERCIGluc3RhbmNlIGhhcyBkZWxldGlvbiBwcm90ZWN0aW9uIGVuYWJsZWQuIFRoZSBkYXRhYmFzZSBjYW4ndCBiZSBkZWxldGVkIHdoZW4gZGVsZXRpb24gcHJvdGVjdGlvbiBpcyBlbmFibGVkLiBCeSBkZWZhdWx0LCBkZWxldGlvbiBwcm90ZWN0aW9uIGlzbid0IGVuYWJsZWQuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW0RlbGV0aW5nIGEgREIgSW5zdGFuY2VdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L1VzZXJHdWlkZS9VU0VSX0RlbGV0ZUluc3RhbmNlLmh0bWwpLlxuICogIFRoaXMgc2V0dGluZyBkb2Vzbid0IGFwcGx5IHRvIEFtYXpvbiBBdXJvcmEgREIgaW5zdGFuY2VzLiBZb3UgY2FuIGVuYWJsZSBvciBkaXNhYmxlIGRlbGV0aW9uIHByb3RlY3Rpb24gZm9yIHRoZSBEQiBjbHVzdGVyLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIGBgQ3JlYXRlREJDbHVzdGVyYGAuIERCIGluc3RhbmNlcyBpbiBhIERCIGNsdXN0ZXIgY2FuIGJlIGRlbGV0ZWQgZXZlbiB3aGVuIGRlbGV0aW9uIHByb3RlY3Rpb24gaXMgZW5hYmxlZCBmb3IgdGhlIERCIGNsdXN0ZXIuXG4gKi9cbkRlbGV0aW9uUHJvdGVjdGlvbj86IGJvb2xlYW5cbi8qKlxuICogVGhlIEFjdGl2ZSBEaXJlY3RvcnkgZGlyZWN0b3J5IElEIHRvIGNyZWF0ZSB0aGUgREIgaW5zdGFuY2UgaW4uIEN1cnJlbnRseSwgb25seSBEYjIsIE15U1FMLCBNaWNyb3NvZnQgU1FMIFNlcnZlciwgT3JhY2xlLCBhbmQgUG9zdGdyZVNRTCBEQiBpbnN0YW5jZXMgY2FuIGJlIGNyZWF0ZWQgaW4gYW4gQWN0aXZlIERpcmVjdG9yeSBEb21haW4uXG4gKiAgRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbS2VyYmVyb3MgQXV0aGVudGljYXRpb25dKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L1VzZXJHdWlkZS9rZXJiZXJvcy1hdXRoZW50aWNhdGlvbi5odG1sKSBpbiB0aGUgKkFtYXpvbiBSRFMgVXNlciBHdWlkZSouXG4gKi9cbkRvbWFpbj86IHN0cmluZ1xuLyoqXG4gKiBUaGUgQVJOIGZvciB0aGUgU2VjcmV0cyBNYW5hZ2VyIHNlY3JldCB3aXRoIHRoZSBjcmVkZW50aWFscyBmb3IgdGhlIHVzZXIgam9pbmluZyB0aGUgZG9tYWluLlxuICogIEV4YW1wbGU6IGBgYXJuOmF3czpzZWNyZXRzbWFuYWdlcjpyZWdpb246YWNjb3VudC1udW1iZXI6c2VjcmV0Om15c2VsZm1hbmFnZWRBRHRlc3RzZWNyZXQtMTIzNDU2YGBcbiAqL1xuRG9tYWluQXV0aFNlY3JldEFybj86IHN0cmluZ1xuLyoqXG4gKiBUaGUgSVB2NCBETlMgSVAgYWRkcmVzc2VzIG9mIHlvdXIgcHJpbWFyeSBhbmQgc2Vjb25kYXJ5IEFjdGl2ZSBEaXJlY3RvcnkgZG9tYWluIGNvbnRyb2xsZXJzLlxuICogIENvbnN0cmFpbnRzOlxuICogICArICBUd28gSVAgYWRkcmVzc2VzIG11c3QgYmUgcHJvdmlkZWQuIElmIHRoZXJlIGlzbid0IGEgc2Vjb25kYXJ5IGRvbWFpbiBjb250cm9sbGVyLCB1c2UgdGhlIElQIGFkZHJlc3Mgb2YgdGhlIHByaW1hcnkgZG9tYWluIGNvbnRyb2xsZXIgZm9yIGJvdGggZW50cmllcyBpbiB0aGUgbGlzdC5cbiAqICAgXG4gKiAgRXhhbXBsZTogYGAxMjMuMTI0LjEyNS4xMjYsMjM0LjIzNS4yMzYuMjM3YGBcbiAqL1xuRG9tYWluRG5zSXBzPzogc3RyaW5nW11cbi8qKlxuICogVGhlIGZ1bGx5IHF1YWxpZmllZCBkb21haW4gbmFtZSAoRlFETikgb2YgYW4gQWN0aXZlIERpcmVjdG9yeSBkb21haW4uXG4gKiAgQ29uc3RyYWludHM6XG4gKiAgICsgIENhbid0IGJlIGxvbmdlciB0aGFuIDY0IGNoYXJhY3RlcnMuXG4gKiAgIFxuICogIEV4YW1wbGU6IGBgbXltYW5hZ2VkQUR0ZXN0Lm15bWFuYWdlZEFELm15ZG9tYWluYGBcbiAqL1xuRG9tYWluRnFkbj86IHN0cmluZ1xuLyoqXG4gKiBUaGUgbmFtZSBvZiB0aGUgSUFNIHJvbGUgdG8gdXNlIHdoZW4gbWFraW5nIEFQSSBjYWxscyB0byB0aGUgRGlyZWN0b3J5IFNlcnZpY2UuXG4gKiAgVGhpcyBzZXR0aW5nIGRvZXNuJ3QgYXBwbHkgdG8gdGhlIGZvbGxvd2luZyBEQiBpbnN0YW5jZXM6XG4gKiAgICsgIEFtYXpvbiBBdXJvcmEgKFRoZSBkb21haW4gaXMgbWFuYWdlZCBieSB0aGUgREIgY2x1c3Rlci4pXG4gKiAgICsgIFJEUyBDdXN0b21cbiAqL1xuRG9tYWluSUFNUm9sZU5hbWU/OiBzdHJpbmdcbi8qKlxuICogVGhlIEFjdGl2ZSBEaXJlY3Rvcnkgb3JnYW5pemF0aW9uYWwgdW5pdCBmb3IgeW91ciBEQiBpbnN0YW5jZSB0byBqb2luLlxuICogIENvbnN0cmFpbnRzOlxuICogICArICBNdXN0IGJlIGluIHRoZSBkaXN0aW5ndWlzaGVkIG5hbWUgZm9ybWF0LlxuICogICArICBDYW4ndCBiZSBsb25nZXIgdGhhbiA2NCBjaGFyYWN0ZXJzLlxuICogICBcbiAqICBFeGFtcGxlOiBgYE9VPW15bWFuYWdlZEFEdGVzdE9VLERDPW15bWFuYWdlZEFEdGVzdCxEQz1teW1hbmFnZWRBRCxEQz1teWRvbWFpbmBgXG4gKi9cbkRvbWFpbk91Pzogc3RyaW5nXG4vKipcbiAqIFRoZSBsaXN0IG9mIGxvZyB0eXBlcyB0aGF0IG5lZWQgdG8gYmUgZW5hYmxlZCBmb3IgZXhwb3J0aW5nIHRvIENsb3VkV2F0Y2ggTG9ncy4gVGhlIHZhbHVlcyBpbiB0aGUgbGlzdCBkZXBlbmQgb24gdGhlIERCIGVuZ2luZSBiZWluZyB1c2VkLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtQdWJsaXNoaW5nIERhdGFiYXNlIExvZ3MgdG8gQW1hem9uIENsb3VkV2F0Y2ggTG9nc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvVXNlckd1aWRlL1VTRVJfTG9nQWNjZXNzLmh0bWwjVVNFUl9Mb2dBY2Nlc3MuUHJvY2VkdXJhbC5VcGxvYWR0b0Nsb3VkV2F0Y2gpIGluIHRoZSAqQW1hem9uIFJlbGF0aW9uYWwgRGF0YWJhc2UgU2VydmljZSBVc2VyIEd1aWRlKi5cbiAqICAgKkFtYXpvbiBBdXJvcmEqIFxuICogIE5vdCBhcHBsaWNhYmxlLiBDbG91ZFdhdGNoIExvZ3MgZXhwb3J0cyBhcmUgbWFuYWdlZCBieSB0aGUgREIgY2x1c3Rlci4gXG4gKiAgICpEYjIqIFxuICogIFZhbGlkIHZhbHVlczogYGBkaWFnLmxvZ2BgLCBgYG5vdGlmeS5sb2dgYFxuICogICAqTWFyaWFEQiogXG4gKiAgVmFsaWQgdmFsdWVzOiBgYGF1ZGl0YGAsIGBgZXJyb3JgYCwgYGBnZW5lcmFsYGAsIGBgc2xvd3F1ZXJ5YGBcbiAqICAgKk1pY3Jvc29mdCBTUUwgU2VydmVyKiBcbiAqICBWYWxpZCB2YWx1ZXM6IGBgYWdlbnRgYCwgYGBlcnJvcmBgXG4gKiAgICpNeVNRTCogXG4gKiAgVmFsaWQgdmFsdWVzOiBgYGF1ZGl0YGAsIGBgZXJyb3JgYCwgYGBnZW5lcmFsYGAsIGBgc2xvd3F1ZXJ5YGBcbiAqICAgKk9yYWNsZSogXG4gKiAgVmFsaWQgdmFsdWVzOiBgYGFsZXJ0YGAsIGBgYXVkaXRgYCwgYGBsaXN0ZW5lcmBgLCBgYHRyYWNlYGAsIGBgb2VtYWdlbnRgYFxuICogICAqUG9zdGdyZVNRTCogXG4gKiAgVmFsaWQgdmFsdWVzOiBgYHBvc3RncmVzcWxgYCwgYGB1cGdyYWRlYGBcbiAqL1xuRW5hYmxlQ2xvdWR3YXRjaExvZ3NFeHBvcnRzPzogc3RyaW5nW11cbi8qKlxuICogQSB2YWx1ZSB0aGF0IGluZGljYXRlcyB3aGV0aGVyIHRvIGVuYWJsZSBtYXBwaW5nIG9mIEFXUyBJZGVudGl0eSBhbmQgQWNjZXNzIE1hbmFnZW1lbnQgKElBTSkgYWNjb3VudHMgdG8gZGF0YWJhc2UgYWNjb3VudHMuIEJ5IGRlZmF1bHQsIG1hcHBpbmcgaXMgZGlzYWJsZWQuXG4gKiAgVGhpcyBwcm9wZXJ0eSBpcyBzdXBwb3J0ZWQgZm9yIFJEUyBmb3IgTWFyaWFEQiwgUkRTIGZvciBNeVNRTCwgYW5kIFJEUyBmb3IgUG9zdGdyZVNRTC4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbSUFNIERhdGFiYXNlIEF1dGhlbnRpY2F0aW9uIGZvciBNYXJpYURCLCBNeVNRTCwgYW5kIFBvc3RncmVTUUxdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L1VzZXJHdWlkZS9Vc2luZ1dpdGhSRFMuSUFNREJBdXRoLmh0bWwpIGluIHRoZSAqQW1hem9uIFJEUyBVc2VyIEd1aWRlLipcbiAqICAgKkFtYXpvbiBBdXJvcmEqIFxuICogIE5vdCBhcHBsaWNhYmxlLiBNYXBwaW5nIEFXUyBJQU0gYWNjb3VudHMgdG8gZGF0YWJhc2UgYWNjb3VudHMgaXMgbWFuYWdlZCBieSB0aGUgREIgY2x1c3Rlci5cbiAqL1xuRW5hYmxlSUFNRGF0YWJhc2VBdXRoZW50aWNhdGlvbj86IGJvb2xlYW5cbi8qKlxuICogU3BlY2lmaWVzIHdoZXRoZXIgdG8gZW5hYmxlIFBlcmZvcm1hbmNlIEluc2lnaHRzIGZvciB0aGUgREIgaW5zdGFuY2UuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW1VzaW5nIEFtYXpvbiBQZXJmb3JtYW5jZSBJbnNpZ2h0c10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvVXNlckd1aWRlL1VTRVJfUGVyZkluc2lnaHRzLmh0bWwpIGluIHRoZSAqQW1hem9uIFJEUyBVc2VyIEd1aWRlKi5cbiAqICBUaGlzIHNldHRpbmcgZG9lc24ndCBhcHBseSB0byBSRFMgQ3VzdG9tIERCIGluc3RhbmNlcy5cbiAqL1xuRW5hYmxlUGVyZm9ybWFuY2VJbnNpZ2h0cz86IGJvb2xlYW5cbkVuZHBvaW50PzogRW5kcG9pbnRcbi8qKlxuICogVGhlIG5hbWUgb2YgdGhlIGRhdGFiYXNlIGVuZ2luZSB0byB1c2UgZm9yIHRoaXMgREIgaW5zdGFuY2UuIE5vdCBldmVyeSBkYXRhYmFzZSBlbmdpbmUgaXMgYXZhaWxhYmxlIGluIGV2ZXJ5IEFXUyBSZWdpb24uXG4gKiAgVGhpcyBwcm9wZXJ0eSBpcyByZXF1aXJlZCB3aGVuIGNyZWF0aW5nIGEgREIgaW5zdGFuY2UuXG4gKiAgIFlvdSBjYW4gY29udmVydCBhbiBPcmFjbGUgZGF0YWJhc2UgZnJvbSB0aGUgbm9uLUNEQiBhcmNoaXRlY3R1cmUgdG8gdGhlIGNvbnRhaW5lciBkYXRhYmFzZSAoQ0RCKSBhcmNoaXRlY3R1cmUgYnkgdXBkYXRpbmcgdGhlIGBgRW5naW5lYGAgdmFsdWUgaW4geW91ciB0ZW1wbGF0ZXMgZnJvbSBgYG9yYWNsZS1lZWBgIHRvIGBgb3JhY2xlLWVlLWNkYmBgIG9yIGZyb20gYGBvcmFjbGUtc2UyYGAgdG8gYGBvcmFjbGUtc2UyLWNkYmBgLiBDb252ZXJ0aW5nIHRvIHRoZSBDREIgYXJjaGl0ZWN0dXJlIHJlcXVpcmVzIGFuIGludGVycnVwdGlvbi5cbiAqICAgVmFsaWQgVmFsdWVzOlxuICogICArICBgYGF1cm9yYS1teXNxbGBgIChmb3IgQXVyb3JhIE15U1FMIERCIGluc3RhbmNlcylcbiAqICAgKyAgYGBhdXJvcmEtcG9zdGdyZXNxbGBgIChmb3IgQXVyb3JhIFBvc3RncmVTUUwgREIgaW5zdGFuY2VzKVxuICogICArICBgYGN1c3RvbS1vcmFjbGUtZWVgYCAoZm9yIFJEUyBDdXN0b20gZm9yIE9yYWNsZSBEQiBpbnN0YW5jZXMpXG4gKiAgICsgIGBgY3VzdG9tLW9yYWNsZS1lZS1jZGJgYCAoZm9yIFJEUyBDdXN0b20gZm9yIE9yYWNsZSBEQiBpbnN0YW5jZXMpXG4gKiAgICsgIGBgY3VzdG9tLXNxbHNlcnZlci1lZWBgIChmb3IgUkRTIEN1c3RvbSBmb3IgU1FMIFNlcnZlciBEQiBpbnN0YW5jZXMpXG4gKiAgICsgIGBgY3VzdG9tLXNxbHNlcnZlci1zZWBgIChmb3IgUkRTIEN1c3RvbSBmb3IgU1FMIFNlcnZlciBEQiBpbnN0YW5jZXMpXG4gKiAgICsgIGBgY3VzdG9tLXNxbHNlcnZlci13ZWJgYCAoZm9yIFJEUyBDdXN0b20gZm9yIFNRTCBTZXJ2ZXIgREIgaW5zdGFuY2VzKVxuICogICArICAgYGBkYjItYWVgYCBcbiAqICAgKyAgIGBgZGIyLXNlYGAgXG4gKiAgICsgICBgYG1hcmlhZGJgYCBcbiAqICAgKyAgIGBgbXlzcWxgYCBcbiAqICAgKyAgIGBgb3JhY2xlLWVlYGAgXG4gKiAgICsgICBgYG9yYWNsZS1lZS1jZGJgYCBcbiAqICAgKyAgIGBgb3JhY2xlLXNlMmBgIFxuICogICArICAgYGBvcmFjbGUtc2UyLWNkYmBgIFxuICogICArICAgYGBwb3N0Z3Jlc2BgIFxuICogICArICAgYGBzcWxzZXJ2ZXItZWVgYCBcbiAqICAgKyAgIGBgc3Fsc2VydmVyLXNlYGAgXG4gKiAgICsgICBgYHNxbHNlcnZlci1leGBgIFxuICogICArICAgYGBzcWxzZXJ2ZXItd2ViYGBcbiAqL1xuRW5naW5lPzogc3RyaW5nXG4vKipcbiAqIFRoZSBsaWZlIGN5Y2xlIHR5cGUgZm9yIHRoaXMgREIgaW5zdGFuY2UuXG4gKiAgIEJ5IGRlZmF1bHQsIHRoaXMgdmFsdWUgaXMgc2V0IHRvIGBgb3Blbi1zb3VyY2UtcmRzLWV4dGVuZGVkLXN1cHBvcnRgYCwgd2hpY2ggZW5yb2xscyB5b3VyIERCIGluc3RhbmNlIGludG8gQW1hem9uIFJEUyBFeHRlbmRlZCBTdXBwb3J0LiBBdCB0aGUgZW5kIG9mIHN0YW5kYXJkIHN1cHBvcnQsIHlvdSBjYW4gYXZvaWQgY2hhcmdlcyBmb3IgRXh0ZW5kZWQgU3VwcG9ydCBieSBzZXR0aW5nIHRoZSB2YWx1ZSB0byBgYG9wZW4tc291cmNlLXJkcy1leHRlbmRlZC1zdXBwb3J0LWRpc2FibGVkYGAuIEluIHRoaXMgY2FzZSwgY3JlYXRpbmcgdGhlIERCIGluc3RhbmNlIHdpbGwgZmFpbCBpZiB0aGUgREIgbWFqb3IgdmVyc2lvbiBpcyBwYXN0IGl0cyBlbmQgb2Ygc3RhbmRhcmQgc3VwcG9ydCBkYXRlLlxuICogICBUaGlzIHNldHRpbmcgYXBwbGllcyBvbmx5IHRvIFJEUyBmb3IgTXlTUUwgYW5kIFJEUyBmb3IgUG9zdGdyZVNRTC4gRm9yIEFtYXpvbiBBdXJvcmEgREIgaW5zdGFuY2VzLCB0aGUgbGlmZSBjeWNsZSB0eXBlIGlzIG1hbmFnZWQgYnkgdGhlIERCIGNsdXN0ZXIuXG4gKiAgWW91IGNhbiB1c2UgdGhpcyBzZXR0aW5nIHRvIGVucm9sbCB5b3VyIERCIGluc3RhbmNlIGludG8gQW1hem9uIFJEUyBFeHRlbmRlZCBTdXBwb3J0LiBXaXRoIFJEUyBFeHRlbmRlZCBTdXBwb3J0LCB5b3UgY2FuIHJ1biB0aGUgc2VsZWN0ZWQgbWFqb3IgZW5naW5lIHZlcnNpb24gb24geW91ciBEQiBpbnN0YW5jZSBwYXN0IHRoZSBlbmQgb2Ygc3RhbmRhcmQgc3VwcG9ydCBmb3IgdGhhdCBlbmdpbmUgdmVyc2lvbi4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbQW1hem9uIFJEUyBFeHRlbmRlZCBTdXBwb3J0IHdpdGggQW1hem9uIFJEU10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvVXNlckd1aWRlL2V4dGVuZGVkLXN1cHBvcnQuaHRtbCkgaW4gdGhlICpBbWF6b24gUkRTIFVzZXIgR3VpZGUqLlxuICogIFZhbGlkIFZhbHVlczogYGBvcGVuLXNvdXJjZS1yZHMtZXh0ZW5kZWQtc3VwcG9ydCB8IG9wZW4tc291cmNlLXJkcy1leHRlbmRlZC1zdXBwb3J0LWRpc2FibGVkYGBcbiAqICBEZWZhdWx0OiBgYG9wZW4tc291cmNlLXJkcy1leHRlbmRlZC1zdXBwb3J0YGBcbiAqL1xuRW5naW5lTGlmZWN5Y2xlU3VwcG9ydD86IHN0cmluZ1xuLyoqXG4gKiBUaGUgdmVyc2lvbiBudW1iZXIgb2YgdGhlIGRhdGFiYXNlIGVuZ2luZSB0byB1c2UuXG4gKiAgRm9yIGEgbGlzdCBvZiB2YWxpZCBlbmdpbmUgdmVyc2lvbnMsIHVzZSB0aGUgYGBEZXNjcmliZURCRW5naW5lVmVyc2lvbnNgYCBhY3Rpb24uXG4gKiAgVGhlIGZvbGxvd2luZyBhcmUgdGhlIGRhdGFiYXNlIGVuZ2luZXMgYW5kIGxpbmtzIHRvIGluZm9ybWF0aW9uIGFib3V0IHRoZSBtYWpvciBhbmQgbWlub3IgdmVyc2lvbnMgdGhhdCBhcmUgYXZhaWxhYmxlIHdpdGggQW1hem9uIFJEUy4gTm90IGV2ZXJ5IGRhdGFiYXNlIGVuZ2luZSBpcyBhdmFpbGFibGUgZm9yIGV2ZXJ5IEFXUyBSZWdpb24uXG4gKiAgICpBbWF6b24gQXVyb3JhKiBcbiAqICBOb3QgYXBwbGljYWJsZS4gVGhlIHZlcnNpb24gbnVtYmVyIG9mIHRoZSBkYXRhYmFzZSBlbmdpbmUgdG8gYmUgdXNlZCBieSB0aGUgREIgaW5zdGFuY2UgaXMgbWFuYWdlZCBieSB0aGUgREIgY2x1c3Rlci5cbiAqICAgKkRiMiogXG4gKiAgU2VlIFtBbWF6b24gUkRTIGZvciBEYjJdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L1VzZXJHdWlkZS9DSEFQX0RiMi5odG1sI0RiMi5Db25jZXB0cy5WZXJzaW9uTWdtdCkgaW4gdGhlICpBbWF6b24gUkRTIFVzZXIgR3VpZGUuKlxuICogICAqTWFyaWFEQiogXG4gKiAgU2VlIFtNYXJpYURCIG9uIEFtYXpvbiBSRFMgVmVyc2lvbnNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L1VzZXJHdWlkZS9DSEFQX01hcmlhREIuaHRtbCNNYXJpYURCLkNvbmNlcHRzLlZlcnNpb25NZ210KSBpbiB0aGUgKkFtYXpvbiBSRFMgVXNlciBHdWlkZS4qXG4gKiAgICpNaWNyb3NvZnQgU1FMIFNlcnZlciogXG4gKiAgU2VlIFtNaWNyb3NvZnQgU1FMIFNlcnZlciBWZXJzaW9ucyBvbiBBbWF6b24gUkRTXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUkRTL2xhdGVzdC9Vc2VyR3VpZGUvQ0hBUF9TUUxTZXJ2ZXIuaHRtbCNTUUxTZXJ2ZXIuQ29uY2VwdHMuR2VuZXJhbC5WZXJzaW9uU3VwcG9ydCkgaW4gdGhlICpBbWF6b24gUkRTIFVzZXIgR3VpZGUuKlxuICogICAqTXlTUUwqIFxuICogIFNlZSBbTXlTUUwgb24gQW1hem9uIFJEUyBWZXJzaW9uc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvVXNlckd1aWRlL0NIQVBfTXlTUUwuaHRtbCNNeVNRTC5Db25jZXB0cy5WZXJzaW9uTWdtdCkgaW4gdGhlICpBbWF6b24gUkRTIFVzZXIgR3VpZGUuKlxuICogICAqT3JhY2xlKiBcbiAqICBTZWUgW09yYWNsZSBEYXRhYmFzZSBFbmdpbmUgUmVsZWFzZSBOb3Rlc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvVXNlckd1aWRlL0FwcGVuZGl4Lk9yYWNsZS5QYXRjaENvbXBvc2l0aW9uLmh0bWwpIGluIHRoZSAqQW1hem9uIFJEUyBVc2VyIEd1aWRlLipcbiAqICAgKlBvc3RncmVTUUwqIFxuICogIFNlZSBbU3VwcG9ydGVkIFBvc3RncmVTUUwgRGF0YWJhc2UgVmVyc2lvbnNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L1VzZXJHdWlkZS9DSEFQX1Bvc3RncmVTUUwuaHRtbCNQb3N0Z3JlU1FMLkNvbmNlcHRzLkdlbmVyYWwuREJWZXJzaW9ucykgaW4gdGhlICpBbWF6b24gUkRTIFVzZXIgR3VpZGUuKlxuICovXG5FbmdpbmVWZXJzaW9uPzogc3RyaW5nXG4vKipcbiAqIFNwZWNpZmllcyB3aGV0aGVyIHRvIG1hbmFnZSB0aGUgbWFzdGVyIHVzZXIgcGFzc3dvcmQgd2l0aCBBV1MgU2VjcmV0cyBNYW5hZ2VyLlxuICogIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW1Bhc3N3b3JkIG1hbmFnZW1lbnQgd2l0aCBTZWNyZXRzIE1hbmFnZXJdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L1VzZXJHdWlkZS9yZHMtc2VjcmV0cy1tYW5hZ2VyLmh0bWwpIGluIHRoZSAqQW1hem9uIFJEUyBVc2VyIEd1aWRlLipcbiAqICBDb25zdHJhaW50czpcbiAqICAgKyAgQ2FuJ3QgbWFuYWdlIHRoZSBtYXN0ZXIgdXNlciBwYXNzd29yZCB3aXRoIEFXUyBTZWNyZXRzIE1hbmFnZXIgaWYgYGBNYXN0ZXJVc2VyUGFzc3dvcmRgYCBpcyBzcGVjaWZpZWQuXG4gKi9cbk1hbmFnZU1hc3RlclVzZXJQYXNzd29yZD86IGJvb2xlYW5cbkluc3RhbmNlQ3JlYXRlVGltZT86IHN0cmluZ1xuLyoqXG4gKiBUaGUgbnVtYmVyIG9mIEkvTyBvcGVyYXRpb25zIHBlciBzZWNvbmQgKElPUFMpIHRoYXQgdGhlIGRhdGFiYXNlIHByb3Zpc2lvbnMuIFRoZSB2YWx1ZSBtdXN0IGJlIGVxdWFsIHRvIG9yIGdyZWF0ZXIgdGhhbiAxMDAwLiBcbiAqICBJZiB5b3Ugc3BlY2lmeSB0aGlzIHByb3BlcnR5LCB5b3UgbXVzdCBmb2xsb3cgdGhlIHJhbmdlIG9mIGFsbG93ZWQgcmF0aW9zIG9mIHlvdXIgcmVxdWVzdGVkIElPUFMgcmF0ZSB0byB0aGUgYW1vdW50IG9mIHN0b3JhZ2UgdGhhdCB5b3UgYWxsb2NhdGUgKElPUFMgdG8gYWxsb2NhdGVkIHN0b3JhZ2UpLiBGb3IgZXhhbXBsZSwgeW91IGNhbiBwcm92aXNpb24gYW4gT3JhY2xlIGRhdGFiYXNlIGluc3RhbmNlIHdpdGggMTAwMCBJT1BTIGFuZCAyMDAgR2lCIG9mIHN0b3JhZ2UgKGEgcmF0aW8gb2YgNToxKSwgb3Igc3BlY2lmeSAyMDAwIElPUFMgd2l0aCAyMDAgR2lCIG9mIHN0b3JhZ2UgKGEgcmF0aW8gb2YgMTA6MSkuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW0FtYXpvbiBSRFMgUHJvdmlzaW9uZWQgSU9QUyBTdG9yYWdlIHRvIEltcHJvdmUgUGVyZm9ybWFuY2VdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L0RldmVsb3Blckd1aWRlL0NIQVBfU3RvcmFnZS5odG1sI1VTRVJfUElPUFMpIGluIHRoZSAqQW1hem9uIFJEUyBVc2VyIEd1aWRlKi5cbiAqICAgSWYgeW91IHNwZWNpZnkgYGBpbzFgYCBmb3IgdGhlIGBgU3RvcmFnZVR5cGVgYCBwcm9wZXJ0eSwgdGhlbiB5b3UgbXVzdCBhbHNvIHNwZWNpZnkgdGhlIGBgSW9wc2BgIHByb3BlcnR5LlxuICogICBDb25zdHJhaW50czpcbiAqICAgKyAgRm9yIFJEUyBmb3IgRGIyLCBNYXJpYURCLCBNeVNRTCwgT3JhY2xlLCBhbmQgUG9zdGdyZVNRTCAtIE11c3QgYmUgYSBtdWx0aXBsZSBiZXR3ZWVuIC41IGFuZCA1MCBvZiB0aGUgc3RvcmFnZSBhbW91bnQgZm9yIHRoZSBEQiBpbnN0YW5jZS5cbiAqICAgKyAgRm9yIFJEUyBmb3IgU1FMIFNlcnZlciAtIE11c3QgYmUgYSBtdWx0aXBsZSBiZXR3ZWVuIDEgYW5kIDUwIG9mIHRoZSBzdG9yYWdlIGFtb3VudCBmb3IgdGhlIERCIGluc3RhbmNlLlxuICovXG5Jb3BzPzogbnVtYmVyXG5Jc1N0b3JhZ2VDb25maWdVcGdyYWRlQXZhaWxhYmxlPzogYm9vbGVhblxuLyoqXG4gKiBUaGUgQVJOIG9mIHRoZSBBV1MgS01TIGtleSB0aGF0J3MgdXNlZCB0byBlbmNyeXB0IHRoZSBEQiBpbnN0YW5jZSwgc3VjaCBhcyBgYGFybjphd3M6a21zOnVzLWVhc3QtMTowMTIzNDU2Nzg5MTA6a2V5L2FiY2QxMjM0LWExMjMtNDU2YS1hMTJiLWExMjNiNGNkNTZlZmBgLiBJZiB5b3UgZW5hYmxlIHRoZSBTdG9yYWdlRW5jcnlwdGVkIHByb3BlcnR5IGJ1dCBkb24ndCBzcGVjaWZ5IHRoaXMgcHJvcGVydHksIEFXUyBDbG91ZEZvcm1hdGlvbiB1c2VzIHRoZSBkZWZhdWx0IEtNUyBrZXkuIElmIHlvdSBzcGVjaWZ5IHRoaXMgcHJvcGVydHksIHlvdSBtdXN0IHNldCB0aGUgU3RvcmFnZUVuY3J5cHRlZCBwcm9wZXJ0eSB0byB0cnVlLiBcbiAqICBJZiB5b3Ugc3BlY2lmeSB0aGUgYGBTb3VyY2VEQkluc3RhbmNlSWRlbnRpZmllcmBgIG9yIGBgU291cmNlRGJpUmVzb3VyY2VJZGBgIHByb3BlcnR5LCBkb24ndCBzcGVjaWZ5IHRoaXMgcHJvcGVydHkuIFRoZSB2YWx1ZSBpcyBpbmhlcml0ZWQgZnJvbSB0aGUgc291cmNlIERCIGluc3RhbmNlLCBhbmQgaWYgdGhlIERCIGluc3RhbmNlIGlzIGVuY3J5cHRlZCwgdGhlIHNwZWNpZmllZCBgYEttc0tleUlkYGAgcHJvcGVydHkgaXMgdXNlZC4gSG93ZXZlciwgaWYgdGhlIHNvdXJjZSBEQiBpbnN0YW5jZSBpcyBpbiBhIGRpZmZlcmVudCBBV1MgUmVnaW9uLCB5b3UgbXVzdCBzcGVjaWZ5IGEgS01TIGtleSBJRC5cbiAqICBJZiB5b3Ugc3BlY2lmeSB0aGUgYGBTb3VyY2VEQkluc3RhbmNlQXV0b21hdGVkQmFja3Vwc0FybmBgIHByb3BlcnR5LCBkb24ndCBzcGVjaWZ5IHRoaXMgcHJvcGVydHkuIFRoZSB2YWx1ZSBpcyBpbmhlcml0ZWQgZnJvbSB0aGUgc291cmNlIERCIGluc3RhbmNlIGF1dG9tYXRlZCBiYWNrdXAsIGFuZCBpZiB0aGUgYXV0b21hdGVkIGJhY2t1cCBpcyBlbmNyeXB0ZWQsIHRoZSBzcGVjaWZpZWQgYGBLbXNLZXlJZGBgIHByb3BlcnR5IGlzIHVzZWQuXG4gKiAgSWYgeW91IGNyZWF0ZSBhbiBlbmNyeXB0ZWQgcmVhZCByZXBsaWNhIGluIGEgZGlmZmVyZW50IEFXUyBSZWdpb24sIHRoZW4geW91IG11c3Qgc3BlY2lmeSBhIEtNUyBrZXkgZm9yIHRoZSBkZXN0aW5hdGlvbiBBV1MgUmVnaW9uLiBLTVMgZW5jcnlwdGlvbiBrZXlzIGFyZSBzcGVjaWZpYyB0byB0aGUgcmVnaW9uIHRoYXQgdGhleSdyZSBjcmVhdGVkIGluLCBhbmQgeW91IGNhbid0IHVzZSBlbmNyeXB0aW9uIGtleXMgZnJvbSBvbmUgcmVnaW9uIGluIGFub3RoZXIgcmVnaW9uLlxuICogIElmIHlvdSBzcGVjaWZ5IHRoZSBgYERCU25hcHNob3RJZGVudGlmaWVyYGAgcHJvcGVydHksIGRvbid0IHNwZWNpZnkgdGhpcyBwcm9wZXJ0eS4gVGhlIGBgU3RvcmFnZUVuY3J5cHRlZGBgIHByb3BlcnR5IHZhbHVlIGlzIGluaGVyaXRlZCBmcm9tIHRoZSBzbmFwc2hvdC4gSWYgdGhlIERCIGluc3RhbmNlIGlzIGVuY3J5cHRlZCwgdGhlIHNwZWNpZmllZCBgYEttc0tleUlkYGAgcHJvcGVydHkgaXMgYWxzbyBpbmhlcml0ZWQgZnJvbSB0aGUgc25hcHNob3QuXG4gKiAgSWYgeW91IHNwZWNpZnkgYGBEQlNlY3VyaXR5R3JvdXBzYGAsIEFXUyBDbG91ZEZvcm1hdGlvbiBpZ25vcmVzIHRoaXMgcHJvcGVydHkuIFRvIHNwZWNpZnkgYm90aCBhIHNlY3VyaXR5IGdyb3VwIGFuZCB0aGlzIHByb3BlcnR5LCB5b3UgbXVzdCB1c2UgYSBWUEMgc2VjdXJpdHkgZ3JvdXAuIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IEFtYXpvbiBSRFMgYW5kIFZQQywgc2VlIFtVc2luZyBBbWF6b24gUkRTIHdpdGggQW1hem9uIFZQQ10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvVXNlckd1aWRlL1VTRVJfVlBDLmh0bWwpIGluIHRoZSAqQW1hem9uIFJEUyBVc2VyIEd1aWRlKi5cbiAqICAgKkFtYXpvbiBBdXJvcmEqIFxuICogIE5vdCBhcHBsaWNhYmxlLiBUaGUgS01TIGtleSBpZGVudGlmaWVyIGlzIG1hbmFnZWQgYnkgdGhlIERCIGNsdXN0ZXIuXG4gKi9cbkttc0tleUlkPzogc3RyaW5nXG5MYXRlc3RSZXN0b3JhYmxlVGltZT86IHN0cmluZ1xuLyoqXG4gKiBMaWNlbnNlIG1vZGVsIGluZm9ybWF0aW9uIGZvciB0aGlzIERCIGluc3RhbmNlLlxuICogICBWYWxpZCBWYWx1ZXM6XG4gKiAgICsgIEF1cm9yYSBNeVNRTCAtIGBgZ2VuZXJhbC1wdWJsaWMtbGljZW5zZWBgXG4gKiAgICsgIEF1cm9yYSBQb3N0Z3JlU1FMIC0gYGBwb3N0Z3Jlc3FsLWxpY2Vuc2VgYFxuICogICArICBSRFMgZm9yIERiMiAtIGBgYnJpbmcteW91ci1vd24tbGljZW5zZWBgLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCBSRFMgZm9yIERiMiBsaWNlbnNpbmcsIHNlZSBbXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUkRTL2xhdGVzdC9Vc2VyR3VpZGUvZGIyLWxpY2Vuc2luZy5odG1sKSBpbiB0aGUgKkFtYXpvbiBSRFMgVXNlciBHdWlkZS4qXG4gKiAgICsgIFJEUyBmb3IgTWFyaWFEQiAtIGBgZ2VuZXJhbC1wdWJsaWMtbGljZW5zZWBgXG4gKiAgICsgIFJEUyBmb3IgTWljcm9zb2Z0IFNRTCBTZXJ2ZXIgLSBgYGxpY2Vuc2UtaW5jbHVkZWRgYFxuICogICArICBSRFMgZm9yIE15U1FMIC0gYGBnZW5lcmFsLXB1YmxpYy1saWNlbnNlYGBcbiAqICAgKyAgUkRTIGZvciBPcmFjbGUgLSBgYGJyaW5nLXlvdXItb3duLWxpY2Vuc2VgYCBvciBgYGxpY2Vuc2UtaW5jbHVkZWRgYFxuICogICArICBSRFMgZm9yIFBvc3RncmVTUUwgLSBgYHBvc3RncmVzcWwtbGljZW5zZWBgXG4gKiAgIFxuICogICBJZiB5b3UndmUgc3BlY2lmaWVkIGBgREJTZWN1cml0eUdyb3Vwc2BgIGFuZCB0aGVuIHlvdSB1cGRhdGUgdGhlIGxpY2Vuc2UgbW9kZWwsIEFXUyBDbG91ZEZvcm1hdGlvbiByZXBsYWNlcyB0aGUgdW5kZXJseWluZyBEQiBpbnN0YW5jZS4gVGhpcyB3aWxsIGluY3VyIHNvbWUgaW50ZXJydXB0aW9ucyB0byBkYXRhYmFzZSBhdmFpbGFiaWxpdHkuXG4gKi9cbkxpY2Vuc2VNb2RlbD86IHN0cmluZ1xuTGlzdGVuZXJFbmRwb2ludD86IEVuZHBvaW50MVxuLyoqXG4gKiBTcGVjaWZpZXMgdGhlIGF1dGhlbnRpY2F0aW9uIHR5cGUgZm9yIHRoZSBtYXN0ZXIgdXNlci4gV2l0aCBJQU0gbWFzdGVyIHVzZXIgYXV0aGVudGljYXRpb24sIHlvdSBjYW4gY29uZmlndXJlIHRoZSBtYXN0ZXIgREIgdXNlciB3aXRoIElBTSBkYXRhYmFzZSBhdXRoZW50aWNhdGlvbiB3aGVuIHlvdSBjcmVhdGUgYSBEQiBpbnN0YW5jZS5cbiAqICBZb3UgY2FuIHNwZWNpZnkgb25lIG9mIHRoZSBmb2xsb3dpbmcgdmFsdWVzOlxuICogICArICBgYHBhc3N3b3JkYGAgLSBVc2Ugc3RhbmRhcmQgZGF0YWJhc2UgYXV0aGVudGljYXRpb24gd2l0aCBhIHBhc3N3b3JkLlxuICogICArICBgYGlhbS1kYi1hdXRoYGAgLSBVc2UgSUFNIGRhdGFiYXNlIGF1dGhlbnRpY2F0aW9uIGZvciB0aGUgbWFzdGVyIHVzZXIuXG4gKiAgIFxuICogIFRoaXMgb3B0aW9uIGlzIG9ubHkgdmFsaWQgZm9yIFJEUyBmb3IgTXlTUUwsIFJEUyBmb3IgTWFyaWFEQiwgUkRTIGZvciBQb3N0Z3JlU1FMLCBBdXJvcmEgTXlTUUwsIGFuZCBBdXJvcmEgUG9zdGdyZVNRTCBlbmdpbmVzLlxuICovXG5NYXN0ZXJVc2VyQXV0aGVudGljYXRpb25UeXBlPzogc3RyaW5nXG4vKipcbiAqIFRoZSBtYXN0ZXIgdXNlciBuYW1lIGZvciB0aGUgREIgaW5zdGFuY2UuXG4gKiAgIElmIHlvdSBzcGVjaWZ5IHRoZSBgYFNvdXJjZURCSW5zdGFuY2VJZGVudGlmaWVyYGAgb3IgYGBEQlNuYXBzaG90SWRlbnRpZmllcmBgIHByb3BlcnR5LCBkb24ndCBzcGVjaWZ5IHRoaXMgcHJvcGVydHkuIFRoZSB2YWx1ZSBpcyBpbmhlcml0ZWQgZnJvbSB0aGUgc291cmNlIERCIGluc3RhbmNlIG9yIHNuYXBzaG90LlxuICogIFdoZW4gbWlncmF0aW5nIGEgc2VsZi1tYW5hZ2VkIERiMiBkYXRhYmFzZSwgd2UgcmVjb21tZW5kIHRoYXQgeW91IHVzZSB0aGUgc2FtZSBtYXN0ZXIgdXNlcm5hbWUgYXMgeW91ciBzZWxmLW1hbmFnZWQgRGIyIGluc3RhbmNlIG5hbWUuXG4gKiAgICAqQW1hem9uIEF1cm9yYSogXG4gKiAgTm90IGFwcGxpY2FibGUuIFRoZSBuYW1lIGZvciB0aGUgbWFzdGVyIHVzZXIgaXMgbWFuYWdlZCBieSB0aGUgREIgY2x1c3Rlci4gXG4gKiAgICpSRFMgZm9yIERiMiogXG4gKiAgQ29uc3RyYWludHM6XG4gKiAgICsgIE11c3QgYmUgMSB0byAxNiBsZXR0ZXJzIG9yIG51bWJlcnMuXG4gKiAgICsgIEZpcnN0IGNoYXJhY3RlciBtdXN0IGJlIGEgbGV0dGVyLlxuICogICArICBDYW4ndCBiZSBhIHJlc2VydmVkIHdvcmQgZm9yIHRoZSBjaG9zZW4gZGF0YWJhc2UgZW5naW5lLlxuICogICBcbiAqICAgKlJEUyBmb3IgTWFyaWFEQiogXG4gKiAgQ29uc3RyYWludHM6XG4gKiAgICsgIE11c3QgYmUgMSB0byAxNiBsZXR0ZXJzIG9yIG51bWJlcnMuXG4gKiAgICsgIENhbid0IGJlIGEgcmVzZXJ2ZWQgd29yZCBmb3IgdGhlIGNob3NlbiBkYXRhYmFzZSBlbmdpbmUuXG4gKiAgIFxuICogICAqUkRTIGZvciBNaWNyb3NvZnQgU1FMIFNlcnZlciogXG4gKiAgQ29uc3RyYWludHM6XG4gKiAgICsgIE11c3QgYmUgMSB0byAxMjggbGV0dGVycyBvciBudW1iZXJzLlxuICogICArICBGaXJzdCBjaGFyYWN0ZXIgbXVzdCBiZSBhIGxldHRlci5cbiAqICAgKyAgQ2FuJ3QgYmUgYSByZXNlcnZlZCB3b3JkIGZvciB0aGUgY2hvc2VuIGRhdGFiYXNlIGVuZ2luZS5cbiAqICAgXG4gKiAgICpSRFMgZm9yIE15U1FMKiBcbiAqICBDb25zdHJhaW50czpcbiAqICAgKyAgTXVzdCBiZSAxIHRvIDE2IGxldHRlcnMgb3IgbnVtYmVycy5cbiAqICAgKyAgRmlyc3QgY2hhcmFjdGVyIG11c3QgYmUgYSBsZXR0ZXIuXG4gKiAgICsgIENhbid0IGJlIGEgcmVzZXJ2ZWQgd29yZCBmb3IgdGhlIGNob3NlbiBkYXRhYmFzZSBlbmdpbmUuXG4gKiAgIFxuICogICAqUkRTIGZvciBPcmFjbGUqIFxuICogIENvbnN0cmFpbnRzOlxuICogICArICBNdXN0IGJlIDEgdG8gMzAgbGV0dGVycyBvciBudW1iZXJzLlxuICogICArICBGaXJzdCBjaGFyYWN0ZXIgbXVzdCBiZSBhIGxldHRlci5cbiAqICAgKyAgQ2FuJ3QgYmUgYSByZXNlcnZlZCB3b3JkIGZvciB0aGUgY2hvc2VuIGRhdGFiYXNlIGVuZ2luZS5cbiAqICAgXG4gKiAgICpSRFMgZm9yIFBvc3RncmVTUUwqIFxuICogIENvbnN0cmFpbnRzOlxuICogICArICBNdXN0IGJlIDEgdG8gNjMgbGV0dGVycyBvciBudW1iZXJzLlxuICogICArICBGaXJzdCBjaGFyYWN0ZXIgbXVzdCBiZSBhIGxldHRlci5cbiAqICAgKyAgQ2FuJ3QgYmUgYSByZXNlcnZlZCB3b3JkIGZvciB0aGUgY2hvc2VuIGRhdGFiYXNlIGVuZ2luZS5cbiAqL1xuTWFzdGVyVXNlcm5hbWU/OiBzdHJpbmdcbi8qKlxuICogVGhlIHBhc3N3b3JkIGZvciB0aGUgbWFzdGVyIHVzZXIuIFRoZSBwYXNzd29yZCBjYW4gaW5jbHVkZSBhbnkgcHJpbnRhYmxlIEFTQ0lJIGNoYXJhY3RlciBleGNlcHQgXCIvXCIsIFwiXCJcIiwgb3IgXCJAXCIuXG4gKiAgICpBbWF6b24gQXVyb3JhKiBcbiAqICBOb3QgYXBwbGljYWJsZS4gVGhlIHBhc3N3b3JkIGZvciB0aGUgbWFzdGVyIHVzZXIgaXMgbWFuYWdlZCBieSB0aGUgREIgY2x1c3Rlci5cbiAqICAgKlJEUyBmb3IgRGIyKiBcbiAqICBNdXN0IGNvbnRhaW4gZnJvbSA4IHRvIDI1NSBjaGFyYWN0ZXJzLlxuICogICAqUkRTIGZvciBNYXJpYURCKiBcbiAqICBDb25zdHJhaW50czogTXVzdCBjb250YWluIGZyb20gOCB0byA0MSBjaGFyYWN0ZXJzLlxuICogICAqUkRTIGZvciBNaWNyb3NvZnQgU1FMIFNlcnZlciogXG4gKiAgQ29uc3RyYWludHM6IE11c3QgY29udGFpbiBmcm9tIDggdG8gMTI4IGNoYXJhY3RlcnMuXG4gKiAgICpSRFMgZm9yIE15U1FMKiBcbiAqICBDb25zdHJhaW50czogTXVzdCBjb250YWluIGZyb20gOCB0byA0MSBjaGFyYWN0ZXJzLlxuICogICAqUkRTIGZvciBPcmFjbGUqIFxuICogIENvbnN0cmFpbnRzOiBNdXN0IGNvbnRhaW4gZnJvbSA4IHRvIDMwIGNoYXJhY3RlcnMuXG4gKiAgICpSRFMgZm9yIFBvc3RncmVTUUwqIFxuICogIENvbnN0cmFpbnRzOiBNdXN0IGNvbnRhaW4gZnJvbSA4IHRvIDEyOCBjaGFyYWN0ZXJzLlxuICovXG5NYXN0ZXJVc2VyUGFzc3dvcmQ/OiBzdHJpbmdcbk1hc3RlclVzZXJTZWNyZXQ/OiBNYXN0ZXJVc2VyU2VjcmV0XG4vKipcbiAqIFRoZSB1cHBlciBsaW1pdCBpbiBnaWJpYnl0ZXMgKEdpQikgdG8gd2hpY2ggQW1hem9uIFJEUyBjYW4gYXV0b21hdGljYWxseSBzY2FsZSB0aGUgc3RvcmFnZSBvZiB0aGUgREIgaW5zdGFuY2UuXG4gKiAgRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhpcyBzZXR0aW5nLCBpbmNsdWRpbmcgbGltaXRhdGlvbnMgdGhhdCBhcHBseSB0byBpdCwgc2VlIFtNYW5hZ2luZyBjYXBhY2l0eSBhdXRvbWF0aWNhbGx5IHdpdGggQW1hem9uIFJEUyBzdG9yYWdlIGF1dG9zY2FsaW5nXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUkRTL2xhdGVzdC9Vc2VyR3VpZGUvVVNFUl9QSU9QUy5TdG9yYWdlVHlwZXMuaHRtbCNVU0VSX1BJT1BTLkF1dG9zY2FsaW5nKSBpbiB0aGUgKkFtYXpvbiBSRFMgVXNlciBHdWlkZSouXG4gKiAgVGhpcyBzZXR0aW5nIGRvZXNuJ3QgYXBwbHkgdG8gdGhlIGZvbGxvd2luZyBEQiBpbnN0YW5jZXM6XG4gKiAgICsgIEFtYXpvbiBBdXJvcmEgKFN0b3JhZ2UgaXMgbWFuYWdlZCBieSB0aGUgREIgY2x1c3Rlci4pXG4gKiAgICsgIFJEUyBDdXN0b21cbiAqL1xuTWF4QWxsb2NhdGVkU3RvcmFnZT86IG51bWJlclxuLyoqXG4gKiBUaGUgaW50ZXJ2YWwsIGluIHNlY29uZHMsIGJldHdlZW4gcG9pbnRzIHdoZW4gRW5oYW5jZWQgTW9uaXRvcmluZyBtZXRyaWNzIGFyZSBjb2xsZWN0ZWQgZm9yIHRoZSBEQiBpbnN0YW5jZS4gVG8gZGlzYWJsZSBjb2xsZWN0aW9uIG9mIEVuaGFuY2VkIE1vbml0b3JpbmcgbWV0cmljcywgc3BlY2lmeSBgYDBgYC5cbiAqICBJZiBgYE1vbml0b3JpbmdSb2xlQXJuYGAgaXMgc3BlY2lmaWVkLCB0aGVuIHlvdSBtdXN0IHNldCBgYE1vbml0b3JpbmdJbnRlcnZhbGBgIHRvIGEgdmFsdWUgb3RoZXIgdGhhbiBgYDBgYC5cbiAqICBUaGlzIHNldHRpbmcgZG9lc24ndCBhcHBseSB0byBSRFMgQ3VzdG9tIERCIGluc3RhbmNlcy5cbiAqICBWYWxpZCBWYWx1ZXM6IGBgMCB8IDEgfCA1IHwgMTAgfCAxNSB8IDMwIHwgNjBgYFxuICogIERlZmF1bHQ6IGBgMGBgXG4gKi9cbk1vbml0b3JpbmdJbnRlcnZhbD86IG51bWJlclxuLyoqXG4gKiBUaGUgQVJOIGZvciB0aGUgSUFNIHJvbGUgdGhhdCBwZXJtaXRzIFJEUyB0byBzZW5kIGVuaGFuY2VkIG1vbml0b3JpbmcgbWV0cmljcyB0byBBbWF6b24gQ2xvdWRXYXRjaCBMb2dzLiBGb3IgZXhhbXBsZSwgYGBhcm46YXdzOmlhbToxMjM0NTY3ODkwMTI6cm9sZS9lbWFjY2Vzc2BgLiBGb3IgaW5mb3JtYXRpb24gb24gY3JlYXRpbmcgYSBtb25pdG9yaW5nIHJvbGUsIHNlZSBbU2V0dGluZyBVcCBhbmQgRW5hYmxpbmcgRW5oYW5jZWQgTW9uaXRvcmluZ10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvVXNlckd1aWRlL1VTRVJfTW9uaXRvcmluZy5PUy5odG1sI1VTRVJfTW9uaXRvcmluZy5PUy5FbmFibGluZykgaW4gdGhlICpBbWF6b24gUkRTIFVzZXIgR3VpZGUqLlxuICogIElmIGBgTW9uaXRvcmluZ0ludGVydmFsYGAgaXMgc2V0IHRvIGEgdmFsdWUgb3RoZXIgdGhhbiBgYDBgYCwgdGhlbiB5b3UgbXVzdCBzdXBwbHkgYSBgYE1vbml0b3JpbmdSb2xlQXJuYGAgdmFsdWUuXG4gKiAgVGhpcyBzZXR0aW5nIGRvZXNuJ3QgYXBwbHkgdG8gUkRTIEN1c3RvbSBEQiBpbnN0YW5jZXMuXG4gKi9cbk1vbml0b3JpbmdSb2xlQXJuPzogc3RyaW5nXG4vKipcbiAqIFNwZWNpZmllcyB3aGV0aGVyIHRoZSBEQiBpbnN0YW5jZSBpcyBhIE11bHRpLUFaIGRlcGxveW1lbnQuIFlvdSBjYW4ndCBzZXQgdGhlIGBgQXZhaWxhYmlsaXR5Wm9uZWBgIHBhcmFtZXRlciBpZiB0aGUgREIgaW5zdGFuY2UgaXMgYSBNdWx0aS1BWiBkZXBsb3ltZW50LlxuICogIFRoaXMgc2V0dGluZyBkb2Vzbid0IGFwcGx5IHRvIEFtYXpvbiBBdXJvcmEgYmVjYXVzZSB0aGUgREIgaW5zdGFuY2UgQXZhaWxhYmlsaXR5IFpvbmVzIChBWnMpIGFyZSBtYW5hZ2VkIGJ5IHRoZSBEQiBjbHVzdGVyLlxuICovXG5NdWx0aUFaPzogYm9vbGVhblxuLyoqXG4gKiBUaGUgbmFtZSBvZiB0aGUgTkNIQVIgY2hhcmFjdGVyIHNldCBmb3IgdGhlIE9yYWNsZSBEQiBpbnN0YW5jZS5cbiAqICBUaGlzIHNldHRpbmcgZG9lc24ndCBhcHBseSB0byBSRFMgQ3VzdG9tIERCIGluc3RhbmNlcy5cbiAqL1xuTmNoYXJDaGFyYWN0ZXJTZXROYW1lPzogc3RyaW5nXG4vKipcbiAqIFRoZSBuZXR3b3JrIHR5cGUgb2YgdGhlIERCIGluc3RhbmNlLlxuICogIFZhbGlkIHZhbHVlczpcbiAqICAgKyAgIGBgSVBWNGBgIFxuICogICArICAgYGBEVUFMYGAgXG4gKiAgIFxuICogIFRoZSBuZXR3b3JrIHR5cGUgaXMgZGV0ZXJtaW5lZCBieSB0aGUgYGBEQlN1Ym5ldEdyb3VwYGAgc3BlY2lmaWVkIGZvciB0aGUgREIgaW5zdGFuY2UuIEEgYGBEQlN1Ym5ldEdyb3VwYGAgY2FuIHN1cHBvcnQgb25seSB0aGUgSVB2NCBwcm90b2NvbCBvciB0aGUgSVB2NCBhbmQgSVB2NiBwcm90b2NvbHMgKGBgRFVBTGBgKS5cbiAqICBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtXb3JraW5nIHdpdGggYSBEQiBpbnN0YW5jZSBpbiBhIFZQQ10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvVXNlckd1aWRlL1VTRVJfVlBDLldvcmtpbmdXaXRoUkRTSW5zdGFuY2VpbmFWUEMuaHRtbCkgaW4gdGhlICpBbWF6b24gUkRTIFVzZXIgR3VpZGUuKlxuICovXG5OZXR3b3JrVHlwZT86IHN0cmluZ1xuLyoqXG4gKiBJbmRpY2F0ZXMgdGhhdCB0aGUgREIgaW5zdGFuY2Ugc2hvdWxkIGJlIGFzc29jaWF0ZWQgd2l0aCB0aGUgc3BlY2lmaWVkIG9wdGlvbiBncm91cC5cbiAqICBQZXJtYW5lbnQgb3B0aW9ucywgc3VjaCBhcyB0aGUgVERFIG9wdGlvbiBmb3IgT3JhY2xlIEFkdmFuY2VkIFNlY3VyaXR5IFRERSwgY2FuJ3QgYmUgcmVtb3ZlZCBmcm9tIGFuIG9wdGlvbiBncm91cC4gQWxzbywgdGhhdCBvcHRpb24gZ3JvdXAgY2FuJ3QgYmUgcmVtb3ZlZCBmcm9tIGEgREIgaW5zdGFuY2Ugb25jZSBpdCBpcyBhc3NvY2lhdGVkIHdpdGggYSBEQiBpbnN0YW5jZS5cbiAqL1xuT3B0aW9uR3JvdXBOYW1lPzogc3RyaW5nXG5QZXJjZW50UHJvZ3Jlc3M/OiBzdHJpbmdcbi8qKlxuICogVGhlIEFXUyBLTVMga2V5IGlkZW50aWZpZXIgZm9yIGVuY3J5cHRpb24gb2YgUGVyZm9ybWFuY2UgSW5zaWdodHMgZGF0YS5cbiAqICBUaGUgS01TIGtleSBpZGVudGlmaWVyIGlzIHRoZSBrZXkgQVJOLCBrZXkgSUQsIGFsaWFzIEFSTiwgb3IgYWxpYXMgbmFtZSBmb3IgdGhlIEtNUyBrZXkuXG4gKiAgSWYgeW91IGRvIG5vdCBzcGVjaWZ5IGEgdmFsdWUgZm9yIGBgUGVyZm9ybWFuY2VJbnNpZ2h0c0tNU0tleUlkYGAsIHRoZW4gQW1hem9uIFJEUyB1c2VzIHlvdXIgZGVmYXVsdCBLTVMga2V5LiBUaGVyZSBpcyBhIGRlZmF1bHQgS01TIGtleSBmb3IgeW91ciBBV1MgYWNjb3VudC4gWW91ciBBV1MgYWNjb3VudCBoYXMgYSBkaWZmZXJlbnQgZGVmYXVsdCBLTVMga2V5IGZvciBlYWNoIEFXUyBSZWdpb24uXG4gKiAgRm9yIGluZm9ybWF0aW9uIGFib3V0IGVuYWJsaW5nIFBlcmZvcm1hbmNlIEluc2lnaHRzLCBzZWUgW0VuYWJsZVBlcmZvcm1hbmNlSW5zaWdodHNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLXJkcy1kYXRhYmFzZS1pbnN0YW5jZS5odG1sI2Nmbi1yZHMtZGJpbnN0YW5jZS1lbmFibGVwZXJmb3JtYW5jZWluc2lnaHRzKS5cbiAqL1xuUGVyZm9ybWFuY2VJbnNpZ2h0c0tNU0tleUlkPzogc3RyaW5nXG4vKipcbiAqIFRoZSBudW1iZXIgb2YgZGF5cyB0byByZXRhaW4gUGVyZm9ybWFuY2UgSW5zaWdodHMgZGF0YS4gV2hlbiBjcmVhdGluZyBhIERCIGluc3RhbmNlIHdpdGhvdXQgZW5hYmxpbmcgUGVyZm9ybWFuY2UgSW5zaWdodHMsIHlvdSBjYW4ndCBzcGVjaWZ5IHRoZSBwYXJhbWV0ZXIgYGBQZXJmb3JtYW5jZUluc2lnaHRzUmV0ZW50aW9uUGVyaW9kYGAuXG4gKiAgVGhpcyBzZXR0aW5nIGRvZXNuJ3QgYXBwbHkgdG8gUkRTIEN1c3RvbSBEQiBpbnN0YW5jZXMuXG4gKiAgVmFsaWQgVmFsdWVzOlxuICogICArICAgYGA3YGAgXG4gKiAgICsgICptb250aCogKiAzMSwgd2hlcmUgKm1vbnRoKiBpcyBhIG51bWJlciBvZiBtb250aHMgZnJvbSAxLTIzLiBFeGFtcGxlczogYGA5M2BgICgzIG1vbnRocyAqIDMxKSwgYGAzNDFgYCAoMTEgbW9udGhzICogMzEpLCBgYDU4OWBgICgxOSBtb250aHMgKiAzMSlcbiAqICAgKyAgIGBgNzMxYGAgXG4gKiAgIFxuICogIERlZmF1bHQ6IGBgN2BgIGRheXNcbiAqICBJZiB5b3Ugc3BlY2lmeSBhIHJldGVudGlvbiBwZXJpb2QgdGhhdCBpc24ndCB2YWxpZCwgc3VjaCBhcyBgYDk0YGAsIEFtYXpvbiBSRFMgcmV0dXJucyBhbiBlcnJvci5cbiAqL1xuUGVyZm9ybWFuY2VJbnNpZ2h0c1JldGVudGlvblBlcmlvZD86IG51bWJlclxuLyoqXG4gKiBUaGUgcG9ydCBudW1iZXIgb24gd2hpY2ggdGhlIGRhdGFiYXNlIGFjY2VwdHMgY29ubmVjdGlvbnMuXG4gKiAgVGhpcyBzZXR0aW5nIGRvZXNuJ3QgYXBwbHkgdG8gQXVyb3JhIERCIGluc3RhbmNlcy4gVGhlIHBvcnQgbnVtYmVyIGlzIG1hbmFnZWQgYnkgdGhlIGNsdXN0ZXIuXG4gKiAgVmFsaWQgVmFsdWVzOiBgYDExNTAtNjU1MzVgYFxuICogIERlZmF1bHQ6XG4gKiAgICsgIFJEUyBmb3IgRGIyIC0gYGA1MDAwMGBgXG4gKiAgICsgIFJEUyBmb3IgTWFyaWFEQiAtIGBgMzMwNmBgXG4gKiAgICsgIFJEUyBmb3IgTWljcm9zb2Z0IFNRTCBTZXJ2ZXIgLSBgYDE0MzNgYFxuICogICArICBSRFMgZm9yIE15U1FMIC0gYGAzMzA2YGBcbiAqICAgKyAgUkRTIGZvciBPcmFjbGUgLSBgYDE1MjFgYFxuICogICArICBSRFMgZm9yIFBvc3RncmVTUUwgLSBgYDU0MzJgYFxuICogICBcbiAqICBDb25zdHJhaW50czpcbiAqICAgKyAgRm9yIFJEUyBmb3IgTWljcm9zb2Z0IFNRTCBTZXJ2ZXIsIHRoZSB2YWx1ZSBjYW4ndCBiZSBgYDEyMzRgYCwgYGAxNDM0YGAsIGBgMzI2MGBgLCBgYDMzNDNgYCwgYGAzMzg5YGAsIGBgNDcwMDFgYCwgb3IgYGA0OTE1Mi00OTE1NmBgLlxuICovXG5Qb3J0Pzogc3RyaW5nXG4vKipcbiAqIFRoZSBkYWlseSB0aW1lIHJhbmdlIGR1cmluZyB3aGljaCBhdXRvbWF0ZWQgYmFja3VwcyBhcmUgY3JlYXRlZCBpZiBhdXRvbWF0ZWQgYmFja3VwcyBhcmUgZW5hYmxlZCwgdXNpbmcgdGhlIGBgQmFja3VwUmV0ZW50aW9uUGVyaW9kYGAgcGFyYW1ldGVyLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtCYWNrdXAgV2luZG93XShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUkRTL2xhdGVzdC9Vc2VyR3VpZGUvVVNFUl9Xb3JraW5nV2l0aEF1dG9tYXRlZEJhY2t1cHMuaHRtbCNVU0VSX1dvcmtpbmdXaXRoQXV0b21hdGVkQmFja3Vwcy5CYWNrdXBXaW5kb3cpIGluIHRoZSAqQW1hem9uIFJEUyBVc2VyIEd1aWRlLipcbiAqICBDb25zdHJhaW50czpcbiAqICAgKyAgTXVzdCBiZSBpbiB0aGUgZm9ybWF0IGBgaGgyNDptaS1oaDI0Om1pYGAuXG4gKiAgICsgIE11c3QgYmUgaW4gVW5pdmVyc2FsIENvb3JkaW5hdGVkIFRpbWUgKFVUQykuXG4gKiAgICsgIE11c3Qgbm90IGNvbmZsaWN0IHdpdGggdGhlIHByZWZlcnJlZCBtYWludGVuYW5jZSB3aW5kb3cuXG4gKiAgICsgIE11c3QgYmUgYXQgbGVhc3QgMzAgbWludXRlcy5cbiAqICAgXG4gKiAgICpBbWF6b24gQXVyb3JhKiBcbiAqICBOb3QgYXBwbGljYWJsZS4gVGhlIGRhaWx5IHRpbWUgcmFuZ2UgZm9yIGNyZWF0aW5nIGF1dG9tYXRlZCBiYWNrdXBzIGlzIG1hbmFnZWQgYnkgdGhlIERCIGNsdXN0ZXIuXG4gKi9cblByZWZlcnJlZEJhY2t1cFdpbmRvdz86IHN0cmluZ1xuLyoqXG4gKiBUaGUgd2Vla2x5IHRpbWUgcmFuZ2UgZHVyaW5nIHdoaWNoIHN5c3RlbSBtYWludGVuYW5jZSBjYW4gb2NjdXIsIGluIFVuaXZlcnNhbCBDb29yZGluYXRlZCBUaW1lIChVVEMpLlxuICogIEZvcm1hdDogYGBkZGQ6aGgyNDptaS1kZGQ6aGgyNDptaWBgXG4gKiAgVGhlIGRlZmF1bHQgaXMgYSAzMC1taW51dGUgd2luZG93IHNlbGVjdGVkIGF0IHJhbmRvbSBmcm9tIGFuIDgtaG91ciBibG9jayBvZiB0aW1lIGZvciBlYWNoIEFXUyBSZWdpb24sIG9jY3VycmluZyBvbiBhIHJhbmRvbSBkYXkgb2YgdGhlIHdlZWsuIFRvIHNlZSB0aGUgdGltZSBibG9ja3MgYXZhaWxhYmxlLCBzZWUgW01haW50YWluaW5nIGEgREIgaW5zdGFuY2VdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L1VzZXJHdWlkZS9VU0VSX1VwZ3JhZGVEQkluc3RhbmNlLk1haW50ZW5hbmNlLmh0bWwjQWRqdXN0aW5nVGhlTWFpbnRlbmFuY2VXaW5kb3cpIGluIHRoZSAqQW1hem9uIFJEUyBVc2VyIEd1aWRlLipcbiAqICAgVGhpcyBwcm9wZXJ0eSBhcHBsaWVzIHdoZW4gQVdTIENsb3VkRm9ybWF0aW9uIGluaXRpYWxseSBjcmVhdGVzIHRoZSBEQiBpbnN0YW5jZS4gSWYgeW91IHVzZSBBV1MgQ2xvdWRGb3JtYXRpb24gdG8gdXBkYXRlIHRoZSBEQiBpbnN0YW5jZSwgdGhvc2UgdXBkYXRlcyBhcmUgYXBwbGllZCBpbW1lZGlhdGVseS5cbiAqICAgQ29uc3RyYWludHM6IE1pbmltdW0gMzAtbWludXRlIHdpbmRvdy5cbiAqL1xuUHJlZmVycmVkTWFpbnRlbmFuY2VXaW5kb3c/OiBzdHJpbmdcbi8qKlxuICogVGhlIG51bWJlciBvZiBDUFUgY29yZXMgYW5kIHRoZSBudW1iZXIgb2YgdGhyZWFkcyBwZXIgY29yZSBmb3IgdGhlIERCIGluc3RhbmNlIGNsYXNzIG9mIHRoZSBEQiBpbnN0YW5jZS5cbiAqICBUaGlzIHNldHRpbmcgZG9lc24ndCBhcHBseSB0byBBbWF6b24gQXVyb3JhIG9yIFJEUyBDdXN0b20gREIgaW5zdGFuY2VzLlxuICovXG5Qcm9jZXNzb3JGZWF0dXJlcz86IFByb2Nlc3NvckZlYXR1cmVbXVxuLyoqXG4gKiBUaGUgb3JkZXIgb2YgcHJpb3JpdHkgaW4gd2hpY2ggYW4gQXVyb3JhIFJlcGxpY2EgaXMgcHJvbW90ZWQgdG8gdGhlIHByaW1hcnkgaW5zdGFuY2UgYWZ0ZXIgYSBmYWlsdXJlIG9mIHRoZSBleGlzdGluZyBwcmltYXJ5IGluc3RhbmNlLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtGYXVsdCBUb2xlcmFuY2UgZm9yIGFuIEF1cm9yYSBEQiBDbHVzdGVyXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUkRTL2xhdGVzdC9BdXJvcmFVc2VyR3VpZGUvQ29uY2VwdHMuQXVyb3JhSGlnaEF2YWlsYWJpbGl0eS5odG1sI0F1cm9yYS5NYW5hZ2luZy5GYXVsdFRvbGVyYW5jZSkgaW4gdGhlICpBbWF6b24gQXVyb3JhIFVzZXIgR3VpZGUqLlxuICogIFRoaXMgc2V0dGluZyBkb2Vzbid0IGFwcGx5IHRvIFJEUyBDdXN0b20gREIgaW5zdGFuY2VzLlxuICogIERlZmF1bHQ6IGBgMWBgXG4gKiAgVmFsaWQgVmFsdWVzOiBgYDAgLSAxNWBgXG4gKi9cblByb21vdGlvblRpZXI/OiBudW1iZXJcbi8qKlxuICogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIERCIGluc3RhbmNlIGlzIGFuIGludGVybmV0LWZhY2luZyBpbnN0YW5jZS4gSWYgeW91IHNwZWNpZnkgdHJ1ZSwgQVdTIENsb3VkRm9ybWF0aW9uIGNyZWF0ZXMgYW4gaW5zdGFuY2Ugd2l0aCBhIHB1YmxpY2x5IHJlc29sdmFibGUgRE5TIG5hbWUsIHdoaWNoIHJlc29sdmVzIHRvIGEgcHVibGljIElQIGFkZHJlc3MuIElmIHlvdSBzcGVjaWZ5IGZhbHNlLCBBV1MgQ2xvdWRGb3JtYXRpb24gY3JlYXRlcyBhbiBpbnRlcm5hbCBpbnN0YW5jZSB3aXRoIGEgRE5TIG5hbWUgdGhhdCByZXNvbHZlcyB0byBhIHByaXZhdGUgSVAgYWRkcmVzcy4gXG4gKiAgVGhlIGRlZmF1bHQgYmVoYXZpb3IgdmFsdWUgZGVwZW5kcyBvbiB5b3VyIFZQQyBzZXR1cCBhbmQgdGhlIGRhdGFiYXNlIHN1Ym5ldCBncm91cC4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSB0aGUgYGBQdWJsaWNseUFjY2Vzc2libGVgYCBwYXJhbWV0ZXIgaW4gdGhlIFtDcmVhdGVEQkluc3RhbmNlXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUkRTL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0NyZWF0ZURCSW5zdGFuY2UuaHRtbCkgaW4gdGhlICpBbWF6b24gUkRTIEFQSSBSZWZlcmVuY2UqLlxuICovXG5QdWJsaWNseUFjY2Vzc2libGU/OiBib29sZWFuXG5SZWFkUmVwbGljYURCQ2x1c3RlcklkZW50aWZpZXJzPzogc3RyaW5nW11cblJlYWRSZXBsaWNhREJJbnN0YW5jZUlkZW50aWZpZXJzPzogc3RyaW5nW11cbi8qKlxuICogVGhlIG9wZW4gbW9kZSBvZiBhbiBPcmFjbGUgcmVhZCByZXBsaWNhLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtXb3JraW5nIHdpdGggT3JhY2xlIFJlYWQgUmVwbGljYXMgZm9yIEFtYXpvbiBSRFNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L1VzZXJHdWlkZS9vcmFjbGUtcmVhZC1yZXBsaWNhcy5odG1sKSBpbiB0aGUgKkFtYXpvbiBSRFMgVXNlciBHdWlkZSouXG4gKiAgVGhpcyBzZXR0aW5nIGlzIG9ubHkgc3VwcG9ydGVkIGluIFJEUyBmb3IgT3JhY2xlLlxuICogIERlZmF1bHQ6IGBgb3Blbi1yZWFkLW9ubHlgYFxuICogIFZhbGlkIFZhbHVlczogYGBvcGVuLXJlYWQtb25seWBgIG9yIGBgbW91bnRlZGBgXG4gKi9cblJlcGxpY2FNb2RlPzogc3RyaW5nXG4vKipcbiAqIFRoZSBkYXRlIGFuZCB0aW1lIHRvIHJlc3RvcmUgZnJvbS4gVGhpcyBwYXJhbWV0ZXIgYXBwbGllcyB0byBwb2ludC1pbi10aW1lIHJlY292ZXJ5LiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtSZXN0b3JpbmcgYSBEQiBpbnN0YW5jZSB0byBhIHNwZWNpZmllZCB0aW1lXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUkRTL2xhdGVzdC9Vc2VyR3VpZGUvVVNFUl9QSVQuaHRtbCkgaW4gdGhlIGluIHRoZSAqQW1hem9uIFJEUyBVc2VyIEd1aWRlKi5cbiAqICBDb25zdHJhaW50czpcbiAqICAgKyAgTXVzdCBiZSBhIHRpbWUgaW4gVW5pdmVyc2FsIENvb3JkaW5hdGVkIFRpbWUgKFVUQykgZm9ybWF0LlxuICogICArICBNdXN0IGJlIGJlZm9yZSB0aGUgbGF0ZXN0IHJlc3RvcmFibGUgdGltZSBmb3IgdGhlIERCIGluc3RhbmNlLlxuICogICArICBDYW4ndCBiZSBzcGVjaWZpZWQgaWYgdGhlIGBgVXNlTGF0ZXN0UmVzdG9yYWJsZVRpbWVgYCBwYXJhbWV0ZXIgaXMgZW5hYmxlZC5cbiAqICAgXG4gKiAgRXhhbXBsZTogYGAyMDA5LTA5LTA3VDIzOjQ1OjAwWmBgXG4gKi9cblJlc3RvcmVUaW1lPzogc3RyaW5nXG5SZXN1bWVGdWxsQXV0b21hdGlvbk1vZGVUaW1lPzogc3RyaW5nXG5TZWNvbmRhcnlBdmFpbGFiaWxpdHlab25lPzogc3RyaW5nXG4vKipcbiAqIFRoZSBpZGVudGlmaWVyIG9mIHRoZSBNdWx0aS1BWiBEQiBjbHVzdGVyIHRoYXQgd2lsbCBhY3QgYXMgdGhlIHNvdXJjZSBmb3IgdGhlIHJlYWQgcmVwbGljYS4gRWFjaCBEQiBjbHVzdGVyIGNhbiBoYXZlIHVwIHRvIDE1IHJlYWQgcmVwbGljYXMuXG4gKiAgQ29uc3RyYWludHM6XG4gKiAgICsgIE11c3QgYmUgdGhlIGlkZW50aWZpZXIgb2YgYW4gZXhpc3RpbmcgTXVsdGktQVogREIgY2x1c3Rlci5cbiAqICAgKyAgQ2FuJ3QgYmUgc3BlY2lmaWVkIGlmIHRoZSBgYFNvdXJjZURCSW5zdGFuY2VJZGVudGlmaWVyYGAgcGFyYW1ldGVyIGlzIGFsc28gc3BlY2lmaWVkLlxuICogICArICBUaGUgc3BlY2lmaWVkIERCIGNsdXN0ZXIgbXVzdCBoYXZlIGF1dG9tYXRpYyBiYWNrdXBzIGVuYWJsZWQsIHRoYXQgaXMsIGl0cyBiYWNrdXAgcmV0ZW50aW9uIHBlcmlvZCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAwLlxuICogICArICBUaGUgc291cmNlIERCIGNsdXN0ZXIgbXVzdCBiZSBpbiB0aGUgc2FtZSBBV1MtUmVnaW9uIGFzIHRoZSByZWFkIHJlcGxpY2EuIENyb3NzLVJlZ2lvbiByZXBsaWNhdGlvbiBpc24ndCBzdXBwb3J0ZWQuXG4gKi9cblNvdXJjZURCQ2x1c3RlcklkZW50aWZpZXI/OiBzdHJpbmdcbi8qKlxuICogVGhlIHJlc291cmNlIElEIG9mIHRoZSBzb3VyY2UgREIgaW5zdGFuY2UgZnJvbSB3aGljaCB0byByZXN0b3JlLlxuICovXG5Tb3VyY2VEYmlSZXNvdXJjZUlkPzogc3RyaW5nXG4vKipcbiAqIFRoZSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKSBvZiB0aGUgcmVwbGljYXRlZCBhdXRvbWF0ZWQgYmFja3VwcyBmcm9tIHdoaWNoIHRvIHJlc3RvcmUsIGZvciBleGFtcGxlLCBgYGFybjphd3M6cmRzOnVzLWVhc3QtMToxMjM0NTY3ODkwMTI6YXV0by1iYWNrdXA6YWItTDJJSkNFWEpQN1hRN0hPSjRTSUVYQU1QTEVgYC5cbiAqICBUaGlzIHNldHRpbmcgZG9lc24ndCBhcHBseSB0byBSRFMgQ3VzdG9tLlxuICovXG5Tb3VyY2VEQkluc3RhbmNlQXV0b21hdGVkQmFja3Vwc0Fybj86IHN0cmluZ1xuLyoqXG4gKiBJZiB5b3Ugd2FudCB0byBjcmVhdGUgYSByZWFkIHJlcGxpY2EgREIgaW5zdGFuY2UsIHNwZWNpZnkgdGhlIElEIG9mIHRoZSBzb3VyY2UgREIgaW5zdGFuY2UuIEVhY2ggREIgaW5zdGFuY2UgY2FuIGhhdmUgYSBsaW1pdGVkIG51bWJlciBvZiByZWFkIHJlcGxpY2FzLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtXb3JraW5nIHdpdGggUmVhZCBSZXBsaWNhc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvRGV2ZWxvcGVyR3VpZGUvVVNFUl9SZWFkUmVwbC5odG1sKSBpbiB0aGUgKkFtYXpvbiBSRFMgVXNlciBHdWlkZSouXG4gKiAgRm9yIGluZm9ybWF0aW9uIGFib3V0IGNvbnN0cmFpbnRzIHRoYXQgYXBwbHkgdG8gREIgaW5zdGFuY2UgaWRlbnRpZmllcnMsIHNlZSBbTmFtaW5nIGNvbnN0cmFpbnRzIGluIEFtYXpvbiBSRFNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L1VzZXJHdWlkZS9DSEFQX0xpbWl0cy5odG1sI1JEU19MaW1pdHMuQ29uc3RyYWludHMpIGluIHRoZSAqQW1hem9uIFJEUyBVc2VyIEd1aWRlKi5cbiAqICBUaGUgYGBTb3VyY2VEQkluc3RhbmNlSWRlbnRpZmllcmBgIHByb3BlcnR5IGRldGVybWluZXMgd2hldGhlciBhIERCIGluc3RhbmNlIGlzIGEgcmVhZCByZXBsaWNhLiBJZiB5b3UgcmVtb3ZlIHRoZSBgYFNvdXJjZURCSW5zdGFuY2VJZGVudGlmaWVyYGAgcHJvcGVydHkgZnJvbSB5b3VyIHRlbXBsYXRlIGFuZCB0aGVuIHVwZGF0ZSB5b3VyIHN0YWNrLCBBV1MgQ2xvdWRGb3JtYXRpb24gcHJvbW90ZXMgdGhlIHJlYWQgcmVwbGljYSB0byBhIHN0YW5kYWxvbmUgREIgaW5zdGFuY2UuXG4gKiAgSWYgeW91IHNwZWNpZnkgdGhlIGBgVXNlTGF0ZXN0UmVzdG9yYWJsZVRpbWVgYCBvciBgYFJlc3RvcmVUaW1lYGAgcHJvcGVydGllcyBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZSBgYFNvdXJjZURCSW5zdGFuY2VJZGVudGlmaWVyYGAgcHJvcGVydHksIFJEUyByZXN0b3JlcyB0aGUgREIgaW5zdGFuY2UgdG8gdGhlIHJlcXVlc3RlZCBwb2ludCBpbiB0aW1lLCB0aGVyZWJ5IGNyZWF0aW5nIGEgbmV3IERCIGluc3RhbmNlLlxuICogICAgKyAgSWYgeW91IHNwZWNpZnkgYSBzb3VyY2UgREIgaW5zdGFuY2UgdGhhdCB1c2VzIFZQQyBzZWN1cml0eSBncm91cHMsIHdlIHJlY29tbWVuZCB0aGF0IHlvdSBzcGVjaWZ5IHRoZSBgYFZQQ1NlY3VyaXR5R3JvdXBzYGAgcHJvcGVydHkuIElmIHlvdSBkb24ndCBzcGVjaWZ5IHRoZSBwcm9wZXJ0eSwgdGhlIHJlYWQgcmVwbGljYSBpbmhlcml0cyB0aGUgdmFsdWUgb2YgdGhlIGBgVlBDU2VjdXJpdHlHcm91cHNgYCBwcm9wZXJ0eSBmcm9tIHRoZSBzb3VyY2UgREIgd2hlbiB5b3UgY3JlYXRlIHRoZSByZXBsaWNhLiBIb3dldmVyLCBpZiB5b3UgdXBkYXRlIHRoZSBzdGFjaywgQVdTIENsb3VkRm9ybWF0aW9uIHJldmVydHMgdGhlIHJlcGxpY2EncyBgYFZQQ1NlY3VyaXR5R3JvdXBzYGAgcHJvcGVydHkgdG8gdGhlIGRlZmF1bHQgdmFsdWUgYmVjYXVzZSBpdCdzIG5vdCBkZWZpbmVkIGluIHRoZSBzdGFjaydzIHRlbXBsYXRlLiBUaGlzIGNoYW5nZSBtaWdodCBjYXVzZSB1bmV4cGVjdGVkIGlzc3Vlcy5cbiAqICAgKyAgUmVhZCByZXBsaWNhcyBkb24ndCBzdXBwb3J0IGRlbGV0aW9uIHBvbGljaWVzLiBBV1MgQ2xvdWRGb3JtYXRpb24gaWdub3JlcyBhbnkgZGVsZXRpb24gcG9saWN5IHRoYXQncyBhc3NvY2lhdGVkIHdpdGggYSByZWFkIHJlcGxpY2EuXG4gKiAgICsgIElmIHlvdSBzcGVjaWZ5IGBgU291cmNlREJJbnN0YW5jZUlkZW50aWZpZXJgYCwgZG9uJ3Qgc3BlY2lmeSB0aGUgYGBEQlNuYXBzaG90SWRlbnRpZmllcmBgIHByb3BlcnR5LiBZb3UgY2FuJ3QgY3JlYXRlIGEgcmVhZCByZXBsaWNhIGZyb20gYSBzbmFwc2hvdC5cbiAqICAgKyAgRG9uJ3Qgc2V0IHRoZSBgYEJhY2t1cFJldGVudGlvblBlcmlvZGBgLCBgYERCTmFtZWBgLCBgYE1hc3RlclVzZXJuYW1lYGAsIGBgTWFzdGVyVXNlclBhc3N3b3JkYGAsIGFuZCBgYFByZWZlcnJlZEJhY2t1cFdpbmRvd2BgIHByb3BlcnRpZXMuIFRoZSBkYXRhYmFzZSBhdHRyaWJ1dGVzIGFyZSBpbmhlcml0ZWQgZnJvbSB0aGUgc291cmNlIERCIGluc3RhbmNlLCBhbmQgYmFja3VwcyBhcmUgZGlzYWJsZWQgZm9yIHJlYWQgcmVwbGljYXMuXG4gKiAgICsgIElmIHRoZSBzb3VyY2UgREIgaW5zdGFuY2UgaXMgaW4gYSBkaWZmZXJlbnQgcmVnaW9uIHRoYW4gdGhlIHJlYWQgcmVwbGljYSwgc3BlY2lmeSB0aGUgc291cmNlIHJlZ2lvbiBpbiBgYFNvdXJjZVJlZ2lvbmBgLCBhbmQgc3BlY2lmeSBhbiBBUk4gZm9yIGEgdmFsaWQgREIgaW5zdGFuY2UgaW4gYGBTb3VyY2VEQkluc3RhbmNlSWRlbnRpZmllcmBgLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtDb25zdHJ1Y3RpbmcgYSBBbWF6b24gUkRTIEFtYXpvbiBSZXNvdXJjZSBOYW1lIChBUk4pXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUkRTL2xhdGVzdC9Vc2VyR3VpZGUvVVNFUl9UYWdnaW5nLmh0bWwjVVNFUl9UYWdnaW5nLkFSTikgaW4gdGhlICpBbWF6b24gUkRTIFVzZXIgR3VpZGUqLlxuICogICArICBGb3IgREIgaW5zdGFuY2VzIGluIEFtYXpvbiBBdXJvcmEgY2x1c3RlcnMsIGRvbid0IHNwZWNpZnkgdGhpcyBwcm9wZXJ0eS4gQW1hem9uIFJEUyBhdXRvbWF0aWNhbGx5IGFzc2lnbnMgd3JpdGVyIGFuZCByZWFkZXIgREIgaW5zdGFuY2VzLlxuICovXG5Tb3VyY2VEQkluc3RhbmNlSWRlbnRpZmllcj86IHN0cmluZ1xuLyoqXG4gKiBUaGUgSUQgb2YgdGhlIHJlZ2lvbiB0aGF0IGNvbnRhaW5zIHRoZSBzb3VyY2UgREIgaW5zdGFuY2UgZm9yIHRoZSByZWFkIHJlcGxpY2EuXG4gKi9cblNvdXJjZVJlZ2lvbj86IHN0cmluZ1xuU3RhdHVzSW5mb3M/OiBEQkluc3RhbmNlU3RhdHVzSW5mb1tdXG4vKipcbiAqIEEgdmFsdWUgdGhhdCBpbmRpY2F0ZXMgd2hldGhlciB0aGUgREIgaW5zdGFuY2UgaXMgZW5jcnlwdGVkLiBCeSBkZWZhdWx0LCBpdCBpc24ndCBlbmNyeXB0ZWQuXG4gKiAgSWYgeW91IHNwZWNpZnkgdGhlIGBgS21zS2V5SWRgYCBwcm9wZXJ0eSwgdGhlbiB5b3UgbXVzdCBlbmFibGUgZW5jcnlwdGlvbi5cbiAqICBJZiB5b3Ugc3BlY2lmeSB0aGUgYGBTb3VyY2VEQkluc3RhbmNlSWRlbnRpZmllcmBgIG9yIGBgU291cmNlRGJpUmVzb3VyY2VJZGBgIHByb3BlcnR5LCBkb24ndCBzcGVjaWZ5IHRoaXMgcHJvcGVydHkuIFRoZSB2YWx1ZSBpcyBpbmhlcml0ZWQgZnJvbSB0aGUgc291cmNlIERCIGluc3RhbmNlLCBhbmQgaWYgdGhlIERCIGluc3RhbmNlIGlzIGVuY3J5cHRlZCwgdGhlIHNwZWNpZmllZCBgYEttc0tleUlkYGAgcHJvcGVydHkgaXMgdXNlZC5cbiAqICBJZiB5b3Ugc3BlY2lmeSB0aGUgYGBTb3VyY2VEQkluc3RhbmNlQXV0b21hdGVkQmFja3Vwc0FybmBgIHByb3BlcnR5LCBkb24ndCBzcGVjaWZ5IHRoaXMgcHJvcGVydHkuIFRoZSB2YWx1ZSBpcyBpbmhlcml0ZWQgZnJvbSB0aGUgc291cmNlIERCIGluc3RhbmNlIGF1dG9tYXRlZCBiYWNrdXAuIFxuICogIElmIHlvdSBzcGVjaWZ5IGBgREJTbmFwc2hvdElkZW50aWZpZXJgYCBwcm9wZXJ0eSwgZG9uJ3Qgc3BlY2lmeSB0aGlzIHByb3BlcnR5LiBUaGUgdmFsdWUgaXMgaW5oZXJpdGVkIGZyb20gdGhlIHNuYXBzaG90LlxuICogICAqQW1hem9uIEF1cm9yYSogXG4gKiAgTm90IGFwcGxpY2FibGUuIFRoZSBlbmNyeXB0aW9uIGZvciBEQiBpbnN0YW5jZXMgaXMgbWFuYWdlZCBieSB0aGUgREIgY2x1c3Rlci5cbiAqL1xuU3RvcmFnZUVuY3J5cHRlZD86IGJvb2xlYW5cbi8qKlxuICogVGhlIHN0b3JhZ2UgdHlwZSB0byBhc3NvY2lhdGUgd2l0aCB0aGUgREIgaW5zdGFuY2UuXG4gKiAgSWYgeW91IHNwZWNpZnkgYGBpbzFgYCwgYGBpbzJgYCwgb3IgYGBncDNgYCwgeW91IG11c3QgYWxzbyBpbmNsdWRlIGEgdmFsdWUgZm9yIHRoZSBgYElvcHNgYCBwYXJhbWV0ZXIuXG4gKiAgVGhpcyBzZXR0aW5nIGRvZXNuJ3QgYXBwbHkgdG8gQW1hem9uIEF1cm9yYSBEQiBpbnN0YW5jZXMuIFN0b3JhZ2UgaXMgbWFuYWdlZCBieSB0aGUgREIgY2x1c3Rlci5cbiAqICBWYWxpZCBWYWx1ZXM6IGBgZ3AyIHwgZ3AzIHwgaW8xIHwgaW8yIHwgc3RhbmRhcmRgYFxuICogIERlZmF1bHQ6IGBgaW8xYGAsIGlmIHRoZSBgYElvcHNgYCBwYXJhbWV0ZXIgaXMgc3BlY2lmaWVkLiBPdGhlcndpc2UsIGBgZ3AzYGAuXG4gKi9cblN0b3JhZ2VUeXBlPzogc3RyaW5nXG4vKipcbiAqIFNwZWNpZmllcyB0aGUgc3RvcmFnZSB0aHJvdWdocHV0IHZhbHVlLCBpbiBtZWJpYnl0ZSBwZXIgc2Vjb25kIChNaUJwcyksIGZvciB0aGUgREIgaW5zdGFuY2UuIFRoaXMgc2V0dGluZyBhcHBsaWVzIG9ubHkgdG8gdGhlIGBgZ3AzYGAgc3RvcmFnZSB0eXBlLiBcbiAqICBUaGlzIHNldHRpbmcgZG9lc24ndCBhcHBseSB0byBSRFMgQ3VzdG9tIG9yIEFtYXpvbiBBdXJvcmEuXG4gKi9cblN0b3JhZ2VUaHJvdWdocHV0PzogbnVtYmVyXG4vKipcbiAqIFRhZ3MgdG8gYXNzaWduIHRvIHRoZSBEQiBpbnN0YW5jZS5cbiAqL1xuVGFncz86IFRhZ1tdXG5UZGVDcmVkZW50aWFsQXJuPzogc3RyaW5nXG5UZGVDcmVkZW50aWFsUGFzc3dvcmQ/OiBzdHJpbmdcbi8qKlxuICogVGhlIHRpbWUgem9uZSBvZiB0aGUgREIgaW5zdGFuY2UuIFRoZSB0aW1lIHpvbmUgcGFyYW1ldGVyIGlzIGN1cnJlbnRseSBzdXBwb3J0ZWQgb25seSBieSBbUkRTIGZvciBEYjJdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L1VzZXJHdWlkZS9kYjItdGltZS16b25lKSBhbmQgW1JEUyBmb3IgU1FMIFNlcnZlcl0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvVXNlckd1aWRlL0NIQVBfU1FMU2VydmVyLmh0bWwjU1FMU2VydmVyLkNvbmNlcHRzLkdlbmVyYWwuVGltZVpvbmUpLlxuICovXG5UaW1lem9uZT86IHN0cmluZ1xuLyoqXG4gKiBTcGVjaWZpZXMgd2hldGhlciB0aGUgREIgaW5zdGFuY2UgY2xhc3Mgb2YgdGhlIERCIGluc3RhbmNlIHVzZXMgaXRzIGRlZmF1bHQgcHJvY2Vzc29yIGZlYXR1cmVzLlxuICogIFRoaXMgc2V0dGluZyBkb2Vzbid0IGFwcGx5IHRvIFJEUyBDdXN0b20gREIgaW5zdGFuY2VzLlxuICovXG5Vc2VEZWZhdWx0UHJvY2Vzc29yRmVhdHVyZXM/OiBib29sZWFuXG4vKipcbiAqIFNwZWNpZmllcyB3aGV0aGVyIHRoZSBEQiBpbnN0YW5jZSBpcyByZXN0b3JlZCBmcm9tIHRoZSBsYXRlc3QgYmFja3VwIHRpbWUuIEJ5IGRlZmF1bHQsIHRoZSBEQiBpbnN0YW5jZSBpc24ndCByZXN0b3JlZCBmcm9tIHRoZSBsYXRlc3QgYmFja3VwIHRpbWUuIFRoaXMgcGFyYW1ldGVyIGFwcGxpZXMgdG8gcG9pbnQtaW4tdGltZSByZWNvdmVyeS4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbUmVzdG9yaW5nIGEgREIgaW5zdGFuY2UgdG8gYSBzcGVjaWZpZWQgdGltZV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvVXNlckd1aWRlL1VTRVJfUElULmh0bWwpIGluIHRoZSBpbiB0aGUgKkFtYXpvbiBSRFMgVXNlciBHdWlkZSouXG4gKiAgQ29uc3RyYWludHM6XG4gKiAgICsgIENhbid0IGJlIHNwZWNpZmllZCBpZiB0aGUgYGBSZXN0b3JlVGltZWBgIHBhcmFtZXRlciBpcyBwcm92aWRlZC5cbiAqL1xuVXNlTGF0ZXN0UmVzdG9yYWJsZVRpbWU/OiBib29sZWFuXG4vKipcbiAqIEEgbGlzdCBvZiB0aGUgVlBDIHNlY3VyaXR5IGdyb3VwIElEcyB0byBhc3NpZ24gdG8gdGhlIERCIGluc3RhbmNlLiBUaGUgbGlzdCBjYW4gaW5jbHVkZSBib3RoIHRoZSBwaHlzaWNhbCBJRHMgb2YgZXhpc3RpbmcgVlBDIHNlY3VyaXR5IGdyb3VwcyBhbmQgcmVmZXJlbmNlcyB0byBbQVdTOjpFQzI6OlNlY3VyaXR5R3JvdXBdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLWVjMi1zZWN1cml0eS1ncm91cC5odG1sKSByZXNvdXJjZXMgY3JlYXRlZCBpbiB0aGUgdGVtcGxhdGUuXG4gKiAgSWYgeW91IHBsYW4gdG8gdXBkYXRlIHRoZSByZXNvdXJjZSwgZG9uJ3Qgc3BlY2lmeSBWUEMgc2VjdXJpdHkgZ3JvdXBzIGluIGEgc2hhcmVkIFZQQy5cbiAqICAgSWYgeW91IHNldCBgYFZQQ1NlY3VyaXR5R3JvdXBzYGAsIHlvdSBtdXN0IG5vdCBzZXQgW0RCU2VjdXJpdHlHcm91cHNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS8vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1yZHMtZGF0YWJhc2UtaW5zdGFuY2UuaHRtbCNjZm4tcmRzLWRiaW5zdGFuY2UtZGJzZWN1cml0eWdyb3VwcyksIGFuZCB2aWNlIHZlcnNhLlxuICogICBZb3UgY2FuIG1pZ3JhdGUgYSBEQiBpbnN0YW5jZSBpbiB5b3VyIHN0YWNrIGZyb20gYW4gUkRTIERCIHNlY3VyaXR5IGdyb3VwIHRvIGEgVlBDIHNlY3VyaXR5IGdyb3VwLCBidXQga2VlcCB0aGUgZm9sbG93aW5nIGluIG1pbmQ6XG4gKiAgICsgIFlvdSBjYW4ndCByZXZlcnQgdG8gdXNpbmcgYW4gUkRTIHNlY3VyaXR5IGdyb3VwIGFmdGVyIHlvdSBlc3RhYmxpc2ggYSBWUEMgc2VjdXJpdHkgZ3JvdXAgbWVtYmVyc2hpcC5cbiAqICAgKyAgV2hlbiB5b3UgbWlncmF0ZSB5b3VyIERCIGluc3RhbmNlIHRvIFZQQyBzZWN1cml0eSBncm91cHMsIGlmIHlvdXIgc3RhY2sgdXBkYXRlIHJvbGxzIGJhY2sgYmVjYXVzZSB0aGUgREIgaW5zdGFuY2UgdXBkYXRlIGZhaWxzIG9yIGJlY2F1c2UgYW4gdXBkYXRlIGZhaWxzIGluIGFub3RoZXIgQVdTIENsb3VkRm9ybWF0aW9uIHJlc291cmNlLCB0aGUgcm9sbGJhY2sgZmFpbHMgYmVjYXVzZSBpdCBjYW4ndCByZXZlcnQgdG8gYW4gUkRTIHNlY3VyaXR5IGdyb3VwLlxuICogICArICBUbyB1c2UgdGhlIHByb3BlcnRpZXMgdGhhdCBhcmUgYXZhaWxhYmxlIHdoZW4geW91IHVzZSBhIFZQQyBzZWN1cml0eSBncm91cCwgeW91IG11c3QgcmVjcmVhdGUgdGhlIERCIGluc3RhbmNlLiBJZiB5b3UgZG9uJ3QsIEFXUyBDbG91ZEZvcm1hdGlvbiBzdWJtaXRzIG9ubHkgdGhlIHByb3BlcnR5IHZhbHVlcyB0aGF0IGFyZSBsaXN0ZWQgaW4gdGhlIFtEQlNlY3VyaXR5R3JvdXBzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1yZHMtZGF0YWJhc2UtaW5zdGFuY2UuaHRtbCNjZm4tcmRzLWRiaW5zdGFuY2UtZGJzZWN1cml0eWdyb3VwcykgcHJvcGVydHkuXG4gKiAgIFxuICogICBUbyBhdm9pZCB0aGlzIHNpdHVhdGlvbiwgbWlncmF0ZSB5b3VyIERCIGluc3RhbmNlIHRvIHVzaW5nIFZQQyBzZWN1cml0eSBncm91cHMgb25seSB3aGVuIHRoYXQgaXMgdGhlIG9ubHkgY2hhbmdlIGluIHlvdXIgc3RhY2sgdGVtcGxhdGUuIFxuICogICAqQW1hem9uIEF1cm9yYSogXG4gKiAgTm90IGFwcGxpY2FibGUuIFRoZSBhc3NvY2lhdGVkIGxpc3Qgb2YgRUMyIFZQQyBzZWN1cml0eSBncm91cHMgaXMgbWFuYWdlZCBieSB0aGUgREIgY2x1c3Rlci4gSWYgc3BlY2lmaWVkLCB0aGUgc2V0dGluZyBtdXN0IG1hdGNoIHRoZSBEQiBjbHVzdGVyIHNldHRpbmcuXG4gKi9cblZQQ1NlY3VyaXR5R3JvdXBzPzogc3RyaW5nW11cbi8qKlxuICogU3BlY2lmaWVzIHdoZXRoZXIgY2hhbmdlcyB0byB0aGUgREIgaW5zdGFuY2UgYW5kIGFueSBwZW5kaW5nIG1vZGlmaWNhdGlvbnMgYXJlIGFwcGxpZWQgaW1tZWRpYXRlbHksIHJlZ2FyZGxlc3Mgb2YgdGhlIGBgUHJlZmVycmVkTWFpbnRlbmFuY2VXaW5kb3dgYCBzZXR0aW5nLiBJZiBzZXQgdG8gYGBmYWxzZWBgLCBjaGFuZ2VzIGFyZSBhcHBsaWVkIGR1cmluZyB0aGUgbmV4dCBtYWludGVuYW5jZSB3aW5kb3cuIFVudGlsIFJEUyBhcHBsaWVzIHRoZSBjaGFuZ2VzLCB0aGUgREIgaW5zdGFuY2UgcmVtYWlucyBpbiBhIGRyaWZ0IHN0YXRlLiBBcyBhIHJlc3VsdCwgdGhlIGNvbmZpZ3VyYXRpb24gZG9lc24ndCBmdWxseSByZWZsZWN0IHRoZSByZXF1ZXN0ZWQgbW9kaWZpY2F0aW9ucyBhbmQgdGVtcG9yYXJpbHkgZGl2ZXJnZXMgZnJvbSB0aGUgaW50ZW5kZWQgc3RhdGUuXG4gKiAgSW4gYWRkaXRpb24gdG8gdGhlIHNldHRpbmdzIGRlc2NyaWJlZCBpbiBbTW9kaWZ5aW5nIGEgREIgaW5zdGFuY2VdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L1VzZXJHdWlkZS9PdmVydmlldy5EQkluc3RhbmNlLk1vZGlmeWluZy5odG1sKSwgdGhpcyBwcm9wZXJ0eSBhbHNvIGRldGVybWluZXMgd2hldGhlciB0aGUgREIgaW5zdGFuY2UgcmVib290cyB3aGVuIGEgc3RhdGljIHBhcmFtZXRlciBpcyBtb2RpZmllZCBpbiB0aGUgYXNzb2NpYXRlZCBEQiBwYXJhbWV0ZXIgZ3JvdXAuXG4gKiAgRGVmYXVsdDogYGB0cnVlYGBcbiAqL1xuQXBwbHlJbW1lZGlhdGVseT86IGJvb2xlYW5cbi8qKlxuICogVGhlIGFkZGl0aW9uYWwgc3RvcmFnZSB2b2x1bWVzIGFzc29jaWF0ZWQgd2l0aCB0aGUgREIgaW5zdGFuY2UuIFJEUyBzdXBwb3J0cyBhZGRpdGlvbmFsIHN0b3JhZ2Ugdm9sdW1lcyBmb3IgUkRTIGZvciBPcmFjbGUgYW5kIFJEUyBmb3IgU1FMIFNlcnZlci5cbiAqL1xuQWRkaXRpb25hbFN0b3JhZ2VWb2x1bWVzPzogQWRkaXRpb25hbFN0b3JhZ2VWb2x1bWVbXVxufVxuLyoqXG4gKiBJbmZvcm1hdGlvbiBhYm91dCBhbiBBV1MgSWRlbnRpdHkgYW5kIEFjY2VzcyBNYW5hZ2VtZW50IChJQU0pIHJvbGUgdGhhdCBpcyBhc3NvY2lhdGVkIHdpdGggYSBEQiBpbnN0YW5jZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEQkluc3RhbmNlUm9sZSB7XG4vKipcbiAqIFRoZSBuYW1lIG9mIHRoZSBmZWF0dXJlIGFzc29jaWF0ZWQgd2l0aCB0aGUgQVdTIElkZW50aXR5IGFuZCBBY2Nlc3MgTWFuYWdlbWVudCAoSUFNKSByb2xlLiBJQU0gcm9sZXMgdGhhdCBhcmUgYXNzb2NpYXRlZCB3aXRoIGEgREIgaW5zdGFuY2UgZ3JhbnQgcGVybWlzc2lvbiBmb3IgdGhlIERCIGluc3RhbmNlIHRvIGFjY2VzcyBvdGhlciBBV1Mgc2VydmljZXMgb24geW91ciBiZWhhbGYuIEZvciB0aGUgbGlzdCBvZiBzdXBwb3J0ZWQgZmVhdHVyZSBuYW1lcywgc2VlIHRoZSBgYFN1cHBvcnRlZEZlYXR1cmVOYW1lc2BgIGRlc2NyaXB0aW9uIGluIFtEQkVuZ2luZVZlcnNpb25dKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfREJFbmdpbmVWZXJzaW9uLmh0bWwpIGluIHRoZSAqQW1hem9uIFJEUyBBUEkgUmVmZXJlbmNlKi5cbiAqL1xuRmVhdHVyZU5hbWU6IHN0cmluZ1xuLyoqXG4gKiBUaGUgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTikgb2YgdGhlIElBTSByb2xlIHRoYXQgaXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBEQiBpbnN0YW5jZS5cbiAqL1xuUm9sZUFybjogc3RyaW5nXG59XG5leHBvcnQgaW50ZXJmYWNlIENlcnRpZmljYXRlRGV0YWlscyB7XG4vKipcbiAqIFRoZSBDQSBpZGVudGlmaWVyIG9mIHRoZSBDQSBjZXJ0aWZpY2F0ZSB1c2VkIGZvciB0aGUgREIgaW5zdGFuY2UncyBzZXJ2ZXIgY2VydGlmaWNhdGUuXG4gKi9cbkNBSWRlbnRpZmllcj86IHN0cmluZ1xuLyoqXG4gKiBUaGUgZXhwaXJhdGlvbiBkYXRlIG9mIHRoZSBEQiBpbnN0YW5jZeKAmXMgc2VydmVyIGNlcnRpZmljYXRlLlxuICovXG5WYWxpZFRpbGw/OiBzdHJpbmdcbn1cbmV4cG9ydCBpbnRlcmZhY2UgRW5kcG9pbnQge1xuLyoqXG4gKiBTcGVjaWZpZXMgdGhlIEROUyBhZGRyZXNzIG9mIHRoZSBEQiBpbnN0YW5jZS5cbiAqL1xuQWRkcmVzcz86IHN0cmluZ1xuLyoqXG4gKiBTcGVjaWZpZXMgdGhlIHBvcnQgdGhhdCB0aGUgZGF0YWJhc2UgZW5naW5lIGlzIGxpc3RlbmluZyBvbi5cbiAqL1xuUG9ydD86IHN0cmluZ1xuLyoqXG4gKiBTcGVjaWZpZXMgdGhlIElEIHRoYXQgQW1hem9uIFJvdXRlIDUzIGFzc2lnbnMgd2hlbiB5b3UgY3JlYXRlIGEgaG9zdGVkIHpvbmUuXG4gKi9cbkhvc3RlZFpvbmVJZD86IHN0cmluZ1xufVxuZXhwb3J0IGludGVyZmFjZSBFbmRwb2ludDEge1xuLyoqXG4gKiBTcGVjaWZpZXMgdGhlIEROUyBhZGRyZXNzIG9mIHRoZSBEQiBpbnN0YW5jZS5cbiAqL1xuQWRkcmVzcz86IHN0cmluZ1xuLyoqXG4gKiBTcGVjaWZpZXMgdGhlIHBvcnQgdGhhdCB0aGUgZGF0YWJhc2UgZW5naW5lIGlzIGxpc3RlbmluZyBvbi5cbiAqL1xuUG9ydD86IHN0cmluZ1xuLyoqXG4gKiBTcGVjaWZpZXMgdGhlIElEIHRoYXQgQW1hem9uIFJvdXRlIDUzIGFzc2lnbnMgd2hlbiB5b3UgY3JlYXRlIGEgaG9zdGVkIHpvbmUuXG4gKi9cbkhvc3RlZFpvbmVJZD86IHN0cmluZ1xufVxuLyoqXG4gKiBUaGUgc2VjcmV0IG1hbmFnZWQgYnkgUkRTIGluIEFXUyBTZWNyZXRzIE1hbmFnZXIgZm9yIHRoZSBtYXN0ZXIgdXNlciBwYXNzd29yZC5cbiAqICBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtQYXNzd29yZCBtYW5hZ2VtZW50IHdpdGggU2VjcmV0cyBNYW5hZ2VyXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUkRTL2xhdGVzdC9Vc2VyR3VpZGUvcmRzLXNlY3JldHMtbWFuYWdlci5odG1sKSBpbiB0aGUgKkFtYXpvbiBSRFMgVXNlciBHdWlkZS4qXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWFzdGVyVXNlclNlY3JldCB7XG4vKipcbiAqIFRoZSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKSBvZiB0aGUgc2VjcmV0LiBUaGlzIHBhcmFtZXRlciBpcyBhIHJldHVybiB2YWx1ZSB0aGF0IHlvdSBjYW4gcmV0cmlldmUgdXNpbmcgdGhlIGBgRm46OkdldEF0dGBgIGludHJpbnNpYyBmdW5jdGlvbi4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbUmV0dXJuIHZhbHVlc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXJlc291cmNlLXJkcy1kYmluc3RhbmNlLmh0bWwjYXdzLXJlc291cmNlLXJkcy1kYmluc3RhbmNlLXJldHVybi12YWx1ZXMpLlxuICovXG5TZWNyZXRBcm4/OiBzdHJpbmdcbi8qKlxuICogVGhlIEFXUyBLTVMga2V5IGlkZW50aWZpZXIgdGhhdCBpcyB1c2VkIHRvIGVuY3J5cHQgdGhlIHNlY3JldC5cbiAqL1xuS21zS2V5SWQ/OiBzdHJpbmdcbn1cbi8qKlxuICogVGhlIGBgUHJvY2Vzc29yRmVhdHVyZWBgIHByb3BlcnR5IHR5cGUgc3BlY2lmaWVzIHRoZSBwcm9jZXNzb3IgZmVhdHVyZXMgb2YgYSBEQiBpbnN0YW5jZSBjbGFzcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcm9jZXNzb3JGZWF0dXJlIHtcbi8qKlxuICogVGhlIG5hbWUgb2YgdGhlIHByb2Nlc3NvciBmZWF0dXJlLiBWYWxpZCBuYW1lcyBhcmUgYGBjb3JlQ291bnRgYCBhbmQgYGB0aHJlYWRzUGVyQ29yZWBgLlxuICovXG5OYW1lPzogKFwiY29yZUNvdW50XCIgfCBcInRocmVhZHNQZXJDb3JlXCIpXG4vKipcbiAqIFRoZSB2YWx1ZSBvZiBhIHByb2Nlc3NvciBmZWF0dXJlLlxuICovXG5WYWx1ZT86IHN0cmluZ1xufVxuLyoqXG4gKiBQcm92aWRlcyBhIGxpc3Qgb2Ygc3RhdHVzIGluZm9ybWF0aW9uIGZvciBhIERCIGluc3RhbmNlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERCSW5zdGFuY2VTdGF0dXNJbmZvIHtcbi8qKlxuICogRGV0YWlscyBvZiB0aGUgZXJyb3IgaWYgdGhlcmUgaXMgYW4gZXJyb3IgZm9yIHRoZSBpbnN0YW5jZS4gSWYgdGhlIGluc3RhbmNlIGlzbid0IGluIGFuIGVycm9yIHN0YXRlLCB0aGlzIHZhbHVlIGlzIGJsYW5rLlxuICovXG5NZXNzYWdlPzogc3RyaW5nXG4vKipcbiAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBpbnN0YW5jZSBpcyBvcGVyYXRpbmcgbm9ybWFsbHkgKFRSVUUpIG9yIGlzIGluIGFuIGVycm9yIHN0YXRlIChGQUxTRSkuXG4gKi9cbk5vcm1hbD86IGJvb2xlYW5cbi8qKlxuICogVGhlIHN0YXR1cyBvZiB0aGUgREIgaW5zdGFuY2UuIEZvciBhIFN0YXR1c1R5cGUgb2YgcmVhZCByZXBsaWNhLCB0aGUgdmFsdWVzIGNhbiBiZSByZXBsaWNhdGluZywgcmVwbGljYXRpb24gc3RvcCBwb2ludCBzZXQsIHJlcGxpY2F0aW9uIHN0b3AgcG9pbnQgcmVhY2hlZCwgZXJyb3IsIHN0b3BwZWQsIG9yIHRlcm1pbmF0ZWQuXG4gKi9cblN0YXR1cz86IHN0cmluZ1xuLyoqXG4gKiBUaGlzIHZhbHVlIGlzIGN1cnJlbnRseSBcInJlYWQgcmVwbGljYXRpb24uXCJcbiAqL1xuU3RhdHVzVHlwZT86IHN0cmluZ1xufVxuLyoqXG4gKiBNZXRhZGF0YSBhc3NpZ25lZCB0byBhbiBBbWF6b24gUkRTIHJlc291cmNlIGNvbnNpc3Rpbmcgb2YgYSBrZXktdmFsdWUgcGFpci5cbiAqICBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtUYWdnaW5nIEFtYXpvbiBSRFMgcmVzb3VyY2VzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUkRTL2xhdGVzdC9Vc2VyR3VpZGUvVVNFUl9UYWdnaW5nLmh0bWwpIGluIHRoZSAqQW1hem9uIFJEUyBVc2VyIEd1aWRlKiBvciBbVGFnZ2luZyBBbWF6b24gQXVyb3JhIGFuZCBBbWF6b24gUkRTIHJlc291cmNlc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvQXVyb3JhVXNlckd1aWRlL1VTRVJfVGFnZ2luZy5odG1sKSBpbiB0aGUgKkFtYXpvbiBBdXJvcmEgVXNlciBHdWlkZSouXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGFnIHtcbi8qKlxuICogQSBrZXkgaXMgdGhlIHJlcXVpcmVkIG5hbWUgb2YgdGhlIHRhZy4gVGhlIHN0cmluZyB2YWx1ZSBjYW4gYmUgZnJvbSAxIHRvIDEyOCBVbmljb2RlIGNoYXJhY3RlcnMgaW4gbGVuZ3RoIGFuZCBjYW4ndCBiZSBwcmVmaXhlZCB3aXRoIGBgYXdzOmBgIG9yIGBgcmRzOmBgLiBUaGUgc3RyaW5nIGNhbiBvbmx5IGNvbnRhaW4gb25seSB0aGUgc2V0IG9mIFVuaWNvZGUgbGV0dGVycywgZGlnaXRzLCB3aGl0ZS1zcGFjZSwgJ18nLCAnLicsICc6JywgJy8nLCAnPScsICcrJywgJy0nLCAnQCcgKEphdmEgcmVnZXg6IFwiXihbXFxcXHB7TH1cXFxccHtafVxcXFxwe059Xy46Lz0rXFxcXC1AXSopJFwiKS5cbiAqL1xuS2V5OiBzdHJpbmdcbi8qKlxuICogQSB2YWx1ZSBpcyB0aGUgb3B0aW9uYWwgdmFsdWUgb2YgdGhlIHRhZy4gVGhlIHN0cmluZyB2YWx1ZSBjYW4gYmUgZnJvbSAxIHRvIDI1NiBVbmljb2RlIGNoYXJhY3RlcnMgaW4gbGVuZ3RoIGFuZCBjYW4ndCBiZSBwcmVmaXhlZCB3aXRoIGBgYXdzOmBgIG9yIGBgcmRzOmBgLiBUaGUgc3RyaW5nIGNhbiBvbmx5IGNvbnRhaW4gb25seSB0aGUgc2V0IG9mIFVuaWNvZGUgbGV0dGVycywgZGlnaXRzLCB3aGl0ZS1zcGFjZSwgJ18nLCAnLicsICc6JywgJy8nLCAnPScsICcrJywgJy0nLCAnQCcgKEphdmEgcmVnZXg6IFwiXihbXFxcXHB7TH1cXFxccHtafVxcXFxwe059Xy46Lz0rXFxcXC1AXSopJFwiKS5cbiAqL1xuVmFsdWU/OiBzdHJpbmdcbn1cbi8qKlxuICogQ29udGFpbnMgZGV0YWlscyBhYm91dCBhbiBhZGRpdGlvbmFsIHN0b3JhZ2Ugdm9sdW1lIGZvciBhIERCIGluc3RhbmNlLiBSRFMgc3VwcG9ydCBhZGRpdGlvbmFsIHN0b3JhZ2Ugdm9sdW1lcyBmb3IgUkRTIGZvciBPcmFjbGUgYW5kIFJEUyBmb3IgU1FMIFNlcnZlci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBZGRpdGlvbmFsU3RvcmFnZVZvbHVtZSB7XG4vKipcbiAqIFRoZSBuYW1lIG9mIHRoZSBhZGRpdGlvbmFsIHN0b3JhZ2Ugdm9sdW1lLlxuICogIFZhbGlkIFZhbHVlczogYGBSRFNEQkRBVEEyIHwgUkRTREJEQVRBMyB8IFJEU0RCREFUQTRgYFxuICovXG5Wb2x1bWVOYW1lPzogc3RyaW5nXG4vKipcbiAqIFRoZSBzdG9yYWdlIHR5cGUgZm9yIHRoZSBhZGRpdGlvbmFsIHN0b3JhZ2Ugdm9sdW1lLlxuICogIFZhbGlkIFZhbHVlczogYGBHUDMgfCBJTzJgYFxuICovXG5TdG9yYWdlVHlwZT86IHN0cmluZ1xuLyoqXG4gKiBUaGUgYW1vdW50IG9mIHN0b3JhZ2UgYWxsb2NhdGVkIGZvciB0aGUgYWRkaXRpb25hbCBzdG9yYWdlIHZvbHVtZSwgaW4gZ2liaWJ5dGVzIChHaUIpLiBUaGUgbWluaW11bSBpcyAyMCBHaUIuIFRoZSBtYXhpbXVtIGlzIDY1LDUzNiBHaUIgKDY0IFRpQikuXG4gKi9cbkFsbG9jYXRlZFN0b3JhZ2U/OiBzdHJpbmdcbi8qKlxuICogVGhlIG51bWJlciBvZiBJL08gb3BlcmF0aW9ucyBwZXIgc2Vjb25kIChJT1BTKSBwcm92aXNpb25lZCBmb3IgdGhlIGFkZGl0aW9uYWwgc3RvcmFnZSB2b2x1bWUuXG4gKi9cbklvcHM/OiBudW1iZXJcbi8qKlxuICogVGhlIHVwcGVyIGxpbWl0IGluIGdpYmlieXRlcyAoR2lCKSB0byB3aGljaCBSRFMgY2FuIGF1dG9tYXRpY2FsbHkgc2NhbGUgdGhlIHN0b3JhZ2Ugb2YgdGhlIGFkZGl0aW9uYWwgc3RvcmFnZSB2b2x1bWUuXG4gKi9cbk1heEFsbG9jYXRlZFN0b3JhZ2U/OiBudW1iZXJcbi8qKlxuICogVGhlIHN0b3JhZ2UgdGhyb3VnaHB1dCB2YWx1ZSBmb3IgdGhlIGFkZGl0aW9uYWwgc3RvcmFnZSB2b2x1bWUsIGluIG1lYmlieXRlcyBwZXIgc2Vjb25kIChNaUJwcykuIFRoaXMgc2V0dGluZyBhcHBsaWVzIG9ubHkgdG8gdGhlIEdlbmVyYWwgUHVycG9zZSBTU0QgKGBgZ3AzYGApIHN0b3JhZ2UgdHlwZS5cbiAqL1xuU3RvcmFnZVRocm91Z2hwdXQ/OiBudW1iZXJcbn1cbiJdfQ==
@@ -6,10 +6,7 @@ export interface _AWS_S3EXPRESS_DIRECTORYBUCKET {
6
6
  * Specifies a name for the bucket. The bucket name must contain only lowercase letters, numbers, and hyphens (-). A directory bucket name must be unique in the chosen Availability Zone or Local Zone. The bucket name must also follow the format 'bucket_base_name--zone_id--x-s3'. The zone_id can be the ID of an Availability Zone or a Local Zone. If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the bucket name.
7
7
  */
8
8
  BucketName?: string;
9
- /**
10
- * Specifies the Zone ID of the Availability Zone or Local Zone where the directory bucket will be created. An example Availability Zone ID value is 'use1-az5'.
11
- */
12
- LocationName: string;
9
+ BucketEncryption?: BucketEncryption;
13
10
  /**
14
11
  * Returns the code for the Availability Zone or Local Zone where the directory bucket was created. An example for the code of an Availability Zone is 'us-east-1f'.
15
12
  */
@@ -18,13 +15,16 @@ export interface _AWS_S3EXPRESS_DIRECTORYBUCKET {
18
15
  * Specifies the number of Availability Zone or Local Zone that's used for redundancy for the bucket.
19
16
  */
20
17
  DataRedundancy: ("SingleAvailabilityZone" | "SingleLocalZone");
18
+ LifecycleConfiguration?: LifecycleConfiguration;
21
19
  /**
22
20
  * Returns the Amazon Resource Name (ARN) of the specified bucket.
23
21
  */
24
22
  Arn?: string;
25
- BucketEncryption?: BucketEncryption;
26
- LifecycleConfiguration?: LifecycleConfiguration;
27
23
  Tags?: Tag[];
24
+ /**
25
+ * Specifies the Zone ID of the Availability Zone or Local Zone where the directory bucket will be created. An example Availability Zone ID value is 'use1-az5'.
26
+ */
27
+ LocationName: string;
28
28
  }
29
29
  /**
30
30
  * Specifies default encryption for a bucket using server-side encryption with Amazon S3 managed keys (SSE-S3) or AWS KMS keys (SSE-KMS).
@@ -49,13 +49,13 @@ export interface ServerSideEncryptionRule {
49
49
  * Specifies the default server-side encryption to apply to new objects in the bucket. If a PUT Object request doesn't specify any server-side encryption, this default encryption will be applied.
50
50
  */
51
51
  export interface ServerSideEncryptionByDefault {
52
+ SSEAlgorithm: ("aws:kms" | "AES256");
52
53
  /**
53
54
  * AWS Key Management Service (KMS) customer managed key ID to use for the default encryption. This parameter is allowed only if SSEAlgorithm is set to aws:kms. You can specify this parameter with the key ID or the Amazon Resource Name (ARN) of the KMS key
54
55
  */
55
56
  KMSMasterKeyID?: ({
56
57
  [k: string]: unknown;
57
58
  } & string);
58
- SSEAlgorithm: ("aws:kms" | "AES256");
59
59
  }
60
60
  /**
61
61
  * Lifecycle rules that define how Amazon S3 Express manages objects during their lifetime.
@@ -70,12 +70,12 @@ export interface LifecycleConfiguration {
70
70
  * You must specify at least one of the following properties: AbortIncompleteMultipartUpload, or ExpirationInDays.
71
71
  */
72
72
  export interface Rule {
73
- AbortIncompleteMultipartUpload?: AbortIncompleteMultipartUpload;
73
+ Status: ("Enabled" | "Disabled");
74
74
  ExpirationInDays?: number;
75
+ ObjectSizeGreaterThan?: string;
75
76
  Id?: string;
76
77
  Prefix?: string;
77
- Status: ("Enabled" | "Disabled");
78
- ObjectSizeGreaterThan?: string;
78
+ AbortIncompleteMultipartUpload?: AbortIncompleteMultipartUpload;
79
79
  ObjectSizeLessThan?: string;
80
80
  }
81
81
  /**
@@ -88,6 +88,6 @@ export interface AbortIncompleteMultipartUpload {
88
88
  DaysAfterInitiation: number;
89
89
  }
90
90
  export interface Tag {
91
- Key: string;
92
91
  Value: string;
92
+ Key: string;
93
93
  }
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLXMzZXhwcmVzcy1kaXJlY3RvcnlidWNrZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJhd3MtczNleHByZXNzLWRpcmVjdG9yeWJ1Y2tldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBSZXNvdXJjZSBUeXBlIGRlZmluaXRpb24gZm9yIEFXUzo6UzNFeHByZXNzOjpEaXJlY3RvcnlCdWNrZXQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgX0FXU19TM0VYUFJFU1NfRElSRUNUT1JZQlVDS0VUIHtcbi8qKlxuICogU3BlY2lmaWVzIGEgbmFtZSBmb3IgdGhlIGJ1Y2tldC4gVGhlIGJ1Y2tldCBuYW1lIG11c3QgY29udGFpbiBvbmx5IGxvd2VyY2FzZSBsZXR0ZXJzLCBudW1iZXJzLCBhbmQgaHlwaGVucyAoLSkuIEEgZGlyZWN0b3J5IGJ1Y2tldCBuYW1lIG11c3QgYmUgdW5pcXVlIGluIHRoZSBjaG9zZW4gQXZhaWxhYmlsaXR5IFpvbmUgb3IgTG9jYWwgWm9uZS4gVGhlIGJ1Y2tldCBuYW1lIG11c3QgYWxzbyBmb2xsb3cgdGhlIGZvcm1hdCAnYnVja2V0X2Jhc2VfbmFtZS0tem9uZV9pZC0teC1zMycuIFRoZSB6b25lX2lkIGNhbiBiZSB0aGUgSUQgb2YgYW4gQXZhaWxhYmlsaXR5IFpvbmUgb3IgYSBMb2NhbCBab25lLiBJZiB5b3UgZG9uJ3Qgc3BlY2lmeSBhIG5hbWUsIEFXUyBDbG91ZEZvcm1hdGlvbiBnZW5lcmF0ZXMgYSB1bmlxdWUgcGh5c2ljYWwgSUQgYW5kIHVzZXMgdGhhdCBJRCBmb3IgdGhlIGJ1Y2tldCBuYW1lLlxuICovXG5CdWNrZXROYW1lPzogc3RyaW5nXG4vKipcbiAqIFNwZWNpZmllcyB0aGUgWm9uZSBJRCBvZiB0aGUgQXZhaWxhYmlsaXR5IFpvbmUgb3IgTG9jYWwgWm9uZSB3aGVyZSB0aGUgZGlyZWN0b3J5IGJ1Y2tldCB3aWxsIGJlIGNyZWF0ZWQuIEFuIGV4YW1wbGUgQXZhaWxhYmlsaXR5IFpvbmUgSUQgdmFsdWUgaXMgJ3VzZTEtYXo1Jy5cbiAqL1xuTG9jYXRpb25OYW1lOiBzdHJpbmdcbi8qKlxuICogUmV0dXJucyB0aGUgY29kZSBmb3IgdGhlIEF2YWlsYWJpbGl0eSBab25lIG9yIExvY2FsIFpvbmUgd2hlcmUgdGhlIGRpcmVjdG9yeSBidWNrZXQgd2FzIGNyZWF0ZWQuIEFuIGV4YW1wbGUgZm9yIHRoZSBjb2RlIG9mIGFuIEF2YWlsYWJpbGl0eSBab25lIGlzICd1cy1lYXN0LTFmJy5cbiAqL1xuQXZhaWxhYmlsaXR5Wm9uZU5hbWU/OiBzdHJpbmdcbi8qKlxuICogU3BlY2lmaWVzIHRoZSBudW1iZXIgb2YgQXZhaWxhYmlsaXR5IFpvbmUgb3IgTG9jYWwgWm9uZSB0aGF0J3MgdXNlZCBmb3IgcmVkdW5kYW5jeSBmb3IgdGhlIGJ1Y2tldC5cbiAqL1xuRGF0YVJlZHVuZGFuY3k6IChcIlNpbmdsZUF2YWlsYWJpbGl0eVpvbmVcIiB8IFwiU2luZ2xlTG9jYWxab25lXCIpXG4vKipcbiAqIFJldHVybnMgdGhlIEFtYXpvbiBSZXNvdXJjZSBOYW1lIChBUk4pIG9mIHRoZSBzcGVjaWZpZWQgYnVja2V0LlxuICovXG5Bcm4/OiBzdHJpbmdcbkJ1Y2tldEVuY3J5cHRpb24/OiBCdWNrZXRFbmNyeXB0aW9uXG5MaWZlY3ljbGVDb25maWd1cmF0aW9uPzogTGlmZWN5Y2xlQ29uZmlndXJhdGlvblxuVGFncz86IFRhZ1tdXG59XG4vKipcbiAqIFNwZWNpZmllcyBkZWZhdWx0IGVuY3J5cHRpb24gZm9yIGEgYnVja2V0IHVzaW5nIHNlcnZlci1zaWRlIGVuY3J5cHRpb24gd2l0aCBBbWF6b24gUzMgbWFuYWdlZCBrZXlzIChTU0UtUzMpIG9yIEFXUyBLTVMga2V5cyAoU1NFLUtNUykuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQnVja2V0RW5jcnlwdGlvbiB7XG4vKipcbiAqIFNwZWNpZmllcyB0aGUgZGVmYXVsdCBzZXJ2ZXItc2lkZS1lbmNyeXB0aW9uIGNvbmZpZ3VyYXRpb24uXG4gKi9cblNlcnZlclNpZGVFbmNyeXB0aW9uQ29uZmlndXJhdGlvbjogU2VydmVyU2lkZUVuY3J5cHRpb25SdWxlW11cbn1cbi8qKlxuICogU3BlY2lmaWVzIHRoZSBkZWZhdWx0IHNlcnZlci1zaWRlIGVuY3J5cHRpb24gY29uZmlndXJhdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZXJ2ZXJTaWRlRW5jcnlwdGlvblJ1bGUge1xuLyoqXG4gKiBTcGVjaWZpZXMgd2hldGhlciBBbWF6b24gUzMgc2hvdWxkIHVzZSBhbiBTMyBCdWNrZXQgS2V5IHdpdGggc2VydmVyLXNpZGUgZW5jcnlwdGlvbiB1c2luZyBLTVMgKFNTRS1LTVMpIGZvciBuZXcgb2JqZWN0cyBpbiB0aGUgYnVja2V0LiBFeGlzdGluZyBvYmplY3RzIGFyZSBub3QgYWZmZWN0ZWQuIEFtYXpvbiBTMyBFeHByZXNzIE9uZSBab25lIHVzZXMgYW4gUzMgQnVja2V0IEtleSB3aXRoIFNTRS1LTVMgYW5kIFMzIEJ1Y2tldCBLZXkgY2Fubm90IGJlIGRpc2FibGVkLiBJdCdzIG9ubHkgYWxsb3dlZCB0byBzZXQgdGhlIEJ1Y2tldEtleUVuYWJsZWQgZWxlbWVudCB0byB0cnVlLlxuICovXG5CdWNrZXRLZXlFbmFibGVkPzogYm9vbGVhblxuU2VydmVyU2lkZUVuY3J5cHRpb25CeURlZmF1bHQ/OiBTZXJ2ZXJTaWRlRW5jcnlwdGlvbkJ5RGVmYXVsdFxufVxuLyoqXG4gKiBTcGVjaWZpZXMgdGhlIGRlZmF1bHQgc2VydmVyLXNpZGUgZW5jcnlwdGlvbiB0byBhcHBseSB0byBuZXcgb2JqZWN0cyBpbiB0aGUgYnVja2V0LiBJZiBhIFBVVCBPYmplY3QgcmVxdWVzdCBkb2Vzbid0IHNwZWNpZnkgYW55IHNlcnZlci1zaWRlIGVuY3J5cHRpb24sIHRoaXMgZGVmYXVsdCBlbmNyeXB0aW9uIHdpbGwgYmUgYXBwbGllZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZXJ2ZXJTaWRlRW5jcnlwdGlvbkJ5RGVmYXVsdCB7XG4vKipcbiAqIEFXUyBLZXkgTWFuYWdlbWVudCBTZXJ2aWNlIChLTVMpIGN1c3RvbWVyIG1hbmFnZWQga2V5IElEIHRvIHVzZSBmb3IgdGhlIGRlZmF1bHQgZW5jcnlwdGlvbi4gVGhpcyBwYXJhbWV0ZXIgaXMgYWxsb3dlZCBvbmx5IGlmIFNTRUFsZ29yaXRobSBpcyBzZXQgdG8gYXdzOmttcy4gWW91IGNhbiBzcGVjaWZ5IHRoaXMgcGFyYW1ldGVyIHdpdGggdGhlIGtleSBJRCBvciB0aGUgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTikgb2YgdGhlIEtNUyBrZXlcbiAqL1xuS01TTWFzdGVyS2V5SUQ/OiAoe1xuW2s6IHN0cmluZ106IHVua25vd25cbn0gJiBzdHJpbmcpXG5TU0VBbGdvcml0aG06IChcImF3czprbXNcIiB8IFwiQUVTMjU2XCIpXG59XG4vKipcbiAqIExpZmVjeWNsZSBydWxlcyB0aGF0IGRlZmluZSBob3cgQW1hem9uIFMzIEV4cHJlc3MgbWFuYWdlcyBvYmplY3RzIGR1cmluZyB0aGVpciBsaWZldGltZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMaWZlY3ljbGVDb25maWd1cmF0aW9uIHtcbi8qKlxuICogQSBsaWZlY3ljbGUgcnVsZSBmb3IgaW5kaXZpZHVhbCBvYmplY3RzIGluIGFuIEFtYXpvbiBTMyBFeHByZXNzIGJ1Y2tldC5cbiAqL1xuUnVsZXM6IFJ1bGVbXVxufVxuLyoqXG4gKiBZb3UgbXVzdCBzcGVjaWZ5IGF0IGxlYXN0IG9uZSBvZiB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXM6IEFib3J0SW5jb21wbGV0ZU11bHRpcGFydFVwbG9hZCwgb3IgRXhwaXJhdGlvbkluRGF5cy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSdWxlIHtcbkFib3J0SW5jb21wbGV0ZU11bHRpcGFydFVwbG9hZD86IEFib3J0SW5jb21wbGV0ZU11bHRpcGFydFVwbG9hZFxuRXhwaXJhdGlvbkluRGF5cz86IG51bWJlclxuSWQ/OiBzdHJpbmdcblByZWZpeD86IHN0cmluZ1xuU3RhdHVzOiAoXCJFbmFibGVkXCIgfCBcIkRpc2FibGVkXCIpXG5PYmplY3RTaXplR3JlYXRlclRoYW4/OiBzdHJpbmdcbk9iamVjdFNpemVMZXNzVGhhbj86IHN0cmluZ1xufVxuLyoqXG4gKiBTcGVjaWZpZXMgdGhlIGRheXMgc2luY2UgdGhlIGluaXRpYXRpb24gb2YgYW4gaW5jb21wbGV0ZSBtdWx0aXBhcnQgdXBsb2FkIHRoYXQgQW1hem9uIFMzIHdpbGwgd2FpdCBiZWZvcmUgcGVybWFuZW50bHkgcmVtb3ZpbmcgYWxsIHBhcnRzIG9mIHRoZSB1cGxvYWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQWJvcnRJbmNvbXBsZXRlTXVsdGlwYXJ0VXBsb2FkIHtcbi8qKlxuICogU3BlY2lmaWVzIHRoZSBudW1iZXIgb2YgZGF5cyBhZnRlciB3aGljaCBBbWF6b24gUzMgYWJvcnRzIGFuIGluY29tcGxldGUgbXVsdGlwYXJ0IHVwbG9hZC5cbiAqL1xuRGF5c0FmdGVySW5pdGlhdGlvbjogbnVtYmVyXG59XG5leHBvcnQgaW50ZXJmYWNlIFRhZyB7XG5LZXk6IHN0cmluZ1xuVmFsdWU6IHN0cmluZ1xufVxuIl19
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLXMzZXhwcmVzcy1kaXJlY3RvcnlidWNrZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJhd3MtczNleHByZXNzLWRpcmVjdG9yeWJ1Y2tldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBSZXNvdXJjZSBUeXBlIGRlZmluaXRpb24gZm9yIEFXUzo6UzNFeHByZXNzOjpEaXJlY3RvcnlCdWNrZXQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgX0FXU19TM0VYUFJFU1NfRElSRUNUT1JZQlVDS0VUIHtcbi8qKlxuICogU3BlY2lmaWVzIGEgbmFtZSBmb3IgdGhlIGJ1Y2tldC4gVGhlIGJ1Y2tldCBuYW1lIG11c3QgY29udGFpbiBvbmx5IGxvd2VyY2FzZSBsZXR0ZXJzLCBudW1iZXJzLCBhbmQgaHlwaGVucyAoLSkuIEEgZGlyZWN0b3J5IGJ1Y2tldCBuYW1lIG11c3QgYmUgdW5pcXVlIGluIHRoZSBjaG9zZW4gQXZhaWxhYmlsaXR5IFpvbmUgb3IgTG9jYWwgWm9uZS4gVGhlIGJ1Y2tldCBuYW1lIG11c3QgYWxzbyBmb2xsb3cgdGhlIGZvcm1hdCAnYnVja2V0X2Jhc2VfbmFtZS0tem9uZV9pZC0teC1zMycuIFRoZSB6b25lX2lkIGNhbiBiZSB0aGUgSUQgb2YgYW4gQXZhaWxhYmlsaXR5IFpvbmUgb3IgYSBMb2NhbCBab25lLiBJZiB5b3UgZG9uJ3Qgc3BlY2lmeSBhIG5hbWUsIEFXUyBDbG91ZEZvcm1hdGlvbiBnZW5lcmF0ZXMgYSB1bmlxdWUgcGh5c2ljYWwgSUQgYW5kIHVzZXMgdGhhdCBJRCBmb3IgdGhlIGJ1Y2tldCBuYW1lLlxuICovXG5CdWNrZXROYW1lPzogc3RyaW5nXG5CdWNrZXRFbmNyeXB0aW9uPzogQnVja2V0RW5jcnlwdGlvblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBjb2RlIGZvciB0aGUgQXZhaWxhYmlsaXR5IFpvbmUgb3IgTG9jYWwgWm9uZSB3aGVyZSB0aGUgZGlyZWN0b3J5IGJ1Y2tldCB3YXMgY3JlYXRlZC4gQW4gZXhhbXBsZSBmb3IgdGhlIGNvZGUgb2YgYW4gQXZhaWxhYmlsaXR5IFpvbmUgaXMgJ3VzLWVhc3QtMWYnLlxuICovXG5BdmFpbGFiaWxpdHlab25lTmFtZT86IHN0cmluZ1xuLyoqXG4gKiBTcGVjaWZpZXMgdGhlIG51bWJlciBvZiBBdmFpbGFiaWxpdHkgWm9uZSBvciBMb2NhbCBab25lIHRoYXQncyB1c2VkIGZvciByZWR1bmRhbmN5IGZvciB0aGUgYnVja2V0LlxuICovXG5EYXRhUmVkdW5kYW5jeTogKFwiU2luZ2xlQXZhaWxhYmlsaXR5Wm9uZVwiIHwgXCJTaW5nbGVMb2NhbFpvbmVcIilcbkxpZmVjeWNsZUNvbmZpZ3VyYXRpb24/OiBMaWZlY3ljbGVDb25maWd1cmF0aW9uXG4vKipcbiAqIFJldHVybnMgdGhlIEFtYXpvbiBSZXNvdXJjZSBOYW1lIChBUk4pIG9mIHRoZSBzcGVjaWZpZWQgYnVja2V0LlxuICovXG5Bcm4/OiBzdHJpbmdcblRhZ3M/OiBUYWdbXVxuLyoqXG4gKiBTcGVjaWZpZXMgdGhlIFpvbmUgSUQgb2YgdGhlIEF2YWlsYWJpbGl0eSBab25lIG9yIExvY2FsIFpvbmUgd2hlcmUgdGhlIGRpcmVjdG9yeSBidWNrZXQgd2lsbCBiZSBjcmVhdGVkLiBBbiBleGFtcGxlIEF2YWlsYWJpbGl0eSBab25lIElEIHZhbHVlIGlzICd1c2UxLWF6NScuXG4gKi9cbkxvY2F0aW9uTmFtZTogc3RyaW5nXG59XG4vKipcbiAqIFNwZWNpZmllcyBkZWZhdWx0IGVuY3J5cHRpb24gZm9yIGEgYnVja2V0IHVzaW5nIHNlcnZlci1zaWRlIGVuY3J5cHRpb24gd2l0aCBBbWF6b24gUzMgbWFuYWdlZCBrZXlzIChTU0UtUzMpIG9yIEFXUyBLTVMga2V5cyAoU1NFLUtNUykuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQnVja2V0RW5jcnlwdGlvbiB7XG4vKipcbiAqIFNwZWNpZmllcyB0aGUgZGVmYXVsdCBzZXJ2ZXItc2lkZS1lbmNyeXB0aW9uIGNvbmZpZ3VyYXRpb24uXG4gKi9cblNlcnZlclNpZGVFbmNyeXB0aW9uQ29uZmlndXJhdGlvbjogU2VydmVyU2lkZUVuY3J5cHRpb25SdWxlW11cbn1cbi8qKlxuICogU3BlY2lmaWVzIHRoZSBkZWZhdWx0IHNlcnZlci1zaWRlIGVuY3J5cHRpb24gY29uZmlndXJhdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZXJ2ZXJTaWRlRW5jcnlwdGlvblJ1bGUge1xuLyoqXG4gKiBTcGVjaWZpZXMgd2hldGhlciBBbWF6b24gUzMgc2hvdWxkIHVzZSBhbiBTMyBCdWNrZXQgS2V5IHdpdGggc2VydmVyLXNpZGUgZW5jcnlwdGlvbiB1c2luZyBLTVMgKFNTRS1LTVMpIGZvciBuZXcgb2JqZWN0cyBpbiB0aGUgYnVja2V0LiBFeGlzdGluZyBvYmplY3RzIGFyZSBub3QgYWZmZWN0ZWQuIEFtYXpvbiBTMyBFeHByZXNzIE9uZSBab25lIHVzZXMgYW4gUzMgQnVja2V0IEtleSB3aXRoIFNTRS1LTVMgYW5kIFMzIEJ1Y2tldCBLZXkgY2Fubm90IGJlIGRpc2FibGVkLiBJdCdzIG9ubHkgYWxsb3dlZCB0byBzZXQgdGhlIEJ1Y2tldEtleUVuYWJsZWQgZWxlbWVudCB0byB0cnVlLlxuICovXG5CdWNrZXRLZXlFbmFibGVkPzogYm9vbGVhblxuU2VydmVyU2lkZUVuY3J5cHRpb25CeURlZmF1bHQ/OiBTZXJ2ZXJTaWRlRW5jcnlwdGlvbkJ5RGVmYXVsdFxufVxuLyoqXG4gKiBTcGVjaWZpZXMgdGhlIGRlZmF1bHQgc2VydmVyLXNpZGUgZW5jcnlwdGlvbiB0byBhcHBseSB0byBuZXcgb2JqZWN0cyBpbiB0aGUgYnVja2V0LiBJZiBhIFBVVCBPYmplY3QgcmVxdWVzdCBkb2Vzbid0IHNwZWNpZnkgYW55IHNlcnZlci1zaWRlIGVuY3J5cHRpb24sIHRoaXMgZGVmYXVsdCBlbmNyeXB0aW9uIHdpbGwgYmUgYXBwbGllZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZXJ2ZXJTaWRlRW5jcnlwdGlvbkJ5RGVmYXVsdCB7XG5TU0VBbGdvcml0aG06IChcImF3czprbXNcIiB8IFwiQUVTMjU2XCIpXG4vKipcbiAqIEFXUyBLZXkgTWFuYWdlbWVudCBTZXJ2aWNlIChLTVMpIGN1c3RvbWVyIG1hbmFnZWQga2V5IElEIHRvIHVzZSBmb3IgdGhlIGRlZmF1bHQgZW5jcnlwdGlvbi4gVGhpcyBwYXJhbWV0ZXIgaXMgYWxsb3dlZCBvbmx5IGlmIFNTRUFsZ29yaXRobSBpcyBzZXQgdG8gYXdzOmttcy4gWW91IGNhbiBzcGVjaWZ5IHRoaXMgcGFyYW1ldGVyIHdpdGggdGhlIGtleSBJRCBvciB0aGUgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTikgb2YgdGhlIEtNUyBrZXlcbiAqL1xuS01TTWFzdGVyS2V5SUQ/OiAoe1xuW2s6IHN0cmluZ106IHVua25vd25cbn0gJiBzdHJpbmcpXG59XG4vKipcbiAqIExpZmVjeWNsZSBydWxlcyB0aGF0IGRlZmluZSBob3cgQW1hem9uIFMzIEV4cHJlc3MgbWFuYWdlcyBvYmplY3RzIGR1cmluZyB0aGVpciBsaWZldGltZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMaWZlY3ljbGVDb25maWd1cmF0aW9uIHtcbi8qKlxuICogQSBsaWZlY3ljbGUgcnVsZSBmb3IgaW5kaXZpZHVhbCBvYmplY3RzIGluIGFuIEFtYXpvbiBTMyBFeHByZXNzIGJ1Y2tldC5cbiAqL1xuUnVsZXM6IFJ1bGVbXVxufVxuLyoqXG4gKiBZb3UgbXVzdCBzcGVjaWZ5IGF0IGxlYXN0IG9uZSBvZiB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXM6IEFib3J0SW5jb21wbGV0ZU11bHRpcGFydFVwbG9hZCwgb3IgRXhwaXJhdGlvbkluRGF5cy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSdWxlIHtcblN0YXR1czogKFwiRW5hYmxlZFwiIHwgXCJEaXNhYmxlZFwiKVxuRXhwaXJhdGlvbkluRGF5cz86IG51bWJlclxuT2JqZWN0U2l6ZUdyZWF0ZXJUaGFuPzogc3RyaW5nXG5JZD86IHN0cmluZ1xuUHJlZml4Pzogc3RyaW5nXG5BYm9ydEluY29tcGxldGVNdWx0aXBhcnRVcGxvYWQ/OiBBYm9ydEluY29tcGxldGVNdWx0aXBhcnRVcGxvYWRcbk9iamVjdFNpemVMZXNzVGhhbj86IHN0cmluZ1xufVxuLyoqXG4gKiBTcGVjaWZpZXMgdGhlIGRheXMgc2luY2UgdGhlIGluaXRpYXRpb24gb2YgYW4gaW5jb21wbGV0ZSBtdWx0aXBhcnQgdXBsb2FkIHRoYXQgQW1hem9uIFMzIHdpbGwgd2FpdCBiZWZvcmUgcGVybWFuZW50bHkgcmVtb3ZpbmcgYWxsIHBhcnRzIG9mIHRoZSB1cGxvYWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQWJvcnRJbmNvbXBsZXRlTXVsdGlwYXJ0VXBsb2FkIHtcbi8qKlxuICogU3BlY2lmaWVzIHRoZSBudW1iZXIgb2YgZGF5cyBhZnRlciB3aGljaCBBbWF6b24gUzMgYWJvcnRzIGFuIGluY29tcGxldGUgbXVsdGlwYXJ0IHVwbG9hZC5cbiAqL1xuRGF5c0FmdGVySW5pdGlhdGlvbjogbnVtYmVyXG59XG5leHBvcnQgaW50ZXJmYWNlIFRhZyB7XG5WYWx1ZTogc3RyaW5nXG5LZXk6IHN0cmluZ1xufVxuIl19
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@horietakehiro/aws-cdk-utul",
3
3
  "license": "MIT",
4
- "version": "0.41.60",
4
+ "version": "0.41.62",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "https://github.com/horietakehiro/aws-cdk-utul"