parse-server 8.4.0 → 8.5.0-alpha.10
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/Adapters/Files/GridFSBucketAdapter.js +5 -4
- package/lib/Adapters/Storage/Mongo/MongoStorageAdapter.js +39 -11
- package/lib/Adapters/Storage/Mongo/MongoTransform.js +2 -2
- package/lib/Config.js +72 -10
- package/lib/Deprecator/Deprecations.js +4 -1
- package/lib/GraphQL/ParseGraphQLServer.js +36 -19
- package/lib/Options/Definitions.js +229 -7
- package/lib/Options/docs.js +61 -7
- package/lib/Options/index.js +1 -1
- package/lib/RestQuery.js +37 -13
- package/lib/Routers/UsersRouter.js +2 -2
- package/lib/Security/CheckGroups/CheckGroupServerConfig.js +10 -1
- package/lib/Utils.js +35 -1
- package/lib/defaults.js +6 -2
- package/lib/middlewares.js +2 -1
- package/lib/rest.js +7 -1
- package/package.json +6 -3
- package/types/Options/index.d.ts +56 -7
- package/types/ParseServer.d.ts +5 -0
|
@@ -469,7 +469,7 @@ module.exports.ParseServerOptions = {
|
|
|
469
469
|
},
|
|
470
470
|
publicServerURL: {
|
|
471
471
|
env: 'PARSE_PUBLIC_SERVER_URL',
|
|
472
|
-
help: '
|
|
472
|
+
help: 'Optional. The public URL to Parse Server. This URL will be used to reach Parse Server publicly for features like password reset and email verification links. The option can be set to a string or a function that can be asynchronously resolved. The returned URL string must start with `http://` or `https://`.'
|
|
473
473
|
},
|
|
474
474
|
push: {
|
|
475
475
|
env: 'PARSE_SERVER_PUSH',
|
|
@@ -1002,7 +1002,80 @@ module.exports.FileUploadOptions = {
|
|
|
1002
1002
|
default: ['^(?![xXsS]?[hH][tT][mM][lL]?$)']
|
|
1003
1003
|
}
|
|
1004
1004
|
};
|
|
1005
|
+
/* The available log levels for Parse Server logging. Valid values are:<br>- `'error'` - Error level (highest priority)<br>- `'warn'` - Warning level<br>- `'info'` - Info level (default)<br>- `'verbose'` - Verbose level<br>- `'debug'` - Debug level<br>- `'silly'` - Silly level (lowest priority) */
|
|
1006
|
+
module.exports.LogLevel = {
|
|
1007
|
+
debug: {
|
|
1008
|
+
env: 'PARSE_SERVER_LOG_LEVEL_DEBUG',
|
|
1009
|
+
help: 'Debug level',
|
|
1010
|
+
required: true
|
|
1011
|
+
},
|
|
1012
|
+
error: {
|
|
1013
|
+
env: 'PARSE_SERVER_LOG_LEVEL_ERROR',
|
|
1014
|
+
help: 'Error level - highest priority',
|
|
1015
|
+
required: true
|
|
1016
|
+
},
|
|
1017
|
+
info: {
|
|
1018
|
+
env: 'PARSE_SERVER_LOG_LEVEL_INFO',
|
|
1019
|
+
help: 'Info level - default',
|
|
1020
|
+
required: true
|
|
1021
|
+
},
|
|
1022
|
+
silly: {
|
|
1023
|
+
env: 'PARSE_SERVER_LOG_LEVEL_SILLY',
|
|
1024
|
+
help: 'Silly level - lowest priority',
|
|
1025
|
+
required: true
|
|
1026
|
+
},
|
|
1027
|
+
verbose: {
|
|
1028
|
+
env: 'PARSE_SERVER_LOG_LEVEL_VERBOSE',
|
|
1029
|
+
help: 'Verbose level',
|
|
1030
|
+
required: true
|
|
1031
|
+
},
|
|
1032
|
+
warn: {
|
|
1033
|
+
env: 'PARSE_SERVER_LOG_LEVEL_WARN',
|
|
1034
|
+
help: 'Warning level',
|
|
1035
|
+
required: true
|
|
1036
|
+
}
|
|
1037
|
+
};
|
|
1038
|
+
module.exports.LogClientEvent = {
|
|
1039
|
+
keys: {
|
|
1040
|
+
env: 'PARSE_SERVER_DATABASE_LOG_CLIENT_EVENTS_KEYS',
|
|
1041
|
+
help: 'Optional array of dot-notation paths to extract specific data from the event object. If not provided or empty, the entire event object will be logged.',
|
|
1042
|
+
action: parsers.arrayParser
|
|
1043
|
+
},
|
|
1044
|
+
logLevel: {
|
|
1045
|
+
env: 'PARSE_SERVER_DATABASE_LOG_CLIENT_EVENTS_LOG_LEVEL',
|
|
1046
|
+
help: "The log level to use for this event. See [LogLevel](LogLevel.html) for available values. Defaults to `'info'`.",
|
|
1047
|
+
default: 'info'
|
|
1048
|
+
},
|
|
1049
|
+
name: {
|
|
1050
|
+
env: 'PARSE_SERVER_DATABASE_LOG_CLIENT_EVENTS_NAME',
|
|
1051
|
+
help: 'The MongoDB driver event name to listen for. See the [MongoDB driver events documentation](https://www.mongodb.com/docs/drivers/node/current/fundamentals/monitoring/) for available events.',
|
|
1052
|
+
required: true
|
|
1053
|
+
}
|
|
1054
|
+
};
|
|
1005
1055
|
module.exports.DatabaseOptions = {
|
|
1056
|
+
allowPublicExplain: {
|
|
1057
|
+
env: 'PARSE_SERVER_DATABASE_ALLOW_PUBLIC_EXPLAIN',
|
|
1058
|
+
help: 'Set to `true` to allow `Parse.Query.explain` without master key.<br><br>\u26A0\uFE0F Enabling this option may expose sensitive query performance data to unauthorized users and could potentially be exploited for malicious purposes.',
|
|
1059
|
+
action: parsers.booleanParser,
|
|
1060
|
+
default: true
|
|
1061
|
+
},
|
|
1062
|
+
appName: {
|
|
1063
|
+
env: 'PARSE_SERVER_DATABASE_APP_NAME',
|
|
1064
|
+
help: 'The MongoDB driver option to specify the name of the application that created this MongoClient instance.'
|
|
1065
|
+
},
|
|
1066
|
+
authMechanism: {
|
|
1067
|
+
env: 'PARSE_SERVER_DATABASE_AUTH_MECHANISM',
|
|
1068
|
+
help: 'The MongoDB driver option to specify the authentication mechanism that MongoDB will use to authenticate the connection.'
|
|
1069
|
+
},
|
|
1070
|
+
authMechanismProperties: {
|
|
1071
|
+
env: 'PARSE_SERVER_DATABASE_AUTH_MECHANISM_PROPERTIES',
|
|
1072
|
+
help: 'The MongoDB driver option to specify properties for the specified authMechanism as a comma-separated list of colon-separated key-value pairs.',
|
|
1073
|
+
action: parsers.objectParser
|
|
1074
|
+
},
|
|
1075
|
+
authSource: {
|
|
1076
|
+
env: 'PARSE_SERVER_DATABASE_AUTH_SOURCE',
|
|
1077
|
+
help: "The MongoDB driver option to specify the database name associated with the user's credentials."
|
|
1078
|
+
},
|
|
1006
1079
|
autoSelectFamily: {
|
|
1007
1080
|
env: 'PARSE_SERVER_DATABASE_AUTO_SELECT_FAMILY',
|
|
1008
1081
|
help: 'The MongoDB driver option to set whether the socket attempts to connect to IPv6 and IPv4 addresses until a connection is established. If available, the driver will select the first IPv6 address.',
|
|
@@ -1013,6 +1086,10 @@ module.exports.DatabaseOptions = {
|
|
|
1013
1086
|
help: 'The MongoDB driver option to specify the amount of time in milliseconds to wait for a connection attempt to finish before trying the next address when using the autoSelectFamily option. If set to a positive integer less than 10, the value 10 is used instead.',
|
|
1014
1087
|
action: parsers.numberParser('autoSelectFamilyAttemptTimeout')
|
|
1015
1088
|
},
|
|
1089
|
+
compressors: {
|
|
1090
|
+
env: 'PARSE_SERVER_DATABASE_COMPRESSORS',
|
|
1091
|
+
help: 'The MongoDB driver option to specify an array or comma-delimited string of compressors to enable network compression for communication between this client and a mongod/mongos instance.'
|
|
1092
|
+
},
|
|
1016
1093
|
connectTimeoutMS: {
|
|
1017
1094
|
env: 'PARSE_SERVER_DATABASE_CONNECT_TIMEOUT_MS',
|
|
1018
1095
|
help: 'The MongoDB driver option to specify the amount of time, in milliseconds, to wait to establish a single TCP socket connection to the server before raising an error. Specifying 0 disables the connection timeout.',
|
|
@@ -1060,6 +1137,11 @@ module.exports.DatabaseOptions = {
|
|
|
1060
1137
|
action: parsers.booleanParser,
|
|
1061
1138
|
default: true
|
|
1062
1139
|
},
|
|
1140
|
+
directConnection: {
|
|
1141
|
+
env: 'PARSE_SERVER_DATABASE_DIRECT_CONNECTION',
|
|
1142
|
+
help: 'The MongoDB driver option to force a Single topology type with a connection string containing one host.',
|
|
1143
|
+
action: parsers.booleanParser
|
|
1144
|
+
},
|
|
1063
1145
|
disableIndexFieldValidation: {
|
|
1064
1146
|
env: 'PARSE_SERVER_DATABASE_DISABLE_INDEX_FIELD_VALIDATION',
|
|
1065
1147
|
help: 'Set to `true` to disable validation of index fields. When disabled, indexes can be created even if the fields do not exist in the schema. This can be useful when creating indexes on fields that will be added later.',
|
|
@@ -1071,6 +1153,42 @@ module.exports.DatabaseOptions = {
|
|
|
1071
1153
|
action: parsers.booleanParser,
|
|
1072
1154
|
default: false
|
|
1073
1155
|
},
|
|
1156
|
+
forceServerObjectId: {
|
|
1157
|
+
env: 'PARSE_SERVER_DATABASE_FORCE_SERVER_OBJECT_ID',
|
|
1158
|
+
help: 'The MongoDB driver option to force server to assign _id values instead of driver.',
|
|
1159
|
+
action: parsers.booleanParser
|
|
1160
|
+
},
|
|
1161
|
+
heartbeatFrequencyMS: {
|
|
1162
|
+
env: 'PARSE_SERVER_DATABASE_HEARTBEAT_FREQUENCY_MS',
|
|
1163
|
+
help: 'The MongoDB driver option to specify the frequency in milliseconds at which the driver checks the state of the MongoDB deployment.',
|
|
1164
|
+
action: parsers.numberParser('heartbeatFrequencyMS')
|
|
1165
|
+
},
|
|
1166
|
+
loadBalanced: {
|
|
1167
|
+
env: 'PARSE_SERVER_DATABASE_LOAD_BALANCED',
|
|
1168
|
+
help: 'The MongoDB driver option to instruct the driver it is connecting to a load balancer fronting a mongos like service.',
|
|
1169
|
+
action: parsers.booleanParser
|
|
1170
|
+
},
|
|
1171
|
+
localThresholdMS: {
|
|
1172
|
+
env: 'PARSE_SERVER_DATABASE_LOCAL_THRESHOLD_MS',
|
|
1173
|
+
help: 'The MongoDB driver option to specify the size (in milliseconds) of the latency window for selecting among multiple suitable MongoDB instances.',
|
|
1174
|
+
action: parsers.numberParser('localThresholdMS')
|
|
1175
|
+
},
|
|
1176
|
+
logClientEvents: {
|
|
1177
|
+
env: 'PARSE_SERVER_DATABASE_LOG_CLIENT_EVENTS',
|
|
1178
|
+
help: 'An array of MongoDB client event configurations to enable logging of specific events.',
|
|
1179
|
+
action: parsers.arrayParser,
|
|
1180
|
+
type: 'LogClientEvent[]'
|
|
1181
|
+
},
|
|
1182
|
+
maxConnecting: {
|
|
1183
|
+
env: 'PARSE_SERVER_DATABASE_MAX_CONNECTING',
|
|
1184
|
+
help: 'The MongoDB driver option to specify the maximum number of connections that may be in the process of being established concurrently by the connection pool.',
|
|
1185
|
+
action: parsers.numberParser('maxConnecting')
|
|
1186
|
+
},
|
|
1187
|
+
maxIdleTimeMS: {
|
|
1188
|
+
env: 'PARSE_SERVER_DATABASE_MAX_IDLE_TIME_MS',
|
|
1189
|
+
help: 'The MongoDB driver option to specify the amount of time in milliseconds that a connection can remain idle in the connection pool before being removed and closed.',
|
|
1190
|
+
action: parsers.numberParser('maxIdleTimeMS')
|
|
1191
|
+
},
|
|
1074
1192
|
maxPoolSize: {
|
|
1075
1193
|
env: 'PARSE_SERVER_DATABASE_MAX_POOL_SIZE',
|
|
1076
1194
|
help: 'The MongoDB driver option to set the maximum number of opened, cached, ready-to-use database connections maintained by the driver.',
|
|
@@ -1091,6 +1209,45 @@ module.exports.DatabaseOptions = {
|
|
|
1091
1209
|
help: 'The MongoDB driver option to set the minimum number of opened, cached, ready-to-use database connections maintained by the driver.',
|
|
1092
1210
|
action: parsers.numberParser('minPoolSize')
|
|
1093
1211
|
},
|
|
1212
|
+
proxyHost: {
|
|
1213
|
+
env: 'PARSE_SERVER_DATABASE_PROXY_HOST',
|
|
1214
|
+
help: 'The MongoDB driver option to configure a Socks5 proxy host used for creating TCP connections.'
|
|
1215
|
+
},
|
|
1216
|
+
proxyPassword: {
|
|
1217
|
+
env: 'PARSE_SERVER_DATABASE_PROXY_PASSWORD',
|
|
1218
|
+
help: 'The MongoDB driver option to configure a Socks5 proxy password when the proxy requires username/password authentication.'
|
|
1219
|
+
},
|
|
1220
|
+
proxyPort: {
|
|
1221
|
+
env: 'PARSE_SERVER_DATABASE_PROXY_PORT',
|
|
1222
|
+
help: 'The MongoDB driver option to configure a Socks5 proxy port used for creating TCP connections.',
|
|
1223
|
+
action: parsers.numberParser('proxyPort')
|
|
1224
|
+
},
|
|
1225
|
+
proxyUsername: {
|
|
1226
|
+
env: 'PARSE_SERVER_DATABASE_PROXY_USERNAME',
|
|
1227
|
+
help: 'The MongoDB driver option to configure a Socks5 proxy username when the proxy requires username/password authentication.'
|
|
1228
|
+
},
|
|
1229
|
+
readConcernLevel: {
|
|
1230
|
+
env: 'PARSE_SERVER_DATABASE_READ_CONCERN_LEVEL',
|
|
1231
|
+
help: 'The MongoDB driver option to specify the level of isolation.'
|
|
1232
|
+
},
|
|
1233
|
+
readPreference: {
|
|
1234
|
+
env: 'PARSE_SERVER_DATABASE_READ_PREFERENCE',
|
|
1235
|
+
help: 'The MongoDB driver option to specify the read preferences for this connection.'
|
|
1236
|
+
},
|
|
1237
|
+
readPreferenceTags: {
|
|
1238
|
+
env: 'PARSE_SERVER_DATABASE_READ_PREFERENCE_TAGS',
|
|
1239
|
+
help: 'The MongoDB driver option to specify the tags document as a comma-separated list of colon-separated key-value pairs.',
|
|
1240
|
+
action: parsers.arrayParser
|
|
1241
|
+
},
|
|
1242
|
+
replicaSet: {
|
|
1243
|
+
env: 'PARSE_SERVER_DATABASE_REPLICA_SET',
|
|
1244
|
+
help: 'The MongoDB driver option to specify the name of the replica set, if the mongod is a member of a replica set.'
|
|
1245
|
+
},
|
|
1246
|
+
retryReads: {
|
|
1247
|
+
env: 'PARSE_SERVER_DATABASE_RETRY_READS',
|
|
1248
|
+
help: 'The MongoDB driver option to enable retryable reads.',
|
|
1249
|
+
action: parsers.booleanParser
|
|
1250
|
+
},
|
|
1094
1251
|
retryWrites: {
|
|
1095
1252
|
env: 'PARSE_SERVER_DATABASE_RETRY_WRITES',
|
|
1096
1253
|
help: 'The MongoDB driver option to set whether to retry failed writes.',
|
|
@@ -1101,10 +1258,75 @@ module.exports.DatabaseOptions = {
|
|
|
1101
1258
|
help: 'The duration in seconds after which the schema cache expires and will be refetched from the database. Use this option if using multiple Parse Servers instances connected to the same database. A low duration will cause the schema cache to be updated too often, causing unnecessary database reads. A high duration will cause the schema to be updated too rarely, increasing the time required until schema changes propagate to all server instances. This feature can be used as an alternative or in conjunction with the option `enableSchemaHooks`. Default is infinite which means the schema cache never expires.',
|
|
1102
1259
|
action: parsers.numberParser('schemaCacheTtl')
|
|
1103
1260
|
},
|
|
1261
|
+
serverMonitoringMode: {
|
|
1262
|
+
env: 'PARSE_SERVER_DATABASE_SERVER_MONITORING_MODE',
|
|
1263
|
+
help: 'The MongoDB driver option to instruct the driver monitors to use a specific monitoring mode.'
|
|
1264
|
+
},
|
|
1265
|
+
serverSelectionTimeoutMS: {
|
|
1266
|
+
env: 'PARSE_SERVER_DATABASE_SERVER_SELECTION_TIMEOUT_MS',
|
|
1267
|
+
help: 'The MongoDB driver option to specify the amount of time in milliseconds for a server to be considered suitable for selection.',
|
|
1268
|
+
action: parsers.numberParser('serverSelectionTimeoutMS')
|
|
1269
|
+
},
|
|
1104
1270
|
socketTimeoutMS: {
|
|
1105
1271
|
env: 'PARSE_SERVER_DATABASE_SOCKET_TIMEOUT_MS',
|
|
1106
1272
|
help: 'The MongoDB driver option to specify the amount of time, in milliseconds, spent attempting to send or receive on a socket before timing out. Specifying 0 means no timeout.',
|
|
1107
1273
|
action: parsers.numberParser('socketTimeoutMS')
|
|
1274
|
+
},
|
|
1275
|
+
srvMaxHosts: {
|
|
1276
|
+
env: 'PARSE_SERVER_DATABASE_SRV_MAX_HOSTS',
|
|
1277
|
+
help: 'The MongoDB driver option to specify the maximum number of hosts to connect to when using an srv connection string, a setting of 0 means unlimited hosts.',
|
|
1278
|
+
action: parsers.numberParser('srvMaxHosts')
|
|
1279
|
+
},
|
|
1280
|
+
srvServiceName: {
|
|
1281
|
+
env: 'PARSE_SERVER_DATABASE_SRV_SERVICE_NAME',
|
|
1282
|
+
help: 'The MongoDB driver option to modify the srv URI service name.'
|
|
1283
|
+
},
|
|
1284
|
+
ssl: {
|
|
1285
|
+
env: 'PARSE_SERVER_DATABASE_SSL',
|
|
1286
|
+
help: 'The MongoDB driver option to enable or disable TLS/SSL for the connection (equivalent to tls option).',
|
|
1287
|
+
action: parsers.booleanParser
|
|
1288
|
+
},
|
|
1289
|
+
tls: {
|
|
1290
|
+
env: 'PARSE_SERVER_DATABASE_TLS',
|
|
1291
|
+
help: 'The MongoDB driver option to enable or disable TLS/SSL for the connection.',
|
|
1292
|
+
action: parsers.booleanParser
|
|
1293
|
+
},
|
|
1294
|
+
tlsAllowInvalidCertificates: {
|
|
1295
|
+
env: 'PARSE_SERVER_DATABASE_TLS_ALLOW_INVALID_CERTIFICATES',
|
|
1296
|
+
help: 'The MongoDB driver option to bypass validation of the certificates presented by the mongod/mongos instance.',
|
|
1297
|
+
action: parsers.booleanParser
|
|
1298
|
+
},
|
|
1299
|
+
tlsAllowInvalidHostnames: {
|
|
1300
|
+
env: 'PARSE_SERVER_DATABASE_TLS_ALLOW_INVALID_HOSTNAMES',
|
|
1301
|
+
help: 'The MongoDB driver option to disable hostname validation of the certificate presented by the mongod/mongos instance.',
|
|
1302
|
+
action: parsers.booleanParser
|
|
1303
|
+
},
|
|
1304
|
+
tlsCAFile: {
|
|
1305
|
+
env: 'PARSE_SERVER_DATABASE_TLS_CAFILE',
|
|
1306
|
+
help: 'The MongoDB driver option to specify the location of a local .pem file that contains the root certificate chain from the Certificate Authority.'
|
|
1307
|
+
},
|
|
1308
|
+
tlsCertificateKeyFile: {
|
|
1309
|
+
env: 'PARSE_SERVER_DATABASE_TLS_CERTIFICATE_KEY_FILE',
|
|
1310
|
+
help: "The MongoDB driver option to specify the location of a local .pem file that contains the client's TLS/SSL certificate and key."
|
|
1311
|
+
},
|
|
1312
|
+
tlsCertificateKeyFilePassword: {
|
|
1313
|
+
env: 'PARSE_SERVER_DATABASE_TLS_CERTIFICATE_KEY_FILE_PASSWORD',
|
|
1314
|
+
help: 'The MongoDB driver option to specify the password to decrypt the tlsCertificateKeyFile.'
|
|
1315
|
+
},
|
|
1316
|
+
tlsInsecure: {
|
|
1317
|
+
env: 'PARSE_SERVER_DATABASE_TLS_INSECURE',
|
|
1318
|
+
help: 'The MongoDB driver option to disable various certificate validations.',
|
|
1319
|
+
action: parsers.booleanParser
|
|
1320
|
+
},
|
|
1321
|
+
waitQueueTimeoutMS: {
|
|
1322
|
+
env: 'PARSE_SERVER_DATABASE_WAIT_QUEUE_TIMEOUT_MS',
|
|
1323
|
+
help: 'The MongoDB driver option to specify the maximum time in milliseconds that a thread can wait for a connection to become available.',
|
|
1324
|
+
action: parsers.numberParser('waitQueueTimeoutMS')
|
|
1325
|
+
},
|
|
1326
|
+
zlibCompressionLevel: {
|
|
1327
|
+
env: 'PARSE_SERVER_DATABASE_ZLIB_COMPRESSION_LEVEL',
|
|
1328
|
+
help: 'The MongoDB driver option to specify the compression level if using zlib for network compression (0-9).',
|
|
1329
|
+
action: parsers.numberParser('zlibCompressionLevel')
|
|
1108
1330
|
}
|
|
1109
1331
|
};
|
|
1110
1332
|
module.exports.AuthAdapter = {
|
|
@@ -1117,28 +1339,28 @@ module.exports.AuthAdapter = {
|
|
|
1117
1339
|
module.exports.LogLevels = {
|
|
1118
1340
|
cloudFunctionError: {
|
|
1119
1341
|
env: 'PARSE_SERVER_LOG_LEVELS_CLOUD_FUNCTION_ERROR',
|
|
1120
|
-
help: 'Log level used by the Cloud Code Functions on error. Default is `error`.',
|
|
1342
|
+
help: 'Log level used by the Cloud Code Functions on error. Default is `error`. See [LogLevel](LogLevel.html) for available values.',
|
|
1121
1343
|
default: 'error'
|
|
1122
1344
|
},
|
|
1123
1345
|
cloudFunctionSuccess: {
|
|
1124
1346
|
env: 'PARSE_SERVER_LOG_LEVELS_CLOUD_FUNCTION_SUCCESS',
|
|
1125
|
-
help: 'Log level used by the Cloud Code Functions on success. Default is `info`.',
|
|
1347
|
+
help: 'Log level used by the Cloud Code Functions on success. Default is `info`. See [LogLevel](LogLevel.html) for available values.',
|
|
1126
1348
|
default: 'info'
|
|
1127
1349
|
},
|
|
1128
1350
|
triggerAfter: {
|
|
1129
1351
|
env: 'PARSE_SERVER_LOG_LEVELS_TRIGGER_AFTER',
|
|
1130
|
-
help: 'Log level used by the Cloud Code Triggers `afterSave`, `afterDelete`, `afterFind`, `afterLogout`. Default is `info`.',
|
|
1352
|
+
help: 'Log level used by the Cloud Code Triggers `afterSave`, `afterDelete`, `afterFind`, `afterLogout`. Default is `info`. See [LogLevel](LogLevel.html) for available values.',
|
|
1131
1353
|
default: 'info'
|
|
1132
1354
|
},
|
|
1133
1355
|
triggerBeforeError: {
|
|
1134
1356
|
env: 'PARSE_SERVER_LOG_LEVELS_TRIGGER_BEFORE_ERROR',
|
|
1135
|
-
help: 'Log level used by the Cloud Code Triggers `beforeSave`, `beforeDelete`, `beforeFind`, `beforeLogin` on error. Default is `error`.',
|
|
1357
|
+
help: 'Log level used by the Cloud Code Triggers `beforeSave`, `beforeDelete`, `beforeFind`, `beforeLogin` on error. Default is `error`. See [LogLevel](LogLevel.html) for available values.',
|
|
1136
1358
|
default: 'error'
|
|
1137
1359
|
},
|
|
1138
1360
|
triggerBeforeSuccess: {
|
|
1139
1361
|
env: 'PARSE_SERVER_LOG_LEVELS_TRIGGER_BEFORE_SUCCESS',
|
|
1140
|
-
help: 'Log level used by the Cloud Code Triggers `beforeSave`, `beforeDelete`, `beforeFind`, `beforeLogin` on success. Default is `info`.',
|
|
1362
|
+
help: 'Log level used by the Cloud Code Triggers `beforeSave`, `beforeDelete`, `beforeFind`, `beforeLogin` on success. Default is `info`. See [LogLevel](LogLevel.html) for available values.',
|
|
1141
1363
|
default: 'info'
|
|
1142
1364
|
}
|
|
1143
1365
|
};
|
|
1144
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJwYXJzZXJzIiwicmVxdWlyZSIsIm1vZHVsZSIsImV4cG9ydHMiLCJTY2hlbWFPcHRpb25zIiwiYWZ0ZXJNaWdyYXRpb24iLCJlbnYiLCJoZWxwIiwiYmVmb3JlTWlncmF0aW9uIiwiZGVmaW5pdGlvbnMiLCJyZXF1aXJlZCIsImFjdGlvbiIsIm9iamVjdFBhcnNlciIsImRlZmF1bHQiLCJkZWxldGVFeHRyYUZpZWxkcyIsImJvb2xlYW5QYXJzZXIiLCJrZWVwVW5rbm93bkluZGV4ZXMiLCJsb2NrU2NoZW1hcyIsInJlY3JlYXRlTW9kaWZpZWRGaWVsZHMiLCJzdHJpY3QiLCJQYXJzZVNlcnZlck9wdGlvbnMiLCJhY2NvdW50TG9ja291dCIsInR5cGUiLCJhbGxvd0NsaWVudENsYXNzQ3JlYXRpb24iLCJhbGxvd0N1c3RvbU9iamVjdElkIiwiYWxsb3dFeHBpcmVkQXV0aERhdGFUb2tlbiIsImFsbG93SGVhZGVycyIsImFycmF5UGFyc2VyIiwiYWxsb3dPcmlnaW4iLCJhbmFseXRpY3NBZGFwdGVyIiwibW9kdWxlT3JPYmplY3RQYXJzZXIiLCJhcHBJZCIsImFwcE5hbWUiLCJhdXRoIiwiY2FjaGVBZGFwdGVyIiwiY2FjaGVNYXhTaXplIiwibnVtYmVyUGFyc2VyIiwiY2FjaGVUVEwiLCJjbGllbnRLZXkiLCJjbG91ZCIsImNsdXN0ZXIiLCJudW1iZXJPckJvb2xlYW5QYXJzZXIiLCJjb2xsZWN0aW9uUHJlZml4IiwiY29udmVydEVtYWlsVG9Mb3dlcmNhc2UiLCJjb252ZXJ0VXNlcm5hbWVUb0xvd2VyY2FzZSIsImN1c3RvbVBhZ2VzIiwiZGF0YWJhc2VBZGFwdGVyIiwiZGF0YWJhc2VPcHRpb25zIiwiZGF0YWJhc2VVUkkiLCJkZWZhdWx0TGltaXQiLCJkaXJlY3RBY2Nlc3MiLCJkb3ROZXRLZXkiLCJlbWFpbEFkYXB0ZXIiLCJlbWFpbFZlcmlmeVRva2VuUmV1c2VJZlZhbGlkIiwiZW1haWxWZXJpZnlUb2tlblZhbGlkaXR5RHVyYXRpb24iLCJlbmFibGVBbm9ueW1vdXNVc2VycyIsImVuYWJsZUNvbGxhdGlvbkNhc2VDb21wYXJpc29uIiwiZW5hYmxlRXhwcmVzc0Vycm9ySGFuZGxlciIsImVuYWJsZUluc2VjdXJlQXV0aEFkYXB0ZXJzIiwiZW5jb2RlUGFyc2VPYmplY3RJbkNsb3VkRnVuY3Rpb24iLCJlbmNyeXB0aW9uS2V5IiwiZW5mb3JjZVByaXZhdGVVc2VycyIsImV4cGlyZUluYWN0aXZlU2Vzc2lvbnMiLCJleHRlbmRTZXNzaW9uT25Vc2UiLCJmaWxlS2V5IiwiZmlsZXNBZGFwdGVyIiwiZmlsZVVwbG9hZCIsImdyYXBoUUxQYXRoIiwiZ3JhcGhRTFB1YmxpY0ludHJvc3BlY3Rpb24iLCJncmFwaFFMU2NoZW1hIiwiaG9zdCIsImlkZW1wb3RlbmN5T3B0aW9ucyIsImphdmFzY3JpcHRLZXkiLCJqc29uTG9ncyIsImxpdmVRdWVyeSIsImxpdmVRdWVyeVNlcnZlck9wdGlvbnMiLCJsb2dnZXJBZGFwdGVyIiwibG9nTGV2ZWwiLCJsb2dMZXZlbHMiLCJsb2dzRm9sZGVyIiwibWFpbnRlbmFuY2VLZXkiLCJtYWludGVuYW5jZUtleUlwcyIsIm1hc3RlcktleSIsIm1hc3RlcktleUlwcyIsIm1hc3RlcktleVR0bCIsIm1heExpbWl0IiwibWF4TG9nRmlsZXMiLCJudW1iZXJPclN0cmluZ1BhcnNlciIsIm1heFVwbG9hZFNpemUiLCJtaWRkbGV3YXJlIiwibW91bnRHcmFwaFFMIiwibW91bnRQYXRoIiwibW91bnRQbGF5Z3JvdW5kIiwib2JqZWN0SWRTaXplIiwicGFnZXMiLCJwYXNzd29yZFBvbGljeSIsInBsYXlncm91bmRQYXRoIiwicG9ydCIsInByZXNlcnZlRmlsZU5hbWUiLCJwcmV2ZW50TG9naW5XaXRoVW52ZXJpZmllZEVtYWlsIiwicHJldmVudFNpZ251cFdpdGhVbnZlcmlmaWVkRW1haWwiLCJwcm90ZWN0ZWRGaWVsZHMiLCJfVXNlciIsInB1YmxpY1NlcnZlclVSTCIsInB1c2giLCJyYXRlTGltaXQiLCJyZWFkT25seU1hc3RlcktleSIsInJlcXVlc3RDb250ZXh0TWlkZGxld2FyZSIsInJlcXVlc3RLZXl3b3JkRGVueWxpc3QiLCJrZXkiLCJ2YWx1ZSIsInJlc3RBUElLZXkiLCJyZXZva2VTZXNzaW9uT25QYXNzd29yZFJlc2V0Iiwic2NoZWR1bGVkUHVzaCIsInNjaGVtYSIsInNlY3VyaXR5Iiwic2VuZFVzZXJFbWFpbFZlcmlmaWNhdGlvbiIsInNlcnZlckNsb3NlQ29tcGxldGUiLCJzZXJ2ZXJVUkwiLCJzZXNzaW9uTGVuZ3RoIiwic2lsZW50Iiwic3RhcnRMaXZlUXVlcnlTZXJ2ZXIiLCJ0cnVzdFByb3h5IiwidXNlclNlbnNpdGl2ZUZpZWxkcyIsInZlcmJvc2UiLCJ2ZXJpZnlTZXJ2ZXJVcmwiLCJ2ZXJpZnlVc2VyRW1haWxzIiwid2ViaG9va0tleSIsIlJhdGVMaW1pdE9wdGlvbnMiLCJlcnJvclJlc3BvbnNlTWVzc2FnZSIsImluY2x1ZGVJbnRlcm5hbFJlcXVlc3RzIiwiaW5jbHVkZU1hc3RlcktleSIsInJlZGlzVXJsIiwicmVxdWVzdENvdW50IiwicmVxdWVzdE1ldGhvZHMiLCJyZXF1ZXN0UGF0aCIsInJlcXVlc3RUaW1lV2luZG93Iiwiem9uZSIsIlNlY3VyaXR5T3B0aW9ucyIsImNoZWNrR3JvdXBzIiwiZW5hYmxlQ2hlY2siLCJlbmFibGVDaGVja0xvZyIsIlBhZ2VzT3B0aW9ucyIsImN1c3RvbVJvdXRlcyIsImN1c3RvbVVybHMiLCJlbmFibGVMb2NhbGl6YXRpb24iLCJlbmFibGVSb3V0ZXIiLCJmb3JjZVJlZGlyZWN0IiwibG9jYWxpemF0aW9uRmFsbGJhY2tMb2NhbGUiLCJsb2NhbGl6YXRpb25Kc29uUGF0aCIsInBhZ2VzRW5kcG9pbnQiLCJwYWdlc1BhdGgiLCJwbGFjZWhvbGRlcnMiLCJQYWdlc1JvdXRlIiwiaGFuZGxlciIsIm1ldGhvZCIsInBhdGgiLCJQYWdlc0N1c3RvbVVybHNPcHRpb25zIiwiZW1haWxWZXJpZmljYXRpb25MaW5rRXhwaXJlZCIsImVtYWlsVmVyaWZpY2F0aW9uTGlua0ludmFsaWQiLCJlbWFpbFZlcmlmaWNhdGlvblNlbmRGYWlsIiwiZW1haWxWZXJpZmljYXRpb25TZW5kU3VjY2VzcyIsImVtYWlsVmVyaWZpY2F0aW9uU3VjY2VzcyIsInBhc3N3b3JkUmVzZXQiLCJwYXNzd29yZFJlc2V0TGlua0ludmFsaWQiLCJwYXNzd29yZFJlc2V0U3VjY2VzcyIsIkN1c3RvbVBhZ2VzT3B0aW9ucyIsImNob29zZVBhc3N3b3JkIiwiZXhwaXJlZFZlcmlmaWNhdGlvbkxpbmsiLCJpbnZhbGlkTGluayIsImludmFsaWRQYXNzd29yZFJlc2V0TGluayIsImludmFsaWRWZXJpZmljYXRpb25MaW5rIiwibGlua1NlbmRGYWlsIiwibGlua1NlbmRTdWNjZXNzIiwicGFyc2VGcmFtZVVSTCIsInZlcmlmeUVtYWlsU3VjY2VzcyIsIkxpdmVRdWVyeU9wdGlvbnMiLCJjbGFzc05hbWVzIiwicHViU3ViQWRhcHRlciIsInJlZGlzT3B0aW9ucyIsInJlZGlzVVJMIiwid3NzQWRhcHRlciIsIkxpdmVRdWVyeVNlcnZlck9wdGlvbnMiLCJjYWNoZVRpbWVvdXQiLCJrZXlQYWlycyIsIndlYnNvY2tldFRpbWVvdXQiLCJJZGVtcG90ZW5jeU9wdGlvbnMiLCJwYXRocyIsInR0bCIsIkFjY291bnRMb2Nrb3V0T3B0aW9ucyIsImR1cmF0aW9uIiwidGhyZXNob2xkIiwidW5sb2NrT25QYXNzd29yZFJlc2V0IiwiUGFzc3dvcmRQb2xpY3lPcHRpb25zIiwiZG9Ob3RBbGxvd1VzZXJuYW1lIiwibWF4UGFzc3dvcmRBZ2UiLCJtYXhQYXNzd29yZEhpc3RvcnkiLCJyZXNldFBhc3N3b3JkU3VjY2Vzc09uSW52YWxpZEVtYWlsIiwicmVzZXRUb2tlblJldXNlSWZWYWxpZCIsInJlc2V0VG9rZW5WYWxpZGl0eUR1cmF0aW9uIiwidmFsaWRhdGlvbkVycm9yIiwidmFsaWRhdG9yQ2FsbGJhY2siLCJ2YWxpZGF0b3JQYXR0ZXJuIiwiRmlsZVVwbG9hZE9wdGlvbnMiLCJlbmFibGVGb3JBbm9ueW1vdXNVc2VyIiwiZW5hYmxlRm9yQXV0aGVudGljYXRlZFVzZXIiLCJlbmFibGVGb3JQdWJsaWMiLCJmaWxlRXh0ZW5zaW9ucyIsIkRhdGFiYXNlT3B0aW9ucyIsImF1dG9TZWxlY3RGYW1pbHkiLCJhdXRvU2VsZWN0RmFtaWx5QXR0ZW1wdFRpbWVvdXQiLCJjb25uZWN0VGltZW91dE1TIiwiY3JlYXRlSW5kZXhSb2xlTmFtZSIsImNyZWF0ZUluZGV4VXNlckVtYWlsIiwiY3JlYXRlSW5kZXhVc2VyRW1haWxDYXNlSW5zZW5zaXRpdmUiLCJjcmVhdGVJbmRleFVzZXJFbWFpbFZlcmlmeVRva2VuIiwiY3JlYXRlSW5kZXhVc2VyUGFzc3dvcmRSZXNldFRva2VuIiwiY3JlYXRlSW5kZXhVc2VyVXNlcm5hbWUiLCJjcmVhdGVJbmRleFVzZXJVc2VybmFtZUNhc2VJbnNlbnNpdGl2ZSIsImRpc2FibGVJbmRleEZpZWxkVmFsaWRhdGlvbiIsImVuYWJsZVNjaGVtYUhvb2tzIiwibWF4UG9vbFNpemUiLCJtYXhTdGFsZW5lc3NTZWNvbmRzIiwibWF4VGltZU1TIiwibWluUG9vbFNpemUiLCJyZXRyeVdyaXRlcyIsInNjaGVtYUNhY2hlVHRsIiwic29ja2V0VGltZW91dE1TIiwiQXV0aEFkYXB0ZXIiLCJlbmFibGVkIiwiTG9nTGV2ZWxzIiwiY2xvdWRGdW5jdGlvbkVycm9yIiwiY2xvdWRGdW5jdGlvblN1Y2Nlc3MiLCJ0cmlnZ2VyQWZ0ZXIiLCJ0cmlnZ2VyQmVmb3JlRXJyb3IiLCJ0cmlnZ2VyQmVmb3JlU3VjY2VzcyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9PcHRpb25zL0RlZmluaXRpb25zLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qXG4qKioqIEdFTkVSQVRFRCBDT0RFICoqKipcblRoaXMgY29kZSBoYXMgYmVlbiBnZW5lcmF0ZWQgYnkgcmVzb3VyY2VzL2J1aWxkQ29uZmlnRGVmaW5pdGlvbnMuanNcbkRvIG5vdCBlZGl0IG1hbnVhbGx5LCBidXQgdXBkYXRlIE9wdGlvbnMvaW5kZXguanNcbiovXG52YXIgcGFyc2VycyA9IHJlcXVpcmUoJy4vcGFyc2VycycpO1xubW9kdWxlLmV4cG9ydHMuU2NoZW1hT3B0aW9ucyA9IHtcbiAgYWZ0ZXJNaWdyYXRpb246IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfU0NIRU1BX0FGVEVSX01JR1JBVElPTicsXG4gICAgaGVscDogJ0V4ZWN1dGUgYSBjYWxsYmFjayBhZnRlciBydW5uaW5nIHNjaGVtYSBtaWdyYXRpb25zLicsXG4gIH0sXG4gIGJlZm9yZU1pZ3JhdGlvbjoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9TQ0hFTUFfQkVGT1JFX01JR1JBVElPTicsXG4gICAgaGVscDogJ0V4ZWN1dGUgYSBjYWxsYmFjayBiZWZvcmUgcnVubmluZyBzY2hlbWEgbWlncmF0aW9ucy4nLFxuICB9LFxuICBkZWZpbml0aW9uczoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9TQ0hFTUFfREVGSU5JVElPTlMnLFxuICAgIGhlbHA6XG4gICAgICAnUmVzdCByZXByZXNlbnRhdGlvbiBvbiBQYXJzZS5TY2hlbWEgaHR0cHM6Ly9kb2NzLnBhcnNlcGxhdGZvcm0ub3JnL3Jlc3QvZ3VpZGUvI2FkZGluZy1hLXNjaGVtYScsXG4gICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm9iamVjdFBhcnNlcixcbiAgICBkZWZhdWx0OiBbXSxcbiAgfSxcbiAgZGVsZXRlRXh0cmFGaWVsZHM6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfU0NIRU1BX0RFTEVURV9FWFRSQV9GSUVMRFMnLFxuICAgIGhlbHA6XG4gICAgICAnSXMgdHJ1ZSBpZiBQYXJzZSBTZXJ2ZXIgc2hvdWxkIGRlbGV0ZSBhbnkgZmllbGRzIG5vdCBkZWZpbmVkIGluIGEgc2NoZW1hIGRlZmluaXRpb24uIFRoaXMgc2hvdWxkIG9ubHkgYmUgdXNlZCBkdXJpbmcgZGV2ZWxvcG1lbnQuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiBmYWxzZSxcbiAgfSxcbiAga2VlcFVua25vd25JbmRleGVzOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1NDSEVNQV9LRUVQX1VOS05PV05fSU5ERVhFUycsXG4gICAgaGVscDpcbiAgICAgIFwiKE9wdGlvbmFsKSBLZWVwIGluZGV4ZXMgdGhhdCBhcmUgcHJlc2VudCBpbiB0aGUgZGF0YWJhc2UgYnV0IG5vdCBkZWZpbmVkIGluIHRoZSBzY2hlbWEuIFNldCB0aGlzIHRvIGB0cnVlYCBpZiB5b3UgYXJlIGFkZGluZyBpbmRleGVzIG1hbnVhbGx5LCBzbyB0aGF0IHRoZXkgd29uJ3QgYmUgcmVtb3ZlZCB3aGVuIHJ1bm5pbmcgc2NoZW1hIG1pZ3JhdGlvbi4gRGVmYXVsdCBpcyBgZmFsc2VgLlwiLFxuICAgIGFjdGlvbjogcGFyc2Vycy5ib29sZWFuUGFyc2VyLFxuICAgIGRlZmF1bHQ6IGZhbHNlLFxuICB9LFxuICBsb2NrU2NoZW1hczoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9TQ0hFTUFfTE9DS19TQ0hFTUFTJyxcbiAgICBoZWxwOlxuICAgICAgJ0lzIHRydWUgaWYgUGFyc2UgU2VydmVyIHdpbGwgcmVqZWN0IGFueSBhdHRlbXB0cyB0byBtb2RpZnkgdGhlIHNjaGVtYSB3aGlsZSB0aGUgc2VydmVyIGlzIHJ1bm5pbmcuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiBmYWxzZSxcbiAgfSxcbiAgcmVjcmVhdGVNb2RpZmllZEZpZWxkczoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9TQ0hFTUFfUkVDUkVBVEVfTU9ESUZJRURfRklFTERTJyxcbiAgICBoZWxwOlxuICAgICAgJ0lzIHRydWUgaWYgUGFyc2UgU2VydmVyIHNob3VsZCByZWNyZWF0ZSBhbnkgZmllbGRzIHRoYXQgYXJlIGRpZmZlcmVudCBiZXR3ZWVuIHRoZSBjdXJyZW50IGRhdGFiYXNlIHNjaGVtYSBhbmQgdGhlc2NoZW1hIGRlZmluaXRpb24uIFRoaXMgc2hvdWxkIG9ubHkgYmUgdXNlZCBkdXJpbmcgZGV2ZWxvcG1lbnQuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiBmYWxzZSxcbiAgfSxcbiAgc3RyaWN0OiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1NDSEVNQV9TVFJJQ1QnLFxuICAgIGhlbHA6ICdJcyB0cnVlIGlmIFBhcnNlIFNlcnZlciBzaG91bGQgZXhpdCBpZiBzY2hlbWEgdXBkYXRlIGZhaWwuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiBmYWxzZSxcbiAgfSxcbn07XG5tb2R1bGUuZXhwb3J0cy5QYXJzZVNlcnZlck9wdGlvbnMgPSB7XG4gIGFjY291bnRMb2Nrb3V0OiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0FDQ09VTlRfTE9DS09VVCcsXG4gICAgaGVscDogJ1RoZSBhY2NvdW50IGxvY2tvdXQgcG9saWN5IGZvciBmYWlsZWQgbG9naW4gYXR0ZW1wdHMuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMub2JqZWN0UGFyc2VyLFxuICAgIHR5cGU6ICdBY2NvdW50TG9ja291dE9wdGlvbnMnLFxuICB9LFxuICBhbGxvd0NsaWVudENsYXNzQ3JlYXRpb246IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfQUxMT1dfQ0xJRU5UX0NMQVNTX0NSRUFUSU9OJyxcbiAgICBoZWxwOiAnRW5hYmxlIChvciBkaXNhYmxlKSBjbGllbnQgY2xhc3MgY3JlYXRpb24sIGRlZmF1bHRzIHRvIGZhbHNlJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiBmYWxzZSxcbiAgfSxcbiAgYWxsb3dDdXN0b21PYmplY3RJZDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9BTExPV19DVVNUT01fT0JKRUNUX0lEJyxcbiAgICBoZWxwOiAnRW5hYmxlIChvciBkaXNhYmxlKSBjdXN0b20gb2JqZWN0SWQnLFxuICAgIGFjdGlvbjogcGFyc2Vycy5ib29sZWFuUGFyc2VyLFxuICAgIGRlZmF1bHQ6IGZhbHNlLFxuICB9LFxuICBhbGxvd0V4cGlyZWRBdXRoRGF0YVRva2VuOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0FMTE9XX0VYUElSRURfQVVUSF9EQVRBX1RPS0VOJyxcbiAgICBoZWxwOlxuICAgICAgJ0FsbG93IGEgdXNlciB0byBsb2cgaW4gZXZlbiBpZiB0aGUgM3JkIHBhcnR5IGF1dGhlbnRpY2F0aW9uIHRva2VuIHRoYXQgd2FzIHVzZWQgdG8gc2lnbiBpbiB0byB0aGVpciBhY2NvdW50IGhhcyBleHBpcmVkLiBJZiB0aGlzIGlzIHNldCB0byBgZmFsc2VgLCB0aGVuIHRoZSB0b2tlbiB3aWxsIGJlIHZhbGlkYXRlZCBldmVyeSB0aW1lIHRoZSB1c2VyIHNpZ25zIGluIHRvIHRoZWlyIGFjY291bnQuIFRoaXMgcmVmZXJzIHRvIHRoZSB0b2tlbiB0aGF0IGlzIHN0b3JlZCBpbiB0aGUgYF9Vc2VyLmF1dGhEYXRhYCBmaWVsZC4gRGVmYXVsdHMgdG8gYGZhbHNlYC4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5ib29sZWFuUGFyc2VyLFxuICAgIGRlZmF1bHQ6IGZhbHNlLFxuICB9LFxuICBhbGxvd0hlYWRlcnM6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfQUxMT1dfSEVBREVSUycsXG4gICAgaGVscDogJ0FkZCBoZWFkZXJzIHRvIEFjY2Vzcy1Db250cm9sLUFsbG93LUhlYWRlcnMnLFxuICAgIGFjdGlvbjogcGFyc2Vycy5hcnJheVBhcnNlcixcbiAgfSxcbiAgYWxsb3dPcmlnaW46IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfQUxMT1dfT1JJR0lOJyxcbiAgICBoZWxwOlxuICAgICAgJ1NldHMgb3JpZ2lucyBmb3IgQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luLiBUaGlzIGNhbiBiZSBhIHN0cmluZyBmb3IgYSBzaW5nbGUgb3JpZ2luIG9yIGFuIGFycmF5IG9mIHN0cmluZ3MgZm9yIG11bHRpcGxlIG9yaWdpbnMuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYXJyYXlQYXJzZXIsXG4gIH0sXG4gIGFuYWx5dGljc0FkYXB0ZXI6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfQU5BTFlUSUNTX0FEQVBURVInLFxuICAgIGhlbHA6ICdBZGFwdGVyIG1vZHVsZSBmb3IgdGhlIGFuYWx5dGljcycsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm1vZHVsZU9yT2JqZWN0UGFyc2VyLFxuICB9LFxuICBhcHBJZDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9BUFBMSUNBVElPTl9JRCcsXG4gICAgaGVscDogJ1lvdXIgUGFyc2UgQXBwbGljYXRpb24gSUQnLFxuICAgIHJlcXVpcmVkOiB0cnVlLFxuICB9LFxuICBhcHBOYW1lOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0FQUF9OQU1FJyxcbiAgICBoZWxwOiAnU2V0cyB0aGUgYXBwIG5hbWUnLFxuICB9LFxuICBhdXRoOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0FVVEhfUFJPVklERVJTJyxcbiAgICBoZWxwOlxuICAgICAgJ0NvbmZpZ3VyYXRpb24gZm9yIHlvdXIgYXV0aGVudGljYXRpb24gcHJvdmlkZXJzLCBhcyBzdHJpbmdpZmllZCBKU09OLiBTZWUgaHR0cDovL2RvY3MucGFyc2VwbGF0Zm9ybS5vcmcvcGFyc2Utc2VydmVyL2d1aWRlLyNvYXV0aC1hbmQtM3JkLXBhcnR5LWF1dGhlbnRpY2F0aW9uJyxcbiAgfSxcbiAgY2FjaGVBZGFwdGVyOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0NBQ0hFX0FEQVBURVInLFxuICAgIGhlbHA6ICdBZGFwdGVyIG1vZHVsZSBmb3IgdGhlIGNhY2hlJyxcbiAgICBhY3Rpb246IHBhcnNlcnMubW9kdWxlT3JPYmplY3RQYXJzZXIsXG4gIH0sXG4gIGNhY2hlTWF4U2l6ZToge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9DQUNIRV9NQVhfU0laRScsXG4gICAgaGVscDogJ1NldHMgdGhlIG1heGltdW0gc2l6ZSBmb3IgdGhlIGluIG1lbW9yeSBjYWNoZSwgZGVmYXVsdHMgdG8gMTAwMDAnLFxuICAgIGFjdGlvbjogcGFyc2Vycy5udW1iZXJQYXJzZXIoJ2NhY2hlTWF4U2l6ZScpLFxuICAgIGRlZmF1bHQ6IDEwMDAwLFxuICB9LFxuICBjYWNoZVRUTDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9DQUNIRV9UVEwnLFxuICAgIGhlbHA6ICdTZXRzIHRoZSBUVEwgZm9yIHRoZSBpbiBtZW1vcnkgY2FjaGUgKGluIG1zKSwgZGVmYXVsdHMgdG8gNTAwMCAoNSBzZWNvbmRzKScsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm51bWJlclBhcnNlcignY2FjaGVUVEwnKSxcbiAgICBkZWZhdWx0OiA1MDAwLFxuICB9LFxuICBjbGllbnRLZXk6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfQ0xJRU5UX0tFWScsXG4gICAgaGVscDogJ0tleSBmb3IgaU9TLCBNYWNPUywgdHZPUyBjbGllbnRzJyxcbiAgfSxcbiAgY2xvdWQ6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfQ0xPVUQnLFxuICAgIGhlbHA6ICdGdWxsIHBhdGggdG8geW91ciBjbG91ZCBjb2RlIG1haW4uanMnLFxuICB9LFxuICBjbHVzdGVyOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0NMVVNURVInLFxuICAgIGhlbHA6ICdSdW4gd2l0aCBjbHVzdGVyLCBvcHRpb25hbGx5IHNldCB0aGUgbnVtYmVyIG9mIHByb2Nlc3NlcyBkZWZhdWx0IHRvIG9zLmNwdXMoKS5sZW5ndGgnLFxuICAgIGFjdGlvbjogcGFyc2Vycy5udW1iZXJPckJvb2xlYW5QYXJzZXIsXG4gIH0sXG4gIGNvbGxlY3Rpb25QcmVmaXg6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfQ09MTEVDVElPTl9QUkVGSVgnLFxuICAgIGhlbHA6ICdBIGNvbGxlY3Rpb24gcHJlZml4IGZvciB0aGUgY2xhc3NlcycsXG4gICAgZGVmYXVsdDogJycsXG4gIH0sXG4gIGNvbnZlcnRFbWFpbFRvTG93ZXJjYXNlOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0NPTlZFUlRfRU1BSUxfVE9fTE9XRVJDQVNFJyxcbiAgICBoZWxwOlxuICAgICAgJ09wdGlvbmFsLiBJZiBzZXQgdG8gYHRydWVgLCB0aGUgYGVtYWlsYCBwcm9wZXJ0eSBvZiBhIHVzZXIgaXMgYXV0b21hdGljYWxseSBjb252ZXJ0ZWQgdG8gbG93ZXJjYXNlIGJlZm9yZSBiZWluZyBzdG9yZWQgaW4gdGhlIGRhdGFiYXNlLiBDb25zZXF1ZW50bHksIHF1ZXJpZXMgbXVzdCBtYXRjaCB0aGUgY2FzZSBhcyBzdG9yZWQgaW4gdGhlIGRhdGFiYXNlLCB3aGljaCB3b3VsZCBiZSBsb3dlcmNhc2UgaW4gdGhpcyBzY2VuYXJpby4gSWYgYGZhbHNlYCwgdGhlIGBlbWFpbGAgcHJvcGVydHkgaXMgc3RvcmVkIGFzIHNldCwgd2l0aG91dCBhbnkgY2FzZSBtb2RpZmljYXRpb25zLiBEZWZhdWx0IGlzIGBmYWxzZWAuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiBmYWxzZSxcbiAgfSxcbiAgY29udmVydFVzZXJuYW1lVG9Mb3dlcmNhc2U6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfQ09OVkVSVF9VU0VSTkFNRV9UT19MT1dFUkNBU0UnLFxuICAgIGhlbHA6XG4gICAgICAnT3B0aW9uYWwuIElmIHNldCB0byBgdHJ1ZWAsIHRoZSBgdXNlcm5hbWVgIHByb3BlcnR5IG9mIGEgdXNlciBpcyBhdXRvbWF0aWNhbGx5IGNvbnZlcnRlZCB0byBsb3dlcmNhc2UgYmVmb3JlIGJlaW5nIHN0b3JlZCBpbiB0aGUgZGF0YWJhc2UuIENvbnNlcXVlbnRseSwgcXVlcmllcyBtdXN0IG1hdGNoIHRoZSBjYXNlIGFzIHN0b3JlZCBpbiB0aGUgZGF0YWJhc2UsIHdoaWNoIHdvdWxkIGJlIGxvd2VyY2FzZSBpbiB0aGlzIHNjZW5hcmlvLiBJZiBgZmFsc2VgLCB0aGUgYHVzZXJuYW1lYCBwcm9wZXJ0eSBpcyBzdG9yZWQgYXMgc2V0LCB3aXRob3V0IGFueSBjYXNlIG1vZGlmaWNhdGlvbnMuIERlZmF1bHQgaXMgYGZhbHNlYC4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5ib29sZWFuUGFyc2VyLFxuICAgIGRlZmF1bHQ6IGZhbHNlLFxuICB9LFxuICBjdXN0b21QYWdlczoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9DVVNUT01fUEFHRVMnLFxuICAgIGhlbHA6ICdjdXN0b20gcGFnZXMgZm9yIHBhc3N3b3JkIHZhbGlkYXRpb24gYW5kIHJlc2V0JyxcbiAgICBhY3Rpb246IHBhcnNlcnMub2JqZWN0UGFyc2VyLFxuICAgIHR5cGU6ICdDdXN0b21QYWdlc09wdGlvbnMnLFxuICAgIGRlZmF1bHQ6IHt9LFxuICB9LFxuICBkYXRhYmFzZUFkYXB0ZXI6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfREFUQUJBU0VfQURBUFRFUicsXG4gICAgaGVscDpcbiAgICAgICdBZGFwdGVyIG1vZHVsZSBmb3IgdGhlIGRhdGFiYXNlOyBhbnkgb3B0aW9ucyB0aGF0IGFyZSBub3QgZXhwbGljaXRseSBkZXNjcmliZWQgaGVyZSBhcmUgcGFzc2VkIGRpcmVjdGx5IHRvIHRoZSBkYXRhYmFzZSBjbGllbnQuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMubW9kdWxlT3JPYmplY3RQYXJzZXIsXG4gIH0sXG4gIGRhdGFiYXNlT3B0aW9uczoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9EQVRBQkFTRV9PUFRJT05TJyxcbiAgICBoZWxwOiAnT3B0aW9ucyB0byBwYXNzIHRvIHRoZSBkYXRhYmFzZSBjbGllbnQnLFxuICAgIGFjdGlvbjogcGFyc2Vycy5vYmplY3RQYXJzZXIsXG4gICAgdHlwZTogJ0RhdGFiYXNlT3B0aW9ucycsXG4gIH0sXG4gIGRhdGFiYXNlVVJJOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0RBVEFCQVNFX1VSSScsXG4gICAgaGVscDogJ1RoZSBmdWxsIFVSSSB0byB5b3VyIGRhdGFiYXNlLiBTdXBwb3J0ZWQgZGF0YWJhc2VzIGFyZSBtb25nb2RiIG9yIHBvc3RncmVzLicsXG4gICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgZGVmYXVsdDogJ21vbmdvZGI6Ly9sb2NhbGhvc3Q6MjcwMTcvcGFyc2UnLFxuICB9LFxuICBkZWZhdWx0TGltaXQ6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfREVGQVVMVF9MSU1JVCcsXG4gICAgaGVscDogJ0RlZmF1bHQgdmFsdWUgZm9yIGxpbWl0IG9wdGlvbiBvbiBxdWVyaWVzLCBkZWZhdWx0cyB0byBgMTAwYC4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5udW1iZXJQYXJzZXIoJ2RlZmF1bHRMaW1pdCcpLFxuICAgIGRlZmF1bHQ6IDEwMCxcbiAgfSxcbiAgZGlyZWN0QWNjZXNzOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0RJUkVDVF9BQ0NFU1MnLFxuICAgIGhlbHA6XG4gICAgICAnU2V0IHRvIGB0cnVlYCBpZiBQYXJzZSByZXF1ZXN0cyB3aXRoaW4gdGhlIHNhbWUgTm9kZS5qcyBlbnZpcm9ubWVudCBhcyBQYXJzZSBTZXJ2ZXIgc2hvdWxkIGJlIHJvdXRlZCB0byBQYXJzZSBTZXJ2ZXIgZGlyZWN0bHkgaW5zdGVhZCBvZiB2aWEgdGhlIEhUVFAgaW50ZXJmYWNlLiBEZWZhdWx0IGlzIGBmYWxzZWAuPGJyPjxicj5JZiBzZXQgdG8gYGZhbHNlYCB0aGVuIFBhcnNlIHJlcXVlc3RzIHdpdGhpbiB0aGUgc2FtZSBOb2RlLmpzIGVudmlyb25tZW50IGFzIFBhcnNlIFNlcnZlciBhcmUgZXhlY3V0ZWQgYXMgSFRUUCByZXF1ZXN0cyBzZW50IHRvIFBhcnNlIFNlcnZlciB2aWEgdGhlIGBzZXJ2ZXJVUkxgLiBGb3IgZXhhbXBsZSwgYSBgUGFyc2UuUXVlcnlgIGluIENsb3VkIENvZGUgaXMgY2FsbGluZyBQYXJzZSBTZXJ2ZXIgdmlhIGEgSFRUUCByZXF1ZXN0LiBUaGUgc2VydmVyIGlzIGVzc2VudGlhbGx5IG1ha2luZyBhIEhUVFAgcmVxdWVzdCB0byBpdHNlbGYsIHVubmVjZXNzYXJpbHkgdXNpbmcgbmV0d29yayByZXNvdXJjZXMgc3VjaCBhcyBuZXR3b3JrIHBvcnRzLjxicj48YnI+XFx1MjZBMFxcdUZFMEYgSW4gZW52aXJvbm1lbnRzIHdoZXJlIG11bHRpcGxlIFBhcnNlIFNlcnZlciBpbnN0YW5jZXMgcnVuIGJlaGluZCBhIGxvYWQgYmFsYW5jZXIgYW5kIFBhcnNlIHJlcXVlc3RzIHdpdGhpbiB0aGUgY3VycmVudCBOb2RlLmpzIGVudmlyb25tZW50IHNob3VsZCBiZSByb3V0ZWQgdmlhIHRoZSBsb2FkIGJhbGFuY2VyIGFuZCBkaXN0cmlidXRlZCBhcyBIVFRQIHJlcXVlc3RzIGFtb25nIGFsbCBpbnN0YW5jZXMgdmlhIHRoZSBgc2VydmVyVVJMYCwgdGhpcyBzaG91bGQgYmUgc2V0IHRvIGBmYWxzZWAuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiB0cnVlLFxuICB9LFxuICBkb3ROZXRLZXk6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfRE9UX05FVF9LRVknLFxuICAgIGhlbHA6ICdLZXkgZm9yIFVuaXR5IGFuZCAuTmV0IFNESycsXG4gIH0sXG4gIGVtYWlsQWRhcHRlcjoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9FTUFJTF9BREFQVEVSJyxcbiAgICBoZWxwOiAnQWRhcHRlciBtb2R1bGUgZm9yIGVtYWlsIHNlbmRpbmcnLFxuICAgIGFjdGlvbjogcGFyc2Vycy5tb2R1bGVPck9iamVjdFBhcnNlcixcbiAgfSxcbiAgZW1haWxWZXJpZnlUb2tlblJldXNlSWZWYWxpZDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9FTUFJTF9WRVJJRllfVE9LRU5fUkVVU0VfSUZfVkFMSUQnLFxuICAgIGhlbHA6XG4gICAgICAnU2V0IHRvIGB0cnVlYCBpZiBhIGVtYWlsIHZlcmlmaWNhdGlvbiB0b2tlbiBzaG91bGQgYmUgcmV1c2VkIGluIGNhc2UgYW5vdGhlciB0b2tlbiBpcyByZXF1ZXN0ZWQgYnV0IHRoZXJlIGlzIGEgdG9rZW4gdGhhdCBpcyBzdGlsbCB2YWxpZCwgaS5lLiBoYXMgbm90IGV4cGlyZWQuIFRoaXMgYXZvaWRzIHRoZSBvZnRlbiBvYnNlcnZlZCBpc3N1ZSB0aGF0IGEgdXNlciByZXF1ZXN0cyBtdWx0aXBsZSBlbWFpbHMgYW5kIGRvZXMgbm90IGtub3cgd2hpY2ggbGluayBjb250YWlucyBhIHZhbGlkIHRva2VuIGJlY2F1c2UgZWFjaCBuZXdseSBnZW5lcmF0ZWQgdG9rZW4gd291bGQgaW52YWxpZGF0ZSB0aGUgcHJldmlvdXMgdG9rZW4uPGJyPjxicj5EZWZhdWx0IGlzIGBmYWxzZWAuPGJyPlJlcXVpcmVzIG9wdGlvbiBgdmVyaWZ5VXNlckVtYWlsczogdHJ1ZWAuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiBmYWxzZSxcbiAgfSxcbiAgZW1haWxWZXJpZnlUb2tlblZhbGlkaXR5RHVyYXRpb246IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfRU1BSUxfVkVSSUZZX1RPS0VOX1ZBTElESVRZX0RVUkFUSU9OJyxcbiAgICBoZWxwOlxuICAgICAgJ1NldCB0aGUgdmFsaWRpdHkgZHVyYXRpb24gb2YgdGhlIGVtYWlsIHZlcmlmaWNhdGlvbiB0b2tlbiBpbiBzZWNvbmRzIGFmdGVyIHdoaWNoIHRoZSB0b2tlbiBleHBpcmVzLiBUaGUgdG9rZW4gaXMgdXNlZCBpbiB0aGUgbGluayB0aGF0IGlzIHNldCBpbiB0aGUgZW1haWwuIEFmdGVyIHRoZSB0b2tlbiBleHBpcmVzLCB0aGUgbGluayBiZWNvbWVzIGludmFsaWQgYW5kIGEgbmV3IGxpbmsgaGFzIHRvIGJlIHNlbnQuIElmIHRoZSBvcHRpb24gaXMgbm90IHNldCBvciBzZXQgdG8gYHVuZGVmaW5lZGAsIHRoZW4gdGhlIHRva2VuIG5ldmVyIGV4cGlyZXMuPGJyPjxicj5Gb3IgZXhhbXBsZSwgdG8gZXhwaXJlIHRoZSB0b2tlbiBhZnRlciAyIGhvdXJzLCBzZXQgYSB2YWx1ZSBvZiA3MjAwIHNlY29uZHMgKD0gNjAgc2Vjb25kcyAqIDYwIG1pbnV0ZXMgKiAyIGhvdXJzKS48YnI+PGJyPkRlZmF1bHQgaXMgYHVuZGVmaW5lZGAuPGJyPlJlcXVpcmVzIG9wdGlvbiBgdmVyaWZ5VXNlckVtYWlsczogdHJ1ZWAuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMubnVtYmVyUGFyc2VyKCdlbWFpbFZlcmlmeVRva2VuVmFsaWRpdHlEdXJhdGlvbicpLFxuICB9LFxuICBlbmFibGVBbm9ueW1vdXNVc2Vyczoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9FTkFCTEVfQU5PTl9VU0VSUycsXG4gICAgaGVscDogJ0VuYWJsZSAob3IgZGlzYWJsZSkgYW5vbnltb3VzIHVzZXJzLCBkZWZhdWx0cyB0byB0cnVlJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiB0cnVlLFxuICB9LFxuICBlbmFibGVDb2xsYXRpb25DYXNlQ29tcGFyaXNvbjoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9FTkFCTEVfQ09MTEFUSU9OX0NBU0VfQ09NUEFSSVNPTicsXG4gICAgaGVscDpcbiAgICAgICdPcHRpb25hbC4gSWYgc2V0IHRvIGB0cnVlYCwgdGhlIGNvbGxhdGlvbiBydWxlIG9mIGNhc2UgY29tcGFyaXNvbiBmb3IgcXVlcmllcyBhbmQgaW5kZXhlcyBpcyBlbmFibGVkLiBFbmFibGUgdGhpcyBvcHRpb24gdG8gcnVuIFBhcnNlIFNlcnZlciB3aXRoIE1vbmdvREIgQXRsYXMgU2VydmVybGVzcyBvciBBV1MgQW1hem9uIERvY3VtZW50REIuIElmIGBmYWxzZWAsIHRoZSBjb2xsYXRpb24gcnVsZSBvZiBjYXNlIGNvbXBhcmlzb24gaXMgZGlzYWJsZWQuIERlZmF1bHQgaXMgYGZhbHNlYC4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5ib29sZWFuUGFyc2VyLFxuICAgIGRlZmF1bHQ6IGZhbHNlLFxuICB9LFxuICBlbmFibGVFeHByZXNzRXJyb3JIYW5kbGVyOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0VOQUJMRV9FWFBSRVNTX0VSUk9SX0hBTkRMRVInLFxuICAgIGhlbHA6ICdFbmFibGVzIHRoZSBkZWZhdWx0IGV4cHJlc3MgZXJyb3IgaGFuZGxlciBmb3IgYWxsIGVycm9ycycsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogZmFsc2UsXG4gIH0sXG4gIGVuYWJsZUluc2VjdXJlQXV0aEFkYXB0ZXJzOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0VOQUJMRV9JTlNFQ1VSRV9BVVRIX0FEQVBURVJTJyxcbiAgICBoZWxwOlxuICAgICAgJ0VuYWJsZSAob3IgZGlzYWJsZSkgaW5zZWN1cmUgYXV0aCBhZGFwdGVycywgZGVmYXVsdHMgdG8gdHJ1ZS4gSW5zZWN1cmUgYXV0aCBhZGFwdGVycyBhcmUgZGVwcmVjYXRlZCBhbmQgaXQgaXMgcmVjb21tZW5kZWQgdG8gZGlzYWJsZSB0aGVtLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogdHJ1ZSxcbiAgfSxcbiAgZW5jb2RlUGFyc2VPYmplY3RJbkNsb3VkRnVuY3Rpb246IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfRU5DT0RFX1BBUlNFX09CSkVDVF9JTl9DTE9VRF9GVU5DVElPTicsXG4gICAgaGVscDpcbiAgICAgICdJZiBzZXQgdG8gYHRydWVgLCBhIGBQYXJzZS5PYmplY3RgIHRoYXQgaXMgaW4gdGhlIHBheWxvYWQgd2hlbiBjYWxsaW5nIGEgQ2xvdWQgRnVuY3Rpb24gd2lsbCBiZSBjb252ZXJ0ZWQgdG8gYW4gaW5zdGFuY2Ugb2YgYFBhcnNlLk9iamVjdGAuIElmIGBmYWxzZWAsIHRoZSBvYmplY3Qgd2lsbCBub3QgYmUgY29udmVydGVkIGFuZCBpbnN0ZWFkIGJlIGEgcGxhaW4gSmF2YVNjcmlwdCBvYmplY3QsIHdoaWNoIGNvbnRhaW5zIHRoZSByYXcgZGF0YSBvZiBhIGBQYXJzZS5PYmplY3RgIGJ1dCBpcyBub3QgYW4gYWN0dWFsIGluc3RhbmNlIG9mIGBQYXJzZS5PYmplY3RgLiBEZWZhdWx0IGlzIGBmYWxzZWAuIDxicj48YnI+XFx1MjEzOVxcdUZFMEYgVGhlIGV4cGVjdGVkIGJlaGF2aW9yIHdvdWxkIGJlIHRoYXQgdGhlIG9iamVjdCBpcyBjb252ZXJ0ZWQgdG8gYW4gaW5zdGFuY2Ugb2YgYFBhcnNlLk9iamVjdGAsIHNvIHlvdSB3b3VsZCBub3JtYWxseSBzZXQgdGhpcyBvcHRpb24gdG8gYHRydWVgLiBUaGUgZGVmYXVsdCBpcyBgZmFsc2VgIGJlY2F1c2UgdGhpcyBpcyBhIHRlbXBvcmFyeSBvcHRpb24gdGhhdCBoYXMgYmVlbiBpbnRyb2R1Y2VkIHRvIGF2b2lkIGEgYnJlYWtpbmcgY2hhbmdlIHdoZW4gZml4aW5nIGEgYnVnIHdoZXJlIEphdmFTY3JpcHQgb2JqZWN0cyBhcmUgbm90IGNvbnZlcnRlZCB0byBhY3R1YWwgaW5zdGFuY2VzIG9mIGBQYXJzZS5PYmplY3RgLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogdHJ1ZSxcbiAgfSxcbiAgZW5jcnlwdGlvbktleToge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9FTkNSWVBUSU9OX0tFWScsXG4gICAgaGVscDogJ0tleSBmb3IgZW5jcnlwdGluZyB5b3VyIGZpbGVzJyxcbiAgfSxcbiAgZW5mb3JjZVByaXZhdGVVc2Vyczoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9FTkZPUkNFX1BSSVZBVEVfVVNFUlMnLFxuICAgIGhlbHA6ICdTZXQgdG8gdHJ1ZSBpZiBuZXcgdXNlcnMgc2hvdWxkIGJlIGNyZWF0ZWQgd2l0aG91dCBwdWJsaWMgcmVhZCBhbmQgd3JpdGUgYWNjZXNzLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogdHJ1ZSxcbiAgfSxcbiAgZXhwaXJlSW5hY3RpdmVTZXNzaW9uczoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9FWFBJUkVfSU5BQ1RJVkVfU0VTU0lPTlMnLFxuICAgIGhlbHA6XG4gICAgICAnU2V0cyB3aGV0aGVyIHdlIHNob3VsZCBleHBpcmUgdGhlIGluYWN0aXZlIHNlc3Npb25zLCBkZWZhdWx0cyB0byB0cnVlLiBJZiBmYWxzZSwgYWxsIG5ldyBzZXNzaW9ucyBhcmUgY3JlYXRlZCB3aXRoIG5vIGV4cGlyYXRpb24gZGF0ZS4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5ib29sZWFuUGFyc2VyLFxuICAgIGRlZmF1bHQ6IHRydWUsXG4gIH0sXG4gIGV4dGVuZFNlc3Npb25PblVzZToge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9FWFRFTkRfU0VTU0lPTl9PTl9VU0UnLFxuICAgIGhlbHA6XG4gICAgICBcIldoZXRoZXIgUGFyc2UgU2VydmVyIHNob3VsZCBhdXRvbWF0aWNhbGx5IGV4dGVuZCBhIHZhbGlkIHNlc3Npb24gYnkgdGhlIHNlc3Npb25MZW5ndGguIEluIG9yZGVyIHRvIHJlZHVjZSB0aGUgbnVtYmVyIG9mIHNlc3Npb24gdXBkYXRlcyBpbiB0aGUgZGF0YWJhc2UsIGEgc2Vzc2lvbiB3aWxsIG9ubHkgYmUgZXh0ZW5kZWQgd2hlbiBhIHJlcXVlc3QgaXMgcmVjZWl2ZWQgYWZ0ZXIgYXQgbGVhc3QgaGFsZiBvZiB0aGUgY3VycmVudCBzZXNzaW9uJ3MgbGlmZXRpbWUgaGFzIHBhc3NlZC5cIixcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiBmYWxzZSxcbiAgfSxcbiAgZmlsZUtleToge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9GSUxFX0tFWScsXG4gICAgaGVscDogJ0tleSBmb3IgeW91ciBmaWxlcycsXG4gIH0sXG4gIGZpbGVzQWRhcHRlcjoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9GSUxFU19BREFQVEVSJyxcbiAgICBoZWxwOiAnQWRhcHRlciBtb2R1bGUgZm9yIHRoZSBmaWxlcyBzdWItc3lzdGVtJyxcbiAgICBhY3Rpb246IHBhcnNlcnMubW9kdWxlT3JPYmplY3RQYXJzZXIsXG4gIH0sXG4gIGZpbGVVcGxvYWQ6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfRklMRV9VUExPQURfT1BUSU9OUycsXG4gICAgaGVscDogJ09wdGlvbnMgZm9yIGZpbGUgdXBsb2FkcycsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm9iamVjdFBhcnNlcixcbiAgICB0eXBlOiAnRmlsZVVwbG9hZE9wdGlvbnMnLFxuICAgIGRlZmF1bHQ6IHt9LFxuICB9LFxuICBncmFwaFFMUGF0aDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9HUkFQSFFMX1BBVEgnLFxuICAgIGhlbHA6XG4gICAgICAnVGhlIG1vdW50IHBhdGggZm9yIHRoZSBHcmFwaFFMIGVuZHBvaW50PGJyPjxicj5cXHUyNkEwXFx1RkUwRiBGaWxlIHVwbG9hZCBpbnNpZGUgdGhlIEdyYXBoUUwgbXV0YXRpb24gc3lzdGVtIHJlcXVpcmVzIFBhcnNlIFNlcnZlciB0byBiZSBhYmxlIHRvIGNhbGwgaXRzZWxmIGJ5IG1ha2luZyByZXF1ZXN0cyB0byB0aGUgVVJMIHNldCBpbiBgc2VydmVyVVJMYC48YnI+PGJyPkRlZmF1bHRzIGlzIGAvZ3JhcGhxbGAuJyxcbiAgICBkZWZhdWx0OiAnL2dyYXBocWwnLFxuICB9LFxuICBncmFwaFFMUHVibGljSW50cm9zcGVjdGlvbjoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9HUkFQSFFMX1BVQkxJQ19JTlRST1NQRUNUSU9OJyxcbiAgICBoZWxwOiAnRW5hYmxlIHB1YmxpYyBpbnRyb3NwZWN0aW9uIGZvciB0aGUgR3JhcGhRTCBlbmRwb2ludCwgZGVmYXVsdHMgdG8gZmFsc2UnLFxuICAgIGFjdGlvbjogcGFyc2Vycy5ib29sZWFuUGFyc2VyLFxuICAgIGRlZmF1bHQ6IGZhbHNlLFxuICB9LFxuICBncmFwaFFMU2NoZW1hOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0dSQVBIX1FMU0NIRU1BJyxcbiAgICBoZWxwOiAnRnVsbCBwYXRoIHRvIHlvdXIgR3JhcGhRTCBjdXN0b20gc2NoZW1hLmdyYXBocWwgZmlsZScsXG4gIH0sXG4gIGhvc3Q6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfSE9TVCcsXG4gICAgaGVscDogJ1RoZSBob3N0IHRvIHNlcnZlIFBhcnNlU2VydmVyIG9uLCBkZWZhdWx0cyB0byAwLjAuMC4wJyxcbiAgICBkZWZhdWx0OiAnMC4wLjAuMCcsXG4gIH0sXG4gIGlkZW1wb3RlbmN5T3B0aW9uczoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9FWFBFUklNRU5UQUxfSURFTVBPVEVOQ1lfT1BUSU9OUycsXG4gICAgaGVscDpcbiAgICAgICdPcHRpb25zIGZvciByZXF1ZXN0IGlkZW1wb3RlbmN5IHRvIGRlZHVwbGljYXRlIGlkZW50aWNhbCByZXF1ZXN0cyB0aGF0IG1heSBiZSBjYXVzZWQgYnkgbmV0d29yayBpc3N1ZXMuIENhdXRpb24sIHRoaXMgaXMgYW4gZXhwZXJpbWVudGFsIGZlYXR1cmUgdGhhdCBtYXkgbm90IGJlIGFwcHJvcHJpYXRlIGZvciBwcm9kdWN0aW9uLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm9iamVjdFBhcnNlcixcbiAgICB0eXBlOiAnSWRlbXBvdGVuY3lPcHRpb25zJyxcbiAgICBkZWZhdWx0OiB7fSxcbiAgfSxcbiAgamF2YXNjcmlwdEtleToge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9KQVZBU0NSSVBUX0tFWScsXG4gICAgaGVscDogJ0tleSBmb3IgdGhlIEphdmFzY3JpcHQgU0RLJyxcbiAgfSxcbiAganNvbkxvZ3M6IHtcbiAgICBlbnY6ICdKU09OX0xPR1MnLFxuICAgIGhlbHA6ICdMb2cgYXMgc3RydWN0dXJlZCBKU09OIG9iamVjdHMnLFxuICAgIGFjdGlvbjogcGFyc2Vycy5ib29sZWFuUGFyc2VyLFxuICB9LFxuICBsaXZlUXVlcnk6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfTElWRV9RVUVSWScsXG4gICAgaGVscDogXCJwYXJzZS1zZXJ2ZXIncyBMaXZlUXVlcnkgY29uZmlndXJhdGlvbiBvYmplY3RcIixcbiAgICBhY3Rpb246IHBhcnNlcnMub2JqZWN0UGFyc2VyLFxuICAgIHR5cGU6ICdMaXZlUXVlcnlPcHRpb25zJyxcbiAgfSxcbiAgbGl2ZVF1ZXJ5U2VydmVyT3B0aW9uczoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9MSVZFX1FVRVJZX1NFUlZFUl9PUFRJT05TJyxcbiAgICBoZWxwOiAnTGl2ZSBxdWVyeSBzZXJ2ZXIgY29uZmlndXJhdGlvbiBvcHRpb25zICh3aWxsIHN0YXJ0IHRoZSBsaXZlUXVlcnkgc2VydmVyKScsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm9iamVjdFBhcnNlcixcbiAgICB0eXBlOiAnTGl2ZVF1ZXJ5U2VydmVyT3B0aW9ucycsXG4gIH0sXG4gIGxvZ2dlckFkYXB0ZXI6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfTE9HR0VSX0FEQVBURVInLFxuICAgIGhlbHA6ICdBZGFwdGVyIG1vZHVsZSBmb3IgdGhlIGxvZ2dpbmcgc3ViLXN5c3RlbScsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm1vZHVsZU9yT2JqZWN0UGFyc2VyLFxuICB9LFxuICBsb2dMZXZlbDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9MT0dfTEVWRUwnLFxuICAgIGhlbHA6ICdTZXRzIHRoZSBsZXZlbCBmb3IgbG9ncycsXG4gIH0sXG4gIGxvZ0xldmVsczoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9MT0dfTEVWRUxTJyxcbiAgICBoZWxwOiAnKE9wdGlvbmFsKSBPdmVycmlkZXMgdGhlIGxvZyBsZXZlbHMgdXNlZCBpbnRlcm5hbGx5IGJ5IFBhcnNlIFNlcnZlciB0byBsb2cgZXZlbnRzLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm9iamVjdFBhcnNlcixcbiAgICB0eXBlOiAnTG9nTGV2ZWxzJyxcbiAgICBkZWZhdWx0OiB7fSxcbiAgfSxcbiAgbG9nc0ZvbGRlcjoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9MT0dTX0ZPTERFUicsXG4gICAgaGVscDogXCJGb2xkZXIgZm9yIHRoZSBsb2dzIChkZWZhdWx0cyB0byAnLi9sb2dzJyk7IHNldCB0byBudWxsIHRvIGRpc2FibGUgZmlsZSBiYXNlZCBsb2dnaW5nXCIsXG4gICAgZGVmYXVsdDogJy4vbG9ncycsXG4gIH0sXG4gIG1haW50ZW5hbmNlS2V5OiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX01BSU5URU5BTkNFX0tFWScsXG4gICAgaGVscDpcbiAgICAgICcoT3B0aW9uYWwpIFRoZSBtYWludGVuYW5jZSBrZXkgaXMgdXNlZCBmb3IgbW9kaWZ5aW5nIGludGVybmFsIGFuZCByZWFkLW9ubHkgZmllbGRzIG9mIFBhcnNlIFNlcnZlci48YnI+PGJyPlxcdTI2QTBcXHVGRTBGIFRoaXMga2V5IGlzIG5vdCBpbnRlbmRlZCB0byBiZSB1c2VkIGFzIHBhcnQgb2YgYSByZWd1bGFyIG9wZXJhdGlvbiBvZiBQYXJzZSBTZXJ2ZXIuIFRoaXMga2V5IGlzIGludGVuZGVkIHRvIGNvbmR1Y3Qgb3V0LW9mLWJhbmQgY2hhbmdlcyBzdWNoIGFzIG9uZS10aW1lIG1pZ3JhdGlvbnMgb3IgZGF0YSBjb3JyZWN0aW9uIHRhc2tzLiBJbnRlcm5hbCBmaWVsZHMgYXJlIG5vdCBvZmZpY2lhbGx5IGRvY3VtZW50ZWQgYW5kIG1heSBjaGFuZ2UgYXQgYW55IHRpbWUgd2l0aG91dCBwdWJsaWNhdGlvbiBpbiByZWxlYXNlIGNoYW5nZWxvZ3MuIFdlIHN0cm9uZ2x5IGFkdmljZSBub3QgdG8gcmVseSBvbiBpbnRlcm5hbCBmaWVsZHMgYXMgcGFydCBvZiB5b3VyIHJlZ3VsYXIgb3BlcmF0aW9uIGFuZCB0byBpbnZlc3RpZ2F0ZSB0aGUgaW1wbGljYXRpb25zIG9mIGFueSBwbGFubmVkIGNoYW5nZXMgKmRpcmVjdGx5IGluIHRoZSBzb3VyY2UgY29kZSogb2YgeW91ciBjdXJyZW50IHZlcnNpb24gb2YgUGFyc2UgU2VydmVyLicsXG4gICAgcmVxdWlyZWQ6IHRydWUsXG4gIH0sXG4gIG1haW50ZW5hbmNlS2V5SXBzOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX01BSU5URU5BTkNFX0tFWV9JUFMnLFxuICAgIGhlbHA6XG4gICAgICBcIihPcHRpb25hbCkgUmVzdHJpY3RzIHRoZSB1c2Ugb2YgbWFpbnRlbmFuY2Uga2V5IHBlcm1pc3Npb25zIHRvIGEgbGlzdCBvZiBJUCBhZGRyZXNzZXMgb3IgcmFuZ2VzLjxicj48YnI+VGhpcyBvcHRpb24gYWNjZXB0cyBhIGxpc3Qgb2Ygc2luZ2xlIElQIGFkZHJlc3NlcywgZm9yIGV4YW1wbGUgYFsnMTAuMC4wLjEnLCAnMTAuMC4wLjInXWAuIFlvdSBjYW4gYWxzbyB1c2UgQ0lEUiBub3RhdGlvbiB0byBzcGVjaWZ5IGFuIElQIGFkZHJlc3MgcmFuZ2UsIGZvciBleGFtcGxlIGBbJzEwLjAuMS4wLzI0J11gLjxicj48YnI+PGI+U3BlY2lhbCBzY2VuYXJpb3M6PC9iPjxicj4tIFNldHRpbmcgYW4gZW1wdHkgYXJyYXkgYFtdYCBtZWFucyB0aGF0IHRoZSBtYWludGVuYW5jZSBrZXkgY2Fubm90IGJlIHVzZWQgZXZlbiBpbiBQYXJzZSBTZXJ2ZXIgQ2xvdWQgQ29kZS4gVGhpcyB2YWx1ZSBjYW5ub3QgYmUgc2V0IHZpYSBhbiBlbnZpcm9ubWVudCB2YXJpYWJsZSBhcyB0aGVyZSBpcyBubyB3YXkgdG8gcGFzcyBhbiBlbXB0eSBhcnJheSB0byBQYXJzZSBTZXJ2ZXIgdmlhIGFuIGVudmlyb25tZW50IHZhcmlhYmxlLjxicj4tIFNldHRpbmcgYFsnMC4wLjAuMC8wJywgJzo6MCddYCBtZWFucyB0byBhbGxvdyBhbnkgSVB2NCBhbmQgSVB2NiBhZGRyZXNzIHRvIHVzZSB0aGUgbWFpbnRlbmFuY2Uga2V5IGFuZCBlZmZlY3RpdmVseSBkaXNhYmxlcyB0aGUgSVAgZmlsdGVyLjxicj48YnI+PGI+Q29uc2lkZXJhdGlvbnM6PC9iPjxicj4tIElQdjQgYW5kIElQdjYgYWRkcmVzc2VzIGFyZSBub3QgY29tcGFyZWQgYWdhaW5zdCBlYWNoIG90aGVyLiBFYWNoIElQIHZlcnNpb24gKElQdjQgYW5kIElQdjYpIG5lZWRzIHRvIGJlIGNvbnNpZGVyZWQgc2VwYXJhdGVseS4gRm9yIGV4YW1wbGUsIGBbJzAuMC4wLjAvMCddYCBhbGxvd3MgYW55IElQdjQgYWRkcmVzcyBhbmQgYmxvY2tzIGV2ZXJ5IElQdjYgYWRkcmVzcy4gQ29udmVyc2VseSwgYFsnOjowJ11gIGFsbG93cyBhbnkgSVB2NiBhZGRyZXNzIGFuZCBibG9ja3MgZXZlcnkgSVB2NCBhZGRyZXNzLjxicj4tIEtlZXAgaW4gbWluZCB0aGF0IHRoZSBJUCB2ZXJzaW9uIGluIHVzZSBkZXBlbmRzIG9uIHRoZSBuZXR3b3JrIHN0YWNrIG9mIHRoZSBlbnZpcm9ubWVudCBpbiB3aGljaCBQYXJzZSBTZXJ2ZXIgcnVucy4gQSBsb2NhbCBlbnZpcm9ubWVudCBtYXkgdXNlIGEgZGlmZmVyZW50IElQIHZlcnNpb24gdGhhbiBhIHJlbW90ZSBlbnZpcm9ubWVudC4gRm9yIGV4YW1wbGUsIGl0J3MgcG9zc2libGUgdGhhdCBsb2NhbGx5IHRoZSB2YWx1ZSBgWycwLjAuMC4wLzAnXWAgYWxsb3dzIHRoZSByZXF1ZXN0IElQIGJlY2F1c2UgdGhlIGVudmlyb25tZW50IGlzIHVzaW5nIElQdjQsIGJ1dCB3aGVuIFBhcnNlIFNlcnZlciBpcyBkZXBsb3llZCByZW1vdGVseSB0aGUgcmVxdWVzdCBJUCBpcyBibG9ja2VkIGJlY2F1c2UgdGhlIHJlbW90ZSBlbnZpcm9ubWVudCBpcyB1c2luZyBJUHY2Ljxicj4tIFdoZW4gc2V0dGluZyB0aGUgb3B0aW9uIHZpYSBhbiBlbnZpcm9ubWVudCB2YXJpYWJsZSB0aGUgbm90YXRpb24gaXMgYSBjb21tYS1zZXBhcmF0ZWQgc3RyaW5nLCBmb3IgZXhhbXBsZSBgXFxcIjAuMC4wLjAvMCw6OjBcXFwiYC48YnI+LSBJUHY2IHpvbmUgaW5kaWNlcyAoYCVgIHN1ZmZpeCkgYXJlIG5vdCBzdXBwb3J0ZWQsIGZvciBleGFtcGxlIGBmZTgwOjoxJWV0aDBgLCBgZmU4MDo6MSUxYCBvciBgOjoxJWxvYC48YnI+PGJyPkRlZmF1bHRzIHRvIGBbJzEyNy4wLjAuMScsICc6OjEnXWAgd2hpY2ggbWVhbnMgdGhhdCBvbmx5IGBsb2NhbGhvc3RgLCB0aGUgc2VydmVyIGluc3RhbmNlIG9uIHdoaWNoIFBhcnNlIFNlcnZlciBydW5zLCBpcyBhbGxvd2VkIHRvIHVzZSB0aGUgbWFpbnRlbmFuY2Uga2V5LlwiLFxuICAgIGFjdGlvbjogcGFyc2Vycy5hcnJheVBhcnNlcixcbiAgICBkZWZhdWx0OiBbJzEyNy4wLjAuMScsICc6OjEnXSxcbiAgfSxcbiAgbWFzdGVyS2V5OiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX01BU1RFUl9LRVknLFxuICAgIGhlbHA6ICdZb3VyIFBhcnNlIE1hc3RlciBLZXknLFxuICAgIHJlcXVpcmVkOiB0cnVlLFxuICB9LFxuICBtYXN0ZXJLZXlJcHM6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfTUFTVEVSX0tFWV9JUFMnLFxuICAgIGhlbHA6XG4gICAgICBcIihPcHRpb25hbCkgUmVzdHJpY3RzIHRoZSB1c2Ugb2YgbWFzdGVyIGtleSBwZXJtaXNzaW9ucyB0byBhIGxpc3Qgb2YgSVAgYWRkcmVzc2VzIG9yIHJhbmdlcy48YnI+PGJyPlRoaXMgb3B0aW9uIGFjY2VwdHMgYSBsaXN0IG9mIHNpbmdsZSBJUCBhZGRyZXNzZXMsIGZvciBleGFtcGxlIGBbJzEwLjAuMC4xJywgJzEwLjAuMC4yJ11gLiBZb3UgY2FuIGFsc28gdXNlIENJRFIgbm90YXRpb24gdG8gc3BlY2lmeSBhbiBJUCBhZGRyZXNzIHJhbmdlLCBmb3IgZXhhbXBsZSBgWycxMC4wLjEuMC8yNCddYC48YnI+PGJyPjxiPlNwZWNpYWwgc2NlbmFyaW9zOjwvYj48YnI+LSBTZXR0aW5nIGFuIGVtcHR5IGFycmF5IGBbXWAgbWVhbnMgdGhhdCB0aGUgbWFzdGVyIGtleSBjYW5ub3QgYmUgdXNlZCBldmVuIGluIFBhcnNlIFNlcnZlciBDbG91ZCBDb2RlLiBUaGlzIHZhbHVlIGNhbm5vdCBiZSBzZXQgdmlhIGFuIGVudmlyb25tZW50IHZhcmlhYmxlIGFzIHRoZXJlIGlzIG5vIHdheSB0byBwYXNzIGFuIGVtcHR5IGFycmF5IHRvIFBhcnNlIFNlcnZlciB2aWEgYW4gZW52aXJvbm1lbnQgdmFyaWFibGUuPGJyPi0gU2V0dGluZyBgWycwLjAuMC4wLzAnLCAnOjowJ11gIG1lYW5zIHRvIGFsbG93IGFueSBJUHY0IGFuZCBJUHY2IGFkZHJlc3MgdG8gdXNlIHRoZSBtYXN0ZXIga2V5IGFuZCBlZmZlY3RpdmVseSBkaXNhYmxlcyB0aGUgSVAgZmlsdGVyLjxicj48YnI+PGI+Q29uc2lkZXJhdGlvbnM6PC9iPjxicj4tIElQdjQgYW5kIElQdjYgYWRkcmVzc2VzIGFyZSBub3QgY29tcGFyZWQgYWdhaW5zdCBlYWNoIG90aGVyLiBFYWNoIElQIHZlcnNpb24gKElQdjQgYW5kIElQdjYpIG5lZWRzIHRvIGJlIGNvbnNpZGVyZWQgc2VwYXJhdGVseS4gRm9yIGV4YW1wbGUsIGBbJzAuMC4wLjAvMCddYCBhbGxvd3MgYW55IElQdjQgYWRkcmVzcyBhbmQgYmxvY2tzIGV2ZXJ5IElQdjYgYWRkcmVzcy4gQ29udmVyc2VseSwgYFsnOjowJ11gIGFsbG93cyBhbnkgSVB2NiBhZGRyZXNzIGFuZCBibG9ja3MgZXZlcnkgSVB2NCBhZGRyZXNzLjxicj4tIEtlZXAgaW4gbWluZCB0aGF0IHRoZSBJUCB2ZXJzaW9uIGluIHVzZSBkZXBlbmRzIG9uIHRoZSBuZXR3b3JrIHN0YWNrIG9mIHRoZSBlbnZpcm9ubWVudCBpbiB3aGljaCBQYXJzZSBTZXJ2ZXIgcnVucy4gQSBsb2NhbCBlbnZpcm9ubWVudCBtYXkgdXNlIGEgZGlmZmVyZW50IElQIHZlcnNpb24gdGhhbiBhIHJlbW90ZSBlbnZpcm9ubWVudC4gRm9yIGV4YW1wbGUsIGl0J3MgcG9zc2libGUgdGhhdCBsb2NhbGx5IHRoZSB2YWx1ZSBgWycwLjAuMC4wLzAnXWAgYWxsb3dzIHRoZSByZXF1ZXN0IElQIGJlY2F1c2UgdGhlIGVudmlyb25tZW50IGlzIHVzaW5nIElQdjQsIGJ1dCB3aGVuIFBhcnNlIFNlcnZlciBpcyBkZXBsb3llZCByZW1vdGVseSB0aGUgcmVxdWVzdCBJUCBpcyBibG9ja2VkIGJlY2F1c2UgdGhlIHJlbW90ZSBlbnZpcm9ubWVudCBpcyB1c2luZyBJUHY2Ljxicj4tIFdoZW4gc2V0dGluZyB0aGUgb3B0aW9uIHZpYSBhbiBlbnZpcm9ubWVudCB2YXJpYWJsZSB0aGUgbm90YXRpb24gaXMgYSBjb21tYS1zZXBhcmF0ZWQgc3RyaW5nLCBmb3IgZXhhbXBsZSBgXFxcIjAuMC4wLjAvMCw6OjBcXFwiYC48YnI+LSBJUHY2IHpvbmUgaW5kaWNlcyAoYCVgIHN1ZmZpeCkgYXJlIG5vdCBzdXBwb3J0ZWQsIGZvciBleGFtcGxlIGBmZTgwOjoxJWV0aDBgLCBgZmU4MDo6MSUxYCBvciBgOjoxJWxvYC48YnI+PGJyPkRlZmF1bHRzIHRvIGBbJzEyNy4wLjAuMScsICc6OjEnXWAgd2hpY2ggbWVhbnMgdGhhdCBvbmx5IGBsb2NhbGhvc3RgLCB0aGUgc2VydmVyIGluc3RhbmNlIG9uIHdoaWNoIFBhcnNlIFNlcnZlciBydW5zLCBpcyBhbGxvd2VkIHRvIHVzZSB0aGUgbWFzdGVyIGtleS5cIixcbiAgICBhY3Rpb246IHBhcnNlcnMuYXJyYXlQYXJzZXIsXG4gICAgZGVmYXVsdDogWycxMjcuMC4wLjEnLCAnOjoxJ10sXG4gIH0sXG4gIG1hc3RlcktleVR0bDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9NQVNURVJfS0VZX1RUTCcsXG4gICAgaGVscDpcbiAgICAgICcoT3B0aW9uYWwpIFRoZSBkdXJhdGlvbiBpbiBzZWNvbmRzIGZvciB3aGljaCB0aGUgY3VycmVudCBgbWFzdGVyS2V5YCBpcyBiZWluZyB1c2VkIGJlZm9yZSBpdCBpcyByZXF1ZXN0ZWQgYWdhaW4gaWYgYG1hc3RlcktleWAgaXMgc2V0IHRvIGEgZnVuY3Rpb24uIElmIGBtYXN0ZXJLZXlgIGlzIG5vdCBzZXQgdG8gYSBmdW5jdGlvbiwgdGhpcyBvcHRpb24gaGFzIG5vIGVmZmVjdC4gRGVmYXVsdCBpcyBgMGAsIHdoaWNoIG1lYW5zIHRoZSBtYXN0ZXIga2V5IGlzIHJlcXVlc3RlZCBieSBpbnZva2luZyB0aGUgIGBtYXN0ZXJLZXlgIGZ1bmN0aW9uIGV2ZXJ5IHRpbWUgdGhlIG1hc3RlciBrZXkgaXMgdXNlZCBpbnRlcm5hbGx5IGJ5IFBhcnNlIFNlcnZlci4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5udW1iZXJQYXJzZXIoJ21hc3RlcktleVR0bCcpLFxuICB9LFxuICBtYXhMaW1pdDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9NQVhfTElNSVQnLFxuICAgIGhlbHA6ICdNYXggdmFsdWUgZm9yIGxpbWl0IG9wdGlvbiBvbiBxdWVyaWVzLCBkZWZhdWx0cyB0byB1bmxpbWl0ZWQnLFxuICAgIGFjdGlvbjogcGFyc2Vycy5udW1iZXJQYXJzZXIoJ21heExpbWl0JyksXG4gIH0sXG4gIG1heExvZ0ZpbGVzOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX01BWF9MT0dfRklMRVMnLFxuICAgIGhlbHA6XG4gICAgICBcIk1heGltdW0gbnVtYmVyIG9mIGxvZ3MgdG8ga2VlcC4gSWYgbm90IHNldCwgbm8gbG9ncyB3aWxsIGJlIHJlbW92ZWQuIFRoaXMgY2FuIGJlIGEgbnVtYmVyIG9mIGZpbGVzIG9yIG51bWJlciBvZiBkYXlzLiBJZiB1c2luZyBkYXlzLCBhZGQgJ2QnIGFzIHRoZSBzdWZmaXguIChkZWZhdWx0OiBudWxsKVwiLFxuICAgIGFjdGlvbjogcGFyc2Vycy5udW1iZXJPclN0cmluZ1BhcnNlcignbWF4TG9nRmlsZXMnKSxcbiAgfSxcbiAgbWF4VXBsb2FkU2l6ZToge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9NQVhfVVBMT0FEX1NJWkUnLFxuICAgIGhlbHA6ICdNYXggZmlsZSBzaXplIGZvciB1cGxvYWRzLCBkZWZhdWx0cyB0byAyMG1iJyxcbiAgICBkZWZhdWx0OiAnMjBtYicsXG4gIH0sXG4gIG1pZGRsZXdhcmU6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfTUlERExFV0FSRScsXG4gICAgaGVscDogJ21pZGRsZXdhcmUgZm9yIGV4cHJlc3Mgc2VydmVyLCBjYW4gYmUgc3RyaW5nIG9yIGZ1bmN0aW9uJyxcbiAgfSxcbiAgbW91bnRHcmFwaFFMOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX01PVU5UX0dSQVBIUUwnLFxuICAgIGhlbHA6ICdNb3VudHMgdGhlIEdyYXBoUUwgZW5kcG9pbnQnLFxuICAgIGFjdGlvbjogcGFyc2Vycy5ib29sZWFuUGFyc2VyLFxuICAgIGRlZmF1bHQ6IGZhbHNlLFxuICB9LFxuICBtb3VudFBhdGg6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfTU9VTlRfUEFUSCcsXG4gICAgaGVscDogJ01vdW50IHBhdGggZm9yIHRoZSBzZXJ2ZXIsIGRlZmF1bHRzIHRvIC9wYXJzZScsXG4gICAgZGVmYXVsdDogJy9wYXJzZScsXG4gIH0sXG4gIG1vdW50UGxheWdyb3VuZDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9NT1VOVF9QTEFZR1JPVU5EJyxcbiAgICBoZWxwOiAnTW91bnRzIHRoZSBHcmFwaFFMIFBsYXlncm91bmQgLSBuZXZlciB1c2UgdGhpcyBvcHRpb24gaW4gcHJvZHVjdGlvbicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogZmFsc2UsXG4gIH0sXG4gIG9iamVjdElkU2l6ZToge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9PQkpFQ1RfSURfU0laRScsXG4gICAgaGVscDogXCJTZXRzIHRoZSBudW1iZXIgb2YgY2hhcmFjdGVycyBpbiBnZW5lcmF0ZWQgb2JqZWN0IGlkJ3MsIGRlZmF1bHQgMTBcIixcbiAgICBhY3Rpb246IHBhcnNlcnMubnVtYmVyUGFyc2VyKCdvYmplY3RJZFNpemUnKSxcbiAgICBkZWZhdWx0OiAxMCxcbiAgfSxcbiAgcGFnZXM6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUEFHRVMnLFxuICAgIGhlbHA6ICdUaGUgb3B0aW9ucyBmb3IgcGFnZXMgc3VjaCBhcyBwYXNzd29yZCByZXNldCBhbmQgZW1haWwgdmVyaWZpY2F0aW9uLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm9iamVjdFBhcnNlcixcbiAgICB0eXBlOiAnUGFnZXNPcHRpb25zJyxcbiAgICBkZWZhdWx0OiB7fSxcbiAgfSxcbiAgcGFzc3dvcmRQb2xpY3k6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUEFTU1dPUkRfUE9MSUNZJyxcbiAgICBoZWxwOiAnVGhlIHBhc3N3b3JkIHBvbGljeSBmb3IgZW5mb3JjaW5nIHBhc3N3b3JkIHJlbGF0ZWQgcnVsZXMuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMub2JqZWN0UGFyc2VyLFxuICAgIHR5cGU6ICdQYXNzd29yZFBvbGljeU9wdGlvbnMnLFxuICB9LFxuICBwbGF5Z3JvdW5kUGF0aDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9QTEFZR1JPVU5EX1BBVEgnLFxuICAgIGhlbHA6ICdNb3VudCBwYXRoIGZvciB0aGUgR3JhcGhRTCBQbGF5Z3JvdW5kLCBkZWZhdWx0cyB0byAvcGxheWdyb3VuZCcsXG4gICAgZGVmYXVsdDogJy9wbGF5Z3JvdW5kJyxcbiAgfSxcbiAgcG9ydDoge1xuICAgIGVudjogJ1BPUlQnLFxuICAgIGhlbHA6ICdUaGUgcG9ydCB0byBydW4gdGhlIFBhcnNlU2VydmVyLCBkZWZhdWx0cyB0byAxMzM3LicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm51bWJlclBhcnNlcigncG9ydCcpLFxuICAgIGRlZmF1bHQ6IDEzMzcsXG4gIH0sXG4gIHByZXNlcnZlRmlsZU5hbWU6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUFJFU0VSVkVfRklMRV9OQU1FJyxcbiAgICBoZWxwOiAnRW5hYmxlIChvciBkaXNhYmxlKSB0aGUgYWRkaXRpb24gb2YgYSB1bmlxdWUgaGFzaCB0byB0aGUgZmlsZSBuYW1lcycsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogZmFsc2UsXG4gIH0sXG4gIHByZXZlbnRMb2dpbldpdGhVbnZlcmlmaWVkRW1haWw6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUFJFVkVOVF9MT0dJTl9XSVRIX1VOVkVSSUZJRURfRU1BSUwnLFxuICAgIGhlbHA6XG4gICAgICAnU2V0IHRvIGB0cnVlYCB0byBwcmV2ZW50IGEgdXNlciBmcm9tIGxvZ2dpbmcgaW4gaWYgdGhlIGVtYWlsIGhhcyBub3QgeWV0IGJlZW4gdmVyaWZpZWQgYW5kIGVtYWlsIHZlcmlmaWNhdGlvbiBpcyByZXF1aXJlZC48YnI+PGJyPkRlZmF1bHQgaXMgYGZhbHNlYC48YnI+UmVxdWlyZXMgb3B0aW9uIGB2ZXJpZnlVc2VyRW1haWxzOiB0cnVlYC4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5ib29sZWFuUGFyc2VyLFxuICAgIGRlZmF1bHQ6IGZhbHNlLFxuICB9LFxuICBwcmV2ZW50U2lnbnVwV2l0aFVudmVyaWZpZWRFbWFpbDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9QUkVWRU5UX1NJR05VUF9XSVRIX1VOVkVSSUZJRURfRU1BSUwnLFxuICAgIGhlbHA6XG4gICAgICBcIklmIHNldCB0byBgdHJ1ZWAgaXQgcHJldmVudHMgYSB1c2VyIGZyb20gc2lnbmluZyB1cCBpZiB0aGUgZW1haWwgaGFzIG5vdCB5ZXQgYmVlbiB2ZXJpZmllZCBhbmQgZW1haWwgdmVyaWZpY2F0aW9uIGlzIHJlcXVpcmVkLiBJbiB0aGF0IGNhc2UgdGhlIHNlcnZlciByZXNwb25kcyB0byB0aGUgc2lnbi11cCB3aXRoIEhUVFAgc3RhdHVzIDQwMCBhbmQgYSBQYXJzZSBFcnJvciAyMDUgYEVNQUlMX05PVF9GT1VORGAuIElmIHNldCB0byBgZmFsc2VgIHRoZSBzZXJ2ZXIgcmVzcG9uZHMgd2l0aCBIVFRQIHN0YXR1cyAyMDAsIGFuZCBjbGllbnQgU0RLcyByZXR1cm4gYW4gdW5hdXRoZW50aWNhdGVkIFBhcnNlIFVzZXIgd2l0aG91dCBzZXNzaW9uIHRva2VuLiBJbiB0aGF0IGNhc2Ugc3Vic2VxdWVudCByZXF1ZXN0cyBmYWlsIHVudGlsIHRoZSB1c2VyJ3MgZW1haWwgYWRkcmVzcyBpcyB2ZXJpZmllZC48YnI+PGJyPkRlZmF1bHQgaXMgYGZhbHNlYC48YnI+UmVxdWlyZXMgb3B0aW9uIGB2ZXJpZnlVc2VyRW1haWxzOiB0cnVlYC5cIixcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiBmYWxzZSxcbiAgfSxcbiAgcHJvdGVjdGVkRmllbGRzOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1BST1RFQ1RFRF9GSUVMRFMnLFxuICAgIGhlbHA6ICdQcm90ZWN0ZWQgZmllbGRzIHRoYXQgc2hvdWxkIGJlIHRyZWF0ZWQgd2l0aCBleHRyYSBzZWN1cml0eSB3aGVuIGZldGNoaW5nIGRldGFpbHMuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMub2JqZWN0UGFyc2VyLFxuICAgIGRlZmF1bHQ6IHtcbiAgICAgIF9Vc2VyOiB7XG4gICAgICAgICcqJzogWydlbWFpbCddLFxuICAgICAgfSxcbiAgICB9LFxuICB9LFxuICBwdWJsaWNTZXJ2ZXJVUkw6IHtcbiAgICBlbnY6ICdQQVJTRV9QVUJMSUNfU0VSVkVSX1VSTCcsXG4gICAgaGVscDogJ1B1YmxpYyBVUkwgdG8geW91ciBwYXJzZSBzZXJ2ZXIgd2l0aCBodHRwOi8vIG9yIGh0dHBzOi8vLicsXG4gIH0sXG4gIHB1c2g6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUFVTSCcsXG4gICAgaGVscDpcbiAgICAgICdDb25maWd1cmF0aW9uIGZvciBwdXNoLCBhcyBzdHJpbmdpZmllZCBKU09OLiBTZWUgaHR0cDovL2RvY3MucGFyc2VwbGF0Zm9ybS5vcmcvcGFyc2Utc2VydmVyL2d1aWRlLyNwdXNoLW5vdGlmaWNhdGlvbnMnLFxuICAgIGFjdGlvbjogcGFyc2Vycy5vYmplY3RQYXJzZXIsXG4gIH0sXG4gIHJhdGVMaW1pdDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9SQVRFX0xJTUlUJyxcbiAgICBoZWxwOlxuICAgICAgXCJPcHRpb25zIHRvIGxpbWl0IHJlcGVhdGVkIHJlcXVlc3RzIHRvIFBhcnNlIFNlcnZlciBBUElzLiBUaGlzIGNhbiBiZSB1c2VkIHRvIHByb3RlY3Qgc2Vuc2l0aXZlIGVuZHBvaW50cyBzdWNoIGFzIGAvcmVxdWVzdFBhc3N3b3JkUmVzZXRgIGZyb20gYnJ1dGUtZm9yY2UgYXR0YWNrcyBvciBQYXJzZSBTZXJ2ZXIgYXMgYSB3aG9sZSBmcm9tIGRlbmlhbC1vZi1zZXJ2aWNlIChEb1MpIGF0dGFja3MuPGJyPjxicj5cXHUyMTM5XFx1RkUwRiBNaW5kIHRoZSBmb2xsb3dpbmcgbGltaXRhdGlvbnM6PGJyPi0gcmF0ZSBsaW1pdHMgYXBwbGllZCBwZXIgSVAgYWRkcmVzczsgdGhpcyBsaW1pdHMgcHJvdGVjdGlvbiBhZ2FpbnN0IGRpc3RyaWJ1dGVkIGRlbmlhbC1vZi1zZXJ2aWNlIChERG9TKSBhdHRhY2tzIHdoZXJlIG1hbnkgcmVxdWVzdHMgYXJlIGNvbWluZyBmcm9tIHZhcmlvdXMgSVAgYWRkcmVzc2VzPGJyPi0gaWYgbXVsdGlwbGUgUGFyc2UgU2VydmVyIGluc3RhbmNlcyBhcmUgYmVoaW5kIGEgbG9hZCBiYWxhbmNlciBvciByYW4gaW4gYSBjbHVzdGVyLCBlYWNoIGluc3RhbmNlIHdpbGwgY2FsY3VsYXRlIGl0J3Mgb3duIHJlcXVlc3QgcmF0ZXMsIGluZGVwZW5kZW50IGZyb20gb3RoZXIgaW5zdGFuY2VzOyB0aGlzIGxpbWl0cyB0aGUgYXBwbGljYWJpbGl0eSBvZiB0aGlzIGZlYXR1cmUgd2hlbiB1c2luZyBhIGxvYWQgYmFsYW5jZXIgYW5kIGFub3RoZXIgcmF0ZSBsaW1pdGluZyBzb2x1dGlvbiB0aGF0IHRha2VzIHJlcXVlc3RzIGFjcm9zcyBhbGwgaW5zdGFuY2VzIGludG8gYWNjb3VudCBtYXkgYmUgbW9yZSBzdWl0YWJsZTxicj4tIHRoaXMgZmVhdHVyZSBwcm92aWRlcyBiYXNpYyBwcm90ZWN0aW9uIGFnYWluc3QgZGVuaWFsLW9mLXNlcnZpY2UgYXR0YWNrcywgYnV0IGEgbW9yZSBzb3BoaXN0aWNhdGVkIHNvbHV0aW9uIHdvcmtzIGVhcmxpZXIgaW4gdGhlIHJlcXVlc3QgZmxvdyBhbmQgcHJldmVudHMgYSBtYWxpY2lvdXMgcmVxdWVzdHMgdG8gZXZlbiByZWFjaCBhIHNlcnZlciBpbnN0YW5jZTsgaXQncyB0aGVyZWZvcmUgcmVjb21tZW5kZWQgdG8gaW1wbGVtZW50IGEgc29sdXRpb24gYWNjb3JkaW5nIHRvIGFyY2hpdGVjdHVyZSBhbmQgdXNlciBjYXNlLlwiLFxuICAgIGFjdGlvbjogcGFyc2Vycy5hcnJheVBhcnNlcixcbiAgICB0eXBlOiAnUmF0ZUxpbWl0T3B0aW9uc1tdJyxcbiAgICBkZWZhdWx0OiBbXSxcbiAgfSxcbiAgcmVhZE9ubHlNYXN0ZXJLZXk6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUkVBRF9PTkxZX01BU1RFUl9LRVknLFxuICAgIGhlbHA6ICdSZWFkLW9ubHkga2V5LCB3aGljaCBoYXMgdGhlIHNhbWUgY2FwYWJpbGl0aWVzIGFzIE1hc3RlcktleSB3aXRob3V0IHdyaXRlcycsXG4gIH0sXG4gIHJlcXVlc3RDb250ZXh0TWlkZGxld2FyZToge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9SRVFVRVNUX0NPTlRFWFRfTUlERExFV0FSRScsXG4gICAgaGVscDpcbiAgICAgICdPcHRpb25zIHRvIGN1c3RvbWl6ZSB0aGUgcmVxdWVzdCBjb250ZXh0IHVzaW5nIGludmVyc2lvbiBvZiBjb250cm9sL2RlcGVuZGVuY3kgaW5qZWN0aW9uLicsXG4gIH0sXG4gIHJlcXVlc3RLZXl3b3JkRGVueWxpc3Q6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUkVRVUVTVF9LRVlXT1JEX0RFTllMSVNUJyxcbiAgICBoZWxwOlxuICAgICAgJ0FuIGFycmF5IG9mIGtleXMgYW5kIHZhbHVlcyB0aGF0IGFyZSBwcm9oaWJpdGVkIGluIGRhdGFiYXNlIHJlYWQgYW5kIHdyaXRlIHJlcXVlc3RzIHRvIHByZXZlbnQgcG90ZW50aWFsIHNlY3VyaXR5IHZ1bG5lcmFiaWxpdGllcy4gSXQgaXMgcG9zc2libGUgdG8gc3BlY2lmeSBvbmx5IGEga2V5IChge1wia2V5XCI6XCIuLi5cIn1gKSwgb25seSBhIHZhbHVlIChge1widmFsdWVcIjpcIi4uLlwifWApIG9yIGEga2V5LXZhbHVlIHBhaXIgKGB7XCJrZXlcIjpcIi4uLlwiLFwidmFsdWVcIjpcIi4uLlwifWApLiBUaGUgc3BlY2lmaWNhdGlvbiBjYW4gdXNlIHRoZSBmb2xsb3dpbmcgdHlwZXM6IGBib29sZWFuYCwgYG51bWVyaWNgIG9yIGBzdHJpbmdgLCB3aGVyZSBgc3RyaW5nYCB3aWxsIGJlIGludGVycHJldGVkIGFzIGEgcmVnZXggbm90YXRpb24uIFJlcXVlc3QgZGF0YSBpcyBkZWVwLXNjYW5uZWQgZm9yIG1hdGNoaW5nIGRlZmluaXRpb25zIHRvIGRldGVjdCBhbHNvIGFueSBuZXN0ZWQgb2NjdXJyZW5jZXMuIERlZmF1bHRzIGFyZSBwYXR0ZXJucyB0aGF0IGFyZSBsaWtlbHkgdG8gYmUgdXNlZCBpbiBtYWxpY2lvdXMgcmVxdWVzdHMuIFNldHRpbmcgdGhpcyBvcHRpb24gd2lsbCBvdmVycmlkZSB0aGUgZGVmYXVsdCBwYXR0ZXJucy4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5hcnJheVBhcnNlcixcbiAgICBkZWZhdWx0OiBbXG4gICAgICB7XG4gICAgICAgIGtleTogJ19ic29udHlwZScsXG4gICAgICAgIHZhbHVlOiAnQ29kZScsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBrZXk6ICdjb25zdHJ1Y3RvcicsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBrZXk6ICdfX3Byb3RvX18nLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICByZXN0QVBJS2V5OiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1JFU1RfQVBJX0tFWScsXG4gICAgaGVscDogJ0tleSBmb3IgUkVTVCBjYWxscycsXG4gIH0sXG4gIHJldm9rZVNlc3Npb25PblBhc3N3b3JkUmVzZXQ6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUkVWT0tFX1NFU1NJT05fT05fUEFTU1dPUkRfUkVTRVQnLFxuICAgIGhlbHA6XG4gICAgICBcIldoZW4gYSB1c2VyIGNoYW5nZXMgdGhlaXIgcGFzc3dvcmQsIGVpdGhlciB0aHJvdWdoIHRoZSByZXNldCBwYXNzd29yZCBlbWFpbCBvciB3aGlsZSBsb2dnZWQgaW4sIGFsbCBzZXNzaW9ucyBhcmUgcmV2b2tlZCBpZiB0aGlzIGlzIHRydWUuIFNldCB0byBmYWxzZSBpZiB5b3UgZG9uJ3Qgd2FudCB0byByZXZva2Ugc2Vzc2lvbnMuXCIsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogdHJ1ZSxcbiAgfSxcbiAgc2NoZWR1bGVkUHVzaDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9TQ0hFRFVMRURfUFVTSCcsXG4gICAgaGVscDogJ0NvbmZpZ3VyYXRpb24gZm9yIHB1c2ggc2NoZWR1bGluZywgZGVmYXVsdHMgdG8gZmFsc2UuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiBmYWxzZSxcbiAgfSxcbiAgc2NoZW1hOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1NDSEVNQScsXG4gICAgaGVscDogJ0RlZmluZWQgc2NoZW1hJyxcbiAgICBhY3Rpb246IHBhcnNlcnMub2JqZWN0UGFyc2VyLFxuICAgIHR5cGU6ICdTY2hlbWFPcHRpb25zJyxcbiAgfSxcbiAgc2VjdXJpdHk6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfU0VDVVJJVFknLFxuICAgIGhlbHA6ICdUaGUgc2VjdXJpdHkgb3B0aW9ucyB0byBpZGVudGlmeSBhbmQgcmVwb3J0IHdlYWsgc2VjdXJpdHkgc2V0dGluZ3MuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMub2JqZWN0UGFyc2VyLFxuICAgIHR5cGU6ICdTZWN1cml0eU9wdGlvbnMnLFxuICAgIGRlZmF1bHQ6IHt9LFxuICB9LFxuICBzZW5kVXNlckVtYWlsVmVyaWZpY2F0aW9uOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1NFTkRfVVNFUl9FTUFJTF9WRVJJRklDQVRJT04nLFxuICAgIGhlbHA6XG4gICAgICAnU2V0IHRvIGBmYWxzZWAgdG8gcHJldmVudCBzZW5kaW5nIG9mIHZlcmlmaWNhdGlvbiBlbWFpbC4gU3VwcG9ydHMgYSBmdW5jdGlvbiB3aXRoIGEgcmV0dXJuIHZhbHVlIG9mIGB0cnVlYCBvciBgZmFsc2VgIGZvciBjb25kaXRpb25hbCBlbWFpbCBzZW5kaW5nLjxicj48YnI+RGVmYXVsdCBpcyBgdHJ1ZWAuPGJyPicsXG4gICAgZGVmYXVsdDogdHJ1ZSxcbiAgfSxcbiAgc2VydmVyQ2xvc2VDb21wbGV0ZToge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9TRVJWRVJfQ0xPU0VfQ09NUExFVEUnLFxuICAgIGhlbHA6ICdDYWxsYmFjayB3aGVuIHNlcnZlciBoYXMgY2xvc2VkJyxcbiAgfSxcbiAgc2VydmVyVVJMOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1VSTCcsXG4gICAgaGVscDpcbiAgICAgICdUaGUgVVJMIHRvIFBhcnNlIFNlcnZlci48YnI+PGJyPlxcdTI2QTBcXHVGRTBGIENlcnRhaW4gc2VydmVyIGZlYXR1cmVzIG9yIGFkYXB0ZXJzIG1heSByZXF1aXJlIFBhcnNlIFNlcnZlciB0byBiZSBhYmxlIHRvIGNhbGwgaXRzZWxmIGJ5IG1ha2luZyByZXF1ZXN0cyB0byB0aGUgVVJMIHNldCBpbiBgc2VydmVyVVJMYC4gSWYgYSBmZWF0dXJlIHJlcXVpcmVzIHRoaXMsIGl0IGlzIG1lbnRpb25lZCBpbiB0aGUgZG9jdW1lbnRhdGlvbi4gSW4gdGhhdCBjYXNlIGVuc3VyZSB0aGF0IHRoZSBVUkwgaXMgYWNjZXNzaWJsZSBmcm9tIHRoZSBzZXJ2ZXIgaXRzZWxmLicsXG4gICAgcmVxdWlyZWQ6IHRydWUsXG4gIH0sXG4gIHNlc3Npb25MZW5ndGg6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfU0VTU0lPTl9MRU5HVEgnLFxuICAgIGhlbHA6ICdTZXNzaW9uIGR1cmF0aW9uLCBpbiBzZWNvbmRzLCBkZWZhdWx0cyB0byAxIHllYXInLFxuICAgIGFjdGlvbjogcGFyc2Vycy5udW1iZXJQYXJzZXIoJ3Nlc3Npb25MZW5ndGgnKSxcbiAgICBkZWZhdWx0OiAzMTUzNjAwMCxcbiAgfSxcbiAgc2lsZW50OiB7XG4gICAgZW52OiAnU0lMRU5UJyxcbiAgICBoZWxwOiAnRGlzYWJsZXMgY29uc29sZSBvdXRwdXQnLFxuICAgIGFjdGlvbjogcGFyc2Vycy5ib29sZWFuUGFyc2VyLFxuICB9LFxuICBzdGFydExpdmVRdWVyeVNlcnZlcjoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9TVEFSVF9MSVZFX1FVRVJZX1NFUlZFUicsXG4gICAgaGVscDogJ1N0YXJ0cyB0aGUgbGl2ZVF1ZXJ5IHNlcnZlcicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gIH0sXG4gIHRydXN0UHJveHk6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfVFJVU1RfUFJPWFknLFxuICAgIGhlbHA6XG4gICAgICAnVGhlIHRydXN0IHByb3h5IHNldHRpbmdzLiBJdCBpcyBpbXBvcnRhbnQgdG8gdW5kZXJzdGFuZCB0aGUgZXhhY3Qgc2V0dXAgb2YgdGhlIHJldmVyc2UgcHJveHksIHNpbmNlIHRoaXMgc2V0dGluZyB3aWxsIHRydXN0IHZhbHVlcyBwcm92aWRlZCBpbiB0aGUgUGFyc2UgU2VydmVyIEFQSSByZXF1ZXN0LiBTZWUgdGhlIDxhIGhyZWY9XCJodHRwczovL2V4cHJlc3Nqcy5jb20vZW4vZ3VpZGUvYmVoaW5kLXByb3hpZXMuaHRtbFwiPmV4cHJlc3MgdHJ1c3QgcHJveHkgc2V0dGluZ3M8L2E+IGRvY3VtZW50YXRpb24uIERlZmF1bHRzIHRvIGBmYWxzZWAuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMub2JqZWN0UGFyc2VyLFxuICAgIGRlZmF1bHQ6IFtdLFxuICB9LFxuICB1c2VyU2Vuc2l0aXZlRmllbGRzOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1VTRVJfU0VOU0lUSVZFX0ZJRUxEUycsXG4gICAgaGVscDpcbiAgICAgICdQZXJzb25hbGx5IGlkZW50aWZpYWJsZSBpbmZvcm1hdGlvbiBmaWVsZHMgaW4gdGhlIHVzZXIgdGFibGUgdGhlIHNob3VsZCBiZSByZW1vdmVkIGZvciBub24tYXV0aG9yaXplZCB1c2Vycy4gRGVwcmVjYXRlZCBAc2VlIHByb3RlY3RlZEZpZWxkcycsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmFycmF5UGFyc2VyLFxuICB9LFxuICB2ZXJib3NlOiB7XG4gICAgZW52OiAnVkVSQk9TRScsXG4gICAgaGVscDogJ1NldCB0aGUgbG9nZ2luZyB0byB2ZXJib3NlJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgfSxcbiAgdmVyaWZ5U2VydmVyVXJsOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1ZFUklGWV9TRVJWRVJfVVJMJyxcbiAgICBoZWxwOlxuICAgICAgJ1BhcnNlIFNlcnZlciBtYWtlcyBhIEhUVFAgcmVxdWVzdCB0byB0aGUgVVJMIHNldCBpbiBgc2VydmVyVVJMYCBhdCB0aGUgZW5kIG9mIGl0cyBsYXVuY2ggcm91dGluZSB0byB2ZXJpZnkgdGhhdCB0aGUgbGF1bmNoIHN1Y2NlZWRlZC4gSWYgdGhpcyBvcHRpb24gaXMgc2V0IHRvIGBmYWxzZWAsIHRoZSB2ZXJpZmljYXRpb24gd2lsbCBiZSBza2lwcGVkLiBUaGlzIGNhbiBiZSB1c2VmdWwgaW4gZW52aXJvbm1lbnRzIHdoZXJlIHRoZSBzZXJ2ZXIgVVJMIGlzIG5vdCBhY2Nlc3NpYmxlIGZyb20gdGhlIHNlcnZlciBpdHNlbGYsIHN1Y2ggYXMgd2hlbiBydW5uaW5nIGJlaGluZCBhIGZpcmV3YWxsIG9yIGluIGNlcnRhaW4gY29udGFpbmVyaXplZCBlbnZpcm9ubWVudHMuPGJyPjxicj5cXHUyNkEwXFx1RkUwRiBTZXJ2ZXIgVVJMIHZlcmlmaWNhdGlvbiByZXF1aXJlcyBQYXJzZSBTZXJ2ZXIgdG8gYmUgYWJsZSB0byBjYWxsIGl0c2VsZiBieSBtYWtpbmcgcmVxdWVzdHMgdG8gdGhlIFVSTCBzZXQgaW4gYHNlcnZlclVSTGAuPGJyPjxicj5EZWZhdWx0IGlzIGB0cnVlYC4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5ib29sZWFuUGFyc2VyLFxuICAgIGRlZmF1bHQ6IHRydWUsXG4gIH0sXG4gIHZlcmlmeVVzZXJFbWFpbHM6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfVkVSSUZZX1VTRVJfRU1BSUxTJyxcbiAgICBoZWxwOlxuICAgICAgJ1NldCB0byBgdHJ1ZWAgdG8gcmVxdWlyZSB1c2VycyB0byB2ZXJpZnkgdGhlaXIgZW1haWwgYWRkcmVzcyB0byBjb21wbGV0ZSB0aGUgc2lnbi11cCBwcm9jZXNzLiBTdXBwb3J0cyBhIGZ1bmN0aW9uIHdpdGggYSByZXR1cm4gdmFsdWUgb2YgYHRydWVgIG9yIGBmYWxzZWAgZm9yIGNvbmRpdGlvbmFsIHZlcmlmaWNhdGlvbi48YnI+PGJyPkRlZmF1bHQgaXMgYGZhbHNlYC4nLFxuICAgIGRlZmF1bHQ6IGZhbHNlLFxuICB9LFxuICB3ZWJob29rS2V5OiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1dFQkhPT0tfS0VZJyxcbiAgICBoZWxwOiAnS2V5IHNlbnQgd2l0aCBvdXRnb2luZyB3ZWJob29rIGNhbGxzJyxcbiAgfSxcbn07XG5tb2R1bGUuZXhwb3J0cy5SYXRlTGltaXRPcHRpb25zID0ge1xuICBlcnJvclJlc3BvbnNlTWVzc2FnZToge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9SQVRFX0xJTUlUX0VSUk9SX1JFU1BPTlNFX01FU1NBR0UnLFxuICAgIGhlbHA6XG4gICAgICAnVGhlIGVycm9yIG1lc3NhZ2UgdGhhdCBzaG91bGQgYmUgcmV0dXJuZWQgaW4gdGhlIGJvZHkgb2YgdGhlIEhUVFAgNDI5IHJlc3BvbnNlIHdoZW4gdGhlIHJhdGUgbGltaXQgaXMgaGl0LiBEZWZhdWx0IGlzIGBUb28gbWFueSByZXF1ZXN0cy5gLicsXG4gICAgZGVmYXVsdDogJ1RvbyBtYW55IHJlcXVlc3RzLicsXG4gIH0sXG4gIGluY2x1ZGVJbnRlcm5hbFJlcXVlc3RzOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1JBVEVfTElNSVRfSU5DTFVERV9JTlRFUk5BTF9SRVFVRVNUUycsXG4gICAgaGVscDpcbiAgICAgICdPcHRpb25hbCwgaWYgYHRydWVgIHRoZSByYXRlIGxpbWl0IHdpbGwgYWxzbyBhcHBseSB0byByZXF1ZXN0cyB0aGF0IGFyZSBtYWRlIGluIGJ5IENsb3VkIENvZGUsIGRlZmF1bHQgaXMgYGZhbHNlYC4gTm90ZSB0aGF0IGEgcHVibGljIENsb3VkIENvZGUgZnVuY3Rpb24gdGhhdCB0cmlnZ2VycyBpbnRlcm5hbCByZXF1ZXN0cyBtYXkgY2lyY3VtdmVudCByYXRlIGxpbWl0aW5nIGFuZCBiZSB2dWxuZXJhYmxlIHRvIGF0dGFja3MuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiBmYWxzZSxcbiAgfSxcbiAgaW5jbHVkZU1hc3RlcktleToge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9SQVRFX0xJTUlUX0lOQ0xVREVfTUFTVEVSX0tFWScsXG4gICAgaGVscDpcbiAgICAgICdPcHRpb25hbCwgaWYgYHRydWVgIHRoZSByYXRlIGxpbWl0IHdpbGwgYWxzbyBhcHBseSB0byByZXF1ZXN0cyB1c2luZyB0aGUgYG1hc3RlcktleWAsIGRlZmF1bHQgaXMgYGZhbHNlYC4gTm90ZSB0aGF0IGEgcHVibGljIENsb3VkIENvZGUgZnVuY3Rpb24gdGhhdCB0cmlnZ2VycyBpbnRlcm5hbCByZXF1ZXN0cyB1c2luZyB0aGUgYG1hc3RlcktleWAgbWF5IGNpcmN1bXZlbnQgcmF0ZSBsaW1pdGluZyBhbmQgYmUgdnVsbmVyYWJsZSB0byBhdHRhY2tzLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogZmFsc2UsXG4gIH0sXG4gIHJlZGlzVXJsOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1JBVEVfTElNSVRfUkVESVNfVVJMJyxcbiAgICBoZWxwOlxuICAgICAgJ09wdGlvbmFsLCB0aGUgVVJMIG9mIHRoZSBSZWRpcyBzZXJ2ZXIgdG8gc3RvcmUgcmF0ZSBsaW1pdCBkYXRhLiBUaGlzIGFsbG93cyB0byByYXRlIGxpbWl0IHJlcXVlc3RzIGZvciBtdWx0aXBsZSBzZXJ2ZXJzIGJ5IGNhbGN1bGF0aW5nIHRoZSBzdW0gb2YgYWxsIHJlcXVlc3RzIGFjcm9zcyBhbGwgc2VydmVycy4gVGhpcyBpcyB1c2VmdWwgaWYgbXVsdGlwbGUgc2VydmVycyBhcmUgcHJvY2Vzc2luZyByZXF1ZXN0cyBiZWhpbmQgYSBsb2FkIGJhbGFuY2VyLiBGb3IgZXhhbXBsZSwgdGhlIGxpbWl0IG9mIDEwIHJlcXVlc3RzIGlzIHJlYWNoZWQgaWYgZWFjaCBvZiAyIHNlcnZlcnMgcHJvY2Vzc2VkIDUgcmVxdWVzdHMuJyxcbiAgfSxcbiAgcmVxdWVzdENvdW50OiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1JBVEVfTElNSVRfUkVRVUVTVF9DT1VOVCcsXG4gICAgaGVscDpcbiAgICAgICdUaGUgbnVtYmVyIG9mIHJlcXVlc3RzIHRoYXQgY2FuIGJlIG1hZGUgcGVyIElQIGFkZHJlc3Mgd2l0aGluIHRoZSB0aW1lIHdpbmRvdyBzZXQgaW4gYHJlcXVlc3RUaW1lV2luZG93YCBiZWZvcmUgdGhlIHJhdGUgbGltaXQgaXMgYXBwbGllZC4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5udW1iZXJQYXJzZXIoJ3JlcXVlc3RDb3VudCcpLFxuICB9LFxuICByZXF1ZXN0TWV0aG9kczoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9SQVRFX0xJTUlUX1JFUVVFU1RfTUVUSE9EUycsXG4gICAgaGVscDpcbiAgICAgICdPcHRpb25hbCwgdGhlIEhUVFAgcmVxdWVzdCBtZXRob2RzIHRvIHdoaWNoIHRoZSByYXRlIGxpbWl0IHNob3VsZCBiZSBhcHBsaWVkLCBkZWZhdWx0IGlzIGFsbCBtZXRob2RzLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmFycmF5UGFyc2VyLFxuICB9LFxuICByZXF1ZXN0UGF0aDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9SQVRFX0xJTUlUX1JFUVVFU1RfUEFUSCcsXG4gICAgaGVscDpcbiAgICAgICdUaGUgcGF0aCBvZiB0aGUgQVBJIHJvdXRlIHRvIGJlIHJhdGUgbGltaXRlZC4gUm91dGUgcGF0aHMsIGluIGNvbWJpbmF0aW9uIHdpdGggYSByZXF1ZXN0IG1ldGhvZCwgZGVmaW5lIHRoZSBlbmRwb2ludHMgYXQgd2hpY2ggcmVxdWVzdHMgY2FuIGJlIG1hZGUuIFJvdXRlIHBhdGhzIGNhbiBiZSBzdHJpbmdzLCBzdHJpbmcgcGF0dGVybnMsIG9yIHJlZ3VsYXIgZXhwcmVzc2lvbi4gU2VlOiBodHRwczovL2V4cHJlc3Nqcy5jb20vZW4vZ3VpZGUvcm91dGluZy5odG1sJyxcbiAgICByZXF1aXJlZDogdHJ1ZSxcbiAgfSxcbiAgcmVxdWVzdFRpbWVXaW5kb3c6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUkFURV9MSU1JVF9SRVFVRVNUX1RJTUVfV0lORE9XJyxcbiAgICBoZWxwOlxuICAgICAgJ1RoZSB3aW5kb3cgb2YgdGltZSBpbiBtaWxsaXNlY29uZHMgd2l0aGluIHdoaWNoIHRoZSBudW1iZXIgb2YgcmVxdWVzdHMgc2V0IGluIGByZXF1ZXN0Q291bnRgIGNhbiBiZSBtYWRlIGJlZm9yZSB0aGUgcmF0ZSBsaW1pdCBpcyBhcHBsaWVkLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm51bWJlclBhcnNlcigncmVxdWVzdFRpbWVXaW5kb3cnKSxcbiAgfSxcbiAgem9uZToge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9SQVRFX0xJTUlUX1pPTkUnLFxuICAgIGhlbHA6XG4gICAgICBcIlRoZSB0eXBlIG9mIHJhdGUgbGltaXQgdG8gYXBwbHkuIFRoZSBmb2xsb3dpbmcgdHlwZXMgYXJlIHN1cHBvcnRlZDo8YnI+PGJyPi0gYGdsb2JhbGA6IHJhdGUgbGltaXQgYmFzZWQgb24gdGhlIG51bWJlciBvZiByZXF1ZXN0cyBtYWRlIGJ5IGFsbCB1c2VycyA8YnI+LSBgaXBgOiByYXRlIGxpbWl0IGJhc2VkIG9uIHRoZSBJUCBhZGRyZXNzIG9mIHRoZSByZXF1ZXN0IDxicj4tIGB1c2VyYDogcmF0ZSBsaW1pdCBiYXNlZCBvbiB0aGUgdXNlciBJRCBvZiB0aGUgcmVxdWVzdCA8YnI+LSBgc2Vzc2lvbmA6IHJhdGUgbGltaXQgYmFzZWQgb24gdGhlIHNlc3Npb24gdG9rZW4gb2YgdGhlIHJlcXVlc3QgPGJyPjxicj48YnI+OmRlZmF1bHQ6ICdpcCdcIixcbiAgfSxcbn07XG5tb2R1bGUuZXhwb3J0cy5TZWN1cml0eU9wdGlvbnMgPSB7XG4gIGNoZWNrR3JvdXBzOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1NFQ1VSSVRZX0NIRUNLX0dST1VQUycsXG4gICAgaGVscDpcbiAgICAgICdUaGUgc2VjdXJpdHkgY2hlY2sgZ3JvdXBzIHRvIHJ1bi4gVGhpcyBhbGxvd3MgdG8gYWRkIGN1c3RvbSBzZWN1cml0eSBjaGVja3Mgb3Igb3ZlcnJpZGUgZXhpc3Rpbmcgb25lcy4gRGVmYXVsdCBhcmUgdGhlIGdyb3VwcyBkZWZpbmVkIGluIGBDaGVja0dyb3Vwcy5qc2AuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYXJyYXlQYXJzZXIsXG4gIH0sXG4gIGVuYWJsZUNoZWNrOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1NFQ1VSSVRZX0VOQUJMRV9DSEVDSycsXG4gICAgaGVscDogJ0lzIHRydWUgaWYgUGFyc2UgU2VydmVyIHNob3VsZCBjaGVjayBmb3Igd2VhayBzZWN1cml0eSBzZXR0aW5ncy4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5ib29sZWFuUGFyc2VyLFxuICAgIGRlZmF1bHQ6IGZhbHNlLFxuICB9LFxuICBlbmFibGVDaGVja0xvZzoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9TRUNVUklUWV9FTkFCTEVfQ0hFQ0tfTE9HJyxcbiAgICBoZWxwOlxuICAgICAgJ0lzIHRydWUgaWYgdGhlIHNlY3VyaXR5IGNoZWNrIHJlcG9ydCBzaG91bGQgYmUgd3JpdHRlbiB0byBsb2dzLiBUaGlzIHNob3VsZCBvbmx5IGJlIGVuYWJsZWQgdGVtcG9yYXJpbHkgdG8gbm90IGV4cG9zZSB3ZWFrIHNlY3VyaXR5IHNldHRpbmdzIGluIGxvZ3MuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiBmYWxzZSxcbiAgfSxcbn07XG5tb2R1bGUuZXhwb3J0cy5QYWdlc09wdGlvbnMgPSB7XG4gIGN1c3RvbVJvdXRlczoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9QQUdFU19DVVNUT01fUk9VVEVTJyxcbiAgICBoZWxwOiAnVGhlIGN1c3RvbSByb3V0ZXMuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYXJyYXlQYXJzZXIsXG4gICAgdHlwZTogJ1BhZ2VzUm91dGVbXScsXG4gICAgZGVmYXVsdDogW10sXG4gIH0sXG4gIGN1c3RvbVVybHM6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUEFHRVNfQ1VTVE9NX1VSTFMnLFxuICAgIGhlbHA6ICdUaGUgVVJMcyB0byB0aGUgY3VzdG9tIHBhZ2VzLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm9iamVjdFBhcnNlcixcbiAgICB0eXBlOiAnUGFnZXNDdXN0b21VcmxzT3B0aW9ucycsXG4gICAgZGVmYXVsdDoge30sXG4gIH0sXG4gIGVuYWJsZUxvY2FsaXphdGlvbjoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9QQUdFU19FTkFCTEVfTE9DQUxJWkFUSU9OJyxcbiAgICBoZWxwOiAnSXMgdHJ1ZSBpZiBwYWdlcyBzaG91bGQgYmUgbG9jYWxpemVkOyB0aGlzIGhhcyBubyBlZmZlY3Qgb24gY3VzdG9tIHBhZ2UgcmVkaXJlY3RzLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogZmFsc2UsXG4gIH0sXG4gIGVuYWJsZVJvdXRlcjoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9QQUdFU19FTkFCTEVfUk9VVEVSJyxcbiAgICBoZWxwOlxuICAgICAgJ0lzIHRydWUgaWYgdGhlIHBhZ2VzIHJvdXRlciBzaG91bGQgYmUgZW5hYmxlZDsgdGhpcyBpcyByZXF1aXJlZCBmb3IgYW55IG9mIHRoZSBwYWdlcyBvcHRpb25zIHRvIHRha2UgZWZmZWN0LicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogZmFsc2UsXG4gIH0sXG4gIGZvcmNlUmVkaXJlY3Q6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUEFHRVNfRk9SQ0VfUkVESVJFQ1QnLFxuICAgIGhlbHA6XG4gICAgICAnSXMgdHJ1ZSBpZiByZXNwb25zZXMgc2hvdWxkIGFsd2F5cyBiZSByZWRpcmVjdHMgYW5kIG5ldmVyIGNvbnRlbnQsIGZhbHNlIGlmIHRoZSByZXNwb25zZSB0eXBlIHNob3VsZCBkZXBlbmQgb24gdGhlIHJlcXVlc3QgdHlwZSAoR0VUIHJlcXVlc3QgLT4gY29udGVudCByZXNwb25zZTsgUE9TVCByZXF1ZXN0IC0+IHJlZGlyZWN0IHJlc3BvbnNlKS4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5ib29sZWFuUGFyc2VyLFxuICAgIGRlZmF1bHQ6IGZhbHNlLFxuICB9LFxuICBsb2NhbGl6YXRpb25GYWxsYmFja0xvY2FsZToge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9QQUdFU19MT0NBTElaQVRJT05fRkFMTEJBQ0tfTE9DQUxFJyxcbiAgICBoZWxwOlxuICAgICAgJ1RoZSBmYWxsYmFjayBsb2NhbGUgZm9yIGxvY2FsaXphdGlvbiBpZiBubyBtYXRjaGluZyB0cmFuc2xhdGlvbiBpcyBwcm92aWRlZCBmb3IgdGhlIGdpdmVuIGxvY2FsZS4gVGhpcyBpcyBvbmx5IHJlbGV2YW50IHdoZW4gcHJvdmlkaW5nIHRyYW5zbGF0aW9uIHJlc291cmNlcyB2aWEgSlNPTiBmaWxlLicsXG4gICAgZGVmYXVsdDogJ2VuJyxcbiAgfSxcbiAgbG9jYWxpemF0aW9uSnNvblBhdGg6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUEFHRVNfTE9DQUxJWkFUSU9OX0pTT05fUEFUSCcsXG4gICAgaGVscDpcbiAgICAgICdUaGUgcGF0aCB0byB0aGUgSlNPTiBmaWxlIGZvciBsb2NhbGl6YXRpb247IHRoZSB0cmFuc2xhdGlvbnMgd2lsbCBiZSB1c2VkIHRvIGZpbGwgdGVtcGxhdGUgcGxhY2Vob2xkZXJzIGFjY29yZGluZyB0byB0aGUgbG9jYWxlLicsXG4gIH0sXG4gIHBhZ2VzRW5kcG9pbnQ6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUEFHRVNfUEFHRVNfRU5EUE9JTlQnLFxuICAgIGhlbHA6IFwiVGhlIEFQSSBlbmRwb2ludCBmb3IgdGhlIHBhZ2VzLiBEZWZhdWx0IGlzICdhcHBzJy5cIixcbiAgICBkZWZhdWx0OiAnYXBwcycsXG4gIH0sXG4gIHBhZ2VzUGF0aDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9QQUdFU19QQUdFU19QQVRIJyxcbiAgICBoZWxwOlxuICAgICAgXCJUaGUgcGF0aCB0byB0aGUgcGFnZXMgZGlyZWN0b3J5OyB0aGlzIGFsc28gZGVmaW5lcyB3aGVyZSB0aGUgc3RhdGljIGVuZHBvaW50ICcvYXBwcycgcG9pbnRzIHRvLiBEZWZhdWx0IGlzIHRoZSAnLi9wdWJsaWMvJyBkaXJlY3RvcnkuXCIsXG4gICAgZGVmYXVsdDogJy4vcHVibGljJyxcbiAgfSxcbiAgcGxhY2Vob2xkZXJzOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1BBR0VTX1BMQUNFSE9MREVSUycsXG4gICAgaGVscDpcbiAgICAgICdUaGUgcGxhY2Vob2xkZXIga2V5cyBhbmQgdmFsdWVzIHdoaWNoIHdpbGwgYmUgZmlsbGVkIGluIHBhZ2VzOyB0aGlzIGNhbiBiZSBhIHNpbXBsZSBvYmplY3Qgb3IgYSBjYWxsYmFjayBmdW5jdGlvbi4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5vYmplY3RQYXJzZXIsXG4gICAgZGVmYXVsdDoge30sXG4gIH0sXG59O1xubW9kdWxlLmV4cG9ydHMuUGFnZXNSb3V0ZSA9IHtcbiAgaGFuZGxlcjoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9QQUdFU19ST1VURV9IQU5ETEVSJyxcbiAgICBoZWxwOiAnVGhlIHJvdXRlIGhhbmRsZXIgdGhhdCBpcyBhbiBhc3luYyBmdW5jdGlvbi4nLFxuICAgIHJlcXVpcmVkOiB0cnVlLFxuICB9LFxuICBtZXRob2Q6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUEFHRVNfUk9VVEVfTUVUSE9EJyxcbiAgICBoZWxwOiBcIlRoZSByb3V0ZSBtZXRob2QsIGUuZy4gJ0dFVCcgb3IgJ1BPU1QnLlwiLFxuICAgIHJlcXVpcmVkOiB0cnVlLFxuICB9LFxuICBwYXRoOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1BBR0VTX1JPVVRFX1BBVEgnLFxuICAgIGhlbHA6ICdUaGUgcm91dGUgcGF0aC4nLFxuICAgIHJlcXVpcmVkOiB0cnVlLFxuICB9LFxufTtcbm1vZHVsZS5leHBvcnRzLlBhZ2VzQ3VzdG9tVXJsc09wdGlvbnMgPSB7XG4gIGVtYWlsVmVyaWZpY2F0aW9uTGlua0V4cGlyZWQ6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUEFHRVNfQ1VTVE9NX1VSTF9FTUFJTF9WRVJJRklDQVRJT05fTElOS19FWFBJUkVEJyxcbiAgICBoZWxwOiAnVGhlIFVSTCB0byB0aGUgY3VzdG9tIHBhZ2UgZm9yIGVtYWlsIHZlcmlmaWNhdGlvbiAtPiBsaW5rIGV4cGlyZWQuJyxcbiAgfSxcbiAgZW1haWxWZXJpZmljYXRpb25MaW5rSW52YWxpZDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9QQUdFU19DVVNUT01fVVJMX0VNQUlMX1ZFUklGSUNBVElPTl9MSU5LX0lOVkFMSUQnLFxuICAgIGhlbHA6ICdUaGUgVVJMIHRvIHRoZSBjdXN0b20gcGFnZSBmb3IgZW1haWwgdmVyaWZpY2F0aW9uIC0+IGxpbmsgaW52YWxpZC4nLFxuICB9LFxuICBlbWFpbFZlcmlmaWNhdGlvblNlbmRGYWlsOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1BBR0VTX0NVU1RPTV9VUkxfRU1BSUxfVkVSSUZJQ0FUSU9OX1NFTkRfRkFJTCcsXG4gICAgaGVscDogJ1RoZSBVUkwgdG8gdGhlIGN1c3RvbSBwYWdlIGZvciBlbWFpbCB2ZXJpZmljYXRpb24gLT4gbGluayBzZW5kIGZhaWwuJyxcbiAgfSxcbiAgZW1haWxWZXJpZmljYXRpb25TZW5kU3VjY2Vzczoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9QQUdFU19DVVNUT01fVVJMX0VNQUlMX1ZFUklGSUNBVElPTl9TRU5EX1NVQ0NFU1MnLFxuICAgIGhlbHA6ICdUaGUgVVJMIHRvIHRoZSBjdXN0b20gcGFnZSBmb3IgZW1haWwgdmVyaWZpY2F0aW9uIC0+IHJlc2VuZCBsaW5rIC0+IHN1Y2Nlc3MuJyxcbiAgfSxcbiAgZW1haWxWZXJpZmljYXRpb25TdWNjZXNzOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1BBR0VTX0NVU1RPTV9VUkxfRU1BSUxfVkVSSUZJQ0FUSU9OX1NVQ0NFU1MnLFxuICAgIGhlbHA6ICdUaGUgVVJMIHRvIHRoZSBjdXN0b20gcGFnZSBmb3IgZW1haWwgdmVyaWZpY2F0aW9uIC0+IHN1Y2Nlc3MuJyxcbiAgfSxcbiAgcGFzc3dvcmRSZXNldDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9QQUdFU19DVVNUT01fVVJMX1BBU1NXT1JEX1JFU0VUJyxcbiAgICBoZWxwOiAnVGhlIFVSTCB0byB0aGUgY3VzdG9tIHBhZ2UgZm9yIHBhc3N3b3JkIHJlc2V0LicsXG4gIH0sXG4gIHBhc3N3b3JkUmVzZXRMaW5rSW52YWxpZDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9QQUdFU19DVVNUT01fVVJMX1BBU1NXT1JEX1JFU0VUX0xJTktfSU5WQUxJRCcsXG4gICAgaGVscDogJ1RoZSBVUkwgdG8gdGhlIGN1c3RvbSBwYWdlIGZvciBwYXNzd29yZCByZXNldCAtPiBsaW5rIGludmFsaWQuJyxcbiAgfSxcbiAgcGFzc3dvcmRSZXNldFN1Y2Nlc3M6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUEFHRVNfQ1VTVE9NX1VSTF9QQVNTV09SRF9SRVNFVF9TVUNDRVNTJyxcbiAgICBoZWxwOiAnVGhlIFVSTCB0byB0aGUgY3VzdG9tIHBhZ2UgZm9yIHBhc3N3b3JkIHJlc2V0IC0+IHN1Y2Nlc3MuJyxcbiAgfSxcbn07XG5tb2R1bGUuZXhwb3J0cy5DdXN0b21QYWdlc09wdGlvbnMgPSB7XG4gIGNob29zZVBhc3N3b3JkOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0NVU1RPTV9QQUdFU19DSE9PU0VfUEFTU1dPUkQnLFxuICAgIGhlbHA6ICdjaG9vc2UgcGFzc3dvcmQgcGFnZSBwYXRoJyxcbiAgfSxcbiAgZXhwaXJlZFZlcmlmaWNhdGlvbkxpbms6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfQ1VTVE9NX1BBR0VTX0VYUElSRURfVkVSSUZJQ0FUSU9OX0xJTksnLFxuICAgIGhlbHA6ICdleHBpcmVkIHZlcmlmaWNhdGlvbiBsaW5rIHBhZ2UgcGF0aCcsXG4gIH0sXG4gIGludmFsaWRMaW5rOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0NVU1RPTV9QQUdFU19JTlZBTElEX0xJTksnLFxuICAgIGhlbHA6ICdpbnZhbGlkIGxpbmsgcGFnZSBwYXRoJyxcbiAgfSxcbiAgaW52YWxpZFBhc3N3b3JkUmVzZXRMaW5rOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0NVU1RPTV9QQUdFU19JTlZBTElEX1BBU1NXT1JEX1JFU0VUX0xJTksnLFxuICAgIGhlbHA6ICdpbnZhbGlkIHBhc3N3b3JkIHJlc2V0IGxpbmsgcGFnZSBwYXRoJyxcbiAgfSxcbiAgaW52YWxpZFZlcmlmaWNhdGlvbkxpbms6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfQ1VTVE9NX1BBR0VTX0lOVkFMSURfVkVSSUZJQ0FUSU9OX0xJTksnLFxuICAgIGhlbHA6ICdpbnZhbGlkIHZlcmlmaWNhdGlvbiBsaW5rIHBhZ2UgcGF0aCcsXG4gIH0sXG4gIGxpbmtTZW5kRmFpbDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9DVVNUT01fUEFHRVNfTElOS19TRU5EX0ZBSUwnLFxuICAgIGhlbHA6ICd2ZXJpZmljYXRpb24gbGluayBzZW5kIGZhaWwgcGFnZSBwYXRoJyxcbiAgfSxcbiAgbGlua1NlbmRTdWNjZXNzOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0NVU1RPTV9QQUdFU19MSU5LX1NFTkRfU1VDQ0VTUycsXG4gICAgaGVscDogJ3ZlcmlmaWNhdGlvbiBsaW5rIHNlbmQgc3VjY2VzcyBwYWdlIHBhdGgnLFxuICB9LFxuICBwYXJzZUZyYW1lVVJMOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0NVU1RPTV9QQUdFU19QQVJTRV9GUkFNRV9VUkwnLFxuICAgIGhlbHA6ICdmb3IgbWFza2luZyB1c2VyLWZhY2luZyBwYWdlcycsXG4gIH0sXG4gIHBhc3N3b3JkUmVzZXRTdWNjZXNzOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0NVU1RPTV9QQUdFU19QQVNTV09SRF9SRVNFVF9TVUNDRVNTJyxcbiAgICBoZWxwOiAncGFzc3dvcmQgcmVzZXQgc3VjY2VzcyBwYWdlIHBhdGgnLFxuICB9LFxuICB2ZXJpZnlFbWFpbFN1Y2Nlc3M6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfQ1VTVE9NX1BBR0VTX1ZFUklGWV9FTUFJTF9TVUNDRVNTJyxcbiAgICBoZWxwOiAndmVyaWZ5IGVtYWlsIHN1Y2Nlc3MgcGFnZSBwYXRoJyxcbiAgfSxcbn07XG5tb2R1bGUuZXhwb3J0cy5MaXZlUXVlcnlPcHRpb25zID0ge1xuICBjbGFzc05hbWVzOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0xJVkVRVUVSWV9DTEFTU05BTUVTJyxcbiAgICBoZWxwOiBcInBhcnNlLXNlcnZlcidzIExpdmVRdWVyeSBjbGFzc05hbWVzXCIsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmFycmF5UGFyc2VyLFxuICB9LFxuICBwdWJTdWJBZGFwdGVyOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0xJVkVRVUVSWV9QVUJfU1VCX0FEQVBURVInLFxuICAgIGhlbHA6ICdMaXZlUXVlcnkgcHVic3ViIGFkYXB0ZXInLFxuICAgIGFjdGlvbjogcGFyc2Vycy5tb2R1bGVPck9iamVjdFBhcnNlcixcbiAgfSxcbiAgcmVkaXNPcHRpb25zOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0xJVkVRVUVSWV9SRURJU19PUFRJT05TJyxcbiAgICBoZWxwOiBcInBhcnNlLXNlcnZlcidzIExpdmVRdWVyeSByZWRpc09wdGlvbnNcIixcbiAgICBhY3Rpb246IHBhcnNlcnMub2JqZWN0UGFyc2VyLFxuICB9LFxuICByZWRpc1VSTDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9MSVZFUVVFUllfUkVESVNfVVJMJyxcbiAgICBoZWxwOiBcInBhcnNlLXNlcnZlcidzIExpdmVRdWVyeSByZWRpc1VSTFwiLFxuICB9LFxuICB3c3NBZGFwdGVyOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0xJVkVRVUVSWV9XU1NfQURBUFRFUicsXG4gICAgaGVscDogJ0FkYXB0ZXIgbW9kdWxlIGZvciB0aGUgV2ViU29ja2V0U2VydmVyJyxcbiAgICBhY3Rpb246IHBhcnNlcnMubW9kdWxlT3JPYmplY3RQYXJzZXIsXG4gIH0sXG59O1xubW9kdWxlLmV4cG9ydHMuTGl2ZVF1ZXJ5U2VydmVyT3B0aW9ucyA9IHtcbiAgYXBwSWQ6IHtcbiAgICBlbnY6ICdQQVJTRV9MSVZFX1FVRVJZX1NFUlZFUl9BUFBfSUQnLFxuICAgIGhlbHA6XG4gICAgICAnVGhpcyBzdHJpbmcgc2hvdWxkIG1hdGNoIHRoZSBhcHBJZCBpbiB1c2UgYnkgeW91ciBQYXJzZSBTZXJ2ZXIuIElmIHlvdSBkZXBsb3kgdGhlIExpdmVRdWVyeSBzZXJ2ZXIgYWxvbmdzaWRlIFBhcnNlIFNlcnZlciwgdGhlIExpdmVRdWVyeSBzZXJ2ZXIgd2lsbCB0cnkgdG8gdXNlIHRoZSBzYW1lIGFwcElkLicsXG4gIH0sXG4gIGNhY2hlVGltZW91dDoge1xuICAgIGVudjogJ1BBUlNFX0xJVkVfUVVFUllfU0VSVkVSX0NBQ0hFX1RJTUVPVVQnLFxuICAgIGhlbHA6XG4gICAgICBcIk51bWJlciBpbiBtaWxsaXNlY29uZHMuIFdoZW4gY2xpZW50cyBwcm92aWRlIHRoZSBzZXNzaW9uVG9rZW4gdG8gdGhlIExpdmVRdWVyeSBzZXJ2ZXIsIHRoZSBMaXZlUXVlcnkgc2VydmVyIHdpbGwgdHJ5IHRvIGZldGNoIGl0cyBQYXJzZVVzZXIncyBvYmplY3RJZCBmcm9tIHBhcnNlIHNlcnZlciBhbmQgc3RvcmUgaXQgaW4gdGhlIGNhY2hlLiBUaGUgdmFsdWUgZGVmaW5lcyB0aGUgZHVyYXRpb24gb2YgdGhlIGNhY2hlLiBDaGVjayB0aGUgZm9sbG93aW5nIFNlY3VyaXR5IHNlY3Rpb24gYW5kIG91ciBwcm90b2NvbCBzcGVjaWZpY2F0aW9uIGZvciBkZXRhaWxzLCBkZWZhdWx0cyB0byA1ICogMTAwMCBtcyAoNSBzZWNvbmRzKS5cIixcbiAgICBhY3Rpb246IHBhcnNlcnMubnVtYmVyUGFyc2VyKCdjYWNoZVRpbWVvdXQnKSxcbiAgfSxcbiAga2V5UGFpcnM6IHtcbiAgICBlbnY6ICdQQVJTRV9MSVZFX1FVRVJZX1NFUlZFUl9LRVlfUEFJUlMnLFxuICAgIGhlbHA6XG4gICAgICAnQSBKU09OIG9iamVjdCB0aGF0IHNlcnZlcyBhcyBhIHdoaXRlbGlzdCBvZiBrZXlzLiBJdCBpcyB1c2VkIGZvciB2YWxpZGF0aW5nIGNsaWVudHMgd2hlbiB0aGV5IHRyeSB0byBjb25uZWN0IHRvIHRoZSBMaXZlUXVlcnkgc2VydmVyLiBDaGVjayB0aGUgZm9sbG93aW5nIFNlY3VyaXR5IHNlY3Rpb24gYW5kIG91ciBwcm90b2NvbCBzcGVjaWZpY2F0aW9uIGZvciBkZXRhaWxzLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm9iamVjdFBhcnNlcixcbiAgfSxcbiAgbG9nTGV2ZWw6IHtcbiAgICBlbnY6ICdQQVJTRV9MSVZFX1FVRVJZX1NFUlZFUl9MT0dfTEVWRUwnLFxuICAgIGhlbHA6XG4gICAgICAnVGhpcyBzdHJpbmcgZGVmaW5lcyB0aGUgbG9nIGxldmVsIG9mIHRoZSBMaXZlUXVlcnkgc2VydmVyLiBXZSBzdXBwb3J0IFZFUkJPU0UsIElORk8sIEVSUk9SLCBOT05FLCBkZWZhdWx0cyB0byBJTkZPLicsXG4gIH0sXG4gIG1hc3RlcktleToge1xuICAgIGVudjogJ1BBUlNFX0xJVkVfUVVFUllfU0VSVkVSX01BU1RFUl9LRVknLFxuICAgIGhlbHA6XG4gICAgICAnVGhpcyBzdHJpbmcgc2hvdWxkIG1hdGNoIHRoZSBtYXN0ZXJLZXkgaW4gdXNlIGJ5IHlvdXIgUGFyc2UgU2VydmVyLiBJZiB5b3UgZGVwbG95IHRoZSBMaXZlUXVlcnkgc2VydmVyIGFsb25nc2lkZSBQYXJzZSBTZXJ2ZXIsIHRoZSBMaXZlUXVlcnkgc2VydmVyIHdpbGwgdHJ5IHRvIHVzZSB0aGUgc2FtZSBtYXN0ZXJLZXkuJyxcbiAgfSxcbiAgcG9ydDoge1xuICAgIGVudjogJ1BBUlNFX0xJVkVfUVVFUllfU0VSVkVSX1BPUlQnLFxuICAgIGhlbHA6ICdUaGUgcG9ydCB0byBydW4gdGhlIExpdmVRdWVyeSBzZXJ2ZXIsIGRlZmF1bHRzIHRvIDEzMzcuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMubnVtYmVyUGFyc2VyKCdwb3J0JyksXG4gICAgZGVmYXVsdDogMTMzNyxcbiAgfSxcbiAgcHViU3ViQWRhcHRlcjoge1xuICAgIGVudjogJ1BBUlNFX0xJVkVfUVVFUllfU0VSVkVSX1BVQl9TVUJfQURBUFRFUicsXG4gICAgaGVscDogJ0xpdmVRdWVyeSBwdWJzdWIgYWRhcHRlcicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm1vZHVsZU9yT2JqZWN0UGFyc2VyLFxuICB9LFxuICByZWRpc09wdGlvbnM6IHtcbiAgICBlbnY6ICdQQVJTRV9MSVZFX1FVRVJZX1NFUlZFUl9SRURJU19PUFRJT05TJyxcbiAgICBoZWxwOiBcInBhcnNlLXNlcnZlcidzIExpdmVRdWVyeSByZWRpc09wdGlvbnNcIixcbiAgICBhY3Rpb246IHBhcnNlcnMub2JqZWN0UGFyc2VyLFxuICB9LFxuICByZWRpc1VSTDoge1xuICAgIGVudjogJ1BBUlNFX0xJVkVfUVVFUllfU0VSVkVSX1JFRElTX1VSTCcsXG4gICAgaGVscDogXCJwYXJzZS1zZXJ2ZXIncyBMaXZlUXVlcnkgcmVkaXNVUkxcIixcbiAgfSxcbiAgc2VydmVyVVJMOiB7XG4gICAgZW52OiAnUEFSU0VfTElWRV9RVUVSWV9TRVJWRVJfU0VSVkVSX1VSTCcsXG4gICAgaGVscDpcbiAgICAgICdUaGlzIHN0cmluZyBzaG91bGQgbWF0Y2ggdGhlIHNlcnZlclVSTCBpbiB1c2UgYnkgeW91ciBQYXJzZSBTZXJ2ZXIuIElmIHlvdSBkZXBsb3kgdGhlIExpdmVRdWVyeSBzZXJ2ZXIgYWxvbmdzaWRlIFBhcnNlIFNlcnZlciwgdGhlIExpdmVRdWVyeSBzZXJ2ZXIgd2lsbCB0cnkgdG8gdXNlIHRoZSBzYW1lIHNlcnZlclVSTC4nLFxuICB9LFxuICB3ZWJzb2NrZXRUaW1lb3V0OiB7XG4gICAgZW52OiAnUEFSU0VfTElWRV9RVUVSWV9TRVJWRVJfV0VCU09DS0VUX1RJTUVPVVQnLFxuICAgIGhlbHA6XG4gICAgICAnTnVtYmVyIG9mIG1pbGxpc2Vjb25kcyBiZXR3ZWVuIHBpbmcvcG9uZyBmcmFtZXMuIFRoZSBXZWJTb2NrZXQgc2VydmVyIHNlbmRzIHBpbmcvcG9uZyBmcmFtZXMgdG8gdGhlIGNsaWVudHMgdG8ga2VlcCB0aGUgV2ViU29ja2V0IGFsaXZlLiBUaGlzIHZhbHVlIGRlZmluZXMgdGhlIGludGVydmFsIG9mIHRoZSBwaW5nL3BvbmcgZnJhbWUgZnJvbSB0aGUgc2VydmVyIHRvIGNsaWVudHMsIGRlZmF1bHRzIHRvIDEwICogMTAwMCBtcyAoMTAgcykuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMubnVtYmVyUGFyc2VyKCd3ZWJzb2NrZXRUaW1lb3V0JyksXG4gIH0sXG4gIHdzc0FkYXB0ZXI6IHtcbiAgICBlbnY6ICdQQVJTRV9MSVZFX1FVRVJZX1NFUlZFUl9XU1NfQURBUFRFUicsXG4gICAgaGVscDogJ0FkYXB0ZXIgbW9kdWxlIGZvciB0aGUgV2ViU29ja2V0U2VydmVyJyxcbiAgICBhY3Rpb246IHBhcnNlcnMubW9kdWxlT3JPYmplY3RQYXJzZXIsXG4gIH0sXG59O1xubW9kdWxlLmV4cG9ydHMuSWRlbXBvdGVuY3lPcHRpb25zID0ge1xuICBwYXRoczoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9FWFBFUklNRU5UQUxfSURFTVBPVEVOQ1lfUEFUSFMnLFxuICAgIGhlbHA6XG4gICAgICAnQW4gYXJyYXkgb2YgcGF0aHMgZm9yIHdoaWNoIHRoZSBmZWF0dXJlIHNob3VsZCBiZSBlbmFibGVkLiBUaGUgbW91bnQgcGF0aCBtdXN0IG5vdCBiZSBpbmNsdWRlZCwgZm9yIGV4YW1wbGUgaW5zdGVhZCBvZiBgL3BhcnNlL2Z1bmN0aW9ucy9teUZ1bmN0aW9uYCBzcGVjaWZpeSBgZnVuY3Rpb25zL215RnVuY3Rpb25gLiBUaGUgZW50cmllcyBhcmUgaW50ZXJwcmV0ZWQgYXMgcmVndWxhciBleHByZXNzaW9uLCBmb3IgZXhhbXBsZSBgZnVuY3Rpb25zLy4qYCBtYXRjaGVzIGFsbCBmdW5jdGlvbnMsIGBqb2JzLy4qYCBtYXRjaGVzIGFsbCBqb2JzLCBgY2xhc3Nlcy8uKmAgbWF0Y2hlcyBhbGwgY2xhc3NlcywgYC4qYCBtYXRjaGVzIGFsbCBwYXRocy4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5hcnJheVBhcnNlcixcbiAgICBkZWZhdWx0OiBbXSxcbiAgfSxcbiAgdHRsOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0VYUEVSSU1FTlRBTF9JREVNUE9URU5DWV9UVEwnLFxuICAgIGhlbHA6XG4gICAgICAnVGhlIGR1cmF0aW9uIGluIHNlY29uZHMgYWZ0ZXIgd2hpY2ggYSByZXF1ZXN0IHJlY29yZCBpcyBkaXNjYXJkZWQgZnJvbSB0aGUgZGF0YWJhc2UsIGRlZmF1bHRzIHRvIDMwMHMuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMubnVtYmVyUGFyc2VyKCd0dGwnKSxcbiAgICBkZWZhdWx0OiAzMDAsXG4gIH0sXG59O1xubW9kdWxlLmV4cG9ydHMuQWNjb3VudExvY2tvdXRPcHRpb25zID0ge1xuICBkdXJhdGlvbjoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9BQ0NPVU5UX0xPQ0tPVVRfRFVSQVRJT04nLFxuICAgIGhlbHA6XG4gICAgICAnU2V0IHRoZSBkdXJhdGlvbiBpbiBtaW51dGVzIHRoYXQgYSBsb2NrZWQtb3V0IGFjY291bnQgcmVtYWlucyBsb2NrZWQgb3V0IGJlZm9yZSBhdXRvbWF0aWNhbGx5IGJlY29taW5nIHVubG9ja2VkLjxicj48YnI+VmFsaWQgdmFsdWVzIGFyZSBncmVhdGVyIHRoYW4gYDBgIGFuZCBsZXNzIHRoYW4gYDEwMDAwMGAuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMubnVtYmVyUGFyc2VyKCdkdXJhdGlvbicpLFxuICB9LFxuICB0aHJlc2hvbGQ6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfQUNDT1VOVF9MT0NLT1VUX1RIUkVTSE9MRCcsXG4gICAgaGVscDpcbiAgICAgICdTZXQgdGhlIG51bWJlciBvZiBmYWlsZWQgc2lnbi1pbiBhdHRlbXB0cyB0aGF0IHdpbGwgY2F1c2UgYSB1c2VyIGFjY291bnQgdG8gYmUgbG9ja2VkLiBJZiB0aGUgYWNjb3VudCBpcyBsb2NrZWQuIFRoZSBhY2NvdW50IHdpbGwgdW5sb2NrIGFmdGVyIHRoZSBkdXJhdGlvbiBzZXQgaW4gdGhlIGBkdXJhdGlvbmAgb3B0aW9uIGhhcyBwYXNzZWQgYW5kIG5vIGZ1cnRoZXIgbG9naW4gYXR0ZW1wdHMgaGF2ZSBiZWVuIG1hZGUuPGJyPjxicj5WYWxpZCB2YWx1ZXMgYXJlIGdyZWF0ZXIgdGhhbiBgMGAgYW5kIGxlc3MgdGhhbiBgMTAwMGAuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMubnVtYmVyUGFyc2VyKCd0aHJlc2hvbGQnKSxcbiAgfSxcbiAgdW5sb2NrT25QYXNzd29yZFJlc2V0OiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0FDQ09VTlRfTE9DS09VVF9VTkxPQ0tfT05fUEFTU1dPUkRfUkVTRVQnLFxuICAgIGhlbHA6XG4gICAgICAnU2V0IHRvIGB0cnVlYCAgaWYgdGhlIGFjY291bnQgc2hvdWxkIGJlIHVubG9ja2VkIGFmdGVyIGEgc3VjY2Vzc2Z1bCBwYXNzd29yZCByZXNldC48YnI+PGJyPkRlZmF1bHQgaXMgYGZhbHNlYC48YnI+UmVxdWlyZXMgb3B0aW9ucyBgZHVyYXRpb25gIGFuZCBgdGhyZXNob2xkYCB0byBiZSBzZXQuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiBmYWxzZSxcbiAgfSxcbn07XG5tb2R1bGUuZXhwb3J0cy5QYXNzd29yZFBvbGljeU9wdGlvbnMgPSB7XG4gIGRvTm90QWxsb3dVc2VybmFtZToge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9QQVNTV09SRF9QT0xJQ1lfRE9fTk9UX0FMTE9XX1VTRVJOQU1FJyxcbiAgICBoZWxwOlxuICAgICAgJ1NldCB0byBgdHJ1ZWAgdG8gZGlzYWxsb3cgdGhlIHVzZXJuYW1lIGFzIHBhcnQgb2YgdGhlIHBhc3N3b3JkLjxicj48YnI+RGVmYXVsdCBpcyBgZmFsc2VgLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogZmFsc2UsXG4gIH0sXG4gIG1heFBhc3N3b3JkQWdlOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1BBU1NXT1JEX1BPTElDWV9NQVhfUEFTU1dPUkRfQUdFJyxcbiAgICBoZWxwOlxuICAgICAgJ1NldCB0aGUgbnVtYmVyIG9mIGRheXMgYWZ0ZXIgd2hpY2ggYSBwYXNzd29yZCBleHBpcmVzLiBMb2dpbiBhdHRlbXB0cyBmYWlsIGlmIHRoZSB1c2VyIGRvZXMgbm90IHJlc2V0IHRoZSBwYXNzd29yZCBiZWZvcmUgZXhwaXJhdGlvbi4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5udW1iZXJQYXJzZXIoJ21heFBhc3N3b3JkQWdlJyksXG4gIH0sXG4gIG1heFBhc3N3b3JkSGlzdG9yeToge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9QQVNTV09SRF9QT0xJQ1lfTUFYX1BBU1NXT1JEX0hJU1RPUlknLFxuICAgIGhlbHA6XG4gICAgICAnU2V0IHRoZSBudW1iZXIgb2YgcHJldmlvdXMgcGFzc3dvcmQgdGhhdCB3aWxsIG5vdCBiZSBhbGxvd2VkIHRvIGJlIHNldCBhcyBuZXcgcGFzc3dvcmQuIElmIHRoZSBvcHRpb24gaXMgbm90IHNldCBvciBzZXQgdG8gYDBgLCBubyBwcmV2aW91cyBwYXNzd29yZHMgd2lsbCBiZSBjb25zaWRlcmVkLjxicj48YnI+VmFsaWQgdmFsdWVzIGFyZSA+PSBgMGAgYW5kIDw9IGAyMGAuPGJyPkRlZmF1bHQgaXMgYDBgLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm51bWJlclBhcnNlcignbWF4UGFzc3dvcmRIaXN0b3J5JyksXG4gIH0sXG4gIHJlc2V0UGFzc3dvcmRTdWNjZXNzT25JbnZhbGlkRW1haWw6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUEFTU1dPUkRfUE9MSUNZX1JFU0VUX1BBU1NXT1JEX1NVQ0NFU1NfT05fSU5WQUxJRF9FTUFJTCcsXG4gICAgaGVscDpcbiAgICAgICdTZXQgdG8gYHRydWVgIGlmIGEgcmVxdWVzdCB0byByZXNldCB0aGUgcGFzc3dvcmQgc2hvdWxkIHJldHVybiBhIHN1Y2Nlc3MgcmVzcG9uc2UgZXZlbiBpZiB0aGUgcHJvdmlkZWQgZW1haWwgYWRkcmVzcyBpcyBpbnZhbGlkLCBvciBgZmFsc2VgIGlmIHRoZSByZXF1ZXN0IHNob3VsZCByZXR1cm4gYW4gZXJyb3IgcmVzcG9uc2UgaWYgdGhlIGVtYWlsIGFkZHJlc3MgaXMgaW52YWxpZC48YnI+PGJyPkRlZmF1bHQgaXMgYHRydWVgLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogdHJ1ZSxcbiAgfSxcbiAgcmVzZXRUb2tlblJldXNlSWZWYWxpZDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9QQVNTV09SRF9QT0xJQ1lfUkVTRVRfVE9LRU5fUkVVU0VfSUZfVkFMSUQnLFxuICAgIGhlbHA6XG4gICAgICAnU2V0IHRvIGB0cnVlYCBpZiBhIHBhc3N3b3JkIHJlc2V0IHRva2VuIHNob3VsZCBiZSByZXVzZWQgaW4gY2FzZSBhbm90aGVyIHRva2VuIGlzIHJlcXVlc3RlZCBidXQgdGhlcmUgaXMgYSB0b2tlbiB0aGF0IGlzIHN0aWxsIHZhbGlkLCBpLmUuIGhhcyBub3QgZXhwaXJlZC4gVGhpcyBhdm9pZHMgdGhlIG9mdGVuIG9ic2VydmVkIGlzc3VlIHRoYXQgYSB1c2VyIHJlcXVlc3RzIG11bHRpcGxlIGVtYWlscyBhbmQgZG9lcyBub3Qga25vdyB3aGljaCBsaW5rIGNvbnRhaW5zIGEgdmFsaWQgdG9rZW4gYmVjYXVzZSBlYWNoIG5ld2x5IGdlbmVyYXRlZCB0b2tlbiB3b3VsZCBpbnZhbGlkYXRlIHRoZSBwcmV2aW91cyB0b2tlbi48YnI+PGJyPkRlZmF1bHQgaXMgYGZhbHNlYC4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5ib29sZWFuUGFyc2VyLFxuICAgIGRlZmF1bHQ6IGZhbHNlLFxuICB9LFxuICByZXNldFRva2VuVmFsaWRpdHlEdXJhdGlvbjoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9QQVNTV09SRF9QT0xJQ1lfUkVTRVRfVE9LRU5fVkFMSURJVFlfRFVSQVRJT04nLFxuICAgIGhlbHA6XG4gICAgICAnU2V0IHRoZSB2YWxpZGl0eSBkdXJhdGlvbiBvZiB0aGUgcGFzc3dvcmQgcmVzZXQgdG9rZW4gaW4gc2Vjb25kcyBhZnRlciB3aGljaCB0aGUgdG9rZW4gZXhwaXJlcy4gVGhlIHRva2VuIGlzIHVzZWQgaW4gdGhlIGxpbmsgdGhhdCBpcyBzZXQgaW4gdGhlIGVtYWlsLiBBZnRlciB0aGUgdG9rZW4gZXhwaXJlcywgdGhlIGxpbmsgYmVjb21lcyBpbnZhbGlkIGFuZCBhIG5ldyBsaW5rIGhhcyB0byBiZSBzZW50LiBJZiB0aGUgb3B0aW9uIGlzIG5vdCBzZXQgb3Igc2V0IHRvIGB1bmRlZmluZWRgLCB0aGVuIHRoZSB0b2tlbiBuZXZlciBleHBpcmVzLjxicj48YnI+Rm9yIGV4YW1wbGUsIHRvIGV4cGlyZSB0aGUgdG9rZW4gYWZ0ZXIgMiBob3Vycywgc2V0IGEgdmFsdWUgb2YgNzIwMCBzZWNvbmRzICg9IDYwIHNlY29uZHMgKiA2MCBtaW51dGVzICogMiBob3VycykuPGJyPjxicj5EZWZhdWx0IGlzIGB1bmRlZmluZWRgLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm51bWJlclBhcnNlcigncmVzZXRUb2tlblZhbGlkaXR5RHVyYXRpb24nKSxcbiAgfSxcbiAgdmFsaWRhdGlvbkVycm9yOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1BBU1NXT1JEX1BPTElDWV9WQUxJREFUSU9OX0VSUk9SJyxcbiAgICBoZWxwOlxuICAgICAgJ1NldCB0aGUgZXJyb3IgbWVzc2FnZSB0byBiZSBzZW50Ljxicj48YnI+RGVmYXVsdCBpcyBgUGFzc3dvcmQgZG9lcyBub3QgbWVldCB0aGUgUGFzc3dvcmQgUG9saWN5IHJlcXVpcmVtZW50cy5gJyxcbiAgfSxcbiAgdmFsaWRhdG9yQ2FsbGJhY2s6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUEFTU1dPUkRfUE9MSUNZX1ZBTElEQVRPUl9DQUxMQkFDSycsXG4gICAgaGVscDpcbiAgICAgICdTZXQgYSBjYWxsYmFjayBmdW5jdGlvbiB0byB2YWxpZGF0ZSBhIHBhc3N3b3JkIHRvIGJlIGFjY2VwdGVkLjxicj48YnI+SWYgdXNlZCBpbiBjb21iaW5hdGlvbiB3aXRoIGB2YWxpZGF0b3JQYXR0ZXJuYCwgdGhlIHBhc3N3b3JkIG11c3QgcGFzcyBib3RoIHRvIGJlIGFjY2VwdGVkLicsXG4gIH0sXG4gIHZhbGlkYXRvclBhdHRlcm46IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUEFTU1dPUkRfUE9MSUNZX1ZBTElEQVRPUl9QQVRURVJOJyxcbiAgICBoZWxwOlxuICAgICAgJ1NldCB0aGUgcmVndWxhciBleHByZXNzaW9uIHZhbGlkYXRpb24gcGF0dGVybiBhIHBhc3N3b3JkIG11c3QgbWF0Y2ggdG8gYmUgYWNjZXB0ZWQuPGJyPjxicj5JZiB1c2VkIGluIGNvbWJpbmF0aW9uIHdpdGggYHZhbGlkYXRvckNhbGxiYWNrYCwgdGhlIHBhc3N3b3JkIG11c3QgcGFzcyBib3RoIHRvIGJlIGFjY2VwdGVkLicsXG4gIH0sXG59O1xubW9kdWxlLmV4cG9ydHMuRmlsZVVwbG9hZE9wdGlvbnMgPSB7XG4gIGVuYWJsZUZvckFub255bW91c1VzZXI6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfRklMRV9VUExPQURfRU5BQkxFX0ZPUl9BTk9OWU1PVVNfVVNFUicsXG4gICAgaGVscDogJ0lzIHRydWUgaWYgZmlsZSB1cGxvYWQgc2hvdWxkIGJlIGFsbG93ZWQgZm9yIGFub255bW91cyB1c2Vycy4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5ib29sZWFuUGFyc2VyLFxuICAgIGRlZmF1bHQ6IGZhbHNlLFxuICB9LFxuICBlbmFibGVGb3JBdXRoZW50aWNhdGVkVXNlcjoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9GSUxFX1VQTE9BRF9FTkFCTEVfRk9SX0FVVEhFTlRJQ0FURURfVVNFUicsXG4gICAgaGVscDogJ0lzIHRydWUgaWYgZmlsZSB1cGxvYWQgc2hvdWxkIGJlIGFsbG93ZWQgZm9yIGF1dGhlbnRpY2F0ZWQgdXNlcnMuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiB0cnVlLFxuICB9LFxuICBlbmFibGVGb3JQdWJsaWM6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfRklMRV9VUExPQURfRU5BQkxFX0ZPUl9QVUJMSUMnLFxuICAgIGhlbHA6ICdJcyB0cnVlIGlmIGZpbGUgdXBsb2FkIHNob3VsZCBiZSBhbGxvd2VkIGZvciBhbnlvbmUsIHJlZ2FyZGxlc3Mgb2YgdXNlciBhdXRoZW50aWNhdGlvbi4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5ib29sZWFuUGFyc2VyLFxuICAgIGRlZmF1bHQ6IGZhbHNlLFxuICB9LFxuICBmaWxlRXh0ZW5zaW9uczoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9GSUxFX1VQTE9BRF9GSUxFX0VYVEVOU0lPTlMnLFxuICAgIGhlbHA6XG4gICAgICBcIlNldHMgdGhlIGFsbG93ZWQgZmlsZSBleHRlbnNpb25zIGZvciB1cGxvYWRpbmcgZmlsZXMuIFRoZSBleHRlbnNpb24gaXMgZGVmaW5lZCBhcyBhbiBhcnJheSBvZiBmaWxlIGV4dGVuc2lvbnMsIG9yIGEgcmVnZXggcGF0dGVybi48YnI+PGJyPkl0IGlzIHJlY29tbWVuZGVkIHRvIHJlc3RyaWN0IHRoZSBmaWxlIHVwbG9hZCBleHRlbnNpb25zIGFzIG11Y2ggYXMgcG9zc2libGUuIEhUTUwgZmlsZXMgYXJlIGVzcGVjaWFsbHkgcHJvYmxlbWF0aWMgYXMgdGhleSBtYXkgYmUgdXNlZCBieSBhbiBhdHRhY2tlciB3aG8gdXBsb2FkcyBhIEhUTUwgZm9ybSB0byBsb29rIGxlZ2l0aW1hdGUgdW5kZXIgeW91ciBhcHAncyBkb21haW4gbmFtZSwgb3IgdG8gY29tcHJvbWlzZSB0aGUgc2Vzc2lvbiB0b2tlbiBvZiBhbm90aGVyIHVzZXIgdmlhIGFjY2Vzc2luZyB0aGUgYnJvd3NlcidzIGxvY2FsIHN0b3JhZ2UuPGJyPjxicj5EZWZhdWx0cyB0byBgXig/IVt4WHNTXT9baEhdW3RUXVttTV1bbExdPyQpYCB3aGljaCBhbGxvd3MgYW55IGZpbGUgZXh0ZW5zaW9uIGV4Y2VwdCB0aG9zZSBNSU1FIHR5cGVzIHRoYXQgYXJlIG1hcHBlZCB0byBgdGV4dC9odG1sYCBhbmQgYXJlIHJlbmRlcmVkIGFzIHdlYnNpdGUgYnkgYSB3ZWIgYnJvd3Nlci5cIixcbiAgICBhY3Rpb246IHBhcnNlcnMuYXJyYXlQYXJzZXIsXG4gICAgZGVmYXVsdDogWydeKD8hW3hYc1NdP1toSF1bdFRdW21NXVtsTF0/JCknXSxcbiAgfSxcbn07XG5tb2R1bGUuZXhwb3J0cy5EYXRhYmFzZU9wdGlvbnMgPSB7XG4gIGF1dG9TZWxlY3RGYW1pbHk6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfREFUQUJBU0VfQVVUT19TRUxFQ1RfRkFNSUxZJyxcbiAgICBoZWxwOlxuICAgICAgJ1RoZSBNb25nb0RCIGRyaXZlciBvcHRpb24gdG8gc2V0IHdoZXRoZXIgdGhlIHNvY2tldCBhdHRlbXB0cyB0byBjb25uZWN0IHRvIElQdjYgYW5kIElQdjQgYWRkcmVzc2VzIHVudGlsIGEgY29ubmVjdGlvbiBpcyBlc3RhYmxpc2hlZC4gSWYgYXZhaWxhYmxlLCB0aGUgZHJpdmVyIHdpbGwgc2VsZWN0IHRoZSBmaXJzdCBJUHY2IGFkZHJlc3MuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgfSxcbiAgYXV0b1NlbGVjdEZhbWlseUF0dGVtcHRUaW1lb3V0OiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0RBVEFCQVNFX0FVVE9fU0VMRUNUX0ZBTUlMWV9BVFRFTVBUX1RJTUVPVVQnLFxuICAgIGhlbHA6XG4gICAgICAnVGhlIE1vbmdvREIgZHJpdmVyIG9wdGlvbiB0byBzcGVjaWZ5IHRoZSBhbW91bnQgb2YgdGltZSBpbiBtaWxsaXNlY29uZHMgdG8gd2FpdCBmb3IgYSBjb25uZWN0aW9uIGF0dGVtcHQgdG8gZmluaXNoIGJlZm9yZSB0cnlpbmcgdGhlIG5leHQgYWRkcmVzcyB3aGVuIHVzaW5nIHRoZSBhdXRvU2VsZWN0RmFtaWx5IG9wdGlvbi4gSWYgc2V0IHRvIGEgcG9zaXRpdmUgaW50ZWdlciBsZXNzIHRoYW4gMTAsIHRoZSB2YWx1ZSAxMCBpcyB1c2VkIGluc3RlYWQuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMubnVtYmVyUGFyc2VyKCdhdXRvU2VsZWN0RmFtaWx5QXR0ZW1wdFRpbWVvdXQnKSxcbiAgfSxcbiAgY29ubmVjdFRpbWVvdXRNUzoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9EQVRBQkFTRV9DT05ORUNUX1RJTUVPVVRfTVMnLFxuICAgIGhlbHA6XG4gICAgICAnVGhlIE1vbmdvREIgZHJpdmVyIG9wdGlvbiB0byBzcGVjaWZ5IHRoZSBhbW91bnQgb2YgdGltZSwgaW4gbWlsbGlzZWNvbmRzLCB0byB3YWl0IHRvIGVzdGFibGlzaCBhIHNpbmdsZSBUQ1Agc29ja2V0IGNvbm5lY3Rpb24gdG8gdGhlIHNlcnZlciBiZWZvcmUgcmFpc2luZyBhbiBlcnJvci4gU3BlY2lmeWluZyAwIGRpc2FibGVzIHRoZSBjb25uZWN0aW9uIHRpbWVvdXQuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMubnVtYmVyUGFyc2VyKCdjb25uZWN0VGltZW91dE1TJyksXG4gIH0sXG4gIGNyZWF0ZUluZGV4Um9sZU5hbWU6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfREFUQUJBU0VfQ1JFQVRFX0lOREVYX1JPTEVfTkFNRScsXG4gICAgaGVscDpcbiAgICAgICdTZXQgdG8gYHRydWVgIHRvIGF1dG9tYXRpY2FsbHkgY3JlYXRlIGEgdW5pcXVlIGluZGV4IG9uIHRoZSBuYW1lIGZpZWxkIG9mIHRoZSBfUm9sZSBjb2xsZWN0aW9uIG9uIHNlcnZlciBzdGFydC4gU2V0IHRvIGBmYWxzZWAgdG8gc2tpcCBpbmRleCBjcmVhdGlvbi4gRGVmYXVsdCBpcyBgdHJ1ZWAuPGJyPjxicj5cXHUyNkEwXFx1RkUwRiBXaGVuIHNldHRpbmcgdGhpcyBvcHRpb24gdG8gYGZhbHNlYCB0byBtYW51YWxseSBjcmVhdGUgdGhlIGluZGV4LCBrZWVwIGluIG1pbmQgdGhhdCB0aGUgb3RoZXJ3aXNlIGF1dG9tYXRpY2FsbHkgY3JlYXRlZCBpbmRleCBtYXkgY2hhbmdlIGluIHRoZSBmdXR1cmUgdG8gYmUgb3B0aW1pemVkIGZvciB0aGUgaW50ZXJuYWwgdXNhZ2UgYnkgUGFyc2UgU2VydmVyLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogdHJ1ZSxcbiAgfSxcbiAgY3JlYXRlSW5kZXhVc2VyRW1haWw6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfREFUQUJBU0VfQ1JFQVRFX0lOREVYX1VTRVJfRU1BSUwnLFxuICAgIGhlbHA6XG4gICAgICAnU2V0IHRvIGB0cnVlYCB0byBhdXRvbWF0aWNhbGx5IGNyZWF0ZSBpbmRleGVzIG9uIHRoZSBlbWFpbCBmaWVsZCBvZiB0aGUgX1VzZXIgY29sbGVjdGlvbiBvbiBzZXJ2ZXIgc3RhcnQuIFNldCB0byBgZmFsc2VgIHRvIHNraXAgaW5kZXggY3JlYXRpb24uIERlZmF1bHQgaXMgYHRydWVgLjxicj48YnI+XFx1MjZBMFxcdUZFMEYgV2hlbiBzZXR0aW5nIHRoaXMgb3B0aW9uIHRvIGBmYWxzZWAgdG8gbWFudWFsbHkgY3JlYXRlIHRoZSBpbmRleCwga2VlcCBpbiBtaW5kIHRoYXQgdGhlIG90aGVyd2lzZSBhdXRvbWF0aWNhbGx5IGNyZWF0ZWQgaW5kZXggbWF5IGNoYW5nZSBpbiB0aGUgZnV0dXJlIHRvIGJlIG9wdGltaXplZCBmb3IgdGhlIGludGVybmFsIHVzYWdlIGJ5IFBhcnNlIFNlcnZlci4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5ib29sZWFuUGFyc2VyLFxuICAgIGRlZmF1bHQ6IHRydWUsXG4gIH0sXG4gIGNyZWF0ZUluZGV4VXNlckVtYWlsQ2FzZUluc2Vuc2l0aXZlOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0RBVEFCQVNFX0NSRUFURV9JTkRFWF9VU0VSX0VNQUlMX0NBU0VfSU5TRU5TSVRJVkUnLFxuICAgIGhlbHA6XG4gICAgICAnU2V0IHRvIGB0cnVlYCB0byBhdXRvbWF0aWNhbGx5IGNyZWF0ZSBhIGNhc2UtaW5zZW5zaXRpdmUgaW5kZXggb24gdGhlIGVtYWlsIGZpZWxkIG9mIHRoZSBfVXNlciBjb2xsZWN0aW9uIG9uIHNlcnZlciBzdGFydC4gU2V0IHRvIGBmYWxzZWAgdG8gc2tpcCBpbmRleCBjcmVhdGlvbi4gRGVmYXVsdCBpcyBgdHJ1ZWAuPGJyPjxicj5cXHUyNkEwXFx1RkUwRiBXaGVuIHNldHRpbmcgdGhpcyBvcHRpb24gdG8gYGZhbHNlYCB0byBtYW51YWxseSBjcmVhdGUgdGhlIGluZGV4LCBrZWVwIGluIG1pbmQgdGhhdCB0aGUgb3RoZXJ3aXNlIGF1dG9tYXRpY2FsbHkgY3JlYXRlZCBpbmRleCBtYXkgY2hhbmdlIGluIHRoZSBmdXR1cmUgdG8gYmUgb3B0aW1pemVkIGZvciB0aGUgaW50ZXJuYWwgdXNhZ2UgYnkgUGFyc2UgU2VydmVyLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogdHJ1ZSxcbiAgfSxcbiAgY3JlYXRlSW5kZXhVc2VyRW1haWxWZXJpZnlUb2tlbjoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9EQVRBQkFTRV9DUkVBVEVfSU5ERVhfVVNFUl9FTUFJTF9WRVJJRllfVE9LRU4nLFxuICAgIGhlbHA6XG4gICAgICAnU2V0IHRvIGB0cnVlYCB0byBhdXRvbWF0aWNhbGx5IGNyZWF0ZSBhbiBpbmRleCBvbiB0aGUgX2VtYWlsX3ZlcmlmeV90b2tlbiBmaWVsZCBvZiB0aGUgX1VzZXIgY29sbGVjdGlvbiBvbiBzZXJ2ZXIgc3RhcnQuIFNldCB0byBgZmFsc2VgIHRvIHNraXAgaW5kZXggY3JlYXRpb24uIERlZmF1bHQgaXMgYHRydWVgLjxicj48YnI+XFx1MjZBMFxcdUZFMEYgV2hlbiBzZXR0aW5nIHRoaXMgb3B0aW9uIHRvIGBmYWxzZWAgdG8gbWFudWFsbHkgY3JlYXRlIHRoZSBpbmRleCwga2VlcCBpbiBtaW5kIHRoYXQgdGhlIG90aGVyd2lzZSBhdXRvbWF0aWNhbGx5IGNyZWF0ZWQgaW5kZXggbWF5IGNoYW5nZSBpbiB0aGUgZnV0dXJlIHRvIGJlIG9wdGltaXplZCBmb3IgdGhlIGludGVybmFsIHVzYWdlIGJ5IFBhcnNlIFNlcnZlci4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5ib29sZWFuUGFyc2VyLFxuICAgIGRlZmF1bHQ6IHRydWUsXG4gIH0sXG4gIGNyZWF0ZUluZGV4VXNlclBhc3N3b3JkUmVzZXRUb2tlbjoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9EQVRBQkFTRV9DUkVBVEVfSU5ERVhfVVNFUl9QQVNTV09SRF9SRVNFVF9UT0tFTicsXG4gICAgaGVscDpcbiAgICAgICdTZXQgdG8gYHRydWVgIHRvIGF1dG9tYXRpY2FsbHkgY3JlYXRlIGFuIGluZGV4IG9uIHRoZSBfcGVyaXNoYWJsZV90b2tlbiBmaWVsZCBvZiB0aGUgX1VzZXIgY29sbGVjdGlvbiBvbiBzZXJ2ZXIgc3RhcnQuIFNldCB0byBgZmFsc2VgIHRvIHNraXAgaW5kZXggY3JlYXRpb24uIERlZmF1bHQgaXMgYHRydWVgLjxicj48YnI+XFx1MjZBMFxcdUZFMEYgV2hlbiBzZXR0aW5nIHRoaXMgb3B0aW9uIHRvIGBmYWxzZWAgdG8gbWFudWFsbHkgY3JlYXRlIHRoZSBpbmRleCwga2VlcCBpbiBtaW5kIHRoYXQgdGhlIG90aGVyd2lzZSBhdXRvbWF0aWNhbGx5IGNyZWF0ZWQgaW5kZXggbWF5IGNoYW5nZSBpbiB0aGUgZnV0dXJlIHRvIGJlIG9wdGltaXplZCBmb3IgdGhlIGludGVybmFsIHVzYWdlIGJ5IFBhcnNlIFNlcnZlci4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5ib29sZWFuUGFyc2VyLFxuICAgIGRlZmF1bHQ6IHRydWUsXG4gIH0sXG4gIGNyZWF0ZUluZGV4VXNlclVzZXJuYW1lOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0RBVEFCQVNFX0NSRUFURV9JTkRFWF9VU0VSX1VTRVJOQU1FJyxcbiAgICBoZWxwOlxuICAgICAgJ1NldCB0byBgdHJ1ZWAgdG8gYXV0b21hdGljYWxseSBjcmVhdGUgaW5kZXhlcyBvbiB0aGUgdXNlcm5hbWUgZmllbGQgb2YgdGhlIF9Vc2VyIGNvbGxlY3Rpb24gb24gc2VydmVyIHN0YXJ0LiBTZXQgdG8gYGZhbHNlYCB0byBza2lwIGluZGV4IGNyZWF0aW9uLiBEZWZhdWx0IGlzIGB0cnVlYC48YnI+PGJyPlxcdTI2QTBcXHVGRTBGIFdoZW4gc2V0dGluZyB0aGlzIG9wdGlvbiB0byBgZmFsc2VgIHRvIG1hbnVhbGx5IGNyZWF0ZSB0aGUgaW5kZXgsIGtlZXAgaW4gbWluZCB0aGF0IHRoZSBvdGhlcndpc2UgYXV0b21hdGljYWxseSBjcmVhdGVkIGluZGV4IG1heSBjaGFuZ2UgaW4gdGhlIGZ1dHVyZSB0byBiZSBvcHRpbWl6ZWQgZm9yIHRoZSBpbnRlcm5hbCB1c2FnZSBieSBQYXJzZSBTZXJ2ZXIuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiB0cnVlLFxuICB9LFxuICBjcmVhdGVJbmRleFVzZXJVc2VybmFtZUNhc2VJbnNlbnNpdGl2ZToge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9EQVRBQkFTRV9DUkVBVEVfSU5ERVhfVVNFUl9VU0VSTkFNRV9DQVNFX0lOU0VOU0lUSVZFJyxcbiAgICBoZWxwOlxuICAgICAgJ1NldCB0byBgdHJ1ZWAgdG8gYXV0b21hdGljYWxseSBjcmVhdGUgYSBjYXNlLWluc2Vuc2l0aXZlIGluZGV4IG9uIHRoZSB1c2VybmFtZSBmaWVsZCBvZiB0aGUgX1VzZXIgY29sbGVjdGlvbiBvbiBzZXJ2ZXIgc3RhcnQuIFNldCB0byBgZmFsc2VgIHRvIHNraXAgaW5kZXggY3JlYXRpb24uIERlZmF1bHQgaXMgYHRydWVgLjxicj48YnI+XFx1MjZBMFxcdUZFMEYgV2hlbiBzZXR0aW5nIHRoaXMgb3B0aW9uIHRvIGBmYWxzZWAgdG8gbWFudWFsbHkgY3JlYXRlIHRoZSBpbmRleCwga2VlcCBpbiBtaW5kIHRoYXQgdGhlIG90aGVyd2lzZSBhdXRvbWF0aWNhbGx5IGNyZWF0ZWQgaW5kZXggbWF5IGNoYW5nZSBpbiB0aGUgZnV0dXJlIHRvIGJlIG9wdGltaXplZCBmb3IgdGhlIGludGVybmFsIHVzYWdlIGJ5IFBhcnNlIFNlcnZlci4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5ib29sZWFuUGFyc2VyLFxuICAgIGRlZmF1bHQ6IHRydWUsXG4gIH0sXG4gIGRpc2FibGVJbmRleEZpZWxkVmFsaWRhdGlvbjoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9EQVRBQkFTRV9ESVNBQkxFX0lOREVYX0ZJRUxEX1ZBTElEQVRJT04nLFxuICAgIGhlbHA6XG4gICAgICAnU2V0IHRvIGB0cnVlYCB0byBkaXNhYmxlIHZhbGlkYXRpb24gb2YgaW5kZXggZmllbGRzLiBXaGVuIGRpc2FibGVkLCBpbmRleGVzIGNhbiBiZSBjcmVhdGVkIGV2ZW4gaWYgdGhlIGZpZWxkcyBkbyBub3QgZXhpc3QgaW4gdGhlIHNjaGVtYS4gVGhpcyBjYW4gYmUgdXNlZnVsIHdoZW4gY3JlYXRpbmcgaW5kZXhlcyBvbiBmaWVsZHMgdGhhdCB3aWxsIGJlIGFkZGVkIGxhdGVyLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gIH0sXG4gIGVuYWJsZVNjaGVtYUhvb2tzOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0RBVEFCQVNFX0VOQUJMRV9TQ0hFTUFfSE9PS1MnLFxuICAgIGhlbHA6XG4gICAgICAnRW5hYmxlcyBkYXRhYmFzZSByZWFsLXRpbWUgaG9va3MgdG8gdXBkYXRlIHNpbmdsZSBzY2hlbWEgY2FjaGUuIFNldCB0byBgdHJ1ZWAgaWYgdXNpbmcgbXVsdGlwbGUgUGFyc2UgU2VydmVycyBpbnN0YW5jZXMgY29ubmVjdGVkIHRvIHRoZSBzYW1lIGRhdGFiYXNlLiBGYWlsaW5nIHRvIGRvIHNvIHdpbGwgY2F1c2UgYSBzY2hlbWEgY2hhbmdlIHRvIG5vdCBwcm9wYWdhdGUgdG8gYWxsIGluc3RhbmNlcyBhbmQgcmUtc3luY2luZyB3aWxsIG9ubHkgaGFwcGVuIHdoZW4gdGhlIGluc3RhbmNlcyByZXN0YXJ0LiBUbyB1c2UgdGhpcyBmZWF0dXJlIHdpdGggTW9uZ29EQiwgYSByZXBsaWNhIHNldCBjbHVzdGVyIHdpdGggW2NoYW5nZSBzdHJlYW1dKGh0dHBzOi8vZG9jcy5tb25nb2RiLmNvbS9tYW51YWwvY2hhbmdlU3RyZWFtcy8jYXZhaWxhYmlsaXR5KSBzdXBwb3J0IGlzIHJlcXVpcmVkLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogZmFsc2UsXG4gIH0sXG4gIG1heFBvb2xTaXplOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0RBVEFCQVNFX01BWF9QT09MX1NJWkUnLFxuICAgIGhlbHA6XG4gICAgICAnVGhlIE1vbmdvREIgZHJpdmVyIG9wdGlvbiB0byBzZXQgdGhlIG1heGltdW0gbnVtYmVyIG9mIG9wZW5lZCwgY2FjaGVkLCByZWFkeS10by11c2UgZGF0YWJhc2UgY29ubmVjdGlvbnMgbWFpbnRhaW5lZCBieSB0aGUgZHJpdmVyLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm51bWJlclBhcnNlcignbWF4UG9vbFNpemUnKSxcbiAgfSxcbiAgbWF4U3RhbGVuZXNzU2Vjb25kczoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9EQVRBQkFTRV9NQVhfU1RBTEVORVNTX1NFQ09ORFMnLFxuICAgIGhlbHA6XG4gICAgICAnVGhlIE1vbmdvREIgZHJpdmVyIG9wdGlvbiB0byBzZXQgdGhlIG1heGltdW0gcmVwbGljYXRpb24gbGFnIGZvciByZWFkcyBmcm9tIHNlY29uZGFyeSBub2Rlcy4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5udW1iZXJQYXJzZXIoJ21heFN0YWxlbmVzc1NlY29uZHMnKSxcbiAgfSxcbiAgbWF4VGltZU1TOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0RBVEFCQVNFX01BWF9USU1FX01TJyxcbiAgICBoZWxwOlxuICAgICAgJ1RoZSBNb25nb0RCIGRyaXZlciBvcHRpb24gdG8gc2V0IGEgY3VtdWxhdGl2ZSB0aW1lIGxpbWl0IGluIG1pbGxpc2Vjb25kcyBmb3IgcHJvY2Vzc2luZyBvcGVyYXRpb25zIG9uIGEgY3Vyc29yLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm51bWJlclBhcnNlcignbWF4VGltZU1TJyksXG4gIH0sXG4gIG1pblBvb2xTaXplOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0RBVEFCQVNFX01JTl9QT09MX1NJWkUnLFxuICAgIGhlbHA6XG4gICAgICAnVGhlIE1vbmdvREIgZHJpdmVyIG9wdGlvbiB0byBzZXQgdGhlIG1pbmltdW0gbnVtYmVyIG9mIG9wZW5lZCwgY2FjaGVkLCByZWFkeS10by11c2UgZGF0YWJhc2UgY29ubmVjdGlvbnMgbWFpbnRhaW5lZCBieSB0aGUgZHJpdmVyLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm51bWJlclBhcnNlcignbWluUG9vbFNpemUnKSxcbiAgfSxcbiAgcmV0cnlXcml0ZXM6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfREFUQUJBU0VfUkVUUllfV1JJVEVTJyxcbiAgICBoZWxwOiAnVGhlIE1vbmdvREIgZHJpdmVyIG9wdGlvbiB0byBzZXQgd2hldGhlciB0byByZXRyeSBmYWlsZWQgd3JpdGVzLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gIH0sXG4gIHNjaGVtYUNhY2hlVHRsOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0RBVEFCQVNFX1NDSEVNQV9DQUNIRV9UVEwnLFxuICAgIGhlbHA6XG4gICAgICAnVGhlIGR1cmF0aW9uIGluIHNlY29uZHMgYWZ0ZXIgd2hpY2ggdGhlIHNjaGVtYSBjYWNoZSBleHBpcmVzIGFuZCB3aWxsIGJlIHJlZmV0Y2hlZCBmcm9tIHRoZSBkYXRhYmFzZS4gVXNlIHRoaXMgb3B0aW9uIGlmIHVzaW5nIG11bHRpcGxlIFBhcnNlIFNlcnZlcnMgaW5zdGFuY2VzIGNvbm5lY3RlZCB0byB0aGUgc2FtZSBkYXRhYmFzZS4gQSBsb3cgZHVyYXRpb24gd2lsbCBjYXVzZSB0aGUgc2NoZW1hIGNhY2hlIHRvIGJlIHVwZGF0ZWQgdG9vIG9mdGVuLCBjYXVzaW5nIHVubmVjZXNzYXJ5IGRhdGFiYXNlIHJlYWRzLiBBIGhpZ2ggZHVyYXRpb24gd2lsbCBjYXVzZSB0aGUgc2NoZW1hIHRvIGJlIHVwZGF0ZWQgdG9vIHJhcmVseSwgaW5jcmVhc2luZyB0aGUgdGltZSByZXF1aXJlZCB1bnRpbCBzY2hlbWEgY2hhbmdlcyBwcm9wYWdhdGUgdG8gYWxsIHNlcnZlciBpbnN0YW5jZXMuIFRoaXMgZmVhdHVyZSBjYW4gYmUgdXNlZCBhcyBhbiBhbHRlcm5hdGl2ZSBvciBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZSBvcHRpb24gYGVuYWJsZVNjaGVtYUhvb2tzYC4gRGVmYXVsdCBpcyBpbmZpbml0ZSB3aGljaCBtZWFucyB0aGUgc2NoZW1hIGNhY2hlIG5ldmVyIGV4cGlyZXMuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMubnVtYmVyUGFyc2VyKCdzY2hlbWFDYWNoZVR0bCcpLFxuICB9LFxuICBzb2NrZXRUaW1lb3V0TVM6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfREFUQUJBU0VfU09DS0VUX1RJTUVPVVRfTVMnLFxuICAgIGhlbHA6XG4gICAgICAnVGhlIE1vbmdvREIgZHJpdmVyIG9wdGlvbiB0byBzcGVjaWZ5IHRoZSBhbW91bnQgb2YgdGltZSwgaW4gbWlsbGlzZWNvbmRzLCBzcGVudCBhdHRlbXB0aW5nIHRvIHNlbmQgb3IgcmVjZWl2ZSBvbiBhIHNvY2tldCBiZWZvcmUgdGltaW5nIG91dC4gU3BlY2lmeWluZyAwIG1lYW5zIG5vIHRpbWVvdXQuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMubnVtYmVyUGFyc2VyKCdzb2NrZXRUaW1lb3V0TVMnKSxcbiAgfSxcbn07XG5tb2R1bGUuZXhwb3J0cy5BdXRoQWRhcHRlciA9IHtcbiAgZW5hYmxlZDoge1xuICAgIGhlbHA6ICdJcyBgdHJ1ZWAgaWYgdGhlIGF1dGggYWRhcHRlciBpcyBlbmFibGVkLCBgZmFsc2VgIG90aGVyd2lzZS4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5ib29sZWFuUGFyc2VyLFxuICAgIGRlZmF1bHQ6IGZhbHNlLFxuICB9LFxufTtcbm1vZHVsZS5leHBvcnRzLkxvZ0xldmVscyA9IHtcbiAgY2xvdWRGdW5jdGlvbkVycm9yOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0xPR19MRVZFTFNfQ0xPVURfRlVOQ1RJT05fRVJST1InLFxuICAgIGhlbHA6ICdMb2cgbGV2ZWwgdXNlZCBieSB0aGUgQ2xvdWQgQ29kZSBGdW5jdGlvbnMgb24gZXJyb3IuIERlZmF1bHQgaXMgYGVycm9yYC4nLFxuICAgIGRlZmF1bHQ6ICdlcnJvcicsXG4gIH0sXG4gIGNsb3VkRnVuY3Rpb25TdWNjZXNzOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0xPR19MRVZFTFNfQ0xPVURfRlVOQ1RJT05fU1VDQ0VTUycsXG4gICAgaGVscDogJ0xvZyBsZXZlbCB1c2VkIGJ5IHRoZSBDbG91ZCBDb2RlIEZ1bmN0aW9ucyBvbiBzdWNjZXNzLiBEZWZhdWx0IGlzIGBpbmZvYC4nLFxuICAgIGRlZmF1bHQ6ICdpbmZvJyxcbiAgfSxcbiAgdHJpZ2dlckFmdGVyOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0xPR19MRVZFTFNfVFJJR0dFUl9BRlRFUicsXG4gICAgaGVscDpcbiAgICAgICdMb2cgbGV2ZWwgdXNlZCBieSB0aGUgQ2xvdWQgQ29kZSBUcmlnZ2VycyBgYWZ0ZXJTYXZlYCwgYGFmdGVyRGVsZXRlYCwgYGFmdGVyRmluZGAsIGBhZnRlckxvZ291dGAuIERlZmF1bHQgaXMgYGluZm9gLicsXG4gICAgZGVmYXVsdDogJ2luZm8nLFxuICB9LFxuICB0cmlnZ2VyQmVmb3JlRXJyb3I6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfTE9HX0xFVkVMU19UUklHR0VSX0JFRk9SRV9FUlJPUicsXG4gICAgaGVscDpcbiAgICAgICdMb2cgbGV2ZWwgdXNlZCBieSB0aGUgQ2xvdWQgQ29kZSBUcmlnZ2VycyBgYmVmb3JlU2F2ZWAsIGBiZWZvcmVEZWxldGVgLCBgYmVmb3JlRmluZGAsIGBiZWZvcmVMb2dpbmAgb24gZXJyb3IuIERlZmF1bHQgaXMgYGVycm9yYC4nLFxuICAgIGRlZmF1bHQ6ICdlcnJvcicsXG4gIH0sXG4gIHRyaWdnZXJCZWZvcmVTdWNjZXNzOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0xPR19MRVZFTFNfVFJJR0dFUl9CRUZPUkVfU1VDQ0VTUycsXG4gICAgaGVscDpcbiAgICAgICdMb2cgbGV2ZWwgdXNlZCBieSB0aGUgQ2xvdWQgQ29kZSBUcmlnZ2VycyBgYmVmb3JlU2F2ZWAsIGBiZWZvcmVEZWxldGVgLCBgYmVmb3JlRmluZGAsIGBiZWZvcmVMb2dpbmAgb24gc3VjY2Vzcy4gRGVmYXVs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
|
|
1366
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJwYXJzZXJzIiwicmVxdWlyZSIsIm1vZHVsZSIsImV4cG9ydHMiLCJTY2hlbWFPcHRpb25zIiwiYWZ0ZXJNaWdyYXRpb24iLCJlbnYiLCJoZWxwIiwiYmVmb3JlTWlncmF0aW9uIiwiZGVmaW5pdGlvbnMiLCJyZXF1aXJlZCIsImFjdGlvbiIsIm9iamVjdFBhcnNlciIsImRlZmF1bHQiLCJkZWxldGVFeHRyYUZpZWxkcyIsImJvb2xlYW5QYXJzZXIiLCJrZWVwVW5rbm93bkluZGV4ZXMiLCJsb2NrU2NoZW1hcyIsInJlY3JlYXRlTW9kaWZpZWRGaWVsZHMiLCJzdHJpY3QiLCJQYXJzZVNlcnZlck9wdGlvbnMiLCJhY2NvdW50TG9ja291dCIsInR5cGUiLCJhbGxvd0NsaWVudENsYXNzQ3JlYXRpb24iLCJhbGxvd0N1c3RvbU9iamVjdElkIiwiYWxsb3dFeHBpcmVkQXV0aERhdGFUb2tlbiIsImFsbG93SGVhZGVycyIsImFycmF5UGFyc2VyIiwiYWxsb3dPcmlnaW4iLCJhbmFseXRpY3NBZGFwdGVyIiwibW9kdWxlT3JPYmplY3RQYXJzZXIiLCJhcHBJZCIsImFwcE5hbWUiLCJhdXRoIiwiY2FjaGVBZGFwdGVyIiwiY2FjaGVNYXhTaXplIiwibnVtYmVyUGFyc2VyIiwiY2FjaGVUVEwiLCJjbGllbnRLZXkiLCJjbG91ZCIsImNsdXN0ZXIiLCJudW1iZXJPckJvb2xlYW5QYXJzZXIiLCJjb2xsZWN0aW9uUHJlZml4IiwiY29udmVydEVtYWlsVG9Mb3dlcmNhc2UiLCJjb252ZXJ0VXNlcm5hbWVUb0xvd2VyY2FzZSIsImN1c3RvbVBhZ2VzIiwiZGF0YWJhc2VBZGFwdGVyIiwiZGF0YWJhc2VPcHRpb25zIiwiZGF0YWJhc2VVUkkiLCJkZWZhdWx0TGltaXQiLCJkaXJlY3RBY2Nlc3MiLCJkb3ROZXRLZXkiLCJlbWFpbEFkYXB0ZXIiLCJlbWFpbFZlcmlmeVRva2VuUmV1c2VJZlZhbGlkIiwiZW1haWxWZXJpZnlUb2tlblZhbGlkaXR5RHVyYXRpb24iLCJlbmFibGVBbm9ueW1vdXNVc2VycyIsImVuYWJsZUNvbGxhdGlvbkNhc2VDb21wYXJpc29uIiwiZW5hYmxlRXhwcmVzc0Vycm9ySGFuZGxlciIsImVuYWJsZUluc2VjdXJlQXV0aEFkYXB0ZXJzIiwiZW5jb2RlUGFyc2VPYmplY3RJbkNsb3VkRnVuY3Rpb24iLCJlbmNyeXB0aW9uS2V5IiwiZW5mb3JjZVByaXZhdGVVc2VycyIsImV4cGlyZUluYWN0aXZlU2Vzc2lvbnMiLCJleHRlbmRTZXNzaW9uT25Vc2UiLCJmaWxlS2V5IiwiZmlsZXNBZGFwdGVyIiwiZmlsZVVwbG9hZCIsImdyYXBoUUxQYXRoIiwiZ3JhcGhRTFB1YmxpY0ludHJvc3BlY3Rpb24iLCJncmFwaFFMU2NoZW1hIiwiaG9zdCIsImlkZW1wb3RlbmN5T3B0aW9ucyIsImphdmFzY3JpcHRLZXkiLCJqc29uTG9ncyIsImxpdmVRdWVyeSIsImxpdmVRdWVyeVNlcnZlck9wdGlvbnMiLCJsb2dnZXJBZGFwdGVyIiwibG9nTGV2ZWwiLCJsb2dMZXZlbHMiLCJsb2dzRm9sZGVyIiwibWFpbnRlbmFuY2VLZXkiLCJtYWludGVuYW5jZUtleUlwcyIsIm1hc3RlcktleSIsIm1hc3RlcktleUlwcyIsIm1hc3RlcktleVR0bCIsIm1heExpbWl0IiwibWF4TG9nRmlsZXMiLCJudW1iZXJPclN0cmluZ1BhcnNlciIsIm1heFVwbG9hZFNpemUiLCJtaWRkbGV3YXJlIiwibW91bnRHcmFwaFFMIiwibW91bnRQYXRoIiwibW91bnRQbGF5Z3JvdW5kIiwib2JqZWN0SWRTaXplIiwicGFnZXMiLCJwYXNzd29yZFBvbGljeSIsInBsYXlncm91bmRQYXRoIiwicG9ydCIsInByZXNlcnZlRmlsZU5hbWUiLCJwcmV2ZW50TG9naW5XaXRoVW52ZXJpZmllZEVtYWlsIiwicHJldmVudFNpZ251cFdpdGhVbnZlcmlmaWVkRW1haWwiLCJwcm90ZWN0ZWRGaWVsZHMiLCJfVXNlciIsInB1YmxpY1NlcnZlclVSTCIsInB1c2giLCJyYXRlTGltaXQiLCJyZWFkT25seU1hc3RlcktleSIsInJlcXVlc3RDb250ZXh0TWlkZGxld2FyZSIsInJlcXVlc3RLZXl3b3JkRGVueWxpc3QiLCJrZXkiLCJ2YWx1ZSIsInJlc3RBUElLZXkiLCJyZXZva2VTZXNzaW9uT25QYXNzd29yZFJlc2V0Iiwic2NoZWR1bGVkUHVzaCIsInNjaGVtYSIsInNlY3VyaXR5Iiwic2VuZFVzZXJFbWFpbFZlcmlmaWNhdGlvbiIsInNlcnZlckNsb3NlQ29tcGxldGUiLCJzZXJ2ZXJVUkwiLCJzZXNzaW9uTGVuZ3RoIiwic2lsZW50Iiwic3RhcnRMaXZlUXVlcnlTZXJ2ZXIiLCJ0cnVzdFByb3h5IiwidXNlclNlbnNpdGl2ZUZpZWxkcyIsInZlcmJvc2UiLCJ2ZXJpZnlTZXJ2ZXJVcmwiLCJ2ZXJpZnlVc2VyRW1haWxzIiwid2ViaG9va0tleSIsIlJhdGVMaW1pdE9wdGlvbnMiLCJlcnJvclJlc3BvbnNlTWVzc2FnZSIsImluY2x1ZGVJbnRlcm5hbFJlcXVlc3RzIiwiaW5jbHVkZU1hc3RlcktleSIsInJlZGlzVXJsIiwicmVxdWVzdENvdW50IiwicmVxdWVzdE1ldGhvZHMiLCJyZXF1ZXN0UGF0aCIsInJlcXVlc3RUaW1lV2luZG93Iiwiem9uZSIsIlNlY3VyaXR5T3B0aW9ucyIsImNoZWNrR3JvdXBzIiwiZW5hYmxlQ2hlY2siLCJlbmFibGVDaGVja0xvZyIsIlBhZ2VzT3B0aW9ucyIsImN1c3RvbVJvdXRlcyIsImN1c3RvbVVybHMiLCJlbmFibGVMb2NhbGl6YXRpb24iLCJlbmFibGVSb3V0ZXIiLCJmb3JjZVJlZGlyZWN0IiwibG9jYWxpemF0aW9uRmFsbGJhY2tMb2NhbGUiLCJsb2NhbGl6YXRpb25Kc29uUGF0aCIsInBhZ2VzRW5kcG9pbnQiLCJwYWdlc1BhdGgiLCJwbGFjZWhvbGRlcnMiLCJQYWdlc1JvdXRlIiwiaGFuZGxlciIsIm1ldGhvZCIsInBhdGgiLCJQYWdlc0N1c3RvbVVybHNPcHRpb25zIiwiZW1haWxWZXJpZmljYXRpb25MaW5rRXhwaXJlZCIsImVtYWlsVmVyaWZpY2F0aW9uTGlua0ludmFsaWQiLCJlbWFpbFZlcmlmaWNhdGlvblNlbmRGYWlsIiwiZW1haWxWZXJpZmljYXRpb25TZW5kU3VjY2VzcyIsImVtYWlsVmVyaWZpY2F0aW9uU3VjY2VzcyIsInBhc3N3b3JkUmVzZXQiLCJwYXNzd29yZFJlc2V0TGlua0ludmFsaWQiLCJwYXNzd29yZFJlc2V0U3VjY2VzcyIsIkN1c3RvbVBhZ2VzT3B0aW9ucyIsImNob29zZVBhc3N3b3JkIiwiZXhwaXJlZFZlcmlmaWNhdGlvbkxpbmsiLCJpbnZhbGlkTGluayIsImludmFsaWRQYXNzd29yZFJlc2V0TGluayIsImludmFsaWRWZXJpZmljYXRpb25MaW5rIiwibGlua1NlbmRGYWlsIiwibGlua1NlbmRTdWNjZXNzIiwicGFyc2VGcmFtZVVSTCIsInZlcmlmeUVtYWlsU3VjY2VzcyIsIkxpdmVRdWVyeU9wdGlvbnMiLCJjbGFzc05hbWVzIiwicHViU3ViQWRhcHRlciIsInJlZGlzT3B0aW9ucyIsInJlZGlzVVJMIiwid3NzQWRhcHRlciIsIkxpdmVRdWVyeVNlcnZlck9wdGlvbnMiLCJjYWNoZVRpbWVvdXQiLCJrZXlQYWlycyIsIndlYnNvY2tldFRpbWVvdXQiLCJJZGVtcG90ZW5jeU9wdGlvbnMiLCJwYXRocyIsInR0bCIsIkFjY291bnRMb2Nrb3V0T3B0aW9ucyIsImR1cmF0aW9uIiwidGhyZXNob2xkIiwidW5sb2NrT25QYXNzd29yZFJlc2V0IiwiUGFzc3dvcmRQb2xpY3lPcHRpb25zIiwiZG9Ob3RBbGxvd1VzZXJuYW1lIiwibWF4UGFzc3dvcmRBZ2UiLCJtYXhQYXNzd29yZEhpc3RvcnkiLCJyZXNldFBhc3N3b3JkU3VjY2Vzc09uSW52YWxpZEVtYWlsIiwicmVzZXRUb2tlblJldXNlSWZWYWxpZCIsInJlc2V0VG9rZW5WYWxpZGl0eUR1cmF0aW9uIiwidmFsaWRhdGlvbkVycm9yIiwidmFsaWRhdG9yQ2FsbGJhY2siLCJ2YWxpZGF0b3JQYXR0ZXJuIiwiRmlsZVVwbG9hZE9wdGlvbnMiLCJlbmFibGVGb3JBbm9ueW1vdXNVc2VyIiwiZW5hYmxlRm9yQXV0aGVudGljYXRlZFVzZXIiLCJlbmFibGVGb3JQdWJsaWMiLCJmaWxlRXh0ZW5zaW9ucyIsIkxvZ0xldmVsIiwiZGVidWciLCJlcnJvciIsImluZm8iLCJzaWxseSIsIndhcm4iLCJMb2dDbGllbnRFdmVudCIsImtleXMiLCJuYW1lIiwiRGF0YWJhc2VPcHRpb25zIiwiYWxsb3dQdWJsaWNFeHBsYWluIiwiYXV0aE1lY2hhbmlzbSIsImF1dGhNZWNoYW5pc21Qcm9wZXJ0aWVzIiwiYXV0aFNvdXJjZSIsImF1dG9TZWxlY3RGYW1pbHkiLCJhdXRvU2VsZWN0RmFtaWx5QXR0ZW1wdFRpbWVvdXQiLCJjb21wcmVzc29ycyIsImNvbm5lY3RUaW1lb3V0TVMiLCJjcmVhdGVJbmRleFJvbGVOYW1lIiwiY3JlYXRlSW5kZXhVc2VyRW1haWwiLCJjcmVhdGVJbmRleFVzZXJFbWFpbENhc2VJbnNlbnNpdGl2ZSIsImNyZWF0ZUluZGV4VXNlckVtYWlsVmVyaWZ5VG9rZW4iLCJjcmVhdGVJbmRleFVzZXJQYXNzd29yZFJlc2V0VG9rZW4iLCJjcmVhdGVJbmRleFVzZXJVc2VybmFtZSIsImNyZWF0ZUluZGV4VXNlclVzZXJuYW1lQ2FzZUluc2Vuc2l0aXZlIiwiZGlyZWN0Q29ubmVjdGlvbiIsImRpc2FibGVJbmRleEZpZWxkVmFsaWRhdGlvbiIsImVuYWJsZVNjaGVtYUhvb2tzIiwiZm9yY2VTZXJ2ZXJPYmplY3RJZCIsImhlYXJ0YmVhdEZyZXF1ZW5jeU1TIiwibG9hZEJhbGFuY2VkIiwibG9jYWxUaHJlc2hvbGRNUyIsImxvZ0NsaWVudEV2ZW50cyIsIm1heENvbm5lY3RpbmciLCJtYXhJZGxlVGltZU1TIiwibWF4UG9vbFNpemUiLCJtYXhTdGFsZW5lc3NTZWNvbmRzIiwibWF4VGltZU1TIiwibWluUG9vbFNpemUiLCJwcm94eUhvc3QiLCJwcm94eVBhc3N3b3JkIiwicHJveHlQb3J0IiwicHJveHlVc2VybmFtZSIsInJlYWRDb25jZXJuTGV2ZWwiLCJyZWFkUHJlZmVyZW5jZSIsInJlYWRQcmVmZXJlbmNlVGFncyIsInJlcGxpY2FTZXQiLCJyZXRyeVJlYWRzIiwicmV0cnlXcml0ZXMiLCJzY2hlbWFDYWNoZVR0bCIsInNlcnZlck1vbml0b3JpbmdNb2RlIiwic2VydmVyU2VsZWN0aW9uVGltZW91dE1TIiwic29ja2V0VGltZW91dE1TIiwic3J2TWF4SG9zdHMiLCJzcnZTZXJ2aWNlTmFtZSIsInNzbCIsInRscyIsInRsc0FsbG93SW52YWxpZENlcnRpZmljYXRlcyIsInRsc0FsbG93SW52YWxpZEhvc3RuYW1lcyIsInRsc0NBRmlsZSIsInRsc0NlcnRpZmljYXRlS2V5RmlsZSIsInRsc0NlcnRpZmljYXRlS2V5RmlsZVBhc3N3b3JkIiwidGxzSW5zZWN1cmUiLCJ3YWl0UXVldWVUaW1lb3V0TVMiLCJ6bGliQ29tcHJlc3Npb25MZXZlbCIsIkF1dGhBZGFwdGVyIiwiZW5hYmxlZCIsIkxvZ0xldmVscyIsImNsb3VkRnVuY3Rpb25FcnJvciIsImNsb3VkRnVuY3Rpb25TdWNjZXNzIiwidHJpZ2dlckFmdGVyIiwidHJpZ2dlckJlZm9yZUVycm9yIiwidHJpZ2dlckJlZm9yZVN1Y2Nlc3MiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvT3B0aW9ucy9EZWZpbml0aW9ucy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuKioqKiBHRU5FUkFURUQgQ09ERSAqKioqXG5UaGlzIGNvZGUgaGFzIGJlZW4gZ2VuZXJhdGVkIGJ5IHJlc291cmNlcy9idWlsZENvbmZpZ0RlZmluaXRpb25zLmpzXG5EbyBub3QgZWRpdCBtYW51YWxseSwgYnV0IHVwZGF0ZSBPcHRpb25zL2luZGV4LmpzXG4qL1xudmFyIHBhcnNlcnMgPSByZXF1aXJlKCcuL3BhcnNlcnMnKTtcbm1vZHVsZS5leHBvcnRzLlNjaGVtYU9wdGlvbnMgPSB7XG4gIGFmdGVyTWlncmF0aW9uOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1NDSEVNQV9BRlRFUl9NSUdSQVRJT04nLFxuICAgIGhlbHA6ICdFeGVjdXRlIGEgY2FsbGJhY2sgYWZ0ZXIgcnVubmluZyBzY2hlbWEgbWlncmF0aW9ucy4nLFxuICB9LFxuICBiZWZvcmVNaWdyYXRpb246IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfU0NIRU1BX0JFRk9SRV9NSUdSQVRJT04nLFxuICAgIGhlbHA6ICdFeGVjdXRlIGEgY2FsbGJhY2sgYmVmb3JlIHJ1bm5pbmcgc2NoZW1hIG1pZ3JhdGlvbnMuJyxcbiAgfSxcbiAgZGVmaW5pdGlvbnM6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfU0NIRU1BX0RFRklOSVRJT05TJyxcbiAgICBoZWxwOlxuICAgICAgJ1Jlc3QgcmVwcmVzZW50YXRpb24gb24gUGFyc2UuU2NoZW1hIGh0dHBzOi8vZG9jcy5wYXJzZXBsYXRmb3JtLm9yZy9yZXN0L2d1aWRlLyNhZGRpbmctYS1zY2hlbWEnLFxuICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgIGFjdGlvbjogcGFyc2Vycy5vYmplY3RQYXJzZXIsXG4gICAgZGVmYXVsdDogW10sXG4gIH0sXG4gIGRlbGV0ZUV4dHJhRmllbGRzOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1NDSEVNQV9ERUxFVEVfRVhUUkFfRklFTERTJyxcbiAgICBoZWxwOlxuICAgICAgJ0lzIHRydWUgaWYgUGFyc2UgU2VydmVyIHNob3VsZCBkZWxldGUgYW55IGZpZWxkcyBub3QgZGVmaW5lZCBpbiBhIHNjaGVtYSBkZWZpbml0aW9uLiBUaGlzIHNob3VsZCBvbmx5IGJlIHVzZWQgZHVyaW5nIGRldmVsb3BtZW50LicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogZmFsc2UsXG4gIH0sXG4gIGtlZXBVbmtub3duSW5kZXhlczoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9TQ0hFTUFfS0VFUF9VTktOT1dOX0lOREVYRVMnLFxuICAgIGhlbHA6XG4gICAgICBcIihPcHRpb25hbCkgS2VlcCBpbmRleGVzIHRoYXQgYXJlIHByZXNlbnQgaW4gdGhlIGRhdGFiYXNlIGJ1dCBub3QgZGVmaW5lZCBpbiB0aGUgc2NoZW1hLiBTZXQgdGhpcyB0byBgdHJ1ZWAgaWYgeW91IGFyZSBhZGRpbmcgaW5kZXhlcyBtYW51YWxseSwgc28gdGhhdCB0aGV5IHdvbid0IGJlIHJlbW92ZWQgd2hlbiBydW5uaW5nIHNjaGVtYSBtaWdyYXRpb24uIERlZmF1bHQgaXMgYGZhbHNlYC5cIixcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiBmYWxzZSxcbiAgfSxcbiAgbG9ja1NjaGVtYXM6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfU0NIRU1BX0xPQ0tfU0NIRU1BUycsXG4gICAgaGVscDpcbiAgICAgICdJcyB0cnVlIGlmIFBhcnNlIFNlcnZlciB3aWxsIHJlamVjdCBhbnkgYXR0ZW1wdHMgdG8gbW9kaWZ5IHRoZSBzY2hlbWEgd2hpbGUgdGhlIHNlcnZlciBpcyBydW5uaW5nLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogZmFsc2UsXG4gIH0sXG4gIHJlY3JlYXRlTW9kaWZpZWRGaWVsZHM6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfU0NIRU1BX1JFQ1JFQVRFX01PRElGSUVEX0ZJRUxEUycsXG4gICAgaGVscDpcbiAgICAgICdJcyB0cnVlIGlmIFBhcnNlIFNlcnZlciBzaG91bGQgcmVjcmVhdGUgYW55IGZpZWxkcyB0aGF0IGFyZSBkaWZmZXJlbnQgYmV0d2VlbiB0aGUgY3VycmVudCBkYXRhYmFzZSBzY2hlbWEgYW5kIHRoZXNjaGVtYSBkZWZpbml0aW9uLiBUaGlzIHNob3VsZCBvbmx5IGJlIHVzZWQgZHVyaW5nIGRldmVsb3BtZW50LicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogZmFsc2UsXG4gIH0sXG4gIHN0cmljdDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9TQ0hFTUFfU1RSSUNUJyxcbiAgICBoZWxwOiAnSXMgdHJ1ZSBpZiBQYXJzZSBTZXJ2ZXIgc2hvdWxkIGV4aXQgaWYgc2NoZW1hIHVwZGF0ZSBmYWlsLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogZmFsc2UsXG4gIH0sXG59O1xubW9kdWxlLmV4cG9ydHMuUGFyc2VTZXJ2ZXJPcHRpb25zID0ge1xuICBhY2NvdW50TG9ja291dDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9BQ0NPVU5UX0xPQ0tPVVQnLFxuICAgIGhlbHA6ICdUaGUgYWNjb3VudCBsb2Nrb3V0IHBvbGljeSBmb3IgZmFpbGVkIGxvZ2luIGF0dGVtcHRzLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm9iamVjdFBhcnNlcixcbiAgICB0eXBlOiAnQWNjb3VudExvY2tvdXRPcHRpb25zJyxcbiAgfSxcbiAgYWxsb3dDbGllbnRDbGFzc0NyZWF0aW9uOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0FMTE9XX0NMSUVOVF9DTEFTU19DUkVBVElPTicsXG4gICAgaGVscDogJ0VuYWJsZSAob3IgZGlzYWJsZSkgY2xpZW50IGNsYXNzIGNyZWF0aW9uLCBkZWZhdWx0cyB0byBmYWxzZScsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogZmFsc2UsXG4gIH0sXG4gIGFsbG93Q3VzdG9tT2JqZWN0SWQ6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfQUxMT1dfQ1VTVE9NX09CSkVDVF9JRCcsXG4gICAgaGVscDogJ0VuYWJsZSAob3IgZGlzYWJsZSkgY3VzdG9tIG9iamVjdElkJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiBmYWxzZSxcbiAgfSxcbiAgYWxsb3dFeHBpcmVkQXV0aERhdGFUb2tlbjoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9BTExPV19FWFBJUkVEX0FVVEhfREFUQV9UT0tFTicsXG4gICAgaGVscDpcbiAgICAgICdBbGxvdyBhIHVzZXIgdG8gbG9nIGluIGV2ZW4gaWYgdGhlIDNyZCBwYXJ0eSBhdXRoZW50aWNhdGlvbiB0b2tlbiB0aGF0IHdhcyB1c2VkIHRvIHNpZ24gaW4gdG8gdGhlaXIgYWNjb3VudCBoYXMgZXhwaXJlZC4gSWYgdGhpcyBpcyBzZXQgdG8gYGZhbHNlYCwgdGhlbiB0aGUgdG9rZW4gd2lsbCBiZSB2YWxpZGF0ZWQgZXZlcnkgdGltZSB0aGUgdXNlciBzaWducyBpbiB0byB0aGVpciBhY2NvdW50LiBUaGlzIHJlZmVycyB0byB0aGUgdG9rZW4gdGhhdCBpcyBzdG9yZWQgaW4gdGhlIGBfVXNlci5hdXRoRGF0YWAgZmllbGQuIERlZmF1bHRzIHRvIGBmYWxzZWAuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiBmYWxzZSxcbiAgfSxcbiAgYWxsb3dIZWFkZXJzOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0FMTE9XX0hFQURFUlMnLFxuICAgIGhlbHA6ICdBZGQgaGVhZGVycyB0byBBY2Nlc3MtQ29udHJvbC1BbGxvdy1IZWFkZXJzJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYXJyYXlQYXJzZXIsXG4gIH0sXG4gIGFsbG93T3JpZ2luOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0FMTE9XX09SSUdJTicsXG4gICAgaGVscDpcbiAgICAgICdTZXRzIG9yaWdpbnMgZm9yIEFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbi4gVGhpcyBjYW4gYmUgYSBzdHJpbmcgZm9yIGEgc2luZ2xlIG9yaWdpbiBvciBhbiBhcnJheSBvZiBzdHJpbmdzIGZvciBtdWx0aXBsZSBvcmlnaW5zLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmFycmF5UGFyc2VyLFxuICB9LFxuICBhbmFseXRpY3NBZGFwdGVyOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0FOQUxZVElDU19BREFQVEVSJyxcbiAgICBoZWxwOiAnQWRhcHRlciBtb2R1bGUgZm9yIHRoZSBhbmFseXRpY3MnLFxuICAgIGFjdGlvbjogcGFyc2Vycy5tb2R1bGVPck9iamVjdFBhcnNlcixcbiAgfSxcbiAgYXBwSWQ6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfQVBQTElDQVRJT05fSUQnLFxuICAgIGhlbHA6ICdZb3VyIFBhcnNlIEFwcGxpY2F0aW9uIElEJyxcbiAgICByZXF1aXJlZDogdHJ1ZSxcbiAgfSxcbiAgYXBwTmFtZToge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9BUFBfTkFNRScsXG4gICAgaGVscDogJ1NldHMgdGhlIGFwcCBuYW1lJyxcbiAgfSxcbiAgYXV0aDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9BVVRIX1BST1ZJREVSUycsXG4gICAgaGVscDpcbiAgICAgICdDb25maWd1cmF0aW9uIGZvciB5b3VyIGF1dGhlbnRpY2F0aW9uIHByb3ZpZGVycywgYXMgc3RyaW5naWZpZWQgSlNPTi4gU2VlIGh0dHA6Ly9kb2NzLnBhcnNlcGxhdGZvcm0ub3JnL3BhcnNlLXNlcnZlci9ndWlkZS8jb2F1dGgtYW5kLTNyZC1wYXJ0eS1hdXRoZW50aWNhdGlvbicsXG4gIH0sXG4gIGNhY2hlQWRhcHRlcjoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9DQUNIRV9BREFQVEVSJyxcbiAgICBoZWxwOiAnQWRhcHRlciBtb2R1bGUgZm9yIHRoZSBjYWNoZScsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm1vZHVsZU9yT2JqZWN0UGFyc2VyLFxuICB9LFxuICBjYWNoZU1heFNpemU6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfQ0FDSEVfTUFYX1NJWkUnLFxuICAgIGhlbHA6ICdTZXRzIHRoZSBtYXhpbXVtIHNpemUgZm9yIHRoZSBpbiBtZW1vcnkgY2FjaGUsIGRlZmF1bHRzIHRvIDEwMDAwJyxcbiAgICBhY3Rpb246IHBhcnNlcnMubnVtYmVyUGFyc2VyKCdjYWNoZU1heFNpemUnKSxcbiAgICBkZWZhdWx0OiAxMDAwMCxcbiAgfSxcbiAgY2FjaGVUVEw6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfQ0FDSEVfVFRMJyxcbiAgICBoZWxwOiAnU2V0cyB0aGUgVFRMIGZvciB0aGUgaW4gbWVtb3J5IGNhY2hlIChpbiBtcyksIGRlZmF1bHRzIHRvIDUwMDAgKDUgc2Vjb25kcyknLFxuICAgIGFjdGlvbjogcGFyc2Vycy5udW1iZXJQYXJzZXIoJ2NhY2hlVFRMJyksXG4gICAgZGVmYXVsdDogNTAwMCxcbiAgfSxcbiAgY2xpZW50S2V5OiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0NMSUVOVF9LRVknLFxuICAgIGhlbHA6ICdLZXkgZm9yIGlPUywgTWFjT1MsIHR2T1MgY2xpZW50cycsXG4gIH0sXG4gIGNsb3VkOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0NMT1VEJyxcbiAgICBoZWxwOiAnRnVsbCBwYXRoIHRvIHlvdXIgY2xvdWQgY29kZSBtYWluLmpzJyxcbiAgfSxcbiAgY2x1c3Rlcjoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9DTFVTVEVSJyxcbiAgICBoZWxwOiAnUnVuIHdpdGggY2x1c3Rlciwgb3B0aW9uYWxseSBzZXQgdGhlIG51bWJlciBvZiBwcm9jZXNzZXMgZGVmYXVsdCB0byBvcy5jcHVzKCkubGVuZ3RoJyxcbiAgICBhY3Rpb246IHBhcnNlcnMubnVtYmVyT3JCb29sZWFuUGFyc2VyLFxuICB9LFxuICBjb2xsZWN0aW9uUHJlZml4OiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0NPTExFQ1RJT05fUFJFRklYJyxcbiAgICBoZWxwOiAnQSBjb2xsZWN0aW9uIHByZWZpeCBmb3IgdGhlIGNsYXNzZXMnLFxuICAgIGRlZmF1bHQ6ICcnLFxuICB9LFxuICBjb252ZXJ0RW1haWxUb0xvd2VyY2FzZToge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9DT05WRVJUX0VNQUlMX1RPX0xPV0VSQ0FTRScsXG4gICAgaGVscDpcbiAgICAgICdPcHRpb25hbC4gSWYgc2V0IHRvIGB0cnVlYCwgdGhlIGBlbWFpbGAgcHJvcGVydHkgb2YgYSB1c2VyIGlzIGF1dG9tYXRpY2FsbHkgY29udmVydGVkIHRvIGxvd2VyY2FzZSBiZWZvcmUgYmVpbmcgc3RvcmVkIGluIHRoZSBkYXRhYmFzZS4gQ29uc2VxdWVudGx5LCBxdWVyaWVzIG11c3QgbWF0Y2ggdGhlIGNhc2UgYXMgc3RvcmVkIGluIHRoZSBkYXRhYmFzZSwgd2hpY2ggd291bGQgYmUgbG93ZXJjYXNlIGluIHRoaXMgc2NlbmFyaW8uIElmIGBmYWxzZWAsIHRoZSBgZW1haWxgIHByb3BlcnR5IGlzIHN0b3JlZCBhcyBzZXQsIHdpdGhvdXQgYW55IGNhc2UgbW9kaWZpY2F0aW9ucy4gRGVmYXVsdCBpcyBgZmFsc2VgLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogZmFsc2UsXG4gIH0sXG4gIGNvbnZlcnRVc2VybmFtZVRvTG93ZXJjYXNlOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0NPTlZFUlRfVVNFUk5BTUVfVE9fTE9XRVJDQVNFJyxcbiAgICBoZWxwOlxuICAgICAgJ09wdGlvbmFsLiBJZiBzZXQgdG8gYHRydWVgLCB0aGUgYHVzZXJuYW1lYCBwcm9wZXJ0eSBvZiBhIHVzZXIgaXMgYXV0b21hdGljYWxseSBjb252ZXJ0ZWQgdG8gbG93ZXJjYXNlIGJlZm9yZSBiZWluZyBzdG9yZWQgaW4gdGhlIGRhdGFiYXNlLiBDb25zZXF1ZW50bHksIHF1ZXJpZXMgbXVzdCBtYXRjaCB0aGUgY2FzZSBhcyBzdG9yZWQgaW4gdGhlIGRhdGFiYXNlLCB3aGljaCB3b3VsZCBiZSBsb3dlcmNhc2UgaW4gdGhpcyBzY2VuYXJpby4gSWYgYGZhbHNlYCwgdGhlIGB1c2VybmFtZWAgcHJvcGVydHkgaXMgc3RvcmVkIGFzIHNldCwgd2l0aG91dCBhbnkgY2FzZSBtb2RpZmljYXRpb25zLiBEZWZhdWx0IGlzIGBmYWxzZWAuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiBmYWxzZSxcbiAgfSxcbiAgY3VzdG9tUGFnZXM6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfQ1VTVE9NX1BBR0VTJyxcbiAgICBoZWxwOiAnY3VzdG9tIHBhZ2VzIGZvciBwYXNzd29yZCB2YWxpZGF0aW9uIGFuZCByZXNldCcsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm9iamVjdFBhcnNlcixcbiAgICB0eXBlOiAnQ3VzdG9tUGFnZXNPcHRpb25zJyxcbiAgICBkZWZhdWx0OiB7fSxcbiAgfSxcbiAgZGF0YWJhc2VBZGFwdGVyOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0RBVEFCQVNFX0FEQVBURVInLFxuICAgIGhlbHA6XG4gICAgICAnQWRhcHRlciBtb2R1bGUgZm9yIHRoZSBkYXRhYmFzZTsgYW55IG9wdGlvbnMgdGhhdCBhcmUgbm90IGV4cGxpY2l0bHkgZGVzY3JpYmVkIGhlcmUgYXJlIHBhc3NlZCBkaXJlY3RseSB0byB0aGUgZGF0YWJhc2UgY2xpZW50LicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm1vZHVsZU9yT2JqZWN0UGFyc2VyLFxuICB9LFxuICBkYXRhYmFzZU9wdGlvbnM6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfREFUQUJBU0VfT1BUSU9OUycsXG4gICAgaGVscDogJ09wdGlvbnMgdG8gcGFzcyB0byB0aGUgZGF0YWJhc2UgY2xpZW50JyxcbiAgICBhY3Rpb246IHBhcnNlcnMub2JqZWN0UGFyc2VyLFxuICAgIHR5cGU6ICdEYXRhYmFzZU9wdGlvbnMnLFxuICB9LFxuICBkYXRhYmFzZVVSSToge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9EQVRBQkFTRV9VUkknLFxuICAgIGhlbHA6ICdUaGUgZnVsbCBVUkkgdG8geW91ciBkYXRhYmFzZS4gU3VwcG9ydGVkIGRhdGFiYXNlcyBhcmUgbW9uZ29kYiBvciBwb3N0Z3Jlcy4nLFxuICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgIGRlZmF1bHQ6ICdtb25nb2RiOi8vbG9jYWxob3N0OjI3MDE3L3BhcnNlJyxcbiAgfSxcbiAgZGVmYXVsdExpbWl0OiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0RFRkFVTFRfTElNSVQnLFxuICAgIGhlbHA6ICdEZWZhdWx0IHZhbHVlIGZvciBsaW1pdCBvcHRpb24gb24gcXVlcmllcywgZGVmYXVsdHMgdG8gYDEwMGAuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMubnVtYmVyUGFyc2VyKCdkZWZhdWx0TGltaXQnKSxcbiAgICBkZWZhdWx0OiAxMDAsXG4gIH0sXG4gIGRpcmVjdEFjY2Vzczoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9ESVJFQ1RfQUNDRVNTJyxcbiAgICBoZWxwOlxuICAgICAgJ1NldCB0byBgdHJ1ZWAgaWYgUGFyc2UgcmVxdWVzdHMgd2l0aGluIHRoZSBzYW1lIE5vZGUuanMgZW52aXJvbm1lbnQgYXMgUGFyc2UgU2VydmVyIHNob3VsZCBiZSByb3V0ZWQgdG8gUGFyc2UgU2VydmVyIGRpcmVjdGx5IGluc3RlYWQgb2YgdmlhIHRoZSBIVFRQIGludGVyZmFjZS4gRGVmYXVsdCBpcyBgZmFsc2VgLjxicj48YnI+SWYgc2V0IHRvIGBmYWxzZWAgdGhlbiBQYXJzZSByZXF1ZXN0cyB3aXRoaW4gdGhlIHNhbWUgTm9kZS5qcyBlbnZpcm9ubWVudCBhcyBQYXJzZSBTZXJ2ZXIgYXJlIGV4ZWN1dGVkIGFzIEhUVFAgcmVxdWVzdHMgc2VudCB0byBQYXJzZSBTZXJ2ZXIgdmlhIHRoZSBgc2VydmVyVVJMYC4gRm9yIGV4YW1wbGUsIGEgYFBhcnNlLlF1ZXJ5YCBpbiBDbG91ZCBDb2RlIGlzIGNhbGxpbmcgUGFyc2UgU2VydmVyIHZpYSBhIEhUVFAgcmVxdWVzdC4gVGhlIHNlcnZlciBpcyBlc3NlbnRpYWxseSBtYWtpbmcgYSBIVFRQIHJlcXVlc3QgdG8gaXRzZWxmLCB1bm5lY2Vzc2FyaWx5IHVzaW5nIG5ldHdvcmsgcmVzb3VyY2VzIHN1Y2ggYXMgbmV0d29yayBwb3J0cy48YnI+PGJyPlxcdTI2QTBcXHVGRTBGIEluIGVudmlyb25tZW50cyB3aGVyZSBtdWx0aXBsZSBQYXJzZSBTZXJ2ZXIgaW5zdGFuY2VzIHJ1biBiZWhpbmQgYSBsb2FkIGJhbGFuY2VyIGFuZCBQYXJzZSByZXF1ZXN0cyB3aXRoaW4gdGhlIGN1cnJlbnQgTm9kZS5qcyBlbnZpcm9ubWVudCBzaG91bGQgYmUgcm91dGVkIHZpYSB0aGUgbG9hZCBiYWxhbmNlciBhbmQgZGlzdHJpYnV0ZWQgYXMgSFRUUCByZXF1ZXN0cyBhbW9uZyBhbGwgaW5zdGFuY2VzIHZpYSB0aGUgYHNlcnZlclVSTGAsIHRoaXMgc2hvdWxkIGJlIHNldCB0byBgZmFsc2VgLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogdHJ1ZSxcbiAgfSxcbiAgZG90TmV0S2V5OiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0RPVF9ORVRfS0VZJyxcbiAgICBoZWxwOiAnS2V5IGZvciBVbml0eSBhbmQgLk5ldCBTREsnLFxuICB9LFxuICBlbWFpbEFkYXB0ZXI6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfRU1BSUxfQURBUFRFUicsXG4gICAgaGVscDogJ0FkYXB0ZXIgbW9kdWxlIGZvciBlbWFpbCBzZW5kaW5nJyxcbiAgICBhY3Rpb246IHBhcnNlcnMubW9kdWxlT3JPYmplY3RQYXJzZXIsXG4gIH0sXG4gIGVtYWlsVmVyaWZ5VG9rZW5SZXVzZUlmVmFsaWQ6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfRU1BSUxfVkVSSUZZX1RPS0VOX1JFVVNFX0lGX1ZBTElEJyxcbiAgICBoZWxwOlxuICAgICAgJ1NldCB0byBgdHJ1ZWAgaWYgYSBlbWFpbCB2ZXJpZmljYXRpb24gdG9rZW4gc2hvdWxkIGJlIHJldXNlZCBpbiBjYXNlIGFub3RoZXIgdG9rZW4gaXMgcmVxdWVzdGVkIGJ1dCB0aGVyZSBpcyBhIHRva2VuIHRoYXQgaXMgc3RpbGwgdmFsaWQsIGkuZS4gaGFzIG5vdCBleHBpcmVkLiBUaGlzIGF2b2lkcyB0aGUgb2Z0ZW4gb2JzZXJ2ZWQgaXNzdWUgdGhhdCBhIHVzZXIgcmVxdWVzdHMgbXVsdGlwbGUgZW1haWxzIGFuZCBkb2VzIG5vdCBrbm93IHdoaWNoIGxpbmsgY29udGFpbnMgYSB2YWxpZCB0b2tlbiBiZWNhdXNlIGVhY2ggbmV3bHkgZ2VuZXJhdGVkIHRva2VuIHdvdWxkIGludmFsaWRhdGUgdGhlIHByZXZpb3VzIHRva2VuLjxicj48YnI+RGVmYXVsdCBpcyBgZmFsc2VgLjxicj5SZXF1aXJlcyBvcHRpb24gYHZlcmlmeVVzZXJFbWFpbHM6IHRydWVgLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogZmFsc2UsXG4gIH0sXG4gIGVtYWlsVmVyaWZ5VG9rZW5WYWxpZGl0eUR1cmF0aW9uOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0VNQUlMX1ZFUklGWV9UT0tFTl9WQUxJRElUWV9EVVJBVElPTicsXG4gICAgaGVscDpcbiAgICAgICdTZXQgdGhlIHZhbGlkaXR5IGR1cmF0aW9uIG9mIHRoZSBlbWFpbCB2ZXJpZmljYXRpb24gdG9rZW4gaW4gc2Vjb25kcyBhZnRlciB3aGljaCB0aGUgdG9rZW4gZXhwaXJlcy4gVGhlIHRva2VuIGlzIHVzZWQgaW4gdGhlIGxpbmsgdGhhdCBpcyBzZXQgaW4gdGhlIGVtYWlsLiBBZnRlciB0aGUgdG9rZW4gZXhwaXJlcywgdGhlIGxpbmsgYmVjb21lcyBpbnZhbGlkIGFuZCBhIG5ldyBsaW5rIGhhcyB0byBiZSBzZW50LiBJZiB0aGUgb3B0aW9uIGlzIG5vdCBzZXQgb3Igc2V0IHRvIGB1bmRlZmluZWRgLCB0aGVuIHRoZSB0b2tlbiBuZXZlciBleHBpcmVzLjxicj48YnI+Rm9yIGV4YW1wbGUsIHRvIGV4cGlyZSB0aGUgdG9rZW4gYWZ0ZXIgMiBob3Vycywgc2V0IGEgdmFsdWUgb2YgNzIwMCBzZWNvbmRzICg9IDYwIHNlY29uZHMgKiA2MCBtaW51dGVzICogMiBob3VycykuPGJyPjxicj5EZWZhdWx0IGlzIGB1bmRlZmluZWRgLjxicj5SZXF1aXJlcyBvcHRpb24gYHZlcmlmeVVzZXJFbWFpbHM6IHRydWVgLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm51bWJlclBhcnNlcignZW1haWxWZXJpZnlUb2tlblZhbGlkaXR5RHVyYXRpb24nKSxcbiAgfSxcbiAgZW5hYmxlQW5vbnltb3VzVXNlcnM6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfRU5BQkxFX0FOT05fVVNFUlMnLFxuICAgIGhlbHA6ICdFbmFibGUgKG9yIGRpc2FibGUpIGFub255bW91cyB1c2VycywgZGVmYXVsdHMgdG8gdHJ1ZScsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogdHJ1ZSxcbiAgfSxcbiAgZW5hYmxlQ29sbGF0aW9uQ2FzZUNvbXBhcmlzb246IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfRU5BQkxFX0NPTExBVElPTl9DQVNFX0NPTVBBUklTT04nLFxuICAgIGhlbHA6XG4gICAgICAnT3B0aW9uYWwuIElmIHNldCB0byBgdHJ1ZWAsIHRoZSBjb2xsYXRpb24gcnVsZSBvZiBjYXNlIGNvbXBhcmlzb24gZm9yIHF1ZXJpZXMgYW5kIGluZGV4ZXMgaXMgZW5hYmxlZC4gRW5hYmxlIHRoaXMgb3B0aW9uIHRvIHJ1biBQYXJzZSBTZXJ2ZXIgd2l0aCBNb25nb0RCIEF0bGFzIFNlcnZlcmxlc3Mgb3IgQVdTIEFtYXpvbiBEb2N1bWVudERCLiBJZiBgZmFsc2VgLCB0aGUgY29sbGF0aW9uIHJ1bGUgb2YgY2FzZSBjb21wYXJpc29uIGlzIGRpc2FibGVkLiBEZWZhdWx0IGlzIGBmYWxzZWAuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiBmYWxzZSxcbiAgfSxcbiAgZW5hYmxlRXhwcmVzc0Vycm9ySGFuZGxlcjoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9FTkFCTEVfRVhQUkVTU19FUlJPUl9IQU5ETEVSJyxcbiAgICBoZWxwOiAnRW5hYmxlcyB0aGUgZGVmYXVsdCBleHByZXNzIGVycm9yIGhhbmRsZXIgZm9yIGFsbCBlcnJvcnMnLFxuICAgIGFjdGlvbjogcGFyc2Vycy5ib29sZWFuUGFyc2VyLFxuICAgIGRlZmF1bHQ6IGZhbHNlLFxuICB9LFxuICBlbmFibGVJbnNlY3VyZUF1dGhBZGFwdGVyczoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9FTkFCTEVfSU5TRUNVUkVfQVVUSF9BREFQVEVSUycsXG4gICAgaGVscDpcbiAgICAgICdFbmFibGUgKG9yIGRpc2FibGUpIGluc2VjdXJlIGF1dGggYWRhcHRlcnMsIGRlZmF1bHRzIHRvIHRydWUuIEluc2VjdXJlIGF1dGggYWRhcHRlcnMgYXJlIGRlcHJlY2F0ZWQgYW5kIGl0IGlzIHJlY29tbWVuZGVkIHRvIGRpc2FibGUgdGhlbS4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5ib29sZWFuUGFyc2VyLFxuICAgIGRlZmF1bHQ6IHRydWUsXG4gIH0sXG4gIGVuY29kZVBhcnNlT2JqZWN0SW5DbG91ZEZ1bmN0aW9uOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0VOQ09ERV9QQVJTRV9PQkpFQ1RfSU5fQ0xPVURfRlVOQ1RJT04nLFxuICAgIGhlbHA6XG4gICAgICAnSWYgc2V0IHRvIGB0cnVlYCwgYSBgUGFyc2UuT2JqZWN0YCB0aGF0IGlzIGluIHRoZSBwYXlsb2FkIHdoZW4gY2FsbGluZyBhIENsb3VkIEZ1bmN0aW9uIHdpbGwgYmUgY29udmVydGVkIHRvIGFuIGluc3RhbmNlIG9mIGBQYXJzZS5PYmplY3RgLiBJZiBgZmFsc2VgLCB0aGUgb2JqZWN0IHdpbGwgbm90IGJlIGNvbnZlcnRlZCBhbmQgaW5zdGVhZCBiZSBhIHBsYWluIEphdmFTY3JpcHQgb2JqZWN0LCB3aGljaCBjb250YWlucyB0aGUgcmF3IGRhdGEgb2YgYSBgUGFyc2UuT2JqZWN0YCBidXQgaXMgbm90IGFuIGFjdHVhbCBpbnN0YW5jZSBvZiBgUGFyc2UuT2JqZWN0YC4gRGVmYXVsdCBpcyBgZmFsc2VgLiA8YnI+PGJyPlxcdTIxMzlcXHVGRTBGIFRoZSBleHBlY3RlZCBiZWhhdmlvciB3b3VsZCBiZSB0aGF0IHRoZSBvYmplY3QgaXMgY29udmVydGVkIHRvIGFuIGluc3RhbmNlIG9mIGBQYXJzZS5PYmplY3RgLCBzbyB5b3Ugd291bGQgbm9ybWFsbHkgc2V0IHRoaXMgb3B0aW9uIHRvIGB0cnVlYC4gVGhlIGRlZmF1bHQgaXMgYGZhbHNlYCBiZWNhdXNlIHRoaXMgaXMgYSB0ZW1wb3Jhcnkgb3B0aW9uIHRoYXQgaGFzIGJlZW4gaW50cm9kdWNlZCB0byBhdm9pZCBhIGJyZWFraW5nIGNoYW5nZSB3aGVuIGZpeGluZyBhIGJ1ZyB3aGVyZSBKYXZhU2NyaXB0IG9iamVjdHMgYXJlIG5vdCBjb252ZXJ0ZWQgdG8gYWN0dWFsIGluc3RhbmNlcyBvZiBgUGFyc2UuT2JqZWN0YC4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5ib29sZWFuUGFyc2VyLFxuICAgIGRlZmF1bHQ6IHRydWUsXG4gIH0sXG4gIGVuY3J5cHRpb25LZXk6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfRU5DUllQVElPTl9LRVknLFxuICAgIGhlbHA6ICdLZXkgZm9yIGVuY3J5cHRpbmcgeW91ciBmaWxlcycsXG4gIH0sXG4gIGVuZm9yY2VQcml2YXRlVXNlcnM6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfRU5GT1JDRV9QUklWQVRFX1VTRVJTJyxcbiAgICBoZWxwOiAnU2V0IHRvIHRydWUgaWYgbmV3IHVzZXJzIHNob3VsZCBiZSBjcmVhdGVkIHdpdGhvdXQgcHVibGljIHJlYWQgYW5kIHdyaXRlIGFjY2Vzcy4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5ib29sZWFuUGFyc2VyLFxuICAgIGRlZmF1bHQ6IHRydWUsXG4gIH0sXG4gIGV4cGlyZUluYWN0aXZlU2Vzc2lvbnM6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfRVhQSVJFX0lOQUNUSVZFX1NFU1NJT05TJyxcbiAgICBoZWxwOlxuICAgICAgJ1NldHMgd2hldGhlciB3ZSBzaG91bGQgZXhwaXJlIHRoZSBpbmFjdGl2ZSBzZXNzaW9ucywgZGVmYXVsdHMgdG8gdHJ1ZS4gSWYgZmFsc2UsIGFsbCBuZXcgc2Vzc2lvbnMgYXJlIGNyZWF0ZWQgd2l0aCBubyBleHBpcmF0aW9uIGRhdGUuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiB0cnVlLFxuICB9LFxuICBleHRlbmRTZXNzaW9uT25Vc2U6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfRVhURU5EX1NFU1NJT05fT05fVVNFJyxcbiAgICBoZWxwOlxuICAgICAgXCJXaGV0aGVyIFBhcnNlIFNlcnZlciBzaG91bGQgYXV0b21hdGljYWxseSBleHRlbmQgYSB2YWxpZCBzZXNzaW9uIGJ5IHRoZSBzZXNzaW9uTGVuZ3RoLiBJbiBvcmRlciB0byByZWR1Y2UgdGhlIG51bWJlciBvZiBzZXNzaW9uIHVwZGF0ZXMgaW4gdGhlIGRhdGFiYXNlLCBhIHNlc3Npb24gd2lsbCBvbmx5IGJlIGV4dGVuZGVkIHdoZW4gYSByZXF1ZXN0IGlzIHJlY2VpdmVkIGFmdGVyIGF0IGxlYXN0IGhhbGYgb2YgdGhlIGN1cnJlbnQgc2Vzc2lvbidzIGxpZmV0aW1lIGhhcyBwYXNzZWQuXCIsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogZmFsc2UsXG4gIH0sXG4gIGZpbGVLZXk6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfRklMRV9LRVknLFxuICAgIGhlbHA6ICdLZXkgZm9yIHlvdXIgZmlsZXMnLFxuICB9LFxuICBmaWxlc0FkYXB0ZXI6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfRklMRVNfQURBUFRFUicsXG4gICAgaGVscDogJ0FkYXB0ZXIgbW9kdWxlIGZvciB0aGUgZmlsZXMgc3ViLXN5c3RlbScsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm1vZHVsZU9yT2JqZWN0UGFyc2VyLFxuICB9LFxuICBmaWxlVXBsb2FkOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0ZJTEVfVVBMT0FEX09QVElPTlMnLFxuICAgIGhlbHA6ICdPcHRpb25zIGZvciBmaWxlIHVwbG9hZHMnLFxuICAgIGFjdGlvbjogcGFyc2Vycy5vYmplY3RQYXJzZXIsXG4gICAgdHlwZTogJ0ZpbGVVcGxvYWRPcHRpb25zJyxcbiAgICBkZWZhdWx0OiB7fSxcbiAgfSxcbiAgZ3JhcGhRTFBhdGg6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfR1JBUEhRTF9QQVRIJyxcbiAgICBoZWxwOlxuICAgICAgJ1RoZSBtb3VudCBwYXRoIGZvciB0aGUgR3JhcGhRTCBlbmRwb2ludDxicj48YnI+XFx1MjZBMFxcdUZFMEYgRmlsZSB1cGxvYWQgaW5zaWRlIHRoZSBHcmFwaFFMIG11dGF0aW9uIHN5c3RlbSByZXF1aXJlcyBQYXJzZSBTZXJ2ZXIgdG8gYmUgYWJsZSB0byBjYWxsIGl0c2VsZiBieSBtYWtpbmcgcmVxdWVzdHMgdG8gdGhlIFVSTCBzZXQgaW4gYHNlcnZlclVSTGAuPGJyPjxicj5EZWZhdWx0cyBpcyBgL2dyYXBocWxgLicsXG4gICAgZGVmYXVsdDogJy9ncmFwaHFsJyxcbiAgfSxcbiAgZ3JhcGhRTFB1YmxpY0ludHJvc3BlY3Rpb246IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfR1JBUEhRTF9QVUJMSUNfSU5UUk9TUEVDVElPTicsXG4gICAgaGVscDogJ0VuYWJsZSBwdWJsaWMgaW50cm9zcGVjdGlvbiBmb3IgdGhlIEdyYXBoUUwgZW5kcG9pbnQsIGRlZmF1bHRzIHRvIGZhbHNlJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiBmYWxzZSxcbiAgfSxcbiAgZ3JhcGhRTFNjaGVtYToge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9HUkFQSF9RTFNDSEVNQScsXG4gICAgaGVscDogJ0Z1bGwgcGF0aCB0byB5b3VyIEdyYXBoUUwgY3VzdG9tIHNjaGVtYS5ncmFwaHFsIGZpbGUnLFxuICB9LFxuICBob3N0OiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0hPU1QnLFxuICAgIGhlbHA6ICdUaGUgaG9zdCB0byBzZXJ2ZSBQYXJzZVNlcnZlciBvbiwgZGVmYXVsdHMgdG8gMC4wLjAuMCcsXG4gICAgZGVmYXVsdDogJzAuMC4wLjAnLFxuICB9LFxuICBpZGVtcG90ZW5jeU9wdGlvbnM6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfRVhQRVJJTUVOVEFMX0lERU1QT1RFTkNZX09QVElPTlMnLFxuICAgIGhlbHA6XG4gICAgICAnT3B0aW9ucyBmb3IgcmVxdWVzdCBpZGVtcG90ZW5jeSB0byBkZWR1cGxpY2F0ZSBpZGVudGljYWwgcmVxdWVzdHMgdGhhdCBtYXkgYmUgY2F1c2VkIGJ5IG5ldHdvcmsgaXNzdWVzLiBDYXV0aW9uLCB0aGlzIGlzIGFuIGV4cGVyaW1lbnRhbCBmZWF0dXJlIHRoYXQgbWF5IG5vdCBiZSBhcHByb3ByaWF0ZSBmb3IgcHJvZHVjdGlvbi4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5vYmplY3RQYXJzZXIsXG4gICAgdHlwZTogJ0lkZW1wb3RlbmN5T3B0aW9ucycsXG4gICAgZGVmYXVsdDoge30sXG4gIH0sXG4gIGphdmFzY3JpcHRLZXk6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfSkFWQVNDUklQVF9LRVknLFxuICAgIGhlbHA6ICdLZXkgZm9yIHRoZSBKYXZhc2NyaXB0IFNESycsXG4gIH0sXG4gIGpzb25Mb2dzOiB7XG4gICAgZW52OiAnSlNPTl9MT0dTJyxcbiAgICBoZWxwOiAnTG9nIGFzIHN0cnVjdHVyZWQgSlNPTiBvYmplY3RzJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgfSxcbiAgbGl2ZVF1ZXJ5OiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0xJVkVfUVVFUlknLFxuICAgIGhlbHA6IFwicGFyc2Utc2VydmVyJ3MgTGl2ZVF1ZXJ5IGNvbmZpZ3VyYXRpb24gb2JqZWN0XCIsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm9iamVjdFBhcnNlcixcbiAgICB0eXBlOiAnTGl2ZVF1ZXJ5T3B0aW9ucycsXG4gIH0sXG4gIGxpdmVRdWVyeVNlcnZlck9wdGlvbnM6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfTElWRV9RVUVSWV9TRVJWRVJfT1BUSU9OUycsXG4gICAgaGVscDogJ0xpdmUgcXVlcnkgc2VydmVyIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyAod2lsbCBzdGFydCB0aGUgbGl2ZVF1ZXJ5IHNlcnZlciknLFxuICAgIGFjdGlvbjogcGFyc2Vycy5vYmplY3RQYXJzZXIsXG4gICAgdHlwZTogJ0xpdmVRdWVyeVNlcnZlck9wdGlvbnMnLFxuICB9LFxuICBsb2dnZXJBZGFwdGVyOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0xPR0dFUl9BREFQVEVSJyxcbiAgICBoZWxwOiAnQWRhcHRlciBtb2R1bGUgZm9yIHRoZSBsb2dnaW5nIHN1Yi1zeXN0ZW0nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5tb2R1bGVPck9iamVjdFBhcnNlcixcbiAgfSxcbiAgbG9nTGV2ZWw6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfTE9HX0xFVkVMJyxcbiAgICBoZWxwOiAnU2V0cyB0aGUgbGV2ZWwgZm9yIGxvZ3MnLFxuICB9LFxuICBsb2dMZXZlbHM6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfTE9HX0xFVkVMUycsXG4gICAgaGVscDogJyhPcHRpb25hbCkgT3ZlcnJpZGVzIHRoZSBsb2cgbGV2ZWxzIHVzZWQgaW50ZXJuYWxseSBieSBQYXJzZSBTZXJ2ZXIgdG8gbG9nIGV2ZW50cy4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5vYmplY3RQYXJzZXIsXG4gICAgdHlwZTogJ0xvZ0xldmVscycsXG4gICAgZGVmYXVsdDoge30sXG4gIH0sXG4gIGxvZ3NGb2xkZXI6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfTE9HU19GT0xERVInLFxuICAgIGhlbHA6IFwiRm9sZGVyIGZvciB0aGUgbG9ncyAoZGVmYXVsdHMgdG8gJy4vbG9ncycpOyBzZXQgdG8gbnVsbCB0byBkaXNhYmxlIGZpbGUgYmFzZWQgbG9nZ2luZ1wiLFxuICAgIGRlZmF1bHQ6ICcuL2xvZ3MnLFxuICB9LFxuICBtYWludGVuYW5jZUtleToge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9NQUlOVEVOQU5DRV9LRVknLFxuICAgIGhlbHA6XG4gICAgICAnKE9wdGlvbmFsKSBUaGUgbWFpbnRlbmFuY2Uga2V5IGlzIHVzZWQgZm9yIG1vZGlmeWluZyBpbnRlcm5hbCBhbmQgcmVhZC1vbmx5IGZpZWxkcyBvZiBQYXJzZSBTZXJ2ZXIuPGJyPjxicj5cXHUyNkEwXFx1RkUwRiBUaGlzIGtleSBpcyBub3QgaW50ZW5kZWQgdG8gYmUgdXNlZCBhcyBwYXJ0IG9mIGEgcmVndWxhciBvcGVyYXRpb24gb2YgUGFyc2UgU2VydmVyLiBUaGlzIGtleSBpcyBpbnRlbmRlZCB0byBjb25kdWN0IG91dC1vZi1iYW5kIGNoYW5nZXMgc3VjaCBhcyBvbmUtdGltZSBtaWdyYXRpb25zIG9yIGRhdGEgY29ycmVjdGlvbiB0YXNrcy4gSW50ZXJuYWwgZmllbGRzIGFyZSBub3Qgb2ZmaWNpYWxseSBkb2N1bWVudGVkIGFuZCBtYXkgY2hhbmdlIGF0IGFueSB0aW1lIHdpdGhvdXQgcHVibGljYXRpb24gaW4gcmVsZWFzZSBjaGFuZ2Vsb2dzLiBXZSBzdHJvbmdseSBhZHZpY2Ugbm90IHRvIHJlbHkgb24gaW50ZXJuYWwgZmllbGRzIGFzIHBhcnQgb2YgeW91ciByZWd1bGFyIG9wZXJhdGlvbiBhbmQgdG8gaW52ZXN0aWdhdGUgdGhlIGltcGxpY2F0aW9ucyBvZiBhbnkgcGxhbm5lZCBjaGFuZ2VzICpkaXJlY3RseSBpbiB0aGUgc291cmNlIGNvZGUqIG9mIHlvdXIgY3VycmVudCB2ZXJzaW9uIG9mIFBhcnNlIFNlcnZlci4nLFxuICAgIHJlcXVpcmVkOiB0cnVlLFxuICB9LFxuICBtYWludGVuYW5jZUtleUlwczoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9NQUlOVEVOQU5DRV9LRVlfSVBTJyxcbiAgICBoZWxwOlxuICAgICAgXCIoT3B0aW9uYWwpIFJlc3RyaWN0cyB0aGUgdXNlIG9mIG1haW50ZW5hbmNlIGtleSBwZXJtaXNzaW9ucyB0byBhIGxpc3Qgb2YgSVAgYWRkcmVzc2VzIG9yIHJhbmdlcy48YnI+PGJyPlRoaXMgb3B0aW9uIGFjY2VwdHMgYSBsaXN0IG9mIHNpbmdsZSBJUCBhZGRyZXNzZXMsIGZvciBleGFtcGxlIGBbJzEwLjAuMC4xJywgJzEwLjAuMC4yJ11gLiBZb3UgY2FuIGFsc28gdXNlIENJRFIgbm90YXRpb24gdG8gc3BlY2lmeSBhbiBJUCBhZGRyZXNzIHJhbmdlLCBmb3IgZXhhbXBsZSBgWycxMC4wLjEuMC8yNCddYC48YnI+PGJyPjxiPlNwZWNpYWwgc2NlbmFyaW9zOjwvYj48YnI+LSBTZXR0aW5nIGFuIGVtcHR5IGFycmF5IGBbXWAgbWVhbnMgdGhhdCB0aGUgbWFpbnRlbmFuY2Uga2V5IGNhbm5vdCBiZSB1c2VkIGV2ZW4gaW4gUGFyc2UgU2VydmVyIENsb3VkIENvZGUuIFRoaXMgdmFsdWUgY2Fubm90IGJlIHNldCB2aWEgYW4gZW52aXJvbm1lbnQgdmFyaWFibGUgYXMgdGhlcmUgaXMgbm8gd2F5IHRvIHBhc3MgYW4gZW1wdHkgYXJyYXkgdG8gUGFyc2UgU2VydmVyIHZpYSBhbiBlbnZpcm9ubWVudCB2YXJpYWJsZS48YnI+LSBTZXR0aW5nIGBbJzAuMC4wLjAvMCcsICc6OjAnXWAgbWVhbnMgdG8gYWxsb3cgYW55IElQdjQgYW5kIElQdjYgYWRkcmVzcyB0byB1c2UgdGhlIG1haW50ZW5hbmNlIGtleSBhbmQgZWZmZWN0aXZlbHkgZGlzYWJsZXMgdGhlIElQIGZpbHRlci48YnI+PGJyPjxiPkNvbnNpZGVyYXRpb25zOjwvYj48YnI+LSBJUHY0IGFuZCBJUHY2IGFkZHJlc3NlcyBhcmUgbm90IGNvbXBhcmVkIGFnYWluc3QgZWFjaCBvdGhlci4gRWFjaCBJUCB2ZXJzaW9uIChJUHY0IGFuZCBJUHY2KSBuZWVkcyB0byBiZSBjb25zaWRlcmVkIHNlcGFyYXRlbHkuIEZvciBleGFtcGxlLCBgWycwLjAuMC4wLzAnXWAgYWxsb3dzIGFueSBJUHY0IGFkZHJlc3MgYW5kIGJsb2NrcyBldmVyeSBJUHY2IGFkZHJlc3MuIENvbnZlcnNlbHksIGBbJzo6MCddYCBhbGxvd3MgYW55IElQdjYgYWRkcmVzcyBhbmQgYmxvY2tzIGV2ZXJ5IElQdjQgYWRkcmVzcy48YnI+LSBLZWVwIGluIG1pbmQgdGhhdCB0aGUgSVAgdmVyc2lvbiBpbiB1c2UgZGVwZW5kcyBvbiB0aGUgbmV0d29yayBzdGFjayBvZiB0aGUgZW52aXJvbm1lbnQgaW4gd2hpY2ggUGFyc2UgU2VydmVyIHJ1bnMuIEEgbG9jYWwgZW52aXJvbm1lbnQgbWF5IHVzZSBhIGRpZmZlcmVudCBJUCB2ZXJzaW9uIHRoYW4gYSByZW1vdGUgZW52aXJvbm1lbnQuIEZvciBleGFtcGxlLCBpdCdzIHBvc3NpYmxlIHRoYXQgbG9jYWxseSB0aGUgdmFsdWUgYFsnMC4wLjAuMC8wJ11gIGFsbG93cyB0aGUgcmVxdWVzdCBJUCBiZWNhdXNlIHRoZSBlbnZpcm9ubWVudCBpcyB1c2luZyBJUHY0LCBidXQgd2hlbiBQYXJzZSBTZXJ2ZXIgaXMgZGVwbG95ZWQgcmVtb3RlbHkgdGhlIHJlcXVlc3QgSVAgaXMgYmxvY2tlZCBiZWNhdXNlIHRoZSByZW1vdGUgZW52aXJvbm1lbnQgaXMgdXNpbmcgSVB2Ni48YnI+LSBXaGVuIHNldHRpbmcgdGhlIG9wdGlvbiB2aWEgYW4gZW52aXJvbm1lbnQgdmFyaWFibGUgdGhlIG5vdGF0aW9uIGlzIGEgY29tbWEtc2VwYXJhdGVkIHN0cmluZywgZm9yIGV4YW1wbGUgYFxcXCIwLjAuMC4wLzAsOjowXFxcImAuPGJyPi0gSVB2NiB6b25lIGluZGljZXMgKGAlYCBzdWZmaXgpIGFyZSBub3Qgc3VwcG9ydGVkLCBmb3IgZXhhbXBsZSBgZmU4MDo6MSVldGgwYCwgYGZlODA6OjElMWAgb3IgYDo6MSVsb2AuPGJyPjxicj5EZWZhdWx0cyB0byBgWycxMjcuMC4wLjEnLCAnOjoxJ11gIHdoaWNoIG1lYW5zIHRoYXQgb25seSBgbG9jYWxob3N0YCwgdGhlIHNlcnZlciBpbnN0YW5jZSBvbiB3aGljaCBQYXJzZSBTZXJ2ZXIgcnVucywgaXMgYWxsb3dlZCB0byB1c2UgdGhlIG1haW50ZW5hbmNlIGtleS5cIixcbiAgICBhY3Rpb246IHBhcnNlcnMuYXJyYXlQYXJzZXIsXG4gICAgZGVmYXVsdDogWycxMjcuMC4wLjEnLCAnOjoxJ10sXG4gIH0sXG4gIG1hc3RlcktleToge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9NQVNURVJfS0VZJyxcbiAgICBoZWxwOiAnWW91ciBQYXJzZSBNYXN0ZXIgS2V5JyxcbiAgICByZXF1aXJlZDogdHJ1ZSxcbiAgfSxcbiAgbWFzdGVyS2V5SXBzOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX01BU1RFUl9LRVlfSVBTJyxcbiAgICBoZWxwOlxuICAgICAgXCIoT3B0aW9uYWwpIFJlc3RyaWN0cyB0aGUgdXNlIG9mIG1hc3RlciBrZXkgcGVybWlzc2lvbnMgdG8gYSBsaXN0IG9mIElQIGFkZHJlc3NlcyBvciByYW5nZXMuPGJyPjxicj5UaGlzIG9wdGlvbiBhY2NlcHRzIGEgbGlzdCBvZiBzaW5nbGUgSVAgYWRkcmVzc2VzLCBmb3IgZXhhbXBsZSBgWycxMC4wLjAuMScsICcxMC4wLjAuMiddYC4gWW91IGNhbiBhbHNvIHVzZSBDSURSIG5vdGF0aW9uIHRvIHNwZWNpZnkgYW4gSVAgYWRkcmVzcyByYW5nZSwgZm9yIGV4YW1wbGUgYFsnMTAuMC4xLjAvMjQnXWAuPGJyPjxicj48Yj5TcGVjaWFsIHNjZW5hcmlvczo8L2I+PGJyPi0gU2V0dGluZyBhbiBlbXB0eSBhcnJheSBgW11gIG1lYW5zIHRoYXQgdGhlIG1hc3RlciBrZXkgY2Fubm90IGJlIHVzZWQgZXZlbiBpbiBQYXJzZSBTZXJ2ZXIgQ2xvdWQgQ29kZS4gVGhpcyB2YWx1ZSBjYW5ub3QgYmUgc2V0IHZpYSBhbiBlbnZpcm9ubWVudCB2YXJpYWJsZSBhcyB0aGVyZSBpcyBubyB3YXkgdG8gcGFzcyBhbiBlbXB0eSBhcnJheSB0byBQYXJzZSBTZXJ2ZXIgdmlhIGFuIGVudmlyb25tZW50IHZhcmlhYmxlLjxicj4tIFNldHRpbmcgYFsnMC4wLjAuMC8wJywgJzo6MCddYCBtZWFucyB0byBhbGxvdyBhbnkgSVB2NCBhbmQgSVB2NiBhZGRyZXNzIHRvIHVzZSB0aGUgbWFzdGVyIGtleSBhbmQgZWZmZWN0aXZlbHkgZGlzYWJsZXMgdGhlIElQIGZpbHRlci48YnI+PGJyPjxiPkNvbnNpZGVyYXRpb25zOjwvYj48YnI+LSBJUHY0IGFuZCBJUHY2IGFkZHJlc3NlcyBhcmUgbm90IGNvbXBhcmVkIGFnYWluc3QgZWFjaCBvdGhlci4gRWFjaCBJUCB2ZXJzaW9uIChJUHY0IGFuZCBJUHY2KSBuZWVkcyB0byBiZSBjb25zaWRlcmVkIHNlcGFyYXRlbHkuIEZvciBleGFtcGxlLCBgWycwLjAuMC4wLzAnXWAgYWxsb3dzIGFueSBJUHY0IGFkZHJlc3MgYW5kIGJsb2NrcyBldmVyeSBJUHY2IGFkZHJlc3MuIENvbnZlcnNlbHksIGBbJzo6MCddYCBhbGxvd3MgYW55IElQdjYgYWRkcmVzcyBhbmQgYmxvY2tzIGV2ZXJ5IElQdjQgYWRkcmVzcy48YnI+LSBLZWVwIGluIG1pbmQgdGhhdCB0aGUgSVAgdmVyc2lvbiBpbiB1c2UgZGVwZW5kcyBvbiB0aGUgbmV0d29yayBzdGFjayBvZiB0aGUgZW52aXJvbm1lbnQgaW4gd2hpY2ggUGFyc2UgU2VydmVyIHJ1bnMuIEEgbG9jYWwgZW52aXJvbm1lbnQgbWF5IHVzZSBhIGRpZmZlcmVudCBJUCB2ZXJzaW9uIHRoYW4gYSByZW1vdGUgZW52aXJvbm1lbnQuIEZvciBleGFtcGxlLCBpdCdzIHBvc3NpYmxlIHRoYXQgbG9jYWxseSB0aGUgdmFsdWUgYFsnMC4wLjAuMC8wJ11gIGFsbG93cyB0aGUgcmVxdWVzdCBJUCBiZWNhdXNlIHRoZSBlbnZpcm9ubWVudCBpcyB1c2luZyBJUHY0LCBidXQgd2hlbiBQYXJzZSBTZXJ2ZXIgaXMgZGVwbG95ZWQgcmVtb3RlbHkgdGhlIHJlcXVlc3QgSVAgaXMgYmxvY2tlZCBiZWNhdXNlIHRoZSByZW1vdGUgZW52aXJvbm1lbnQgaXMgdXNpbmcgSVB2Ni48YnI+LSBXaGVuIHNldHRpbmcgdGhlIG9wdGlvbiB2aWEgYW4gZW52aXJvbm1lbnQgdmFyaWFibGUgdGhlIG5vdGF0aW9uIGlzIGEgY29tbWEtc2VwYXJhdGVkIHN0cmluZywgZm9yIGV4YW1wbGUgYFxcXCIwLjAuMC4wLzAsOjowXFxcImAuPGJyPi0gSVB2NiB6b25lIGluZGljZXMgKGAlYCBzdWZmaXgpIGFyZSBub3Qgc3VwcG9ydGVkLCBmb3IgZXhhbXBsZSBgZmU4MDo6MSVldGgwYCwgYGZlODA6OjElMWAgb3IgYDo6MSVsb2AuPGJyPjxicj5EZWZhdWx0cyB0byBgWycxMjcuMC4wLjEnLCAnOjoxJ11gIHdoaWNoIG1lYW5zIHRoYXQgb25seSBgbG9jYWxob3N0YCwgdGhlIHNlcnZlciBpbnN0YW5jZSBvbiB3aGljaCBQYXJzZSBTZXJ2ZXIgcnVucywgaXMgYWxsb3dlZCB0byB1c2UgdGhlIG1hc3RlciBrZXkuXCIsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmFycmF5UGFyc2VyLFxuICAgIGRlZmF1bHQ6IFsnMTI3LjAuMC4xJywgJzo6MSddLFxuICB9LFxuICBtYXN0ZXJLZXlUdGw6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfTUFTVEVSX0tFWV9UVEwnLFxuICAgIGhlbHA6XG4gICAgICAnKE9wdGlvbmFsKSBUaGUgZHVyYXRpb24gaW4gc2Vjb25kcyBmb3Igd2hpY2ggdGhlIGN1cnJlbnQgYG1hc3RlcktleWAgaXMgYmVpbmcgdXNlZCBiZWZvcmUgaXQgaXMgcmVxdWVzdGVkIGFnYWluIGlmIGBtYXN0ZXJLZXlgIGlzIHNldCB0byBhIGZ1bmN0aW9uLiBJZiBgbWFzdGVyS2V5YCBpcyBub3Qgc2V0IHRvIGEgZnVuY3Rpb24sIHRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3QuIERlZmF1bHQgaXMgYDBgLCB3aGljaCBtZWFucyB0aGUgbWFzdGVyIGtleSBpcyByZXF1ZXN0ZWQgYnkgaW52b2tpbmcgdGhlICBgbWFzdGVyS2V5YCBmdW5jdGlvbiBldmVyeSB0aW1lIHRoZSBtYXN0ZXIga2V5IGlzIHVzZWQgaW50ZXJuYWxseSBieSBQYXJzZSBTZXJ2ZXIuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMubnVtYmVyUGFyc2VyKCdtYXN0ZXJLZXlUdGwnKSxcbiAgfSxcbiAgbWF4TGltaXQ6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfTUFYX0xJTUlUJyxcbiAgICBoZWxwOiAnTWF4IHZhbHVlIGZvciBsaW1pdCBvcHRpb24gb24gcXVlcmllcywgZGVmYXVsdHMgdG8gdW5saW1pdGVkJyxcbiAgICBhY3Rpb246IHBhcnNlcnMubnVtYmVyUGFyc2VyKCdtYXhMaW1pdCcpLFxuICB9LFxuICBtYXhMb2dGaWxlczoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9NQVhfTE9HX0ZJTEVTJyxcbiAgICBoZWxwOlxuICAgICAgXCJNYXhpbXVtIG51bWJlciBvZiBsb2dzIHRvIGtlZXAuIElmIG5vdCBzZXQsIG5vIGxvZ3Mgd2lsbCBiZSByZW1vdmVkLiBUaGlzIGNhbiBiZSBhIG51bWJlciBvZiBmaWxlcyBvciBudW1iZXIgb2YgZGF5cy4gSWYgdXNpbmcgZGF5cywgYWRkICdkJyBhcyB0aGUgc3VmZml4LiAoZGVmYXVsdDogbnVsbClcIixcbiAgICBhY3Rpb246IHBhcnNlcnMubnVtYmVyT3JTdHJpbmdQYXJzZXIoJ21heExvZ0ZpbGVzJyksXG4gIH0sXG4gIG1heFVwbG9hZFNpemU6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfTUFYX1VQTE9BRF9TSVpFJyxcbiAgICBoZWxwOiAnTWF4IGZpbGUgc2l6ZSBmb3IgdXBsb2FkcywgZGVmYXVsdHMgdG8gMjBtYicsXG4gICAgZGVmYXVsdDogJzIwbWInLFxuICB9LFxuICBtaWRkbGV3YXJlOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX01JRERMRVdBUkUnLFxuICAgIGhlbHA6ICdtaWRkbGV3YXJlIGZvciBleHByZXNzIHNlcnZlciwgY2FuIGJlIHN0cmluZyBvciBmdW5jdGlvbicsXG4gIH0sXG4gIG1vdW50R3JhcGhRTDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9NT1VOVF9HUkFQSFFMJyxcbiAgICBoZWxwOiAnTW91bnRzIHRoZSBHcmFwaFFMIGVuZHBvaW50JyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiBmYWxzZSxcbiAgfSxcbiAgbW91bnRQYXRoOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX01PVU5UX1BBVEgnLFxuICAgIGhlbHA6ICdNb3VudCBwYXRoIGZvciB0aGUgc2VydmVyLCBkZWZhdWx0cyB0byAvcGFyc2UnLFxuICAgIGRlZmF1bHQ6ICcvcGFyc2UnLFxuICB9LFxuICBtb3VudFBsYXlncm91bmQ6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfTU9VTlRfUExBWUdST1VORCcsXG4gICAgaGVscDogJ01vdW50cyB0aGUgR3JhcGhRTCBQbGF5Z3JvdW5kIC0gbmV2ZXIgdXNlIHRoaXMgb3B0aW9uIGluIHByb2R1Y3Rpb24nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5ib29sZWFuUGFyc2VyLFxuICAgIGRlZmF1bHQ6IGZhbHNlLFxuICB9LFxuICBvYmplY3RJZFNpemU6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfT0JKRUNUX0lEX1NJWkUnLFxuICAgIGhlbHA6IFwiU2V0cyB0aGUgbnVtYmVyIG9mIGNoYXJhY3RlcnMgaW4gZ2VuZXJhdGVkIG9iamVjdCBpZCdzLCBkZWZhdWx0IDEwXCIsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm51bWJlclBhcnNlcignb2JqZWN0SWRTaXplJyksXG4gICAgZGVmYXVsdDogMTAsXG4gIH0sXG4gIHBhZ2VzOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1BBR0VTJyxcbiAgICBoZWxwOiAnVGhlIG9wdGlvbnMgZm9yIHBhZ2VzIHN1Y2ggYXMgcGFzc3dvcmQgcmVzZXQgYW5kIGVtYWlsIHZlcmlmaWNhdGlvbi4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5vYmplY3RQYXJzZXIsXG4gICAgdHlwZTogJ1BhZ2VzT3B0aW9ucycsXG4gICAgZGVmYXVsdDoge30sXG4gIH0sXG4gIHBhc3N3b3JkUG9saWN5OiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1BBU1NXT1JEX1BPTElDWScsXG4gICAgaGVscDogJ1RoZSBwYXNzd29yZCBwb2xpY3kgZm9yIGVuZm9yY2luZyBwYXNzd29yZCByZWxhdGVkIHJ1bGVzLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm9iamVjdFBhcnNlcixcbiAgICB0eXBlOiAnUGFzc3dvcmRQb2xpY3lPcHRpb25zJyxcbiAgfSxcbiAgcGxheWdyb3VuZFBhdGg6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUExBWUdST1VORF9QQVRIJyxcbiAgICBoZWxwOiAnTW91bnQgcGF0aCBmb3IgdGhlIEdyYXBoUUwgUGxheWdyb3VuZCwgZGVmYXVsdHMgdG8gL3BsYXlncm91bmQnLFxuICAgIGRlZmF1bHQ6ICcvcGxheWdyb3VuZCcsXG4gIH0sXG4gIHBvcnQ6IHtcbiAgICBlbnY6ICdQT1JUJyxcbiAgICBoZWxwOiAnVGhlIHBvcnQgdG8gcnVuIHRoZSBQYXJzZVNlcnZlciwgZGVmYXVsdHMgdG8gMTMzNy4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5udW1iZXJQYXJzZXIoJ3BvcnQnKSxcbiAgICBkZWZhdWx0OiAxMzM3LFxuICB9LFxuICBwcmVzZXJ2ZUZpbGVOYW1lOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1BSRVNFUlZFX0ZJTEVfTkFNRScsXG4gICAgaGVscDogJ0VuYWJsZSAob3IgZGlzYWJsZSkgdGhlIGFkZGl0aW9uIG9mIGEgdW5pcXVlIGhhc2ggdG8gdGhlIGZpbGUgbmFtZXMnLFxuICAgIGFjdGlvbjogcGFyc2Vycy5ib29sZWFuUGFyc2VyLFxuICAgIGRlZmF1bHQ6IGZhbHNlLFxuICB9LFxuICBwcmV2ZW50TG9naW5XaXRoVW52ZXJpZmllZEVtYWlsOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1BSRVZFTlRfTE9HSU5fV0lUSF9VTlZFUklGSUVEX0VNQUlMJyxcbiAgICBoZWxwOlxuICAgICAgJ1NldCB0byBgdHJ1ZWAgdG8gcHJldmVudCBhIHVzZXIgZnJvbSBsb2dnaW5nIGluIGlmIHRoZSBlbWFpbCBoYXMgbm90IHlldCBiZWVuIHZlcmlmaWVkIGFuZCBlbWFpbCB2ZXJpZmljYXRpb24gaXMgcmVxdWlyZWQuPGJyPjxicj5EZWZhdWx0IGlzIGBmYWxzZWAuPGJyPlJlcXVpcmVzIG9wdGlvbiBgdmVyaWZ5VXNlckVtYWlsczogdHJ1ZWAuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiBmYWxzZSxcbiAgfSxcbiAgcHJldmVudFNpZ251cFdpdGhVbnZlcmlmaWVkRW1haWw6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUFJFVkVOVF9TSUdOVVBfV0lUSF9VTlZFUklGSUVEX0VNQUlMJyxcbiAgICBoZWxwOlxuICAgICAgXCJJZiBzZXQgdG8gYHRydWVgIGl0IHByZXZlbnRzIGEgdXNlciBmcm9tIHNpZ25pbmcgdXAgaWYgdGhlIGVtYWlsIGhhcyBub3QgeWV0IGJlZW4gdmVyaWZpZWQgYW5kIGVtYWlsIHZlcmlmaWNhdGlvbiBpcyByZXF1aXJlZC4gSW4gdGhhdCBjYXNlIHRoZSBzZXJ2ZXIgcmVzcG9uZHMgdG8gdGhlIHNpZ24tdXAgd2l0aCBIVFRQIHN0YXR1cyA0MDAgYW5kIGEgUGFyc2UgRXJyb3IgMjA1IGBFTUFJTF9OT1RfRk9VTkRgLiBJZiBzZXQgdG8gYGZhbHNlYCB0aGUgc2VydmVyIHJlc3BvbmRzIHdpdGggSFRUUCBzdGF0dXMgMjAwLCBhbmQgY2xpZW50IFNES3MgcmV0dXJuIGFuIHVuYXV0aGVudGljYXRlZCBQYXJzZSBVc2VyIHdpdGhvdXQgc2Vzc2lvbiB0b2tlbi4gSW4gdGhhdCBjYXNlIHN1YnNlcXVlbnQgcmVxdWVzdHMgZmFpbCB1bnRpbCB0aGUgdXNlcidzIGVtYWlsIGFkZHJlc3MgaXMgdmVyaWZpZWQuPGJyPjxicj5EZWZhdWx0IGlzIGBmYWxzZWAuPGJyPlJlcXVpcmVzIG9wdGlvbiBgdmVyaWZ5VXNlckVtYWlsczogdHJ1ZWAuXCIsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogZmFsc2UsXG4gIH0sXG4gIHByb3RlY3RlZEZpZWxkczoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9QUk9URUNURURfRklFTERTJyxcbiAgICBoZWxwOiAnUHJvdGVjdGVkIGZpZWxkcyB0aGF0IHNob3VsZCBiZSB0cmVhdGVkIHdpdGggZXh0cmEgc2VjdXJpdHkgd2hlbiBmZXRjaGluZyBkZXRhaWxzLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm9iamVjdFBhcnNlcixcbiAgICBkZWZhdWx0OiB7XG4gICAgICBfVXNlcjoge1xuICAgICAgICAnKic6IFsnZW1haWwnXSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSxcbiAgcHVibGljU2VydmVyVVJMOiB7XG4gICAgZW52OiAnUEFSU0VfUFVCTElDX1NFUlZFUl9VUkwnLFxuICAgIGhlbHA6XG4gICAgICAnT3B0aW9uYWwuIFRoZSBwdWJsaWMgVVJMIHRvIFBhcnNlIFNlcnZlci4gVGhpcyBVUkwgd2lsbCBiZSB1c2VkIHRvIHJlYWNoIFBhcnNlIFNlcnZlciBwdWJsaWNseSBmb3IgZmVhdHVyZXMgbGlrZSBwYXNzd29yZCByZXNldCBhbmQgZW1haWwgdmVyaWZpY2F0aW9uIGxpbmtzLiBUaGUgb3B0aW9uIGNhbiBiZSBzZXQgdG8gYSBzdHJpbmcgb3IgYSBmdW5jdGlvbiB0aGF0IGNhbiBiZSBhc3luY2hyb25vdXNseSByZXNvbHZlZC4gVGhlIHJldHVybmVkIFVSTCBzdHJpbmcgbXVzdCBzdGFydCB3aXRoIGBodHRwOi8vYCBvciBgaHR0cHM6Ly9gLicsXG4gIH0sXG4gIHB1c2g6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUFVTSCcsXG4gICAgaGVscDpcbiAgICAgICdDb25maWd1cmF0aW9uIGZvciBwdXNoLCBhcyBzdHJpbmdpZmllZCBKU09OLiBTZWUgaHR0cDovL2RvY3MucGFyc2VwbGF0Zm9ybS5vcmcvcGFyc2Utc2VydmVyL2d1aWRlLyNwdXNoLW5vdGlmaWNhdGlvbnMnLFxuICAgIGFjdGlvbjogcGFyc2Vycy5vYmplY3RQYXJzZXIsXG4gIH0sXG4gIHJhdGVMaW1pdDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9SQVRFX0xJTUlUJyxcbiAgICBoZWxwOlxuICAgICAgXCJPcHRpb25zIHRvIGxpbWl0IHJlcGVhdGVkIHJlcXVlc3RzIHRvIFBhcnNlIFNlcnZlciBBUElzLiBUaGlzIGNhbiBiZSB1c2VkIHRvIHByb3RlY3Qgc2Vuc2l0aXZlIGVuZHBvaW50cyBzdWNoIGFzIGAvcmVxdWVzdFBhc3N3b3JkUmVzZXRgIGZyb20gYnJ1dGUtZm9yY2UgYXR0YWNrcyBvciBQYXJzZSBTZXJ2ZXIgYXMgYSB3aG9sZSBmcm9tIGRlbmlhbC1vZi1zZXJ2aWNlIChEb1MpIGF0dGFja3MuPGJyPjxicj5cXHUyMTM5XFx1RkUwRiBNaW5kIHRoZSBmb2xsb3dpbmcgbGltaXRhdGlvbnM6PGJyPi0gcmF0ZSBsaW1pdHMgYXBwbGllZCBwZXIgSVAgYWRkcmVzczsgdGhpcyBsaW1pdHMgcHJvdGVjdGlvbiBhZ2FpbnN0IGRpc3RyaWJ1dGVkIGRlbmlhbC1vZi1zZXJ2aWNlIChERG9TKSBhdHRhY2tzIHdoZXJlIG1hbnkgcmVxdWVzdHMgYXJlIGNvbWluZyBmcm9tIHZhcmlvdXMgSVAgYWRkcmVzc2VzPGJyPi0gaWYgbXVsdGlwbGUgUGFyc2UgU2VydmVyIGluc3RhbmNlcyBhcmUgYmVoaW5kIGEgbG9hZCBiYWxhbmNlciBvciByYW4gaW4gYSBjbHVzdGVyLCBlYWNoIGluc3RhbmNlIHdpbGwgY2FsY3VsYXRlIGl0J3Mgb3duIHJlcXVlc3QgcmF0ZXMsIGluZGVwZW5kZW50IGZyb20gb3RoZXIgaW5zdGFuY2VzOyB0aGlzIGxpbWl0cyB0aGUgYXBwbGljYWJpbGl0eSBvZiB0aGlzIGZlYXR1cmUgd2hlbiB1c2luZyBhIGxvYWQgYmFsYW5jZXIgYW5kIGFub3RoZXIgcmF0ZSBsaW1pdGluZyBzb2x1dGlvbiB0aGF0IHRha2VzIHJlcXVlc3RzIGFjcm9zcyBhbGwgaW5zdGFuY2VzIGludG8gYWNjb3VudCBtYXkgYmUgbW9yZSBzdWl0YWJsZTxicj4tIHRoaXMgZmVhdHVyZSBwcm92aWRlcyBiYXNpYyBwcm90ZWN0aW9uIGFnYWluc3QgZGVuaWFsLW9mLXNlcnZpY2UgYXR0YWNrcywgYnV0IGEgbW9yZSBzb3BoaXN0aWNhdGVkIHNvbHV0aW9uIHdvcmtzIGVhcmxpZXIgaW4gdGhlIHJlcXVlc3QgZmxvdyBhbmQgcHJldmVudHMgYSBtYWxpY2lvdXMgcmVxdWVzdHMgdG8gZXZlbiByZWFjaCBhIHNlcnZlciBpbnN0YW5jZTsgaXQncyB0aGVyZWZvcmUgcmVjb21tZW5kZWQgdG8gaW1wbGVtZW50IGEgc29sdXRpb24gYWNjb3JkaW5nIHRvIGFyY2hpdGVjdHVyZSBhbmQgdXNlciBjYXNlLlwiLFxuICAgIGFjdGlvbjogcGFyc2Vycy5hcnJheVBhcnNlcixcbiAgICB0eXBlOiAnUmF0ZUxpbWl0T3B0aW9uc1tdJyxcbiAgICBkZWZhdWx0OiBbXSxcbiAgfSxcbiAgcmVhZE9ubHlNYXN0ZXJLZXk6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUkVBRF9PTkxZX01BU1RFUl9LRVknLFxuICAgIGhlbHA6ICdSZWFkLW9ubHkga2V5LCB3aGljaCBoYXMgdGhlIHNhbWUgY2FwYWJpbGl0aWVzIGFzIE1hc3RlcktleSB3aXRob3V0IHdyaXRlcycsXG4gIH0sXG4gIHJlcXVlc3RDb250ZXh0TWlkZGxld2FyZToge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9SRVFVRVNUX0NPTlRFWFRfTUlERExFV0FSRScsXG4gICAgaGVscDpcbiAgICAgICdPcHRpb25zIHRvIGN1c3RvbWl6ZSB0aGUgcmVxdWVzdCBjb250ZXh0IHVzaW5nIGludmVyc2lvbiBvZiBjb250cm9sL2RlcGVuZGVuY3kgaW5qZWN0aW9uLicsXG4gIH0sXG4gIHJlcXVlc3RLZXl3b3JkRGVueWxpc3Q6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUkVRVUVTVF9LRVlXT1JEX0RFTllMSVNUJyxcbiAgICBoZWxwOlxuICAgICAgJ0FuIGFycmF5IG9mIGtleXMgYW5kIHZhbHVlcyB0aGF0IGFyZSBwcm9oaWJpdGVkIGluIGRhdGFiYXNlIHJlYWQgYW5kIHdyaXRlIHJlcXVlc3RzIHRvIHByZXZlbnQgcG90ZW50aWFsIHNlY3VyaXR5IHZ1bG5lcmFiaWxpdGllcy4gSXQgaXMgcG9zc2libGUgdG8gc3BlY2lmeSBvbmx5IGEga2V5IChge1wia2V5XCI6XCIuLi5cIn1gKSwgb25seSBhIHZhbHVlIChge1widmFsdWVcIjpcIi4uLlwifWApIG9yIGEga2V5LXZhbHVlIHBhaXIgKGB7XCJrZXlcIjpcIi4uLlwiLFwidmFsdWVcIjpcIi4uLlwifWApLiBUaGUgc3BlY2lmaWNhdGlvbiBjYW4gdXNlIHRoZSBmb2xsb3dpbmcgdHlwZXM6IGBib29sZWFuYCwgYG51bWVyaWNgIG9yIGBzdHJpbmdgLCB3aGVyZSBgc3RyaW5nYCB3aWxsIGJlIGludGVycHJldGVkIGFzIGEgcmVnZXggbm90YXRpb24uIFJlcXVlc3QgZGF0YSBpcyBkZWVwLXNjYW5uZWQgZm9yIG1hdGNoaW5nIGRlZmluaXRpb25zIHRvIGRldGVjdCBhbHNvIGFueSBuZXN0ZWQgb2NjdXJyZW5jZXMuIERlZmF1bHRzIGFyZSBwYXR0ZXJucyB0aGF0IGFyZSBsaWtlbHkgdG8gYmUgdXNlZCBpbiBtYWxpY2lvdXMgcmVxdWVzdHMuIFNldHRpbmcgdGhpcyBvcHRpb24gd2lsbCBvdmVycmlkZSB0aGUgZGVmYXVsdCBwYXR0ZXJucy4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5hcnJheVBhcnNlcixcbiAgICBkZWZhdWx0OiBbXG4gICAgICB7XG4gICAgICAgIGtleTogJ19ic29udHlwZScsXG4gICAgICAgIHZhbHVlOiAnQ29kZScsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBrZXk6ICdjb25zdHJ1Y3RvcicsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBrZXk6ICdfX3Byb3RvX18nLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICByZXN0QVBJS2V5OiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1JFU1RfQVBJX0tFWScsXG4gICAgaGVscDogJ0tleSBmb3IgUkVTVCBjYWxscycsXG4gIH0sXG4gIHJldm9rZVNlc3Npb25PblBhc3N3b3JkUmVzZXQ6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUkVWT0tFX1NFU1NJT05fT05fUEFTU1dPUkRfUkVTRVQnLFxuICAgIGhlbHA6XG4gICAgICBcIldoZW4gYSB1c2VyIGNoYW5nZXMgdGhlaXIgcGFzc3dvcmQsIGVpdGhlciB0aHJvdWdoIHRoZSByZXNldCBwYXNzd29yZCBlbWFpbCBvciB3aGlsZSBsb2dnZWQgaW4sIGFsbCBzZXNzaW9ucyBhcmUgcmV2b2tlZCBpZiB0aGlzIGlzIHRydWUuIFNldCB0byBmYWxzZSBpZiB5b3UgZG9uJ3Qgd2FudCB0byByZXZva2Ugc2Vzc2lvbnMuXCIsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogdHJ1ZSxcbiAgfSxcbiAgc2NoZWR1bGVkUHVzaDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9TQ0hFRFVMRURfUFVTSCcsXG4gICAgaGVscDogJ0NvbmZpZ3VyYXRpb24gZm9yIHB1c2ggc2NoZWR1bGluZywgZGVmYXVsdHMgdG8gZmFsc2UuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiBmYWxzZSxcbiAgfSxcbiAgc2NoZW1hOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1NDSEVNQScsXG4gICAgaGVscDogJ0RlZmluZWQgc2NoZW1hJyxcbiAgICBhY3Rpb246IHBhcnNlcnMub2JqZWN0UGFyc2VyLFxuICAgIHR5cGU6ICdTY2hlbWFPcHRpb25zJyxcbiAgfSxcbiAgc2VjdXJpdHk6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfU0VDVVJJVFknLFxuICAgIGhlbHA6ICdUaGUgc2VjdXJpdHkgb3B0aW9ucyB0byBpZGVudGlmeSBhbmQgcmVwb3J0IHdlYWsgc2VjdXJpdHkgc2V0dGluZ3MuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMub2JqZWN0UGFyc2VyLFxuICAgIHR5cGU6ICdTZWN1cml0eU9wdGlvbnMnLFxuICAgIGRlZmF1bHQ6IHt9LFxuICB9LFxuICBzZW5kVXNlckVtYWlsVmVyaWZpY2F0aW9uOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1NFTkRfVVNFUl9FTUFJTF9WRVJJRklDQVRJT04nLFxuICAgIGhlbHA6XG4gICAgICAnU2V0IHRvIGBmYWxzZWAgdG8gcHJldmVudCBzZW5kaW5nIG9mIHZlcmlmaWNhdGlvbiBlbWFpbC4gU3VwcG9ydHMgYSBmdW5jdGlvbiB3aXRoIGEgcmV0dXJuIHZhbHVlIG9mIGB0cnVlYCBvciBgZmFsc2VgIGZvciBjb25kaXRpb25hbCBlbWFpbCBzZW5kaW5nLjxicj48YnI+RGVmYXVsdCBpcyBgdHJ1ZWAuPGJyPicsXG4gICAgZGVmYXVsdDogdHJ1ZSxcbiAgfSxcbiAgc2VydmVyQ2xvc2VDb21wbGV0ZToge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9TRVJWRVJfQ0xPU0VfQ09NUExFVEUnLFxuICAgIGhlbHA6ICdDYWxsYmFjayB3aGVuIHNlcnZlciBoYXMgY2xvc2VkJyxcbiAgfSxcbiAgc2VydmVyVVJMOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1VSTCcsXG4gICAgaGVscDpcbiAgICAgICdUaGUgVVJMIHRvIFBhcnNlIFNlcnZlci48YnI+PGJyPlxcdTI2QTBcXHVGRTBGIENlcnRhaW4gc2VydmVyIGZlYXR1cmVzIG9yIGFkYXB0ZXJzIG1heSByZXF1aXJlIFBhcnNlIFNlcnZlciB0byBiZSBhYmxlIHRvIGNhbGwgaXRzZWxmIGJ5IG1ha2luZyByZXF1ZXN0cyB0byB0aGUgVVJMIHNldCBpbiBgc2VydmVyVVJMYC4gSWYgYSBmZWF0dXJlIHJlcXVpcmVzIHRoaXMsIGl0IGlzIG1lbnRpb25lZCBpbiB0aGUgZG9jdW1lbnRhdGlvbi4gSW4gdGhhdCBjYXNlIGVuc3VyZSB0aGF0IHRoZSBVUkwgaXMgYWNjZXNzaWJsZSBmcm9tIHRoZSBzZXJ2ZXIgaXRzZWxmLicsXG4gICAgcmVxdWlyZWQ6IHRydWUsXG4gIH0sXG4gIHNlc3Npb25MZW5ndGg6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfU0VTU0lPTl9MRU5HVEgnLFxuICAgIGhlbHA6ICdTZXNzaW9uIGR1cmF0aW9uLCBpbiBzZWNvbmRzLCBkZWZhdWx0cyB0byAxIHllYXInLFxuICAgIGFjdGlvbjogcGFyc2Vycy5udW1iZXJQYXJzZXIoJ3Nlc3Npb25MZW5ndGgnKSxcbiAgICBkZWZhdWx0OiAzMTUzNjAwMCxcbiAgfSxcbiAgc2lsZW50OiB7XG4gICAgZW52OiAnU0lMRU5UJyxcbiAgICBoZWxwOiAnRGlzYWJsZXMgY29uc29sZSBvdXRwdXQnLFxuICAgIGFjdGlvbjogcGFyc2Vycy5ib29sZWFuUGFyc2VyLFxuICB9LFxuICBzdGFydExpdmVRdWVyeVNlcnZlcjoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9TVEFSVF9MSVZFX1FVRVJZX1NFUlZFUicsXG4gICAgaGVscDogJ1N0YXJ0cyB0aGUgbGl2ZVF1ZXJ5IHNlcnZlcicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gIH0sXG4gIHRydXN0UHJveHk6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfVFJVU1RfUFJPWFknLFxuICAgIGhlbHA6XG4gICAgICAnVGhlIHRydXN0IHByb3h5IHNldHRpbmdzLiBJdCBpcyBpbXBvcnRhbnQgdG8gdW5kZXJzdGFuZCB0aGUgZXhhY3Qgc2V0dXAgb2YgdGhlIHJldmVyc2UgcHJveHksIHNpbmNlIHRoaXMgc2V0dGluZyB3aWxsIHRydXN0IHZhbHVlcyBwcm92aWRlZCBpbiB0aGUgUGFyc2UgU2VydmVyIEFQSSByZXF1ZXN0LiBTZWUgdGhlIDxhIGhyZWY9XCJodHRwczovL2V4cHJlc3Nqcy5jb20vZW4vZ3VpZGUvYmVoaW5kLXByb3hpZXMuaHRtbFwiPmV4cHJlc3MgdHJ1c3QgcHJveHkgc2V0dGluZ3M8L2E+IGRvY3VtZW50YXRpb24uIERlZmF1bHRzIHRvIGBmYWxzZWAuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMub2JqZWN0UGFyc2VyLFxuICAgIGRlZmF1bHQ6IFtdLFxuICB9LFxuICB1c2VyU2Vuc2l0aXZlRmllbGRzOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1VTRVJfU0VOU0lUSVZFX0ZJRUxEUycsXG4gICAgaGVscDpcbiAgICAgICdQZXJzb25hbGx5IGlkZW50aWZpYWJsZSBpbmZvcm1hdGlvbiBmaWVsZHMgaW4gdGhlIHVzZXIgdGFibGUgdGhlIHNob3VsZCBiZSByZW1vdmVkIGZvciBub24tYXV0aG9yaXplZCB1c2Vycy4gRGVwcmVjYXRlZCBAc2VlIHByb3RlY3RlZEZpZWxkcycsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmFycmF5UGFyc2VyLFxuICB9LFxuICB2ZXJib3NlOiB7XG4gICAgZW52OiAnVkVSQk9TRScsXG4gICAgaGVscDogJ1NldCB0aGUgbG9nZ2luZyB0byB2ZXJib3NlJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgfSxcbiAgdmVyaWZ5U2VydmVyVXJsOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1ZFUklGWV9TRVJWRVJfVVJMJyxcbiAgICBoZWxwOlxuICAgICAgJ1BhcnNlIFNlcnZlciBtYWtlcyBhIEhUVFAgcmVxdWVzdCB0byB0aGUgVVJMIHNldCBpbiBgc2VydmVyVVJMYCBhdCB0aGUgZW5kIG9mIGl0cyBsYXVuY2ggcm91dGluZSB0byB2ZXJpZnkgdGhhdCB0aGUgbGF1bmNoIHN1Y2NlZWRlZC4gSWYgdGhpcyBvcHRpb24gaXMgc2V0IHRvIGBmYWxzZWAsIHRoZSB2ZXJpZmljYXRpb24gd2lsbCBiZSBza2lwcGVkLiBUaGlzIGNhbiBiZSB1c2VmdWwgaW4gZW52aXJvbm1lbnRzIHdoZXJlIHRoZSBzZXJ2ZXIgVVJMIGlzIG5vdCBhY2Nlc3NpYmxlIGZyb20gdGhlIHNlcnZlciBpdHNlbGYsIHN1Y2ggYXMgd2hlbiBydW5uaW5nIGJlaGluZCBhIGZpcmV3YWxsIG9yIGluIGNlcnRhaW4gY29udGFpbmVyaXplZCBlbnZpcm9ubWVudHMuPGJyPjxicj5cXHUyNkEwXFx1RkUwRiBTZXJ2ZXIgVVJMIHZlcmlmaWNhdGlvbiByZXF1aXJlcyBQYXJzZSBTZXJ2ZXIgdG8gYmUgYWJsZSB0byBjYWxsIGl0c2VsZiBieSBtYWtpbmcgcmVxdWVzdHMgdG8gdGhlIFVSTCBzZXQgaW4gYHNlcnZlclVSTGAuPGJyPjxicj5EZWZhdWx0IGlzIGB0cnVlYC4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5ib29sZWFuUGFyc2VyLFxuICAgIGRlZmF1bHQ6IHRydWUsXG4gIH0sXG4gIHZlcmlmeVVzZXJFbWFpbHM6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfVkVSSUZZX1VTRVJfRU1BSUxTJyxcbiAgICBoZWxwOlxuICAgICAgJ1NldCB0byBgdHJ1ZWAgdG8gcmVxdWlyZSB1c2VycyB0byB2ZXJpZnkgdGhlaXIgZW1haWwgYWRkcmVzcyB0byBjb21wbGV0ZSB0aGUgc2lnbi11cCBwcm9jZXNzLiBTdXBwb3J0cyBhIGZ1bmN0aW9uIHdpdGggYSByZXR1cm4gdmFsdWUgb2YgYHRydWVgIG9yIGBmYWxzZWAgZm9yIGNvbmRpdGlvbmFsIHZlcmlmaWNhdGlvbi48YnI+PGJyPkRlZmF1bHQgaXMgYGZhbHNlYC4nLFxuICAgIGRlZmF1bHQ6IGZhbHNlLFxuICB9LFxuICB3ZWJob29rS2V5OiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1dFQkhPT0tfS0VZJyxcbiAgICBoZWxwOiAnS2V5IHNlbnQgd2l0aCBvdXRnb2luZyB3ZWJob29rIGNhbGxzJyxcbiAgfSxcbn07XG5tb2R1bGUuZXhwb3J0cy5SYXRlTGltaXRPcHRpb25zID0ge1xuICBlcnJvclJlc3BvbnNlTWVzc2FnZToge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9SQVRFX0xJTUlUX0VSUk9SX1JFU1BPTlNFX01FU1NBR0UnLFxuICAgIGhlbHA6XG4gICAgICAnVGhlIGVycm9yIG1lc3NhZ2UgdGhhdCBzaG91bGQgYmUgcmV0dXJuZWQgaW4gdGhlIGJvZHkgb2YgdGhlIEhUVFAgNDI5IHJlc3BvbnNlIHdoZW4gdGhlIHJhdGUgbGltaXQgaXMgaGl0LiBEZWZhdWx0IGlzIGBUb28gbWFueSByZXF1ZXN0cy5gLicsXG4gICAgZGVmYXVsdDogJ1RvbyBtYW55IHJlcXVlc3RzLicsXG4gIH0sXG4gIGluY2x1ZGVJbnRlcm5hbFJlcXVlc3RzOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1JBVEVfTElNSVRfSU5DTFVERV9JTlRFUk5BTF9SRVFVRVNUUycsXG4gICAgaGVscDpcbiAgICAgICdPcHRpb25hbCwgaWYgYHRydWVgIHRoZSByYXRlIGxpbWl0IHdpbGwgYWxzbyBhcHBseSB0byByZXF1ZXN0cyB0aGF0IGFyZSBtYWRlIGluIGJ5IENsb3VkIENvZGUsIGRlZmF1bHQgaXMgYGZhbHNlYC4gTm90ZSB0aGF0IGEgcHVibGljIENsb3VkIENvZGUgZnVuY3Rpb24gdGhhdCB0cmlnZ2VycyBpbnRlcm5hbCByZXF1ZXN0cyBtYXkgY2lyY3VtdmVudCByYXRlIGxpbWl0aW5nIGFuZCBiZSB2dWxuZXJhYmxlIHRvIGF0dGFja3MuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiBmYWxzZSxcbiAgfSxcbiAgaW5jbHVkZU1hc3RlcktleToge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9SQVRFX0xJTUlUX0lOQ0xVREVfTUFTVEVSX0tFWScsXG4gICAgaGVscDpcbiAgICAgICdPcHRpb25hbCwgaWYgYHRydWVgIHRoZSByYXRlIGxpbWl0IHdpbGwgYWxzbyBhcHBseSB0byByZXF1ZXN0cyB1c2luZyB0aGUgYG1hc3RlcktleWAsIGRlZmF1bHQgaXMgYGZhbHNlYC4gTm90ZSB0aGF0IGEgcHVibGljIENsb3VkIENvZGUgZnVuY3Rpb24gdGhhdCB0cmlnZ2VycyBpbnRlcm5hbCByZXF1ZXN0cyB1c2luZyB0aGUgYG1hc3RlcktleWAgbWF5IGNpcmN1bXZlbnQgcmF0ZSBsaW1pdGluZyBhbmQgYmUgdnVsbmVyYWJsZSB0byBhdHRhY2tzLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogZmFsc2UsXG4gIH0sXG4gIHJlZGlzVXJsOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1JBVEVfTElNSVRfUkVESVNfVVJMJyxcbiAgICBoZWxwOlxuICAgICAgJ09wdGlvbmFsLCB0aGUgVVJMIG9mIHRoZSBSZWRpcyBzZXJ2ZXIgdG8gc3RvcmUgcmF0ZSBsaW1pdCBkYXRhLiBUaGlzIGFsbG93cyB0byByYXRlIGxpbWl0IHJlcXVlc3RzIGZvciBtdWx0aXBsZSBzZXJ2ZXJzIGJ5IGNhbGN1bGF0aW5nIHRoZSBzdW0gb2YgYWxsIHJlcXVlc3RzIGFjcm9zcyBhbGwgc2VydmVycy4gVGhpcyBpcyB1c2VmdWwgaWYgbXVsdGlwbGUgc2VydmVycyBhcmUgcHJvY2Vzc2luZyByZXF1ZXN0cyBiZWhpbmQgYSBsb2FkIGJhbGFuY2VyLiBGb3IgZXhhbXBsZSwgdGhlIGxpbWl0IG9mIDEwIHJlcXVlc3RzIGlzIHJlYWNoZWQgaWYgZWFjaCBvZiAyIHNlcnZlcnMgcHJvY2Vzc2VkIDUgcmVxdWVzdHMuJyxcbiAgfSxcbiAgcmVxdWVzdENvdW50OiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1JBVEVfTElNSVRfUkVRVUVTVF9DT1VOVCcsXG4gICAgaGVscDpcbiAgICAgICdUaGUgbnVtYmVyIG9mIHJlcXVlc3RzIHRoYXQgY2FuIGJlIG1hZGUgcGVyIElQIGFkZHJlc3Mgd2l0aGluIHRoZSB0aW1lIHdpbmRvdyBzZXQgaW4gYHJlcXVlc3RUaW1lV2luZG93YCBiZWZvcmUgdGhlIHJhdGUgbGltaXQgaXMgYXBwbGllZC4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5udW1iZXJQYXJzZXIoJ3JlcXVlc3RDb3VudCcpLFxuICB9LFxuICByZXF1ZXN0TWV0aG9kczoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9SQVRFX0xJTUlUX1JFUVVFU1RfTUVUSE9EUycsXG4gICAgaGVscDpcbiAgICAgICdPcHRpb25hbCwgdGhlIEhUVFAgcmVxdWVzdCBtZXRob2RzIHRvIHdoaWNoIHRoZSByYXRlIGxpbWl0IHNob3VsZCBiZSBhcHBsaWVkLCBkZWZhdWx0IGlzIGFsbCBtZXRob2RzLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmFycmF5UGFyc2VyLFxuICB9LFxuICByZXF1ZXN0UGF0aDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9SQVRFX0xJTUlUX1JFUVVFU1RfUEFUSCcsXG4gICAgaGVscDpcbiAgICAgICdUaGUgcGF0aCBvZiB0aGUgQVBJIHJvdXRlIHRvIGJlIHJhdGUgbGltaXRlZC4gUm91dGUgcGF0aHMsIGluIGNvbWJpbmF0aW9uIHdpdGggYSByZXF1ZXN0IG1ldGhvZCwgZGVmaW5lIHRoZSBlbmRwb2ludHMgYXQgd2hpY2ggcmVxdWVzdHMgY2FuIGJlIG1hZGUuIFJvdXRlIHBhdGhzIGNhbiBiZSBzdHJpbmdzLCBzdHJpbmcgcGF0dGVybnMsIG9yIHJlZ3VsYXIgZXhwcmVzc2lvbi4gU2VlOiBodHRwczovL2V4cHJlc3Nqcy5jb20vZW4vZ3VpZGUvcm91dGluZy5odG1sJyxcbiAgICByZXF1aXJlZDogdHJ1ZSxcbiAgfSxcbiAgcmVxdWVzdFRpbWVXaW5kb3c6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUkFURV9MSU1JVF9SRVFVRVNUX1RJTUVfV0lORE9XJyxcbiAgICBoZWxwOlxuICAgICAgJ1RoZSB3aW5kb3cgb2YgdGltZSBpbiBtaWxsaXNlY29uZHMgd2l0aGluIHdoaWNoIHRoZSBudW1iZXIgb2YgcmVxdWVzdHMgc2V0IGluIGByZXF1ZXN0Q291bnRgIGNhbiBiZSBtYWRlIGJlZm9yZSB0aGUgcmF0ZSBsaW1pdCBpcyBhcHBsaWVkLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm51bWJlclBhcnNlcigncmVxdWVzdFRpbWVXaW5kb3cnKSxcbiAgfSxcbiAgem9uZToge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9SQVRFX0xJTUlUX1pPTkUnLFxuICAgIGhlbHA6XG4gICAgICBcIlRoZSB0eXBlIG9mIHJhdGUgbGltaXQgdG8gYXBwbHkuIFRoZSBmb2xsb3dpbmcgdHlwZXMgYXJlIHN1cHBvcnRlZDo8YnI+PGJyPi0gYGdsb2JhbGA6IHJhdGUgbGltaXQgYmFzZWQgb24gdGhlIG51bWJlciBvZiByZXF1ZXN0cyBtYWRlIGJ5IGFsbCB1c2VycyA8YnI+LSBgaXBgOiByYXRlIGxpbWl0IGJhc2VkIG9uIHRoZSBJUCBhZGRyZXNzIG9mIHRoZSByZXF1ZXN0IDxicj4tIGB1c2VyYDogcmF0ZSBsaW1pdCBiYXNlZCBvbiB0aGUgdXNlciBJRCBvZiB0aGUgcmVxdWVzdCA8YnI+LSBgc2Vzc2lvbmA6IHJhdGUgbGltaXQgYmFzZWQgb24gdGhlIHNlc3Npb24gdG9rZW4gb2YgdGhlIHJlcXVlc3QgPGJyPjxicj48YnI+OmRlZmF1bHQ6ICdpcCdcIixcbiAgfSxcbn07XG5tb2R1bGUuZXhwb3J0cy5TZWN1cml0eU9wdGlvbnMgPSB7XG4gIGNoZWNrR3JvdXBzOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1NFQ1VSSVRZX0NIRUNLX0dST1VQUycsXG4gICAgaGVscDpcbiAgICAgICdUaGUgc2VjdXJpdHkgY2hlY2sgZ3JvdXBzIHRvIHJ1bi4gVGhpcyBhbGxvd3MgdG8gYWRkIGN1c3RvbSBzZWN1cml0eSBjaGVja3Mgb3Igb3ZlcnJpZGUgZXhpc3Rpbmcgb25lcy4gRGVmYXVsdCBhcmUgdGhlIGdyb3VwcyBkZWZpbmVkIGluIGBDaGVja0dyb3Vwcy5qc2AuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYXJyYXlQYXJzZXIsXG4gIH0sXG4gIGVuYWJsZUNoZWNrOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1NFQ1VSSVRZX0VOQUJMRV9DSEVDSycsXG4gICAgaGVscDogJ0lzIHRydWUgaWYgUGFyc2UgU2VydmVyIHNob3VsZCBjaGVjayBmb3Igd2VhayBzZWN1cml0eSBzZXR0aW5ncy4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5ib29sZWFuUGFyc2VyLFxuICAgIGRlZmF1bHQ6IGZhbHNlLFxuICB9LFxuICBlbmFibGVDaGVja0xvZzoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9TRUNVUklUWV9FTkFCTEVfQ0hFQ0tfTE9HJyxcbiAgICBoZWxwOlxuICAgICAgJ0lzIHRydWUgaWYgdGhlIHNlY3VyaXR5IGNoZWNrIHJlcG9ydCBzaG91bGQgYmUgd3JpdHRlbiB0byBsb2dzLiBUaGlzIHNob3VsZCBvbmx5IGJlIGVuYWJsZWQgdGVtcG9yYXJpbHkgdG8gbm90IGV4cG9zZSB3ZWFrIHNlY3VyaXR5IHNldHRpbmdzIGluIGxvZ3MuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiBmYWxzZSxcbiAgfSxcbn07XG5tb2R1bGUuZXhwb3J0cy5QYWdlc09wdGlvbnMgPSB7XG4gIGN1c3RvbVJvdXRlczoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9QQUdFU19DVVNUT01fUk9VVEVTJyxcbiAgICBoZWxwOiAnVGhlIGN1c3RvbSByb3V0ZXMuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYXJyYXlQYXJzZXIsXG4gICAgdHlwZTogJ1BhZ2VzUm91dGVbXScsXG4gICAgZGVmYXVsdDogW10sXG4gIH0sXG4gIGN1c3RvbVVybHM6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUEFHRVNfQ1VTVE9NX1VSTFMnLFxuICAgIGhlbHA6ICdUaGUgVVJMcyB0byB0aGUgY3VzdG9tIHBhZ2VzLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm9iamVjdFBhcnNlcixcbiAgICB0eXBlOiAnUGFnZXNDdXN0b21VcmxzT3B0aW9ucycsXG4gICAgZGVmYXVsdDoge30sXG4gIH0sXG4gIGVuYWJsZUxvY2FsaXphdGlvbjoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9QQUdFU19FTkFCTEVfTE9DQUxJWkFUSU9OJyxcbiAgICBoZWxwOiAnSXMgdHJ1ZSBpZiBwYWdlcyBzaG91bGQgYmUgbG9jYWxpemVkOyB0aGlzIGhhcyBubyBlZmZlY3Qgb24gY3VzdG9tIHBhZ2UgcmVkaXJlY3RzLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogZmFsc2UsXG4gIH0sXG4gIGVuYWJsZVJvdXRlcjoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9QQUdFU19FTkFCTEVfUk9VVEVSJyxcbiAgICBoZWxwOlxuICAgICAgJ0lzIHRydWUgaWYgdGhlIHBhZ2VzIHJvdXRlciBzaG91bGQgYmUgZW5hYmxlZDsgdGhpcyBpcyByZXF1aXJlZCBmb3IgYW55IG9mIHRoZSBwYWdlcyBvcHRpb25zIHRvIHRha2UgZWZmZWN0LicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogZmFsc2UsXG4gIH0sXG4gIGZvcmNlUmVkaXJlY3Q6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUEFHRVNfRk9SQ0VfUkVESVJFQ1QnLFxuICAgIGhlbHA6XG4gICAgICAnSXMgdHJ1ZSBpZiByZXNwb25zZXMgc2hvdWxkIGFsd2F5cyBiZSByZWRpcmVjdHMgYW5kIG5ldmVyIGNvbnRlbnQsIGZhbHNlIGlmIHRoZSByZXNwb25zZSB0eXBlIHNob3VsZCBkZXBlbmQgb24gdGhlIHJlcXVlc3QgdHlwZSAoR0VUIHJlcXVlc3QgLT4gY29udGVudCByZXNwb25zZTsgUE9TVCByZXF1ZXN0IC0+IHJlZGlyZWN0IHJlc3BvbnNlKS4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5ib29sZWFuUGFyc2VyLFxuICAgIGRlZmF1bHQ6IGZhbHNlLFxuICB9LFxuICBsb2NhbGl6YXRpb25GYWxsYmFja0xvY2FsZToge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9QQUdFU19MT0NBTElaQVRJT05fRkFMTEJBQ0tfTE9DQUxFJyxcbiAgICBoZWxwOlxuICAgICAgJ1RoZSBmYWxsYmFjayBsb2NhbGUgZm9yIGxvY2FsaXphdGlvbiBpZiBubyBtYXRjaGluZyB0cmFuc2xhdGlvbiBpcyBwcm92aWRlZCBmb3IgdGhlIGdpdmVuIGxvY2FsZS4gVGhpcyBpcyBvbmx5IHJlbGV2YW50IHdoZW4gcHJvdmlkaW5nIHRyYW5zbGF0aW9uIHJlc291cmNlcyB2aWEgSlNPTiBmaWxlLicsXG4gICAgZGVmYXVsdDogJ2VuJyxcbiAgfSxcbiAgbG9jYWxpemF0aW9uSnNvblBhdGg6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUEFHRVNfTE9DQUxJWkFUSU9OX0pTT05fUEFUSCcsXG4gICAgaGVscDpcbiAgICAgICdUaGUgcGF0aCB0byB0aGUgSlNPTiBmaWxlIGZvciBsb2NhbGl6YXRpb247IHRoZSB0cmFuc2xhdGlvbnMgd2lsbCBiZSB1c2VkIHRvIGZpbGwgdGVtcGxhdGUgcGxhY2Vob2xkZXJzIGFjY29yZGluZyB0byB0aGUgbG9jYWxlLicsXG4gIH0sXG4gIHBhZ2VzRW5kcG9pbnQ6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUEFHRVNfUEFHRVNfRU5EUE9JTlQnLFxuICAgIGhlbHA6IFwiVGhlIEFQSSBlbmRwb2ludCBmb3IgdGhlIHBhZ2VzLiBEZWZhdWx0IGlzICdhcHBzJy5cIixcbiAgICBkZWZhdWx0OiAnYXBwcycsXG4gIH0sXG4gIHBhZ2VzUGF0aDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9QQUdFU19QQUdFU19QQVRIJyxcbiAgICBoZWxwOlxuICAgICAgXCJUaGUgcGF0aCB0byB0aGUgcGFnZXMgZGlyZWN0b3J5OyB0aGlzIGFsc28gZGVmaW5lcyB3aGVyZSB0aGUgc3RhdGljIGVuZHBvaW50ICcvYXBwcycgcG9pbnRzIHRvLiBEZWZhdWx0IGlzIHRoZSAnLi9wdWJsaWMvJyBkaXJlY3RvcnkuXCIsXG4gICAgZGVmYXVsdDogJy4vcHVibGljJyxcbiAgfSxcbiAgcGxhY2Vob2xkZXJzOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1BBR0VTX1BMQUNFSE9MREVSUycsXG4gICAgaGVscDpcbiAgICAgICdUaGUgcGxhY2Vob2xkZXIga2V5cyBhbmQgdmFsdWVzIHdoaWNoIHdpbGwgYmUgZmlsbGVkIGluIHBhZ2VzOyB0aGlzIGNhbiBiZSBhIHNpbXBsZSBvYmplY3Qgb3IgYSBjYWxsYmFjayBmdW5jdGlvbi4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5vYmplY3RQYXJzZXIsXG4gICAgZGVmYXVsdDoge30sXG4gIH0sXG59O1xubW9kdWxlLmV4cG9ydHMuUGFnZXNSb3V0ZSA9IHtcbiAgaGFuZGxlcjoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9QQUdFU19ST1VURV9IQU5ETEVSJyxcbiAgICBoZWxwOiAnVGhlIHJvdXRlIGhhbmRsZXIgdGhhdCBpcyBhbiBhc3luYyBmdW5jdGlvbi4nLFxuICAgIHJlcXVpcmVkOiB0cnVlLFxuICB9LFxuICBtZXRob2Q6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUEFHRVNfUk9VVEVfTUVUSE9EJyxcbiAgICBoZWxwOiBcIlRoZSByb3V0ZSBtZXRob2QsIGUuZy4gJ0dFVCcgb3IgJ1BPU1QnLlwiLFxuICAgIHJlcXVpcmVkOiB0cnVlLFxuICB9LFxuICBwYXRoOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1BBR0VTX1JPVVRFX1BBVEgnLFxuICAgIGhlbHA6ICdUaGUgcm91dGUgcGF0aC4nLFxuICAgIHJlcXVpcmVkOiB0cnVlLFxuICB9LFxufTtcbm1vZHVsZS5leHBvcnRzLlBhZ2VzQ3VzdG9tVXJsc09wdGlvbnMgPSB7XG4gIGVtYWlsVmVyaWZpY2F0aW9uTGlua0V4cGlyZWQ6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUEFHRVNfQ1VTVE9NX1VSTF9FTUFJTF9WRVJJRklDQVRJT05fTElOS19FWFBJUkVEJyxcbiAgICBoZWxwOiAnVGhlIFVSTCB0byB0aGUgY3VzdG9tIHBhZ2UgZm9yIGVtYWlsIHZlcmlmaWNhdGlvbiAtPiBsaW5rIGV4cGlyZWQuJyxcbiAgfSxcbiAgZW1haWxWZXJpZmljYXRpb25MaW5rSW52YWxpZDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9QQUdFU19DVVNUT01fVVJMX0VNQUlMX1ZFUklGSUNBVElPTl9MSU5LX0lOVkFMSUQnLFxuICAgIGhlbHA6ICdUaGUgVVJMIHRvIHRoZSBjdXN0b20gcGFnZSBmb3IgZW1haWwgdmVyaWZpY2F0aW9uIC0+IGxpbmsgaW52YWxpZC4nLFxuICB9LFxuICBlbWFpbFZlcmlmaWNhdGlvblNlbmRGYWlsOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1BBR0VTX0NVU1RPTV9VUkxfRU1BSUxfVkVSSUZJQ0FUSU9OX1NFTkRfRkFJTCcsXG4gICAgaGVscDogJ1RoZSBVUkwgdG8gdGhlIGN1c3RvbSBwYWdlIGZvciBlbWFpbCB2ZXJpZmljYXRpb24gLT4gbGluayBzZW5kIGZhaWwuJyxcbiAgfSxcbiAgZW1haWxWZXJpZmljYXRpb25TZW5kU3VjY2Vzczoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9QQUdFU19DVVNUT01fVVJMX0VNQUlMX1ZFUklGSUNBVElPTl9TRU5EX1NVQ0NFU1MnLFxuICAgIGhlbHA6ICdUaGUgVVJMIHRvIHRoZSBjdXN0b20gcGFnZSBmb3IgZW1haWwgdmVyaWZpY2F0aW9uIC0+IHJlc2VuZCBsaW5rIC0+IHN1Y2Nlc3MuJyxcbiAgfSxcbiAgZW1haWxWZXJpZmljYXRpb25TdWNjZXNzOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1BBR0VTX0NVU1RPTV9VUkxfRU1BSUxfVkVSSUZJQ0FUSU9OX1NVQ0NFU1MnLFxuICAgIGhlbHA6ICdUaGUgVVJMIHRvIHRoZSBjdXN0b20gcGFnZSBmb3IgZW1haWwgdmVyaWZpY2F0aW9uIC0+IHN1Y2Nlc3MuJyxcbiAgfSxcbiAgcGFzc3dvcmRSZXNldDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9QQUdFU19DVVNUT01fVVJMX1BBU1NXT1JEX1JFU0VUJyxcbiAgICBoZWxwOiAnVGhlIFVSTCB0byB0aGUgY3VzdG9tIHBhZ2UgZm9yIHBhc3N3b3JkIHJlc2V0LicsXG4gIH0sXG4gIHBhc3N3b3JkUmVzZXRMaW5rSW52YWxpZDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9QQUdFU19DVVNUT01fVVJMX1BBU1NXT1JEX1JFU0VUX0xJTktfSU5WQUxJRCcsXG4gICAgaGVscDogJ1RoZSBVUkwgdG8gdGhlIGN1c3RvbSBwYWdlIGZvciBwYXNzd29yZCByZXNldCAtPiBsaW5rIGludmFsaWQuJyxcbiAgfSxcbiAgcGFzc3dvcmRSZXNldFN1Y2Nlc3M6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUEFHRVNfQ1VTVE9NX1VSTF9QQVNTV09SRF9SRVNFVF9TVUNDRVNTJyxcbiAgICBoZWxwOiAnVGhlIFVSTCB0byB0aGUgY3VzdG9tIHBhZ2UgZm9yIHBhc3N3b3JkIHJlc2V0IC0+IHN1Y2Nlc3MuJyxcbiAgfSxcbn07XG5tb2R1bGUuZXhwb3J0cy5DdXN0b21QYWdlc09wdGlvbnMgPSB7XG4gIGNob29zZVBhc3N3b3JkOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0NVU1RPTV9QQUdFU19DSE9PU0VfUEFTU1dPUkQnLFxuICAgIGhlbHA6ICdjaG9vc2UgcGFzc3dvcmQgcGFnZSBwYXRoJyxcbiAgfSxcbiAgZXhwaXJlZFZlcmlmaWNhdGlvbkxpbms6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfQ1VTVE9NX1BBR0VTX0VYUElSRURfVkVSSUZJQ0FUSU9OX0xJTksnLFxuICAgIGhlbHA6ICdleHBpcmVkIHZlcmlmaWNhdGlvbiBsaW5rIHBhZ2UgcGF0aCcsXG4gIH0sXG4gIGludmFsaWRMaW5rOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0NVU1RPTV9QQUdFU19JTlZBTElEX0xJTksnLFxuICAgIGhlbHA6ICdpbnZhbGlkIGxpbmsgcGFnZSBwYXRoJyxcbiAgfSxcbiAgaW52YWxpZFBhc3N3b3JkUmVzZXRMaW5rOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0NVU1RPTV9QQUdFU19JTlZBTElEX1BBU1NXT1JEX1JFU0VUX0xJTksnLFxuICAgIGhlbHA6ICdpbnZhbGlkIHBhc3N3b3JkIHJlc2V0IGxpbmsgcGFnZSBwYXRoJyxcbiAgfSxcbiAgaW52YWxpZFZlcmlmaWNhdGlvbkxpbms6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfQ1VTVE9NX1BBR0VTX0lOVkFMSURfVkVSSUZJQ0FUSU9OX0xJTksnLFxuICAgIGhlbHA6ICdpbnZhbGlkIHZlcmlmaWNhdGlvbiBsaW5rIHBhZ2UgcGF0aCcsXG4gIH0sXG4gIGxpbmtTZW5kRmFpbDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9DVVNUT01fUEFHRVNfTElOS19TRU5EX0ZBSUwnLFxuICAgIGhlbHA6ICd2ZXJpZmljYXRpb24gbGluayBzZW5kIGZhaWwgcGFnZSBwYXRoJyxcbiAgfSxcbiAgbGlua1NlbmRTdWNjZXNzOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0NVU1RPTV9QQUdFU19MSU5LX1NFTkRfU1VDQ0VTUycsXG4gICAgaGVscDogJ3ZlcmlmaWNhdGlvbiBsaW5rIHNlbmQgc3VjY2VzcyBwYWdlIHBhdGgnLFxuICB9LFxuICBwYXJzZUZyYW1lVVJMOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0NVU1RPTV9QQUdFU19QQVJTRV9GUkFNRV9VUkwnLFxuICAgIGhlbHA6ICdmb3IgbWFza2luZyB1c2VyLWZhY2luZyBwYWdlcycsXG4gIH0sXG4gIHBhc3N3b3JkUmVzZXRTdWNjZXNzOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0NVU1RPTV9QQUdFU19QQVNTV09SRF9SRVNFVF9TVUNDRVNTJyxcbiAgICBoZWxwOiAncGFzc3dvcmQgcmVzZXQgc3VjY2VzcyBwYWdlIHBhdGgnLFxuICB9LFxuICB2ZXJpZnlFbWFpbFN1Y2Nlc3M6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfQ1VTVE9NX1BBR0VTX1ZFUklGWV9FTUFJTF9TVUNDRVNTJyxcbiAgICBoZWxwOiAndmVyaWZ5IGVtYWlsIHN1Y2Nlc3MgcGFnZSBwYXRoJyxcbiAgfSxcbn07XG5tb2R1bGUuZXhwb3J0cy5MaXZlUXVlcnlPcHRpb25zID0ge1xuICBjbGFzc05hbWVzOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0xJVkVRVUVSWV9DTEFTU05BTUVTJyxcbiAgICBoZWxwOiBcInBhcnNlLXNlcnZlcidzIExpdmVRdWVyeSBjbGFzc05hbWVzXCIsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmFycmF5UGFyc2VyLFxuICB9LFxuICBwdWJTdWJBZGFwdGVyOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0xJVkVRVUVSWV9QVUJfU1VCX0FEQVBURVInLFxuICAgIGhlbHA6ICdMaXZlUXVlcnkgcHVic3ViIGFkYXB0ZXInLFxuICAgIGFjdGlvbjogcGFyc2Vycy5tb2R1bGVPck9iamVjdFBhcnNlcixcbiAgfSxcbiAgcmVkaXNPcHRpb25zOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0xJVkVRVUVSWV9SRURJU19PUFRJT05TJyxcbiAgICBoZWxwOiBcInBhcnNlLXNlcnZlcidzIExpdmVRdWVyeSByZWRpc09wdGlvbnNcIixcbiAgICBhY3Rpb246IHBhcnNlcnMub2JqZWN0UGFyc2VyLFxuICB9LFxuICByZWRpc1VSTDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9MSVZFUVVFUllfUkVESVNfVVJMJyxcbiAgICBoZWxwOiBcInBhcnNlLXNlcnZlcidzIExpdmVRdWVyeSByZWRpc1VSTFwiLFxuICB9LFxuICB3c3NBZGFwdGVyOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0xJVkVRVUVSWV9XU1NfQURBUFRFUicsXG4gICAgaGVscDogJ0FkYXB0ZXIgbW9kdWxlIGZvciB0aGUgV2ViU29ja2V0U2VydmVyJyxcbiAgICBhY3Rpb246IHBhcnNlcnMubW9kdWxlT3JPYmplY3RQYXJzZXIsXG4gIH0sXG59O1xubW9kdWxlLmV4cG9ydHMuTGl2ZVF1ZXJ5U2VydmVyT3B0aW9ucyA9IHtcbiAgYXBwSWQ6IHtcbiAgICBlbnY6ICdQQVJTRV9MSVZFX1FVRVJZX1NFUlZFUl9BUFBfSUQnLFxuICAgIGhlbHA6XG4gICAgICAnVGhpcyBzdHJpbmcgc2hvdWxkIG1hdGNoIHRoZSBhcHBJZCBpbiB1c2UgYnkgeW91ciBQYXJzZSBTZXJ2ZXIuIElmIHlvdSBkZXBsb3kgdGhlIExpdmVRdWVyeSBzZXJ2ZXIgYWxvbmdzaWRlIFBhcnNlIFNlcnZlciwgdGhlIExpdmVRdWVyeSBzZXJ2ZXIgd2lsbCB0cnkgdG8gdXNlIHRoZSBzYW1lIGFwcElkLicsXG4gIH0sXG4gIGNhY2hlVGltZW91dDoge1xuICAgIGVudjogJ1BBUlNFX0xJVkVfUVVFUllfU0VSVkVSX0NBQ0hFX1RJTUVPVVQnLFxuICAgIGhlbHA6XG4gICAgICBcIk51bWJlciBpbiBtaWxsaXNlY29uZHMuIFdoZW4gY2xpZW50cyBwcm92aWRlIHRoZSBzZXNzaW9uVG9rZW4gdG8gdGhlIExpdmVRdWVyeSBzZXJ2ZXIsIHRoZSBMaXZlUXVlcnkgc2VydmVyIHdpbGwgdHJ5IHRvIGZldGNoIGl0cyBQYXJzZVVzZXIncyBvYmplY3RJZCBmcm9tIHBhcnNlIHNlcnZlciBhbmQgc3RvcmUgaXQgaW4gdGhlIGNhY2hlLiBUaGUgdmFsdWUgZGVmaW5lcyB0aGUgZHVyYXRpb24gb2YgdGhlIGNhY2hlLiBDaGVjayB0aGUgZm9sbG93aW5nIFNlY3VyaXR5IHNlY3Rpb24gYW5kIG91ciBwcm90b2NvbCBzcGVjaWZpY2F0aW9uIGZvciBkZXRhaWxzLCBkZWZhdWx0cyB0byA1ICogMTAwMCBtcyAoNSBzZWNvbmRzKS5cIixcbiAgICBhY3Rpb246IHBhcnNlcnMubnVtYmVyUGFyc2VyKCdjYWNoZVRpbWVvdXQnKSxcbiAgfSxcbiAga2V5UGFpcnM6IHtcbiAgICBlbnY6ICdQQVJTRV9MSVZFX1FVRVJZX1NFUlZFUl9LRVlfUEFJUlMnLFxuICAgIGhlbHA6XG4gICAgICAnQSBKU09OIG9iamVjdCB0aGF0IHNlcnZlcyBhcyBhIHdoaXRlbGlzdCBvZiBrZXlzLiBJdCBpcyB1c2VkIGZvciB2YWxpZGF0aW5nIGNsaWVudHMgd2hlbiB0aGV5IHRyeSB0byBjb25uZWN0IHRvIHRoZSBMaXZlUXVlcnkgc2VydmVyLiBDaGVjayB0aGUgZm9sbG93aW5nIFNlY3VyaXR5IHNlY3Rpb24gYW5kIG91ciBwcm90b2NvbCBzcGVjaWZpY2F0aW9uIGZvciBkZXRhaWxzLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm9iamVjdFBhcnNlcixcbiAgfSxcbiAgbG9nTGV2ZWw6IHtcbiAgICBlbnY6ICdQQVJTRV9MSVZFX1FVRVJZX1NFUlZFUl9MT0dfTEVWRUwnLFxuICAgIGhlbHA6XG4gICAgICAnVGhpcyBzdHJpbmcgZGVmaW5lcyB0aGUgbG9nIGxldmVsIG9mIHRoZSBMaXZlUXVlcnkgc2VydmVyLiBXZSBzdXBwb3J0IFZFUkJPU0UsIElORk8sIEVSUk9SLCBOT05FLCBkZWZhdWx0cyB0byBJTkZPLicsXG4gIH0sXG4gIG1hc3RlcktleToge1xuICAgIGVudjogJ1BBUlNFX0xJVkVfUVVFUllfU0VSVkVSX01BU1RFUl9LRVknLFxuICAgIGhlbHA6XG4gICAgICAnVGhpcyBzdHJpbmcgc2hvdWxkIG1hdGNoIHRoZSBtYXN0ZXJLZXkgaW4gdXNlIGJ5IHlvdXIgUGFyc2UgU2VydmVyLiBJZiB5b3UgZGVwbG95IHRoZSBMaXZlUXVlcnkgc2VydmVyIGFsb25nc2lkZSBQYXJzZSBTZXJ2ZXIsIHRoZSBMaXZlUXVlcnkgc2VydmVyIHdpbGwgdHJ5IHRvIHVzZSB0aGUgc2FtZSBtYXN0ZXJLZXkuJyxcbiAgfSxcbiAgcG9ydDoge1xuICAgIGVudjogJ1BBUlNFX0xJVkVfUVVFUllfU0VSVkVSX1BPUlQnLFxuICAgIGhlbHA6ICdUaGUgcG9ydCB0byBydW4gdGhlIExpdmVRdWVyeSBzZXJ2ZXIsIGRlZmF1bHRzIHRvIDEzMzcuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMubnVtYmVyUGFyc2VyKCdwb3J0JyksXG4gICAgZGVmYXVsdDogMTMzNyxcbiAgfSxcbiAgcHViU3ViQWRhcHRlcjoge1xuICAgIGVudjogJ1BBUlNFX0xJVkVfUVVFUllfU0VSVkVSX1BVQl9TVUJfQURBUFRFUicsXG4gICAgaGVscDogJ0xpdmVRdWVyeSBwdWJzdWIgYWRhcHRlcicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm1vZHVsZU9yT2JqZWN0UGFyc2VyLFxuICB9LFxuICByZWRpc09wdGlvbnM6IHtcbiAgICBlbnY6ICdQQVJTRV9MSVZFX1FVRVJZX1NFUlZFUl9SRURJU19PUFRJT05TJyxcbiAgICBoZWxwOiBcInBhcnNlLXNlcnZlcidzIExpdmVRdWVyeSByZWRpc09wdGlvbnNcIixcbiAgICBhY3Rpb246IHBhcnNlcnMub2JqZWN0UGFyc2VyLFxuICB9LFxuICByZWRpc1VSTDoge1xuICAgIGVudjogJ1BBUlNFX0xJVkVfUVVFUllfU0VSVkVSX1JFRElTX1VSTCcsXG4gICAgaGVscDogXCJwYXJzZS1zZXJ2ZXIncyBMaXZlUXVlcnkgcmVkaXNVUkxcIixcbiAgfSxcbiAgc2VydmVyVVJMOiB7XG4gICAgZW52OiAnUEFSU0VfTElWRV9RVUVSWV9TRVJWRVJfU0VSVkVSX1VSTCcsXG4gICAgaGVscDpcbiAgICAgICdUaGlzIHN0cmluZyBzaG91bGQgbWF0Y2ggdGhlIHNlcnZlclVSTCBpbiB1c2UgYnkgeW91ciBQYXJzZSBTZXJ2ZXIuIElmIHlvdSBkZXBsb3kgdGhlIExpdmVRdWVyeSBzZXJ2ZXIgYWxvbmdzaWRlIFBhcnNlIFNlcnZlciwgdGhlIExpdmVRdWVyeSBzZXJ2ZXIgd2lsbCB0cnkgdG8gdXNlIHRoZSBzYW1lIHNlcnZlclVSTC4nLFxuICB9LFxuICB3ZWJzb2NrZXRUaW1lb3V0OiB7XG4gICAgZW52OiAnUEFSU0VfTElWRV9RVUVSWV9TRVJWRVJfV0VCU09DS0VUX1RJTUVPVVQnLFxuICAgIGhlbHA6XG4gICAgICAnTnVtYmVyIG9mIG1pbGxpc2Vjb25kcyBiZXR3ZWVuIHBpbmcvcG9uZyBmcmFtZXMuIFRoZSBXZWJTb2NrZXQgc2VydmVyIHNlbmRzIHBpbmcvcG9uZyBmcmFtZXMgdG8gdGhlIGNsaWVudHMgdG8ga2VlcCB0aGUgV2ViU29ja2V0IGFsaXZlLiBUaGlzIHZhbHVlIGRlZmluZXMgdGhlIGludGVydmFsIG9mIHRoZSBwaW5nL3BvbmcgZnJhbWUgZnJvbSB0aGUgc2VydmVyIHRvIGNsaWVudHMsIGRlZmF1bHRzIHRvIDEwICogMTAwMCBtcyAoMTAgcykuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMubnVtYmVyUGFyc2VyKCd3ZWJzb2NrZXRUaW1lb3V0JyksXG4gIH0sXG4gIHdzc0FkYXB0ZXI6IHtcbiAgICBlbnY6ICdQQVJTRV9MSVZFX1FVRVJZX1NFUlZFUl9XU1NfQURBUFRFUicsXG4gICAgaGVscDogJ0FkYXB0ZXIgbW9kdWxlIGZvciB0aGUgV2ViU29ja2V0U2VydmVyJyxcbiAgICBhY3Rpb246IHBhcnNlcnMubW9kdWxlT3JPYmplY3RQYXJzZXIsXG4gIH0sXG59O1xubW9kdWxlLmV4cG9ydHMuSWRlbXBvdGVuY3lPcHRpb25zID0ge1xuICBwYXRoczoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9FWFBFUklNRU5UQUxfSURFTVBPVEVOQ1lfUEFUSFMnLFxuICAgIGhlbHA6XG4gICAgICAnQW4gYXJyYXkgb2YgcGF0aHMgZm9yIHdoaWNoIHRoZSBmZWF0dXJlIHNob3VsZCBiZSBlbmFibGVkLiBUaGUgbW91bnQgcGF0aCBtdXN0IG5vdCBiZSBpbmNsdWRlZCwgZm9yIGV4YW1wbGUgaW5zdGVhZCBvZiBgL3BhcnNlL2Z1bmN0aW9ucy9teUZ1bmN0aW9uYCBzcGVjaWZpeSBgZnVuY3Rpb25zL215RnVuY3Rpb25gLiBUaGUgZW50cmllcyBhcmUgaW50ZXJwcmV0ZWQgYXMgcmVndWxhciBleHByZXNzaW9uLCBmb3IgZXhhbXBsZSBgZnVuY3Rpb25zLy4qYCBtYXRjaGVzIGFsbCBmdW5jdGlvbnMsIGBqb2JzLy4qYCBtYXRjaGVzIGFsbCBqb2JzLCBgY2xhc3Nlcy8uKmAgbWF0Y2hlcyBhbGwgY2xhc3NlcywgYC4qYCBtYXRjaGVzIGFsbCBwYXRocy4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5hcnJheVBhcnNlcixcbiAgICBkZWZhdWx0OiBbXSxcbiAgfSxcbiAgdHRsOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0VYUEVSSU1FTlRBTF9JREVNUE9URU5DWV9UVEwnLFxuICAgIGhlbHA6XG4gICAgICAnVGhlIGR1cmF0aW9uIGluIHNlY29uZHMgYWZ0ZXIgd2hpY2ggYSByZXF1ZXN0IHJlY29yZCBpcyBkaXNjYXJkZWQgZnJvbSB0aGUgZGF0YWJhc2UsIGRlZmF1bHRzIHRvIDMwMHMuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMubnVtYmVyUGFyc2VyKCd0dGwnKSxcbiAgICBkZWZhdWx0OiAzMDAsXG4gIH0sXG59O1xubW9kdWxlLmV4cG9ydHMuQWNjb3VudExvY2tvdXRPcHRpb25zID0ge1xuICBkdXJhdGlvbjoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9BQ0NPVU5UX0xPQ0tPVVRfRFVSQVRJT04nLFxuICAgIGhlbHA6XG4gICAgICAnU2V0IHRoZSBkdXJhdGlvbiBpbiBtaW51dGVzIHRoYXQgYSBsb2NrZWQtb3V0IGFjY291bnQgcmVtYWlucyBsb2NrZWQgb3V0IGJlZm9yZSBhdXRvbWF0aWNhbGx5IGJlY29taW5nIHVubG9ja2VkLjxicj48YnI+VmFsaWQgdmFsdWVzIGFyZSBncmVhdGVyIHRoYW4gYDBgIGFuZCBsZXNzIHRoYW4gYDEwMDAwMGAuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMubnVtYmVyUGFyc2VyKCdkdXJhdGlvbicpLFxuICB9LFxuICB0aHJlc2hvbGQ6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfQUNDT1VOVF9MT0NLT1VUX1RIUkVTSE9MRCcsXG4gICAgaGVscDpcbiAgICAgICdTZXQgdGhlIG51bWJlciBvZiBmYWlsZWQgc2lnbi1pbiBhdHRlbXB0cyB0aGF0IHdpbGwgY2F1c2UgYSB1c2VyIGFjY291bnQgdG8gYmUgbG9ja2VkLiBJZiB0aGUgYWNjb3VudCBpcyBsb2NrZWQuIFRoZSBhY2NvdW50IHdpbGwgdW5sb2NrIGFmdGVyIHRoZSBkdXJhdGlvbiBzZXQgaW4gdGhlIGBkdXJhdGlvbmAgb3B0aW9uIGhhcyBwYXNzZWQgYW5kIG5vIGZ1cnRoZXIgbG9naW4gYXR0ZW1wdHMgaGF2ZSBiZWVuIG1hZGUuPGJyPjxicj5WYWxpZCB2YWx1ZXMgYXJlIGdyZWF0ZXIgdGhhbiBgMGAgYW5kIGxlc3MgdGhhbiBgMTAwMGAuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMubnVtYmVyUGFyc2VyKCd0aHJlc2hvbGQnKSxcbiAgfSxcbiAgdW5sb2NrT25QYXNzd29yZFJlc2V0OiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0FDQ09VTlRfTE9DS09VVF9VTkxPQ0tfT05fUEFTU1dPUkRfUkVTRVQnLFxuICAgIGhlbHA6XG4gICAgICAnU2V0IHRvIGB0cnVlYCAgaWYgdGhlIGFjY291bnQgc2hvdWxkIGJlIHVubG9ja2VkIGFmdGVyIGEgc3VjY2Vzc2Z1bCBwYXNzd29yZCByZXNldC48YnI+PGJyPkRlZmF1bHQgaXMgYGZhbHNlYC48YnI+UmVxdWlyZXMgb3B0aW9ucyBgZHVyYXRpb25gIGFuZCBgdGhyZXNob2xkYCB0byBiZSBzZXQuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiBmYWxzZSxcbiAgfSxcbn07XG5tb2R1bGUuZXhwb3J0cy5QYXNzd29yZFBvbGljeU9wdGlvbnMgPSB7XG4gIGRvTm90QWxsb3dVc2VybmFtZToge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9QQVNTV09SRF9QT0xJQ1lfRE9fTk9UX0FMTE9XX1VTRVJOQU1FJyxcbiAgICBoZWxwOlxuICAgICAgJ1NldCB0byBgdHJ1ZWAgdG8gZGlzYWxsb3cgdGhlIHVzZXJuYW1lIGFzIHBhcnQgb2YgdGhlIHBhc3N3b3JkLjxicj48YnI+RGVmYXVsdCBpcyBgZmFsc2VgLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogZmFsc2UsXG4gIH0sXG4gIG1heFBhc3N3b3JkQWdlOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1BBU1NXT1JEX1BPTElDWV9NQVhfUEFTU1dPUkRfQUdFJyxcbiAgICBoZWxwOlxuICAgICAgJ1NldCB0aGUgbnVtYmVyIG9mIGRheXMgYWZ0ZXIgd2hpY2ggYSBwYXNzd29yZCBleHBpcmVzLiBMb2dpbiBhdHRlbXB0cyBmYWlsIGlmIHRoZSB1c2VyIGRvZXMgbm90IHJlc2V0IHRoZSBwYXNzd29yZCBiZWZvcmUgZXhwaXJhdGlvbi4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5udW1iZXJQYXJzZXIoJ21heFBhc3N3b3JkQWdlJyksXG4gIH0sXG4gIG1heFBhc3N3b3JkSGlzdG9yeToge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9QQVNTV09SRF9QT0xJQ1lfTUFYX1BBU1NXT1JEX0hJU1RPUlknLFxuICAgIGhlbHA6XG4gICAgICAnU2V0IHRoZSBudW1iZXIgb2YgcHJldmlvdXMgcGFzc3dvcmQgdGhhdCB3aWxsIG5vdCBiZSBhbGxvd2VkIHRvIGJlIHNldCBhcyBuZXcgcGFzc3dvcmQuIElmIHRoZSBvcHRpb24gaXMgbm90IHNldCBvciBzZXQgdG8gYDBgLCBubyBwcmV2aW91cyBwYXNzd29yZHMgd2lsbCBiZSBjb25zaWRlcmVkLjxicj48YnI+VmFsaWQgdmFsdWVzIGFyZSA+PSBgMGAgYW5kIDw9IGAyMGAuPGJyPkRlZmF1bHQgaXMgYDBgLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm51bWJlclBhcnNlcignbWF4UGFzc3dvcmRIaXN0b3J5JyksXG4gIH0sXG4gIHJlc2V0UGFzc3dvcmRTdWNjZXNzT25JbnZhbGlkRW1haWw6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUEFTU1dPUkRfUE9MSUNZX1JFU0VUX1BBU1NXT1JEX1NVQ0NFU1NfT05fSU5WQUxJRF9FTUFJTCcsXG4gICAgaGVscDpcbiAgICAgICdTZXQgdG8gYHRydWVgIGlmIGEgcmVxdWVzdCB0byByZXNldCB0aGUgcGFzc3dvcmQgc2hvdWxkIHJldHVybiBhIHN1Y2Nlc3MgcmVzcG9uc2UgZXZlbiBpZiB0aGUgcHJvdmlkZWQgZW1haWwgYWRkcmVzcyBpcyBpbnZhbGlkLCBvciBgZmFsc2VgIGlmIHRoZSByZXF1ZXN0IHNob3VsZCByZXR1cm4gYW4gZXJyb3IgcmVzcG9uc2UgaWYgdGhlIGVtYWlsIGFkZHJlc3MgaXMgaW52YWxpZC48YnI+PGJyPkRlZmF1bHQgaXMgYHRydWVgLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogdHJ1ZSxcbiAgfSxcbiAgcmVzZXRUb2tlblJldXNlSWZWYWxpZDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9QQVNTV09SRF9QT0xJQ1lfUkVTRVRfVE9LRU5fUkVVU0VfSUZfVkFMSUQnLFxuICAgIGhlbHA6XG4gICAgICAnU2V0IHRvIGB0cnVlYCBpZiBhIHBhc3N3b3JkIHJlc2V0IHRva2VuIHNob3VsZCBiZSByZXVzZWQgaW4gY2FzZSBhbm90aGVyIHRva2VuIGlzIHJlcXVlc3RlZCBidXQgdGhlcmUgaXMgYSB0b2tlbiB0aGF0IGlzIHN0aWxsIHZhbGlkLCBpLmUuIGhhcyBub3QgZXhwaXJlZC4gVGhpcyBhdm9pZHMgdGhlIG9mdGVuIG9ic2VydmVkIGlzc3VlIHRoYXQgYSB1c2VyIHJlcXVlc3RzIG11bHRpcGxlIGVtYWlscyBhbmQgZG9lcyBub3Qga25vdyB3aGljaCBsaW5rIGNvbnRhaW5zIGEgdmFsaWQgdG9rZW4gYmVjYXVzZSBlYWNoIG5ld2x5IGdlbmVyYXRlZCB0b2tlbiB3b3VsZCBpbnZhbGlkYXRlIHRoZSBwcmV2aW91cyB0b2tlbi48YnI+PGJyPkRlZmF1bHQgaXMgYGZhbHNlYC4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5ib29sZWFuUGFyc2VyLFxuICAgIGRlZmF1bHQ6IGZhbHNlLFxuICB9LFxuICByZXNldFRva2VuVmFsaWRpdHlEdXJhdGlvbjoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9QQVNTV09SRF9QT0xJQ1lfUkVTRVRfVE9LRU5fVkFMSURJVFlfRFVSQVRJT04nLFxuICAgIGhlbHA6XG4gICAgICAnU2V0IHRoZSB2YWxpZGl0eSBkdXJhdGlvbiBvZiB0aGUgcGFzc3dvcmQgcmVzZXQgdG9rZW4gaW4gc2Vjb25kcyBhZnRlciB3aGljaCB0aGUgdG9rZW4gZXhwaXJlcy4gVGhlIHRva2VuIGlzIHVzZWQgaW4gdGhlIGxpbmsgdGhhdCBpcyBzZXQgaW4gdGhlIGVtYWlsLiBBZnRlciB0aGUgdG9rZW4gZXhwaXJlcywgdGhlIGxpbmsgYmVjb21lcyBpbnZhbGlkIGFuZCBhIG5ldyBsaW5rIGhhcyB0byBiZSBzZW50LiBJZiB0aGUgb3B0aW9uIGlzIG5vdCBzZXQgb3Igc2V0IHRvIGB1bmRlZmluZWRgLCB0aGVuIHRoZSB0b2tlbiBuZXZlciBleHBpcmVzLjxicj48YnI+Rm9yIGV4YW1wbGUsIHRvIGV4cGlyZSB0aGUgdG9rZW4gYWZ0ZXIgMiBob3Vycywgc2V0IGEgdmFsdWUgb2YgNzIwMCBzZWNvbmRzICg9IDYwIHNlY29uZHMgKiA2MCBtaW51dGVzICogMiBob3VycykuPGJyPjxicj5EZWZhdWx0IGlzIGB1bmRlZmluZWRgLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm51bWJlclBhcnNlcigncmVzZXRUb2tlblZhbGlkaXR5RHVyYXRpb24nKSxcbiAgfSxcbiAgdmFsaWRhdGlvbkVycm9yOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX1BBU1NXT1JEX1BPTElDWV9WQUxJREFUSU9OX0VSUk9SJyxcbiAgICBoZWxwOlxuICAgICAgJ1NldCB0aGUgZXJyb3IgbWVzc2FnZSB0byBiZSBzZW50Ljxicj48YnI+RGVmYXVsdCBpcyBgUGFzc3dvcmQgZG9lcyBub3QgbWVldCB0aGUgUGFzc3dvcmQgUG9saWN5IHJlcXVpcmVtZW50cy5gJyxcbiAgfSxcbiAgdmFsaWRhdG9yQ2FsbGJhY2s6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUEFTU1dPUkRfUE9MSUNZX1ZBTElEQVRPUl9DQUxMQkFDSycsXG4gICAgaGVscDpcbiAgICAgICdTZXQgYSBjYWxsYmFjayBmdW5jdGlvbiB0byB2YWxpZGF0ZSBhIHBhc3N3b3JkIHRvIGJlIGFjY2VwdGVkLjxicj48YnI+SWYgdXNlZCBpbiBjb21iaW5hdGlvbiB3aXRoIGB2YWxpZGF0b3JQYXR0ZXJuYCwgdGhlIHBhc3N3b3JkIG11c3QgcGFzcyBib3RoIHRvIGJlIGFjY2VwdGVkLicsXG4gIH0sXG4gIHZhbGlkYXRvclBhdHRlcm46IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfUEFTU1dPUkRfUE9MSUNZX1ZBTElEQVRPUl9QQVRURVJOJyxcbiAgICBoZWxwOlxuICAgICAgJ1NldCB0aGUgcmVndWxhciBleHByZXNzaW9uIHZhbGlkYXRpb24gcGF0dGVybiBhIHBhc3N3b3JkIG11c3QgbWF0Y2ggdG8gYmUgYWNjZXB0ZWQuPGJyPjxicj5JZiB1c2VkIGluIGNvbWJpbmF0aW9uIHdpdGggYHZhbGlkYXRvckNhbGxiYWNrYCwgdGhlIHBhc3N3b3JkIG11c3QgcGFzcyBib3RoIHRvIGJlIGFjY2VwdGVkLicsXG4gIH0sXG59O1xubW9kdWxlLmV4cG9ydHMuRmlsZVVwbG9hZE9wdGlvbnMgPSB7XG4gIGVuYWJsZUZvckFub255bW91c1VzZXI6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfRklMRV9VUExPQURfRU5BQkxFX0ZPUl9BTk9OWU1PVVNfVVNFUicsXG4gICAgaGVscDogJ0lzIHRydWUgaWYgZmlsZSB1cGxvYWQgc2hvdWxkIGJlIGFsbG93ZWQgZm9yIGFub255bW91cyB1c2Vycy4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5ib29sZWFuUGFyc2VyLFxuICAgIGRlZmF1bHQ6IGZhbHNlLFxuICB9LFxuICBlbmFibGVGb3JBdXRoZW50aWNhdGVkVXNlcjoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9GSUxFX1VQTE9BRF9FTkFCTEVfRk9SX0FVVEhFTlRJQ0FURURfVVNFUicsXG4gICAgaGVscDogJ0lzIHRydWUgaWYgZmlsZSB1cGxvYWQgc2hvdWxkIGJlIGFsbG93ZWQgZm9yIGF1dGhlbnRpY2F0ZWQgdXNlcnMuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiB0cnVlLFxuICB9LFxuICBlbmFibGVGb3JQdWJsaWM6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfRklMRV9VUExPQURfRU5BQkxFX0ZPUl9QVUJMSUMnLFxuICAgIGhlbHA6ICdJcyB0cnVlIGlmIGZpbGUgdXBsb2FkIHNob3VsZCBiZSBhbGxvd2VkIGZvciBhbnlvbmUsIHJlZ2FyZGxlc3Mgb2YgdXNlciBhdXRoZW50aWNhdGlvbi4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5ib29sZWFuUGFyc2VyLFxuICAgIGRlZmF1bHQ6IGZhbHNlLFxuICB9LFxuICBmaWxlRXh0ZW5zaW9uczoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9GSUxFX1VQTE9BRF9GSUxFX0VYVEVOU0lPTlMnLFxuICAgIGhlbHA6XG4gICAgICBcIlNldHMgdGhlIGFsbG93ZWQgZmlsZSBleHRlbnNpb25zIGZvciB1cGxvYWRpbmcgZmlsZXMuIFRoZSBleHRlbnNpb24gaXMgZGVmaW5lZCBhcyBhbiBhcnJheSBvZiBmaWxlIGV4dGVuc2lvbnMsIG9yIGEgcmVnZXggcGF0dGVybi48YnI+PGJyPkl0IGlzIHJlY29tbWVuZGVkIHRvIHJlc3RyaWN0IHRoZSBmaWxlIHVwbG9hZCBleHRlbnNpb25zIGFzIG11Y2ggYXMgcG9zc2libGUuIEhUTUwgZmlsZXMgYXJlIGVzcGVjaWFsbHkgcHJvYmxlbWF0aWMgYXMgdGhleSBtYXkgYmUgdXNlZCBieSBhbiBhdHRhY2tlciB3aG8gdXBsb2FkcyBhIEhUTUwgZm9ybSB0byBsb29rIGxlZ2l0aW1hdGUgdW5kZXIgeW91ciBhcHAncyBkb21haW4gbmFtZSwgb3IgdG8gY29tcHJvbWlzZSB0aGUgc2Vzc2lvbiB0b2tlbiBvZiBhbm90aGVyIHVzZXIgdmlhIGFjY2Vzc2luZyB0aGUgYnJvd3NlcidzIGxvY2FsIHN0b3JhZ2UuPGJyPjxicj5EZWZhdWx0cyB0byBgXig/IVt4WHNTXT9baEhdW3RUXVttTV1bbExdPyQpYCB3aGljaCBhbGxvd3MgYW55IGZpbGUgZXh0ZW5zaW9uIGV4Y2VwdCB0aG9zZSBNSU1FIHR5cGVzIHRoYXQgYXJlIG1hcHBlZCB0byBgdGV4dC9odG1sYCBhbmQgYXJlIHJlbmRlcmVkIGFzIHdlYnNpdGUgYnkgYSB3ZWIgYnJvd3Nlci5cIixcbiAgICBhY3Rpb246IHBhcnNlcnMuYXJyYXlQYXJzZXIsXG4gICAgZGVmYXVsdDogWydeKD8hW3hYc1NdP1toSF1bdFRdW21NXVtsTF0/JCknXSxcbiAgfSxcbn07XG4vKiBUaGUgYXZhaWxhYmxlIGxvZyBsZXZlbHMgZm9yIFBhcnNlIFNlcnZlciBsb2dnaW5nLiBWYWxpZCB2YWx1ZXMgYXJlOjxicj4tIGAnZXJyb3InYCAtIEVycm9yIGxldmVsIChoaWdoZXN0IHByaW9yaXR5KTxicj4tIGAnd2FybidgIC0gV2FybmluZyBsZXZlbDxicj4tIGAnaW5mbydgIC0gSW5mbyBsZXZlbCAoZGVmYXVsdCk8YnI+LSBgJ3ZlcmJvc2UnYCAtIFZlcmJvc2UgbGV2ZWw8YnI+LSBgJ2RlYnVnJ2AgLSBEZWJ1ZyBsZXZlbDxicj4tIGAnc2lsbHknYCAtIFNpbGx5IGxldmVsIChsb3dlc3QgcHJpb3JpdHkpICovXG5tb2R1bGUuZXhwb3J0cy5Mb2dMZXZlbCA9IHtcbiAgZGVidWc6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfTE9HX0xFVkVMX0RFQlVHJyxcbiAgICBoZWxwOiAnRGVidWcgbGV2ZWwnLFxuICAgIHJlcXVpcmVkOiB0cnVlLFxuICB9LFxuICBlcnJvcjoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9MT0dfTEVWRUxfRVJST1InLFxuICAgIGhlbHA6ICdFcnJvciBsZXZlbCAtIGhpZ2hlc3QgcHJpb3JpdHknLFxuICAgIHJlcXVpcmVkOiB0cnVlLFxuICB9LFxuICBpbmZvOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0xPR19MRVZFTF9JTkZPJyxcbiAgICBoZWxwOiAnSW5mbyBsZXZlbCAtIGRlZmF1bHQnLFxuICAgIHJlcXVpcmVkOiB0cnVlLFxuICB9LFxuICBzaWxseToge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9MT0dfTEVWRUxfU0lMTFknLFxuICAgIGhlbHA6ICdTaWxseSBsZXZlbCAtIGxvd2VzdCBwcmlvcml0eScsXG4gICAgcmVxdWlyZWQ6IHRydWUsXG4gIH0sXG4gIHZlcmJvc2U6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfTE9HX0xFVkVMX1ZFUkJPU0UnLFxuICAgIGhlbHA6ICdWZXJib3NlIGxldmVsJyxcbiAgICByZXF1aXJlZDogdHJ1ZSxcbiAgfSxcbiAgd2Fybjoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9MT0dfTEVWRUxfV0FSTicsXG4gICAgaGVscDogJ1dhcm5pbmcgbGV2ZWwnLFxuICAgIHJlcXVpcmVkOiB0cnVlLFxuICB9LFxufTtcbm1vZHVsZS5leHBvcnRzLkxvZ0NsaWVudEV2ZW50ID0ge1xuICBrZXlzOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0RBVEFCQVNFX0xPR19DTElFTlRfRVZFTlRTX0tFWVMnLFxuICAgIGhlbHA6XG4gICAgICAnT3B0aW9uYWwgYXJyYXkgb2YgZG90LW5vdGF0aW9uIHBhdGhzIHRvIGV4dHJhY3Qgc3BlY2lmaWMgZGF0YSBmcm9tIHRoZSBldmVudCBvYmplY3QuIElmIG5vdCBwcm92aWRlZCBvciBlbXB0eSwgdGhlIGVudGlyZSBldmVudCBvYmplY3Qgd2lsbCBiZSBsb2dnZWQuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYXJyYXlQYXJzZXIsXG4gIH0sXG4gIGxvZ0xldmVsOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0RBVEFCQVNFX0xPR19DTElFTlRfRVZFTlRTX0xPR19MRVZFTCcsXG4gICAgaGVscDpcbiAgICAgIFwiVGhlIGxvZyBsZXZlbCB0byB1c2UgZm9yIHRoaXMgZXZlbnQuIFNlZSBbTG9nTGV2ZWxdKExvZ0xldmVsLmh0bWwpIGZvciBhdmFpbGFibGUgdmFsdWVzLiBEZWZhdWx0cyB0byBgJ2luZm8nYC5cIixcbiAgICBkZWZhdWx0OiAnaW5mbycsXG4gIH0sXG4gIG5hbWU6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfREFUQUJBU0VfTE9HX0NMSUVOVF9FVkVOVFNfTkFNRScsXG4gICAgaGVscDpcbiAgICAgICdUaGUgTW9uZ29EQiBkcml2ZXIgZXZlbnQgbmFtZSB0byBsaXN0ZW4gZm9yLiBTZWUgdGhlIFtNb25nb0RCIGRyaXZlciBldmVudHMgZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly93d3cubW9uZ29kYi5jb20vZG9jcy9kcml2ZXJzL25vZGUvY3VycmVudC9mdW5kYW1lbnRhbHMvbW9uaXRvcmluZy8pIGZvciBhdmFpbGFibGUgZXZlbnRzLicsXG4gICAgcmVxdWlyZWQ6IHRydWUsXG4gIH0sXG59O1xubW9kdWxlLmV4cG9ydHMuRGF0YWJhc2VPcHRpb25zID0ge1xuICBhbGxvd1B1YmxpY0V4cGxhaW46IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfREFUQUJBU0VfQUxMT1dfUFVCTElDX0VYUExBSU4nLFxuICAgIGhlbHA6XG4gICAgICAnU2V0IHRvIGB0cnVlYCB0byBhbGxvdyBgUGFyc2UuUXVlcnkuZXhwbGFpbmAgd2l0aG91dCBtYXN0ZXIga2V5Ljxicj48YnI+XFx1MjZBMFxcdUZFMEYgRW5hYmxpbmcgdGhpcyBvcHRpb24gbWF5IGV4cG9zZSBzZW5zaXRpdmUgcXVlcnkgcGVyZm9ybWFuY2UgZGF0YSB0byB1bmF1dGhvcml6ZWQgdXNlcnMgYW5kIGNvdWxkIHBvdGVudGlhbGx5IGJlIGV4cGxvaXRlZCBmb3IgbWFsaWNpb3VzIHB1cnBvc2VzLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogdHJ1ZSxcbiAgfSxcbiAgYXBwTmFtZToge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9EQVRBQkFTRV9BUFBfTkFNRScsXG4gICAgaGVscDpcbiAgICAgICdUaGUgTW9uZ29EQiBkcml2ZXIgb3B0aW9uIHRvIHNwZWNpZnkgdGhlIG5hbWUgb2YgdGhlIGFwcGxpY2F0aW9uIHRoYXQgY3JlYXRlZCB0aGlzIE1vbmdvQ2xpZW50IGluc3RhbmNlLicsXG4gIH0sXG4gIGF1dGhNZWNoYW5pc206IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfREFUQUJBU0VfQVVUSF9NRUNIQU5JU00nLFxuICAgIGhlbHA6XG4gICAgICAnVGhlIE1vbmdvREIgZHJpdmVyIG9wdGlvbiB0byBzcGVjaWZ5IHRoZSBhdXRoZW50aWNhdGlvbiBtZWNoYW5pc20gdGhhdCBNb25nb0RCIHdpbGwgdXNlIHRvIGF1dGhlbnRpY2F0ZSB0aGUgY29ubmVjdGlvbi4nLFxuICB9LFxuICBhdXRoTWVjaGFuaXNtUHJvcGVydGllczoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9EQVRBQkFTRV9BVVRIX01FQ0hBTklTTV9QUk9QRVJUSUVTJyxcbiAgICBoZWxwOlxuICAgICAgJ1RoZSBNb25nb0RCIGRyaXZlciBvcHRpb24gdG8gc3BlY2lmeSBwcm9wZXJ0aWVzIGZvciB0aGUgc3BlY2lmaWVkIGF1dGhNZWNoYW5pc20gYXMgYSBjb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiBjb2xvbi1zZXBhcmF0ZWQga2V5LXZhbHVlIHBhaXJzLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm9iamVjdFBhcnNlcixcbiAgfSxcbiAgYXV0aFNvdXJjZToge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9EQVRBQkFTRV9BVVRIX1NPVVJDRScsXG4gICAgaGVscDpcbiAgICAgIFwiVGhlIE1vbmdvREIgZHJpdmVyIG9wdGlvbiB0byBzcGVjaWZ5IHRoZSBkYXRhYmFzZSBuYW1lIGFzc29jaWF0ZWQgd2l0aCB0aGUgdXNlcidzIGNyZWRlbnRpYWxzLlwiLFxuICB9LFxuICBhdXRvU2VsZWN0RmFtaWx5OiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0RBVEFCQVNFX0FVVE9fU0VMRUNUX0ZBTUlMWScsXG4gICAgaGVscDpcbiAgICAgICdUaGUgTW9uZ29EQiBkcml2ZXIgb3B0aW9uIHRvIHNldCB3aGV0aGVyIHRoZSBzb2NrZXQgYXR0ZW1wdHMgdG8gY29ubmVjdCB0byBJUHY2IGFuZCBJUHY0IGFkZHJlc3NlcyB1bnRpbCBhIGNvbm5lY3Rpb24gaXMgZXN0YWJsaXNoZWQuIElmIGF2YWlsYWJsZSwgdGhlIGRyaXZlciB3aWxsIHNlbGVjdCB0aGUgZmlyc3QgSVB2NiBhZGRyZXNzLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gIH0sXG4gIGF1dG9TZWxlY3RGYW1pbHlBdHRlbXB0VGltZW91dDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9EQVRBQkFTRV9BVVRPX1NFTEVDVF9GQU1JTFlfQVRURU1QVF9USU1FT1VUJyxcbiAgICBoZWxwOlxuICAgICAgJ1RoZSBNb25nb0RCIGRyaXZlciBvcHRpb24gdG8gc3BlY2lmeSB0aGUgYW1vdW50IG9mIHRpbWUgaW4gbWlsbGlzZWNvbmRzIHRvIHdhaXQgZm9yIGEgY29ubmVjdGlvbiBhdHRlbXB0IHRvIGZpbmlzaCBiZWZvcmUgdHJ5aW5nIHRoZSBuZXh0IGFkZHJlc3Mgd2hlbiB1c2luZyB0aGUgYXV0b1NlbGVjdEZhbWlseSBvcHRpb24uIElmIHNldCB0byBhIHBvc2l0aXZlIGludGVnZXIgbGVzcyB0aGFuIDEwLCB0aGUgdmFsdWUgMTAgaXMgdXNlZCBpbnN0ZWFkLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm51bWJlclBhcnNlcignYXV0b1NlbGVjdEZhbWlseUF0dGVtcHRUaW1lb3V0JyksXG4gIH0sXG4gIGNvbXByZXNzb3JzOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0RBVEFCQVNFX0NPTVBSRVNTT1JTJyxcbiAgICBoZWxwOlxuICAgICAgJ1RoZSBNb25nb0RCIGRyaXZlciBvcHRpb24gdG8gc3BlY2lmeSBhbiBhcnJheSBvciBjb21tYS1kZWxpbWl0ZWQgc3RyaW5nIG9mIGNvbXByZXNzb3JzIHRvIGVuYWJsZSBuZXR3b3JrIGNvbXByZXNzaW9uIGZvciBjb21tdW5pY2F0aW9uIGJldHdlZW4gdGhpcyBjbGllbnQgYW5kIGEgbW9uZ29kL21vbmdvcyBpbnN0YW5jZS4nLFxuICB9LFxuICBjb25uZWN0VGltZW91dE1TOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0RBVEFCQVNFX0NPTk5FQ1RfVElNRU9VVF9NUycsXG4gICAgaGVscDpcbiAgICAgICdUaGUgTW9uZ29EQiBkcml2ZXIgb3B0aW9uIHRvIHNwZWNpZnkgdGhlIGFtb3VudCBvZiB0aW1lLCBpbiBtaWxsaXNlY29uZHMsIHRvIHdhaXQgdG8gZXN0YWJsaXNoIGEgc2luZ2xlIFRDUCBzb2NrZXQgY29ubmVjdGlvbiB0byB0aGUgc2VydmVyIGJlZm9yZSByYWlzaW5nIGFuIGVycm9yLiBTcGVjaWZ5aW5nIDAgZGlzYWJsZXMgdGhlIGNvbm5lY3Rpb24gdGltZW91dC4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5udW1iZXJQYXJzZXIoJ2Nvbm5lY3RUaW1lb3V0TVMnKSxcbiAgfSxcbiAgY3JlYXRlSW5kZXhSb2xlTmFtZToge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9EQVRBQkFTRV9DUkVBVEVfSU5ERVhfUk9MRV9OQU1FJyxcbiAgICBoZWxwOlxuICAgICAgJ1NldCB0byBgdHJ1ZWAgdG8gYXV0b21hdGljYWxseSBjcmVhdGUgYSB1bmlxdWUgaW5kZXggb24gdGhlIG5hbWUgZmllbGQgb2YgdGhlIF9Sb2xlIGNvbGxlY3Rpb24gb24gc2VydmVyIHN0YXJ0LiBTZXQgdG8gYGZhbHNlYCB0byBza2lwIGluZGV4IGNyZWF0aW9uLiBEZWZhdWx0IGlzIGB0cnVlYC48YnI+PGJyPlxcdTI2QTBcXHVGRTBGIFdoZW4gc2V0dGluZyB0aGlzIG9wdGlvbiB0byBgZmFsc2VgIHRvIG1hbnVhbGx5IGNyZWF0ZSB0aGUgaW5kZXgsIGtlZXAgaW4gbWluZCB0aGF0IHRoZSBvdGhlcndpc2UgYXV0b21hdGljYWxseSBjcmVhdGVkIGluZGV4IG1heSBjaGFuZ2UgaW4gdGhlIGZ1dHVyZSB0byBiZSBvcHRpbWl6ZWQgZm9yIHRoZSBpbnRlcm5hbCB1c2FnZSBieSBQYXJzZSBTZXJ2ZXIuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiB0cnVlLFxuICB9LFxuICBjcmVhdGVJbmRleFVzZXJFbWFpbDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9EQVRBQkFTRV9DUkVBVEVfSU5ERVhfVVNFUl9FTUFJTCcsXG4gICAgaGVscDpcbiAgICAgICdTZXQgdG8gYHRydWVgIHRvIGF1dG9tYXRpY2FsbHkgY3JlYXRlIGluZGV4ZXMgb24gdGhlIGVtYWlsIGZpZWxkIG9mIHRoZSBfVXNlciBjb2xsZWN0aW9uIG9uIHNlcnZlciBzdGFydC4gU2V0IHRvIGBmYWxzZWAgdG8gc2tpcCBpbmRleCBjcmVhdGlvbi4gRGVmYXVsdCBpcyBgdHJ1ZWAuPGJyPjxicj5cXHUyNkEwXFx1RkUwRiBXaGVuIHNldHRpbmcgdGhpcyBvcHRpb24gdG8gYGZhbHNlYCB0byBtYW51YWxseSBjcmVhdGUgdGhlIGluZGV4LCBrZWVwIGluIG1pbmQgdGhhdCB0aGUgb3RoZXJ3aXNlIGF1dG9tYXRpY2FsbHkgY3JlYXRlZCBpbmRleCBtYXkgY2hhbmdlIGluIHRoZSBmdXR1cmUgdG8gYmUgb3B0aW1pemVkIGZvciB0aGUgaW50ZXJuYWwgdXNhZ2UgYnkgUGFyc2UgU2VydmVyLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogdHJ1ZSxcbiAgfSxcbiAgY3JlYXRlSW5kZXhVc2VyRW1haWxDYXNlSW5zZW5zaXRpdmU6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfREFUQUJBU0VfQ1JFQVRFX0lOREVYX1VTRVJfRU1BSUxfQ0FTRV9JTlNFTlNJVElWRScsXG4gICAgaGVscDpcbiAgICAgICdTZXQgdG8gYHRydWVgIHRvIGF1dG9tYXRpY2FsbHkgY3JlYXRlIGEgY2FzZS1pbnNlbnNpdGl2ZSBpbmRleCBvbiB0aGUgZW1haWwgZmllbGQgb2YgdGhlIF9Vc2VyIGNvbGxlY3Rpb24gb24gc2VydmVyIHN0YXJ0LiBTZXQgdG8gYGZhbHNlYCB0byBza2lwIGluZGV4IGNyZWF0aW9uLiBEZWZhdWx0IGlzIGB0cnVlYC48YnI+PGJyPlxcdTI2QTBcXHVGRTBGIFdoZW4gc2V0dGluZyB0aGlzIG9wdGlvbiB0byBgZmFsc2VgIHRvIG1hbnVhbGx5IGNyZWF0ZSB0aGUgaW5kZXgsIGtlZXAgaW4gbWluZCB0aGF0IHRoZSBvdGhlcndpc2UgYXV0b21hdGljYWxseSBjcmVhdGVkIGluZGV4IG1heSBjaGFuZ2UgaW4gdGhlIGZ1dHVyZSB0byBiZSBvcHRpbWl6ZWQgZm9yIHRoZSBpbnRlcm5hbCB1c2FnZSBieSBQYXJzZSBTZXJ2ZXIuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiB0cnVlLFxuICB9LFxuICBjcmVhdGVJbmRleFVzZXJFbWFpbFZlcmlmeVRva2VuOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0RBVEFCQVNFX0NSRUFURV9JTkRFWF9VU0VSX0VNQUlMX1ZFUklGWV9UT0tFTicsXG4gICAgaGVscDpcbiAgICAgICdTZXQgdG8gYHRydWVgIHRvIGF1dG9tYXRpY2FsbHkgY3JlYXRlIGFuIGluZGV4IG9uIHRoZSBfZW1haWxfdmVyaWZ5X3Rva2VuIGZpZWxkIG9mIHRoZSBfVXNlciBjb2xsZWN0aW9uIG9uIHNlcnZlciBzdGFydC4gU2V0IHRvIGBmYWxzZWAgdG8gc2tpcCBpbmRleCBjcmVhdGlvbi4gRGVmYXVsdCBpcyBgdHJ1ZWAuPGJyPjxicj5cXHUyNkEwXFx1RkUwRiBXaGVuIHNldHRpbmcgdGhpcyBvcHRpb24gdG8gYGZhbHNlYCB0byBtYW51YWxseSBjcmVhdGUgdGhlIGluZGV4LCBrZWVwIGluIG1pbmQgdGhhdCB0aGUgb3RoZXJ3aXNlIGF1dG9tYXRpY2FsbHkgY3JlYXRlZCBpbmRleCBtYXkgY2hhbmdlIGluIHRoZSBmdXR1cmUgdG8gYmUgb3B0aW1pemVkIGZvciB0aGUgaW50ZXJuYWwgdXNhZ2UgYnkgUGFyc2UgU2VydmVyLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogdHJ1ZSxcbiAgfSxcbiAgY3JlYXRlSW5kZXhVc2VyUGFzc3dvcmRSZXNldFRva2VuOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0RBVEFCQVNFX0NSRUFURV9JTkRFWF9VU0VSX1BBU1NXT1JEX1JFU0VUX1RPS0VOJyxcbiAgICBoZWxwOlxuICAgICAgJ1NldCB0byBgdHJ1ZWAgdG8gYXV0b21hdGljYWxseSBjcmVhdGUgYW4gaW5kZXggb24gdGhlIF9wZXJpc2hhYmxlX3Rva2VuIGZpZWxkIG9mIHRoZSBfVXNlciBjb2xsZWN0aW9uIG9uIHNlcnZlciBzdGFydC4gU2V0IHRvIGBmYWxzZWAgdG8gc2tpcCBpbmRleCBjcmVhdGlvbi4gRGVmYXVsdCBpcyBgdHJ1ZWAuPGJyPjxicj5cXHUyNkEwXFx1RkUwRiBXaGVuIHNldHRpbmcgdGhpcyBvcHRpb24gdG8gYGZhbHNlYCB0byBtYW51YWxseSBjcmVhdGUgdGhlIGluZGV4LCBrZWVwIGluIG1pbmQgdGhhdCB0aGUgb3RoZXJ3aXNlIGF1dG9tYXRpY2FsbHkgY3JlYXRlZCBpbmRleCBtYXkgY2hhbmdlIGluIHRoZSBmdXR1cmUgdG8gYmUgb3B0aW1pemVkIGZvciB0aGUgaW50ZXJuYWwgdXNhZ2UgYnkgUGFyc2UgU2VydmVyLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogdHJ1ZSxcbiAgfSxcbiAgY3JlYXRlSW5kZXhVc2VyVXNlcm5hbWU6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfREFUQUJBU0VfQ1JFQVRFX0lOREVYX1VTRVJfVVNFUk5BTUUnLFxuICAgIGhlbHA6XG4gICAgICAnU2V0IHRvIGB0cnVlYCB0byBhdXRvbWF0aWNhbGx5IGNyZWF0ZSBpbmRleGVzIG9uIHRoZSB1c2VybmFtZSBmaWVsZCBvZiB0aGUgX1VzZXIgY29sbGVjdGlvbiBvbiBzZXJ2ZXIgc3RhcnQuIFNldCB0byBgZmFsc2VgIHRvIHNraXAgaW5kZXggY3JlYXRpb24uIERlZmF1bHQgaXMgYHRydWVgLjxicj48YnI+XFx1MjZBMFxcdUZFMEYgV2hlbiBzZXR0aW5nIHRoaXMgb3B0aW9uIHRvIGBmYWxzZWAgdG8gbWFudWFsbHkgY3JlYXRlIHRoZSBpbmRleCwga2VlcCBpbiBtaW5kIHRoYXQgdGhlIG90aGVyd2lzZSBhdXRvbWF0aWNhbGx5IGNyZWF0ZWQgaW5kZXggbWF5IGNoYW5nZSBpbiB0aGUgZnV0dXJlIHRvIGJlIG9wdGltaXplZCBmb3IgdGhlIGludGVybmFsIHVzYWdlIGJ5IFBhcnNlIFNlcnZlci4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5ib29sZWFuUGFyc2VyLFxuICAgIGRlZmF1bHQ6IHRydWUsXG4gIH0sXG4gIGNyZWF0ZUluZGV4VXNlclVzZXJuYW1lQ2FzZUluc2Vuc2l0aXZlOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0RBVEFCQVNFX0NSRUFURV9JTkRFWF9VU0VSX1VTRVJOQU1FX0NBU0VfSU5TRU5TSVRJVkUnLFxuICAgIGhlbHA6XG4gICAgICAnU2V0IHRvIGB0cnVlYCB0byBhdXRvbWF0aWNhbGx5IGNyZWF0ZSBhIGNhc2UtaW5zZW5zaXRpdmUgaW5kZXggb24gdGhlIHVzZXJuYW1lIGZpZWxkIG9mIHRoZSBfVXNlciBjb2xsZWN0aW9uIG9uIHNlcnZlciBzdGFydC4gU2V0IHRvIGBmYWxzZWAgdG8gc2tpcCBpbmRleCBjcmVhdGlvbi4gRGVmYXVsdCBpcyBgdHJ1ZWAuPGJyPjxicj5cXHUyNkEwXFx1RkUwRiBXaGVuIHNldHRpbmcgdGhpcyBvcHRpb24gdG8gYGZhbHNlYCB0byBtYW51YWxseSBjcmVhdGUgdGhlIGluZGV4LCBrZWVwIGluIG1pbmQgdGhhdCB0aGUgb3RoZXJ3aXNlIGF1dG9tYXRpY2FsbHkgY3JlYXRlZCBpbmRleCBtYXkgY2hhbmdlIGluIHRoZSBmdXR1cmUgdG8gYmUgb3B0aW1pemVkIGZvciB0aGUgaW50ZXJuYWwgdXNhZ2UgYnkgUGFyc2UgU2VydmVyLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gICAgZGVmYXVsdDogdHJ1ZSxcbiAgfSxcbiAgZGlyZWN0Q29ubmVjdGlvbjoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9EQVRBQkFTRV9ESVJFQ1RfQ09OTkVDVElPTicsXG4gICAgaGVscDpcbiAgICAgICdUaGUgTW9uZ29EQiBkcml2ZXIgb3B0aW9uIHRvIGZvcmNlIGEgU2luZ2xlIHRvcG9sb2d5IHR5cGUgd2l0aCBhIGNvbm5lY3Rpb24gc3RyaW5nIGNvbnRhaW5pbmcgb25lIGhvc3QuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgfSxcbiAgZGlzYWJsZUluZGV4RmllbGRWYWxpZGF0aW9uOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0RBVEFCQVNFX0RJU0FCTEVfSU5ERVhfRklFTERfVkFMSURBVElPTicsXG4gICAgaGVscDpcbiAgICAgICdTZXQgdG8gYHRydWVgIHRvIGRpc2FibGUgdmFsaWRhdGlvbiBvZiBpbmRleCBmaWVsZHMuIFdoZW4gZGlzYWJsZWQsIGluZGV4ZXMgY2FuIGJlIGNyZWF0ZWQgZXZlbiBpZiB0aGUgZmllbGRzIGRvIG5vdCBleGlzdCBpbiB0aGUgc2NoZW1hLiBUaGlzIGNhbiBiZSB1c2VmdWwgd2hlbiBjcmVhdGluZyBpbmRleGVzIG9uIGZpZWxkcyB0aGF0IHdpbGwgYmUgYWRkZWQgbGF0ZXIuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgfSxcbiAgZW5hYmxlU2NoZW1hSG9va3M6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfREFUQUJBU0VfRU5BQkxFX1NDSEVNQV9IT09LUycsXG4gICAgaGVscDpcbiAgICAgICdFbmFibGVzIGRhdGFiYXNlIHJlYWwtdGltZSBob29rcyB0byB1cGRhdGUgc2luZ2xlIHNjaGVtYSBjYWNoZS4gU2V0IHRvIGB0cnVlYCBpZiB1c2luZyBtdWx0aXBsZSBQYXJzZSBTZXJ2ZXJzIGluc3RhbmNlcyBjb25uZWN0ZWQgdG8gdGhlIHNhbWUgZGF0YWJhc2UuIEZhaWxpbmcgdG8gZG8gc28gd2lsbCBjYXVzZSBhIHNjaGVtYSBjaGFuZ2UgdG8gbm90IHByb3BhZ2F0ZSB0byBhbGwgaW5zdGFuY2VzIGFuZCByZS1zeW5jaW5nIHdpbGwgb25seSBoYXBwZW4gd2hlbiB0aGUgaW5zdGFuY2VzIHJlc3RhcnQuIFRvIHVzZSB0aGlzIGZlYXR1cmUgd2l0aCBNb25nb0RCLCBhIHJlcGxpY2Egc2V0IGNsdXN0ZXIgd2l0aCBbY2hhbmdlIHN0cmVhbV0oaHR0cHM6Ly9kb2NzLm1vbmdvZGIuY29tL21hbnVhbC9jaGFuZ2VTdHJlYW1zLyNhdmFpbGFiaWxpdHkpIHN1cHBvcnQgaXMgcmVxdWlyZWQuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgICBkZWZhdWx0OiBmYWxzZSxcbiAgfSxcbiAgZm9yY2VTZXJ2ZXJPYmplY3RJZDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9EQVRBQkFTRV9GT1JDRV9TRVJWRVJfT0JKRUNUX0lEJyxcbiAgICBoZWxwOiAnVGhlIE1vbmdvREIgZHJpdmVyIG9wdGlvbiB0byBmb3JjZSBzZXJ2ZXIgdG8gYXNzaWduIF9pZCB2YWx1ZXMgaW5zdGVhZCBvZiBkcml2ZXIuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgfSxcbiAgaGVhcnRiZWF0RnJlcXVlbmN5TVM6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfREFUQUJBU0VfSEVBUlRCRUFUX0ZSRVFVRU5DWV9NUycsXG4gICAgaGVscDpcbiAgICAgICdUaGUgTW9uZ29EQiBkcml2ZXIgb3B0aW9uIHRvIHNwZWNpZnkgdGhlIGZyZXF1ZW5jeSBpbiBtaWxsaXNlY29uZHMgYXQgd2hpY2ggdGhlIGRyaXZlciBjaGVja3MgdGhlIHN0YXRlIG9mIHRoZSBNb25nb0RCIGRlcGxveW1lbnQuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMubnVtYmVyUGFyc2VyKCdoZWFydGJlYXRGcmVxdWVuY3lNUycpLFxuICB9LFxuICBsb2FkQmFsYW5jZWQ6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfREFUQUJBU0VfTE9BRF9CQUxBTkNFRCcsXG4gICAgaGVscDpcbiAgICAgICdUaGUgTW9uZ29EQiBkcml2ZXIgb3B0aW9uIHRvIGluc3RydWN0IHRoZSBkcml2ZXIgaXQgaXMgY29ubmVjdGluZyB0byBhIGxvYWQgYmFsYW5jZXIgZnJvbnRpbmcgYSBtb25nb3MgbGlrZSBzZXJ2aWNlLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gIH0sXG4gIGxvY2FsVGhyZXNob2xkTVM6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfREFUQUJBU0VfTE9DQUxfVEhSRVNIT0xEX01TJyxcbiAgICBoZWxwOlxuICAgICAgJ1RoZSBNb25nb0RCIGRyaXZlciBvcHRpb24gdG8gc3BlY2lmeSB0aGUgc2l6ZSAoaW4gbWlsbGlzZWNvbmRzKSBvZiB0aGUgbGF0ZW5jeSB3aW5kb3cgZm9yIHNlbGVjdGluZyBhbW9uZyBtdWx0aXBsZSBzdWl0YWJsZSBNb25nb0RCIGluc3RhbmNlcy4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5udW1iZXJQYXJzZXIoJ2xvY2FsVGhyZXNob2xkTVMnKSxcbiAgfSxcbiAgbG9nQ2xpZW50RXZlbnRzOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0RBVEFCQVNFX0xPR19DTElFTlRfRVZFTlRTJyxcbiAgICBoZWxwOiAnQW4gYXJyYXkgb2YgTW9uZ29EQiBjbGllbnQgZXZlbnQgY29uZmlndXJhdGlvbnMgdG8gZW5hYmxlIGxvZ2dpbmcgb2Ygc3BlY2lmaWMgZXZlbnRzLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmFycmF5UGFyc2VyLFxuICAgIHR5cGU6ICdMb2dDbGllbnRFdmVudFtdJyxcbiAgfSxcbiAgbWF4Q29ubmVjdGluZzoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9EQVRBQkFTRV9NQVhfQ09OTkVDVElORycsXG4gICAgaGVscDpcbiAgICAgICdUaGUgTW9uZ29EQiBkcml2ZXIgb3B0aW9uIHRvIHNwZWNpZnkgdGhlIG1heGltdW0gbnVtYmVyIG9mIGNvbm5lY3Rpb25zIHRoYXQgbWF5IGJlIGluIHRoZSBwcm9jZXNzIG9mIGJlaW5nIGVzdGFibGlzaGVkIGNvbmN1cnJlbnRseSBieSB0aGUgY29ubmVjdGlvbiBwb29sLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm51bWJlclBhcnNlcignbWF4Q29ubmVjdGluZycpLFxuICB9LFxuICBtYXhJZGxlVGltZU1TOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0RBVEFCQVNFX01BWF9JRExFX1RJTUVfTVMnLFxuICAgIGhlbHA6XG4gICAgICAnVGhlIE1vbmdvREIgZHJpdmVyIG9wdGlvbiB0byBzcGVjaWZ5IHRoZSBhbW91bnQgb2YgdGltZSBpbiBtaWxsaXNlY29uZHMgdGhhdCBhIGNvbm5lY3Rpb24gY2FuIHJlbWFpbiBpZGxlIGluIHRoZSBjb25uZWN0aW9uIHBvb2wgYmVmb3JlIGJlaW5nIHJlbW92ZWQgYW5kIGNsb3NlZC4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5udW1iZXJQYXJzZXIoJ21heElkbGVUaW1lTVMnKSxcbiAgfSxcbiAgbWF4UG9vbFNpemU6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfREFUQUJBU0VfTUFYX1BPT0xfU0laRScsXG4gICAgaGVscDpcbiAgICAgICdUaGUgTW9uZ29EQiBkcml2ZXIgb3B0aW9uIHRvIHNldCB0aGUgbWF4aW11bSBudW1iZXIgb2Ygb3BlbmVkLCBjYWNoZWQsIHJlYWR5LXRvLXVzZSBkYXRhYmFzZSBjb25uZWN0aW9ucyBtYWludGFpbmVkIGJ5IHRoZSBkcml2ZXIuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMubnVtYmVyUGFyc2VyKCdtYXhQb29sU2l6ZScpLFxuICB9LFxuICBtYXhTdGFsZW5lc3NTZWNvbmRzOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0RBVEFCQVNFX01BWF9TVEFMRU5FU1NfU0VDT05EUycsXG4gICAgaGVscDpcbiAgICAgICdUaGUgTW9uZ29EQiBkcml2ZXIgb3B0aW9uIHRvIHNldCB0aGUgbWF4aW11bSByZXBsaWNhdGlvbiBsYWcgZm9yIHJlYWRzIGZyb20gc2Vjb25kYXJ5IG5vZGVzLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm51bWJlclBhcnNlcignbWF4U3RhbGVuZXNzU2Vjb25kcycpLFxuICB9LFxuICBtYXhUaW1lTVM6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfREFUQUJBU0VfTUFYX1RJTUVfTVMnLFxuICAgIGhlbHA6XG4gICAgICAnVGhlIE1vbmdvREIgZHJpdmVyIG9wdGlvbiB0byBzZXQgYSBjdW11bGF0aXZlIHRpbWUgbGltaXQgaW4gbWlsbGlzZWNvbmRzIGZvciBwcm9jZXNzaW5nIG9wZXJhdGlvbnMgb24gYSBjdXJzb3IuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMubnVtYmVyUGFyc2VyKCdtYXhUaW1lTVMnKSxcbiAgfSxcbiAgbWluUG9vbFNpemU6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfREFUQUJBU0VfTUlOX1BPT0xfU0laRScsXG4gICAgaGVscDpcbiAgICAgICdUaGUgTW9uZ29EQiBkcml2ZXIgb3B0aW9uIHRvIHNldCB0aGUgbWluaW11bSBudW1iZXIgb2Ygb3BlbmVkLCBjYWNoZWQsIHJlYWR5LXRvLXVzZSBkYXRhYmFzZSBjb25uZWN0aW9ucyBtYWludGFpbmVkIGJ5IHRoZSBkcml2ZXIuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMubnVtYmVyUGFyc2VyKCdtaW5Qb29sU2l6ZScpLFxuICB9LFxuICBwcm94eUhvc3Q6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfREFUQUJBU0VfUFJPWFlfSE9TVCcsXG4gICAgaGVscDpcbiAgICAgICdUaGUgTW9uZ29EQiBkcml2ZXIgb3B0aW9uIHRvIGNvbmZpZ3VyZSBhIFNvY2tzNSBwcm94eSBob3N0IHVzZWQgZm9yIGNyZWF0aW5nIFRDUCBjb25uZWN0aW9ucy4nLFxuICB9LFxuICBwcm94eVBhc3N3b3JkOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0RBVEFCQVNFX1BST1hZX1BBU1NXT1JEJyxcbiAgICBoZWxwOlxuICAgICAgJ1RoZSBNb25nb0RCIGRyaXZlciBvcHRpb24gdG8gY29uZmlndXJlIGEgU29ja3M1IHByb3h5IHBhc3N3b3JkIHdoZW4gdGhlIHByb3h5IHJlcXVpcmVzIHVzZXJuYW1lL3Bhc3N3b3JkIGF1dGhlbnRpY2F0aW9uLicsXG4gIH0sXG4gIHByb3h5UG9ydDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9EQVRBQkFTRV9QUk9YWV9QT1JUJyxcbiAgICBoZWxwOlxuICAgICAgJ1RoZSBNb25nb0RCIGRyaXZlciBvcHRpb24gdG8gY29uZmlndXJlIGEgU29ja3M1IHByb3h5IHBvcnQgdXNlZCBmb3IgY3JlYXRpbmcgVENQIGNvbm5lY3Rpb25zLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm51bWJlclBhcnNlcigncHJveHlQb3J0JyksXG4gIH0sXG4gIHByb3h5VXNlcm5hbWU6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfREFUQUJBU0VfUFJPWFlfVVNFUk5BTUUnLFxuICAgIGhlbHA6XG4gICAgICAnVGhlIE1vbmdvREIgZHJpdmVyIG9wdGlvbiB0byBjb25maWd1cmUgYSBTb2NrczUgcHJveHkgdXNlcm5hbWUgd2hlbiB0aGUgcHJveHkgcmVxdWlyZXMgdXNlcm5hbWUvcGFzc3dvcmQgYXV0aGVudGljYXRpb24uJyxcbiAgfSxcbiAgcmVhZENvbmNlcm5MZXZlbDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9EQVRBQkFTRV9SRUFEX0NPTkNFUk5fTEVWRUwnLFxuICAgIGhlbHA6ICdUaGUgTW9uZ29EQiBkcml2ZXIgb3B0aW9uIHRvIHNwZWNpZnkgdGhlIGxldmVsIG9mIGlzb2xhdGlvbi4nLFxuICB9LFxuICByZWFkUHJlZmVyZW5jZToge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9EQVRBQkFTRV9SRUFEX1BSRUZFUkVOQ0UnLFxuICAgIGhlbHA6ICdUaGUgTW9uZ29EQiBkcml2ZXIgb3B0aW9uIHRvIHNwZWNpZnkgdGhlIHJlYWQgcHJlZmVyZW5jZXMgZm9yIHRoaXMgY29ubmVjdGlvbi4nLFxuICB9LFxuICByZWFkUHJlZmVyZW5jZVRhZ3M6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfREFUQUJBU0VfUkVBRF9QUkVGRVJFTkNFX1RBR1MnLFxuICAgIGhlbHA6XG4gICAgICAnVGhlIE1vbmdvREIgZHJpdmVyIG9wdGlvbiB0byBzcGVjaWZ5IHRoZSB0YWdzIGRvY3VtZW50IGFzIGEgY29tbWEtc2VwYXJhdGVkIGxpc3Qgb2YgY29sb24tc2VwYXJhdGVkIGtleS12YWx1ZSBwYWlycy4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5hcnJheVBhcnNlcixcbiAgfSxcbiAgcmVwbGljYVNldDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9EQVRBQkFTRV9SRVBMSUNBX1NFVCcsXG4gICAgaGVscDpcbiAgICAgICdUaGUgTW9uZ29EQiBkcml2ZXIgb3B0aW9uIHRvIHNwZWNpZnkgdGhlIG5hbWUgb2YgdGhlIHJlcGxpY2Egc2V0LCBpZiB0aGUgbW9uZ29kIGlzIGEgbWVtYmVyIG9mIGEgcmVwbGljYSBzZXQuJyxcbiAgfSxcbiAgcmV0cnlSZWFkczoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9EQVRBQkFTRV9SRVRSWV9SRUFEUycsXG4gICAgaGVscDogJ1RoZSBNb25nb0RCIGRyaXZlciBvcHRpb24gdG8gZW5hYmxlIHJldHJ5YWJsZSByZWFkcy4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5ib29sZWFuUGFyc2VyLFxuICB9LFxuICByZXRyeVdyaXRlczoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9EQVRBQkFTRV9SRVRSWV9XUklURVMnLFxuICAgIGhlbHA6ICdUaGUgTW9uZ29EQiBkcml2ZXIgb3B0aW9uIHRvIHNldCB3aGV0aGVyIHRvIHJldHJ5IGZhaWxlZCB3cml0ZXMuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgfSxcbiAgc2NoZW1hQ2FjaGVUdGw6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfREFUQUJBU0VfU0NIRU1BX0NBQ0hFX1RUTCcsXG4gICAgaGVscDpcbiAgICAgICdUaGUgZHVyYXRpb24gaW4gc2Vjb25kcyBhZnRlciB3aGljaCB0aGUgc2NoZW1hIGNhY2hlIGV4cGlyZXMgYW5kIHdpbGwgYmUgcmVmZXRjaGVkIGZyb20gdGhlIGRhdGFiYXNlLiBVc2UgdGhpcyBvcHRpb24gaWYgdXNpbmcgbXVsdGlwbGUgUGFyc2UgU2VydmVycyBpbnN0YW5jZXMgY29ubmVjdGVkIHRvIHRoZSBzYW1lIGRhdGFiYXNlLiBBIGxvdyBkdXJhdGlvbiB3aWxsIGNhdXNlIHRoZSBzY2hlbWEgY2FjaGUgdG8gYmUgdXBkYXRlZCB0b28gb2Z0ZW4sIGNhdXNpbmcgdW5uZWNlc3NhcnkgZGF0YWJhc2UgcmVhZHMuIEEgaGlnaCBkdXJhdGlvbiB3aWxsIGNhdXNlIHRoZSBzY2hlbWEgdG8gYmUgdXBkYXRlZCB0b28gcmFyZWx5LCBpbmNyZWFzaW5nIHRoZSB0aW1lIHJlcXVpcmVkIHVudGlsIHNjaGVtYSBjaGFuZ2VzIHByb3BhZ2F0ZSB0byBhbGwgc2VydmVyIGluc3RhbmNlcy4gVGhpcyBmZWF0dXJlIGNhbiBiZSB1c2VkIGFzIGFuIGFsdGVybmF0aXZlIG9yIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlIG9wdGlvbiBgZW5hYmxlU2NoZW1hSG9va3NgLiBEZWZhdWx0IGlzIGluZmluaXRlIHdoaWNoIG1lYW5zIHRoZSBzY2hlbWEgY2FjaGUgbmV2ZXIgZXhwaXJlcy4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5udW1iZXJQYXJzZXIoJ3NjaGVtYUNhY2hlVHRsJyksXG4gIH0sXG4gIHNlcnZlck1vbml0b3JpbmdNb2RlOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0RBVEFCQVNFX1NFUlZFUl9NT05JVE9SSU5HX01PREUnLFxuICAgIGhlbHA6XG4gICAgICAnVGhlIE1vbmdvREIgZHJpdmVyIG9wdGlvbiB0byBpbnN0cnVjdCB0aGUgZHJpdmVyIG1vbml0b3JzIHRvIHVzZSBhIHNwZWNpZmljIG1vbml0b3JpbmcgbW9kZS4nLFxuICB9LFxuICBzZXJ2ZXJTZWxlY3Rpb25UaW1lb3V0TVM6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfREFUQUJBU0VfU0VSVkVSX1NFTEVDVElPTl9USU1FT1VUX01TJyxcbiAgICBoZWxwOlxuICAgICAgJ1RoZSBNb25nb0RCIGRyaXZlciBvcHRpb24gdG8gc3BlY2lmeSB0aGUgYW1vdW50IG9mIHRpbWUgaW4gbWlsbGlzZWNvbmRzIGZvciBhIHNlcnZlciB0byBiZSBjb25zaWRlcmVkIHN1aXRhYmxlIGZvciBzZWxlY3Rpb24uJyxcbiAgICBhY3Rpb246IHBhcnNlcnMubnVtYmVyUGFyc2VyKCdzZXJ2ZXJTZWxlY3Rpb25UaW1lb3V0TVMnKSxcbiAgfSxcbiAgc29ja2V0VGltZW91dE1TOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0RBVEFCQVNFX1NPQ0tFVF9USU1FT1VUX01TJyxcbiAgICBoZWxwOlxuICAgICAgJ1RoZSBNb25nb0RCIGRyaXZlciBvcHRpb24gdG8gc3BlY2lmeSB0aGUgYW1vdW50IG9mIHRpbWUsIGluIG1pbGxpc2Vjb25kcywgc3BlbnQgYXR0ZW1wdGluZyB0byBzZW5kIG9yIHJlY2VpdmUgb24gYSBzb2NrZXQgYmVmb3JlIHRpbWluZyBvdXQuIFNwZWNpZnlpbmcgMCBtZWFucyBubyB0aW1lb3V0LicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm51bWJlclBhcnNlcignc29ja2V0VGltZW91dE1TJyksXG4gIH0sXG4gIHNydk1heEhvc3RzOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0RBVEFCQVNFX1NSVl9NQVhfSE9TVFMnLFxuICAgIGhlbHA6XG4gICAgICAnVGhlIE1vbmdvREIgZHJpdmVyIG9wdGlvbiB0byBzcGVjaWZ5IHRoZSBtYXhpbXVtIG51bWJlciBvZiBob3N0cyB0byBjb25uZWN0IHRvIHdoZW4gdXNpbmcgYW4gc3J2IGNvbm5lY3Rpb24gc3RyaW5nLCBhIHNldHRpbmcgb2YgMCBtZWFucyB1bmxpbWl0ZWQgaG9zdHMuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMubnVtYmVyUGFyc2VyKCdzcnZNYXhIb3N0cycpLFxuICB9LFxuICBzcnZTZXJ2aWNlTmFtZToge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9EQVRBQkFTRV9TUlZfU0VSVklDRV9OQU1FJyxcbiAgICBoZWxwOiAnVGhlIE1vbmdvREIgZHJpdmVyIG9wdGlvbiB0byBtb2RpZnkgdGhlIHNydiBVUkkgc2VydmljZSBuYW1lLicsXG4gIH0sXG4gIHNzbDoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9EQVRBQkFTRV9TU0wnLFxuICAgIGhlbHA6XG4gICAgICAnVGhlIE1vbmdvREIgZHJpdmVyIG9wdGlvbiB0byBlbmFibGUgb3IgZGlzYWJsZSBUTFMvU1NMIGZvciB0aGUgY29ubmVjdGlvbiAoZXF1aXZhbGVudCB0byB0bHMgb3B0aW9uKS4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5ib29sZWFuUGFyc2VyLFxuICB9LFxuICB0bHM6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfREFUQUJBU0VfVExTJyxcbiAgICBoZWxwOiAnVGhlIE1vbmdvREIgZHJpdmVyIG9wdGlvbiB0byBlbmFibGUgb3IgZGlzYWJsZSBUTFMvU1NMIGZvciB0aGUgY29ubmVjdGlvbi4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5ib29sZWFuUGFyc2VyLFxuICB9LFxuICB0bHNBbGxvd0ludmFsaWRDZXJ0aWZpY2F0ZXM6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfREFUQUJBU0VfVExTX0FMTE9XX0lOVkFMSURfQ0VSVElGSUNBVEVTJyxcbiAgICBoZWxwOlxuICAgICAgJ1RoZSBNb25nb0RCIGRyaXZlciBvcHRpb24gdG8gYnlwYXNzIHZhbGlkYXRpb24gb2YgdGhlIGNlcnRpZmljYXRlcyBwcmVzZW50ZWQgYnkgdGhlIG1vbmdvZC9tb25nb3MgaW5zdGFuY2UuJyxcbiAgICBhY3Rpb246IHBhcnNlcnMuYm9vbGVhblBhcnNlcixcbiAgfSxcbiAgdGxzQWxsb3dJbnZhbGlkSG9zdG5hbWVzOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0RBVEFCQVNFX1RMU19BTExPV19JTlZBTElEX0hPU1ROQU1FUycsXG4gICAgaGVscDpcbiAgICAgICdUaGUgTW9uZ29EQiBkcml2ZXIgb3B0aW9uIHRvIGRpc2FibGUgaG9zdG5hbWUgdmFsaWRhdGlvbiBvZiB0aGUgY2VydGlmaWNhdGUgcHJlc2VudGVkIGJ5IHRoZSBtb25nb2QvbW9uZ29zIGluc3RhbmNlLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gIH0sXG4gIHRsc0NBRmlsZToge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9EQVRBQkFTRV9UTFNfQ0FGSUxFJyxcbiAgICBoZWxwOlxuICAgICAgJ1RoZSBNb25nb0RCIGRyaXZlciBvcHRpb24gdG8gc3BlY2lmeSB0aGUgbG9jYXRpb24gb2YgYSBsb2NhbCAucGVtIGZpbGUgdGhhdCBjb250YWlucyB0aGUgcm9vdCBjZXJ0aWZpY2F0ZSBjaGFpbiBmcm9tIHRoZSBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkuJyxcbiAgfSxcbiAgdGxzQ2VydGlmaWNhdGVLZXlGaWxlOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0RBVEFCQVNFX1RMU19DRVJUSUZJQ0FURV9LRVlfRklMRScsXG4gICAgaGVscDpcbiAgICAgIFwiVGhlIE1vbmdvREIgZHJpdmVyIG9wdGlvbiB0byBzcGVjaWZ5IHRoZSBsb2NhdGlvbiBvZiBhIGxvY2FsIC5wZW0gZmlsZSB0aGF0IGNvbnRhaW5zIHRoZSBjbGllbnQncyBUTFMvU1NMIGNlcnRpZmljYXRlIGFuZCBrZXkuXCIsXG4gIH0sXG4gIHRsc0NlcnRpZmljYXRlS2V5RmlsZVBhc3N3b3JkOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0RBVEFCQVNFX1RMU19DRVJUSUZJQ0FURV9LRVlfRklMRV9QQVNTV09SRCcsXG4gICAgaGVscDogJ1RoZSBNb25nb0RCIGRyaXZlciBvcHRpb24gdG8gc3BlY2lmeSB0aGUgcGFzc3dvcmQgdG8gZGVjcnlwdCB0aGUgdGxzQ2VydGlmaWNhdGVLZXlGaWxlLicsXG4gIH0sXG4gIHRsc0luc2VjdXJlOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0RBVEFCQVNFX1RMU19JTlNFQ1VSRScsXG4gICAgaGVscDogJ1RoZSBNb25nb0RCIGRyaXZlciBvcHRpb24gdG8gZGlzYWJsZSB2YXJpb3VzIGNlcnRpZmljYXRlIHZhbGlkYXRpb25zLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLmJvb2xlYW5QYXJzZXIsXG4gIH0sXG4gIHdhaXRRdWV1ZVRpbWVvdXRNUzoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9EQVRBQkFTRV9XQUlUX1FVRVVFX1RJTUVPVVRfTVMnLFxuICAgIGhlbHA6XG4gICAgICAnVGhlIE1vbmdvREIgZHJpdmVyIG9wdGlvbiB0byBzcGVjaWZ5IHRoZSBtYXhpbXVtIHRpbWUgaW4gbWlsbGlzZWNvbmRzIHRoYXQgYSB0aHJlYWQgY2FuIHdhaXQgZm9yIGEgY29ubmVjdGlvbiB0byBiZWNvbWUgYXZhaWxhYmxlLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm51bWJlclBhcnNlcignd2FpdFF1ZXVlVGltZW91dE1TJyksXG4gIH0sXG4gIHpsaWJDb21wcmVzc2lvbkxldmVsOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0RBVEFCQVNFX1pMSUJfQ09NUFJFU1NJT05fTEVWRUwnLFxuICAgIGhlbHA6XG4gICAgICAnVGhlIE1vbmdvREIgZHJpdmVyIG9wdGlvbiB0byBzcGVjaWZ5IHRoZSBjb21wcmVzc2lvbiBsZXZlbCBpZiB1c2luZyB6bGliIGZvciBuZXR3b3JrIGNvbXByZXNzaW9uICgwLTkpLicsXG4gICAgYWN0aW9uOiBwYXJzZXJzLm51bWJlclBhcnNlcignemxpYkNvbXByZXNzaW9uTGV2ZWwnKSxcbiAgfSxcbn07XG5tb2R1bGUuZXhwb3J0cy5BdXRoQWRhcHRlciA9IHtcbiAgZW5hYmxlZDoge1xuICAgIGhlbHA6ICdJcyBgdHJ1ZWAgaWYgdGhlIGF1dGggYWRhcHRlciBpcyBlbmFibGVkLCBgZmFsc2VgIG90aGVyd2lzZS4nLFxuICAgIGFjdGlvbjogcGFyc2Vycy5ib29sZWFuUGFyc2VyLFxuICAgIGRlZmF1bHQ6IGZhbHNlLFxuICB9LFxufTtcbm1vZHVsZS5leHBvcnRzLkxvZ0xldmVscyA9IHtcbiAgY2xvdWRGdW5jdGlvbkVycm9yOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0xPR19MRVZFTFNfQ0xPVURfRlVOQ1RJT05fRVJST1InLFxuICAgIGhlbHA6XG4gICAgICAnTG9nIGxldmVsIHVzZWQgYnkgdGhlIENsb3VkIENvZGUgRnVuY3Rpb25zIG9uIGVycm9yLiBEZWZhdWx0IGlzIGBlcnJvcmAuIFNlZSBbTG9nTGV2ZWxdKExvZ0xldmVsLmh0bWwpIGZvciBhdmFpbGFibGUgdmFsdWVzLicsXG4gICAgZGVmYXVsdDogJ2Vycm9yJyxcbiAgfSxcbiAgY2xvdWRGdW5jdGlvblN1Y2Nlc3M6IHtcbiAgICBlbnY6ICdQQVJTRV9TRVJWRVJfTE9HX0xFVkVMU19DTE9VRF9GVU5DVElPTl9TVUNDRVNTJyxcbiAgICBoZWxwOlxuICAgICAgJ0xvZyBsZXZlbCB1c2VkIGJ5IHRoZSBDbG91ZCBDb2RlIEZ1bmN0aW9ucyBvbiBzdWNjZXNzLiBEZWZhdWx0IGlzIGBpbmZvYC4gU2VlIFtMb2dMZXZlbF0oTG9nTGV2ZWwuaHRtbCkgZm9yIGF2YWlsYWJsZSB2YWx1ZXMuJyxcbiAgICBkZWZhdWx0OiAnaW5mbycsXG4gIH0sXG4gIHRyaWdnZXJBZnRlcjoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9MT0dfTEVWRUxTX1RSSUdHRVJfQUZURVInLFxuICAgIGhlbHA6XG4gICAgICAnTG9nIGxldmVsIHVzZWQgYnkgdGhlIENsb3VkIENvZGUgVHJpZ2dlcnMgYGFmdGVyU2F2ZWAsIGBhZnRlckRlbGV0ZWAsIGBhZnRlckZpbmRgLCBgYWZ0ZXJMb2dvdXRgLiBEZWZhdWx0IGlzIGBpbmZvYC4gU2VlIFtMb2dMZXZlbF0oTG9nTGV2ZWwuaHRtbCkgZm9yIGF2YWlsYWJsZSB2YWx1ZXMuJyxcbiAgICBkZWZhdWx0OiAnaW5mbycsXG4gIH0sXG4gIHRyaWdnZXJCZWZvcmVFcnJvcjoge1xuICAgIGVudjogJ1BBUlNFX1NFUlZFUl9MT0dfTEVWRUxTX1RSSUdHRVJfQkVGT1JFX0VSUk9SJyxcbiAgICBoZWxwOlxuICAgICAgJ0xvZyBsZXZlbCB1c2VkIGJ5IHRoZSBDbG91ZCBDb2RlIFRyaWdnZXJzIGBiZWZvcmVTYXZlYCwgYGJlZm9yZURlbGV0ZWAsIGBiZWZvcmVGaW5kYCwgYGJlZm9yZUxvZ2luYCBvbiBlcnJvci4gRGVmYXVsdCBpcyBgZXJyb3JgLiBTZWUgW0xvZ0xldmVsXShMb2dMZXZlbC5odG1sKSBmb3IgYXZhaWxhYmxlIHZhbHVlcy4nLFxuICAgIGRlZmF1bHQ6ICdlcnJvcicsXG4gIH0sXG4gIHRyaWdnZXJCZWZvcmVTdWNjZXNzOiB7XG4gICAgZW52OiAnUEFSU0VfU0VSVkVSX0xPR19MRVZFTFNfVFJJR0dFUl9CRUZPUkVfU1VDQ0VTUycsXG4gICAgaGVscDpcbiAgICAgICdMb2cgbGV2ZWwgdXNlZCBieSB0aGUgQ2xvdWQgQ29kZSBUcmlnZ2VycyBgYmVmb3JlU2F2ZWAsIGBiZWZvcmVEZWxldGVgLCBgYmVmb3JlRmluZGAsIGBiZWZvcmVMb2dpbmAgb24gc3VjY2Vzcy4gRGVmYXVsdCBpcyBgaW5mb2AuIFNlZSBbTG9nTGV2ZWxdKExvZ0xldmVsLmh0bWwpIGZvciBhdmFpbGFibGUgdmFsdWVzLicsXG4gICAgZGVmYXVsdDogJ2luZm8nLFxuICB9LFxufTtcbiJdLCJtYXBwaW5ncyI6Ijs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSUEsT0FBTyxHQUFHQyxPQUFPLENBQUMsV0FBVyxDQUFDO0FBQ2xDQyxNQUFNLENBQUNDLE9BQU8sQ0FBQ0MsYUFBYSxHQUFHO0VBQzdCQyxjQUFjLEVBQUU7SUFDZEMsR0FBRyxFQUFFLHFDQUFxQztJQUMxQ0MsSUFBSSxFQUFFO0VBQ1IsQ0FBQztFQUNEQyxlQUFlLEVBQUU7SUFDZkYsR0FBRyxFQUFFLHNDQUFzQztJQUMzQ0MsSUFBSSxFQUFFO0VBQ1IsQ0FBQztFQUNERSxXQUFXLEVBQUU7SUFDWEgsR0FBRyxFQUFFLGlDQUFpQztJQUN0Q0MsSUFBSSxFQUNGLGdHQUFnRztJQUNsR0csUUFBUSxFQUFFLElBQUk7SUFDZEMsTUFBTSxFQUFFWCxPQUFPLENBQUNZLFlBQVk7SUFDNUJDLE9BQU8sRUFBRTtFQUNYLENBQUM7RUFDREMsaUJBQWlCLEVBQUU7SUFDakJSLEdBQUcsRUFBRSx5Q0FBeUM7SUFDOUNDLElBQUksRUFDRixtSUFBbUk7SUFDcklJLE1BQU0s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
|