@horietakehiro/aws-cdk-utul 0.33.21 → 0.33.23
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-applicationsignals-discovery.d.ts +10 -0
- package/lib/types/cfn-resource-types/aws-applicationsignals-discovery.js +3 -0
- package/lib/types/cfn-resource-types/aws-athena-datacatalog.d.ts +14 -2
- package/lib/types/cfn-resource-types/aws-athena-datacatalog.js +1 -1
- package/lib/types/cfn-resource-types/aws-batch-jobdefinition.d.ts +247 -246
- package/lib/types/cfn-resource-types/aws-batch-jobdefinition.js +1 -1
- package/lib/types/cfn-resource-types/aws-bedrock-agent.d.ts +7 -0
- package/lib/types/cfn-resource-types/aws-bedrock-agent.js +1 -1
- package/lib/types/cfn-resource-types/aws-chatbot-microsoftteamschannelconfiguration.d.ts +4 -0
- package/lib/types/cfn-resource-types/aws-chatbot-microsoftteamschannelconfiguration.js +1 -1
- package/lib/types/cfn-resource-types/aws-dynamodb-globaltable.d.ts +99 -99
- package/lib/types/cfn-resource-types/aws-dynamodb-globaltable.js +1 -1
- package/lib/types/cfn-resource-types/aws-dynamodb-table.d.ts +2 -2
- package/lib/types/cfn-resource-types/aws-dynamodb-table.js +1 -1
- package/lib/types/cfn-resource-types/aws-ec2-launchtemplate.d.ts +21 -14
- package/lib/types/cfn-resource-types/aws-ec2-launchtemplate.js +1 -1
- package/lib/types/cfn-resource-types/aws-ec2-vpcendpointservice.d.ts +5 -0
- package/lib/types/cfn-resource-types/aws-ec2-vpcendpointservice.js +1 -1
- package/lib/types/cfn-resource-types/aws-ecr-pullthroughcacherule.d.ts +12 -4
- package/lib/types/cfn-resource-types/aws-ecr-pullthroughcacherule.js +1 -1
- package/lib/types/cfn-resource-types/aws-elasticloadbalancingv2-listener.d.ts +4 -1
- package/lib/types/cfn-resource-types/aws-elasticloadbalancingv2-listener.js +1 -1
- package/lib/types/cfn-resource-types/aws-elasticloadbalancingv2-loadbalancer.d.ts +2 -1
- package/lib/types/cfn-resource-types/aws-elasticloadbalancingv2-loadbalancer.js +1 -1
- package/lib/types/cfn-resource-types/aws-iot-softwarepackageversion.d.ts +40 -0
- package/lib/types/cfn-resource-types/aws-iot-softwarepackageversion.js +1 -1
- package/lib/types/cfn-resource-types/aws-rum-appmonitor.d.ts +16 -0
- package/lib/types/cfn-resource-types/aws-rum-appmonitor.js +1 -1
- package/lib/types/cfn-resource-types/aws-sagemaker-inferencecomponent.d.ts +41 -0
- package/lib/types/cfn-resource-types/aws-sagemaker-inferencecomponent.js +1 -1
- package/lib/types/cfn-resource-types/aws-xray-transactionsearchconfig.d.ts +15 -0
- package/lib/types/cfn-resource-types/aws-xray-transactionsearchconfig.js +3 -0
- package/lib/types/cfn-resource-types.d.ts +4 -0
- package/lib/types/cfn-resource-types.js +32 -28
- 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWVjMi1sYXVuY2h0ZW1wbGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImF3cy1lYzItbGF1bmNodGVtcGxhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhlIGluc3RhbmNlIGZhbWlseSB0byB1c2UgYXMgdGhlIGJhc2VsaW5lIHJlZmVyZW5jZSBmb3IgQ1BVIHBlcmZvcm1hbmNlLiBBbGwgaW5zdGFuY2UgdHlwZXMgdGhhdCBtYXRjaCB5b3VyIHNwZWNpZmllZCBhdHRyaWJ1dGVzIGFyZSBjb21wYXJlZCBhZ2FpbnN0IHRoZSBDUFUgcGVyZm9ybWFuY2Ugb2YgdGhlIHJlZmVyZW5jZWQgaW5zdGFuY2UgZmFtaWx5LCByZWdhcmRsZXNzIG9mIENQVSBtYW51ZmFjdHVyZXIgb3IgYXJjaGl0ZWN0dXJlIGRpZmZlcmVuY2VzLlxuICovXG5leHBvcnQgdHlwZSBSZWZlcmVuY2VzID0gUmVmZXJlbmNlW11cblxuLyoqXG4gKiBTcGVjaWZpZXMgdGhlIHByb3BlcnRpZXMgZm9yIGNyZWF0aW5nIGEgbGF1bmNoIHRlbXBsYXRlLlxuICogIFRoZSBtaW5pbXVtIHJlcXVpcmVkIHByb3BlcnRpZXMgZm9yIHNwZWNpZnlpbmcgYSBsYXVuY2ggdGVtcGxhdGUgYXJlIGFzIGZvbGxvd3M6XG4gKiAgICsgIFlvdSBtdXN0IHNwZWNpZnkgYXQgbGVhc3Qgb25lIHByb3BlcnR5IGZvciB0aGUgbGF1bmNoIHRlbXBsYXRlIGRhdGEuXG4gKiAgICsgIFlvdSBjYW4gb3B0aW9uYWxseSBzcGVjaWZ5IGEgbmFtZSBmb3IgdGhlIGxhdW5jaCB0ZW1wbGF0ZS4gSWYgeW91IGRvIG5vdCBzcGVjaWZ5IGEgbmFtZSwgQ0ZOIGNyZWF0ZXMgYSBuYW1lIGZvciB5b3UuXG4gKiAgIFxuICogIEEgbGF1bmNoIHRlbXBsYXRlIGNhbiBjb250YWluIHNvbWUgb3IgYWxsIG9mIHRoZSBjb25maWd1cmF0aW9uIGluZm9ybWF0aW9uIHRvIGxhdW5jaCBhbiBpbnN0YW5jZS4gV2hlbiB5b3UgbGF1bmNoIGFuIGluc3RhbmNlIHVzaW5nIGEgbGF1bmNoIHRlbXBsYXRlLCBpbnN0YW5jZSBwcm9wZXJ0aWVzIHRoYXQgYXJlIG5vdCBzcGVjaWZpZWQgaW4gdGhlIGxhdW5jaCB0ZW1wbGF0ZSB1c2UgZGVmYXVsdCB2YWx1ZXMsIGV4Y2VwdCB0aGUgYGBJbWFnZUlkYGAgcHJvcGVydHksIHdoaWNoIGhhcyBubyBkZWZhdWx0IHZhbHVlLiBJZiB5b3UgZG8gbm90IHNwZWNpZnkgYW4gQU1JIElEIGZvciB0aGUgbGF1bmNoIHRlbXBsYXRlIGBgSW1hZ2VJZGBgIHByb3BlcnR5LCB5b3UgbXVzdCBzcGVjaWZ5IGFuIEFNSSBJRCBmb3IgdGhlIGluc3RhbmNlIGBgSW1hZ2VJZGBgIHByb3BlcnR5LlxuICogIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW0xhdW5jaCBhbiBpbnN0YW5jZSBmcm9tIGEgbGF1bmNoIHRlbXBsYXRlXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTRUMyL2xhdGVzdC9Vc2VyR3VpZGUvZWMyLWxhdW5jaC10ZW1wbGF0ZXMuaHRtbCkgaW4gdGhlICpBbWF6b24gRUMyIFVzZXIgR3VpZGUqLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIF9BV1NfRUMyX0xBVU5DSFRFTVBMQVRFIHtcbi8qKlxuICogQSBuYW1lIGZvciB0aGUgbGF1bmNoIHRlbXBsYXRlLlxuICovXG5MYXVuY2hUZW1wbGF0ZU5hbWU/OiBzdHJpbmdcbkxhdW5jaFRlbXBsYXRlRGF0YTogTGF1bmNoVGVtcGxhdGVEYXRhXG4vKipcbiAqIEEgZGVzY3JpcHRpb24gZm9yIHRoZSBmaXJzdCB2ZXJzaW9uIG9mIHRoZSBsYXVuY2ggdGVtcGxhdGUuXG4gKi9cblZlcnNpb25EZXNjcmlwdGlvbj86IHN0cmluZ1xuLyoqXG4gKiBUaGUgdGFncyB0byBhcHBseSB0byB0aGUgbGF1bmNoIHRlbXBsYXRlIG9uIGNyZWF0aW9uLiBUbyB0YWcgdGhlIGxhdW5jaCB0ZW1wbGF0ZSwgdGhlIHJlc291cmNlIHR5cGUgbXVzdCBiZSBgYGxhdW5jaC10ZW1wbGF0ZWBgLlxuICogIFRvIHNwZWNpZnkgdGhlIHRhZ3MgZm9yIHJlc291cmNlcyB0aGF0IGFyZSBjcmVhdGVkIGR1cmluZyBpbnN0YW5jZSBsYXVuY2gsIHVzZSBbVGFnU3BlY2lmaWNhdGlvbnNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLWVjMi1sYXVuY2h0ZW1wbGF0ZS1sYXVuY2h0ZW1wbGF0ZWRhdGEuaHRtbCNjZm4tZWMyLWxhdW5jaHRlbXBsYXRlLWxhdW5jaHRlbXBsYXRlZGF0YS10YWdzcGVjaWZpY2F0aW9ucykuXG4gKi9cblRhZ1NwZWNpZmljYXRpb25zPzogTGF1bmNoVGVtcGxhdGVUYWdTcGVjaWZpY2F0aW9uW11cbkxhdGVzdFZlcnNpb25OdW1iZXI/OiBzdHJpbmdcbkxhdW5jaFRlbXBsYXRlSWQ/OiBzdHJpbmdcbkRlZmF1bHRWZXJzaW9uTnVtYmVyPzogc3RyaW5nXG59XG4vKipcbiAqIFRoZSBpbmZvcm1hdGlvbiBmb3IgdGhlIGxhdW5jaCB0ZW1wbGF0ZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMYXVuY2hUZW1wbGF0ZURhdGEge1xuLyoqXG4gKiBUaGUgbmFtZXMgb2YgdGhlIHNlY3VyaXR5IGdyb3Vwcy4gRm9yIGEgbm9uZGVmYXVsdCBWUEMsIHlvdSBtdXN0IHVzZSBzZWN1cml0eSBncm91cCBJRHMgaW5zdGVhZC5cbiAqICBJZiB5b3Ugc3BlY2lmeSBhIG5ldHdvcmsgaW50ZXJmYWNlLCB5b3UgbXVzdCBzcGVjaWZ5IGFueSBzZWN1cml0eSBncm91cHMgYXMgcGFydCBvZiB0aGUgbmV0d29yayBpbnRlcmZhY2UgaW5zdGVhZCBvZiB1c2luZyB0aGlzIHBhcmFtZXRlci5cbiAqL1xuU2VjdXJpdHlHcm91cHM/OiBzdHJpbmdbXVxuLyoqXG4gKiBUaGUgdGFncyB0byBhcHBseSB0byByZXNvdXJjZXMgdGhhdCBhcmUgY3JlYXRlZCBkdXJpbmcgaW5zdGFuY2UgbGF1bmNoLlxuICogIFRvIHRhZyB0aGUgbGF1bmNoIHRlbXBsYXRlIGl0c2VsZiwgdXNlIFtUYWdTcGVjaWZpY2F0aW9uc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXJlc291cmNlLWVjMi1sYXVuY2h0ZW1wbGF0ZS5odG1sI2Nmbi1lYzItbGF1bmNodGVtcGxhdGUtdGFnc3BlY2lmaWNhdGlvbnMpLlxuICovXG5UYWdTcGVjaWZpY2F0aW9ucz86IFRhZ1NwZWNpZmljYXRpb25bXVxuTmV0d29ya1BlcmZvcm1hbmNlT3B0aW9ucz86IHtcbltrOiBzdHJpbmddOiB1bmtub3duXG59XG4vKipcbiAqIFRoZSB1c2VyIGRhdGEgdG8gbWFrZSBhdmFpbGFibGUgdG8gdGhlIGluc3RhbmNlLiBZb3UgbXVzdCBwcm92aWRlIGJhc2U2NC1lbmNvZGVkIHRleHQuIFVzZXIgZGF0YSBpcyBsaW1pdGVkIHRvIDE2IEtCLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtSdW4gY29tbWFuZHMgb24geW91ciBBbWF6b24gRUMyIGluc3RhbmNlIGF0IGxhdW5jaF0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0VDMi9sYXRlc3QvVXNlckd1aWRlL3VzZXItZGF0YS5odG1sKSBpbiB0aGUgKkFtYXpvbiBFQzIgVXNlciBHdWlkZSouXG4gKiAgSWYgeW91IGFyZSBjcmVhdGluZyB0aGUgbGF1bmNoIHRlbXBsYXRlIGZvciB1c2Ugd2l0aCBCQVRDSCwgdGhlIHVzZXIgZGF0YSBtdXN0IGJlIHByb3ZpZGVkIGluIHRoZSBbTUlNRSBtdWx0aS1wYXJ0IGFyY2hpdmUgZm9ybWF0XShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vaHR0cHM6Ly9jbG91ZGluaXQucmVhZHRoZWRvY3MuaW8vZW4vbGF0ZXN0L3RvcGljcy9mb3JtYXQuaHRtbCNtaW1lLW11bHRpLXBhcnQtYXJjaGl2ZSkuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW0FtYXpvbiBFQzIgdXNlciBkYXRhIGluIGxhdW5jaCB0ZW1wbGF0ZXNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9iYXRjaC9sYXRlc3QvdXNlcmd1aWRlL2xhdW5jaC10ZW1wbGF0ZXMuaHRtbCkgaW4gdGhlICpVc2VyIEd1aWRlKi5cbiAqL1xuVXNlckRhdGE/OiBzdHJpbmdcbi8qKlxuICogVGhlIGJsb2NrIGRldmljZSBtYXBwaW5nLlxuICovXG5CbG9ja0RldmljZU1hcHBpbmdzPzogQmxvY2tEZXZpY2VNYXBwaW5nW11cbk1haW50ZW5hbmNlT3B0aW9ucz86IE1haW50ZW5hbmNlT3B0aW9uc1xuSWFtSW5zdGFuY2VQcm9maWxlPzogSWFtSW5zdGFuY2VQcm9maWxlXG4vKipcbiAqIFRoZSBJRCBvZiB0aGUga2VybmVsLlxuICogIFdlIHJlY29tbWVuZCB0aGF0IHlvdSB1c2UgUFYtR1JVQiBpbnN0ZWFkIG9mIGtlcm5lbHMgYW5kIFJBTSBkaXNrcy4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbVXNlciBQcm92aWRlZCBLZXJuZWxzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTRUMyL2xhdGVzdC9Vc2VyR3VpZGUvVXNlclByb3ZpZGVka2VybmVscy5odG1sKSBpbiB0aGUgKkFtYXpvbiBFQzIgVXNlciBHdWlkZSouXG4gKi9cbktlcm5lbElkPzogc3RyaW5nXG4vKipcbiAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBpbnN0YW5jZSBpcyBvcHRpbWl6ZWQgZm9yIEFtYXpvbiBFQlMgSS9PLiBUaGlzIG9wdGltaXphdGlvbiBwcm92aWRlcyBkZWRpY2F0ZWQgdGhyb3VnaHB1dCB0byBBbWF6b24gRUJTIGFuZCBhbiBvcHRpbWl6ZWQgY29uZmlndXJhdGlvbiBzdGFjayB0byBwcm92aWRlIG9wdGltYWwgQW1hem9uIEVCUyBJL08gcGVyZm9ybWFuY2UuIFRoaXMgb3B0aW1pemF0aW9uIGlzbid0IGF2YWlsYWJsZSB3aXRoIGFsbCBpbnN0YW5jZSB0eXBlcy4gQWRkaXRpb25hbCB1c2FnZSBjaGFyZ2VzIGFwcGx5IHdoZW4gdXNpbmcgYW4gRUJTLW9wdGltaXplZCBpbnN0YW5jZS5cbiAqL1xuRWJzT3B0aW1pemVkPzogYm9vbGVhblxuLyoqXG4gKiBEZXByZWNhdGVkLlxuICogICBBbWF6b24gRWxhc3RpYyBHcmFwaGljcyByZWFjaGVkIGVuZCBvZiBsaWZlIG9uIEphbnVhcnkgOCwgMjAyNC4gRm9yIHdvcmtsb2FkcyB0aGF0IHJlcXVpcmUgZ3JhcGhpY3MgYWNjZWxlcmF0aW9uLCB3ZSByZWNvbW1lbmQgdGhhdCB5b3UgdXNlIEFtYXpvbiBFQzIgRzRhZCwgRzRkbiwgb3IgRzUgaW5zdGFuY2VzLlxuICovXG5FbGFzdGljR3B1U3BlY2lmaWNhdGlvbnM/OiBFbGFzdGljR3B1U3BlY2lmaWNhdGlvbltdXG4vKipcbiAqIEFtYXpvbiBFbGFzdGljIEluZmVyZW5jZSBpcyBubyBsb25nZXIgYXZhaWxhYmxlLlxuICogICBBbiBlbGFzdGljIGluZmVyZW5jZSBhY2NlbGVyYXRvciB0byBhc3NvY2lhdGUgd2l0aCB0aGUgaW5zdGFuY2UuIEVsYXN0aWMgaW5mZXJlbmNlIGFjY2VsZXJhdG9ycyBhcmUgYSByZXNvdXJjZSB5b3UgY2FuIGF0dGFjaCB0byB5b3VyIEFtYXpvbiBFQzIgaW5zdGFuY2VzIHRvIGFjY2VsZXJhdGUgeW91ciBEZWVwIExlYXJuaW5nIChETCkgaW5mZXJlbmNlIHdvcmtsb2Fkcy5cbiAqICBZb3UgY2Fubm90IHNwZWNpZnkgYWNjZWxlcmF0b3JzIGZyb20gZGlmZmVyZW50IGdlbmVyYXRpb25zIGluIHRoZSBzYW1lIHJlcXVlc3QuXG4gKiAgIFN0YXJ0aW5nIEFwcmlsIDE1LCAyMDIzLCBBV1Mgd2lsbCBub3Qgb25ib2FyZCBuZXcgY3VzdG9tZXJzIHRvIEFtYXpvbiBFbGFzdGljIEluZmVyZW5jZSAoRUkpLCBhbmQgd2lsbCBoZWxwIGN1cnJlbnQgY3VzdG9tZXJzIG1pZ3JhdGUgdGhlaXIgd29ya2xvYWRzIHRvIG9wdGlvbnMgdGhhdCBvZmZlciBiZXR0ZXIgcHJpY2UgYW5kIHBlcmZvcm1hbmNlLiBBZnRlciBBcHJpbCAxNSwgMjAyMywgbmV3IGN1c3RvbWVycyB3aWxsIG5vdCBiZSBhYmxlIHRvIGxhdW5jaCBpbnN0YW5jZXMgd2l0aCBBbWF6b24gRUkgYWNjZWxlcmF0b3JzIGluIEFtYXpvbiBTYWdlTWFrZXIsIEFtYXpvbiBFQ1MsIG9yIEFtYXpvbiBFQzIuIEhvd2V2ZXIsIGN1c3RvbWVycyB3aG8gaGF2ZSB1c2VkIEFtYXpvbiBFSSBhdCBsZWFzdCBvbmNlIGR1cmluZyB0aGUgcGFzdCAzMC1kYXkgcGVyaW9kIGFyZSBjb25zaWRlcmVkIGN1cnJlbnQgY3VzdG9tZXJzIGFuZCB3aWxsIGJlIGFibGUgdG8gY29udGludWUgdXNpbmcgdGhlIHNlcnZpY2UuXG4gKi9cbkVsYXN0aWNJbmZlcmVuY2VBY2NlbGVyYXRvcnM/OiBMYXVuY2hUZW1wbGF0ZUVsYXN0aWNJbmZlcmVuY2VBY2NlbGVyYXRvcltdXG5QbGFjZW1lbnQ/OiBQbGFjZW1lbnRcbi8qKlxuICogVGhlIG5ldHdvcmsgaW50ZXJmYWNlcyBmb3IgdGhlIGluc3RhbmNlLlxuICovXG5OZXR3b3JrSW50ZXJmYWNlcz86IE5ldHdvcmtJbnRlcmZhY2VbXVxuRW5jbGF2ZU9wdGlvbnM/OiBFbmNsYXZlT3B0aW9uc1xuLyoqXG4gKiBUaGUgSUQgb2YgdGhlIEFNSS4gQWx0ZXJuYXRpdmVseSwgeW91IGNhbiBzcGVjaWZ5IGEgU3lzdGVtcyBNYW5hZ2VyIHBhcmFtZXRlciwgd2hpY2ggd2lsbCByZXNvbHZlIHRvIGFuIEFNSSBJRCBvbiBsYXVuY2guXG4gKiAgVmFsaWQgZm9ybWF0czpcbiAqICAgKyAgIGBgYW1pLTBhYzM5NGQ2YTNleGFtcGxlYGAgXG4gKiAgICsgICBgYHJlc29sdmU6c3NtOnBhcmFtZXRlci1uYW1lYGAgXG4gKiAgICsgICBgYHJlc29sdmU6c3NtOnBhcmFtZXRlci1uYW1lOnZlcnNpb24tbnVtYmVyYGAgXG4gKiAgICsgICBgYHJlc29sdmU6c3NtOnBhcmFtZXRlci1uYW1lOmxhYmVsYGAgXG4gKiAgIFxuICogIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW1VzZSBhIFN5c3RlbXMgTWFuYWdlciBwYXJhbWV0ZXIgdG8gZmluZCBhbiBBTUldKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NFQzIvbGF0ZXN0L1VzZXJHdWlkZS9maW5kaW5nLWFuLWFtaS5odG1sI3VzaW5nLXN5c3RlbXMtbWFuYWdlci1wYXJhbWV0ZXItdG8tZmluZC1BTUkpIGluIHRoZSAqQW1hem9uIEVsYXN0aWMgQ29tcHV0ZSBDbG91ZCBVc2VyIEd1aWRlKi5cbiAqL1xuSW1hZ2VJZD86IHN0cmluZ1xuLyoqXG4gKiBUaGUgaW5zdGFuY2UgdHlwZS4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbQW1hem9uIEVDMiBpbnN0YW5jZSB0eXBlc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0VDMi9sYXRlc3QvVXNlckd1aWRlL2luc3RhbmNlLXR5cGVzLmh0bWwpIGluIHRoZSAqQW1hem9uIEVDMiBVc2VyIEd1aWRlKi5cbiAqICBJZiB5b3Ugc3BlY2lmeSBgYEluc3RhbmNlVHlwZWBgLCB5b3UgY2FuJ3Qgc3BlY2lmeSBgYEluc3RhbmNlUmVxdWlyZW1lbnRzYGAuXG4gKi9cbkluc3RhbmNlVHlwZT86IHN0cmluZ1xuTW9uaXRvcmluZz86IE1vbml0b3JpbmdcbkhpYmVybmF0aW9uT3B0aW9ucz86IEhpYmVybmF0aW9uT3B0aW9uc1xuTWV0YWRhdGFPcHRpb25zPzogTWV0YWRhdGFPcHRpb25zXG4vKipcbiAqIFRoZSBsaWNlbnNlIGNvbmZpZ3VyYXRpb25zLlxuICovXG5MaWNlbnNlU3BlY2lmaWNhdGlvbnM/OiBMaWNlbnNlU3BlY2lmaWNhdGlvbltdXG4vKipcbiAqIEluZGljYXRlcyB3aGV0aGVyIGFuIGluc3RhbmNlIHN0b3BzIG9yIHRlcm1pbmF0ZXMgd2hlbiB5b3UgaW5pdGlhdGUgc2h1dGRvd24gZnJvbSB0aGUgaW5zdGFuY2UgKHVzaW5nIHRoZSBvcGVyYXRpbmcgc3lzdGVtIGNvbW1hbmQgZm9yIHN5c3RlbSBzaHV0ZG93bikuXG4gKiAgRGVmYXVsdDogYGBzdG9wYGBcbiAqL1xuSW5zdGFuY2VJbml0aWF0ZWRTaHV0ZG93bkJlaGF2aW9yPzogc3RyaW5nXG4vKipcbiAqIEluZGljYXRlcyB3aGV0aGVyIHRvIGVuYWJsZSB0aGUgaW5zdGFuY2UgZm9yIHN0b3AgcHJvdGVjdGlvbi4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbRW5hYmxlIHN0b3AgcHJvdGVjdGlvbiBmb3IgeW91ciBpbnN0YW5jZV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0VDMi9sYXRlc3QvVXNlckd1aWRlL2VjMi1zdG9wLXByb3RlY3Rpb24uaHRtbCkgaW4gdGhlICpBbWF6b24gRUMyIFVzZXIgR3VpZGUqLlxuICovXG5EaXNhYmxlQXBpU3RvcD86IGJvb2xlYW5cbkNwdU9wdGlvbnM/OiBDcHVPcHRpb25zXG5Qcml2YXRlRG5zTmFtZU9wdGlvbnM/OiBQcml2YXRlRG5zTmFtZU9wdGlvbnNcbi8qKlxuICogVGhlIElEcyBvZiB0aGUgc2VjdXJpdHkgZ3JvdXBzLiBZb3UgY2FuIHNwZWNpZnkgdGhlIElEcyBvZiBleGlzdGluZyBzZWN1cml0eSBncm91cHMgYW5kIHJlZmVyZW5jZXMgdG8gcmVzb3VyY2VzIGNyZWF0ZWQgYnkgdGhlIHN0YWNrIHRlbXBsYXRlLlxuICogIElmIHlvdSBzcGVjaWZ5IGEgbmV0d29yayBpbnRlcmZhY2UsIHlvdSBtdXN0IHNwZWNpZnkgYW55IHNlY3VyaXR5IGdyb3VwcyBhcyBwYXJ0IG9mIHRoZSBuZXR3b3JrIGludGVyZmFjZSBpbnN0ZWFkLlxuICovXG5TZWN1cml0eUdyb3VwSWRzPzogc3RyaW5nW11cbi8qKlxuICogVGhlIG5hbWUgb2YgdGhlIGtleSBwYWlyLiBZb3UgY2FuIGNyZWF0ZSBhIGtleSBwYWlyIHVzaW5nIFtDcmVhdGVLZXlQYWlyXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTRUMyL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0NyZWF0ZUtleVBhaXIuaHRtbCkgb3IgW0ltcG9ydEtleVBhaXJdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NFQzIvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfSW1wb3J0S2V5UGFpci5odG1sKS5cbiAqICAgSWYgeW91IGRvIG5vdCBzcGVjaWZ5IGEga2V5IHBhaXIsIHlvdSBjYW4ndCBjb25uZWN0IHRvIHRoZSBpbnN0YW5jZSB1bmxlc3MgeW91IGNob29zZSBhbiBBTUkgdGhhdCBpcyBjb25maWd1cmVkIHRvIGFsbG93IHVzZXJzIGFub3RoZXIgd2F5IHRvIGxvZyBpbi5cbiAqL1xuS2V5TmFtZT86IHN0cmluZ1xuLyoqXG4gKiBJZiB5b3Ugc2V0IHRoaXMgcGFyYW1ldGVyIHRvIGBgdHJ1ZWBgLCB5b3UgY2FuJ3QgdGVybWluYXRlIHRoZSBpbnN0YW5jZSB1c2luZyB0aGUgQW1hem9uIEVDMiBjb25zb2xlLCBDTEksIG9yIEFQSTsgb3RoZXJ3aXNlLCB5b3UgY2FuLiBUbyBjaGFuZ2UgdGhpcyBhdHRyaWJ1dGUgYWZ0ZXIgbGF1bmNoLCB1c2UgW01vZGlmeUluc3RhbmNlQXR0cmlidXRlXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTRUMyL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX01vZGlmeUluc3RhbmNlQXR0cmlidXRlLmh0bWwpLiBBbHRlcm5hdGl2ZWx5LCBpZiB5b3Ugc2V0IGBgSW5zdGFuY2VJbml0aWF0ZWRTaHV0ZG93bkJlaGF2aW9yYGAgdG8gYGB0ZXJtaW5hdGVgYCwgeW91IGNhbiB0ZXJtaW5hdGUgdGhlIGluc3RhbmNlIGJ5IHJ1bm5pbmcgdGhlIHNodXRkb3duIGNvbW1hbmQgZnJvbSB0aGUgaW5zdGFuY2UuXG4gKi9cbkRpc2FibGVBcGlUZXJtaW5hdGlvbj86IGJvb2xlYW5cbkluc3RhbmNlTWFya2V0T3B0aW9ucz86IEluc3RhbmNlTWFya2V0T3B0aW9uc1xuSW5zdGFuY2VSZXF1aXJlbWVudHM/OiBJbnN0YW5jZVJlcXVpcmVtZW50c1xuLyoqXG4gKiBUaGUgSUQgb2YgdGhlIFJBTSBkaXNrLlxuICogICBXZSByZWNvbW1lbmQgdGhhdCB5b3UgdXNlIFBWLUdSVUIgaW5zdGVhZCBvZiBrZXJuZWxzIGFuZCBSQU0gZGlza3MuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW1VzZXIgcHJvdmlkZWQga2VybmVsc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0VDMi9sYXRlc3QvVXNlckd1aWRlL1VzZXJQcm92aWRlZGtlcm5lbHMuaHRtbCkgaW4gdGhlICpBbWF6b24gRUMyIFVzZXIgR3VpZGUqLlxuICovXG5SYW1EaXNrSWQ/OiBzdHJpbmdcbkNhcGFjaXR5UmVzZXJ2YXRpb25TcGVjaWZpY2F0aW9uPzogQ2FwYWNpdHlSZXNlcnZhdGlvblNwZWNpZmljYXRpb25cbkNyZWRpdFNwZWNpZmljYXRpb24/OiBDcmVkaXRTcGVjaWZpY2F0aW9uXG59XG4vKipcbiAqIFNwZWNpZmllcyB0aGUgdGFncyB0byBhcHBseSB0byByZXNvdXJjZXMgdGhhdCBhcmUgY3JlYXRlZCBkdXJpbmcgaW5zdGFuY2UgbGF1bmNoLlxuICogICBgYFRhZ1NwZWNpZmljYXRpb25gYCBpcyBhIHByb3BlcnR5IHR5cGUgb2YgW1RhZ1NwZWNpZmljYXRpb25zXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1lYzItbGF1bmNodGVtcGxhdGUtbGF1bmNodGVtcGxhdGVkYXRhLmh0bWwjY2ZuLWVjMi1sYXVuY2h0ZW1wbGF0ZS1sYXVuY2h0ZW1wbGF0ZWRhdGEtdGFnc3BlY2lmaWNhdGlvbnMpLiBbVGFnU3BlY2lmaWNhdGlvbnNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLWVjMi1sYXVuY2h0ZW1wbGF0ZS1sYXVuY2h0ZW1wbGF0ZWRhdGEuaHRtbCNjZm4tZWMyLWxhdW5jaHRlbXBsYXRlLWxhdW5jaHRlbXBsYXRlZGF0YS10YWdzcGVjaWZpY2F0aW9ucykgaXMgYSBwcm9wZXJ0eSBvZiBbQVdTOjpFQzI6OkxhdW5jaFRlbXBsYXRlIExhdW5jaFRlbXBsYXRlRGF0YV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtZWMyLWxhdW5jaHRlbXBsYXRlLWxhdW5jaHRlbXBsYXRlZGF0YS5odG1sKS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUYWdTcGVjaWZpY2F0aW9uIHtcbi8qKlxuICogVGhlIHR5cGUgb2YgcmVzb3VyY2UgdG8gdGFnLiBZb3UgY2FuIHNwZWNpZnkgdGFncyBmb3IgdGhlIGZvbGxvd2luZyByZXNvdXJjZSB0eXBlcyBvbmx5OiBgYGluc3RhbmNlYGAgfCBgYHZvbHVtZWBgIHwgYGBuZXR3b3JrLWludGVyZmFjZWBgIHwgYGBzcG90LWluc3RhbmNlcy1yZXF1ZXN0YGAuIElmIHRoZSBpbnN0YW5jZSBkb2VzIG5vdCBpbmNsdWRlIHRoZSByZXNvdXJjZSB0eXBlIHRoYXQgeW91IHNwZWNpZnksIHRoZSBpbnN0YW5jZSBsYXVuY2ggZmFpbHMuIEZvciBleGFtcGxlLCBub3QgYWxsIGluc3RhbmNlIHR5cGVzIGluY2x1ZGUgYSB2b2x1bWUuXG4gKiAgVG8gdGFnIGEgcmVzb3VyY2UgYWZ0ZXIgaXQgaGFzIGJlZW4gY3JlYXRlZCwgc2VlIFtDcmVhdGVUYWdzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTRUMyL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0NyZWF0ZVRhZ3MuaHRtbCkuXG4gKi9cblJlc291cmNlVHlwZT86IHN0cmluZ1xuLyoqXG4gKiBUaGUgdGFncyB0byBhcHBseSB0byB0aGUgcmVzb3VyY2UuXG4gKi9cblRhZ3M/OiBUYWdbXVxufVxuLyoqXG4gKiBTcGVjaWZpZXMgYSB0YWcuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW1Jlc291cmNlIHRhZ3NdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLXJlc291cmNlLXRhZ3MuaHRtbCkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGFnIHtcbi8qKlxuICogVGhlIHRhZyB2YWx1ZS5cbiAqL1xuVmFsdWU6IHN0cmluZ1xuLyoqXG4gKiBUaGUgdGFnIGtleS5cbiAqL1xuS2V5OiBzdHJpbmdcbn1cbi8qKlxuICogU3BlY2lmaWVzIGEgYmxvY2sgZGV2aWNlIG1hcHBpbmcgZm9yIGEgbGF1bmNoIHRlbXBsYXRlLiBZb3UgbXVzdCBzcGVjaWZ5IGBgRGV2aWNlTmFtZWBgIHBsdXMgZXhhY3RseSBvbmUgb2YgdGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzOiBgYEVic2BgLCBgYE5vRGV2aWNlYGAsIG9yIGBgVmlydHVhbE5hbWVgYC5cbiAqICAgYGBCbG9ja0RldmljZU1hcHBpbmdgYCBpcyBhIHByb3BlcnR5IG9mIFtBV1M6OkVDMjo6TGF1bmNoVGVtcGxhdGUgTGF1bmNoVGVtcGxhdGVEYXRhXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1lYzItbGF1bmNodGVtcGxhdGUtbGF1bmNodGVtcGxhdGVkYXRhLmh0bWwpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJsb2NrRGV2aWNlTWFwcGluZyB7XG5FYnM/OiBFYnNcbi8qKlxuICogVG8gb21pdCB0aGUgZGV2aWNlIGZyb20gdGhlIGJsb2NrIGRldmljZSBtYXBwaW5nLCBzcGVjaWZ5IGFuIGVtcHR5IHN0cmluZy5cbiAqL1xuTm9EZXZpY2U/OiBzdHJpbmdcbi8qKlxuICogVGhlIHZpcnR1YWwgZGV2aWNlIG5hbWUgKGVwaGVtZXJhbE4pLiBJbnN0YW5jZSBzdG9yZSB2b2x1bWVzIGFyZSBudW1iZXJlZCBzdGFydGluZyBmcm9tIDAuIEFuIGluc3RhbmNlIHR5cGUgd2l0aCAyIGF2YWlsYWJsZSBpbnN0YW5jZSBzdG9yZSB2b2x1bWVzIGNhbiBzcGVjaWZ5IG1hcHBpbmdzIGZvciBlcGhlbWVyYWwwIGFuZCBlcGhlbWVyYWwxLiBUaGUgbnVtYmVyIG9mIGF2YWlsYWJsZSBpbnN0YW5jZSBzdG9yZSB2b2x1bWVzIGRlcGVuZHMgb24gdGhlIGluc3RhbmNlIHR5cGUuIEFmdGVyIHlvdSBjb25uZWN0IHRvIHRoZSBpbnN0YW5jZSwgeW91IG11c3QgbW91bnQgdGhlIHZvbHVtZS5cbiAqL1xuVmlydHVhbE5hbWU/OiBzdHJpbmdcbi8qKlxuICogVGhlIGRldmljZSBuYW1lIChmb3IgZXhhbXBsZSwgL2Rldi9zZGggb3IgeHZkaCkuXG4gKi9cbkRldmljZU5hbWU/OiBzdHJpbmdcbn1cbi8qKlxuICogUGFyYW1ldGVycyB1c2VkIHRvIGF1dG9tYXRpY2FsbHkgc2V0IHVwIEVCUyB2b2x1bWVzIHdoZW4gdGhlIGluc3RhbmNlIGlzIGxhdW5jaGVkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEVicyB7XG4vKipcbiAqIFRoZSBJRCBvZiB0aGUgc25hcHNob3QuXG4gKi9cblNuYXBzaG90SWQ/OiBzdHJpbmdcbi8qKlxuICogVGhlIHZvbHVtZSB0eXBlLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtBbWF6b24gRUJTIHZvbHVtZSB0eXBlc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Vicy9sYXRlc3QvdXNlcmd1aWRlL2Vicy12b2x1bWUtdHlwZXMuaHRtbCkgaW4gdGhlICpBbWF6b24gRUJTIFVzZXIgR3VpZGUqLlxuICovXG5Wb2x1bWVUeXBlPzogc3RyaW5nXG4vKipcbiAqIElkZW50aWZpZXIgKGtleSBJRCwga2V5IGFsaWFzLCBrZXkgQVJOLCBvciBhbGlhcyBBUk4pIG9mIHRoZSBjdXN0b21lciBtYW5hZ2VkIEtNUyBrZXkgdG8gdXNlIGZvciBFQlMgZW5jcnlwdGlvbi5cbiAqL1xuS21zS2V5SWQ/OiBzdHJpbmdcbi8qKlxuICogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIEVCUyB2b2x1bWUgaXMgZW5jcnlwdGVkLiBFbmNyeXB0ZWQgdm9sdW1lcyBjYW4gb25seSBiZSBhdHRhY2hlZCB0byBpbnN0YW5jZXMgdGhhdCBzdXBwb3J0IEFtYXpvbiBFQlMgZW5jcnlwdGlvbi4gSWYgeW91IGFyZSBjcmVhdGluZyBhIHZvbHVtZSBmcm9tIGEgc25hcHNob3QsIHlvdSBjYW4ndCBzcGVjaWZ5IGFuIGVuY3J5cHRpb24gdmFsdWUuXG4gKi9cbkVuY3J5cHRlZD86IGJvb2xlYW5cbi8qKlxuICogVGhlIHRocm91Z2hwdXQgdG8gcHJvdmlzaW9uIGZvciBhIGBgZ3AzYGAgdm9sdW1lLCB3aXRoIGEgbWF4aW11bSBvZiAxLDAwMCBNaUIvcy5cbiAqICBWYWxpZCBSYW5nZTogTWluaW11bSB2YWx1ZSBvZiAxMjUuIE1heGltdW0gdmFsdWUgb2YgMTAwMC5cbiAqL1xuVGhyb3VnaHB1dD86IG51bWJlclxuLyoqXG4gKiBUaGUgbnVtYmVyIG9mIEkvTyBvcGVyYXRpb25zIHBlciBzZWNvbmQgKElPUFMpLiBGb3IgYGBncDNgYCwgYGBpbzFgYCwgYW5kIGBgaW8yYGAgdm9sdW1lcywgdGhpcyByZXByZXNlbnRzIHRoZSBudW1iZXIgb2YgSU9QUyB0aGF0IGFyZSBwcm92aXNpb25lZCBmb3IgdGhlIHZvbHVtZS4gRm9yIGBgZ3AyYGAgdm9sdW1lcywgdGhpcyByZXByZXNlbnRzIHRoZSBiYXNlbGluZSBwZXJmb3JtYW5jZSBvZiB0aGUgdm9sdW1lIGFuZCB0aGUgcmF0ZSBhdCB3aGljaCB0aGUgdm9sdW1lIGFjY3VtdWxhdGVzIEkvTyBjcmVkaXRzIGZvciBidXJzdGluZy5cbiAqICBUaGUgZm9sbG93aW5nIGFyZSB0aGUgc3VwcG9ydGVkIHZhbHVlcyBmb3IgZWFjaCB2b2x1bWUgdHlwZTpcbiAqICAgKyAgIGBgZ3AzYGA6IDMsMDAwIC0gMTYsMDAwIElPUFNcbiAqICAgKyAgIGBgaW8xYGA6IDEwMCAtIDY0LDAwMCBJT1BTXG4gKiAgICsgICBgYGlvMmBgOiAxMDAgLSAyNTYsMDAwIElPUFNcbiAqICAgXG4gKiAgRm9yIGBgaW8yYGAgdm9sdW1lcywgeW91IGNhbiBhY2hpZXZlIHVwIHRvIDI1NiwwMDAgSU9QUyBvbiBbaW5zdGFuY2VzIGJ1aWx0IG9uIHRoZSBOaXRybyBTeXN0ZW1dKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NFQzIvbGF0ZXN0L1VzZXJHdWlkZS9pbnN0YW5jZS10eXBlcy5odG1sI2VjMi1uaXRyby1pbnN0YW5jZXMpLiBPbiBvdGhlciBpbnN0YW5jZXMsIHlvdSBjYW4gYWNoaWV2ZSBwZXJmb3JtYW5jZSB1cCB0byAzMiwwMDAgSU9QUy5cbiAqICBUaGlzIHBhcmFtZXRlciBpcyBzdXBwb3J0ZWQgZm9yIGBgaW8xYGAsIGBgaW8yYGAsIGFuZCBgYGdwM2BgIHZvbHVtZXMgb25seS5cbiAqL1xuSW9wcz86IG51bWJlclxuLyoqXG4gKiBUaGUgc2l6ZSBvZiB0aGUgdm9sdW1lLCBpbiBHaUJzLiBZb3UgbXVzdCBzcGVjaWZ5IGVpdGhlciBhIHNuYXBzaG90IElEIG9yIGEgdm9sdW1lIHNpemUuIFRoZSBmb2xsb3dpbmcgYXJlIHRoZSBzdXBwb3J0ZWQgdm9sdW1lcyBzaXplcyBmb3IgZWFjaCB2b2x1bWUgdHlwZTpcbiAqICAgKyAgIGBgZ3AyYGAgYW5kIGBgZ3AzYGA6IDEgLSAxNiwzODQgR2lCXG4gKiAgICsgICBgYGlvMWBgOiA0IC0gMTYsMzg0IEdpQlxuICogICArICAgYGBpbzJgYDogNCAtIDY1LDUzNiBHaUJcbiAqICAgKyAgIGBgc3QxYGAgYW5kIGBgc2MxYGA6IDEyNSAtIDE2LDM4NCBHaUJcbiAqICAgKyAgIGBgc3RhbmRhcmRgYDogMSAtIDEwMjQgR2lCXG4gKi9cblZvbHVtZVNpemU/OiBudW1iZXJcbi8qKlxuICogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIEVCUyB2b2x1bWUgaXMgZGVsZXRlZCBvbiBpbnN0YW5jZSB0ZXJtaW5hdGlvbi5cbiAqL1xuRGVsZXRlT25UZXJtaW5hdGlvbj86IGJvb2xlYW5cbn1cbi8qKlxuICogVGhlIG1haW50ZW5hbmNlIG9wdGlvbnMgb2YgeW91ciBpbnN0YW5jZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNYWludGVuYW5jZU9wdGlvbnMge1xuLyoqXG4gKiBEaXNhYmxlcyB0aGUgYXV0b21hdGljIHJlY292ZXJ5IGJlaGF2aW9yIG9mIHlvdXIgaW5zdGFuY2Ugb3Igc2V0cyBpdCB0byBkZWZhdWx0LlxuICovXG5BdXRvUmVjb3Zlcnk/OiBzdHJpbmdcbn1cbi8qKlxuICogVGhlIG5hbWUgb3IgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTikgb2YgYW4gSUFNIGluc3RhbmNlIHByb2ZpbGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSWFtSW5zdGFuY2VQcm9maWxlIHtcbi8qKlxuICogVGhlIEFtYXpvbiBSZXNvdXJjZSBOYW1lIChBUk4pIG9mIHRoZSBpbnN0YW5jZSBwcm9maWxlLlxuICovXG5Bcm4/OiBzdHJpbmdcbi8qKlxuICogVGhlIG5hbWUgb2YgdGhlIGluc3RhbmNlIHByb2ZpbGUuXG4gKi9cbk5hbWU/OiBzdHJpbmdcbn1cbi8qKlxuICogQW1hem9uIEVsYXN0aWMgR3JhcGhpY3MgcmVhY2hlZCBlbmQgb2YgbGlmZSBvbiBKYW51YXJ5IDgsIDIwMjQuIEZvciB3b3JrbG9hZHMgdGhhdCByZXF1aXJlIGdyYXBoaWNzIGFjY2VsZXJhdGlvbiwgd2UgcmVjb21tZW5kIHRoYXQgeW91IHVzZSBBbWF6b24gRUMyIEc0YWQsIEc0ZG4sIG9yIEc1IGluc3RhbmNlcy5cbiAqICAgU3BlY2lmaWVzIGEgc3BlY2lmaWNhdGlvbiBmb3IgYW4gRWxhc3RpYyBHUFUgZm9yIGFuIEFtYXpvbiBFQzIgbGF1bmNoIHRlbXBsYXRlLlxuICogICBgYEVsYXN0aWNHcHVTcGVjaWZpY2F0aW9uYGAgaXMgYSBwcm9wZXJ0eSBvZiBbQVdTOjpFQzI6OkxhdW5jaFRlbXBsYXRlIExhdW5jaFRlbXBsYXRlRGF0YV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtZWMyLWxhdW5jaHRlbXBsYXRlLWxhdW5jaHRlbXBsYXRlZGF0YS5odG1sKS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFbGFzdGljR3B1U3BlY2lmaWNhdGlvbiB7XG4vKipcbiAqIFRoZSB0eXBlIG9mIEVsYXN0aWMgR3JhcGhpY3MgYWNjZWxlcmF0b3IuXG4gKi9cblR5cGU/OiBzdHJpbmdcbn1cbi8qKlxuICogU3BlY2lmaWVzIGFuIGVsYXN0aWMgaW5mZXJlbmNlIGFjY2VsZXJhdG9yLlxuICogICBgYExhdW5jaFRlbXBsYXRlRWxhc3RpY0luZmVyZW5jZUFjY2VsZXJhdG9yYGAgaXMgYSBwcm9wZXJ0eSBvZiBbQVdTOjpFQzI6OkxhdW5jaFRlbXBsYXRlIExhdW5jaFRlbXBsYXRlRGF0YV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtZWMyLWxhdW5jaHRlbXBsYXRlLWxhdW5jaHRlbXBsYXRlZGF0YS5odG1sKS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMYXVuY2hUZW1wbGF0ZUVsYXN0aWNJbmZlcmVuY2VBY2NlbGVyYXRvciB7XG4vKipcbiAqIFRoZSB0eXBlIG9mIGVsYXN0aWMgaW5mZXJlbmNlIGFjY2VsZXJhdG9yLiBUaGUgcG9zc2libGUgdmFsdWVzIGFyZSBlaWExLm1lZGl1bSwgZWlhMS5sYXJnZSwgYW5kIGVpYTEueGxhcmdlLlxuICovXG5UeXBlPzogc3RyaW5nXG4vKipcbiAqIFRoZSBudW1iZXIgb2YgZWxhc3RpYyBpbmZlcmVuY2UgYWNjZWxlcmF0b3JzIHRvIGF0dGFjaCB0byB0aGUgaW5zdGFuY2UuIFxuICogIERlZmF1bHQ6IDFcbiAqL1xuQ291bnQ/OiBudW1iZXJcbn1cbi8qKlxuICogVGhlIHBsYWNlbWVudCBmb3IgdGhlIGluc3RhbmNlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBsYWNlbWVudCB7XG4vKipcbiAqIFRoZSBuYW1lIG9mIHRoZSBwbGFjZW1lbnQgZ3JvdXAgZm9yIHRoZSBpbnN0YW5jZS5cbiAqL1xuR3JvdXBOYW1lPzogc3RyaW5nXG4vKipcbiAqIFRoZSB0ZW5hbmN5IG9mIHRoZSBpbnN0YW5jZS4gQW4gaW5zdGFuY2Ugd2l0aCBhIHRlbmFuY3kgb2YgZGVkaWNhdGVkIHJ1bnMgb24gc2luZ2xlLXRlbmFudCBoYXJkd2FyZS5cbiAqL1xuVGVuYW5jeT86IHN0cmluZ1xuLyoqXG4gKiBSZXNlcnZlZCBmb3IgZnV0dXJlIHVzZS5cbiAqL1xuU3ByZWFkRG9tYWluPzogc3RyaW5nXG4vKipcbiAqIFRoZSBudW1iZXIgb2YgdGhlIHBhcnRpdGlvbiB0aGUgaW5zdGFuY2Ugc2hvdWxkIGxhdW5jaCBpbi4gVmFsaWQgb25seSBpZiB0aGUgcGxhY2VtZW50IGdyb3VwIHN0cmF0ZWd5IGlzIHNldCB0byBgYHBhcnRpdGlvbmBgLlxuICovXG5QYXJ0aXRpb25OdW1iZXI/OiBudW1iZXJcbi8qKlxuICogVGhlIEF2YWlsYWJpbGl0eSBab25lIGZvciB0aGUgaW5zdGFuY2UuXG4gKi9cbkF2YWlsYWJpbGl0eVpvbmU/OiBzdHJpbmdcbi8qKlxuICogVGhlIGFmZmluaXR5IHNldHRpbmcgZm9yIGFuIGluc3RhbmNlIG9uIGEgRGVkaWNhdGVkIEhvc3QuXG4gKi9cbkFmZmluaXR5Pzogc3RyaW5nXG4vKipcbiAqIFRoZSBJRCBvZiB0aGUgRGVkaWNhdGVkIEhvc3QgZm9yIHRoZSBpbnN0YW5jZS5cbiAqL1xuSG9zdElkPzogc3RyaW5nXG4vKipcbiAqIFRoZSBBUk4gb2YgdGhlIGhvc3QgcmVzb3VyY2UgZ3JvdXAgaW4gd2hpY2ggdG8gbGF1bmNoIHRoZSBpbnN0YW5jZXMuIElmIHlvdSBzcGVjaWZ5IGEgaG9zdCByZXNvdXJjZSBncm91cCBBUk4sIG9taXQgdGhlICpUZW5hbmN5KiBwYXJhbWV0ZXIgb3Igc2V0IGl0IHRvIGBgaG9zdGBgLlxuICovXG5Ib3N0UmVzb3VyY2VHcm91cEFybj86IHN0cmluZ1xuLyoqXG4gKiBUaGUgR3JvdXAgSWQgb2YgYSBwbGFjZW1lbnQgZ3JvdXAuIFlvdSBtdXN0IHNwZWNpZnkgdGhlIFBsYWNlbWVudCBHcm91cCAqR3JvdXAgSWQqIHRvIGxhdW5jaCBhbiBpbnN0YW5jZSBpbiBhIHNoYXJlZCBwbGFjZW1lbnQgZ3JvdXAuXG4gKi9cbkdyb3VwSWQ/OiBzdHJpbmdcbn1cbi8qKlxuICogU3BlY2lmaWVzIHRoZSBwYXJhbWV0ZXJzIGZvciBhIG5ldHdvcmsgaW50ZXJmYWNlLlxuICogICBgYE5ldHdvcmtJbnRlcmZhY2VgYCBpcyBhIHByb3BlcnR5IG9mIFtBV1M6OkVDMjo6TGF1bmNoVGVtcGxhdGUgTGF1bmNoVGVtcGxhdGVEYXRhXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1lYzItbGF1bmNodGVtcGxhdGUtbGF1bmNodGVtcGxhdGVkYXRhLmh0bWwpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE5ldHdvcmtJbnRlcmZhY2Uge1xuLyoqXG4gKiBBIGRlc2NyaXB0aW9uIGZvciB0aGUgbmV0d29yayBpbnRlcmZhY2UuXG4gKi9cbkRlc2NyaXB0aW9uPzogc3RyaW5nXG4vKipcbiAqIFRoZSBwcmltYXJ5IHByaXZhdGUgSVB2NCBhZGRyZXNzIG9mIHRoZSBuZXR3b3JrIGludGVyZmFjZS5cbiAqL1xuUHJpdmF0ZUlwQWRkcmVzcz86IHN0cmluZ1xuLyoqXG4gKiBPbmUgb3IgbW9yZSBwcml2YXRlIElQdjQgYWRkcmVzc2VzLlxuICovXG5Qcml2YXRlSXBBZGRyZXNzZXM/OiBQcml2YXRlSXBBZGRbXVxuLyoqXG4gKiBUaGUgbnVtYmVyIG9mIHNlY29uZGFyeSBwcml2YXRlIElQdjQgYWRkcmVzc2VzIHRvIGFzc2lnbiB0byBhIG5ldHdvcmsgaW50ZXJmYWNlLlxuICovXG5TZWNvbmRhcnlQcml2YXRlSXBBZGRyZXNzQ291bnQ/OiBudW1iZXJcbi8qKlxuICogVGhlIG51bWJlciBvZiBJUHY2IHByZWZpeGVzIHRvIGJlIGF1dG9tYXRpY2FsbHkgYXNzaWduZWQgdG8gdGhlIG5ldHdvcmsgaW50ZXJmYWNlLiBZb3UgY2Fubm90IHVzZSB0aGlzIG9wdGlvbiBpZiB5b3UgdXNlIHRoZSBgYElwdjZQcmVmaXhgYCBvcHRpb24uXG4gKi9cbklwdjZQcmVmaXhDb3VudD86IG51bWJlclxuLyoqXG4gKiBPbmUgb3IgbW9yZSBJUHY0IHByZWZpeGVzIHRvIGJlIGFzc2lnbmVkIHRvIHRoZSBuZXR3b3JrIGludGVyZmFjZS4gWW91IGNhbm5vdCB1c2UgdGhpcyBvcHRpb24gaWYgeW91IHVzZSB0aGUgYGBJcHY0UHJlZml4Q291bnRgYCBvcHRpb24uXG4gKi9cbklwdjRQcmVmaXhlcz86IElwdjRQcmVmaXhTcGVjaWZpY2F0aW9uW11cbi8qKlxuICogVGhlIGRldmljZSBpbmRleCBmb3IgdGhlIG5ldHdvcmsgaW50ZXJmYWNlIGF0dGFjaG1lbnQuIElmIHRoZSBuZXR3b3JrIGludGVyZmFjZSBpcyBvZiB0eXBlIGBgaW50ZXJmYWNlYGAsIHlvdSBtdXN0IHNwZWNpZnkgYSBkZXZpY2UgaW5kZXguXG4gKiAgSWYgeW91IGNyZWF0ZSBhIGxhdW5jaCB0ZW1wbGF0ZSB0aGF0IGluY2x1ZGVzIHNlY29uZGFyeSBuZXR3b3JrIGludGVyZmFjZXMgYnV0IG5vIHByaW1hcnkgbmV0d29yayBpbnRlcmZhY2UsIGFuZCB5b3Ugc3BlY2lmeSBpdCB1c2luZyB0aGUgYGBMYXVuY2hUZW1wbGF0ZWBgIHByb3BlcnR5IG9mIGBgQVdTOjpFQzI6Okluc3RhbmNlYGAsIHRoZW4geW91IG11c3QgaW5jbHVkZSBhIHByaW1hcnkgbmV0d29yayBpbnRlcmZhY2UgdXNpbmcgdGhlIGBgTmV0d29ya0ludGVyZmFjZXNgYCBwcm9wZXJ0eSBvZiBgYEFXUzo6RUMyOjpJbnN0YW5jZWBgLlxuICovXG5EZXZpY2VJbmRleD86IG51bWJlclxuLyoqXG4gKiBUaGUgcHJpbWFyeSBJUHY2IGFkZHJlc3Mgb2YgdGhlIG5ldHdvcmsgaW50ZXJmYWNlLiBXaGVuIHlvdSBlbmFibGUgYW4gSVB2NiBHVUEgYWRkcmVzcyB0byBiZSBhIHByaW1hcnkgSVB2NiwgdGhlIGZpcnN0IElQdjYgR1VBIHdpbGwgYmUgbWFkZSB0aGUgcHJpbWFyeSBJUHY2IGFkZHJlc3MgdW50aWwgdGhlIGluc3RhbmNlIGlzIHRlcm1pbmF0ZWQgb3IgdGhlIG5ldHdvcmsgaW50ZXJmYWNlIGlzIGRldGFjaGVkLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCBwcmltYXJ5IElQdjYgYWRkcmVzc2VzLCBzZWUgW1J1bkluc3RhbmNlc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0VDMi9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9SdW5JbnN0YW5jZXMuaHRtbCkuXG4gKi9cblByaW1hcnlJcHY2PzogYm9vbGVhblxuLyoqXG4gKiBUaGUgbnVtYmVyIG9mIElQdjQgcHJlZml4ZXMgdG8gYmUgYXV0b21hdGljYWxseSBhc3NpZ25lZCB0byB0aGUgbmV0d29yayBpbnRlcmZhY2UuIFlvdSBjYW5ub3QgdXNlIHRoaXMgb3B0aW9uIGlmIHlvdSB1c2UgdGhlIGBgSXB2NFByZWZpeGBgIG9wdGlvbi5cbiAqL1xuSXB2NFByZWZpeENvdW50PzogbnVtYmVyXG4vKipcbiAqIE9uZSBvciBtb3JlIElQdjYgcHJlZml4ZXMgdG8gYmUgYXNzaWduZWQgdG8gdGhlIG5ldHdvcmsgaW50ZXJmYWNlLiBZb3UgY2Fubm90IHVzZSB0aGlzIG9wdGlvbiBpZiB5b3UgdXNlIHRoZSBgYElwdjZQcmVmaXhDb3VudGBgIG9wdGlvbi5cbiAqL1xuSXB2NlByZWZpeGVzPzogSXB2NlByZWZpeFNwZWNpZmljYXRpb25bXVxuLyoqXG4gKiBUaGUgSUQgb2YgdGhlIHN1Ym5ldCBmb3IgdGhlIG5ldHdvcmsgaW50ZXJmYWNlLlxuICovXG5TdWJuZXRJZD86IHN0cmluZ1xuLyoqXG4gKiBPbmUgb3IgbW9yZSBzcGVjaWZpYyBJUHY2IGFkZHJlc3NlcyBmcm9tIHRoZSBJUHY2IENJRFIgYmxvY2sgcmFuZ2Ugb2YgeW91ciBzdWJuZXQuIFlvdSBjYW4ndCB1c2UgdGhpcyBvcHRpb24gaWYgeW91J3JlIHNwZWNpZnlpbmcgYSBudW1iZXIgb2YgSVB2NiBhZGRyZXNzZXMuXG4gKi9cbklwdjZBZGRyZXNzZXM/OiBJcHY2QWRkW11cbi8qKlxuICogQXNzb2NpYXRlcyBhIHB1YmxpYyBJUHY0IGFkZHJlc3Mgd2l0aCBldGgwIGZvciBhIG5ldyBuZXR3b3JrIGludGVyZmFjZS5cbiAqICAgQVdTIGNoYXJnZXMgZm9yIGFsbCBwdWJsaWMgSVB2NCBhZGRyZXNzZXMsIGluY2x1ZGluZyBwdWJsaWMgSVB2NCBhZGRyZXNzZXMgYXNzb2NpYXRlZCB3aXRoIHJ1bm5pbmcgaW5zdGFuY2VzIGFuZCBFbGFzdGljIElQIGFkZHJlc3Nlcy4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSB0aGUgKlB1YmxpYyBJUHY0IEFkZHJlc3MqIHRhYiBvbiB0aGUgW0FtYXpvbiBWUEMgcHJpY2luZyBwYWdlXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vdnBjL3ByaWNpbmcvKS5cbiAqL1xuQXNzb2NpYXRlUHVibGljSXBBZGRyZXNzPzogYm9vbGVhblxuLyoqXG4gKiBUaGUgSUQgb2YgdGhlIG5ldHdvcmsgaW50ZXJmYWNlLlxuICovXG5OZXR3b3JrSW50ZXJmYWNlSWQ/OiBzdHJpbmdcbi8qKlxuICogVGhlIGluZGV4IG9mIHRoZSBuZXR3b3JrIGNhcmQuIFNvbWUgaW5zdGFuY2UgdHlwZXMgc3VwcG9ydCBtdWx0aXBsZSBuZXR3b3JrIGNhcmRzLiBUaGUgcHJpbWFyeSBuZXR3b3JrIGludGVyZmFjZSBtdXN0IGJlIGFzc2lnbmVkIHRvIG5ldHdvcmsgY2FyZCBpbmRleCAwLiBUaGUgZGVmYXVsdCBpcyBuZXR3b3JrIGNhcmQgaW5kZXggMC5cbiAqL1xuTmV0d29ya0NhcmRJbmRleD86IG51bWJlclxuLyoqXG4gKiBUaGUgdHlwZSBvZiBuZXR3b3JrIGludGVyZmFjZS4gVG8gY3JlYXRlIGFuIEVsYXN0aWMgRmFicmljIEFkYXB0ZXIgKEVGQSksIHNwZWNpZnkgYGBlZmFgYCBvciBgYGVmYWBgLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtFbGFzdGljIEZhYnJpYyBBZGFwdGVyXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTRUMyL2xhdGVzdC9Vc2VyR3VpZGUvZWZhLmh0bWwpIGluIHRoZSAqQW1hem9uIEVDMiBVc2VyIEd1aWRlKi5cbiAqICBJZiB5b3UgYXJlIG5vdCBjcmVhdGluZyBhbiBFRkEsIHNwZWNpZnkgYGBpbnRlcmZhY2VgYCBvciBvbWl0IHRoaXMgcGFyYW1ldGVyLlxuICogIElmIHlvdSBzcGVjaWZ5IGBgZWZhLW9ubHlgYCwgZG8gbm90IGFzc2lnbiBhbnkgSVAgYWRkcmVzc2VzIHRvIHRoZSBuZXR3b3JrIGludGVyZmFjZS4gRUZBLW9ubHkgbmV0d29yayBpbnRlcmZhY2VzIGRvIG5vdCBzdXBwb3J0IElQIGFkZHJlc3Nlcy5cbiAqICBWYWxpZCB2YWx1ZXM6IGBgaW50ZXJmYWNlYGAgfCBgYGVmYWBgIHwgYGBlZmEtb25seWBgXG4gKi9cbkludGVyZmFjZVR5cGU/OiBzdHJpbmdcbi8qKlxuICogQXNzb2NpYXRlcyBhIENhcnJpZXIgSVAgYWRkcmVzcyB3aXRoIGV0aDAgZm9yIGEgbmV3IG5ldHdvcmsgaW50ZXJmYWNlLlxuICogIFVzZSB0aGlzIG9wdGlvbiB3aGVuIHlvdSBsYXVuY2ggYW4gaW5zdGFuY2UgaW4gYSBXYXZlbGVuZ3RoIFpvbmUgYW5kIHdhbnQgdG8gYXNzb2NpYXRlIGEgQ2FycmllciBJUCBhZGRyZXNzIHdpdGggdGhlIG5ldHdvcmsgaW50ZXJmYWNlLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCBDYXJyaWVyIElQIGFkZHJlc3Nlcywgc2VlIFtDYXJyaWVyIElQIGFkZHJlc3Nlc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3dhdmVsZW5ndGgvbGF0ZXN0L2RldmVsb3Blcmd1aWRlL2hvdy13YXZlbGVuZ3Rocy13b3JrLmh0bWwjcHJvdmlkZXItb3duZWQtaXApIGluIHRoZSAqRGV2ZWxvcGVyIEd1aWRlKi5cbiAqL1xuQXNzb2NpYXRlQ2FycmllcklwQWRkcmVzcz86IGJvb2xlYW5cbkVuYVNyZFNwZWNpZmljYXRpb24/OiBFbmFTcmRTcGVjaWZpY2F0aW9uXG4vKipcbiAqIFRoZSBudW1iZXIgb2YgSVB2NiBhZGRyZXNzZXMgdG8gYXNzaWduIHRvIGEgbmV0d29yayBpbnRlcmZhY2UuIEFtYXpvbiBFQzIgYXV0b21hdGljYWxseSBzZWxlY3RzIHRoZSBJUHY2IGFkZHJlc3NlcyBmcm9tIHRoZSBzdWJuZXQgcmFuZ2UuIFlvdSBjYW4ndCB1c2UgdGhpcyBvcHRpb24gaWYgc3BlY2lmeWluZyBzcGVjaWZpYyBJUHY2IGFkZHJlc3Nlcy5cbiAqL1xuSXB2NkFkZHJlc3NDb3VudD86IG51bWJlclxuLyoqXG4gKiBUaGUgSURzIG9mIG9uZSBvciBtb3JlIHNlY3VyaXR5IGdyb3Vwcy5cbiAqL1xuR3JvdXBzPzogc3RyaW5nW11cbi8qKlxuICogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIG5ldHdvcmsgaW50ZXJmYWNlIGlzIGRlbGV0ZWQgd2hlbiB0aGUgaW5zdGFuY2UgaXMgdGVybWluYXRlZC5cbiAqL1xuRGVsZXRlT25UZXJtaW5hdGlvbj86IGJvb2xlYW5cbkNvbm5lY3Rpb25UcmFja2luZ1NwZWNpZmljYXRpb24/OiBDb25uZWN0aW9uVHJhY2tpbmdTcGVjaWZpY2F0aW9uXG59XG4vKipcbiAqIFNwZWNpZmllcyBhIHNlY29uZGFyeSBwcml2YXRlIElQdjQgYWRkcmVzcyBmb3IgYSBuZXR3b3JrIGludGVyZmFjZS5cbiAqICAgYGBQcml2YXRlSXBBZGRgYCBpcyBhIHByb3BlcnR5IG9mIFtBV1M6OkVDMjo6TGF1bmNoVGVtcGxhdGUgTmV0d29ya0ludGVyZmFjZV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtZWMyLWxhdW5jaHRlbXBsYXRlLW5ldHdvcmtpbnRlcmZhY2UuaHRtbCkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJpdmF0ZUlwQWRkIHtcbi8qKlxuICogVGhlIHByaXZhdGUgSVB2NCBhZGRyZXNzLlxuICovXG5Qcml2YXRlSXBBZGRyZXNzPzogc3RyaW5nXG4vKipcbiAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBwcml2YXRlIElQdjQgYWRkcmVzcyBpcyB0aGUgcHJpbWFyeSBwcml2YXRlIElQdjQgYWRkcmVzcy4gT25seSBvbmUgSVB2NCBhZGRyZXNzIGNhbiBiZSBkZXNpZ25hdGVkIGFzIHByaW1hcnkuXG4gKi9cblByaW1hcnk/OiBib29sZWFuXG59XG4vKipcbiAqIFNwZWNpZmllcyBhbiBJUHY0IHByZWZpeCBmb3IgYSBuZXR3b3JrIGludGVyZmFjZS5cbiAqICAgYGBJcHY0UHJlZml4U3BlY2lmaWNhdGlvbmBgIGlzIGEgcHJvcGVydHkgb2YgW0FXUzo6RUMyOjpMYXVuY2hUZW1wbGF0ZSBOZXR3b3JrSW50ZXJmYWNlXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1lYzItbGF1bmNodGVtcGxhdGUtbmV0d29ya2ludGVyZmFjZS5odG1sKS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJcHY0UHJlZml4U3BlY2lmaWNhdGlvbiB7XG4vKipcbiAqIFRoZSBJUHY0IHByZWZpeC4gRm9yIGluZm9ybWF0aW9uLCBzZWUgW0Fzc2lnbmluZyBwcmVmaXhlcyB0byBuZXR3b3JrIGludGVyZmFjZXNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NFQzIvbGF0ZXN0L1VzZXJHdWlkZS9lYzItcHJlZml4LWVuaS5odG1sKSBpbiB0aGUgKkFtYXpvbiBFQzIgVXNlciBHdWlkZSouXG4gKi9cbklwdjRQcmVmaXg/OiBzdHJpbmdcbn1cbi8qKlxuICogU3BlY2lmaWVzIGFuIElQdjYgcHJlZml4IGZvciBhIG5ldHdvcmsgaW50ZXJmYWNlLlxuICogICBgYElwdjZQcmVmaXhTcGVjaWZpY2F0aW9uYGAgaXMgYSBwcm9wZXJ0eSBvZiBbQVdTOjpFQzI6OkxhdW5jaFRlbXBsYXRlIE5ldHdvcmtJbnRlcmZhY2VdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLWVjMi1sYXVuY2h0ZW1wbGF0ZS1uZXR3b3JraW50ZXJmYWNlLmh0bWwpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElwdjZQcmVmaXhTcGVjaWZpY2F0aW9uIHtcbi8qKlxuICogVGhlIElQdjYgcHJlZml4LlxuICovXG5JcHY2UHJlZml4Pzogc3RyaW5nXG59XG4vKipcbiAqIFNwZWNpZmllcyBhbiBJUHY2IGFkZHJlc3MgaW4gYW4gQW1hem9uIEVDMiBsYXVuY2ggdGVtcGxhdGUuXG4gKiAgIGBgSXB2NkFkZGBgIGlzIGEgcHJvcGVydHkgb2YgW0FXUzo6RUMyOjpMYXVuY2hUZW1wbGF0ZSBOZXR3b3JrSW50ZXJmYWNlXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1lYzItbGF1bmNodGVtcGxhdGUtbmV0d29ya2ludGVyZmFjZS5odG1sKS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJcHY2QWRkIHtcbi8qKlxuICogT25lIG9yIG1vcmUgc3BlY2lmaWMgSVB2NiBhZGRyZXNzZXMgZnJvbSB0aGUgSVB2NiBDSURSIGJsb2NrIHJhbmdlIG9mIHlvdXIgc3VibmV0LiBZb3UgY2FuJ3QgdXNlIHRoaXMgb3B0aW9uIGlmIHlvdSdyZSBzcGVjaWZ5aW5nIGEgbnVtYmVyIG9mIElQdjYgYWRkcmVzc2VzLlxuICovXG5JcHY2QWRkcmVzcz86IHN0cmluZ1xufVxuLyoqXG4gKiBUaGUgRU5BIEV4cHJlc3MgY29uZmlndXJhdGlvbiBmb3IgdGhlIG5ldHdvcmsgaW50ZXJmYWNlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEVuYVNyZFNwZWNpZmljYXRpb24ge1xuLyoqXG4gKiBJbmRpY2F0ZXMgd2hldGhlciBFTkEgRXhwcmVzcyBpcyBlbmFibGVkIGZvciB0aGUgbmV0d29yayBpbnRlcmZhY2UuXG4gKi9cbkVuYVNyZEVuYWJsZWQ/OiBib29sZWFuXG5FbmFTcmRVZHBTcGVjaWZpY2F0aW9uPzogRW5hU3JkVWRwU3BlY2lmaWNhdGlvblxufVxuLyoqXG4gKiBDb25maWd1cmVzIEVOQSBFeHByZXNzIGZvciBVRFAgbmV0d29yayB0cmFmZmljLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEVuYVNyZFVkcFNwZWNpZmljYXRpb24ge1xuLyoqXG4gKiBJbmRpY2F0ZXMgd2hldGhlciBVRFAgdHJhZmZpYyB0byBhbmQgZnJvbSB0aGUgaW5zdGFuY2UgdXNlcyBFTkEgRXhwcmVzcy4gVG8gc3BlY2lmeSB0aGlzIHNldHRpbmcsIHlvdSBtdXN0IGZpcnN0IGVuYWJsZSBFTkEgRXhwcmVzcy5cbiAqL1xuRW5hU3JkVWRwRW5hYmxlZD86IGJvb2xlYW5cbn1cbi8qKlxuICogQSBjb25uZWN0aW9uIHRyYWNraW5nIHNwZWNpZmljYXRpb24gZm9yIHRoZSBuZXR3b3JrIGludGVyZmFjZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb25uZWN0aW9uVHJhY2tpbmdTcGVjaWZpY2F0aW9uIHtcbi8qKlxuICogVGltZW91dCAoaW4gc2Vjb25kcykgZm9yIGlkbGUgVURQIGZsb3dzIHRoYXQgaGF2ZSBzZWVuIHRyYWZmaWMgb25seSBpbiBhIHNpbmdsZSBkaXJlY3Rpb24gb3IgYSBzaW5nbGUgcmVxdWVzdC1yZXNwb25zZSB0cmFuc2FjdGlvbi4gTWluOiAzMCBzZWNvbmRzLiBNYXg6IDYwIHNlY29uZHMuIERlZmF1bHQ6IDMwIHNlY29uZHMuXG4gKi9cblVkcFRpbWVvdXQ/OiBudW1iZXJcbi8qKlxuICogVGltZW91dCAoaW4gc2Vjb25kcykgZm9yIGlkbGUgVENQIGNvbm5lY3Rpb25zIGluIGFuIGVzdGFibGlzaGVkIHN0YXRlLiBNaW46IDYwIHNlY29uZHMuIE1heDogNDMyMDAwIHNlY29uZHMgKDUgZGF5cykuIERlZmF1bHQ6IDQzMjAwMCBzZWNvbmRzLiBSZWNvbW1lbmRlZDogTGVzcyB0aGFuIDQzMjAwMCBzZWNvbmRzLlxuICovXG5UY3BFc3RhYmxpc2hlZFRpbWVvdXQ/OiBudW1iZXJcbi8qKlxuICogVGltZW91dCAoaW4gc2Vjb25kcykgZm9yIGlkbGUgVURQIGZsb3dzIGNsYXNzaWZpZWQgYXMgc3RyZWFtcyB3aGljaCBoYXZlIHNlZW4gbW9yZSB0aGFuIG9uZSByZXF1ZXN0LXJlc3BvbnNlIHRyYW5zYWN0aW9uLiBNaW46IDYwIHNlY29uZHMuIE1heDogMTgwIHNlY29uZHMgKDMgbWludXRlcykuIERlZmF1bHQ6IDE4MCBzZWNvbmRzLlxuICovXG5VZHBTdHJlYW1UaW1lb3V0PzogbnVtYmVyXG59XG4vKipcbiAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBpbnN0YW5jZSBpcyBlbmFibGVkIGZvciBBV1MgTml0cm8gRW5jbGF2ZXMuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW1doYXQgaXMgTml0cm8gRW5jbGF2ZXM/XShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZW5jbGF2ZXMvbGF0ZXN0L3VzZXIvbml0cm8tZW5jbGF2ZS5odG1sKSBpbiB0aGUgKk5pdHJvIEVuY2xhdmVzIFVzZXIgR3VpZGUqLlxuICogIFlvdSBjYW4ndCBlbmFibGUgQVdTIE5pdHJvIEVuY2xhdmVzIGFuZCBoaWJlcm5hdGlvbiBvbiB0aGUgc2FtZSBpbnN0YW5jZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFbmNsYXZlT3B0aW9ucyB7XG4vKipcbiAqIElmIHRoaXMgcGFyYW1ldGVyIGlzIHNldCB0byBgYHRydWVgYCwgdGhlIGluc3RhbmNlIGlzIGVuYWJsZWQgZm9yIEFXUyBOaXRybyBFbmNsYXZlczsgb3RoZXJ3aXNlLCBpdCBpcyBub3QgZW5hYmxlZCBmb3IgQVdTIE5pdHJvIEVuY2xhdmVzLlxuICovXG5FbmFibGVkPzogYm9vbGVhblxufVxuLyoqXG4gKiBUaGUgbW9uaXRvcmluZyBmb3IgdGhlIGluc3RhbmNlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1vbml0b3Jpbmcge1xuLyoqXG4gKiBTcGVjaWZ5IGBgdHJ1ZWBgIHRvIGVuYWJsZSBkZXRhaWxlZCBtb25pdG9yaW5nLiBPdGhlcndpc2UsIGJhc2ljIG1vbml0b3JpbmcgaXMgZW5hYmxlZC5cbiAqL1xuRW5hYmxlZD86IGJvb2xlYW5cbn1cbi8qKlxuICogSW5kaWNhdGVzIHdoZXRoZXIgYW4gaW5zdGFuY2UgaXMgZW5hYmxlZCBmb3IgaGliZXJuYXRpb24uIFRoaXMgcGFyYW1ldGVyIGlzIHZhbGlkIG9ubHkgaWYgdGhlIGluc3RhbmNlIG1lZXRzIHRoZSBbaGliZXJuYXRpb24gcHJlcmVxdWlzaXRlc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0VDMi9sYXRlc3QvVXNlckd1aWRlL2hpYmVybmF0aW5nLXByZXJlcXVpc2l0ZXMuaHRtbCkuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW0hpYmVybmF0ZSB5b3VyIEFtYXpvbiBFQzIgaW5zdGFuY2VdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NFQzIvbGF0ZXN0L1VzZXJHdWlkZS9IaWJlcm5hdGUuaHRtbCkgaW4gdGhlICpBbWF6b24gRUMyIFVzZXIgR3VpZGUqLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEhpYmVybmF0aW9uT3B0aW9ucyB7XG4vKipcbiAqIElmIHlvdSBzZXQgdGhpcyBwYXJhbWV0ZXIgdG8gYGB0cnVlYGAsIHRoZSBpbnN0YW5jZSBpcyBlbmFibGVkIGZvciBoaWJlcm5hdGlvbi5cbiAqICBEZWZhdWx0OiBgYGZhbHNlYGBcbiAqL1xuQ29uZmlndXJlZD86IGJvb2xlYW5cbn1cbi8qKlxuICogVGhlIG1ldGFkYXRhIG9wdGlvbnMgZm9yIHRoZSBpbnN0YW5jZS4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbSW5zdGFuY2UgbWV0YWRhdGEgYW5kIHVzZXIgZGF0YV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0VDMi9sYXRlc3QvVXNlckd1aWRlL2VjMi1pbnN0YW5jZS1tZXRhZGF0YS5odG1sKSBpbiB0aGUgKkFtYXpvbiBFQzIgVXNlciBHdWlkZSouXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWV0YWRhdGFPcHRpb25zIHtcbi8qKlxuICogVGhlIGRlc2lyZWQgSFRUUCBQVVQgcmVzcG9uc2UgaG9wIGxpbWl0IGZvciBpbnN0YW5jZSBtZXRhZGF0YSByZXF1ZXN0cy4gVGhlIGxhcmdlciB0aGUgbnVtYmVyLCB0aGUgZnVydGhlciBpbnN0YW5jZSBtZXRhZGF0YSByZXF1ZXN0cyBjYW4gdHJhdmVsLlxuICogIERlZmF1bHQ6IGBgMWBgIFxuICogIFBvc3NpYmxlIHZhbHVlczogSW50ZWdlcnMgZnJvbSAxIHRvIDY0XG4gKi9cbkh0dHBQdXRSZXNwb25zZUhvcExpbWl0PzogbnVtYmVyXG4vKipcbiAqIEluZGljYXRlcyB3aGV0aGVyIElNRFN2MiBpcyByZXF1aXJlZC5cbiAqICAgKyAgIGBgb3B0aW9uYWxgYCAtIElNRFN2MiBpcyBvcHRpb25hbC4gWW91IGNhbiBjaG9vc2Ugd2hldGhlciB0byBzZW5kIGEgc2Vzc2lvbiB0b2tlbiBpbiB5b3VyIGluc3RhbmNlIG1ldGFkYXRhIHJldHJpZXZhbCByZXF1ZXN0cy4gSWYgeW91IHJldHJpZXZlIElBTSByb2xlIGNyZWRlbnRpYWxzIHdpdGhvdXQgYSBzZXNzaW9uIHRva2VuLCB5b3UgcmVjZWl2ZSB0aGUgSU1EU3YxIHJvbGUgY3JlZGVudGlhbHMuIElmIHlvdSByZXRyaWV2ZSBJQU0gcm9sZSBjcmVkZW50aWFscyB1c2luZyBhIHZhbGlkIHNlc3Npb24gdG9rZW4sIHlvdSByZWNlaXZlIHRoZSBJTURTdjIgcm9sZSBjcmVkZW50aWFscy5cbiAqICAgKyAgIGBgcmVxdWlyZWRgYCAtIElNRFN2MiBpcyByZXF1aXJlZC4gWW91IG11c3Qgc2VuZCBhIHNlc3Npb24gdG9rZW4gaW4geW91ciBpbnN0YW5jZSBtZXRhZGF0YSByZXRyaWV2YWwgcmVxdWVzdHMuIFdpdGggdGhpcyBvcHRpb24sIHJldHJpZXZpbmcgdGhlIElBTSByb2xlIGNyZWRlbnRpYWxzIGFsd2F5cyByZXR1cm5zIElNRFN2MiBjcmVkZW50aWFsczsgSU1EU3YxIGNyZWRlbnRpYWxzIGFyZSBub3QgYXZhaWxhYmxlLlxuICogICBcbiAqICBEZWZhdWx0OiBJZiB0aGUgdmFsdWUgb2YgYGBJbWRzU3VwcG9ydGBgIGZvciB0aGUgQW1hem9uIE1hY2hpbmUgSW1hZ2UgKEFNSSkgZm9yIHlvdXIgaW5zdGFuY2UgaXMgYGB2Mi4wYGAsIHRoZSBkZWZhdWx0IGlzIGBgcmVxdWlyZWRgYC5cbiAqL1xuSHR0cFRva2Vucz86IHN0cmluZ1xuLyoqXG4gKiBFbmFibGVzIG9yIGRpc2FibGVzIHRoZSBJUHY2IGVuZHBvaW50IGZvciB0aGUgaW5zdGFuY2UgbWV0YWRhdGEgc2VydmljZS5cbiAqICBEZWZhdWx0OiBgYGRpc2FibGVkYGBcbiAqL1xuSHR0cFByb3RvY29sSXB2Nj86IHN0cmluZ1xuLyoqXG4gKiBTZXQgdG8gYGBlbmFibGVkYGAgdG8gYWxsb3cgYWNjZXNzIHRvIGluc3RhbmNlIHRhZ3MgZnJvbSB0aGUgaW5zdGFuY2UgbWV0YWRhdGEuIFNldCB0byBgYGRpc2FibGVkYGAgdG8gdHVybiBvZmYgYWNjZXNzIHRvIGluc3RhbmNlIHRhZ3MgZnJvbSB0aGUgaW5zdGFuY2UgbWV0YWRhdGEuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW1dvcmsgd2l0aCBpbnN0YW5jZSB0YWdzIHVzaW5nIHRoZSBpbnN0YW5jZSBtZXRhZGF0YV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0VDMi9sYXRlc3QvVXNlckd1aWRlL1VzaW5nX1RhZ3MuaHRtbCN3b3JrLXdpdGgtdGFncy1pbi1JTURTKS5cbiAqICBEZWZhdWx0OiBgYGRpc2FibGVkYGBcbiAqL1xuSW5zdGFuY2VNZXRhZGF0YVRhZ3M/OiBzdHJpbmdcbi8qKlxuICogRW5hYmxlcyBvciBkaXNhYmxlcyB0aGUgSFRUUCBtZXRhZGF0YSBlbmRwb2ludCBvbiB5b3VyIGluc3RhbmNlcy4gSWYgdGhlIHBhcmFtZXRlciBpcyBub3Qgc3BlY2lmaWVkLCB0aGUgZGVmYXVsdCBzdGF0ZSBpcyBgYGVuYWJsZWRgYC5cbiAqICAgSWYgeW91IHNwZWNpZnkgYSB2YWx1ZSBvZiBgYGRpc2FibGVkYGAsIHlvdSB3aWxsIG5vdCBiZSBhYmxlIHRvIGFjY2VzcyB5b3VyIGluc3RhbmNlIG1ldGFkYXRhLlxuICovXG5IdHRwRW5kcG9pbnQ/OiBzdHJpbmdcbn1cbi8qKlxuICogU3BlY2lmaWVzIGEgbGljZW5zZSBjb25maWd1cmF0aW9uIGZvciBhbiBpbnN0YW5jZS5cbiAqICAgYGBMaWNlbnNlU3BlY2lmaWNhdGlvbmBgIGlzIGEgcHJvcGVydHkgb2YgW0FXUzo6RUMyOjpMYXVuY2hUZW1wbGF0ZSBMYXVuY2hUZW1wbGF0ZURhdGFdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLWVjMi1sYXVuY2h0ZW1wbGF0ZS1sYXVuY2h0ZW1wbGF0ZWRhdGEuaHRtbCkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTGljZW5zZVNwZWNpZmljYXRpb24ge1xuLyoqXG4gKiBUaGUgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTikgb2YgdGhlIGxpY2Vuc2UgY29uZmlndXJhdGlvbi5cbiAqL1xuTGljZW5zZUNvbmZpZ3VyYXRpb25Bcm4/OiBzdHJpbmdcbn1cbi8qKlxuICogVGhlIENQVSBvcHRpb25zIGZvciB0aGUgaW5zdGFuY2UuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW09wdGltaXplIENQVSBvcHRpb25zXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTRUMyL2xhdGVzdC9Vc2VyR3VpZGUvaW5zdGFuY2Utb3B0aW1pemUtY3B1Lmh0bWwpIGluIHRoZSAqQW1hem9uIEVDMiBVc2VyIEd1aWRlKi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDcHVPcHRpb25zIHtcbi8qKlxuICogVGhlIG51bWJlciBvZiB0aHJlYWRzIHBlciBDUFUgY29yZS4gVG8gZGlzYWJsZSBtdWx0aXRocmVhZGluZyBmb3IgdGhlIGluc3RhbmNlLCBzcGVjaWZ5IGEgdmFsdWUgb2YgYGAxYGAuIE90aGVyd2lzZSwgc3BlY2lmeSB0aGUgZGVmYXVsdCB2YWx1ZSBvZiBgYDJgYC5cbiAqL1xuVGhyZWFkc1BlckNvcmU/OiBudW1iZXJcbi8qKlxuICogSW5kaWNhdGVzIHdoZXRoZXIgdG8gZW5hYmxlIHRoZSBpbnN0YW5jZSBmb3IgQU1EIFNFVi1TTlAuIEFNRCBTRVYtU05QIGlzIHN1cHBvcnRlZCB3aXRoIE02YSwgUjZhLCBhbmQgQzZhIGluc3RhbmNlIHR5cGVzIG9ubHkuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW0FNRCBTRVYtU05QXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTRUMyL2xhdGVzdC9Vc2VyR3VpZGUvc2V2LXNucC5odG1sKS5cbiAqL1xuQW1kU2V2U25wPzogKFwiZW5hYmxlZFwiIHwgXCJkaXNhYmxlZFwiKVxuLyoqXG4gKiBUaGUgbnVtYmVyIG9mIENQVSBjb3JlcyBmb3IgdGhlIGluc3RhbmNlLlxuICovXG5Db3JlQ291bnQ/OiBudW1iZXJcbn1cbi8qKlxuICogVGhlIGhvc3RuYW1lIHR5cGUgZm9yIEVDMiBpbnN0YW5jZXMgbGF1bmNoZWQgaW50byB0aGlzIHN1Ym5ldCBhbmQgaG93IEROUyBBIGFuZCBBQUFBIHJlY29yZCBxdWVyaWVzIHNob3VsZCBiZSBoYW5kbGVkLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtBbWF6b24gRUMyIGluc3RhbmNlIGhvc3RuYW1lIHR5cGVzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTRUMyL2xhdGVzdC9Vc2VyR3VpZGUvZWMyLWluc3RhbmNlLW5hbWluZy5odG1sKSBpbiB0aGUgKlVzZXIgR3VpZGUqLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFByaXZhdGVEbnNOYW1lT3B0aW9ucyB7XG4vKipcbiAqIEluZGljYXRlcyB3aGV0aGVyIHRvIHJlc3BvbmQgdG8gRE5TIHF1ZXJpZXMgZm9yIGluc3RhbmNlIGhvc3RuYW1lcyB3aXRoIEROUyBBIHJlY29yZHMuXG4gKi9cbkVuYWJsZVJlc291cmNlTmFtZURuc0FSZWNvcmQ/OiBib29sZWFuXG4vKipcbiAqIFRoZSB0eXBlIG9mIGhvc3RuYW1lIGZvciBFQzIgaW5zdGFuY2VzLiBGb3IgSVB2NCBvbmx5IHN1Ym5ldHMsIGFuIGluc3RhbmNlIEROUyBuYW1lIG11c3QgYmUgYmFzZWQgb24gdGhlIGluc3RhbmNlIElQdjQgYWRkcmVzcy4gRm9yIElQdjYgb25seSBzdWJuZXRzLCBhbiBpbnN0YW5jZSBETlMgbmFtZSBtdXN0IGJlIGJhc2VkIG9uIHRoZSBpbnN0YW5jZSBJRC4gRm9yIGR1YWwtc3RhY2sgc3VibmV0cywgeW91IGNhbiBzcGVjaWZ5IHdoZXRoZXIgRE5TIG5hbWVzIHVzZSB0aGUgaW5zdGFuY2UgSVB2NCBhZGRyZXNzIG9yIHRoZSBpbnN0YW5jZSBJRC4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbQW1hem9uIEVDMiBpbnN0YW5jZSBob3N0bmFtZSB0eXBlc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0VDMi9sYXRlc3QvVXNlckd1aWRlL2VjMi1pbnN0YW5jZS1uYW1pbmcuaHRtbCkgaW4gdGhlICpVc2VyIEd1aWRlKi5cbiAqL1xuSG9zdG5hbWVUeXBlPzogc3RyaW5nXG4vKipcbiAqIEluZGljYXRlcyB3aGV0aGVyIHRvIHJlc3BvbmQgdG8gRE5TIHF1ZXJpZXMgZm9yIGluc3RhbmNlIGhvc3RuYW1lcyB3aXRoIEROUyBBQUFBIHJlY29yZHMuXG4gKi9cbkVuYWJsZVJlc291cmNlTmFtZURuc0FBQUFSZWNvcmQ/OiBib29sZWFuXG59XG4vKipcbiAqIFRoZSBtYXJrZXQgKHB1cmNoYXNpbmcpIG9wdGlvbiBmb3IgdGhlIGluc3RhbmNlcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbnN0YW5jZU1hcmtldE9wdGlvbnMge1xuU3BvdE9wdGlvbnM/OiBTcG90T3B0aW9uc1xuLyoqXG4gKiBUaGUgbWFya2V0IHR5cGUuXG4gKi9cbk1hcmtldFR5cGU/OiBzdHJpbmdcbn1cbi8qKlxuICogVGhlIG9wdGlvbnMgZm9yIFNwb3QgSW5zdGFuY2VzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNwb3RPcHRpb25zIHtcbi8qKlxuICogVGhlIFNwb3QgSW5zdGFuY2UgcmVxdWVzdCB0eXBlLlxuICogIElmIHlvdSBhcmUgdXNpbmcgU3BvdCBJbnN0YW5jZXMgd2l0aCBhbiBBdXRvIFNjYWxpbmcgZ3JvdXAsIHVzZSBgYG9uZS10aW1lYGAgcmVxdWVzdHMsIGFzIHRoZSBBU2xvbmcgc2VydmljZSBoYW5kbGVzIHJlcXVlc3RpbmcgbmV3IFNwb3QgSW5zdGFuY2VzIHdoZW5ldmVyIHRoZSBncm91cCBpcyBiZWxvdyBpdHMgZGVzaXJlZCBjYXBhY2l0eS5cbiAqL1xuU3BvdEluc3RhbmNlVHlwZT86IHN0cmluZ1xuLyoqXG4gKiBUaGUgYmVoYXZpb3Igd2hlbiBhIFNwb3QgSW5zdGFuY2UgaXMgaW50ZXJydXB0ZWQuIFRoZSBkZWZhdWx0IGlzIGBgdGVybWluYXRlYGAuXG4gKi9cbkluc3RhbmNlSW50ZXJydXB0aW9uQmVoYXZpb3I/OiBzdHJpbmdcbi8qKlxuICogVGhlIG1heGltdW0gaG91cmx5IHByaWNlIHlvdSdyZSB3aWxsaW5nIHRvIHBheSBmb3IgdGhlIFNwb3QgSW5zdGFuY2VzLiBXZSBkbyBub3QgcmVjb21tZW5kIHVzaW5nIHRoaXMgcGFyYW1ldGVyIGJlY2F1c2UgaXQgY2FuIGxlYWQgdG8gaW5jcmVhc2VkIGludGVycnVwdGlvbnMuIElmIHlvdSBkbyBub3Qgc3BlY2lmeSB0aGlzIHBhcmFtZXRlciwgeW91IHdpbGwgcGF5IHRoZSBjdXJyZW50IFNwb3QgcHJpY2UuXG4gKiAgIElmIHlvdSBzcGVjaWZ5IGEgbWF4aW11bSBwcmljZSwgeW91ciBTcG90IEluc3RhbmNlcyB3aWxsIGJlIGludGVycnVwdGVkIG1vcmUgZnJlcXVlbnRseSB0aGFuIGlmIHlvdSBkbyBub3Qgc3BlY2lmeSB0aGlzIHBhcmFtZXRlci5cbiAqL1xuTWF4UHJpY2U/OiBzdHJpbmdcbi8qKlxuICogRGVwcmVjYXRlZC5cbiAqL1xuQmxvY2tEdXJhdGlvbk1pbnV0ZXM/OiBudW1iZXJcbi8qKlxuICogVGhlIGVuZCBkYXRlIG9mIHRoZSByZXF1ZXN0LCBpbiBVVEMgZm9ybWF0ICgqWVlZWS1NTS1ERCpUKkhIOk1NOlNTKlopLiBTdXBwb3J0ZWQgb25seSBmb3IgcGVyc2lzdGVudCByZXF1ZXN0cy5cbiAqICAgKyAgRm9yIGEgcGVyc2lzdGVudCByZXF1ZXN0LCB0aGUgcmVxdWVzdCByZW1haW5zIGFjdGl2ZSB1bnRpbCB0aGUgYGBWYWxpZFVudGlsYGAgZGF0ZSBhbmQgdGltZSBpcyByZWFjaGVkLiBPdGhlcndpc2UsIHRoZSByZXF1ZXN0IHJlbWFpbnMgYWN0aXZlIHVudGlsIHlvdSBjYW5jZWwgaXQuXG4gKiAgICsgIEZvciBhIG9uZS10aW1lIHJlcXVlc3QsIGBgVmFsaWRVbnRpbGBgIGlzIG5vdCBzdXBwb3J0ZWQuIFRoZSByZXF1ZXN0IHJlbWFpbnMgYWN0aXZlIHVudGlsIGFsbCBpbnN0YW5jZXMgbGF1bmNoIG9yIHlvdSBjYW5jZWwgdGhlIHJlcXVlc3QuXG4gKiAgIFxuICogIERlZmF1bHQ6IDcgZGF5cyBmcm9tIHRoZSBjdXJyZW50IGRhdGVcbiAqL1xuVmFsaWRVbnRpbD86IHN0cmluZ1xufVxuLyoqXG4gKiBUaGUgYXR0cmlidXRlcyBmb3IgdGhlIGluc3RhbmNlIHR5cGVzLiBXaGVuIHlvdSBzcGVjaWZ5IGluc3RhbmNlIGF0dHJpYnV0ZXMsIEFtYXpvbiBFQzIgd2lsbCBpZGVudGlmeSBpbnN0YW5jZSB0eXBlcyB3aXRoIHRoZXNlIGF0dHJpYnV0ZXMuXG4gKiAgWW91IG11c3Qgc3BlY2lmeSBgYFZDcHVDb3VudGBgIGFuZCBgYE1lbW9yeU1pQmBgLiBBbGwgb3RoZXIgYXR0cmlidXRlcyBhcmUgb3B0aW9uYWwuIEFueSB1bnNwZWNpZmllZCBvcHRpb25hbCBhdHRyaWJ1dGUgaXMgc2V0IHRvIGl0cyBkZWZhdWx0LlxuICogIFdoZW4geW91IHNwZWNpZnkgbXVsdGlwbGUgYXR0cmlidXRlcywgeW91IGdldCBpbnN0YW5jZSB0eXBlcyB0aGF0IHNhdGlzZnkgYWxsIG9mIHRoZSBzcGVjaWZpZWQgYXR0cmlidXRlcy4gSWYgeW91IHNwZWNpZnkgbXVsdGlwbGUgdmFsdWVzIGZvciBhbiBhdHRyaWJ1dGUsIHlvdSBnZXQgaW5zdGFuY2UgdHlwZXMgdGhhdCBzYXRpc2Z5IGFueSBvZiB0aGUgc3BlY2lmaWVkIHZhbHVlcy5cbiAqICBUbyBsaW1pdCB0aGUgbGlzdCBvZiBpbnN0YW5jZSB0eXBlcyBmcm9tIHdoaWNoIEFtYXpvbiBFQzIgY2FuIGlkZW50aWZ5IG1hdGNoaW5nIGluc3RhbmNlIHR5cGVzLCB5b3UgY2FuIHVzZSBvbmUgb2YgdGhlIGZvbGxvd2luZyBwYXJhbWV0ZXJzLCBidXQgbm90IGJvdGggaW4gdGhlIHNhbWUgcmVxdWVzdDpcbiAqICAgKyAgIGBgQWxsb3dlZEluc3RhbmNlVHlwZXNgYCAtIFRoZSBpbnN0YW5jZSB0eXBlcyB0byBpbmNsdWRlIGluIHRoZSBsaXN0LiBBbGwgb3RoZXIgaW5zdGFuY2UgdHlwZXMgYXJlIGlnbm9yZWQsIGV2ZW4gaWYgdGhleSBtYXRjaCB5b3VyIHNwZWNpZmllZCBhdHRyaWJ1dGVzLlxuICogICArICAgYGBFeGNsdWRlZEluc3RhbmNlVHlwZXNgYCAtIFRoZSBpbnN0YW5jZSB0eXBlcyB0byBleGNsdWRlIGZyb20gdGhlIGxpc3QsIGV2ZW4gaWYgdGhleSBtYXRjaCB5b3VyIHNwZWNpZmllZCBhdHRyaWJ1dGVzLlxuICogICBcbiAqICAgSWYgeW91IHNwZWNpZnkgYGBJbnN0YW5jZVJlcXVpcmVtZW50c2BgLCB5b3UgY2FuJ3Qgc3BlY2lmeSBgYEluc3RhbmNlVHlwZWBgLlxuICogIEF0dHJpYnV0ZS1iYXNlZCBpbnN0YW5jZSB0eXBlIHNlbGVjdGlvbiBpcyBvbmx5IHN1cHBvcnRlZCB3aGVuIHVzaW5nIEF1dG8gU2NhbGluZyBncm91cHMsIEVDMiBGbGVldCwgYW5kIFNwb3QgRmxlZXQgdG8gbGF1bmNoIGluc3RhbmNlcy4gSWYgeW91IHBsYW4gdG8gdXNlIHRoZSBsYXVuY2ggdGVtcGxhdGUgaW4gdGhlIFtsYXVuY2ggaW5zdGFuY2Ugd2l6YXJkXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTRUMyL2xhdGVzdC9Vc2VyR3VpZGUvZWMyLWxhdW5jaC1pbnN0YW5jZS13aXphcmQuaHRtbCksIG9yIHdpdGggdGhlIFtSdW5JbnN0YW5jZXNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NFQzIvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfUnVuSW5zdGFuY2VzLmh0bWwpIEFQSSBvciBbQVdTOjpFQzI6Okluc3RhbmNlXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1lYzItaW5zdGFuY2UuaHRtbCkgQVdTIENsb3VkRm9ybWF0aW9uIHJlc291cmNlLCB5b3UgY2FuJ3Qgc3BlY2lmeSBgYEluc3RhbmNlUmVxdWlyZW1lbnRzYGAuXG4gKiAgIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW1NwZWNpZnkgYXR0cmlidXRlcyBmb3IgaW5zdGFuY2UgdHlwZSBzZWxlY3Rpb24gZm9yIEVDMiBGbGVldCBvciBTcG90IEZsZWV0XShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTRUMyL2xhdGVzdC9Vc2VyR3VpZGUvZWMyLWZsZWV0LWF0dHJpYnV0ZS1iYXNlZC1pbnN0YW5jZS10eXBlLXNlbGVjdGlvbi5odG1sKSBhbmQgW1Nwb3QgcGxhY2VtZW50IHNjb3JlXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTRUMyL2xhdGVzdC9Vc2VyR3VpZGUvc3BvdC1wbGFjZW1lbnQtc2NvcmUuaHRtbCkgaW4gdGhlICpBbWF6b24gRUMyIFVzZXIgR3VpZGUqLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEluc3RhbmNlUmVxdWlyZW1lbnRzIHtcbi8qKlxuICogSW5kaWNhdGVzIHdoZXRoZXIgY3VycmVudCBvciBwcmV2aW91cyBnZW5lcmF0aW9uIGluc3RhbmNlIHR5cGVzIGFyZSBpbmNsdWRlZC4gVGhlIGN1cnJlbnQgZ2VuZXJhdGlvbiBpbnN0YW5jZSB0eXBlcyBhcmUgcmVjb21tZW5kZWQgZm9yIHVzZS4gQ3VycmVudCBnZW5lcmF0aW9uIGluc3RhbmNlIHR5cGVzIGFyZSB0eXBpY2FsbHkgdGhlIGxhdGVzdCB0d28gdG8gdGhyZWUgZ2VuZXJhdGlvbnMgaW4gZWFjaCBpbnN0YW5jZSBmYW1pbHkuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW0luc3RhbmNlIHR5cGVzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTRUMyL2xhdGVzdC9Vc2VyR3VpZGUvaW5zdGFuY2UtdHlwZXMuaHRtbCkgaW4gdGhlICpBbWF6b24gRUMyIFVzZXIgR3VpZGUqLlxuICogIEZvciBjdXJyZW50IGdlbmVyYXRpb24gaW5zdGFuY2UgdHlwZXMsIHNwZWNpZnkgYGBjdXJyZW50YGAuXG4gKiAgRm9yIHByZXZpb3VzIGdlbmVyYXRpb24gaW5zdGFuY2UgdHlwZXMsIHNwZWNpZnkgYGBwcmV2aW91c2BgLlxuICogIERlZmF1bHQ6IEN1cnJlbnQgYW5kIHByZXZpb3VzIGdlbmVyYXRpb24gaW5zdGFuY2UgdHlwZXNcbiAqL1xuSW5zdGFuY2VHZW5lcmF0aW9ucz86IHN0cmluZ1tdXG5NZW1vcnlHaUJQZXJWQ3B1PzogTWVtb3J5R2lCUGVyVkNwdVxuLyoqXG4gKiBUaGUgYWNjZWxlcmF0b3IgdHlwZXMgdGhhdCBtdXN0IGJlIG9uIHRoZSBpbnN0YW5jZSB0eXBlLlxuICogICArICBGb3IgaW5zdGFuY2UgdHlwZXMgd2l0aCBGUEdBIGFjY2VsZXJhdG9ycywgc3BlY2lmeSBgYGZwZ2FgYC5cbiAqICAgKyAgRm9yIGluc3RhbmNlIHR5cGVzIHdpdGggR1BVIGFjY2VsZXJhdG9ycywgc3BlY2lmeSBgYGdwdWBgLlxuICogICArICBGb3IgaW5zdGFuY2UgdHlwZXMgd2l0aCBJbmZlcmVuY2UgYWNjZWxlcmF0b3JzLCBzcGVjaWZ5IGBgaW5mZXJlbmNlYGAuXG4gKiAgIFxuICogIERlZmF1bHQ6IEFueSBhY2NlbGVyYXRvciB0eXBlXG4gKi9cbkFjY2VsZXJhdG9yVHlwZXM/OiBzdHJpbmdbXVxuVkNwdUNvdW50PzogVkNwdUNvdW50XG4vKipcbiAqIEluZGljYXRlcyB3aGV0aGVyIGluc3RhbmNlIHR5cGVzIG11c3QgaGF2ZSBhY2NlbGVyYXRvcnMgYnkgc3BlY2lmaWMgbWFudWZhY3R1cmVycy5cbiAqICAgKyAgRm9yIGluc3RhbmNlIHR5cGVzIHdpdGggQVdTIGRldmljZXMsIHNwZWNpZnkgYGBhbWF6b24td2ViLXNlcnZpY2VzYGAuXG4gKiAgICsgIEZvciBpbnN0YW5jZSB0eXBlcyB3aXRoIEFNRCBkZXZpY2VzLCBzcGVjaWZ5IGBgYW1kYGAuXG4gKiAgICsgIEZvciBpbnN0YW5jZSB0eXBlcyB3aXRoIEhhYmFuYSBkZXZpY2VzLCBzcGVjaWZ5IGBgaGFiYW5hYGAuXG4gKiAgICsgIEZvciBpbnN0YW5jZSB0eXBlcyB3aXRoIE5WSURJQSBkZXZpY2VzLCBzcGVjaWZ5IGBgbnZpZGlhYGAuXG4gKiAgICsgIEZvciBpbnN0YW5jZSB0eXBlcyB3aXRoIFhpbGlueCBkZXZpY2VzLCBzcGVjaWZ5IGBgeGlsaW54YGAuXG4gKiAgIFxuICogIERlZmF1bHQ6IEFueSBtYW51ZmFjdHVyZXJcbiAqL1xuQWNjZWxlcmF0b3JNYW51ZmFjdHVyZXJzPzogc3RyaW5nW11cbi8qKlxuICogSW5kaWNhdGVzIHdoZXRoZXIgaW5zdGFuY2UgdHlwZXMgd2l0aCBpbnN0YW5jZSBzdG9yZSB2b2x1bWVzIGFyZSBpbmNsdWRlZCwgZXhjbHVkZWQsIG9yIHJlcXVpcmVkLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgW0FtYXpvbiBFQzIgaW5zdGFuY2Ugc3RvcmVdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NFQzIvbGF0ZXN0L1VzZXJHdWlkZS9JbnN0YW5jZVN0b3JhZ2UuaHRtbCkgaW4gdGhlICpBbWF6b24gRUMyIFVzZXIgR3VpZGUqLlxuICogICArICBUbyBpbmNsdWRlIGluc3RhbmNlIHR5cGVzIHdpdGggaW5zdGFuY2Ugc3RvcmUgdm9sdW1lcywgc3BlY2lmeSBgYGluY2x1ZGVkYGAuXG4gKiAgICsgIFRvIHJlcXVpcmUgb25seSBpbnN0YW5jZSB0eXBlcyB3aXRoIGluc3RhbmNlIHN0b3JlIHZvbHVtZXMsIHNwZWNpZnkgYGByZXF1aXJlZGBgLlxuICogICArICBUbyBleGNsdWRlIGluc3RhbmNlIHR5cGVzIHdpdGggaW5zdGFuY2Ugc3RvcmUgdm9sdW1lcywgc3BlY2lmeSBgYGV4Y2x1ZGVkYGAuXG4gKiAgIFxuICogIERlZmF1bHQ6IGBgaW5jbHVkZWRgYFxuICovXG5Mb2NhbFN0b3JhZ2U/OiBzdHJpbmdcbi8qKlxuICogVGhlIENQVSBtYW51ZmFjdHVyZXJzIHRvIGluY2x1ZGUuXG4gKiAgICsgIEZvciBpbnN0YW5jZSB0eXBlcyB3aXRoIEludGVsIENQVXMsIHNwZWNpZnkgYGBpbnRlbGBgLlxuICogICArICBGb3IgaW5zdGFuY2UgdHlwZXMgd2l0aCBBTUQgQ1BVcywgc3BlY2lmeSBgYGFtZGBgLlxuICogICArICBGb3IgaW5zdGFuY2UgdHlwZXMgd2l0aCBBV1MgQ1BVcywgc3BlY2lmeSBgYGFtYXpvbi13ZWItc2VydmljZXNgYC5cbiAqICAgKyAgRm9yIGluc3RhbmNlIHR5cGVzIHdpdGggQXBwbGUgQ1BVcywgc3BlY2lmeSBgYGFwcGxlYGAuXG4gKiAgIFxuICogICBEb24ndCBjb25mdXNlIHRoZSBDUFUgbWFudWZhY3R1cmVyIHdpdGggdGhlIENQVSBhcmNoaXRlY3R1cmUuIEluc3RhbmNlcyB3aWxsIGJlIGxhdW5jaGVkIHdpdGggYSBjb21wYXRpYmxlIENQVSBhcmNoaXRlY3R1cmUgYmFzZWQgb24gdGhlIEFtYXpvbiBNYWNoaW5lIEltYWdlIChBTUkpIHRoYXQgeW91IHNwZWNpZnkgaW4geW91ciBsYXVuY2ggdGVtcGxhdGUuXG4gKiAgIERlZmF1bHQ6IEFueSBtYW51ZmFjdHVyZXJcbiAqL1xuQ3B1TWFudWZhY3R1cmVycz86IHN0cmluZ1tdXG4vKipcbiAqIEluZGljYXRlcyB3aGV0aGVyIGJhcmUgbWV0YWwgaW5zdGFuY2UgdHlwZXMgbXVzdCBiZSBpbmNsdWRlZCwgZXhjbHVkZWQsIG9yIHJlcXVpcmVkLlxuICogICArICBUbyBpbmNsdWRlIGJhcmUgbWV0YWwgaW5zdGFuY2UgdHlwZXMsIHNwZWNpZnkgYGBpbmNsdWRlZGBgLlxuICogICArICBUbyByZXF1aXJlIG9ubHkgYmFyZSBtZXRhbCBpbnN0YW5jZSB0eXBlcywgc3BlY2lmeSBgYHJlcXVpcmVkYGAuXG4gKiAgICsgIFRvIGV4Y2x1ZGUgYmFyZSBtZXRhbCBpbnN0YW5jZSB0eXBlcywgc3BlY2lmeSBgYGV4Y2x1ZGVkYGAuXG4gKiAgIFxuICogIERlZmF1bHQ6IGBgZXhjbHVkZWRgYFxuICovXG5CYXJlTWV0YWw/OiBzdHJpbmdcbi8qKlxuICogSW5kaWNhdGVzIHdoZXRoZXIgaW5zdGFuY2UgdHlwZXMgbXVzdCBzdXBwb3J0IGhpYmVybmF0aW9uIGZvciBPbi1EZW1hbmQgSW5zdGFuY2VzLlxuICogIFRoaXMgcGFyYW1ldGVyIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIFtHZXRTcG90UGxhY2VtZW50U2NvcmVzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTRUMyL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0dldFNwb3RQbGFjZW1lbnRTY29yZXMuaHRtbCkuXG4gKiAgRGVmYXVsdDogYGBmYWxzZWBgXG4gKi9cblJlcXVpcmVIaWJlcm5hdGVTdXBwb3J0PzogYm9vbGVhblxuLyoqXG4gKiBbUHJpY2UgcHJvdGVjdGlvbl0gVGhlIHByaWNlIHByb3RlY3Rpb24gdGhyZXNob2xkIGZvciBTcG90IEluc3RhbmNlcywgYXMgYSBwZXJjZW50YWdlIG9mIGFuIGlkZW50aWZpZWQgT24tRGVtYW5kIHByaWNlLiBUaGUgaWRlbnRpZmllZCBPbi1EZW1hbmQgcHJpY2UgaXMgdGhlIHByaWNlIG9mIHRoZSBsb3dlc3QgcHJpY2VkIGN1cnJlbnQgZ2VuZXJhdGlvbiBDLCBNLCBvciBSIGluc3RhbmNlIHR5cGUgd2l0aCB5b3VyIHNwZWNpZmllZCBhdHRyaWJ1dGVzLiBJZiBubyBjdXJyZW50IGdlbmVyYXRpb24gQywgTSwgb3IgUiBpbnN0YW5jZSB0eXBlIG1hdGNoZXMgeW91ciBhdHRyaWJ1dGVzLCB0aGVuIHRoZSBpZGVudGlmaWVkIHByaWNlIGlzIGZyb20gdGhlIGxvd2VzdCBwcmljZWQgY3VycmVudCBnZW5lcmF0aW9uIGluc3RhbmNlIHR5cGVzLCBhbmQgZmFpbGluZyB0aGF0LCBmcm9tIHRoZSBsb3dlc3QgcHJpY2VkIHByZXZpb3VzIGdlbmVyYXRpb24gaW5zdGFuY2UgdHlwZXMgdGhhdCBtYXRjaCB5b3VyIGF0dHJpYnV0ZXMuIFdoZW4gQW1hem9uIEVDMiBzZWxlY3RzIGluc3RhbmNlIHR5cGVzIHdpdGggeW91ciBhdHRyaWJ1dGVzLCBpdCB3aWxsIGV4Y2x1ZGUgaW5zdGFuY2UgdHlwZXMgd2hvc2UgcHJpY2UgZXhjZWVkcyB5b3VyIHNwZWNpZmllZCB0aHJlc2hvbGQuXG4gKiAgVGhlIHBhcmFtZXRlciBhY2NlcHRzIGFuIGludGVnZXIsIHdoaWNoIEFtYXpvbiBFQzIgaW50ZXJwcmV0cyBhcyBhIHBlcmNlbnRhZ2UuXG4gKiAgSWYgeW91IHNldCBgYFRhcmdldENhcGFjaXR5VW5pdFR5cGVgYCB0byBgYHZjcHVgYCBvciBgYG1lbW9yeS1taWJgYCwgdGhlIHByaWNlIHByb3RlY3Rpb24gdGhyZXNob2xkIGlzIGJhc2VkIG9uIHRoZSBwZXIgdkNQVSBvciBwZXIgbWVtb3J5IHByaWNlIGluc3RlYWQgb2YgdGhlIHBlciBpbnN0YW5jZSBwcmljZS5cbiAqICAgT25seSBvbmUgb2YgYGBTcG90TWF4UHJpY2VQZXJjZW50YWdlT3Zlckxvd2VzdFByaWNlYGAgb3IgYGBNYXhTcG90UHJpY2VBc1BlcmNlbnRhZ2VPZk9wdGltYWxPbkRlbWFuZFByaWNlYGAgY2FuIGJlIHNwZWNpZmllZC4gSWYgeW91IGRvbid0IHNwZWNpZnkgZWl0aGVyLCBBbWF6b24gRUMyIHdpbGwgYXV0b21hdGljYWxseSBhcHBseSBvcHRpbWFsIHByaWNlIHByb3RlY3Rpb24gdG8gY29uc2lzdGVudGx5IHNlbGVjdCBmcm9tIGEgd2lkZSByYW5nZSBvZiBpbnN0YW5jZSB0eXBlcy4gVG8gaW5kaWNhdGUgbm8gcHJpY2UgcHJvdGVjdGlvbiB0aHJlc2hvbGQgZm9yIFNwb3QgSW5zdGFuY2VzLCBtZWFuaW5nIHlvdSB3YW50IHRvIGNvbnNpZGVyIGFsbCBpbnN0YW5jZSB0eXBlcyB0aGF0IG1hdGNoIHlvdXIgYXR0cmlidXRlcywgaW5jbHVkZSBvbmUgb2YgdGhlc2UgcGFyYW1ldGVycyBhbmQgc3BlY2lmeSBhIGhpZ2ggdmFsdWUsIHN1Y2ggYXMgYGA5OTk5OTlgYC5cbiAqL1xuTWF4U3BvdFByaWNlQXNQZXJjZW50YWdlT2ZPcHRpbWFsT25EZW1hbmRQcmljZT86IG51bWJlclxuLyoqXG4gKiBbUHJpY2UgcHJvdGVjdGlvbl0gVGhlIHByaWNlIHByb3RlY3Rpb24gdGhyZXNob2xkIGZvciBPbi1EZW1hbmQgSW5zdGFuY2VzLCBhcyBhIHBlcmNlbnRhZ2UgaGlnaGVyIHRoYW4gYW4gaWRlbnRpZmllZCBPbi1EZW1hbmQgcHJpY2UuIFRoZSBpZGVudGlmaWVkIE9uLURlbWFuZCBwcmljZSBpcyB0aGUgcHJpY2Ugb2YgdGhlIGxvd2VzdCBwcmljZWQgY3VycmVudCBnZW5lcmF0aW9uIEMsIE0sIG9yIFIgaW5zdGFuY2UgdHlwZSB3aXRoIHlvdXIgc3BlY2lmaWVkIGF0dHJpYnV0ZXMuIFdoZW4gQW1hem9uIEVDMiBzZWxlY3RzIGluc3RhbmNlIHR5cGVzIHdpdGggeW91ciBhdHRyaWJ1dGVzLCBpdCB3aWxsIGV4Y2x1ZGUgaW5zdGFuY2UgdHlwZXMgd2hvc2UgcHJpY2UgZXhjZWVkcyB5b3VyIHNwZWNpZmllZCB0aHJlc2hvbGQuXG4gKiAgVGhlIHBhcmFtZXRlciBhY2NlcHRzIGFuIGludGVnZXIsIHdoaWNoIEFtYXpvbiBFQzIgaW50ZXJwcmV0cyBhcyBhIHBlcmNlbnRhZ2UuXG4gKiAgVG8gdHVybiBvZmYgcHJpY2UgcHJvdGVjdGlvbiwgc3BlY2lmeSBhIGhpZ2ggdmFsdWUsIHN1Y2ggYXMgYGA5OTk5OTlgYC5cbiAqICBUaGlzIHBhcmFtZXRlciBpcyBub3Qgc3VwcG9ydGVkIGZvciBbR2V0U3BvdFBsYWNlbWVudFNjb3Jlc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0VDMi9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9HZXRTcG90UGxhY2VtZW50U2NvcmVzLmh0bWwpIGFuZCBbR2V0SW5zdGFuY2VUeXBlc0Zyb21JbnN0YW5jZVJlcXVpcmVtZW50c10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0VDMi9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9HZXRJbnN0YW5jZVR5cGVzRnJvbUluc3RhbmNlUmVxdWlyZW1lbnRzLmh0bWwpLlxuICogICBJZiB5b3Ugc2V0IGBgVGFyZ2V0Q2FwYWNpdHlVbml0VHlwZWBgIHRvIGBgdmNwdWBgIG9yIGBgbWVtb3J5LW1pYmBgLCB0aGUgcHJpY2UgcHJvdGVjdGlvbiB0aHJlc2hvbGQgaXMgYXBwbGllZCBiYXNlZCBvbiB0aGUgcGVyLXZDUFUgb3IgcGVyLW1lbW9yeSBwcmljZSBpbnN0ZWFkIG9mIHRoZSBwZXItaW5zdGFuY2UgcHJpY2UuXG4gKiAgIERlZmF1bHQ6IGBgMjBgYFxuICovXG5PbkRlbWFuZE1heFByaWNlUGVyY2VudGFnZU92ZXJMb3dlc3RQcmljZT86IG51bWJlclxuTWVtb3J5TWlCPzogTWVtb3J5TWlCXG4vKipcbiAqIFRoZSB0eXBlIG9mIGxvY2FsIHN0b3JhZ2UgdGhhdCBpcyByZXF1aXJlZC5cbiAqICAgKyAgRm9yIGluc3RhbmNlIHR5cGVzIHdpdGggaGFyZCBkaXNrIGRyaXZlIChIREQpIHN0b3JhZ2UsIHNwZWNpZnkgYGBoZGRgYC5cbiAqICAgKyAgRm9yIGluc3RhbmNlIHR5cGVzIHdpdGggc29saWQgc3RhdGUgZHJpdmUgKFNTRCkgc3RvcmFnZSwgc3BlY2lmeSBgYHNzZGBgLlxuICogICBcbiAqICBEZWZhdWx0OiBgYGhkZGBgIGFuZCBgYHNzZGBgXG4gKi9cbkxvY2FsU3RvcmFnZVR5cGVzPzogc3RyaW5nW11cbk5ldHdvcmtJbnRlcmZhY2VDb3VudD86IE5ldHdvcmtJbnRlcmZhY2VDb3VudFxuLyoqXG4gKiBUaGUgaW5zdGFuY2UgdHlwZXMgdG8gZXhjbHVkZS5cbiAqICBZb3UgY2FuIHVzZSBzdHJpbmdzIHdpdGggb25lIG9yIG1vcmUgd2lsZCBjYXJkcywgcmVwcmVzZW50ZWQgYnkgYW4gYXN0ZXJpc2sgKGBgKmBgKSwgdG8gZXhjbHVkZSBhbiBpbnN0YW5jZSB0eXBlLCBzaXplLCBvciBnZW5lcmF0aW9uLiBUaGUgZm9sbG93aW5nIGFyZSBleGFtcGxlczogYGBtNS44eGxhcmdlYGAsIGBgYzUqLipgYCwgYGBtNWEuKmBgLCBgYHIqYGAsIGBgKjMqYGAuXG4gKiAgRm9yIGV4YW1wbGUsIGlmIHlvdSBzcGVjaWZ5IGBgYzUqYGAsQW1hem9uIEVDMiB3aWxsIGV4Y2x1ZGUgdGhlIGVudGlyZSBDNSBpbnN0YW5jZSBmYW1pbHksIHdoaWNoIGluY2x1ZGVzIGFsbCBDNWEgYW5kIEM1biBpbnN0YW5jZSB0eXBlcy4gSWYgeW91IHNwZWNpZnkgYGBtNWEuKmBgLCBBbWF6b24gRUMyIHdpbGwgZXhjbHVkZSBhbGwgdGhlIE01YSBpbnN0YW5jZSB0eXBlcywgYnV0IG5vdCB0aGUgTTVuIGluc3RhbmNlIHR5cGVzLlxuICogICBJZiB5b3Ugc3BlY2lmeSBgYEV4Y2x1ZGVkSW5zdGFuY2VUeXBlc2BgLCB5b3UgY2FuJ3Qgc3BlY2lmeSBgYEFsbG93ZWRJbnN0YW5jZVR5cGVzYGAuXG4gKiAgIERlZmF1bHQ6IE5vIGV4Y2x1ZGVkIGluc3RhbmNlIHR5cGVzXG4gKi9cbkV4Y2x1ZGVkSW5zdGFuY2VUeXBlcz86IHN0cmluZ1tdXG4vKipcbiAqIFRoZSBpbnN0YW5jZSB0eXBlcyB0byBhcHBseSB5b3VyIHNwZWNpZmllZCBhdHRyaWJ1dGVzIGFnYWluc3QuIEFsbCBvdGhlciBpbnN0YW5jZSB0eXBlcyBhcmUgaWdub3JlZCwgZXZlbiBpZiB0aGV5IG1hdGNoIHlvdXIgc3BlY2lmaWVkIGF0dHJpYnV0ZXMuXG4gKiAgWW91IGNhbiB1c2Ugc3RyaW5ncyB3aXRoIG9uZSBvciBtb3JlIHdpbGQgY2FyZHMsIHJlcHJlc2VudGVkIGJ5IGFuIGFzdGVyaXNrIChgYCpgYCksIHRvIGFsbG93IGFuIGluc3RhbmNlIHR5cGUsIHNpemUsIG9yIGdlbmVyYXRpb24uIFRoZSBmb2xsb3dpbmcgYXJlIGV4YW1wbGVzOiBgYG01Ljh4bGFyZ2VgYCwgYGBjNSouKmBgLCBgYG01YS4qYGAsIGBgcipgYCwgYGAqMypgYC5cbiAqICBGb3IgZXhhbXBsZSwgaWYgeW91IHNwZWNpZnkgYGBjNSpgYCxBbWF6b24gRUMyIHdpbGwgYWxsb3cgdGhlIGVudGlyZSBDNSBpbnN0YW5jZSBmYW1pbHksIHdoaWNoIGluY2x1ZGVzIGFsbCBDNWEgYW5kIEM1biBpbnN0YW5jZSB0eXBlcy4gSWYgeW91IHNwZWNpZnkgYGBtNWEuKmBgLCBBbWF6b24gRUMyIHdpbGwgYWxsb3cgYWxsIHRoZSBNNWEgaW5zdGFuY2UgdHlwZXMsIGJ1dCBub3QgdGhlIE01biBpbnN0YW5jZSB0eXBlcy5cbiAqICAgSWYgeW91IHNwZWNpZnkgYGBBbGxvd2VkSW5zdGFuY2VUeXBlc2BgLCB5b3UgY2FuJ3Qgc3BlY2lmeSBgYEV4Y2x1ZGVkSW5zdGFuY2VUeXBlc2BgLlxuICogICBEZWZhdWx0OiBBbGwgaW5zdGFuY2UgdHlwZXNcbiAqL1xuQWxsb3dlZEluc3RhbmNlVHlwZXM/OiBzdHJpbmdbXVxuQWNjZWxlcmF0b3JDb3VudD86IEFjY2VsZXJhdG9yQ291bnRcbk5ldHdvcmtCYW5kd2lkdGhHYnBzPzogTmV0d29ya0JhbmR3aWR0aEdicHNcbkJhc2VsaW5lUGVyZm9ybWFuY2VGYWN0b3JzPzogQmFzZWxpbmVQZXJmb3JtYW5jZUZhY3RvcnNcbi8qKlxuICogW1ByaWNlIHByb3RlY3Rpb25dIFRoZSBwcmljZSBwcm90ZWN0aW9uIHRocmVzaG9sZCBmb3IgU3BvdCBJbnN0YW5jZXMsIGFzIGEgcGVyY2VudGFnZSBoaWdoZXIgdGhhbiBhbiBpZGVudGlmaWVkIFNwb3QgcHJpY2UuIFRoZSBpZGVudGlmaWVkIFNwb3QgcHJpY2UgaXMgdGhlIFNwb3QgcHJpY2Ugb2YgdGhlIGxvd2VzdCBwcmljZWQgY3VycmVudCBnZW5lcmF0aW9uIEMsIE0sIG9yIFIgaW5zdGFuY2UgdHlwZSB3aXRoIHlvdXIgc3BlY2lmaWVkIGF0dHJpYnV0ZXMuIElmIG5vIGN1cnJlbnQgZ2VuZXJhdGlvbiBDLCBNLCBvciBSIGluc3RhbmNlIHR5cGUgbWF0Y2hlcyB5b3VyIGF0dHJpYnV0ZXMsIHRoZW4gdGhlIGlkZW50aWZpZWQgU3BvdCBwcmljZSBpcyBmcm9tIHRoZSBsb3dlc3QgcHJpY2VkIGN1cnJlbnQgZ2VuZXJhdGlvbiBpbnN0YW5jZSB0eXBlcywgYW5kIGZhaWxpbmcgdGhhdCwgZnJvbSB0aGUgbG93ZXN0IHByaWNlZCBwcmV2aW91cyBnZW5lcmF0aW9uIGluc3RhbmNlIHR5cGVzIHRoYXQgbWF0Y2ggeW91ciBhdHRyaWJ1dGVzLiBXaGVuIEFtYXpvbiBFQzIgc2VsZWN0cyBpbnN0YW5jZSB0eXBlcyB3aXRoIHlvdXIgYXR0cmlidXRlcywgaXQgd2lsbCBleGNsdWRlIGluc3RhbmNlIHR5cGVzIHdob3NlIFNwb3QgcHJpY2UgZXhjZWVkcyB5b3VyIHNwZWNpZmllZCB0aHJlc2hvbGQuXG4gKiAgVGhlIHBhcmFtZXRlciBhY2NlcHRzIGFuIGludGVnZXIsIHdoaWNoIEFtYXpvbiBFQzIgaW50ZXJwcmV0cyBhcyBhIHBlcmNlbnRhZ2UuXG4gKiAgSWYgeW91IHNldCBgYFRhcmdldENhcGFjaXR5VW5pdFR5cGVgYCB0byBgYHZjcHVgYCBvciBgYG1lbW9yeS1taWJgYCwgdGhlIHByaWNlIHByb3RlY3Rpb24gdGhyZXNob2xkIGlzIGFwcGxpZWQgYmFzZWQgb24gdGhlIHBlci12Q1BVIG9yIHBlci1tZW1vcnkgcHJpY2UgaW5zdGVhZCBvZiB0aGUgcGVyLWluc3RhbmNlIHByaWNlLlxuICogIFRoaXMgcGFyYW1ldGVyIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIFtHZXRTcG90UGxhY2VtZW50U2NvcmVzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTRUMyL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0dldFNwb3RQbGFjZW1lbnRTY29yZXMuaHRtbCkgYW5kIFtHZXRJbnN0YW5jZVR5cGVzRnJvbUluc3RhbmNlUmVxdWlyZW1lbnRzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTRUMyL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0dldEluc3RhbmNlVHlwZXNGcm9tSW5zdGFuY2VSZXF1aXJlbWVudHMuaHRtbCkuXG4gKiAgIE9ubHkgb25lIG9mIGBgU3BvdE1heFByaWNlUGVyY2VudGFnZU92ZXJMb3dlc3RQcmljZWBgIG9yIGBgTWF4U3BvdFByaWNlQXNQZXJjZW50YWdlT2ZPcHRpbWFsT25EZW1hbmRQcmljZWBgIGNhbiBiZSBzcGVjaWZpZWQuIElmIHlvdSBkb24ndCBzcGVjaWZ5IGVpdGhlciwgQW1hem9uIEVDMiB3aWxsIGF1dG9tYXRpY2FsbHkgYXBwbHkgb3B0aW1hbCBwcmljZSBwcm90ZWN0aW9uIHRvIGNvbnNpc3RlbnRseSBzZWxlY3QgZnJvbSBhIHdpZGUgcmFuZ2Ugb2YgaW5zdGFuY2UgdHlwZXMuIFRvIGluZGljYXRlIG5vIHByaWNlIHByb3RlY3Rpb24gdGhyZXNob2xkIGZvciBTcG90IEluc3RhbmNlcywgbWVhbmluZyB5b3Ugd2FudCB0byBjb25zaWRlciBhbGwgaW5zdGFuY2UgdHlwZXMgdGhhdCBtYXRjaCB5b3VyIGF0dHJpYnV0ZXMsIGluY2x1ZGUgb25lIG9mIHRoZXNlIHBhcmFtZXRlcnMgYW5kIHNwZWNpZnkgYSBoaWdoIHZhbHVlLCBzdWNoIGFzIGBgOTk5OTk5YGAuXG4gKiAgIERlZmF1bHQ6IGBgMTAwYGBcbiAqL1xuU3BvdE1heFByaWNlUGVyY2VudGFnZU92ZXJMb3dlc3RQcmljZT86IG51bWJlclxuQmFzZWxpbmVFYnNCYW5kd2lkdGhNYnBzPzogQmFzZWxpbmVFYnNCYW5kd2lkdGhNYnBzXG4vKipcbiAqIFRoZSBhY2NlbGVyYXRvcnMgdGhhdCBtdXN0IGJlIG9uIHRoZSBpbnN0YW5jZSB0eXBlLlxuICogICArICBGb3IgaW5zdGFuY2UgdHlwZXMgd2l0aCBOVklESUEgQTEwRyBHUFVzLCBzcGVjaWZ5IGBgYTEwZ2BgLlxuICogICArICBGb3IgaW5zdGFuY2UgdHlwZXMgd2l0aCBOVklESUEgQTEwMCBHUFVzLCBzcGVjaWZ5IGBgYTEwMGBgLlxuICogICArICBGb3IgaW5zdGFuY2UgdHlwZXMgd2l0aCBOVklESUEgSDEwMCBHUFVzLCBzcGVjaWZ5IGBgaDEwMGBgLlxuICogICArICBGb3IgaW5zdGFuY2UgdHlwZXMgd2l0aCBBV1MgSW5mZXJlbnRpYSBjaGlwcywgc3BlY2lmeSBgYGluZmVyZW50aWFgYC5cbiAqICAgKyAgRm9yIGluc3RhbmNlIHR5cGVzIHdpdGggTlZJRElBIEdSSUQgSzUyMCBHUFVzLCBzcGVjaWZ5IGBgazUyMGBgLlxuICogICArICBGb3IgaW5zdGFuY2UgdHlwZXMgd2l0aCBOVklESUEgSzgwIEdQVXMsIHNwZWNpZnkgYGBrODBgYC5cbiAqICAgKyAgRm9yIGluc3RhbmNlIHR5cGVzIHdpdGggTlZJRElBIE02MCBHUFVzLCBzcGVjaWZ5IGBgbTYwYGAuXG4gKiAgICsgIEZvciBpbnN0YW5jZSB0eXBlcyB3aXRoIEFNRCBSYWRlb24gUHJvIFY1MjAgR1BVcywgc3BlY2lmeSBgYHJhZGVvbi1wcm8tdjUyMGBgLlxuICogICArICBGb3IgaW5zdGFuY2UgdHlwZXMgd2l0aCBOVklESUEgVDQgR1BVcywgc3BlY2lmeSBgYHQ0YGAuXG4gKiAgICsgIEZvciBpbnN0YW5jZSB0eXBlcyB3aXRoIE5WSURJQSBUNEcgR1BVcywgc3BlY2lmeSBgYHQ0Z2BgLlxuICogICArICBGb3IgaW5zdGFuY2UgdHlwZXMgd2l0aCBYaWxpbnggVlU5UCBGUEdBcywgc3BlY2lmeSBgYHZ1OXBgYC5cbiAqICAgKyAgRm9yIGluc3RhbmNlIHR5cGVzIHdpdGggTlZJRElBIFYxMDAgR1BVcywgc3BlY2lmeSBgYHYxMDBgYC5cbiAqICAgXG4gKiAgRGVmYXVsdDogQW55IGFjY2VsZXJhdG9yXG4gKi9cbkFjY2VsZXJhdG9yTmFtZXM/OiBzdHJpbmdbXVxuQWNjZWxlcmF0b3JUb3RhbE1lbW9yeU1pQj86IEFjY2VsZXJhdG9yVG90YWxNZW1vcnlNaUJcbi8qKlxuICogSW5kaWNhdGVzIHdoZXRoZXIgYnVyc3RhYmxlIHBlcmZvcm1hbmNlIFQgaW5zdGFuY2UgdHlwZXMgYXJlIGluY2x1ZGVkLCBleGNsdWRlZCwgb3IgcmVxdWlyZWQuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW0J1cnN0YWJsZSBwZXJmb3JtYW5jZSBpbnN0YW5jZXNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NFQzIvbGF0ZXN0L1VzZXJHdWlkZS9idXJzdGFibGUtcGVyZm9ybWFuY2UtaW5zdGFuY2VzLmh0bWwpLlxuICogICArICBUbyBpbmNsdWRlIGJ1cnN0YWJsZSBwZXJmb3JtYW5jZSBpbnN0YW5jZSB0eXBlcywgc3BlY2lmeSBgYGluY2x1ZGVkYGAuXG4gKiAgICsgIFRvIHJlcXVpcmUgb25seSBidXJzdGFibGUgcGVyZm9ybWFuY2UgaW5zdGFuY2UgdHlwZXMsIHNwZWNpZnkgYGByZXF1aXJlZGBgLlxuICogICArICBUbyBleGNsdWRlIGJ1cnN0YWJsZSBwZXJmb3JtYW5jZSBpbnN0YW5jZSB0eXBlcywgc3BlY2lmeSBgYGV4Y2x1ZGVkYGAuXG4gKiAgIFxuICogIERlZmF1bHQ6IGBgZXhjbHVkZWRgYFxuICovXG5CdXJzdGFibGVQZXJmb3JtYW5jZT86IHN0cmluZ1xuVG90YWxMb2NhbFN0b3JhZ2VHQj86IFRvdGFsTG9jYWxTdG9yYWdlR0Jcbn1cbi8qKlxuICogVGhlIG1pbmltdW0gYW5kIG1heGltdW0gYW1vdW50IG9mIG1lbW9yeSBwZXIgdkNQVSwgaW4gR2lCLlxuICogIERlZmF1bHQ6IE5vIG1pbmltdW0gb3IgbWF4aW11bSBsaW1pdHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNZW1vcnlHaUJQZXJWQ3B1IHtcbi8qKlxuICogVGhlIG1pbmltdW0gYW1vdW50IG9mIG1lbW9yeSBwZXIgdkNQVSwgaW4gR2lCLiBUbyBzcGVjaWZ5IG5vIG1pbmltdW0gbGltaXQsIG9taXQgdGhpcyBwYXJhbWV0ZXIuXG4gKi9cbk1pbj86IG51bWJlclxuLyoqXG4gKiBUaGUgbWF4aW11bSBhbW91bnQgb2YgbWVtb3J5IHBlciB2Q1BVLCBpbiBHaUIuIFRvIHNwZWNpZnkgbm8gbWF4aW11bSBsaW1pdCwgb21pdCB0aGlzIHBhcmFtZXRlci5cbiAqL1xuTWF4PzogbnVtYmVyXG59XG4vKipcbiAqIFRoZSBtaW5pbXVtIGFuZCBtYXhpbXVtIG51bWJlciBvZiB2Q1BVcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBWQ3B1Q291bnQge1xuLyoqXG4gKiBUaGUgbWluaW11bSBudW1iZXIgb2YgdkNQVXMuIFRvIHNwZWNpZnkgbm8gbWluaW11bSBsaW1pdCwgc3BlY2lmeSBgYDBgYC5cbiAqL1xuTWluPzogbnVtYmVyXG4vKipcbiAqIFRoZSBtYXhpbXVtIG51bWJlciBvZiB2Q1BVcy4gVG8gc3BlY2lmeSBubyBtYXhpbXVtIGxpbWl0LCBvbWl0IHRoaXMgcGFyYW1ldGVyLlxuICovXG5NYXg/OiBudW1iZXJcbn1cbi8qKlxuICogVGhlIG1pbmltdW0gYW5kIG1heGltdW0gYW1vdW50IG9mIG1lbW9yeSwgaW4gTWlCLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1lbW9yeU1pQiB7XG4vKipcbiAqIFRoZSBtaW5pbXVtIGFtb3VudCBvZiBtZW1vcnksIGluIE1pQi4gVG8gc3BlY2lmeSBubyBtaW5pbXVtIGxpbWl0LCBzcGVjaWZ5IGBgMGBgLlxuICovXG5NaW4/OiBudW1iZXJcbi8qKlxuICogVGhlIG1heGltdW0gYW1vdW50IG9mIG1lbW9yeSwgaW4gTWlCLiBUbyBzcGVjaWZ5IG5vIG1heGltdW0gbGltaXQsIG9taXQgdGhpcyBwYXJhbWV0ZXIuXG4gKi9cbk1heD86IG51bWJlclxufVxuLyoqXG4gKiBUaGUgbWluaW11bSBhbmQgbWF4aW11bSBudW1iZXIgb2YgbmV0d29yayBpbnRlcmZhY2VzLlxuICogIERlZmF1bHQ6IE5vIG1pbmltdW0gb3IgbWF4aW11bSBsaW1pdHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOZXR3b3JrSW50ZXJmYWNlQ291bnQge1xuLyoqXG4gKiBUaGUgbWluaW11bSBudW1iZXIgb2YgbmV0d29yayBpbnRlcmZhY2VzLiBUbyBzcGVjaWZ5IG5vIG1pbmltdW0gbGltaXQsIG9taXQgdGhpcyBwYXJhbWV0ZXIuXG4gKi9cbk1pbj86IG51bWJlclxuLyoqXG4gKiBUaGUgbWF4aW11bSBudW1iZXIgb2YgbmV0d29yayBpbnRlcmZhY2VzLiBUbyBzcGVjaWZ5IG5vIG1heGltdW0gbGltaXQsIG9taXQgdGhpcyBwYXJhbWV0ZXIuXG4gKi9cbk1heD86IG51bWJlclxufVxuLyoqXG4gKiBUaGUgbWluaW11bSBhbmQgbWF4aW11bSBudW1iZXIgb2YgYWNjZWxlcmF0b3JzIChHUFVzLCBGUEdBcywgb3IgQVdTIEluZmVyZW50aWEgY2hpcHMpIG9uIGFuIGluc3RhbmNlLlxuICogIFRvIGV4Y2x1ZGUgYWNjZWxlcmF0b3ItZW5hYmxlZCBpbnN0YW5jZSB0eXBlcywgc2V0IGBgTWF4YGAgdG8gYGAwYGAuXG4gKiAgRGVmYXVsdDogTm8gbWluaW11bSBvciBtYXhpbXVtIGxpbWl0c1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEFjY2VsZXJhdG9yQ291bnQge1xuLyoqXG4gKiBUaGUgbWluaW11bSBudW1iZXIgb2YgYWNjZWxlcmF0b3JzLiBUbyBzcGVjaWZ5IG5vIG1pbmltdW0gbGltaXQsIG9taXQgdGhpcyBwYXJhbWV0ZXIuXG4gKi9cbk1pbj86IG51bWJlclxuLyoqXG4gKiBUaGUgbWF4aW11bSBudW1iZXIgb2YgYWNjZWxlcmF0b3JzLiBUbyBzcGVjaWZ5IG5vIG1heGltdW0gbGltaXQsIG9taXQgdGhpcyBwYXJhbWV0ZXIuIFRvIGV4Y2x1ZGUgYWNjZWxlcmF0b3ItZW5hYmxlZCBpbnN0YW5jZSB0eXBlcywgc2V0IGBgTWF4YGAgdG8gYGAwYGAuXG4gKi9cbk1heD86IG51bWJlclxufVxuLyoqXG4gKiBUaGUgbWluaW11bSBhbmQgbWF4aW11bSBhbW91bnQgb2YgbmV0d29yayBiYW5kd2lkdGgsIGluIGdpZ2FiaXRzIHBlciBzZWNvbmQgKEdicHMpLlxuICogIERlZmF1bHQ6IE5vIG1pbmltdW0gb3IgbWF4aW11bSBsaW1pdHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOZXR3b3JrQmFuZHdpZHRoR2JwcyB7XG4vKipcbiAqIFRoZSBtaW5pbXVtIGFtb3VudCBvZiBuZXR3b3JrIGJhbmR3aWR0aCwgaW4gR2Jwcy4gSWYgdGhpcyBwYXJhbWV0ZXIgaXMgbm90IHNwZWNpZmllZCwgdGhlcmUgaXMgbm8gbWluaW11bSBsaW1pdC5cbiAqL1xuTWluPzogbnVtYmVyXG4vKipcbiAqIFRoZSBtYXhpbXVtIGFtb3VudCBvZiBuZXR3b3JrIGJhbmR3aWR0aCwgaW4gR2Jwcy4gVG8gc3BlY2lmeSBubyBtYXhpbXVtIGxpbWl0LCBvbWl0IHRoaXMgcGFyYW1ldGVyLlxuICovXG5NYXg/OiBudW1iZXJcbn1cbi8qKlxuICogVGhlIGJhc2VsaW5lIHBlcmZvcm1hbmNlIHRvIGNvbnNpZGVyLCB1c2luZyBhbiBpbnN0YW5jZSBmYW1pbHkgYXMgYSBiYXNlbGluZSByZWZlcmVuY2UuIFRoZSBpbnN0YW5jZSBmYW1pbHkgZXN0YWJsaXNoZXMgdGhlIGxvd2VzdCBhY2NlcHRhYmxlIGxldmVsIG9mIHBlcmZvcm1hbmNlLiBBbWF6b24gRUMyIHVzZXMgdGhpcyBiYXNlbGluZSB0byBndWlkZSBpbnN0YW5jZSB0eXBlIHNlbGVjdGlvbiwgYnV0IHRoZXJlIGlzIG5vIGd1YXJhbnRlZSB0aGF0IHRoZSBzZWxlY3RlZCBpbnN0YW5jZSB0eXBlcyB3aWxsIGFsd2F5cyBleGNlZWQgdGhlIGJhc2VsaW5lIGZvciBldmVyeSBhcHBsaWNhdGlvbi4gQ3VycmVudGx5LCB0aGlzIHBhcmFtZXRlciBvbmx5IHN1cHBvcnRzIENQVSBwZXJmb3JtYW5jZSBhcyBhIGJhc2VsaW5lIHBlcmZvcm1hbmNlIGZhY3Rvci4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbUGVyZm9ybWFuY2UgcHJvdGVjdGlvbl0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0VDMi9sYXRlc3QvVXNlckd1aWRlL2VjMi1mbGVldC1hdHRyaWJ1dGUtYmFzZWQtaW5zdGFuY2UtdHlwZS1zZWxlY3Rpb24uaHRtbCNlYzJmbGVldC1hYmlzLXBlcmZvcm1hbmNlLXByb3RlY3Rpb24pIGluIHRoZSAqQW1hem9uIEVDMiBVc2VyIEd1aWRlKi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCYXNlbGluZVBlcmZvcm1hbmNlRmFjdG9ycyB7XG5DcHU/OiBDcHVcbn1cbi8qKlxuICogVGhlIENQVSBwZXJmb3JtYW5jZSB0byBjb25zaWRlciwgdXNpbmcgYW4gaW5zdGFuY2UgZmFtaWx5IGFzIHRoZSBiYXNlbGluZSByZWZlcmVuY2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ3B1IHtcblJlZmVyZW5jZXM/OiBSZWZlcmVuY2VzXG59XG4vKipcbiAqIFNwZWNpZmllcyBhbiBpbnN0YW5jZSBmYW1pbHkgdG8gdXNlIGFzIHRoZSBiYXNlbGluZSByZWZlcmVuY2UgZm9yIENQVSBwZXJmb3JtYW5jZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZWZlcmVuY2Uge1xuLyoqXG4gKiBUaGUgaW5zdGFuY2UgZmFtaWx5IHRvIHVzZSBhcyBhIGJhc2VsaW5lIHJlZmVyZW5jZS5cbiAqICAgRW5zdXJlIHRoYXQgeW91IHNwZWNpZnkgdGhlIGNvcnJlY3QgdmFsdWUgZm9yIHRoZSBpbnN0YW5jZSBmYW1pbHkuIFRoZSBpbnN0YW5jZSBmYW1pbHkgaXMgZXZlcnl0aGluZyBiZWZvcmUgdGhlIHBlcmlvZCAoYGAuYGApIGluIHRoZSBpbnN0YW5jZSB0eXBlIG5hbWUuIEZvciBleGFtcGxlLCBpbiB0aGUgaW5zdGFuY2UgdHlwZSBgYGM2aS5sYXJnZWBgLCB0aGUgaW5zdGFuY2UgZmFtaWx5IGlzIGBgYzZpYGAsIG5vdCBgYGM2YGAuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW0FtYXpvbiBFQzIgaW5zdGFuY2UgdHlwZSBuYW1pbmcgY29udmVudGlvbnNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9lYzIvbGF0ZXN0L2luc3RhbmNldHlwZXMvaW5zdGFuY2UtdHlwZS1uYW1lcy5odG1sKSBpbiAqQW1hem9uIEVDMiBJbnN0YW5jZSBUeXBlcyouXG4gKiAgIFRoZSBmb2xsb3dpbmcgaW5zdGFuY2UgZmFtaWxpZXMgYXJlICpub3Qgc3VwcG9ydGVkKiBmb3IgcGVyZm9ybWFuY2UgcHJvdGVjdGlvbjpcbiAqICAgKyAgIGBgYzFgYCBcbiAqICAgKyAgIGBgZzNgYCB8IGBgZzNzYGAgXG4gKiAgICsgICBgYGhwYzdnYGAgXG4gKiAgICsgICBgYG0xYGAgfCBgYG0yYGAgXG4gKiAgICsgICBgYG1hYzFgYCB8IGBgbWFjMmBgIHwgYGBtYWMyLW0xdWx0cmFgYCB8IGBgbWFjMi1tMmBgIHwgYGBtYWMyLW0ycHJvYGAgXG4gKiAgICsgICBgYHAzZG5gYCB8IGBgcDRkYGAgfCBgYHA1YGAgXG4gKiAgICsgICBgYHQxYGAgXG4gKiAgICsgICBgYHUtMTJ0YjFgYCB8IGBgdS0xOHRiMWBgIHwgYGB1LTI0dGIxYGAgfCBgYHUtM3RiMWBgIHwgYGB1LTZ0YjFgYCB8IGBgdS05dGIxYGAgfCBgYHU3aS0xMnRiYGAgfCBgYHU3aW4tMTZ0YmBgIHwgYGB1N2luLTI0dGJgYCB8IGBgdTdpbi0zMnRiYGAgXG4gKiAgIFxuICogIElmIHlvdSBlbmFibGUgcGVyZm9ybWFuY2UgcHJvdGVjdGlvbiBieSBzcGVjaWZ5aW5nIGEgc3VwcG9ydGVkIGluc3RhbmNlIGZhbWlseSwgdGhlIHJldHVybmVkIGluc3RhbmNlIHR5cGVzIHdpbGwgZXhjbHVkZSB0aGUgYWJvdmUgdW5zdXBwb3J0ZWQgaW5zdGFuY2UgZmFtaWxpZXMuXG4gKi9cbkluc3RhbmNlRmFtaWx5Pzogc3RyaW5nXG59XG4vKipcbiAqIFRoZSBtaW5pbXVtIGFuZCBtYXhpbXVtIGJhc2VsaW5lIGJhbmR3aWR0aCB0byBBbWF6b24gRUJTLCBpbiBNYnBzLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtBbWF6b24gRUJT4oCTb3B0aW1pemVkIGluc3RhbmNlc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0VDMi9sYXRlc3QvVXNlckd1aWRlL2Vicy1vcHRpbWl6ZWQuaHRtbCkgaW4gdGhlICpBbWF6b24gRUMyIFVzZXIgR3VpZGUqLlxuICogIERlZmF1bHQ6IE5vIG1pbmltdW0gb3IgbWF4aW11bSBsaW1pdHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCYXNlbGluZUVic0JhbmR3aWR0aE1icHMge1xuLyoqXG4gKiBUaGUgbWluaW11bSBiYXNlbGluZSBiYW5kd2lkdGgsIGluIE1icHMuIFRvIHNwZWNpZnkgbm8gbWluaW11bSBsaW1pdCwgb21pdCB0aGlzIHBhcmFtZXRlci5cbiAqL1xuTWluPzogbnVtYmVyXG4vKipcbiAqIFRoZSBtYXhpbXVtIGJhc2VsaW5lIGJhbmR3aWR0aCwgaW4gTWJwcy4gVG8gc3BlY2lmeSBubyBtYXhpbXVtIGxpbWl0LCBvbWl0IHRoaXMgcGFyYW1ldGVyLlxuICovXG5NYXg/OiBudW1iZXJcbn1cbi8qKlxuICogVGhlIG1pbmltdW0gYW5kIG1heGltdW0gYW1vdW50IG9mIHRvdGFsIGFjY2VsZXJhdG9yIG1lbW9yeSwgaW4gTWlCLlxuICogIERlZmF1bHQ6IE5vIG1pbmltdW0gb3IgbWF4aW11bSBsaW1pdHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBY2NlbGVyYXRvclRvdGFsTWVtb3J5TWlCIHtcbi8qKlxuICogVGhlIG1pbmltdW0gYW1vdW50IG9mIGFjY2VsZXJhdG9yIG1lbW9yeSwgaW4gTWlCLiBUbyBzcGVjaWZ5IG5vIG1pbmltdW0gbGltaXQsIG9taXQgdGhpcyBwYXJhbWV0ZXIuXG4gKi9cbk1pbj86IG51bWJlclxuLyoqXG4gKiBUaGUgbWF4aW11bSBhbW91bnQgb2YgYWNjZWxlcmF0b3IgbWVtb3J5LCBpbiBNaUIuIFRvIHNwZWNpZnkgbm8gbWF4aW11bSBsaW1pdCwgb21pdCB0aGlzIHBhcmFtZXRlci5cbiAqL1xuTWF4PzogbnVtYmVyXG59XG4vKipcbiAqIFRoZSBtaW5pbXVtIGFuZCBtYXhpbXVtIGFtb3VudCBvZiB0b3RhbCBsb2NhbCBzdG9yYWdlLCBpbiBHQi5cbiAqICBEZWZhdWx0OiBObyBtaW5pbXVtIG9yIG1heGltdW0gbGltaXRzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVG90YWxMb2NhbFN0b3JhZ2VHQiB7XG4vKipcbiAqIFRoZSBtaW5pbXVtIGFtb3VudCBvZiB0b3RhbCBsb2NhbCBzdG9yYWdlLCBpbiBHQi4gVG8gc3BlY2lmeSBubyBtaW5pbXVtIGxpbWl0LCBvbWl0IHRoaXMgcGFyYW1ldGVyLlxuICovXG5NaW4/OiBudW1iZXJcbi8qKlxuICogVGhlIG1heGltdW0gYW1vdW50IG9mIHRvdGFsIGxvY2FsIHN0b3JhZ2UsIGluIEdCLiBUbyBzcGVjaWZ5IG5vIG1heGltdW0gbGltaXQsIG9taXQgdGhpcyBwYXJhbWV0ZXIuXG4gKi9cbk1heD86IG51bWJlclxufVxuLyoqXG4gKiBUaGUgQ2FwYWNpdHkgUmVzZXJ2YXRpb24gdGFyZ2V0aW5nIG9wdGlvbi4gSWYgeW91IGRvIG5vdCBzcGVjaWZ5IHRoaXMgcGFyYW1ldGVyLCB0aGUgaW5zdGFuY2UncyBDYXBhY2l0eSBSZXNlcnZhdGlvbiBwcmVmZXJlbmNlIGRlZmF1bHRzIHRvIGBgb3BlbmBgLCB3aGljaCBlbmFibGVzIGl0IHRvIHJ1biBpbiBhbnkgb3BlbiBDYXBhY2l0eSBSZXNlcnZhdGlvbiB0aGF0IGhhcyBtYXRjaGluZyBhdHRyaWJ1dGVzIChpbnN0YW5jZSB0eXBlLCBwbGF0Zm9ybSwgQXZhaWxhYmlsaXR5IFpvbmUpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENhcGFjaXR5UmVzZXJ2YXRpb25TcGVjaWZpY2F0aW9uIHtcbi8qKlxuICogSW5kaWNhdGVzIHRoZSBpbnN0YW5jZSdzIENhcGFjaXR5IFJlc2VydmF0aW9uIHByZWZlcmVuY2VzLiBQb3NzaWJsZSBwcmVmZXJlbmNlcyBpbmNsdWRlOlxuICogICArICAgYGBjYXBhY2l0eS1yZXNlcnZhdGlvbnMtb25seWBgIC0gVGhlIGluc3RhbmNlIHdpbGwgb25seSBydW4gaW4gYSBDYXBhY2l0eSBSZXNlcnZhdGlvbiBvciBDYXBhY2l0eSBSZXNlcnZhdGlvbiBncm91cC4gSWYgY2FwYWNpdHkgaXNuJ3QgYXZhaWxhYmxlLCB0aGUgaW5zdGFuY2Ugd2lsbCBmYWlsIHRvIGxhdW5jaC5cbiAqICAgKyAgIGBgb3BlbmBgIC0gVGhlIGluc3RhbmNlIGNhbiBydW4gaW4gYW55IGBgb3BlbmBgIENhcGFjaXR5IFJlc2VydmF0aW9uIHRoYXQgaGFzIG1hdGNoaW5nIGF0dHJpYnV0ZXMgKGluc3RhbmNlIHR5cGUsIHBsYXRmb3JtLCBBdmFpbGFiaWxpdHkgWm9uZSwgdGVuYW5jeSkuXG4gKiAgICsgICBgYG5vbmVgYCAtIFRoZSBpbnN0YW5jZSBhdm9pZHMgcnVubmluZyBpbiBhIENhcGFjaXR5IFJlc2VydmF0aW9uIGV2ZW4gaWYgb25lIGlzIGF2YWlsYWJsZS4gVGhlIGluc3RhbmNlIHJ1bnMgaW4gT24tRGVtYW5kIGNhcGFjaXR5LlxuICovXG5DYXBhY2l0eVJlc2VydmF0aW9uUHJlZmVyZW5jZT86IHN0cmluZ1xuQ2FwYWNpdHlSZXNlcnZhdGlvblRhcmdldD86IENhcGFjaXR5UmVzZXJ2YXRpb25UYXJnZXRcbn1cbi8qKlxuICogSW5mb3JtYXRpb24gYWJvdXQgdGhlIHRhcmdldCBDYXBhY2l0eSBSZXNlcnZhdGlvbiBvciBDYXBhY2l0eSBSZXNlcnZhdGlvbiBncm91cC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDYXBhY2l0eVJlc2VydmF0aW9uVGFyZ2V0IHtcbi8qKlxuICogVGhlIEFSTiBvZiB0aGUgQ2FwYWNpdHkgUmVzZXJ2YXRpb24gcmVzb3VyY2UgZ3JvdXAgaW4gd2hpY2ggdG8gcnVuIHRoZSBpbnN0YW5jZS5cbiAqL1xuQ2FwYWNpdHlSZXNlcnZhdGlvblJlc291cmNlR3JvdXBBcm4/OiBzdHJpbmdcbi8qKlxuICogVGhlIElEIG9mIHRoZSBDYXBhY2l0eSBSZXNlcnZhdGlvbiBpbiB3aGljaCB0byBydW4gdGhlIGluc3RhbmNlLlxuICovXG5DYXBhY2l0eVJlc2VydmF0aW9uSWQ/OiBzdHJpbmdcbn1cbi8qKlxuICogVGhlIGNyZWRpdCBvcHRpb24gZm9yIENQVSB1c2FnZSBvZiB0aGUgaW5zdGFuY2UuIFZhbGlkIG9ubHkgZm9yIFQgaW5zdGFuY2VzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENyZWRpdFNwZWNpZmljYXRpb24ge1xuLyoqXG4gKiBUaGUgY3JlZGl0IG9wdGlvbiBmb3IgQ1BVIHVzYWdlIG9mIGEgVCBpbnN0YW5jZS5cbiAqICBWYWxpZCB2YWx1ZXM6IGBgc3RhbmRhcmRgYCB8IGBgdW5saW1pdGVkYGBcbiAqL1xuQ3B1Q3JlZGl0cz86IHN0cmluZ1xufVxuLyoqXG4gKiBTcGVjaWZpZXMgdGhlIHRhZ3MgdG8gYXBwbHkgdG8gdGhlIGxhdW5jaCB0ZW1wbGF0ZSBkdXJpbmcgY3JlYXRpb24uXG4gKiAgVG8gc3BlY2lmeSB0aGUgdGFncyBmb3IgdGhlIHJlc291cmNlcyB0aGF0IGFyZSBjcmVhdGVkIGR1cmluZyBpbnN0YW5jZSBsYXVuY2gsIHVzZSBbQVdTOjpFQzI6OkxhdW5jaFRlbXBsYXRlIFRhZ1NwZWNpZmljYXRpb25dKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLWVjMi1sYXVuY2h0ZW1wbGF0ZS10YWdzcGVjaWZpY2F0aW9uLmh0bWwpLlxuICogICBgYExhdW5jaFRlbXBsYXRlVGFnU3BlY2lmaWNhdGlvbmBgIGlzIGEgcHJvcGVydHkgb2YgW0FXUzo6RUMyOjpMYXVuY2hUZW1wbGF0ZV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXJlc291cmNlLWVjMi1sYXVuY2h0ZW1wbGF0ZS5odG1sKS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMYXVuY2hUZW1wbGF0ZVRhZ1NwZWNpZmljYXRpb24ge1xuLyoqXG4gKiBUaGUgdHlwZSBvZiByZXNvdXJjZS4gVG8gdGFnIGEgbGF1bmNoIHRlbXBsYXRlLCBgYFJlc291cmNlVHlwZWBgIG11c3QgYmUgYGBsYXVuY2gtdGVtcGxhdGVgYC5cbiAqL1xuUmVzb3VyY2VUeXBlPzogc3RyaW5nXG4vKipcbiAqIFRoZSB0YWdzIGZvciB0aGUgcmVzb3VyY2UuXG4gKi9cblRhZ3M/OiBUYWdbXVxufVxuIl19
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWVjMi1sYXVuY2h0ZW1wbGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImF3cy1lYzItbGF1bmNodGVtcGxhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhlIGluc3RhbmNlIGZhbWlseSB0byB1c2UgYXMgdGhlIGJhc2VsaW5lIHJlZmVyZW5jZSBmb3IgQ1BVIHBlcmZvcm1hbmNlLiBBbGwgaW5zdGFuY2UgdHlwZXMgdGhhdCBtYXRjaCB5b3VyIHNwZWNpZmllZCBhdHRyaWJ1dGVzIGFyZSBjb21wYXJlZCBhZ2FpbnN0IHRoZSBDUFUgcGVyZm9ybWFuY2Ugb2YgdGhlIHJlZmVyZW5jZWQgaW5zdGFuY2UgZmFtaWx5LCByZWdhcmRsZXNzIG9mIENQVSBtYW51ZmFjdHVyZXIgb3IgYXJjaGl0ZWN0dXJlIGRpZmZlcmVuY2VzLlxuICovXG5leHBvcnQgdHlwZSBSZWZlcmVuY2VzID0gUmVmZXJlbmNlW11cblxuLyoqXG4gKiBTcGVjaWZpZXMgdGhlIHByb3BlcnRpZXMgZm9yIGNyZWF0aW5nIGEgbGF1bmNoIHRlbXBsYXRlLlxuICogIFRoZSBtaW5pbXVtIHJlcXVpcmVkIHByb3BlcnRpZXMgZm9yIHNwZWNpZnlpbmcgYSBsYXVuY2ggdGVtcGxhdGUgYXJlIGFzIGZvbGxvd3M6XG4gKiAgICsgIFlvdSBtdXN0IHNwZWNpZnkgYXQgbGVhc3Qgb25lIHByb3BlcnR5IGZvciB0aGUgbGF1bmNoIHRlbXBsYXRlIGRhdGEuXG4gKiAgICsgIFlvdSBjYW4gb3B0aW9uYWxseSBzcGVjaWZ5IGEgbmFtZSBmb3IgdGhlIGxhdW5jaCB0ZW1wbGF0ZS4gSWYgeW91IGRvIG5vdCBzcGVjaWZ5IGEgbmFtZSwgQ0ZOIGNyZWF0ZXMgYSBuYW1lIGZvciB5b3UuXG4gKiAgIFxuICogIEEgbGF1bmNoIHRlbXBsYXRlIGNhbiBjb250YWluIHNvbWUgb3IgYWxsIG9mIHRoZSBjb25maWd1cmF0aW9uIGluZm9ybWF0aW9uIHRvIGxhdW5jaCBhbiBpbnN0YW5jZS4gV2hlbiB5b3UgbGF1bmNoIGFuIGluc3RhbmNlIHVzaW5nIGEgbGF1bmNoIHRlbXBsYXRlLCBpbnN0YW5jZSBwcm9wZXJ0aWVzIHRoYXQgYXJlIG5vdCBzcGVjaWZpZWQgaW4gdGhlIGxhdW5jaCB0ZW1wbGF0ZSB1c2UgZGVmYXVsdCB2YWx1ZXMsIGV4Y2VwdCB0aGUgYGBJbWFnZUlkYGAgcHJvcGVydHksIHdoaWNoIGhhcyBubyBkZWZhdWx0IHZhbHVlLiBJZiB5b3UgZG8gbm90IHNwZWNpZnkgYW4gQU1JIElEIGZvciB0aGUgbGF1bmNoIHRlbXBsYXRlIGBgSW1hZ2VJZGBgIHByb3BlcnR5LCB5b3UgbXVzdCBzcGVjaWZ5IGFuIEFNSSBJRCBmb3IgdGhlIGluc3RhbmNlIGBgSW1hZ2VJZGBgIHByb3BlcnR5LlxuICogIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW0xhdW5jaCBhbiBpbnN0YW5jZSBmcm9tIGEgbGF1bmNoIHRlbXBsYXRlXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTRUMyL2xhdGVzdC9Vc2VyR3VpZGUvZWMyLWxhdW5jaC10ZW1wbGF0ZXMuaHRtbCkgaW4gdGhlICpBbWF6b24gRUMyIFVzZXIgR3VpZGUqLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIF9BV1NfRUMyX0xBVU5DSFRFTVBMQVRFIHtcbi8qKlxuICogQSBuYW1lIGZvciB0aGUgbGF1bmNoIHRlbXBsYXRlLlxuICovXG5MYXVuY2hUZW1wbGF0ZU5hbWU/OiBzdHJpbmdcbkxhdW5jaFRlbXBsYXRlRGF0YTogTGF1bmNoVGVtcGxhdGVEYXRhXG4vKipcbiAqIEEgZGVzY3JpcHRpb24gZm9yIHRoZSBmaXJzdCB2ZXJzaW9uIG9mIHRoZSBsYXVuY2ggdGVtcGxhdGUuXG4gKi9cblZlcnNpb25EZXNjcmlwdGlvbj86IHN0cmluZ1xuLyoqXG4gKiBUaGUgdGFncyB0byBhcHBseSB0byB0aGUgbGF1bmNoIHRlbXBsYXRlIG9uIGNyZWF0aW9uLiBUbyB0YWcgdGhlIGxhdW5jaCB0ZW1wbGF0ZSwgdGhlIHJlc291cmNlIHR5cGUgbXVzdCBiZSBgYGxhdW5jaC10ZW1wbGF0ZWBgLlxuICogIFRvIHNwZWNpZnkgdGhlIHRhZ3MgZm9yIHJlc291cmNlcyB0aGF0IGFyZSBjcmVhdGVkIGR1cmluZyBpbnN0YW5jZSBsYXVuY2gsIHVzZSBbVGFnU3BlY2lmaWNhdGlvbnNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLWVjMi1sYXVuY2h0ZW1wbGF0ZS1sYXVuY2h0ZW1wbGF0ZWRhdGEuaHRtbCNjZm4tZWMyLWxhdW5jaHRlbXBsYXRlLWxhdW5jaHRlbXBsYXRlZGF0YS10YWdzcGVjaWZpY2F0aW9ucykuXG4gKi9cblRhZ1NwZWNpZmljYXRpb25zPzogTGF1bmNoVGVtcGxhdGVUYWdTcGVjaWZpY2F0aW9uW11cbkxhdGVzdFZlcnNpb25OdW1iZXI/OiBzdHJpbmdcbkxhdW5jaFRlbXBsYXRlSWQ/OiBzdHJpbmdcbkRlZmF1bHRWZXJzaW9uTnVtYmVyPzogc3RyaW5nXG59XG4vKipcbiAqIFRoZSBpbmZvcm1hdGlvbiBmb3IgdGhlIGxhdW5jaCB0ZW1wbGF0ZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMYXVuY2hUZW1wbGF0ZURhdGEge1xuLyoqXG4gKiBUaGUgbmFtZXMgb2YgdGhlIHNlY3VyaXR5IGdyb3Vwcy4gRm9yIGEgbm9uZGVmYXVsdCBWUEMsIHlvdSBtdXN0IHVzZSBzZWN1cml0eSBncm91cCBJRHMgaW5zdGVhZC5cbiAqICBJZiB5b3Ugc3BlY2lmeSBhIG5ldHdvcmsgaW50ZXJmYWNlLCB5b3UgbXVzdCBzcGVjaWZ5IGFueSBzZWN1cml0eSBncm91cHMgYXMgcGFydCBvZiB0aGUgbmV0d29yayBpbnRlcmZhY2UgaW5zdGVhZCBvZiB1c2luZyB0aGlzIHBhcmFtZXRlci5cbiAqL1xuU2VjdXJpdHlHcm91cHM/OiBzdHJpbmdbXVxuLyoqXG4gKiBUaGUgdGFncyB0byBhcHBseSB0byByZXNvdXJjZXMgdGhhdCBhcmUgY3JlYXRlZCBkdXJpbmcgaW5zdGFuY2UgbGF1bmNoLlxuICogIFRvIHRhZyB0aGUgbGF1bmNoIHRlbXBsYXRlIGl0c2VsZiwgdXNlIFtUYWdTcGVjaWZpY2F0aW9uc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXJlc291cmNlLWVjMi1sYXVuY2h0ZW1wbGF0ZS5odG1sI2Nmbi1lYzItbGF1bmNodGVtcGxhdGUtdGFnc3BlY2lmaWNhdGlvbnMpLlxuICovXG5UYWdTcGVjaWZpY2F0aW9ucz86IFRhZ1NwZWNpZmljYXRpb25bXVxuTmV0d29ya1BlcmZvcm1hbmNlT3B0aW9ucz86IE5ldHdvcmtQZXJmb3JtYW5jZU9wdGlvbnNcbi8qKlxuICogVGhlIHVzZXIgZGF0YSB0byBtYWtlIGF2YWlsYWJsZSB0byB0aGUgaW5zdGFuY2UuIFlvdSBtdXN0IHByb3ZpZGUgYmFzZTY0LWVuY29kZWQgdGV4dC4gVXNlciBkYXRhIGlzIGxpbWl0ZWQgdG8gMTYgS0IuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW1J1biBjb21tYW5kcyB3aGVuIHlvdSBsYXVuY2ggYW4gRUMyIGluc3RhbmNlIHdpdGggdXNlciBkYXRhIGlucHV0XShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTRUMyL2xhdGVzdC9Vc2VyR3VpZGUvdXNlci1kYXRhLmh0bWwpIGluIHRoZSAqQW1hem9uIEVDMiBVc2VyIEd1aWRlKi5cbiAqICBJZiB5b3UgYXJlIGNyZWF0aW5nIHRoZSBsYXVuY2ggdGVtcGxhdGUgZm9yIHVzZSB3aXRoIEJBVENILCB0aGUgdXNlciBkYXRhIG11c3QgYmUgcHJvdmlkZWQgaW4gdGhlIFtNSU1FIG11bHRpLXBhcnQgYXJjaGl2ZSBmb3JtYXRdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9odHRwczovL2Nsb3VkaW5pdC5yZWFkdGhlZG9jcy5pby9lbi9sYXRlc3QvdG9waWNzL2Zvcm1hdC5odG1sI21pbWUtbXVsdGktcGFydC1hcmNoaXZlKS4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbQW1hem9uIEVDMiB1c2VyIGRhdGEgaW4gbGF1bmNoIHRlbXBsYXRlc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2JhdGNoL2xhdGVzdC91c2VyZ3VpZGUvbGF1bmNoLXRlbXBsYXRlcy5odG1sI2x0LXVzZXItZGF0YSkgaW4gdGhlICpVc2VyIEd1aWRlKi5cbiAqL1xuVXNlckRhdGE/OiBzdHJpbmdcbi8qKlxuICogVGhlIGJsb2NrIGRldmljZSBtYXBwaW5nLlxuICovXG5CbG9ja0RldmljZU1hcHBpbmdzPzogQmxvY2tEZXZpY2VNYXBwaW5nW11cbk1haW50ZW5hbmNlT3B0aW9ucz86IE1haW50ZW5hbmNlT3B0aW9uc1xuSWFtSW5zdGFuY2VQcm9maWxlPzogSWFtSW5zdGFuY2VQcm9maWxlXG4vKipcbiAqIFRoZSBJRCBvZiB0aGUga2VybmVsLlxuICogIFdlIHJlY29tbWVuZCB0aGF0IHlvdSB1c2UgUFYtR1JVQiBpbnN0ZWFkIG9mIGtlcm5lbHMgYW5kIFJBTSBkaXNrcy4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbVXNlciBQcm92aWRlZCBLZXJuZWxzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTRUMyL2xhdGVzdC9Vc2VyR3VpZGUvVXNlclByb3ZpZGVka2VybmVscy5odG1sKSBpbiB0aGUgKkFtYXpvbiBFQzIgVXNlciBHdWlkZSouXG4gKi9cbktlcm5lbElkPzogc3RyaW5nXG4vKipcbiAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBpbnN0YW5jZSBpcyBvcHRpbWl6ZWQgZm9yIEFtYXpvbiBFQlMgSS9PLiBUaGlzIG9wdGltaXphdGlvbiBwcm92aWRlcyBkZWRpY2F0ZWQgdGhyb3VnaHB1dCB0byBBbWF6b24gRUJTIGFuZCBhbiBvcHRpbWl6ZWQgY29uZmlndXJhdGlvbiBzdGFjayB0byBwcm92aWRlIG9wdGltYWwgQW1hem9uIEVCUyBJL08gcGVyZm9ybWFuY2UuIFRoaXMgb3B0aW1pemF0aW9uIGlzbid0IGF2YWlsYWJsZSB3aXRoIGFsbCBpbnN0YW5jZSB0eXBlcy4gQWRkaXRpb25hbCB1c2FnZSBjaGFyZ2VzIGFwcGx5IHdoZW4gdXNpbmcgYW4gRUJTLW9wdGltaXplZCBpbnN0YW5jZS5cbiAqL1xuRWJzT3B0aW1pemVkPzogYm9vbGVhblxuLyoqXG4gKiBEZXByZWNhdGVkLlxuICogICBBbWF6b24gRWxhc3RpYyBHcmFwaGljcyByZWFjaGVkIGVuZCBvZiBsaWZlIG9uIEphbnVhcnkgOCwgMjAyNC4gRm9yIHdvcmtsb2FkcyB0aGF0IHJlcXVpcmUgZ3JhcGhpY3MgYWNjZWxlcmF0aW9uLCB3ZSByZWNvbW1lbmQgdGhhdCB5b3UgdXNlIEFtYXpvbiBFQzIgRzRhZCwgRzRkbiwgb3IgRzUgaW5zdGFuY2VzLlxuICovXG5FbGFzdGljR3B1U3BlY2lmaWNhdGlvbnM/OiBFbGFzdGljR3B1U3BlY2lmaWNhdGlvbltdXG4vKipcbiAqIEFtYXpvbiBFbGFzdGljIEluZmVyZW5jZSBpcyBubyBsb25nZXIgYXZhaWxhYmxlLlxuICogICBBbiBlbGFzdGljIGluZmVyZW5jZSBhY2NlbGVyYXRvciB0byBhc3NvY2lhdGUgd2l0aCB0aGUgaW5zdGFuY2UuIEVsYXN0aWMgaW5mZXJlbmNlIGFjY2VsZXJhdG9ycyBhcmUgYSByZXNvdXJjZSB5b3UgY2FuIGF0dGFjaCB0byB5b3VyIEFtYXpvbiBFQzIgaW5zdGFuY2VzIHRvIGFjY2VsZXJhdGUgeW91ciBEZWVwIExlYXJuaW5nIChETCkgaW5mZXJlbmNlIHdvcmtsb2Fkcy5cbiAqICBZb3UgY2Fubm90IHNwZWNpZnkgYWNjZWxlcmF0b3JzIGZyb20gZGlmZmVyZW50IGdlbmVyYXRpb25zIGluIHRoZSBzYW1lIHJlcXVlc3QuXG4gKiAgIFN0YXJ0aW5nIEFwcmlsIDE1LCAyMDIzLCBBV1Mgd2lsbCBub3Qgb25ib2FyZCBuZXcgY3VzdG9tZXJzIHRvIEFtYXpvbiBFbGFzdGljIEluZmVyZW5jZSAoRUkpLCBhbmQgd2lsbCBoZWxwIGN1cnJlbnQgY3VzdG9tZXJzIG1pZ3JhdGUgdGhlaXIgd29ya2xvYWRzIHRvIG9wdGlvbnMgdGhhdCBvZmZlciBiZXR0ZXIgcHJpY2UgYW5kIHBlcmZvcm1hbmNlLiBBZnRlciBBcHJpbCAxNSwgMjAyMywgbmV3IGN1c3RvbWVycyB3aWxsIG5vdCBiZSBhYmxlIHRvIGxhdW5jaCBpbnN0YW5jZXMgd2l0aCBBbWF6b24gRUkgYWNjZWxlcmF0b3JzIGluIEFtYXpvbiBTYWdlTWFrZXIsIEFtYXpvbiBFQ1MsIG9yIEFtYXpvbiBFQzIuIEhvd2V2ZXIsIGN1c3RvbWVycyB3aG8gaGF2ZSB1c2VkIEFtYXpvbiBFSSBhdCBsZWFzdCBvbmNlIGR1cmluZyB0aGUgcGFzdCAzMC1kYXkgcGVyaW9kIGFyZSBjb25zaWRlcmVkIGN1cnJlbnQgY3VzdG9tZXJzIGFuZCB3aWxsIGJlIGFibGUgdG8gY29udGludWUgdXNpbmcgdGhlIHNlcnZpY2UuXG4gKi9cbkVsYXN0aWNJbmZlcmVuY2VBY2NlbGVyYXRvcnM/OiBMYXVuY2hUZW1wbGF0ZUVsYXN0aWNJbmZlcmVuY2VBY2NlbGVyYXRvcltdXG5QbGFjZW1lbnQ/OiBQbGFjZW1lbnRcbi8qKlxuICogVGhlIG5ldHdvcmsgaW50ZXJmYWNlcyBmb3IgdGhlIGluc3RhbmNlLlxuICovXG5OZXR3b3JrSW50ZXJmYWNlcz86IE5ldHdvcmtJbnRlcmZhY2VbXVxuRW5jbGF2ZU9wdGlvbnM/OiBFbmNsYXZlT3B0aW9uc1xuLyoqXG4gKiBUaGUgSUQgb2YgdGhlIEFNSS4gQWx0ZXJuYXRpdmVseSwgeW91IGNhbiBzcGVjaWZ5IGEgU3lzdGVtcyBNYW5hZ2VyIHBhcmFtZXRlciwgd2hpY2ggd2lsbCByZXNvbHZlIHRvIGFuIEFNSSBJRCBvbiBsYXVuY2guXG4gKiAgVmFsaWQgZm9ybWF0czpcbiAqICAgKyAgIGBgYW1pLTBhYzM5NGQ2YTNleGFtcGxlYGAgXG4gKiAgICsgICBgYHJlc29sdmU6c3NtOnBhcmFtZXRlci1uYW1lYGAgXG4gKiAgICsgICBgYHJlc29sdmU6c3NtOnBhcmFtZXRlci1uYW1lOnZlcnNpb24tbnVtYmVyYGAgXG4gKiAgICsgICBgYHJlc29sdmU6c3NtOnBhcmFtZXRlci1uYW1lOmxhYmVsYGAgXG4gKiAgIFxuICogIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW1VzZSBhIFN5c3RlbXMgTWFuYWdlciBwYXJhbWV0ZXIgdG8gZmluZCBhbiBBTUldKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NFQzIvbGF0ZXN0L1VzZXJHdWlkZS9maW5kaW5nLWFuLWFtaS5odG1sI3VzaW5nLXN5c3RlbXMtbWFuYWdlci1wYXJhbWV0ZXItdG8tZmluZC1BTUkpIGluIHRoZSAqQW1hem9uIEVsYXN0aWMgQ29tcHV0ZSBDbG91ZCBVc2VyIEd1aWRlKi5cbiAqL1xuSW1hZ2VJZD86IHN0cmluZ1xuLyoqXG4gKiBUaGUgaW5zdGFuY2UgdHlwZS4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbQW1hem9uIEVDMiBpbnN0YW5jZSB0eXBlc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0VDMi9sYXRlc3QvVXNlckd1aWRlL2luc3RhbmNlLXR5cGVzLmh0bWwpIGluIHRoZSAqQW1hem9uIEVDMiBVc2VyIEd1aWRlKi5cbiAqICBJZiB5b3Ugc3BlY2lmeSBgYEluc3RhbmNlVHlwZWBgLCB5b3UgY2FuJ3Qgc3BlY2lmeSBgYEluc3RhbmNlUmVxdWlyZW1lbnRzYGAuXG4gKi9cbkluc3RhbmNlVHlwZT86IHN0cmluZ1xuTW9uaXRvcmluZz86IE1vbml0b3JpbmdcbkhpYmVybmF0aW9uT3B0aW9ucz86IEhpYmVybmF0aW9uT3B0aW9uc1xuTWV0YWRhdGFPcHRpb25zPzogTWV0YWRhdGFPcHRpb25zXG4vKipcbiAqIFRoZSBsaWNlbnNlIGNvbmZpZ3VyYXRpb25zLlxuICovXG5MaWNlbnNlU3BlY2lmaWNhdGlvbnM/OiBMaWNlbnNlU3BlY2lmaWNhdGlvbltdXG4vKipcbiAqIEluZGljYXRlcyB3aGV0aGVyIGFuIGluc3RhbmNlIHN0b3BzIG9yIHRlcm1pbmF0ZXMgd2hlbiB5b3UgaW5pdGlhdGUgc2h1dGRvd24gZnJvbSB0aGUgaW5zdGFuY2UgKHVzaW5nIHRoZSBvcGVyYXRpbmcgc3lzdGVtIGNvbW1hbmQgZm9yIHN5c3RlbSBzaHV0ZG93bikuXG4gKiAgRGVmYXVsdDogYGBzdG9wYGBcbiAqL1xuSW5zdGFuY2VJbml0aWF0ZWRTaHV0ZG93bkJlaGF2aW9yPzogc3RyaW5nXG4vKipcbiAqIEluZGljYXRlcyB3aGV0aGVyIHRvIGVuYWJsZSB0aGUgaW5zdGFuY2UgZm9yIHN0b3AgcHJvdGVjdGlvbi4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbRW5hYmxlIHN0b3AgcHJvdGVjdGlvbiBmb3IgeW91ciBFQzIgaW5zdGFuY2VzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTRUMyL2xhdGVzdC9Vc2VyR3VpZGUvZWMyLXN0b3AtcHJvdGVjdGlvbi5odG1sKSBpbiB0aGUgKkFtYXpvbiBFQzIgVXNlciBHdWlkZSouXG4gKi9cbkRpc2FibGVBcGlTdG9wPzogYm9vbGVhblxuQ3B1T3B0aW9ucz86IENwdU9wdGlvbnNcblByaXZhdGVEbnNOYW1lT3B0aW9ucz86IFByaXZhdGVEbnNOYW1lT3B0aW9uc1xuLyoqXG4gKiBUaGUgSURzIG9mIHRoZSBzZWN1cml0eSBncm91cHMuIFlvdSBjYW4gc3BlY2lmeSB0aGUgSURzIG9mIGV4aXN0aW5nIHNlY3VyaXR5IGdyb3VwcyBhbmQgcmVmZXJlbmNlcyB0byByZXNvdXJjZXMgY3JlYXRlZCBieSB0aGUgc3RhY2sgdGVtcGxhdGUuXG4gKiAgSWYgeW91IHNwZWNpZnkgYSBuZXR3b3JrIGludGVyZmFjZSwgeW91IG11c3Qgc3BlY2lmeSBhbnkgc2VjdXJpdHkgZ3JvdXBzIGFzIHBhcnQgb2YgdGhlIG5ldHdvcmsgaW50ZXJmYWNlIGluc3RlYWQuXG4gKi9cblNlY3VyaXR5R3JvdXBJZHM/OiBzdHJpbmdbXVxuLyoqXG4gKiBUaGUgbmFtZSBvZiB0aGUga2V5IHBhaXIuIFlvdSBjYW4gY3JlYXRlIGEga2V5IHBhaXIgdXNpbmcgW0NyZWF0ZUtleVBhaXJdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NFQzIvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfQ3JlYXRlS2V5UGFpci5odG1sKSBvciBbSW1wb3J0S2V5UGFpcl0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0VDMi9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9JbXBvcnRLZXlQYWlyLmh0bWwpLlxuICogICBJZiB5b3UgZG8gbm90IHNwZWNpZnkgYSBrZXkgcGFpciwgeW91IGNhbid0IGNvbm5lY3QgdG8gdGhlIGluc3RhbmNlIHVubGVzcyB5b3UgY2hvb3NlIGFuIEFNSSB0aGF0IGlzIGNvbmZpZ3VyZWQgdG8gYWxsb3cgdXNlcnMgYW5vdGhlciB3YXkgdG8gbG9nIGluLlxuICovXG5LZXlOYW1lPzogc3RyaW5nXG4vKipcbiAqIEluZGljYXRlcyB3aGV0aGVyIHRlcm1pbmF0aW9uIHByb3RlY3Rpb24gaXMgZW5hYmxlZCBmb3IgdGhlIGluc3RhbmNlLiBUaGUgZGVmYXVsdCBpcyBgYGZhbHNlYGAsIHdoaWNoIG1lYW5zIHRoYXQgeW91IGNhbiB0ZXJtaW5hdGUgdGhlIGluc3RhbmNlIHVzaW5nIHRoZSBBbWF6b24gRUMyIGNvbnNvbGUsIGNvbW1hbmQgbGluZSB0b29scywgb3IgQVBJLiBZb3UgY2FuIGVuYWJsZSB0ZXJtaW5hdGlvbiBwcm90ZWN0aW9uIHdoZW4geW91IGxhdW5jaCBhbiBpbnN0YW5jZSwgd2hpbGUgdGhlIGluc3RhbmNlIGlzIHJ1bm5pbmcsIG9yIHdoaWxlIHRoZSBpbnN0YW5jZSBpcyBzdG9wcGVkLlxuICovXG5EaXNhYmxlQXBpVGVybWluYXRpb24/OiBib29sZWFuXG5JbnN0YW5jZU1hcmtldE9wdGlvbnM/OiBJbnN0YW5jZU1hcmtldE9wdGlvbnNcbkluc3RhbmNlUmVxdWlyZW1lbnRzPzogSW5zdGFuY2VSZXF1aXJlbWVudHNcbi8qKlxuICogVGhlIElEIG9mIHRoZSBSQU0gZGlzay5cbiAqICAgV2UgcmVjb21tZW5kIHRoYXQgeW91IHVzZSBQVi1HUlVCIGluc3RlYWQgb2Yga2VybmVscyBhbmQgUkFNIGRpc2tzLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtVc2VyIHByb3ZpZGVkIGtlcm5lbHNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NFQzIvbGF0ZXN0L1VzZXJHdWlkZS9Vc2VyUHJvdmlkZWRrZXJuZWxzLmh0bWwpIGluIHRoZSAqQW1hem9uIEVDMiBVc2VyIEd1aWRlKi5cbiAqL1xuUmFtRGlza0lkPzogc3RyaW5nXG5DYXBhY2l0eVJlc2VydmF0aW9uU3BlY2lmaWNhdGlvbj86IENhcGFjaXR5UmVzZXJ2YXRpb25TcGVjaWZpY2F0aW9uXG5DcmVkaXRTcGVjaWZpY2F0aW9uPzogQ3JlZGl0U3BlY2lmaWNhdGlvblxufVxuLyoqXG4gKiBTcGVjaWZpZXMgdGhlIHRhZ3MgdG8gYXBwbHkgdG8gcmVzb3VyY2VzIHRoYXQgYXJlIGNyZWF0ZWQgZHVyaW5nIGluc3RhbmNlIGxhdW5jaC5cbiAqICAgYGBUYWdTcGVjaWZpY2F0aW9uYGAgaXMgYSBwcm9wZXJ0eSB0eXBlIG9mIFtUYWdTcGVjaWZpY2F0aW9uc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtZWMyLWxhdW5jaHRlbXBsYXRlLWxhdW5jaHRlbXBsYXRlZGF0YS5odG1sI2Nmbi1lYzItbGF1bmNodGVtcGxhdGUtbGF1bmNodGVtcGxhdGVkYXRhLXRhZ3NwZWNpZmljYXRpb25zKS4gW1RhZ1NwZWNpZmljYXRpb25zXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1lYzItbGF1bmNodGVtcGxhdGUtbGF1bmNodGVtcGxhdGVkYXRhLmh0bWwjY2ZuLWVjMi1sYXVuY2h0ZW1wbGF0ZS1sYXVuY2h0ZW1wbGF0ZWRhdGEtdGFnc3BlY2lmaWNhdGlvbnMpIGlzIGEgcHJvcGVydHkgb2YgW0FXUzo6RUMyOjpMYXVuY2hUZW1wbGF0ZSBMYXVuY2hUZW1wbGF0ZURhdGFdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLWVjMi1sYXVuY2h0ZW1wbGF0ZS1sYXVuY2h0ZW1wbGF0ZWRhdGEuaHRtbCkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGFnU3BlY2lmaWNhdGlvbiB7XG4vKipcbiAqIFRoZSB0eXBlIG9mIHJlc291cmNlIHRvIHRhZy4gWW91IGNhbiBzcGVjaWZ5IHRhZ3MgZm9yIHRoZSBmb2xsb3dpbmcgcmVzb3VyY2UgdHlwZXMgb25seTogYGBpbnN0YW5jZWBgIHwgYGB2b2x1bWVgYCB8IGBgbmV0d29yay1pbnRlcmZhY2VgYCB8IGBgc3BvdC1pbnN0YW5jZXMtcmVxdWVzdGBgLiBJZiB0aGUgaW5zdGFuY2UgZG9lcyBub3QgaW5jbHVkZSB0aGUgcmVzb3VyY2UgdHlwZSB0aGF0IHlvdSBzcGVjaWZ5LCB0aGUgaW5zdGFuY2UgbGF1bmNoIGZhaWxzLiBGb3IgZXhhbXBsZSwgbm90IGFsbCBpbnN0YW5jZSB0eXBlcyBpbmNsdWRlIGEgdm9sdW1lLlxuICogIFRvIHRhZyBhIHJlc291cmNlIGFmdGVyIGl0IGhhcyBiZWVuIGNyZWF0ZWQsIHNlZSBbQ3JlYXRlVGFnc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0VDMi9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9DcmVhdGVUYWdzLmh0bWwpLlxuICovXG5SZXNvdXJjZVR5cGU/OiBzdHJpbmdcbi8qKlxuICogVGhlIHRhZ3MgdG8gYXBwbHkgdG8gdGhlIHJlc291cmNlLlxuICovXG5UYWdzPzogVGFnW11cbn1cbi8qKlxuICogU3BlY2lmaWVzIGEgdGFnLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtSZXNvdXJjZSB0YWdzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1yZXNvdXJjZS10YWdzLmh0bWwpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRhZyB7XG4vKipcbiAqIFRoZSB0YWcgdmFsdWUuXG4gKi9cblZhbHVlOiBzdHJpbmdcbi8qKlxuICogVGhlIHRhZyBrZXkuXG4gKi9cbktleTogc3RyaW5nXG59XG4vKipcbiAqIFRoZSBzZXR0aW5ncyBmb3IgdGhlIG5ldHdvcmsgcGVyZm9ybWFuY2Ugb3B0aW9ucyBmb3IgdGhlIGluc3RhbmNlLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtFQzIgaW5zdGFuY2UgYmFuZHdpZHRoIHdlaWdodGluZyBjb25maWd1cmF0aW9uXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTRUMyL2xhdGVzdC9Vc2VyR3VpZGUvY29uZmlndXJlLWJhbmR3aWR0aC13ZWlnaHRpbmcuaHRtbCkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTmV0d29ya1BlcmZvcm1hbmNlT3B0aW9ucyB7XG4vKipcbiAqIFNwZWNpZmllcyB0aGUgcGVyZm9ybWFuY2Ugb3B0aW9ucyBvZiB5b3VyIGluc3RhbmNlIG9yIHNldHMgaXQgdG8gZGVmYXVsdC5cbiAqL1xuQmFuZHdpZHRoV2VpZ2h0aW5nPzogc3RyaW5nXG59XG4vKipcbiAqIFNwZWNpZmllcyBhIGJsb2NrIGRldmljZSBtYXBwaW5nIGZvciBhIGxhdW5jaCB0ZW1wbGF0ZS4gWW91IG11c3Qgc3BlY2lmeSBgYERldmljZU5hbWVgYCBwbHVzIGV4YWN0bHkgb25lIG9mIHRoZSBmb2xsb3dpbmcgcHJvcGVydGllczogYGBFYnNgYCwgYGBOb0RldmljZWBgLCBvciBgYFZpcnR1YWxOYW1lYGAuXG4gKiAgIGBgQmxvY2tEZXZpY2VNYXBwaW5nYGAgaXMgYSBwcm9wZXJ0eSBvZiBbQVdTOjpFQzI6OkxhdW5jaFRlbXBsYXRlIExhdW5jaFRlbXBsYXRlRGF0YV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtZWMyLWxhdW5jaHRlbXBsYXRlLWxhdW5jaHRlbXBsYXRlZGF0YS5odG1sKS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCbG9ja0RldmljZU1hcHBpbmcge1xuRWJzPzogRWJzXG4vKipcbiAqIFRvIG9taXQgdGhlIGRldmljZSBmcm9tIHRoZSBibG9jayBkZXZpY2UgbWFwcGluZywgc3BlY2lmeSBhbiBlbXB0eSBzdHJpbmcuXG4gKi9cbk5vRGV2aWNlPzogc3RyaW5nXG4vKipcbiAqIFRoZSB2aXJ0dWFsIGRldmljZSBuYW1lIChlcGhlbWVyYWxOKS4gSW5zdGFuY2Ugc3RvcmUgdm9sdW1lcyBhcmUgbnVtYmVyZWQgc3RhcnRpbmcgZnJvbSAwLiBBbiBpbnN0YW5jZSB0eXBlIHdpdGggMiBhdmFpbGFibGUgaW5zdGFuY2Ugc3RvcmUgdm9sdW1lcyBjYW4gc3BlY2lmeSBtYXBwaW5ncyBmb3IgZXBoZW1lcmFsMCBhbmQgZXBoZW1lcmFsMS4gVGhlIG51bWJlciBvZiBhdmFpbGFibGUgaW5zdGFuY2Ugc3RvcmUgdm9sdW1lcyBkZXBlbmRzIG9uIHRoZSBpbnN0YW5jZSB0eXBlLiBBZnRlciB5b3UgY29ubmVjdCB0byB0aGUgaW5zdGFuY2UsIHlvdSBtdXN0IG1vdW50IHRoZSB2b2x1bWUuXG4gKi9cblZpcnR1YWxOYW1lPzogc3RyaW5nXG4vKipcbiAqIFRoZSBkZXZpY2UgbmFtZSAoZm9yIGV4YW1wbGUsIC9kZXYvc2RoIG9yIHh2ZGgpLlxuICovXG5EZXZpY2VOYW1lPzogc3RyaW5nXG59XG4vKipcbiAqIFBhcmFtZXRlcnMgdXNlZCB0byBhdXRvbWF0aWNhbGx5IHNldCB1cCBFQlMgdm9sdW1lcyB3aGVuIHRoZSBpbnN0YW5jZSBpcyBsYXVuY2hlZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFYnMge1xuLyoqXG4gKiBUaGUgSUQgb2YgdGhlIHNuYXBzaG90LlxuICovXG5TbmFwc2hvdElkPzogc3RyaW5nXG4vKipcbiAqIFRoZSB2b2x1bWUgdHlwZS4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbQW1hem9uIEVCUyB2b2x1bWUgdHlwZXNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9lYnMvbGF0ZXN0L3VzZXJndWlkZS9lYnMtdm9sdW1lLXR5cGVzLmh0bWwpIGluIHRoZSAqQW1hem9uIEVCUyBVc2VyIEd1aWRlKi5cbiAqL1xuVm9sdW1lVHlwZT86IHN0cmluZ1xuLyoqXG4gKiBJZGVudGlmaWVyIChrZXkgSUQsIGtleSBhbGlhcywga2V5IEFSTiwgb3IgYWxpYXMgQVJOKSBvZiB0aGUgY3VzdG9tZXIgbWFuYWdlZCBLTVMga2V5IHRvIHVzZSBmb3IgRUJTIGVuY3J5cHRpb24uXG4gKi9cbkttc0tleUlkPzogc3RyaW5nXG4vKipcbiAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBFQlMgdm9sdW1lIGlzIGVuY3J5cHRlZC4gRW5jcnlwdGVkIHZvbHVtZXMgY2FuIG9ubHkgYmUgYXR0YWNoZWQgdG8gaW5zdGFuY2VzIHRoYXQgc3VwcG9ydCBBbWF6b24gRUJTIGVuY3J5cHRpb24uIElmIHlvdSBhcmUgY3JlYXRpbmcgYSB2b2x1bWUgZnJvbSBhIHNuYXBzaG90LCB5b3UgY2FuJ3Qgc3BlY2lmeSBhbiBlbmNyeXB0aW9uIHZhbHVlLlxuICovXG5FbmNyeXB0ZWQ/OiBib29sZWFuXG4vKipcbiAqIFRoZSB0aHJvdWdocHV0IHRvIHByb3Zpc2lvbiBmb3IgYSBgYGdwM2BgIHZvbHVtZSwgd2l0aCBhIG1heGltdW0gb2YgMSwwMDAgTWlCL3MuXG4gKiAgVmFsaWQgUmFuZ2U6IE1pbmltdW0gdmFsdWUgb2YgMTI1LiBNYXhpbXVtIHZhbHVlIG9mIDEwMDAuXG4gKi9cblRocm91Z2hwdXQ/OiBudW1iZXJcbi8qKlxuICogVGhlIG51bWJlciBvZiBJL08gb3BlcmF0aW9ucyBwZXIgc2Vjb25kIChJT1BTKS4gRm9yIGBgZ3AzYGAsIGBgaW8xYGAsIGFuZCBgYGlvMmBgIHZvbHVtZXMsIHRoaXMgcmVwcmVzZW50cyB0aGUgbnVtYmVyIG9mIElPUFMgdGhhdCBhcmUgcHJvdmlzaW9uZWQgZm9yIHRoZSB2b2x1bWUuIEZvciBgYGdwMmBgIHZvbHVtZXMsIHRoaXMgcmVwcmVzZW50cyB0aGUgYmFzZWxpbmUgcGVyZm9ybWFuY2Ugb2YgdGhlIHZvbHVtZSBhbmQgdGhlIHJhdGUgYXQgd2hpY2ggdGhlIHZvbHVtZSBhY2N1bXVsYXRlcyBJL08gY3JlZGl0cyBmb3IgYnVyc3RpbmcuXG4gKiAgVGhlIGZvbGxvd2luZyBhcmUgdGhlIHN1cHBvcnRlZCB2YWx1ZXMgZm9yIGVhY2ggdm9sdW1lIHR5cGU6XG4gKiAgICsgICBgYGdwM2BgOiAzLDAwMCAtIDE2LDAwMCBJT1BTXG4gKiAgICsgICBgYGlvMWBgOiAxMDAgLSA2NCwwMDAgSU9QU1xuICogICArICAgYGBpbzJgYDogMTAwIC0gMjU2LDAwMCBJT1BTXG4gKiAgIFxuICogIEZvciBgYGlvMmBgIHZvbHVtZXMsIHlvdSBjYW4gYWNoaWV2ZSB1cCB0byAyNTYsMDAwIElPUFMgb24gW2luc3RhbmNlcyBidWlsdCBvbiB0aGUgTml0cm8gU3lzdGVtXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZWMyL2xhdGVzdC9pbnN0YW5jZXR5cGVzL2VjMi1uaXRyby1pbnN0YW5jZXMuaHRtbCkuIE9uIG90aGVyIGluc3RhbmNlcywgeW91IGNhbiBhY2hpZXZlIHBlcmZvcm1hbmNlIHVwIHRvIDMyLDAwMCBJT1BTLlxuICogIFRoaXMgcGFyYW1ldGVyIGlzIHN1cHBvcnRlZCBmb3IgYGBpbzFgYCwgYGBpbzJgYCwgYW5kIGBgZ3AzYGAgdm9sdW1lcyBvbmx5LlxuICovXG5Jb3BzPzogbnVtYmVyXG4vKipcbiAqIFRoZSBzaXplIG9mIHRoZSB2b2x1bWUsIGluIEdpQnMuIFlvdSBtdXN0IHNwZWNpZnkgZWl0aGVyIGEgc25hcHNob3QgSUQgb3IgYSB2b2x1bWUgc2l6ZS4gVGhlIGZvbGxvd2luZyBhcmUgdGhlIHN1cHBvcnRlZCB2b2x1bWVzIHNpemVzIGZvciBlYWNoIHZvbHVtZSB0eXBlOlxuICogICArICAgYGBncDJgYCBhbmQgYGBncDNgYDogMSAtIDE2LDM4NCBHaUJcbiAqICAgKyAgIGBgaW8xYGA6IDQgLSAxNiwzODQgR2lCXG4gKiAgICsgICBgYGlvMmBgOiA0IC0gNjUsNTM2IEdpQlxuICogICArICAgYGBzdDFgYCBhbmQgYGBzYzFgYDogMTI1IC0gMTYsMzg0IEdpQlxuICogICArICAgYGBzdGFuZGFyZGBgOiAxIC0gMTAyNCBHaUJcbiAqL1xuVm9sdW1lU2l6ZT86IG51bWJlclxuLyoqXG4gKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgRUJTIHZvbHVtZSBpcyBkZWxldGVkIG9uIGluc3RhbmNlIHRlcm1pbmF0aW9uLlxuICovXG5EZWxldGVPblRlcm1pbmF0aW9uPzogYm9vbGVhblxufVxuLyoqXG4gKiBUaGUgbWFpbnRlbmFuY2Ugb3B0aW9ucyBvZiB5b3VyIGluc3RhbmNlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1haW50ZW5hbmNlT3B0aW9ucyB7XG4vKipcbiAqIERpc2FibGVzIHRoZSBhdXRvbWF0aWMgcmVjb3ZlcnkgYmVoYXZpb3Igb2YgeW91ciBpbnN0YW5jZSBvciBzZXRzIGl0IHRvIGRlZmF1bHQuXG4gKi9cbkF1dG9SZWNvdmVyeT86IHN0cmluZ1xufVxuLyoqXG4gKiBUaGUgbmFtZSBvciBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKSBvZiBhbiBJQU0gaW5zdGFuY2UgcHJvZmlsZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJYW1JbnN0YW5jZVByb2ZpbGUge1xuLyoqXG4gKiBUaGUgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTikgb2YgdGhlIGluc3RhbmNlIHByb2ZpbGUuXG4gKi9cbkFybj86IHN0cmluZ1xuLyoqXG4gKiBUaGUgbmFtZSBvZiB0aGUgaW5zdGFuY2UgcHJvZmlsZS5cbiAqL1xuTmFtZT86IHN0cmluZ1xufVxuLyoqXG4gKiBBbWF6b24gRWxhc3RpYyBHcmFwaGljcyByZWFjaGVkIGVuZCBvZiBsaWZlIG9uIEphbnVhcnkgOCwgMjAyNC4gRm9yIHdvcmtsb2FkcyB0aGF0IHJlcXVpcmUgZ3JhcGhpY3MgYWNjZWxlcmF0aW9uLCB3ZSByZWNvbW1lbmQgdGhhdCB5b3UgdXNlIEFtYXpvbiBFQzIgRzRhZCwgRzRkbiwgb3IgRzUgaW5zdGFuY2VzLlxuICogICBTcGVjaWZpZXMgYSBzcGVjaWZpY2F0aW9uIGZvciBhbiBFbGFzdGljIEdQVSBmb3IgYW4gQW1hem9uIEVDMiBsYXVuY2ggdGVtcGxhdGUuXG4gKiAgIGBgRWxhc3RpY0dwdVNwZWNpZmljYXRpb25gYCBpcyBhIHByb3BlcnR5IG9mIFtBV1M6OkVDMjo6TGF1bmNoVGVtcGxhdGUgTGF1bmNoVGVtcGxhdGVEYXRhXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1lYzItbGF1bmNodGVtcGxhdGUtbGF1bmNodGVtcGxhdGVkYXRhLmh0bWwpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEVsYXN0aWNHcHVTcGVjaWZpY2F0aW9uIHtcbi8qKlxuICogVGhlIHR5cGUgb2YgRWxhc3RpYyBHcmFwaGljcyBhY2NlbGVyYXRvci5cbiAqL1xuVHlwZT86IHN0cmluZ1xufVxuLyoqXG4gKiBTcGVjaWZpZXMgYW4gZWxhc3RpYyBpbmZlcmVuY2UgYWNjZWxlcmF0b3IuXG4gKiAgIGBgTGF1bmNoVGVtcGxhdGVFbGFzdGljSW5mZXJlbmNlQWNjZWxlcmF0b3JgYCBpcyBhIHByb3BlcnR5IG9mIFtBV1M6OkVDMjo6TGF1bmNoVGVtcGxhdGUgTGF1bmNoVGVtcGxhdGVEYXRhXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1lYzItbGF1bmNodGVtcGxhdGUtbGF1bmNodGVtcGxhdGVkYXRhLmh0bWwpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIExhdW5jaFRlbXBsYXRlRWxhc3RpY0luZmVyZW5jZUFjY2VsZXJhdG9yIHtcbi8qKlxuICogVGhlIHR5cGUgb2YgZWxhc3RpYyBpbmZlcmVuY2UgYWNjZWxlcmF0b3IuIFRoZSBwb3NzaWJsZSB2YWx1ZXMgYXJlIGVpYTEubWVkaXVtLCBlaWExLmxhcmdlLCBhbmQgZWlhMS54bGFyZ2UuXG4gKi9cblR5cGU/OiBzdHJpbmdcbi8qKlxuICogVGhlIG51bWJlciBvZiBlbGFzdGljIGluZmVyZW5jZSBhY2NlbGVyYXRvcnMgdG8gYXR0YWNoIHRvIHRoZSBpbnN0YW5jZS4gXG4gKiAgRGVmYXVsdDogMVxuICovXG5Db3VudD86IG51bWJlclxufVxuLyoqXG4gKiBUaGUgcGxhY2VtZW50IGZvciB0aGUgaW5zdGFuY2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGxhY2VtZW50IHtcbi8qKlxuICogVGhlIG5hbWUgb2YgdGhlIHBsYWNlbWVudCBncm91cCBmb3IgdGhlIGluc3RhbmNlLlxuICovXG5Hcm91cE5hbWU/OiBzdHJpbmdcbi8qKlxuICogVGhlIHRlbmFuY3kgb2YgdGhlIGluc3RhbmNlLiBBbiBpbnN0YW5jZSB3aXRoIGEgdGVuYW5jeSBvZiBkZWRpY2F0ZWQgcnVucyBvbiBzaW5nbGUtdGVuYW50IGhhcmR3YXJlLlxuICovXG5UZW5hbmN5Pzogc3RyaW5nXG4vKipcbiAqIFJlc2VydmVkIGZvciBmdXR1cmUgdXNlLlxuICovXG5TcHJlYWREb21haW4/OiBzdHJpbmdcbi8qKlxuICogVGhlIG51bWJlciBvZiB0aGUgcGFydGl0aW9uIHRoZSBpbnN0YW5jZSBzaG91bGQgbGF1bmNoIGluLiBWYWxpZCBvbmx5IGlmIHRoZSBwbGFjZW1lbnQgZ3JvdXAgc3RyYXRlZ3kgaXMgc2V0IHRvIGBgcGFydGl0aW9uYGAuXG4gKi9cblBhcnRpdGlvbk51bWJlcj86IG51bWJlclxuLyoqXG4gKiBUaGUgQXZhaWxhYmlsaXR5IFpvbmUgZm9yIHRoZSBpbnN0YW5jZS5cbiAqL1xuQXZhaWxhYmlsaXR5Wm9uZT86IHN0cmluZ1xuLyoqXG4gKiBUaGUgYWZmaW5pdHkgc2V0dGluZyBmb3IgYW4gaW5zdGFuY2Ugb24gYSBEZWRpY2F0ZWQgSG9zdC5cbiAqL1xuQWZmaW5pdHk/OiBzdHJpbmdcbi8qKlxuICogVGhlIElEIG9mIHRoZSBEZWRpY2F0ZWQgSG9zdCBmb3IgdGhlIGluc3RhbmNlLlxuICovXG5Ib3N0SWQ/OiBzdHJpbmdcbi8qKlxuICogVGhlIEFSTiBvZiB0aGUgaG9zdCByZXNvdXJjZSBncm91cCBpbiB3aGljaCB0byBsYXVuY2ggdGhlIGluc3RhbmNlcy4gSWYgeW91IHNwZWNpZnkgYSBob3N0IHJlc291cmNlIGdyb3VwIEFSTiwgb21pdCB0aGUgKlRlbmFuY3kqIHBhcmFtZXRlciBvciBzZXQgaXQgdG8gYGBob3N0YGAuXG4gKi9cbkhvc3RSZXNvdXJjZUdyb3VwQXJuPzogc3RyaW5nXG4vKipcbiAqIFRoZSBHcm91cCBJZCBvZiBhIHBsYWNlbWVudCBncm91cC4gWW91IG11c3Qgc3BlY2lmeSB0aGUgUGxhY2VtZW50IEdyb3VwICpHcm91cCBJZCogdG8gbGF1bmNoIGFuIGluc3RhbmNlIGluIGEgc2hhcmVkIHBsYWNlbWVudCBncm91cC5cbiAqL1xuR3JvdXBJZD86IHN0cmluZ1xufVxuLyoqXG4gKiBTcGVjaWZpZXMgdGhlIHBhcmFtZXRlcnMgZm9yIGEgbmV0d29yayBpbnRlcmZhY2UuXG4gKiAgIGBgTmV0d29ya0ludGVyZmFjZWBgIGlzIGEgcHJvcGVydHkgb2YgW0FXUzo6RUMyOjpMYXVuY2hUZW1wbGF0ZSBMYXVuY2hUZW1wbGF0ZURhdGFdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLWVjMi1sYXVuY2h0ZW1wbGF0ZS1sYXVuY2h0ZW1wbGF0ZWRhdGEuaHRtbCkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTmV0d29ya0ludGVyZmFjZSB7XG4vKipcbiAqIEEgZGVzY3JpcHRpb24gZm9yIHRoZSBuZXR3b3JrIGludGVyZmFjZS5cbiAqL1xuRGVzY3JpcHRpb24/OiBzdHJpbmdcbi8qKlxuICogVGhlIHByaW1hcnkgcHJpdmF0ZSBJUHY0IGFkZHJlc3Mgb2YgdGhlIG5ldHdvcmsgaW50ZXJmYWNlLlxuICovXG5Qcml2YXRlSXBBZGRyZXNzPzogc3RyaW5nXG4vKipcbiAqIE9uZSBvciBtb3JlIHByaXZhdGUgSVB2NCBhZGRyZXNzZXMuXG4gKi9cblByaXZhdGVJcEFkZHJlc3Nlcz86IFByaXZhdGVJcEFkZFtdXG4vKipcbiAqIFRoZSBudW1iZXIgb2Ygc2Vjb25kYXJ5IHByaXZhdGUgSVB2NCBhZGRyZXNzZXMgdG8gYXNzaWduIHRvIGEgbmV0d29yayBpbnRlcmZhY2UuXG4gKi9cblNlY29uZGFyeVByaXZhdGVJcEFkZHJlc3NDb3VudD86IG51bWJlclxuLyoqXG4gKiBUaGUgbnVtYmVyIG9mIElQdjYgcHJlZml4ZXMgdG8gYmUgYXV0b21hdGljYWxseSBhc3NpZ25lZCB0byB0aGUgbmV0d29yayBpbnRlcmZhY2UuIFlvdSBjYW5ub3QgdXNlIHRoaXMgb3B0aW9uIGlmIHlvdSB1c2UgdGhlIGBgSXB2NlByZWZpeGBgIG9wdGlvbi5cbiAqL1xuSXB2NlByZWZpeENvdW50PzogbnVtYmVyXG4vKipcbiAqIE9uZSBvciBtb3JlIElQdjQgcHJlZml4ZXMgdG8gYmUgYXNzaWduZWQgdG8gdGhlIG5ldHdvcmsgaW50ZXJmYWNlLiBZb3UgY2Fubm90IHVzZSB0aGlzIG9wdGlvbiBpZiB5b3UgdXNlIHRoZSBgYElwdjRQcmVmaXhDb3VudGBgIG9wdGlvbi5cbiAqL1xuSXB2NFByZWZpeGVzPzogSXB2NFByZWZpeFNwZWNpZmljYXRpb25bXVxuLyoqXG4gKiBUaGUgZGV2aWNlIGluZGV4IGZvciB0aGUgbmV0d29yayBpbnRlcmZhY2UgYXR0YWNobWVudC4gSWYgdGhlIG5ldHdvcmsgaW50ZXJmYWNlIGlzIG9mIHR5cGUgYGBpbnRlcmZhY2VgYCwgeW91IG11c3Qgc3BlY2lmeSBhIGRldmljZSBpbmRleC5cbiAqICBJZiB5b3UgY3JlYXRlIGEgbGF1bmNoIHRlbXBsYXRlIHRoYXQgaW5jbHVkZXMgc2Vjb25kYXJ5IG5ldHdvcmsgaW50ZXJmYWNlcyBidXQgbm8gcHJpbWFyeSBuZXR3b3JrIGludGVyZmFjZSwgYW5kIHlvdSBzcGVjaWZ5IGl0IHVzaW5nIHRoZSBgYExhdW5jaFRlbXBsYXRlYGAgcHJvcGVydHkgb2YgYGBBV1M6OkVDMjo6SW5zdGFuY2VgYCwgdGhlbiB5b3UgbXVzdCBpbmNsdWRlIGEgcHJpbWFyeSBuZXR3b3JrIGludGVyZmFjZSB1c2luZyB0aGUgYGBOZXR3b3JrSW50ZXJmYWNlc2BgIHByb3BlcnR5IG9mIGBgQVdTOjpFQzI6Okluc3RhbmNlYGAuXG4gKi9cbkRldmljZUluZGV4PzogbnVtYmVyXG4vKipcbiAqIFRoZSBwcmltYXJ5IElQdjYgYWRkcmVzcyBvZiB0aGUgbmV0d29yayBpbnRlcmZhY2UuIFdoZW4geW91IGVuYWJsZSBhbiBJUHY2IEdVQSBhZGRyZXNzIHRvIGJlIGEgcHJpbWFyeSBJUHY2LCB0aGUgZmlyc3QgSVB2NiBHVUEgd2lsbCBiZSBtYWRlIHRoZSBwcmltYXJ5IElQdjYgYWRkcmVzcyB1bnRpbCB0aGUgaW5zdGFuY2UgaXMgdGVybWluYXRlZCBvciB0aGUgbmV0d29yayBpbnRlcmZhY2UgaXMgZGV0YWNoZWQuIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHByaW1hcnkgSVB2NiBhZGRyZXNzZXMsIHNlZSBbUnVuSW5zdGFuY2VzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTRUMyL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX1J1bkluc3RhbmNlcy5odG1sKS5cbiAqL1xuUHJpbWFyeUlwdjY/OiBib29sZWFuXG4vKipcbiAqIFRoZSBudW1iZXIgb2YgSVB2NCBwcmVmaXhlcyB0byBiZSBhdXRvbWF0aWNhbGx5IGFzc2lnbmVkIHRvIHRoZSBuZXR3b3JrIGludGVyZmFjZS4gWW91IGNhbm5vdCB1c2UgdGhpcyBvcHRpb24gaWYgeW91IHVzZSB0aGUgYGBJcHY0UHJlZml4YGAgb3B0aW9uLlxuICovXG5JcHY0UHJlZml4Q291bnQ/OiBudW1iZXJcbi8qKlxuICogT25lIG9yIG1vcmUgSVB2NiBwcmVmaXhlcyB0byBiZSBhc3NpZ25lZCB0byB0aGUgbmV0d29yayBpbnRlcmZhY2UuIFlvdSBjYW5ub3QgdXNlIHRoaXMgb3B0aW9uIGlmIHlvdSB1c2UgdGhlIGBgSXB2NlByZWZpeENvdW50YGAgb3B0aW9uLlxuICovXG5JcHY2UHJlZml4ZXM/OiBJcHY2UHJlZml4U3BlY2lmaWNhdGlvbltdXG4vKipcbiAqIFRoZSBJRCBvZiB0aGUgc3VibmV0IGZvciB0aGUgbmV0d29yayBpbnRlcmZhY2UuXG4gKi9cblN1Ym5ldElkPzogc3RyaW5nXG4vKipcbiAqIE9uZSBvciBtb3JlIHNwZWNpZmljIElQdjYgYWRkcmVzc2VzIGZyb20gdGhlIElQdjYgQ0lEUiBibG9jayByYW5nZSBvZiB5b3VyIHN1Ym5ldC4gWW91IGNhbid0IHVzZSB0aGlzIG9wdGlvbiBpZiB5b3UncmUgc3BlY2lmeWluZyBhIG51bWJlciBvZiBJUHY2IGFkZHJlc3Nlcy5cbiAqL1xuSXB2NkFkZHJlc3Nlcz86IElwdjZBZGRbXVxuLyoqXG4gKiBBc3NvY2lhdGVzIGEgcHVibGljIElQdjQgYWRkcmVzcyB3aXRoIGV0aDAgZm9yIGEgbmV3IG5ldHdvcmsgaW50ZXJmYWNlLlxuICogICBBV1MgY2hhcmdlcyBmb3IgYWxsIHB1YmxpYyBJUHY0IGFkZHJlc3NlcywgaW5jbHVkaW5nIHB1YmxpYyBJUHY0IGFkZHJlc3NlcyBhc3NvY2lhdGVkIHdpdGggcnVubmluZyBpbnN0YW5jZXMgYW5kIEVsYXN0aWMgSVAgYWRkcmVzc2VzLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIHRoZSAqUHVibGljIElQdjQgQWRkcmVzcyogdGFiIG9uIHRoZSBbQW1hem9uIFZQQyBwcmljaW5nIHBhZ2VdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS92cGMvcHJpY2luZy8pLlxuICovXG5Bc3NvY2lhdGVQdWJsaWNJcEFkZHJlc3M/OiBib29sZWFuXG4vKipcbiAqIFRoZSBJRCBvZiB0aGUgbmV0d29yayBpbnRlcmZhY2UuXG4gKi9cbk5ldHdvcmtJbnRlcmZhY2VJZD86IHN0cmluZ1xuLyoqXG4gKiBUaGUgaW5kZXggb2YgdGhlIG5ldHdvcmsgY2FyZC4gU29tZSBpbnN0YW5jZSB0eXBlcyBzdXBwb3J0IG11bHRpcGxlIG5ldHdvcmsgY2FyZHMuIFRoZSBwcmltYXJ5IG5ldHdvcmsgaW50ZXJmYWNlIG11c3QgYmUgYXNzaWduZWQgdG8gbmV0d29yayBjYXJkIGluZGV4IDAuIFRoZSBkZWZhdWx0IGlzIG5ldHdvcmsgY2FyZCBpbmRleCAwLlxuICovXG5OZXR3b3JrQ2FyZEluZGV4PzogbnVtYmVyXG4vKipcbiAqIFRoZSB0eXBlIG9mIG5ldHdvcmsgaW50ZXJmYWNlLiBUbyBjcmVhdGUgYW4gRWxhc3RpYyBGYWJyaWMgQWRhcHRlciAoRUZBKSwgc3BlY2lmeSBgYGVmYWBgIG9yIGBgZWZhYGAuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW0VsYXN0aWMgRmFicmljIEFkYXB0ZXIgZm9yIEFJL01MIGFuZCBIUEMgd29ya2xvYWRzIG9uIEFtYXpvbiBFQzJdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NFQzIvbGF0ZXN0L1VzZXJHdWlkZS9lZmEuaHRtbCkgaW4gdGhlICpBbWF6b24gRUMyIFVzZXIgR3VpZGUqLlxuICogIElmIHlvdSBhcmUgbm90IGNyZWF0aW5nIGFuIEVGQSwgc3BlY2lmeSBgYGludGVyZmFjZWBgIG9yIG9taXQgdGhpcyBwYXJhbWV0ZXIuXG4gKiAgSWYgeW91IHNwZWNpZnkgYGBlZmEtb25seWBgLCBkbyBub3QgYXNzaWduIGFueSBJUCBhZGRyZXNzZXMgdG8gdGhlIG5ldHdvcmsgaW50ZXJmYWNlLiBFRkEtb25seSBuZXR3b3JrIGludGVyZmFjZXMgZG8gbm90IHN1cHBvcnQgSVAgYWRkcmVzc2VzLlxuICogIFZhbGlkIHZhbHVlczogYGBpbnRlcmZhY2VgYCB8IGBgZWZhYGAgfCBgYGVmYS1vbmx5YGBcbiAqL1xuSW50ZXJmYWNlVHlwZT86IHN0cmluZ1xuLyoqXG4gKiBBc3NvY2lhdGVzIGEgQ2FycmllciBJUCBhZGRyZXNzIHdpdGggZXRoMCBmb3IgYSBuZXcgbmV0d29yayBpbnRlcmZhY2UuXG4gKiAgVXNlIHRoaXMgb3B0aW9uIHdoZW4geW91IGxhdW5jaCBhbiBpbnN0YW5jZSBpbiBhIFdhdmVsZW5ndGggWm9uZSBhbmQgd2FudCB0byBhc3NvY2lhdGUgYSBDYXJyaWVyIElQIGFkZHJlc3Mgd2l0aCB0aGUgbmV0d29yayBpbnRlcmZhY2UuIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IENhcnJpZXIgSVAgYWRkcmVzc2VzLCBzZWUgW0NhcnJpZXIgSVAgYWRkcmVzc2VzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vd2F2ZWxlbmd0aC9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvaG93LXdhdmVsZW5ndGhzLXdvcmsuaHRtbCNwcm92aWRlci1vd25lZC1pcCkgaW4gdGhlICpEZXZlbG9wZXIgR3VpZGUqLlxuICovXG5Bc3NvY2lhdGVDYXJyaWVySXBBZGRyZXNzPzogYm9vbGVhblxuRW5hU3JkU3BlY2lmaWNhdGlvbj86IEVuYVNyZFNwZWNpZmljYXRpb25cbi8qKlxuICogVGhlIG51bWJlciBvZiBJUHY2IGFkZHJlc3NlcyB0byBhc3NpZ24gdG8gYSBuZXR3b3JrIGludGVyZmFjZS4gQW1hem9uIEVDMiBhdXRvbWF0aWNhbGx5IHNlbGVjdHMgdGhlIElQdjYgYWRkcmVzc2VzIGZyb20gdGhlIHN1Ym5ldCByYW5nZS4gWW91IGNhbid0IHVzZSB0aGlzIG9wdGlvbiBpZiBzcGVjaWZ5aW5nIHNwZWNpZmljIElQdjYgYWRkcmVzc2VzLlxuICovXG5JcHY2QWRkcmVzc0NvdW50PzogbnVtYmVyXG4vKipcbiAqIFRoZSBJRHMgb2Ygb25lIG9yIG1vcmUgc2VjdXJpdHkgZ3JvdXBzLlxuICovXG5Hcm91cHM/OiBzdHJpbmdbXVxuLyoqXG4gKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgbmV0d29yayBpbnRlcmZhY2UgaXMgZGVsZXRlZCB3aGVuIHRoZSBpbnN0YW5jZSBpcyB0ZXJtaW5hdGVkLlxuICovXG5EZWxldGVPblRlcm1pbmF0aW9uPzogYm9vbGVhblxuQ29ubmVjdGlvblRyYWNraW5nU3BlY2lmaWNhdGlvbj86IENvbm5lY3Rpb25UcmFja2luZ1NwZWNpZmljYXRpb25cbn1cbi8qKlxuICogU3BlY2lmaWVzIGEgc2Vjb25kYXJ5IHByaXZhdGUgSVB2NCBhZGRyZXNzIGZvciBhIG5ldHdvcmsgaW50ZXJmYWNlLlxuICogICBgYFByaXZhdGVJcEFkZGBgIGlzIGEgcHJvcGVydHkgb2YgW0FXUzo6RUMyOjpMYXVuY2hUZW1wbGF0ZSBOZXR3b3JrSW50ZXJmYWNlXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1lYzItbGF1bmNodGVtcGxhdGUtbmV0d29ya2ludGVyZmFjZS5odG1sKS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcml2YXRlSXBBZGQge1xuLyoqXG4gKiBUaGUgcHJpdmF0ZSBJUHY0IGFkZHJlc3MuXG4gKi9cblByaXZhdGVJcEFkZHJlc3M/OiBzdHJpbmdcbi8qKlxuICogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIHByaXZhdGUgSVB2NCBhZGRyZXNzIGlzIHRoZSBwcmltYXJ5IHByaXZhdGUgSVB2NCBhZGRyZXNzLiBPbmx5IG9uZSBJUHY0IGFkZHJlc3MgY2FuIGJlIGRlc2lnbmF0ZWQgYXMgcHJpbWFyeS5cbiAqL1xuUHJpbWFyeT86IGJvb2xlYW5cbn1cbi8qKlxuICogU3BlY2lmaWVzIGFuIElQdjQgcHJlZml4IGZvciBhIG5ldHdvcmsgaW50ZXJmYWNlLlxuICogICBgYElwdjRQcmVmaXhTcGVjaWZpY2F0aW9uYGAgaXMgYSBwcm9wZXJ0eSBvZiBbQVdTOjpFQzI6OkxhdW5jaFRlbXBsYXRlIE5ldHdvcmtJbnRlcmZhY2VdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLWVjMi1sYXVuY2h0ZW1wbGF0ZS1uZXR3b3JraW50ZXJmYWNlLmh0bWwpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElwdjRQcmVmaXhTcGVjaWZpY2F0aW9uIHtcbi8qKlxuICogVGhlIElQdjQgcHJlZml4LiBGb3IgaW5mb3JtYXRpb24sIHNlZSBbQXNzaWduaW5nIHByZWZpeGVzIHRvIG5ldHdvcmsgaW50ZXJmYWNlc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0VDMi9sYXRlc3QvVXNlckd1aWRlL2VjMi1wcmVmaXgtZW5pLmh0bWwpIGluIHRoZSAqQW1hem9uIEVDMiBVc2VyIEd1aWRlKi5cbiAqL1xuSXB2NFByZWZpeD86IHN0cmluZ1xufVxuLyoqXG4gKiBTcGVjaWZpZXMgYW4gSVB2NiBwcmVmaXggZm9yIGEgbmV0d29yayBpbnRlcmZhY2UuXG4gKiAgIGBgSXB2NlByZWZpeFNwZWNpZmljYXRpb25gYCBpcyBhIHByb3BlcnR5IG9mIFtBV1M6OkVDMjo6TGF1bmNoVGVtcGxhdGUgTmV0d29ya0ludGVyZmFjZV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtZWMyLWxhdW5jaHRlbXBsYXRlLW5ldHdvcmtpbnRlcmZhY2UuaHRtbCkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSXB2NlByZWZpeFNwZWNpZmljYXRpb24ge1xuLyoqXG4gKiBUaGUgSVB2NiBwcmVmaXguXG4gKi9cbklwdjZQcmVmaXg/OiBzdHJpbmdcbn1cbi8qKlxuICogU3BlY2lmaWVzIGFuIElQdjYgYWRkcmVzcyBpbiBhbiBBbWF6b24gRUMyIGxhdW5jaCB0ZW1wbGF0ZS5cbiAqICAgYGBJcHY2QWRkYGAgaXMgYSBwcm9wZXJ0eSBvZiBbQVdTOjpFQzI6OkxhdW5jaFRlbXBsYXRlIE5ldHdvcmtJbnRlcmZhY2VdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLWVjMi1sYXVuY2h0ZW1wbGF0ZS1uZXR3b3JraW50ZXJmYWNlLmh0bWwpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElwdjZBZGQge1xuLyoqXG4gKiBPbmUgb3IgbW9yZSBzcGVjaWZpYyBJUHY2IGFkZHJlc3NlcyBmcm9tIHRoZSBJUHY2IENJRFIgYmxvY2sgcmFuZ2Ugb2YgeW91ciBzdWJuZXQuIFlvdSBjYW4ndCB1c2UgdGhpcyBvcHRpb24gaWYgeW91J3JlIHNwZWNpZnlpbmcgYSBudW1iZXIgb2YgSVB2NiBhZGRyZXNzZXMuXG4gKi9cbklwdjZBZGRyZXNzPzogc3RyaW5nXG59XG4vKipcbiAqIFRoZSBFTkEgRXhwcmVzcyBjb25maWd1cmF0aW9uIGZvciB0aGUgbmV0d29yayBpbnRlcmZhY2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRW5hU3JkU3BlY2lmaWNhdGlvbiB7XG4vKipcbiAqIEluZGljYXRlcyB3aGV0aGVyIEVOQSBFeHByZXNzIGlzIGVuYWJsZWQgZm9yIHRoZSBuZXR3b3JrIGludGVyZmFjZS5cbiAqL1xuRW5hU3JkRW5hYmxlZD86IGJvb2xlYW5cbkVuYVNyZFVkcFNwZWNpZmljYXRpb24/OiBFbmFTcmRVZHBTcGVjaWZpY2F0aW9uXG59XG4vKipcbiAqIENvbmZpZ3VyZXMgRU5BIEV4cHJlc3MgZm9yIFVEUCBuZXR3b3JrIHRyYWZmaWMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRW5hU3JkVWRwU3BlY2lmaWNhdGlvbiB7XG4vKipcbiAqIEluZGljYXRlcyB3aGV0aGVyIFVEUCB0cmFmZmljIHRvIGFuZCBmcm9tIHRoZSBpbnN0YW5jZSB1c2VzIEVOQSBFeHByZXNzLiBUbyBzcGVjaWZ5IHRoaXMgc2V0dGluZywgeW91IG11c3QgZmlyc3QgZW5hYmxlIEVOQSBFeHByZXNzLlxuICovXG5FbmFTcmRVZHBFbmFibGVkPzogYm9vbGVhblxufVxuLyoqXG4gKiBBIGNvbm5lY3Rpb24gdHJhY2tpbmcgc3BlY2lmaWNhdGlvbiBmb3IgdGhlIG5ldHdvcmsgaW50ZXJmYWNlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbm5lY3Rpb25UcmFja2luZ1NwZWNpZmljYXRpb24ge1xuLyoqXG4gKiBUaW1lb3V0IChpbiBzZWNvbmRzKSBmb3IgaWRsZSBVRFAgZmxvd3MgdGhhdCBoYXZlIHNlZW4gdHJhZmZpYyBvbmx5IGluIGEgc2luZ2xlIGRpcmVjdGlvbiBvciBhIHNpbmdsZSByZXF1ZXN0LXJlc3BvbnNlIHRyYW5zYWN0aW9uLiBNaW46IDMwIHNlY29uZHMuIE1heDogNjAgc2Vjb25kcy4gRGVmYXVsdDogMzAgc2Vjb25kcy5cbiAqL1xuVWRwVGltZW91dD86IG51bWJlclxuLyoqXG4gKiBUaW1lb3V0IChpbiBzZWNvbmRzKSBmb3IgaWRsZSBUQ1AgY29ubmVjdGlvbnMgaW4gYW4gZXN0YWJsaXNoZWQgc3RhdGUuIE1pbjogNjAgc2Vjb25kcy4gTWF4OiA0MzIwMDAgc2Vjb25kcyAoNSBkYXlzKS4gRGVmYXVsdDogNDMyMDAwIHNlY29uZHMuIFJlY29tbWVuZGVkOiBMZXNzIHRoYW4gNDMyMDAwIHNlY29uZHMuXG4gKi9cblRjcEVzdGFibGlzaGVkVGltZW91dD86IG51bWJlclxuLyoqXG4gKiBUaW1lb3V0IChpbiBzZWNvbmRzKSBmb3IgaWRsZSBVRFAgZmxvd3MgY2xhc3NpZmllZCBhcyBzdHJlYW1zIHdoaWNoIGhhdmUgc2VlbiBtb3JlIHRoYW4gb25lIHJlcXVlc3QtcmVzcG9uc2UgdHJhbnNhY3Rpb24uIE1pbjogNjAgc2Vjb25kcy4gTWF4OiAxODAgc2Vjb25kcyAoMyBtaW51dGVzKS4gRGVmYXVsdDogMTgwIHNlY29uZHMuXG4gKi9cblVkcFN0cmVhbVRpbWVvdXQ/OiBudW1iZXJcbn1cbi8qKlxuICogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGluc3RhbmNlIGlzIGVuYWJsZWQgZm9yIEFXUyBOaXRybyBFbmNsYXZlcy4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbV2hhdCBpcyBOaXRybyBFbmNsYXZlcz9dKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9lbmNsYXZlcy9sYXRlc3QvdXNlci9uaXRyby1lbmNsYXZlLmh0bWwpIGluIHRoZSAqTml0cm8gRW5jbGF2ZXMgVXNlciBHdWlkZSouXG4gKiAgWW91IGNhbid0IGVuYWJsZSBBV1MgTml0cm8gRW5jbGF2ZXMgYW5kIGhpYmVybmF0aW9uIG9uIHRoZSBzYW1lIGluc3RhbmNlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEVuY2xhdmVPcHRpb25zIHtcbi8qKlxuICogSWYgdGhpcyBwYXJhbWV0ZXIgaXMgc2V0IHRvIGBgdHJ1ZWBgLCB0aGUgaW5zdGFuY2UgaXMgZW5hYmxlZCBmb3IgQVdTIE5pdHJvIEVuY2xhdmVzOyBvdGhlcndpc2UsIGl0IGlzIG5vdCBlbmFibGVkIGZvciBBV1MgTml0cm8gRW5jbGF2ZXMuXG4gKi9cbkVuYWJsZWQ/OiBib29sZWFuXG59XG4vKipcbiAqIFRoZSBtb25pdG9yaW5nIGZvciB0aGUgaW5zdGFuY2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTW9uaXRvcmluZyB7XG4vKipcbiAqIFNwZWNpZnkgYGB0cnVlYGAgdG8gZW5hYmxlIGRldGFpbGVkIG1vbml0b3JpbmcuIE90aGVyd2lzZSwgYmFzaWMgbW9uaXRvcmluZyBpcyBlbmFibGVkLlxuICovXG5FbmFibGVkPzogYm9vbGVhblxufVxuLyoqXG4gKiBJbmRpY2F0ZXMgd2hldGhlciBhbiBpbnN0YW5jZSBpcyBlbmFibGVkIGZvciBoaWJlcm5hdGlvbi4gVGhpcyBwYXJhbWV0ZXIgaXMgdmFsaWQgb25seSBpZiB0aGUgaW5zdGFuY2UgbWVldHMgdGhlIFtoaWJlcm5hdGlvbiBwcmVyZXF1aXNpdGVzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTRUMyL2xhdGVzdC9Vc2VyR3VpZGUvaGliZXJuYXRpbmctcHJlcmVxdWlzaXRlcy5odG1sKS4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbSGliZXJuYXRlIHlvdXIgQW1hem9uIEVDMiBpbnN0YW5jZV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0VDMi9sYXRlc3QvVXNlckd1aWRlL0hpYmVybmF0ZS5odG1sKSBpbiB0aGUgKkFtYXpvbiBFQzIgVXNlciBHdWlkZSouXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSGliZXJuYXRpb25PcHRpb25zIHtcbi8qKlxuICogSWYgeW91IHNldCB0aGlzIHBhcmFtZXRlciB0byBgYHRydWVgYCwgdGhlIGluc3RhbmNlIGlzIGVuYWJsZWQgZm9yIGhpYmVybmF0aW9uLlxuICogIERlZmF1bHQ6IGBgZmFsc2VgYFxuICovXG5Db25maWd1cmVkPzogYm9vbGVhblxufVxuLyoqXG4gKiBUaGUgbWV0YWRhdGEgb3B0aW9ucyBmb3IgdGhlIGluc3RhbmNlLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtDb25maWd1cmUgdGhlIEluc3RhbmNlIE1ldGFkYXRhIFNlcnZpY2Ugb3B0aW9uc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0VDMi9sYXRlc3QvVXNlckd1aWRlL2NvbmZpZ3VyaW5nLWluc3RhbmNlLW1ldGFkYXRhLW9wdGlvbnMuaHRtbCkgaW4gdGhlICpBbWF6b24gRUMyIFVzZXIgR3VpZGUqLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1ldGFkYXRhT3B0aW9ucyB7XG4vKipcbiAqIFRoZSBkZXNpcmVkIEhUVFAgUFVUIHJlc3BvbnNlIGhvcCBsaW1pdCBmb3IgaW5zdGFuY2UgbWV0YWRhdGEgcmVxdWVzdHMuIFRoZSBsYXJnZXIgdGhlIG51bWJlciwgdGhlIGZ1cnRoZXIgaW5zdGFuY2UgbWV0YWRhdGEgcmVxdWVzdHMgY2FuIHRyYXZlbC5cbiAqICBEZWZhdWx0OiBgYDFgYCBcbiAqICBQb3NzaWJsZSB2YWx1ZXM6IEludGVnZXJzIGZyb20gMSB0byA2NFxuICovXG5IdHRwUHV0UmVzcG9uc2VIb3BMaW1pdD86IG51bWJlclxuLyoqXG4gKiBJbmRpY2F0ZXMgd2hldGhlciBJTURTdjIgaXMgcmVxdWlyZWQuXG4gKiAgICsgICBgYG9wdGlvbmFsYGAgLSBJTURTdjIgaXMgb3B0aW9uYWwuIFlvdSBjYW4gY2hvb3NlIHdoZXRoZXIgdG8gc2VuZCBhIHNlc3Npb24gdG9rZW4gaW4geW91ciBpbnN0YW5jZSBtZXRhZGF0YSByZXRyaWV2YWwgcmVxdWVzdHMuIElmIHlvdSByZXRyaWV2ZSBJQU0gcm9sZSBjcmVkZW50aWFscyB3aXRob3V0IGEgc2Vzc2lvbiB0b2tlbiwgeW91IHJlY2VpdmUgdGhlIElNRFN2MSByb2xlIGNyZWRlbnRpYWxzLiBJZiB5b3UgcmV0cmlldmUgSUFNIHJvbGUgY3JlZGVudGlhbHMgdXNpbmcgYSB2YWxpZCBzZXNzaW9uIHRva2VuLCB5b3UgcmVjZWl2ZSB0aGUgSU1EU3YyIHJvbGUgY3JlZGVudGlhbHMuXG4gKiAgICsgICBgYHJlcXVpcmVkYGAgLSBJTURTdjIgaXMgcmVxdWlyZWQuIFlvdSBtdXN0IHNlbmQgYSBzZXNzaW9uIHRva2VuIGluIHlvdXIgaW5zdGFuY2UgbWV0YWRhdGEgcmV0cmlldmFsIHJlcXVlc3RzLiBXaXRoIHRoaXMgb3B0aW9uLCByZXRyaWV2aW5nIHRoZSBJQU0gcm9sZSBjcmVkZW50aWFscyBhbHdheXMgcmV0dXJucyBJTURTdjIgY3JlZGVudGlhbHM7IElNRFN2MSBjcmVkZW50aWFscyBhcmUgbm90IGF2YWlsYWJsZS5cbiAqICAgXG4gKiAgRGVmYXVsdDogSWYgdGhlIHZhbHVlIG9mIGBgSW1kc1N1cHBvcnRgYCBmb3IgdGhlIEFtYXpvbiBNYWNoaW5lIEltYWdlIChBTUkpIGZvciB5b3VyIGluc3RhbmNlIGlzIGBgdjIuMGBgLCB0aGUgZGVmYXVsdCBpcyBgYHJlcXVpcmVkYGAuXG4gKi9cbkh0dHBUb2tlbnM/OiBzdHJpbmdcbi8qKlxuICogRW5hYmxlcyBvciBkaXNhYmxlcyB0aGUgSVB2NiBlbmRwb2ludCBmb3IgdGhlIGluc3RhbmNlIG1ldGFkYXRhIHNlcnZpY2UuXG4gKiAgRGVmYXVsdDogYGBkaXNhYmxlZGBgXG4gKi9cbkh0dHBQcm90b2NvbElwdjY/OiBzdHJpbmdcbi8qKlxuICogU2V0IHRvIGBgZW5hYmxlZGBgIHRvIGFsbG93IGFjY2VzcyB0byBpbnN0YW5jZSB0YWdzIGZyb20gdGhlIGluc3RhbmNlIG1ldGFkYXRhLiBTZXQgdG8gYGBkaXNhYmxlZGBgIHRvIHR1cm4gb2ZmIGFjY2VzcyB0byBpbnN0YW5jZSB0YWdzIGZyb20gdGhlIGluc3RhbmNlIG1ldGFkYXRhLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtWaWV3IHRhZ3MgZm9yIHlvdXIgRUMyIGluc3RhbmNlcyB1c2luZyBpbnN0YW5jZSBtZXRhZGF0YV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0VDMi9sYXRlc3QvVXNlckd1aWRlL3dvcmstd2l0aC10YWdzLWluLUlNRFMuaHRtbCkuXG4gKiAgRGVmYXVsdDogYGBkaXNhYmxlZGBgXG4gKi9cbkluc3RhbmNlTWV0YWRhdGFUYWdzPzogc3RyaW5nXG4vKipcbiAqIEVuYWJsZXMgb3IgZGlzYWJsZXMgdGhlIEhUVFAgbWV0YWRhdGEgZW5kcG9pbnQgb24geW91ciBpbnN0YW5jZXMuIElmIHRoZSBwYXJhbWV0ZXIgaXMgbm90IHNwZWNpZmllZCwgdGhlIGRlZmF1bHQgc3RhdGUgaXMgYGBlbmFibGVkYGAuXG4gKiAgIElmIHlvdSBzcGVjaWZ5IGEgdmFsdWUgb2YgYGBkaXNhYmxlZGBgLCB5b3Ugd2lsbCBub3QgYmUgYWJsZSB0byBhY2Nlc3MgeW91ciBpbnN0YW5jZSBtZXRhZGF0YS5cbiAqL1xuSHR0cEVuZHBvaW50Pzogc3RyaW5nXG59XG4vKipcbiAqIFNwZWNpZmllcyBhIGxpY2Vuc2UgY29uZmlndXJhdGlvbiBmb3IgYW4gaW5zdGFuY2UuXG4gKiAgIGBgTGljZW5zZVNwZWNpZmljYXRpb25gYCBpcyBhIHByb3BlcnR5IG9mIFtBV1M6OkVDMjo6TGF1bmNoVGVtcGxhdGUgTGF1bmNoVGVtcGxhdGVEYXRhXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1lYzItbGF1bmNodGVtcGxhdGUtbGF1bmNodGVtcGxhdGVkYXRhLmh0bWwpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIExpY2Vuc2VTcGVjaWZpY2F0aW9uIHtcbi8qKlxuICogVGhlIEFtYXpvbiBSZXNvdXJjZSBOYW1lIChBUk4pIG9mIHRoZSBsaWNlbnNlIGNvbmZpZ3VyYXRpb24uXG4gKi9cbkxpY2Vuc2VDb25maWd1cmF0aW9uQXJuPzogc3RyaW5nXG59XG4vKipcbiAqIFRoZSBDUFUgb3B0aW9ucyBmb3IgdGhlIGluc3RhbmNlLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtDUFUgb3B0aW9ucyBmb3IgQW1hem9uIEVDMiBpbnN0YW5jZXNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NFQzIvbGF0ZXN0L1VzZXJHdWlkZS9pbnN0YW5jZS1vcHRpbWl6ZS1jcHUuaHRtbCkgaW4gdGhlICpBbWF6b24gRUMyIFVzZXIgR3VpZGUqLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENwdU9wdGlvbnMge1xuLyoqXG4gKiBUaGUgbnVtYmVyIG9mIHRocmVhZHMgcGVyIENQVSBjb3JlLiBUbyBkaXNhYmxlIG11bHRpdGhyZWFkaW5nIGZvciB0aGUgaW5zdGFuY2UsIHNwZWNpZnkgYSB2YWx1ZSBvZiBgYDFgYC4gT3RoZXJ3aXNlLCBzcGVjaWZ5IHRoZSBkZWZhdWx0IHZhbHVlIG9mIGBgMmBgLlxuICovXG5UaHJlYWRzUGVyQ29yZT86IG51bWJlclxuLyoqXG4gKiBJbmRpY2F0ZXMgd2hldGhlciB0byBlbmFibGUgdGhlIGluc3RhbmNlIGZvciBBTUQgU0VWLVNOUC4gQU1EIFNFVi1TTlAgaXMgc3VwcG9ydGVkIHdpdGggTTZhLCBSNmEsIGFuZCBDNmEgaW5zdGFuY2UgdHlwZXMgb25seS4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbQU1EIFNFVi1TTlAgZm9yIEFtYXpvbiBFQzIgaW5zdGFuY2VzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTRUMyL2xhdGVzdC9Vc2VyR3VpZGUvc2V2LXNucC5odG1sKS5cbiAqL1xuQW1kU2V2U25wPzogKFwiZW5hYmxlZFwiIHwgXCJkaXNhYmxlZFwiKVxuLyoqXG4gKiBUaGUgbnVtYmVyIG9mIENQVSBjb3JlcyBmb3IgdGhlIGluc3RhbmNlLlxuICovXG5Db3JlQ291bnQ/OiBudW1iZXJcbn1cbi8qKlxuICogVGhlIGhvc3RuYW1lIHR5cGUgZm9yIEVDMiBpbnN0YW5jZXMgbGF1bmNoZWQgaW50byB0aGlzIHN1Ym5ldCBhbmQgaG93IEROUyBBIGFuZCBBQUFBIHJlY29yZCBxdWVyaWVzIHNob3VsZCBiZSBoYW5kbGVkLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtBbWF6b24gRUMyIGluc3RhbmNlIGhvc3RuYW1lIHR5cGVzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTRUMyL2xhdGVzdC9Vc2VyR3VpZGUvZWMyLWluc3RhbmNlLW5hbWluZy5odG1sKSBpbiB0aGUgKlVzZXIgR3VpZGUqLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFByaXZhdGVEbnNOYW1lT3B0aW9ucyB7XG4vKipcbiAqIEluZGljYXRlcyB3aGV0aGVyIHRvIHJlc3BvbmQgdG8gRE5TIHF1ZXJpZXMgZm9yIGluc3RhbmNlIGhvc3RuYW1lcyB3aXRoIEROUyBBIHJlY29yZHMuXG4gKi9cbkVuYWJsZVJlc291cmNlTmFtZURuc0FSZWNvcmQ/OiBib29sZWFuXG4vKipcbiAqIFRoZSB0eXBlIG9mIGhvc3RuYW1lIGZvciBFQzIgaW5zdGFuY2VzLiBGb3IgSVB2NCBvbmx5IHN1Ym5ldHMsIGFuIGluc3RhbmNlIEROUyBuYW1lIG11c3QgYmUgYmFzZWQgb24gdGhlIGluc3RhbmNlIElQdjQgYWRkcmVzcy4gRm9yIElQdjYgb25seSBzdWJuZXRzLCBhbiBpbnN0YW5jZSBETlMgbmFtZSBtdXN0IGJlIGJhc2VkIG9uIHRoZSBpbnN0YW5jZSBJRC4gRm9yIGR1YWwtc3RhY2sgc3VibmV0cywgeW91IGNhbiBzcGVjaWZ5IHdoZXRoZXIgRE5TIG5hbWVzIHVzZSB0aGUgaW5zdGFuY2UgSVB2NCBhZGRyZXNzIG9yIHRoZSBpbnN0YW5jZSBJRC4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbQW1hem9uIEVDMiBpbnN0YW5jZSBob3N0bmFtZSB0eXBlc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0VDMi9sYXRlc3QvVXNlckd1aWRlL2VjMi1pbnN0YW5jZS1uYW1pbmcuaHRtbCkgaW4gdGhlICpVc2VyIEd1aWRlKi5cbiAqL1xuSG9zdG5hbWVUeXBlPzogc3RyaW5nXG4vKipcbiAqIEluZGljYXRlcyB3aGV0aGVyIHRvIHJlc3BvbmQgdG8gRE5TIHF1ZXJpZXMgZm9yIGluc3RhbmNlIGhvc3RuYW1lcyB3aXRoIEROUyBBQUFBIHJlY29yZHMuXG4gKi9cbkVuYWJsZVJlc291cmNlTmFtZURuc0FBQUFSZWNvcmQ/OiBib29sZWFuXG59XG4vKipcbiAqIFRoZSBtYXJrZXQgKHB1cmNoYXNpbmcpIG9wdGlvbiBmb3IgdGhlIGluc3RhbmNlcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbnN0YW5jZU1hcmtldE9wdGlvbnMge1xuU3BvdE9wdGlvbnM/OiBTcG90T3B0aW9uc1xuLyoqXG4gKiBUaGUgbWFya2V0IHR5cGUuXG4gKi9cbk1hcmtldFR5cGU/OiBzdHJpbmdcbn1cbi8qKlxuICogVGhlIG9wdGlvbnMgZm9yIFNwb3QgSW5zdGFuY2VzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNwb3RPcHRpb25zIHtcbi8qKlxuICogVGhlIFNwb3QgSW5zdGFuY2UgcmVxdWVzdCB0eXBlLlxuICogIElmIHlvdSBhcmUgdXNpbmcgU3BvdCBJbnN0YW5jZXMgd2l0aCBhbiBBdXRvIFNjYWxpbmcgZ3JvdXAsIHVzZSBgYG9uZS10aW1lYGAgcmVxdWVzdHMsIGFzIHRoZSBBU2xvbmcgc2VydmljZSBoYW5kbGVzIHJlcXVlc3RpbmcgbmV3IFNwb3QgSW5zdGFuY2VzIHdoZW5ldmVyIHRoZSBncm91cCBpcyBiZWxvdyBpdHMgZGVzaXJlZCBjYXBhY2l0eS5cbiAqL1xuU3BvdEluc3RhbmNlVHlwZT86IHN0cmluZ1xuLyoqXG4gKiBUaGUgYmVoYXZpb3Igd2hlbiBhIFNwb3QgSW5zdGFuY2UgaXMgaW50ZXJydXB0ZWQuIFRoZSBkZWZhdWx0IGlzIGBgdGVybWluYXRlYGAuXG4gKi9cbkluc3RhbmNlSW50ZXJydXB0aW9uQmVoYXZpb3I/OiBzdHJpbmdcbi8qKlxuICogVGhlIG1heGltdW0gaG91cmx5IHByaWNlIHlvdSdyZSB3aWxsaW5nIHRvIHBheSBmb3IgYSBTcG90IEluc3RhbmNlLiBXZSBkbyBub3QgcmVjb21tZW5kIHVzaW5nIHRoaXMgcGFyYW1ldGVyIGJlY2F1c2UgaXQgY2FuIGxlYWQgdG8gaW5jcmVhc2VkIGludGVycnVwdGlvbnMuIElmIHlvdSBkbyBub3Qgc3BlY2lmeSB0aGlzIHBhcmFtZXRlciwgeW91IHdpbGwgcGF5IHRoZSBjdXJyZW50IFNwb3QgcHJpY2UuIElmIHlvdSBkbyBzcGVjaWZ5IHRoaXMgcGFyYW1ldGVyLCBpdCBtdXN0IGJlIG1vcmUgdGhhbiBVU0QgJDAuMDAxLiBTcGVjaWZ5aW5nIGEgdmFsdWUgYmVsb3cgVVNEICQwLjAwMSB3aWxsIHJlc3VsdCBpbiBhbiBgYEludmFsaWRQYXJhbWV0ZXJWYWx1ZWBgIGVycm9yIG1lc3NhZ2Ugd2hlbiB0aGUgbGF1bmNoIHRlbXBsYXRlIGlzIHVzZWQgdG8gbGF1bmNoIGFuIGluc3RhbmNlLlxuICogICBJZiB5b3Ugc3BlY2lmeSBhIG1heGltdW0gcHJpY2UsIHlvdXIgU3BvdCBJbnN0YW5jZXMgd2lsbCBiZSBpbnRlcnJ1cHRlZCBtb3JlIGZyZXF1ZW50bHkgdGhhbiBpZiB5b3UgZG8gbm90IHNwZWNpZnkgdGhpcyBwYXJhbWV0ZXIuXG4gKi9cbk1heFByaWNlPzogc3RyaW5nXG4vKipcbiAqIERlcHJlY2F0ZWQuXG4gKi9cbkJsb2NrRHVyYXRpb25NaW51dGVzPzogbnVtYmVyXG4vKipcbiAqIFRoZSBlbmQgZGF0ZSBvZiB0aGUgcmVxdWVzdCwgaW4gVVRDIGZvcm1hdCAoKllZWVktTU0tREQqVCpISDpNTTpTUypaKS4gU3VwcG9ydGVkIG9ubHkgZm9yIHBlcnNpc3RlbnQgcmVxdWVzdHMuXG4gKiAgICsgIEZvciBhIHBlcnNpc3RlbnQgcmVxdWVzdCwgdGhlIHJlcXVlc3QgcmVtYWlucyBhY3RpdmUgdW50aWwgdGhlIGBgVmFsaWRVbnRpbGBgIGRhdGUgYW5kIHRpbWUgaXMgcmVhY2hlZC4gT3RoZXJ3aXNlLCB0aGUgcmVxdWVzdCByZW1haW5zIGFjdGl2ZSB1bnRpbCB5b3UgY2FuY2VsIGl0LlxuICogICArICBGb3IgYSBvbmUtdGltZSByZXF1ZXN0LCBgYFZhbGlkVW50aWxgYCBpcyBub3Qgc3VwcG9ydGVkLiBUaGUgcmVxdWVzdCByZW1haW5zIGFjdGl2ZSB1bnRpbCBhbGwgaW5zdGFuY2VzIGxhdW5jaCBvciB5b3UgY2FuY2VsIHRoZSByZXF1ZXN0LlxuICogICBcbiAqICBEZWZhdWx0OiA3IGRheXMgZnJvbSB0aGUgY3VycmVudCBkYXRlXG4gKi9cblZhbGlkVW50aWw/OiBzdHJpbmdcbn1cbi8qKlxuICogVGhlIGF0dHJpYnV0ZXMgZm9yIHRoZSBpbnN0YW5jZSB0eXBlcy4gV2hlbiB5b3Ugc3BlY2lmeSBpbnN0YW5jZSBhdHRyaWJ1dGVzLCBBbWF6b24gRUMyIHdpbGwgaWRlbnRpZnkgaW5zdGFuY2UgdHlwZXMgd2l0aCB0aGVzZSBhdHRyaWJ1dGVzLlxuICogIFlvdSBtdXN0IHNwZWNpZnkgYGBWQ3B1Q291bnRgYCBhbmQgYGBNZW1vcnlNaUJgYC4gQWxsIG90aGVyIGF0dHJpYnV0ZXMgYXJlIG9wdGlvbmFsLiBBbnkgdW5zcGVjaWZpZWQgb3B0aW9uYWwgYXR0cmlidXRlIGlzIHNldCB0byBpdHMgZGVmYXVsdC5cbiAqICBXaGVuIHlvdSBzcGVjaWZ5IG11bHRpcGxlIGF0dHJpYnV0ZXMsIHlvdSBnZXQgaW5zdGFuY2UgdHlwZXMgdGhhdCBzYXRpc2Z5IGFsbCBvZiB0aGUgc3BlY2lmaWVkIGF0dHJpYnV0ZXMuIElmIHlvdSBzcGVjaWZ5IG11bHRpcGxlIHZhbHVlcyBmb3IgYW4gYXR0cmlidXRlLCB5b3UgZ2V0IGluc3RhbmNlIHR5cGVzIHRoYXQgc2F0aXNmeSBhbnkgb2YgdGhlIHNwZWNpZmllZCB2YWx1ZXMuXG4gKiAgVG8gbGltaXQgdGhlIGxpc3Qgb2YgaW5zdGFuY2UgdHlwZXMgZnJvbSB3aGljaCBBbWF6b24gRUMyIGNhbiBpZGVudGlmeSBtYXRjaGluZyBpbnN0YW5jZSB0eXBlcywgeW91IGNhbiB1c2Ugb25lIG9mIHRoZSBmb2xsb3dpbmcgcGFyYW1ldGVycywgYnV0IG5vdCBib3RoIGluIHRoZSBzYW1lIHJlcXVlc3Q6XG4gKiAgICsgICBgYEFsbG93ZWRJbnN0YW5jZVR5cGVzYGAgLSBUaGUgaW5zdGFuY2UgdHlwZXMgdG8gaW5jbHVkZSBpbiB0aGUgbGlzdC4gQWxsIG90aGVyIGluc3RhbmNlIHR5cGVzIGFyZSBpZ25vcmVkLCBldmVuIGlmIHRoZXkgbWF0Y2ggeW91ciBzcGVjaWZpZWQgYXR0cmlidXRlcy5cbiAqICAgKyAgIGBgRXhjbHVkZWRJbnN0YW5jZVR5cGVzYGAgLSBUaGUgaW5zdGFuY2UgdHlwZXMgdG8gZXhjbHVkZSBmcm9tIHRoZSBsaXN0LCBldmVuIGlmIHRoZXkgbWF0Y2ggeW91ciBzcGVjaWZpZWQgYXR0cmlidXRlcy5cbiAqICAgXG4gKiAgIElmIHlvdSBzcGVjaWZ5IGBgSW5zdGFuY2VSZXF1aXJlbWVudHNgYCwgeW91IGNhbid0IHNwZWNpZnkgYGBJbnN0YW5jZVR5cGVgYC5cbiAqICBBdHRyaWJ1dGUtYmFzZWQgaW5zdGFuY2UgdHlwZSBzZWxlY3Rpb24gaXMgb25seSBzdXBwb3J0ZWQgd2hlbiB1c2luZyBBdXRvIFNjYWxpbmcgZ3JvdXBzLCBFQzIgRmxlZXQsIGFuZCBTcG90IEZsZWV0IHRvIGxhdW5jaCBpbnN0YW5jZXMuIElmIHlvdSBwbGFuIHRvIHVzZSB0aGUgbGF1bmNoIHRlbXBsYXRlIGluIHRoZSBbbGF1bmNoIGluc3RhbmNlIHdpemFyZF0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0VDMi9sYXRlc3QvVXNlckd1aWRlL2VjMi1sYXVuY2gtaW5zdGFuY2Utd2l6YXJkLmh0bWwpLCBvciB3aXRoIHRoZSBbUnVuSW5zdGFuY2VzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTRUMyL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX1J1bkluc3RhbmNlcy5odG1sKSBBUEkgb3IgW0FXUzo6RUMyOjpJbnN0YW5jZV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtZWMyLWluc3RhbmNlLmh0bWwpIEFXUyBDbG91ZEZvcm1hdGlvbiByZXNvdXJjZSwgeW91IGNhbid0IHNwZWNpZnkgYGBJbnN0YW5jZVJlcXVpcmVtZW50c2BgLlxuICogICBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtTcGVjaWZ5IGF0dHJpYnV0ZXMgZm9yIGluc3RhbmNlIHR5cGUgc2VsZWN0aW9uIGZvciBFQzIgRmxlZXQgb3IgU3BvdCBGbGVldF0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0VDMi9sYXRlc3QvVXNlckd1aWRlL2VjMi1mbGVldC1hdHRyaWJ1dGUtYmFzZWQtaW5zdGFuY2UtdHlwZS1zZWxlY3Rpb24uaHRtbCkgYW5kIFtTcG90IHBsYWNlbWVudCBzY29yZV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0VDMi9sYXRlc3QvVXNlckd1aWRlL3Nwb3QtcGxhY2VtZW50LXNjb3JlLmh0bWwpIGluIHRoZSAqQW1hem9uIEVDMiBVc2VyIEd1aWRlKi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbnN0YW5jZVJlcXVpcmVtZW50cyB7XG4vKipcbiAqIEluZGljYXRlcyB3aGV0aGVyIGN1cnJlbnQgb3IgcHJldmlvdXMgZ2VuZXJhdGlvbiBpbnN0YW5jZSB0eXBlcyBhcmUgaW5jbHVkZWQuIFRoZSBjdXJyZW50IGdlbmVyYXRpb24gaW5zdGFuY2UgdHlwZXMgYXJlIHJlY29tbWVuZGVkIGZvciB1c2UuIEN1cnJlbnQgZ2VuZXJhdGlvbiBpbnN0YW5jZSB0eXBlcyBhcmUgdHlwaWNhbGx5IHRoZSBsYXRlc3QgdHdvIHRvIHRocmVlIGdlbmVyYXRpb25zIGluIGVhY2ggaW5zdGFuY2UgZmFtaWx5LiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtJbnN0YW5jZSB0eXBlc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0VDMi9sYXRlc3QvVXNlckd1aWRlL2luc3RhbmNlLXR5cGVzLmh0bWwpIGluIHRoZSAqQW1hem9uIEVDMiBVc2VyIEd1aWRlKi5cbiAqICBGb3IgY3VycmVudCBnZW5lcmF0aW9uIGluc3RhbmNlIHR5cGVzLCBzcGVjaWZ5IGBgY3VycmVudGBgLlxuICogIEZvciBwcmV2aW91cyBnZW5lcmF0aW9uIGluc3RhbmNlIHR5cGVzLCBzcGVjaWZ5IGBgcHJldmlvdXNgYC5cbiAqICBEZWZhdWx0OiBDdXJyZW50IGFuZCBwcmV2aW91cyBnZW5lcmF0aW9uIGluc3RhbmNlIHR5cGVzXG4gKi9cbkluc3RhbmNlR2VuZXJhdGlvbnM/OiBzdHJpbmdbXVxuTWVtb3J5R2lCUGVyVkNwdT86IE1lbW9yeUdpQlBlclZDcHVcbi8qKlxuICogVGhlIGFjY2VsZXJhdG9yIHR5cGVzIHRoYXQgbXVzdCBiZSBvbiB0aGUgaW5zdGFuY2UgdHlwZS5cbiAqICAgKyAgRm9yIGluc3RhbmNlIHR5cGVzIHdpdGggRlBHQSBhY2NlbGVyYXRvcnMsIHNwZWNpZnkgYGBmcGdhYGAuXG4gKiAgICsgIEZvciBpbnN0YW5jZSB0eXBlcyB3aXRoIEdQVSBhY2NlbGVyYXRvcnMsIHNwZWNpZnkgYGBncHVgYC5cbiAqICAgKyAgRm9yIGluc3RhbmNlIHR5cGVzIHdpdGggSW5mZXJlbmNlIGFjY2VsZXJhdG9ycywgc3BlY2lmeSBgYGluZmVyZW5jZWBgLlxuICogICBcbiAqICBEZWZhdWx0OiBBbnkgYWNjZWxlcmF0b3IgdHlwZVxuICovXG5BY2NlbGVyYXRvclR5cGVzPzogc3RyaW5nW11cblZDcHVDb3VudD86IFZDcHVDb3VudFxuLyoqXG4gKiBJbmRpY2F0ZXMgd2hldGhlciBpbnN0YW5jZSB0eXBlcyBtdXN0IGhhdmUgYWNjZWxlcmF0b3JzIGJ5IHNwZWNpZmljIG1hbnVmYWN0dXJlcnMuXG4gKiAgICsgIEZvciBpbnN0YW5jZSB0eXBlcyB3aXRoIEFXUyBkZXZpY2VzLCBzcGVjaWZ5IGBgYW1hem9uLXdlYi1zZXJ2aWNlc2BgLlxuICogICArICBGb3IgaW5zdGFuY2UgdHlwZXMgd2l0aCBBTUQgZGV2aWNlcywgc3BlY2lmeSBgYGFtZGBgLlxuICogICArICBGb3IgaW5zdGFuY2UgdHlwZXMgd2l0aCBIYWJhbmEgZGV2aWNlcywgc3BlY2lmeSBgYGhhYmFuYWBgLlxuICogICArICBGb3IgaW5zdGFuY2UgdHlwZXMgd2l0aCBOVklESUEgZGV2aWNlcywgc3BlY2lmeSBgYG52aWRpYWBgLlxuICogICArICBGb3IgaW5zdGFuY2UgdHlwZXMgd2l0aCBYaWxpbnggZGV2aWNlcywgc3BlY2lmeSBgYHhpbGlueGBgLlxuICogICBcbiAqICBEZWZhdWx0OiBBbnkgbWFudWZhY3R1cmVyXG4gKi9cbkFjY2VsZXJhdG9yTWFudWZhY3R1cmVycz86IHN0cmluZ1tdXG4vKipcbiAqIEluZGljYXRlcyB3aGV0aGVyIGluc3RhbmNlIHR5cGVzIHdpdGggaW5zdGFuY2Ugc3RvcmUgdm9sdW1lcyBhcmUgaW5jbHVkZWQsIGV4Y2x1ZGVkLCBvciByZXF1aXJlZC4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIFtBbWF6b24gRUMyIGluc3RhbmNlIHN0b3JlXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTRUMyL2xhdGVzdC9Vc2VyR3VpZGUvSW5zdGFuY2VTdG9yYWdlLmh0bWwpIGluIHRoZSAqQW1hem9uIEVDMiBVc2VyIEd1aWRlKi5cbiAqICAgKyAgVG8gaW5jbHVkZSBpbnN0YW5jZSB0eXBlcyB3aXRoIGluc3RhbmNlIHN0b3JlIHZvbHVtZXMsIHNwZWNpZnkgYGBpbmNsdWRlZGBgLlxuICogICArICBUbyByZXF1aXJlIG9ubHkgaW5zdGFuY2UgdHlwZXMgd2l0aCBpbnN0YW5jZSBzdG9yZSB2b2x1bWVzLCBzcGVjaWZ5IGBgcmVxdWlyZWRgYC5cbiAqICAgKyAgVG8gZXhjbHVkZSBpbnN0YW5jZSB0eXBlcyB3aXRoIGluc3RhbmNlIHN0b3JlIHZvbHVtZXMsIHNwZWNpZnkgYGBleGNsdWRlZGBgLlxuICogICBcbiAqICBEZWZhdWx0OiBgYGluY2x1ZGVkYGBcbiAqL1xuTG9jYWxTdG9yYWdlPzogc3RyaW5nXG4vKipcbiAqIFRoZSBDUFUgbWFudWZhY3R1cmVycyB0byBpbmNsdWRlLlxuICogICArICBGb3IgaW5zdGFuY2UgdHlwZXMgd2l0aCBJbnRlbCBDUFVzLCBzcGVjaWZ5IGBgaW50ZWxgYC5cbiAqICAgKyAgRm9yIGluc3RhbmNlIHR5cGVzIHdpdGggQU1EIENQVXMsIHNwZWNpZnkgYGBhbWRgYC5cbiAqICAgKyAgRm9yIGluc3RhbmNlIHR5cGVzIHdpdGggQVdTIENQVXMsIHNwZWNpZnkgYGBhbWF6b24td2ViLXNlcnZpY2VzYGAuXG4gKiAgICsgIEZvciBpbnN0YW5jZSB0eXBlcyB3aXRoIEFwcGxlIENQVXMsIHNwZWNpZnkgYGBhcHBsZWBgLlxuICogICBcbiAqICAgRG9uJ3QgY29uZnVzZSB0aGUgQ1BVIG1hbnVmYWN0dXJlciB3aXRoIHRoZSBDUFUgYXJjaGl0ZWN0dXJlLiBJbnN0YW5jZXMgd2lsbCBiZSBsYXVuY2hlZCB3aXRoIGEgY29tcGF0aWJsZSBDUFUgYXJjaGl0ZWN0dXJlIGJhc2VkIG9uIHRoZSBBbWF6b24gTWFjaGluZSBJbWFnZSAoQU1JKSB0aGF0IHlvdSBzcGVjaWZ5IGluIHlvdXIgbGF1bmNoIHRlbXBsYXRlLlxuICogICBEZWZhdWx0OiBBbnkgbWFudWZhY3R1cmVyXG4gKi9cbkNwdU1hbnVmYWN0dXJlcnM/OiBzdHJpbmdbXVxuLyoqXG4gKiBJbmRpY2F0ZXMgd2hldGhlciBiYXJlIG1ldGFsIGluc3RhbmNlIHR5cGVzIG11c3QgYmUgaW5jbHVkZWQsIGV4Y2x1ZGVkLCBvciByZXF1aXJlZC5cbiAqICAgKyAgVG8gaW5jbHVkZSBiYXJlIG1ldGFsIGluc3RhbmNlIHR5cGVzLCBzcGVjaWZ5IGBgaW5jbHVkZWRgYC5cbiAqICAgKyAgVG8gcmVxdWlyZSBvbmx5IGJhcmUgbWV0YWwgaW5zdGFuY2UgdHlwZXMsIHNwZWNpZnkgYGByZXF1aXJlZGBgLlxuICogICArICBUbyBleGNsdWRlIGJhcmUgbWV0YWwgaW5zdGFuY2UgdHlwZXMsIHNwZWNpZnkgYGBleGNsdWRlZGBgLlxuICogICBcbiAqICBEZWZhdWx0OiBgYGV4Y2x1ZGVkYGBcbiAqL1xuQmFyZU1ldGFsPzogc3RyaW5nXG4vKipcbiAqIEluZGljYXRlcyB3aGV0aGVyIGluc3RhbmNlIHR5cGVzIG11c3Qgc3VwcG9ydCBoaWJlcm5hdGlvbiBmb3IgT24tRGVtYW5kIEluc3RhbmNlcy5cbiAqICBUaGlzIHBhcmFtZXRlciBpcyBub3Qgc3VwcG9ydGVkIGZvciBbR2V0U3BvdFBsYWNlbWVudFNjb3Jlc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0VDMi9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9HZXRTcG90UGxhY2VtZW50U2NvcmVzLmh0bWwpLlxuICogIERlZmF1bHQ6IGBgZmFsc2VgYFxuICovXG5SZXF1aXJlSGliZXJuYXRlU3VwcG9ydD86IGJvb2xlYW5cbi8qKlxuICogW1ByaWNlIHByb3RlY3Rpb25dIFRoZSBwcmljZSBwcm90ZWN0aW9uIHRocmVzaG9sZCBmb3IgU3BvdCBJbnN0YW5jZXMsIGFzIGEgcGVyY2VudGFnZSBvZiBhbiBpZGVudGlmaWVkIE9uLURlbWFuZCBwcmljZS4gVGhlIGlkZW50aWZpZWQgT24tRGVtYW5kIHByaWNlIGlzIHRoZSBwcmljZSBvZiB0aGUgbG93ZXN0IHByaWNlZCBjdXJyZW50IGdlbmVyYXRpb24gQywgTSwgb3IgUiBpbnN0YW5jZSB0eXBlIHdpdGggeW91ciBzcGVjaWZpZWQgYXR0cmlidXRlcy4gSWYgbm8gY3VycmVudCBnZW5lcmF0aW9uIEMsIE0sIG9yIFIgaW5zdGFuY2UgdHlwZSBtYXRjaGVzIHlvdXIgYXR0cmlidXRlcywgdGhlbiB0aGUgaWRlbnRpZmllZCBwcmljZSBpcyBmcm9tIHRoZSBsb3dlc3QgcHJpY2VkIGN1cnJlbnQgZ2VuZXJhdGlvbiBpbnN0YW5jZSB0eXBlcywgYW5kIGZhaWxpbmcgdGhhdCwgZnJvbSB0aGUgbG93ZXN0IHByaWNlZCBwcmV2aW91cyBnZW5lcmF0aW9uIGluc3RhbmNlIHR5cGVzIHRoYXQgbWF0Y2ggeW91ciBhdHRyaWJ1dGVzLiBXaGVuIEFtYXpvbiBFQzIgc2VsZWN0cyBpbnN0YW5jZSB0eXBlcyB3aXRoIHlvdXIgYXR0cmlidXRlcywgaXQgd2lsbCBleGNsdWRlIGluc3RhbmNlIHR5cGVzIHdob3NlIHByaWNlIGV4Y2VlZHMgeW91ciBzcGVjaWZpZWQgdGhyZXNob2xkLlxuICogIFRoZSBwYXJhbWV0ZXIgYWNjZXB0cyBhbiBpbnRlZ2VyLCB3aGljaCBBbWF6b24gRUMyIGludGVycHJldHMgYXMgYSBwZXJjZW50YWdlLlxuICogIElmIHlvdSBzZXQgYGBUYXJnZXRDYXBhY2l0eVVuaXRUeXBlYGAgdG8gYGB2Y3B1YGAgb3IgYGBtZW1vcnktbWliYGAsIHRoZSBwcmljZSBwcm90ZWN0aW9uIHRocmVzaG9sZCBpcyBiYXNlZCBvbiB0aGUgcGVyIHZDUFUgb3IgcGVyIG1lbW9yeSBwcmljZSBpbnN0ZWFkIG9mIHRoZSBwZXIgaW5zdGFuY2UgcHJpY2UuXG4gKiAgIE9ubHkgb25lIG9mIGBgU3BvdE1heFByaWNlUGVyY2VudGFnZU92ZXJMb3dlc3RQcmljZWBgIG9yIGBgTWF4U3BvdFByaWNlQXNQZXJjZW50YWdlT2ZPcHRpbWFsT25EZW1hbmRQcmljZWBgIGNhbiBiZSBzcGVjaWZpZWQuIElmIHlvdSBkb24ndCBzcGVjaWZ5IGVpdGhlciwgQW1hem9uIEVDMiB3aWxsIGF1dG9tYXRpY2FsbHkgYXBwbHkgb3B0aW1hbCBwcmljZSBwcm90ZWN0aW9uIHRvIGNvbnNpc3RlbnRseSBzZWxlY3QgZnJvbSBhIHdpZGUgcmFuZ2Ugb2YgaW5zdGFuY2UgdHlwZXMuIFRvIGluZGljYXRlIG5vIHByaWNlIHByb3RlY3Rpb24gdGhyZXNob2xkIGZvciBTcG90IEluc3RhbmNlcywgbWVhbmluZyB5b3Ugd2FudCB0byBjb25zaWRlciBhbGwgaW5zdGFuY2UgdHlwZXMgdGhhdCBtYXRjaCB5b3VyIGF0dHJpYnV0ZXMsIGluY2x1ZGUgb25lIG9mIHRoZXNlIHBhcmFtZXRlcnMgYW5kIHNwZWNpZnkgYSBoaWdoIHZhbHVlLCBzdWNoIGFzIGBgOTk5OTk5YGAuXG4gKi9cbk1heFNwb3RQcmljZUFzUGVyY2VudGFnZU9mT3B0aW1hbE9uRGVtYW5kUHJpY2U/OiBudW1iZXJcbi8qKlxuICogW1ByaWNlIHByb3RlY3Rpb25dIFRoZSBwcmljZSBwcm90ZWN0aW9uIHRocmVzaG9sZCBmb3IgT24tRGVtYW5kIEluc3RhbmNlcywgYXMgYSBwZXJjZW50YWdlIGhpZ2hlciB0aGFuIGFuIGlkZW50aWZpZWQgT24tRGVtYW5kIHByaWNlLiBUaGUgaWRlbnRpZmllZCBPbi1EZW1hbmQgcHJpY2UgaXMgdGhlIHByaWNlIG9mIHRoZSBsb3dlc3QgcHJpY2VkIGN1cnJlbnQgZ2VuZXJhdGlvbiBDLCBNLCBvciBSIGluc3RhbmNlIHR5cGUgd2l0aCB5b3VyIHNwZWNpZmllZCBhdHRyaWJ1dGVzLiBXaGVuIEFtYXpvbiBFQzIgc2VsZWN0cyBpbnN0YW5jZSB0eXBlcyB3aXRoIHlvdXIgYXR0cmlidXRlcywgaXQgd2lsbCBleGNsdWRlIGluc3RhbmNlIHR5cGVzIHdob3NlIHByaWNlIGV4Y2VlZHMgeW91ciBzcGVjaWZpZWQgdGhyZXNob2xkLlxuICogIFRoZSBwYXJhbWV0ZXIgYWNjZXB0cyBhbiBpbnRlZ2VyLCB3aGljaCBBbWF6b24gRUMyIGludGVycHJldHMgYXMgYSBwZXJjZW50YWdlLlxuICogIFRvIHR1cm4gb2ZmIHByaWNlIHByb3RlY3Rpb24sIHNwZWNpZnkgYSBoaWdoIHZhbHVlLCBzdWNoIGFzIGBgOTk5OTk5YGAuXG4gKiAgVGhpcyBwYXJhbWV0ZXIgaXMgbm90IHN1cHBvcnRlZCBmb3IgW0dldFNwb3RQbGFjZW1lbnRTY29yZXNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NFQzIvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfR2V0U3BvdFBsYWNlbWVudFNjb3Jlcy5odG1sKSBhbmQgW0dldEluc3RhbmNlVHlwZXNGcm9tSW5zdGFuY2VSZXF1aXJlbWVudHNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NFQzIvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfR2V0SW5zdGFuY2VUeXBlc0Zyb21JbnN0YW5jZVJlcXVpcmVtZW50cy5odG1sKS5cbiAqICAgSWYgeW91IHNldCBgYFRhcmdldENhcGFjaXR5VW5pdFR5cGVgYCB0byBgYHZjcHVgYCBvciBgYG1lbW9yeS1taWJgYCwgdGhlIHByaWNlIHByb3RlY3Rpb24gdGhyZXNob2xkIGlzIGFwcGxpZWQgYmFzZWQgb24gdGhlIHBlci12Q1BVIG9yIHBlci1tZW1vcnkgcHJpY2UgaW5zdGVhZCBvZiB0aGUgcGVyLWluc3RhbmNlIHByaWNlLlxuICogICBEZWZhdWx0OiBgYDIwYGBcbiAqL1xuT25EZW1hbmRNYXhQcmljZVBlcmNlbnRhZ2VPdmVyTG93ZXN0UHJpY2U/OiBudW1iZXJcbk1lbW9yeU1pQj86IE1lbW9yeU1pQlxuLyoqXG4gKiBUaGUgdHlwZSBvZiBsb2NhbCBzdG9yYWdlIHRoYXQgaXMgcmVxdWlyZWQuXG4gKiAgICsgIEZvciBpbnN0YW5jZSB0eXBlcyB3aXRoIGhhcmQgZGlzayBkcml2ZSAoSEREKSBzdG9yYWdlLCBzcGVjaWZ5IGBgaGRkYGAuXG4gKiAgICsgIEZvciBpbnN0YW5jZSB0eXBlcyB3aXRoIHNvbGlkIHN0YXRlIGRyaXZlIChTU0QpIHN0b3JhZ2UsIHNwZWNpZnkgYGBzc2RgYC5cbiAqICAgXG4gKiAgRGVmYXVsdDogYGBoZGRgYCBhbmQgYGBzc2RgYFxuICovXG5Mb2NhbFN0b3JhZ2VUeXBlcz86IHN0cmluZ1tdXG5OZXR3b3JrSW50ZXJmYWNlQ291bnQ/OiBOZXR3b3JrSW50ZXJmYWNlQ291bnRcbi8qKlxuICogVGhlIGluc3RhbmNlIHR5cGVzIHRvIGV4Y2x1ZGUuXG4gKiAgWW91IGNhbiB1c2Ugc3RyaW5ncyB3aXRoIG9uZSBvciBtb3JlIHdpbGQgY2FyZHMsIHJlcHJlc2VudGVkIGJ5IGFuIGFzdGVyaXNrIChgYCpgYCksIHRvIGV4Y2x1ZGUgYW4gaW5zdGFuY2UgdHlwZSwgc2l6ZSwgb3IgZ2VuZXJhdGlvbi4gVGhlIGZvbGxvd2luZyBhcmUgZXhhbXBsZXM6IGBgbTUuOHhsYXJnZWBgLCBgYGM1Ki4qYGAsIGBgbTVhLipgYCwgYGByKmBgLCBgYCozKmBgLlxuICogIEZvciBleGFtcGxlLCBpZiB5b3Ugc3BlY2lmeSBgYGM1KmBgLEFtYXpvbiBFQzIgd2lsbCBleGNsdWRlIHRoZSBlbnRpcmUgQzUgaW5zdGFuY2UgZmFtaWx5LCB3aGljaCBpbmNsdWRlcyBhbGwgQzVhIGFuZCBDNW4gaW5zdGFuY2UgdHlwZXMuIElmIHlvdSBzcGVjaWZ5IGBgbTVhLipgYCwgQW1hem9uIEVDMiB3aWxsIGV4Y2x1ZGUgYWxsIHRoZSBNNWEgaW5zdGFuY2UgdHlwZXMsIGJ1dCBub3QgdGhlIE01biBpbnN0YW5jZSB0eXBlcy5cbiAqICAgSWYgeW91IHNwZWNpZnkgYGBFeGNsdWRlZEluc3RhbmNlVHlwZXNgYCwgeW91IGNhbid0IHNwZWNpZnkgYGBBbGxvd2VkSW5zdGFuY2VUeXBlc2BgLlxuICogICBEZWZhdWx0OiBObyBleGNsdWRlZCBpbnN0YW5jZSB0eXBlc1xuICovXG5FeGNsdWRlZEluc3RhbmNlVHlwZXM/OiBzdHJpbmdbXVxuLyoqXG4gKiBUaGUgaW5zdGFuY2UgdHlwZXMgdG8gYXBwbHkgeW91ciBzcGVjaWZpZWQgYXR0cmlidXRlcyBhZ2FpbnN0LiBBbGwgb3RoZXIgaW5zdGFuY2UgdHlwZXMgYXJlIGlnbm9yZWQsIGV2ZW4gaWYgdGhleSBtYXRjaCB5b3VyIHNwZWNpZmllZCBhdHRyaWJ1dGVzLlxuICogIFlvdSBjYW4gdXNlIHN0cmluZ3Mgd2l0aCBvbmUgb3IgbW9yZSB3aWxkIGNhcmRzLCByZXByZXNlbnRlZCBieSBhbiBhc3RlcmlzayAoYGAqYGApLCB0byBhbGxvdyBhbiBpbnN0YW5jZSB0eXBlLCBzaXplLCBvciBnZW5lcmF0aW9uLiBUaGUgZm9sbG93aW5nIGFyZSBleGFtcGxlczogYGBtNS44eGxhcmdlYGAsIGBgYzUqLipgYCwgYGBtNWEuKmBgLCBgYHIqYGAsIGBgKjMqYGAuXG4gKiAgRm9yIGV4YW1wbGUsIGlmIHlvdSBzcGVjaWZ5IGBgYzUqYGAsQW1hem9uIEVDMiB3aWxsIGFsbG93IHRoZSBlbnRpcmUgQzUgaW5zdGFuY2UgZmFtaWx5LCB3aGljaCBpbmNsdWRlcyBhbGwgQzVhIGFuZCBDNW4gaW5zdGFuY2UgdHlwZXMuIElmIHlvdSBzcGVjaWZ5IGBgbTVhLipgYCwgQW1hem9uIEVDMiB3aWxsIGFsbG93IGFsbCB0aGUgTTVhIGluc3RhbmNlIHR5cGVzLCBidXQgbm90IHRoZSBNNW4gaW5zdGFuY2UgdHlwZXMuXG4gKiAgIElmIHlvdSBzcGVjaWZ5IGBgQWxsb3dlZEluc3RhbmNlVHlwZXNgYCwgeW91IGNhbid0IHNwZWNpZnkgYGBFeGNsdWRlZEluc3RhbmNlVHlwZXNgYC5cbiAqICAgRGVmYXVsdDogQWxsIGluc3RhbmNlIHR5cGVzXG4gKi9cbkFsbG93ZWRJbnN0YW5jZVR5cGVzPzogc3RyaW5nW11cbkFjY2VsZXJhdG9yQ291bnQ/OiBBY2NlbGVyYXRvckNvdW50XG5OZXR3b3JrQmFuZHdpZHRoR2Jwcz86IE5ldHdvcmtCYW5kd2lkdGhHYnBzXG5CYXNlbGluZVBlcmZvcm1hbmNlRmFjdG9ycz86IEJhc2VsaW5lUGVyZm9ybWFuY2VGYWN0b3JzXG4vKipcbiAqIFtQcmljZSBwcm90ZWN0aW9uXSBUaGUgcHJpY2UgcHJvdGVjdGlvbiB0aHJlc2hvbGQgZm9yIFNwb3QgSW5zdGFuY2VzLCBhcyBhIHBlcmNlbnRhZ2UgaGlnaGVyIHRoYW4gYW4gaWRlbnRpZmllZCBTcG90IHByaWNlLiBUaGUgaWRlbnRpZmllZCBTcG90IHByaWNlIGlzIHRoZSBTcG90IHByaWNlIG9mIHRoZSBsb3dlc3QgcHJpY2VkIGN1cnJlbnQgZ2VuZXJhdGlvbiBDLCBNLCBvciBSIGluc3RhbmNlIHR5cGUgd2l0aCB5b3VyIHNwZWNpZmllZCBhdHRyaWJ1dGVzLiBJZiBubyBjdXJyZW50IGdlbmVyYXRpb24gQywgTSwgb3IgUiBpbnN0YW5jZSB0eXBlIG1hdGNoZXMgeW91ciBhdHRyaWJ1dGVzLCB0aGVuIHRoZSBpZGVudGlmaWVkIFNwb3QgcHJpY2UgaXMgZnJvbSB0aGUgbG93ZXN0IHByaWNlZCBjdXJyZW50IGdlbmVyYXRpb24gaW5zdGFuY2UgdHlwZXMsIGFuZCBmYWlsaW5nIHRoYXQsIGZyb20gdGhlIGxvd2VzdCBwcmljZWQgcHJldmlvdXMgZ2VuZXJhdGlvbiBpbnN0YW5jZSB0eXBlcyB0aGF0IG1hdGNoIHlvdXIgYXR0cmlidXRlcy4gV2hlbiBBbWF6b24gRUMyIHNlbGVjdHMgaW5zdGFuY2UgdHlwZXMgd2l0aCB5b3VyIGF0dHJpYnV0ZXMsIGl0IHdpbGwgZXhjbHVkZSBpbnN0YW5jZSB0eXBlcyB3aG9zZSBTcG90IHByaWNlIGV4Y2VlZHMgeW91ciBzcGVjaWZpZWQgdGhyZXNob2xkLlxuICogIFRoZSBwYXJhbWV0ZXIgYWNjZXB0cyBhbiBpbnRlZ2VyLCB3aGljaCBBbWF6b24gRUMyIGludGVycHJldHMgYXMgYSBwZXJjZW50YWdlLlxuICogIElmIHlvdSBzZXQgYGBUYXJnZXRDYXBhY2l0eVVuaXRUeXBlYGAgdG8gYGB2Y3B1YGAgb3IgYGBtZW1vcnktbWliYGAsIHRoZSBwcmljZSBwcm90ZWN0aW9uIHRocmVzaG9sZCBpcyBhcHBsaWVkIGJhc2VkIG9uIHRoZSBwZXItdkNQVSBvciBwZXItbWVtb3J5IHByaWNlIGluc3RlYWQgb2YgdGhlIHBlci1pbnN0YW5jZSBwcmljZS5cbiAqICBUaGlzIHBhcmFtZXRlciBpcyBub3Qgc3VwcG9ydGVkIGZvciBbR2V0U3BvdFBsYWNlbWVudFNjb3Jlc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0VDMi9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9HZXRTcG90UGxhY2VtZW50U2NvcmVzLmh0bWwpIGFuZCBbR2V0SW5zdGFuY2VUeXBlc0Zyb21JbnN0YW5jZVJlcXVpcmVtZW50c10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0VDMi9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9HZXRJbnN0YW5jZVR5cGVzRnJvbUluc3RhbmNlUmVxdWlyZW1lbnRzLmh0bWwpLlxuICogICBPbmx5IG9uZSBvZiBgYFNwb3RNYXhQcmljZVBlcmNlbnRhZ2VPdmVyTG93ZXN0UHJpY2VgYCBvciBgYE1heFNwb3RQcmljZUFzUGVyY2VudGFnZU9mT3B0aW1hbE9uRGVtYW5kUHJpY2VgYCBjYW4gYmUgc3BlY2lmaWVkLiBJZiB5b3UgZG9uJ3Qgc3BlY2lmeSBlaXRoZXIsIEFtYXpvbiBFQzIgd2lsbCBhdXRvbWF0aWNhbGx5IGFwcGx5IG9wdGltYWwgcHJpY2UgcHJvdGVjdGlvbiB0byBjb25zaXN0ZW50bHkgc2VsZWN0IGZyb20gYSB3aWRlIHJhbmdlIG9mIGluc3RhbmNlIHR5cGVzLiBUbyBpbmRpY2F0ZSBubyBwcmljZSBwcm90ZWN0aW9uIHRocmVzaG9sZCBmb3IgU3BvdCBJbnN0YW5jZXMsIG1lYW5pbmcgeW91IHdhbnQgdG8gY29uc2lkZXIgYWxsIGluc3RhbmNlIHR5cGVzIHRoYXQgbWF0Y2ggeW91ciBhdHRyaWJ1dGVzLCBpbmNsdWRlIG9uZSBvZiB0aGVzZSBwYXJhbWV0ZXJzIGFuZCBzcGVjaWZ5IGEgaGlnaCB2YWx1ZSwgc3VjaCBhcyBgYDk5OTk5OWBgLlxuICogICBEZWZhdWx0OiBgYDEwMGBgXG4gKi9cblNwb3RNYXhQcmljZVBlcmNlbnRhZ2VPdmVyTG93ZXN0UHJpY2U/OiBudW1iZXJcbkJhc2VsaW5lRWJzQmFuZHdpZHRoTWJwcz86IEJhc2VsaW5lRWJzQmFuZHdpZHRoTWJwc1xuLyoqXG4gKiBUaGUgYWNjZWxlcmF0b3JzIHRoYXQgbXVzdCBiZSBvbiB0aGUgaW5zdGFuY2UgdHlwZS5cbiAqICAgKyAgRm9yIGluc3RhbmNlIHR5cGVzIHdpdGggTlZJRElBIEExMEcgR1BVcywgc3BlY2lmeSBgYGExMGdgYC5cbiAqICAgKyAgRm9yIGluc3RhbmNlIHR5cGVzIHdpdGggTlZJRElBIEExMDAgR1BVcywgc3BlY2lmeSBgYGExMDBgYC5cbiAqICAgKyAgRm9yIGluc3RhbmNlIHR5cGVzIHdpdGggTlZJRElBIEgxMDAgR1BVcywgc3BlY2lmeSBgYGgxMDBgYC5cbiAqICAgKyAgRm9yIGluc3RhbmNlIHR5cGVzIHdpdGggQVdTIEluZmVyZW50aWEgY2hpcHMsIHNwZWNpZnkgYGBpbmZlcmVudGlhYGAuXG4gKiAgICsgIEZvciBpbnN0YW5jZSB0eXBlcyB3aXRoIE5WSURJQSBHUklEIEs1MjAgR1BVcywgc3BlY2lmeSBgYGs1MjBgYC5cbiAqICAgKyAgRm9yIGluc3RhbmNlIHR5cGVzIHdpdGggTlZJRElBIEs4MCBHUFVzLCBzcGVjaWZ5IGBgazgwYGAuXG4gKiAgICsgIEZvciBpbnN0YW5jZSB0eXBlcyB3aXRoIE5WSURJQSBNNjAgR1BVcywgc3BlY2lmeSBgYG02MGBgLlxuICogICArICBGb3IgaW5zdGFuY2UgdHlwZXMgd2l0aCBBTUQgUmFkZW9uIFBybyBWNTIwIEdQVXMsIHNwZWNpZnkgYGByYWRlb24tcHJvLXY1MjBgYC5cbiAqICAgKyAgRm9yIGluc3RhbmNlIHR5cGVzIHdpdGggTlZJRElBIFQ0IEdQVXMsIHNwZWNpZnkgYGB0NGBgLlxuICogICArICBGb3IgaW5zdGFuY2UgdHlwZXMgd2l0aCBOVklESUEgVDRHIEdQVXMsIHNwZWNpZnkgYGB0NGdgYC5cbiAqICAgKyAgRm9yIGluc3RhbmNlIHR5cGVzIHdpdGggWGlsaW54IFZVOVAgRlBHQXMsIHNwZWNpZnkgYGB2dTlwYGAuXG4gKiAgICsgIEZvciBpbnN0YW5jZSB0eXBlcyB3aXRoIE5WSURJQSBWMTAwIEdQVXMsIHNwZWNpZnkgYGB2MTAwYGAuXG4gKiAgIFxuICogIERlZmF1bHQ6IEFueSBhY2NlbGVyYXRvclxuICovXG5BY2NlbGVyYXRvck5hbWVzPzogc3RyaW5nW11cbkFjY2VsZXJhdG9yVG90YWxNZW1vcnlNaUI/OiBBY2NlbGVyYXRvclRvdGFsTWVtb3J5TWlCXG4vKipcbiAqIEluZGljYXRlcyB3aGV0aGVyIGJ1cnN0YWJsZSBwZXJmb3JtYW5jZSBUIGluc3RhbmNlIHR5cGVzIGFyZSBpbmNsdWRlZCwgZXhjbHVkZWQsIG9yIHJlcXVpcmVkLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtCdXJzdGFibGUgcGVyZm9ybWFuY2UgaW5zdGFuY2VzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTRUMyL2xhdGVzdC9Vc2VyR3VpZGUvYnVyc3RhYmxlLXBlcmZvcm1hbmNlLWluc3RhbmNlcy5odG1sKS5cbiAqICAgKyAgVG8gaW5jbHVkZSBidXJzdGFibGUgcGVyZm9ybWFuY2UgaW5zdGFuY2UgdHlwZXMsIHNwZWNpZnkgYGBpbmNsdWRlZGBgLlxuICogICArICBUbyByZXF1aXJlIG9ubHkgYnVyc3RhYmxlIHBlcmZvcm1hbmNlIGluc3RhbmNlIHR5cGVzLCBzcGVjaWZ5IGBgcmVxdWlyZWRgYC5cbiAqICAgKyAgVG8gZXhjbHVkZSBidXJzdGFibGUgcGVyZm9ybWFuY2UgaW5zdGFuY2UgdHlwZXMsIHNwZWNpZnkgYGBleGNsdWRlZGBgLlxuICogICBcbiAqICBEZWZhdWx0OiBgYGV4Y2x1ZGVkYGBcbiAqL1xuQnVyc3RhYmxlUGVyZm9ybWFuY2U/OiBzdHJpbmdcblRvdGFsTG9jYWxTdG9yYWdlR0I/OiBUb3RhbExvY2FsU3RvcmFnZUdCXG59XG4vKipcbiAqIFRoZSBtaW5pbXVtIGFuZCBtYXhpbXVtIGFtb3VudCBvZiBtZW1vcnkgcGVyIHZDUFUsIGluIEdpQi5cbiAqICBEZWZhdWx0OiBObyBtaW5pbXVtIG9yIG1heGltdW0gbGltaXRzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWVtb3J5R2lCUGVyVkNwdSB7XG4vKipcbiAqIFRoZSBtaW5pbXVtIGFtb3VudCBvZiBtZW1vcnkgcGVyIHZDUFUsIGluIEdpQi4gVG8gc3BlY2lmeSBubyBtaW5pbXVtIGxpbWl0LCBvbWl0IHRoaXMgcGFyYW1ldGVyLlxuICovXG5NaW4/OiBudW1iZXJcbi8qKlxuICogVGhlIG1heGltdW0gYW1vdW50IG9mIG1lbW9yeSBwZXIgdkNQVSwgaW4gR2lCLiBUbyBzcGVjaWZ5IG5vIG1heGltdW0gbGltaXQsIG9taXQgdGhpcyBwYXJhbWV0ZXIuXG4gKi9cbk1heD86IG51bWJlclxufVxuLyoqXG4gKiBUaGUgbWluaW11bSBhbmQgbWF4aW11bSBudW1iZXIgb2YgdkNQVXMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVkNwdUNvdW50IHtcbi8qKlxuICogVGhlIG1pbmltdW0gbnVtYmVyIG9mIHZDUFVzLiBUbyBzcGVjaWZ5IG5vIG1pbmltdW0gbGltaXQsIHNwZWNpZnkgYGAwYGAuXG4gKi9cbk1pbj86IG51bWJlclxuLyoqXG4gKiBUaGUgbWF4aW11bSBudW1iZXIgb2YgdkNQVXMuIFRvIHNwZWNpZnkgbm8gbWF4aW11bSBsaW1pdCwgb21pdCB0aGlzIHBhcmFtZXRlci5cbiAqL1xuTWF4PzogbnVtYmVyXG59XG4vKipcbiAqIFRoZSBtaW5pbXVtIGFuZCBtYXhpbXVtIGFtb3VudCBvZiBtZW1vcnksIGluIE1pQi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNZW1vcnlNaUIge1xuLyoqXG4gKiBUaGUgbWluaW11bSBhbW91bnQgb2YgbWVtb3J5LCBpbiBNaUIuIFRvIHNwZWNpZnkgbm8gbWluaW11bSBsaW1pdCwgc3BlY2lmeSBgYDBgYC5cbiAqL1xuTWluPzogbnVtYmVyXG4vKipcbiAqIFRoZSBtYXhpbXVtIGFtb3VudCBvZiBtZW1vcnksIGluIE1pQi4gVG8gc3BlY2lmeSBubyBtYXhpbXVtIGxpbWl0LCBvbWl0IHRoaXMgcGFyYW1ldGVyLlxuICovXG5NYXg/OiBudW1iZXJcbn1cbi8qKlxuICogVGhlIG1pbmltdW0gYW5kIG1heGltdW0gbnVtYmVyIG9mIG5ldHdvcmsgaW50ZXJmYWNlcy5cbiAqICBEZWZhdWx0OiBObyBtaW5pbXVtIG9yIG1heGltdW0gbGltaXRzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTmV0d29ya0ludGVyZmFjZUNvdW50IHtcbi8qKlxuICogVGhlIG1pbmltdW0gbnVtYmVyIG9mIG5ldHdvcmsgaW50ZXJmYWNlcy4gVG8gc3BlY2lmeSBubyBtaW5pbXVtIGxpbWl0LCBvbWl0IHRoaXMgcGFyYW1ldGVyLlxuICovXG5NaW4/OiBudW1iZXJcbi8qKlxuICogVGhlIG1heGltdW0gbnVtYmVyIG9mIG5ldHdvcmsgaW50ZXJmYWNlcy4gVG8gc3BlY2lmeSBubyBtYXhpbXVtIGxpbWl0LCBvbWl0IHRoaXMgcGFyYW1ldGVyLlxuICovXG5NYXg/OiBudW1iZXJcbn1cbi8qKlxuICogVGhlIG1pbmltdW0gYW5kIG1heGltdW0gbnVtYmVyIG9mIGFjY2VsZXJhdG9ycyAoR1BVcywgRlBHQXMsIG9yIEFXUyBJbmZlcmVudGlhIGNoaXBzKSBvbiBhbiBpbnN0YW5jZS5cbiAqICBUbyBleGNsdWRlIGFjY2VsZXJhdG9yLWVuYWJsZWQgaW5zdGFuY2UgdHlwZXMsIHNldCBgYE1heGBgIHRvIGBgMGBgLlxuICogIERlZmF1bHQ6IE5vIG1pbmltdW0gb3IgbWF4aW11bSBsaW1pdHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBY2NlbGVyYXRvckNvdW50IHtcbi8qKlxuICogVGhlIG1pbmltdW0gbnVtYmVyIG9mIGFjY2VsZXJhdG9ycy4gVG8gc3BlY2lmeSBubyBtaW5pbXVtIGxpbWl0LCBvbWl0IHRoaXMgcGFyYW1ldGVyLlxuICovXG5NaW4/OiBudW1iZXJcbi8qKlxuICogVGhlIG1heGltdW0gbnVtYmVyIG9mIGFjY2VsZXJhdG9ycy4gVG8gc3BlY2lmeSBubyBtYXhpbXVtIGxpbWl0LCBvbWl0IHRoaXMgcGFyYW1ldGVyLiBUbyBleGNsdWRlIGFjY2VsZXJhdG9yLWVuYWJsZWQgaW5zdGFuY2UgdHlwZXMsIHNldCBgYE1heGBgIHRvIGBgMGBgLlxuICovXG5NYXg/OiBudW1iZXJcbn1cbi8qKlxuICogVGhlIG1pbmltdW0gYW5kIG1heGltdW0gYW1vdW50IG9mIG5ldHdvcmsgYmFuZHdpZHRoLCBpbiBnaWdhYml0cyBwZXIgc2Vjb25kIChHYnBzKS5cbiAqICBEZWZhdWx0OiBObyBtaW5pbXVtIG9yIG1heGltdW0gbGltaXRzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTmV0d29ya0JhbmR3aWR0aEdicHMge1xuLyoqXG4gKiBUaGUgbWluaW11bSBhbW91bnQgb2YgbmV0d29yayBiYW5kd2lkdGgsIGluIEdicHMuIElmIHRoaXMgcGFyYW1ldGVyIGlzIG5vdCBzcGVjaWZpZWQsIHRoZXJlIGlzIG5vIG1pbmltdW0gbGltaXQuXG4gKi9cbk1pbj86IG51bWJlclxuLyoqXG4gKiBUaGUgbWF4aW11bSBhbW91bnQgb2YgbmV0d29yayBiYW5kd2lkdGgsIGluIEdicHMuIFRvIHNwZWNpZnkgbm8gbWF4aW11bSBsaW1pdCwgb21pdCB0aGlzIHBhcmFtZXRlci5cbiAqL1xuTWF4PzogbnVtYmVyXG59XG4vKipcbiAqIFRoZSBiYXNlbGluZSBwZXJmb3JtYW5jZSB0byBjb25zaWRlciwgdXNpbmcgYW4gaW5zdGFuY2UgZmFtaWx5IGFzIGEgYmFzZWxpbmUgcmVmZXJlbmNlLiBUaGUgaW5zdGFuY2UgZmFtaWx5IGVzdGFibGlzaGVzIHRoZSBsb3dlc3QgYWNjZXB0YWJsZSBsZXZlbCBvZiBwZXJmb3JtYW5jZS4gQW1hem9uIEVDMiB1c2VzIHRoaXMgYmFzZWxpbmUgdG8gZ3VpZGUgaW5zdGFuY2UgdHlwZSBzZWxlY3Rpb24sIGJ1dCB0aGVyZSBpcyBubyBndWFyYW50ZWUgdGhhdCB0aGUgc2VsZWN0ZWQgaW5zdGFuY2UgdHlwZXMgd2lsbCBhbHdheXMgZXhjZWVkIHRoZSBiYXNlbGluZSBmb3IgZXZlcnkgYXBwbGljYXRpb24uIEN1cnJlbnRseSwgdGhpcyBwYXJhbWV0ZXIgb25seSBzdXBwb3J0cyBDUFUgcGVyZm9ybWFuY2UgYXMgYSBiYXNlbGluZSBwZXJmb3JtYW5jZSBmYWN0b3IuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW1BlcmZvcm1hbmNlIHByb3RlY3Rpb25dKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NFQzIvbGF0ZXN0L1VzZXJHdWlkZS9lYzItZmxlZXQtYXR0cmlidXRlLWJhc2VkLWluc3RhbmNlLXR5cGUtc2VsZWN0aW9uLmh0bWwjZWMyZmxlZXQtYWJpcy1wZXJmb3JtYW5jZS1wcm90ZWN0aW9uKSBpbiB0aGUgKkFtYXpvbiBFQzIgVXNlciBHdWlkZSouXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQmFzZWxpbmVQZXJmb3JtYW5jZUZhY3RvcnMge1xuQ3B1PzogQ3B1XG59XG4vKipcbiAqIFRoZSBDUFUgcGVyZm9ybWFuY2UgdG8gY29uc2lkZXIsIHVzaW5nIGFuIGluc3RhbmNlIGZhbWlseSBhcyB0aGUgYmFzZWxpbmUgcmVmZXJlbmNlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENwdSB7XG5SZWZlcmVuY2VzPzogUmVmZXJlbmNlc1xufVxuLyoqXG4gKiBTcGVjaWZpZXMgYW4gaW5zdGFuY2UgZmFtaWx5IHRvIHVzZSBhcyB0aGUgYmFzZWxpbmUgcmVmZXJlbmNlIGZvciBDUFUgcGVyZm9ybWFuY2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVmZXJlbmNlIHtcbi8qKlxuICogVGhlIGluc3RhbmNlIGZhbWlseSB0byB1c2UgYXMgYSBiYXNlbGluZSByZWZlcmVuY2UuXG4gKiAgIEVuc3VyZSB0aGF0IHlvdSBzcGVjaWZ5IHRoZSBjb3JyZWN0IHZhbHVlIGZvciB0aGUgaW5zdGFuY2UgZmFtaWx5LiBUaGUgaW5zdGFuY2UgZmFtaWx5IGlzIGV2ZXJ5dGhpbmcgYmVmb3JlIHRoZSBwZXJpb2QgKGBgLmBgKSBpbiB0aGUgaW5zdGFuY2UgdHlwZSBuYW1lLiBGb3IgZXhhbXBsZSwgaW4gdGhlIGluc3RhbmNlIHR5cGUgYGBjNmkubGFyZ2VgYCwgdGhlIGluc3RhbmNlIGZhbWlseSBpcyBgYGM2aWBgLCBub3QgYGBjNmBgLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtBbWF6b24gRUMyIGluc3RhbmNlIHR5cGUgbmFtaW5nIGNvbnZlbnRpb25zXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZWMyL2xhdGVzdC9pbnN0YW5jZXR5cGVzL2luc3RhbmNlLXR5cGUtbmFtZXMuaHRtbCkgaW4gKkFtYXpvbiBFQzIgSW5zdGFuY2UgVHlwZXMqLlxuICogICBUaGUgZm9sbG93aW5nIGluc3RhbmNlIGZhbWlsaWVzIGFyZSAqbm90IHN1cHBvcnRlZCogZm9yIHBlcmZvcm1hbmNlIHByb3RlY3Rpb246XG4gKiAgICsgICBgYGMxYGAgXG4gKiAgICsgICBgYGczYGAgfCBgYGczc2BgIFxuICogICArICAgYGBocGM3Z2BgIFxuICogICArICAgYGBtMWBgIHwgYGBtMmBgIFxuICogICArICAgYGBtYWMxYGAgfCBgYG1hYzJgYCB8IGBgbWFjMi1tMXVsdHJhYGAgfCBgYG1hYzItbTJgYCB8IGBgbWFjMi1tMnByb2BgIFxuICogICArICAgYGBwM2RuYGAgfCBgYHA0ZGBgIHwgYGBwNWBgIFxuICogICArICAgYGB0MWBgIFxuICogICArICAgYGB1LTEydGIxYGAgfCBgYHUtMTh0YjFgYCB8IGBgdS0yNHRiMWBgIHwgYGB1LTN0YjFgYCB8IGBgdS02dGIxYGAgfCBgYHUtOXRiMWBgIHwgYGB1N2ktMTJ0YmBgIHwgYGB1N2luLTE2dGJgYCB8IGBgdTdpbi0yNHRiYGAgfCBgYHU3aW4tMzJ0YmBgIFxuICogICBcbiAqICBJZiB5b3UgZW5hYmxlIHBlcmZvcm1hbmNlIHByb3RlY3Rpb24gYnkgc3BlY2lmeWluZyBhIHN1cHBvcnRlZCBpbnN0YW5jZSBmYW1pbHksIHRoZSByZXR1cm5lZCBpbnN0YW5jZSB0eXBlcyB3aWxsIGV4Y2x1ZGUgdGhlIGFib3ZlIHVuc3VwcG9ydGVkIGluc3RhbmNlIGZhbWlsaWVzLlxuICovXG5JbnN0YW5jZUZhbWlseT86IHN0cmluZ1xufVxuLyoqXG4gKiBUaGUgbWluaW11bSBhbmQgbWF4aW11bSBiYXNlbGluZSBiYW5kd2lkdGggdG8gQW1hem9uIEVCUywgaW4gTWJwcy4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbQW1hem9uIEVCU+KAk29wdGltaXplZCBpbnN0YW5jZXNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NFQzIvbGF0ZXN0L1VzZXJHdWlkZS9lYnMtb3B0aW1pemVkLmh0bWwpIGluIHRoZSAqQW1hem9uIEVDMiBVc2VyIEd1aWRlKi5cbiAqICBEZWZhdWx0OiBObyBtaW5pbXVtIG9yIG1heGltdW0gbGltaXRzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQmFzZWxpbmVFYnNCYW5kd2lkdGhNYnBzIHtcbi8qKlxuICogVGhlIG1pbmltdW0gYmFzZWxpbmUgYmFuZHdpZHRoLCBpbiBNYnBzLiBUbyBzcGVjaWZ5IG5vIG1pbmltdW0gbGltaXQsIG9taXQgdGhpcyBwYXJhbWV0ZXIuXG4gKi9cbk1pbj86IG51bWJlclxuLyoqXG4gKiBUaGUgbWF4aW11bSBiYXNlbGluZSBiYW5kd2lkdGgsIGluIE1icHMuIFRvIHNwZWNpZnkgbm8gbWF4aW11bSBsaW1pdCwgb21pdCB0aGlzIHBhcmFtZXRlci5cbiAqL1xuTWF4PzogbnVtYmVyXG59XG4vKipcbiAqIFRoZSBtaW5pbXVtIGFuZCBtYXhpbXVtIGFtb3VudCBvZiB0b3RhbCBhY2NlbGVyYXRvciBtZW1vcnksIGluIE1pQi5cbiAqICBEZWZhdWx0OiBObyBtaW5pbXVtIG9yIG1heGltdW0gbGltaXRzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQWNjZWxlcmF0b3JUb3RhbE1lbW9yeU1pQiB7XG4vKipcbiAqIFRoZSBtaW5pbXVtIGFtb3VudCBvZiBhY2NlbGVyYXRvciBtZW1vcnksIGluIE1pQi4gVG8gc3BlY2lmeSBubyBtaW5pbXVtIGxpbWl0LCBvbWl0IHRoaXMgcGFyYW1ldGVyLlxuICovXG5NaW4/OiBudW1iZXJcbi8qKlxuICogVGhlIG1heGltdW0gYW1vdW50IG9mIGFjY2VsZXJhdG9yIG1lbW9yeSwgaW4gTWlCLiBUbyBzcGVjaWZ5IG5vIG1heGltdW0gbGltaXQsIG9taXQgdGhpcyBwYXJhbWV0ZXIuXG4gKi9cbk1heD86IG51bWJlclxufVxuLyoqXG4gKiBUaGUgbWluaW11bSBhbmQgbWF4aW11bSBhbW91bnQgb2YgdG90YWwgbG9jYWwgc3RvcmFnZSwgaW4gR0IuXG4gKiAgRGVmYXVsdDogTm8gbWluaW11bSBvciBtYXhpbXVtIGxpbWl0c1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFRvdGFsTG9jYWxTdG9yYWdlR0Ige1xuLyoqXG4gKiBUaGUgbWluaW11bSBhbW91bnQgb2YgdG90YWwgbG9jYWwgc3RvcmFnZSwgaW4gR0IuIFRvIHNwZWNpZnkgbm8gbWluaW11bSBsaW1pdCwgb21pdCB0aGlzIHBhcmFtZXRlci5cbiAqL1xuTWluPzogbnVtYmVyXG4vKipcbiAqIFRoZSBtYXhpbXVtIGFtb3VudCBvZiB0b3RhbCBsb2NhbCBzdG9yYWdlLCBpbiBHQi4gVG8gc3BlY2lmeSBubyBtYXhpbXVtIGxpbWl0LCBvbWl0IHRoaXMgcGFyYW1ldGVyLlxuICovXG5NYXg/OiBudW1iZXJcbn1cbi8qKlxuICogVGhlIENhcGFjaXR5IFJlc2VydmF0aW9uIHRhcmdldGluZyBvcHRpb24uIElmIHlvdSBkbyBub3Qgc3BlY2lmeSB0aGlzIHBhcmFtZXRlciwgdGhlIGluc3RhbmNlJ3MgQ2FwYWNpdHkgUmVzZXJ2YXRpb24gcHJlZmVyZW5jZSBkZWZhdWx0cyB0byBgYG9wZW5gYCwgd2hpY2ggZW5hYmxlcyBpdCB0byBydW4gaW4gYW55IG9wZW4gQ2FwYWNpdHkgUmVzZXJ2YXRpb24gdGhhdCBoYXMgbWF0Y2hpbmcgYXR0cmlidXRlcyAoaW5zdGFuY2UgdHlwZSwgcGxhdGZvcm0sIEF2YWlsYWJpbGl0eSBab25lKS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDYXBhY2l0eVJlc2VydmF0aW9uU3BlY2lmaWNhdGlvbiB7XG4vKipcbiAqIEluZGljYXRlcyB0aGUgaW5zdGFuY2UncyBDYXBhY2l0eSBSZXNlcnZhdGlvbiBwcmVmZXJlbmNlcy4gUG9zc2libGUgcHJlZmVyZW5jZXMgaW5jbHVkZTpcbiAqICAgKyAgIGBgY2FwYWNpdHktcmVzZXJ2YXRpb25zLW9ubHlgYCAtIFRoZSBpbnN0YW5jZSB3aWxsIG9ubHkgcnVuIGluIGEgQ2FwYWNpdHkgUmVzZXJ2YXRpb24gb3IgQ2FwYWNpdHkgUmVzZXJ2YXRpb24gZ3JvdXAuIElmIGNhcGFjaXR5IGlzbid0IGF2YWlsYWJsZSwgdGhlIGluc3RhbmNlIHdpbGwgZmFpbCB0byBsYXVuY2guXG4gKiAgICsgICBgYG9wZW5gYCAtIFRoZSBpbnN0YW5jZSBjYW4gcnVuIGluIGFueSBgYG9wZW5gYCBDYXBhY2l0eSBSZXNlcnZhdGlvbiB0aGF0IGhhcyBtYXRjaGluZyBhdHRyaWJ1dGVzIChpbnN0YW5jZSB0eXBlLCBwbGF0Zm9ybSwgQXZhaWxhYmlsaXR5IFpvbmUsIHRlbmFuY3kpLlxuICogICArICAgYGBub25lYGAgLSBUaGUgaW5zdGFuY2UgYXZvaWRzIHJ1bm5pbmcgaW4gYSBDYXBhY2l0eSBSZXNlcnZhdGlvbiBldmVuIGlmIG9uZSBpcyBhdmFpbGFibGUuIFRoZSBpbnN0YW5jZSBydW5zIGluIE9uLURlbWFuZCBjYXBhY2l0eS5cbiAqL1xuQ2FwYWNpdHlSZXNlcnZhdGlvblByZWZlcmVuY2U/OiBzdHJpbmdcbkNhcGFjaXR5UmVzZXJ2YXRpb25UYXJnZXQ/OiBDYXBhY2l0eVJlc2VydmF0aW9uVGFyZ2V0XG59XG4vKipcbiAqIEluZm9ybWF0aW9uIGFib3V0IHRoZSB0YXJnZXQgQ2FwYWNpdHkgUmVzZXJ2YXRpb24gb3IgQ2FwYWNpdHkgUmVzZXJ2YXRpb24gZ3JvdXAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2FwYWNpdHlSZXNlcnZhdGlvblRhcmdldCB7XG4vKipcbiAqIFRoZSBBUk4gb2YgdGhlIENhcGFjaXR5IFJlc2VydmF0aW9uIHJlc291cmNlIGdyb3VwIGluIHdoaWNoIHRvIHJ1biB0aGUgaW5zdGFuY2UuXG4gKi9cbkNhcGFjaXR5UmVzZXJ2YXRpb25SZXNvdXJjZUdyb3VwQXJuPzogc3RyaW5nXG4vKipcbiAqIFRoZSBJRCBvZiB0aGUgQ2FwYWNpdHkgUmVzZXJ2YXRpb24gaW4gd2hpY2ggdG8gcnVuIHRoZSBpbnN0YW5jZS5cbiAqL1xuQ2FwYWNpdHlSZXNlcnZhdGlvbklkPzogc3RyaW5nXG59XG4vKipcbiAqIFRoZSBjcmVkaXQgb3B0aW9uIGZvciBDUFUgdXNhZ2Ugb2YgdGhlIGluc3RhbmNlLiBWYWxpZCBvbmx5IGZvciBUIGluc3RhbmNlcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDcmVkaXRTcGVjaWZpY2F0aW9uIHtcbi8qKlxuICogVGhlIGNyZWRpdCBvcHRpb24gZm9yIENQVSB1c2FnZSBvZiBhIFQgaW5zdGFuY2UuXG4gKiAgVmFsaWQgdmFsdWVzOiBgYHN0YW5kYXJkYGAgfCBgYHVubGltaXRlZGBgXG4gKi9cbkNwdUNyZWRpdHM/OiBzdHJpbmdcbn1cbi8qKlxuICogU3BlY2lmaWVzIHRoZSB0YWdzIHRvIGFwcGx5IHRvIHRoZSBsYXVuY2ggdGVtcGxhdGUgZHVyaW5nIGNyZWF0aW9uLlxuICogIFRvIHNwZWNpZnkgdGhlIHRhZ3MgZm9yIHRoZSByZXNvdXJjZXMgdGhhdCBhcmUgY3JlYXRlZCBkdXJpbmcgaW5zdGFuY2UgbGF1bmNoLCB1c2UgW0FXUzo6RUMyOjpMYXVuY2hUZW1wbGF0ZSBUYWdTcGVjaWZpY2F0aW9uXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1lYzItbGF1bmNodGVtcGxhdGUtdGFnc3BlY2lmaWNhdGlvbi5odG1sKS5cbiAqICAgYGBMYXVuY2hUZW1wbGF0ZVRhZ1NwZWNpZmljYXRpb25gYCBpcyBhIHByb3BlcnR5IG9mIFtBV1M6OkVDMjo6TGF1bmNoVGVtcGxhdGVdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1yZXNvdXJjZS1lYzItbGF1bmNodGVtcGxhdGUuaHRtbCkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTGF1bmNoVGVtcGxhdGVUYWdTcGVjaWZpY2F0aW9uIHtcbi8qKlxuICogVGhlIHR5cGUgb2YgcmVzb3VyY2UuIFRvIHRhZyBhIGxhdW5jaCB0ZW1wbGF0ZSwgYGBSZXNvdXJjZVR5cGVgYCBtdXN0IGJlIGBgbGF1bmNoLXRlbXBsYXRlYGAuXG4gKi9cblJlc291cmNlVHlwZT86IHN0cmluZ1xuLyoqXG4gKiBUaGUgdGFncyBmb3IgdGhlIHJlc291cmNlLlxuICovXG5UYWdzPzogVGFnW11cbn1cbiJdfQ==
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
export type IpAddressType = ("ipv4" | "ipv6");
|
|
1
2
|
/**
|
|
2
3
|
* Resource Type definition for AWS::EC2::VPCEndpointService
|
|
3
4
|
*/
|
|
@@ -12,6 +13,10 @@ export interface _AWS_EC2_VPCENDPOINTSERVICE {
|
|
|
12
13
|
* The tags to add to the VPC endpoint service.
|
|
13
14
|
*/
|
|
14
15
|
Tags?: Tag[];
|
|
16
|
+
/**
|
|
17
|
+
* Specify which Ip Address types are supported for VPC endpoint service.
|
|
18
|
+
*/
|
|
19
|
+
SupportedIpAddressTypes?: IpAddressType[];
|
|
15
20
|
}
|
|
16
21
|
export interface Tag {
|
|
17
22
|
Value: string;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWVjMi12cGNlbmRwb2ludHNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJhd3MtZWMyLXZwY2VuZHBvaW50c2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgSXBBZGRyZXNzVHlwZSA9IChcImlwdjRcIiB8IFwiaXB2NlwiKVxuXG4vKipcbiAqIFJlc291cmNlIFR5cGUgZGVmaW5pdGlvbiBmb3IgQVdTOjpFQzI6OlZQQ0VuZHBvaW50U2VydmljZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIF9BV1NfRUMyX1ZQQ0VORFBPSU5UU0VSVklDRSB7XG5OZXR3b3JrTG9hZEJhbGFuY2VyQXJucz86IHN0cmluZ1tdXG5Db250cmlidXRvckluc2lnaHRzRW5hYmxlZD86IGJvb2xlYW5cblBheWVyUmVzcG9uc2liaWxpdHk/OiBzdHJpbmdcblNlcnZpY2VJZD86IHN0cmluZ1xuQWNjZXB0YW5jZVJlcXVpcmVkPzogYm9vbGVhblxuR2F0ZXdheUxvYWRCYWxhbmNlckFybnM/OiBzdHJpbmdbXVxuLyoqXG4gKiBUaGUgdGFncyB0byBhZGQgdG8gdGhlIFZQQyBlbmRwb2ludCBzZXJ2aWNlLlxuICovXG5UYWdzPzogVGFnW11cbi8qKlxuICogU3BlY2lmeSB3aGljaCBJcCBBZGRyZXNzIHR5cGVzIGFyZSBzdXBwb3J0ZWQgZm9yIFZQQyBlbmRwb2ludCBzZXJ2aWNlLlxuICovXG5TdXBwb3J0ZWRJcEFkZHJlc3NUeXBlcz86IElwQWRkcmVzc1R5cGVbXVxufVxuZXhwb3J0IGludGVyZmFjZSBUYWcge1xuVmFsdWU6IHN0cmluZ1xuS2V5OiBzdHJpbmdcbn1cbiJdfQ==
|
|
@@ -3,19 +3,27 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export interface _AWS_ECR_PULLTHROUGHCACHERULE {
|
|
5
5
|
/**
|
|
6
|
-
* The
|
|
6
|
+
* The ECRRepositoryPrefix is a custom alias for upstream registry url.
|
|
7
7
|
*/
|
|
8
8
|
EcrRepositoryPrefix?: string;
|
|
9
9
|
/**
|
|
10
|
-
* The upstream registry
|
|
10
|
+
* The upstreamRegistryUrl is the endpoint of upstream registry url of the public repository to be cached
|
|
11
11
|
*/
|
|
12
12
|
UpstreamRegistryUrl?: string;
|
|
13
13
|
/**
|
|
14
|
-
* The ARN of the Secrets Manager secret
|
|
14
|
+
* The Amazon Resource Name (ARN) of the AWS Secrets Manager secret that identifies the credentials to authenticate to the upstream registry.
|
|
15
15
|
*/
|
|
16
16
|
CredentialArn?: string;
|
|
17
17
|
/**
|
|
18
|
-
* The name of the upstream
|
|
18
|
+
* The name of the upstream registry.
|
|
19
19
|
*/
|
|
20
20
|
UpstreamRegistry?: string;
|
|
21
|
+
/**
|
|
22
|
+
* The ARN of the IAM role to be assumed by Amazon ECR to authenticate to ECR upstream registry. This role must be in the same account as the registry that you are configuring.
|
|
23
|
+
*/
|
|
24
|
+
CustomRoleArn?: string;
|
|
25
|
+
/**
|
|
26
|
+
* The repository name prefix of upstream registry to match with the upstream repository name. When this field isn't specified, Amazon ECR will use the `ROOT`.
|
|
27
|
+
*/
|
|
28
|
+
UpstreamRepositoryPrefix?: string;
|
|
21
29
|
}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWVjci1wdWxsdGhyb3VnaGNhY2hlcnVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImF3cy1lY3ItcHVsbHRocm91Z2hjYWNoZXJ1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhlIGBgQVdTOjpFQ1I6OlB1bGxUaHJvdWdoQ2FjaGVSdWxlYGAgcmVzb3VyY2UgY3JlYXRlcyBvciB1cGRhdGVzIGEgcHVsbCB0aHJvdWdoIGNhY2hlIHJ1bGUuIEEgcHVsbCB0aHJvdWdoIGNhY2hlIHJ1bGUgcHJvdmlkZXMgYSB3YXkgdG8gY2FjaGUgaW1hZ2VzIGZyb20gYW4gdXBzdHJlYW0gcmVnaXN0cnkgaW4geW91ciBBbWF6b24gRUNSIHByaXZhdGUgcmVnaXN0cnkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgX0FXU19FQ1JfUFVMTFRIUk9VR0hDQUNIRVJVTEUge1xuLyoqXG4gKiBUaGUgRUNSUmVwb3NpdG9yeVByZWZpeCBpcyBhIGN1c3RvbSBhbGlhcyBmb3IgdXBzdHJlYW0gcmVnaXN0cnkgdXJsLlxuICovXG5FY3JSZXBvc2l0b3J5UHJlZml4Pzogc3RyaW5nXG4vKipcbiAqIFRoZSB1cHN0cmVhbVJlZ2lzdHJ5VXJsIGlzIHRoZSBlbmRwb2ludCBvZiB1cHN0cmVhbSByZWdpc3RyeSB1cmwgb2YgdGhlIHB1YmxpYyByZXBvc2l0b3J5IHRvIGJlIGNhY2hlZFxuICovXG5VcHN0cmVhbVJlZ2lzdHJ5VXJsPzogc3RyaW5nXG4vKipcbiAqIFRoZSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKSBvZiB0aGUgQVdTIFNlY3JldHMgTWFuYWdlciBzZWNyZXQgdGhhdCBpZGVudGlmaWVzIHRoZSBjcmVkZW50aWFscyB0byBhdXRoZW50aWNhdGUgdG8gdGhlIHVwc3RyZWFtIHJlZ2lzdHJ5LlxuICovXG5DcmVkZW50aWFsQXJuPzogc3RyaW5nXG4vKipcbiAqIFRoZSBuYW1lIG9mIHRoZSB1cHN0cmVhbSByZWdpc3RyeS5cbiAqL1xuVXBzdHJlYW1SZWdpc3RyeT86IHN0cmluZ1xuLyoqXG4gKiBUaGUgQVJOIG9mIHRoZSBJQU0gcm9sZSB0byBiZSBhc3N1bWVkIGJ5IEFtYXpvbiBFQ1IgdG8gYXV0aGVudGljYXRlIHRvIEVDUiB1cHN0cmVhbSByZWdpc3RyeS4gVGhpcyByb2xlIG11c3QgYmUgaW4gdGhlIHNhbWUgYWNjb3VudCBhcyB0aGUgcmVnaXN0cnkgdGhhdCB5b3UgYXJlIGNvbmZpZ3VyaW5nLlxuICovXG5DdXN0b21Sb2xlQXJuPzogc3RyaW5nXG4vKipcbiAqIFRoZSByZXBvc2l0b3J5IG5hbWUgcHJlZml4IG9mIHVwc3RyZWFtIHJlZ2lzdHJ5IHRvIG1hdGNoIHdpdGggdGhlIHVwc3RyZWFtIHJlcG9zaXRvcnkgbmFtZS4gV2hlbiB0aGlzIGZpZWxkIGlzbid0IHNwZWNpZmllZCwgQW1hem9uIEVDUiB3aWxsIHVzZSB0aGUgYFJPT1RgLlxuICovXG5VcHN0cmVhbVJlcG9zaXRvcnlQcmVmaXg/OiBzdHJpbmdcbn1cbiJdfQ==
|
|
@@ -115,13 +115,16 @@ export interface MutualAuthentication {
|
|
|
115
115
|
*/
|
|
116
116
|
IgnoreClientCertificateExpiry?: boolean;
|
|
117
117
|
/**
|
|
118
|
-
* The client certificate handling method.
|
|
118
|
+
* The client certificate handling method. The possible values are ``off``, ``passthrough``, and ``verify``. The default value is ``off``.
|
|
119
119
|
*/
|
|
120
120
|
Mode?: string;
|
|
121
121
|
/**
|
|
122
122
|
* The Amazon Resource Name (ARN) of the trust store.
|
|
123
123
|
*/
|
|
124
124
|
TrustStoreArn?: string;
|
|
125
|
+
/**
|
|
126
|
+
* Indicates whether trust store CA certificate names are advertised. The default value is ``off``.
|
|
127
|
+
*/
|
|
125
128
|
AdvertiseTrustStoreCaNames?: string;
|
|
126
129
|
}
|
|
127
130
|
/**
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWVsYXN0aWNsb2FkYmFsYW5jaW5ndjItbGlzdGVuZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJhd3MtZWxhc3RpY2xvYWRiYWxhbmNpbmd2Mi1saXN0ZW5lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBbSFRUUFMgbGlzdGVuZXJzXSBJbmZvcm1hdGlvbiBhYm91dCBhbiBpZGVudGl0eSBwcm92aWRlciB0aGF0IGlzIGNvbXBsaWFudCB3aXRoIE9wZW5JRCBDb25uZWN0IChPSURDKS4gU3BlY2lmeSBvbmx5IHdoZW4gYGBUeXBlYGAgaXMgYGBhdXRoZW50aWNhdGUtb2lkY2BgLlxuICovXG5leHBvcnQgdHlwZSBBdXRoZW50aWNhdGVPaWRjQ29uZmlnID0gKHtcbltrOiBzdHJpbmddOiB1bmtub3duXG59ICYge1xuLyoqXG4gKiBUaGUgYmVoYXZpb3IgaWYgdGhlIHVzZXIgaXMgbm90IGF1dGhlbnRpY2F0ZWQuIFRoZSBmb2xsb3dpbmcgYXJlIHBvc3NpYmxlIHZhbHVlczpcbiAqICAgKyAgZGVueWBgYGAgLSBSZXR1cm4gYW4gSFRUUCA0MDEgVW5hdXRob3JpemVkIGVycm9yLlxuICogICArICBhbGxvd2BgYGAgLSBBbGxvdyB0aGUgcmVxdWVzdCB0byBiZSBmb3J3YXJkZWQgdG8gdGhlIHRhcmdldC5cbiAqICAgKyAgYXV0aGVudGljYXRlYGBgYCAtIFJlZGlyZWN0IHRoZSByZXF1ZXN0IHRvIHRoZSBJZFAgYXV0aG9yaXphdGlvbiBlbmRwb2ludC4gVGhpcyBpcyB0aGUgZGVmYXVsdCB2YWx1ZS5cbiAqL1xuT25VbmF1dGhlbnRpY2F0ZWRSZXF1ZXN0Pzogc3RyaW5nXG4vKipcbiAqIFRoZSB0b2tlbiBlbmRwb2ludCBvZiB0aGUgSWRQLiBUaGlzIG11c3QgYmUgYSBmdWxsIFVSTCwgaW5jbHVkaW5nIHRoZSBIVFRQUyBwcm90b2NvbCwgdGhlIGRvbWFpbiwgYW5kIHRoZSBwYXRoLlxuICovXG5Ub2tlbkVuZHBvaW50OiBzdHJpbmdcbi8qKlxuICogSW5kaWNhdGVzIHdoZXRoZXIgdG8gdXNlIHRoZSBleGlzdGluZyBjbGllbnQgc2VjcmV0IHdoZW4gbW9kaWZ5aW5nIGEgcnVsZS4gSWYgeW91IGFyZSBjcmVhdGluZyBhIHJ1bGUsIHlvdSBjYW4gb21pdCB0aGlzIHBhcmFtZXRlciBvciBzZXQgaXQgdG8gZmFsc2UuXG4gKi9cblVzZUV4aXN0aW5nQ2xpZW50U2VjcmV0PzogYm9vbGVhblxuLyoqXG4gKiBUaGUgbWF4aW11bSBkdXJhdGlvbiBvZiB0aGUgYXV0aGVudGljYXRpb24gc2Vzc2lvbiwgaW4gc2Vjb25kcy4gVGhlIGRlZmF1bHQgaXMgNjA0ODAwIHNlY29uZHMgKDcgZGF5cykuXG4gKi9cblNlc3Npb25UaW1lb3V0Pzogc3RyaW5nXG4vKipcbiAqIFRoZSBzZXQgb2YgdXNlciBjbGFpbXMgdG8gYmUgcmVxdWVzdGVkIGZyb20gdGhlIElkUC4gVGhlIGRlZmF1bHQgaXMgYGBvcGVuaWRgYC5cbiAqICBUbyB2ZXJpZnkgd2hpY2ggc2NvcGUgdmFsdWVzIHlvdXIgSWRQIHN1cHBvcnRzIGFuZCBob3cgdG8gc2VwYXJhdGUgbXVsdGlwbGUgdmFsdWVzLCBzZWUgdGhlIGRvY3VtZW50YXRpb24gZm9yIHlvdXIgSWRQLlxuICovXG5TY29wZT86IHN0cmluZ1xuLyoqXG4gKiBUaGUgT0lEQyBpc3N1ZXIgaWRlbnRpZmllciBvZiB0aGUgSWRQLiBUaGlzIG11c3QgYmUgYSBmdWxsIFVSTCwgaW5jbHVkaW5nIHRoZSBIVFRQUyBwcm90b2NvbCwgdGhlIGRvbWFpbiwgYW5kIHRoZSBwYXRoLlxuICovXG5Jc3N1ZXI6IHN0cmluZ1xuLyoqXG4gKiBUaGUgT0F1dGggMi4wIGNsaWVudCBzZWNyZXQuIFRoaXMgcGFyYW1ldGVyIGlzIHJlcXVpcmVkIGlmIHlvdSBhcmUgY3JlYXRpbmcgYSBydWxlLiBJZiB5b3UgYXJlIG1vZGlmeWluZyBhIHJ1bGUsIHlvdSBjYW4gb21pdCB0aGlzIHBhcmFtZXRlciBpZiB5b3Ugc2V0IGBgVXNlRXhpc3RpbmdDbGllbnRTZWNyZXRgYCB0byB0cnVlLlxuICovXG5DbGllbnRTZWNyZXQ/OiBzdHJpbmdcbi8qKlxuICogVGhlIHVzZXIgaW5mbyBlbmRwb2ludCBvZiB0aGUgSWRQLiBUaGlzIG11c3QgYmUgYSBmdWxsIFVSTCwgaW5jbHVkaW5nIHRoZSBIVFRQUyBwcm90b2NvbCwgdGhlIGRvbWFpbiwgYW5kIHRoZSBwYXRoLlxuICovXG5Vc2VySW5mb0VuZHBvaW50OiBzdHJpbmdcbi8qKlxuICogVGhlIE9BdXRoIDIuMCBjbGllbnQgaWRlbnRpZmllci5cbiAqL1xuQ2xpZW50SWQ6IHN0cmluZ1xuLyoqXG4gKiBUaGUgYXV0aG9yaXphdGlvbiBlbmRwb2ludCBvZiB0aGUgSWRQLiBUaGlzIG11c3QgYmUgYSBmdWxsIFVSTCwgaW5jbHVkaW5nIHRoZSBIVFRQUyBwcm90b2NvbCwgdGhlIGRvbWFpbiwgYW5kIHRoZSBwYXRoLlxuICovXG5BdXRob3JpemF0aW9uRW5kcG9pbnQ6IHN0cmluZ1xuLyoqXG4gKiBUaGUgbmFtZSBvZiB0aGUgY29va2llIHVzZWQgdG8gbWFpbnRhaW4gc2Vzc2lvbiBpbmZvcm1hdGlvbi4gVGhlIGRlZmF1bHQgaXMgQVdTRUxCQXV0aFNlc3Npb25Db29raWUuXG4gKi9cblNlc3Npb25Db29raWVOYW1lPzogc3RyaW5nXG4vKipcbiAqIFRoZSBxdWVyeSBwYXJhbWV0ZXJzICh1cCB0byAxMCkgdG8gaW5jbHVkZSBpbiB0aGUgcmVkaXJlY3QgcmVxdWVzdCB0byB0aGUgYXV0aG9yaXphdGlvbiBlbmRwb2ludC5cbiAqL1xuQXV0aGVudGljYXRpb25SZXF1ZXN0RXh0cmFQYXJhbXM/OiB7XG4vKipcbiAqIFRoaXMgaW50ZXJmYWNlIHdhcyByZWZlcmVuY2VkIGJ5IGB1bmRlZmluZWRgJ3MgSlNPTi1TY2hlbWEgZGVmaW5pdGlvblxuICogdmlhIHRoZSBgcGF0dGVyblByb3BlcnR5YCBcIlthLXpBLVowLTldK1wiLlxuICovXG5bazogc3RyaW5nXTogc3RyaW5nXG59XG59KVxuXG4vKipcbiAqIFNwZWNpZmllcyBhIGxpc3RlbmVyIGZvciBhbiBBcHBsaWNhdGlvbiBMb2FkIEJhbGFuY2VyLCBOZXR3b3JrIExvYWQgQmFsYW5jZXIsIG9yIEdhdGV3YXkgTG9hZCBCYWxhbmNlci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBfQVdTX0VMQVNUSUNMT0FEQkFMQU5DSU5HVjJfTElTVEVORVIge1xuTGlzdGVuZXJBcm4/OiBzdHJpbmdcbk11dHVhbEF1dGhlbnRpY2F0aW9uPzogTXV0dWFsQXV0aGVudGljYXRpb25cbi8qKlxuICogVGhlIGxpc3RlbmVyIGF0dHJpYnV0ZXMuXG4gKi9cbkxpc3RlbmVyQXR0cmlidXRlcz86IExpc3RlbmVyQXR0cmlidXRlW11cbi8qKlxuICogW1RMUyBsaXN0ZW5lcl0gVGhlIG5hbWUgb2YgdGhlIEFwcGxpY2F0aW9uLUxheWVyIFByb3RvY29sIE5lZ290aWF0aW9uIChBTFBOKSBwb2xpY3kuXG4gKi9cbkFscG5Qb2xpY3k/OiBzdHJpbmdbXVxuLyoqXG4gKiBbSFRUUFMgYW5kIFRMUyBsaXN0ZW5lcnNdIFRoZSBzZWN1cml0eSBwb2xpY3kgdGhhdCBkZWZpbmVzIHdoaWNoIHByb3RvY29scyBhbmQgY2lwaGVycyBhcmUgc3VwcG9ydGVkLlxuICogIFVwZGF0aW5nIHRoZSBzZWN1cml0eSBwb2xpY3kgY2FuIHJlc3VsdCBpbiBpbnRlcnJ1cHRpb25zIGlmIHRoZSBsb2FkIGJhbGFuY2VyIGlzIGhhbmRsaW5nIGEgaGlnaCB2b2x1bWUgb2YgdHJhZmZpYy5cbiAqICBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtTZWN1cml0eSBwb2xpY2llc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2VsYXN0aWNsb2FkYmFsYW5jaW5nL2xhdGVzdC9hcHBsaWNhdGlvbi9jcmVhdGUtaHR0cHMtbGlzdGVuZXIuaHRtbCNkZXNjcmliZS1zc2wtcG9saWNpZXMpIGluIHRoZSAqQXBwbGljYXRpb24gTG9hZCBCYWxhbmNlcnMgR3VpZGUqIGFuZCBbU2VjdXJpdHkgcG9saWNpZXNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9lbGFzdGljbG9hZGJhbGFuY2luZy9sYXRlc3QvbmV0d29yay9jcmVhdGUtdGxzLWxpc3RlbmVyLmh0bWwjZGVzY3JpYmUtc3NsLXBvbGljaWVzKSBpbiB0aGUgKk5ldHdvcmsgTG9hZCBCYWxhbmNlcnMgR3VpZGUqLlxuICovXG5Tc2xQb2xpY3k/OiBzdHJpbmdcbi8qKlxuICogVGhlIEFtYXpvbiBSZXNvdXJjZSBOYW1lIChBUk4pIG9mIHRoZSBsb2FkIGJhbGFuY2VyLlxuICovXG5Mb2FkQmFsYW5jZXJBcm46IHN0cmluZ1xuLyoqXG4gKiBUaGUgYWN0aW9ucyBmb3IgdGhlIGRlZmF1bHQgcnVsZS4gWW91IGNhbm5vdCBkZWZpbmUgYSBjb25kaXRpb24gZm9yIGEgZGVmYXVsdCBydWxlLlxuICogIFRvIGNyZWF0ZSBhZGRpdGlvbmFsIHJ1bGVzIGZvciBhbiBBcHBsaWNhdGlvbiBMb2FkIEJhbGFuY2VyLCB1c2UgW0FXUzo6RWxhc3RpY0xvYWRCYWxhbmNpbmdWMjo6TGlzdGVuZXJSdWxlXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcmVzb3VyY2UtZWxhc3RpY2xvYWRiYWxhbmNpbmd2Mi1saXN0ZW5lcnJ1bGUuaHRtbCkuXG4gKi9cbkRlZmF1bHRBY3Rpb25zOiBBY3Rpb25bXVxuLyoqXG4gKiBUaGUgcG9ydCBvbiB3aGljaCB0aGUgbG9hZCBiYWxhbmNlciBpcyBsaXN0ZW5pbmcuIFlvdSBjYW4ndCBzcGVjaWZ5IGEgcG9ydCBmb3IgYSBHYXRld2F5IExvYWQgQmFsYW5jZXIuXG4gKi9cblBvcnQ/OiBudW1iZXJcbi8qKlxuICogVGhlIGRlZmF1bHQgU1NMIHNlcnZlciBjZXJ0aWZpY2F0ZSBmb3IgYSBzZWN1cmUgbGlzdGVuZXIuIFlvdSBtdXN0IHByb3ZpZGUgZXhhY3RseSBvbmUgY2VydGlmaWNhdGUgaWYgdGhlIGxpc3RlbmVyIHByb3RvY29sIGlzIEhUVFBTIG9yIFRMUy5cbiAqICBUbyBjcmVhdGUgYSBjZXJ0aWZpY2F0ZSBsaXN0IGZvciBhIHNlY3VyZSBsaXN0ZW5lciwgdXNlIFtBV1M6OkVsYXN0aWNMb2FkQmFsYW5jaW5nVjI6Okxpc3RlbmVyQ2VydGlmaWNhdGVdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1yZXNvdXJjZS1lbGFzdGljbG9hZGJhbGFuY2luZ3YyLWxpc3RlbmVyY2VydGlmaWNhdGUuaHRtbCkuXG4gKi9cbkNlcnRpZmljYXRlcz86IENlcnRpZmljYXRlW11cbi8qKlxuICogVGhlIHByb3RvY29sIGZvciBjb25uZWN0aW9ucyBmcm9tIGNsaWVudHMgdG8gdGhlIGxvYWQgYmFsYW5jZXIuIEZvciBBcHBsaWNhdGlvbiBMb2FkIEJhbGFuY2VycywgdGhlIHN1cHBvcnRlZCBwcm90b2NvbHMgYXJlIEhUVFAgYW5kIEhUVFBTLiBGb3IgTmV0d29yayBMb2FkIEJhbGFuY2VycywgdGhlIHN1cHBvcnRlZCBwcm90b2NvbHMgYXJlIFRDUCwgVExTLCBVRFAsIGFuZCBUQ1BfVURQLiBZb3UgY2Fu4oCZdCBzcGVjaWZ5IHRoZSBVRFAgb3IgVENQX1VEUCBwcm90b2NvbCBpZiBkdWFsLXN0YWNrIG1vZGUgaXMgZW5hYmxlZC4gWW91IGNhbid0IHNwZWNpZnkgYSBwcm90b2NvbCBmb3IgYSBHYXRld2F5IExvYWQgQmFsYW5jZXIuXG4gKi9cblByb3RvY29sPzogc3RyaW5nXG59XG4vKipcbiAqIFRoZSBtdXR1YWwgYXV0aGVudGljYXRpb24gY29uZmlndXJhdGlvbiBpbmZvcm1hdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNdXR1YWxBdXRoZW50aWNhdGlvbiB7XG4vKipcbiAqIEluZGljYXRlcyB3aGV0aGVyIGV4cGlyZWQgY2xpZW50IGNlcnRpZmljYXRlcyBhcmUgaWdub3JlZC5cbiAqL1xuSWdub3JlQ2xpZW50Q2VydGlmaWNhdGVFeHBpcnk/OiBib29sZWFuXG4vKipcbiAqIFRoZSBjbGllbnQgY2VydGlmaWNhdGUgaGFuZGxpbmcgbWV0aG9kLiBPcHRpb25zIGFyZSBgYG9mZmBgLCBgYHBhc3N0aHJvdWdoYGAgb3IgYGB2ZXJpZnlgYC4gVGhlIGRlZmF1bHQgdmFsdWUgaXMgYGBvZmZgYC5cbiAqL1xuTW9kZT86IHN0cmluZ1xuLyoqXG4gKiBUaGUgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTikgb2YgdGhlIHRydXN0IHN0b3JlLlxuICovXG5UcnVzdFN0b3JlQXJuPzogc3RyaW5nXG5BZHZlcnRpc2VUcnVzdFN0b3JlQ2FOYW1lcz86IHN0cmluZ1xufVxuLyoqXG4gKiBJbmZvcm1hdGlvbiBhYm91dCBhIGxpc3RlbmVyIGF0dHJpYnV0ZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMaXN0ZW5lckF0dHJpYnV0ZSB7XG4vKipcbiAqIFRoZSB2YWx1ZSBvZiB0aGUgYXR0cmlidXRlLlxuICovXG5WYWx1ZT86IHN0cmluZ1xuLyoqXG4gKiBUaGUgbmFtZSBvZiB0aGUgYXR0cmlidXRlLlxuICogIFRoZSBmb2xsb3dpbmcgYXR0cmlidXRlIGlzIHN1cHBvcnRlZCBieSBOZXR3b3JrIExvYWQgQmFsYW5jZXJzLCBhbmQgR2F0ZXdheSBMb2FkIEJhbGFuY2Vycy5cbiAqICAgKyAgIGBgdGNwLmlkbGVfdGltZW91dC5zZWNvbmRzYGAgLSBUaGUgdGNwIGlkbGUgdGltZW91dCB2YWx1ZSwgaW4gc2Vjb25kcy4gVGhlIHZhbGlkIHJhbmdlIGlzIDYwLTYwMDAgc2Vjb25kcy4gVGhlIGRlZmF1bHQgaXMgMzUwIHNlY29uZHMuXG4gKiAgIFxuICogIFRoZSBmb2xsb3dpbmcgYXR0cmlidXRlcyBhcmUgb25seSBzdXBwb3J0ZWQgYnkgQXBwbGljYXRpb24gTG9hZCBCYWxhbmNlcnMuXG4gKiAgICsgICBgYHJvdXRpbmcuaHR0cC5yZXF1ZXN0LnhfYW16bl9tdGxzX2NsaWVudGNlcnRfc2VyaWFsX251bWJlci5oZWFkZXJfbmFtZWBgIC0gRW5hYmxlcyB5b3UgdG8gbW9kaWZ5IHRoZSBoZWFkZXIgbmFtZSBvZiB0aGUgKlgtQW16bi1NdGxzLUNsaWVudGNlcnQtU2VyaWFsLU51bWJlciogSFRUUCByZXF1ZXN0IGhlYWRlci5cbiAqICAgKyAgIGBgcm91dGluZy5odHRwLnJlcXVlc3QueF9hbXpuX210bHNfY2xpZW50Y2VydF9pc3N1ZXIuaGVhZGVyX25hbWVgYCAtIEVuYWJsZXMgeW91IHRvIG1vZGlmeSB0aGUgaGVhZGVyIG5hbWUgb2YgdGhlICpYLUFtem4tTXRscy1DbGllbnRjZXJ0LUlzc3VlciogSFRUUCByZXF1ZXN0IGhlYWRlci5cbiAqICAgKyAgIGBgcm91dGluZy5odHRwLnJlcXVlc3QueF9hbXpuX210bHNfY2xpZW50Y2VydF9zdWJqZWN0LmhlYWRlcl9uYW1lYGAgLSBFbmFibGVzIHlvdSB0byBtb2RpZnkgdGhlIGhlYWRlciBuYW1lIG9mIHRoZSAqWC1BbXpuLU10bHMtQ2xpZW50Y2VydC1TdWJqZWN0KiBIVFRQIHJlcXVlc3QgaGVhZGVyLlxuICogICArICAgYGByb3V0aW5nLmh0dHAucmVxdWVzdC54X2Ftem5fbXRsc19jbGllbnRjZXJ0X3ZhbGlkaXR5LmhlYWRlcl9uYW1lYGAgLSBFbmFibGVzIHlvdSB0byBtb2RpZnkgdGhlIGhlYWRlciBuYW1lIG9mIHRoZSAqWC1BbXpuLU10bHMtQ2xpZW50Y2VydC1WYWxpZGl0eSogSFRUUCByZXF1ZXN0IGhlYWRlci5cbiAqICAgKyAgIGBgcm91dGluZy5odHRwLnJlcXVlc3QueF9hbXpuX210bHNfY2xpZW50Y2VydF9sZWFmLmhlYWRlcl9uYW1lYGAgLSBFbmFibGVzIHlvdSB0byBtb2RpZnkgdGhlIGhlYWRlciBuYW1lIG9mIHRoZSAqWC1BbXpuLU10bHMtQ2xpZW50Y2VydC1MZWFmKiBIVFRQIHJlcXVlc3QgaGVhZGVyLlxuICogICArICAgYGByb3V0aW5nLmh0dHAucmVxdWVzdC54X2Ftem5fbXRsc19jbGllbnRjZXJ0LmhlYWRlcl9uYW1lYGAgLSBFbmFibGVzIHlvdSB0byBtb2RpZnkgdGhlIGhlYWRlciBuYW1lIG9mIHRoZSAqWC1BbXpuLU10bHMtQ2xpZW50Y2VydCogSFRUUCByZXF1ZXN0IGhlYWRlci5cbiAqICAgKyAgIGBgcm91dGluZy5odHRwLnJlcXVlc3QueF9hbXpuX3Rsc192ZXJzaW9uLmhlYWRlcl9uYW1lYGAgLSBFbmFibGVzIHlvdSB0byBtb2RpZnkgdGhlIGhlYWRlciBuYW1lIG9mIHRoZSAqWC1BbXpuLVRscy1WZXJzaW9uKiBIVFRQIHJlcXVlc3QgaGVhZGVyLlxuICogICArICAgYGByb3V0aW5nLmh0dHAucmVxdWVzdC54X2Ftem5fdGxzX2NpcGhlcl9zdWl0ZS5oZWFkZXJfbmFtZWBgIC0gRW5hYmxlcyB5b3UgdG8gbW9kaWZ5IHRoZSBoZWFkZXIgbmFtZSBvZiB0aGUgKlgtQW16bi1UbHMtQ2lwaGVyLVN1aXRlKiBIVFRQIHJlcXVlc3QgaGVhZGVyLlxuICogICArICAgYGByb3V0aW5nLmh0dHAucmVzcG9uc2Uuc2VydmVyLmVuYWJsZWRgYCAtIEVuYWJsZXMgeW91IHRvIGFsbG93IG9yIHJlbW92ZSB0aGUgSFRUUCByZXNwb25zZSBzZXJ2ZXIgaGVhZGVyLlxuICogICArICAgYGByb3V0aW5nLmh0dHAucmVzcG9uc2Uuc3RyaWN0X3RyYW5zcG9ydF9zZWN1cml0eS5oZWFkZXJfdmFsdWVgYCAtIEluZm9ybXMgYnJvd3NlcnMgdGhhdCB0aGUgc2l0ZSBzaG91bGQgb25seSBiZSBhY2Nlc3NlZCB1c2luZyBIVFRQUywgYW5kIHRoYXQgYW55IGZ1dHVyZSBhdHRlbXB0cyB0byBhY2Nlc3MgaXQgdXNpbmcgSFRUUCBzaG91bGQgYXV0b21hdGljYWxseSBiZSBjb252ZXJ0ZWQgdG8gSFRUUFMuXG4gKiAgICsgICBgYHJvdXRpbmcuaHR0cC5yZXNwb25zZS5hY2Nlc3NfY29udHJvbF9hbGxvd19vcmlnaW4uaGVhZGVyX3ZhbHVlYGAgLSBTcGVjaWZpZXMgd2hpY2ggb3JpZ2lucyBhcmUgYWxsb3dlZCB0byBhY2Nlc3MgdGhlIHNlcnZlci5cbiAqICAgKyAgIGBgcm91dGluZy5odHRwLnJlc3BvbnNlLmFjY2Vzc19jb250cm9sX2FsbG93X21ldGhvZHMuaGVhZGVyX3ZhbHVlYGAgLSBSZXR1cm5zIHdoaWNoIEhUVFAgbWV0aG9kcyBhcmUgYWxsb3dlZCB3aGVuIGFjY2Vzc2luZyB0aGUgc2VydmVyIGZyb20gYSBkaWZmZXJlbnQgb3JpZ2luLlxuICogICArICAgYGByb3V0aW5nLmh0dHAucmVzcG9uc2UuYWNjZXNzX2NvbnRyb2xfYWxsb3dfaGVhZGVycy5oZWFkZXJfdmFsdWVgYCAtIFNwZWNpZmllcyB3aGljaCBoZWFkZXJzIGNhbiBiZSB1c2VkIGR1cmluZyB0aGUgcmVxdWVzdC5cbiAqICAgKyAgIGBgcm91dGluZy5odHRwLnJlc3BvbnNlLmFjY2Vzc19jb250cm9sX2FsbG93X2NyZWRlbnRpYWxzLmhlYWRlcl92YWx1ZWBgIC0gSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGJyb3dzZXIgc2hvdWxkIGluY2x1ZGUgY3JlZGVudGlhbHMgc3VjaCBhcyBjb29raWVzIG9yIGF1dGhlbnRpY2F0aW9uIHdoZW4gbWFraW5nIHJlcXVlc3RzLlxuICogICArICAgYGByb3V0aW5nLmh0dHAucmVzcG9uc2UuYWNjZXNzX2NvbnRyb2xfZXhwb3NlX2hlYWRlcnMuaGVhZGVyX3ZhbHVlYGAgLSBSZXR1cm5zIHdoaWNoIGhlYWRlcnMgdGhlIGJyb3dzZXIgY2FuIGV4cG9zZSB0byB0aGUgcmVxdWVzdGluZyBjbGllbnQuXG4gKiAgICsgICBgYHJvdXRpbmcuaHR0cC5yZXNwb25zZS5hY2Nlc3NfY29udHJvbF9tYXhfYWdlLmhlYWRlcl92YWx1ZWBgIC0gU3BlY2lmaWVzIGhvdyBsb25nIHRoZSByZXN1bHRzIG9mIGEgcHJlZmxpZ2h0IHJlcXVlc3QgY2FuIGJlIGNhY2hlZCwgaW4gc2Vjb25kcy5cbiAqICAgKyAgIGBgcm91dGluZy5odHRwLnJlc3BvbnNlLmNvbnRlbnRfc2VjdXJpdHlfcG9saWN5LmhlYWRlcl92YWx1ZWBgIC0gU3BlY2lmaWVzIHJlc3RyaWN0aW9ucyBlbmZvcmNlZCBieSB0aGUgYnJvd3NlciB0byBoZWxwIG1pbmltaXplIHRoZSByaXNrIG9mIGNlcnRhaW4gdHlwZXMgb2Ygc2VjdXJpdHkgdGhyZWF0cy5cbiAqICAgKyAgIGBgcm91dGluZy5odHRwLnJlc3BvbnNlLnhfY29udGVudF90eXBlX29wdGlvbnMuaGVhZGVyX3ZhbHVlYGAgLSBJbmRpY2F0ZXMgd2hldGhlciB0aGUgTUlNRSB0eXBlcyBhZHZlcnRpc2VkIGluIHRoZSAqQ29udGVudC1UeXBlKiBoZWFkZXJzIHNob3VsZCBiZSBmb2xsb3dlZCBhbmQgbm90IGJlIGNoYW5nZWQuXG4gKiAgICsgICBgYHJvdXRpbmcuaHR0cC5yZXNwb25zZS54X2ZyYW1lX29wdGlvbnMuaGVhZGVyX3ZhbHVlYGAgLSBJbmRpY2F0ZXMgd2hldGhlciB0aGUgYnJvd3NlciBpcyBhbGxvd2VkIHRvIHJlbmRlciBhIHBhZ2UgaW4gYSAqZnJhbWUqLCAqaWZyYW1lKiwgKmVtYmVkKiBvciAqb2JqZWN0Ki5cbiAqL1xuS2V5Pzogc3RyaW5nXG59XG4vKipcbiAqIFNwZWNpZmllcyBhbiBhY3Rpb24gZm9yIGEgbGlzdGVuZXIgcnVsZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBY3Rpb24ge1xuLyoqXG4gKiBUaGUgb3JkZXIgZm9yIHRoZSBhY3Rpb24uIFRoaXMgdmFsdWUgaXMgcmVxdWlyZWQgZm9yIHJ1bGVzIHdpdGggbXVsdGlwbGUgYWN0aW9ucy4gVGhlIGFjdGlvbiB3aXRoIHRoZSBsb3dlc3QgdmFsdWUgZm9yIG9yZGVyIGlzIHBlcmZvcm1lZCBmaXJzdC5cbiAqL1xuT3JkZXI/OiBudW1iZXJcbi8qKlxuICogVGhlIEFtYXpvbiBSZXNvdXJjZSBOYW1lIChBUk4pIG9mIHRoZSB0YXJnZXQgZ3JvdXAuIFNwZWNpZnkgb25seSB3aGVuIGBgVHlwZWBgIGlzIGBgZm9yd2FyZGBgIGFuZCB5b3Ugd2FudCB0byByb3V0ZSB0byBhIHNpbmdsZSB0YXJnZXQgZ3JvdXAuIFRvIHJvdXRlIHRvIG9uZSBvciBtb3JlIHRhcmdldCBncm91cHMsIHVzZSBgYEZvcndhcmRDb25maWdgYCBpbnN0ZWFkLlxuICovXG5UYXJnZXRHcm91cEFybj86IHN0cmluZ1xuRml4ZWRSZXNwb25zZUNvbmZpZz86IEZpeGVkUmVzcG9uc2VDb25maWdcbkF1dGhlbnRpY2F0ZUNvZ25pdG9Db25maWc/OiBBdXRoZW50aWNhdGVDb2duaXRvQ29uZmlnXG4vKipcbiAqIFRoZSB0eXBlIG9mIGFjdGlvbi5cbiAqL1xuVHlwZTogc3RyaW5nXG5SZWRpcmVjdENvbmZpZz86IFJlZGlyZWN0Q29uZmlnXG5Gb3J3YXJkQ29uZmlnPzogRm9yd2FyZENvbmZpZ1xuQXV0aGVudGljYXRlT2lkY0NvbmZpZz86IEF1dGhlbnRpY2F0ZU9pZGNDb25maWdcbn1cbi8qKlxuICogW0FwcGxpY2F0aW9uIExvYWQgQmFsYW5jZXJdIEluZm9ybWF0aW9uIGZvciBjcmVhdGluZyBhbiBhY3Rpb24gdGhhdCByZXR1cm5zIGEgY3VzdG9tIEhUVFAgcmVzcG9uc2UuIFNwZWNpZnkgb25seSB3aGVuIGBgVHlwZWBgIGlzIGBgZml4ZWQtcmVzcG9uc2VgYC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGaXhlZFJlc3BvbnNlQ29uZmlnIHtcbi8qKlxuICogVGhlIGNvbnRlbnQgdHlwZS5cbiAqICBWYWxpZCBWYWx1ZXM6IHRleHQvcGxhaW4gfCB0ZXh0L2NzcyB8IHRleHQvaHRtbCB8IGFwcGxpY2F0aW9uL2phdmFzY3JpcHQgfCBhcHBsaWNhdGlvbi9qc29uXG4gKi9cbkNvbnRlbnRUeXBlPzogc3RyaW5nXG4vKipcbiAqIFRoZSBIVFRQIHJlc3BvbnNlIGNvZGUgKDJYWCwgNFhYLCBvciA1WFgpLlxuICovXG5TdGF0dXNDb2RlOiBzdHJpbmdcbi8qKlxuICogVGhlIG1lc3NhZ2UuXG4gKi9cbk1lc3NhZ2VCb2R5Pzogc3RyaW5nXG59XG4vKipcbiAqIFtIVFRQUyBsaXN0ZW5lcnNdIEluZm9ybWF0aW9uIGZvciB1c2luZyBBbWF6b24gQ29nbml0byB0byBhdXRoZW50aWNhdGUgdXNlcnMuIFNwZWNpZnkgb25seSB3aGVuIGBgVHlwZWBgIGlzIGBgYXV0aGVudGljYXRlLWNvZ25pdG9gYC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBdXRoZW50aWNhdGVDb2duaXRvQ29uZmlnIHtcbi8qKlxuICogVGhlIGJlaGF2aW9yIGlmIHRoZSB1c2VyIGlzIG5vdCBhdXRoZW50aWNhdGVkLiBUaGUgZm9sbG93aW5nIGFyZSBwb3NzaWJsZSB2YWx1ZXM6XG4gKiAgICsgIGRlbnlgYGBgIC0gUmV0dXJuIGFuIEhUVFAgNDAxIFVuYXV0aG9yaXplZCBlcnJvci5cbiAqICAgKyAgYWxsb3dgYGBgIC0gQWxsb3cgdGhlIHJlcXVlc3QgdG8gYmUgZm9yd2FyZGVkIHRvIHRoZSB0YXJnZXQuXG4gKiAgICsgIGF1dGhlbnRpY2F0ZWBgYGAgLSBSZWRpcmVjdCB0aGUgcmVxdWVzdCB0byB0aGUgSWRQIGF1dGhvcml6YXRpb24gZW5kcG9pbnQuIFRoaXMgaXMgdGhlIGRlZmF1bHQgdmFsdWUuXG4gKi9cbk9uVW5hdXRoZW50aWNhdGVkUmVxdWVzdD86IHN0cmluZ1xuLyoqXG4gKiBUaGUgSUQgb2YgdGhlIEFtYXpvbiBDb2duaXRvIHVzZXIgcG9vbCBjbGllbnQuXG4gKi9cblVzZXJQb29sQ2xpZW50SWQ6ICh7XG5bazogc3RyaW5nXTogdW5rbm93blxufSAmIHN0cmluZylcbi8qKlxuICogVGhlIGRvbWFpbiBwcmVmaXggb3IgZnVsbHktcXVhbGlmaWVkIGRvbWFpbiBuYW1lIG9mIHRoZSBBbWF6b24gQ29nbml0byB1c2VyIHBvb2wuXG4gKi9cblVzZXJQb29sRG9tYWluOiBzdHJpbmdcbi8qKlxuICogVGhlIG1heGltdW0gZHVyYXRpb24gb2YgdGhlIGF1dGhlbnRpY2F0aW9uIHNlc3Npb24sIGluIHNlY29uZHMuIFRoZSBkZWZhdWx0IGlzIDYwNDgwMCBzZWNvbmRzICg3IGRheXMpLlxuICovXG5TZXNzaW9uVGltZW91dD86IHN0cmluZ1xuLyoqXG4gKiBUaGUgc2V0IG9mIHVzZXIgY2xhaW1zIHRvIGJlIHJlcXVlc3RlZCBmcm9tIHRoZSBJZFAuIFRoZSBkZWZhdWx0IGlzIGBgb3BlbmlkYGAuXG4gKiAgVG8gdmVyaWZ5IHdoaWNoIHNjb3BlIHZhbHVlcyB5b3VyIElkUCBzdXBwb3J0cyBhbmQgaG93IHRvIHNlcGFyYXRlIG11bHRpcGxlIHZhbHVlcywgc2VlIHRoZSBkb2N1bWVudGF0aW9uIGZvciB5b3VyIElkUC5cbiAqL1xuU2NvcGU/OiBzdHJpbmdcbi8qKlxuICogVGhlIG5hbWUgb2YgdGhlIGNvb2tpZSB1c2VkIHRvIG1haW50YWluIHNlc3Npb24gaW5mb3JtYXRpb24uIFRoZSBkZWZhdWx0IGlzIEFXU0VMQkF1dGhTZXNzaW9uQ29va2llLlxuICovXG5TZXNzaW9uQ29va2llTmFtZT86IHN0cmluZ1xuLyoqXG4gKiBUaGUgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTikgb2YgdGhlIEFtYXpvbiBDb2duaXRvIHVzZXIgcG9vbC5cbiAqL1xuVXNlclBvb2xBcm46IHN0cmluZ1xuLyoqXG4gKiBUaGUgcXVlcnkgcGFyYW1ldGVycyAodXAgdG8gMTApIHRvIGluY2x1ZGUgaW4gdGhlIHJlZGlyZWN0IHJlcXVlc3QgdG8gdGhlIGF1dGhvcml6YXRpb24gZW5kcG9pbnQuXG4gKi9cbkF1dGhlbnRpY2F0aW9uUmVxdWVzdEV4dHJhUGFyYW1zPzoge1xuLyoqXG4gKiBUaGlzIGludGVyZmFjZSB3YXMgcmVmZXJlbmNlZCBieSBgdW5kZWZpbmVkYCdzIEpTT04tU2NoZW1hIGRlZmluaXRpb25cbiAqIHZpYSB0aGUgYHBhdHRlcm5Qcm9wZXJ0eWAgXCJbYS16QS1aMC05XStcIi5cbiAqL1xuW2s6IHN0cmluZ106IHN0cmluZ1xufVxufVxuLyoqXG4gKiBbQXBwbGljYXRpb24gTG9hZCBCYWxhbmNlcl0gSW5mb3JtYXRpb24gZm9yIGNyZWF0aW5nIGEgcmVkaXJlY3QgYWN0aW9uLiBTcGVjaWZ5IG9ubHkgd2hlbiBgYFR5cGVgYCBpcyBgYHJlZGlyZWN0YGAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVkaXJlY3RDb25maWcge1xuLyoqXG4gKiBUaGUgYWJzb2x1dGUgcGF0aCwgc3RhcnRpbmcgd2l0aCB0aGUgbGVhZGluZyBcIi9cIi4gVGhpcyBjb21wb25lbnQgaXMgbm90IHBlcmNlbnQtZW5jb2RlZC4gVGhlIHBhdGggY2FuIGNvbnRhaW4gI3tob3N0fSwgI3twYXRofSwgYW5kICN7cG9ydH0uXG4gKi9cblBhdGg/OiBzdHJpbmdcbi8qKlxuICogVGhlIHF1ZXJ5IHBhcmFtZXRlcnMsIFVSTC1lbmNvZGVkIHdoZW4gbmVjZXNzYXJ5LCBidXQgbm90IHBlcmNlbnQtZW5jb2RlZC4gRG8gbm90IGluY2x1ZGUgdGhlIGxlYWRpbmcgXCI/XCIsIGFzIGl0IGlzIGF1dG9tYXRpY2FsbHkgYWRkZWQuIFlvdSBjYW4gc3BlY2lmeSBhbnkgb2YgdGhlIHJlc2VydmVkIGtleXdvcmRzLlxuICovXG5RdWVyeT86IHN0cmluZ1xuLyoqXG4gKiBUaGUgcG9ydC4gWW91IGNhbiBzcGVjaWZ5IGEgdmFsdWUgZnJvbSAxIHRvIDY1NTM1IG9yICN7cG9ydH0uXG4gKi9cblBvcnQ/OiBzdHJpbmdcbi8qKlxuICogVGhlIGhvc3RuYW1lLiBUaGlzIGNvbXBvbmVudCBpcyBub3QgcGVyY2VudC1lbmNvZGVkLiBUaGUgaG9zdG5hbWUgY2FuIGNvbnRhaW4gI3tob3N0fS5cbiAqL1xuSG9zdD86IHN0cmluZ1xuLyoqXG4gKiBUaGUgcHJvdG9jb2wuIFlvdSBjYW4gc3BlY2lmeSBIVFRQLCBIVFRQUywgb3IgI3twcm90b2NvbH0uIFlvdSBjYW4gcmVkaXJlY3QgSFRUUCB0byBIVFRQLCBIVFRQIHRvIEhUVFBTLCBhbmQgSFRUUFMgdG8gSFRUUFMuIFlvdSBjYW4ndCByZWRpcmVjdCBIVFRQUyB0byBIVFRQLlxuICovXG5Qcm90b2NvbD86IHN0cmluZ1xuLyoqXG4gKiBUaGUgSFRUUCByZWRpcmVjdCBjb2RlLiBUaGUgcmVkaXJlY3QgaXMgZWl0aGVyIHBlcm1hbmVudCAoSFRUUCAzMDEpIG9yIHRlbXBvcmFyeSAoSFRUUCAzMDIpLlxuICovXG5TdGF0dXNDb2RlOiBzdHJpbmdcbn1cbi8qKlxuICogSW5mb3JtYXRpb24gZm9yIGNyZWF0aW5nIGFuIGFjdGlvbiB0aGF0IGRpc3RyaWJ1dGVzIHJlcXVlc3RzIGFtb25nIG9uZSBvciBtb3JlIHRhcmdldCBncm91cHMuIEZvciBOZXR3b3JrIExvYWQgQmFsYW5jZXJzLCB5b3UgY2FuIHNwZWNpZnkgYSBzaW5nbGUgdGFyZ2V0IGdyb3VwLiBTcGVjaWZ5IG9ubHkgd2hlbiBgYFR5cGVgYCBpcyBgYGZvcndhcmRgYC4gSWYgeW91IHNwZWNpZnkgYm90aCBgYEZvcndhcmRDb25maWdgYCBhbmQgYGBUYXJnZXRHcm91cEFybmBgLCB5b3UgY2FuIHNwZWNpZnkgb25seSBvbmUgdGFyZ2V0IGdyb3VwIHVzaW5nIGBgRm9yd2FyZENvbmZpZ2BgIGFuZCBpdCBtdXN0IGJlIHRoZSBzYW1lIHRhcmdldCBncm91cCBzcGVjaWZpZWQgaW4gYGBUYXJnZXRHcm91cEFybmBgLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEZvcndhcmRDb25maWcge1xuVGFyZ2V0R3JvdXBTdGlja2luZXNzQ29uZmlnPzogVGFyZ2V0R3JvdXBTdGlja2luZXNzQ29uZmlnXG4vKipcbiAqIEluZm9ybWF0aW9uIGFib3V0IGhvdyB0cmFmZmljIHdpbGwgYmUgZGlzdHJpYnV0ZWQgYmV0d2VlbiBtdWx0aXBsZSB0YXJnZXQgZ3JvdXBzIGluIGEgZm9yd2FyZCBydWxlLlxuICovXG5UYXJnZXRHcm91cHM/OiBUYXJnZXRHcm91cFR1cGxlW11cbn1cbi8qKlxuICogSW5mb3JtYXRpb24gYWJvdXQgdGhlIHRhcmdldCBncm91cCBzdGlja2luZXNzIGZvciBhIHJ1bGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGFyZ2V0R3JvdXBTdGlja2luZXNzQ29uZmlnIHtcbi8qKlxuICogSW5kaWNhdGVzIHdoZXRoZXIgdGFyZ2V0IGdyb3VwIHN0aWNraW5lc3MgaXMgZW5hYmxlZC5cbiAqL1xuRW5hYmxlZD86IGJvb2xlYW5cbi8qKlxuICogVGhlIHRpbWUgcGVyaW9kLCBpbiBzZWNvbmRzLCBkdXJpbmcgd2hpY2ggcmVxdWVzdHMgZnJvbSBhIGNsaWVudCBzaG91bGQgYmUgcm91dGVkIHRvIHRoZSBzYW1lIHRhcmdldCBncm91cC4gVGhlIHJhbmdlIGlzIDEtNjA0ODAwIHNlY29uZHMgKDcgZGF5cykuXG4gKi9cbkR1cmF0aW9uU2Vjb25kcz86IG51bWJlclxufVxuLyoqXG4gKiBJbmZvcm1hdGlvbiBhYm91dCBob3cgdHJhZmZpYyB3aWxsIGJlIGRpc3RyaWJ1dGVkIGJldHdlZW4gbXVsdGlwbGUgdGFyZ2V0IGdyb3VwcyBpbiBhIGZvcndhcmQgcnVsZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUYXJnZXRHcm91cFR1cGxlIHtcbi8qKlxuICogVGhlIEFtYXpvbiBSZXNvdXJjZSBOYW1lIChBUk4pIG9mIHRoZSB0YXJnZXQgZ3JvdXAuXG4gKi9cblRhcmdldEdyb3VwQXJuPzogc3RyaW5nXG4vKipcbiAqIFRoZSB3ZWlnaHQuIFRoZSByYW5nZSBpcyAwIHRvIDk5OS5cbiAqL1xuV2VpZ2h0PzogbnVtYmVyXG59XG4vKipcbiAqIFNwZWNpZmllcyBhbiBTU0wgc2VydmVyIGNlcnRpZmljYXRlIHRvIHVzZSBhcyB0aGUgZGVmYXVsdCBjZXJ0aWZpY2F0ZSBmb3IgYSBzZWN1cmUgbGlzdGVuZXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2VydGlmaWNhdGUge1xuLyoqXG4gKiBUaGUgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTikgb2YgdGhlIGNlcnRpZmljYXRlLlxuICovXG5DZXJ0aWZpY2F0ZUFybj86ICh7XG5bazogc3RyaW5nXTogdW5rbm93blxufSAmIHN0cmluZylcbn1cbiJdfQ==
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWVsYXN0aWNsb2FkYmFsYW5jaW5ndjItbGlzdGVuZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJhd3MtZWxhc3RpY2xvYWRiYWxhbmNpbmd2Mi1saXN0ZW5lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBbSFRUUFMgbGlzdGVuZXJzXSBJbmZvcm1hdGlvbiBhYm91dCBhbiBpZGVudGl0eSBwcm92aWRlciB0aGF0IGlzIGNvbXBsaWFudCB3aXRoIE9wZW5JRCBDb25uZWN0IChPSURDKS4gU3BlY2lmeSBvbmx5IHdoZW4gYGBUeXBlYGAgaXMgYGBhdXRoZW50aWNhdGUtb2lkY2BgLlxuICovXG5leHBvcnQgdHlwZSBBdXRoZW50aWNhdGVPaWRjQ29uZmlnID0gKHtcbltrOiBzdHJpbmddOiB1bmtub3duXG59ICYge1xuLyoqXG4gKiBUaGUgYmVoYXZpb3IgaWYgdGhlIHVzZXIgaXMgbm90IGF1dGhlbnRpY2F0ZWQuIFRoZSBmb2xsb3dpbmcgYXJlIHBvc3NpYmxlIHZhbHVlczpcbiAqICAgKyAgZGVueWBgYGAgLSBSZXR1cm4gYW4gSFRUUCA0MDEgVW5hdXRob3JpemVkIGVycm9yLlxuICogICArICBhbGxvd2BgYGAgLSBBbGxvdyB0aGUgcmVxdWVzdCB0byBiZSBmb3J3YXJkZWQgdG8gdGhlIHRhcmdldC5cbiAqICAgKyAgYXV0aGVudGljYXRlYGBgYCAtIFJlZGlyZWN0IHRoZSByZXF1ZXN0IHRvIHRoZSBJZFAgYXV0aG9yaXphdGlvbiBlbmRwb2ludC4gVGhpcyBpcyB0aGUgZGVmYXVsdCB2YWx1ZS5cbiAqL1xuT25VbmF1dGhlbnRpY2F0ZWRSZXF1ZXN0Pzogc3RyaW5nXG4vKipcbiAqIFRoZSB0b2tlbiBlbmRwb2ludCBvZiB0aGUgSWRQLiBUaGlzIG11c3QgYmUgYSBmdWxsIFVSTCwgaW5jbHVkaW5nIHRoZSBIVFRQUyBwcm90b2NvbCwgdGhlIGRvbWFpbiwgYW5kIHRoZSBwYXRoLlxuICovXG5Ub2tlbkVuZHBvaW50OiBzdHJpbmdcbi8qKlxuICogSW5kaWNhdGVzIHdoZXRoZXIgdG8gdXNlIHRoZSBleGlzdGluZyBjbGllbnQgc2VjcmV0IHdoZW4gbW9kaWZ5aW5nIGEgcnVsZS4gSWYgeW91IGFyZSBjcmVhdGluZyBhIHJ1bGUsIHlvdSBjYW4gb21pdCB0aGlzIHBhcmFtZXRlciBvciBzZXQgaXQgdG8gZmFsc2UuXG4gKi9cblVzZUV4aXN0aW5nQ2xpZW50U2VjcmV0PzogYm9vbGVhblxuLyoqXG4gKiBUaGUgbWF4aW11bSBkdXJhdGlvbiBvZiB0aGUgYXV0aGVudGljYXRpb24gc2Vzc2lvbiwgaW4gc2Vjb25kcy4gVGhlIGRlZmF1bHQgaXMgNjA0ODAwIHNlY29uZHMgKDcgZGF5cykuXG4gKi9cblNlc3Npb25UaW1lb3V0Pzogc3RyaW5nXG4vKipcbiAqIFRoZSBzZXQgb2YgdXNlciBjbGFpbXMgdG8gYmUgcmVxdWVzdGVkIGZyb20gdGhlIElkUC4gVGhlIGRlZmF1bHQgaXMgYGBvcGVuaWRgYC5cbiAqICBUbyB2ZXJpZnkgd2hpY2ggc2NvcGUgdmFsdWVzIHlvdXIgSWRQIHN1cHBvcnRzIGFuZCBob3cgdG8gc2VwYXJhdGUgbXVsdGlwbGUgdmFsdWVzLCBzZWUgdGhlIGRvY3VtZW50YXRpb24gZm9yIHlvdXIgSWRQLlxuICovXG5TY29wZT86IHN0cmluZ1xuLyoqXG4gKiBUaGUgT0lEQyBpc3N1ZXIgaWRlbnRpZmllciBvZiB0aGUgSWRQLiBUaGlzIG11c3QgYmUgYSBmdWxsIFVSTCwgaW5jbHVkaW5nIHRoZSBIVFRQUyBwcm90b2NvbCwgdGhlIGRvbWFpbiwgYW5kIHRoZSBwYXRoLlxuICovXG5Jc3N1ZXI6IHN0cmluZ1xuLyoqXG4gKiBUaGUgT0F1dGggMi4wIGNsaWVudCBzZWNyZXQuIFRoaXMgcGFyYW1ldGVyIGlzIHJlcXVpcmVkIGlmIHlvdSBhcmUgY3JlYXRpbmcgYSBydWxlLiBJZiB5b3UgYXJlIG1vZGlmeWluZyBhIHJ1bGUsIHlvdSBjYW4gb21pdCB0aGlzIHBhcmFtZXRlciBpZiB5b3Ugc2V0IGBgVXNlRXhpc3RpbmdDbGllbnRTZWNyZXRgYCB0byB0cnVlLlxuICovXG5DbGllbnRTZWNyZXQ/OiBzdHJpbmdcbi8qKlxuICogVGhlIHVzZXIgaW5mbyBlbmRwb2ludCBvZiB0aGUgSWRQLiBUaGlzIG11c3QgYmUgYSBmdWxsIFVSTCwgaW5jbHVkaW5nIHRoZSBIVFRQUyBwcm90b2NvbCwgdGhlIGRvbWFpbiwgYW5kIHRoZSBwYXRoLlxuICovXG5Vc2VySW5mb0VuZHBvaW50OiBzdHJpbmdcbi8qKlxuICogVGhlIE9BdXRoIDIuMCBjbGllbnQgaWRlbnRpZmllci5cbiAqL1xuQ2xpZW50SWQ6IHN0cmluZ1xuLyoqXG4gKiBUaGUgYXV0aG9yaXphdGlvbiBlbmRwb2ludCBvZiB0aGUgSWRQLiBUaGlzIG11c3QgYmUgYSBmdWxsIFVSTCwgaW5jbHVkaW5nIHRoZSBIVFRQUyBwcm90b2NvbCwgdGhlIGRvbWFpbiwgYW5kIHRoZSBwYXRoLlxuICovXG5BdXRob3JpemF0aW9uRW5kcG9pbnQ6IHN0cmluZ1xuLyoqXG4gKiBUaGUgbmFtZSBvZiB0aGUgY29va2llIHVzZWQgdG8gbWFpbnRhaW4gc2Vzc2lvbiBpbmZvcm1hdGlvbi4gVGhlIGRlZmF1bHQgaXMgQVdTRUxCQXV0aFNlc3Npb25Db29raWUuXG4gKi9cblNlc3Npb25Db29raWVOYW1lPzogc3RyaW5nXG4vKipcbiAqIFRoZSBxdWVyeSBwYXJhbWV0ZXJzICh1cCB0byAxMCkgdG8gaW5jbHVkZSBpbiB0aGUgcmVkaXJlY3QgcmVxdWVzdCB0byB0aGUgYXV0aG9yaXphdGlvbiBlbmRwb2ludC5cbiAqL1xuQXV0aGVudGljYXRpb25SZXF1ZXN0RXh0cmFQYXJhbXM/OiB7XG4vKipcbiAqIFRoaXMgaW50ZXJmYWNlIHdhcyByZWZlcmVuY2VkIGJ5IGB1bmRlZmluZWRgJ3MgSlNPTi1TY2hlbWEgZGVmaW5pdGlvblxuICogdmlhIHRoZSBgcGF0dGVyblByb3BlcnR5YCBcIlthLXpBLVowLTldK1wiLlxuICovXG5bazogc3RyaW5nXTogc3RyaW5nXG59XG59KVxuXG4vKipcbiAqIFNwZWNpZmllcyBhIGxpc3RlbmVyIGZvciBhbiBBcHBsaWNhdGlvbiBMb2FkIEJhbGFuY2VyLCBOZXR3b3JrIExvYWQgQmFsYW5jZXIsIG9yIEdhdGV3YXkgTG9hZCBCYWxhbmNlci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBfQVdTX0VMQVNUSUNMT0FEQkFMQU5DSU5HVjJfTElTVEVORVIge1xuTGlzdGVuZXJBcm4/OiBzdHJpbmdcbk11dHVhbEF1dGhlbnRpY2F0aW9uPzogTXV0dWFsQXV0aGVudGljYXRpb25cbi8qKlxuICogVGhlIGxpc3RlbmVyIGF0dHJpYnV0ZXMuXG4gKi9cbkxpc3RlbmVyQXR0cmlidXRlcz86IExpc3RlbmVyQXR0cmlidXRlW11cbi8qKlxuICogW1RMUyBsaXN0ZW5lcl0gVGhlIG5hbWUgb2YgdGhlIEFwcGxpY2F0aW9uLUxheWVyIFByb3RvY29sIE5lZ290aWF0aW9uIChBTFBOKSBwb2xpY3kuXG4gKi9cbkFscG5Qb2xpY3k/OiBzdHJpbmdbXVxuLyoqXG4gKiBbSFRUUFMgYW5kIFRMUyBsaXN0ZW5lcnNdIFRoZSBzZWN1cml0eSBwb2xpY3kgdGhhdCBkZWZpbmVzIHdoaWNoIHByb3RvY29scyBhbmQgY2lwaGVycyBhcmUgc3VwcG9ydGVkLlxuICogIFVwZGF0aW5nIHRoZSBzZWN1cml0eSBwb2xpY3kgY2FuIHJlc3VsdCBpbiBpbnRlcnJ1cHRpb25zIGlmIHRoZSBsb2FkIGJhbGFuY2VyIGlzIGhhbmRsaW5nIGEgaGlnaCB2b2x1bWUgb2YgdHJhZmZpYy5cbiAqICBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtTZWN1cml0eSBwb2xpY2llc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2VsYXN0aWNsb2FkYmFsYW5jaW5nL2xhdGVzdC9hcHBsaWNhdGlvbi9jcmVhdGUtaHR0cHMtbGlzdGVuZXIuaHRtbCNkZXNjcmliZS1zc2wtcG9saWNpZXMpIGluIHRoZSAqQXBwbGljYXRpb24gTG9hZCBCYWxhbmNlcnMgR3VpZGUqIGFuZCBbU2VjdXJpdHkgcG9saWNpZXNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9lbGFzdGljbG9hZGJhbGFuY2luZy9sYXRlc3QvbmV0d29yay9jcmVhdGUtdGxzLWxpc3RlbmVyLmh0bWwjZGVzY3JpYmUtc3NsLXBvbGljaWVzKSBpbiB0aGUgKk5ldHdvcmsgTG9hZCBCYWxhbmNlcnMgR3VpZGUqLlxuICovXG5Tc2xQb2xpY3k/OiBzdHJpbmdcbi8qKlxuICogVGhlIEFtYXpvbiBSZXNvdXJjZSBOYW1lIChBUk4pIG9mIHRoZSBsb2FkIGJhbGFuY2VyLlxuICovXG5Mb2FkQmFsYW5jZXJBcm46IHN0cmluZ1xuLyoqXG4gKiBUaGUgYWN0aW9ucyBmb3IgdGhlIGRlZmF1bHQgcnVsZS4gWW91IGNhbm5vdCBkZWZpbmUgYSBjb25kaXRpb24gZm9yIGEgZGVmYXVsdCBydWxlLlxuICogIFRvIGNyZWF0ZSBhZGRpdGlvbmFsIHJ1bGVzIGZvciBhbiBBcHBsaWNhdGlvbiBMb2FkIEJhbGFuY2VyLCB1c2UgW0FXUzo6RWxhc3RpY0xvYWRCYWxhbmNpbmdWMjo6TGlzdGVuZXJSdWxlXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcmVzb3VyY2UtZWxhc3RpY2xvYWRiYWxhbmNpbmd2Mi1saXN0ZW5lcnJ1bGUuaHRtbCkuXG4gKi9cbkRlZmF1bHRBY3Rpb25zOiBBY3Rpb25bXVxuLyoqXG4gKiBUaGUgcG9ydCBvbiB3aGljaCB0aGUgbG9hZCBiYWxhbmNlciBpcyBsaXN0ZW5pbmcuIFlvdSBjYW4ndCBzcGVjaWZ5IGEgcG9ydCBmb3IgYSBHYXRld2F5IExvYWQgQmFsYW5jZXIuXG4gKi9cblBvcnQ/OiBudW1iZXJcbi8qKlxuICogVGhlIGRlZmF1bHQgU1NMIHNlcnZlciBjZXJ0aWZpY2F0ZSBmb3IgYSBzZWN1cmUgbGlzdGVuZXIuIFlvdSBtdXN0IHByb3ZpZGUgZXhhY3RseSBvbmUgY2VydGlmaWNhdGUgaWYgdGhlIGxpc3RlbmVyIHByb3RvY29sIGlzIEhUVFBTIG9yIFRMUy5cbiAqICBUbyBjcmVhdGUgYSBjZXJ0aWZpY2F0ZSBsaXN0IGZvciBhIHNlY3VyZSBsaXN0ZW5lciwgdXNlIFtBV1M6OkVsYXN0aWNMb2FkQmFsYW5jaW5nVjI6Okxpc3RlbmVyQ2VydGlmaWNhdGVdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1yZXNvdXJjZS1lbGFzdGljbG9hZGJhbGFuY2luZ3YyLWxpc3RlbmVyY2VydGlmaWNhdGUuaHRtbCkuXG4gKi9cbkNlcnRpZmljYXRlcz86IENlcnRpZmljYXRlW11cbi8qKlxuICogVGhlIHByb3RvY29sIGZvciBjb25uZWN0aW9ucyBmcm9tIGNsaWVudHMgdG8gdGhlIGxvYWQgYmFsYW5jZXIuIEZvciBBcHBsaWNhdGlvbiBMb2FkIEJhbGFuY2VycywgdGhlIHN1cHBvcnRlZCBwcm90b2NvbHMgYXJlIEhUVFAgYW5kIEhUVFBTLiBGb3IgTmV0d29yayBMb2FkIEJhbGFuY2VycywgdGhlIHN1cHBvcnRlZCBwcm90b2NvbHMgYXJlIFRDUCwgVExTLCBVRFAsIGFuZCBUQ1BfVURQLiBZb3UgY2Fu4oCZdCBzcGVjaWZ5IHRoZSBVRFAgb3IgVENQX1VEUCBwcm90b2NvbCBpZiBkdWFsLXN0YWNrIG1vZGUgaXMgZW5hYmxlZC4gWW91IGNhbid0IHNwZWNpZnkgYSBwcm90b2NvbCBmb3IgYSBHYXRld2F5IExvYWQgQmFsYW5jZXIuXG4gKi9cblByb3RvY29sPzogc3RyaW5nXG59XG4vKipcbiAqIFRoZSBtdXR1YWwgYXV0aGVudGljYXRpb24gY29uZmlndXJhdGlvbiBpbmZvcm1hdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNdXR1YWxBdXRoZW50aWNhdGlvbiB7XG4vKipcbiAqIEluZGljYXRlcyB3aGV0aGVyIGV4cGlyZWQgY2xpZW50IGNlcnRpZmljYXRlcyBhcmUgaWdub3JlZC5cbiAqL1xuSWdub3JlQ2xpZW50Q2VydGlmaWNhdGVFeHBpcnk/OiBib29sZWFuXG4vKipcbiAqIFRoZSBjbGllbnQgY2VydGlmaWNhdGUgaGFuZGxpbmcgbWV0aG9kLiBUaGUgcG9zc2libGUgdmFsdWVzIGFyZSBgYG9mZmBgLCBgYHBhc3N0aHJvdWdoYGAsIGFuZCBgYHZlcmlmeWBgLiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyBgYG9mZmBgLlxuICovXG5Nb2RlPzogc3RyaW5nXG4vKipcbiAqIFRoZSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKSBvZiB0aGUgdHJ1c3Qgc3RvcmUuXG4gKi9cblRydXN0U3RvcmVBcm4/OiBzdHJpbmdcbi8qKlxuICogSW5kaWNhdGVzIHdoZXRoZXIgdHJ1c3Qgc3RvcmUgQ0EgY2VydGlmaWNhdGUgbmFtZXMgYXJlIGFkdmVydGlzZWQuIFRoZSBkZWZhdWx0IHZhbHVlIGlzIGBgb2ZmYGAuXG4gKi9cbkFkdmVydGlzZVRydXN0U3RvcmVDYU5hbWVzPzogc3RyaW5nXG59XG4vKipcbiAqIEluZm9ybWF0aW9uIGFib3V0IGEgbGlzdGVuZXIgYXR0cmlidXRlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIExpc3RlbmVyQXR0cmlidXRlIHtcbi8qKlxuICogVGhlIHZhbHVlIG9mIHRoZSBhdHRyaWJ1dGUuXG4gKi9cblZhbHVlPzogc3RyaW5nXG4vKipcbiAqIFRoZSBuYW1lIG9mIHRoZSBhdHRyaWJ1dGUuXG4gKiAgVGhlIGZvbGxvd2luZyBhdHRyaWJ1dGUgaXMgc3VwcG9ydGVkIGJ5IE5ldHdvcmsgTG9hZCBCYWxhbmNlcnMsIGFuZCBHYXRld2F5IExvYWQgQmFsYW5jZXJzLlxuICogICArICAgYGB0Y3AuaWRsZV90aW1lb3V0LnNlY29uZHNgYCAtIFRoZSB0Y3AgaWRsZSB0aW1lb3V0IHZhbHVlLCBpbiBzZWNvbmRzLiBUaGUgdmFsaWQgcmFuZ2UgaXMgNjAtNjAwMCBzZWNvbmRzLiBUaGUgZGVmYXVsdCBpcyAzNTAgc2Vjb25kcy5cbiAqICAgXG4gKiAgVGhlIGZvbGxvd2luZyBhdHRyaWJ1dGVzIGFyZSBvbmx5IHN1cHBvcnRlZCBieSBBcHBsaWNhdGlvbiBMb2FkIEJhbGFuY2Vycy5cbiAqICAgKyAgIGBgcm91dGluZy5odHRwLnJlcXVlc3QueF9hbXpuX210bHNfY2xpZW50Y2VydF9zZXJpYWxfbnVtYmVyLmhlYWRlcl9uYW1lYGAgLSBFbmFibGVzIHlvdSB0byBtb2RpZnkgdGhlIGhlYWRlciBuYW1lIG9mIHRoZSAqWC1BbXpuLU10bHMtQ2xpZW50Y2VydC1TZXJpYWwtTnVtYmVyKiBIVFRQIHJlcXVlc3QgaGVhZGVyLlxuICogICArICAgYGByb3V0aW5nLmh0dHAucmVxdWVzdC54X2Ftem5fbXRsc19jbGllbnRjZXJ0X2lzc3Vlci5oZWFkZXJfbmFtZWBgIC0gRW5hYmxlcyB5b3UgdG8gbW9kaWZ5IHRoZSBoZWFkZXIgbmFtZSBvZiB0aGUgKlgtQW16bi1NdGxzLUNsaWVudGNlcnQtSXNzdWVyKiBIVFRQIHJlcXVlc3QgaGVhZGVyLlxuICogICArICAgYGByb3V0aW5nLmh0dHAucmVxdWVzdC54X2Ftem5fbXRsc19jbGllbnRjZXJ0X3N1YmplY3QuaGVhZGVyX25hbWVgYCAtIEVuYWJsZXMgeW91IHRvIG1vZGlmeSB0aGUgaGVhZGVyIG5hbWUgb2YgdGhlICpYLUFtem4tTXRscy1DbGllbnRjZXJ0LVN1YmplY3QqIEhUVFAgcmVxdWVzdCBoZWFkZXIuXG4gKiAgICsgICBgYHJvdXRpbmcuaHR0cC5yZXF1ZXN0LnhfYW16bl9tdGxzX2NsaWVudGNlcnRfdmFsaWRpdHkuaGVhZGVyX25hbWVgYCAtIEVuYWJsZXMgeW91IHRvIG1vZGlmeSB0aGUgaGVhZGVyIG5hbWUgb2YgdGhlICpYLUFtem4tTXRscy1DbGllbnRjZXJ0LVZhbGlkaXR5KiBIVFRQIHJlcXVlc3QgaGVhZGVyLlxuICogICArICAgYGByb3V0aW5nLmh0dHAucmVxdWVzdC54X2Ftem5fbXRsc19jbGllbnRjZXJ0X2xlYWYuaGVhZGVyX25hbWVgYCAtIEVuYWJsZXMgeW91IHRvIG1vZGlmeSB0aGUgaGVhZGVyIG5hbWUgb2YgdGhlICpYLUFtem4tTXRscy1DbGllbnRjZXJ0LUxlYWYqIEhUVFAgcmVxdWVzdCBoZWFkZXIuXG4gKiAgICsgICBgYHJvdXRpbmcuaHR0cC5yZXF1ZXN0LnhfYW16bl9tdGxzX2NsaWVudGNlcnQuaGVhZGVyX25hbWVgYCAtIEVuYWJsZXMgeW91IHRvIG1vZGlmeSB0aGUgaGVhZGVyIG5hbWUgb2YgdGhlICpYLUFtem4tTXRscy1DbGllbnRjZXJ0KiBIVFRQIHJlcXVlc3QgaGVhZGVyLlxuICogICArICAgYGByb3V0aW5nLmh0dHAucmVxdWVzdC54X2Ftem5fdGxzX3ZlcnNpb24uaGVhZGVyX25hbWVgYCAtIEVuYWJsZXMgeW91IHRvIG1vZGlmeSB0aGUgaGVhZGVyIG5hbWUgb2YgdGhlICpYLUFtem4tVGxzLVZlcnNpb24qIEhUVFAgcmVxdWVzdCBoZWFkZXIuXG4gKiAgICsgICBgYHJvdXRpbmcuaHR0cC5yZXF1ZXN0LnhfYW16bl90bHNfY2lwaGVyX3N1aXRlLmhlYWRlcl9uYW1lYGAgLSBFbmFibGVzIHlvdSB0byBtb2RpZnkgdGhlIGhlYWRlciBuYW1lIG9mIHRoZSAqWC1BbXpuLVRscy1DaXBoZXItU3VpdGUqIEhUVFAgcmVxdWVzdCBoZWFkZXIuXG4gKiAgICsgICBgYHJvdXRpbmcuaHR0cC5yZXNwb25zZS5zZXJ2ZXIuZW5hYmxlZGBgIC0gRW5hYmxlcyB5b3UgdG8gYWxsb3cgb3IgcmVtb3ZlIHRoZSBIVFRQIHJlc3BvbnNlIHNlcnZlciBoZWFkZXIuXG4gKiAgICsgICBgYHJvdXRpbmcuaHR0cC5yZXNwb25zZS5zdHJpY3RfdHJhbnNwb3J0X3NlY3VyaXR5LmhlYWRlcl92YWx1ZWBgIC0gSW5mb3JtcyBicm93c2VycyB0aGF0IHRoZSBzaXRlIHNob3VsZCBvbmx5IGJlIGFjY2Vzc2VkIHVzaW5nIEhUVFBTLCBhbmQgdGhhdCBhbnkgZnV0dXJlIGF0dGVtcHRzIHRvIGFjY2VzcyBpdCB1c2luZyBIVFRQIHNob3VsZCBhdXRvbWF0aWNhbGx5IGJlIGNvbnZlcnRlZCB0byBIVFRQUy5cbiAqICAgKyAgIGBgcm91dGluZy5odHRwLnJlc3BvbnNlLmFjY2Vzc19jb250cm9sX2FsbG93X29yaWdpbi5oZWFkZXJfdmFsdWVgYCAtIFNwZWNpZmllcyB3aGljaCBvcmlnaW5zIGFyZSBhbGxvd2VkIHRvIGFjY2VzcyB0aGUgc2VydmVyLlxuICogICArICAgYGByb3V0aW5nLmh0dHAucmVzcG9uc2UuYWNjZXNzX2NvbnRyb2xfYWxsb3dfbWV0aG9kcy5oZWFkZXJfdmFsdWVgYCAtIFJldHVybnMgd2hpY2ggSFRUUCBtZXRob2RzIGFyZSBhbGxvd2VkIHdoZW4gYWNjZXNzaW5nIHRoZSBzZXJ2ZXIgZnJvbSBhIGRpZmZlcmVudCBvcmlnaW4uXG4gKiAgICsgICBgYHJvdXRpbmcuaHR0cC5yZXNwb25zZS5hY2Nlc3NfY29udHJvbF9hbGxvd19oZWFkZXJzLmhlYWRlcl92YWx1ZWBgIC0gU3BlY2lmaWVzIHdoaWNoIGhlYWRlcnMgY2FuIGJlIHVzZWQgZHVyaW5nIHRoZSByZXF1ZXN0LlxuICogICArICAgYGByb3V0aW5nLmh0dHAucmVzcG9uc2UuYWNjZXNzX2NvbnRyb2xfYWxsb3dfY3JlZGVudGlhbHMuaGVhZGVyX3ZhbHVlYGAgLSBJbmRpY2F0ZXMgd2hldGhlciB0aGUgYnJvd3NlciBzaG91bGQgaW5jbHVkZSBjcmVkZW50aWFscyBzdWNoIGFzIGNvb2tpZXMgb3IgYXV0aGVudGljYXRpb24gd2hlbiBtYWtpbmcgcmVxdWVzdHMuXG4gKiAgICsgICBgYHJvdXRpbmcuaHR0cC5yZXNwb25zZS5hY2Nlc3NfY29udHJvbF9leHBvc2VfaGVhZGVycy5oZWFkZXJfdmFsdWVgYCAtIFJldHVybnMgd2hpY2ggaGVhZGVycyB0aGUgYnJvd3NlciBjYW4gZXhwb3NlIHRvIHRoZSByZXF1ZXN0aW5nIGNsaWVudC5cbiAqICAgKyAgIGBgcm91dGluZy5odHRwLnJlc3BvbnNlLmFjY2Vzc19jb250cm9sX21heF9hZ2UuaGVhZGVyX3ZhbHVlYGAgLSBTcGVjaWZpZXMgaG93IGxvbmcgdGhlIHJlc3VsdHMgb2YgYSBwcmVmbGlnaHQgcmVxdWVzdCBjYW4gYmUgY2FjaGVkLCBpbiBzZWNvbmRzLlxuICogICArICAgYGByb3V0aW5nLmh0dHAucmVzcG9uc2UuY29udGVudF9zZWN1cml0eV9wb2xpY3kuaGVhZGVyX3ZhbHVlYGAgLSBTcGVjaWZpZXMgcmVzdHJpY3Rpb25zIGVuZm9yY2VkIGJ5IHRoZSBicm93c2VyIHRvIGhlbHAgbWluaW1pemUgdGhlIHJpc2sgb2YgY2VydGFpbiB0eXBlcyBvZiBzZWN1cml0eSB0aHJlYXRzLlxuICogICArICAgYGByb3V0aW5nLmh0dHAucmVzcG9uc2UueF9jb250ZW50X3R5cGVfb3B0aW9ucy5oZWFkZXJfdmFsdWVgYCAtIEluZGljYXRlcyB3aGV0aGVyIHRoZSBNSU1FIHR5cGVzIGFkdmVydGlzZWQgaW4gdGhlICpDb250ZW50LVR5cGUqIGhlYWRlcnMgc2hvdWxkIGJlIGZvbGxvd2VkIGFuZCBub3QgYmUgY2hhbmdlZC5cbiAqICAgKyAgIGBgcm91dGluZy5odHRwLnJlc3BvbnNlLnhfZnJhbWVfb3B0aW9ucy5oZWFkZXJfdmFsdWVgYCAtIEluZGljYXRlcyB3aGV0aGVyIHRoZSBicm93c2VyIGlzIGFsbG93ZWQgdG8gcmVuZGVyIGEgcGFnZSBpbiBhICpmcmFtZSosICppZnJhbWUqLCAqZW1iZWQqIG9yICpvYmplY3QqLlxuICovXG5LZXk/OiBzdHJpbmdcbn1cbi8qKlxuICogU3BlY2lmaWVzIGFuIGFjdGlvbiBmb3IgYSBsaXN0ZW5lciBydWxlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFjdGlvbiB7XG4vKipcbiAqIFRoZSBvcmRlciBmb3IgdGhlIGFjdGlvbi4gVGhpcyB2YWx1ZSBpcyByZXF1aXJlZCBmb3IgcnVsZXMgd2l0aCBtdWx0aXBsZSBhY3Rpb25zLiBUaGUgYWN0aW9uIHdpdGggdGhlIGxvd2VzdCB2YWx1ZSBmb3Igb3JkZXIgaXMgcGVyZm9ybWVkIGZpcnN0LlxuICovXG5PcmRlcj86IG51bWJlclxuLyoqXG4gKiBUaGUgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTikgb2YgdGhlIHRhcmdldCBncm91cC4gU3BlY2lmeSBvbmx5IHdoZW4gYGBUeXBlYGAgaXMgYGBmb3J3YXJkYGAgYW5kIHlvdSB3YW50IHRvIHJvdXRlIHRvIGEgc2luZ2xlIHRhcmdldCBncm91cC4gVG8gcm91dGUgdG8gb25lIG9yIG1vcmUgdGFyZ2V0IGdyb3VwcywgdXNlIGBgRm9yd2FyZENvbmZpZ2BgIGluc3RlYWQuXG4gKi9cblRhcmdldEdyb3VwQXJuPzogc3RyaW5nXG5GaXhlZFJlc3BvbnNlQ29uZmlnPzogRml4ZWRSZXNwb25zZUNvbmZpZ1xuQXV0aGVudGljYXRlQ29nbml0b0NvbmZpZz86IEF1dGhlbnRpY2F0ZUNvZ25pdG9Db25maWdcbi8qKlxuICogVGhlIHR5cGUgb2YgYWN0aW9uLlxuICovXG5UeXBlOiBzdHJpbmdcblJlZGlyZWN0Q29uZmlnPzogUmVkaXJlY3RDb25maWdcbkZvcndhcmRDb25maWc/OiBGb3J3YXJkQ29uZmlnXG5BdXRoZW50aWNhdGVPaWRjQ29uZmlnPzogQXV0aGVudGljYXRlT2lkY0NvbmZpZ1xufVxuLyoqXG4gKiBbQXBwbGljYXRpb24gTG9hZCBCYWxhbmNlcl0gSW5mb3JtYXRpb24gZm9yIGNyZWF0aW5nIGFuIGFjdGlvbiB0aGF0IHJldHVybnMgYSBjdXN0b20gSFRUUCByZXNwb25zZS4gU3BlY2lmeSBvbmx5IHdoZW4gYGBUeXBlYGAgaXMgYGBmaXhlZC1yZXNwb25zZWBgLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEZpeGVkUmVzcG9uc2VDb25maWcge1xuLyoqXG4gKiBUaGUgY29udGVudCB0eXBlLlxuICogIFZhbGlkIFZhbHVlczogdGV4dC9wbGFpbiB8IHRleHQvY3NzIHwgdGV4dC9odG1sIHwgYXBwbGljYXRpb24vamF2YXNjcmlwdCB8IGFwcGxpY2F0aW9uL2pzb25cbiAqL1xuQ29udGVudFR5cGU/OiBzdHJpbmdcbi8qKlxuICogVGhlIEhUVFAgcmVzcG9uc2UgY29kZSAoMlhYLCA0WFgsIG9yIDVYWCkuXG4gKi9cblN0YXR1c0NvZGU6IHN0cmluZ1xuLyoqXG4gKiBUaGUgbWVzc2FnZS5cbiAqL1xuTWVzc2FnZUJvZHk/OiBzdHJpbmdcbn1cbi8qKlxuICogW0hUVFBTIGxpc3RlbmVyc10gSW5mb3JtYXRpb24gZm9yIHVzaW5nIEFtYXpvbiBDb2duaXRvIHRvIGF1dGhlbnRpY2F0ZSB1c2Vycy4gU3BlY2lmeSBvbmx5IHdoZW4gYGBUeXBlYGAgaXMgYGBhdXRoZW50aWNhdGUtY29nbml0b2BgLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEF1dGhlbnRpY2F0ZUNvZ25pdG9Db25maWcge1xuLyoqXG4gKiBUaGUgYmVoYXZpb3IgaWYgdGhlIHVzZXIgaXMgbm90IGF1dGhlbnRpY2F0ZWQuIFRoZSBmb2xsb3dpbmcgYXJlIHBvc3NpYmxlIHZhbHVlczpcbiAqICAgKyAgZGVueWBgYGAgLSBSZXR1cm4gYW4gSFRUUCA0MDEgVW5hdXRob3JpemVkIGVycm9yLlxuICogICArICBhbGxvd2BgYGAgLSBBbGxvdyB0aGUgcmVxdWVzdCB0byBiZSBmb3J3YXJkZWQgdG8gdGhlIHRhcmdldC5cbiAqICAgKyAgYXV0aGVudGljYXRlYGBgYCAtIFJlZGlyZWN0IHRoZSByZXF1ZXN0IHRvIHRoZSBJZFAgYXV0aG9yaXphdGlvbiBlbmRwb2ludC4gVGhpcyBpcyB0aGUgZGVmYXVsdCB2YWx1ZS5cbiAqL1xuT25VbmF1dGhlbnRpY2F0ZWRSZXF1ZXN0Pzogc3RyaW5nXG4vKipcbiAqIFRoZSBJRCBvZiB0aGUgQW1hem9uIENvZ25pdG8gdXNlciBwb29sIGNsaWVudC5cbiAqL1xuVXNlclBvb2xDbGllbnRJZDogKHtcbltrOiBzdHJpbmddOiB1bmtub3duXG59ICYgc3RyaW5nKVxuLyoqXG4gKiBUaGUgZG9tYWluIHByZWZpeCBvciBmdWxseS1xdWFsaWZpZWQgZG9tYWluIG5hbWUgb2YgdGhlIEFtYXpvbiBDb2duaXRvIHVzZXIgcG9vbC5cbiAqL1xuVXNlclBvb2xEb21haW46IHN0cmluZ1xuLyoqXG4gKiBUaGUgbWF4aW11bSBkdXJhdGlvbiBvZiB0aGUgYXV0aGVudGljYXRpb24gc2Vzc2lvbiwgaW4gc2Vjb25kcy4gVGhlIGRlZmF1bHQgaXMgNjA0ODAwIHNlY29uZHMgKDcgZGF5cykuXG4gKi9cblNlc3Npb25UaW1lb3V0Pzogc3RyaW5nXG4vKipcbiAqIFRoZSBzZXQgb2YgdXNlciBjbGFpbXMgdG8gYmUgcmVxdWVzdGVkIGZyb20gdGhlIElkUC4gVGhlIGRlZmF1bHQgaXMgYGBvcGVuaWRgYC5cbiAqICBUbyB2ZXJpZnkgd2hpY2ggc2NvcGUgdmFsdWVzIHlvdXIgSWRQIHN1cHBvcnRzIGFuZCBob3cgdG8gc2VwYXJhdGUgbXVsdGlwbGUgdmFsdWVzLCBzZWUgdGhlIGRvY3VtZW50YXRpb24gZm9yIHlvdXIgSWRQLlxuICovXG5TY29wZT86IHN0cmluZ1xuLyoqXG4gKiBUaGUgbmFtZSBvZiB0aGUgY29va2llIHVzZWQgdG8gbWFpbnRhaW4gc2Vzc2lvbiBpbmZvcm1hdGlvbi4gVGhlIGRlZmF1bHQgaXMgQVdTRUxCQXV0aFNlc3Npb25Db29raWUuXG4gKi9cblNlc3Npb25Db29raWVOYW1lPzogc3RyaW5nXG4vKipcbiAqIFRoZSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKSBvZiB0aGUgQW1hem9uIENvZ25pdG8gdXNlciBwb29sLlxuICovXG5Vc2VyUG9vbEFybjogc3RyaW5nXG4vKipcbiAqIFRoZSBxdWVyeSBwYXJhbWV0ZXJzICh1cCB0byAxMCkgdG8gaW5jbHVkZSBpbiB0aGUgcmVkaXJlY3QgcmVxdWVzdCB0byB0aGUgYXV0aG9yaXphdGlvbiBlbmRwb2ludC5cbiAqL1xuQXV0aGVudGljYXRpb25SZXF1ZXN0RXh0cmFQYXJhbXM/OiB7XG4vKipcbiAqIFRoaXMgaW50ZXJmYWNlIHdhcyByZWZlcmVuY2VkIGJ5IGB1bmRlZmluZWRgJ3MgSlNPTi1TY2hlbWEgZGVmaW5pdGlvblxuICogdmlhIHRoZSBgcGF0dGVyblByb3BlcnR5YCBcIlthLXpBLVowLTldK1wiLlxuICovXG5bazogc3RyaW5nXTogc3RyaW5nXG59XG59XG4vKipcbiAqIFtBcHBsaWNhdGlvbiBMb2FkIEJhbGFuY2VyXSBJbmZvcm1hdGlvbiBmb3IgY3JlYXRpbmcgYSByZWRpcmVjdCBhY3Rpb24uIFNwZWNpZnkgb25seSB3aGVuIGBgVHlwZWBgIGlzIGBgcmVkaXJlY3RgYC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZWRpcmVjdENvbmZpZyB7XG4vKipcbiAqIFRoZSBhYnNvbHV0ZSBwYXRoLCBzdGFydGluZyB3aXRoIHRoZSBsZWFkaW5nIFwiL1wiLiBUaGlzIGNvbXBvbmVudCBpcyBub3QgcGVyY2VudC1lbmNvZGVkLiBUaGUgcGF0aCBjYW4gY29udGFpbiAje2hvc3R9LCAje3BhdGh9LCBhbmQgI3twb3J0fS5cbiAqL1xuUGF0aD86IHN0cmluZ1xuLyoqXG4gKiBUaGUgcXVlcnkgcGFyYW1ldGVycywgVVJMLWVuY29kZWQgd2hlbiBuZWNlc3NhcnksIGJ1dCBub3QgcGVyY2VudC1lbmNvZGVkLiBEbyBub3QgaW5jbHVkZSB0aGUgbGVhZGluZyBcIj9cIiwgYXMgaXQgaXMgYXV0b21hdGljYWxseSBhZGRlZC4gWW91IGNhbiBzcGVjaWZ5IGFueSBvZiB0aGUgcmVzZXJ2ZWQga2V5d29yZHMuXG4gKi9cblF1ZXJ5Pzogc3RyaW5nXG4vKipcbiAqIFRoZSBwb3J0LiBZb3UgY2FuIHNwZWNpZnkgYSB2YWx1ZSBmcm9tIDEgdG8gNjU1MzUgb3IgI3twb3J0fS5cbiAqL1xuUG9ydD86IHN0cmluZ1xuLyoqXG4gKiBUaGUgaG9zdG5hbWUuIFRoaXMgY29tcG9uZW50IGlzIG5vdCBwZXJjZW50LWVuY29kZWQuIFRoZSBob3N0bmFtZSBjYW4gY29udGFpbiAje2hvc3R9LlxuICovXG5Ib3N0Pzogc3RyaW5nXG4vKipcbiAqIFRoZSBwcm90b2NvbC4gWW91IGNhbiBzcGVjaWZ5IEhUVFAsIEhUVFBTLCBvciAje3Byb3RvY29sfS4gWW91IGNhbiByZWRpcmVjdCBIVFRQIHRvIEhUVFAsIEhUVFAgdG8gSFRUUFMsIGFuZCBIVFRQUyB0byBIVFRQUy4gWW91IGNhbid0IHJlZGlyZWN0IEhUVFBTIHRvIEhUVFAuXG4gKi9cblByb3RvY29sPzogc3RyaW5nXG4vKipcbiAqIFRoZSBIVFRQIHJlZGlyZWN0IGNvZGUuIFRoZSByZWRpcmVjdCBpcyBlaXRoZXIgcGVybWFuZW50IChIVFRQIDMwMSkgb3IgdGVtcG9yYXJ5IChIVFRQIDMwMikuXG4gKi9cblN0YXR1c0NvZGU6IHN0cmluZ1xufVxuLyoqXG4gKiBJbmZvcm1hdGlvbiBmb3IgY3JlYXRpbmcgYW4gYWN0aW9uIHRoYXQgZGlzdHJpYnV0ZXMgcmVxdWVzdHMgYW1vbmcgb25lIG9yIG1vcmUgdGFyZ2V0IGdyb3Vwcy4gRm9yIE5ldHdvcmsgTG9hZCBCYWxhbmNlcnMsIHlvdSBjYW4gc3BlY2lmeSBhIHNpbmdsZSB0YXJnZXQgZ3JvdXAuIFNwZWNpZnkgb25seSB3aGVuIGBgVHlwZWBgIGlzIGBgZm9yd2FyZGBgLiBJZiB5b3Ugc3BlY2lmeSBib3RoIGBgRm9yd2FyZENvbmZpZ2BgIGFuZCBgYFRhcmdldEdyb3VwQXJuYGAsIHlvdSBjYW4gc3BlY2lmeSBvbmx5IG9uZSB0YXJnZXQgZ3JvdXAgdXNpbmcgYGBGb3J3YXJkQ29uZmlnYGAgYW5kIGl0IG11c3QgYmUgdGhlIHNhbWUgdGFyZ2V0IGdyb3VwIHNwZWNpZmllZCBpbiBgYFRhcmdldEdyb3VwQXJuYGAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRm9yd2FyZENvbmZpZyB7XG5UYXJnZXRHcm91cFN0aWNraW5lc3NDb25maWc/OiBUYXJnZXRHcm91cFN0aWNraW5lc3NDb25maWdcbi8qKlxuICogSW5mb3JtYXRpb24gYWJvdXQgaG93IHRyYWZmaWMgd2lsbCBiZSBkaXN0cmlidXRlZCBiZXR3ZWVuIG11bHRpcGxlIHRhcmdldCBncm91cHMgaW4gYSBmb3J3YXJkIHJ1bGUuXG4gKi9cblRhcmdldEdyb3Vwcz86IFRhcmdldEdyb3VwVHVwbGVbXVxufVxuLyoqXG4gKiBJbmZvcm1hdGlvbiBhYm91dCB0aGUgdGFyZ2V0IGdyb3VwIHN0aWNraW5lc3MgZm9yIGEgcnVsZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUYXJnZXRHcm91cFN0aWNraW5lc3NDb25maWcge1xuLyoqXG4gKiBJbmRpY2F0ZXMgd2hldGhlciB0YXJnZXQgZ3JvdXAgc3RpY2tpbmVzcyBpcyBlbmFibGVkLlxuICovXG5FbmFibGVkPzogYm9vbGVhblxuLyoqXG4gKiBUaGUgdGltZSBwZXJpb2QsIGluIHNlY29uZHMsIGR1cmluZyB3aGljaCByZXF1ZXN0cyBmcm9tIGEgY2xpZW50IHNob3VsZCBiZSByb3V0ZWQgdG8gdGhlIHNhbWUgdGFyZ2V0IGdyb3VwLiBUaGUgcmFuZ2UgaXMgMS02MDQ4MDAgc2Vjb25kcyAoNyBkYXlzKS5cbiAqL1xuRHVyYXRpb25TZWNvbmRzPzogbnVtYmVyXG59XG4vKipcbiAqIEluZm9ybWF0aW9uIGFib3V0IGhvdyB0cmFmZmljIHdpbGwgYmUgZGlzdHJpYnV0ZWQgYmV0d2VlbiBtdWx0aXBsZSB0YXJnZXQgZ3JvdXBzIGluIGEgZm9yd2FyZCBydWxlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRhcmdldEdyb3VwVHVwbGUge1xuLyoqXG4gKiBUaGUgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTikgb2YgdGhlIHRhcmdldCBncm91cC5cbiAqL1xuVGFyZ2V0R3JvdXBBcm4/OiBzdHJpbmdcbi8qKlxuICogVGhlIHdlaWdodC4gVGhlIHJhbmdlIGlzIDAgdG8gOTk5LlxuICovXG5XZWlnaHQ/OiBudW1iZXJcbn1cbi8qKlxuICogU3BlY2lmaWVzIGFuIFNTTCBzZXJ2ZXIgY2VydGlmaWNhdGUgdG8gdXNlIGFzIHRoZSBkZWZhdWx0IGNlcnRpZmljYXRlIGZvciBhIHNlY3VyZSBsaXN0ZW5lci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDZXJ0aWZpY2F0ZSB7XG4vKipcbiAqIFRoZSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKSBvZiB0aGUgY2VydGlmaWNhdGUuXG4gKi9cbkNlcnRpZmljYXRlQXJuPzogKHtcbltrOiBzdHJpbmddOiB1bmtub3duXG59ICYgc3RyaW5nKVxufVxuIl19
|
|
@@ -65,9 +65,10 @@ export interface _AWS_ELASTICLOADBALANCINGV2_LOADBALANCER {
|
|
|
65
65
|
*/
|
|
66
66
|
SubnetMappings?: SubnetMapping[];
|
|
67
67
|
/**
|
|
68
|
-
* Indicates whether to evaluate inbound security group rules for traffic sent to a Network Load Balancer through privatelink.
|
|
68
|
+
* Indicates whether to evaluate inbound security group rules for traffic sent to a Network Load Balancer through privatelink. The default is ``on``.
|
|
69
69
|
*/
|
|
70
70
|
EnforceSecurityGroupInboundRulesOnPrivateLinkTraffic?: string;
|
|
71
|
+
Ipv4IpamPoolId?: string;
|
|
71
72
|
}
|
|
72
73
|
/**
|
|
73
74
|
* Specifies an attribute for an Application Load Balancer, a Network Load Balancer, or a Gateway Load Balancer.
|