@alicloud/ros-cdk-ecs 1.0.21 → 1.0.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/activation.d.ts +10 -9
- package/lib/activation.js +8 -4
- package/lib/assignipv6addresses.d.ts +9 -8
- package/lib/assignipv6addresses.js +8 -4
- package/lib/assignprivateipaddresses.d.ts +9 -8
- package/lib/assignprivateipaddresses.js +8 -4
- package/lib/autoprovisioninggroup.d.ts +10 -9
- package/lib/autoprovisioninggroup.js +8 -4
- package/lib/autosnapshotpolicy.d.ts +10 -9
- package/lib/autosnapshotpolicy.js +8 -4
- package/lib/capacityreservation.d.ts +69 -0
- package/lib/capacityreservation.js +40 -0
- package/lib/command.d.ts +9 -8
- package/lib/command.js +8 -4
- package/lib/copyimage.d.ts +15 -9
- package/lib/copyimage.js +9 -4
- package/lib/customimage.d.ts +29 -12
- package/lib/customimage.js +16 -9
- package/lib/datasource/activations.d.ts +9 -8
- package/lib/datasource/activations.js +8 -4
- package/lib/datasource/autosnapshotpolicies.d.ts +9 -8
- package/lib/datasource/autosnapshotpolicies.js +8 -4
- package/lib/datasource/commands.d.ts +9 -8
- package/lib/datasource/commands.js +8 -4
- package/lib/datasource/dedicatedhostclusters.d.ts +9 -8
- package/lib/datasource/dedicatedhostclusters.js +8 -4
- package/lib/datasource/dedicatedhosts.d.ts +9 -8
- package/lib/datasource/dedicatedhosts.js +8 -4
- package/lib/datasource/deploymentsets.d.ts +9 -8
- package/lib/datasource/deploymentsets.js +8 -4
- package/lib/datasource/diskcategories.d.ts +9 -8
- package/lib/datasource/diskcategories.js +8 -4
- package/lib/datasource/disks.d.ts +10 -9
- package/lib/datasource/disks.js +8 -4
- package/lib/datasource/ecs.generated.d.ts +112 -166
- package/lib/datasource/ecs.generated.js +55 -55
- package/lib/datasource/hpcclusters.d.ts +9 -8
- package/lib/datasource/hpcclusters.js +8 -4
- package/lib/datasource/images.d.ts +10 -9
- package/lib/datasource/images.js +8 -4
- package/lib/datasource/instances.d.ts +10 -9
- package/lib/datasource/instances.js +8 -4
- package/lib/datasource/keypairs.d.ts +9 -8
- package/lib/datasource/keypairs.js +8 -4
- package/lib/datasource/managedinstances.d.ts +9 -8
- package/lib/datasource/managedinstances.js +8 -4
- package/lib/datasource/networkinterfaces.d.ts +9 -8
- package/lib/datasource/networkinterfaces.js +8 -4
- package/lib/datasource/recommendinstancetypes.d.ts +14 -13
- package/lib/datasource/recommendinstancetypes.js +8 -4
- package/lib/datasource/securitygroups.d.ts +9 -8
- package/lib/datasource/securitygroups.js +8 -4
- package/lib/datasource/snapshots.d.ts +9 -8
- package/lib/datasource/snapshots.js +8 -4
- package/lib/datasource/zones.d.ts +12 -11
- package/lib/datasource/zones.js +8 -4
- package/lib/dedicatedhost.d.ts +12 -11
- package/lib/dedicatedhost.js +8 -4
- package/lib/deploymentset.d.ts +24 -10
- package/lib/deploymentset.js +10 -4
- package/lib/disk.d.ts +11 -10
- package/lib/disk.js +8 -4
- package/lib/diskattachment.d.ts +10 -9
- package/lib/diskattachment.js +8 -4
- package/lib/ecs.generated.d.ts +2015 -497
- package/lib/ecs.generated.js +1961 -405
- package/lib/elasticityassurance.d.ts +78 -0
- package/lib/elasticityassurance.js +41 -0
- package/lib/forwardentry.d.ts +12 -11
- package/lib/forwardentry.js +8 -4
- package/lib/hpccluster.d.ts +11 -10
- package/lib/hpccluster.js +8 -4
- package/lib/imagecomponent.d.ts +59 -0
- package/lib/imagecomponent.js +38 -0
- package/lib/imagepipeline.d.ts +109 -0
- package/lib/imagepipeline.js +47 -0
- package/lib/imagesharepermission.d.ts +47 -0
- package/lib/imagesharepermission.js +35 -0
- package/lib/index.d.ts +5 -0
- package/lib/index.js +6 -1
- package/lib/instance.d.ts +94 -14
- package/lib/instance.js +153 -25
- package/lib/instanceclone.d.ts +9 -8
- package/lib/instanceclone.js +8 -4
- package/lib/instancegroup.d.ts +125 -16
- package/lib/instancegroup.js +32 -8
- package/lib/instancegroupclone.d.ts +56 -11
- package/lib/instancegroupclone.js +38 -26
- package/lib/invocation.d.ts +63 -10
- package/lib/invocation.js +16 -5
- package/lib/joinsecuritygroup.d.ts +9 -8
- package/lib/joinsecuritygroup.js +8 -8
- package/lib/launchtemplate.d.ts +13 -12
- package/lib/launchtemplate.js +8 -4
- package/lib/networkinterface.d.ts +9 -8
- package/lib/networkinterface.js +8 -4
- package/lib/networkinterfaceattachment.d.ts +9 -8
- package/lib/networkinterfaceattachment.js +8 -4
- package/lib/networkinterfacepermission.d.ts +9 -8
- package/lib/networkinterfacepermission.js +8 -4
- package/lib/prefixlist.d.ts +11 -10
- package/lib/prefixlist.js +8 -4
- package/lib/ramroleattachment.d.ts +9 -8
- package/lib/ramroleattachment.js +8 -4
- package/lib/route.d.ts +9 -8
- package/lib/route.js +8 -4
- package/lib/runcommand.d.ts +54 -16
- package/lib/runcommand.js +15 -6
- package/lib/securitygroup.d.ts +9 -8
- package/lib/securitygroup.js +8 -4
- package/lib/securitygroupclone.d.ts +9 -8
- package/lib/securitygroupclone.js +8 -4
- package/lib/securitygroupegress.d.ts +10 -9
- package/lib/securitygroupegress.js +8 -8
- package/lib/securitygroupingress.d.ts +11 -10
- package/lib/securitygroupingress.js +8 -8
- package/lib/snapshot.d.ts +11 -10
- package/lib/snapshot.js +8 -4
- package/lib/snatentry.d.ts +11 -10
- package/lib/snatentry.js +8 -4
- package/lib/sshkeypair.d.ts +10 -9
- package/lib/sshkeypair.js +8 -4
- package/lib/sshkeypairattachment.d.ts +9 -8
- package/lib/sshkeypairattachment.js +8 -8
- package/lib/vpc.d.ts +12 -11
- package/lib/vpc.js +8 -4
- package/lib/vswitch.d.ts +9 -8
- package/lib/vswitch.js +8 -4
- package/package.json +1 -1
package/lib/instance.js
CHANGED
|
@@ -4,41 +4,68 @@ exports.Instance = exports.InstanceProperty = void 0;
|
|
|
4
4
|
const ros = require("@alicloud/ros-cdk-core");
|
|
5
5
|
const ecs_generated_1 = require("./ecs.generated");
|
|
6
6
|
Object.defineProperty(exports, "InstanceProperty", { enumerable: true, get: function () { return ecs_generated_1.RosInstance; } });
|
|
7
|
+
const vpc_1 = require("./vpc");
|
|
8
|
+
const vswitch_1 = require("./vswitch");
|
|
9
|
+
const securitygroup_1 = require("./securitygroup");
|
|
7
10
|
/**
|
|
8
|
-
*
|
|
11
|
+
* This class encapsulates and extends the ROS resource type `ALIYUN::ECS::Instance`, which is used to create an Elastic Compute Service (ECS) instance.
|
|
12
|
+
* @Note This class may have some new functions to facilitate development, so it is recommended to use this class instead of `RosInstance`for a more convenient development experience.
|
|
13
|
+
* See https://www.alibabacloud.com/help/ros/developer-reference/aliyun-ecs-instance
|
|
9
14
|
*/
|
|
10
15
|
class Instance extends ros.Resource {
|
|
11
16
|
/**
|
|
12
|
-
* Create a new `ALIYUN::ECS::Instance`.
|
|
13
|
-
*
|
|
14
17
|
* Param scope - scope in which this resource is defined
|
|
15
18
|
* Param id - scoped id of the resource
|
|
16
19
|
* Param props - resource properties
|
|
17
20
|
*/
|
|
18
21
|
constructor(scope, id, props, enableResourcePropertyConstraint = true) {
|
|
19
22
|
super(scope, id);
|
|
23
|
+
this.scope = scope;
|
|
24
|
+
this.id = id;
|
|
25
|
+
this.props = props;
|
|
26
|
+
this.enableResourcePropertyConstraint = enableResourcePropertyConstraint;
|
|
20
27
|
const rosInstance = new ecs_generated_1.RosInstance(this, id, {
|
|
21
28
|
dedicatedHostId: props.dedicatedHostId,
|
|
22
|
-
privateIpAddress: props.privateIpAddress,
|
|
23
|
-
description: props.description,
|
|
24
29
|
resourceGroupId: props.resourceGroupId,
|
|
25
|
-
diskMappings: props.diskMappings,
|
|
26
|
-
userData: props.userData,
|
|
27
|
-
systemDiskSize: props.systemDiskSize,
|
|
28
30
|
systemDiskDescription: props.systemDiskDescription,
|
|
29
31
|
instanceChargeType: props.instanceChargeType === undefined || props.instanceChargeType === null ? 'PostPaid' : props.instanceChargeType,
|
|
30
|
-
autoRenew: props.autoRenew === undefined || props.autoRenew === null ? 'False' : props.autoRenew,
|
|
31
|
-
spotDuration: props.spotDuration,
|
|
32
32
|
ramRoleName: props.ramRoleName,
|
|
33
|
+
privatePoolOptions: props.privatePoolOptions,
|
|
33
34
|
systemDiskPerformanceLevel: props.systemDiskPerformanceLevel,
|
|
34
35
|
imageId: props.imageId,
|
|
35
36
|
systemDiskDiskName: props.systemDiskDiskName,
|
|
37
|
+
storageSetId: props.storageSetId,
|
|
38
|
+
useAdditionalService: props.useAdditionalService,
|
|
39
|
+
hostName: props.hostName,
|
|
40
|
+
tags: props.tags,
|
|
41
|
+
vSwitchId: props.vSwitchId,
|
|
42
|
+
period: props.period === undefined || props.period === null ? 1 : props.period,
|
|
43
|
+
imageFamily: props.imageFamily,
|
|
44
|
+
deletionProtection: props.deletionProtection,
|
|
45
|
+
httpEndpoint: props.httpEndpoint,
|
|
46
|
+
securityGroupIds: props.securityGroupIds,
|
|
47
|
+
internetChargeType: props.internetChargeType === undefined || props.internetChargeType === null ? 'PayByTraffic' : props.internetChargeType,
|
|
48
|
+
spotInterruptionBehavior: props.spotInterruptionBehavior === undefined || props.spotInterruptionBehavior === null ? 'Terminate' : props.spotInterruptionBehavior,
|
|
49
|
+
instanceName: props.instanceName,
|
|
50
|
+
deploymentSetId: props.deploymentSetId,
|
|
51
|
+
internetMaxBandwidthOut: props.internetMaxBandwidthOut === undefined || props.internetMaxBandwidthOut === null ? 1 : props.internetMaxBandwidthOut,
|
|
52
|
+
vpcId: props.vpcId,
|
|
53
|
+
affinity: props.affinity,
|
|
54
|
+
securityEnhancementStrategy: props.securityEnhancementStrategy,
|
|
55
|
+
periodUnit: props.periodUnit === undefined || props.periodUnit === null ? 'Month' : props.periodUnit,
|
|
56
|
+
tenancy: props.tenancy,
|
|
57
|
+
privateIpAddress: props.privateIpAddress,
|
|
58
|
+
description: props.description,
|
|
59
|
+
diskMappings: props.diskMappings,
|
|
60
|
+
systemDiskSize: props.systemDiskSize,
|
|
61
|
+
userData: props.userData,
|
|
62
|
+
autoRenew: props.autoRenew === undefined || props.autoRenew === null ? 'False' : props.autoRenew,
|
|
63
|
+
spotDuration: props.spotDuration,
|
|
64
|
+
storageSetPartitionNumber: props.storageSetPartitionNumber,
|
|
36
65
|
spotPriceLimit: props.spotPriceLimit,
|
|
37
66
|
zoneIds: props.zoneIds,
|
|
38
67
|
instanceType: props.instanceType,
|
|
39
68
|
allocatePublicIp: props.allocatePublicIp === undefined || props.allocatePublicIp === null ? true : props.allocatePublicIp,
|
|
40
|
-
tags: props.tags,
|
|
41
|
-
hostName: props.hostName,
|
|
42
69
|
spotStrategy: props.spotStrategy,
|
|
43
70
|
passwordInherit: props.passwordInherit,
|
|
44
71
|
password: props.password,
|
|
@@ -47,20 +74,11 @@ class Instance extends ros.Resource {
|
|
|
47
74
|
ioOptimized: props.ioOptimized === undefined || props.ioOptimized === null ? 'optimized' : props.ioOptimized,
|
|
48
75
|
zoneId: props.zoneId,
|
|
49
76
|
hpcClusterId: props.hpcClusterId,
|
|
50
|
-
vSwitchId: props.vSwitchId,
|
|
51
77
|
securityGroupId: props.securityGroupId,
|
|
52
|
-
|
|
53
|
-
deletionProtection: props.deletionProtection,
|
|
54
|
-
securityGroupIds: props.securityGroupIds,
|
|
55
|
-
internetChargeType: props.internetChargeType === undefined || props.internetChargeType === null ? 'PayByTraffic' : props.internetChargeType,
|
|
78
|
+
deploymentSetGroupNo: props.deploymentSetGroupNo,
|
|
56
79
|
systemDiskCategory: props.systemDiskCategory === undefined || props.systemDiskCategory === null ? 'cloud_efficiency' : props.systemDiskCategory,
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
deploymentSetId: props.deploymentSetId,
|
|
60
|
-
internetMaxBandwidthOut: props.internetMaxBandwidthOut === undefined || props.internetMaxBandwidthOut === null ? 1 : props.internetMaxBandwidthOut,
|
|
61
|
-
vpcId: props.vpcId,
|
|
62
|
-
securityEnhancementStrategy: props.securityEnhancementStrategy,
|
|
63
|
-
periodUnit: props.periodUnit === undefined || props.periodUnit === null ? 'Month' : props.periodUnit,
|
|
80
|
+
httpTokens: props.httpTokens,
|
|
81
|
+
creditSpecification: props.creditSpecification,
|
|
64
82
|
}, enableResourcePropertyConstraint && this.stack.enableResourcePropertyConstraint);
|
|
65
83
|
this.resource = rosInstance;
|
|
66
84
|
this.attrHostName = rosInstance.attrHostName;
|
|
@@ -72,6 +90,116 @@ class Instance extends ros.Resource {
|
|
|
72
90
|
this.attrSecurityGroupIds = rosInstance.attrSecurityGroupIds;
|
|
73
91
|
this.attrZoneId = rosInstance.attrZoneId;
|
|
74
92
|
}
|
|
93
|
+
/**
|
|
94
|
+
* Create prerequisite resource(s) required to an ECS instance: VPC, VSwitch, and(or) security group.
|
|
95
|
+
* @param zoneId Required when creating a VSwitch.
|
|
96
|
+
* @param vpcCidrBlock Optional when creating a VPC. Default value is 192.168.0.0/16.
|
|
97
|
+
* @param vSwitchCidrBlock Optional when creating a VSwitch. Default value is 192.168.0.0/24.
|
|
98
|
+
* @param whetherCreateSecurityGroup Whether to create a security group. Default value is true.
|
|
99
|
+
*/
|
|
100
|
+
autoCreateDependencies(zoneId = undefined, vpcCidrBlock = undefined, vSwitchCidrBlock = undefined, whetherCreateSecurityGroup = true) {
|
|
101
|
+
let vpc = undefined;
|
|
102
|
+
let vSwitch = undefined;
|
|
103
|
+
let securityGroup = undefined;
|
|
104
|
+
let vpcId = undefined;
|
|
105
|
+
let vSwitchId = undefined;
|
|
106
|
+
let securityGroupId = undefined;
|
|
107
|
+
let instance = this.resource;
|
|
108
|
+
if (instance.vSwitchId === undefined) {
|
|
109
|
+
zoneId = zoneId || instance.zoneId;
|
|
110
|
+
if (zoneId === undefined) {
|
|
111
|
+
throw new Error('zoneId is required when creating a VSwitch.');
|
|
112
|
+
}
|
|
113
|
+
if (instance.vpcId === undefined) {
|
|
114
|
+
if ((vpcCidrBlock === undefined) !== (vSwitchCidrBlock === undefined)) {
|
|
115
|
+
throw new Error('Both vpcCidrBlock and vSwitchCidrBlock must be specified or neither.');
|
|
116
|
+
}
|
|
117
|
+
vpcCidrBlock = vpcCidrBlock || '192.168.0.0/16';
|
|
118
|
+
vpc = new vpc_1.Vpc(this.scope, `AutoCreatedVpcFor${this.id}`, {
|
|
119
|
+
cidrBlock: vpcCidrBlock,
|
|
120
|
+
description: 'This is auto created by ROS-CDK.',
|
|
121
|
+
});
|
|
122
|
+
vpcId = vpc.attrVpcId;
|
|
123
|
+
}
|
|
124
|
+
else {
|
|
125
|
+
vpcId = instance.vpcId;
|
|
126
|
+
if (vSwitchCidrBlock === undefined) {
|
|
127
|
+
throw new Error('vSwitchCidrBlock is mandatory when giving a Vpc and creating a VSwitch.');
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
vSwitchCidrBlock = vSwitchCidrBlock || '192.168.0.0/24';
|
|
131
|
+
vSwitch = new vswitch_1.VSwitch(this.scope, `AutoCreatedVSwitchFor${this.id}`, {
|
|
132
|
+
vpcId: vpcId,
|
|
133
|
+
cidrBlock: vSwitchCidrBlock,
|
|
134
|
+
description: 'This is auto created by ROS-CDK.',
|
|
135
|
+
zoneId: zoneId,
|
|
136
|
+
});
|
|
137
|
+
vSwitchId = vSwitch.attrVSwitchId;
|
|
138
|
+
}
|
|
139
|
+
else {
|
|
140
|
+
vSwitchId = instance.vSwitchId;
|
|
141
|
+
}
|
|
142
|
+
if (whetherCreateSecurityGroup && instance.securityGroupId === undefined && instance.securityGroupIds === undefined) {
|
|
143
|
+
securityGroup = new securitygroup_1.SecurityGroup(this.scope, `AutoCreatedSecurityGroupFor${this.id}`, {
|
|
144
|
+
vpcId: vpcId,
|
|
145
|
+
description: 'This is auto created by ROS-CDK.',
|
|
146
|
+
});
|
|
147
|
+
securityGroupId = securityGroup.attrSecurityGroupId;
|
|
148
|
+
}
|
|
149
|
+
else {
|
|
150
|
+
securityGroupId = instance.securityGroupId;
|
|
151
|
+
}
|
|
152
|
+
instance.vpcId = vpcId;
|
|
153
|
+
instance.vSwitchId = vSwitchId;
|
|
154
|
+
instance.securityGroupId = securityGroupId;
|
|
155
|
+
return [vpc, vSwitch, securityGroup];
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Add one or more security groups to an ECS instance.
|
|
159
|
+
* @param securityGroups Security groups or security group IDs.
|
|
160
|
+
*/
|
|
161
|
+
addSecurityGroups(...securityGroups) {
|
|
162
|
+
let instance = this.resource;
|
|
163
|
+
let originalSecurityGroupIds = instance.securityGroupIds;
|
|
164
|
+
let newSecurityGroupIds = [];
|
|
165
|
+
if (instance.securityGroupId !== undefined) {
|
|
166
|
+
newSecurityGroupIds.push(instance.securityGroupId);
|
|
167
|
+
}
|
|
168
|
+
for (let securityGroup of securityGroups) {
|
|
169
|
+
if (typeof securityGroup === 'string') {
|
|
170
|
+
newSecurityGroupIds.push(securityGroup);
|
|
171
|
+
}
|
|
172
|
+
else {
|
|
173
|
+
newSecurityGroupIds.push(securityGroup.attrSecurityGroupId);
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
if (ros.isResolvableObject(originalSecurityGroupIds)) {
|
|
177
|
+
newSecurityGroupIds = ros.Fn.listMerge([originalSecurityGroupIds, newSecurityGroupIds]);
|
|
178
|
+
}
|
|
179
|
+
else if (originalSecurityGroupIds !== undefined) {
|
|
180
|
+
newSecurityGroupIds = originalSecurityGroupIds.concat(newSecurityGroupIds);
|
|
181
|
+
}
|
|
182
|
+
instance.securityGroupId = undefined;
|
|
183
|
+
instance.securityGroupIds = newSecurityGroupIds;
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Add one or more commands to the userdata of an ECS instance.
|
|
187
|
+
* @param commands Commands to be added.
|
|
188
|
+
*/
|
|
189
|
+
addUserDataCommands(...commands) {
|
|
190
|
+
let instance = this.resource;
|
|
191
|
+
let commandsAsString = [];
|
|
192
|
+
if (instance.userData !== undefined) {
|
|
193
|
+
commandsAsString.push(instance.userData);
|
|
194
|
+
}
|
|
195
|
+
for (let command of commands) {
|
|
196
|
+
if (ros.isResolvableObject(command)) {
|
|
197
|
+
command = command.toString();
|
|
198
|
+
}
|
|
199
|
+
commandsAsString.push(command);
|
|
200
|
+
}
|
|
201
|
+
instance.userData = ros.Fn.join('\n', commandsAsString);
|
|
202
|
+
}
|
|
75
203
|
}
|
|
76
204
|
exports.Instance = Instance;
|
|
77
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdGFuY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbnN0YW5jZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw4Q0FBOEM7QUFDOUMsbURBQThDO0FBRXRCLGlHQUZmLDJCQUFXLE9BRW9CO0FBcU94Qzs7R0FFRztBQUNILE1BQWEsUUFBUyxTQUFRLEdBQUcsQ0FBQyxRQUFRO0lBK0N0Qzs7Ozs7O09BTUc7SUFDSCxZQUFZLEtBQW9CLEVBQUUsRUFBVSxFQUFFLEtBQW9CLEVBQUUsbUNBQTJDLElBQUk7UUFDL0csS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixNQUFNLFdBQVcsR0FBRyxJQUFJLDJCQUFXLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRztZQUMzQyxlQUFlLEVBQUUsS0FBSyxDQUFDLGVBQWU7WUFDdEMsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLGdCQUFnQjtZQUN4QyxXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVc7WUFDOUIsZUFBZSxFQUFFLEtBQUssQ0FBQyxlQUFlO1lBQ3RDLFlBQVksRUFBRSxLQUFLLENBQUMsWUFBWTtZQUNoQyxRQUFRLEVBQUUsS0FBSyxDQUFDLFFBQVE7WUFDeEIsY0FBYyxFQUFFLEtBQUssQ0FBQyxjQUFjO1lBQ3BDLHFCQUFxQixFQUFFLEtBQUssQ0FBQyxxQkFBcUI7WUFDbEQsa0JBQWtCLEVBQUUsS0FBSyxDQUFDLGtCQUFrQixLQUFLLFNBQVMsSUFBSSxLQUFLLENBQUMsa0JBQWtCLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxrQkFBa0I7WUFDdkksU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTLEtBQUssU0FBUyxJQUFJLEtBQUssQ0FBQyxTQUFTLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxTQUFTO1lBQ2hHLFlBQVksRUFBRSxLQUFLLENBQUMs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QUksQ0FBQyxLQUFLLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztRQUNwRixJQUFJLENBQUMsUUFBUSxHQUFHLFdBQVcsQ0FBQztRQUM1QixJQUFJLENBQUMsWUFBWSxHQUFHLFdBQVcsQ0FBQyxZQUFZLENBQUM7UUFDN0MsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUMsV0FBVyxDQUFDO1FBQzNDLElBQUksQ0FBQyxjQUFjLEdBQUcsV0FBVyxDQUFDLGNBQWMsQ0FBQztRQUNqRCxJQUFJLENBQUMsNkJBQTZCLEdBQUcsV0FBVyxDQUFDLDZCQUE2QixDQUFDO1FBQy9FLElBQUksQ0FBQyxhQUFhLEdBQUcsV0FBVyxDQUFDLGFBQWEsQ0FBQztRQUMvQyxJQUFJLENBQUMsWUFBWSxHQUFHLFdBQVcsQ0FBQyxZQUFZLENBQUM7UUFDN0MsSUFBSSxDQUFDLG9CQUFvQixHQUFHLFdBQVcsQ0FBQyxvQkFBb0IsQ0FBQztRQUM3RCxJQUFJLENBQUMsVUFBVSxHQUFHLFdBQVcsQ0FBQyxVQUFVLENBQUM7SUFDN0MsQ0FBQztDQUNKO0FBaEhELDRCQWdIQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHJvcyBmcm9tICdAYWxpY2xvdWQvcm9zLWNkay1jb3JlJztcbmltcG9ydCB7IFJvc0luc3RhbmNlIH0gZnJvbSAnLi9lY3MuZ2VuZXJhdGVkJztcbi8vIEdlbmVyYXRlZCBmcm9tIHRoZSBBbGlDbG91ZCBST1MgUmVzb3VyY2UgU3BlY2lmaWNhdGlvblxuZXhwb3J0IHsgUm9zSW5zdGFuY2UgYXMgSW5zdGFuY2VQcm9wZXJ0eSB9O1xuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGRlZmluaW5nIGEgYEFMSVlVTjo6RUNTOjpJbnN0YW5jZWBcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbnN0YW5jZVByb3BzIHtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IGltYWdlSWQ6IEltYWdlIElEIHRvIGNyZWF0ZSBlY3MgaW5zdGFuY2UuXG4gICAgICovXG4gICAgcmVhZG9ubHkgaW1hZ2VJZDogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgaW5zdGFuY2VUeXBlOiBFY3MgaW5zdGFuY2Ugc3VwcG9ydGVkIGluc3RhbmNlIHR5cGUsIG1ha2Ugc3VyZSBpdCBzaG91bGQgYmUgY29ycmVjdC5cbiAgICAgKi9cbiAgICByZWFkb25seSBpbnN0YW5jZVR5cGU6IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IGFsbG9jYXRlUHVibGljSXA6IFRoZSBwdWJsaWMgaXAgZm9yIGVjcyBpbnN0YW5jZSwgaWYgcHJvcGVydGllcyBpcyB0cnVlLCB3aWxsIGFsbG9jYXRlIHB1YmxpYyBpcC4gSWYgcHJvcGVydHkgSW50ZXJuZXRNYXhCYW5kd2lkdGhPdXQgc2V0IHRvIDAsIGl0IHdpbGwgbm90IGFzc2lnbiBwdWJsaWMgaXAuXG4gICAgICovXG4gICAgcmVhZG9ubHkgYWxsb2NhdGVQdWJsaWNJcD86IGJvb2xlYW4gfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBhdXRvUmVuZXc6IFdoZXRoZXIgcmVuZXcgdGhlIGZlZSBhdXRvbWF0aWNhbGx5PyBXaGVuIHRoZSBwYXJhbWV0ZXIgSW5zdGFuY2VDaGFyZ2VUeXBlIGlzIFByZVBhaWQsIGl0IHdpbGwgdGFrZSBlZmZlY3QuIFJhbmdlIG9mIHZhbHVlOlRydWU6IGF1dG9tYXRpYyByZW5ld2FsLkZhbHNlOiBubyBhdXRvbWF0aWMgcmVuZXdhbC4gRGVmYXVsdCB2YWx1ZSBpcyBGYWxzZS5cbiAgICAgKi9cbiAgICByZWFkb25seSBhdXRvUmVuZXc/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBhdXRvUmVuZXdQZXJpb2Q6IFRoZSB0aW1lIHBlcmlvZCBvZiBhdXRvIHJlbmV3LiBXaGVuIHRoZSBwYXJhbWV0ZXIgSW5zdGFuY2VDaGFyZ2VUeXBlIGlzIFByZVBhaWQsIGl0IHdpbGwgdGFrZSBlZmZlY3QuSXQgY291bGQgYmUgMSwgMiwgMywgNiwgMTIsIDI0LCAzNiwgNDgsIDYwLiBEZWZhdWx0IHZhbHVlIGlzIDEuXG4gICAgICovXG4gICAgcmVhZG9ubHkgYXV0b1JlbmV3UGVyaW9kPzogbnVtYmVyIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgZGVkaWNhdGVkSG9zdElkOiB3aGljaCBkZWRpY2F0ZWQgaG9zdCB3aWxsIGJlIGRlcGxveWVkXG4gICAgICovXG4gICAgcmVhZG9ubHkgZGVkaWNhdGVkSG9zdElkPzogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgZGVsZXRpb25Qcm90ZWN0aW9uOiBXaGV0aGVyIGFuIGluc3RhbmNlIGNhbiBiZSByZWxlYXNlZCBtYW51YWxseSB0aHJvdWdoIHRoZSBjb25zb2xlIG9yIEFQSSwgZGVsZXRpb24gcHJvdGVjdGlvbiBvbmx5IHN1cHBvcnQgcG9zdFBhaWQgaW5zdGFuY2VcbiAgICAgKi9cbiAgICByZWFkb25seSBkZWxldGlvblByb3RlY3Rpb24/OiBib29sZWFuIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgZGVwbG95bWVudFNldElkOiBEZXBsb3ltZW50IHNldCBJRC5cbiAgICAgKi9cbiAgICByZWFkb25seSBkZXBsb3ltZW50U2V0SWQ/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBkZXNjcmlwdGlvbjogRGVzY3JpcHRpb24gb2YgdGhlIGluc3RhbmNlLCBbMiwgMjU2XSBjaGFyYWN0ZXJzLiBEbyBub3QgZmlsbCBvciBlbXB0eSwgdGhlIGRlZmF1bHQgaXMgZW1wdHkuXG4gICAgICovXG4gICAgcmVhZG9ubHkgZGVzY3JpcHRpb24/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBkaXNrTWFwcGluZ3M6IERpc2sgbWFwcGluZ3MgdG8gYXR0YWNoIHRvIGluc3RhbmNlLiBNYXggc3VwcG9ydCAxNiBkaXNrcy5cbiAgICAgKiBJZiB0aGUgaW1hZ2UgY29udGFpbnMgYSBkYXRhIGRpc2ssIHlvdSBjYW4gc3BlY2lmeSBvdGhlciBwYXJhbWV0ZXJzIG9mIHRoZSBkYXRhIGRpc2sgdmlhIHRoZSBzYW1lIHZhbHVlIG9mIHBhcmFtZXRlciBcIkRldmljZVwiLiBJZiBwYXJhbWV0ZXIgXCJDYXRlZ29yeVwiIGlzIG5vdCBzcGVjaWZpZWQsIGl0IHdpbGwgYmUgY2xvdWRfZWZmaWNpZW5jeSBpbnN0ZWFkIG9mIFwiQ2F0ZWdvcnlcIiBvZiBkYXRhIGRpc2sgaW4gdGhlIGltYWdlLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGRpc2tNYXBwaW5ncz86IEFycmF5PFJvc0luc3RhbmNlLkRpc2tNYXBwaW5nc1Byb3BlcnR5IHwgcm9zLklSZXNvbHZhYmxlPiB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IGhvc3ROYW1lOiBIb3N0IG5hbWUgb2YgY3JlYXRlZCBlY3MgaW5zdGFuY2UuIGF0IGxlYXN0IDIgY2hhcmFjdGVycywgYW5kICcuJyAnLScgSXMgbm90IHRoZSBmaXJzdCBhbmQgbGFzdCBjaGFyYWN0ZXJzIGFzIGhvc3RuYW1lLCBub3QgY29udGludW91cyB1c2UuIFdpbmRvd3MgcGxhdGZvcm0gY2FuIGJlIHVwIHRvIDE1IGNoYXJhY3RlcnMsIGFsbG93aW5nIGxldHRlcnMgKHdpdGhvdXQgbGltaXRpbmcgY2FzZSksIG51bWJlcnMgYW5kICctJywgYW5kIGRvZXMgbm90IHN1cHBvcnQgdGhlIG51bWJlciBvZiBwb2ludHMsIG5vdCBhbGwgaXMgZGlnaXRhbCAoJy4nKS5PdGhlciAoTGludXgsIGV0Yy4pIHBsYXRmb3JtIHVwIHRvIDY0IGNoYXJhY3RlcnMsIGFsbG93aW5nIHN1cHBvcnQgbnVtYmVyIG11bHRpcGxlIHBvaW50cyBmb3IgdGhlIHBlcmlvZCBiZXR3ZWVuIHRoZSBwb2ludHMsIGVhY2ggcGVybWl0IGxldHRlcnMgKHdpdGhvdXQgbGltaXRpbmcgY2FzZSksIG51bWJlcnMgYW5kICctJyBjb21wb25lbnRzLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGhvc3ROYW1lPzogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgaHBjQ2x1c3RlcklkOiBUaGUgSFBDIGNsdXN0ZXIgSUQgdG8gd2hpY2ggdGhlIGluc3RhbmNlIGJlbG9uZ3MuXG4gICAgICovXG4gICAgcmVhZG9ubHkgaHBjQ2x1c3RlcklkPzogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgaW5zdGFuY2VDaGFyZ2VUeXBlOiBJbnN0YW5jZSBDaGFyZ2UgdHlwZSwgYWxsb3dlZCB2YWx1ZTogUHJlcGFpZCBhbmQgUG9zdHBhaWQuIElmIHNwZWNpZmllZCBQcmVwYWlkLCBwbGVhc2UgZW5zdXJlIHlvdSBoYXZlIHN1ZmZpY2llbnQgYmFsYW5jZSBpbiB5b3VyIGFjY291bnQuIE9yIGluc3RhbmNlIGNyZWF0aW9uIHdpbGwgYmUgZmFpbHVyZS4gRGVmYXVsdCB2YWx1ZSBpcyBQb3N0cGFpZC5cbiAgICAgKi9cbiAgICByZWFkb25seSBpbnN0YW5jZUNoYXJnZVR5cGU/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBpbnN0YW5jZU5hbWU6IERpc3BsYXkgbmFtZSBvZiB0aGUgaW5zdGFuY2UsIFsyLCAxMjhdIEVuZ2xpc2ggb3IgQ2hpbmVzZSBjaGFyYWN0ZXJzLCBtdXN0IHN0YXJ0IHdpdGggYSBsZXR0ZXIgb3IgQ2hpbmVzZSBpbiBzaXplLCBjYW4gY29udGFpbiBudW1iZXJzLCAnXycgb3IgJy4nLCAnLSdcbiAgICAgKi9cbiAgICByZWFkb25seSBpbnN0YW5jZU5hbWU/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBpbnRlcm5ldENoYXJnZVR5cGU6IEluc3RhbmNlIGludGVybmV0IGFjY2VzcyBjaGFyZ2UgdHlwZS5TdXBwb3J0ICdQYXlCeUJhbmR3aWR0aCcgYW5kICdQYXlCeVRyYWZmaWMnIG9ubHkuIERlZmF1bHQgaXMgUGF5QnlUcmFmZmljXG4gICAgICovXG4gICAgcmVhZG9ubHkgaW50ZXJuZXRDaGFyZ2VUeXBlPzogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgaW50ZXJuZXRNYXhCYW5kd2lkdGhPdXQ6IFNldCBpbnRlcm5ldCBvdXRwdXQgYmFuZHdpZHRoIG9mIGluc3RhbmNlLiBVbml0IGlzIE1icHMoTWVnYSBiaXQgcGVyIHNlY29uZCkuIFJhbmdlIGlzIFswLDIwMF0uIERlZmF1bHQgaXMgMS5XaGlsZSB0aGUgcHJvcGVydHkgaXMgbm90IDAsIHB1YmxpYyBpcCB3aWxsIGJlIGFzc2lnbmVkIGZvciBpbnN0YW5jZS5cbiAgICAgKi9cbiAgICByZWFkb25seSBpbnRlcm5ldE1heEJhbmR3aWR0aE91dD86IG51bWJlciB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IGlvT3B0aW1pemVkOiBUaGUgJ29wdGltaXplZCcgaW5zdGFuY2UgY2FuIHByb3ZpZGUgYmV0dGVyIElPIHBlcmZvcm1hbmNlLiBTdXBwb3J0ICdub25lJyBhbmQgJ29wdGltaXplZCcgb25seSwgZGVmYXVsdCBpcyAnb3B0aW1pemVkJy5cbiAgICAgKi9cbiAgICByZWFkb25seSBpb09wdGltaXplZD86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IGtleVBhaXJOYW1lOiBTU0gga2V5IHBhaXIgbmFtZS5cbiAgICAgKi9cbiAgICByZWFkb25seSBrZXlQYWlyTmFtZT86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IHBhc3N3b3JkOiBQYXNzd29yZCBvZiBjcmVhdGVkIGVjcyBpbnN0YW5jZS4gTXVzdCBjb250YWluIGF0IGxlYXN0IDMgdHlwZXMgb2Ygc3BlY2lhbCBjaGFyYWN0ZXIsIGxvd2VyIGNoYXJhY3RlciwgdXBwZXIgY2hhcmFjdGVyLCBudW1iZXIuXG4gICAgICovXG4gICAgcmVhZG9ubHkgcGFzc3dvcmQ/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBwYXNzd29yZEluaGVyaXQ6IFNwZWNpZmllcyB3aGV0aGVyIHRvIHVzZSB0aGUgcGFzc3dvcmQgcHJlc2V0IGluIHRoZSBpbWFnZS4gVG8gdXNlIHRoZSBQYXNzd29yZEluaGVyaXQgcGFyYW1ldGVyLCB0aGUgUGFzc3dvcmQgcGFyYW1ldGVyIG11c3QgYmUgZW1wdHkgYW5kIHlvdSBtdXN0IG1ha2Ugc3VyZSB0aGF0IHRoZSBzZWxlY3RlZCBpbWFnZSBoYXMgYSBwYXNzd29yZCBjb25maWd1cmVkLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHBhc3N3b3JkSW5oZXJpdD86IGJvb2xlYW4gfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBwZXJpb2Q6IFByZXBhaWQgdGltZSBwZXJpb2QuIFVuaXQgaXMgbW9udGgsIGl0IGNvdWxkIGJlIGZyb20gMSB0byA5IG9yIDEyLCAyNCwgMzYsIDQ4LCA2MC4gRGVmYXVsdCB2YWx1ZSBpcyAxLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHBlcmlvZD86IG51bWJlciB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IHBlcmlvZFVuaXQ6IFVuaXQgb2YgcHJlcGFpZCB0aW1lIHBlcmlvZCwgaXQgY291bGQgYmUgV2Vlay9Nb250aC9ZZWFyLiBEZWZhdWx0IHZhbHVlIGlzIE1vbnRoLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHBlcmlvZFVuaXQ/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBwcml2YXRlSXBBZGRyZXNzOiBQcml2YXRlIElQIGZvciB0aGUgaW5zdGFuY2UgY3JlYXRlZC4gT25seSB3b3JrcyBmb3IgVlBDIGluc3RhbmNlIGFuZCBjYW5ub3QgZHVwbGljYXRlZCB3aXRoIGV4aXN0aW5nIGluc3RhbmNlLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHByaXZhdGVJcEFkZHJlc3M/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSByYW1Sb2xlTmFtZTogSW5zdGFuY2UgUkFNIHJvbGUgbmFtZS4gVGhlIG5hbWUgaXMgcHJvdmlkZWQgYW5kIG1haW50YWluZWQgYnkgUmVzb3VyY2UgQWNjZXNzIE1hbmFnZW1lbnQgKFJBTSkgYW5kIGNhbiBiZSBxdWVyaWVkIHVzaW5nIExpc3RSb2xlcy4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBSQU0gQVBJIENyZWF0ZVJvbGUgYW5kIExpc3RSb2xlcy5cbiAgICAgKi9cbiAgICByZWFkb25seSByYW1Sb2xlTmFtZT86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IHJlc291cmNlR3JvdXBJZDogUmVzb3VyY2UgZ3JvdXAgaWQuXG4gICAgICovXG4gICAgcmVhZG9ubHkgcmVzb3VyY2VHcm91cElkPzogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgc2VjdXJpdHlFbmhhbmNlbWVudFN0cmF0ZWd5OlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHNlY3VyaXR5RW5oYW5jZW1lbnRTdHJhdGVneT86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IHNlY3VyaXR5R3JvdXBJZDogU2VjdXJpdHkgZ3JvdXAgdG8gY3JlYXRlIGVjcyBpbnN0YW5jZS4gRm9yIGNsYXNzaWMgaW5zdGFuY2UgbmVlZCB0aGUgc2VjdXJpdHkgZ3JvdXAgbm90IGJlbG9uZyB0byBWUEMsIGZvciBWUEMgaW5zdGFuY2UsIHBsZWFzZSBtYWtlIHN1cmUgdGhlIHNlY3VyaXR5IGdyb3VwIGJlbG9uZyB0byBzcGVjaWZpZWQgVlBDLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHNlY3VyaXR5R3JvdXBJZD86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IHNlY3VyaXR5R3JvdXBJZHM6IFRoZSBJRCBsaXN0IG9mIHNlY3VyaXR5IGdyb3VwIHRvIHdoaWNoIHRvIGFzc2lnbiB0aGUgaW5zdGFuY2UuIFRoZSBtYXggbGVuZ3RoIGlzIGJhc2VkIG9uIHRoZSBtYXhpbXVtIG51bWJlciBvZiBzZWN1cml0eSBncm91cHMgdG8gd2hpY2ggYW4gaW5zdGFuY2UgY2FuIGJlbG9uZy4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSB0aGUgXCJTZWN1cml0eSBncm91cCBsaW1pdHNcIiBzZWN0aW9uIGluIExpbWl0cy5cbiAgICAgKi9cbiAgICByZWFkb25seSBzZWN1cml0eUdyb3VwSWRzPzogQXJyYXk8c3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlPiB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IHNwb3REdXJhdGlvbjogVGhlIHByb3RlY3Rpb24gcGVyaW9kIG9mIHRoZSBwcmVlbXB0aWJsZSBpbnN0YW5jZS4gVW5pdDogaG91cnMuIFZhbGlkIHZhbHVlczogMCwgMSwgMiwgMywgNCwgNSwgYW5kIDYuXG4gICAgICogUHJvdGVjdGlvbiBwZXJpb2RzIG9mIDIsIDMsIDQsIDUsIGFuZCA2IGhvdXJzIGFyZSBpbiBpbnZpdGF0aW9uYWwgcHJldmlldy4gSWYgeW91IHdhbnQgdG8gc2V0IHRoaXMgcGFyYW1ldGVyIHRvIG9uZSBvZiB0aGVzZSB2YWx1ZXMsIHN1Ym1pdCBhIHRpY2tldC5cbiAgICAgKiBJZiB0aGlzIHBhcmFtZXRlciBpcyBzZXQgdG8gMCwgbm8gcHJvdGVjdGlvbiBwZXJpb2QgaXMgY29uZmlndXJlZCBmb3IgdGhlIHByZWVtcHRpYmxlIGluc3RhbmNlLlxuICAgICAqIERlZmF1bHQgdmFsdWU6IDEuXG4gICAgICovXG4gICAgcmVhZG9ubHkgc3BvdER1cmF0aW9uPzogbnVtYmVyIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgc3BvdEludGVycnVwdGlvbkJlaGF2aW9yOiBUaGUgaW50ZXJydXB0aW9uIG1vZGUgb2YgdGhlIHByZWVtcHRpYmxlIGluc3RhbmNlLiBEZWZhdWx0IHZhbHVlOiBUZXJtaW5hdGUuIFNldCB0aGUgdmFsdWUgdG8gVGVybWluYXRlLCB3aGljaCBzcGVjaWZpZXMgdG8gcmVsZWFzZSB0aGUgaW5zdGFuY2UuXG4gICAgICovXG4gICAgcmVhZG9ubHkgc3BvdEludGVycnVwdGlvbkJlaGF2aW9yPzogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgc3BvdFByaWNlTGltaXQ6IFRoZSBob3VybHkgcHJpY2UgdGhyZXNob2xkIG9mIGEgaW5zdGFuY2UsIGFuZCBpdCB0YWtlcyBlZmZlY3Qgb25seSB3aGVuIHBhcmFtZXRlciBJbnN0YW5jZUNoYXJnZVR5cGUgaXMgUG9zdFBhaWQuIFRocmVlIGRlY2ltYWxzIGlzIGFsbG93ZWQgYXQgbW9zdC5cbiAgICAgKi9cbiAgICByZWFkb25seSBzcG90UHJpY2VMaW1pdD86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IHNwb3RTdHJhdGVneTogVGhlIHNwb3Qgc3RyYXRlZ3kgb2YgYSBQYXktQXMtWW91LUdvIGluc3RhbmNlLCBhbmQgaXQgdGFrZXMgZWZmZWN0IG9ubHkgd2hlbiBwYXJhbWV0ZXIgSW5zdGFuY2VDaGFyZ2VUeXBlIGlzIFBvc3RQYWlkLiBWYWx1ZSByYW5nZTogXCJOb1Nwb3Q6IEEgcmVndWxhciBQYXktQXMtWW91LUdvIGluc3RhbmNlXCIsIFwiU3BvdFdpdGhQcmljZUxpbWl0OiBBIHByaWNlIHRocmVzaG9sZCBmb3IgYSBzcG90IGluc3RhbmNlLCBcIlwiU3BvdEFzUHJpY2VHbzogQSBwcmljZSB0aGF0IGlzIGJhc2VkIG9uIHRoZSBoaWdoZXN0IFBheS1Bcy1Zb3UtR28gaW5zdGFuY2UuIFwiRGVmYXVsdCB2YWx1ZTogTm9TcG90LlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHNwb3RTdHJhdGVneT86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IHN5c3RlbURpc2tDYXRlZ29yeTogQ2F0ZWdvcnkgb2Ygc3lzdGVtIGRpc2suIERlZmF1bHQgaXMgY2xvdWRfZWZmaWNpZW5jeS4gc3VwcG9ydCBjbG91ZHxjbG91ZF9lZmZpY2llbmN5fGNsb3VkX3NzZHxjbG91ZF9lc3NkfGVwaGVtZXJhbF9zc2R8Y2xvdWRfYXV0b3xjbG91ZF9lc3NkX2VudHJ5XG4gICAgICovXG4gICAgcmVhZG9ubHkgc3lzdGVtRGlza0NhdGVnb3J5Pzogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgc3lzdGVtRGlza0Rlc2NyaXB0aW9uOiBEZXNjcmlwdGlvbiBvZiBjcmVhdGVkIHN5c3RlbSBkaXNrLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHN5c3RlbURpc2tEZXNjcmlwdGlvbj86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IHN5c3RlbURpc2tEaXNrTmFtZTogTmFtZSBvZiBjcmVhdGVkIHN5c3RlbSBkaXNrLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHN5c3RlbURpc2tEaXNrTmFtZT86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IHN5c3RlbURpc2tQZXJmb3JtYW5jZUxldmVsOiBUaGUgcGVyZm9ybWFuY2UgbGV2ZWwgb2YgdGhlIGVuaGFuY2VkIFNTRCB1c2VkIGFzIHRoZSBzeXN0ZW0gZGlzay5EZWZhdWx0IHZhbHVlOiBQTDEuIFZhbGlkIHZhbHVlczpQTDA6IEEgc2luZ2xlIGVuaGFuY2VkIFNTRCBkZWxpdmVycyB1cCB0byAxMCwwMDAgcmFuZG9tIHJlYWQvd3JpdGUgSU9QUy5QTDE6IEEgc2luZ2xlIGVuaGFuY2VkIFNTRCBkZWxpdmVycyB1cCB0byA1MCwwMDAgcmFuZG9tIHJlYWQvd3JpdGUgSU9QUy5QTDI6IEEgc2luZ2xlIGVuaGFuY2VkIFNTRCBkZWxpdmVycyB1cCB0byAxMDAsMDAwIHJhbmRvbSByZWFkL3dyaXRlIElPUFMuUEwzOiBBIHNpbmdsZSBlbmhhbmNlZCBTU0QgZGVsaXZlcnMgdXAgdG8gMSwwMDAsMDAwIHJhbmRvbSByZWFkL3dyaXRlIElPUFMuXG4gICAgICovXG4gICAgcmVhZG9ubHkgc3lzdGVtRGlza1BlcmZvcm1hbmNlTGV2ZWw/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBzeXN0ZW1EaXNrU2l6ZTogRGlzayBzaXplIG9mIHRoZSBzeXN0ZW0gZGlzaywgcmFuZ2UgZnJvbSAyMCB0byA1MDAgR0IuIElmIHlvdSBzcGVjaWZ5IHdpdGggeW91ciBvd24gaW1hZ2UsIG1ha2Ugc3VyZSB0aGUgc3lzdGVtIGRpc2sgc2l6ZSBiaWdnZXIgdGhhbiBpbWFnZSBzaXplLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHN5c3RlbURpc2tTaXplPzogbnVtYmVyIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgdGFnczogVGFncyB0byBhdHRhY2ggdG8gaW5zdGFuY2UuIE1heCBzdXBwb3J0IDIwIHRhZ3MgdG8gYWRkIGR1cmluZyBjcmVhdGUgaW5zdGFuY2UuIEVhY2ggdGFnIHdpdGggdHdvIHByb3BlcnRpZXMgS2V5IGFuZCBWYWx1ZSwgYW5kIEtleSBpcyByZXF1aXJlZC5cbiAgICAgKi9cbiAgICByZWFkb25seSB0YWdzPzogUm9zSW5zdGFuY2UuVGFnc1Byb3BlcnR5W107XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSB1c2VyRGF0YTogVXNlciBkYXRhIHRvIHBhc3MgdG8gaW5zdGFuY2UuIFsxLCAxNktCXSBjaGFyYWN0ZXJzLlVzZXIgZGF0YSBzaG91bGQgbm90IGJlIGJhc2U2NCBlbmNvZGVkLiBJZiB5b3Ugd2FudCB0byBwYXNzIGJhc2U2NCBlbmNvZGVkIHN0cmluZyB0byB0aGUgcHJvcGVydHksIHVzZSBmdW5jdGlvbiBGbjo6QmFzZTY0RGVjb2RlIHRvIGRlY29kZSB0aGUgYmFzZTY0IHN0cmluZyBmaXJzdC5cbiAgICAgKi9cbiAgICByZWFkb25seSB1c2VyRGF0YT86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IHZwY0lkOiBUaGUgVlBDIGlkIHRvIGNyZWF0ZSBlY3MgaW5zdGFuY2UuXG4gICAgICovXG4gICAgcmVhZG9ubHkgdnBjSWQ/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSB2U3dpdGNoSWQ6IFRoZSB2U3dpdGNoIElkIHRvIGNyZWF0ZSBlY3MgaW5zdGFuY2UuXG4gICAgICovXG4gICAgcmVhZG9ubHkgdlN3aXRjaElkPzogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgem9uZUlkOiBUaGUgSUQgb2YgdGhlIHpvbmUgdG8gd2hpY2ggdGhlIGluc3RhbmNlIGJlbG9uZ3MuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBcbiAgICAgKiBjYWxsIHRoZSBEZXNjcmliZVpvbmVzIG9wZXJhdGlvbiB0byBxdWVyeSB0aGUgbW9zdCByZWNlbnQgem9uZSBsaXN0LiBcbiAgICAgKiBEZWZhdWx0IHZhbHVlIGlzIGVtcHR5LCB3aGljaCBtZWFucyByYW5kb20gc2VsZWN0aW9uLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHpvbmVJZD86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IHpvbmVJZHM6IFpvbmUgaWRzIGZvciBxdWVyeSBwYXJhbWV0ZXJzXG4gICAgICovXG4gICAgcmVhZG9ubHkgem9uZUlkcz86IEFycmF5PHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZT4gfCByb3MuSVJlc29sdmFibGU7XG59XG5cbi8qKlxuICogQSBST1MgcmVzb3VyY2UgdHlwZTogIGBBTElZVU46OkVDUzo6SW5zdGFuY2VgXG4gKi9cbmV4cG9ydCBjbGFzcyBJbnN0YW5jZSBleHRlbmRzIHJvcy5SZXNvdXJjZSB7XG5cbiAgICAvKipcbiAgICAgKiBBIGZhY3RvcnkgbWV0aG9kIHRoYXQgY3JlYXRlcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGlzIGNsYXNzIGZyb20gYW4gb2JqZWN0XG4gICAgICogY29udGFpbmluZyB0aGUgcHJvcGVydGllcyBvZiB0aGlzIFJPUyByZXNvdXJjZSwgd2hpY2ggd2lsbCBiZSBhc3NpZ25lZCB0byBST1MgcmVzb3VyY2UuXG4gICAgICovXG5cbiAgICAvKipcbiAgICAgKiBBdHRyaWJ1dGUgSG9zdE5hbWU6IEhvc3QgbmFtZSBvZiBjcmVhdGVkIGluc3RhbmNlLlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBhdHRySG9zdE5hbWU6IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIEF0dHJpYnV0ZSBJbm5lcklwOiBJbm5lciBJUCBhZGRyZXNzIG9mIHRoZSBzcGVjaWZpZWQgaW5zdGFuY2UuIE9ubHkgZm9yIGNsYXNzaWNhbCBpbnN0YW5jZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgYXR0cklubmVySXA6IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIEF0dHJpYnV0ZSBJbnN0YW5jZUlkOiBUaGUgaW5zdGFuY2UgSUQgb2YgY3JlYXRlZCBlY3MgaW5zdGFuY2VcbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgYXR0ckluc3RhbmNlSWQ6IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIEF0dHJpYnV0ZSBQcmltYXJ5TmV0d29ya0ludGVyZmFjZUlkOiBQcmltYXJ5IG5ldHdvcmsgaW50ZXJmYWNlIElEIG9mIGNyZWF0ZWQgaW5zdGFuY2UuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGF0dHJQcmltYXJ5TmV0d29ya0ludGVyZmFjZUlkOiByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBBdHRyaWJ1dGUgUHJpdmF0ZUlwOiBQcml2YXRlIElQIGFkZHJlc3Mgb2YgY3JlYXRlZCBlY3MgaW5zdGFuY2UuIE9ubHkgZm9yIFZQQyBpbnN0YW5jZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgYXR0clByaXZhdGVJcDogcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogQXR0cmlidXRlIFB1YmxpY0lwOiBQdWJsaWMgSVAgYWRkcmVzcyBvZiBjcmVhdGVkIGVjcyBpbnN0YW5jZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgYXR0clB1YmxpY0lwOiByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBBdHRyaWJ1dGUgU2VjdXJpdHlHcm91cElkczogU2VjdXJpdHkgZ3JvdXAgSUQgbGlzdCBvZiBjcmVhdGVkIGluc3RhbmNlLlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBhdHRyU2VjdXJpdHlHcm91cElkczogcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogQXR0cmlidXRlIFpvbmVJZDogWm9uZSBJRCBvZiBjcmVhdGVkIGluc3RhbmNlLlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBhdHRyWm9uZUlkOiByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGUgYSBuZXcgYEFMSVlVTjo6RUNTOjpJbnN0YW5jZWAuXG4gICAgICpcbiAgICAgKiBQYXJhbSBzY29wZSAtIHNjb3BlIGluIHdoaWNoIHRoaXMgcmVzb3VyY2UgaXMgZGVmaW5lZFxuICAgICAqIFBhcmFtIGlkICAgIC0gc2NvcGVkIGlkIG9mIHRoZSByZXNvdXJjZVxuICAgICAqIFBhcmFtIHByb3BzIC0gcmVzb3VyY2UgcHJvcGVydGllc1xuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKHNjb3BlOiByb3MuQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogSW5zdGFuY2VQcm9wcywgZW5hYmxlUmVzb3VyY2VQcm9wZXJ0eUNvbnN0cmFpbnQ6Ym9vbGVhbiA9IHRydWUpIHtcbiAgICAgICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgICAgICBjb25zdCByb3NJbnN0YW5jZSA9IG5ldyBSb3NJbnN0YW5jZSh0aGlzLCBpZCwgIHtcbiAgICAgICAgICAgIGRlZGljYXRlZEhvc3RJZDogcHJvcHMuZGVkaWNhdGVkSG9zdElkLFxuICAgICAgICAgICAgcHJpdmF0ZUlwQWRkcmVzczogcHJvcHMucHJpdmF0ZUlwQWRkcmVzcyxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBwcm9wcy5kZXNjcmlwdGlvbixcbiAgICAgICAgICAgIHJlc291cmNlR3JvdXBJZDogcHJvcHMucmVzb3VyY2VHcm91cElkLFxuICAgICAgICAgICAgZGlza01hcHBpbmdzOiBwcm9wcy5kaXNrTWFwcGluZ3MsXG4gICAgICAgICAgICB1c2VyRGF0YTogcHJvcHMudXNlckRhdGEsXG4gICAgICAgICAgICBzeXN0ZW1EaXNrU2l6ZTogcHJvcHMuc3lzdGVtRGlza1NpemUsXG4gICAgICAgICAgICBzeXN0ZW1EaXNrRGVzY3JpcHRpb246IHByb3BzLnN5c3RlbURpc2tEZXNjcmlwdGlvbixcbiAgICAgICAgICAgIGluc3RhbmNlQ2hhcmdlVHlwZTogcHJvcHMuaW5zdGFuY2VDaGFyZ2VUeXBlID09PSB1bmRlZmluZWQgfHwgcHJvcHMuaW5zdGFuY2VDaGFyZ2VUeXBlID09PSBudWxsID8gJ1Bvc3RQYWlkJyA6IHByb3BzLmluc3RhbmNlQ2hhcmdlVHlwZSxcbiAgICAgICAgICAgIGF1dG9SZW5ldzogcHJvcHMuYXV0b1JlbmV3ID09PSB1bmRlZmluZWQgfHwgcHJvcHMuYXV0b1JlbmV3ID09PSBudWxsID8gJ0ZhbHNlJyA6IHByb3BzLmF1dG9SZW5ldyxcbiAgICAgICAgICAgIHNwb3REdXJhdGlvbjogcHJvcHMuc3BvdER1cmF0aW9uLFxuICAgICAgICAgICAgcmFtUm9sZU5hbWU6IHByb3BzLnJhbVJvbGVOYW1lLFxuICAgICAgICAgICAgc3lzdGVtRGlza1BlcmZvcm1hbmNlTGV2ZWw6IHByb3BzLnN5c3RlbURpc2tQZXJmb3JtYW5jZUxldmVsLFxuICAgICAgICAgICAgaW1hZ2VJZDogcHJvcHMuaW1hZ2VJZCxcbiAgICAgICAgICAgIHN5c3RlbURpc2tEaXNrTmFtZTogcHJvcHMuc3lzdGVtRGlza0Rpc2tOYW1lLFxuICAgICAgICAgICAgc3BvdFByaWNlTGltaXQ6IHByb3BzLnNwb3RQcmljZUxpbWl0LFxuICAgICAgICAgICAgem9uZUlkczogcHJvcHMuem9uZUlkcyxcbiAgICAgICAgICAgIGluc3RhbmNlVHlwZTogcHJvcHMuaW5zdGFuY2VUeXBlLFxuICAgICAgICAgICAgYWxsb2NhdGVQdWJsaWNJcDogcHJvcHMuYWxsb2NhdGVQdWJsaWNJcCA9PT0gdW5kZWZpbmVkIHx8IHByb3BzLmFsbG9jYXRlUHVibGljSXAgPT09IG51bGwgPyB0cnVlIDogcHJvcHMuYWxsb2NhdGVQdWJsaWNJcCxcbiAgICAgICAgICAgIHRhZ3M6IHByb3BzLnRhZ3MsXG4gICAgICAgICAgICBob3N0TmFtZTogcHJvcHMuaG9zdE5hbWUsXG4gICAgICAgICAgICBzcG90U3RyYXRlZ3k6IHByb3BzLnNwb3RTdHJhdGVneSxcbiAgICAgICAgICAgIHBhc3N3b3JkSW5oZXJpdDogcHJvcHMucGFzc3dvcmRJbmhlcml0LFxuICAgICAgICAgICAgcGFzc3dvcmQ6IHByb3BzLnBhc3N3b3JkLFxuICAgICAgICAgICAgYXV0b1JlbmV3UGVyaW9kOiBwcm9wcy5hdXRvUmVuZXdQZXJpb2QgPT09IHVuZGVmaW5lZCB8fCBwcm9wcy5hdXRvUmVuZXdQZXJpb2QgPT09IG51bGwgPyAxIDogcHJvcHMuYXV0b1JlbmV3UGVyaW9kLFxuICAgICAgICAgICAga2V5UGFpck5hbWU6IHByb3BzLmtleVBhaXJOYW1lLFxuICAgICAgICAgICAgaW9PcHRpbWl6ZWQ6IHByb3BzLmlvT3B0aW1pemVkID09PSB1bmRlZmluZWQgfHwgcHJvcHMuaW9PcHRpbWl6ZWQgPT09IG51bGwgPyAnb3B0aW1pemVkJyA6IHByb3BzLmlvT3B0aW1pemVkLFxuICAgICAgICAgICAgem9uZUlkOiBwcm9wcy56b25lSWQsXG4gICAgICAgICAgICBocGNDbHVzdGVySWQ6IHByb3BzLmhwY0NsdXN0ZXJJZCxcbiAgICAgICAgICAgIHZTd2l0Y2hJZDogcHJvcHMudlN3aXRjaElkLFxuICAgICAgICAgICAgc2VjdXJpdHlHcm91cElkOiBwcm9wcy5zZWN1cml0eUdyb3VwSWQsXG4gICAgICAgICAgICBwZXJpb2Q6IHByb3BzLnBlcmlvZCA9PT0gdW5kZWZpbmVkIHx8IHByb3BzLnBlcmlvZCA9PT0gbnVsbCA/IDEgOiBwcm9wcy5wZXJpb2QsXG4gICAgICAgICAgICBkZWxldGlvblByb3RlY3Rpb246IHByb3BzLmRlbGV0aW9uUHJvdGVjdGlvbixcbiAgICAgICAgICAgIHNlY3VyaXR5R3JvdXBJZHM6IHByb3BzLnNlY3VyaXR5R3JvdXBJZHMsXG4gICAgICAgICAgICBpbnRlcm5ldENoYXJnZVR5cGU6IHByb3BzLmludGVybmV0Q2hhcmdlVHlwZSA9PT0gdW5kZWZpbmVkIHx8IHByb3BzLmludGVybmV0Q2hhcmdlVHlwZSA9PT0gbnVsbCA/ICdQYXlCeVRyYWZmaWMnIDogcHJvcHMuaW50ZXJuZXRDaGFyZ2VUeXBlLFxuICAgICAgICAgICAgc3lzdGVtRGlza0NhdGVnb3J5OiBwcm9wcy5zeXN0ZW1EaXNrQ2F0ZWdvcnkgPT09IHVuZGVmaW5lZCB8fCBwcm9wcy5zeXN0ZW1EaXNrQ2F0ZWdvcnkgPT09IG51bGwgPyAnY2xvdWRfZWZmaWNpZW5jeScgOiBwcm9wcy5zeXN0ZW1EaXNrQ2F0ZWdvcnksXG4gICAgICAgICAgICBzcG90SW50ZXJydXB0aW9uQmVoYXZpb3I6IHByb3BzLnNwb3RJbnRlcnJ1cHRpb25CZWhhdmlvcixcbiAgICAgICAgICAgIGluc3RhbmNlTmFtZTogcHJvcHMuaW5zdGFuY2VOYW1lLFxuICAgICAgICAgICAgZGVwbG95bWVudFNldElkOiBwcm9wcy5kZXBsb3ltZW50U2V0SWQsXG4gICAgICAgICAgICBpbnRlcm5ldE1heEJhbmR3aWR0aE91dDogcHJvcHMuaW50ZXJuZXRNYXhCYW5kd2lkdGhPdXQgPT09IHVuZGVmaW5lZCB8fCBwcm9wcy5pbnRlcm5ldE1heEJhbmR3aWR0aE91dCA9PT0gbnVsbCA/IDEgOiBwcm9wcy5pbnRlcm5ldE1heEJhbmR3aWR0aE91dCxcbiAgICAgICAgICAgIHZwY0lkOiBwcm9wcy52cGNJZCxcbiAgICAgICAgICAgIHNlY3VyaXR5RW5oYW5jZW1lbnRTdHJhdGVneTogcHJvcHMuc2VjdXJpdHlFbmhhbmNlbWVudFN0cmF0ZWd5LFxuICAgICAgICAgICAgcGVyaW9kVW5pdDogcHJvcHMucGVyaW9kVW5pdCA9PT0gdW5kZWZpbmVkIHx8IHByb3BzLnBlcmlvZFVuaXQgPT09IG51bGwgPyAnTW9udGgnIDogcHJvcHMucGVyaW9kVW5pdCxcbiAgICAgICAgfSwgZW5hYmxlUmVzb3VyY2VQcm9wZXJ0eUNvbnN0cmFpbnQgJiYgdGhpcy5zdGFjay5lbmFibGVSZXNvdXJjZVByb3BlcnR5Q29uc3RyYWludCk7XG4gICAgICAgIHRoaXMucmVzb3VyY2UgPSByb3NJbnN0YW5jZTtcbiAgICAgICAgdGhpcy5hdHRySG9zdE5hbWUgPSByb3NJbnN0YW5jZS5hdHRySG9zdE5hbWU7XG4gICAgICAgIHRoaXMuYXR0cklubmVySXAgPSByb3NJbnN0YW5jZS5hdHRySW5uZXJJcDtcbiAgICAgICAgdGhpcy5hdHRySW5zdGFuY2VJZCA9IHJvc0luc3RhbmNlLmF0dHJJbnN0YW5jZUlkO1xuICAgICAgICB0aGlzLmF0dHJQcmltYXJ5TmV0d29ya0ludGVyZmFjZUlkID0gcm9zSW5zdGFuY2UuYXR0clByaW1hcnlOZXR3b3JrSW50ZXJmYWNlSWQ7XG4gICAgICAgIHRoaXMuYXR0clByaXZhdGVJcCA9IHJvc0luc3RhbmNlLmF0dHJQcml2YXRlSXA7XG4gICAgICAgIHRoaXMuYXR0clB1YmxpY0lwID0gcm9zSW5zdGFuY2UuYXR0clB1YmxpY0lwO1xuICAgICAgICB0aGlzLmF0dHJTZWN1cml0eUdyb3VwSWRzID0gcm9zSW5zdGFuY2UuYXR0clNlY3VyaXR5R3JvdXBJZHM7XG4gICAgICAgIHRoaXMuYXR0clpvbmVJZCA9IHJvc0luc3RhbmNlLmF0dHJab25lSWQ7XG4gICAgfVxufVxuIl19
|
|
205
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdGFuY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbnN0YW5jZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw4Q0FBOEM7QUFDOUMsbURBQThDO0FBS3RCLGlHQUxmLDJCQUFXLE9BS29CO0FBSnhDLCtCQUE0QjtBQUM1Qix1Q0FBb0M7QUFDcEMsbURBQWdEO0FBK1NoRDs7OztHQUlHO0FBQ0gsTUFBYSxRQUFTLFNBQVEsR0FBRyxDQUFDLFFBQVE7SUE4Q3RDOzs7O09BSUc7SUFDSCxZQUFZLEtBQW9CLEVBQUUsRUFBVSxFQUFFLEtBQW9CLEVBQUUsbUNBQTJDLElBQUk7UUFDL0csS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNqQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQztRQUNiLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxnQ0FBZ0MsR0FBRyxnQ0FBZ0MsQ0FBQztRQUV6RSxNQUFNLFdBQVcsR0FBRyxJQUFJLDJCQUFXLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRztZQUMzQyxlQUFlLEVBQUUsS0FBSyxDQUFDLGVBQWU7WUFDdEMsZUFBZSxFQUFFLEtBQUssQ0FBQyxlQUFlO1lBQ3RDLHFCQUFxQixFQUFFLEtBQUssQ0FBQyxxQkFBcUI7WUFDbEQsa0JBQWtCLEVBQUUsS0FBSyxDQUFDLGtCQUFrQixLQUFLLFNBQVMsSUFBSSxLQUFLLENBQUMsa0JBQWtCLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxrQkFBa0I7WUFDdkksV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXO1lBQzlCLGtCQUFrQixFQUFFLEtBQUssQ0FBQyxrQkFBa0I7WUFDNUMsMEJBQTBCLEVBQUUsS0FBSyxDQUFDLDBCQUEwQjtZQUM1RCxPQUFPLEVBQUUsS0FB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QUFDLENBQUM7U0FDOUU7UUFFRCxRQUFRLENBQUMsZUFBZSxHQUFHLFNBQVMsQ0FBQztRQUNyQyxRQUFRLENBQUMsZ0JBQWdCLEdBQUcsbUJBQW1CLENBQUM7SUFDcEQsQ0FBQztJQUVEOzs7T0FHRztJQUNJLG1CQUFtQixDQUFDLEdBQUcsUUFBc0M7UUFDaEUsSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQXVCLENBQUM7UUFDNUMsSUFBSSxnQkFBZ0IsR0FBaUMsRUFBRSxDQUFDO1FBQ3hELElBQUksUUFBUSxDQUFDLFFBQVEsS0FBSyxTQUFTLEVBQUU7WUFDakMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUM1QztRQUNELEtBQUssSUFBSSxPQUFPLElBQUksUUFBUSxFQUFFO1lBQzFCLElBQUksR0FBRyxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUNqQyxPQUFPLEdBQUcsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO2FBQ2hDO1lBQ0QsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ2xDO1FBQ0QsUUFBUSxDQUFDLFFBQVEsR0FBRyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztJQUM1RCxDQUFDO0NBQ0o7QUFoUEQsNEJBZ1BDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcm9zIGZyb20gJ0BhbGljbG91ZC9yb3MtY2RrLWNvcmUnO1xuaW1wb3J0IHsgUm9zSW5zdGFuY2UgfSBmcm9tICcuL2Vjcy5nZW5lcmF0ZWQnO1xuaW1wb3J0IHsgVnBjIH0gZnJvbSAnLi92cGMnO1xuaW1wb3J0IHsgVlN3aXRjaCB9IGZyb20gJy4vdnN3aXRjaCc7XG5pbXBvcnQgeyBTZWN1cml0eUdyb3VwIH0gZnJvbSAnLi9zZWN1cml0eWdyb3VwJztcbi8vIEdlbmVyYXRlZCBmcm9tIHRoZSBBbGlDbG91ZCBST1MgUmVzb3VyY2UgU3BlY2lmaWNhdGlvblxuZXhwb3J0IHsgUm9zSW5zdGFuY2UgYXMgSW5zdGFuY2VQcm9wZXJ0eSB9O1xuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGRlZmluaW5nIGEgYEluc3RhbmNlYC5cbiAqIFNlZSBodHRwczovL3d3dy5hbGliYWJhY2xvdWQuY29tL2hlbHAvcm9zL2RldmVsb3Blci1yZWZlcmVuY2UvYWxpeXVuLWVjcy1pbnN0YW5jZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEluc3RhbmNlUHJvcHMge1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgaW5zdGFuY2VUeXBlOiBFY3MgaW5zdGFuY2Ugc3VwcG9ydGVkIGluc3RhbmNlIHR5cGUsIG1ha2Ugc3VyZSBpdCBzaG91bGQgYmUgY29ycmVjdC5cbiAgICAgKi9cbiAgICByZWFkb25seSBpbnN0YW5jZVR5cGU6IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IGFmZmluaXR5OiBTcGVjaWZpZXMgd2hldGhlciB0byBhc3NvY2lhdGUgdGhlIGluc3RhbmNlIG9uIGEgZGVkaWNhdGVkIGhvc3Qgd2l0aCB0aGUgZGVkaWNhdGVkIGhvc3QuIFZhbGlkIHZhbHVlczpcbiAgICAgKiAtICoqZGVmYXVsdCoqOiBkb2VzIG5vdCBhc3NvY2lhdGUgdGhlIEVDUyBpbnN0YW5jZSB3aXRoIHRoZSBkZWRpY2F0ZWQgaG9zdC4gV2hlbiB5b3Ugc3RhcnQgYW4gaW5zdGFuY2UgdGhhdCB3YXMgc3RvcHBlZCBpbiBlY29ub21pY2FsIG1vZGUsIHRoZSBpbnN0YW5jZSBpcyBhdXRvbWF0aWNhbGx5IGRlcGxveWVkIHRvIGFub3RoZXIgZGVkaWNhdGVkIGhvc3QgaW4gdGhlIGF1dG9tYXRpYyBkZXBsb3ltZW50IHJlc291cmNlIHBvb2wgaWYgdGhlIGF2YWlsYWJsZSByZXNvdXJjZXMgb2YgdGhlIG9yaWdpbmFsIGRlZGljYXRlZCBob3N0IGFyZSBpbnN1ZmZpY2llbnQuXG4gICAgICogLSAqKmhvc3QqKjogYXNzb2NpYXRlcyB0aGUgRUNTIGluc3RhbmNlIHdpdGggdGhlIGRlZGljYXRlZCBob3N0LiBXaGVuIHlvdSBzdGFydCBhbiBpbnN0YW5jZSB0aGF0IHdhcyBzdG9wcGVkIGluIGVjb25vbWljYWwgbW9kZSwgdGhlIGluc3RhbmNlIHJlbWFpbnMgb24gdGhlIG9yaWdpbmFsIGRlZGljYXRlZCBob3N0LiBJZiB0aGUgYXZhaWxhYmxlIHJlc291cmNlcyBvZiB0aGUgb3JpZ2luYWwgZGVkaWNhdGVkIGhvc3QgYXJlIGluc3VmZmljaWVudCwgdGhlIGluc3RhbmNlIGNhbm5vdCBzdGFydC5cbiAgICAgKiBEZWZhdWx0IHZhbHVlOiAqKmRlZmF1bHQqKi5cbiAgICAgKi9cbiAgICByZWFkb25seSBhZmZpbml0eT86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IGFsbG9jYXRlUHVibGljSXA6IFRoZSBwdWJsaWMgaXAgZm9yIGVjcyBpbnN0YW5jZSwgaWYgcHJvcGVydGllcyBpcyB0cnVlLCB3aWxsIGFsbG9jYXRlIHB1YmxpYyBpcC4gSWYgcHJvcGVydHkgSW50ZXJuZXRNYXhCYW5kd2lkdGhPdXQgc2V0IHRvIDAsIGl0IHdpbGwgbm90IGFzc2lnbiBwdWJsaWMgaXAuXG4gICAgICovXG4gICAgcmVhZG9ubHkgYWxsb2NhdGVQdWJsaWNJcD86IGJvb2xlYW4gfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBhdXRvUmVuZXc6IFdoZXRoZXIgcmVuZXcgdGhlIGZlZSBhdXRvbWF0aWNhbGx5PyBXaGVuIHRoZSBwYXJhbWV0ZXIgSW5zdGFuY2VDaGFyZ2VUeXBlIGlzIFByZVBhaWQsIGl0IHdpbGwgdGFrZSBlZmZlY3QuIFJhbmdlIG9mIHZhbHVlOlRydWU6IGF1dG9tYXRpYyByZW5ld2FsLkZhbHNlOiBubyBhdXRvbWF0aWMgcmVuZXdhbC4gRGVmYXVsdCB2YWx1ZSBpcyBGYWxzZS5cbiAgICAgKi9cbiAgICByZWFkb25seSBhdXRvUmVuZXc/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBhdXRvUmVuZXdQZXJpb2Q6IFRoZSB0aW1lIHBlcmlvZCBvZiBhdXRvIHJlbmV3LiBXaGVuIHRoZSBwYXJhbWV0ZXIgSW5zdGFuY2VDaGFyZ2VUeXBlIGlzIFByZVBhaWQsIGl0IHdpbGwgdGFrZSBlZmZlY3QuSXQgY291bGQgYmUgMSwgMiwgMywgNiwgMTIsIDI0LCAzNiwgNDgsIDYwLiBEZWZhdWx0IHZhbHVlIGlzIDEuXG4gICAgICovXG4gICAgcmVhZG9ubHkgYXV0b1JlbmV3UGVyaW9kPzogbnVtYmVyIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgY3JlZGl0U3BlY2lmaWNhdGlvbjogVGhlIHBlcmZvcm1hbmNlIG1vZGUgb2YgdGhlIGJ1cnN0YWJsZSBpbnN0YW5jZS4gVmFsaWQgdmFsdWVzOlxuICAgICAqIC0gKipTdGFuZGFyZCoqOiB0aGUgc3RhbmRhcmQgbW9kZS5cbiAgICAgKiAtICoqVW5saW1pdGVkKio6IHRoZSB1bmxpbWl0ZWQgbW9kZS5cbiAgICAgKi9cbiAgICByZWFkb25seSBjcmVkaXRTcGVjaWZpY2F0aW9uPzogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgZGVkaWNhdGVkSG9zdElkOiB3aGljaCBkZWRpY2F0ZWQgaG9zdCB3aWxsIGJlIGRlcGxveWVkXG4gICAgICovXG4gICAgcmVhZG9ubHkgZGVkaWNhdGVkSG9zdElkPzogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgZGVsZXRpb25Qcm90ZWN0aW9uOiBXaGV0aGVyIGFuIGluc3RhbmNlIGNhbiBiZSByZWxlYXNlZCBtYW51YWxseSB0aHJvdWdoIHRoZSBjb25zb2xlIG9yIEFQSSwgZGVsZXRpb24gcHJvdGVjdGlvbiBvbmx5IHN1cHBvcnQgcG9zdFBhaWQgaW5zdGFuY2VcbiAgICAgKi9cbiAgICByZWFkb25seSBkZWxldGlvblByb3RlY3Rpb24/OiBib29sZWFuIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgZGVwbG95bWVudFNldEdyb3VwTm86IFRoZSBudW1iZXIgb2YgdGhlIGRlcGxveW1lbnQgc2V0IGdyb3VwIHRvIHdoaWNoIHRvIGRlcGxveSB0aGUgaW5zdGFuY2UuIElmIHRoZSBkZXBsb3ltZW50IHNldCBzcGVjaWZpZWQgYnkgKipEZXBsb3ltZW50U2V0SWQqKiB1c2VzIHRoZSBoaWdoIGF2YWlsYWJpbGl0eSBncm91cCBzdHJhdGVneSAoQXZhaWxhYmlsaXR5R3JvdXApLCB5b3UgY2FuIHVzZSAqKkRlcGxveW1lbnRTZXRHcm91cE5vKiogdG8gc3BlY2lmeSBhIGRlcGxveW1lbnQgc2V0IGdyb3VwIGluIHRoZSBkZXBsb3ltZW50IHNldC4gVmFsaWQgdmFsdWVzOiAxIHRvIDcuXG4gICAgICovXG4gICAgcmVhZG9ubHkgZGVwbG95bWVudFNldEdyb3VwTm8/OiBudW1iZXIgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBkZXBsb3ltZW50U2V0SWQ6IERlcGxveW1lbnQgc2V0IElELlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGRlcGxveW1lbnRTZXRJZD86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IGRlc2NyaXB0aW9uOiBEZXNjcmlwdGlvbiBvZiB0aGUgaW5zdGFuY2UsIFsyLCAyNTZdIGNoYXJhY3RlcnMuIERvIG5vdCBmaWxsIG9yIGVtcHR5LCB0aGUgZGVmYXVsdCBpcyBlbXB0eS5cbiAgICAgKi9cbiAgICByZWFkb25seSBkZXNjcmlwdGlvbj86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IGRpc2tNYXBwaW5nczogRGlzayBtYXBwaW5ncyB0byBhdHRhY2ggdG8gaW5zdGFuY2UuIE1heCBzdXBwb3J0IDE2IGRpc2tzLlxuICAgICAqIElmIHRoZSBpbWFnZSBjb250YWlucyBhIGRhdGEgZGlzaywgeW91IGNhbiBzcGVjaWZ5IG90aGVyIHBhcmFtZXRlcnMgb2YgdGhlIGRhdGEgZGlzayB2aWEgdGhlIHNhbWUgdmFsdWUgb2YgcGFyYW1ldGVyIFwiRGV2aWNlXCIuIElmIHBhcmFtZXRlciBcIkNhdGVnb3J5XCIgaXMgbm90IHNwZWNpZmllZCwgaXQgd2lsbCBiZSBjbG91ZF9lZmZpY2llbmN5IGluc3RlYWQgb2YgXCJDYXRlZ29yeVwiIG9mIGRhdGEgZGlzayBpbiB0aGUgaW1hZ2UuXG4gICAgICovXG4gICAgcmVhZG9ubHkgZGlza01hcHBpbmdzPzogQXJyYXk8Um9zSW5zdGFuY2UuRGlza01hcHBpbmdzUHJvcGVydHkgfCByb3MuSVJlc29sdmFibGU+IHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgaG9zdE5hbWU6IEhvc3QgbmFtZSBvZiBjcmVhdGVkIGVjcyBpbnN0YW5jZS4gYXQgbGVhc3QgMiBjaGFyYWN0ZXJzLCBhbmQgJy4nICctJyBJcyBub3QgdGhlIGZpcnN0IGFuZCBsYXN0IGNoYXJhY3RlcnMgYXMgaG9zdG5hbWUsIG5vdCBjb250aW51b3VzIHVzZS4gV2luZG93cyBwbGF0Zm9ybSBjYW4gYmUgdXAgdG8gMTUgY2hhcmFjdGVycywgYWxsb3dpbmcgbGV0dGVycyAod2l0aG91dCBsaW1pdGluZyBjYXNlKSwgbnVtYmVycyBhbmQgJy0nLCBhbmQgZG9lcyBub3Qgc3VwcG9ydCB0aGUgbnVtYmVyIG9mIHBvaW50cywgbm90IGFsbCBpcyBkaWdpdGFsICgnLicpLk90aGVyIChMaW51eCwgZXRjLikgcGxhdGZvcm0gdXAgdG8gNjQgY2hhcmFjdGVycywgYWxsb3dpbmcgc3VwcG9ydCBudW1iZXIgbXVsdGlwbGUgcG9pbnRzIGZvciB0aGUgcGVyaW9kIGJldHdlZW4gdGhlIHBvaW50cywgZWFjaCBwZXJtaXQgbGV0dGVycyAod2l0aG91dCBsaW1pdGluZyBjYXNlKSwgbnVtYmVycyBhbmQgJy0nIGNvbXBvbmVudHMuXG4gICAgICovXG4gICAgcmVhZG9ubHkgaG9zdE5hbWU/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBocGNDbHVzdGVySWQ6IFRoZSBIUEMgY2x1c3RlciBJRCB0byB3aGljaCB0aGUgaW5zdGFuY2UgYmVsb25ncy5cbiAgICAgKi9cbiAgICByZWFkb25seSBocGNDbHVzdGVySWQ/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBodHRwRW5kcG9pbnQ6IFNwZWNpZmllcyB3aGV0aGVyIHRoZSBhY2Nlc3MgY2hhbm5lbCBpcyBlbmFibGVkIGZvciBpbnN0YW5jZSBtZXRhZGF0YS4gVmFsaWQgdmFsdWVzOlxuICAgICAqIC0gKiplbmFibGVkKipcbiAgICAgKiAtICoqZGlzYWJsZWQqKlxuICAgICAqIERlZmF1bHQgdmFsdWU6ICoqZW5hYmxlZCoqLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGh0dHBFbmRwb2ludD86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IGh0dHBUb2tlbnM6IFNwZWNpZmllcyB3aGV0aGVyIHRoZSBzZWN1cml0eSBoYXJkZW5pbmcgbW9kZSAoSU1EU3YyKSBpcyBmb3JjZWZ1bGx5IHVzZWQgdG8gYWNjZXNzIGluc3RhbmNlIG1ldGFkYXRhLiBWYWxpZCB2YWx1ZXM6XG4gICAgICogLSAqKm9wdGlvbmFsKio6IGRvZXMgbm90IGZvcmNlZnVsbHkgdXNlIHRoZSBzZWN1cml0eS1lbmhhbmNlZCBtb2RlIChJTURTdjIpLlxuICAgICAqIC0gKipyZXF1aXJlZCoqOiBmb3JjZWZ1bGx5IHVzZXMgdGhlIHNlY3VyaXR5LWVuaGFuY2VkIG1vZGUgKElNRFN2MikuIEFmdGVyIHlvdSBzZXQgdGhpcyBwYXJhbWV0ZXIgdG8gcmVxdWlyZWQsIHlvdSBjYW5ub3QgYWNjZXNzIGluc3RhbmNlIG1ldGFkYXRhIGluIG5vcm1hbCBtb2RlLlxuICAgICAqIERlZmF1bHQgdmFsdWU6ICoqb3B0aW9uYWwqKi5cbiAgICAgKi9cbiAgICByZWFkb25seSBodHRwVG9rZW5zPzogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgaW1hZ2VGYW1pbHk6IFRoZSBuYW1lIG9mIHRoZSBpbWFnZSBmYW1pbHkuIFlvdSBjYW4gc2V0IHRoaXMgcGFyYW1ldGVyIHRvIG9idGFpbiB0aGUgbGF0ZXN0IGF2YWlsYWJsZSBjdXN0b20gaW1hZ2UgZnJvbSB0aGUgc3BlY2lmaWVkIGltYWdlIGZhbWlseSB0byBjcmVhdGUgdGhlIGluc3RhbmNlLlxuICAgICAqIC0gKipJbWFnZUZhbWlseSoqIG11c3QgYmUgZW1wdHkgaWYgKipJbWFnZUlkKiogaXMgc3BlY2lmaWVkLlxuICAgICAqIC0gKipJbWFnZUZhbWlseSoqIGNhbiBiZSBzcGVjaWZpZWQgaWYgKipJbWFnZUlkKiogaXMgbm90IHNwZWNpZmllZC5cbiAgICAgKi9cbiAgICByZWFkb25seSBpbWFnZUZhbWlseT86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IGltYWdlSWQ6IEltYWdlIElEIHRvIGNyZWF0ZSBlY3MgaW5zdGFuY2UuXG4gICAgICovXG4gICAgcmVhZG9ubHkgaW1hZ2VJZD86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IGluc3RhbmNlQ2hhcmdlVHlwZTogSW5zdGFuY2UgQ2hhcmdlIHR5cGUsIGFsbG93ZWQgdmFsdWU6IFByZXBhaWQgYW5kIFBvc3RwYWlkLiBJZiBzcGVjaWZpZWQgUHJlcGFpZCwgcGxlYXNlIGVuc3VyZSB5b3UgaGF2ZSBzdWZmaWNpZW50IGJhbGFuY2UgaW4geW91ciBhY2NvdW50LiBPciBpbnN0YW5jZSBjcmVhdGlvbiB3aWxsIGJlIGZhaWx1cmUuIERlZmF1bHQgdmFsdWUgaXMgUG9zdHBhaWQuXG4gICAgICovXG4gICAgcmVhZG9ubHkgaW5zdGFuY2VDaGFyZ2VUeXBlPzogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgaW5zdGFuY2VOYW1lOiBEaXNwbGF5IG5hbWUgb2YgdGhlIGluc3RhbmNlLCBbMiwgMTI4XSBFbmdsaXNoIG9yIENoaW5lc2UgY2hhcmFjdGVycywgbXVzdCBzdGFydCB3aXRoIGEgbGV0dGVyIG9yIENoaW5lc2UgaW4gc2l6ZSwgY2FuIGNvbnRhaW4gbnVtYmVycywgJ18nIG9yICcuJywgJy0nXG4gICAgICovXG4gICAgcmVhZG9ubHkgaW5zdGFuY2VOYW1lPzogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgaW50ZXJuZXRDaGFyZ2VUeXBlOiBJbnN0YW5jZSBpbnRlcm5ldCBhY2Nlc3MgY2hhcmdlIHR5cGUuU3VwcG9ydCAnUGF5QnlCYW5kd2lkdGgnIGFuZCAnUGF5QnlUcmFmZmljJyBvbmx5LiBEZWZhdWx0IGlzIFBheUJ5VHJhZmZpY1xuICAgICAqL1xuICAgIHJlYWRvbmx5IGludGVybmV0Q2hhcmdlVHlwZT86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IGludGVybmV0TWF4QmFuZHdpZHRoT3V0OiBTZXQgaW50ZXJuZXQgb3V0cHV0IGJhbmR3aWR0aCBvZiBpbnN0YW5jZS4gVW5pdCBpcyBNYnBzKE1lZ2EgYml0IHBlciBzZWNvbmQpLiBSYW5nZSBpcyBbMCwyMDBdLiBEZWZhdWx0IGlzIDEuV2hpbGUgdGhlIHByb3BlcnR5IGlzIG5vdCAwLCBwdWJsaWMgaXAgd2lsbCBiZSBhc3NpZ25lZCBmb3IgaW5zdGFuY2UuXG4gICAgICovXG4gICAgcmVhZG9ubHkgaW50ZXJuZXRNYXhCYW5kd2lkdGhPdXQ/OiBudW1iZXIgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBpb09wdGltaXplZDogVGhlICdvcHRpbWl6ZWQnIGluc3RhbmNlIGNhbiBwcm92aWRlIGJldHRlciBJTyBwZXJmb3JtYW5jZS4gU3VwcG9ydCAnbm9uZScgYW5kICdvcHRpbWl6ZWQnIG9ubHksIGRlZmF1bHQgaXMgJ29wdGltaXplZCcuXG4gICAgICovXG4gICAgcmVhZG9ubHkgaW9PcHRpbWl6ZWQ/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBrZXlQYWlyTmFtZTogU1NIIGtleSBwYWlyIG5hbWUuXG4gICAgICovXG4gICAgcmVhZG9ubHkga2V5UGFpck5hbWU/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBwYXNzd29yZDogUGFzc3dvcmQgb2YgY3JlYXRlZCBlY3MgaW5zdGFuY2UuIE11c3QgY29udGFpbiBhdCBsZWFzdCAzIHR5cGVzIG9mIHNwZWNpYWwgY2hhcmFjdGVyLCBsb3dlciBjaGFyYWN0ZXIsIHVwcGVyIGNoYXJhY3RlciwgbnVtYmVyLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHBhc3N3b3JkPzogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgcGFzc3dvcmRJbmhlcml0OiBTcGVjaWZpZXMgd2hldGhlciB0byB1c2UgdGhlIHBhc3N3b3JkIHByZXNldCBpbiB0aGUgaW1hZ2UuIFRvIHVzZSB0aGUgUGFzc3dvcmRJbmhlcml0IHBhcmFtZXRlciwgdGhlIFBhc3N3b3JkIHBhcmFtZXRlciBtdXN0IGJlIGVtcHR5IGFuZCB5b3UgbXVzdCBtYWtlIHN1cmUgdGhhdCB0aGUgc2VsZWN0ZWQgaW1hZ2UgaGFzIGEgcGFzc3dvcmQgY29uZmlndXJlZC5cbiAgICAgKi9cbiAgICByZWFkb25seSBwYXNzd29yZEluaGVyaXQ/OiBib29sZWFuIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgcGVyaW9kOiBQcmVwYWlkIHRpbWUgcGVyaW9kLiBVbml0IGlzIG1vbnRoLCBpdCBjb3VsZCBiZSBmcm9tIDEgdG8gOSBvciAxMiwgMjQsIDM2LCA0OCwgNjAuIERlZmF1bHQgdmFsdWUgaXMgMS5cbiAgICAgKi9cbiAgICByZWFkb25seSBwZXJpb2Q/OiBudW1iZXIgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBwZXJpb2RVbml0OiBVbml0IG9mIHByZXBhaWQgdGltZSBwZXJpb2QsIGl0IGNvdWxkIGJlIFdlZWtcXC9Nb250aFxcL1llYXIuIERlZmF1bHQgdmFsdWUgaXMgTW9udGguXG4gICAgICovXG4gICAgcmVhZG9ubHkgcGVyaW9kVW5pdD86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IHByaXZhdGVJcEFkZHJlc3M6IFByaXZhdGUgSVAgZm9yIHRoZSBpbnN0YW5jZSBjcmVhdGVkLiBPbmx5IHdvcmtzIGZvciBWUEMgaW5zdGFuY2UgYW5kIGNhbm5vdCBkdXBsaWNhdGVkIHdpdGggZXhpc3RpbmcgaW5zdGFuY2UuXG4gICAgICovXG4gICAgcmVhZG9ubHkgcHJpdmF0ZUlwQWRkcmVzcz86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IHByaXZhdGVQb29sT3B0aW9uczogVGhlIG9wdGlvbnMgb2YgdGhlIHByaXZhdGUgcG9vbC5cbiAgICAgKi9cbiAgICByZWFkb25seSBwcml2YXRlUG9vbE9wdGlvbnM/OiBSb3NJbnN0YW5jZS5Qcml2YXRlUG9vbE9wdGlvbnNQcm9wZXJ0eSB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IHJhbVJvbGVOYW1lOiBJbnN0YW5jZSBSQU0gcm9sZSBuYW1lLiBUaGUgbmFtZSBpcyBwcm92aWRlZCBhbmQgbWFpbnRhaW5lZCBieSBSZXNvdXJjZSBBY2Nlc3MgTWFuYWdlbWVudCAoUkFNKSBhbmQgY2FuIGJlIHF1ZXJpZWQgdXNpbmcgTGlzdFJvbGVzLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFJBTSBBUEkgQ3JlYXRlUm9sZSBhbmQgTGlzdFJvbGVzLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHJhbVJvbGVOYW1lPzogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgcmVzb3VyY2VHcm91cElkOiBSZXNvdXJjZSBncm91cCBpZC5cbiAgICAgKi9cbiAgICByZWFkb25seSByZXNvdXJjZUdyb3VwSWQ/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBzZWN1cml0eUVuaGFuY2VtZW50U3RyYXRlZ3k6XG4gICAgICovXG4gICAgcmVhZG9ubHkgc2VjdXJpdHlFbmhhbmNlbWVudFN0cmF0ZWd5Pzogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgc2VjdXJpdHlHcm91cElkOiBTZWN1cml0eSBncm91cCB0byBjcmVhdGUgZWNzIGluc3RhbmNlLiBGb3IgY2xhc3NpYyBpbnN0YW5jZSBuZWVkIHRoZSBzZWN1cml0eSBncm91cCBub3QgYmVsb25nIHRvIFZQQywgZm9yIFZQQyBpbnN0YW5jZSwgcGxlYXNlIG1ha2Ugc3VyZSB0aGUgc2VjdXJpdHkgZ3JvdXAgYmVsb25nIHRvIHNwZWNpZmllZCBWUEMuXG4gICAgICovXG4gICAgcmVhZG9ubHkgc2VjdXJpdHlHcm91cElkPzogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgc2VjdXJpdHlHcm91cElkczogVGhlIElEIGxpc3Qgb2Ygc2VjdXJpdHkgZ3JvdXAgdG8gd2hpY2ggdG8gYXNzaWduIHRoZSBpbnN0YW5jZS4gVGhlIG1heCBsZW5ndGggaXMgYmFzZWQgb24gdGhlIG1heGltdW0gbnVtYmVyIG9mIHNlY3VyaXR5IGdyb3VwcyB0byB3aGljaCBhbiBpbnN0YW5jZSBjYW4gYmVsb25nLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIHRoZSBcIlNlY3VyaXR5IGdyb3VwIGxpbWl0c1wiIHNlY3Rpb24gaW4gTGltaXRzLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHNlY3VyaXR5R3JvdXBJZHM/OiBBcnJheTxzdHJpbmcgfCByb3MuSVJlc29sdmFibGU+IHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgc3BvdER1cmF0aW9uOiBUaGUgcHJvdGVjdGlvbiBwZXJpb2Qgb2YgdGhlIHByZWVtcHRpYmxlIGluc3RhbmNlLiBVbml0OiBob3Vycy4gVmFsaWQgdmFsdWVzOiAwLCAxLCAyLCAzLCA0LCA1LCBhbmQgNi5cbiAgICAgKiBQcm90ZWN0aW9uIHBlcmlvZHMgb2YgMiwgMywgNCwgNSwgYW5kIDYgaG91cnMgYXJlIGluIGludml0YXRpb25hbCBwcmV2aWV3LiBJZiB5b3Ugd2FudCB0byBzZXQgdGhpcyBwYXJhbWV0ZXIgdG8gb25lIG9mIHRoZXNlIHZhbHVlcywgc3VibWl0IGEgdGlja2V0LlxuICAgICAqIElmIHRoaXMgcGFyYW1ldGVyIGlzIHNldCB0byAwLCBubyBwcm90ZWN0aW9uIHBlcmlvZCBpcyBjb25maWd1cmVkIGZvciB0aGUgcHJlZW1wdGlibGUgaW5zdGFuY2UuXG4gICAgICogRGVmYXVsdCB2YWx1ZTogMS5cbiAgICAgKi9cbiAgICByZWFkb25seSBzcG90RHVyYXRpb24/OiBudW1iZXIgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBzcG90SW50ZXJydXB0aW9uQmVoYXZpb3I6IFRoZSBpbnRlcnJ1cHRpb24gbW9kZSBvZiB0aGUgcHJlZW1wdGlibGUgaW5zdGFuY2UuIERlZmF1bHQgdmFsdWU6IFRlcm1pbmF0ZS4gU2V0IHRoZSB2YWx1ZSB0byBUZXJtaW5hdGUsIHdoaWNoIHNwZWNpZmllcyB0byByZWxlYXNlIHRoZSBpbnN0YW5jZS5cbiAgICAgKi9cbiAgICByZWFkb25seSBzcG90SW50ZXJydXB0aW9uQmVoYXZpb3I/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBzcG90UHJpY2VMaW1pdDogVGhlIGhvdXJseSBwcmljZSB0aHJlc2hvbGQgb2YgYSBpbnN0YW5jZSwgYW5kIGl0IHRha2VzIGVmZmVjdCBvbmx5IHdoZW4gcGFyYW1ldGVyIEluc3RhbmNlQ2hhcmdlVHlwZSBpcyBQb3N0UGFpZC4gVGhyZWUgZGVjaW1hbHMgaXMgYWxsb3dlZCBhdCBtb3N0LlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHNwb3RQcmljZUxpbWl0Pzogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgc3BvdFN0cmF0ZWd5OiBUaGUgc3BvdCBzdHJhdGVneSBvZiBhIFBheS1Bcy1Zb3UtR28gaW5zdGFuY2UsIGFuZCBpdCB0YWtlcyBlZmZlY3Qgb25seSB3aGVuIHBhcmFtZXRlciBJbnN0YW5jZUNoYXJnZVR5cGUgaXMgUG9zdFBhaWQuIFZhbHVlIHJhbmdlOiBcIk5vU3BvdDogQSByZWd1bGFyIFBheS1Bcy1Zb3UtR28gaW5zdGFuY2VcIiwgXCJTcG90V2l0aFByaWNlTGltaXQ6IEEgcHJpY2UgdGhyZXNob2xkIGZvciBhIHNwb3QgaW5zdGFuY2UsIFwiXCJTcG90QXNQcmljZUdvOiBBIHByaWNlIHRoYXQgaXMgYmFzZWQgb24gdGhlIGhpZ2hlc3QgUGF5LUFzLVlvdS1HbyBpbnN0YW5jZS4gXCJEZWZhdWx0IHZhbHVlOiBOb1Nwb3QuXG4gICAgICovXG4gICAgcmVhZG9ubHkgc3BvdFN0cmF0ZWd5Pzogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgc3RvcmFnZVNldElkOiBUaGUgc3RvcmFnZSBzZXQgSUQuXG4gICAgICovXG4gICAgcmVhZG9ubHkgc3RvcmFnZVNldElkPzogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgc3RvcmFnZVNldFBhcnRpdGlvbk51bWJlcjogVGhlIG1heGltdW0gbnVtYmVyIG9mIHBhcnRpdGlvbnMgaW4gdGhlIHN0b3JhZ2Ugc2V0LiBUaGUgdmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gMi5cbiAgICAgKi9cbiAgICByZWFkb25seSBzdG9yYWdlU2V0UGFydGl0aW9uTnVtYmVyPzogbnVtYmVyIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgc3lzdGVtRGlza0NhdGVnb3J5OiBDYXRlZ29yeSBvZiBzeXN0ZW0gZGlzay4gRGVmYXVsdCBpcyBjbG91ZF9lZmZpY2llbmN5LiBzdXBwb3J0IGNsb3VkfGNsb3VkX2VmZmljaWVuY3l8Y2xvdWRfc3NkfGNsb3VkX2Vzc2R8ZXBoZW1lcmFsX3NzZHxjbG91ZF9hdXRvfGNsb3VkX2Vzc2RfZW50cnlcbiAgICAgKi9cbiAgICByZWFkb25seSBzeXN0ZW1EaXNrQ2F0ZWdvcnk/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBzeXN0ZW1EaXNrRGVzY3JpcHRpb246IERlc2NyaXB0aW9uIG9mIGNyZWF0ZWQgc3lzdGVtIGRpc2suXG4gICAgICovXG4gICAgcmVhZG9ubHkgc3lzdGVtRGlza0Rlc2NyaXB0aW9uPzogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgc3lzdGVtRGlza0Rpc2tOYW1lOiBOYW1lIG9mIGNyZWF0ZWQgc3lzdGVtIGRpc2suXG4gICAgICovXG4gICAgcmVhZG9ubHkgc3lzdGVtRGlza0Rpc2tOYW1lPzogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgc3lzdGVtRGlza1BlcmZvcm1hbmNlTGV2ZWw6IFRoZSBwZXJmb3JtYW5jZSBsZXZlbCBvZiB0aGUgZW5oYW5jZWQgU1NEIHVzZWQgYXMgdGhlIHN5c3RlbSBkaXNrLkRlZmF1bHQgdmFsdWU6IFBMMS4gVmFsaWQgdmFsdWVzOlBMMDogQSBzaW5nbGUgZW5oYW5jZWQgU1NEIGRlbGl2ZXJzIHVwIHRvIDEwLDAwMCByYW5kb20gcmVhZFxcL3dyaXRlIElPUFMuUEwxOiBBIHNpbmdsZSBlbmhhbmNlZCBTU0QgZGVsaXZlcnMgdXAgdG8gNTAsMDAwIHJhbmRvbSByZWFkXFwvd3JpdGUgSU9QUy5QTDI6IEEgc2luZ2xlIGVuaGFuY2VkIFNTRCBkZWxpdmVycyB1cCB0byAxMDAsMDAwIHJhbmRvbSByZWFkXFwvd3JpdGUgSU9QUy5QTDM6IEEgc2luZ2xlIGVuaGFuY2VkIFNTRCBkZWxpdmVycyB1cCB0byAxLDAwMCwwMDAgcmFuZG9tIHJlYWRcXC93cml0ZSBJT1BTLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHN5c3RlbURpc2tQZXJmb3JtYW5jZUxldmVsPzogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgc3lzdGVtRGlza1NpemU6IERpc2sgc2l6ZSBvZiB0aGUgc3lzdGVtIGRpc2ssIHJhbmdlIGZyb20gMjAgdG8gNTAwIEdCLiBJZiB5b3Ugc3BlY2lmeSB3aXRoIHlvdXIgb3duIGltYWdlLCBtYWtlIHN1cmUgdGhlIHN5c3RlbSBkaXNrIHNpemUgYmlnZ2VyIHRoYW4gaW1hZ2Ugc2l6ZS5cbiAgICAgKi9cbiAgICByZWFkb25seSBzeXN0ZW1EaXNrU2l6ZT86IG51bWJlciB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IHRhZ3M6IFRhZ3MgdG8gYXR0YWNoIHRvIGluc3RhbmNlLiBNYXggc3VwcG9ydCAyMCB0YWdzIHRvIGFkZCBkdXJpbmcgY3JlYXRlIGluc3RhbmNlLiBFYWNoIHRhZyB3aXRoIHR3byBwcm9wZXJ0aWVzIEtleSBhbmQgVmFsdWUsIGFuZCBLZXkgaXMgcmVxdWlyZWQuXG4gICAgICovXG4gICAgcmVhZG9ubHkgdGFncz86IFJvc0luc3RhbmNlLlRhZ3NQcm9wZXJ0eVtdO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgdGVuYW5jeTogU3BlY2lmaWVzIHdoZXRoZXIgdG8gY3JlYXRlIHRoZSBpbnN0YW5jZSBvbiBhIGRlZGljYXRlZCBob3N0LiBWYWxpZCB2YWx1ZXM6XG4gICAgICogLSAqKmRlZmF1bHQqKjogY3JlYXRlcyB0aGUgaW5zdGFuY2Ugb24gYSBub24tZGVkaWNhdGVkIGhvc3QuXG4gICAgICogLSAqKmhvc3QqKjogY3JlYXRlcyB0aGUgaW5zdGFuY2Ugb24gYSBkZWRpY2F0ZWQgaG9zdC4gSWYgeW91IGRvIG5vdCBzcGVjaWZ5ICoqRGVkaWNhdGVkSG9zdElkKiosIEFsaWJhYmEgQ2xvdWQgc2VsZWN0cyBhIGRlZGljYXRlZCBob3N0IGZvciB0aGUgaW5zdGFuY2UuXG4gICAgICogRGVmYXVsdCB2YWx1ZTogKipkZWZhdWx0KiouXG4gICAgICovXG4gICAgcmVhZG9ubHkgdGVuYW5jeT86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IHVzZUFkZGl0aW9uYWxTZXJ2aWNlOiBTcGVjaWZpZXMgd2hldGhlciB0byB1c2UgdGhlIHN5c3RlbSBjb25maWd1cmF0aW9ucyBmb3IgdmlydHVhbCBtYWNoaW5lcyBwcm92aWRlZCBieSBBbGliYWJhIENsb3VkLiBTeXN0ZW0gY29uZmlndXJhdGlvbnMgZm9yIFdpbmRvd3M6IE5UUCBhbmQgS01TLiBTeXN0ZW0gY29uZmlndXJhdGlvbnMgZm9yIExpbnV4OiBOVFAgYW5kIFlVTS5cbiAgICAgKi9cbiAgICByZWFkb25seSB1c2VBZGRpdGlvbmFsU2VydmljZT86IGJvb2xlYW4gfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSB1c2VyRGF0YTogVXNlciBkYXRhIHRvIHBhc3MgdG8gaW5zdGFuY2UuIFsxLCAxNktCXSBjaGFyYWN0ZXJzLlVzZXIgZGF0YSBzaG91bGQgbm90IGJlIGJhc2U2NCBlbmNvZGVkLiBJZiB5b3Ugd2FudCB0byBwYXNzIGJhc2U2NCBlbmNvZGVkIHN0cmluZyB0byB0aGUgcHJvcGVydHksIHVzZSBmdW5jdGlvbiBGbjo6QmFzZTY0RGVjb2RlIHRvIGRlY29kZSB0aGUgYmFzZTY0IHN0cmluZyBmaXJzdC5cbiAgICAgKi9cbiAgICByZWFkb25seSB1c2VyRGF0YT86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IHZwY0lkOiBUaGUgVlBDIGlkIHRvIGNyZWF0ZSBlY3MgaW5zdGFuY2UuXG4gICAgICovXG4gICAgcmVhZG9ubHkgdnBjSWQ/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSB2U3dpdGNoSWQ6IFRoZSB2U3dpdGNoIElkIHRvIGNyZWF0ZSBlY3MgaW5zdGFuY2UuXG4gICAgICovXG4gICAgcmVhZG9ubHkgdlN3aXRjaElkPzogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgem9uZUlkOiBUaGUgSUQgb2YgdGhlIHpvbmUgdG8gd2hpY2ggdGhlIGluc3RhbmNlIGJlbG9uZ3MuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBcbiAgICAgKiBjYWxsIHRoZSBEZXNjcmliZVpvbmVzIG9wZXJhdGlvbiB0byBxdWVyeSB0aGUgbW9zdCByZWNlbnQgem9uZSBsaXN0LiBcbiAgICAgKiBEZWZhdWx0IHZhbHVlIGlzIGVtcHR5LCB3aGljaCBtZWFucyByYW5kb20gc2VsZWN0aW9uLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHpvbmVJZD86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IHpvbmVJZHM6IFpvbmUgaWRzIGZvciBxdWVyeSBwYXJhbWV0ZXJzXG4gICAgICovXG4gICAgcmVhZG9ubHkgem9uZUlkcz86IEFycmF5PHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZT4gfCByb3MuSVJlc29sdmFibGU7XG59XG5cbi8qKlxuICogVGhpcyBjbGFzcyBlbmNhcHN1bGF0ZXMgYW5kIGV4dGVuZHMgdGhlIFJPUyByZXNvdXJjZSB0eXBlIGBBTElZVU46OkVDUzo6SW5zdGFuY2VgLCB3aGljaCBpcyB1c2VkIHRvIGNyZWF0ZSBhbiBFbGFzdGljIENvbXB1dGUgU2VydmljZSAoRUNTKSBpbnN0YW5jZS5cbiAqIEBOb3RlIFRoaXMgY2xhc3MgbWF5IGhhdmUgc29tZSBuZXcgZnVuY3Rpb25zIHRvIGZhY2lsaXRhdGUgZGV2ZWxvcG1lbnQsIHNvIGl0IGlzIHJlY29tbWVuZGVkIHRvIHVzZSB0aGlzIGNsYXNzIGluc3RlYWQgb2YgYFJvc0luc3RhbmNlYGZvciBhIG1vcmUgY29udmVuaWVudCBkZXZlbG9wbWVudCBleHBlcmllbmNlLlxuICogU2VlIGh0dHBzOi8vd3d3LmFsaWJhYmFjbG91ZC5jb20vaGVscC9yb3MvZGV2ZWxvcGVyLXJlZmVyZW5jZS9hbGl5dW4tZWNzLWluc3RhbmNlXG4gKi9cbmV4cG9ydCBjbGFzcyBJbnN0YW5jZSBleHRlbmRzIHJvcy5SZXNvdXJjZSB7XG4gICAgcHJvdGVjdGVkIHNjb3BlOiByb3MuQ29uc3RydWN0O1xuICAgIHByb3RlY3RlZCBpZDogc3RyaW5nO1xuICAgIHByb3RlY3RlZCBwcm9wczogSW5zdGFuY2VQcm9wcztcbiAgICBwcm90ZWN0ZWQgZW5hYmxlUmVzb3VyY2VQcm9wZXJ0eUNvbnN0cmFpbnQ6IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBBdHRyaWJ1dGUgSG9zdE5hbWU6IEhvc3QgbmFtZSBvZiBjcmVhdGVkIGluc3RhbmNlLlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBhdHRySG9zdE5hbWU6IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIEF0dHJpYnV0ZSBJbm5lcklwOiBJbm5lciBJUCBhZGRyZXNzIG9mIHRoZSBzcGVjaWZpZWQgaW5zdGFuY2UuIE9ubHkgZm9yIGNsYXNzaWNhbCBpbnN0YW5jZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgYXR0cklubmVySXA6IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIEF0dHJpYnV0ZSBJbnN0YW5jZUlkOiBUaGUgaW5zdGFuY2UgSUQgb2YgY3JlYXRlZCBlY3MgaW5zdGFuY2VcbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgYXR0ckluc3RhbmNlSWQ6IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIEF0dHJpYnV0ZSBQcmltYXJ5TmV0d29ya0ludGVyZmFjZUlkOiBQcmltYXJ5IG5ldHdvcmsgaW50ZXJmYWNlIElEIG9mIGNyZWF0ZWQgaW5zdGFuY2UuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGF0dHJQcmltYXJ5TmV0d29ya0ludGVyZmFjZUlkOiByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBBdHRyaWJ1dGUgUHJpdmF0ZUlwOiBQcml2YXRlIElQIGFkZHJlc3Mgb2YgY3JlYXRlZCBlY3MgaW5zdGFuY2UuIE9ubHkgZm9yIFZQQyBpbnN0YW5jZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgYXR0clByaXZhdGVJcDogcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogQXR0cmlidXRlIFB1YmxpY0lwOiBQdWJsaWMgSVAgYWRkcmVzcyBvZiBjcmVhdGVkIGVjcyBpbnN0YW5jZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgYXR0clB1YmxpY0lwOiByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBBdHRyaWJ1dGUgU2VjdXJpdHlHcm91cElkczogU2VjdXJpdHkgZ3JvdXAgSUQgbGlzdCBvZiBjcmVhdGVkIGluc3RhbmNlLlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBhdHRyU2VjdXJpdHlHcm91cElkczogcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogQXR0cmlidXRlIFpvbmVJZDogWm9uZSBJRCBvZiBjcmVhdGVkIGluc3RhbmNlLlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBhdHRyWm9uZUlkOiByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQYXJhbSBzY29wZSAtIHNjb3BlIGluIHdoaWNoIHRoaXMgcmVzb3VyY2UgaXMgZGVmaW5lZFxuICAgICAqIFBhcmFtIGlkICAgIC0gc2NvcGVkIGlkIG9mIHRoZSByZXNvdXJjZVxuICAgICAqIFBhcmFtIHByb3BzIC0gcmVzb3VyY2UgcHJvcGVydGllc1xuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKHNjb3BlOiByb3MuQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogSW5zdGFuY2VQcm9wcywgZW5hYmxlUmVzb3VyY2VQcm9wZXJ0eUNvbnN0cmFpbnQ6Ym9vbGVhbiA9IHRydWUpIHtcbiAgICAgICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgICAgICAgdGhpcy5zY29wZSA9IHNjb3BlO1xuICAgICAgICB0aGlzLmlkID0gaWQ7XG4gICAgICAgIHRoaXMucHJvcHMgPSBwcm9wcztcbiAgICAgICAgdGhpcy5lbmFibGVSZXNvdXJjZVByb3BlcnR5Q29uc3RyYWludCA9IGVuYWJsZVJlc291cmNlUHJvcGVydHlDb25zdHJhaW50O1xuXG4gICAgICAgIGNvbnN0IHJvc0luc3RhbmNlID0gbmV3IFJvc0luc3RhbmNlKHRoaXMsIGlkLCAge1xuICAgICAgICAgICAgZGVkaWNhdGVkSG9zdElkOiBwcm9wcy5kZWRpY2F0ZWRIb3N0SWQsXG4gICAgICAgICAgICByZXNvdXJjZUdyb3VwSWQ6IHByb3BzLnJlc291cmNlR3JvdXBJZCxcbiAgICAgICAgICAgIHN5c3RlbURpc2tEZXNjcmlwdGlvbjogcHJvcHMuc3lzdGVtRGlza0Rlc2NyaXB0aW9uLFxuICAgICAgICAgICAgaW5zdGFuY2VDaGFyZ2VUeXBlOiBwcm9wcy5pbnN0YW5jZUNoYXJnZVR5cGUgPT09IHVuZGVmaW5lZCB8fCBwcm9wcy5pbnN0YW5jZUNoYXJnZVR5cGUgPT09IG51bGwgPyAnUG9zdFBhaWQnIDogcHJvcHMuaW5zdGFuY2VDaGFyZ2VUeXBlLFxuICAgICAgICAgICAgcmFtUm9sZU5hbWU6IHByb3BzLnJhbVJvbGVOYW1lLFxuICAgICAgICAgICAgcHJpdmF0ZVBvb2xPcHRpb25zOiBwcm9wcy5wcml2YXRlUG9vbE9wdGlvbnMsXG4gICAgICAgICAgICBzeXN0ZW1EaXNrUGVyZm9ybWFuY2VMZXZlbDogcHJvcHMuc3lzdGVtRGlza1BlcmZvcm1hbmNlTGV2ZWwsXG4gICAgICAgICAgICBpbWFnZUlkOiBwcm9wcy5pbWFnZUlkLFxuICAgICAgICAgICAgc3lzdGVtRGlza0Rpc2tOYW1lOiBwcm9wcy5zeXN0ZW1EaXNrRGlza05hbWUsXG4gICAgICAgICAgICBzdG9yYWdlU2V0SWQ6IHByb3BzLnN0b3JhZ2VTZXRJZCxcbiAgICAgICAgICAgIHVzZUFkZGl0aW9uYWxTZXJ2aWNlOiBwcm9wcy51c2VBZGRpdGlvbmFsU2VydmljZSxcbiAgICAgICAgICAgIGhvc3ROYW1lOiBwcm9wcy5ob3N0TmFtZSxcbiAgICAgICAgICAgIHRhZ3M6IHByb3BzLnRhZ3MsXG4gICAgICAgICAgICB2U3dpdGNoSWQ6IHByb3BzLnZTd2l0Y2hJZCxcbiAgICAgICAgICAgIHBlcmlvZDogcHJvcHMucGVyaW9kID09PSB1bmRlZmluZWQgfHwgcHJvcHMucGVyaW9kID09PSBudWxsID8gMSA6IHByb3BzLnBlcmlvZCxcbiAgICAgICAgICAgIGltYWdlRmFtaWx5OiBwcm9wcy5pbWFnZUZhbWlseSxcbiAgICAgICAgICAgIGRlbGV0aW9uUHJvdGVjdGlvbjogcHJvcHMuZGVsZXRpb25Qcm90ZWN0aW9uLFxuICAgICAgICAgICAgaHR0cEVuZHBvaW50OiBwcm9wcy5odHRwRW5kcG9pbnQsXG4gICAgICAgICAgICBzZWN1cml0eUdyb3VwSWRzOiBwcm9wcy5zZWN1cml0eUdyb3VwSWRzLFxuICAgICAgICAgICAgaW50ZXJuZXRDaGFyZ2VUeXBlOiBwcm9wcy5pbnRlcm5ldENoYXJnZVR5cGUgPT09IHVuZGVmaW5lZCB8fCBwcm9wcy5pbnRlcm5ldENoYXJnZVR5cGUgPT09IG51bGwgPyAnUGF5QnlUcmFmZmljJyA6IHByb3BzLmludGVybmV0Q2hhcmdlVHlwZSxcbiAgICAgICAgICAgIHNwb3RJbnRlcnJ1cHRpb25CZWhhdmlvcjogcHJvcHMuc3BvdEludGVycnVwdGlvbkJlaGF2aW9yID09PSB1bmRlZmluZWQgfHwgcHJvcHMuc3BvdEludGVycnVwdGlvbkJlaGF2aW9yID09PSBudWxsID8gJ1Rlcm1pbmF0ZScgOiBwcm9wcy5zcG90SW50ZXJydXB0aW9uQmVoYXZpb3IsXG4gICAgICAgICAgICBpbnN0YW5jZU5hbWU6IHByb3BzLmluc3RhbmNlTmFtZSxcbiAgICAgICAgICAgIGRlcGxveW1lbnRTZXRJZDogcHJvcHMuZGVwbG95bWVudFNldElkLFxuICAgICAgICAgICAgaW50ZXJuZXRNYXhCYW5kd2lkdGhPdXQ6IHByb3BzLmludGVybmV0TWF4QmFuZHdpZHRoT3V0ID09PSB1bmRlZmluZWQgfHwgcHJvcHMuaW50ZXJuZXRNYXhCYW5kd2lkdGhPdXQgPT09IG51bGwgPyAxIDogcHJvcHMuaW50ZXJuZXRNYXhCYW5kd2lkdGhPdXQsXG4gICAgICAgICAgICB2cGNJZDogcHJvcHMudnBjSWQsXG4gICAgICAgICAgICBhZmZpbml0eTogcHJvcHMuYWZmaW5pdHksXG4gICAgICAgICAgICBzZWN1cml0eUVuaGFuY2VtZW50U3RyYXRlZ3k6IHByb3BzLnNlY3VyaXR5RW5oYW5jZW1lbnRTdHJhdGVneSxcbiAgICAgICAgICAgIHBlcmlvZFVuaXQ6IHByb3BzLnBlcmlvZFVuaXQgPT09IHVuZGVmaW5lZCB8fCBwcm9wcy5wZXJpb2RVbml0ID09PSBudWxsID8gJ01vbnRoJyA6IHByb3BzLnBlcmlvZFVuaXQsXG4gICAgICAgICAgICB0ZW5hbmN5OiBwcm9wcy50ZW5hbmN5LFxuICAgICAgICAgICAgcHJpdmF0ZUlwQWRkcmVzczogcHJvcHMucHJpdmF0ZUlwQWRkcmVzcyxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBwcm9wcy5kZXNjcmlwdGlvbixcbiAgICAgICAgICAgIGRpc2tNYXBwaW5nczogcHJvcHMuZGlza01hcHBpbmdzLFxuICAgICAgICAgICAgc3lzdGVtRGlza1NpemU6IHByb3BzLnN5c3RlbURpc2tTaXplLFxuICAgICAgICAgICAgdXNlckRhdGE6IHByb3BzLnVzZXJEYXRhLFxuICAgICAgICAgICAgYXV0b1JlbmV3OiBwcm9wcy5hdXRvUmVuZXcgPT09IHVuZGVmaW5lZCB8fCBwcm9wcy5hdXRvUmVuZXcgPT09IG51bGwgPyAnRmFsc2UnIDogcHJvcHMuYXV0b1JlbmV3LFxuICAgICAgICAgICAgc3BvdER1cmF0aW9uOiBwcm9wcy5zcG90RHVyYXRpb24sXG4gICAgICAgICAgICBzdG9yYWdlU2V0UGFydGl0aW9uTnVtYmVyOiBwcm9wcy5zdG9yYWdlU2V0UGFydGl0aW9uTnVtYmVyLFxuICAgICAgICAgICAgc3BvdFByaWNlTGltaXQ6IHByb3BzLnNwb3RQcmljZUxpbWl0LFxuICAgICAgICAgICAgem9uZUlkczogcHJvcHMuem9uZUlkcyxcbiAgICAgICAgICAgIGluc3RhbmNlVHlwZTogcHJvcHMuaW5zdGFuY2VUeXBlLFxuICAgICAgICAgICAgYWxsb2NhdGVQdWJsaWNJcDogcHJvcHMuYWxsb2NhdGVQdWJsaWNJcCA9PT0gdW5kZWZpbmVkIHx8IHByb3BzLmFsbG9jYXRlUHVibGljSXAgPT09IG51bGwgPyB0cnVlIDogcHJvcHMuYWxsb2NhdGVQdWJsaWNJcCxcbiAgICAgICAgICAgIHNwb3RTdHJhdGVneTogcHJvcHMuc3BvdFN0cmF0ZWd5LFxuICAgICAgICAgICAgcGFzc3dvcmRJbmhlcml0OiBwcm9wcy5wYXNzd29yZEluaGVyaXQsXG4gICAgICAgICAgICBwYXNzd29yZDogcHJvcHMucGFzc3dvcmQsXG4gICAgICAgICAgICBhdXRvUmVuZXdQZXJpb2Q6IHByb3BzLmF1dG9SZW5ld1BlcmlvZCA9PT0gdW5kZWZpbmVkIHx8IHByb3BzLmF1dG9SZW5ld1BlcmlvZCA9PT0gbnVsbCA/IDEgOiBwcm9wcy5hdXRvUmVuZXdQZXJpb2QsXG4gICAgICAgICAgICBrZXlQYWlyTmFtZTogcHJvcHMua2V5UGFpck5hbWUsXG4gICAgICAgICAgICBpb09wdGltaXplZDogcHJvcHMuaW9PcHRpbWl6ZWQgPT09IHVuZGVmaW5lZCB8fCBwcm9wcy5pb09wdGltaXplZCA9PT0gbnVsbCA/ICdvcHRpbWl6ZWQnIDogcHJvcHMuaW9PcHRpbWl6ZWQsXG4gICAgICAgICAgICB6b25lSWQ6IHByb3BzLnpvbmVJZCxcbiAgICAgICAgICAgIGhwY0NsdXN0ZXJJZDogcHJvcHMuaHBjQ2x1c3RlcklkLFxuICAgICAgICAgICAgc2VjdXJpdHlHcm91cElkOiBwcm9wcy5zZWN1cml0eUdyb3VwSWQsXG4gICAgICAgICAgICBkZXBsb3ltZW50U2V0R3JvdXBObzogcHJvcHMuZGVwbG95bWVudFNldEdyb3VwTm8sXG4gICAgICAgICAgICBzeXN0ZW1EaXNrQ2F0ZWdvcnk6IHByb3BzLnN5c3RlbURpc2tDYXRlZ29yeSA9PT0gdW5kZWZpbmVkIHx8IHByb3BzLnN5c3RlbURpc2tDYXRlZ29yeSA9PT0gbnVsbCA/ICdjbG91ZF9lZmZpY2llbmN5JyA6IHByb3BzLnN5c3RlbURpc2tDYXRlZ29yeSxcbiAgICAgICAgICAgIGh0dHBUb2tlbnM6IHByb3BzLmh0dHBUb2tlbnMsXG4gICAgICAgICAgICBjcmVkaXRTcGVjaWZpY2F0aW9uOiBwcm9wcy5jcmVkaXRTcGVjaWZpY2F0aW9uLFxuICAgICAgICB9LCBlbmFibGVSZXNvdXJjZVByb3BlcnR5Q29uc3RyYWludCAmJiB0aGlzLnN0YWNrLmVuYWJsZVJlc291cmNlUHJvcGVydHlDb25zdHJhaW50KTtcbiAgICAgICAgdGhpcy5yZXNvdXJjZSA9IHJvc0luc3RhbmNlO1xuICAgICAgICB0aGlzLmF0dHJIb3N0TmFtZSA9IHJvc0luc3RhbmNlLmF0dHJIb3N0TmFtZTtcbiAgICAgICAgdGhpcy5hdHRySW5uZXJJcCA9IHJvc0luc3RhbmNlLmF0dHJJbm5lcklwO1xuICAgICAgICB0aGlzLmF0dHJJbnN0YW5jZUlkID0gcm9zSW5zdGFuY2UuYXR0ckluc3RhbmNlSWQ7XG4gICAgICAgIHRoaXMuYXR0clByaW1hcnlOZXR3b3JrSW50ZXJmYWNlSWQgPSByb3NJbnN0YW5jZS5hdHRyUHJpbWFyeU5ldHdvcmtJbnRlcmZhY2VJZDtcbiAgICAgICAgdGhpcy5hdHRyUHJpdmF0ZUlwID0gcm9zSW5zdGFuY2UuYXR0clByaXZhdGVJcDtcbiAgICAgICAgdGhpcy5hdHRyUHVibGljSXAgPSByb3NJbnN0YW5jZS5hdHRyUHVibGljSXA7XG4gICAgICAgIHRoaXMuYXR0clNlY3VyaXR5R3JvdXBJZHMgPSByb3NJbnN0YW5jZS5hdHRyU2VjdXJpdHlHcm91cElkcztcbiAgICAgICAgdGhpcy5hdHRyWm9uZUlkID0gcm9zSW5zdGFuY2UuYXR0clpvbmVJZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGUgcHJlcmVxdWlzaXRlIHJlc291cmNlKHMpIHJlcXVpcmVkIHRvIGFuIEVDUyBpbnN0YW5jZTogVlBDLCBWU3dpdGNoLCBhbmQob3IpIHNlY3VyaXR5IGdyb3VwLlxuICAgICAqIEBwYXJhbSB6b25lSWQgUmVxdWlyZWQgd2hlbiBjcmVhdGluZyBhIFZTd2l0Y2guXG4gICAgICogQHBhcmFtIHZwY0NpZHJCbG9jayBPcHRpb25hbCB3aGVuIGNyZWF0aW5nIGEgVlBDLiBEZWZhdWx0IHZhbHVlIGlzIDE5Mi4xNjguMC4wLzE2LlxuICAgICAqIEBwYXJhbSB2U3dpdGNoQ2lkckJsb2NrIE9wdGlvbmFsIHdoZW4gY3JlYXRpbmcgYSBWU3dpdGNoLiBEZWZhdWx0IHZhbHVlIGlzIDE5Mi4xNjguMC4wLzI0LlxuICAgICAqIEBwYXJhbSB3aGV0aGVyQ3JlYXRlU2VjdXJpdHlHcm91cCBXaGV0aGVyIHRvIGNyZWF0ZSBhIHNlY3VyaXR5IGdyb3VwLiBEZWZhdWx0IHZhbHVlIGlzIHRydWUuXG4gICAgICovXG4gICAgcHVibGljIGF1dG9DcmVhdGVEZXBlbmRlbmNpZXMoem9uZUlkOiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGUgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdnBjQ2lkckJsb2NrOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdlN3aXRjaENpZHJCbG9jazogc3RyaW5nIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdoZXRoZXJDcmVhdGVTZWN1cml0eUdyb3VwOiBCb29sZWFuID0gdHJ1ZSk6IGFueVtdIHtcbiAgICAgICAgbGV0IHZwYyA9IHVuZGVmaW5lZDtcbiAgICAgICAgbGV0IHZTd2l0Y2ggPSB1bmRlZmluZWQ7XG4gICAgICAgIGxldCBzZWN1cml0eUdyb3VwID0gdW5kZWZpbmVkO1xuICAgICAgICBsZXQgdnBjSWQ6IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZSB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgICAgICAgbGV0IHZTd2l0Y2hJZDogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICAgICAgICBsZXQgc2VjdXJpdHlHcm91cElkOiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGUgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gICAgICAgIGxldCBpbnN0YW5jZSA9IHRoaXMucmVzb3VyY2UgYXMgUm9zSW5zdGFuY2U7XG5cbiAgICAgICAgaWYgKGluc3RhbmNlLnZTd2l0Y2hJZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB6b25lSWQgPSB6b25lSWQgfHwgaW5zdGFuY2Uuem9uZUlkO1xuICAgICAgICAgICAgaWYgKHpvbmVJZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCd6b25lSWQgaXMgcmVxdWlyZWQgd2hlbiBjcmVhdGluZyBhIFZTd2l0Y2guJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaW5zdGFuY2UudnBjSWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIGlmICgodnBjQ2lkckJsb2NrID09PSB1bmRlZmluZWQpICE9PSAodlN3aXRjaENpZHJCbG9jayA9PT0gdW5kZWZpbmVkKSkge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0JvdGggdnBjQ2lkckJsb2NrIGFuZCB2U3dpdGNoQ2lkckJsb2NrIG11c3QgYmUgc3BlY2lmaWVkIG9yIG5laXRoZXIuJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHZwY0NpZHJCbG9jayA9IHZwY0NpZHJCbG9jayB8fCAnMTkyLjE2OC4wLjAvMTYnO1xuICAgICAgICAgICAgICAgIHZwYyA9IG5ldyBWcGModGhpcy5zY29wZSwgYEF1dG9DcmVhdGVkVnBjRm9yJHt0aGlzLmlkfWAsIHtcbiAgICAgICAgICAgICAgICAgICAgY2lkckJsb2NrOiB2cGNDaWRyQmxvY2ssXG4gICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnVGhpcyBpcyBhdXRvIGNyZWF0ZWQgYnkgUk9TLUNESy4nLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHZwY0lkID0gdnBjLmF0dHJWcGNJZDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdnBjSWQgPSBpbnN0YW5jZS52cGNJZFxuICAgICAgICAgICAgICAgIGlmICh2U3dpdGNoQ2lkckJsb2NrID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCd2U3dpdGNoQ2lkckJsb2NrIGlzIG1hbmRhdG9yeSB3aGVuIGdpdmluZyBhIFZwYyBhbmQgY3JlYXRpbmcgYSBWU3dpdGNoLicpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHZTd2l0Y2hDaWRyQmxvY2sgPSB2U3dpdGNoQ2lkckJsb2NrIHx8ICcxOTIuMTY4LjAuMC8yNCc7XG4gICAgICAgICAgICB2U3dpdGNoID0gbmV3IFZTd2l0Y2godGhpcy5zY29wZSwgYEF1dG9DcmVhdGVkVlN3aXRjaEZvciR7dGhpcy5pZH1gLCB7XG4gICAgICAgICAgICAgICAgdnBjSWQ6IHZwY0lkLFxuICAgICAgICAgICAgICAgIGNpZHJCbG9jazogdlN3aXRjaENpZHJCbG9jayxcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1RoaXMgaXMgYXV0byBjcmVhdGVkIGJ5IFJPUy1DREsuJyxcbiAgICAgICAgICAgICAgICB6b25lSWQ6IHpvbmVJZCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdlN3aXRjaElkID0gdlN3aXRjaC5hdHRyVlN3aXRjaElkO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdlN3aXRjaElkID0gaW5zdGFuY2UudlN3aXRjaElkO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHdoZXRoZXJDcmVhdGVTZWN1cml0eUdyb3VwICYmIGluc3RhbmNlLnNlY3VyaXR5R3JvdXBJZCA9PT0gdW5kZWZpbmVkICYmIGluc3RhbmNlLnNlY3VyaXR5R3JvdXBJZHMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgc2VjdXJpdHlHcm91cCA9IG5ldyBTZWN1cml0eUdyb3VwKHRoaXMuc2NvcGUsIGBBdXRvQ3JlYXRlZFNlY3VyaXR5R3JvdXBGb3Ike3RoaXMuaWR9YCwge1xuICAgICAgICAgICAgICAgIHZwY0lkOiB2cGNJZCxcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1RoaXMgaXMgYXV0byBjcmVhdGVkIGJ5IFJPUy1DREsuJyxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgc2VjdXJpdHlHcm91cElkID0gc2VjdXJpdHlHcm91cC5hdHRyU2VjdXJpdHlHcm91cElkO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc2VjdXJpdHlHcm91cElkID0gaW5zdGFuY2Uuc2VjdXJpdHlHcm91cElkO1xuICAgICAgICB9XG5cbiAgICAgICAgaW5zdGFuY2UudnBjSWQgPSB2cGNJZFxuICAgICAgICBpbnN0YW5jZS52U3dpdGNoSWQgPSB2U3dpdGNoSWRcbiAgICAgICAgaW5zdGFuY2Uuc2VjdXJpdHlHcm91cElkID0gc2VjdXJpdHlHcm91cElkO1xuXG4gICAgICAgIHJldHVybiBbdnBjLCB2U3dpdGNoLCBzZWN1cml0eUdyb3VwXTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGQgb25lIG9yIG1vcmUgc2VjdXJpdHkgZ3JvdXBzIHRvIGFuIEVDUyBpbnN0YW5jZS5cbiAgICAgKiBAcGFyYW0gc2VjdXJpdHlHcm91cHMgU2VjdXJpdHkgZ3JvdXBzIG9yIHNlY3VyaXR5IGdyb3VwIElEcy5cbiAgICAgKi9cbiAgICBwdWJsaWMgYWRkU2VjdXJpdHlHcm91cHMoLi4uc2VjdXJpdHlHcm91cHM6IChTZWN1cml0eUdyb3VwIHwgc3RyaW5nKVtdKSB7XG4gICAgICAgIGxldCBpbnN0YW5jZSA9IHRoaXMucmVzb3VyY2UgYXMgUm9zSW5zdGFuY2U7XG4gICAgICAgIGxldCBvcmlnaW5hbFNlY3VyaXR5R3JvdXBJZHMgPSBpbnN0YW5jZS5zZWN1cml0eUdyb3VwSWRzO1xuICAgICAgICBsZXQgbmV3U2VjdXJpdHlHcm91cElkczogQXJyYXk8c3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlPiB8IHJvcy5JUmVzb2x2YWJsZSA9IFtdO1xuICAgICAgICBpZiAoaW5zdGFuY2Uuc2VjdXJpdHlHcm91cElkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIG5ld1NlY3VyaXR5R3JvdXBJZHMucHVzaChpbnN0YW5jZS5zZWN1cml0eUdyb3VwSWQpO1xuICAgICAgICB9XG4gICAgICAgIGZvciAobGV0IHNlY3VyaXR5R3JvdXAgb2Ygc2VjdXJpdHlHcm91cHMpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2Ygc2VjdXJpdHlHcm91cCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICBuZXdTZWN1cml0eUdyb3VwSWRzLnB1c2goc2VjdXJpdHlHcm91cCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG5ld1NlY3VyaXR5R3JvdXBJZHMucHVzaChzZWN1cml0eUdyb3VwLmF0dHJTZWN1cml0eUdyb3VwSWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChyb3MuaXNSZXNvbHZhYmxlT2JqZWN0KG9yaWdpbmFsU2VjdXJpdHlHcm91cElkcykpIHtcbiAgICAgICAgICAgIG5ld1NlY3VyaXR5R3JvdXBJZHMgPSByb3MuRm4ubGlzdE1lcmdlKFtvcmlnaW5hbFNlY3VyaXR5R3JvdXBJZHMsIG5ld1NlY3VyaXR5R3JvdXBJZHNdKTtcbiAgICAgICAgfSBlbHNlIGlmIChvcmlnaW5hbFNlY3VyaXR5R3JvdXBJZHMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgbmV3U2VjdXJpdHlHcm91cElkcyA9IG9yaWdpbmFsU2VjdXJpdHlHcm91cElkcy5jb25jYXQobmV3U2VjdXJpdHlHcm91cElkcyk7XG4gICAgICAgIH1cblxuICAgICAgICBpbnN0YW5jZS5zZWN1cml0eUdyb3VwSWQgPSB1bmRlZmluZWQ7XG4gICAgICAgIGluc3RhbmNlLnNlY3VyaXR5R3JvdXBJZHMgPSBuZXdTZWN1cml0eUdyb3VwSWRzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCBvbmUgb3IgbW9yZSBjb21tYW5kcyB0byB0aGUgdXNlcmRhdGEgb2YgYW4gRUNTIGluc3RhbmNlLlxuICAgICAqIEBwYXJhbSBjb21tYW5kcyBDb21tYW5kcyB0byBiZSBhZGRlZC5cbiAgICAgKi9cbiAgICBwdWJsaWMgYWRkVXNlckRhdGFDb21tYW5kcyguLi5jb21tYW5kczogKHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZSlbXSk6IHZvaWQge1xuICAgICAgICBsZXQgaW5zdGFuY2UgPSB0aGlzLnJlc291cmNlIGFzIFJvc0luc3RhbmNlO1xuICAgICAgICBsZXQgY29tbWFuZHNBc1N0cmluZzogKHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZSlbXSA9IFtdO1xuICAgICAgICBpZiAoaW5zdGFuY2UudXNlckRhdGEgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgY29tbWFuZHNBc1N0cmluZy5wdXNoKGluc3RhbmNlLnVzZXJEYXRhKTtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGxldCBjb21tYW5kIG9mIGNvbW1hbmRzKSB7XG4gICAgICAgICAgICBpZiAocm9zLmlzUmVzb2x2YWJsZU9iamVjdChjb21tYW5kKSkge1xuICAgICAgICAgICAgICAgIGNvbW1hbmQgPSBjb21tYW5kLnRvU3RyaW5nKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb21tYW5kc0FzU3RyaW5nLnB1c2goY29tbWFuZCk7XG4gICAgICAgIH1cbiAgICAgICAgaW5zdGFuY2UudXNlckRhdGEgPSByb3MuRm4uam9pbignXFxuJywgY29tbWFuZHNBc1N0cmluZyk7XG4gICAgfVxufVxuIl19
|
package/lib/instanceclone.d.ts
CHANGED
|
@@ -2,7 +2,8 @@ import * as ros from '@alicloud/ros-cdk-core';
|
|
|
2
2
|
import { RosInstanceClone } from './ecs.generated';
|
|
3
3
|
export { RosInstanceClone as InstanceCloneProperty };
|
|
4
4
|
/**
|
|
5
|
-
* Properties for defining a `
|
|
5
|
+
* Properties for defining a `InstanceClone`.
|
|
6
|
+
* See https://www.alibabacloud.com/help/ros/developer-reference/aliyun-ecs-instanceclone
|
|
6
7
|
*/
|
|
7
8
|
export interface InstanceCloneProps {
|
|
8
9
|
/**
|
|
@@ -90,13 +91,15 @@ export interface InstanceCloneProps {
|
|
|
90
91
|
readonly zoneId?: string | ros.IResolvable;
|
|
91
92
|
}
|
|
92
93
|
/**
|
|
93
|
-
*
|
|
94
|
+
* This class encapsulates and extends the ROS resource type `ALIYUN::ECS::InstanceClone`, which is used to clone an Elastic Compute Service (ECS) instance.
|
|
95
|
+
* @Note This class may have some new functions to facilitate development, so it is recommended to use this class instead of `RosInstanceClone`for a more convenient development experience.
|
|
96
|
+
* See https://www.alibabacloud.com/help/ros/developer-reference/aliyun-ecs-instanceclone
|
|
94
97
|
*/
|
|
95
98
|
export declare class InstanceClone extends ros.Resource {
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
99
|
+
protected scope: ros.Construct;
|
|
100
|
+
protected id: string;
|
|
101
|
+
protected props: InstanceCloneProps;
|
|
102
|
+
protected enableResourcePropertyConstraint: boolean;
|
|
100
103
|
/**
|
|
101
104
|
* Attribute HostName: Host name of created instance.
|
|
102
105
|
*/
|
|
@@ -130,8 +133,6 @@ export declare class InstanceClone extends ros.Resource {
|
|
|
130
133
|
*/
|
|
131
134
|
readonly attrZoneId: ros.IResolvable;
|
|
132
135
|
/**
|
|
133
|
-
* Create a new `ALIYUN::ECS::InstanceClone`.
|
|
134
|
-
*
|
|
135
136
|
* Param scope - scope in which this resource is defined
|
|
136
137
|
* Param id - scoped id of the resource
|
|
137
138
|
* Param props - resource properties
|
package/lib/instanceclone.js
CHANGED
|
@@ -5,18 +5,22 @@ const ros = require("@alicloud/ros-cdk-core");
|
|
|
5
5
|
const ecs_generated_1 = require("./ecs.generated");
|
|
6
6
|
Object.defineProperty(exports, "InstanceCloneProperty", { enumerable: true, get: function () { return ecs_generated_1.RosInstanceClone; } });
|
|
7
7
|
/**
|
|
8
|
-
*
|
|
8
|
+
* This class encapsulates and extends the ROS resource type `ALIYUN::ECS::InstanceClone`, which is used to clone an Elastic Compute Service (ECS) instance.
|
|
9
|
+
* @Note This class may have some new functions to facilitate development, so it is recommended to use this class instead of `RosInstanceClone`for a more convenient development experience.
|
|
10
|
+
* See https://www.alibabacloud.com/help/ros/developer-reference/aliyun-ecs-instanceclone
|
|
9
11
|
*/
|
|
10
12
|
class InstanceClone extends ros.Resource {
|
|
11
13
|
/**
|
|
12
|
-
* Create a new `ALIYUN::ECS::InstanceClone`.
|
|
13
|
-
*
|
|
14
14
|
* Param scope - scope in which this resource is defined
|
|
15
15
|
* Param id - scoped id of the resource
|
|
16
16
|
* Param props - resource properties
|
|
17
17
|
*/
|
|
18
18
|
constructor(scope, id, props, enableResourcePropertyConstraint = true) {
|
|
19
19
|
super(scope, id);
|
|
20
|
+
this.scope = scope;
|
|
21
|
+
this.id = id;
|
|
22
|
+
this.props = props;
|
|
23
|
+
this.enableResourcePropertyConstraint = enableResourcePropertyConstraint;
|
|
20
24
|
const rosInstanceClone = new ecs_generated_1.RosInstanceClone(this, id, {
|
|
21
25
|
backendServerWeight: props.backendServerWeight === undefined || props.backendServerWeight === null ? 100 : props.backendServerWeight,
|
|
22
26
|
keyPairName: props.keyPairName,
|
|
@@ -51,4 +55,4 @@ class InstanceClone extends ros.Resource {
|
|
|
51
55
|
}
|
|
52
56
|
}
|
|
53
57
|
exports.InstanceClone = InstanceClone;
|
|
54
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdGFuY2VjbG9uZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImluc3RhbmNlY2xvbmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsOENBQThDO0FBQzlDLG1EQUFtRDtBQUV0QixzR0FGcEIsZ0NBQWdCLE9BRXlCO0FBK0dsRDs7R0FFRztBQUNILE1BQWEsYUFBYyxTQUFRLEdBQUcsQ0FBQyxRQUFRO0lBK0MzQzs7Ozs7O09BTUc7SUFDSCxZQUFZLEtBQW9CLEVBQUUsRUFBVSxFQUFFLEtBQXlCLEVBQUUsbUNBQTJDLElBQUk7UUFDcEgsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixNQUFNLGdCQUFnQixHQUFHLElBQUksZ0NBQWdCLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRztZQUNyRCxtQkFBbUIsRUFBRSxLQUFLLENBQUMsbUJBQW1CLEtBQUssU0FBUyxJQUFJLEtBQUssQ0FBQyxtQkFBbUIsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLG1CQUFtQjtZQUNwSSxXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVc7WUFDOUIsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXO1lBQzlCLFlBQVksRUFBRSxLQUFLLENBQUMsWUFBWTtZQUNoQyxlQUFlLEVBQUUsS0FBSyxDQUFDLGVBQWU7WUFDdEMsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNO1lBQ3BCLGtCQUFrQixFQUFFLEtBQUssQ0FBQyxrQkFBa0IsS0FBSyxTQUFTLElBQUksS0FBSyxDQUFDLGtCQUFrQixLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsa0JBQWtCO1lBQ3ZJLGVBQWUsRUFBRSxLQUFLLENBQUMsZUFBZTtZQUN0QyxNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU0sS0FBSyxTQUFTLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU07WUFDOUUsa0JBQWtCLEVBQUUsS0FBSyxDQUFDLGtCQUFrQjtZQUM1QyxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsZ0JBQWdCO1lBQ3hDLHNCQUFzQixFQUFFLEtBQUssQ0FBQyxzQkFBc0I7WUFDcEQsWUFBWSxFQUFFLEtBQUssQ0FBQyxZQUFZO1lBQ2hDLFdBQVcsRUFBRSxLQUFLLENBQUMsV0FBVztZQUM5QixzQkFBc0IsRUFBRSxLQUFLLENBQUMsc0JBQXNCLEtBQUssU0FBUyxJQUFJLEtBQUssQ0FBQyxzQkFBc0IsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLHNCQUFzQjtZQUNoSixPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU87WUFDdEIsY0FBYyxFQUFFLEtBQUssQ0FBQyxjQUFjO1lBQ3BDLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTtZQUNoQixZQUFZLEVBQUUsS0FBSyxDQUFDLFlBQVk7WUFDaEMsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRO1NBQzNCLEVBQUUsZ0NBQWdDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO1FBQ3BGLElBQUksQ0FBQyxRQUFRLEdBQUcsZ0JBQWdCLENBQUM7UUFDakMsSUFBSSxDQUFDLFlBQVksR0FBRyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUM7UUFDbEQsSUFBSSxDQUFDLFdBQVcsR0FBRyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUM7UUFDaEQsSUFBSSxDQUFDLGNBQWMsR0FBRyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUM7UUFDdEQsSUFBSSxDQUFDLDZCQUE2QixHQUFHLGdCQUFnQixDQUFDLDZCQUE2QixDQUFDO1FBQ3BGLElBQUksQ0FBQyxhQUFhLEdBQUcsZ0JBQWdCLENBQUMsYUFBYSxDQUFDO1FBQ3BELElBQUksQ0FBQyxZQUFZLEdBQUcsZ0JBQWdCLENBQUMsWUFBWSxDQUFDO1FBQ2xELElBQUksQ0FBQyxvQkFBb0IsR0FBRyxnQkFBZ0IsQ0FBQyxvQkFBb0IsQ0FBQztRQUNsRSxJQUFJLENBQUMsVUFBVSxHQUFHLGdCQUFnQixDQUFDLFVBQVUsQ0FBQztJQUNsRCxDQUFDO0NBQ0o7QUF6RkQsc0NBeUZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcm9zIGZyb20gJ0BhbGljbG91ZC9yb3MtY2RrLWNvcmUnO1xuaW1wb3J0IHsgUm9zSW5zdGFuY2VDbG9uZSB9IGZyb20gJy4vZWNzLmdlbmVyYXRlZCc7XG4vLyBHZW5lcmF0ZWQgZnJvbSB0aGUgQWxpQ2xvdWQgUk9TIFJlc291cmNlIFNwZWNpZmljYXRpb25cbmV4cG9ydCB7IFJvc0luc3RhbmNlQ2xvbmUgYXMgSW5zdGFuY2VDbG9uZVByb3BlcnR5IH07XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgZGVmaW5pbmcgYSBgQUxJWVVOOjpFQ1M6Okluc3RhbmNlQ2xvbmVgXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW5zdGFuY2VDbG9uZVByb3BzIHtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IHNvdXJjZUluc3RhbmNlSWQ6IFNvdXJjZSBlY3MgaW5zdGFuY2UgdXNlZCB0byBjb3B5IHByb3BlcnRpZXMgdG8gY2xvbmUgbmV3IGVjcyBpbnN0YW5jZS4gSXQgd2lsbCBjb3B5IHRoZSBJbnN0YW5jZVR5cGUsIEltYWdlSWQsIEludGVybmV0Q2hhcmdlVHlwZSwgSW50ZXJuZXRNYXhCYW5kd2lkdGhJbiwgSW50ZXJuZXRNYXhCYW5kd2lkdGhPdXQgYW5kIHRoZSBzeXN0ZW0gZGlzayBhbmQgZGF0YSBkaXNrIGNvbmZpZ3VyYXRpb25zLiBJZiB0aGUgaW5zdGFuY2UgbmV0d29yayBpcyBWUEMsIGl0IHdpbGwgYWxzbyBjbG9uZSB0aGUgcmVsYXRpdmUgcHJvcGVydGllcy4gSWYgc3BlY2lmaWVkIGluc3RhbmNlIHdpdGggbW9yZSB0aGFuIG9uZSBzZWN1cml0eSBncm91cCwgaXQgd2lsbCB1c2UgdGhlIGZpcnN0IHNlY3VyaXR5IGdyb3VwIHRvIGNyZWF0ZSBpbnN0YW5jZS4geW91IGNhbiBhbHNvIHNwZWNpZnkgdGhlIFNlY3VyaXR5R3JvdXBJZCB0byBvdmVycmlkZSBpdC5cbiAgICAgKi9cbiAgICByZWFkb25seSBzb3VyY2VJbnN0YW5jZUlkOiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBiYWNrZW5kU2VydmVyV2VpZ2h0OiBUaGUgd2VpZ2h0IG9mIGJhY2tlbmQgc2VydmVyIG9mIGxvYWQgYmFsYW5jZXIuIEZyb20gMCB0byAxMDAsIDAgbWVhbnMgb2ZmbGluZS4gRGVmYXVsdCBpcyAxMDAuXG4gICAgICovXG4gICAgcmVhZG9ubHkgYmFja2VuZFNlcnZlcldlaWdodD86IG51bWJlciB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IGRlbGV0aW9uUHJvdGVjdGlvbjogV2hldGhlciBhbiBpbnN0YW5jZSBjYW4gYmUgcmVsZWFzZWQgbWFudWFsbHkgdGhyb3VnaCB0aGUgY29uc29sZSBvciBBUEksIGRlbGV0aW9uIHByb3RlY3Rpb24gb25seSBzdXBwb3J0IHBvc3RQYWlkIGluc3RhbmNlXG4gICAgICovXG4gICAgcmVhZG9ubHkgZGVsZXRpb25Qcm90ZWN0aW9uPzogYm9vbGVhbiB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IGRlc2NyaXB0aW9uOiBEZXNjcmlwdGlvbiBvZiB0aGUgaW5zdGFuY2UsIFsyLCAyNTZdIGNoYXJhY3RlcnMuIERvIG5vdCBmaWxsIG9yIGVtcHR5LCB0aGUgZGVmYXVsdCBpcyBlbXB0eS5cbiAgICAgKi9cbiAgICByZWFkb25seSBkZXNjcmlwdGlvbj86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IGRpc2tNYXBwaW5nczogRGlzayBtYXBwaW5ncyB0byBhdHRhY2ggdG8gaW5zdGFuY2UuIE1heCBzdXBwb3J0IDE2IGRpc2tzLlxuICAgICAqIElmIHRoZSBpbWFnZSBjb250YWlucyBhIGRhdGEgZGlzaywgeW91IGNhbiBzcGVjaWZ5IG90aGVyIHBhcmFtZXRlcnMgb2YgdGhlIGRhdGEgZGlzayB2aWEgdGhlIHNhbWUgdmFsdWUgb2YgcGFyYW1ldGVyIFwiRGV2aWNlXCIuIElmIHBhcmFtZXRlciBcIkNhdGVnb3J5XCIgaXMgbm90IHNwZWNpZmllZCwgaXQgd2lsbCBiZSBjbG91ZF9lZmZpY2llbmN5IGluc3RlYWQgb2YgXCJDYXRlZ29yeVwiIG9mIGRhdGEgZGlzayBpbiB0aGUgaW1hZ2UuXG4gICAgICovXG4gICAgcmVhZG9ubHkgZGlza01hcHBpbmdzPzogQXJyYXk8Um9zSW5zdGFuY2VDbG9uZS5EaXNrTWFwcGluZ3NQcm9wZXJ0eSB8IHJvcy5JUmVzb2x2YWJsZT4gfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBpbWFnZUlkOiBJbWFnZSBJRCB0byBjcmVhdGUgZWNzIGluc3RhbmNlLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGltYWdlSWQ/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBpbnN0YW5jZUNoYXJnZVR5cGU6IEluc3RhbmNlIENoYXJnZSB0eXBlLCBhbGxvd2VkIHZhbHVlOiBQcmVwYWlkIGFuZCBQb3N0cGFpZC4gSWYgc3BlY2lmaWVkIFByZXBhaWQsIHBsZWFzZSBlbnN1cmUgeW91IGhhdmUgc3VmZmljaWVudCBiYWxhbmNlIGluIHlvdXIgYWNjb3VudC4gT3IgaW5zdGFuY2UgY3JlYXRpb24gd2lsbCBiZSBmYWlsdXJlLiBEZWZhdWx0IHZhbHVlIGlzIFBvc3RwYWlkLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGluc3RhbmNlQ2hhcmdlVHlwZT86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IGluc3RhbmNlTmFtZTogRGlzcGxheSBuYW1lIG9mIHRoZSBpbnN0YW5jZSwgWzIsIDEyOF0gRW5nbGlzaCBvciBDaGluZXNlIGNoYXJhY3RlcnMsIG11c3Qgc3RhcnQgd2l0aCBhIGxldHRlciBvciBDaGluZXNlIGluIHNpemUsIGNhbiBjb250YWluIG51bWJlcnMsICdfJyBvciAnLicsICctJ1xuICAgICAqL1xuICAgIHJlYWRvbmx5IGluc3RhbmNlTmFtZT86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IGludGVybmV0TWF4QmFuZHdpZHRoSW46IE1heCBpbnRlcm5ldCBvdXQgYmFuZCB3aWR0aCBzZXR0aW5nLCB1bml0IGluIE1icHMoTWVnYSBiaXQgcGVyIHNlY29uZCkuIFRoZSByYW5nZSBpcyBbMCwyMDBdLCBkZWZhdWx0IGlzIDIwMCBNYnBzLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGludGVybmV0TWF4QmFuZHdpZHRoSW4/OiBudW1iZXIgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBrZXlQYWlyTmFtZTogU1NIIGtleSBwYWlyIG5hbWUuXG4gICAgICovXG4gICAgcmVhZG9ubHkga2V5UGFpck5hbWU/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBsb2FkQmFsYW5jZXJJZFRvQXR0YWNoOiBBZnRlciB0aGUgaW5zdGFuY2UgaXMgY3JlYXRlZC4gQXV0b21hdGljIGF0dGFjaCBpdCB0byB0aGUgbG9hZCBiYWxhbmNlci5cbiAgICAgKi9cbiAgICByZWFkb25seSBsb2FkQmFsYW5jZXJJZFRvQXR0YWNoPzogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgcGFzc3dvcmQ6IFBhc3N3b3JkIG9mIGNyZWF0ZWQgZWNzIGluc3RhbmNlLiBNdXN0IGNvbnRhaW4gYXQgbGVhc3QgMyB0eXBlcyBvZiBzcGVjaWFsIGNoYXJhY3RlciwgbG93ZXIgY2hhcmFjdGVyLCB1cHBlciBjaGFyYWN0ZXIsIG51bWJlci5cbiAgICAgKi9cbiAgICByZWFkb25seSBwYXNzd29yZD86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IHBlcmlvZDogUHJlcGFpZCB0aW1lIHBlcmlvZC4gVW5pdCBpcyBtb250aCwgaXQgY291bGQgYmUgZnJvbSAxIHRvIDkgb3IgMTIsIDI0LCAzNiwgNDgsIDYwLiBEZWZhdWx0IHZhbHVlIGlzIDEuXG4gICAgICovXG4gICAgcmVhZG9ubHkgcGVyaW9kPzogbnVtYmVyIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgcmFtUm9sZU5hbWU6IEluc3RhbmNlIFJBTSByb2xlIG5hbWUuIFRoZSBuYW1lIGlzIHByb3ZpZGVkIGFuZCBtYWludGFpbmVkIGJ5IFJlc291cmNlIEFjY2VzcyBNYW5hZ2VtZW50IChSQU0pIGFuZCBjYW4gYmUgcXVlcmllZCB1c2luZyBMaXN0Um9sZXMuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgUkFNIEFQSSBDcmVhdGVSb2xlIGFuZCBMaXN0Um9sZXMuXG4gICAgICovXG4gICAgcmVhZG9ubHkgcmFtUm9sZU5hbWU/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSByZXNvdXJjZUdyb3VwSWQ6IFJlc291cmNlIGdyb3VwIGlkLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHJlc291cmNlR3JvdXBJZD86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IHNlY3VyaXR5R3JvdXBJZDogU2VjdXJpdHkgZ3JvdXAgdG8gY3JlYXRlIGVjcyBpbnN0YW5jZS4gRm9yIGNsYXNzaWMgaW5zdGFuY2UgbmVlZCB0aGUgc2VjdXJpdHkgZ3JvdXAgbm90IGJlbG9uZyB0byBWUEMsIGZvciBWUEMgaW5zdGFuY2UsIHBsZWFzZSBtYWtlIHN1cmUgdGhlIHNlY3VyaXR5IGdyb3VwIGJlbG9uZyB0byBzcGVjaWZpZWQgVlBDLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHNlY3VyaXR5R3JvdXBJZD86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IHNwb3RQcmljZUxpbWl0OiBUaGUgaG91cmx5IHByaWNlIHRocmVzaG9sZCBvZiBhIGluc3RhbmNlLCBhbmQgaXQgdGFrZXMgZWZmZWN0IG9ubHkgd2hlbiBwYXJhbWV0ZXIgSW5zdGFuY2VDaGFyZ2VUeXBlIGlzIFBvc3RQYWlkLiBUaHJlZSBkZWNpbWFscyBpcyBhbGxvd2VkIGF0IG1vc3QuXG4gICAgICovXG4gICAgcmVhZG9ubHkgc3BvdFByaWNlTGltaXQ/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBzcG90U3RyYXRlZ3k6IFRoZSBzcG90IHN0cmF0ZWd5IG9mIGEgUGF5LUFzLVlvdS1HbyBpbnN0YW5jZSwgYW5kIGl0IHRha2VzIGVmZmVjdCBvbmx5IHdoZW4gcGFyYW1ldGVyIEluc3RhbmNlQ2hhcmdlVHlwZSBpcyBQb3N0UGFpZC4gVmFsdWUgcmFuZ2U6IFwiTm9TcG90OiBBIHJlZ3VsYXIgUGF5LUFzLVlvdS1HbyBpbnN0YW5jZVwiLCBcIlNwb3RXaXRoUHJpY2VMaW1pdDogQSBwcmljZSB0aHJlc2hvbGQgZm9yIGEgc3BvdCBpbnN0YW5jZSwgXCJcIlNwb3RBc1ByaWNlR286IEEgcHJpY2UgdGhhdCBpcyBiYXNlZCBvbiB0aGUgaGlnaGVzdCBQYXktQXMtWW91LUdvIGluc3RhbmNlLiBcIkRlZmF1bHQgdmFsdWU6IE5vU3BvdC5cbiAgICAgKi9cbiAgICByZWFkb25seSBzcG90U3RyYXRlZ3k/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSB0YWdzOiBUYWdzIHRvIGF0dGFjaCB0byBpbnN0YW5jZS4gTWF4IHN1cHBvcnQgMjAgdGFncyB0byBhZGQgZHVyaW5nIGNyZWF0ZSBpbnN0YW5jZS4gRWFjaCB0YWcgd2l0aCB0d28gcHJvcGVydGllcyBLZXkgYW5kIFZhbHVlLCBhbmQgS2V5IGlzIHJlcXVpcmVkLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHRhZ3M/OiBSb3NJbnN0YW5jZUNsb25lLlRhZ3NQcm9wZXJ0eVtdO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgem9uZUlkOiBUaGUgSUQgb2YgdGhlIHpvbmUgdG8gd2hpY2ggdGhlIGluc3RhbmNlIGJlbG9uZ3MuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBcbiAgICAgKiBjYWxsIHRoZSBEZXNjcmliZVpvbmVzIG9wZXJhdGlvbiB0byBxdWVyeSB0aGUgbW9zdCByZWNlbnQgem9uZSBsaXN0LiBcbiAgICAgKiBEZWZhdWx0IHZhbHVlIGlzIGVtcHR5LCB3aGljaCBtZWFucyByYW5kb20gc2VsZWN0aW9uLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHpvbmVJZD86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcbn1cblxuLyoqXG4gKiBBIFJPUyByZXNvdXJjZSB0eXBlOiAgYEFMSVlVTjo6RUNTOjpJbnN0YW5jZUNsb25lYFxuICovXG5leHBvcnQgY2xhc3MgSW5zdGFuY2VDbG9uZSBleHRlbmRzIHJvcy5SZXNvdXJjZSB7XG5cbiAgICAvKipcbiAgICAgKiBBIGZhY3RvcnkgbWV0aG9kIHRoYXQgY3JlYXRlcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGlzIGNsYXNzIGZyb20gYW4gb2JqZWN0XG4gICAgICogY29udGFpbmluZyB0aGUgcHJvcGVydGllcyBvZiB0aGlzIFJPUyByZXNvdXJjZSwgd2hpY2ggd2lsbCBiZSBhc3NpZ25lZCB0byBST1MgcmVzb3VyY2UuXG4gICAgICovXG5cbiAgICAvKipcbiAgICAgKiBBdHRyaWJ1dGUgSG9zdE5hbWU6IEhvc3QgbmFtZSBvZiBjcmVhdGVkIGluc3RhbmNlLlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBhdHRySG9zdE5hbWU6IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIEF0dHJpYnV0ZSBJbm5lcklwOiBJbm5lciBJUCBhZGRyZXNzIG9mIHRoZSBzcGVjaWZpZWQgaW5zdGFuY2UuIE9ubHkgZm9yIGNsYXNzaWNhbCBpbnN0YW5jZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgYXR0cklubmVySXA6IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIEF0dHJpYnV0ZSBJbnN0YW5jZUlkOiBUaGUgaW5zdGFuY2UgSUQgb2YgY3JlYXRlZCBlY3MgaW5zdGFuY2VcbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgYXR0ckluc3RhbmNlSWQ6IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIEF0dHJpYnV0ZSBQcmltYXJ5TmV0d29ya0ludGVyZmFjZUlkOiBQcmltYXJ5IG5ldHdvcmsgaW50ZXJmYWNlIElEIG9mIGNyZWF0ZWQgaW5zdGFuY2UuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGF0dHJQcmltYXJ5TmV0d29ya0ludGVyZmFjZUlkOiByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBBdHRyaWJ1dGUgUHJpdmF0ZUlwOiBQcml2YXRlIElQIGFkZHJlc3Mgb2YgY3JlYXRlZCBlY3MgaW5zdGFuY2UuIE9ubHkgZm9yIFZQQyBpbnN0YW5jZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgYXR0clByaXZhdGVJcDogcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogQXR0cmlidXRlIFB1YmxpY0lwOiBQdWJsaWMgSVAgYWRkcmVzcyBvZiBjcmVhdGVkIGVjcyBpbnN0YW5jZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgYXR0clB1YmxpY0lwOiByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBBdHRyaWJ1dGUgU2VjdXJpdHlHcm91cElkczogU2VjdXJpdHkgZ3JvdXAgSUQgbGlzdCBvZiBjcmVhdGVkIGluc3RhbmNlLlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBhdHRyU2VjdXJpdHlHcm91cElkczogcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogQXR0cmlidXRlIFpvbmVJZDogWm9uZSBJRCBvZiBjcmVhdGVkIGluc3RhbmNlLlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBhdHRyWm9uZUlkOiByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGUgYSBuZXcgYEFMSVlVTjo6RUNTOjpJbnN0YW5jZUNsb25lYC5cbiAgICAgKlxuICAgICAqIFBhcmFtIHNjb3BlIC0gc2NvcGUgaW4gd2hpY2ggdGhpcyByZXNvdXJjZSBpcyBkZWZpbmVkXG4gICAgICogUGFyYW0gaWQgICAgLSBzY29wZWQgaWQgb2YgdGhlIHJlc291cmNlXG4gICAgICogUGFyYW0gcHJvcHMgLSByZXNvdXJjZSBwcm9wZXJ0aWVzXG4gICAgICovXG4gICAgY29uc3RydWN0b3Ioc2NvcGU6IHJvcy5Db25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBJbnN0YW5jZUNsb25lUHJvcHMsIGVuYWJsZVJlc291cmNlUHJvcGVydHlDb25zdHJhaW50OmJvb2xlYW4gPSB0cnVlKSB7XG4gICAgICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICAgICAgY29uc3Qgcm9zSW5zdGFuY2VDbG9uZSA9IG5ldyBSb3NJbnN0YW5jZUNsb25lKHRoaXMsIGlkLCAge1xuICAgICAgICAgICAgYmFja2VuZFNlcnZlcldlaWdodDogcHJvcHMuYmFja2VuZFNlcnZlcldlaWdodCA9PT0gdW5kZWZpbmVkIHx8IHByb3BzLmJhY2tlbmRTZXJ2ZXJXZWlnaHQgPT09IG51bGwgPyAxMDAgOiBwcm9wcy5iYWNrZW5kU2VydmVyV2VpZ2h0LFxuICAgICAgICAgICAga2V5UGFpck5hbWU6IHByb3BzLmtleVBhaXJOYW1lLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IHByb3BzLmRlc2NyaXB0aW9uLFxuICAgICAgICAgICAgZGlza01hcHBpbmdzOiBwcm9wcy5kaXNrTWFwcGluZ3MsXG4gICAgICAgICAgICByZXNvdXJjZUdyb3VwSWQ6IHByb3BzLnJlc291cmNlR3JvdXBJZCxcbiAgICAgICAgICAgIHpvbmVJZDogcHJvcHMuem9uZUlkLFxuICAgICAgICAgICAgaW5zdGFuY2VDaGFyZ2VUeXBlOiBwcm9wcy5pbnN0YW5jZUNoYXJnZVR5cGUgPT09IHVuZGVmaW5lZCB8fCBwcm9wcy5pbnN0YW5jZUNoYXJnZVR5cGUgPT09IG51bGwgPyAnUG9zdFBhaWQnIDogcHJvcHMuaW5zdGFuY2VDaGFyZ2VUeXBlLFxuICAgICAgICAgICAgc2VjdXJpdHlHcm91cElkOiBwcm9wcy5zZWN1cml0eUdyb3VwSWQsXG4gICAgICAgICAgICBwZXJpb2Q6IHByb3BzLnBlcmlvZCA9PT0gdW5kZWZpbmVkIHx8IHByb3BzLnBlcmlvZCA9PT0gbnVsbCA/IDEgOiBwcm9wcy5wZXJpb2QsXG4gICAgICAgICAgICBkZWxldGlvblByb3RlY3Rpb246IHByb3BzLmRlbGV0aW9uUHJvdGVjdGlvbixcbiAgICAgICAgICAgIHNvdXJjZUluc3RhbmNlSWQ6IHByb3BzLnNvdXJjZUluc3RhbmNlSWQsXG4gICAgICAgICAgICBsb2FkQmFsYW5jZXJJZFRvQXR0YWNoOiBwcm9wcy5sb2FkQmFsYW5jZXJJZFRvQXR0YWNoLFxuICAgICAgICAgICAgaW5zdGFuY2VOYW1lOiBwcm9wcy5pbnN0YW5jZU5hbWUsXG4gICAgICAgICAgICByYW1Sb2xlTmFtZTogcHJvcHMucmFtUm9sZU5hbWUsXG4gICAgICAgICAgICBpbnRlcm5ldE1heEJhbmR3aWR0aEluOiBwcm9wcy5pbnRlcm5ldE1heEJhbmR3aWR0aEluID09PSB1bmRlZmluZWQgfHwgcHJvcHMuaW50ZXJuZXRNYXhCYW5kd2lkdGhJbiA9PT0gbnVsbCA/IDIwMCA6IHByb3BzLmludGVybmV0TWF4QmFuZHdpZHRoSW4sXG4gICAgICAgICAgICBpbWFnZUlkOiBwcm9wcy5pbWFnZUlkLFxuICAgICAgICAgICAgc3BvdFByaWNlTGltaXQ6IHByb3BzLnNwb3RQcmljZUxpbWl0LFxuICAgICAgICAgICAgdGFnczogcHJvcHMudGFncyxcbiAgICAgICAgICAgIHNwb3RTdHJhdGVneTogcHJvcHMuc3BvdFN0cmF0ZWd5LFxuICAgICAgICAgICAgcGFzc3dvcmQ6IHByb3BzLnBhc3N3b3JkLFxuICAgICAgICB9LCBlbmFibGVSZXNvdXJjZVByb3BlcnR5Q29uc3RyYWludCAmJiB0aGlzLnN0YWNrLmVuYWJsZVJlc291cmNlUHJvcGVydHlDb25zdHJhaW50KTtcbiAgICAgICAgdGhpcy5yZXNvdXJjZSA9IHJvc0luc3RhbmNlQ2xvbmU7XG4gICAgICAgIHRoaXMuYXR0ckhvc3ROYW1lID0gcm9zSW5zdGFuY2VDbG9uZS5hdHRySG9zdE5hbWU7XG4gICAgICAgIHRoaXMuYXR0cklubmVySXAgPSByb3NJbnN0YW5jZUNsb25lLmF0dHJJbm5lcklwO1xuICAgICAgICB0aGlzLmF0dHJJbnN0YW5jZUlkID0gcm9zSW5zdGFuY2VDbG9uZS5hdHRySW5zdGFuY2VJZDtcbiAgICAgICAgdGhpcy5hdHRyUHJpbWFyeU5ldHdvcmtJbnRlcmZhY2VJZCA9IHJvc0luc3RhbmNlQ2xvbmUuYXR0clByaW1hcnlOZXR3b3JrSW50ZXJmYWNlSWQ7XG4gICAgICAgIHRoaXMuYXR0clByaXZhdGVJcCA9IHJvc0luc3RhbmNlQ2xvbmUuYXR0clByaXZhdGVJcDtcbiAgICAgICAgdGhpcy5hdHRyUHVibGljSXAgPSByb3NJbnN0YW5jZUNsb25lLmF0dHJQdWJsaWNJcDtcbiAgICAgICAgdGhpcy5hdHRyU2VjdXJpdHlHcm91cElkcyA9IHJvc0luc3RhbmNlQ2xvbmUuYXR0clNlY3VyaXR5R3JvdXBJZHM7XG4gICAgICAgIHRoaXMuYXR0clpvbmVJZCA9IHJvc0luc3RhbmNlQ2xvbmUuYXR0clpvbmVJZDtcbiAgICB9XG59XG4iXX0=
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdGFuY2VjbG9uZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImluc3RhbmNlY2xvbmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsOENBQThDO0FBQzlDLG1EQUFtRDtBQUV0QixzR0FGcEIsZ0NBQWdCLE9BRXlCO0FBZ0hsRDs7OztHQUlHO0FBQ0gsTUFBYSxhQUFjLFNBQVEsR0FBRyxDQUFDLFFBQVE7SUE4QzNDOzs7O09BSUc7SUFDSCxZQUFZLEtBQW9CLEVBQUUsRUFBVSxFQUFFLEtBQXlCLEVBQUUsbUNBQTJDLElBQUk7UUFDcEgsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNqQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQztRQUNiLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxnQ0FBZ0MsR0FBRyxnQ0FBZ0MsQ0FBQztRQUV6RSxNQUFNLGdCQUFnQixHQUFHLElBQUksZ0NBQWdCLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRztZQUNyRCxtQkFBbUIsRUFBRSxLQUFLLENBQUMsbUJBQW1CLEtBQUssU0FBUyxJQUFJLEtBQUssQ0FBQyxtQkFBbUIsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLG1CQUFtQjtZQUNwSSxXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVc7WUFDOUIsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXO1lBQzlCLFlBQVksRUFBRSxLQUFLLENBQUMsWUFBWTtZQUNoQyxlQUFlLEVBQUUsS0FBSyxDQUFDLGVBQWU7WUFDdEMsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNO1lBQ3BCLGtCQUFrQixFQUFFLEtBQUssQ0FBQyxrQkFBa0IsS0FBSyxTQUFTLElBQUksS0FBSyxDQUFDLGtCQUFrQixLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsa0JBQWtCO1lBQ3ZJLGVBQWUsRUFBRSxLQUFLLENBQUMsZUFBZTtZQUN0QyxNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU0sS0FBSyxTQUFTLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU07WUFDOUUsa0JBQWtCLEVBQUUsS0FBSyxDQUFDLGtCQUFrQjtZQUM1QyxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsZ0JBQWdCO1lBQ3hDLHNCQUFzQixFQUFFLEtBQUssQ0FBQyxzQkFBc0I7WUFDcEQsWUFBWSxFQUFFLEtBQUssQ0FBQyxZQUFZO1lBQ2hDLFdBQVcsRUFBRSxLQUFLLENBQUMsV0FBVztZQUM5QixzQkFBc0IsRUFBRSxLQUFLLENBQUMsc0JBQXNCLEtBQUssU0FBUyxJQUFJLEtBQUssQ0FBQyxzQkFBc0IsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLHNCQUFzQjtZQUNoSixPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU87WUFDdEIsY0FBYyxFQUFFLEtBQUssQ0FBQyxjQUFjO1lBQ3BDLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTtZQUNoQixZQUFZLEVBQUUsS0FBSyxDQUFDLFlBQVk7WUFDaEMsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRO1NBQzNCLEVBQUUsZ0NBQWdDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO1FBQ3BGLElBQUksQ0FBQyxRQUFRLEdBQUcsZ0JBQWdCLENBQUM7UUFDakMsSUFBSSxDQUFDLFlBQVksR0FBRyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUM7UUFDbEQsSUFBSSxDQUFDLFdBQVcsR0FBRyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUM7UUFDaEQsSUFBSSxDQUFDLGNBQWMsR0FBRyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUM7UUFDdEQsSUFBSSxDQUFDLDZCQUE2QixHQUFHLGdCQUFnQixDQUFDLDZCQUE2QixDQUFDO1FBQ3BGLElBQUksQ0FBQyxhQUFhLEdBQUcsZ0JBQWdCLENBQUMsYUFBYSxDQUFDO1FBQ3BELElBQUksQ0FBQyxZQUFZLEdBQUcsZ0JBQWdCLENBQUMsWUFBWSxDQUFDO1FBQ2xELElBQUksQ0FBQyxvQkFBb0IsR0FBRyxnQkFBZ0IsQ0FBQyxvQkFBb0IsQ0FBQztRQUNsRSxJQUFJLENBQUMsVUFBVSxHQUFHLGdCQUFnQixDQUFDLFVBQVUsQ0FBQztJQUNsRCxDQUFDO0NBQ0o7QUExRkQsc0NBMEZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcm9zIGZyb20gJ0BhbGljbG91ZC9yb3MtY2RrLWNvcmUnO1xuaW1wb3J0IHsgUm9zSW5zdGFuY2VDbG9uZSB9IGZyb20gJy4vZWNzLmdlbmVyYXRlZCc7XG4vLyBHZW5lcmF0ZWQgZnJvbSB0aGUgQWxpQ2xvdWQgUk9TIFJlc291cmNlIFNwZWNpZmljYXRpb25cbmV4cG9ydCB7IFJvc0luc3RhbmNlQ2xvbmUgYXMgSW5zdGFuY2VDbG9uZVByb3BlcnR5IH07XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgZGVmaW5pbmcgYSBgSW5zdGFuY2VDbG9uZWAuXG4gKiBTZWUgaHR0cHM6Ly93d3cuYWxpYmFiYWNsb3VkLmNvbS9oZWxwL3Jvcy9kZXZlbG9wZXItcmVmZXJlbmNlL2FsaXl1bi1lY3MtaW5zdGFuY2VjbG9uZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEluc3RhbmNlQ2xvbmVQcm9wcyB7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBzb3VyY2VJbnN0YW5jZUlkOiBTb3VyY2UgZWNzIGluc3RhbmNlIHVzZWQgdG8gY29weSBwcm9wZXJ0aWVzIHRvIGNsb25lIG5ldyBlY3MgaW5zdGFuY2UuIEl0IHdpbGwgY29weSB0aGUgSW5zdGFuY2VUeXBlLCBJbWFnZUlkLCBJbnRlcm5ldENoYXJnZVR5cGUsIEludGVybmV0TWF4QmFuZHdpZHRoSW4sIEludGVybmV0TWF4QmFuZHdpZHRoT3V0IGFuZCB0aGUgc3lzdGVtIGRpc2sgYW5kIGRhdGEgZGlzayBjb25maWd1cmF0aW9ucy4gSWYgdGhlIGluc3RhbmNlIG5ldHdvcmsgaXMgVlBDLCBpdCB3aWxsIGFsc28gY2xvbmUgdGhlIHJlbGF0aXZlIHByb3BlcnRpZXMuIElmIHNwZWNpZmllZCBpbnN0YW5jZSB3aXRoIG1vcmUgdGhhbiBvbmUgc2VjdXJpdHkgZ3JvdXAsIGl0IHdpbGwgdXNlIHRoZSBmaXJzdCBzZWN1cml0eSBncm91cCB0byBjcmVhdGUgaW5zdGFuY2UuIHlvdSBjYW4gYWxzbyBzcGVjaWZ5IHRoZSBTZWN1cml0eUdyb3VwSWQgdG8gb3ZlcnJpZGUgaXQuXG4gICAgICovXG4gICAgcmVhZG9ubHkgc291cmNlSW5zdGFuY2VJZDogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgYmFja2VuZFNlcnZlcldlaWdodDogVGhlIHdlaWdodCBvZiBiYWNrZW5kIHNlcnZlciBvZiBsb2FkIGJhbGFuY2VyLiBGcm9tIDAgdG8gMTAwLCAwIG1lYW5zIG9mZmxpbmUuIERlZmF1bHQgaXMgMTAwLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGJhY2tlbmRTZXJ2ZXJXZWlnaHQ/OiBudW1iZXIgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBkZWxldGlvblByb3RlY3Rpb246IFdoZXRoZXIgYW4gaW5zdGFuY2UgY2FuIGJlIHJlbGVhc2VkIG1hbnVhbGx5IHRocm91Z2ggdGhlIGNvbnNvbGUgb3IgQVBJLCBkZWxldGlvbiBwcm90ZWN0aW9uIG9ubHkgc3VwcG9ydCBwb3N0UGFpZCBpbnN0YW5jZVxuICAgICAqL1xuICAgIHJlYWRvbmx5IGRlbGV0aW9uUHJvdGVjdGlvbj86IGJvb2xlYW4gfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBkZXNjcmlwdGlvbjogRGVzY3JpcHRpb24gb2YgdGhlIGluc3RhbmNlLCBbMiwgMjU2XSBjaGFyYWN0ZXJzLiBEbyBub3QgZmlsbCBvciBlbXB0eSwgdGhlIGRlZmF1bHQgaXMgZW1wdHkuXG4gICAgICovXG4gICAgcmVhZG9ubHkgZGVzY3JpcHRpb24/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBkaXNrTWFwcGluZ3M6IERpc2sgbWFwcGluZ3MgdG8gYXR0YWNoIHRvIGluc3RhbmNlLiBNYXggc3VwcG9ydCAxNiBkaXNrcy5cbiAgICAgKiBJZiB0aGUgaW1hZ2UgY29udGFpbnMgYSBkYXRhIGRpc2ssIHlvdSBjYW4gc3BlY2lmeSBvdGhlciBwYXJhbWV0ZXJzIG9mIHRoZSBkYXRhIGRpc2sgdmlhIHRoZSBzYW1lIHZhbHVlIG9mIHBhcmFtZXRlciBcIkRldmljZVwiLiBJZiBwYXJhbWV0ZXIgXCJDYXRlZ29yeVwiIGlzIG5vdCBzcGVjaWZpZWQsIGl0IHdpbGwgYmUgY2xvdWRfZWZmaWNpZW5jeSBpbnN0ZWFkIG9mIFwiQ2F0ZWdvcnlcIiBvZiBkYXRhIGRpc2sgaW4gdGhlIGltYWdlLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGRpc2tNYXBwaW5ncz86IEFycmF5PFJvc0luc3RhbmNlQ2xvbmUuRGlza01hcHBpbmdzUHJvcGVydHkgfCByb3MuSVJlc29sdmFibGU+IHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgaW1hZ2VJZDogSW1hZ2UgSUQgdG8gY3JlYXRlIGVjcyBpbnN0YW5jZS5cbiAgICAgKi9cbiAgICByZWFkb25seSBpbWFnZUlkPzogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgaW5zdGFuY2VDaGFyZ2VUeXBlOiBJbnN0YW5jZSBDaGFyZ2UgdHlwZSwgYWxsb3dlZCB2YWx1ZTogUHJlcGFpZCBhbmQgUG9zdHBhaWQuIElmIHNwZWNpZmllZCBQcmVwYWlkLCBwbGVhc2UgZW5zdXJlIHlvdSBoYXZlIHN1ZmZpY2llbnQgYmFsYW5jZSBpbiB5b3VyIGFjY291bnQuIE9yIGluc3RhbmNlIGNyZWF0aW9uIHdpbGwgYmUgZmFpbHVyZS4gRGVmYXVsdCB2YWx1ZSBpcyBQb3N0cGFpZC5cbiAgICAgKi9cbiAgICByZWFkb25seSBpbnN0YW5jZUNoYXJnZVR5cGU/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBpbnN0YW5jZU5hbWU6IERpc3BsYXkgbmFtZSBvZiB0aGUgaW5zdGFuY2UsIFsyLCAxMjhdIEVuZ2xpc2ggb3IgQ2hpbmVzZSBjaGFyYWN0ZXJzLCBtdXN0IHN0YXJ0IHdpdGggYSBsZXR0ZXIgb3IgQ2hpbmVzZSBpbiBzaXplLCBjYW4gY29udGFpbiBudW1iZXJzLCAnXycgb3IgJy4nLCAnLSdcbiAgICAgKi9cbiAgICByZWFkb25seSBpbnN0YW5jZU5hbWU/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBpbnRlcm5ldE1heEJhbmR3aWR0aEluOiBNYXggaW50ZXJuZXQgb3V0IGJhbmQgd2lkdGggc2V0dGluZywgdW5pdCBpbiBNYnBzKE1lZ2EgYml0IHBlciBzZWNvbmQpLiBUaGUgcmFuZ2UgaXMgWzAsMjAwXSwgZGVmYXVsdCBpcyAyMDAgTWJwcy5cbiAgICAgKi9cbiAgICByZWFkb25seSBpbnRlcm5ldE1heEJhbmR3aWR0aEluPzogbnVtYmVyIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkga2V5UGFpck5hbWU6IFNTSCBrZXkgcGFpciBuYW1lLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGtleVBhaXJOYW1lPzogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgbG9hZEJhbGFuY2VySWRUb0F0dGFjaDogQWZ0ZXIgdGhlIGluc3RhbmNlIGlzIGNyZWF0ZWQuIEF1dG9tYXRpYyBhdHRhY2ggaXQgdG8gdGhlIGxvYWQgYmFsYW5jZXIuXG4gICAgICovXG4gICAgcmVhZG9ubHkgbG9hZEJhbGFuY2VySWRUb0F0dGFjaD86IHN0cmluZyB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IHBhc3N3b3JkOiBQYXNzd29yZCBvZiBjcmVhdGVkIGVjcyBpbnN0YW5jZS4gTXVzdCBjb250YWluIGF0IGxlYXN0IDMgdHlwZXMgb2Ygc3BlY2lhbCBjaGFyYWN0ZXIsIGxvd2VyIGNoYXJhY3RlciwgdXBwZXIgY2hhcmFjdGVyLCBudW1iZXIuXG4gICAgICovXG4gICAgcmVhZG9ubHkgcGFzc3dvcmQ/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBwZXJpb2Q6IFByZXBhaWQgdGltZSBwZXJpb2QuIFVuaXQgaXMgbW9udGgsIGl0IGNvdWxkIGJlIGZyb20gMSB0byA5IG9yIDEyLCAyNCwgMzYsIDQ4LCA2MC4gRGVmYXVsdCB2YWx1ZSBpcyAxLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHBlcmlvZD86IG51bWJlciB8IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IHJhbVJvbGVOYW1lOiBJbnN0YW5jZSBSQU0gcm9sZSBuYW1lLiBUaGUgbmFtZSBpcyBwcm92aWRlZCBhbmQgbWFpbnRhaW5lZCBieSBSZXNvdXJjZSBBY2Nlc3MgTWFuYWdlbWVudCAoUkFNKSBhbmQgY2FuIGJlIHF1ZXJpZWQgdXNpbmcgTGlzdFJvbGVzLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFJBTSBBUEkgQ3JlYXRlUm9sZSBhbmQgTGlzdFJvbGVzLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHJhbVJvbGVOYW1lPzogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgcmVzb3VyY2VHcm91cElkOiBSZXNvdXJjZSBncm91cCBpZC5cbiAgICAgKi9cbiAgICByZWFkb25seSByZXNvdXJjZUdyb3VwSWQ/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBzZWN1cml0eUdyb3VwSWQ6IFNlY3VyaXR5IGdyb3VwIHRvIGNyZWF0ZSBlY3MgaW5zdGFuY2UuIEZvciBjbGFzc2ljIGluc3RhbmNlIG5lZWQgdGhlIHNlY3VyaXR5IGdyb3VwIG5vdCBiZWxvbmcgdG8gVlBDLCBmb3IgVlBDIGluc3RhbmNlLCBwbGVhc2UgbWFrZSBzdXJlIHRoZSBzZWN1cml0eSBncm91cCBiZWxvbmcgdG8gc3BlY2lmaWVkIFZQQy5cbiAgICAgKi9cbiAgICByZWFkb25seSBzZWN1cml0eUdyb3VwSWQ/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBzcG90UHJpY2VMaW1pdDogVGhlIGhvdXJseSBwcmljZSB0aHJlc2hvbGQgb2YgYSBpbnN0YW5jZSwgYW5kIGl0IHRha2VzIGVmZmVjdCBvbmx5IHdoZW4gcGFyYW1ldGVyIEluc3RhbmNlQ2hhcmdlVHlwZSBpcyBQb3N0UGFpZC4gVGhyZWUgZGVjaW1hbHMgaXMgYWxsb3dlZCBhdCBtb3N0LlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHNwb3RQcmljZUxpbWl0Pzogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgc3BvdFN0cmF0ZWd5OiBUaGUgc3BvdCBzdHJhdGVneSBvZiBhIFBheS1Bcy1Zb3UtR28gaW5zdGFuY2UsIGFuZCBpdCB0YWtlcyBlZmZlY3Qgb25seSB3aGVuIHBhcmFtZXRlciBJbnN0YW5jZUNoYXJnZVR5cGUgaXMgUG9zdFBhaWQuIFZhbHVlIHJhbmdlOiBcIk5vU3BvdDogQSByZWd1bGFyIFBheS1Bcy1Zb3UtR28gaW5zdGFuY2VcIiwgXCJTcG90V2l0aFByaWNlTGltaXQ6IEEgcHJpY2UgdGhyZXNob2xkIGZvciBhIHNwb3QgaW5zdGFuY2UsIFwiXCJTcG90QXNQcmljZUdvOiBBIHByaWNlIHRoYXQgaXMgYmFzZWQgb24gdGhlIGhpZ2hlc3QgUGF5LUFzLVlvdS1HbyBpbnN0YW5jZS4gXCJEZWZhdWx0IHZhbHVlOiBOb1Nwb3QuXG4gICAgICovXG4gICAgcmVhZG9ubHkgc3BvdFN0cmF0ZWd5Pzogc3RyaW5nIHwgcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogUHJvcGVydHkgdGFnczogVGFncyB0byBhdHRhY2ggdG8gaW5zdGFuY2UuIE1heCBzdXBwb3J0IDIwIHRhZ3MgdG8gYWRkIGR1cmluZyBjcmVhdGUgaW5zdGFuY2UuIEVhY2ggdGFnIHdpdGggdHdvIHByb3BlcnRpZXMgS2V5IGFuZCBWYWx1ZSwgYW5kIEtleSBpcyByZXF1aXJlZC5cbiAgICAgKi9cbiAgICByZWFkb25seSB0YWdzPzogUm9zSW5zdGFuY2VDbG9uZS5UYWdzUHJvcGVydHlbXTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IHpvbmVJZDogVGhlIElEIG9mIHRoZSB6b25lIHRvIHdoaWNoIHRoZSBpbnN0YW5jZSBiZWxvbmdzLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgXG4gICAgICogY2FsbCB0aGUgRGVzY3JpYmVab25lcyBvcGVyYXRpb24gdG8gcXVlcnkgdGhlIG1vc3QgcmVjZW50IHpvbmUgbGlzdC4gXG4gICAgICogRGVmYXVsdCB2YWx1ZSBpcyBlbXB0eSwgd2hpY2ggbWVhbnMgcmFuZG9tIHNlbGVjdGlvbi5cbiAgICAgKi9cbiAgICByZWFkb25seSB6b25lSWQ/OiBzdHJpbmcgfCByb3MuSVJlc29sdmFibGU7XG59XG5cbi8qKlxuICogVGhpcyBjbGFzcyBlbmNhcHN1bGF0ZXMgYW5kIGV4dGVuZHMgdGhlIFJPUyByZXNvdXJjZSB0eXBlIGBBTElZVU46OkVDUzo6SW5zdGFuY2VDbG9uZWAsIHdoaWNoIGlzIHVzZWQgdG8gY2xvbmUgYW4gRWxhc3RpYyBDb21wdXRlIFNlcnZpY2UgKEVDUykgaW5zdGFuY2UuXG4gKiBATm90ZSBUaGlzIGNsYXNzIG1heSBoYXZlIHNvbWUgbmV3IGZ1bmN0aW9ucyB0byBmYWNpbGl0YXRlIGRldmVsb3BtZW50LCBzbyBpdCBpcyByZWNvbW1lbmRlZCB0byB1c2UgdGhpcyBjbGFzcyBpbnN0ZWFkIG9mIGBSb3NJbnN0YW5jZUNsb25lYGZvciBhIG1vcmUgY29udmVuaWVudCBkZXZlbG9wbWVudCBleHBlcmllbmNlLlxuICogU2VlIGh0dHBzOi8vd3d3LmFsaWJhYmFjbG91ZC5jb20vaGVscC9yb3MvZGV2ZWxvcGVyLXJlZmVyZW5jZS9hbGl5dW4tZWNzLWluc3RhbmNlY2xvbmVcbiAqL1xuZXhwb3J0IGNsYXNzIEluc3RhbmNlQ2xvbmUgZXh0ZW5kcyByb3MuUmVzb3VyY2Uge1xuICAgIHByb3RlY3RlZCBzY29wZTogcm9zLkNvbnN0cnVjdDtcbiAgICBwcm90ZWN0ZWQgaWQ6IHN0cmluZztcbiAgICBwcm90ZWN0ZWQgcHJvcHM6IEluc3RhbmNlQ2xvbmVQcm9wcztcbiAgICBwcm90ZWN0ZWQgZW5hYmxlUmVzb3VyY2VQcm9wZXJ0eUNvbnN0cmFpbnQ6IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBBdHRyaWJ1dGUgSG9zdE5hbWU6IEhvc3QgbmFtZSBvZiBjcmVhdGVkIGluc3RhbmNlLlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBhdHRySG9zdE5hbWU6IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIEF0dHJpYnV0ZSBJbm5lcklwOiBJbm5lciBJUCBhZGRyZXNzIG9mIHRoZSBzcGVjaWZpZWQgaW5zdGFuY2UuIE9ubHkgZm9yIGNsYXNzaWNhbCBpbnN0YW5jZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgYXR0cklubmVySXA6IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIEF0dHJpYnV0ZSBJbnN0YW5jZUlkOiBUaGUgaW5zdGFuY2UgSUQgb2YgY3JlYXRlZCBlY3MgaW5zdGFuY2VcbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgYXR0ckluc3RhbmNlSWQ6IHJvcy5JUmVzb2x2YWJsZTtcblxuICAgIC8qKlxuICAgICAqIEF0dHJpYnV0ZSBQcmltYXJ5TmV0d29ya0ludGVyZmFjZUlkOiBQcmltYXJ5IG5ldHdvcmsgaW50ZXJmYWNlIElEIG9mIGNyZWF0ZWQgaW5zdGFuY2UuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGF0dHJQcmltYXJ5TmV0d29ya0ludGVyZmFjZUlkOiByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBBdHRyaWJ1dGUgUHJpdmF0ZUlwOiBQcml2YXRlIElQIGFkZHJlc3Mgb2YgY3JlYXRlZCBlY3MgaW5zdGFuY2UuIE9ubHkgZm9yIFZQQyBpbnN0YW5jZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgYXR0clByaXZhdGVJcDogcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogQXR0cmlidXRlIFB1YmxpY0lwOiBQdWJsaWMgSVAgYWRkcmVzcyBvZiBjcmVhdGVkIGVjcyBpbnN0YW5jZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgYXR0clB1YmxpY0lwOiByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBBdHRyaWJ1dGUgU2VjdXJpdHlHcm91cElkczogU2VjdXJpdHkgZ3JvdXAgSUQgbGlzdCBvZiBjcmVhdGVkIGluc3RhbmNlLlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBhdHRyU2VjdXJpdHlHcm91cElkczogcm9zLklSZXNvbHZhYmxlO1xuXG4gICAgLyoqXG4gICAgICogQXR0cmlidXRlIFpvbmVJZDogWm9uZSBJRCBvZiBjcmVhdGVkIGluc3RhbmNlLlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBhdHRyWm9uZUlkOiByb3MuSVJlc29sdmFibGU7XG5cbiAgICAvKipcbiAgICAgKiBQYXJhbSBzY29wZSAtIHNjb3BlIGluIHdoaWNoIHRoaXMgcmVzb3VyY2UgaXMgZGVmaW5lZFxuICAgICAqIFBhcmFtIGlkICAgIC0gc2NvcGVkIGlkIG9mIHRoZSByZXNvdXJjZVxuICAgICAqIFBhcmFtIHByb3BzIC0gcmVzb3VyY2UgcHJvcGVydGllc1xuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKHNjb3BlOiByb3MuQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogSW5zdGFuY2VDbG9uZVByb3BzLCBlbmFibGVSZXNvdXJjZVByb3BlcnR5Q29uc3RyYWludDpib29sZWFuID0gdHJ1ZSkge1xuICAgICAgICBzdXBlcihzY29wZSwgaWQpO1xuICAgICAgICB0aGlzLnNjb3BlID0gc2NvcGU7XG4gICAgICAgIHRoaXMuaWQgPSBpZDtcbiAgICAgICAgdGhpcy5wcm9wcyA9IHByb3BzO1xuICAgICAgICB0aGlzLmVuYWJsZVJlc291cmNlUHJvcGVydHlDb25zdHJhaW50ID0gZW5hYmxlUmVzb3VyY2VQcm9wZXJ0eUNvbnN0cmFpbnQ7XG5cbiAgICAgICAgY29uc3Qgcm9zSW5zdGFuY2VDbG9uZSA9IG5ldyBSb3NJbnN0YW5jZUNsb25lKHRoaXMsIGlkLCAge1xuICAgICAgICAgICAgYmFja2VuZFNlcnZlcldlaWdodDogcHJvcHMuYmFja2VuZFNlcnZlcldlaWdodCA9PT0gdW5kZWZpbmVkIHx8IHByb3BzLmJhY2tlbmRTZXJ2ZXJXZWlnaHQgPT09IG51bGwgPyAxMDAgOiBwcm9wcy5iYWNrZW5kU2VydmVyV2VpZ2h0LFxuICAgICAgICAgICAga2V5UGFpck5hbWU6IHByb3BzLmtleVBhaXJOYW1lLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IHByb3BzLmRlc2NyaXB0aW9uLFxuICAgICAgICAgICAgZGlza01hcHBpbmdzOiBwcm9wcy5kaXNrTWFwcGluZ3MsXG4gICAgICAgICAgICByZXNvdXJjZUdyb3VwSWQ6IHByb3BzLnJlc291cmNlR3JvdXBJZCxcbiAgICAgICAgICAgIHpvbmVJZDogcHJvcHMuem9uZUlkLFxuICAgICAgICAgICAgaW5zdGFuY2VDaGFyZ2VUeXBlOiBwcm9wcy5pbnN0YW5jZUNoYXJnZVR5cGUgPT09IHVuZGVmaW5lZCB8fCBwcm9wcy5pbnN0YW5jZUNoYXJnZVR5cGUgPT09IG51bGwgPyAnUG9zdFBhaWQnIDogcHJvcHMuaW5zdGFuY2VDaGFyZ2VUeXBlLFxuICAgICAgICAgICAgc2VjdXJpdHlHcm91cElkOiBwcm9wcy5zZWN1cml0eUdyb3VwSWQsXG4gICAgICAgICAgICBwZXJpb2Q6IHByb3BzLnBlcmlvZCA9PT0gdW5kZWZpbmVkIHx8IHByb3BzLnBlcmlvZCA9PT0gbnVsbCA/IDEgOiBwcm9wcy5wZXJpb2QsXG4gICAgICAgICAgICBkZWxldGlvblByb3RlY3Rpb246IHByb3BzLmRlbGV0aW9uUHJvdGVjdGlvbixcbiAgICAgICAgICAgIHNvdXJjZUluc3RhbmNlSWQ6IHByb3BzLnNvdXJjZUluc3RhbmNlSWQsXG4gICAgICAgICAgICBsb2FkQmFsYW5jZXJJZFRvQXR0YWNoOiBwcm9wcy5sb2FkQmFsYW5jZXJJZFRvQXR0YWNoLFxuICAgICAgICAgICAgaW5zdGFuY2VOYW1lOiBwcm9wcy5pbnN0YW5jZU5hbWUsXG4gICAgICAgICAgICByYW1Sb2xlTmFtZTogcHJvcHMucmFtUm9sZU5hbWUsXG4gICAgICAgICAgICBpbnRlcm5ldE1heEJhbmR3aWR0aEluOiBwcm9wcy5pbnRlcm5ldE1heEJhbmR3aWR0aEluID09PSB1bmRlZmluZWQgfHwgcHJvcHMuaW50ZXJuZXRNYXhCYW5kd2lkdGhJbiA9PT0gbnVsbCA/IDIwMCA6IHByb3BzLmludGVybmV0TWF4QmFuZHdpZHRoSW4sXG4gICAgICAgICAgICBpbWFnZUlkOiBwcm9wcy5pbWFnZUlkLFxuICAgICAgICAgICAgc3BvdFByaWNlTGltaXQ6IHByb3BzLnNwb3RQcmljZUxpbWl0LFxuICAgICAgICAgICAgdGFnczogcHJvcHMudGFncyxcbiAgICAgICAgICAgIHNwb3RTdHJhdGVneTogcHJvcHMuc3BvdFN0cmF0ZWd5LFxuICAgICAgICAgICAgcGFzc3dvcmQ6IHByb3BzLnBhc3N3b3JkLFxuICAgICAgICB9LCBlbmFibGVSZXNvdXJjZVByb3BlcnR5Q29uc3RyYWludCAmJiB0aGlzLnN0YWNrLmVuYWJsZVJlc291cmNlUHJvcGVydHlDb25zdHJhaW50KTtcbiAgICAgICAgdGhpcy5yZXNvdXJjZSA9IHJvc0luc3RhbmNlQ2xvbmU7XG4gICAgICAgIHRoaXMuYXR0ckhvc3ROYW1lID0gcm9zSW5zdGFuY2VDbG9uZS5hdHRySG9zdE5hbWU7XG4gICAgICAgIHRoaXMuYXR0cklubmVySXAgPSByb3NJbnN0YW5jZUNsb25lLmF0dHJJbm5lcklwO1xuICAgICAgICB0aGlzLmF0dHJJbnN0YW5jZUlkID0gcm9zSW5zdGFuY2VDbG9uZS5hdHRySW5zdGFuY2VJZDtcbiAgICAgICAgdGhpcy5hdHRyUHJpbWFyeU5ldHdvcmtJbnRlcmZhY2VJZCA9IHJvc0luc3RhbmNlQ2xvbmUuYXR0clByaW1hcnlOZXR3b3JrSW50ZXJmYWNlSWQ7XG4gICAgICAgIHRoaXMuYXR0clByaXZhdGVJcCA9IHJvc0luc3RhbmNlQ2xvbmUuYXR0clByaXZhdGVJcDtcbiAgICAgICAgdGhpcy5hdHRyUHVibGljSXAgPSByb3NJbnN0YW5jZUNsb25lLmF0dHJQdWJsaWNJcDtcbiAgICAgICAgdGhpcy5hdHRyU2VjdXJpdHlHcm91cElkcyA9IHJvc0luc3RhbmNlQ2xvbmUuYXR0clNlY3VyaXR5R3JvdXBJZHM7XG4gICAgICAgIHRoaXMuYXR0clpvbmVJZCA9IHJvc0luc3RhbmNlQ2xvbmUuYXR0clpvbmVJZDtcbiAgICB9XG59XG4iXX0=
|