@horietakehiro/aws-cdk-utul 0.41.57 → 0.41.59
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.
- package/lib/types/cfn-resource-types/aws-bedrockagentcore-gateway.d.ts +60 -0
- package/lib/types/cfn-resource-types/aws-bedrockagentcore-gateway.js +1 -1
- package/lib/types/cfn-resource-types/aws-bedrockagentcore-gatewaytarget.d.ts +6 -0
- package/lib/types/cfn-resource-types/aws-bedrockagentcore-gatewaytarget.js +1 -1
- package/lib/types/cfn-resource-types/aws-datazone-environmentblueprintconfiguration.d.ts +10 -0
- package/lib/types/cfn-resource-types/aws-datazone-environmentblueprintconfiguration.js +1 -1
- package/lib/types/cfn-resource-types/aws-datazone-projectprofile.d.ts +1 -0
- package/lib/types/cfn-resource-types/aws-datazone-projectprofile.js +1 -1
- package/lib/types/cfn-resource-types/aws-docdb-globalcluster.d.ts +60 -0
- package/lib/types/cfn-resource-types/aws-docdb-globalcluster.js +3 -0
- package/lib/types/cfn-resource-types/aws-ec2-ipampool.d.ts +1 -1
- package/lib/types/cfn-resource-types/aws-ec2-ipampool.js +1 -1
- package/lib/types/cfn-resource-types/aws-ec2-vpnconnection.d.ts +1 -1
- package/lib/types/cfn-resource-types/aws-ec2-vpnconnection.js +1 -1
- package/lib/types/cfn-resource-types/aws-ecr-repositorycreationtemplate.d.ts +1 -1
- package/lib/types/cfn-resource-types/aws-ecr-repositorycreationtemplate.js +1 -1
- package/lib/types/cfn-resource-types/aws-gamelift-containerfleet.d.ts +142 -142
- package/lib/types/cfn-resource-types/aws-gamelift-containerfleet.js +1 -1
- package/lib/types/cfn-resource-types/aws-gamelift-fleet.d.ts +123 -123
- package/lib/types/cfn-resource-types/aws-gamelift-fleet.js +1 -1
- package/lib/types/cfn-resource-types/aws-logs-loggroup.d.ts +3 -0
- package/lib/types/cfn-resource-types/aws-logs-loggroup.js +1 -1
- package/lib/types/cfn-resource-types/aws-logs-metricfilter.d.ts +6 -0
- package/lib/types/cfn-resource-types/aws-logs-metricfilter.js +1 -1
- package/lib/types/cfn-resource-types/aws-logs-subscriptionfilter.d.ts +6 -0
- package/lib/types/cfn-resource-types/aws-logs-subscriptionfilter.js +1 -1
- package/lib/types/cfn-resource-types/aws-mediapackagev2-originendpoint.d.ts +10 -0
- package/lib/types/cfn-resource-types/aws-mediapackagev2-originendpoint.js +1 -1
- package/lib/types/cfn-resource-types/aws-quicksight-actionconnector.d.ts +148 -0
- package/lib/types/cfn-resource-types/aws-quicksight-actionconnector.js +3 -0
- package/lib/types/cfn-resource-types/aws-quicksight-custompermissions.d.ts +27 -15
- package/lib/types/cfn-resource-types/aws-quicksight-custompermissions.js +1 -1
- package/lib/types/cfn-resource-types/aws-quicksight-dataset.d.ts +10 -10
- package/lib/types/cfn-resource-types/aws-quicksight-dataset.js +1 -1
- package/lib/types/cfn-resource-types/aws-quicksight-datasource.d.ts +16 -10
- package/lib/types/cfn-resource-types/aws-quicksight-datasource.js +1 -1
- package/lib/types/cfn-resource-types/aws-rds-dbinstance.d.ts +27 -0
- package/lib/types/cfn-resource-types/aws-rds-dbinstance.js +1 -1
- package/lib/types/cfn-resource-types/aws-sagemaker-userprofile.d.ts +1 -1
- package/lib/types/cfn-resource-types/aws-sagemaker-userprofile.js +1 -1
- package/lib/types/cfn-resource-types/aws-ses-configurationset.d.ts +23 -0
- package/lib/types/cfn-resource-types/aws-ses-configurationset.js +1 -1
- package/lib/types/cfn-resource-types/aws-wisdom-aiagent.d.ts +81 -2
- package/lib/types/cfn-resource-types/aws-wisdom-aiagent.js +1 -1
- package/lib/types/cfn-resource-types.d.ts +4 -0
- package/lib/types/cfn-resource-types.js +28 -24
- package/package.json +1 -1
|
@@ -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/OiBib29sZWFuXG4vKipcbiAqIEEgbGlzdCBvZiB0aGUgVlBDIHNlY3VyaXR5IGdyb3VwIElEcyB0byBhc3NpZ24gdG8gdGhlIERCIGluc3RhbmNlLiBUaGUgbGlzdCBjYW4gaW5jbHVkZSBib3RoIHRoZSBwaHlzaWNhbCBJRHMgb2YgZXhpc3RpbmcgVlBDIHNlY3VyaXR5IGdyb3VwcyBhbmQgcmVmZXJlbmNlcyB0byBbQVdTOjpFQzI6OlNlY3VyaXR5R3JvdXBdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLWVjMi1zZWN1cml0eS1ncm91cC5odG1sKSByZXNvdXJjZXMgY3JlYXRlZCBpbiB0aGUgdGVtcGxhdGUuXG4gKiAgSWYgeW91IHBsYW4gdG8gdXBkYXRlIHRoZSByZXNvdXJjZSwgZG9uJ3Qgc3BlY2lmeSBWUEMgc2VjdXJpdHkgZ3JvdXBzIGluIGEgc2hhcmVkIFZQQy5cbiAqICAgSWYgeW91IHNldCBgYFZQQ1NlY3VyaXR5R3JvdXBzYGAsIHlvdSBtdXN0IG5vdCBzZXQgW0RCU2VjdXJpdHlHcm91cHNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS8vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1yZHMtZGF0YWJhc2UtaW5zdGFuY2UuaHRtbCNjZm4tcmRzLWRiaW5zdGFuY2UtZGJzZWN1cml0eWdyb3VwcyksIGFuZCB2aWNlIHZlcnNhLlxuICogICBZb3UgY2FuIG1pZ3JhdGUgYSBEQiBpbnN0YW5jZSBpbiB5b3VyIHN0YWNrIGZyb20gYW4gUkRTIERCIHNlY3VyaXR5IGdyb3VwIHRvIGEgVlBDIHNlY3VyaXR5IGdyb3VwLCBidXQga2VlcCB0aGUgZm9sbG93aW5nIGluIG1pbmQ6XG4gKiAgICsgIFlvdSBjYW4ndCByZXZlcnQgdG8gdXNpbmcgYW4gUkRTIHNlY3VyaXR5IGdyb3VwIGFmdGVyIHlvdSBlc3RhYmxpc2ggYSBWUEMgc2VjdXJpdHkgZ3JvdXAgbWVtYmVyc2hpcC5cbiAqICAgKyAgV2hlbiB5b3UgbWlncmF0ZSB5b3VyIERCIGluc3RhbmNlIHRvIFZQQyBzZWN1cml0eSBncm91cHMsIGlmIHlvdXIgc3RhY2sgdXBkYXRlIHJvbGxzIGJhY2sgYmVjYXVzZSB0aGUgREIgaW5zdGFuY2UgdXBkYXRlIGZhaWxzIG9yIGJlY2F1c2UgYW4gdXBkYXRlIGZhaWxzIGluIGFub3RoZXIgQVdTIENsb3VkRm9ybWF0aW9uIHJlc291cmNlLCB0aGUgcm9sbGJhY2sgZmFpbHMgYmVjYXVzZSBpdCBjYW4ndCByZXZlcnQgdG8gYW4gUkRTIHNlY3VyaXR5IGdyb3VwLlxuICogICArICBUbyB1c2UgdGhlIHByb3BlcnRpZXMgdGhhdCBhcmUgYXZhaWxhYmxlIHdoZW4geW91IHVzZSBhIFZQQyBzZWN1cml0eSBncm91cCwgeW91IG11c3QgcmVjcmVhdGUgdGhlIERCIGluc3RhbmNlLiBJZiB5b3UgZG9uJ3QsIEFXUyBDbG91ZEZvcm1hdGlvbiBzdWJtaXRzIG9ubHkgdGhlIHByb3BlcnR5IHZhbHVlcyB0aGF0IGFyZSBsaXN0ZWQgaW4gdGhlIFtEQlNlY3VyaXR5R3JvdXBzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1yZHMtZGF0YWJhc2UtaW5zdGFuY2UuaHRtbCNjZm4tcmRzLWRiaW5zdGFuY2UtZGJzZWN1cml0eWdyb3VwcykgcHJvcGVydHkuXG4gKiAgIFxuICogICBUbyBhdm9pZCB0aGlzIHNpdHVhdGlvbiwgbWlncmF0ZSB5b3VyIERCIGluc3RhbmNlIHRvIHVzaW5nIFZQQyBzZWN1cml0eSBncm91cHMgb25seSB3aGVuIHRoYXQgaXMgdGhlIG9ubHkgY2hhbmdlIGluIHlvdXIgc3RhY2sgdGVtcGxhdGUuIFxuICogICAqQW1hem9uIEF1cm9yYSogXG4gKiAgTm90IGFwcGxpY2FibGUuIFRoZSBhc3NvY2lhdGVkIGxpc3Qgb2YgRUMyIFZQQyBzZWN1cml0eSBncm91cHMgaXMgbWFuYWdlZCBieSB0aGUgREIgY2x1c3Rlci4gSWYgc3BlY2lmaWVkLCB0aGUgc2V0dGluZyBtdXN0IG1hdGNoIHRoZSBEQiBjbHVzdGVyIHNldHRpbmcuXG4gKi9cblZQQ1NlY3VyaXR5R3JvdXBzPzogc3RyaW5nW11cbi8qKlxuICogU3BlY2lmaWVzIHdoZXRoZXIgY2hhbmdlcyB0byB0aGUgREIgaW5zdGFuY2UgYW5kIGFueSBwZW5kaW5nIG1vZGlmaWNhdGlvbnMgYXJlIGFwcGxpZWQgaW1tZWRpYXRlbHksIHJlZ2FyZGxlc3Mgb2YgdGhlIGBgUHJlZmVycmVkTWFpbnRlbmFuY2VXaW5kb3dgYCBzZXR0aW5nLiBJZiBzZXQgdG8gYGBmYWxzZWBgLCBjaGFuZ2VzIGFyZSBhcHBsaWVkIGR1cmluZyB0aGUgbmV4dCBtYWludGVuYW5jZSB3aW5kb3cuIFVudGlsIFJEUyBhcHBsaWVzIHRoZSBjaGFuZ2VzLCB0aGUgREIgaW5zdGFuY2UgcmVtYWlucyBpbiBhIGRyaWZ0IHN0YXRlLiBBcyBhIHJlc3VsdCwgdGhlIGNvbmZpZ3VyYXRpb24gZG9lc24ndCBmdWxseSByZWZsZWN0IHRoZSByZXF1ZXN0ZWQgbW9kaWZpY2F0aW9ucyBhbmQgdGVtcG9yYXJpbHkgZGl2ZXJnZXMgZnJvbSB0aGUgaW50ZW5kZWQgc3RhdGUuXG4gKiAgSW4gYWRkaXRpb24gdG8gdGhlIHNldHRpbmdzIGRlc2NyaWJlZCBpbiBbTW9kaWZ5aW5nIGEgREIgaW5zdGFuY2VdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L1VzZXJHdWlkZS9PdmVydmlldy5EQkluc3RhbmNlLk1vZGlmeWluZy5odG1sKSwgdGhpcyBwcm9wZXJ0eSBhbHNvIGRldGVybWluZXMgd2hldGhlciB0aGUgREIgaW5zdGFuY2UgcmVib290cyB3aGVuIGEgc3RhdGljIHBhcmFtZXRlciBpcyBtb2RpZmllZCBpbiB0aGUgYXNzb2NpYXRlZCBEQiBwYXJhbWV0ZXIgZ3JvdXAuXG4gKiAgRGVmYXVsdDogYGB0cnVlYGBcbiAqL1xuQXBwbHlJbW1lZGlhdGVseT86IGJvb2xlYW5cbn1cbi8qKlxuICogSW5mb3JtYXRpb24gYWJvdXQgYW4gQVdTIElkZW50aXR5IGFuZCBBY2Nlc3MgTWFuYWdlbWVudCAoSUFNKSByb2xlIHRoYXQgaXMgYXNzb2NpYXRlZCB3aXRoIGEgREIgaW5zdGFuY2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgREJJbnN0YW5jZVJvbGUge1xuLyoqXG4gKiBUaGUgbmFtZSBvZiB0aGUgZmVhdHVyZSBhc3NvY2lhdGVkIHdpdGggdGhlIEFXUyBJZGVudGl0eSBhbmQgQWNjZXNzIE1hbmFnZW1lbnQgKElBTSkgcm9sZS4gSUFNIHJvbGVzIHRoYXQgYXJlIGFzc29jaWF0ZWQgd2l0aCBhIERCIGluc3RhbmNlIGdyYW50IHBlcm1pc3Npb24gZm9yIHRoZSBEQiBpbnN0YW5jZSB0byBhY2Nlc3Mgb3RoZXIgQVdTIHNlcnZpY2VzIG9uIHlvdXIgYmVoYWxmLiBGb3IgdGhlIGxpc3Qgb2Ygc3VwcG9ydGVkIGZlYXR1cmUgbmFtZXMsIHNlZSB0aGUgYGBTdXBwb3J0ZWRGZWF0dXJlTmFtZXNgYCBkZXNjcmlwdGlvbiBpbiBbREJFbmdpbmVWZXJzaW9uXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUkRTL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0RCRW5naW5lVmVyc2lvbi5odG1sKSBpbiB0aGUgKkFtYXpvbiBSRFMgQVBJIFJlZmVyZW5jZSouXG4gKi9cbkZlYXR1cmVOYW1lOiBzdHJpbmdcbi8qKlxuICogVGhlIEFtYXpvbiBSZXNvdXJjZSBOYW1lIChBUk4pIG9mIHRoZSBJQU0gcm9sZSB0aGF0IGlzIGFzc29jaWF0ZWQgd2l0aCB0aGUgREIgaW5zdGFuY2UuXG4gKi9cblJvbGVBcm46IHN0cmluZ1xufVxuZXhwb3J0IGludGVyZmFjZSBDZXJ0aWZpY2F0ZURldGFpbHMge1xuLyoqXG4gKiBUaGUgQ0EgaWRlbnRpZmllciBvZiB0aGUgQ0EgY2VydGlmaWNhdGUgdXNlZCBmb3IgdGhlIERCIGluc3RhbmNlJ3Mgc2VydmVyIGNlcnRpZmljYXRlLlxuICovXG5DQUlkZW50aWZpZXI/OiBzdHJpbmdcbi8qKlxuICogVGhlIGV4cGlyYXRpb24gZGF0ZSBvZiB0aGUgREIgaW5zdGFuY2XigJlzIHNlcnZlciBjZXJ0aWZpY2F0ZS5cbiAqL1xuVmFsaWRUaWxsPzogc3RyaW5nXG59XG5leHBvcnQgaW50ZXJmYWNlIEVuZHBvaW50IHtcbi8qKlxuICogU3BlY2lmaWVzIHRoZSBETlMgYWRkcmVzcyBvZiB0aGUgREIgaW5zdGFuY2UuXG4gKi9cbkFkZHJlc3M/OiBzdHJpbmdcbi8qKlxuICogU3BlY2lmaWVzIHRoZSBwb3J0IHRoYXQgdGhlIGRhdGFiYXNlIGVuZ2luZSBpcyBsaXN0ZW5pbmcgb24uXG4gKi9cblBvcnQ/OiBzdHJpbmdcbi8qKlxuICogU3BlY2lmaWVzIHRoZSBJRCB0aGF0IEFtYXpvbiBSb3V0ZSA1MyBhc3NpZ25zIHdoZW4geW91IGNyZWF0ZSBhIGhvc3RlZCB6b25lLlxuICovXG5Ib3N0ZWRab25lSWQ/OiBzdHJpbmdcbn1cbmV4cG9ydCBpbnRlcmZhY2UgRW5kcG9pbnQxIHtcbi8qKlxuICogU3BlY2lmaWVzIHRoZSBETlMgYWRkcmVzcyBvZiB0aGUgREIgaW5zdGFuY2UuXG4gKi9cbkFkZHJlc3M/OiBzdHJpbmdcbi8qKlxuICogU3BlY2lmaWVzIHRoZSBwb3J0IHRoYXQgdGhlIGRhdGFiYXNlIGVuZ2luZSBpcyBsaXN0ZW5pbmcgb24uXG4gKi9cblBvcnQ/OiBzdHJpbmdcbi8qKlxuICogU3BlY2lmaWVzIHRoZSBJRCB0aGF0IEFtYXpvbiBSb3V0ZSA1MyBhc3NpZ25zIHdoZW4geW91IGNyZWF0ZSBhIGhvc3RlZCB6b25lLlxuICovXG5Ib3N0ZWRab25lSWQ/OiBzdHJpbmdcbn1cbi8qKlxuICogVGhlIHNlY3JldCBtYW5hZ2VkIGJ5IFJEUyBpbiBBV1MgU2VjcmV0cyBNYW5hZ2VyIGZvciB0aGUgbWFzdGVyIHVzZXIgcGFzc3dvcmQuXG4gKiAgRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbUGFzc3dvcmQgbWFuYWdlbWVudCB3aXRoIFNlY3JldHMgTWFuYWdlcl0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvVXNlckd1aWRlL3Jkcy1zZWNyZXRzLW1hbmFnZXIuaHRtbCkgaW4gdGhlICpBbWF6b24gUkRTIFVzZXIgR3VpZGUuKlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1hc3RlclVzZXJTZWNyZXQge1xuLyoqXG4gKiBUaGUgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTikgb2YgdGhlIHNlY3JldC4gVGhpcyBwYXJhbWV0ZXIgaXMgYSByZXR1cm4gdmFsdWUgdGhhdCB5b3UgY2FuIHJldHJpZXZlIHVzaW5nIHRoZSBgYEZuOjpHZXRBdHRgYCBpbnRyaW5zaWMgZnVuY3Rpb24uIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW1JldHVybiB2YWx1ZXNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1yZXNvdXJjZS1yZHMtZGJpbnN0YW5jZS5odG1sI2F3cy1yZXNvdXJjZS1yZHMtZGJpbnN0YW5jZS1yZXR1cm4tdmFsdWVzKS5cbiAqL1xuU2VjcmV0QXJuPzogc3RyaW5nXG4vKipcbiAqIFRoZSBBV1MgS01TIGtleSBpZGVudGlmaWVyIHRoYXQgaXMgdXNlZCB0byBlbmNyeXB0IHRoZSBzZWNyZXQuXG4gKi9cbkttc0tleUlkPzogc3RyaW5nXG59XG4vKipcbiAqIFRoZSBgYFByb2Nlc3NvckZlYXR1cmVgYCBwcm9wZXJ0eSB0eXBlIHNwZWNpZmllcyB0aGUgcHJvY2Vzc29yIGZlYXR1cmVzIG9mIGEgREIgaW5zdGFuY2UgY2xhc3MuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJvY2Vzc29yRmVhdHVyZSB7XG4vKipcbiAqIFRoZSBuYW1lIG9mIHRoZSBwcm9jZXNzb3IgZmVhdHVyZS4gVmFsaWQgbmFtZXMgYXJlIGBgY29yZUNvdW50YGAgYW5kIGBgdGhyZWFkc1BlckNvcmVgYC5cbiAqL1xuTmFtZT86IChcImNvcmVDb3VudFwiIHwgXCJ0aHJlYWRzUGVyQ29yZVwiKVxuLyoqXG4gKiBUaGUgdmFsdWUgb2YgYSBwcm9jZXNzb3IgZmVhdHVyZS5cbiAqL1xuVmFsdWU/OiBzdHJpbmdcbn1cbi8qKlxuICogUHJvdmlkZXMgYSBsaXN0IG9mIHN0YXR1cyBpbmZvcm1hdGlvbiBmb3IgYSBEQiBpbnN0YW5jZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEQkluc3RhbmNlU3RhdHVzSW5mbyB7XG4vKipcbiAqIERldGFpbHMgb2YgdGhlIGVycm9yIGlmIHRoZXJlIGlzIGFuIGVycm9yIGZvciB0aGUgaW5zdGFuY2UuIElmIHRoZSBpbnN0YW5jZSBpc24ndCBpbiBhbiBlcnJvciBzdGF0ZSwgdGhpcyB2YWx1ZSBpcyBibGFuay5cbiAqL1xuTWVzc2FnZT86IHN0cmluZ1xuLyoqXG4gKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgaW5zdGFuY2UgaXMgb3BlcmF0aW5nIG5vcm1hbGx5IChUUlVFKSBvciBpcyBpbiBhbiBlcnJvciBzdGF0ZSAoRkFMU0UpLlxuICovXG5Ob3JtYWw/OiBib29sZWFuXG4vKipcbiAqIFRoZSBzdGF0dXMgb2YgdGhlIERCIGluc3RhbmNlLiBGb3IgYSBTdGF0dXNUeXBlIG9mIHJlYWQgcmVwbGljYSwgdGhlIHZhbHVlcyBjYW4gYmUgcmVwbGljYXRpbmcsIHJlcGxpY2F0aW9uIHN0b3AgcG9pbnQgc2V0LCByZXBsaWNhdGlvbiBzdG9wIHBvaW50IHJlYWNoZWQsIGVycm9yLCBzdG9wcGVkLCBvciB0ZXJtaW5hdGVkLlxuICovXG5TdGF0dXM/OiBzdHJpbmdcbi8qKlxuICogVGhpcyB2YWx1ZSBpcyBjdXJyZW50bHkgXCJyZWFkIHJlcGxpY2F0aW9uLlwiXG4gKi9cblN0YXR1c1R5cGU/OiBzdHJpbmdcbn1cbi8qKlxuICogTWV0YWRhdGEgYXNzaWduZWQgdG8gYW4gQW1hem9uIFJEUyByZXNvdXJjZSBjb25zaXN0aW5nIG9mIGEga2V5LXZhbHVlIHBhaXIuXG4gKiAgRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbVGFnZ2luZyBBbWF6b24gUkRTIHJlc291cmNlc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvVXNlckd1aWRlL1VTRVJfVGFnZ2luZy5odG1sKSBpbiB0aGUgKkFtYXpvbiBSRFMgVXNlciBHdWlkZSogb3IgW1RhZ2dpbmcgQW1hem9uIEF1cm9yYSBhbmQgQW1hem9uIFJEUyByZXNvdXJjZXNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L0F1cm9yYVVzZXJHdWlkZS9VU0VSX1RhZ2dpbmcuaHRtbCkgaW4gdGhlICpBbWF6b24gQXVyb3JhIFVzZXIgR3VpZGUqLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRhZyB7XG4vKipcbiAqIEEga2V5IGlzIHRoZSByZXF1aXJlZCBuYW1lIG9mIHRoZSB0YWcuIFRoZSBzdHJpbmcgdmFsdWUgY2FuIGJlIGZyb20gMSB0byAxMjggVW5pY29kZSBjaGFyYWN0ZXJzIGluIGxlbmd0aCBhbmQgY2FuJ3QgYmUgcHJlZml4ZWQgd2l0aCBgYGF3czpgYCBvciBgYHJkczpgYC4gVGhlIHN0cmluZyBjYW4gb25seSBjb250YWluIG9ubHkgdGhlIHNldCBvZiBVbmljb2RlIGxldHRlcnMsIGRpZ2l0cywgd2hpdGUtc3BhY2UsICdfJywgJy4nLCAnOicsICcvJywgJz0nLCAnKycsICctJywgJ0AnIChKYXZhIHJlZ2V4OiBcIl4oW1xcXFxwe0x9XFxcXHB7Wn1cXFxccHtOfV8uOi89K1xcXFwtQF0qKSRcIikuXG4gKi9cbktleTogc3RyaW5nXG4vKipcbiAqIEEgdmFsdWUgaXMgdGhlIG9wdGlvbmFsIHZhbHVlIG9mIHRoZSB0YWcuIFRoZSBzdHJpbmcgdmFsdWUgY2FuIGJlIGZyb20gMSB0byAyNTYgVW5pY29kZSBjaGFyYWN0ZXJzIGluIGxlbmd0aCBhbmQgY2FuJ3QgYmUgcHJlZml4ZWQgd2l0aCBgYGF3czpgYCBvciBgYHJkczpgYC4gVGhlIHN0cmluZyBjYW4gb25seSBjb250YWluIG9ubHkgdGhlIHNldCBvZiBVbmljb2RlIGxldHRlcnMsIGRpZ2l0cywgd2hpdGUtc3BhY2UsICdfJywgJy4nLCAnOicsICcvJywgJz0nLCAnKycsICctJywgJ0AnIChKYXZhIHJlZ2V4OiBcIl4oW1xcXFxwe0x9XFxcXHB7Wn1cXFxccHtOfV8uOi89K1xcXFwtQF0qKSRcIikuXG4gKi9cblZhbHVlPzogc3RyaW5nXG59XG4iXX0=
|
|
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
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLXNhZ2VtYWtlci11c2VycHJvZmlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImF3cy1zYWdlbWFrZXItdXNlcnByb2ZpbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhlIGluc3RhbmNlIHR5cGUgdGhhdCB0aGUgaW1hZ2UgdmVyc2lvbiBydW5zIG9uLlxuICovXG5leHBvcnQgdHlwZSBBcHBJbnN0YW5jZVR5cGUgPSAoXCJzeXN0ZW1cIiB8IFwibWwudDMubWljcm9cIiB8IFwibWwudDMuc21hbGxcIiB8IFwibWwudDMubWVkaXVtXCIgfCBcIm1sLnQzLmxhcmdlXCIgfCBcIm1sLnQzLnhsYXJnZVwiIHwgXCJtbC50My4yeGxhcmdlXCIgfCBcIm1sLm01LmxhcmdlXCIgfCBcIm1sLm01LnhsYXJnZVwiIHwgXCJtbC5tNS4yeGxhcmdlXCIgfCBcIm1sLm01LjR4bGFyZ2VcIiB8IFwibWwubTUuOHhsYXJnZVwiIHwgXCJtbC5tNS4xMnhsYXJnZVwiIHwgXCJtbC5tNS4xNnhsYXJnZVwiIHwgXCJtbC5tNS4yNHhsYXJnZVwiIHwgXCJtbC5tNWQubGFyZ2VcIiB8IFwibWwubTVkLnhsYXJnZVwiIHwgXCJtbC5tNWQuMnhsYXJnZVwiIHwgXCJtbC5tNWQuNHhsYXJnZVwiIHwgXCJtbC5tNWQuOHhsYXJnZVwiIHwgXCJtbC5tNWQuMTJ4bGFyZ2VcIiB8IFwibWwubTVkLjE2eGxhcmdlXCIgfCBcIm1sLm01ZC4yNHhsYXJnZVwiIHwgXCJtbC5jNS5sYXJnZVwiIHwgXCJtbC5jNS54bGFyZ2VcIiB8IFwibWwuYzUuMnhsYXJnZVwiIHwgXCJtbC5jNS40eGxhcmdlXCIgfCBcIm1sLmM1Ljl4bGFyZ2VcIiB8IFwibWwuYzUuMTJ4bGFyZ2VcIiB8IFwibWwuYzUuMTh4bGFyZ2VcIiB8IFwibWwuYzUuMjR4bGFyZ2VcIiB8IFwibWwucDMuMnhsYXJnZVwiIHwgXCJtbC5wMy44eGxhcmdlXCIgfCBcIm1sLnAzLjE2eGxhcmdlXCIgfCBcIm1sLnAzZG4uMjR4bGFyZ2VcIiB8IFwibWwuZzRkbi54bGFyZ2VcIiB8IFwibWwuZzRkbi4yeGxhcmdlXCIgfCBcIm1sLmc0ZG4uNHhsYXJnZVwiIHwgXCJtbC5nNGRuLjh4bGFyZ2VcIiB8IFwibWwuZzRkbi4xMnhsYXJnZVwiIHwgXCJtbC5nNGRuLjE2eGxhcmdlXCIgfCBcIm1sLnI1LmxhcmdlXCIgfCBcIm1sLnI1LnhsYXJnZVwiIHwgXCJtbC5yNS4yeGxhcmdlXCIgfCBcIm1sLnI1LjR4bGFyZ2VcIiB8IFwibWwucjUuOHhsYXJnZVwiIHwgXCJtbC5yNS4xMnhsYXJnZVwiIHwgXCJtbC5yNS4xNnhsYXJnZVwiIHwgXCJtbC5yNS4yNHhsYXJnZVwiIHwgXCJtbC5nNS54bGFyZ2VcIiB8IFwibWwuZzUuMnhsYXJnZVwiIHwgXCJtbC5nNS40eGxhcmdlXCIgfCBcIm1sLmc1Ljh4bGFyZ2VcIiB8IFwibWwuZzUuMTJ4bGFyZ2VcIiB8IFwibWwuZzUuMTZ4bGFyZ2VcIiB8IFwibWwuZzUuMjR4bGFyZ2VcIiB8IFwibWwuZzUuNDh4bGFyZ2VcIiB8IFwibWwuZzYueGxhcmdlXCIgfCBcIm1sLmc2LjJ4bGFyZ2VcIiB8IFwibWwuZzYuNHhsYXJnZVwiIHwgXCJtbC5nNi44eGxhcmdlXCIgfCBcIm1sLmc2LjEyeGxhcmdlXCIgfCBcIm1sLmc2LjE2eGxhcmdlXCIgfCBcIm1sLmc2LjI0eGxhcmdlXCIgfCBcIm1sLmc2LjQ4eGxhcmdlXCIgfCBcIm1sLmc2ZS54bGFyZ2VcIiB8IFwibWwuZzZlLjJ4bGFyZ2VcIiB8IFwibWwuZzZlLjR4bGFyZ2VcIiB8IFwibWwuZzZlLjh4bGFyZ2VcIiB8IFwibWwuZzZlLjEyeGxhcmdlXCIgfCBcIm1sLmc2ZS4xNnhsYXJnZVwiIHwgXCJtbC5nNmUuMjR4bGFyZ2VcIiB8IFwibWwuZzZlLjQ4eGxhcmdlXCIgfCBcIm1sLmdlb3NwYXRpYWwuaW50ZXJhY3RpdmVcIiB8IFwibWwucDRkLjI0eGxhcmdlXCIgfCBcIm1sLnA0ZGUuMjR4bGFyZ2VcIiB8IFwibWwudHJuMS4yeGxhcmdlXCIgfCBcIm1sLnRybjEuMzJ4bGFyZ2VcIiB8IFwibWwudHJuMW4uMzJ4bGFyZ2VcIiB8IFwibWwucDUuNDh4bGFyZ2VcIiB8IFwibWwucDVlLjQ4eGxhcmdlXCIgfCBcIm1sLnA1ZW4uNDh4bGFyZ2VcIiB8IFwibWwubTZpLmxhcmdlXCIgfCBcIm1sLm02aS54bGFyZ2VcIiB8IFwibWwubTZpLjJ4bGFyZ2VcIiB8IFwibWwubTZpLjR4bGFyZ2VcIiB8IFwibWwubTZpLjh4bGFyZ2VcIiB8IFwibWwubTZpLjEyeGxhcmdlXCIgfCBcIm1sLm02aS4xNnhsYXJnZVwiIHwgXCJtbC5tNmkuMjR4bGFyZ2VcIiB8IFwibWwubTZpLjMyeGxhcmdlXCIgfCBcIm1sLm03aS5sYXJnZVwiIHwgXCJtbC5tN2kueGxhcmdlXCIgfCBcIm1sLm03aS4yeGxhcmdlXCIgfCBcIm1sLm03aS40eGxhcmdlXCIgfCBcIm1sLm03aS44eGxhcmdlXCIgfCBcIm1sLm03aS4xMnhsYXJnZVwiIHwgXCJtbC5tN2kuMTZ4bGFyZ2VcIiB8IFwibWwubTdpLjI0eGxhcmdlXCIgfCBcIm1sLm03aS40OHhsYXJnZVwiIHwgXCJtbC5jNmkubGFyZ2VcIiB8IFwibWwuYzZpLnhsYXJnZVwiIHwgXCJtbC5jNmkuMnhsYXJnZVwiIHwgXCJtbC5jNmkuNHhsYXJnZVwiIHwgXCJtbC5jNmkuOHhsYXJnZVwiIHwgXCJtbC5jNmkuMTJ4bGFyZ2VcIiB8IFwibWwuYzZpLjE2eGxhcmdlXCIgfCBcIm1sLmM2aS4yNHhsYXJnZVwiIHwgXCJtbC5jNmkuMzJ4bGFyZ2VcIiB8IFwibWwuYzdpLmxhcmdlXCIgfCBcIm1sLmM3aS54bGFyZ2VcIiB8IFwibWwuYzdpLjJ4bGFyZ2VcIiB8IFwibWwuYzdpLjR4bGFyZ2VcIiB8IFwibWwuYzdpLjh4bGFyZ2VcIiB8IFwibWwuYzdpLjEyeGxhcmdlXCIgfCBcIm1sLmM3aS4xNnhsYXJnZVwiIHwgXCJtbC5jN2kuMjR4bGFyZ2VcIiB8IFwibWwuYzdpLjQ4eGxhcmdlXCIgfCBcIm1sLnI2aS5sYXJnZVwiIHwgXCJtbC5yNmkueGxhcmdlXCIgfCBcIm1sLnI2aS4yeGxhcmdlXCIgfCBcIm1sLnI2aS40eGxhcmdlXCIgfCBcIm1sLnI2aS44eGxhcmdlXCIgfCBcIm1sLnI2aS4xMnhsYXJnZVwiIHwgXCJtbC5yNmkuMTZ4bGFyZ2VcIiB8IFwibWwucjZpLjI0eGxhcmdlXCIgfCBcIm1sLnI2aS4zMnhsYXJnZVwiIHwgXCJtbC5yN2kubGFyZ2VcIiB8IFwibWwucjdpLnhsYXJnZVwiIHwgXCJtbC5yN2kuMnhsYXJnZVwiIHwgXCJtbC5yN2kuNHhsYXJnZVwiIHwgXCJtbC5yN2kuOHhsYXJnZVwiIHwgXCJtbC5yN2kuMTJ4bGFyZ2VcIiB8IFwibWwucjdpLjE2eGxhcmdlXCIgfCBcIm1sLnI3aS4yNHhsYXJnZVwiIHwgXCJtbC5yN2kuNDh4bGFyZ2VcIiB8IFwibWwubTZpZC5sYXJnZVwiIHwgXCJtbC5tNmlkLnhsYXJnZVwiIHwgXCJtbC5tNmlkLjJ4bGFyZ2VcIiB8IFwibWwubTZpZC40eGxhcmdlXCIgfCBcIm1sLm02aWQuOHhsYXJnZVwiIHwgXCJtbC5tNmlkLjEyeGxhcmdlXCIgfCBcIm1sLm02aWQuMTZ4bGFyZ2VcIiB8IFwibWwubTZpZC4yNHhsYXJnZVwiIHwgXCJtbC5tNmlkLjMyeGxhcmdlXCIgfCBcIm1sLmM2aWQubGFyZ2VcIiB8IFwibWwuYzZpZC54bGFyZ2VcIiB8IFwibWwuYzZpZC4yeGxhcmdlXCIgfCBcIm1sLmM2aWQuNHhsYXJnZVwiIHwgXCJtbC5jNmlkLjh4bGFyZ2VcIiB8IFwibWwuYzZpZC4xMnhsYXJnZVwiIHwgXCJtbC5jNmlkLjE2eGxhcmdlXCIgfCBcIm1sLmM2aWQuMjR4bGFyZ2VcIiB8IFwibWwuYzZpZC4zMnhsYXJnZVwiIHwgXCJtbC5yNmlkLmxhcmdlXCIgfCBcIm1sLnI2aWQueGxhcmdlXCIgfCBcIm1sLnI2aWQuMnhsYXJnZVwiIHwgXCJtbC5yNmlkLjR4bGFyZ2VcIiB8IFwibWwucjZpZC44eGxhcmdlXCIgfCBcIm1sLnI2aWQuMTJ4bGFyZ2VcIiB8IFwibWwucjZpZC4xNnhsYXJnZVwiIHwgXCJtbC5yNmlkLjI0eGxhcmdlXCIgfCBcIm1sLnI2aWQuMzJ4bGFyZ2VcIilcbi8qKlxuICogVGhlIEFtYXpvbiBSZXNvdXJjZSBOYW1lIChBUk4pIG9mIHRoZSBMaWZlY3ljbGUgQ29uZmlndXJhdGlvbiB0byBhdHRhY2ggdG8gdGhlIFJlc291cmNlLlxuICovXG5leHBvcnQgdHlwZSBTdHVkaW9MaWZlY3ljbGVDb25maWdBcm4gPSBzdHJpbmdcbi8qKlxuICogQSBmbGFnIHRvIGVuYWJsZS9kaXNhYmxlIEFwcExpZmVjeWNsZU1hbmFnZW1lbnQgc2V0dGluZ3NcbiAqL1xuZXhwb3J0IHR5cGUgTGlmZWN5Y2xlTWFuYWdlbWVudCA9IChcIkVOQUJMRURcIiB8IFwiRElTQUJMRURcIilcbi8qKlxuICogVGhlIGlkbGUgdGltZW91dCB2YWx1ZSBzZXQgaW4gbWludXRlc1xuICovXG5leHBvcnQgdHlwZSBJZGxlVGltZW91dEluTWludXRlcyA9IG51bWJlclxuLyoqXG4gKiBUaGUgbWluaW11bSBpZGxlIHRpbWVvdXQgdmFsdWUgc2V0IGluIG1pbnV0ZXNcbiAqL1xuZXhwb3J0IHR5cGUgTWluSWRsZVRpbWVvdXRJbk1pbnV0ZXMgPSBudW1iZXJcbi8qKlxuICogVGhlIG1heGltdW0gaWRsZSB0aW1lb3V0IHZhbHVlIHNldCBpbiBtaW51dGVzXG4gKi9cbmV4cG9ydCB0eXBlIE1heElkbGVUaW1lb3V0SW5NaW51dGVzID0gbnVtYmVyXG5leHBvcnQgdHlwZSBNbFRvb2xzID0gKFwiRGF0YVdyYW5nbGVyXCIgfCBcIkZlYXR1cmVTdG9yZVwiIHwgXCJFbXJDbHVzdGVyc1wiIHwgXCJBdXRvTWxcIiB8IFwiRXhwZXJpbWVudHNcIiB8IFwiVHJhaW5pbmdcIiB8IFwiTW9kZWxFdmFsdWF0aW9uXCIgfCBcIlBpcGVsaW5lc1wiIHwgXCJNb2RlbHNcIiB8IFwiSnVtcFN0YXJ0XCIgfCBcIkluZmVyZW5jZVJlY29tbWVuZGVyXCIgfCBcIkVuZHBvaW50c1wiIHwgXCJQcm9qZWN0c1wiIHwgXCJJbmZlcmVuY2VPcHRpbWl6YXRpb25cIiB8IFwiSHlwZXJQb2RDbHVzdGVyc1wiIHwgXCJDb21ldFwiIHwgXCJEZWVwY2hlY2tzTExNRXZhbHVhdGlvblwiIHwgXCJGaWRkbGVyXCIgfCBcIkxha2VyYUd1YXJkXCIgfCBcIlBlcmZvcm1hbmNlRXZhbHVhdGlvblwiKVxuZXhwb3J0IHR5cGUgQXBwVHlwZSA9IChcIkp1cHl0ZXJTZXJ2ZXJcIiB8IFwiVGVuc29yQm9hcmRcIiB8IFwiUlN0dWRpb1NlcnZlclByb1wiIHwgXCJKdXB5dGVyTGFiXCIgfCBcIkNvZGVFZGl0b3JcIiB8IFwiRGV0YWlsZWRQcm9maWxlclwiIHwgXCJDYW52YXNcIilcblxuLyoqXG4gKiBSZXNvdXJjZSBUeXBlIGRlZmluaXRpb24gZm9yIEFXUzo6U2FnZU1ha2VyOjpVc2VyUHJvZmlsZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIF9BV1NfU0FHRU1BS0VSX1VTRVJQUk9GSUxFIHtcbi8qKlxuICogVGhlIHVzZXIgcHJvZmlsZSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKS5cbiAqL1xuVXNlclByb2ZpbGVBcm4/OiBzdHJpbmdcbi8qKlxuICogVGhlIElEIG9mIHRoZSBhc3NvY2lhdGVkIERvbWFpbi5cbiAqL1xuRG9tYWluSWQ6IHN0cmluZ1xuLyoqXG4gKiBBIHNwZWNpZmllciBmb3IgdGhlIHR5cGUgb2YgdmFsdWUgc3BlY2lmaWVkIGluIFNpbmdsZVNpZ25PblVzZXJWYWx1ZS4gQ3VycmVudGx5LCB0aGUgb25seSBzdXBwb3J0ZWQgdmFsdWUgaXMgXCJVc2VyTmFtZVwiLiBJZiB0aGUgRG9tYWluJ3MgQXV0aE1vZGUgaXMgU1NPLCB0aGlzIGZpZWxkIGlzIHJlcXVpcmVkLiBJZiB0aGUgRG9tYWluJ3MgQXV0aE1vZGUgaXMgbm90IFNTTywgdGhpcyBmaWVsZCBjYW5ub3QgYmUgc3BlY2lmaWVkLlxuICovXG5TaW5nbGVTaWduT25Vc2VySWRlbnRpZmllcj86IHN0cmluZ1xuLyoqXG4gKiBUaGUgdXNlcm5hbWUgb2YgdGhlIGFzc29jaWF0ZWQgQVdTIFNpbmdsZSBTaWduLU9uIFVzZXIgZm9yIHRoaXMgVXNlclByb2ZpbGUuIElmIHRoZSBEb21haW4ncyBBdXRoTW9kZSBpcyBTU08sIHRoaXMgZmllbGQgaXMgcmVxdWlyZWQsIGFuZCBtdXN0IG1hdGNoIGEgdmFsaWQgdXNlcm5hbWUgb2YgYSB1c2VyIGluIHlvdXIgZGlyZWN0b3J5LiBJZiB0aGUgRG9tYWluJ3MgQXV0aE1vZGUgaXMgbm90IFNTTywgdGhpcyBmaWVsZCBjYW5ub3QgYmUgc3BlY2lmaWVkLlxuICovXG5TaW5nbGVTaWduT25Vc2VyVmFsdWU/OiBzdHJpbmdcbi8qKlxuICogQSBuYW1lIGZvciB0aGUgVXNlclByb2ZpbGUuXG4gKi9cblVzZXJQcm9maWxlTmFtZTogc3RyaW5nXG5Vc2VyU2V0dGluZ3M/OiBVc2VyU2V0dGluZ3Ncbi8qKlxuICogQSBsaXN0IG9mIHRhZ3MgdG8gYXBwbHkgdG8gdGhlIHVzZXIgcHJvZmlsZS5cbiAqIFxuICogQG1pbkl0ZW1zIDBcbiAqIEBtYXhJdGVtcyA1MFxuICovXG5UYWdzPzogVGFnW11cbn1cbi8qKlxuICogQSBjb2xsZWN0aW9uIG9mIHNldHRpbmdzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJTZXR0aW5ncyB7XG4vKipcbiAqIFRoZSB1c2VyIHByb2ZpbGUgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTikuXG4gKi9cbkV4ZWN1dGlvblJvbGU/OiBzdHJpbmdcbi8qKlxuICogSW5kaWNhdGVzIHdoZXRoZXIgYXV0by1tb3VudGluZyBvZiBhbiBFRlMgdm9sdW1lIGlzIHN1cHBvcnRlZCBmb3IgdGhlIHVzZXIgcHJvZmlsZS4gXG4gKi9cbkF1dG9Nb3VudEhvbWVFRlM/OiAoXCJFbmFibGVkXCIgfCBcIkRpc2FibGVkXCIgfCBcIkRlZmF1bHRBc0RvbWFpblwiKVxuSnVweXRlclNlcnZlckFwcFNldHRpbmdzPzogSnVweXRlclNlcnZlckFwcFNldHRpbmdzXG5LZXJuZWxHYXRld2F5QXBwU2V0dGluZ3M/OiBLZXJuZWxHYXRld2F5QXBwU2V0dGluZ3NcblJTdHVkaW9TZXJ2ZXJQcm9BcHBTZXR0aW5ncz86IFJTdHVkaW9TZXJ2ZXJQcm9BcHBTZXR0aW5nc1xuSnVweXRlckxhYkFwcFNldHRpbmdzPzogSnVweXRlckxhYkFwcFNldHRpbmdzXG5TcGFjZVN0b3JhZ2VTZXR0aW5ncz86IERlZmF1bHRTcGFjZVN0b3JhZ2VTZXR0aW5nc1xuQ29kZUVkaXRvckFwcFNldHRpbmdzPzogQ29kZUVkaXRvckFwcFNldHRpbmdzXG5TdHVkaW9XZWJQb3J0YWxTZXR0aW5ncz86IFN0dWRpb1dlYlBvcnRhbFNldHRpbmdzXG4vKipcbiAqIERlZmluZXMgd2hpY2ggQW1hem9uIFNhZ2VNYWtlciBhcHBsaWNhdGlvbiB1c2VycyBhcmUgZGlyZWN0ZWQgdG8gYnkgZGVmYXVsdC5cbiAqL1xuRGVmYXVsdExhbmRpbmdVcmk/OiBzdHJpbmdcbi8qKlxuICogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIFN0dWRpbyBleHBlcmllbmNlIGlzIGF2YWlsYWJsZSB0byB1c2Vycy4gSWYgbm90LCB1c2VycyBjYW5ub3QgYWNjZXNzIFN0dWRpby5cbiAqL1xuU3R1ZGlvV2ViUG9ydGFsPzogKFwiRU5BQkxFRFwiIHwgXCJESVNBQkxFRFwiKVxuQ3VzdG9tUG9zaXhVc2VyQ29uZmlnPzogQ3VzdG9tUG9zaXhVc2VyQ29uZmlnXG4vKipcbiAqIEBtaW5JdGVtcyAwXG4gKiBAbWF4SXRlbXMgMlxuICovXG5DdXN0b21GaWxlU3lzdGVtQ29uZmlncz86IEN1c3RvbUZpbGVTeXN0ZW1Db25maWdbXVxuLyoqXG4gKiBUaGUgc2VjdXJpdHkgZ3JvdXBzIGZvciB0aGUgQW1hem9uIFZpcnR1YWwgUHJpdmF0ZSBDbG91ZCAoVlBDKSB0aGF0IFN0dWRpbyB1c2VzIGZvciBjb21tdW5pY2F0aW9uLlxuICogXG4gKiBAbWluSXRlbXMgMFxuICogQG1heEl0ZW1zIDVcbiAqL1xuU2VjdXJpdHlHcm91cHM/OiBzdHJpbmdbXVxuU2hhcmluZ1NldHRpbmdzPzogU2hhcmluZ1NldHRpbmdzXG59XG4vKipcbiAqIFRoZSBKdXB5dGVyIHNlcnZlcidzIGFwcCBzZXR0aW5ncy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBKdXB5dGVyU2VydmVyQXBwU2V0dGluZ3Mge1xuRGVmYXVsdFJlc291cmNlU3BlYz86IFJlc291cmNlU3BlY1xuLyoqXG4gKiBBIGxpc3Qgb2YgTGlmZWN5Y2xlQ29uZmlnQXJucyBhdmFpbGFibGUgZm9yIHVzZSB3aXRoIEp1cHl0ZXJTZXJ2ZXIgYXBwcy5cbiAqIFxuICogQG1pbkl0ZW1zIDBcbiAqIEBtYXhJdGVtcyAzMFxuICovXG5MaWZlY3ljbGVDb25maWdBcm5zPzogU3R1ZGlvTGlmZWN5Y2xlQ29uZmlnQXJuW11cbn1cbmV4cG9ydCBpbnRlcmZhY2UgUmVzb3VyY2VTcGVjIHtcbkluc3RhbmNlVHlwZT86IEFwcEluc3RhbmNlVHlwZVxuLyoqXG4gKiBUaGUgQVJOIG9mIHRoZSBTYWdlTWFrZXIgaW1hZ2UgdGhhdCB0aGUgaW1hZ2UgdmVyc2lvbiBiZWxvbmdzIHRvLlxuICovXG5TYWdlTWFrZXJJbWFnZUFybj86IHN0cmluZ1xuLyoqXG4gKiBUaGUgQVJOIG9mIHRoZSBpbWFnZSB2ZXJzaW9uIGNyZWF0ZWQgb24gdGhlIGluc3RhbmNlLlxuICovXG5TYWdlTWFrZXJJbWFnZVZlcnNpb25Bcm4/OiBzdHJpbmdcbi8qKlxuICogVGhlIEFtYXpvbiBSZXNvdXJjZSBOYW1lIChBUk4pIG9mIHRoZSBMaWZlY3ljbGUgQ29uZmlndXJhdGlvbiB0byBhdHRhY2ggdG8gdGhlIFJlc291cmNlLlxuICovXG5MaWZlY3ljbGVDb25maWdBcm4/OiBzdHJpbmdcbn1cbi8qKlxuICogVGhlIGtlcm5lbCBnYXRld2F5IGFwcCBzZXR0aW5ncy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBLZXJuZWxHYXRld2F5QXBwU2V0dGluZ3Mge1xuLyoqXG4gKiBBIGxpc3Qgb2YgY3VzdG9tIFNhZ2VNYWtlciBpbWFnZXMgdGhhdCBhcmUgY29uZmlndXJlZCB0byBydW4gYXMgYSBLZXJuZWxHYXRld2F5IGFwcC5cbiAqIFxuICogQG1pbkl0ZW1zIDBcbiAqIEBtYXhJdGVtcyAzMFxuICovXG5DdXN0b21JbWFnZXM/OiBDdXN0b21JbWFnZVtdXG5EZWZhdWx0UmVzb3VyY2VTcGVjPzogUmVzb3VyY2VTcGVjMVxuLyoqXG4gKiBBIGxpc3Qgb2YgTGlmZWN5Y2xlQ29uZmlnQXJucyBhdmFpbGFibGUgZm9yIHVzZSB3aXRoIEtlcm5lbEdhdGV3YXkgYXBwcy5cbiAqIFxuICogQG1pbkl0ZW1zIDBcbiAqIEBtYXhJdGVtcyAzMFxuICovXG5MaWZlY3ljbGVDb25maWdBcm5zPzogU3R1ZGlvTGlmZWN5Y2xlQ29uZmlnQXJuW11cbn1cbi8qKlxuICogQSBjdXN0b20gU2FnZU1ha2VyIGltYWdlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEN1c3RvbUltYWdlIHtcbi8qKlxuICogVGhlIE5hbWUgb2YgdGhlIEFwcEltYWdlQ29uZmlnLlxuICovXG5BcHBJbWFnZUNvbmZpZ05hbWU6IHN0cmluZ1xuLyoqXG4gKiBUaGUgbmFtZSBvZiB0aGUgQ3VzdG9tSW1hZ2UuIE11c3QgYmUgdW5pcXVlIHRvIHlvdXIgYWNjb3VudC5cbiAqL1xuSW1hZ2VOYW1lOiBzdHJpbmdcbi8qKlxuICogVGhlIHZlcnNpb24gbnVtYmVyIG9mIHRoZSBDdXN0b21JbWFnZS5cbiAqL1xuSW1hZ2VWZXJzaW9uTnVtYmVyPzogbnVtYmVyXG59XG4vKipcbiAqIFRoZSBkZWZhdWx0IGluc3RhbmNlIHR5cGUgYW5kIHRoZSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKSBvZiB0aGUgZGVmYXVsdCBTYWdlTWFrZXIgaW1hZ2UgdXNlZCBieSB0aGUgS2VybmVsR2F0ZXdheSBhcHAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVzb3VyY2VTcGVjMSB7XG5JbnN0YW5jZVR5cGU/OiBBcHBJbnN0YW5jZVR5cGVcbi8qKlxuICogVGhlIEFSTiBvZiB0aGUgU2FnZU1ha2VyIGltYWdlIHRoYXQgdGhlIGltYWdlIHZlcnNpb24gYmVsb25ncyB0by5cbiAqL1xuU2FnZU1ha2VySW1hZ2VBcm4/OiBzdHJpbmdcbi8qKlxuICogVGhlIEFSTiBvZiB0aGUgaW1hZ2UgdmVyc2lvbiBjcmVhdGVkIG9uIHRoZSBpbnN0YW5jZS5cbiAqL1xuU2FnZU1ha2VySW1hZ2VWZXJzaW9uQXJuPzogc3RyaW5nXG4vKipcbiAqIFRoZSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKSBvZiB0aGUgTGlmZWN5Y2xlIENvbmZpZ3VyYXRpb24gdG8gYXR0YWNoIHRvIHRoZSBSZXNvdXJjZS5cbiAqL1xuTGlmZWN5Y2xlQ29uZmlnQXJuPzogc3RyaW5nXG59XG4vKipcbiAqIEEgY29sbGVjdGlvbiBvZiBzZXR0aW5ncyB0aGF0IGNvbmZpZ3VyZSB1c2VyIGludGVyYWN0aW9uIHdpdGggdGhlIFJTdHVkaW9TZXJ2ZXJQcm8gYXBwLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJTdHVkaW9TZXJ2ZXJQcm9BcHBTZXR0aW5ncyB7XG4vKipcbiAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBjdXJyZW50IHVzZXIgaGFzIGFjY2VzcyB0byB0aGUgUlN0dWRpb1NlcnZlclBybyBhcHAuXG4gKi9cbkFjY2Vzc1N0YXR1cz86IChcIkVOQUJMRURcIiB8IFwiRElTQUJMRURcIilcbi8qKlxuICogVGhlIGxldmVsIG9mIHBlcm1pc3Npb25zIHRoYXQgdGhlIHVzZXIgaGFzIHdpdGhpbiB0aGUgUlN0dWRpb1NlcnZlclBybyBhcHAuIFRoaXMgdmFsdWUgZGVmYXVsdHMgdG8gVXNlci4gVGhlIEFkbWluIHZhbHVlIGFsbG93cyB0aGUgdXNlciBhY2Nlc3MgdG8gdGhlIFJTdHVkaW8gQWRtaW5pc3RyYXRpdmUgRGFzaGJvYXJkLlxuICovXG5Vc2VyR3JvdXA/OiAoXCJSX1NUVURJT19BRE1JTlwiIHwgXCJSX1NUVURJT19VU0VSXCIpXG59XG4vKipcbiAqIFRoZSBKdXB5dGVyTGFiIGFwcCBzZXR0aW5ncy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBKdXB5dGVyTGFiQXBwU2V0dGluZ3Mge1xuRGVmYXVsdFJlc291cmNlU3BlYz86IFJlc291cmNlU3BlYzJcbi8qKlxuICogQSBsaXN0IG9mIExpZmVjeWNsZUNvbmZpZ0FybnMgYXZhaWxhYmxlIGZvciB1c2Ugd2l0aCBKdXB5dGVyTGFiIGFwcHMuXG4gKiBcbiAqIEBtaW5JdGVtcyAwXG4gKiBAbWF4SXRlbXMgMzBcbiAqL1xuTGlmZWN5Y2xlQ29uZmlnQXJucz86IFN0dWRpb0xpZmVjeWNsZUNvbmZpZ0FybltdXG4vKipcbiAqIEEgbGlzdCBvZiBDb2RlUmVwb3NpdG9yaWVzIGF2YWlsYWJsZSBmb3IgdXNlIHdpdGggSnVweXRlckxhYiBhcHBzLlxuICogXG4gKiBAbWluSXRlbXMgMFxuICogQG1heEl0ZW1zIDMwXG4gKi9cbkNvZGVSZXBvc2l0b3JpZXM/OiBDb2RlUmVwb3NpdG9yeVtdXG4vKipcbiAqIEEgbGlzdCBvZiBjdXN0b20gaW1hZ2VzIGF2YWlsYWJsZSBmb3IgdXNlIGZvciBKdXB5dGVyTGFiIGFwcHNcbiAqIFxuICogQG1pbkl0ZW1zIDBcbiAqIEBtYXhJdGVtcyAyMDBcbiAqL1xuQ3VzdG9tSW1hZ2VzPzogQ3VzdG9tSW1hZ2VbXVxuQXBwTGlmZWN5Y2xlTWFuYWdlbWVudD86IEFwcExpZmVjeWNsZU1hbmFnZW1lbnRcbi8qKlxuICogVGhlIGxpZmVjeWNsZSBjb25maWd1cmF0aW9uIHRoYXQgcnVucyBiZWZvcmUgdGhlIGRlZmF1bHQgbGlmZWN5Y2xlIGNvbmZpZ3VyYXRpb24uXG4gKi9cbkJ1aWx0SW5MaWZlY3ljbGVDb25maWdBcm4/OiBzdHJpbmdcbn1cbi8qKlxuICogVGhlIGRlZmF1bHQgaW5zdGFuY2UgdHlwZSBhbmQgdGhlIEFtYXpvbiBSZXNvdXJjZSBOYW1lIChBUk4pIG9mIHRoZSBkZWZhdWx0IFNhZ2VNYWtlciBpbWFnZSB1c2VkIGJ5IHRoZSBKdXB5dGVyTGFiIGFwcC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXNvdXJjZVNwZWMyIHtcbkluc3RhbmNlVHlwZT86IEFwcEluc3RhbmNlVHlwZVxuLyoqXG4gKiBUaGUgQVJOIG9mIHRoZSBTYWdlTWFrZXIgaW1hZ2UgdGhhdCB0aGUgaW1hZ2UgdmVyc2lvbiBiZWxvbmdzIHRvLlxuICovXG5TYWdlTWFrZXJJbWFnZUFybj86IHN0cmluZ1xuLyoqXG4gKiBUaGUgQVJOIG9mIHRoZSBpbWFnZSB2ZXJzaW9uIGNyZWF0ZWQgb24gdGhlIGluc3RhbmNlLlxuICovXG5TYWdlTWFrZXJJbWFnZVZlcnNpb25Bcm4/OiBzdHJpbmdcbi8qKlxuICogVGhlIEFtYXpvbiBSZXNvdXJjZSBOYW1lIChBUk4pIG9mIHRoZSBMaWZlY3ljbGUgQ29uZmlndXJhdGlvbiB0byBhdHRhY2ggdG8gdGhlIFJlc291cmNlLlxuICovXG5MaWZlY3ljbGVDb25maWdBcm4/OiBzdHJpbmdcbn1cbmV4cG9ydCBpbnRlcmZhY2UgQ29kZVJlcG9zaXRvcnkge1xuLyoqXG4gKiBBIENvZGVSZXBvc2l0b3J5ICh2YWxpZCBVUkwpIHRvIGJlIHVzZWQgd2l0aGluIEp1cHl0ZXIncyBHaXQgZXh0ZW5zaW9uLlxuICovXG5SZXBvc2l0b3J5VXJsOiBzdHJpbmdcbn1cbmV4cG9ydCBpbnRlcmZhY2UgQXBwTGlmZWN5Y2xlTWFuYWdlbWVudCB7XG5JZGxlU2V0dGluZ3M/OiBJZGxlU2V0dGluZ3Ncbn1cbmV4cG9ydCBpbnRlcmZhY2UgSWRsZVNldHRpbmdzIHtcbkxpZmVjeWNsZU1hbmFnZW1lbnQ/OiBMaWZlY3ljbGVNYW5hZ2VtZW50XG5JZGxlVGltZW91dEluTWludXRlcz86IElkbGVUaW1lb3V0SW5NaW51dGVzXG5NaW5JZGxlVGltZW91dEluTWludXRlcz86IE1pbklkbGVUaW1lb3V0SW5NaW51dGVzXG5NYXhJZGxlVGltZW91dEluTWludXRlcz86IE1heElkbGVUaW1lb3V0SW5NaW51dGVzXG59XG4vKipcbiAqIERlZmF1bHQgc3RvcmFnZSBzZXR0aW5ncyBmb3IgYSBzcGFjZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEZWZhdWx0U3BhY2VTdG9yYWdlU2V0dGluZ3Mge1xuRGVmYXVsdEVic1N0b3JhZ2VTZXR0aW5ncz86IERlZmF1bHRFYnNTdG9yYWdlU2V0dGluZ3Ncbn1cbi8qKlxuICogUHJvcGVydGllcyByZWxhdGVkIHRvIHRoZSBBbWF6b24gRWxhc3RpYyBCbG9jayBTdG9yZSB2b2x1bWUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGVmYXVsdEVic1N0b3JhZ2VTZXR0aW5ncyB7XG4vKipcbiAqIERlZmF1bHQgc2l6ZSBvZiB0aGUgQW1hem9uIEVCUyB2b2x1bWUgaW4gR2JcbiAqL1xuRGVmYXVsdEVic1ZvbHVtZVNpemVJbkdiOiBudW1iZXJcbi8qKlxuICogTWF4aW11bSBzaXplIG9mIHRoZSBBbWF6b24gRUJTIHZvbHVtZSBpbiBHYi4gTXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gdGhlIERlZmF1bHRFYnNWb2x1bWVTaXplSW5HYi5cbiAqL1xuTWF4aW11bUVic1ZvbHVtZVNpemVJbkdiOiBudW1iZXJcbn1cbi8qKlxuICogVGhlIENvZGVFZGl0b3IgYXBwIHNldHRpbmdzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvZGVFZGl0b3JBcHBTZXR0aW5ncyB7XG5EZWZhdWx0UmVzb3VyY2VTcGVjPzogUmVzb3VyY2VTcGVjM1xuLyoqXG4gKiBBIGxpc3Qgb2YgTGlmZWN5Y2xlQ29uZmlnQXJucyBhdmFpbGFibGUgZm9yIHVzZSB3aXRoIENvZGVFZGl0b3IgYXBwcy5cbiAqIFxuICogQG1pbkl0ZW1zIDBcbiAqIEBtYXhJdGVtcyAzMFxuICovXG5MaWZlY3ljbGVDb25maWdBcm5zPzogU3R1ZGlvTGlmZWN5Y2xlQ29uZmlnQXJuW11cbi8qKlxuICogQSBsaXN0IG9mIGN1c3RvbSBpbWFnZXMgZm9yIHVzZSBmb3IgQ29kZUVkaXRvciBhcHBzLlxuICogXG4gKiBAbWluSXRlbXMgMFxuICogQG1heEl0ZW1zIDIwMFxuICovXG5DdXN0b21JbWFnZXM/OiBDdXN0b21JbWFnZVtdXG5BcHBMaWZlY3ljbGVNYW5hZ2VtZW50PzogQXBwTGlmZWN5Y2xlTWFuYWdlbWVudFxuLyoqXG4gKiBUaGUgbGlmZWN5Y2xlIGNvbmZpZ3VyYXRpb24gdGhhdCBydW5zIGJlZm9yZSB0aGUgZGVmYXVsdCBsaWZlY3ljbGUgY29uZmlndXJhdGlvbi5cbiAqL1xuQnVpbHRJbkxpZmVjeWNsZUNvbmZpZ0Fybj86IHN0cmluZ1xufVxuLyoqXG4gKiBUaGUgZGVmYXVsdCBpbnN0YW5jZSB0eXBlIGFuZCB0aGUgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTikgb2YgdGhlIGRlZmF1bHQgU2FnZU1ha2VyIGltYWdlIHVzZWQgYnkgdGhlIENvZGVFZGl0b3IgYXBwLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlc291cmNlU3BlYzMge1xuSW5zdGFuY2VUeXBlPzogQXBwSW5zdGFuY2VUeXBlXG4vKipcbiAqIFRoZSBBUk4gb2YgdGhlIFNhZ2VNYWtlciBpbWFnZSB0aGF0IHRoZSBpbWFnZSB2ZXJzaW9uIGJlbG9uZ3MgdG8uXG4gKi9cblNhZ2VNYWtlckltYWdlQXJuPzogc3RyaW5nXG4vKipcbiAqIFRoZSBBUk4gb2YgdGhlIGltYWdlIHZlcnNpb24gY3JlYXRlZCBvbiB0aGUgaW5zdGFuY2UuXG4gKi9cblNhZ2VNYWtlckltYWdlVmVyc2lvbkFybj86IHN0cmluZ1xuLyoqXG4gKiBUaGUgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTikgb2YgdGhlIExpZmVjeWNsZSBDb25maWd1cmF0aW9uIHRvIGF0dGFjaCB0byB0aGUgUmVzb3VyY2UuXG4gKi9cbkxpZmVjeWNsZUNvbmZpZ0Fybj86IHN0cmluZ1xufVxuLyoqXG4gKiBTdHVkaW8gc2V0dGluZ3MuIElmIHRoZXNlIHNldHRpbmdzIGFyZSBhcHBsaWVkIG9uIGEgdXNlciBsZXZlbCwgdGhleSB0YWtlIHByaW9yaXR5IG92ZXIgdGhlIHNldHRpbmdzIGFwcGxpZWQgb24gYSBkb21haW4gbGV2ZWwuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3R1ZGlvV2ViUG9ydGFsU2V0dGluZ3Mge1xuLyoqXG4gKiBUaGUgbWFjaGluZSBsZWFybmluZyB0b29scyB0aGF0IGFyZSBoaWRkZW4gZnJvbSB0aGUgU3R1ZGlvIGxlZnQgbmF2aWdhdGlvbiBwYW5lLlxuICogXG4gKiBAbWluSXRlbXMgMFxuICovXG5IaWRkZW5NbFRvb2xzPzogTWxUb29sc1tdXG4vKipcbiAqIEFwcGxpY2F0aW9ucyBzdXBwb3J0ZWQgaW4gU3R1ZGlvIHRoYXQgYXJlIGhpZGRlbiBmcm9tIHRoZSBTdHVkaW8gbGVmdCBuYXZpZ2F0aW9uIHBhbmUuXG4gKiBcbiAqIEBtaW5JdGVtcyAwXG4gKi9cbkhpZGRlbkFwcFR5cGVzPzogQXBwVHlwZVtdXG4vKipcbiAqIFRoZSBpbnN0YW5jZSB0eXBlcyB5b3UgYXJlIGhpZGluZyBmcm9tIHRoZSBTdHVkaW8gdXNlciBpbnRlcmZhY2UuXG4gKiBcbiAqIEBtaW5JdGVtcyAwXG4gKi9cbkhpZGRlbkluc3RhbmNlVHlwZXM/OiBBcHBJbnN0YW5jZVR5cGVbXVxuLyoqXG4gKiBUaGUgdmVyc2lvbiBhbGlhc2VzIHlvdSBhcmUgaGlkaW5nIGZyb20gdGhlIFN0dWRpbyB1c2VyIGludGVyZmFjZS5cbiAqIFxuICogQG1pbkl0ZW1zIDBcbiAqIEBtYXhJdGVtcyA1XG4gKi9cbkhpZGRlblNhZ2VNYWtlckltYWdlVmVyc2lvbkFsaWFzZXM/OiBIaWRkZW5TYWdlTWFrZXJJbWFnZVtdXG59XG5leHBvcnQgaW50ZXJmYWNlIEhpZGRlblNhZ2VNYWtlckltYWdlIHtcbi8qKlxuICogVGhlIFNhZ2VNYWtlciBpbWFnZSBuYW1lIHRoYXQgeW91IGFyZSBoaWRpbmcgZnJvbSB0aGUgU3R1ZGlvIHVzZXIgaW50ZXJmYWNlLlxuICovXG5TYWdlTWFrZXJJbWFnZU5hbWU/OiBcInNhZ2VtYWtlcl9kaXN0cmlidXRpb25cIlxuLyoqXG4gKiBAbWF4SXRlbXMgMjBcbiAqL1xuVmVyc2lvbkFsaWFzZXM/OiBzdHJpbmdbXVxufVxuZXhwb3J0IGludGVyZmFjZSBDdXN0b21Qb3NpeFVzZXJDb25maWcge1xuVWlkOiBudW1iZXJcbkdpZDogbnVtYmVyXG59XG5leHBvcnQgaW50ZXJmYWNlIEN1c3RvbUZpbGVTeXN0ZW1Db25maWcge1xuRUZTRmlsZVN5c3RlbUNvbmZpZz86IEVGU0ZpbGVTeXN0ZW1Db25maWdcbkZTeEx1c3RyZUZpbGVTeXN0ZW1Db25maWc/OiBGU3hMdXN0cmVGaWxlU3lzdGVtQ29uZmlnXG5TM0ZpbGVTeXN0ZW1Db25maWc/OiBTM0ZpbGVTeXN0ZW1Db25maWdcbn1cbmV4cG9ydCBpbnRlcmZhY2UgRUZTRmlsZVN5c3RlbUNvbmZpZyB7XG5GaWxlU3lzdGVtUGF0aD86IHN0cmluZ1xuRmlsZVN5c3RlbUlkOiBzdHJpbmdcbn1cbmV4cG9ydCBpbnRlcmZhY2UgRlN4THVzdHJlRmlsZVN5c3RlbUNvbmZpZyB7XG5GaWxlU3lzdGVtUGF0aD86IHN0cmluZ1xuRmlsZVN5c3RlbUlkOiBzdHJpbmdcbn1cbmV4cG9ydCBpbnRlcmZhY2UgUzNGaWxlU3lzdGVtQ29uZmlnIHtcbk1vdW50UGF0aD86IHN0cmluZ1xuUzNVcmk/OiBzdHJpbmdcbn1cbi8qKlxuICogVGhlIHNoYXJpbmcgc2V0dGluZ3MuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2hhcmluZ1NldHRpbmdzIHtcbi8qKlxuICogV2hldGhlciB0byBpbmNsdWRlIHRoZSBub3RlYm9vayBjZWxsIG91dHB1dCB3aGVuIHNoYXJpbmcgdGhlIG5vdGVib29rLiBUaGUgZGVmYXVsdCBpcyBEaXNhYmxlZC5cbiAqL1xuTm90ZWJvb2tPdXRwdXRPcHRpb24/OiAoXCJBbGxvd2VkXCIgfCBcIkRpc2FibGVkXCIpXG4vKipcbiAqIFdoZW4gTm90ZWJvb2tPdXRwdXRPcHRpb24gaXMgQWxsb3dlZCwgdGhlIEFXUyBLZXkgTWFuYWdlbWVudCBTZXJ2aWNlIChLTVMpIGVuY3J5cHRpb24ga2V5IElEIHVzZWQgdG8gZW5jcnlwdCB0aGUgbm90ZWJvb2sgY2VsbCBvdXRwdXQgaW4gdGhlIEFtYXpvbiBTMyBidWNrZXQuXG4gKi9cblMzS21zS2V5SWQ/OiBzdHJpbmdcbi8qKlxuICogV2hlbiBOb3RlYm9va091dHB1dE9wdGlvbiBpcyBBbGxvd2VkLCB0aGUgQW1hem9uIFMzIGJ1Y2tldCB1c2VkIHRvIHN0b3JlIHRoZSBzaGFyZWQgbm90ZWJvb2sgc25hcHNob3RzLlxuICovXG5TM091dHB1dFBhdGg/OiBzdHJpbmdcbn1cbmV4cG9ydCBpbnRlcmZhY2UgVGFnIHtcblZhbHVlOiBzdHJpbmdcbktleTogc3RyaW5nXG59XG4iXX0=
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLXNhZ2VtYWtlci11c2VycHJvZmlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImF3cy1zYWdlbWFrZXItdXNlcnByb2ZpbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhlIGluc3RhbmNlIHR5cGUgdGhhdCB0aGUgaW1hZ2UgdmVyc2lvbiBydW5zIG9uLlxuICovXG5leHBvcnQgdHlwZSBBcHBJbnN0YW5jZVR5cGUgPSAoXCJzeXN0ZW1cIiB8IFwibWwudDMubWljcm9cIiB8IFwibWwudDMuc21hbGxcIiB8IFwibWwudDMubWVkaXVtXCIgfCBcIm1sLnQzLmxhcmdlXCIgfCBcIm1sLnQzLnhsYXJnZVwiIHwgXCJtbC50My4yeGxhcmdlXCIgfCBcIm1sLm01LmxhcmdlXCIgfCBcIm1sLm01LnhsYXJnZVwiIHwgXCJtbC5tNS4yeGxhcmdlXCIgfCBcIm1sLm01LjR4bGFyZ2VcIiB8IFwibWwubTUuOHhsYXJnZVwiIHwgXCJtbC5tNS4xMnhsYXJnZVwiIHwgXCJtbC5tNS4xNnhsYXJnZVwiIHwgXCJtbC5tNS4yNHhsYXJnZVwiIHwgXCJtbC5tNWQubGFyZ2VcIiB8IFwibWwubTVkLnhsYXJnZVwiIHwgXCJtbC5tNWQuMnhsYXJnZVwiIHwgXCJtbC5tNWQuNHhsYXJnZVwiIHwgXCJtbC5tNWQuOHhsYXJnZVwiIHwgXCJtbC5tNWQuMTJ4bGFyZ2VcIiB8IFwibWwubTVkLjE2eGxhcmdlXCIgfCBcIm1sLm01ZC4yNHhsYXJnZVwiIHwgXCJtbC5jNS5sYXJnZVwiIHwgXCJtbC5jNS54bGFyZ2VcIiB8IFwibWwuYzUuMnhsYXJnZVwiIHwgXCJtbC5jNS40eGxhcmdlXCIgfCBcIm1sLmM1Ljl4bGFyZ2VcIiB8IFwibWwuYzUuMTJ4bGFyZ2VcIiB8IFwibWwuYzUuMTh4bGFyZ2VcIiB8IFwibWwuYzUuMjR4bGFyZ2VcIiB8IFwibWwucDMuMnhsYXJnZVwiIHwgXCJtbC5wMy44eGxhcmdlXCIgfCBcIm1sLnAzLjE2eGxhcmdlXCIgfCBcIm1sLnAzZG4uMjR4bGFyZ2VcIiB8IFwibWwuZzRkbi54bGFyZ2VcIiB8IFwibWwuZzRkbi4yeGxhcmdlXCIgfCBcIm1sLmc0ZG4uNHhsYXJnZVwiIHwgXCJtbC5nNGRuLjh4bGFyZ2VcIiB8IFwibWwuZzRkbi4xMnhsYXJnZVwiIHwgXCJtbC5nNGRuLjE2eGxhcmdlXCIgfCBcIm1sLnI1LmxhcmdlXCIgfCBcIm1sLnI1LnhsYXJnZVwiIHwgXCJtbC5yNS4yeGxhcmdlXCIgfCBcIm1sLnI1LjR4bGFyZ2VcIiB8IFwibWwucjUuOHhsYXJnZVwiIHwgXCJtbC5yNS4xMnhsYXJnZVwiIHwgXCJtbC5yNS4xNnhsYXJnZVwiIHwgXCJtbC5yNS4yNHhsYXJnZVwiIHwgXCJtbC5nNS54bGFyZ2VcIiB8IFwibWwuZzUuMnhsYXJnZVwiIHwgXCJtbC5nNS40eGxhcmdlXCIgfCBcIm1sLmc1Ljh4bGFyZ2VcIiB8IFwibWwuZzUuMTJ4bGFyZ2VcIiB8IFwibWwuZzUuMTZ4bGFyZ2VcIiB8IFwibWwuZzUuMjR4bGFyZ2VcIiB8IFwibWwuZzUuNDh4bGFyZ2VcIiB8IFwibWwuZzYueGxhcmdlXCIgfCBcIm1sLmc2LjJ4bGFyZ2VcIiB8IFwibWwuZzYuNHhsYXJnZVwiIHwgXCJtbC5nNi44eGxhcmdlXCIgfCBcIm1sLmc2LjEyeGxhcmdlXCIgfCBcIm1sLmc2LjE2eGxhcmdlXCIgfCBcIm1sLmc2LjI0eGxhcmdlXCIgfCBcIm1sLmc2LjQ4eGxhcmdlXCIgfCBcIm1sLmc2ZS54bGFyZ2VcIiB8IFwibWwuZzZlLjJ4bGFyZ2VcIiB8IFwibWwuZzZlLjR4bGFyZ2VcIiB8IFwibWwuZzZlLjh4bGFyZ2VcIiB8IFwibWwuZzZlLjEyeGxhcmdlXCIgfCBcIm1sLmc2ZS4xNnhsYXJnZVwiIHwgXCJtbC5nNmUuMjR4bGFyZ2VcIiB8IFwibWwuZzZlLjQ4eGxhcmdlXCIgfCBcIm1sLmdlb3NwYXRpYWwuaW50ZXJhY3RpdmVcIiB8IFwibWwucDRkLjI0eGxhcmdlXCIgfCBcIm1sLnA0ZGUuMjR4bGFyZ2VcIiB8IFwibWwudHJuMS4yeGxhcmdlXCIgfCBcIm1sLnRybjEuMzJ4bGFyZ2VcIiB8IFwibWwudHJuMW4uMzJ4bGFyZ2VcIiB8IFwibWwucDUuNDh4bGFyZ2VcIiB8IFwibWwucDVlLjQ4eGxhcmdlXCIgfCBcIm1sLnA1ZW4uNDh4bGFyZ2VcIiB8IFwibWwubTZpLmxhcmdlXCIgfCBcIm1sLm02aS54bGFyZ2VcIiB8IFwibWwubTZpLjJ4bGFyZ2VcIiB8IFwibWwubTZpLjR4bGFyZ2VcIiB8IFwibWwubTZpLjh4bGFyZ2VcIiB8IFwibWwubTZpLjEyeGxhcmdlXCIgfCBcIm1sLm02aS4xNnhsYXJnZVwiIHwgXCJtbC5tNmkuMjR4bGFyZ2VcIiB8IFwibWwubTZpLjMyeGxhcmdlXCIgfCBcIm1sLm03aS5sYXJnZVwiIHwgXCJtbC5tN2kueGxhcmdlXCIgfCBcIm1sLm03aS4yeGxhcmdlXCIgfCBcIm1sLm03aS40eGxhcmdlXCIgfCBcIm1sLm03aS44eGxhcmdlXCIgfCBcIm1sLm03aS4xMnhsYXJnZVwiIHwgXCJtbC5tN2kuMTZ4bGFyZ2VcIiB8IFwibWwubTdpLjI0eGxhcmdlXCIgfCBcIm1sLm03aS40OHhsYXJnZVwiIHwgXCJtbC5jNmkubGFyZ2VcIiB8IFwibWwuYzZpLnhsYXJnZVwiIHwgXCJtbC5jNmkuMnhsYXJnZVwiIHwgXCJtbC5jNmkuNHhsYXJnZVwiIHwgXCJtbC5jNmkuOHhsYXJnZVwiIHwgXCJtbC5jNmkuMTJ4bGFyZ2VcIiB8IFwibWwuYzZpLjE2eGxhcmdlXCIgfCBcIm1sLmM2aS4yNHhsYXJnZVwiIHwgXCJtbC5jNmkuMzJ4bGFyZ2VcIiB8IFwibWwuYzdpLmxhcmdlXCIgfCBcIm1sLmM3aS54bGFyZ2VcIiB8IFwibWwuYzdpLjJ4bGFyZ2VcIiB8IFwibWwuYzdpLjR4bGFyZ2VcIiB8IFwibWwuYzdpLjh4bGFyZ2VcIiB8IFwibWwuYzdpLjEyeGxhcmdlXCIgfCBcIm1sLmM3aS4xNnhsYXJnZVwiIHwgXCJtbC5jN2kuMjR4bGFyZ2VcIiB8IFwibWwuYzdpLjQ4eGxhcmdlXCIgfCBcIm1sLnI2aS5sYXJnZVwiIHwgXCJtbC5yNmkueGxhcmdlXCIgfCBcIm1sLnI2aS4yeGxhcmdlXCIgfCBcIm1sLnI2aS40eGxhcmdlXCIgfCBcIm1sLnI2aS44eGxhcmdlXCIgfCBcIm1sLnI2aS4xMnhsYXJnZVwiIHwgXCJtbC5yNmkuMTZ4bGFyZ2VcIiB8IFwibWwucjZpLjI0eGxhcmdlXCIgfCBcIm1sLnI2aS4zMnhsYXJnZVwiIHwgXCJtbC5yN2kubGFyZ2VcIiB8IFwibWwucjdpLnhsYXJnZVwiIHwgXCJtbC5yN2kuMnhsYXJnZVwiIHwgXCJtbC5yN2kuNHhsYXJnZVwiIHwgXCJtbC5yN2kuOHhsYXJnZVwiIHwgXCJtbC5yN2kuMTJ4bGFyZ2VcIiB8IFwibWwucjdpLjE2eGxhcmdlXCIgfCBcIm1sLnI3aS4yNHhsYXJnZVwiIHwgXCJtbC5yN2kuNDh4bGFyZ2VcIiB8IFwibWwubTZpZC5sYXJnZVwiIHwgXCJtbC5tNmlkLnhsYXJnZVwiIHwgXCJtbC5tNmlkLjJ4bGFyZ2VcIiB8IFwibWwubTZpZC40eGxhcmdlXCIgfCBcIm1sLm02aWQuOHhsYXJnZVwiIHwgXCJtbC5tNmlkLjEyeGxhcmdlXCIgfCBcIm1sLm02aWQuMTZ4bGFyZ2VcIiB8IFwibWwubTZpZC4yNHhsYXJnZVwiIHwgXCJtbC5tNmlkLjMyeGxhcmdlXCIgfCBcIm1sLmM2aWQubGFyZ2VcIiB8IFwibWwuYzZpZC54bGFyZ2VcIiB8IFwibWwuYzZpZC4yeGxhcmdlXCIgfCBcIm1sLmM2aWQuNHhsYXJnZVwiIHwgXCJtbC5jNmlkLjh4bGFyZ2VcIiB8IFwibWwuYzZpZC4xMnhsYXJnZVwiIHwgXCJtbC5jNmlkLjE2eGxhcmdlXCIgfCBcIm1sLmM2aWQuMjR4bGFyZ2VcIiB8IFwibWwuYzZpZC4zMnhsYXJnZVwiIHwgXCJtbC5yNmlkLmxhcmdlXCIgfCBcIm1sLnI2aWQueGxhcmdlXCIgfCBcIm1sLnI2aWQuMnhsYXJnZVwiIHwgXCJtbC5yNmlkLjR4bGFyZ2VcIiB8IFwibWwucjZpZC44eGxhcmdlXCIgfCBcIm1sLnI2aWQuMTJ4bGFyZ2VcIiB8IFwibWwucjZpZC4xNnhsYXJnZVwiIHwgXCJtbC5yNmlkLjI0eGxhcmdlXCIgfCBcIm1sLnI2aWQuMzJ4bGFyZ2VcIilcbi8qKlxuICogVGhlIEFtYXpvbiBSZXNvdXJjZSBOYW1lIChBUk4pIG9mIHRoZSBMaWZlY3ljbGUgQ29uZmlndXJhdGlvbiB0byBhdHRhY2ggdG8gdGhlIFJlc291cmNlLlxuICovXG5leHBvcnQgdHlwZSBTdHVkaW9MaWZlY3ljbGVDb25maWdBcm4gPSBzdHJpbmdcbi8qKlxuICogQSBmbGFnIHRvIGVuYWJsZS9kaXNhYmxlIEFwcExpZmVjeWNsZU1hbmFnZW1lbnQgc2V0dGluZ3NcbiAqL1xuZXhwb3J0IHR5cGUgTGlmZWN5Y2xlTWFuYWdlbWVudCA9IChcIkVOQUJMRURcIiB8IFwiRElTQUJMRURcIilcbi8qKlxuICogVGhlIGlkbGUgdGltZW91dCB2YWx1ZSBzZXQgaW4gbWludXRlc1xuICovXG5leHBvcnQgdHlwZSBJZGxlVGltZW91dEluTWludXRlcyA9IG51bWJlclxuLyoqXG4gKiBUaGUgbWluaW11bSBpZGxlIHRpbWVvdXQgdmFsdWUgc2V0IGluIG1pbnV0ZXNcbiAqL1xuZXhwb3J0IHR5cGUgTWluSWRsZVRpbWVvdXRJbk1pbnV0ZXMgPSBudW1iZXJcbi8qKlxuICogVGhlIG1heGltdW0gaWRsZSB0aW1lb3V0IHZhbHVlIHNldCBpbiBtaW51dGVzXG4gKi9cbmV4cG9ydCB0eXBlIE1heElkbGVUaW1lb3V0SW5NaW51dGVzID0gbnVtYmVyXG5leHBvcnQgdHlwZSBNbFRvb2xzID0gKFwiRGF0YVdyYW5nbGVyXCIgfCBcIkZlYXR1cmVTdG9yZVwiIHwgXCJFbXJDbHVzdGVyc1wiIHwgXCJBdXRvTWxcIiB8IFwiRXhwZXJpbWVudHNcIiB8IFwiVHJhaW5pbmdcIiB8IFwiTW9kZWxFdmFsdWF0aW9uXCIgfCBcIlBpcGVsaW5lc1wiIHwgXCJNb2RlbHNcIiB8IFwiSnVtcFN0YXJ0XCIgfCBcIkluZmVyZW5jZVJlY29tbWVuZGVyXCIgfCBcIkVuZHBvaW50c1wiIHwgXCJQcm9qZWN0c1wiIHwgXCJJbmZlcmVuY2VPcHRpbWl6YXRpb25cIiB8IFwiSHlwZXJQb2RDbHVzdGVyc1wiIHwgXCJDb21ldFwiIHwgXCJEZWVwY2hlY2tzTExNRXZhbHVhdGlvblwiIHwgXCJGaWRkbGVyXCIgfCBcIkxha2VyYUd1YXJkXCIgfCBcIlBlcmZvcm1hbmNlRXZhbHVhdGlvblwiKVxuZXhwb3J0IHR5cGUgQXBwVHlwZSA9IChcIkp1cHl0ZXJTZXJ2ZXJcIiB8IFwiVGVuc29yQm9hcmRcIiB8IFwiUlN0dWRpb1NlcnZlclByb1wiIHwgXCJKdXB5dGVyTGFiXCIgfCBcIkNvZGVFZGl0b3JcIiB8IFwiRGV0YWlsZWRQcm9maWxlclwiIHwgXCJDYW52YXNcIilcblxuLyoqXG4gKiBSZXNvdXJjZSBUeXBlIGRlZmluaXRpb24gZm9yIEFXUzo6U2FnZU1ha2VyOjpVc2VyUHJvZmlsZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIF9BV1NfU0FHRU1BS0VSX1VTRVJQUk9GSUxFIHtcbi8qKlxuICogVGhlIHVzZXIgcHJvZmlsZSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKS5cbiAqL1xuVXNlclByb2ZpbGVBcm4/OiBzdHJpbmdcbi8qKlxuICogVGhlIElEIG9mIHRoZSBhc3NvY2lhdGVkIERvbWFpbi5cbiAqL1xuRG9tYWluSWQ6IHN0cmluZ1xuLyoqXG4gKiBBIHNwZWNpZmllciBmb3IgdGhlIHR5cGUgb2YgdmFsdWUgc3BlY2lmaWVkIGluIFNpbmdsZVNpZ25PblVzZXJWYWx1ZS4gQ3VycmVudGx5LCB0aGUgb25seSBzdXBwb3J0ZWQgdmFsdWUgaXMgXCJVc2VyTmFtZVwiLiBJZiB0aGUgRG9tYWluJ3MgQXV0aE1vZGUgaXMgU1NPLCB0aGlzIGZpZWxkIGlzIHJlcXVpcmVkLiBJZiB0aGUgRG9tYWluJ3MgQXV0aE1vZGUgaXMgbm90IFNTTywgdGhpcyBmaWVsZCBjYW5ub3QgYmUgc3BlY2lmaWVkLlxuICovXG5TaW5nbGVTaWduT25Vc2VySWRlbnRpZmllcj86IHN0cmluZ1xuLyoqXG4gKiBUaGUgdXNlcm5hbWUgb2YgdGhlIGFzc29jaWF0ZWQgQVdTIFNpbmdsZSBTaWduLU9uIFVzZXIgZm9yIHRoaXMgVXNlclByb2ZpbGUuIElmIHRoZSBEb21haW4ncyBBdXRoTW9kZSBpcyBTU08sIHRoaXMgZmllbGQgaXMgcmVxdWlyZWQsIGFuZCBtdXN0IG1hdGNoIGEgdmFsaWQgdXNlcm5hbWUgb2YgYSB1c2VyIGluIHlvdXIgZGlyZWN0b3J5LiBJZiB0aGUgRG9tYWluJ3MgQXV0aE1vZGUgaXMgbm90IFNTTywgdGhpcyBmaWVsZCBjYW5ub3QgYmUgc3BlY2lmaWVkLlxuICovXG5TaW5nbGVTaWduT25Vc2VyVmFsdWU/OiBzdHJpbmdcbi8qKlxuICogQSBuYW1lIGZvciB0aGUgVXNlclByb2ZpbGUuXG4gKi9cblVzZXJQcm9maWxlTmFtZTogc3RyaW5nXG5Vc2VyU2V0dGluZ3M/OiBVc2VyU2V0dGluZ3Ncbi8qKlxuICogQSBsaXN0IG9mIHRhZ3MgdG8gYXBwbHkgdG8gdGhlIHVzZXIgcHJvZmlsZS5cbiAqIFxuICogQG1pbkl0ZW1zIDBcbiAqIEBtYXhJdGVtcyA1MFxuICovXG5UYWdzPzogVGFnW11cbn1cbi8qKlxuICogQSBjb2xsZWN0aW9uIG9mIHNldHRpbmdzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJTZXR0aW5ncyB7XG4vKipcbiAqIFRoZSB1c2VyIHByb2ZpbGUgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTikuXG4gKi9cbkV4ZWN1dGlvblJvbGU/OiBzdHJpbmdcbi8qKlxuICogSW5kaWNhdGVzIHdoZXRoZXIgYXV0by1tb3VudGluZyBvZiBhbiBFRlMgdm9sdW1lIGlzIHN1cHBvcnRlZCBmb3IgdGhlIHVzZXIgcHJvZmlsZS4gXG4gKi9cbkF1dG9Nb3VudEhvbWVFRlM/OiAoXCJFbmFibGVkXCIgfCBcIkRpc2FibGVkXCIgfCBcIkRlZmF1bHRBc0RvbWFpblwiKVxuSnVweXRlclNlcnZlckFwcFNldHRpbmdzPzogSnVweXRlclNlcnZlckFwcFNldHRpbmdzXG5LZXJuZWxHYXRld2F5QXBwU2V0dGluZ3M/OiBLZXJuZWxHYXRld2F5QXBwU2V0dGluZ3NcblJTdHVkaW9TZXJ2ZXJQcm9BcHBTZXR0aW5ncz86IFJTdHVkaW9TZXJ2ZXJQcm9BcHBTZXR0aW5nc1xuSnVweXRlckxhYkFwcFNldHRpbmdzPzogSnVweXRlckxhYkFwcFNldHRpbmdzXG5TcGFjZVN0b3JhZ2VTZXR0aW5ncz86IERlZmF1bHRTcGFjZVN0b3JhZ2VTZXR0aW5nc1xuQ29kZUVkaXRvckFwcFNldHRpbmdzPzogQ29kZUVkaXRvckFwcFNldHRpbmdzXG5TdHVkaW9XZWJQb3J0YWxTZXR0aW5ncz86IFN0dWRpb1dlYlBvcnRhbFNldHRpbmdzXG4vKipcbiAqIERlZmluZXMgd2hpY2ggQW1hem9uIFNhZ2VNYWtlciBhcHBsaWNhdGlvbiB1c2VycyBhcmUgZGlyZWN0ZWQgdG8gYnkgZGVmYXVsdC5cbiAqL1xuRGVmYXVsdExhbmRpbmdVcmk/OiBzdHJpbmdcbi8qKlxuICogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIFN0dWRpbyBleHBlcmllbmNlIGlzIGF2YWlsYWJsZSB0byB1c2Vycy4gSWYgbm90LCB1c2VycyBjYW5ub3QgYWNjZXNzIFN0dWRpby5cbiAqL1xuU3R1ZGlvV2ViUG9ydGFsPzogKFwiRU5BQkxFRFwiIHwgXCJESVNBQkxFRFwiKVxuQ3VzdG9tUG9zaXhVc2VyQ29uZmlnPzogQ3VzdG9tUG9zaXhVc2VyQ29uZmlnXG4vKipcbiAqIEBtaW5JdGVtcyAwXG4gKiBAbWF4SXRlbXMgMTBcbiAqL1xuQ3VzdG9tRmlsZVN5c3RlbUNvbmZpZ3M/OiBDdXN0b21GaWxlU3lzdGVtQ29uZmlnW11cbi8qKlxuICogVGhlIHNlY3VyaXR5IGdyb3VwcyBmb3IgdGhlIEFtYXpvbiBWaXJ0dWFsIFByaXZhdGUgQ2xvdWQgKFZQQykgdGhhdCBTdHVkaW8gdXNlcyBmb3IgY29tbXVuaWNhdGlvbi5cbiAqIFxuICogQG1pbkl0ZW1zIDBcbiAqIEBtYXhJdGVtcyA1XG4gKi9cblNlY3VyaXR5R3JvdXBzPzogc3RyaW5nW11cblNoYXJpbmdTZXR0aW5ncz86IFNoYXJpbmdTZXR0aW5nc1xufVxuLyoqXG4gKiBUaGUgSnVweXRlciBzZXJ2ZXIncyBhcHAgc2V0dGluZ3MuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSnVweXRlclNlcnZlckFwcFNldHRpbmdzIHtcbkRlZmF1bHRSZXNvdXJjZVNwZWM/OiBSZXNvdXJjZVNwZWNcbi8qKlxuICogQSBsaXN0IG9mIExpZmVjeWNsZUNvbmZpZ0FybnMgYXZhaWxhYmxlIGZvciB1c2Ugd2l0aCBKdXB5dGVyU2VydmVyIGFwcHMuXG4gKiBcbiAqIEBtaW5JdGVtcyAwXG4gKiBAbWF4SXRlbXMgMzBcbiAqL1xuTGlmZWN5Y2xlQ29uZmlnQXJucz86IFN0dWRpb0xpZmVjeWNsZUNvbmZpZ0FybltdXG59XG5leHBvcnQgaW50ZXJmYWNlIFJlc291cmNlU3BlYyB7XG5JbnN0YW5jZVR5cGU/OiBBcHBJbnN0YW5jZVR5cGVcbi8qKlxuICogVGhlIEFSTiBvZiB0aGUgU2FnZU1ha2VyIGltYWdlIHRoYXQgdGhlIGltYWdlIHZlcnNpb24gYmVsb25ncyB0by5cbiAqL1xuU2FnZU1ha2VySW1hZ2VBcm4/OiBzdHJpbmdcbi8qKlxuICogVGhlIEFSTiBvZiB0aGUgaW1hZ2UgdmVyc2lvbiBjcmVhdGVkIG9uIHRoZSBpbnN0YW5jZS5cbiAqL1xuU2FnZU1ha2VySW1hZ2VWZXJzaW9uQXJuPzogc3RyaW5nXG4vKipcbiAqIFRoZSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKSBvZiB0aGUgTGlmZWN5Y2xlIENvbmZpZ3VyYXRpb24gdG8gYXR0YWNoIHRvIHRoZSBSZXNvdXJjZS5cbiAqL1xuTGlmZWN5Y2xlQ29uZmlnQXJuPzogc3RyaW5nXG59XG4vKipcbiAqIFRoZSBrZXJuZWwgZ2F0ZXdheSBhcHAgc2V0dGluZ3MuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgS2VybmVsR2F0ZXdheUFwcFNldHRpbmdzIHtcbi8qKlxuICogQSBsaXN0IG9mIGN1c3RvbSBTYWdlTWFrZXIgaW1hZ2VzIHRoYXQgYXJlIGNvbmZpZ3VyZWQgdG8gcnVuIGFzIGEgS2VybmVsR2F0ZXdheSBhcHAuXG4gKiBcbiAqIEBtaW5JdGVtcyAwXG4gKiBAbWF4SXRlbXMgMzBcbiAqL1xuQ3VzdG9tSW1hZ2VzPzogQ3VzdG9tSW1hZ2VbXVxuRGVmYXVsdFJlc291cmNlU3BlYz86IFJlc291cmNlU3BlYzFcbi8qKlxuICogQSBsaXN0IG9mIExpZmVjeWNsZUNvbmZpZ0FybnMgYXZhaWxhYmxlIGZvciB1c2Ugd2l0aCBLZXJuZWxHYXRld2F5IGFwcHMuXG4gKiBcbiAqIEBtaW5JdGVtcyAwXG4gKiBAbWF4SXRlbXMgMzBcbiAqL1xuTGlmZWN5Y2xlQ29uZmlnQXJucz86IFN0dWRpb0xpZmVjeWNsZUNvbmZpZ0FybltdXG59XG4vKipcbiAqIEEgY3VzdG9tIFNhZ2VNYWtlciBpbWFnZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDdXN0b21JbWFnZSB7XG4vKipcbiAqIFRoZSBOYW1lIG9mIHRoZSBBcHBJbWFnZUNvbmZpZy5cbiAqL1xuQXBwSW1hZ2VDb25maWdOYW1lOiBzdHJpbmdcbi8qKlxuICogVGhlIG5hbWUgb2YgdGhlIEN1c3RvbUltYWdlLiBNdXN0IGJlIHVuaXF1ZSB0byB5b3VyIGFjY291bnQuXG4gKi9cbkltYWdlTmFtZTogc3RyaW5nXG4vKipcbiAqIFRoZSB2ZXJzaW9uIG51bWJlciBvZiB0aGUgQ3VzdG9tSW1hZ2UuXG4gKi9cbkltYWdlVmVyc2lvbk51bWJlcj86IG51bWJlclxufVxuLyoqXG4gKiBUaGUgZGVmYXVsdCBpbnN0YW5jZSB0eXBlIGFuZCB0aGUgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTikgb2YgdGhlIGRlZmF1bHQgU2FnZU1ha2VyIGltYWdlIHVzZWQgYnkgdGhlIEtlcm5lbEdhdGV3YXkgYXBwLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlc291cmNlU3BlYzEge1xuSW5zdGFuY2VUeXBlPzogQXBwSW5zdGFuY2VUeXBlXG4vKipcbiAqIFRoZSBBUk4gb2YgdGhlIFNhZ2VNYWtlciBpbWFnZSB0aGF0IHRoZSBpbWFnZSB2ZXJzaW9uIGJlbG9uZ3MgdG8uXG4gKi9cblNhZ2VNYWtlckltYWdlQXJuPzogc3RyaW5nXG4vKipcbiAqIFRoZSBBUk4gb2YgdGhlIGltYWdlIHZlcnNpb24gY3JlYXRlZCBvbiB0aGUgaW5zdGFuY2UuXG4gKi9cblNhZ2VNYWtlckltYWdlVmVyc2lvbkFybj86IHN0cmluZ1xuLyoqXG4gKiBUaGUgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTikgb2YgdGhlIExpZmVjeWNsZSBDb25maWd1cmF0aW9uIHRvIGF0dGFjaCB0byB0aGUgUmVzb3VyY2UuXG4gKi9cbkxpZmVjeWNsZUNvbmZpZ0Fybj86IHN0cmluZ1xufVxuLyoqXG4gKiBBIGNvbGxlY3Rpb24gb2Ygc2V0dGluZ3MgdGhhdCBjb25maWd1cmUgdXNlciBpbnRlcmFjdGlvbiB3aXRoIHRoZSBSU3R1ZGlvU2VydmVyUHJvIGFwcC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSU3R1ZGlvU2VydmVyUHJvQXBwU2V0dGluZ3Mge1xuLyoqXG4gKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgY3VycmVudCB1c2VyIGhhcyBhY2Nlc3MgdG8gdGhlIFJTdHVkaW9TZXJ2ZXJQcm8gYXBwLlxuICovXG5BY2Nlc3NTdGF0dXM/OiAoXCJFTkFCTEVEXCIgfCBcIkRJU0FCTEVEXCIpXG4vKipcbiAqIFRoZSBsZXZlbCBvZiBwZXJtaXNzaW9ucyB0aGF0IHRoZSB1c2VyIGhhcyB3aXRoaW4gdGhlIFJTdHVkaW9TZXJ2ZXJQcm8gYXBwLiBUaGlzIHZhbHVlIGRlZmF1bHRzIHRvIFVzZXIuIFRoZSBBZG1pbiB2YWx1ZSBhbGxvd3MgdGhlIHVzZXIgYWNjZXNzIHRvIHRoZSBSU3R1ZGlvIEFkbWluaXN0cmF0aXZlIERhc2hib2FyZC5cbiAqL1xuVXNlckdyb3VwPzogKFwiUl9TVFVESU9fQURNSU5cIiB8IFwiUl9TVFVESU9fVVNFUlwiKVxufVxuLyoqXG4gKiBUaGUgSnVweXRlckxhYiBhcHAgc2V0dGluZ3MuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSnVweXRlckxhYkFwcFNldHRpbmdzIHtcbkRlZmF1bHRSZXNvdXJjZVNwZWM/OiBSZXNvdXJjZVNwZWMyXG4vKipcbiAqIEEgbGlzdCBvZiBMaWZlY3ljbGVDb25maWdBcm5zIGF2YWlsYWJsZSBmb3IgdXNlIHdpdGggSnVweXRlckxhYiBhcHBzLlxuICogXG4gKiBAbWluSXRlbXMgMFxuICogQG1heEl0ZW1zIDMwXG4gKi9cbkxpZmVjeWNsZUNvbmZpZ0FybnM/OiBTdHVkaW9MaWZlY3ljbGVDb25maWdBcm5bXVxuLyoqXG4gKiBBIGxpc3Qgb2YgQ29kZVJlcG9zaXRvcmllcyBhdmFpbGFibGUgZm9yIHVzZSB3aXRoIEp1cHl0ZXJMYWIgYXBwcy5cbiAqIFxuICogQG1pbkl0ZW1zIDBcbiAqIEBtYXhJdGVtcyAzMFxuICovXG5Db2RlUmVwb3NpdG9yaWVzPzogQ29kZVJlcG9zaXRvcnlbXVxuLyoqXG4gKiBBIGxpc3Qgb2YgY3VzdG9tIGltYWdlcyBhdmFpbGFibGUgZm9yIHVzZSBmb3IgSnVweXRlckxhYiBhcHBzXG4gKiBcbiAqIEBtaW5JdGVtcyAwXG4gKiBAbWF4SXRlbXMgMjAwXG4gKi9cbkN1c3RvbUltYWdlcz86IEN1c3RvbUltYWdlW11cbkFwcExpZmVjeWNsZU1hbmFnZW1lbnQ/OiBBcHBMaWZlY3ljbGVNYW5hZ2VtZW50XG4vKipcbiAqIFRoZSBsaWZlY3ljbGUgY29uZmlndXJhdGlvbiB0aGF0IHJ1bnMgYmVmb3JlIHRoZSBkZWZhdWx0IGxpZmVjeWNsZSBjb25maWd1cmF0aW9uLlxuICovXG5CdWlsdEluTGlmZWN5Y2xlQ29uZmlnQXJuPzogc3RyaW5nXG59XG4vKipcbiAqIFRoZSBkZWZhdWx0IGluc3RhbmNlIHR5cGUgYW5kIHRoZSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKSBvZiB0aGUgZGVmYXVsdCBTYWdlTWFrZXIgaW1hZ2UgdXNlZCBieSB0aGUgSnVweXRlckxhYiBhcHAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVzb3VyY2VTcGVjMiB7XG5JbnN0YW5jZVR5cGU/OiBBcHBJbnN0YW5jZVR5cGVcbi8qKlxuICogVGhlIEFSTiBvZiB0aGUgU2FnZU1ha2VyIGltYWdlIHRoYXQgdGhlIGltYWdlIHZlcnNpb24gYmVsb25ncyB0by5cbiAqL1xuU2FnZU1ha2VySW1hZ2VBcm4/OiBzdHJpbmdcbi8qKlxuICogVGhlIEFSTiBvZiB0aGUgaW1hZ2UgdmVyc2lvbiBjcmVhdGVkIG9uIHRoZSBpbnN0YW5jZS5cbiAqL1xuU2FnZU1ha2VySW1hZ2VWZXJzaW9uQXJuPzogc3RyaW5nXG4vKipcbiAqIFRoZSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKSBvZiB0aGUgTGlmZWN5Y2xlIENvbmZpZ3VyYXRpb24gdG8gYXR0YWNoIHRvIHRoZSBSZXNvdXJjZS5cbiAqL1xuTGlmZWN5Y2xlQ29uZmlnQXJuPzogc3RyaW5nXG59XG5leHBvcnQgaW50ZXJmYWNlIENvZGVSZXBvc2l0b3J5IHtcbi8qKlxuICogQSBDb2RlUmVwb3NpdG9yeSAodmFsaWQgVVJMKSB0byBiZSB1c2VkIHdpdGhpbiBKdXB5dGVyJ3MgR2l0IGV4dGVuc2lvbi5cbiAqL1xuUmVwb3NpdG9yeVVybDogc3RyaW5nXG59XG5leHBvcnQgaW50ZXJmYWNlIEFwcExpZmVjeWNsZU1hbmFnZW1lbnQge1xuSWRsZVNldHRpbmdzPzogSWRsZVNldHRpbmdzXG59XG5leHBvcnQgaW50ZXJmYWNlIElkbGVTZXR0aW5ncyB7XG5MaWZlY3ljbGVNYW5hZ2VtZW50PzogTGlmZWN5Y2xlTWFuYWdlbWVudFxuSWRsZVRpbWVvdXRJbk1pbnV0ZXM/OiBJZGxlVGltZW91dEluTWludXRlc1xuTWluSWRsZVRpbWVvdXRJbk1pbnV0ZXM/OiBNaW5JZGxlVGltZW91dEluTWludXRlc1xuTWF4SWRsZVRpbWVvdXRJbk1pbnV0ZXM/OiBNYXhJZGxlVGltZW91dEluTWludXRlc1xufVxuLyoqXG4gKiBEZWZhdWx0IHN0b3JhZ2Ugc2V0dGluZ3MgZm9yIGEgc3BhY2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGVmYXVsdFNwYWNlU3RvcmFnZVNldHRpbmdzIHtcbkRlZmF1bHRFYnNTdG9yYWdlU2V0dGluZ3M/OiBEZWZhdWx0RWJzU3RvcmFnZVNldHRpbmdzXG59XG4vKipcbiAqIFByb3BlcnRpZXMgcmVsYXRlZCB0byB0aGUgQW1hem9uIEVsYXN0aWMgQmxvY2sgU3RvcmUgdm9sdW1lLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERlZmF1bHRFYnNTdG9yYWdlU2V0dGluZ3Mge1xuLyoqXG4gKiBEZWZhdWx0IHNpemUgb2YgdGhlIEFtYXpvbiBFQlMgdm9sdW1lIGluIEdiXG4gKi9cbkRlZmF1bHRFYnNWb2x1bWVTaXplSW5HYjogbnVtYmVyXG4vKipcbiAqIE1heGltdW0gc2l6ZSBvZiB0aGUgQW1hem9uIEVCUyB2b2x1bWUgaW4gR2IuIE11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIHRoZSBEZWZhdWx0RWJzVm9sdW1lU2l6ZUluR2IuXG4gKi9cbk1heGltdW1FYnNWb2x1bWVTaXplSW5HYjogbnVtYmVyXG59XG4vKipcbiAqIFRoZSBDb2RlRWRpdG9yIGFwcCBzZXR0aW5ncy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb2RlRWRpdG9yQXBwU2V0dGluZ3Mge1xuRGVmYXVsdFJlc291cmNlU3BlYz86IFJlc291cmNlU3BlYzNcbi8qKlxuICogQSBsaXN0IG9mIExpZmVjeWNsZUNvbmZpZ0FybnMgYXZhaWxhYmxlIGZvciB1c2Ugd2l0aCBDb2RlRWRpdG9yIGFwcHMuXG4gKiBcbiAqIEBtaW5JdGVtcyAwXG4gKiBAbWF4SXRlbXMgMzBcbiAqL1xuTGlmZWN5Y2xlQ29uZmlnQXJucz86IFN0dWRpb0xpZmVjeWNsZUNvbmZpZ0FybltdXG4vKipcbiAqIEEgbGlzdCBvZiBjdXN0b20gaW1hZ2VzIGZvciB1c2UgZm9yIENvZGVFZGl0b3IgYXBwcy5cbiAqIFxuICogQG1pbkl0ZW1zIDBcbiAqIEBtYXhJdGVtcyAyMDBcbiAqL1xuQ3VzdG9tSW1hZ2VzPzogQ3VzdG9tSW1hZ2VbXVxuQXBwTGlmZWN5Y2xlTWFuYWdlbWVudD86IEFwcExpZmVjeWNsZU1hbmFnZW1lbnRcbi8qKlxuICogVGhlIGxpZmVjeWNsZSBjb25maWd1cmF0aW9uIHRoYXQgcnVucyBiZWZvcmUgdGhlIGRlZmF1bHQgbGlmZWN5Y2xlIGNvbmZpZ3VyYXRpb24uXG4gKi9cbkJ1aWx0SW5MaWZlY3ljbGVDb25maWdBcm4/OiBzdHJpbmdcbn1cbi8qKlxuICogVGhlIGRlZmF1bHQgaW5zdGFuY2UgdHlwZSBhbmQgdGhlIEFtYXpvbiBSZXNvdXJjZSBOYW1lIChBUk4pIG9mIHRoZSBkZWZhdWx0IFNhZ2VNYWtlciBpbWFnZSB1c2VkIGJ5IHRoZSBDb2RlRWRpdG9yIGFwcC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXNvdXJjZVNwZWMzIHtcbkluc3RhbmNlVHlwZT86IEFwcEluc3RhbmNlVHlwZVxuLyoqXG4gKiBUaGUgQVJOIG9mIHRoZSBTYWdlTWFrZXIgaW1hZ2UgdGhhdCB0aGUgaW1hZ2UgdmVyc2lvbiBiZWxvbmdzIHRvLlxuICovXG5TYWdlTWFrZXJJbWFnZUFybj86IHN0cmluZ1xuLyoqXG4gKiBUaGUgQVJOIG9mIHRoZSBpbWFnZSB2ZXJzaW9uIGNyZWF0ZWQgb24gdGhlIGluc3RhbmNlLlxuICovXG5TYWdlTWFrZXJJbWFnZVZlcnNpb25Bcm4/OiBzdHJpbmdcbi8qKlxuICogVGhlIEFtYXpvbiBSZXNvdXJjZSBOYW1lIChBUk4pIG9mIHRoZSBMaWZlY3ljbGUgQ29uZmlndXJhdGlvbiB0byBhdHRhY2ggdG8gdGhlIFJlc291cmNlLlxuICovXG5MaWZlY3ljbGVDb25maWdBcm4/OiBzdHJpbmdcbn1cbi8qKlxuICogU3R1ZGlvIHNldHRpbmdzLiBJZiB0aGVzZSBzZXR0aW5ncyBhcmUgYXBwbGllZCBvbiBhIHVzZXIgbGV2ZWwsIHRoZXkgdGFrZSBwcmlvcml0eSBvdmVyIHRoZSBzZXR0aW5ncyBhcHBsaWVkIG9uIGEgZG9tYWluIGxldmVsLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0dWRpb1dlYlBvcnRhbFNldHRpbmdzIHtcbi8qKlxuICogVGhlIG1hY2hpbmUgbGVhcm5pbmcgdG9vbHMgdGhhdCBhcmUgaGlkZGVuIGZyb20gdGhlIFN0dWRpbyBsZWZ0IG5hdmlnYXRpb24gcGFuZS5cbiAqIFxuICogQG1pbkl0ZW1zIDBcbiAqL1xuSGlkZGVuTWxUb29scz86IE1sVG9vbHNbXVxuLyoqXG4gKiBBcHBsaWNhdGlvbnMgc3VwcG9ydGVkIGluIFN0dWRpbyB0aGF0IGFyZSBoaWRkZW4gZnJvbSB0aGUgU3R1ZGlvIGxlZnQgbmF2aWdhdGlvbiBwYW5lLlxuICogXG4gKiBAbWluSXRlbXMgMFxuICovXG5IaWRkZW5BcHBUeXBlcz86IEFwcFR5cGVbXVxuLyoqXG4gKiBUaGUgaW5zdGFuY2UgdHlwZXMgeW91IGFyZSBoaWRpbmcgZnJvbSB0aGUgU3R1ZGlvIHVzZXIgaW50ZXJmYWNlLlxuICogXG4gKiBAbWluSXRlbXMgMFxuICovXG5IaWRkZW5JbnN0YW5jZVR5cGVzPzogQXBwSW5zdGFuY2VUeXBlW11cbi8qKlxuICogVGhlIHZlcnNpb24gYWxpYXNlcyB5b3UgYXJlIGhpZGluZyBmcm9tIHRoZSBTdHVkaW8gdXNlciBpbnRlcmZhY2UuXG4gKiBcbiAqIEBtaW5JdGVtcyAwXG4gKiBAbWF4SXRlbXMgNVxuICovXG5IaWRkZW5TYWdlTWFrZXJJbWFnZVZlcnNpb25BbGlhc2VzPzogSGlkZGVuU2FnZU1ha2VySW1hZ2VbXVxufVxuZXhwb3J0IGludGVyZmFjZSBIaWRkZW5TYWdlTWFrZXJJbWFnZSB7XG4vKipcbiAqIFRoZSBTYWdlTWFrZXIgaW1hZ2UgbmFtZSB0aGF0IHlvdSBhcmUgaGlkaW5nIGZyb20gdGhlIFN0dWRpbyB1c2VyIGludGVyZmFjZS5cbiAqL1xuU2FnZU1ha2VySW1hZ2VOYW1lPzogXCJzYWdlbWFrZXJfZGlzdHJpYnV0aW9uXCJcbi8qKlxuICogQG1heEl0ZW1zIDIwXG4gKi9cblZlcnNpb25BbGlhc2VzPzogc3RyaW5nW11cbn1cbmV4cG9ydCBpbnRlcmZhY2UgQ3VzdG9tUG9zaXhVc2VyQ29uZmlnIHtcblVpZDogbnVtYmVyXG5HaWQ6IG51bWJlclxufVxuZXhwb3J0IGludGVyZmFjZSBDdXN0b21GaWxlU3lzdGVtQ29uZmlnIHtcbkVGU0ZpbGVTeXN0ZW1Db25maWc/OiBFRlNGaWxlU3lzdGVtQ29uZmlnXG5GU3hMdXN0cmVGaWxlU3lzdGVtQ29uZmlnPzogRlN4THVzdHJlRmlsZVN5c3RlbUNvbmZpZ1xuUzNGaWxlU3lzdGVtQ29uZmlnPzogUzNGaWxlU3lzdGVtQ29uZmlnXG59XG5leHBvcnQgaW50ZXJmYWNlIEVGU0ZpbGVTeXN0ZW1Db25maWcge1xuRmlsZVN5c3RlbVBhdGg/OiBzdHJpbmdcbkZpbGVTeXN0ZW1JZDogc3RyaW5nXG59XG5leHBvcnQgaW50ZXJmYWNlIEZTeEx1c3RyZUZpbGVTeXN0ZW1Db25maWcge1xuRmlsZVN5c3RlbVBhdGg/OiBzdHJpbmdcbkZpbGVTeXN0ZW1JZDogc3RyaW5nXG59XG5leHBvcnQgaW50ZXJmYWNlIFMzRmlsZVN5c3RlbUNvbmZpZyB7XG5Nb3VudFBhdGg/OiBzdHJpbmdcblMzVXJpPzogc3RyaW5nXG59XG4vKipcbiAqIFRoZSBzaGFyaW5nIHNldHRpbmdzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNoYXJpbmdTZXR0aW5ncyB7XG4vKipcbiAqIFdoZXRoZXIgdG8gaW5jbHVkZSB0aGUgbm90ZWJvb2sgY2VsbCBvdXRwdXQgd2hlbiBzaGFyaW5nIHRoZSBub3RlYm9vay4gVGhlIGRlZmF1bHQgaXMgRGlzYWJsZWQuXG4gKi9cbk5vdGVib29rT3V0cHV0T3B0aW9uPzogKFwiQWxsb3dlZFwiIHwgXCJEaXNhYmxlZFwiKVxuLyoqXG4gKiBXaGVuIE5vdGVib29rT3V0cHV0T3B0aW9uIGlzIEFsbG93ZWQsIHRoZSBBV1MgS2V5IE1hbmFnZW1lbnQgU2VydmljZSAoS01TKSBlbmNyeXB0aW9uIGtleSBJRCB1c2VkIHRvIGVuY3J5cHQgdGhlIG5vdGVib29rIGNlbGwgb3V0cHV0IGluIHRoZSBBbWF6b24gUzMgYnVja2V0LlxuICovXG5TM0ttc0tleUlkPzogc3RyaW5nXG4vKipcbiAqIFdoZW4gTm90ZWJvb2tPdXRwdXRPcHRpb24gaXMgQWxsb3dlZCwgdGhlIEFtYXpvbiBTMyBidWNrZXQgdXNlZCB0byBzdG9yZSB0aGUgc2hhcmVkIG5vdGVib29rIHNuYXBzaG90cy5cbiAqL1xuUzNPdXRwdXRQYXRoPzogc3RyaW5nXG59XG5leHBvcnQgaW50ZXJmYWNlIFRhZyB7XG5WYWx1ZTogc3RyaW5nXG5LZXk6IHN0cmluZ1xufVxuIl19
|
|
@@ -73,6 +73,29 @@ export interface SuppressionOptions {
|
|
|
73
73
|
* A list that contains the reasons that email addresses are automatically added to the suppression list for your account.
|
|
74
74
|
*/
|
|
75
75
|
SuppressedReasons?: string[];
|
|
76
|
+
/**
|
|
77
|
+
* An object that contains information about the validation options for your account.
|
|
78
|
+
*/
|
|
79
|
+
ValidationOptions?: {
|
|
80
|
+
/**
|
|
81
|
+
* The condition threshold settings for suppression validation.
|
|
82
|
+
*/
|
|
83
|
+
ConditionThreshold: {
|
|
84
|
+
/**
|
|
85
|
+
* Whether the condition threshold is enabled or disabled.
|
|
86
|
+
*/
|
|
87
|
+
ConditionThresholdEnabled: string;
|
|
88
|
+
/**
|
|
89
|
+
* The overall confidence threshold settings.
|
|
90
|
+
*/
|
|
91
|
+
OverallConfidenceThreshold?: {
|
|
92
|
+
/**
|
|
93
|
+
* The confidence verdict threshold level.
|
|
94
|
+
*/
|
|
95
|
+
ConfidenceVerdictThreshold: string;
|
|
96
|
+
};
|
|
97
|
+
};
|
|
98
|
+
};
|
|
76
99
|
}
|
|
77
100
|
/**
|
|
78
101
|
* An object that contains Virtual Deliverability Manager (VDM) settings for this configuration set.
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLXNlcy1jb25maWd1cmF0aW9uc2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXdzLXNlcy1jb25maWd1cmF0aW9uc2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFJlc291cmNlIHNjaGVtYSBmb3IgQVdTOjpTRVM6OkNvbmZpZ3VyYXRpb25TZXQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgX0FXU19TRVNfQ09ORklHVVJBVElPTlNFVCB7XG4vKipcbiAqIFRoZSBuYW1lIG9mIHRoZSBjb25maWd1cmF0aW9uIHNldC5cbiAqL1xuTmFtZT86IHN0cmluZ1xuVHJhY2tpbmdPcHRpb25zPzogVHJhY2tpbmdPcHRpb25zXG5EZWxpdmVyeU9wdGlvbnM/OiBEZWxpdmVyeU9wdGlvbnNcblJlcHV0YXRpb25PcHRpb25zPzogUmVwdXRhdGlvbk9wdGlvbnNcblNlbmRpbmdPcHRpb25zPzogU2VuZGluZ09wdGlvbnNcblN1cHByZXNzaW9uT3B0aW9ucz86IFN1cHByZXNzaW9uT3B0aW9uc1xuVmRtT3B0aW9ucz86IFZkbU9wdGlvbnNcbi8qKlxuICogVGhlIHRhZ3MgKGtleXMgYW5kIHZhbHVlcykgYXNzb2NpYXRlZCB3aXRoIHRoZSBjb250YWN0IGxpc3QuXG4gKiBcbiAqIEBtaW5JdGVtcyAwXG4gKiBAbWF4SXRlbXMgNTBcbiAqL1xuVGFncz86IFRhZ1tdXG59XG4vKipcbiAqIEFuIG9iamVjdCB0aGF0IGRlZmluZXMgdGhlIG9wZW4gYW5kIGNsaWNrIHRyYWNraW5nIG9wdGlvbnMgZm9yIGVtYWlscyB0aGF0IHlvdSBzZW5kIHVzaW5nIHRoZSBjb25maWd1cmF0aW9uIHNldC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUcmFja2luZ09wdGlvbnMge1xuLyoqXG4gKiBUaGUgZG9tYWluIHRvIHVzZSBmb3IgdHJhY2tpbmcgb3BlbiBhbmQgY2xpY2sgZXZlbnRzLlxuICovXG5DdXN0b21SZWRpcmVjdERvbWFpbj86IHN0cmluZ1xuLyoqXG4gKiBUaGUgaHR0cHMgcG9saWN5IHRvIHVzZSBmb3IgdHJhY2tpbmcgb3BlbiBhbmQgY2xpY2sgZXZlbnRzLlxuICovXG5IdHRwc1BvbGljeT86IHN0cmluZ1xufVxuLyoqXG4gKiBBbiBvYmplY3QgdGhhdCBkZWZpbmVzIHRoZSBkZWRpY2F0ZWQgSVAgcG9vbCB0aGF0IGlzIHVzZWQgdG8gc2VuZCBlbWFpbHMgdGhhdCB5b3Ugc2VuZCB1c2luZyB0aGUgY29uZmlndXJhdGlvbiBzZXQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGVsaXZlcnlPcHRpb25zIHtcbi8qKlxuICogU3BlY2lmaWVzIHdoZXRoZXIgbWVzc2FnZXMgdGhhdCB1c2UgdGhlIGNvbmZpZ3VyYXRpb24gc2V0IGFyZSByZXF1aXJlZCB0byB1c2UgVHJhbnNwb3J0IExheWVyIFNlY3VyaXR5IChUTFMpLiBJZiB0aGUgdmFsdWUgaXMgUmVxdWlyZSAsIG1lc3NhZ2VzIGFyZSBvbmx5IGRlbGl2ZXJlZCBpZiBhIFRMUyBjb25uZWN0aW9uIGNhbiBiZSBlc3RhYmxpc2hlZC4gSWYgdGhlIHZhbHVlIGlzIE9wdGlvbmFsICwgbWVzc2FnZXMgY2FuIGJlIGRlbGl2ZXJlZCBpbiBwbGFpbiB0ZXh0IGlmIGEgVExTIGNvbm5lY3Rpb24gY2FuJ3QgYmUgZXN0YWJsaXNoZWQuXG4gKi9cblRsc1BvbGljeT86IHN0cmluZ1xuLyoqXG4gKiBUaGUgbmFtZSBvZiB0aGUgZGVkaWNhdGVkIElQIHBvb2wgdG8gYXNzb2NpYXRlIHdpdGggdGhlIGNvbmZpZ3VyYXRpb24gc2V0LlxuICovXG5TZW5kaW5nUG9vbE5hbWU/OiBzdHJpbmdcbi8qKlxuICogU3BlY2lmaWVzIHRoZSBtYXhpbXVtIHRpbWUgdW50aWwgd2hpY2ggU0VTIHdpbGwgcmV0cnkgc2VuZGluZyBlbWFpbHNcbiAqL1xuTWF4RGVsaXZlcnlTZWNvbmRzPzogbnVtYmVyXG59XG4vKipcbiAqIEFuIG9iamVjdCB0aGF0IGRlZmluZXMgd2hldGhlciBvciBub3QgQW1hem9uIFNFUyBjb2xsZWN0cyByZXB1dGF0aW9uIG1ldHJpY3MgZm9yIHRoZSBlbWFpbHMgdGhhdCB5b3Ugc2VuZCB0aGF0IHVzZSB0aGUgY29uZmlndXJhdGlvbiBzZXQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVwdXRhdGlvbk9wdGlvbnMge1xuLyoqXG4gKiBJZiB0cnVlICwgdHJhY2tpbmcgb2YgcmVwdXRhdGlvbiBtZXRyaWNzIGlzIGVuYWJsZWQgZm9yIHRoZSBjb25maWd1cmF0aW9uIHNldC4gSWYgZmFsc2UgLCB0cmFja2luZyBvZiByZXB1dGF0aW9uIG1ldHJpY3MgaXMgZGlzYWJsZWQgZm9yIHRoZSBjb25maWd1cmF0aW9uIHNldC5cbiAqL1xuUmVwdXRhdGlvbk1ldHJpY3NFbmFibGVkPzogYm9vbGVhblxufVxuLyoqXG4gKiBBbiBvYmplY3QgdGhhdCBkZWZpbmVzIHdoZXRoZXIgb3Igbm90IEFtYXpvbiBTRVMgY2FuIHNlbmQgZW1haWwgdGhhdCB5b3Ugc2VuZCB1c2luZyB0aGUgY29uZmlndXJhdGlvbiBzZXQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2VuZGluZ09wdGlvbnMge1xuU2VuZGluZ0VuYWJsZWQ/OiBib29sZWFuXG59XG4vKipcbiAqIEFuIG9iamVjdCB0aGF0IGNvbnRhaW5zIGluZm9ybWF0aW9uIGFib3V0IHRoZSBzdXBwcmVzc2lvbiBsaXN0IHByZWZlcmVuY2VzIGZvciB5b3VyIGFjY291bnQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3VwcHJlc3Npb25PcHRpb25zIHtcbi8qKlxuICogQSBsaXN0IHRoYXQgY29udGFpbnMgdGhlIHJlYXNvbnMgdGhhdCBlbWFpbCBhZGRyZXNzZXMgYXJlIGF1dG9tYXRpY2FsbHkgYWRkZWQgdG8gdGhlIHN1cHByZXNzaW9uIGxpc3QgZm9yIHlvdXIgYWNjb3VudC5cbiAqL1xuU3VwcHJlc3NlZFJlYXNvbnM/
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLXNlcy1jb25maWd1cmF0aW9uc2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXdzLXNlcy1jb25maWd1cmF0aW9uc2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFJlc291cmNlIHNjaGVtYSBmb3IgQVdTOjpTRVM6OkNvbmZpZ3VyYXRpb25TZXQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgX0FXU19TRVNfQ09ORklHVVJBVElPTlNFVCB7XG4vKipcbiAqIFRoZSBuYW1lIG9mIHRoZSBjb25maWd1cmF0aW9uIHNldC5cbiAqL1xuTmFtZT86IHN0cmluZ1xuVHJhY2tpbmdPcHRpb25zPzogVHJhY2tpbmdPcHRpb25zXG5EZWxpdmVyeU9wdGlvbnM/OiBEZWxpdmVyeU9wdGlvbnNcblJlcHV0YXRpb25PcHRpb25zPzogUmVwdXRhdGlvbk9wdGlvbnNcblNlbmRpbmdPcHRpb25zPzogU2VuZGluZ09wdGlvbnNcblN1cHByZXNzaW9uT3B0aW9ucz86IFN1cHByZXNzaW9uT3B0aW9uc1xuVmRtT3B0aW9ucz86IFZkbU9wdGlvbnNcbi8qKlxuICogVGhlIHRhZ3MgKGtleXMgYW5kIHZhbHVlcykgYXNzb2NpYXRlZCB3aXRoIHRoZSBjb250YWN0IGxpc3QuXG4gKiBcbiAqIEBtaW5JdGVtcyAwXG4gKiBAbWF4SXRlbXMgNTBcbiAqL1xuVGFncz86IFRhZ1tdXG59XG4vKipcbiAqIEFuIG9iamVjdCB0aGF0IGRlZmluZXMgdGhlIG9wZW4gYW5kIGNsaWNrIHRyYWNraW5nIG9wdGlvbnMgZm9yIGVtYWlscyB0aGF0IHlvdSBzZW5kIHVzaW5nIHRoZSBjb25maWd1cmF0aW9uIHNldC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUcmFja2luZ09wdGlvbnMge1xuLyoqXG4gKiBUaGUgZG9tYWluIHRvIHVzZSBmb3IgdHJhY2tpbmcgb3BlbiBhbmQgY2xpY2sgZXZlbnRzLlxuICovXG5DdXN0b21SZWRpcmVjdERvbWFpbj86IHN0cmluZ1xuLyoqXG4gKiBUaGUgaHR0cHMgcG9saWN5IHRvIHVzZSBmb3IgdHJhY2tpbmcgb3BlbiBhbmQgY2xpY2sgZXZlbnRzLlxuICovXG5IdHRwc1BvbGljeT86IHN0cmluZ1xufVxuLyoqXG4gKiBBbiBvYmplY3QgdGhhdCBkZWZpbmVzIHRoZSBkZWRpY2F0ZWQgSVAgcG9vbCB0aGF0IGlzIHVzZWQgdG8gc2VuZCBlbWFpbHMgdGhhdCB5b3Ugc2VuZCB1c2luZyB0aGUgY29uZmlndXJhdGlvbiBzZXQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGVsaXZlcnlPcHRpb25zIHtcbi8qKlxuICogU3BlY2lmaWVzIHdoZXRoZXIgbWVzc2FnZXMgdGhhdCB1c2UgdGhlIGNvbmZpZ3VyYXRpb24gc2V0IGFyZSByZXF1aXJlZCB0byB1c2UgVHJhbnNwb3J0IExheWVyIFNlY3VyaXR5IChUTFMpLiBJZiB0aGUgdmFsdWUgaXMgUmVxdWlyZSAsIG1lc3NhZ2VzIGFyZSBvbmx5IGRlbGl2ZXJlZCBpZiBhIFRMUyBjb25uZWN0aW9uIGNhbiBiZSBlc3RhYmxpc2hlZC4gSWYgdGhlIHZhbHVlIGlzIE9wdGlvbmFsICwgbWVzc2FnZXMgY2FuIGJlIGRlbGl2ZXJlZCBpbiBwbGFpbiB0ZXh0IGlmIGEgVExTIGNvbm5lY3Rpb24gY2FuJ3QgYmUgZXN0YWJsaXNoZWQuXG4gKi9cblRsc1BvbGljeT86IHN0cmluZ1xuLyoqXG4gKiBUaGUgbmFtZSBvZiB0aGUgZGVkaWNhdGVkIElQIHBvb2wgdG8gYXNzb2NpYXRlIHdpdGggdGhlIGNvbmZpZ3VyYXRpb24gc2V0LlxuICovXG5TZW5kaW5nUG9vbE5hbWU/OiBzdHJpbmdcbi8qKlxuICogU3BlY2lmaWVzIHRoZSBtYXhpbXVtIHRpbWUgdW50aWwgd2hpY2ggU0VTIHdpbGwgcmV0cnkgc2VuZGluZyBlbWFpbHNcbiAqL1xuTWF4RGVsaXZlcnlTZWNvbmRzPzogbnVtYmVyXG59XG4vKipcbiAqIEFuIG9iamVjdCB0aGF0IGRlZmluZXMgd2hldGhlciBvciBub3QgQW1hem9uIFNFUyBjb2xsZWN0cyByZXB1dGF0aW9uIG1ldHJpY3MgZm9yIHRoZSBlbWFpbHMgdGhhdCB5b3Ugc2VuZCB0aGF0IHVzZSB0aGUgY29uZmlndXJhdGlvbiBzZXQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVwdXRhdGlvbk9wdGlvbnMge1xuLyoqXG4gKiBJZiB0cnVlICwgdHJhY2tpbmcgb2YgcmVwdXRhdGlvbiBtZXRyaWNzIGlzIGVuYWJsZWQgZm9yIHRoZSBjb25maWd1cmF0aW9uIHNldC4gSWYgZmFsc2UgLCB0cmFja2luZyBvZiByZXB1dGF0aW9uIG1ldHJpY3MgaXMgZGlzYWJsZWQgZm9yIHRoZSBjb25maWd1cmF0aW9uIHNldC5cbiAqL1xuUmVwdXRhdGlvbk1ldHJpY3NFbmFibGVkPzogYm9vbGVhblxufVxuLyoqXG4gKiBBbiBvYmplY3QgdGhhdCBkZWZpbmVzIHdoZXRoZXIgb3Igbm90IEFtYXpvbiBTRVMgY2FuIHNlbmQgZW1haWwgdGhhdCB5b3Ugc2VuZCB1c2luZyB0aGUgY29uZmlndXJhdGlvbiBzZXQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2VuZGluZ09wdGlvbnMge1xuU2VuZGluZ0VuYWJsZWQ/OiBib29sZWFuXG59XG4vKipcbiAqIEFuIG9iamVjdCB0aGF0IGNvbnRhaW5zIGluZm9ybWF0aW9uIGFib3V0IHRoZSBzdXBwcmVzc2lvbiBsaXN0IHByZWZlcmVuY2VzIGZvciB5b3VyIGFjY291bnQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3VwcHJlc3Npb25PcHRpb25zIHtcbi8qKlxuICogQSBsaXN0IHRoYXQgY29udGFpbnMgdGhlIHJlYXNvbnMgdGhhdCBlbWFpbCBhZGRyZXNzZXMgYXJlIGF1dG9tYXRpY2FsbHkgYWRkZWQgdG8gdGhlIHN1cHByZXNzaW9uIGxpc3QgZm9yIHlvdXIgYWNjb3VudC5cbiAqL1xuU3VwcHJlc3NlZFJlYXNvbnM/OiBzdHJpbmdbXVxuLyoqXG4gKiBBbiBvYmplY3QgdGhhdCBjb250YWlucyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgdmFsaWRhdGlvbiBvcHRpb25zIGZvciB5b3VyIGFjY291bnQuXG4gKi9cblZhbGlkYXRpb25PcHRpb25zPzoge1xuLyoqXG4gKiBUaGUgY29uZGl0aW9uIHRocmVzaG9sZCBzZXR0aW5ncyBmb3Igc3VwcHJlc3Npb24gdmFsaWRhdGlvbi5cbiAqL1xuQ29uZGl0aW9uVGhyZXNob2xkOiB7XG4vKipcbiAqIFdoZXRoZXIgdGhlIGNvbmRpdGlvbiB0aHJlc2hvbGQgaXMgZW5hYmxlZCBvciBkaXNhYmxlZC5cbiAqL1xuQ29uZGl0aW9uVGhyZXNob2xkRW5hYmxlZDogc3RyaW5nXG4vKipcbiAqIFRoZSBvdmVyYWxsIGNvbmZpZGVuY2UgdGhyZXNob2xkIHNldHRpbmdzLlxuICovXG5PdmVyYWxsQ29uZmlkZW5jZVRocmVzaG9sZD86IHtcbi8qKlxuICogVGhlIGNvbmZpZGVuY2UgdmVyZGljdCB0aHJlc2hvbGQgbGV2ZWwuXG4gKi9cbkNvbmZpZGVuY2VWZXJkaWN0VGhyZXNob2xkOiBzdHJpbmdcbn1cbn1cbn1cbn1cbi8qKlxuICogQW4gb2JqZWN0IHRoYXQgY29udGFpbnMgVmlydHVhbCBEZWxpdmVyYWJpbGl0eSBNYW5hZ2VyIChWRE0pIHNldHRpbmdzIGZvciB0aGlzIGNvbmZpZ3VyYXRpb24gc2V0LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFZkbU9wdGlvbnMge1xuRGFzaGJvYXJkT3B0aW9ucz86IERhc2hib2FyZE9wdGlvbnNcbkd1YXJkaWFuT3B0aW9ucz86IEd1YXJkaWFuT3B0aW9uc1xufVxuLyoqXG4gKiBQcmVmZXJlbmNlcyByZWdhcmRpbmcgdGhlIERhc2hib2FyZCBmZWF0dXJlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERhc2hib2FyZE9wdGlvbnMge1xuLyoqXG4gKiBXaGV0aGVyIGVtYWlscyBzZW50IHdpdGggdGhpcyBjb25maWd1cmF0aW9uIHNldCBoYXZlIGVuZ2FnZW1lbnQgdHJhY2tpbmcgZW5hYmxlZC5cbiAqL1xuRW5nYWdlbWVudE1ldHJpY3M6IHN0cmluZ1xufVxuLyoqXG4gKiBQcmVmZXJlbmNlcyByZWdhcmRpbmcgdGhlIEd1YXJkaWFuIGZlYXR1cmUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR3VhcmRpYW5PcHRpb25zIHtcbi8qKlxuICogV2hldGhlciBlbWFpbHMgc2VudCB3aXRoIHRoaXMgY29uZmlndXJhdGlvbiBzZXQgaGF2ZSBvcHRpbWl6ZWQgZGVsaXZlcnkgYWxnb3JpdGhtIGVuYWJsZWQuXG4gKi9cbk9wdGltaXplZFNoYXJlZERlbGl2ZXJ5OiBzdHJpbmdcbn1cbmV4cG9ydCBpbnRlcmZhY2UgVGFnIHtcbktleTogc3RyaW5nXG5WYWx1ZTogc3RyaW5nXG59XG4iXX0=
|